From 271519eb49ce36bbafeb5cc13a2219cf22f1fd0d Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 08:10:49 -0600 Subject: [PATCH 01/24] =?UTF-8?q?fix(engine):=20engine-protect=20the=20int?= =?UTF-8?q?ent-main=E2=86=92stage=20enforcement=20merge=20(no=20intent.md?= =?UTF-8?q?=20markers)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The version auto-bump to 10.0.0 activated the v9→v10 migration, which materializes `stages` onto intent.md. When that ran on intent main mid-flight, it diverged intent main's intent.md from a stage branch's — and `ensureOnStageBranch` Stage 2 (the per-tick main→stage enforcement merge) was a PLAIN `git merge` with no engine-state guard. It conflicted on intent.md and left conflict markers in a workflow-managed file, so the seal choked parsing it (`YAMLException`) and the cursor reported "stage-branch enforcement failed". CI on the bump commit went red on seal-intent-commits. Route Stage 2 through `engineProtectedMergeInCwd` like every other engine merge — target/HEAD-authoritative. Per the stage-branch invariant the stage is ahead of main and authoritative for its own state (downstream-sync-clobber), so this keeps the stage's rich FM AND deterministically resolves intent.md to one valid copy — no markers ever reach the agent. Also hardens `mergeStageBranchIntoMain` the same way (settleEngineConflicts on each conflict-return path). Tests (at v10): seal-intent-commits green again; new ensure-stage-branch-engine-fm pins that ensureOnStageBranch resolves divergent intent.md without markers; downstream-sync-clobber + unit-worktree-sibling-clobber still green (target- authoritative invariant preserved). Full suite 2070/0 at v10. Co-Authored-By: Claude Opus 4.7 --- packages/haiku/src/git-worktree.ts | 106 ++++++------ .../ensure-stage-branch-engine-fm.test.mjs | 157 ++++++++++++++++++ 2 files changed, 216 insertions(+), 47 deletions(-) create mode 100644 packages/haiku/test/ensure-stage-branch-engine-fm.test.mjs diff --git a/packages/haiku/src/git-worktree.ts b/packages/haiku/src/git-worktree.ts index 6cbeb6b96..335fb1752 100644 --- a/packages/haiku/src/git-worktree.ts +++ b/packages/haiku/src/git-worktree.ts @@ -501,7 +501,10 @@ function engineProtectedMergeInCwd( } // Re-assert the target's authoritative engine state over any silent // auto-resolve to the source side. `HEAD` is still the pre-merge target - // (we passed `--no-commit`). + // (we passed `--no-commit`). The target (the branch being merged INTO) is + // canonical for engine state in every engine merge — including the + // downstream intent-main → stage sync, where the stage branch is ahead + // (the stage-branch invariant; see downstream-sync-clobber.test.mjs). restoreEngineStateFromBase(gitC, "HEAD", slug) // Any remaining unresolved paths are genuine conflicts on non-engine // (agent) content — surface them; the engine guard already settled the @@ -2078,6 +2081,25 @@ export function mergeStageBranchIntoMain( tryRun(["git", ...cwdArgs, "diff", "--name-only", "--diff-filter=U"]) .split("\n") .filter(Boolean) + // Engine-owned intent state (intent.md, units, feedback) is + // sole-engine-write and lives authoritatively on intent main (HEAD + // here) — it must NEVER reach the agent conflicted. Re-assert it + // from HEAD, then return only the REMAINING (agent/non-engine) + // conflicts; if engine state was the only conflict, finish the + // merge commit. Without this, the v9→v10 migration rewriting + // intent.md diverged it from the stage branch and a plain merge + // left conflict markers in intent.md, breaking the seal + // (worker-new-badge 2026-05-28; same class as the forward-merge + // fix, this is the stage-completion path). + const settleEngineConflicts = (raw: string[]): string[] => { + if (raw.length === 0) return [] + restoreEngineStateFromBase(cwdArgs, "HEAD", slug) + const remaining = collectConflicts() + if (remaining.length === 0) { + tryRun(["git", ...cwdArgs, "commit", "--no-edit", "-m", mergeMessage]) + } + return remaining + } const doMerge = (): void => { run([ "git", @@ -2095,7 +2117,8 @@ export function mergeStageBranchIntoMain( return { conflictFiles: [] } } catch (mergeErr) { const conflicts = collectConflicts() - if (conflicts.length > 0) return { conflictFiles: conflicts } + if (conflicts.length > 0) + return { conflictFiles: settleEngineConflicts(conflicts) } // Not a content conflict. The classic blocker for an engine // stage-close merge is untracked working-tree files the merge @@ -2142,7 +2165,7 @@ export function mergeStageBranchIntoMain( // Restore the stashed working tree regardless of outcome. tryRun(["git", ...cwdArgs, "stash", "pop"]) if (retryConflicts.length > 0) { - return { conflictFiles: retryConflicts } + return { conflictFiles: settleEngineConflicts(retryConflicts) } } tryRun(["git", ...cwdArgs, "merge", "--abort"]) throw retryErr @@ -2155,7 +2178,7 @@ export function mergeStageBranchIntoMain( // `git stash list`. Neither data loss nor a silent no-op — the // merge happened, which is the whole point. tryRun(["git", ...cwdArgs, "stash", "pop"]) - return { conflictFiles: collectConflicts() } + return { conflictFiles: settleEngineConflicts(collectConflicts()) } } } @@ -2931,55 +2954,44 @@ export function ensureOnStageBranch( } } } - // Stage 2: merge main into the (now checked-out) stage branch. - // A failure here is a real conflict — leave it for human resolution. - try { - run([ - "git", - "merge", - intentMain, - "--no-ff", - "--no-edit", - "-m", - `haiku: merge intent-main → stage ${stage} (workflow engine branch enforcement)`, - ]) + // Stage 2: merge main into the (now checked-out) stage branch, + // ENGINE-FM-PROTECTED. A plain `git merge` here left conflict + // markers in intent.md whenever a mid-flight migration (e.g. v9→v10 + // materializing `stages`) diverged intent main from the stage + // branch — the seal then choked parsing the workflow-managed file + // (worker-new-badge 2026-05-28). `engineProtectedMergeInCwd` + // re-asserts engine-owned state (intent.md, units, feedback) from + // intent main — the authoritative branch for that state — so only + // genuine conflicts on agent (non-engine) content surface. + const protectedMerge = engineProtectedMergeInCwd( + [], + intentMain, + slug, + `haiku: merge intent-main → stage ${stage} (workflow engine branch enforcement)`, + ) + if (protectedMerge.ok) { return { ok: true, branch: stageBranch, message: `merged main → stage, now on ${stageBranch}`, switched: true, } - } catch (err) { - const raw = err instanceof Error ? err.message : String(err) - const status = tryRun(["git", "status", "--porcelain"]) - const conflicts = (status || "") - .split("\n") - .filter( - (l) => - l.startsWith("UU ") || - l.startsWith("AA ") || - l.startsWith("DD ") || - l.startsWith("AU ") || - l.startsWith("UA ") || - l.startsWith("DU ") || - l.startsWith("UD "), - ) - .map((l) => l.slice(3).trim()) - return { - ok: false, - branch: stageBranch, - message: - conflicts.length > 0 - ? `Merge intent-main → stage '${stage}' left ${conflicts.length} conflicted file(s): ${conflicts.join(", ")}. ` + - `Resolve on '${stageBranch}', then \`git add\` + \`git commit\` and retry.\n\n` + - `While this merge is in progress the workflow-file guardrails are SUSPENDED (both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions), so you can resolve the conflicts directly. Prefer the schema-safe internal tools (\`haiku_feedback_write\`, \`haiku_unit_set\`, \`haiku_intent_set\`) — their schema validation still runs, so the resolved files stay valid.\n\n` + - `Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT — intent-main doesn't have it yet, so don't drop it in favor of main's absence.` - : `failed to merge main into stage: ${raw}. Resolve manually on '${stageBranch}', then retry.`, - switched: false, - block: conflicts.length > 0 ? "merge_conflict" : undefined, - dirty_files: conflicts.length > 0 ? conflicts : undefined, - target_branch: stageBranch, - } + } + const conflicts = protectedMerge.conflictFiles ?? [] + return { + ok: false, + branch: stageBranch, + message: + conflicts.length > 0 + ? `Merge intent-main → stage '${stage}' left ${conflicts.length} conflicted file(s): ${conflicts.join(", ")}. ` + + `Resolve on '${stageBranch}', then \`git add\` + \`git commit\` and retry.\n\n` + + `While this merge is in progress the workflow-file guardrails are SUSPENDED (both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions), so you can resolve the conflicts directly. Prefer the schema-safe internal tools (\`haiku_feedback_write\`, \`haiku_unit_set\`, \`haiku_intent_set\`) — their schema validation still runs, so the resolved files stay valid.\n\n` + + `Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT — intent-main doesn't have it yet, so don't drop it in favor of main's absence.` + : `failed to merge main into stage: ${protectedMerge.message ?? "unknown error"}. Resolve manually on '${stageBranch}', then retry.`, + switched: false, + block: conflicts.length > 0 ? "merge_conflict" : undefined, + dirty_files: conflicts.length > 0 ? conflicts : undefined, + target_branch: stageBranch, } } } diff --git a/packages/haiku/test/ensure-stage-branch-engine-fm.test.mjs b/packages/haiku/test/ensure-stage-branch-engine-fm.test.mjs new file mode 100644 index 000000000..47895910d --- /dev/null +++ b/packages/haiku/test/ensure-stage-branch-engine-fm.test.mjs @@ -0,0 +1,157 @@ +// ensure-stage-branch-engine-fm.test.mjs +// +// Regression (worker-new-badge, 2026-05-28): the version auto-bump to 10 +// activated the v9→v10 migration, which materializes `stages` onto intent.md. +// When that ran on intent main mid-flight, it diverged intent main's intent.md +// from a stage branch's. `ensureOnStageBranch` Stage 2 then did a PLAIN +// `git merge intent-main` into the stage branch, conflicted on intent.md, and +// left conflict markers in a workflow-managed file → the seal choked parsing +// it (`YAMLException`), and the cursor reported "stage-branch enforcement +// failed". +// +// Fix: Stage 2 routes through `engineProtectedMergeInCwd`, which re-asserts +// engine-owned state (intent.md, units, feedback) from the TARGET — the stage +// branch (HEAD) — exactly like the other engine merges. Per the stage-branch +// invariant the stage is AHEAD of main and authoritative for its own state +// (see downstream-sync-clobber.test.mjs), so target-restore is correct AND it +// deterministically resolves intent.md to a single valid copy — no conflict +// markers ever reach the agent in a workflow-managed file. +// +// Version-independent: forces the divergent-intent.md condition directly. + +import assert from "node:assert/strict" +import { execFileSync } from "node:child_process" +import { + existsSync, + mkdirSync, + mkdtempSync, + rmSync, + writeFileSync, +} from "node:fs" +import { tmpdir } from "node:os" +import { dirname, join, resolve } from "node:path" +import { test } from "node:test" +import { fileURLToPath } from "node:url" + +const SRC = new URL("../src/", import.meta.url).pathname +process.env.CLAUDE_PLUGIN_ROOT = resolve( + dirname(fileURLToPath(import.meta.url)), + "..", + "..", + "..", + "plugin", +) + +const { ensureOnStageBranch } = await import(`${SRC}git-worktree.ts`) +const { _resetIsGitRepoForTests } = await import(`${SRC}state/shared.ts`) + +const HAS_GIT = (() => { + try { + execFileSync("git", ["--version"], { stdio: "ignore" }) + return true + } catch { + return false + } +})() + +function git(cwd, ...args) { + return execFileSync("git", args, { + cwd, + encoding: "utf8", + stdio: ["ignore", "pipe", "pipe"], + }).trim() +} + +function intentMd(extra) { + return [ + "---", + "slug: wnb", + "studio: software", + "mode: continuous", + ...extra, + "---", + "# intent", + "", + ].join("\n") +} + +test("ensureOnStageBranch merges main→stage without leaving intent.md conflicted", () => { + if (!HAS_GIT) return + const root = mkdtempSync(join(tmpdir(), "haiku-ensurefm-")) + const orig = process.cwd() + try { + git(root, "init", "-q", "-b", "haiku/wnb/main") + git(root, "config", "user.email", "t@t") + git(root, "config", "user.name", "t") + git(root, "config", "commit.gpgsign", "false") + const intentDir = join(root, ".haiku", "intents", "wnb") + mkdirSync(intentDir, { recursive: true }) + const intentFile = join(intentDir, "intent.md") + + // Base intent.md (both branches fork from here). + writeFileSync( + intentFile, + intentMd(["reflection: false", "approvals:", " spec: { at: 'T0' }"]), + ) + git(root, "add", "-A") + git(root, "commit", "-q", "-m", "base") + + // Stage branch forks, then diverges intent.md (a stale approval stamp). + git(root, "checkout", "-q", "-b", "haiku/wnb/knowledge") + writeFileSync( + intentFile, + intentMd(["reflection: false", "approvals:", " spec: { at: 'STAGE' }"]), + ) + git(root, "add", "-A") + git(root, "commit", "-q", "-m", "stage diverges intent.md") + + // Intent main independently rewrites intent.md (the migration-shaped + // change: materializes `stages` + a different approval stamp) — the + // authoritative cross-stage state. + git(root, "checkout", "-q", "haiku/wnb/main") + writeFileSync( + intentFile, + intentMd([ + "reflection: false", + "stages:", + " - knowledge", + "approvals:", + " spec: { at: 'MAIN' }", + " user: { at: 'MAIN' }", + ]), + ) + git(root, "add", "-A") + git(root, "commit", "-q", "-m", "main migration + approvals") + + // Enforce the stage branch. Pre-fix: the plain merge conflicts on + // intent.md → ok:false, MERGE_HEAD + markers left. + process.chdir(root) + _resetIsGitRepoForTests() + const res = ensureOnStageBranch("wnb", "knowledge") + + assert.equal( + res.ok, + true, + `enforcement must succeed (engine merge resolves intent.md, no markers); got: ${JSON.stringify(res)}`, + ) + assert.ok( + !existsSync(join(root, ".git", "MERGE_HEAD")), + "no MERGE_HEAD left for the agent", + ) + // The whole point: intent.md is a SINGLE valid copy — never conflict + // markers in a workflow-managed file (that's what broke the seal). + const onStage = git(root, "show", "HEAD:.haiku/intents/wnb/intent.md") + assert.ok(!onStage.includes("<<<<<<<"), "no conflict markers in intent.md") + assert.ok(!onStage.includes(">>>>>>>"), "no conflict markers in intent.md") + // Target(stage)-authoritative, consistent with the stage-branch + // invariant: the stage's own intent.md copy is kept (the engine guard + // re-asserts engine state from HEAD = the stage branch). + assert.ok( + onStage.includes("'STAGE'"), + `stage-authoritative intent.md must survive; got:\n${onStage}`, + ) + } finally { + process.chdir(orig) + rmSync(root, { recursive: true, force: true }) + } +}) From 2380d07f777faadcf6071e1dce60bc4f73d6afe3 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 08:15:48 -0600 Subject: [PATCH 02/24] fix(outputs): system journals never surface as unit outputs (action-log, write-audit) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The engine appends to intent-root journals (action-log.jsonl, write-audit.jsonl, drift baselines) during a unit's work, so they show up in the unit's git diff — and `autoPopulateOutputs` was missing them from its bookkeeping exclusion, so they leaked into `outputs:` and rendered on the SPA output surface. - Source: `autoPopulateOutputs` now excludes `INTENT_ROOT_INTERNAL_ENTRIES` (the same set the intent-root file parser already hides) — no new leaks. - SPA display: `parseUnitOutputs` drops any declared output whose basename is an intent-root journal — covers intents that leaked before the source fix. - Website already filters `.jsonl` from the outputs list (isBookkeepingArtifact). Test: parse-output-artifacts pins that action-log.jsonl / write-audit.jsonl declared in a unit's outputs never surface, while the real deliverable does. Co-Authored-By: Claude Opus 4.7 --- packages/haiku/src/parser.ts | 5 +++ packages/haiku/src/state-tools.ts | 7 ++++ .../test/parse-output-artifacts.test.mjs | 33 +++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/packages/haiku/src/parser.ts b/packages/haiku/src/parser.ts index ad81ca466..b11e09cb7 100644 --- a/packages/haiku/src/parser.ts +++ b/packages/haiku/src/parser.ts @@ -835,6 +835,11 @@ async function parseUnitOutputs( continue } for (const declared of outputs) { + // System journals (action-log.jsonl, write-audit.jsonl, drift + // baselines, …) are never a unit's deliverable. The source fix in + // `autoPopulateOutputs` stops new leaks; this drops them on the + // SPA surface for intents that leaked them before that landed. + if (INTENT_ROOT_INTERNAL_ENTRIES.has(basename(declared))) continue const intentRel = intentRelativeOutputPath(declared, intentDir) const intentAbs = resolve(intentDirAbs, intentRel) const withinIntent = diff --git a/packages/haiku/src/state-tools.ts b/packages/haiku/src/state-tools.ts index 99c5a99d6..10f626141 100644 --- a/packages/haiku/src/state-tools.ts +++ b/packages/haiku/src/state-tools.ts @@ -43,6 +43,7 @@ import { findCurrentStage, nextHatForUnit, } from "./orchestrator/workflow/cursor.js" +import { INTENT_ROOT_INTERNAL_ENTRIES } from "./stage-internal-entries.js" import { sanitizeFeedbackBody } from "./state/sanitize-feedback.js" import { readServiceProcesses } from "./view-boot.js" @@ -2871,6 +2872,12 @@ function autoPopulateOutputs( if (intentRel !== null) { if (bookkeeping.has(intentRel)) continue if (bookkeepingPrefixes.some((p) => intentRel.startsWith(p))) continue + // Intent-root system journals (action-log.jsonl, write-audit.jsonl, + // drift baselines, …) MUST never enter a unit's `outputs:` — the + // engine appends to them during the unit's work, so they show up in + // the git diff, but they aren't the unit's deliverable. Without this + // they leaked into outputs and rendered on the SPA / browse surfaces. + if (INTENT_ROOT_INTERNAL_ENTRIES.has(intentRel)) continue } // Record the path in its natural form: intent-relative when inside the // intent dir, repo-relative otherwise. diff --git a/packages/haiku/test/parse-output-artifacts.test.mjs b/packages/haiku/test/parse-output-artifacts.test.mjs index b1be1e374..130386216 100644 --- a/packages/haiku/test/parse-output-artifacts.test.mjs +++ b/packages/haiku/test/parse-output-artifacts.test.mjs @@ -191,6 +191,39 @@ await test("unit outputs surface even when stages//artifacts/ does not ex ) }) +await test("system journals (action-log.jsonl / write-audit.jsonl) never surface as outputs", async () => { + // The engine appends to intent-root journals during a unit's work, so they + // can land in `outputs:` (via git-diff auto-populate on pre-fix intents). + // They are NOT deliverables and must be dropped from the SPA output surface + // (2026-05-28). Source fix is in autoPopulateOutputs; this pins the + // defensive display filter. + const intentDir = mkdtempSync(join(tmp, "intent-journals-")) + const units = join(intentDir, "stages", "development", "units") + mkdirSync(units, { recursive: true }) + mkdirSync(join(intentDir, "product"), { recursive: true }) + writeFileSync(join(intentDir, "action-log.jsonl"), '{"e":1}\n') + writeFileSync(join(intentDir, "write-audit.jsonl"), "{}\n") + writeFileSync(join(intentDir, "product", "REAL.md"), "# real deliverable\n") + writeFileSync( + join(units, "unit-01-x.md"), + "---\ntitle: x\noutputs:\n - action-log.jsonl\n - write-audit.jsonl\n - product/REAL.md\n---\n# unit body", + ) + const artifacts = await parseOutputArtifacts(intentDir) + const names = artifacts.map((a) => a.name) + assert.ok( + !names.some((n) => n.endsWith("action-log.jsonl")), + `action-log.jsonl must NOT surface as an output; got ${JSON.stringify(names)}`, + ) + assert.ok( + !names.some((n) => n.endsWith("write-audit.jsonl")), + `write-audit.jsonl must NOT surface as an output; got ${JSON.stringify(names)}`, + ) + assert.ok( + names.includes("product/REAL.md"), + `the real deliverable must still surface; got ${JSON.stringify(names)}`, + ) +}) + await test("unit outputs are attributed to their unit's stage", async () => { const intentDir = setupIntentWithUnitOutputs() const artifacts = await parseOutputArtifacts(intentDir) From 7c26425f06c92004f2889895618873a80d6fc90d Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 08:39:15 -0600 Subject: [PATCH 03/24] =?UTF-8?q?perf(browse):=20lean=20GitLab=20list-view?= =?UTF-8?q?=20loader=20=E2=80=94=20batch=20main=20branches,=20drop=20the?= =?UTF-8?q?=20O(3N)=20fan-out?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The list view was O(3N): per haiku//main branch it did a readFile + an MR fetch + a per-stage unit probe, plus a separate MR fetch for every stage branch. That's the slowness. Lean path: - Drop the per-stage-branch MR fan-out entirely (MR/PR status loads lazily in the detail view, where it's already fetched). - Replace the per-main readFile + MR + per-stage-probe loop with ONE raw aliased GraphQL request (`batchMainBranchData`): for every main branch, read `intent.md` + the immediate `stages/` subdir names as per-branch aliases, chunked. Relay queries are static and can't fan out across a variable set of refs, so this uses a raw POST to /api/graphql. - Active stage + progress derive from the stage-dir set (the lean equivalent of the old per-stage unit probe) — the card's `Stage:` + `N/total` bar. - Removed the now-dead `probeStagesWithUnits`. Default-branch catalog still loads via listIntentsFromRef (tree + batched blobs). Per-main is now one batched request instead of 3N. (Folding the default-branch blobs into the same raw batch — to hit a strict ≤3 queries — is a follow-up.) Network path verified by typecheck + the pure-helper browse tests; full load needs in-browser verification against a real GitLab project. Co-Authored-By: Claude Opus 4.7 --- website/lib/browse/gitlab-provider.ts | 231 ++++++++++++-------------- 1 file changed, 107 insertions(+), 124 deletions(-) diff --git a/website/lib/browse/gitlab-provider.ts b/website/lib/browse/gitlab-provider.ts index 52cd1e1a3..fbaec25e3 100644 --- a/website/lib/browse/gitlab-provider.ts +++ b/website/lib/browse/gitlab-provider.ts @@ -19,8 +19,8 @@ import { deriveV4ActiveStage, isCollectibleStageFile, isV4Intent, - normalizeStageProgression, mergeKnowledge as mergeKnowledgeShared, + normalizeStageProgression, parseElaborationVerified, parseFeedback, parseIntentApprovals, @@ -123,6 +123,83 @@ export class GitLabProvider implements BrowseProvider { }) } + /** Raw GraphQL POST. Relay queries are STATIC (compiled at build time), so + * they can't fan out across a variable number of branch refs in one + * request. The lean list loader needs exactly that — one request that + * reads `intent.md` + the `stages/` tree for N `haiku//main` branches + * via per-branch aliases — so it builds the query string dynamically + posts + * it here. Returns `data` (or undefined on a network/transport error; + * per-alias field errors surface as null nodes the caller tolerates). */ + private async rawGraphql( + query: string, + variables?: Record, + ): Promise { + try { + const res = await fetch(`https://${this.host}/api/graphql`, { + method: "POST", + headers: { + "Content-Type": "application/json", + ...this.graphqlHeaders(), + }, + body: JSON.stringify({ query, variables: variables ?? {} }), + }) + if (!res.ok) return undefined + const json = (await res.json()) as { data?: T } + return json.data + } catch { + return undefined + } + } + + /** LEAN per-main-branch batch for the LIST view. For each `haiku//main` + * branch, reads ONLY (a) its `intent.md` and (b) the immediate subdir names + * under `.haiku/intents//stages/` (the stage-dir count) — both as + * per-branch ALIASES in a single raw GraphQL request (chunked). Replaces + * the old O(3N) fan-out (per-branch readFile + MR fetch + per-stage probe); + * MR/PR status now loads lazily in the detail view. */ + private async batchMainBranchData( + mains: Array<{ slug: string; branch: string }>, + ): Promise> { + const out = new Map< + string, + { rawText: string | null; stageDirs: string[] } + >() + type RepoFields = Record< + string, + { + nodes?: Array<{ rawTextBlob?: string | null }> + trees?: { nodes?: Array<{ name?: string | null }> } + } | null + > + for (let i = 0; i < mains.length; i += CHUNK_SIZE) { + const chunk = mains.slice(i, i + CHUNK_SIZE) + const fields = chunk + .map((m, j) => { + const ref = JSON.stringify(m.branch) + const md = JSON.stringify(`.haiku/intents/${m.slug}/intent.md`) + const st = JSON.stringify(`.haiku/intents/${m.slug}/stages`) + return ( + `a${j}_md: blobs(ref: ${ref}, paths: [${md}], first: 1) { nodes { rawTextBlob } }\n` + + `a${j}_st: tree(ref: ${ref}, path: ${st}, recursive: false) { trees(first: 50) { nodes { name } } }` + ) + }) + .join("\n") + const query = `query GLBatchMains($fp: ID!) { project(fullPath: $fp) { repository { ${fields} } } }` + const data = await this.rawGraphql<{ + project?: { repository?: RepoFields } + }>(query, { fp: this.projectPath }) + const repo = data?.project?.repository + chunk.forEach((m, j) => { + const rawText = repo?.[`a${j}_md`]?.nodes?.[0]?.rawTextBlob ?? null + const stageDirs = (repo?.[`a${j}_st`]?.trees?.nodes ?? []) + .map((n) => n?.name) + .filter((n): n is string => typeof n === "string" && n.length > 0) + out.set(m.slug, { rawText, stageDirs }) + }) + } + return out + } + /** Ref parameter for GraphQL queries. null means HEAD (server default). */ private get ref(): string | null { return this.branch || null @@ -333,37 +410,12 @@ export class GitLabProvider implements BrowseProvider { ) } - // Capture stage-level branches (haiku/{slug}/{stageName}, where stageName != "main") - const stageBranchNames = branchNames.filter((name: string) => { - const parts = name.split("/") - return ( - parts.length >= 3 && - parts[0] === "haiku" && - parts[parts.length - 1] !== "main" - ) - }) - - // Fetch MR data for stage branches in parallel - const stageBranchPromises = stageBranchNames.map( - async (branchName: string) => { - const parts = branchName.split("/") - const slug = parts.slice(1, -1).join("/") - const stageName = parts[parts.length - 1] - if (!slug || !stageName) return - - const { prUrl, prStatus, prNumber } = - await this.fetchMrForBranch(branchName) - - this.stageBranchMap.set(`${slug}/${stageName}`, { - branch: branchName, - prUrl, - prStatus, - prNumber, - }) - }, - ) + // LEAN list-view load: NO per-stage-branch MR fan-out and NO per-stage + // unit probes — those were the O(N) slowness. MR/PR status + per-stage + // detail load lazily in the detail view. The list needs only: + // title/studio/mode/status + branch + stage-dir-count over total stages. - // Filter to haiku/*/main branches and extract slugs + // haiku//main branches → the "current" (in-flight) intents. const mainBranches = branchNames.filter((name: string) => { const parts = name.split("/") return parts.length >= 2 && parts[parts.length - 1] === "main" @@ -375,73 +427,42 @@ export class GitLabProvider implements BrowseProvider { intentsBySlug.set(intent.slug, intent) } - // Step 3: For each haiku/{slug}/main branch, read ONLY the matching intent - // and merge it over the default branch baseline. Branch version is more - // current for active work and carries branch/MR metadata. - const branchReadPromises = mainBranches.map(async (branchName) => { - const parts = branchName.split("/") - const slug = parts.slice(1, -1).join("/") - if (!slug) return - - const rawText = await this.readFileFromRef( - branchName, - `.haiku/intents/${slug}/intent.md`, - ) - if (!rawText) return - - // Fetch the most recent MR for this branch in ANY state (opened, merged, closed). - const { prUrl, prStatus, prNumber } = - await this.fetchMrForBranch(branchName) - - const intent = this.parseIntentFromRaw(slug, rawText, { - branch: branchName, - prUrl, - prStatus, - prNumber, + // Step 3: ONE raw aliased request reads intent.md + the stages-dir set + // for EVERY main branch at once (chunked) — replacing the old O(3N) + // per-branch readFile + MR fetch + per-stage unit probe. The active + // stage + progress are derived from the stage-dir set (the lean + // equivalent of the per-stage probe). Branch version overrides the + // default-branch baseline (it's more current for active work). + const mainSlugs = mainBranches + .map((branchName) => { + const parts = branchName.split("/") + const slug = parts.slice(1, -1).join("/") + return slug ? { slug, branch: branchName } : null }) - // v4+ active-stage refinement (see github-provider.ts). - const isV4 = isV4Intent(intent.raw) - if (isV4 && intent.studioStages.length > 0) { - const stagesWithUnits = await this.probeStagesWithUnits( - slug, - branchName, - intent.studioStages, - ) + .filter((m): m is { slug: string; branch: string } => m !== null) + + const batch = await this.batchMainBranchData(mainSlugs) + for (const { slug, branch } of mainSlugs) { + const data = batch.get(slug) + if (!data?.rawText) continue + const intent = this.parseIntentFromRaw(slug, data.rawText, { branch }) + if (isV4Intent(intent.raw) && intent.studioStages.length > 0) { intent.activeStage = deriveActiveStageFromStageTree( intent.studioStages, - stagesWithUnits, + new Set(data.stageDirs), ) - // Recompute progress to match the refined active stage — v4 - // intent.md has no active_stage, so the initial parse left - // stagesComplete at 0 and hid the list-view progress bar. if (intent.status !== "completed") { const idx = intent.studioStages.indexOf(intent.activeStage) if (idx >= 0) intent.stagesComplete = idx } } intentsBySlug.set(slug, intent) - this.intentBranchMap.set(slug, branchName) - this.intentMetaMap.set(slug, { - branch: branchName, - prUrl, - prStatus, - prNumber, - }) - }) - - // Stream default-branch intents immediately so the UI renders progressively - for (const [, intent] of intentsBySlug) { - onProgress?.(intent) + this.intentBranchMap.set(slug, branch) + this.intentMetaMap.set(slug, { branch }) } - // Branch reads may update existing entries — re-emit after they resolve - await Promise.all([...branchReadPromises, ...stageBranchPromises]) - const allIntents = Array.from(intentsBySlug.values()) - for (const intent of allIntents) { - if (intent.branch) onProgress?.(intent) - } - + for (const intent of allIntents) onProgress?.(intent) return allIntents } @@ -519,42 +540,6 @@ export class GitLabProvider implements BrowseProvider { // ── Three-level merge helpers ──────────────────────────────────────── - /** Cheaply probe which declared stages have at least one unit file - * on disk. Recursive tree-list scoped to the intent's stages dir on - * a single ref (intent main branch). No per-file reads — just the - * blob paths from the tree. Used by listIntents() to derive a v4 - * active-stage candidate. */ - private async probeStagesWithUnits( - slug: string, - ref: string, - stages: ReadonlyArray, - ): Promise> { - const stagesPath = `.haiku/intents/${slug}/stages` - const cacheKey = `gl:${this.host}:${this.projectPath}:probeStages:${slug}:${ref}` - const treeData = await this.cachedQuery( - IntentTreeQuery, - { fullPath: this.projectPath, path: stagesPath, ref }, - cacheKey, - ) - const blobs = ( - treeData?.project?.repository?.tree?.blobs?.nodes ?? [] - ).filter((b): b is { name: string; path: string } => b?.path != null) - const declared = new Set(stages) - const out = new Set() - for (const blob of blobs) { - if (!blob.path.startsWith(`${stagesPath}/`)) continue - const rest = blob.path.slice(stagesPath.length + 1) - const parts = rest.split("/") - if (parts.length < 3) continue - const [stageName, subdir, fileName] = parts - if (!declared.has(stageName)) continue - if (subdir !== "units") continue - if (!fileName?.endsWith(".md")) continue - out.add(stageName) - } - return out - } - /** Data returned by fetchIntentTreeFromRef — all blobs, trees, and resolved assets for one ref. */ private static readonly EMPTY_REF_DATA: GitLabIntentRefData = { blobByPath: new Map(), @@ -758,9 +743,7 @@ export class GitLabProvider implements BrowseProvider { // Per-stage user-facing BRIEF + agent OBSERVATIONS. const briefText = data.blobByPath.get(`${stagePath}/BRIEF.md`) - const observationsText = data.blobByPath.get( - `${stagePath}/observations.md`, - ) + const observationsText = data.blobByPath.get(`${stagePath}/observations.md`) return { name: stageName, From a3e049c2cae4831312d759b71e67e4c1fa48e215 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 08:42:37 -0600 Subject: [PATCH 04/24] =?UTF-8?q?perf(browse):=20lean=20GitHub=20list-view?= =?UTF-8?q?=20loader=20=E2=80=94=20batch=20main=20branches=20(parity=20wit?= =?UTF-8?q?h=20GitLab)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirror the GitLab lean loader on the GitHub provider. The per-main fan-out was readFile + per-stage unit probe per haiku//main branch; replace it with ONE raw aliased GraphQL request (`batchMainBranchData`) that reads each main branch's `intent.md` text + its `.haiku/intents//stages/` subdir names (stage-dir count) via per-branch `object(expression:"ref:path")` aliases, chunked. Active stage + progress derive from the stage-dir set. PR metadata is already inline in the branch-list query, so it's kept at no extra cost (no separate PR fetch). Removed the now-dead `probeStagesWithUnits`. Relay queries are static (can't fan out across refs), hence the raw POST to api.github.com/graphql. Network path verified by typecheck + the pure-helper browse tests; full load needs in-browser verification against a real GitHub repo. Co-Authored-By: Claude Opus 4.7 --- website/lib/browse/github-provider.ts | 244 ++++++++++++-------------- 1 file changed, 115 insertions(+), 129 deletions(-) diff --git a/website/lib/browse/github-provider.ts b/website/lib/browse/github-provider.ts index 08a49f68b..421bf4d88 100644 --- a/website/lib/browse/github-provider.ts +++ b/website/lib/browse/github-provider.ts @@ -15,11 +15,11 @@ import { deriveActiveStageFromStageTree, deriveStageStateFromUnits, deriveV4ActiveStage, - normalizeStageProgression, isCollectibleIntentAsset, isCollectibleStageFile, isV4Intent, mergeKnowledge as mergeKnowledgeShared, + normalizeStageProgression, parseElaborationVerified, parseFeedback, parseIntentApprovals, @@ -111,6 +111,84 @@ export class GitHubProvider implements BrowseProvider { }) } + /** Raw GraphQL POST. Relay queries are static — they can't fan out across a + * variable number of branch refs in one request — so the lean list loader + * builds a per-branch-aliased query string and posts it here. */ + private async rawGraphql( + query: string, + variables?: Record, + ): Promise { + try { + const res = await fetch("https://api.github.com/graphql", { + method: "POST", + headers: { + "Content-Type": "application/json", + ...this.graphqlHeaders(), + }, + body: JSON.stringify({ query, variables: variables ?? {} }), + }) + if (!res.ok) return undefined + const json = (await res.json()) as { data?: T } + return json.data + } catch { + return undefined + } + } + + /** LEAN per-main-branch batch for the LIST view. For each `haiku//main` + * branch, reads ONLY its `intent.md` text + the immediate subdir names under + * `.haiku/intents//stages/` (the stage-dir count) — as per-branch + * ALIASES in one raw GraphQL request (chunked). Replaces the per-main + * readFile + per-stage unit probe. (GitHub PR data is already inline in the + * branch-list query, so no extra PR fetch is needed.) */ + private async batchMainBranchData( + mains: Array<{ slug: string; branch: string }>, + ): Promise> { + const out = new Map< + string, + { rawText: string | null; stageDirs: string[] } + >() + type RepoFields = Record< + string, + { + text?: string | null + entries?: Array<{ name?: string | null; type?: string | null }> + } | null + > + const CHUNK = 10 + for (let i = 0; i < mains.length; i += CHUNK) { + const chunk = mains.slice(i, i + CHUNK) + const fields = chunk + .map((m, j) => { + const md = JSON.stringify( + `${m.branch}:.haiku/intents/${m.slug}/intent.md`, + ) + const st = JSON.stringify( + `${m.branch}:.haiku/intents/${m.slug}/stages`, + ) + return ( + `a${j}_md: object(expression: ${md}) { ... on Blob { text } }\n` + + `a${j}_st: object(expression: ${st}) { ... on Tree { entries { name type } } }` + ) + }) + .join("\n") + const query = `query GHBatchMains($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { ${fields} } }` + const data = await this.rawGraphql<{ repository?: RepoFields }>(query, { + owner: this.owner, + name: this.repo, + }) + const repo = data?.repository + chunk.forEach((m, j) => { + const rawText = repo?.[`a${j}_md`]?.text ?? null + const stageDirs = (repo?.[`a${j}_st`]?.entries ?? []) + .filter((e) => e?.type === "tree" && typeof e?.name === "string") + .map((e) => e.name as string) + out.set(m.slug, { rawText, stageDirs }) + }) + } + return out + } + /** Build a git expression like "main:.haiku/intents" */ private expr(path: string): string { const ref = this.branch || "HEAD" @@ -190,80 +268,6 @@ export class GitHubProvider implements BrowseProvider { .sort() } - /** Cheaply detect which declared stages have at least one unit file - * on disk. Returns a Set of stage names with non-empty `units/` - * dirs. Used by listIntents() to derive a v4 active-stage candidate - * without per-unit FM reads. One GraphQL call per intent (tree - * listing of `.haiku/intents//stages` on the intent main - * branch). When the stages directory is missing entirely, returns - * an empty set. */ - private async probeStagesWithUnits( - slug: string, - ref: string, - stages: ReadonlyArray, - ): Promise> { - const stagesExpr = `${ref}:.haiku/intents/${slug}/stages` - const _cacheKey = `gh:${this.owner}/${this.repo}:listFiles:${stagesExpr}:withUnits` - type StageTreeData = { - repository: { - object: { - entries?: ReadonlyArray<{ - name: string - type: string - object?: { - entries?: ReadonlyArray<{ - name: string - type: string - object?: { - entries?: ReadonlyArray<{ - name: string - type: string - }> | null - } | null - }> | null - } | null - }> | null - } | null - } | null - } - // Reuse GetIntentQuery's deep traversal — it already includes - // stages → stage → subdir → files. Pull just the stagesTree slice. - const data = await this.cachedQuery( - GetIntentQuery, - { - owner: this.owner, - name: this.repo, - intentExpr: `${ref}:.haiku/intents/${slug}/intent.md`, - intentTreeExpr: `${ref}:.haiku/intents/${slug}`, - stagesExpr, - knowledgeExpr: `${ref}:.haiku/intents/${slug}/knowledge`, - operationsExpr: `${ref}:.haiku/intents/${slug}/operations`, - reflectionExpr: `${ref}:.haiku/intents/${slug}/reflection.md`, - }, - `gh:${this.owner}/${this.repo}:getIntent:${slug}:${ref}`, - ) - const stagesEntries = data?.repository?.stagesTree?.entries ?? [] - const declaredStages = new Set(stages) - const stagesWithUnits = new Set() - for (const stageDir of stagesEntries) { - if (stageDir.type !== "tree" || !declaredStages.has(stageDir.name)) - continue - const subdirs = stageDir.object?.entries ?? [] - const unitsDir = subdirs.find( - (e) => e.name === "units" && e.type === "tree", - ) - const files = unitsDir?.object?.entries ?? [] - const hasMd = files.some( - (f) => f.type === "blob" && f.name.endsWith(".md"), - ) - if (hasMd) stagesWithUnits.add(stageDir.name) - } - // Silence the unused type alias — kept for documentation of the - // nested shape we're traversing. - void (null as unknown as StageTreeData) - return stagesWithUnits - } - /** Read a file from a specific branch (bypasses this.branch). */ private async readFileFromBranch( branch: string, @@ -383,80 +387,62 @@ export class GitHubProvider implements BrowseProvider { intentsBySlug.set(entry.name, intent) } - // Step 3: For each haiku/{slug}/main branch, read ONLY the matching intent - // and merge it over the HEAD baseline. Branch version is more current for - // active work and carries branch/PR metadata. + // Step 3: ONE raw aliased request reads intent.md + the stages-dir set + // for EVERY main branch at once (chunked) — replacing the per-main + // readFile + per-stage unit probe. PR metadata is already inline in the + // branch-list query (free), so we keep it. Active stage + progress + // derive from the stage-dir set (the lean equivalent of the probe). const mainBranches = branchNodes.filter((node) => node?.name.endsWith("/main"), ) - - const branchReadPromises = mainBranches.map(async (node) => { - if (!node) return + const prMetaBySlug = new Map< + string, + { prUrl: string | null; prStatus: string | null; prNumber: number | null } + >() + const mainSlugs: Array<{ slug: string; branch: string }> = [] + for (const node of mainBranches) { + if (!node) continue const slug = node.name.replace(/\/main$/, "") - const branchName = `haiku/${node.name}` - + const branch = `haiku/${node.name}` const pr = node.associatedPullRequests.nodes?.[0] - const prMeta = pr - ? { - prUrl: pr.url, - prStatus: pr.state.toLowerCase(), - prNumber: pr.number, - } - : { prUrl: null, prStatus: null, prNumber: null } - - const rawText = await this.readFileFromBranch( - branchName, - `.haiku/intents/${slug}/intent.md`, - ) - if (!rawText) return + prMetaBySlug.set(slug, { + prUrl: pr?.url ?? null, + prStatus: pr?.state.toLowerCase() ?? null, + prNumber: pr?.number ?? null, + }) + mainSlugs.push({ slug, branch }) + } - const intent = this.parseIntentFromRaw(slug, rawText, { - branch: branchName, + const batch = await this.batchMainBranchData(mainSlugs) + for (const { slug, branch } of mainSlugs) { + const data = batch.get(slug) + if (!data?.rawText) continue + const prMeta = prMetaBySlug.get(slug) ?? { + prUrl: null, + prStatus: null, + prNumber: null, + } + const intent = this.parseIntentFromRaw(slug, data.rawText, { + branch, ...prMeta, }) - // v4 active-stage refinement — when intent.md has no - // `active_stage` (v4 dropped it), look at the stages tree - // (cheap directory listing — no per-unit reads) and pick the - // last stage that has any unit files. Falls back to stages[0] - // when the agent hasn't touched any stage yet. - const isV4 = isV4Intent(intent.raw) - if (isV4 && intent.studioStages.length > 0) { - const stagesWithUnits = await this.probeStagesWithUnits( - slug, - branchName, - intent.studioStages, - ) + if (isV4Intent(intent.raw) && intent.studioStages.length > 0) { intent.activeStage = deriveActiveStageFromStageTree( intent.studioStages, - stagesWithUnits, + new Set(data.stageDirs), ) - // Recompute progress to match the refined active stage — v4 - // intent.md has no active_stage, so the initial parse left - // stagesComplete at 0 and the list-view progress bar (gated on - // stagesComplete > 0) stayed hidden for in-flight intents. if (intent.status !== "completed") { const idx = intent.studioStages.indexOf(intent.activeStage) if (idx >= 0) intent.stagesComplete = idx } } intentsBySlug.set(slug, intent) - this.intentBranchMap.set(slug, branchName) - this.intentMetaMap.set(slug, { branch: branchName, ...prMeta }) - }) - - // Stream default-branch intents immediately so the UI renders progressively - for (const [, intent] of intentsBySlug) { - onProgress?.(intent) + this.intentBranchMap.set(slug, branch) + this.intentMetaMap.set(slug, { branch, ...prMeta }) } - // Branch reads may update existing entries — re-emit after they resolve - await Promise.all(branchReadPromises) - const allIntents = Array.from(intentsBySlug.values()) - for (const intent of allIntents) { - if (intent.branch) onProgress?.(intent) - } - + for (const intent of allIntents) onProgress?.(intent) return allIntents } From 3da9eeacf38132e44ba3250fd26f7436129af15e Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 08:58:29 -0600 Subject: [PATCH 05/24] feat(engine): hold intents at pending_seal until merged into the default branch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An intent is no longer sealed the moment its approvals sign. Sealing is the terminal write-lock (`sealed_at`), and the work isn't actually delivered until `haiku//main` lands on the repo's default branch. So the cursor now gates the seal on that merge. Engine: - New `orchestrator/workflow/intent-delivery.ts` — `intentDeliveryState` / `isAwaitingMerge`, squash-merge-aware via the existing `isBranchMerged` (local `--is-ancestor` first, gh/glab merged-PR fallback), plus a cheap local-only mode for per-request display paths. - Cursor terminal gate emits a new `pending_seal` action and HOLDS (no `sealed_at`) when the hub branch isn't an ancestor of the default branch. Falls through to `seal_intent` when merged, in filesystem mode, or when no default branch resolves. The engine never merges itself (honors "never merge unless asked"); the next tick re-checks and seals once the merge lands. - `pending_seal` prompt builder + template, registered. - On `/haiku:haiku-pickup` of a held intent, `haiku_run_next` re-opens the `PR_INTERACTION_ROLES` approvals (`delivery-verifier`) so it re-audits the open change request and files feedback for new review comments before sealing. Keyed on the role-class set, so cascade overrides are honored. Phase indicators: - Statusline: new `pending_seal` phase (render kind + violet hue, "pending seal" label, gated). - Derived status `pending_seal` on `haiku_intent_list`. Left `haiku_capacity` sealed_at-only (throughput report, not a phase indicator — held intents count as in-flight there). - SPA wire: `current_state.seal_status` + `awaiting_merge_into` (Zod + engine type + `current-state.ts`); `IntentCompleteView` renders a "Pending seal" badge and "awaiting merge into " copy. - Website architecture map post-intent card + actors/payload sync; CLAUDE.md concept row; PROMPTS.md folder listing. Tests: - `seal-intent-commits` now proves both halves: it holds at `pending_seal` with no `sealed_at`, then seals after a simulated delivery. - New shared `deliverIntent` test helper (merges the hub branch onto the default branch — what the human/host does); the 8 git-backed lifecycle/e2e drivers call it on `pending_seal` so they still reach `sealed`. - Refreshed the stale `parity.spec.tsx` DOM snapshot (a pre-existing GateDecisionBar copy drift unrelated to this change). Full suites green: haiku 2069, haiku-api 171, haiku-ui 574; haiku-ui + website typecheck clean; MCP build green. Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 1 + packages/haiku-api/src/schemas/session.ts | 11 + packages/haiku-ui/budget.json | 2 +- .../src/pages/review/IntentCompleteView.tsx | 41 +- .../src/routes/review/$sessionId/route.tsx | 4 + .../tests/__snapshots__/parity.spec.tsx.snap | 2 +- packages/haiku/src/current-state.ts | 24 + packages/haiku/src/haiku-ui-html.ts | 2 +- .../haiku/src/orchestrator/prompts/PROMPTS.md | 2 +- .../haiku/src/orchestrator/prompts/index.ts | 2 + .../prompts/intent/seal/pending_seal/index.ts | 48 + .../haiku/src/orchestrator/workflow/cursor.ts | 31 + .../orchestrator/workflow/intent-delivery.ts | 86 ++ .../orchestrator/workflow/progress-track.ts | 1 + packages/haiku/src/state-tools.ts | 27 +- packages/haiku/src/statusline/render.ts | 5 + packages/haiku/src/statusline/state.ts | 5 + .../src/tools/orchestrator/haiku_run_next.ts | 45 + packages/haiku/src/types.ts | 11 + packages/haiku/test/_v4-fixtures.mjs | 45 + .../haiku/test/cross-stage-fb-rewalk.test.mjs | 8 + .../haiku/test/drift-mid-flight-e2e.test.mjs | 14 +- .../haiku/test/e2e-mode-coverage.test.mjs | 8 + .../haiku/test/e2e-software-studio.test.mjs | 8 + .../test/feedback-mid-flight-e2e.test.mjs | 8 + packages/haiku/test/multi-mode-e2e.test.mjs | 14 +- .../haiku/test/multi-tick-pipeline.test.mjs | 15 +- .../haiku/test/real-intent-dry-run.test.mjs | 8 + .../haiku/test/seal-intent-commits.test.mjs | 52 +- plugin/bin/haiku.mjs | 1157 +++++++++-------- .../intent/seal/pending_seal/template.eta.md | 13 + .../_components/ArchitectureMap.tsx | 24 +- .../[slug]/architecture/_data/actors.ts | 2 +- .../[slug]/architecture/_data/payload-for.ts | 4 +- 34 files changed, 1116 insertions(+), 614 deletions(-) create mode 100644 packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts create mode 100644 packages/haiku/src/orchestrator/workflow/intent-delivery.ts create mode 100644 plugin/prompts/intent/seal/pending_seal/template.eta.md diff --git a/CLAUDE.md b/CLAUDE.md index 9721ef752..9ca728afc 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -79,6 +79,7 @@ When modifying any component, check if other components need corresponding updat | Feedback Assessor | Fix Loop | Terminal hat in `fix_hats` that independently decides closure — `plugin/studios/{name}/stages/{stage}/hats/feedback-assessor.md` | orchestrator.ts | | Studio Review Agent | Intent-Completion Review | `plugin/studios/{name}/intent-review-agents/{agent}.md` (NOT per-stage). Walked by the cursor's intent-completion walk: `intentReviewRoles(mode, studioAgents)` appends each `intent-review-agents/*.md` after the engine roles (spec, continuity, cross-stage-consistency), deduped against them, before the terminal `user` gate; `intent_review/index.ts` resolves the mandate body via `readStudioReviewAgentPaths`. (Pre-2026-05-21 the append was severed — only `cross-stage-consistency`, promoted to an engine role, fired; `runtime-verifier` silently never ran at intent completion. The drift fix restored the general append.) Resolved by a TWO-tier cascade (2026-05-21): a GLOBAL tier at `plugin/intent-review-agents/*.md` (sibling of `studios/`, same shape as global `hats/`/`review-agents/`) is read first, then the per-studio `plugin/studios/{name}/intent-review-agents/*.md` overrides by agent name; project `.haiku/` overrides plugin at each tier. `delivery-verifier` lives at the global tier so EVERY studio runs it; software additionally ships `runtime-verifier` (drives the integrated app) + `cross-stage-consistency`. Opt out with `intent_completion_review: false` on intent frontmatter. Directory was renamed from `review-agents/` 2026-05-18 to free the studio-tier slot in the stage-review cascade | cursor.ts (`intentReviewRoles`, `walkIntentTrack`), `intent_review/index.ts`, `readStudioReviewAgentPaths` | | Delivery Verifier | Intent-Completion Review | `plugin/intent-review-agents/delivery-verifier.md` — the GLOBAL-tier intent-review-agent, so **every studio** runs it at intent close (2026-05-21; was software-only). Confirms the intent is *deliverable*: waits for the delivery PR's CI to settle (`gh pr checks --watch`), files one intent-scope FB per failure (concrete: failing check + command + error + file), AND checks that CI is *meaningful* not just green — it reads the intent's quality-gate union (`haiku_unit_list` + `haiku_unit_get { field: "quality_gates" }`) as the reference set and files a finding when a declared gate isn't run by any CI job, when a green check is a no-op (`exit 0` / "0 tests" / never-triggered conditional), or when code shipped to a remote with no pipeline enforcing the work's own bar. Also reads/replies-to/resolves the PR review conversation. Signs off only when CI is green AND meaningful AND the PR is **mergeable** (not draft, no conflicts — `gh pr view --json isDraft,mergeable`) AND no actionable review thread is open; otherwise findings drive the studio fix-hat loop and it re-audits until clean. **Provider-agnostic by design — assumes NO authed CLI/provider** (2026-05-25): (1) it FIRST checks the provider-free merge signal via local git — if `haiku//main` is already an ancestor of mainline (`git merge-base --is-ancestor`), the host's branch protection already gated CI+review, so the merge IS proof → sign off; (2) no remote at all → genuine SKIP; (3) remote + PR exists + provider access → verify as above; (4) remote + unmerged + NO provider access (no/unauthed CLI) → it is **blind to a gate that exists**, which is NOT a SKIP — it files ONE `severity: medium` intent FB escalating to the human (confirm CI green + merge, or grant CLI access) that HOLDS the `delivery-verifier` stamp (open invalidating FB → `dispatch-stamps.ts` skips the stamp) WITHOUT spinning the fix-hat loop (medium < fix threshold; a fixer can't authenticate a CLI), and re-audits via merge-proof / live-CI on the next pass. Never a silent false-green seal on an unverifiable delivery. Carries the `PR_INTERACTION_ROLES` scope carve-out (may mutate the PR via `gh`/`glab` — reply + resolve — but never edits source; code fixes flow through findings). Independent of `runtime-verifier` (boots-locally ≠ CI-green) | delivery-verifier.md, `_shared/index.ts` (`PR_INTERACTION_ROLES`), `intent_review/subagent.eta.md` | +| Pending seal (terminal hold) | Quality Enforcement | An intent is NOT sealed (terminal write-lock `sealed_at`) until its work has landed on the repo's default branch. After every intent-scope approval is signed and reflection is done, the cursor's terminal gate checks `intentDeliveryState(slug)` (squash-merge-aware `isBranchMerged(haiku//main, getMainlineBranch())`): if the hub branch is NOT an ancestor of the default branch it emits `pending_seal` and HOLDS — `sealed_at` stays null and the engine NEVER merges (honors "never merge unless asked"); the next tick re-checks and seals once the merge lands (local merge OR merged PR/MR both count). Inapplicable in filesystem mode / when no default branch resolves / when already merged → seals immediately as before. On `/haiku:haiku-pickup` of a held intent, `haiku_run_next` re-opens the `PR_INTERACTION_ROLES` approvals (`delivery-verifier`) so it re-audits the open change request and files feedback for any new review comments before sealing — honors cascade overrides (keyed on the role-class set, not a hardcoded name). Surfaced as derived status `pending_seal` on `haiku_intent_list`, `current_state.seal_status` + `awaiting_merge_into` on the SPA wire (rendered by `IntentCompleteView`), the `pending_seal` statusline phase, and the architecture-map post-intent card. NOT surfaced in `haiku_capacity` (throughput report stays sealed_at-only: held intents count as in-flight) | orchestrator/workflow/intent-delivery.ts, orchestrator/workflow/cursor.ts (terminal gate + `pending_seal` action), tools/orchestrator/haiku_run_next.ts (pickup re-open), prompts/intent/seal/pending_seal, current-state.ts, statusline/{state,render}.ts | | Pre-tick clean-tree gate | Quality Enforcement | `haiku_run_next` blocks the tick when the working tree has uncommitted work OUTSIDE the engine's `.haiku/` bookkeeping and returns `dirty_tree_blocking_tick`, telling the agent to commit its own work with logical, story-telling messages (the engine no longer authors the agent's commits under a generic "wip" message). Runs after the mid-merge detector. Engine-owned `.haiku/` writes stay the engine's job (committed at lifecycle points; `autoCommitDirtyTree` fallbacks cover mid-merge edges). Classifier: `uncommittedAgentWork()`. Paired with the end-of-tick auto-push (active stage branch, or intent main during the completion phase) so CI + the delivery PR stay current | git-worktree.ts (`uncommittedAgentWork`, auto-push), tools/orchestrator/haiku_run_next.ts | | Studio Fix Hat | Intent-Completion Review | Two-tier cascade (global → studio, more-specific wins; project `.haiku/` overrides plugin at each tier): `plugin/fix-hats/{hat}.md` → `plugin/studios/{name}/fix-hats/{hat}.md`. NOT per-stage. Dispatched against intent-scope feedback. The shared `validator` (terminal fix verifier) and `reconciler` (cross-stage alignment) live at the GLOBAL tier so every studio inherits ONE copy; a studio drops a same-named file to override (e.g. `hwdev` ships a hardware-specific `reconciler`). Chain ORDER comes from `resolveStudioFixHats` (STUDIO.md `fix_hats:` if declared, else alphabetical over the cascade) — the SAME ordered source the cursor, `haiku_feedback_advance_hat`, and `_reject_hat` all use | orchestrator.ts (`intent_completion_fix` action), studio.ts (`resolveStudioFixHats`), studio-reader.ts (`readStudioFixHatPaths`/`readStudioFixHatDefs`, `fixHatDirCascade`) | | Feedback Triage | Quality Enforcement | `triaged_at:` on feedback frontmatter — pre-tick gate (`feedback-triage-gate.ts`) classifies open FBs before any handler dispatch; cross-stage findings are relocated via `haiku_feedback_move` rather than carrying a stage hint | state-tools.ts, orchestrator/workflow/feedback-triage-gate.ts | diff --git a/packages/haiku-api/src/schemas/session.ts b/packages/haiku-api/src/schemas/session.ts index bc1605a83..dae6e0338 100644 --- a/packages/haiku-api/src/schemas/session.ts +++ b/packages/haiku-api/src/schemas/session.ts @@ -249,6 +249,17 @@ export const IntentCurrentStateSchema = z * `milestones.length` when every milestone is done. */ progress_index: z.number().int().nonnegative().optional(), progress_total: z.number().int().nonnegative().optional(), + /** Terminal seal state — present only once every stage has merged + * (the intent is past all stages). `"sealed"` once the terminal + * write-lock is stamped; `"pending_seal"` when the work is built, + * signed, and reflected but its hub branch hasn't yet landed on the + * repo's default branch (held awaiting merge — the engine never + * merges; the human or the host does). Omitted while any stage is + * still in flight. */ + seal_status: z.enum(["sealed", "pending_seal"]).optional(), + /** When `seal_status === "pending_seal"`, the default branch the work + * is waiting to land on (e.g. `main`). */ + awaiting_merge_into: z.string().optional(), }) .describe( "Unified current-state snapshot — derived fresh per request from per-unit frontmatter and branch-merge state. The single source of truth for 'where is this intent right now?'.", diff --git a/packages/haiku-ui/budget.json b/packages/haiku-ui/budget.json index 1aeef4bb7..6a14538bf 100644 --- a/packages/haiku-ui/budget.json +++ b/packages/haiku-ui/budget.json @@ -1,6 +1,6 @@ { "bundleGzipMaxBytes": 1048576, - "lastKnownGzipBytes": 857047, + "lastKnownGzipBytes": 857235, "notes": [ "Pre-move bundle measured at 929.8 KB gzipped (inlined HTML blob at stages/development/artifacts/bundle-baseline.html). Post-move blob was 884.9 KB gzipped (-44.8 KB from pre-move relocation).", "FB-21: vite.config.ts had `minify: false`, shipping a ~919 KB un-minified inlined SPA. Flipping to `minify: \"esbuild\"` (Vite default) dropped the inlined gzipped size to 693 KB (-24.6% / ~220 KB saved) with no bundle-shape changes — single inline HTML blob still required by the MCP embedder.", diff --git a/packages/haiku-ui/src/pages/review/IntentCompleteView.tsx b/packages/haiku-ui/src/pages/review/IntentCompleteView.tsx index ee9ccc8b5..bcbe5e2fe 100644 --- a/packages/haiku-ui/src/pages/review/IntentCompleteView.tsx +++ b/packages/haiku-ui/src/pages/review/IntentCompleteView.tsx @@ -56,6 +56,16 @@ export interface IntentCompleteViewProps { * explicit URL — common when the user opens the PR via `gh pr * create` or the GitHub UI directly. */ discoveredReviewUrl?: DiscoveredReviewUrl | null + /** Terminal seal state from the cursor (`current_state.seal_status`). + * `"sealed"` → the work landed on the default branch and the intent is + * write-locked. `"pending_seal"` → built + signed + reflected but the + * hub branch hasn't merged into the default branch yet, so the intent + * is HELD (the engine never merges; the human/host does). Null on older + * payloads → fall back to the deprecated `status` frontmatter shim. */ + sealStatus?: "sealed" | "pending_seal" | null + /** When `sealStatus === "pending_seal"`, the default branch the work is + * waiting to land on (e.g. `main`). */ + awaitingMergeInto?: string | null /** Output artifacts across every stage. Surfaced as a click-out * list at the final intent gate so reviewers can walk through * the deliverables before approving the merge. */ @@ -84,6 +94,8 @@ export function IntentCompleteView({ stageOrder, deliveryReviewUrl, discoveredReviewUrl, + sealStatus, + awaitingMergeInto, outputArtifacts, outputDeclaredBy, }: IntentCompleteViewProps): React.ReactElement { @@ -104,11 +116,18 @@ export function IntentCompleteView({ ) const phase = (intentFrontmatter.phase as string | undefined) ?? "" const status = intentFrontmatter.status ?? "" - const isFullyComplete = status === "completed" - const headlineLabel = isFullyComplete + // Prefer the cursor's authoritative seal_status; fall back to the + // deprecated v3 `status` shim only when the wire didn't carry it. + const isSealed = + sealStatus === "sealed" || (sealStatus == null && status === "completed") + const isPendingSeal = sealStatus === "pending_seal" + const headlineLabel = isSealed ? "Intent complete" - : "All stages reviewed" + : isPendingSeal + ? "Pending seal" + : "All stages reviewed" const intentMainBranch = `haiku/${intentSlug}/main` + const mergeTarget = awaitingMergeInto || "the repo's default branch" return (
- + {headlineLabel} {phase && ( @@ -141,13 +164,13 @@ export function IntentCompleteView({ .

)} - {!isFullyComplete && ( + {!isSealed && (

Awaiting merge of{" "} - {intentMainBranch} into the - repo's mainline. The merge is the only remaining action — no further{" "} - haiku_run_next tick needed to - seal. + {intentMainBranch} into{" "} + {mergeTarget}. The intent is built, + signed, and reflected — but it won't seal until that merge lands. The + engine never merges it for you; merging is the human/host's call.

)}
diff --git a/packages/haiku-ui/src/routes/review/$sessionId/route.tsx b/packages/haiku-ui/src/routes/review/$sessionId/route.tsx index 3a0138220..fdc14c2d0 100644 --- a/packages/haiku-ui/src/routes/review/$sessionId/route.tsx +++ b/packages/haiku-ui/src/routes/review/$sessionId/route.tsx @@ -613,6 +613,10 @@ function ReviewLayoutLoaded({ stageOrder={stageNamesOrdered} deliveryReviewUrl={deliveryReviewUrl} discoveredReviewUrl={discoveredReviewUrl} + sealStatus={session.current_state?.seal_status ?? null} + awaitingMergeInto={ + session.current_state?.awaiting_merge_into ?? null + } outputArtifacts={session.output_artifacts} outputDeclaredBy={session.output_declared_by} /> diff --git a/packages/haiku-ui/tests/__snapshots__/parity.spec.tsx.snap b/packages/haiku-ui/tests/__snapshots__/parity.spec.tsx.snap index 89ec21d74..34ab7298e 100644 --- a/packages/haiku-ui/tests/__snapshots__/parity.spec.tsx.snap +++ b/packages/haiku-ui/tests/__snapshots__/parity.spec.tsx.snap @@ -4,4 +4,4 @@ exports[`DOM parity — rendered app matches committed snapshot per fixture > di exports[`DOM parity — rendered app matches committed snapshot per fixture > question session renders a stable DOM tree > dom-question.html 1`] = `"Skip to main content

Context

Our research surfaced several candidate palettes. Pick the one that best matches the mood in the brief.

Reference images

Each image stays interactive. Click the pencil FAB (bottom-right) to annotate — draw on the surface, add a comment, submit. Captured annotations show in a list below.

Reference 1 of 2
Image 1 of 2

Which palette should we prototype first?

Pick exactly one option below.

"`; -exports[`DOM parity — rendered app matches committed snapshot per fixture > review session renders a stable DOM tree > dom-review.html 1`] = `"Skip to main content
intentin progressv3
"`; +exports[`DOM parity — rendered app matches committed snapshot per fixture > review session renders a stable DOM tree > dom-review.html 1`] = `"Skip to main content
intentin progressv3
"`; diff --git a/packages/haiku/src/current-state.ts b/packages/haiku/src/current-state.ts index 931018323..89f42b713 100644 --- a/packages/haiku/src/current-state.ts +++ b/packages/haiku/src/current-state.ts @@ -38,6 +38,7 @@ import { serializeElaborateSignals, } from "./orchestrator/workflow/cursor.js" import { deriveStageState } from "./orchestrator/workflow/derived-stage-state.js" +import { intentDeliveryState } from "./orchestrator/workflow/intent-delivery.js" import { intentDir, parseFrontmatter } from "./state-tools.js" import type { IntentCurrentState, IntentPhase } from "./types.js" @@ -152,10 +153,33 @@ export function getCurrentState( if (signals.length > 0) pending_signals = serializeElaborateSignals(signals) } + // Terminal seal state — only meaningful once every stage has merged + // (`findCurrentStage` returned null). `sealed_at` → "sealed"; otherwise + // the work is built+signed but the hub branch may still be awaiting a + // merge into the default branch → "pending_seal". LOCAL-only merge probe + // (no gh/glab) — this is a per-request display path. + let seal_status: "sealed" | "pending_seal" | undefined + let awaiting_merge_into: string | undefined + if (cursorStage === null) { + const sealedAt = + typeof intent.sealed_at === "string" && intent.sealed_at.length > 0 + if (sealedAt) { + seal_status = "sealed" + } else { + const delivery = intentDeliveryState(slug, { localOnly: true }) + if (delivery.applicable && !delivery.merged) { + seal_status = "pending_seal" + awaiting_merge_into = delivery.defaultBranch + } + } + } + return { studio, stage: current, phase, ...(pending_signals ? { pending_signals } : {}), + ...(seal_status ? { seal_status } : {}), + ...(awaiting_merge_into ? { awaiting_merge_into } : {}), } } diff --git a/packages/haiku/src/haiku-ui-html.ts b/packages/haiku/src/haiku-ui-html.ts index e505f47d7..586e07e62 100644 --- a/packages/haiku/src/haiku-ui-html.ts +++ b/packages/haiku/src/haiku-ui-html.ts @@ -4,7 +4,7 @@ import { brotliDecompressSync } from "node:zlib" // SPA HTML, minified by vite then brotli-compressed + base64-encoded // at build time. Decompressed once here at module load. const COMPRESSED_B64 = - "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" export const HAIKU_UI_HTML: string = brotliDecompressSync( Buffer.from(COMPRESSED_B64, "base64"), diff --git a/packages/haiku/src/orchestrator/prompts/PROMPTS.md b/packages/haiku/src/orchestrator/prompts/PROMPTS.md index 298a14c08..a6d549269 100644 --- a/packages/haiku/src/orchestrator/prompts/PROMPTS.md +++ b/packages/haiku/src/orchestrator/prompts/PROMPTS.md @@ -62,7 +62,7 @@ prompts/ review/ intent_review (per-role serial walk; engine roles render from sibling intent_review/engine-bodies/.eta.md) - seal/ seal_intent, intent_complete, intent_approved + seal/ seal_intent, pending_seal, intent_complete, intent_approved repair/ safe_intent_repair, revise_unit_specs, external_review_requested diff --git a/packages/haiku/src/orchestrator/prompts/index.ts b/packages/haiku/src/orchestrator/prompts/index.ts index 4513a0466..8cfe9c27c 100644 --- a/packages/haiku/src/orchestrator/prompts/index.ts +++ b/packages/haiku/src/orchestrator/prompts/index.ts @@ -50,6 +50,7 @@ import safe_intent_repair from "./intent/repair/safe_intent_repair/index.js" import intent_review from "./intent/review/intent_review/index.js" import intent_approved from "./intent/seal/intent_approved/index.js" import intent_complete from "./intent/seal/intent_complete/index.js" +import pending_seal from "./intent/seal/pending_seal/index.js" import seal_intent from "./intent/seal/seal_intent/index.js" // ── intent/ ─────────────────────────────────────────────────────── import migrated from "./intent/setup/migrated/index.js" @@ -130,6 +131,7 @@ export const actionPromptBuilders: ReadonlyMap = new Map< ["intent_approved", intent_approved], ["intent_complete", intent_complete], ["seal_intent", seal_intent], + ["pending_seal", pending_seal], ["external_review_requested", external_review_requested], ["revise_unit_specs", revise_unit_specs], ["safe_intent_repair", safe_intent_repair], diff --git a/packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts b/packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts new file mode 100644 index 000000000..6c95d961f --- /dev/null +++ b/packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts @@ -0,0 +1,48 @@ +// orchestrator/prompts/intent/seal/pending_seal/index.ts — the +// pending-seal holding prompt. +// +// Cursor returns `pending_seal` when every stage is built, every +// intent-level approval is signed, reflection is done — but the +// intent's `haiku//main` hub branch has NOT yet landed on the +// repo's default branch. The work is delivered to the change request; +// the change request hasn't merged. The intent is HELD here instead of +// sealed (`sealed_at` stays null), and the engine never performs the +// merge itself (honors "never merge unless asked"). It seals on a later +// tick once the merge lands. See `workflow/intent-delivery.ts`. + +import { existsSync, readFileSync } from "node:fs" +import { join } from "node:path" +import { Eta } from "eta" +import matter from "gray-matter" +import { loadTemplate } from "../../../_load-template.js" +import { definePromptBuilder } from "../../../define.js" + +const eta = new Eta({ autoEscape: false, useWith: true }) +const TEMPLATE = loadTemplate(import.meta.url) + +export default definePromptBuilder(({ slug, action, dir }) => { + const defaultBranch = + (action as { default_branch?: string }).default_branch || "the default branch" + // Surface the delivery PR/MR url if we stamped one at intent_create + // (informational — the engine never gates on it). Read from intent.md + // FM; absent when no provider CLI was available. + let prUrl = "" + try { + const intentMd = join(dir, "intent.md") + if (existsSync(intentMd)) { + const fm = matter(readFileSync(intentMd, "utf8")).data as Record< + string, + unknown + > + if (typeof fm.draft_pr_url === "string") prUrl = fm.draft_pr_url + } + } catch { + // best-effort — the prompt still renders without the link + } + return eta.renderString(TEMPLATE, { + slug, + defaultBranch, + prUrl, + intentMain: `haiku/${slug}/main`, + }) +}) diff --git a/packages/haiku/src/orchestrator/workflow/cursor.ts b/packages/haiku/src/orchestrator/workflow/cursor.ts index c1f7dbd88..6c8d958ee 100644 --- a/packages/haiku/src/orchestrator/workflow/cursor.ts +++ b/packages/haiku/src/orchestrator/workflow/cursor.ts @@ -78,6 +78,7 @@ import { resolveStudioFixHats, } from "../studio.js" import { engineHandleDriftEvents } from "./drift-handle-events.js" +import { intentDeliveryState } from "./intent-delivery.js" import { runDriftSweep } from "./drift-sweep.js" // Roles that dispatch as serial sequential gates (one per tick). @@ -313,6 +314,17 @@ export type CursorAction = // `reflection.md` already exists for this intent. | { kind: "record_reflection" } | { kind: "seal_intent" } + // Pending seal (2026-05-28) — every stage built, every intent-scope + // approval signed, reflection done, but the intent's `haiku//main` + // hub branch has NOT yet landed on the repo's default branch. The work + // is on the PR; the delivery hasn't merged. The intent is HELD here + // rather than sealed: `sealed_at` stays null. The engine never performs + // the merge (honors "never merge unless asked"); the next tick re-checks + // and seals once the merge lands. On pickup the delivery-verifier + // re-audits the open change request and files feedback for any new + // review comments. `default_branch` is the branch we're waiting to land + // on. See `intent-delivery.ts`. + | { kind: "pending_seal"; default_branch: string } | { kind: "sealed" } // Pre-dispatch validation — refuse to fire `start_unit_hat` when // one or more units in the wave/dispatch set are structurally @@ -2371,6 +2383,25 @@ export function derivePosition(args: { } } } + // Merge gate (2026-05-28). The intent is fully built, signed, + // and reflected — but it is not SEALED until its work has landed + // on the repo's default branch. While the hub branch is still + // ahead of (not merged into) the default branch, hold in + // `pending_seal` instead of stamping `sealed_at`. Authoritative + // (squash-merge-aware) read — this is the signal that actually + // writes the terminal lock. Inapplicable in filesystem mode / when + // no default branch resolves → `merged` is true and the seal + // proceeds exactly as before. + const delivery = intentDeliveryState(slug) + if (delivery.applicable && !delivery.merged) { + return { + track: "intent", + action: { + kind: "pending_seal", + default_branch: delivery.defaultBranch, + }, + } + } return { track: "intent", action: { kind: "seal_intent" }, diff --git a/packages/haiku/src/orchestrator/workflow/intent-delivery.ts b/packages/haiku/src/orchestrator/workflow/intent-delivery.ts new file mode 100644 index 000000000..aa18ed838 --- /dev/null +++ b/packages/haiku/src/orchestrator/workflow/intent-delivery.ts @@ -0,0 +1,86 @@ +// intent-delivery.ts — "is this intent's work actually delivered?" +// +// The merge-into-default-branch signal that gates the terminal seal. An +// intent is only SEALED (the terminal write-lock — `sealed_at` on +// intent.md) once its `haiku//main` hub branch has landed on the +// repo's default branch — merged locally or via a remote PR/MR. Until +// then the cursor holds it in `pending_seal`: every stage is built, +// every approval is signed, the work is done — but the delivery hasn't +// crossed the finish line, so the lifecycle stays open. +// +// This honors "never merge unless asked": the engine NEVER performs the +// merge into the default branch. It only OBSERVES whether the merge has +// happened (by the user, by a merged PR, by branch protection) and seals +// once it has. +// +// Two read modes: +// - authoritative (default): squash-merge-aware via `isBranchMerged` +// (local `--is-ancestor` first, then a `gh`/`glab` merged-PR probe). +// Used by the cursor's terminal gate — the signal that actually +// writes `sealed_at` must not false-hold a squash-merged delivery. +// - localOnly: cheap `--is-ancestor` only, no network. Used by the +// list / current-state DISPLAY paths called per-request/per-intent +// where a `gh`/`glab` probe per intent would be too costly; a +// transient `pending_seal` on a squash-merged-but-not-yet-ticked +// intent is acceptable there (the next authoritative tick seals it). + +import { + branchExists, + getMainlineBranch, + isAncestor, + isBranchMerged, +} from "../../git-worktree.js" +import { isGitRepo } from "../../state/shared.js" + +export interface IntentDeliveryState { + /** True when the merge gate APPLIES: the repo is git-backed, a + * default branch resolves, and the intent has a `haiku//main` + * hub branch to land. When false the gate is inapplicable + * (filesystem mode, no resolvable default, or a pre-branch intent) + * and the intent seals immediately, exactly as it did before. */ + applicable: boolean + /** The resolved default branch name (empty when not applicable). */ + defaultBranch: string + /** The intent's hub branch — `haiku//main`. */ + intentMain: string + /** True when `intentMain` has landed on `defaultBranch`. Always true + * when `!applicable` so callers can treat "merged" as "free to + * seal" without branching on `applicable`. */ + merged: boolean +} + +/** Resolve whether an intent's hub branch has been delivered (merged) + * into the repo's default branch. See the module header for the two + * read modes. */ +export function intentDeliveryState( + slug: string, + opts: { localOnly?: boolean } = {}, +): IntentDeliveryState { + const intentMain = `haiku/${slug}/main` + if (!isGitRepo()) { + return { applicable: false, defaultBranch: "", intentMain, merged: true } + } + const defaultBranch = getMainlineBranch() + // No resolvable default branch, or the intent never forked a hub + // branch (filesystem-shaped / pre-branch intent) → the gate is + // inapplicable; treat as merged so the seal proceeds as before. + if (!defaultBranch || !branchExists(intentMain)) { + return { applicable: false, defaultBranch, intentMain, merged: true } + } + const merged = opts.localOnly + ? isAncestor(intentMain, defaultBranch) || + isAncestor(intentMain, `origin/${defaultBranch}`) + : isBranchMerged(intentMain, defaultBranch) + return { applicable: true, defaultBranch, intentMain, merged } +} + +/** True when the intent is HELD in pending-seal — the merge gate applies + * AND the hub branch hasn't yet landed on the default branch. The + * inverse of "free to seal". */ +export function isAwaitingMerge( + slug: string, + opts: { localOnly?: boolean } = {}, +): boolean { + const d = intentDeliveryState(slug, opts) + return d.applicable && !d.merged +} diff --git a/packages/haiku/src/orchestrator/workflow/progress-track.ts b/packages/haiku/src/orchestrator/workflow/progress-track.ts index f38559a49..d9546ccc5 100644 --- a/packages/haiku/src/orchestrator/workflow/progress-track.ts +++ b/packages/haiku/src/orchestrator/workflow/progress-track.ts @@ -142,6 +142,7 @@ export function snapshotMilestoneIndex( case "record_reflection": return find((key) => key === "reflection") case "seal_intent": + case "pending_seal": case "sealed": return find((key) => key === "seal") default: diff --git a/packages/haiku/src/state-tools.ts b/packages/haiku/src/state-tools.ts index 99c5a99d6..23c779f66 100644 --- a/packages/haiku/src/state-tools.ts +++ b/packages/haiku/src/state-tools.ts @@ -43,6 +43,7 @@ import { findCurrentStage, nextHatForUnit, } from "./orchestrator/workflow/cursor.js" +import { isAwaitingMerge } from "./orchestrator/workflow/intent-delivery.js" import { sanitizeFeedbackBody } from "./state/sanitize-feedback.js" import { readServiceProcesses } from "./view-boot.js" @@ -9207,11 +9208,20 @@ export function handleStateTool( const sealedAt = typeof data.sealed_at === "string" && data.sealed_at.length > 0 const activeStage = studio ? findCurrentStage(slug, studio) : null - // Both "sealed_at set" and "every stage merged" surface as - // "completed" to callers. The distinction (sealed vs. - // pre-seal-complete) is internal to the engine. - const derivedStatus = - sealedAt || activeStage === null ? "completed" : "active" + // `sealed_at` set → "completed". Every stage merged but NOT + // sealed → either "pending_seal" (git-backed, the hub branch + // hasn't landed on the default branch — held awaiting merge) or + // "completed" (filesystem mode / already merged → it seals on the + // next tick). LOCAL-only merge probe here (no gh/glab) — this is + // a per-intent list display; a transient pending_seal on a + // squash-merged-not-yet-ticked intent is acceptable. + let derivedStatus: string + if (sealedAt) derivedStatus = "completed" + else if (activeStage === null) + derivedStatus = isAwaitingMerge(slug, { localOnly: true }) + ? "pending_seal" + : "completed" + else derivedStatus = "active" const base: Record = { slug, studio: data.studio, @@ -12087,7 +12097,12 @@ export function handleStateTool( if (filterStudio && studio !== filterStudio) continue if (!byStudio.has(studio)) byStudio.set(studio, []) // v3↔v4 dual-path: v4 has no status field on intent.md. - // sealed_at presence → "completed"; absence → "active". + // sealed_at presence → "completed"; absence → "active". This is + // a throughput grouping (not a phase indicator), so it stays + // sealed_at-only — an all-merged-but-unsealed intent (incl. + // pending-seal) counts as in-flight "active" here; the + // pending-seal distinction is surfaced by haiku_intent_list and + // the SPA current_state, not by this report. const isV4 = typeof data.plugin_version === "string" const v3Status = (data.status as string) || "" const v4Status = isV4 diff --git a/packages/haiku/src/statusline/render.ts b/packages/haiku/src/statusline/render.ts index f38cee9a2..8b09b462c 100644 --- a/packages/haiku/src/statusline/render.ts +++ b/packages/haiku/src/statusline/render.ts @@ -29,6 +29,10 @@ export type StatuslinePhaseKind = | "gate" | "complete" | "sealed" + // Terminal-but-held: built, signed, reflected — waiting for the work to + // land on the default branch before it seals. Rendered gated (the human + // owns the merge). + | "pending_seal" | "blocked" // Engine self-maintenance the agent isn't driving: merging a fix-chain, // resolving conflicts, reconciling upstream, repairing clobbered state. @@ -273,6 +277,7 @@ const C = { gate: "\x1b[38;5;170m", // magenta complete: "\x1b[38;5;71m", // green sealed: "\x1b[38;5;71m", // green + pending_seal: "\x1b[38;5;177m", // light violet — held, awaiting merge blocked: "\x1b[38;5;203m", // red recovering: "\x1b[38;5;44m", // cyan — engine self-maintenance (merge/repair) setup: "\x1b[38;5;245m", // grey (intent-level setup phases) diff --git a/packages/haiku/src/statusline/state.ts b/packages/haiku/src/statusline/state.ts index 56f5bb52f..5c4c105bd 100644 --- a/packages/haiku/src/statusline/state.ts +++ b/packages/haiku/src/statusline/state.ts @@ -159,6 +159,7 @@ const INTENT_COMPLETION_KINDS = new Set([ "intent_review", "record_reflection", "seal_intent", + "pending_seal", "sealed", ]) @@ -266,6 +267,10 @@ function describeAction(action: CursorAction | null): { case "seal_intent": case "sealed": return { kind: "sealed", label: "sealed", gated: false } + case "pending_seal": + // Built + signed + reflected, held until the work lands on the + // default branch. Gated: the human owns the merge. + return { kind: "pending_seal", label: "pending seal", gated: true } case "unit_inputs_not_declared": case "unit_outputs_empty_iterations": return { kind: "blocked", label: "spec error", gated: true } diff --git a/packages/haiku/src/tools/orchestrator/haiku_run_next.ts b/packages/haiku/src/tools/orchestrator/haiku_run_next.ts index 63fa0db58..27a929d79 100644 --- a/packages/haiku/src/tools/orchestrator/haiku_run_next.ts +++ b/packages/haiku/src/tools/orchestrator/haiku_run_next.ts @@ -49,6 +49,7 @@ import { isStageComplete, stageOwesObservations, } from "../../orchestrator/workflow/cursor.js" +import { PR_INTERACTION_ROLES } from "../../orchestrator/review-role-classes.js" import { runWorkflowTick } from "../../orchestrator/workflow/run-tick.js" import type { OrchestratorAction as OrchestratorActionType } from "../../orchestrator.js" import { @@ -1319,6 +1320,50 @@ export default defineTool({ } } + // Pending seal + pickup (2026-05-28). The intent is built, signed, + // and reflected, but its hub branch hasn't landed on the default + // branch — so the cursor is HOLDING it in `pending_seal` (no + // `sealed_at` written; the merge is the user's call). A pickup is the + // user's explicit "I'm back, re-check the delivery" signal: re-open + // the delivery PR-interaction approval(s) so the cursor re-dispatches + // the delivery-verifier, which re-reads the open change request, files + // feedback for any NEW review comments, and re-confirms + // CI/mergeability before the intent can seal again. Keyed on + // `PR_INTERACTION_ROLES` (not a hardcoded name) so a studio that + // overrides or adds a PR-interaction role is re-audited too. A plain + // (non-pickup) tick just returns the holding prompt. + if (result.action === "pending_seal" && args.pickup === true) { + try { + const intentMd = join(findHaikuRoot(), "intents", slug, "intent.md") + if (existsSync(intentMd)) { + const { data } = parseFrontmatter(readFileSync(intentMd, "utf8")) + const approvals = ( + data.approvals && typeof data.approvals === "object" + ? { ...(data.approvals as Record) } + : {} + ) as Record + let reopened = false + for (const role of Object.keys(approvals)) { + if (PR_INTERACTION_ROLES.has(role) && approvals[role] != null) { + approvals[role] = null + reopened = true + } + } + if (reopened) { + setFrontmatterField(intentMd, "approvals", approvals) + gitCommitState( + `haiku: re-open delivery review on pickup for ${slug}`, + ) + result = dispatchOrchestratorAction(slug) + } + } + } catch (err) { + console.error( + `[haiku_run_next] pending-seal pickup re-open failed: ${err instanceof Error ? err.message : String(err)}`, + ) + } + } + // Auto-execute for `complete_stage`: a SEMANTIC action ("stage // is done"). Under a git-backed portfolio this triggers a stage // branch → intent main merge; under filesystem-only backings it diff --git a/packages/haiku/src/types.ts b/packages/haiku/src/types.ts index 775aee54b..ce7f58db3 100644 --- a/packages/haiku/src/types.ts +++ b/packages/haiku/src/types.ts @@ -124,6 +124,17 @@ export interface IntentCurrentState { * `milestones.length` when every milestone is done. */ progress_index?: number progress_total?: number + /** Terminal seal state — present only once every stage has merged + * (the intent is past all stages). `"sealed"` once `sealed_at` is + * stamped; `"pending_seal"` when the work is built, signed, and + * reflected but its `haiku//main` hub branch hasn't yet landed + * on the repo's default branch (held awaiting merge — the engine + * never merges; the human/host does). Omitted while any stage is + * still in flight. */ + seal_status?: "sealed" | "pending_seal" + /** When `seal_status === "pending_seal"`, the default branch the work + * is waiting to land on (e.g. `main`). */ + awaiting_merge_into?: string } export interface DiscoveryFrontmatter { diff --git a/packages/haiku/test/_v4-fixtures.mjs b/packages/haiku/test/_v4-fixtures.mjs index 92f3cb00e..c6d2c99ce 100644 --- a/packages/haiku/test/_v4-fixtures.mjs +++ b/packages/haiku/test/_v4-fixtures.mjs @@ -404,6 +404,51 @@ export function initTestRepo({ repoRoot, slug }) { return { repoRoot, intentDir, slug } } +/** + * Resolve the repo's default (mainline) branch — the one the engine's + * `getMainlineBranch()` picks. Mirrors that candidate order (main → + * master) for tests, falling back to the current branch. + */ +export function defaultBranchOf(repoRoot) { + for (const c of ["main", "master"]) { + try { + git(repoRoot, "rev-parse", "--verify", c) + return c + } catch { + /* not this candidate */ + } + } + return git(repoRoot, "branch", "--show-current") +} + +/** + * Simulate the human/host merging the intent's delivery (`haiku//main`) + * into the repo's default branch. This is what satisfies the pending-seal + * merge gate (2026-05-28) so the cursor walks `seal_intent` instead of + * holding at `pending_seal`. The ENGINE never does this — it never merges + * into the default branch (honors "never merge unless asked") — so a test + * that drives a git-backed intent all the way to `sealed` must call this + * first, mirroring a real merged PR. Restores the prior checkout. + */ +export function deliverIntent({ repoRoot, slug }) { + const intentMain = `haiku/${slug}/main` + const def = defaultBranchOf(repoRoot) + const cur = git(repoRoot, "branch", "--show-current") + // Fast-forward the default branch ref to the hub branch tip WITHOUT a + // checkout — the engine leaves runtime sidecars (statusline.json, + // .deadlock-history.json) dirty in the tree, which would block a branch + // switch. `git branch -f` moves the ref in place; since the hub branch + // descends from the default branch's base in these fixtures this is a + // genuine fast-forward (== a merged delivery). Can't force the + // currently-checked-out branch, so fall back to a real merge in the rare + // case the default branch IS the checkout. + if (def === cur) { + git(repoRoot, "merge", "--no-edit", intentMain) + } else { + git(repoRoot, "branch", "-f", def, intentMain) + } +} + /** * Build a project-local studio fixture under `/.haiku/studios//`. * The studio search path is project-local first, so this overrides the diff --git a/packages/haiku/test/cross-stage-fb-rewalk.test.mjs b/packages/haiku/test/cross-stage-fb-rewalk.test.mjs index 4ed733ada..8db440e60 100644 --- a/packages/haiku/test/cross-stage-fb-rewalk.test.mjs +++ b/packages/haiku/test/cross-stage-fb-rewalk.test.mjs @@ -33,6 +33,7 @@ import { test } from "node:test" import { fileURLToPath } from "node:url" import matter from "gray-matter" import { + deliverIntent, initTestRepo, makeFeedback, makeIntent, @@ -86,6 +87,13 @@ async function withRepo(slug, fn) { // Kept inline so the two tests can evolve independently when their // hat-sequence expectations diverge. function applyResponse(intentDir, action, repoRoot, slug) { + // Merge gate (2026-05-28): when the engine holds at pending_seal, the + // human/host delivers the hub branch onto the default branch so the next + // tick can seal. The engine never performs this merge itself. + if (action.action === "pending_seal") { + deliverIntent({ repoRoot, slug }) + return + } const at = new Date().toISOString() const stage = action.stage if (!stage) { diff --git a/packages/haiku/test/drift-mid-flight-e2e.test.mjs b/packages/haiku/test/drift-mid-flight-e2e.test.mjs index 5244258fd..cab777d24 100644 --- a/packages/haiku/test/drift-mid-flight-e2e.test.mjs +++ b/packages/haiku/test/drift-mid-flight-e2e.test.mjs @@ -30,7 +30,12 @@ import { dirname, join } from "node:path" import { test } from "node:test" import { fileURLToPath } from "node:url" import matter from "gray-matter" -import { initTestRepo, makeIntent, makeStudio } from "./_v4-fixtures.mjs" +import { + deliverIntent, + initTestRepo, + makeIntent, + makeStudio, +} from "./_v4-fixtures.mjs" // Promoted to module scope so applyResponse and helpers can use it // without re-importing per call. @@ -82,6 +87,13 @@ async function withRepo(slug, fn) { } function applyResponse(intentDir, action, repoRoot, slug) { + // Merge gate (2026-05-28): when the engine holds at pending_seal, the + // human/host delivers the hub branch onto the default branch so the next + // tick can seal. The engine never performs this merge itself. + if (action.action === "pending_seal") { + deliverIntent({ repoRoot, slug }) + return + } const at = new Date().toISOString() const stage = action.stage if (!stage) { diff --git a/packages/haiku/test/e2e-mode-coverage.test.mjs b/packages/haiku/test/e2e-mode-coverage.test.mjs index 732d51d55..dd52a9420 100644 --- a/packages/haiku/test/e2e-mode-coverage.test.mjs +++ b/packages/haiku/test/e2e-mode-coverage.test.mjs @@ -45,6 +45,7 @@ import { dirname, join, resolve } from "node:path" import { test } from "node:test" import { fileURLToPath } from "node:url" import matter from "gray-matter" +import { deliverIntent } from "./_v4-fixtures.mjs" const HERE = dirname(fileURLToPath(import.meta.url)) const SRC = join(HERE, "..", "src") @@ -134,6 +135,13 @@ async function withRealStudioRepo(slug, fn) { } function applyResponse(intentDir, action, root, slug) { + // Merge gate (2026-05-28): when the engine holds at pending_seal, the + // human/host delivers the hub branch onto the default branch so the next + // tick can seal. The engine never performs this merge itself. + if (action.action === "pending_seal") { + deliverIntent({ repoRoot: root, slug }) + return + } const at = new Date().toISOString() const stage = action.stage if (!stage) { diff --git a/packages/haiku/test/e2e-software-studio.test.mjs b/packages/haiku/test/e2e-software-studio.test.mjs index 3a3bac775..0c6779fd2 100644 --- a/packages/haiku/test/e2e-software-studio.test.mjs +++ b/packages/haiku/test/e2e-software-studio.test.mjs @@ -35,6 +35,7 @@ import { tmpdir } from "node:os" import { dirname, join, resolve } from "node:path" import { test } from "node:test" import matter from "gray-matter" +import { deliverIntent } from "./_v4-fixtures.mjs" const HAS_GIT = (() => { try { @@ -319,6 +320,13 @@ test("e2e: software-studio pipeline never wheel-spins; every action is actionabl // real work, but for forward-progress assertions all we need is the // state mutation that satisfies the cursor's predicate. function applyResponse(intentDir, action, root, slug) { + // Merge gate (2026-05-28): when the engine holds at pending_seal, the + // human/host delivers the hub branch onto the default branch so the next + // tick can seal. The engine never performs this merge itself. + if (action.action === "pending_seal") { + deliverIntent({ repoRoot: root, slug }) + return + } const at = new Date().toISOString() const stage = action.stage // Intent-scope actions (intent_review, merge_intent) carry no diff --git a/packages/haiku/test/feedback-mid-flight-e2e.test.mjs b/packages/haiku/test/feedback-mid-flight-e2e.test.mjs index 11d10aec8..756e86623 100644 --- a/packages/haiku/test/feedback-mid-flight-e2e.test.mjs +++ b/packages/haiku/test/feedback-mid-flight-e2e.test.mjs @@ -27,6 +27,7 @@ import { test } from "node:test" import { fileURLToPath } from "node:url" import matter from "gray-matter" import { + deliverIntent, initTestRepo, makeFeedback, makeIntent, @@ -77,6 +78,13 @@ async function withRepo(slug, fn) { } function applyResponse(intentDir, action, repoRoot, slug) { + // Merge gate (2026-05-28): when the engine holds at pending_seal, the + // human/host delivers the hub branch onto the default branch so the next + // tick can seal. The engine never performs this merge itself. + if (action.action === "pending_seal") { + deliverIntent({ repoRoot, slug }) + return + } const at = new Date().toISOString() const stage = action.stage if (!stage) { diff --git a/packages/haiku/test/multi-mode-e2e.test.mjs b/packages/haiku/test/multi-mode-e2e.test.mjs index 2f08b4b3c..6574f36a8 100644 --- a/packages/haiku/test/multi-mode-e2e.test.mjs +++ b/packages/haiku/test/multi-mode-e2e.test.mjs @@ -33,7 +33,12 @@ import { dirname, join } from "node:path" import { test } from "node:test" import { fileURLToPath } from "node:url" import matter from "gray-matter" -import { initTestRepo, makeIntent, makeStudio } from "./_v4-fixtures.mjs" +import { + deliverIntent, + initTestRepo, + makeIntent, + makeStudio, +} from "./_v4-fixtures.mjs" const HERE = dirname(fileURLToPath(import.meta.url)) const SRC = join(HERE, "..", "src") @@ -116,6 +121,13 @@ async function withRepo(slug, fn) { } function applyResponse(intentDir, action, repoRoot, slug) { + // Merge gate (2026-05-28): when the engine holds at pending_seal, the + // human/host delivers the hub branch onto the default branch so the next + // tick can seal. The engine never performs this merge itself. + if (action.action === "pending_seal") { + deliverIntent({ repoRoot, slug }) + return + } const at = new Date().toISOString() const stage = action.stage if (!stage) { diff --git a/packages/haiku/test/multi-tick-pipeline.test.mjs b/packages/haiku/test/multi-tick-pipeline.test.mjs index 0472f22fd..a8cdf4f8d 100644 --- a/packages/haiku/test/multi-tick-pipeline.test.mjs +++ b/packages/haiku/test/multi-tick-pipeline.test.mjs @@ -41,7 +41,12 @@ import { tmpdir } from "node:os" import { join } from "node:path" import { test } from "node:test" import matter from "gray-matter" -import { initTestRepo, makeIntent, makeStudio } from "./_v4-fixtures.mjs" +import { + deliverIntent, + initTestRepo, + makeIntent, + makeStudio, +} from "./_v4-fixtures.mjs" const HAS_GIT = (() => { try { @@ -303,6 +308,14 @@ test("multi-tick: 3-stage continuous intent walks from elaborate to sealed", { break } + // Merge gate (2026-05-28): the engine holds at pending_seal + // until the hub branch lands on the default branch. Simulate + // the human/host merging the delivery so the next tick seals. + if (action.action === "pending_seal") { + deliverIntent({ repoRoot, slug }) + continue + } + // React to the action. Each branch mutates disk so the next // tick sees fresh state. switch (action.action) { diff --git a/packages/haiku/test/real-intent-dry-run.test.mjs b/packages/haiku/test/real-intent-dry-run.test.mjs index 039ba5a5e..44e8cfb74 100644 --- a/packages/haiku/test/real-intent-dry-run.test.mjs +++ b/packages/haiku/test/real-intent-dry-run.test.mjs @@ -29,6 +29,7 @@ import { dirname, join, resolve } from "node:path" import { test } from "node:test" import { fileURLToPath } from "node:url" import matter from "gray-matter" +import { deliverIntent } from "./_v4-fixtures.mjs" const HERE = dirname(fileURLToPath(import.meta.url)) const SRC = join(HERE, "..", "src") @@ -132,6 +133,13 @@ async function withRealStudioRepo(slug, fn) { * file writes. */ function applyResponse(intentDir, action, root, slug) { + // Merge gate (2026-05-28): when the engine holds at pending_seal, the + // human/host delivers the hub branch onto the default branch so the next + // tick can seal. The engine never performs this merge itself. + if (action.action === "pending_seal") { + deliverIntent({ repoRoot: root, slug }) + return + } const at = new Date().toISOString() const stage = action.stage if (!stage) { diff --git a/packages/haiku/test/seal-intent-commits.test.mjs b/packages/haiku/test/seal-intent-commits.test.mjs index 49dfc115f..d7366149a 100644 --- a/packages/haiku/test/seal-intent-commits.test.mjs +++ b/packages/haiku/test/seal-intent-commits.test.mjs @@ -22,6 +22,7 @@ import { test } from "node:test" import { fileURLToPath } from "node:url" import matter from "gray-matter" import { + deliverIntent, initTestRepo, makeIntent, makeMergedUnit, @@ -85,6 +86,11 @@ test("seal_intent COMMITS the sealed_at stamp (so the auto-push can fire)", asyn spec: { at: AT }, continuity: { at: AT }, "cross-stage-consistency": { at: AT }, + // delivery-verifier is a GLOBAL intent-review-agent every studio + // walks; pre-sign it so the cursor reaches the terminal merge + // gate (the subject under test) instead of parking on its + // dispatch. + "delivery-verifier": { at: AT }, user: { at: AT }, intent_quality_gates: { at: AT }, }, @@ -122,20 +128,50 @@ test("seal_intent COMMITS the sealed_at stamp (so the auto-push can fire)", asyn const { _resetIsGitRepoForTests } = await import(`${SRC}/state-tools.ts`) _resetIsGitRepoForTests() const { handleToolCall } = await import(`${SRC}/server/tool-call.ts`) - // Tick until the intent seals (first tick may run the version migration; - // the seal walk follows once the cursor reaches all-merged + approved). - const actions = [] - for (let i = 0; i < 8; i++) { + + const tick = async () => { const rnResp = await handleToolCall({ params: { name: "haiku_run_next", arguments: { intent: slug } }, }) - let parsedResp + // The response is the action JSON, then `\n\n---\n\n`, then prose. + const txt = rnResp?.content?.[0]?.text ?? "{}" + const jsonPart = txt.split("\n\n---\n\n")[0] try { - parsedResp = JSON.parse(rnResp?.content?.[0]?.text ?? "{}") + return JSON.parse(jsonPart) } catch { - parsedResp = { action: rnResp?.content?.[0]?.text?.slice(0, 60) } + return { action: txt.slice(0, 60) } } - actions.push(parsedResp.action) + } + + // MERGE GATE (2026-05-28): the hub branch `haiku//main` has NOT + // landed on the default branch yet, so the intent must HOLD at + // `pending_seal` — built, signed, reflected, but not delivered. It + // must NOT stamp `sealed_at`. (First tick may run a no-op migration; + // give it a couple ticks to settle on the terminal action.) + let preDeliverAction + for (let i = 0; i < 4; i++) { + preDeliverAction = (await tick()).action + if (preDeliverAction === "pending_seal") break + } + assert.equal( + preDeliverAction, + "pending_seal", + `unmerged intent must hold at pending_seal, got: ${preDeliverAction}`, + ) + assert.ok( + !matter(readFileSync(intentMd, "utf8")).data.sealed_at, + "sealed_at must NOT be stamped while the hub branch is unmerged", + ) + + // Simulate the human/host merging the delivery into the default + // branch — the engine never does this itself. + deliverIntent({ repoRoot, slug }) + + // Now tick until the intent seals (the cursor walks `seal_intent` + // once the hub branch is an ancestor of the default branch). + const actions = [] + for (let i = 0; i < 8; i++) { + actions.push((await tick()).action) if (matter(readFileSync(intentMd, "utf8")).data.sealed_at) break } diff --git a/plugin/bin/haiku.mjs b/plugin/bin/haiku.mjs index b89aae761..75a5eae23 100755 --- a/plugin/bin/haiku.mjs +++ b/plugin/bin/haiku.mjs @@ -1,45 +1,45 @@ #!/usr/bin/env node import{createRequire}from"module";const require=createRequire(import.meta.url); -var VPt=Object.create;var MU=Object.defineProperty;var WPt=Object.getOwnPropertyDescriptor;var KPt=Object.getOwnPropertyNames;var ZPt=Object.getPrototypeOf,YPt=Object.prototype.hasOwnProperty;var Y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Rr=(e,t)=>{for(var n in t)MU(e,n,{get:t[n],enumerable:!0})},YTe=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of KPt(t))!YPt.call(e,i)&&i!==n&&MU(e,i,{get:()=>t[i],enumerable:!(r=WPt(t,i))||r.enumerable});return e};var _e=(e,t,n)=>(n=e!=null?VPt(ZPt(e)):{},YTe(t||!e||!e.__esModule?MU(n,"default",{value:e,enumerable:!0}):n,e)),Ie=e=>YTe(MU({},"__esModule",{value:!0}),e);var tm,FY=v(()=>{tm="1.9.1"});function JPt(e){let t=new Set([e]),n=new Set,r=e.match(JTe);if(!r)return()=>!1;let i={major:+r[1],minor:+r[2],patch:+r[3],prerelease:r[4]};if(i.prerelease!=null)return function(c){return c===e};function s(a){return n.add(a),!1}function o(a){return t.add(a),!0}return function(c){if(t.has(c))return!0;if(n.has(c))return!1;let u=c.match(JTe);if(!u)return s(c);let l={major:+u[1],minor:+u[2],patch:+u[3],prerelease:u[4]};return l.prerelease!=null||i.major!==l.major?s(c):i.major===0?i.minor===l.minor&&i.patch<=l.patch?o(c):s(c):i.minor<=l.minor?o(c):s(c)}}var JTe,XTe,QTe=v(()=>{FY();JTe=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;XTe=JPt(tm)});function _p(e,t,n,r=!1){var i;let s=Kx[Wx]=(i=Kx[Wx])!==null&&i!==void 0?i:{version:tm};if(!r&&s[e]){let o=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return n.error(o.stack||o.message),!1}if(s.version!==tm){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${tm}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${tm}.`),!0}function Xu(e){var t,n;let r=(t=Kx[Wx])===null||t===void 0?void 0:t.version;if(!(!r||!XTe(r)))return(n=Kx[Wx])===null||n===void 0?void 0:n[e]}function Ep(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${tm}.`);let n=Kx[Wx];n&&delete n[e]}var XPt,Wx,Kx,oE=v(()=>{FY();QTe();XPt=tm.split(".")[0],Wx=Symbol.for(`opentelemetry.js.api.${XPt}`),Kx=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function Zx(e,t,n){let r=Xu("diag");if(r)return r[e](t,...n)}var DU,$Te=v(()=>{oE();DU=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return Zx("debug",this._namespace,t)}error(...t){return Zx("error",this._namespace,t)}info(...t){return Zx("info",this._namespace,t)}warn(...t){return Zx("warn",this._namespace,t)}verbose(...t){return Zx("verbose",this._namespace,t)}}});var ao,LU=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(ao||(ao={}))});function eve(e,t){eao.ALL&&(e=ao.ALL),t=t||{};function n(r,i){let s=t[r];return typeof s=="function"&&e>=i?s.bind(t):function(){}}return{error:n("error",ao.ERROR),warn:n("warn",ao.WARN),info:n("info",ao.INFO),debug:n("debug",ao.DEBUG),verbose:n("verbose",ao.VERBOSE)}}var tve=v(()=>{LU()});var QPt,xo,aE=v(()=>{$Te();tve();LU();oE();QPt="diag",xo=class e{static instance(){return this._instance||(this._instance=new e),this._instance}constructor(){function t(i){return function(...s){let o=Xu("diag");if(o)return o[i](...s)}}let n=this,r=(i,s={logLevel:ao.INFO})=>{var o,a,c;if(i===n){let d=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return n.error((o=d.stack)!==null&&o!==void 0?o:d.message),!1}typeof s=="number"&&(s={logLevel:s});let u=Xu("diag"),l=eve((a=s.logLevel)!==null&&a!==void 0?a:ao.INFO,i);if(u&&!s.suppressOverrideMessage){let d=(c=new Error().stack)!==null&&c!==void 0?c:"";u.warn(`Current logger will be overwritten from ${d}`),l.warn(`Current logger will overwrite one already registered from ${d}`)}return _p("diag",l,n,!0)};n.setLogger=r,n.disable=()=>{Ep(QPt,n)},n.createComponentLogger=i=>new DU(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var UU,nve=v(()=>{UU=class e{constructor(t){this._entries=t?new Map(t):new Map}getEntry(t){let n=this._entries.get(t);if(n)return Object.assign({},n)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(t,n){let r=new e(this._entries);return r._entries.set(t,n),r}removeEntry(t){let n=new e(this._entries);return n._entries.delete(t),n}removeEntries(...t){let n=new e(this._entries);for(let r of t)n._entries.delete(r);return n}clear(){return new e}}});var rve,ive=v(()=>{rve=Symbol("BaggageEntryMetadata")});function sve(e={}){return new UU(new Map(Object.entries(e)))}function ove(e){return typeof e!="string"&&($Pt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:rve,toString(){return e}}}var $Pt,HY=v(()=>{aE();nve();ive();$Pt=xo.instance()});function Qu(e){return Symbol.for(e)}var qY,Xv,Yx=v(()=>{qY=class e{constructor(t){let n=this;n._currentContext=t?new Map(t):new Map,n.getValue=r=>n._currentContext.get(r),n.setValue=(r,i)=>{let s=new e(n._currentContext);return s._currentContext.set(r,i),s},n.deleteValue=r=>{let i=new e(n._currentContext);return i._currentContext.delete(r),i}}},Xv=new qY});var BY,GY,jU,ave=v(()=>{BY=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],GY={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(GY[t]=console[t])}jU=class{constructor(){function t(n){return function(...r){let i=GY[n];if(typeof i!="function"&&(i=GY.log),typeof i!="function"&&console&&(i=console[n],typeof i!="function"&&(i=console.log)),typeof i=="function")return i.apply(console,r)}}for(let n=0;n{zY=class{constructor(){}createGauge(t,n){return tCt}createHistogram(t,n){return nCt}createCounter(t,n){return eCt}createUpDownCounter(t,n){return rCt}createObservableGauge(t,n){return sCt}createObservableCounter(t,n){return iCt}createObservableUpDownCounter(t,n){return oCt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},Qv=class{},VY=class extends Qv{add(t,n){}},WY=class extends Qv{add(t,n){}},KY=class extends Qv{record(t,n){}},ZY=class extends Qv{record(t,n){}},Jx=class{addCallback(t){}removeCallback(t){}},YY=class extends Jx{},JY=class extends Jx{},XY=class extends Jx{},QY=new zY,eCt=new VY,tCt=new KY,nCt=new ZY,rCt=new WY,iCt=new YY,sCt=new JY,oCt=new XY});var FU,uve=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(FU||(FU={}))});var HU,qU,e8=v(()=>{HU={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},qU={set(e,t,n){e!=null&&(e[t]=n)}}});var BU,lve=v(()=>{Yx();BU=class{active(){return Xv}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var t8,aCt,bp,Xx=v(()=>{lve();oE();aE();t8="context",aCt=new BU,bp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return _p(t8,t,xo.instance())}active(){return this._getContextManager().active()}with(t,n,r,...i){return this._getContextManager().with(t,n,r,...i)}bind(t,n){return this._getContextManager().bind(t,n)}_getContextManager(){return Xu(t8)||aCt}disable(){this._getContextManager().disable(),Ep(t8,xo.instance())}}});var Ma,n8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(Ma||(Ma={}))});var Qx,cE,GU,zU=v(()=>{n8();Qx="0000000000000000",cE="00000000000000000000000000000000",GU={traceId:cE,spanId:Qx,traceFlags:Ma.NONE}});var Tp,VU=v(()=>{zU();Tp=class{constructor(t=GU){this._spanContext=t}spanContext(){return this._spanContext}setAttribute(t,n){return this}setAttributes(t){return this}addEvent(t,n){return this}addLink(t){return this}addLinks(t){return this}setStatus(t){return this}updateName(t){return this}end(t){}isRecording(){return!1}recordException(t,n){}}});function WU(e){return e.getValue(r8)||void 0}function dve(){return WU(bp.getInstance().active())}function $x(e,t){return e.setValue(r8,t)}function fve(e){return e.deleteValue(r8)}function pve(e,t){return $x(e,new Tp(t))}function KU(e){var t;return(t=WU(e))===null||t===void 0?void 0:t.spanContext()}var r8,i8=v(()=>{Yx();VU();Xx();r8=Qu("OpenTelemetry Context Key SPAN")});function hve(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{zU();VU();ZU=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1])});function cCt(e){return e!==null&&typeof e=="object"&&"spanId"in e&&typeof e.spanId=="string"&&"traceId"in e&&typeof e.traceId=="string"&&"traceFlags"in e&&typeof e.traceFlags=="number"}var a8,$v,c8=v(()=>{Xx();i8();VU();YU();a8=bp.getInstance(),$v=class{startSpan(t,n,r=a8.active()){if(!!n?.root)return new Tp;let s=r&&KU(r);return cCt(s)&&nm(s)?new Tp(s):new Tp}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??a8.active(),u=this.startSpan(t,s,c),l=$x(c,u);return a8.with(l,a,void 0,u)}}});var uCt,eA,u8=v(()=>{c8();uCt=new $v,eA=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}startSpan(t,n,r){return this._getTracer().startSpan(t,n,r)}startActiveSpan(t,n,r,i){let s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)}_getTracer(){if(this._delegate)return this._delegate;let t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):uCt}}});var JU,gve=v(()=>{c8();JU=class{getTracer(t,n,r){return new $v}}});var lCt,uE,l8=v(()=>{u8();gve();lCt=new JU,uE=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new eA(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:lCt}setDelegate(t){this._delegate=t}getDelegateTracer(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getTracer(t,n,r)}}});var XU,yve=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(XU||(XU={}))});var Xr,Sve=v(()=>{(function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"})(Xr||(Xr={}))});var ss,_ve=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(ss||(ss={}))});function Eve(e){return pCt.test(e)}function bve(e){return hCt.test(e)&&!mCt.test(e)}var d8,dCt,fCt,pCt,hCt,mCt,Tve=v(()=>{d8="[_0-9a-z-*/]",dCt=`[a-z]${d8}{0,255}`,fCt=`[a-z0-9]${d8}{0,240}@[a-z]${d8}{0,13}`,pCt=new RegExp(`^(?:${dCt}|${fCt})$`),hCt=/^[ -~]{0,255}[!-~]$/,mCt=/,|=/});var vve,gCt,Ave,Rve,QU,wve=v(()=>{Tve();vve=32,gCt=512,Ave=",",Rve="=",QU=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,n){let r=this._clone();return r._internalState.has(t)&&r._internalState.delete(t),r._internalState.set(t,n),r}unset(t){let n=this._clone();return n._internalState.delete(t),n}get(t){return this._internalState.get(t)}serialize(){return Array.from(this._internalState.keys()).reduceRight((t,n)=>(t.push(n+Rve+this.get(n)),t),[]).join(Ave)}_parse(t){t.length>gCt||(this._internalState=t.split(Ave).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(Rve);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);Eve(o)&&bve(a)&&n.set(o,a)}return n},new Map),this._internalState.size>vve&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,vve))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function kve(e){return new QU(e)}var Ive=v(()=>{wve()});var Ve,xve=v(()=>{Xx();Ve=bp.getInstance()});var $u,Ove=v(()=>{aE();$u=xo.instance()});var f8,Nve,Pve=v(()=>{$Y();f8=class{getMeter(t,n,r){return QY}},Nve=new f8});var p8,$U,Cve=v(()=>{Pve();oE();aE();p8="metrics",$U=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return _p(p8,t,xo.instance())}getMeterProvider(){return Xu(p8)||Nve}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){Ep(p8,xo.instance())}}});var h8,Mve=v(()=>{Cve();h8=$U.getInstance()});var ej,Dve=v(()=>{ej=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function g8(e){return e.getValue(m8)||void 0}function Lve(){return g8(bp.getInstance().active())}function Uve(e,t){return e.setValue(m8,t)}function jve(e){return e.deleteValue(m8)}var m8,Fve=v(()=>{Xx();Yx();m8=Qu("OpenTelemetry Baggage Key")});var y8,yCt,tj,Hve=v(()=>{oE();Dve();e8();Fve();HY();aE();y8="propagation",yCt=new ej,tj=class e{constructor(){this.createBaggage=sve,this.getBaggage=g8,this.getActiveBaggage=Lve,this.setBaggage=Uve,this.deleteBaggage=jve}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return _p(y8,t,xo.instance())}inject(t,n,r=qU){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=HU){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){Ep(y8,xo.instance())}_getGlobalPropagator(){return Xu(y8)||yCt}}});var Zd,qve=v(()=>{Hve();Zd=tj.getInstance()});var S8,nj,Bve=v(()=>{oE();l8();YU();i8();aE();S8="trace",nj=class e{constructor(){this._proxyTracerProvider=new uE,this.wrapSpanContext=mve,this.isSpanContextValid=nm,this.deleteSpan=fve,this.getSpan=WU,this.getActiveSpan=dve,this.getSpanContext=KU,this.setSpan=$x,this.setSpanContext=pve}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=_p(S8,this._proxyTracerProvider,xo.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return Xu(S8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){Ep(S8,xo.instance()),this._proxyTracerProvider=new uE}}});var Ut,Gve=v(()=>{Bve();Ut=nj.getInstance()});var Ze={};Rr(Ze,{DiagConsoleLogger:()=>jU,DiagLogLevel:()=>ao,INVALID_SPANID:()=>Qx,INVALID_SPAN_CONTEXT:()=>GU,INVALID_TRACEID:()=>cE,ProxyTracer:()=>eA,ProxyTracerProvider:()=>uE,ROOT_CONTEXT:()=>Xv,SamplingDecision:()=>XU,SpanKind:()=>Xr,SpanStatusCode:()=>ss,TraceFlags:()=>Ma,ValueType:()=>FU,baggageEntryMetadataFromString:()=>ove,context:()=>Ve,createContextKey:()=>Qu,createNoopMeter:()=>cve,createTraceState:()=>kve,default:()=>SCt,defaultTextMapGetter:()=>HU,defaultTextMapSetter:()=>qU,diag:()=>$u,isSpanContextValid:()=>nm,isValidSpanId:()=>o8,isValidTraceId:()=>s8,metrics:()=>h8,propagation:()=>Zd,trace:()=>Ut});var SCt,Me=v(()=>{HY();Yx();ave();LU();$Y();uve();e8();u8();l8();yve();Sve();_ve();n8();Ive();YU();zU();xve();Ove();Mve();qve();Gve();SCt={context:Ve,diag:$u,metrics:h8,propagation:Zd,trace:Ut}});var eO=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.isTracingSuppressed=sy.unsuppressTracing=sy.suppressTracing=void 0;var _Ct=(Me(),Ie(Ze)),_8=(0,_Ct.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function ECt(e){return e.setValue(_8,!0)}sy.suppressTracing=ECt;function bCt(e){return e.deleteValue(_8)}sy.unsuppressTracing=bCt;function TCt(e){return e.getValue(_8)===!0}sy.isTracingSuppressed=TCt});var E8=w(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.BAGGAGE_MAX_TOTAL_LENGTH=Da.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=Da.BAGGAGE_MAX_NAME_VALUE_PAIRS=Da.BAGGAGE_HEADER=Da.BAGGAGE_ITEMS_SEPARATOR=Da.BAGGAGE_PROPERTIES_SEPARATOR=Da.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;Da.BAGGAGE_KEY_PAIR_SEPARATOR="=";Da.BAGGAGE_PROPERTIES_SEPARATOR=";";Da.BAGGAGE_ITEMS_SEPARATOR=",";Da.BAGGAGE_HEADER="baggage";Da.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;Da.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;Da.BAGGAGE_MAX_TOTAL_LENGTH=8192});var b8=w(vp=>{"use strict";Object.defineProperty(vp,"__esModule",{value:!0});vp.parseKeyPairsIntoRecord=vp.parsePairKeyValue=vp.getKeyPairs=vp.serializeKeyPairs=void 0;var vCt=(Me(),Ie(Ze)),tA=E8();function ACt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?tA.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>tA.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}vp.serializeKeyPairs=ACt;function RCt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=tA.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}vp.getKeyPairs=RCt;function zve(e){if(!e)return;let t=e.indexOf(tA.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(tA.BAGGAGE_KEY_PAIR_SEPARATOR);if(r<=0)return;let i=n.substring(0,r).trim(),s=n.substring(r+1).trim();if(!i||!s)return;let o,a;try{o=decodeURIComponent(i),a=decodeURIComponent(s)}catch{return}let c;if(t!==-1&&t0&&e.split(tA.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=zve(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}vp.parseKeyPairsIntoRecord=wCt});var Vve=w(rj=>{"use strict";Object.defineProperty(rj,"__esModule",{value:!0});rj.W3CBaggagePropagator=void 0;var T8=(Me(),Ie(Ze)),kCt=eO(),lE=E8(),v8=b8(),A8=class{inject(t,n,r){let i=T8.propagation.getBaggage(t);if(!i||(0,kCt.isTracingSuppressed)(t))return;let s=(0,v8.getKeyPairs)(i).filter(a=>a.length<=lE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,lE.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,v8.serializeKeyPairs)(s);o.length>0&&r.set(n,lE.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,lE.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(lE.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(lE.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,v8.parsePairKeyValue)(c);if(u){let l={value:u.value};u.metadata&&(l.metadata=u.metadata),o[u.key]=l}}),Object.entries(o).length===0)?t:T8.propagation.setBaggage(t,T8.propagation.createBaggage(o))}fields(){return[lE.BAGGAGE_HEADER]}};rj.W3CBaggagePropagator=A8});var Wve=w(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});ij.AnchoredClock=void 0;var R8=class{_monotonicClock;_epochMillis;_performanceMillis;constructor(t,n){this._monotonicClock=n,this._epochMillis=t.now(),this._performanceMillis=n.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};ij.AnchoredClock=R8});var Xve=w(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.isAttributeValue=oy.isAttributeKey=oy.sanitizeAttributes=void 0;var Kve=(Me(),Ie(Ze));function ICt(e){let t={};if(typeof e!="object"||e==null)return t;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if(!Zve(n)){Kve.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!Yve(r)){Kve.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}oy.sanitizeAttributes=ICt;function Zve(e){return typeof e=="string"&&e!==""}oy.isAttributeKey=Zve;function Yve(e){return e==null?!0:Array.isArray(e)?xCt(e):Jve(typeof e)}oy.isAttributeValue=Yve;function xCt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(Jve(r)){t=r;continue}return!1}return!1}}return!0}function Jve(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var w8=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.loggingErrorHandler=void 0;var OCt=(Me(),Ie(Ze));function NCt(){return e=>{OCt.diag.error(PCt(e))}}sj.loggingErrorHandler=NCt;function PCt(e){return typeof e=="string"?e:JSON.stringify(CCt(e))}function CCt(e){let t={},n=e;for(;n!==null;)Object.getOwnPropertyNames(n).forEach(r=>{if(t[r])return;let i=n[r];i&&(t[r]=String(i))}),n=Object.getPrototypeOf(n);return t}});var $ve=w(nA=>{"use strict";Object.defineProperty(nA,"__esModule",{value:!0});nA.globalErrorHandler=nA.setGlobalErrorHandler=void 0;var MCt=w8(),Qve=(0,MCt.loggingErrorHandler)();function DCt(e){Qve=e}nA.setGlobalErrorHandler=DCt;function LCt(e){try{Qve(e)}catch{}}nA.globalErrorHandler=LCt});var rAe=w(Ap=>{"use strict";Object.defineProperty(Ap,"__esModule",{value:!0});Ap.getStringListFromEnv=Ap.getBooleanFromEnv=Ap.getStringFromEnv=Ap.getNumberFromEnv=void 0;var eAe=(Me(),Ie(Ze)),tAe=Y("util");function UCt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){eAe.diag.warn(`Unknown value ${(0,tAe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}Ap.getNumberFromEnv=UCt;function nAe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}Ap.getStringFromEnv=nAe;function jCt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||eAe.diag.warn(`Unknown value ${(0,tAe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}Ap.getBooleanFromEnv=jCt;function FCt(e){return nAe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}Ap.getStringListFromEnv=FCt});var iAe=w(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});oj._globalThis=void 0;oj._globalThis=globalThis});var sAe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.VERSION=void 0;aj.VERSION="2.6.1"});function Ts(e){let t={},n=e.length;for(let r=0;r{});var oAe,aAe,cAe,uAe,lAe,dAe,fAe,pAe,hAe,mAe,gAe,yAe,SAe,_Ae,EAe,bAe,TAe,vAe,AAe,RAe,wAe,kAe,IAe,xAe,OAe,NAe,PAe,CAe,MAe,DAe,LAe,UAe,jAe,FAe,HAe,qAe,BAe,GAe,zAe,VAe,WAe,KAe,ZAe,YAe,JAe,XAe,QAe,$Ae,eRe,tRe,nRe,rRe,iRe,sRe,oRe,aRe,cRe,uRe,lRe,dRe,fRe,pRe,hRe,mRe,gRe,yRe,SRe,_Re,ERe,bRe,TRe,vRe,ARe,RRe,wRe,kRe,IRe,xRe,ORe,NRe,PRe,CRe,MRe,DRe,LRe,URe,jRe,FRe,HRe,qRe,BRe,GRe,zRe,VRe,WRe,KRe,ZRe,YRe,JRe,XRe,QRe,$Re,ewe,twe,nwe,rwe,iwe,swe,owe,awe,cwe,uwe,lwe,dwe,fwe,pwe,hwe,mwe,gwe,ywe,Swe,_we,Ewe,bwe,Twe,vwe,Awe,Rwe,HCt,I8,qCt,BCt,GCt,zCt,x8,VCt,WCt,KCt,ZCt,YCt,JCt,XCt,QCt,$Ct,eMt,tMt,nMt,rMt,iMt,sMt,oMt,aMt,cMt,O8,uMt,lMt,dMt,fMt,pMt,hMt,mMt,gMt,yMt,SMt,_Mt,EMt,N8,bMt,TMt,P8,C8,vMt,AMt,RMt,wMt,kMt,IMt,xMt,OMt,NMt,PMt,CMt,MMt,DMt,LMt,UMt,jMt,FMt,tO,rA,M8,HMt,qMt,dE,BMt,GMt,zMt,VMt,D8,L8,WMt,U8,KMt,ZMt,YMt,JMt,XMt,QMt,$Mt,eDt,tDt,nDt,rDt,iDt,sDt,oDt,aDt,cDt,uDt,lDt,dDt,fDt,pDt,hDt,mDt,j8,gDt,yDt,SDt,_Dt,EDt,bDt,TDt,vDt,ADt,RDt,wDt,kDt,IDt,xDt,ODt,NDt,PDt,CDt,MDt,F8,DDt,H8,LDt,UDt,jDt,FDt,HDt,qDt,BDt,GDt,zDt,wwe,kwe,Iwe,xwe,Owe,Nwe,Pwe,Cwe,Mwe,Dwe,Lwe,Uwe,jwe,Fwe,Hwe,qwe,Bwe,Gwe,zwe,Vwe,Wwe,Kwe,Zwe,Ywe,Jwe,Xwe,Qwe,$we,eke,tke,nke,rke,ike,ske,oke,ake,cke,uke,lke,dke,fke,pke,hke,mke,gke,yke,Ske,VDt,WDt,KDt,ZDt,YDt,JDt,XDt,QDt,$Dt,eLt,tLt,nLt,rLt,iLt,sLt,oLt,aLt,cLt,uLt,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,_Lt,ELt,bLt,TLt,vLt,ALt,RLt,wLt,kLt,ILt,xLt,OLt,NLt,PLt,CLt,MLt,DLt,LLt,ULt,jLt,_ke,Eke,bke,Tke,vke,Ake,Rke,wke,kke,Ike,xke,FLt,HLt,qLt,BLt,GLt,zLt,VLt,WLt,KLt,ZLt,YLt,JLt,Oke,Nke,Pke,Cke,Mke,XLt,QLt,$Lt,e1t,t1t,n1t,Dke,Lke,Uke,r1t,i1t,s1t,o1t,jke,Fke,Hke,qke,a1t,c1t,u1t,l1t,d1t,Bke,Gke,zke,Vke,Wke,Kke,Zke,f1t,p1t,h1t,m1t,g1t,y1t,S1t,_1t,Yke,Jke,Xke,Qke,$ke,E1t,b1t,T1t,v1t,A1t,R1t,eIe,tIe,nIe,rIe,iIe,sIe,oIe,aIe,cIe,uIe,lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe,_Ie,EIe,w1t,k1t,I1t,x1t,O1t,N1t,P1t,C1t,M1t,D1t,L1t,U1t,j1t,F1t,H1t,q1t,B1t,G1t,z1t,V1t,W1t,K1t,bIe,TIe,vIe,AIe,RIe,Z1t,Y1t,J1t,X1t,Q1t,$1t,wIe,kIe,eUt,tUt,nUt,IIe,xIe,rUt,iUt,sUt,OIe,NIe,PIe,CIe,MIe,DIe,LIe,UIe,jIe,FIe,HIe,qIe,BIe,GIe,zIe,VIe,WIe,oUt,aUt,cUt,uUt,lUt,dUt,fUt,pUt,hUt,mUt,gUt,yUt,SUt,_Ut,EUt,bUt,TUt,vUt,KIe,ZIe,AUt,RUt,wUt,YIe=v(()=>{k8();oAe="aws.lambda.invoked_arn",aAe="db.system",cAe="db.connection_string",uAe="db.user",lAe="db.jdbc.driver_classname",dAe="db.name",fAe="db.statement",pAe="db.operation",hAe="db.mssql.instance_name",mAe="db.cassandra.keyspace",gAe="db.cassandra.page_size",yAe="db.cassandra.consistency_level",SAe="db.cassandra.table",_Ae="db.cassandra.idempotence",EAe="db.cassandra.speculative_execution_count",bAe="db.cassandra.coordinator.id",TAe="db.cassandra.coordinator.dc",vAe="db.hbase.namespace",AAe="db.redis.database_index",RAe="db.mongodb.collection",wAe="db.sql.table",kAe="exception.type",IAe="exception.message",xAe="exception.stacktrace",OAe="exception.escaped",NAe="faas.trigger",PAe="faas.execution",CAe="faas.document.collection",MAe="faas.document.operation",DAe="faas.document.time",LAe="faas.document.name",UAe="faas.time",jAe="faas.cron",FAe="faas.coldstart",HAe="faas.invoked_name",qAe="faas.invoked_provider",BAe="faas.invoked_region",GAe="net.transport",zAe="net.peer.ip",VAe="net.peer.port",WAe="net.peer.name",KAe="net.host.ip",ZAe="net.host.port",YAe="net.host.name",JAe="net.host.connection.type",XAe="net.host.connection.subtype",QAe="net.host.carrier.name",$Ae="net.host.carrier.mcc",eRe="net.host.carrier.mnc",tRe="net.host.carrier.icc",nRe="peer.service",rRe="enduser.id",iRe="enduser.role",sRe="enduser.scope",oRe="thread.id",aRe="thread.name",cRe="code.function",uRe="code.namespace",lRe="code.filepath",dRe="code.lineno",fRe="http.method",pRe="http.url",hRe="http.target",mRe="http.host",gRe="http.scheme",yRe="http.status_code",SRe="http.flavor",_Re="http.user_agent",ERe="http.request_content_length",bRe="http.request_content_length_uncompressed",TRe="http.response_content_length",vRe="http.response_content_length_uncompressed",ARe="http.server_name",RRe="http.route",wRe="http.client_ip",kRe="aws.dynamodb.table_names",IRe="aws.dynamodb.consumed_capacity",xRe="aws.dynamodb.item_collection_metrics",ORe="aws.dynamodb.provisioned_read_capacity",NRe="aws.dynamodb.provisioned_write_capacity",PRe="aws.dynamodb.consistent_read",CRe="aws.dynamodb.projection",MRe="aws.dynamodb.limit",DRe="aws.dynamodb.attributes_to_get",LRe="aws.dynamodb.index_name",URe="aws.dynamodb.select",jRe="aws.dynamodb.global_secondary_indexes",FRe="aws.dynamodb.local_secondary_indexes",HRe="aws.dynamodb.exclusive_start_table",qRe="aws.dynamodb.table_count",BRe="aws.dynamodb.scan_forward",GRe="aws.dynamodb.segment",zRe="aws.dynamodb.total_segments",VRe="aws.dynamodb.count",WRe="aws.dynamodb.scanned_count",KRe="aws.dynamodb.attribute_definitions",ZRe="aws.dynamodb.global_secondary_index_updates",YRe="messaging.system",JRe="messaging.destination",XRe="messaging.destination_kind",QRe="messaging.temp_destination",$Re="messaging.protocol",ewe="messaging.protocol_version",twe="messaging.url",nwe="messaging.message_id",rwe="messaging.conversation_id",iwe="messaging.message_payload_size_bytes",swe="messaging.message_payload_compressed_size_bytes",owe="messaging.operation",awe="messaging.consumer_id",cwe="messaging.rabbitmq.routing_key",uwe="messaging.kafka.message_key",lwe="messaging.kafka.consumer_group",dwe="messaging.kafka.client_id",fwe="messaging.kafka.partition",pwe="messaging.kafka.tombstone",hwe="rpc.system",mwe="rpc.service",gwe="rpc.method",ywe="rpc.grpc.status_code",Swe="rpc.jsonrpc.version",_we="rpc.jsonrpc.request_id",Ewe="rpc.jsonrpc.error_code",bwe="rpc.jsonrpc.error_message",Twe="message.type",vwe="message.id",Awe="message.compressed_size",Rwe="message.uncompressed_size",HCt=oAe,I8=aAe,qCt=cAe,BCt=uAe,GCt=lAe,zCt=dAe,x8=fAe,VCt=pAe,WCt=hAe,KCt=mAe,ZCt=gAe,YCt=yAe,JCt=SAe,XCt=_Ae,QCt=EAe,$Ct=bAe,eMt=TAe,tMt=vAe,nMt=AAe,rMt=RAe,iMt=wAe,sMt=kAe,oMt=IAe,aMt=xAe,cMt=OAe,O8=NAe,uMt=PAe,lMt=CAe,dMt=MAe,fMt=DAe,pMt=LAe,hMt=UAe,mMt=jAe,gMt=FAe,yMt=HAe,SMt=qAe,_Mt=BAe,EMt=GAe,N8=zAe,bMt=VAe,TMt=WAe,P8=KAe,C8=ZAe,vMt=YAe,AMt=JAe,RMt=XAe,wMt=QAe,kMt=$Ae,IMt=eRe,xMt=tRe,OMt=nRe,NMt=rRe,PMt=iRe,CMt=sRe,MMt=oRe,DMt=aRe,LMt=cRe,UMt=uRe,jMt=lRe,FMt=dRe,tO=fRe,rA=pRe,M8=hRe,HMt=mRe,qMt=gRe,dE=yRe,BMt=SRe,GMt=_Re,zMt=ERe,VMt=bRe,D8=TRe,L8=vRe,WMt=ARe,U8=RRe,KMt=wRe,ZMt=kRe,YMt=IRe,JMt=xRe,XMt=ORe,QMt=NRe,$Mt=PRe,eDt=CRe,tDt=MRe,nDt=DRe,rDt=LRe,iDt=URe,sDt=jRe,oDt=FRe,aDt=HRe,cDt=qRe,uDt=BRe,lDt=GRe,dDt=zRe,fDt=VRe,pDt=WRe,hDt=KRe,mDt=ZRe,j8=YRe,gDt=JRe,yDt=XRe,SDt=QRe,_Dt=$Re,EDt=ewe,bDt=twe,TDt=nwe,vDt=rwe,ADt=iwe,RDt=swe,wDt=owe,kDt=awe,IDt=cwe,xDt=uwe,ODt=lwe,NDt=dwe,PDt=fwe,CDt=pwe,MDt=hwe,F8=mwe,DDt=gwe,H8=ywe,LDt=Swe,UDt=_we,jDt=Ewe,FDt=bwe,HDt=Twe,qDt=vwe,BDt=Awe,GDt=Rwe,zDt=Ts([oAe,aAe,cAe,uAe,lAe,dAe,fAe,pAe,hAe,mAe,gAe,yAe,SAe,_Ae,EAe,bAe,TAe,vAe,AAe,RAe,wAe,kAe,IAe,xAe,OAe,NAe,PAe,CAe,MAe,DAe,LAe,UAe,jAe,FAe,HAe,qAe,BAe,GAe,zAe,VAe,WAe,KAe,ZAe,YAe,JAe,XAe,QAe,$Ae,eRe,tRe,nRe,rRe,iRe,sRe,oRe,aRe,cRe,uRe,lRe,dRe,fRe,pRe,hRe,mRe,gRe,yRe,SRe,_Re,ERe,bRe,TRe,vRe,ARe,RRe,wRe,kRe,IRe,xRe,ORe,NRe,PRe,CRe,MRe,DRe,LRe,URe,jRe,FRe,HRe,qRe,BRe,GRe,zRe,VRe,WRe,KRe,ZRe,YRe,JRe,XRe,QRe,$Re,ewe,twe,nwe,rwe,iwe,swe,owe,awe,cwe,uwe,lwe,dwe,fwe,pwe,hwe,mwe,gwe,ywe,Swe,_we,Ewe,bwe,Twe,vwe,Awe,Rwe]),wwe="other_sql",kwe="mssql",Iwe="mysql",xwe="oracle",Owe="db2",Nwe="postgresql",Pwe="redshift",Cwe="hive",Mwe="cloudscape",Dwe="hsqldb",Lwe="progress",Uwe="maxdb",jwe="hanadb",Fwe="ingres",Hwe="firstsql",qwe="edb",Bwe="cache",Gwe="adabas",zwe="firebird",Vwe="derby",Wwe="filemaker",Kwe="informix",Zwe="instantdb",Ywe="interbase",Jwe="mariadb",Xwe="netezza",Qwe="pervasive",$we="pointbase",eke="sqlite",tke="sybase",nke="teradata",rke="vertica",ike="h2",ske="coldfusion",oke="cassandra",ake="hbase",cke="mongodb",uke="redis",lke="couchbase",dke="couchdb",fke="cosmosdb",pke="dynamodb",hke="neo4j",mke="geode",gke="elasticsearch",yke="memcached",Ske="cockroachdb",VDt=wwe,WDt=kwe,KDt=Iwe,ZDt=xwe,YDt=Owe,JDt=Nwe,XDt=Pwe,QDt=Cwe,$Dt=Mwe,eLt=Dwe,tLt=Lwe,nLt=Uwe,rLt=jwe,iLt=Fwe,sLt=Hwe,oLt=qwe,aLt=Bwe,cLt=Gwe,uLt=zwe,lLt=Vwe,dLt=Wwe,fLt=Kwe,pLt=Zwe,hLt=Ywe,mLt=Jwe,gLt=Xwe,yLt=Qwe,SLt=$we,_Lt=eke,ELt=tke,bLt=nke,TLt=rke,vLt=ike,ALt=ske,RLt=oke,wLt=ake,kLt=cke,ILt=uke,xLt=lke,OLt=dke,NLt=fke,PLt=pke,CLt=hke,MLt=mke,DLt=gke,LLt=yke,ULt=Ske,jLt=Ts([wwe,kwe,Iwe,xwe,Owe,Nwe,Pwe,Cwe,Mwe,Dwe,Lwe,Uwe,jwe,Fwe,Hwe,qwe,Bwe,Gwe,zwe,Vwe,Wwe,Kwe,Zwe,Ywe,Jwe,Xwe,Qwe,$we,eke,tke,nke,rke,ike,ske,oke,ake,cke,uke,lke,dke,fke,pke,hke,mke,gke,yke,Ske]),_ke="all",Eke="each_quorum",bke="quorum",Tke="local_quorum",vke="one",Ake="two",Rke="three",wke="local_one",kke="any",Ike="serial",xke="local_serial",FLt=_ke,HLt=Eke,qLt=bke,BLt=Tke,GLt=vke,zLt=Ake,VLt=Rke,WLt=wke,KLt=kke,ZLt=Ike,YLt=xke,JLt=Ts([_ke,Eke,bke,Tke,vke,Ake,Rke,wke,kke,Ike,xke]),Oke="datasource",Nke="http",Pke="pubsub",Cke="timer",Mke="other",XLt=Oke,QLt=Nke,$Lt=Pke,e1t=Cke,t1t=Mke,n1t=Ts([Oke,Nke,Pke,Cke,Mke]),Dke="insert",Lke="edit",Uke="delete",r1t=Dke,i1t=Lke,s1t=Uke,o1t=Ts([Dke,Lke,Uke]),jke="alibaba_cloud",Fke="aws",Hke="azure",qke="gcp",a1t=jke,c1t=Fke,u1t=Hke,l1t=qke,d1t=Ts([jke,Fke,Hke,qke]),Bke="ip_tcp",Gke="ip_udp",zke="ip",Vke="unix",Wke="pipe",Kke="inproc",Zke="other",f1t=Bke,p1t=Gke,h1t=zke,m1t=Vke,g1t=Wke,y1t=Kke,S1t=Zke,_1t=Ts([Bke,Gke,zke,Vke,Wke,Kke,Zke]),Yke="wifi",Jke="wired",Xke="cell",Qke="unavailable",$ke="unknown",E1t=Yke,b1t=Jke,T1t=Xke,v1t=Qke,A1t=$ke,R1t=Ts([Yke,Jke,Xke,Qke,$ke]),eIe="gprs",tIe="edge",nIe="umts",rIe="cdma",iIe="evdo_0",sIe="evdo_a",oIe="cdma2000_1xrtt",aIe="hsdpa",cIe="hsupa",uIe="hspa",lIe="iden",dIe="evdo_b",fIe="lte",pIe="ehrpd",hIe="hspap",mIe="gsm",gIe="td_scdma",yIe="iwlan",SIe="nr",_Ie="nrnsa",EIe="lte_ca",w1t=eIe,k1t=tIe,I1t=nIe,x1t=rIe,O1t=iIe,N1t=sIe,P1t=oIe,C1t=aIe,M1t=cIe,D1t=uIe,L1t=lIe,U1t=dIe,j1t=fIe,F1t=pIe,H1t=hIe,q1t=mIe,B1t=gIe,G1t=yIe,z1t=SIe,V1t=_Ie,W1t=EIe,K1t=Ts([eIe,tIe,nIe,rIe,iIe,sIe,oIe,aIe,cIe,uIe,lIe,dIe,fIe,pIe,hIe,mIe,gIe,yIe,SIe,_Ie,EIe]),bIe="1.0",TIe="1.1",vIe="2.0",AIe="SPDY",RIe="QUIC",Z1t=bIe,Y1t=TIe,J1t=vIe,X1t=AIe,Q1t=RIe,$1t={HTTP_1_0:bIe,HTTP_1_1:TIe,HTTP_2_0:vIe,SPDY:AIe,QUIC:RIe},wIe="queue",kIe="topic",eUt=wIe,tUt=kIe,nUt=Ts([wIe,kIe]),IIe="receive",xIe="process",rUt=IIe,iUt=xIe,sUt=Ts([IIe,xIe]),OIe=0,NIe=1,PIe=2,CIe=3,MIe=4,DIe=5,LIe=6,UIe=7,jIe=8,FIe=9,HIe=10,qIe=11,BIe=12,GIe=13,zIe=14,VIe=15,WIe=16,oUt=OIe,aUt=NIe,cUt=PIe,uUt=CIe,lUt=MIe,dUt=DIe,fUt=LIe,pUt=UIe,hUt=jIe,mUt=FIe,gUt=HIe,yUt=qIe,SUt=BIe,_Ut=GIe,EUt=zIe,bUt=VIe,TUt=WIe,vUt={OK:OIe,CANCELLED:NIe,UNKNOWN:PIe,INVALID_ARGUMENT:CIe,DEADLINE_EXCEEDED:MIe,NOT_FOUND:DIe,ALREADY_EXISTS:LIe,PERMISSION_DENIED:UIe,RESOURCE_EXHAUSTED:jIe,FAILED_PRECONDITION:FIe,ABORTED:HIe,OUT_OF_RANGE:qIe,UNIMPLEMENTED:BIe,INTERNAL:GIe,UNAVAILABLE:zIe,DATA_LOSS:VIe,UNAUTHENTICATED:WIe},KIe="SENT",ZIe="RECEIVED",AUt=KIe,RUt=ZIe,wUt=Ts([KIe,ZIe])});var JIe=v(()=>{YIe()});var XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,f0e,p0e,h0e,m0e,g0e,y0e,S0e,_0e,E0e,b0e,T0e,v0e,A0e,R0e,w0e,k0e,I0e,x0e,O0e,N0e,P0e,C0e,M0e,D0e,L0e,U0e,j0e,F0e,H0e,q0e,B0e,G0e,z0e,V0e,W0e,K0e,Z0e,Y0e,J0e,X0e,Q0e,$0e,exe,txe,nxe,rxe,ixe,sxe,oxe,axe,cxe,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,_xe,Exe,bxe,Txe,vxe,kUt,IUt,xUt,OUt,NUt,PUt,CUt,MUt,DUt,LUt,UUt,jUt,FUt,HUt,qUt,BUt,GUt,zUt,VUt,WUt,KUt,ZUt,YUt,JUt,XUt,QUt,$Ut,ejt,tjt,njt,rjt,ijt,sjt,ojt,ajt,cjt,ujt,ljt,djt,fjt,pjt,hjt,mjt,gjt,yjt,Sjt,_jt,Ejt,bjt,Tjt,vjt,Ajt,Rjt,wjt,kjt,Ijt,xjt,Ojt,Njt,Pjt,Cjt,Mjt,Djt,Ljt,Ujt,jjt,Fjt,Hjt,qjt,Bjt,Gjt,q8,zjt,Vjt,Wjt,Kjt,Zjt,Yjt,Jjt,Xjt,Qjt,$jt,Axe,Rxe,wxe,kxe,eFt,tFt,nFt,rFt,iFt,Ixe,xxe,Oxe,Nxe,Pxe,Cxe,Mxe,Dxe,Lxe,Uxe,jxe,Fxe,Hxe,qxe,Bxe,Gxe,zxe,sFt,oFt,aFt,cFt,uFt,lFt,dFt,fFt,pFt,hFt,mFt,gFt,yFt,SFt,_Ft,EFt,bFt,TFt,Vxe,Wxe,vFt,AFt,RFt,Kxe,Zxe,Yxe,Jxe,Xxe,Qxe,$xe,wFt,kFt,IFt,xFt,OFt,NFt,PFt,CFt,eOe,tOe,nOe,rOe,iOe,sOe,oOe,aOe,cOe,uOe,lOe,MFt,DFt,LFt,UFt,jFt,FFt,HFt,qFt,BFt,GFt,zFt,VFt,dOe,fOe,pOe,hOe,mOe,gOe,yOe,SOe,_Oe,EOe,WFt,KFt,ZFt,YFt,JFt,XFt,QFt,$Ft,eHt,tHt,nHt,bOe=v(()=>{k8();XIe="cloud.provider",QIe="cloud.account.id",$Ie="cloud.region",e0e="cloud.availability_zone",t0e="cloud.platform",n0e="aws.ecs.container.arn",r0e="aws.ecs.cluster.arn",i0e="aws.ecs.launchtype",s0e="aws.ecs.task.arn",o0e="aws.ecs.task.family",a0e="aws.ecs.task.revision",c0e="aws.eks.cluster.arn",u0e="aws.log.group.names",l0e="aws.log.group.arns",d0e="aws.log.stream.names",f0e="aws.log.stream.arns",p0e="container.name",h0e="container.id",m0e="container.runtime",g0e="container.image.name",y0e="container.image.tag",S0e="deployment.environment",_0e="device.id",E0e="device.model.identifier",b0e="device.model.name",T0e="faas.name",v0e="faas.id",A0e="faas.version",R0e="faas.instance",w0e="faas.max_memory",k0e="host.id",I0e="host.name",x0e="host.type",O0e="host.arch",N0e="host.image.name",P0e="host.image.id",C0e="host.image.version",M0e="k8s.cluster.name",D0e="k8s.node.name",L0e="k8s.node.uid",U0e="k8s.namespace.name",j0e="k8s.pod.uid",F0e="k8s.pod.name",H0e="k8s.container.name",q0e="k8s.replicaset.uid",B0e="k8s.replicaset.name",G0e="k8s.deployment.uid",z0e="k8s.deployment.name",V0e="k8s.statefulset.uid",W0e="k8s.statefulset.name",K0e="k8s.daemonset.uid",Z0e="k8s.daemonset.name",Y0e="k8s.job.uid",J0e="k8s.job.name",X0e="k8s.cronjob.uid",Q0e="k8s.cronjob.name",$0e="os.type",exe="os.description",txe="os.name",nxe="os.version",rxe="process.pid",ixe="process.executable.name",sxe="process.executable.path",oxe="process.command",axe="process.command_line",cxe="process.command_args",uxe="process.owner",lxe="process.runtime.name",dxe="process.runtime.version",fxe="process.runtime.description",pxe="service.name",hxe="service.namespace",mxe="service.instance.id",gxe="service.version",yxe="telemetry.sdk.name",Sxe="telemetry.sdk.language",_xe="telemetry.sdk.version",Exe="telemetry.auto.version",bxe="webengine.name",Txe="webengine.version",vxe="webengine.description",kUt=XIe,IUt=QIe,xUt=$Ie,OUt=e0e,NUt=t0e,PUt=n0e,CUt=r0e,MUt=i0e,DUt=s0e,LUt=o0e,UUt=a0e,jUt=c0e,FUt=u0e,HUt=l0e,qUt=d0e,BUt=f0e,GUt=p0e,zUt=h0e,VUt=m0e,WUt=g0e,KUt=y0e,ZUt=S0e,YUt=_0e,JUt=E0e,XUt=b0e,QUt=T0e,$Ut=v0e,ejt=A0e,tjt=R0e,njt=w0e,rjt=k0e,ijt=I0e,sjt=x0e,ojt=O0e,ajt=N0e,cjt=P0e,ujt=C0e,ljt=M0e,djt=D0e,fjt=L0e,pjt=U0e,hjt=j0e,mjt=F0e,gjt=H0e,yjt=q0e,Sjt=B0e,_jt=G0e,Ejt=z0e,bjt=V0e,Tjt=W0e,vjt=K0e,Ajt=Z0e,Rjt=Y0e,wjt=J0e,kjt=X0e,Ijt=Q0e,xjt=$0e,Ojt=exe,Njt=txe,Pjt=nxe,Cjt=rxe,Mjt=ixe,Djt=sxe,Ljt=oxe,Ujt=axe,jjt=cxe,Fjt=uxe,Hjt=lxe,qjt=dxe,Bjt=fxe,Gjt=pxe,q8=hxe,zjt=mxe,Vjt=gxe,Wjt=yxe,Kjt=Sxe,Zjt=_xe,Yjt=Exe,Jjt=bxe,Xjt=Txe,Qjt=vxe,$jt=Ts([XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,o0e,a0e,c0e,u0e,l0e,d0e,f0e,p0e,h0e,m0e,g0e,y0e,S0e,_0e,E0e,b0e,T0e,v0e,A0e,R0e,w0e,k0e,I0e,x0e,O0e,N0e,P0e,C0e,M0e,D0e,L0e,U0e,j0e,F0e,H0e,q0e,B0e,G0e,z0e,V0e,W0e,K0e,Z0e,Y0e,J0e,X0e,Q0e,$0e,exe,txe,nxe,rxe,ixe,sxe,oxe,axe,cxe,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,_xe,Exe,bxe,Txe,vxe]),Axe="alibaba_cloud",Rxe="aws",wxe="azure",kxe="gcp",eFt=Axe,tFt=Rxe,nFt=wxe,rFt=kxe,iFt=Ts([Axe,Rxe,wxe,kxe]),Ixe="alibaba_cloud_ecs",xxe="alibaba_cloud_fc",Oxe="aws_ec2",Nxe="aws_ecs",Pxe="aws_eks",Cxe="aws_lambda",Mxe="aws_elastic_beanstalk",Dxe="azure_vm",Lxe="azure_container_instances",Uxe="azure_aks",jxe="azure_functions",Fxe="azure_app_service",Hxe="gcp_compute_engine",qxe="gcp_cloud_run",Bxe="gcp_kubernetes_engine",Gxe="gcp_cloud_functions",zxe="gcp_app_engine",sFt=Ixe,oFt=xxe,aFt=Oxe,cFt=Nxe,uFt=Pxe,lFt=Cxe,dFt=Mxe,fFt=Dxe,pFt=Lxe,hFt=Uxe,mFt=jxe,gFt=Fxe,yFt=Hxe,SFt=qxe,_Ft=Bxe,EFt=Gxe,bFt=zxe,TFt=Ts([Ixe,xxe,Oxe,Nxe,Pxe,Cxe,Mxe,Dxe,Lxe,Uxe,jxe,Fxe,Hxe,qxe,Bxe,Gxe,zxe]),Vxe="ec2",Wxe="fargate",vFt=Vxe,AFt=Wxe,RFt=Ts([Vxe,Wxe]),Kxe="amd64",Zxe="arm32",Yxe="arm64",Jxe="ia64",Xxe="ppc32",Qxe="ppc64",$xe="x86",wFt=Kxe,kFt=Zxe,IFt=Yxe,xFt=Jxe,OFt=Xxe,NFt=Qxe,PFt=$xe,CFt=Ts([Kxe,Zxe,Yxe,Jxe,Xxe,Qxe,$xe]),eOe="windows",tOe="linux",nOe="darwin",rOe="freebsd",iOe="netbsd",sOe="openbsd",oOe="dragonflybsd",aOe="hpux",cOe="aix",uOe="solaris",lOe="z_os",MFt=eOe,DFt=tOe,LFt=nOe,UFt=rOe,jFt=iOe,FFt=sOe,HFt=oOe,qFt=aOe,BFt=cOe,GFt=uOe,zFt=lOe,VFt=Ts([eOe,tOe,nOe,rOe,iOe,sOe,oOe,aOe,cOe,uOe,lOe]),dOe="cpp",fOe="dotnet",pOe="erlang",hOe="go",mOe="java",gOe="nodejs",yOe="php",SOe="python",_Oe="ruby",EOe="webjs",WFt=dOe,KFt=fOe,ZFt=pOe,YFt=hOe,JFt=mOe,XFt=gOe,QFt=yOe,$Ft=SOe,eHt=_Oe,tHt=EOe,nHt=Ts([dOe,fOe,pOe,hOe,mOe,gOe,yOe,SOe,_Oe,EOe])});var TOe=v(()=>{bOe()});var rHt,iHt,sHt,oHt,aHt,cHt,uHt,lHt,dHt,fHt,pHt,hHt,mHt,gHt,yHt,SHt,_Ht,EHt,bHt,THt,vHt,AHt,RHt,wHt,kHt,B8,G8,IHt,iA,xHt,z8,V8,OHt,fE,NHt,PHt,CHt,MHt,DHt,LHt,UHt,jHt,hmr,mmr,W8,FHt,HHt,qHt,BHt,GHt,zHt,pE,VHt,WHt,KHt,gmr,ZHt,YHt,JHt,XHt,ymr,QHt,$Ht,eqt,tqt,rm,im,nqt,rqt,iqt,sqt,oqt,aqt,cqt,uqt,lqt,Smr,dqt,fqt,pqt,hqt,mqt,gqt,K8,Z8,yqt,Y8,J8,Sqt,_qt,_mr,Emr,Eqt,bqt,Tqt,vqt,Aqt,Rqt,wqt,kqt,bmr,Iqt,X8,Q8,xqt,$8,Oqt,eJ,Nqt,Pqt,Cqt,Mqt,Dqt,Lqt,Uqt,jqt,Fqt,Tmr,Hqt,qqt,vmr,Bqt,Gqt,Amr,zqt,Vqt,Wqt,Kqt,Zqt,Yqt,Jqt,Xqt,ay,Qqt,$qt,eBt,tJ,vOe=v(()=>{rHt="aspnetcore.diagnostics.exception.result",iHt="aborted",sHt="handled",oHt="skipped",aHt="unhandled",cHt="aspnetcore.diagnostics.handler.type",uHt="aspnetcore.rate_limiting.policy",lHt="aspnetcore.rate_limiting.result",dHt="acquired",fHt="endpoint_limiter",pHt="global_limiter",hHt="request_canceled",mHt="aspnetcore.request.is_unhandled",gHt="aspnetcore.routing.is_fallback",yHt="aspnetcore.routing.match_status",SHt="failure",_Ht="success",EHt="aspnetcore.user.is_authenticated",bHt="client.address",THt="client.port",vHt="code.column.number",AHt="code.file.path",RHt="code.function.name",wHt="code.line.number",kHt="code.stacktrace",B8="db.collection.name",G8="db.namespace",IHt="db.operation.batch.size",iA="db.operation.name",xHt="db.query.summary",z8="db.query.text",V8="db.response.status_code",OHt="db.stored_procedure.name",fE="db.system.name",NHt="mariadb",PHt="microsoft.sql_server",CHt="mysql",MHt="postgresql",DHt="dotnet.gc.heap.generation",LHt="gen0",UHt="gen1",jHt="gen2",hmr="loh",mmr="poh",W8="error.type",FHt="_OTHER",HHt="exception.escaped",qHt="exception.message",BHt="exception.stacktrace",GHt="exception.type",zHt=e=>`http.request.header.${e}`,pE="http.request.method",VHt="_OTHER",WHt="CONNECT",KHt="DELETE",gmr="GET",ZHt="HEAD",YHt="OPTIONS",JHt="PATCH",XHt="POST",ymr="PUT",QHt="TRACE",$Ht="http.request.method_original",eqt="http.request.resend_count",tqt=e=>`http.response.header.${e}`,rm="http.response.status_code",im="http.route",nqt="jvm.gc.action",rqt="jvm.gc.name",iqt="jvm.memory.pool.name",sqt="jvm.memory.type",oqt="heap",aqt="non_heap",cqt="jvm.thread.daemon",uqt="jvm.thread.state",lqt="blocked",Smr="new",dqt="runnable",fqt="terminated",pqt="timed_waiting",hqt="waiting",mqt="network.local.address",gqt="network.local.port",K8="network.peer.address",Z8="network.peer.port",yqt="network.protocol.name",Y8="network.protocol.version",J8="network.transport",Sqt="pipe",_qt="quic",_mr="tcp",Emr="udp",Eqt="unix",bqt="network.type",Tqt="ipv4",vqt="ipv6",Aqt="otel.scope.name",Rqt="otel.scope.version",wqt="otel.status_code",kqt="ERROR",bmr="OK",Iqt="otel.status_description",X8="server.address",Q8="server.port",xqt="service.instance.id",$8="service.name",Oqt="service.namespace",eJ="service.version",Nqt="signalr.connection.status",Pqt="app_shutdown",Cqt="normal_closure",Mqt="timeout",Dqt="signalr.transport",Lqt="long_polling",Uqt="server_sent_events",jqt="web_sockets",Fqt="telemetry.sdk.language",Tmr="cpp",Hqt="dotnet",qqt="erlang",vmr="go",Bqt="java",Gqt="nodejs",Amr="php",zqt="python",Vqt="ruby",Wqt="rust",Kqt="swift",Zqt="webjs",Yqt="telemetry.sdk.name",Jqt="telemetry.sdk.version",Xqt="url.fragment",ay="url.full",Qqt="url.path",$qt="url.query",eBt="url.scheme",tJ="user_agent.original"});var tBt,nBt,rBt,iBt,sBt,oBt,aBt,cBt,uBt,lBt,dBt,fBt,pBt,hBt,mBt,gBt,yBt,SBt,_Bt,EBt,bBt,TBt,vBt,ABt,RBt,wBt,kBt,IBt,xBt,OBt,NBt,PBt,CBt,MBt,DBt,LBt,UBt,jBt,FBt,HBt,qBt,BBt,GBt,zBt,VBt,WBt,KBt,ZBt,YBt,JBt,XBt,AOe=v(()=>{tBt="aspnetcore.diagnostics.exceptions",nBt="aspnetcore.rate_limiting.active_request_leases",rBt="aspnetcore.rate_limiting.queued_requests",iBt="aspnetcore.rate_limiting.request.time_in_queue",sBt="aspnetcore.rate_limiting.request_lease.duration",oBt="aspnetcore.rate_limiting.requests",aBt="aspnetcore.routing.match_attempts",cBt="db.client.operation.duration",uBt="dotnet.assembly.count",lBt="dotnet.exceptions",dBt="dotnet.gc.collections",fBt="dotnet.gc.heap.total_allocated",pBt="dotnet.gc.last_collection.heap.fragmentation.size",hBt="dotnet.gc.last_collection.heap.size",mBt="dotnet.gc.last_collection.memory.committed_size",gBt="dotnet.gc.pause.time",yBt="dotnet.jit.compilation.time",SBt="dotnet.jit.compiled_il.size",_Bt="dotnet.jit.compiled_methods",EBt="dotnet.monitor.lock_contentions",bBt="dotnet.process.cpu.count",TBt="dotnet.process.cpu.time",vBt="dotnet.process.memory.working_set",ABt="dotnet.thread_pool.queue.length",RBt="dotnet.thread_pool.thread.count",wBt="dotnet.thread_pool.work_item.count",kBt="dotnet.timer.count",IBt="http.client.request.duration",xBt="http.server.request.duration",OBt="jvm.class.count",NBt="jvm.class.loaded",PBt="jvm.class.unloaded",CBt="jvm.cpu.count",MBt="jvm.cpu.recent_utilization",DBt="jvm.cpu.time",LBt="jvm.gc.duration",UBt="jvm.memory.committed",jBt="jvm.memory.limit",FBt="jvm.memory.used",HBt="jvm.memory.used_after_last_gc",qBt="jvm.thread.count",BBt="kestrel.active_connections",GBt="kestrel.active_tls_handshakes",zBt="kestrel.connection.duration",VBt="kestrel.queued_connections",WBt="kestrel.queued_requests",KBt="kestrel.rejected_connections",ZBt="kestrel.tls_handshake.duration",YBt="kestrel.upgraded_connections",JBt="signalr.server.active_connections",XBt="signalr.server.connection.duration"});var QBt,ROe=v(()=>{QBt="exception"});var Mr={};Rr(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>iHt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>sHt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>oHt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>aHt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>dHt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>fHt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>pHt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>hHt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>SHt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>_Ht,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>rHt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>cHt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>uHt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>lHt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>mHt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>gHt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>yHt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>EHt,ATTR_CLIENT_ADDRESS:()=>bHt,ATTR_CLIENT_PORT:()=>THt,ATTR_CODE_COLUMN_NUMBER:()=>vHt,ATTR_CODE_FILE_PATH:()=>AHt,ATTR_CODE_FUNCTION_NAME:()=>RHt,ATTR_CODE_LINE_NUMBER:()=>wHt,ATTR_CODE_STACKTRACE:()=>kHt,ATTR_DB_COLLECTION_NAME:()=>B8,ATTR_DB_NAMESPACE:()=>G8,ATTR_DB_OPERATION_BATCH_SIZE:()=>IHt,ATTR_DB_OPERATION_NAME:()=>iA,ATTR_DB_QUERY_SUMMARY:()=>xHt,ATTR_DB_QUERY_TEXT:()=>z8,ATTR_DB_RESPONSE_STATUS_CODE:()=>V8,ATTR_DB_STORED_PROCEDURE_NAME:()=>OHt,ATTR_DB_SYSTEM_NAME:()=>fE,ATTR_DOTNET_GC_HEAP_GENERATION:()=>DHt,ATTR_ERROR_TYPE:()=>W8,ATTR_EXCEPTION_ESCAPED:()=>HHt,ATTR_EXCEPTION_MESSAGE:()=>qHt,ATTR_EXCEPTION_STACKTRACE:()=>BHt,ATTR_EXCEPTION_TYPE:()=>GHt,ATTR_HTTP_REQUEST_HEADER:()=>zHt,ATTR_HTTP_REQUEST_METHOD:()=>pE,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>$Ht,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>eqt,ATTR_HTTP_RESPONSE_HEADER:()=>tqt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>rm,ATTR_HTTP_ROUTE:()=>im,ATTR_JVM_GC_ACTION:()=>nqt,ATTR_JVM_GC_NAME:()=>rqt,ATTR_JVM_MEMORY_POOL_NAME:()=>iqt,ATTR_JVM_MEMORY_TYPE:()=>sqt,ATTR_JVM_THREAD_DAEMON:()=>cqt,ATTR_JVM_THREAD_STATE:()=>uqt,ATTR_NETWORK_LOCAL_ADDRESS:()=>mqt,ATTR_NETWORK_LOCAL_PORT:()=>gqt,ATTR_NETWORK_PEER_ADDRESS:()=>K8,ATTR_NETWORK_PEER_PORT:()=>Z8,ATTR_NETWORK_PROTOCOL_NAME:()=>yqt,ATTR_NETWORK_PROTOCOL_VERSION:()=>Y8,ATTR_NETWORK_TRANSPORT:()=>J8,ATTR_NETWORK_TYPE:()=>bqt,ATTR_OTEL_SCOPE_NAME:()=>Aqt,ATTR_OTEL_SCOPE_VERSION:()=>Rqt,ATTR_OTEL_STATUS_CODE:()=>wqt,ATTR_OTEL_STATUS_DESCRIPTION:()=>Iqt,ATTR_SERVER_ADDRESS:()=>X8,ATTR_SERVER_PORT:()=>Q8,ATTR_SERVICE_INSTANCE_ID:()=>xqt,ATTR_SERVICE_NAME:()=>$8,ATTR_SERVICE_NAMESPACE:()=>Oqt,ATTR_SERVICE_VERSION:()=>eJ,ATTR_SIGNALR_CONNECTION_STATUS:()=>Nqt,ATTR_SIGNALR_TRANSPORT:()=>Dqt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>Fqt,ATTR_TELEMETRY_SDK_NAME:()=>Yqt,ATTR_TELEMETRY_SDK_VERSION:()=>Jqt,ATTR_URL_FRAGMENT:()=>Xqt,ATTR_URL_FULL:()=>ay,ATTR_URL_PATH:()=>Qqt,ATTR_URL_QUERY:()=>$qt,ATTR_URL_SCHEME:()=>eBt,ATTR_USER_AGENT_ORIGINAL:()=>tJ,AWSECSLAUNCHTYPEVALUES_EC2:()=>vFt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>AFt,AwsEcsLaunchtypeValues:()=>RFt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>sFt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>oFt,CLOUDPLATFORMVALUES_AWS_EC2:()=>aFt,CLOUDPLATFORMVALUES_AWS_ECS:()=>cFt,CLOUDPLATFORMVALUES_AWS_EKS:()=>uFt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>dFt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>lFt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>hFt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>gFt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>pFt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>mFt,CLOUDPLATFORMVALUES_AZURE_VM:()=>fFt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>bFt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>EFt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>SFt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>yFt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>_Ft,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>eFt,CLOUDPROVIDERVALUES_AWS:()=>tFt,CLOUDPROVIDERVALUES_AZURE:()=>nFt,CLOUDPROVIDERVALUES_GCP:()=>rFt,CloudPlatformValues:()=>TFt,CloudProviderValues:()=>iFt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>FLt,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>KLt,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>HLt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>WLt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>BLt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>YLt,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>GLt,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>qLt,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>ZLt,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>VLt,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>zLt,DBSYSTEMVALUES_ADABAS:()=>cLt,DBSYSTEMVALUES_CACHE:()=>aLt,DBSYSTEMVALUES_CASSANDRA:()=>RLt,DBSYSTEMVALUES_CLOUDSCAPE:()=>$Dt,DBSYSTEMVALUES_COCKROACHDB:()=>ULt,DBSYSTEMVALUES_COLDFUSION:()=>ALt,DBSYSTEMVALUES_COSMOSDB:()=>NLt,DBSYSTEMVALUES_COUCHBASE:()=>xLt,DBSYSTEMVALUES_COUCHDB:()=>OLt,DBSYSTEMVALUES_DB2:()=>YDt,DBSYSTEMVALUES_DERBY:()=>lLt,DBSYSTEMVALUES_DYNAMODB:()=>PLt,DBSYSTEMVALUES_EDB:()=>oLt,DBSYSTEMVALUES_ELASTICSEARCH:()=>DLt,DBSYSTEMVALUES_FILEMAKER:()=>dLt,DBSYSTEMVALUES_FIREBIRD:()=>uLt,DBSYSTEMVALUES_FIRSTSQL:()=>sLt,DBSYSTEMVALUES_GEODE:()=>MLt,DBSYSTEMVALUES_H2:()=>vLt,DBSYSTEMVALUES_HANADB:()=>rLt,DBSYSTEMVALUES_HBASE:()=>wLt,DBSYSTEMVALUES_HIVE:()=>QDt,DBSYSTEMVALUES_HSQLDB:()=>eLt,DBSYSTEMVALUES_INFORMIX:()=>fLt,DBSYSTEMVALUES_INGRES:()=>iLt,DBSYSTEMVALUES_INSTANTDB:()=>pLt,DBSYSTEMVALUES_INTERBASE:()=>hLt,DBSYSTEMVALUES_MARIADB:()=>mLt,DBSYSTEMVALUES_MAXDB:()=>nLt,DBSYSTEMVALUES_MEMCACHED:()=>LLt,DBSYSTEMVALUES_MONGODB:()=>kLt,DBSYSTEMVALUES_MSSQL:()=>WDt,DBSYSTEMVALUES_MYSQL:()=>KDt,DBSYSTEMVALUES_NEO4J:()=>CLt,DBSYSTEMVALUES_NETEZZA:()=>gLt,DBSYSTEMVALUES_ORACLE:()=>ZDt,DBSYSTEMVALUES_OTHER_SQL:()=>VDt,DBSYSTEMVALUES_PERVASIVE:()=>yLt,DBSYSTEMVALUES_POINTBASE:()=>SLt,DBSYSTEMVALUES_POSTGRESQL:()=>JDt,DBSYSTEMVALUES_PROGRESS:()=>tLt,DBSYSTEMVALUES_REDIS:()=>ILt,DBSYSTEMVALUES_REDSHIFT:()=>XDt,DBSYSTEMVALUES_SQLITE:()=>_Lt,DBSYSTEMVALUES_SYBASE:()=>ELt,DBSYSTEMVALUES_TERADATA:()=>bLt,DBSYSTEMVALUES_VERTICA:()=>TLt,DB_SYSTEM_NAME_VALUE_MARIADB:()=>NHt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>PHt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>CHt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>MHt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>LHt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>UHt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>jHt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>hmr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>mmr,DbCassandraConsistencyLevelValues:()=>JLt,DbSystemValues:()=>jLt,ERROR_TYPE_VALUE_OTHER:()=>FHt,EVENT_EXCEPTION:()=>QBt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>s1t,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>i1t,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>r1t,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>a1t,FAASINVOKEDPROVIDERVALUES_AWS:()=>c1t,FAASINVOKEDPROVIDERVALUES_AZURE:()=>u1t,FAASINVOKEDPROVIDERVALUES_GCP:()=>l1t,FAASTRIGGERVALUES_DATASOURCE:()=>XLt,FAASTRIGGERVALUES_HTTP:()=>QLt,FAASTRIGGERVALUES_OTHER:()=>t1t,FAASTRIGGERVALUES_PUBSUB:()=>$Lt,FAASTRIGGERVALUES_TIMER:()=>e1t,FaasDocumentOperationValues:()=>o1t,FaasInvokedProviderValues:()=>d1t,FaasTriggerValues:()=>n1t,HOSTARCHVALUES_AMD64:()=>wFt,HOSTARCHVALUES_ARM32:()=>kFt,HOSTARCHVALUES_ARM64:()=>IFt,HOSTARCHVALUES_IA64:()=>xFt,HOSTARCHVALUES_PPC32:()=>OFt,HOSTARCHVALUES_PPC64:()=>NFt,HOSTARCHVALUES_X86:()=>PFt,HTTPFLAVORVALUES_HTTP_1_0:()=>Z1t,HTTPFLAVORVALUES_HTTP_1_1:()=>Y1t,HTTPFLAVORVALUES_HTTP_2_0:()=>J1t,HTTPFLAVORVALUES_QUIC:()=>Q1t,HTTPFLAVORVALUES_SPDY:()=>X1t,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>WHt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>KHt,HTTP_REQUEST_METHOD_VALUE_GET:()=>gmr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>ZHt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>YHt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>VHt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>JHt,HTTP_REQUEST_METHOD_VALUE_POST:()=>XHt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>ymr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>QHt,HostArchValues:()=>CFt,HttpFlavorValues:()=>$1t,JVM_MEMORY_TYPE_VALUE_HEAP:()=>oqt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>aqt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>lqt,JVM_THREAD_STATE_VALUE_NEW:()=>Smr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>dqt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>fqt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>pqt,JVM_THREAD_STATE_VALUE_WAITING:()=>hqt,MESSAGETYPEVALUES_RECEIVED:()=>RUt,MESSAGETYPEVALUES_SENT:()=>AUt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>eUt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>tUt,MESSAGINGOPERATIONVALUES_PROCESS:()=>iUt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>rUt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>tBt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>nBt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>rBt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>oBt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>sBt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>iBt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>aBt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>cBt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>uBt,METRIC_DOTNET_EXCEPTIONS:()=>lBt,METRIC_DOTNET_GC_COLLECTIONS:()=>dBt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>fBt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>pBt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>hBt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>mBt,METRIC_DOTNET_GC_PAUSE_TIME:()=>gBt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>yBt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>SBt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>_Bt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>EBt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>bBt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>TBt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>vBt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>ABt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>RBt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>wBt,METRIC_DOTNET_TIMER_COUNT:()=>kBt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>IBt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>xBt,METRIC_JVM_CLASS_COUNT:()=>OBt,METRIC_JVM_CLASS_LOADED:()=>NBt,METRIC_JVM_CLASS_UNLOADED:()=>PBt,METRIC_JVM_CPU_COUNT:()=>CBt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>MBt,METRIC_JVM_CPU_TIME:()=>DBt,METRIC_JVM_GC_DURATION:()=>LBt,METRIC_JVM_MEMORY_COMMITTED:()=>UBt,METRIC_JVM_MEMORY_LIMIT:()=>jBt,METRIC_JVM_MEMORY_USED:()=>FBt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>HBt,METRIC_JVM_THREAD_COUNT:()=>qBt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>BBt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>GBt,METRIC_KESTREL_CONNECTION_DURATION:()=>zBt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>VBt,METRIC_KESTREL_QUEUED_REQUESTS:()=>WBt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>KBt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>ZBt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>YBt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>JBt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>XBt,MessageTypeValues:()=>wUt,MessagingDestinationKindValues:()=>nUt,MessagingOperationValues:()=>sUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>x1t,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>P1t,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>k1t,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>F1t,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>O1t,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>N1t,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>U1t,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>w1t,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>q1t,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>C1t,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>D1t,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>H1t,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>M1t,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>L1t,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>G1t,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>j1t,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>W1t,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>z1t,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>V1t,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>B1t,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>I1t,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>T1t,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>v1t,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>A1t,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>E1t,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>b1t,NETTRANSPORTVALUES_INPROC:()=>y1t,NETTRANSPORTVALUES_IP:()=>h1t,NETTRANSPORTVALUES_IP_TCP:()=>f1t,NETTRANSPORTVALUES_IP_UDP:()=>p1t,NETTRANSPORTVALUES_OTHER:()=>S1t,NETTRANSPORTVALUES_PIPE:()=>g1t,NETTRANSPORTVALUES_UNIX:()=>m1t,NETWORK_TRANSPORT_VALUE_PIPE:()=>Sqt,NETWORK_TRANSPORT_VALUE_QUIC:()=>_qt,NETWORK_TRANSPORT_VALUE_TCP:()=>_mr,NETWORK_TRANSPORT_VALUE_UDP:()=>Emr,NETWORK_TRANSPORT_VALUE_UNIX:()=>Eqt,NETWORK_TYPE_VALUE_IPV4:()=>Tqt,NETWORK_TYPE_VALUE_IPV6:()=>vqt,NetHostConnectionSubtypeValues:()=>K1t,NetHostConnectionTypeValues:()=>R1t,NetTransportValues:()=>_1t,OSTYPEVALUES_AIX:()=>BFt,OSTYPEVALUES_DARWIN:()=>LFt,OSTYPEVALUES_DRAGONFLYBSD:()=>HFt,OSTYPEVALUES_FREEBSD:()=>UFt,OSTYPEVALUES_HPUX:()=>qFt,OSTYPEVALUES_LINUX:()=>DFt,OSTYPEVALUES_NETBSD:()=>jFt,OSTYPEVALUES_OPENBSD:()=>FFt,OSTYPEVALUES_SOLARIS:()=>GFt,OSTYPEVALUES_WINDOWS:()=>MFt,OSTYPEVALUES_Z_OS:()=>zFt,OTEL_STATUS_CODE_VALUE_ERROR:()=>kqt,OTEL_STATUS_CODE_VALUE_OK:()=>bmr,OsTypeValues:()=>VFt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>gUt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>fUt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>aUt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>bUt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>lUt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>mUt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>_Ut,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>uUt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>dUt,RPCGRPCSTATUSCODEVALUES_OK:()=>oUt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>yUt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>pUt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>hUt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>TUt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>EUt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>SUt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>cUt,RpcGrpcStatusCodeValues:()=>vUt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>nDt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>hDt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>$Mt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>YMt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>fDt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>aDt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>sDt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>mDt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>rDt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>JMt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>tDt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>oDt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>eDt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>XMt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>QMt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>pDt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>uDt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>lDt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>iDt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>cDt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>ZMt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>dDt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>HCt,SEMATTRS_CODE_FILEPATH:()=>jMt,SEMATTRS_CODE_FUNCTION:()=>LMt,SEMATTRS_CODE_LINENO:()=>FMt,SEMATTRS_CODE_NAMESPACE:()=>UMt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>YCt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>eMt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>$Ct,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>XCt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>KCt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>ZCt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>QCt,SEMATTRS_DB_CASSANDRA_TABLE:()=>JCt,SEMATTRS_DB_CONNECTION_STRING:()=>qCt,SEMATTRS_DB_HBASE_NAMESPACE:()=>tMt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>GCt,SEMATTRS_DB_MONGODB_COLLECTION:()=>rMt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>WCt,SEMATTRS_DB_NAME:()=>zCt,SEMATTRS_DB_OPERATION:()=>VCt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>nMt,SEMATTRS_DB_SQL_TABLE:()=>iMt,SEMATTRS_DB_STATEMENT:()=>x8,SEMATTRS_DB_SYSTEM:()=>I8,SEMATTRS_DB_USER:()=>BCt,SEMATTRS_ENDUSER_ID:()=>NMt,SEMATTRS_ENDUSER_ROLE:()=>PMt,SEMATTRS_ENDUSER_SCOPE:()=>CMt,SEMATTRS_EXCEPTION_ESCAPED:()=>cMt,SEMATTRS_EXCEPTION_MESSAGE:()=>oMt,SEMATTRS_EXCEPTION_STACKTRACE:()=>aMt,SEMATTRS_EXCEPTION_TYPE:()=>sMt,SEMATTRS_FAAS_COLDSTART:()=>gMt,SEMATTRS_FAAS_CRON:()=>mMt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>lMt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>pMt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>dMt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>fMt,SEMATTRS_FAAS_EXECUTION:()=>uMt,SEMATTRS_FAAS_INVOKED_NAME:()=>yMt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>SMt,SEMATTRS_FAAS_INVOKED_REGION:()=>_Mt,SEMATTRS_FAAS_TIME:()=>hMt,SEMATTRS_FAAS_TRIGGER:()=>O8,SEMATTRS_HTTP_CLIENT_IP:()=>KMt,SEMATTRS_HTTP_FLAVOR:()=>BMt,SEMATTRS_HTTP_HOST:()=>HMt,SEMATTRS_HTTP_METHOD:()=>tO,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>zMt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>VMt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>D8,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>L8,SEMATTRS_HTTP_ROUTE:()=>U8,SEMATTRS_HTTP_SCHEME:()=>qMt,SEMATTRS_HTTP_SERVER_NAME:()=>WMt,SEMATTRS_HTTP_STATUS_CODE:()=>dE,SEMATTRS_HTTP_TARGET:()=>M8,SEMATTRS_HTTP_URL:()=>rA,SEMATTRS_HTTP_USER_AGENT:()=>GMt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>BDt,SEMATTRS_MESSAGE_ID:()=>qDt,SEMATTRS_MESSAGE_TYPE:()=>HDt,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>GDt,SEMATTRS_MESSAGING_CONSUMER_ID:()=>kDt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>vDt,SEMATTRS_MESSAGING_DESTINATION:()=>gDt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>yDt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>NDt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>ODt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>xDt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>PDt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>CDt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>TDt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>RDt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>ADt,SEMATTRS_MESSAGING_OPERATION:()=>wDt,SEMATTRS_MESSAGING_PROTOCOL:()=>_Dt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>EDt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>IDt,SEMATTRS_MESSAGING_SYSTEM:()=>j8,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>SDt,SEMATTRS_MESSAGING_URL:()=>bDt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>xMt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>kMt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>IMt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>wMt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>RMt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>AMt,SEMATTRS_NET_HOST_IP:()=>P8,SEMATTRS_NET_HOST_NAME:()=>vMt,SEMATTRS_NET_HOST_PORT:()=>C8,SEMATTRS_NET_PEER_IP:()=>N8,SEMATTRS_NET_PEER_NAME:()=>TMt,SEMATTRS_NET_PEER_PORT:()=>bMt,SEMATTRS_NET_TRANSPORT:()=>EMt,SEMATTRS_PEER_SERVICE:()=>OMt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>H8,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>jDt,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>FDt,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>UDt,SEMATTRS_RPC_JSONRPC_VERSION:()=>LDt,SEMATTRS_RPC_METHOD:()=>DDt,SEMATTRS_RPC_SERVICE:()=>F8,SEMATTRS_RPC_SYSTEM:()=>MDt,SEMATTRS_THREAD_ID:()=>MMt,SEMATTRS_THREAD_NAME:()=>DMt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>CUt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>PUt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>MUt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>DUt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>LUt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>UUt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>jUt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>HUt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>FUt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>BUt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>qUt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>IUt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>OUt,SEMRESATTRS_CLOUD_PLATFORM:()=>NUt,SEMRESATTRS_CLOUD_PROVIDER:()=>kUt,SEMRESATTRS_CLOUD_REGION:()=>xUt,SEMRESATTRS_CONTAINER_ID:()=>zUt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>WUt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>KUt,SEMRESATTRS_CONTAINER_NAME:()=>GUt,SEMRESATTRS_CONTAINER_RUNTIME:()=>VUt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>ZUt,SEMRESATTRS_DEVICE_ID:()=>YUt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>JUt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>XUt,SEMRESATTRS_FAAS_ID:()=>$Ut,SEMRESATTRS_FAAS_INSTANCE:()=>tjt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>njt,SEMRESATTRS_FAAS_NAME:()=>QUt,SEMRESATTRS_FAAS_VERSION:()=>ejt,SEMRESATTRS_HOST_ARCH:()=>ojt,SEMRESATTRS_HOST_ID:()=>rjt,SEMRESATTRS_HOST_IMAGE_ID:()=>cjt,SEMRESATTRS_HOST_IMAGE_NAME:()=>ajt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>ujt,SEMRESATTRS_HOST_NAME:()=>ijt,SEMRESATTRS_HOST_TYPE:()=>sjt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>ljt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>gjt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>Ijt,SEMRESATTRS_K8S_CRONJOB_UID:()=>kjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>Ajt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>vjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>Ejt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>_jt,SEMRESATTRS_K8S_JOB_NAME:()=>wjt,SEMRESATTRS_K8S_JOB_UID:()=>Rjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>pjt,SEMRESATTRS_K8S_NODE_NAME:()=>djt,SEMRESATTRS_K8S_NODE_UID:()=>fjt,SEMRESATTRS_K8S_POD_NAME:()=>mjt,SEMRESATTRS_K8S_POD_UID:()=>hjt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>Sjt,SEMRESATTRS_K8S_REPLICASET_UID:()=>yjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>Tjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>bjt,SEMRESATTRS_OS_DESCRIPTION:()=>Ojt,SEMRESATTRS_OS_NAME:()=>Njt,SEMRESATTRS_OS_TYPE:()=>xjt,SEMRESATTRS_OS_VERSION:()=>Pjt,SEMRESATTRS_PROCESS_COMMAND:()=>Ljt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>jjt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>Ujt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>Mjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Djt,SEMRESATTRS_PROCESS_OWNER:()=>Fjt,SEMRESATTRS_PROCESS_PID:()=>Cjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>Bjt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>Hjt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>qjt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>zjt,SEMRESATTRS_SERVICE_NAME:()=>Gjt,SEMRESATTRS_SERVICE_NAMESPACE:()=>q8,SEMRESATTRS_SERVICE_VERSION:()=>Vjt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>Yjt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>Kjt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>Wjt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>Zjt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>Qjt,SEMRESATTRS_WEBENGINE_NAME:()=>Jjt,SEMRESATTRS_WEBENGINE_VERSION:()=>Xjt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>Pqt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>Cqt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>Mqt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>Lqt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>Uqt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>jqt,SemanticAttributes:()=>zDt,SemanticResourceAttributes:()=>$jt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>WFt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>KFt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>ZFt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>YFt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>JFt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>XFt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>QFt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>$Ft,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>eHt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>tHt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>Tmr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>Hqt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>qqt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>vmr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>Bqt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>Gqt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>Amr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>zqt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>Vqt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>Wqt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>Kqt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>Zqt,TelemetrySdkLanguageValues:()=>nHt});var xn=v(()=>{JIe();TOe();vOe();AOe();ROe()});var wOe=w(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.ATTR_PROCESS_RUNTIME_NAME=void 0;cj.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var kOe=w(lj=>{"use strict";Object.defineProperty(lj,"__esModule",{value:!0});lj.SDK_INFO=void 0;var $Bt=sAe(),uj=(xn(),Ie(Mr)),eGt=wOe();lj.SDK_INFO={[uj.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[eGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[uj.ATTR_TELEMETRY_SDK_LANGUAGE]:uj.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[uj.ATTR_TELEMETRY_SDK_VERSION]:$Bt.VERSION}});var IOe=w(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.otperformance=La.SDK_INFO=La._globalThis=La.getStringListFromEnv=La.getNumberFromEnv=La.getBooleanFromEnv=La.getStringFromEnv=void 0;var dj=rAe();Object.defineProperty(La,"getStringFromEnv",{enumerable:!0,get:function(){return dj.getStringFromEnv}});Object.defineProperty(La,"getBooleanFromEnv",{enumerable:!0,get:function(){return dj.getBooleanFromEnv}});Object.defineProperty(La,"getNumberFromEnv",{enumerable:!0,get:function(){return dj.getNumberFromEnv}});Object.defineProperty(La,"getStringListFromEnv",{enumerable:!0,get:function(){return dj.getStringListFromEnv}});var tGt=iAe();Object.defineProperty(La,"_globalThis",{enumerable:!0,get:function(){return tGt._globalThis}});var nGt=kOe();Object.defineProperty(La,"SDK_INFO",{enumerable:!0,get:function(){return nGt.SDK_INFO}});La.otperformance=performance});var nJ=w(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.getStringListFromEnv=Ua.getNumberFromEnv=Ua.getStringFromEnv=Ua.getBooleanFromEnv=Ua.otperformance=Ua._globalThis=Ua.SDK_INFO=void 0;var hE=IOe();Object.defineProperty(Ua,"SDK_INFO",{enumerable:!0,get:function(){return hE.SDK_INFO}});Object.defineProperty(Ua,"_globalThis",{enumerable:!0,get:function(){return hE._globalThis}});Object.defineProperty(Ua,"otperformance",{enumerable:!0,get:function(){return hE.otperformance}});Object.defineProperty(Ua,"getBooleanFromEnv",{enumerable:!0,get:function(){return hE.getBooleanFromEnv}});Object.defineProperty(Ua,"getStringFromEnv",{enumerable:!0,get:function(){return hE.getStringFromEnv}});Object.defineProperty(Ua,"getNumberFromEnv",{enumerable:!0,get:function(){return hE.getNumberFromEnv}});Object.defineProperty(Ua,"getStringListFromEnv",{enumerable:!0,get:function(){return hE.getStringListFromEnv}})});var POe=w(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.addHrTimes=Qr.isTimeInput=Qr.isTimeInputHrTime=Qr.hrTimeToMicroseconds=Qr.hrTimeToMilliseconds=Qr.hrTimeToNanoseconds=Qr.hrTimeToTimeStamp=Qr.hrTimeDuration=Qr.timeInputToHrTime=Qr.hrTime=Qr.getTimeOrigin=Qr.millisToHrTime=void 0;var fj=nJ(),xOe=9,rGt=6,iGt=Math.pow(10,rGt),pj=Math.pow(10,xOe);function nO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*iGt);return[n,r]}Qr.millisToHrTime=nO;function sGt(){return fj.otperformance.timeOrigin}Qr.getTimeOrigin=sGt;function OOe(e){let t=nO(fj.otperformance.timeOrigin),n=nO(typeof e=="number"?e:fj.otperformance.now());return NOe(t,n)}Qr.hrTime=OOe;function oGt(e){if(rJ(e))return e;if(typeof e=="number")return e=pj&&(n[1]-=pj,n[0]+=1),n}Qr.addHrTimes=NOe});var COe=w(hj=>{"use strict";Object.defineProperty(hj,"__esModule",{value:!0});hj.unrefTimer=void 0;function pGt(e){typeof e!="number"&&e.unref()}hj.unrefTimer=pGt});var MOe=w(rO=>{"use strict";Object.defineProperty(rO,"__esModule",{value:!0});rO.ExportResultCode=void 0;var hGt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(hGt=rO.ExportResultCode||(rO.ExportResultCode={}))});var LOe=w(mj=>{"use strict";Object.defineProperty(mj,"__esModule",{value:!0});mj.CompositePropagator=void 0;var DOe=(Me(),Ie(Ze)),iJ=class{_propagators;_fields;constructor(t={}){this._propagators=t.propagators??[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,r)=>n.concat(r),[])))}inject(t,n,r){for(let i of this._propagators)try{i.inject(t,n,r)}catch(s){DOe.diag.warn(`Failed to inject with ${i.constructor.name}. Err: ${s.message}`)}}extract(t,n,r){return this._propagators.reduce((i,s)=>{try{return s.extract(i,n,r)}catch(o){DOe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};mj.CompositePropagator=iJ});var UOe=w(sA=>{"use strict";Object.defineProperty(sA,"__esModule",{value:!0});sA.validateValue=sA.validateKey=void 0;var sJ="[_0-9a-z-*/]",mGt=`[a-z]${sJ}{0,255}`,gGt=`[a-z0-9]${sJ}{0,240}@[a-z]${sJ}{0,13}`,yGt=new RegExp(`^(?:${mGt}|${gGt})$`),SGt=/^[ -~]{0,255}[!-~]$/,_Gt=/,|=/;function EGt(e){return yGt.test(e)}sA.validateKey=EGt;function bGt(e){return SGt.test(e)&&!_Gt.test(e)}sA.validateValue=bGt});var aJ=w(gj=>{"use strict";Object.defineProperty(gj,"__esModule",{value:!0});gj.TraceState=void 0;var jOe=UOe(),FOe=32,TGt=512,HOe=",",qOe="=",oJ=class e{_internalState=new Map;constructor(t){t&&this._parse(t)}set(t,n){let r=this._clone();return r._internalState.has(t)&&r._internalState.delete(t),r._internalState.set(t,n),r}unset(t){let n=this._clone();return n._internalState.delete(t),n}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,n)=>(t.push(n+qOe+this.get(n)),t),[]).join(HOe)}_parse(t){t.length>TGt||(this._internalState=t.split(HOe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(qOe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,jOe.validateKey)(o)&&(0,jOe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>FOe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,FOe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};gj.TraceState=oJ});var GOe=w(ja=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});ja.W3CTraceContextPropagator=ja.parseTraceParent=ja.TRACE_STATE_HEADER=ja.TRACE_PARENT_HEADER=void 0;var yj=(Me(),Ie(Ze)),vGt=eO(),AGt=aJ();ja.TRACE_PARENT_HEADER="traceparent";ja.TRACE_STATE_HEADER="tracestate";var RGt="00",wGt="(?!ff)[\\da-f]{2}",kGt="(?![0]{32})[\\da-f]{32}",IGt="(?![0]{16})[\\da-f]{16}",xGt="[\\da-f]{2}",OGt=new RegExp(`^\\s?(${wGt})-(${kGt})-(${IGt})-(${xGt})(-.*)?\\s?$`);function BOe(e){let t=OGt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}ja.parseTraceParent=BOe;var cJ=class{inject(t,n,r){let i=yj.trace.getSpanContext(t);if(!i||(0,vGt.isTracingSuppressed)(t)||!(0,yj.isSpanContextValid)(i))return;let s=`${RGt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||yj.TraceFlags.NONE).toString(16)}`;r.set(n,ja.TRACE_PARENT_HEADER,s),i.traceState&&r.set(n,ja.TRACE_STATE_HEADER,i.traceState.serialize())}extract(t,n,r){let i=r.get(n,ja.TRACE_PARENT_HEADER);if(!i)return t;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return t;let o=BOe(s);if(!o)return t;o.isRemote=!0;let a=r.get(n,ja.TRACE_STATE_HEADER);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new AGt.TraceState(typeof c=="string"?c:void 0)}return yj.trace.setSpanContext(t,o)}fields(){return[ja.TRACE_PARENT_HEADER,ja.TRACE_STATE_HEADER]}};ja.W3CTraceContextPropagator=cJ});var zOe=w(Yd=>{"use strict";Object.defineProperty(Yd,"__esModule",{value:!0});Yd.getRPCMetadata=Yd.deleteRPCMetadata=Yd.setRPCMetadata=Yd.RPCType=void 0;var NGt=(Me(),Ie(Ze)),uJ=(0,NGt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),PGt;(function(e){e.HTTP="http"})(PGt=Yd.RPCType||(Yd.RPCType={}));function CGt(e,t){return e.setValue(uJ,t)}Yd.setRPCMetadata=CGt;function MGt(e){return e.deleteValue(uJ)}Yd.deleteRPCMetadata=MGt;function DGt(e){return e.getValue(uJ)}Yd.getRPCMetadata=DGt});var YOe=w(Sj=>{"use strict";Object.defineProperty(Sj,"__esModule",{value:!0});Sj.isPlainObject=void 0;var LGt="[object Object]",UGt="[object Null]",jGt="[object Undefined]",FGt=Function.prototype,VOe=FGt.toString,HGt=VOe.call(Object),qGt=Object.getPrototypeOf,WOe=Object.prototype,KOe=WOe.hasOwnProperty,mE=Symbol?Symbol.toStringTag:void 0,ZOe=WOe.toString;function BGt(e){if(!GGt(e)||zGt(e)!==LGt)return!1;let t=qGt(e);if(t===null)return!0;let n=KOe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&VOe.call(n)===HGt}Sj.isPlainObject=BGt;function GGt(e){return e!=null&&typeof e=="object"}function zGt(e){return e==null?e===void 0?jGt:UGt:mE&&mE in Object(e)?VGt(e):WGt(e)}function VGt(e){let t=KOe.call(e,mE),n=e[mE],r=!1;try{e[mE]=void 0,r=!0}catch{}let i=ZOe.call(e);return r&&(t?e[mE]=n:delete e[mE]),i}function WGt(e){return ZOe.call(e)}});var eNe=w(bj=>{"use strict";Object.defineProperty(bj,"__esModule",{value:!0});bj.merge=void 0;var JOe=YOe(),KGt=20;function ZGt(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=QOe(t,e.shift(),0,n);return t}bj.merge=ZGt;function lJ(e){return Ej(e)?e.slice():e}function QOe(e,t,n=0,r){let i;if(!(n>KGt)){if(n++,_j(e)||_j(t)||$Oe(t))i=lJ(t);else if(Ej(e)){if(i=e.slice(),Ej(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(XOe(e,c,r)||XOe(t,c,r))delete i[c];else{if(iO(l)&&iO(d)){let f=r.get(l)||[],p=r.get(d)||[];f.push({obj:e,key:c}),p.push({obj:t,key:c}),r.set(l,f),r.set(d,p)}i[c]=QOe(i[c],u,n,r)}}}}else i=t;return i}}function XOe(e,t,n){let r=n.get(e[t])||[];for(let i=0,s=r.length;i"u"||e instanceof Date||e instanceof RegExp||e===null}function YGt(e,t){return!(!(0,JOe.isPlainObject)(e)||!(0,JOe.isPlainObject)(t))}});var tNe=w(oA=>{"use strict";Object.defineProperty(oA,"__esModule",{value:!0});oA.callWithTimeout=oA.TimeoutError=void 0;var Tj=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};oA.TimeoutError=Tj;function JGt(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new Tj("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}oA.callWithTimeout=JGt});var rNe=w(aA=>{"use strict";Object.defineProperty(aA,"__esModule",{value:!0});aA.isUrlIgnored=aA.urlMatches=void 0;function nNe(e,t){return typeof t=="string"?e===t:!!e.match(t)}aA.urlMatches=nNe;function XGt(e,t){if(!t)return!1;for(let n of t)if(nNe(e,n))return!0;return!1}aA.isUrlIgnored=XGt});var iNe=w(vj=>{"use strict";Object.defineProperty(vj,"__esModule",{value:!0});vj.Deferred=void 0;var dJ=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((t,n)=>{this._resolve=t,this._reject=n})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};vj.Deferred=dJ});var sNe=w(Aj=>{"use strict";Object.defineProperty(Aj,"__esModule",{value:!0});Aj.BindOnceFuture=void 0;var QGt=iNe(),fJ=class{_isCalled=!1;_deferred=new QGt.Deferred;_callback;_that;constructor(t,n){this._callback=t,this._that=n}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(n=>this._deferred.resolve(n),n=>this._deferred.reject(n))}catch(n){this._deferred.reject(n)}}return this._deferred.promise}};Aj.BindOnceFuture=fJ});var aNe=w(Rj=>{"use strict";Object.defineProperty(Rj,"__esModule",{value:!0});Rj.diagLogLevelFromString=void 0;var sm=(Me(),Ie(Ze)),oNe={ALL:sm.DiagLogLevel.ALL,VERBOSE:sm.DiagLogLevel.VERBOSE,DEBUG:sm.DiagLogLevel.DEBUG,INFO:sm.DiagLogLevel.INFO,WARN:sm.DiagLogLevel.WARN,ERROR:sm.DiagLogLevel.ERROR,NONE:sm.DiagLogLevel.NONE};function $Gt(e){if(e==null)return;let t=oNe[e.toUpperCase()];return t??(sm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(oNe)}, using default`),sm.DiagLogLevel.INFO)}Rj.diagLogLevelFromString=$Gt});var uNe=w(wj=>{"use strict";Object.defineProperty(wj,"__esModule",{value:!0});wj._export=void 0;var cNe=(Me(),Ie(Ze)),ezt=eO();function tzt(e,t){return new Promise(n=>{cNe.context.with((0,ezt.suppressTracing)(cNe.context.active()),()=>{e.export(t,n)})})}wj._export=tzt});var dr=w(ke=>{"use strict";Object.defineProperty(ke,"__esModule",{value:!0});ke.internal=ke.diagLogLevelFromString=ke.BindOnceFuture=ke.urlMatches=ke.isUrlIgnored=ke.callWithTimeout=ke.TimeoutError=ke.merge=ke.TraceState=ke.unsuppressTracing=ke.suppressTracing=ke.isTracingSuppressed=ke.setRPCMetadata=ke.getRPCMetadata=ke.deleteRPCMetadata=ke.RPCType=ke.parseTraceParent=ke.W3CTraceContextPropagator=ke.TRACE_STATE_HEADER=ke.TRACE_PARENT_HEADER=ke.CompositePropagator=ke.otperformance=ke.getStringListFromEnv=ke.getNumberFromEnv=ke.getBooleanFromEnv=ke.getStringFromEnv=ke._globalThis=ke.SDK_INFO=ke.parseKeyPairsIntoRecord=ke.ExportResultCode=ke.unrefTimer=ke.timeInputToHrTime=ke.millisToHrTime=ke.isTimeInputHrTime=ke.isTimeInput=ke.hrTimeToTimeStamp=ke.hrTimeToNanoseconds=ke.hrTimeToMilliseconds=ke.hrTimeToMicroseconds=ke.hrTimeDuration=ke.hrTime=ke.getTimeOrigin=ke.addHrTimes=ke.loggingErrorHandler=ke.setGlobalErrorHandler=ke.globalErrorHandler=ke.sanitizeAttributes=ke.isAttributeValue=ke.AnchoredClock=ke.W3CBaggagePropagator=void 0;var nzt=Vve();Object.defineProperty(ke,"W3CBaggagePropagator",{enumerable:!0,get:function(){return nzt.W3CBaggagePropagator}});var rzt=Wve();Object.defineProperty(ke,"AnchoredClock",{enumerable:!0,get:function(){return rzt.AnchoredClock}});var lNe=Xve();Object.defineProperty(ke,"isAttributeValue",{enumerable:!0,get:function(){return lNe.isAttributeValue}});Object.defineProperty(ke,"sanitizeAttributes",{enumerable:!0,get:function(){return lNe.sanitizeAttributes}});var dNe=$ve();Object.defineProperty(ke,"globalErrorHandler",{enumerable:!0,get:function(){return dNe.globalErrorHandler}});Object.defineProperty(ke,"setGlobalErrorHandler",{enumerable:!0,get:function(){return dNe.setGlobalErrorHandler}});var izt=w8();Object.defineProperty(ke,"loggingErrorHandler",{enumerable:!0,get:function(){return izt.loggingErrorHandler}});var Dl=POe();Object.defineProperty(ke,"addHrTimes",{enumerable:!0,get:function(){return Dl.addHrTimes}});Object.defineProperty(ke,"getTimeOrigin",{enumerable:!0,get:function(){return Dl.getTimeOrigin}});Object.defineProperty(ke,"hrTime",{enumerable:!0,get:function(){return Dl.hrTime}});Object.defineProperty(ke,"hrTimeDuration",{enumerable:!0,get:function(){return Dl.hrTimeDuration}});Object.defineProperty(ke,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return Dl.hrTimeToMicroseconds}});Object.defineProperty(ke,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return Dl.hrTimeToMilliseconds}});Object.defineProperty(ke,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return Dl.hrTimeToNanoseconds}});Object.defineProperty(ke,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return Dl.hrTimeToTimeStamp}});Object.defineProperty(ke,"isTimeInput",{enumerable:!0,get:function(){return Dl.isTimeInput}});Object.defineProperty(ke,"isTimeInputHrTime",{enumerable:!0,get:function(){return Dl.isTimeInputHrTime}});Object.defineProperty(ke,"millisToHrTime",{enumerable:!0,get:function(){return Dl.millisToHrTime}});Object.defineProperty(ke,"timeInputToHrTime",{enumerable:!0,get:function(){return Dl.timeInputToHrTime}});var szt=COe();Object.defineProperty(ke,"unrefTimer",{enumerable:!0,get:function(){return szt.unrefTimer}});var ozt=MOe();Object.defineProperty(ke,"ExportResultCode",{enumerable:!0,get:function(){return ozt.ExportResultCode}});var azt=b8();Object.defineProperty(ke,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return azt.parseKeyPairsIntoRecord}});var gE=nJ();Object.defineProperty(ke,"SDK_INFO",{enumerable:!0,get:function(){return gE.SDK_INFO}});Object.defineProperty(ke,"_globalThis",{enumerable:!0,get:function(){return gE._globalThis}});Object.defineProperty(ke,"getStringFromEnv",{enumerable:!0,get:function(){return gE.getStringFromEnv}});Object.defineProperty(ke,"getBooleanFromEnv",{enumerable:!0,get:function(){return gE.getBooleanFromEnv}});Object.defineProperty(ke,"getNumberFromEnv",{enumerable:!0,get:function(){return gE.getNumberFromEnv}});Object.defineProperty(ke,"getStringListFromEnv",{enumerable:!0,get:function(){return gE.getStringListFromEnv}});Object.defineProperty(ke,"otperformance",{enumerable:!0,get:function(){return gE.otperformance}});var czt=LOe();Object.defineProperty(ke,"CompositePropagator",{enumerable:!0,get:function(){return czt.CompositePropagator}});var kj=GOe();Object.defineProperty(ke,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return kj.TRACE_PARENT_HEADER}});Object.defineProperty(ke,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return kj.TRACE_STATE_HEADER}});Object.defineProperty(ke,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return kj.W3CTraceContextPropagator}});Object.defineProperty(ke,"parseTraceParent",{enumerable:!0,get:function(){return kj.parseTraceParent}});var Ij=zOe();Object.defineProperty(ke,"RPCType",{enumerable:!0,get:function(){return Ij.RPCType}});Object.defineProperty(ke,"deleteRPCMetadata",{enumerable:!0,get:function(){return Ij.deleteRPCMetadata}});Object.defineProperty(ke,"getRPCMetadata",{enumerable:!0,get:function(){return Ij.getRPCMetadata}});Object.defineProperty(ke,"setRPCMetadata",{enumerable:!0,get:function(){return Ij.setRPCMetadata}});var pJ=eO();Object.defineProperty(ke,"isTracingSuppressed",{enumerable:!0,get:function(){return pJ.isTracingSuppressed}});Object.defineProperty(ke,"suppressTracing",{enumerable:!0,get:function(){return pJ.suppressTracing}});Object.defineProperty(ke,"unsuppressTracing",{enumerable:!0,get:function(){return pJ.unsuppressTracing}});var uzt=aJ();Object.defineProperty(ke,"TraceState",{enumerable:!0,get:function(){return uzt.TraceState}});var lzt=eNe();Object.defineProperty(ke,"merge",{enumerable:!0,get:function(){return lzt.merge}});var fNe=tNe();Object.defineProperty(ke,"TimeoutError",{enumerable:!0,get:function(){return fNe.TimeoutError}});Object.defineProperty(ke,"callWithTimeout",{enumerable:!0,get:function(){return fNe.callWithTimeout}});var pNe=rNe();Object.defineProperty(ke,"isUrlIgnored",{enumerable:!0,get:function(){return pNe.isUrlIgnored}});Object.defineProperty(ke,"urlMatches",{enumerable:!0,get:function(){return pNe.urlMatches}});var dzt=sNe();Object.defineProperty(ke,"BindOnceFuture",{enumerable:!0,get:function(){return dzt.BindOnceFuture}});var fzt=aNe();Object.defineProperty(ke,"diagLogLevelFromString",{enumerable:!0,get:function(){return fzt.diagLogLevelFromString}});var pzt=uNe();ke.internal={_export:pzt._export}});var hNe=w(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.VERSION=void 0;xj.VERSION="0.214.0"});var mNe=w(sO=>{"use strict";Object.defineProperty(sO,"__esModule",{value:!0});sO.SeverityNumber=void 0;var hzt;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(hzt=sO.SeverityNumber||(sO.SeverityNumber={}))});var Nj=w(cA=>{"use strict";Object.defineProperty(cA,"__esModule",{value:!0});cA.NOOP_LOGGER=cA.NoopLogger=void 0;var Oj=class{emit(t){}};cA.NoopLogger=Oj;cA.NOOP_LOGGER=new Oj});var gNe=w(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});Rp.API_BACKWARDS_COMPATIBILITY_VERSION=Rp.makeGetter=Rp._global=Rp.GLOBAL_LOGS_API_KEY=void 0;Rp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Rp._global=globalThis;function mzt(e,t,n){return r=>r===e?t:n}Rp.makeGetter=mzt;Rp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var hJ=w(uA=>{"use strict";Object.defineProperty(uA,"__esModule",{value:!0});uA.NOOP_LOGGER_PROVIDER=uA.NoopLoggerProvider=void 0;var gzt=Nj(),Pj=class{getLogger(t,n,r){return new gzt.NoopLogger}};uA.NoopLoggerProvider=Pj;uA.NOOP_LOGGER_PROVIDER=new Pj});var yNe=w(Cj=>{"use strict";Object.defineProperty(Cj,"__esModule",{value:!0});Cj.ProxyLogger=void 0;var yzt=Nj(),mJ=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):yzt.NOOP_LOGGER}};Cj.ProxyLogger=mJ});var SNe=w(Mj=>{"use strict";Object.defineProperty(Mj,"__esModule",{value:!0});Mj.ProxyLoggerProvider=void 0;var Szt=hJ(),_zt=yNe(),gJ=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new _zt.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:Szt.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};Mj.ProxyLoggerProvider=gJ});var ENe=w(Dj=>{"use strict";Object.defineProperty(Dj,"__esModule",{value:!0});Dj.LogsAPI=void 0;var Ll=gNe(),Ezt=hJ(),_Ne=SNe(),yJ=class e{constructor(){this._proxyLoggerProvider=new _Ne.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Ll._global[Ll.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Ll._global[Ll.GLOBAL_LOGS_API_KEY]=(0,Ll.makeGetter)(Ll.API_BACKWARDS_COMPATIBILITY_VERSION,t,Ezt.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Ll._global[Ll.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Ll._global,Ll.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Ll._global[Ll.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new _Ne.ProxyLoggerProvider}};Dj.LogsAPI=yJ});var SJ=w(wp=>{"use strict";Object.defineProperty(wp,"__esModule",{value:!0});wp.logs=wp.NoopLogger=wp.NOOP_LOGGER=wp.SeverityNumber=void 0;var bzt=mNe();Object.defineProperty(wp,"SeverityNumber",{enumerable:!0,get:function(){return bzt.SeverityNumber}});var bNe=Nj();Object.defineProperty(wp,"NOOP_LOGGER",{enumerable:!0,get:function(){return bNe.NOOP_LOGGER}});Object.defineProperty(wp,"NoopLogger",{enumerable:!0,get:function(){return bNe.NoopLogger}});var Tzt=ENe();wp.logs=Tzt.LogsAPI.getInstance()});var TNe=w(lA=>{"use strict";Object.defineProperty(lA,"__esModule",{value:!0});lA.disableInstrumentations=lA.enableInstrumentations=void 0;function vzt(e,t,n,r){for(let i=0,s=e.length;it.disable())}lA.disableInstrumentations=Azt});var RNe=w(Lj=>{"use strict";Object.defineProperty(Lj,"__esModule",{value:!0});Lj.registerInstrumentations=void 0;var vNe=(Me(),Ie(Ze)),Rzt=SJ(),ANe=TNe();function wzt(e){let t=e.tracerProvider||vNe.trace.getTracerProvider(),n=e.meterProvider||vNe.metrics.getMeterProvider(),r=e.loggerProvider||Rzt.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,ANe.enableInstrumentations)(i,t,n,r),()=>{(0,ANe.disableInstrumentations)(i)}}Lj.registerInstrumentations=wzt});var MNe=w(Uj=>{"use strict";Object.defineProperty(Uj,"__esModule",{value:!0});Uj.satisfies=void 0;var TJ=(Me(),Ie(Ze)),ONe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,kzt=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Izt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function xzt(e,t,n){if(!Ozt(e))return TJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=Mzt(e);if(!r)return!1;let i=[],s=NNe(r,t,i,n);return s&&!n?.includePrerelease?Pzt(r,i):s}Uj.satisfies=xzt;function Ozt(e){return typeof e=="string"&&ONe.test(e)}function NNe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(_J(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=t2t(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!_J(e,s,n,r))return!1;return!0}return _J(e,t,n,r)}function _J(e,t,n,r){if(t=Czt(t,r),t.includes(" "))return NNe(e,t,n,r);{let i=Dzt(t);return n.push(i),Nzt(e,i)}}function Nzt(e,t){if(t.invalid)return!1;if(!t.version||bJ(t.version))return!0;let n=kNe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=kNe(r,i)}return Izt[t.op]?.includes(n)}function Pzt(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Czt(e,t){return e=e.trim(),e=$zt(e,t),e=Qzt(e),e=e2t(e,t),e=e.trim(),e}function Ac(e){return!e||e.toLowerCase()==="x"||e==="*"}function Mzt(e){let t=e.match(ONe);if(!t){TJ.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function Dzt(e){if(!e)return{};let t=e.match(kzt);if(!t)return TJ.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function bJ(e){return e==="*"||e==="x"||e==="X"}function wNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function Lzt(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function Uzt(e,t){if(bJ(e)||bJ(t))return 0;let[n,r]=Lzt(wNe(e),wNe(t));return n>r?1:n)?=?)",INe=`(?:${CNe}|${jzt})`,Hzt=`(?:-(${INe}(?:\\.${INe})*))`,xNe=`${PNe}+`,qzt=`(?:\\+(${xNe}(?:\\.${xNe})*))`,EJ=`${CNe}|x|X|\\*`,oO=`[v=\\s]*(${EJ})(?:\\.(${EJ})(?:\\.(${EJ})(?:${Hzt})?${qzt}?)?)?`,Bzt=`^${Fzt}\\s*${oO}$`,Gzt=new RegExp(Bzt),zzt=`^\\s*(${oO})\\s+-\\s+(${oO})\\s*$`,Vzt=new RegExp(zzt),Wzt="(?:~>?)",Kzt=`^${Wzt}${oO}$`,Zzt=new RegExp(Kzt),Yzt="(?:\\^)",Jzt=`^${Yzt}${oO}$`,Xzt=new RegExp(Jzt);function Qzt(e){let t=Zzt;return e.replace(t,(n,r,i,s,o)=>{let a;return Ac(r)?a="":Ac(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Ac(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function $zt(e,t){let n=Xzt,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Ac(s)?u="":Ac(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Ac(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function e2t(e,t){let n=Gzt;return e.replace(n,(r,i,s,o,a,c)=>{let u=Ac(s),l=u||Ac(o),d=l||Ac(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function t2t(e,t){let n=Vzt;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Ac(s)?i="":Ac(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Ac(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Ac(d)?l="":Ac(f)?l=`<${+d+1}.0.0-0`:Ac(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var vJ=w(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na.massUnwrap=na.unwrap=na.massWrap=na.wrap=void 0;var Rc=console.error.bind(console);function aO(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var n2t=(e,t,n)=>{if(!e||!e[t]){Rc("no original function "+String(t)+" to wrap");return}if(!n){Rc("no wrapper function"),Rc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Rc("original object and wrapper must be functions");return}let i=n(r,t);return aO(i,"__original",r),aO(i,"__unwrap",()=>{e[t]===i&&aO(e,t,r)}),aO(i,"__wrapped",!0),aO(e,t,i),i};na.wrap=n2t;var r2t=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Rc("must provide one or more modules to patch"),Rc(new Error().stack);return}if(!(t&&Array.isArray(t))){Rc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,na.wrap)(r,i,n)})})};na.massWrap=r2t;var i2t=(e,t)=>{if(!e||!e[t]){Rc("no function to unwrap."),Rc(new Error().stack);return}let n=e[t];if(!n.__unwrap)Rc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};na.unwrap=i2t;var s2t=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Rc("must provide one or more modules to patch"),Rc(new Error().stack);return}if(!(t&&Array.isArray(t))){Rc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,na.unwrap)(n,r)})})};na.massUnwrap=s2t;function cO(e){e&&e.logger&&(typeof e.logger!="function"?Rc("new logger isn't a function, not replacing"):Rc=e.logger)}na.default=cO;cO.wrap=na.wrap;cO.massWrap=na.massWrap;cO.unwrap=na.unwrap;cO.massUnwrap=na.massUnwrap});var DNe=w(Fj=>{"use strict";Object.defineProperty(Fj,"__esModule",{value:!0});Fj.InstrumentationAbstract=void 0;var AJ=(Me(),Ie(Ze)),o2t=SJ(),jj=vJ(),RJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=AJ.diag.createComponentLogger({namespace:t}),this._tracer=AJ.trace.getTracer(t,n),this._meter=AJ.metrics.getMeter(t,n),this._logger=o2t.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=jj.wrap;_unwrap=jj.unwrap;_massWrap=jj.massWrap;_massUnwrap=jj.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};Fj.InstrumentationAbstract=RJ});var UNe=w((hgr,LNe)=>{var dA=1e3,fA=dA*60,pA=fA*60,yE=pA*24,a2t=yE*7,c2t=yE*365.25;LNe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return u2t(e);if(n==="number"&&isFinite(e))return t.long?d2t(e):l2t(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function u2t(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*c2t;case"weeks":case"week":case"w":return n*a2t;case"days":case"day":case"d":return n*yE;case"hours":case"hour":case"hrs":case"hr":case"h":return n*pA;case"minutes":case"minute":case"mins":case"min":case"m":return n*fA;case"seconds":case"second":case"secs":case"sec":case"s":return n*dA;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function l2t(e){var t=Math.abs(e);return t>=yE?Math.round(e/yE)+"d":t>=pA?Math.round(e/pA)+"h":t>=fA?Math.round(e/fA)+"m":t>=dA?Math.round(e/dA)+"s":e+"ms"}function d2t(e){var t=Math.abs(e);return t>=yE?Hj(e,t,yE,"day"):t>=pA?Hj(e,t,pA,"hour"):t>=fA?Hj(e,t,fA,"minute"):t>=dA?Hj(e,t,dA,"second"):e+" ms"}function Hj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var wJ=w((mgr,jNe)=>{function f2t(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=UNe(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";_++;let R=n.formatters[A];if(typeof R=="function"){let k=y[_];T=R.call(g,k),y.splice(_,1),_--}return T}),n.formatArgs.call(g,y),(g.log||n.log).apply(g,y)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:y=>{f=y}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d=(typeof l=="string"?l:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of d)f[0]==="-"?n.skips.push(f.slice(1)):n.names.push(f)}function s(l,d){let f=0,p=0,h=-1,m=0;for(;f"-"+d)].join(",");return n.enable(""),l}function a(l){for(let d of n.skips)if(s(l,d))return!1;for(let d of n.names)if(s(l,d))return!0;return!1}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}jNe.exports=f2t});var FNe=w((tu,qj)=>{tu.formatArgs=h2t;tu.save=m2t;tu.load=g2t;tu.useColors=p2t;tu.storage=y2t();tu.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();tu.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function p2t(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function h2t(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+qj.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}tu.log=console.debug||console.log||(()=>{});function m2t(e){try{e?tu.storage.setItem("debug",e):tu.storage.removeItem("debug")}catch{}}function g2t(){let e;try{e=tu.storage.getItem("debug")||tu.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function y2t(){try{return localStorage}catch{}}qj.exports=wJ()(tu);var{formatters:S2t}=qj.exports;S2t.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var qNe=w((ggr,HNe)=>{"use strict";HNe.exports=(e,t=process.argv)=>{let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return r!==-1&&(i===-1||r{"use strict";var _2t=Y("os"),BNe=Y("tty"),Ul=qNe(),{env:Oo}=process,Bj;Ul("no-color")||Ul("no-colors")||Ul("color=false")||Ul("color=never")?Bj=0:(Ul("color")||Ul("colors")||Ul("color=true")||Ul("color=always"))&&(Bj=1);function E2t(){if("FORCE_COLOR"in Oo)return Oo.FORCE_COLOR==="true"?1:Oo.FORCE_COLOR==="false"?0:Oo.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Oo.FORCE_COLOR,10),3)}function b2t(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function T2t(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=E2t();r!==void 0&&(Bj=r);let i=n?Bj:r;if(i===0)return 0;if(n){if(Ul("color=16m")||Ul("color=full")||Ul("color=truecolor"))return 3;if(Ul("color=256"))return 2}if(e&&!t&&i===void 0)return 0;let s=i||0;if(Oo.TERM==="dumb")return s;if(process.platform==="win32"){let o=_2t.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in Oo)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(o=>o in Oo)||Oo.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in Oo)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Oo.TEAMCITY_VERSION)?1:0;if(Oo.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Oo){let o=Number.parseInt((Oo.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Oo.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Oo.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Oo.TERM)||"COLORTERM"in Oo?1:s}function kJ(e,t={}){let n=T2t(e,{streamIsTTY:e&&e.isTTY,...t});return b2t(n)}GNe.exports={supportsColor:kJ,stdout:kJ({isTTY:BNe.isatty(1)}),stderr:kJ({isTTY:BNe.isatty(2)})}});var VNe=w((No,zj)=>{var v2t=Y("tty"),Gj=Y("util");No.init=O2t;No.log=k2t;No.formatArgs=R2t;No.save=I2t;No.load=x2t;No.useColors=A2t;No.destroy=Gj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");No.colors=[6,2,3,4,5,1];try{let e=IJ();e&&(e.stderr||e).level>=2&&(No.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}No.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function A2t(){return"colors"in No.inspectOpts?!!No.inspectOpts.colors:v2t.isatty(process.stderr.fd)}function R2t(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` +var zCt=Object.create;var YU=Object.defineProperty;var VCt=Object.getOwnPropertyDescriptor;var WCt=Object.getOwnPropertyNames;var KCt=Object.getPrototypeOf,YCt=Object.prototype.hasOwnProperty;var Y=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Rr=(e,t)=>{for(var n in t)YU(e,n,{get:t[n],enumerable:!0})},Rve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of WCt(t))!YCt.call(e,i)&&i!==n&&YU(e,i,{get:()=>t[i],enumerable:!(r=VCt(t,i))||r.enumerable});return e};var Se=(e,t,n)=>(n=e!=null?zCt(KCt(e)):{},Rve(t||!e||!e.__esModule?YU(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Rve(YU({},"__esModule",{value:!0}),e);var om,r8=v(()=>{om="1.9.1"});function ZCt(e){let t=new Set([e]),n=new Set,r=e.match(wve);if(!r)return()=>!1;let i={major:+r[1],minor:+r[2],patch:+r[3],prerelease:r[4]};if(i.prerelease!=null)return function(c){return c===e};function s(a){return n.add(a),!1}function o(a){return t.add(a),!0}return function(c){if(t.has(c))return!0;if(n.has(c))return!1;let u=c.match(wve);if(!u)return s(c);let l={major:+u[1],minor:+u[2],patch:+u[3],prerelease:u[4]};return l.prerelease!=null||i.major!==l.major?s(c):i.major===0?i.minor===l.minor&&i.patch<=l.patch?o(c):s(c):i.minor<=l.minor?o(c):s(c)}}var wve,kve,Ive=v(()=>{r8();wve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;kve=ZCt(om)});function Ap(e,t,n,r=!1){var i;let s=tO[eO]=(i=tO[eO])!==null&&i!==void 0?i:{version:om};if(!r&&s[e]){let o=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return n.error(o.stack||o.message),!1}if(s.version!==om){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${om}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${om}.`),!0}function nl(e){var t,n;let r=(t=tO[eO])===null||t===void 0?void 0:t.version;if(!(!r||!kve(r)))return(n=tO[eO])===null||n===void 0?void 0:n[e]}function Rp(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${om}.`);let n=tO[eO];n&&delete n[e]}var JCt,eO,tO,l_=v(()=>{r8();Ive();JCt=om.split(".")[0],eO=Symbol.for(`opentelemetry.js.api.${JCt}`),tO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function nO(e,t,n){let r=nl("diag");if(r)return r[e](t,...n)}var ZU,xve=v(()=>{l_();ZU=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return nO("debug",this._namespace,t)}error(...t){return nO("error",this._namespace,t)}info(...t){return nO("info",this._namespace,t)}warn(...t){return nO("warn",this._namespace,t)}verbose(...t){return nO("verbose",this._namespace,t)}}});var ho,JU=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(ho||(ho={}))});function Ove(e,t){eho.ALL&&(e=ho.ALL),t=t||{};function n(r,i){let s=t[r];return typeof s=="function"&&e>=i?s.bind(t):function(){}}return{error:n("error",ho.ERROR),warn:n("warn",ho.WARN),info:n("info",ho.INFO),debug:n("debug",ho.DEBUG),verbose:n("verbose",ho.VERBOSE)}}var Pve=v(()=>{JU()});var XCt,Po,d_=v(()=>{xve();Pve();JU();l_();XCt="diag",Po=class e{static instance(){return this._instance||(this._instance=new e),this._instance}constructor(){function t(i){return function(...s){let o=nl("diag");if(o)return o[i](...s)}}let n=this,r=(i,s={logLevel:ho.INFO})=>{var o,a,c;if(i===n){let d=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return n.error((o=d.stack)!==null&&o!==void 0?o:d.message),!1}typeof s=="number"&&(s={logLevel:s});let u=nl("diag"),l=Ove((a=s.logLevel)!==null&&a!==void 0?a:ho.INFO,i);if(u&&!s.suppressOverrideMessage){let d=(c=new Error().stack)!==null&&c!==void 0?c:"";u.warn(`Current logger will be overwritten from ${d}`),l.warn(`Current logger will overwrite one already registered from ${d}`)}return Ap("diag",l,n,!0)};n.setLogger=r,n.disable=()=>{Rp(XCt,n)},n.createComponentLogger=i=>new ZU(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var XU,Nve=v(()=>{XU=class e{constructor(t){this._entries=t?new Map(t):new Map}getEntry(t){let n=this._entries.get(t);if(n)return Object.assign({},n)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(t,n){let r=new e(this._entries);return r._entries.set(t,n),r}removeEntry(t){let n=new e(this._entries);return n._entries.delete(t),n}removeEntries(...t){let n=new e(this._entries);for(let r of t)n._entries.delete(r);return n}clear(){return new e}}});var Cve,Mve=v(()=>{Cve=Symbol("BaggageEntryMetadata")});function Dve(e={}){return new XU(new Map(Object.entries(e)))}function Lve(e){return typeof e!="string"&&(QCt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Cve,toString(){return e}}}var QCt,i8=v(()=>{d_();Nve();Mve();QCt=Po.instance()});function rl(e){return Symbol.for(e)}var s8,rA,rO=v(()=>{s8=class e{constructor(t){let n=this;n._currentContext=t?new Map(t):new Map,n.getValue=r=>n._currentContext.get(r),n.setValue=(r,i)=>{let s=new e(n._currentContext);return s._currentContext.set(r,i),s},n.deleteValue=r=>{let i=new e(n._currentContext);return i._currentContext.delete(r),i}}},rA=new s8});var o8,a8,QU,Uve=v(()=>{o8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],a8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(a8[t]=console[t])}QU=class{constructor(){function t(n){return function(...r){let i=a8[n];if(typeof i!="function"&&(i=a8.log),typeof i!="function"&&console&&(i=console[n],typeof i!="function"&&(i=console.log)),typeof i=="function")return i.apply(console,r)}}for(let n=0;n{c8=class{constructor(){}createGauge(t,n){return eMt}createHistogram(t,n){return tMt}createCounter(t,n){return $Ct}createUpDownCounter(t,n){return nMt}createObservableGauge(t,n){return iMt}createObservableCounter(t,n){return rMt}createObservableUpDownCounter(t,n){return sMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},iA=class{},u8=class extends iA{add(t,n){}},l8=class extends iA{add(t,n){}},d8=class extends iA{record(t,n){}},f8=class extends iA{record(t,n){}},iO=class{addCallback(t){}removeCallback(t){}},p8=class extends iO{},h8=class extends iO{},m8=class extends iO{},g8=new c8,$Ct=new u8,eMt=new d8,tMt=new f8,nMt=new l8,rMt=new p8,iMt=new h8,sMt=new m8});var $U,jve=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})($U||($U={}))});var eF,tF,S8=v(()=>{eF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},tF={set(e,t,n){e!=null&&(e[t]=n)}}});var nF,Hve=v(()=>{rO();nF=class{active(){return rA}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var E8,oMt,wp,sO=v(()=>{Hve();l_();d_();E8="context",oMt=new nF,wp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(E8,t,Po.instance())}active(){return this._getContextManager().active()}with(t,n,r,...i){return this._getContextManager().with(t,n,r,...i)}bind(t,n){return this._getContextManager().bind(t,n)}_getContextManager(){return nl(E8)||oMt}disable(){this._getContextManager().disable(),Rp(E8,Po.instance())}}});var Ha,_8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(Ha||(Ha={}))});var oO,f_,rF,iF=v(()=>{_8();oO="0000000000000000",f_="00000000000000000000000000000000",rF={traceId:f_,spanId:oO,traceFlags:Ha.NONE}});var kp,sF=v(()=>{iF();kp=class{constructor(t=rF){this._spanContext=t}spanContext(){return this._spanContext}setAttribute(t,n){return this}setAttributes(t){return this}addEvent(t,n){return this}addLink(t){return this}addLinks(t){return this}setStatus(t){return this}updateName(t){return this}end(t){}isRecording(){return!1}recordException(t,n){}}});function oF(e){return e.getValue(b8)||void 0}function qve(){return oF(wp.getInstance().active())}function aO(e,t){return e.setValue(b8,t)}function Bve(e){return e.deleteValue(b8)}function Gve(e,t){return aO(e,new kp(t))}function aF(e){var t;return(t=oF(e))===null||t===void 0?void 0:t.spanContext()}var b8,T8=v(()=>{rO();sF();sO();b8=rl("OpenTelemetry Context Key SPAN")});function zve(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{iF();sF();cF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1])});function aMt(e){return e!==null&&typeof e=="object"&&"spanId"in e&&typeof e.spanId=="string"&&"traceId"in e&&typeof e.traceId=="string"&&"traceFlags"in e&&typeof e.traceFlags=="number"}var R8,sA,w8=v(()=>{sO();T8();sF();uF();R8=wp.getInstance(),sA=class{startSpan(t,n,r=R8.active()){if(!!n?.root)return new kp;let s=r&&aF(r);return aMt(s)&&am(s)?new kp(s):new kp}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??R8.active(),u=this.startSpan(t,s,c),l=aO(c,u);return R8.with(l,a,void 0,u)}}});var cMt,oA,k8=v(()=>{w8();cMt=new sA,oA=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}startSpan(t,n,r){return this._getTracer().startSpan(t,n,r)}startActiveSpan(t,n,r,i){let s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)}_getTracer(){if(this._delegate)return this._delegate;let t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):cMt}}});var lF,Wve=v(()=>{w8();lF=class{getTracer(t,n,r){return new sA}}});var uMt,p_,I8=v(()=>{k8();Wve();uMt=new lF,p_=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new oA(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:uMt}setDelegate(t){this._delegate=t}getDelegateTracer(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getTracer(t,n,r)}}});var dF,Kve=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(dF||(dF={}))});var $r,Yve=v(()=>{(function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"})($r||($r={}))});var as,Zve=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function Jve(e){return fMt.test(e)}function Xve(e){return pMt.test(e)&&!hMt.test(e)}var x8,lMt,dMt,fMt,pMt,hMt,Qve=v(()=>{x8="[_0-9a-z-*/]",lMt=`[a-z]${x8}{0,255}`,dMt=`[a-z0-9]${x8}{0,240}@[a-z]${x8}{0,13}`,fMt=new RegExp(`^(?:${lMt}|${dMt})$`),pMt=/^[ -~]{0,255}[!-~]$/,hMt=/,|=/});var $ve,mMt,eAe,tAe,fF,nAe=v(()=>{Qve();$ve=32,mMt=512,eAe=",",tAe="=",fF=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,n){let r=this._clone();return r._internalState.has(t)&&r._internalState.delete(t),r._internalState.set(t,n),r}unset(t){let n=this._clone();return n._internalState.delete(t),n}get(t){return this._internalState.get(t)}serialize(){return Array.from(this._internalState.keys()).reduceRight((t,n)=>(t.push(n+tAe+this.get(n)),t),[]).join(eAe)}_parse(t){t.length>mMt||(this._internalState=t.split(eAe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(tAe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);Jve(o)&&Xve(a)&&n.set(o,a)}return n},new Map),this._internalState.size>$ve&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,$ve))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function rAe(e){return new fF(e)}var iAe=v(()=>{nAe()});var Ve,sAe=v(()=>{sO();Ve=wp.getInstance()});var il,oAe=v(()=>{d_();il=Po.instance()});var O8,aAe,cAe=v(()=>{y8();O8=class{getMeter(t,n,r){return g8}},aAe=new O8});var P8,pF,uAe=v(()=>{cAe();l_();d_();P8="metrics",pF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(P8,t,Po.instance())}getMeterProvider(){return nl(P8)||aAe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){Rp(P8,Po.instance())}}});var N8,lAe=v(()=>{uAe();N8=pF.getInstance()});var hF,dAe=v(()=>{hF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function M8(e){return e.getValue(C8)||void 0}function fAe(){return M8(wp.getInstance().active())}function pAe(e,t){return e.setValue(C8,t)}function hAe(e){return e.deleteValue(C8)}var C8,mAe=v(()=>{sO();rO();C8=rl("OpenTelemetry Baggage Key")});var D8,gMt,mF,gAe=v(()=>{l_();dAe();S8();mAe();i8();d_();D8="propagation",gMt=new hF,mF=class e{constructor(){this.createBaggage=Dve,this.getBaggage=M8,this.getActiveBaggage=fAe,this.setBaggage=pAe,this.deleteBaggage=hAe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(D8,t,Po.instance())}inject(t,n,r=tF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=eF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){Rp(D8,Po.instance())}_getGlobalPropagator(){return nl(D8)||gMt}}});var Jd,yAe=v(()=>{gAe();Jd=mF.getInstance()});var L8,gF,SAe=v(()=>{l_();I8();uF();T8();d_();L8="trace",gF=class e{constructor(){this._proxyTracerProvider=new p_,this.wrapSpanContext=Vve,this.isSpanContextValid=am,this.deleteSpan=Bve,this.getSpan=oF,this.getActiveSpan=qve,this.getSpanContext=aF,this.setSpan=aO,this.setSpanContext=Gve}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(L8,this._proxyTracerProvider,Po.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return nl(L8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){Rp(L8,Po.instance()),this._proxyTracerProvider=new p_}}});var jt,EAe=v(()=>{SAe();jt=gF.getInstance()});var Ze={};Rr(Ze,{DiagConsoleLogger:()=>QU,DiagLogLevel:()=>ho,INVALID_SPANID:()=>oO,INVALID_SPAN_CONTEXT:()=>rF,INVALID_TRACEID:()=>f_,ProxyTracer:()=>oA,ProxyTracerProvider:()=>p_,ROOT_CONTEXT:()=>rA,SamplingDecision:()=>dF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>Ha,ValueType:()=>$U,baggageEntryMetadataFromString:()=>Lve,context:()=>Ve,createContextKey:()=>rl,createNoopMeter:()=>Fve,createTraceState:()=>rAe,default:()=>yMt,defaultTextMapGetter:()=>eF,defaultTextMapSetter:()=>tF,diag:()=>il,isSpanContextValid:()=>am,isValidSpanId:()=>A8,isValidTraceId:()=>v8,metrics:()=>N8,propagation:()=>Jd,trace:()=>jt});var yMt,Ce=v(()=>{i8();rO();Uve();JU();y8();jve();S8();k8();I8();Kve();Yve();Zve();_8();iAe();uF();iF();sAe();oAe();lAe();yAe();EAe();yMt={context:Ve,diag:il,metrics:N8,propagation:Jd,trace:jt}});var cO=w(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.isTracingSuppressed=uy.unsuppressTracing=uy.suppressTracing=void 0;var SMt=(Ce(),ke(Ze)),U8=(0,SMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function EMt(e){return e.setValue(U8,!0)}uy.suppressTracing=EMt;function _Mt(e){return e.deleteValue(U8)}uy.unsuppressTracing=_Mt;function bMt(e){return e.getValue(U8)===!0}uy.isTracingSuppressed=bMt});var F8=w(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.BAGGAGE_MAX_TOTAL_LENGTH=qa.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=qa.BAGGAGE_MAX_NAME_VALUE_PAIRS=qa.BAGGAGE_HEADER=qa.BAGGAGE_ITEMS_SEPARATOR=qa.BAGGAGE_PROPERTIES_SEPARATOR=qa.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;qa.BAGGAGE_KEY_PAIR_SEPARATOR="=";qa.BAGGAGE_PROPERTIES_SEPARATOR=";";qa.BAGGAGE_ITEMS_SEPARATOR=",";qa.BAGGAGE_HEADER="baggage";qa.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;qa.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;qa.BAGGAGE_MAX_TOTAL_LENGTH=8192});var j8=w(Ip=>{"use strict";Object.defineProperty(Ip,"__esModule",{value:!0});Ip.parseKeyPairsIntoRecord=Ip.parsePairKeyValue=Ip.getKeyPairs=Ip.serializeKeyPairs=void 0;var TMt=(Ce(),ke(Ze)),aA=F8();function vMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?aA.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>aA.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}Ip.serializeKeyPairs=vMt;function AMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=aA.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}Ip.getKeyPairs=AMt;function _Ae(e){if(!e)return;let t=e.indexOf(aA.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(aA.BAGGAGE_KEY_PAIR_SEPARATOR);if(r<=0)return;let i=n.substring(0,r).trim(),s=n.substring(r+1).trim();if(!i||!s)return;let o,a;try{o=decodeURIComponent(i),a=decodeURIComponent(s)}catch{return}let c;if(t!==-1&&t0&&e.split(aA.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=_Ae(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}Ip.parseKeyPairsIntoRecord=RMt});var bAe=w(yF=>{"use strict";Object.defineProperty(yF,"__esModule",{value:!0});yF.W3CBaggagePropagator=void 0;var H8=(Ce(),ke(Ze)),wMt=cO(),h_=F8(),q8=j8(),B8=class{inject(t,n,r){let i=H8.propagation.getBaggage(t);if(!i||(0,wMt.isTracingSuppressed)(t))return;let s=(0,q8.getKeyPairs)(i).filter(a=>a.length<=h_.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,h_.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,q8.serializeKeyPairs)(s);o.length>0&&r.set(n,h_.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,h_.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(h_.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(h_.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,q8.parsePairKeyValue)(c);if(u){let l={value:u.value};u.metadata&&(l.metadata=u.metadata),o[u.key]=l}}),Object.entries(o).length===0)?t:H8.propagation.setBaggage(t,H8.propagation.createBaggage(o))}fields(){return[h_.BAGGAGE_HEADER]}};yF.W3CBaggagePropagator=B8});var TAe=w(SF=>{"use strict";Object.defineProperty(SF,"__esModule",{value:!0});SF.AnchoredClock=void 0;var G8=class{_monotonicClock;_epochMillis;_performanceMillis;constructor(t,n){this._monotonicClock=n,this._epochMillis=t.now(),this._performanceMillis=n.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};SF.AnchoredClock=G8});var kAe=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.isAttributeValue=ly.isAttributeKey=ly.sanitizeAttributes=void 0;var vAe=(Ce(),ke(Ze));function kMt(e){let t={};if(typeof e!="object"||e==null)return t;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if(!AAe(n)){vAe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!RAe(r)){vAe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}ly.sanitizeAttributes=kMt;function AAe(e){return typeof e=="string"&&e!==""}ly.isAttributeKey=AAe;function RAe(e){return e==null?!0:Array.isArray(e)?IMt(e):wAe(typeof e)}ly.isAttributeValue=RAe;function IMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(wAe(r)){t=r;continue}return!1}return!1}}return!0}function wAe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var z8=w(EF=>{"use strict";Object.defineProperty(EF,"__esModule",{value:!0});EF.loggingErrorHandler=void 0;var xMt=(Ce(),ke(Ze));function OMt(){return e=>{xMt.diag.error(PMt(e))}}EF.loggingErrorHandler=OMt;function PMt(e){return typeof e=="string"?e:JSON.stringify(NMt(e))}function NMt(e){let t={},n=e;for(;n!==null;)Object.getOwnPropertyNames(n).forEach(r=>{if(t[r])return;let i=n[r];i&&(t[r]=String(i))}),n=Object.getPrototypeOf(n);return t}});var xAe=w(cA=>{"use strict";Object.defineProperty(cA,"__esModule",{value:!0});cA.globalErrorHandler=cA.setGlobalErrorHandler=void 0;var CMt=z8(),IAe=(0,CMt.loggingErrorHandler)();function MMt(e){IAe=e}cA.setGlobalErrorHandler=MMt;function DMt(e){try{IAe(e)}catch{}}cA.globalErrorHandler=DMt});var CAe=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.getStringListFromEnv=xp.getBooleanFromEnv=xp.getStringFromEnv=xp.getNumberFromEnv=void 0;var OAe=(Ce(),ke(Ze)),PAe=Y("util");function LMt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){OAe.diag.warn(`Unknown value ${(0,PAe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}xp.getNumberFromEnv=LMt;function NAe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}xp.getStringFromEnv=NAe;function UMt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||OAe.diag.warn(`Unknown value ${(0,PAe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}xp.getBooleanFromEnv=UMt;function FMt(e){return NAe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}xp.getStringListFromEnv=FMt});var MAe=w(_F=>{"use strict";Object.defineProperty(_F,"__esModule",{value:!0});_F._globalThis=void 0;_F._globalThis=globalThis});var DAe=w(bF=>{"use strict";Object.defineProperty(bF,"__esModule",{value:!0});bF.VERSION=void 0;bF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var LAe,UAe,FAe,jAe,HAe,qAe,BAe,GAe,zAe,VAe,WAe,KAe,YAe,ZAe,JAe,XAe,QAe,$Ae,eRe,tRe,nRe,rRe,iRe,sRe,oRe,aRe,cRe,uRe,lRe,dRe,fRe,pRe,hRe,mRe,gRe,yRe,SRe,ERe,_Re,bRe,TRe,vRe,ARe,RRe,wRe,kRe,IRe,xRe,ORe,PRe,NRe,CRe,MRe,DRe,LRe,URe,FRe,jRe,HRe,qRe,BRe,GRe,zRe,VRe,WRe,KRe,YRe,ZRe,JRe,XRe,QRe,$Re,ewe,twe,nwe,rwe,iwe,swe,owe,awe,cwe,uwe,lwe,dwe,fwe,pwe,hwe,mwe,gwe,ywe,Swe,Ewe,_we,bwe,Twe,vwe,Awe,Rwe,wwe,kwe,Iwe,xwe,Owe,Pwe,Nwe,Cwe,Mwe,Dwe,Lwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,Gwe,zwe,Vwe,Wwe,Kwe,Ywe,Zwe,Jwe,Xwe,Qwe,$we,eke,tke,jMt,W8,HMt,qMt,BMt,GMt,K8,zMt,VMt,WMt,KMt,YMt,ZMt,JMt,XMt,QMt,$Mt,eDt,tDt,nDt,rDt,iDt,sDt,oDt,aDt,Y8,cDt,uDt,lDt,dDt,fDt,pDt,hDt,mDt,gDt,yDt,SDt,EDt,Z8,_Dt,bDt,J8,X8,TDt,vDt,ADt,RDt,wDt,kDt,IDt,xDt,ODt,PDt,NDt,CDt,MDt,DDt,LDt,UDt,FDt,uO,uA,Q8,jDt,HDt,m_,qDt,BDt,GDt,zDt,$8,eJ,VDt,tJ,WDt,KDt,YDt,ZDt,JDt,XDt,QDt,$Dt,eLt,tLt,nLt,rLt,iLt,sLt,oLt,aLt,cLt,uLt,lLt,dLt,fLt,pLt,hLt,nJ,mLt,gLt,yLt,SLt,ELt,_Lt,bLt,TLt,vLt,ALt,RLt,wLt,kLt,ILt,xLt,OLt,PLt,NLt,CLt,rJ,MLt,iJ,DLt,LLt,ULt,FLt,jLt,HLt,qLt,BLt,GLt,nke,rke,ike,ske,oke,ake,cke,uke,lke,dke,fke,pke,hke,mke,gke,yke,Ske,Eke,_ke,bke,Tke,vke,Ake,Rke,wke,kke,Ike,xke,Oke,Pke,Nke,Cke,Mke,Dke,Lke,Uke,Fke,jke,Hke,qke,Bke,Gke,zke,Vke,Wke,Kke,Yke,zLt,VLt,WLt,KLt,YLt,ZLt,JLt,XLt,QLt,$Lt,e1t,t1t,n1t,r1t,i1t,s1t,o1t,a1t,c1t,u1t,l1t,d1t,f1t,p1t,h1t,m1t,g1t,y1t,S1t,E1t,_1t,b1t,T1t,v1t,A1t,R1t,w1t,k1t,I1t,x1t,O1t,P1t,N1t,C1t,M1t,D1t,L1t,U1t,Zke,Jke,Xke,Qke,$ke,eIe,tIe,nIe,rIe,iIe,sIe,F1t,j1t,H1t,q1t,B1t,G1t,z1t,V1t,W1t,K1t,Y1t,Z1t,oIe,aIe,cIe,uIe,lIe,J1t,X1t,Q1t,$1t,eUt,tUt,dIe,fIe,pIe,nUt,rUt,iUt,sUt,hIe,mIe,gIe,yIe,oUt,aUt,cUt,uUt,lUt,SIe,EIe,_Ie,bIe,TIe,vIe,AIe,dUt,fUt,pUt,hUt,mUt,gUt,yUt,SUt,RIe,wIe,kIe,IIe,xIe,EUt,_Ut,bUt,TUt,vUt,AUt,OIe,PIe,NIe,CIe,MIe,DIe,LIe,UIe,FIe,jIe,HIe,qIe,BIe,GIe,zIe,VIe,WIe,KIe,YIe,ZIe,JIe,RUt,wUt,kUt,IUt,xUt,OUt,PUt,NUt,CUt,MUt,DUt,LUt,UUt,FUt,jUt,HUt,qUt,BUt,GUt,zUt,VUt,WUt,XIe,QIe,$Ie,e0e,t0e,KUt,YUt,ZUt,JUt,XUt,QUt,n0e,r0e,$Ut,eFt,tFt,i0e,s0e,nFt,rFt,iFt,o0e,a0e,c0e,u0e,l0e,d0e,f0e,p0e,h0e,m0e,g0e,y0e,S0e,E0e,_0e,b0e,T0e,sFt,oFt,aFt,cFt,uFt,lFt,dFt,fFt,pFt,hFt,mFt,gFt,yFt,SFt,EFt,_Ft,bFt,TFt,v0e,A0e,vFt,AFt,RFt,R0e=v(()=>{V8();LAe="aws.lambda.invoked_arn",UAe="db.system",FAe="db.connection_string",jAe="db.user",HAe="db.jdbc.driver_classname",qAe="db.name",BAe="db.statement",GAe="db.operation",zAe="db.mssql.instance_name",VAe="db.cassandra.keyspace",WAe="db.cassandra.page_size",KAe="db.cassandra.consistency_level",YAe="db.cassandra.table",ZAe="db.cassandra.idempotence",JAe="db.cassandra.speculative_execution_count",XAe="db.cassandra.coordinator.id",QAe="db.cassandra.coordinator.dc",$Ae="db.hbase.namespace",eRe="db.redis.database_index",tRe="db.mongodb.collection",nRe="db.sql.table",rRe="exception.type",iRe="exception.message",sRe="exception.stacktrace",oRe="exception.escaped",aRe="faas.trigger",cRe="faas.execution",uRe="faas.document.collection",lRe="faas.document.operation",dRe="faas.document.time",fRe="faas.document.name",pRe="faas.time",hRe="faas.cron",mRe="faas.coldstart",gRe="faas.invoked_name",yRe="faas.invoked_provider",SRe="faas.invoked_region",ERe="net.transport",_Re="net.peer.ip",bRe="net.peer.port",TRe="net.peer.name",vRe="net.host.ip",ARe="net.host.port",RRe="net.host.name",wRe="net.host.connection.type",kRe="net.host.connection.subtype",IRe="net.host.carrier.name",xRe="net.host.carrier.mcc",ORe="net.host.carrier.mnc",PRe="net.host.carrier.icc",NRe="peer.service",CRe="enduser.id",MRe="enduser.role",DRe="enduser.scope",LRe="thread.id",URe="thread.name",FRe="code.function",jRe="code.namespace",HRe="code.filepath",qRe="code.lineno",BRe="http.method",GRe="http.url",zRe="http.target",VRe="http.host",WRe="http.scheme",KRe="http.status_code",YRe="http.flavor",ZRe="http.user_agent",JRe="http.request_content_length",XRe="http.request_content_length_uncompressed",QRe="http.response_content_length",$Re="http.response_content_length_uncompressed",ewe="http.server_name",twe="http.route",nwe="http.client_ip",rwe="aws.dynamodb.table_names",iwe="aws.dynamodb.consumed_capacity",swe="aws.dynamodb.item_collection_metrics",owe="aws.dynamodb.provisioned_read_capacity",awe="aws.dynamodb.provisioned_write_capacity",cwe="aws.dynamodb.consistent_read",uwe="aws.dynamodb.projection",lwe="aws.dynamodb.limit",dwe="aws.dynamodb.attributes_to_get",fwe="aws.dynamodb.index_name",pwe="aws.dynamodb.select",hwe="aws.dynamodb.global_secondary_indexes",mwe="aws.dynamodb.local_secondary_indexes",gwe="aws.dynamodb.exclusive_start_table",ywe="aws.dynamodb.table_count",Swe="aws.dynamodb.scan_forward",Ewe="aws.dynamodb.segment",_we="aws.dynamodb.total_segments",bwe="aws.dynamodb.count",Twe="aws.dynamodb.scanned_count",vwe="aws.dynamodb.attribute_definitions",Awe="aws.dynamodb.global_secondary_index_updates",Rwe="messaging.system",wwe="messaging.destination",kwe="messaging.destination_kind",Iwe="messaging.temp_destination",xwe="messaging.protocol",Owe="messaging.protocol_version",Pwe="messaging.url",Nwe="messaging.message_id",Cwe="messaging.conversation_id",Mwe="messaging.message_payload_size_bytes",Dwe="messaging.message_payload_compressed_size_bytes",Lwe="messaging.operation",Uwe="messaging.consumer_id",Fwe="messaging.rabbitmq.routing_key",jwe="messaging.kafka.message_key",Hwe="messaging.kafka.consumer_group",qwe="messaging.kafka.client_id",Bwe="messaging.kafka.partition",Gwe="messaging.kafka.tombstone",zwe="rpc.system",Vwe="rpc.service",Wwe="rpc.method",Kwe="rpc.grpc.status_code",Ywe="rpc.jsonrpc.version",Zwe="rpc.jsonrpc.request_id",Jwe="rpc.jsonrpc.error_code",Xwe="rpc.jsonrpc.error_message",Qwe="message.type",$we="message.id",eke="message.compressed_size",tke="message.uncompressed_size",jMt=LAe,W8=UAe,HMt=FAe,qMt=jAe,BMt=HAe,GMt=qAe,K8=BAe,zMt=GAe,VMt=zAe,WMt=VAe,KMt=WAe,YMt=KAe,ZMt=YAe,JMt=ZAe,XMt=JAe,QMt=XAe,$Mt=QAe,eDt=$Ae,tDt=eRe,nDt=tRe,rDt=nRe,iDt=rRe,sDt=iRe,oDt=sRe,aDt=oRe,Y8=aRe,cDt=cRe,uDt=uRe,lDt=lRe,dDt=dRe,fDt=fRe,pDt=pRe,hDt=hRe,mDt=mRe,gDt=gRe,yDt=yRe,SDt=SRe,EDt=ERe,Z8=_Re,_Dt=bRe,bDt=TRe,J8=vRe,X8=ARe,TDt=RRe,vDt=wRe,ADt=kRe,RDt=IRe,wDt=xRe,kDt=ORe,IDt=PRe,xDt=NRe,ODt=CRe,PDt=MRe,NDt=DRe,CDt=LRe,MDt=URe,DDt=FRe,LDt=jRe,UDt=HRe,FDt=qRe,uO=BRe,uA=GRe,Q8=zRe,jDt=VRe,HDt=WRe,m_=KRe,qDt=YRe,BDt=ZRe,GDt=JRe,zDt=XRe,$8=QRe,eJ=$Re,VDt=ewe,tJ=twe,WDt=nwe,KDt=rwe,YDt=iwe,ZDt=swe,JDt=owe,XDt=awe,QDt=cwe,$Dt=uwe,eLt=lwe,tLt=dwe,nLt=fwe,rLt=pwe,iLt=hwe,sLt=mwe,oLt=gwe,aLt=ywe,cLt=Swe,uLt=Ewe,lLt=_we,dLt=bwe,fLt=Twe,pLt=vwe,hLt=Awe,nJ=Rwe,mLt=wwe,gLt=kwe,yLt=Iwe,SLt=xwe,ELt=Owe,_Lt=Pwe,bLt=Nwe,TLt=Cwe,vLt=Mwe,ALt=Dwe,RLt=Lwe,wLt=Uwe,kLt=Fwe,ILt=jwe,xLt=Hwe,OLt=qwe,PLt=Bwe,NLt=Gwe,CLt=zwe,rJ=Vwe,MLt=Wwe,iJ=Kwe,DLt=Ywe,LLt=Zwe,ULt=Jwe,FLt=Xwe,jLt=Qwe,HLt=$we,qLt=eke,BLt=tke,GLt=ws([LAe,UAe,FAe,jAe,HAe,qAe,BAe,GAe,zAe,VAe,WAe,KAe,YAe,ZAe,JAe,XAe,QAe,$Ae,eRe,tRe,nRe,rRe,iRe,sRe,oRe,aRe,cRe,uRe,lRe,dRe,fRe,pRe,hRe,mRe,gRe,yRe,SRe,ERe,_Re,bRe,TRe,vRe,ARe,RRe,wRe,kRe,IRe,xRe,ORe,PRe,NRe,CRe,MRe,DRe,LRe,URe,FRe,jRe,HRe,qRe,BRe,GRe,zRe,VRe,WRe,KRe,YRe,ZRe,JRe,XRe,QRe,$Re,ewe,twe,nwe,rwe,iwe,swe,owe,awe,cwe,uwe,lwe,dwe,fwe,pwe,hwe,mwe,gwe,ywe,Swe,Ewe,_we,bwe,Twe,vwe,Awe,Rwe,wwe,kwe,Iwe,xwe,Owe,Pwe,Nwe,Cwe,Mwe,Dwe,Lwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,Gwe,zwe,Vwe,Wwe,Kwe,Ywe,Zwe,Jwe,Xwe,Qwe,$we,eke,tke]),nke="other_sql",rke="mssql",ike="mysql",ske="oracle",oke="db2",ake="postgresql",cke="redshift",uke="hive",lke="cloudscape",dke="hsqldb",fke="progress",pke="maxdb",hke="hanadb",mke="ingres",gke="firstsql",yke="edb",Ske="cache",Eke="adabas",_ke="firebird",bke="derby",Tke="filemaker",vke="informix",Ake="instantdb",Rke="interbase",wke="mariadb",kke="netezza",Ike="pervasive",xke="pointbase",Oke="sqlite",Pke="sybase",Nke="teradata",Cke="vertica",Mke="h2",Dke="coldfusion",Lke="cassandra",Uke="hbase",Fke="mongodb",jke="redis",Hke="couchbase",qke="couchdb",Bke="cosmosdb",Gke="dynamodb",zke="neo4j",Vke="geode",Wke="elasticsearch",Kke="memcached",Yke="cockroachdb",zLt=nke,VLt=rke,WLt=ike,KLt=ske,YLt=oke,ZLt=ake,JLt=cke,XLt=uke,QLt=lke,$Lt=dke,e1t=fke,t1t=pke,n1t=hke,r1t=mke,i1t=gke,s1t=yke,o1t=Ske,a1t=Eke,c1t=_ke,u1t=bke,l1t=Tke,d1t=vke,f1t=Ake,p1t=Rke,h1t=wke,m1t=kke,g1t=Ike,y1t=xke,S1t=Oke,E1t=Pke,_1t=Nke,b1t=Cke,T1t=Mke,v1t=Dke,A1t=Lke,R1t=Uke,w1t=Fke,k1t=jke,I1t=Hke,x1t=qke,O1t=Bke,P1t=Gke,N1t=zke,C1t=Vke,M1t=Wke,D1t=Kke,L1t=Yke,U1t=ws([nke,rke,ike,ske,oke,ake,cke,uke,lke,dke,fke,pke,hke,mke,gke,yke,Ske,Eke,_ke,bke,Tke,vke,Ake,Rke,wke,kke,Ike,xke,Oke,Pke,Nke,Cke,Mke,Dke,Lke,Uke,Fke,jke,Hke,qke,Bke,Gke,zke,Vke,Wke,Kke,Yke]),Zke="all",Jke="each_quorum",Xke="quorum",Qke="local_quorum",$ke="one",eIe="two",tIe="three",nIe="local_one",rIe="any",iIe="serial",sIe="local_serial",F1t=Zke,j1t=Jke,H1t=Xke,q1t=Qke,B1t=$ke,G1t=eIe,z1t=tIe,V1t=nIe,W1t=rIe,K1t=iIe,Y1t=sIe,Z1t=ws([Zke,Jke,Xke,Qke,$ke,eIe,tIe,nIe,rIe,iIe,sIe]),oIe="datasource",aIe="http",cIe="pubsub",uIe="timer",lIe="other",J1t=oIe,X1t=aIe,Q1t=cIe,$1t=uIe,eUt=lIe,tUt=ws([oIe,aIe,cIe,uIe,lIe]),dIe="insert",fIe="edit",pIe="delete",nUt=dIe,rUt=fIe,iUt=pIe,sUt=ws([dIe,fIe,pIe]),hIe="alibaba_cloud",mIe="aws",gIe="azure",yIe="gcp",oUt=hIe,aUt=mIe,cUt=gIe,uUt=yIe,lUt=ws([hIe,mIe,gIe,yIe]),SIe="ip_tcp",EIe="ip_udp",_Ie="ip",bIe="unix",TIe="pipe",vIe="inproc",AIe="other",dUt=SIe,fUt=EIe,pUt=_Ie,hUt=bIe,mUt=TIe,gUt=vIe,yUt=AIe,SUt=ws([SIe,EIe,_Ie,bIe,TIe,vIe,AIe]),RIe="wifi",wIe="wired",kIe="cell",IIe="unavailable",xIe="unknown",EUt=RIe,_Ut=wIe,bUt=kIe,TUt=IIe,vUt=xIe,AUt=ws([RIe,wIe,kIe,IIe,xIe]),OIe="gprs",PIe="edge",NIe="umts",CIe="cdma",MIe="evdo_0",DIe="evdo_a",LIe="cdma2000_1xrtt",UIe="hsdpa",FIe="hsupa",jIe="hspa",HIe="iden",qIe="evdo_b",BIe="lte",GIe="ehrpd",zIe="hspap",VIe="gsm",WIe="td_scdma",KIe="iwlan",YIe="nr",ZIe="nrnsa",JIe="lte_ca",RUt=OIe,wUt=PIe,kUt=NIe,IUt=CIe,xUt=MIe,OUt=DIe,PUt=LIe,NUt=UIe,CUt=FIe,MUt=jIe,DUt=HIe,LUt=qIe,UUt=BIe,FUt=GIe,jUt=zIe,HUt=VIe,qUt=WIe,BUt=KIe,GUt=YIe,zUt=ZIe,VUt=JIe,WUt=ws([OIe,PIe,NIe,CIe,MIe,DIe,LIe,UIe,FIe,jIe,HIe,qIe,BIe,GIe,zIe,VIe,WIe,KIe,YIe,ZIe,JIe]),XIe="1.0",QIe="1.1",$Ie="2.0",e0e="SPDY",t0e="QUIC",KUt=XIe,YUt=QIe,ZUt=$Ie,JUt=e0e,XUt=t0e,QUt={HTTP_1_0:XIe,HTTP_1_1:QIe,HTTP_2_0:$Ie,SPDY:e0e,QUIC:t0e},n0e="queue",r0e="topic",$Ut=n0e,eFt=r0e,tFt=ws([n0e,r0e]),i0e="receive",s0e="process",nFt=i0e,rFt=s0e,iFt=ws([i0e,s0e]),o0e=0,a0e=1,c0e=2,u0e=3,l0e=4,d0e=5,f0e=6,p0e=7,h0e=8,m0e=9,g0e=10,y0e=11,S0e=12,E0e=13,_0e=14,b0e=15,T0e=16,sFt=o0e,oFt=a0e,aFt=c0e,cFt=u0e,uFt=l0e,lFt=d0e,dFt=f0e,fFt=p0e,pFt=h0e,hFt=m0e,mFt=g0e,gFt=y0e,yFt=S0e,SFt=E0e,EFt=_0e,_Ft=b0e,bFt=T0e,TFt={OK:o0e,CANCELLED:a0e,UNKNOWN:c0e,INVALID_ARGUMENT:u0e,DEADLINE_EXCEEDED:l0e,NOT_FOUND:d0e,ALREADY_EXISTS:f0e,PERMISSION_DENIED:p0e,RESOURCE_EXHAUSTED:h0e,FAILED_PRECONDITION:m0e,ABORTED:g0e,OUT_OF_RANGE:y0e,UNIMPLEMENTED:S0e,INTERNAL:E0e,UNAVAILABLE:_0e,DATA_LOSS:b0e,UNAUTHENTICATED:T0e},v0e="SENT",A0e="RECEIVED",vFt=v0e,AFt=A0e,RFt=ws([v0e,A0e])});var w0e=v(()=>{R0e()});var k0e,I0e,x0e,O0e,P0e,N0e,C0e,M0e,D0e,L0e,U0e,F0e,j0e,H0e,q0e,B0e,G0e,z0e,V0e,W0e,K0e,Y0e,Z0e,J0e,X0e,Q0e,$0e,exe,txe,nxe,rxe,ixe,sxe,oxe,axe,cxe,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,Exe,_xe,bxe,Txe,vxe,Axe,Rxe,wxe,kxe,Ixe,xxe,Oxe,Pxe,Nxe,Cxe,Mxe,Dxe,Lxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,Gxe,zxe,Vxe,Wxe,Kxe,Yxe,Zxe,Jxe,Xxe,Qxe,$xe,wFt,kFt,IFt,xFt,OFt,PFt,NFt,CFt,MFt,DFt,LFt,UFt,FFt,jFt,HFt,qFt,BFt,GFt,zFt,VFt,WFt,KFt,YFt,ZFt,JFt,XFt,QFt,$Ft,ejt,tjt,njt,rjt,ijt,sjt,ojt,ajt,cjt,ujt,ljt,djt,fjt,pjt,hjt,mjt,gjt,yjt,Sjt,Ejt,_jt,bjt,Tjt,vjt,Ajt,Rjt,wjt,kjt,Ijt,xjt,Ojt,Pjt,Njt,Cjt,Mjt,Djt,Ljt,Ujt,Fjt,jjt,Hjt,qjt,Bjt,sJ,Gjt,zjt,Vjt,Wjt,Kjt,Yjt,Zjt,Jjt,Xjt,Qjt,eOe,tOe,nOe,rOe,$jt,eHt,tHt,nHt,rHt,iOe,sOe,oOe,aOe,cOe,uOe,lOe,dOe,fOe,pOe,hOe,mOe,gOe,yOe,SOe,EOe,_Oe,iHt,sHt,oHt,aHt,cHt,uHt,lHt,dHt,fHt,pHt,hHt,mHt,gHt,yHt,SHt,EHt,_Ht,bHt,bOe,TOe,THt,vHt,AHt,vOe,AOe,ROe,wOe,kOe,IOe,xOe,RHt,wHt,kHt,IHt,xHt,OHt,PHt,NHt,OOe,POe,NOe,COe,MOe,DOe,LOe,UOe,FOe,jOe,HOe,CHt,MHt,DHt,LHt,UHt,FHt,jHt,HHt,qHt,BHt,GHt,zHt,qOe,BOe,GOe,zOe,VOe,WOe,KOe,YOe,ZOe,JOe,VHt,WHt,KHt,YHt,ZHt,JHt,XHt,QHt,$Ht,eqt,tqt,XOe=v(()=>{V8();k0e="cloud.provider",I0e="cloud.account.id",x0e="cloud.region",O0e="cloud.availability_zone",P0e="cloud.platform",N0e="aws.ecs.container.arn",C0e="aws.ecs.cluster.arn",M0e="aws.ecs.launchtype",D0e="aws.ecs.task.arn",L0e="aws.ecs.task.family",U0e="aws.ecs.task.revision",F0e="aws.eks.cluster.arn",j0e="aws.log.group.names",H0e="aws.log.group.arns",q0e="aws.log.stream.names",B0e="aws.log.stream.arns",G0e="container.name",z0e="container.id",V0e="container.runtime",W0e="container.image.name",K0e="container.image.tag",Y0e="deployment.environment",Z0e="device.id",J0e="device.model.identifier",X0e="device.model.name",Q0e="faas.name",$0e="faas.id",exe="faas.version",txe="faas.instance",nxe="faas.max_memory",rxe="host.id",ixe="host.name",sxe="host.type",oxe="host.arch",axe="host.image.name",cxe="host.image.id",uxe="host.image.version",lxe="k8s.cluster.name",dxe="k8s.node.name",fxe="k8s.node.uid",pxe="k8s.namespace.name",hxe="k8s.pod.uid",mxe="k8s.pod.name",gxe="k8s.container.name",yxe="k8s.replicaset.uid",Sxe="k8s.replicaset.name",Exe="k8s.deployment.uid",_xe="k8s.deployment.name",bxe="k8s.statefulset.uid",Txe="k8s.statefulset.name",vxe="k8s.daemonset.uid",Axe="k8s.daemonset.name",Rxe="k8s.job.uid",wxe="k8s.job.name",kxe="k8s.cronjob.uid",Ixe="k8s.cronjob.name",xxe="os.type",Oxe="os.description",Pxe="os.name",Nxe="os.version",Cxe="process.pid",Mxe="process.executable.name",Dxe="process.executable.path",Lxe="process.command",Uxe="process.command_line",Fxe="process.command_args",jxe="process.owner",Hxe="process.runtime.name",qxe="process.runtime.version",Bxe="process.runtime.description",Gxe="service.name",zxe="service.namespace",Vxe="service.instance.id",Wxe="service.version",Kxe="telemetry.sdk.name",Yxe="telemetry.sdk.language",Zxe="telemetry.sdk.version",Jxe="telemetry.auto.version",Xxe="webengine.name",Qxe="webengine.version",$xe="webengine.description",wFt=k0e,kFt=I0e,IFt=x0e,xFt=O0e,OFt=P0e,PFt=N0e,NFt=C0e,CFt=M0e,MFt=D0e,DFt=L0e,LFt=U0e,UFt=F0e,FFt=j0e,jFt=H0e,HFt=q0e,qFt=B0e,BFt=G0e,GFt=z0e,zFt=V0e,VFt=W0e,WFt=K0e,KFt=Y0e,YFt=Z0e,ZFt=J0e,JFt=X0e,XFt=Q0e,QFt=$0e,$Ft=exe,ejt=txe,tjt=nxe,njt=rxe,rjt=ixe,ijt=sxe,sjt=oxe,ojt=axe,ajt=cxe,cjt=uxe,ujt=lxe,ljt=dxe,djt=fxe,fjt=pxe,pjt=hxe,hjt=mxe,mjt=gxe,gjt=yxe,yjt=Sxe,Sjt=Exe,Ejt=_xe,_jt=bxe,bjt=Txe,Tjt=vxe,vjt=Axe,Ajt=Rxe,Rjt=wxe,wjt=kxe,kjt=Ixe,Ijt=xxe,xjt=Oxe,Ojt=Pxe,Pjt=Nxe,Njt=Cxe,Cjt=Mxe,Mjt=Dxe,Djt=Lxe,Ljt=Uxe,Ujt=Fxe,Fjt=jxe,jjt=Hxe,Hjt=qxe,qjt=Bxe,Bjt=Gxe,sJ=zxe,Gjt=Vxe,zjt=Wxe,Vjt=Kxe,Wjt=Yxe,Kjt=Zxe,Yjt=Jxe,Zjt=Xxe,Jjt=Qxe,Xjt=$xe,Qjt=ws([k0e,I0e,x0e,O0e,P0e,N0e,C0e,M0e,D0e,L0e,U0e,F0e,j0e,H0e,q0e,B0e,G0e,z0e,V0e,W0e,K0e,Y0e,Z0e,J0e,X0e,Q0e,$0e,exe,txe,nxe,rxe,ixe,sxe,oxe,axe,cxe,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,Exe,_xe,bxe,Txe,vxe,Axe,Rxe,wxe,kxe,Ixe,xxe,Oxe,Pxe,Nxe,Cxe,Mxe,Dxe,Lxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,Gxe,zxe,Vxe,Wxe,Kxe,Yxe,Zxe,Jxe,Xxe,Qxe,$xe]),eOe="alibaba_cloud",tOe="aws",nOe="azure",rOe="gcp",$jt=eOe,eHt=tOe,tHt=nOe,nHt=rOe,rHt=ws([eOe,tOe,nOe,rOe]),iOe="alibaba_cloud_ecs",sOe="alibaba_cloud_fc",oOe="aws_ec2",aOe="aws_ecs",cOe="aws_eks",uOe="aws_lambda",lOe="aws_elastic_beanstalk",dOe="azure_vm",fOe="azure_container_instances",pOe="azure_aks",hOe="azure_functions",mOe="azure_app_service",gOe="gcp_compute_engine",yOe="gcp_cloud_run",SOe="gcp_kubernetes_engine",EOe="gcp_cloud_functions",_Oe="gcp_app_engine",iHt=iOe,sHt=sOe,oHt=oOe,aHt=aOe,cHt=cOe,uHt=uOe,lHt=lOe,dHt=dOe,fHt=fOe,pHt=pOe,hHt=hOe,mHt=mOe,gHt=gOe,yHt=yOe,SHt=SOe,EHt=EOe,_Ht=_Oe,bHt=ws([iOe,sOe,oOe,aOe,cOe,uOe,lOe,dOe,fOe,pOe,hOe,mOe,gOe,yOe,SOe,EOe,_Oe]),bOe="ec2",TOe="fargate",THt=bOe,vHt=TOe,AHt=ws([bOe,TOe]),vOe="amd64",AOe="arm32",ROe="arm64",wOe="ia64",kOe="ppc32",IOe="ppc64",xOe="x86",RHt=vOe,wHt=AOe,kHt=ROe,IHt=wOe,xHt=kOe,OHt=IOe,PHt=xOe,NHt=ws([vOe,AOe,ROe,wOe,kOe,IOe,xOe]),OOe="windows",POe="linux",NOe="darwin",COe="freebsd",MOe="netbsd",DOe="openbsd",LOe="dragonflybsd",UOe="hpux",FOe="aix",jOe="solaris",HOe="z_os",CHt=OOe,MHt=POe,DHt=NOe,LHt=COe,UHt=MOe,FHt=DOe,jHt=LOe,HHt=UOe,qHt=FOe,BHt=jOe,GHt=HOe,zHt=ws([OOe,POe,NOe,COe,MOe,DOe,LOe,UOe,FOe,jOe,HOe]),qOe="cpp",BOe="dotnet",GOe="erlang",zOe="go",VOe="java",WOe="nodejs",KOe="php",YOe="python",ZOe="ruby",JOe="webjs",VHt=qOe,WHt=BOe,KHt=GOe,YHt=zOe,ZHt=VOe,JHt=WOe,XHt=KOe,QHt=YOe,$Ht=ZOe,eqt=JOe,tqt=ws([qOe,BOe,GOe,zOe,VOe,WOe,KOe,YOe,ZOe,JOe])});var QOe=v(()=>{XOe()});var nqt,rqt,iqt,sqt,oqt,aqt,cqt,uqt,lqt,dqt,fqt,pqt,hqt,mqt,gqt,yqt,Sqt,Eqt,_qt,bqt,Tqt,vqt,Aqt,Rqt,wqt,oJ,aJ,kqt,lA,Iqt,cJ,uJ,xqt,g_,Oqt,Pqt,Nqt,Cqt,Mqt,Dqt,Lqt,Uqt,ayr,cyr,lJ,Fqt,jqt,Hqt,qqt,Bqt,Gqt,y_,zqt,Vqt,Wqt,uyr,Kqt,Yqt,Zqt,Jqt,lyr,Xqt,Qqt,$qt,eBt,cm,um,tBt,nBt,rBt,iBt,sBt,oBt,aBt,cBt,uBt,dyr,lBt,dBt,fBt,pBt,hBt,mBt,dJ,fJ,gBt,pJ,hJ,yBt,SBt,fyr,pyr,EBt,_Bt,bBt,TBt,vBt,ABt,RBt,wBt,hyr,kBt,mJ,gJ,IBt,yJ,xBt,SJ,OBt,PBt,NBt,CBt,MBt,DBt,LBt,UBt,FBt,myr,jBt,HBt,gyr,qBt,BBt,yyr,GBt,zBt,VBt,WBt,KBt,YBt,ZBt,JBt,dy,XBt,QBt,$Bt,EJ,$Oe=v(()=>{nqt="aspnetcore.diagnostics.exception.result",rqt="aborted",iqt="handled",sqt="skipped",oqt="unhandled",aqt="aspnetcore.diagnostics.handler.type",cqt="aspnetcore.rate_limiting.policy",uqt="aspnetcore.rate_limiting.result",lqt="acquired",dqt="endpoint_limiter",fqt="global_limiter",pqt="request_canceled",hqt="aspnetcore.request.is_unhandled",mqt="aspnetcore.routing.is_fallback",gqt="aspnetcore.routing.match_status",yqt="failure",Sqt="success",Eqt="aspnetcore.user.is_authenticated",_qt="client.address",bqt="client.port",Tqt="code.column.number",vqt="code.file.path",Aqt="code.function.name",Rqt="code.line.number",wqt="code.stacktrace",oJ="db.collection.name",aJ="db.namespace",kqt="db.operation.batch.size",lA="db.operation.name",Iqt="db.query.summary",cJ="db.query.text",uJ="db.response.status_code",xqt="db.stored_procedure.name",g_="db.system.name",Oqt="mariadb",Pqt="microsoft.sql_server",Nqt="mysql",Cqt="postgresql",Mqt="dotnet.gc.heap.generation",Dqt="gen0",Lqt="gen1",Uqt="gen2",ayr="loh",cyr="poh",lJ="error.type",Fqt="_OTHER",jqt="exception.escaped",Hqt="exception.message",qqt="exception.stacktrace",Bqt="exception.type",Gqt=e=>`http.request.header.${e}`,y_="http.request.method",zqt="_OTHER",Vqt="CONNECT",Wqt="DELETE",uyr="GET",Kqt="HEAD",Yqt="OPTIONS",Zqt="PATCH",Jqt="POST",lyr="PUT",Xqt="TRACE",Qqt="http.request.method_original",$qt="http.request.resend_count",eBt=e=>`http.response.header.${e}`,cm="http.response.status_code",um="http.route",tBt="jvm.gc.action",nBt="jvm.gc.name",rBt="jvm.memory.pool.name",iBt="jvm.memory.type",sBt="heap",oBt="non_heap",aBt="jvm.thread.daemon",cBt="jvm.thread.state",uBt="blocked",dyr="new",lBt="runnable",dBt="terminated",fBt="timed_waiting",pBt="waiting",hBt="network.local.address",mBt="network.local.port",dJ="network.peer.address",fJ="network.peer.port",gBt="network.protocol.name",pJ="network.protocol.version",hJ="network.transport",yBt="pipe",SBt="quic",fyr="tcp",pyr="udp",EBt="unix",_Bt="network.type",bBt="ipv4",TBt="ipv6",vBt="otel.scope.name",ABt="otel.scope.version",RBt="otel.status_code",wBt="ERROR",hyr="OK",kBt="otel.status_description",mJ="server.address",gJ="server.port",IBt="service.instance.id",yJ="service.name",xBt="service.namespace",SJ="service.version",OBt="signalr.connection.status",PBt="app_shutdown",NBt="normal_closure",CBt="timeout",MBt="signalr.transport",DBt="long_polling",LBt="server_sent_events",UBt="web_sockets",FBt="telemetry.sdk.language",myr="cpp",jBt="dotnet",HBt="erlang",gyr="go",qBt="java",BBt="nodejs",yyr="php",GBt="python",zBt="ruby",VBt="rust",WBt="swift",KBt="webjs",YBt="telemetry.sdk.name",ZBt="telemetry.sdk.version",JBt="url.fragment",dy="url.full",XBt="url.path",QBt="url.query",$Bt="url.scheme",EJ="user_agent.original"});var eGt,tGt,nGt,rGt,iGt,sGt,oGt,aGt,cGt,uGt,lGt,dGt,fGt,pGt,hGt,mGt,gGt,yGt,SGt,EGt,_Gt,bGt,TGt,vGt,AGt,RGt,wGt,kGt,IGt,xGt,OGt,PGt,NGt,CGt,MGt,DGt,LGt,UGt,FGt,jGt,HGt,qGt,BGt,GGt,zGt,VGt,WGt,KGt,YGt,ZGt,JGt,ePe=v(()=>{eGt="aspnetcore.diagnostics.exceptions",tGt="aspnetcore.rate_limiting.active_request_leases",nGt="aspnetcore.rate_limiting.queued_requests",rGt="aspnetcore.rate_limiting.request.time_in_queue",iGt="aspnetcore.rate_limiting.request_lease.duration",sGt="aspnetcore.rate_limiting.requests",oGt="aspnetcore.routing.match_attempts",aGt="db.client.operation.duration",cGt="dotnet.assembly.count",uGt="dotnet.exceptions",lGt="dotnet.gc.collections",dGt="dotnet.gc.heap.total_allocated",fGt="dotnet.gc.last_collection.heap.fragmentation.size",pGt="dotnet.gc.last_collection.heap.size",hGt="dotnet.gc.last_collection.memory.committed_size",mGt="dotnet.gc.pause.time",gGt="dotnet.jit.compilation.time",yGt="dotnet.jit.compiled_il.size",SGt="dotnet.jit.compiled_methods",EGt="dotnet.monitor.lock_contentions",_Gt="dotnet.process.cpu.count",bGt="dotnet.process.cpu.time",TGt="dotnet.process.memory.working_set",vGt="dotnet.thread_pool.queue.length",AGt="dotnet.thread_pool.thread.count",RGt="dotnet.thread_pool.work_item.count",wGt="dotnet.timer.count",kGt="http.client.request.duration",IGt="http.server.request.duration",xGt="jvm.class.count",OGt="jvm.class.loaded",PGt="jvm.class.unloaded",NGt="jvm.cpu.count",CGt="jvm.cpu.recent_utilization",MGt="jvm.cpu.time",DGt="jvm.gc.duration",LGt="jvm.memory.committed",UGt="jvm.memory.limit",FGt="jvm.memory.used",jGt="jvm.memory.used_after_last_gc",HGt="jvm.thread.count",qGt="kestrel.active_connections",BGt="kestrel.active_tls_handshakes",GGt="kestrel.connection.duration",zGt="kestrel.queued_connections",VGt="kestrel.queued_requests",WGt="kestrel.rejected_connections",KGt="kestrel.tls_handshake.duration",YGt="kestrel.upgraded_connections",ZGt="signalr.server.active_connections",JGt="signalr.server.connection.duration"});var XGt,tPe=v(()=>{XGt="exception"});var Mr={};Rr(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>rqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>iqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>sqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>oqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>lqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>dqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>fqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>pqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>yqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Sqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>nqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>aqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>cqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>uqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>hqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>mqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>gqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>Eqt,ATTR_CLIENT_ADDRESS:()=>_qt,ATTR_CLIENT_PORT:()=>bqt,ATTR_CODE_COLUMN_NUMBER:()=>Tqt,ATTR_CODE_FILE_PATH:()=>vqt,ATTR_CODE_FUNCTION_NAME:()=>Aqt,ATTR_CODE_LINE_NUMBER:()=>Rqt,ATTR_CODE_STACKTRACE:()=>wqt,ATTR_DB_COLLECTION_NAME:()=>oJ,ATTR_DB_NAMESPACE:()=>aJ,ATTR_DB_OPERATION_BATCH_SIZE:()=>kqt,ATTR_DB_OPERATION_NAME:()=>lA,ATTR_DB_QUERY_SUMMARY:()=>Iqt,ATTR_DB_QUERY_TEXT:()=>cJ,ATTR_DB_RESPONSE_STATUS_CODE:()=>uJ,ATTR_DB_STORED_PROCEDURE_NAME:()=>xqt,ATTR_DB_SYSTEM_NAME:()=>g_,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Mqt,ATTR_ERROR_TYPE:()=>lJ,ATTR_EXCEPTION_ESCAPED:()=>jqt,ATTR_EXCEPTION_MESSAGE:()=>Hqt,ATTR_EXCEPTION_STACKTRACE:()=>qqt,ATTR_EXCEPTION_TYPE:()=>Bqt,ATTR_HTTP_REQUEST_HEADER:()=>Gqt,ATTR_HTTP_REQUEST_METHOD:()=>y_,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>Qqt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>$qt,ATTR_HTTP_RESPONSE_HEADER:()=>eBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>cm,ATTR_HTTP_ROUTE:()=>um,ATTR_JVM_GC_ACTION:()=>tBt,ATTR_JVM_GC_NAME:()=>nBt,ATTR_JVM_MEMORY_POOL_NAME:()=>rBt,ATTR_JVM_MEMORY_TYPE:()=>iBt,ATTR_JVM_THREAD_DAEMON:()=>aBt,ATTR_JVM_THREAD_STATE:()=>cBt,ATTR_NETWORK_LOCAL_ADDRESS:()=>hBt,ATTR_NETWORK_LOCAL_PORT:()=>mBt,ATTR_NETWORK_PEER_ADDRESS:()=>dJ,ATTR_NETWORK_PEER_PORT:()=>fJ,ATTR_NETWORK_PROTOCOL_NAME:()=>gBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>pJ,ATTR_NETWORK_TRANSPORT:()=>hJ,ATTR_NETWORK_TYPE:()=>_Bt,ATTR_OTEL_SCOPE_NAME:()=>vBt,ATTR_OTEL_SCOPE_VERSION:()=>ABt,ATTR_OTEL_STATUS_CODE:()=>RBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>kBt,ATTR_SERVER_ADDRESS:()=>mJ,ATTR_SERVER_PORT:()=>gJ,ATTR_SERVICE_INSTANCE_ID:()=>IBt,ATTR_SERVICE_NAME:()=>yJ,ATTR_SERVICE_NAMESPACE:()=>xBt,ATTR_SERVICE_VERSION:()=>SJ,ATTR_SIGNALR_CONNECTION_STATUS:()=>OBt,ATTR_SIGNALR_TRANSPORT:()=>MBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>FBt,ATTR_TELEMETRY_SDK_NAME:()=>YBt,ATTR_TELEMETRY_SDK_VERSION:()=>ZBt,ATTR_URL_FRAGMENT:()=>JBt,ATTR_URL_FULL:()=>dy,ATTR_URL_PATH:()=>XBt,ATTR_URL_QUERY:()=>QBt,ATTR_URL_SCHEME:()=>$Bt,ATTR_USER_AGENT_ORIGINAL:()=>EJ,AWSECSLAUNCHTYPEVALUES_EC2:()=>THt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>vHt,AwsEcsLaunchtypeValues:()=>AHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>iHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>sHt,CLOUDPLATFORMVALUES_AWS_EC2:()=>oHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>aHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>cHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>lHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>uHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>pHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>mHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>fHt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>hHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>dHt,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>_Ht,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>EHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>yHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>gHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>SHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>$jt,CLOUDPROVIDERVALUES_AWS:()=>eHt,CLOUDPROVIDERVALUES_AZURE:()=>tHt,CLOUDPROVIDERVALUES_GCP:()=>nHt,CloudPlatformValues:()=>bHt,CloudProviderValues:()=>rHt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>F1t,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>W1t,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>j1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>V1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>q1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>Y1t,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>B1t,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>H1t,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>K1t,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>z1t,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>G1t,DBSYSTEMVALUES_ADABAS:()=>a1t,DBSYSTEMVALUES_CACHE:()=>o1t,DBSYSTEMVALUES_CASSANDRA:()=>A1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>QLt,DBSYSTEMVALUES_COCKROACHDB:()=>L1t,DBSYSTEMVALUES_COLDFUSION:()=>v1t,DBSYSTEMVALUES_COSMOSDB:()=>O1t,DBSYSTEMVALUES_COUCHBASE:()=>I1t,DBSYSTEMVALUES_COUCHDB:()=>x1t,DBSYSTEMVALUES_DB2:()=>YLt,DBSYSTEMVALUES_DERBY:()=>u1t,DBSYSTEMVALUES_DYNAMODB:()=>P1t,DBSYSTEMVALUES_EDB:()=>s1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>M1t,DBSYSTEMVALUES_FILEMAKER:()=>l1t,DBSYSTEMVALUES_FIREBIRD:()=>c1t,DBSYSTEMVALUES_FIRSTSQL:()=>i1t,DBSYSTEMVALUES_GEODE:()=>C1t,DBSYSTEMVALUES_H2:()=>T1t,DBSYSTEMVALUES_HANADB:()=>n1t,DBSYSTEMVALUES_HBASE:()=>R1t,DBSYSTEMVALUES_HIVE:()=>XLt,DBSYSTEMVALUES_HSQLDB:()=>$Lt,DBSYSTEMVALUES_INFORMIX:()=>d1t,DBSYSTEMVALUES_INGRES:()=>r1t,DBSYSTEMVALUES_INSTANTDB:()=>f1t,DBSYSTEMVALUES_INTERBASE:()=>p1t,DBSYSTEMVALUES_MARIADB:()=>h1t,DBSYSTEMVALUES_MAXDB:()=>t1t,DBSYSTEMVALUES_MEMCACHED:()=>D1t,DBSYSTEMVALUES_MONGODB:()=>w1t,DBSYSTEMVALUES_MSSQL:()=>VLt,DBSYSTEMVALUES_MYSQL:()=>WLt,DBSYSTEMVALUES_NEO4J:()=>N1t,DBSYSTEMVALUES_NETEZZA:()=>m1t,DBSYSTEMVALUES_ORACLE:()=>KLt,DBSYSTEMVALUES_OTHER_SQL:()=>zLt,DBSYSTEMVALUES_PERVASIVE:()=>g1t,DBSYSTEMVALUES_POINTBASE:()=>y1t,DBSYSTEMVALUES_POSTGRESQL:()=>ZLt,DBSYSTEMVALUES_PROGRESS:()=>e1t,DBSYSTEMVALUES_REDIS:()=>k1t,DBSYSTEMVALUES_REDSHIFT:()=>JLt,DBSYSTEMVALUES_SQLITE:()=>S1t,DBSYSTEMVALUES_SYBASE:()=>E1t,DBSYSTEMVALUES_TERADATA:()=>_1t,DBSYSTEMVALUES_VERTICA:()=>b1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Oqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>Pqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Nqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>Cqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>Dqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>Lqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>Uqt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>ayr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>cyr,DbCassandraConsistencyLevelValues:()=>Z1t,DbSystemValues:()=>U1t,ERROR_TYPE_VALUE_OTHER:()=>Fqt,EVENT_EXCEPTION:()=>XGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>iUt,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>rUt,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>nUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>oUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>aUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>cUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>uUt,FAASTRIGGERVALUES_DATASOURCE:()=>J1t,FAASTRIGGERVALUES_HTTP:()=>X1t,FAASTRIGGERVALUES_OTHER:()=>eUt,FAASTRIGGERVALUES_PUBSUB:()=>Q1t,FAASTRIGGERVALUES_TIMER:()=>$1t,FaasDocumentOperationValues:()=>sUt,FaasInvokedProviderValues:()=>lUt,FaasTriggerValues:()=>tUt,HOSTARCHVALUES_AMD64:()=>RHt,HOSTARCHVALUES_ARM32:()=>wHt,HOSTARCHVALUES_ARM64:()=>kHt,HOSTARCHVALUES_IA64:()=>IHt,HOSTARCHVALUES_PPC32:()=>xHt,HOSTARCHVALUES_PPC64:()=>OHt,HOSTARCHVALUES_X86:()=>PHt,HTTPFLAVORVALUES_HTTP_1_0:()=>KUt,HTTPFLAVORVALUES_HTTP_1_1:()=>YUt,HTTPFLAVORVALUES_HTTP_2_0:()=>ZUt,HTTPFLAVORVALUES_QUIC:()=>XUt,HTTPFLAVORVALUES_SPDY:()=>JUt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>Vqt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>Wqt,HTTP_REQUEST_METHOD_VALUE_GET:()=>uyr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>Kqt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>Yqt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>zqt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>Zqt,HTTP_REQUEST_METHOD_VALUE_POST:()=>Jqt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>lyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>Xqt,HostArchValues:()=>NHt,HttpFlavorValues:()=>QUt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>sBt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>oBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>uBt,JVM_THREAD_STATE_VALUE_NEW:()=>dyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>lBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>dBt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>fBt,JVM_THREAD_STATE_VALUE_WAITING:()=>pBt,MESSAGETYPEVALUES_RECEIVED:()=>AFt,MESSAGETYPEVALUES_SENT:()=>vFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>$Ut,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>eFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>rFt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>nFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>eGt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>tGt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>nGt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>sGt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>iGt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>rGt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>oGt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>aGt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>cGt,METRIC_DOTNET_EXCEPTIONS:()=>uGt,METRIC_DOTNET_GC_COLLECTIONS:()=>lGt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>dGt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>fGt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>pGt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>hGt,METRIC_DOTNET_GC_PAUSE_TIME:()=>mGt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>gGt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>yGt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>SGt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>EGt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>_Gt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>bGt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>TGt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>vGt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>AGt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>RGt,METRIC_DOTNET_TIMER_COUNT:()=>wGt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>kGt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>IGt,METRIC_JVM_CLASS_COUNT:()=>xGt,METRIC_JVM_CLASS_LOADED:()=>OGt,METRIC_JVM_CLASS_UNLOADED:()=>PGt,METRIC_JVM_CPU_COUNT:()=>NGt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>CGt,METRIC_JVM_CPU_TIME:()=>MGt,METRIC_JVM_GC_DURATION:()=>DGt,METRIC_JVM_MEMORY_COMMITTED:()=>LGt,METRIC_JVM_MEMORY_LIMIT:()=>UGt,METRIC_JVM_MEMORY_USED:()=>FGt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>jGt,METRIC_JVM_THREAD_COUNT:()=>HGt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>qGt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>BGt,METRIC_KESTREL_CONNECTION_DURATION:()=>GGt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>zGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>VGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>WGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>KGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>YGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>ZGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>JGt,MessageTypeValues:()=>RFt,MessagingDestinationKindValues:()=>tFt,MessagingOperationValues:()=>iFt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>IUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>PUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>wUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>FUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>xUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>OUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>LUt,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>RUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>HUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>NUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>MUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>jUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>CUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>DUt,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>BUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>UUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>VUt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>GUt,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>zUt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>qUt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>kUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>bUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>TUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>vUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>EUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>_Ut,NETTRANSPORTVALUES_INPROC:()=>gUt,NETTRANSPORTVALUES_IP:()=>pUt,NETTRANSPORTVALUES_IP_TCP:()=>dUt,NETTRANSPORTVALUES_IP_UDP:()=>fUt,NETTRANSPORTVALUES_OTHER:()=>yUt,NETTRANSPORTVALUES_PIPE:()=>mUt,NETTRANSPORTVALUES_UNIX:()=>hUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>yBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>SBt,NETWORK_TRANSPORT_VALUE_TCP:()=>fyr,NETWORK_TRANSPORT_VALUE_UDP:()=>pyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>EBt,NETWORK_TYPE_VALUE_IPV4:()=>bBt,NETWORK_TYPE_VALUE_IPV6:()=>TBt,NetHostConnectionSubtypeValues:()=>WUt,NetHostConnectionTypeValues:()=>AUt,NetTransportValues:()=>SUt,OSTYPEVALUES_AIX:()=>qHt,OSTYPEVALUES_DARWIN:()=>DHt,OSTYPEVALUES_DRAGONFLYBSD:()=>jHt,OSTYPEVALUES_FREEBSD:()=>LHt,OSTYPEVALUES_HPUX:()=>HHt,OSTYPEVALUES_LINUX:()=>MHt,OSTYPEVALUES_NETBSD:()=>UHt,OSTYPEVALUES_OPENBSD:()=>FHt,OSTYPEVALUES_SOLARIS:()=>BHt,OSTYPEVALUES_WINDOWS:()=>CHt,OSTYPEVALUES_Z_OS:()=>GHt,OTEL_STATUS_CODE_VALUE_ERROR:()=>wBt,OTEL_STATUS_CODE_VALUE_OK:()=>hyr,OsTypeValues:()=>zHt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>mFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>dFt,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>oFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>_Ft,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>uFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>hFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>SFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>cFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>lFt,RPCGRPCSTATUSCODEVALUES_OK:()=>sFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>gFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>fFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>pFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>bFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>EFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>yFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>aFt,RpcGrpcStatusCodeValues:()=>TFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>tLt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>pLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>QDt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>YDt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>dLt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>oLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>iLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>hLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>nLt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>ZDt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>eLt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>sLt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>$Dt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>JDt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>XDt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>fLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>cLt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>uLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>rLt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>aLt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>KDt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>lLt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>jMt,SEMATTRS_CODE_FILEPATH:()=>UDt,SEMATTRS_CODE_FUNCTION:()=>DDt,SEMATTRS_CODE_LINENO:()=>FDt,SEMATTRS_CODE_NAMESPACE:()=>LDt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>YMt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>$Mt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>QMt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>JMt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>WMt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>KMt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>XMt,SEMATTRS_DB_CASSANDRA_TABLE:()=>ZMt,SEMATTRS_DB_CONNECTION_STRING:()=>HMt,SEMATTRS_DB_HBASE_NAMESPACE:()=>eDt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>BMt,SEMATTRS_DB_MONGODB_COLLECTION:()=>nDt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>VMt,SEMATTRS_DB_NAME:()=>GMt,SEMATTRS_DB_OPERATION:()=>zMt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>tDt,SEMATTRS_DB_SQL_TABLE:()=>rDt,SEMATTRS_DB_STATEMENT:()=>K8,SEMATTRS_DB_SYSTEM:()=>W8,SEMATTRS_DB_USER:()=>qMt,SEMATTRS_ENDUSER_ID:()=>ODt,SEMATTRS_ENDUSER_ROLE:()=>PDt,SEMATTRS_ENDUSER_SCOPE:()=>NDt,SEMATTRS_EXCEPTION_ESCAPED:()=>aDt,SEMATTRS_EXCEPTION_MESSAGE:()=>sDt,SEMATTRS_EXCEPTION_STACKTRACE:()=>oDt,SEMATTRS_EXCEPTION_TYPE:()=>iDt,SEMATTRS_FAAS_COLDSTART:()=>mDt,SEMATTRS_FAAS_CRON:()=>hDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>uDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>fDt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>lDt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>dDt,SEMATTRS_FAAS_EXECUTION:()=>cDt,SEMATTRS_FAAS_INVOKED_NAME:()=>gDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>yDt,SEMATTRS_FAAS_INVOKED_REGION:()=>SDt,SEMATTRS_FAAS_TIME:()=>pDt,SEMATTRS_FAAS_TRIGGER:()=>Y8,SEMATTRS_HTTP_CLIENT_IP:()=>WDt,SEMATTRS_HTTP_FLAVOR:()=>qDt,SEMATTRS_HTTP_HOST:()=>jDt,SEMATTRS_HTTP_METHOD:()=>uO,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>GDt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>zDt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>$8,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>eJ,SEMATTRS_HTTP_ROUTE:()=>tJ,SEMATTRS_HTTP_SCHEME:()=>HDt,SEMATTRS_HTTP_SERVER_NAME:()=>VDt,SEMATTRS_HTTP_STATUS_CODE:()=>m_,SEMATTRS_HTTP_TARGET:()=>Q8,SEMATTRS_HTTP_URL:()=>uA,SEMATTRS_HTTP_USER_AGENT:()=>BDt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>qLt,SEMATTRS_MESSAGE_ID:()=>HLt,SEMATTRS_MESSAGE_TYPE:()=>jLt,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>BLt,SEMATTRS_MESSAGING_CONSUMER_ID:()=>wLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>TLt,SEMATTRS_MESSAGING_DESTINATION:()=>mLt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>gLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>OLt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>xLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>ILt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>PLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>NLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>bLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>ALt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>vLt,SEMATTRS_MESSAGING_OPERATION:()=>RLt,SEMATTRS_MESSAGING_PROTOCOL:()=>SLt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>ELt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>kLt,SEMATTRS_MESSAGING_SYSTEM:()=>nJ,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>yLt,SEMATTRS_MESSAGING_URL:()=>_Lt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>IDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>wDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>kDt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>RDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>ADt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>vDt,SEMATTRS_NET_HOST_IP:()=>J8,SEMATTRS_NET_HOST_NAME:()=>TDt,SEMATTRS_NET_HOST_PORT:()=>X8,SEMATTRS_NET_PEER_IP:()=>Z8,SEMATTRS_NET_PEER_NAME:()=>bDt,SEMATTRS_NET_PEER_PORT:()=>_Dt,SEMATTRS_NET_TRANSPORT:()=>EDt,SEMATTRS_PEER_SERVICE:()=>xDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>iJ,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>ULt,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>FLt,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>LLt,SEMATTRS_RPC_JSONRPC_VERSION:()=>DLt,SEMATTRS_RPC_METHOD:()=>MLt,SEMATTRS_RPC_SERVICE:()=>rJ,SEMATTRS_RPC_SYSTEM:()=>CLt,SEMATTRS_THREAD_ID:()=>CDt,SEMATTRS_THREAD_NAME:()=>MDt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>NFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>PFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>CFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>MFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>DFt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>LFt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>UFt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>jFt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>FFt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>qFt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>HFt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>kFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>xFt,SEMRESATTRS_CLOUD_PLATFORM:()=>OFt,SEMRESATTRS_CLOUD_PROVIDER:()=>wFt,SEMRESATTRS_CLOUD_REGION:()=>IFt,SEMRESATTRS_CONTAINER_ID:()=>GFt,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>VFt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>WFt,SEMRESATTRS_CONTAINER_NAME:()=>BFt,SEMRESATTRS_CONTAINER_RUNTIME:()=>zFt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>KFt,SEMRESATTRS_DEVICE_ID:()=>YFt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>ZFt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>JFt,SEMRESATTRS_FAAS_ID:()=>QFt,SEMRESATTRS_FAAS_INSTANCE:()=>ejt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>tjt,SEMRESATTRS_FAAS_NAME:()=>XFt,SEMRESATTRS_FAAS_VERSION:()=>$Ft,SEMRESATTRS_HOST_ARCH:()=>sjt,SEMRESATTRS_HOST_ID:()=>njt,SEMRESATTRS_HOST_IMAGE_ID:()=>ajt,SEMRESATTRS_HOST_IMAGE_NAME:()=>ojt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>cjt,SEMRESATTRS_HOST_NAME:()=>rjt,SEMRESATTRS_HOST_TYPE:()=>ijt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>ujt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>mjt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>kjt,SEMRESATTRS_K8S_CRONJOB_UID:()=>wjt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>vjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>Tjt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>Ejt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Sjt,SEMRESATTRS_K8S_JOB_NAME:()=>Rjt,SEMRESATTRS_K8S_JOB_UID:()=>Ajt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>fjt,SEMRESATTRS_K8S_NODE_NAME:()=>ljt,SEMRESATTRS_K8S_NODE_UID:()=>djt,SEMRESATTRS_K8S_POD_NAME:()=>hjt,SEMRESATTRS_K8S_POD_UID:()=>pjt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>yjt,SEMRESATTRS_K8S_REPLICASET_UID:()=>gjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>bjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>_jt,SEMRESATTRS_OS_DESCRIPTION:()=>xjt,SEMRESATTRS_OS_NAME:()=>Ojt,SEMRESATTRS_OS_TYPE:()=>Ijt,SEMRESATTRS_OS_VERSION:()=>Pjt,SEMRESATTRS_PROCESS_COMMAND:()=>Djt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>Ujt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>Ljt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>Cjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Mjt,SEMRESATTRS_PROCESS_OWNER:()=>Fjt,SEMRESATTRS_PROCESS_PID:()=>Njt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>qjt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>jjt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>Hjt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>Gjt,SEMRESATTRS_SERVICE_NAME:()=>Bjt,SEMRESATTRS_SERVICE_NAMESPACE:()=>sJ,SEMRESATTRS_SERVICE_VERSION:()=>zjt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>Yjt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>Wjt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>Vjt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>Kjt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>Xjt,SEMRESATTRS_WEBENGINE_NAME:()=>Zjt,SEMRESATTRS_WEBENGINE_VERSION:()=>Jjt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>PBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>NBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>CBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>DBt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>LBt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>UBt,SemanticAttributes:()=>GLt,SemanticResourceAttributes:()=>Qjt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>VHt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>WHt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>KHt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>YHt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>ZHt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>JHt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>XHt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>QHt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>$Ht,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>eqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>myr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>jBt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>HBt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>gyr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>qBt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>BBt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>yyr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>GBt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>zBt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>VBt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>WBt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>KBt,TelemetrySdkLanguageValues:()=>tqt});var Pn=v(()=>{w0e();QOe();$Oe();ePe();tPe()});var nPe=w(TF=>{"use strict";Object.defineProperty(TF,"__esModule",{value:!0});TF.ATTR_PROCESS_RUNTIME_NAME=void 0;TF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var rPe=w(AF=>{"use strict";Object.defineProperty(AF,"__esModule",{value:!0});AF.SDK_INFO=void 0;var QGt=DAe(),vF=(Pn(),ke(Mr)),$Gt=nPe();AF.SDK_INFO={[vF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[$Gt.ATTR_PROCESS_RUNTIME_NAME]:"node",[vF.ATTR_TELEMETRY_SDK_LANGUAGE]:vF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[vF.ATTR_TELEMETRY_SDK_VERSION]:QGt.VERSION}});var iPe=w(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.otperformance=Ba.SDK_INFO=Ba._globalThis=Ba.getStringListFromEnv=Ba.getNumberFromEnv=Ba.getBooleanFromEnv=Ba.getStringFromEnv=void 0;var RF=CAe();Object.defineProperty(Ba,"getStringFromEnv",{enumerable:!0,get:function(){return RF.getStringFromEnv}});Object.defineProperty(Ba,"getBooleanFromEnv",{enumerable:!0,get:function(){return RF.getBooleanFromEnv}});Object.defineProperty(Ba,"getNumberFromEnv",{enumerable:!0,get:function(){return RF.getNumberFromEnv}});Object.defineProperty(Ba,"getStringListFromEnv",{enumerable:!0,get:function(){return RF.getStringListFromEnv}});var ezt=MAe();Object.defineProperty(Ba,"_globalThis",{enumerable:!0,get:function(){return ezt._globalThis}});var tzt=rPe();Object.defineProperty(Ba,"SDK_INFO",{enumerable:!0,get:function(){return tzt.SDK_INFO}});Ba.otperformance=performance});var _J=w(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.getStringListFromEnv=Ga.getNumberFromEnv=Ga.getStringFromEnv=Ga.getBooleanFromEnv=Ga.otperformance=Ga._globalThis=Ga.SDK_INFO=void 0;var S_=iPe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return S_.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return S_._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return S_.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return S_.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return S_.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return S_.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return S_.getStringListFromEnv}})});var cPe=w(ei=>{"use strict";Object.defineProperty(ei,"__esModule",{value:!0});ei.addHrTimes=ei.isTimeInput=ei.isTimeInputHrTime=ei.hrTimeToMicroseconds=ei.hrTimeToMilliseconds=ei.hrTimeToNanoseconds=ei.hrTimeToTimeStamp=ei.hrTimeDuration=ei.timeInputToHrTime=ei.hrTime=ei.getTimeOrigin=ei.millisToHrTime=void 0;var wF=_J(),sPe=9,nzt=6,rzt=Math.pow(10,nzt),kF=Math.pow(10,sPe);function lO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*rzt);return[n,r]}ei.millisToHrTime=lO;function izt(){return wF.otperformance.timeOrigin}ei.getTimeOrigin=izt;function oPe(e){let t=lO(wF.otperformance.timeOrigin),n=lO(typeof e=="number"?e:wF.otperformance.now());return aPe(t,n)}ei.hrTime=oPe;function szt(e){if(bJ(e))return e;if(typeof e=="number")return e=kF&&(n[1]-=kF,n[0]+=1),n}ei.addHrTimes=aPe});var uPe=w(IF=>{"use strict";Object.defineProperty(IF,"__esModule",{value:!0});IF.unrefTimer=void 0;function fzt(e){typeof e!="number"&&e.unref()}IF.unrefTimer=fzt});var lPe=w(dO=>{"use strict";Object.defineProperty(dO,"__esModule",{value:!0});dO.ExportResultCode=void 0;var pzt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(pzt=dO.ExportResultCode||(dO.ExportResultCode={}))});var fPe=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.CompositePropagator=void 0;var dPe=(Ce(),ke(Ze)),TJ=class{_propagators;_fields;constructor(t={}){this._propagators=t.propagators??[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,r)=>n.concat(r),[])))}inject(t,n,r){for(let i of this._propagators)try{i.inject(t,n,r)}catch(s){dPe.diag.warn(`Failed to inject with ${i.constructor.name}. Err: ${s.message}`)}}extract(t,n,r){return this._propagators.reduce((i,s)=>{try{return s.extract(i,n,r)}catch(o){dPe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};xF.CompositePropagator=TJ});var pPe=w(dA=>{"use strict";Object.defineProperty(dA,"__esModule",{value:!0});dA.validateValue=dA.validateKey=void 0;var vJ="[_0-9a-z-*/]",hzt=`[a-z]${vJ}{0,255}`,mzt=`[a-z0-9]${vJ}{0,240}@[a-z]${vJ}{0,13}`,gzt=new RegExp(`^(?:${hzt}|${mzt})$`),yzt=/^[ -~]{0,255}[!-~]$/,Szt=/,|=/;function Ezt(e){return gzt.test(e)}dA.validateKey=Ezt;function _zt(e){return yzt.test(e)&&!Szt.test(e)}dA.validateValue=_zt});var RJ=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF.TraceState=void 0;var hPe=pPe(),mPe=32,bzt=512,gPe=",",yPe="=",AJ=class e{_internalState=new Map;constructor(t){t&&this._parse(t)}set(t,n){let r=this._clone();return r._internalState.has(t)&&r._internalState.delete(t),r._internalState.set(t,n),r}unset(t){let n=this._clone();return n._internalState.delete(t),n}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,n)=>(t.push(n+yPe+this.get(n)),t),[]).join(gPe)}_parse(t){t.length>bzt||(this._internalState=t.split(gPe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(yPe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,hPe.validateKey)(o)&&(0,hPe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>mPe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,mPe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};OF.TraceState=AJ});var EPe=w(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.W3CTraceContextPropagator=za.parseTraceParent=za.TRACE_STATE_HEADER=za.TRACE_PARENT_HEADER=void 0;var PF=(Ce(),ke(Ze)),Tzt=cO(),vzt=RJ();za.TRACE_PARENT_HEADER="traceparent";za.TRACE_STATE_HEADER="tracestate";var Azt="00",Rzt="(?!ff)[\\da-f]{2}",wzt="(?![0]{32})[\\da-f]{32}",kzt="(?![0]{16})[\\da-f]{16}",Izt="[\\da-f]{2}",xzt=new RegExp(`^\\s?(${Rzt})-(${wzt})-(${kzt})-(${Izt})(-.*)?\\s?$`);function SPe(e){let t=xzt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}za.parseTraceParent=SPe;var wJ=class{inject(t,n,r){let i=PF.trace.getSpanContext(t);if(!i||(0,Tzt.isTracingSuppressed)(t)||!(0,PF.isSpanContextValid)(i))return;let s=`${Azt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||PF.TraceFlags.NONE).toString(16)}`;r.set(n,za.TRACE_PARENT_HEADER,s),i.traceState&&r.set(n,za.TRACE_STATE_HEADER,i.traceState.serialize())}extract(t,n,r){let i=r.get(n,za.TRACE_PARENT_HEADER);if(!i)return t;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return t;let o=SPe(s);if(!o)return t;o.isRemote=!0;let a=r.get(n,za.TRACE_STATE_HEADER);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new vzt.TraceState(typeof c=="string"?c:void 0)}return PF.trace.setSpanContext(t,o)}fields(){return[za.TRACE_PARENT_HEADER,za.TRACE_STATE_HEADER]}};za.W3CTraceContextPropagator=wJ});var _Pe=w(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.getRPCMetadata=Xd.deleteRPCMetadata=Xd.setRPCMetadata=Xd.RPCType=void 0;var Ozt=(Ce(),ke(Ze)),kJ=(0,Ozt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),Pzt;(function(e){e.HTTP="http"})(Pzt=Xd.RPCType||(Xd.RPCType={}));function Nzt(e,t){return e.setValue(kJ,t)}Xd.setRPCMetadata=Nzt;function Czt(e){return e.deleteValue(kJ)}Xd.deleteRPCMetadata=Czt;function Mzt(e){return e.getValue(kJ)}Xd.getRPCMetadata=Mzt});var RPe=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF.isPlainObject=void 0;var Dzt="[object Object]",Lzt="[object Null]",Uzt="[object Undefined]",Fzt=Function.prototype,bPe=Fzt.toString,jzt=bPe.call(Object),Hzt=Object.getPrototypeOf,TPe=Object.prototype,vPe=TPe.hasOwnProperty,E_=Symbol?Symbol.toStringTag:void 0,APe=TPe.toString;function qzt(e){if(!Bzt(e)||Gzt(e)!==Dzt)return!1;let t=Hzt(e);if(t===null)return!0;let n=vPe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&bPe.call(n)===jzt}NF.isPlainObject=qzt;function Bzt(e){return e!=null&&typeof e=="object"}function Gzt(e){return e==null?e===void 0?Uzt:Lzt:E_&&E_ in Object(e)?zzt(e):Vzt(e)}function zzt(e){let t=vPe.call(e,E_),n=e[E_],r=!1;try{e[E_]=void 0,r=!0}catch{}let i=APe.call(e);return r&&(t?e[E_]=n:delete e[E_]),i}function Vzt(e){return APe.call(e)}});var OPe=w(DF=>{"use strict";Object.defineProperty(DF,"__esModule",{value:!0});DF.merge=void 0;var wPe=RPe(),Wzt=20;function Kzt(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=IPe(t,e.shift(),0,n);return t}DF.merge=Kzt;function IJ(e){return MF(e)?e.slice():e}function IPe(e,t,n=0,r){let i;if(!(n>Wzt)){if(n++,CF(e)||CF(t)||xPe(t))i=IJ(t);else if(MF(e)){if(i=e.slice(),MF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(kPe(e,c,r)||kPe(t,c,r))delete i[c];else{if(fO(l)&&fO(d)){let f=r.get(l)||[],p=r.get(d)||[];f.push({obj:e,key:c}),p.push({obj:t,key:c}),r.set(l,f),r.set(d,p)}i[c]=IPe(i[c],u,n,r)}}}}else i=t;return i}}function kPe(e,t,n){let r=n.get(e[t])||[];for(let i=0,s=r.length;i"u"||e instanceof Date||e instanceof RegExp||e===null}function Yzt(e,t){return!(!(0,wPe.isPlainObject)(e)||!(0,wPe.isPlainObject)(t))}});var PPe=w(fA=>{"use strict";Object.defineProperty(fA,"__esModule",{value:!0});fA.callWithTimeout=fA.TimeoutError=void 0;var LF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};fA.TimeoutError=LF;function Zzt(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new LF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}fA.callWithTimeout=Zzt});var CPe=w(pA=>{"use strict";Object.defineProperty(pA,"__esModule",{value:!0});pA.isUrlIgnored=pA.urlMatches=void 0;function NPe(e,t){return typeof t=="string"?e===t:!!e.match(t)}pA.urlMatches=NPe;function Jzt(e,t){if(!t)return!1;for(let n of t)if(NPe(e,n))return!0;return!1}pA.isUrlIgnored=Jzt});var MPe=w(UF=>{"use strict";Object.defineProperty(UF,"__esModule",{value:!0});UF.Deferred=void 0;var xJ=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((t,n)=>{this._resolve=t,this._reject=n})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};UF.Deferred=xJ});var DPe=w(FF=>{"use strict";Object.defineProperty(FF,"__esModule",{value:!0});FF.BindOnceFuture=void 0;var Xzt=MPe(),OJ=class{_isCalled=!1;_deferred=new Xzt.Deferred;_callback;_that;constructor(t,n){this._callback=t,this._that=n}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(n=>this._deferred.resolve(n),n=>this._deferred.reject(n))}catch(n){this._deferred.reject(n)}}return this._deferred.promise}};FF.BindOnceFuture=OJ});var UPe=w(jF=>{"use strict";Object.defineProperty(jF,"__esModule",{value:!0});jF.diagLogLevelFromString=void 0;var lm=(Ce(),ke(Ze)),LPe={ALL:lm.DiagLogLevel.ALL,VERBOSE:lm.DiagLogLevel.VERBOSE,DEBUG:lm.DiagLogLevel.DEBUG,INFO:lm.DiagLogLevel.INFO,WARN:lm.DiagLogLevel.WARN,ERROR:lm.DiagLogLevel.ERROR,NONE:lm.DiagLogLevel.NONE};function Qzt(e){if(e==null)return;let t=LPe[e.toUpperCase()];return t??(lm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(LPe)}, using default`),lm.DiagLogLevel.INFO)}jF.diagLogLevelFromString=Qzt});var jPe=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF._export=void 0;var FPe=(Ce(),ke(Ze)),$zt=cO();function eVt(e,t){return new Promise(n=>{FPe.context.with((0,$zt.suppressTracing)(FPe.context.active()),()=>{e.export(t,n)})})}HF._export=eVt});var fr=w(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.internal=we.diagLogLevelFromString=we.BindOnceFuture=we.urlMatches=we.isUrlIgnored=we.callWithTimeout=we.TimeoutError=we.merge=we.TraceState=we.unsuppressTracing=we.suppressTracing=we.isTracingSuppressed=we.setRPCMetadata=we.getRPCMetadata=we.deleteRPCMetadata=we.RPCType=we.parseTraceParent=we.W3CTraceContextPropagator=we.TRACE_STATE_HEADER=we.TRACE_PARENT_HEADER=we.CompositePropagator=we.otperformance=we.getStringListFromEnv=we.getNumberFromEnv=we.getBooleanFromEnv=we.getStringFromEnv=we._globalThis=we.SDK_INFO=we.parseKeyPairsIntoRecord=we.ExportResultCode=we.unrefTimer=we.timeInputToHrTime=we.millisToHrTime=we.isTimeInputHrTime=we.isTimeInput=we.hrTimeToTimeStamp=we.hrTimeToNanoseconds=we.hrTimeToMilliseconds=we.hrTimeToMicroseconds=we.hrTimeDuration=we.hrTime=we.getTimeOrigin=we.addHrTimes=we.loggingErrorHandler=we.setGlobalErrorHandler=we.globalErrorHandler=we.sanitizeAttributes=we.isAttributeValue=we.AnchoredClock=we.W3CBaggagePropagator=void 0;var tVt=bAe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return tVt.W3CBaggagePropagator}});var nVt=TAe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return nVt.AnchoredClock}});var HPe=kAe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return HPe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return HPe.sanitizeAttributes}});var qPe=xAe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return qPe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return qPe.setGlobalErrorHandler}});var rVt=z8();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return rVt.loggingErrorHandler}});var Fl=cPe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return Fl.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return Fl.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return Fl.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return Fl.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return Fl.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return Fl.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return Fl.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return Fl.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return Fl.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return Fl.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return Fl.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return Fl.timeInputToHrTime}});var iVt=uPe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return iVt.unrefTimer}});var sVt=lPe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return sVt.ExportResultCode}});var oVt=j8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return oVt.parseKeyPairsIntoRecord}});var __=_J();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return __.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return __._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return __.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return __.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return __.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return __.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return __.otperformance}});var aVt=fPe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return aVt.CompositePropagator}});var qF=EPe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return qF.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return qF.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return qF.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return qF.parseTraceParent}});var BF=_Pe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return BF.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return BF.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return BF.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return BF.setRPCMetadata}});var PJ=cO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return PJ.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return PJ.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return PJ.unsuppressTracing}});var cVt=RJ();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return cVt.TraceState}});var uVt=OPe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return uVt.merge}});var BPe=PPe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return BPe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return BPe.callWithTimeout}});var GPe=CPe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return GPe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return GPe.urlMatches}});var lVt=DPe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return lVt.BindOnceFuture}});var dVt=UPe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return dVt.diagLogLevelFromString}});var fVt=jPe();we.internal={_export:fVt._export}});var zPe=w(GF=>{"use strict";Object.defineProperty(GF,"__esModule",{value:!0});GF.VERSION=void 0;GF.VERSION="0.214.0"});var VPe=w(pO=>{"use strict";Object.defineProperty(pO,"__esModule",{value:!0});pO.SeverityNumber=void 0;var pVt;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(pVt=pO.SeverityNumber||(pO.SeverityNumber={}))});var VF=w(hA=>{"use strict";Object.defineProperty(hA,"__esModule",{value:!0});hA.NOOP_LOGGER=hA.NoopLogger=void 0;var zF=class{emit(t){}};hA.NoopLogger=zF;hA.NOOP_LOGGER=new zF});var WPe=w(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.API_BACKWARDS_COMPATIBILITY_VERSION=Op.makeGetter=Op._global=Op.GLOBAL_LOGS_API_KEY=void 0;Op.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Op._global=globalThis;function hVt(e,t,n){return r=>r===e?t:n}Op.makeGetter=hVt;Op.API_BACKWARDS_COMPATIBILITY_VERSION=1});var NJ=w(mA=>{"use strict";Object.defineProperty(mA,"__esModule",{value:!0});mA.NOOP_LOGGER_PROVIDER=mA.NoopLoggerProvider=void 0;var mVt=VF(),WF=class{getLogger(t,n,r){return new mVt.NoopLogger}};mA.NoopLoggerProvider=WF;mA.NOOP_LOGGER_PROVIDER=new WF});var KPe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.ProxyLogger=void 0;var gVt=VF(),CJ=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):gVt.NOOP_LOGGER}};KF.ProxyLogger=CJ});var YPe=w(YF=>{"use strict";Object.defineProperty(YF,"__esModule",{value:!0});YF.ProxyLoggerProvider=void 0;var yVt=NJ(),SVt=KPe(),MJ=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new SVt.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:yVt.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};YF.ProxyLoggerProvider=MJ});var JPe=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.LogsAPI=void 0;var jl=WPe(),EVt=NJ(),ZPe=YPe(),DJ=class e{constructor(){this._proxyLoggerProvider=new ZPe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return jl._global[jl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(jl._global[jl.GLOBAL_LOGS_API_KEY]=(0,jl.makeGetter)(jl.API_BACKWARDS_COMPATIBILITY_VERSION,t,EVt.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=jl._global[jl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(jl._global,jl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete jl._global[jl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new ZPe.ProxyLoggerProvider}};ZF.LogsAPI=DJ});var LJ=w(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});Pp.logs=Pp.NoopLogger=Pp.NOOP_LOGGER=Pp.SeverityNumber=void 0;var _Vt=VPe();Object.defineProperty(Pp,"SeverityNumber",{enumerable:!0,get:function(){return _Vt.SeverityNumber}});var XPe=VF();Object.defineProperty(Pp,"NOOP_LOGGER",{enumerable:!0,get:function(){return XPe.NOOP_LOGGER}});Object.defineProperty(Pp,"NoopLogger",{enumerable:!0,get:function(){return XPe.NoopLogger}});var bVt=JPe();Pp.logs=bVt.LogsAPI.getInstance()});var QPe=w(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.disableInstrumentations=gA.enableInstrumentations=void 0;function TVt(e,t,n,r){for(let i=0,s=e.length;it.disable())}gA.disableInstrumentations=vVt});var tNe=w(JF=>{"use strict";Object.defineProperty(JF,"__esModule",{value:!0});JF.registerInstrumentations=void 0;var $Pe=(Ce(),ke(Ze)),AVt=LJ(),eNe=QPe();function RVt(e){let t=e.tracerProvider||$Pe.trace.getTracerProvider(),n=e.meterProvider||$Pe.metrics.getMeterProvider(),r=e.loggerProvider||AVt.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,eNe.enableInstrumentations)(i,t,n,r),()=>{(0,eNe.disableInstrumentations)(i)}}JF.registerInstrumentations=RVt});var lNe=w(XF=>{"use strict";Object.defineProperty(XF,"__esModule",{value:!0});XF.satisfies=void 0;var HJ=(Ce(),ke(Ze)),oNe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,wVt=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,kVt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function IVt(e,t,n){if(!xVt(e))return HJ.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=CVt(e);if(!r)return!1;let i=[],s=aNe(r,t,i,n);return s&&!n?.includePrerelease?PVt(r,i):s}XF.satisfies=IVt;function xVt(e){return typeof e=="string"&&oNe.test(e)}function aNe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(UJ(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=e2t(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!UJ(e,s,n,r))return!1;return!0}return UJ(e,t,n,r)}function UJ(e,t,n,r){if(t=NVt(t,r),t.includes(" "))return aNe(e,t,n,r);{let i=MVt(t);return n.push(i),OVt(e,i)}}function OVt(e,t){if(t.invalid)return!1;if(!t.version||jJ(t.version))return!0;let n=rNe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=rNe(r,i)}return kVt[t.op]?.includes(n)}function PVt(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function NVt(e,t){return e=e.trim(),e=QVt(e,t),e=XVt(e),e=$Vt(e,t),e=e.trim(),e}function wc(e){return!e||e.toLowerCase()==="x"||e==="*"}function CVt(e){let t=e.match(oNe);if(!t){HJ.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function MVt(e){if(!e)return{};let t=e.match(wVt);if(!t)return HJ.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function jJ(e){return e==="*"||e==="x"||e==="X"}function nNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function DVt(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function LVt(e,t){if(jJ(e)||jJ(t))return 0;let[n,r]=DVt(nNe(e),nNe(t));return n>r?1:n)?=?)",iNe=`(?:${uNe}|${UVt})`,jVt=`(?:-(${iNe}(?:\\.${iNe})*))`,sNe=`${cNe}+`,HVt=`(?:\\+(${sNe}(?:\\.${sNe})*))`,FJ=`${uNe}|x|X|\\*`,hO=`[v=\\s]*(${FJ})(?:\\.(${FJ})(?:\\.(${FJ})(?:${jVt})?${HVt}?)?)?`,qVt=`^${FVt}\\s*${hO}$`,BVt=new RegExp(qVt),GVt=`^\\s*(${hO})\\s+-\\s+(${hO})\\s*$`,zVt=new RegExp(GVt),VVt="(?:~>?)",WVt=`^${VVt}${hO}$`,KVt=new RegExp(WVt),YVt="(?:\\^)",ZVt=`^${YVt}${hO}$`,JVt=new RegExp(ZVt);function XVt(e){let t=KVt;return e.replace(t,(n,r,i,s,o)=>{let a;return wc(r)?a="":wc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:wc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function QVt(e,t){let n=JVt,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return wc(s)?u="":wc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:wc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function $Vt(e,t){let n=BVt;return e.replace(n,(r,i,s,o,a,c)=>{let u=wc(s),l=u||wc(o),d=l||wc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function e2t(e,t){let n=zVt;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(wc(s)?i="":wc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:wc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,wc(d)?l="":wc(f)?l=`<${+d+1}.0.0-0`:wc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var qJ=w(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.massUnwrap=ia.unwrap=ia.massWrap=ia.wrap=void 0;var kc=console.error.bind(console);function mO(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var t2t=(e,t,n)=>{if(!e||!e[t]){kc("no original function "+String(t)+" to wrap");return}if(!n){kc("no wrapper function"),kc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){kc("original object and wrapper must be functions");return}let i=n(r,t);return mO(i,"__original",r),mO(i,"__unwrap",()=>{e[t]===i&&mO(e,t,r)}),mO(i,"__wrapped",!0),mO(e,t,i),i};ia.wrap=t2t;var n2t=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{kc("must provide one or more modules to patch"),kc(new Error().stack);return}if(!(t&&Array.isArray(t))){kc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,ia.wrap)(r,i,n)})})};ia.massWrap=n2t;var r2t=(e,t)=>{if(!e||!e[t]){kc("no function to unwrap."),kc(new Error().stack);return}let n=e[t];if(!n.__unwrap)kc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};ia.unwrap=r2t;var i2t=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{kc("must provide one or more modules to patch"),kc(new Error().stack);return}if(!(t&&Array.isArray(t))){kc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,ia.unwrap)(n,r)})})};ia.massUnwrap=i2t;function gO(e){e&&e.logger&&(typeof e.logger!="function"?kc("new logger isn't a function, not replacing"):kc=e.logger)}ia.default=gO;gO.wrap=ia.wrap;gO.massWrap=ia.massWrap;gO.unwrap=ia.unwrap;gO.massUnwrap=ia.massUnwrap});var dNe=w($F=>{"use strict";Object.defineProperty($F,"__esModule",{value:!0});$F.InstrumentationAbstract=void 0;var BJ=(Ce(),ke(Ze)),s2t=LJ(),QF=qJ(),GJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=BJ.diag.createComponentLogger({namespace:t}),this._tracer=BJ.trace.getTracer(t,n),this._meter=BJ.metrics.getMeter(t,n),this._logger=s2t.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=QF.wrap;_unwrap=QF.unwrap;_massWrap=QF.massWrap;_massUnwrap=QF.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};$F.InstrumentationAbstract=GJ});var pNe=w((aSr,fNe)=>{var yA=1e3,SA=yA*60,EA=SA*60,b_=EA*24,o2t=b_*7,a2t=b_*365.25;fNe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return c2t(e);if(n==="number"&&isFinite(e))return t.long?l2t(e):u2t(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function c2t(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*a2t;case"weeks":case"week":case"w":return n*o2t;case"days":case"day":case"d":return n*b_;case"hours":case"hour":case"hrs":case"hr":case"h":return n*EA;case"minutes":case"minute":case"mins":case"min":case"m":return n*SA;case"seconds":case"second":case"secs":case"sec":case"s":return n*yA;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function u2t(e){var t=Math.abs(e);return t>=b_?Math.round(e/b_)+"d":t>=EA?Math.round(e/EA)+"h":t>=SA?Math.round(e/SA)+"m":t>=yA?Math.round(e/yA)+"s":e+"ms"}function l2t(e){var t=Math.abs(e);return t>=b_?ej(e,t,b_,"day"):t>=EA?ej(e,t,EA,"hour"):t>=SA?ej(e,t,SA,"minute"):t>=yA?ej(e,t,yA,"second"):e+" ms"}function ej(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var zJ=w((cSr,hNe)=>{function d2t(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=pNe(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";_++;let R=n.formatters[A];if(typeof R=="function"){let x=g[_];T=R.call(y,x),g.splice(_,1),_--}return T}),n.formatArgs.call(y,g),(y.log||n.log).apply(y,g)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:g=>{f=g}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d=(typeof l=="string"?l:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of d)f[0]==="-"?n.skips.push(f.slice(1)):n.names.push(f)}function s(l,d){let f=0,p=0,h=-1,m=0;for(;f"-"+d)].join(",");return n.enable(""),l}function a(l){for(let d of n.skips)if(s(l,d))return!1;for(let d of n.names)if(s(l,d))return!0;return!1}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}hNe.exports=d2t});var mNe=w((au,tj)=>{au.formatArgs=p2t;au.save=h2t;au.load=m2t;au.useColors=f2t;au.storage=g2t();au.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();au.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function f2t(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function p2t(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+tj.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}au.log=console.debug||console.log||(()=>{});function h2t(e){try{e?au.storage.setItem("debug",e):au.storage.removeItem("debug")}catch{}}function m2t(){let e;try{e=au.storage.getItem("debug")||au.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function g2t(){try{return localStorage}catch{}}tj.exports=zJ()(au);var{formatters:y2t}=tj.exports;y2t.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var yNe=w((uSr,gNe)=>{"use strict";gNe.exports=(e,t=process.argv)=>{let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return r!==-1&&(i===-1||r{"use strict";var S2t=Y("os"),SNe=Y("tty"),Hl=yNe(),{env:No}=process,nj;Hl("no-color")||Hl("no-colors")||Hl("color=false")||Hl("color=never")?nj=0:(Hl("color")||Hl("colors")||Hl("color=true")||Hl("color=always"))&&(nj=1);function E2t(){if("FORCE_COLOR"in No)return No.FORCE_COLOR==="true"?1:No.FORCE_COLOR==="false"?0:No.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(No.FORCE_COLOR,10),3)}function _2t(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function b2t(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=E2t();r!==void 0&&(nj=r);let i=n?nj:r;if(i===0)return 0;if(n){if(Hl("color=16m")||Hl("color=full")||Hl("color=truecolor"))return 3;if(Hl("color=256"))return 2}if(e&&!t&&i===void 0)return 0;let s=i||0;if(No.TERM==="dumb")return s;if(process.platform==="win32"){let o=S2t.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in No)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(o=>o in No)||No.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in No)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(No.TEAMCITY_VERSION)?1:0;if(No.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in No){let o=Number.parseInt((No.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(No.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(No.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(No.TERM)||"COLORTERM"in No?1:s}function VJ(e,t={}){let n=b2t(e,{streamIsTTY:e&&e.isTTY,...t});return _2t(n)}ENe.exports={supportsColor:VJ,stdout:VJ({isTTY:SNe.isatty(1)}),stderr:VJ({isTTY:SNe.isatty(2)})}});var bNe=w((Co,ij)=>{var T2t=Y("tty"),rj=Y("util");Co.init=x2t;Co.log=w2t;Co.formatArgs=A2t;Co.save=k2t;Co.load=I2t;Co.useColors=v2t;Co.destroy=rj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Co.colors=[6,2,3,4,5,1];try{let e=WJ();e&&(e.stderr||e).level>=2&&(Co.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Co.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function v2t(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:T2t.isatty(process.stderr.fd)}function A2t(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` `).join(` -`+s),e.push(i+"m+"+zj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=w2t()+t+" "+e[0]}function w2t(){return No.inspectOpts.hideDate?"":new Date().toISOString()+" "}function k2t(...e){return process.stderr.write(Gj.formatWithOptions(No.inspectOpts,...e)+` -`)}function I2t(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function x2t(){return process.env.DEBUG}function O2t(e){e.inspectOpts={};let t=Object.keys(No.inspectOpts);for(let n=0;nt.trim()).join(" ")};zNe.O=function(e){return this.inspectOpts.colors=this.useColors,Gj.inspect(e,this.inspectOpts)}});var OJ=w((Sgr,xJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?xJ.exports=FNe():xJ.exports=VNe()});var uO=w((_gr,WNe)=>{"use strict";var NJ=Y("path").sep;WNe.exports=function(e){var t=e.split(NJ),n=t.lastIndexOf("node_modules");if(n!==-1&&t[n+1]){for(var r=t[n+1][0]==="@",i=r?t[n+1]+"/"+t[n+2]:t[n+1],s=r?3:2,o="",a=n+s-1,c=0;c<=a;c++)c===a?o+=t[c]:o+=t[c]+NJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+NJ;return{name:i,basedir:o,path:u}}}});var SE=w((Egr,MJ)=>{"use strict";var hA=Y("path"),Jd=Y("module"),vs=OJ()("require-in-the-middle"),N2t=uO();MJ.exports=lO;MJ.exports.Hook=lO;var PJ,Vj;if(Jd.isBuiltin)Vj=Jd.isBuiltin;else if(Jd.builtinModules)Vj=e=>e.startsWith("node:")?!0:(PJ===void 0&&(PJ=new Set(Jd.builtinModules)),PJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var P2t=/([/\\]index)?(\.js)?$/,CJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=Y.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=Y.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in Y.cache?Y.cache[t][this._kRitmExports]=n:(vs('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function lO(e,t,n){if(!(this instanceof lO))return new lO(e,t,n);if(typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),typeof Jd._resolveFilename!="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof Jd._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new CJ,this._unhooked=!1,this._origRequire=Jd.prototype.require;let r=this,i=new Set,s=t?t.internals===!0:!1,o=Array.isArray(e);vs("registering require hook"),this._require=Jd.prototype.require=function(c){return r._unhooked===!0?(vs("ignoring require call - module is soft-unhooked"),r._origRequire.apply(this,arguments)):a.call(this,arguments,!1)},typeof process.getBuiltinModule=="function"&&(this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(c){return r._unhooked===!0?(vs("ignoring process.getBuiltinModule call - module is soft-unhooked"),r._origGetBuiltinModule.apply(this,arguments)):a.call(this,arguments,!0)});function a(c,u){let l=c[0],d=Vj(l),f;if(d){if(f=l,l.startsWith("node:")){let E=l.slice(5);Vj(E)&&(f=E)}}else{if(u)return vs("call to process.getBuiltinModule with unknown built-in id"),r._origGetBuiltinModule.apply(this,c);try{f=Jd._resolveFilename(l,this)}catch(E){return vs('Module._resolveFilename("%s") threw %j, calling original Module.require',l,E.message),r._origRequire.apply(this,c)}}let p,h;if(vs("processing %s module require('%s'): %s",d===!0?"core":"non-core",l,f),r._cache.has(f,d)===!0)return vs("returning already patched cached module: %s",f),r._cache.get(f,d);let m=i.has(f);m===!1&&i.add(f);let y=u?r._origGetBuiltinModule.apply(this,c):r._origRequire.apply(this,c);if(m===!0)return vs("module is in the process of being patched already - ignoring: %s",f),y;if(i.delete(f),d===!0){if(o===!0&&e.includes(f)===!1)return vs("ignoring core module not on whitelist: %s",f),y;p=f}else if(o===!0&&e.includes(f)){let E=hA.parse(f);p=E.name,h=E.dir}else{let E=N2t(f);if(E===void 0)return vs("could not parse filename: %s",f),y;p=E.name,h=E.basedir;let S=C2t(E);vs("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",p,l,S,h);let _=!1;if(o){if(!l.startsWith(".")&&e.includes(l)&&(p=l,_=!0),!e.includes(p)&&!e.includes(S))return y;e.includes(S)&&S!==p&&(p=S,_=!0)}if(!_){let b;try{b=Y.resolve(p,{paths:[h]})}catch{return vs("could not resolve module: %s",p),r._cache.set(f,y,d),y}if(b!==f)if(s===!0)p=p+hA.sep+hA.relative(h,f),vs("preparing to process require of internal file: %s",p);else return vs("ignoring require of non-main module file: %s",b),r._cache.set(f,y,d),y}}r._cache.set(f,y,d),vs("calling require hook: %s",p);let g=n(y,p,h);return r._cache.set(f,g,d),vs("returning module: %s",p),g}}lO.prototype.unhook=function(){this._unhooked=!0,this._require===Jd.prototype.require?(Jd.prototype.require=this._origRequire,vs("require unhook successful")):vs("require unhook unsuccessful"),process.getBuiltinModule!==void 0&&(this._getBuiltinModule===process.getBuiltinModule?(process.getBuiltinModule=this._origGetBuiltinModule,vs("process.getBuiltinModule unhook successful")):vs("process.getBuiltinModule unhook unsuccessful"))};function C2t(e){let t=hA.sep!=="/"?e.path.split(hA.sep).join("/"):e.path;return hA.posix.join(e.name,t).replace(P2t,"")}});var KNe=w(cy=>{"use strict";Object.defineProperty(cy,"__esModule",{value:!0});cy.ModuleNameTrie=cy.ModuleNameSeparator=void 0;cy.ModuleNameSeparator="/";var Wj=class{hooks=[];children=new Map},DJ=class{_trie=new Wj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(cy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new Wj,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(cy.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};cy.ModuleNameTrie=DJ});var YNe=w(Kj=>{"use strict";Object.defineProperty(Kj,"__esModule",{value:!0});Kj.RequireInTheMiddleSingleton=void 0;var M2t=SE(),ZNe=Y("path"),LJ=KNe(),D2t=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),UJ=class e{_moduleNameTrie=new LJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new M2t.Hook(null,{internals:!0},(t,n,r)=>{let i=L2t(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return D2t?new e:this._instance=this._instance??new e}};Kj.RequireInTheMiddleSingleton=UJ;function L2t(e){return ZNe.sep!==LJ.ModuleNameSeparator?e.split(ZNe.sep).join(LJ.ModuleNameSeparator):e}});var ePe=w(dO=>{var JNe=[],jJ=new WeakMap,XNe=new WeakMap,QNe=new Map,$Ne=[],U2t={set(e,t,n){let r=jJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=XNe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=jJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function j2t(e,t,n,r,i){QNe.set(e,i),jJ.set(t,n),XNe.set(t,r);let s=new Proxy(t,U2t);JNe.forEach(o=>o(e,s,i)),$Ne.push([e,s,i])}dO.register=j2t;dO.importHooks=JNe;dO.specifiers=QNe;dO.toHook=$Ne});var BJ=w((Rgr,gA)=>{var tPe=Y("path"),F2t=uO(),{fileURLToPath:H2t}=Y("url"),{MessageChannel:q2t}=Y("worker_threads"),{isBuiltin:FJ}=Y("module");FJ||(FJ=()=>!0);var{importHooks:HJ,specifiers:nPe,toHook:B2t}=ePe();function G2t(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function rPe(e){HJ.push(e),B2t.forEach(([t,n,r])=>e(t,n,r))}function iPe(e){let t=HJ.indexOf(e);t>-1&&HJ.splice(t,1)}function mA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var qJ;function z2t(){let{port1:e,port2:t}=new q2t,n=0,r;qJ=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function fO(e,t,n){if(!(this instanceof fO))return new fO(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;qJ&&Array.isArray(e)&&qJ(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);FJ(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=H2t(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=F2t(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)mA(n,s,u,void 0);else if(d===i){if(!l)mA(n,s,i,l);else if(l.endsWith(nPe.get(a))||G2t(nPe.get(a),l))mA(n,s,i,l);else if(r){let f=i+tPe.sep+tPe.relative(l,u);mA(n,s,f,l)}}else d===o&&mA(n,s,o,l);else mA(n,s,i,l)},rPe(this._iitmHook)}fO.prototype.unhook=function(){iPe(this._iitmHook)};gA.exports=fO;gA.exports.Hook=fO;gA.exports.addHook=rPe;gA.exports.removeHook=iPe;gA.exports.createAddHookMessageChannel=z2t});var GJ=w(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.isWrapped=uy.safeExecuteInTheMiddleAsync=uy.safeExecuteInTheMiddle=void 0;function V2t(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}uy.safeExecuteInTheMiddle=V2t;async function W2t(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}uy.safeExecuteInTheMiddleAsync=W2t;function K2t(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}uy.isWrapped=K2t});var aPe=w(Zj=>{"use strict";Object.defineProperty(Zj,"__esModule",{value:!0});Zj.InstrumentationBase=void 0;var pO=Y("path"),sPe=Y("util"),Z2t=MNe(),zJ=vJ(),Y2t=DNe(),J2t=YNe(),X2t=BJ(),hO=(Me(),Ie(Ze)),Q2t=SE(),$2t=Y("fs"),eVt=GJ(),VJ=class extends Y2t.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=J2t.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,eVt.isWrapped)(t[n])&&this._unwrap(t,n),sPe.types.isProxy(t)){let i=(0,zJ.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,zJ.wrap)(t,n,r)};_unwrap=(t,n)=>sPe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,zJ.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{hO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){hO.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{hO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){hO.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){let t=globalThis.require;!t?.resolve||!t?.cache||this._modules.forEach(n=>{let{name:r}=n;try{let i=t.resolve(r);t.cache[i]?.loaded&&this._diag.warn(`Module ${r} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${r}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,$2t.readFileSync)(pO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{hO.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return oPe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=pO.normalize(r);return o.filter(u=>u.name===a&&oPe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&pO.isAbsolute(a)){let u=pO.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=pO.isAbsolute(t.name)?new Q2t.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new X2t.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};Zj.InstrumentationBase=VJ;function oPe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Z2t.satisfies)(t,r,{includePrerelease:n}))}});var cPe=w(Yj=>{"use strict";Object.defineProperty(Yj,"__esModule",{value:!0});Yj.normalize=void 0;var tVt=Y("path");Object.defineProperty(Yj,"normalize",{enumerable:!0,get:function(){return tVt.normalize}})});var uPe=w(yA=>{"use strict";Object.defineProperty(yA,"__esModule",{value:!0});yA.normalize=yA.InstrumentationBase=void 0;var nVt=aPe();Object.defineProperty(yA,"InstrumentationBase",{enumerable:!0,get:function(){return nVt.InstrumentationBase}});var rVt=cPe();Object.defineProperty(yA,"normalize",{enumerable:!0,get:function(){return rVt.normalize}})});var WJ=w(SA=>{"use strict";Object.defineProperty(SA,"__esModule",{value:!0});SA.normalize=SA.InstrumentationBase=void 0;var lPe=uPe();Object.defineProperty(SA,"InstrumentationBase",{enumerable:!0,get:function(){return lPe.InstrumentationBase}});Object.defineProperty(SA,"normalize",{enumerable:!0,get:function(){return lPe.normalize}})});var dPe=w(Jj=>{"use strict";Object.defineProperty(Jj,"__esModule",{value:!0});Jj.InstrumentationNodeModuleDefinition=void 0;var KJ=class{files;name;supportedVersions;patch;unpatch;constructor(t,n,r,i,s){this.files=s||[],this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i}};Jj.InstrumentationNodeModuleDefinition=KJ});var fPe=w(Xj=>{"use strict";Object.defineProperty(Xj,"__esModule",{value:!0});Xj.InstrumentationNodeModuleFile=void 0;var iVt=WJ(),ZJ=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,iVt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};Xj.InstrumentationNodeModuleFile=ZJ});var pPe=w(_E=>{"use strict";Object.defineProperty(_E,"__esModule",{value:!0});_E.semconvStabilityFromStr=_E.SemconvStability=void 0;var Qj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(Qj=_E.SemconvStability||(_E.SemconvStability={}));function sVt(e,t){let n=Qj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=Qj.DUPLICATE;break}else i.toLowerCase()===e&&(n=Qj.STABLE);return n}_E.semconvStabilityFromStr=sVt});var Yt=w(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.semconvStabilityFromStr=js.SemconvStability=js.safeExecuteInTheMiddleAsync=js.safeExecuteInTheMiddle=js.isWrapped=js.InstrumentationNodeModuleFile=js.InstrumentationNodeModuleDefinition=js.InstrumentationBase=js.registerInstrumentations=void 0;var oVt=RNe();Object.defineProperty(js,"registerInstrumentations",{enumerable:!0,get:function(){return oVt.registerInstrumentations}});var aVt=WJ();Object.defineProperty(js,"InstrumentationBase",{enumerable:!0,get:function(){return aVt.InstrumentationBase}});var cVt=dPe();Object.defineProperty(js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return cVt.InstrumentationNodeModuleDefinition}});var uVt=fPe();Object.defineProperty(js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return uVt.InstrumentationNodeModuleFile}});var YJ=GJ();Object.defineProperty(js,"isWrapped",{enumerable:!0,get:function(){return YJ.isWrapped}});Object.defineProperty(js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return YJ.safeExecuteInTheMiddle}});Object.defineProperty(js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return YJ.safeExecuteInTheMiddleAsync}});var hPe=pPe();Object.defineProperty(js,"SemconvStability",{enumerable:!0,get:function(){return hPe.SemconvStability}});Object.defineProperty(js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return hPe.semconvStabilityFromStr}})});var mPe=w(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.HTTP_FLAVOR_VALUE_HTTP_1_1=St.NET_TRANSPORT_VALUE_IP_UDP=St.NET_TRANSPORT_VALUE_IP_TCP=St.ATTR_NET_TRANSPORT=St.ATTR_NET_PEER_PORT=St.ATTR_NET_PEER_NAME=St.ATTR_NET_PEER_IP=St.ATTR_NET_HOST_PORT=St.ATTR_NET_HOST_NAME=St.ATTR_NET_HOST_IP=St.ATTR_HTTP_USER_AGENT=St.ATTR_HTTP_URL=St.ATTR_HTTP_TARGET=St.ATTR_HTTP_STATUS_CODE=St.ATTR_HTTP_SERVER_NAME=St.ATTR_HTTP_SCHEME=St.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=St.ATTR_HTTP_RESPONSE_CONTENT_LENGTH=St.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=St.ATTR_HTTP_REQUEST_CONTENT_LENGTH=St.ATTR_HTTP_METHOD=St.ATTR_HTTP_HOST=St.ATTR_HTTP_FLAVOR=St.ATTR_HTTP_CLIENT_IP=St.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST=St.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT=St.ATTR_USER_AGENT_SYNTHETIC_TYPE=void 0;St.ATTR_USER_AGENT_SYNTHETIC_TYPE="user_agent.synthetic.type";St.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT="bot";St.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST="test";St.ATTR_HTTP_CLIENT_IP="http.client_ip";St.ATTR_HTTP_FLAVOR="http.flavor";St.ATTR_HTTP_HOST="http.host";St.ATTR_HTTP_METHOD="http.method";St.ATTR_HTTP_REQUEST_CONTENT_LENGTH="http.request_content_length";St.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED="http.request_content_length_uncompressed";St.ATTR_HTTP_RESPONSE_CONTENT_LENGTH="http.response_content_length";St.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED="http.response_content_length_uncompressed";St.ATTR_HTTP_SCHEME="http.scheme";St.ATTR_HTTP_SERVER_NAME="http.server_name";St.ATTR_HTTP_STATUS_CODE="http.status_code";St.ATTR_HTTP_TARGET="http.target";St.ATTR_HTTP_URL="http.url";St.ATTR_HTTP_USER_AGENT="http.user_agent";St.ATTR_NET_HOST_IP="net.host.ip";St.ATTR_NET_HOST_NAME="net.host.name";St.ATTR_NET_HOST_PORT="net.host.port";St.ATTR_NET_PEER_IP="net.peer.ip";St.ATTR_NET_PEER_NAME="net.peer.name";St.ATTR_NET_PEER_PORT="net.peer.port";St.ATTR_NET_TRANSPORT="net.transport";St.NET_TRANSPORT_VALUE_IP_TCP="ip_tcp";St.NET_TRANSPORT_VALUE_IP_UDP="ip_udp";St.HTTP_FLAVOR_VALUE_HTTP_1_1="1.1"});var gPe=w(mO=>{"use strict";Object.defineProperty(mO,"__esModule",{value:!0});mO.AttributeNames=void 0;var lVt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(lVt=mO.AttributeNames||(mO.AttributeNames={}))});var JJ=w(kp=>{"use strict";Object.defineProperty(kp,"__esModule",{value:!0});kp.DEFAULT_QUERY_STRINGS_TO_REDACT=kp.STR_REDACTED=kp.SYNTHETIC_BOT_NAMES=kp.SYNTHETIC_TEST_NAMES=void 0;kp.SYNTHETIC_TEST_NAMES=["alwayson"];kp.SYNTHETIC_BOT_NAMES=["googlebot","bingbot"];kp.STR_REDACTED="REDACTED";kp.DEFAULT_QUERY_STRINGS_TO_REDACT=["sig","Signature","AWSAccessKeyId","X-Goog-Signature"]});var SPe=w((jgr,yPe)=>{"use strict";var dVt=Y("util");function XJ(e,t){Error.captureStackTrace(this,XJ),this.name=this.constructor.name,this.message=e,this.input=t}dVt.inherits(XJ,Error);yPe.exports=XJ});var EPe=w((Fgr,_Pe)=>{"use strict";function fVt(e){return e===34||e===40||e===41||e===44||e===47||e>=58&&e<=64||e>=91&&e<=93||e===123||e===125}function pVt(e){return e===33||e>=35&&e<=39||e===42||e===43||e===45||e===46||e>=48&&e<=57||e>=65&&e<=90||e>=94&&e<=122||e===124||e===126}function hVt(e){return e>=32&&e<=126}function mVt(e){return e>=128&&e<=255}_Pe.exports={isDelimiter:fVt,isTokenChar:pVt,isExtended:mVt,isPrint:hVt}});var RPe=w((Hgr,APe)=>{"use strict";var gVt=Y("util"),_A=SPe(),$j=EPe(),yVt=$j.isDelimiter,bPe=$j.isTokenChar,TPe=$j.isExtended,SVt=$j.isPrint;function vPe(e){return e.replace(/\\(.)/g,"$1")}function gO(e,t){return gVt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function _Vt(e){for(var t=!1,n=!1,r=!1,i={},s=[],o=-1,a=-1,c,u,l=0;l{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.headerCapture=Tt.getIncomingStableRequestMetricAttributesOnResponse=Tt.getIncomingRequestMetricAttributesOnResponse=Tt.getIncomingRequestAttributesOnResponse=Tt.getIncomingRequestMetricAttributes=Tt.getIncomingRequestAttributes=Tt.getRemoteClientAddress=Tt.getOutgoingStableRequestMetricAttributesOnResponse=Tt.getOutgoingRequestMetricAttributesOnResponse=Tt.getOutgoingRequestAttributesOnResponse=Tt.setAttributesFromHttpKind=Tt.getOutgoingRequestMetricAttributes=Tt.getOutgoingRequestAttributes=Tt.extractHostnameAndPort=Tt.isValidOptionsType=Tt.getRequestInfo=Tt.isCompressed=Tt.setResponseContentLengthAttribute=Tt.setRequestContentLengthAttribute=Tt.setSpanWithError=Tt.satisfiesPattern=Tt.parseResponseStatus=Tt.getAbsoluteUrl=void 0;var yO=(Me(),Ie(Ze)),fn=(xn(),Ie(Mr)),dt=mPe(),wPe=dr(),el=Yt(),EVt=Y("url"),tF=gPe(),kPe=JJ(),eF=JJ(),bVt=RPe(),TVt=(e,t,n="http:",r=Array.from(eF.DEFAULT_QUERY_STRINGS_TO_REDACT))=>{let i=e||{},s=i.protocol||n,o=(i.port||"").toString(),a=i.path||"/",c=i.host||i.hostname||t.host||"localhost";if(c.indexOf(":")===-1&&o&&o!=="80"&&o!=="443"&&(c+=`:${o}`),a.includes("?"))try{let l=new URL(a,"http://localhost"),d=r||[];for(let f of d)l.searchParams.get(f)&&l.searchParams.set(f,eF.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${eF.STR_REDACTED}:${eF.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=TVt;var vVt=(e,t)=>{let n=e===yO.SpanKind.CLIENT?400:500;return t&&t>=100&&t{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")};Tt.satisfiesPattern=AVt;var RVt=(e,t,n)=>{let r=t.message;n&el.SemconvStability.OLD&&(e.setAttribute(tF.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(tF.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&el.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:yO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=RVt;var wVt=(e,t)=>{let n=xPe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setRequestContentLengthAttribute=wVt;var kVt=(e,t)=>{let n=xPe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setResponseContentLengthAttribute=kVt;function xPe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var IVt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=IVt;function xVt(e){let{hostname:t,pathname:n,port:r,username:i,password:s,search:o,protocol:a,hash:c,href:u,origin:l,host:d}=new URL(e),f={protocol:a,hostname:t&&t[0]==="["?t.slice(1,-1):t,hash:c,search:o,pathname:n,path:`${n||""}${o||""}`,href:u,origin:l,host:d};return r!==""&&(f.port=Number(r)),(i||s)&&(f.auth=`${decodeURIComponent(i)}:${decodeURIComponent(s)}`),f}var OVt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=xVt(t);s=c,r=c.pathname||"/"}catch(c){o=!0,e.verbose("Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:",c),s={path:t},r=s.path||"/"}i=`${s.protocol||"http:"}//${s.host}`,n!==void 0&&Object.assign(s,n)}else if(t instanceof EVt.URL)s={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,path:`${t.pathname||""}${t.search||""}`},t.port!==""&&(s.port=Number(t.port)),(t.username||t.password)&&(s.auth=`${t.username}:${t.password}`),r=t.pathname,i=t.origin,n!==void 0&&Object.assign(s,n);else{s=Object.assign({protocol:t.host?"http:":void 0},t);let c=s.host||(s.port!=null?`${s.hostname}${s.port}`:s.hostname);if(i=`${s.protocol||"http:"}//${c}`,r=t.pathname,!r&&s.path)try{r=new URL(s.path,i).pathname||"/"}catch{r="/"}}let a=s.method?s.method.toUpperCase():"GET";return{origin:i,pathname:r,method:a,optionsParsed:s,invalidUrl:o}};Tt.getRequestInfo=OVt;var NVt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=NVt;var PVt=e=>{if(e.hostname&&e.port)return{hostname:e.hostname,port:e.port};let t=e.host?.match(/^([^:/ ]+)(:\d{1,5})?/)||null,n=e.hostname||(t===null?"localhost":t[1]),r=e.port;return r||(t&&t[2]?r=t[2].substring(1):r=e.protocol==="https:"?"443":"80"),{hostname:n,port:r}};Tt.extractHostnameAndPort=PVt;var CVt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=PPe(o),c=e.headers||{},u=c["user-agent"],l=(0,Tt.getAbsoluteUrl)(e,c,`${t.component}:`,t.redactedQueryParams),d={[dt.ATTR_HTTP_URL]:l,[dt.ATTR_HTTP_METHOD]:o,[dt.ATTR_HTTP_TARGET]:e.path||"/",[dt.ATTR_NET_PEER_NAME]:i,[dt.ATTR_HTTP_HOST]:c.host??`${i}:${s}`},f={[fn.ATTR_HTTP_REQUEST_METHOD]:a,[fn.ATTR_SERVER_ADDRESS]:i,[fn.ATTR_SERVER_PORT]:Number(s),[fn.ATTR_URL_FULL]:l,[fn.ATTR_USER_AGENT_ORIGINAL]:u};switch(o!==a&&(f[fn.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=o),r&&u&&(f[dt.ATTR_USER_AGENT_SYNTHETIC_TYPE]=OPe(u)),u!==void 0&&(d[dt.ATTR_HTTP_USER_AGENT]=u),n){case el.SemconvStability.STABLE:return Object.assign(f,t.hookAttributes);case el.SemconvStability.OLD:return Object.assign(d,t.hookAttributes)}return Object.assign(d,f,t.hookAttributes)};Tt.getOutgoingRequestAttributes=CVt;var MVt=e=>{let t={};return t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_PEER_NAME]=e[dt.ATTR_NET_PEER_NAME],t};Tt.getOutgoingRequestMetricAttributes=MVt;var DVt=(e,t)=>{e&&(t[dt.ATTR_HTTP_FLAVOR]=e,e.toUpperCase()!=="QUIC"?t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_TCP:t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_UDP)};Tt.setAttributesFromHttpKind=DVt;var OPe=e=>{let t=String(e).toLowerCase();for(let n of kPe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of kPe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},LVt=(e,t)=>{let{statusCode:n,statusMessage:r,httpVersion:i,socket:s}=e,o={},a={};if(n!=null&&(a[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=n),s){let{remoteAddress:c,remotePort:u}=s;o[dt.ATTR_NET_PEER_IP]=c,o[dt.ATTR_NET_PEER_PORT]=u,a[fn.ATTR_NETWORK_PEER_ADDRESS]=c,a[fn.ATTR_NETWORK_PEER_PORT]=u,a[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e.httpVersion}switch((0,Tt.setResponseContentLengthAttribute)(e,o),n&&(o[dt.ATTR_HTTP_STATUS_CODE]=n,o[tF.AttributeNames.HTTP_STATUS_TEXT]=(r||"").toUpperCase()),(0,Tt.setAttributesFromHttpKind)(i,o),t){case el.SemconvStability.STABLE:return a;case el.SemconvStability.OLD:return o}return Object.assign(o,a)};Tt.getOutgoingRequestAttributesOnResponse=LVt;var UVt=e=>{let t={};return t[dt.ATTR_NET_PEER_PORT]=e[dt.ATTR_NET_PEER_PORT],t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getOutgoingRequestMetricAttributesOnResponse=UVt;var jVt=e=>{let t={};return e[fn.ATTR_NETWORK_PROTOCOL_VERSION]&&(t[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e[fn.ATTR_NETWORK_PROTOCOL_VERSION]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getOutgoingStableRequestMetricAttributesOnResponse=jVt;function ly(e,t){let n=e.split(":");if(n.length===1)return t==="http"?{host:n[0],port:"80"}:t==="https"?{host:n[0],port:"443"}:{host:n[0]};if(n.length===2)return{host:n[0],port:n[1]};if(n[0].startsWith("[")){if(n[n.length-1].endsWith("]")){if(t==="http")return{host:e,port:"80"};if(t==="https")return{host:e,port:"443"}}else if(n[n.length-2].endsWith("]"))return{host:n.slice(0,-1).join(":"),port:n[n.length-1]}}return{host:e}}function FVt(e,t){let n=e.headers.forwarded;if(n){for(let s of CPe(n))if(s.host)return ly(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?ly(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?ly(r,e.headers["x-forwarded-proto"][0]):ly(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?ly(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?ly(r[0],e.headers["x-forwarded-proto"][0]):ly(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?ly(i,t):null}function NPe(e){let t=e.headers.forwarded;if(t){for(let i of CPe(t))if(i.for)return IPe(i.for)}let n=e.headers["x-forwarded-for"];if(n){let i;if(typeof n=="string"?i=n:Array.isArray(n)&&(i=n[0]),typeof i=="string")return i=i.split(",")[0].trim(),IPe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=NPe;function IPe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function HVt(e,t,n){try{if(t.headers.host)return new URL(t.url??"/",`${e}://${t.headers.host}`);{let r=new URL(t.url??"/",`${e}://localhost`);return{pathname:r.pathname,search:r.search,toString:function(){return r.pathname+r.search}}}}catch(r){return n.verbose("Unable to get URL from request",r),{}}}var qVt=(e,t,n)=>{let{component:r,enableSyntheticSourceDetection:i,hookAttributes:s,semconvStability:o,serverName:a}=t,{headers:c,httpVersion:u,method:l}=e,{host:d,"user-agent":f,"x-forwarded-for":p}=c,h=HVt(r,e,n),m,y;if(o!==el.SemconvStability.OLD){let g=PPe(l),E=FVt(e,r),S=NPe(e);m={[fn.ATTR_HTTP_REQUEST_METHOD]:g,[fn.ATTR_URL_SCHEME]:r,[fn.ATTR_SERVER_ADDRESS]:E?.host,[fn.ATTR_NETWORK_PEER_ADDRESS]:e.socket.remoteAddress,[fn.ATTR_NETWORK_PEER_PORT]:e.socket.remotePort,[fn.ATTR_NETWORK_PROTOCOL_VERSION]:e.httpVersion,[fn.ATTR_USER_AGENT_ORIGINAL]:f},h.pathname!=null&&(m[fn.ATTR_URL_PATH]=h.pathname),h.search&&(m[fn.ATTR_URL_QUERY]=h.search.slice(1)),S!=null&&(m[fn.ATTR_CLIENT_ADDRESS]=S),E?.port!=null&&(m[fn.ATTR_SERVER_PORT]=Number(E.port)),l!==g&&(m[fn.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=l),i&&f&&(m[dt.ATTR_USER_AGENT_SYNTHETIC_TYPE]=OPe(f))}if(o!==el.SemconvStability.STABLE){let g=d?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost";y={[dt.ATTR_HTTP_URL]:h.toString(),[dt.ATTR_HTTP_HOST]:d,[dt.ATTR_NET_HOST_NAME]:g,[dt.ATTR_HTTP_METHOD]:l,[dt.ATTR_HTTP_SCHEME]:r},typeof p=="string"&&(y[dt.ATTR_HTTP_CLIENT_IP]=p.split(",")[0]),typeof a=="string"&&(y[dt.ATTR_HTTP_SERVER_NAME]=a),h.pathname&&(y[dt.ATTR_HTTP_TARGET]=h.pathname+h.search||"/"),f!==void 0&&(y[dt.ATTR_HTTP_USER_AGENT]=f),(0,Tt.setRequestContentLengthAttribute)(e,y),(0,Tt.setAttributesFromHttpKind)(u,y)}switch(o){case el.SemconvStability.STABLE:return Object.assign(m,s);case el.SemconvStability.OLD:return Object.assign(y,s);default:return Object.assign(y,m,s)}};Tt.getIncomingRequestAttributes=qVt;var BVt=e=>{let t={};return t[dt.ATTR_HTTP_SCHEME]=e[dt.ATTR_HTTP_SCHEME],t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_HOST_NAME]=e[dt.ATTR_NET_HOST_NAME],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getIncomingRequestMetricAttributes=BVt;var GVt=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,wPe.getRPCMetadata)(yO.context.active()),c={};if(r){let{localAddress:u,localPort:l,remoteAddress:d,remotePort:f}=r;c[dt.ATTR_NET_HOST_IP]=u,c[dt.ATTR_NET_HOST_PORT]=l,c[dt.ATTR_NET_PEER_IP]=d,c[dt.ATTR_NET_PEER_PORT]=f}switch(c[dt.ATTR_HTTP_STATUS_CODE]=i,c[tF.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===wPe.RPCType.HTTP&&a.route!==void 0&&(c[fn.ATTR_HTTP_ROUTE]=a.route,o[fn.ATTR_HTTP_ROUTE]=a.route),n){case el.SemconvStability.STABLE:return o;case el.SemconvStability.OLD:return c}return Object.assign(c,o)};Tt.getIncomingRequestAttributesOnResponse=GVt;var zVt=e=>{let t={};return t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_NET_HOST_PORT]=e[dt.ATTR_NET_HOST_PORT],e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),t};Tt.getIncomingRequestMetricAttributesOnResponse=zVt;var VVt=e=>{let t={};return e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getIncomingStableRequestMetricAttributesOnResponse=VVt;function WVt(e,t,n){let r=new Map;for(let i=0,s=t.length;i{let s={};for(let o of r.keys()){let a=i(o);if(a===void 0)continue;let c=r.get(o),u=`http.${e}.header.${c}`;typeof a=="string"?s[u]=[a]:Array.isArray(a)?s[u]=a:s[u]=[a]}return s}}Tt.headerCapture=WVt;var KVt=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function PPe(e){if(e==null)return"GET";let t=e.toUpperCase();return KVt.has(t)?t:"_OTHER"}function CPe(e){try{return bVt(e)}catch{return[]}}});var DPe=w(nF=>{"use strict";Object.defineProperty(nF,"__esModule",{value:!0});nF.HttpInstrumentation=void 0;var $t=(Me(),Ie(Ze)),dy=dr(),ZVt=Y("url"),YVt=hNe(),Po=Yt(),QJ=Y("events"),ki=(xn(),Ie(Mr)),As=MPe(),$J=class extends Po.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Po.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",YVt.VERSION,t),this._semconvStability=(0,Po.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._headerCapture=this._createHeaderCapture(this._semconvStability)}_updateMetricInstruments(){this._oldHttpServerDurationHistogram=this.meter.createHistogram("http.server.duration",{description:"Measures the duration of inbound HTTP requests.",unit:"ms",valueType:$t.ValueType.DOUBLE}),this._oldHttpClientDurationHistogram=this.meter.createHistogram("http.client.duration",{description:"Measures the duration of outbound HTTP requests.",unit:"ms",valueType:$t.ValueType.DOUBLE}),this._stableHttpServerDurationHistogram=this.meter.createHistogram(ki.METRIC_HTTP_SERVER_REQUEST_DURATION,{description:"Duration of HTTP server requests.",unit:"s",valueType:$t.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}}),this._stableHttpClientDurationHistogram=this.meter.createHistogram(ki.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Duration of HTTP client requests.",unit:"s",valueType:$t.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}_recordServerDuration(t,n,r){this._semconvStability&Po.SemconvStability.OLD&&this._oldHttpServerDurationHistogram.record(t,n),this._semconvStability&Po.SemconvStability.STABLE&&this._stableHttpServerDurationHistogram.record(t/1e3,r)}_recordClientDuration(t,n,r){this._semconvStability&Po.SemconvStability.OLD&&this._oldHttpClientDurationHistogram.record(t,n),this._semconvStability&Po.SemconvStability.STABLE&&this._stableHttpClientDurationHistogram.record(t/1e3,r)}setConfig(t={}){super.setConfig(t),this._headerCapture=this._createHeaderCapture(this._semconvStability)}init(){return[this._getHttpsInstrumentation(),this._getHttpInstrumentation()]}_getHttpInstrumentation(){return new Po.InstrumentationNodeModuleDefinition("http",["*"],t=>{if(this._httpPatched)return t;this._httpPatched=!0;let n=t[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let r=this._wrap(t,"request",this._getPatchOutgoingRequestFunction("http")),i=this._wrap(t,"get",this._getPatchOutgoingGetFunction(r));n&&(t.default.request=r,t.default.get=i)}return this.getConfig().disableIncomingRequestInstrumentation||this._wrap(t.Server.prototype,"emit",this._getPatchIncomingRequestFunction("http")),t},t=>{this._httpPatched=!1,t!==void 0&&(this.getConfig().disableOutgoingRequestInstrumentation||(this._unwrap(t,"request"),this._unwrap(t,"get")),this.getConfig().disableIncomingRequestInstrumentation||this._unwrap(t.Server.prototype,"emit"))})}_getHttpsInstrumentation(){return new Po.InstrumentationNodeModuleDefinition("https",["*"],t=>{if(this._httpsPatched)return t;this._httpsPatched=!0;let n=t[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let r=this._wrap(t,"request",this._getPatchHttpsOutgoingRequestFunction("https")),i=this._wrap(t,"get",this._getPatchHttpsOutgoingGetFunction(r));n&&(t.default.request=r,t.default.get=i)}return this.getConfig().disableIncomingRequestInstrumentation||this._wrap(t.Server.prototype,"emit",this._getPatchIncomingRequestFunction("https")),t},t=>{this._httpsPatched=!1,t!==void 0&&(this.getConfig().disableOutgoingRequestInstrumentation||(this._unwrap(t,"request"),this._unwrap(t,"get")),this.getConfig().disableIncomingRequestInstrumentation||this._unwrap(t.Server.prototype,"emit"))})}_getPatchIncomingRequestFunction(t){return n=>this._incomingRequestFunction(t,n)}_getPatchOutgoingRequestFunction(t){return n=>this._outgoingRequestFunction(t,n)}_getPatchOutgoingGetFunction(t){return n=>function(i,...s){let o=t(i,...s);return o.end(),o}}_getPatchHttpsOutgoingRequestFunction(t){return n=>{let r=this;return function(s,...o){return t==="https"&&typeof s=="object"&&s?.constructor?.name!=="URL"&&(s=Object.assign({},s),r._setDefaultOptions(s)),r._getPatchOutgoingRequestFunction(t)(n)(s,...o)}}}_setDefaultOptions(t){t.protocol=t.protocol||"https:",t.port=t.port||443}_getPatchHttpsOutgoingGetFunction(t){return n=>{let r=this;return function(s,...o){return r._getPatchOutgoingGetFunction(t)(n)(s,...o)}}}_traceClientRequest(t,n,r,i,s){this.getConfig().requestHook&&this._callRequestHook(n,t);let o=!1;return t.prependListener("response",a=>{this._diag.debug("outgoingRequest on response()"),t.listenerCount("response")<=1&&a.resume();let c=(0,As.getOutgoingRequestAttributesOnResponse)(a,this._semconvStability);n.setAttributes(c),i=Object.assign(i,(0,As.getOutgoingRequestMetricAttributesOnResponse)(c)),s=Object.assign(s,(0,As.getOutgoingStableRequestMetricAttributesOnResponse)(c)),this.getConfig().responseHook&&this._callResponseHook(n,a),n.setAttributes(this._headerCapture.client.captureRequestHeaders(l=>t.getHeader(l))),n.setAttributes(this._headerCapture.client.captureResponseHeaders(l=>a.headers[l])),$t.context.bind($t.context.active(),a);let u=()=>{if(this._diag.debug("outgoingRequest on end()"),o)return;o=!0;let l;a.aborted&&!a.complete?l={code:$t.SpanStatusCode.ERROR}:l={code:(0,As.parseResponseStatus)($t.SpanKind.CLIENT,a.statusCode)},n.setStatus(l),this.getConfig().applyCustomAttributesOnSpan&&(0,Po.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(n,t,a),()=>{},!0),this._closeHttpSpan(n,$t.SpanKind.CLIENT,r,i,s)};a.on("end",u),a.on(QJ.errorMonitor,l=>{this._diag.debug("outgoingRequest on error()",l),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,l))})}),t.on("close",()=>{this._diag.debug("outgoingRequest on request close()"),!(t.aborted||o)&&(o=!0,this._closeHttpSpan(n,$t.SpanKind.CLIENT,r,i,s))}),t.on(QJ.errorMonitor,a=>{this._diag.debug("outgoingRequest on request error()",a),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,a))}),this._diag.debug("http.ClientRequest return request"),t}_incomingRequestFunction(t,n){let r=this;return function(s,...o){if(s!=="request")return n.apply(this,[s,...o]);let a=o[0],c=o[1],u=a.method||"GET";if(r._diag.debug(`${t} instrumentation incomingRequest`),(0,Po.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreIncomingRequestHook?.(a),S=>{S!=null&&r._diag.error("caught ignoreIncomingRequestHook error: ",S)},!0))return $t.context.with((0,dy.suppressTracing)($t.context.active()),()=>($t.context.bind($t.context.active(),a),$t.context.bind($t.context.active(),c),n.apply(this,[s,...o])));let l=a.headers,d=(0,As.getIncomingRequestAttributes)(a,{component:t,serverName:r.getConfig().serverName,hookAttributes:r._callStartSpanHook(a,r.getConfig().startIncomingSpanHook),semconvStability:r._semconvStability,enableSyntheticSourceDetection:r.getConfig().enableSyntheticSourceDetection||!1},r._diag);Object.assign(d,r._headerCapture.server.captureRequestHeaders(S=>a.headers[S]));let f={kind:$t.SpanKind.SERVER,attributes:d},p=(0,dy.hrTime)(),h=(0,As.getIncomingRequestMetricAttributes)(d),m={[ki.ATTR_HTTP_REQUEST_METHOD]:d[ki.ATTR_HTTP_REQUEST_METHOD],[ki.ATTR_URL_SCHEME]:d[ki.ATTR_URL_SCHEME]};d[ki.ATTR_NETWORK_PROTOCOL_VERSION]&&(m[ki.ATTR_NETWORK_PROTOCOL_VERSION]=d[ki.ATTR_NETWORK_PROTOCOL_VERSION]);let y=$t.propagation.extract($t.ROOT_CONTEXT,l),g=r._startHttpSpan(u,f,y),E={type:dy.RPCType.HTTP,span:g};return $t.context.with((0,dy.setRPCMetadata)($t.trace.setSpan(y,g),E),()=>{$t.context.bind($t.context.active(),a),$t.context.bind($t.context.active(),c),r.getConfig().requestHook&&r._callRequestHook(g,a),r.getConfig().responseHook&&r._callResponseHook(g,c);let S=!1;return c.on("close",()=>{S||r._onServerResponseFinish(a,c,g,h,m,p)}),c.on(QJ.errorMonitor,_=>{S=!0,r._onServerResponseError(g,h,m,p,_)}),(0,Po.safeExecuteInTheMiddle)(()=>n.apply(this,[s,...o]),_=>{if(_)throw r._onServerResponseError(g,h,m,p,_),_})})}}_outgoingRequestFunction(t,n){let r=this;return function(s,...o){if(!(0,As.isValidOptionsType)(s))return n.apply(this,[s,...o]);let a=typeof o[0]=="object"&&(typeof s=="string"||s instanceof ZVt.URL)?o.shift():void 0,{method:c,invalidUrl:u,optionsParsed:l}=(0,As.getRequestInfo)(r._diag,s,a);if((0,Po.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreOutgoingRequestHook?.(l),b=>{b!=null&&r._diag.error("caught ignoreOutgoingRequestHook error: ",b)},!0))return n.apply(this,[l,...o]);let{hostname:d,port:f}=(0,As.extractHostnameAndPort)(l),p=(0,As.getOutgoingRequestAttributes)(l,{component:t,port:f,hostname:d,hookAttributes:r._callStartSpanHook(l,r.getConfig().startOutgoingSpanHook),redactedQueryParams:r.getConfig().redactedQueryParams},r._semconvStability,r.getConfig().enableSyntheticSourceDetection||!1),h=(0,dy.hrTime)(),m=(0,As.getOutgoingRequestMetricAttributes)(p),y={[ki.ATTR_HTTP_REQUEST_METHOD]:p[ki.ATTR_HTTP_REQUEST_METHOD],[ki.ATTR_SERVER_ADDRESS]:p[ki.ATTR_SERVER_ADDRESS],[ki.ATTR_SERVER_PORT]:p[ki.ATTR_SERVER_PORT]};p[ki.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(y[ki.ATTR_HTTP_RESPONSE_STATUS_CODE]=p[ki.ATTR_HTTP_RESPONSE_STATUS_CODE]),p[ki.ATTR_NETWORK_PROTOCOL_VERSION]&&(y[ki.ATTR_NETWORK_PROTOCOL_VERSION]=p[ki.ATTR_NETWORK_PROTOCOL_VERSION]);let g={kind:$t.SpanKind.CLIENT,attributes:p},E=r._startHttpSpan(c,g),S=$t.context.active(),_=$t.trace.setSpan(S,E);return l.headers?l.headers=Object.assign({},l.headers):l.headers={},$t.propagation.inject(_,l.headers),$t.context.with(_,()=>{let b=o[o.length-1];typeof b=="function"&&(o[o.length-1]=$t.context.bind(S,b));let T=(0,Po.safeExecuteInTheMiddle)(()=>u?n.apply(this,[s,...o]):n.apply(this,[l,...o]),A=>{if(A)throw r._onOutgoingRequestError(E,m,y,h,A),A});return r._diag.debug(`${t} instrumentation outgoingRequest`),$t.context.bind(S,T),r._traceClientRequest(T,E,h,m,y)})}}_onServerResponseFinish(t,n,r,i,s,o){let a=(0,As.getIncomingRequestAttributesOnResponse)(t,n,this._semconvStability);i=Object.assign(i,(0,As.getIncomingRequestMetricAttributesOnResponse)(a)),s=Object.assign(s,(0,As.getIncomingStableRequestMetricAttributesOnResponse)(a)),r.setAttributes(this._headerCapture.server.captureResponseHeaders(u=>n.getHeader(u))),r.setAttributes(a).setStatus({code:(0,As.parseResponseStatus)($t.SpanKind.SERVER,n.statusCode)});let c=a[ki.ATTR_HTTP_ROUTE];c&&r.updateName(`${t.method||"GET"} ${c}`),this.getConfig().applyCustomAttributesOnSpan&&(0,Po.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(r,t,n),()=>{},!0),this._closeHttpSpan(r,$t.SpanKind.SERVER,o,i,s)}_onOutgoingRequestError(t,n,r,i,s){(0,As.setSpanWithError)(t,s,this._semconvStability),r[ki.ATTR_ERROR_TYPE]=s.name,this._closeHttpSpan(t,$t.SpanKind.CLIENT,i,n,r)}_onServerResponseError(t,n,r,i,s){(0,As.setSpanWithError)(t,s,this._semconvStability),r[ki.ATTR_ERROR_TYPE]=s.name,this._closeHttpSpan(t,$t.SpanKind.SERVER,i,n,r)}_startHttpSpan(t,n,r=$t.context.active()){let i=n.kind===$t.SpanKind.CLIENT?this.getConfig().requireParentforOutgoingSpans:this.getConfig().requireParentforIncomingSpans,s,o=$t.trace.getSpan(r);return i===!0&&(!o||!$t.trace.isSpanContextValid(o.spanContext()))?s=$t.trace.wrapSpanContext($t.INVALID_SPAN_CONTEXT):i===!0&&o?.spanContext().isRemote?s=o:s=this.tracer.startSpan(t,n,r),this._spanNotEnded.add(s),s}_closeHttpSpan(t,n,r,i,s){if(!this._spanNotEnded.has(t))return;t.end(),this._spanNotEnded.delete(t);let o=(0,dy.hrTimeToMilliseconds)((0,dy.hrTimeDuration)(r,(0,dy.hrTime)()));n===$t.SpanKind.SERVER?this._recordServerDuration(o,i,s):n===$t.SpanKind.CLIENT&&this._recordClientDuration(o,i,s)}_callResponseHook(t,n){(0,Po.safeExecuteInTheMiddle)(()=>this.getConfig().responseHook(t,n),()=>{},!0)}_callRequestHook(t,n){(0,Po.safeExecuteInTheMiddle)(()=>this.getConfig().requestHook(t,n),()=>{},!0)}_callStartSpanHook(t,n){if(typeof n=="function")return(0,Po.safeExecuteInTheMiddle)(()=>n(t),()=>{},!0)}_createHeaderCapture(t){let n=this.getConfig();return{client:{captureRequestHeaders:(0,As.headerCapture)("request",n.headersToSpanAttributes?.client?.requestHeaders??[],t),captureResponseHeaders:(0,As.headerCapture)("response",n.headersToSpanAttributes?.client?.responseHeaders??[],t)},server:{captureRequestHeaders:(0,As.headerCapture)("request",n.headersToSpanAttributes?.server?.requestHeaders??[],t),captureResponseHeaders:(0,As.headerCapture)("response",n.headersToSpanAttributes?.server?.responseHeaders??[],t)}}}};nF.HttpInstrumentation=$J});var LPe=w(rF=>{"use strict";Object.defineProperty(rF,"__esModule",{value:!0});rF.HttpInstrumentation=void 0;var JVt=DPe();Object.defineProperty(rF,"HttpInstrumentation",{enumerable:!0,get:function(){return JVt.HttpInstrumentation}})});var Le,Ii=v(()=>{Le=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var Bt,Fa=v(()=>{Bt=globalThis});var On,iF=v(()=>{On="10.47.0"});function wc(){return fy(Bt),Bt}function fy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||On,t[On]=t[On]||{}}function Xd(e,t,n=Bt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[On]=r[On]||{};return i[e]||(i[e]=t())}var jl=v(()=>{iF();Fa()});function Rs(e){if(!("console"in Bt))return e();let t=Bt.console,n={},r=Object.keys(EA);r.forEach(i=>{let s=EA[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function QVt(){t7().enabled=!0}function $Vt(){t7().enabled=!1}function UPe(){return t7().enabled}function eWt(...e){e7("log",...e)}function tWt(...e){e7("warn",...e)}function nWt(...e){e7("error",...e)}function e7(e,...t){Le&&UPe()&&Rs(()=>{Bt.console[e](`${XVt}[${e}]:`,...t)})}function t7(){return Le?Xd("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var SO,XVt,EA,J,_r=v(()=>{jl();Ii();Fa();SO=["debug","info","warn","error","log","assert","trace"],XVt="Sentry Logger ",EA={};J={enable:QVt,disable:$Vt,isEnabled:UPe,log:eWt,warn:tWt,error:nWt}});function oF(...e){let t=e.sort((n,r)=>n[0]-r[0]).map(n=>n[1]);return(n,r=0,i=0)=>{let s=[],o=n.split(` -`);for(let a=r;a1024&&(c=c.slice(0,1024));let u=jPe.test(c)?c.replace(jPe,"$1"):c;if(!u.match(/\S*Error: /)){for(let l of t){let d=l(u);if(d){s.push(d);break}}if(s.length>=50+i)break}}return HPe(s.slice(i))}}function r7(e){return Array.isArray(e)?oF(...e):e}function HPe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(sF(t).function||"")&&t.pop(),t.reverse(),FPe.test(sF(t).function||"")&&(t.pop(),FPe.test(sF(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||sF(t).filename,function:n.function||"?"}))}function sF(e){return e[e.length-1]||{}}function _O(e){try{return!e||typeof e!="function"?n7:e.name||n7}catch{return n7}}function aF(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function qPe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var jPe,FPe,n7,bA=v(()=>{jPe=/\(error: (.*)\)/,FPe=/captureMessage|captureException/;n7=""});function TA(e,t){cF[e]=cF[e]||[],cF[e].push(t)}function vA(e,t){if(!BPe[e]){BPe[e]=!0;try{t()}catch(n){Le&&J.error(`Error while instrumenting ${e}`,n)}}}function AA(e,t){let n=e&&cF[e];if(n)for(let r of n)try{r(t)}catch(i){Le&&J.error(`Error while triggering instrumentation handler. +`+s),e.push(i+"m+"+ij.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=R2t()+t+" "+e[0]}function R2t(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function w2t(...e){return process.stderr.write(rj.formatWithOptions(Co.inspectOpts,...e)+` +`)}function k2t(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function I2t(){return process.env.DEBUG}function x2t(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};_Ne.O=function(e){return this.inspectOpts.colors=this.useColors,rj.inspect(e,this.inspectOpts)}});var YJ=w((dSr,KJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?KJ.exports=mNe():KJ.exports=bNe()});var yO=w((fSr,TNe)=>{"use strict";var ZJ=Y("path").sep;TNe.exports=function(e){var t=e.split(ZJ),n=t.lastIndexOf("node_modules");if(n!==-1&&t[n+1]){for(var r=t[n+1][0]==="@",i=r?t[n+1]+"/"+t[n+2]:t[n+1],s=r?3:2,o="",a=n+s-1,c=0;c<=a;c++)c===a?o+=t[c]:o+=t[c]+ZJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+ZJ;return{name:i,basedir:o,path:u}}}});var T_=w((pSr,QJ)=>{"use strict";var _A=Y("path"),Qd=Y("module"),ks=YJ()("require-in-the-middle"),O2t=yO();QJ.exports=SO;QJ.exports.Hook=SO;var JJ,sj;if(Qd.isBuiltin)sj=Qd.isBuiltin;else if(Qd.builtinModules)sj=e=>e.startsWith("node:")?!0:(JJ===void 0&&(JJ=new Set(Qd.builtinModules)),JJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var P2t=/([/\\]index)?(\.js)?$/,XJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=Y.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=Y.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in Y.cache?Y.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function SO(e,t,n){if(!(this instanceof SO))return new SO(e,t,n);if(typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),typeof Qd._resolveFilename!="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof Qd._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new XJ,this._unhooked=!1,this._origRequire=Qd.prototype.require;let r=this,i=new Set,s=t?t.internals===!0:!1,o=Array.isArray(e);ks("registering require hook"),this._require=Qd.prototype.require=function(c){return r._unhooked===!0?(ks("ignoring require call - module is soft-unhooked"),r._origRequire.apply(this,arguments)):a.call(this,arguments,!1)},typeof process.getBuiltinModule=="function"&&(this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(c){return r._unhooked===!0?(ks("ignoring process.getBuiltinModule call - module is soft-unhooked"),r._origGetBuiltinModule.apply(this,arguments)):a.call(this,arguments,!0)});function a(c,u){let l=c[0],d=sj(l),f;if(d){if(f=l,l.startsWith("node:")){let E=l.slice(5);sj(E)&&(f=E)}}else{if(u)return ks("call to process.getBuiltinModule with unknown built-in id"),r._origGetBuiltinModule.apply(this,c);try{f=Qd._resolveFilename(l,this)}catch(E){return ks('Module._resolveFilename("%s") threw %j, calling original Module.require',l,E.message),r._origRequire.apply(this,c)}}let p,h;if(ks("processing %s module require('%s'): %s",d===!0?"core":"non-core",l,f),r._cache.has(f,d)===!0)return ks("returning already patched cached module: %s",f),r._cache.get(f,d);let m=i.has(f);m===!1&&i.add(f);let g=u?r._origGetBuiltinModule.apply(this,c):r._origRequire.apply(this,c);if(m===!0)return ks("module is in the process of being patched already - ignoring: %s",f),g;if(i.delete(f),d===!0){if(o===!0&&e.includes(f)===!1)return ks("ignoring core module not on whitelist: %s",f),g;p=f}else if(o===!0&&e.includes(f)){let E=_A.parse(f);p=E.name,h=E.dir}else{let E=O2t(f);if(E===void 0)return ks("could not parse filename: %s",f),g;p=E.name,h=E.basedir;let S=N2t(E);ks("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",p,l,S,h);let _=!1;if(o){if(!l.startsWith(".")&&e.includes(l)&&(p=l,_=!0),!e.includes(p)&&!e.includes(S))return g;e.includes(S)&&S!==p&&(p=S,_=!0)}if(!_){let b;try{b=Y.resolve(p,{paths:[h]})}catch{return ks("could not resolve module: %s",p),r._cache.set(f,g,d),g}if(b!==f)if(s===!0)p=p+_A.sep+_A.relative(h,f),ks("preparing to process require of internal file: %s",p);else return ks("ignoring require of non-main module file: %s",b),r._cache.set(f,g,d),g}}r._cache.set(f,g,d),ks("calling require hook: %s",p);let y=n(g,p,h);return r._cache.set(f,y,d),ks("returning module: %s",p),y}}SO.prototype.unhook=function(){this._unhooked=!0,this._require===Qd.prototype.require?(Qd.prototype.require=this._origRequire,ks("require unhook successful")):ks("require unhook unsuccessful"),process.getBuiltinModule!==void 0&&(this._getBuiltinModule===process.getBuiltinModule?(process.getBuiltinModule=this._origGetBuiltinModule,ks("process.getBuiltinModule unhook successful")):ks("process.getBuiltinModule unhook unsuccessful"))};function N2t(e){let t=_A.sep!=="/"?e.path.split(_A.sep).join("/"):e.path;return _A.posix.join(e.name,t).replace(P2t,"")}});var vNe=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.ModuleNameTrie=fy.ModuleNameSeparator=void 0;fy.ModuleNameSeparator="/";var oj=class{hooks=[];children=new Map},$J=class{_trie=new oj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(fy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new oj,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(fy.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};fy.ModuleNameTrie=$J});var RNe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.RequireInTheMiddleSingleton=void 0;var C2t=T_(),ANe=Y("path"),e7=vNe(),M2t=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),t7=class e{_moduleNameTrie=new e7.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new C2t.Hook(null,{internals:!0},(t,n,r)=>{let i=D2t(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return M2t?new e:this._instance=this._instance??new e}};aj.RequireInTheMiddleSingleton=t7;function D2t(e){return ANe.sep!==e7.ModuleNameSeparator?e.split(ANe.sep).join(e7.ModuleNameSeparator):e}});var ONe=w(EO=>{var wNe=[],n7=new WeakMap,kNe=new WeakMap,INe=new Map,xNe=[],L2t={set(e,t,n){let r=n7.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=kNe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=n7.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function U2t(e,t,n,r,i){INe.set(e,i),n7.set(t,n),kNe.set(t,r);let s=new Proxy(t,L2t);wNe.forEach(o=>o(e,s,i)),xNe.push([e,s,i])}EO.register=U2t;EO.importHooks=wNe;EO.specifiers=INe;EO.toHook=xNe});var o7=w((SSr,TA)=>{var PNe=Y("path"),F2t=yO(),{fileURLToPath:j2t}=Y("url"),{MessageChannel:H2t}=Y("worker_threads"),{isBuiltin:r7}=Y("module");r7||(r7=()=>!0);var{importHooks:i7,specifiers:NNe,toHook:q2t}=ONe();function B2t(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function CNe(e){i7.push(e),q2t.forEach(([t,n,r])=>e(t,n,r))}function MNe(e){let t=i7.indexOf(e);t>-1&&i7.splice(t,1)}function bA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var s7;function G2t(){let{port1:e,port2:t}=new H2t,n=0,r;s7=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function _O(e,t,n){if(!(this instanceof _O))return new _O(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;s7&&Array.isArray(e)&&s7(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);r7(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=j2t(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=F2t(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)bA(n,s,u,void 0);else if(d===i){if(!l)bA(n,s,i,l);else if(l.endsWith(NNe.get(a))||B2t(NNe.get(a),l))bA(n,s,i,l);else if(r){let f=i+PNe.sep+PNe.relative(l,u);bA(n,s,f,l)}}else d===o&&bA(n,s,o,l);else bA(n,s,i,l)},CNe(this._iitmHook)}_O.prototype.unhook=function(){MNe(this._iitmHook)};TA.exports=_O;TA.exports.Hook=_O;TA.exports.addHook=CNe;TA.exports.removeHook=MNe;TA.exports.createAddHookMessageChannel=G2t});var a7=w(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.isWrapped=py.safeExecuteInTheMiddleAsync=py.safeExecuteInTheMiddle=void 0;function z2t(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}py.safeExecuteInTheMiddle=z2t;async function V2t(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}py.safeExecuteInTheMiddleAsync=V2t;function W2t(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}py.isWrapped=W2t});var UNe=w(cj=>{"use strict";Object.defineProperty(cj,"__esModule",{value:!0});cj.InstrumentationBase=void 0;var bO=Y("path"),DNe=Y("util"),K2t=lNe(),c7=qJ(),Y2t=dNe(),Z2t=RNe(),J2t=o7(),TO=(Ce(),ke(Ze)),X2t=T_(),Q2t=Y("fs"),$2t=a7(),u7=class extends Y2t.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Z2t.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,$2t.isWrapped)(t[n])&&this._unwrap(t,n),DNe.types.isProxy(t)){let i=(0,c7.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,c7.wrap)(t,n,r)};_unwrap=(t,n)=>DNe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,c7.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{TO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){TO.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{TO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){TO.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){let t=globalThis.require;!t?.resolve||!t?.cache||this._modules.forEach(n=>{let{name:r}=n;try{let i=t.resolve(r);t.cache[i]?.loaded&&this._diag.warn(`Module ${r} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${r}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,Q2t.readFileSync)(bO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{TO.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return LNe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=bO.normalize(r);return o.filter(u=>u.name===a&&LNe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&bO.isAbsolute(a)){let u=bO.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=bO.isAbsolute(t.name)?new X2t.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new J2t.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};cj.InstrumentationBase=u7;function LNe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,K2t.satisfies)(t,r,{includePrerelease:n}))}});var FNe=w(uj=>{"use strict";Object.defineProperty(uj,"__esModule",{value:!0});uj.normalize=void 0;var eWt=Y("path");Object.defineProperty(uj,"normalize",{enumerable:!0,get:function(){return eWt.normalize}})});var jNe=w(vA=>{"use strict";Object.defineProperty(vA,"__esModule",{value:!0});vA.normalize=vA.InstrumentationBase=void 0;var tWt=UNe();Object.defineProperty(vA,"InstrumentationBase",{enumerable:!0,get:function(){return tWt.InstrumentationBase}});var nWt=FNe();Object.defineProperty(vA,"normalize",{enumerable:!0,get:function(){return nWt.normalize}})});var l7=w(AA=>{"use strict";Object.defineProperty(AA,"__esModule",{value:!0});AA.normalize=AA.InstrumentationBase=void 0;var HNe=jNe();Object.defineProperty(AA,"InstrumentationBase",{enumerable:!0,get:function(){return HNe.InstrumentationBase}});Object.defineProperty(AA,"normalize",{enumerable:!0,get:function(){return HNe.normalize}})});var qNe=w(lj=>{"use strict";Object.defineProperty(lj,"__esModule",{value:!0});lj.InstrumentationNodeModuleDefinition=void 0;var d7=class{files;name;supportedVersions;patch;unpatch;constructor(t,n,r,i,s){this.files=s||[],this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i}};lj.InstrumentationNodeModuleDefinition=d7});var BNe=w(dj=>{"use strict";Object.defineProperty(dj,"__esModule",{value:!0});dj.InstrumentationNodeModuleFile=void 0;var rWt=l7(),f7=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,rWt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};dj.InstrumentationNodeModuleFile=f7});var GNe=w(v_=>{"use strict";Object.defineProperty(v_,"__esModule",{value:!0});v_.semconvStabilityFromStr=v_.SemconvStability=void 0;var fj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(fj=v_.SemconvStability||(v_.SemconvStability={}));function iWt(e,t){let n=fj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=fj.DUPLICATE;break}else i.toLowerCase()===e&&(n=fj.STABLE);return n}v_.semconvStabilityFromStr=iWt});var Jt=w(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});Bs.semconvStabilityFromStr=Bs.SemconvStability=Bs.safeExecuteInTheMiddleAsync=Bs.safeExecuteInTheMiddle=Bs.isWrapped=Bs.InstrumentationNodeModuleFile=Bs.InstrumentationNodeModuleDefinition=Bs.InstrumentationBase=Bs.registerInstrumentations=void 0;var sWt=tNe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return sWt.registerInstrumentations}});var oWt=l7();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return oWt.InstrumentationBase}});var aWt=qNe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return aWt.InstrumentationNodeModuleDefinition}});var cWt=BNe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return cWt.InstrumentationNodeModuleFile}});var p7=a7();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return p7.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return p7.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return p7.safeExecuteInTheMiddleAsync}});var zNe=GNe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return zNe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return zNe.semconvStabilityFromStr}})});var VNe=w(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.HTTP_FLAVOR_VALUE_HTTP_1_1=Et.NET_TRANSPORT_VALUE_IP_UDP=Et.NET_TRANSPORT_VALUE_IP_TCP=Et.ATTR_NET_TRANSPORT=Et.ATTR_NET_PEER_PORT=Et.ATTR_NET_PEER_NAME=Et.ATTR_NET_PEER_IP=Et.ATTR_NET_HOST_PORT=Et.ATTR_NET_HOST_NAME=Et.ATTR_NET_HOST_IP=Et.ATTR_HTTP_USER_AGENT=Et.ATTR_HTTP_URL=Et.ATTR_HTTP_TARGET=Et.ATTR_HTTP_STATUS_CODE=Et.ATTR_HTTP_SERVER_NAME=Et.ATTR_HTTP_SCHEME=Et.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=Et.ATTR_HTTP_RESPONSE_CONTENT_LENGTH=Et.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=Et.ATTR_HTTP_REQUEST_CONTENT_LENGTH=Et.ATTR_HTTP_METHOD=Et.ATTR_HTTP_HOST=Et.ATTR_HTTP_FLAVOR=Et.ATTR_HTTP_CLIENT_IP=Et.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST=Et.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT=Et.ATTR_USER_AGENT_SYNTHETIC_TYPE=void 0;Et.ATTR_USER_AGENT_SYNTHETIC_TYPE="user_agent.synthetic.type";Et.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT="bot";Et.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST="test";Et.ATTR_HTTP_CLIENT_IP="http.client_ip";Et.ATTR_HTTP_FLAVOR="http.flavor";Et.ATTR_HTTP_HOST="http.host";Et.ATTR_HTTP_METHOD="http.method";Et.ATTR_HTTP_REQUEST_CONTENT_LENGTH="http.request_content_length";Et.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED="http.request_content_length_uncompressed";Et.ATTR_HTTP_RESPONSE_CONTENT_LENGTH="http.response_content_length";Et.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED="http.response_content_length_uncompressed";Et.ATTR_HTTP_SCHEME="http.scheme";Et.ATTR_HTTP_SERVER_NAME="http.server_name";Et.ATTR_HTTP_STATUS_CODE="http.status_code";Et.ATTR_HTTP_TARGET="http.target";Et.ATTR_HTTP_URL="http.url";Et.ATTR_HTTP_USER_AGENT="http.user_agent";Et.ATTR_NET_HOST_IP="net.host.ip";Et.ATTR_NET_HOST_NAME="net.host.name";Et.ATTR_NET_HOST_PORT="net.host.port";Et.ATTR_NET_PEER_IP="net.peer.ip";Et.ATTR_NET_PEER_NAME="net.peer.name";Et.ATTR_NET_PEER_PORT="net.peer.port";Et.ATTR_NET_TRANSPORT="net.transport";Et.NET_TRANSPORT_VALUE_IP_TCP="ip_tcp";Et.NET_TRANSPORT_VALUE_IP_UDP="ip_udp";Et.HTTP_FLAVOR_VALUE_HTTP_1_1="1.1"});var WNe=w(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});vO.AttributeNames=void 0;var uWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(uWt=vO.AttributeNames||(vO.AttributeNames={}))});var h7=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.DEFAULT_QUERY_STRINGS_TO_REDACT=Np.STR_REDACTED=Np.SYNTHETIC_BOT_NAMES=Np.SYNTHETIC_TEST_NAMES=void 0;Np.SYNTHETIC_TEST_NAMES=["alwayson"];Np.SYNTHETIC_BOT_NAMES=["googlebot","bingbot"];Np.STR_REDACTED="REDACTED";Np.DEFAULT_QUERY_STRINGS_TO_REDACT=["sig","Signature","AWSAccessKeyId","X-Goog-Signature"]});var YNe=w((PSr,KNe)=>{"use strict";var lWt=Y("util");function m7(e,t){Error.captureStackTrace(this,m7),this.name=this.constructor.name,this.message=e,this.input=t}lWt.inherits(m7,Error);KNe.exports=m7});var JNe=w((NSr,ZNe)=>{"use strict";function dWt(e){return e===34||e===40||e===41||e===44||e===47||e>=58&&e<=64||e>=91&&e<=93||e===123||e===125}function fWt(e){return e===33||e>=35&&e<=39||e===42||e===43||e===45||e===46||e>=48&&e<=57||e>=65&&e<=90||e>=94&&e<=122||e===124||e===126}function pWt(e){return e>=32&&e<=126}function hWt(e){return e>=128&&e<=255}ZNe.exports={isDelimiter:dWt,isTokenChar:fWt,isExtended:hWt,isPrint:pWt}});var tCe=w((CSr,eCe)=>{"use strict";var mWt=Y("util"),RA=YNe(),pj=JNe(),gWt=pj.isDelimiter,XNe=pj.isTokenChar,QNe=pj.isExtended,yWt=pj.isPrint;function $Ne(e){return e.replace(/\\(.)/g,"$1")}function AO(e,t){return mWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function SWt(e){for(var t=!1,n=!1,r=!1,i={},s=[],o=-1,a=-1,c,u,l=0;l{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.headerCapture=Tt.getIncomingStableRequestMetricAttributesOnResponse=Tt.getIncomingRequestMetricAttributesOnResponse=Tt.getIncomingRequestAttributesOnResponse=Tt.getIncomingRequestMetricAttributes=Tt.getIncomingRequestAttributes=Tt.getRemoteClientAddress=Tt.getOutgoingStableRequestMetricAttributesOnResponse=Tt.getOutgoingRequestMetricAttributesOnResponse=Tt.getOutgoingRequestAttributesOnResponse=Tt.setAttributesFromHttpKind=Tt.getOutgoingRequestMetricAttributes=Tt.getOutgoingRequestAttributes=Tt.extractHostnameAndPort=Tt.isValidOptionsType=Tt.getRequestInfo=Tt.isCompressed=Tt.setResponseContentLengthAttribute=Tt.setRequestContentLengthAttribute=Tt.setSpanWithError=Tt.satisfiesPattern=Tt.parseResponseStatus=Tt.getAbsoluteUrl=void 0;var RO=(Ce(),ke(Ze)),fn=(Pn(),ke(Mr)),dt=VNe(),nCe=fr(),sl=Jt(),EWt=Y("url"),mj=WNe(),rCe=h7(),hj=h7(),_Wt=tCe(),bWt=(e,t,n="http:",r=Array.from(hj.DEFAULT_QUERY_STRINGS_TO_REDACT))=>{let i=e||{},s=i.protocol||n,o=(i.port||"").toString(),a=i.path||"/",c=i.host||i.hostname||t.host||"localhost";if(c.indexOf(":")===-1&&o&&o!=="80"&&o!=="443"&&(c+=`:${o}`),a.includes("?"))try{let l=new URL(a,"http://localhost"),d=r||[];for(let f of d)l.searchParams.get(f)&&l.searchParams.set(f,hj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${hj.STR_REDACTED}:${hj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=bWt;var TWt=(e,t)=>{let n=e===RO.SpanKind.CLIENT?400:500;return t&&t>=100&&t{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")};Tt.satisfiesPattern=vWt;var AWt=(e,t,n)=>{let r=t.message;n&sl.SemconvStability.OLD&&(e.setAttribute(mj.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(mj.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&sl.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:RO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=AWt;var RWt=(e,t)=>{let n=sCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setRequestContentLengthAttribute=RWt;var wWt=(e,t)=>{let n=sCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setResponseContentLengthAttribute=wWt;function sCe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var kWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=kWt;function IWt(e){let{hostname:t,pathname:n,port:r,username:i,password:s,search:o,protocol:a,hash:c,href:u,origin:l,host:d}=new URL(e),f={protocol:a,hostname:t&&t[0]==="["?t.slice(1,-1):t,hash:c,search:o,pathname:n,path:`${n||""}${o||""}`,href:u,origin:l,host:d};return r!==""&&(f.port=Number(r)),(i||s)&&(f.auth=`${decodeURIComponent(i)}:${decodeURIComponent(s)}`),f}var xWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=IWt(t);s=c,r=c.pathname||"/"}catch(c){o=!0,e.verbose("Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:",c),s={path:t},r=s.path||"/"}i=`${s.protocol||"http:"}//${s.host}`,n!==void 0&&Object.assign(s,n)}else if(t instanceof EWt.URL)s={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,path:`${t.pathname||""}${t.search||""}`},t.port!==""&&(s.port=Number(t.port)),(t.username||t.password)&&(s.auth=`${t.username}:${t.password}`),r=t.pathname,i=t.origin,n!==void 0&&Object.assign(s,n);else{s=Object.assign({protocol:t.host?"http:":void 0},t);let c=s.host||(s.port!=null?`${s.hostname}${s.port}`:s.hostname);if(i=`${s.protocol||"http:"}//${c}`,r=t.pathname,!r&&s.path)try{r=new URL(s.path,i).pathname||"/"}catch{r="/"}}let a=s.method?s.method.toUpperCase():"GET";return{origin:i,pathname:r,method:a,optionsParsed:s,invalidUrl:o}};Tt.getRequestInfo=xWt;var OWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=OWt;var PWt=e=>{if(e.hostname&&e.port)return{hostname:e.hostname,port:e.port};let t=e.host?.match(/^([^:/ ]+)(:\d{1,5})?/)||null,n=e.hostname||(t===null?"localhost":t[1]),r=e.port;return r||(t&&t[2]?r=t[2].substring(1):r=e.protocol==="https:"?"443":"80"),{hostname:n,port:r}};Tt.extractHostnameAndPort=PWt;var NWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=cCe(o),c=e.headers||{},u=c["user-agent"],l=(0,Tt.getAbsoluteUrl)(e,c,`${t.component}:`,t.redactedQueryParams),d={[dt.ATTR_HTTP_URL]:l,[dt.ATTR_HTTP_METHOD]:o,[dt.ATTR_HTTP_TARGET]:e.path||"/",[dt.ATTR_NET_PEER_NAME]:i,[dt.ATTR_HTTP_HOST]:c.host??`${i}:${s}`},f={[fn.ATTR_HTTP_REQUEST_METHOD]:a,[fn.ATTR_SERVER_ADDRESS]:i,[fn.ATTR_SERVER_PORT]:Number(s),[fn.ATTR_URL_FULL]:l,[fn.ATTR_USER_AGENT_ORIGINAL]:u};switch(o!==a&&(f[fn.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=o),r&&u&&(f[dt.ATTR_USER_AGENT_SYNTHETIC_TYPE]=oCe(u)),u!==void 0&&(d[dt.ATTR_HTTP_USER_AGENT]=u),n){case sl.SemconvStability.STABLE:return Object.assign(f,t.hookAttributes);case sl.SemconvStability.OLD:return Object.assign(d,t.hookAttributes)}return Object.assign(d,f,t.hookAttributes)};Tt.getOutgoingRequestAttributes=NWt;var CWt=e=>{let t={};return t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_PEER_NAME]=e[dt.ATTR_NET_PEER_NAME],t};Tt.getOutgoingRequestMetricAttributes=CWt;var MWt=(e,t)=>{e&&(t[dt.ATTR_HTTP_FLAVOR]=e,e.toUpperCase()!=="QUIC"?t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_TCP:t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_UDP)};Tt.setAttributesFromHttpKind=MWt;var oCe=e=>{let t=String(e).toLowerCase();for(let n of rCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of rCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},DWt=(e,t)=>{let{statusCode:n,statusMessage:r,httpVersion:i,socket:s}=e,o={},a={};if(n!=null&&(a[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=n),s){let{remoteAddress:c,remotePort:u}=s;o[dt.ATTR_NET_PEER_IP]=c,o[dt.ATTR_NET_PEER_PORT]=u,a[fn.ATTR_NETWORK_PEER_ADDRESS]=c,a[fn.ATTR_NETWORK_PEER_PORT]=u,a[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e.httpVersion}switch((0,Tt.setResponseContentLengthAttribute)(e,o),n&&(o[dt.ATTR_HTTP_STATUS_CODE]=n,o[mj.AttributeNames.HTTP_STATUS_TEXT]=(r||"").toUpperCase()),(0,Tt.setAttributesFromHttpKind)(i,o),t){case sl.SemconvStability.STABLE:return a;case sl.SemconvStability.OLD:return o}return Object.assign(o,a)};Tt.getOutgoingRequestAttributesOnResponse=DWt;var LWt=e=>{let t={};return t[dt.ATTR_NET_PEER_PORT]=e[dt.ATTR_NET_PEER_PORT],t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getOutgoingRequestMetricAttributesOnResponse=LWt;var UWt=e=>{let t={};return e[fn.ATTR_NETWORK_PROTOCOL_VERSION]&&(t[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e[fn.ATTR_NETWORK_PROTOCOL_VERSION]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getOutgoingStableRequestMetricAttributesOnResponse=UWt;function hy(e,t){let n=e.split(":");if(n.length===1)return t==="http"?{host:n[0],port:"80"}:t==="https"?{host:n[0],port:"443"}:{host:n[0]};if(n.length===2)return{host:n[0],port:n[1]};if(n[0].startsWith("[")){if(n[n.length-1].endsWith("]")){if(t==="http")return{host:e,port:"80"};if(t==="https")return{host:e,port:"443"}}else if(n[n.length-2].endsWith("]"))return{host:n.slice(0,-1).join(":"),port:n[n.length-1]}}return{host:e}}function FWt(e,t){let n=e.headers.forwarded;if(n){for(let s of uCe(n))if(s.host)return hy(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?hy(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?hy(r,e.headers["x-forwarded-proto"][0]):hy(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?hy(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?hy(r[0],e.headers["x-forwarded-proto"][0]):hy(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?hy(i,t):null}function aCe(e){let t=e.headers.forwarded;if(t){for(let i of uCe(t))if(i.for)return iCe(i.for)}let n=e.headers["x-forwarded-for"];if(n){let i;if(typeof n=="string"?i=n:Array.isArray(n)&&(i=n[0]),typeof i=="string")return i=i.split(",")[0].trim(),iCe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=aCe;function iCe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function jWt(e,t,n){try{if(t.headers.host)return new URL(t.url??"/",`${e}://${t.headers.host}`);{let r=new URL(t.url??"/",`${e}://localhost`);return{pathname:r.pathname,search:r.search,toString:function(){return r.pathname+r.search}}}}catch(r){return n.verbose("Unable to get URL from request",r),{}}}var HWt=(e,t,n)=>{let{component:r,enableSyntheticSourceDetection:i,hookAttributes:s,semconvStability:o,serverName:a}=t,{headers:c,httpVersion:u,method:l}=e,{host:d,"user-agent":f,"x-forwarded-for":p}=c,h=jWt(r,e,n),m,g;if(o!==sl.SemconvStability.OLD){let y=cCe(l),E=FWt(e,r),S=aCe(e);m={[fn.ATTR_HTTP_REQUEST_METHOD]:y,[fn.ATTR_URL_SCHEME]:r,[fn.ATTR_SERVER_ADDRESS]:E?.host,[fn.ATTR_NETWORK_PEER_ADDRESS]:e.socket.remoteAddress,[fn.ATTR_NETWORK_PEER_PORT]:e.socket.remotePort,[fn.ATTR_NETWORK_PROTOCOL_VERSION]:e.httpVersion,[fn.ATTR_USER_AGENT_ORIGINAL]:f},h.pathname!=null&&(m[fn.ATTR_URL_PATH]=h.pathname),h.search&&(m[fn.ATTR_URL_QUERY]=h.search.slice(1)),S!=null&&(m[fn.ATTR_CLIENT_ADDRESS]=S),E?.port!=null&&(m[fn.ATTR_SERVER_PORT]=Number(E.port)),l!==y&&(m[fn.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=l),i&&f&&(m[dt.ATTR_USER_AGENT_SYNTHETIC_TYPE]=oCe(f))}if(o!==sl.SemconvStability.STABLE){let y=d?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost";g={[dt.ATTR_HTTP_URL]:h.toString(),[dt.ATTR_HTTP_HOST]:d,[dt.ATTR_NET_HOST_NAME]:y,[dt.ATTR_HTTP_METHOD]:l,[dt.ATTR_HTTP_SCHEME]:r},typeof p=="string"&&(g[dt.ATTR_HTTP_CLIENT_IP]=p.split(",")[0]),typeof a=="string"&&(g[dt.ATTR_HTTP_SERVER_NAME]=a),h.pathname&&(g[dt.ATTR_HTTP_TARGET]=h.pathname+h.search||"/"),f!==void 0&&(g[dt.ATTR_HTTP_USER_AGENT]=f),(0,Tt.setRequestContentLengthAttribute)(e,g),(0,Tt.setAttributesFromHttpKind)(u,g)}switch(o){case sl.SemconvStability.STABLE:return Object.assign(m,s);case sl.SemconvStability.OLD:return Object.assign(g,s);default:return Object.assign(g,m,s)}};Tt.getIncomingRequestAttributes=HWt;var qWt=e=>{let t={};return t[dt.ATTR_HTTP_SCHEME]=e[dt.ATTR_HTTP_SCHEME],t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_HOST_NAME]=e[dt.ATTR_NET_HOST_NAME],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getIncomingRequestMetricAttributes=qWt;var BWt=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,nCe.getRPCMetadata)(RO.context.active()),c={};if(r){let{localAddress:u,localPort:l,remoteAddress:d,remotePort:f}=r;c[dt.ATTR_NET_HOST_IP]=u,c[dt.ATTR_NET_HOST_PORT]=l,c[dt.ATTR_NET_PEER_IP]=d,c[dt.ATTR_NET_PEER_PORT]=f}switch(c[dt.ATTR_HTTP_STATUS_CODE]=i,c[mj.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===nCe.RPCType.HTTP&&a.route!==void 0&&(c[fn.ATTR_HTTP_ROUTE]=a.route,o[fn.ATTR_HTTP_ROUTE]=a.route),n){case sl.SemconvStability.STABLE:return o;case sl.SemconvStability.OLD:return c}return Object.assign(c,o)};Tt.getIncomingRequestAttributesOnResponse=BWt;var GWt=e=>{let t={};return t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_NET_HOST_PORT]=e[dt.ATTR_NET_HOST_PORT],e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),t};Tt.getIncomingRequestMetricAttributesOnResponse=GWt;var zWt=e=>{let t={};return e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getIncomingStableRequestMetricAttributesOnResponse=zWt;function VWt(e,t,n){let r=new Map;for(let i=0,s=t.length;i{let s={};for(let o of r.keys()){let a=i(o);if(a===void 0)continue;let c=r.get(o),u=`http.${e}.header.${c}`;typeof a=="string"?s[u]=[a]:Array.isArray(a)?s[u]=a:s[u]=[a]}return s}}Tt.headerCapture=VWt;var WWt=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function cCe(e){if(e==null)return"GET";let t=e.toUpperCase();return WWt.has(t)?t:"_OTHER"}function uCe(e){try{return _Wt(e)}catch{return[]}}});var dCe=w(gj=>{"use strict";Object.defineProperty(gj,"__esModule",{value:!0});gj.HttpInstrumentation=void 0;var tn=(Ce(),ke(Ze)),my=fr(),KWt=Y("url"),YWt=zPe(),Mo=Jt(),g7=Y("events"),Oi=(Pn(),ke(Mr)),Is=lCe(),y7=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",YWt.VERSION,t),this._semconvStability=(0,Mo.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._headerCapture=this._createHeaderCapture(this._semconvStability)}_updateMetricInstruments(){this._oldHttpServerDurationHistogram=this.meter.createHistogram("http.server.duration",{description:"Measures the duration of inbound HTTP requests.",unit:"ms",valueType:tn.ValueType.DOUBLE}),this._oldHttpClientDurationHistogram=this.meter.createHistogram("http.client.duration",{description:"Measures the duration of outbound HTTP requests.",unit:"ms",valueType:tn.ValueType.DOUBLE}),this._stableHttpServerDurationHistogram=this.meter.createHistogram(Oi.METRIC_HTTP_SERVER_REQUEST_DURATION,{description:"Duration of HTTP server requests.",unit:"s",valueType:tn.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}}),this._stableHttpClientDurationHistogram=this.meter.createHistogram(Oi.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Duration of HTTP client requests.",unit:"s",valueType:tn.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}_recordServerDuration(t,n,r){this._semconvStability&Mo.SemconvStability.OLD&&this._oldHttpServerDurationHistogram.record(t,n),this._semconvStability&Mo.SemconvStability.STABLE&&this._stableHttpServerDurationHistogram.record(t/1e3,r)}_recordClientDuration(t,n,r){this._semconvStability&Mo.SemconvStability.OLD&&this._oldHttpClientDurationHistogram.record(t,n),this._semconvStability&Mo.SemconvStability.STABLE&&this._stableHttpClientDurationHistogram.record(t/1e3,r)}setConfig(t={}){super.setConfig(t),this._headerCapture=this._createHeaderCapture(this._semconvStability)}init(){return[this._getHttpsInstrumentation(),this._getHttpInstrumentation()]}_getHttpInstrumentation(){return new Mo.InstrumentationNodeModuleDefinition("http",["*"],t=>{if(this._httpPatched)return t;this._httpPatched=!0;let n=t[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let r=this._wrap(t,"request",this._getPatchOutgoingRequestFunction("http")),i=this._wrap(t,"get",this._getPatchOutgoingGetFunction(r));n&&(t.default.request=r,t.default.get=i)}return this.getConfig().disableIncomingRequestInstrumentation||this._wrap(t.Server.prototype,"emit",this._getPatchIncomingRequestFunction("http")),t},t=>{this._httpPatched=!1,t!==void 0&&(this.getConfig().disableOutgoingRequestInstrumentation||(this._unwrap(t,"request"),this._unwrap(t,"get")),this.getConfig().disableIncomingRequestInstrumentation||this._unwrap(t.Server.prototype,"emit"))})}_getHttpsInstrumentation(){return new Mo.InstrumentationNodeModuleDefinition("https",["*"],t=>{if(this._httpsPatched)return t;this._httpsPatched=!0;let n=t[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let r=this._wrap(t,"request",this._getPatchHttpsOutgoingRequestFunction("https")),i=this._wrap(t,"get",this._getPatchHttpsOutgoingGetFunction(r));n&&(t.default.request=r,t.default.get=i)}return this.getConfig().disableIncomingRequestInstrumentation||this._wrap(t.Server.prototype,"emit",this._getPatchIncomingRequestFunction("https")),t},t=>{this._httpsPatched=!1,t!==void 0&&(this.getConfig().disableOutgoingRequestInstrumentation||(this._unwrap(t,"request"),this._unwrap(t,"get")),this.getConfig().disableIncomingRequestInstrumentation||this._unwrap(t.Server.prototype,"emit"))})}_getPatchIncomingRequestFunction(t){return n=>this._incomingRequestFunction(t,n)}_getPatchOutgoingRequestFunction(t){return n=>this._outgoingRequestFunction(t,n)}_getPatchOutgoingGetFunction(t){return n=>function(i,...s){let o=t(i,...s);return o.end(),o}}_getPatchHttpsOutgoingRequestFunction(t){return n=>{let r=this;return function(s,...o){return t==="https"&&typeof s=="object"&&s?.constructor?.name!=="URL"&&(s=Object.assign({},s),r._setDefaultOptions(s)),r._getPatchOutgoingRequestFunction(t)(n)(s,...o)}}}_setDefaultOptions(t){t.protocol=t.protocol||"https:",t.port=t.port||443}_getPatchHttpsOutgoingGetFunction(t){return n=>{let r=this;return function(s,...o){return r._getPatchOutgoingGetFunction(t)(n)(s,...o)}}}_traceClientRequest(t,n,r,i,s){this.getConfig().requestHook&&this._callRequestHook(n,t);let o=!1;return t.prependListener("response",a=>{this._diag.debug("outgoingRequest on response()"),t.listenerCount("response")<=1&&a.resume();let c=(0,Is.getOutgoingRequestAttributesOnResponse)(a,this._semconvStability);n.setAttributes(c),i=Object.assign(i,(0,Is.getOutgoingRequestMetricAttributesOnResponse)(c)),s=Object.assign(s,(0,Is.getOutgoingStableRequestMetricAttributesOnResponse)(c)),this.getConfig().responseHook&&this._callResponseHook(n,a),n.setAttributes(this._headerCapture.client.captureRequestHeaders(l=>t.getHeader(l))),n.setAttributes(this._headerCapture.client.captureResponseHeaders(l=>a.headers[l])),tn.context.bind(tn.context.active(),a);let u=()=>{if(this._diag.debug("outgoingRequest on end()"),o)return;o=!0;let l;a.aborted&&!a.complete?l={code:tn.SpanStatusCode.ERROR}:l={code:(0,Is.parseResponseStatus)(tn.SpanKind.CLIENT,a.statusCode)},n.setStatus(l),this.getConfig().applyCustomAttributesOnSpan&&(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(n,t,a),()=>{},!0),this._closeHttpSpan(n,tn.SpanKind.CLIENT,r,i,s)};a.on("end",u),a.on(g7.errorMonitor,l=>{this._diag.debug("outgoingRequest on error()",l),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,l))})}),t.on("close",()=>{this._diag.debug("outgoingRequest on request close()"),!(t.aborted||o)&&(o=!0,this._closeHttpSpan(n,tn.SpanKind.CLIENT,r,i,s))}),t.on(g7.errorMonitor,a=>{this._diag.debug("outgoingRequest on request error()",a),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,a))}),this._diag.debug("http.ClientRequest return request"),t}_incomingRequestFunction(t,n){let r=this;return function(s,...o){if(s!=="request")return n.apply(this,[s,...o]);let a=o[0],c=o[1],u=a.method||"GET";if(r._diag.debug(`${t} instrumentation incomingRequest`),(0,Mo.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreIncomingRequestHook?.(a),S=>{S!=null&&r._diag.error("caught ignoreIncomingRequestHook error: ",S)},!0))return tn.context.with((0,my.suppressTracing)(tn.context.active()),()=>(tn.context.bind(tn.context.active(),a),tn.context.bind(tn.context.active(),c),n.apply(this,[s,...o])));let l=a.headers,d=(0,Is.getIncomingRequestAttributes)(a,{component:t,serverName:r.getConfig().serverName,hookAttributes:r._callStartSpanHook(a,r.getConfig().startIncomingSpanHook),semconvStability:r._semconvStability,enableSyntheticSourceDetection:r.getConfig().enableSyntheticSourceDetection||!1},r._diag);Object.assign(d,r._headerCapture.server.captureRequestHeaders(S=>a.headers[S]));let f={kind:tn.SpanKind.SERVER,attributes:d},p=(0,my.hrTime)(),h=(0,Is.getIncomingRequestMetricAttributes)(d),m={[Oi.ATTR_HTTP_REQUEST_METHOD]:d[Oi.ATTR_HTTP_REQUEST_METHOD],[Oi.ATTR_URL_SCHEME]:d[Oi.ATTR_URL_SCHEME]};d[Oi.ATTR_NETWORK_PROTOCOL_VERSION]&&(m[Oi.ATTR_NETWORK_PROTOCOL_VERSION]=d[Oi.ATTR_NETWORK_PROTOCOL_VERSION]);let g=tn.propagation.extract(tn.ROOT_CONTEXT,l),y=r._startHttpSpan(u,f,g),E={type:my.RPCType.HTTP,span:y};return tn.context.with((0,my.setRPCMetadata)(tn.trace.setSpan(g,y),E),()=>{tn.context.bind(tn.context.active(),a),tn.context.bind(tn.context.active(),c),r.getConfig().requestHook&&r._callRequestHook(y,a),r.getConfig().responseHook&&r._callResponseHook(y,c);let S=!1;return c.on("close",()=>{S||r._onServerResponseFinish(a,c,y,h,m,p)}),c.on(g7.errorMonitor,_=>{S=!0,r._onServerResponseError(y,h,m,p,_)}),(0,Mo.safeExecuteInTheMiddle)(()=>n.apply(this,[s,...o]),_=>{if(_)throw r._onServerResponseError(y,h,m,p,_),_})})}}_outgoingRequestFunction(t,n){let r=this;return function(s,...o){if(!(0,Is.isValidOptionsType)(s))return n.apply(this,[s,...o]);let a=typeof o[0]=="object"&&(typeof s=="string"||s instanceof KWt.URL)?o.shift():void 0,{method:c,invalidUrl:u,optionsParsed:l}=(0,Is.getRequestInfo)(r._diag,s,a);if((0,Mo.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreOutgoingRequestHook?.(l),b=>{b!=null&&r._diag.error("caught ignoreOutgoingRequestHook error: ",b)},!0))return n.apply(this,[l,...o]);let{hostname:d,port:f}=(0,Is.extractHostnameAndPort)(l),p=(0,Is.getOutgoingRequestAttributes)(l,{component:t,port:f,hostname:d,hookAttributes:r._callStartSpanHook(l,r.getConfig().startOutgoingSpanHook),redactedQueryParams:r.getConfig().redactedQueryParams},r._semconvStability,r.getConfig().enableSyntheticSourceDetection||!1),h=(0,my.hrTime)(),m=(0,Is.getOutgoingRequestMetricAttributes)(p),g={[Oi.ATTR_HTTP_REQUEST_METHOD]:p[Oi.ATTR_HTTP_REQUEST_METHOD],[Oi.ATTR_SERVER_ADDRESS]:p[Oi.ATTR_SERVER_ADDRESS],[Oi.ATTR_SERVER_PORT]:p[Oi.ATTR_SERVER_PORT]};p[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(g[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]=p[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]),p[Oi.ATTR_NETWORK_PROTOCOL_VERSION]&&(g[Oi.ATTR_NETWORK_PROTOCOL_VERSION]=p[Oi.ATTR_NETWORK_PROTOCOL_VERSION]);let y={kind:tn.SpanKind.CLIENT,attributes:p},E=r._startHttpSpan(c,y),S=tn.context.active(),_=tn.trace.setSpan(S,E);return l.headers?l.headers=Object.assign({},l.headers):l.headers={},tn.propagation.inject(_,l.headers),tn.context.with(_,()=>{let b=o[o.length-1];typeof b=="function"&&(o[o.length-1]=tn.context.bind(S,b));let T=(0,Mo.safeExecuteInTheMiddle)(()=>u?n.apply(this,[s,...o]):n.apply(this,[l,...o]),A=>{if(A)throw r._onOutgoingRequestError(E,m,g,h,A),A});return r._diag.debug(`${t} instrumentation outgoingRequest`),tn.context.bind(S,T),r._traceClientRequest(T,E,h,m,g)})}}_onServerResponseFinish(t,n,r,i,s,o){let a=(0,Is.getIncomingRequestAttributesOnResponse)(t,n,this._semconvStability);i=Object.assign(i,(0,Is.getIncomingRequestMetricAttributesOnResponse)(a)),s=Object.assign(s,(0,Is.getIncomingStableRequestMetricAttributesOnResponse)(a)),r.setAttributes(this._headerCapture.server.captureResponseHeaders(u=>n.getHeader(u))),r.setAttributes(a).setStatus({code:(0,Is.parseResponseStatus)(tn.SpanKind.SERVER,n.statusCode)});let c=a[Oi.ATTR_HTTP_ROUTE];c&&r.updateName(`${t.method||"GET"} ${c}`),this.getConfig().applyCustomAttributesOnSpan&&(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(r,t,n),()=>{},!0),this._closeHttpSpan(r,tn.SpanKind.SERVER,o,i,s)}_onOutgoingRequestError(t,n,r,i,s){(0,Is.setSpanWithError)(t,s,this._semconvStability),r[Oi.ATTR_ERROR_TYPE]=s.name,this._closeHttpSpan(t,tn.SpanKind.CLIENT,i,n,r)}_onServerResponseError(t,n,r,i,s){(0,Is.setSpanWithError)(t,s,this._semconvStability),r[Oi.ATTR_ERROR_TYPE]=s.name,this._closeHttpSpan(t,tn.SpanKind.SERVER,i,n,r)}_startHttpSpan(t,n,r=tn.context.active()){let i=n.kind===tn.SpanKind.CLIENT?this.getConfig().requireParentforOutgoingSpans:this.getConfig().requireParentforIncomingSpans,s,o=tn.trace.getSpan(r);return i===!0&&(!o||!tn.trace.isSpanContextValid(o.spanContext()))?s=tn.trace.wrapSpanContext(tn.INVALID_SPAN_CONTEXT):i===!0&&o?.spanContext().isRemote?s=o:s=this.tracer.startSpan(t,n,r),this._spanNotEnded.add(s),s}_closeHttpSpan(t,n,r,i,s){if(!this._spanNotEnded.has(t))return;t.end(),this._spanNotEnded.delete(t);let o=(0,my.hrTimeToMilliseconds)((0,my.hrTimeDuration)(r,(0,my.hrTime)()));n===tn.SpanKind.SERVER?this._recordServerDuration(o,i,s):n===tn.SpanKind.CLIENT&&this._recordClientDuration(o,i,s)}_callResponseHook(t,n){(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().responseHook(t,n),()=>{},!0)}_callRequestHook(t,n){(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().requestHook(t,n),()=>{},!0)}_callStartSpanHook(t,n){if(typeof n=="function")return(0,Mo.safeExecuteInTheMiddle)(()=>n(t),()=>{},!0)}_createHeaderCapture(t){let n=this.getConfig();return{client:{captureRequestHeaders:(0,Is.headerCapture)("request",n.headersToSpanAttributes?.client?.requestHeaders??[],t),captureResponseHeaders:(0,Is.headerCapture)("response",n.headersToSpanAttributes?.client?.responseHeaders??[],t)},server:{captureRequestHeaders:(0,Is.headerCapture)("request",n.headersToSpanAttributes?.server?.requestHeaders??[],t),captureResponseHeaders:(0,Is.headerCapture)("response",n.headersToSpanAttributes?.server?.responseHeaders??[],t)}}}};gj.HttpInstrumentation=y7});var fCe=w(yj=>{"use strict";Object.defineProperty(yj,"__esModule",{value:!0});yj.HttpInstrumentation=void 0;var ZWt=dCe();Object.defineProperty(yj,"HttpInstrumentation",{enumerable:!0,get:function(){return ZWt.HttpInstrumentation}})});var Fe,Pi=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Va=v(()=>{qt=globalThis});var Nn,Sj=v(()=>{Nn="10.47.0"});function Ic(){return gy(qt),qt}function gy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Nn,t[Nn]=t[Nn]||{}}function $d(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Nn]=r[Nn]||{};return i[e]||(i[e]=t())}var ql=v(()=>{Sj();Va()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(wA);r.forEach(i=>{let s=wA[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function XWt(){E7().enabled=!0}function QWt(){E7().enabled=!1}function pCe(){return E7().enabled}function $Wt(...e){S7("log",...e)}function e4t(...e){S7("warn",...e)}function t4t(...e){S7("error",...e)}function S7(e,...t){Fe&&pCe()&&xs(()=>{qt.console[e](`${JWt}[${e}]:`,...t)})}function E7(){return Fe?$d("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var wO,JWt,wA,Z,br=v(()=>{ql();Pi();Va();wO=["debug","info","warn","error","log","assert","trace"],JWt="Sentry Logger ",wA={};Z={enable:XWt,disable:QWt,isEnabled:pCe,log:$Wt,warn:e4t,error:t4t}});function _j(...e){let t=e.sort((n,r)=>n[0]-r[0]).map(n=>n[1]);return(n,r=0,i=0)=>{let s=[],o=n.split(` +`);for(let a=r;a1024&&(c=c.slice(0,1024));let u=hCe.test(c)?c.replace(hCe,"$1"):c;if(!u.match(/\S*Error: /)){for(let l of t){let d=l(u);if(d){s.push(d);break}}if(s.length>=50+i)break}}return gCe(s.slice(i))}}function b7(e){return Array.isArray(e)?_j(...e):e}function gCe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Ej(t).function||"")&&t.pop(),t.reverse(),mCe.test(Ej(t).function||"")&&(t.pop(),mCe.test(Ej(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Ej(t).filename,function:n.function||"?"}))}function Ej(e){return e[e.length-1]||{}}function kO(e){try{return!e||typeof e!="function"?_7:e.name||_7}catch{return _7}}function bj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function yCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var hCe,mCe,_7,kA=v(()=>{hCe=/\(error: (.*)\)/,mCe=/captureMessage|captureException/;_7=""});function IA(e,t){Tj[e]=Tj[e]||[],Tj[e].push(t)}function xA(e,t){if(!SCe[e]){SCe[e]=!0;try{t()}catch(n){Fe&&Z.error(`Error while instrumenting ${e}`,n)}}}function OA(e,t){let n=e&&Tj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Z.error(`Error while triggering instrumentation handler. Type: ${e} -Name: ${_O(r)} -Error:`,i)}}var cF,BPe,uF=v(()=>{Ii();_r();bA();cF={},BPe={}});function GPe(e){let t="error";TA(t,e),vA(t,rWt)}function rWt(){i7=Bt.onerror,Bt.onerror=function(e,t,n,r,i){return AA("error",{column:r,error:i,line:n,msg:e,url:t}),i7?i7.apply(this,arguments):!1},Bt.onerror.__SENTRY_INSTRUMENTED__=!0}var i7,zPe=v(()=>{Fa();uF();i7=null});function VPe(e){let t="unhandledrejection";TA(t,e),vA(t,iWt)}function iWt(){s7=Bt.onunhandledrejection,Bt.onunhandledrejection=function(e){return AA("unhandledrejection",e),s7?s7.apply(this,arguments):!0},Bt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var s7,WPe=v(()=>{Fa();uF();s7=null});function Ip(e){switch(KPe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return xp(e,Error)}}function lF(e,t){return KPe.call(e)===`[object ${t}]`}function o7(e){return lF(e,"ErrorEvent")}function py(e){return lF(e,"String")}function RA(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function EO(e){return e===null||RA(e)||typeof e!="object"&&typeof e!="function"}function om(e){return lF(e,"Object")}function a7(e){return typeof Event<"u"&&xp(e,Event)}function c7(e){return typeof Element<"u"&&xp(e,Element)}function u7(e){return lF(e,"RegExp")}function ra(e){return!!(e?.then&&typeof e.then=="function")}function l7(e){return om(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function xp(e,t){try{return e instanceof t}catch{return!1}}function bO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var KPe,Ha=v(()=>{KPe=Object.prototype.toString});function ZPe(e,t={}){if(!e)return"";try{let n=e,r=5,i=[],s=0,o=0,a=" > ",c=a.length,u,l=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||oWt;for(;n&&s++1&&o+i.length*c+u.length>=d));)i.push(u),o+=u.length,n=n.parentNode;return i.reverse().join(a)}catch{return""}}function aWt(e,t){let n=e,r=[];if(!n?.tagName)return"";if(sWt.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());let i=t?.length?t.filter(s=>n.getAttribute(s)).map(s=>[s,n.getAttribute(s)]):null;if(i?.length)i.forEach(s=>{r.push(`[${s[0]}="${s[1]}"]`)});else{n.id&&r.push(`#${n.id}`);let s=n.className;if(s&&py(s)){let o=s.split(/\s+/);for(let a of o)r.push(`.${a}`)}}for(let s of["aria-label","type","name","title","alt"]){let o=n.getAttribute(s);o&&r.push(`[${s}="${o}"]`)}return r.join("")}var sWt,oWt,YPe=v(()=>{Ha();Fa();sWt=Bt,oWt=80});function d7(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&QPe(i,r);try{e[t]=i}catch{Le&&J.log(`Failed to replace method "${t}" in object`,e)}}function Fs(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{Le&&J.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function QPe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,Fs(e,"__sentry_original__",t)}catch{}}function f7(e){return e.__sentry_original__}function dF(e){if(Ip(e))return{message:e.message,name:e.name,stack:e.stack,...XPe(e)};if(a7(e)){let t={type:e.type,target:JPe(e.target),currentTarget:JPe(e.currentTarget),...XPe(e)};return typeof CustomEvent<"u"&&xp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function JPe(e){try{return c7(e)?ZPe(e):Object.prototype.toString.call(e)}catch{return""}}function XPe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function p7(e){let t=Object.keys(dF(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var Qd=v(()=>{Ii();YPe();_r();Ha()});function EE(e){if(wA!==void 0)return wA?wA(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=Bt;return t in n&&typeof n[t]=="function"?(wA=n[t],wA(e)):(wA=null,e())}function Co(){return EE(()=>Math.random())}function Fl(){return EE(()=>Date.now())}var wA,hy=v(()=>{Fa()});function my(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function h7(e,t){let n=e,r=n.length;if(r<=150)return n;t>r&&(t=r);let i=Math.max(t-60,0);i<5&&(i=0);let s=Math.min(i+140,r);return s>r-5&&(s=r),s===r&&(i=Math.max(s-140,0)),n=n.slice(i,s),i>0&&(n=`'{snip} ${n}`),sam(e,r,n))}var yy=v(()=>{Ha();bA()});function cWt(){let e=Bt;return e.crypto||e.msCrypto}function uWt(){return Co()*16}function co(e=cWt()){try{if(e?.randomUUID)return EE(()=>e.randomUUID()).replace(/-/g,"")}catch{}return g7||(g7="10000000100040008000"+1e11),g7.replace(/[018]/g,t=>(t^(uWt()&15)>>t/4).toString(16))}function $Pe(e){return e.exception?.values?.[0]}function Sy(e){let{message:t,event_id:n}=e;if(t)return t;let r=$Pe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function S7(e,t,n){let r=e.exception=e.exception||{},i=r.values=r.values||[],s=i[0]=i[0]||{};s.value||(s.value=t||""),s.type||(s.type=n||"Error")}function kA(e,t){let n=$Pe(e);if(!n)return;let r={type:"generic",handled:!0},i=n.mechanism;if(n.mechanism={...r,...i,...t},t&&"data"in t){let s={...i?.data,...t.data};n.mechanism.data=s}}function y7(e){return parseInt(e||"",10)}function _7(e){let t=e.match(lWt)||[],n=y7(t[1]),r=y7(t[2]),i=y7(t[3]);return{buildmetadata:t[5],major:isNaN(n)?void 0:n,minor:isNaN(r)?void 0:r,patch:isNaN(i)?void 0:i,prerelease:t[4]}}function fF(e){if(eCe(e))return!0;try{Fs(e,"__sentry_captured__",!0)}catch{}return!1}function eCe(e){try{return e.__sentry_captured__}catch{}}var g7,lWt,Op=v(()=>{Qd();hy();Fa();lWt=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/});function cm(){return Fl()/nCe}function dWt(){let{performance:e}=Bt;if(!e?.now||!e.timeOrigin)return cm;let t=e.timeOrigin;return()=>(t+EE(()=>e.now()))/nCe}function _y(){return(tCe??(tCe=dWt()))()}var nCe,tCe,Ey=v(()=>{hy();Fa();nCe=1e3});function rCe(e){let t=_y(),n={sid:co(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>fWt(n)};return e&&um(n,e),n}function um(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||_y(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:co()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started=="number"&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration=="number")e.duration=t.duration;else{let n=e.timestamp-e.started;e.duration=n>=0?n:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors=="number"&&(e.errors=t.errors),t.status&&(e.status=t.status)}function iCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),um(e,n)}function fWt(e){return{sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did=="number"||typeof e.did=="string"?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}var pF=v(()=>{Op();Ey()});function by(e,t,n=2){if(!t||typeof t!="object"||n<=0)return t;if(e&&Object.keys(t).length===0)return e;let r={...e};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=by(r[i],t[i],n-1));return r}var hF=v(()=>{});function qa(){return co()}function Ba(){return co().substring(16)}var Ty=v(()=>{Op()});function bE(e,t){t?Fs(e,E7,t):delete e[E7]}function TE(e){return e[E7]}var E7,mF=v(()=>{Qd();E7="_sentrySpan"});var pWt,nu,TO=v(()=>{Ii();pF();_r();Ha();hF();Op();Ty();hy();mF();yy();Ey();pWt=100,nu=class e{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:qa(),sampleRand:Co()}}clone(){let t=new e;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._attributes={...this._attributes},t._extra={...this._extra},t._contexts={...this._contexts},this._contexts.flags&&(t._contexts.flags={values:[...this._contexts.flags.values]}),t._user=this._user,t._level=this._level,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t._lastEventId=this._lastEventId,t._conversationId=this._conversationId,bE(t,TE(this)),t}setClient(t){this._client=t}setLastEventId(t){this._lastEventId=t}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&um(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(t){return this._conversationId=t||void 0,this._notifyScopeListeners(),this}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,n){return this.setTags({[t]:n})}setAttributes(t){return this._attributes={...this._attributes,...t},this._notifyScopeListeners(),this}setAttribute(t,n){return this.setAttributes({[t]:n})}removeAttribute(t){return t in this._attributes&&(delete this._attributes[t],this._notifyScopeListeners()),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,n){return this._extra={...this._extra,[t]:n},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,n){return n===null?delete this._contexts[t]:this._contexts[t]=n,this._notifyScopeListeners(),this}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;let n=typeof t=="function"?t(this):t,r=n instanceof e?n.getScopeData():om(n)?t:void 0,{tags:i,attributes:s,extra:o,user:a,contexts:c,level:u,fingerprint:l=[],propagationContext:d,conversationId:f}=r||{};return this._tags={...this._tags,...i},this._attributes={...this._attributes,...s},this._extra={...this._extra,...o},this._contexts={...this._contexts,...c},a&&Object.keys(a).length&&(this._user=a),u&&(this._level=u),l.length&&(this._fingerprint=l),d&&(this._propagationContext=d),f&&(this._conversationId=f),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,bE(this,void 0),this._attachments=[],this.setPropagationContext({traceId:qa(),sampleRand:Co()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:pWt;if(r<=0)return this;let i={timestamp:cm(),...t,message:t.message?my(t.message,2048):t.message};return this._breadcrumbs.push(i),this._breadcrumbs.length>r&&(this._breadcrumbs=this._breadcrumbs.slice(-r),this._client?.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:TE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=by(this._sdkProcessingMetadata,t,2),this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){let r=n?.event_id||co();if(!this._client)return Le&&J.warn("No client configured on scope - will not capture exception!"),r;let i=new Error("Sentry syntheticException");return this._client.captureException(t,{originalException:t,syntheticException:i,...n,event_id:r},this),r}captureMessage(t,n,r){let i=r?.event_id||co();if(!this._client)return Le&&J.warn("No client configured on scope - will not capture message!"),i;let s=r?.syntheticException??new Error(t);return this._client.captureMessage(t,n,{originalException:t,syntheticException:s,...r,event_id:i},this),i}captureEvent(t,n){let r=t.event_id||n?.event_id||co();return this._client?(this._client.captureEvent(t,{...n,event_id:r},this),r):(Le&&J.warn("No client configured on scope - will not capture event!"),r)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(t=>{t(this)}),this._notifyingListeners=!1)}}});function IA(){return Xd("defaultCurrentScope",()=>new nu)}function Hl(){return Xd("defaultIsolationScope",()=>new nu)}var b7=v(()=>{jl();TO()});var sCe,oCe,gF,hWt,T7=v(()=>{sCe=e=>e instanceof Promise&&!e[oCe],oCe=Symbol("chained PromiseLike"),gF=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return sCe(r)&&sCe(e)?r:hWt(e,r)},hWt=(e,t)=>{let n=!1;for(let r in e){if(r in t)continue;n=!0;let i=e[r];typeof i=="function"?Object.defineProperty(t,r,{value:(...s)=>i.apply(e,s),enumerable:!0,configurable:!0,writable:!0}):t[r]=i}return n&&Object.assign(t,{[oCe]:!0}),t}});function xA(){let e=wc(),t=fy(e);return t.stack=t.stack||new v7(IA(),Hl())}function mWt(e){return xA().withScope(e)}function gWt(e,t){let n=xA();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function aCe(e){return xA().withScope(()=>e(xA().getIsolationScope()))}function cCe(){return{withIsolationScope:aCe,withScope:mWt,withSetScope:gWt,withSetIsolationScope:(e,t)=>aCe(t),getCurrentScope:()=>xA().getScope(),getIsolationScope:()=>xA().getIsolationScope()}}var v7,uCe=v(()=>{b7();TO();T7();Ha();jl();v7=class{constructor(t,n){let r;t?r=t:r=new nu;let i;n?i=n:i=new nu,this._stack=[{scope:r}],this._isolationScope=i}withScope(t){let n=this._pushScope(),r;try{r=t(n)}catch(i){throw this._popScope(),i}return ra(r)?gF(r,()=>this._popScope(),()=>this._popScope()):(this._popScope(),r)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let t=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:t}),t}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}});function A7(e){let t=wc(),n=fy(t);n.acs=e}function $d(e){let t=fy(e);return t.acs?t.acs:cCe()}var OA=v(()=>{jl();uCe()});function dCe(){return lCe?.()}function R7(){return lCe!==void 0}function Ln(){let e=wc();return $d(e).getCurrentScope()}function vn(){let e=wc();return $d(e).getIsolationScope()}function yF(){return Xd("globalScope",()=>new nu)}function Ga(...e){let t=wc(),n=$d(t);if(e.length===2){let[r,i]=e;return r?n.withSetScope(r,i):n.withScope(i)}return n.withScope(e[0])}function vO(...e){let t=wc(),n=$d(t);if(e.length===2){let[r,i]=e;return r?n.withSetIsolationScope(r,i):n.withIsolationScope(i)}return n.withIsolationScope(e[0])}function ct(){return Ln().getClient()}function vE(e){let t=dCe();if(t)return{trace_id:t.traceId,span_id:t.spanId};let n=e.getPropagationContext(),{traceId:r,parentSpanId:i,propagationSpanId:s}=n,o={trace_id:r,span_id:s||Ba()};return i&&(o.parent_span_id=i),o}var lCe,uo=v(()=>{OA();jl();TO();Ty()});var Bi,ef,w7,zt,At,k7,I7,ql,NA,PA,x7,O7,N7,P7,vy,C7,Mo=v(()=>{Bi="sentry.source",ef="sentry.sample_rate",w7="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",k7="sentry.measurement_unit",I7="sentry.measurement_value",ql="sentry.custom_span_name",NA="sentry.profile_id",PA="sentry.exclusive_time",x7="cache.hit",O7="cache.key",N7="cache.item_size",P7="http.request.method",vy="url.full",C7="gen_ai.conversation.id"});function lm(e){if(e<400&&e>=100)return{code:1};if(e>=400&&e<500)switch(e){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(e>=500&&e<600)switch(e){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"internal_error"}}var fCe=v(()=>{});function yWt(e){try{let t=Bt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function SWt(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function AO(e,t,n){e&&(Fs(e,hCe,yWt(n)),Fs(e,pCe,t))}function tf(e){let t=e;return{scope:t[pCe],isolationScope:SWt(t[hCe])}}var pCe,hCe,CA=v(()=>{Qd();Fa();pCe="_sentryScope",hCe="_sentryIsolationScope"});function dm(e){let t=RE(e);if(!t)return;let n=Object.entries(t).reduce((r,[i,s])=>{if(i.startsWith(Np)){let o=i.slice(Np.length);r[o]=s}return r},{});if(Object.keys(n).length>0)return n}function AE(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Np}${r}`]=i),n),{});return SF(t)}function RE(e){if(!(!e||!py(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=mCe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):mCe(e)}function mCe(e){return e.split(",").map(t=>{let n=t.indexOf("=");if(n===-1)return[];let r=t.slice(0,n),i=t.slice(n+1);return[r,i].map(s=>{try{return decodeURIComponent(s.trim())}catch{return}})}).reduce((t,[n,r])=>(n&&r&&(t[n]=r),t),{})}function SF(e){if(Object.keys(e).length!==0)return Object.entries(e).reduce((t,[n,r],i)=>{let s=`${encodeURIComponent(n)}=${encodeURIComponent(r)}`,o=i===0?s:`${t},${s}`;return o.length>gCe?(Le&&J.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Np,gCe,RO=v(()=>{Ii();_r();Ha();Np="sentry-",gCe=8192});function bWt(e){return e==="http"||e==="https"}function tl(e,t=!1){let{host:n,path:r,pass:i,port:s,projectId:o,protocol:a,publicKey:c}=e;return`${a}://${c}${t&&i?`:${i}`:""}@${n}${s?`:${s}`:""}/${r&&`${r}/`}${o}`}function TWt(e){let t=EWt.exec(e);if(!t){Rs(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});return}let[n,r,i="",s="",o="",a=""]=t.slice(1),c="",u=a,l=u.split("/");if(l.length>1&&(c=l.slice(0,-1).join("/"),u=l.pop()),u){let d=u.match(/^\d+/);d&&(u=d[0])}return yCe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function yCe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function vWt(e){if(!Le)return!0;let{port:t,projectId:n,protocol:r}=e;return["protocol","publicKey","host","projectId"].find(o=>e[o]?!1:(J.error(`Invalid Sentry Dsn: ${o} missing`),!0))?!1:n.match(/^\d+$/)?bWt(r)?t&&isNaN(parseInt(t,10))?(J.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(J.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(J.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function AWt(e){return e.match(_Wt)?.[1]}function _F(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=AWt(n)),r}function SCe(e){let t=typeof e=="string"?TWt(e):yCe(e);if(!(!t||!vWt(t)))return t}var _Wt,EWt,fm=v(()=>{Ii();_r();_Wt=/^o(\d+)\./,EWt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/});function nl(e){if(typeof e=="boolean")return Number(e);let t=typeof e=="string"?parseFloat(e):e;if(!(typeof t!="number"||isNaN(t)||t<0||t>1))return t}var MA=v(()=>{});function _Ce(e){if(!e)return;let t=e.match(EF);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function wO(e,t){let n=_Ce(e),r=dm(t);if(!n?.traceId)return{traceId:qa(),sampleRand:Co()};let i=RWt(n,r);r&&(r.sample_rand=i.toString());let{traceId:s,parentSpanId:o,parentSampled:a}=n;return{traceId:s,parentSpanId:o,sampled:a,dsc:r||{},sampleRand:i}}function Ay(e=qa(),t=Ba(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Ry(e=qa(),t=Ba(),n){return`00-${e}-${t}-${n?"01":"00"}`}function RWt(e,t){let n=nl(t?.sample_rand);if(n!==void 0)return n;let r=nl(t?.sample_rate);return r&&e?.parentSampled!==void 0?e.parentSampled?Co()*r:r+Co()*(1-r):Co()}function M7(e,t){let n=_F(e);return t&&n&&t!==n?(J.log(`Won't continue trace because org IDs don't match (incoming baggage: ${t}, SDK options: ${n})`),!1):(e.getOptions().strictTraceContinuation||!1)&&(t&&!n||!t&&n)?(J.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${t}, Sentry client: ${n})`),!1):!0}var EF,bF=v(()=>{_r();RO();fm();MA();Ty();hy();EF=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function TCe(e){let{spanId:t,traceId:n}=e.spanContext(),{data:r,op:i,parent_span_id:s,status:o,origin:a,links:c}=vt(e);return{parent_span_id:s,span_id:t,trace_id:n,data:r,op:i,status:o,origin:a,links:c}}function wy(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:vt(e).parent_span_id,s=tf(e).scope,o=r?s?.getPropagationContext().propagationSpanId||Ba():t;return{parent_span_id:i,span_id:o,trace_id:n}}function RF(e){let{traceId:t,spanId:n}=e.spanContext(),r=nf(e);return Ay(t,n,r)}function vCe(e){let{traceId:t,spanId:n}=e.spanContext(),r=nf(e);return Ry(t,n,r)}function wE(e){if(e&&e.length>0)return e.map(({context:{spanId:t,traceId:n,traceFlags:r,...i},attributes:s})=>({span_id:t,trace_id:n,sampled:r===AF,attributes:s,...i}))}function ru(e){return typeof e=="number"?bCe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?bCe(e.getTime()):_y()}function bCe(e){return e>9999999999?e/1e3:e}function vt(e){if(IWt(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(kWt(e)){let{attributes:r,startTime:i,name:s,endTime:o,status:a,links:c}=e,u="parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?e.parentSpanContext?.spanId:void 0;return{span_id:t,trace_id:n,data:r,description:s,parent_span_id:u,start_timestamp:ru(i),timestamp:ru(o)||void 0,status:kE(a),op:r[zt],origin:r[At],links:wE(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function kWt(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function IWt(e){return typeof e.getSpanJSON=="function"}function nf(e){let{traceFlags:t}=e.spanContext();return t===AF}function kE(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function DA(e,t){let n=e[D7]||e;Fs(t,D7,n),e[kO]?e[kO].add(t):Fs(e,kO,new Set([t]))}function wF(e){let t=new Set;function n(r){if(!t.has(r)&&nf(r)){t.add(r);let i=r[kO]?Array.from(r[kO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function os(e){return e[D7]||e}function Bl(){let e=wc(),t=$d(e);return t.getActiveSpan?t.getActiveSpan():TE(Ln())}function IO(){ECe||(Rs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),ECe=!0)}var vF,AF,ECe,kO,D7,kc=v(()=>{OA();jl();uo();Mo();CA();Qd();Ty();Ey();bF();_r();mF();vF=0,AF=1,ECe=!1;kO="_sentryChildSpans",D7="_sentryRootSpan"});function RCe(){if(ACe)return;function e(){let t=Bl(),n=t&&os(t);if(n){let r="internal_error";Le&&J.log(`[Tracing] Root span: ${r} -> Global error occurred`),n.setStatus({code:2,message:r})}}e.tag="sentry_tracingErrorCallback",ACe=!0,GPe(e),VPe(e)}var ACe,wCe=v(()=>{Ii();zPe();WPe();_r();kc();ACe=!1});function ws(e){if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;let t=e||ct()?.getOptions();return!!t&&(t.tracesSampleRate!=null||!!t.tracesSampler)}var xO=v(()=>{uo()});function kCe(e){J.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function OO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(xWt(n)){if(am(e.description,n))return Le&&kCe(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?am(e.description,n.name):!0,i=n.op?e.op&&am(e.op,n.op):!0;if(r&&i)return Le&&kCe(e),!0}return!1}function ICe(e,t){let n=t.parent_span_id,r=t.span_id;if(n)for(let i of e)i.parent_span_id===r&&(i.parent_span_id=n)}function xWt(e){return typeof e=="string"||e instanceof RegExp}var L7=v(()=>{Ii();_r();yy()});var LA,kF=v(()=>{LA="production"});function IF(e,t){Fs(e,xCe,t)}function U7(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||LA,release:n.release,public_key:r,trace_id:e,org_id:_F(t)};return t.emit("createDsc",i),i}function Pp(e,t){let n=t.getPropagationContext();return n.dsc||U7(n.traceId,e)}function ks(e){let t=ct();if(!t)return{};let n=os(e),r=vt(n),i=r.data,s=n.spanContext().traceState,o=s?.get("sentry.sample_rate")??i[ef]??i[w7];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[xCe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&dm(u);if(l)return a(l);let d=U7(e.spanContext().traceId,t),f=i[Bi],p=r.description;return f!=="url"&&p&&(d.transaction=p),ws()&&(d.sampled=String(nf(n)),d.sample_rand=s?.get("sentry.sample_rand")??tf(n).scope?.getPropagationContext().sampleRand.toString()),a(d),t.emit("createDsc",d,n),d}var xCe,pm=v(()=>{kF();uo();Mo();RO();fm();xO();Qd();kc();CA();xCe="_frozenDsc"});var ky,OCe=v(()=>{Ty();kc();ky=class{constructor(t={}){this._traceId=t.traceId||qa(),this._spanId=t.spanId||Ba()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:vF}}end(t){}setAttribute(t,n){return this}setAttributes(t){return this}setStatus(t){return this}updateName(t){return this}isRecording(){return!1}addEvent(t,n,r){return this}addLink(t){return this}addLinks(t){return this}recordException(t,n){}}});function rf(e,t=100,n=1/0){try{return j7("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function F7(e,t=3,n=100*1024){let r=rf(e,t);return CWt(r)>n?F7(e,t-1,n):r}function j7(e,t,n=1/0,r=1/0,i=MWt()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=OWt(e,t);if(!a.startsWith("[object "))return a;if(t.__sentry_skip_normalization__)return t;let c=typeof t.__sentry_override_normalization_depth__=="number"?t.__sentry_override_normalization_depth__:n;if(c===0)return a.replace("object ","");if(s(t))return"[Circular ~]";let u=t;if(u&&typeof u.toJSON=="function")try{let p=u.toJSON();return j7("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=dF(t);for(let p in f){if(!Object.prototype.hasOwnProperty.call(f,p))continue;if(d>=r){l[p]="[MaxProperties ~]";break}let h=f[p];l[p]=j7(p,h,c-1,r,i),d++}return o(t),l}function OWt(e,t){try{if(e==="domain"&&t&&typeof t=="object"&&t._events)return"[Domain]";if(e==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&t===global)return"[Global]";if(typeof window<"u"&&t===window)return"[Window]";if(typeof document<"u"&&t===document)return"[Document]";if(bO(t))return aF(t);if(l7(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${_O(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=NWt(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function NWt(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function PWt(e){return~-encodeURI(e).split(/%..|./).length}function CWt(e){return PWt(JSON.stringify(e))}function MWt(){let e=new WeakSet;function t(r){return e.has(r)?!0:(e.add(r),!1)}function n(r){e.delete(r)}return[t,n]}var xF=v(()=>{Ha();Qd();bA()});function Ic(e,t=[]){return[e,t]}function q7(e,t){let[n,r]=e;return[n,[...r,t]]}function NO(e,t){let n=e[1];for(let r of n){let i=r[0].type;if(t(r,i))return!0}return!1}function B7(e,t){return NO(e,(n,r)=>t.includes(r))}function H7(e){let t=fy(Bt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function PO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[H7(r),s]:r.push(typeof s=="string"?H7(s):s)}for(let s of n){let[o,a]=s;if(i(` +Name: ${kO(r)} +Error:`,i)}}var Tj,SCe,vj=v(()=>{Pi();br();kA();Tj={},SCe={}});function ECe(e){let t="error";IA(t,e),xA(t,n4t)}function n4t(){T7=qt.onerror,qt.onerror=function(e,t,n,r,i){return OA("error",{column:r,error:i,line:n,msg:e,url:t}),T7?T7.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var T7,_Ce=v(()=>{Va();vj();T7=null});function bCe(e){let t="unhandledrejection";IA(t,e),xA(t,r4t)}function r4t(){v7=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return OA("unhandledrejection",e),v7?v7.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var v7,TCe=v(()=>{Va();vj();v7=null});function Cp(e){switch(vCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Mp(e,Error)}}function Aj(e,t){return vCe.call(e)===`[object ${t}]`}function A7(e){return Aj(e,"ErrorEvent")}function yy(e){return Aj(e,"String")}function PA(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function IO(e){return e===null||PA(e)||typeof e!="object"&&typeof e!="function"}function dm(e){return Aj(e,"Object")}function R7(e){return typeof Event<"u"&&Mp(e,Event)}function w7(e){return typeof Element<"u"&&Mp(e,Element)}function k7(e){return Aj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function I7(e){return dm(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Mp(e,t){try{return e instanceof t}catch{return!1}}function xO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var vCe,Wa=v(()=>{vCe=Object.prototype.toString});function ACe(e,t={}){if(!e)return"";try{let n=e,r=5,i=[],s=0,o=0,a=" > ",c=a.length,u,l=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||s4t;for(;n&&s++1&&o+i.length*c+u.length>=d));)i.push(u),o+=u.length,n=n.parentNode;return i.reverse().join(a)}catch{return""}}function o4t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(i4t.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());let i=t?.length?t.filter(s=>n.getAttribute(s)).map(s=>[s,n.getAttribute(s)]):null;if(i?.length)i.forEach(s=>{r.push(`[${s[0]}="${s[1]}"]`)});else{n.id&&r.push(`#${n.id}`);let s=n.className;if(s&&yy(s)){let o=s.split(/\s+/);for(let a of o)r.push(`.${a}`)}}for(let s of["aria-label","type","name","title","alt"]){let o=n.getAttribute(s);o&&r.push(`[${s}="${o}"]`)}return r.join("")}var i4t,s4t,RCe=v(()=>{Wa();Va();i4t=qt,s4t=80});function x7(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&ICe(i,r);try{e[t]=i}catch{Fe&&Z.log(`Failed to replace method "${t}" in object`,e)}}function Gs(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{Fe&&Z.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function ICe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,Gs(e,"__sentry_original__",t)}catch{}}function O7(e){return e.__sentry_original__}function Rj(e){if(Cp(e))return{message:e.message,name:e.name,stack:e.stack,...kCe(e)};if(R7(e)){let t={type:e.type,target:wCe(e.target),currentTarget:wCe(e.currentTarget),...kCe(e)};return typeof CustomEvent<"u"&&Mp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function wCe(e){try{return w7(e)?ACe(e):Object.prototype.toString.call(e)}catch{return""}}function kCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function P7(e){let t=Object.keys(Rj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var ef=v(()=>{Pi();RCe();br();Wa()});function A_(e){if(NA!==void 0)return NA?NA(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(NA=n[t],NA(e)):(NA=null,e())}function Do(){return A_(()=>Math.random())}function Bl(){return A_(()=>Date.now())}var NA,Sy=v(()=>{Va()});function Ey(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function N7(e,t){let n=e,r=n.length;if(r<=150)return n;t>r&&(t=r);let i=Math.max(t-60,0);i<5&&(i=0);let s=Math.min(i+140,r);return s>r-5&&(s=r),s===r&&(i=Math.max(s-140,0)),n=n.slice(i,s),i>0&&(n=`'{snip} ${n}`),sfm(e,r,n))}var by=v(()=>{Wa();kA()});function a4t(){let e=qt;return e.crypto||e.msCrypto}function c4t(){return Do()*16}function mo(e=a4t()){try{if(e?.randomUUID)return A_(()=>e.randomUUID()).replace(/-/g,"")}catch{}return M7||(M7="10000000100040008000"+1e11),M7.replace(/[018]/g,t=>(t^(c4t()&15)>>t/4).toString(16))}function xCe(e){return e.exception?.values?.[0]}function Ty(e){let{message:t,event_id:n}=e;if(t)return t;let r=xCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function L7(e,t,n){let r=e.exception=e.exception||{},i=r.values=r.values||[],s=i[0]=i[0]||{};s.value||(s.value=t||""),s.type||(s.type=n||"Error")}function CA(e,t){let n=xCe(e);if(!n)return;let r={type:"generic",handled:!0},i=n.mechanism;if(n.mechanism={...r,...i,...t},t&&"data"in t){let s={...i?.data,...t.data};n.mechanism.data=s}}function D7(e){return parseInt(e||"",10)}function U7(e){let t=e.match(u4t)||[],n=D7(t[1]),r=D7(t[2]),i=D7(t[3]);return{buildmetadata:t[5],major:isNaN(n)?void 0:n,minor:isNaN(r)?void 0:r,patch:isNaN(i)?void 0:i,prerelease:t[4]}}function wj(e){if(OCe(e))return!0;try{Gs(e,"__sentry_captured__",!0)}catch{}return!1}function OCe(e){try{return e.__sentry_captured__}catch{}}var M7,u4t,Dp=v(()=>{ef();Sy();Va();u4t=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/});function pm(){return Bl()/NCe}function l4t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return pm;let t=e.timeOrigin;return()=>(t+A_(()=>e.now()))/NCe}function vy(){return(PCe??(PCe=l4t()))()}var NCe,PCe,Ay=v(()=>{Sy();Va();NCe=1e3});function CCe(e){let t=vy(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>d4t(n)};return e&&hm(n,e),n}function hm(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||vy(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:mo()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started=="number"&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration=="number")e.duration=t.duration;else{let n=e.timestamp-e.started;e.duration=n>=0?n:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors=="number"&&(e.errors=t.errors),t.status&&(e.status=t.status)}function MCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),hm(e,n)}function d4t(e){return{sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did=="number"||typeof e.did=="string"?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}var kj=v(()=>{Dp();Ay()});function Ry(e,t,n=2){if(!t||typeof t!="object"||n<=0)return t;if(e&&Object.keys(t).length===0)return e;let r={...e};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=Ry(r[i],t[i],n-1));return r}var Ij=v(()=>{});function Ka(){return mo()}function Ya(){return mo().substring(16)}var wy=v(()=>{Dp()});function R_(e,t){t?Gs(e,F7,t):delete e[F7]}function w_(e){return e[F7]}var F7,xj=v(()=>{ef();F7="_sentrySpan"});var f4t,cu,OO=v(()=>{Pi();kj();br();Wa();Ij();Dp();wy();Sy();xj();by();Ay();f4t=100,cu=class e{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:Ka(),sampleRand:Do()}}clone(){let t=new e;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._attributes={...this._attributes},t._extra={...this._extra},t._contexts={...this._contexts},this._contexts.flags&&(t._contexts.flags={values:[...this._contexts.flags.values]}),t._user=this._user,t._level=this._level,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t._lastEventId=this._lastEventId,t._conversationId=this._conversationId,R_(t,w_(this)),t}setClient(t){this._client=t}setLastEventId(t){this._lastEventId=t}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&hm(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(t){return this._conversationId=t||void 0,this._notifyScopeListeners(),this}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,n){return this.setTags({[t]:n})}setAttributes(t){return this._attributes={...this._attributes,...t},this._notifyScopeListeners(),this}setAttribute(t,n){return this.setAttributes({[t]:n})}removeAttribute(t){return t in this._attributes&&(delete this._attributes[t],this._notifyScopeListeners()),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,n){return this._extra={...this._extra,[t]:n},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,n){return n===null?delete this._contexts[t]:this._contexts[t]=n,this._notifyScopeListeners(),this}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;let n=typeof t=="function"?t(this):t,r=n instanceof e?n.getScopeData():dm(n)?t:void 0,{tags:i,attributes:s,extra:o,user:a,contexts:c,level:u,fingerprint:l=[],propagationContext:d,conversationId:f}=r||{};return this._tags={...this._tags,...i},this._attributes={...this._attributes,...s},this._extra={...this._extra,...o},this._contexts={...this._contexts,...c},a&&Object.keys(a).length&&(this._user=a),u&&(this._level=u),l.length&&(this._fingerprint=l),d&&(this._propagationContext=d),f&&(this._conversationId=f),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,R_(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ka(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:f4t;if(r<=0)return this;let i={timestamp:pm(),...t,message:t.message?Ey(t.message,2048):t.message};return this._breadcrumbs.push(i),this._breadcrumbs.length>r&&(this._breadcrumbs=this._breadcrumbs.slice(-r),this._client?.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:w_(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=Ry(this._sdkProcessingMetadata,t,2),this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){let r=n?.event_id||mo();if(!this._client)return Fe&&Z.warn("No client configured on scope - will not capture exception!"),r;let i=new Error("Sentry syntheticException");return this._client.captureException(t,{originalException:t,syntheticException:i,...n,event_id:r},this),r}captureMessage(t,n,r){let i=r?.event_id||mo();if(!this._client)return Fe&&Z.warn("No client configured on scope - will not capture message!"),i;let s=r?.syntheticException??new Error(t);return this._client.captureMessage(t,n,{originalException:t,syntheticException:s,...r,event_id:i},this),i}captureEvent(t,n){let r=t.event_id||n?.event_id||mo();return this._client?(this._client.captureEvent(t,{...n,event_id:r},this),r):(Fe&&Z.warn("No client configured on scope - will not capture event!"),r)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(t=>{t(this)}),this._notifyingListeners=!1)}}});function MA(){return $d("defaultCurrentScope",()=>new cu)}function Gl(){return $d("defaultIsolationScope",()=>new cu)}var j7=v(()=>{ql();OO()});var DCe,LCe,Oj,p4t,H7=v(()=>{DCe=e=>e instanceof Promise&&!e[LCe],LCe=Symbol("chained PromiseLike"),Oj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return DCe(r)&&DCe(e)?r:p4t(e,r)},p4t=(e,t)=>{let n=!1;for(let r in e){if(r in t)continue;n=!0;let i=e[r];typeof i=="function"?Object.defineProperty(t,r,{value:(...s)=>i.apply(e,s),enumerable:!0,configurable:!0,writable:!0}):t[r]=i}return n&&Object.assign(t,{[LCe]:!0}),t}});function DA(){let e=Ic(),t=gy(e);return t.stack=t.stack||new q7(MA(),Gl())}function h4t(e){return DA().withScope(e)}function m4t(e,t){let n=DA();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function UCe(e){return DA().withScope(()=>e(DA().getIsolationScope()))}function FCe(){return{withIsolationScope:UCe,withScope:h4t,withSetScope:m4t,withSetIsolationScope:(e,t)=>UCe(t),getCurrentScope:()=>DA().getScope(),getIsolationScope:()=>DA().getIsolationScope()}}var q7,jCe=v(()=>{j7();OO();H7();Wa();ql();q7=class{constructor(t,n){let r;t?r=t:r=new cu;let i;n?i=n:i=new cu,this._stack=[{scope:r}],this._isolationScope=i}withScope(t){let n=this._pushScope(),r;try{r=t(n)}catch(i){throw this._popScope(),i}return sa(r)?Oj(r,()=>this._popScope(),()=>this._popScope()):(this._popScope(),r)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let t=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:t}),t}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}});function B7(e){let t=Ic(),n=gy(t);n.acs=e}function tf(e){let t=gy(e);return t.acs?t.acs:FCe()}var LA=v(()=>{ql();jCe()});function qCe(){return HCe?.()}function G7(){return HCe!==void 0}function Un(){let e=Ic();return tf(e).getCurrentScope()}function vn(){let e=Ic();return tf(e).getIsolationScope()}function Pj(){return $d("globalScope",()=>new cu)}function Za(...e){let t=Ic(),n=tf(t);if(e.length===2){let[r,i]=e;return r?n.withSetScope(r,i):n.withScope(i)}return n.withScope(e[0])}function PO(...e){let t=Ic(),n=tf(t);if(e.length===2){let[r,i]=e;return r?n.withSetIsolationScope(r,i):n.withIsolationScope(i)}return n.withIsolationScope(e[0])}function ct(){return Un().getClient()}function k_(e){let t=qCe();if(t)return{trace_id:t.traceId,span_id:t.spanId};let n=e.getPropagationContext(),{traceId:r,parentSpanId:i,propagationSpanId:s}=n,o={trace_id:r,span_id:s||Ya()};return i&&(o.parent_span_id=i),o}var HCe,go=v(()=>{LA();ql();OO();wy()});var Wi,nf,z7,zt,Rt,V7,W7,zl,UA,FA,K7,Y7,Z7,J7,ky,X7,Lo=v(()=>{Wi="sentry.source",nf="sentry.sample_rate",z7="sentry.previous_trace_sample_rate",zt="sentry.op",Rt="sentry.origin",V7="sentry.measurement_unit",W7="sentry.measurement_value",zl="sentry.custom_span_name",UA="sentry.profile_id",FA="sentry.exclusive_time",K7="cache.hit",Y7="cache.key",Z7="cache.item_size",J7="http.request.method",ky="url.full",X7="gen_ai.conversation.id"});function mm(e){if(e<400&&e>=100)return{code:1};if(e>=400&&e<500)switch(e){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(e>=500&&e<600)switch(e){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"internal_error"}}var BCe=v(()=>{});function g4t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function y4t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function NO(e,t,n){e&&(Gs(e,zCe,g4t(n)),Gs(e,GCe,t))}function rf(e){let t=e;return{scope:t[GCe],isolationScope:y4t(t[zCe])}}var GCe,zCe,jA=v(()=>{ef();Va();GCe="_sentryScope",zCe="_sentryIsolationScope"});function gm(e){let t=x_(e);if(!t)return;let n=Object.entries(t).reduce((r,[i,s])=>{if(i.startsWith(Lp)){let o=i.slice(Lp.length);r[o]=s}return r},{});if(Object.keys(n).length>0)return n}function I_(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Lp}${r}`]=i),n),{});return Nj(t)}function x_(e){if(!(!e||!yy(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=VCe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):VCe(e)}function VCe(e){return e.split(",").map(t=>{let n=t.indexOf("=");if(n===-1)return[];let r=t.slice(0,n),i=t.slice(n+1);return[r,i].map(s=>{try{return decodeURIComponent(s.trim())}catch{return}})}).reduce((t,[n,r])=>(n&&r&&(t[n]=r),t),{})}function Nj(e){if(Object.keys(e).length!==0)return Object.entries(e).reduce((t,[n,r],i)=>{let s=`${encodeURIComponent(n)}=${encodeURIComponent(r)}`,o=i===0?s:`${t},${s}`;return o.length>WCe?(Fe&&Z.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Lp,WCe,CO=v(()=>{Pi();br();Wa();Lp="sentry-",WCe=8192});function _4t(e){return e==="http"||e==="https"}function ol(e,t=!1){let{host:n,path:r,pass:i,port:s,projectId:o,protocol:a,publicKey:c}=e;return`${a}://${c}${t&&i?`:${i}`:""}@${n}${s?`:${s}`:""}/${r&&`${r}/`}${o}`}function b4t(e){let t=E4t.exec(e);if(!t){xs(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});return}let[n,r,i="",s="",o="",a=""]=t.slice(1),c="",u=a,l=u.split("/");if(l.length>1&&(c=l.slice(0,-1).join("/"),u=l.pop()),u){let d=u.match(/^\d+/);d&&(u=d[0])}return KCe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function KCe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function T4t(e){if(!Fe)return!0;let{port:t,projectId:n,protocol:r}=e;return["protocol","publicKey","host","projectId"].find(o=>e[o]?!1:(Z.error(`Invalid Sentry Dsn: ${o} missing`),!0))?!1:n.match(/^\d+$/)?_4t(r)?t&&isNaN(parseInt(t,10))?(Z.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(Z.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(Z.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function v4t(e){return e.match(S4t)?.[1]}function Cj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=v4t(n)),r}function YCe(e){let t=typeof e=="string"?b4t(e):KCe(e);if(!(!t||!T4t(t)))return t}var S4t,E4t,ym=v(()=>{Pi();br();S4t=/^o(\d+)\./,E4t=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/});function al(e){if(typeof e=="boolean")return Number(e);let t=typeof e=="string"?parseFloat(e):e;if(!(typeof t!="number"||isNaN(t)||t<0||t>1))return t}var HA=v(()=>{});function ZCe(e){if(!e)return;let t=e.match(Mj);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function MO(e,t){let n=ZCe(e),r=gm(t);if(!n?.traceId)return{traceId:Ka(),sampleRand:Do()};let i=A4t(n,r);r&&(r.sample_rand=i.toString());let{traceId:s,parentSpanId:o,parentSampled:a}=n;return{traceId:s,parentSpanId:o,sampled:a,dsc:r||{},sampleRand:i}}function Iy(e=Ka(),t=Ya(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function xy(e=Ka(),t=Ya(),n){return`00-${e}-${t}-${n?"01":"00"}`}function A4t(e,t){let n=al(t?.sample_rand);if(n!==void 0)return n;let r=al(t?.sample_rate);return r&&e?.parentSampled!==void 0?e.parentSampled?Do()*r:r+Do()*(1-r):Do()}function Q7(e,t){let n=Cj(e);return t&&n&&t!==n?(Z.log(`Won't continue trace because org IDs don't match (incoming baggage: ${t}, SDK options: ${n})`),!1):(e.getOptions().strictTraceContinuation||!1)&&(t&&!n||!t&&n)?(Z.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${t}, Sentry client: ${n})`),!1):!0}var Mj,Dj=v(()=>{br();CO();ym();HA();wy();Sy();Mj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function QCe(e){let{spanId:t,traceId:n}=e.spanContext(),{data:r,op:i,parent_span_id:s,status:o,origin:a,links:c}=vt(e);return{parent_span_id:s,span_id:t,trace_id:n,data:r,op:i,status:o,origin:a,links:c}}function Oy(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:vt(e).parent_span_id,s=rf(e).scope,o=r?s?.getPropagationContext().propagationSpanId||Ya():t;return{parent_span_id:i,span_id:o,trace_id:n}}function jj(e){let{traceId:t,spanId:n}=e.spanContext(),r=sf(e);return Iy(t,n,r)}function $Ce(e){let{traceId:t,spanId:n}=e.spanContext(),r=sf(e);return xy(t,n,r)}function O_(e){if(e&&e.length>0)return e.map(({context:{spanId:t,traceId:n,traceFlags:r,...i},attributes:s})=>({span_id:t,trace_id:n,sampled:r===Fj,attributes:s,...i}))}function uu(e){return typeof e=="number"?XCe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?XCe(e.getTime()):vy()}function XCe(e){return e>9999999999?e/1e3:e}function vt(e){if(k4t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(w4t(e)){let{attributes:r,startTime:i,name:s,endTime:o,status:a,links:c}=e,u="parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?e.parentSpanContext?.spanId:void 0;return{span_id:t,trace_id:n,data:r,description:s,parent_span_id:u,start_timestamp:uu(i),timestamp:uu(o)||void 0,status:P_(a),op:r[zt],origin:r[Rt],links:O_(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function w4t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function k4t(e){return typeof e.getSpanJSON=="function"}function sf(e){let{traceFlags:t}=e.spanContext();return t===Fj}function P_(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function qA(e,t){let n=e[$7]||e;Gs(t,$7,n),e[DO]?e[DO].add(t):Gs(e,DO,new Set([t]))}function Hj(e){let t=new Set;function n(r){if(!t.has(r)&&sf(r)){t.add(r);let i=r[DO]?Array.from(r[DO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[$7]||e}function Vl(){let e=Ic(),t=tf(e);return t.getActiveSpan?t.getActiveSpan():w_(Un())}function LO(){JCe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),JCe=!0)}var Uj,Fj,JCe,DO,$7,xc=v(()=>{LA();ql();go();Lo();jA();ef();wy();Ay();Dj();br();xj();Uj=0,Fj=1,JCe=!1;DO="_sentryChildSpans",$7="_sentryRootSpan"});function tMe(){if(eMe)return;function e(){let t=Vl(),n=t&&cs(t);if(n){let r="internal_error";Fe&&Z.log(`[Tracing] Root span: ${r} -> Global error occurred`),n.setStatus({code:2,message:r})}}e.tag="sentry_tracingErrorCallback",eMe=!0,ECe(e),bCe(e)}var eMe,nMe=v(()=>{Pi();_Ce();TCe();br();xc();eMe=!1});function Os(e){if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;let t=e||ct()?.getOptions();return!!t&&(t.tracesSampleRate!=null||!!t.tracesSampler)}var UO=v(()=>{go()});function rMe(e){Z.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function FO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(I4t(n)){if(fm(e.description,n))return Fe&&rMe(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?fm(e.description,n.name):!0,i=n.op?e.op&&fm(e.op,n.op):!0;if(r&&i)return Fe&&rMe(e),!0}return!1}function iMe(e,t){let n=t.parent_span_id,r=t.span_id;if(n)for(let i of e)i.parent_span_id===r&&(i.parent_span_id=n)}function I4t(e){return typeof e=="string"||e instanceof RegExp}var eX=v(()=>{Pi();br();by()});var BA,qj=v(()=>{BA="production"});function Bj(e,t){Gs(e,sMe,t)}function tX(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||BA,release:n.release,public_key:r,trace_id:e,org_id:Cj(t)};return t.emit("createDsc",i),i}function Up(e,t){let n=t.getPropagationContext();return n.dsc||tX(n.traceId,e)}function Ps(e){let t=ct();if(!t)return{};let n=cs(e),r=vt(n),i=r.data,s=n.spanContext().traceState,o=s?.get("sentry.sample_rate")??i[nf]??i[z7];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[sMe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&gm(u);if(l)return a(l);let d=tX(e.spanContext().traceId,t),f=i[Wi],p=r.description;return f!=="url"&&p&&(d.transaction=p),Os()&&(d.sampled=String(sf(n)),d.sample_rand=s?.get("sentry.sample_rand")??rf(n).scope?.getPropagationContext().sampleRand.toString()),a(d),t.emit("createDsc",d,n),d}var sMe,Sm=v(()=>{qj();go();Lo();CO();ym();UO();ef();xc();jA();sMe="_frozenDsc"});var Py,oMe=v(()=>{wy();xc();Py=class{constructor(t={}){this._traceId=t.traceId||Ka(),this._spanId=t.spanId||Ya()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Uj}}end(t){}setAttribute(t,n){return this}setAttributes(t){return this}setStatus(t){return this}updateName(t){return this}isRecording(){return!1}addEvent(t,n,r){return this}addLink(t){return this}addLinks(t){return this}recordException(t,n){}}});function of(e,t=100,n=1/0){try{return nX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function rX(e,t=3,n=100*1024){let r=of(e,t);return N4t(r)>n?rX(e,t-1,n):r}function nX(e,t,n=1/0,r=1/0,i=C4t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=x4t(e,t);if(!a.startsWith("[object "))return a;if(t.__sentry_skip_normalization__)return t;let c=typeof t.__sentry_override_normalization_depth__=="number"?t.__sentry_override_normalization_depth__:n;if(c===0)return a.replace("object ","");if(s(t))return"[Circular ~]";let u=t;if(u&&typeof u.toJSON=="function")try{let p=u.toJSON();return nX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Rj(t);for(let p in f){if(!Object.prototype.hasOwnProperty.call(f,p))continue;if(d>=r){l[p]="[MaxProperties ~]";break}let h=f[p];l[p]=nX(p,h,c-1,r,i),d++}return o(t),l}function x4t(e,t){try{if(e==="domain"&&t&&typeof t=="object"&&t._events)return"[Domain]";if(e==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&t===global)return"[Global]";if(typeof window<"u"&&t===window)return"[Window]";if(typeof document<"u"&&t===document)return"[Document]";if(xO(t))return bj(t);if(I7(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${kO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=O4t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function O4t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function P4t(e){return~-encodeURI(e).split(/%..|./).length}function N4t(e){return P4t(JSON.stringify(e))}function C4t(){let e=new WeakSet;function t(r){return e.has(r)?!0:(e.add(r),!1)}function n(r){e.delete(r)}return[t,n]}var Gj=v(()=>{Wa();ef();kA()});function Oc(e,t=[]){return[e,t]}function sX(e,t){let[n,r]=e;return[n,[...r,t]]}function jO(e,t){let n=e[1];for(let r of n){let i=r[0].type;if(t(r,i))return!0}return!1}function oX(e,t){return jO(e,(n,r)=>t.includes(r))}function iX(e){let t=gy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function HO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[iX(r),s]:r.push(typeof s=="string"?iX(s):s)}for(let s of n){let[o,a]=s;if(i(` ${JSON.stringify(o)} -`),typeof a=="string"||a instanceof Uint8Array)i(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(rf(a))}i(c)}}return typeof r=="string"?r:DWt(r)}function DWt(e){let t=e.reduce((i,s)=>i+s.length,0),n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.length;return n}function G7(e){return[{type:"span"},e]}function z7(e){let t=typeof e.data=="string"?H7(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function LWt(e){return e in NCe}function OF(e){return LWt(e)?NCe[e]:e}function NF(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function V7(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:tl(r)},...i&&{trace:i}}}var NCe,hm=v(()=>{jl();fm();xF();Fa();NCe={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"}});function UWt(e,t){if(!t)return e;let n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0},e}function PCe(e,t,n,r){let i=NF(n),s={sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:tl(t)}},o="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return Ic(s,[o])}function CCe(e,t,n,r){let i=NF(n),s=e.type&&e.type!=="replay_event"?e.type:"event";UWt(e,n?.sdk);let o=V7(e,i,r,t);return delete e.sdkProcessingMetadata,Ic(o,[[{type:s},e]])}function MCe(e,t){function n(p){return!!p.trace_id&&!!p.public_key}let r=ks(e[0]),i=t?.getDsn(),s=t?.getOptions().tunnel,o={sent_at:new Date().toISOString(),...n(r)&&{trace:r},...!!s&&i&&{dsn:tl(i)}},{beforeSendSpan:a,ignoreSpans:c}=t?.getOptions()||{},u=c?.length?e.filter(p=>!OO(vt(p),c)):e,l=e.length-u.length;l&&t?.recordDroppedEvent("before_send","span",l);let d=a?p=>{let h=vt(p),m=a(h);return m||(IO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(G7(h))}return Ic(o,f)}var W7=v(()=>{pm();fm();hm();L7();kc()});function CO(e){if(!Le)return;let{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=vt(e),{spanId:i}=e.spanContext(),s=nf(e),o=os(e),a=o===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${a?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${i}`];if(r&&u.push(`parent ID: ${r}`),!a){let{op:l,description:d}=vt(o);u.push(`root ID: ${o.spanContext().spanId}`),l&&u.push(`root op: ${l}`),d&&u.push(`root description: ${d}`)}J.log(`${c} +`),typeof a=="string"||a instanceof Uint8Array)i(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(of(a))}i(c)}}return typeof r=="string"?r:M4t(r)}function M4t(e){let t=e.reduce((i,s)=>i+s.length,0),n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.length;return n}function aX(e){return[{type:"span"},e]}function cX(e){let t=typeof e.data=="string"?iX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function D4t(e){return e in aMe}function zj(e){return D4t(e)?aMe[e]:e}function Vj(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function uX(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:ol(r)},...i&&{trace:i}}}var aMe,Em=v(()=>{ql();ym();Gj();Va();aMe={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"}});function L4t(e,t){if(!t)return e;let n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0},e}function cMe(e,t,n,r){let i=Vj(n),s={sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:ol(t)}},o="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return Oc(s,[o])}function uMe(e,t,n,r){let i=Vj(n),s=e.type&&e.type!=="replay_event"?e.type:"event";L4t(e,n?.sdk);let o=uX(e,i,r,t);return delete e.sdkProcessingMetadata,Oc(o,[[{type:s},e]])}function lMe(e,t){function n(p){return!!p.trace_id&&!!p.public_key}let r=Ps(e[0]),i=t?.getDsn(),s=t?.getOptions().tunnel,o={sent_at:new Date().toISOString(),...n(r)&&{trace:r},...!!s&&i&&{dsn:ol(i)}},{beforeSendSpan:a,ignoreSpans:c}=t?.getOptions()||{},u=c?.length?e.filter(p=>!FO(vt(p),c)):e,l=e.length-u.length;l&&t?.recordDroppedEvent("before_send","span",l);let d=a?p=>{let h=vt(p),m=a(h);return m||(LO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(aX(h))}return Oc(o,f)}var lX=v(()=>{Sm();ym();Em();eX();xc()});function qO(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=vt(e),{spanId:i}=e.spanContext(),s=sf(e),o=cs(e),a=o===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${a?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${i}`];if(r&&u.push(`parent ID: ${r}`),!a){let{op:l,description:d}=vt(o);u.push(`root ID: ${o.spanContext().spanId}`),l&&u.push(`root op: ${l}`),d&&u.push(`root description: ${d}`)}Z.log(`${c} ${u.join(` - `)}`)}function MO(e){if(!Le)return;let{description:t="< unknown name >",op:n="< unknown op >"}=vt(e),{spanId:r}=e.spanContext(),s=os(e)===e,o=`[Tracing] Finishing "${n}" ${s?"root ":""}span "${t}" with ID ${r}`;J.log(o)}var PF=v(()=>{Ii();_r();kc()});function IE(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[k7],s=r[I7];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var K7=v(()=>{Mo()});function LCe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function UCe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function jWt(e){return e instanceof UA&&e.isStandaloneSpan()}function FWt(e){let t=ct();if(!t)return;let n=e[1];if(!n||n.length===0){t.recordDroppedEvent("before_send","span");return}t.sendEnvelope(e)}var DCe,UA,jCe=v(()=>{uo();Ii();W7();Mo();_r();Ty();kc();Ey();pm();PF();K7();CA();DCe=1e3,UA=class{constructor(t={}){this._traceId=t.traceId||qa(),this._spanId=t.spanId||Ba(),this._startTime=t.startTimestamp||_y(),this._links=t.links,this._attributes={},this.setAttributes({[At]:"manual",[zt]:t.op,...t.attributes}),this._name=t.name,t.parentSpanId&&(this._parentSpanId=t.parentSpanId),"sampled"in t&&(this._sampled=t.sampled),t.endTimestamp&&(this._endTime=t.endTimestamp),this._events=[],this._isStandaloneSpan=t.isStandalone,this._endTime&&this._onSpanEnded()}addLink(t){return this._links?this._links.push(t):this._links=[t],this}addLinks(t){return this._links?this._links.push(...t):this._links=t,this}recordException(t,n){}spanContext(){let{_spanId:t,_traceId:n,_sampled:r}=this;return{spanId:t,traceId:n,traceFlags:r?AF:vF}}setAttribute(t,n){return n===void 0?delete this._attributes[t]:this._attributes[t]=n,this}setAttributes(t){return Object.keys(t).forEach(n=>this.setAttribute(n,t[n])),this}updateStartTime(t){this._startTime=ru(t)}setStatus(t){return this._status=t,this}updateName(t){return this._name=t,this.setAttribute(Bi,"custom"),this}end(t){this._endTime||(this._endTime=ru(t),MO(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[zt],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:kE(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[NA],exclusive_time:this._attributes[PA],measurements:IE(this._events),is_segment:this._isStandaloneSpan&&os(this)===this||void 0,segment_id:this._isStandaloneSpan?os(this).spanContext().spanId:void 0,links:wE(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Le&&J.log("[Tracing] Adding an event to span:",t);let i=LCe(n)?n:r||_y(),s=LCe(n)?{}:n||{},o={name:t,time:ru(i),attributes:s};return this._events.push(o),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let t=ct();if(t&&t.emit("spanEnd",this),!(this._isStandaloneSpan||this===os(this)))return;if(this._isStandaloneSpan){this._sampled?FWt(MCe([this],t)):(Le&&J.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),t&&t.recordDroppedEvent("sample_rate","span"));return}let r=this._convertSpanToTransaction();r&&(tf(this).scope||Ln()).captureEvent(r)}_convertSpanToTransaction(){if(!UCe(vt(this)))return;this._name||(Le&&J.warn("Transaction has no name, falling back to ``."),this._name="");let{scope:t,isolationScope:n}=tf(this),r=t?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let s=wF(this).filter(l=>l!==this&&!jWt(l)).map(l=>vt(l)).filter(UCe),o=this._attributes[Bi];delete this._attributes[ql],s.forEach(l=>{delete l.data[ql]});let a={contexts:{trace:TCe(this)},spans:s.length>DCe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,DCe):s,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:t,capturedSpanIsolationScope:n,dynamicSamplingContext:ks(this)},request:r,...o&&{transaction_info:{source:o}}},c=IE(this._events);return c&&Object.keys(c).length&&(Le&&J.log("[Measurements] Adding measurements to transaction event",JSON.stringify(c,void 0,2)),a.measurements=c),a}}});function sf(e,t,n=()=>{},r=()=>{}){let i;try{i=e()}catch(s){throw t(s),n(),s}return HWt(i,t,n,r)}function HWt(e,t,n,r){return ra(e)?gF(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var CF=v(()=>{T7();Ha()});function DO(e,t,n){if(!ws(e))return[!1];let r,i;typeof e.tracesSampler=="function"?(i=e.tracesSampler({...t,inheritOrSampleWith:a=>typeof t.parentSampleRate=="number"?t.parentSampleRate:typeof t.parentSampled=="boolean"?Number(t.parentSampled):a}),r=!0):t.parentSampled!==void 0?i=t.parentSampled:typeof e.tracesSampleRate<"u"&&(i=e.tracesSampleRate,r=!0);let s=nl(i);if(s===void 0)return Le&&J.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(i)} of type ${JSON.stringify(typeof i)}.`),[!1];if(!s)return Le&&J.log(`[Tracing] Discarding transaction because ${typeof e.tracesSampler=="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,s,r];let o=n{Ii();_r();xO();MA()});function of(e,t){let n=LO();if(n.startSpan)return n.startSpan(e,t);let r=J7(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ga(a,()=>HCe(s)(()=>{let u=Ln(),l=X7(u,s),f=e.onlyIfParent&&!l?new ky:Y7({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return bE(u,f),sf(()=>t(f),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})},()=>{f.end()})}))}function Do(e,t){let n=LO();if(n.startSpanManual)return n.startSpanManual(e,t);let r=J7(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ga(a,()=>HCe(s)(()=>{let u=Ln(),l=X7(u,s),f=e.onlyIfParent&&!l?new ky:Y7({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return bE(u,f),sf(()=>t(f,()=>f.end()),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})})}))}function DF(e){let t=LO();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=J7(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ga(e.scope,o):i!==void 0?o=>jA(i,o):o=>o())(()=>{let o=Ln(),a=X7(o,i);return e.onlyIfParent&&!a?new ky:Y7({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function jA(e,t){let n=LO();return n.withActiveSpan?n.withActiveSpan(e,t):Ga(r=>(bE(r,e||void 0),t(r)))}function FA(e){let t=LO();return t.suppressTracing?t.suppressTracing(e):Ga(n=>{n.setSDKProcessingMetadata({[MF]:!0});let r=e();return n.setSDKProcessingMetadata({[MF]:void 0}),r})}function Y7({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!ws()){let o=new ky;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...ks(o)};IF(o,a)}return o}let i=vn(),s;if(e&&!n)s=qWt(e,r,t),DA(e,s);else if(e){let o=ks(e),{traceId:a,spanId:c}=e.spanContext(),u=nf(e);s=FCe({traceId:a,parentSpanId:c,...t},r,u),IF(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=FCe({traceId:o,parentSpanId:c,...t},r,u),a&&IF(s,a)}return CO(s),AO(s,r,i),s}function J7(e){let n={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){let r={...n};return r.startTimestamp=ru(e.startTime),delete r.startTime,r}return n}function LO(){let e=wc();return $d(e)}function FCe(e,t,n){let r=ct(),i=r?.getOptions()||{},{name:s=""}=e,o={spanAttributes:{...e.attributes},spanName:s,parentSampled:n};r?.emit("beforeSampling",o,{decision:!1});let a=o.parentSampled??n,c=o.spanAttributes,u=t.getPropagationContext(),[l,d,f]=t.getScopeData().sdkProcessingMetadata[MF]?[!1]:DO(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:nl(u.dsc?.sample_rate)},u.sampleRand),p=new UA({...e,attributes:{[Bi]:"custom",[ef]:d!==void 0&&f?d:void 0,...c},sampled:l});return!l&&r&&(Le&&J.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),r.recordDroppedEvent("sample_rate","transaction")),r&&r.emit("spanStart",p),p}function qWt(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[MF]?!1:nf(e),o=s?new UA({...n,parentSpanId:r,traceId:i,sampled:s}):new ky({traceId:i});DA(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function X7(e,t){if(t)return t;if(t===null)return;let n=TE(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?os(n):n}function HCe(e){return e!==void 0?t=>jA(e,t):t=>t()}var MF,Iy=v(()=>{OA();jl();uo();Ii();Mo();_r();CF();xO();MA();mF();kc();pm();PF();Z7();OCe();jCe();CA();MF="__SENTRY_SUPPRESS_TRACING__"});function mm(e){return new LF(t=>{t(e)})}function HA(e){return new LF((t,n)=>{n(e)})}var Q7,qCe,BCe,LF,qA=v(()=>{Ha();Q7=0,qCe=1,BCe=2;LF=class e{constructor(t){this._state=Q7,this._handlers=[],this._runExecutor(t)}then(t,n){return new e((r,i)=>{this._handlers.push([!1,s=>{if(!t)r(s);else try{r(t(s))}catch(o){i(o)}},s=>{if(!n)i(s);else try{r(n(s))}catch(o){i(o)}}]),this._executeHandlers()})}catch(t){return this.then(n=>n,t)}finally(t){return new e((n,r)=>{let i,s;return this.then(o=>{s=!1,i=o,t&&t()},o=>{s=!0,i=o,t&&t()}).then(()=>{if(s){r(i);return}n(i)})})}_executeHandlers(){if(this._state===Q7)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===qCe&&n[1](this._value),this._state===BCe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===Q7){if(ra(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(qCe,s)},i=s=>{n(BCe,s)};try{t(r,i)}catch(s){i(s)}}}});function GCe(e,t,n,r=0){try{let i=$7(t,n,e,r);return ra(i)?i:mm(i)}catch(i){return HA(i)}}function $7(e,t,n,r){let i=n[r];if(!e||!i)return e;let s=i({...e},t);return Le&&s===null&&J.log(`Event processor "${i.id||"?"}" dropped event`),ra(s)?s.then(o=>$7(o,t,n,r+1)):$7(s,t,n,r+1)}var zCe=v(()=>{Ii();_r();Ha();qA()});function KCe(e){let t=Bt._sentryDebugIds,n=Bt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(xy&&r.length===VCe&&i.length===WCe)return xy;VCe=r.length,WCe=i.length,xy={},xE||(xE={});let s=(o,a)=>{for(let c of o){let u=a[c],l=xE?.[c];if(l&&xy&&u)xy[l[0]]=u,xE&&(xE[c]=[l[0],u]);else if(u){let d=e(c);for(let f=d.length-1;f>=0;f--){let h=d[f]?.filename;if(h&&xy&&xE){xy[h]=u,xE[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),xy}var xE,VCe,WCe,xy,ZCe=v(()=>{Fa()});function JCe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;BWt(e,t),r&&VWt(e,r),WWt(e,n),GWt(e,i),zWt(e,s)}function YCe(e,t){let{extra:n,tags:r,attributes:i,user:s,contexts:o,level:a,sdkProcessingMetadata:c,breadcrumbs:u,fingerprint:l,eventProcessors:d,attachments:f,propagationContext:p,transactionName:h,span:m}=t;UO(e,"extra",n),UO(e,"tags",r),UO(e,"attributes",i),UO(e,"user",s),UO(e,"contexts",o),e.sdkProcessingMetadata=by(e.sdkProcessingMetadata,c,2),a&&(e.level=a),h&&(e.transactionName=h),m&&(e.span=m),u.length&&(e.breadcrumbs=[...e.breadcrumbs,...u]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),f.length&&(e.attachments=[...e.attachments,...f]),e.propagationContext={...e.propagationContext,...p}}function UO(e,t,n){e[t]=by(e[t],n,1)}function UF(e,t){let n=yF().getScopeData();return e&&YCe(n,e.getScopeData()),t&&YCe(n,t.getScopeData()),n}function BWt(e,t){let{extra:n,tags:r,user:i,contexts:s,level:o,transactionName:a}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(r).length&&(e.tags={...r,...e.tags}),Object.keys(i).length&&(e.user={...i,...e.user}),Object.keys(s).length&&(e.contexts={...s,...e.contexts}),o&&(e.level=o),a&&e.type!=="transaction"&&(e.transaction=a)}function GWt(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function zWt(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function VWt(e,t){e.contexts={trace:wy(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:ks(t),...e.sdkProcessingMetadata};let n=os(t),r=vt(n).description;r&&!e.transaction&&e.type==="transaction"&&(e.transaction=r)}function WWt(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}var eX=v(()=>{uo();pm();hF();kc()});function XCe(e,t,n,r,i,s){let{normalizeDepth:o=3,normalizeMaxBreadth:a=1e3}=e,c={...t,event_id:t.event_id||n.event_id||co(),timestamp:t.timestamp||cm()},u=n.integrations||e.integrations.map(g=>g.name);KWt(c,e),JWt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&ZWt(c,e.stackParser);let l=QWt(r,n.captureContext);n.mechanism&&kA(c,n.mechanism);let d=i?i.getEventProcessors():[],f=UF(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),JCe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?mm(c):GCe(h,c,n)).then(g=>(g&&YWt(g),typeof o=="number"&&o>0?XWt(g,o,a):g))}function KWt(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||LA,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=my(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=my(a.value,s))})}function ZWt(e,t){let n=KCe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function YWt(e){let t={};if(e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.debug_id&&(i.abs_path?t[i.abs_path]=i.debug_id:i.filename&&(t[i.filename]=i.debug_id),delete i.debug_id)})}),Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];let n=e.debug_meta.images;Object.entries(t).forEach(([r,i])=>{n.push({type:"sourcemap",code_file:r,debug_id:i})})}function JWt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function XWt(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(i=>({...i,...i.data&&{data:rf(i.data,t,n)}}))},...e.user&&{user:rf(e.user,t,n)},...e.contexts&&{contexts:rf(e.contexts,t,n)},...e.extra&&{extra:rf(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=rf(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(i=>({...i,...i.data&&{data:rf(i.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=rf(e.contexts.flags,3,n)),r}function QWt(e,t){if(!t)return e;let n=e?e.clone():new nu;return n.update(t),n}function QCe(e){if(e)return $Wt(e)?{captureContext:e}:t4t(e)?{captureContext:e}:e}function $Wt(e){return e instanceof nu||typeof e=="function"}function t4t(e){return Object.keys(e).some(t=>e4t.includes(t))}var e4t,tX=v(()=>{kF();zCe();TO();ZCe();Op();xF();eX();yy();qA();Ey();e4t=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Ln().captureException(e,QCe(t))}function jF(e,t){return Ln().captureEvent(e,t)}async function BA(e){let t=ct();return t?t.flush(e):(Le&&J.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function FF(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function HF(e){let t=vn(),{user:n}=UF(t,Ln()),{userAgent:r}=Bt.navigator||{},i=rCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&um(s,{status:"exited"}),jO(),t.setSession(i),i}function jO(){let e=vn(),n=Ln().getSession()||e.getSession();n&&iCe(n),n4t(),e.setSession()}function n4t(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var rl=v(()=>{uo();Ii();pF();_r();tX();eX();Fa()});function i4t(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function s4t(e){return`${i4t(e)}${e.projectId}/envelope/`}function o4t(e,t){let n={sentry_version:r4t};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function $Ce(e,t,n){return t||`${s4t(e)}?${o4t(e,n)}`}var r4t,eMe=v(()=>{r4t="7"});function a4t(e){let t={};return e.forEach(n=>{let{name:r}=n,i=t[r];i&&!i.isDefaultInstance&&n.isDefaultInstance||(t[r]=n)}),Object.values(t)}function rX(e){let t=e.defaultIntegrations||[],n=e.integrations;t.forEach(i=>{i.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...t,...n];else if(typeof n=="function"){let i=n(t);r=Array.isArray(i)?i:[i]}else r=t;return a4t(r)}function tMe(e,t){let n={};return t.forEach(r=>{r&&sX(e,r,n)}),n}function iX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function sX(e,t,n){if(n[t.name]){Le&&J.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,!nX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),nX.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){let r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(i,s)=>r(i,s,e))}if(typeof t.processEvent=="function"){let r=t.processEvent.bind(t),i=Object.assign((s,o)=>r(s,o,e),{id:t.name});e.addEventProcessor(i)}Le&&J.log(`Integration installed: ${t.name}`)}var nX,oX=v(()=>{Ii();_r();nX=[]});function nMe(e,t){return t?Ga(t,()=>{let n=Bl(),r=n?wy(n):vE(t);return[n?ks(n):Pp(e,t),r]}):[void 0,void 0]}var rMe=v(()=>{uo();pm();kc()});function c4t(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function iMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=tl(r)),Ic(i,[c4t(e)])}var sMe=v(()=>{fm();hm()});function GA(e,t){let n=t??u4t(e)??[];if(n.length===0)return;let r=e.getOptions(),i=iMe(n,r._metadata,r.tunnel,e.getDsn());oMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function u4t(e){return oMe().get(e)}function oMe(){return Xd("clientToLogBufferMap",()=>new WeakMap)}var aX=v(()=>{jl();sMe()});function l4t(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function aMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=tl(r)),Ic(i,[l4t(e)])}var cMe=v(()=>{fm();hm()});function uMe(e,t){let n=t??d4t(e)??[];if(n.length===0)return;let r=e.getOptions(),i=aMe(n,r._metadata,r.tunnel,e.getDsn());lMe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function d4t(e){return lMe().get(e)}function lMe(){return Xd("clientToMetricBufferMap",()=>new WeakMap)}var dMe=v(()=>{jl();cMe()});function qF(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var cX=v(()=>{});function zA(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return mm(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>qF(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var FO,BF=v(()=>{qA();cX();FO=Symbol.for("SentryBufferFullError")});function p4t(e,t=Fl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?f4t:r-t}function h4t(e,t){return e[t]||e.all||0}function fMe(e,t,n=Fl()){return h4t(e,t)>n}function pMe(e,{statusCode:t,headers:n},r=Fl()){let i={...e},s=n?.["x-sentry-rate-limits"],o=n?.["retry-after"];if(s)for(let a of s.trim().split(",")){let[c,u,,,l]=a.split(":",5),d=parseInt(c,10),f=(isNaN(d)?60:d)*1e3;if(!u)i.all=r+f;else for(let p of u.split(";"))p==="metric_bucket"?(!l||l.split(";").includes("custom"))&&(i[p]=r+f):i[p]=r+f}else o?i.all=r+p4t(o,r):t===429&&(i.all=r+60*1e3);return i}var f4t,hMe=v(()=>{hy();f4t=60*1e3});function qO(e,t,n=zA(e.bufferSize||HO)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(NO(o,(d,f)=>{let p=OF(f);fMe(r,p)?e.recordDroppedEvent("ratelimit_backoff",p):a.push(d)}),a.length===0)return Promise.resolve({});let c=Ic(o[0],a),u=d=>{if(B7(c,["client_report"])){Le&&J.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}NO(c,(f,p)=>{e.recordDroppedEvent(d,OF(p))})},l=()=>t({body:PO(c)}).then(d=>d.statusCode===413?(Le&&J.error("Sentry responded with status code 413. Envelope was discarded due to exceeding size limits."),u("send_error"),d):(Le&&d.statusCode!==void 0&&(d.statusCode<200||d.statusCode>=300)&&J.warn(`Sentry responded with status code ${d.statusCode} to sent event.`),r=pMe(r,d),d),d=>{throw u("network_error"),Le&&J.error("Encountered error running transport request:",d),d});return n.add(l).then(d=>d,d=>{if(d===FO)return Le&&J.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var HO,GF=v(()=>{Ii();_r();hm();BF();hMe();HO=64});function mMe(e,t,n){let r=[{type:"client_report"},{timestamp:n||cm(),discarded_events:e}];return Ic(t?{dsn:t}:{},[r])}var gMe=v(()=>{hm();Ey()});function zF(e){let t=[];e.message&&t.push(e.message);try{let n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}var uX=v(()=>{});function yMe(e){let{trace_id:t,parent_span_id:n,span_id:r,status:i,origin:s,data:o,op:a}=e.contexts?.trace??{};return{data:o??{},description:e.transaction,op:a,parent_span_id:n,span_id:r??"",start_timestamp:e.start_timestamp??0,status:i,timestamp:e.timestamp,trace_id:t??"",origin:s,profile_id:o?.[NA],exclusive_time:o?.[PA],measurements:e.measurements,is_segment:!0}}function SMe(e){return{type:"transaction",timestamp:e.timestamp,start_timestamp:e.start_timestamp,transaction:e.description,contexts:{trace:{trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,op:e.op,status:e.status,origin:e.origin,data:{...e.data,...e.profile_id&&{[NA]:e.profile_id},...e.exclusive_time&&{[PA]:e.exclusive_time}}}},measurements:e.measurements}}var _Me=v(()=>{Mo()});function VF(e){return{message:e,[kMe]:!0}}function lX(e){return{message:e,[IMe]:!0}}function TMe(e){return!!e&&typeof e=="object"&&kMe in e}function vMe(e){return!!e&&typeof e=="object"&&IMe in e}function AMe(e,t,n,r,i){let s=0,o,a=!1;e.on(n,()=>{s=0,clearTimeout(o),a=!1}),e.on(t,c=>{s+=r(c),s>=8e5?i(e):a||(a=!0,o=qF(setTimeout(()=>{i(e)},m4t)))}),e.on("flush",()=>{i(e)})}function RMe(e){return e==="replay_event"?"replay":e||"error"}function g4t(e,t){let n=`${t} must return \`null\` or a valid event.`;if(ra(e))return e.then(r=>{if(!om(r)&&r!==null)throw VF(n);return r},r=>{throw VF(`${t} rejected with ${r}`)});if(!om(e)&&e!==null)throw VF(n);return e}function y4t(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(dX(c)&&i)return i(c,r);if(xMe(c)){if(o||a){let u=yMe(c);if(a?.length&&OO(u,a))return null;if(o){let l=o(u);l?c=by(n,SMe(l)):IO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&OO(p,a)){ICe(d,p);continue}if(o){let h=o(p);h?l.push(h):(IO(),l.push(p))}else l.push(p)}let f=c.spans.length-l.length;f&&e.recordDroppedEvent("before_send","span",f),c.spans=l}}if(s){if(c.spans){let u=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:u}}return s(c,r)}}return c}function dX(e){return e.type===void 0}function xMe(e){return e.type==="transaction"}function S4t(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+OMe(e.attributes)}function _4t(e){let t=0;return e.message&&(t+=e.message.length*2),t+OMe(e.attributes)}function OMe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*wMe(n[0]):EO(n)?t+=wMe(n):t+=100}),t}function wMe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var EMe,bMe,kMe,IMe,m4t,WF,NMe=v(()=>{eMe();kF();uo();Ii();W7();oX();aX();dMe();pF();pm();GF();gMe();_r();fm();hm();uX();Ha();hF();Op();MA();tX();BF();hy();L7();kc();qA();cX();_Me();EMe="Not capturing exception because it's already been captured.",bMe="Discarded session because of missing or non-string release",kMe=Symbol.for("SentryInternalError"),IMe=Symbol.for("SentryDoNotSendEventError"),m4t=5e3;WF=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=zA(t.transportOptions?.bufferSize??HO),t.dsn?this._dsn=SCe(t.dsn):Le&&J.warn("No DSN provided, client will not send events."),this._dsn){let r=$Ce(this._dsn,t.tunnel,t._metadata?t._metadata.sdk:void 0);this._transport=t.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...t.transportOptions,url:r})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&AMe(this,"afterCaptureLog","flushLogs",_4t,GA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&AMe(this,"afterCaptureMetric","flushMetrics",S4t,uMe)}captureException(t,n,r){let i=co();if(fF(t))return Le&&J.log(EMe),i;let s={event_id:i,...n};return this._process(()=>this.eventFromException(t,s).then(o=>this._captureEvent(o,s,r)).then(o=>o),"error"),s.event_id}captureMessage(t,n,r,i){let s={event_id:co(),...r},o=RA(t)?t:String(t),a=EO(t),c=a?this.eventFromMessage(o,n,s):this.eventFromException(t,s);return this._process(()=>c.then(u=>this._captureEvent(u,s,i)),a?"unknown":"error"),s.event_id}captureEvent(t,n,r){let i=co();if(n?.originalException&&fF(n.originalException))return Le&&J.log(EMe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=RMe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),um(t,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(t){let n=this._transport;if(!n)return!0;this.emit("flush");let r=await this._isClientDoneProcessing(t),i=await n.flush(t);return r&&i}async close(t){GA(this);let n=await this.flush(t);return this.getOptions().enabled=!1,this.emit("close"),n}getEventProcessors(){return this._eventProcessors}addEventProcessor(t){this._eventProcessors.push(t)}init(){(this._isEnabled()||this._options.integrations.some(({name:t})=>t.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(t){return this._integrations[t]}addIntegration(t){let n=this._integrations[t.name];sX(this,t,this._integrations),n||iX(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=CCe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=q7(r,z7(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=LA}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Le&&J.warn(bMe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Le&&J.warn(bMe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=PCe(t,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(i)}recordDroppedEvent(t,n,r=1){if(this._options.sendClientReports){let i=`${t}:${n}`;Le&&J.log(`Recording outcome: "${i}"${r>1?` (${r} times)`:""}`),this._outcomes[i]=(this._outcomes[i]||0)+r}}on(t,n){let r=this._hooks[t]=this._hooks[t]||new Set,i=(...s)=>n(...s);return r.add(i),()=>{r.delete(i)}}emit(t,...n){let r=this._hooks[t];r&&r.forEach(i=>i(...n))}async sendEnvelope(t){if(this.emit("beforeEnvelope",t),this._isEnabled()&&this._transport)try{return await this._transport.send(t)}catch(n){return Le&&J.error("Error while sending envelope:",n),{}}return Le&&J.error("Transport disabled"),{}}dispose(){}_setupIntegrations(){let{integrations:t}=this._options;this._integrations=tMe(this,t),iX(this,t)}_updateSessionFromEvent(t,n){let r=n.level==="fatal",i=!1,s=n.exception?.values;if(s){i=!0,r=!1;for(let c of s)if(c.mechanism?.handled===!1){r=!0;break}}let o=t.status==="ok";(o&&t.errors===0||o&&r)&&(um(t,{...r&&{status:"crashed"},errors:t.errors||Number(i||r)}),this.captureSession(t))}async _isClientDoneProcessing(t){let n=0;for(;!t||nsetTimeout(r,1)),!this._numProcessing)return!0;n++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(t,n,r,i){let s=this.getOptions(),o=Object.keys(this._integrations);return!n.integrations&&o?.length&&(n.integrations=o),this.emit("preprocessEvent",t,n),t.type||i.setLastEventId(t.event_id||n.event_id),XCe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...vE(r)},...a.contexts};let c=Pp(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Ln(),i=vn()){return Le&&dX(t)&&J.log(`Captured error event \`${zF(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Le&&(vMe(s)?J.log(s.message):TMe(s)?J.warn(s.message):J.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=xMe(t),c=dX(t),l=`before send for type \`${t.type||"error"}\``,d=typeof o>"u"?void 0:nl(o);if(c&&typeof d=="number"&&Co()>d)return this.recordDroppedEvent("sample_rate","error"),HA(lX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=RMe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),lX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=y4t(this,s,p,n);return g4t(m,l)}).then(p=>{if(p===null){if(this.recordDroppedEvent("before_send",f),a){let g=1+(t.spans||[]).length;this.recordDroppedEvent("before_send","span",g)}throw lX(`${l} returned \`null\`, will not send event.`)}let h=r.getSession()||i.getSession();if(c&&h&&this._updateSessionFromEvent(h,p),a){let y=p.sdkProcessingMetadata?.spanCountBeforeProcessing||0,g=p.spans?p.spans.length:0,E=y-g;E>0&&this.recordDroppedEvent("before_send","span",E)}let m=p.transaction_info;if(a&&m&&p.transaction!==t.transaction){let y="custom";p.transaction_info={...m,source:y}}return this.sendEvent(p,n),p}).then(null,p=>{throw vMe(p)||TMe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),VF(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===FO&&this.recordDroppedEvent("queue_overflow",n),r))}_clearOutcomes(){let t=this._outcomes;return this._outcomes={},Object.entries(t).map(([n,r])=>{let[i,s]=n.split(":");return{reason:i,category:s,quantity:r}})}_flushOutcomes(){Le&&J.log("Flushing outcomes...");let t=this._clearOutcomes();if(t.length===0){Le&&J.log("No outcomes to send");return}if(!this._dsn){Le&&J.log("No dsn provided, will not send outcomes");return}Le&&J.log("Sending outcomes:",t);let n=mMe(t,this._options.tunnel&&tl(this._dsn));this.sendEnvelope(n)}}});function PMe(e,t,n,r,i){let s={sent_at:new Date().toISOString()};n?.sdk&&(s.sdk={name:n.sdk.name,version:n.sdk.version}),r&&i&&(s.dsn=tl(i)),t&&(s.trace=t);let o=E4t(e);return Ic(s,[o])}function E4t(e){return[{type:"check_in"},e]}var CMe=v(()=>{fm();hm()});function MMe(e){let t=e._metadata?.sdk,n=t?.name&&t?.version?`${t?.name}/${t?.version}`:void 0;e.transportOptions={...e.transportOptions,headers:{...n&&{"user-agent":n},...e.transportOptions?.headers}}}var DMe=v(()=>{});function LMe(e,t){return e(t.stack||"",1)}function b4t(e){return Ip(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function T4t(e){return b4t(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function fX(e,t){let n={type:t.name||t.constructor.name,value:T4t(t)},r=LMe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function v4t(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function A4t(e){if("name"in e&&typeof e.name=="string"){let r=`'${e.name}' captured as exception`;return"message"in e&&typeof e.message=="string"&&(r+=` with message '${e.message}'`),r}else if("message"in e&&typeof e.message=="string")return e.message;let t=p7(e);if(o7(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=R4t(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function R4t(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function w4t(e,t,n,r){if(Ip(n))return[n,void 0];if(t.synthetic=!0,om(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:F7(n,s)},a=v4t(n);if(a)return[a,o];let c=A4t(n),u=r?.syntheticException||new Error(c);return u.message=c,[u,o]}let i=r?.syntheticException||new Error(n);return i.message=`${n}`,[i,void 0]}function UMe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=w4t(e,s,n,r),c={exception:{values:[fX(t,o)]}};return a&&(c.extra=a),S7(c,void 0,void 0),kA(c,s),{...c,event_id:r?.event_id}}function jMe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=LMe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},kA(s,{synthetic:!0}))}if(RA(t)){let{__sentry_template_string__:o,__sentry_template_values__:a}=t;return s.logentry={message:o,params:a},s}return s.message=t,s}var pX=v(()=>{Ha();Op();xF();Qd()});function FMe(e){let t=vn().getScopeData().sdkProcessingMetadata.requestSession;if(t){let n=e?.mechanism?.handled??!0;n&&t.status!=="crashed"?t.status="errored":n||(t.status="crashed")}}var BO,HMe=v(()=>{CMe();NMe();uo();Ii();wCe();_r();Op();GF();DMe();pX();BF();qA();rMe();BO=class extends WF{constructor(t){RCe(),MMe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=UMe(this,this._options.stackParser,t,n);return r.level="error",mm(r)}eventFromMessage(t,n="info",r){return mm(jMe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return FMe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&FMe(n),super.captureEvent(t,n,r)}captureCheckIn(t,n,r){let i="checkInId"in t&&t.checkInId?t.checkInId:co();if(!this._isEnabled())return Le&&J.warn("SDK not enabled, will not capture check-in."),i;let s=this.getOptions(),{release:o,environment:a,tunnel:c}=s,u={check_in_id:i,monitor_slug:t.monitorSlug,status:t.status,release:o,environment:a};"duration"in t&&(u.duration=t.duration),n&&(u.monitor_config={schedule:n.schedule,checkin_margin:n.checkinMargin,max_runtime:n.maxRuntime,timezone:n.timezone,failure_issue_threshold:n.failureIssueThreshold,recovery_threshold:n.recoveryThreshold});let[l,d]=nMe(this,r);d&&(u.contexts={trace:d});let f=PMe(u,l,this.getSdkMetadata(),c,this.getDsn());return Le&&J.log("Sending checkin:",t.monitorSlug,t.status),this.sendEnvelope(f),i}dispose(){Le&&J.log("Disposing client...");for(let t of Object.keys(this._hooks))this._hooks[t]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=zA(HO)}_prepareEvent(t,n,r,i){return this._options.platform&&(t.platform=t.platform||this._options.platform),this._options.runtime&&(t.contexts={...t.contexts,runtime:t.contexts?.runtime||this._options.runtime}),this._options.serverName&&(t.server_name=t.server_name||this._options.serverName),super._prepareEvent(t,n,r,i)}_setUpMetricsProcessing(){this.on("processMetric",t=>{this._options.serverName&&(t.attributes={"server.address":this._options.serverName,...t.attributes})})}}});function mX(e){e.forEach(t=>{hX.add(t),Le&&J.log(`AI provider "${t}" wrapping will be skipped`)})}function OE(e){return hX.has(e)}function gX(){hX.clear(),Le&&J.log("Cleared AI provider skip registrations")}var hX,qMe=v(()=>{Ii();_r();hX=new Set});function VA(e,t){let n=String(e).toLowerCase();return k4t.has(n)?!1:I4t.has(n)?!0:t?.strict?null:!!e}var k4t,I4t,BMe=v(()=>{k4t=new Set(["false","f","n","no","off","0"]),I4t=new Set(["true","t","y","yes","on","1"])});function yX(e){return"isRelative"in e}function GO(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?x4t:void 0);try{if("canParse"in URL&&!URL.canParse(e,r))return;let i=new URL(e,r);return n?{isRelative:n,pathname:i.pathname,search:i.search,hash:i.hash}:i}catch{}}function GMe(e){if(yX(e))return e.pathname;let t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}function O4t(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?GMe(e):e.pathname:"/");return`${i} ${s}`}function SX(e,t,n,r,i){let s={[At]:n,[Bi]:"url"};return i&&(s[t==="server"?"http.route":"url.template"]=i,s[Bi]="route"),r?.method&&(s[P7]=r.method.toUpperCase()),e&&(e.search&&(s["url.query"]=e.search),e.hash&&(s["url.fragment"]=e.hash),e.pathname&&(s["url.path"]=e.pathname,e.pathname==="/"&&(s[Bi]="route")),yX(e)||(s[vy]=e.href,e.port&&(s["url.port"]=e.port),e.protocol&&(s["url.scheme"]=e.protocol),e.hostname&&(s[t==="server"?"server.address":"url.domain"]=e.hostname))),[O4t(e,t,r,i),s]}function Oy(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function gm(e){return e.split(/[?#]/,1)[0]}function Ny(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function WA(e,t=!0){if(e.startsWith("data:")){let n=e.match(/^data:([^;,]+)/),r=n?n[1]:"text/plain",i=e.includes(";base64,"),s=e.indexOf(","),o="";if(t&&s!==-1){let a=e.slice(s+1);o=a.length>10?`${a.slice(0,10)}... [truncated]`:a}return`data:${r}${i?",base64":""}${o?`,${o}`:""}`}return e}var x4t,zMe=v(()=>{Mo();x4t="thismessage:/"});function NE(e,t,n=[t],r="npm"){let i=(e._metadata=e._metadata||{}).sdk=e._metadata.sdk||{};i.name||(i.name=`sentry.javascript.${t}`,i.packages=n.map(s=>({name:`${r}:@sentry/${s}`,version:On})),i.version=On)}var VMe=v(()=>{iF()});function KA(e={}){let t=e.client||ct();if(!FF()||!t)return{};let n=wc(),r=$d(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Ln(),s=e.span||Bl();if(!s&&R7())return{};let o=s?RF(s):N4t(i),a=s?ks(s):Pp(t,i),c=AE(a);if(!EF.test(o))return J.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let l={"sentry-trace":o,baggage:c};return e.propagateTraceparent&&(l.traceparent=s?vCe(s):P4t(i)),l}function N4t(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Ay(t,r,n)}function P4t(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Ry(t,r,n)}var WMe=v(()=>{OA();jl();uo();rl();_r();kc();pm();RO();bF()});function PE(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Le&&!r&&J.log(KMe,e),r;let i=gy(e,t);return n?.set(e,i),Le&&!i&&J.log(KMe,e),i}var KMe,ZMe=v(()=>{Ii();_r();yy();KMe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function _X(e,t,n){let r,i,s,o=n?.maxWait?Math.max(n.maxWait,t):0,a=n?.setTimeoutImpl||setTimeout;function c(){return u(),r=e(),r}function u(){i!==void 0&&clearTimeout(i),s!==void 0&&clearTimeout(s),i=s=void 0}function l(){return i!==void 0||s!==void 0?c():r}function d(){return i&&clearTimeout(i),i=a(c,t),o&&s===void 0&&(s=a(c,o)),r}return d.cancel=u,d.flush=l,d}var YMe=v(()=>{});function $Me(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function zO(e){let t=e.headers||{},r=(typeof t["x-forwarded-host"]=="string"?t["x-forwarded-host"]:void 0)||(typeof t.host=="string"?t.host:void 0),s=(typeof t["x-forwarded-proto"]=="string"?t["x-forwarded-proto"]:void 0)||e.protocol||(e.socket?.encrypted?"https":"http"),o=e.url||"",a=C4t({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:eDe(o),headers:$Me(t),cookies:u,data:c}}function C4t({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function KF(e,t=!1,n="request"){let r={};try{Object.entries(e).forEach(([i,s])=>{if(s==null)return;let o=i.toLowerCase();if((o==="cookie"||o==="set-cookie")&&typeof s=="string"&&s!==""){let c=o==="set-cookie",u=s.indexOf(";"),l=c&&u!==-1?s.substring(0,u):s,d=c?[l]:l.split("; ");for(let f of d){let p=f.indexOf("="),h=p!==-1?f.substring(0,p):f,m=p!==-1?f.substring(p+1):"",y=h.toLowerCase();QMe(r,o,y,m,t,n)}}else QMe(r,o,"",s,t,n)})}catch{}return r}function XMe(e){return e.replace(/-/g,"_")}function QMe(e,t,n,r,i,s){let o=D4t(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${XMe(t)}${n?`.${XMe(n)}`:""}`;e[a]=o}function D4t(e,t,n){if(n?JMe.some(i=>e.includes(i)):[...M4t,...JMe].some(i=>e.includes(i)))return"[Filtered]";if(Array.isArray(t))return t.map(i=>i!=null?String(i):i).join(";");if(typeof t=="string")return t}function eDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var JMe,M4t,tDe=v(()=>{JMe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],M4t=["x-forwarded-","-user"]});function Gl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=L4t}=n.getOptions();if(s<=0)return;let a={timestamp:cm(),...e},c=i?Rs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var L4t,EX=v(()=>{uo();_r();Ey();L4t=100});var nDe,U4t,rDe,j4t,ZF,iDe=v(()=>{uo();Qd();U4t="FunctionToString",rDe=new WeakMap,j4t=(()=>({name:U4t,setupOnce(){nDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=f7(this),n=rDe.has(ct())&&t!==void 0?t:this;return nDe.apply(n,e)}}catch{}},setup(e){rDe.set(e,!0)}})),ZF=j4t});function sDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:F4t],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function q4t(e,t){if(e.type){if(e.type==="transaction"&&G4t(e,t.ignoreTransactions))return Le&&J.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${Sy(e)}`),!0}else{if(B4t(e,t.ignoreErrors))return Le&&J.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${Sy(e)}`),!0;if(K4t(e))return Le&&J.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${Sy(e)}`),!0;if(z4t(e,t.denyUrls))return Le&&J.warn(`Event dropped due to being matched by \`denyUrls\` option. -Event: ${Sy(e)}. -Url: ${YF(e)}`),!0;if(!V4t(e,t.allowUrls))return Le&&J.warn(`Event dropped due to not being matched by \`allowUrls\` option. -Event: ${Sy(e)}. -Url: ${YF(e)}`),!0}return!1}function B4t(e,t){return t?.length?zF(e).some(n=>gy(n,t)):!1}function G4t(e,t){if(!t?.length)return!1;let n=e.transaction;return n?gy(n,t):!1}function z4t(e,t){if(!t?.length)return!1;let n=YF(e);return n?gy(n,t):!1}function V4t(e,t){if(!t?.length)return!0;let n=YF(e);return n?gy(n,t):!0}function W4t(e=[]){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n&&n.filename!==""&&n.filename!=="[native code]")return n.filename||null}return null}function YF(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?W4t(n):null}catch{return Le&&J.error(`Cannot extract url for event ${Sy(e)}`),null}}function K4t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var F4t,H4t,bX,JF,oDe=v(()=>{Ii();_r();uX();Op();yy();F4t=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],H4t="EventFilters",bX=(e={})=>{let t;return{name:H4t,setup(n){let r=n.getOptions();t=sDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=sDe(e,s)}return q4t(n,t)?null:n}}},JF=((e={})=>({...bX(e),name:"InboundFilters"}))});function uDe(e,t,n,r,i,s){if(!i.exception?.values||!s||!xp(s.originalException,Error))return;let o=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;o&&(i.exception.values=TX(e,t,r,s.originalException,n,i.exception.values,o,0))}function TX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(xp(r[i],Error)){aDe(o,a,r);let u=e(t,r[i]),l=c.length;cDe(u,i,l,a),c=TX(e,t,n,r[i],i,[u,...c],u,l)}return lDe(r)&&r.errors.forEach((u,l)=>{if(xp(u,Error)){aDe(o,a,r);let d=e(t,u),f=c.length;cDe(d,`errors[${l}]`,f,a),c=TX(e,t,n,u,i,[d,...c],d,f)}}),c}function lDe(e){return Array.isArray(e.errors)}function aDe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...lDe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function cDe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var dDe=v(()=>{Ha()});var Z4t,Y4t,J4t,X4t,XF,fDe=v(()=>{dDe();pX();Z4t="cause",Y4t=5,J4t="LinkedErrors",X4t=((e={})=>{let t=e.limit||Y4t,n=e.key||Z4t;return{name:J4t,preprocessEvent(r,i,s){let o=s.getOptions();uDe(fX,o.stackParser,n,t,r,i)}}}),XF=X4t});function pDe(e){let t={},n=0;for(;n{});function mDe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return vX.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?Q4t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&$4t(s))||null}function Q4t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function $4t(e){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(e)}var vX,gDe=v(()=>{vX=["X-Client-IP","X-Forwarded-For","Fly-Client-IP","CF-Connecting-IP","Fastly-Client-Ip","True-Client-Ip","X-Real-IP","X-Cluster-Client-IP","X-Forwarded","Forwarded-For","Forwarded","X-Vercel-Forwarded-For"]});function rKt(e,t,n,r){if(e.request={...e.request,...iKt(t,r)},r.ip){let i=t.headers&&mDe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function iKt(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||vX.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?pDe(r.cookie):void 0);n.cookies=i||{}}return t.query_string&&(n.query_string=e.query_string),t.data&&(n.data=e.data),n}var eKt,tKt,nKt,QF,yDe=v(()=>{hDe();gDe();eKt={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},tKt="RequestData",nKt=((e={})=>{let t={...eKt,...e.include};return{name:tKt,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&rKt(n,o,{ipAddress:a},c),n}}}),QF=nKt});function SDe(e){let t="console";TA(t,e),vA(t,sKt)}function sKt(){"console"in Bt&&SO.forEach(function(e){e in Bt.console&&d7(Bt.console,e,function(t){return EA[e]=t,function(...n){AA("console",{args:n,level:e}),EA[e]?.apply(Bt.console,n)}})})}var _De=v(()=>{_r();Qd();Fa();uF()});function EDe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var bDe=v(()=>{});function aKt(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=oKt.exec(t);return n?n.slice(1):[]}function AX(e){let t=aKt(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var oKt,TDe=v(()=>{oKt=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function kX(e,t){return!e||typeof e!="function"?(Le&&J.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):wX(e,{requireParentSpan:!0,...t})}function wX(e,t,n){if(e[RX])return e;let r=new Proxy(e,{apply(i,s,o){let a=Reflect.apply(i,s,o);return a&&typeof a=="object"&&"handle"in a&&ADe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?lKt(o,i,r,t):s==="begin"||s==="reserve"?dKt(o,i,r,t):o}});return n?r[$F]=n:gKt(e,r),e[RX]=!0,r[RX]=!0,r}function lKt(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&ADe(s,n,r),s}}function dKt(e,t,n,r){return function(...i){let s=n[$F];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>wX(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=wX(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function ADe(e,t,n){if(e.handle?.__sentryWrapped)return;e[uKt]=!0;let r=e.handle,i=async function(...s){if(!fKt(n))return r.apply(this,s);let o=pKt(e.strings),a=hKt(o);return Do({name:a||"postgresjs.query",op:"db"},c=>{c.setAttribute(At,"auto.db.postgresjs"),c.setAttributes({"db.system.name":"postgres","db.query.text":a});let u=t?t[$F]:void 0;if(mKt(c,u),n.requestHook)try{n.requestHook(c,a,u)}catch(d){c.setAttribute("sentry.hook.error","requestHook failed"),Le&&J.error("Error in requestHook for PostgresJs instrumentation:",d)}let l=this;l.resolve=new Proxy(l.resolve,{apply:(d,f,p)=>{try{vDe(c,a,p?.[0]?.command),c.end()}catch(h){Le&&J.error("Error ending span in resolve callback:",h)}return Reflect.apply(d,f,p)}}),l.reject=new Proxy(l.reject,{apply:(d,f,p)=>{try{c.setStatus({code:2,message:p?.[0]?.message||"unknown_error"}),c.setAttribute("db.response.status_code",p?.[0]?.code||"unknown"),c.setAttribute("error.type",p?.[0]?.name||"unknown"),vDe(c,a),c.end()}catch(h){Le&&J.error("Error ending span in reject callback:",h)}return Reflect.apply(d,f,p)}});try{return r.apply(this,s)}catch(d){throw c.setStatus({code:2,message:d instanceof Error?d.message:"unknown_error"}),c.end(),d}})};i.__sentryWrapped=!0,e.handle=i}function fKt(e){return Bl()!==void 0||!e.requireParentSpan}function pKt(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function hKt(e){return e?e.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Ii();Mo();_r();kc();Iy();cKt=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,$F=Symbol("sentryPostgresConnectionContext"),RX=Symbol.for("sentry.instrumented.postgresjs"),uKt=Symbol.for("sentry.query.from.instrumented.sql")});function SKt(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:EDe(e),message:wDe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${wDe(r)}`:"Assertion failed",n.data.arguments=r}else return;Gl(n,{input:t,level:e})}function wDe(e){return"util"in Bt&&typeof Bt.util.format=="function"?Bt.util.format(...e):m7(e," ")}var yKt,eH,kDe=v(()=>{EX();uo();_De();_r();bDe();yy();Fa();yKt="Console",eH=(e={})=>{let t=new Set(e.levels||SO);return{name:yKt,setup(n){SDe(({args:r,level:i})=>{ct()!==n||!t.has(i)||SKt(i,r)})}}}});var _Kt,EKt,IX,IDe=v(()=>{uo();Mo();_Kt="ConversationId",EKt=(()=>({name:_Kt,setup(e){e.on("spanStart",t=>{let n=Ln().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(C7,i)})}})),IX=EKt});function tH(e,t={},n=Ln()){let{message:r,name:i,email:s,url:o,source:a,associatedEventId:c,tags:u}=e,l={contexts:{feedback:{contact_email:s,name:i,message:r,url:o,source:a,associated_event_id:c}},type:"feedback",level:"info",tags:u},d=n?.getClient()||ct();return d&&d.emit("beforeSendFeedback",l,t),n.captureEvent(l,t)}var xDe=v(()=>{uo()});var ODe,Py,as,ZA,Cy,YA,My,JA,Dy,nH,NDe,PDe,iu,lo,zl,CDe,ci,Is,xc,ia,Oc,sa,MDe,il,Hs,Cp,CE,Lo,xX,DDe,VO,LDe,UDe,OX,Ly,rH,jDe,FDe,HDe,qDe,XA,BDe,GDe,zDe,VDe,ME,NX,PX,iH,sH,WDe,CX,MX,DX,KDe,ZDe,LX,za=v(()=>{ODe="gen_ai.prompt",Py="gen_ai.system",as="gen_ai.request.model",ZA="gen_ai.request.stream",Cy="gen_ai.request.temperature",YA="gen_ai.request.max_tokens",My="gen_ai.request.frequency_penalty",JA="gen_ai.request.presence_penalty",Dy="gen_ai.request.top_p",nH="gen_ai.request.top_k",NDe="gen_ai.request.encoding_format",PDe="gen_ai.request.dimensions",iu="gen_ai.response.finish_reasons",lo="gen_ai.response.model",zl="gen_ai.response.id",CDe="gen_ai.response.stop_reason",ci="gen_ai.usage.input_tokens",Is="gen_ai.usage.output_tokens",xc="gen_ai.usage.total_tokens",ia="gen_ai.operation.name",Oc="sentry.sdk_meta.gen_ai.input.messages.original_length",sa="gen_ai.input.messages",MDe="gen_ai.output.messages",il="gen_ai.system_instructions",Hs="gen_ai.response.text",Cp="gen_ai.request.available_tools",CE="gen_ai.response.streaming",Lo="gen_ai.response.tool_calls",xX="gen_ai.agent.name",DDe="gen_ai.pipeline.name",VO="gen_ai.conversation.id",LDe="gen_ai.usage.cache_creation_input_tokens",UDe="gen_ai.usage.cache_read_input_tokens",OX="gen_ai.usage.input_tokens.cache_write",Ly="gen_ai.usage.input_tokens.cached",rH="gen_ai.invoke_agent",jDe="gen_ai.generate_text",FDe="gen_ai.stream_text",HDe="gen_ai.generate_object",qDe="gen_ai.stream_object",XA="gen_ai.embeddings.input",BDe="gen_ai.embeddings",GDe="gen_ai.embeddings",zDe="gen_ai.rerank",VDe="gen_ai.execute_tool",ME="gen_ai.tool.name",NX="gen_ai.tool.call.id",PX="gen_ai.tool.type",iH="gen_ai.tool.input",sH="gen_ai.tool.output",WDe="gen_ai.tool.description",CX="openai.response.id",MX="openai.response.model",DX="openai.response.timestamp",KDe="openai.usage.completion_tokens",ZDe="openai.usage.prompt_tokens",LX="anthropic.response.timestamp"});var WO,UX,jX,YDe,JDe,XDe,FX=v(()=>{WO=new Map,UX=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),jX=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),YDe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),JDe=new Set(["ai.rerank.doRerank"]),XDe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function Uy(e){return!e||typeof e!="object"?!1:TKt(e)||$De(e)||bKt(e)||eLe(e)||tLe(e)||vKt(e)||AKt(e)||RKt(e)||wKt(e)||kKt(e)||IKt(e)||xKt(e)}function bKt(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):QDe(e):!1}function QDe(e){return"image_url"in e&&!!e.image_url&&typeof e.image_url=="object"&&"url"in e.image_url&&typeof e.image_url.url=="string"&&e.image_url.url.startsWith("data:")}function TKt(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&Uy(e.source)}function $De(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function eLe(e){return"type"in e&&e.type==="input_audio"&&"input_audio"in e&&!!e.input_audio&&typeof e.input_audio=="object"&&"data"in e.input_audio&&typeof e.input_audio.data=="string"}function tLe(e){return"type"in e&&e.type==="file"&&"file"in e&&!!e.file&&typeof e.file=="object"&&"file_data"in e.file&&typeof e.file.file_data=="string"}function vKt(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function AKt(e){return"type"in e&&e.type==="file"&&"mediaType"in e&&typeof e.mediaType=="string"&&"data"in e&&typeof e.data=="string"&&!e.data.startsWith("http://")&&!e.data.startsWith("https://")}function RKt(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function wKt(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function kKt(e){return"b64_json"in e}function IKt(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function xKt(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function DE(e){let t={...e};Uy(t.source)&&(t.source=DE(t.source)),$De(e)&&(t.inlineData={...e.inlineData,data:KO}),QDe(e)&&(t.image_url={...e.image_url,url:KO}),eLe(e)&&(t.input_audio={...e.input_audio,data:KO}),tLe(e)&&(t.file={...e.file,file_data:KO});for(let n of OKt)typeof t[n]=="string"&&(t[n]=KO);return t}var KO,OKt,HX=v(()=>{KO="[Blob substitute]",OKt=["image_url","data","content","b64_json","result","uri","image"]});function aH(e,t){if(oH(e)<=t)return e;let n=0,r=e.length,i="";for(;n<=r;){let s=Math.floor((n+r)/2),o=e.slice(0,s);oH(o)<=t?(i=o,n=s+1):r=s-1}return i}function NKt(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function nLe(e,t){return typeof e=="string"?t:{...e,text:t}}function PKt(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function iLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function sLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function CKt(e,t){let n={...e,content:""},r=BX(n),i=t-r;if(i<=0)return[];let s=aH(e.content,i);return[{...e,content:s}]}function MKt(e){return"parts"in e&&Array.isArray(e.parts)?{key:"parts",items:e.parts}:"content"in e&&Array.isArray(e.content)?{key:"content",items:e.content}:{key:null,items:[]}}function DKt(e,t){let{key:n,items:r}=MKt(e);if(n===null||r.length===0)return[];let i=r.map(c=>nLe(c,"")),s=BX({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=NKt(c),l=oH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=aH(u,o);d&&a.push(nLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function LKt(e,t){if(!e)return[];if(typeof e=="string"){let n=aH(e,t);return n?[n]:[]}return typeof e!="object"?[]:PKt(e)?CKt(e,t):iLe(e)||sLe(e)?DKt(e,t):[]}function qX(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(iLe(n)?r={...n,content:qX(n.content)}:"content"in n&&Uy(n.content)&&(r={...n,content:DE(n.content)}),sLe(n)&&(r={...r??n,parts:qX(n.parts)}),Uy(r)?r=DE(r):Uy(n)&&(r=DE(n))),r??n})}function UKt(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=qX([r]),s=i[0];return BX(s)<=n?i:LKt(s,n)}function jy(e){return UKt(e,rLe)}function oLe(e){return aH(e,rLe)}var rLe,oH,BX,ZO=v(()=>{HX();rLe=2e4,oH=e=>new TextEncoder().encode(e).length,BX=e=>oH(JSON.stringify(e))});function Mp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function QA(e,t){return e?`${e}.${t}`:t}function YO(e,t,n,r,i){if(t!==void 0&&e.setAttributes({[ci]:t}),n!==void 0&&e.setAttributes({[Is]:n}),t!==void 0||n!==void 0||r!==void 0||i!==void 0){let s=(t??0)+(n??0)+(r??0)+(i??0);e.setAttributes({[xc]:s})}}function LE(e){if(typeof e=="string")return oLe(e);if(Array.isArray(e)){let t=jy(e);return JSON.stringify(t)}return JSON.stringify(e)}function sl(e){if(!Array.isArray(e))return{systemInstructions:void 0,filteredMessages:e};let t=e.findIndex(o=>o&&typeof o=="object"&&"role"in o&&o.role==="system");if(t===-1)return{systemInstructions:void 0,filteredMessages:e};let n=e[t],r=typeof n.content=="string"?n.content:n.content!==void 0?JSON.stringify(n.content):void 0;if(!r)return{systemInstructions:void 0,filteredMessages:e};let i=JSON.stringify([{type:"text",content:r}]),s=[...e.slice(0,t),...e.slice(t+1)];return{systemInstructions:i,filteredMessages:s}}async function jKt(e,t,n){let r=e.catch(o=>{throw Wt(o,{mechanism:{handled:!1,type:n}}),o}),i=await t,s=await r;return s&&typeof s=="object"&&"data"in s?{...s,data:i}:i}function $A(e,t,n){return ra(e)?new Proxy(e,{get(r,i){let o=i in Promise.prototype||i===Symbol.toStringTag?t:r,a=Reflect.get(o,i);return i==="withResponse"&&typeof a=="function"?function(){let u=a.call(r);return jKt(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var Dp=v(()=>{rl();uo();Ha();za();ZO()});var cH,aLe,uH,cLe,uLe,GX,zX,VX,lLe,UE,eR,JO,dLe,fLe,pLe,hLe,mLe,gLe,WX,KX,yLe,SLe,ZX=v(()=>{cH="operation.name",aLe="ai.operationId",uH="ai.prompt",cLe="ai.schema",uLe="ai.response.object",GX="ai.values",zX="ai.response.text",VX="ai.response.toolCalls",lLe="ai.response.finishReason",UE="ai.prompt.messages",eR="ai.prompt.tools",JO="ai.model.id",dLe="ai.response.providerMetadata",fLe="ai.usage.cachedInputTokens",pLe="ai.telemetry.functionId",hLe="ai.usage.completionTokens",mLe="ai.usage.promptTokens",gLe="ai.usage.tokens",WX="ai.toolCall.name",KX="ai.toolCall.id",yLe="ai.toolCall.args",SLe="ai.toolCall.result"});function ELe(e,t){let n=e.parent_span_id;if(!n)return;let r=e.data[ci],i=e.data[Is];if(typeof r=="number"||typeof i=="number"){let s=t.get(n)||{inputTokens:0,outputTokens:0};typeof r=="number"&&(s.inputTokens+=r),typeof i=="number"&&(s.outputTokens+=i),t.set(n,s)}}function YX(e,t){let n=t.get(e.span_id);!n||!e.data||(n.inputTokens>0&&(e.data[ci]=n.inputTokens),n.outputTokens>0&&(e.data[Is]=n.outputTokens),(n.inputTokens>0||n.outputTokens>0)&&(e.data["gen_ai.usage.total_tokens"]=n.inputTokens+n.outputTokens))}function FKt(e){let t=new Map;for(let n of e){let r=n.data[Cp];if(typeof r=="string")try{let i=JSON.parse(r);for(let s of i)s.name&&s.description&&!t.has(s.name)&&t.set(s.name,s.description)}catch{}}return t}function bLe(e,t){let n=FKt(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[ME];if(typeof i=="string"){let s=n.get(i);s&&(r.data[WDe]=s)}}r.op==="gen_ai.invoke_agent"&&YX(r,t)}}function JX(e){return WO.get(e)}function XX(e){WO.delete(e)}function TLe(e){let t=e.map(n=>{if(typeof n=="string")try{return JSON.parse(n)}catch{return n}return n});return JSON.stringify(t)}function _Le(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function HKt(e){try{let t=JSON.parse(e);if(t&&typeof t=="object"){let{messages:n}=t,{prompt:r,system:i}=t,s=[];if(typeof i=="string"&&s.push({role:"system",content:i}),typeof n=="string")try{n=JSON.parse(n)}catch{}if(Array.isArray(n))return s.push(..._Le(n)),s;if(Array.isArray(r))return s.push(..._Le(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function vLe(e,t){if(typeof t[uH]=="string"&&!t[sa]&&!t[UE]){let n=t[uH],r=HKt(n);if(r.length){let{systemInstructions:i,filteredMessages:s}=sl(r);i&&e.setAttribute(il,i);let o=Array.isArray(s)?s.length:0,a=LE(s);e.setAttributes({[uH]:a,[sa]:a,[Oc]:o})}}else if(typeof t[UE]=="string")try{let n=JSON.parse(t[UE]);if(Array.isArray(n)){let{systemInstructions:r,filteredMessages:i}=sl(n);r&&e.setAttribute(il,r);let s=Array.isArray(i)?i.length:0,o=LE(i);e.setAttributes({[UE]:o,[sa]:o,[Oc]:s})}}catch{}}function ALe(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return rH;case"ai.generateText.doGenerate":return jDe;case"ai.streamText.doStream":return FDe;case"ai.generateObject.doGenerate":return HDe;case"ai.streamObject.doStream":return qDe;case"ai.embed.doEmbed":return BDe;case"ai.embedMany.doEmbed":return GDe;case"ai.rerank.doRerank":return zDe;case"ai.toolCall":return VDe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var QX=v(()=>{za();Dp();FX();ZX()});function qKt(e){return UX.has(e)?"invoke_agent":jX.has(e)?"generate_content":YDe.has(e)?"embeddings":JDe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function BKt(e){let{data:t,description:n}=vt(e);if(n){if(t[WX]&&t[KX]&&n==="ai.toolCall"){KKt(e,t);return}!t[aLe]&&!n.startsWith("ai.")||ZKt(e,n,t)}}function GKt(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)WKt(r),ELe(r,t);bLe(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&YX(n,t)}return e}function zKt(e){if(typeof e!="string")return"stop";switch(e){case"tool-calls":return"tool_call";case"stop":case"length":case"content_filter":case"error":return e;default:return e}}function VKt(e){let t=e[zX],n=e[VX],r=e[lLe];if(t==null&&n==null)return;let i=[];if(typeof t=="string"&&t.length>0&&i.push({type:"text",content:t}),n!=null)try{let s=typeof n=="string"?JSON.parse(n):n;if(Array.isArray(s)){for(let o of s){let a=o.input??o.args;i.push({type:"tool_call",id:o.toolCallId,name:o.toolName,arguments:typeof a=="string"?a:JSON.stringify(a??{})})}delete e[VX]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:zKt(r)};e[MDe]=JSON.stringify([s]),delete e[zX]}}function WKt(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),oa(t,hLe,Is),oa(t,mLe,ci),oa(t,fLe,Ly),oa(t,"ai.usage.inputTokens",ci),oa(t,"ai.usage.outputTokens",Is),oa(t,gLe,ci),oa(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[ci]=="number"&&typeof t[Ly]=="number"&&(t[ci]=t[ci]+t[Ly]),typeof t[ci]=="number"){let r=typeof t[Is]=="number"?t[Is]:0;t[xc]=r+t[ci]}if(t[eR]&&Array.isArray(t[eR])&&(t[eR]=TLe(t[eR])),t[cH]){let r=qKt(t[cH]);t[ia]=r,delete t[cH]}if(oa(t,UE,sa),VKt(t),oa(t,uLe,"gen_ai.response.object"),oa(t,eR,"gen_ai.request.available_tools"),oa(t,yLe,iH),oa(t,SLe,sH),oa(t,cLe,"gen_ai.request.schema"),oa(t,JO,as),Array.isArray(t[GX])){let r=t[GX].map(i=>{try{return JSON.parse(i)}catch{return i}});t[XA]=r.length===1?r[0]:JSON.stringify(r)}YKt(t);for(let r of Object.keys(t))r.startsWith("ai.")&&oa(t,r,`vercel.${r}`)}}function oa(e,t,n){e[t]!=null&&(e[n]=e[t],delete e[t])}function KKt(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(ia,"execute_tool"),oa(t,WX,ME),oa(t,KX,NX);let n=t[NX];typeof n=="string"&&WO.set(n,e.spanContext()),t[PX]||e.setAttribute(PX,"function");let r=t[ME];r&&e.updateName(`execute_tool ${r}`)}function ZKt(e,t,n){e.setAttribute(At,"auto.vercelai.otel");let r=t.replace("ai.","");e.setAttribute("ai.pipeline.name",r),e.updateName(r);let i=n[pLe];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),vLe(e,n),n[JO]&&!n[lo]&&e.setAttribute(lo,n[JO]),e.setAttribute("ai.streaming",t.includes("stream"));let s=ALe(t);if(s&&e.setAttribute(zt,s),UX.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[JO];if(o){let a=jX.has(t)?"generate_content":XDe[t];a&&e.updateName(`${a} ${o}`)}}function lH(e){e.on("spanStart",BKt),e.addEventProcessor(Object.assign(GKt,{id:"VercelAiEventProcessor"}))}function YKt(e){let t=e[dLe];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(af(e,Ly,r.cachedPromptTokens),af(e,"gen_ai.usage.output_tokens.reasoning",r.reasoningTokens),af(e,"gen_ai.usage.output_tokens.prediction_accepted",r.acceptedPredictionTokens),af(e,"gen_ai.usage.output_tokens.prediction_rejected",r.rejectedPredictionTokens),e["gen_ai.conversation.id"]||af(e,"gen_ai.conversation.id",r.responseId)),n.anthropic){let i=n.anthropic.usage?.cache_read_input_tokens??n.anthropic.cacheReadInputTokens;af(e,Ly,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;af(e,OX,s)}n.bedrock?.usage&&(af(e,Ly,n.bedrock.usage.cacheReadInputTokens),af(e,OX,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(af(e,Ly,n.deepseek.promptCacheHitTokens),af(e,"gen_ai.usage.input_tokens.cache_miss",n.deepseek.promptCacheMissTokens))}catch{}}function af(e,t,n){n!=null&&(e[t]=n)}var RLe=v(()=>{Mo();kc();za();FX();QX();ZX()});var Fy,wLe,JKt,kLe,dH=v(()=>{Fy="OpenAI",wLe={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},JKt=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],kLe=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...JKt]});function ILe(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function xLe(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function OLe(e){if(e===null||typeof e!="object"||!("object"in e))return!1;let t=e;return t.object==="list"&&typeof t.model=="string"&&t.model.toLowerCase().includes("embedding")}function NLe(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function PLe(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function CLe(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function MLe(e,t,n){if(fH(e,t.id,t.model,t.created),t.usage&&XO(e,t.usage.prompt_tokens,t.usage.completion_tokens,t.usage.total_tokens),Array.isArray(t.choices)){let r=t.choices.map(i=>i.finish_reason).filter(i=>i!==null);if(r.length>0&&e.setAttributes({[iu]:JSON.stringify(r)}),n){let i=t.choices.map(s=>s.message?.tool_calls).filter(s=>Array.isArray(s)&&s.length>0).flat();i.length>0&&e.setAttributes({[Lo]:JSON.stringify(i)})}}}function DLe(e,t,n){if(fH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[iu]:JSON.stringify([t.status])}),t.usage&&XO(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.total_tokens),n){let r=t;if(Array.isArray(r.output)&&r.output.length>0){let i=r.output.filter(s=>typeof s=="object"&&s!==null&&s.type==="function_call");i.length>0&&e.setAttributes({[Lo]:JSON.stringify(i)})}}}function LLe(e,t){e.setAttributes({[MX]:t.model,[lo]:t.model}),t.usage&&XO(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function ULe(e,t){let{id:n,created_at:r}=t;e.setAttributes({[CX]:n,[zl]:n,[VO]:n}),r&&e.setAttributes({[DX]:new Date(r*1e3).toISOString()})}function XO(e,t,n,r){t!==void 0&&e.setAttributes({[ZDe]:t,[ci]:t}),n!==void 0&&e.setAttributes({[KDe]:n,[Is]:n}),r!==void 0&&e.setAttributes({[xc]:r})}function fH(e,t,n,r){e.setAttributes({[CX]:t,[zl]:t}),e.setAttributes({[MX]:n,[lo]:n}),e.setAttributes({[DX]:new Date(r*1e3).toISOString()})}function XKt(e){if("conversation"in e&&typeof e.conversation=="string")return e.conversation;if("previous_response_id"in e&&typeof e.previous_response_id=="string")return e.previous_response_id}function jLe(e){let t={[as]:e.model??"unknown"};"temperature"in e&&(t[Cy]=e.temperature),"top_p"in e&&(t[Dy]=e.top_p),"frequency_penalty"in e&&(t[My]=e.frequency_penalty),"presence_penalty"in e&&(t[JA]=e.presence_penalty),"stream"in e&&(t[ZA]=e.stream),"encoding_format"in e&&(t[NDe]=e.encoding_format),"dimensions"in e&&(t[PDe]=e.dimensions);let n=XKt(e);return n&&(t[VO]=n),t}var $X=v(()=>{za()});function QKt(e,t){for(let n of e){let r=n.index;if(!(r===void 0||!n.function))if(!(r in t.chatCompletionToolCalls))t.chatCompletionToolCalls[r]={...n,function:{name:n.function.name,arguments:n.function.arguments||""}};else{let i=t.chatCompletionToolCalls[r];n.function.arguments&&i?.function&&(i.function.arguments+=n.function.arguments)}}}function $Kt(e,t,n){t.responseId=e.id??t.responseId,t.responseModel=e.model??t.responseModel,t.responseTimestamp=e.created??t.responseTimestamp,e.usage&&(t.promptTokens=e.usage.prompt_tokens,t.completionTokens=e.usage.completion_tokens,t.totalTokens=e.usage.total_tokens);for(let r of e.choices??[])n&&(r.delta?.content&&t.responseTexts.push(r.delta.content),r.delta?.tool_calls&&QKt(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function e3t(e,t,n,r){if(!(e&&typeof e=="object")){t.eventTypes.push("unknown:non-object");return}if(e instanceof Error){r.setStatus({code:2,message:"internal_error"}),Wt(e,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});return}if(!("type"in e))return;let i=e;if(!kLe.includes(i.type)){t.eventTypes.push(i.type);return}if(n&&(i.type==="response.output_item.done"&&"item"in i&&t.responsesApiToolCalls.push(i.item),i.type==="response.output_text.delta"&&"delta"in i&&i.delta)){t.responseTexts.push(i.delta);return}if("response"in i){let{response:s}=i;t.responseId=s.id??t.responseId,t.responseModel=s.model??t.responseModel,t.responseTimestamp=s.created_at??t.responseTimestamp,s.usage&&(t.promptTokens=s.usage.input_tokens,t.completionTokens=s.usage.output_tokens,t.totalTokens=s.usage.total_tokens),s.status&&t.finishReasons.push(s.status),n&&s.output_text&&t.responseTexts.push(s.output_text)}}async function*FLe(e,t,n){let r={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",responseTimestamp:0,promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(let i of e)CLe(i)?$Kt(i,r,n):PLe(i)&&e3t(i,r,n,t),yield i}finally{fH(t,r.responseId,r.responseModel,r.responseTimestamp),XO(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[CE]:!0}),r.finishReasons.length&&t.setAttributes({[iu]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length&&t.setAttributes({[Hs]:r.responseTexts.join("")});let s=[...Object.values(r.chatCompletionToolCalls),...r.responsesApiToolCalls];s.length>0&&t.setAttributes({[Lo]:JSON.stringify(s)}),t.end()}}var HLe=v(()=>{rl();za();dH();$X()});function t3t(e){let t=Array.isArray(e.tools)?e.tools:[],r=e.web_search_options&&typeof e.web_search_options=="object"?[{type:"web_search_options",...e.web_search_options}]:[],i=[...t,...r];if(i.length!==0)try{return JSON.stringify(i)}catch(s){Le&&J.error("Failed to serialize OpenAI tools:",s);return}}function n3t(e,t){let n={[Py]:"openai",[ia]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=t3t(r);i&&(n[Cp]=i),Object.assign(n,jLe(r))}else n[as]="unknown";return n}function r3t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(ILe(r)){if(MLe(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[Hs]:JSON.stringify(i)})}}else xLe(r)?(DLe(e,r,n),n&&r.output_text&&e.setAttributes({[Hs]:r.output_text})):OLe(r)?LLe(e,r):NLe(r)&&ULe(e,r)}function qLe(e,t,n){if(n==="embeddings"&&"input"in t){let a=t.input;if(a==null||typeof a=="string"&&a.length===0||Array.isArray(a)&&a.length===0)return;e.setAttribute(XA,typeof a=="string"?a:JSON.stringify(a));return}let r="input"in t?t.input:"messages"in t?t.messages:void 0;if(!r||Array.isArray(r)&&r.length===0)return;let{systemInstructions:i,filteredMessages:s}=sl(r);i&&e.setAttribute(il,i);let o=LE(s);e.setAttribute(sa,o),Array.isArray(s)?e.setAttribute(Oc,s.length):e.setAttribute(Oc,1)}function i3t(e,t,n,r,i){return function(...o){let a=n.operation,c=n3t(o,a),u=c[as]||"unknown",l=o[0],d=l&&typeof l=="object"&&l.stream===!0,f={name:`${a} ${u}`,op:`gen_ai.${a}`,attributes:c};if(d){let m,y=Do(f,g=>(m=e.apply(r,o),i.recordInputs&&l&&qLe(g,l,a),(async()=>{try{let E=await m;return FLe(E,g,i.recordOutputs??!1)}catch(E){throw g.setStatus({code:2,message:"internal_error"}),Wt(E,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:t}}}),g.end(),E}})()));return $A(m,y,"auto.ai.openai")}let p,h=of(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&qLe(m,l,a),p.then(y=>(r3t(m,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),y})));return $A(p,h,"auto.ai.openai")}}function BLe(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=QA(t,String(i)),a=wLe[o];return typeof s=="function"&&a?i3t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?BLe(s,o,n):s}})}function pH(e,t){return BLe(e,"",Mp(t))}var GLe=v(()=>{Ii();rl();Mo();_r();Iy();za();Dp();dH();HLe();$X()});var Hy,zLe,eQ=v(()=>{Hy="Anthropic_AI",zLe={"messages.create":{operation:"chat"},"messages.stream":{operation:"chat",streaming:!0},"messages.countTokens":{operation:"chat"},"models.get":{operation:"models"},"completions.create":{operation:"chat"},"models.retrieve":{operation:"models"},"beta.messages.create":{operation:"chat"}}});function VLe(e,t){if(Array.isArray(t)&&t.length===0)return;let{systemInstructions:n,filteredMessages:r}=sl(t);n&&e.setAttributes({[il]:n});let i=Array.isArray(r)?r.length:1;e.setAttributes({[sa]:LE(r),[Oc]:i})}function tQ(e){return e&&s3t[e]||"internal_error"}function WLe(e,t){t.error&&(e.setStatus({code:2,message:tQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function KLe(e){let{system:t,messages:n,input:r}=e,i=typeof t=="string"?[{role:"system",content:e.system}]:[],s=Array.isArray(r)?r:r!=null?[r]:void 0,o=Array.isArray(n)?n:n!=null?[n]:[],a=s??o;return[...i,...a]}var s3t,nQ=v(()=>{rl();za();Dp();s3t={invalid_request_error:"invalid_argument",authentication_error:"unauthenticated",permission_error:"permission_denied",not_found_error:"not_found",request_too_large:"failed_precondition",rate_limit_error:"resource_exhausted",api_error:"internal_error",overloaded_error:"unavailable"}});function o3t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:tQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function a3t(e,t){if(e.type==="message_delta"&&e.usage&&"output_tokens"in e.usage&&typeof e.usage.output_tokens=="number"&&(t.completionTokens=e.usage.output_tokens),e.message){let n=e.message;n.id&&(t.responseId=n.id),n.model&&(t.responseModel=n.model),n.stop_reason&&t.finishReasons.push(n.stop_reason),n.usage&&(typeof n.usage.input_tokens=="number"&&(t.promptTokens=n.usage.input_tokens),typeof n.usage.cache_creation_input_tokens=="number"&&(t.cacheCreationInputTokens=n.usage.cache_creation_input_tokens),typeof n.usage.cache_read_input_tokens=="number"&&(t.cacheReadInputTokens=n.usage.cache_read_input_tokens))}}function c3t(e,t){e.type!=="content_block_start"||typeof e.index!="number"||!e.content_block||(e.content_block.type==="tool_use"||e.content_block.type==="server_tool_use")&&(t.activeToolBlocks[e.index]={id:e.content_block.id,name:e.content_block.name,inputJsonParts:[]})}function u3t(e,t,n){if(!(e.type!=="content_block_delta"||!e.delta)){if(typeof e.index=="number"&&"partial_json"in e.delta&&typeof e.delta.partial_json=="string"){let r=t.activeToolBlocks[e.index];r&&r.inputJsonParts.push(e.delta.partial_json)}n&&typeof e.delta.text=="string"&&t.responseTexts.push(e.delta.text)}}function l3t(e,t){if(e.type!=="content_block_stop"||typeof e.index!="number")return;let n=t.activeToolBlocks[e.index];if(!n)return;let r=n.inputJsonParts.join(""),i;try{i=r?JSON.parse(r):{}}catch{i={__unparsed:r}}t.toolCalls.push({type:"tool_use",id:n.id,name:n.name,input:i}),delete t.activeToolBlocks[e.index]}function ZLe(e,t,n,r){!(e&&typeof e=="object")||o3t(e,r)||(a3t(e,t),c3t(e,t),u3t(e,t,n),l3t(e,t))}function d3t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[zl]:e.responseId}),e.responseModel&&t.setAttributes({[lo]:e.responseModel}),YO(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[CE]:!0}),e.finishReasons.length>0&&t.setAttributes({[iu]:JSON.stringify(e.finishReasons)}),n&&e.responseTexts.length>0&&t.setAttributes({[Hs]:e.responseTexts.join("")}),n&&e.toolCalls.length>0&&t.setAttributes({[Lo]:JSON.stringify(e.toolCalls)}),t.end())}async function*YLe(e,t,n){let r={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(let i of e)ZLe(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[zl]:r.responseId}),r.responseModel&&t.setAttributes({[lo]:r.responseModel}),YO(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[CE]:!0}),r.finishReasons.length>0&&t.setAttributes({[iu]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length>0&&t.setAttributes({[Hs]:r.responseTexts.join("")}),n&&r.toolCalls.length>0&&t.setAttributes({[Lo]:JSON.stringify(r.toolCalls)}),t.end()}}function JLe(e,t,n){let r={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return e.on("streamEvent",i=>{ZLe(i,r,n,t)}),e.on("message",()=>{d3t(r,t,n)}),e.on("error",i=>{Wt(i,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),t.isRecording()&&(t.setStatus({code:2,message:"internal_error"}),t.end())}),e}var XLe=v(()=>{rl();za();Dp();nQ()});function f3t(e,t,n){let r={[Py]:"anthropic",[ia]:n,[At]:"auto.ai.anthropic"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let i=e[0];i.tools&&Array.isArray(i.tools)&&(r[Cp]=JSON.stringify(i.tools)),r[as]=i.model??"unknown","temperature"in i&&(r[Cy]=i.temperature),"top_p"in i&&(r[Dy]=i.top_p),"stream"in i&&(r[ZA]=i.stream),"top_k"in i&&(r[nH]=i.top_k),"frequency_penalty"in i&&(r[My]=i.frequency_penalty),"max_tokens"in i&&(r[YA]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[as]=e[0]:r[as]="unknown";return r}function rQ(e,t){let n=KLe(t);VLe(e,n),"prompt"in t&&e.setAttributes({[ODe]:JSON.stringify(t.prompt)})}function p3t(e,t){if("content"in t&&Array.isArray(t.content)){e.setAttributes({[Hs]:t.content.map(r=>r.text).filter(r=>!!r).join("")});let n=[];for(let r of t.content)(r.type==="tool_use"||r.type==="server_tool_use")&&n.push(r);n.length>0&&e.setAttributes({[Lo]:JSON.stringify(n)})}"completion"in t&&e.setAttributes({[Hs]:t.completion}),"input_tokens"in t&&e.setAttributes({[Hs]:JSON.stringify(t.input_tokens)})}function h3t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[zl]:t.id,[lo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[LX]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[LX]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&YO(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function m3t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){WLe(e,t);return}n&&p3t(e,t),h3t(e,t)}}function QLe(e,t,n){throw Wt(e,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:n}}}),t.isRecording()&&(t.setStatus({code:2,message:"internal_error"}),t.end()),e}function g3t(e,t,n,r,i,s,o,a,c,u,l){let d=i[as]??"unknown",f={name:`${s} ${d}`,op:`gen_ai.${s}`,attributes:i};if(u&&!l){let p,h=Do(f,m=>(p=e.apply(n,r),c.recordInputs&&a&&rQ(m,a),(async()=>{try{let y=await p;return YLe(y,m,c.recordOutputs??!1)}catch(y){return QLe(y,m,o)}})()));return $A(p,h,"auto.ai.anthropic")}else return Do(f,p=>{try{c.recordInputs&&a&&rQ(p,a);let h=t.apply(n,r);return JLe(h,p,c.recordOutputs??!1)}catch(h){return QLe(h,p,o)}})}function y3t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=f3t(a,t,c),l=u[as]??"unknown",d=typeof a[0]=="object"?a[0]:void 0,f=!!d?.stream,p=n.streaming===!0;if(f||p)return g3t(e,s,r,a,u,c,t,d,i,f,p);let h,m=of({name:`${c} ${l}`,op:`gen_ai.${c}`,attributes:u},y=>(h=s.apply(r,a),i.recordInputs&&d&&rQ(y,d),h.then(g=>(m3t(y,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),g})));return $A(h,m,"auto.ai.anthropic")}})}function $Le(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=QA(t,String(i)),a=zLe[o];return typeof s=="function"&&a?y3t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?$Le(s,o,n):s}})}function hH(e,t){return $Le(e,"",Mp(t))}var e1e=v(()=>{rl();Mo();Iy();za();Dp();eQ();XLe();nQ()});var qy,t1e,n1e,iQ,r1e,sQ=v(()=>{qy="Google_GenAI",t1e={"models.generateContent":{operation:"generate_content"},"models.generateContentStream":{operation:"generate_content",streaming:!0},"models.embedContent":{operation:"embeddings"},"chats.create":{operation:"chat"},"chat.sendMessage":{operation:"chat"},"chat.sendMessageStream":{operation:"chat",streaming:!0}},n1e="google_genai",iQ="chats.create",r1e="chat"});function S3t(e,t){let n=e?.promptFeedback;if(n?.blockReason){let r=n.blockReasonMessage??n.blockReason;return t.setStatus({code:2,message:"internal_error"}),Wt(`Content blocked: ${r}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}function _3t(e,t){typeof e.responseId=="string"&&(t.responseId=e.responseId),typeof e.modelVersion=="string"&&(t.responseModel=e.modelVersion);let n=e.usageMetadata;n&&(typeof n.promptTokenCount=="number"&&(t.promptTokens=n.promptTokenCount),typeof n.candidatesTokenCount=="number"&&(t.completionTokens=n.candidatesTokenCount),typeof n.totalTokenCount=="number"&&(t.totalTokens=n.totalTokenCount))}function E3t(e,t,n){Array.isArray(e.functionCalls)&&t.toolCalls.push(...e.functionCalls);for(let r of e.candidates??[]){r?.finishReason&&!t.finishReasons.includes(r.finishReason)&&t.finishReasons.push(r.finishReason);for(let i of r?.content?.parts??[])n&&i.text&&t.responseTexts.push(i.text),i.functionCall&&t.toolCalls.push({type:"function",id:i.functionCall.id,name:i.functionCall.name,arguments:i.functionCall.args})}}function b3t(e,t,n,r){!e||S3t(e,r)||(_3t(e,t),E3t(e,t,n))}async function*i1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)b3t(i,r,n,t),yield i}finally{let i={[CE]:!0};r.responseId&&(i[zl]=r.responseId),r.responseModel&&(i[lo]=r.responseModel),r.promptTokens!==void 0&&(i[ci]=r.promptTokens),r.completionTokens!==void 0&&(i[Is]=r.completionTokens),r.totalTokens!==void 0&&(i[xc]=r.totalTokens),r.finishReasons.length&&(i[iu]=JSON.stringify(r.finishReasons)),n&&r.responseTexts.length&&(i[Hs]=r.responseTexts.join("")),n&&r.toolCalls.length&&(i[Lo]=JSON.stringify(r.toolCalls)),t.setAttributes(i),t.end()}}var s1e=v(()=>{rl();za()});function tR(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>tR(n,t)):typeof e!="object"||!e?[]:"role"in e&&typeof e.role=="string"?[e]:"parts"in e?[{...e,role:t}]:[{role:t,content:e}]}var o1e=v(()=>{});function a1e(e,t){if("model"in e&&typeof e.model=="string")return e.model;if(t&&typeof t=="object"){let n=t;if("model"in n&&typeof n.model=="string")return n.model;if("modelVersion"in n&&typeof n.modelVersion=="string")return n.modelVersion}return"unknown"}function T3t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[Cy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[Dy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[nH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[YA]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[My]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[JA]=e.presencePenalty),t}function v3t(e,t,n){let r={[Py]:n1e,[ia]:e,[At]:"auto.ai.google_genai"};if(t){if(r[as]=a1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,T3t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[Cp]=JSON.stringify(s)}}}else r[as]=a1e({},n);return r}function c1e(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(XA,typeof i=="string"?i:JSON.stringify(i));return}let r=[];if("config"in t&&t.config&&typeof t.config=="object"&&"systemInstruction"in t.config&&t.config.systemInstruction&&r.push(...tR(t.config.systemInstruction,"system")),"history"in t&&r.push(...tR(t.history,"user")),"contents"in t&&r.push(...tR(t.contents,"user")),"message"in t&&r.push(...tR(t.message,"user")),Array.isArray(r)&&r.length){let{systemInstructions:i,filteredMessages:s}=sl(r);i&&e.setAttribute(il,i);let o=Array.isArray(s)?s.length:0;e.setAttributes({[Oc]:o,[sa]:JSON.stringify(jy(s))})}}function A3t(e,t,n){if(!(!t||typeof t!="object")){if(t.modelVersion&&e.setAttribute(lo,t.modelVersion),t.usageMetadata&&typeof t.usageMetadata=="object"){let r=t.usageMetadata;typeof r.promptTokenCount=="number"&&e.setAttributes({[ci]:r.promptTokenCount}),typeof r.candidatesTokenCount=="number"&&e.setAttributes({[Is]:r.candidatesTokenCount}),typeof r.totalTokenCount=="number"&&e.setAttributes({[xc]:r.totalTokenCount})}if(n&&Array.isArray(t.candidates)&&t.candidates.length>0){let r=t.candidates.map(i=>i.content?.parts&&Array.isArray(i.content.parts)?i.content.parts.map(s=>typeof s.text=="string"?s.text:"").filter(s=>s.length>0).join(""):"").filter(i=>i.length>0);r.length>0&&e.setAttributes({[Hs]:r.join("")})}if(n&&t.functionCalls){let r=t.functionCalls;Array.isArray(r)&&r.length>0&&e.setAttributes({[Lo]:JSON.stringify(r)})}}}function u1e(e,t,n,r,i){let s=t===iQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=v3t(l,d,r),p=f[as]??"unknown";return n.streaming?Do({name:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},async h=>{try{i.recordInputs&&d&&c1e(h,d,o);let m=await a.apply(r,u);return i1e(m,h,!!i.recordOutputs)}catch(m){throw h.setStatus({code:2,message:"internal_error"}),Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}}),h.end(),m}}):of({name:s?`${l} ${p} create`:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},h=>(i.recordInputs&&d&&c1e(h,d,o),sf(()=>a.apply(r,u),m=>{Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}})},()=>{},m=>{!s&&!o&&A3t(h,m,i.recordOutputs)})))}})}function oQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=QA(t,String(i)),c=t1e[a];if(typeof o=="function"&&c){if(a===iQ){let u=u1e(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?oQ(f,r1e,n):f}}return u1e(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?oQ(o,a,n):o}})}function mH(e,t){return oQ(e,"",Mp(t))}var l1e=v(()=>{rl();Mo();Iy();CF();za();ZO();Dp();sQ();s1e();o1e()});var gH,jE,d1e,yH=v(()=>{gH="LangChain",jE="auto.ai.langchain",d1e={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function ym(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function nR(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&Uy(n)?DE(n):n);return JSON.stringify(t)}catch{return String(e)}return ym(e)}function QO(e){let t=e.toLowerCase();return d1e[t]??t}function f1e(e){return e.includes("System")?"system":e.includes("Human")?"user":e.includes("AI")||e.includes("Assistant")?"assistant":e.includes("Function")?"function":e.includes("Tool")?"tool":"user"}function aQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function $O(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:QO(i),content:nR(t.content)}}if(t.lc===1&&t.kwargs){let i=t.id,s=Array.isArray(i)&&i.length>0?i[i.length-1]:"",o=typeof s=="string"?f1e(s):"user";return{role:QO(o),content:nR(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:QO(i),content:nR(t.content)}}if(t.role)return{role:QO(String(t.role)),content:nR(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:QO(f1e(r)),content:nR(t.content)}:{role:"user",content:nR(t.content)}})}function R3t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;ol(r,Cy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;ol(r,YA,o);let a=t?.top_p??i?.top_p;ol(r,Dy,a);let c=t?.frequency_penalty;ol(r,My,c);let u=t?.presence_penalty;return ol(r,JA,u),t&&"stream"in t&&Vl(r,ZA,!!t.stream),r}function p1e(e,t,n,r,i){return{[Py]:ym(e??"langchain"),[ia]:"chat",[as]:ym(t),[At]:jE,...R3t(n,r,i)}}function h1e(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=p1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Vl(a,Oc,t.length);let c=t.map(u=>({role:"user",content:u}));Vl(a,sa,ym(c))}return a}function m1e(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=p1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=$O(t.flat()),{systemInstructions:u,filteredMessages:l}=sl(c);u&&Vl(a,il,u);let d=Array.isArray(l)?l.length:0;Vl(a,Oc,d);let f=jy(l);Vl(a,sa,ym(f))}return a}function w3t(e,t){let n=[],r=e.flat();for(let i of r){let s=i.message?.content;if(Array.isArray(s))for(let o of s){let a=o;a.type==="tool_use"&&n.push(a)}}n.length>0&&Vl(t,Lo,ym(n))}function k3t(e,t){if(!e)return;let n=e.tokenUsage,r=e.usage;if(n)ol(t,ci,n.promptTokens),ol(t,Is,n.completionTokens),ol(t,xc,n.totalTokens);else if(r){ol(t,ci,r.input_tokens),ol(t,Is,r.output_tokens);let i=Number(r.input_tokens),s=Number(r.output_tokens),o=(Number.isNaN(i)?0:i)+(Number.isNaN(s)?0:s);o>0&&ol(t,xc,o),r.cache_creation_input_tokens!==void 0&&ol(t,LDe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&ol(t,UDe,r.cache_read_input_tokens)}}function g1e(e,t){if(!e)return;let n={};if(Array.isArray(e.generations)){let u=e.generations.flat().map(l=>l.generationInfo?.finish_reason?l.generationInfo.finish_reason:l.generation_info?.finish_reason?l.generation_info.finish_reason:null).filter(l=>typeof l=="string");if(u.length>0&&Vl(n,iu,ym(u)),w3t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Vl(n,Hs,ym(l))}}k3t(e.llmOutput,n);let r=e.llmOutput,s=e.generations?.[0]?.[0]?.message,o=r?.model_name??r?.model??s?.response_metadata?.model_name;o&&Vl(n,lo,o);let a=r?.id??s?.id;a&&Vl(n,zl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Vl(n,CDe,ym(c)),n}var Vl,ol,SH=v(()=>{Mo();za();HX();ZO();Dp();yH();Vl=(e,t,n)=>{n!=null&&(e[t]=n)},ol=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function _H(e={}){let{recordInputs:t,recordOutputs:n}=Mp(e),r=new Map,i=o=>{let a=r.get(o);a?.isRecording()&&(a.end(),r.delete(o))},s={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(o,a,c,u,l,d,f,p){let h=aQ(d),m=h1e(o,a,t,h,f),y=m[as],g=m[ia];Do({name:`${g} ${y}`,op:"gen_ai.chat",attributes:{...m,[zt]:"gen_ai.chat"}},E=>(r.set(c,E),E))},handleChatModelStart(o,a,c,u,l,d,f,p){let h=aQ(d),m=m1e(o,a,t,h,f),y=m[as],g=m[ia];Do({name:`${g} ${y}`,op:"gen_ai.chat",attributes:{...m,[zt]:"gen_ai.chat"}},E=>(r.set(c,E),E))},handleLLMEnd(o,a,c,u,l){let d=r.get(a);if(d?.isRecording()){let f=g1e(o,n);f&&d.setAttributes(f),i(a)}},handleLLMError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${jE}.llm_error_handler`}})},handleChainStart(o,a,c,u,l,d,f,p){let h=p||o.name||"unknown_chain",m={[At]:"auto.ai.langchain","langchain.chain.name":h};t&&(m["langchain.chain.inputs"]=JSON.stringify(a)),Do({name:`chain ${h}`,op:"gen_ai.invoke_agent",attributes:{...m,[zt]:"gen_ai.invoke_agent"}},y=>(r.set(c,y),y))},handleChainEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({"langchain.chain.outputs":JSON.stringify(o)}),i(a))},handleChainError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${jE}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:jE,[ME]:l};t&&(d[iH]=a),Do({name:`execute_tool ${l}`,op:"gen_ai.execute_tool",attributes:{...d,[zt]:"gen_ai.execute_tool"}},f=>(r.set(c,f),f))},handleToolEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({[sH]:JSON.stringify(o)}),i(a))},handleToolError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${jE}.tool_error_handler`}})},copy(){return s},toJSON(){return{lc:1,type:"not_implemented",id:s.lc_id}},toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:s.lc_id}}};return s}var y1e=v(()=>{rl();Mo();Iy();za();Dp();yH();SH()});var EH,cQ,uQ=v(()=>{EH="LangGraph",cQ="auto.ai.langgraph"});function I3t(e){if(!e||e.length===0)return null;let t=[];for(let n of e)if(n&&typeof n=="object"){let r=n.tool_calls;r&&Array.isArray(r)&&t.push(...r)}return t.length>0?t:null}function x3t(e){let t=e,n=0,r=0,i=0;if(t.usage_metadata&&typeof t.usage_metadata=="object"){let s=t.usage_metadata;return typeof s.input_tokens=="number"&&(n=s.input_tokens),typeof s.output_tokens=="number"&&(r=s.output_tokens),typeof s.total_tokens=="number"&&(i=s.total_tokens),{inputTokens:n,outputTokens:r,totalTokens:i}}if(t.response_metadata&&typeof t.response_metadata=="object"){let s=t.response_metadata;if(s.tokenUsage&&typeof s.tokenUsage=="object"){let o=s.tokenUsage;typeof o.promptTokens=="number"&&(n=o.promptTokens),typeof o.completionTokens=="number"&&(r=o.completionTokens),typeof o.totalTokens=="number"&&(i=o.totalTokens)}}return{inputTokens:n,outputTokens:r,totalTokens:i}}function O3t(e,t){let n=t;if(n.response_metadata&&typeof n.response_metadata=="object"){let r=n.response_metadata;r.model_name&&typeof r.model_name=="string"&&e.setAttribute(lo,r.model_name),r.finish_reason&&typeof r.finish_reason=="string"&&e.setAttribute(iu,[r.finish_reason])}}function S1e(e){if(!e.builder?.nodes?.tools?.runnable?.tools)return null;let t=e.builder?.nodes?.tools?.runnable?.tools;return!t||!Array.isArray(t)||t.length===0?null:t.map(n=>({name:n.lc_kwargs?.name,description:n.lc_kwargs?.description,schema:n.lc_kwargs?.schema}))}function _1e(e,t,n){let i=n?.messages;if(!i||!Array.isArray(i))return;let s=t?.length??0,o=i.length>s?i.slice(s):[];if(o.length===0)return;let a=I3t(o);a&&e.setAttribute(Lo,JSON.stringify(a));let c=$O(o);e.setAttribute(Hs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=x3t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,O3t(e,f)}u>0&&e.setAttribute(ci,u),l>0&&e.setAttribute(Is,l),d>0&&e.setAttribute(xc,d)}var E1e=v(()=>{za();SH()});function lQ(e,t){return new Proxy(e,{apply(n,r,i){return of({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:cQ,[zt]:"gen_ai.create_agent",[ia]:"create_agent"}},s=>{try{let o=Reflect.apply(n,r,i),a=i.length>0?i[0]:{};a?.name&&typeof a.name=="string"&&(s.setAttribute(xX,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=N3t(c.bind(o),o,a,t)),o}catch(o){throw s.setStatus({code:2,message:"internal_error"}),Wt(o,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),o}})}})}function N3t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return of({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:cQ,[zt]:rH,[ia]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(DDe,c),a.setAttribute(xX,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(VO,d);let f=S1e(t);f&&a.setAttribute(Cp,JSON.stringify(f));let p=r.recordInputs,h=r.recordOutputs,m=o.length>0?o[0]?.messages??[]:[];if(m&&p){let g=$O(m),{systemInstructions:E,filteredMessages:S}=sl(g);E&&a.setAttribute(il,E);let _=jy(S),b=Array.isArray(S)?S.length:0;a.setAttributes({[sa]:JSON.stringify(_),[Oc]:b})}let y=await Reflect.apply(i,s,o);return h&&_1e(a,m??null,y),y}catch(c){throw a.setStatus({code:2,message:"internal_error"}),Wt(c,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),c}})}})}function bH(e,t){return e.compile=lQ(e.compile,Mp(t)),e}var b1e=v(()=>{rl();Mo();Iy();za();ZO();Dp();SH();uQ();E1e()});function eN(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var T1e=v(()=>{});function tN(e,t,n){let r=e[t];if(typeof r=="function"){try{e[t]=n}catch{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0,enumerable:!0})}if(e.default===r)try{e.default=n}catch{Object.defineProperty(e,"default",{value:n,writable:!0,configurable:!0,enumerable:!0})}}}var v1e=v(()=>{});function w1e(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes("node_modules/")}function k1e(e){let t=/^\s*[-]{4,}$/,n=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,r=/at (?:async )?(.+?) \(data:(.*?),/;return i=>{let s=i.match(r);if(s)return{filename:``,function:s[1]};let o=i.match(n);if(o){let a,c,u,l,d;if(o[1]){u=o[1];let m=u.lastIndexOf(".");if(u[m-1]==="."&&m--,m>0){a=u.slice(0,m),c=u.slice(m+1);let y=a.indexOf(".Module");y>0&&(u=u.slice(y+1),a=a.slice(0,y))}l=void 0}c&&(l=a,d=c),c===""&&(d=void 0,u=void 0),u===void 0&&(d=d||"?",u=l?`${l}.${d}`:d);let f=qPe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?P3t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:A1e(o[3]),colno:A1e(o[4]),in_app:w1e(f||"",p)}}if(i.match(t))return{filename:i}}}function dQ(e){return[90,k1e(e)]}function A1e(e){return parseInt(e||"",10)||void 0}function P3t(e){try{return decodeURI(e)}catch{return}}var I1e=v(()=>{bA()});var su,x1e=v(()=>{su=class{constructor(t){this._maxSize=t,this._cache=new Map}get size(){return this._cache.size}get(t){let n=this._cache.get(t);if(n!==void 0)return this._cache.delete(t),this._cache.set(t,n),n}set(t,n){if(this._cache.size>=this._maxSize){let r=this._cache.keys().next().value;this._cache.delete(r)}this._cache.set(t,n)}remove(t){let n=this._cache.get(t);return n&&this._cache.delete(t),n}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let t=[];return this._cache.forEach(n=>t.push(n)),t}}});var st=v(()=>{CA();fCe();Iy();pm();K7();Z7();PF();Mo();rl();uo();b7();OA();HMe();GF();oX();qMe();BMe();xO();CF();kc();MA();VMe();WMe();ZMe();YMe();tDe();EX();iDe();oDe();fDe();yDe();RDe();kDe();IDe();xDe();aX();RLe();QX();GLe();dH();e1e();eQ();l1e();sQ();y1e();yH();b1e();uQ();T1e();Fa();Ha();_r();Op();Qd();TDe();v1e();bA();I1e();yy();bF();hm();RO();zMe();x1e();Ty();iF();hy()});function rt(e,t,n){return n?r9t(e,t,n):n9t(e,t)}function n9t(e,t){return Object.assign(n=>{let r=nN[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return nN[e]=i,(0,fQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function r9t(e,t,n){return Object.assign(r=>{let i=n(r),s=nN[e];if(s)return s.setConfig(i),s;let o=new t(i);return nN[e]=o,(0,fQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function rN(e){let t=!1,n=[];if(!i9t(e))t=!0;else{let i=e._wrap;e._wrap=(...s)=>(t=!0,n.forEach(o=>o()),n=[],i(...s))}return i=>{t?i():n.push(i)}}function i9t(e){return typeof e._wrap=="function"}var fQ,nN,TH=v(()=>{fQ=_e(Yt(),1),nN={}});var Xt,cf=v(()=>{Xt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var vH,O1e=v(()=>{vH="@sentry/instrumentation-http"});function N1e(e,t,n,r){let i=0,s=[];Xt&&J.log(r,"Patching request.on");let o=new WeakMap,a=n==="small"?1e3:n==="medium"?1e4:1048576;try{e.on=new Proxy(e.on,{apply:(c,u,l)=>{let[d,f,...p]=l;if(d==="data"){Xt&&J.log(r,`Handling request.on("data") with maximum body size of ${a}b`);let h=new Proxy(f,{apply:(m,y,g)=>{try{let E=g[0],S=Buffer.from(E);i{let[,d]=l,f=o.get(d);if(f){o.delete(d);let p=l.slice();return p[1]=f,Reflect.apply(c,u,p)}return Reflect.apply(c,u,l)}}),e.on("end",()=>{try{let c=Buffer.concat(s).toString("utf-8");if(c){let l=Buffer.byteLength(c,"utf-8")>a?`${Buffer.from(c).subarray(0,a-3).toString("utf-8")}...`:c;t.setSDKProcessingMetadata({normalizedRequest:{data:l}})}}catch(c){Xt&&J.error(r,"Error building captured request body",c)}})}catch(c){Xt&&J.error(r,"Error patching request to capture body",c)}}var P1e=v(()=>{st();cf()});import{subscribe as s9t}from"node:diagnostics_channel";function D1e(e,t){Fs(e,"_startSpanCallback",new WeakRef(t))}function a9t(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(M1e.has(s))return;let o=new Proxy(s,{apply(a,c,u){if(u[0]!=="request")return a.apply(c,u);let l=ct();if(Ve.active().getValue(C1e)||!l)return a.apply(c,u);Xt&&J.log(hQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=zO(f),m=f.ip||f.socket?.remoteAddress,y=f.url||"/";n!=="none"&&!t?.(y,f)&&N1e(f,d,n,hQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let g=(f.method||"GET").toUpperCase(),E=gm(y),S=`${g} ${E}`;return d.setTransactionName(S),r&&l&&c9t(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),vO(d,()=>{let _={traceId:qa(),sampleRand:Co(),propagationSpanId:Ba()};Ln().setPropagationContext({..._}),d.setPropagationContext({..._});let b=Zd.extract(Ve.active(),h.headers).setValue(C1e,!0);return Ve.with(b,()=>{l.emit("httpServerRequest",f,p,h);let T=f._startSpanCallback?.deref();return T?T(()=>a.apply(c,u)):a.apply(c,u)})})}});M1e.add(o),e.emit=o}function c9t(e,{requestIsolationScope:t,response:n,sessionFlushingDelayMS:r}){t.setSDKProcessingMetadata({requestSession:{status:"ok"}}),n.once("close",()=>{let i=t.getScopeData().sdkProcessingMetadata.requestSession;if(e&&i){Xt&&J.log(`Recorded request session with status: ${i.status}`);let s=new Date;s.setSeconds(0,0);let o=s.toISOString(),a=pQ.get(e),c=a?.[o]||{exited:0,crashed:0,errored:0};if(c[{ok:"exited",crashed:"crashed",errored:"errored"}[i.status]]++,a)a[o]=c;else{Xt&&J.log("Opened new request session aggregate.");let u={[o]:c};pQ.set(e,u);let l=()=>{clearTimeout(f),d(),pQ.delete(e);let p=Object.entries(u).map(([h,m])=>({started:h,exited:m.exited,errored:m.errored,crashed:m.crashed}));e.sendSession({aggregates:p})},d=e.on("flush",()=>{Xt&&J.log("Sending request session aggregate due to client flush"),l()}),f=setTimeout(()=>{Xt&&J.log("Sending request session aggregate due to flushing schedule"),l()},r).unref()}}})}var C1e,hQ,pQ,M1e,o9t,iN,AH=v(()=>{Me();st();cf();P1e();C1e=Qu("sentry_http_server_instrumented"),hQ="Http.Server",pQ=new Map,M1e=new WeakSet;o9t=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:hQ,setupOnce(){s9t("http.server.request.start",(r=>{a9t(r.server,t)}))},afterAllSetup(n){Xt&&n.getIntegrationByName("Http")&&J.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}}),iN=o9t});import{errorMonitor as u9t}from"node:events";function d9t(e){return e.headers["next-router-prefetch"]==="1"}function f9t(e){let t=gm(e);return!!(t.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)||t.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))}function p9t(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,Sm.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&f9t(r)||n?.(r,e))}function h9t(e){let t=m9t(e.headers);return t==null?{}:g9t(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function m9t(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function g9t(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function y9t(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[rm]:r,[dE]:r,"http.status_text":i?.toUpperCase()},o=(0,Sm.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[P8]=a,s[C8]=c,s[N8]=u,s["net.peer.port"]=l}if(s[dE]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===Sm.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[im]=a}return s}function S9t(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var Sm,L1e,l9t,sN,mQ=v(()=>{Me();Sm=_e(dr(),1);xn();st();cf();AH();L1e="Http.ServerSpans",l9t=((e={})=>{let t=e.ignoreStaticAssets??!0,n=e.ignoreIncomingRequests,r=e.ignoreStatusCodes??[[401,404],[301,303],[305,399]],{onSpanCreated:i}=e,{requestHook:s,responseHook:o,applyCustomAttributesOnSpan:a}=e.instrumentation??{};return{name:L1e,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;D1e(f,m=>{if(p9t(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Xt&&J.log(L1e,"Skipping span creation for incoming request",f.url),m();let y=d.url||f.url||"/",g=GO(y),E=f.headers,S=E["user-agent"],_=E["x-forwarded-for"],b=f.httpVersion,T=E.host,A=T?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",R=c.tracer,k=y.startsWith("https")?"https":"http",x=d.method||f.method?.toUpperCase()||"GET",N=g?g.pathname:gm(y),P=`${x} ${N}`,D=R.startSpan(P,{kind:Xr.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":d9t(f)||void 0,"http.url":y,"http.method":d.method,"http.target":g?`${g.pathname}${g.search}`:N,"http.host":T,"net.host.name":A,"http.client_ip":typeof _=="string"?_.split(",")[0]:void 0,"http.user_agent":S,"http.scheme":k,"http.flavor":b,"net.transport":b?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...h9t(f),...KF(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(D,f),o?.(D,p),a?.(D,f,p),i?.(D,f,p);let j={type:Sm.RPCType.HTTP,span:D};return Ve.with((0,Sm.setRPCMetadata)(Ut.setSpan(Ve.active(),D),j),()=>{Ve.bind(Ve.active(),f),Ve.bind(Ve.active(),p);let V=!1;function Z(B){if(V)return;V=!0;let G=y9t(f,p);D.setAttributes(G),D.setStatus(B),D.end();let X=G["http.route"];X&&vn().setTransactionName(`${f.method?.toUpperCase()||"GET"} ${X}`)}return p.on("close",()=>{Z(lm(p.statusCode))}),p.on(u9t,()=>{let B=lm(p.statusCode);Z(B.code===2?B:{code:2})}),m()})})})},processEvent(c){if(c.type==="transaction"){let u=c.contexts?.trace?.data?.["http.response.status_code"];if(typeof u=="number"&&S9t(u,r))return Xt&&J.log("Dropping transaction due to status code",u),null}return c},afterAllSetup(c){Xt&&(c.getIntegrationByName("Http")&&J.warn("It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`."),c.getIntegrationByName("Http.Server")||J.error("It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration."))}}}),sN=l9t});function oN(e,t){if(!e)return t;let n=RE(e),r=RE(t);if(!r)return e;let i={},s={};for(let[c,u]of Object.entries(r))c.startsWith(Np)?i[c]=u:s[c]=u;let o=Object.keys(i).length>0,a={};if(n)for(let[c,u]of Object.entries(n))o&&c.startsWith(Np)||(a[c]=u);Object.assign(a,i);for(let[c,u]of Object.entries(s))a[c]||(a[c]=u);return SF(a)}var gQ=v(()=>{st()});function U1e(e,t){let n=_9t(e),r=t?.statusCode,i=eN(r);Gl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function RH(e,t){let n=wH(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=PE(n,r,t)?KA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s;if(!e.getHeader("sentry-trace")){if(o)try{e.setHeader("sentry-trace",o),Xt&&J.log(rR,"Added sentry-trace header to outgoing request")}catch(l){Xt&&J.error(rR,"Failed to add sentry-trace header to outgoing request:",Ip(l)?l.message:"Unknown error")}if(c&&!e.getHeader("traceparent"))try{e.setHeader("traceparent",c),Xt&&J.log(rR,"Added traceparent header to outgoing request")}catch(l){Xt&&J.error(rR,"Failed to add traceparent header to outgoing request:",Ip(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=oN(l,a);if(d)try{e.setHeader("baggage",d),Xt&&J.log(rR,"Added baggage header to outgoing request")}catch(f){Xt&&J.error(rR,"Failed to add baggage header to outgoing request:",Ip(f)?f.message:"Unknown error")}}}}function _9t(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Oy(n.toString()),i={url:Ny(r),"http.method":e.method||"GET"};return r.search&&(i["http.query"]=r.search),r.hash&&(i["http.fragment"]=r.hash),i}catch{return{}}}function j1e(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function wH(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var rR,F1e=v(()=>{st();cf();gQ();rR="@sentry/instrumentation-http"});import{subscribe as yQ,unsubscribe as SQ}from"node:diagnostics_channel";import{errorMonitor as H1e}from"node:events";function E9t(e){let t=wH(e),[n,r]=SX(GO(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[tJ]:i,[ay]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function b9t(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[rm]:t,[Y8]:r,"http.flavor":r,[J8]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...T9t(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[K8]=a,o[Z8]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function T9t(e){let t=v9t(e.headers);return t==null?{}:A9t(e.headers)?{[D8]:t}:{[L8]:t}}function v9t(e){let t=e["content-length"];if(typeof t=="number")return t;if(typeof t!="string")return;let n=parseInt(t,10);if(!isNaN(n))return n}function A9t(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var q1e,aN,FE,_Q=v(()=>{Me();q1e=_e(dr(),1),aN=_e(Yt(),1);xn();st();cf();O1e();F1e();FE=class extends aN.InstrumentationBase{constructor(t={}){super(vH,On,t),this._propagationDecisionMap=new su(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){let t=!1,n=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,c.response)}),r=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,void 0)}),i=(a=>{let c=a;this._onOutgoingRequestCreated(c.request)}),s=a=>(t||(t=!0,yQ("http.client.response.finish",n),yQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&yQ("http.client.request.created",i)),a),o=()=>{SQ("http.client.response.finish",n),SQ("http.client.request.error",r),SQ("http.client.request.created",i)};return[new aN.InstrumentationNodeModuleDefinition("http",["*"],s,o),new aN.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=E9t(t),s=DF({name:r,attributes:i,onlyIfParent:!0});this.getConfig().outgoingRequestHook?.(s,t);let o=new Proxy(n,{apply(u,l,d){let[f]=d;if(f!=="response")return u.apply(l,d);let p=Ve.active(),h=Ut.setSpan(p,s);return Ve.with(h,()=>u.apply(l,d))}});t.once=o;let a=!1,c=u=>{a||(a=!0,s.setStatus(u),s.end())};return t.prependListener("response",u=>{t.listenerCount("response")<=1&&u.resume(),Ve.bind(Ve.active(),u);let l=b9t(u);s.setAttributes(l),this.getConfig().outgoingResponseHook?.(s,u),this.getConfig().outgoingRequestApplyCustomAttributes?.(s,t,u);let d=(f=!1)=>{this._diag.debug("outgoingRequest on end()");let p=f||typeof u.statusCode!="number"||u.aborted&&!u.complete?{code:ss.ERROR}:lm(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(H1e,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:ss.UNSET})}),t.on(H1e,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:ss.ERROR})}),s}_onOutgoingRequestFinish(t,n){Xt&&J.log(vH,"Handling finished outgoing request");let r=this.getConfig().breadcrumbs,i=typeof r>"u"?!0:r,s=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,s),i&&!s&&U1e(t,n)}_onOutgoingRequestCreated(t){Xt&&J.log(vH,"Handling outgoing request created");let n=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);if(this._ignoreOutgoingRequestsMap.set(t,n),n)return;let r=this.getConfig().createSpansForOutgoingRequests&&(this.getConfig().spans??!0),i=this.getConfig().propagateTraceInOutgoingRequests;if(r){let s=this._startSpanForOutgoingRequest(t);if(i&&s.isRecording()){let o=Ut.setSpan(Ve.active(),s);Ve.with(o,()=>{RH(t,this._propagationDecisionMap)})}else i&&RH(t,this._propagationDecisionMap)}else i&&RH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,q1e.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=j1e(t),i=wH(t);return n(i,r)}}});var B1e,R9t,G1e,z1e=v(()=>{TH();AH();mQ();_Q();B1e="Http",R9t=rt(`${B1e}.sentry`,e=>new FE(e)),G1e=(e={})=>{let t={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},n={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes},r={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:e.tracePropagation??!0,ignoreOutgoingRequests:e.ignoreOutgoingRequests},i=iN(t),s=sN(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:B1e,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),R9t(r)},processEvent(u){return s.processEvent(u)}}}});var uf,_m,cN,iR=v(()=>{st();uf=_7(process.versions.node),_m=uf.major,cN=uf.minor});function V1e(e,t){let n=IH(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=PE(n,r,t)?KA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:k9t(e.headers);if(bQ(u,EQ),bQ(u,kH),i&&bQ(u,w9t),!(TQ(u,EQ)!==-1)){o&&u.push(EQ,o),c&&TQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=TQ(u,kH);if(a&&d===-1)u.push(kH,a);else if(a){let f=u[d+1],p=oN(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=I9t(u))}function k9t(e){let t=e.split(`\r -`),n=[];for(let r of t)try{let i=r.indexOf(":");if(i===-1)continue;let s=r.slice(0,i).trim(),o=r.slice(i+1).trim();s&&n.push(s,o)}catch{J.warn(`Failed to convert string request header to array header: ${r}`)}return n}function I9t(e){let t=[];for(let n=0;n{Pi();br();xc()});function N_(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[V7],s=r[W7];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var dX=v(()=>{Lo()});function fMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function pMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function U4t(e){return e instanceof GA&&e.isStandaloneSpan()}function F4t(e){let t=ct();if(!t)return;let n=e[1];if(!n||n.length===0){t.recordDroppedEvent("before_send","span");return}t.sendEnvelope(e)}var dMe,GA,hMe=v(()=>{go();Pi();lX();Lo();br();wy();xc();Ay();Sm();Wj();dX();jA();dMe=1e3,GA=class{constructor(t={}){this._traceId=t.traceId||Ka(),this._spanId=t.spanId||Ya(),this._startTime=t.startTimestamp||vy(),this._links=t.links,this._attributes={},this.setAttributes({[Rt]:"manual",[zt]:t.op,...t.attributes}),this._name=t.name,t.parentSpanId&&(this._parentSpanId=t.parentSpanId),"sampled"in t&&(this._sampled=t.sampled),t.endTimestamp&&(this._endTime=t.endTimestamp),this._events=[],this._isStandaloneSpan=t.isStandalone,this._endTime&&this._onSpanEnded()}addLink(t){return this._links?this._links.push(t):this._links=[t],this}addLinks(t){return this._links?this._links.push(...t):this._links=t,this}recordException(t,n){}spanContext(){let{_spanId:t,_traceId:n,_sampled:r}=this;return{spanId:t,traceId:n,traceFlags:r?Fj:Uj}}setAttribute(t,n){return n===void 0?delete this._attributes[t]:this._attributes[t]=n,this}setAttributes(t){return Object.keys(t).forEach(n=>this.setAttribute(n,t[n])),this}updateStartTime(t){this._startTime=uu(t)}setStatus(t){return this._status=t,this}updateName(t){return this._name=t,this.setAttribute(Wi,"custom"),this}end(t){this._endTime||(this._endTime=uu(t),BO(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[zt],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:P_(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[Rt],profile_id:this._attributes[UA],exclusive_time:this._attributes[FA],measurements:N_(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:O_(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Z.log("[Tracing] Adding an event to span:",t);let i=fMe(n)?n:r||vy(),s=fMe(n)?{}:n||{},o={name:t,time:uu(i),attributes:s};return this._events.push(o),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let t=ct();if(t&&t.emit("spanEnd",this),!(this._isStandaloneSpan||this===cs(this)))return;if(this._isStandaloneSpan){this._sampled?F4t(lMe([this],t)):(Fe&&Z.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),t&&t.recordDroppedEvent("sample_rate","span"));return}let r=this._convertSpanToTransaction();r&&(rf(this).scope||Un()).captureEvent(r)}_convertSpanToTransaction(){if(!pMe(vt(this)))return;this._name||(Fe&&Z.warn("Transaction has no name, falling back to ``."),this._name="");let{scope:t,isolationScope:n}=rf(this),r=t?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let s=Hj(this).filter(l=>l!==this&&!U4t(l)).map(l=>vt(l)).filter(pMe),o=this._attributes[Wi];delete this._attributes[zl],s.forEach(l=>{delete l.data[zl]});let a={contexts:{trace:QCe(this)},spans:s.length>dMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,dMe):s,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:t,capturedSpanIsolationScope:n,dynamicSamplingContext:Ps(this)},request:r,...o&&{transaction_info:{source:o}}},c=N_(this._events);return c&&Object.keys(c).length&&(Fe&&Z.log("[Measurements] Adding measurements to transaction event",JSON.stringify(c,void 0,2)),a.measurements=c),a}}});function af(e,t,n=()=>{},r=()=>{}){let i;try{i=e()}catch(s){throw t(s),n(),s}return j4t(i,t,n,r)}function j4t(e,t,n,r){return sa(e)?Oj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var Kj=v(()=>{H7();Wa()});function GO(e,t,n){if(!Os(e))return[!1];let r,i;typeof e.tracesSampler=="function"?(i=e.tracesSampler({...t,inheritOrSampleWith:a=>typeof t.parentSampleRate=="number"?t.parentSampleRate:typeof t.parentSampled=="boolean"?Number(t.parentSampled):a}),r=!0):t.parentSampled!==void 0?i=t.parentSampled:typeof e.tracesSampleRate<"u"&&(i=e.tracesSampleRate,r=!0);let s=al(i);if(s===void 0)return Fe&&Z.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(i)} of type ${JSON.stringify(typeof i)}.`),[!1];if(!s)return Fe&&Z.log(`[Tracing] Discarding transaction because ${typeof e.tracesSampler=="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,s,r];let o=n{Pi();br();UO();HA()});function cf(e,t){let n=zO();if(n.startSpan)return n.startSpan(e,t);let r=hX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Za(a,()=>gMe(s)(()=>{let u=Un(),l=mX(u,s),f=e.onlyIfParent&&!l?new Py:pX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return R_(u,f),af(()=>t(f),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})},()=>{f.end()})}))}function Uo(e,t){let n=zO();if(n.startSpanManual)return n.startSpanManual(e,t);let r=hX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Za(a,()=>gMe(s)(()=>{let u=Un(),l=mX(u,s),f=e.onlyIfParent&&!l?new Py:pX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return R_(u,f),af(()=>t(f,()=>f.end()),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})})}))}function Zj(e){let t=zO();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=hX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Za(e.scope,o):i!==void 0?o=>zA(i,o):o=>o())(()=>{let o=Un(),a=mX(o,i);return e.onlyIfParent&&!a?new Py:pX({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function zA(e,t){let n=zO();return n.withActiveSpan?n.withActiveSpan(e,t):Za(r=>(R_(r,e||void 0),t(r)))}function VA(e){let t=zO();return t.suppressTracing?t.suppressTracing(e):Za(n=>{n.setSDKProcessingMetadata({[Yj]:!0});let r=e();return n.setSDKProcessingMetadata({[Yj]:void 0}),r})}function pX({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Py;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ps(o)};Bj(o,a)}return o}let i=vn(),s;if(e&&!n)s=H4t(e,r,t),qA(e,s);else if(e){let o=Ps(e),{traceId:a,spanId:c}=e.spanContext(),u=sf(e);s=mMe({traceId:a,parentSpanId:c,...t},r,u),Bj(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=mMe({traceId:o,parentSpanId:c,...t},r,u),a&&Bj(s,a)}return qO(s),NO(s,r,i),s}function hX(e){let n={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){let r={...n};return r.startTimestamp=uu(e.startTime),delete r.startTime,r}return n}function zO(){let e=Ic();return tf(e)}function mMe(e,t,n){let r=ct(),i=r?.getOptions()||{},{name:s=""}=e,o={spanAttributes:{...e.attributes},spanName:s,parentSampled:n};r?.emit("beforeSampling",o,{decision:!1});let a=o.parentSampled??n,c=o.spanAttributes,u=t.getPropagationContext(),[l,d,f]=t.getScopeData().sdkProcessingMetadata[Yj]?[!1]:GO(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:al(u.dsc?.sample_rate)},u.sampleRand),p=new GA({...e,attributes:{[Wi]:"custom",[nf]:d!==void 0&&f?d:void 0,...c},sampled:l});return!l&&r&&(Fe&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),r.recordDroppedEvent("sample_rate","transaction")),r&&r.emit("spanStart",p),p}function H4t(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[Yj]?!1:sf(e),o=s?new GA({...n,parentSpanId:r,traceId:i,sampled:s}):new Py({traceId:i});qA(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function mX(e,t){if(t)return t;if(t===null)return;let n=w_(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function gMe(e){return e!==void 0?t=>zA(e,t):t=>t()}var Yj,Ny=v(()=>{LA();ql();go();Pi();Lo();br();Kj();UO();HA();xj();xc();Sm();Wj();fX();oMe();hMe();jA();Yj="__SENTRY_SUPPRESS_TRACING__"});function _m(e){return new Jj(t=>{t(e)})}function WA(e){return new Jj((t,n)=>{n(e)})}var gX,yMe,SMe,Jj,KA=v(()=>{Wa();gX=0,yMe=1,SMe=2;Jj=class e{constructor(t){this._state=gX,this._handlers=[],this._runExecutor(t)}then(t,n){return new e((r,i)=>{this._handlers.push([!1,s=>{if(!t)r(s);else try{r(t(s))}catch(o){i(o)}},s=>{if(!n)i(s);else try{r(n(s))}catch(o){i(o)}}]),this._executeHandlers()})}catch(t){return this.then(n=>n,t)}finally(t){return new e((n,r)=>{let i,s;return this.then(o=>{s=!1,i=o,t&&t()},o=>{s=!0,i=o,t&&t()}).then(()=>{if(s){r(i);return}n(i)})})}_executeHandlers(){if(this._state===gX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===yMe&&n[1](this._value),this._state===SMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===gX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(yMe,s)},i=s=>{n(SMe,s)};try{t(r,i)}catch(s){i(s)}}}});function EMe(e,t,n,r=0){try{let i=yX(t,n,e,r);return sa(i)?i:_m(i)}catch(i){return WA(i)}}function yX(e,t,n,r){let i=n[r];if(!e||!i)return e;let s=i({...e},t);return Fe&&s===null&&Z.log(`Event processor "${i.id||"?"}" dropped event`),sa(s)?s.then(o=>yX(o,t,n,r+1)):yX(s,t,n,r+1)}var _Me=v(()=>{Pi();br();Wa();KA()});function vMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Cy&&r.length===bMe&&i.length===TMe)return Cy;bMe=r.length,TMe=i.length,Cy={},C_||(C_={});let s=(o,a)=>{for(let c of o){let u=a[c],l=C_?.[c];if(l&&Cy&&u)Cy[l[0]]=u,C_&&(C_[c]=[l[0],u]);else if(u){let d=e(c);for(let f=d.length-1;f>=0;f--){let h=d[f]?.filename;if(h&&Cy&&C_){Cy[h]=u,C_[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),Cy}var C_,bMe,TMe,Cy,AMe=v(()=>{Va()});function wMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;q4t(e,t),r&&z4t(e,r),V4t(e,n),B4t(e,i),G4t(e,s)}function RMe(e,t){let{extra:n,tags:r,attributes:i,user:s,contexts:o,level:a,sdkProcessingMetadata:c,breadcrumbs:u,fingerprint:l,eventProcessors:d,attachments:f,propagationContext:p,transactionName:h,span:m}=t;VO(e,"extra",n),VO(e,"tags",r),VO(e,"attributes",i),VO(e,"user",s),VO(e,"contexts",o),e.sdkProcessingMetadata=Ry(e.sdkProcessingMetadata,c,2),a&&(e.level=a),h&&(e.transactionName=h),m&&(e.span=m),u.length&&(e.breadcrumbs=[...e.breadcrumbs,...u]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),f.length&&(e.attachments=[...e.attachments,...f]),e.propagationContext={...e.propagationContext,...p}}function VO(e,t,n){e[t]=Ry(e[t],n,1)}function Xj(e,t){let n=Pj().getScopeData();return e&&RMe(n,e.getScopeData()),t&&RMe(n,t.getScopeData()),n}function q4t(e,t){let{extra:n,tags:r,user:i,contexts:s,level:o,transactionName:a}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(r).length&&(e.tags={...r,...e.tags}),Object.keys(i).length&&(e.user={...i,...e.user}),Object.keys(s).length&&(e.contexts={...s,...e.contexts}),o&&(e.level=o),a&&e.type!=="transaction"&&(e.transaction=a)}function B4t(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function G4t(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function z4t(e,t){e.contexts={trace:Oy(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Ps(t),...e.sdkProcessingMetadata};let n=cs(t),r=vt(n).description;r&&!e.transaction&&e.type==="transaction"&&(e.transaction=r)}function V4t(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}var SX=v(()=>{go();Sm();Ij();xc()});function kMe(e,t,n,r,i,s){let{normalizeDepth:o=3,normalizeMaxBreadth:a=1e3}=e,c={...t,event_id:t.event_id||n.event_id||mo(),timestamp:t.timestamp||pm()},u=n.integrations||e.integrations.map(y=>y.name);W4t(c,e),Z4t(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&K4t(c,e.stackParser);let l=X4t(r,n.captureContext);n.mechanism&&CA(c,n.mechanism);let d=i?i.getEventProcessors():[],f=Xj(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),wMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?_m(c):EMe(h,c,n)).then(y=>(y&&Y4t(y),typeof o=="number"&&o>0?J4t(y,o,a):y))}function W4t(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||BA,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=Ey(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=Ey(a.value,s))})}function K4t(e,t){let n=vMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function Y4t(e){let t={};if(e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.debug_id&&(i.abs_path?t[i.abs_path]=i.debug_id:i.filename&&(t[i.filename]=i.debug_id),delete i.debug_id)})}),Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];let n=e.debug_meta.images;Object.entries(t).forEach(([r,i])=>{n.push({type:"sourcemap",code_file:r,debug_id:i})})}function Z4t(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function J4t(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(i=>({...i,...i.data&&{data:of(i.data,t,n)}}))},...e.user&&{user:of(e.user,t,n)},...e.contexts&&{contexts:of(e.contexts,t,n)},...e.extra&&{extra:of(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=of(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(i=>({...i,...i.data&&{data:of(i.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=of(e.contexts.flags,3,n)),r}function X4t(e,t){if(!t)return e;let n=e?e.clone():new cu;return n.update(t),n}function IMe(e){if(e)return Q4t(e)?{captureContext:e}:eKt(e)?{captureContext:e}:e}function Q4t(e){return e instanceof cu||typeof e=="function"}function eKt(e){return Object.keys(e).some(t=>$4t.includes(t))}var $4t,EX=v(()=>{qj();_Me();OO();AMe();Dp();Gj();SX();by();KA();Ay();$4t=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Un().captureException(e,IMe(t))}function Qj(e,t){return Un().captureEvent(e,t)}async function YA(e){let t=ct();return t?t.flush(e):(Fe&&Z.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function $j(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function eH(e){let t=vn(),{user:n}=Xj(t,Un()),{userAgent:r}=qt.navigator||{},i=CCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&hm(s,{status:"exited"}),WO(),t.setSession(i),i}function WO(){let e=vn(),n=Un().getSession()||e.getSession();n&&MCe(n),tKt(),e.setSession()}function tKt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var cl=v(()=>{go();Pi();kj();br();EX();SX();Va()});function rKt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function iKt(e){return`${rKt(e)}${e.projectId}/envelope/`}function sKt(e,t){let n={sentry_version:nKt};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function xMe(e,t,n){return t||`${iKt(e)}?${sKt(e,n)}`}var nKt,OMe=v(()=>{nKt="7"});function oKt(e){let t={};return e.forEach(n=>{let{name:r}=n,i=t[r];i&&!i.isDefaultInstance&&n.isDefaultInstance||(t[r]=n)}),Object.values(t)}function bX(e){let t=e.defaultIntegrations||[],n=e.integrations;t.forEach(i=>{i.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...t,...n];else if(typeof n=="function"){let i=n(t);r=Array.isArray(i)?i:[i]}else r=t;return oKt(r)}function PMe(e,t){let n={};return t.forEach(r=>{r&&vX(e,r,n)}),n}function TX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function vX(e,t,n){if(n[t.name]){Fe&&Z.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,!_X.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),_X.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){let r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(i,s)=>r(i,s,e))}if(typeof t.processEvent=="function"){let r=t.processEvent.bind(t),i=Object.assign((s,o)=>r(s,o,e),{id:t.name});e.addEventProcessor(i)}Fe&&Z.log(`Integration installed: ${t.name}`)}var _X,AX=v(()=>{Pi();br();_X=[]});function NMe(e,t){return t?Za(t,()=>{let n=Vl(),r=n?Oy(n):k_(t);return[n?Ps(n):Up(e,t),r]}):[void 0,void 0]}var CMe=v(()=>{go();Sm();xc()});function aKt(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function MMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=ol(r)),Oc(i,[aKt(e)])}var DMe=v(()=>{ym();Em()});function ZA(e,t){let n=t??cKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=MMe(n,r._metadata,r.tunnel,e.getDsn());LMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function cKt(e){return LMe().get(e)}function LMe(){return $d("clientToLogBufferMap",()=>new WeakMap)}var RX=v(()=>{ql();DMe()});function uKt(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function UMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=ol(r)),Oc(i,[uKt(e)])}var FMe=v(()=>{ym();Em()});function jMe(e,t){let n=t??lKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=UMe(n,r._metadata,r.tunnel,e.getDsn());HMe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function lKt(e){return HMe().get(e)}function HMe(){return $d("clientToMetricBufferMap",()=>new WeakMap)}var qMe=v(()=>{ql();FMe()});function tH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var wX=v(()=>{});function JA(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return _m(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>tH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var KO,nH=v(()=>{KA();wX();KO=Symbol.for("SentryBufferFullError")});function fKt(e,t=Bl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?dKt:r-t}function pKt(e,t){return e[t]||e.all||0}function BMe(e,t,n=Bl()){return pKt(e,t)>n}function GMe(e,{statusCode:t,headers:n},r=Bl()){let i={...e},s=n?.["x-sentry-rate-limits"],o=n?.["retry-after"];if(s)for(let a of s.trim().split(",")){let[c,u,,,l]=a.split(":",5),d=parseInt(c,10),f=(isNaN(d)?60:d)*1e3;if(!u)i.all=r+f;else for(let p of u.split(";"))p==="metric_bucket"?(!l||l.split(";").includes("custom"))&&(i[p]=r+f):i[p]=r+f}else o?i.all=r+fKt(o,r):t===429&&(i.all=r+60*1e3);return i}var dKt,zMe=v(()=>{Sy();dKt=60*1e3});function ZO(e,t,n=JA(e.bufferSize||YO)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(jO(o,(d,f)=>{let p=zj(f);BMe(r,p)?e.recordDroppedEvent("ratelimit_backoff",p):a.push(d)}),a.length===0)return Promise.resolve({});let c=Oc(o[0],a),u=d=>{if(oX(c,["client_report"])){Fe&&Z.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}jO(c,(f,p)=>{e.recordDroppedEvent(d,zj(p))})},l=()=>t({body:HO(c)}).then(d=>d.statusCode===413?(Fe&&Z.error("Sentry responded with status code 413. Envelope was discarded due to exceeding size limits."),u("send_error"),d):(Fe&&d.statusCode!==void 0&&(d.statusCode<200||d.statusCode>=300)&&Z.warn(`Sentry responded with status code ${d.statusCode} to sent event.`),r=GMe(r,d),d),d=>{throw u("network_error"),Fe&&Z.error("Encountered error running transport request:",d),d});return n.add(l).then(d=>d,d=>{if(d===KO)return Fe&&Z.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var YO,rH=v(()=>{Pi();br();Em();nH();zMe();YO=64});function VMe(e,t,n){let r=[{type:"client_report"},{timestamp:n||pm(),discarded_events:e}];return Oc(t?{dsn:t}:{},[r])}var WMe=v(()=>{Em();Ay()});function iH(e){let t=[];e.message&&t.push(e.message);try{let n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}var kX=v(()=>{});function KMe(e){let{trace_id:t,parent_span_id:n,span_id:r,status:i,origin:s,data:o,op:a}=e.contexts?.trace??{};return{data:o??{},description:e.transaction,op:a,parent_span_id:n,span_id:r??"",start_timestamp:e.start_timestamp??0,status:i,timestamp:e.timestamp,trace_id:t??"",origin:s,profile_id:o?.[UA],exclusive_time:o?.[FA],measurements:e.measurements,is_segment:!0}}function YMe(e){return{type:"transaction",timestamp:e.timestamp,start_timestamp:e.start_timestamp,transaction:e.description,contexts:{trace:{trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,op:e.op,status:e.status,origin:e.origin,data:{...e.data,...e.profile_id&&{[UA]:e.profile_id},...e.exclusive_time&&{[FA]:e.exclusive_time}}}},measurements:e.measurements}}var ZMe=v(()=>{Lo()});function sH(e){return{message:e,[rDe]:!0}}function IX(e){return{message:e,[iDe]:!0}}function QMe(e){return!!e&&typeof e=="object"&&rDe in e}function $Me(e){return!!e&&typeof e=="object"&&iDe in e}function eDe(e,t,n,r,i){let s=0,o,a=!1;e.on(n,()=>{s=0,clearTimeout(o),a=!1}),e.on(t,c=>{s+=r(c),s>=8e5?i(e):a||(a=!0,o=tH(setTimeout(()=>{i(e)},hKt)))}),e.on("flush",()=>{i(e)})}function tDe(e){return e==="replay_event"?"replay":e||"error"}function mKt(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!dm(r)&&r!==null)throw sH(n);return r},r=>{throw sH(`${t} rejected with ${r}`)});if(!dm(e)&&e!==null)throw sH(n);return e}function gKt(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(xX(c)&&i)return i(c,r);if(sDe(c)){if(o||a){let u=KMe(c);if(a?.length&&FO(u,a))return null;if(o){let l=o(u);l?c=Ry(n,YMe(l)):LO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&FO(p,a)){iMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(LO(),l.push(p))}else l.push(p)}let f=c.spans.length-l.length;f&&e.recordDroppedEvent("before_send","span",f),c.spans=l}}if(s){if(c.spans){let u=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:u}}return s(c,r)}}return c}function xX(e){return e.type===void 0}function sDe(e){return e.type==="transaction"}function yKt(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+oDe(e.attributes)}function SKt(e){let t=0;return e.message&&(t+=e.message.length*2),t+oDe(e.attributes)}function oDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*nDe(n[0]):IO(n)?t+=nDe(n):t+=100}),t}function nDe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var JMe,XMe,rDe,iDe,hKt,oH,aDe=v(()=>{OMe();qj();go();Pi();lX();AX();RX();qMe();kj();Sm();rH();WMe();br();ym();Em();kX();Wa();Ij();Dp();HA();EX();nH();Sy();eX();xc();KA();wX();ZMe();JMe="Not capturing exception because it's already been captured.",XMe="Discarded session because of missing or non-string release",rDe=Symbol.for("SentryInternalError"),iDe=Symbol.for("SentryDoNotSendEventError"),hKt=5e3;oH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=JA(t.transportOptions?.bufferSize??YO),t.dsn?this._dsn=YCe(t.dsn):Fe&&Z.warn("No DSN provided, client will not send events."),this._dsn){let r=xMe(this._dsn,t.tunnel,t._metadata?t._metadata.sdk:void 0);this._transport=t.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...t.transportOptions,url:r})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&eDe(this,"afterCaptureLog","flushLogs",SKt,ZA),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&eDe(this,"afterCaptureMetric","flushMetrics",yKt,jMe)}captureException(t,n,r){let i=mo();if(wj(t))return Fe&&Z.log(JMe),i;let s={event_id:i,...n};return this._process(()=>this.eventFromException(t,s).then(o=>this._captureEvent(o,s,r)).then(o=>o),"error"),s.event_id}captureMessage(t,n,r,i){let s={event_id:mo(),...r},o=PA(t)?t:String(t),a=IO(t),c=a?this.eventFromMessage(o,n,s):this.eventFromException(t,s);return this._process(()=>c.then(u=>this._captureEvent(u,s,i)),a?"unknown":"error"),s.event_id}captureEvent(t,n,r){let i=mo();if(n?.originalException&&wj(n.originalException))return Fe&&Z.log(JMe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=tDe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),hm(t,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(t){let n=this._transport;if(!n)return!0;this.emit("flush");let r=await this._isClientDoneProcessing(t),i=await n.flush(t);return r&&i}async close(t){ZA(this);let n=await this.flush(t);return this.getOptions().enabled=!1,this.emit("close"),n}getEventProcessors(){return this._eventProcessors}addEventProcessor(t){this._eventProcessors.push(t)}init(){(this._isEnabled()||this._options.integrations.some(({name:t})=>t.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(t){return this._integrations[t]}addIntegration(t){let n=this._integrations[t.name];vX(this,t,this._integrations),n||TX(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=uMe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=sX(r,cX(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=BA}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Fe&&Z.warn(XMe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Z.warn(XMe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=cMe(t,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(i)}recordDroppedEvent(t,n,r=1){if(this._options.sendClientReports){let i=`${t}:${n}`;Fe&&Z.log(`Recording outcome: "${i}"${r>1?` (${r} times)`:""}`),this._outcomes[i]=(this._outcomes[i]||0)+r}}on(t,n){let r=this._hooks[t]=this._hooks[t]||new Set,i=(...s)=>n(...s);return r.add(i),()=>{r.delete(i)}}emit(t,...n){let r=this._hooks[t];r&&r.forEach(i=>i(...n))}async sendEnvelope(t){if(this.emit("beforeEnvelope",t),this._isEnabled()&&this._transport)try{return await this._transport.send(t)}catch(n){return Fe&&Z.error("Error while sending envelope:",n),{}}return Fe&&Z.error("Transport disabled"),{}}dispose(){}_setupIntegrations(){let{integrations:t}=this._options;this._integrations=PMe(this,t),TX(this,t)}_updateSessionFromEvent(t,n){let r=n.level==="fatal",i=!1,s=n.exception?.values;if(s){i=!0,r=!1;for(let c of s)if(c.mechanism?.handled===!1){r=!0;break}}let o=t.status==="ok";(o&&t.errors===0||o&&r)&&(hm(t,{...r&&{status:"crashed"},errors:t.errors||Number(i||r)}),this.captureSession(t))}async _isClientDoneProcessing(t){let n=0;for(;!t||nsetTimeout(r,1)),!this._numProcessing)return!0;n++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(t,n,r,i){let s=this.getOptions(),o=Object.keys(this._integrations);return!n.integrations&&o?.length&&(n.integrations=o),this.emit("preprocessEvent",t,n),t.type||i.setLastEventId(t.event_id||n.event_id),kMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...k_(r)},...a.contexts};let c=Up(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Un(),i=vn()){return Fe&&xX(t)&&Z.log(`Captured error event \`${iH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&($Me(s)?Z.log(s.message):QMe(s)?Z.warn(s.message):Z.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=sDe(t),c=xX(t),l=`before send for type \`${t.type||"error"}\``,d=typeof o>"u"?void 0:al(o);if(c&&typeof d=="number"&&Do()>d)return this.recordDroppedEvent("sample_rate","error"),WA(IX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=tDe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),IX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=gKt(this,s,p,n);return mKt(m,l)}).then(p=>{if(p===null){if(this.recordDroppedEvent("before_send",f),a){let y=1+(t.spans||[]).length;this.recordDroppedEvent("before_send","span",y)}throw IX(`${l} returned \`null\`, will not send event.`)}let h=r.getSession()||i.getSession();if(c&&h&&this._updateSessionFromEvent(h,p),a){let g=p.sdkProcessingMetadata?.spanCountBeforeProcessing||0,y=p.spans?p.spans.length:0,E=g-y;E>0&&this.recordDroppedEvent("before_send","span",E)}let m=p.transaction_info;if(a&&m&&p.transaction!==t.transaction){let g="custom";p.transaction_info={...m,source:g}}return this.sendEvent(p,n),p}).then(null,p=>{throw $Me(p)||QMe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),sH(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===KO&&this.recordDroppedEvent("queue_overflow",n),r))}_clearOutcomes(){let t=this._outcomes;return this._outcomes={},Object.entries(t).map(([n,r])=>{let[i,s]=n.split(":");return{reason:i,category:s,quantity:r}})}_flushOutcomes(){Fe&&Z.log("Flushing outcomes...");let t=this._clearOutcomes();if(t.length===0){Fe&&Z.log("No outcomes to send");return}if(!this._dsn){Fe&&Z.log("No dsn provided, will not send outcomes");return}Fe&&Z.log("Sending outcomes:",t);let n=VMe(t,this._options.tunnel&&ol(this._dsn));this.sendEnvelope(n)}}});function cDe(e,t,n,r,i){let s={sent_at:new Date().toISOString()};n?.sdk&&(s.sdk={name:n.sdk.name,version:n.sdk.version}),r&&i&&(s.dsn=ol(i)),t&&(s.trace=t);let o=EKt(e);return Oc(s,[o])}function EKt(e){return[{type:"check_in"},e]}var uDe=v(()=>{ym();Em()});function lDe(e){let t=e._metadata?.sdk,n=t?.name&&t?.version?`${t?.name}/${t?.version}`:void 0;e.transportOptions={...e.transportOptions,headers:{...n&&{"user-agent":n},...e.transportOptions?.headers}}}var dDe=v(()=>{});function fDe(e,t){return e(t.stack||"",1)}function _Kt(e){return Cp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function bKt(e){return _Kt(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function OX(e,t){let n={type:t.name||t.constructor.name,value:bKt(t)},r=fDe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function TKt(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function vKt(e){if("name"in e&&typeof e.name=="string"){let r=`'${e.name}' captured as exception`;return"message"in e&&typeof e.message=="string"&&(r+=` with message '${e.message}'`),r}else if("message"in e&&typeof e.message=="string")return e.message;let t=P7(e);if(A7(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=AKt(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function AKt(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function RKt(e,t,n,r){if(Cp(n))return[n,void 0];if(t.synthetic=!0,dm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:rX(n,s)},a=TKt(n);if(a)return[a,o];let c=vKt(n),u=r?.syntheticException||new Error(c);return u.message=c,[u,o]}let i=r?.syntheticException||new Error(n);return i.message=`${n}`,[i,void 0]}function pDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=RKt(e,s,n,r),c={exception:{values:[OX(t,o)]}};return a&&(c.extra=a),L7(c,void 0,void 0),CA(c,s),{...c,event_id:r?.event_id}}function hDe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=fDe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},CA(s,{synthetic:!0}))}if(PA(t)){let{__sentry_template_string__:o,__sentry_template_values__:a}=t;return s.logentry={message:o,params:a},s}return s.message=t,s}var PX=v(()=>{Wa();Dp();Gj();ef()});function mDe(e){let t=vn().getScopeData().sdkProcessingMetadata.requestSession;if(t){let n=e?.mechanism?.handled??!0;n&&t.status!=="crashed"?t.status="errored":n||(t.status="crashed")}}var JO,gDe=v(()=>{uDe();aDe();go();Pi();nMe();br();Dp();rH();dDe();PX();nH();KA();CMe();JO=class extends oH{constructor(t){tMe(),lDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=pDe(this,this._options.stackParser,t,n);return r.level="error",_m(r)}eventFromMessage(t,n="info",r){return _m(hDe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return mDe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&mDe(n),super.captureEvent(t,n,r)}captureCheckIn(t,n,r){let i="checkInId"in t&&t.checkInId?t.checkInId:mo();if(!this._isEnabled())return Fe&&Z.warn("SDK not enabled, will not capture check-in."),i;let s=this.getOptions(),{release:o,environment:a,tunnel:c}=s,u={check_in_id:i,monitor_slug:t.monitorSlug,status:t.status,release:o,environment:a};"duration"in t&&(u.duration=t.duration),n&&(u.monitor_config={schedule:n.schedule,checkin_margin:n.checkinMargin,max_runtime:n.maxRuntime,timezone:n.timezone,failure_issue_threshold:n.failureIssueThreshold,recovery_threshold:n.recoveryThreshold});let[l,d]=NMe(this,r);d&&(u.contexts={trace:d});let f=cDe(u,l,this.getSdkMetadata(),c,this.getDsn());return Fe&&Z.log("Sending checkin:",t.monitorSlug,t.status),this.sendEnvelope(f),i}dispose(){Fe&&Z.log("Disposing client...");for(let t of Object.keys(this._hooks))this._hooks[t]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=JA(YO)}_prepareEvent(t,n,r,i){return this._options.platform&&(t.platform=t.platform||this._options.platform),this._options.runtime&&(t.contexts={...t.contexts,runtime:t.contexts?.runtime||this._options.runtime}),this._options.serverName&&(t.server_name=t.server_name||this._options.serverName),super._prepareEvent(t,n,r,i)}_setUpMetricsProcessing(){this.on("processMetric",t=>{this._options.serverName&&(t.attributes={"server.address":this._options.serverName,...t.attributes})})}}});function CX(e){e.forEach(t=>{NX.add(t),Fe&&Z.log(`AI provider "${t}" wrapping will be skipped`)})}function M_(e){return NX.has(e)}function MX(){NX.clear(),Fe&&Z.log("Cleared AI provider skip registrations")}var NX,yDe=v(()=>{Pi();br();NX=new Set});function XA(e,t){let n=String(e).toLowerCase();return wKt.has(n)?!1:kKt.has(n)?!0:t?.strict?null:!!e}var wKt,kKt,SDe=v(()=>{wKt=new Set(["false","f","n","no","off","0"]),kKt=new Set(["true","t","y","yes","on","1"])});function DX(e){return"isRelative"in e}function XO(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?IKt:void 0);try{if("canParse"in URL&&!URL.canParse(e,r))return;let i=new URL(e,r);return n?{isRelative:n,pathname:i.pathname,search:i.search,hash:i.hash}:i}catch{}}function EDe(e){if(DX(e))return e.pathname;let t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}function xKt(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?EDe(e):e.pathname:"/");return`${i} ${s}`}function LX(e,t,n,r,i){let s={[Rt]:n,[Wi]:"url"};return i&&(s[t==="server"?"http.route":"url.template"]=i,s[Wi]="route"),r?.method&&(s[J7]=r.method.toUpperCase()),e&&(e.search&&(s["url.query"]=e.search),e.hash&&(s["url.fragment"]=e.hash),e.pathname&&(s["url.path"]=e.pathname,e.pathname==="/"&&(s[Wi]="route")),DX(e)||(s[ky]=e.href,e.port&&(s["url.port"]=e.port),e.protocol&&(s["url.scheme"]=e.protocol),e.hostname&&(s[t==="server"?"server.address":"url.domain"]=e.hostname))),[xKt(e,t,r,i),s]}function My(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function bm(e){return e.split(/[?#]/,1)[0]}function Dy(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function QA(e,t=!0){if(e.startsWith("data:")){let n=e.match(/^data:([^;,]+)/),r=n?n[1]:"text/plain",i=e.includes(";base64,"),s=e.indexOf(","),o="";if(t&&s!==-1){let a=e.slice(s+1);o=a.length>10?`${a.slice(0,10)}... [truncated]`:a}return`data:${r}${i?",base64":""}${o?`,${o}`:""}`}return e}var IKt,_De=v(()=>{Lo();IKt="thismessage:/"});function D_(e,t,n=[t],r="npm"){let i=(e._metadata=e._metadata||{}).sdk=e._metadata.sdk||{};i.name||(i.name=`sentry.javascript.${t}`,i.packages=n.map(s=>({name:`${r}:@sentry/${s}`,version:Nn})),i.version=Nn)}var bDe=v(()=>{Sj()});function $A(e={}){let t=e.client||ct();if(!$j()||!t)return{};let n=Ic(),r=tf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Un(),s=e.span||Vl();if(!s&&G7())return{};let o=s?jj(s):OKt(i),a=s?Ps(s):Up(t,i),c=I_(a);if(!Mj.test(o))return Z.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let l={"sentry-trace":o,baggage:c};return e.propagateTraceparent&&(l.traceparent=s?$Ce(s):PKt(i)),l}function OKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Iy(t,r,n)}function PKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return xy(t,r,n)}var TDe=v(()=>{LA();ql();go();cl();br();xc();Sm();CO();Dj()});function L_(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Z.log(vDe,e),r;let i=_y(e,t);return n?.set(e,i),Fe&&!i&&Z.log(vDe,e),i}var vDe,ADe=v(()=>{Pi();br();by();vDe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function UX(e,t,n){let r,i,s,o=n?.maxWait?Math.max(n.maxWait,t):0,a=n?.setTimeoutImpl||setTimeout;function c(){return u(),r=e(),r}function u(){i!==void 0&&clearTimeout(i),s!==void 0&&clearTimeout(s),i=s=void 0}function l(){return i!==void 0||s!==void 0?c():r}function d(){return i&&clearTimeout(i),i=a(c,t),o&&s===void 0&&(s=a(c,o)),r}return d.cancel=u,d.flush=l,d}var RDe=v(()=>{});function xDe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function QO(e){let t=e.headers||{},r=(typeof t["x-forwarded-host"]=="string"?t["x-forwarded-host"]:void 0)||(typeof t.host=="string"?t.host:void 0),s=(typeof t["x-forwarded-proto"]=="string"?t["x-forwarded-proto"]:void 0)||e.protocol||(e.socket?.encrypted?"https":"http"),o=e.url||"",a=NKt({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:ODe(o),headers:xDe(t),cookies:u,data:c}}function NKt({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function aH(e,t=!1,n="request"){let r={};try{Object.entries(e).forEach(([i,s])=>{if(s==null)return;let o=i.toLowerCase();if((o==="cookie"||o==="set-cookie")&&typeof s=="string"&&s!==""){let c=o==="set-cookie",u=s.indexOf(";"),l=c&&u!==-1?s.substring(0,u):s,d=c?[l]:l.split("; ");for(let f of d){let p=f.indexOf("="),h=p!==-1?f.substring(0,p):f,m=p!==-1?f.substring(p+1):"",g=h.toLowerCase();IDe(r,o,g,m,t,n)}}else IDe(r,o,"",s,t,n)})}catch{}return r}function kDe(e){return e.replace(/-/g,"_")}function IDe(e,t,n,r,i,s){let o=MKt(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${kDe(t)}${n?`.${kDe(n)}`:""}`;e[a]=o}function MKt(e,t,n){if(n?wDe.some(i=>e.includes(i)):[...CKt,...wDe].some(i=>e.includes(i)))return"[Filtered]";if(Array.isArray(t))return t.map(i=>i!=null?String(i):i).join(";");if(typeof t=="string")return t}function ODe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var wDe,CKt,PDe=v(()=>{wDe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],CKt=["x-forwarded-","-user"]});function Wl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=DKt}=n.getOptions();if(s<=0)return;let a={timestamp:pm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var DKt,FX=v(()=>{go();br();Ay();DKt=100});var NDe,LKt,CDe,UKt,cH,MDe=v(()=>{go();ef();LKt="FunctionToString",CDe=new WeakMap,UKt=(()=>({name:LKt,setupOnce(){NDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=O7(this),n=CDe.has(ct())&&t!==void 0?t:this;return NDe.apply(n,e)}}catch{}},setup(e){CDe.set(e,!0)}})),cH=UKt});function DDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:FKt],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function HKt(e,t){if(e.type){if(e.type==="transaction"&&BKt(e,t.ignoreTransactions))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${Ty(e)}`),!0}else{if(qKt(e,t.ignoreErrors))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${Ty(e)}`),!0;if(WKt(e))return Fe&&Z.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${Ty(e)}`),!0;if(GKt(e,t.denyUrls))return Fe&&Z.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${Ty(e)}. +Url: ${uH(e)}`),!0;if(!zKt(e,t.allowUrls))return Fe&&Z.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${Ty(e)}. +Url: ${uH(e)}`),!0}return!1}function qKt(e,t){return t?.length?iH(e).some(n=>_y(n,t)):!1}function BKt(e,t){if(!t?.length)return!1;let n=e.transaction;return n?_y(n,t):!1}function GKt(e,t){if(!t?.length)return!1;let n=uH(e);return n?_y(n,t):!1}function zKt(e,t){if(!t?.length)return!0;let n=uH(e);return n?_y(n,t):!0}function VKt(e=[]){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n&&n.filename!==""&&n.filename!=="[native code]")return n.filename||null}return null}function uH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?VKt(n):null}catch{return Fe&&Z.error(`Cannot extract url for event ${Ty(e)}`),null}}function WKt(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var FKt,jKt,jX,lH,LDe=v(()=>{Pi();br();kX();Dp();by();FKt=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],jKt="EventFilters",jX=(e={})=>{let t;return{name:jKt,setup(n){let r=n.getOptions();t=DDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=DDe(e,s)}return HKt(n,t)?null:n}}},lH=((e={})=>({...jX(e),name:"InboundFilters"}))});function jDe(e,t,n,r,i,s){if(!i.exception?.values||!s||!Mp(s.originalException,Error))return;let o=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;o&&(i.exception.values=HX(e,t,r,s.originalException,n,i.exception.values,o,0))}function HX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Mp(r[i],Error)){UDe(o,a,r);let u=e(t,r[i]),l=c.length;FDe(u,i,l,a),c=HX(e,t,n,r[i],i,[u,...c],u,l)}return HDe(r)&&r.errors.forEach((u,l)=>{if(Mp(u,Error)){UDe(o,a,r);let d=e(t,u),f=c.length;FDe(d,`errors[${l}]`,f,a),c=HX(e,t,n,u,i,[d,...c],d,f)}}),c}function HDe(e){return Array.isArray(e.errors)}function UDe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...HDe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function FDe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var qDe=v(()=>{Wa()});var KKt,YKt,ZKt,JKt,dH,BDe=v(()=>{qDe();PX();KKt="cause",YKt=5,ZKt="LinkedErrors",JKt=((e={})=>{let t=e.limit||YKt,n=e.key||KKt;return{name:ZKt,preprocessEvent(r,i,s){let o=s.getOptions();jDe(OX,o.stackParser,n,t,r,i)}}}),dH=JKt});function GDe(e){let t={},n=0;for(;n{});function VDe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return qX.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?XKt(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&QKt(s))||null}function XKt(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function QKt(e){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(e)}var qX,WDe=v(()=>{qX=["X-Client-IP","X-Forwarded-For","Fly-Client-IP","CF-Connecting-IP","Fastly-Client-Ip","True-Client-Ip","X-Real-IP","X-Cluster-Client-IP","X-Forwarded","Forwarded-For","Forwarded","X-Vercel-Forwarded-For"]});function n9t(e,t,n,r){if(e.request={...e.request,...r9t(t,r)},r.ip){let i=t.headers&&VDe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function r9t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||qX.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?GDe(r.cookie):void 0);n.cookies=i||{}}return t.query_string&&(n.query_string=e.query_string),t.data&&(n.data=e.data),n}var $Kt,e9t,t9t,fH,KDe=v(()=>{zDe();WDe();$Kt={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},e9t="RequestData",t9t=((e={})=>{let t={...$Kt,...e.include};return{name:e9t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&n9t(n,o,{ipAddress:a},c),n}}}),fH=t9t});function YDe(e){let t="console";IA(t,e),xA(t,i9t)}function i9t(){"console"in qt&&wO.forEach(function(e){e in qt.console&&x7(qt.console,e,function(t){return wA[e]=t,function(...n){OA("console",{args:n,level:e}),wA[e]?.apply(qt.console,n)}})})}var ZDe=v(()=>{br();ef();Va();vj()});function JDe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var XDe=v(()=>{});function o9t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=s9t.exec(t);return n?n.slice(1):[]}function BX(e){let t=o9t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var s9t,QDe=v(()=>{s9t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function VX(e,t){return!e||typeof e!="function"?(Fe&&Z.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):zX(e,{requireParentSpan:!0,...t})}function zX(e,t,n){if(e[GX])return e;let r=new Proxy(e,{apply(i,s,o){let a=Reflect.apply(i,s,o);return a&&typeof a=="object"&&"handle"in a&&eLe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?u9t(o,i,r,t):s==="begin"||s==="reserve"?l9t(o,i,r,t):o}});return n?r[pH]=n:m9t(e,r),e[GX]=!0,r[GX]=!0,r}function u9t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&eLe(s,n,r),s}}function l9t(e,t,n,r){return function(...i){let s=n[pH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>zX(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=zX(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function eLe(e,t,n){if(e.handle?.__sentryWrapped)return;e[c9t]=!0;let r=e.handle,i=async function(...s){if(!d9t(n))return r.apply(this,s);let o=f9t(e.strings),a=p9t(o);return Uo({name:a||"postgresjs.query",op:"db"},c=>{c.setAttribute(Rt,"auto.db.postgresjs"),c.setAttributes({"db.system.name":"postgres","db.query.text":a});let u=t?t[pH]:void 0;if(h9t(c,u),n.requestHook)try{n.requestHook(c,a,u)}catch(d){c.setAttribute("sentry.hook.error","requestHook failed"),Fe&&Z.error("Error in requestHook for PostgresJs instrumentation:",d)}let l=this;l.resolve=new Proxy(l.resolve,{apply:(d,f,p)=>{try{$De(c,a,p?.[0]?.command),c.end()}catch(h){Fe&&Z.error("Error ending span in resolve callback:",h)}return Reflect.apply(d,f,p)}}),l.reject=new Proxy(l.reject,{apply:(d,f,p)=>{try{c.setStatus({code:2,message:p?.[0]?.message||"unknown_error"}),c.setAttribute("db.response.status_code",p?.[0]?.code||"unknown"),c.setAttribute("error.type",p?.[0]?.name||"unknown"),$De(c,a),c.end()}catch(h){Fe&&Z.error("Error ending span in reject callback:",h)}return Reflect.apply(d,f,p)}});try{return r.apply(this,s)}catch(d){throw c.setStatus({code:2,message:d instanceof Error?d.message:"unknown_error"}),c.end(),d}})};i.__sentryWrapped=!0,e.handle=i}function d9t(e){return Vl()!==void 0||!e.requireParentSpan}function f9t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function p9t(e){return e?e.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Pi();Lo();br();xc();Ny();a9t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,pH=Symbol("sentryPostgresConnectionContext"),GX=Symbol.for("sentry.instrumented.postgresjs"),c9t=Symbol.for("sentry.query.from.instrumented.sql")});function y9t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:JDe(e),message:nLe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${nLe(r)}`:"Assertion failed",n.data.arguments=r}else return;Wl(n,{input:t,level:e})}function nLe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):C7(e," ")}var g9t,hH,rLe=v(()=>{FX();go();ZDe();br();XDe();by();Va();g9t="Console",hH=(e={})=>{let t=new Set(e.levels||wO);return{name:g9t,setup(n){YDe(({args:r,level:i})=>{ct()!==n||!t.has(i)||y9t(i,r)})}}}});var S9t,E9t,WX,iLe=v(()=>{go();Lo();S9t="ConversationId",E9t=(()=>({name:S9t,setup(e){e.on("spanStart",t=>{let n=Un().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(X7,i)})}})),WX=E9t});function mH(e,t={},n=Un()){let{message:r,name:i,email:s,url:o,source:a,associatedEventId:c,tags:u}=e,l={contexts:{feedback:{contact_email:s,name:i,message:r,url:o,source:a,associated_event_id:c}},type:"feedback",level:"info",tags:u},d=n?.getClient()||ct();return d&&d.emit("beforeSendFeedback",l,t),n.captureEvent(l,t)}var sLe=v(()=>{go()});var oLe,Ly,us,eR,Uy,tR,Fy,nR,jy,gH,aLe,cLe,lu,yo,Kl,uLe,di,Ns,Pc,oa,Nc,aa,lLe,ul,zs,Fp,U_,Fo,KX,dLe,$O,fLe,pLe,YX,Hy,yH,hLe,mLe,gLe,yLe,rR,SLe,ELe,_Le,bLe,F_,ZX,JX,SH,EH,TLe,XX,QX,$X,vLe,ALe,eQ,Ja=v(()=>{oLe="gen_ai.prompt",Ly="gen_ai.system",us="gen_ai.request.model",eR="gen_ai.request.stream",Uy="gen_ai.request.temperature",tR="gen_ai.request.max_tokens",Fy="gen_ai.request.frequency_penalty",nR="gen_ai.request.presence_penalty",jy="gen_ai.request.top_p",gH="gen_ai.request.top_k",aLe="gen_ai.request.encoding_format",cLe="gen_ai.request.dimensions",lu="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Kl="gen_ai.response.id",uLe="gen_ai.response.stop_reason",di="gen_ai.usage.input_tokens",Ns="gen_ai.usage.output_tokens",Pc="gen_ai.usage.total_tokens",oa="gen_ai.operation.name",Nc="sentry.sdk_meta.gen_ai.input.messages.original_length",aa="gen_ai.input.messages",lLe="gen_ai.output.messages",ul="gen_ai.system_instructions",zs="gen_ai.response.text",Fp="gen_ai.request.available_tools",U_="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",KX="gen_ai.agent.name",dLe="gen_ai.pipeline.name",$O="gen_ai.conversation.id",fLe="gen_ai.usage.cache_creation_input_tokens",pLe="gen_ai.usage.cache_read_input_tokens",YX="gen_ai.usage.input_tokens.cache_write",Hy="gen_ai.usage.input_tokens.cached",yH="gen_ai.invoke_agent",hLe="gen_ai.generate_text",mLe="gen_ai.stream_text",gLe="gen_ai.generate_object",yLe="gen_ai.stream_object",rR="gen_ai.embeddings.input",SLe="gen_ai.embeddings",ELe="gen_ai.embeddings",_Le="gen_ai.rerank",bLe="gen_ai.execute_tool",F_="gen_ai.tool.name",ZX="gen_ai.tool.call.id",JX="gen_ai.tool.type",SH="gen_ai.tool.input",EH="gen_ai.tool.output",TLe="gen_ai.tool.description",XX="openai.response.id",QX="openai.response.model",$X="openai.response.timestamp",vLe="openai.usage.completion_tokens",ALe="openai.usage.prompt_tokens",eQ="anthropic.response.timestamp"});var eP,tQ,nQ,RLe,wLe,kLe,rQ=v(()=>{eP=new Map,tQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),nQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),RLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),wLe=new Set(["ai.rerank.doRerank"]),kLe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function qy(e){return!e||typeof e!="object"?!1:b9t(e)||xLe(e)||_9t(e)||OLe(e)||PLe(e)||T9t(e)||v9t(e)||A9t(e)||R9t(e)||w9t(e)||k9t(e)||I9t(e)}function _9t(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):ILe(e):!1}function ILe(e){return"image_url"in e&&!!e.image_url&&typeof e.image_url=="object"&&"url"in e.image_url&&typeof e.image_url.url=="string"&&e.image_url.url.startsWith("data:")}function b9t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&qy(e.source)}function xLe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function OLe(e){return"type"in e&&e.type==="input_audio"&&"input_audio"in e&&!!e.input_audio&&typeof e.input_audio=="object"&&"data"in e.input_audio&&typeof e.input_audio.data=="string"}function PLe(e){return"type"in e&&e.type==="file"&&"file"in e&&!!e.file&&typeof e.file=="object"&&"file_data"in e.file&&typeof e.file.file_data=="string"}function T9t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function v9t(e){return"type"in e&&e.type==="file"&&"mediaType"in e&&typeof e.mediaType=="string"&&"data"in e&&typeof e.data=="string"&&!e.data.startsWith("http://")&&!e.data.startsWith("https://")}function A9t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function R9t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function w9t(e){return"b64_json"in e}function k9t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function I9t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function j_(e){let t={...e};qy(t.source)&&(t.source=j_(t.source)),xLe(e)&&(t.inlineData={...e.inlineData,data:tP}),ILe(e)&&(t.image_url={...e.image_url,url:tP}),OLe(e)&&(t.input_audio={...e.input_audio,data:tP}),PLe(e)&&(t.file={...e.file,file_data:tP});for(let n of x9t)typeof t[n]=="string"&&(t[n]=tP);return t}var tP,x9t,iQ=v(()=>{tP="[Blob substitute]",x9t=["image_url","data","content","b64_json","result","uri","image"]});function bH(e,t){if(_H(e)<=t)return e;let n=0,r=e.length,i="";for(;n<=r;){let s=Math.floor((n+r)/2),o=e.slice(0,s);_H(o)<=t?(i=o,n=s+1):r=s-1}return i}function O9t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function NLe(e,t){return typeof e=="string"?t:{...e,text:t}}function P9t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function MLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function DLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function N9t(e,t){let n={...e,content:""},r=oQ(n),i=t-r;if(i<=0)return[];let s=bH(e.content,i);return[{...e,content:s}]}function C9t(e){return"parts"in e&&Array.isArray(e.parts)?{key:"parts",items:e.parts}:"content"in e&&Array.isArray(e.content)?{key:"content",items:e.content}:{key:null,items:[]}}function M9t(e,t){let{key:n,items:r}=C9t(e);if(n===null||r.length===0)return[];let i=r.map(c=>NLe(c,"")),s=oQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=O9t(c),l=_H(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=bH(u,o);d&&a.push(NLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function D9t(e,t){if(!e)return[];if(typeof e=="string"){let n=bH(e,t);return n?[n]:[]}return typeof e!="object"?[]:P9t(e)?N9t(e,t):MLe(e)||DLe(e)?M9t(e,t):[]}function sQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(MLe(n)?r={...n,content:sQ(n.content)}:"content"in n&&qy(n.content)&&(r={...n,content:j_(n.content)}),DLe(n)&&(r={...r??n,parts:sQ(n.parts)}),qy(r)?r=j_(r):qy(n)&&(r=j_(n))),r??n})}function L9t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=sQ([r]),s=i[0];return oQ(s)<=n?i:D9t(s,n)}function By(e){return L9t(e,CLe)}function LLe(e){return bH(e,CLe)}var CLe,_H,oQ,nP=v(()=>{iQ();CLe=2e4,_H=e=>new TextEncoder().encode(e).length,oQ=e=>_H(JSON.stringify(e))});function jp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function iR(e,t){return e?`${e}.${t}`:t}function rP(e,t,n,r,i){if(t!==void 0&&e.setAttributes({[di]:t}),n!==void 0&&e.setAttributes({[Ns]:n}),t!==void 0||n!==void 0||r!==void 0||i!==void 0){let s=(t??0)+(n??0)+(r??0)+(i??0);e.setAttributes({[Pc]:s})}}function H_(e){if(typeof e=="string")return LLe(e);if(Array.isArray(e)){let t=By(e);return JSON.stringify(t)}return JSON.stringify(e)}function ll(e){if(!Array.isArray(e))return{systemInstructions:void 0,filteredMessages:e};let t=e.findIndex(o=>o&&typeof o=="object"&&"role"in o&&o.role==="system");if(t===-1)return{systemInstructions:void 0,filteredMessages:e};let n=e[t],r=typeof n.content=="string"?n.content:n.content!==void 0?JSON.stringify(n.content):void 0;if(!r)return{systemInstructions:void 0,filteredMessages:e};let i=JSON.stringify([{type:"text",content:r}]),s=[...e.slice(0,t),...e.slice(t+1)];return{systemInstructions:i,filteredMessages:s}}async function U9t(e,t,n){let r=e.catch(o=>{throw Wt(o,{mechanism:{handled:!1,type:n}}),o}),i=await t,s=await r;return s&&typeof s=="object"&&"data"in s?{...s,data:i}:i}function sR(e,t,n){return sa(e)?new Proxy(e,{get(r,i){let o=i in Promise.prototype||i===Symbol.toStringTag?t:r,a=Reflect.get(o,i);return i==="withResponse"&&typeof a=="function"?function(){let u=a.call(r);return U9t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var Hp=v(()=>{cl();go();Wa();Ja();nP()});var TH,ULe,vH,FLe,jLe,aQ,cQ,uQ,HLe,q_,oR,iP,qLe,BLe,GLe,zLe,VLe,WLe,lQ,dQ,KLe,YLe,fQ=v(()=>{TH="operation.name",ULe="ai.operationId",vH="ai.prompt",FLe="ai.schema",jLe="ai.response.object",aQ="ai.values",cQ="ai.response.text",uQ="ai.response.toolCalls",HLe="ai.response.finishReason",q_="ai.prompt.messages",oR="ai.prompt.tools",iP="ai.model.id",qLe="ai.response.providerMetadata",BLe="ai.usage.cachedInputTokens",GLe="ai.telemetry.functionId",zLe="ai.usage.completionTokens",VLe="ai.usage.promptTokens",WLe="ai.usage.tokens",lQ="ai.toolCall.name",dQ="ai.toolCall.id",KLe="ai.toolCall.args",YLe="ai.toolCall.result"});function JLe(e,t){let n=e.parent_span_id;if(!n)return;let r=e.data[di],i=e.data[Ns];if(typeof r=="number"||typeof i=="number"){let s=t.get(n)||{inputTokens:0,outputTokens:0};typeof r=="number"&&(s.inputTokens+=r),typeof i=="number"&&(s.outputTokens+=i),t.set(n,s)}}function pQ(e,t){let n=t.get(e.span_id);!n||!e.data||(n.inputTokens>0&&(e.data[di]=n.inputTokens),n.outputTokens>0&&(e.data[Ns]=n.outputTokens),(n.inputTokens>0||n.outputTokens>0)&&(e.data["gen_ai.usage.total_tokens"]=n.inputTokens+n.outputTokens))}function F9t(e){let t=new Map;for(let n of e){let r=n.data[Fp];if(typeof r=="string")try{let i=JSON.parse(r);for(let s of i)s.name&&s.description&&!t.has(s.name)&&t.set(s.name,s.description)}catch{}}return t}function XLe(e,t){let n=F9t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[F_];if(typeof i=="string"){let s=n.get(i);s&&(r.data[TLe]=s)}}r.op==="gen_ai.invoke_agent"&&pQ(r,t)}}function hQ(e){return eP.get(e)}function mQ(e){eP.delete(e)}function QLe(e){let t=e.map(n=>{if(typeof n=="string")try{return JSON.parse(n)}catch{return n}return n});return JSON.stringify(t)}function ZLe(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function j9t(e){try{let t=JSON.parse(e);if(t&&typeof t=="object"){let{messages:n}=t,{prompt:r,system:i}=t,s=[];if(typeof i=="string"&&s.push({role:"system",content:i}),typeof n=="string")try{n=JSON.parse(n)}catch{}if(Array.isArray(n))return s.push(...ZLe(n)),s;if(Array.isArray(r))return s.push(...ZLe(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function $Le(e,t){if(typeof t[vH]=="string"&&!t[aa]&&!t[q_]){let n=t[vH],r=j9t(n);if(r.length){let{systemInstructions:i,filteredMessages:s}=ll(r);i&&e.setAttribute(ul,i);let o=Array.isArray(s)?s.length:0,a=H_(s);e.setAttributes({[vH]:a,[aa]:a,[Nc]:o})}}else if(typeof t[q_]=="string")try{let n=JSON.parse(t[q_]);if(Array.isArray(n)){let{systemInstructions:r,filteredMessages:i}=ll(n);r&&e.setAttribute(ul,r);let s=Array.isArray(i)?i.length:0,o=H_(i);e.setAttributes({[q_]:o,[aa]:o,[Nc]:s})}}catch{}}function e1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return yH;case"ai.generateText.doGenerate":return hLe;case"ai.streamText.doStream":return mLe;case"ai.generateObject.doGenerate":return gLe;case"ai.streamObject.doStream":return yLe;case"ai.embed.doEmbed":return SLe;case"ai.embedMany.doEmbed":return ELe;case"ai.rerank.doRerank":return _Le;case"ai.toolCall":return bLe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var gQ=v(()=>{Ja();Hp();rQ();fQ()});function H9t(e){return tQ.has(e)?"invoke_agent":nQ.has(e)?"generate_content":RLe.has(e)?"embeddings":wLe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function q9t(e){let{data:t,description:n}=vt(e);if(n){if(t[lQ]&&t[dQ]&&n==="ai.toolCall"){W9t(e,t);return}!t[ULe]&&!n.startsWith("ai.")||K9t(e,n,t)}}function B9t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)V9t(r),JLe(r,t);XLe(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&pQ(n,t)}return e}function G9t(e){if(typeof e!="string")return"stop";switch(e){case"tool-calls":return"tool_call";case"stop":case"length":case"content_filter":case"error":return e;default:return e}}function z9t(e){let t=e[cQ],n=e[uQ],r=e[HLe];if(t==null&&n==null)return;let i=[];if(typeof t=="string"&&t.length>0&&i.push({type:"text",content:t}),n!=null)try{let s=typeof n=="string"?JSON.parse(n):n;if(Array.isArray(s)){for(let o of s){let a=o.input??o.args;i.push({type:"tool_call",id:o.toolCallId,name:o.toolName,arguments:typeof a=="string"?a:JSON.stringify(a??{})})}delete e[uQ]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:G9t(r)};e[lLe]=JSON.stringify([s]),delete e[cQ]}}function V9t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,zLe,Ns),ca(t,VLe,di),ca(t,BLe,Hy),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ns),ca(t,WLe,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[Hy]=="number"&&(t[di]=t[di]+t[Hy]),typeof t[di]=="number"){let r=typeof t[Ns]=="number"?t[Ns]:0;t[Pc]=r+t[di]}if(t[oR]&&Array.isArray(t[oR])&&(t[oR]=QLe(t[oR])),t[TH]){let r=H9t(t[TH]);t[oa]=r,delete t[TH]}if(ca(t,q_,aa),z9t(t),ca(t,jLe,"gen_ai.response.object"),ca(t,oR,"gen_ai.request.available_tools"),ca(t,KLe,SH),ca(t,YLe,EH),ca(t,FLe,"gen_ai.request.schema"),ca(t,iP,us),Array.isArray(t[aQ])){let r=t[aQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[rR]=r.length===1?r[0]:JSON.stringify(r)}Y9t(t);for(let r of Object.keys(t))r.startsWith("ai.")&&ca(t,r,`vercel.${r}`)}}function ca(e,t,n){e[t]!=null&&(e[n]=e[t],delete e[t])}function W9t(e,t){e.setAttribute(Rt,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,lQ,F_),ca(t,dQ,ZX);let n=t[ZX];typeof n=="string"&&eP.set(n,e.spanContext()),t[JX]||e.setAttribute(JX,"function");let r=t[F_];r&&e.updateName(`execute_tool ${r}`)}function K9t(e,t,n){e.setAttribute(Rt,"auto.vercelai.otel");let r=t.replace("ai.","");e.setAttribute("ai.pipeline.name",r),e.updateName(r);let i=n[GLe];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),$Le(e,n),n[iP]&&!n[yo]&&e.setAttribute(yo,n[iP]),e.setAttribute("ai.streaming",t.includes("stream"));let s=e1e(t);if(s&&e.setAttribute(zt,s),tQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[iP];if(o){let a=nQ.has(t)?"generate_content":kLe[t];a&&e.updateName(`${a} ${o}`)}}function AH(e){e.on("spanStart",q9t),e.addEventProcessor(Object.assign(B9t,{id:"VercelAiEventProcessor"}))}function Y9t(e){let t=e[qLe];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(uf(e,Hy,r.cachedPromptTokens),uf(e,"gen_ai.usage.output_tokens.reasoning",r.reasoningTokens),uf(e,"gen_ai.usage.output_tokens.prediction_accepted",r.acceptedPredictionTokens),uf(e,"gen_ai.usage.output_tokens.prediction_rejected",r.rejectedPredictionTokens),e["gen_ai.conversation.id"]||uf(e,"gen_ai.conversation.id",r.responseId)),n.anthropic){let i=n.anthropic.usage?.cache_read_input_tokens??n.anthropic.cacheReadInputTokens;uf(e,Hy,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;uf(e,YX,s)}n.bedrock?.usage&&(uf(e,Hy,n.bedrock.usage.cacheReadInputTokens),uf(e,YX,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(uf(e,Hy,n.deepseek.promptCacheHitTokens),uf(e,"gen_ai.usage.input_tokens.cache_miss",n.deepseek.promptCacheMissTokens))}catch{}}function uf(e,t,n){n!=null&&(e[t]=n)}var t1e=v(()=>{Lo();xc();Ja();rQ();gQ();fQ()});var Gy,n1e,Z9t,r1e,RH=v(()=>{Gy="OpenAI",n1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},Z9t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],r1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...Z9t]});function i1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function s1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function o1e(e){if(e===null||typeof e!="object"||!("object"in e))return!1;let t=e;return t.object==="list"&&typeof t.model=="string"&&t.model.toLowerCase().includes("embedding")}function a1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function c1e(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function u1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function l1e(e,t,n){if(wH(e,t.id,t.model,t.created),t.usage&&sP(e,t.usage.prompt_tokens,t.usage.completion_tokens,t.usage.total_tokens),Array.isArray(t.choices)){let r=t.choices.map(i=>i.finish_reason).filter(i=>i!==null);if(r.length>0&&e.setAttributes({[lu]:JSON.stringify(r)}),n){let i=t.choices.map(s=>s.message?.tool_calls).filter(s=>Array.isArray(s)&&s.length>0).flat();i.length>0&&e.setAttributes({[Fo]:JSON.stringify(i)})}}}function d1e(e,t,n){if(wH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[lu]:JSON.stringify([t.status])}),t.usage&&sP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.total_tokens),n){let r=t;if(Array.isArray(r.output)&&r.output.length>0){let i=r.output.filter(s=>typeof s=="object"&&s!==null&&s.type==="function_call");i.length>0&&e.setAttributes({[Fo]:JSON.stringify(i)})}}}function f1e(e,t){e.setAttributes({[QX]:t.model,[yo]:t.model}),t.usage&&sP(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function p1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[XX]:n,[Kl]:n,[$O]:n}),r&&e.setAttributes({[$X]:new Date(r*1e3).toISOString()})}function sP(e,t,n,r){t!==void 0&&e.setAttributes({[ALe]:t,[di]:t}),n!==void 0&&e.setAttributes({[vLe]:n,[Ns]:n}),r!==void 0&&e.setAttributes({[Pc]:r})}function wH(e,t,n,r){e.setAttributes({[XX]:t,[Kl]:t}),e.setAttributes({[QX]:n,[yo]:n}),e.setAttributes({[$X]:new Date(r*1e3).toISOString()})}function J9t(e){if("conversation"in e&&typeof e.conversation=="string")return e.conversation;if("previous_response_id"in e&&typeof e.previous_response_id=="string")return e.previous_response_id}function h1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[Uy]=e.temperature),"top_p"in e&&(t[jy]=e.top_p),"frequency_penalty"in e&&(t[Fy]=e.frequency_penalty),"presence_penalty"in e&&(t[nR]=e.presence_penalty),"stream"in e&&(t[eR]=e.stream),"encoding_format"in e&&(t[aLe]=e.encoding_format),"dimensions"in e&&(t[cLe]=e.dimensions);let n=J9t(e);return n&&(t[$O]=n),t}var yQ=v(()=>{Ja()});function X9t(e,t){for(let n of e){let r=n.index;if(!(r===void 0||!n.function))if(!(r in t.chatCompletionToolCalls))t.chatCompletionToolCalls[r]={...n,function:{name:n.function.name,arguments:n.function.arguments||""}};else{let i=t.chatCompletionToolCalls[r];n.function.arguments&&i?.function&&(i.function.arguments+=n.function.arguments)}}}function Q9t(e,t,n){t.responseId=e.id??t.responseId,t.responseModel=e.model??t.responseModel,t.responseTimestamp=e.created??t.responseTimestamp,e.usage&&(t.promptTokens=e.usage.prompt_tokens,t.completionTokens=e.usage.completion_tokens,t.totalTokens=e.usage.total_tokens);for(let r of e.choices??[])n&&(r.delta?.content&&t.responseTexts.push(r.delta.content),r.delta?.tool_calls&&X9t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function $9t(e,t,n,r){if(!(e&&typeof e=="object")){t.eventTypes.push("unknown:non-object");return}if(e instanceof Error){r.setStatus({code:2,message:"internal_error"}),Wt(e,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});return}if(!("type"in e))return;let i=e;if(!r1e.includes(i.type)){t.eventTypes.push(i.type);return}if(n&&(i.type==="response.output_item.done"&&"item"in i&&t.responsesApiToolCalls.push(i.item),i.type==="response.output_text.delta"&&"delta"in i&&i.delta)){t.responseTexts.push(i.delta);return}if("response"in i){let{response:s}=i;t.responseId=s.id??t.responseId,t.responseModel=s.model??t.responseModel,t.responseTimestamp=s.created_at??t.responseTimestamp,s.usage&&(t.promptTokens=s.usage.input_tokens,t.completionTokens=s.usage.output_tokens,t.totalTokens=s.usage.total_tokens),s.status&&t.finishReasons.push(s.status),n&&s.output_text&&t.responseTexts.push(s.output_text)}}async function*m1e(e,t,n){let r={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",responseTimestamp:0,promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(let i of e)u1e(i)?Q9t(i,r,n):c1e(i)&&$9t(i,r,n,t),yield i}finally{wH(t,r.responseId,r.responseModel,r.responseTimestamp),sP(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[U_]:!0}),r.finishReasons.length&&t.setAttributes({[lu]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length&&t.setAttributes({[zs]:r.responseTexts.join("")});let s=[...Object.values(r.chatCompletionToolCalls),...r.responsesApiToolCalls];s.length>0&&t.setAttributes({[Fo]:JSON.stringify(s)}),t.end()}}var g1e=v(()=>{cl();Ja();RH();yQ()});function e3t(e){let t=Array.isArray(e.tools)?e.tools:[],r=e.web_search_options&&typeof e.web_search_options=="object"?[{type:"web_search_options",...e.web_search_options}]:[],i=[...t,...r];if(i.length!==0)try{return JSON.stringify(i)}catch(s){Fe&&Z.error("Failed to serialize OpenAI tools:",s);return}}function t3t(e,t){let n={[Ly]:"openai",[oa]:t,[Rt]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=e3t(r);i&&(n[Fp]=i),Object.assign(n,h1e(r))}else n[us]="unknown";return n}function n3t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(i1e(r)){if(l1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[zs]:JSON.stringify(i)})}}else s1e(r)?(d1e(e,r,n),n&&r.output_text&&e.setAttributes({[zs]:r.output_text})):o1e(r)?f1e(e,r):a1e(r)&&p1e(e,r)}function y1e(e,t,n){if(n==="embeddings"&&"input"in t){let a=t.input;if(a==null||typeof a=="string"&&a.length===0||Array.isArray(a)&&a.length===0)return;e.setAttribute(rR,typeof a=="string"?a:JSON.stringify(a));return}let r="input"in t?t.input:"messages"in t?t.messages:void 0;if(!r||Array.isArray(r)&&r.length===0)return;let{systemInstructions:i,filteredMessages:s}=ll(r);i&&e.setAttribute(ul,i);let o=H_(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Nc,s.length):e.setAttribute(Nc,1)}function r3t(e,t,n,r,i){return function(...o){let a=n.operation,c=t3t(o,a),u=c[us]||"unknown",l=o[0],d=l&&typeof l=="object"&&l.stream===!0,f={name:`${a} ${u}`,op:`gen_ai.${a}`,attributes:c};if(d){let m,g=Uo(f,y=>(m=e.apply(r,o),i.recordInputs&&l&&y1e(y,l,a),(async()=>{try{let E=await m;return m1e(E,y,i.recordOutputs??!1)}catch(E){throw y.setStatus({code:2,message:"internal_error"}),Wt(E,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:t}}}),y.end(),E}})()));return sR(m,g,"auto.ai.openai")}let p,h=cf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&y1e(m,l,a),p.then(g=>(n3t(m,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),g})));return sR(p,h,"auto.ai.openai")}}function S1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=iR(t,String(i)),a=n1e[o];return typeof s=="function"&&a?r3t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?S1e(s,o,n):s}})}function kH(e,t){return S1e(e,"",jp(t))}var E1e=v(()=>{Pi();cl();Lo();br();Ny();Ja();Hp();RH();g1e();yQ()});var zy,_1e,SQ=v(()=>{zy="Anthropic_AI",_1e={"messages.create":{operation:"chat"},"messages.stream":{operation:"chat",streaming:!0},"messages.countTokens":{operation:"chat"},"models.get":{operation:"models"},"completions.create":{operation:"chat"},"models.retrieve":{operation:"models"},"beta.messages.create":{operation:"chat"}}});function b1e(e,t){if(Array.isArray(t)&&t.length===0)return;let{systemInstructions:n,filteredMessages:r}=ll(t);n&&e.setAttributes({[ul]:n});let i=Array.isArray(r)?r.length:1;e.setAttributes({[aa]:H_(r),[Nc]:i})}function EQ(e){return e&&i3t[e]||"internal_error"}function T1e(e,t){t.error&&(e.setStatus({code:2,message:EQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function v1e(e){let{system:t,messages:n,input:r}=e,i=typeof t=="string"?[{role:"system",content:e.system}]:[],s=Array.isArray(r)?r:r!=null?[r]:void 0,o=Array.isArray(n)?n:n!=null?[n]:[],a=s??o;return[...i,...a]}var i3t,_Q=v(()=>{cl();Ja();Hp();i3t={invalid_request_error:"invalid_argument",authentication_error:"unauthenticated",permission_error:"permission_denied",not_found_error:"not_found",request_too_large:"failed_precondition",rate_limit_error:"resource_exhausted",api_error:"internal_error",overloaded_error:"unavailable"}});function s3t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:EQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function o3t(e,t){if(e.type==="message_delta"&&e.usage&&"output_tokens"in e.usage&&typeof e.usage.output_tokens=="number"&&(t.completionTokens=e.usage.output_tokens),e.message){let n=e.message;n.id&&(t.responseId=n.id),n.model&&(t.responseModel=n.model),n.stop_reason&&t.finishReasons.push(n.stop_reason),n.usage&&(typeof n.usage.input_tokens=="number"&&(t.promptTokens=n.usage.input_tokens),typeof n.usage.cache_creation_input_tokens=="number"&&(t.cacheCreationInputTokens=n.usage.cache_creation_input_tokens),typeof n.usage.cache_read_input_tokens=="number"&&(t.cacheReadInputTokens=n.usage.cache_read_input_tokens))}}function a3t(e,t){e.type!=="content_block_start"||typeof e.index!="number"||!e.content_block||(e.content_block.type==="tool_use"||e.content_block.type==="server_tool_use")&&(t.activeToolBlocks[e.index]={id:e.content_block.id,name:e.content_block.name,inputJsonParts:[]})}function c3t(e,t,n){if(!(e.type!=="content_block_delta"||!e.delta)){if(typeof e.index=="number"&&"partial_json"in e.delta&&typeof e.delta.partial_json=="string"){let r=t.activeToolBlocks[e.index];r&&r.inputJsonParts.push(e.delta.partial_json)}n&&typeof e.delta.text=="string"&&t.responseTexts.push(e.delta.text)}}function u3t(e,t){if(e.type!=="content_block_stop"||typeof e.index!="number")return;let n=t.activeToolBlocks[e.index];if(!n)return;let r=n.inputJsonParts.join(""),i;try{i=r?JSON.parse(r):{}}catch{i={__unparsed:r}}t.toolCalls.push({type:"tool_use",id:n.id,name:n.name,input:i}),delete t.activeToolBlocks[e.index]}function A1e(e,t,n,r){!(e&&typeof e=="object")||s3t(e,r)||(o3t(e,t),a3t(e,t),c3t(e,t,n),u3t(e,t))}function l3t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Kl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),rP(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[U_]:!0}),e.finishReasons.length>0&&t.setAttributes({[lu]:JSON.stringify(e.finishReasons)}),n&&e.responseTexts.length>0&&t.setAttributes({[zs]:e.responseTexts.join("")}),n&&e.toolCalls.length>0&&t.setAttributes({[Fo]:JSON.stringify(e.toolCalls)}),t.end())}async function*R1e(e,t,n){let r={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(let i of e)A1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Kl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),rP(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[U_]:!0}),r.finishReasons.length>0&&t.setAttributes({[lu]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length>0&&t.setAttributes({[zs]:r.responseTexts.join("")}),n&&r.toolCalls.length>0&&t.setAttributes({[Fo]:JSON.stringify(r.toolCalls)}),t.end()}}function w1e(e,t,n){let r={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return e.on("streamEvent",i=>{A1e(i,r,n,t)}),e.on("message",()=>{l3t(r,t,n)}),e.on("error",i=>{Wt(i,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),t.isRecording()&&(t.setStatus({code:2,message:"internal_error"}),t.end())}),e}var k1e=v(()=>{cl();Ja();Hp();_Q()});function d3t(e,t,n){let r={[Ly]:"anthropic",[oa]:n,[Rt]:"auto.ai.anthropic"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let i=e[0];i.tools&&Array.isArray(i.tools)&&(r[Fp]=JSON.stringify(i.tools)),r[us]=i.model??"unknown","temperature"in i&&(r[Uy]=i.temperature),"top_p"in i&&(r[jy]=i.top_p),"stream"in i&&(r[eR]=i.stream),"top_k"in i&&(r[gH]=i.top_k),"frequency_penalty"in i&&(r[Fy]=i.frequency_penalty),"max_tokens"in i&&(r[tR]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function bQ(e,t){let n=v1e(t);b1e(e,n),"prompt"in t&&e.setAttributes({[oLe]:JSON.stringify(t.prompt)})}function f3t(e,t){if("content"in t&&Array.isArray(t.content)){e.setAttributes({[zs]:t.content.map(r=>r.text).filter(r=>!!r).join("")});let n=[];for(let r of t.content)(r.type==="tool_use"||r.type==="server_tool_use")&&n.push(r);n.length>0&&e.setAttributes({[Fo]:JSON.stringify(n)})}"completion"in t&&e.setAttributes({[zs]:t.completion}),"input_tokens"in t&&e.setAttributes({[zs]:JSON.stringify(t.input_tokens)})}function p3t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Kl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[eQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[eQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&rP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function h3t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){T1e(e,t);return}n&&f3t(e,t),p3t(e,t)}}function I1e(e,t,n){throw Wt(e,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:n}}}),t.isRecording()&&(t.setStatus({code:2,message:"internal_error"}),t.end()),e}function m3t(e,t,n,r,i,s,o,a,c,u,l){let d=i[us]??"unknown",f={name:`${s} ${d}`,op:`gen_ai.${s}`,attributes:i};if(u&&!l){let p,h=Uo(f,m=>(p=e.apply(n,r),c.recordInputs&&a&&bQ(m,a),(async()=>{try{let g=await p;return R1e(g,m,c.recordOutputs??!1)}catch(g){return I1e(g,m,o)}})()));return sR(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&bQ(p,a);let h=t.apply(n,r);return w1e(h,p,c.recordOutputs??!1)}catch(h){return I1e(h,p,o)}})}function g3t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=d3t(a,t,c),l=u[us]??"unknown",d=typeof a[0]=="object"?a[0]:void 0,f=!!d?.stream,p=n.streaming===!0;if(f||p)return m3t(e,s,r,a,u,c,t,d,i,f,p);let h,m=cf({name:`${c} ${l}`,op:`gen_ai.${c}`,attributes:u},g=>(h=s.apply(r,a),i.recordInputs&&d&&bQ(g,d),h.then(y=>(h3t(g,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),y})));return sR(h,m,"auto.ai.anthropic")}})}function x1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=iR(t,String(i)),a=_1e[o];return typeof s=="function"&&a?g3t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?x1e(s,o,n):s}})}function IH(e,t){return x1e(e,"",jp(t))}var O1e=v(()=>{cl();Lo();Ny();Ja();Hp();SQ();k1e();_Q()});var Vy,P1e,N1e,TQ,C1e,vQ=v(()=>{Vy="Google_GenAI",P1e={"models.generateContent":{operation:"generate_content"},"models.generateContentStream":{operation:"generate_content",streaming:!0},"models.embedContent":{operation:"embeddings"},"chats.create":{operation:"chat"},"chat.sendMessage":{operation:"chat"},"chat.sendMessageStream":{operation:"chat",streaming:!0}},N1e="google_genai",TQ="chats.create",C1e="chat"});function y3t(e,t){let n=e?.promptFeedback;if(n?.blockReason){let r=n.blockReasonMessage??n.blockReason;return t.setStatus({code:2,message:"internal_error"}),Wt(`Content blocked: ${r}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}function S3t(e,t){typeof e.responseId=="string"&&(t.responseId=e.responseId),typeof e.modelVersion=="string"&&(t.responseModel=e.modelVersion);let n=e.usageMetadata;n&&(typeof n.promptTokenCount=="number"&&(t.promptTokens=n.promptTokenCount),typeof n.candidatesTokenCount=="number"&&(t.completionTokens=n.candidatesTokenCount),typeof n.totalTokenCount=="number"&&(t.totalTokens=n.totalTokenCount))}function E3t(e,t,n){Array.isArray(e.functionCalls)&&t.toolCalls.push(...e.functionCalls);for(let r of e.candidates??[]){r?.finishReason&&!t.finishReasons.includes(r.finishReason)&&t.finishReasons.push(r.finishReason);for(let i of r?.content?.parts??[])n&&i.text&&t.responseTexts.push(i.text),i.functionCall&&t.toolCalls.push({type:"function",id:i.functionCall.id,name:i.functionCall.name,arguments:i.functionCall.args})}}function _3t(e,t,n,r){!e||y3t(e,r)||(S3t(e,t),E3t(e,t,n))}async function*M1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)_3t(i,r,n,t),yield i}finally{let i={[U_]:!0};r.responseId&&(i[Kl]=r.responseId),r.responseModel&&(i[yo]=r.responseModel),r.promptTokens!==void 0&&(i[di]=r.promptTokens),r.completionTokens!==void 0&&(i[Ns]=r.completionTokens),r.totalTokens!==void 0&&(i[Pc]=r.totalTokens),r.finishReasons.length&&(i[lu]=JSON.stringify(r.finishReasons)),n&&r.responseTexts.length&&(i[zs]=r.responseTexts.join("")),n&&r.toolCalls.length&&(i[Fo]=JSON.stringify(r.toolCalls)),t.setAttributes(i),t.end()}}var D1e=v(()=>{cl();Ja()});function aR(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>aR(n,t)):typeof e!="object"||!e?[]:"role"in e&&typeof e.role=="string"?[e]:"parts"in e?[{...e,role:t}]:[{role:t,content:e}]}var L1e=v(()=>{});function U1e(e,t){if("model"in e&&typeof e.model=="string")return e.model;if(t&&typeof t=="object"){let n=t;if("model"in n&&typeof n.model=="string")return n.model;if("modelVersion"in n&&typeof n.modelVersion=="string")return n.modelVersion}return"unknown"}function b3t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[Uy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[jy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[gH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[tR]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[Fy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[nR]=e.presencePenalty),t}function T3t(e,t,n){let r={[Ly]:N1e,[oa]:e,[Rt]:"auto.ai.google_genai"};if(t){if(r[us]=U1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,b3t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[Fp]=JSON.stringify(s)}}}else r[us]=U1e({},n);return r}function F1e(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(rR,typeof i=="string"?i:JSON.stringify(i));return}let r=[];if("config"in t&&t.config&&typeof t.config=="object"&&"systemInstruction"in t.config&&t.config.systemInstruction&&r.push(...aR(t.config.systemInstruction,"system")),"history"in t&&r.push(...aR(t.history,"user")),"contents"in t&&r.push(...aR(t.contents,"user")),"message"in t&&r.push(...aR(t.message,"user")),Array.isArray(r)&&r.length){let{systemInstructions:i,filteredMessages:s}=ll(r);i&&e.setAttribute(ul,i);let o=Array.isArray(s)?s.length:0;e.setAttributes({[Nc]:o,[aa]:JSON.stringify(By(s))})}}function v3t(e,t,n){if(!(!t||typeof t!="object")){if(t.modelVersion&&e.setAttribute(yo,t.modelVersion),t.usageMetadata&&typeof t.usageMetadata=="object"){let r=t.usageMetadata;typeof r.promptTokenCount=="number"&&e.setAttributes({[di]:r.promptTokenCount}),typeof r.candidatesTokenCount=="number"&&e.setAttributes({[Ns]:r.candidatesTokenCount}),typeof r.totalTokenCount=="number"&&e.setAttributes({[Pc]:r.totalTokenCount})}if(n&&Array.isArray(t.candidates)&&t.candidates.length>0){let r=t.candidates.map(i=>i.content?.parts&&Array.isArray(i.content.parts)?i.content.parts.map(s=>typeof s.text=="string"?s.text:"").filter(s=>s.length>0).join(""):"").filter(i=>i.length>0);r.length>0&&e.setAttributes({[zs]:r.join("")})}if(n&&t.functionCalls){let r=t.functionCalls;Array.isArray(r)&&r.length>0&&e.setAttributes({[Fo]:JSON.stringify(r)})}}}function j1e(e,t,n,r,i){let s=t===TQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=T3t(l,d,r),p=f[us]??"unknown";return n.streaming?Uo({name:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},async h=>{try{i.recordInputs&&d&&F1e(h,d,o);let m=await a.apply(r,u);return M1e(m,h,!!i.recordOutputs)}catch(m){throw h.setStatus({code:2,message:"internal_error"}),Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}}),h.end(),m}}):cf({name:s?`${l} ${p} create`:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},h=>(i.recordInputs&&d&&F1e(h,d,o),af(()=>a.apply(r,u),m=>{Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}})},()=>{},m=>{!s&&!o&&v3t(h,m,i.recordOutputs)})))}})}function AQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=iR(t,String(i)),c=P1e[a];if(typeof o=="function"&&c){if(a===TQ){let u=j1e(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?AQ(f,C1e,n):f}}return j1e(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?AQ(o,a,n):o}})}function xH(e,t){return AQ(e,"",jp(t))}var H1e=v(()=>{cl();Lo();Ny();Kj();Ja();nP();Hp();vQ();D1e();L1e()});var OH,B_,q1e,PH=v(()=>{OH="LangChain",B_="auto.ai.langchain",q1e={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function Tm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function cR(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&qy(n)?j_(n):n);return JSON.stringify(t)}catch{return String(e)}return Tm(e)}function oP(e){let t=e.toLowerCase();return q1e[t]??t}function B1e(e){return e.includes("System")?"system":e.includes("Human")?"user":e.includes("AI")||e.includes("Assistant")?"assistant":e.includes("Function")?"function":e.includes("Tool")?"tool":"user"}function RQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function aP(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:oP(i),content:cR(t.content)}}if(t.lc===1&&t.kwargs){let i=t.id,s=Array.isArray(i)&&i.length>0?i[i.length-1]:"",o=typeof s=="string"?B1e(s):"user";return{role:oP(o),content:cR(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:oP(i),content:cR(t.content)}}if(t.role)return{role:oP(String(t.role)),content:cR(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:oP(B1e(r)),content:cR(t.content)}:{role:"user",content:cR(t.content)}})}function A3t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;dl(r,Uy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;dl(r,tR,o);let a=t?.top_p??i?.top_p;dl(r,jy,a);let c=t?.frequency_penalty;dl(r,Fy,c);let u=t?.presence_penalty;return dl(r,nR,u),t&&"stream"in t&&Yl(r,eR,!!t.stream),r}function G1e(e,t,n,r,i){return{[Ly]:Tm(e??"langchain"),[oa]:"chat",[us]:Tm(t),[Rt]:B_,...A3t(n,r,i)}}function z1e(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=G1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Yl(a,Nc,t.length);let c=t.map(u=>({role:"user",content:u}));Yl(a,aa,Tm(c))}return a}function V1e(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=G1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=aP(t.flat()),{systemInstructions:u,filteredMessages:l}=ll(c);u&&Yl(a,ul,u);let d=Array.isArray(l)?l.length:0;Yl(a,Nc,d);let f=By(l);Yl(a,aa,Tm(f))}return a}function R3t(e,t){let n=[],r=e.flat();for(let i of r){let s=i.message?.content;if(Array.isArray(s))for(let o of s){let a=o;a.type==="tool_use"&&n.push(a)}}n.length>0&&Yl(t,Fo,Tm(n))}function w3t(e,t){if(!e)return;let n=e.tokenUsage,r=e.usage;if(n)dl(t,di,n.promptTokens),dl(t,Ns,n.completionTokens),dl(t,Pc,n.totalTokens);else if(r){dl(t,di,r.input_tokens),dl(t,Ns,r.output_tokens);let i=Number(r.input_tokens),s=Number(r.output_tokens),o=(Number.isNaN(i)?0:i)+(Number.isNaN(s)?0:s);o>0&&dl(t,Pc,o),r.cache_creation_input_tokens!==void 0&&dl(t,fLe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&dl(t,pLe,r.cache_read_input_tokens)}}function W1e(e,t){if(!e)return;let n={};if(Array.isArray(e.generations)){let u=e.generations.flat().map(l=>l.generationInfo?.finish_reason?l.generationInfo.finish_reason:l.generation_info?.finish_reason?l.generation_info.finish_reason:null).filter(l=>typeof l=="string");if(u.length>0&&Yl(n,lu,Tm(u)),R3t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Yl(n,zs,Tm(l))}}w3t(e.llmOutput,n);let r=e.llmOutput,s=e.generations?.[0]?.[0]?.message,o=r?.model_name??r?.model??s?.response_metadata?.model_name;o&&Yl(n,yo,o);let a=r?.id??s?.id;a&&Yl(n,Kl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Yl(n,uLe,Tm(c)),n}var Yl,dl,NH=v(()=>{Lo();Ja();iQ();nP();Hp();PH();Yl=(e,t,n)=>{n!=null&&(e[t]=n)},dl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function CH(e={}){let{recordInputs:t,recordOutputs:n}=jp(e),r=new Map,i=o=>{let a=r.get(o);a?.isRecording()&&(a.end(),r.delete(o))},s={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(o,a,c,u,l,d,f,p){let h=RQ(d),m=z1e(o,a,t,h,f),g=m[us],y=m[oa];Uo({name:`${y} ${g}`,op:"gen_ai.chat",attributes:{...m,[zt]:"gen_ai.chat"}},E=>(r.set(c,E),E))},handleChatModelStart(o,a,c,u,l,d,f,p){let h=RQ(d),m=V1e(o,a,t,h,f),g=m[us],y=m[oa];Uo({name:`${y} ${g}`,op:"gen_ai.chat",attributes:{...m,[zt]:"gen_ai.chat"}},E=>(r.set(c,E),E))},handleLLMEnd(o,a,c,u,l){let d=r.get(a);if(d?.isRecording()){let f=W1e(o,n);f&&d.setAttributes(f),i(a)}},handleLLMError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${B_}.llm_error_handler`}})},handleChainStart(o,a,c,u,l,d,f,p){let h=p||o.name||"unknown_chain",m={[Rt]:"auto.ai.langchain","langchain.chain.name":h};t&&(m["langchain.chain.inputs"]=JSON.stringify(a)),Uo({name:`chain ${h}`,op:"gen_ai.invoke_agent",attributes:{...m,[zt]:"gen_ai.invoke_agent"}},g=>(r.set(c,g),g))},handleChainEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({"langchain.chain.outputs":JSON.stringify(o)}),i(a))},handleChainError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${B_}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[Rt]:B_,[F_]:l};t&&(d[SH]=a),Uo({name:`execute_tool ${l}`,op:"gen_ai.execute_tool",attributes:{...d,[zt]:"gen_ai.execute_tool"}},f=>(r.set(c,f),f))},handleToolEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({[EH]:JSON.stringify(o)}),i(a))},handleToolError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${B_}.tool_error_handler`}})},copy(){return s},toJSON(){return{lc:1,type:"not_implemented",id:s.lc_id}},toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:s.lc_id}}};return s}var K1e=v(()=>{cl();Lo();Ny();Ja();Hp();PH();NH()});var MH,wQ,kQ=v(()=>{MH="LangGraph",wQ="auto.ai.langgraph"});function k3t(e){if(!e||e.length===0)return null;let t=[];for(let n of e)if(n&&typeof n=="object"){let r=n.tool_calls;r&&Array.isArray(r)&&t.push(...r)}return t.length>0?t:null}function I3t(e){let t=e,n=0,r=0,i=0;if(t.usage_metadata&&typeof t.usage_metadata=="object"){let s=t.usage_metadata;return typeof s.input_tokens=="number"&&(n=s.input_tokens),typeof s.output_tokens=="number"&&(r=s.output_tokens),typeof s.total_tokens=="number"&&(i=s.total_tokens),{inputTokens:n,outputTokens:r,totalTokens:i}}if(t.response_metadata&&typeof t.response_metadata=="object"){let s=t.response_metadata;if(s.tokenUsage&&typeof s.tokenUsage=="object"){let o=s.tokenUsage;typeof o.promptTokens=="number"&&(n=o.promptTokens),typeof o.completionTokens=="number"&&(r=o.completionTokens),typeof o.totalTokens=="number"&&(i=o.totalTokens)}}return{inputTokens:n,outputTokens:r,totalTokens:i}}function x3t(e,t){let n=t;if(n.response_metadata&&typeof n.response_metadata=="object"){let r=n.response_metadata;r.model_name&&typeof r.model_name=="string"&&e.setAttribute(yo,r.model_name),r.finish_reason&&typeof r.finish_reason=="string"&&e.setAttribute(lu,[r.finish_reason])}}function Y1e(e){if(!e.builder?.nodes?.tools?.runnable?.tools)return null;let t=e.builder?.nodes?.tools?.runnable?.tools;return!t||!Array.isArray(t)||t.length===0?null:t.map(n=>({name:n.lc_kwargs?.name,description:n.lc_kwargs?.description,schema:n.lc_kwargs?.schema}))}function Z1e(e,t,n){let i=n?.messages;if(!i||!Array.isArray(i))return;let s=t?.length??0,o=i.length>s?i.slice(s):[];if(o.length===0)return;let a=k3t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=aP(o);e.setAttribute(zs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=I3t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,x3t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ns,l),d>0&&e.setAttribute(Pc,d)}var J1e=v(()=>{Ja();NH()});function IQ(e,t){return new Proxy(e,{apply(n,r,i){return cf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[Rt]:wQ,[zt]:"gen_ai.create_agent",[oa]:"create_agent"}},s=>{try{let o=Reflect.apply(n,r,i),a=i.length>0?i[0]:{};a?.name&&typeof a.name=="string"&&(s.setAttribute(KX,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=O3t(c.bind(o),o,a,t)),o}catch(o){throw s.setStatus({code:2,message:"internal_error"}),Wt(o,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),o}})}})}function O3t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return cf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[Rt]:wQ,[zt]:yH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(dLe,c),a.setAttribute(KX,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute($O,d);let f=Y1e(t);f&&a.setAttribute(Fp,JSON.stringify(f));let p=r.recordInputs,h=r.recordOutputs,m=o.length>0?o[0]?.messages??[]:[];if(m&&p){let y=aP(m),{systemInstructions:E,filteredMessages:S}=ll(y);E&&a.setAttribute(ul,E);let _=By(S),b=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(_),[Nc]:b})}let g=await Reflect.apply(i,s,o);return h&&Z1e(a,m??null,g),g}catch(c){throw a.setStatus({code:2,message:"internal_error"}),Wt(c,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),c}})}})}function DH(e,t){return e.compile=IQ(e.compile,jp(t)),e}var X1e=v(()=>{cl();Lo();Ny();Ja();nP();Hp();NH();kQ();J1e()});function cP(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var Q1e=v(()=>{});function uP(e,t,n){let r=e[t];if(typeof r=="function"){try{e[t]=n}catch{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0,enumerable:!0})}if(e.default===r)try{e.default=n}catch{Object.defineProperty(e,"default",{value:n,writable:!0,configurable:!0,enumerable:!0})}}}var $1e=v(()=>{});function nUe(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes("node_modules/")}function rUe(e){let t=/^\s*[-]{4,}$/,n=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,r=/at (?:async )?(.+?) \(data:(.*?),/;return i=>{let s=i.match(r);if(s)return{filename:``,function:s[1]};let o=i.match(n);if(o){let a,c,u,l,d;if(o[1]){u=o[1];let m=u.lastIndexOf(".");if(u[m-1]==="."&&m--,m>0){a=u.slice(0,m),c=u.slice(m+1);let g=a.indexOf(".Module");g>0&&(u=u.slice(g+1),a=a.slice(0,g))}l=void 0}c&&(l=a,d=c),c===""&&(d=void 0,u=void 0),u===void 0&&(d=d||"?",u=l?`${l}.${d}`:d);let f=yCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?P3t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:eUe(o[3]),colno:eUe(o[4]),in_app:nUe(f||"",p)}}if(i.match(t))return{filename:i}}}function xQ(e){return[90,rUe(e)]}function eUe(e){return parseInt(e||"",10)||void 0}function P3t(e){try{return decodeURI(e)}catch{return}}var iUe=v(()=>{kA()});var du,sUe=v(()=>{du=class{constructor(t){this._maxSize=t,this._cache=new Map}get size(){return this._cache.size}get(t){let n=this._cache.get(t);if(n!==void 0)return this._cache.delete(t),this._cache.set(t,n),n}set(t,n){if(this._cache.size>=this._maxSize){let r=this._cache.keys().next().value;this._cache.delete(r)}this._cache.set(t,n)}remove(t){let n=this._cache.get(t);return n&&this._cache.delete(t),n}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let t=[];return this._cache.forEach(n=>t.push(n)),t}}});var st=v(()=>{jA();BCe();Ny();Sm();dX();fX();Wj();Lo();cl();go();j7();LA();gDe();rH();AX();yDe();SDe();UO();Kj();xc();HA();bDe();TDe();ADe();RDe();PDe();FX();MDe();LDe();BDe();KDe();tLe();rLe();iLe();sLe();RX();t1e();gQ();E1e();RH();O1e();SQ();H1e();vQ();K1e();PH();X1e();kQ();Q1e();Va();Wa();br();Dp();ef();QDe();$1e();kA();iUe();by();Dj();Em();CO();_De();sUe();wy();Sj();Sy()});function rt(e,t,n){return n?nYt(e,t,n):tYt(e,t)}function tYt(e,t){return Object.assign(n=>{let r=lP[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return lP[e]=i,(0,OQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function nYt(e,t,n){return Object.assign(r=>{let i=n(r),s=lP[e];if(s)return s.setConfig(i),s;let o=new t(i);return lP[e]=o,(0,OQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function dP(e){let t=!1,n=[];if(!rYt(e))t=!0;else{let i=e._wrap;e._wrap=(...s)=>(t=!0,n.forEach(o=>o()),n=[],i(...s))}return i=>{t?i():n.push(i)}}function rYt(e){return typeof e._wrap=="function"}var OQ,lP,LH=v(()=>{OQ=Se(Jt(),1),lP={}});var Qt,lf=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var UH,oUe=v(()=>{UH="@sentry/instrumentation-http"});function aUe(e,t,n,r){let i=0,s=[];Qt&&Z.log(r,"Patching request.on");let o=new WeakMap,a=n==="small"?1e3:n==="medium"?1e4:1048576;try{e.on=new Proxy(e.on,{apply:(c,u,l)=>{let[d,f,...p]=l;if(d==="data"){Qt&&Z.log(r,`Handling request.on("data") with maximum body size of ${a}b`);let h=new Proxy(f,{apply:(m,g,y)=>{try{let E=y[0],S=Buffer.from(E);i{let[,d]=l,f=o.get(d);if(f){o.delete(d);let p=l.slice();return p[1]=f,Reflect.apply(c,u,p)}return Reflect.apply(c,u,l)}}),e.on("end",()=>{try{let c=Buffer.concat(s).toString("utf-8");if(c){let l=Buffer.byteLength(c,"utf-8")>a?`${Buffer.from(c).subarray(0,a-3).toString("utf-8")}...`:c;t.setSDKProcessingMetadata({normalizedRequest:{data:l}})}}catch(c){Qt&&Z.error(r,"Error building captured request body",c)}})}catch(c){Qt&&Z.error(r,"Error patching request to capture body",c)}}var cUe=v(()=>{st();lf()});import{subscribe as iYt}from"node:diagnostics_channel";function dUe(e,t){Gs(e,"_startSpanCallback",new WeakRef(t))}function oYt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(lUe.has(s))return;let o=new Proxy(s,{apply(a,c,u){if(u[0]!=="request")return a.apply(c,u);let l=ct();if(Ve.active().getValue(uUe)||!l)return a.apply(c,u);Qt&&Z.log(NQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=QO(f),m=f.ip||f.socket?.remoteAddress,g=f.url||"/";n!=="none"&&!t?.(g,f)&&aUe(f,d,n,NQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let y=(f.method||"GET").toUpperCase(),E=bm(g),S=`${y} ${E}`;return d.setTransactionName(S),r&&l&&aYt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),PO(d,()=>{let _={traceId:Ka(),sampleRand:Do(),propagationSpanId:Ya()};Un().setPropagationContext({..._}),d.setPropagationContext({..._});let b=Jd.extract(Ve.active(),h.headers).setValue(uUe,!0);return Ve.with(b,()=>{l.emit("httpServerRequest",f,p,h);let T=f._startSpanCallback?.deref();return T?T(()=>a.apply(c,u)):a.apply(c,u)})})}});lUe.add(o),e.emit=o}function aYt(e,{requestIsolationScope:t,response:n,sessionFlushingDelayMS:r}){t.setSDKProcessingMetadata({requestSession:{status:"ok"}}),n.once("close",()=>{let i=t.getScopeData().sdkProcessingMetadata.requestSession;if(e&&i){Qt&&Z.log(`Recorded request session with status: ${i.status}`);let s=new Date;s.setSeconds(0,0);let o=s.toISOString(),a=PQ.get(e),c=a?.[o]||{exited:0,crashed:0,errored:0};if(c[{ok:"exited",crashed:"crashed",errored:"errored"}[i.status]]++,a)a[o]=c;else{Qt&&Z.log("Opened new request session aggregate.");let u={[o]:c};PQ.set(e,u);let l=()=>{clearTimeout(f),d(),PQ.delete(e);let p=Object.entries(u).map(([h,m])=>({started:h,exited:m.exited,errored:m.errored,crashed:m.crashed}));e.sendSession({aggregates:p})},d=e.on("flush",()=>{Qt&&Z.log("Sending request session aggregate due to client flush"),l()}),f=setTimeout(()=>{Qt&&Z.log("Sending request session aggregate due to flushing schedule"),l()},r).unref()}}})}var uUe,NQ,PQ,lUe,sYt,fP,FH=v(()=>{Ce();st();lf();cUe();uUe=rl("sentry_http_server_instrumented"),NQ="Http.Server",PQ=new Map,lUe=new WeakSet;sYt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:NQ,setupOnce(){iYt("http.server.request.start",(r=>{oYt(r.server,t)}))},afterAllSetup(n){Qt&&n.getIntegrationByName("Http")&&Z.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}}),fP=sYt});import{errorMonitor as cYt}from"node:events";function lYt(e){return e.headers["next-router-prefetch"]==="1"}function dYt(e){let t=bm(e);return!!(t.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)||t.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))}function fYt(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,vm.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&dYt(r)||n?.(r,e))}function pYt(e){let t=hYt(e.headers);return t==null?{}:mYt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function hYt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function mYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function gYt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[cm]:r,[m_]:r,"http.status_text":i?.toUpperCase()},o=(0,vm.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[J8]=a,s[X8]=c,s[Z8]=u,s["net.peer.port"]=l}if(s[m_]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===vm.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[um]=a}return s}function yYt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var vm,fUe,uYt,pP,CQ=v(()=>{Ce();vm=Se(fr(),1);Pn();st();lf();FH();fUe="Http.ServerSpans",uYt=((e={})=>{let t=e.ignoreStaticAssets??!0,n=e.ignoreIncomingRequests,r=e.ignoreStatusCodes??[[401,404],[301,303],[305,399]],{onSpanCreated:i}=e,{requestHook:s,responseHook:o,applyCustomAttributesOnSpan:a}=e.instrumentation??{};return{name:fUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;dUe(f,m=>{if(fYt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Z.log(fUe,"Skipping span creation for incoming request",f.url),m();let g=d.url||f.url||"/",y=XO(g),E=f.headers,S=E["user-agent"],_=E["x-forwarded-for"],b=f.httpVersion,T=E.host,A=T?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",R=c.tracer,x=g.startsWith("https")?"https":"http",k=d.method||f.method?.toUpperCase()||"GET",P=y?y.pathname:bm(g),N=`${k} ${P}`,C=R.startSpan(N,{kind:$r.SERVER,attributes:{[zt]:"http.server",[Rt]:"auto.http.otel.http","sentry.http.prefetch":lYt(f)||void 0,"http.url":g,"http.method":d.method,"http.target":y?`${y.pathname}${y.search}`:P,"http.host":T,"net.host.name":A,"http.client_ip":typeof _=="string"?_.split(",")[0]:void 0,"http.user_agent":S,"http.scheme":x,"http.flavor":b,"net.transport":b?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...pYt(f),...aH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let F={type:vm.RPCType.HTTP,span:C};return Ve.with((0,vm.setRPCMetadata)(jt.setSpan(Ve.active(),C),F),()=>{Ve.bind(Ve.active(),f),Ve.bind(Ve.active(),p);let V=!1;function K($){if(V)return;V=!0;let B=gYt(f,p);C.setAttributes(B),C.setStatus($),C.end();let X=B["http.route"];X&&vn().setTransactionName(`${f.method?.toUpperCase()||"GET"} ${X}`)}return p.on("close",()=>{K(mm(p.statusCode))}),p.on(cYt,()=>{let $=mm(p.statusCode);K($.code===2?$:{code:2})}),m()})})})},processEvent(c){if(c.type==="transaction"){let u=c.contexts?.trace?.data?.["http.response.status_code"];if(typeof u=="number"&&yYt(u,r))return Qt&&Z.log("Dropping transaction due to status code",u),null}return c},afterAllSetup(c){Qt&&(c.getIntegrationByName("Http")&&Z.warn("It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`."),c.getIntegrationByName("Http.Server")||Z.error("It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration."))}}}),pP=uYt});function hP(e,t){if(!e)return t;let n=x_(e),r=x_(t);if(!r)return e;let i={},s={};for(let[c,u]of Object.entries(r))c.startsWith(Lp)?i[c]=u:s[c]=u;let o=Object.keys(i).length>0,a={};if(n)for(let[c,u]of Object.entries(n))o&&c.startsWith(Lp)||(a[c]=u);Object.assign(a,i);for(let[c,u]of Object.entries(s))a[c]||(a[c]=u);return Nj(a)}var MQ=v(()=>{st()});function pUe(e,t){let n=SYt(e),r=t?.statusCode,i=cP(r);Wl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function jH(e,t){let n=HH(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=L_(n,r,t)?$A({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s;if(!e.getHeader("sentry-trace")){if(o)try{e.setHeader("sentry-trace",o),Qt&&Z.log(uR,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Z.error(uR,"Failed to add sentry-trace header to outgoing request:",Cp(l)?l.message:"Unknown error")}if(c&&!e.getHeader("traceparent"))try{e.setHeader("traceparent",c),Qt&&Z.log(uR,"Added traceparent header to outgoing request")}catch(l){Qt&&Z.error(uR,"Failed to add traceparent header to outgoing request:",Cp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=hP(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Z.log(uR,"Added baggage header to outgoing request")}catch(f){Qt&&Z.error(uR,"Failed to add baggage header to outgoing request:",Cp(f)?f.message:"Unknown error")}}}}function SYt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=My(n.toString()),i={url:Dy(r),"http.method":e.method||"GET"};return r.search&&(i["http.query"]=r.search),r.hash&&(i["http.fragment"]=r.hash),i}catch{return{}}}function hUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function HH(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var uR,mUe=v(()=>{st();lf();MQ();uR="@sentry/instrumentation-http"});import{subscribe as DQ,unsubscribe as LQ}from"node:diagnostics_channel";import{errorMonitor as gUe}from"node:events";function EYt(e){let t=HH(e),[n,r]=LX(XO(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[EJ]:i,[dy]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function _Yt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[cm]:t,[pJ]:r,"http.flavor":r,[hJ]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...bYt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[dJ]=a,o[fJ]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function bYt(e){let t=TYt(e.headers);return t==null?{}:vYt(e.headers)?{[$8]:t}:{[eJ]:t}}function TYt(e){let t=e["content-length"];if(typeof t=="number")return t;if(typeof t!="string")return;let n=parseInt(t,10);if(!isNaN(n))return n}function vYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var yUe,mP,G_,UQ=v(()=>{Ce();yUe=Se(fr(),1),mP=Se(Jt(),1);Pn();st();lf();oUe();mUe();G_=class extends mP.InstrumentationBase{constructor(t={}){super(UH,Nn,t),this._propagationDecisionMap=new du(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){let t=!1,n=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,c.response)}),r=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,void 0)}),i=(a=>{let c=a;this._onOutgoingRequestCreated(c.request)}),s=a=>(t||(t=!0,DQ("http.client.response.finish",n),DQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&DQ("http.client.request.created",i)),a),o=()=>{LQ("http.client.response.finish",n),LQ("http.client.request.error",r),LQ("http.client.request.created",i)};return[new mP.InstrumentationNodeModuleDefinition("http",["*"],s,o),new mP.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=EYt(t),s=Zj({name:r,attributes:i,onlyIfParent:!0});this.getConfig().outgoingRequestHook?.(s,t);let o=new Proxy(n,{apply(u,l,d){let[f]=d;if(f!=="response")return u.apply(l,d);let p=Ve.active(),h=jt.setSpan(p,s);return Ve.with(h,()=>u.apply(l,d))}});t.once=o;let a=!1,c=u=>{a||(a=!0,s.setStatus(u),s.end())};return t.prependListener("response",u=>{t.listenerCount("response")<=1&&u.resume(),Ve.bind(Ve.active(),u);let l=_Yt(u);s.setAttributes(l),this.getConfig().outgoingResponseHook?.(s,u),this.getConfig().outgoingRequestApplyCustomAttributes?.(s,t,u);let d=(f=!1)=>{this._diag.debug("outgoingRequest on end()");let p=f||typeof u.statusCode!="number"||u.aborted&&!u.complete?{code:as.ERROR}:mm(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(gUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(gUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Z.log(UH,"Handling finished outgoing request");let r=this.getConfig().breadcrumbs,i=typeof r>"u"?!0:r,s=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,s),i&&!s&&pUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Z.log(UH,"Handling outgoing request created");let n=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);if(this._ignoreOutgoingRequestsMap.set(t,n),n)return;let r=this.getConfig().createSpansForOutgoingRequests&&(this.getConfig().spans??!0),i=this.getConfig().propagateTraceInOutgoingRequests;if(r){let s=this._startSpanForOutgoingRequest(t);if(i&&s.isRecording()){let o=jt.setSpan(Ve.active(),s);Ve.with(o,()=>{jH(t,this._propagationDecisionMap)})}else i&&jH(t,this._propagationDecisionMap)}else i&&jH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,yUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=hUe(t),i=HH(t);return n(i,r)}}});var SUe,AYt,EUe,_Ue=v(()=>{LH();FH();CQ();UQ();SUe="Http",AYt=rt(`${SUe}.sentry`,e=>new G_(e)),EUe=(e={})=>{let t={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},n={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes},r={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:e.tracePropagation??!0,ignoreOutgoingRequests:e.ignoreOutgoingRequests},i=fP(t),s=pP(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:SUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),AYt(r)},processEvent(u){return s.processEvent(u)}}}});var df,Am,gP,lR=v(()=>{st();df=U7(process.versions.node),Am=df.major,gP=df.minor});function bUe(e,t){let n=BH(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=L_(n,r,t)?$A({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:wYt(e.headers);if(jQ(u,FQ),jQ(u,qH),i&&jQ(u,RYt),!(HQ(u,FQ)!==-1)){o&&u.push(FQ,o),c&&HQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=HQ(u,qH);if(a&&d===-1)u.push(qH,a);else if(a){let f=u[d+1],p=hP(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=kYt(u))}function wYt(e){let t=e.split(`\r +`),n=[];for(let r of t)try{let i=r.indexOf(":");if(i===-1)continue;let s=r.slice(0,i).trim(),o=r.slice(i+1).trim();s&&n.push(s,o)}catch{Z.warn(`Failed to convert string request header to array header: ${r}`)}return n}function kYt(e){let t=[];for(let n=0;nr%2===0&&n===t)}function W1e(e,t){let n=x9t(e),r=t.statusCode,i=eN(r);Gl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function x9t(e){try{let t=IH(e.origin,e.path),n=Oy(t),r={url:Ny(n),"http.method":e.method||"GET"};return n.search&&(r["http.query"]=n.search),n.hash&&(r["http.fragment"]=n.hash),r}catch{return{}}}function IH(e,t="/"){try{return new URL(t,e).toString()}catch{let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}}var EQ,kH,w9t,K1e=v(()=>{st();gQ();EQ="sentry-trace",kH="baggage",w9t="traceparent"});import*as sR from"diagnostics_channel";var Z1e,Y1e,HE,vQ=v(()=>{Me();Z1e=_e(dr(),1),Y1e=_e(Yt(),1);st();iR();K1e();HE=class extends Y1e.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",On,t),this._channelSubs=[],this._propagationDecisionMap=new su(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs=[]}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this)))}_onRequestCreated({request:t}){let n=this.getConfig();if(!(n.enabled!==!1))return;let i=this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,i),!i&&n.tracePropagation!==!1&&V1e(t,this._propagationDecisionMap)}_onResponseHeaders({request:t,response:n}){let r=this.getConfig();if(!(r.enabled!==!1))return;let s=r.breadcrumbs,o=typeof s>"u"?!0:s,a=this._ignoreOutgoingRequestsMap.get(t);o&&!a&&W1e(t,n)}_subscribeToChannel(t,n){let r=_m>18||_m===18&&cN>=19,i;if(r)sR.subscribe?.(t,n),i=()=>sR.unsubscribe?.(t,n);else{let s=sR.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,Z1e.isTracingSuppressed)(Ve.active()))return!0;let n=IH(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var O9t,N9t,P9t,J1e,X1e=v(()=>{TH();vQ();O9t="NodeFetch",N9t=rt(`${O9t}.sentry`,HE,e=>e),P9t=((e={})=>({name:"NodeFetch",setupOnce(){N9t(e)}})),J1e=P9t});var RQ=w(xH=>{"use strict";Object.defineProperty(xH,"__esModule",{value:!0});xH.AbstractAsyncHooksContextManager=void 0;var C9t=Y("events"),M9t=["addListener","on","once","prependListener","prependOnceListener"],AQ=class{bind(t,n){return n instanceof C9t.EventEmitter?this._bindEventEmitter(t,n):typeof n=="function"?this._bindFunction(t,n):n}_bindFunction(t,n){let r=this,i=function(...s){return r.with(t,()=>n.apply(this,s))};return Object.defineProperty(i,"length",{enumerable:!1,configurable:!0,writable:!1,value:n.length}),i}_bindEventEmitter(t,n){return this._getPatchMap(n)!==void 0||(this._createPatchMap(n),M9t.forEach(i=>{n[i]!==void 0&&(n[i]=this._patchAddListener(n,n[i],t))}),typeof n.removeListener=="function"&&(n.removeListener=this._patchRemoveListener(n,n.removeListener)),typeof n.off=="function"&&(n.off=this._patchRemoveListener(n,n.off)),typeof n.removeAllListeners=="function"&&(n.removeAllListeners=this._patchRemoveAllListeners(n,n.removeAllListeners))),n}_patchRemoveListener(t,n){let r=this;return function(i,s){let o=r._getPatchMap(t)?.[i];if(o===void 0)return n.call(this,i,s);let a=o.get(s);return n.call(this,i,a||s)}}_patchRemoveAllListeners(t,n){let r=this;return function(i){let s=r._getPatchMap(t);return s!==void 0&&(arguments.length===0?r._createPatchMap(t):s[i]!==void 0&&delete s[i]),n.apply(this,arguments)}}_patchAddListener(t,n,r){let i=this;return function(s,o){if(i._wrapped)return n.call(this,s,o);let a=i._getPatchMap(t);a===void 0&&(a=i._createPatchMap(t));let c=a[s];c===void 0&&(c=new WeakMap,a[s]=c);let u=i.bind(r,o);c.set(o,u),i._wrapped=!0;try{return n.call(this,s,u)}finally{i._wrapped=!1}}}_createPatchMap(t){let n=Object.create(null);return t[this._kOtListeners]=n,n}_getPatchMap(t){return t[this._kOtListeners]}_kOtListeners=Symbol("OtListeners");_wrapped=!1};xH.AbstractAsyncHooksContextManager=AQ});var Q1e=w(OH=>{"use strict";Object.defineProperty(OH,"__esModule",{value:!0});OH.AsyncHooksContextManager=void 0;var D9t=(Me(),Ie(Ze)),L9t=Y("async_hooks"),U9t=RQ(),wQ=class extends U9t.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=L9t.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){return this._stack[this._stack.length-1]??D9t.ROOT_CONTEXT}with(t,n,r,...i){this._enterContext(t);try{return n.call(r,...i)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(t,n){if(n==="TIMERWRAP")return;let r=this._stack[this._stack.length-1];r!==void 0&&this._contexts.set(t,r)}_destroy(t){this._contexts.delete(t)}_before(t){let n=this._contexts.get(t);n!==void 0&&this._enterContext(n)}_after(){this._exitContext()}_enterContext(t){this._stack.push(t)}_exitContext(){this._stack.pop()}};OH.AsyncHooksContextManager=wQ});var $1e=w(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});NH.AsyncLocalStorageContextManager=void 0;var j9t=(Me(),Ie(Ze)),F9t=Y("async_hooks"),H9t=RQ(),kQ=class extends H9t.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new F9t.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??j9t.ROOT_CONTEXT}with(t,n,r,...i){let s=r==null?n:n.bind(r);return this._asyncLocalStorage.run(t,s,...i)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}};NH.AsyncLocalStorageContextManager=kQ});var eUe=w(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});oR.AsyncLocalStorageContextManager=oR.AsyncHooksContextManager=void 0;var q9t=Q1e();Object.defineProperty(oR,"AsyncHooksContextManager",{enumerable:!0,get:function(){return q9t.AsyncHooksContextManager}});var B9t=$1e();Object.defineProperty(oR,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return B9t.AsyncLocalStorageContextManager}})});var IQ=w(aR=>{"use strict";Object.defineProperty(aR,"__esModule",{value:!0});aR._clearDefaultServiceNameCache=aR.defaultServiceName=void 0;var uN;function G9t(){if(uN===void 0)try{let e=globalThis.process.argv0;uN=e?`unknown_service:${e}`:"unknown_service"}catch{uN="unknown_service"}return uN}aR.defaultServiceName=G9t;function z9t(){uN=void 0}aR._clearDefaultServiceNameCache=z9t});var tUe=w(PH=>{"use strict";Object.defineProperty(PH,"__esModule",{value:!0});PH.isPromiseLike=void 0;var V9t=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";PH.isPromiseLike=V9t});var NQ=w(Lp=>{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});Lp.defaultResource=Lp.emptyResource=Lp.resourceFromDetectedResource=Lp.resourceFromAttributes=void 0;var dN=(Me(),Ie(Ze)),xQ=dr(),qE=(xn(),Ie(Mr)),W9t=IQ(),lN=tUe(),CH=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=nUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,lN.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,lN.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=nUe(this._rawAttributes),this._schemaUrl=J9t(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,lN.isPromiseLike)(n)?[t,n.catch(r=>{dN.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function J9t(e){if(typeof e=="string"||e===void 0)return e;dN.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function X9t(e,t){let n=e?.schemaUrl,r=t?.schemaUrl,i=n===void 0||n==="",s=r===void 0||r==="";if(i)return r;if(s||n===r)return n;dN.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var iUe=w(MH=>{"use strict";Object.defineProperty(MH,"__esModule",{value:!0});MH.detectResources=void 0;var rUe=(Me(),Ie(Ze)),PQ=NQ(),Q9t=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,PQ.resourceFromDetectedResource)(n.detect(e));return rUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return rUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,PQ.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,PQ.emptyResource)());MH.detectResources=Q9t});var oUe=w(DH=>{"use strict";Object.defineProperty(DH,"__esModule",{value:!0});DH.envDetector=void 0;var $9t=(Me(),Ie(Ze)),eZt=(xn(),Ie(Mr)),sUe=dr(),CQ=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,sUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,sUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){$9t.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[eZt.ATTR_SERVICE_NAME]=i),{attributes:n}}_parseResourceAttributes(t){if(!t)return{};let n={},r=t.split(this._COMMA_SEPARATOR);for(let i of r){let s=i.split(this._LABEL_KEY_VALUE_SPLITTER);if(s.length!==2)throw new Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${i}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[o,a]=s,c=o.trim(),u=a.trim();if(c.length===0)throw new Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${i}".`);let l,d;try{l=decodeURIComponent(c),d=decodeURIComponent(u)}catch(f){throw new Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${i}": ${f instanceof Error?f.message:f}`)}if(l.length>this._MAX_LENGTH)throw new Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${l}".`);if(d.length>this._MAX_LENGTH)throw new Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${l}".`);n[l]=d}return n}};DH.envDetector=new CQ});var fN=w(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.ATTR_WEBENGINE_VERSION=Ye.ATTR_WEBENGINE_NAME=Ye.ATTR_WEBENGINE_DESCRIPTION=Ye.ATTR_SERVICE_NAMESPACE=Ye.ATTR_SERVICE_INSTANCE_ID=Ye.ATTR_PROCESS_RUNTIME_VERSION=Ye.ATTR_PROCESS_RUNTIME_NAME=Ye.ATTR_PROCESS_RUNTIME_DESCRIPTION=Ye.ATTR_PROCESS_PID=Ye.ATTR_PROCESS_OWNER=Ye.ATTR_PROCESS_EXECUTABLE_PATH=Ye.ATTR_PROCESS_EXECUTABLE_NAME=Ye.ATTR_PROCESS_COMMAND_ARGS=Ye.ATTR_PROCESS_COMMAND=Ye.ATTR_OS_VERSION=Ye.ATTR_OS_TYPE=Ye.ATTR_K8S_POD_NAME=Ye.ATTR_K8S_NAMESPACE_NAME=Ye.ATTR_K8S_DEPLOYMENT_NAME=Ye.ATTR_K8S_CLUSTER_NAME=Ye.ATTR_HOST_TYPE=Ye.ATTR_HOST_NAME=Ye.ATTR_HOST_IMAGE_VERSION=Ye.ATTR_HOST_IMAGE_NAME=Ye.ATTR_HOST_IMAGE_ID=Ye.ATTR_HOST_ID=Ye.ATTR_HOST_ARCH=Ye.ATTR_CONTAINER_NAME=Ye.ATTR_CONTAINER_IMAGE_TAGS=Ye.ATTR_CONTAINER_IMAGE_NAME=Ye.ATTR_CONTAINER_ID=Ye.ATTR_CLOUD_REGION=Ye.ATTR_CLOUD_PROVIDER=Ye.ATTR_CLOUD_AVAILABILITY_ZONE=Ye.ATTR_CLOUD_ACCOUNT_ID=void 0;Ye.ATTR_CLOUD_ACCOUNT_ID="cloud.account.id";Ye.ATTR_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone";Ye.ATTR_CLOUD_PROVIDER="cloud.provider";Ye.ATTR_CLOUD_REGION="cloud.region";Ye.ATTR_CONTAINER_ID="container.id";Ye.ATTR_CONTAINER_IMAGE_NAME="container.image.name";Ye.ATTR_CONTAINER_IMAGE_TAGS="container.image.tags";Ye.ATTR_CONTAINER_NAME="container.name";Ye.ATTR_HOST_ARCH="host.arch";Ye.ATTR_HOST_ID="host.id";Ye.ATTR_HOST_IMAGE_ID="host.image.id";Ye.ATTR_HOST_IMAGE_NAME="host.image.name";Ye.ATTR_HOST_IMAGE_VERSION="host.image.version";Ye.ATTR_HOST_NAME="host.name";Ye.ATTR_HOST_TYPE="host.type";Ye.ATTR_K8S_CLUSTER_NAME="k8s.cluster.name";Ye.ATTR_K8S_DEPLOYMENT_NAME="k8s.deployment.name";Ye.ATTR_K8S_NAMESPACE_NAME="k8s.namespace.name";Ye.ATTR_K8S_POD_NAME="k8s.pod.name";Ye.ATTR_OS_TYPE="os.type";Ye.ATTR_OS_VERSION="os.version";Ye.ATTR_PROCESS_COMMAND="process.command";Ye.ATTR_PROCESS_COMMAND_ARGS="process.command_args";Ye.ATTR_PROCESS_EXECUTABLE_NAME="process.executable.name";Ye.ATTR_PROCESS_EXECUTABLE_PATH="process.executable.path";Ye.ATTR_PROCESS_OWNER="process.owner";Ye.ATTR_PROCESS_PID="process.pid";Ye.ATTR_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description";Ye.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name";Ye.ATTR_PROCESS_RUNTIME_VERSION="process.runtime.version";Ye.ATTR_SERVICE_INSTANCE_ID="service.instance.id";Ye.ATTR_SERVICE_NAMESPACE="service.namespace";Ye.ATTR_WEBENGINE_DESCRIPTION="webengine.description";Ye.ATTR_WEBENGINE_NAME="webengine.name";Ye.ATTR_WEBENGINE_VERSION="webengine.version"});var UH=w(LH=>{"use strict";Object.defineProperty(LH,"__esModule",{value:!0});LH.execAsync=void 0;var tZt=Y("child_process"),nZt=Y("util");LH.execAsync=nZt.promisify(tZt.exec)});var aUe=w(jH=>{"use strict";Object.defineProperty(jH,"__esModule",{value:!0});jH.getMachineId=void 0;var rZt=UH(),iZt=(Me(),Ie(Ze));async function sZt(){try{let t=(await(0,rZt.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` -`).find(r=>r.includes("IOPlatformUUID"));if(!t)return;let n=t.split('" = "');if(n.length===2)return n[1].slice(0,-1)}catch(e){iZt.diag.debug(`error reading machine id: ${e}`)}}jH.getMachineId=sZt});var cUe=w(FH=>{"use strict";Object.defineProperty(FH,"__esModule",{value:!0});FH.getMachineId=void 0;var oZt=Y("fs"),aZt=(Me(),Ie(Ze));async function cZt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await oZt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){aZt.diag.debug(`error reading machine id: ${n}`)}}FH.getMachineId=cZt});var lUe=w(HH=>{"use strict";Object.defineProperty(HH,"__esModule",{value:!0});HH.getMachineId=void 0;var uZt=Y("fs"),lZt=UH(),uUe=(Me(),Ie(Ze));async function dZt(){try{return(await uZt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){uUe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,lZt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){uUe.diag.debug(`error reading machine id: ${e}`)}}HH.getMachineId=dZt});var fUe=w(qH=>{"use strict";Object.defineProperty(qH,"__esModule",{value:!0});qH.getMachineId=void 0;var dUe=Y("process"),fZt=UH(),pZt=(Me(),Ie(Ze));async function hZt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";dUe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in dUe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,fZt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){pZt.diag.debug(`error reading machine id: ${n}`)}}qH.getMachineId=hZt});var pUe=w(BH=>{"use strict";Object.defineProperty(BH,"__esModule",{value:!0});BH.getMachineId=void 0;var mZt=(Me(),Ie(Ze));async function gZt(){mZt.diag.debug("could not read machine-id: unsupported platform")}BH.getMachineId=gZt});var hUe=w(GH=>{"use strict";Object.defineProperty(GH,"__esModule",{value:!0});GH.getMachineId=void 0;var yZt=Y("process"),BE;async function SZt(){if(!BE)switch(yZt.platform){case"darwin":BE=(await Promise.resolve().then(()=>_e(aUe()))).getMachineId;break;case"linux":BE=(await Promise.resolve().then(()=>_e(cUe()))).getMachineId;break;case"freebsd":BE=(await Promise.resolve().then(()=>_e(lUe()))).getMachineId;break;case"win32":BE=(await Promise.resolve().then(()=>_e(fUe()))).getMachineId;break;default:BE=(await Promise.resolve().then(()=>_e(pUe()))).getMachineId;break}return BE()}GH.getMachineId=SZt});var MQ=w(cR=>{"use strict";Object.defineProperty(cR,"__esModule",{value:!0});cR.normalizeType=cR.normalizeArch=void 0;var _Zt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};cR.normalizeArch=_Zt;var EZt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};cR.normalizeType=EZt});var gUe=w(zH=>{"use strict";Object.defineProperty(zH,"__esModule",{value:!0});zH.hostDetector=void 0;var DQ=fN(),mUe=Y("os"),bZt=hUe(),TZt=MQ(),LQ=class{detect(t){return{attributes:{[DQ.ATTR_HOST_NAME]:(0,mUe.hostname)(),[DQ.ATTR_HOST_ARCH]:(0,TZt.normalizeArch)((0,mUe.arch)()),[DQ.ATTR_HOST_ID]:(0,bZt.getMachineId)()}}}};zH.hostDetector=new LQ});var _Ue=w(VH=>{"use strict";Object.defineProperty(VH,"__esModule",{value:!0});VH.osDetector=void 0;var yUe=fN(),SUe=Y("os"),vZt=MQ(),UQ=class{detect(t){return{attributes:{[yUe.ATTR_OS_TYPE]:(0,vZt.normalizeType)((0,SUe.platform)()),[yUe.ATTR_OS_VERSION]:(0,SUe.release)()}}}};VH.osDetector=new UQ});var EUe=w(WH=>{"use strict";Object.defineProperty(WH,"__esModule",{value:!0});WH.processDetector=void 0;var AZt=(Me(),Ie(Ze)),Em=fN(),RZt=Y("os"),jQ=class{detect(t){let n={[Em.ATTR_PROCESS_PID]:process.pid,[Em.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[Em.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[Em.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[Em.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[Em.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[Em.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[Em.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=RZt.userInfo();n[Em.ATTR_PROCESS_OWNER]=r.username}catch(r){AZt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};WH.processDetector=new jQ});var bUe=w(KH=>{"use strict";Object.defineProperty(KH,"__esModule",{value:!0});KH.serviceInstanceIdDetector=void 0;var wZt=fN(),kZt=Y("crypto"),FQ=class{detect(t){return{attributes:{[wZt.ATTR_SERVICE_INSTANCE_ID]:(0,kZt.randomUUID)()}}}};KH.serviceInstanceIdDetector=new FQ});var TUe=w(Up=>{"use strict";Object.defineProperty(Up,"__esModule",{value:!0});Up.serviceInstanceIdDetector=Up.processDetector=Up.osDetector=Up.hostDetector=void 0;var IZt=gUe();Object.defineProperty(Up,"hostDetector",{enumerable:!0,get:function(){return IZt.hostDetector}});var xZt=_Ue();Object.defineProperty(Up,"osDetector",{enumerable:!0,get:function(){return xZt.osDetector}});var OZt=EUe();Object.defineProperty(Up,"processDetector",{enumerable:!0,get:function(){return OZt.processDetector}});var NZt=bUe();Object.defineProperty(Up,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return NZt.serviceInstanceIdDetector}})});var vUe=w(jp=>{"use strict";Object.defineProperty(jp,"__esModule",{value:!0});jp.serviceInstanceIdDetector=jp.processDetector=jp.osDetector=jp.hostDetector=void 0;var ZH=TUe();Object.defineProperty(jp,"hostDetector",{enumerable:!0,get:function(){return ZH.hostDetector}});Object.defineProperty(jp,"osDetector",{enumerable:!0,get:function(){return ZH.osDetector}});Object.defineProperty(jp,"processDetector",{enumerable:!0,get:function(){return ZH.processDetector}});Object.defineProperty(jp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return ZH.serviceInstanceIdDetector}})});var AUe=w(uR=>{"use strict";Object.defineProperty(uR,"__esModule",{value:!0});uR.noopDetector=uR.NoopDetector=void 0;var YH=class{detect(){return{attributes:{}}}};uR.NoopDetector=YH;uR.noopDetector=new YH});var RUe=w(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.noopDetector=ou.serviceInstanceIdDetector=ou.processDetector=ou.osDetector=ou.hostDetector=ou.envDetector=void 0;var PZt=oUe();Object.defineProperty(ou,"envDetector",{enumerable:!0,get:function(){return PZt.envDetector}});var JH=vUe();Object.defineProperty(ou,"hostDetector",{enumerable:!0,get:function(){return JH.hostDetector}});Object.defineProperty(ou,"osDetector",{enumerable:!0,get:function(){return JH.osDetector}});Object.defineProperty(ou,"processDetector",{enumerable:!0,get:function(){return JH.processDetector}});Object.defineProperty(ou,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return JH.serviceInstanceIdDetector}});var CZt=AUe();Object.defineProperty(ou,"noopDetector",{enumerable:!0,get:function(){return CZt.noopDetector}})});var qQ=w(cs=>{"use strict";Object.defineProperty(cs,"__esModule",{value:!0});cs.defaultServiceName=cs.emptyResource=cs.defaultResource=cs.resourceFromAttributes=cs.serviceInstanceIdDetector=cs.processDetector=cs.osDetector=cs.hostDetector=cs.envDetector=cs.detectResources=void 0;var MZt=iUe();Object.defineProperty(cs,"detectResources",{enumerable:!0,get:function(){return MZt.detectResources}});var pN=RUe();Object.defineProperty(cs,"envDetector",{enumerable:!0,get:function(){return pN.envDetector}});Object.defineProperty(cs,"hostDetector",{enumerable:!0,get:function(){return pN.hostDetector}});Object.defineProperty(cs,"osDetector",{enumerable:!0,get:function(){return pN.osDetector}});Object.defineProperty(cs,"processDetector",{enumerable:!0,get:function(){return pN.processDetector}});Object.defineProperty(cs,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return pN.serviceInstanceIdDetector}});var HQ=NQ();Object.defineProperty(cs,"resourceFromAttributes",{enumerable:!0,get:function(){return HQ.resourceFromAttributes}});Object.defineProperty(cs,"defaultResource",{enumerable:!0,get:function(){return HQ.defaultResource}});Object.defineProperty(cs,"emptyResource",{enumerable:!0,get:function(){return HQ.emptyResource}});var DZt=IQ();Object.defineProperty(cs,"defaultServiceName",{enumerable:!0,get:function(){return DZt.defaultServiceName}})});var wUe=w(XH=>{"use strict";Object.defineProperty(XH,"__esModule",{value:!0});XH.ExceptionEventName=void 0;XH.ExceptionEventName="exception"});var kUe=w(QH=>{"use strict";Object.defineProperty(QH,"__esModule",{value:!0});QH.SpanImpl=void 0;var aa=(Me(),Ie(Ze)),ca=dr(),GE=(xn(),Ie(Mr)),LZt=wUe(),BQ=class{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:aa.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_recordEndMetrics;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(t){let n=Date.now();if(this._spanContext=t.spanContext,this._performanceStartTime=ca.otperformance.now(),this._performanceOffset=n-(this._performanceStartTime+ca.otperformance.timeOrigin),this._startTimeProvided=t.startTime!=null,this._spanLimits=t.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit??0,this._spanProcessor=t.spanProcessor,this.name=t.name,this.parentSpanContext=t.parentSpanContext,this.kind=t.kind,t.links)for(let r of t.links)this.addLink(r);this.startTime=this._getTime(t.startTime??n),this.resource=t.resource,this.instrumentationScope=t.scope,this._recordEndMetrics=t.recordEndMetrics,t.attributes!=null&&this.setAttributes(t.attributes),this._spanProcessor.onStart(this,t.context)}spanContext(){return this._spanContext}setAttribute(t,n){if(n==null||this._isSpanEnded())return this;if(t.length===0)return aa.diag.warn(`Invalid attribute key: ${t}`),this;if(!(0,ca.isAttributeValue)(n))return aa.diag.warn(`Invalid attribute value set for key: ${t}`),this;let{attributeCountLimit:r}=this._spanLimits,i=!Object.prototype.hasOwnProperty.call(this.attributes,t);return r!==void 0&&this._attributesCount>=r&&i?(this._droppedAttributesCount++,this):(this.attributes[t]=this._truncateToSize(n),i&&this._attributesCount++,this)}setAttributes(t){for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&this.setAttribute(n,t[n]);return this}addEvent(t,n,r){if(this._isSpanEnded())return this;let{eventCountLimit:i}=this._spanLimits;if(i===0)return aa.diag.warn("No events allowed."),this._droppedEventsCount++,this;i!==void 0&&this.events.length>=i&&(this._droppedEventsCount===0&&aa.diag.debug("Dropping extra events."),this.events.shift(),this._droppedEventsCount++),(0,ca.isTimeInput)(n)&&((0,ca.isTimeInput)(r)||(r=n),n=void 0);let s=(0,ca.sanitizeAttributes)(n),{attributePerEventCountLimit:o}=this._spanLimits,a={},c=0,u=0;for(let l in s){if(!Object.prototype.hasOwnProperty.call(s,l))continue;let d=s[l];if(o!==void 0&&u>=o){c++;continue}a[l]=this._truncateToSize(d),u++}return this.events.push({name:t,attributes:a,time:this._getTime(r),droppedAttributesCount:c}),this}addLink(t){if(this._isSpanEnded())return this;let{linkCountLimit:n}=this._spanLimits;if(n===0)return this._droppedLinksCount++,this;n!==void 0&&this.links.length>=n&&(this._droppedLinksCount===0&&aa.diag.debug("Dropping extra links."),this.links.shift(),this._droppedLinksCount++);let{attributePerLinkCountLimit:r}=this._spanLimits,i=(0,ca.sanitizeAttributes)(t.attributes),s={},o=0,a=0;for(let u in i){if(!Object.prototype.hasOwnProperty.call(i,u))continue;let l=i[u];if(r!==void 0&&a>=r){o++;continue}s[u]=this._truncateToSize(l),a++}let c={context:t.context};return a>0&&(c.attributes=s),o>0&&(c.droppedAttributesCount=o),this.links.push(c),this}addLinks(t){for(let n of t)this.addLink(n);return this}setStatus(t){if(this._isSpanEnded())return this;if(t.code===aa.SpanStatusCode.UNSET)return this;if(this.status.code===aa.SpanStatusCode.OK)return this;let n={code:t.code};return t.code===aa.SpanStatusCode.ERROR&&(typeof t.message=="string"?n.message=t.message:t.message!=null&&aa.diag.warn(`Dropping invalid status.message of type '${typeof t.message}', expected 'string'`)),this.status=n,this}updateName(t){return this._isSpanEnded()?this:(this.name=t,this)}end(t){if(this._isSpanEnded()){aa.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}this.endTime=this._getTime(t),this._duration=(0,ca.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0&&(aa.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0]),this._droppedEventsCount>0&&aa.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`),this._droppedLinksCount>0&&aa.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`),this._spanProcessor.onEnding&&this._spanProcessor.onEnding(this),this._recordEndMetrics?.(),this._ended=!0,this._spanProcessor.onEnd(this)}_getTime(t){if(typeof t=="number"&&t<=ca.otperformance.now())return(0,ca.hrTime)(t+this._performanceOffset);if(typeof t=="number")return(0,ca.millisToHrTime)(t);if(t instanceof Date)return(0,ca.millisToHrTime)(t.getTime());if((0,ca.isTimeInputHrTime)(t))return t;if(this._startTimeProvided)return(0,ca.millisToHrTime)(Date.now());let n=ca.otperformance.now()-this._performanceStartTime;return(0,ca.addHrTimes)(this.startTime,(0,ca.millisToHrTime)(n))}isRecording(){return this._ended===!1}recordException(t,n){let r={};typeof t=="string"?r[GE.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[GE.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[GE.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[GE.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[GE.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[GE.ATTR_EXCEPTION_TYPE]||r[GE.ATTR_EXCEPTION_MESSAGE]?this.addEvent(LZt.ExceptionEventName,r,n):aa.diag.warn(`Failed to record an exception ${t}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let t=new Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);aa.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,t)}return this._ended}_truncateToLimitUtil(t,n){return t.length<=n?t:t.substring(0,n)}_truncateToSize(t){let n=this._attributeValueLengthLimit;return n<=0?(aa.diag.warn(`Attribute value limit must be positive, got ${n}`),t):typeof t=="string"?this._truncateToLimitUtil(t,n):Array.isArray(t)?t.map(r=>typeof r=="string"?this._truncateToLimitUtil(r,n):r):t}};QH.SpanImpl=BQ});var lR=w(hN=>{"use strict";Object.defineProperty(hN,"__esModule",{value:!0});hN.SamplingDecision=void 0;var UZt;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(UZt=hN.SamplingDecision||(hN.SamplingDecision={}))});var eq=w($H=>{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.AlwaysOffSampler=void 0;var jZt=lR(),GQ=class{shouldSample(){return{decision:jZt.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};$H.AlwaysOffSampler=GQ});var nq=w(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});tq.AlwaysOnSampler=void 0;var FZt=lR(),zQ=class{shouldSample(){return{decision:FZt.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};tq.AlwaysOnSampler=zQ});var KQ=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.ParentBasedSampler=void 0;var rq=(Me(),Ie(Ze)),HZt=dr(),IUe=eq(),VQ=nq(),WQ=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,HZt.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new VQ.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new VQ.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new IUe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new VQ.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new IUe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=rq.trace.getSpanContext(t);return!a||!(0,rq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&rq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&rq.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,n,r,i,s,o):this._localParentNotSampled.shouldSample(t,n,r,i,s,o)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};iq.ParentBasedSampler=WQ});var YQ=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.TraceIdRatioBasedSampler=void 0;var qZt=(Me(),Ie(Ze)),xUe=lR(),ZQ=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,qZt.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};sq.TraceIdRatioBasedSampler=ZQ});var QQ=w(dR=>{"use strict";Object.defineProperty(dR,"__esModule",{value:!0});dR.buildSamplerFromEnv=dR.loadDefaultConfig=void 0;var XQ=(Me(),Ie(Ze)),Fp=dr(),OUe=eq(),JQ=nq(),oq=KQ(),NUe=YQ(),Hp;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(Hp||(Hp={}));var aq=1;function BZt(){return{sampler:CUe(),forceFlushTimeoutMillis:3e4,generalLimits:{attributeValueLengthLimit:(0,Fp.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,Fp.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??128},spanLimits:{attributeValueLengthLimit:(0,Fp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,Fp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??128,linkCountLimit:(0,Fp.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT")??128,eventCountLimit:(0,Fp.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT")??128,attributePerEventCountLimit:(0,Fp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT")??128,attributePerLinkCountLimit:(0,Fp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT")??128}}}dR.loadDefaultConfig=BZt;function CUe(){let e=(0,Fp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Hp.ParentBasedAlwaysOn;switch(e){case Hp.AlwaysOn:return new JQ.AlwaysOnSampler;case Hp.AlwaysOff:return new OUe.AlwaysOffSampler;case Hp.ParentBasedAlwaysOn:return new oq.ParentBasedSampler({root:new JQ.AlwaysOnSampler});case Hp.ParentBasedAlwaysOff:return new oq.ParentBasedSampler({root:new OUe.AlwaysOffSampler});case Hp.TraceIdRatio:return new NUe.TraceIdRatioBasedSampler(PUe());case Hp.ParentBasedTraceIdRatio:return new oq.ParentBasedSampler({root:new NUe.TraceIdRatioBasedSampler(PUe())});default:return XQ.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Hp.ParentBasedAlwaysOn}".`),new oq.ParentBasedSampler({root:new JQ.AlwaysOnSampler})}}dR.buildSamplerFromEnv=CUe;function PUe(){let e=(0,Fp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(XQ.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${aq}.`),aq):e<0||e>1?(XQ.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${aq}.`),aq):e}});var $Q=w(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Wl.reconfigureLimits=Wl.mergeConfig=Wl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Wl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var MUe=QQ(),cq=dr();Wl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Wl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function GZt(e){let t={sampler:(0,MUe.buildSamplerFromEnv)()},n=(0,MUe.loadDefaultConfig)(),r=Object.assign({},n,t,e);return r.generalLimits=Object.assign({},n.generalLimits,e.generalLimits||{}),r.spanLimits=Object.assign({},n.spanLimits,e.spanLimits||{}),r}Wl.mergeConfig=GZt;function zZt(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,cq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,cq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Wl.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,cq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,cq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Wl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Wl.reconfigureLimits=zZt});var DUe=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.BatchSpanProcessorBase=void 0;var fR=(Me(),Ie(Ze)),bm=dr(),e$=class{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(t,n){this._exporter=t,this._maxExportBatchSize=typeof n?.maxExportBatchSize=="number"?n.maxExportBatchSize:(0,bm.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,bm.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,bm.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,bm.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new bm.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(fR.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}onStart(t,n){}onEnd(t){this._shutdownOnce.isCalled||(t.spanContext().traceFlags&fR.TraceFlags.SAMPLED)!==0&&this._addToBuffer(t)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>this.onShutdown()).then(()=>this._flushAll()).then(()=>this._exporter.shutdown())}_addToBuffer(t){if(this._finishedSpans.length>=this._maxQueueSize){this._droppedSpansCount===0&&fR.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(fR.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0),this._finishedSpans.push(t),this._maybeStartTimer()}_flushAll(){return new Promise((t,n)=>{let r=[],i=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let s=0,o=i;s{t()}).catch(n)})}_flushOneBatch(){return this._clearTimer(),this._finishedSpans.length===0?Promise.resolve():new Promise((t,n)=>{let r=setTimeout(()=>{n(new Error("Timeout"))},this._exportTimeoutMillis);fR.context.with((0,bm.suppressTracing)(fR.context.active()),()=>{let i;this._finishedSpans.length<=this._maxExportBatchSize?(i=this._finishedSpans,this._finishedSpans=[]):i=this._finishedSpans.splice(0,this._maxExportBatchSize);let s=()=>this._exporter.export(i,a=>{clearTimeout(r),a.code===bm.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,bm.globalErrorHandler)(a),n(a)})})})}_maybeStartTimer(){if(this._isExporting)return;let t=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{this._isExporting=!1,this._finishedSpans.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(n=>{this._isExporting=!1,(0,bm.globalErrorHandler)(n)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return t();this._timer===void 0&&(this._timer=setTimeout(()=>t(),this._scheduledDelayMillis),typeof this._timer!="number"&&this._timer.unref())}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}};uq.BatchSpanProcessorBase=e$});var LUe=w(lq=>{"use strict";Object.defineProperty(lq,"__esModule",{value:!0});lq.BatchSpanProcessor=void 0;var VZt=DUe(),t$=class extends VZt.BatchSpanProcessorBase{onShutdown(){}};lq.BatchSpanProcessor=t$});var FUe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.RandomIdGenerator=void 0;var WZt=8,jUe=16,n$=class{generateTraceId=UUe(jUe);generateSpanId=UUe(WZt)};fq.RandomIdGenerator=n$;var dq=Buffer.allocUnsafe(jUe);function UUe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(dq[e-1]=1);return dq.toString("hex",0,e)}}});var HUe=w(pR=>{"use strict";Object.defineProperty(pR,"__esModule",{value:!0});pR.RandomIdGenerator=pR.BatchSpanProcessor=void 0;var KZt=LUe();Object.defineProperty(pR,"BatchSpanProcessor",{enumerable:!0,get:function(){return KZt.BatchSpanProcessor}});var ZZt=FUe();Object.defineProperty(pR,"RandomIdGenerator",{enumerable:!0,get:function(){return ZZt.RandomIdGenerator}})});var r$=w(hR=>{"use strict";Object.defineProperty(hR,"__esModule",{value:!0});hR.RandomIdGenerator=hR.BatchSpanProcessor=void 0;var qUe=HUe();Object.defineProperty(hR,"BatchSpanProcessor",{enumerable:!0,get:function(){return qUe.BatchSpanProcessor}});Object.defineProperty(hR,"RandomIdGenerator",{enumerable:!0,get:function(){return qUe.RandomIdGenerator}})});var BUe=w(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});qp.METRIC_OTEL_SDK_SPAN_STARTED=qp.METRIC_OTEL_SDK_SPAN_LIVE=qp.ATTR_OTEL_SPAN_SAMPLING_RESULT=qp.ATTR_OTEL_SPAN_PARENT_ORIGIN=void 0;qp.ATTR_OTEL_SPAN_PARENT_ORIGIN="otel.span.parent.origin";qp.ATTR_OTEL_SPAN_SAMPLING_RESULT="otel.span.sampling_result";qp.METRIC_OTEL_SDK_SPAN_LIVE="otel.sdk.span.live";qp.METRIC_OTEL_SDK_SPAN_STARTED="otel.sdk.span.started"});var GUe=w(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});hq.TracerMetrics=void 0;var pq=lR(),mN=BUe(),i$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(mN.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(mN.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=JZt(n);if(this.startedSpans.add(1,{[mN.ATTR_OTEL_SPAN_PARENT_ORIGIN]:YZt(t),[mN.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===pq.SamplingDecision.NOT_RECORD)return()=>{};let i={[mN.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};hq.TracerMetrics=i$;function YZt(e){return e?e.isRemote?"remote":"local":"none"}function JZt(e){switch(e){case pq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case pq.SamplingDecision.RECORD:return"RECORD_ONLY";case pq.SamplingDecision.NOT_RECORD:return"DROP"}}});var zUe=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.VERSION=void 0;mq.VERSION="2.6.1"});var VUe=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.Tracer=void 0;var Uo=(Me(),Ie(Ze)),gq=dr(),XZt=kUe(),QZt=$Q(),$Zt=r$(),e5t=GUe(),t5t=zUe(),s$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,QZt.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new $Zt.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",t5t.VERSION):Uo.createNoopMeter();this._tracerMetrics=new e5t.TracerMetrics(o)}startSpan(t,n={},r=Uo.context.active()){n.root&&(r=Uo.trace.deleteSpan(r));let i=Uo.trace.getSpan(r);if((0,gq.isTracingSuppressed)(r))return Uo.diag.debug("Instrumentation suppressed, returning Noop Span"),Uo.trace.wrapSpanContext(Uo.INVALID_SPAN_CONTEXT);let s=i?.spanContext(),o=this._idGenerator.generateSpanId(),a,c,u;!s||!Uo.trace.isSpanContextValid(s)?c=this._idGenerator.generateTraceId():(c=s.traceId,u=s.traceState,a=s);let l=n.kind??Uo.SpanKind.INTERNAL,d=(n.links??[]).map(S=>({context:S.context,attributes:(0,gq.sanitizeAttributes)(S.attributes)})),f=(0,gq.sanitizeAttributes)(n.attributes),p=this._sampler.shouldSample(r,c,t,l,f,d),h=this._tracerMetrics.startSpan(s,p.decision);u=p.traceState??u;let m=p.decision===Uo.SamplingDecision.RECORD_AND_SAMPLED?Uo.TraceFlags.SAMPLED:Uo.TraceFlags.NONE,y={traceId:c,spanId:o,traceFlags:m,traceState:u};if(p.decision===Uo.SamplingDecision.NOT_RECORD)return Uo.diag.debug("Recording is off, propagating context in a non-recording span"),Uo.trace.wrapSpanContext(y);let g=(0,gq.sanitizeAttributes)(Object.assign(f,p.attributes));return new XZt.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:r,spanContext:y,name:t,kind:l,links:d,parentSpanContext:a,attributes:g,startTime:n.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits,recordEndMetrics:h})}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??Uo.context.active(),u=this.startSpan(t,s,c),l=Uo.trace.setSpan(c,u);return Uo.context.with(l,a,void 0,u)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}};yq.Tracer=s$});var WUe=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.MultiSpanProcessor=void 0;var n5t=dr(),o$=class{_spanProcessors;constructor(t){this._spanProcessors=t}forceFlush(){let t=[];for(let n of this._spanProcessors)t.push(n.forceFlush());return new Promise(n=>{Promise.all(t).then(()=>{n()}).catch(r=>{(0,n5t.globalErrorHandler)(r||new Error("MultiSpanProcessor: forceFlush failed")),n()})})}onStart(t,n){for(let r of this._spanProcessors)r.onStart(t,n)}onEnding(t){for(let n of this._spanProcessors)n.onEnding&&n.onEnding(t)}onEnd(t){for(let n of this._spanProcessors)n.onEnd(t)}shutdown(){let t=[];for(let n of this._spanProcessors)t.push(n.shutdown());return new Promise((n,r)=>{Promise.all(t).then(()=>{n()},r)})}};Sq.MultiSpanProcessor=o$});var KUe=w(zE=>{"use strict";Object.defineProperty(zE,"__esModule",{value:!0});zE.BasicTracerProvider=zE.ForceFlushState=void 0;var r5t=dr(),i5t=qQ(),s5t=VUe(),o5t=QQ(),a5t=WUe(),c5t=$Q(),mR;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(mR=zE.ForceFlushState||(zE.ForceFlushState={}));var a$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,r5t.merge)({},(0,o5t.loadDefaultConfig)(),(0,c5t.reconfigureLimits)(t));this._resource=n.resource??(0,i5t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new a5t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new s5t.Tracer({name:t,version:n,schemaUrl:r?.schemaUrl},this._config,this._resource,this._activeSpanProcessor)),this._tracers.get(i)}forceFlush(){let t=this._config.forceFlushTimeoutMillis,n=this._activeSpanProcessor._spanProcessors.map(r=>new Promise(i=>{let s,o=setTimeout(()=>{i(new Error(`Span processor did not completed within timeout period of ${t} ms`)),s=mR.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==mR.timeout&&(s=mR.resolved,i(s))}).catch(a=>{clearTimeout(o),s=mR.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==mR.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};zE.BasicTracerProvider=a$});var ZUe=w(_q=>{"use strict";Object.defineProperty(_q,"__esModule",{value:!0});_q.ConsoleSpanExporter=void 0;var c$=dr(),u$=class{export(t,n){return this._sendSpans(t,n)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(t){return{resource:{attributes:t.resource.attributes},instrumentationScope:t.instrumentationScope,traceId:t.spanContext().traceId,parentSpanContext:t.parentSpanContext,traceState:t.spanContext().traceState?.serialize(),name:t.name,id:t.spanContext().spanId,kind:t.kind,timestamp:(0,c$.hrTimeToMicroseconds)(t.startTime),duration:(0,c$.hrTimeToMicroseconds)(t.duration),attributes:t.attributes,status:t.status,events:t.events,links:t.links}}_sendSpans(t,n){for(let r of t)console.dir(this._exportInfo(r),{depth:3});if(n)return n({code:c$.ExportResultCode.SUCCESS})}};_q.ConsoleSpanExporter=u$});var JUe=w(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.InMemorySpanExporter=void 0;var YUe=dr(),l$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:YUe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:YUe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Eq.InMemorySpanExporter=l$});var XUe=w(Tq=>{"use strict";Object.defineProperty(Tq,"__esModule",{value:!0});Tq.SimpleSpanProcessor=void 0;var u5t=(Me(),Ie(Ze)),bq=dr(),d$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new bq.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush&&await this._exporter.forceFlush()}onStart(t,n){}onEnd(t){if(this._shutdownOnce.isCalled||(t.spanContext().traceFlags&u5t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,bq.globalErrorHandler)(r));this._pendingExports.add(n),n.finally(()=>this._pendingExports.delete(n))}async _doExport(t){t.resource.asyncAttributesPending&&await t.resource.waitForAsyncAttributes?.();let n=await bq.internal._export(this._exporter,[t]);if(n.code!==bq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Tq.SimpleSpanProcessor=d$});var QUe=w(vq=>{"use strict";Object.defineProperty(vq,"__esModule",{value:!0});vq.NoopSpanProcessor=void 0;var f$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};vq.NoopSpanProcessor=f$});var p$=w($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.SamplingDecision=$r.TraceIdRatioBasedSampler=$r.ParentBasedSampler=$r.AlwaysOnSampler=$r.AlwaysOffSampler=$r.NoopSpanProcessor=$r.SimpleSpanProcessor=$r.InMemorySpanExporter=$r.ConsoleSpanExporter=$r.RandomIdGenerator=$r.BatchSpanProcessor=$r.BasicTracerProvider=void 0;var l5t=KUe();Object.defineProperty($r,"BasicTracerProvider",{enumerable:!0,get:function(){return l5t.BasicTracerProvider}});var $Ue=r$();Object.defineProperty($r,"BatchSpanProcessor",{enumerable:!0,get:function(){return $Ue.BatchSpanProcessor}});Object.defineProperty($r,"RandomIdGenerator",{enumerable:!0,get:function(){return $Ue.RandomIdGenerator}});var d5t=ZUe();Object.defineProperty($r,"ConsoleSpanExporter",{enumerable:!0,get:function(){return d5t.ConsoleSpanExporter}});var f5t=JUe();Object.defineProperty($r,"InMemorySpanExporter",{enumerable:!0,get:function(){return f5t.InMemorySpanExporter}});var p5t=XUe();Object.defineProperty($r,"SimpleSpanProcessor",{enumerable:!0,get:function(){return p5t.SimpleSpanProcessor}});var h5t=QUe();Object.defineProperty($r,"NoopSpanProcessor",{enumerable:!0,get:function(){return h5t.NoopSpanProcessor}});var m5t=eq();Object.defineProperty($r,"AlwaysOffSampler",{enumerable:!0,get:function(){return m5t.AlwaysOffSampler}});var g5t=nq();Object.defineProperty($r,"AlwaysOnSampler",{enumerable:!0,get:function(){return g5t.AlwaysOnSampler}});var y5t=KQ();Object.defineProperty($r,"ParentBasedSampler",{enumerable:!0,get:function(){return y5t.ParentBasedSampler}});var S5t=YQ();Object.defineProperty($r,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return S5t.TraceIdRatioBasedSampler}});var _5t=lR();Object.defineProperty($r,"SamplingDecision",{enumerable:!0,get:function(){return _5t.SamplingDecision}})});function v$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function A$(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function E5t(e){return typeof e.kind=="number"}function b5t(e){return!!e.status}function rje(e){return!!e.name}function T5t(e){if(!A$(e))return{};let t=e.attributes[ay]||e.attributes[rA],n={url:t,"http.method":e.attributes[pE]||e.attributes[tO]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Oy(t);n.url=Ny(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function v5t(e){return E5t(e)?e.kind:Xr.INTERNAL}function _R(e){return e.getValue(k$)}function oje(e,t){return e.setValue(k$,t)}function w5t(e,t){Fs(e,sje,t)}function yN(e){return e[sje]}function yR(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(w$)==="1":!1;if(t===Ma.SAMPLED)return!0;if(r)return!1;let i=n?n.get(R$):void 0,s=i?dm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function aje(e,t,n){let r=t[pE]||t[tO];if(r)return I5t({attributes:t,name:e,kind:n},r);let i=t[fE]||t[I8],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return k5t({attributes:t,name:e});let o=t[Bi]==="custom"?"custom":"route";if(t[F8])return{...gN(e,t,"route"),op:"rpc"};if(t[j8])return{...gN(e,t,o),op:"message"};let u=t[O8];return u?{...gN(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function cje(e){let t=A$(e)?e.attributes:{},n=rje(e)?e.name:"",r=v5t(e);return aje(n,t,r)}function k5t({attributes:e,name:t}){let n=e[ql];if(typeof n=="string")return{op:"db",description:n,source:e[Bi]||"custom"};if(e[Bi]==="custom")return{op:"db",description:t,source:"custom"};let r=e[x8];return{op:"db",description:r?r.toString():t,source:"task"}}function I5t({name:e,kind:t,attributes:n},r){let i=["http"];switch(t){case Xr.CLIENT:i.push("client");break;case Xr.SERVER:i.push("server");break}n["sentry.http.prefetch"]&&i.push("prefetch");let{urlPath:s,url:o,query:a,fragment:c,hasRoute:u}=O5t(n,t);if(!s)return{...gN(e,n),op:i.join(".")};let l=n[SR],d=`${r} ${s}`,f=l?`${d} (${x5t(l)})`:d,p=u||s==="/"?"route":"url",h={};o&&(h.url=o),a&&(h["http.query"]=a),c&&(h["http.fragment"]=c);let m=t===Xr.CLIENT||t===Xr.SERVER,g=!`${n[At]||"manual"}`.startsWith("auto"),E=n[Bi]==="custom",S=n[ql],_=!E&&S==null&&(m||!g),{description:b,source:T}=_?{description:f,source:p}:gN(e,n);return{op:i.join("."),description:b,source:T,data:h}}function x5t(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}function O5t(e,t){let n=e[M8],r=e[rA]||e[ay],i=e[im],s=typeof r=="string"?Oy(r):void 0,o=s?Ny(s):void 0,a=s?.search||void 0,c=s?.hash||void 0;return typeof i=="string"?{urlPath:i,url:o,query:a,fragment:c,hasRoute:!0}:t===Xr.SERVER&&typeof n=="string"?{urlPath:gm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:gm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function gN(e,t,n="custom"){let r=t[Bi]||n,i=t[ql];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function uje(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Bi],{description:o}=rje(n)?cje(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),ws()){let a=yR(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function lje(){return Ut.getActiveSpan()}function dje({dsc:e,sampled:t}){let n=e?AE(e):void 0,r=new Nc.TraceState,i=n?r.set(R$,n):r;return t===!1?i.set(w$,"1"):i}function pje(){return Array.from(fje)}function Iq(e){fje.add(e)}function hje(e,t={}){let n=Ut.getSpan(e);if(n?.spanContext().isRemote){let a=n.spanContext();return{dynamicSamplingContext:ks(n),traceId:a.traceId,spanId:void 0,sampled:yR(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:ks(n),traceId:a.traceId,spanId:a.spanId,sampled:yR(a)}}let r=t.scope||_R(e)?.scope||Ln(),i=t.client||ct(),s=r.getPropagationContext();return{dynamicSamplingContext:i?Pp(i,r):void 0,traceId:s.traceId,spanId:s.propagationSpanId,sampled:s.sampled}}function mje(e,{sentryTrace:t,baggage:n}){let r=wO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=dm(n);if(!s||c&&!M7(c,u?.org_id))return e;let l=D5t({traceId:i,spanId:s,sampled:o,dsc:a});return Ut.setSpanContext(e,l)}function N5t(e,t,n){let r=gje(mje(e,t));return Ve.with(r,n)}function gje(e){let t=_R(e),n={scope:t?t.scope:Ln().clone(),isolationScope:t?t.isolationScope:vn()};return oje(e,n)}function P5t(e){try{let t=e[h$];return Array.isArray(t)?t.join(","):t}catch{return}}function C5t(e){try{return e[Aq]}catch{return}}function M5t(e){let t=vt(e).data,n=t[rA]||t[ay];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(ije);if(r)return r}function D5t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=dje({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?Ma.SAMPLED:Ma.NONE,traceState:i}}function yje(e,t,n){let r=_je(),{name:i,parentSpan:s}=e;return Aje(s)(()=>{let a=Tje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!Ut.getSpan(a)?(0,Nc.suppressTracing)(a):a,l=Eje(e);if(!ws()){let d=(0,Nc.isTracingSuppressed)(u)?u:(0,Nc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(S$(f),Ve.with(a,()=>sf(()=>t(f),()=>{vt(f).status===void 0&&f.setStatus({code:ss.ERROR})},n?()=>f.end():void 0)))))}return r.startActiveSpan(i,l,u,d=>(S$(d),sf(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:ss.ERROR})},n?()=>d.end():void 0)))})}function L5t(e,t){return yje(e,t,!0)}function U5t(e,t){return yje(e,n=>t(n,()=>n.end()),!1)}function j5t(e){let t=_je(),{name:n,parentSpan:r}=e;return Aje(r)(()=>{let s=Tje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!Ut.getSpan(s)?(0,Nc.suppressTracing)(s):s,c=Eje(e);ws()||(a=(0,Nc.isTracingSuppressed)(a)?a:(0,Nc.suppressTracing)(a));let u=t.startSpan(n,c,a);return S$(u),u})}function Sje(e,t){let n=e?Ut.setSpan(Ve.active(),e):Ut.deleteSpan(Ve.active());return Ve.with(n,()=>t(Ln()))}function _je(){return ct()?.tracer||Ut.getTracer("@sentry/opentelemetry",On)}function Eje(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?bje(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function bje(e){return e<9999999999?e*1e3:e}function S$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?bje(n):n)}function Tje(e,t){let n=F5t(e),r=Ut.getSpan(n);if(!r||!t)return n;let i=Ut.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=yR(r.spanContext()),c=os(r),u=ks(c),l=dje({dsc:u,sampled:a}),d={traceId:o,spanId:s,isRemote:!0,traceFlags:a?Ma.SAMPLED:Ma.NONE,traceState:l};return Ut.setSpanContext(i,d)}function F5t(e){if(e){let t=yN(e);if(t)return t}return Ve.active()}function H5t(e,t){return N5t(Ve.active(),e,t)}function q5t(e){let t=qa(),n=Ba(),r={traceId:t,spanId:n,isRemote:!0,traceFlags:Ma.NONE},i=Ut.setSpanContext(Ve.active(),r);return Ve.with(i,()=>(Ln().setPropagationContext({traceId:t,sampleRand:Co()}),e()))}function vje(e,t){let n=yN(t),r=n&&Ut.getSpan(n),i=r?wy(r):vE(t);return[r?ks(r):Pp(e,t),i]}function Aje(e){return e!==void 0?t=>Sje(e,t):t=>t()}function B5t(e){let t=(0,Nc.suppressTracing)(Ve.active());return Ve.with(t,e)}function Rje(e){e.on("preprocessEvent",t=>{let n=lje();if(!n||t.type==="transaction")return;t.contexts={trace:wy(n),...t.contexts};let r=os(n);return t.sdkProcessingMetadata={dynamicSamplingContext:ks(r),...t.sdkProcessingMetadata},t})}function G5t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&yN(t))??Ve.active();if(e){let{scope:l}=tf(e);i=l&&yN(l)||Ut.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=hje(i,{scope:t,client:n}),u={"sentry-trace":Ay(s,o,a),baggage:AE(c)};return r&&(u.traceparent=Ry(s,o,a)),u}function wje(){function e(){let a=Ve.active(),c=_R(a);return c||{scope:IA(),isolationScope:Hl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=yN(a)||Ve.active();return Ve.with(u.setValue(g$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(m$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(y$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}A7({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:L5t,startSpanManual:U5t,startInactiveSpan:j5t,getActiveSpan:lje,suppressTracing:B5t,getTraceData:G5t,continueTrace:H5t,startNewTrace:q5t,withActiveSpan:Sje})}function kje(e){class t extends e{constructor(...r){super(...r),Iq("SentryContextManager")}with(r,i,s,...o){let a=_R(r),c=a?.scope||Ln(),u=a?.isolationScope||vn(),l=r.getValue(m$)===!0,d=r.getValue(g$),f=r.getValue(y$),p=d||c.clone(),h=f||(l?u.clone():u),g=oje(r,{scope:p,isolationScope:h}).deleteValue(m$).deleteValue(g$).deleteValue(y$);return w5t(p,g),super.with(g,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:k$}}}return t}function z5t(e){let t=new Map;for(let n of e)V5t(t,n);return Array.from(t,function([n,r]){return r})}function Ije(e){return e.attributes[T$]===!0?void 0:v$(e)}function V5t(e,t){let n=t.spanContext().spanId,r=Ije(t);if(!r){_$(e,{id:n,span:t,children:[]});return}let i=W5t(e,r),s=_$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function W5t(e,t){let n=e.get(t);return n||_$(e,{id:t,children:[]})}function _$(e,t){let n=e.get(t.id);return n?.span?n:n&&!n.span?(n.span=t.span,n.parentNode=t.parentNode,n):(e.set(t.id,t),t)}function Oje(e){let t=A$(e)?e.attributes:{},n=b5t(e)?e.status:void 0;if(n){if(n.code===ss.OK)return{code:1};if(n.code===ss.ERROR){if(typeof n.message>"u"){let i=eje(t);if(i)return i}return n.message&&K5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=eje(t);return r||(n?.code===ss.UNSET?{code:1}:{code:2,message:"unknown_error"})}function eje(e){let t=e[rm]||e[dE],n=e[H8],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return lm(r);if(typeof n=="string")return{code:2,message:xje[n]||"unknown_error"}}function Z5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Bi];return{origin:n,op:r,source:i}}function Y5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=Nje(e),o=tf(e),a=e.attributes[ef],c={[Bi]:s,[ef]:a,[zt]:t,[At]:i,...r,...Pje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=v$(e),p=Oje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:kE(p),links:wE(u)},m=c[rm],y=typeof m=="number"?{response:{status_code:m}}:void 0;return{contexts:{trace:h,otel:{resource:e.resource.attributes},...y},spans:[],start_timestamp:ru(e.startTime),timestamp:ru(e.endTime),transaction:n,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:o.scope,capturedSpanIsolationScope:o.isolationScope,sampleRate:a,dynamicSamplingContext:ks(e)},...s&&{transaction_info:{source:s}}}}function b$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{b$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=v$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=Nje(r),y={[At]:m,[zt]:f,...Pje(c),...h},g=Oje(r),E={span_id:s,trace_id:o,data:y,description:p,parent_span_id:a,start_timestamp:ru(u),timestamp:ru(l)||void 0,status:kE(g),op:f,origin:m,measurements:IE(r.events),links:wE(d)};t.push(E),e.children.forEach(S=>{b$(S,t,n)})}function Nje(e){let{op:t,source:n,origin:r}=Z5t(e),{op:i,description:s,source:o,data:a}=cje(e),c=t||i,u=n||o,l={...a,...J5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function Pje(e){let t={...e};return delete t[ef],delete t[T$],delete t[ql],t}function J5t(e){let t=e.attributes,n={};e.kind!==Xr.INTERNAL&&(n["otel.kind"]=Xr[e.kind]);let r=t[dE];r&&(n[rm]=r);let i=T5t(e);return i.url&&(n.url=i.url),i["http.query"]&&(n["http.query"]=i["http.query"].slice(1)),i["http.fragment"]&&(n["http.fragment"]=i["http.fragment"].slice(1)),n}function X5t(e,t){let n=Ut.getSpan(t),r=_R(t);n&&!n.spanContext().isRemote&&DA(n,e),n?.spanContext().isRemote&&e.setAttribute(T$,!0),t===Xv&&(r={scope:IA(),isolationScope:Hl()}),r&&AO(e,r.scope,r.isolationScope),CO(e),ct()?.emit("spanStart",e)}function Q5t(e){MO(e),ct()?.emit("spanEnd",e)}function $5t(e,t,n){let r=e.spanContext();if(nm(r)&&r.traceId===t){if(r.isRemote){let s=yR(e.spanContext());return Gy&&J.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=yR(r);return Gy&&J.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function gR({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=e6t(t,n);return i!==void 0&&(s=s.set(R5t,`${i}`)),r!==void 0&&(s=s.set(A5t,`${r}`)),e==null?{decision:By.SamplingDecision.NOT_RECORD,traceState:s}:e===By.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(w$,"1")}:{decision:e,traceState:s}}function e6t(e,t){let i=Ut.getSpan(e)?.spanContext()?.traceState||new Nc.TraceState,s=t[rA]||t[ay];return s&&typeof s=="string"&&(i=i.set(ije,s)),i}function t6t(e){let t=Ut.getSpan(e);return t&&nm(t.spanContext())?t:void 0}var Nc,By,T$,SR,Aq,h$,R$,w$,ije,A5t,R5t,k$,m$,g$,y$,sje,Gy,fje,Rq,xje,K5t,tje,nje,E$,wq,kq,ER=v(()=>{xn();st();Me();Me();Nc=_e(dr(),1),By=_e(p$(),1),T$="sentry.parentIsRemote",SR="sentry.graphql.operation";Aq="sentry-trace",h$="baggage",R$="sentry.dsc",w$="sentry.sampled_not_recording",ije="sentry.url",A5t="sentry.sample_rand",R5t="sentry.sample_rate",k$=Qu("sentry_scopes"),m$=Qu("sentry_fork_isolation_scope"),g$=Qu("sentry_fork_set_scope"),y$=Qu("sentry_fork_set_isolation_scope"),sje="_scopeContext";Gy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;fje=new Set;Rq=class extends Nc.W3CBaggagePropagator{constructor(){super(),Iq("SentryPropagator"),this._urlMatchesTargetsMap=new su(100)}inject(t,n,r){if((0,Nc.isTracingSuppressed)(t)){Gy&&J.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=Ut.getSpan(t),s=i&&M5t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!PE(s,o,this._urlMatchesTargetsMap)){Gy&&J.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=P5t(n),u=C5t(n),l=Zd.getBaggage(t)||Zd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=hje(t);if(c){let m=RE(c);m&&Object.entries(m).forEach(([y,g])=>{!u&&y.startsWith(Np)||(l=l.setEntry(y,{value:g}))})}!u&&d&&(l=Object.entries(d).reduce((m,[y,g])=>g?m.setEntry(`${Np}${y}`,{value:g}):m,l)),!u&&f&&f!==cE&&(r.set(n,Aq,Ay(f,p,h)),a&&r.set(n,"traceparent",Ry(f,p,h))),super.inject(Zd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Aq),s=r.get(n,h$),o=i?Array.isArray(i)?i[0]:i:void 0;return gje(mje(t,{sentryTrace:o,baggage:s}))}fields(){return[Aq,h$,"traceparent"]}};xje={1:"cancelled",2:"unknown_error",3:"invalid_argument",4:"deadline_exceeded",5:"not_found",6:"already_exists",7:"permission_denied",8:"resource_exhausted",9:"failed_precondition",10:"aborted",11:"out_of_range",12:"unimplemented",13:"internal_error",14:"unavailable",15:"data_loss",16:"unauthenticated"},K5t=e=>Object.values(xje).includes(e);tje=1e3,nje=300,E$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||nje,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Fl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=_X(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Fl()/1e3);if(this._lastCleanupTimestampInS!==n){let o=0;this._finishedSpanBuckets.forEach((a,c)=>{a&&a.timestampInS<=n-this._finishedSpanBucketSize&&(o+=a.spans.size,this._finishedSpanBuckets[c]=void 0)}),o>0&&Gy&&J.log(`SpanExporter dropped ${o} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`),this._lastCleanupTimestampInS=n}let r=n%this._finishedSpanBucketSize,i=this._finishedSpanBuckets[r]||{timestampInS:n,spans:new Set};this._finishedSpanBuckets[r]=i,i.spans.add(t),this._spansToBucketEntry.set(t,i);let s=Ije(t);(!s||this._sentSpans.has(s))&&this._debouncedFlush()}flush(){let t=this._finishedSpanBuckets.flatMap(o=>o?Array.from(o.spans):[]);this._flushSentSpanCache();let n=this._maybeSend(t),r=n.size,i=t.length-r;Gy&&J.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Fl()+nje*1e3;for(let o of n){this._sentSpans.set(o.spanContext().spanId,s);let a=this._spansToBucketEntry.get(o);a&&a.spans.delete(o)}this._debouncedFlush.cancel()}clear(){this._finishedSpanBuckets=this._finishedSpanBuckets.fill(void 0),this._sentSpans.clear(),this._debouncedFlush.cancel()}_maybeSend(t){let n=z5t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=Y5t(o);if(s.parentNode&&this._sentSpans.has(s.parentNode.id)){let l=a.contexts?.trace?.data;l&&(l["sentry.parent_span_already_sent"]=!0)}let c=a.spans||[];for(let l of s.children)b$(l,c,r);a.spans=c.length>tje?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,tje):c;let u=IE(o.events);u&&(a.measurements=u),jF(a)}return r}_flushSentSpanCache(){let t=Fl();for(let[n,r]of this._sentSpans.entries())r<=t&&this._sentSpans.delete(n)}_nodeIsCompletedRootNodeOrHasSentParent(t){return!!t.span&&(!t.parentNode||this._sentSpans.has(t.parentNode.id))}_getCompletedRootNodes(t){return t.filter(n=>this._nodeIsCompletedRootNodeOrHasSentParent(n))}};wq=class{constructor(t){Iq("SentrySpanProcessor"),this._exporter=new E$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){X5t(t,n)}onEnd(t){Q5t(t),this._exporter.export(t)}},kq=class{constructor(t){this._client=t,Iq("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=t6t(t),u=c?.spanContext();if(!ws(a))return gR({decision:void 0,context:t,spanAttributes:s});let l=s[tO]||s[pE];if(i===Xr.CLIENT&&l&&(!c||u?.isRemote))return gR({decision:void 0,context:t,spanAttributes:s});let d=c?$5t(c,n,r):void 0;if(!(!c||u?.isRemote))return gR({decision:d?By.SamplingDecision.RECORD_AND_SAMPLED:By.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=aje(r,s,i),y={...h,...s};m&&(y[zt]=m);let g={decision:!0};if(this._client.emit("beforeSampling",{spanAttributes:y,spanName:p,parentSampled:d,parentContext:u},g),!g.decision)return gR({decision:void 0,context:t,spanAttributes:s});let{isolationScope:E}=_R(t)??{},S=u?.traceState?u.traceState.get(R$):void 0,_=S?dm(S):void 0,b=nl(_?.sample_rand)??Co(),[T,A,R]=DO(a,{name:p,attributes:y,normalizedRequest:E?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:d,parentSampleRate:nl(_?.sample_rate)},b),k=`${l}`.toUpperCase();return k==="OPTIONS"||k==="HEAD"?(Gy&&J.log(`[Tracing] Not sampling span because HTTP method is '${k}' for ${r}`),gR({decision:By.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:b,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Gy&&J.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...gR({decision:T?By.SamplingDecision.RECORD_AND_SAMPLED:By.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:b,downstreamTraceSampleRate:R?A:void 0}),attributes:{[ef]:R?A:void 0}})}toString(){return"SentrySampler"}}});var Cje,I$,Mje=v(()=>{Cje=_e(eUe(),1);ER();I$=kje(Cje.AsyncLocalStorageContextManager)});function x$(){$u.disable(),$u.setLogger({error:J.error,warn:J.warn,info:J.log,debug:J.log,verbose:J.log},ao.DEBUG)}var Dje=v(()=>{Me();st()});import*as O$ from"node:diagnostics_channel";function r6t(e,t){let n=!1,r;e.on("spawn",()=>{if(e.spawnfile==="/usr/bin/sw_vers"){n=!0;return}r={spawnfile:e.spawnfile},t.includeChildProcessArgs&&(r.spawnargs=e.spawnargs)}).on("exit",i=>{n||(n=!0,i!==null&&i!==0&&Gl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Gl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function i6t(e,t){let n;e.on("online",()=>{n=e.threadId}).on("error",r=>{t.captureWorkerErrors!==!1?Wt(r,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(n)}}}):Gl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var n6t,Lje,Uje=v(()=>{st();n6t="ChildProcess",Lje=(e={})=>({name:n6t,setup(){O$.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&r6t(t.process,e)}),O$.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&i6t(t.worker,e)})}})});import{execFile as s6t}from"node:child_process";import{readFile as o6t,readdir as a6t}from"node:fs";import*as jo from"node:os";import{join as c6t}from"node:path";import{promisify as Fje}from"node:util";function p6t(e){if(e.app?.app_memory&&(e.app.app_memory=process.memoryUsage().rss),e.app?.free_memory&&typeof process.availableMemory=="function"){let t=process.availableMemory?.();t!=null&&(e.app.free_memory=t)}return e.device?.free_memory&&(e.device.free_memory=jo.freemem()),e}async function h6t(){let e=jo.platform();switch(e){case"darwin":return b6t();case"linux":return T6t();default:return{name:S6t[e]||e,version:jo.release()}}}function m6t(){try{if(typeof process.versions.icu!="string")return;let e=new Date(9e8);if(new Intl.DateTimeFormat("es",{month:"long"}).format(e)==="enero"){let n=Intl.DateTimeFormat().resolvedOptions();return{locale:n.locale,timezone:n.timeZone}}}catch{}}function g6t(){let e=process.memoryUsage().rss,n={app_start_time:new Date(Date.now()-process.uptime()*1e3).toISOString(),app_memory:e};if(typeof process.availableMemory=="function"){let r=process.availableMemory?.();r!=null&&(n.free_memory=r)}return n}function y6t(e){let t={},n;try{n=jo.uptime()}catch{}if(typeof n=="number"&&(t.boot_time=new Date(Date.now()-n*1e3).toISOString()),t.arch=jo.arch(),(e===!0||e.memory)&&(t.memory_size=jo.totalmem(),t.free_memory=jo.freemem()),e===!0||e.cpu){let r=jo.cpus(),i=r?.[0];i&&(t.processor_count=r.length,t.cpu_description=i.model,t.processor_frequency=i.speed)}return t}function Bp(e,t){let n=e.exec(t);return n?n[1]:void 0}async function b6t(){let e={kernel_version:jo.release(),name:"Mac OS X",version:`10.${Number(jo.release().split(".")[0])-4}`};try{let t=await new Promise((n,r)=>{s6t("/usr/bin/sw_vers",(i,s)=>{if(i){r(i);return}n(s)})});e.name=Bp(/^ProductName:\s+(.*)$/m,t),e.version=Bp(/^ProductVersion:\s+(.*)$/m,t),e.build=Bp(/^BuildVersion:\s+(.*)$/m,t)}catch{}return e}function jje(e){return e.split(" ")[0].toLowerCase()}async function T6t(){let e={kernel_version:jo.release(),name:"Linux"};try{let t=await l6t("/etc"),n=_6t.find(a=>t.includes(a.name));if(!n)return e;let r=c6t("/etc",n.name),i=(await u6t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(jje(a))>=0)||s[0];let o=jje(e.name);e.version=E6t[o]?.(i)}catch{}return e}function v6t(){return process.env.VERCEL?{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION}:process.env.AWS_REGION?{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV}:process.env.GCP_PROJECT?{"cloud.provider":"gcp"}:process.env.ALIYUN_REGION_ID?{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID}:process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME?{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME}:process.env.IBM_CLOUD_REGION?{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION}:process.env.TENCENTCLOUD_REGION?{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE}:process.env.NETLIFY?{"cloud.provider":"netlify"}:process.env.FLY_REGION?{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION}:process.env.DYNO?{"cloud.provider":"heroku"}:void 0}var u6t,l6t,d6t,f6t,Hje,S6t,_6t,E6t,qje=v(()=>{u6t=Fje(o6t),l6t=Fje(a6t),d6t="Context",f6t=((e={})=>{let t,n={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...e};async function r(s){t===void 0&&(t=i());let o=p6t(await t);return s.contexts={...s.contexts,app:{...o.app,...s.contexts?.app},os:{...o.os,...s.contexts?.os},device:{...o.device,...s.contexts?.device},culture:{...o.culture,...s.contexts?.culture},cloud_resource:{...o.cloud_resource,...s.contexts?.cloud_resource}},s}async function i(){let s={};if(n.os&&(s.os=await h6t()),n.app&&(s.app=g6t()),n.device&&(s.device=y6t(n.device)),n.culture){let o=m6t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=v6t()),s}return{name:d6t,processEvent(s){return r(s)}}}),Hje=f6t;S6t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},_6t=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],E6t={alpine:e=>e,arch:e=>Bp(/distrib_release=(.*)/,e),centos:e=>Bp(/release ([^ ]+)/,e),debian:e=>e,fedora:e=>Bp(/release (..)/,e),mint:e=>Bp(/distrib_release=(.*)/,e),red:e=>Bp(/release ([^ ]+)/,e),suse:e=>Bp(/VERSION = (.*)\n/,e),ubuntu:e=>Bp(/distrib_release=(.*)/,e)}});import{createReadStream as A6t}from"node:fs";import{createInterface as R6t}from"node:readline";function O6t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function N6t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function P6t(e){return e.lineno!==void 0&&e.lineno>x6t||e.colno!==void 0&&e.colno>I6t}function C6t(e,t){let n=N$.get(e);if(n===void 0)return!1;for(let r=t[0];r<=t[1];r++)if(n[r]===void 0)return!1;return!0}function M6t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Gje(r,t),s=[];for(;;){if(n===e.length-1){s.push(i);break}let o=e[n+1];if(typeof o!="number")break;o<=i[1]?i[1]=o+t:(s.push(i),i=Gje(o,t)),n++}return s}function D6t(e,t,n){return new Promise((r,i)=>{let s=A6t(e),o=R6t({input:s});function a(){s.destroy(),r()}let c=0,u=0,l=t[u];if(l===void 0){a();return}let d=l[0],f=l[1];function p(h){zje.set(e,1),Xt&&J.error(`Failed to read file: ${e}. Error: ${h}`),o.close(),o.removeAllListeners(),a()}s.on("error",p),o.on("error",p),o.on("close",a),o.on("line",h=>{if(c++,!(c=f)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}d=m[0],f=m[1]}})})}async function L6t(e,t){let n={};if(t>0&&e.exception?.values){for(let s of e.exception.values)if(s.stacktrace?.frames?.length)for(let o=s.stacktrace.frames.length-1;o>=0;o--){let a=s.stacktrace.frames[o],c=a?.filename;if(!a||typeof c!="string"||typeof a.lineno!="number"||N6t(c)||P6t(a))continue;n[c]||(n[c]=[]),n[c].push(a.lineno)}}let r=Object.keys(n);if(r.length==0)return e;let i=[];for(let s of r){if(zje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=M6t(o,t);if(a.every(u=>C6t(s,u)))continue;let c=O6t(N$,s,{});i.push(D6t(s,a,c))}if(await Promise.all(i).catch(()=>{Xt&&J.log("Failed to read one or more source files and resolve context lines")}),t>0&&e.exception?.values)for(let s of e.exception.values)s.stacktrace?.frames&&s.stacktrace.frames.length>0&&U6t(s.stacktrace.frames,t,N$);return e}function U6t(e,t,n){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let i=n.get(r.filename);if(i===void 0)continue;j6t(r.lineno,r,t,i)}}function Bje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function j6t(e,t,n,r){if(t.lineno===void 0||r===void 0){Xt&&J.error("Cannot resolve context for frame with no lineno or file contents");return}t.pre_context=[];for(let s=Vje(e,n);s{st();cf();N$=new su(10),zje=new su(20),w6t=7,k6t="ContextLines",I6t=1e3,x6t=1e4;F6t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:w6t;return{name:k6t,processEvent(n){return L6t(n,t)}}}),Kje=F6t});async function Oq(){if(xq===void 0)try{xq=!!(await import("node:inspector")).url()}catch{xq=!1}return xq}var xq,P$=v(()=>{});function Jje(e,t,n){let r=0,i=5,s=0;return setInterval(()=>{s===0?r>e&&(i*=2,n(i),i>86400&&(i=86400),s=i):(s-=1,s===0&&t()),r=0},1e3).unref(),()=>{r+=1}}function Yje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function Nq(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||Yje(e)&&Yje(t)}var SN,C$=v(()=>{SN="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as H6t}from"node:worker_threads";function Xje(...e){J.log("[LocalVariables]",...e)}var q6t,Qje,$je=v(()=>{st();P$();C$();q6t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Qje=((e={})=>{function t(s,o){let a=(s.stacktrace?.frames||[]).filter(c=>c.function!=="new Promise");for(let c=0;c{o.terminate()}),o.once("error",a=>{Xje("Worker error",a)}),o.once("exit",a=>{Xje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await Oq()){J.warn("Local variables capture has been disabled because the debugger was already enabled");return}let a={...e,debug:J.isEnabled()};r().then(()=>{try{i(a)}catch(c){J.error("Failed to start worker",c)}},c=>{J.error("Failed to start inspector",c)})},processEvent(s,o){return n(s,o)}}})});function eFe(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function B6t(e,t){if(t!==void 0)return eFe(e(t,1))}function tFe(e){let t=[],n=!1;function r(o){t=[],!n&&(n=!0,e(o))}t.push(r);function i(o){t.push(o)}function s(o){let a=t.pop()||r;try{a(o)}catch{r(o)}}return{add:i,next:s}}var M$,G6t,z6t,nFe,rFe=v(()=>{st();iR();P$();C$();M$=class e{constructor(t){this._session=t}static async create(t){if(t)return t;let n=await import("node:inspector");return new e(new n.Session)}configureAndConnect(t,n){this._session.connect(),this._session.on("Debugger.paused",r=>{t(r,()=>{this._session.post("Debugger.resume")})}),this._session.post("Debugger.enable"),this._session.post("Debugger.setPauseOnExceptions",{state:n?"all":"uncaught"})}setPauseOnExceptions(t){this._session.post("Debugger.setPauseOnExceptions",{state:t?"all":"uncaught"})}getLocalVariables(t,n){this._getProperties(t,r=>{let{add:i,next:s}=tFe(n);for(let o of r)if(o.value?.objectId&&o.value.className==="Array"){let a=o.value.objectId;i(c=>this._unrollArray(a,o.name,c,s))}else if(o.value?.objectId&&o.value.className==="Object"){let a=o.value.objectId;i(c=>this._unrollObject(a,o.name,c,s))}else o.value&&i(a=>this._unrollOther(o,a,s));s({})})}_getProperties(t,n){this._session.post("Runtime.getProperties",{objectId:t,ownProperties:!0},(r,i)=>{n(r?[]:i.result)})}_unrollArray(t,n,r,i){this._getProperties(t,s=>{r[n]=s.filter(o=>o.name!=="length"&&!isNaN(parseInt(o.name,10))).sort((o,a)=>parseInt(o.name,10)-parseInt(a.name,10)).map(o=>o.value?.value),i(r)})}_unrollObject(t,n,r,i){this._getProperties(t,s=>{r[n]=s.map(o=>[o.name,o.value?.value]).reduce((o,[a,c])=>(o[a]=c,o),{}),i(r)})}_unrollOther(t,n,r){t.value&&("value"in t.value?t.value.value===void 0||t.value.value===null?n[t.name]=`<${t.value.value}>`:n[t.name]=t.value.value:"description"in t.value&&t.value.type!=="function"?n[t.name]=`<${t.value.description}>`:t.value.type==="undefined"&&(n[t.name]="")),r(n)}},G6t="LocalVariables",z6t=((e={},t)=>{let n=new su(20),r,i=!1;function s(u){let l=eFe(u.stacktrace?.frames);if(l===void 0)return;let d=n.remove(l);if(d===void 0)return;let f=(u.stacktrace?.frames||[]).filter(p=>p.function!=="new Promise");for(let p=0;p= v18.");return}if(await Oq()){J.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await M$.create(t),p=(m,{params:{reason:y,data:g,callFrames:E}},S)=>{if(y!=="exception"&&y!=="promiseRejection"){S();return}r?.();let _=B6t(m,g.description);if(_==null){S();return}let{add:b,next:T}=tFe(A=>{n.set(_,A),S()});for(let A=0;AD.type==="local"),P=x.className==="global"||!x.className?k:`${x.className}.${k}`;if(N?.object.objectId===void 0)b(D=>{D[A]={function:P},T(D)});else{let D=N.object.objectId;b(j=>f.getLocalVariables(D,V=>{j[A]={function:P,vars:V},T(j)}))}}T([])},h=e.captureAllExceptions!==!1;if(f.configureAndConnect((m,y)=>p(l.stackParser,m,y),h),h){let m=e.maxExceptionsPerSecond||50;r=Jje(m,()=>{J.log("Local variables rate-limit lifted."),f.setPauseOnExceptions(!0)},y=>{J.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${y} seconds.`),f.setPauseOnExceptions(!1)})}i=!0}catch(f){J.log("The `LocalVariables` integration failed to start.",f)}}return{name:G6t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),nFe=z6t});var iFe,sFe=v(()=>{iR();$je();rFe();iFe=(e={})=>uf.major<19?nFe(e):Qje(e)});function _N(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function aFe(){return _N()?!1:_m>=21||_m===20&&cN>=6||_m===18&&cN>=19?!0:(oFe||(oFe=!0,Rs(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)})),!1)}var oFe,Pq=v(()=>{st();iR()});import{existsSync as V6t,readFileSync as uFe}from"node:fs";import{dirname as W6t,join as lFe}from"node:path";function J6t(){try{return Y.cache?Object.keys(Y.cache):[]}catch{return[]}}function X6t(){return{...Z6t,...eYt(),..._N()?Q6t():{}}}function Q6t(){let e=Y.main?.paths||[],t=J6t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=W6t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=lFe(a,"package.json");if(r.add(a),!V6t(c))return o();try{let u=JSON.parse(uFe(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function cFe(){return D$||(D$=X6t()),D$}function $6t(){try{let e=lFe(process.cwd(),"package.json");return JSON.parse(uFe(e,"utf8"))}catch{return{}}}function eYt(){let e=$6t();return{...e.dependencies,...e.devDependencies}}var D$,K6t,Z6t,Y6t,dFe,fFe=v(()=>{Pq();K6t="Modules",Z6t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,Y6t=(()=>({name:K6t,processEvent(e){return e.modules={...e.modules,...cFe()},e},getModules:cFe})),dFe=Y6t});function EN(e){Rs(()=>{console.error(e)});let t=ct();if(t===void 0){Xt&&J.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let n=t.getOptions(),r=n?.shutdownTimeout&&n.shutdownTimeout>0?n.shutdownTimeout:tYt;t.close(r).then(i=>{i||Xt&&J.warn("We reached the timeout for emptying the request buffer, still exiting now!"),global.process.exit(1)},i=>{Xt&&J.error(i)})}var tYt,L$=v(()=>{st();cf();tYt=2e3});import{isMainThread as nYt}from"worker_threads";function iYt(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=EN;t.onFatalError?u=t.onFatalError:a.onFatalError&&(u=a.onFatalError);let d=global.process.listeners("uncaughtException").filter(p=>p.name!=="domainUncaughtExceptionClear"&&p.tag!=="sentry_tracingErrorCallback"&&p._errorHandler!==!0).length===0,f=t.exitEvenIfOtherHandlersAreRegistered||d;r?f&&(s?(Xt&&J.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),EN(c)):i||(i=!0,setTimeout(()=>{s||(s=!0,u(o,c))},2e3))):(o=c,r=!0,ct()===e&&Wt(c,{originalException:c,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}}),!s&&f&&(s=!0,u(c)))},{_errorHandler:!0})}var rYt,pFe,hFe=v(()=>{st();cf();L$();rYt="OnUncaughtException",pFe=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:rYt,setup(n){nYt&&global.process.on("uncaughtException",iYt(n,t))}}}});function cYt(e){if(typeof e!="object"||e===null)return{name:"",message:String(e??"")};let t=e,n=typeof t.name=="string"?t.name:"",r=typeof t.message=="string"?t.message:String(e);return{name:n,message:r}}function uYt(e,t){let n=e.name===void 0||am(t.name,e.name,!0),r=e.message===void 0||am(t.message,e.message);return n&&r}function lYt(e,t){let n=cYt(t);return e.some(r=>uYt(r,n))}function dYt(e,t){return function(r,i){if(ct()!==e||lYt(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>jA(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),fYt(r,t.mode)}}function fYt(e,t){let n="This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:";t==="warn"?Rs(()=>{console.warn(n),console.error(e&&typeof e=="object"&&"stack"in e?e.stack:e)}):t==="strict"&&(Rs(()=>{console.warn(n)}),EN(e))}var sYt,oYt,aYt,mFe,gFe=v(()=>{st();L$();sYt="OnUnhandledRejection",oYt=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],aYt=((e={})=>{let t={mode:e.mode??"warn",ignore:[...oYt,...e.ignore??[]]};return{name:sYt,setup(n){global.process.on("unhandledRejection",dYt(n,t))}}}),mFe=aYt});var pYt,yFe,SFe=v(()=>{st();pYt="ProcessSession",yFe=()=>({name:pYt,setupOnce(){HF(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&jO()})}})});import*as _Fe from"node:http";function mYt(e,t){let n=gYt(t.sidecarUrl);if(!n)return;let r=0;e.on("beforeEnvelope",i=>{if(r>3){J.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let s=PO(i);FA(()=>{let o=_Fe.request({method:"POST",path:n.pathname,hostname:n.hostname,port:n.port,headers:{"Content-Type":"application/x-sentry-envelope"}},a=>{a.statusCode&&a.statusCode>=200&&a.statusCode<400&&(r=0),a.on("data",()=>{}),a.on("end",()=>{}),a.setEncoding("utf8")});o.on("error",()=>{r++,J.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),o.write(s),o.end()})})}function gYt(e){try{return new URL(`${e}`)}catch{J.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var U$,hYt,EFe,bFe=v(()=>{st();U$="Spotlight",hYt=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:U$,setup(n){try{process.env.NODE_ENV&&process.env.NODE_ENV!=="development"&&J.warn("[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?")}catch{}mYt(n,t)}}}),EFe=hYt});import*as TFe from"node:util";function SYt(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:TFe.getSystemErrorMap().has(e.errno)}var yYt,vFe,AFe=v(()=>{yYt="NodeSystemError";vFe=(e={})=>({name:yYt,processEvent:(t,n,r)=>{if(!SYt(n.originalException))return t;let i=n.originalException,s={...i};!r.getOptions().sendDefaultPii&&e.includePaths!==!0&&(delete s.path,delete s.dest),t.contexts={...t.contexts,node_system_error:s};for(let o of t.exception?.values||[])o.value&&(i.path&&o.value.includes(i.path)&&(o.value=o.value.replace(`'${i.path}'`,"").trim()),i.dest&&o.value.includes(i.dest)&&(o.value=o.value.replace(`'${i.dest}'`,"").trim()));return t}})});import*as j$ from"node:http";var Gp,Cq,RFe=v(()=>{Gp=Symbol("AgentBaseInternalState"),Cq=class extends j$.Agent{constructor(t){super(t),this[Gp]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:n}=new Error;return typeof n!="string"?!1:n.split(` -`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}createSocket(t,n,r){let i={...n,secureEndpoint:this.isSecureEndpoint(n)};Promise.resolve().then(()=>this.connect(t,i)).then(s=>{if(s instanceof j$.Agent)return s.addRequest(t,i);this[Gp].currentSocket=s,super.createSocket(t,n,r)},r)}createConnection(){let t=this[Gp].currentSocket;if(this[Gp].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Gp].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Gp]&&(this[Gp].defaultPort=t)}get protocol(){return this[Gp].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Gp]&&(this[Gp].protocol=t)}}});function Mq(...e){J.log("[https-proxy-agent:parse-proxy-response]",...e)}function wFe(e){return new Promise((t,n)=>{let r=0,i=[];function s(){let l=e.read();l?u(l):e.once("readable",s)}function o(){e.removeListener("end",a),e.removeListener("error",c),e.removeListener("readable",s)}function a(){o(),Mq("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),Mq("onerror %o",l),n(l)}function u(l){i.push(l),r+=l.length;let d=Buffer.concat(i,r),f=d.indexOf(`\r +`):""}function jQ(e,t){let n=-1;for(let r=0;rr%2===0&&n===t)}function TUe(e,t){let n=IYt(e),r=t.statusCode,i=cP(r);Wl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function IYt(e){try{let t=BH(e.origin,e.path),n=My(t),r={url:Dy(n),"http.method":e.method||"GET"};return n.search&&(r["http.query"]=n.search),n.hash&&(r["http.fragment"]=n.hash),r}catch{return{}}}function BH(e,t="/"){try{return new URL(t,e).toString()}catch{let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}}var FQ,qH,RYt,vUe=v(()=>{st();MQ();FQ="sentry-trace",qH="baggage",RYt="traceparent"});import*as dR from"diagnostics_channel";var AUe,RUe,z_,qQ=v(()=>{Ce();AUe=Se(fr(),1),RUe=Se(Jt(),1);st();lR();vUe();z_=class extends RUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Nn,t),this._channelSubs=[],this._propagationDecisionMap=new du(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs=[]}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this)))}_onRequestCreated({request:t}){let n=this.getConfig();if(!(n.enabled!==!1))return;let i=this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,i),!i&&n.tracePropagation!==!1&&bUe(t,this._propagationDecisionMap)}_onResponseHeaders({request:t,response:n}){let r=this.getConfig();if(!(r.enabled!==!1))return;let s=r.breadcrumbs,o=typeof s>"u"?!0:s,a=this._ignoreOutgoingRequestsMap.get(t);o&&!a&&TUe(t,n)}_subscribeToChannel(t,n){let r=Am>18||Am===18&&gP>=19,i;if(r)dR.subscribe?.(t,n),i=()=>dR.unsubscribe?.(t,n);else{let s=dR.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,AUe.isTracingSuppressed)(Ve.active()))return!0;let n=BH(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var xYt,OYt,PYt,wUe,kUe=v(()=>{LH();qQ();xYt="NodeFetch",OYt=rt(`${xYt}.sentry`,z_,e=>e),PYt=((e={})=>({name:"NodeFetch",setupOnce(){OYt(e)}})),wUe=PYt});var GQ=w(GH=>{"use strict";Object.defineProperty(GH,"__esModule",{value:!0});GH.AbstractAsyncHooksContextManager=void 0;var NYt=Y("events"),CYt=["addListener","on","once","prependListener","prependOnceListener"],BQ=class{bind(t,n){return n instanceof NYt.EventEmitter?this._bindEventEmitter(t,n):typeof n=="function"?this._bindFunction(t,n):n}_bindFunction(t,n){let r=this,i=function(...s){return r.with(t,()=>n.apply(this,s))};return Object.defineProperty(i,"length",{enumerable:!1,configurable:!0,writable:!1,value:n.length}),i}_bindEventEmitter(t,n){return this._getPatchMap(n)!==void 0||(this._createPatchMap(n),CYt.forEach(i=>{n[i]!==void 0&&(n[i]=this._patchAddListener(n,n[i],t))}),typeof n.removeListener=="function"&&(n.removeListener=this._patchRemoveListener(n,n.removeListener)),typeof n.off=="function"&&(n.off=this._patchRemoveListener(n,n.off)),typeof n.removeAllListeners=="function"&&(n.removeAllListeners=this._patchRemoveAllListeners(n,n.removeAllListeners))),n}_patchRemoveListener(t,n){let r=this;return function(i,s){let o=r._getPatchMap(t)?.[i];if(o===void 0)return n.call(this,i,s);let a=o.get(s);return n.call(this,i,a||s)}}_patchRemoveAllListeners(t,n){let r=this;return function(i){let s=r._getPatchMap(t);return s!==void 0&&(arguments.length===0?r._createPatchMap(t):s[i]!==void 0&&delete s[i]),n.apply(this,arguments)}}_patchAddListener(t,n,r){let i=this;return function(s,o){if(i._wrapped)return n.call(this,s,o);let a=i._getPatchMap(t);a===void 0&&(a=i._createPatchMap(t));let c=a[s];c===void 0&&(c=new WeakMap,a[s]=c);let u=i.bind(r,o);c.set(o,u),i._wrapped=!0;try{return n.call(this,s,u)}finally{i._wrapped=!1}}}_createPatchMap(t){let n=Object.create(null);return t[this._kOtListeners]=n,n}_getPatchMap(t){return t[this._kOtListeners]}_kOtListeners=Symbol("OtListeners");_wrapped=!1};GH.AbstractAsyncHooksContextManager=BQ});var IUe=w(zH=>{"use strict";Object.defineProperty(zH,"__esModule",{value:!0});zH.AsyncHooksContextManager=void 0;var MYt=(Ce(),ke(Ze)),DYt=Y("async_hooks"),LYt=GQ(),zQ=class extends LYt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=DYt.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){return this._stack[this._stack.length-1]??MYt.ROOT_CONTEXT}with(t,n,r,...i){this._enterContext(t);try{return n.call(r,...i)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(t,n){if(n==="TIMERWRAP")return;let r=this._stack[this._stack.length-1];r!==void 0&&this._contexts.set(t,r)}_destroy(t){this._contexts.delete(t)}_before(t){let n=this._contexts.get(t);n!==void 0&&this._enterContext(n)}_after(){this._exitContext()}_enterContext(t){this._stack.push(t)}_exitContext(){this._stack.pop()}};zH.AsyncHooksContextManager=zQ});var xUe=w(VH=>{"use strict";Object.defineProperty(VH,"__esModule",{value:!0});VH.AsyncLocalStorageContextManager=void 0;var UYt=(Ce(),ke(Ze)),FYt=Y("async_hooks"),jYt=GQ(),VQ=class extends jYt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new FYt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??UYt.ROOT_CONTEXT}with(t,n,r,...i){let s=r==null?n:n.bind(r);return this._asyncLocalStorage.run(t,s,...i)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}};VH.AsyncLocalStorageContextManager=VQ});var OUe=w(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});fR.AsyncLocalStorageContextManager=fR.AsyncHooksContextManager=void 0;var HYt=IUe();Object.defineProperty(fR,"AsyncHooksContextManager",{enumerable:!0,get:function(){return HYt.AsyncHooksContextManager}});var qYt=xUe();Object.defineProperty(fR,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return qYt.AsyncLocalStorageContextManager}})});var WQ=w(pR=>{"use strict";Object.defineProperty(pR,"__esModule",{value:!0});pR._clearDefaultServiceNameCache=pR.defaultServiceName=void 0;var yP;function BYt(){if(yP===void 0)try{let e=globalThis.process.argv0;yP=e?`unknown_service:${e}`:"unknown_service"}catch{yP="unknown_service"}return yP}pR.defaultServiceName=BYt;function GYt(){yP=void 0}pR._clearDefaultServiceNameCache=GYt});var PUe=w(WH=>{"use strict";Object.defineProperty(WH,"__esModule",{value:!0});WH.isPromiseLike=void 0;var zYt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";WH.isPromiseLike=zYt});var ZQ=w(qp=>{"use strict";Object.defineProperty(qp,"__esModule",{value:!0});qp.defaultResource=qp.emptyResource=qp.resourceFromDetectedResource=qp.resourceFromAttributes=void 0;var EP=(Ce(),ke(Ze)),KQ=fr(),V_=(Pn(),ke(Mr)),VYt=WQ(),SP=PUe(),KH=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=NUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,SP.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,SP.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=NUe(this._rawAttributes),this._schemaUrl=ZYt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,SP.isPromiseLike)(n)?[t,n.catch(r=>{EP.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function ZYt(e){if(typeof e=="string"||e===void 0)return e;EP.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function JYt(e,t){let n=e?.schemaUrl,r=t?.schemaUrl,i=n===void 0||n==="",s=r===void 0||r==="";if(i)return r;if(s||n===r)return n;EP.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var MUe=w(YH=>{"use strict";Object.defineProperty(YH,"__esModule",{value:!0});YH.detectResources=void 0;var CUe=(Ce(),ke(Ze)),JQ=ZQ(),XYt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,JQ.resourceFromDetectedResource)(n.detect(e));return CUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return CUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,JQ.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,JQ.emptyResource)());YH.detectResources=XYt});var LUe=w(ZH=>{"use strict";Object.defineProperty(ZH,"__esModule",{value:!0});ZH.envDetector=void 0;var QYt=(Ce(),ke(Ze)),$Yt=(Pn(),ke(Mr)),DUe=fr(),XQ=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,DUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,DUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){QYt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[$Yt.ATTR_SERVICE_NAME]=i),{attributes:n}}_parseResourceAttributes(t){if(!t)return{};let n={},r=t.split(this._COMMA_SEPARATOR);for(let i of r){let s=i.split(this._LABEL_KEY_VALUE_SPLITTER);if(s.length!==2)throw new Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${i}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[o,a]=s,c=o.trim(),u=a.trim();if(c.length===0)throw new Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${i}".`);let l,d;try{l=decodeURIComponent(c),d=decodeURIComponent(u)}catch(f){throw new Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${i}": ${f instanceof Error?f.message:f}`)}if(l.length>this._MAX_LENGTH)throw new Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${l}".`);if(d.length>this._MAX_LENGTH)throw new Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${l}".`);n[l]=d}return n}};ZH.envDetector=new XQ});var _P=w(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.ATTR_WEBENGINE_VERSION=Je.ATTR_WEBENGINE_NAME=Je.ATTR_WEBENGINE_DESCRIPTION=Je.ATTR_SERVICE_NAMESPACE=Je.ATTR_SERVICE_INSTANCE_ID=Je.ATTR_PROCESS_RUNTIME_VERSION=Je.ATTR_PROCESS_RUNTIME_NAME=Je.ATTR_PROCESS_RUNTIME_DESCRIPTION=Je.ATTR_PROCESS_PID=Je.ATTR_PROCESS_OWNER=Je.ATTR_PROCESS_EXECUTABLE_PATH=Je.ATTR_PROCESS_EXECUTABLE_NAME=Je.ATTR_PROCESS_COMMAND_ARGS=Je.ATTR_PROCESS_COMMAND=Je.ATTR_OS_VERSION=Je.ATTR_OS_TYPE=Je.ATTR_K8S_POD_NAME=Je.ATTR_K8S_NAMESPACE_NAME=Je.ATTR_K8S_DEPLOYMENT_NAME=Je.ATTR_K8S_CLUSTER_NAME=Je.ATTR_HOST_TYPE=Je.ATTR_HOST_NAME=Je.ATTR_HOST_IMAGE_VERSION=Je.ATTR_HOST_IMAGE_NAME=Je.ATTR_HOST_IMAGE_ID=Je.ATTR_HOST_ID=Je.ATTR_HOST_ARCH=Je.ATTR_CONTAINER_NAME=Je.ATTR_CONTAINER_IMAGE_TAGS=Je.ATTR_CONTAINER_IMAGE_NAME=Je.ATTR_CONTAINER_ID=Je.ATTR_CLOUD_REGION=Je.ATTR_CLOUD_PROVIDER=Je.ATTR_CLOUD_AVAILABILITY_ZONE=Je.ATTR_CLOUD_ACCOUNT_ID=void 0;Je.ATTR_CLOUD_ACCOUNT_ID="cloud.account.id";Je.ATTR_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone";Je.ATTR_CLOUD_PROVIDER="cloud.provider";Je.ATTR_CLOUD_REGION="cloud.region";Je.ATTR_CONTAINER_ID="container.id";Je.ATTR_CONTAINER_IMAGE_NAME="container.image.name";Je.ATTR_CONTAINER_IMAGE_TAGS="container.image.tags";Je.ATTR_CONTAINER_NAME="container.name";Je.ATTR_HOST_ARCH="host.arch";Je.ATTR_HOST_ID="host.id";Je.ATTR_HOST_IMAGE_ID="host.image.id";Je.ATTR_HOST_IMAGE_NAME="host.image.name";Je.ATTR_HOST_IMAGE_VERSION="host.image.version";Je.ATTR_HOST_NAME="host.name";Je.ATTR_HOST_TYPE="host.type";Je.ATTR_K8S_CLUSTER_NAME="k8s.cluster.name";Je.ATTR_K8S_DEPLOYMENT_NAME="k8s.deployment.name";Je.ATTR_K8S_NAMESPACE_NAME="k8s.namespace.name";Je.ATTR_K8S_POD_NAME="k8s.pod.name";Je.ATTR_OS_TYPE="os.type";Je.ATTR_OS_VERSION="os.version";Je.ATTR_PROCESS_COMMAND="process.command";Je.ATTR_PROCESS_COMMAND_ARGS="process.command_args";Je.ATTR_PROCESS_EXECUTABLE_NAME="process.executable.name";Je.ATTR_PROCESS_EXECUTABLE_PATH="process.executable.path";Je.ATTR_PROCESS_OWNER="process.owner";Je.ATTR_PROCESS_PID="process.pid";Je.ATTR_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description";Je.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name";Je.ATTR_PROCESS_RUNTIME_VERSION="process.runtime.version";Je.ATTR_SERVICE_INSTANCE_ID="service.instance.id";Je.ATTR_SERVICE_NAMESPACE="service.namespace";Je.ATTR_WEBENGINE_DESCRIPTION="webengine.description";Je.ATTR_WEBENGINE_NAME="webengine.name";Je.ATTR_WEBENGINE_VERSION="webengine.version"});var XH=w(JH=>{"use strict";Object.defineProperty(JH,"__esModule",{value:!0});JH.execAsync=void 0;var e5t=Y("child_process"),t5t=Y("util");JH.execAsync=t5t.promisify(e5t.exec)});var UUe=w(QH=>{"use strict";Object.defineProperty(QH,"__esModule",{value:!0});QH.getMachineId=void 0;var n5t=XH(),r5t=(Ce(),ke(Ze));async function i5t(){try{let t=(await(0,n5t.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` +`).find(r=>r.includes("IOPlatformUUID"));if(!t)return;let n=t.split('" = "');if(n.length===2)return n[1].slice(0,-1)}catch(e){r5t.diag.debug(`error reading machine id: ${e}`)}}QH.getMachineId=i5t});var FUe=w($H=>{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.getMachineId=void 0;var s5t=Y("fs"),o5t=(Ce(),ke(Ze));async function a5t(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await s5t.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){o5t.diag.debug(`error reading machine id: ${n}`)}}$H.getMachineId=a5t});var HUe=w(eq=>{"use strict";Object.defineProperty(eq,"__esModule",{value:!0});eq.getMachineId=void 0;var c5t=Y("fs"),u5t=XH(),jUe=(Ce(),ke(Ze));async function l5t(){try{return(await c5t.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){jUe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,u5t.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){jUe.diag.debug(`error reading machine id: ${e}`)}}eq.getMachineId=l5t});var BUe=w(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});tq.getMachineId=void 0;var qUe=Y("process"),d5t=XH(),f5t=(Ce(),ke(Ze));async function p5t(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";qUe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in qUe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,d5t.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){f5t.diag.debug(`error reading machine id: ${n}`)}}tq.getMachineId=p5t});var GUe=w(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.getMachineId=void 0;var h5t=(Ce(),ke(Ze));async function m5t(){h5t.diag.debug("could not read machine-id: unsupported platform")}nq.getMachineId=m5t});var zUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.getMachineId=void 0;var g5t=Y("process"),W_;async function y5t(){if(!W_)switch(g5t.platform){case"darwin":W_=(await Promise.resolve().then(()=>Se(UUe()))).getMachineId;break;case"linux":W_=(await Promise.resolve().then(()=>Se(FUe()))).getMachineId;break;case"freebsd":W_=(await Promise.resolve().then(()=>Se(HUe()))).getMachineId;break;case"win32":W_=(await Promise.resolve().then(()=>Se(BUe()))).getMachineId;break;default:W_=(await Promise.resolve().then(()=>Se(GUe()))).getMachineId;break}return W_()}rq.getMachineId=y5t});var QQ=w(hR=>{"use strict";Object.defineProperty(hR,"__esModule",{value:!0});hR.normalizeType=hR.normalizeArch=void 0;var S5t=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};hR.normalizeArch=S5t;var E5t=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};hR.normalizeType=E5t});var WUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.hostDetector=void 0;var $Q=_P(),VUe=Y("os"),_5t=zUe(),b5t=QQ(),e$=class{detect(t){return{attributes:{[$Q.ATTR_HOST_NAME]:(0,VUe.hostname)(),[$Q.ATTR_HOST_ARCH]:(0,b5t.normalizeArch)((0,VUe.arch)()),[$Q.ATTR_HOST_ID]:(0,_5t.getMachineId)()}}}};iq.hostDetector=new e$});var ZUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.osDetector=void 0;var KUe=_P(),YUe=Y("os"),T5t=QQ(),t$=class{detect(t){return{attributes:{[KUe.ATTR_OS_TYPE]:(0,T5t.normalizeType)((0,YUe.platform)()),[KUe.ATTR_OS_VERSION]:(0,YUe.release)()}}}};sq.osDetector=new t$});var JUe=w(oq=>{"use strict";Object.defineProperty(oq,"__esModule",{value:!0});oq.processDetector=void 0;var v5t=(Ce(),ke(Ze)),Rm=_P(),A5t=Y("os"),n$=class{detect(t){let n={[Rm.ATTR_PROCESS_PID]:process.pid,[Rm.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[Rm.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[Rm.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[Rm.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[Rm.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[Rm.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[Rm.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=A5t.userInfo();n[Rm.ATTR_PROCESS_OWNER]=r.username}catch(r){v5t.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};oq.processDetector=new n$});var XUe=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.serviceInstanceIdDetector=void 0;var R5t=_P(),w5t=Y("crypto"),r$=class{detect(t){return{attributes:{[R5t.ATTR_SERVICE_INSTANCE_ID]:(0,w5t.randomUUID)()}}}};aq.serviceInstanceIdDetector=new r$});var QUe=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.serviceInstanceIdDetector=Bp.processDetector=Bp.osDetector=Bp.hostDetector=void 0;var k5t=WUe();Object.defineProperty(Bp,"hostDetector",{enumerable:!0,get:function(){return k5t.hostDetector}});var I5t=ZUe();Object.defineProperty(Bp,"osDetector",{enumerable:!0,get:function(){return I5t.osDetector}});var x5t=JUe();Object.defineProperty(Bp,"processDetector",{enumerable:!0,get:function(){return x5t.processDetector}});var O5t=XUe();Object.defineProperty(Bp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return O5t.serviceInstanceIdDetector}})});var $Ue=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var cq=QUe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return cq.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return cq.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return cq.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return cq.serviceInstanceIdDetector}})});var eFe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.noopDetector=mR.NoopDetector=void 0;var uq=class{detect(){return{attributes:{}}}};mR.NoopDetector=uq;mR.noopDetector=new uq});var tFe=w(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.noopDetector=fu.serviceInstanceIdDetector=fu.processDetector=fu.osDetector=fu.hostDetector=fu.envDetector=void 0;var P5t=LUe();Object.defineProperty(fu,"envDetector",{enumerable:!0,get:function(){return P5t.envDetector}});var lq=$Ue();Object.defineProperty(fu,"hostDetector",{enumerable:!0,get:function(){return lq.hostDetector}});Object.defineProperty(fu,"osDetector",{enumerable:!0,get:function(){return lq.osDetector}});Object.defineProperty(fu,"processDetector",{enumerable:!0,get:function(){return lq.processDetector}});Object.defineProperty(fu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return lq.serviceInstanceIdDetector}});var N5t=eFe();Object.defineProperty(fu,"noopDetector",{enumerable:!0,get:function(){return N5t.noopDetector}})});var s$=w(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.defaultServiceName=ls.emptyResource=ls.defaultResource=ls.resourceFromAttributes=ls.serviceInstanceIdDetector=ls.processDetector=ls.osDetector=ls.hostDetector=ls.envDetector=ls.detectResources=void 0;var C5t=MUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return C5t.detectResources}});var bP=tFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return bP.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return bP.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return bP.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return bP.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return bP.serviceInstanceIdDetector}});var i$=ZQ();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return i$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return i$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return i$.emptyResource}});var M5t=WQ();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return M5t.defaultServiceName}})});var nFe=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.ExceptionEventName=void 0;dq.ExceptionEventName="exception"});var rFe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.SpanImpl=void 0;var ua=(Ce(),ke(Ze)),la=fr(),K_=(Pn(),ke(Mr)),D5t=nFe(),o$=class{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:ua.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_recordEndMetrics;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(t){let n=Date.now();if(this._spanContext=t.spanContext,this._performanceStartTime=la.otperformance.now(),this._performanceOffset=n-(this._performanceStartTime+la.otperformance.timeOrigin),this._startTimeProvided=t.startTime!=null,this._spanLimits=t.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit??0,this._spanProcessor=t.spanProcessor,this.name=t.name,this.parentSpanContext=t.parentSpanContext,this.kind=t.kind,t.links)for(let r of t.links)this.addLink(r);this.startTime=this._getTime(t.startTime??n),this.resource=t.resource,this.instrumentationScope=t.scope,this._recordEndMetrics=t.recordEndMetrics,t.attributes!=null&&this.setAttributes(t.attributes),this._spanProcessor.onStart(this,t.context)}spanContext(){return this._spanContext}setAttribute(t,n){if(n==null||this._isSpanEnded())return this;if(t.length===0)return ua.diag.warn(`Invalid attribute key: ${t}`),this;if(!(0,la.isAttributeValue)(n))return ua.diag.warn(`Invalid attribute value set for key: ${t}`),this;let{attributeCountLimit:r}=this._spanLimits,i=!Object.prototype.hasOwnProperty.call(this.attributes,t);return r!==void 0&&this._attributesCount>=r&&i?(this._droppedAttributesCount++,this):(this.attributes[t]=this._truncateToSize(n),i&&this._attributesCount++,this)}setAttributes(t){for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&this.setAttribute(n,t[n]);return this}addEvent(t,n,r){if(this._isSpanEnded())return this;let{eventCountLimit:i}=this._spanLimits;if(i===0)return ua.diag.warn("No events allowed."),this._droppedEventsCount++,this;i!==void 0&&this.events.length>=i&&(this._droppedEventsCount===0&&ua.diag.debug("Dropping extra events."),this.events.shift(),this._droppedEventsCount++),(0,la.isTimeInput)(n)&&((0,la.isTimeInput)(r)||(r=n),n=void 0);let s=(0,la.sanitizeAttributes)(n),{attributePerEventCountLimit:o}=this._spanLimits,a={},c=0,u=0;for(let l in s){if(!Object.prototype.hasOwnProperty.call(s,l))continue;let d=s[l];if(o!==void 0&&u>=o){c++;continue}a[l]=this._truncateToSize(d),u++}return this.events.push({name:t,attributes:a,time:this._getTime(r),droppedAttributesCount:c}),this}addLink(t){if(this._isSpanEnded())return this;let{linkCountLimit:n}=this._spanLimits;if(n===0)return this._droppedLinksCount++,this;n!==void 0&&this.links.length>=n&&(this._droppedLinksCount===0&&ua.diag.debug("Dropping extra links."),this.links.shift(),this._droppedLinksCount++);let{attributePerLinkCountLimit:r}=this._spanLimits,i=(0,la.sanitizeAttributes)(t.attributes),s={},o=0,a=0;for(let u in i){if(!Object.prototype.hasOwnProperty.call(i,u))continue;let l=i[u];if(r!==void 0&&a>=r){o++;continue}s[u]=this._truncateToSize(l),a++}let c={context:t.context};return a>0&&(c.attributes=s),o>0&&(c.droppedAttributesCount=o),this.links.push(c),this}addLinks(t){for(let n of t)this.addLink(n);return this}setStatus(t){if(this._isSpanEnded())return this;if(t.code===ua.SpanStatusCode.UNSET)return this;if(this.status.code===ua.SpanStatusCode.OK)return this;let n={code:t.code};return t.code===ua.SpanStatusCode.ERROR&&(typeof t.message=="string"?n.message=t.message:t.message!=null&&ua.diag.warn(`Dropping invalid status.message of type '${typeof t.message}', expected 'string'`)),this.status=n,this}updateName(t){return this._isSpanEnded()?this:(this.name=t,this)}end(t){if(this._isSpanEnded()){ua.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}this.endTime=this._getTime(t),this._duration=(0,la.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0&&(ua.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0]),this._droppedEventsCount>0&&ua.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`),this._droppedLinksCount>0&&ua.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`),this._spanProcessor.onEnding&&this._spanProcessor.onEnding(this),this._recordEndMetrics?.(),this._ended=!0,this._spanProcessor.onEnd(this)}_getTime(t){if(typeof t=="number"&&t<=la.otperformance.now())return(0,la.hrTime)(t+this._performanceOffset);if(typeof t=="number")return(0,la.millisToHrTime)(t);if(t instanceof Date)return(0,la.millisToHrTime)(t.getTime());if((0,la.isTimeInputHrTime)(t))return t;if(this._startTimeProvided)return(0,la.millisToHrTime)(Date.now());let n=la.otperformance.now()-this._performanceStartTime;return(0,la.addHrTimes)(this.startTime,(0,la.millisToHrTime)(n))}isRecording(){return this._ended===!1}recordException(t,n){let r={};typeof t=="string"?r[K_.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[K_.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[K_.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[K_.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[K_.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[K_.ATTR_EXCEPTION_TYPE]||r[K_.ATTR_EXCEPTION_MESSAGE]?this.addEvent(D5t.ExceptionEventName,r,n):ua.diag.warn(`Failed to record an exception ${t}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let t=new Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);ua.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,t)}return this._ended}_truncateToLimitUtil(t,n){return t.length<=n?t:t.substring(0,n)}_truncateToSize(t){let n=this._attributeValueLengthLimit;return n<=0?(ua.diag.warn(`Attribute value limit must be positive, got ${n}`),t):typeof t=="string"?this._truncateToLimitUtil(t,n):Array.isArray(t)?t.map(r=>typeof r=="string"?this._truncateToLimitUtil(r,n):r):t}};fq.SpanImpl=o$});var gR=w(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});TP.SamplingDecision=void 0;var L5t;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(L5t=TP.SamplingDecision||(TP.SamplingDecision={}))});var hq=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.AlwaysOffSampler=void 0;var U5t=gR(),a$=class{shouldSample(){return{decision:U5t.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};pq.AlwaysOffSampler=a$});var gq=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.AlwaysOnSampler=void 0;var F5t=gR(),c$=class{shouldSample(){return{decision:F5t.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};mq.AlwaysOnSampler=c$});var d$=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.ParentBasedSampler=void 0;var yq=(Ce(),ke(Ze)),j5t=fr(),iFe=hq(),u$=gq(),l$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,j5t.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new u$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new u$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new iFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new u$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new iFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=yq.trace.getSpanContext(t);return!a||!(0,yq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&yq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&yq.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,n,r,i,s,o):this._localParentNotSampled.shouldSample(t,n,r,i,s,o)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};Sq.ParentBasedSampler=l$});var p$=w(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.TraceIdRatioBasedSampler=void 0;var H5t=(Ce(),ke(Ze)),sFe=gR(),f$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,H5t.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Eq.TraceIdRatioBasedSampler=f$});var g$=w(yR=>{"use strict";Object.defineProperty(yR,"__esModule",{value:!0});yR.buildSamplerFromEnv=yR.loadDefaultConfig=void 0;var m$=(Ce(),ke(Ze)),zp=fr(),oFe=hq(),h$=gq(),_q=d$(),aFe=p$(),Vp;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(Vp||(Vp={}));var bq=1;function q5t(){return{sampler:uFe(),forceFlushTimeoutMillis:3e4,generalLimits:{attributeValueLengthLimit:(0,zp.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,zp.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??128},spanLimits:{attributeValueLengthLimit:(0,zp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,zp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??128,linkCountLimit:(0,zp.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT")??128,eventCountLimit:(0,zp.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT")??128,attributePerEventCountLimit:(0,zp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT")??128,attributePerLinkCountLimit:(0,zp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT")??128}}}yR.loadDefaultConfig=q5t;function uFe(){let e=(0,zp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Vp.ParentBasedAlwaysOn;switch(e){case Vp.AlwaysOn:return new h$.AlwaysOnSampler;case Vp.AlwaysOff:return new oFe.AlwaysOffSampler;case Vp.ParentBasedAlwaysOn:return new _q.ParentBasedSampler({root:new h$.AlwaysOnSampler});case Vp.ParentBasedAlwaysOff:return new _q.ParentBasedSampler({root:new oFe.AlwaysOffSampler});case Vp.TraceIdRatio:return new aFe.TraceIdRatioBasedSampler(cFe());case Vp.ParentBasedTraceIdRatio:return new _q.ParentBasedSampler({root:new aFe.TraceIdRatioBasedSampler(cFe())});default:return m$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Vp.ParentBasedAlwaysOn}".`),new _q.ParentBasedSampler({root:new h$.AlwaysOnSampler})}}yR.buildSamplerFromEnv=uFe;function cFe(){let e=(0,zp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(m$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${bq}.`),bq):e<0||e>1?(m$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${bq}.`),bq):e}});var y$=w(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.reconfigureLimits=Zl.mergeConfig=Zl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Zl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var lFe=g$(),Tq=fr();Zl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Zl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function B5t(e){let t={sampler:(0,lFe.buildSamplerFromEnv)()},n=(0,lFe.loadDefaultConfig)(),r=Object.assign({},n,t,e);return r.generalLimits=Object.assign({},n.generalLimits,e.generalLimits||{}),r.spanLimits=Object.assign({},n.spanLimits,e.spanLimits||{}),r}Zl.mergeConfig=B5t;function G5t(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,Tq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,Tq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Zl.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,Tq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,Tq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Zl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Zl.reconfigureLimits=G5t});var dFe=w(vq=>{"use strict";Object.defineProperty(vq,"__esModule",{value:!0});vq.BatchSpanProcessorBase=void 0;var SR=(Ce(),ke(Ze)),wm=fr(),S$=class{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(t,n){this._exporter=t,this._maxExportBatchSize=typeof n?.maxExportBatchSize=="number"?n.maxExportBatchSize:(0,wm.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,wm.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,wm.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,wm.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new wm.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(SR.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}onStart(t,n){}onEnd(t){this._shutdownOnce.isCalled||(t.spanContext().traceFlags&SR.TraceFlags.SAMPLED)!==0&&this._addToBuffer(t)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>this.onShutdown()).then(()=>this._flushAll()).then(()=>this._exporter.shutdown())}_addToBuffer(t){if(this._finishedSpans.length>=this._maxQueueSize){this._droppedSpansCount===0&&SR.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(SR.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0),this._finishedSpans.push(t),this._maybeStartTimer()}_flushAll(){return new Promise((t,n)=>{let r=[],i=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let s=0,o=i;s{t()}).catch(n)})}_flushOneBatch(){return this._clearTimer(),this._finishedSpans.length===0?Promise.resolve():new Promise((t,n)=>{let r=setTimeout(()=>{n(new Error("Timeout"))},this._exportTimeoutMillis);SR.context.with((0,wm.suppressTracing)(SR.context.active()),()=>{let i;this._finishedSpans.length<=this._maxExportBatchSize?(i=this._finishedSpans,this._finishedSpans=[]):i=this._finishedSpans.splice(0,this._maxExportBatchSize);let s=()=>this._exporter.export(i,a=>{clearTimeout(r),a.code===wm.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,wm.globalErrorHandler)(a),n(a)})})})}_maybeStartTimer(){if(this._isExporting)return;let t=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{this._isExporting=!1,this._finishedSpans.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(n=>{this._isExporting=!1,(0,wm.globalErrorHandler)(n)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return t();this._timer===void 0&&(this._timer=setTimeout(()=>t(),this._scheduledDelayMillis),typeof this._timer!="number"&&this._timer.unref())}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}};vq.BatchSpanProcessorBase=S$});var fFe=w(Aq=>{"use strict";Object.defineProperty(Aq,"__esModule",{value:!0});Aq.BatchSpanProcessor=void 0;var z5t=dFe(),E$=class extends z5t.BatchSpanProcessorBase{onShutdown(){}};Aq.BatchSpanProcessor=E$});var mFe=w(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.RandomIdGenerator=void 0;var V5t=8,hFe=16,_$=class{generateTraceId=pFe(hFe);generateSpanId=pFe(V5t)};wq.RandomIdGenerator=_$;var Rq=Buffer.allocUnsafe(hFe);function pFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Rq[e-1]=1);return Rq.toString("hex",0,e)}}});var gFe=w(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});ER.RandomIdGenerator=ER.BatchSpanProcessor=void 0;var W5t=fFe();Object.defineProperty(ER,"BatchSpanProcessor",{enumerable:!0,get:function(){return W5t.BatchSpanProcessor}});var K5t=mFe();Object.defineProperty(ER,"RandomIdGenerator",{enumerable:!0,get:function(){return K5t.RandomIdGenerator}})});var b$=w(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});_R.RandomIdGenerator=_R.BatchSpanProcessor=void 0;var yFe=gFe();Object.defineProperty(_R,"BatchSpanProcessor",{enumerable:!0,get:function(){return yFe.BatchSpanProcessor}});Object.defineProperty(_R,"RandomIdGenerator",{enumerable:!0,get:function(){return yFe.RandomIdGenerator}})});var SFe=w(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});Wp.METRIC_OTEL_SDK_SPAN_STARTED=Wp.METRIC_OTEL_SDK_SPAN_LIVE=Wp.ATTR_OTEL_SPAN_SAMPLING_RESULT=Wp.ATTR_OTEL_SPAN_PARENT_ORIGIN=void 0;Wp.ATTR_OTEL_SPAN_PARENT_ORIGIN="otel.span.parent.origin";Wp.ATTR_OTEL_SPAN_SAMPLING_RESULT="otel.span.sampling_result";Wp.METRIC_OTEL_SDK_SPAN_LIVE="otel.sdk.span.live";Wp.METRIC_OTEL_SDK_SPAN_STARTED="otel.sdk.span.started"});var EFe=w(Iq=>{"use strict";Object.defineProperty(Iq,"__esModule",{value:!0});Iq.TracerMetrics=void 0;var kq=gR(),vP=SFe(),T$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(vP.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(vP.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=Z5t(n);if(this.startedSpans.add(1,{[vP.ATTR_OTEL_SPAN_PARENT_ORIGIN]:Y5t(t),[vP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===kq.SamplingDecision.NOT_RECORD)return()=>{};let i={[vP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};Iq.TracerMetrics=T$;function Y5t(e){return e?e.isRemote?"remote":"local":"none"}function Z5t(e){switch(e){case kq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case kq.SamplingDecision.RECORD:return"RECORD_ONLY";case kq.SamplingDecision.NOT_RECORD:return"DROP"}}});var _Fe=w(xq=>{"use strict";Object.defineProperty(xq,"__esModule",{value:!0});xq.VERSION=void 0;xq.VERSION="2.6.1"});var bFe=w(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});Pq.Tracer=void 0;var jo=(Ce(),ke(Ze)),Oq=fr(),J5t=rFe(),X5t=y$(),Q5t=b$(),$5t=EFe(),eZt=_Fe(),v$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,X5t.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new Q5t.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",eZt.VERSION):jo.createNoopMeter();this._tracerMetrics=new $5t.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,Oq.isTracingSuppressed)(r))return jo.diag.debug("Instrumentation suppressed, returning Noop Span"),jo.trace.wrapSpanContext(jo.INVALID_SPAN_CONTEXT);let s=i?.spanContext(),o=this._idGenerator.generateSpanId(),a,c,u;!s||!jo.trace.isSpanContextValid(s)?c=this._idGenerator.generateTraceId():(c=s.traceId,u=s.traceState,a=s);let l=n.kind??jo.SpanKind.INTERNAL,d=(n.links??[]).map(S=>({context:S.context,attributes:(0,Oq.sanitizeAttributes)(S.attributes)})),f=(0,Oq.sanitizeAttributes)(n.attributes),p=this._sampler.shouldSample(r,c,t,l,f,d),h=this._tracerMetrics.startSpan(s,p.decision);u=p.traceState??u;let m=p.decision===jo.SamplingDecision.RECORD_AND_SAMPLED?jo.TraceFlags.SAMPLED:jo.TraceFlags.NONE,g={traceId:c,spanId:o,traceFlags:m,traceState:u};if(p.decision===jo.SamplingDecision.NOT_RECORD)return jo.diag.debug("Recording is off, propagating context in a non-recording span"),jo.trace.wrapSpanContext(g);let y=(0,Oq.sanitizeAttributes)(Object.assign(f,p.attributes));return new J5t.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:r,spanContext:g,name:t,kind:l,links:d,parentSpanContext:a,attributes:y,startTime:n.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits,recordEndMetrics:h})}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??jo.context.active(),u=this.startSpan(t,s,c),l=jo.trace.setSpan(c,u);return jo.context.with(l,a,void 0,u)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}};Pq.Tracer=v$});var TFe=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.MultiSpanProcessor=void 0;var tZt=fr(),A$=class{_spanProcessors;constructor(t){this._spanProcessors=t}forceFlush(){let t=[];for(let n of this._spanProcessors)t.push(n.forceFlush());return new Promise(n=>{Promise.all(t).then(()=>{n()}).catch(r=>{(0,tZt.globalErrorHandler)(r||new Error("MultiSpanProcessor: forceFlush failed")),n()})})}onStart(t,n){for(let r of this._spanProcessors)r.onStart(t,n)}onEnding(t){for(let n of this._spanProcessors)n.onEnding&&n.onEnding(t)}onEnd(t){for(let n of this._spanProcessors)n.onEnd(t)}shutdown(){let t=[];for(let n of this._spanProcessors)t.push(n.shutdown());return new Promise((n,r)=>{Promise.all(t).then(()=>{n()},r)})}};Nq.MultiSpanProcessor=A$});var vFe=w(Y_=>{"use strict";Object.defineProperty(Y_,"__esModule",{value:!0});Y_.BasicTracerProvider=Y_.ForceFlushState=void 0;var nZt=fr(),rZt=s$(),iZt=bFe(),sZt=g$(),oZt=TFe(),aZt=y$(),bR;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(bR=Y_.ForceFlushState||(Y_.ForceFlushState={}));var R$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,nZt.merge)({},(0,sZt.loadDefaultConfig)(),(0,aZt.reconfigureLimits)(t));this._resource=n.resource??(0,rZt.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new oZt.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new iZt.Tracer({name:t,version:n,schemaUrl:r?.schemaUrl},this._config,this._resource,this._activeSpanProcessor)),this._tracers.get(i)}forceFlush(){let t=this._config.forceFlushTimeoutMillis,n=this._activeSpanProcessor._spanProcessors.map(r=>new Promise(i=>{let s,o=setTimeout(()=>{i(new Error(`Span processor did not completed within timeout period of ${t} ms`)),s=bR.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==bR.timeout&&(s=bR.resolved,i(s))}).catch(a=>{clearTimeout(o),s=bR.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==bR.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};Y_.BasicTracerProvider=R$});var AFe=w(Cq=>{"use strict";Object.defineProperty(Cq,"__esModule",{value:!0});Cq.ConsoleSpanExporter=void 0;var w$=fr(),k$=class{export(t,n){return this._sendSpans(t,n)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(t){return{resource:{attributes:t.resource.attributes},instrumentationScope:t.instrumentationScope,traceId:t.spanContext().traceId,parentSpanContext:t.parentSpanContext,traceState:t.spanContext().traceState?.serialize(),name:t.name,id:t.spanContext().spanId,kind:t.kind,timestamp:(0,w$.hrTimeToMicroseconds)(t.startTime),duration:(0,w$.hrTimeToMicroseconds)(t.duration),attributes:t.attributes,status:t.status,events:t.events,links:t.links}}_sendSpans(t,n){for(let r of t)console.dir(this._exportInfo(r),{depth:3});if(n)return n({code:w$.ExportResultCode.SUCCESS})}};Cq.ConsoleSpanExporter=k$});var wFe=w(Mq=>{"use strict";Object.defineProperty(Mq,"__esModule",{value:!0});Mq.InMemorySpanExporter=void 0;var RFe=fr(),I$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:RFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:RFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Mq.InMemorySpanExporter=I$});var kFe=w(Lq=>{"use strict";Object.defineProperty(Lq,"__esModule",{value:!0});Lq.SimpleSpanProcessor=void 0;var cZt=(Ce(),ke(Ze)),Dq=fr(),x$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Dq.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush&&await this._exporter.forceFlush()}onStart(t,n){}onEnd(t){if(this._shutdownOnce.isCalled||(t.spanContext().traceFlags&cZt.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Dq.globalErrorHandler)(r));this._pendingExports.add(n),n.finally(()=>this._pendingExports.delete(n))}async _doExport(t){t.resource.asyncAttributesPending&&await t.resource.waitForAsyncAttributes?.();let n=await Dq.internal._export(this._exporter,[t]);if(n.code!==Dq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Lq.SimpleSpanProcessor=x$});var IFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.NoopSpanProcessor=void 0;var O$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Uq.NoopSpanProcessor=O$});var P$=w(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});ti.SamplingDecision=ti.TraceIdRatioBasedSampler=ti.ParentBasedSampler=ti.AlwaysOnSampler=ti.AlwaysOffSampler=ti.NoopSpanProcessor=ti.SimpleSpanProcessor=ti.InMemorySpanExporter=ti.ConsoleSpanExporter=ti.RandomIdGenerator=ti.BatchSpanProcessor=ti.BasicTracerProvider=void 0;var uZt=vFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return uZt.BasicTracerProvider}});var xFe=b$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return xFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return xFe.RandomIdGenerator}});var lZt=AFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return lZt.ConsoleSpanExporter}});var dZt=wFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return dZt.InMemorySpanExporter}});var fZt=kFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return fZt.SimpleSpanProcessor}});var pZt=IFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return pZt.NoopSpanProcessor}});var hZt=hq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return hZt.AlwaysOffSampler}});var mZt=gq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return mZt.AlwaysOnSampler}});var gZt=d$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return gZt.ParentBasedSampler}});var yZt=p$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return yZt.TraceIdRatioBasedSampler}});var SZt=gR();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return SZt.SamplingDecision}})});function q$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function B$(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function EZt(e){return typeof e.kind=="number"}function _Zt(e){return!!e.status}function CFe(e){return!!e.name}function bZt(e){if(!B$(e))return{};let t=e.attributes[dy]||e.attributes[uA],n={url:t,"http.method":e.attributes[y_]||e.attributes[uO]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=My(t);n.url=Dy(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function TZt(e){return EZt(e)?e.kind:$r.INTERNAL}function RR(e){return e.getValue(V$)}function LFe(e,t){return e.setValue(V$,t)}function RZt(e,t){Gs(e,DFe,t)}function RP(e){return e[DFe]}function vR(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(z$)==="1":!1;if(t===Ha.SAMPLED)return!0;if(r)return!1;let i=n?n.get(G$):void 0,s=i?gm(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function UFe(e,t,n){let r=t[y_]||t[uO];if(r)return kZt({attributes:t,name:e,kind:n},r);let i=t[g_]||t[W8],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return wZt({attributes:t,name:e});let o=t[Wi]==="custom"?"custom":"route";if(t[rJ])return{...AP(e,t,"route"),op:"rpc"};if(t[nJ])return{...AP(e,t,o),op:"message"};let u=t[Y8];return u?{...AP(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function FFe(e){let t=B$(e)?e.attributes:{},n=CFe(e)?e.name:"",r=TZt(e);return UFe(n,t,r)}function wZt({attributes:e,name:t}){let n=e[zl];if(typeof n=="string")return{op:"db",description:n,source:e[Wi]||"custom"};if(e[Wi]==="custom")return{op:"db",description:t,source:"custom"};let r=e[K8];return{op:"db",description:r?r.toString():t,source:"task"}}function kZt({name:e,kind:t,attributes:n},r){let i=["http"];switch(t){case $r.CLIENT:i.push("client");break;case $r.SERVER:i.push("server");break}n["sentry.http.prefetch"]&&i.push("prefetch");let{urlPath:s,url:o,query:a,fragment:c,hasRoute:u}=xZt(n,t);if(!s)return{...AP(e,n),op:i.join(".")};let l=n[AR],d=`${r} ${s}`,f=l?`${d} (${IZt(l)})`:d,p=u||s==="/"?"route":"url",h={};o&&(h.url=o),a&&(h["http.query"]=a),c&&(h["http.fragment"]=c);let m=t===$r.CLIENT||t===$r.SERVER,y=!`${n[Rt]||"manual"}`.startsWith("auto"),E=n[Wi]==="custom",S=n[zl],_=!E&&S==null&&(m||!y),{description:b,source:T}=_?{description:f,source:p}:AP(e,n);return{op:i.join("."),description:b,source:T,data:h}}function IZt(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}function xZt(e,t){let n=e[Q8],r=e[uA]||e[dy],i=e[um],s=typeof r=="string"?My(r):void 0,o=s?Dy(s):void 0,a=s?.search||void 0,c=s?.hash||void 0;return typeof i=="string"?{urlPath:i,url:o,query:a,fragment:c,hasRoute:!0}:t===$r.SERVER&&typeof n=="string"?{urlPath:bm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:bm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function AP(e,t,n="custom"){let r=t[Wi]||n,i=t[zl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function jFe(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Wi],{description:o}=CFe(n)?FFe(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),Os()){let a=vR(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function HFe(){return jt.getActiveSpan()}function qFe({dsc:e,sampled:t}){let n=e?I_(e):void 0,r=new Cc.TraceState,i=n?r.set(G$,n):r;return t===!1?i.set(z$,"1"):i}function GFe(){return Array.from(BFe)}function Bq(e){BFe.add(e)}function zFe(e,t={}){let n=jt.getSpan(e);if(n?.spanContext().isRemote){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:void 0,sampled:vR(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:a.spanId,sampled:vR(a)}}let r=t.scope||RR(e)?.scope||Un(),i=t.client||ct(),s=r.getPropagationContext();return{dynamicSamplingContext:i?Up(i,r):void 0,traceId:s.traceId,spanId:s.propagationSpanId,sampled:s.sampled}}function VFe(e,{sentryTrace:t,baggage:n}){let r=MO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=gm(n);if(!s||c&&!Q7(c,u?.org_id))return e;let l=MZt({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function OZt(e,t,n){let r=WFe(VFe(e,t));return Ve.with(r,n)}function WFe(e){let t=RR(e),n={scope:t?t.scope:Un().clone(),isolationScope:t?t.isolationScope:vn()};return LFe(e,n)}function PZt(e){try{let t=e[N$];return Array.isArray(t)?t.join(","):t}catch{return}}function NZt(e){try{return e[Fq]}catch{return}}function CZt(e){let t=vt(e).data,n=t[uA]||t[dy];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(MFe);if(r)return r}function MZt({spanId:e,traceId:t,sampled:n,dsc:r}){let i=qFe({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?Ha.SAMPLED:Ha.NONE,traceState:i}}function KFe(e,t,n){let r=ZFe(),{name:i,parentSpan:s}=e;return eje(s)(()=>{let a=QFe(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Cc.suppressTracing)(a):a,l=JFe(e);if(!Os()){let d=(0,Cc.isTracingSuppressed)(u)?u:(0,Cc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(L$(f),Ve.with(a,()=>af(()=>t(f),()=>{vt(f).status===void 0&&f.setStatus({code:as.ERROR})},n?()=>f.end():void 0)))))}return r.startActiveSpan(i,l,u,d=>(L$(d),af(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function DZt(e,t){return KFe(e,t,!0)}function LZt(e,t){return KFe(e,n=>t(n,()=>n.end()),!1)}function UZt(e){let t=ZFe(),{name:n,parentSpan:r}=e;return eje(r)(()=>{let s=QFe(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Cc.suppressTracing)(s):s,c=JFe(e);Os()||(a=(0,Cc.isTracingSuppressed)(a)?a:(0,Cc.suppressTracing)(a));let u=t.startSpan(n,c,a);return L$(u),u})}function YFe(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Un()))}function ZFe(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Nn)}function JFe(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?XFe(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function XFe(e){return e<9999999999?e*1e3:e}function L$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?XFe(n):n)}function QFe(e,t){let n=FZt(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=vR(r.spanContext()),c=cs(r),u=Ps(c),l=qFe({dsc:u,sampled:a}),d={traceId:o,spanId:s,isRemote:!0,traceFlags:a?Ha.SAMPLED:Ha.NONE,traceState:l};return jt.setSpanContext(i,d)}function FZt(e){if(e){let t=RP(e);if(t)return t}return Ve.active()}function jZt(e,t){return OZt(Ve.active(),e,t)}function HZt(e){let t=Ka(),n=Ya(),r={traceId:t,spanId:n,isRemote:!0,traceFlags:Ha.NONE},i=jt.setSpanContext(Ve.active(),r);return Ve.with(i,()=>(Un().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function $Fe(e,t){let n=RP(t),r=n&&jt.getSpan(n),i=r?Oy(r):k_(t);return[r?Ps(r):Up(e,t),i]}function eje(e){return e!==void 0?t=>YFe(e,t):t=>t()}function qZt(e){let t=(0,Cc.suppressTracing)(Ve.active());return Ve.with(t,e)}function tje(e){e.on("preprocessEvent",t=>{let n=HFe();if(!n||t.type==="transaction")return;t.contexts={trace:Oy(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ps(r),...t.sdkProcessingMetadata},t})}function BZt({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&RP(t))??Ve.active();if(e){let{scope:l}=rf(e);i=l&&RP(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=zFe(i,{scope:t,client:n}),u={"sentry-trace":Iy(s,o,a),baggage:I_(c)};return r&&(u.traceparent=xy(s,o,a)),u}function nje(){function e(){let a=Ve.active(),c=RR(a);return c||{scope:MA(),isolationScope:Gl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=RP(a)||Ve.active();return Ve.with(u.setValue(M$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(C$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(D$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}B7({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:DZt,startSpanManual:LZt,startInactiveSpan:UZt,getActiveSpan:HFe,suppressTracing:qZt,getTraceData:BZt,continueTrace:jZt,startNewTrace:HZt,withActiveSpan:YFe})}function rje(e){class t extends e{constructor(...r){super(...r),Bq("SentryContextManager")}with(r,i,s,...o){let a=RR(r),c=a?.scope||Un(),u=a?.isolationScope||vn(),l=r.getValue(C$)===!0,d=r.getValue(M$),f=r.getValue(D$),p=d||c.clone(),h=f||(l?u.clone():u),y=LFe(r,{scope:p,isolationScope:h}).deleteValue(C$).deleteValue(M$).deleteValue(D$);return RZt(p,y),super.with(y,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:V$}}}return t}function GZt(e){let t=new Map;for(let n of e)zZt(t,n);return Array.from(t,function([n,r]){return r})}function ije(e){return e.attributes[H$]===!0?void 0:q$(e)}function zZt(e,t){let n=t.spanContext().spanId,r=ije(t);if(!r){U$(e,{id:n,span:t,children:[]});return}let i=VZt(e,r),s=U$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function VZt(e,t){let n=e.get(t);return n||U$(e,{id:t,children:[]})}function U$(e,t){let n=e.get(t.id);return n?.span?n:n&&!n.span?(n.span=t.span,n.parentNode=t.parentNode,n):(e.set(t.id,t),t)}function oje(e){let t=B$(e)?e.attributes:{},n=_Zt(e)?e.status:void 0;if(n){if(n.code===as.OK)return{code:1};if(n.code===as.ERROR){if(typeof n.message>"u"){let i=OFe(t);if(i)return i}return n.message&&WZt(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=OFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function OFe(e){let t=e[cm]||e[m_],n=e[iJ],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return mm(r);if(typeof n=="string")return{code:2,message:sje[n]||"unknown_error"}}function KZt(e){let t=e.attributes,n=t[Rt],r=t[zt],i=t[Wi];return{origin:n,op:r,source:i}}function YZt(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=aje(e),o=rf(e),a=e.attributes[nf],c={[Wi]:s,[nf]:a,[zt]:t,[Rt]:i,...r,...cje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=q$(e),p=oje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:P_(p),links:O_(u)},m=c[cm],g=typeof m=="number"?{response:{status_code:m}}:void 0;return{contexts:{trace:h,otel:{resource:e.resource.attributes},...g},spans:[],start_timestamp:uu(e.startTime),timestamp:uu(e.endTime),transaction:n,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:o.scope,capturedSpanIsolationScope:o.isolationScope,sampleRate:a,dynamicSamplingContext:Ps(e)},...s&&{transaction_info:{source:s}}}}function j$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{j$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=q$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=aje(r),g={[Rt]:m,[zt]:f,...cje(c),...h},y=oje(r),E={span_id:s,trace_id:o,data:g,description:p,parent_span_id:a,start_timestamp:uu(u),timestamp:uu(l)||void 0,status:P_(y),op:f,origin:m,measurements:N_(r.events),links:O_(d)};t.push(E),e.children.forEach(S=>{j$(S,t,n)})}function aje(e){let{op:t,source:n,origin:r}=KZt(e),{op:i,description:s,source:o,data:a}=FFe(e),c=t||i,u=n||o,l={...a,...ZZt(e)};return{op:c,description:s,source:u,origin:r,data:l}}function cje(e){let t={...e};return delete t[nf],delete t[H$],delete t[zl],t}function ZZt(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[m_];r&&(n[cm]=r);let i=bZt(e);return i.url&&(n.url=i.url),i["http.query"]&&(n["http.query"]=i["http.query"].slice(1)),i["http.fragment"]&&(n["http.fragment"]=i["http.fragment"].slice(1)),n}function JZt(e,t){let n=jt.getSpan(t),r=RR(t);n&&!n.spanContext().isRemote&&qA(n,e),n?.spanContext().isRemote&&e.setAttribute(H$,!0),t===rA&&(r={scope:MA(),isolationScope:Gl()}),r&&NO(e,r.scope,r.isolationScope),qO(e),ct()?.emit("spanStart",e)}function XZt(e){BO(e),ct()?.emit("spanEnd",e)}function QZt(e,t,n){let r=e.spanContext();if(am(r)&&r.traceId===t){if(r.isRemote){let s=vR(e.spanContext());return Ky&&Z.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=vR(r);return Ky&&Z.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function TR({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=$Zt(t,n);return i!==void 0&&(s=s.set(AZt,`${i}`)),r!==void 0&&(s=s.set(vZt,`${r}`)),e==null?{decision:Wy.SamplingDecision.NOT_RECORD,traceState:s}:e===Wy.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(z$,"1")}:{decision:e,traceState:s}}function $Zt(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Cc.TraceState,s=t[uA]||t[dy];return s&&typeof s=="string"&&(i=i.set(MFe,s)),i}function e6t(e){let t=jt.getSpan(e);return t&&am(t.spanContext())?t:void 0}var Cc,Wy,H$,AR,Fq,N$,G$,z$,MFe,vZt,AZt,V$,C$,M$,D$,DFe,Ky,BFe,jq,sje,WZt,PFe,NFe,F$,Hq,qq,wR=v(()=>{Pn();st();Ce();Ce();Cc=Se(fr(),1),Wy=Se(P$(),1),H$="sentry.parentIsRemote",AR="sentry.graphql.operation";Fq="sentry-trace",N$="baggage",G$="sentry.dsc",z$="sentry.sampled_not_recording",MFe="sentry.url",vZt="sentry.sample_rand",AZt="sentry.sample_rate",V$=rl("sentry_scopes"),C$=rl("sentry_fork_isolation_scope"),M$=rl("sentry_fork_set_scope"),D$=rl("sentry_fork_set_isolation_scope"),DFe="_scopeContext";Ky=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;BFe=new Set;jq=class extends Cc.W3CBaggagePropagator{constructor(){super(),Bq("SentryPropagator"),this._urlMatchesTargetsMap=new du(100)}inject(t,n,r){if((0,Cc.isTracingSuppressed)(t)){Ky&&Z.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&CZt(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!L_(s,o,this._urlMatchesTargetsMap)){Ky&&Z.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=PZt(n),u=NZt(n),l=Jd.getBaggage(t)||Jd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=zFe(t);if(c){let m=x_(c);m&&Object.entries(m).forEach(([g,y])=>{!u&&g.startsWith(Lp)||(l=l.setEntry(g,{value:y}))})}!u&&d&&(l=Object.entries(d).reduce((m,[g,y])=>y?m.setEntry(`${Lp}${g}`,{value:y}):m,l)),!u&&f&&f!==f_&&(r.set(n,Fq,Iy(f,p,h)),a&&r.set(n,"traceparent",xy(f,p,h))),super.inject(Jd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Fq),s=r.get(n,N$),o=i?Array.isArray(i)?i[0]:i:void 0;return WFe(VFe(t,{sentryTrace:o,baggage:s}))}fields(){return[Fq,N$,"traceparent"]}};sje={1:"cancelled",2:"unknown_error",3:"invalid_argument",4:"deadline_exceeded",5:"not_found",6:"already_exists",7:"permission_denied",8:"resource_exhausted",9:"failed_precondition",10:"aborted",11:"out_of_range",12:"unimplemented",13:"internal_error",14:"unavailable",15:"data_loss",16:"unauthenticated"},WZt=e=>Object.values(sje).includes(e);PFe=1e3,NFe=300,F$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||NFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Bl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=UX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Bl()/1e3);if(this._lastCleanupTimestampInS!==n){let o=0;this._finishedSpanBuckets.forEach((a,c)=>{a&&a.timestampInS<=n-this._finishedSpanBucketSize&&(o+=a.spans.size,this._finishedSpanBuckets[c]=void 0)}),o>0&&Ky&&Z.log(`SpanExporter dropped ${o} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`),this._lastCleanupTimestampInS=n}let r=n%this._finishedSpanBucketSize,i=this._finishedSpanBuckets[r]||{timestampInS:n,spans:new Set};this._finishedSpanBuckets[r]=i,i.spans.add(t),this._spansToBucketEntry.set(t,i);let s=ije(t);(!s||this._sentSpans.has(s))&&this._debouncedFlush()}flush(){let t=this._finishedSpanBuckets.flatMap(o=>o?Array.from(o.spans):[]);this._flushSentSpanCache();let n=this._maybeSend(t),r=n.size,i=t.length-r;Ky&&Z.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Bl()+NFe*1e3;for(let o of n){this._sentSpans.set(o.spanContext().spanId,s);let a=this._spansToBucketEntry.get(o);a&&a.spans.delete(o)}this._debouncedFlush.cancel()}clear(){this._finishedSpanBuckets=this._finishedSpanBuckets.fill(void 0),this._sentSpans.clear(),this._debouncedFlush.cancel()}_maybeSend(t){let n=GZt(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=YZt(o);if(s.parentNode&&this._sentSpans.has(s.parentNode.id)){let l=a.contexts?.trace?.data;l&&(l["sentry.parent_span_already_sent"]=!0)}let c=a.spans||[];for(let l of s.children)j$(l,c,r);a.spans=c.length>PFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,PFe):c;let u=N_(o.events);u&&(a.measurements=u),Qj(a)}return r}_flushSentSpanCache(){let t=Bl();for(let[n,r]of this._sentSpans.entries())r<=t&&this._sentSpans.delete(n)}_nodeIsCompletedRootNodeOrHasSentParent(t){return!!t.span&&(!t.parentNode||this._sentSpans.has(t.parentNode.id))}_getCompletedRootNodes(t){return t.filter(n=>this._nodeIsCompletedRootNodeOrHasSentParent(n))}};Hq=class{constructor(t){Bq("SentrySpanProcessor"),this._exporter=new F$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){JZt(t,n)}onEnd(t){XZt(t),this._exporter.export(t)}},qq=class{constructor(t){this._client=t,Bq("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=e6t(t),u=c?.spanContext();if(!Os(a))return TR({decision:void 0,context:t,spanAttributes:s});let l=s[uO]||s[y_];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return TR({decision:void 0,context:t,spanAttributes:s});let d=c?QZt(c,n,r):void 0;if(!(!c||u?.isRemote))return TR({decision:d?Wy.SamplingDecision.RECORD_AND_SAMPLED:Wy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=UFe(r,s,i),g={...h,...s};m&&(g[zt]=m);let y={decision:!0};if(this._client.emit("beforeSampling",{spanAttributes:g,spanName:p,parentSampled:d,parentContext:u},y),!y.decision)return TR({decision:void 0,context:t,spanAttributes:s});let{isolationScope:E}=RR(t)??{},S=u?.traceState?u.traceState.get(G$):void 0,_=S?gm(S):void 0,b=al(_?.sample_rand)??Do(),[T,A,R]=GO(a,{name:p,attributes:g,normalizedRequest:E?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:d,parentSampleRate:al(_?.sample_rate)},b),x=`${l}`.toUpperCase();return x==="OPTIONS"||x==="HEAD"?(Ky&&Z.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),TR({decision:Wy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:b,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Ky&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...TR({decision:T?Wy.SamplingDecision.RECORD_AND_SAMPLED:Wy.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:b,downstreamTraceSampleRate:R?A:void 0}),attributes:{[nf]:R?A:void 0}})}toString(){return"SentrySampler"}}});var uje,W$,lje=v(()=>{uje=Se(OUe(),1);wR();W$=rje(uje.AsyncLocalStorageContextManager)});function K$(){il.disable(),il.setLogger({error:Z.error,warn:Z.warn,info:Z.log,debug:Z.log,verbose:Z.log},ho.DEBUG)}var dje=v(()=>{Ce();st()});import*as Y$ from"node:diagnostics_channel";function n6t(e,t){let n=!1,r;e.on("spawn",()=>{if(e.spawnfile==="/usr/bin/sw_vers"){n=!0;return}r={spawnfile:e.spawnfile},t.includeChildProcessArgs&&(r.spawnargs=e.spawnargs)}).on("exit",i=>{n||(n=!0,i!==null&&i!==0&&Wl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Wl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function r6t(e,t){let n;e.on("online",()=>{n=e.threadId}).on("error",r=>{t.captureWorkerErrors!==!1?Wt(r,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(n)}}}):Wl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var t6t,fje,pje=v(()=>{st();t6t="ChildProcess",fje=(e={})=>({name:t6t,setup(){Y$.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&n6t(t.process,e)}),Y$.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&r6t(t.worker,e)})}})});import{execFile as i6t}from"node:child_process";import{readFile as s6t,readdir as o6t}from"node:fs";import*as Ho from"node:os";import{join as a6t}from"node:path";import{promisify as mje}from"node:util";function f6t(e){if(e.app?.app_memory&&(e.app.app_memory=process.memoryUsage().rss),e.app?.free_memory&&typeof process.availableMemory=="function"){let t=process.availableMemory?.();t!=null&&(e.app.free_memory=t)}return e.device?.free_memory&&(e.device.free_memory=Ho.freemem()),e}async function p6t(){let e=Ho.platform();switch(e){case"darwin":return _6t();case"linux":return b6t();default:return{name:y6t[e]||e,version:Ho.release()}}}function h6t(){try{if(typeof process.versions.icu!="string")return;let e=new Date(9e8);if(new Intl.DateTimeFormat("es",{month:"long"}).format(e)==="enero"){let n=Intl.DateTimeFormat().resolvedOptions();return{locale:n.locale,timezone:n.timeZone}}}catch{}}function m6t(){let e=process.memoryUsage().rss,n={app_start_time:new Date(Date.now()-process.uptime()*1e3).toISOString(),app_memory:e};if(typeof process.availableMemory=="function"){let r=process.availableMemory?.();r!=null&&(n.free_memory=r)}return n}function g6t(e){let t={},n;try{n=Ho.uptime()}catch{}if(typeof n=="number"&&(t.boot_time=new Date(Date.now()-n*1e3).toISOString()),t.arch=Ho.arch(),(e===!0||e.memory)&&(t.memory_size=Ho.totalmem(),t.free_memory=Ho.freemem()),e===!0||e.cpu){let r=Ho.cpus(),i=r?.[0];i&&(t.processor_count=r.length,t.cpu_description=i.model,t.processor_frequency=i.speed)}return t}function Kp(e,t){let n=e.exec(t);return n?n[1]:void 0}async function _6t(){let e={kernel_version:Ho.release(),name:"Mac OS X",version:`10.${Number(Ho.release().split(".")[0])-4}`};try{let t=await new Promise((n,r)=>{i6t("/usr/bin/sw_vers",(i,s)=>{if(i){r(i);return}n(s)})});e.name=Kp(/^ProductName:\s+(.*)$/m,t),e.version=Kp(/^ProductVersion:\s+(.*)$/m,t),e.build=Kp(/^BuildVersion:\s+(.*)$/m,t)}catch{}return e}function hje(e){return e.split(" ")[0].toLowerCase()}async function b6t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await u6t("/etc"),n=S6t.find(a=>t.includes(a.name));if(!n)return e;let r=a6t("/etc",n.name),i=(await c6t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(hje(a))>=0)||s[0];let o=hje(e.name);e.version=E6t[o]?.(i)}catch{}return e}function T6t(){return process.env.VERCEL?{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION}:process.env.AWS_REGION?{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV}:process.env.GCP_PROJECT?{"cloud.provider":"gcp"}:process.env.ALIYUN_REGION_ID?{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID}:process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME?{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME}:process.env.IBM_CLOUD_REGION?{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION}:process.env.TENCENTCLOUD_REGION?{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE}:process.env.NETLIFY?{"cloud.provider":"netlify"}:process.env.FLY_REGION?{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION}:process.env.DYNO?{"cloud.provider":"heroku"}:void 0}var c6t,u6t,l6t,d6t,gje,y6t,S6t,E6t,yje=v(()=>{c6t=mje(s6t),u6t=mje(o6t),l6t="Context",d6t=((e={})=>{let t,n={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...e};async function r(s){t===void 0&&(t=i());let o=f6t(await t);return s.contexts={...s.contexts,app:{...o.app,...s.contexts?.app},os:{...o.os,...s.contexts?.os},device:{...o.device,...s.contexts?.device},culture:{...o.culture,...s.contexts?.culture},cloud_resource:{...o.cloud_resource,...s.contexts?.cloud_resource}},s}async function i(){let s={};if(n.os&&(s.os=await p6t()),n.app&&(s.app=m6t()),n.device&&(s.device=g6t(n.device)),n.culture){let o=h6t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=T6t()),s}return{name:l6t,processEvent(s){return r(s)}}}),gje=d6t;y6t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},S6t=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],E6t={alpine:e=>e,arch:e=>Kp(/distrib_release=(.*)/,e),centos:e=>Kp(/release ([^ ]+)/,e),debian:e=>e,fedora:e=>Kp(/release (..)/,e),mint:e=>Kp(/distrib_release=(.*)/,e),red:e=>Kp(/release ([^ ]+)/,e),suse:e=>Kp(/VERSION = (.*)\n/,e),ubuntu:e=>Kp(/distrib_release=(.*)/,e)}});import{createReadStream as v6t}from"node:fs";import{createInterface as A6t}from"node:readline";function x6t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function O6t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function P6t(e){return e.lineno!==void 0&&e.lineno>I6t||e.colno!==void 0&&e.colno>k6t}function N6t(e,t){let n=Z$.get(e);if(n===void 0)return!1;for(let r=t[0];r<=t[1];r++)if(n[r]===void 0)return!1;return!0}function C6t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Eje(r,t),s=[];for(;;){if(n===e.length-1){s.push(i);break}let o=e[n+1];if(typeof o!="number")break;o<=i[1]?i[1]=o+t:(s.push(i),i=Eje(o,t)),n++}return s}function M6t(e,t,n){return new Promise((r,i)=>{let s=v6t(e),o=A6t({input:s});function a(){s.destroy(),r()}let c=0,u=0,l=t[u];if(l===void 0){a();return}let d=l[0],f=l[1];function p(h){_je.set(e,1),Qt&&Z.error(`Failed to read file: ${e}. Error: ${h}`),o.close(),o.removeAllListeners(),a()}s.on("error",p),o.on("error",p),o.on("close",a),o.on("line",h=>{if(c++,!(c=f)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}d=m[0],f=m[1]}})})}async function D6t(e,t){let n={};if(t>0&&e.exception?.values){for(let s of e.exception.values)if(s.stacktrace?.frames?.length)for(let o=s.stacktrace.frames.length-1;o>=0;o--){let a=s.stacktrace.frames[o],c=a?.filename;if(!a||typeof c!="string"||typeof a.lineno!="number"||O6t(c)||P6t(a))continue;n[c]||(n[c]=[]),n[c].push(a.lineno)}}let r=Object.keys(n);if(r.length==0)return e;let i=[];for(let s of r){if(_je.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=C6t(o,t);if(a.every(u=>N6t(s,u)))continue;let c=x6t(Z$,s,{});i.push(M6t(s,a,c))}if(await Promise.all(i).catch(()=>{Qt&&Z.log("Failed to read one or more source files and resolve context lines")}),t>0&&e.exception?.values)for(let s of e.exception.values)s.stacktrace?.frames&&s.stacktrace.frames.length>0&&L6t(s.stacktrace.frames,t,Z$);return e}function L6t(e,t,n){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let i=n.get(r.filename);if(i===void 0)continue;U6t(r.lineno,r,t,i)}}function Sje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function U6t(e,t,n,r){if(t.lineno===void 0||r===void 0){Qt&&Z.error("Cannot resolve context for frame with no lineno or file contents");return}t.pre_context=[];for(let s=bje(e,n);s{st();lf();Z$=new du(10),_je=new du(20),R6t=7,w6t="ContextLines",k6t=1e3,I6t=1e4;F6t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:R6t;return{name:w6t,processEvent(n){return D6t(n,t)}}}),vje=F6t});async function zq(){if(Gq===void 0)try{Gq=!!(await import("node:inspector")).url()}catch{Gq=!1}return Gq}var Gq,J$=v(()=>{});function wje(e,t,n){let r=0,i=5,s=0;return setInterval(()=>{s===0?r>e&&(i*=2,n(i),i>86400&&(i=86400),s=i):(s-=1,s===0&&t()),r=0},1e3).unref(),()=>{r+=1}}function Rje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function Vq(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||Rje(e)&&Rje(t)}var wP,X$=v(()=>{wP="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as j6t}from"node:worker_threads";function kje(...e){Z.log("[LocalVariables]",...e)}var H6t,Ije,xje=v(()=>{st();J$();X$();H6t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Ije=((e={})=>{function t(s,o){let a=(s.stacktrace?.frames||[]).filter(c=>c.function!=="new Promise");for(let c=0;c{o.terminate()}),o.once("error",a=>{kje("Worker error",a)}),o.once("exit",a=>{kje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await zq()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}let a={...e,debug:Z.isEnabled()};r().then(()=>{try{i(a)}catch(c){Z.error("Failed to start worker",c)}},c=>{Z.error("Failed to start inspector",c)})},processEvent(s,o){return n(s,o)}}})});function Oje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function q6t(e,t){if(t!==void 0)return Oje(e(t,1))}function Pje(e){let t=[],n=!1;function r(o){t=[],!n&&(n=!0,e(o))}t.push(r);function i(o){t.push(o)}function s(o){let a=t.pop()||r;try{a(o)}catch{r(o)}}return{add:i,next:s}}var Q$,B6t,G6t,Nje,Cje=v(()=>{st();lR();J$();X$();Q$=class e{constructor(t){this._session=t}static async create(t){if(t)return t;let n=await import("node:inspector");return new e(new n.Session)}configureAndConnect(t,n){this._session.connect(),this._session.on("Debugger.paused",r=>{t(r,()=>{this._session.post("Debugger.resume")})}),this._session.post("Debugger.enable"),this._session.post("Debugger.setPauseOnExceptions",{state:n?"all":"uncaught"})}setPauseOnExceptions(t){this._session.post("Debugger.setPauseOnExceptions",{state:t?"all":"uncaught"})}getLocalVariables(t,n){this._getProperties(t,r=>{let{add:i,next:s}=Pje(n);for(let o of r)if(o.value?.objectId&&o.value.className==="Array"){let a=o.value.objectId;i(c=>this._unrollArray(a,o.name,c,s))}else if(o.value?.objectId&&o.value.className==="Object"){let a=o.value.objectId;i(c=>this._unrollObject(a,o.name,c,s))}else o.value&&i(a=>this._unrollOther(o,a,s));s({})})}_getProperties(t,n){this._session.post("Runtime.getProperties",{objectId:t,ownProperties:!0},(r,i)=>{n(r?[]:i.result)})}_unrollArray(t,n,r,i){this._getProperties(t,s=>{r[n]=s.filter(o=>o.name!=="length"&&!isNaN(parseInt(o.name,10))).sort((o,a)=>parseInt(o.name,10)-parseInt(a.name,10)).map(o=>o.value?.value),i(r)})}_unrollObject(t,n,r,i){this._getProperties(t,s=>{r[n]=s.map(o=>[o.name,o.value?.value]).reduce((o,[a,c])=>(o[a]=c,o),{}),i(r)})}_unrollOther(t,n,r){t.value&&("value"in t.value?t.value.value===void 0||t.value.value===null?n[t.name]=`<${t.value.value}>`:n[t.name]=t.value.value:"description"in t.value&&t.value.type!=="function"?n[t.name]=`<${t.value.description}>`:t.value.type==="undefined"&&(n[t.name]="")),r(n)}},B6t="LocalVariables",G6t=((e={},t)=>{let n=new du(20),r,i=!1;function s(u){let l=Oje(u.stacktrace?.frames);if(l===void 0)return;let d=n.remove(l);if(d===void 0)return;let f=(u.stacktrace?.frames||[]).filter(p=>p.function!=="new Promise");for(let p=0;p= v18.");return}if(await zq()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await Q$.create(t),p=(m,{params:{reason:g,data:y,callFrames:E}},S)=>{if(g!=="exception"&&g!=="promiseRejection"){S();return}r?.();let _=q6t(m,y.description);if(_==null){S();return}let{add:b,next:T}=Pje(A=>{n.set(_,A),S()});for(let A=0;AC.type==="local"),N=k.className==="global"||!k.className?x:`${k.className}.${x}`;if(P?.object.objectId===void 0)b(C=>{C[A]={function:N},T(C)});else{let C=P.object.objectId;b(F=>f.getLocalVariables(C,V=>{F[A]={function:N,vars:V},T(F)}))}}T([])},h=e.captureAllExceptions!==!1;if(f.configureAndConnect((m,g)=>p(l.stackParser,m,g),h),h){let m=e.maxExceptionsPerSecond||50;r=wje(m,()=>{Z.log("Local variables rate-limit lifted."),f.setPauseOnExceptions(!0)},g=>{Z.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${g} seconds.`),f.setPauseOnExceptions(!1)})}i=!0}catch(f){Z.log("The `LocalVariables` integration failed to start.",f)}}return{name:B6t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Nje=G6t});var Mje,Dje=v(()=>{lR();xje();Cje();Mje=(e={})=>df.major<19?Nje(e):Ije(e)});function kP(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function Uje(){return kP()?!1:Am>=21||Am===20&&gP>=6||Am===18&&gP>=19?!0:(Lje||(Lje=!0,xs(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)})),!1)}var Lje,Wq=v(()=>{st();lR()});import{existsSync as z6t,readFileSync as jje}from"node:fs";import{dirname as V6t,join as Hje}from"node:path";function Z6t(){try{return Y.cache?Object.keys(Y.cache):[]}catch{return[]}}function J6t(){return{...K6t,...$6t(),...kP()?X6t():{}}}function X6t(){let e=Y.main?.paths||[],t=Z6t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=V6t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=Hje(a,"package.json");if(r.add(a),!z6t(c))return o();try{let u=JSON.parse(jje(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function Fje(){return $$||($$=J6t()),$$}function Q6t(){try{let e=Hje(process.cwd(),"package.json");return JSON.parse(jje(e,"utf8"))}catch{return{}}}function $6t(){let e=Q6t();return{...e.dependencies,...e.devDependencies}}var $$,W6t,K6t,Y6t,qje,Bje=v(()=>{Wq();W6t="Modules",K6t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,Y6t=(()=>({name:W6t,processEvent(e){return e.modules={...e.modules,...Fje()},e},getModules:Fje})),qje=Y6t});function IP(e){xs(()=>{console.error(e)});let t=ct();if(t===void 0){Qt&&Z.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let n=t.getOptions(),r=n?.shutdownTimeout&&n.shutdownTimeout>0?n.shutdownTimeout:e8t;t.close(r).then(i=>{i||Qt&&Z.warn("We reached the timeout for emptying the request buffer, still exiting now!"),global.process.exit(1)},i=>{Qt&&Z.error(i)})}var e8t,eee=v(()=>{st();lf();e8t=2e3});import{isMainThread as t8t}from"worker_threads";function r8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=IP;t.onFatalError?u=t.onFatalError:a.onFatalError&&(u=a.onFatalError);let d=global.process.listeners("uncaughtException").filter(p=>p.name!=="domainUncaughtExceptionClear"&&p.tag!=="sentry_tracingErrorCallback"&&p._errorHandler!==!0).length===0,f=t.exitEvenIfOtherHandlersAreRegistered||d;r?f&&(s?(Qt&&Z.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),IP(c)):i||(i=!0,setTimeout(()=>{s||(s=!0,u(o,c))},2e3))):(o=c,r=!0,ct()===e&&Wt(c,{originalException:c,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}}),!s&&f&&(s=!0,u(c)))},{_errorHandler:!0})}var n8t,Gje,zje=v(()=>{st();lf();eee();n8t="OnUncaughtException",Gje=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:n8t,setup(n){t8t&&global.process.on("uncaughtException",r8t(n,t))}}}});function a8t(e){if(typeof e!="object"||e===null)return{name:"",message:String(e??"")};let t=e,n=typeof t.name=="string"?t.name:"",r=typeof t.message=="string"?t.message:String(e);return{name:n,message:r}}function c8t(e,t){let n=e.name===void 0||fm(t.name,e.name,!0),r=e.message===void 0||fm(t.message,e.message);return n&&r}function u8t(e,t){let n=a8t(t);return e.some(r=>c8t(r,n))}function l8t(e,t){return function(r,i){if(ct()!==e||u8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>zA(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),d8t(r,t.mode)}}function d8t(e,t){let n="This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:";t==="warn"?xs(()=>{console.warn(n),console.error(e&&typeof e=="object"&&"stack"in e?e.stack:e)}):t==="strict"&&(xs(()=>{console.warn(n)}),IP(e))}var i8t,s8t,o8t,Vje,Wje=v(()=>{st();eee();i8t="OnUnhandledRejection",s8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],o8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...s8t,...e.ignore??[]]};return{name:i8t,setup(n){global.process.on("unhandledRejection",l8t(n,t))}}}),Vje=o8t});var f8t,Kje,Yje=v(()=>{st();f8t="ProcessSession",Kje=()=>({name:f8t,setupOnce(){eH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&WO()})}})});import*as Zje from"node:http";function h8t(e,t){let n=m8t(t.sidecarUrl);if(!n)return;let r=0;e.on("beforeEnvelope",i=>{if(r>3){Z.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let s=HO(i);VA(()=>{let o=Zje.request({method:"POST",path:n.pathname,hostname:n.hostname,port:n.port,headers:{"Content-Type":"application/x-sentry-envelope"}},a=>{a.statusCode&&a.statusCode>=200&&a.statusCode<400&&(r=0),a.on("data",()=>{}),a.on("end",()=>{}),a.setEncoding("utf8")});o.on("error",()=>{r++,Z.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),o.write(s),o.end()})})}function m8t(e){try{return new URL(`${e}`)}catch{Z.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var tee,p8t,Jje,Xje=v(()=>{st();tee="Spotlight",p8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:tee,setup(n){try{process.env.NODE_ENV&&process.env.NODE_ENV!=="development"&&Z.warn("[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?")}catch{}h8t(n,t)}}}),Jje=p8t});import*as Qje from"node:util";function y8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:Qje.getSystemErrorMap().has(e.errno)}var g8t,$je,eHe=v(()=>{g8t="NodeSystemError";$je=(e={})=>({name:g8t,processEvent:(t,n,r)=>{if(!y8t(n.originalException))return t;let i=n.originalException,s={...i};!r.getOptions().sendDefaultPii&&e.includePaths!==!0&&(delete s.path,delete s.dest),t.contexts={...t.contexts,node_system_error:s};for(let o of t.exception?.values||[])o.value&&(i.path&&o.value.includes(i.path)&&(o.value=o.value.replace(`'${i.path}'`,"").trim()),i.dest&&o.value.includes(i.dest)&&(o.value=o.value.replace(`'${i.dest}'`,"").trim()));return t}})});import*as nee from"node:http";var Yp,Kq,tHe=v(()=>{Yp=Symbol("AgentBaseInternalState"),Kq=class extends nee.Agent{constructor(t){super(t),this[Yp]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:n}=new Error;return typeof n!="string"?!1:n.split(` +`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}createSocket(t,n,r){let i={...n,secureEndpoint:this.isSecureEndpoint(n)};Promise.resolve().then(()=>this.connect(t,i)).then(s=>{if(s instanceof nee.Agent)return s.addRequest(t,i);this[Yp].currentSocket=s,super.createSocket(t,n,r)},r)}createConnection(){let t=this[Yp].currentSocket;if(this[Yp].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Yp].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Yp]&&(this[Yp].defaultPort=t)}get protocol(){return this[Yp].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Yp]&&(this[Yp].protocol=t)}}});function Yq(...e){Z.log("[https-proxy-agent:parse-proxy-response]",...e)}function nHe(e){return new Promise((t,n)=>{let r=0,i=[];function s(){let l=e.read();l?u(l):e.once("readable",s)}function o(){e.removeListener("end",a),e.removeListener("error",c),e.removeListener("readable",s)}function a(){o(),Yq("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),Yq("onerror %o",l),n(l)}function u(l){i.push(l),r+=l.length;let d=Buffer.concat(i,r),f=d.indexOf(`\r \r -`);if(f===-1){Mq("have not received end of HTTP headers yet..."),s();return}let p=d.subarray(0,f).toString("ascii").split(`\r -`),h=p.shift();if(!h)return e.destroy(),n(new Error("No header received from proxy CONNECT response"));let m=h.split(" "),y=+(m[1]||0),g=m.slice(2).join(" "),E={};for(let S of p){if(!S)continue;let _=S.indexOf(":");if(_===-1)return e.destroy(),n(new Error(`Invalid header from proxy CONNECT response: "${S}"`));let b=S.slice(0,_).toLowerCase(),T=S.slice(_+1).trimStart(),A=E[b];typeof A=="string"?E[b]=[A,T]:Array.isArray(A)?A.push(T):E[b]=T}Mq("got proxy server response: %o %o",h,E),o(),t({connect:{statusCode:y,statusText:g,headers:E},buffered:d})}e.on("error",c),e.on("end",a),s()})}var kFe=v(()=>{st()});import*as Tm from"node:net";import*as F$ from"node:tls";function bN(...e){J.log("[https-proxy-agent]",...e)}function _Yt(e){e.resume()}function IFe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var TN,xFe=v(()=>{st();RFe();kFe();TN=class extends Cq{static __initStatic(){this.protocols=["http","https"]}constructor(t,n){super(n),this.options={},this.proxy=typeof t=="string"?new URL(t):t,this.proxyHeaders=n?.headers??{},bN("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let r=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),i=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...n?IFe(n,"headers"):null,host:r,port:i}}async connect(t,n){let{proxy:r}=this;if(!n.host)throw new TypeError('No "host" provided');let i;if(r.protocol==="https:"){bN("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=F$.connect({...this.connectOpts,servername:f&&Tm.isIP(f)?void 0:f})}else bN("Creating `net.Socket`: %o",this.connectOpts),i=Tm.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=Tm.isIPv6(n.host)?`[${n.host}]`:n.host,a=`CONNECT ${o}:${n.port} HTTP/1.1\r +`);if(f===-1){Yq("have not received end of HTTP headers yet..."),s();return}let p=d.subarray(0,f).toString("ascii").split(`\r +`),h=p.shift();if(!h)return e.destroy(),n(new Error("No header received from proxy CONNECT response"));let m=h.split(" "),g=+(m[1]||0),y=m.slice(2).join(" "),E={};for(let S of p){if(!S)continue;let _=S.indexOf(":");if(_===-1)return e.destroy(),n(new Error(`Invalid header from proxy CONNECT response: "${S}"`));let b=S.slice(0,_).toLowerCase(),T=S.slice(_+1).trimStart(),A=E[b];typeof A=="string"?E[b]=[A,T]:Array.isArray(A)?A.push(T):E[b]=T}Yq("got proxy server response: %o %o",h,E),o(),t({connect:{statusCode:g,statusText:y,headers:E},buffered:d})}e.on("error",c),e.on("end",a),s()})}var rHe=v(()=>{st()});import*as km from"node:net";import*as ree from"node:tls";function xP(...e){Z.log("[https-proxy-agent]",...e)}function S8t(e){e.resume()}function iHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var OP,sHe=v(()=>{st();tHe();rHe();OP=class extends Kq{static __initStatic(){this.protocols=["http","https"]}constructor(t,n){super(n),this.options={},this.proxy=typeof t=="string"?new URL(t):t,this.proxyHeaders=n?.headers??{},xP("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let r=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),i=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...n?iHe(n,"headers"):null,host:r,port:i}}async connect(t,n){let{proxy:r}=this;if(!n.host)throw new TypeError('No "host" provided');let i;if(r.protocol==="https:"){xP("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=ree.connect({...this.connectOpts,servername:f&&km.isIP(f)?void 0:f})}else xP("Creating `net.Socket`: %o",this.connectOpts),i=km.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=km.isIPv6(n.host)?`[${n.host}]`:n.host,a=`CONNECT ${o}:${n.port} HTTP/1.1\r `;if(r.username||r.password){let f=`${decodeURIComponent(r.username)}:${decodeURIComponent(r.password)}`;s["Proxy-Authorization"]=`Basic ${Buffer.from(f).toString("base64")}`}s.Host=`${o}:${n.port}`,s["Proxy-Connection"]||(s["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let f of Object.keys(s))a+=`${f}: ${s[f]}\r -`;let c=wFe(i);i.write(`${a}\r -`);let{connect:u,buffered:l}=await c;if(t.emit("proxyConnect",u),this.emit("proxyConnect",u,t),u.statusCode===200){if(t.once("socket",_Yt),n.secureEndpoint){bN("Upgrading socket connection to TLS");let f=n.servername||n.host;return F$.connect({...IFe(n,"host","path","port"),socket:i,servername:Tm.isIP(f)?void 0:f})}return i}i.destroy();let d=new Tm.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{bN("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};TN.__initStatic()});import*as EYt from"node:http";import*as bYt from"node:https";import{Readable as TYt}from"node:stream";import{createGzip as vYt}from"node:zlib";function RYt(e){return new TYt({read(){this.push(e),this.push(null)}})}function OFe(e){let t;try{t=new URL(e.url)}catch{return Rs(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),qO(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=wYt(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?bYt:EYt,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new TN(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=kYt(e,e.httpModule??i,o);return qO(e,a)}function wYt(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function kYt(e,t,n){let{hostname:r,pathname:i,port:s,protocol:o,search:a}=new URL(e.url);return function(u){return new Promise((l,d)=>{FA(()=>{let f=RYt(u.body),p={...e.headers};u.body.length>AYt&&(p["content-encoding"]="gzip",f=f.pipe(vYt()));let h=r.startsWith("["),m=t.request({method:"POST",agent:n,headers:p,hostname:h?r.slice(1,-1):r,path:`${i}${a}`,port:s,protocol:o,ca:e.caCerts},y=>{y.on("data",()=>{}),y.on("end",()=>{}),y.setEncoding("utf8");let g=y.headers["retry-after"]??null,E=y.headers["x-sentry-rate-limits"]??null;l({statusCode:y.statusCode,headers:{"retry-after":g,"x-sentry-rate-limits":Array.isArray(E)?E[0]||null:E}})});m.on("error",d),f.pipe(m)})})}}var AYt,NFe=v(()=>{st();xFe();AYt=1024*32});function PFe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=VA(process.env.SENTRY_SPOTLIGHT,{strict:!0}),n=t===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return e===!0?n??!0:t??n}var CFe=v(()=>{st()});import{posix as IYt,sep as xYt}from"node:path";function MFe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function DFe(e=process.argv[1]?AX(process.argv[1]):process.cwd(),t=xYt==="\\"){let n=t?MFe(e):e;return r=>{if(!r)return;let i=t?MFe(r):r,{dir:s,base:o,ext:a}=IYt.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(o=o.slice(0,a.length*-1));let c=decodeURIComponent(o);s||(s=".");let u=s.lastIndexOf("/node_modules");if(u>-1)return`${s.slice(u+14).replace(/\//g,".")}:${c}`;if(s.startsWith(n)){let l=s.slice(n.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}var LFe=v(()=>{st()});function UFe(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(Bt.SENTRY_RELEASE?.id)return Bt.SENTRY_RELEASE.id;let t=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,n=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,r=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return t||n||r||e}var jFe,FFe=v(()=>{st();LFe();jFe=oF(dQ(DFe()))});import*as HFe from"node:os";import{threadId as OYt,isMainThread as NYt}from"worker_threads";var qFe,PYt,Dq,BFe=v(()=>{Me();qFe=_e(Yt(),1);st();ER();cf();PYt=6e4,Dq=class extends BO{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||HFe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,qFe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),NE(r,"node"),J.log(`Initializing Sentry: process: ${process.pid}, thread: ${NYt?"main":`worker-${OYt}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{GA(this)},n&&this.on("beforeCaptureLog",i=>{i.attributes={...i.attributes,"server.address":n}}),process.on("beforeExit",this._logOnExitFlushListener))}get tracer(){if(this._tracer)return this._tracer;let t="@sentry/node",n=On,r=Ut.getTracer(t,n);return this._tracer=r,r}async flush(t){return await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports&&this._flushOutcomes(),super.flush(t)}async close(t){this._clientReportInterval&&clearInterval(this._clientReportInterval),this._clientReportOnExitFlushListener&&process.off("beforeExit",this._clientReportOnExitFlushListener),this._logOnExitFlushListener&&process.off("beforeExit",this._logOnExitFlushListener);let n=await super.close(t);return this.traceProvider&&await this.traceProvider.shutdown(),n}startClientReportTracking(){let t=this.getOptions();t.sendClientReports&&(this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{Xt&&J.log("Flushing client reports based on interval."),this._flushOutcomes()},t.clientReportFlushInterval??PYt).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){gX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?vje(this,t):[void 0,void 0]}}});import*as zFe from"module";function H$(){if(aFe()&&!Bt._sentryEsmLoaderHookRegistered){Bt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,GFe.createAddHookMessageChannel)();zFe.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:e,include:[]},transferList:[e]})}catch(e){J.warn("Failed to register 'import-in-the-middle' hook",e)}}}var GFe,VFe=v(()=>{st();GFe=_e(BJ(),1);Pq()});function Lq(){return[JF(),ZF(),XF(),QF(),vFe(),IX(),eH(),G1e(),J1e(),pFe(),mFe(),Kje(),iFe(),Hje(),Lje(),yFe(),dFe()]}function q$(e={}){return CYt(e,Lq)}function CYt(e={},t){let n=MYt(e,t);n.debug===!0&&(Xt?J.enable():Rs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),n.registerEsmLoaderHooks!==!1&&H$(),wje(),Ln().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===U$)&&n.integrations.push(EFe({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),NE(n,"node-core");let i=new Dq(n);return Ln().setClient(i),i.init(),J.log(`SDK initialized from ${_N()?"CommonJS":"ESM"}`),i.startClientReportTracking(),UYt(),uje(i),Rje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function B$(){if(!Xt)return;let e=pje(),t=["SentryContextManager","SentryPropagator"];ws()&&t.push("SentrySpanProcessor");for(let n of t)e.includes(n)||J.error(`You have to set up the ${n}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);e.includes("SentrySampler")||J.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function MYt(e,t){let n=DYt(e.release),r=PFe(e.spotlight),i=LYt(e.tracesSampleRate),s={...e,dsn:e.dsn??process.env.SENTRY_DSN,environment:e.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:e.sendClientReports??!0,transport:e.transport??OFe,stackParser:r7(e.stackParser||jFe),release:n,tracesSampleRate:i,spotlight:r,debug:VA(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:rX({defaultIntegrations:a,integrations:o})}}function DYt(e){if(e!==void 0)return e;let t=UFe();if(t!==void 0)return t}function LYt(e){if(e!==void 0)return e;let t=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!t)return;let n=parseFloat(t);return isFinite(n)?n:void 0}function UYt(){if(VA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=wO(e,t);Ln().setPropagationContext(n)}}var WFe=v(()=>{st();ER();cf();Uje();qje();Zje();z1e();sFe();fFe();X1e();hFe();gFe();SFe();bFe();AFe();NFe();Pq();CFe();FFe();BFe();VFe()});function Dr(e,t){e.setAttribute(At,t)}var KFe=v(()=>{st()});function vN(e){let t=e.protocol||"",n=e.hostname||e.host||"",r=!e.port||e.port===80||e.port===443||/^(.*):(\d+)$/.test(n)?"":`:${e.port}`,i=e.path?e.path:"/";return`${t}//${n}${r}${i}`}var ZFe=v(()=>{});var ir=v(()=>{mQ();AH();_Q();vQ();Mje();Dje();TH();WFe();KFe();ZFe();iR()});function HYt(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!ws(t)&&Uq)}function qYt(e={}){return{disableOutgoingRequestInstrumentation:Uq,ignoreOutgoingRequestHook:n=>{let r=vN(n);if(!r)return!1;let i=e.ignoreOutgoingRequests;return!!i?.(r,n)},requireParentforOutgoingSpans:!1,requestHook:(n,r)=>{Dr(n,"auto.http.otel.http");let i=vN(r);if(i.startsWith("data:")){let s=WA(i);n.setAttribute("http.url",s),n.setAttribute(vy,s),n.updateName(`${r.method||"GET"} ${s}`)}e.instrumentation?.requestHook?.(n,r)},responseHook:(n,r)=>{e.instrumentation?.responseHook?.(n,r)},applyCustomAttributesOnSpan:(n,r,i)=>{e.instrumentation?.applyCustomAttributesOnSpan?.(n,r,i)}}}var JFe,G$,YFe,Uq,jYt,FYt,XFe,QFe=v(()=>{Me();JFe=_e(LPe(),1);st();ir();G$="Http",YFe="@opentelemetry_sentry-patched/instrumentation-http",Uq=uf.major===22&&uf.minor>=12||uf.major===23&&uf.minor>=2||uf.major>=24,jYt=rt(`${G$}.sentry`,e=>new FE(e)),FYt=rt(G$,e=>{let t=new JFe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=$u.createComponentLogger({namespace:YFe}),t.instrumentationName=YFe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});XFe=(e={})=>{let t=e.spans??!0,n=e.disableIncomingRequestSpans,r={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},i={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes,instrumentation:e.instrumentation,onSpanCreated:e.incomingRequestSpanHook},s=iN(r),o=sN(i),a=t&&!n;return{name:G$,setup(c){let u=c.getOptions();a&&ws(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=HYt(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:Uq||!u,createSpansForOutgoingRequests:Uq,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=vN(f);if(p.startsWith("data:")){let h=WA(p);d.setAttribute("http.url",h),d.setAttribute(vy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(jYt(l),u){let d=qYt(e);FYt(d)}},processEvent(c){return o.processEvent(c)}}}});var $Fe=w(bR=>{"use strict";Object.defineProperty(bR,"__esModule",{value:!0});bR.PACKAGE_NAME=bR.PACKAGE_VERSION=void 0;bR.PACKAGE_VERSION="0.24.0";bR.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var tHe=w(Fq=>{"use strict";Object.defineProperty(Fq,"__esModule",{value:!0});Fq.UndiciInstrumentation=void 0;var z$=Y("diagnostics_channel"),BYt=Y("url"),AN=Yt(),al=(Me(),Ie(Ze)),jq=dr(),qs=(xn(),Ie(Mr)),eHe=$Fe(),V$=class extends AN.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(eHe.PACKAGE_NAME,eHe.PACKAGE_VERSION,t)}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs.length=0}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this.subscribeToChannel("undici:request:create",this.onRequestCreated.bind(this)),this.subscribeToChannel("undici:client:sendHeaders",this.onRequestHeaders.bind(this)),this.subscribeToChannel("undici:request:headers",this.onResponseHeaders.bind(this)),this.subscribeToChannel("undici:request:trailers",this.onDone.bind(this)),this.subscribeToChannel("undici:request:error",this.onError.bind(this)))}_updateMetricInstruments(){this._httpClientDurationHistogram=this.meter.createHistogram(qs.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Measures the duration of outbound HTTP requests.",unit:"s",valueType:al.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}subscribeToChannel(t,n){let[r,i]=process.version.replace("v","").split(".").map(a=>Number(a)),s=r>18||r===18&&i>=19,o;if(s)z$.subscribe?.(t,n),o=()=>z$.unsubscribe?.(t,n);else{let a=z$.channel(t);a.subscribe(n),o=()=>a.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:o})}parseRequestHeaders(t){let n=new Map;if(Array.isArray(t.headers))for(let r=0;r!r||t.method==="CONNECT"||n.ignoreRequestHook?.(t),T=>T&&this._diag.error("caught ignoreRequestHook error: ",T),!0))return;let s=(0,jq.hrTime)(),o;try{o=new BYt.URL(t.path,t.origin)}catch(T){this._diag.warn("could not determine url.full:",T);return}let a=o.protocol.replace(":",""),c=this.getRequestMethod(t.method),u={[qs.ATTR_HTTP_REQUEST_METHOD]:c,[qs.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]:t.method,[qs.ATTR_URL_FULL]:o.toString(),[qs.ATTR_URL_PATH]:o.pathname,[qs.ATTR_URL_QUERY]:o.search,[qs.ATTR_URL_SCHEME]:a},l={https:"443",http:"80"},d=o.hostname,f=o.port||l[a];u[qs.ATTR_SERVER_ADDRESS]=d,f&&!isNaN(Number(f))&&(u[qs.ATTR_SERVER_PORT]=Number(f));let h=this.parseRequestHeaders(t).get("user-agent");if(h){let T=Array.isArray(h)?h[h.length-1]:h;u[qs.ATTR_USER_AGENT_ORIGINAL]=T}let m=(0,AN.safeExecuteInTheMiddle)(()=>n.startSpanHook?.(t),T=>T&&this._diag.error("caught startSpanHook error: ",T),!0);m&&Object.entries(m).forEach(([T,A])=>{u[T]=A});let y=al.context.active(),g=al.trace.getSpan(y),E;n.requireParentforSpans&&(!g||!al.trace.isSpanContextValid(g.spanContext()))?E=al.trace.wrapSpanContext(al.INVALID_SPAN_CONTEXT):E=this.tracer.startSpan(c==="_OTHER"?"HTTP":c,{kind:al.SpanKind.CLIENT,attributes:u},y),(0,AN.safeExecuteInTheMiddle)(()=>n.requestHook?.(E,t),T=>T&&this._diag.error("caught requestHook error: ",T),!0);let S=al.trace.setSpan(al.context.active(),E),_={};al.propagation.inject(S,_);let b=Object.entries(_);for(let T=0;Td.toLowerCase())),l=this.parseRequestHeaders(t);for(let[d,f]of l.entries())if(u.has(d)){let p=Array.isArray(f)?f:[f];c[`http.request.header.${d}`]=p}}s.setAttributes(c)}onResponseHeaders({request:t,response:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s}=r,o={[qs.ATTR_HTTP_RESPONSE_STATUS_CODE]:n.statusCode},a=this.getConfig();if((0,AN.safeExecuteInTheMiddle)(()=>a.responseHook?.(i,{request:t,response:n}),c=>c&&this._diag.error("caught responseHook error: ",c),!0),a.headersToSpanAttributes?.responseHeaders){let c=new Set;a.headersToSpanAttributes?.responseHeaders.forEach(u=>c.add(u.toLowerCase()));for(let u=0;u=400?al.SpanStatusCode.ERROR:al.SpanStatusCode.UNSET}),r.attributes=Object.assign(s,o)}onDone({request:t}){let n=this._recordFromReq.get(t);if(!n)return;let{span:r,attributes:i,startTime:s}=n;r.end(),this._recordFromReq.delete(t),this.recordRequestDuration(i,s)}onError({request:t,error:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s,startTime:o}=r;i.recordException(n),i.setStatus({code:al.SpanStatusCode.ERROR,message:n.message}),i.end(),this._recordFromReq.delete(t),s[qs.ATTR_ERROR_TYPE]=n.message,this.recordRequestDuration(s,o)}recordRequestDuration(t,n){let r={};[qs.ATTR_HTTP_RESPONSE_STATUS_CODE,qs.ATTR_HTTP_REQUEST_METHOD,qs.ATTR_SERVER_ADDRESS,qs.ATTR_SERVER_PORT,qs.ATTR_URL_SCHEME,qs.ATTR_ERROR_TYPE].forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,jq.hrTimeToMilliseconds)((0,jq.hrTimeDuration)(n,(0,jq.hrTime)()))/1e3;this._httpClientDurationHistogram.record(s,r)}getRequestMethod(t){let n={CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0};return t.toUpperCase()in n?t.toUpperCase():"_OTHER"}};Fq.UndiciInstrumentation=V$});var nHe=w(Hq=>{"use strict";Object.defineProperty(Hq,"__esModule",{value:!0});Hq.UndiciInstrumentation=void 0;var GYt=tHe();Object.defineProperty(Hq,"UndiciInstrumentation",{enumerable:!0,get:function(){return GYt.UndiciInstrumentation}})});function rHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function KYt(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&ws(t)}function ZYt(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=rHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=rHe(n.origin,n.path);if(r.startsWith("data:")){let i=WA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[vy]:i,[ql]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var iHe,sHe,zYt,VYt,WYt,oHe,aHe=v(()=>{iHe=_e(nHe(),1);st();ir();sHe="NodeFetch",zYt=rt(sHe,iHe.UndiciInstrumentation,e=>ZYt(e)),VYt=rt(`${sHe}.sentry`,HE,e=>e),WYt=((e={})=>({name:"NodeFetch",setupOnce(){KYt(e,ct()?.getOptions())&&zYt(e),VYt(e)}})),oHe=WYt});var qq=w(RN=>{"use strict";Object.defineProperty(RN,"__esModule",{value:!0});RN.ExpressLayerType=void 0;var YYt;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(YYt=RN.ExpressLayerType||(RN.ExpressLayerType={}))});var Bq=w(wN=>{"use strict";Object.defineProperty(wN,"__esModule",{value:!0});wN.AttributeNames=void 0;var JYt;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(JYt=wN.AttributeNames||(wN.AttributeNames={}))});var W$=w(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});TR._LAYERS_STORE_PROPERTY=TR.kLayerPatched=void 0;TR.kLayerPatched=Symbol("express-layer-patched");TR._LAYERS_STORE_PROPERTY="__ot_middlewares"});var lHe=w(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});Bs.getActualMatchedRoute=Bs.getConstructedRoute=Bs.getLayerPath=Bs.asErrorAndMessage=Bs.isLayerIgnored=Bs.getLayerMetadata=Bs.getRouterPath=Bs.storeLayerPath=void 0;var K$=qq(),vR=Bq(),VE=W$(),XYt=(e,t)=>(Array.isArray(e[VE._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,VE._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[VE._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Bs.storeLayerPath=XYt;var QYt=(e,t)=>{let n=t.handle?.stack?.[0];return n?.route?.path?`${e}${n.route.path}`:n?.handle?.stack?(0,Bs.getRouterPath)(e,n):e};Bs.getRouterPath=QYt;var $Yt=(e,t,n)=>{if(t.name==="router"){let r=(0,Bs.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[vR.AttributeNames.EXPRESS_NAME]:i,[vR.AttributeNames.EXPRESS_TYPE]:K$.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[vR.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[vR.AttributeNames.EXPRESS_TYPE]:K$.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[vR.AttributeNames.EXPRESS_NAME]:t.name,[vR.AttributeNames.EXPRESS_TYPE]:K$.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Bs.getLayerMetadata=$Yt;var e8t=(e,t)=>{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")},t8t=(e,t,n)=>{if(Array.isArray(n?.ignoreLayersType)&&n?.ignoreLayersType?.includes(t))return!0;if(Array.isArray(n?.ignoreLayers)===!1)return!1;try{for(let r of n.ignoreLayers)if(e8t(e,r))return!0}catch{}return!1};Bs.isLayerIgnored=t8t;var n8t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Bs.asErrorAndMessage=n8t;var r8t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>cHe(n)||"").join(","):cHe(t)};Bs.getLayerPath=r8t;var cHe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function uHe(e){let n=(Array.isArray(e[VE._LAYERS_STORE_PROPERTY])?e[VE._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Bs.getConstructedRoute=uHe;function i8t(e){let t=Array.isArray(e[VE._LAYERS_STORE_PROPERTY])?e[VE._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=uHe(e);if(n==="*"||n.includes("/")&&(n.includes(",")||n.includes("\\")||n.includes("*")||n.includes("[")))return n;let r=n.startsWith("/")?n:`/${n}`;return r.length>0&&(e.originalUrl===r||e.originalUrl.startsWith(r)||s8t(r))?r:void 0}Bs.getActualMatchedRoute=i8t;function s8t(e){return e.includes(":")||e.includes("*")}});var dHe=w(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});AR.PACKAGE_NAME=AR.PACKAGE_VERSION=void 0;AR.PACKAGE_VERSION="0.62.0";AR.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var gHe=w(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});zq.ExpressInstrumentation=void 0;var fHe=dr(),au=(Me(),Ie(Ze)),pHe=qq(),hHe=Bq(),zp=lHe(),mHe=dHe(),RR=Yt(),o8t=(xn(),Ie(Mr)),Gq=W$(),Z$=class extends RR.InstrumentationBase{constructor(t={}){super(mHe.PACKAGE_NAME,mHe.PACKAGE_VERSION,t)}init(){return[new RR.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,RR.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,RR.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,RR.isWrapped)(t.application.use)&&this._unwrap(t.application,"use"),this._wrap(t.application,"use",this._getAppUsePatch(n)),t},t=>{if(t===void 0)return;let r=typeof t?.Router?.prototype?.route=="function"?t.Router.prototype:t.Router;this._unwrap(r,"route"),this._unwrap(r,"use"),this._unwrap(t.application,"use")})]}_getRoutePatch(){let t=this;return function(n){return function(...i){let s=n.apply(this,i),o=this.stack[this.stack.length-1];return t._applyPatch(o,(0,zp.getLayerPath)(i)),s}}}_getRouterUsePatch(){let t=this;return function(n){return function(...i){let s=n.apply(this,i),o=this.stack[this.stack.length-1];return t._applyPatch(o,(0,zp.getLayerPath)(i)),s}}}_getAppUsePatch(t){let n=this;return function(r){return function(...s){let o=t?this.router:this._router,a=r.apply(this,s);if(o){let c=o.stack[o.stack.length-1];n._applyPatch(c,(0,zp.getLayerPath)(s))}return a}}}_applyPatch(t,n){let r=this;t[Gq.kLayerPatched]!==!0&&(t[Gq.kLayerPatched]=!0,this._wrap(t,"handle",i=>{if(i.length===4)return i;let s=function(o,a){let{isLayerPathStored:c}=(0,zp.storeLayerPath)(o,n),u=(0,zp.getConstructedRoute)(o),l=(0,zp.getActualMatchedRoute)(o),d={[o8t.ATTR_HTTP_ROUTE]:l},f=(0,zp.getLayerMetadata)(u,t,n),p=f.attributes[hHe.AttributeNames.EXPRESS_TYPE],h=(0,fHe.getRPCMetadata)(au.context.active());if(h?.type===fHe.RPCType.HTTP&&(h.route=l),(0,zp.isLayerIgnored)(f.name,p,r.getConfig()))return p===pHe.ExpressLayerType.MIDDLEWARE&&o[Gq._LAYERS_STORE_PROPERTY].pop(),i.apply(this,arguments);if(au.trace.getSpan(au.context.active())===void 0)return i.apply(this,arguments);let m=r._getSpanName({request:o,layerType:p,route:u},f.name),y=r.tracer.startSpan(m,{attributes:Object.assign(d,f.attributes)}),g=au.context.active(),E=au.trace.setSpan(g,y),{requestHook:S}=r.getConfig();S&&(0,RR.safeExecuteInTheMiddle)(()=>S(y,{request:o,layerType:p,route:u}),R=>{R&&au.diag.error("express instrumentation: request hook failed",R)},!0);let _=!1;f.attributes[hHe.AttributeNames.EXPRESS_TYPE]===pHe.ExpressLayerType.ROUTER&&(y.end(),_=!0,E=g);let b=()=>{_===!1&&(_=!0,y.end())},T=Array.from(arguments),A=T.findIndex(R=>typeof R=="function");A>=0&&(arguments[A]=function(){let R=arguments[0],k=![void 0,null,"route","router"].includes(R);if(!_&&k){let[j,V]=(0,zp.asErrorAndMessage)(R);y.recordException(j),y.setStatus({code:au.SpanStatusCode.ERROR,message:V})}_===!1&&(_=!0,o.res?.removeListener("finish",b),y.end()),!(o.route&&k)&&c&&o[Gq._LAYERS_STORE_PROPERTY].pop();let x=T[A],N=au.context.active(),P=au.trace.getSpan(g),D=P?au.trace.setSpan(N,P):N;return au.context.bind(D,x).apply(this,arguments)});try{return au.context.bind(E,i).apply(this,arguments)}catch(R){let[k,x]=(0,zp.asErrorAndMessage)(R);throw y.recordException(k),y.setStatus({code:au.SpanStatusCode.ERROR,message:x}),R}finally{_||a.once("finish",b)}};for(let o in i)Object.defineProperty(s,o,{get(){return i[o]},set(a){i[o]=a}});return s}))}_getSpanName(t,n){let{spanNameHook:r}=this.getConfig();if(!(r instanceof Function))return n;try{return r(t,n)??n}catch(i){return au.diag.error("express instrumentation: error calling span name rewrite hook",i),n}}};zq.ExpressInstrumentation=Z$});var yHe=w(zy=>{"use strict";Object.defineProperty(zy,"__esModule",{value:!0});zy.AttributeNames=zy.ExpressLayerType=zy.ExpressInstrumentation=void 0;var a8t=gHe();Object.defineProperty(zy,"ExpressInstrumentation",{enumerable:!0,get:function(){return a8t.ExpressInstrumentation}});var c8t=qq();Object.defineProperty(zy,"ExpressLayerType",{enumerable:!0,get:function(){return c8t.ExpressLayerType}});var u8t=Bq();Object.defineProperty(zy,"AttributeNames",{enumerable:!0,get:function(){return u8t.AttributeNames}})});var fo,WE=v(()=>{fo=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function l8t(e){Dr(e,"auto.http.otel.express");let t=vt(e).data,n=t["express.type"];n&&e.setAttribute(zt,`${n}.express`);let r=t["express.name"];typeof r=="string"&&e.updateName(r)}function d8t(e,t){if(vn()===Hl())return fo&&J.warn("Isolation scope is still default isolation scope - skipping setting transactionName"),t;if(e.layerType==="request_handler"){let n=e.request,r=n.method?n.method.toUpperCase():"GET";vn().setTransactionName(`${r} ${e.route}`)}return t}var SHe,_He,EHe,f8t,bHe,THe=v(()=>{SHe=_e(yHe(),1);st();ir();WE();_He="Express";EHe=rt(_He,()=>new SHe.ExpressInstrumentation({requestHook:e=>l8t(e),spanNameHook:(e,t)=>d8t(e,t)})),f8t=(()=>({name:_He,setupOnce(){EHe()}})),bHe=f8t});var vHe=w(kN=>{"use strict";Object.defineProperty(kN,"__esModule",{value:!0});kN.SeverityNumber=void 0;var p8t;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(p8t=kN.SeverityNumber||(kN.SeverityNumber={}))});var Kq=w(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});wR.NOOP_LOGGER=wR.NoopLogger=void 0;var Wq=class{emit(t){}};wR.NoopLogger=Wq;wR.NOOP_LOGGER=new Wq});var AHe=w(Vp=>{"use strict";Object.defineProperty(Vp,"__esModule",{value:!0});Vp.API_BACKWARDS_COMPATIBILITY_VERSION=Vp.makeGetter=Vp._global=Vp.GLOBAL_LOGS_API_KEY=void 0;Vp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Vp._global=globalThis;function h8t(e,t,n){return r=>r===e?t:n}Vp.makeGetter=h8t;Vp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var Y$=w(kR=>{"use strict";Object.defineProperty(kR,"__esModule",{value:!0});kR.NOOP_LOGGER_PROVIDER=kR.NoopLoggerProvider=void 0;var m8t=Kq(),Zq=class{getLogger(t,n,r){return new m8t.NoopLogger}};kR.NoopLoggerProvider=Zq;kR.NOOP_LOGGER_PROVIDER=new Zq});var RHe=w(Yq=>{"use strict";Object.defineProperty(Yq,"__esModule",{value:!0});Yq.ProxyLogger=void 0;var g8t=Kq(),J$=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):g8t.NOOP_LOGGER}};Yq.ProxyLogger=J$});var wHe=w(Jq=>{"use strict";Object.defineProperty(Jq,"__esModule",{value:!0});Jq.ProxyLoggerProvider=void 0;var y8t=Y$(),S8t=RHe(),X$=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new S8t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:y8t.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};Jq.ProxyLoggerProvider=X$});var IHe=w(Xq=>{"use strict";Object.defineProperty(Xq,"__esModule",{value:!0});Xq.LogsAPI=void 0;var Kl=AHe(),_8t=Y$(),kHe=wHe(),Q$=class e{constructor(){this._proxyLoggerProvider=new kHe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Kl._global[Kl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Kl._global[Kl.GLOBAL_LOGS_API_KEY]=(0,Kl.makeGetter)(Kl.API_BACKWARDS_COMPATIBILITY_VERSION,t,_8t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Kl._global[Kl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Kl._global,Kl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Kl._global[Kl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new kHe.ProxyLoggerProvider}};Xq.LogsAPI=Q$});var $$=w(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});Wp.logs=Wp.NoopLogger=Wp.NOOP_LOGGER=Wp.SeverityNumber=void 0;var E8t=vHe();Object.defineProperty(Wp,"SeverityNumber",{enumerable:!0,get:function(){return E8t.SeverityNumber}});var xHe=Kq();Object.defineProperty(Wp,"NOOP_LOGGER",{enumerable:!0,get:function(){return xHe.NOOP_LOGGER}});Object.defineProperty(Wp,"NoopLogger",{enumerable:!0,get:function(){return xHe.NoopLogger}});var b8t=IHe();Wp.logs=b8t.LogsAPI.getInstance()});var OHe=w(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});IR.disableInstrumentations=IR.enableInstrumentations=void 0;function T8t(e,t,n,r){for(let i=0,s=e.length;it.disable())}IR.disableInstrumentations=v8t});var CHe=w(Qq=>{"use strict";Object.defineProperty(Qq,"__esModule",{value:!0});Qq.registerInstrumentations=void 0;var NHe=(Me(),Ie(Ze)),A8t=$$(),PHe=OHe();function R8t(e){let t=e.tracerProvider||NHe.trace.getTracerProvider(),n=e.meterProvider||NHe.metrics.getMeterProvider(),r=e.loggerProvider||A8t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,PHe.enableInstrumentations)(i,t,n,r),()=>{(0,PHe.disableInstrumentations)(i)}}Qq.registerInstrumentations=R8t});var BHe=w($q=>{"use strict";Object.defineProperty($q,"__esModule",{value:!0});$q.satisfies=void 0;var ree=(Me(),Ie(Ze)),jHe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,w8t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,k8t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function I8t(e,t,n){if(!x8t(e))return ree.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=C8t(e);if(!r)return!1;let i=[],s=FHe(r,t,i,n);return s&&!n?.includePrerelease?N8t(r,i):s}$q.satisfies=I8t;function x8t(e){return typeof e=="string"&&jHe.test(e)}function FHe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(eee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=eJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!eee(e,s,n,r))return!1;return!0}return eee(e,t,n,r)}function eee(e,t,n,r){if(t=P8t(t,r),t.includes(" "))return FHe(e,t,n,r);{let i=M8t(t);return n.push(i),O8t(e,i)}}function O8t(e,t){if(t.invalid)return!1;if(!t.version||nee(t.version))return!0;let n=DHe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=DHe(r,i)}return k8t[t.op]?.includes(n)}function N8t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function P8t(e,t){return e=e.trim(),e=Q8t(e,t),e=X8t(e),e=$8t(e,t),e=e.trim(),e}function Pc(e){return!e||e.toLowerCase()==="x"||e==="*"}function C8t(e){let t=e.match(jHe);if(!t){ree.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function M8t(e){if(!e)return{};let t=e.match(w8t);if(!t)return ree.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function nee(e){return e==="*"||e==="x"||e==="X"}function MHe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function D8t(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function L8t(e,t){if(nee(e)||nee(t))return 0;let[n,r]=D8t(MHe(e),MHe(t));return n>r?1:n)?=?)",LHe=`(?:${qHe}|${U8t})`,F8t=`(?:-(${LHe}(?:\\.${LHe})*))`,UHe=`${HHe}+`,H8t=`(?:\\+(${UHe}(?:\\.${UHe})*))`,tee=`${qHe}|x|X|\\*`,IN=`[v=\\s]*(${tee})(?:\\.(${tee})(?:\\.(${tee})(?:${F8t})?${H8t}?)?)?`,q8t=`^${j8t}\\s*${IN}$`,B8t=new RegExp(q8t),G8t=`^\\s*(${IN})\\s+-\\s+(${IN})\\s*$`,z8t=new RegExp(G8t),V8t="(?:~>?)",W8t=`^${V8t}${IN}$`,K8t=new RegExp(W8t),Z8t="(?:\\^)",Y8t=`^${Z8t}${IN}$`,J8t=new RegExp(Y8t);function X8t(e){let t=K8t;return e.replace(t,(n,r,i,s,o)=>{let a;return Pc(r)?a="":Pc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Pc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function Q8t(e,t){let n=J8t,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Pc(s)?u="":Pc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Pc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function $8t(e,t){let n=B8t;return e.replace(n,(r,i,s,o,a,c)=>{let u=Pc(s),l=u||Pc(o),d=l||Pc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function eJt(e,t){let n=z8t;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Pc(s)?i="":Pc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Pc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Pc(d)?l="":Pc(f)?l=`<${+d+1}.0.0-0`:Pc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var iee=w(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.massUnwrap=ua.unwrap=ua.massWrap=ua.wrap=void 0;var Cc=console.error.bind(console);function xN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var tJt=(e,t,n)=>{if(!e||!e[t]){Cc("no original function "+String(t)+" to wrap");return}if(!n){Cc("no wrapper function"),Cc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Cc("original object and wrapper must be functions");return}let i=n(r,t);return xN(i,"__original",r),xN(i,"__unwrap",()=>{e[t]===i&&xN(e,t,r)}),xN(i,"__wrapped",!0),xN(e,t,i),i};ua.wrap=tJt;var nJt=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Cc("must provide one or more modules to patch"),Cc(new Error().stack);return}if(!(t&&Array.isArray(t))){Cc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,ua.wrap)(r,i,n)})})};ua.massWrap=nJt;var rJt=(e,t)=>{if(!e||!e[t]){Cc("no function to unwrap."),Cc(new Error().stack);return}let n=e[t];if(!n.__unwrap)Cc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};ua.unwrap=rJt;var iJt=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Cc("must provide one or more modules to patch"),Cc(new Error().stack);return}if(!(t&&Array.isArray(t))){Cc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,ua.unwrap)(n,r)})})};ua.massUnwrap=iJt;function ON(e){e&&e.logger&&(typeof e.logger!="function"?Cc("new logger isn't a function, not replacing"):Cc=e.logger)}ua.default=ON;ON.wrap=ua.wrap;ON.massWrap=ua.massWrap;ON.unwrap=ua.unwrap;ON.massUnwrap=ua.massUnwrap});var GHe=w(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.InstrumentationAbstract=void 0;var see=(Me(),Ie(Ze)),sJt=$$(),eB=iee(),oee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=see.diag.createComponentLogger({namespace:t}),this._tracer=see.trace.getTracer(t,n),this._meter=see.metrics.getMeter(t,n),this._logger=sJt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=eB.wrap;_unwrap=eB.unwrap;_massWrap=eB.massWrap;_massUnwrap=eB.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};tB.InstrumentationAbstract=oee});var zHe=w(Vy=>{"use strict";Object.defineProperty(Vy,"__esModule",{value:!0});Vy.ModuleNameTrie=Vy.ModuleNameSeparator=void 0;Vy.ModuleNameSeparator="/";var nB=class{hooks=[];children=new Map},aee=class{_trie=new nB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Vy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new nB,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(Vy.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};Vy.ModuleNameTrie=aee});var WHe=w(rB=>{"use strict";Object.defineProperty(rB,"__esModule",{value:!0});rB.RequireInTheMiddleSingleton=void 0;var oJt=SE(),VHe=Y("path"),cee=zHe(),aJt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),uee=class e{_moduleNameTrie=new cee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new oJt.Hook(null,{internals:!0},(t,n,r)=>{let i=cJt(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return aJt?new e:this._instance=this._instance??new e}};rB.RequireInTheMiddleSingleton=uee;function cJt(e){return VHe.sep!==cee.ModuleNameSeparator?e.split(VHe.sep).join(cee.ModuleNameSeparator):e}});var XHe=w(NN=>{var KHe=[],lee=new WeakMap,ZHe=new WeakMap,YHe=new Map,JHe=[],uJt={set(e,t,n){let r=lee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=ZHe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=lee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function lJt(e,t,n,r,i){YHe.set(e,i),lee.set(t,n),ZHe.set(t,r);let s=new Proxy(t,uJt);KHe.forEach(o=>o(e,s,i)),JHe.push([e,s,i])}NN.register=lJt;NN.importHooks=KHe;NN.specifiers=YHe;NN.toHook=JHe});var tqe=w((KNr,OR)=>{var QHe=Y("path"),dJt=uO(),{fileURLToPath:fJt}=Y("url"),{MessageChannel:pJt}=Y("worker_threads"),{isBuiltin:dee}=Y("module");dee||(dee=()=>!0);var{importHooks:fee,specifiers:hJt,toHook:mJt}=XHe();function $He(e){fee.push(e),mJt.forEach(([t,n,r])=>e(t,n,r))}function eqe(e){let t=fee.indexOf(e);t>-1&&fee.splice(t,1)}function xR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var pee;function gJt(){let{port1:e,port2:t}=new pJt,n=0,r;pee=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function PN(e,t,n){if(!(this instanceof PN))return new PN(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;pee&&Array.isArray(e)&&pee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);dee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=fJt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=dJt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)xR(n,s,u,void 0);else if(d===i){if(!l)xR(n,s,i,l);else if(l.endsWith(hJt.get(a)))xR(n,s,i,l);else if(r){let f=i+QHe.sep+QHe.relative(l,u);xR(n,s,f,l)}}else d===o&&xR(n,s,o,l);else xR(n,s,i,l)},$He(this._iitmHook)}PN.prototype.unhook=function(){eqe(this._iitmHook)};OR.exports=PN;OR.exports.Hook=PN;OR.exports.addHook=$He;OR.exports.removeHook=eqe;OR.exports.createAddHookMessageChannel=gJt});var hee=w(Wy=>{"use strict";Object.defineProperty(Wy,"__esModule",{value:!0});Wy.isWrapped=Wy.safeExecuteInTheMiddleAsync=Wy.safeExecuteInTheMiddle=void 0;function yJt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Wy.safeExecuteInTheMiddle=yJt;async function SJt(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}Wy.safeExecuteInTheMiddleAsync=SJt;function _Jt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Wy.isWrapped=_Jt});var iqe=w(iB=>{"use strict";Object.defineProperty(iB,"__esModule",{value:!0});iB.InstrumentationBase=void 0;var CN=Y("path"),nqe=Y("util"),EJt=BHe(),mee=iee(),bJt=GHe(),TJt=WHe(),vJt=tqe(),MN=(Me(),Ie(Ze)),AJt=SE(),RJt=Y("fs"),wJt=hee(),gee=class extends bJt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=TJt.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,wJt.isWrapped)(t[n])&&this._unwrap(t,n),nqe.types.isProxy(t)){let i=(0,mee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,mee.wrap)(t,n,r)};_unwrap=(t,n)=>nqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,mee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{MN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){MN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,RJt.readFileSync)(CN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{MN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return rqe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=CN.normalize(r);return o.filter(u=>u.name===a&&rqe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&CN.isAbsolute(a)){let u=CN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=CN.isAbsolute(t.name)?new AJt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new vJt.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};iB.InstrumentationBase=gee;function rqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,EJt.satisfies)(t,r,{includePrerelease:n}))}});var sqe=w(sB=>{"use strict";Object.defineProperty(sB,"__esModule",{value:!0});sB.normalize=void 0;var kJt=Y("path");Object.defineProperty(sB,"normalize",{enumerable:!0,get:function(){return kJt.normalize}})});var oqe=w(NR=>{"use strict";Object.defineProperty(NR,"__esModule",{value:!0});NR.normalize=NR.InstrumentationBase=void 0;var IJt=iqe();Object.defineProperty(NR,"InstrumentationBase",{enumerable:!0,get:function(){return IJt.InstrumentationBase}});var xJt=sqe();Object.defineProperty(NR,"normalize",{enumerable:!0,get:function(){return xJt.normalize}})});var yee=w(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.normalize=PR.InstrumentationBase=void 0;var aqe=oqe();Object.defineProperty(PR,"InstrumentationBase",{enumerable:!0,get:function(){return aqe.InstrumentationBase}});Object.defineProperty(PR,"normalize",{enumerable:!0,get:function(){return aqe.normalize}})});var cqe=w(oB=>{"use strict";Object.defineProperty(oB,"__esModule",{value:!0});oB.InstrumentationNodeModuleDefinition=void 0;var See=class{files;name;supportedVersions;patch;unpatch;constructor(t,n,r,i,s){this.files=s||[],this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i}};oB.InstrumentationNodeModuleDefinition=See});var uqe=w(aB=>{"use strict";Object.defineProperty(aB,"__esModule",{value:!0});aB.InstrumentationNodeModuleFile=void 0;var OJt=yee(),_ee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,OJt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};aB.InstrumentationNodeModuleFile=_ee});var lqe=w(KE=>{"use strict";Object.defineProperty(KE,"__esModule",{value:!0});KE.semconvStabilityFromStr=KE.SemconvStability=void 0;var cB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(cB=KE.SemconvStability||(KE.SemconvStability={}));function NJt(e,t){let n=cB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=cB.DUPLICATE;break}else i.toLowerCase()===e&&(n=cB.STABLE);return n}KE.semconvStabilityFromStr=NJt});var fqe=w(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});Gs.semconvStabilityFromStr=Gs.SemconvStability=Gs.safeExecuteInTheMiddleAsync=Gs.safeExecuteInTheMiddle=Gs.isWrapped=Gs.InstrumentationNodeModuleFile=Gs.InstrumentationNodeModuleDefinition=Gs.InstrumentationBase=Gs.registerInstrumentations=void 0;var PJt=CHe();Object.defineProperty(Gs,"registerInstrumentations",{enumerable:!0,get:function(){return PJt.registerInstrumentations}});var CJt=yee();Object.defineProperty(Gs,"InstrumentationBase",{enumerable:!0,get:function(){return CJt.InstrumentationBase}});var MJt=cqe();Object.defineProperty(Gs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return MJt.InstrumentationNodeModuleDefinition}});var DJt=uqe();Object.defineProperty(Gs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return DJt.InstrumentationNodeModuleFile}});var Eee=hee();Object.defineProperty(Gs,"isWrapped",{enumerable:!0,get:function(){return Eee.isWrapped}});Object.defineProperty(Gs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Eee.safeExecuteInTheMiddle}});Object.defineProperty(Gs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Eee.safeExecuteInTheMiddleAsync}});var dqe=lqe();Object.defineProperty(Gs,"SemconvStability",{enumerable:!0,get:function(){return dqe.SemconvStability}});Object.defineProperty(Gs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return dqe.semconvStabilityFromStr}})});var pqe=w((iPr,LJt)=>{LJt.exports={name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}}});var mqe=w(ZE=>{"use strict";Object.defineProperty(ZE,"__esModule",{value:!0});ZE.range=ZE.balanced=void 0;var UJt=(e,t,n)=>{let r=e instanceof RegExp?hqe(e,n):e,i=t instanceof RegExp?hqe(t,n):t,s=r!==null&&i!=null&&(0,ZE.range)(r,i,n);return s&&{start:s[0],end:s[1],pre:n.slice(0,s[0]),body:n.slice(s[0]+r.length,s[1]),post:n.slice(s[1]+i.length)}};ZE.balanced=UJt;var hqe=(e,t)=>{let n=t.match(e);return n?n[0]:null},jJt=(e,t,n)=>{let r,i,s,o,a,c=n.indexOf(e),u=n.indexOf(t,c+1),l=c;if(c>=0&&u>0){if(e===t)return[c,u];for(r=[],s=n.length;l>=0&&!a;){if(l===c)r.push(l),c=n.indexOf(e,l+1);else if(r.length===1){let d=r.pop();d!==void 0&&(a=[d,u])}else i=r.pop(),i!==void 0&&i=0?c:u}r.length&&o!==void 0&&(a=[s,o])}return a};ZE.range=jJt});var Tqe=w(CR=>{"use strict";Object.defineProperty(CR,"__esModule",{value:!0});CR.EXPANSION_MAX=void 0;CR.expand=XJt;var gqe=mqe(),yqe="\0SLASH"+Math.random()+"\0",Sqe="\0OPEN"+Math.random()+"\0",Tee="\0CLOSE"+Math.random()+"\0",_qe="\0COMMA"+Math.random()+"\0",Eqe="\0PERIOD"+Math.random()+"\0",FJt=new RegExp(yqe,"g"),HJt=new RegExp(Sqe,"g"),qJt=new RegExp(Tee,"g"),BJt=new RegExp(_qe,"g"),GJt=new RegExp(Eqe,"g"),zJt=/\\\\/g,VJt=/\\{/g,WJt=/\\}/g,KJt=/\\,/g,ZJt=/\\\./g;CR.EXPANSION_MAX=1e5;function bee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function YJt(e){return e.replace(zJt,yqe).replace(VJt,Sqe).replace(WJt,Tee).replace(KJt,_qe).replace(ZJt,Eqe)}function JJt(e){return e.replace(FJt,"\\").replace(HJt,"{").replace(qJt,"}").replace(BJt,",").replace(GJt,".")}function bqe(e){if(!e)return[""];let t=[],n=(0,gqe.balanced)("{","}",e);if(!n)return e.split(",");let{pre:r,body:i,post:s}=n,o=r.split(",");o[o.length-1]+="{"+i+"}";let a=bqe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function XJt(e,t={}){if(!e)return[];let{max:n=CR.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),DN(YJt(e),n,!0).map(JJt)}function QJt(e){return"{"+e+"}"}function $Jt(e){return/^-?0\d/.test(e)}function e7t(e,t){return e<=t}function t7t(e,t){return e>=t}function DN(e,t,n){let r=[],i=(0,gqe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?DN(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a=0;if(!u&&!l)return i.post.match(/,(?!,).*\}/)?(e=i.pre+"{"+i.body+Tee+i.post,DN(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=bqe(i.body),d.length===1&&d[0]!==void 0&&(d=DN(d[0],t,!1).map(QJt),d.length===1))return o.map(p=>i.pre+d[0]+p);let f;if(u&&d[0]!==void 0&&d[1]!==void 0){let p=bee(d[0]),h=bee(d[1]),m=Math.max(d[0].length,d[1].length),y=d.length===3&&d[2]!==void 0?Math.max(Math.abs(bee(d[2])),1):1,g=e7t;h0){let A=new Array(T+1).join("0");_<0?b="-"+A+b.slice(1):b=A+b}}f.push(b)}}else{f=[];for(let p=0;p{"use strict";Object.defineProperty(uB,"__esModule",{value:!0});uB.assertValidPattern=void 0;var n7t=1024*64,r7t=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>n7t)throw new TypeError("pattern is too long")};uB.assertValidPattern=r7t});var Rqe=w(lB=>{"use strict";Object.defineProperty(lB,"__esModule",{value:!0});lB.parseClass=void 0;var i7t={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},LN=e=>e.replace(/[[\]\\-]/g,"\\$&"),s7t=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Aqe=e=>e.join(""),o7t=(e,t)=>{let n=t;if(e.charAt(n)!=="[")throw new Error("not in a brace expression");let r=[],i=[],s=n+1,o=!1,a=!1,c=!1,u=!1,l=n,d="";e:for(;sd?r.push(LN(d)+"-"+LN(m)):m===d&&r.push(LN(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(LN(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(LN(m)),s++}if(l{"use strict";Object.defineProperty(dB,"__esModule",{value:!0});dB.unescape=void 0;var a7t=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");dB.unescape=a7t});var Ree=w(gB=>{"use strict";var cu;Object.defineProperty(gB,"__esModule",{value:!0});gB.AST=void 0;var c7t=Rqe(),pB=fB(),u7t=new Set(["!","?","+","*","@"]),vee=e=>u7t.has(e),wqe=e=>vee(e.type),l7t=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),d7t=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),f7t=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),kqe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),p7t="(?!(?:^|/)\\.\\.?(?:$|/))",hB="(?!\\.)",h7t=new Set(["[","."]),m7t=new Set(["..","."]),g7t=new Set("().*{}+?[]^$\\!"),y7t=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Aee="[^/]",Iqe=Aee+"*?",xqe=Aee+"+?",S7t=0,mB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++S7t;get depth(){return(this.#r?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#t.id,parent:this.#r?.id,depth:this.depth,partsLength:this.#e.length,parts:this.#e}}constructor(t,n,r={}){this.type=t,t&&(this.#n=!0),this.#r=n,this.#t=this.#r?this.#r.#t:this,this.#o=this.#t===this?r:this.#t.#o,this.#c=this.#t===this?[]:this.#t.#c,t==="!"&&!this.#t.#u&&this.#c.push(this),this.#s=this.#r?this.#r.#e.length:0}get hasMagic(){if(this.#n!==void 0)return this.#n;for(let t of this.#e)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#n=!0;return this.#n}toString(){return this.#a!==void 0?this.#a:this.type?this.#a=this.type+"("+this.#e.map(t=>String(t)).join("|")+")":this.#a=this.#e.map(t=>String(t)).join("")}#d(){if(this!==this.#t)throw new Error("should only call on root");if(this.#u)return this;this.toString(),this.#u=!0;let t;for(;t=this.#c.pop();){if(t.type!=="!")continue;let n=t,r=n.#r;for(;r;){for(let i=n.#s+1;!r.type&&itypeof n=="string"?n:n.toJSON()):[this.type,...this.#e.map(n=>n.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#u&&this.#r?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#r?.isStart())return!1;if(this.#s===0)return!0;let t=this.#r;for(let n=0;ntypeof p!="string"),u=this.#e.map(p=>{let[h,m,y,g]=typeof p=="string"?cu.#v(p,this.#n,c):p.toRegExpSource(t);return this.#n=this.#n||y,this.#i=this.#i||g,h}).join(""),l="";if(this.isStart()&&typeof this.#e[0]=="string"&&!(this.#e.length===1&&m7t.has(this.#e[0]))){let h=h7t,m=n&&h.has(u.charAt(0))||u.startsWith("\\.")&&h.has(u.charAt(2))||u.startsWith("\\.\\.")&&h.has(u.charAt(4)),y=!n&&!t&&h.has(u.charAt(0));l=m?p7t:y?hB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,pB.unescape)(u),this.#n=!!this.#n,this.#i]}let r=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",s=this.#y(n);if(this.isStart()&&this.isEnd()&&!s&&this.type!=="!"){let c=this.toString(),u=this;return u.#e=[c],u.type=null,u.#n=void 0,[c,(0,pB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!hB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?hB:"")+xqe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?hB:"")+Iqe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,pB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(wqe(this)){let t=0,n=!1;do{n=!0;for(let r=0;r{if(typeof n=="string")throw new Error("string type in extglob ast??");let[r,i,s,o]=n.toRegExpSource(t);return this.#i=this.#i||o,r}).filter(n=>!(this.isStart()&&this.isEnd())||!!n).join("|")}static#v(t,n,r=!1){let i=!1,s="",o=!1,a=!1;for(let c=0;c{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.escape=void 0;var _7t=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");yB.escape=_7t});var Lqe=w(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.unescape=it.escape=it.AST=it.Minimatch=it.match=it.makeRe=it.braceExpand=it.defaults=it.filter=it.GLOBSTAR=it.sep=it.minimatch=void 0;var E7t=Tqe(),SB=vqe(),Pqe=Ree(),b7t=wee(),T7t=fB(),v7t=(e,t,n={})=>((0,SB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new YE(t,n).match(e));it.minimatch=v7t;var A7t=/^\*+([^+@!?*[(]*)$/,R7t=e=>t=>!t.startsWith(".")&&t.endsWith(e),w7t=e=>t=>t.endsWith(e),k7t=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),I7t=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),x7t=/^\*+\.\*+$/,O7t=e=>!e.startsWith(".")&&e.includes("."),N7t=e=>e!=="."&&e!==".."&&e.includes("."),P7t=/^\.\*+$/,C7t=e=>e!=="."&&e!==".."&&e.startsWith("."),M7t=/^\*+$/,D7t=e=>e.length!==0&&!e.startsWith("."),L7t=e=>e.length!==0&&e!=="."&&e!=="..",U7t=/^\?+([^+@!?*[(]*)?$/,j7t=([e,t=""])=>{let n=Cqe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},F7t=([e,t=""])=>{let n=Mqe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},H7t=([e,t=""])=>{let n=Mqe([e]);return t?r=>n(r)&&r.endsWith(t):n},q7t=([e,t=""])=>{let n=Cqe([e]);return t?r=>n(r)&&r.endsWith(t):n},Cqe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},Mqe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},Dqe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Oqe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=Dqe==="win32"?Oqe.win32.sep:Oqe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var B7t="[^/]",G7t=B7t+"*?",z7t="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",V7t="(?:(?!(?:\\/|^)\\.).)*?",W7t=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=W7t;it.minimatch.filter=it.filter;var Zl=(e,t={})=>Object.assign({},e,t),K7t=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return it.minimatch;let t=it.minimatch;return Object.assign((r,i,s={})=>t(r,i,Zl(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,Zl(e,s))}static defaults(i){return t.defaults(Zl(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,Zl(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,Zl(e,s))}},unescape:(r,i={})=>t.unescape(r,Zl(e,i)),escape:(r,i={})=>t.escape(r,Zl(e,i)),filter:(r,i={})=>t.filter(r,Zl(e,i)),defaults:r=>t.defaults(Zl(e,r)),makeRe:(r,i={})=>t.makeRe(r,Zl(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,Zl(e,i)),match:(r,i,s={})=>t.match(r,i,Zl(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=K7t;it.minimatch.defaults=it.defaults;var Z7t=(e,t={})=>((0,SB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,E7t.expand)(e,{max:t.braceExpandMax}));it.braceExpand=Z7t;it.minimatch.braceExpand=it.braceExpand;var Y7t=(e,t={})=>new YE(e,t).makeRe();it.makeRe=Y7t;it.minimatch.makeRe=it.makeRe;var J7t=(e,t,n={})=>{let r=new YE(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=J7t;it.minimatch.match=it.match;var Nqe=/[?*]|[+@!]\(.*?\)|\[|\]/,X7t=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),YE=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,SB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||Dqe,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!n.windowsPathsNoEscape||n[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!n.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!n.nonegate,this.comment=!1,this.empty=!1,this.partial=!!n.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=n.windowsNoMagicRoot!==void 0?n.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let n of t)if(typeof n!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,n=this.options;if(!n.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],n.debug&&(this.debug=(...s)=>console.error(...s)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(s=>this.slashSplit(s));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let i=this.globParts.map((s,o,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let c=s[0]===""&&s[1]===""&&(s[2]==="?"||!Nqe.test(s[2]))&&!Nqe.test(s[3]),u=/^[a-z]:/i.test(s[0]);if(c)return[...s.slice(0,4),...s.slice(4).map(l=>this.parse(l))];if(u)return[s[0],...s.slice(1).map(l=>this.parse(l))]}return s.map(c=>this.parse(c))});if(this.debug(this.pattern,i),this.set=i.filter(s=>s.indexOf(!1)===-1),this.isWindows)for(let s=0;s=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):n>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(n=>{let r=-1;for(;(r=n.indexOf("**",r+1))!==-1;){let i=r;for(;n[i+1]==="**";)i++;i!==r&&n.splice(r,i-r)}return n})}levelOneOptimize(t){return t.map(n=>(n=n.reduce((r,i)=>{let s=r[r.length-1];return i==="**"&&s==="**"?r:i===".."&&s&&s!==".."&&s!=="."&&s!=="**"?(r.pop(),r):(r.push(i),r)},[]),n.length===0?[""]:n))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let n=!1;do{if(n=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&r.splice(i+1,o-i);let a=r[i+1],c=r[i+2],u=r[i+3];if(a!==".."||!c||c==="."||c===".."||!u||u==="."||u==="..")continue;n=!0,r.splice(i,1);let l=r.slice(0);l[i]="**",t.push(l),i--}if(!this.preserveMultipleSlashes){for(let o=1;on.length)}partsMatch(t,n,r=!1){let i=0,s=0,o=[],a="";for(;i=2&&(t=this.levelTwoFileOptimize(t)),n.includes(it.GLOBSTAR)?this.#t(t,n,r,i,s):this.#i(t,n,r,i,s)}#t(t,n,r,i,s){let o=n.indexOf(it.GLOBSTAR,s),a=n.lastIndexOf(it.GLOBSTAR),[c,u,l]=r?[n.slice(s,o),n.slice(o+1),[]]:[n.slice(s,o),n.slice(o+1,a),n.slice(a+1)];if(c.length){let E=t.slice(i,i+c.length);if(!this.#i(E,c,r,0,0))return!1;i+=c.length,s+=c.length}let d=0;if(l.length){if(l.length+i>t.length)return!1;let E=t.length-l.length;if(this.#i(t,l,r,E,0))d=l.length;else{if(t[t.length-1]!==""||i+l.length===t.length||(E--,!this.#i(t,l,r,E,0)))return!1;d=l.length+1}}if(!u.length){let E=!!d;for(let S=i;S{let u=c.map(d=>{if(d instanceof RegExp)for(let f of d.flags.split(""))i.add(f);return typeof d=="string"?X7t(d):d===it.GLOBSTAR?it.GLOBSTAR:d._src});u.forEach((d,f)=>{let p=u[f+1],h=u[f-1];d!==it.GLOBSTAR||h===it.GLOBSTAR||(h===void 0?p!==void 0&&p!==it.GLOBSTAR?u[f+1]="(?:\\/|"+r+"\\/)?"+p:u[f]=r:p===void 0?u[f-1]=h+"(?:\\/|\\/"+r+")?":p!==it.GLOBSTAR&&(u[f-1]=h+"(?:\\/|\\/"+r+"\\/)"+p,u[f+1]=it.GLOBSTAR))});let l=u.filter(d=>d!==it.GLOBSTAR);if(this.partial&&l.length>=1){let d=[];for(let f=1;f<=l.length;f++)d.push(l.slice(0,f).join("/"));return"(?:"+d.join("|")+")"}return l.join("/")}).join("|"),[o,a]=t.length>1?["(?:",")"]:["",""];s="^"+o+s+a+"$",this.partial&&(s="^(?:\\/|"+o+s.slice(1,-1)+a+")$"),this.negate&&(s="^(?!"+s+").+$");try{this.regexp=new RegExp(s,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,n=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&n)return!0;let r=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let s=this.set;this.debug(this.pattern,"set",s);let o=i[i.length-1];if(!o)for(let a=i.length-2;!o&&a>=0;a--)o=i[a];for(let a of s){let c=i;if(r.matchBase&&a.length===1&&(c=[o]),this.matchOne(c,a,n))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(t){return it.minimatch.defaults(t).Minimatch}};it.Minimatch=YE;var Q7t=Ree();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return Q7t.AST}});var $7t=wee();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return $7t.escape}});var eXt=fB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return eXt.unescape}});it.minimatch.AST=Pqe.AST;it.minimatch.Minimatch=YE;it.minimatch.escape=b7t.escape;it.minimatch.unescape=T7t.unescape});var Gqe=w((mPr,xee)=>{"use strict";var Uqe=Y("node:diagnostics_channel"),{context:_B,trace:kee,SpanStatusCode:EB,propagation:Iee,diag:tXt}=(Me(),Ie(Ze)),{getRPCMetadata:nXt,RPCType:rXt}=dr(),{ATTR_HTTP_ROUTE:bB,ATTR_HTTP_RESPONSE_STATUS_CODE:jqe,ATTR_HTTP_REQUEST_METHOD:iXt,ATTR_URL_PATH:sXt}=(xn(),Ie(Mr)),{InstrumentationBase:oXt}=fqe(),{version:aXt,name:Fqe}=pqe(),cXt=">=4.0.0 <6",Hqe=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],ui={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},Ky={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},vm="anonymous",Zy=Symbol("fastify otel instance"),Yy=Symbol("fastify otel request spans"),UN=Symbol("fastify otel request context"),qqe=Symbol("fastify otel addhook original"),Bqe=Symbol("fastify otel setnotfound original"),jN=Symbol("fastify otel ignore path"),FN=Symbol("fastify otel record exceptions"),TB=class extends oXt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(Fqe,aXt,t),this.logger=tXt.createComponentLogger({namespace:Fqe}),this[jN]=null,this[FN]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[FN]=t.recordExceptions}if(typeof t?.requestHook=="function"&&(this._requestHook=t.requestHook),typeof t?.lifecycleHook=="function"&&(this._lifecycleHook=t.lifecycleHook),t?.ignorePaths!=null||process.env.OTEL_FASTIFY_IGNORE_PATHS!=null){let n=t?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if((typeof n!="string"||n.length===0)&&typeof n!="function")throw new TypeError("ignorePaths must be a string or a function");let r=null;this[jN]=i=>typeof n=="function"?n(i):(r==null&&(r=Lqe().minimatch),r(i.url,n))}}enable(){return this._handleInitialization===void 0&&this.getConfig().registerOnInitialization&&(this._handleInitialization=t=>{this.plugin()(t.fastify,void 0,()=>{});let n=(r,i,s)=>{s()};n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",t.fastify.register(n)},Uqe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(Uqe.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let t=this;return n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",n[Symbol.for("plugin-meta")]={fastify:cXt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(Zy,t),r.decorate(qqe,r.addHook),r.decorate(Bqe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[UN],h=this[Yy];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,y)=>Iee.inject(p,m,y),extract:(m,y)=>Iee.extract(p,m,y)}}),r.decorateRequest(Yy,null),r.decorateRequest(UN,null),r.addHook("onRoute",function(p){if(t[jN]?.(p)===!0){t.logger.debug(`Ignoring route instrumentation ${p.method} ${p.url} because it matches the ignore path`);return}if(p.config?.otel===!1){t.logger.debug(`Ignoring route instrumentation ${p.method} ${p.url} because it is disabled`);return}for(let h of Hqe)if(p[h]!=null){let m=p[h];if(typeof m=="function")p[h]=d(m,h,{[ui.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[ui.FASTIFY_TYPE]:Ky.ROUTE,[bB]:p.url,[ui.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:vm});else if(Array.isArray(m)){let y=[];for(let g of m)y.push(d(g,h,{[ui.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[ui.FASTIFY_TYPE]:Ky.ROUTE,[bB]:p.url,[ui.HOOK_CALLBACK_NAME]:g.name?.length>0?g.name:vm}));p[h]=y}}p.onSend!=null?p.onSend=Array.isArray(p.onSend)?[...p.onSend,o]:[p.onSend,o]:p.onSend=o,p.onError!=null?p.onError=Array.isArray(p.onError)?[...p.onError,a]:[p.onError,a]:p.onError=a,p.handler=d(p.handler,"handler",{[ui.HOOK_NAME]:`${this.pluginName} - route-handler`,[ui.FASTIFY_TYPE]:Ky.HANDLER,[bB]:p.url,[ui.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:vm})}),r.addHook("onRequest",function(p,h,m){if(this[Zy].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[Zy][jN]?.({url:p.url,method:p.method})===!0)return this[Zy].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let y=_B.active();kee.getSpan(y)==null&&(y=Iee.extract(y,p.headers));let g=nXt(y);p.routeOptions.url!=null&&g?.type===rXt.HTTP&&(g.route=p.routeOptions.url);let E={[ui.ROOT]:"@fastify/otel",[iXt]:p.method,[sXt]:p.url};p.routeOptions.url!=null&&(E[bB]=p.routeOptions.url);let S=this[Zy].tracer.startSpan("request",{attributes:E},y);try{this[Zy]._requestHook?.(S,p)}catch(_){this[Zy].logger.error({err:_},"requestHook threw")}p[UN]=kee.setSpan(y,S),p[Yy]=S,_B.with(p[UN],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let y=p[Yy];y!=null&&(y.setAttributes({[jqe]:h.statusCode}),y.end()),p[Yy]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let y=f[Yy];y!=null&&(p.statusCode>=500&&y.setStatus({code:EB.ERROR}),y.setAttributes({[jqe]:p.statusCode}),y.end()),f[Yy]=null,m(null,h)}function a(f,p,h,m){let y=f[Yy];y!=null&&(y.setStatus({code:EB.ERROR,message:h.message}),t[FN]!==!1&&y.recordException(h)),m()}function c(f,p){let h=this[qqe];return Hqe.includes(f)?h.call(this,f,d(p,f,{[ui.HOOK_NAME]:`${this.pluginName} - ${f}`,[ui.FASTIFY_TYPE]:Ky.INSTANCE,[ui.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:vm})):h.call(this,f,p)}function u(f,p){let h=this[Bqe];typeof f=="function"?(p=d(f,"notFoundHandler",{[ui.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[ui.FASTIFY_TYPE]:Ky.INSTANCE,[ui.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:vm}),h.call(this,p)):(f.preValidation!=null&&(f.preValidation=d(f.preValidation,"notFoundHandler - preValidation",{[ui.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[ui.FASTIFY_TYPE]:Ky.INSTANCE,[ui.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:vm})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[ui.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[ui.FASTIFY_TYPE]:Ky.INSTANCE,[ui.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:vm})),p=d(p,"notFoundHandler",{[ui.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[ui.FASTIFY_TYPE]:Ky.INSTANCE,[ui.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:vm}),h.call(this,f,p))}function l(f){for(let p of f)if(p?.routeOptions&&p.url&&p.method)return p;return null}function d(f,p,h={}){return function(...y){let g=this[Zy],E=l(y);if(E===null)return g.logger.debug(`Ignoring route instrumentation because ${p} was called without a Fastify request argument`),f.call(this,...y);if(g.isEnabled()===!1||E.routeOptions.config?.otel===!1)return g.logger.debug(`Ignoring route instrumentation ${E.routeOptions.method} ${E.routeOptions.url} because it is disabled`),f.call(this,...y);if(g[jN]?.({url:E.url,method:E.method})===!0)return g.logger.debug(`Ignoring route instrumentation ${E.routeOptions.method} ${E.routeOptions.url} because it matches the ignore path`),f.call(this,...y);let S=E[UN]??_B.active(),_=f.name?.length>0?f.name:this.pluginName??vm,b=g.tracer.startSpan(`${p} - ${_}`,{attributes:h},S);if(g._lifecycleHook!=null)try{g._lifecycleHook(b,{hookName:p,request:E,handler:_})}catch(T){g.logger.error({err:T},"Execution of lifecycleHook failed")}return _B.with(kee.setSpan(S,b),function(){try{let T=f.call(this,...y);return typeof T?.then=="function"?T.then(A=>(b.end(),A),A=>(b.setStatus({code:EB.ERROR,message:A.message}),g[FN]!==!1&&b.recordException(A),b.end(),Promise.reject(A))):(b.end(),T)}catch(T){throw b.setStatus({code:EB.ERROR,message:T.message}),g[FN]!==!1&&b.recordException(T),b.end(),T}},this)}}}}};xee.exports=TB;xee.exports.FastifyOtelInstrumentation=TB});var Am,HN,qN,zqe=v(()=>{(function(e){let t="fastify.name";e.FASTIFY_NAME=t;let n="fastify.type";e.FASTIFY_TYPE=n;let r="hook.name";e.HOOK_NAME=r;let i="plugin.name";e.PLUGIN_NAME=i})(Am||(Am={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})(HN||(HN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(qN||(qN={}))});var BN,Vqe=v(()=>{BN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function Oee(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[BN]||[];return s.push(i),Object.defineProperty(e,BN,{enumerable:!1,configurable:!0,value:s}),i}function vB(e,t){let n=e[BN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:ss.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[BN])}function Kqe(e,t,n){let r,i;try{i=e(),Wqe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!Wqe(i)&&(t(r,i),r))throw r;return i}}function Wqe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var Zqe=v(()=>{Me();Vqe()});function fXt(){let e=ct();e&&e.on("spanStart",t=>{Jqe(t)})}function Jqe(e){let t=vt(e).data,n=t["fastify.type"];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.fastify",[zt]:`${n}.fastify`});let r=t["fastify.name"]||t["plugin.name"]||t["hook.name"];if(typeof r=="string"){let i=r.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(i)}}var RB,JE,uXt,lXt,Yqe,dXt,AB,Xqe=v(()=>{Me();RB=_e(dr(),1),JE=_e(Yt(),1);xn();st();zqe();Zqe();uXt="0.1.0",lXt="@sentry/instrumentation-fastify-v3",Yqe="anonymous",dXt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),AB=class extends JE.InstrumentationBase{constructor(t={}){super(lXt,uXt,t)}init(){return[new JE.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_hookOnRequest(){let t=this;return function(r,i,s){if(!t.isEnabled())return s();t._wrap(i,"send",t._patchSend());let o=r,a=(0,RB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===RB.RPCType.HTTP&&(a.route=c);let u=r.method||"GET";vn().setTransactionName(`${u} ${c}`),s()}}_wrapHandler(t,n,r,i){let s=this;return this._diag.debug("Patching fastify route.handler function"),function(...o){if(!s.isEnabled())return r.apply(this,o);let a=r.name||t||Yqe,c=`${qN.MIDDLEWARE} - ${a}`,u=o[1],l=Oee(u,s.tracer,c,{[Am.FASTIFY_TYPE]:HN.MIDDLEWARE,[Am.PLUGIN_NAME]:t,[Am.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){vB(u),d.apply(this,f)}),Ve.with(Ut.setSpan(Ve.active(),l),()=>Kqe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:ss.ERROR,message:f.message}),l.recordException(f)),i||vB(u)}))}}_wrapAddHook(){let t=this;return this._diag.debug("Patching fastify server.addHook function"),function(n){return function(...i){let s=i[0],o=i[1],a=this.pluginName;if(!dXt.has(s))return n.apply(this,i);let c=typeof i[i.length-1]=="function"&&o.constructor.name!=="AsyncFunction";return n.apply(this,[s,t._wrapHandler(a,s,o,c)])}}}_patchConstructor(t){let n=this;function r(...i){let s=t.fastify.apply(this,i);return s.addHook("onRequest",n._hookOnRequest()),s.addHook("preHandler",n._hookPreHandler()),fXt(),n._wrap(s,"addHook",n._wrapAddHook()),s}return t.errorCodes!==void 0&&(r.errorCodes=t.errorCodes),r.fastify=r,r.default=r,r}_patchSend(){let t=this;return this._diag.debug("Patching fastify reply.send function"),function(r){return function(...s){let o=s[0];return t.isEnabled()?(0,JE.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),vB(this,a)}):r.apply(this,s)}}}_hookPreHandler(){let t=this;return this._diag.debug("Patching fastify preHandler function"),function(r,i,s){if(!t.isEnabled())return s();let o=r,a=o.routeOptions?.handler||o.context?.handler,c=a?.name.startsWith("bound ")?a.name.substring(6):a?.name,u=`${qN.REQUEST_HANDLER} - ${c||this.pluginName||Yqe}`,l={[Am.PLUGIN_NAME]:this.pluginName,[Am.FASTIFY_TYPE]:HN.REQUEST_HANDLER,[U8]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[Am.FASTIFY_NAME]=c);let d=Oee(i,t.tracer,u,l);Jqe(d);let{requestHook:f}=t.getConfig();return f&&(0,JE.safeExecuteInTheMiddle)(()=>f(d,{request:r}),p=>{p&&t._diag.error("request hook failed",p)},!0),Ve.with(Ut.setSpan(Ve.active(),d),()=>{s()})}}}});import*as Nee from"node:diagnostics_channel";function pXt(){let e=ct();if(e)return e.getIntegrationByName(wB)}function Qqe(e,t,n,r){let i=pXt()?.getShouldHandleError()||rBe;if(r==="diagnostics-channel"&&(this.diagnosticsChannelExists=!0),this.diagnosticsChannelExists&&r==="onError-hook"){fo&&J.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}i(e,t,n)&&Wt(e,{mechanism:{handled:!1,type:"auto.function.fastify"}})}function rBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function iBe(e){let t=vt(e),n=t.description,r=t.data,i=r["fastify.type"],s=i==="hook",o=i===n?.startsWith("handler -"),a=n==="request"||i==="request-handler";if(r[zt]||!o&&!a&&!s)return;let c=s?"hook":o?"middleware":a?"request_handler":"";e.setAttributes({[At]:"auto.http.otel.fastify",[zt]:`${c}.fastify`});let u=r["fastify.name"]||r["plugin.name"]||r["hook.name"];if(typeof u=="string"){let l=u.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(l)}}function mXt(){let e=ct();e&&e.on("spanStart",t=>{iBe(t)})}function gXt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&iBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var $qe,wB,eBe,tBe,hXt,nBe,sBe=v(()=>{$qe=_e(Gqe(),1);st();ir();WE();Xqe();wB="Fastify",eBe=rt(`${wB}.v3`,()=>new AB);tBe=rt(`${wB}.v5`,()=>{let e=new $qe.FastifyOtelInstrumentation,t=e.plugin();return Nee.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?fo&&J.error("Failed to setup Fastify instrumentation",i):(mXt(),r&&gXt(r))})}),Nee.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;Qqe.call(Qqe,r,i,s,"diagnostics-channel")}),e}),hXt=(({shouldHandleError:e})=>{let t;return{name:wB,setupOnce(){t=e||rBe,eBe(),tBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),nBe=(e={})=>hXt(e)});var Pee=w(lf=>{"use strict";Object.defineProperty(lf,"__esModule",{value:!0});lf.SpanNames=lf.TokenKind=lf.AllowedOperationTypes=void 0;var yXt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(yXt=lf.AllowedOperationTypes||(lf.AllowedOperationTypes={}));var SXt;(function(e){e.SOF="",e.EOF="",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(SXt=lf.TokenKind||(lf.TokenKind={}));var _Xt;(function(e){e.EXECUTE="graphql.execute",e.PARSE="graphql.parse",e.RESOLVE="graphql.resolve",e.VALIDATE="graphql.validate",e.SCHEMA_VALIDATE="graphql.validateSchema",e.SCHEMA_PARSE="graphql.parseSchema"})(_Xt=lf.SpanNames||(lf.SpanNames={}))});var Cee=w(GN=>{"use strict";Object.defineProperty(GN,"__esModule",{value:!0});GN.AttributeNames=void 0;var EXt;(function(e){e.SOURCE="graphql.source",e.FIELD_NAME="graphql.field.name",e.FIELD_PATH="graphql.field.path",e.FIELD_TYPE="graphql.field.type",e.PARENT_NAME="graphql.parent.name",e.OPERATION_TYPE="graphql.operation.type",e.OPERATION_NAME="graphql.operation.name",e.VARIABLES="graphql.variables.",e.ERROR_VALIDATION_NAME="graphql.validation.error"})(EXt=GN.AttributeNames||(GN.AttributeNames={}))});var kB=w(MR=>{"use strict";Object.defineProperty(MR,"__esModule",{value:!0});MR.OTEL_GRAPHQL_DATA_SYMBOL=MR.OTEL_PATCHED_SYMBOL=void 0;MR.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");MR.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var oBe=w(IB=>{"use strict";Object.defineProperty(IB,"__esModule",{value:!0});IB.OPERATION_NOT_SUPPORTED=void 0;var DPr=kB();IB.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var EBe=w(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.wrapFieldResolver=po.wrapFields=po.getSourceFromLocation=po.getOperation=po.endSpan=po.addSpanSource=po.addInputVariableAttributes=po.isPromise=void 0;var DR=(Me(),Ie(Ze)),Jy=Pee(),XE=Cee(),Rm=kB(),aBe=Object.values(Jy.AllowedOperationTypes),bXt=e=>typeof e?.then=="function";po.isPromise=bXt;var TXt=e=>typeof e=="object"&&e!==null;function Mee(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{Mee(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{Mee(e,`${t}.${r}`,i)}):e.setAttribute(`${XE.AttributeNames.VARIABLES}${String(t)}`,n)}function vXt(e,t){Object.entries(t).forEach(([n,r])=>{Mee(e,n,r)})}po.addInputVariableAttributes=vXt;function dBe(e,t,n,r,i){let s=gBe(t,n,r,i);e.setAttribute(XE.AttributeNames.SOURCE,s)}po.addSpanSource=dBe;function AXt(e,t,n,r,i){let s=fBe(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?hBe(n):pBe(n,i);return s={span:RXt(e,t,n,r,i,a)},IXt(n,i,s),{field:s,spanAdded:!0}}function RXt(e,t,n,r,i,s){let o={[XE.AttributeNames.FIELD_NAME]:r.fieldName,[XE.AttributeNames.FIELD_PATH]:i.join("."),[XE.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[XE.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${Jy.SpanNames.RESOLVE} ${o[XE.AttributeNames.FIELD_PATH]}`,{attributes:o},s?DR.trace.setSpan(DR.context.active(),s):void 0),c=n[Rm.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&dBe(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function wXt(e,t){t&&e.recordException(t),e.end()}po.endSpan=wXt;function kXt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>aBe.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>aBe.indexOf(n?.operation)!==-1)}po.getOperation=kXt;function IXt(e,t,n){return e[Rm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function fBe(e,t){return e[Rm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function pBe(e,t){for(let n=t.length-1;n>0;n--){let r=fBe(e,t.slice(0,n));if(r)return r.span}return hBe(e)}function hBe(e){return e[Rm.OTEL_GRAPHQL_DATA_SYMBOL].span}function xXt(e,t){let n=[],r=t;for(;r;){let i=r.key;e&&typeof i=="number"&&(i="*"),n.push(String(i)),r=r.prev}return n.reverse()}function OXt(e){return mBe(` -`,e)}function cBe(e){return mBe(" ",e)}function mBe(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&NXt.indexOf(a.kind)>=0&&(u="*"),a.kind===Jy.TokenKind.STRING&&(u=`"${u}"`),a.kind===Jy.TokenKind.EOF&&(u=""),a.line>c?(i+=OXt(a.line-c),c=a.line,l=cBe(a.column-1)):a.line===a.prev?.line&&(l=cBe(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}po.getSourceFromLocation=gBe;function yBe(e,t,n){if(!e||e[Rm.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Rm.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=_Be(t,n,s.resolve)),s.type)){let o=SBe(s.type);for(let a of o)yBe(a,t,n)}})}po.wrapFields=yBe;function SBe(e){return"ofType"in e?SBe(e.ofType):PXt(e)?e.getTypes():CXt(e)?[e]:[]}function PXt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function CXt(e){return"getFields"in e&&typeof e.getFields=="function"}var uBe=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:DR.SpanStatusCode.ERROR,message:t.message}),e.end())},lBe=(e,t)=>{t&&e.end()};function _Be(e,t,n,r=!1){if(i[Rm.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(TXt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Rm.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=xXt(u.mergeItems,c&&c.path),d=l.filter(h=>typeof h=="string").length,f,p=!1;if(u.depth>=0&&u.depth{try{let h=n.call(this,s,o,a,c);return(0,po.isPromise)(h)?h.then(m=>(lBe(f,p),m),m=>{throw uBe(f,m,p),m}):(lBe(f,p),h)}catch(h){throw uBe(f,h,p),h}})}return i[Rm.OTEL_PATCHED_SYMBOL]=!0,i}po.wrapFieldResolver=_Be});var bBe=w(LR=>{"use strict";Object.defineProperty(LR,"__esModule",{value:!0});LR.PACKAGE_NAME=LR.PACKAGE_VERSION=void 0;LR.PACKAGE_VERSION="0.62.0";LR.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var ABe=w(NB=>{"use strict";Object.defineProperty(NB,"__esModule",{value:!0});NB.GraphQLInstrumentation=void 0;var wm=(Me(),Ie(Ze)),Yl=Yt(),zN=Pee(),xB=Cee(),Dee=kB(),MXt=oBe(),Va=EBe(),TBe=bBe(),vBe={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},OB=[">=14.0.0 <17"],Lee=class extends Yl.InstrumentationBase{constructor(t={}){super(TBe.PACKAGE_NAME,TBe.PACKAGE_VERSION,{...vBe,...t})}setConfig(t={}){super.setConfig({...vBe,...t})}init(){let t=new Yl.InstrumentationNodeModuleDefinition("graphql",OB);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new Yl.InstrumentationNodeModuleFile("graphql/execution/execute.js",OB,t=>((0,Yl.isWrapped)(t.execute)&&this._unwrap(t,"execute"),this._wrap(t,"execute",this._patchExecute(t.defaultFieldResolver)),t),t=>{t&&this._unwrap(t,"execute")})}_addPatchingParser(){return new Yl.InstrumentationNodeModuleFile("graphql/language/parser.js",OB,t=>((0,Yl.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new Yl.InstrumentationNodeModuleFile("graphql/validation/validate.js",OB,t=>((0,Yl.isWrapped)(t.validate)&&this._unwrap(t,"validate"),this._wrap(t,"validate",this._patchValidate()),t),t=>{t&&this._unwrap(t,"validate")})}_patchExecute(t){let n=this;return function(i){return function(){let o;if(arguments.length>=2){let u=arguments;o=n._wrapExecuteArgs(u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],t)}else{let u=arguments[0];o=n._wrapExecuteArgs(u.schema,u.document,u.rootValue,u.contextValue,u.variableValues,u.operationName,u.fieldResolver,u.typeResolver,t)}let a=(0,Va.getOperation)(o.document,o.operationName),c=n._createExecuteSpan(a,o);return o.contextValue[Dee.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[Dee.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},wm.context.with(wm.trace.setSpan(wm.context.active(),c),()=>(0,Yl.safeExecuteInTheMiddle)(()=>i.apply(this,[o]),(u,l)=>{n._handleExecutionResult(c,u,l)}))}}}_handleExecutionResult(t,n,r){let i=this.getConfig();if(r===void 0||n){(0,Va.endSpan)(t,n);return}if((0,Va.isPromise)(r))r.then(s=>{if(typeof i.responseHook!="function"){(0,Va.endSpan)(t);return}this._executeResponseHook(t,s)},s=>{(0,Va.endSpan)(t,s)});else{if(typeof i.responseHook!="function"){(0,Va.endSpan)(t);return}this._executeResponseHook(t,r)}}_executeResponseHook(t,n){let{responseHook:r}=this.getConfig();r&&(0,Yl.safeExecuteInTheMiddle)(()=>{r(t,n)},i=>{i&&this._diag.error("Error running response hook",i),(0,Va.endSpan)(t,void 0)},!0)}_patchParse(){let t=this;return function(r){return function(s,o){return t._parse(this,r,s,o)}}}_patchValidate(){let t=this;return function(r){return function(s,o,a,c,u){return t._validate(this,r,s,o,a,u,c)}}}_parse(t,n,r,i){let s=this.getConfig(),o=this.tracer.startSpan(zN.SpanNames.PARSE);return wm.context.with(wm.trace.setSpan(wm.context.active(),o),()=>(0,Yl.safeExecuteInTheMiddle)(()=>n.call(t,r,i),(a,c)=>{c&&((0,Va.getOperation)(c)?c.loc&&(0,Va.addSpanSource)(o,c.loc,s.allowValues):o.updateName(zN.SpanNames.SCHEMA_PARSE)),(0,Va.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(zN.SpanNames.VALIDATE,{});return wm.context.with(wm.trace.setSpan(wm.context.active(),c),()=>(0,Yl.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(zN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:xB.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Va.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(zN.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(xB.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(xB.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=MXt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(xB.AttributeNames.OPERATION_NAME,s)}return n.document?.loc&&(0,Va.addSpanSource)(i,n.document.loc,r.allowValues),n.variableValues&&r.allowValues&&(0,Va.addInputVariableAttributes)(i,n.variableValues),i}_wrapExecuteArgs(t,n,r,i,s,o,a,c,u){if(i||(i={}),i[Dee.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c};let l=a==null,d=a??u;return a=(0,Va.wrapFieldResolver)(this.tracer,()=>this.getConfig(),d,l),t&&((0,Va.wrapFields)(t.getQueryType(),this.tracer,()=>this.getConfig()),(0,Va.wrapFields)(t.getMutationType(),this.tracer,()=>this.getConfig())),{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c}}};NB.GraphQLInstrumentation=Lee});var RBe=w(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.GraphQLInstrumentation=void 0;var DXt=ABe();Object.defineProperty(PB,"GraphQLInstrumentation",{enumerable:!0,get:function(){return DXt.GraphQLInstrumentation}})});function OBe(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function UXt(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}var wBe,kBe,IBe,LXt,xBe,NBe=v(()=>{Me();wBe=_e(RBe(),1);st();ir();ER();kBe="Graphql",IBe=rt(kBe,wBe.GraphQLInstrumentation,e=>{let t=OBe(e);return{...t,responseHook(n,r){Dr(n,"auto.graphql.otel.graphql"),r.errors?.length&&!vt(n).status&&n.setStatus({code:ss.ERROR});let s=vt(n).data,o=s["graphql.operation.type"],a=s["graphql.operation.name"];if(t.useOperationNameForRootSpan&&o){let c=os(n),l=vt(c).data[SR]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(SR,l)):typeof l=="string"?c.setAttribute(SR,[l,d]):c.setAttribute(SR,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${UXt(l)})`)}}}}),LXt=((e={})=>({name:kBe,setupOnce(){IBe(OBe(e))}})),xBe=LXt});var PBe=w(CB=>{"use strict";Object.defineProperty(CB,"__esModule",{value:!0});CB.EVENT_LISTENERS_SET=void 0;CB.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var CBe=w(MB=>{"use strict";Object.defineProperty(MB,"__esModule",{value:!0});MB.bufferTextMapGetter=void 0;MB.bufferTextMapGetter={get(e,t){if(!e)return;let n=Object.keys(e);for(let r of n)if(r===t||r.toLowerCase()===t)return e[r]?.toString()},keys(e){return e?Object.keys(e):[]}}});var MBe=w(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});Un.METRIC_MESSAGING_PROCESS_DURATION=Un.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=Un.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=Un.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=Un.MESSAGING_SYSTEM_VALUE_KAFKA=Un.MESSAGING_OPERATION_TYPE_VALUE_SEND=Un.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=Un.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=Un.ATTR_MESSAGING_SYSTEM=Un.ATTR_MESSAGING_OPERATION_TYPE=Un.ATTR_MESSAGING_OPERATION_NAME=Un.ATTR_MESSAGING_KAFKA_OFFSET=Un.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=Un.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=Un.ATTR_MESSAGING_DESTINATION_PARTITION_ID=Un.ATTR_MESSAGING_DESTINATION_NAME=Un.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;Un.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";Un.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";Un.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";Un.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";Un.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";Un.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";Un.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";Un.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";Un.ATTR_MESSAGING_SYSTEM="messaging.system";Un.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";Un.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";Un.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";Un.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";Un.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";Un.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";Un.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";Un.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var DBe=w(UR=>{"use strict";Object.defineProperty(UR,"__esModule",{value:!0});UR.PACKAGE_NAME=UR.PACKAGE_VERSION=void 0;UR.PACKAGE_VERSION="0.23.0";UR.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var qBe=w(LB=>{"use strict";Object.defineProperty(LB,"__esModule",{value:!0});LB.KafkaJsInstrumentation=void 0;var Lr=(Me(),Ie(Ze)),Jl=Yt(),jR=(xn(),Ie(Mr)),LBe=PBe(),UBe=CBe(),ot=MBe(),jBe=DBe();function DB(e,t,n){return r=>{e.add(t,{...n,...r?{[jR.ATTR_ERROR_TYPE]:r}:{}})}}function FBe(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[jR.ATTR_ERROR_TYPE]:r}:{}})}}var HBe=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],Uee=class extends Jl.InstrumentationBase{constructor(t={}){super(jBe.PACKAGE_NAME,jBe.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:HBe}}),this._sentMessages=this.meter.createCounter(ot.METRIC_MESSAGING_CLIENT_SENT_MESSAGES),this._consumedMessages=this.meter.createCounter(ot.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES),this._processDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_PROCESS_DURATION,{advice:{explicitBucketBoundaries:HBe}})}init(){let t=r=>{(0,Jl.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,Jl.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new Jl.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],r=>(t(r),this._wrap(r?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(r?.Kafka?.prototype,"consumer",this._getConsumerPatch()),r),t)}_getConsumerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,Jl.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[LBe.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[LBe.EVENT_LISTENERS_SET]=!0)}_recordClientDurationMetric(t){let[n,r]=t.payload.broker.split(":");this._clientDuration.record(t.payload.duration/1e3,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:`${t.payload.apiName}`,[jR.ATTR_SERVER_ADDRESS]:n,[jR.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,Jl.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,Jl.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,Jl.isWrapped)(s.transaction)&&t._unwrap(s,"transaction"),t._wrap(s,"transaction",t._getProducerTransactionPatch()),t._setKafkaEventListeners(s),s}}_getConsumerRunPatch(){let t=this;return n=>function(...i){let s=i[0];return s?.eachMessage&&((0,Jl.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,Jl.isWrapped)(s.eachBatch)&&t._unwrap(s,"eachBatch"),t._wrap(s,"eachBatch",t._getConsumerEachBatchPatch())),n.call(this,s)}}_getConsumerEachMessagePatch(){let t=this;return n=>function(...i){let s=i[0],o=Lr.propagation.extract(Lr.ROOT_CONTEXT,s.message.headers,UBe.bufferTextMapGetter),a=t._startConsumerSpan({topic:s.topic,message:s.message,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,ctx:o,attributes:{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)}}),c=[FBe(t._processDuration,Date.now(),{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)}),DB(t._consumedMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)})],u=Lr.context.with(Lr.trace.setSpan(o,a),()=>n.apply(this,i));return t._endSpansOnPromise([a],c,u)}}_getConsumerEachBatchPatch(){return t=>{let n=this;return function(...i){let s=i[0],o=n._startConsumerSpan({topic:s.batch.topic,message:void 0,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,ctx:Lr.ROOT_CONTEXT,attributes:{[ot.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]:s.batch.messages.length,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}});return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),o),()=>{let a=Date.now(),c=[],u=[DB(n._consumedMessages,s.batch.messages.length,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.batch.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)})];s.batch.messages.forEach(d=>{let f=Lr.propagation.extract(Lr.ROOT_CONTEXT,d.headers,UBe.bufferTextMapGetter),p=Lr.trace.getSpan(f)?.spanContext(),h;p&&(h={context:p}),c.push(n._startConsumerSpan({topic:s.batch.topic,message:d,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,link:h,attributes:{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}})),u.push(FBe(n._processDuration,a,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.batch.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}))});let l=t.apply(this,i);return c.unshift(o),n._endSpansOnPromise(c,u,l)})}}}_getProducerTransactionPatch(){let t=this;return n=>function(...i){let s=t.tracer.startSpan("transaction"),o=n.apply(this,i);return o.then(a=>{let c=a.send;a.send=function(...p){return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),s),()=>t._getSendPatch()(c).apply(this,p).catch(m=>{throw s.setStatus({code:Lr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let u=a.sendBatch;a.sendBatch=function(...p){return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),s),()=>t._getSendBatchPatch()(u).apply(this,p).catch(m=>{throw s.setStatus({code:Lr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let l=a.commit;a.commit=function(...p){let h=l.apply(this,p).then(()=>{s.setStatus({code:Lr.SpanStatusCode.OK})});return t._endSpansOnPromise([s],[],h)};let d=a.abort;a.abort=function(...p){let h=d.apply(this,p);return t._endSpansOnPromise([s],[],h)}}).catch(a=>{s.setStatus({code:Lr.SpanStatusCode.ERROR,message:a?.message}),s.recordException(a),s.end()}),o}}_getSendBatchPatch(){let t=this;return n=>function(...i){let o=i[0].topicMessages||[],a=[],c=[];o.forEach(l=>{l.messages.forEach(d=>{a.push(t._startProducerSpan(l.topic,d)),c.push(DB(t._sentMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_DESTINATION_NAME]:l.topic,...d.partition!==void 0?{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(d.partition)}:{}}))})});let u=n.apply(this,i);return t._endSpansOnPromise(a,c,u)}}_getSendPatch(){let t=this;return n=>function(...i){let s=i[0],o=s.messages.map(u=>t._startProducerSpan(s.topic,u)),a=s.messages.map(u=>DB(t._sentMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,...u.partition!==void 0?{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(u.partition)}:{}})),c=n.apply(this,i);return t._endSpansOnPromise(o,a,c)}}_endSpansOnPromise(t,n,r){return Promise.resolve(r).then(i=>(n.forEach(s=>s()),i)).catch(i=>{let s,o=jR.ERROR_TYPE_VALUE_OTHER;throw typeof i=="string"||i===void 0?s=i:typeof i=="object"&&Object.prototype.hasOwnProperty.call(i,"message")&&(s=i.message,o=i.constructor.name),n.forEach(a=>a(o)),t.forEach(a=>{a.setAttribute(jR.ATTR_ERROR_TYPE,o),a.setStatus({code:Lr.SpanStatusCode.ERROR,message:s})}),i}).finally(()=>{t.forEach(i=>i.end())})}_startConsumerSpan({topic:t,message:n,operationType:r,ctx:i,link:s,attributes:o}){let a=r===ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?"poll":r,c=this.tracer.startSpan(`${a} ${t}`,{kind:r===ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?Lr.SpanKind.CLIENT:Lr.SpanKind.CONSUMER,attributes:{...o,[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_OPERATION_TYPE]:r,[ot.ATTR_MESSAGING_OPERATION_NAME]:a,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n?.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n?.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_KAFKA_OFFSET]:n?.offset},links:s?[s]:[]},i),{consumerHook:u}=this.getConfig();return u&&n&&(0,Jl.safeExecuteInTheMiddle)(()=>u(c,{topic:t,message:n}),l=>{l&&this._diag.error("consumerHook error",l)},!0),c}_startProducerSpan(t,n){let r=this.tracer.startSpan(`send ${t}`,{kind:Lr.SpanKind.PRODUCER,attributes:{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:n.partition!==void 0?String(n.partition):void 0,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_OPERATION_TYPE]:ot.MESSAGING_OPERATION_TYPE_VALUE_SEND}});n.headers=n.headers??{},Lr.propagation.inject(Lr.trace.setSpan(Lr.context.active(),r),n.headers);let{producerHook:i}=this.getConfig();return i&&(0,Jl.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};LB.KafkaJsInstrumentation=Uee});var BBe=w(UB=>{"use strict";Object.defineProperty(UB,"__esModule",{value:!0});UB.KafkaJsInstrumentation=void 0;var jXt=qBe();Object.defineProperty(UB,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return jXt.KafkaJsInstrumentation}})});var GBe,zBe,VBe,FXt,WBe,KBe=v(()=>{GBe=_e(BBe(),1);ir();zBe="Kafka",VBe=rt(zBe,()=>new GBe.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),FXt=(()=>({name:zBe,setupOnce(){VBe()}})),WBe=FXt});var ZBe=w(FR=>{"use strict";Object.defineProperty(FR,"__esModule",{value:!0});FR.PACKAGE_NAME=FR.PACKAGE_VERSION=void 0;FR.PACKAGE_VERSION="0.58.0";FR.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var QBe=w(jB=>{"use strict";Object.defineProperty(jB,"__esModule",{value:!0});jB.LruMemoizerInstrumentation=void 0;var YBe=(Me(),Ie(Ze)),JBe=Yt(),XBe=ZBe(),jee=class extends JBe.InstrumentationBase{constructor(t={}){super(XBe.PACKAGE_NAME,XBe.PACKAGE_VERSION,t)}init(){return[new JBe.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <4"],t=>{let n=function(){let r=t.apply(this,arguments);return function(){let i=[...arguments],s=i.pop(),o=typeof s=="function"?YBe.context.bind(YBe.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};jB.LruMemoizerInstrumentation=jee});var $Be=w(FB=>{"use strict";Object.defineProperty(FB,"__esModule",{value:!0});FB.LruMemoizerInstrumentation=void 0;var HXt=QBe();Object.defineProperty(FB,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return HXt.LruMemoizerInstrumentation}})});var eGe,tGe,nGe,qXt,rGe,iGe=v(()=>{eGe=_e($Be(),1);ir();tGe="LruMemoizer",nGe=rt(tGe,()=>new eGe.LruMemoizerInstrumentation),qXt=(()=>({name:tGe,setupOnce(){nGe()}})),rGe=qXt});var sGe=w(xi=>{"use strict";Object.defineProperty(xi,"__esModule",{value:!0});xi.METRIC_DB_CLIENT_CONNECTIONS_USAGE=xi.DB_SYSTEM_VALUE_MONGODB=xi.DB_SYSTEM_NAME_VALUE_MONGODB=xi.ATTR_NET_PEER_PORT=xi.ATTR_NET_PEER_NAME=xi.ATTR_DB_SYSTEM=xi.ATTR_DB_STATEMENT=xi.ATTR_DB_OPERATION=xi.ATTR_DB_NAME=xi.ATTR_DB_MONGODB_COLLECTION=xi.ATTR_DB_CONNECTION_STRING=void 0;xi.ATTR_DB_CONNECTION_STRING="db.connection_string";xi.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";xi.ATTR_DB_NAME="db.name";xi.ATTR_DB_OPERATION="db.operation";xi.ATTR_DB_STATEMENT="db.statement";xi.ATTR_DB_SYSTEM="db.system";xi.ATTR_NET_PEER_NAME="net.peer.name";xi.ATTR_NET_PEER_PORT="net.peer.port";xi.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb";xi.DB_SYSTEM_VALUE_MONGODB="mongodb";xi.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var oGe=w(VN=>{"use strict";Object.defineProperty(VN,"__esModule",{value:!0});VN.MongodbCommandType=void 0;var BXt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(BXt=VN.MongodbCommandType||(VN.MongodbCommandType={}))});var aGe=w(HR=>{"use strict";Object.defineProperty(HR,"__esModule",{value:!0});HR.PACKAGE_NAME=HR.PACKAGE_VERSION=void 0;HR.PACKAGE_VERSION="0.67.0";HR.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var lGe=w(HB=>{"use strict";Object.defineProperty(HB,"__esModule",{value:!0});HB.MongoDBInstrumentation=void 0;var Gi=(Me(),Ie(Ze)),jn=Yt(),km=(xn(),Ie(Mr)),cl=sGe(),QE=oGe(),cGe=aGe(),uGe={requireParentSpan:!0},Fee=class e extends jn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(cGe.PACKAGE_NAME,cGe.PACKAGE_VERSION,{...uGe,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,jn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,jn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...uGe,...t})}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter(cl.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsage?.add(t,{"pool.name":n,state:r})}init(){let{v3PatchConnection:t,v3UnpatchConnection:n}=this._getV3ConnectionPatches(),{v4PatchConnect:r,v4UnpatchConnect:i}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:s,v4PatchConnectionPromise:o,v4UnpatchConnection:a}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:c,v4UnpatchConnectionPool:u}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:l,v4UnpatchSessions:d}=this._getV4SessionsPatches();return[new jn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new jn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new jn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,jn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,jn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,jn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,jn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,jn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,jn.isWrapped)(t.getMore)&&this._unwrap(t,"getMore"),this._wrap(t,"getMore",this._getV3PatchCursor()),t),v3UnpatchConnection:t=>{t!==void 0&&(this._unwrap(t,"insert"),this._unwrap(t,"remove"),this._unwrap(t,"update"),this._unwrap(t,"command"),this._unwrap(t,"query"),this._unwrap(t,"getMore"))}}}_getV4SessionsPatches(){return{v4PatchSessions:t=>((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"))}}}_getV4AcquireCommand(){let t=this;return n=>function(){let i=this.sessions.length,s=n.call(this),o=this.sessions.length;return i===o?t._connCountAdd(1,t._poolName,"used"):i-1===o&&(t._connCountAdd(-1,t._poolName,"idle"),t._connCountAdd(1,t._poolName,"used")),s}}_getV4ReleaseCommand(){let t=this;return n=>function(i){let s=n.call(this,i);return t._connCountAdd(-1,t._poolName,"used"),t._connCountAdd(1,t._poolName,"idle"),s}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:t=>{let n=t.ConnectionPool.prototype;return(0,jn.isWrapped)(n.checkOut)&&this._unwrap(n,"checkOut"),this._wrap(n,"checkOut",this._getV4ConnectionPoolCheckOut()),t},v4UnpatchConnectionPool:t=>{t!==void 0&&this._unwrap(t.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:t=>((0,jn.isWrapped)(t.connect)&&this._unwrap(t,"connect"),this._wrap(t,"connect",this._getV4ConnectCommand()),t),v4UnpatchConnect:t=>{t!==void 0&&this._unwrap(t,"connect")}}}_getV4ConnectionPoolCheckOut(){return t=>function(r){let i=Gi.context.bind(Gi.context.active(),r);return t.call(this,i)}}_getV4ConnectCommand(){let t=this;return n=>function(i,s){if(n.length===1){let a=n.call(this,i);return a&&typeof a.then=="function"&&a.then(()=>t.setPoolName(i),()=>{}),a}let o=function(a,c){if(a||!c){s(a,c);return}t.setPoolName(i),s(a,c)};return n.call(this,i,o)}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandPromise()),t),v4UnpatchConnection:t=>{t!==void 0&&this._unwrap(t.Connection.prototype,"command")}}}_getV3PatchOperation(t){let n=this;return r=>function(s,o,a,c,u){let l=Gi.trace.getSpan(Gi.context.active()),d=n._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof a!="object")return typeof c=="function"?r.call(this,s,o,a,c):r.call(this,s,o,a,c,u);let p=n._getV3SpanAttributes(o,s,a[0],t),h=n._spanNameFromAttrs(p),m=n.tracer.startSpan(h,{kind:Gi.SpanKind.CLIENT,attributes:p}),y=n._patchEnd(m,f);return typeof c=="function"?r.call(this,s,o,a,y):r.call(this,s,o,a,c,y)}}_getV3PatchCommand(){let t=this;return n=>function(i,s,o,a,c){let u=Gi.trace.getSpan(Gi.context.active()),l=t._checkSkipInstrumentation(u),d=typeof a=="function"?a:c;if(l||typeof d!="function"||typeof o!="object")return typeof a=="function"?n.call(this,i,s,o,a):n.call(this,i,s,o,a,c);let f=e._getCommandType(o),p=f===QE.MongodbCommandType.UNKNOWN?void 0:f,h=t._getV3SpanAttributes(s,i,o,p),m=t._spanNameFromAttrs(h),y=t.tracer.startSpan(m,{kind:Gi.SpanKind.CLIENT,attributes:h}),g=t._patchEnd(y,d);return typeof a=="function"?n.call(this,i,s,o,g):n.call(this,i,s,o,a,g)}}_getV4PatchCommandCallback(){let t=this;return n=>function(i,s,o,a){let c=Gi.trace.getSpan(Gi.context.active()),u=t._checkSkipInstrumentation(c),l=a,d=Object.keys(s)[0];if(typeof s!="object"||s.ismaster||s.hello)return n.call(this,i,s,o,a);let f;if(!u){let h=t._getV4SpanAttributes(this,i,s,d),m=t._spanNameFromAttrs(h);f=t.tracer.startSpan(m,{kind:Gi.SpanKind.CLIENT,attributes:h})}let p=t._patchEnd(f,l,this.id,d);return n.call(this,i,s,o,p)}}_getV4PatchCommandPromise(){let t=this;return n=>function(...i){let[s,o]=i,a=Gi.trace.getSpan(Gi.context.active()),c=t._checkSkipInstrumentation(a),u=Object.keys(o)[0],l=()=>{};if(typeof o!="object"||o.ismaster||o.hello)return n.apply(this,i);let d;if(!c){let h=t._getV4SpanAttributes(this,s,o,u),m=t._spanNameFromAttrs(h);d=t.tracer.startSpan(m,{kind:Gi.SpanKind.CLIENT,attributes:h})}let f=t._patchEnd(d,l,this.id,u),p=n.apply(this,i);return p.then(h=>f(null,h),h=>f(h)),p}}_getV3PatchFind(){let t=this;return n=>function(i,s,o,a,c,u){let l=Gi.trace.getSpan(Gi.context.active()),d=t._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof o!="object")return typeof c=="function"?n.call(this,i,s,o,a,c):n.call(this,i,s,o,a,c,u);let p=t._getV3SpanAttributes(s,i,o,"find"),h=t._spanNameFromAttrs(p),m=t.tracer.startSpan(h,{kind:Gi.SpanKind.CLIENT,attributes:p}),y=t._patchEnd(m,f);return typeof c=="function"?n.call(this,i,s,o,a,y):n.call(this,i,s,o,a,c,y)}}_getV3PatchCursor(){let t=this;return n=>function(i,s,o,a,c,u){let l=Gi.trace.getSpan(Gi.context.active()),d=t._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function")return typeof c=="function"?n.call(this,i,s,o,a,c):n.call(this,i,s,o,a,c,u);let p=t._getV3SpanAttributes(s,i,o.cmd,"getMore"),h=t._spanNameFromAttrs(p),m=t.tracer.startSpan(h,{kind:Gi.SpanKind.CLIENT,attributes:p}),y=t._patchEnd(m,f);return typeof c=="function"?n.call(this,i,s,o,a,y):n.call(this,i,s,o,a,c,y)}}static _getCommandType(t){return t.createIndexes!==void 0?QE.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?QE.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?QE.MongodbCommandType.IS_MASTER:t.count!==void 0?QE.MongodbCommandType.COUNT:t.aggregate!==void 0?QE.MongodbCommandType.AGGREGATE:QE.MongodbCommandType.UNKNOWN}_getV4SpanAttributes(t,n,r,i){let s,o;if(t){let c=typeof t.address=="string"?t.address.split(":"):"";c.length===2&&(s=c[0],o=c[1])}let a;return r?.documents&&r.documents[0]?a=r.documents[0]:r?.cursors?a=r.cursors:a=r,this._getSpanAttributes(n.db,n.collection,s,o,a,i)}_getV3SpanAttributes(t,n,r,i){let s,o;if(n&&n.s&&(s=n.s.options?.host??n.s.host,o=(n.s.options?.port??n.s.port)?.toString(),s==null||o==null)){let l=n.description?.address;if(l){let d=l.split(":");s=d[0],o=d[1]}}let[a,c]=t.toString().split("."),u=r?.query??r?.q??r;return this._getSpanAttributes(a,c,s,o,u,i)}_getSpanAttributes(t,n,r,i,s,o){let a={};if(this._dbSemconvStability&jn.SemconvStability.OLD&&(a[cl.ATTR_DB_SYSTEM]=cl.DB_SYSTEM_VALUE_MONGODB,a[cl.ATTR_DB_NAME]=t,a[cl.ATTR_DB_MONGODB_COLLECTION]=n,a[cl.ATTR_DB_OPERATION]=o,a[cl.ATTR_DB_CONNECTION_STRING]=`mongodb://${r}:${i}/${t}`),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[km.ATTR_DB_SYSTEM_NAME]=cl.DB_SYSTEM_NAME_VALUE_MONGODB,a[km.ATTR_DB_NAMESPACE]=t,a[km.ATTR_DB_OPERATION_NAME]=o,a[km.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&jn.SemconvStability.OLD&&(a[cl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[km.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&jn.SemconvStability.OLD&&(a[cl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[km.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,jn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&jn.SemconvStability.OLD&&(a[cl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[km.ATTR_DB_QUERY_TEXT]=l)},l=>{l&&this._diag.error("Error running dbStatementSerializer hook",l)},!0)}return a}_spanNameFromAttrs(t){let n;return this._dbSemconvStability&jn.SemconvStability.STABLE?n=[t[km.ATTR_DB_OPERATION_NAME],t[km.ATTR_DB_COLLECTION_NAME]].filter(r=>r).join(" ")||cl.DB_SYSTEM_NAME_VALUE_MONGODB:n=`mongodb.${t[cl.ATTR_DB_OPERATION]||"command"}`,n}_getDefaultDbStatementReplacer(){let t=new WeakSet;return(n,r)=>typeof r!="object"||!r?"?":t.has(r)?"[Circular]":(t.add(r),r)}_defaultDbStatementSerializer(t){let{enhancedDatabaseReporting:n}=this.getConfig();return n?JSON.stringify(t):JSON.stringify(t,this._getDefaultDbStatementReplacer())}_handleExecutionResult(t,n){let{responseHook:r}=this.getConfig();typeof r=="function"&&(0,jn.safeExecuteInTheMiddle)(()=>{r(t,{data:n})},i=>{i&&this._diag.error("Error running response hook",i)},!0)}_patchEnd(t,n,r,i){let s=Gi.context.active(),o=this,a=!1;return function(...u){if(!a){a=!0;let l=u[0];if(t){if(l instanceof Error)t.setStatus({code:Gi.SpanStatusCode.ERROR,message:l.message});else{let d=u[1];o._handleExecutionResult(t,d)}t.end()}i==="endSessions"&&o._connCountAdd(-1,o._poolName,"idle")}return Gi.context.with(s,()=>n.apply(this,u))}}setPoolName(t){let n=t.hostAddress?.host,r=t.hostAddress?.port,i=t.dbName,s=`mongodb://${n}:${r}/${i}`;this._poolName=s}_checkSkipInstrumentation(t){return this.getConfig().requireParentSpan===!0&&t===void 0}};HB.MongoDBInstrumentation=Fee});var dGe=w(WN=>{"use strict";Object.defineProperty(WN,"__esModule",{value:!0});WN.MongodbCommandType=void 0;var GXt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(GXt=WN.MongodbCommandType||(WN.MongodbCommandType={}))});var fGe=w(qR=>{"use strict";Object.defineProperty(qR,"__esModule",{value:!0});qR.MongodbCommandType=qR.MongoDBInstrumentation=void 0;var zXt=lGe();Object.defineProperty(qR,"MongoDBInstrumentation",{enumerable:!0,get:function(){return zXt.MongoDBInstrumentation}});var VXt=dGe();Object.defineProperty(qR,"MongodbCommandType",{enumerable:!0,get:function(){return VXt.MongodbCommandType}})});function WXt(e){let t=Hee(e);return JSON.stringify(t)}function Hee(e){if(Array.isArray(e))return e.map(t=>Hee(t));if(KXt(e)){let t={};return Object.entries(e).map(([n,r])=>[n,Hee(r)]).reduce((n,r)=>(YXt(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function KXt(e){return typeof e=="object"&&e!==null&&!ZXt(e)}function ZXt(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function YXt(e){return Array.isArray(e)}var pGe,hGe,mGe,JXt,gGe,yGe=v(()=>{pGe=_e(fGe(),1);ir();hGe="Mongo",mGe=rt(hGe,()=>new pGe.MongoDBInstrumentation({dbStatementSerializer:WXt,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));JXt=(()=>({name:hGe,setupOnce(){mGe()}})),gGe=JXt});var qee=w(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.DB_SYSTEM_NAME_VALUE_MONGODB=zs.ATTR_NET_PEER_PORT=zs.ATTR_NET_PEER_NAME=zs.ATTR_DB_USER=zs.ATTR_DB_SYSTEM=zs.ATTR_DB_STATEMENT=zs.ATTR_DB_OPERATION=zs.ATTR_DB_NAME=zs.ATTR_DB_MONGODB_COLLECTION=void 0;zs.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";zs.ATTR_DB_NAME="db.name";zs.ATTR_DB_OPERATION="db.operation";zs.ATTR_DB_STATEMENT="db.statement";zs.ATTR_DB_SYSTEM="db.system";zs.ATTR_DB_USER="db.user";zs.ATTR_NET_PEER_NAME="net.peer.name";zs.ATTR_NET_PEER_PORT="net.peer.port";zs.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb"});var EGe=w(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.handleCallbackResponse=Xy.handlePromiseResponse=Xy.getAttributesFromCollection=void 0;var SGe=(Me(),Ie(Ze)),ZN=Yt(),KN=qee(),qB=(xn(),Ie(Mr));function XXt(e,t,n){let r={};return t&ZN.SemconvStability.OLD&&(r[KN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[KN.ATTR_DB_NAME]=e.conn.name,r[KN.ATTR_DB_USER]=e.conn.user),t&ZN.SemconvStability.STABLE&&(r[qB.ATTR_DB_COLLECTION_NAME]=e.name,r[qB.ATTR_DB_NAMESPACE]=e.conn.name),n&ZN.SemconvStability.OLD&&(r[KN.ATTR_NET_PEER_NAME]=e.conn.host,r[KN.ATTR_NET_PEER_PORT]=e.conn.port),n&ZN.SemconvStability.STABLE&&(r[qB.ATTR_SERVER_ADDRESS]=e.conn.host,r[qB.ATTR_SERVER_PORT]=e.conn.port),r}Xy.getAttributesFromCollection=XXt;function _Ge(e,t={}){e.recordException(t),e.setStatus({code:SGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` -Mongoose Error Code: ${t.code}`:""}`})}function Bee(e,t,n,r=void 0){n&&(0,ZN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&SGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function QXt(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(Bee(t,i,n,r),i)).catch(i=>{throw _Ge(t,i),i}).finally(()=>t.end()):(Bee(t,e,n,r),t.end(),e)}Xy.handlePromiseResponse=QXt;function $Xt(e,t,n,r,i,s,o=void 0){let a=0;return i.length===2?a=1:i.length===3&&(a=2),i[a]=(c,u)=>(c?_Ge(r,c):Bee(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}Xy.handleCallbackResponse=$Xt});var bGe=w(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});BR.PACKAGE_NAME=BR.PACKAGE_VERSION=void 0;BR.PACKAGE_VERSION="0.60.0";BR.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var wGe=w(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.MongooseInstrumentation=uu._ALREADY_INSTRUMENTED=uu._STORED_PARENT_SPAN=void 0;var ho=(Me(),Ie(Ze)),eQt=dr(),Gee=EGe(),la=Yt(),TGe=bGe(),Qy=qee(),$E=(xn(),Ie(Mr)),BB=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],tQt=["remove","count","findOneAndRemove",...BB],nQt=["count","findOneAndRemove",...BB],rQt=[...BB];function vGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?tQt:e.startsWith("7.")?nQt:rQt:BB}function AGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function RGe(e){return!e||!e.startsWith("8.")?!1:parseInt(e.split(".")[1],10)>=21}uu._STORED_PARENT_SPAN=Symbol("stored-parent-span");uu._ALREADY_INSTRUMENTED=Symbol("already-instrumented");var zee=class extends la.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(TGe.PACKAGE_NAME,TGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,la.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,la.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new la.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(t,n){let r=t[Symbol.toStringTag]==="Module"?t.default:t;return this._wrap(r.Model.prototype,"save",this.patchOnModelMethods("save",n)),r.Model.prototype.$save=r.Model.prototype.save,AGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),RGe(n)&&(this._wrap(r.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne",n)),this._wrap(r.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne",n))),this._wrap(r.Query.prototype,"exec",this.patchQueryExec(n)),this._wrap(r.Aggregate.prototype,"exec",this.patchAggregateExec(n)),vGe(n).forEach(s=>{this._wrap(r.Query.prototype,s,this.patchAndCaptureSpanContext(s))}),this._wrap(r.Model,"aggregate",this.patchModelAggregate()),this._wrap(r.Model,"insertMany",this.patchModelStatic("insertMany",n)),this._wrap(r.Model,"bulkWrite",this.patchModelStatic("bulkWrite",n)),r}unpatch(t,n){let r=t[Symbol.toStringTag]==="Module"?t.default:t,i=vGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,AGe(n)&&this._unwrap(r.Model.prototype,"remove"),RGe(n)&&(this._unwrap(r.Model.prototype,"updateOne"),this._unwrap(r.Model.prototype,"deleteOne")),this._unwrap(r.Query.prototype,"exec"),this._unwrap(r.Aggregate.prototype,"exec"),i.forEach(s=>{this._unwrap(r.Query.prototype,s)}),this._unwrap(r.Model,"aggregate"),this._unwrap(r.Model,"insertMany"),this._unwrap(r.Model,"bulkWrite")}patchAggregateExec(t){let n=this;return r=>function(s){if(n.getConfig().requireParentSpan&&ho.trace.getSpan(ho.context.active())===void 0)return r.apply(this,arguments);let o=this[uu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c("aggregate",{options:this.options,aggregatePipeline:this._pipeline});n._dbSemconvStability&la.SemconvStability.OLD&&(a[Qy.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&la.SemconvStability.STABLE&&(a[$E.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this._model.collection,this._model?.modelName,"aggregate",a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchQueryExec(t){let n=this;return r=>function(s){if(this[uu._ALREADY_INSTRUMENTED])return r.apply(this,arguments);if(n.getConfig().requireParentSpan&&ho.trace.getSpan(ho.context.active())===void 0)return r.apply(this,arguments);let o=this[uu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});n._dbSemconvStability&la.SemconvStability.OLD&&(a[Qy.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&la.SemconvStability.STABLE&&(a[$E.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this.mongooseCollection,this.model.modelName,this.op,a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchOnModelMethods(t,n){let r=this;return i=>function(o,a){if(r.getConfig().requireParentSpan&&ho.trace.getSpan(ho.context.active())===void 0)return i.apply(this,arguments);let c={document:this};o&&!(o instanceof Function)&&(c.options=o);let u={},{dbStatementSerializer:l}=r.getConfig();if(l){let f=l(t,c);r._dbSemconvStability&la.SemconvStability.OLD&&(u[Qy.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&la.SemconvStability.STABLE&&(u[$E.ATTR_DB_QUERY_TEXT]=f)}let d=r._startSpan(this.constructor.collection,this.constructor.modelName,t,u);return o instanceof Function&&(a=o,o=void 0),r._handleResponse(d,i,this,arguments,a,n)}}_patchDocumentUpdateMethods(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&ho.trace.getSpan(ho.context.active())===void 0)return i.apply(this,arguments);let u=c,l=o,d=a;typeof o=="function"?(u=o,l=void 0,d=void 0):typeof a=="function"&&(u=a,d=void 0);let f={},p=r.getConfig().dbStatementSerializer;if(p){let y=p(t,{condition:{_id:this._id},updates:l,options:d});r._dbSemconvStability&la.SemconvStability.OLD&&(f[Qy.ATTR_DB_STATEMENT]=y),r._dbSemconvStability&la.SemconvStability.STABLE&&(f[$E.ATTR_DB_QUERY_TEXT]=y)}let h=r._startSpan(this.constructor.collection,this.constructor.modelName,t,f),m=r._handleResponse(h,i,this,arguments,u,n);return m&&typeof m=="object"&&(m[uu._ALREADY_INSTRUMENTED]=!0),m}}patchModelStatic(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&ho.trace.getSpan(ho.context.active())===void 0)return i.apply(this,arguments);typeof a=="function"&&(c=a,a=void 0);let u={};switch(t){case"insertMany":u.documents=o;break;case"bulkWrite":u.operations=o;break;default:u.document=o;break}a!==void 0&&(u.options=a);let l={},{dbStatementSerializer:d}=r.getConfig();if(d){let p=d(t,u);r._dbSemconvStability&la.SemconvStability.OLD&&(l[Qy.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&la.SemconvStability.STABLE&&(l[$E.ATTR_DB_QUERY_TEXT]=p)}let f=r._startSpan(this.collection,this.modelName,t,l);return r._handleResponse(f,i,this,arguments,c,n)}}patchModelAggregate(){let t=this;return n=>function(){let i=ho.trace.getSpan(ho.context.active()),s=t._callOriginalFunction(()=>n.apply(this,arguments));return s&&(s[uu._STORED_PARENT_SPAN]=i),s}}patchAndCaptureSpanContext(t){let n=this;return r=>function(){return this[uu._STORED_PARENT_SPAN]=ho.trace.getSpan(ho.context.active()),n._callOriginalFunction(()=>r.apply(this,arguments))}}_startSpan(t,n,r,i,s){let o={...i,...(0,Gee.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&la.SemconvStability.OLD&&(o[Qy.ATTR_DB_OPERATION]=r,o[Qy.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&la.SemconvStability.STABLE&&(o[$E.ATTR_DB_OPERATION_NAME]=r,o[$E.ATTR_DB_SYSTEM_NAME]=Qy.DB_SYSTEM_NAME_VALUE_MONGODB);let a=this._dbSemconvStability&la.SemconvStability.STABLE?`${r} ${t.name}`:`mongoose.${n}.${r}`;return this.tracer.startSpan(a,{kind:ho.SpanKind.CLIENT,attributes:o},s?ho.trace.setSpan(ho.context.active(),s):void 0)}_handleResponse(t,n,r,i,s,o=void 0){let a=this;if(s instanceof Function)return a._callOriginalFunction(()=>(0,Gee.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,Gee.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?ho.context.with((0,eQt.suppressTracing)(ho.context.active()),t):t()}};uu.MongooseInstrumentation=zee});var kGe=w(GB=>{"use strict";Object.defineProperty(GB,"__esModule",{value:!0});GB.MongooseInstrumentation=void 0;var iQt=wGe();Object.defineProperty(GB,"MongooseInstrumentation",{enumerable:!0,get:function(){return iQt.MongooseInstrumentation}})});var IGe,xGe,OGe,sQt,NGe,PGe=v(()=>{IGe=_e(kGe(),1);ir();xGe="Mongoose",OGe=rt(xGe,()=>new IGe.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),sQt=(()=>({name:xGe,setupOnce(){OGe()}})),NGe=sQt});var CGe=w(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});Vs.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Vs.DB_SYSTEM_VALUE_MYSQL=Vs.ATTR_NET_PEER_PORT=Vs.ATTR_NET_PEER_NAME=Vs.ATTR_DB_USER=Vs.ATTR_DB_SYSTEM=Vs.ATTR_DB_STATEMENT=Vs.ATTR_DB_NAME=Vs.ATTR_DB_CONNECTION_STRING=void 0;Vs.ATTR_DB_CONNECTION_STRING="db.connection_string";Vs.ATTR_DB_NAME="db.name";Vs.ATTR_DB_STATEMENT="db.statement";Vs.ATTR_DB_SYSTEM="db.system";Vs.ATTR_DB_USER="db.user";Vs.ATTR_NET_PEER_NAME="net.peer.name";Vs.ATTR_NET_PEER_PORT="net.peer.port";Vs.DB_SYSTEM_VALUE_MYSQL="mysql";Vs.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var MGe=w(YN=>{"use strict";Object.defineProperty(YN,"__esModule",{value:!0});YN.AttributeNames=void 0;var oQt;(function(e){e.MYSQL_VALUES="db.mysql.values"})(oQt=YN.AttributeNames||(YN.AttributeNames={}))});var DGe=w(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.getPoolNameOld=Wa.arrayStringifyHelper=Wa.getSpanName=Wa.getDbValues=Wa.getDbQueryText=Wa.getJDBCString=Wa.getConfig=void 0;function aQt(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}Wa.getConfig=aQt;function cQt(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}Wa.getJDBCString=cQt;function uQt(e){return typeof e=="string"?e:e.sql}Wa.getDbQueryText=uQt;function lQt(e,t){return Vee(typeof e=="string"?t:t||e.values)}Wa.getDbValues=lQt;function dQt(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}Wa.getSpanName=dQt;function Vee(e){return e?`[${e.toString()}]`:""}Wa.arrayStringifyHelper=Vee;function fQt(e){let t=e.config.connectionConfig,n="";return n+=t.host?`host: '${t.host}', `:"",n+=t.port?`port: ${t.port}, `:"",n+=t.database?`database: '${t.database}', `:"",n+=t.user?`user: '${t.user}'`:"",t.user||(n=n.substring(0,n.length-2)),n.trim()}Wa.getPoolNameOld=fQt});var LGe=w(GR=>{"use strict";Object.defineProperty(GR,"__esModule",{value:!0});GR.PACKAGE_NAME=GR.PACKAGE_VERSION=void 0;GR.PACKAGE_VERSION="0.60.0";GR.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var jGe=w(zB=>{"use strict";Object.defineProperty(zB,"__esModule",{value:!0});zB.MySQLInstrumentation=void 0;var lu=(Me(),Ie(Ze)),Xl=Yt(),zR=(xn(),Ie(Mr)),Im=CGe(),pQt=MGe(),eb=DGe(),UGe=LGe(),Wee=class extends Xl.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(UGe.PACKAGE_NAME,UGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Xl.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Xl.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Im.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsageOld?.add(t,{state:r,name:n})}init(){return[new Xl.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,Xl.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,Xl.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,Xl.isWrapped)(t.createPoolCluster)&&this._unwrap(t,"createPoolCluster"),this._wrap(t,"createPoolCluster",this._patchCreatePoolCluster()),t),t=>{t!==void 0&&(this._unwrap(t,"createConnection"),this._unwrap(t,"createPool"),this._unwrap(t,"createPoolCluster"))})]}_patchCreateConnection(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),s}}}_patchCreatePool(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"end",n._patchPoolEnd(s)),n._setPoolCallbacks(s,""),s}}}_patchPoolEnd(t){return n=>{let r=this;return function(s){let o=t._allConnections.length,a=t._freeConnections.length,c=o-a,u=(0,eb.getPoolNameOld)(t);r._connCountAdd(-c,u,"used"),r._connCountAdd(-a,u,"idle"),n.apply(t,arguments)}}}_patchCreatePoolCluster(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"add",n._patchAdd(s)),s}}}_patchAdd(t){return n=>{let r=this;return function(s,o){if(!r._enabled)return r._unwrap(t,"add"),n.apply(t,arguments);n.apply(t,arguments);let a=t._nodes;if(a){let c=typeof s=="object"?"CLUSTER::"+t._lastId:String(s),u=a[c].pool;r._setPoolCallbacks(u,s)}}}}_patchGetConnection(t){return n=>{let r=this;return function(s,o,a){if(!r._enabled)return r._unwrap(t,"getConnection"),n.apply(t,arguments);if(arguments.length===1&&typeof s=="function"){let c=r._getConnectionCallbackPatchFn(s);return n.call(t,c)}if(arguments.length===2&&typeof o=="function"){let c=r._getConnectionCallbackPatchFn(o);return n.call(t,s,c)}if(arguments.length===3&&typeof a=="function"){let c=r._getConnectionCallbackPatchFn(a);return n.call(t,s,o,c)}return n.apply(t,arguments)}}}_getConnectionCallbackPatchFn(t){let n=this,r=lu.context.active();return function(i,s){s&&((0,Xl.isWrapped)(s.query)||n._wrap(s,"query",n._patchQuery(s))),typeof t=="function"&&lu.context.with(r,t,this,i,s)}}_patchQuery(t){return n=>{let r=this;return function(i,s,o){if(!r._enabled)return r._unwrap(t,"query"),n.apply(t,arguments);let a={},{host:c,port:u,database:l,user:d}=(0,eb.getConfig)(t.config),f=parseInt(u,10),p=(0,eb.getDbQueryText)(i);r._dbSemconvStability&Xl.SemconvStability.OLD&&(a[Im.ATTR_DB_SYSTEM]=Im.DB_SYSTEM_VALUE_MYSQL,a[Im.ATTR_DB_CONNECTION_STRING]=(0,eb.getJDBCString)(c,u,l),a[Im.ATTR_DB_NAME]=l,a[Im.ATTR_DB_USER]=d,a[Im.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&Xl.SemconvStability.STABLE&&(a[zR.ATTR_DB_SYSTEM_NAME]=zR.DB_SYSTEM_NAME_VALUE_MYSQL,a[zR.ATTR_DB_NAMESPACE]=l,a[zR.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&Xl.SemconvStability.OLD&&(a[Im.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Im.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&Xl.SemconvStability.STABLE&&(a[zR.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[zR.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,eb.getSpanName)(i),{kind:lu.SpanKind.CLIENT,attributes:a});if(r.getConfig().enhancedDatabaseReporting){let g;Array.isArray(s)?g=s:arguments[2]&&(g=[s]),h.setAttribute(pQt.AttributeNames.MYSQL_VALUES,(0,eb.getDbValues)(i,g))}let m=Array.from(arguments).findIndex(g=>typeof g=="function"),y=lu.context.active();if(m===-1){let g=lu.context.with(lu.trace.setSpan(lu.context.active(),h),()=>n.apply(t,arguments));return lu.context.bind(y,g),g.on("error",E=>h.setStatus({code:lu.SpanStatusCode.ERROR,message:E.message})).on("end",()=>{h.end()})}else return r._wrap(arguments,m,r._patchCallbackQuery(h,y)),lu.context.with(lu.trace.setSpan(lu.context.active(),h),()=>n.apply(t,arguments))}}}_patchCallbackQuery(t,n){return r=>function(i,s,o){return i&&t.setStatus({code:lu.SpanStatusCode.ERROR,message:i.message}),t.end(),lu.context.with(n,()=>r(...arguments))}}_setPoolCallbacks(t,n){let r=n||(0,eb.getPoolNameOld)(t);t.on("connection",i=>{this._connCountAdd(1,r,"idle")}),t.on("acquire",i=>{this._connCountAdd(-1,r,"idle"),this._connCountAdd(1,r,"used")}),t.on("release",i=>{this._connCountAdd(1,r,"idle"),this._connCountAdd(-1,r,"used")})}};zB.MySQLInstrumentation=Wee});var FGe=w(VB=>{"use strict";Object.defineProperty(VB,"__esModule",{value:!0});VB.MySQLInstrumentation=void 0;var hQt=jGe();Object.defineProperty(VB,"MySQLInstrumentation",{enumerable:!0,get:function(){return hQt.MySQLInstrumentation}})});var HGe,qGe,BGe,mQt,GGe,zGe=v(()=>{HGe=_e(FGe(),1);ir();qGe="Mysql",BGe=rt(qGe,()=>new HGe.MySQLInstrumentation({})),mQt=(()=>({name:qGe,setupOnce(){BGe()}})),GGe=mQt});var Kee=w(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.DB_SYSTEM_VALUE_MYSQL=Fo.ATTR_NET_PEER_PORT=Fo.ATTR_NET_PEER_NAME=Fo.ATTR_DB_USER=Fo.ATTR_DB_SYSTEM=Fo.ATTR_DB_STATEMENT=Fo.ATTR_DB_NAME=Fo.ATTR_DB_CONNECTION_STRING=void 0;Fo.ATTR_DB_CONNECTION_STRING="db.connection_string";Fo.ATTR_DB_NAME="db.name";Fo.ATTR_DB_STATEMENT="db.statement";Fo.ATTR_DB_SYSTEM="db.system";Fo.ATTR_DB_USER="db.user";Fo.ATTR_NET_PEER_NAME="net.peer.name";Fo.ATTR_NET_PEER_PORT="net.peer.port";Fo.DB_SYSTEM_VALUE_MYSQL="mysql"});var Yee=w(WB=>{"use strict";Object.defineProperty(WB,"__esModule",{value:!0});WB.addSqlCommenterComment=void 0;var Zee=(Me(),Ie(Ze)),gQt=dr();function yQt(e){let t=e.indexOf("--");if(t>=0)return!0;if(e.indexOf("/*")<0)return!1;let r=e.indexOf("*/");return t`%${t.charCodeAt(0).toString(16).toUpperCase()}`)}function _Qt(e,t){if(typeof t!="string"||t.length===0||yQt(t))return t;let n=new gQt.W3CTraceContextPropagator,r={};n.inject(Zee.trace.setSpan(Zee.ROOT_CONTEXT,e),r,Zee.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=SQt(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}WB.addSqlCommenterComment=_Qt});var VGe=w(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.getConnectionPrototypeToInstrument=Ql.once=Ql.getSpanName=Ql.getQueryText=Ql.getConnectionAttributes=void 0;var JN=Kee(),KB=Yt(),Jee=(xn(),Ie(Mr));function EQt(e,t,n){let{host:r,port:i,database:s,user:o}=bQt(e),a={};t&KB.SemconvStability.OLD&&(a[JN.ATTR_DB_CONNECTION_STRING]=TQt(r,i,s),a[JN.ATTR_DB_NAME]=s,a[JN.ATTR_DB_USER]=o),t&KB.SemconvStability.STABLE&&(a[Jee.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&KB.SemconvStability.OLD&&(a[JN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[JN.ATTR_NET_PEER_PORT]=c)),n&KB.SemconvStability.STABLE&&(a[Jee.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[Jee.ATTR_SERVER_PORT]=c)),a}Ql.getConnectionAttributes=EQt;function bQt(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}function TQt(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function vQt(e,t,n,r=!1,i=AQt){let[s,o]=typeof e=="string"?[e,n]:[e.sql,RQt(e)?n||e.values:n];try{return r?i(s):t&&o?t(s,o):s}catch{return"Could not determine the query due to an error in masking or formatting"}}Ql.getQueryText=vQt;function AQt(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function RQt(e){return"values"in e}function wQt(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}Ql.getSpanName=wQt;var kQt=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};Ql.once=kQt;function IQt(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}Ql.getConnectionPrototypeToInstrument=IQt});var WGe=w(VR=>{"use strict";Object.defineProperty(VR,"__esModule",{value:!0});VR.PACKAGE_NAME=VR.PACKAGE_VERSION=void 0;VR.PACKAGE_VERSION="0.60.0";VR.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var JGe=w(ZB=>{"use strict";Object.defineProperty(ZB,"__esModule",{value:!0});ZB.MySQL2Instrumentation=void 0;var KGe=(Me(),Ie(Ze)),df=Yt(),Xee=Kee(),ZGe=Yee(),WR=VGe(),YGe=WGe(),Qee=(xn(),Ie(Mr)),$ee=[">=1.4.2 <4"],ete=class extends df.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(YGe.PACKAGE_NAME,YGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,df.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,df.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let t;function n(s){!t&&s.format&&(t=s.format)}let r=s=>{(0,df.isWrapped)(s.query)&&this._unwrap(s,"query"),this._wrap(s,"query",this._patchQuery(t,!1)),(0,df.isWrapped)(s.execute)&&this._unwrap(s,"execute"),this._wrap(s,"execute",this._patchQuery(t,!0))},i=s=>{this._unwrap(s,"query"),this._unwrap(s,"execute")};return[new df.InstrumentationNodeModuleDefinition("mysql2",$ee,s=>(n(s),s),()=>{},[new df.InstrumentationNodeModuleFile("mysql2/promise.js",$ee,s=>(n(s),s),()=>{}),new df.InstrumentationNodeModuleFile("mysql2/lib/connection.js",$ee,s=>{let o=(0,WR.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,WR.getConnectionPrototypeToInstrument)(s);i(o)})])]}_patchQuery(t,n){return r=>{let i=this;return function(s,o,a){let c;Array.isArray(o)?c=o:arguments[2]&&(c=[o]);let{maskStatement:u,maskStatementHook:l,responseHook:d}=i.getConfig(),f=(0,WR.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,WR.getQueryText)(s,t,c,u,l);i._dbSemconvStability&df.SemconvStability.OLD&&(f[Xee.ATTR_DB_SYSTEM]=Xee.DB_SYSTEM_VALUE_MYSQL,f[Xee.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&df.SemconvStability.STABLE&&(f[Qee.ATTR_DB_SYSTEM_NAME]=Qee.DB_SYSTEM_NAME_VALUE_MYSQL,f[Qee.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,WR.getSpanName)(s),{kind:KGe.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,ZGe.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,ZGe.addSqlCommenterComment)(h,s.sql)}));let m=(0,WR.once)((y,g)=>{y?h.setStatus({code:KGe.SpanStatusCode.ERROR,message:y.message}):typeof d=="function"&&(0,df.safeExecuteInTheMiddle)(()=>{d(h,{queryResults:g})},E=>{E&&i._diag.warn("Failed executing responseHook",E)},!0),h.end()});if(arguments.length===1){typeof s.onResult=="function"&&i._wrap(s,"onResult",i._patchCallbackQuery(m));let y=r.apply(this,arguments);return y.once("error",g=>{m(g)}).once("result",g=>{m(void 0,g)}),y}return typeof arguments[1]=="function"?i._wrap(arguments,1,i._patchCallbackQuery(m)):typeof arguments[2]=="function"&&i._wrap(arguments,2,i._patchCallbackQuery(m)),r.apply(this,arguments)}}}_patchCallbackQuery(t){return n=>function(r,i,s){return t(r,i),n(...arguments)}}};ZB.MySQL2Instrumentation=ete});var XGe=w(YB=>{"use strict";Object.defineProperty(YB,"__esModule",{value:!0});YB.MySQL2Instrumentation=void 0;var xQt=JGe();Object.defineProperty(YB,"MySQL2Instrumentation",{enumerable:!0,get:function(){return xQt.MySQL2Instrumentation}})});var QGe,$Ge,eze,OQt,tze,nze=v(()=>{QGe=_e(XGe(),1);ir();$Ge="Mysql2",eze=rt($Ge,()=>new QGe.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),OQt=(()=>({name:$Ge,setupOnce(){eze()}})),tze=OQt});var rze=w(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.DB_SYSTEM_VALUE_REDIS=Ka.DB_SYSTEM_NAME_VALUE_REDIS=Ka.ATTR_NET_PEER_PORT=Ka.ATTR_NET_PEER_NAME=Ka.ATTR_DB_SYSTEM=Ka.ATTR_DB_STATEMENT=Ka.ATTR_DB_CONNECTION_STRING=void 0;Ka.ATTR_DB_CONNECTION_STRING="db.connection_string";Ka.ATTR_DB_STATEMENT="db.statement";Ka.ATTR_DB_SYSTEM="db.system";Ka.ATTR_NET_PEER_NAME="net.peer.name";Ka.ATTR_NET_PEER_PORT="net.peer.port";Ka.DB_SYSTEM_NAME_VALUE_REDIS="redis";Ka.DB_SYSTEM_VALUE_REDIS="redis"});var ize=w(JB=>{"use strict";Object.defineProperty(JB,"__esModule",{value:!0});JB.endSpan=void 0;var NQt=(Me(),Ie(Ze)),PQt=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:NQt.SpanStatusCode.ERROR,message:t.message})),e.end()};JB.endSpan=PQt});var QB=w(XB=>{"use strict";Object.defineProperty(XB,"__esModule",{value:!0});XB.defaultDbStatementSerializer=void 0;var CQt=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],MQt=(e,t)=>{if(Array.isArray(t)&&t.length){let n=CQt.find(({regex:i})=>i.test(e))?.args??0,r=n>=0?t.slice(0,n):t;return t.length>r.length&&r.push(`[${t.length-n} other arguments]`),`${e} ${r.join(" ")}`}return e};XB.defaultDbStatementSerializer=MQt});var sze=w(KR=>{"use strict";Object.defineProperty(KR,"__esModule",{value:!0});KR.PACKAGE_NAME=KR.PACKAGE_VERSION=void 0;KR.PACKAGE_VERSION="0.62.0";KR.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var uze=w($B=>{"use strict";Object.defineProperty($B,"__esModule",{value:!0});$B.IORedisInstrumentation=void 0;var $y=(Me(),Ie(Ze)),du=Yt(),eS=(xn(),Ie(Mr)),fu=rze(),oze=Yt(),XN=ize(),DQt=QB(),aze=sze(),cze={requireParentSpan:!0},tte=class extends du.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(aze.PACKAGE_NAME,aze.PACKAGE_VERSION,{...cze,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,du.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,du.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...cze,...t})}init(){return[new du.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(t,n)=>{let r=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,du.isWrapped)(r.prototype.sendCommand)&&this._unwrap(r.prototype,"sendCommand"),this._wrap(r.prototype,"sendCommand",this._patchSendCommand(n)),(0,du.isWrapped)(r.prototype.connect)&&this._unwrap(r.prototype,"connect"),this._wrap(r.prototype,"connect",this._patchConnection()),t},t=>{if(t===void 0)return;let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._unwrap(n.prototype,"sendCommand"),this._unwrap(n.prototype,"connect")})]}_patchSendCommand(t){return n=>this._traceSendCommand(n,t)}_patchConnection(){return t=>this._traceConnection(t)}_traceSendCommand(t,n){let r=this;return function(i){if(arguments.length<1||typeof i!="object")return t.apply(this,arguments);let s=r.getConfig(),o=s.dbStatementSerializer||DQt.defaultDbStatementSerializer,a=$y.trace.getSpan($y.context.active())===void 0;if(s.requireParentSpan===!0&&a)return t.apply(this,arguments);let c={},{host:u,port:l}=this.options,d=o(i.name,i.args);r._dbSemconvStability&du.SemconvStability.OLD&&(c[fu.ATTR_DB_SYSTEM]=fu.DB_SYSTEM_VALUE_REDIS,c[fu.ATTR_DB_STATEMENT]=d,c[fu.ATTR_DB_CONNECTION_STRING]=`redis://${u}:${l}`),r._dbSemconvStability&du.SemconvStability.STABLE&&(c[eS.ATTR_DB_SYSTEM_NAME]=fu.DB_SYSTEM_NAME_VALUE_REDIS,c[eS.ATTR_DB_QUERY_TEXT]=d),r._netSemconvStability&du.SemconvStability.OLD&&(c[fu.ATTR_NET_PEER_NAME]=u,c[fu.ATTR_NET_PEER_PORT]=l),r._netSemconvStability&du.SemconvStability.STABLE&&(c[eS.ATTR_SERVER_ADDRESS]=u,c[eS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:$y.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,oze.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&$y.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(g){(0,oze.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,g),E=>{E&&$y.diag.error("ioredis instrumentation: response hook failed",E)},!0),(0,XN.endSpan)(f,null),m(g)};let y=i.reject;return i.reject=function(g){(0,XN.endSpan)(f,g),y(g)},h}catch(h){throw(0,XN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=$y.trace.getSpan($y.context.active())===void 0;if(n.getConfig().requireParentSpan===!0&&r)return t.apply(this,arguments);let i={},{host:s,port:o}=this.options;n._dbSemconvStability&du.SemconvStability.OLD&&(i[fu.ATTR_DB_SYSTEM]=fu.DB_SYSTEM_VALUE_REDIS,i[fu.ATTR_DB_STATEMENT]="connect",i[fu.ATTR_DB_CONNECTION_STRING]=`redis://${s}:${o}`),n._dbSemconvStability&du.SemconvStability.STABLE&&(i[eS.ATTR_DB_SYSTEM_NAME]=fu.DB_SYSTEM_NAME_VALUE_REDIS,i[eS.ATTR_DB_QUERY_TEXT]="connect"),n._netSemconvStability&du.SemconvStability.OLD&&(i[fu.ATTR_NET_PEER_NAME]=s,i[fu.ATTR_NET_PEER_PORT]=o),n._netSemconvStability&du.SemconvStability.STABLE&&(i[eS.ATTR_SERVER_ADDRESS]=s,i[eS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:$y.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,XN.endSpan)(a,null),c}catch(c){throw(0,XN.endSpan)(a,c),c}}}};$B.IORedisInstrumentation=tte});var lze=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.IORedisInstrumentation=void 0;var LQt=uze();Object.defineProperty(eG,"IORedisInstrumentation",{enumerable:!0,get:function(){return LQt.IORedisInstrumentation}})});var tG=w(ZR=>{"use strict";Object.defineProperty(ZR,"__esModule",{value:!0});ZR.PACKAGE_NAME=ZR.PACKAGE_VERSION=void 0;ZR.PACKAGE_VERSION="0.62.0";ZR.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var dze=w(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0});tS.getTracedCreateStreamTrace=tS.getTracedCreateClient=tS.endSpan=void 0;var QN=(Me(),Ie(Ze)),UQt=(e,t)=>{t&&e.setStatus({code:QN.SpanStatusCode.ERROR,message:t.message}),e.end()};tS.endSpan=UQt;var jQt=e=>function(){let n=e.apply(this,arguments);return QN.context.bind(QN.context.active(),n)};tS.getTracedCreateClient=jQt;var FQt=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){QN.context.bind(QN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};tS.getTracedCreateStreamTrace=FQt});var nG=w(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.DB_SYSTEM_VALUE_REDIS=Za.DB_SYSTEM_NAME_VALUE_REDIS=Za.ATTR_NET_PEER_PORT=Za.ATTR_NET_PEER_NAME=Za.ATTR_DB_SYSTEM=Za.ATTR_DB_STATEMENT=Za.ATTR_DB_CONNECTION_STRING=void 0;Za.ATTR_DB_CONNECTION_STRING="db.connection_string";Za.ATTR_DB_STATEMENT="db.statement";Za.ATTR_DB_SYSTEM="db.system";Za.ATTR_NET_PEER_NAME="net.peer.name";Za.ATTR_NET_PEER_PORT="net.peer.port";Za.DB_SYSTEM_NAME_VALUE_REDIS="redis";Za.DB_SYSTEM_VALUE_REDIS="redis"});var pze=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.RedisInstrumentationV2_V3=void 0;var ul=Yt(),rG=dze(),fze=tG(),$N=(Me(),Ie(Ze)),eP=(xn(),Ie(Mr)),tb=nG(),HQt=QB(),nte=class e extends ul.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(fze.PACKAGE_NAME,fze.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,ul.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,ul.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new ul.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],t=>((0,ul.isWrapped)(t.RedisClient.prototype.internal_send_command)&&this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._wrap(t.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,ul.isWrapped)(t.RedisClient.prototype.create_stream)&&this._unwrap(t.RedisClient.prototype,"create_stream"),this._wrap(t.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,ul.isWrapped)(t.createClient)&&this._unwrap(t,"createClient"),this._wrap(t,"createClient",this._getPatchCreateClient()),t),t=>{t!==void 0&&(this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._unwrap(t.RedisClient.prototype,"create_stream"),this._unwrap(t,"createClient"))})]}_getPatchInternalSendCommand(){let t=this;return function(r){return function(s){if(arguments.length!==1||typeof s!="object")return r.apply(this,arguments);let o=t.getConfig(),a=$N.trace.getSpan($N.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||HQt.defaultDbStatementSerializer,u={};t._semconvStability&ul.SemconvStability.OLD&&Object.assign(u,{[tb.ATTR_DB_SYSTEM]:tb.DB_SYSTEM_VALUE_REDIS,[tb.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&ul.SemconvStability.STABLE&&Object.assign(u,{[eP.ATTR_DB_SYSTEM_NAME]:tb.DB_SYSTEM_NAME_VALUE_REDIS,[eP.ATTR_DB_OPERATION_NAME]:s.command,[eP.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:$N.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&ul.SemconvStability.OLD&&Object.assign(f,{[tb.ATTR_NET_PEER_NAME]:this.connection_options.host,[tb.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&ul.SemconvStability.STABLE&&Object.assign(f,{[eP.ATTR_SERVER_ADDRESS]:this.connection_options.host,[eP.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&ul.SemconvStability.OLD&&l.setAttribute(tb.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=$N.context.active();arguments[0].callback=function(h,m){if(o?.responseHook){let y=o.responseHook;(0,ul.safeExecuteInTheMiddle)(()=>{y(l,s.command,s.args,m)},g=>{g&&t._diag.error("Error executing responseHook",g)},!0)}return(0,rG.endSpan)(l,h),$N.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,rG.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,rG.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,rG.getTracedCreateStreamTrace)(n)}}};iG.RedisInstrumentationV2_V3=nte});var mze=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.getClientAttributes=void 0;var rte=(xn(),Ie(Mr)),YR=nG(),hze=Yt();function qQt(e,t,n){let r={};return n&hze.SemconvStability.OLD&&Object.assign(r,{[YR.ATTR_DB_SYSTEM]:YR.DB_SYSTEM_VALUE_REDIS,[YR.ATTR_NET_PEER_NAME]:t?.socket?.host,[YR.ATTR_NET_PEER_PORT]:t?.socket?.port,[YR.ATTR_DB_CONNECTION_STRING]:BQt(e,t?.url)}),n&hze.SemconvStability.STABLE&&Object.assign(r,{[rte.ATTR_DB_SYSTEM_NAME]:YR.DB_SYSTEM_NAME_VALUE_REDIS,[rte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[rte.ATTR_SERVER_PORT]:t?.socket?.port}),r}sG.getClientAttributes=qQt;function BQt(e,t){if(!(typeof t!="string"||!t))try{let n=new URL(t);return n.searchParams.delete("user_pwd"),n.username="",n.password="",n.href}catch(n){e.error("failed to sanitize redis connection url",n)}}});var _ze=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.RedisInstrumentationV4_V5=void 0;var $l=(Me(),Ie(Ze)),li=Yt(),gze=mze(),GQt=QB(),yze=tG(),ite=(xn(),Ie(Mr)),zQt=nG(),tP=Symbol("opentelemetry.instrumentation.redis.open_spans"),Sze=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),ste=class e extends li.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(yze.PACKAGE_NAME,yze.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,li.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,li.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(t){let n=new li.InstrumentationNodeModuleFile(`${t}/dist/lib/commander.js`,["^1.0.0"],(s,o)=>{let a=s.transformCommandArguments;if(!a)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),s;let c=o?.startsWith("1.0.")?"extendWithCommands":"attachCommands";return(0,li.isWrapped)(s?.[c])&&this._unwrap(s,c),this._wrap(s,c,this._getPatchExtendWithCommands(a)),s},s=>{(0,li.isWrapped)(s?.extendWithCommands)&&this._unwrap(s,"extendWithCommands"),(0,li.isWrapped)(s?.attachCommands)&&this._unwrap(s,"attachCommands")}),r=new li.InstrumentationNodeModuleFile(`${t}/dist/lib/client/multi-command.js`,["^1.0.0","^5.0.0"],s=>{let o=s?.default?.prototype;return(0,li.isWrapped)(o?.exec)&&this._unwrap(o,"exec"),this._wrap(o,"exec",this._getPatchMultiCommandsExec(!1)),(0,li.isWrapped)(o?.execAsPipeline)&&this._unwrap(o,"execAsPipeline"),this._wrap(o,"execAsPipeline",this._getPatchMultiCommandsExec(!0)),(0,li.isWrapped)(o?.addCommand)&&this._unwrap(o,"addCommand"),this._wrap(o,"addCommand",this._getPatchMultiCommandsAddCommand()),s},s=>{let o=s?.default?.prototype;(0,li.isWrapped)(o?.exec)&&this._unwrap(o,"exec"),(0,li.isWrapped)(o?.addCommand)&&this._unwrap(o,"addCommand")}),i=new li.InstrumentationNodeModuleFile(`${t}/dist/lib/client/index.js`,["^1.0.0","^5.0.0"],s=>{let o=s?.default?.prototype;return o?.multi&&((0,li.isWrapped)(o?.multi)&&this._unwrap(o,"multi"),this._wrap(o,"multi",this._getPatchRedisClientMulti())),o?.MULTI&&((0,li.isWrapped)(o?.MULTI)&&this._unwrap(o,"MULTI"),this._wrap(o,"MULTI",this._getPatchRedisClientMulti())),(0,li.isWrapped)(o?.sendCommand)&&this._unwrap(o,"sendCommand"),this._wrap(o,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(o,"connect",this._getPatchedClientConnect()),s},s=>{let o=s?.default?.prototype;(0,li.isWrapped)(o?.multi)&&this._unwrap(o,"multi"),(0,li.isWrapped)(o?.MULTI)&&this._unwrap(o,"MULTI"),(0,li.isWrapped)(o?.sendCommand)&&this._unwrap(o,"sendCommand")});return new li.InstrumentationNodeModuleDefinition(t,["^1.0.0","^5.0.0"],s=>s,()=>{},[n,r,i])}_getPatchExtendWithCommands(t){let n=this;return function(i){return function(o){if(o?.BaseClass?.name!=="RedisClient")return i.apply(this,arguments);let a=o.executor;return o.executor=function(c,u){let l=t(c,u).args;return n._traceClientCommand(a,this,arguments,l)},i.apply(this,arguments)}}}_getPatchMultiCommandsExec(t){let n=this;return function(i){return function(){let o=i.apply(this,arguments);return typeof o?.then!="function"?(n._diag.error("non-promise result when patching exec/execAsPipeline"),o):o.then(a=>{let c=this[tP];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[tP];if(!c)n._diag.error("cannot find open spans to end for multi/pipeline");else{let u=a.constructor.name==="MultiErrorReply"?a.replies:new Array(c.length).fill(a);n._endSpansWithRedisReplies(c,u,t)}return Promise.reject(a)})}}}_getPatchMultiCommandsAddCommand(){let t=this;return function(r){return function(s){return t._traceClientCommand(r,this,arguments,s)}}}_getPatchRedisClientMulti(){return function(n){return function(){let i=n.apply(this,arguments);return i[Sze]=this.options,i}}}_getPatchRedisClientSendCommand(){let t=this;return function(r){return function(s){return t._traceClientCommand(r,this,arguments,s)}}}_getPatchedClientConnect(){let t=this;return function(r){return function(){let s=this.options,o=(0,gze.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:$l.SpanKind.CLIENT,attributes:o});return $l.context.with($l.trace.setSpan($l.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:$l.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if($l.trace.getSpan($l.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[Sze],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||GQt.defaultDbStatementSerializer,l=(0,gze.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&li.SemconvStability.STABLE&&(l[ite.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&li.SemconvStability.OLD&&(l[zQt.ATTR_DB_STATEMENT]=p),this._semconvStability&li.SemconvStability.STABLE&&(l[ite.ATTR_DB_QUERY_TEXT]=p))}catch(p){this._diag.error("dbStatementSerializer throw an exception",p,{commandName:a})}let d=this.tracer.startSpan(`${e.COMPONENT}-${a}`,{kind:$l.SpanKind.CLIENT,attributes:l}),f=$l.context.with($l.trace.setSpan($l.context.active(),d),()=>t.apply(n,r));if(typeof f?.then=="function")f.then(p=>{this._endSpanWithResponse(d,a,c,p,void 0)},p=>{this._endSpanWithResponse(d,a,c,null,p)});else{let p=f;p[tP]=p[tP]||[],p[tP].push({span:d,commandName:a,commandArgs:c})}return f}_endSpansWithRedisReplies(t,n,r=!1){if(!t)return this._diag.error("cannot find open spans to end for redis multi/pipeline");if(n.length!==t.length)return this._diag.error("number of multi command spans does not match response from redis");let i=t.map(a=>a.commandName),o=i.every(a=>a===i[0])?(r?"PIPELINE ":"MULTI ")+i[0]:r?"PIPELINE":"MULTI";for(let a=0;a{"use strict";Object.defineProperty(aG,"__esModule",{value:!0});aG.RedisInstrumentation=void 0;var VQt=Yt(),Eze=tG(),WQt=pze(),KQt=_ze(),bze={requireParentSpan:!1},ote=class extends VQt.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...bze,...t};super(Eze.PACKAGE_NAME,Eze.PACKAGE_VERSION,n),this.instrumentationV2_V3=new WQt.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new KQt.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...bze,...t};super.setConfig(n),this.initialized&&(this.instrumentationV2_V3.setConfig(n),this.instrumentationV4_V5.setConfig(n))}init(){}getModuleDefinitions(){return[...this.instrumentationV2_V3.getModuleDefinitions(),...this.instrumentationV4_V5.getModuleDefinitions()]}setTracerProvider(t){super.setTracerProvider(t),this.initialized&&(this.instrumentationV2_V3.setTracerProvider(t),this.instrumentationV4_V5.setTracerProvider(t))}enable(){super.enable(),this.initialized&&(this.instrumentationV2_V3.enable(),this.instrumentationV4_V5.enable())}disable(){super.disable(),this.initialized&&(this.instrumentationV2_V3.disable(),this.instrumentationV4_V5.disable())}};aG.RedisInstrumentation=ote});var vze=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.RedisInstrumentation=void 0;var ZQt=Tze();Object.defineProperty(cG,"RedisInstrumentation",{enumerable:!0,get:function(){return ZQt.RedisInstrumentation}})});function nP(e,t){return e.includes(t.toLowerCase())}function cte(e){return nP(ate,e)?"cache.get":nP(JQt,e)?"cache.put":void 0}function XQt(e,t){return t.some(n=>e.startsWith(n))}function Rze(e,t){try{if(t.length===0)return;let n=i=>typeof i=="string"||typeof i=="number"||Buffer.isBuffer(i)?[i.toString()]:Array.isArray(i)?Aze(i.map(s=>n(s))):[""],r=t[0];return nP(YQt,e)&&r!=null?n(r):Aze(t.map(i=>n(i)))}catch{return}}function wze(e,t,n){if(!cte(e))return!1;for(let r of t)if(XQt(r,n))return!0;return!1}function kze(e){let t=n=>{try{return Buffer.isBuffer(n)?n.byteLength:typeof n=="string"?n.length:typeof n=="number"?n.toString().length:n==null?0:JSON.stringify(n).length}catch{return}};return Array.isArray(e)?e.reduce((n,r)=>{let i=t(r);return typeof i=="number"?n!==void 0?n+i:i:n},0):t(e)}function Aze(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var YQt,ate,JQt,Ize=v(()=>{YQt=["get","set","setex"],ate=["get","mget"],JQt=["set","setex"]});var xze,Oze,uG,rP,Nze,QQt,$Qt,Pze,e$t,Cze,Mze=v(()=>{xze=_e(lze(),1),Oze=_e(vze(),1);st();ir();Ize();uG="Redis",rP={},Nze=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=Rze(t,n),s=cte(t);if(!i||!s||!rP.cachePrefixes||!wze(t,i,rP.cachePrefixes))return;let o=vt(e).data["net.peer.name"],a=vt(e).data["net.peer.port"];a&&o&&e.setAttributes({"network.peer.address":o,"network.peer.port":a});let c=kze(r);c&&e.setAttribute(N7,c),nP(ate,t)&&c!==void 0&&e.setAttribute(x7,c>0),e.setAttributes({[zt]:s,[O7]:i});let u=i.join(", ");e.updateName(rP.maxCacheKeyLength?my(u,rP.maxCacheKeyLength):u)},QQt=rt(`${uG}.IORedis`,()=>new xze.IORedisInstrumentation({responseHook:Nze})),$Qt=rt(`${uG}.Redis`,()=>new Oze.RedisInstrumentation({responseHook:Nze})),Pze=Object.assign(()=>{QQt(),$Qt()},{id:uG}),e$t=((e={})=>({name:uG,setupOnce(){rP=e,Pze()}})),Cze=e$t});var Dze=w(lG=>{"use strict";Object.defineProperty(lG,"__esModule",{value:!0});lG.EVENT_LISTENERS_SET=void 0;lG.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var ute=w(iP=>{"use strict";Object.defineProperty(iP,"__esModule",{value:!0});iP.AttributeNames=void 0;var t$t;(function(e){e.PG_VALUES="db.postgresql.values",e.PG_PLAN="db.postgresql.plan",e.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",e.MAX_CLIENT="db.postgresql.max.client"})(t$t=iP.AttributeNames||(iP.AttributeNames={}))});var lte=w(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=Er.METRIC_DB_CLIENT_CONNECTION_COUNT=Er.DB_SYSTEM_VALUE_POSTGRESQL=Er.DB_CLIENT_CONNECTION_STATE_VALUE_USED=Er.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=Er.ATTR_NET_PEER_PORT=Er.ATTR_NET_PEER_NAME=Er.ATTR_DB_USER=Er.ATTR_DB_SYSTEM=Er.ATTR_DB_STATEMENT=Er.ATTR_DB_NAME=Er.ATTR_DB_CONNECTION_STRING=Er.ATTR_DB_CLIENT_CONNECTION_STATE=Er.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0;Er.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name";Er.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state";Er.ATTR_DB_CONNECTION_STRING="db.connection_string";Er.ATTR_DB_NAME="db.name";Er.ATTR_DB_STATEMENT="db.statement";Er.ATTR_DB_SYSTEM="db.system";Er.ATTR_DB_USER="db.user";Er.ATTR_NET_PEER_NAME="net.peer.name";Er.ATTR_NET_PEER_PORT="net.peer.port";Er.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle";Er.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used";Er.DB_SYSTEM_VALUE_POSTGRESQL="postgresql";Er.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count";Er.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"});var dte=w(sP=>{"use strict";Object.defineProperty(sP,"__esModule",{value:!0});sP.SpanNames=void 0;var n$t;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(n$t=sP.SpanNames||(sP.SpanNames={}))});var Bze=w(Fn=>{"use strict";Object.defineProperty(Fn,"__esModule",{value:!0});Fn.sanitizedErrorMessage=Fn.isObjectWithTextString=Fn.getErrorMessage=Fn.patchClientConnectCallback=Fn.patchCallbackPGPool=Fn.updateCounter=Fn.getPoolName=Fn.patchCallback=Fn.handleExecutionResult=Fn.handleConfigQuery=Fn.shouldSkipInstrumentation=Fn.getSemanticAttributesFromPoolConnection=Fn.getSemanticAttributesFromConnection=Fn.getConnectionString=Fn.parseAndMaskConnectionString=Fn.parseNormalizedOperationName=Fn.getQuerySpanName=void 0;var nS=(Me(),Ie(Ze)),dG=ute(),ed=(xn(),Ie(Mr)),us=lte(),nb=Yt(),Lze=dte();function Uze(e,t){if(!t)return Lze.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:jze(t.text);return`${Lze.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}Fn.getQuerySpanName=Uze;function jze(e){let t=e.trim(),n=t.indexOf(" "),r=n===-1?t:t.slice(0,n);return r=r.toUpperCase(),r.endsWith(";")?r.slice(0,-1):r}Fn.parseNormalizedOperationName=jze;function Fze(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}Fn.parseAndMaskConnectionString=Fze;function fte(e){if("connectionString"in e&&e.connectionString)return Fze(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}Fn.getConnectionString=fte;function fG(e){if(Number.isInteger(e))return e}function Hze(e,t){let n={};return t&nb.SemconvStability.OLD&&(n={...n,[us.ATTR_DB_SYSTEM]:us.DB_SYSTEM_VALUE_POSTGRESQL,[us.ATTR_DB_NAME]:e.database,[us.ATTR_DB_CONNECTION_STRING]:fte(e),[us.ATTR_DB_USER]:e.user,[us.ATTR_NET_PEER_NAME]:e.host,[us.ATTR_NET_PEER_PORT]:fG(e.port)}),t&nb.SemconvStability.STABLE&&(n={...n,[ed.ATTR_DB_SYSTEM_NAME]:ed.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[ed.ATTR_DB_NAMESPACE]:e.namespace,[ed.ATTR_SERVER_ADDRESS]:e.host,[ed.ATTR_SERVER_PORT]:fG(e.port)}),n}Fn.getSemanticAttributesFromConnection=Hze;function r$t(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[dG.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[dG.AttributeNames.MAX_CLIENT]:e.maxClient};return t&nb.SemconvStability.OLD&&(r={...r,[us.ATTR_DB_SYSTEM]:us.DB_SYSTEM_VALUE_POSTGRESQL,[us.ATTR_DB_NAME]:n?.pathname.slice(1)??e.database,[us.ATTR_DB_CONNECTION_STRING]:fte(e),[us.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[us.ATTR_NET_PEER_PORT]:Number(n?.port)||fG(e.port),[us.ATTR_DB_USER]:n?.username??e.user}),t&nb.SemconvStability.STABLE&&(r={...r,[ed.ATTR_DB_SYSTEM_NAME]:ed.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[ed.ATTR_DB_NAMESPACE]:e.namespace,[ed.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[ed.ATTR_SERVER_PORT]:Number(n?.port)||fG(e.port)}),r}Fn.getSemanticAttributesFromPoolConnection=r$t;function i$t(e){return e.requireParentSpan===!0&&nS.trace.getSpan(nS.context.active())===void 0}Fn.shouldSkipInstrumentation=i$t;function s$t(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=Uze(s,r),a=e.startSpan(o,{kind:nS.SpanKind.CLIENT,attributes:Hze(i,n)});if(!r)return a;if(r.text&&(n&nb.SemconvStability.OLD&&a.setAttribute(us.ATTR_DB_STATEMENT,r.text),n&nb.SemconvStability.STABLE&&a.setAttribute(ed.ATTR_DB_QUERY_TEXT,r.text)),t.enhancedDatabaseReporting&&Array.isArray(r.values))try{let c=r.values.map(u=>u==null?"null":u instanceof Buffer?u.toString():typeof u=="object"?typeof u.toPostgres=="function"?u.toPostgres():JSON.stringify(u):u.toString());a.setAttribute(dG.AttributeNames.PG_VALUES,c)}catch(c){nS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(dG.AttributeNames.PG_PLAN,r.name),a}Fn.handleConfigQuery=s$t;function qze(e,t,n){typeof e.responseHook=="function"&&(0,nb.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&nS.diag.error("Error running response hook",r)},!0)}Fn.handleExecutionResult=qze;function o$t(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[ed.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(pG(o)),t.setStatus({code:nS.SpanStatusCode.ERROR,message:o.message})):qze(e,t,a),i(),t.end(),n.call(this,o,a)}}Fn.patchCallback=o$t;function a$t(e){let t="";return t+=(e?.host?`${e.host}`:"unknown_host")+":",t+=(e?.port?`${e.port}`:"unknown_port")+"/",t+=e?.database?`${e.database}`:"unknown_database",t.trim()}Fn.getPoolName=a$t;function c$t(e,t,n,r,i){let s=t.totalCount,o=t.waitingCount,a=t.idleCount,c=s-a;return n.add(c-i.used,{[us.ATTR_DB_CLIENT_CONNECTION_STATE]:us.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[us.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(a-i.idle,{[us.ATTR_DB_CLIENT_CONNECTION_STATE]:us.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[us.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(o-i.pending,{[us.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:c,idle:a,pending:o}}Fn.updateCounter=c$t;function u$t(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(pG(r)),e.setStatus({code:nS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}Fn.patchCallbackPGPool=u$t;function l$t(e,t){return function(r){r&&(r instanceof Error&&e.recordException(pG(r)),e.setStatus({code:nS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}Fn.patchClientConnectCallback=l$t;function d$t(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}Fn.getErrorMessage=d$t;function f$t(e){return typeof e=="object"&&typeof e?.text=="string"}Fn.isObjectWithTextString=f$t;function pG(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}Fn.sanitizedErrorMessage=pG});var Gze=w(JR=>{"use strict";Object.defineProperty(JR,"__esModule",{value:!0});JR.PACKAGE_NAME=JR.PACKAGE_VERSION=void 0;JR.PACKAGE_VERSION="0.66.0";JR.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var Yze=w(mG=>{"use strict";Object.defineProperty(mG,"__esModule",{value:!0});mG.PgInstrumentation=void 0;var Mc=Yt(),Ur=(Me(),Ie(Ze)),zze=Dze(),zi=Bze(),Vze=Yee(),Wze=Gze(),Kze=dte(),hG=dr(),ff=(xn(),Ie(Mr)),oP=lte();function XR(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var pte=class extends Mc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(Wze.PACKAGE_NAME,Wze.PACKAGE_VERSION,t),this._semconvStability=(0,Mc.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(ff.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:Ur.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.001,.005,.01,.05,.1,.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(oP.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(oP.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let t=[">=8.0.3 <9"],n=[">=2.0.0 <4"],r=new Mc.InstrumentationNodeModuleFile("pg/lib/native/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),i=new Mc.InstrumentationNodeModuleFile("pg/lib/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),s=new Mc.InstrumentationNodeModuleDefinition("pg",t,a=>{let c=XR(a);return this._patchPgClient(c.Client),a},a=>{let c=XR(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Mc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=XR(a);return(0,Mc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=XR(a);(0,Mc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=XR(t);return(0,Mc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Mc.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),this._wrap(n.prototype,"query",this._getClientQueryPatch()),this._wrap(n.prototype,"connect",this._getClientConnectPatch()),t}_unpatchPgClient(t){let n=XR(t);return(0,Mc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Mc.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),t}_getClientConnectPatch(){let t=this;return n=>function(i){let s=t.getConfig();if(zi.shouldSkipInstrumentation(s)||s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(Kze.SpanNames.CONNECT,{kind:Ur.SpanKind.CLIENT,attributes:zi.getSemanticAttributesFromConnection(this,t._semconvStability)});if(i){let c=Ur.trace.getSpan(Ur.context.active());i=zi.patchClientConnectCallback(o,i),c&&(i=Ur.context.bind(Ur.context.active(),i))}let a=Ur.context.with(Ur.trace.setSpan(Ur.context.active(),o),()=>n.call(this,i));return Zze(o,a)}}recordOperationDuration(t,n){let r={},i=[ff.ATTR_DB_NAMESPACE,ff.ATTR_ERROR_TYPE,ff.ATTR_SERVER_PORT,ff.ATTR_SERVER_ADDRESS,ff.ATTR_DB_OPERATION_NAME];this._semconvStability&Mc.SemconvStability.OLD&&i.push(oP.ATTR_DB_SYSTEM),this._semconvStability&Mc.SemconvStability.STABLE&&i.push(ff.ATTR_DB_SYSTEM_NAME),i.forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,hG.hrTimeToMilliseconds)((0,hG.hrTimeDuration)(n,(0,hG.hrTime)()))/1e3;this._operationDuration.record(s,r)}_getClientQueryPatch(){let t=this;return n=>(this._diag.debug("Patching pg.Client.prototype.query"),function(...i){if(zi.shouldSkipInstrumentation(t.getConfig()))return n.apply(this,i);let s=(0,hG.hrTime)(),o=i[0],a=typeof o=="string",c=zi.isObjectWithTextString(o),u=a?{text:o,values:Array.isArray(i[1])?i[1]:void 0}:c?{...o,name:o.name,text:o.text,values:o.values??(Array.isArray(i[1])?i[1]:void 0)}:void 0,l={[oP.ATTR_DB_SYSTEM]:oP.DB_SYSTEM_VALUE_POSTGRESQL,[ff.ATTR_DB_NAMESPACE]:this.database,[ff.ATTR_SERVER_PORT]:this.connectionParameters.port,[ff.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};u?.text&&(l[ff.ATTR_DB_OPERATION_NAME]=zi.parseNormalizedOperationName(u?.text));let d=()=>{t.recordOperationDuration(l,s)},f=t.getConfig(),p=zi.handleConfigQuery.call(this,t.tracer,f,t._semconvStability,u);if(f.addSqlCommenterCommentToQueries&&(a?i[0]=(0,Vze.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,Vze.addSqlCommenterComment)(p,o.text)})),i.length>0){let y=Ur.trace.getSpan(Ur.context.active());if(typeof i[i.length-1]=="function")i[i.length-1]=zi.patchCallback(f,p,i[i.length-1],l,d),y&&(i[i.length-1]=Ur.context.bind(Ur.context.active(),i[i.length-1]));else if(typeof u?.callback=="function"){let g=zi.patchCallback(t.getConfig(),p,u.callback,l,d);y&&(g=Ur.context.bind(Ur.context.active(),g)),i[0].callback=g}}let{requestHook:h}=f;typeof h=="function"&&u&&(0,Mc.safeExecuteInTheMiddle)(()=>{let{database:y,host:g,port:E,user:S}=this.connectionParameters;h(p,{connection:{database:y,host:g,port:E,user:S},query:{text:u.text,values:u.values,name:u.name}})},y=>{y&&t._diag.error("Error running query hook",y)},!0);let m;try{m=n.apply(this,i)}catch(y){throw y instanceof Error&&p.recordException(zi.sanitizedErrorMessage(y)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:zi.getErrorMessage(y)}),p.end(),y}return m instanceof Promise?m.then(y=>new Promise(g=>{zi.handleExecutionResult(t.getConfig(),p,y),d(),p.end(),g(y)})).catch(y=>new Promise((g,E)=>{y instanceof Error&&p.recordException(zi.sanitizedErrorMessage(y)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:y.message}),d(),p.end(),E(y)})):m})}_setPoolConnectEventListeners(t){if(t[zze.EVENT_LISTENERS_SET])return;let n=zi.getPoolName(t.options);t.on("connect",()=>{this._connectionsCounter=zi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("acquire",()=>{this._connectionsCounter=zi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("remove",()=>{this._connectionsCounter=zi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("release",()=>{this._connectionsCounter=zi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t[zze.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let t=this;return n=>function(i){let s=t.getConfig();if(zi.shouldSkipInstrumentation(s))return n.call(this,i);if(t._setPoolConnectEventListeners(this),s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(Kze.SpanNames.POOL_CONNECT,{kind:Ur.SpanKind.CLIENT,attributes:zi.getSemanticAttributesFromPoolConnection(this.options,t._semconvStability)});if(i){let c=Ur.trace.getSpan(Ur.context.active());i=zi.patchCallbackPGPool(o,i),c&&(i=Ur.context.bind(Ur.context.active(),i))}let a=Ur.context.with(Ur.trace.setSpan(Ur.context.active(),o),()=>n.call(this,i));return Zze(o,a)}}};mG.PgInstrumentation=pte;function Zze(e,t){if(!(t instanceof Promise))return t;let n=t;return Ur.context.bind(Ur.context.active(),n.then(r=>(e.end(),r)).catch(r=>(r instanceof Error&&e.recordException(zi.sanitizedErrorMessage(r)),e.setStatus({code:Ur.SpanStatusCode.ERROR,message:zi.getErrorMessage(r)}),e.end(),Promise.reject(r))))}});var Jze=w(QR=>{"use strict";Object.defineProperty(QR,"__esModule",{value:!0});QR.AttributeNames=QR.PgInstrumentation=void 0;var p$t=Yze();Object.defineProperty(QR,"PgInstrumentation",{enumerable:!0,get:function(){return p$t.PgInstrumentation}});var h$t=ute();Object.defineProperty(QR,"AttributeNames",{enumerable:!0,get:function(){return h$t.AttributeNames}})});var Xze,Qze,$ze,m$t,e2e,t2e=v(()=>{Xze=_e(Jze(),1);ir();Qze="Postgres",$ze=rt(Qze,Xze.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),m$t=(e=>({name:Qze,setupOnce(){$ze(e)}})),e2e=m$t});var rS,mte,n2e,g$t,y$t,r2e,hte,S$t,i2e,s2e=v(()=>{Me();rS=_e(Yt(),1);xn();st();ir();WE();mte="PostgresJs",n2e=[">=3.0.0 <4"],g$t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,y$t=Symbol.for("sentry.query.from.instrumented.sql"),r2e=rt(mte,e=>new hte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),hte=class extends rS.InstrumentationBase{constructor(t){super("sentry-postgres-js",On,t)}init(){let t=new rS.InstrumentationNodeModuleDefinition("postgres",n2e,n=>{try{return this._patchPostgres(n)}catch(r){return fo&&J.error("Failed to patch postgres module:",r),n}},n=>n);return["src","cf/src","cjs/src"].forEach(n=>{t.files.push(new rS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,n2e,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),t}_patchPostgres(t){let n=typeof t=="function",r=n?t:t.default;if(typeof r!="function")return fo&&J.warn("postgres module does not export a function. Skipping instrumentation."),t;let i=this,s=function(...o){let a=Reflect.construct(r,o);if(!a||typeof a!="function")return fo&&J.warn("postgres() did not return a valid instance"),a;let c=i.getConfig();return kX(a,{requireParentSpan:c.requireParentSpan,requestHook:c.requestHook})};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}return n?s:(tN(t,"default",s),t)}_shouldCreateSpans(){let t=this.getConfig();return Ut.getSpan(Ve.active())!==void 0||!t.requireParentSpan}_setOperationName(t,n,r){if(r){t.setAttribute(iA,r);return}let i=n?.match(g$t);i?.[1]&&t.setAttribute(iA,i[1].toUpperCase())}_reconstructQuery(t){if(t?.length)return t.length===1?t[0]||void 0:t.reduce((n,r,i)=>i===0?r:`${n}$${i}${r}`,"")}_sanitizeSqlQuery(t){return t?t.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Dr(a,"auto.db.postgresjs"),a.setAttributes({[fE]:"postgres",[z8]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,rS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),fo&&J.error(`Error in requestHook for ${mte} integration:`,f))},!0);let l=this.resolve;this.resolve=new Proxy(l,{apply:(f,p,h)=>{try{n._setOperationName(a,o,h?.[0]?.command),a.end()}catch(m){fo&&J.error("Error ending span in resolve callback:",m)}return Reflect.apply(f,p,h)}});let d=this.reject;this.reject=new Proxy(d,{apply:(f,p,h)=>{try{a.setStatus({code:2,message:h?.[0]?.message||"unknown_error"}),a.setAttribute(V8,h?.[0]?.code||"unknown"),a.setAttribute(W8,h?.[0]?.name||"unknown"),n._setOperationName(a,o),a.end()}catch(m){fo&&J.error("Error ending span in reject callback:",m)}return Reflect.apply(f,p,h)}});try{return r.apply(this,i)}catch(f){throw a.setStatus({code:2,message:f instanceof Error?f.message:"unknown_error"}),a.end(),f}})},t.Query.prototype.handle.__sentry_original__=r,t}_unpatchQueryPrototype(t){return t.Query.prototype.handle.__sentry_original__&&(t.Query.prototype.handle=t.Query.prototype.handle.__sentry_original__),t}},S$t=(e=>({name:mte,setupOnce(){r2e(e)}})),i2e=S$t});var o2e=w(aP=>{"use strict";Object.defineProperty(aP,"__esModule",{value:!0});aP.SeverityNumber=void 0;var _$t;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(_$t=aP.SeverityNumber||(aP.SeverityNumber={}))});var yG=w($R=>{"use strict";Object.defineProperty($R,"__esModule",{value:!0});$R.NOOP_LOGGER=$R.NoopLogger=void 0;var gG=class{emit(t){}};$R.NoopLogger=gG;$R.NOOP_LOGGER=new gG});var _G=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.NOOP_LOGGER_PROVIDER=ew.NoopLoggerProvider=void 0;var E$t=yG(),SG=class{getLogger(t,n,r){return new E$t.NoopLogger}};ew.NoopLoggerProvider=SG;ew.NOOP_LOGGER_PROVIDER=new SG});var yte=w(EG=>{"use strict";Object.defineProperty(EG,"__esModule",{value:!0});EG.ProxyLogger=void 0;var b$t=yG(),gte=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):b$t.NOOP_LOGGER}};EG.ProxyLogger=gte});var _te=w(bG=>{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG.ProxyLoggerProvider=void 0;var T$t=_G(),v$t=yte(),Ste=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new v$t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:T$t.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};bG.ProxyLoggerProvider=Ste});var a2e=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG._globalThis=void 0;TG._globalThis=typeof globalThis=="object"?globalThis:global});var c2e=w(vG=>{"use strict";Object.defineProperty(vG,"__esModule",{value:!0});vG._globalThis=void 0;var A$t=a2e();Object.defineProperty(vG,"_globalThis",{enumerable:!0,get:function(){return A$t._globalThis}})});var u2e=w(AG=>{"use strict";Object.defineProperty(AG,"__esModule",{value:!0});AG._globalThis=void 0;var R$t=c2e();Object.defineProperty(AG,"_globalThis",{enumerable:!0,get:function(){return R$t._globalThis}})});var l2e=w(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});Kp.API_BACKWARDS_COMPATIBILITY_VERSION=Kp.makeGetter=Kp._global=Kp.GLOBAL_LOGS_API_KEY=void 0;var w$t=u2e();Kp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Kp._global=w$t._globalThis;function k$t(e,t,n){return r=>r===e?t:n}Kp.makeGetter=k$t;Kp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var f2e=w(RG=>{"use strict";Object.defineProperty(RG,"__esModule",{value:!0});RG.LogsAPI=void 0;var td=l2e(),I$t=_G(),d2e=_te(),Ete=class e{constructor(){this._proxyLoggerProvider=new d2e.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return td._global[td.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(td._global[td.GLOBAL_LOGS_API_KEY]=(0,td.makeGetter)(td.API_BACKWARDS_COMPATIBILITY_VERSION,t,I$t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=td._global[td.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(td._global,td.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete td._global[td.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new d2e.ProxyLoggerProvider}};RG.LogsAPI=Ete});var bte=w(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});Ho.logs=Ho.ProxyLoggerProvider=Ho.ProxyLogger=Ho.NoopLoggerProvider=Ho.NOOP_LOGGER_PROVIDER=Ho.NoopLogger=Ho.NOOP_LOGGER=Ho.SeverityNumber=void 0;var x$t=o2e();Object.defineProperty(Ho,"SeverityNumber",{enumerable:!0,get:function(){return x$t.SeverityNumber}});var p2e=yG();Object.defineProperty(Ho,"NOOP_LOGGER",{enumerable:!0,get:function(){return p2e.NOOP_LOGGER}});Object.defineProperty(Ho,"NoopLogger",{enumerable:!0,get:function(){return p2e.NoopLogger}});var h2e=_G();Object.defineProperty(Ho,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return h2e.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Ho,"NoopLoggerProvider",{enumerable:!0,get:function(){return h2e.NoopLoggerProvider}});var O$t=yte();Object.defineProperty(Ho,"ProxyLogger",{enumerable:!0,get:function(){return O$t.ProxyLogger}});var N$t=_te();Object.defineProperty(Ho,"ProxyLoggerProvider",{enumerable:!0,get:function(){return N$t.ProxyLoggerProvider}});var P$t=f2e();Ho.logs=P$t.LogsAPI.getInstance()});var m2e=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.disableInstrumentations=tw.enableInstrumentations=void 0;function C$t(e,t,n,r){for(let i=0,s=e.length;it.disable())}tw.disableInstrumentations=M$t});var S2e=w(wG=>{"use strict";Object.defineProperty(wG,"__esModule",{value:!0});wG.registerInstrumentations=void 0;var g2e=(Me(),Ie(Ze)),D$t=bte(),y2e=m2e();function L$t(e){let t=e.tracerProvider||g2e.trace.getTracerProvider(),n=e.meterProvider||g2e.metrics.getMeterProvider(),r=e.loggerProvider||D$t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,y2e.enableInstrumentations)(i,t,n,r),()=>{(0,y2e.disableInstrumentations)(i)}}wG.registerInstrumentations=L$t});var k2e=w(kG=>{"use strict";Object.defineProperty(kG,"__esModule",{value:!0});kG.satisfies=void 0;var Rte=(Me(),Ie(Ze)),v2e=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,U$t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,j$t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function F$t(e,t,n){if(!H$t(e))return Rte.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=z$t(e);if(!r)return!1;let i=[],s=A2e(r,t,i,n);return s&&!n?.includePrerelease?B$t(r,i):s}kG.satisfies=F$t;function H$t(e){return typeof e=="string"&&v2e.test(e)}function A2e(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Tte(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=den(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Tte(e,s,n,r))return!1;return!0}return Tte(e,t,n,r)}function Tte(e,t,n,r){if(t=G$t(t,r),t.includes(" "))return A2e(e,t,n,r);{let i=V$t(t);return n.push(i),q$t(e,i)}}function q$t(e,t){if(t.invalid)return!1;if(!t.version||Ate(t.version))return!0;let n=E2e(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=E2e(r,i)}return j$t[t.op]?.includes(n)}function B$t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function G$t(e,t){return e=e.trim(),e=uen(e,t),e=cen(e),e=len(e,t),e=e.trim(),e}function Dc(e){return!e||e.toLowerCase()==="x"||e==="*"}function z$t(e){let t=e.match(v2e);if(!t){Rte.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function V$t(e){if(!e)return{};let t=e.match(U$t);if(!t)return Rte.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Ate(e){return e==="*"||e==="x"||e==="X"}function _2e(e){let t=parseInt(e,10);return isNaN(t)?e:t}function W$t(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function K$t(e,t){if(Ate(e)||Ate(t))return 0;let[n,r]=W$t(_2e(e),_2e(t));return n>r?1:n)?=?)",b2e=`(?:${w2e}|${Z$t})`,J$t=`(?:-(${b2e}(?:\\.${b2e})*))`,T2e=`${R2e}+`,X$t=`(?:\\+(${T2e}(?:\\.${T2e})*))`,vte=`${w2e}|x|X|\\*`,cP=`[v=\\s]*(${vte})(?:\\.(${vte})(?:\\.(${vte})(?:${J$t})?${X$t}?)?)?`,Q$t=`^${Y$t}\\s*${cP}$`,$$t=new RegExp(Q$t),een=`^\\s*(${cP})\\s+-\\s+(${cP})\\s*$`,ten=new RegExp(een),nen="(?:~>?)",ren=`^${nen}${cP}$`,ien=new RegExp(ren),sen="(?:\\^)",oen=`^${sen}${cP}$`,aen=new RegExp(oen);function cen(e){let t=ien;return e.replace(t,(n,r,i,s,o)=>{let a;return Dc(r)?a="":Dc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Dc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function uen(e,t){let n=aen,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Dc(s)?u="":Dc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Dc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function len(e,t){let n=$$t;return e.replace(n,(r,i,s,o,a,c)=>{let u=Dc(s),l=u||Dc(o),d=l||Dc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function den(e,t){let n=ten;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Dc(s)?i="":Dc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Dc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Dc(d)?l="":Dc(f)?l=`<${+d+1}.0.0-0`:Dc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var wte=w(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.massUnwrap=da.unwrap=da.massWrap=da.wrap=void 0;var Lc=console.error.bind(console);function uP(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var fen=(e,t,n)=>{if(!e||!e[t]){Lc("no original function "+String(t)+" to wrap");return}if(!n){Lc("no wrapper function"),Lc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Lc("original object and wrapper must be functions");return}let i=n(r,t);return uP(i,"__original",r),uP(i,"__unwrap",()=>{e[t]===i&&uP(e,t,r)}),uP(i,"__wrapped",!0),uP(e,t,i),i};da.wrap=fen;var pen=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Lc("must provide one or more modules to patch"),Lc(new Error().stack);return}if(!(t&&Array.isArray(t))){Lc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,da.wrap)(r,i,n)})})};da.massWrap=pen;var hen=(e,t)=>{if(!e||!e[t]){Lc("no function to unwrap."),Lc(new Error().stack);return}let n=e[t];if(!n.__unwrap)Lc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};da.unwrap=hen;var men=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Lc("must provide one or more modules to patch"),Lc(new Error().stack);return}if(!(t&&Array.isArray(t))){Lc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,da.unwrap)(n,r)})})};da.massUnwrap=men;function lP(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=lP;lP.wrap=da.wrap;lP.massWrap=da.massWrap;lP.unwrap=da.unwrap;lP.massUnwrap=da.massUnwrap});var I2e=w(xG=>{"use strict";Object.defineProperty(xG,"__esModule",{value:!0});xG.InstrumentationAbstract=void 0;var kte=(Me(),Ie(Ze)),gen=bte(),IG=wte(),Ite=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=kte.diag.createComponentLogger({namespace:t}),this._tracer=kte.trace.getTracer(t,n),this._meter=kte.metrics.getMeter(t,n),this._logger=gen.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=IG.wrap;_unwrap=IG.unwrap;_massWrap=IG.massWrap;_massUnwrap=IG.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};xG.InstrumentationAbstract=Ite});var x2e=w(iS=>{"use strict";Object.defineProperty(iS,"__esModule",{value:!0});iS.ModuleNameTrie=iS.ModuleNameSeparator=void 0;iS.ModuleNameSeparator="/";var OG=class{hooks=[];children=new Map},xte=class{_trie=new OG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(iS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new OG,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(iS.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};iS.ModuleNameTrie=xte});var N2e=w(NG=>{"use strict";Object.defineProperty(NG,"__esModule",{value:!0});NG.RequireInTheMiddleSingleton=void 0;var yen=SE(),O2e=Y("path"),Ote=x2e(),Sen=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),Nte=class e{_moduleNameTrie=new Ote.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new yen.Hook(null,{internals:!0},(t,n,r)=>{let i=_en(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return Sen?new e:this._instance=this._instance??new e}};NG.RequireInTheMiddleSingleton=Nte;function _en(e){return O2e.sep!==Ote.ModuleNameSeparator?e.split(O2e.sep).join(Ote.ModuleNameSeparator):e}});var L2e=w(dP=>{var P2e=[],Pte=new WeakMap,C2e=new WeakMap,M2e=new Map,D2e=[],Een={set(e,t,n){let r=Pte.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=C2e.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=Pte.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function ben(e,t,n,r,i){M2e.set(e,i),Pte.set(t,n),C2e.set(t,r);let s=new Proxy(t,Een);P2e.forEach(o=>o(e,s,i)),D2e.push([e,s,i])}dP.register=ben;dP.importHooks=P2e;dP.specifiers=M2e;dP.toHook=D2e});var H2e=w((LMr,rw)=>{var U2e=Y("path"),Ten=uO(),{fileURLToPath:ven}=Y("url"),{MessageChannel:Aen}=Y("worker_threads"),{isBuiltin:Cte}=Y("module");Cte||(Cte=()=>!0);var{importHooks:Mte,specifiers:Ren,toHook:wen}=L2e();function j2e(e){Mte.push(e),wen.forEach(([t,n,r])=>e(t,n,r))}function F2e(e){let t=Mte.indexOf(e);t>-1&&Mte.splice(t,1)}function nw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var Dte;function ken(){let{port1:e,port2:t}=new Aen,n=0,r;Dte=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function fP(e,t,n){if(!(this instanceof fP))return new fP(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;Dte&&Array.isArray(e)&&Dte(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);Cte(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=ven(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=Ten(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)nw(n,s,u,void 0);else if(d===i){if(!l)nw(n,s,i,l);else if(l.endsWith(Ren.get(a)))nw(n,s,i,l);else if(r){let f=i+U2e.sep+U2e.relative(l,u);nw(n,s,f,l)}}else d===o&&nw(n,s,o,l);else nw(n,s,i,l)},j2e(this._iitmHook)}fP.prototype.unhook=function(){F2e(this._iitmHook)};rw.exports=fP;rw.exports.Hook=fP;rw.exports.addHook=j2e;rw.exports.removeHook=F2e;rw.exports.createAddHookMessageChannel=ken});var Lte=w(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0});sS.isWrapped=sS.safeExecuteInTheMiddleAsync=sS.safeExecuteInTheMiddle=void 0;function Ien(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}sS.safeExecuteInTheMiddle=Ien;async function xen(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}sS.safeExecuteInTheMiddleAsync=xen;function Oen(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}sS.isWrapped=Oen});var G2e=w(PG=>{"use strict";Object.defineProperty(PG,"__esModule",{value:!0});PG.InstrumentationBase=void 0;var pP=Y("path"),q2e=Y("util"),Nen=k2e(),Ute=wte(),Pen=I2e(),Cen=N2e(),Men=H2e(),hP=(Me(),Ie(Ze)),Den=SE(),Len=Y("fs"),Uen=Lte(),jte=class extends Pen.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Cen.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,Uen.isWrapped)(t[n])&&this._unwrap(t,n),q2e.types.isProxy(t)){let i=(0,Ute.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Ute.wrap)(t,n,r)};_unwrap=(t,n)=>q2e.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Ute.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{hP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){hP.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{hP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){hP.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,Len.readFileSync)(pP.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{hP.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return B2e(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=pP.normalize(r);return o.filter(u=>u.name===a).filter(u=>B2e(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&pP.isAbsolute(a)){let u=pP.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=pP.isAbsolute(t.name)?new Den.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new Men.Hook([t.name],{internals:!1},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};PG.InstrumentationBase=jte;function B2e(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Nen.satisfies)(t,r,{includePrerelease:n}))}});var z2e=w(CG=>{"use strict";Object.defineProperty(CG,"__esModule",{value:!0});CG.normalize=void 0;var jen=Y("path");Object.defineProperty(CG,"normalize",{enumerable:!0,get:function(){return jen.normalize}})});var V2e=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.normalize=iw.InstrumentationBase=void 0;var Fen=G2e();Object.defineProperty(iw,"InstrumentationBase",{enumerable:!0,get:function(){return Fen.InstrumentationBase}});var Hen=z2e();Object.defineProperty(iw,"normalize",{enumerable:!0,get:function(){return Hen.normalize}})});var Fte=w(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.normalize=sw.InstrumentationBase=void 0;var W2e=V2e();Object.defineProperty(sw,"InstrumentationBase",{enumerable:!0,get:function(){return W2e.InstrumentationBase}});Object.defineProperty(sw,"normalize",{enumerable:!0,get:function(){return W2e.normalize}})});var K2e=w(MG=>{"use strict";Object.defineProperty(MG,"__esModule",{value:!0});MG.InstrumentationNodeModuleDefinition=void 0;var Hte=class{name;supportedVersions;patch;unpatch;files;constructor(t,n,r,i,s){this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i,this.files=s||[]}};MG.InstrumentationNodeModuleDefinition=Hte});var Z2e=w(DG=>{"use strict";Object.defineProperty(DG,"__esModule",{value:!0});DG.InstrumentationNodeModuleFile=void 0;var qen=Fte(),qte=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,qen.normalize)(t)}};DG.InstrumentationNodeModuleFile=qte});var Y2e=w(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});rb.semconvStabilityFromStr=rb.SemconvStability=void 0;var LG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(LG=rb.SemconvStability||(rb.SemconvStability={}));function Ben(e,t){let n=LG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=LG.DUPLICATE;break}else i.toLowerCase()===e&&(n=LG.STABLE);return n}rb.semconvStabilityFromStr=Ben});var X2e=w(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});Ws.semconvStabilityFromStr=Ws.SemconvStability=Ws.safeExecuteInTheMiddleAsync=Ws.safeExecuteInTheMiddle=Ws.isWrapped=Ws.InstrumentationNodeModuleFile=Ws.InstrumentationNodeModuleDefinition=Ws.InstrumentationBase=Ws.registerInstrumentations=void 0;var Gen=S2e();Object.defineProperty(Ws,"registerInstrumentations",{enumerable:!0,get:function(){return Gen.registerInstrumentations}});var zen=Fte();Object.defineProperty(Ws,"InstrumentationBase",{enumerable:!0,get:function(){return zen.InstrumentationBase}});var Ven=K2e();Object.defineProperty(Ws,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return Ven.InstrumentationNodeModuleDefinition}});var Wen=Z2e();Object.defineProperty(Ws,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return Wen.InstrumentationNodeModuleFile}});var Bte=Lte();Object.defineProperty(Ws,"isWrapped",{enumerable:!0,get:function(){return Bte.isWrapped}});Object.defineProperty(Ws,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Bte.safeExecuteInTheMiddle}});Object.defineProperty(Ws,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Bte.safeExecuteInTheMiddleAsync}});var J2e=Y2e();Object.defineProperty(Ws,"SemconvStability",{enumerable:!0,get:function(){return J2e.SemconvStability}});Object.defineProperty(Ws,"semconvStabilityFromStr",{enumerable:!0,get:function(){return J2e.semconvStabilityFromStr}})});function Yen(){let e=ow[zte];return e?.helper?e.helper:ow[Gte]?.helper}function Jen(e){let t={helper:e};ow[zte]=t,ow[Gte]=t}function Xen(){delete ow[zte],delete ow[Gte]}function etn(e){return e==="client"?Xr.CLIENT:Xr.INTERNAL}function eVe(e,t,n,r,i){if(tVe(t.name,i))return;let s={attributes:t.attributes,kind:etn(t.kind),startTime:t.startTime};e.startActiveSpan(t.name,s,o=>{r.set(t.id,o.spanContext().spanId),t.links&&o.addLinks(t.links.flatMap(c=>{let u=r.get(c);return u?{context:{spanId:u,traceId:o.spanContext().traceId,traceFlags:o.spanContext().traceFlags}}:[]}));let a=n.filter(c=>c.parentId===t.id);for(let c of a)eVe(e,c,n,r,i);o.end(t.endTime)})}function Q2e(e,t){return ntn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function ntn(e){return e!=null&&typeof e.then=="function"}function tVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var UG,Ken,Zen,Gte,zte,ow,Qen,$en,ttn,nVe,$2e,rtn,itn,rVe,iVe=v(()=>{Me();UG=_e(X2e(),1);Me();Ken={name:"@prisma/instrumentation-contract",version:"7.6.0",description:"Shared types and utilities for Prisma instrumentation",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.mts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation-contract"},bugs:"https://github.com/prisma/prisma/issues",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},files:["dist"],sideEffects:!1,devDependencies:{"@opentelemetry/api":"1.9.0"},peerDependencies:{"@opentelemetry/api":"^1.8"}},Zen=Ken.version.split(".")[0],Gte="PRISMA_INSTRUMENTATION",zte=`V${Zen}_PRISMA_INSTRUMENTATION`,ow=globalThis;Qen=process.env.PRISMA_SHOW_ALL_TRACES==="true",$en="00-10-10-00";ttn=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=Ut.getSpanContext(e??Ve.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:$en}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)eVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!Qen)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(tVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return Q2e(s,t(s,r))}return n.startActiveSpan(i,e,s=>Q2e(s,t(s,r)))}};nVe={name:"@prisma/instrumentation",version:"7.6.0",description:"OpenTelemetry compliant instrumentation for Prisma Client",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.ts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation"},bugs:"https://github.com/prisma/prisma/issues",devDependencies:{"@opentelemetry/api":"1.9.0","@prisma/instrumentation-contract":"workspace:*","@types/node":"~20.19.24",typescript:"5.4.5"},dependencies:{"@opentelemetry/instrumentation":"^0.207.0"},peerDependencies:{"@opentelemetry/api":"^1.8"},files:["dist"],keywords:["prisma","instrumentation","opentelemetry","otel"],scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},sideEffects:!1},$2e=nVe.version,rtn=nVe.name,itn="@prisma/client",rVe=class extends UG.InstrumentationBase{tracerProvider;constructor(e={}){super(rtn,$2e,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new UG.InstrumentationNodeModuleDefinition(itn,[$2e])]}enable(){let e=this._config;Jen(new ttn({tracerProvider:this.tracerProvider??Ut.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){Xen()}isEnabled(){return Yen()!==void 0}}});function stn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function oVe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function otn(e){return e==="client"?Xr.CLIENT:Xr.INTERNAL}var sVe,Vte,atn,aVe,cVe=v(()=>{Me();iVe();st();ir();sVe="Prisma";Vte=class extends rVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=oVe();stn(t)&&(t.createEngineSpan=n=>{let r=Ut.getTracer("prismaV5Compatibility"),i=r._idGenerator;if(!i){Rs(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{n.spans.forEach(s=>{let o=otn(s.kind),a=s.parent_span_id,c=s.span_id,u=s.trace_id,l=s.links?.map(f=>({context:{traceId:f.trace_id,spanId:f.span_id,traceFlags:Ma.SAMPLED}})),d=Ut.setSpanContext(Ve.active(),{traceId:u,spanId:a,traceFlags:Ma.SAMPLED});Ve.with(d,()=>{let f={generateTraceId:()=>u,generateSpanId:()=>c};r._idGenerator=f,r.startSpan(s.name,{kind:o,links:l,startTime:s.start_time,attributes:s.attributes}).end(s.end_time),r._idGenerator=i})})}finally{r._idGenerator=i}})}};atn=rt(sVe,e=>new Vte(e)),aVe=e=>({name:sVe,setupOnce(){atn(e)},setup(t){oVe()&&t.on("spanStart",n=>{let r=vt(n);r.description?.startsWith("prisma:")&&n.setAttribute(At,"auto.db.otel.prisma"),r.description==="prisma:engine:db_query"&&r.data["db.query.text"]&&n.updateName(r.data["db.query.text"]),r.description==="prisma:engine:db_query"&&!r.data["db.system"]&&n.setAttribute("db.system","prisma")})}})});var uVe=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.PACKAGE_NAME=aw.PACKAGE_VERSION=void 0;aw.PACKAGE_VERSION="0.60.0";aw.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var Wte=w(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.HapiLifecycleMethodNames=Zp.HapiLayerType=Zp.handlerPatched=Zp.HapiComponentName=void 0;Zp.HapiComponentName="@hapi/hapi";Zp.handlerPatched=Symbol("hapi-handler-patched");Zp.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"};Zp.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])});var lVe=w(jG=>{"use strict";Object.defineProperty(jG,"__esModule",{value:!0});jG.ATTR_HTTP_METHOD=void 0;jG.ATTR_HTTP_METHOD="http.method"});var Kte=w(mP=>{"use strict";Object.defineProperty(mP,"__esModule",{value:!0});mP.AttributeNames=void 0;var ctn;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(ctn=mP.AttributeNames||(mP.AttributeNames={}))});var pVe=w(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getPluginFromInput=Ks.getExtMetadata=Ks.getRouteMetadata=Ks.isPatchableExtMethod=Ks.isDirectExtInput=Ks.isLifecycleExtEventObj=Ks.isLifecycleExtType=Ks.getPluginName=void 0;var dVe=(xn(),Ie(Mr)),utn=lVe(),gP=Wte(),oS=Kte(),fVe=Yt();function ltn(e){return e.name?e.name:e.pkg.name}Ks.getPluginName=ltn;var dtn=e=>typeof e=="string"&&gP.HapiLifecycleMethodNames.has(e);Ks.isLifecycleExtType=dtn;var ftn=e=>{let t=e?.type;return t!==void 0&&(0,Ks.isLifecycleExtType)(t)};Ks.isLifecycleExtEventObj=ftn;var ptn=e=>Array.isArray(e)&&e.length<=3&&(0,Ks.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Ks.isDirectExtInput=ptn;var htn=e=>!Array.isArray(e);Ks.isPatchableExtMethod=htn;var mtn=(e,t,n)=>{let r={[dVe.ATTR_HTTP_ROUTE]:e.path};t&fVe.SemconvStability.OLD&&(r[utn.ATTR_HTTP_METHOD]=e.method),t&fVe.SemconvStability.STABLE&&(r[dVe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[oS.AttributeNames.HAPI_TYPE]=gP.HapiLayerType.PLUGIN,r[oS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[oS.AttributeNames.HAPI_TYPE]=gP.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Ks.getRouteMetadata=mtn;var gtn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[oS.AttributeNames.EXT_TYPE]:e,[oS.AttributeNames.HAPI_TYPE]:gP.HapiLayerType.EXT,[oS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[oS.AttributeNames.EXT_TYPE]:e,[oS.AttributeNames.HAPI_TYPE]:gP.HapiLayerType.EXT},name:r}};Ks.getExtMetadata=gtn;var ytn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Ks.getPluginFromInput=ytn});var gVe=w(FG=>{"use strict";Object.defineProperty(FG,"__esModule",{value:!0});FG.HapiInstrumentation=void 0;var ll=(Me(),Ie(Ze)),hVe=dr(),yP=Yt(),mVe=uVe(),SP=Wte(),xm=pVe(),Zte=class extends yP.InstrumentationBase{_semconvStability;constructor(t={}){super(mVe.PACKAGE_NAME,mVe.PACKAGE_VERSION,t),this._semconvStability=(0,yP.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new yP.InstrumentationNodeModuleDefinition(SP.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,yP.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,yP.isWrapped)(n.Server)||this._wrap(n,"Server",this._getServerPatch.bind(this)),n},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._massUnwrap([n],["server","Server"])})}_getServerPatch(t){let n=this,r=this;return function(s){let o=t.apply(this,[s]);return r._wrap(o,"route",a=>n._getServerRoutePatch.bind(n)(a)),r._wrap(o,"ext",a=>n._getServerExtPatch.bind(n)(a)),r._wrap(o,"register",n._getServerRegisterPatch.bind(n)),o}}_getServerRegisterPatch(t){let n=this;return function(i,s){if(Array.isArray(i))for(let o of i){let a=(0,xm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,xm.getPluginFromInput)(i);n._wrapRegisterHandler(o)}return t.apply(this,[i,s])}}_getServerExtPatch(t,n){let r=this;return function(...s){if(Array.isArray(s[0])){let o=s[0];for(let a=0;an._getServerRoutePatch.bind(n)(u,r)),s._wrap(a,"ext",u=>n._getServerExtPatch.bind(n)(u,r)),i.call(this,a,c)};t.register=o}_wrapExtMethods(t,n,r){let i=this;if(t instanceof Array){for(let s=0;sasync function(...o){if(ll.trace.getSpan(ll.context.active())===void 0)return await s.call(this,...o);let a=(0,hVe.getRPCMetadata)(ll.context.active());a?.type===hVe.RPCType.HTTP&&(a.route=t.path);let c=(0,xm.getRouteMetadata)(t,r._semconvStability,n),u=r.tracer.startSpan(c.name,{attributes:c.attributes});try{return await ll.context.with(ll.trace.setSpan(ll.context.active(),u),()=>s.call(this,...o))}catch(l){throw u.recordException(l),u.setStatus({code:ll.SpanStatusCode.ERROR,message:l.message}),l}finally{u.end()}};if(typeof t.handler=="function")t.handler=i(t.handler);else if(typeof t.options=="function"){let s=t.options;t.options=function(o){let a=s(o);return typeof a.handler=="function"&&(a.handler=i(a.handler)),a}}else typeof t.options?.handler=="function"&&(t.options.handler=i(t.options.handler));return t}};FG.HapiInstrumentation=Zte});var yVe=w(cw=>{"use strict";Object.defineProperty(cw,"__esModule",{value:!0});cw.AttributeNames=cw.HapiInstrumentation=void 0;var Stn=gVe();Object.defineProperty(cw,"HapiInstrumentation",{enumerable:!0,get:function(){return Stn.HapiInstrumentation}});var _tn=Kte();Object.defineProperty(cw,"AttributeNames",{enumerable:!0,get:function(){return _tn.AttributeNames}})});var SVe,_Ve,EVe,Etn,bVe,TVe=v(()=>{SVe=_e(yVe(),1);ir();_Ve="Hapi",EVe=rt(_Ve,()=>new SVe.HapiInstrumentation),Etn=(()=>({name:_Ve,setupOnce(){EVe()}})),bVe=Etn});var aS,_P,Yte=v(()=>{aS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},_P={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var qG,btn,Ttn,HG,vVe=v(()=>{Me();qG=_e(Yt(),1);st();Yte();btn="@sentry/instrumentation-hono",Ttn="0.0.1",HG=class extends qG.InstrumentationBase{constructor(t={}){super(btn,Ttn,t)}init(){return[new qG.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],t=>this._patch(t))]}_patch(t){let n=this;class r extends t.Hono{constructor(...s){super(...s),n._wrap(this,"get",n._patchHandler()),n._wrap(this,"post",n._patchHandler()),n._wrap(this,"put",n._patchHandler()),n._wrap(this,"delete",n._patchHandler()),n._wrap(this,"options",n._patchHandler()),n._wrap(this,"patch",n._patchHandler()),n._wrap(this,"all",n._patchHandler()),n._wrap(this,"on",n._patchOnHandler()),n._wrap(this,"use",n._patchMiddlewareHandler())}}try{t.Hono=r}catch{return{...t,Hono:r}}return t}_patchHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_patchOnHandler(){let t=this;return function(n){return function(...i){let s=i.slice(2);return n.apply(this,[...i.slice(0,2),...s.map(o=>t._wrapHandler(o))])}}}_patchMiddlewareHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_wrapHandler(t){let n=this;return function(r,i){if(!n.isEnabled())return t.apply(this,[r,i]);let s=r.req.path,o=n.tracer.startSpan(s);return Ve.with(Ut.setSpan(Ve.active(),o),()=>n._safeExecute(()=>{let a=t.apply(this,[r,i]);if(ra(a))return a.then(c=>{let u=n._determineHandlerType(c);return o.setAttributes({[aS.HONO_TYPE]:u,[aS.HONO_NAME]:u===_P.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[aS.HONO_TYPE]:c,[aS.HONO_NAME]:c===_P.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),a}},()=>o.end(),a=>{n._handleError(o,a),o.end()}))}}_safeExecute(t,n,r){try{let i=t();return ra(i)?i.then(()=>n(),s=>r(s)):n(),i}catch(i){throw r(i),i}}_determineHandlerType(t){return t===void 0?_P.MIDDLEWARE:_P.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:ss.ERROR,message:n.message}),t.recordException(n))}}});function vtn(e){let t=vt(e).data,n=t[aS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[aS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Hl()){fo&&J.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[im],s=t[pE];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var AVe,RVe,Atn,wVe,kVe=v(()=>{xn();st();ir();WE();Yte();vVe();AVe="Hono";RVe=rt(AVe,()=>new HG({responseHook:e=>{vtn(e)}})),Atn=(()=>({name:AVe,setupOnce(){RVe()}})),wVe=Atn});var BG=w(EP=>{"use strict";Object.defineProperty(EP,"__esModule",{value:!0});EP.KoaLayerType=void 0;var Rtn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Rtn=EP.KoaLayerType||(EP.KoaLayerType={}))});var IVe=w(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.PACKAGE_NAME=uw.PACKAGE_VERSION=void 0;uw.PACKAGE_VERSION="0.62.0";uw.PACKAGE_NAME="@opentelemetry/instrumentation-koa"});var Jte=w(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});bP.AttributeNames=void 0;var wtn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(wtn=bP.AttributeNames||(bP.AttributeNames={}))});var OVe=w(lw=>{"use strict";Object.defineProperty(lw,"__esModule",{value:!0});lw.isLayerIgnored=lw.getMiddlewareMetadata=void 0;var xVe=BG(),GG=Jte(),ktn=(xn(),Ie(Mr)),Itn=(e,t,n,r)=>n?{attributes:{[GG.AttributeNames.KOA_NAME]:r?.toString(),[GG.AttributeNames.KOA_TYPE]:xVe.KoaLayerType.ROUTER,[ktn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[GG.AttributeNames.KOA_NAME]:t.name??"middleware",[GG.AttributeNames.KOA_TYPE]:xVe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};lw.getMiddlewareMetadata=Itn;var xtn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));lw.isLayerIgnored=xtn});var NVe=w(zG=>{"use strict";Object.defineProperty(zG,"__esModule",{value:!0});zG.kLayerPatched=void 0;zG.kLayerPatched=Symbol("koa-layer-patched")});var UVe=w(VG=>{"use strict";Object.defineProperty(VG,"__esModule",{value:!0});VG.KoaInstrumentation=void 0;var Yp=(Me(),Ie(Ze)),TP=Yt(),PVe=BG(),CVe=IVe(),MVe=OVe(),DVe=dr(),LVe=NVe(),Xte=class extends TP.InstrumentationBase{constructor(t={}){super(CVe.PACKAGE_NAME,CVe.PACKAGE_VERSION,t)}init(){return new TP.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,TP.isWrapped)(n.prototype.use)&&this._unwrap(n.prototype,"use"),this._wrap(n.prototype,"use",this._getKoaUsePatch.bind(this)),t)},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;(0,TP.isWrapped)(n.prototype.use)&&this._unwrap(n.prototype,"use")})}_getKoaUsePatch(t){let n=this;return function(i){let s;return i.router?s=n._patchRouterDispatch(i):s=n._patchLayer(i,!1),t.apply(this,[s])}}_patchRouterDispatch(t){Yp.diag.debug("Patching @koa/router dispatch");let r=t.router?.stack??[];for(let i of r){let s=i.path,o=i.stack;for(let a=0;a{if(Yp.trace.getSpan(Yp.context.active())===void 0)return t(s,o);let c=(0,MVe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,DVe.getRPCMetadata)(Yp.context.active());l?.type===DVe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,TP.safeExecuteInTheMiddle)(()=>d(u,{context:s,middlewareLayer:t,layerType:i}),p=>{p&&Yp.diag.error("koa instrumentation: request hook failed",p)},!0);let f=Yp.trace.setSpan(Yp.context.active(),u);return Yp.context.with(f,async()=>{try{return await t(s,o)}catch(p){throw u.recordException(p),p}finally{u.end()}})})}};VG.KoaInstrumentation=Xte});var jVe=w(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0});cS.KoaLayerType=cS.AttributeNames=cS.KoaInstrumentation=void 0;var Otn=UVe();Object.defineProperty(cS,"KoaInstrumentation",{enumerable:!0,get:function(){return Otn.KoaInstrumentation}});var Ntn=Jte();Object.defineProperty(cS,"AttributeNames",{enumerable:!0,get:function(){return Ntn.AttributeNames}});var Ptn=BG();Object.defineProperty(cS,"KoaLayerType",{enumerable:!0,get:function(){return Ptn.KoaLayerType}})});var FVe,HVe,qVe,Ctn,BVe,GVe=v(()=>{FVe=_e(jVe(),1);xn();st();ir();WE();HVe="Koa",qVe=rt(HVe,FVe.KoaInstrumentation,(e={})=>({ignoreLayersType:e.ignoreLayersType,requestHook(t,n){Dr(t,"auto.http.otel.koa");let r=vt(t).data,i=r["koa.type"];i&&t.setAttribute(zt,`${i}.koa`);let s=r["koa.name"];if(typeof s=="string"&&t.updateName(s||"< unknown >"),vn()===Hl()){fo&&J.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[im],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Ctn=((e={})=>({name:HVe,setupOnce(){qVe(e)}})),BVe=Ctn});var Qte=w(pf=>{"use strict";Object.defineProperty(pf,"__esModule",{value:!0});pf.ConnectNames=pf.ConnectTypes=pf.AttributeNames=void 0;var Mtn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(Mtn=pf.AttributeNames||(pf.AttributeNames={}));var Dtn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Dtn=pf.ConnectTypes||(pf.ConnectTypes={}));var Ltn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(Ltn=pf.ConnectNames||(pf.ConnectNames={}))});var zVe=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.PACKAGE_NAME=dw.PACKAGE_VERSION=void 0;dw.PACKAGE_VERSION="0.57.0";dw.PACKAGE_NAME="@opentelemetry/instrumentation-connect"});var VVe=w(WG=>{"use strict";Object.defineProperty(WG,"__esModule",{value:!0});WG._LAYERS_STORE_PROPERTY=void 0;WG._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var WVe=w(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.generateRoute=lS.replaceCurrentStackRoute=lS.addNewStackLayer=void 0;var Utn=(Me(),Ie(Ze)),uS=VVe(),jtn=e=>{Array.isArray(e[uS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,uS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[uS._LAYERS_STORE_PROPERTY].push("/");let t=e[uS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[uS._LAYERS_STORE_PROPERTY].length?e[uS._LAYERS_STORE_PROPERTY].pop():Utn.diag.warn("Connect: Trying to pop the stack multiple time")}};lS.addNewStackLayer=jtn;var Ftn=(e,t)=>{t&&e[uS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};lS.replaceCurrentStackRoute=Ftn;var Htn=e=>e[uS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);lS.generateRoute=Htn});var YVe=w(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0});dS.ConnectInstrumentation=dS.ANONYMOUS_NAME=void 0;var qtn=(Me(),Ie(Ze)),KVe=dr(),fw=Qte(),ZVe=zVe(),KG=Yt(),Btn=(xn(),Ie(Mr)),$te=WVe();dS.ANONYMOUS_NAME="anonymous";var ene=class extends KG.InstrumentationBase{constructor(t={}){super(ZVe.PACKAGE_NAME,ZVe.PACKAGE_VERSION,t)}init(){return[new KG.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,KG.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,KG.isWrapped)(t.handle)||this._wrap(t,"handle",this._patchHandle.bind(this))}_patchConstructor(t){let n=this;return function(...r){let i=t.apply(this,r);return n._patchApp(i),i}}_patchNext(t,n){return function(i){let s=t.apply(this,[i]);return n(),s}}_startSpan(t,n){let r,i,s;t?(r=fw.ConnectTypes.REQUEST_HANDLER,s=fw.ConnectNames.REQUEST_HANDLER,i=t):(r=fw.ConnectTypes.MIDDLEWARE,s=fw.ConnectNames.MIDDLEWARE,i=n.name||dS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[Btn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[fw.AttributeNames.CONNECT_TYPE]:r,[fw.AttributeNames.CONNECT_NAME]:i}};return this.tracer.startSpan(o,a)}_patchMiddleware(t,n){let r=this,i=n.length===4;function s(){if(!r.isEnabled())return n.apply(this,arguments);let[o,a,c]=i?[1,2,3]:[0,1,2],u=arguments[o],l=arguments[a],d=arguments[c];(0,$te.replaceCurrentStackRoute)(u,t);let f=(0,KVe.getRPCMetadata)(qtn.context.active());t&&f?.type===KVe.RPCType.HTTP&&(f.route=(0,$te.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||dS.ANONYMOUS_NAME}`;let h=r._startSpan(t,n);r._diag.debug("start span",p);let m=!1;function y(){m?r._diag.debug(`span ${h.name} - already finished`):(m=!0,r._diag.debug(`finishing span ${h.name}`),h.end()),l.removeListener("close",y)}return l.addListener("close",y),arguments[c]=r._patchNext(d,y),n.apply(this,arguments)}return Object.defineProperty(s,"length",{value:n.length,writable:!1,configurable:!0}),s}_patchUse(t){let n=this;return function(...r){let i=r[r.length-1],s=r[r.length-2]||"";return r[r.length-1]=n._patchMiddleware(s,i),t.apply(this,r)}}_patchHandle(t){let n=this;return function(){let[r,i]=[0,2],s=arguments[r],o=arguments[i],a=(0,$te.addNewStackLayer)(s);return typeof o=="function"&&(arguments[i]=n._patchOut(o,a)),t.apply(this,arguments)}}_patchOut(t,n){return function(...i){return n(),Reflect.apply(t,this,i)}}};dS.ConnectInstrumentation=ene});var XVe=w(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.ConnectTypes=nd.ConnectNames=nd.AttributeNames=nd.ANONYMOUS_NAME=nd.ConnectInstrumentation=void 0;var JVe=YVe();Object.defineProperty(nd,"ConnectInstrumentation",{enumerable:!0,get:function(){return JVe.ConnectInstrumentation}});Object.defineProperty(nd,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return JVe.ANONYMOUS_NAME}});var tne=Qte();Object.defineProperty(nd,"AttributeNames",{enumerable:!0,get:function(){return tne.AttributeNames}});Object.defineProperty(nd,"ConnectNames",{enumerable:!0,get:function(){return tne.ConnectNames}});Object.defineProperty(nd,"ConnectTypes",{enumerable:!0,get:function(){return tne.ConnectTypes}})});var QVe,$Ve,eWe,Gtn,tWe,nWe=v(()=>{QVe=_e(XVe(),1);ir();$Ve="Connect",eWe=rt($Ve,()=>new QVe.ConnectInstrumentation),Gtn=(()=>({name:$Ve,setupOnce(){eWe()}})),tWe=Gtn});var rWe=w(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.DB_SYSTEM_VALUE_MSSQL=qo.ATTR_NET_PEER_PORT=qo.ATTR_NET_PEER_NAME=qo.ATTR_DB_USER=qo.ATTR_DB_SYSTEM=qo.ATTR_DB_STATEMENT=qo.ATTR_DB_SQL_TABLE=qo.ATTR_DB_NAME=void 0;qo.ATTR_DB_NAME="db.name";qo.ATTR_DB_SQL_TABLE="db.sql.table";qo.ATTR_DB_STATEMENT="db.statement";qo.ATTR_DB_SYSTEM="db.system";qo.ATTR_DB_USER="db.user";qo.ATTR_NET_PEER_NAME="net.peer.name";qo.ATTR_NET_PEER_PORT="net.peer.port";qo.DB_SYSTEM_VALUE_MSSQL="mssql"});var iWe=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.once=pw.getSpanName=void 0;function ztn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}pw.getSpanName=ztn;var Vtn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};pw.once=Vtn});var sWe=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.PACKAGE_NAME=hw.PACKAGE_VERSION=void 0;hw.PACKAGE_VERSION="0.33.0";hw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var lWe=w(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});pS.TediousInstrumentation=pS.INJECTED_CTX=void 0;var mw=(Me(),Ie(Ze)),Wtn=Y("events"),Jp=Yt(),ib=(xn(),Ie(Mr)),fS=rWe(),oWe=iWe(),aWe=sWe(),uWe=Symbol("opentelemetry.instrumentation-tedious.current-database");pS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var cWe=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function ZG(e){Object.defineProperty(this,uWe,{value:e,writable:!0})}var nne=class e extends Jp.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(aWe.PACKAGE_NAME,aWe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Jp.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Jp.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new Jp.InstrumentationNodeModuleDefinition(e.COMPONENT,[">=1.11.0 <20"],t=>{let n=t.Connection.prototype;for(let r of cWe)(0,Jp.isWrapped)(n[r])&&this._unwrap(n,r),this._wrap(n,r,this._patchQuery(r,t));return(0,Jp.isWrapped)(n.connect)&&this._unwrap(n,"connect"),this._wrap(n,"connect",this._patchConnect),t},t=>{if(t===void 0)return;let n=t.Connection.prototype;for(let r of cWe)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return ZG.call(this,this.config?.options?.database),this.removeListener("databaseChange",ZG),this.on("databaseChange",ZG),this.once("end",()=>{this.removeListener("databaseChange",ZG)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||mw.TraceFlags.NONE).toString(16)}`}_injectContextInfo(t,n,r){return new Promise(i=>{try{let s="set context_info @opentelemetry_traceparent",o=new n.Request(s,c=>{i()});Object.defineProperty(o,pS.INJECTED_CTX,{value:!0});let a=Buffer.from(r,"utf8");o.addParameter("opentelemetry_traceparent",n.TYPES.VarBinary,a,{length:a.length}),t.execSql(o)}catch{i()}})}_shouldInjectFor(t){return t==="execSql"||t==="execSqlBatch"||t==="callProcedure"||t==="execute"}_patchQuery(t,n){return r=>{let i=this;function s(o){if(o?.[pS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof Wtn.EventEmitter))return i._diag.warn(`Unexpected invocation of patched ${t} method. Span not recorded`),r.apply(this,arguments);let a=0,c=0,u=()=>c++,l=()=>a++,d=this[uWe],f=(_=>_.sqlTextOrProcedure==="sp_prepare"&&_.parametersByName?.stmt?.value?_.parametersByName.stmt.value:_.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&Jp.SemconvStability.OLD&&(p[fS.ATTR_DB_SYSTEM]=fS.DB_SYSTEM_VALUE_MSSQL,p[fS.ATTR_DB_NAME]=d,p[fS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[fS.ATTR_DB_STATEMENT]=f,p[fS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&Jp.SemconvStability.STABLE&&(p[ib.ATTR_DB_NAMESPACE]=d,p[ib.ATTR_DB_SYSTEM_NAME]=ib.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[ib.ATTR_DB_QUERY_TEXT]=f,p[ib.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&Jp.SemconvStability.OLD&&(p[fS.ATTR_NET_PEER_NAME]=this.config?.server,p[fS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&Jp.SemconvStability.STABLE&&(p[ib.ATTR_SERVER_ADDRESS]=this.config?.server,p[ib.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,oWe.getSpanName)(t,d,f,o.table),{kind:mw.SpanKind.CLIENT,attributes:p}),m=(0,oWe.once)(_=>{o.removeListener("done",u),o.removeListener("doneInProc",u),o.removeListener("doneProc",l),o.removeListener("error",m),this.removeListener("end",m),h.setAttribute("tedious.procedure_count",a),h.setAttribute("tedious.statement_count",c),_&&h.setStatus({code:mw.SpanStatusCode.ERROR,message:_.message}),h.end()});o.on("done",u),o.on("doneInProc",u),o.on("doneProc",l),o.once("error",m),this.on("end",m),typeof o.callback=="function"?i._wrap(o,"callback",i._patchCallbackQuery(m)):i._diag.error("Expected request.callback to be a function");let y=()=>mw.context.with(mw.trace.setSpan(mw.context.active(),h),r,this,...arguments);if(!(i.getConfig().enableTraceContextPropagation&&i._shouldInjectFor(t)))return y();let S=i._buildTraceparent(h);i._injectContextInfo(this,n,S).finally(y)}return Object.defineProperty(s,"length",{value:r.length,writable:!1}),s}}_patchCallbackQuery(t){return n=>function(r,i,s){return t(r),n.apply(this,arguments)}}};pS.TediousInstrumentation=nne});var dWe=w(YG=>{"use strict";Object.defineProperty(YG,"__esModule",{value:!0});YG.TediousInstrumentation=void 0;var Ktn=lWe();Object.defineProperty(YG,"TediousInstrumentation",{enumerable:!0,get:function(){return Ktn.TediousInstrumentation}})});var fWe,Ztn,pWe,hWe,Ytn,mWe,gWe=v(()=>{fWe=_e(dWe(),1);st();ir();Ztn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),pWe="Tedious",hWe=rt(pWe,()=>new fWe.TediousInstrumentation({})),Ytn=(()=>{let e;return{name:pWe,setupOnce(){let t=hWe();e=rN(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let{description:r,data:i}=vt(n);if(!r||i["db.system"]!=="mssql")return;let s=r.split(" ")[0]||"";Ztn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),mWe=Ytn});var yWe=w(gw=>{"use strict";Object.defineProperty(gw,"__esModule",{value:!0});gw.PACKAGE_NAME=gw.PACKAGE_VERSION=void 0;gw.PACKAGE_VERSION="0.57.0";gw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var _We=w(JG=>{"use strict";Object.defineProperty(JG,"__esModule",{value:!0});JG.GenericPoolInstrumentation=void 0;var yw=(Me(),Ie(Ze)),sb=Yt(),SWe=yWe(),rne="generic-pool",ine=class extends sb.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(SWe.PACKAGE_NAME,SWe.PACKAGE_VERSION,t)}init(){return[new sb.InstrumentationNodeModuleDefinition(rne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,sb.isWrapped)(n.prototype.acquire)&&this._unwrap(n.prototype,"acquire"),this._wrap(n.prototype,"acquire",this._acquirePatcher.bind(this)),t},t=>{let n=t.Pool;return this._unwrap(n.prototype,"acquire"),t}),new sb.InstrumentationNodeModuleDefinition(rne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,sb.isWrapped)(n.prototype.acquire)&&this._unwrap(n.prototype,"acquire"),this._wrap(n.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),t},t=>{let n=t.Pool;return this._unwrap(n.prototype,"acquire"),t}),new sb.InstrumentationNodeModuleDefinition(rne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,sb.isWrapped)(t.Pool)&&this._unwrap(t,"Pool"),this._wrap(t,"Pool",this._poolWrapper.bind(this)),t),t=>(this._isDisabled=!0,t))]}_acquirePatcher(t){let n=this;return function(...i){let s=yw.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return yw.context.with(yw.trace.setSpan(s,o),()=>t.call(this,...i).then(a=>(o.end(),a),a=>{throw o.recordException(a),o.end(),a}))}}_poolWrapper(t){let n=this;return function(){let i=t.apply(this,arguments);return n._wrap(i,"acquire",n._acquireWithCallbacksPatcher.bind(n)),i}}_acquireWithCallbacksPatcher(t){let n=this;return function(i,s){if(n._isDisabled)return t.call(this,i,s);let o=yw.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return yw.context.with(yw.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};JG.GenericPoolInstrumentation=ine});var EWe=w(XG=>{"use strict";Object.defineProperty(XG,"__esModule",{value:!0});XG.GenericPoolInstrumentation=void 0;var Jtn=_We();Object.defineProperty(XG,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return Jtn.GenericPoolInstrumentation}})});var bWe,TWe,vWe,Xtn,AWe,RWe=v(()=>{bWe=_e(EWe(),1);st();ir();TWe="GenericPool",vWe=rt(TWe,()=>new bWe.GenericPoolInstrumentation({})),Xtn=(()=>{let e;return{name:TWe,setupOnce(){let t=vWe();e=rN(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let i=vt(n).description;(i==="generic-pool.aquire"||i==="generic-pool.acquire")&&n.setAttribute(At,"auto.db.otel.generic_pool")}))}}}),AWe=Xtn});var sne=w(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.ATTR_NET_PEER_PORT=Xp.ATTR_NET_PEER_NAME=Xp.ATTR_MESSAGING_SYSTEM=Xp.ATTR_MESSAGING_OPERATION=void 0;Xp.ATTR_MESSAGING_OPERATION="messaging.operation";Xp.ATTR_MESSAGING_SYSTEM="messaging.system";Xp.ATTR_NET_PEER_NAME="net.peer.name";Xp.ATTR_NET_PEER_PORT="net.peer.port"});var one=w(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.ATTR_MESSAGING_CONVERSATION_ID=ls.OLD_ATTR_MESSAGING_MESSAGE_ID=ls.MESSAGING_DESTINATION_KIND_VALUE_TOPIC=ls.ATTR_MESSAGING_URL=ls.ATTR_MESSAGING_PROTOCOL_VERSION=ls.ATTR_MESSAGING_PROTOCOL=ls.MESSAGING_OPERATION_VALUE_PROCESS=ls.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY=ls.ATTR_MESSAGING_DESTINATION_KIND=ls.ATTR_MESSAGING_DESTINATION=void 0;ls.ATTR_MESSAGING_DESTINATION="messaging.destination";ls.ATTR_MESSAGING_DESTINATION_KIND="messaging.destination_kind";ls.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key";ls.MESSAGING_OPERATION_VALUE_PROCESS="process";ls.ATTR_MESSAGING_PROTOCOL="messaging.protocol";ls.ATTR_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version";ls.ATTR_MESSAGING_URL="messaging.url";ls.MESSAGING_DESTINATION_KIND_VALUE_TOPIC="topic";ls.OLD_ATTR_MESSAGING_MESSAGE_ID="messaging.message_id";ls.ATTR_MESSAGING_CONVERSATION_ID="messaging.conversation_id"});var ane=w(ob=>{"use strict";Object.defineProperty(ob,"__esModule",{value:!0});ob.DEFAULT_CONFIG=ob.EndOperation=void 0;var Qtn;(function(e){e.AutoAck="auto ack",e.Ack="ack",e.AckAll="ackAll",e.Reject="reject",e.Nack="nack",e.NackAll="nackAll",e.ChannelClosed="channel closed",e.ChannelError="channel error",e.InstrumentationTimeout="instrumentation timeout"})(Qtn=ob.EndOperation||(ob.EndOperation={}));ob.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var xWe=w(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});ds.isConfirmChannelTracing=ds.unmarkConfirmChannelTracing=ds.markConfirmChannelTracing=ds.getConnectionAttributesFromUrl=ds.getConnectionAttributesFromServer=ds.normalizeExchange=ds.CONNECTION_ATTRIBUTES=ds.CHANNEL_CONSUME_TIMEOUT_TIMER=ds.CHANNEL_SPANS_NOT_ENDED=ds.MESSAGE_STORED_SPAN=void 0;var cne=(Me(),Ie(Ze)),hS=Yt(),QG=(xn(),Ie(Mr)),vP=sne(),$G=one();ds.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span");ds.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended");ds.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer");ds.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");var une=(0,cne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),$tn=e=>e!==""?e:"";ds.normalizeExchange=$tn;var enn=e=>e.replace(/:[^:@/]*@/,":***@"),wWe=(e,t)=>e||(t==="AMQP"?5672:5671),kWe=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},IWe=e=>e||"localhost",Qp=(e,t,n,r)=>n?{[t]:n}:(cne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),tnn=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[vP.ATTR_MESSAGING_SYSTEM]:t}:{}};ds.getConnectionAttributesFromServer=tnn;var nnn=(e,t)=>{let n={[$G.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=kWe(r?.protocol);Object.assign(n,{...Qp(e,$G.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=IWe(r?.hostname);t&hS.SemconvStability.OLD&&Object.assign(n,{...Qp(e,vP.ATTR_NET_PEER_NAME,s,"hostname")}),t&hS.SemconvStability.STABLE&&Object.assign(n,{...Qp(e,QG.ATTR_SERVER_ADDRESS,s,"hostname")});let o=wWe(r.port,i);t&hS.SemconvStability.OLD&&Object.assign(n,Qp(e,vP.ATTR_NET_PEER_PORT,o,"port")),t&hS.SemconvStability.STABLE&&Object.assign(n,Qp(e,QG.ATTR_SERVER_PORT,o,"port"))}else{let r=enn(e);n[$G.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=kWe(i.protocol);Object.assign(n,{...Qp(r,$G.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=IWe(i.hostname);t&hS.SemconvStability.OLD&&Object.assign(n,{...Qp(r,vP.ATTR_NET_PEER_NAME,o,"hostname")}),t&hS.SemconvStability.STABLE&&Object.assign(n,{...Qp(r,QG.ATTR_SERVER_ADDRESS,o,"hostname")});let a=wWe(i.port?parseInt(i.port):void 0,s);t&hS.SemconvStability.OLD&&Object.assign(n,Qp(r,vP.ATTR_NET_PEER_PORT,a,"port")),t&hS.SemconvStability.STABLE&&Object.assign(n,Qp(r,QG.ATTR_SERVER_PORT,a,"port"))}catch(i){cne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ds.getConnectionAttributesFromUrl=nnn;var rnn=e=>e.setValue(une,!0);ds.markConfirmChannelTracing=rnn;var inn=e=>e.deleteValue(une);ds.unmarkConfirmChannelTracing=inn;var snn=e=>e.getValue(une)===!0;ds.isConfirmChannelTracing=snn});var OWe=w(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.PACKAGE_NAME=Sw.PACKAGE_VERSION=void 0;Sw.PACKAGE_VERSION="0.61.0";Sw.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var PWe=w(nz=>{"use strict";Object.defineProperty(nz,"__esModule",{value:!0});nz.AmqplibInstrumentation=void 0;var Vi=(Me(),Ie(Ze)),ez=dr(),fr=Yt(),onn=sne(),dl=one(),Uc=ane(),fs=xWe(),NWe=OWe(),tz=[">=0.5.5 <1"],lne=class extends fr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(NWe.PACKAGE_NAME,NWe.PACKAGE_VERSION,{...Uc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,fr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Uc.DEFAULT_CONFIG,...t})}init(){let t=new fr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",tz,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new fr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",tz,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new fr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",tz,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new fr.InstrumentationNodeModuleDefinition("amqplib",tz,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,fr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,fr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,fr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,fr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,fr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,Uc.EndOperation.Ack)),(0,fr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,Uc.EndOperation.Nack)),(0,fr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,Uc.EndOperation.Reject)),(0,fr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,Uc.EndOperation.AckAll)),(0,fr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,Uc.EndOperation.NackAll)),(0,fr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,fr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,fr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,fr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,fr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,fr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,fr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,fr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,fr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,fr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,fr.isWrapped)(t.ConfirmChannel.prototype.publish)&&this._unwrap(t.ConfirmChannel.prototype,"publish"),t}getConnectPatch(t){let n=this;return function(i,s,o){return t.call(this,i,s,function(a,c){if(a==null){let u=(0,fs.getConnectionAttributesFromUrl)(i,n._netSemconvStability),l=(0,fs.getConnectionAttributesFromServer)(c);c[fs.CONNECTION_ATTRIBUTES]={...u,...l}}o.apply(this,arguments)})}}getChannelEmitPatch(t){let n=this;return function(i){if(i==="close"){n.endAllSpansOnChannel(this,!0,Uc.EndOperation.ChannelClosed,void 0);let s=this[fs.CHANNEL_CONSUME_TIMEOUT_TIMER];s&&clearInterval(s),this[fs.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else i==="error"&&n.endAllSpansOnChannel(this,!0,Uc.EndOperation.ChannelError,void 0);return t.apply(this,arguments)}}getAckAllPatch(t,n,r){let i=this;return function(o){return i.endAllSpansOnChannel(this,t,n,o),r.apply(this,arguments)}}getAckPatch(t,n,r){let i=this;return function(o,a,c){let u=this,l=n===Uc.EndOperation.Reject?a:c,d=u[fs.CHANNEL_SPANS_NOT_ENDED]??[],f=d.findIndex(p=>p.msg===o);if(f<0)i.endConsumerSpan(o,t,n,l);else if(n!==Uc.EndOperation.Reject&&a){for(let p=0;p<=f;p++)i.endConsumerSpan(d[p].msg,t,n,l);d.splice(0,f+1)}else i.endConsumerSpan(o,t,n,l),d.splice(f,1);return r.apply(this,arguments)}}getConsumePatch(t,n){let r=this;return function(s,o,a){let c=this;if(!Object.prototype.hasOwnProperty.call(c,fs.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:l}=r.getConfig();if(l){let d=setInterval(()=>{r.checkConsumeTimeoutOnChannel(c)},l);d.unref(),c[fs.CHANNEL_CONSUME_TIMEOUT_TIMER]=d}c[fs.CHANNEL_SPANS_NOT_ENDED]=[]}let u=function(l){if(!l)return o.call(this,l);let d=l.properties.headers??{},f=Vi.propagation.extract(Vi.ROOT_CONTEXT,d),p=l.fields?.exchange,h;if(r._config.useLinksForConsume){let E=f?Vi.trace.getSpan(f)?.spanContext():void 0;f=void 0,E&&(h=[{context:E}])}let m=r.tracer.startSpan(`${s} process`,{kind:Vi.SpanKind.CONSUMER,attributes:{...c?.connection?.[fs.CONNECTION_ATTRIBUTES],[dl.ATTR_MESSAGING_DESTINATION]:p,[dl.ATTR_MESSAGING_DESTINATION_KIND]:dl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[dl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:l.fields?.routingKey,[onn.ATTR_MESSAGING_OPERATION]:dl.MESSAGING_OPERATION_VALUE_PROCESS,[dl.OLD_ATTR_MESSAGING_MESSAGE_ID]:l?.properties.messageId,[dl.ATTR_MESSAGING_CONVERSATION_ID]:l?.properties.correlationId},links:h},f),{consumeHook:y}=r.getConfig();y&&(0,fr.safeExecuteInTheMiddle)(()=>y(m,{moduleVersion:t,msg:l}),E=>{E&&Vi.diag.error("amqplib instrumentation: consumerHook error",E)},!0),a?.noAck||(c[fs.CHANNEL_SPANS_NOT_ENDED].push({msg:l,timeOfConsume:(0,ez.hrTime)()}),l[fs.MESSAGE_STORED_SPAN]=m);let g=f||Vi.ROOT_CONTEXT;Vi.context.with(Vi.trace.setSpan(g,m),()=>{o.call(this,l)}),a?.noAck&&(r.callConsumeEndHook(m,l,!1,Uc.EndOperation.AutoAck),m.end())};return arguments[1]=u,n.apply(this,arguments)}}getConfirmedPublishPatch(t,n){let r=this;return function(s,o,a,c,u){let l=this,{span:d,modifiedOptions:f}=r.createPublishSpan(r,s,o,l,c),{publishHook:p}=r.getConfig();p&&(0,fr.safeExecuteInTheMiddle)(()=>p(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:f,isConfirmChannel:!0}),g=>{g&&Vi.diag.error("amqplib instrumentation: publishHook error",g)},!0);let h=function(g,E){try{u?.call(this,g,E)}finally{let{publishConfirmHook:S}=r.getConfig();S&&(0,fr.safeExecuteInTheMiddle)(()=>S(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:c,isConfirmChannel:!0,confirmError:g}),_=>{_&&Vi.diag.error("amqplib instrumentation: publishConfirmHook error",_)},!0),g&&d.setStatus({code:Vi.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),d.end()}},m=(0,fs.markConfirmChannelTracing)(Vi.context.active()),y=[...arguments];return y[3]=f,y[4]=Vi.context.bind((0,fs.unmarkConfirmChannelTracing)(Vi.trace.setSpan(m,d)),h),Vi.context.with(m,n.bind(this,...y))}}getPublishPatch(t,n){let r=this;return function(s,o,a,c){if((0,fs.isConfirmChannelTracing)(Vi.context.active()))return n.apply(this,arguments);{let u=this,{span:l,modifiedOptions:d}=r.createPublishSpan(r,s,o,u,c),{publishHook:f}=r.getConfig();f&&(0,fr.safeExecuteInTheMiddle)(()=>f(l,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:d,isConfirmChannel:!1}),m=>{m&&Vi.diag.error("amqplib instrumentation: publishHook error",m)},!0);let p=[...arguments];p[3]=d;let h=n.apply(this,p);return l.end(),h}}}createPublishSpan(t,n,r,i,s){let o=(0,fs.normalizeExchange)(n),a=t.tracer.startSpan(`publish ${o}`,{kind:Vi.SpanKind.PRODUCER,attributes:{...i.connection[fs.CONNECTION_ATTRIBUTES],[dl.ATTR_MESSAGING_DESTINATION]:n,[dl.ATTR_MESSAGING_DESTINATION_KIND]:dl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[dl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:r,[dl.OLD_ATTR_MESSAGING_MESSAGE_ID]:s?.messageId,[dl.ATTR_MESSAGING_CONVERSATION_ID]:s?.correlationId}}),c=s??{};return c.headers=c.headers??{},Vi.propagation.inject(Vi.trace.setSpan(Vi.context.active(),a),c.headers),{span:a,modifiedOptions:c}}endConsumerSpan(t,n,r,i){let s=t[fs.MESSAGE_STORED_SPAN];s&&(n!==!1&&s.setStatus({code:Vi.SpanStatusCode.ERROR,message:r!==Uc.EndOperation.ChannelClosed&&r!==Uc.EndOperation.ChannelError?`${r} called on message${i===!0?" with requeue":i===!1?" without requeue":""}`:r}),this.callConsumeEndHook(s,t,n,r),s.end(),t[fs.MESSAGE_STORED_SPAN]=void 0)}endAllSpansOnChannel(t,n,r,i){(t[fs.CHANNEL_SPANS_NOT_ENDED]??[]).forEach(o=>{this.endConsumerSpan(o.msg,n,r,i)}),t[fs.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(t,n,r,i){let{consumeEndHook:s}=this.getConfig();s&&(0,fr.safeExecuteInTheMiddle)(()=>s(t,{msg:n,rejected:r,endOperation:i}),o=>{o&&Vi.diag.error("amqplib instrumentation: consumerEndHook error",o)},!0)}checkConsumeTimeoutOnChannel(t){let n=(0,ez.hrTime)(),r=t[fs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(mS,"__esModule",{value:!0});mS.EndOperation=mS.DEFAULT_CONFIG=mS.AmqplibInstrumentation=void 0;var ann=PWe();Object.defineProperty(mS,"AmqplibInstrumentation",{enumerable:!0,get:function(){return ann.AmqplibInstrumentation}});var CWe=ane();Object.defineProperty(mS,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return CWe.DEFAULT_CONFIG}});Object.defineProperty(mS,"EndOperation",{enumerable:!0,get:function(){return CWe.EndOperation}})});var DWe,LWe,cnn,UWe,unn,jWe,FWe=v(()=>{DWe=_e(MWe(),1);ir();LWe="Amqplib",cnn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},UWe=rt(LWe,()=>new DWe.AmqplibInstrumentation(cnn)),unn=(()=>({name:LWe,setupOnce(){UWe()}})),jWe=unn});var AP,dne=v(()=>{AP="VercelAI"});function dnn(e){if(typeof e!="object"||e===null)return!1;let t=e;return"type"in t&&"error"in t&&"toolName"in t&&"toolCallId"in t&&t.type==="tool-error"&&t.error instanceof Error}function fnn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(pnn(t.content),hnn(t.content))}function pnn(e){for(let t of e){if(!dnn(t))continue;let n=JX(t.toolCallId);n?Ga(r=>{r.setContext("trace",{trace_id:n.traceId,span_id:n.spanId}),r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})}):Ga(r=>{r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function hnn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&XX(t.toolCallId)}function mnn(e,t,n,r){let i=e?.recordInputs!==void 0?e.recordInputs:t.recordInputs!==void 0?t.recordInputs:n===!0?!0:r,s=e?.recordOutputs!==void 0?e.recordOutputs:t.recordOutputs!==void 0?t.recordOutputs:n===!0?!0:r;return{recordInputs:i,recordOutputs:s}}var iz,lnn,HWe,rz,qWe=v(()=>{iz=_e(Yt(),1);st();dne();lnn=[">=3.0.0 <7"],HWe=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];rz=class e extends iz.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",On,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new iz.InstrumentationNodeModuleDefinition("ai",lnn,this._patch.bind(this))}callWhenPatched(t){this._isPatched?t():this._callbacks.push(t)}_patch(t){this._isPatched=!0,this._callbacks.forEach(r=>r()),this._callbacks=[];let n=r=>new Proxy(r,{apply:(i,s,o)=>{let a=o[0].experimental_telemetry||{},c=a.isEnabled,u=ct(),l=u?.getIntegrationByName(AP),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=mnn(d,a,c,f);return o[0].experimental_telemetry={...a,isEnabled:c!==void 0?c:!0,recordInputs:p,recordOutputs:h},sf(()=>Reflect.apply(i,s,o),m=>{m&&typeof m=="object"&&Fs(m,"_sentry_active_span",Bl())},()=>{},m=>{fnn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of HWe)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=HWe.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function gnn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var BWe,ynn,GWe,zWe=v(()=>{st();ir();dne();qWe();BWe=rt(AP,()=>new rz({}));ynn=((e={})=>{let t;return{name:AP,options:e,setupOnce(){t=BWe()},afterAllSetup(n){e.force??gnn(n)?lH(n):t?.callWhenPatched(()=>lH(n))}}}),GWe=ynn});var oz,Snn,sz,VWe=v(()=>{oz=_e(Yt(),1);st();Snn=[">=4.0.0 <7"],sz=class extends oz.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",On,t)}init(){return new oz.InstrumentationNodeModuleDefinition("openai",Snn,this._patch.bind(this))}_patch(t){let n=t;return n=this._patchClient(n,"OpenAI"),n=this._patchClient(n,"AzureOpenAI"),n}_patchClient(t,n){let r=t[n];if(!r)return t;let i=this.getConfig(),s=function(...o){if(OE(Fy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return pH(a,i)};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}try{t[n]=s}catch{Object.defineProperty(t,n,{value:s,writable:!0,configurable:!0,enumerable:!0})}if(t.default===r)try{t.default=s}catch{Object.defineProperty(t,"default",{value:s,writable:!0,configurable:!0,enumerable:!0})}return t}}});var WWe,_nn,KWe,ZWe=v(()=>{st();ir();VWe();WWe=rt(Fy,e=>new sz(e)),_nn=((e={})=>({name:Fy,setupOnce(){WWe(e)}})),KWe=_nn});var cz,Enn,az,YWe=v(()=>{cz=_e(Yt(),1);st();Enn=[">=0.19.2 <1.0.0"],az=class extends cz.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",On,t)}init(){return new cz.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",Enn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(OE(Hy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return hH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}try{t.Anthropic=i}catch{Object.defineProperty(t,"Anthropic",{value:i,writable:!0,configurable:!0,enumerable:!0})}if(t.default===n)try{t.default=i}catch{Object.defineProperty(t,"default",{value:i,writable:!0,configurable:!0,enumerable:!0})}return t}}});var JWe,bnn,XWe,QWe=v(()=>{st();ir();YWe();JWe=rt(Hy,e=>new az(e)),bnn=((e={})=>({name:Hy,options:e,setupOnce(){JWe(e)}})),XWe=bnn});var _w,$We,uz,e4e=v(()=>{_w=_e(Yt(),1);st();$We=[">=0.10.0 <2"],uz=class extends _w.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",On,t)}init(){return new _w.InstrumentationNodeModuleDefinition("@google/genai",$We,n=>this._patch(n),n=>n,[new _w.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",$We,n=>this._patch(n),n=>n)])}_patch(t){let n=t.GoogleGenAI,r=this.getConfig();if(typeof n!="function")return t;let i=function(...s){if(OE(qy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return mH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}return tN(t,"GoogleGenAI",i),t}}});var t4e,Tnn,n4e,r4e=v(()=>{st();ir();e4e();t4e=rt(qy,e=>new uz(e)),Tnn=((e={})=>({name:qy,setupOnce(){t4e(e)}})),n4e=Tnn});function vnn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function Ann(e,t,n){return new Proxy(e,{apply(r,i,s){let a=s[1];(!a||typeof a!="object"||Array.isArray(a))&&(a={},s[1]=a);let c=a.callbacks,u=vnn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var gS,lz,dz,i4e=v(()=>{gS=_e(Yt(),1);st();lz=[">=0.1.0 <2.0.0"];dz=class extends gS.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",On,t)}init(){let t=[],n=["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"];for(let r of n)t.push(new gS.InstrumentationNodeModuleDefinition(r,lz,this._patch.bind(this),i=>i,[new gS.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,lz,this._patch.bind(this),i=>i)]));return t.push(new gS.InstrumentationNodeModuleDefinition("langchain",lz,this._patch.bind(this),r=>r,[new gS.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",lz,this._patch.bind(this),r=>r)])),t}_patch(t){mX([Fy,Hy,qy]);let n=_H(this.getConfig());return this._patchRunnableMethods(t,n),t}_patchRunnableMethods(t,n){let r=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],i=t.universal_exports??t,s=Object.values(i).find(c=>typeof c=="function"&&r.includes(c.name));if(!s)return;let o=s.prototype;if(o.__sentry_patched__)return;o.__sentry_patched__=!0;let a=["invoke","stream","batch"];for(let c of a){let u=o[c];typeof u=="function"&&(o[c]=Ann(u,n))}}}});var s4e,Rnn,o4e,a4e=v(()=>{st();ir();i4e();s4e=rt(gH,e=>new dz(e)),Rnn=((e={})=>({name:gH,setupOnce(){s4e(e)}})),o4e=Rnn});var Ew,c4e,fz,u4e=v(()=>{Ew=_e(Yt(),1);st();c4e=[">=0.0.0 <2.0.0"],fz=class extends Ew.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",On,t)}init(){return new Ew.InstrumentationNodeModuleDefinition("@langchain/langgraph",c4e,this._patch.bind(this),n=>n,[new Ew.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",c4e,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&bH(t.StateGraph.prototype,this.getConfig()),t}}});var l4e,wnn,d4e,f4e=v(()=>{st();ir();u4e();l4e=rt(EH,e=>new fz(e)),wnn=((e={})=>({name:EH,setupOnce(){l4e(e)}})),d4e=wnn});import*as h4e from"node:net";function m4e(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Om.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&$u.error(d?.message)},!0)});let c=new Om.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>p4e(l,n,r,e,o)),u=["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"];for(let l of u)c.files.push(new Om.InstrumentationNodeModuleFile(l,t,d=>p4e(d,n,r,e,o),d=>g4e(d,r)));return c}function p4e(e,t,n,r,i){return g4e(e,n),t(e,"addDoc",knn(r,i)),t(e,"getDocs",xnn(r,i)),t(e,"setDoc",Onn(r,i)),t(e,"deleteDoc",Inn(r,i)),e}function g4e(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Om.isWrapped)(e[n])&&t(e,n);return e}function knn(e,t){return function(r){return function(i,s){let o=hz(e,"addDoc",i);return t(o),pz(o,()=>r(i,s))}}}function Inn(e,t){return function(r){return function(i){let s=hz(e,"deleteDoc",i.parent||i);return t(s),pz(s,()=>r(i))}}}function xnn(e,t){return function(r){return function(i){let s=hz(e,"getDocs",i);return t(s),pz(s,()=>r(i))}}}function Onn(e,t){return function(r){return function(i,s,o){let a=hz(e,"setDoc",i.parent||i);return t(a),pz(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function pz(e,t){return Ve.with(Ut.setSpan(Ve.active(),e),()=>(0,Om.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function hz(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:Xr.CLIENT});return Pnn(r,n),r.setAttribute(iA,t),r}function Nnn(e){let t,n;if(typeof e.host=="string")if(e.host.startsWith("[")){if(e.host.endsWith("]"))t=e.host.replace(/^\[|\]$/g,"");else if(e.host.includes("]:")){let r=e.host.lastIndexOf(":");r!==-1&&(t=e.host.slice(1,r).replace(/^\[|\]$/g,""),n=e.host.slice(r+1))}}else if(h4e.isIPv6(e.host))t=e.host;else{let r=e.host.lastIndexOf(":");r!==-1?(t=e.host.slice(0,r),n=e.host.slice(r+1)):t=e.host}return{address:t,port:n?parseInt(n,10):void 0}}function Pnn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[B8]:t.path,[G8]:n.name,[fE]:"firebase.firestore","firebase.firestore.type":t.type,"firebase.firestore.options.projectId":r.projectId,"firebase.firestore.options.appId":r.appId,"firebase.firestore.options.messagingSenderId":r.messagingSenderId,"firebase.firestore.options.storageBucket":r.storageBucket},{address:a,port:c}=Nnn(s);a&&(o[X8]=a),c&&(o[Q8]=c),e.setAttributes(o)}var Om,y4e=v(()=>{Me();Om=_e(Yt(),1);xn()});function S4e(e,t,n,r,i){let s=()=>{},o=()=>{},a=i.functions?.errorHook,c=i.functions?.requestHook,u=i.functions?.responseHook;typeof u=="function"&&(o=(f,p)=>{(0,Nm.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&$u.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Nm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&$u.error(p?.message)},!0)});let l=new Nm.InstrumentationNodeModuleDefinition("firebase-functions",t);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:f,triggerType:p})=>{l.files.push(new Nm.InstrumentationNodeModuleFile(f,t,h=>Cnn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>_4e(h,r)))}),l}function jc(e,t,n){return function(i){return function(...s){let o=typeof s[0]=="function"?s[0]:s[1],a=typeof s[0]=="function"?void 0:s[0];if(!o)return i.call(this,...s);let c=async function(...u){let l=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",d=e.startSpan(`firebase.function.${n}`,{kind:Xr.SERVER}),f={"faas.name":l,"faas.trigger":n,"faas.provider":"firebase"};return process.env.GCLOUD_PROJECT&&(f["cloud.project_id"]=process.env.GCLOUD_PROJECT),process.env.EVENTARC_CLOUD_EVENT_SOURCE&&(f["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE),d.setAttributes(f),t?.requestHook?.(d),Ve.with(Ut.setSpan(Ve.active(),d),async()=>{let p,h;try{h=await o.apply(this,u)}catch(m){p=m}if(t?.responseHook?.(d,p),p&&d.recordException(p),d.end(),p)throw await t?.errorHook?.(d,p),p;return h})};return a?i.call(this,a,c):i.call(this,c)}}}function Cnn(e,t,n,r,i,s){switch(_4e(e,n),s){case"function":t(e,"onRequest",jc(r,i,"http.request")),t(e,"onCall",jc(r,i,"http.call"));break;case"firestore":t(e,"onDocumentCreated",jc(r,i,"firestore.document.created")),t(e,"onDocumentUpdated",jc(r,i,"firestore.document.updated")),t(e,"onDocumentDeleted",jc(r,i,"firestore.document.deleted")),t(e,"onDocumentWritten",jc(r,i,"firestore.document.written")),t(e,"onDocumentCreatedWithAuthContext",jc(r,i,"firestore.document.created")),t(e,"onDocumentUpdatedWithAuthContext",jc(r,i,"firestore.document.updated")),t(e,"onDocumentDeletedWithAuthContext",jc(r,i,"firestore.document.deleted")),t(e,"onDocumentWrittenWithAuthContext",jc(r,i,"firestore.document.written"));break;case"scheduler":t(e,"onSchedule",jc(r,i,"scheduler.scheduled"));break;case"storage":t(e,"onObjectFinalized",jc(r,i,"storage.object.finalized")),t(e,"onObjectArchived",jc(r,i,"storage.object.archived")),t(e,"onObjectDeleted",jc(r,i,"storage.object.deleted")),t(e,"onObjectMetadataUpdated",jc(r,i,"storage.object.metadataUpdated"));break}return e}function _4e(e,t){let n=["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"];for(let r of n)(0,Nm.isWrapped)(e[r])&&t(e,r);return e}var Nm,E4e=v(()=>{Me();Nm=_e(Yt(),1)});var T4e,b4e,Mnn,Dnn,mz,v4e=v(()=>{T4e=_e(Yt(),1);st();y4e();E4e();b4e={},Mnn=[">=3.0.0 <5"],Dnn=[">=6.0.0 <7"],mz=class extends T4e.InstrumentationBase{constructor(t=b4e){super("@sentry/instrumentation-firebase",On,t)}setConfig(t={}){super.setConfig({...b4e,...t})}init(){let t=[];return t.push(m4e(this.tracer,Mnn,this._wrap,this._unwrap,this.getConfig())),t.push(S4e(this.tracer,Dnn,this._wrap,this._unwrap,this.getConfig())),t}}});var A4e,Lnn,R4e,Unn,w4e,k4e=v(()=>{st();ir();v4e();A4e="Firebase",Lnn={firestoreSpanCreationHook:e=>{Dr(e,"auto.firebase.otel.firestore"),e.setAttribute(zt,"db.query")},functions:{requestHook:e=>{Dr(e,"auto.firebase.otel.functions"),e.setAttribute(zt,"http.request")},errorHook:async(e,t)=>{t&&(Wt(t,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await BA(2e3))}}},R4e=rt(A4e,()=>new mz(Lnn)),Unn=(()=>({name:A4e,setupOnce(){R4e()}})),w4e=Unn});function I4e(){return[bHe(),nBe(),xBe(),wVe(),gGe(),NGe(),GGe(),tze(),Cze(),e2e(),aVe(),bVe(),BVe(),tWe(),mWe(),AWe(),WBe(),jWe(),rGe(),o4e(),d4e(),GWe(),KWe(),XWe(),n4e(),i2e(),w4e()]}var x4e=v(()=>{FWe();QWe();nWe();THe();sBe();k4e();RWe();r4e();NBe();TVe();kVe();KBe();GVe();a4e();f4e();iGe();yGe();PGe();zGe();nze();ZWe();t2e();s2e();cVe();Mze();gWe();zWe()});function N4e(e,t={}){e.getOptions().debug&&x$();let[n,r]=jnn(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function jnn(e,t={}){let n=new O4e.BasicTracerProvider({sampler:new kq(e),resource:(0,gz.defaultResource)().merge((0,gz.resourceFromAttributes)({[$8]:"node",[q8]:"sentry",[eJ]:On})),forceFlushTimeoutMillis:500,spanProcessors:[new wq({timeout:Fnn(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});Ut.setGlobalTracerProvider(n),Zd.setGlobalPropagator(new Rq);let r=new I$;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function Fnn(e){if(e!=null){if(e>fne)return fo&&J.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${fne}`),fne;if(e<=0||Number.isNaN(e)){fo&&J.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var gz,O4e,fne,P4e=v(()=>{Me();gz=_e(qQ(),1),O4e=_e(p$(),1);xn();st();ir();ER();WE();fne=1e6});function C4e(){return Lq().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(XFe(),oHe())}function M4e(e){return[...C4e(),...ws(e)?I4e():[]]}function pne(e={}){return Hnn(e,M4e)}function Hnn(e={},t){NE(e,"node");let n=q$({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(N4e(n,{spanProcessors:e.openTelemetrySpanProcessors}),B$()),n}var D4e=v(()=>{st();ir();QFe();aHe();x4e();P4e()});var L4e=v(()=>{D4e();st()});var B4e={};Rr(B4e,{_resetPluginRootForTests:()=>Gnn,features:()=>Bo,observability:()=>gne,resolvePluginRoot:()=>nn,review:()=>mf,stripWildcardAllowedOrigins:()=>mne});import{existsSync as U4e}from"node:fs";import{dirname as j4e,join as F4e}from"node:path";import{fileURLToPath as Bnn}from"node:url";function hne(e,t){let n=process.env[e];if(n===void 0)return t;let r=n.trim().toLowerCase();return r==="1"||r==="true"||r==="yes"||r==="on"?!0:r==="0"||r==="false"||r==="no"||r==="off"||r===""?!1:t}function H4e(e,t){let n=process.env[e];return n===void 0||n===""?t:n}function Gnn(){hf=null}function nn(){if(hf!==null)return hf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return hf=e,hf;let t=q4e(process.argv[1]);if(t)return hf=t,process.env.CLAUDE_PLUGIN_ROOT=t,console.error(`[haiku] Self-resolved plugin root from argv: ${t}`),hf;try{let n=Bnn(import.meta.url),r=q4e(n);if(r)return hf=r,process.env.CLAUDE_PLUGIN_ROOT=r,console.error(`[haiku] Self-resolved plugin root from module: ${r}`),hf}catch{}return hf="",hf}function q4e(e){if(!e)return null;let t=j4e(e);for(let n=0;n<6;n++){if(U4e(F4e(t,"studios"))||U4e(F4e(t,".claude-plugin","plugin.json")))return t;let r=j4e(t);if(r===t)return null;t=r}return null}function mne(){let e=mf.allowedOrigins.length,t=mf.allowedOrigins.filter(r=>r!=="*"),n=e-t.length;return n>0&&(console.warn(`[haiku] WARN: HAIKU_REVIEW_ALLOWED_ORIGINS contained "*". Ignoring \u2014 wildcard CORS is unsafe with this server's auth model. Set an explicit allow-list.`),mf.allowedOrigins.length=0,mf.allowedOrigins.push(...t)),n}var hf,Bo,mf,gne,Oi=v(()=>{"use strict";hf=null;Bo={modelSelection:hne("HAIKU_MODEL_SELECTION",!0),remoteReview:hne("HAIKU_REMOTE_REVIEW",!1),telemetry:hne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},mf={siteUrl:H4e("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:H4e("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};gne={sentryDsn:""}});import{readFileSync as znn}from"node:fs";import{join as Vnn}from"node:path";function yS(){try{let e=nn();if(e)return JSON.parse(znn(Vnn(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var rd,ab=v(()=>{"use strict";Oi();rd="9.0.0"});var z4e={};Rr(z4e,{flush:()=>gf,isSentryConfigured:()=>Sne,reportError:()=>ps,reportFeedback:()=>yne});function G4e(e,t){!t||Object.keys(t).length===0||(e.setContext("session",t),t.CLAUDE_CODE_IS_COWORK&&e.setTag("cowork",t.CLAUDE_CODE_IS_COWORK),t.CLAUDE_MODEL&&e.setTag("model",t.CLAUDE_MODEL),t.CLAUDE_SESSION_ID&&e.setTag("session_id",t.CLAUDE_SESSION_ID),t.CLAUDE_CODE_ENTRYPOINT&&e.setTag("entrypoint",t.CLAUDE_CODE_ENTRYPOINT))}function ps(e,t,n){bw&&Ga(r=>{G4e(r,n),Wt(e,{extra:t})})}function yne(e,t,n,r){bw&&Ga(i=>{G4e(i,t),i.setTag("feedback","true"),tH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Sne(){return bw!==""}async function gf(e=2e3){bw&&await BA(e)}var bw,$p=v(()=>{"use strict";L4e();Oi();ab();bw=gne.sentryDsn;bw&&pne({dsn:bw,release:`haiku-mcp@${rd}`,tracesSampleRate:0})});var W4e={};Rr(W4e,{maybeRebuildSpaForDev:()=>Qnn});import{execFileSync as Wnn}from"node:child_process";import{existsSync as Sz,readdirSync as Knn,statSync as V4e}from"node:fs";import{dirname as Znn,join as yz,resolve as _ne}from"node:path";import{fileURLToPath as Ynn}from"node:url";function Jnn(e){if(!Sz(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=Knn(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=yz(r,s),a;try{a=V4e(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function Xnn(e){let t;try{t=Znn(Ynn(e))}catch{t=process.cwd()}let n=_ne(t,".."),r=_ne(n,".."),i=yz(r,"haiku-ui","src"),s=yz(n,"scripts","bundle-haiku-ui.mjs"),o=yz(n,"src","haiku-ui-html.ts");return!Sz(i)||!Sz(s)?null:{repoRoot:_ne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function Qnn(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=Xnn(e);if(!t)return;let n=Jnn(t.uiSrcDir),r=Sz(t.bundledHtml)?V4e(t.bundledHtml).mtimeMs:0;if(n<=r)return;console.error("[haiku] SPA sources newer than haiku-ui-html.ts \u2014 rebuilding (dev mode)\u2026");let i=Date.now();try{Wnn("node",[t.bundleScript],{cwd:t.repoRoot,stdio:["ignore","ignore","inherit"]})}catch(s){throw new Error(`[haiku] SPA rebuild failed: ${s instanceof Error?s.message:String(s)} - Run 'node packages/haiku/scripts/bundle-haiku-ui.mjs' manually to see full output, or set HAIKU_DEV_SPA_AUTO_REBUILD=0 to skip the check.`)}console.error(`[haiku] SPA rebuild complete in ${((Date.now()-i)/1e3).toFixed(1)}s.`)}var K4e=v(()=>{"use strict"});var Z4e={};Rr(Z4e,{askUserInstruction:()=>rrn,getCapabilities:()=>Ni,getHarness:()=>ern,isClaudeCode:()=>eh,listHarnesses:()=>trn,mapModelTier:()=>irn,setHarness:()=>$nn,skillReference:()=>wP,subagentInstruction:()=>nrn});function $nn(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in RP?Tw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(RP).join(", ")}`),Tw="claude-code"),console.error(`[haiku] Harness: ${RP[Tw].displayName}`)}function ern(){return Tw}function Ni(){return RP[Tw]}function eh(){return Tw==="claude-code"}function trn(){return Object.keys(RP)}function nrn(e){let t=Ni();if(!t.subagents.supported)return e.count&&e.count>1?`Execute ${e.count} tasks sequentially for: ${e.purpose}. Complete each task fully before starting the next.`:`Execute the following task directly: ${e.purpose}.`;let n=t.subagents.toolNames[0]||"subagent",r=[];if(e.count&&e.count>1&&t.subagents.parallelSpawn?r.push(`Spawn ${e.count} \`${n}\` calls in a single response (parallel) for: ${e.purpose}.`):e.count&&e.count>1?r.push(`Spawn ${e.count} \`${n}\` calls for: ${e.purpose}.`):r.push(`Spawn a \`${n}\` for: ${e.purpose}.`),e.agentType&&t.subagents.toolNames.includes("Agent")&&eh()&&r.push(`Agent type: \`${e.agentType}\``),e.model&&t.subagents.modelParam){let i=t.modelTierMap[e.model]||e.model;r.push(`Spawn with \`model: "${i}"\`.`)}return r.join(` -`)}function wP(e){let t=Ni();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function rrn(){let e=Ni();return e.nativeAskUser?"Use `AskUserQuestion` with an `options[]` array for every decision that has known alternatives \u2014 NEVER output option lists as plain text":e.elicitation?"When you have questions with known alternatives, present them as a numbered list and ask the user to pick. Use MCP elicitation when available for structured input.":"When you have questions with known alternatives, present them as a clear numbered list and ask the user to pick."}function irn(e){return Ni().modelTierMap[e]||e}var RP,Tw,yf=v(()=>{"use strict";RP={"claude-code":{displayName:"Claude Code",nativeSkills:!0,promptsAsSlashCommands:!0,hooks:!0,elicitation:!0,nativeAskUser:!0,planMode:!0,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"anthropic",subagents:{supported:!0,toolNames:["Agent","Task"],modelParam:!0,parallelSpawn:!0,backgroundSpawn:!0,isolation:!0},modelTiers:["haiku","sonnet","opus"],modelTierMap:{haiku:"haiku",sonnet:"sonnet",opus:"opus"}},cursor:{displayName:"Cursor",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!0,nativeAskUser:!1,planMode:!1,maxTools:40,mcpPrompts:!0,mcpResources:!0,modelProvider:"multi",subagents:{supported:!0,toolNames:["Agent"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!0},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},windsurf:{displayName:"Windsurf",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:100,mcpPrompts:!0,mcpResources:!0,modelProvider:"multi",subagents:{supported:!1,toolNames:[],modelParam:!1,parallelSpawn:!1,backgroundSpawn:!1,isolation:!1},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},"gemini-cli":{displayName:"Gemini CLI",nativeSkills:!1,promptsAsSlashCommands:!0,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"google",subagents:{supported:!0,toolNames:["@subagent"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!1},modelTiers:["flash","pro"],modelTierMap:{haiku:"flash",sonnet:"pro",opus:"pro"}},opencode:{displayName:"OpenCode",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!1,mcpResources:!1,modelProvider:"multi",subagents:{supported:!0,toolNames:["subagent"],modelParam:!0,parallelSpawn:!1,backgroundSpawn:!1,isolation:!1},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},kiro:{displayName:"Kiro",nativeSkills:!1,promptsAsSlashCommands:!0,hooks:!0,elicitation:!0,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"anthropic",subagents:{supported:!0,toolNames:["/spawn"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!0},modelTiers:["haiku","sonnet","opus"],modelTierMap:{haiku:"haiku",sonnet:"sonnet",opus:"opus"}}},Tw="claude-code"});var Nn,Ene,Xe,th,kP=v(()=>{(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},e.getValidEnumValues=i=>{let s=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},e.find=(i,s)=>{for(let o of i)if(s(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(Nn||(Nn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Ene||(Ene={}));Xe=Nn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),th=e=>{switch(typeof e){case"undefined":return Xe.undefined;case"string":return Xe.string;case"number":return Number.isNaN(e)?Xe.nan:Xe.number;case"boolean":return Xe.boolean;case"function":return Xe.function;case"bigint":return Xe.bigint;case"symbol":return Xe.symbol;case"object":return Array.isArray(e)?Xe.array:e===null?Xe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Xe.promise:typeof Map<"u"&&e instanceof Map?Xe.map:typeof Set<"u"&&e instanceof Set?Xe.set:typeof Date<"u"&&e instanceof Date?Xe.date:Xe.object;default:return Xe.unknown}}});var xe,srn,pu,_z=v(()=>{kP();xe=Nn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),srn=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),pu=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};pu.create=e=>new pu(e)});var orn,Pm,bne=v(()=>{_z();kP();orn=(e,t)=>{let n;switch(e.code){case xe.invalid_type:e.received===Xe.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case xe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Nn.jsonStringifyReplacer)}`;break;case xe.unrecognized_keys:n=`Unrecognized key(s) in object: ${Nn.joinValues(e.keys,", ")}`;break;case xe.invalid_union:n="Invalid input";break;case xe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Nn.joinValues(e.options)}`;break;case xe.invalid_enum_value:n=`Invalid enum value. Expected ${Nn.joinValues(e.options)}, received '${e.received}'`;break;case xe.invalid_arguments:n="Invalid function arguments";break;case xe.invalid_return_type:n="Invalid function return type";break;case xe.invalid_date:n="Invalid date";break;case xe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Nn.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case xe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case xe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case xe.custom:n="Invalid input";break;case xe.invalid_intersection_types:n="Intersection results could not be merged";break;case xe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case xe.not_finite:n="Number must be finite";break;default:n=t.defaultError,Nn.assertNever(e)}return{message:n}},Pm=orn});function arn(e){Y4e=e}function vw(){return Y4e}var Y4e,Ez=v(()=>{bne();Y4e=Pm});function We(e,t){let n=vw(),r=IP({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Pm?void 0:Pm].filter(i=>!!i)});e.common.issues.push(r)}var IP,crn,fa,Nt,cb,Ya,bz,Tz,SS,Aw,Tne=v(()=>{Ez();bne();IP=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}},crn=[];fa=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Nt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Nt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Nt=Object.freeze({status:"aborted"}),cb=e=>({status:"dirty",value:e}),Ya=e=>({status:"valid",value:e}),bz=e=>e.status==="aborted",Tz=e=>e.status==="dirty",SS=e=>e.status==="valid",Aw=e=>typeof Promise<"u"&&e instanceof Promise});var J4e=v(()=>{});var ut,X4e=v(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(ut||(ut={}))});function cn(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function tKe(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Rrn(e){return new RegExp(`^${tKe(e)}$`)}function nKe(e){let t=`${eKe}T${tKe(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function wrn(e,t){return!!((t==="v4"||!t)&&Srn.test(e)||(t==="v6"||!t)&&Ern.test(e))}function krn(e,t){if(!hrn.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Irn(e,t){return!!((t==="v4"||!t)&&_rn.test(e)||(t==="v6"||!t)&&brn.test(e))}function xrn(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function Rw(e){if(e instanceof hu){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=id.create(Rw(r))}return new hu({...e._def,shape:()=>t})}else return e instanceof Dm?new Dm({...e._def,type:Rw(e.element)}):e instanceof id?id.create(Rw(e.unwrap())):e instanceof rh?rh.create(Rw(e.unwrap())):e instanceof nh?nh.create(e.items.map(t=>Rw(t))):e}function Ane(e,t){let n=th(e),r=th(t);if(e===t)return{valid:!0,data:e};if(n===Xe.object&&r===Xe.object){let i=Nn.objectKeys(t),s=Nn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=Ane(e[a],t[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===Xe.array&&r===Xe.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let s=0;s{let s=e(r);if(s instanceof Promise)return s.then(o=>{if(!o){let a=$4e(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=$4e(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):ES.create()}var sd,Q4e,mn,urn,lrn,drn,frn,prn,hrn,mrn,grn,yrn,vne,Srn,_rn,Ern,brn,Trn,vrn,eKe,Arn,_S,ub,lb,db,fb,ww,pb,hb,ES,Mm,Sf,kw,Dm,hu,mb,Cm,vz,gb,nh,Az,Iw,xw,Rz,yb,Sb,_b,Eb,bS,od,id,rh,bb,Tb,Ow,Orn,xP,OP,vb,Nrn,Gt,Prn,sKe,oKe,Crn,Mrn,aKe,Drn,Lrn,Urn,jrn,Frn,Hrn,qrn,Brn,Grn,zrn,Vrn,Wrn,Krn,Zrn,Yrn,Jrn,Xrn,Qrn,$rn,ein,tin,nin,rin,iin,sin,oin,ain,cin,uin,lin,din,fin,pin,hin,cKe=v(()=>{_z();Ez();X4e();Tne();kP();sd=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Q4e=(e,t)=>{if(SS(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new pu(e.common.issues);return this._error=n,this._error}}};mn=class{get description(){return this._def.description}_getType(t){return th(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:th(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new fa,ctx:{common:t.parent.common,data:t.data,parsedType:th(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Aw(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:th(t)},i=this._parseSync({data:t,path:r.path,parent:r});return Q4e(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:th(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return SS(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>SS(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:th(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(Aw(i)?i:Promise.resolve(i));return Q4e(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:xe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new od({schema:this,typeName:Gt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return id.create(this,this._def)}nullable(){return rh.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Dm.create(this)}promise(){return bS.create(this,this._def)}or(t){return mb.create([this,t],this._def)}and(t){return gb.create(this,t,this._def)}transform(t){return new od({...cn(this._def),schema:this,typeName:Gt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new bb({...cn(this._def),innerType:this,defaultValue:n,typeName:Gt.ZodDefault})}brand(){return new xP({typeName:Gt.ZodBranded,type:this,...cn(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Tb({...cn(this._def),innerType:this,catchValue:n,typeName:Gt.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return OP.create(this,t)}readonly(){return vb.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},urn=/^c[^\s-]{8,}$/i,lrn=/^[0-9a-z]+$/,drn=/^[0-9A-HJKMNP-TV-Z]{26}$/i,frn=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,prn=/^[a-z0-9_-]{21}$/i,hrn=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,mrn=/^[-+]?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)?)??$/,grn=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,yrn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Srn=/^(?:(?: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])$/,_rn=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,Ern=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,brn=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Trn=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,vrn=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,eKe="((\\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])))",Arn=new RegExp(`^${eKe}$`);_S=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Xe.string){let s=this._getOrReturnCtx(t);return We(s,{code:xe.invalid_type,expected:Xe.string,received:s.parsedType}),Nt}let r=new fa,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:xe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:xe.invalid_string,...ut.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...ut.errToObj(t)})}url(t){return this._addCheck({kind:"url",...ut.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...ut.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...ut.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...ut.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...ut.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...ut.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...ut.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...ut.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...ut.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...ut.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...ut.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...ut.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...ut.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...ut.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...ut.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...ut.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...ut.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...ut.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...ut.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...ut.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...ut.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...ut.errToObj(n)})}nonempty(t){return this.min(1,ut.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew _S({checks:[],typeName:Gt.ZodString,coerce:e?.coerce??!1,...cn(e)});ub=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Xe.number){let s=this._getOrReturnCtx(t);return We(s,{code:xe.invalid_type,expected:Xe.number,received:s.parsedType}),Nt}let r,i=new fa;for(let s of this._def.checks)s.kind==="int"?Nn.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:xe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:xe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?xrn(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),We(r,{code:xe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:xe.not_finite,message:s.message}),i.dirty()):Nn.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:ut.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:ut.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ut.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ut.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&Nn.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew ub({checks:[],typeName:Gt.ZodNumber,coerce:e?.coerce||!1,...cn(e)});lb=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==Xe.bigint)return this._getInvalidInput(t);let r,i=new fa;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:xe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),We(r,{code:xe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):Nn.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return We(n,{code:xe.invalid_type,expected:Xe.bigint,received:n.parsedType}),Nt}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew lb({checks:[],typeName:Gt.ZodBigInt,coerce:e?.coerce??!1,...cn(e)});db=class extends mn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Xe.boolean){let r=this._getOrReturnCtx(t);return We(r,{code:xe.invalid_type,expected:Xe.boolean,received:r.parsedType}),Nt}return Ya(t.data)}};db.create=e=>new db({typeName:Gt.ZodBoolean,coerce:e?.coerce||!1,...cn(e)});fb=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Xe.date){let s=this._getOrReturnCtx(t);return We(s,{code:xe.invalid_type,expected:Xe.date,received:s.parsedType}),Nt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return We(s,{code:xe.invalid_date}),Nt}let r=new fa,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:xe.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):Nn.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:ut.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:ut.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew fb({checks:[],coerce:e?.coerce||!1,typeName:Gt.ZodDate,...cn(e)});ww=class extends mn{_parse(t){if(this._getType(t)!==Xe.symbol){let r=this._getOrReturnCtx(t);return We(r,{code:xe.invalid_type,expected:Xe.symbol,received:r.parsedType}),Nt}return Ya(t.data)}};ww.create=e=>new ww({typeName:Gt.ZodSymbol,...cn(e)});pb=class extends mn{_parse(t){if(this._getType(t)!==Xe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:xe.invalid_type,expected:Xe.undefined,received:r.parsedType}),Nt}return Ya(t.data)}};pb.create=e=>new pb({typeName:Gt.ZodUndefined,...cn(e)});hb=class extends mn{_parse(t){if(this._getType(t)!==Xe.null){let r=this._getOrReturnCtx(t);return We(r,{code:xe.invalid_type,expected:Xe.null,received:r.parsedType}),Nt}return Ya(t.data)}};hb.create=e=>new hb({typeName:Gt.ZodNull,...cn(e)});ES=class extends mn{constructor(){super(...arguments),this._any=!0}_parse(t){return Ya(t.data)}};ES.create=e=>new ES({typeName:Gt.ZodAny,...cn(e)});Mm=class extends mn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Ya(t.data)}};Mm.create=e=>new Mm({typeName:Gt.ZodUnknown,...cn(e)});Sf=class extends mn{_parse(t){let n=this._getOrReturnCtx(t);return We(n,{code:xe.invalid_type,expected:Xe.never,received:n.parsedType}),Nt}};Sf.create=e=>new Sf({typeName:Gt.ZodNever,...cn(e)});kw=class extends mn{_parse(t){if(this._getType(t)!==Xe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:xe.invalid_type,expected:Xe.void,received:r.parsedType}),Nt}return Ya(t.data)}};kw.create=e=>new kw({typeName:Gt.ZodVoid,...cn(e)});Dm=class e extends mn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==Xe.array)return We(n,{code:xe.invalid_type,expected:Xe.array,received:n.parsedType}),Nt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(We(n,{code:xe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new sd(n,o,n.path,a)))).then(o=>fa.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new sd(n,o,n.path,a)));return fa.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:ut.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:ut.toString(n)}})}nonempty(t){return this.min(1,t)}};Dm.create=(e,t)=>new Dm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Gt.ZodArray,...cn(t)});hu=class e extends mn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=Nn.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==Xe.object){let u=this._getOrReturnCtx(t);return We(u,{code:xe.invalid_type,expected:Xe.object,received:u.parsedType}),Nt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Sf&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new sd(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Sf){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(We(i,{code:xe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new sd(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>fa.mergeObjectSync(r,u)):fa.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return ut.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:ut.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Gt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of Nn.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of Nn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Rw(this)}partial(t){let n={};for(let r of Nn.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of Nn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof id;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return rKe(Nn.objectKeys(this.shape))}};hu.create=(e,t)=>new hu({shape:()=>e,unknownKeys:"strip",catchall:Sf.create(),typeName:Gt.ZodObject,...cn(t)});hu.strictCreate=(e,t)=>new hu({shape:()=>e,unknownKeys:"strict",catchall:Sf.create(),typeName:Gt.ZodObject,...cn(t)});hu.lazycreate=(e,t)=>new hu({shape:e,unknownKeys:"strip",catchall:Sf.create(),typeName:Gt.ZodObject,...cn(t)});mb=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new pu(a.ctx.common.issues));return We(n,{code:xe.invalid_union,unionErrors:o}),Nt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new pu(c));return We(n,{code:xe.invalid_union,unionErrors:a}),Nt}}get options(){return this._def.options}};mb.create=(e,t)=>new mb({options:e,typeName:Gt.ZodUnion,...cn(t)});Cm=e=>e instanceof yb?Cm(e.schema):e instanceof od?Cm(e.innerType()):e instanceof Sb?[e.value]:e instanceof _b?e.options:e instanceof Eb?Nn.objectValues(e.enum):e instanceof bb?Cm(e._def.innerType):e instanceof pb?[void 0]:e instanceof hb?[null]:e instanceof id?[void 0,...Cm(e.unwrap())]:e instanceof rh?[null,...Cm(e.unwrap())]:e instanceof xP||e instanceof vb?Cm(e.unwrap()):e instanceof Tb?Cm(e._def.innerType):[],vz=class e extends mn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Xe.object)return We(n,{code:xe.invalid_type,expected:Xe.object,received:n.parsedType}),Nt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(We(n,{code:xe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Nt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=Cm(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:Gt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...cn(r)})}};gb=class extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(bz(s)||bz(o))return Nt;let a=Ane(s.value,o.value);return a.valid?((Tz(s)||Tz(o))&&n.dirty(),{status:n.value,value:a.data}):(We(r,{code:xe.invalid_intersection_types}),Nt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};gb.create=(e,t,n)=>new gb({left:e,right:t,typeName:Gt.ZodIntersection,...cn(n)});nh=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.array)return We(r,{code:xe.invalid_type,expected:Xe.array,received:r.parsedType}),Nt;if(r.data.lengththis._def.items.length&&(We(r,{code:xe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new sd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>fa.mergeArray(n,o)):fa.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};nh.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new nh({items:e,typeName:Gt.ZodTuple,rest:null,...cn(t)})};Az=class e extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.object)return We(r,{code:xe.invalid_type,expected:Xe.object,received:r.parsedType}),Nt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new sd(r,a,r.path,a)),value:o._parse(new sd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?fa.mergeObjectAsync(n,i):fa.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof mn?new e({keyType:t,valueType:n,typeName:Gt.ZodRecord,...cn(r)}):new e({keyType:_S.create(),valueType:t,typeName:Gt.ZodRecord,...cn(n)})}},Iw=class extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.map)return We(r,{code:xe.invalid_type,expected:Xe.map,received:r.parsedType}),Nt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new sd(r,a,r.path,[u,"key"])),value:s._parse(new sd(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Nt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Nt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};Iw.create=(e,t,n)=>new Iw({valueType:t,keyType:e,typeName:Gt.ZodMap,...cn(n)});xw=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Xe.set)return We(r,{code:xe.invalid_type,expected:Xe.set,received:r.parsedType}),Nt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(We(r,{code:xe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Nt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new sd(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:ut.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};xw.create=(e,t)=>new xw({valueType:e,minSize:null,maxSize:null,typeName:Gt.ZodSet,...cn(t)});Rz=class e extends mn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Xe.function)return We(n,{code:xe.invalid_type,expected:Xe.function,received:n.parsedType}),Nt;function r(a,c){return IP({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,vw(),Pm].filter(u=>!!u),issueData:{code:xe.invalid_arguments,argumentsError:c}})}function i(a,c){return IP({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,vw(),Pm].filter(u=>!!u),issueData:{code:xe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof bS){let a=this;return Ya(async function(...c){let u=new pu([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return Ya(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new pu([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new pu([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:nh.create(t).rest(Mm.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||nh.create([]).rest(Mm.create()),returns:n||Mm.create(),typeName:Gt.ZodFunction,...cn(r)})}},yb=class extends mn{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};yb.create=(e,t)=>new yb({getter:e,typeName:Gt.ZodLazy,...cn(t)});Sb=class extends mn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return We(n,{received:n.data,code:xe.invalid_literal,expected:this._def.value}),Nt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Sb.create=(e,t)=>new Sb({value:e,typeName:Gt.ZodLiteral,...cn(t)});_b=class e extends mn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Nn.joinValues(r),received:n.parsedType,code:xe.invalid_type}),Nt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{received:n.data,code:xe.invalid_enum_value,options:r}),Nt}return Ya(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};_b.create=rKe;Eb=class extends mn{_parse(t){let n=Nn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Xe.string&&r.parsedType!==Xe.number){let i=Nn.objectValues(n);return We(r,{expected:Nn.joinValues(i),received:r.parsedType,code:xe.invalid_type}),Nt}if(this._cache||(this._cache=new Set(Nn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Nn.objectValues(n);return We(r,{received:r.data,code:xe.invalid_enum_value,options:i}),Nt}return Ya(t.data)}get enum(){return this._def.values}};Eb.create=(e,t)=>new Eb({values:e,typeName:Gt.ZodNativeEnum,...cn(t)});bS=class extends mn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Xe.promise&&n.common.async===!1)return We(n,{code:xe.invalid_type,expected:Xe.promise,received:n.parsedType}),Nt;let r=n.parsedType===Xe.promise?n.data:Promise.resolve(n.data);return Ya(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};bS.create=(e,t)=>new bS({type:e,typeName:Gt.ZodPromise,...cn(t)});od=class extends mn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Gt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{We(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Nt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Nt:c.status==="dirty"?cb(c.value):n.value==="dirty"?cb(c.value):c});{if(n.value==="aborted")return Nt;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Nt:a.status==="dirty"?cb(a.value):n.value==="dirty"?cb(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Nt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Nt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!SS(o))return Nt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>SS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Nt);Nn.assertNever(i)}};od.create=(e,t,n)=>new od({schema:e,typeName:Gt.ZodEffects,effect:t,...cn(n)});od.createWithPreprocess=(e,t,n)=>new od({schema:t,effect:{type:"preprocess",transform:e},typeName:Gt.ZodEffects,...cn(n)});id=class extends mn{_parse(t){return this._getType(t)===Xe.undefined?Ya(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};id.create=(e,t)=>new id({innerType:e,typeName:Gt.ZodOptional,...cn(t)});rh=class extends mn{_parse(t){return this._getType(t)===Xe.null?Ya(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};rh.create=(e,t)=>new rh({innerType:e,typeName:Gt.ZodNullable,...cn(t)});bb=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===Xe.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};bb.create=(e,t)=>new bb({innerType:e,typeName:Gt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...cn(t)});Tb=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Aw(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new pu(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new pu(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Tb.create=(e,t)=>new Tb({innerType:e,typeName:Gt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...cn(t)});Ow=class extends mn{_parse(t){if(this._getType(t)!==Xe.nan){let r=this._getOrReturnCtx(t);return We(r,{code:xe.invalid_type,expected:Xe.nan,received:r.parsedType}),Nt}return{status:"valid",value:t.data}}};Ow.create=e=>new Ow({typeName:Gt.ZodNaN,...cn(e)});Orn=Symbol("zod_brand"),xP=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},OP=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Nt:s.status==="dirty"?(n.dirty(),cb(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Nt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:Gt.ZodPipeline})}},vb=class extends mn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(SS(i)&&(i.value=Object.freeze(i.value)),i);return Aw(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};vb.create=(e,t)=>new vb({innerType:e,typeName:Gt.ZodReadonly,...cn(t)});Nrn={object:hu.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Gt||(Gt={}));Prn=(e,t={message:`Input not instance of ${e.name}`})=>iKe(n=>n instanceof e,t),sKe=_S.create,oKe=ub.create,Crn=Ow.create,Mrn=lb.create,aKe=db.create,Drn=fb.create,Lrn=ww.create,Urn=pb.create,jrn=hb.create,Frn=ES.create,Hrn=Mm.create,qrn=Sf.create,Brn=kw.create,Grn=Dm.create,zrn=hu.create,Vrn=hu.strictCreate,Wrn=mb.create,Krn=vz.create,Zrn=gb.create,Yrn=nh.create,Jrn=Az.create,Xrn=Iw.create,Qrn=xw.create,$rn=Rz.create,ein=yb.create,tin=Sb.create,nin=_b.create,rin=Eb.create,iin=bS.create,sin=od.create,oin=id.create,ain=rh.create,cin=od.createWithPreprocess,uin=OP.create,lin=()=>sKe().optional(),din=()=>oKe().optional(),fin=()=>aKe().optional(),pin={string:(e=>_S.create({...e,coerce:!0})),number:(e=>ub.create({...e,coerce:!0})),boolean:(e=>db.create({...e,coerce:!0})),bigint:(e=>lb.create({...e,coerce:!0})),date:(e=>fb.create({...e,coerce:!0}))},hin=Nt});var O={};Rr(O,{BRAND:()=>Orn,DIRTY:()=>cb,EMPTY_PATH:()=>crn,INVALID:()=>Nt,NEVER:()=>hin,OK:()=>Ya,ParseStatus:()=>fa,Schema:()=>mn,ZodAny:()=>ES,ZodArray:()=>Dm,ZodBigInt:()=>lb,ZodBoolean:()=>db,ZodBranded:()=>xP,ZodCatch:()=>Tb,ZodDate:()=>fb,ZodDefault:()=>bb,ZodDiscriminatedUnion:()=>vz,ZodEffects:()=>od,ZodEnum:()=>_b,ZodError:()=>pu,ZodFirstPartyTypeKind:()=>Gt,ZodFunction:()=>Rz,ZodIntersection:()=>gb,ZodIssueCode:()=>xe,ZodLazy:()=>yb,ZodLiteral:()=>Sb,ZodMap:()=>Iw,ZodNaN:()=>Ow,ZodNativeEnum:()=>Eb,ZodNever:()=>Sf,ZodNull:()=>hb,ZodNullable:()=>rh,ZodNumber:()=>ub,ZodObject:()=>hu,ZodOptional:()=>id,ZodParsedType:()=>Xe,ZodPipeline:()=>OP,ZodPromise:()=>bS,ZodReadonly:()=>vb,ZodRecord:()=>Az,ZodSchema:()=>mn,ZodSet:()=>xw,ZodString:()=>_S,ZodSymbol:()=>ww,ZodTransformer:()=>od,ZodTuple:()=>nh,ZodType:()=>mn,ZodUndefined:()=>pb,ZodUnion:()=>mb,ZodUnknown:()=>Mm,ZodVoid:()=>kw,addIssueToContext:()=>We,any:()=>Frn,array:()=>Grn,bigint:()=>Mrn,boolean:()=>aKe,coerce:()=>pin,custom:()=>iKe,date:()=>Drn,datetimeRegex:()=>nKe,defaultErrorMap:()=>Pm,discriminatedUnion:()=>Krn,effect:()=>sin,enum:()=>nin,function:()=>$rn,getErrorMap:()=>vw,getParsedType:()=>th,instanceof:()=>Prn,intersection:()=>Zrn,isAborted:()=>bz,isAsync:()=>Aw,isDirty:()=>Tz,isValid:()=>SS,late:()=>Nrn,lazy:()=>ein,literal:()=>tin,makeIssue:()=>IP,map:()=>Xrn,nan:()=>Crn,nativeEnum:()=>rin,never:()=>qrn,null:()=>jrn,nullable:()=>ain,number:()=>oKe,object:()=>zrn,objectUtil:()=>Ene,oboolean:()=>fin,onumber:()=>din,optional:()=>oin,ostring:()=>lin,pipeline:()=>uin,preprocess:()=>cin,promise:()=>iin,quotelessJson:()=>srn,record:()=>Jrn,set:()=>Qrn,setErrorMap:()=>arn,strictObject:()=>Vrn,string:()=>sKe,symbol:()=>Lrn,transformer:()=>sin,tuple:()=>Yrn,undefined:()=>Urn,union:()=>Wrn,unknown:()=>Hrn,util:()=>Nn,void:()=>Brn});var Rne=v(()=>{Ez();Tne();J4e();kP();cKe();_z()});function he(e,t,n){function r(a,c){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(e),t(a,c);for(let l in o.prototype)l in a||Object.defineProperty(a,l,{value:o.prototype[l].bind(a)});a._zod.constr=o,a._zod.def=c}let i=n?.Parent??Object;class s extends i{}Object.defineProperty(s,"name",{value:e});function o(a){var c;let u=n?.Parent?new s:this;r(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function ad(e){return e&&Object.assign(wz,e),wz}var tjr,Lm,wz,Nw=v(()=>{tjr=Object.freeze({status:"aborted"});Lm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},wz={}});var sr={};Rr(sr,{BIGINT_FORMAT_RANGES:()=>lKe,Class:()=>kne,NUMBER_FORMAT_RANGES:()=>Dne,aborted:()=>Rb,allowsEval:()=>Pne,assert:()=>_in,assertEqual:()=>min,assertIs:()=>yin,assertNever:()=>Sin,assertNotEqual:()=>gin,assignProp:()=>Nne,cached:()=>PP,captureStackTrace:()=>Iz,cleanEnum:()=>Pin,cleanRegex:()=>MP,clone:()=>ih,createTransparentProxy:()=>Rin,defineLazy:()=>ei,esc:()=>Ab,escapeRegex:()=>TS,extend:()=>Iin,finalizeIssue:()=>_f,floatSafeRemainder:()=>One,getElementAtPath:()=>Ein,getEnumValues:()=>Ine,getLengthableOrigin:()=>DP,getParsedType:()=>Ain,getSizableOrigin:()=>dKe,isObject:()=>Pw,isPlainObject:()=>Cw,issue:()=>Lne,joinValues:()=>kz,jsonStringifyReplacer:()=>xne,merge:()=>xin,normalizeParams:()=>Pt,nullish:()=>CP,numKeys:()=>vin,omit:()=>kin,optionalKeys:()=>Mne,partial:()=>Oin,pick:()=>win,prefixIssues:()=>sh,primitiveTypes:()=>uKe,promiseAllObject:()=>bin,propertyKeyTypes:()=>Cne,randomString:()=>Tin,required:()=>Nin,stringifyPrimitive:()=>xz,unwrapMessage:()=>NP});function min(e){return e}function gin(e){return e}function yin(e){}function Sin(e){throw new Error}function _in(e){}function Ine(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function kz(e,t="|"){return e.map(n=>xz(n)).join(t)}function xne(e,t){return typeof t=="bigint"?t.toString():t}function PP(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function CP(e){return e==null}function MP(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function One(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function ei(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function Nne(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Ein(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function bin(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Rin(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function xz(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Mne(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function win(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return ih(e,{...e._zod.def,shape:n,checks:[]})}function kin(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return ih(e,{...e._zod.def,shape:n,checks:[]})}function Iin(e,t){if(!Cw(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return Nne(this,"shape",r),r},checks:[]};return ih(e,n)}function xin(e,t){return ih(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Nne(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Oin(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return ih(t,{...t._zod.def,shape:i,checks:[]})}function Nin(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return ih(t,{...t._zod.def,shape:i,checks:[]})}function Rb(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function NP(e){return typeof e=="string"?e:e?.message}function _f(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=NP(e.inst?._zod.def?.error?.(e))??NP(t?.error?.(e))??NP(n.customError?.(e))??NP(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function dKe(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function DP(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Lne(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Pin(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var Iz,Pne,Ain,Cne,uKe,Dne,lKe,kne,Um=v(()=>{Iz=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};Pne=PP(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Ain=e=>{let t=typeof e;switch(t){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":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},Cne=new Set(["string","number","symbol"]),uKe=new Set(["string","number","bigint","boolean","symbol","undefined"]);Dne={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},lKe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};kne=class{constructor(...t){}}});function pKe(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function hKe(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;c{Nw();Um();fKe=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,xne,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Oz=he("$ZodError",fKe),Une=he("$ZodError",fKe,{Parent:Error})});var mKe,gKe,Fne,LP,Hne,Nz,qne=v(()=>{Nw();jne();Um();mKe=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new Lm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>_f(c,s,ad())));throw Iz(a,i?.callee),a}return o.value},gKe=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>_f(c,s,ad())));throw Iz(a,i?.callee),a}return o.value},Fne=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Lm;return s.issues.length?{success:!1,error:new(e??Oz)(s.issues.map(o=>_f(o,i,ad())))}:{success:!0,data:s.value}},LP=Fne(Une),Hne=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>_f(o,i,ad())))}:{success:!0,data:s.value}},Nz=Hne(Une)});function wKe(){return new RegExp(Min,"u")}function LKe(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function UKe(e){return new RegExp(`^${LKe(e)}$`)}function jKe(e){let t=LKe({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-]\\d{2}:\\d{2})");let r=`${t}(?:${n.join("|")})`;return new RegExp(`^${MKe}T(?:${r})$`)}var yKe,SKe,_Ke,EKe,bKe,TKe,vKe,AKe,Bne,RKe,Min,kKe,IKe,xKe,OKe,NKe,Gne,PKe,CKe,MKe,DKe,FKe,HKe,qKe,BKe,GKe,zKe,VKe,Pz=v(()=>{yKe=/^[cC][^\s-]{8,}$/,SKe=/^[0-9a-z]+$/,_Ke=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,EKe=/^[0-9a-vA-V]{20}$/,bKe=/^[A-Za-z0-9]{27}$/,TKe=/^[a-zA-Z0-9_-]{21}$/,vKe=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,AKe=/^([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})$/,Bne=e=>e?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})$`):/^([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)$/,RKe=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Min="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";kKe=/^(?:(?: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])$/,IKe=/^(([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})$/,xKe=/^((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])$/,OKe=/^(([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])$/,NKe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Gne=/^[A-Za-z0-9_-]*$/,PKe=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,CKe=/^\+(?:[0-9]){6,14}[0-9]$/,MKe="(?:(?:\\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])))",DKe=new RegExp(`^${MKe}$`);FKe=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},HKe=/^\d+$/,qKe=/^-?\d+(?:\.\d+)?/i,BKe=/true|false/i,GKe=/null/i,zKe=/^[^A-Z]*$/,VKe=/^[^a-z]*$/});var Ja,WKe,Vne,Wne,KKe,ZKe,YKe,JKe,XKe,UP,QKe,$Ke,e3e,t3e,n3e,r3e,i3e,Cz=v(()=>{Nw();Pz();Um();Ja=he("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),WKe={number:"number",bigint:"bigint",object:"date"},Vne=he("$ZodCheckLessThan",(e,t)=>{Ja.init(e,t);let n=WKe[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{Ja.init(e,t);let n=WKe[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),KKe=he("$ZodCheckMultipleOf",(e,t)=>{Ja.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):One(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ZKe=he("$ZodCheckNumberFormat",(e,t)=>{Ja.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=Dne[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=HKe)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),YKe=he("$ZodCheckMaxLength",(e,t)=>{var n;Ja.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!CP(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let i=r.value;if(i.length<=t.maximum)return;let o=DP(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),JKe=he("$ZodCheckMinLength",(e,t)=>{var n;Ja.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!CP(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{let i=r.value;if(i.length>=t.minimum)return;let o=DP(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),XKe=he("$ZodCheckLengthEquals",(e,t)=>{var n;Ja.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!CP(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{let i=r.value,s=i.length;if(s===t.length)return;let o=DP(i),a=s>t.length;r.issues.push({origin:o,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),UP=he("$ZodCheckStringFormat",(e,t)=>{var n,r;Ja.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),QKe=he("$ZodCheckRegex",(e,t)=>{UP.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),$Ke=he("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=zKe),UP.init(e,t)}),e3e=he("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=VKe),UP.init(e,t)}),t3e=he("$ZodCheckIncludes",(e,t)=>{Ja.init(e,t);let n=TS(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),n3e=he("$ZodCheckStartsWith",(e,t)=>{Ja.init(e,t);let n=new RegExp(`^${TS(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),r3e=he("$ZodCheckEndsWith",(e,t)=>{Ja.init(e,t);let n=new RegExp(`.*${TS(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),i3e=he("$ZodCheckOverwrite",(e,t)=>{Ja.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var Mz,Kne=v(()=>{Mz=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` +`;let c=nHe(i);i.write(`${a}\r +`);let{connect:u,buffered:l}=await c;if(t.emit("proxyConnect",u),this.emit("proxyConnect",u,t),u.statusCode===200){if(t.once("socket",S8t),n.secureEndpoint){xP("Upgrading socket connection to TLS");let f=n.servername||n.host;return ree.connect({...iHe(n,"host","path","port"),socket:i,servername:km.isIP(f)?void 0:f})}return i}i.destroy();let d=new km.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{xP("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};OP.__initStatic()});import*as E8t from"node:http";import*as _8t from"node:https";import{Readable as b8t}from"node:stream";import{createGzip as T8t}from"node:zlib";function A8t(e){return new b8t({read(){this.push(e),this.push(null)}})}function oHe(e){let t;try{t=new URL(e.url)}catch{return xs(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),ZO(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=R8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?_8t:E8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new OP(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=w8t(e,e.httpModule??i,o);return ZO(e,a)}function R8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function w8t(e,t,n){let{hostname:r,pathname:i,port:s,protocol:o,search:a}=new URL(e.url);return function(u){return new Promise((l,d)=>{VA(()=>{let f=A8t(u.body),p={...e.headers};u.body.length>v8t&&(p["content-encoding"]="gzip",f=f.pipe(T8t()));let h=r.startsWith("["),m=t.request({method:"POST",agent:n,headers:p,hostname:h?r.slice(1,-1):r,path:`${i}${a}`,port:s,protocol:o,ca:e.caCerts},g=>{g.on("data",()=>{}),g.on("end",()=>{}),g.setEncoding("utf8");let y=g.headers["retry-after"]??null,E=g.headers["x-sentry-rate-limits"]??null;l({statusCode:g.statusCode,headers:{"retry-after":y,"x-sentry-rate-limits":Array.isArray(E)?E[0]||null:E}})});m.on("error",d),f.pipe(m)})})}}var v8t,aHe=v(()=>{st();sHe();v8t=1024*32});function cHe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=XA(process.env.SENTRY_SPOTLIGHT,{strict:!0}),n=t===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return e===!0?n??!0:t??n}var uHe=v(()=>{st()});import{posix as k8t,sep as I8t}from"node:path";function lHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function dHe(e=process.argv[1]?BX(process.argv[1]):process.cwd(),t=I8t==="\\"){let n=t?lHe(e):e;return r=>{if(!r)return;let i=t?lHe(r):r,{dir:s,base:o,ext:a}=k8t.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(o=o.slice(0,a.length*-1));let c=decodeURIComponent(o);s||(s=".");let u=s.lastIndexOf("/node_modules");if(u>-1)return`${s.slice(u+14).replace(/\//g,".")}:${c}`;if(s.startsWith(n)){let l=s.slice(n.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}var fHe=v(()=>{st()});function pHe(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(qt.SENTRY_RELEASE?.id)return qt.SENTRY_RELEASE.id;let t=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,n=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,r=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return t||n||r||e}var hHe,mHe=v(()=>{st();fHe();hHe=_j(xQ(dHe()))});import*as gHe from"node:os";import{threadId as x8t,isMainThread as O8t}from"worker_threads";var yHe,P8t,Zq,SHe=v(()=>{Ce();yHe=Se(Jt(),1);st();wR();lf();P8t=6e4,Zq=class extends JO{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||gHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,yHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),D_(r,"node"),Z.log(`Initializing Sentry: process: ${process.pid}, thread: ${O8t?"main":`worker-${x8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{ZA(this)},n&&this.on("beforeCaptureLog",i=>{i.attributes={...i.attributes,"server.address":n}}),process.on("beforeExit",this._logOnExitFlushListener))}get tracer(){if(this._tracer)return this._tracer;let t="@sentry/node",n=Nn,r=jt.getTracer(t,n);return this._tracer=r,r}async flush(t){return await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports&&this._flushOutcomes(),super.flush(t)}async close(t){this._clientReportInterval&&clearInterval(this._clientReportInterval),this._clientReportOnExitFlushListener&&process.off("beforeExit",this._clientReportOnExitFlushListener),this._logOnExitFlushListener&&process.off("beforeExit",this._logOnExitFlushListener);let n=await super.close(t);return this.traceProvider&&await this.traceProvider.shutdown(),n}startClientReportTracking(){let t=this.getOptions();t.sendClientReports&&(this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{Qt&&Z.log("Flushing client reports based on interval."),this._flushOutcomes()},t.clientReportFlushInterval??P8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){MX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?$Fe(this,t):[void 0,void 0]}}});import*as _He from"module";function iee(){if(Uje()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,EHe.createAddHookMessageChannel)();_He.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:e,include:[]},transferList:[e]})}catch(e){Z.warn("Failed to register 'import-in-the-middle' hook",e)}}}var EHe,bHe=v(()=>{st();EHe=Se(o7(),1);Wq()});function Jq(){return[lH(),cH(),dH(),fH(),$je(),WX(),hH(),EUe(),wUe(),Gje(),Vje(),vje(),Mje(),gje(),fje(),Kje(),qje()]}function see(e={}){return N8t(e,Jq)}function N8t(e={},t){let n=C8t(e,t);n.debug===!0&&(Qt?Z.enable():xs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),n.registerEsmLoaderHooks!==!1&&iee(),nje(),Un().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===tee)&&n.integrations.push(Jje({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),D_(n,"node-core");let i=new Zq(n);return Un().setClient(i),i.init(),Z.log(`SDK initialized from ${kP()?"CommonJS":"ESM"}`),i.startClientReportTracking(),L8t(),jFe(i),tje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function oee(){if(!Qt)return;let e=GFe(),t=["SentryContextManager","SentryPropagator"];Os()&&t.push("SentrySpanProcessor");for(let n of t)e.includes(n)||Z.error(`You have to set up the ${n}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);e.includes("SentrySampler")||Z.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function C8t(e,t){let n=M8t(e.release),r=cHe(e.spotlight),i=D8t(e.tracesSampleRate),s={...e,dsn:e.dsn??process.env.SENTRY_DSN,environment:e.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:e.sendClientReports??!0,transport:e.transport??oHe,stackParser:b7(e.stackParser||hHe),release:n,tracesSampleRate:i,spotlight:r,debug:XA(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:bX({defaultIntegrations:a,integrations:o})}}function M8t(e){if(e!==void 0)return e;let t=pHe();if(t!==void 0)return t}function D8t(e){if(e!==void 0)return e;let t=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!t)return;let n=parseFloat(t);return isFinite(n)?n:void 0}function L8t(){if(XA(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=MO(e,t);Un().setPropagationContext(n)}}var THe=v(()=>{st();wR();lf();pje();yje();Aje();_Ue();Dje();Bje();kUe();zje();Wje();Yje();Xje();eHe();aHe();Wq();uHe();mHe();SHe();bHe()});function Dr(e,t){e.setAttribute(Rt,t)}var vHe=v(()=>{st()});function PP(e){let t=e.protocol||"",n=e.hostname||e.host||"",r=!e.port||e.port===80||e.port===443||/^(.*):(\d+)$/.test(n)?"":`:${e.port}`,i=e.path?e.path:"/";return`${t}//${n}${r}${i}`}var AHe=v(()=>{});var sr=v(()=>{CQ();FH();UQ();qQ();lje();dje();LH();THe();vHe();AHe();lR()});function j8t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&Xq)}function H8t(e={}){return{disableOutgoingRequestInstrumentation:Xq,ignoreOutgoingRequestHook:n=>{let r=PP(n);if(!r)return!1;let i=e.ignoreOutgoingRequests;return!!i?.(r,n)},requireParentforOutgoingSpans:!1,requestHook:(n,r)=>{Dr(n,"auto.http.otel.http");let i=PP(r);if(i.startsWith("data:")){let s=QA(i);n.setAttribute("http.url",s),n.setAttribute(ky,s),n.updateName(`${r.method||"GET"} ${s}`)}e.instrumentation?.requestHook?.(n,r)},responseHook:(n,r)=>{e.instrumentation?.responseHook?.(n,r)},applyCustomAttributesOnSpan:(n,r,i)=>{e.instrumentation?.applyCustomAttributesOnSpan?.(n,r,i)}}}var wHe,aee,RHe,Xq,U8t,F8t,kHe,IHe=v(()=>{Ce();wHe=Se(fCe(),1);st();sr();aee="Http",RHe="@opentelemetry_sentry-patched/instrumentation-http",Xq=df.major===22&&df.minor>=12||df.major===23&&df.minor>=2||df.major>=24,U8t=rt(`${aee}.sentry`,e=>new G_(e)),F8t=rt(aee,e=>{let t=new wHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=il.createComponentLogger({namespace:RHe}),t.instrumentationName=RHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});kHe=(e={})=>{let t=e.spans??!0,n=e.disableIncomingRequestSpans,r={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},i={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes,instrumentation:e.instrumentation,onSpanCreated:e.incomingRequestSpanHook},s=fP(r),o=pP(i),a=t&&!n;return{name:aee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=j8t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:Xq||!u,createSpansForOutgoingRequests:Xq,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=PP(f);if(p.startsWith("data:")){let h=QA(p);d.setAttribute("http.url",h),d.setAttribute(ky,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(U8t(l),u){let d=H8t(e);F8t(d)}},processEvent(c){return o.processEvent(c)}}}});var xHe=w(kR=>{"use strict";Object.defineProperty(kR,"__esModule",{value:!0});kR.PACKAGE_NAME=kR.PACKAGE_VERSION=void 0;kR.PACKAGE_VERSION="0.24.0";kR.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var PHe=w($q=>{"use strict";Object.defineProperty($q,"__esModule",{value:!0});$q.UndiciInstrumentation=void 0;var cee=Y("diagnostics_channel"),q8t=Y("url"),NP=Jt(),fl=(Ce(),ke(Ze)),Qq=fr(),Vs=(Pn(),ke(Mr)),OHe=xHe(),uee=class extends NP.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(OHe.PACKAGE_NAME,OHe.PACKAGE_VERSION,t)}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs.length=0}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this.subscribeToChannel("undici:request:create",this.onRequestCreated.bind(this)),this.subscribeToChannel("undici:client:sendHeaders",this.onRequestHeaders.bind(this)),this.subscribeToChannel("undici:request:headers",this.onResponseHeaders.bind(this)),this.subscribeToChannel("undici:request:trailers",this.onDone.bind(this)),this.subscribeToChannel("undici:request:error",this.onError.bind(this)))}_updateMetricInstruments(){this._httpClientDurationHistogram=this.meter.createHistogram(Vs.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Measures the duration of outbound HTTP requests.",unit:"s",valueType:fl.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}subscribeToChannel(t,n){let[r,i]=process.version.replace("v","").split(".").map(a=>Number(a)),s=r>18||r===18&&i>=19,o;if(s)cee.subscribe?.(t,n),o=()=>cee.unsubscribe?.(t,n);else{let a=cee.channel(t);a.subscribe(n),o=()=>a.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:o})}parseRequestHeaders(t){let n=new Map;if(Array.isArray(t.headers))for(let r=0;r!r||t.method==="CONNECT"||n.ignoreRequestHook?.(t),T=>T&&this._diag.error("caught ignoreRequestHook error: ",T),!0))return;let s=(0,Qq.hrTime)(),o;try{o=new q8t.URL(t.path,t.origin)}catch(T){this._diag.warn("could not determine url.full:",T);return}let a=o.protocol.replace(":",""),c=this.getRequestMethod(t.method),u={[Vs.ATTR_HTTP_REQUEST_METHOD]:c,[Vs.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]:t.method,[Vs.ATTR_URL_FULL]:o.toString(),[Vs.ATTR_URL_PATH]:o.pathname,[Vs.ATTR_URL_QUERY]:o.search,[Vs.ATTR_URL_SCHEME]:a},l={https:"443",http:"80"},d=o.hostname,f=o.port||l[a];u[Vs.ATTR_SERVER_ADDRESS]=d,f&&!isNaN(Number(f))&&(u[Vs.ATTR_SERVER_PORT]=Number(f));let h=this.parseRequestHeaders(t).get("user-agent");if(h){let T=Array.isArray(h)?h[h.length-1]:h;u[Vs.ATTR_USER_AGENT_ORIGINAL]=T}let m=(0,NP.safeExecuteInTheMiddle)(()=>n.startSpanHook?.(t),T=>T&&this._diag.error("caught startSpanHook error: ",T),!0);m&&Object.entries(m).forEach(([T,A])=>{u[T]=A});let g=fl.context.active(),y=fl.trace.getSpan(g),E;n.requireParentforSpans&&(!y||!fl.trace.isSpanContextValid(y.spanContext()))?E=fl.trace.wrapSpanContext(fl.INVALID_SPAN_CONTEXT):E=this.tracer.startSpan(c==="_OTHER"?"HTTP":c,{kind:fl.SpanKind.CLIENT,attributes:u},g),(0,NP.safeExecuteInTheMiddle)(()=>n.requestHook?.(E,t),T=>T&&this._diag.error("caught requestHook error: ",T),!0);let S=fl.trace.setSpan(fl.context.active(),E),_={};fl.propagation.inject(S,_);let b=Object.entries(_);for(let T=0;Td.toLowerCase())),l=this.parseRequestHeaders(t);for(let[d,f]of l.entries())if(u.has(d)){let p=Array.isArray(f)?f:[f];c[`http.request.header.${d}`]=p}}s.setAttributes(c)}onResponseHeaders({request:t,response:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s}=r,o={[Vs.ATTR_HTTP_RESPONSE_STATUS_CODE]:n.statusCode},a=this.getConfig();if((0,NP.safeExecuteInTheMiddle)(()=>a.responseHook?.(i,{request:t,response:n}),c=>c&&this._diag.error("caught responseHook error: ",c),!0),a.headersToSpanAttributes?.responseHeaders){let c=new Set;a.headersToSpanAttributes?.responseHeaders.forEach(u=>c.add(u.toLowerCase()));for(let u=0;u=400?fl.SpanStatusCode.ERROR:fl.SpanStatusCode.UNSET}),r.attributes=Object.assign(s,o)}onDone({request:t}){let n=this._recordFromReq.get(t);if(!n)return;let{span:r,attributes:i,startTime:s}=n;r.end(),this._recordFromReq.delete(t),this.recordRequestDuration(i,s)}onError({request:t,error:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s,startTime:o}=r;i.recordException(n),i.setStatus({code:fl.SpanStatusCode.ERROR,message:n.message}),i.end(),this._recordFromReq.delete(t),s[Vs.ATTR_ERROR_TYPE]=n.message,this.recordRequestDuration(s,o)}recordRequestDuration(t,n){let r={};[Vs.ATTR_HTTP_RESPONSE_STATUS_CODE,Vs.ATTR_HTTP_REQUEST_METHOD,Vs.ATTR_SERVER_ADDRESS,Vs.ATTR_SERVER_PORT,Vs.ATTR_URL_SCHEME,Vs.ATTR_ERROR_TYPE].forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,Qq.hrTimeToMilliseconds)((0,Qq.hrTimeDuration)(n,(0,Qq.hrTime)()))/1e3;this._httpClientDurationHistogram.record(s,r)}getRequestMethod(t){let n={CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0};return t.toUpperCase()in n?t.toUpperCase():"_OTHER"}};$q.UndiciInstrumentation=uee});var NHe=w(eB=>{"use strict";Object.defineProperty(eB,"__esModule",{value:!0});eB.UndiciInstrumentation=void 0;var B8t=PHe();Object.defineProperty(eB,"UndiciInstrumentation",{enumerable:!0,get:function(){return B8t.UndiciInstrumentation}})});function CHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function W8t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function K8t(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=CHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=CHe(n.origin,n.path);if(r.startsWith("data:")){let i=QA(r);return{[Rt]:"auto.http.otel.node_fetch","http.url":i,[ky]:i,[zl]:`${n.method||"GET"} ${i}`}}return{[Rt]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var MHe,DHe,G8t,z8t,V8t,LHe,UHe=v(()=>{MHe=Se(NHe(),1);st();sr();DHe="NodeFetch",G8t=rt(DHe,MHe.UndiciInstrumentation,e=>K8t(e)),z8t=rt(`${DHe}.sentry`,z_,e=>e),V8t=((e={})=>({name:"NodeFetch",setupOnce(){W8t(e,ct()?.getOptions())&&G8t(e),z8t(e)}})),LHe=V8t});var tB=w(CP=>{"use strict";Object.defineProperty(CP,"__esModule",{value:!0});CP.ExpressLayerType=void 0;var Y8t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Y8t=CP.ExpressLayerType||(CP.ExpressLayerType={}))});var nB=w(MP=>{"use strict";Object.defineProperty(MP,"__esModule",{value:!0});MP.AttributeNames=void 0;var Z8t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(Z8t=MP.AttributeNames||(MP.AttributeNames={}))});var lee=w(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});IR._LAYERS_STORE_PROPERTY=IR.kLayerPatched=void 0;IR.kLayerPatched=Symbol("express-layer-patched");IR._LAYERS_STORE_PROPERTY="__ot_middlewares"});var HHe=w(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});Ws.getActualMatchedRoute=Ws.getConstructedRoute=Ws.getLayerPath=Ws.asErrorAndMessage=Ws.isLayerIgnored=Ws.getLayerMetadata=Ws.getRouterPath=Ws.storeLayerPath=void 0;var dee=tB(),xR=nB(),Z_=lee(),J8t=(e,t)=>(Array.isArray(e[Z_._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,Z_._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[Z_._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=J8t;var X8t=(e,t)=>{let n=t.handle?.stack?.[0];return n?.route?.path?`${e}${n.route.path}`:n?.handle?.stack?(0,Ws.getRouterPath)(e,n):e};Ws.getRouterPath=X8t;var Q8t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[xR.AttributeNames.EXPRESS_NAME]:i,[xR.AttributeNames.EXPRESS_TYPE]:dee.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[xR.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[xR.AttributeNames.EXPRESS_TYPE]:dee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[xR.AttributeNames.EXPRESS_NAME]:t.name,[xR.AttributeNames.EXPRESS_TYPE]:dee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=Q8t;var $8t=(e,t)=>{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")},eJt=(e,t,n)=>{if(Array.isArray(n?.ignoreLayersType)&&n?.ignoreLayersType?.includes(t))return!0;if(Array.isArray(n?.ignoreLayers)===!1)return!1;try{for(let r of n.ignoreLayers)if($8t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=eJt;var tJt=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=tJt;var nJt=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>FHe(n)||"").join(","):FHe(t)};Ws.getLayerPath=nJt;var FHe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function jHe(e){let n=(Array.isArray(e[Z_._LAYERS_STORE_PROPERTY])?e[Z_._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=jHe;function rJt(e){let t=Array.isArray(e[Z_._LAYERS_STORE_PROPERTY])?e[Z_._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=jHe(e);if(n==="*"||n.includes("/")&&(n.includes(",")||n.includes("\\")||n.includes("*")||n.includes("[")))return n;let r=n.startsWith("/")?n:`/${n}`;return r.length>0&&(e.originalUrl===r||e.originalUrl.startsWith(r)||iJt(r))?r:void 0}Ws.getActualMatchedRoute=rJt;function iJt(e){return e.includes(":")||e.includes("*")}});var qHe=w(OR=>{"use strict";Object.defineProperty(OR,"__esModule",{value:!0});OR.PACKAGE_NAME=OR.PACKAGE_VERSION=void 0;OR.PACKAGE_VERSION="0.62.0";OR.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var WHe=w(iB=>{"use strict";Object.defineProperty(iB,"__esModule",{value:!0});iB.ExpressInstrumentation=void 0;var BHe=fr(),pu=(Ce(),ke(Ze)),GHe=tB(),zHe=nB(),Zp=HHe(),VHe=qHe(),PR=Jt(),sJt=(Pn(),ke(Mr)),rB=lee(),fee=class extends PR.InstrumentationBase{constructor(t={}){super(VHe.PACKAGE_NAME,VHe.PACKAGE_VERSION,t)}init(){return[new PR.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,PR.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,PR.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,PR.isWrapped)(t.application.use)&&this._unwrap(t.application,"use"),this._wrap(t.application,"use",this._getAppUsePatch(n)),t},t=>{if(t===void 0)return;let r=typeof t?.Router?.prototype?.route=="function"?t.Router.prototype:t.Router;this._unwrap(r,"route"),this._unwrap(r,"use"),this._unwrap(t.application,"use")})]}_getRoutePatch(){let t=this;return function(n){return function(...i){let s=n.apply(this,i),o=this.stack[this.stack.length-1];return t._applyPatch(o,(0,Zp.getLayerPath)(i)),s}}}_getRouterUsePatch(){let t=this;return function(n){return function(...i){let s=n.apply(this,i),o=this.stack[this.stack.length-1];return t._applyPatch(o,(0,Zp.getLayerPath)(i)),s}}}_getAppUsePatch(t){let n=this;return function(r){return function(...s){let o=t?this.router:this._router,a=r.apply(this,s);if(o){let c=o.stack[o.stack.length-1];n._applyPatch(c,(0,Zp.getLayerPath)(s))}return a}}}_applyPatch(t,n){let r=this;t[rB.kLayerPatched]!==!0&&(t[rB.kLayerPatched]=!0,this._wrap(t,"handle",i=>{if(i.length===4)return i;let s=function(o,a){let{isLayerPathStored:c}=(0,Zp.storeLayerPath)(o,n),u=(0,Zp.getConstructedRoute)(o),l=(0,Zp.getActualMatchedRoute)(o),d={[sJt.ATTR_HTTP_ROUTE]:l},f=(0,Zp.getLayerMetadata)(u,t,n),p=f.attributes[zHe.AttributeNames.EXPRESS_TYPE],h=(0,BHe.getRPCMetadata)(pu.context.active());if(h?.type===BHe.RPCType.HTTP&&(h.route=l),(0,Zp.isLayerIgnored)(f.name,p,r.getConfig()))return p===GHe.ExpressLayerType.MIDDLEWARE&&o[rB._LAYERS_STORE_PROPERTY].pop(),i.apply(this,arguments);if(pu.trace.getSpan(pu.context.active())===void 0)return i.apply(this,arguments);let m=r._getSpanName({request:o,layerType:p,route:u},f.name),g=r.tracer.startSpan(m,{attributes:Object.assign(d,f.attributes)}),y=pu.context.active(),E=pu.trace.setSpan(y,g),{requestHook:S}=r.getConfig();S&&(0,PR.safeExecuteInTheMiddle)(()=>S(g,{request:o,layerType:p,route:u}),R=>{R&&pu.diag.error("express instrumentation: request hook failed",R)},!0);let _=!1;f.attributes[zHe.AttributeNames.EXPRESS_TYPE]===GHe.ExpressLayerType.ROUTER&&(g.end(),_=!0,E=y);let b=()=>{_===!1&&(_=!0,g.end())},T=Array.from(arguments),A=T.findIndex(R=>typeof R=="function");A>=0&&(arguments[A]=function(){let R=arguments[0],x=![void 0,null,"route","router"].includes(R);if(!_&&x){let[F,V]=(0,Zp.asErrorAndMessage)(R);g.recordException(F),g.setStatus({code:pu.SpanStatusCode.ERROR,message:V})}_===!1&&(_=!0,o.res?.removeListener("finish",b),g.end()),!(o.route&&x)&&c&&o[rB._LAYERS_STORE_PROPERTY].pop();let k=T[A],P=pu.context.active(),N=pu.trace.getSpan(y),C=N?pu.trace.setSpan(P,N):P;return pu.context.bind(C,k).apply(this,arguments)});try{return pu.context.bind(E,i).apply(this,arguments)}catch(R){let[x,k]=(0,Zp.asErrorAndMessage)(R);throw g.recordException(x),g.setStatus({code:pu.SpanStatusCode.ERROR,message:k}),R}finally{_||a.once("finish",b)}};for(let o in i)Object.defineProperty(s,o,{get(){return i[o]},set(a){i[o]=a}});return s}))}_getSpanName(t,n){let{spanNameHook:r}=this.getConfig();if(!(r instanceof Function))return n;try{return r(t,n)??n}catch(i){return pu.diag.error("express instrumentation: error calling span name rewrite hook",i),n}}};iB.ExpressInstrumentation=fee});var KHe=w(Yy=>{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.AttributeNames=Yy.ExpressLayerType=Yy.ExpressInstrumentation=void 0;var oJt=WHe();Object.defineProperty(Yy,"ExpressInstrumentation",{enumerable:!0,get:function(){return oJt.ExpressInstrumentation}});var aJt=tB();Object.defineProperty(Yy,"ExpressLayerType",{enumerable:!0,get:function(){return aJt.ExpressLayerType}});var cJt=nB();Object.defineProperty(Yy,"AttributeNames",{enumerable:!0,get:function(){return cJt.AttributeNames}})});var So,J_=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function uJt(e){Dr(e,"auto.http.otel.express");let t=vt(e).data,n=t["express.type"];n&&e.setAttribute(zt,`${n}.express`);let r=t["express.name"];typeof r=="string"&&e.updateName(r)}function lJt(e,t){if(vn()===Gl())return So&&Z.warn("Isolation scope is still default isolation scope - skipping setting transactionName"),t;if(e.layerType==="request_handler"){let n=e.request,r=n.method?n.method.toUpperCase():"GET";vn().setTransactionName(`${r} ${e.route}`)}return t}var YHe,ZHe,JHe,dJt,XHe,QHe=v(()=>{YHe=Se(KHe(),1);st();sr();J_();ZHe="Express";JHe=rt(ZHe,()=>new YHe.ExpressInstrumentation({requestHook:e=>uJt(e),spanNameHook:(e,t)=>lJt(e,t)})),dJt=(()=>({name:ZHe,setupOnce(){JHe()}})),XHe=dJt});var $He=w(DP=>{"use strict";Object.defineProperty(DP,"__esModule",{value:!0});DP.SeverityNumber=void 0;var fJt;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(fJt=DP.SeverityNumber||(DP.SeverityNumber={}))});var aB=w(NR=>{"use strict";Object.defineProperty(NR,"__esModule",{value:!0});NR.NOOP_LOGGER=NR.NoopLogger=void 0;var oB=class{emit(t){}};NR.NoopLogger=oB;NR.NOOP_LOGGER=new oB});var eqe=w(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});Jp.API_BACKWARDS_COMPATIBILITY_VERSION=Jp.makeGetter=Jp._global=Jp.GLOBAL_LOGS_API_KEY=void 0;Jp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Jp._global=globalThis;function pJt(e,t,n){return r=>r===e?t:n}Jp.makeGetter=pJt;Jp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var pee=w(CR=>{"use strict";Object.defineProperty(CR,"__esModule",{value:!0});CR.NOOP_LOGGER_PROVIDER=CR.NoopLoggerProvider=void 0;var hJt=aB(),cB=class{getLogger(t,n,r){return new hJt.NoopLogger}};CR.NoopLoggerProvider=cB;CR.NOOP_LOGGER_PROVIDER=new cB});var tqe=w(uB=>{"use strict";Object.defineProperty(uB,"__esModule",{value:!0});uB.ProxyLogger=void 0;var mJt=aB(),hee=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):mJt.NOOP_LOGGER}};uB.ProxyLogger=hee});var nqe=w(lB=>{"use strict";Object.defineProperty(lB,"__esModule",{value:!0});lB.ProxyLoggerProvider=void 0;var gJt=pee(),yJt=tqe(),mee=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new yJt.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:gJt.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};lB.ProxyLoggerProvider=mee});var iqe=w(dB=>{"use strict";Object.defineProperty(dB,"__esModule",{value:!0});dB.LogsAPI=void 0;var Jl=eqe(),SJt=pee(),rqe=nqe(),gee=class e{constructor(){this._proxyLoggerProvider=new rqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Jl._global[Jl.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Jl._global[Jl.GLOBAL_LOGS_API_KEY]=(0,Jl.makeGetter)(Jl.API_BACKWARDS_COMPATIBILITY_VERSION,t,SJt.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Jl._global[Jl.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Jl._global,Jl.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Jl._global[Jl.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new rqe.ProxyLoggerProvider}};dB.LogsAPI=gee});var yee=w(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.logs=Xp.NoopLogger=Xp.NOOP_LOGGER=Xp.SeverityNumber=void 0;var EJt=$He();Object.defineProperty(Xp,"SeverityNumber",{enumerable:!0,get:function(){return EJt.SeverityNumber}});var sqe=aB();Object.defineProperty(Xp,"NOOP_LOGGER",{enumerable:!0,get:function(){return sqe.NOOP_LOGGER}});Object.defineProperty(Xp,"NoopLogger",{enumerable:!0,get:function(){return sqe.NoopLogger}});var _Jt=iqe();Xp.logs=_Jt.LogsAPI.getInstance()});var oqe=w(MR=>{"use strict";Object.defineProperty(MR,"__esModule",{value:!0});MR.disableInstrumentations=MR.enableInstrumentations=void 0;function bJt(e,t,n,r){for(let i=0,s=e.length;it.disable())}MR.disableInstrumentations=TJt});var uqe=w(fB=>{"use strict";Object.defineProperty(fB,"__esModule",{value:!0});fB.registerInstrumentations=void 0;var aqe=(Ce(),ke(Ze)),vJt=yee(),cqe=oqe();function AJt(e){let t=e.tracerProvider||aqe.trace.getTracerProvider(),n=e.meterProvider||aqe.metrics.getMeterProvider(),r=e.loggerProvider||vJt.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,cqe.enableInstrumentations)(i,t,n,r),()=>{(0,cqe.disableInstrumentations)(i)}}fB.registerInstrumentations=AJt});var Sqe=w(pB=>{"use strict";Object.defineProperty(pB,"__esModule",{value:!0});pB.satisfies=void 0;var bee=(Ce(),ke(Ze)),hqe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,RJt=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,wJt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function kJt(e,t,n){if(!IJt(e))return bee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=NJt(e);if(!r)return!1;let i=[],s=mqe(r,t,i,n);return s&&!n?.includePrerelease?OJt(r,i):s}pB.satisfies=kJt;function IJt(e){return typeof e=="string"&&hqe.test(e)}function mqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(See(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=$Jt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!See(e,s,n,r))return!1;return!0}return See(e,t,n,r)}function See(e,t,n,r){if(t=PJt(t,r),t.includes(" "))return mqe(e,t,n,r);{let i=CJt(t);return n.push(i),xJt(e,i)}}function xJt(e,t){if(t.invalid)return!1;if(!t.version||_ee(t.version))return!0;let n=dqe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=dqe(r,i)}return wJt[t.op]?.includes(n)}function OJt(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function PJt(e,t){return e=e.trim(),e=XJt(e,t),e=JJt(e),e=QJt(e,t),e=e.trim(),e}function Mc(e){return!e||e.toLowerCase()==="x"||e==="*"}function NJt(e){let t=e.match(hqe);if(!t){bee.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function CJt(e){if(!e)return{};let t=e.match(RJt);if(!t)return bee.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function _ee(e){return e==="*"||e==="x"||e==="X"}function lqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function MJt(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function DJt(e,t){if(_ee(e)||_ee(t))return 0;let[n,r]=MJt(lqe(e),lqe(t));return n>r?1:n)?=?)",fqe=`(?:${yqe}|${LJt})`,FJt=`(?:-(${fqe}(?:\\.${fqe})*))`,pqe=`${gqe}+`,jJt=`(?:\\+(${pqe}(?:\\.${pqe})*))`,Eee=`${yqe}|x|X|\\*`,LP=`[v=\\s]*(${Eee})(?:\\.(${Eee})(?:\\.(${Eee})(?:${FJt})?${jJt}?)?)?`,HJt=`^${UJt}\\s*${LP}$`,qJt=new RegExp(HJt),BJt=`^\\s*(${LP})\\s+-\\s+(${LP})\\s*$`,GJt=new RegExp(BJt),zJt="(?:~>?)",VJt=`^${zJt}${LP}$`,WJt=new RegExp(VJt),KJt="(?:\\^)",YJt=`^${KJt}${LP}$`,ZJt=new RegExp(YJt);function JJt(e){let t=WJt;return e.replace(t,(n,r,i,s,o)=>{let a;return Mc(r)?a="":Mc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Mc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function XJt(e,t){let n=ZJt,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Mc(s)?u="":Mc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Mc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function QJt(e,t){let n=qJt;return e.replace(n,(r,i,s,o,a,c)=>{let u=Mc(s),l=u||Mc(o),d=l||Mc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function $Jt(e,t){let n=GJt;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Mc(s)?i="":Mc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Mc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Mc(d)?l="":Mc(f)?l=`<${+d+1}.0.0-0`:Mc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var Tee=w(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.massUnwrap=da.unwrap=da.massWrap=da.wrap=void 0;var Dc=console.error.bind(console);function UP(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var e7t=(e,t,n)=>{if(!e||!e[t]){Dc("no original function "+String(t)+" to wrap");return}if(!n){Dc("no wrapper function"),Dc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Dc("original object and wrapper must be functions");return}let i=n(r,t);return UP(i,"__original",r),UP(i,"__unwrap",()=>{e[t]===i&&UP(e,t,r)}),UP(i,"__wrapped",!0),UP(e,t,i),i};da.wrap=e7t;var t7t=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Dc("must provide one or more modules to patch"),Dc(new Error().stack);return}if(!(t&&Array.isArray(t))){Dc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,da.wrap)(r,i,n)})})};da.massWrap=t7t;var n7t=(e,t)=>{if(!e||!e[t]){Dc("no function to unwrap."),Dc(new Error().stack);return}let n=e[t];if(!n.__unwrap)Dc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};da.unwrap=n7t;var r7t=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Dc("must provide one or more modules to patch"),Dc(new Error().stack);return}if(!(t&&Array.isArray(t))){Dc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,da.unwrap)(n,r)})})};da.massUnwrap=r7t;function FP(e){e&&e.logger&&(typeof e.logger!="function"?Dc("new logger isn't a function, not replacing"):Dc=e.logger)}da.default=FP;FP.wrap=da.wrap;FP.massWrap=da.massWrap;FP.unwrap=da.unwrap;FP.massUnwrap=da.massUnwrap});var Eqe=w(mB=>{"use strict";Object.defineProperty(mB,"__esModule",{value:!0});mB.InstrumentationAbstract=void 0;var vee=(Ce(),ke(Ze)),i7t=yee(),hB=Tee(),Aee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=vee.diag.createComponentLogger({namespace:t}),this._tracer=vee.trace.getTracer(t,n),this._meter=vee.metrics.getMeter(t,n),this._logger=i7t.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=hB.wrap;_unwrap=hB.unwrap;_massWrap=hB.massWrap;_massUnwrap=hB.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};mB.InstrumentationAbstract=Aee});var _qe=w(Zy=>{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});Zy.ModuleNameTrie=Zy.ModuleNameSeparator=void 0;Zy.ModuleNameSeparator="/";var gB=class{hooks=[];children=new Map},Ree=class{_trie=new gB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Zy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new gB,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(Zy.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};Zy.ModuleNameTrie=Ree});var Tqe=w(yB=>{"use strict";Object.defineProperty(yB,"__esModule",{value:!0});yB.RequireInTheMiddleSingleton=void 0;var s7t=T_(),bqe=Y("path"),wee=_qe(),o7t=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),kee=class e{_moduleNameTrie=new wee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new s7t.Hook(null,{internals:!0},(t,n,r)=>{let i=a7t(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return o7t?new e:this._instance=this._instance??new e}};yB.RequireInTheMiddleSingleton=kee;function a7t(e){return bqe.sep!==wee.ModuleNameSeparator?e.split(bqe.sep).join(wee.ModuleNameSeparator):e}});var kqe=w(jP=>{var vqe=[],Iee=new WeakMap,Aqe=new WeakMap,Rqe=new Map,wqe=[],c7t={set(e,t,n){let r=Iee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Aqe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=Iee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function u7t(e,t,n,r,i){Rqe.set(e,i),Iee.set(t,n),Aqe.set(t,r);let s=new Proxy(t,c7t);vqe.forEach(o=>o(e,s,i)),wqe.push([e,s,i])}jP.register=u7t;jP.importHooks=vqe;jP.specifiers=Rqe;jP.toHook=wqe});var Pqe=w((HCr,LR)=>{var Iqe=Y("path"),l7t=yO(),{fileURLToPath:d7t}=Y("url"),{MessageChannel:f7t}=Y("worker_threads"),{isBuiltin:xee}=Y("module");xee||(xee=()=>!0);var{importHooks:Oee,specifiers:p7t,toHook:h7t}=kqe();function xqe(e){Oee.push(e),h7t.forEach(([t,n,r])=>e(t,n,r))}function Oqe(e){let t=Oee.indexOf(e);t>-1&&Oee.splice(t,1)}function DR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var Pee;function m7t(){let{port1:e,port2:t}=new f7t,n=0,r;Pee=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function HP(e,t,n){if(!(this instanceof HP))return new HP(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;Pee&&Array.isArray(e)&&Pee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);xee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=d7t(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=l7t(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)DR(n,s,u,void 0);else if(d===i){if(!l)DR(n,s,i,l);else if(l.endsWith(p7t.get(a)))DR(n,s,i,l);else if(r){let f=i+Iqe.sep+Iqe.relative(l,u);DR(n,s,f,l)}}else d===o&&DR(n,s,o,l);else DR(n,s,i,l)},xqe(this._iitmHook)}HP.prototype.unhook=function(){Oqe(this._iitmHook)};LR.exports=HP;LR.exports.Hook=HP;LR.exports.addHook=xqe;LR.exports.removeHook=Oqe;LR.exports.createAddHookMessageChannel=m7t});var Nee=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.isWrapped=Jy.safeExecuteInTheMiddleAsync=Jy.safeExecuteInTheMiddle=void 0;function g7t(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Jy.safeExecuteInTheMiddle=g7t;async function y7t(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}Jy.safeExecuteInTheMiddleAsync=y7t;function S7t(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Jy.isWrapped=S7t});var Mqe=w(SB=>{"use strict";Object.defineProperty(SB,"__esModule",{value:!0});SB.InstrumentationBase=void 0;var qP=Y("path"),Nqe=Y("util"),E7t=Sqe(),Cee=Tee(),_7t=Eqe(),b7t=Tqe(),T7t=Pqe(),BP=(Ce(),ke(Ze)),v7t=T_(),A7t=Y("fs"),R7t=Nee(),Mee=class extends _7t.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=b7t.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,R7t.isWrapped)(t[n])&&this._unwrap(t,n),Nqe.types.isProxy(t)){let i=(0,Cee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Cee.wrap)(t,n,r)};_unwrap=(t,n)=>Nqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Cee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{BP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){BP.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{BP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){BP.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,A7t.readFileSync)(qP.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{BP.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return Cqe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=qP.normalize(r);return o.filter(u=>u.name===a&&Cqe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&qP.isAbsolute(a)){let u=qP.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=qP.isAbsolute(t.name)?new v7t.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new T7t.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};SB.InstrumentationBase=Mee;function Cqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,E7t.satisfies)(t,r,{includePrerelease:n}))}});var Dqe=w(EB=>{"use strict";Object.defineProperty(EB,"__esModule",{value:!0});EB.normalize=void 0;var w7t=Y("path");Object.defineProperty(EB,"normalize",{enumerable:!0,get:function(){return w7t.normalize}})});var Lqe=w(UR=>{"use strict";Object.defineProperty(UR,"__esModule",{value:!0});UR.normalize=UR.InstrumentationBase=void 0;var k7t=Mqe();Object.defineProperty(UR,"InstrumentationBase",{enumerable:!0,get:function(){return k7t.InstrumentationBase}});var I7t=Dqe();Object.defineProperty(UR,"normalize",{enumerable:!0,get:function(){return I7t.normalize}})});var Dee=w(FR=>{"use strict";Object.defineProperty(FR,"__esModule",{value:!0});FR.normalize=FR.InstrumentationBase=void 0;var Uqe=Lqe();Object.defineProperty(FR,"InstrumentationBase",{enumerable:!0,get:function(){return Uqe.InstrumentationBase}});Object.defineProperty(FR,"normalize",{enumerable:!0,get:function(){return Uqe.normalize}})});var Fqe=w(_B=>{"use strict";Object.defineProperty(_B,"__esModule",{value:!0});_B.InstrumentationNodeModuleDefinition=void 0;var Lee=class{files;name;supportedVersions;patch;unpatch;constructor(t,n,r,i,s){this.files=s||[],this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i}};_B.InstrumentationNodeModuleDefinition=Lee});var jqe=w(bB=>{"use strict";Object.defineProperty(bB,"__esModule",{value:!0});bB.InstrumentationNodeModuleFile=void 0;var x7t=Dee(),Uee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,x7t.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};bB.InstrumentationNodeModuleFile=Uee});var Hqe=w(X_=>{"use strict";Object.defineProperty(X_,"__esModule",{value:!0});X_.semconvStabilityFromStr=X_.SemconvStability=void 0;var TB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(TB=X_.SemconvStability||(X_.SemconvStability={}));function O7t(e,t){let n=TB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=TB.DUPLICATE;break}else i.toLowerCase()===e&&(n=TB.STABLE);return n}X_.semconvStabilityFromStr=O7t});var Bqe=w(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.semconvStabilityFromStr=Ks.SemconvStability=Ks.safeExecuteInTheMiddleAsync=Ks.safeExecuteInTheMiddle=Ks.isWrapped=Ks.InstrumentationNodeModuleFile=Ks.InstrumentationNodeModuleDefinition=Ks.InstrumentationBase=Ks.registerInstrumentations=void 0;var P7t=uqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return P7t.registerInstrumentations}});var N7t=Dee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return N7t.InstrumentationBase}});var C7t=Fqe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return C7t.InstrumentationNodeModuleDefinition}});var M7t=jqe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return M7t.InstrumentationNodeModuleFile}});var Fee=Nee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Fee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Fee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Fee.safeExecuteInTheMiddleAsync}});var qqe=Hqe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return qqe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return qqe.semconvStabilityFromStr}})});var Gqe=w((XCr,D7t)=>{D7t.exports={name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}}});var Vqe=w(Q_=>{"use strict";Object.defineProperty(Q_,"__esModule",{value:!0});Q_.range=Q_.balanced=void 0;var L7t=(e,t,n)=>{let r=e instanceof RegExp?zqe(e,n):e,i=t instanceof RegExp?zqe(t,n):t,s=r!==null&&i!=null&&(0,Q_.range)(r,i,n);return s&&{start:s[0],end:s[1],pre:n.slice(0,s[0]),body:n.slice(s[0]+r.length,s[1]),post:n.slice(s[1]+i.length)}};Q_.balanced=L7t;var zqe=(e,t)=>{let n=t.match(e);return n?n[0]:null},U7t=(e,t,n)=>{let r,i,s,o,a,c=n.indexOf(e),u=n.indexOf(t,c+1),l=c;if(c>=0&&u>0){if(e===t)return[c,u];for(r=[],s=n.length;l>=0&&!a;){if(l===c)r.push(l),c=n.indexOf(e,l+1);else if(r.length===1){let d=r.pop();d!==void 0&&(a=[d,u])}else i=r.pop(),i!==void 0&&i=0?c:u}r.length&&o!==void 0&&(a=[s,o])}return a};Q_.range=U7t});var Qqe=w(jR=>{"use strict";Object.defineProperty(jR,"__esModule",{value:!0});jR.EXPANSION_MAX=void 0;jR.expand=J7t;var Wqe=Vqe(),Kqe="\0SLASH"+Math.random()+"\0",Yqe="\0OPEN"+Math.random()+"\0",Hee="\0CLOSE"+Math.random()+"\0",Zqe="\0COMMA"+Math.random()+"\0",Jqe="\0PERIOD"+Math.random()+"\0",F7t=new RegExp(Kqe,"g"),j7t=new RegExp(Yqe,"g"),H7t=new RegExp(Hee,"g"),q7t=new RegExp(Zqe,"g"),B7t=new RegExp(Jqe,"g"),G7t=/\\\\/g,z7t=/\\{/g,V7t=/\\}/g,W7t=/\\,/g,K7t=/\\\./g;jR.EXPANSION_MAX=1e5;function jee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function Y7t(e){return e.replace(G7t,Kqe).replace(z7t,Yqe).replace(V7t,Hee).replace(W7t,Zqe).replace(K7t,Jqe)}function Z7t(e){return e.replace(F7t,"\\").replace(j7t,"{").replace(H7t,"}").replace(q7t,",").replace(B7t,".")}function Xqe(e){if(!e)return[""];let t=[],n=(0,Wqe.balanced)("{","}",e);if(!n)return e.split(",");let{pre:r,body:i,post:s}=n,o=r.split(",");o[o.length-1]+="{"+i+"}";let a=Xqe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function J7t(e,t={}){if(!e)return[];let{max:n=jR.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),GP(Y7t(e),n,!0).map(Z7t)}function X7t(e){return"{"+e+"}"}function Q7t(e){return/^-?0\d/.test(e)}function $7t(e,t){return e<=t}function eXt(e,t){return e>=t}function GP(e,t,n){let r=[],i=(0,Wqe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?GP(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a=0;if(!u&&!l)return i.post.match(/,(?!,).*\}/)?(e=i.pre+"{"+i.body+Hee+i.post,GP(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=Xqe(i.body),d.length===1&&d[0]!==void 0&&(d=GP(d[0],t,!1).map(X7t),d.length===1))return o.map(p=>i.pre+d[0]+p);let f;if(u&&d[0]!==void 0&&d[1]!==void 0){let p=jee(d[0]),h=jee(d[1]),m=Math.max(d[0].length,d[1].length),g=d.length===3&&d[2]!==void 0?Math.max(Math.abs(jee(d[2])),1):1,y=$7t;h0){let A=new Array(T+1).join("0");_<0?b="-"+A+b.slice(1):b=A+b}}f.push(b)}}else{f=[];for(let p=0;p{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.assertValidPattern=void 0;var tXt=1024*64,nXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>tXt)throw new TypeError("pattern is too long")};vB.assertValidPattern=nXt});var tBe=w(AB=>{"use strict";Object.defineProperty(AB,"__esModule",{value:!0});AB.parseClass=void 0;var rXt={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},zP=e=>e.replace(/[[\]\\-]/g,"\\$&"),iXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),eBe=e=>e.join(""),sXt=(e,t)=>{let n=t;if(e.charAt(n)!=="[")throw new Error("not in a brace expression");let r=[],i=[],s=n+1,o=!1,a=!1,c=!1,u=!1,l=n,d="";e:for(;sd?r.push(zP(d)+"-"+zP(m)):m===d&&r.push(zP(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(zP(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(zP(m)),s++}if(l{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.unescape=void 0;var oXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");RB.unescape=oXt});var Gee=w(OB=>{"use strict";var hu;Object.defineProperty(OB,"__esModule",{value:!0});OB.AST=void 0;var aXt=tBe(),kB=wB(),cXt=new Set(["!","?","+","*","@"]),qee=e=>cXt.has(e),nBe=e=>qee(e.type),uXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),lXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),dXt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),rBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),fXt="(?!(?:^|/)\\.\\.?(?:$|/))",IB="(?!\\.)",pXt=new Set(["[","."]),hXt=new Set(["..","."]),mXt=new Set("().*{}+?[]^$\\!"),gXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Bee="[^/]",iBe=Bee+"*?",sBe=Bee+"+?",yXt=0,xB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++yXt;get depth(){return(this.#r?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#t.id,parent:this.#r?.id,depth:this.depth,partsLength:this.#e.length,parts:this.#e}}constructor(t,n,r={}){this.type=t,t&&(this.#n=!0),this.#r=n,this.#t=this.#r?this.#r.#t:this,this.#o=this.#t===this?r:this.#t.#o,this.#c=this.#t===this?[]:this.#t.#c,t==="!"&&!this.#t.#u&&this.#c.push(this),this.#s=this.#r?this.#r.#e.length:0}get hasMagic(){if(this.#n!==void 0)return this.#n;for(let t of this.#e)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#n=!0;return this.#n}toString(){return this.#a!==void 0?this.#a:this.type?this.#a=this.type+"("+this.#e.map(t=>String(t)).join("|")+")":this.#a=this.#e.map(t=>String(t)).join("")}#d(){if(this!==this.#t)throw new Error("should only call on root");if(this.#u)return this;this.toString(),this.#u=!0;let t;for(;t=this.#c.pop();){if(t.type!=="!")continue;let n=t,r=n.#r;for(;r;){for(let i=n.#s+1;!r.type&&itypeof n=="string"?n:n.toJSON()):[this.type,...this.#e.map(n=>n.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#u&&this.#r?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#r?.isStart())return!1;if(this.#s===0)return!0;let t=this.#r;for(let n=0;ntypeof p!="string"),u=this.#e.map(p=>{let[h,m,g,y]=typeof p=="string"?hu.#v(p,this.#n,c):p.toRegExpSource(t);return this.#n=this.#n||g,this.#i=this.#i||y,h}).join(""),l="";if(this.isStart()&&typeof this.#e[0]=="string"&&!(this.#e.length===1&&hXt.has(this.#e[0]))){let h=pXt,m=n&&h.has(u.charAt(0))||u.startsWith("\\.")&&h.has(u.charAt(2))||u.startsWith("\\.\\.")&&h.has(u.charAt(4)),g=!n&&!t&&h.has(u.charAt(0));l=m?fXt:g?IB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,kB.unescape)(u),this.#n=!!this.#n,this.#i]}let r=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",s=this.#y(n);if(this.isStart()&&this.isEnd()&&!s&&this.type!=="!"){let c=this.toString(),u=this;return u.#e=[c],u.type=null,u.#n=void 0,[c,(0,kB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!IB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?IB:"")+sBe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?IB:"")+iBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,kB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(nBe(this)){let t=0,n=!1;do{n=!0;for(let r=0;r{if(typeof n=="string")throw new Error("string type in extglob ast??");let[r,i,s,o]=n.toRegExpSource(t);return this.#i=this.#i||o,r}).filter(n=>!(this.isStart()&&this.isEnd())||!!n).join("|")}static#v(t,n,r=!1){let i=!1,s="",o=!1,a=!1;for(let c=0;c{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.escape=void 0;var SXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");PB.escape=SXt});var fBe=w(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.unescape=it.escape=it.AST=it.Minimatch=it.match=it.makeRe=it.braceExpand=it.defaults=it.filter=it.GLOBSTAR=it.sep=it.minimatch=void 0;var EXt=Qqe(),NB=$qe(),cBe=Gee(),_Xt=zee(),bXt=wB(),TXt=(e,t,n={})=>((0,NB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new $_(t,n).match(e));it.minimatch=TXt;var vXt=/^\*+([^+@!?*[(]*)$/,AXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),RXt=e=>t=>t.endsWith(e),wXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),kXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),IXt=/^\*+\.\*+$/,xXt=e=>!e.startsWith(".")&&e.includes("."),OXt=e=>e!=="."&&e!==".."&&e.includes("."),PXt=/^\.\*+$/,NXt=e=>e!=="."&&e!==".."&&e.startsWith("."),CXt=/^\*+$/,MXt=e=>e.length!==0&&!e.startsWith("."),DXt=e=>e.length!==0&&e!=="."&&e!=="..",LXt=/^\?+([^+@!?*[(]*)?$/,UXt=([e,t=""])=>{let n=uBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},FXt=([e,t=""])=>{let n=lBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},jXt=([e,t=""])=>{let n=lBe([e]);return t?r=>n(r)&&r.endsWith(t):n},HXt=([e,t=""])=>{let n=uBe([e]);return t?r=>n(r)&&r.endsWith(t):n},uBe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},lBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},dBe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",oBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=dBe==="win32"?oBe.win32.sep:oBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var qXt="[^/]",BXt=qXt+"*?",GXt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",zXt="(?:(?!(?:\\/|^)\\.).)*?",VXt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=VXt;it.minimatch.filter=it.filter;var Xl=(e,t={})=>Object.assign({},e,t),WXt=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return it.minimatch;let t=it.minimatch;return Object.assign((r,i,s={})=>t(r,i,Xl(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,Xl(e,s))}static defaults(i){return t.defaults(Xl(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,Xl(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,Xl(e,s))}},unescape:(r,i={})=>t.unescape(r,Xl(e,i)),escape:(r,i={})=>t.escape(r,Xl(e,i)),filter:(r,i={})=>t.filter(r,Xl(e,i)),defaults:r=>t.defaults(Xl(e,r)),makeRe:(r,i={})=>t.makeRe(r,Xl(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,Xl(e,i)),match:(r,i,s={})=>t.match(r,i,Xl(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=WXt;it.minimatch.defaults=it.defaults;var KXt=(e,t={})=>((0,NB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,EXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=KXt;it.minimatch.braceExpand=it.braceExpand;var YXt=(e,t={})=>new $_(e,t).makeRe();it.makeRe=YXt;it.minimatch.makeRe=it.makeRe;var ZXt=(e,t,n={})=>{let r=new $_(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=ZXt;it.minimatch.match=it.match;var aBe=/[?*]|[+@!]\(.*?\)|\[|\]/,JXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),$_=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,NB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||dBe,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!n.windowsPathsNoEscape||n[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!n.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!n.nonegate,this.comment=!1,this.empty=!1,this.partial=!!n.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=n.windowsNoMagicRoot!==void 0?n.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let n of t)if(typeof n!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,n=this.options;if(!n.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],n.debug&&(this.debug=(...s)=>console.error(...s)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(s=>this.slashSplit(s));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let i=this.globParts.map((s,o,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let c=s[0]===""&&s[1]===""&&(s[2]==="?"||!aBe.test(s[2]))&&!aBe.test(s[3]),u=/^[a-z]:/i.test(s[0]);if(c)return[...s.slice(0,4),...s.slice(4).map(l=>this.parse(l))];if(u)return[s[0],...s.slice(1).map(l=>this.parse(l))]}return s.map(c=>this.parse(c))});if(this.debug(this.pattern,i),this.set=i.filter(s=>s.indexOf(!1)===-1),this.isWindows)for(let s=0;s=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):n>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(n=>{let r=-1;for(;(r=n.indexOf("**",r+1))!==-1;){let i=r;for(;n[i+1]==="**";)i++;i!==r&&n.splice(r,i-r)}return n})}levelOneOptimize(t){return t.map(n=>(n=n.reduce((r,i)=>{let s=r[r.length-1];return i==="**"&&s==="**"?r:i===".."&&s&&s!==".."&&s!=="."&&s!=="**"?(r.pop(),r):(r.push(i),r)},[]),n.length===0?[""]:n))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let n=!1;do{if(n=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&r.splice(i+1,o-i);let a=r[i+1],c=r[i+2],u=r[i+3];if(a!==".."||!c||c==="."||c===".."||!u||u==="."||u==="..")continue;n=!0,r.splice(i,1);let l=r.slice(0);l[i]="**",t.push(l),i--}if(!this.preserveMultipleSlashes){for(let o=1;on.length)}partsMatch(t,n,r=!1){let i=0,s=0,o=[],a="";for(;i=2&&(t=this.levelTwoFileOptimize(t)),n.includes(it.GLOBSTAR)?this.#t(t,n,r,i,s):this.#i(t,n,r,i,s)}#t(t,n,r,i,s){let o=n.indexOf(it.GLOBSTAR,s),a=n.lastIndexOf(it.GLOBSTAR),[c,u,l]=r?[n.slice(s,o),n.slice(o+1),[]]:[n.slice(s,o),n.slice(o+1,a),n.slice(a+1)];if(c.length){let E=t.slice(i,i+c.length);if(!this.#i(E,c,r,0,0))return!1;i+=c.length,s+=c.length}let d=0;if(l.length){if(l.length+i>t.length)return!1;let E=t.length-l.length;if(this.#i(t,l,r,E,0))d=l.length;else{if(t[t.length-1]!==""||i+l.length===t.length||(E--,!this.#i(t,l,r,E,0)))return!1;d=l.length+1}}if(!u.length){let E=!!d;for(let S=i;S{let u=c.map(d=>{if(d instanceof RegExp)for(let f of d.flags.split(""))i.add(f);return typeof d=="string"?JXt(d):d===it.GLOBSTAR?it.GLOBSTAR:d._src});u.forEach((d,f)=>{let p=u[f+1],h=u[f-1];d!==it.GLOBSTAR||h===it.GLOBSTAR||(h===void 0?p!==void 0&&p!==it.GLOBSTAR?u[f+1]="(?:\\/|"+r+"\\/)?"+p:u[f]=r:p===void 0?u[f-1]=h+"(?:\\/|\\/"+r+")?":p!==it.GLOBSTAR&&(u[f-1]=h+"(?:\\/|\\/"+r+"\\/)"+p,u[f+1]=it.GLOBSTAR))});let l=u.filter(d=>d!==it.GLOBSTAR);if(this.partial&&l.length>=1){let d=[];for(let f=1;f<=l.length;f++)d.push(l.slice(0,f).join("/"));return"(?:"+d.join("|")+")"}return l.join("/")}).join("|"),[o,a]=t.length>1?["(?:",")"]:["",""];s="^"+o+s+a+"$",this.partial&&(s="^(?:\\/|"+o+s.slice(1,-1)+a+")$"),this.negate&&(s="^(?!"+s+").+$");try{this.regexp=new RegExp(s,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,n=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&n)return!0;let r=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let s=this.set;this.debug(this.pattern,"set",s);let o=i[i.length-1];if(!o)for(let a=i.length-2;!o&&a>=0;a--)o=i[a];for(let a of s){let c=i;if(r.matchBase&&a.length===1&&(c=[o]),this.matchOne(c,a,n))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(t){return it.minimatch.defaults(t).Minimatch}};it.Minimatch=$_;var XXt=Gee();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return XXt.AST}});var QXt=zee();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return QXt.escape}});var $Xt=wB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return $Xt.unescape}});it.minimatch.AST=cBe.AST;it.minimatch.Minimatch=$_;it.minimatch.escape=_Xt.escape;it.minimatch.unescape=bXt.unescape});var EBe=w((cMr,Kee)=>{"use strict";var pBe=Y("node:diagnostics_channel"),{context:CB,trace:Vee,SpanStatusCode:MB,propagation:Wee,diag:eQt}=(Ce(),ke(Ze)),{getRPCMetadata:tQt,RPCType:nQt}=fr(),{ATTR_HTTP_ROUTE:DB,ATTR_HTTP_RESPONSE_STATUS_CODE:hBe,ATTR_HTTP_REQUEST_METHOD:rQt,ATTR_URL_PATH:iQt}=(Pn(),ke(Mr)),{InstrumentationBase:sQt}=Bqe(),{version:oQt,name:mBe}=Gqe(),aQt=">=4.0.0 <6",gBe=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],fi={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},Xy={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},Im="anonymous",Qy=Symbol("fastify otel instance"),$y=Symbol("fastify otel request spans"),VP=Symbol("fastify otel request context"),yBe=Symbol("fastify otel addhook original"),SBe=Symbol("fastify otel setnotfound original"),WP=Symbol("fastify otel ignore path"),KP=Symbol("fastify otel record exceptions"),LB=class extends sQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(mBe,oQt,t),this.logger=eQt.createComponentLogger({namespace:mBe}),this[WP]=null,this[KP]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[KP]=t.recordExceptions}if(typeof t?.requestHook=="function"&&(this._requestHook=t.requestHook),typeof t?.lifecycleHook=="function"&&(this._lifecycleHook=t.lifecycleHook),t?.ignorePaths!=null||process.env.OTEL_FASTIFY_IGNORE_PATHS!=null){let n=t?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if((typeof n!="string"||n.length===0)&&typeof n!="function")throw new TypeError("ignorePaths must be a string or a function");let r=null;this[WP]=i=>typeof n=="function"?n(i):(r==null&&(r=fBe().minimatch),r(i.url,n))}}enable(){return this._handleInitialization===void 0&&this.getConfig().registerOnInitialization&&(this._handleInitialization=t=>{this.plugin()(t.fastify,void 0,()=>{});let n=(r,i,s)=>{s()};n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",t.fastify.register(n)},pBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(pBe.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let t=this;return n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",n[Symbol.for("plugin-meta")]={fastify:aQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate(Qy,t),r.decorate(yBe,r.addHook),r.decorate(SBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[VP],h=this[$y];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,g)=>Wee.inject(p,m,g),extract:(m,g)=>Wee.extract(p,m,g)}}),r.decorateRequest($y,null),r.decorateRequest(VP,null),r.addHook("onRoute",function(p){if(t[WP]?.(p)===!0){t.logger.debug(`Ignoring route instrumentation ${p.method} ${p.url} because it matches the ignore path`);return}if(p.config?.otel===!1){t.logger.debug(`Ignoring route instrumentation ${p.method} ${p.url} because it is disabled`);return}for(let h of gBe)if(p[h]!=null){let m=p[h];if(typeof m=="function")p[h]=d(m,h,{[fi.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[fi.FASTIFY_TYPE]:Xy.ROUTE,[DB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:Im});else if(Array.isArray(m)){let g=[];for(let y of m)g.push(d(y,h,{[fi.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[fi.FASTIFY_TYPE]:Xy.ROUTE,[DB]:p.url,[fi.HOOK_CALLBACK_NAME]:y.name?.length>0?y.name:Im}));p[h]=g}}p.onSend!=null?p.onSend=Array.isArray(p.onSend)?[...p.onSend,o]:[p.onSend,o]:p.onSend=o,p.onError!=null?p.onError=Array.isArray(p.onError)?[...p.onError,a]:[p.onError,a]:p.onError=a,p.handler=d(p.handler,"handler",{[fi.HOOK_NAME]:`${this.pluginName} - route-handler`,[fi.FASTIFY_TYPE]:Xy.HANDLER,[DB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:Im})}),r.addHook("onRequest",function(p,h,m){if(this[Qy].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[Qy][WP]?.({url:p.url,method:p.method})===!0)return this[Qy].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let g=CB.active();Vee.getSpan(g)==null&&(g=Wee.extract(g,p.headers));let y=tQt(g);p.routeOptions.url!=null&&y?.type===nQt.HTTP&&(y.route=p.routeOptions.url);let E={[fi.ROOT]:"@fastify/otel",[rQt]:p.method,[iQt]:p.url};p.routeOptions.url!=null&&(E[DB]=p.routeOptions.url);let S=this[Qy].tracer.startSpan("request",{attributes:E},g);try{this[Qy]._requestHook?.(S,p)}catch(_){this[Qy].logger.error({err:_},"requestHook threw")}p[VP]=Vee.setSpan(g,S),p[$y]=S,CB.with(p[VP],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let g=p[$y];g!=null&&(g.setAttributes({[hBe]:h.statusCode}),g.end()),p[$y]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let g=f[$y];g!=null&&(p.statusCode>=500&&g.setStatus({code:MB.ERROR}),g.setAttributes({[hBe]:p.statusCode}),g.end()),f[$y]=null,m(null,h)}function a(f,p,h,m){let g=f[$y];g!=null&&(g.setStatus({code:MB.ERROR,message:h.message}),t[KP]!==!1&&g.recordException(h)),m()}function c(f,p){let h=this[yBe];return gBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Im})):h.call(this,f,p)}function u(f,p){let h=this[SBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:Im}),h.call(this,p)):(f.preValidation!=null&&(f.preValidation=d(f.preValidation,"notFoundHandler - preValidation",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:Im})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:Im})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Xy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:Im}),h.call(this,f,p))}function l(f){for(let p of f)if(p?.routeOptions&&p.url&&p.method)return p;return null}function d(f,p,h={}){return function(...g){let y=this[Qy],E=l(g);if(E===null)return y.logger.debug(`Ignoring route instrumentation because ${p} was called without a Fastify request argument`),f.call(this,...g);if(y.isEnabled()===!1||E.routeOptions.config?.otel===!1)return y.logger.debug(`Ignoring route instrumentation ${E.routeOptions.method} ${E.routeOptions.url} because it is disabled`),f.call(this,...g);if(y[WP]?.({url:E.url,method:E.method})===!0)return y.logger.debug(`Ignoring route instrumentation ${E.routeOptions.method} ${E.routeOptions.url} because it matches the ignore path`),f.call(this,...g);let S=E[VP]??CB.active(),_=f.name?.length>0?f.name:this.pluginName??Im,b=y.tracer.startSpan(`${p} - ${_}`,{attributes:h},S);if(y._lifecycleHook!=null)try{y._lifecycleHook(b,{hookName:p,request:E,handler:_})}catch(T){y.logger.error({err:T},"Execution of lifecycleHook failed")}return CB.with(Vee.setSpan(S,b),function(){try{let T=f.call(this,...g);return typeof T?.then=="function"?T.then(A=>(b.end(),A),A=>(b.setStatus({code:MB.ERROR,message:A.message}),y[KP]!==!1&&b.recordException(A),b.end(),Promise.reject(A))):(b.end(),T)}catch(T){throw b.setStatus({code:MB.ERROR,message:T.message}),y[KP]!==!1&&b.recordException(T),b.end(),T}},this)}}}}};Kee.exports=LB;Kee.exports.FastifyOtelInstrumentation=LB});var xm,YP,ZP,_Be=v(()=>{(function(e){let t="fastify.name";e.FASTIFY_NAME=t;let n="fastify.type";e.FASTIFY_TYPE=n;let r="hook.name";e.HOOK_NAME=r;let i="plugin.name";e.PLUGIN_NAME=i})(xm||(xm={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})(YP||(YP={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(ZP||(ZP={}))});var JP,bBe=v(()=>{JP=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function Yee(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[JP]||[];return s.push(i),Object.defineProperty(e,JP,{enumerable:!1,configurable:!0,value:s}),i}function UB(e,t){let n=e[JP]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[JP])}function vBe(e,t,n){let r,i;try{i=e(),TBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!TBe(i)&&(t(r,i),r))throw r;return i}}function TBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var ABe=v(()=>{Ce();bBe()});function dQt(){let e=ct();e&&e.on("spanStart",t=>{wBe(t)})}function wBe(e){let t=vt(e).data,n=t["fastify.type"];if(t[zt]||!n)return;e.setAttributes({[Rt]:"auto.http.otel.fastify",[zt]:`${n}.fastify`});let r=t["fastify.name"]||t["plugin.name"]||t["hook.name"];if(typeof r=="string"){let i=r.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(i)}}var jB,eb,cQt,uQt,RBe,lQt,FB,kBe=v(()=>{Ce();jB=Se(fr(),1),eb=Se(Jt(),1);Pn();st();_Be();ABe();cQt="0.1.0",uQt="@sentry/instrumentation-fastify-v3",RBe="anonymous",lQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),FB=class extends eb.InstrumentationBase{constructor(t={}){super(uQt,cQt,t)}init(){return[new eb.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_hookOnRequest(){let t=this;return function(r,i,s){if(!t.isEnabled())return s();t._wrap(i,"send",t._patchSend());let o=r,a=(0,jB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===jB.RPCType.HTTP&&(a.route=c);let u=r.method||"GET";vn().setTransactionName(`${u} ${c}`),s()}}_wrapHandler(t,n,r,i){let s=this;return this._diag.debug("Patching fastify route.handler function"),function(...o){if(!s.isEnabled())return r.apply(this,o);let a=r.name||t||RBe,c=`${ZP.MIDDLEWARE} - ${a}`,u=o[1],l=Yee(u,s.tracer,c,{[xm.FASTIFY_TYPE]:YP.MIDDLEWARE,[xm.PLUGIN_NAME]:t,[xm.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){UB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>vBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||UB(u)}))}}_wrapAddHook(){let t=this;return this._diag.debug("Patching fastify server.addHook function"),function(n){return function(...i){let s=i[0],o=i[1],a=this.pluginName;if(!lQt.has(s))return n.apply(this,i);let c=typeof i[i.length-1]=="function"&&o.constructor.name!=="AsyncFunction";return n.apply(this,[s,t._wrapHandler(a,s,o,c)])}}}_patchConstructor(t){let n=this;function r(...i){let s=t.fastify.apply(this,i);return s.addHook("onRequest",n._hookOnRequest()),s.addHook("preHandler",n._hookPreHandler()),dQt(),n._wrap(s,"addHook",n._wrapAddHook()),s}return t.errorCodes!==void 0&&(r.errorCodes=t.errorCodes),r.fastify=r,r.default=r,r}_patchSend(){let t=this;return this._diag.debug("Patching fastify reply.send function"),function(r){return function(...s){let o=s[0];return t.isEnabled()?(0,eb.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),UB(this,a)}):r.apply(this,s)}}}_hookPreHandler(){let t=this;return this._diag.debug("Patching fastify preHandler function"),function(r,i,s){if(!t.isEnabled())return s();let o=r,a=o.routeOptions?.handler||o.context?.handler,c=a?.name.startsWith("bound ")?a.name.substring(6):a?.name,u=`${ZP.REQUEST_HANDLER} - ${c||this.pluginName||RBe}`,l={[xm.PLUGIN_NAME]:this.pluginName,[xm.FASTIFY_TYPE]:YP.REQUEST_HANDLER,[tJ]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[xm.FASTIFY_NAME]=c);let d=Yee(i,t.tracer,u,l);wBe(d);let{requestHook:f}=t.getConfig();return f&&(0,eb.safeExecuteInTheMiddle)(()=>f(d,{request:r}),p=>{p&&t._diag.error("request hook failed",p)},!0),Ve.with(jt.setSpan(Ve.active(),d),()=>{s()})}}}});import*as Zee from"node:diagnostics_channel";function fQt(){let e=ct();if(e)return e.getIntegrationByName(HB)}function IBe(e,t,n,r){let i=fQt()?.getShouldHandleError()||CBe;if(r==="diagnostics-channel"&&(this.diagnosticsChannelExists=!0),this.diagnosticsChannelExists&&r==="onError-hook"){So&&Z.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}i(e,t,n)&&Wt(e,{mechanism:{handled:!1,type:"auto.function.fastify"}})}function CBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function MBe(e){let t=vt(e),n=t.description,r=t.data,i=r["fastify.type"],s=i==="hook",o=i===n?.startsWith("handler -"),a=n==="request"||i==="request-handler";if(r[zt]||!o&&!a&&!s)return;let c=s?"hook":o?"middleware":a?"request_handler":"";e.setAttributes({[Rt]:"auto.http.otel.fastify",[zt]:`${c}.fastify`});let u=r["fastify.name"]||r["plugin.name"]||r["hook.name"];if(typeof u=="string"){let l=u.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(l)}}function hQt(){let e=ct();e&&e.on("spanStart",t=>{MBe(t)})}function mQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&MBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var xBe,HB,OBe,PBe,pQt,NBe,DBe=v(()=>{xBe=Se(EBe(),1);st();sr();J_();kBe();HB="Fastify",OBe=rt(`${HB}.v3`,()=>new FB);PBe=rt(`${HB}.v5`,()=>{let e=new xBe.FastifyOtelInstrumentation,t=e.plugin();return Zee.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Z.error("Failed to setup Fastify instrumentation",i):(hQt(),r&&mQt(r))})}),Zee.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;IBe.call(IBe,r,i,s,"diagnostics-channel")}),e}),pQt=(({shouldHandleError:e})=>{let t;return{name:HB,setupOnce(){t=e||CBe,OBe(),PBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),NBe=(e={})=>pQt(e)});var Jee=w(ff=>{"use strict";Object.defineProperty(ff,"__esModule",{value:!0});ff.SpanNames=ff.TokenKind=ff.AllowedOperationTypes=void 0;var gQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(gQt=ff.AllowedOperationTypes||(ff.AllowedOperationTypes={}));var yQt;(function(e){e.SOF="",e.EOF="",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(yQt=ff.TokenKind||(ff.TokenKind={}));var SQt;(function(e){e.EXECUTE="graphql.execute",e.PARSE="graphql.parse",e.RESOLVE="graphql.resolve",e.VALIDATE="graphql.validate",e.SCHEMA_VALIDATE="graphql.validateSchema",e.SCHEMA_PARSE="graphql.parseSchema"})(SQt=ff.SpanNames||(ff.SpanNames={}))});var Xee=w(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});XP.AttributeNames=void 0;var EQt;(function(e){e.SOURCE="graphql.source",e.FIELD_NAME="graphql.field.name",e.FIELD_PATH="graphql.field.path",e.FIELD_TYPE="graphql.field.type",e.PARENT_NAME="graphql.parent.name",e.OPERATION_TYPE="graphql.operation.type",e.OPERATION_NAME="graphql.operation.name",e.VARIABLES="graphql.variables.",e.ERROR_VALIDATION_NAME="graphql.validation.error"})(EQt=XP.AttributeNames||(XP.AttributeNames={}))});var qB=w(HR=>{"use strict";Object.defineProperty(HR,"__esModule",{value:!0});HR.OTEL_GRAPHQL_DATA_SYMBOL=HR.OTEL_PATCHED_SYMBOL=void 0;HR.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");HR.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var LBe=w(BB=>{"use strict";Object.defineProperty(BB,"__esModule",{value:!0});BB.OPERATION_NOT_SUPPORTED=void 0;var IMr=qB();BB.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var JBe=w(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.wrapFieldResolver=Eo.wrapFields=Eo.getSourceFromLocation=Eo.getOperation=Eo.endSpan=Eo.addSpanSource=Eo.addInputVariableAttributes=Eo.isPromise=void 0;var qR=(Ce(),ke(Ze)),eS=Jee(),tb=Xee(),Om=qB(),UBe=Object.values(eS.AllowedOperationTypes),_Qt=e=>typeof e?.then=="function";Eo.isPromise=_Qt;var bQt=e=>typeof e=="object"&&e!==null;function Qee(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{Qee(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{Qee(e,`${t}.${r}`,i)}):e.setAttribute(`${tb.AttributeNames.VARIABLES}${String(t)}`,n)}function TQt(e,t){Object.entries(t).forEach(([n,r])=>{Qee(e,n,r)})}Eo.addInputVariableAttributes=TQt;function qBe(e,t,n,r,i){let s=WBe(t,n,r,i);e.setAttribute(tb.AttributeNames.SOURCE,s)}Eo.addSpanSource=qBe;function vQt(e,t,n,r,i){let s=BBe(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?zBe(n):GBe(n,i);return s={span:AQt(e,t,n,r,i,a)},kQt(n,i,s),{field:s,spanAdded:!0}}function AQt(e,t,n,r,i,s){let o={[tb.AttributeNames.FIELD_NAME]:r.fieldName,[tb.AttributeNames.FIELD_PATH]:i.join("."),[tb.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[tb.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${eS.SpanNames.RESOLVE} ${o[tb.AttributeNames.FIELD_PATH]}`,{attributes:o},s?qR.trace.setSpan(qR.context.active(),s):void 0),c=n[Om.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&qBe(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function RQt(e,t){t&&e.recordException(t),e.end()}Eo.endSpan=RQt;function wQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>UBe.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>UBe.indexOf(n?.operation)!==-1)}Eo.getOperation=wQt;function kQt(e,t,n){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function BBe(e,t){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function GBe(e,t){for(let n=t.length-1;n>0;n--){let r=BBe(e,t.slice(0,n));if(r)return r.span}return zBe(e)}function zBe(e){return e[Om.OTEL_GRAPHQL_DATA_SYMBOL].span}function IQt(e,t){let n=[],r=t;for(;r;){let i=r.key;e&&typeof i=="number"&&(i="*"),n.push(String(i)),r=r.prev}return n.reverse()}function xQt(e){return VBe(` +`,e)}function FBe(e){return VBe(" ",e)}function VBe(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&OQt.indexOf(a.kind)>=0&&(u="*"),a.kind===eS.TokenKind.STRING&&(u=`"${u}"`),a.kind===eS.TokenKind.EOF&&(u=""),a.line>c?(i+=xQt(a.line-c),c=a.line,l=FBe(a.column-1)):a.line===a.prev?.line&&(l=FBe(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}Eo.getSourceFromLocation=WBe;function KBe(e,t,n){if(!e||e[Om.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Om.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=ZBe(t,n,s.resolve)),s.type)){let o=YBe(s.type);for(let a of o)KBe(a,t,n)}})}Eo.wrapFields=KBe;function YBe(e){return"ofType"in e?YBe(e.ofType):PQt(e)?e.getTypes():NQt(e)?[e]:[]}function PQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function NQt(e){return"getFields"in e&&typeof e.getFields=="function"}var jBe=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:qR.SpanStatusCode.ERROR,message:t.message}),e.end())},HBe=(e,t)=>{t&&e.end()};function ZBe(e,t,n,r=!1){if(i[Om.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(bQt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Om.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=IQt(u.mergeItems,c&&c.path),d=l.filter(h=>typeof h=="string").length,f,p=!1;if(u.depth>=0&&u.depth{try{let h=n.call(this,s,o,a,c);return(0,Eo.isPromise)(h)?h.then(m=>(HBe(f,p),m),m=>{throw jBe(f,m,p),m}):(HBe(f,p),h)}catch(h){throw jBe(f,h,p),h}})}return i[Om.OTEL_PATCHED_SYMBOL]=!0,i}Eo.wrapFieldResolver=ZBe});var XBe=w(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});BR.PACKAGE_NAME=BR.PACKAGE_VERSION=void 0;BR.PACKAGE_VERSION="0.62.0";BR.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var eGe=w(VB=>{"use strict";Object.defineProperty(VB,"__esModule",{value:!0});VB.GraphQLInstrumentation=void 0;var Pm=(Ce(),ke(Ze)),Ql=Jt(),QP=Jee(),GB=Xee(),$ee=qB(),CQt=LBe(),Xa=JBe(),QBe=XBe(),$Be={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},zB=[">=14.0.0 <17"],ete=class extends Ql.InstrumentationBase{constructor(t={}){super(QBe.PACKAGE_NAME,QBe.PACKAGE_VERSION,{...$Be,...t})}setConfig(t={}){super.setConfig({...$Be,...t})}init(){let t=new Ql.InstrumentationNodeModuleDefinition("graphql",zB);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new Ql.InstrumentationNodeModuleFile("graphql/execution/execute.js",zB,t=>((0,Ql.isWrapped)(t.execute)&&this._unwrap(t,"execute"),this._wrap(t,"execute",this._patchExecute(t.defaultFieldResolver)),t),t=>{t&&this._unwrap(t,"execute")})}_addPatchingParser(){return new Ql.InstrumentationNodeModuleFile("graphql/language/parser.js",zB,t=>((0,Ql.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new Ql.InstrumentationNodeModuleFile("graphql/validation/validate.js",zB,t=>((0,Ql.isWrapped)(t.validate)&&this._unwrap(t,"validate"),this._wrap(t,"validate",this._patchValidate()),t),t=>{t&&this._unwrap(t,"validate")})}_patchExecute(t){let n=this;return function(i){return function(){let o;if(arguments.length>=2){let u=arguments;o=n._wrapExecuteArgs(u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],t)}else{let u=arguments[0];o=n._wrapExecuteArgs(u.schema,u.document,u.rootValue,u.contextValue,u.variableValues,u.operationName,u.fieldResolver,u.typeResolver,t)}let a=(0,Xa.getOperation)(o.document,o.operationName),c=n._createExecuteSpan(a,o);return o.contextValue[$ee.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[$ee.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Pm.context.with(Pm.trace.setSpan(Pm.context.active(),c),()=>(0,Ql.safeExecuteInTheMiddle)(()=>i.apply(this,[o]),(u,l)=>{n._handleExecutionResult(c,u,l)}))}}}_handleExecutionResult(t,n,r){let i=this.getConfig();if(r===void 0||n){(0,Xa.endSpan)(t,n);return}if((0,Xa.isPromise)(r))r.then(s=>{if(typeof i.responseHook!="function"){(0,Xa.endSpan)(t);return}this._executeResponseHook(t,s)},s=>{(0,Xa.endSpan)(t,s)});else{if(typeof i.responseHook!="function"){(0,Xa.endSpan)(t);return}this._executeResponseHook(t,r)}}_executeResponseHook(t,n){let{responseHook:r}=this.getConfig();r&&(0,Ql.safeExecuteInTheMiddle)(()=>{r(t,n)},i=>{i&&this._diag.error("Error running response hook",i),(0,Xa.endSpan)(t,void 0)},!0)}_patchParse(){let t=this;return function(r){return function(s,o){return t._parse(this,r,s,o)}}}_patchValidate(){let t=this;return function(r){return function(s,o,a,c,u){return t._validate(this,r,s,o,a,u,c)}}}_parse(t,n,r,i){let s=this.getConfig(),o=this.tracer.startSpan(QP.SpanNames.PARSE);return Pm.context.with(Pm.trace.setSpan(Pm.context.active(),o),()=>(0,Ql.safeExecuteInTheMiddle)(()=>n.call(t,r,i),(a,c)=>{c&&((0,Xa.getOperation)(c)?c.loc&&(0,Xa.addSpanSource)(o,c.loc,s.allowValues):o.updateName(QP.SpanNames.SCHEMA_PARSE)),(0,Xa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(QP.SpanNames.VALIDATE,{});return Pm.context.with(Pm.trace.setSpan(Pm.context.active(),c),()=>(0,Ql.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(QP.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:GB.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Xa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(QP.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(GB.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(GB.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=CQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(GB.AttributeNames.OPERATION_NAME,s)}return n.document?.loc&&(0,Xa.addSpanSource)(i,n.document.loc,r.allowValues),n.variableValues&&r.allowValues&&(0,Xa.addInputVariableAttributes)(i,n.variableValues),i}_wrapExecuteArgs(t,n,r,i,s,o,a,c,u){if(i||(i={}),i[$ee.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c};let l=a==null,d=a??u;return a=(0,Xa.wrapFieldResolver)(this.tracer,()=>this.getConfig(),d,l),t&&((0,Xa.wrapFields)(t.getQueryType(),this.tracer,()=>this.getConfig()),(0,Xa.wrapFields)(t.getMutationType(),this.tracer,()=>this.getConfig())),{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c}}};VB.GraphQLInstrumentation=ete});var tGe=w(WB=>{"use strict";Object.defineProperty(WB,"__esModule",{value:!0});WB.GraphQLInstrumentation=void 0;var MQt=eGe();Object.defineProperty(WB,"GraphQLInstrumentation",{enumerable:!0,get:function(){return MQt.GraphQLInstrumentation}})});function oGe(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function LQt(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}var nGe,rGe,iGe,DQt,sGe,aGe=v(()=>{Ce();nGe=Se(tGe(),1);st();sr();wR();rGe="Graphql",iGe=rt(rGe,nGe.GraphQLInstrumentation,e=>{let t=oGe(e);return{...t,responseHook(n,r){Dr(n,"auto.graphql.otel.graphql"),r.errors?.length&&!vt(n).status&&n.setStatus({code:as.ERROR});let s=vt(n).data,o=s["graphql.operation.type"],a=s["graphql.operation.name"];if(t.useOperationNameForRootSpan&&o){let c=cs(n),l=vt(c).data[AR]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(AR,l)):typeof l=="string"?c.setAttribute(AR,[l,d]):c.setAttribute(AR,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${LQt(l)})`)}}}}),DQt=((e={})=>({name:rGe,setupOnce(){iGe(oGe(e))}})),sGe=DQt});var cGe=w(KB=>{"use strict";Object.defineProperty(KB,"__esModule",{value:!0});KB.EVENT_LISTENERS_SET=void 0;KB.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var uGe=w(YB=>{"use strict";Object.defineProperty(YB,"__esModule",{value:!0});YB.bufferTextMapGetter=void 0;YB.bufferTextMapGetter={get(e,t){if(!e)return;let n=Object.keys(e);for(let r of n)if(r===t||r.toLowerCase()===t)return e[r]?.toString()},keys(e){return e?Object.keys(e):[]}}});var lGe=w(Fn=>{"use strict";Object.defineProperty(Fn,"__esModule",{value:!0});Fn.METRIC_MESSAGING_PROCESS_DURATION=Fn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=Fn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=Fn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=Fn.MESSAGING_SYSTEM_VALUE_KAFKA=Fn.MESSAGING_OPERATION_TYPE_VALUE_SEND=Fn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=Fn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=Fn.ATTR_MESSAGING_SYSTEM=Fn.ATTR_MESSAGING_OPERATION_TYPE=Fn.ATTR_MESSAGING_OPERATION_NAME=Fn.ATTR_MESSAGING_KAFKA_OFFSET=Fn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=Fn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=Fn.ATTR_MESSAGING_DESTINATION_PARTITION_ID=Fn.ATTR_MESSAGING_DESTINATION_NAME=Fn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;Fn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";Fn.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";Fn.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";Fn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";Fn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";Fn.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";Fn.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";Fn.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";Fn.ATTR_MESSAGING_SYSTEM="messaging.system";Fn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";Fn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";Fn.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";Fn.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";Fn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";Fn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";Fn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";Fn.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var dGe=w(GR=>{"use strict";Object.defineProperty(GR,"__esModule",{value:!0});GR.PACKAGE_NAME=GR.PACKAGE_VERSION=void 0;GR.PACKAGE_VERSION="0.23.0";GR.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var yGe=w(JB=>{"use strict";Object.defineProperty(JB,"__esModule",{value:!0});JB.KafkaJsInstrumentation=void 0;var Lr=(Ce(),ke(Ze)),$l=Jt(),zR=(Pn(),ke(Mr)),fGe=cGe(),pGe=uGe(),ot=lGe(),hGe=dGe();function ZB(e,t,n){return r=>{e.add(t,{...n,...r?{[zR.ATTR_ERROR_TYPE]:r}:{}})}}function mGe(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[zR.ATTR_ERROR_TYPE]:r}:{}})}}var gGe=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],tte=class extends $l.InstrumentationBase{constructor(t={}){super(hGe.PACKAGE_NAME,hGe.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:gGe}}),this._sentMessages=this.meter.createCounter(ot.METRIC_MESSAGING_CLIENT_SENT_MESSAGES),this._consumedMessages=this.meter.createCounter(ot.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES),this._processDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_PROCESS_DURATION,{advice:{explicitBucketBoundaries:gGe}})}init(){let t=r=>{(0,$l.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,$l.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new $l.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],r=>(t(r),this._wrap(r?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(r?.Kafka?.prototype,"consumer",this._getConsumerPatch()),r),t)}_getConsumerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,$l.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[fGe.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[fGe.EVENT_LISTENERS_SET]=!0)}_recordClientDurationMetric(t){let[n,r]=t.payload.broker.split(":");this._clientDuration.record(t.payload.duration/1e3,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:`${t.payload.apiName}`,[zR.ATTR_SERVER_ADDRESS]:n,[zR.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,$l.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,$l.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,$l.isWrapped)(s.transaction)&&t._unwrap(s,"transaction"),t._wrap(s,"transaction",t._getProducerTransactionPatch()),t._setKafkaEventListeners(s),s}}_getConsumerRunPatch(){let t=this;return n=>function(...i){let s=i[0];return s?.eachMessage&&((0,$l.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,$l.isWrapped)(s.eachBatch)&&t._unwrap(s,"eachBatch"),t._wrap(s,"eachBatch",t._getConsumerEachBatchPatch())),n.call(this,s)}}_getConsumerEachMessagePatch(){let t=this;return n=>function(...i){let s=i[0],o=Lr.propagation.extract(Lr.ROOT_CONTEXT,s.message.headers,pGe.bufferTextMapGetter),a=t._startConsumerSpan({topic:s.topic,message:s.message,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,ctx:o,attributes:{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)}}),c=[mGe(t._processDuration,Date.now(),{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)}),ZB(t._consumedMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)})],u=Lr.context.with(Lr.trace.setSpan(o,a),()=>n.apply(this,i));return t._endSpansOnPromise([a],c,u)}}_getConsumerEachBatchPatch(){return t=>{let n=this;return function(...i){let s=i[0],o=n._startConsumerSpan({topic:s.batch.topic,message:void 0,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,ctx:Lr.ROOT_CONTEXT,attributes:{[ot.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]:s.batch.messages.length,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}});return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),o),()=>{let a=Date.now(),c=[],u=[ZB(n._consumedMessages,s.batch.messages.length,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.batch.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)})];s.batch.messages.forEach(d=>{let f=Lr.propagation.extract(Lr.ROOT_CONTEXT,d.headers,pGe.bufferTextMapGetter),p=Lr.trace.getSpan(f)?.spanContext(),h;p&&(h={context:p}),c.push(n._startConsumerSpan({topic:s.batch.topic,message:d,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,link:h,attributes:{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}})),u.push(mGe(n._processDuration,a,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.batch.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}))});let l=t.apply(this,i);return c.unshift(o),n._endSpansOnPromise(c,u,l)})}}}_getProducerTransactionPatch(){let t=this;return n=>function(...i){let s=t.tracer.startSpan("transaction"),o=n.apply(this,i);return o.then(a=>{let c=a.send;a.send=function(...p){return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),s),()=>t._getSendPatch()(c).apply(this,p).catch(m=>{throw s.setStatus({code:Lr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let u=a.sendBatch;a.sendBatch=function(...p){return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),s),()=>t._getSendBatchPatch()(u).apply(this,p).catch(m=>{throw s.setStatus({code:Lr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let l=a.commit;a.commit=function(...p){let h=l.apply(this,p).then(()=>{s.setStatus({code:Lr.SpanStatusCode.OK})});return t._endSpansOnPromise([s],[],h)};let d=a.abort;a.abort=function(...p){let h=d.apply(this,p);return t._endSpansOnPromise([s],[],h)}}).catch(a=>{s.setStatus({code:Lr.SpanStatusCode.ERROR,message:a?.message}),s.recordException(a),s.end()}),o}}_getSendBatchPatch(){let t=this;return n=>function(...i){let o=i[0].topicMessages||[],a=[],c=[];o.forEach(l=>{l.messages.forEach(d=>{a.push(t._startProducerSpan(l.topic,d)),c.push(ZB(t._sentMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_DESTINATION_NAME]:l.topic,...d.partition!==void 0?{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(d.partition)}:{}}))})});let u=n.apply(this,i);return t._endSpansOnPromise(a,c,u)}}_getSendPatch(){let t=this;return n=>function(...i){let s=i[0],o=s.messages.map(u=>t._startProducerSpan(s.topic,u)),a=s.messages.map(u=>ZB(t._sentMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,...u.partition!==void 0?{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(u.partition)}:{}})),c=n.apply(this,i);return t._endSpansOnPromise(o,a,c)}}_endSpansOnPromise(t,n,r){return Promise.resolve(r).then(i=>(n.forEach(s=>s()),i)).catch(i=>{let s,o=zR.ERROR_TYPE_VALUE_OTHER;throw typeof i=="string"||i===void 0?s=i:typeof i=="object"&&Object.prototype.hasOwnProperty.call(i,"message")&&(s=i.message,o=i.constructor.name),n.forEach(a=>a(o)),t.forEach(a=>{a.setAttribute(zR.ATTR_ERROR_TYPE,o),a.setStatus({code:Lr.SpanStatusCode.ERROR,message:s})}),i}).finally(()=>{t.forEach(i=>i.end())})}_startConsumerSpan({topic:t,message:n,operationType:r,ctx:i,link:s,attributes:o}){let a=r===ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?"poll":r,c=this.tracer.startSpan(`${a} ${t}`,{kind:r===ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?Lr.SpanKind.CLIENT:Lr.SpanKind.CONSUMER,attributes:{...o,[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_OPERATION_TYPE]:r,[ot.ATTR_MESSAGING_OPERATION_NAME]:a,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n?.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n?.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_KAFKA_OFFSET]:n?.offset},links:s?[s]:[]},i),{consumerHook:u}=this.getConfig();return u&&n&&(0,$l.safeExecuteInTheMiddle)(()=>u(c,{topic:t,message:n}),l=>{l&&this._diag.error("consumerHook error",l)},!0),c}_startProducerSpan(t,n){let r=this.tracer.startSpan(`send ${t}`,{kind:Lr.SpanKind.PRODUCER,attributes:{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:n.partition!==void 0?String(n.partition):void 0,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_OPERATION_TYPE]:ot.MESSAGING_OPERATION_TYPE_VALUE_SEND}});n.headers=n.headers??{},Lr.propagation.inject(Lr.trace.setSpan(Lr.context.active(),r),n.headers);let{producerHook:i}=this.getConfig();return i&&(0,$l.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};JB.KafkaJsInstrumentation=tte});var SGe=w(XB=>{"use strict";Object.defineProperty(XB,"__esModule",{value:!0});XB.KafkaJsInstrumentation=void 0;var UQt=yGe();Object.defineProperty(XB,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return UQt.KafkaJsInstrumentation}})});var EGe,_Ge,bGe,FQt,TGe,vGe=v(()=>{EGe=Se(SGe(),1);sr();_Ge="Kafka",bGe=rt(_Ge,()=>new EGe.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),FQt=(()=>({name:_Ge,setupOnce(){bGe()}})),TGe=FQt});var AGe=w(VR=>{"use strict";Object.defineProperty(VR,"__esModule",{value:!0});VR.PACKAGE_NAME=VR.PACKAGE_VERSION=void 0;VR.PACKAGE_VERSION="0.58.0";VR.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var IGe=w(QB=>{"use strict";Object.defineProperty(QB,"__esModule",{value:!0});QB.LruMemoizerInstrumentation=void 0;var RGe=(Ce(),ke(Ze)),wGe=Jt(),kGe=AGe(),nte=class extends wGe.InstrumentationBase{constructor(t={}){super(kGe.PACKAGE_NAME,kGe.PACKAGE_VERSION,t)}init(){return[new wGe.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <4"],t=>{let n=function(){let r=t.apply(this,arguments);return function(){let i=[...arguments],s=i.pop(),o=typeof s=="function"?RGe.context.bind(RGe.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};QB.LruMemoizerInstrumentation=nte});var xGe=w($B=>{"use strict";Object.defineProperty($B,"__esModule",{value:!0});$B.LruMemoizerInstrumentation=void 0;var jQt=IGe();Object.defineProperty($B,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return jQt.LruMemoizerInstrumentation}})});var OGe,PGe,NGe,HQt,CGe,MGe=v(()=>{OGe=Se(xGe(),1);sr();PGe="LruMemoizer",NGe=rt(PGe,()=>new OGe.LruMemoizerInstrumentation),HQt=(()=>({name:PGe,setupOnce(){NGe()}})),CGe=HQt});var DGe=w(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Ni.DB_SYSTEM_VALUE_MONGODB=Ni.DB_SYSTEM_NAME_VALUE_MONGODB=Ni.ATTR_NET_PEER_PORT=Ni.ATTR_NET_PEER_NAME=Ni.ATTR_DB_SYSTEM=Ni.ATTR_DB_STATEMENT=Ni.ATTR_DB_OPERATION=Ni.ATTR_DB_NAME=Ni.ATTR_DB_MONGODB_COLLECTION=Ni.ATTR_DB_CONNECTION_STRING=void 0;Ni.ATTR_DB_CONNECTION_STRING="db.connection_string";Ni.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Ni.ATTR_DB_NAME="db.name";Ni.ATTR_DB_OPERATION="db.operation";Ni.ATTR_DB_STATEMENT="db.statement";Ni.ATTR_DB_SYSTEM="db.system";Ni.ATTR_NET_PEER_NAME="net.peer.name";Ni.ATTR_NET_PEER_PORT="net.peer.port";Ni.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb";Ni.DB_SYSTEM_VALUE_MONGODB="mongodb";Ni.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var LGe=w($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});$P.MongodbCommandType=void 0;var qQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(qQt=$P.MongodbCommandType||($P.MongodbCommandType={}))});var UGe=w(WR=>{"use strict";Object.defineProperty(WR,"__esModule",{value:!0});WR.PACKAGE_NAME=WR.PACKAGE_VERSION=void 0;WR.PACKAGE_VERSION="0.67.0";WR.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var HGe=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.MongoDBInstrumentation=void 0;var Ki=(Ce(),ke(Ze)),jn=Jt(),Nm=(Pn(),ke(Mr)),pl=DGe(),nb=LGe(),FGe=UGe(),jGe={requireParentSpan:!0},rte=class e extends jn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(FGe.PACKAGE_NAME,FGe.PACKAGE_VERSION,{...jGe,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,jn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,jn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...jGe,...t})}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter(pl.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsage?.add(t,{"pool.name":n,state:r})}init(){let{v3PatchConnection:t,v3UnpatchConnection:n}=this._getV3ConnectionPatches(),{v4PatchConnect:r,v4UnpatchConnect:i}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:s,v4PatchConnectionPromise:o,v4UnpatchConnection:a}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:c,v4UnpatchConnectionPool:u}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:l,v4UnpatchSessions:d}=this._getV4SessionsPatches();return[new jn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new jn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new jn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,jn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,jn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,jn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,jn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,jn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,jn.isWrapped)(t.getMore)&&this._unwrap(t,"getMore"),this._wrap(t,"getMore",this._getV3PatchCursor()),t),v3UnpatchConnection:t=>{t!==void 0&&(this._unwrap(t,"insert"),this._unwrap(t,"remove"),this._unwrap(t,"update"),this._unwrap(t,"command"),this._unwrap(t,"query"),this._unwrap(t,"getMore"))}}}_getV4SessionsPatches(){return{v4PatchSessions:t=>((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"))}}}_getV4AcquireCommand(){let t=this;return n=>function(){let i=this.sessions.length,s=n.call(this),o=this.sessions.length;return i===o?t._connCountAdd(1,t._poolName,"used"):i-1===o&&(t._connCountAdd(-1,t._poolName,"idle"),t._connCountAdd(1,t._poolName,"used")),s}}_getV4ReleaseCommand(){let t=this;return n=>function(i){let s=n.call(this,i);return t._connCountAdd(-1,t._poolName,"used"),t._connCountAdd(1,t._poolName,"idle"),s}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:t=>{let n=t.ConnectionPool.prototype;return(0,jn.isWrapped)(n.checkOut)&&this._unwrap(n,"checkOut"),this._wrap(n,"checkOut",this._getV4ConnectionPoolCheckOut()),t},v4UnpatchConnectionPool:t=>{t!==void 0&&this._unwrap(t.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:t=>((0,jn.isWrapped)(t.connect)&&this._unwrap(t,"connect"),this._wrap(t,"connect",this._getV4ConnectCommand()),t),v4UnpatchConnect:t=>{t!==void 0&&this._unwrap(t,"connect")}}}_getV4ConnectionPoolCheckOut(){return t=>function(r){let i=Ki.context.bind(Ki.context.active(),r);return t.call(this,i)}}_getV4ConnectCommand(){let t=this;return n=>function(i,s){if(n.length===1){let a=n.call(this,i);return a&&typeof a.then=="function"&&a.then(()=>t.setPoolName(i),()=>{}),a}let o=function(a,c){if(a||!c){s(a,c);return}t.setPoolName(i),s(a,c)};return n.call(this,i,o)}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandPromise()),t),v4UnpatchConnection:t=>{t!==void 0&&this._unwrap(t.Connection.prototype,"command")}}}_getV3PatchOperation(t){let n=this;return r=>function(s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=n._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof a!="object")return typeof c=="function"?r.call(this,s,o,a,c):r.call(this,s,o,a,c,u);let p=n._getV3SpanAttributes(o,s,a[0],t),h=n._spanNameFromAttrs(p),m=n.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=n._patchEnd(m,f);return typeof c=="function"?r.call(this,s,o,a,g):r.call(this,s,o,a,c,g)}}_getV3PatchCommand(){let t=this;return n=>function(i,s,o,a,c){let u=Ki.trace.getSpan(Ki.context.active()),l=t._checkSkipInstrumentation(u),d=typeof a=="function"?a:c;if(l||typeof d!="function"||typeof o!="object")return typeof a=="function"?n.call(this,i,s,o,a):n.call(this,i,s,o,a,c);let f=e._getCommandType(o),p=f===nb.MongodbCommandType.UNKNOWN?void 0:f,h=t._getV3SpanAttributes(s,i,o,p),m=t._spanNameFromAttrs(h),g=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h}),y=t._patchEnd(g,d);return typeof a=="function"?n.call(this,i,s,o,y):n.call(this,i,s,o,a,y)}}_getV4PatchCommandCallback(){let t=this;return n=>function(i,s,o,a){let c=Ki.trace.getSpan(Ki.context.active()),u=t._checkSkipInstrumentation(c),l=a,d=Object.keys(s)[0];if(typeof s!="object"||s.ismaster||s.hello)return n.call(this,i,s,o,a);let f;if(!u){let h=t._getV4SpanAttributes(this,i,s,d),m=t._spanNameFromAttrs(h);f=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h})}let p=t._patchEnd(f,l,this.id,d);return n.call(this,i,s,o,p)}}_getV4PatchCommandPromise(){let t=this;return n=>function(...i){let[s,o]=i,a=Ki.trace.getSpan(Ki.context.active()),c=t._checkSkipInstrumentation(a),u=Object.keys(o)[0],l=()=>{};if(typeof o!="object"||o.ismaster||o.hello)return n.apply(this,i);let d;if(!c){let h=t._getV4SpanAttributes(this,s,o,u),m=t._spanNameFromAttrs(h);d=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h})}let f=t._patchEnd(d,l,this.id,u),p=n.apply(this,i);return p.then(h=>f(null,h),h=>f(h)),p}}_getV3PatchFind(){let t=this;return n=>function(i,s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=t._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof o!="object")return typeof c=="function"?n.call(this,i,s,o,a,c):n.call(this,i,s,o,a,c,u);let p=t._getV3SpanAttributes(s,i,o,"find"),h=t._spanNameFromAttrs(p),m=t.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=t._patchEnd(m,f);return typeof c=="function"?n.call(this,i,s,o,a,g):n.call(this,i,s,o,a,c,g)}}_getV3PatchCursor(){let t=this;return n=>function(i,s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=t._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function")return typeof c=="function"?n.call(this,i,s,o,a,c):n.call(this,i,s,o,a,c,u);let p=t._getV3SpanAttributes(s,i,o.cmd,"getMore"),h=t._spanNameFromAttrs(p),m=t.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=t._patchEnd(m,f);return typeof c=="function"?n.call(this,i,s,o,a,g):n.call(this,i,s,o,a,c,g)}}static _getCommandType(t){return t.createIndexes!==void 0?nb.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?nb.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?nb.MongodbCommandType.IS_MASTER:t.count!==void 0?nb.MongodbCommandType.COUNT:t.aggregate!==void 0?nb.MongodbCommandType.AGGREGATE:nb.MongodbCommandType.UNKNOWN}_getV4SpanAttributes(t,n,r,i){let s,o;if(t){let c=typeof t.address=="string"?t.address.split(":"):"";c.length===2&&(s=c[0],o=c[1])}let a;return r?.documents&&r.documents[0]?a=r.documents[0]:r?.cursors?a=r.cursors:a=r,this._getSpanAttributes(n.db,n.collection,s,o,a,i)}_getV3SpanAttributes(t,n,r,i){let s,o;if(n&&n.s&&(s=n.s.options?.host??n.s.host,o=(n.s.options?.port??n.s.port)?.toString(),s==null||o==null)){let l=n.description?.address;if(l){let d=l.split(":");s=d[0],o=d[1]}}let[a,c]=t.toString().split("."),u=r?.query??r?.q??r;return this._getSpanAttributes(a,c,s,o,u,i)}_getSpanAttributes(t,n,r,i,s,o){let a={};if(this._dbSemconvStability&jn.SemconvStability.OLD&&(a[pl.ATTR_DB_SYSTEM]=pl.DB_SYSTEM_VALUE_MONGODB,a[pl.ATTR_DB_NAME]=t,a[pl.ATTR_DB_MONGODB_COLLECTION]=n,a[pl.ATTR_DB_OPERATION]=o,a[pl.ATTR_DB_CONNECTION_STRING]=`mongodb://${r}:${i}/${t}`),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Nm.ATTR_DB_SYSTEM_NAME]=pl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Nm.ATTR_DB_NAMESPACE]=t,a[Nm.ATTR_DB_OPERATION_NAME]=o,a[Nm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&jn.SemconvStability.OLD&&(a[pl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[Nm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&jn.SemconvStability.OLD&&(a[pl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[Nm.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,jn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&jn.SemconvStability.OLD&&(a[pl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Nm.ATTR_DB_QUERY_TEXT]=l)},l=>{l&&this._diag.error("Error running dbStatementSerializer hook",l)},!0)}return a}_spanNameFromAttrs(t){let n;return this._dbSemconvStability&jn.SemconvStability.STABLE?n=[t[Nm.ATTR_DB_OPERATION_NAME],t[Nm.ATTR_DB_COLLECTION_NAME]].filter(r=>r).join(" ")||pl.DB_SYSTEM_NAME_VALUE_MONGODB:n=`mongodb.${t[pl.ATTR_DB_OPERATION]||"command"}`,n}_getDefaultDbStatementReplacer(){let t=new WeakSet;return(n,r)=>typeof r!="object"||!r?"?":t.has(r)?"[Circular]":(t.add(r),r)}_defaultDbStatementSerializer(t){let{enhancedDatabaseReporting:n}=this.getConfig();return n?JSON.stringify(t):JSON.stringify(t,this._getDefaultDbStatementReplacer())}_handleExecutionResult(t,n){let{responseHook:r}=this.getConfig();typeof r=="function"&&(0,jn.safeExecuteInTheMiddle)(()=>{r(t,{data:n})},i=>{i&&this._diag.error("Error running response hook",i)},!0)}_patchEnd(t,n,r,i){let s=Ki.context.active(),o=this,a=!1;return function(...u){if(!a){a=!0;let l=u[0];if(t){if(l instanceof Error)t.setStatus({code:Ki.SpanStatusCode.ERROR,message:l.message});else{let d=u[1];o._handleExecutionResult(t,d)}t.end()}i==="endSessions"&&o._connCountAdd(-1,o._poolName,"idle")}return Ki.context.with(s,()=>n.apply(this,u))}}setPoolName(t){let n=t.hostAddress?.host,r=t.hostAddress?.port,i=t.dbName,s=`mongodb://${n}:${r}/${i}`;this._poolName=s}_checkSkipInstrumentation(t){return this.getConfig().requireParentSpan===!0&&t===void 0}};eG.MongoDBInstrumentation=rte});var qGe=w(eN=>{"use strict";Object.defineProperty(eN,"__esModule",{value:!0});eN.MongodbCommandType=void 0;var BQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(BQt=eN.MongodbCommandType||(eN.MongodbCommandType={}))});var BGe=w(KR=>{"use strict";Object.defineProperty(KR,"__esModule",{value:!0});KR.MongodbCommandType=KR.MongoDBInstrumentation=void 0;var GQt=HGe();Object.defineProperty(KR,"MongoDBInstrumentation",{enumerable:!0,get:function(){return GQt.MongoDBInstrumentation}});var zQt=qGe();Object.defineProperty(KR,"MongodbCommandType",{enumerable:!0,get:function(){return zQt.MongodbCommandType}})});function VQt(e){let t=ite(e);return JSON.stringify(t)}function ite(e){if(Array.isArray(e))return e.map(t=>ite(t));if(WQt(e)){let t={};return Object.entries(e).map(([n,r])=>[n,ite(r)]).reduce((n,r)=>(YQt(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function WQt(e){return typeof e=="object"&&e!==null&&!KQt(e)}function KQt(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function YQt(e){return Array.isArray(e)}var GGe,zGe,VGe,ZQt,WGe,KGe=v(()=>{GGe=Se(BGe(),1);sr();zGe="Mongo",VGe=rt(zGe,()=>new GGe.MongoDBInstrumentation({dbStatementSerializer:VQt,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));ZQt=(()=>({name:zGe,setupOnce(){VGe()}})),WGe=ZQt});var ste=w(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.DB_SYSTEM_NAME_VALUE_MONGODB=Ys.ATTR_NET_PEER_PORT=Ys.ATTR_NET_PEER_NAME=Ys.ATTR_DB_USER=Ys.ATTR_DB_SYSTEM=Ys.ATTR_DB_STATEMENT=Ys.ATTR_DB_OPERATION=Ys.ATTR_DB_NAME=Ys.ATTR_DB_MONGODB_COLLECTION=void 0;Ys.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Ys.ATTR_DB_NAME="db.name";Ys.ATTR_DB_OPERATION="db.operation";Ys.ATTR_DB_STATEMENT="db.statement";Ys.ATTR_DB_SYSTEM="db.system";Ys.ATTR_DB_USER="db.user";Ys.ATTR_NET_PEER_NAME="net.peer.name";Ys.ATTR_NET_PEER_PORT="net.peer.port";Ys.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb"});var JGe=w(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0});tS.handleCallbackResponse=tS.handlePromiseResponse=tS.getAttributesFromCollection=void 0;var YGe=(Ce(),ke(Ze)),nN=Jt(),tN=ste(),tG=(Pn(),ke(Mr));function JQt(e,t,n){let r={};return t&nN.SemconvStability.OLD&&(r[tN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[tN.ATTR_DB_NAME]=e.conn.name,r[tN.ATTR_DB_USER]=e.conn.user),t&nN.SemconvStability.STABLE&&(r[tG.ATTR_DB_COLLECTION_NAME]=e.name,r[tG.ATTR_DB_NAMESPACE]=e.conn.name),n&nN.SemconvStability.OLD&&(r[tN.ATTR_NET_PEER_NAME]=e.conn.host,r[tN.ATTR_NET_PEER_PORT]=e.conn.port),n&nN.SemconvStability.STABLE&&(r[tG.ATTR_SERVER_ADDRESS]=e.conn.host,r[tG.ATTR_SERVER_PORT]=e.conn.port),r}tS.getAttributesFromCollection=JQt;function ZGe(e,t={}){e.recordException(t),e.setStatus({code:YGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` +Mongoose Error Code: ${t.code}`:""}`})}function ote(e,t,n,r=void 0){n&&(0,nN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&YGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function XQt(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(ote(t,i,n,r),i)).catch(i=>{throw ZGe(t,i),i}).finally(()=>t.end()):(ote(t,e,n,r),t.end(),e)}tS.handlePromiseResponse=XQt;function QQt(e,t,n,r,i,s,o=void 0){let a=0;return i.length===2?a=1:i.length===3&&(a=2),i[a]=(c,u)=>(c?ZGe(r,c):ote(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}tS.handleCallbackResponse=QQt});var XGe=w(YR=>{"use strict";Object.defineProperty(YR,"__esModule",{value:!0});YR.PACKAGE_NAME=YR.PACKAGE_VERSION=void 0;YR.PACKAGE_VERSION="0.60.0";YR.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var nze=w(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.MongooseInstrumentation=mu._ALREADY_INSTRUMENTED=mu._STORED_PARENT_SPAN=void 0;var _o=(Ce(),ke(Ze)),$Qt=fr(),ate=JGe(),fa=Jt(),QGe=XGe(),nS=ste(),rb=(Pn(),ke(Mr)),nG=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],e$t=["remove","count","findOneAndRemove",...nG],t$t=["count","findOneAndRemove",...nG],n$t=[...nG];function $Ge(e){return e?e.startsWith("6.")||e.startsWith("5.")?e$t:e.startsWith("7.")?t$t:n$t:nG}function eze(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function tze(e){return!e||!e.startsWith("8.")?!1:parseInt(e.split(".")[1],10)>=21}mu._STORED_PARENT_SPAN=Symbol("stored-parent-span");mu._ALREADY_INSTRUMENTED=Symbol("already-instrumented");var cte=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(QGe.PACKAGE_NAME,QGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,fa.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,fa.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new fa.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(t,n){let r=t[Symbol.toStringTag]==="Module"?t.default:t;return this._wrap(r.Model.prototype,"save",this.patchOnModelMethods("save",n)),r.Model.prototype.$save=r.Model.prototype.save,eze(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),tze(n)&&(this._wrap(r.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne",n)),this._wrap(r.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne",n))),this._wrap(r.Query.prototype,"exec",this.patchQueryExec(n)),this._wrap(r.Aggregate.prototype,"exec",this.patchAggregateExec(n)),$Ge(n).forEach(s=>{this._wrap(r.Query.prototype,s,this.patchAndCaptureSpanContext(s))}),this._wrap(r.Model,"aggregate",this.patchModelAggregate()),this._wrap(r.Model,"insertMany",this.patchModelStatic("insertMany",n)),this._wrap(r.Model,"bulkWrite",this.patchModelStatic("bulkWrite",n)),r}unpatch(t,n){let r=t[Symbol.toStringTag]==="Module"?t.default:t,i=$Ge(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,eze(n)&&this._unwrap(r.Model.prototype,"remove"),tze(n)&&(this._unwrap(r.Model.prototype,"updateOne"),this._unwrap(r.Model.prototype,"deleteOne")),this._unwrap(r.Query.prototype,"exec"),this._unwrap(r.Aggregate.prototype,"exec"),i.forEach(s=>{this._unwrap(r.Query.prototype,s)}),this._unwrap(r.Model,"aggregate"),this._unwrap(r.Model,"insertMany"),this._unwrap(r.Model,"bulkWrite")}patchAggregateExec(t){let n=this;return r=>function(s){if(n.getConfig().requireParentSpan&&_o.trace.getSpan(_o.context.active())===void 0)return r.apply(this,arguments);let o=this[mu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c("aggregate",{options:this.options,aggregatePipeline:this._pipeline});n._dbSemconvStability&fa.SemconvStability.OLD&&(a[nS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[rb.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this._model.collection,this._model?.modelName,"aggregate",a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchQueryExec(t){let n=this;return r=>function(s){if(this[mu._ALREADY_INSTRUMENTED])return r.apply(this,arguments);if(n.getConfig().requireParentSpan&&_o.trace.getSpan(_o.context.active())===void 0)return r.apply(this,arguments);let o=this[mu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});n._dbSemconvStability&fa.SemconvStability.OLD&&(a[nS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[rb.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this.mongooseCollection,this.model.modelName,this.op,a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchOnModelMethods(t,n){let r=this;return i=>function(o,a){if(r.getConfig().requireParentSpan&&_o.trace.getSpan(_o.context.active())===void 0)return i.apply(this,arguments);let c={document:this};o&&!(o instanceof Function)&&(c.options=o);let u={},{dbStatementSerializer:l}=r.getConfig();if(l){let f=l(t,c);r._dbSemconvStability&fa.SemconvStability.OLD&&(u[nS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[rb.ATTR_DB_QUERY_TEXT]=f)}let d=r._startSpan(this.constructor.collection,this.constructor.modelName,t,u);return o instanceof Function&&(a=o,o=void 0),r._handleResponse(d,i,this,arguments,a,n)}}_patchDocumentUpdateMethods(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&_o.trace.getSpan(_o.context.active())===void 0)return i.apply(this,arguments);let u=c,l=o,d=a;typeof o=="function"?(u=o,l=void 0,d=void 0):typeof a=="function"&&(u=a,d=void 0);let f={},p=r.getConfig().dbStatementSerializer;if(p){let g=p(t,{condition:{_id:this._id},updates:l,options:d});r._dbSemconvStability&fa.SemconvStability.OLD&&(f[nS.ATTR_DB_STATEMENT]=g),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[rb.ATTR_DB_QUERY_TEXT]=g)}let h=r._startSpan(this.constructor.collection,this.constructor.modelName,t,f),m=r._handleResponse(h,i,this,arguments,u,n);return m&&typeof m=="object"&&(m[mu._ALREADY_INSTRUMENTED]=!0),m}}patchModelStatic(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&_o.trace.getSpan(_o.context.active())===void 0)return i.apply(this,arguments);typeof a=="function"&&(c=a,a=void 0);let u={};switch(t){case"insertMany":u.documents=o;break;case"bulkWrite":u.operations=o;break;default:u.document=o;break}a!==void 0&&(u.options=a);let l={},{dbStatementSerializer:d}=r.getConfig();if(d){let p=d(t,u);r._dbSemconvStability&fa.SemconvStability.OLD&&(l[nS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[rb.ATTR_DB_QUERY_TEXT]=p)}let f=r._startSpan(this.collection,this.modelName,t,l);return r._handleResponse(f,i,this,arguments,c,n)}}patchModelAggregate(){let t=this;return n=>function(){let i=_o.trace.getSpan(_o.context.active()),s=t._callOriginalFunction(()=>n.apply(this,arguments));return s&&(s[mu._STORED_PARENT_SPAN]=i),s}}patchAndCaptureSpanContext(t){let n=this;return r=>function(){return this[mu._STORED_PARENT_SPAN]=_o.trace.getSpan(_o.context.active()),n._callOriginalFunction(()=>r.apply(this,arguments))}}_startSpan(t,n,r,i,s){let o={...i,...(0,ate.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[nS.ATTR_DB_OPERATION]=r,o[nS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[rb.ATTR_DB_OPERATION_NAME]=r,o[rb.ATTR_DB_SYSTEM_NAME]=nS.DB_SYSTEM_NAME_VALUE_MONGODB);let a=this._dbSemconvStability&fa.SemconvStability.STABLE?`${r} ${t.name}`:`mongoose.${n}.${r}`;return this.tracer.startSpan(a,{kind:_o.SpanKind.CLIENT,attributes:o},s?_o.trace.setSpan(_o.context.active(),s):void 0)}_handleResponse(t,n,r,i,s,o=void 0){let a=this;if(s instanceof Function)return a._callOriginalFunction(()=>(0,ate.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,ate.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?_o.context.with((0,$Qt.suppressTracing)(_o.context.active()),t):t()}};mu.MongooseInstrumentation=cte});var rze=w(rG=>{"use strict";Object.defineProperty(rG,"__esModule",{value:!0});rG.MongooseInstrumentation=void 0;var r$t=nze();Object.defineProperty(rG,"MongooseInstrumentation",{enumerable:!0,get:function(){return r$t.MongooseInstrumentation}})});var ize,sze,oze,i$t,aze,cze=v(()=>{ize=Se(rze(),1);sr();sze="Mongoose",oze=rt(sze,()=>new ize.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),i$t=(()=>({name:sze,setupOnce(){oze()}})),aze=i$t});var uze=w(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Zs.DB_SYSTEM_VALUE_MYSQL=Zs.ATTR_NET_PEER_PORT=Zs.ATTR_NET_PEER_NAME=Zs.ATTR_DB_USER=Zs.ATTR_DB_SYSTEM=Zs.ATTR_DB_STATEMENT=Zs.ATTR_DB_NAME=Zs.ATTR_DB_CONNECTION_STRING=void 0;Zs.ATTR_DB_CONNECTION_STRING="db.connection_string";Zs.ATTR_DB_NAME="db.name";Zs.ATTR_DB_STATEMENT="db.statement";Zs.ATTR_DB_SYSTEM="db.system";Zs.ATTR_DB_USER="db.user";Zs.ATTR_NET_PEER_NAME="net.peer.name";Zs.ATTR_NET_PEER_PORT="net.peer.port";Zs.DB_SYSTEM_VALUE_MYSQL="mysql";Zs.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var lze=w(rN=>{"use strict";Object.defineProperty(rN,"__esModule",{value:!0});rN.AttributeNames=void 0;var s$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(s$t=rN.AttributeNames||(rN.AttributeNames={}))});var dze=w(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.getPoolNameOld=Qa.arrayStringifyHelper=Qa.getSpanName=Qa.getDbValues=Qa.getDbQueryText=Qa.getJDBCString=Qa.getConfig=void 0;function o$t(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}Qa.getConfig=o$t;function a$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}Qa.getJDBCString=a$t;function c$t(e){return typeof e=="string"?e:e.sql}Qa.getDbQueryText=c$t;function u$t(e,t){return ute(typeof e=="string"?t:t||e.values)}Qa.getDbValues=u$t;function l$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}Qa.getSpanName=l$t;function ute(e){return e?`[${e.toString()}]`:""}Qa.arrayStringifyHelper=ute;function d$t(e){let t=e.config.connectionConfig,n="";return n+=t.host?`host: '${t.host}', `:"",n+=t.port?`port: ${t.port}, `:"",n+=t.database?`database: '${t.database}', `:"",n+=t.user?`user: '${t.user}'`:"",t.user||(n=n.substring(0,n.length-2)),n.trim()}Qa.getPoolNameOld=d$t});var fze=w(ZR=>{"use strict";Object.defineProperty(ZR,"__esModule",{value:!0});ZR.PACKAGE_NAME=ZR.PACKAGE_VERSION=void 0;ZR.PACKAGE_VERSION="0.60.0";ZR.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var hze=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.MySQLInstrumentation=void 0;var gu=(Ce(),ke(Ze)),ed=Jt(),JR=(Pn(),ke(Mr)),Cm=uze(),f$t=lze(),ib=dze(),pze=fze(),lte=class extends ed.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(pze.PACKAGE_NAME,pze.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,ed.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,ed.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Cm.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsageOld?.add(t,{state:r,name:n})}init(){return[new ed.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,ed.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,ed.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,ed.isWrapped)(t.createPoolCluster)&&this._unwrap(t,"createPoolCluster"),this._wrap(t,"createPoolCluster",this._patchCreatePoolCluster()),t),t=>{t!==void 0&&(this._unwrap(t,"createConnection"),this._unwrap(t,"createPool"),this._unwrap(t,"createPoolCluster"))})]}_patchCreateConnection(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),s}}}_patchCreatePool(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"end",n._patchPoolEnd(s)),n._setPoolCallbacks(s,""),s}}}_patchPoolEnd(t){return n=>{let r=this;return function(s){let o=t._allConnections.length,a=t._freeConnections.length,c=o-a,u=(0,ib.getPoolNameOld)(t);r._connCountAdd(-c,u,"used"),r._connCountAdd(-a,u,"idle"),n.apply(t,arguments)}}}_patchCreatePoolCluster(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"add",n._patchAdd(s)),s}}}_patchAdd(t){return n=>{let r=this;return function(s,o){if(!r._enabled)return r._unwrap(t,"add"),n.apply(t,arguments);n.apply(t,arguments);let a=t._nodes;if(a){let c=typeof s=="object"?"CLUSTER::"+t._lastId:String(s),u=a[c].pool;r._setPoolCallbacks(u,s)}}}}_patchGetConnection(t){return n=>{let r=this;return function(s,o,a){if(!r._enabled)return r._unwrap(t,"getConnection"),n.apply(t,arguments);if(arguments.length===1&&typeof s=="function"){let c=r._getConnectionCallbackPatchFn(s);return n.call(t,c)}if(arguments.length===2&&typeof o=="function"){let c=r._getConnectionCallbackPatchFn(o);return n.call(t,s,c)}if(arguments.length===3&&typeof a=="function"){let c=r._getConnectionCallbackPatchFn(a);return n.call(t,s,o,c)}return n.apply(t,arguments)}}}_getConnectionCallbackPatchFn(t){let n=this,r=gu.context.active();return function(i,s){s&&((0,ed.isWrapped)(s.query)||n._wrap(s,"query",n._patchQuery(s))),typeof t=="function"&&gu.context.with(r,t,this,i,s)}}_patchQuery(t){return n=>{let r=this;return function(i,s,o){if(!r._enabled)return r._unwrap(t,"query"),n.apply(t,arguments);let a={},{host:c,port:u,database:l,user:d}=(0,ib.getConfig)(t.config),f=parseInt(u,10),p=(0,ib.getDbQueryText)(i);r._dbSemconvStability&ed.SemconvStability.OLD&&(a[Cm.ATTR_DB_SYSTEM]=Cm.DB_SYSTEM_VALUE_MYSQL,a[Cm.ATTR_DB_CONNECTION_STRING]=(0,ib.getJDBCString)(c,u,l),a[Cm.ATTR_DB_NAME]=l,a[Cm.ATTR_DB_USER]=d,a[Cm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&ed.SemconvStability.STABLE&&(a[JR.ATTR_DB_SYSTEM_NAME]=JR.DB_SYSTEM_NAME_VALUE_MYSQL,a[JR.ATTR_DB_NAMESPACE]=l,a[JR.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&ed.SemconvStability.OLD&&(a[Cm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Cm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&ed.SemconvStability.STABLE&&(a[JR.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[JR.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,ib.getSpanName)(i),{kind:gu.SpanKind.CLIENT,attributes:a});if(r.getConfig().enhancedDatabaseReporting){let y;Array.isArray(s)?y=s:arguments[2]&&(y=[s]),h.setAttribute(f$t.AttributeNames.MYSQL_VALUES,(0,ib.getDbValues)(i,y))}let m=Array.from(arguments).findIndex(y=>typeof y=="function"),g=gu.context.active();if(m===-1){let y=gu.context.with(gu.trace.setSpan(gu.context.active(),h),()=>n.apply(t,arguments));return gu.context.bind(g,y),y.on("error",E=>h.setStatus({code:gu.SpanStatusCode.ERROR,message:E.message})).on("end",()=>{h.end()})}else return r._wrap(arguments,m,r._patchCallbackQuery(h,g)),gu.context.with(gu.trace.setSpan(gu.context.active(),h),()=>n.apply(t,arguments))}}}_patchCallbackQuery(t,n){return r=>function(i,s,o){return i&&t.setStatus({code:gu.SpanStatusCode.ERROR,message:i.message}),t.end(),gu.context.with(n,()=>r(...arguments))}}_setPoolCallbacks(t,n){let r=n||(0,ib.getPoolNameOld)(t);t.on("connection",i=>{this._connCountAdd(1,r,"idle")}),t.on("acquire",i=>{this._connCountAdd(-1,r,"idle"),this._connCountAdd(1,r,"used")}),t.on("release",i=>{this._connCountAdd(1,r,"idle"),this._connCountAdd(-1,r,"used")})}};iG.MySQLInstrumentation=lte});var mze=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.MySQLInstrumentation=void 0;var p$t=hze();Object.defineProperty(sG,"MySQLInstrumentation",{enumerable:!0,get:function(){return p$t.MySQLInstrumentation}})});var gze,yze,Sze,h$t,Eze,_ze=v(()=>{gze=Se(mze(),1);sr();yze="Mysql",Sze=rt(yze,()=>new gze.MySQLInstrumentation({})),h$t=(()=>({name:yze,setupOnce(){Sze()}})),Eze=h$t});var dte=w(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.DB_SYSTEM_VALUE_MYSQL=qo.ATTR_NET_PEER_PORT=qo.ATTR_NET_PEER_NAME=qo.ATTR_DB_USER=qo.ATTR_DB_SYSTEM=qo.ATTR_DB_STATEMENT=qo.ATTR_DB_NAME=qo.ATTR_DB_CONNECTION_STRING=void 0;qo.ATTR_DB_CONNECTION_STRING="db.connection_string";qo.ATTR_DB_NAME="db.name";qo.ATTR_DB_STATEMENT="db.statement";qo.ATTR_DB_SYSTEM="db.system";qo.ATTR_DB_USER="db.user";qo.ATTR_NET_PEER_NAME="net.peer.name";qo.ATTR_NET_PEER_PORT="net.peer.port";qo.DB_SYSTEM_VALUE_MYSQL="mysql"});var pte=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.addSqlCommenterComment=void 0;var fte=(Ce(),ke(Ze)),m$t=fr();function g$t(e){let t=e.indexOf("--");if(t>=0)return!0;if(e.indexOf("/*")<0)return!1;let r=e.indexOf("*/");return t`%${t.charCodeAt(0).toString(16).toUpperCase()}`)}function S$t(e,t){if(typeof t!="string"||t.length===0||g$t(t))return t;let n=new m$t.W3CTraceContextPropagator,r={};n.inject(fte.trace.setSpan(fte.ROOT_CONTEXT,e),r,fte.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=y$t(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}oG.addSqlCommenterComment=S$t});var bze=w(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});td.getConnectionPrototypeToInstrument=td.once=td.getSpanName=td.getQueryText=td.getConnectionAttributes=void 0;var iN=dte(),aG=Jt(),hte=(Pn(),ke(Mr));function E$t(e,t,n){let{host:r,port:i,database:s,user:o}=_$t(e),a={};t&aG.SemconvStability.OLD&&(a[iN.ATTR_DB_CONNECTION_STRING]=b$t(r,i,s),a[iN.ATTR_DB_NAME]=s,a[iN.ATTR_DB_USER]=o),t&aG.SemconvStability.STABLE&&(a[hte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&aG.SemconvStability.OLD&&(a[iN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[iN.ATTR_NET_PEER_PORT]=c)),n&aG.SemconvStability.STABLE&&(a[hte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[hte.ATTR_SERVER_PORT]=c)),a}td.getConnectionAttributes=E$t;function _$t(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}function b$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function T$t(e,t,n,r=!1,i=v$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,A$t(e)?n||e.values:n];try{return r?i(s):t&&o?t(s,o):s}catch{return"Could not determine the query due to an error in masking or formatting"}}td.getQueryText=T$t;function v$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function A$t(e){return"values"in e}function R$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}td.getSpanName=R$t;var w$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};td.once=w$t;function k$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}td.getConnectionPrototypeToInstrument=k$t});var Tze=w(XR=>{"use strict";Object.defineProperty(XR,"__esModule",{value:!0});XR.PACKAGE_NAME=XR.PACKAGE_VERSION=void 0;XR.PACKAGE_VERSION="0.60.0";XR.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var wze=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.MySQL2Instrumentation=void 0;var vze=(Ce(),ke(Ze)),pf=Jt(),mte=dte(),Aze=pte(),QR=bze(),Rze=Tze(),gte=(Pn(),ke(Mr)),yte=[">=1.4.2 <4"],Ste=class extends pf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Rze.PACKAGE_NAME,Rze.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,pf.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,pf.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let t;function n(s){!t&&s.format&&(t=s.format)}let r=s=>{(0,pf.isWrapped)(s.query)&&this._unwrap(s,"query"),this._wrap(s,"query",this._patchQuery(t,!1)),(0,pf.isWrapped)(s.execute)&&this._unwrap(s,"execute"),this._wrap(s,"execute",this._patchQuery(t,!0))},i=s=>{this._unwrap(s,"query"),this._unwrap(s,"execute")};return[new pf.InstrumentationNodeModuleDefinition("mysql2",yte,s=>(n(s),s),()=>{},[new pf.InstrumentationNodeModuleFile("mysql2/promise.js",yte,s=>(n(s),s),()=>{}),new pf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",yte,s=>{let o=(0,QR.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,QR.getConnectionPrototypeToInstrument)(s);i(o)})])]}_patchQuery(t,n){return r=>{let i=this;return function(s,o,a){let c;Array.isArray(o)?c=o:arguments[2]&&(c=[o]);let{maskStatement:u,maskStatementHook:l,responseHook:d}=i.getConfig(),f=(0,QR.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,QR.getQueryText)(s,t,c,u,l);i._dbSemconvStability&pf.SemconvStability.OLD&&(f[mte.ATTR_DB_SYSTEM]=mte.DB_SYSTEM_VALUE_MYSQL,f[mte.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&pf.SemconvStability.STABLE&&(f[gte.ATTR_DB_SYSTEM_NAME]=gte.DB_SYSTEM_NAME_VALUE_MYSQL,f[gte.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,QR.getSpanName)(s),{kind:vze.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,Aze.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,Aze.addSqlCommenterComment)(h,s.sql)}));let m=(0,QR.once)((g,y)=>{g?h.setStatus({code:vze.SpanStatusCode.ERROR,message:g.message}):typeof d=="function"&&(0,pf.safeExecuteInTheMiddle)(()=>{d(h,{queryResults:y})},E=>{E&&i._diag.warn("Failed executing responseHook",E)},!0),h.end()});if(arguments.length===1){typeof s.onResult=="function"&&i._wrap(s,"onResult",i._patchCallbackQuery(m));let g=r.apply(this,arguments);return g.once("error",y=>{m(y)}).once("result",y=>{m(void 0,y)}),g}return typeof arguments[1]=="function"?i._wrap(arguments,1,i._patchCallbackQuery(m)):typeof arguments[2]=="function"&&i._wrap(arguments,2,i._patchCallbackQuery(m)),r.apply(this,arguments)}}}_patchCallbackQuery(t){return n=>function(r,i,s){return t(r,i),n(...arguments)}}};cG.MySQL2Instrumentation=Ste});var kze=w(uG=>{"use strict";Object.defineProperty(uG,"__esModule",{value:!0});uG.MySQL2Instrumentation=void 0;var I$t=wze();Object.defineProperty(uG,"MySQL2Instrumentation",{enumerable:!0,get:function(){return I$t.MySQL2Instrumentation}})});var Ize,xze,Oze,x$t,Pze,Nze=v(()=>{Ize=Se(kze(),1);sr();xze="Mysql2",Oze=rt(xze,()=>new Ize.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),x$t=(()=>({name:xze,setupOnce(){Oze()}})),Pze=x$t});var Cze=w($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.DB_SYSTEM_VALUE_REDIS=$a.DB_SYSTEM_NAME_VALUE_REDIS=$a.ATTR_NET_PEER_PORT=$a.ATTR_NET_PEER_NAME=$a.ATTR_DB_SYSTEM=$a.ATTR_DB_STATEMENT=$a.ATTR_DB_CONNECTION_STRING=void 0;$a.ATTR_DB_CONNECTION_STRING="db.connection_string";$a.ATTR_DB_STATEMENT="db.statement";$a.ATTR_DB_SYSTEM="db.system";$a.ATTR_NET_PEER_NAME="net.peer.name";$a.ATTR_NET_PEER_PORT="net.peer.port";$a.DB_SYSTEM_NAME_VALUE_REDIS="redis";$a.DB_SYSTEM_VALUE_REDIS="redis"});var Mze=w(lG=>{"use strict";Object.defineProperty(lG,"__esModule",{value:!0});lG.endSpan=void 0;var O$t=(Ce(),ke(Ze)),P$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:O$t.SpanStatusCode.ERROR,message:t.message})),e.end()};lG.endSpan=P$t});var fG=w(dG=>{"use strict";Object.defineProperty(dG,"__esModule",{value:!0});dG.defaultDbStatementSerializer=void 0;var N$t=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],C$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=N$t.find(({regex:i})=>i.test(e))?.args??0,r=n>=0?t.slice(0,n):t;return t.length>r.length&&r.push(`[${t.length-n} other arguments]`),`${e} ${r.join(" ")}`}return e};dG.defaultDbStatementSerializer=C$t});var Dze=w($R=>{"use strict";Object.defineProperty($R,"__esModule",{value:!0});$R.PACKAGE_NAME=$R.PACKAGE_VERSION=void 0;$R.PACKAGE_VERSION="0.62.0";$R.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var jze=w(pG=>{"use strict";Object.defineProperty(pG,"__esModule",{value:!0});pG.IORedisInstrumentation=void 0;var rS=(Ce(),ke(Ze)),yu=Jt(),iS=(Pn(),ke(Mr)),Su=Cze(),Lze=Jt(),sN=Mze(),M$t=fG(),Uze=Dze(),Fze={requireParentSpan:!0},Ete=class extends yu.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Uze.PACKAGE_NAME,Uze.PACKAGE_VERSION,{...Fze,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,yu.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,yu.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Fze,...t})}init(){return[new yu.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(t,n)=>{let r=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,yu.isWrapped)(r.prototype.sendCommand)&&this._unwrap(r.prototype,"sendCommand"),this._wrap(r.prototype,"sendCommand",this._patchSendCommand(n)),(0,yu.isWrapped)(r.prototype.connect)&&this._unwrap(r.prototype,"connect"),this._wrap(r.prototype,"connect",this._patchConnection()),t},t=>{if(t===void 0)return;let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._unwrap(n.prototype,"sendCommand"),this._unwrap(n.prototype,"connect")})]}_patchSendCommand(t){return n=>this._traceSendCommand(n,t)}_patchConnection(){return t=>this._traceConnection(t)}_traceSendCommand(t,n){let r=this;return function(i){if(arguments.length<1||typeof i!="object")return t.apply(this,arguments);let s=r.getConfig(),o=s.dbStatementSerializer||M$t.defaultDbStatementSerializer,a=rS.trace.getSpan(rS.context.active())===void 0;if(s.requireParentSpan===!0&&a)return t.apply(this,arguments);let c={},{host:u,port:l}=this.options,d=o(i.name,i.args);r._dbSemconvStability&yu.SemconvStability.OLD&&(c[Su.ATTR_DB_SYSTEM]=Su.DB_SYSTEM_VALUE_REDIS,c[Su.ATTR_DB_STATEMENT]=d,c[Su.ATTR_DB_CONNECTION_STRING]=`redis://${u}:${l}`),r._dbSemconvStability&yu.SemconvStability.STABLE&&(c[iS.ATTR_DB_SYSTEM_NAME]=Su.DB_SYSTEM_NAME_VALUE_REDIS,c[iS.ATTR_DB_QUERY_TEXT]=d),r._netSemconvStability&yu.SemconvStability.OLD&&(c[Su.ATTR_NET_PEER_NAME]=u,c[Su.ATTR_NET_PEER_PORT]=l),r._netSemconvStability&yu.SemconvStability.STABLE&&(c[iS.ATTR_SERVER_ADDRESS]=u,c[iS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:rS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,Lze.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&rS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(y){(0,Lze.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,y),E=>{E&&rS.diag.error("ioredis instrumentation: response hook failed",E)},!0),(0,sN.endSpan)(f,null),m(y)};let g=i.reject;return i.reject=function(y){(0,sN.endSpan)(f,y),g(y)},h}catch(h){throw(0,sN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=rS.trace.getSpan(rS.context.active())===void 0;if(n.getConfig().requireParentSpan===!0&&r)return t.apply(this,arguments);let i={},{host:s,port:o}=this.options;n._dbSemconvStability&yu.SemconvStability.OLD&&(i[Su.ATTR_DB_SYSTEM]=Su.DB_SYSTEM_VALUE_REDIS,i[Su.ATTR_DB_STATEMENT]="connect",i[Su.ATTR_DB_CONNECTION_STRING]=`redis://${s}:${o}`),n._dbSemconvStability&yu.SemconvStability.STABLE&&(i[iS.ATTR_DB_SYSTEM_NAME]=Su.DB_SYSTEM_NAME_VALUE_REDIS,i[iS.ATTR_DB_QUERY_TEXT]="connect"),n._netSemconvStability&yu.SemconvStability.OLD&&(i[Su.ATTR_NET_PEER_NAME]=s,i[Su.ATTR_NET_PEER_PORT]=o),n._netSemconvStability&yu.SemconvStability.STABLE&&(i[iS.ATTR_SERVER_ADDRESS]=s,i[iS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:rS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,sN.endSpan)(a,null),c}catch(c){throw(0,sN.endSpan)(a,c),c}}}};pG.IORedisInstrumentation=Ete});var Hze=w(hG=>{"use strict";Object.defineProperty(hG,"__esModule",{value:!0});hG.IORedisInstrumentation=void 0;var D$t=jze();Object.defineProperty(hG,"IORedisInstrumentation",{enumerable:!0,get:function(){return D$t.IORedisInstrumentation}})});var mG=w(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.PACKAGE_NAME=ew.PACKAGE_VERSION=void 0;ew.PACKAGE_VERSION="0.62.0";ew.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var qze=w(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0});sS.getTracedCreateStreamTrace=sS.getTracedCreateClient=sS.endSpan=void 0;var oN=(Ce(),ke(Ze)),L$t=(e,t)=>{t&&e.setStatus({code:oN.SpanStatusCode.ERROR,message:t.message}),e.end()};sS.endSpan=L$t;var U$t=e=>function(){let n=e.apply(this,arguments);return oN.context.bind(oN.context.active(),n)};sS.getTracedCreateClient=U$t;var F$t=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){oN.context.bind(oN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};sS.getTracedCreateStreamTrace=F$t});var gG=w(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});ec.DB_SYSTEM_VALUE_REDIS=ec.DB_SYSTEM_NAME_VALUE_REDIS=ec.ATTR_NET_PEER_PORT=ec.ATTR_NET_PEER_NAME=ec.ATTR_DB_SYSTEM=ec.ATTR_DB_STATEMENT=ec.ATTR_DB_CONNECTION_STRING=void 0;ec.ATTR_DB_CONNECTION_STRING="db.connection_string";ec.ATTR_DB_STATEMENT="db.statement";ec.ATTR_DB_SYSTEM="db.system";ec.ATTR_NET_PEER_NAME="net.peer.name";ec.ATTR_NET_PEER_PORT="net.peer.port";ec.DB_SYSTEM_NAME_VALUE_REDIS="redis";ec.DB_SYSTEM_VALUE_REDIS="redis"});var Gze=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.RedisInstrumentationV2_V3=void 0;var hl=Jt(),yG=qze(),Bze=mG(),aN=(Ce(),ke(Ze)),cN=(Pn(),ke(Mr)),sb=gG(),j$t=fG(),_te=class e extends hl.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(Bze.PACKAGE_NAME,Bze.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,hl.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,hl.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new hl.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],t=>((0,hl.isWrapped)(t.RedisClient.prototype.internal_send_command)&&this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._wrap(t.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,hl.isWrapped)(t.RedisClient.prototype.create_stream)&&this._unwrap(t.RedisClient.prototype,"create_stream"),this._wrap(t.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,hl.isWrapped)(t.createClient)&&this._unwrap(t,"createClient"),this._wrap(t,"createClient",this._getPatchCreateClient()),t),t=>{t!==void 0&&(this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._unwrap(t.RedisClient.prototype,"create_stream"),this._unwrap(t,"createClient"))})]}_getPatchInternalSendCommand(){let t=this;return function(r){return function(s){if(arguments.length!==1||typeof s!="object")return r.apply(this,arguments);let o=t.getConfig(),a=aN.trace.getSpan(aN.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||j$t.defaultDbStatementSerializer,u={};t._semconvStability&hl.SemconvStability.OLD&&Object.assign(u,{[sb.ATTR_DB_SYSTEM]:sb.DB_SYSTEM_VALUE_REDIS,[sb.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&hl.SemconvStability.STABLE&&Object.assign(u,{[cN.ATTR_DB_SYSTEM_NAME]:sb.DB_SYSTEM_NAME_VALUE_REDIS,[cN.ATTR_DB_OPERATION_NAME]:s.command,[cN.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:aN.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&hl.SemconvStability.OLD&&Object.assign(f,{[sb.ATTR_NET_PEER_NAME]:this.connection_options.host,[sb.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&hl.SemconvStability.STABLE&&Object.assign(f,{[cN.ATTR_SERVER_ADDRESS]:this.connection_options.host,[cN.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&hl.SemconvStability.OLD&&l.setAttribute(sb.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=aN.context.active();arguments[0].callback=function(h,m){if(o?.responseHook){let g=o.responseHook;(0,hl.safeExecuteInTheMiddle)(()=>{g(l,s.command,s.args,m)},y=>{y&&t._diag.error("Error executing responseHook",y)},!0)}return(0,yG.endSpan)(l,h),aN.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,yG.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,yG.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,yG.getTracedCreateStreamTrace)(n)}}};SG.RedisInstrumentationV2_V3=_te});var Vze=w(EG=>{"use strict";Object.defineProperty(EG,"__esModule",{value:!0});EG.getClientAttributes=void 0;var bte=(Pn(),ke(Mr)),tw=gG(),zze=Jt();function H$t(e,t,n){let r={};return n&zze.SemconvStability.OLD&&Object.assign(r,{[tw.ATTR_DB_SYSTEM]:tw.DB_SYSTEM_VALUE_REDIS,[tw.ATTR_NET_PEER_NAME]:t?.socket?.host,[tw.ATTR_NET_PEER_PORT]:t?.socket?.port,[tw.ATTR_DB_CONNECTION_STRING]:q$t(e,t?.url)}),n&zze.SemconvStability.STABLE&&Object.assign(r,{[bte.ATTR_DB_SYSTEM_NAME]:tw.DB_SYSTEM_NAME_VALUE_REDIS,[bte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[bte.ATTR_SERVER_PORT]:t?.socket?.port}),r}EG.getClientAttributes=H$t;function q$t(e,t){if(!(typeof t!="string"||!t))try{let n=new URL(t);return n.searchParams.delete("user_pwd"),n.username="",n.password="",n.href}catch(n){e.error("failed to sanitize redis connection url",n)}}});var Zze=w(_G=>{"use strict";Object.defineProperty(_G,"__esModule",{value:!0});_G.RedisInstrumentationV4_V5=void 0;var nd=(Ce(),ke(Ze)),pi=Jt(),Wze=Vze(),B$t=fG(),Kze=mG(),Tte=(Pn(),ke(Mr)),G$t=gG(),uN=Symbol("opentelemetry.instrumentation.redis.open_spans"),Yze=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),vte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(Kze.PACKAGE_NAME,Kze.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,pi.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,pi.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(t){let n=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/commander.js`,["^1.0.0"],(s,o)=>{let a=s.transformCommandArguments;if(!a)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),s;let c=o?.startsWith("1.0.")?"extendWithCommands":"attachCommands";return(0,pi.isWrapped)(s?.[c])&&this._unwrap(s,c),this._wrap(s,c,this._getPatchExtendWithCommands(a)),s},s=>{(0,pi.isWrapped)(s?.extendWithCommands)&&this._unwrap(s,"extendWithCommands"),(0,pi.isWrapped)(s?.attachCommands)&&this._unwrap(s,"attachCommands")}),r=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/client/multi-command.js`,["^1.0.0","^5.0.0"],s=>{let o=s?.default?.prototype;return(0,pi.isWrapped)(o?.exec)&&this._unwrap(o,"exec"),this._wrap(o,"exec",this._getPatchMultiCommandsExec(!1)),(0,pi.isWrapped)(o?.execAsPipeline)&&this._unwrap(o,"execAsPipeline"),this._wrap(o,"execAsPipeline",this._getPatchMultiCommandsExec(!0)),(0,pi.isWrapped)(o?.addCommand)&&this._unwrap(o,"addCommand"),this._wrap(o,"addCommand",this._getPatchMultiCommandsAddCommand()),s},s=>{let o=s?.default?.prototype;(0,pi.isWrapped)(o?.exec)&&this._unwrap(o,"exec"),(0,pi.isWrapped)(o?.addCommand)&&this._unwrap(o,"addCommand")}),i=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/client/index.js`,["^1.0.0","^5.0.0"],s=>{let o=s?.default?.prototype;return o?.multi&&((0,pi.isWrapped)(o?.multi)&&this._unwrap(o,"multi"),this._wrap(o,"multi",this._getPatchRedisClientMulti())),o?.MULTI&&((0,pi.isWrapped)(o?.MULTI)&&this._unwrap(o,"MULTI"),this._wrap(o,"MULTI",this._getPatchRedisClientMulti())),(0,pi.isWrapped)(o?.sendCommand)&&this._unwrap(o,"sendCommand"),this._wrap(o,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(o,"connect",this._getPatchedClientConnect()),s},s=>{let o=s?.default?.prototype;(0,pi.isWrapped)(o?.multi)&&this._unwrap(o,"multi"),(0,pi.isWrapped)(o?.MULTI)&&this._unwrap(o,"MULTI"),(0,pi.isWrapped)(o?.sendCommand)&&this._unwrap(o,"sendCommand")});return new pi.InstrumentationNodeModuleDefinition(t,["^1.0.0","^5.0.0"],s=>s,()=>{},[n,r,i])}_getPatchExtendWithCommands(t){let n=this;return function(i){return function(o){if(o?.BaseClass?.name!=="RedisClient")return i.apply(this,arguments);let a=o.executor;return o.executor=function(c,u){let l=t(c,u).args;return n._traceClientCommand(a,this,arguments,l)},i.apply(this,arguments)}}}_getPatchMultiCommandsExec(t){let n=this;return function(i){return function(){let o=i.apply(this,arguments);return typeof o?.then!="function"?(n._diag.error("non-promise result when patching exec/execAsPipeline"),o):o.then(a=>{let c=this[uN];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[uN];if(!c)n._diag.error("cannot find open spans to end for multi/pipeline");else{let u=a.constructor.name==="MultiErrorReply"?a.replies:new Array(c.length).fill(a);n._endSpansWithRedisReplies(c,u,t)}return Promise.reject(a)})}}}_getPatchMultiCommandsAddCommand(){let t=this;return function(r){return function(s){return t._traceClientCommand(r,this,arguments,s)}}}_getPatchRedisClientMulti(){return function(n){return function(){let i=n.apply(this,arguments);return i[Yze]=this.options,i}}}_getPatchRedisClientSendCommand(){let t=this;return function(r){return function(s){return t._traceClientCommand(r,this,arguments,s)}}}_getPatchedClientConnect(){let t=this;return function(r){return function(){let s=this.options,o=(0,Wze.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:nd.SpanKind.CLIENT,attributes:o});return nd.context.with(nd.trace.setSpan(nd.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:nd.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(nd.trace.getSpan(nd.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[Yze],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||B$t.defaultDbStatementSerializer,l=(0,Wze.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Tte.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[G$t.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Tte.ATTR_DB_QUERY_TEXT]=p))}catch(p){this._diag.error("dbStatementSerializer throw an exception",p,{commandName:a})}let d=this.tracer.startSpan(`${e.COMPONENT}-${a}`,{kind:nd.SpanKind.CLIENT,attributes:l}),f=nd.context.with(nd.trace.setSpan(nd.context.active(),d),()=>t.apply(n,r));if(typeof f?.then=="function")f.then(p=>{this._endSpanWithResponse(d,a,c,p,void 0)},p=>{this._endSpanWithResponse(d,a,c,null,p)});else{let p=f;p[uN]=p[uN]||[],p[uN].push({span:d,commandName:a,commandArgs:c})}return f}_endSpansWithRedisReplies(t,n,r=!1){if(!t)return this._diag.error("cannot find open spans to end for redis multi/pipeline");if(n.length!==t.length)return this._diag.error("number of multi command spans does not match response from redis");let i=t.map(a=>a.commandName),o=i.every(a=>a===i[0])?(r?"PIPELINE ":"MULTI ")+i[0]:r?"PIPELINE":"MULTI";for(let a=0;a{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG.RedisInstrumentation=void 0;var z$t=Jt(),Jze=mG(),V$t=Gze(),W$t=Zze(),Xze={requireParentSpan:!1},Ate=class extends z$t.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...Xze,...t};super(Jze.PACKAGE_NAME,Jze.PACKAGE_VERSION,n),this.instrumentationV2_V3=new V$t.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new W$t.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...Xze,...t};super.setConfig(n),this.initialized&&(this.instrumentationV2_V3.setConfig(n),this.instrumentationV4_V5.setConfig(n))}init(){}getModuleDefinitions(){return[...this.instrumentationV2_V3.getModuleDefinitions(),...this.instrumentationV4_V5.getModuleDefinitions()]}setTracerProvider(t){super.setTracerProvider(t),this.initialized&&(this.instrumentationV2_V3.setTracerProvider(t),this.instrumentationV4_V5.setTracerProvider(t))}enable(){super.enable(),this.initialized&&(this.instrumentationV2_V3.enable(),this.instrumentationV4_V5.enable())}disable(){super.disable(),this.initialized&&(this.instrumentationV2_V3.disable(),this.instrumentationV4_V5.disable())}};bG.RedisInstrumentation=Ate});var $ze=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG.RedisInstrumentation=void 0;var K$t=Qze();Object.defineProperty(TG,"RedisInstrumentation",{enumerable:!0,get:function(){return K$t.RedisInstrumentation}})});function lN(e,t){return e.includes(t.toLowerCase())}function wte(e){return lN(Rte,e)?"cache.get":lN(Z$t,e)?"cache.put":void 0}function J$t(e,t){return t.some(n=>e.startsWith(n))}function tVe(e,t){try{if(t.length===0)return;let n=i=>typeof i=="string"||typeof i=="number"||Buffer.isBuffer(i)?[i.toString()]:Array.isArray(i)?eVe(i.map(s=>n(s))):[""],r=t[0];return lN(Y$t,e)&&r!=null?n(r):eVe(t.map(i=>n(i)))}catch{return}}function nVe(e,t,n){if(!wte(e))return!1;for(let r of t)if(J$t(r,n))return!0;return!1}function rVe(e){let t=n=>{try{return Buffer.isBuffer(n)?n.byteLength:typeof n=="string"?n.length:typeof n=="number"?n.toString().length:n==null?0:JSON.stringify(n).length}catch{return}};return Array.isArray(e)?e.reduce((n,r)=>{let i=t(r);return typeof i=="number"?n!==void 0?n+i:i:n},0):t(e)}function eVe(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var Y$t,Rte,Z$t,iVe=v(()=>{Y$t=["get","set","setex"],Rte=["get","mget"],Z$t=["set","setex"]});var sVe,oVe,vG,dN,aVe,X$t,Q$t,cVe,$$t,uVe,lVe=v(()=>{sVe=Se(Hze(),1),oVe=Se($ze(),1);st();sr();iVe();vG="Redis",dN={},aVe=(e,t,n,r)=>{e.setAttribute(Rt,"auto.db.otel.redis");let i=tVe(t,n),s=wte(t);if(!i||!s||!dN.cachePrefixes||!nVe(t,i,dN.cachePrefixes))return;let o=vt(e).data["net.peer.name"],a=vt(e).data["net.peer.port"];a&&o&&e.setAttributes({"network.peer.address":o,"network.peer.port":a});let c=rVe(r);c&&e.setAttribute(Z7,c),lN(Rte,t)&&c!==void 0&&e.setAttribute(K7,c>0),e.setAttributes({[zt]:s,[Y7]:i});let u=i.join(", ");e.updateName(dN.maxCacheKeyLength?Ey(u,dN.maxCacheKeyLength):u)},X$t=rt(`${vG}.IORedis`,()=>new sVe.IORedisInstrumentation({responseHook:aVe})),Q$t=rt(`${vG}.Redis`,()=>new oVe.RedisInstrumentation({responseHook:aVe})),cVe=Object.assign(()=>{X$t(),Q$t()},{id:vG}),$$t=((e={})=>({name:vG,setupOnce(){dN=e,cVe()}})),uVe=$$t});var dVe=w(AG=>{"use strict";Object.defineProperty(AG,"__esModule",{value:!0});AG.EVENT_LISTENERS_SET=void 0;AG.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var kte=w(fN=>{"use strict";Object.defineProperty(fN,"__esModule",{value:!0});fN.AttributeNames=void 0;var een;(function(e){e.PG_VALUES="db.postgresql.values",e.PG_PLAN="db.postgresql.plan",e.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",e.MAX_CLIENT="db.postgresql.max.client"})(een=fN.AttributeNames||(fN.AttributeNames={}))});var Ite=w(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=Tr.METRIC_DB_CLIENT_CONNECTION_COUNT=Tr.DB_SYSTEM_VALUE_POSTGRESQL=Tr.DB_CLIENT_CONNECTION_STATE_VALUE_USED=Tr.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=Tr.ATTR_NET_PEER_PORT=Tr.ATTR_NET_PEER_NAME=Tr.ATTR_DB_USER=Tr.ATTR_DB_SYSTEM=Tr.ATTR_DB_STATEMENT=Tr.ATTR_DB_NAME=Tr.ATTR_DB_CONNECTION_STRING=Tr.ATTR_DB_CLIENT_CONNECTION_STATE=Tr.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0;Tr.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name";Tr.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state";Tr.ATTR_DB_CONNECTION_STRING="db.connection_string";Tr.ATTR_DB_NAME="db.name";Tr.ATTR_DB_STATEMENT="db.statement";Tr.ATTR_DB_SYSTEM="db.system";Tr.ATTR_DB_USER="db.user";Tr.ATTR_NET_PEER_NAME="net.peer.name";Tr.ATTR_NET_PEER_PORT="net.peer.port";Tr.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle";Tr.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used";Tr.DB_SYSTEM_VALUE_POSTGRESQL="postgresql";Tr.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count";Tr.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"});var xte=w(pN=>{"use strict";Object.defineProperty(pN,"__esModule",{value:!0});pN.SpanNames=void 0;var ten;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(ten=pN.SpanNames||(pN.SpanNames={}))});var SVe=w(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.sanitizedErrorMessage=Hn.isObjectWithTextString=Hn.getErrorMessage=Hn.patchClientConnectCallback=Hn.patchCallbackPGPool=Hn.updateCounter=Hn.getPoolName=Hn.patchCallback=Hn.handleExecutionResult=Hn.handleConfigQuery=Hn.shouldSkipInstrumentation=Hn.getSemanticAttributesFromPoolConnection=Hn.getSemanticAttributesFromConnection=Hn.getConnectionString=Hn.parseAndMaskConnectionString=Hn.parseNormalizedOperationName=Hn.getQuerySpanName=void 0;var oS=(Ce(),ke(Ze)),RG=kte(),rd=(Pn(),ke(Mr)),ds=Ite(),ob=Jt(),fVe=xte();function pVe(e,t){if(!t)return fVe.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:hVe(t.text);return`${fVe.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}Hn.getQuerySpanName=pVe;function hVe(e){let t=e.trim(),n=t.indexOf(" "),r=n===-1?t:t.slice(0,n);return r=r.toUpperCase(),r.endsWith(";")?r.slice(0,-1):r}Hn.parseNormalizedOperationName=hVe;function mVe(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}Hn.parseAndMaskConnectionString=mVe;function Ote(e){if("connectionString"in e&&e.connectionString)return mVe(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}Hn.getConnectionString=Ote;function wG(e){if(Number.isInteger(e))return e}function gVe(e,t){let n={};return t&ob.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:Ote(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:wG(e.port)}),t&ob.SemconvStability.STABLE&&(n={...n,[rd.ATTR_DB_SYSTEM_NAME]:rd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[rd.ATTR_DB_NAMESPACE]:e.namespace,[rd.ATTR_SERVER_ADDRESS]:e.host,[rd.ATTR_SERVER_PORT]:wG(e.port)}),n}Hn.getSemanticAttributesFromConnection=gVe;function nen(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[RG.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[RG.AttributeNames.MAX_CLIENT]:e.maxClient};return t&ob.SemconvStability.OLD&&(r={...r,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:n?.pathname.slice(1)??e.database,[ds.ATTR_DB_CONNECTION_STRING]:Ote(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||wG(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&ob.SemconvStability.STABLE&&(r={...r,[rd.ATTR_DB_SYSTEM_NAME]:rd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[rd.ATTR_DB_NAMESPACE]:e.namespace,[rd.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[rd.ATTR_SERVER_PORT]:Number(n?.port)||wG(e.port)}),r}Hn.getSemanticAttributesFromPoolConnection=nen;function ren(e){return e.requireParentSpan===!0&&oS.trace.getSpan(oS.context.active())===void 0}Hn.shouldSkipInstrumentation=ren;function ien(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=pVe(s,r),a=e.startSpan(o,{kind:oS.SpanKind.CLIENT,attributes:gVe(i,n)});if(!r)return a;if(r.text&&(n&ob.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&ob.SemconvStability.STABLE&&a.setAttribute(rd.ATTR_DB_QUERY_TEXT,r.text)),t.enhancedDatabaseReporting&&Array.isArray(r.values))try{let c=r.values.map(u=>u==null?"null":u instanceof Buffer?u.toString():typeof u=="object"?typeof u.toPostgres=="function"?u.toPostgres():JSON.stringify(u):u.toString());a.setAttribute(RG.AttributeNames.PG_VALUES,c)}catch(c){oS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(RG.AttributeNames.PG_PLAN,r.name),a}Hn.handleConfigQuery=ien;function yVe(e,t,n){typeof e.responseHook=="function"&&(0,ob.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&oS.diag.error("Error running response hook",r)},!0)}Hn.handleExecutionResult=yVe;function sen(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[rd.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(kG(o)),t.setStatus({code:oS.SpanStatusCode.ERROR,message:o.message})):yVe(e,t,a),i(),t.end(),n.call(this,o,a)}}Hn.patchCallback=sen;function oen(e){let t="";return t+=(e?.host?`${e.host}`:"unknown_host")+":",t+=(e?.port?`${e.port}`:"unknown_port")+"/",t+=e?.database?`${e.database}`:"unknown_database",t.trim()}Hn.getPoolName=oen;function aen(e,t,n,r,i){let s=t.totalCount,o=t.waitingCount,a=t.idleCount,c=s-a;return n.add(c-i.used,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(a-i.idle,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(o-i.pending,{[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:c,idle:a,pending:o}}Hn.updateCounter=aen;function cen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(kG(r)),e.setStatus({code:oS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}Hn.patchCallbackPGPool=cen;function uen(e,t){return function(r){r&&(r instanceof Error&&e.recordException(kG(r)),e.setStatus({code:oS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}Hn.patchClientConnectCallback=uen;function len(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}Hn.getErrorMessage=len;function den(e){return typeof e=="object"&&typeof e?.text=="string"}Hn.isObjectWithTextString=den;function kG(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}Hn.sanitizedErrorMessage=kG});var EVe=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.PACKAGE_NAME=nw.PACKAGE_VERSION=void 0;nw.PACKAGE_VERSION="0.66.0";nw.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var RVe=w(xG=>{"use strict";Object.defineProperty(xG,"__esModule",{value:!0});xG.PgInstrumentation=void 0;var Lc=Jt(),Ur=(Ce(),ke(Ze)),_Ve=dVe(),Yi=SVe(),bVe=pte(),TVe=EVe(),vVe=xte(),IG=fr(),hf=(Pn(),ke(Mr)),hN=Ite();function rw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var Pte=class extends Lc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(TVe.PACKAGE_NAME,TVe.PACKAGE_VERSION,t),this._semconvStability=(0,Lc.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(hf.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:Ur.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.001,.005,.01,.05,.1,.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(hN.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(hN.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let t=[">=8.0.3 <9"],n=[">=2.0.0 <4"],r=new Lc.InstrumentationNodeModuleFile("pg/lib/native/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),i=new Lc.InstrumentationNodeModuleFile("pg/lib/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),s=new Lc.InstrumentationNodeModuleDefinition("pg",t,a=>{let c=rw(a);return this._patchPgClient(c.Client),a},a=>{let c=rw(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Lc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=rw(a);return(0,Lc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=rw(a);(0,Lc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=rw(t);return(0,Lc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Lc.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),this._wrap(n.prototype,"query",this._getClientQueryPatch()),this._wrap(n.prototype,"connect",this._getClientConnectPatch()),t}_unpatchPgClient(t){let n=rw(t);return(0,Lc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Lc.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),t}_getClientConnectPatch(){let t=this;return n=>function(i){let s=t.getConfig();if(Yi.shouldSkipInstrumentation(s)||s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(vVe.SpanNames.CONNECT,{kind:Ur.SpanKind.CLIENT,attributes:Yi.getSemanticAttributesFromConnection(this,t._semconvStability)});if(i){let c=Ur.trace.getSpan(Ur.context.active());i=Yi.patchClientConnectCallback(o,i),c&&(i=Ur.context.bind(Ur.context.active(),i))}let a=Ur.context.with(Ur.trace.setSpan(Ur.context.active(),o),()=>n.call(this,i));return AVe(o,a)}}recordOperationDuration(t,n){let r={},i=[hf.ATTR_DB_NAMESPACE,hf.ATTR_ERROR_TYPE,hf.ATTR_SERVER_PORT,hf.ATTR_SERVER_ADDRESS,hf.ATTR_DB_OPERATION_NAME];this._semconvStability&Lc.SemconvStability.OLD&&i.push(hN.ATTR_DB_SYSTEM),this._semconvStability&Lc.SemconvStability.STABLE&&i.push(hf.ATTR_DB_SYSTEM_NAME),i.forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,IG.hrTimeToMilliseconds)((0,IG.hrTimeDuration)(n,(0,IG.hrTime)()))/1e3;this._operationDuration.record(s,r)}_getClientQueryPatch(){let t=this;return n=>(this._diag.debug("Patching pg.Client.prototype.query"),function(...i){if(Yi.shouldSkipInstrumentation(t.getConfig()))return n.apply(this,i);let s=(0,IG.hrTime)(),o=i[0],a=typeof o=="string",c=Yi.isObjectWithTextString(o),u=a?{text:o,values:Array.isArray(i[1])?i[1]:void 0}:c?{...o,name:o.name,text:o.text,values:o.values??(Array.isArray(i[1])?i[1]:void 0)}:void 0,l={[hN.ATTR_DB_SYSTEM]:hN.DB_SYSTEM_VALUE_POSTGRESQL,[hf.ATTR_DB_NAMESPACE]:this.database,[hf.ATTR_SERVER_PORT]:this.connectionParameters.port,[hf.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};u?.text&&(l[hf.ATTR_DB_OPERATION_NAME]=Yi.parseNormalizedOperationName(u?.text));let d=()=>{t.recordOperationDuration(l,s)},f=t.getConfig(),p=Yi.handleConfigQuery.call(this,t.tracer,f,t._semconvStability,u);if(f.addSqlCommenterCommentToQueries&&(a?i[0]=(0,bVe.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,bVe.addSqlCommenterComment)(p,o.text)})),i.length>0){let g=Ur.trace.getSpan(Ur.context.active());if(typeof i[i.length-1]=="function")i[i.length-1]=Yi.patchCallback(f,p,i[i.length-1],l,d),g&&(i[i.length-1]=Ur.context.bind(Ur.context.active(),i[i.length-1]));else if(typeof u?.callback=="function"){let y=Yi.patchCallback(t.getConfig(),p,u.callback,l,d);g&&(y=Ur.context.bind(Ur.context.active(),y)),i[0].callback=y}}let{requestHook:h}=f;typeof h=="function"&&u&&(0,Lc.safeExecuteInTheMiddle)(()=>{let{database:g,host:y,port:E,user:S}=this.connectionParameters;h(p,{connection:{database:g,host:y,port:E,user:S},query:{text:u.text,values:u.values,name:u.name}})},g=>{g&&t._diag.error("Error running query hook",g)},!0);let m;try{m=n.apply(this,i)}catch(g){throw g instanceof Error&&p.recordException(Yi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:Yi.getErrorMessage(g)}),p.end(),g}return m instanceof Promise?m.then(g=>new Promise(y=>{Yi.handleExecutionResult(t.getConfig(),p,g),d(),p.end(),y(g)})).catch(g=>new Promise((y,E)=>{g instanceof Error&&p.recordException(Yi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:g.message}),d(),p.end(),E(g)})):m})}_setPoolConnectEventListeners(t){if(t[_Ve.EVENT_LISTENERS_SET])return;let n=Yi.getPoolName(t.options);t.on("connect",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("acquire",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("remove",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("release",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t[_Ve.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let t=this;return n=>function(i){let s=t.getConfig();if(Yi.shouldSkipInstrumentation(s))return n.call(this,i);if(t._setPoolConnectEventListeners(this),s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(vVe.SpanNames.POOL_CONNECT,{kind:Ur.SpanKind.CLIENT,attributes:Yi.getSemanticAttributesFromPoolConnection(this.options,t._semconvStability)});if(i){let c=Ur.trace.getSpan(Ur.context.active());i=Yi.patchCallbackPGPool(o,i),c&&(i=Ur.context.bind(Ur.context.active(),i))}let a=Ur.context.with(Ur.trace.setSpan(Ur.context.active(),o),()=>n.call(this,i));return AVe(o,a)}}};xG.PgInstrumentation=Pte;function AVe(e,t){if(!(t instanceof Promise))return t;let n=t;return Ur.context.bind(Ur.context.active(),n.then(r=>(e.end(),r)).catch(r=>(r instanceof Error&&e.recordException(Yi.sanitizedErrorMessage(r)),e.setStatus({code:Ur.SpanStatusCode.ERROR,message:Yi.getErrorMessage(r)}),e.end(),Promise.reject(r))))}});var wVe=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.AttributeNames=iw.PgInstrumentation=void 0;var fen=RVe();Object.defineProperty(iw,"PgInstrumentation",{enumerable:!0,get:function(){return fen.PgInstrumentation}});var pen=kte();Object.defineProperty(iw,"AttributeNames",{enumerable:!0,get:function(){return pen.AttributeNames}})});var kVe,IVe,xVe,hen,OVe,PVe=v(()=>{kVe=Se(wVe(),1);sr();IVe="Postgres",xVe=rt(IVe,kVe.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),hen=(e=>({name:IVe,setupOnce(){xVe(e)}})),OVe=hen});var aS,Cte,NVe,men,gen,CVe,Nte,yen,MVe,DVe=v(()=>{Ce();aS=Se(Jt(),1);Pn();st();sr();J_();Cte="PostgresJs",NVe=[">=3.0.0 <4"],men=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,gen=Symbol.for("sentry.query.from.instrumented.sql"),CVe=rt(Cte,e=>new Nte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Nte=class extends aS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Nn,t)}init(){let t=new aS.InstrumentationNodeModuleDefinition("postgres",NVe,n=>{try{return this._patchPostgres(n)}catch(r){return So&&Z.error("Failed to patch postgres module:",r),n}},n=>n);return["src","cf/src","cjs/src"].forEach(n=>{t.files.push(new aS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,NVe,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),t}_patchPostgres(t){let n=typeof t=="function",r=n?t:t.default;if(typeof r!="function")return So&&Z.warn("postgres module does not export a function. Skipping instrumentation."),t;let i=this,s=function(...o){let a=Reflect.construct(r,o);if(!a||typeof a!="function")return So&&Z.warn("postgres() did not return a valid instance"),a;let c=i.getConfig();return VX(a,{requireParentSpan:c.requireParentSpan,requestHook:c.requestHook})};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}return n?s:(uP(t,"default",s),t)}_shouldCreateSpans(){let t=this.getConfig();return jt.getSpan(Ve.active())!==void 0||!t.requireParentSpan}_setOperationName(t,n,r){if(r){t.setAttribute(lA,r);return}let i=n?.match(men);i?.[1]&&t.setAttribute(lA,i[1].toUpperCase())}_reconstructQuery(t){if(t?.length)return t.length===1?t[0]||void 0:t.reduce((n,r,i)=>i===0?r:`${n}$${i}${r}`,"")}_sanitizeSqlQuery(t){return t?t.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Dr(a,"auto.db.postgresjs"),a.setAttributes({[g_]:"postgres",[cJ]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,aS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Z.error(`Error in requestHook for ${Cte} integration:`,f))},!0);let l=this.resolve;this.resolve=new Proxy(l,{apply:(f,p,h)=>{try{n._setOperationName(a,o,h?.[0]?.command),a.end()}catch(m){So&&Z.error("Error ending span in resolve callback:",m)}return Reflect.apply(f,p,h)}});let d=this.reject;this.reject=new Proxy(d,{apply:(f,p,h)=>{try{a.setStatus({code:2,message:h?.[0]?.message||"unknown_error"}),a.setAttribute(uJ,h?.[0]?.code||"unknown"),a.setAttribute(lJ,h?.[0]?.name||"unknown"),n._setOperationName(a,o),a.end()}catch(m){So&&Z.error("Error ending span in reject callback:",m)}return Reflect.apply(f,p,h)}});try{return r.apply(this,i)}catch(f){throw a.setStatus({code:2,message:f instanceof Error?f.message:"unknown_error"}),a.end(),f}})},t.Query.prototype.handle.__sentry_original__=r,t}_unpatchQueryPrototype(t){return t.Query.prototype.handle.__sentry_original__&&(t.Query.prototype.handle=t.Query.prototype.handle.__sentry_original__),t}},yen=(e=>({name:Cte,setupOnce(){CVe(e)}})),MVe=yen});var LVe=w(mN=>{"use strict";Object.defineProperty(mN,"__esModule",{value:!0});mN.SeverityNumber=void 0;var Sen;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(Sen=mN.SeverityNumber||(mN.SeverityNumber={}))});var PG=w(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.NOOP_LOGGER=sw.NoopLogger=void 0;var OG=class{emit(t){}};sw.NoopLogger=OG;sw.NOOP_LOGGER=new OG});var CG=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.NOOP_LOGGER_PROVIDER=ow.NoopLoggerProvider=void 0;var Een=PG(),NG=class{getLogger(t,n,r){return new Een.NoopLogger}};ow.NoopLoggerProvider=NG;ow.NOOP_LOGGER_PROVIDER=new NG});var Dte=w(MG=>{"use strict";Object.defineProperty(MG,"__esModule",{value:!0});MG.ProxyLogger=void 0;var _en=PG(),Mte=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):_en.NOOP_LOGGER}};MG.ProxyLogger=Mte});var Ute=w(DG=>{"use strict";Object.defineProperty(DG,"__esModule",{value:!0});DG.ProxyLoggerProvider=void 0;var ben=CG(),Ten=Dte(),Lte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new Ten.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:ben.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};DG.ProxyLoggerProvider=Lte});var UVe=w(LG=>{"use strict";Object.defineProperty(LG,"__esModule",{value:!0});LG._globalThis=void 0;LG._globalThis=typeof globalThis=="object"?globalThis:global});var FVe=w(UG=>{"use strict";Object.defineProperty(UG,"__esModule",{value:!0});UG._globalThis=void 0;var ven=UVe();Object.defineProperty(UG,"_globalThis",{enumerable:!0,get:function(){return ven._globalThis}})});var jVe=w(FG=>{"use strict";Object.defineProperty(FG,"__esModule",{value:!0});FG._globalThis=void 0;var Aen=FVe();Object.defineProperty(FG,"_globalThis",{enumerable:!0,get:function(){return Aen._globalThis}})});var HVe=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.API_BACKWARDS_COMPATIBILITY_VERSION=Qp.makeGetter=Qp._global=Qp.GLOBAL_LOGS_API_KEY=void 0;var Ren=jVe();Qp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Qp._global=Ren._globalThis;function wen(e,t,n){return r=>r===e?t:n}Qp.makeGetter=wen;Qp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var BVe=w(jG=>{"use strict";Object.defineProperty(jG,"__esModule",{value:!0});jG.LogsAPI=void 0;var id=HVe(),ken=CG(),qVe=Ute(),Fte=class e{constructor(){this._proxyLoggerProvider=new qVe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return id._global[id.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(id._global[id.GLOBAL_LOGS_API_KEY]=(0,id.makeGetter)(id.API_BACKWARDS_COMPATIBILITY_VERSION,t,ken.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=id._global[id.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(id._global,id.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete id._global[id.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new qVe.ProxyLoggerProvider}};jG.LogsAPI=Fte});var jte=w(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.logs=Bo.ProxyLoggerProvider=Bo.ProxyLogger=Bo.NoopLoggerProvider=Bo.NOOP_LOGGER_PROVIDER=Bo.NoopLogger=Bo.NOOP_LOGGER=Bo.SeverityNumber=void 0;var Ien=LVe();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Ien.SeverityNumber}});var GVe=PG();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return GVe.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return GVe.NoopLogger}});var zVe=CG();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return zVe.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return zVe.NoopLoggerProvider}});var xen=Dte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return xen.ProxyLogger}});var Oen=Ute();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Oen.ProxyLoggerProvider}});var Pen=BVe();Bo.logs=Pen.LogsAPI.getInstance()});var VVe=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.disableInstrumentations=aw.enableInstrumentations=void 0;function Nen(e,t,n,r){for(let i=0,s=e.length;it.disable())}aw.disableInstrumentations=Cen});var YVe=w(HG=>{"use strict";Object.defineProperty(HG,"__esModule",{value:!0});HG.registerInstrumentations=void 0;var WVe=(Ce(),ke(Ze)),Men=jte(),KVe=VVe();function Den(e){let t=e.tracerProvider||WVe.trace.getTracerProvider(),n=e.meterProvider||WVe.metrics.getMeterProvider(),r=e.loggerProvider||Men.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,KVe.enableInstrumentations)(i,t,n,r),()=>{(0,KVe.disableInstrumentations)(i)}}HG.registerInstrumentations=Den});var r2e=w(qG=>{"use strict";Object.defineProperty(qG,"__esModule",{value:!0});qG.satisfies=void 0;var Gte=(Ce(),ke(Ze)),$Ve=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Len=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Uen={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function Fen(e,t,n){if(!jen(e))return Gte.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=Gen(e);if(!r)return!1;let i=[],s=e2e(r,t,i,n);return s&&!n?.includePrerelease?qen(r,i):s}qG.satisfies=Fen;function jen(e){return typeof e=="string"&&$Ve.test(e)}function e2e(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Hte(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=ltn(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Hte(e,s,n,r))return!1;return!0}return Hte(e,t,n,r)}function Hte(e,t,n,r){if(t=Ben(t,r),t.includes(" "))return e2e(e,t,n,r);{let i=zen(t);return n.push(i),Hen(e,i)}}function Hen(e,t){if(t.invalid)return!1;if(!t.version||Bte(t.version))return!0;let n=JVe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=JVe(r,i)}return Uen[t.op]?.includes(n)}function qen(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Ben(e,t){return e=e.trim(),e=ctn(e,t),e=atn(e),e=utn(e,t),e=e.trim(),e}function Uc(e){return!e||e.toLowerCase()==="x"||e==="*"}function Gen(e){let t=e.match($Ve);if(!t){Gte.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function zen(e){if(!e)return{};let t=e.match(Len);if(!t)return Gte.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Bte(e){return e==="*"||e==="x"||e==="X"}function ZVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function Ven(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function Wen(e,t){if(Bte(e)||Bte(t))return 0;let[n,r]=Ven(ZVe(e),ZVe(t));return n>r?1:n)?=?)",XVe=`(?:${n2e}|${Ken})`,Zen=`(?:-(${XVe}(?:\\.${XVe})*))`,QVe=`${t2e}+`,Jen=`(?:\\+(${QVe}(?:\\.${QVe})*))`,qte=`${n2e}|x|X|\\*`,gN=`[v=\\s]*(${qte})(?:\\.(${qte})(?:\\.(${qte})(?:${Zen})?${Jen}?)?)?`,Xen=`^${Yen}\\s*${gN}$`,Qen=new RegExp(Xen),$en=`^\\s*(${gN})\\s+-\\s+(${gN})\\s*$`,etn=new RegExp($en),ttn="(?:~>?)",ntn=`^${ttn}${gN}$`,rtn=new RegExp(ntn),itn="(?:\\^)",stn=`^${itn}${gN}$`,otn=new RegExp(stn);function atn(e){let t=rtn;return e.replace(t,(n,r,i,s,o)=>{let a;return Uc(r)?a="":Uc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Uc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function ctn(e,t){let n=otn,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Uc(s)?u="":Uc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Uc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function utn(e,t){let n=Qen;return e.replace(n,(r,i,s,o,a,c)=>{let u=Uc(s),l=u||Uc(o),d=l||Uc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function ltn(e,t){let n=etn;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Uc(s)?i="":Uc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Uc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Uc(d)?l="":Uc(f)?l=`<${+d+1}.0.0-0`:Uc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var zte=w(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.massUnwrap=pa.unwrap=pa.massWrap=pa.wrap=void 0;var Fc=console.error.bind(console);function yN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var dtn=(e,t,n)=>{if(!e||!e[t]){Fc("no original function "+String(t)+" to wrap");return}if(!n){Fc("no wrapper function"),Fc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Fc("original object and wrapper must be functions");return}let i=n(r,t);return yN(i,"__original",r),yN(i,"__unwrap",()=>{e[t]===i&&yN(e,t,r)}),yN(i,"__wrapped",!0),yN(e,t,i),i};pa.wrap=dtn;var ftn=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Fc("must provide one or more modules to patch"),Fc(new Error().stack);return}if(!(t&&Array.isArray(t))){Fc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,pa.wrap)(r,i,n)})})};pa.massWrap=ftn;var ptn=(e,t)=>{if(!e||!e[t]){Fc("no function to unwrap."),Fc(new Error().stack);return}let n=e[t];if(!n.__unwrap)Fc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};pa.unwrap=ptn;var htn=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Fc("must provide one or more modules to patch"),Fc(new Error().stack);return}if(!(t&&Array.isArray(t))){Fc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,pa.unwrap)(n,r)})})};pa.massUnwrap=htn;function SN(e){e&&e.logger&&(typeof e.logger!="function"?Fc("new logger isn't a function, not replacing"):Fc=e.logger)}pa.default=SN;SN.wrap=pa.wrap;SN.massWrap=pa.massWrap;SN.unwrap=pa.unwrap;SN.massUnwrap=pa.massUnwrap});var i2e=w(GG=>{"use strict";Object.defineProperty(GG,"__esModule",{value:!0});GG.InstrumentationAbstract=void 0;var Vte=(Ce(),ke(Ze)),mtn=jte(),BG=zte(),Wte=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Vte.diag.createComponentLogger({namespace:t}),this._tracer=Vte.trace.getTracer(t,n),this._meter=Vte.metrics.getMeter(t,n),this._logger=mtn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=BG.wrap;_unwrap=BG.unwrap;_massWrap=BG.massWrap;_massUnwrap=BG.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};GG.InstrumentationAbstract=Wte});var s2e=w(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0});cS.ModuleNameTrie=cS.ModuleNameSeparator=void 0;cS.ModuleNameSeparator="/";var zG=class{hooks=[];children=new Map},Kte=class{_trie=new zG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(cS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new zG,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(cS.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};cS.ModuleNameTrie=Kte});var a2e=w(VG=>{"use strict";Object.defineProperty(VG,"__esModule",{value:!0});VG.RequireInTheMiddleSingleton=void 0;var gtn=T_(),o2e=Y("path"),Yte=s2e(),ytn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),Zte=class e{_moduleNameTrie=new Yte.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new gtn.Hook(null,{internals:!0},(t,n,r)=>{let i=Stn(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return ytn?new e:this._instance=this._instance??new e}};VG.RequireInTheMiddleSingleton=Zte;function Stn(e){return o2e.sep!==Yte.ModuleNameSeparator?e.split(o2e.sep).join(Yte.ModuleNameSeparator):e}});var f2e=w(EN=>{var c2e=[],Jte=new WeakMap,u2e=new WeakMap,l2e=new Map,d2e=[],Etn={set(e,t,n){let r=Jte.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=u2e.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=Jte.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function _tn(e,t,n,r,i){l2e.set(e,i),Jte.set(t,n),u2e.set(t,r);let s=new Proxy(t,Etn);c2e.forEach(o=>o(e,s,i)),d2e.push([e,s,i])}EN.register=_tn;EN.importHooks=c2e;EN.specifiers=l2e;EN.toHook=d2e});var g2e=w((xLr,uw)=>{var p2e=Y("path"),btn=yO(),{fileURLToPath:Ttn}=Y("url"),{MessageChannel:vtn}=Y("worker_threads"),{isBuiltin:Xte}=Y("module");Xte||(Xte=()=>!0);var{importHooks:Qte,specifiers:Atn,toHook:Rtn}=f2e();function h2e(e){Qte.push(e),Rtn.forEach(([t,n,r])=>e(t,n,r))}function m2e(e){let t=Qte.indexOf(e);t>-1&&Qte.splice(t,1)}function cw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var $te;function wtn(){let{port1:e,port2:t}=new vtn,n=0,r;$te=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function _N(e,t,n){if(!(this instanceof _N))return new _N(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;$te&&Array.isArray(e)&&$te(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);Xte(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=Ttn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=btn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)cw(n,s,u,void 0);else if(d===i){if(!l)cw(n,s,i,l);else if(l.endsWith(Atn.get(a)))cw(n,s,i,l);else if(r){let f=i+p2e.sep+p2e.relative(l,u);cw(n,s,f,l)}}else d===o&&cw(n,s,o,l);else cw(n,s,i,l)},h2e(this._iitmHook)}_N.prototype.unhook=function(){m2e(this._iitmHook)};uw.exports=_N;uw.exports.Hook=_N;uw.exports.addHook=h2e;uw.exports.removeHook=m2e;uw.exports.createAddHookMessageChannel=wtn});var ene=w(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});uS.isWrapped=uS.safeExecuteInTheMiddleAsync=uS.safeExecuteInTheMiddle=void 0;function ktn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}uS.safeExecuteInTheMiddle=ktn;async function Itn(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}uS.safeExecuteInTheMiddleAsync=Itn;function xtn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}uS.isWrapped=xtn});var E2e=w(WG=>{"use strict";Object.defineProperty(WG,"__esModule",{value:!0});WG.InstrumentationBase=void 0;var bN=Y("path"),y2e=Y("util"),Otn=r2e(),tne=zte(),Ptn=i2e(),Ntn=a2e(),Ctn=g2e(),TN=(Ce(),ke(Ze)),Mtn=T_(),Dtn=Y("fs"),Ltn=ene(),nne=class extends Ptn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Ntn.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,Ltn.isWrapped)(t[n])&&this._unwrap(t,n),y2e.types.isProxy(t)){let i=(0,tne.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,tne.wrap)(t,n,r)};_unwrap=(t,n)=>y2e.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,tne.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{TN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){TN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{TN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){TN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=Y.resolve(n);Y.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,Dtn.readFileSync)(bN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{TN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return S2e(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=bN.normalize(r);return o.filter(u=>u.name===a).filter(u=>S2e(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&bN.isAbsolute(a)){let u=bN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=bN.isAbsolute(t.name)?new Mtn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new Ctn.Hook([t.name],{internals:!1},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};WG.InstrumentationBase=nne;function S2e(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Otn.satisfies)(t,r,{includePrerelease:n}))}});var _2e=w(KG=>{"use strict";Object.defineProperty(KG,"__esModule",{value:!0});KG.normalize=void 0;var Utn=Y("path");Object.defineProperty(KG,"normalize",{enumerable:!0,get:function(){return Utn.normalize}})});var b2e=w(lw=>{"use strict";Object.defineProperty(lw,"__esModule",{value:!0});lw.normalize=lw.InstrumentationBase=void 0;var Ftn=E2e();Object.defineProperty(lw,"InstrumentationBase",{enumerable:!0,get:function(){return Ftn.InstrumentationBase}});var jtn=_2e();Object.defineProperty(lw,"normalize",{enumerable:!0,get:function(){return jtn.normalize}})});var rne=w(dw=>{"use strict";Object.defineProperty(dw,"__esModule",{value:!0});dw.normalize=dw.InstrumentationBase=void 0;var T2e=b2e();Object.defineProperty(dw,"InstrumentationBase",{enumerable:!0,get:function(){return T2e.InstrumentationBase}});Object.defineProperty(dw,"normalize",{enumerable:!0,get:function(){return T2e.normalize}})});var v2e=w(YG=>{"use strict";Object.defineProperty(YG,"__esModule",{value:!0});YG.InstrumentationNodeModuleDefinition=void 0;var ine=class{name;supportedVersions;patch;unpatch;files;constructor(t,n,r,i,s){this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i,this.files=s||[]}};YG.InstrumentationNodeModuleDefinition=ine});var A2e=w(ZG=>{"use strict";Object.defineProperty(ZG,"__esModule",{value:!0});ZG.InstrumentationNodeModuleFile=void 0;var Htn=rne(),sne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,Htn.normalize)(t)}};ZG.InstrumentationNodeModuleFile=sne});var R2e=w(ab=>{"use strict";Object.defineProperty(ab,"__esModule",{value:!0});ab.semconvStabilityFromStr=ab.SemconvStability=void 0;var JG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(JG=ab.SemconvStability||(ab.SemconvStability={}));function qtn(e,t){let n=JG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=JG.DUPLICATE;break}else i.toLowerCase()===e&&(n=JG.STABLE);return n}ab.semconvStabilityFromStr=qtn});var k2e=w(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.semconvStabilityFromStr=Js.SemconvStability=Js.safeExecuteInTheMiddleAsync=Js.safeExecuteInTheMiddle=Js.isWrapped=Js.InstrumentationNodeModuleFile=Js.InstrumentationNodeModuleDefinition=Js.InstrumentationBase=Js.registerInstrumentations=void 0;var Btn=YVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return Btn.registerInstrumentations}});var Gtn=rne();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return Gtn.InstrumentationBase}});var ztn=v2e();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return ztn.InstrumentationNodeModuleDefinition}});var Vtn=A2e();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return Vtn.InstrumentationNodeModuleFile}});var one=ene();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return one.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return one.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return one.safeExecuteInTheMiddleAsync}});var w2e=R2e();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return w2e.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return w2e.semconvStabilityFromStr}})});function Ytn(){let e=fw[cne];return e?.helper?e.helper:fw[ane]?.helper}function Ztn(e){let t={helper:e};fw[cne]=t,fw[ane]=t}function Jtn(){delete fw[cne],delete fw[ane]}function $tn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function O2e(e,t,n,r,i){if(P2e(t.name,i))return;let s={attributes:t.attributes,kind:$tn(t.kind),startTime:t.startTime};e.startActiveSpan(t.name,s,o=>{r.set(t.id,o.spanContext().spanId),t.links&&o.addLinks(t.links.flatMap(c=>{let u=r.get(c);return u?{context:{spanId:u,traceId:o.spanContext().traceId,traceFlags:o.spanContext().traceFlags}}:[]}));let a=n.filter(c=>c.parentId===t.id);for(let c of a)O2e(e,c,n,r,i);o.end(t.endTime)})}function I2e(e,t){return tnn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function tnn(e){return e!=null&&typeof e.then=="function"}function P2e(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var XG,Wtn,Ktn,ane,cne,fw,Xtn,Qtn,enn,N2e,x2e,nnn,rnn,C2e,M2e=v(()=>{Ce();XG=Se(k2e(),1);Ce();Wtn={name:"@prisma/instrumentation-contract",version:"7.6.0",description:"Shared types and utilities for Prisma instrumentation",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.mts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation-contract"},bugs:"https://github.com/prisma/prisma/issues",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},files:["dist"],sideEffects:!1,devDependencies:{"@opentelemetry/api":"1.9.0"},peerDependencies:{"@opentelemetry/api":"^1.8"}},Ktn=Wtn.version.split(".")[0],ane="PRISMA_INSTRUMENTATION",cne=`V${Ktn}_PRISMA_INSTRUMENTATION`,fw=globalThis;Xtn=process.env.PRISMA_SHOW_ALL_TRACES==="true",Qtn="00-10-10-00";enn=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=jt.getSpanContext(e??Ve.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:Qtn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)O2e(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!Xtn)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(P2e(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return I2e(s,t(s,r))}return n.startActiveSpan(i,e,s=>I2e(s,t(s,r)))}};N2e={name:"@prisma/instrumentation",version:"7.6.0",description:"OpenTelemetry compliant instrumentation for Prisma Client",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.ts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation"},bugs:"https://github.com/prisma/prisma/issues",devDependencies:{"@opentelemetry/api":"1.9.0","@prisma/instrumentation-contract":"workspace:*","@types/node":"~20.19.24",typescript:"5.4.5"},dependencies:{"@opentelemetry/instrumentation":"^0.207.0"},peerDependencies:{"@opentelemetry/api":"^1.8"},files:["dist"],keywords:["prisma","instrumentation","opentelemetry","otel"],scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},sideEffects:!1},x2e=N2e.version,nnn=N2e.name,rnn="@prisma/client",C2e=class extends XG.InstrumentationBase{tracerProvider;constructor(e={}){super(nnn,x2e,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new XG.InstrumentationNodeModuleDefinition(rnn,[x2e])]}enable(){let e=this._config;Ztn(new enn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){Jtn()}isEnabled(){return Ytn()!==void 0}}});function inn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function L2e(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function snn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var D2e,une,onn,U2e,F2e=v(()=>{Ce();M2e();st();sr();D2e="Prisma";une=class extends C2e{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=L2e();inn(t)&&(t.createEngineSpan=n=>{let r=jt.getTracer("prismaV5Compatibility"),i=r._idGenerator;if(!i){xs(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{n.spans.forEach(s=>{let o=snn(s.kind),a=s.parent_span_id,c=s.span_id,u=s.trace_id,l=s.links?.map(f=>({context:{traceId:f.trace_id,spanId:f.span_id,traceFlags:Ha.SAMPLED}})),d=jt.setSpanContext(Ve.active(),{traceId:u,spanId:a,traceFlags:Ha.SAMPLED});Ve.with(d,()=>{let f={generateTraceId:()=>u,generateSpanId:()=>c};r._idGenerator=f,r.startSpan(s.name,{kind:o,links:l,startTime:s.start_time,attributes:s.attributes}).end(s.end_time),r._idGenerator=i})})}finally{r._idGenerator=i}})}};onn=rt(D2e,e=>new une(e)),U2e=e=>({name:D2e,setupOnce(){onn(e)},setup(t){L2e()&&t.on("spanStart",n=>{let r=vt(n);r.description?.startsWith("prisma:")&&n.setAttribute(Rt,"auto.db.otel.prisma"),r.description==="prisma:engine:db_query"&&r.data["db.query.text"]&&n.updateName(r.data["db.query.text"]),r.description==="prisma:engine:db_query"&&!r.data["db.system"]&&n.setAttribute("db.system","prisma")})}})});var j2e=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.PACKAGE_NAME=pw.PACKAGE_VERSION=void 0;pw.PACKAGE_VERSION="0.60.0";pw.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var lne=w($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.HapiLifecycleMethodNames=$p.HapiLayerType=$p.handlerPatched=$p.HapiComponentName=void 0;$p.HapiComponentName="@hapi/hapi";$p.handlerPatched=Symbol("hapi-handler-patched");$p.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"};$p.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])});var H2e=w(QG=>{"use strict";Object.defineProperty(QG,"__esModule",{value:!0});QG.ATTR_HTTP_METHOD=void 0;QG.ATTR_HTTP_METHOD="http.method"});var dne=w(vN=>{"use strict";Object.defineProperty(vN,"__esModule",{value:!0});vN.AttributeNames=void 0;var ann;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(ann=vN.AttributeNames||(vN.AttributeNames={}))});var G2e=w(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.getPluginFromInput=Xs.getExtMetadata=Xs.getRouteMetadata=Xs.isPatchableExtMethod=Xs.isDirectExtInput=Xs.isLifecycleExtEventObj=Xs.isLifecycleExtType=Xs.getPluginName=void 0;var q2e=(Pn(),ke(Mr)),cnn=H2e(),AN=lne(),lS=dne(),B2e=Jt();function unn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=unn;var lnn=e=>typeof e=="string"&&AN.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=lnn;var dnn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=dnn;var fnn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=fnn;var pnn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=pnn;var hnn=(e,t,n)=>{let r={[q2e.ATTR_HTTP_ROUTE]:e.path};t&B2e.SemconvStability.OLD&&(r[cnn.ATTR_HTTP_METHOD]=e.method),t&B2e.SemconvStability.STABLE&&(r[q2e.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[lS.AttributeNames.HAPI_TYPE]=AN.HapiLayerType.PLUGIN,r[lS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[lS.AttributeNames.HAPI_TYPE]=AN.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=hnn;var mnn=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[lS.AttributeNames.EXT_TYPE]:e,[lS.AttributeNames.HAPI_TYPE]:AN.HapiLayerType.EXT,[lS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[lS.AttributeNames.EXT_TYPE]:e,[lS.AttributeNames.HAPI_TYPE]:AN.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=mnn;var gnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=gnn});var W2e=w($G=>{"use strict";Object.defineProperty($G,"__esModule",{value:!0});$G.HapiInstrumentation=void 0;var ml=(Ce(),ke(Ze)),z2e=fr(),RN=Jt(),V2e=j2e(),wN=lne(),Mm=G2e(),fne=class extends RN.InstrumentationBase{_semconvStability;constructor(t={}){super(V2e.PACKAGE_NAME,V2e.PACKAGE_VERSION,t),this._semconvStability=(0,RN.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new RN.InstrumentationNodeModuleDefinition(wN.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,RN.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,RN.isWrapped)(n.Server)||this._wrap(n,"Server",this._getServerPatch.bind(this)),n},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._massUnwrap([n],["server","Server"])})}_getServerPatch(t){let n=this,r=this;return function(s){let o=t.apply(this,[s]);return r._wrap(o,"route",a=>n._getServerRoutePatch.bind(n)(a)),r._wrap(o,"ext",a=>n._getServerExtPatch.bind(n)(a)),r._wrap(o,"register",n._getServerRegisterPatch.bind(n)),o}}_getServerRegisterPatch(t){let n=this;return function(i,s){if(Array.isArray(i))for(let o of i){let a=(0,Mm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Mm.getPluginFromInput)(i);n._wrapRegisterHandler(o)}return t.apply(this,[i,s])}}_getServerExtPatch(t,n){let r=this;return function(...s){if(Array.isArray(s[0])){let o=s[0];for(let a=0;an._getServerRoutePatch.bind(n)(u,r)),s._wrap(a,"ext",u=>n._getServerExtPatch.bind(n)(u,r)),i.call(this,a,c)};t.register=o}_wrapExtMethods(t,n,r){let i=this;if(t instanceof Array){for(let s=0;sasync function(...o){if(ml.trace.getSpan(ml.context.active())===void 0)return await s.call(this,...o);let a=(0,z2e.getRPCMetadata)(ml.context.active());a?.type===z2e.RPCType.HTTP&&(a.route=t.path);let c=(0,Mm.getRouteMetadata)(t,r._semconvStability,n),u=r.tracer.startSpan(c.name,{attributes:c.attributes});try{return await ml.context.with(ml.trace.setSpan(ml.context.active(),u),()=>s.call(this,...o))}catch(l){throw u.recordException(l),u.setStatus({code:ml.SpanStatusCode.ERROR,message:l.message}),l}finally{u.end()}};if(typeof t.handler=="function")t.handler=i(t.handler);else if(typeof t.options=="function"){let s=t.options;t.options=function(o){let a=s(o);return typeof a.handler=="function"&&(a.handler=i(a.handler)),a}}else typeof t.options?.handler=="function"&&(t.options.handler=i(t.options.handler));return t}};$G.HapiInstrumentation=fne});var K2e=w(hw=>{"use strict";Object.defineProperty(hw,"__esModule",{value:!0});hw.AttributeNames=hw.HapiInstrumentation=void 0;var ynn=W2e();Object.defineProperty(hw,"HapiInstrumentation",{enumerable:!0,get:function(){return ynn.HapiInstrumentation}});var Snn=dne();Object.defineProperty(hw,"AttributeNames",{enumerable:!0,get:function(){return Snn.AttributeNames}})});var Y2e,Z2e,J2e,Enn,X2e,Q2e=v(()=>{Y2e=Se(K2e(),1);sr();Z2e="Hapi",J2e=rt(Z2e,()=>new Y2e.HapiInstrumentation),Enn=(()=>({name:Z2e,setupOnce(){J2e()}})),X2e=Enn});var dS,kN,pne=v(()=>{dS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},kN={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var tz,_nn,bnn,ez,$2e=v(()=>{Ce();tz=Se(Jt(),1);st();pne();_nn="@sentry/instrumentation-hono",bnn="0.0.1",ez=class extends tz.InstrumentationBase{constructor(t={}){super(_nn,bnn,t)}init(){return[new tz.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],t=>this._patch(t))]}_patch(t){let n=this;class r extends t.Hono{constructor(...s){super(...s),n._wrap(this,"get",n._patchHandler()),n._wrap(this,"post",n._patchHandler()),n._wrap(this,"put",n._patchHandler()),n._wrap(this,"delete",n._patchHandler()),n._wrap(this,"options",n._patchHandler()),n._wrap(this,"patch",n._patchHandler()),n._wrap(this,"all",n._patchHandler()),n._wrap(this,"on",n._patchOnHandler()),n._wrap(this,"use",n._patchMiddlewareHandler())}}try{t.Hono=r}catch{return{...t,Hono:r}}return t}_patchHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_patchOnHandler(){let t=this;return function(n){return function(...i){let s=i.slice(2);return n.apply(this,[...i.slice(0,2),...s.map(o=>t._wrapHandler(o))])}}}_patchMiddlewareHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_wrapHandler(t){let n=this;return function(r,i){if(!n.isEnabled())return t.apply(this,[r,i]);let s=r.req.path,o=n.tracer.startSpan(s);return Ve.with(jt.setSpan(Ve.active(),o),()=>n._safeExecute(()=>{let a=t.apply(this,[r,i]);if(sa(a))return a.then(c=>{let u=n._determineHandlerType(c);return o.setAttributes({[dS.HONO_TYPE]:u,[dS.HONO_NAME]:u===kN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[dS.HONO_TYPE]:c,[dS.HONO_NAME]:c===kN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),a}},()=>o.end(),a=>{n._handleError(o,a),o.end()}))}}_safeExecute(t,n,r){try{let i=t();return sa(i)?i.then(()=>n(),s=>r(s)):n(),i}catch(i){throw r(i),i}}_determineHandlerType(t){return t===void 0?kN.MIDDLEWARE:kN.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function Tnn(e){let t=vt(e).data,n=t[dS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[Rt]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[dS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Gl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[um],s=t[y_];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var eWe,tWe,vnn,nWe,rWe=v(()=>{Pn();st();sr();J_();pne();$2e();eWe="Hono";tWe=rt(eWe,()=>new ez({responseHook:e=>{Tnn(e)}})),vnn=(()=>({name:eWe,setupOnce(){tWe()}})),nWe=vnn});var nz=w(IN=>{"use strict";Object.defineProperty(IN,"__esModule",{value:!0});IN.KoaLayerType=void 0;var Ann;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Ann=IN.KoaLayerType||(IN.KoaLayerType={}))});var iWe=w(mw=>{"use strict";Object.defineProperty(mw,"__esModule",{value:!0});mw.PACKAGE_NAME=mw.PACKAGE_VERSION=void 0;mw.PACKAGE_VERSION="0.62.0";mw.PACKAGE_NAME="@opentelemetry/instrumentation-koa"});var hne=w(xN=>{"use strict";Object.defineProperty(xN,"__esModule",{value:!0});xN.AttributeNames=void 0;var Rnn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(Rnn=xN.AttributeNames||(xN.AttributeNames={}))});var oWe=w(gw=>{"use strict";Object.defineProperty(gw,"__esModule",{value:!0});gw.isLayerIgnored=gw.getMiddlewareMetadata=void 0;var sWe=nz(),rz=hne(),wnn=(Pn(),ke(Mr)),knn=(e,t,n,r)=>n?{attributes:{[rz.AttributeNames.KOA_NAME]:r?.toString(),[rz.AttributeNames.KOA_TYPE]:sWe.KoaLayerType.ROUTER,[wnn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[rz.AttributeNames.KOA_NAME]:t.name??"middleware",[rz.AttributeNames.KOA_TYPE]:sWe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};gw.getMiddlewareMetadata=knn;var Inn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));gw.isLayerIgnored=Inn});var aWe=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz.kLayerPatched=void 0;iz.kLayerPatched=Symbol("koa-layer-patched")});var pWe=w(sz=>{"use strict";Object.defineProperty(sz,"__esModule",{value:!0});sz.KoaInstrumentation=void 0;var eh=(Ce(),ke(Ze)),ON=Jt(),cWe=nz(),uWe=iWe(),lWe=oWe(),dWe=fr(),fWe=aWe(),mne=class extends ON.InstrumentationBase{constructor(t={}){super(uWe.PACKAGE_NAME,uWe.PACKAGE_VERSION,t)}init(){return new ON.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,ON.isWrapped)(n.prototype.use)&&this._unwrap(n.prototype,"use"),this._wrap(n.prototype,"use",this._getKoaUsePatch.bind(this)),t)},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;(0,ON.isWrapped)(n.prototype.use)&&this._unwrap(n.prototype,"use")})}_getKoaUsePatch(t){let n=this;return function(i){let s;return i.router?s=n._patchRouterDispatch(i):s=n._patchLayer(i,!1),t.apply(this,[s])}}_patchRouterDispatch(t){eh.diag.debug("Patching @koa/router dispatch");let r=t.router?.stack??[];for(let i of r){let s=i.path,o=i.stack;for(let a=0;a{if(eh.trace.getSpan(eh.context.active())===void 0)return t(s,o);let c=(0,lWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,dWe.getRPCMetadata)(eh.context.active());l?.type===dWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,ON.safeExecuteInTheMiddle)(()=>d(u,{context:s,middlewareLayer:t,layerType:i}),p=>{p&&eh.diag.error("koa instrumentation: request hook failed",p)},!0);let f=eh.trace.setSpan(eh.context.active(),u);return eh.context.with(f,async()=>{try{return await t(s,o)}catch(p){throw u.recordException(p),p}finally{u.end()}})})}};sz.KoaInstrumentation=mne});var hWe=w(fS=>{"use strict";Object.defineProperty(fS,"__esModule",{value:!0});fS.KoaLayerType=fS.AttributeNames=fS.KoaInstrumentation=void 0;var xnn=pWe();Object.defineProperty(fS,"KoaInstrumentation",{enumerable:!0,get:function(){return xnn.KoaInstrumentation}});var Onn=hne();Object.defineProperty(fS,"AttributeNames",{enumerable:!0,get:function(){return Onn.AttributeNames}});var Pnn=nz();Object.defineProperty(fS,"KoaLayerType",{enumerable:!0,get:function(){return Pnn.KoaLayerType}})});var mWe,gWe,yWe,Nnn,SWe,EWe=v(()=>{mWe=Se(hWe(),1);Pn();st();sr();J_();gWe="Koa",yWe=rt(gWe,mWe.KoaInstrumentation,(e={})=>({ignoreLayersType:e.ignoreLayersType,requestHook(t,n){Dr(t,"auto.http.otel.koa");let r=vt(t).data,i=r["koa.type"];i&&t.setAttribute(zt,`${i}.koa`);let s=r["koa.name"];if(typeof s=="string"&&t.updateName(s||"< unknown >"),vn()===Gl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[um],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Nnn=((e={})=>({name:gWe,setupOnce(){yWe(e)}})),SWe=Nnn});var gne=w(mf=>{"use strict";Object.defineProperty(mf,"__esModule",{value:!0});mf.ConnectNames=mf.ConnectTypes=mf.AttributeNames=void 0;var Cnn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(Cnn=mf.AttributeNames||(mf.AttributeNames={}));var Mnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Mnn=mf.ConnectTypes||(mf.ConnectTypes={}));var Dnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(Dnn=mf.ConnectNames||(mf.ConnectNames={}))});var _We=w(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.PACKAGE_NAME=yw.PACKAGE_VERSION=void 0;yw.PACKAGE_VERSION="0.57.0";yw.PACKAGE_NAME="@opentelemetry/instrumentation-connect"});var bWe=w(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});oz._LAYERS_STORE_PROPERTY=void 0;oz._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var TWe=w(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0});hS.generateRoute=hS.replaceCurrentStackRoute=hS.addNewStackLayer=void 0;var Lnn=(Ce(),ke(Ze)),pS=bWe(),Unn=e=>{Array.isArray(e[pS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,pS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[pS._LAYERS_STORE_PROPERTY].push("/");let t=e[pS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[pS._LAYERS_STORE_PROPERTY].length?e[pS._LAYERS_STORE_PROPERTY].pop():Lnn.diag.warn("Connect: Trying to pop the stack multiple time")}};hS.addNewStackLayer=Unn;var Fnn=(e,t)=>{t&&e[pS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};hS.replaceCurrentStackRoute=Fnn;var jnn=e=>e[pS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);hS.generateRoute=jnn});var RWe=w(mS=>{"use strict";Object.defineProperty(mS,"__esModule",{value:!0});mS.ConnectInstrumentation=mS.ANONYMOUS_NAME=void 0;var Hnn=(Ce(),ke(Ze)),vWe=fr(),Sw=gne(),AWe=_We(),az=Jt(),qnn=(Pn(),ke(Mr)),yne=TWe();mS.ANONYMOUS_NAME="anonymous";var Sne=class extends az.InstrumentationBase{constructor(t={}){super(AWe.PACKAGE_NAME,AWe.PACKAGE_VERSION,t)}init(){return[new az.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,az.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,az.isWrapped)(t.handle)||this._wrap(t,"handle",this._patchHandle.bind(this))}_patchConstructor(t){let n=this;return function(...r){let i=t.apply(this,r);return n._patchApp(i),i}}_patchNext(t,n){return function(i){let s=t.apply(this,[i]);return n(),s}}_startSpan(t,n){let r,i,s;t?(r=Sw.ConnectTypes.REQUEST_HANDLER,s=Sw.ConnectNames.REQUEST_HANDLER,i=t):(r=Sw.ConnectTypes.MIDDLEWARE,s=Sw.ConnectNames.MIDDLEWARE,i=n.name||mS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[qnn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Sw.AttributeNames.CONNECT_TYPE]:r,[Sw.AttributeNames.CONNECT_NAME]:i}};return this.tracer.startSpan(o,a)}_patchMiddleware(t,n){let r=this,i=n.length===4;function s(){if(!r.isEnabled())return n.apply(this,arguments);let[o,a,c]=i?[1,2,3]:[0,1,2],u=arguments[o],l=arguments[a],d=arguments[c];(0,yne.replaceCurrentStackRoute)(u,t);let f=(0,vWe.getRPCMetadata)(Hnn.context.active());t&&f?.type===vWe.RPCType.HTTP&&(f.route=(0,yne.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||mS.ANONYMOUS_NAME}`;let h=r._startSpan(t,n);r._diag.debug("start span",p);let m=!1;function g(){m?r._diag.debug(`span ${h.name} - already finished`):(m=!0,r._diag.debug(`finishing span ${h.name}`),h.end()),l.removeListener("close",g)}return l.addListener("close",g),arguments[c]=r._patchNext(d,g),n.apply(this,arguments)}return Object.defineProperty(s,"length",{value:n.length,writable:!1,configurable:!0}),s}_patchUse(t){let n=this;return function(...r){let i=r[r.length-1],s=r[r.length-2]||"";return r[r.length-1]=n._patchMiddleware(s,i),t.apply(this,r)}}_patchHandle(t){let n=this;return function(){let[r,i]=[0,2],s=arguments[r],o=arguments[i],a=(0,yne.addNewStackLayer)(s);return typeof o=="function"&&(arguments[i]=n._patchOut(o,a)),t.apply(this,arguments)}}_patchOut(t,n){return function(...i){return n(),Reflect.apply(t,this,i)}}};mS.ConnectInstrumentation=Sne});var kWe=w(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});sd.ConnectTypes=sd.ConnectNames=sd.AttributeNames=sd.ANONYMOUS_NAME=sd.ConnectInstrumentation=void 0;var wWe=RWe();Object.defineProperty(sd,"ConnectInstrumentation",{enumerable:!0,get:function(){return wWe.ConnectInstrumentation}});Object.defineProperty(sd,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return wWe.ANONYMOUS_NAME}});var Ene=gne();Object.defineProperty(sd,"AttributeNames",{enumerable:!0,get:function(){return Ene.AttributeNames}});Object.defineProperty(sd,"ConnectNames",{enumerable:!0,get:function(){return Ene.ConnectNames}});Object.defineProperty(sd,"ConnectTypes",{enumerable:!0,get:function(){return Ene.ConnectTypes}})});var IWe,xWe,OWe,Bnn,PWe,NWe=v(()=>{IWe=Se(kWe(),1);sr();xWe="Connect",OWe=rt(xWe,()=>new IWe.ConnectInstrumentation),Bnn=(()=>({name:xWe,setupOnce(){OWe()}})),PWe=Bnn});var CWe=w(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.DB_SYSTEM_VALUE_MSSQL=Go.ATTR_NET_PEER_PORT=Go.ATTR_NET_PEER_NAME=Go.ATTR_DB_USER=Go.ATTR_DB_SYSTEM=Go.ATTR_DB_STATEMENT=Go.ATTR_DB_SQL_TABLE=Go.ATTR_DB_NAME=void 0;Go.ATTR_DB_NAME="db.name";Go.ATTR_DB_SQL_TABLE="db.sql.table";Go.ATTR_DB_STATEMENT="db.statement";Go.ATTR_DB_SYSTEM="db.system";Go.ATTR_DB_USER="db.user";Go.ATTR_NET_PEER_NAME="net.peer.name";Go.ATTR_NET_PEER_PORT="net.peer.port";Go.DB_SYSTEM_VALUE_MSSQL="mssql"});var MWe=w(Ew=>{"use strict";Object.defineProperty(Ew,"__esModule",{value:!0});Ew.once=Ew.getSpanName=void 0;function Gnn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}Ew.getSpanName=Gnn;var znn=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};Ew.once=znn});var DWe=w(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.PACKAGE_NAME=_w.PACKAGE_VERSION=void 0;_w.PACKAGE_VERSION="0.33.0";_w.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var HWe=w(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0});yS.TediousInstrumentation=yS.INJECTED_CTX=void 0;var bw=(Ce(),ke(Ze)),Vnn=Y("events"),th=Jt(),cb=(Pn(),ke(Mr)),gS=CWe(),LWe=MWe(),UWe=DWe(),jWe=Symbol("opentelemetry.instrumentation-tedious.current-database");yS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var FWe=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function cz(e){Object.defineProperty(this,jWe,{value:e,writable:!0})}var _ne=class e extends th.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(UWe.PACKAGE_NAME,UWe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,th.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,th.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new th.InstrumentationNodeModuleDefinition(e.COMPONENT,[">=1.11.0 <20"],t=>{let n=t.Connection.prototype;for(let r of FWe)(0,th.isWrapped)(n[r])&&this._unwrap(n,r),this._wrap(n,r,this._patchQuery(r,t));return(0,th.isWrapped)(n.connect)&&this._unwrap(n,"connect"),this._wrap(n,"connect",this._patchConnect),t},t=>{if(t===void 0)return;let n=t.Connection.prototype;for(let r of FWe)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return cz.call(this,this.config?.options?.database),this.removeListener("databaseChange",cz),this.on("databaseChange",cz),this.once("end",()=>{this.removeListener("databaseChange",cz)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||bw.TraceFlags.NONE).toString(16)}`}_injectContextInfo(t,n,r){return new Promise(i=>{try{let s="set context_info @opentelemetry_traceparent",o=new n.Request(s,c=>{i()});Object.defineProperty(o,yS.INJECTED_CTX,{value:!0});let a=Buffer.from(r,"utf8");o.addParameter("opentelemetry_traceparent",n.TYPES.VarBinary,a,{length:a.length}),t.execSql(o)}catch{i()}})}_shouldInjectFor(t){return t==="execSql"||t==="execSqlBatch"||t==="callProcedure"||t==="execute"}_patchQuery(t,n){return r=>{let i=this;function s(o){if(o?.[yS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof Vnn.EventEmitter))return i._diag.warn(`Unexpected invocation of patched ${t} method. Span not recorded`),r.apply(this,arguments);let a=0,c=0,u=()=>c++,l=()=>a++,d=this[jWe],f=(_=>_.sqlTextOrProcedure==="sp_prepare"&&_.parametersByName?.stmt?.value?_.parametersByName.stmt.value:_.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&th.SemconvStability.OLD&&(p[gS.ATTR_DB_SYSTEM]=gS.DB_SYSTEM_VALUE_MSSQL,p[gS.ATTR_DB_NAME]=d,p[gS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[gS.ATTR_DB_STATEMENT]=f,p[gS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&th.SemconvStability.STABLE&&(p[cb.ATTR_DB_NAMESPACE]=d,p[cb.ATTR_DB_SYSTEM_NAME]=cb.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[cb.ATTR_DB_QUERY_TEXT]=f,p[cb.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&th.SemconvStability.OLD&&(p[gS.ATTR_NET_PEER_NAME]=this.config?.server,p[gS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&th.SemconvStability.STABLE&&(p[cb.ATTR_SERVER_ADDRESS]=this.config?.server,p[cb.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,LWe.getSpanName)(t,d,f,o.table),{kind:bw.SpanKind.CLIENT,attributes:p}),m=(0,LWe.once)(_=>{o.removeListener("done",u),o.removeListener("doneInProc",u),o.removeListener("doneProc",l),o.removeListener("error",m),this.removeListener("end",m),h.setAttribute("tedious.procedure_count",a),h.setAttribute("tedious.statement_count",c),_&&h.setStatus({code:bw.SpanStatusCode.ERROR,message:_.message}),h.end()});o.on("done",u),o.on("doneInProc",u),o.on("doneProc",l),o.once("error",m),this.on("end",m),typeof o.callback=="function"?i._wrap(o,"callback",i._patchCallbackQuery(m)):i._diag.error("Expected request.callback to be a function");let g=()=>bw.context.with(bw.trace.setSpan(bw.context.active(),h),r,this,...arguments);if(!(i.getConfig().enableTraceContextPropagation&&i._shouldInjectFor(t)))return g();let S=i._buildTraceparent(h);i._injectContextInfo(this,n,S).finally(g)}return Object.defineProperty(s,"length",{value:r.length,writable:!1}),s}}_patchCallbackQuery(t){return n=>function(r,i,s){return t(r),n.apply(this,arguments)}}};yS.TediousInstrumentation=_ne});var qWe=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.TediousInstrumentation=void 0;var Wnn=HWe();Object.defineProperty(uz,"TediousInstrumentation",{enumerable:!0,get:function(){return Wnn.TediousInstrumentation}})});var BWe,Knn,GWe,zWe,Ynn,VWe,WWe=v(()=>{BWe=Se(qWe(),1);st();sr();Knn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),GWe="Tedious",zWe=rt(GWe,()=>new BWe.TediousInstrumentation({})),Ynn=(()=>{let e;return{name:GWe,setupOnce(){let t=zWe();e=dP(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let{description:r,data:i}=vt(n);if(!r||i["db.system"]!=="mssql")return;let s=r.split(" ")[0]||"";Knn.has(s)&&n.setAttribute(Rt,"auto.db.otel.tedious")}))}}}),VWe=Ynn});var KWe=w(Tw=>{"use strict";Object.defineProperty(Tw,"__esModule",{value:!0});Tw.PACKAGE_NAME=Tw.PACKAGE_VERSION=void 0;Tw.PACKAGE_VERSION="0.57.0";Tw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var ZWe=w(lz=>{"use strict";Object.defineProperty(lz,"__esModule",{value:!0});lz.GenericPoolInstrumentation=void 0;var vw=(Ce(),ke(Ze)),ub=Jt(),YWe=KWe(),bne="generic-pool",Tne=class extends ub.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(YWe.PACKAGE_NAME,YWe.PACKAGE_VERSION,t)}init(){return[new ub.InstrumentationNodeModuleDefinition(bne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,ub.isWrapped)(n.prototype.acquire)&&this._unwrap(n.prototype,"acquire"),this._wrap(n.prototype,"acquire",this._acquirePatcher.bind(this)),t},t=>{let n=t.Pool;return this._unwrap(n.prototype,"acquire"),t}),new ub.InstrumentationNodeModuleDefinition(bne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,ub.isWrapped)(n.prototype.acquire)&&this._unwrap(n.prototype,"acquire"),this._wrap(n.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),t},t=>{let n=t.Pool;return this._unwrap(n.prototype,"acquire"),t}),new ub.InstrumentationNodeModuleDefinition(bne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,ub.isWrapped)(t.Pool)&&this._unwrap(t,"Pool"),this._wrap(t,"Pool",this._poolWrapper.bind(this)),t),t=>(this._isDisabled=!0,t))]}_acquirePatcher(t){let n=this;return function(...i){let s=vw.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return vw.context.with(vw.trace.setSpan(s,o),()=>t.call(this,...i).then(a=>(o.end(),a),a=>{throw o.recordException(a),o.end(),a}))}}_poolWrapper(t){let n=this;return function(){let i=t.apply(this,arguments);return n._wrap(i,"acquire",n._acquireWithCallbacksPatcher.bind(n)),i}}_acquireWithCallbacksPatcher(t){let n=this;return function(i,s){if(n._isDisabled)return t.call(this,i,s);let o=vw.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return vw.context.with(vw.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};lz.GenericPoolInstrumentation=Tne});var JWe=w(dz=>{"use strict";Object.defineProperty(dz,"__esModule",{value:!0});dz.GenericPoolInstrumentation=void 0;var Znn=ZWe();Object.defineProperty(dz,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return Znn.GenericPoolInstrumentation}})});var XWe,QWe,$We,Jnn,e4e,t4e=v(()=>{XWe=Se(JWe(),1);st();sr();QWe="GenericPool",$We=rt(QWe,()=>new XWe.GenericPoolInstrumentation({})),Jnn=(()=>{let e;return{name:QWe,setupOnce(){let t=$We();e=dP(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let i=vt(n).description;(i==="generic-pool.aquire"||i==="generic-pool.acquire")&&n.setAttribute(Rt,"auto.db.otel.generic_pool")}))}}}),e4e=Jnn});var vne=w(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});nh.ATTR_NET_PEER_PORT=nh.ATTR_NET_PEER_NAME=nh.ATTR_MESSAGING_SYSTEM=nh.ATTR_MESSAGING_OPERATION=void 0;nh.ATTR_MESSAGING_OPERATION="messaging.operation";nh.ATTR_MESSAGING_SYSTEM="messaging.system";nh.ATTR_NET_PEER_NAME="net.peer.name";nh.ATTR_NET_PEER_PORT="net.peer.port"});var Ane=w(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});fs.ATTR_MESSAGING_CONVERSATION_ID=fs.OLD_ATTR_MESSAGING_MESSAGE_ID=fs.MESSAGING_DESTINATION_KIND_VALUE_TOPIC=fs.ATTR_MESSAGING_URL=fs.ATTR_MESSAGING_PROTOCOL_VERSION=fs.ATTR_MESSAGING_PROTOCOL=fs.MESSAGING_OPERATION_VALUE_PROCESS=fs.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY=fs.ATTR_MESSAGING_DESTINATION_KIND=fs.ATTR_MESSAGING_DESTINATION=void 0;fs.ATTR_MESSAGING_DESTINATION="messaging.destination";fs.ATTR_MESSAGING_DESTINATION_KIND="messaging.destination_kind";fs.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key";fs.MESSAGING_OPERATION_VALUE_PROCESS="process";fs.ATTR_MESSAGING_PROTOCOL="messaging.protocol";fs.ATTR_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version";fs.ATTR_MESSAGING_URL="messaging.url";fs.MESSAGING_DESTINATION_KIND_VALUE_TOPIC="topic";fs.OLD_ATTR_MESSAGING_MESSAGE_ID="messaging.message_id";fs.ATTR_MESSAGING_CONVERSATION_ID="messaging.conversation_id"});var Rne=w(lb=>{"use strict";Object.defineProperty(lb,"__esModule",{value:!0});lb.DEFAULT_CONFIG=lb.EndOperation=void 0;var Xnn;(function(e){e.AutoAck="auto ack",e.Ack="ack",e.AckAll="ackAll",e.Reject="reject",e.Nack="nack",e.NackAll="nackAll",e.ChannelClosed="channel closed",e.ChannelError="channel error",e.InstrumentationTimeout="instrumentation timeout"})(Xnn=lb.EndOperation||(lb.EndOperation={}));lb.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var s4e=w(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});ps.isConfirmChannelTracing=ps.unmarkConfirmChannelTracing=ps.markConfirmChannelTracing=ps.getConnectionAttributesFromUrl=ps.getConnectionAttributesFromServer=ps.normalizeExchange=ps.CONNECTION_ATTRIBUTES=ps.CHANNEL_CONSUME_TIMEOUT_TIMER=ps.CHANNEL_SPANS_NOT_ENDED=ps.MESSAGE_STORED_SPAN=void 0;var wne=(Ce(),ke(Ze)),SS=Jt(),fz=(Pn(),ke(Mr)),PN=vne(),pz=Ane();ps.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span");ps.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended");ps.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer");ps.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");var kne=(0,wne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),Qnn=e=>e!==""?e:"";ps.normalizeExchange=Qnn;var $nn=e=>e.replace(/:[^:@/]*@/,":***@"),n4e=(e,t)=>e||(t==="AMQP"?5672:5671),r4e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},i4e=e=>e||"localhost",rh=(e,t,n,r)=>n?{[t]:n}:(wne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),ern=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[PN.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=ern;var trn=(e,t)=>{let n={[pz.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=r4e(r?.protocol);Object.assign(n,{...rh(e,pz.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=i4e(r?.hostname);t&SS.SemconvStability.OLD&&Object.assign(n,{...rh(e,PN.ATTR_NET_PEER_NAME,s,"hostname")}),t&SS.SemconvStability.STABLE&&Object.assign(n,{...rh(e,fz.ATTR_SERVER_ADDRESS,s,"hostname")});let o=n4e(r.port,i);t&SS.SemconvStability.OLD&&Object.assign(n,rh(e,PN.ATTR_NET_PEER_PORT,o,"port")),t&SS.SemconvStability.STABLE&&Object.assign(n,rh(e,fz.ATTR_SERVER_PORT,o,"port"))}else{let r=$nn(e);n[pz.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=r4e(i.protocol);Object.assign(n,{...rh(r,pz.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=i4e(i.hostname);t&SS.SemconvStability.OLD&&Object.assign(n,{...rh(r,PN.ATTR_NET_PEER_NAME,o,"hostname")}),t&SS.SemconvStability.STABLE&&Object.assign(n,{...rh(r,fz.ATTR_SERVER_ADDRESS,o,"hostname")});let a=n4e(i.port?parseInt(i.port):void 0,s);t&SS.SemconvStability.OLD&&Object.assign(n,rh(r,PN.ATTR_NET_PEER_PORT,a,"port")),t&SS.SemconvStability.STABLE&&Object.assign(n,rh(r,fz.ATTR_SERVER_PORT,a,"port"))}catch(i){wne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=trn;var nrn=e=>e.setValue(kne,!0);ps.markConfirmChannelTracing=nrn;var rrn=e=>e.deleteValue(kne);ps.unmarkConfirmChannelTracing=rrn;var irn=e=>e.getValue(kne)===!0;ps.isConfirmChannelTracing=irn});var o4e=w(Aw=>{"use strict";Object.defineProperty(Aw,"__esModule",{value:!0});Aw.PACKAGE_NAME=Aw.PACKAGE_VERSION=void 0;Aw.PACKAGE_VERSION="0.61.0";Aw.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var c4e=w(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});gz.AmqplibInstrumentation=void 0;var Zi=(Ce(),ke(Ze)),hz=fr(),pr=Jt(),srn=vne(),gl=Ane(),jc=Rne(),hs=s4e(),a4e=o4e(),mz=[">=0.5.5 <1"],Ine=class extends pr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(a4e.PACKAGE_NAME,a4e.PACKAGE_VERSION,{...jc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,pr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...jc.DEFAULT_CONFIG,...t})}init(){let t=new pr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",mz,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new pr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",mz,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new pr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",mz,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new pr.InstrumentationNodeModuleDefinition("amqplib",mz,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,pr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,pr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,pr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,pr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,pr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,jc.EndOperation.Ack)),(0,pr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,jc.EndOperation.Nack)),(0,pr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,jc.EndOperation.Reject)),(0,pr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,jc.EndOperation.AckAll)),(0,pr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,jc.EndOperation.NackAll)),(0,pr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,pr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,pr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,pr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,pr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,pr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,pr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,pr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,pr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,pr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,pr.isWrapped)(t.ConfirmChannel.prototype.publish)&&this._unwrap(t.ConfirmChannel.prototype,"publish"),t}getConnectPatch(t){let n=this;return function(i,s,o){return t.call(this,i,s,function(a,c){if(a==null){let u=(0,hs.getConnectionAttributesFromUrl)(i,n._netSemconvStability),l=(0,hs.getConnectionAttributesFromServer)(c);c[hs.CONNECTION_ATTRIBUTES]={...u,...l}}o.apply(this,arguments)})}}getChannelEmitPatch(t){let n=this;return function(i){if(i==="close"){n.endAllSpansOnChannel(this,!0,jc.EndOperation.ChannelClosed,void 0);let s=this[hs.CHANNEL_CONSUME_TIMEOUT_TIMER];s&&clearInterval(s),this[hs.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else i==="error"&&n.endAllSpansOnChannel(this,!0,jc.EndOperation.ChannelError,void 0);return t.apply(this,arguments)}}getAckAllPatch(t,n,r){let i=this;return function(o){return i.endAllSpansOnChannel(this,t,n,o),r.apply(this,arguments)}}getAckPatch(t,n,r){let i=this;return function(o,a,c){let u=this,l=n===jc.EndOperation.Reject?a:c,d=u[hs.CHANNEL_SPANS_NOT_ENDED]??[],f=d.findIndex(p=>p.msg===o);if(f<0)i.endConsumerSpan(o,t,n,l);else if(n!==jc.EndOperation.Reject&&a){for(let p=0;p<=f;p++)i.endConsumerSpan(d[p].msg,t,n,l);d.splice(0,f+1)}else i.endConsumerSpan(o,t,n,l),d.splice(f,1);return r.apply(this,arguments)}}getConsumePatch(t,n){let r=this;return function(s,o,a){let c=this;if(!Object.prototype.hasOwnProperty.call(c,hs.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:l}=r.getConfig();if(l){let d=setInterval(()=>{r.checkConsumeTimeoutOnChannel(c)},l);d.unref(),c[hs.CHANNEL_CONSUME_TIMEOUT_TIMER]=d}c[hs.CHANNEL_SPANS_NOT_ENDED]=[]}let u=function(l){if(!l)return o.call(this,l);let d=l.properties.headers??{},f=Zi.propagation.extract(Zi.ROOT_CONTEXT,d),p=l.fields?.exchange,h;if(r._config.useLinksForConsume){let E=f?Zi.trace.getSpan(f)?.spanContext():void 0;f=void 0,E&&(h=[{context:E}])}let m=r.tracer.startSpan(`${s} process`,{kind:Zi.SpanKind.CONSUMER,attributes:{...c?.connection?.[hs.CONNECTION_ATTRIBUTES],[gl.ATTR_MESSAGING_DESTINATION]:p,[gl.ATTR_MESSAGING_DESTINATION_KIND]:gl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[gl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:l.fields?.routingKey,[srn.ATTR_MESSAGING_OPERATION]:gl.MESSAGING_OPERATION_VALUE_PROCESS,[gl.OLD_ATTR_MESSAGING_MESSAGE_ID]:l?.properties.messageId,[gl.ATTR_MESSAGING_CONVERSATION_ID]:l?.properties.correlationId},links:h},f),{consumeHook:g}=r.getConfig();g&&(0,pr.safeExecuteInTheMiddle)(()=>g(m,{moduleVersion:t,msg:l}),E=>{E&&Zi.diag.error("amqplib instrumentation: consumerHook error",E)},!0),a?.noAck||(c[hs.CHANNEL_SPANS_NOT_ENDED].push({msg:l,timeOfConsume:(0,hz.hrTime)()}),l[hs.MESSAGE_STORED_SPAN]=m);let y=f||Zi.ROOT_CONTEXT;Zi.context.with(Zi.trace.setSpan(y,m),()=>{o.call(this,l)}),a?.noAck&&(r.callConsumeEndHook(m,l,!1,jc.EndOperation.AutoAck),m.end())};return arguments[1]=u,n.apply(this,arguments)}}getConfirmedPublishPatch(t,n){let r=this;return function(s,o,a,c,u){let l=this,{span:d,modifiedOptions:f}=r.createPublishSpan(r,s,o,l,c),{publishHook:p}=r.getConfig();p&&(0,pr.safeExecuteInTheMiddle)(()=>p(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:f,isConfirmChannel:!0}),y=>{y&&Zi.diag.error("amqplib instrumentation: publishHook error",y)},!0);let h=function(y,E){try{u?.call(this,y,E)}finally{let{publishConfirmHook:S}=r.getConfig();S&&(0,pr.safeExecuteInTheMiddle)(()=>S(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:c,isConfirmChannel:!0,confirmError:y}),_=>{_&&Zi.diag.error("amqplib instrumentation: publishConfirmHook error",_)},!0),y&&d.setStatus({code:Zi.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),d.end()}},m=(0,hs.markConfirmChannelTracing)(Zi.context.active()),g=[...arguments];return g[3]=f,g[4]=Zi.context.bind((0,hs.unmarkConfirmChannelTracing)(Zi.trace.setSpan(m,d)),h),Zi.context.with(m,n.bind(this,...g))}}getPublishPatch(t,n){let r=this;return function(s,o,a,c){if((0,hs.isConfirmChannelTracing)(Zi.context.active()))return n.apply(this,arguments);{let u=this,{span:l,modifiedOptions:d}=r.createPublishSpan(r,s,o,u,c),{publishHook:f}=r.getConfig();f&&(0,pr.safeExecuteInTheMiddle)(()=>f(l,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:d,isConfirmChannel:!1}),m=>{m&&Zi.diag.error("amqplib instrumentation: publishHook error",m)},!0);let p=[...arguments];p[3]=d;let h=n.apply(this,p);return l.end(),h}}}createPublishSpan(t,n,r,i,s){let o=(0,hs.normalizeExchange)(n),a=t.tracer.startSpan(`publish ${o}`,{kind:Zi.SpanKind.PRODUCER,attributes:{...i.connection[hs.CONNECTION_ATTRIBUTES],[gl.ATTR_MESSAGING_DESTINATION]:n,[gl.ATTR_MESSAGING_DESTINATION_KIND]:gl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[gl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:r,[gl.OLD_ATTR_MESSAGING_MESSAGE_ID]:s?.messageId,[gl.ATTR_MESSAGING_CONVERSATION_ID]:s?.correlationId}}),c=s??{};return c.headers=c.headers??{},Zi.propagation.inject(Zi.trace.setSpan(Zi.context.active(),a),c.headers),{span:a,modifiedOptions:c}}endConsumerSpan(t,n,r,i){let s=t[hs.MESSAGE_STORED_SPAN];s&&(n!==!1&&s.setStatus({code:Zi.SpanStatusCode.ERROR,message:r!==jc.EndOperation.ChannelClosed&&r!==jc.EndOperation.ChannelError?`${r} called on message${i===!0?" with requeue":i===!1?" without requeue":""}`:r}),this.callConsumeEndHook(s,t,n,r),s.end(),t[hs.MESSAGE_STORED_SPAN]=void 0)}endAllSpansOnChannel(t,n,r,i){(t[hs.CHANNEL_SPANS_NOT_ENDED]??[]).forEach(o=>{this.endConsumerSpan(o.msg,n,r,i)}),t[hs.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(t,n,r,i){let{consumeEndHook:s}=this.getConfig();s&&(0,pr.safeExecuteInTheMiddle)(()=>s(t,{msg:n,rejected:r,endOperation:i}),o=>{o&&Zi.diag.error("amqplib instrumentation: consumerEndHook error",o)},!0)}checkConsumeTimeoutOnChannel(t){let n=(0,hz.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(ES,"__esModule",{value:!0});ES.EndOperation=ES.DEFAULT_CONFIG=ES.AmqplibInstrumentation=void 0;var orn=c4e();Object.defineProperty(ES,"AmqplibInstrumentation",{enumerable:!0,get:function(){return orn.AmqplibInstrumentation}});var u4e=Rne();Object.defineProperty(ES,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return u4e.DEFAULT_CONFIG}});Object.defineProperty(ES,"EndOperation",{enumerable:!0,get:function(){return u4e.EndOperation}})});var d4e,f4e,arn,p4e,crn,h4e,m4e=v(()=>{d4e=Se(l4e(),1);sr();f4e="Amqplib",arn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},p4e=rt(f4e,()=>new d4e.AmqplibInstrumentation(arn)),crn=(()=>({name:f4e,setupOnce(){p4e()}})),h4e=crn});var NN,xne=v(()=>{NN="VercelAI"});function lrn(e){if(typeof e!="object"||e===null)return!1;let t=e;return"type"in t&&"error"in t&&"toolName"in t&&"toolCallId"in t&&t.type==="tool-error"&&t.error instanceof Error}function drn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(frn(t.content),prn(t.content))}function frn(e){for(let t of e){if(!lrn(t))continue;let n=hQ(t.toolCallId);n?Za(r=>{r.setContext("trace",{trace_id:n.traceId,span_id:n.spanId}),r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})}):Za(r=>{r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function prn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&mQ(t.toolCallId)}function hrn(e,t,n,r){let i=e?.recordInputs!==void 0?e.recordInputs:t.recordInputs!==void 0?t.recordInputs:n===!0?!0:r,s=e?.recordOutputs!==void 0?e.recordOutputs:t.recordOutputs!==void 0?t.recordOutputs:n===!0?!0:r;return{recordInputs:i,recordOutputs:s}}var Sz,urn,g4e,yz,y4e=v(()=>{Sz=Se(Jt(),1);st();xne();urn=[">=3.0.0 <7"],g4e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];yz=class e extends Sz.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Nn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new Sz.InstrumentationNodeModuleDefinition("ai",urn,this._patch.bind(this))}callWhenPatched(t){this._isPatched?t():this._callbacks.push(t)}_patch(t){this._isPatched=!0,this._callbacks.forEach(r=>r()),this._callbacks=[];let n=r=>new Proxy(r,{apply:(i,s,o)=>{let a=o[0].experimental_telemetry||{},c=a.isEnabled,u=ct(),l=u?.getIntegrationByName(NN),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=hrn(d,a,c,f);return o[0].experimental_telemetry={...a,isEnabled:c!==void 0?c:!0,recordInputs:p,recordOutputs:h},af(()=>Reflect.apply(i,s,o),m=>{m&&typeof m=="object"&&Gs(m,"_sentry_active_span",Vl())},()=>{},m=>{drn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of g4e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=g4e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function mrn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var S4e,grn,E4e,_4e=v(()=>{st();sr();xne();y4e();S4e=rt(NN,()=>new yz({}));grn=((e={})=>{let t;return{name:NN,options:e,setupOnce(){t=S4e()},afterAllSetup(n){e.force??mrn(n)?AH(n):t?.callWhenPatched(()=>AH(n))}}}),E4e=grn});var _z,yrn,Ez,b4e=v(()=>{_z=Se(Jt(),1);st();yrn=[">=4.0.0 <7"],Ez=class extends _z.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Nn,t)}init(){return new _z.InstrumentationNodeModuleDefinition("openai",yrn,this._patch.bind(this))}_patch(t){let n=t;return n=this._patchClient(n,"OpenAI"),n=this._patchClient(n,"AzureOpenAI"),n}_patchClient(t,n){let r=t[n];if(!r)return t;let i=this.getConfig(),s=function(...o){if(M_(Gy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return kH(a,i)};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}try{t[n]=s}catch{Object.defineProperty(t,n,{value:s,writable:!0,configurable:!0,enumerable:!0})}if(t.default===r)try{t.default=s}catch{Object.defineProperty(t,"default",{value:s,writable:!0,configurable:!0,enumerable:!0})}return t}}});var T4e,Srn,v4e,A4e=v(()=>{st();sr();b4e();T4e=rt(Gy,e=>new Ez(e)),Srn=((e={})=>({name:Gy,setupOnce(){T4e(e)}})),v4e=Srn});var Tz,Ern,bz,R4e=v(()=>{Tz=Se(Jt(),1);st();Ern=[">=0.19.2 <1.0.0"],bz=class extends Tz.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Nn,t)}init(){return new Tz.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",Ern,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(M_(zy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return IH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}try{t.Anthropic=i}catch{Object.defineProperty(t,"Anthropic",{value:i,writable:!0,configurable:!0,enumerable:!0})}if(t.default===n)try{t.default=i}catch{Object.defineProperty(t,"default",{value:i,writable:!0,configurable:!0,enumerable:!0})}return t}}});var w4e,_rn,k4e,I4e=v(()=>{st();sr();R4e();w4e=rt(zy,e=>new bz(e)),_rn=((e={})=>({name:zy,options:e,setupOnce(){w4e(e)}})),k4e=_rn});var Rw,x4e,vz,O4e=v(()=>{Rw=Se(Jt(),1);st();x4e=[">=0.10.0 <2"],vz=class extends Rw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Nn,t)}init(){return new Rw.InstrumentationNodeModuleDefinition("@google/genai",x4e,n=>this._patch(n),n=>n,[new Rw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",x4e,n=>this._patch(n),n=>n)])}_patch(t){let n=t.GoogleGenAI,r=this.getConfig();if(typeof n!="function")return t;let i=function(...s){if(M_(Vy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return xH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}return uP(t,"GoogleGenAI",i),t}}});var P4e,brn,N4e,C4e=v(()=>{st();sr();O4e();P4e=rt(Vy,e=>new vz(e)),brn=((e={})=>({name:Vy,setupOnce(){P4e(e)}})),N4e=brn});function Trn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function vrn(e,t,n){return new Proxy(e,{apply(r,i,s){let a=s[1];(!a||typeof a!="object"||Array.isArray(a))&&(a={},s[1]=a);let c=a.callbacks,u=Trn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var _S,Az,Rz,M4e=v(()=>{_S=Se(Jt(),1);st();Az=[">=0.1.0 <2.0.0"];Rz=class extends _S.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Nn,t)}init(){let t=[],n=["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"];for(let r of n)t.push(new _S.InstrumentationNodeModuleDefinition(r,Az,this._patch.bind(this),i=>i,[new _S.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,Az,this._patch.bind(this),i=>i)]));return t.push(new _S.InstrumentationNodeModuleDefinition("langchain",Az,this._patch.bind(this),r=>r,[new _S.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",Az,this._patch.bind(this),r=>r)])),t}_patch(t){CX([Gy,zy,Vy]);let n=CH(this.getConfig());return this._patchRunnableMethods(t,n),t}_patchRunnableMethods(t,n){let r=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],i=t.universal_exports??t,s=Object.values(i).find(c=>typeof c=="function"&&r.includes(c.name));if(!s)return;let o=s.prototype;if(o.__sentry_patched__)return;o.__sentry_patched__=!0;let a=["invoke","stream","batch"];for(let c of a){let u=o[c];typeof u=="function"&&(o[c]=vrn(u,n))}}}});var D4e,Arn,L4e,U4e=v(()=>{st();sr();M4e();D4e=rt(OH,e=>new Rz(e)),Arn=((e={})=>({name:OH,setupOnce(){D4e(e)}})),L4e=Arn});var ww,F4e,wz,j4e=v(()=>{ww=Se(Jt(),1);st();F4e=[">=0.0.0 <2.0.0"],wz=class extends ww.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Nn,t)}init(){return new ww.InstrumentationNodeModuleDefinition("@langchain/langgraph",F4e,this._patch.bind(this),n=>n,[new ww.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",F4e,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&DH(t.StateGraph.prototype,this.getConfig()),t}}});var H4e,Rrn,q4e,B4e=v(()=>{st();sr();j4e();H4e=rt(MH,e=>new wz(e)),Rrn=((e={})=>({name:MH,setupOnce(){H4e(e)}})),q4e=Rrn});import*as z4e from"node:net";function V4e(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Dm.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&il.error(d?.message)},!0)});let c=new Dm.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>G4e(l,n,r,e,o)),u=["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"];for(let l of u)c.files.push(new Dm.InstrumentationNodeModuleFile(l,t,d=>G4e(d,n,r,e,o),d=>W4e(d,r)));return c}function G4e(e,t,n,r,i){return W4e(e,n),t(e,"addDoc",wrn(r,i)),t(e,"getDocs",Irn(r,i)),t(e,"setDoc",xrn(r,i)),t(e,"deleteDoc",krn(r,i)),e}function W4e(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Dm.isWrapped)(e[n])&&t(e,n);return e}function wrn(e,t){return function(r){return function(i,s){let o=Iz(e,"addDoc",i);return t(o),kz(o,()=>r(i,s))}}}function krn(e,t){return function(r){return function(i){let s=Iz(e,"deleteDoc",i.parent||i);return t(s),kz(s,()=>r(i))}}}function Irn(e,t){return function(r){return function(i){let s=Iz(e,"getDocs",i);return t(s),kz(s,()=>r(i))}}}function xrn(e,t){return function(r){return function(i,s,o){let a=Iz(e,"setDoc",i.parent||i);return t(a),kz(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function kz(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Dm.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function Iz(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return Prn(r,n),r.setAttribute(lA,t),r}function Orn(e){let t,n;if(typeof e.host=="string")if(e.host.startsWith("[")){if(e.host.endsWith("]"))t=e.host.replace(/^\[|\]$/g,"");else if(e.host.includes("]:")){let r=e.host.lastIndexOf(":");r!==-1&&(t=e.host.slice(1,r).replace(/^\[|\]$/g,""),n=e.host.slice(r+1))}}else if(z4e.isIPv6(e.host))t=e.host;else{let r=e.host.lastIndexOf(":");r!==-1?(t=e.host.slice(0,r),n=e.host.slice(r+1)):t=e.host}return{address:t,port:n?parseInt(n,10):void 0}}function Prn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[oJ]:t.path,[aJ]:n.name,[g_]:"firebase.firestore","firebase.firestore.type":t.type,"firebase.firestore.options.projectId":r.projectId,"firebase.firestore.options.appId":r.appId,"firebase.firestore.options.messagingSenderId":r.messagingSenderId,"firebase.firestore.options.storageBucket":r.storageBucket},{address:a,port:c}=Orn(s);a&&(o[mJ]=a),c&&(o[gJ]=c),e.setAttributes(o)}var Dm,K4e=v(()=>{Ce();Dm=Se(Jt(),1);Pn()});function Y4e(e,t,n,r,i){let s=()=>{},o=()=>{},a=i.functions?.errorHook,c=i.functions?.requestHook,u=i.functions?.responseHook;typeof u=="function"&&(o=(f,p)=>{(0,Lm.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&il.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Lm.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&il.error(p?.message)},!0)});let l=new Lm.InstrumentationNodeModuleDefinition("firebase-functions",t);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:f,triggerType:p})=>{l.files.push(new Lm.InstrumentationNodeModuleFile(f,t,h=>Nrn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>Z4e(h,r)))}),l}function Hc(e,t,n){return function(i){return function(...s){let o=typeof s[0]=="function"?s[0]:s[1],a=typeof s[0]=="function"?void 0:s[0];if(!o)return i.call(this,...s);let c=async function(...u){let l=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",d=e.startSpan(`firebase.function.${n}`,{kind:$r.SERVER}),f={"faas.name":l,"faas.trigger":n,"faas.provider":"firebase"};return process.env.GCLOUD_PROJECT&&(f["cloud.project_id"]=process.env.GCLOUD_PROJECT),process.env.EVENTARC_CLOUD_EVENT_SOURCE&&(f["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE),d.setAttributes(f),t?.requestHook?.(d),Ve.with(jt.setSpan(Ve.active(),d),async()=>{let p,h;try{h=await o.apply(this,u)}catch(m){p=m}if(t?.responseHook?.(d,p),p&&d.recordException(p),d.end(),p)throw await t?.errorHook?.(d,p),p;return h})};return a?i.call(this,a,c):i.call(this,c)}}}function Nrn(e,t,n,r,i,s){switch(Z4e(e,n),s){case"function":t(e,"onRequest",Hc(r,i,"http.request")),t(e,"onCall",Hc(r,i,"http.call"));break;case"firestore":t(e,"onDocumentCreated",Hc(r,i,"firestore.document.created")),t(e,"onDocumentUpdated",Hc(r,i,"firestore.document.updated")),t(e,"onDocumentDeleted",Hc(r,i,"firestore.document.deleted")),t(e,"onDocumentWritten",Hc(r,i,"firestore.document.written")),t(e,"onDocumentCreatedWithAuthContext",Hc(r,i,"firestore.document.created")),t(e,"onDocumentUpdatedWithAuthContext",Hc(r,i,"firestore.document.updated")),t(e,"onDocumentDeletedWithAuthContext",Hc(r,i,"firestore.document.deleted")),t(e,"onDocumentWrittenWithAuthContext",Hc(r,i,"firestore.document.written"));break;case"scheduler":t(e,"onSchedule",Hc(r,i,"scheduler.scheduled"));break;case"storage":t(e,"onObjectFinalized",Hc(r,i,"storage.object.finalized")),t(e,"onObjectArchived",Hc(r,i,"storage.object.archived")),t(e,"onObjectDeleted",Hc(r,i,"storage.object.deleted")),t(e,"onObjectMetadataUpdated",Hc(r,i,"storage.object.metadataUpdated"));break}return e}function Z4e(e,t){let n=["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"];for(let r of n)(0,Lm.isWrapped)(e[r])&&t(e,r);return e}var Lm,J4e=v(()=>{Ce();Lm=Se(Jt(),1)});var Q4e,X4e,Crn,Mrn,xz,$4e=v(()=>{Q4e=Se(Jt(),1);st();K4e();J4e();X4e={},Crn=[">=3.0.0 <5"],Mrn=[">=6.0.0 <7"],xz=class extends Q4e.InstrumentationBase{constructor(t=X4e){super("@sentry/instrumentation-firebase",Nn,t)}setConfig(t={}){super.setConfig({...X4e,...t})}init(){let t=[];return t.push(V4e(this.tracer,Crn,this._wrap,this._unwrap,this.getConfig())),t.push(Y4e(this.tracer,Mrn,this._wrap,this._unwrap,this.getConfig())),t}}});var eKe,Drn,tKe,Lrn,nKe,rKe=v(()=>{st();sr();$4e();eKe="Firebase",Drn={firestoreSpanCreationHook:e=>{Dr(e,"auto.firebase.otel.firestore"),e.setAttribute(zt,"db.query")},functions:{requestHook:e=>{Dr(e,"auto.firebase.otel.functions"),e.setAttribute(zt,"http.request")},errorHook:async(e,t)=>{t&&(Wt(t,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await YA(2e3))}}},tKe=rt(eKe,()=>new xz(Drn)),Lrn=(()=>({name:eKe,setupOnce(){tKe()}})),nKe=Lrn});function iKe(){return[XHe(),NBe(),sGe(),nWe(),WGe(),aze(),Eze(),Pze(),uVe(),OVe(),U2e(),X2e(),SWe(),PWe(),VWe(),e4e(),TGe(),h4e(),CGe(),L4e(),q4e(),E4e(),v4e(),k4e(),N4e(),MVe(),nKe()]}var sKe=v(()=>{m4e();I4e();NWe();QHe();DBe();rKe();t4e();C4e();aGe();Q2e();rWe();vGe();EWe();U4e();B4e();MGe();KGe();cze();_ze();Nze();A4e();PVe();DVe();F2e();lVe();WWe();_4e()});function aKe(e,t={}){e.getOptions().debug&&K$();let[n,r]=Urn(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function Urn(e,t={}){let n=new oKe.BasicTracerProvider({sampler:new qq(e),resource:(0,Oz.defaultResource)().merge((0,Oz.resourceFromAttributes)({[yJ]:"node",[sJ]:"sentry",[SJ]:Nn})),forceFlushTimeoutMillis:500,spanProcessors:[new Hq({timeout:Frn(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Jd.setGlobalPropagator(new jq);let r=new W$;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function Frn(e){if(e!=null){if(e>One)return So&&Z.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${One}`),One;if(e<=0||Number.isNaN(e)){So&&Z.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var Oz,oKe,One,cKe=v(()=>{Ce();Oz=Se(s$(),1),oKe=Se(P$(),1);Pn();st();sr();wR();J_();One=1e6});function uKe(){return Jq().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(kHe(),LHe())}function lKe(e){return[...uKe(),...Os(e)?iKe():[]]}function Pne(e={}){return jrn(e,lKe)}function jrn(e={},t){D_(e,"node");let n=see({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(aKe(n,{spanProcessors:e.openTelemetrySpanProcessors}),oee()),n}var dKe=v(()=>{st();sr();IHe();UHe();sKe();cKe()});var fKe=v(()=>{dKe();st()});var EKe={};Rr(EKe,{_resetPluginRootForTests:()=>Brn,features:()=>zo,observability:()=>Mne,resolvePluginRoot:()=>nn,review:()=>yf,stripWildcardAllowedOrigins:()=>Cne});import{existsSync as pKe}from"node:fs";import{dirname as hKe,join as mKe}from"node:path";import{fileURLToPath as qrn}from"node:url";function SKe(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Nne(e,t){let n=SKe(e);if(n===void 0)return t;let r=n.trim().toLowerCase();return r==="1"||r==="true"||r==="yes"||r==="on"?!0:r==="0"||r==="false"||r==="no"||r==="off"||r===""?!1:t}function gKe(e,t){let n=SKe(e);return n===void 0||n===""?t:n}function Brn(){gf=null}function nn(){if(gf!==null)return gf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return gf=e,gf;let t=yKe(process.argv[1]);if(t)return gf=t,process.env.CLAUDE_PLUGIN_ROOT=t,console.error(`[haiku] Self-resolved plugin root from argv: ${t}`),gf;try{let n=qrn(import.meta.url),r=yKe(n);if(r)return gf=r,process.env.CLAUDE_PLUGIN_ROOT=r,console.error(`[haiku] Self-resolved plugin root from module: ${r}`),gf}catch{}return gf="",gf}function yKe(e){if(!e)return null;let t=hKe(e);for(let n=0;n<6;n++){if(pKe(mKe(t,"studios"))||pKe(mKe(t,".claude-plugin","plugin.json")))return t;let r=hKe(t);if(r===t)return null;t=r}return null}function Cne(){let e=yf.allowedOrigins.length,t=yf.allowedOrigins.filter(r=>r!=="*"),n=e-t.length;return n>0&&(console.warn(`[haiku] WARN: HAIKU_REVIEW_ALLOWED_ORIGINS contained "*". Ignoring \u2014 wildcard CORS is unsafe with this server's auth model. Set an explicit allow-list.`),yf.allowedOrigins.length=0,yf.allowedOrigins.push(...t)),n}var gf,zo,yf,Mne,Ci=v(()=>{"use strict";gf=null;zo={modelSelection:Nne("HAIKU_MODEL_SELECTION",!0),remoteReview:Nne("HAIKU_REMOTE_REVIEW",!1),telemetry:Nne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},yf={siteUrl:gKe("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:gKe("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};Mne={sentryDsn:""}});import{readFileSync as Grn}from"node:fs";import{join as zrn}from"node:path";function bS(){try{let e=nn();if(e)return JSON.parse(Grn(zrn(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var od,db=v(()=>{"use strict";Ci();od="9.0.0"});var bKe={};Rr(bKe,{flush:()=>Sf,isSentryConfigured:()=>Lne,reportError:()=>ms,reportFeedback:()=>Dne});function _Ke(e,t){!t||Object.keys(t).length===0||(e.setContext("session",t),t.CLAUDE_CODE_IS_COWORK&&e.setTag("cowork",t.CLAUDE_CODE_IS_COWORK),t.CLAUDE_MODEL&&e.setTag("model",t.CLAUDE_MODEL),t.CLAUDE_SESSION_ID&&e.setTag("session_id",t.CLAUDE_SESSION_ID),t.CLAUDE_CODE_ENTRYPOINT&&e.setTag("entrypoint",t.CLAUDE_CODE_ENTRYPOINT))}function ms(e,t,n){kw&&Za(r=>{_Ke(r,n),Wt(e,{extra:t})})}function Dne(e,t,n,r){kw&&Za(i=>{_Ke(i,t),i.setTag("feedback","true"),mH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Lne(){return kw!==""}async function Sf(e=2e3){kw&&await YA(e)}var kw,ih=v(()=>{"use strict";fKe();Ci();db();kw=Mne.sentryDsn;kw&&Pne({dsn:kw,release:`haiku-mcp@${od}`,tracesSampleRate:0})});var vKe={};Rr(vKe,{maybeRebuildSpaForDev:()=>Xrn});import{execFileSync as Vrn}from"node:child_process";import{existsSync as Nz,readdirSync as Wrn,statSync as TKe}from"node:fs";import{dirname as Krn,join as Pz,resolve as Une}from"node:path";import{fileURLToPath as Yrn}from"node:url";function Zrn(e){if(!Nz(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=Wrn(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=Pz(r,s),a;try{a=TKe(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function Jrn(e){let t;try{t=Krn(Yrn(e))}catch{t=process.cwd()}let n=Une(t,".."),r=Une(n,".."),i=Pz(r,"haiku-ui","src"),s=Pz(n,"scripts","bundle-haiku-ui.mjs"),o=Pz(n,"src","haiku-ui-html.ts");return!Nz(i)||!Nz(s)?null:{repoRoot:Une(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function Xrn(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=Jrn(e);if(!t)return;let n=Zrn(t.uiSrcDir),r=Nz(t.bundledHtml)?TKe(t.bundledHtml).mtimeMs:0;if(n<=r)return;console.error("[haiku] SPA sources newer than haiku-ui-html.ts \u2014 rebuilding (dev mode)\u2026");let i=Date.now();try{Vrn("node",[t.bundleScript],{cwd:t.repoRoot,stdio:["ignore","ignore","inherit"]})}catch(s){throw new Error(`[haiku] SPA rebuild failed: ${s instanceof Error?s.message:String(s)} + Run 'node packages/haiku/scripts/bundle-haiku-ui.mjs' manually to see full output, or set HAIKU_DEV_SPA_AUTO_REBUILD=0 to skip the check.`)}console.error(`[haiku] SPA rebuild complete in ${((Date.now()-i)/1e3).toFixed(1)}s.`)}var AKe=v(()=>{"use strict"});var RKe={};Rr(RKe,{askUserInstruction:()=>nin,getCapabilities:()=>Mi,getHarness:()=>$rn,isClaudeCode:()=>sh,listHarnesses:()=>ein,mapModelTier:()=>rin,setHarness:()=>Qrn,skillReference:()=>MN,subagentInstruction:()=>tin});function Qrn(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in CN?Iw=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(CN).join(", ")}`),Iw="claude-code"),console.error(`[haiku] Harness: ${CN[Iw].displayName}`)}function $rn(){return Iw}function Mi(){return CN[Iw]}function sh(){return Iw==="claude-code"}function ein(){return Object.keys(CN)}function tin(e){let t=Mi();if(!t.subagents.supported)return e.count&&e.count>1?`Execute ${e.count} tasks sequentially for: ${e.purpose}. Complete each task fully before starting the next.`:`Execute the following task directly: ${e.purpose}.`;let n=t.subagents.toolNames[0]||"subagent",r=[];if(e.count&&e.count>1&&t.subagents.parallelSpawn?r.push(`Spawn ${e.count} \`${n}\` calls in a single response (parallel) for: ${e.purpose}.`):e.count&&e.count>1?r.push(`Spawn ${e.count} \`${n}\` calls for: ${e.purpose}.`):r.push(`Spawn a \`${n}\` for: ${e.purpose}.`),e.agentType&&t.subagents.toolNames.includes("Agent")&&sh()&&r.push(`Agent type: \`${e.agentType}\``),e.model&&t.subagents.modelParam){let i=t.modelTierMap[e.model]||e.model;r.push(`Spawn with \`model: "${i}"\`.`)}return r.join(` +`)}function MN(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function nin(){let e=Mi();return e.nativeAskUser?"Use `AskUserQuestion` with an `options[]` array for every decision that has known alternatives \u2014 NEVER output option lists as plain text":e.elicitation?"When you have questions with known alternatives, present them as a numbered list and ask the user to pick. Use MCP elicitation when available for structured input.":"When you have questions with known alternatives, present them as a clear numbered list and ask the user to pick."}function rin(e){return Mi().modelTierMap[e]||e}var CN,Iw,Ef=v(()=>{"use strict";CN={"claude-code":{displayName:"Claude Code",nativeSkills:!0,promptsAsSlashCommands:!0,hooks:!0,elicitation:!0,nativeAskUser:!0,planMode:!0,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"anthropic",subagents:{supported:!0,toolNames:["Agent","Task"],modelParam:!0,parallelSpawn:!0,backgroundSpawn:!0,isolation:!0},modelTiers:["haiku","sonnet","opus"],modelTierMap:{haiku:"haiku",sonnet:"sonnet",opus:"opus"}},cursor:{displayName:"Cursor",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!0,nativeAskUser:!1,planMode:!1,maxTools:40,mcpPrompts:!0,mcpResources:!0,modelProvider:"multi",subagents:{supported:!0,toolNames:["Agent"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!0},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},windsurf:{displayName:"Windsurf",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:100,mcpPrompts:!0,mcpResources:!0,modelProvider:"multi",subagents:{supported:!1,toolNames:[],modelParam:!1,parallelSpawn:!1,backgroundSpawn:!1,isolation:!1},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},"gemini-cli":{displayName:"Gemini CLI",nativeSkills:!1,promptsAsSlashCommands:!0,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"google",subagents:{supported:!0,toolNames:["@subagent"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!1},modelTiers:["flash","pro"],modelTierMap:{haiku:"flash",sonnet:"pro",opus:"pro"}},opencode:{displayName:"OpenCode",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!1,mcpResources:!1,modelProvider:"multi",subagents:{supported:!0,toolNames:["subagent"],modelParam:!0,parallelSpawn:!1,backgroundSpawn:!1,isolation:!1},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},kiro:{displayName:"Kiro",nativeSkills:!1,promptsAsSlashCommands:!0,hooks:!0,elicitation:!0,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"anthropic",subagents:{supported:!0,toolNames:["/spawn"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!0},modelTiers:["haiku","sonnet","opus"],modelTierMap:{haiku:"haiku",sonnet:"sonnet",opus:"opus"}}},Iw="claude-code"});var Cn,Fne,Qe,oh,DN=v(()=>{(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},e.getValidEnumValues=i=>{let s=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},e.find=(i,s)=>{for(let o of i)if(s(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(Cn||(Cn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Fne||(Fne={}));Qe=Cn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),oh=e=>{switch(typeof e){case"undefined":return Qe.undefined;case"string":return Qe.string;case"number":return Number.isNaN(e)?Qe.nan:Qe.number;case"boolean":return Qe.boolean;case"function":return Qe.function;case"bigint":return Qe.bigint;case"symbol":return Qe.symbol;case"object":return Array.isArray(e)?Qe.array:e===null?Qe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Qe.promise:typeof Map<"u"&&e instanceof Map?Qe.map:typeof Set<"u"&&e instanceof Set?Qe.set:typeof Date<"u"&&e instanceof Date?Qe.date:Qe.object;default:return Qe.unknown}}});var Ie,iin,Eu,Cz=v(()=>{DN();Ie=Cn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),iin=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Eu=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Eu.create=e=>new Eu(e)});var sin,Um,jne=v(()=>{Cz();DN();sin=(e,t)=>{let n;switch(e.code){case Ie.invalid_type:e.received===Qe.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Ie.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Cn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Cn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Cn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Cn.joinValues(e.options)}, received '${e.received}'`;break;case Ie.invalid_arguments:n="Invalid function arguments";break;case Ie.invalid_return_type:n="Invalid function return type";break;case Ie.invalid_date:n="Invalid date";break;case Ie.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Cn.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Ie.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Ie.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Ie.custom:n="Invalid input";break;case Ie.invalid_intersection_types:n="Intersection results could not be merged";break;case Ie.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Ie.not_finite:n="Number must be finite";break;default:n=t.defaultError,Cn.assertNever(e)}return{message:n}},Um=sin});function oin(e){wKe=e}function xw(){return wKe}var wKe,Mz=v(()=>{jne();wKe=Um});function We(e,t){let n=xw(),r=LN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Um?void 0:Um].filter(i=>!!i)});e.common.issues.push(r)}var LN,ain,ha,Mt,fb,tc,Dz,Lz,TS,Ow,Hne=v(()=>{Mz();jne();LN=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}},ain=[];ha=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Mt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Mt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Mt=Object.freeze({status:"aborted"}),fb=e=>({status:"dirty",value:e}),tc=e=>({status:"valid",value:e}),Dz=e=>e.status==="aborted",Lz=e=>e.status==="dirty",TS=e=>e.status==="valid",Ow=e=>typeof Promise<"u"&&e instanceof Promise});var kKe=v(()=>{});var ut,IKe=v(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(ut||(ut={}))});function un(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function NKe(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Ain(e){return new RegExp(`^${NKe(e)}$`)}function CKe(e){let t=`${PKe}T${NKe(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Rin(e,t){return!!((t==="v4"||!t)&&yin.test(e)||(t==="v6"||!t)&&Ein.test(e))}function win(e,t){if(!pin.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function kin(e,t){return!!((t==="v4"||!t)&&Sin.test(e)||(t==="v6"||!t)&&_in.test(e))}function Iin(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function Pw(e){if(e instanceof _u){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ad.create(Pw(r))}return new _u({...e._def,shape:()=>t})}else return e instanceof Hm?new Hm({...e._def,type:Pw(e.element)}):e instanceof ad?ad.create(Pw(e.unwrap())):e instanceof ch?ch.create(Pw(e.unwrap())):e instanceof ah?ah.create(e.items.map(t=>Pw(t))):e}function Bne(e,t){let n=oh(e),r=oh(t);if(e===t)return{valid:!0,data:e};if(n===Qe.object&&r===Qe.object){let i=Cn.objectKeys(t),s=Cn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=Bne(e[a],t[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===Qe.array&&r===Qe.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let s=0;s{let s=e(r);if(s instanceof Promise)return s.then(o=>{if(!o){let a=OKe(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=OKe(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):AS.create()}var cd,xKe,mn,cin,uin,lin,din,fin,pin,hin,min,gin,qne,yin,Sin,Ein,_in,bin,Tin,PKe,vin,vS,pb,hb,mb,gb,Nw,yb,Sb,AS,jm,_f,Cw,Hm,_u,Eb,Fm,Uz,_b,ah,Fz,Mw,Dw,jz,bb,Tb,vb,Ab,RS,ud,ad,ch,Rb,wb,Lw,xin,UN,FN,kb,Oin,Bt,Pin,LKe,UKe,Nin,Cin,FKe,Min,Din,Lin,Uin,Fin,jin,Hin,qin,Bin,Gin,zin,Vin,Win,Kin,Yin,Zin,Jin,Xin,Qin,$in,esn,tsn,nsn,rsn,isn,ssn,osn,asn,csn,usn,lsn,dsn,fsn,psn,jKe=v(()=>{Cz();Mz();IKe();Hne();DN();cd=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},xKe=(e,t)=>{if(TS(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Eu(e.common.issues);return this._error=n,this._error}}};mn=class{get description(){return this._def.description}_getType(t){return oh(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:oh(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new ha,ctx:{common:t.parent.common,data:t.data,parsedType:oh(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Ow(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:oh(t)},i=this._parseSync({data:t,path:r.path,parent:r});return xKe(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:oh(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return TS(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>TS(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:oh(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(Ow(i)?i:Promise.resolve(i));return xKe(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Ie.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new ud({schema:this,typeName:Bt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return ad.create(this,this._def)}nullable(){return ch.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Hm.create(this)}promise(){return RS.create(this,this._def)}or(t){return Eb.create([this,t],this._def)}and(t){return _b.create(this,t,this._def)}transform(t){return new ud({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Rb({...un(this._def),innerType:this,defaultValue:n,typeName:Bt.ZodDefault})}brand(){return new UN({typeName:Bt.ZodBranded,type:this,...un(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new wb({...un(this._def),innerType:this,catchValue:n,typeName:Bt.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return FN.create(this,t)}readonly(){return kb.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},cin=/^c[^\s-]{8,}$/i,uin=/^[0-9a-z]+$/,lin=/^[0-9A-HJKMNP-TV-Z]{26}$/i,din=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,fin=/^[a-z0-9_-]{21}$/i,pin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,hin=/^[-+]?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)?)??$/,min=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,gin="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",yin=/^(?:(?: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])$/,Sin=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,Ein=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,_in=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,bin=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Tin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,PKe="((\\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])))",vin=new RegExp(`^${PKe}$`);vS=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Qe.string){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.string,received:s.parsedType}),Mt}let r=new ha,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:Ie.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Ie.invalid_string,...ut.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...ut.errToObj(t)})}url(t){return this._addCheck({kind:"url",...ut.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...ut.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...ut.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...ut.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...ut.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...ut.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...ut.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...ut.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...ut.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...ut.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...ut.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...ut.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...ut.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...ut.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...ut.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...ut.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...ut.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...ut.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...ut.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...ut.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...ut.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...ut.errToObj(n)})}nonempty(t){return this.min(1,ut.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew vS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});pb=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Qe.number){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.number,received:s.parsedType}),Mt}let r,i=new ha;for(let s of this._def.checks)s.kind==="int"?Cn.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Iin(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_finite,message:s.message}),i.dirty()):Cn.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:ut.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:ut.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ut.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ut.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&Cn.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew pb({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});hb=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==Qe.bigint)return this._getInvalidInput(t);let r,i=new ha;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):Cn.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return We(n,{code:Ie.invalid_type,expected:Qe.bigint,received:n.parsedType}),Mt}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew hb({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});mb=class extends mn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Qe.boolean){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.boolean,received:r.parsedType}),Mt}return tc(t.data)}};mb.create=e=>new mb({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});gb=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Qe.date){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.date,received:s.parsedType}),Mt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_date}),Mt}let r=new ha,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:Ie.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):Cn.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:ut.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:ut.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew gb({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});Nw=class extends mn{_parse(t){if(this._getType(t)!==Qe.symbol){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.symbol,received:r.parsedType}),Mt}return tc(t.data)}};Nw.create=e=>new Nw({typeName:Bt.ZodSymbol,...un(e)});yb=class extends mn{_parse(t){if(this._getType(t)!==Qe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.undefined,received:r.parsedType}),Mt}return tc(t.data)}};yb.create=e=>new yb({typeName:Bt.ZodUndefined,...un(e)});Sb=class extends mn{_parse(t){if(this._getType(t)!==Qe.null){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.null,received:r.parsedType}),Mt}return tc(t.data)}};Sb.create=e=>new Sb({typeName:Bt.ZodNull,...un(e)});AS=class extends mn{constructor(){super(...arguments),this._any=!0}_parse(t){return tc(t.data)}};AS.create=e=>new AS({typeName:Bt.ZodAny,...un(e)});jm=class extends mn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return tc(t.data)}};jm.create=e=>new jm({typeName:Bt.ZodUnknown,...un(e)});_f=class extends mn{_parse(t){let n=this._getOrReturnCtx(t);return We(n,{code:Ie.invalid_type,expected:Qe.never,received:n.parsedType}),Mt}};_f.create=e=>new _f({typeName:Bt.ZodNever,...un(e)});Cw=class extends mn{_parse(t){if(this._getType(t)!==Qe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.void,received:r.parsedType}),Mt}return tc(t.data)}};Cw.create=e=>new Cw({typeName:Bt.ZodVoid,...un(e)});Hm=class e extends mn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==Qe.array)return We(n,{code:Ie.invalid_type,expected:Qe.array,received:n.parsedType}),Mt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(We(n,{code:Ie.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new cd(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new cd(n,o,n.path,a)));return ha.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:ut.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:ut.toString(n)}})}nonempty(t){return this.min(1,t)}};Hm.create=(e,t)=>new Hm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});_u=class e extends mn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=Cn.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==Qe.object){let u=this._getOrReturnCtx(t);return We(u,{code:Ie.invalid_type,expected:Qe.object,received:u.parsedType}),Mt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof _f&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new cd(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof _f){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(We(i,{code:Ie.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new cd(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>ha.mergeObjectSync(r,u)):ha.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return ut.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:ut.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Bt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of Cn.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of Cn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Pw(this)}partial(t){let n={};for(let r of Cn.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of Cn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof ad;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return MKe(Cn.objectKeys(this.shape))}};_u.create=(e,t)=>new _u({shape:()=>e,unknownKeys:"strip",catchall:_f.create(),typeName:Bt.ZodObject,...un(t)});_u.strictCreate=(e,t)=>new _u({shape:()=>e,unknownKeys:"strict",catchall:_f.create(),typeName:Bt.ZodObject,...un(t)});_u.lazycreate=(e,t)=>new _u({shape:e,unknownKeys:"strip",catchall:_f.create(),typeName:Bt.ZodObject,...un(t)});Eb=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Eu(a.ctx.common.issues));return We(n,{code:Ie.invalid_union,unionErrors:o}),Mt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Eu(c));return We(n,{code:Ie.invalid_union,unionErrors:a}),Mt}}get options(){return this._def.options}};Eb.create=(e,t)=>new Eb({options:e,typeName:Bt.ZodUnion,...un(t)});Fm=e=>e instanceof bb?Fm(e.schema):e instanceof ud?Fm(e.innerType()):e instanceof Tb?[e.value]:e instanceof vb?e.options:e instanceof Ab?Cn.objectValues(e.enum):e instanceof Rb?Fm(e._def.innerType):e instanceof yb?[void 0]:e instanceof Sb?[null]:e instanceof ad?[void 0,...Fm(e.unwrap())]:e instanceof ch?[null,...Fm(e.unwrap())]:e instanceof UN||e instanceof kb?Fm(e.unwrap()):e instanceof wb?Fm(e._def.innerType):[],Uz=class e extends mn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.object)return We(n,{code:Ie.invalid_type,expected:Qe.object,received:n.parsedType}),Mt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(We(n,{code:Ie.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=Fm(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:Bt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...un(r)})}};_b=class extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Dz(s)||Dz(o))return Mt;let a=Bne(s.value,o.value);return a.valid?((Lz(s)||Lz(o))&&n.dirty(),{status:n.value,value:a.data}):(We(r,{code:Ie.invalid_intersection_types}),Mt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};_b.create=(e,t,n)=>new _b({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ah=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.array)return We(r,{code:Ie.invalid_type,expected:Qe.array,received:r.parsedType}),Mt;if(r.data.lengththis._def.items.length&&(We(r,{code:Ie.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new cd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>ha.mergeArray(n,o)):ha.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};ah.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ah({items:e,typeName:Bt.ZodTuple,rest:null,...un(t)})};Fz=class e extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.object)return We(r,{code:Ie.invalid_type,expected:Qe.object,received:r.parsedType}),Mt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new cd(r,a,r.path,a)),value:o._parse(new cd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?ha.mergeObjectAsync(n,i):ha.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof mn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:vS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},Mw=class extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.map)return We(r,{code:Ie.invalid_type,expected:Qe.map,received:r.parsedType}),Mt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new cd(r,a,r.path,[u,"key"])),value:s._parse(new cd(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Mt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Mt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};Mw.create=(e,t,n)=>new Mw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Dw=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.set)return We(r,{code:Ie.invalid_type,expected:Qe.set,received:r.parsedType}),Mt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(We(r,{code:Ie.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Mt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new cd(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:ut.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Dw.create=(e,t)=>new Dw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});jz=class e extends mn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.function)return We(n,{code:Ie.invalid_type,expected:Qe.function,received:n.parsedType}),Mt;function r(a,c){return LN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,xw(),Um].filter(u=>!!u),issueData:{code:Ie.invalid_arguments,argumentsError:c}})}function i(a,c){return LN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,xw(),Um].filter(u=>!!u),issueData:{code:Ie.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof RS){let a=this;return tc(async function(...c){let u=new Eu([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return tc(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Eu([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Eu([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:ah.create(t).rest(jm.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||ah.create([]).rest(jm.create()),returns:n||jm.create(),typeName:Bt.ZodFunction,...un(r)})}},bb=class extends mn{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};bb.create=(e,t)=>new bb({getter:e,typeName:Bt.ZodLazy,...un(t)});Tb=class extends mn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return We(n,{received:n.data,code:Ie.invalid_literal,expected:this._def.value}),Mt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Tb.create=(e,t)=>new Tb({value:e,typeName:Bt.ZodLiteral,...un(t)});vb=class e extends mn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Cn.joinValues(r),received:n.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{received:n.data,code:Ie.invalid_enum_value,options:r}),Mt}return tc(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};vb.create=MKe;Ab=class extends mn{_parse(t){let n=Cn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Qe.string&&r.parsedType!==Qe.number){let i=Cn.objectValues(n);return We(r,{expected:Cn.joinValues(i),received:r.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(Cn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Cn.objectValues(n);return We(r,{received:r.data,code:Ie.invalid_enum_value,options:i}),Mt}return tc(t.data)}get enum(){return this._def.values}};Ab.create=(e,t)=>new Ab({values:e,typeName:Bt.ZodNativeEnum,...un(t)});RS=class extends mn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.promise&&n.common.async===!1)return We(n,{code:Ie.invalid_type,expected:Qe.promise,received:n.parsedType}),Mt;let r=n.parsedType===Qe.promise?n.data:Promise.resolve(n.data);return tc(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};RS.create=(e,t)=>new RS({type:e,typeName:Bt.ZodPromise,...un(t)});ud=class extends mn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Bt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{We(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Mt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Mt:c.status==="dirty"?fb(c.value):n.value==="dirty"?fb(c.value):c});{if(n.value==="aborted")return Mt;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Mt:a.status==="dirty"?fb(a.value):n.value==="dirty"?fb(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Mt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Mt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!TS(o))return Mt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>TS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Cn.assertNever(i)}};ud.create=(e,t,n)=>new ud({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});ud.createWithPreprocess=(e,t,n)=>new ud({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ad=class extends mn{_parse(t){return this._getType(t)===Qe.undefined?tc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ad.create=(e,t)=>new ad({innerType:e,typeName:Bt.ZodOptional,...un(t)});ch=class extends mn{_parse(t){return this._getType(t)===Qe.null?tc(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ch.create=(e,t)=>new ch({innerType:e,typeName:Bt.ZodNullable,...un(t)});Rb=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===Qe.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Rb.create=(e,t)=>new Rb({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});wb=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ow(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Eu(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Eu(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};wb.create=(e,t)=>new wb({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});Lw=class extends mn{_parse(t){if(this._getType(t)!==Qe.nan){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.nan,received:r.parsedType}),Mt}return{status:"valid",value:t.data}}};Lw.create=e=>new Lw({typeName:Bt.ZodNaN,...un(e)});xin=Symbol("zod_brand"),UN=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},FN=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Mt:s.status==="dirty"?(n.dirty(),fb(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Mt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:Bt.ZodPipeline})}},kb=class extends mn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(TS(i)&&(i.value=Object.freeze(i.value)),i);return Ow(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};kb.create=(e,t)=>new kb({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Oin={object:_u.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Bt||(Bt={}));Pin=(e,t={message:`Input not instance of ${e.name}`})=>DKe(n=>n instanceof e,t),LKe=vS.create,UKe=pb.create,Nin=Lw.create,Cin=hb.create,FKe=mb.create,Min=gb.create,Din=Nw.create,Lin=yb.create,Uin=Sb.create,Fin=AS.create,jin=jm.create,Hin=_f.create,qin=Cw.create,Bin=Hm.create,Gin=_u.create,zin=_u.strictCreate,Vin=Eb.create,Win=Uz.create,Kin=_b.create,Yin=ah.create,Zin=Fz.create,Jin=Mw.create,Xin=Dw.create,Qin=jz.create,$in=bb.create,esn=Tb.create,tsn=vb.create,nsn=Ab.create,rsn=RS.create,isn=ud.create,ssn=ad.create,osn=ch.create,asn=ud.createWithPreprocess,csn=FN.create,usn=()=>LKe().optional(),lsn=()=>UKe().optional(),dsn=()=>FKe().optional(),fsn={string:(e=>vS.create({...e,coerce:!0})),number:(e=>pb.create({...e,coerce:!0})),boolean:(e=>mb.create({...e,coerce:!0})),bigint:(e=>hb.create({...e,coerce:!0})),date:(e=>gb.create({...e,coerce:!0}))},psn=Mt});var O={};Rr(O,{BRAND:()=>xin,DIRTY:()=>fb,EMPTY_PATH:()=>ain,INVALID:()=>Mt,NEVER:()=>psn,OK:()=>tc,ParseStatus:()=>ha,Schema:()=>mn,ZodAny:()=>AS,ZodArray:()=>Hm,ZodBigInt:()=>hb,ZodBoolean:()=>mb,ZodBranded:()=>UN,ZodCatch:()=>wb,ZodDate:()=>gb,ZodDefault:()=>Rb,ZodDiscriminatedUnion:()=>Uz,ZodEffects:()=>ud,ZodEnum:()=>vb,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>jz,ZodIntersection:()=>_b,ZodIssueCode:()=>Ie,ZodLazy:()=>bb,ZodLiteral:()=>Tb,ZodMap:()=>Mw,ZodNaN:()=>Lw,ZodNativeEnum:()=>Ab,ZodNever:()=>_f,ZodNull:()=>Sb,ZodNullable:()=>ch,ZodNumber:()=>pb,ZodObject:()=>_u,ZodOptional:()=>ad,ZodParsedType:()=>Qe,ZodPipeline:()=>FN,ZodPromise:()=>RS,ZodReadonly:()=>kb,ZodRecord:()=>Fz,ZodSchema:()=>mn,ZodSet:()=>Dw,ZodString:()=>vS,ZodSymbol:()=>Nw,ZodTransformer:()=>ud,ZodTuple:()=>ah,ZodType:()=>mn,ZodUndefined:()=>yb,ZodUnion:()=>Eb,ZodUnknown:()=>jm,ZodVoid:()=>Cw,addIssueToContext:()=>We,any:()=>Fin,array:()=>Bin,bigint:()=>Cin,boolean:()=>FKe,coerce:()=>fsn,custom:()=>DKe,date:()=>Min,datetimeRegex:()=>CKe,defaultErrorMap:()=>Um,discriminatedUnion:()=>Win,effect:()=>isn,enum:()=>tsn,function:()=>Qin,getErrorMap:()=>xw,getParsedType:()=>oh,instanceof:()=>Pin,intersection:()=>Kin,isAborted:()=>Dz,isAsync:()=>Ow,isDirty:()=>Lz,isValid:()=>TS,late:()=>Oin,lazy:()=>$in,literal:()=>esn,makeIssue:()=>LN,map:()=>Jin,nan:()=>Nin,nativeEnum:()=>nsn,never:()=>Hin,null:()=>Uin,nullable:()=>osn,number:()=>UKe,object:()=>Gin,objectUtil:()=>Fne,oboolean:()=>dsn,onumber:()=>lsn,optional:()=>ssn,ostring:()=>usn,pipeline:()=>csn,preprocess:()=>asn,promise:()=>rsn,quotelessJson:()=>iin,record:()=>Zin,set:()=>Xin,setErrorMap:()=>oin,strictObject:()=>zin,string:()=>LKe,symbol:()=>Din,transformer:()=>isn,tuple:()=>Yin,undefined:()=>Lin,union:()=>Vin,unknown:()=>jin,util:()=>Cn,void:()=>qin});var Gne=v(()=>{Mz();Hne();kKe();DN();jKe();Cz()});function me(e,t,n){function r(a,c){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(e),t(a,c);for(let l in o.prototype)l in a||Object.defineProperty(a,l,{value:o.prototype[l].bind(a)});a._zod.constr=o,a._zod.def=c}let i=n?.Parent??Object;class s extends i{}Object.defineProperty(s,"name",{value:e});function o(a){var c;let u=n?.Parent?new s:this;r(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function ld(e){return e&&Object.assign(Hz,e),Hz}var Yjr,qm,Hz,Uw=v(()=>{Yjr=Object.freeze({status:"aborted"});qm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Hz={}});var or={};Rr(or,{BIGINT_FORMAT_RANGES:()=>qKe,Class:()=>Vne,NUMBER_FORMAT_RANGES:()=>$ne,aborted:()=>xb,allowsEval:()=>Jne,assert:()=>Ssn,assertEqual:()=>hsn,assertIs:()=>gsn,assertNever:()=>ysn,assertNotEqual:()=>msn,assignProp:()=>Zne,cached:()=>HN,captureStackTrace:()=>Bz,cleanEnum:()=>Psn,cleanRegex:()=>BN,clone:()=>uh,createTransparentProxy:()=>Asn,defineLazy:()=>ni,esc:()=>Ib,escapeRegex:()=>wS,extend:()=>ksn,finalizeIssue:()=>bf,floatSafeRemainder:()=>Yne,getElementAtPath:()=>Esn,getEnumValues:()=>Wne,getLengthableOrigin:()=>GN,getParsedType:()=>vsn,getSizableOrigin:()=>BKe,isObject:()=>Fw,isPlainObject:()=>jw,issue:()=>ere,joinValues:()=>qz,jsonStringifyReplacer:()=>Kne,merge:()=>Isn,normalizeParams:()=>Dt,nullish:()=>qN,numKeys:()=>Tsn,omit:()=>wsn,optionalKeys:()=>Qne,partial:()=>xsn,pick:()=>Rsn,prefixIssues:()=>lh,primitiveTypes:()=>HKe,promiseAllObject:()=>_sn,propertyKeyTypes:()=>Xne,randomString:()=>bsn,required:()=>Osn,stringifyPrimitive:()=>Gz,unwrapMessage:()=>jN});function hsn(e){return e}function msn(e){return e}function gsn(e){}function ysn(e){throw new Error}function Ssn(e){}function Wne(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function qz(e,t="|"){return e.map(n=>Gz(n)).join(t)}function Kne(e,t){return typeof t=="bigint"?t.toString():t}function HN(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function qN(e){return e==null}function BN(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function Yne(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function ni(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function Zne(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Esn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function _sn(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Asn(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function Gz(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Qne(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Rsn(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return uh(e,{...e._zod.def,shape:n,checks:[]})}function wsn(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return uh(e,{...e._zod.def,shape:n,checks:[]})}function ksn(e,t){if(!jw(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return Zne(this,"shape",r),r},checks:[]};return uh(e,n)}function Isn(e,t){return uh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Zne(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function xsn(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return uh(t,{...t._zod.def,shape:i,checks:[]})}function Osn(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return uh(t,{...t._zod.def,shape:i,checks:[]})}function xb(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function jN(e){return typeof e=="string"?e:e?.message}function bf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=jN(e.inst?._zod.def?.error?.(e))??jN(t?.error?.(e))??jN(n.customError?.(e))??jN(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function BKe(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function GN(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function ere(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Psn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var Bz,Jne,vsn,Xne,HKe,$ne,qKe,Vne,Bm=v(()=>{Bz=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};Jne=HN(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});vsn=e=>{let t=typeof e;switch(t){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":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},Xne=new Set(["string","number","symbol"]),HKe=new Set(["string","number","bigint","boolean","symbol","undefined"]);$ne={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},qKe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};Vne=class{constructor(...t){}}});function zKe(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function VKe(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;c{Uw();Bm();GKe=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,Kne,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},zz=me("$ZodError",GKe),tre=me("$ZodError",GKe,{Parent:Error})});var WKe,KKe,rre,zN,ire,Vz,sre=v(()=>{Uw();nre();Bm();WKe=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new qm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>bf(c,s,ld())));throw Bz(a,i?.callee),a}return o.value},KKe=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>bf(c,s,ld())));throw Bz(a,i?.callee),a}return o.value},rre=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new qm;return s.issues.length?{success:!1,error:new(e??zz)(s.issues.map(o=>bf(o,i,ld())))}:{success:!0,data:s.value}},zN=rre(tre),ire=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>bf(o,i,ld())))}:{success:!0,data:s.value}},Vz=ire(tre)});function r9e(){return new RegExp(Csn,"u")}function p9e(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function h9e(e){return new RegExp(`^${p9e(e)}$`)}function m9e(e){let t=p9e({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-]\\d{2}:\\d{2})");let r=`${t}(?:${n.join("|")})`;return new RegExp(`^${d9e}T(?:${r})$`)}var YKe,ZKe,JKe,XKe,QKe,$Ke,e9e,t9e,ore,n9e,Csn,i9e,s9e,o9e,a9e,c9e,are,u9e,l9e,d9e,f9e,g9e,y9e,S9e,E9e,_9e,b9e,T9e,Wz=v(()=>{YKe=/^[cC][^\s-]{8,}$/,ZKe=/^[0-9a-z]+$/,JKe=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,XKe=/^[0-9a-vA-V]{20}$/,QKe=/^[A-Za-z0-9]{27}$/,$Ke=/^[a-zA-Z0-9_-]{21}$/,e9e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,t9e=/^([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})$/,ore=e=>e?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})$`):/^([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)$/,n9e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Csn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";i9e=/^(?:(?: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])$/,s9e=/^(([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})$/,o9e=/^((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])$/,a9e=/^(([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])$/,c9e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,are=/^[A-Za-z0-9_-]*$/,u9e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,l9e=/^\+(?:[0-9]){6,14}[0-9]$/,d9e="(?:(?:\\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])))",f9e=new RegExp(`^${d9e}$`);g9e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},y9e=/^\d+$/,S9e=/^-?\d+(?:\.\d+)?/i,E9e=/true|false/i,_9e=/null/i,b9e=/^[^A-Z]*$/,T9e=/^[^a-z]*$/});var nc,v9e,ure,lre,A9e,R9e,w9e,k9e,I9e,VN,x9e,O9e,P9e,N9e,C9e,M9e,D9e,Kz=v(()=>{Uw();Wz();Bm();nc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),v9e={number:"number",bigint:"bigint",object:"date"},ure=me("$ZodCheckLessThan",(e,t)=>{nc.init(e,t);let n=v9e[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{nc.init(e,t);let n=v9e[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),A9e=me("$ZodCheckMultipleOf",(e,t)=>{nc.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):Yne(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),R9e=me("$ZodCheckNumberFormat",(e,t)=>{nc.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=$ne[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=y9e)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),w9e=me("$ZodCheckMaxLength",(e,t)=>{var n;nc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!qN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let i=r.value;if(i.length<=t.maximum)return;let o=GN(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),k9e=me("$ZodCheckMinLength",(e,t)=>{var n;nc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!qN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{let i=r.value;if(i.length>=t.minimum)return;let o=GN(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),I9e=me("$ZodCheckLengthEquals",(e,t)=>{var n;nc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!qN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{let i=r.value,s=i.length;if(s===t.length)return;let o=GN(i),a=s>t.length;r.issues.push({origin:o,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),VN=me("$ZodCheckStringFormat",(e,t)=>{var n,r;nc.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),x9e=me("$ZodCheckRegex",(e,t)=>{VN.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),O9e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=b9e),VN.init(e,t)}),P9e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=T9e),VN.init(e,t)}),N9e=me("$ZodCheckIncludes",(e,t)=>{nc.init(e,t);let n=wS(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),C9e=me("$ZodCheckStartsWith",(e,t)=>{nc.init(e,t);let n=new RegExp(`^${wS(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),M9e=me("$ZodCheckEndsWith",(e,t)=>{nc.init(e,t);let n=new RegExp(`.*${wS(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),D9e=me("$ZodCheckOverwrite",(e,t)=>{nc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var Yz,dre=v(()=>{Yz=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` `).filter(o=>o),i=Math.min(...r.map(o=>o.length-o.trimStart().length)),s=r.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of s)this.content.push(o)}compile(){let t=Function,n=this?.args,i=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...n,i.join(` -`))}}});var o3e,Zne=v(()=>{o3e={major:4,minor:0,patch:0}});function D3e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Din(e){if(!Gne.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return D3e(n)}function Lin(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function a3e(e,t,n){e.issues.length&&t.issues.push(...sh(n,e.issues)),t.value[n]=e.value}function Dz(e,t,n){e.issues.length&&t.issues.push(...sh(n,e.issues)),t.value[n]=e.value}function c3e(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...sh(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function u3e(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>_f(s,r,ad())))}),t}function Yne(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Cw(e)&&Cw(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=Yne(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r{Cz();Nw();Kne();qne();Pz();Um();Zne();Um();ti=he("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=o3e;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=Rb(s),u;for(let l of o){if(l._zod.def.when){if(!l._zod.def.when(s))continue}else if(c)continue;let d=s.issues.length,f=l._zod.check(s);if(f instanceof Promise&&a?.async===!1)throw new Lm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=Rb(s,d)))});else{if(s.issues.length===d)continue;c||(c=Rb(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Lm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=LP(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Nz(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),Lz=he("$ZodString",(e,t)=>{ti.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??FKe(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),di=he("$ZodStringFormat",(e,t)=>{UP.init(e,t),Lz.init(e,t)}),g3e=he("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=AKe),di.init(e,t)}),y3e=he("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Bne(r))}else t.pattern??(t.pattern=Bne());di.init(e,t)}),S3e=he("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=RKe),di.init(e,t)}),_3e=he("$ZodURL",(e,t)=>{di.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:PKe.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),E3e=he("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=wKe()),di.init(e,t)}),b3e=he("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=TKe),di.init(e,t)}),T3e=he("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=yKe),di.init(e,t)}),v3e=he("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=SKe),di.init(e,t)}),A3e=he("$ZodULID",(e,t)=>{t.pattern??(t.pattern=_Ke),di.init(e,t)}),R3e=he("$ZodXID",(e,t)=>{t.pattern??(t.pattern=EKe),di.init(e,t)}),w3e=he("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=bKe),di.init(e,t)}),k3e=he("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=jKe(t)),di.init(e,t)}),I3e=he("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=DKe),di.init(e,t)}),x3e=he("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=UKe(t)),di.init(e,t)}),O3e=he("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=vKe),di.init(e,t)}),N3e=he("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=kKe),di.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),P3e=he("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=IKe),di.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.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:!t.abort})}}}),C3e=he("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=xKe),di.init(e,t)}),M3e=he("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=OKe),di.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});L3e=he("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=NKe),di.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{D3e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});U3e=he("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Gne),di.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Din(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),j3e=he("$ZodE164",(e,t)=>{t.pattern??(t.pattern=CKe),di.init(e,t)});F3e=he("$ZodJWT",(e,t)=>{di.init(e,t),e._zod.check=n=>{Lin(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Jne=he("$ZodNumber",(e,t)=>{ti.init(e,t),e._zod.pattern=e._zod.bag.pattern??qKe,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),H3e=he("$ZodNumber",(e,t)=>{ZKe.init(e,t),Jne.init(e,t)}),q3e=he("$ZodBoolean",(e,t)=>{ti.init(e,t),e._zod.pattern=BKe,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),B3e=he("$ZodNull",(e,t)=>{ti.init(e,t),e._zod.pattern=GKe,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),G3e=he("$ZodUnknown",(e,t)=>{ti.init(e,t),e._zod.parse=n=>n}),z3e=he("$ZodNever",(e,t)=>{ti.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});V3e=he("$ZodArray",(e,t)=>{ti.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oa3e(u,n,o))):a3e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});W3e=he("$ZodObject",(e,t)=>{ti.init(e,t);let n=PP(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof ti))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=Mne(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ei(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new Mz(["shape","payload","ctx"]),p=n.value,h=E=>{let S=Ab(E);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let m=Object.create(null),y=0;for(let E of p.keys)m[E]=`key_${y++}`;f.write("const newResult = {}");for(let E of p.keys)if(p.optionalKeys.has(E)){let S=m[E];f.write(`const ${S} = ${h(E)};`);let _=Ab(E);f.write(` +`))}}});var U9e,fre=v(()=>{U9e={major:4,minor:0,patch:0}});function f3e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Msn(e){if(!are.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return f3e(n)}function Dsn(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function F9e(e,t,n){e.issues.length&&t.issues.push(...lh(n,e.issues)),t.value[n]=e.value}function Zz(e,t,n){e.issues.length&&t.issues.push(...lh(n,e.issues)),t.value[n]=e.value}function j9e(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...lh(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function H9e(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>bf(s,r,ld())))}),t}function pre(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(jw(e)&&jw(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=pre(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r{Kz();Uw();dre();sre();Wz();Bm();fre();Bm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=U9e;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=xb(s),u;for(let l of o){if(l._zod.def.when){if(!l._zod.def.when(s))continue}else if(c)continue;let d=s.issues.length,f=l._zod.check(s);if(f instanceof Promise&&a?.async===!1)throw new qm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=xb(s,d)))});else{if(s.issues.length===d)continue;c||(c=xb(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new qm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=zN(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Vz(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),Jz=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??g9e(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),hi=me("$ZodStringFormat",(e,t)=>{VN.init(e,t),Jz.init(e,t)}),K9e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=t9e),hi.init(e,t)}),Y9e=me("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ore(r))}else t.pattern??(t.pattern=ore());hi.init(e,t)}),Z9e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=n9e),hi.init(e,t)}),J9e=me("$ZodURL",(e,t)=>{hi.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:u9e.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),X9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=r9e()),hi.init(e,t)}),Q9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=$Ke),hi.init(e,t)}),$9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=YKe),hi.init(e,t)}),e3e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ZKe),hi.init(e,t)}),t3e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=JKe),hi.init(e,t)}),n3e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=XKe),hi.init(e,t)}),r3e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=QKe),hi.init(e,t)}),i3e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=m9e(t)),hi.init(e,t)}),s3e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=f9e),hi.init(e,t)}),o3e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=h9e(t)),hi.init(e,t)}),a3e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=e9e),hi.init(e,t)}),c3e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=i9e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),u3e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=s9e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.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:!t.abort})}}}),l3e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=o9e),hi.init(e,t)}),d3e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=a9e),hi.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});p3e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=c9e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{f3e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});h3e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=are),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Msn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),m3e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=l9e),hi.init(e,t)});g3e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{Dsn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),hre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??S9e,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),y3e=me("$ZodNumber",(e,t)=>{R9e.init(e,t),hre.init(e,t)}),S3e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=E9e,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),E3e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=_9e,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),_3e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),b3e=me("$ZodNever",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});T3e=me("$ZodArray",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oF9e(u,n,o))):F9e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});v3e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=HN(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof ri))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=Qne(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ni(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new Yz(["shape","payload","ctx"]),p=n.value,h=E=>{let S=Ib(E);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let m=Object.create(null),g=0;for(let E of p.keys)m[E]=`key_${g++}`;f.write("const newResult = {}");for(let E of p.keys)if(p.optionalKeys.has(E)){let S=m[E];f.write(`const ${S} = ${h(E)};`);let _=Ib(E);f.write(` if (${S}.issues.length) { if (input[${_}] === undefined) { if (${_} in input) { @@ -61,17 +61,17 @@ Mongoose Error Code: ${t.code}`:""}`})}function Bee(e,t,n,r=void 0){n&&(0,ZN.saf `)}else{let S=m[E];f.write(`const ${S} = ${h(E)};`),f.write(` if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ ...iss, - path: iss.path ? [${Ab(E)}, ...iss.path] : [${Ab(E)}] - })));`),f.write(`newResult[${Ab(E)}] = ${S}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");let g=f.compile();return(E,S)=>g(d,E,S)},i,s=Pw,o=!wz.jitless,c=o&&Pne.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let _ of l.keys){let b=S[_],T=b._zod.run({value:p[_],issues:[]},f),A=b._zod.optin==="optional"&&b._zod.optout==="optional";T instanceof Promise?h.push(T.then(R=>A?c3e(R,d,_,p):Dz(R,d,_))):A?c3e(T,d,_,p):Dz(T,d,_)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let m=[],y=l.keySet,g=u._zod,E=g.def.type;for(let S of Object.keys(p)){if(y.has(S))continue;if(E==="never"){m.push(S);continue}let _=g.run({value:p[S],issues:[]},f);_ instanceof Promise?h.push(_.then(b=>Dz(b,d,S))):Dz(_,d,S)}return m.length&&d.issues.push({code:"unrecognized_keys",keys:m,input:p,inst:e}),h.length?Promise.all(h).then(()=>d):d}});Xne=he("$ZodUnion",(e,t)=>{ti.init(e,t),ei(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ei(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ei(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ei(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>MP(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>u3e(o,n,e,r)):u3e(s,n,e,r)}}),K3e=he("$ZodDiscriminatedUnion",(e,t)=>{Xne.init(e,t);let n=e._zod.parse;ei(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=PP(()=>{let i=t.options,s=new Map;for(let o of i){let a=o._zod.propValues[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});e._zod.parse=(i,s)=>{let o=i.value;if(!Pw(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;let a=r.value.get(o?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[t.discriminator],inst:e}),i)}}),Z3e=he("$ZodIntersection",(e,t)=>{ti.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>l3e(n,c,u)):l3e(n,s,o)}});Y3e=he("$ZodRecord",(e,t)=>{ti.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Cw(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...sh(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...sh(c,u.issues)),n.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=t.keyType._zod.run({value:o,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>_f(u,r,ad())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...sh(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...sh(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),J3e=he("$ZodEnum",(e,t)=>{ti.init(e,t);let n=Ine(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>Cne.has(typeof r)).map(r=>typeof r=="string"?TS(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),X3e=he("$ZodLiteral",(e,t)=>{ti.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?TS(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),Q3e=he("$ZodTransform",(e,t)=>{ti.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new Lm;return n.value=i,n}}),$3e=he("$ZodOptional",(e,t)=>{ti.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ei(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ei(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${MP(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),e9e=he("$ZodNullable",(e,t)=>{ti.init(e,t),ei(e._zod,"optin",()=>t.innerType._zod.optin),ei(e._zod,"optout",()=>t.innerType._zod.optout),ei(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${MP(n.source)}|null)$`):void 0}),ei(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),t9e=he("$ZodDefault",(e,t)=>{ti.init(e,t),e._zod.optin="optional",ei(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>d3e(s,t)):d3e(i,t)}});n9e=he("$ZodPrefault",(e,t)=>{ti.init(e,t),e._zod.optin="optional",ei(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),r9e=he("$ZodNonOptional",(e,t)=>{ti.init(e,t),ei(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>f3e(s,e)):f3e(i,e)}});i9e=he("$ZodCatch",(e,t)=>{ti.init(e,t),e._zod.optin="optional",ei(e._zod,"optout",()=>t.innerType._zod.optout),ei(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>_f(o,r,ad()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>_f(s,r,ad()))},input:n.value}),n.issues=[]),n)}}),s9e=he("$ZodPipe",(e,t)=>{ti.init(e,t),ei(e._zod,"values",()=>t.in._zod.values),ei(e._zod,"optin",()=>t.in._zod.optin),ei(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>p3e(s,t,r)):p3e(i,t,r)}});o9e=he("$ZodReadonly",(e,t)=>{ti.init(e,t),ei(e._zod,"propValues",()=>t.innerType._zod.propValues),ei(e._zod,"values",()=>t.innerType._zod.values),ei(e._zod,"optin",()=>t.innerType._zod.optin),ei(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(h3e):h3e(i)}});a9e=he("$ZodCustom",(e,t)=>{Ja.init(e,t),ti.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>m3e(s,n,r,e));m3e(i,n,r,e)}})});function u9e(){return{localeError:jin()}}var Uin,jin,l9e=v(()=>{Um();Uin=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},jin=()=>{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"}};function t(r){return e[r]??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"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${Uin(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${xz(r.values[0])}`:`Invalid option: expected one of ${kz(r.values,"|")}`;case"too_big":{let i=r.inclusive?"<=":"<",s=t(r.origin);return s?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{let i=r.inclusive?">=":">",s=t(r.origin);return s?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${s.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{let i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${kz(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}}});var Uz=v(()=>{});function Fin(){return new $ne}var $ne,jP,d9e=v(()=>{$ne=class{constructor(){this._map=new Map,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(t){let n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};jP=Fin()});function f9e(e,t){return new e({type:"string",...Pt(t)})}function p9e(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Pt(t)})}function ere(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Pt(t)})}function h9e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Pt(t)})}function m9e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Pt(t)})}function g9e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Pt(t)})}function y9e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Pt(t)})}function S9e(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Pt(t)})}function _9e(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Pt(t)})}function E9e(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Pt(t)})}function b9e(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Pt(t)})}function T9e(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Pt(t)})}function v9e(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Pt(t)})}function A9e(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Pt(t)})}function R9e(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Pt(t)})}function w9e(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Pt(t)})}function k9e(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Pt(t)})}function I9e(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Pt(t)})}function x9e(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Pt(t)})}function O9e(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Pt(t)})}function N9e(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Pt(t)})}function P9e(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Pt(t)})}function C9e(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Pt(t)})}function M9e(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Pt(t)})}function D9e(e,t){return new e({type:"string",format:"date",check:"string_format",...Pt(t)})}function L9e(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Pt(t)})}function U9e(e,t){return new e({type:"string",format:"duration",check:"string_format",...Pt(t)})}function j9e(e,t){return new e({type:"number",checks:[],...Pt(t)})}function F9e(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Pt(t)})}function H9e(e,t){return new e({type:"boolean",...Pt(t)})}function q9e(e,t){return new e({type:"null",...Pt(t)})}function B9e(e){return new e({type:"unknown"})}function G9e(e,t){return new e({type:"never",...Pt(t)})}function jz(e,t){return new Vne({check:"less_than",...Pt(t),value:e,inclusive:!1})}function FP(e,t){return new Vne({check:"less_than",...Pt(t),value:e,inclusive:!0})}function Fz(e,t){return new Wne({check:"greater_than",...Pt(t),value:e,inclusive:!1})}function HP(e,t){return new Wne({check:"greater_than",...Pt(t),value:e,inclusive:!0})}function Hz(e,t){return new KKe({check:"multiple_of",...Pt(t),value:e})}function qz(e,t){return new YKe({check:"max_length",...Pt(t),maximum:e})}function Mw(e,t){return new JKe({check:"min_length",...Pt(t),minimum:e})}function Bz(e,t){return new XKe({check:"length_equals",...Pt(t),length:e})}function tre(e,t){return new QKe({check:"string_format",format:"regex",...Pt(t),pattern:e})}function nre(e){return new $Ke({check:"string_format",format:"lowercase",...Pt(e)})}function rre(e){return new e3e({check:"string_format",format:"uppercase",...Pt(e)})}function ire(e,t){return new t3e({check:"string_format",format:"includes",...Pt(t),includes:e})}function sre(e,t){return new n3e({check:"string_format",format:"starts_with",...Pt(t),prefix:e})}function ore(e,t){return new r3e({check:"string_format",format:"ends_with",...Pt(t),suffix:e})}function wb(e){return new i3e({check:"overwrite",tx:e})}function are(e){return wb(t=>t.normalize(e))}function cre(){return wb(e=>e.trim())}function ure(){return wb(e=>e.toLowerCase())}function lre(){return wb(e=>e.toUpperCase())}function z9e(e,t,n){return new e({type:"array",element:t,...Pt(n)})}function V9e(e,t,n){let r=Pt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function W9e(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Pt(n)})}var K9e=v(()=>{Cz();Um()});var Z9e=v(()=>{});var Y9e=v(()=>{});var J9e=v(()=>{});var cd=v(()=>{Nw();qne();jne();c9e();Cz();Zne();Um();Pz();Uz();d9e();Kne();Z9e();K9e();Y9e();J9e()});var X9e=v(()=>{cd()});var Q9e=v(()=>{});var $9e=v(()=>{});var eZe=v(()=>{});var tZe=v(()=>{});var nZe=v(()=>{cd();X9e();Q9e();$9e();Uz();eZe();tZe()});var rZe=v(()=>{nZe()});var iZe=v(()=>{rZe()});function Lw(e){return!!e._zod}function vS(e,t){return Lw(e)?LP(e,t):e.safeParse(t)}function Gz(e){if(!e)return;let t;if(Lw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function sZe(e){if(Lw(e)){let s=e._zod?.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}let n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}let r=e.value;if(r!==void 0)return r}var zz=v(()=>{iZe()});var dre=v(()=>{cd()});var qP={};Rr(qP,{ZodISODate:()=>aZe,ZodISODateTime:()=>oZe,ZodISODuration:()=>uZe,ZodISOTime:()=>cZe,date:()=>pre,datetime:()=>fre,duration:()=>mre,time:()=>hre});function fre(e){return M9e(oZe,e)}function pre(e){return D9e(aZe,e)}function hre(e){return L9e(cZe,e)}function mre(e){return U9e(uZe,e)}var oZe,aZe,cZe,uZe,gre=v(()=>{cd();yre();oZe=he("ZodISODateTime",(e,t)=>{k3e.init(e,t),Pi.init(e,t)});aZe=he("ZodISODate",(e,t)=>{I3e.init(e,t),Pi.init(e,t)});cZe=he("ZodISOTime",(e,t)=>{x3e.init(e,t),Pi.init(e,t)});uZe=he("ZodISODuration",(e,t)=>{O3e.init(e,t),Pi.init(e,t)})});var lZe,iFr,BP,Sre=v(()=>{cd();cd();lZe=(e,t)=>{Oz.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>hKe(e,n)},flatten:{value:n=>pKe(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},iFr=he("ZodError",lZe),BP=he("ZodError",lZe,{Parent:Error})});var dZe,fZe,pZe,hZe,_re=v(()=>{cd();Sre();dZe=mKe(BP),fZe=gKe(BP),pZe=Fne(BP),hZe=Hne(BP)});function ce(e){return f9e(Jin,e)}function br(e){return j9e(_Ze,e)}function gZe(e){return F9e(hsn,e)}function Go(e){return H9e(msn,e)}function EZe(e){return q9e(gsn,e)}function Ci(){return B9e(ysn)}function _sn(e){return G9e(Ssn,e)}function Gn(e,t){return z9e(Esn,e,t)}function $e(e,t){let n={type:"object",get shape(){return sr.assignProp(this,"shape",{...e}),this.shape},...sr.normalizeParams(t)};return new bZe(n)}function Fc(e,t){return new bZe({type:"object",get shape(){return sr.assignProp(this,"shape",{...e}),this.shape},catchall:Ci(),...sr.normalizeParams(t)})}function fi(e,t){return new TZe({type:"union",options:e,...sr.normalizeParams(t)})}function Tre(e,t,n){return new bsn({type:"union",options:t,discriminator:e,...sr.normalizeParams(n)})}function Wz(e,t){return new Tsn({type:"intersection",left:e,right:t})}function ni(e,t,n){return new vsn({type:"record",keyType:e,valueType:t,...sr.normalizeParams(n)})}function mu(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Ere({type:"enum",entries:n,...sr.normalizeParams(t)})}function ft(e,t){return new Asn({type:"literal",values:Array.isArray(e)?e:[e],...sr.normalizeParams(t)})}function vZe(e){return new Rsn({type:"transform",transform:e})}function Mi(e){return new AZe({type:"optional",innerType:e})}function yZe(e){return new wsn({type:"nullable",innerType:e})}function Isn(e,t){return new ksn({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Osn(e,t){return new xsn({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Nsn(e,t){return new RZe({type:"nonoptional",innerType:e,...sr.normalizeParams(t)})}function Csn(e,t){return new Psn({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function bre(e,t){return new Msn({type:"pipe",in:e,out:t})}function Lsn(e){return new Dsn({type:"readonly",innerType:e})}function Usn(e){let t=new Ja({check:"custom"});return t._zod.check=e,t}function kZe(e,t){return V9e(wZe,e??(()=>!0),t)}function jsn(e,t={}){return W9e(wZe,e,t)}function Fsn(e){let t=Usn(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(sr.issue(r,n.value,t._zod.def));else{let i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(sr.issue(i))}},e(n.value,n)));return t}function vre(e,t){return bre(vZe(e),t)}var Wi,SZe,Jin,Pi,Xin,mZe,Vz,Qin,$in,esn,tsn,nsn,rsn,isn,ssn,osn,asn,csn,usn,lsn,dsn,fsn,psn,_Ze,hsn,msn,gsn,ysn,Ssn,Esn,bZe,TZe,bsn,Tsn,vsn,Ere,Asn,Rsn,AZe,wsn,ksn,xsn,RZe,Psn,Msn,Dsn,wZe,yre=v(()=>{cd();cd();dre();gre();_re();Wi=he("ZodType",(e,t)=>(ti.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>ih(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>dZe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>pZe(e,n,r),e.parseAsync=async(n,r)=>fZe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>hZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(jsn(n,r)),e.superRefine=n=>e.check(Fsn(n)),e.overwrite=n=>e.check(wb(n)),e.optional=()=>Mi(e),e.nullable=()=>yZe(e),e.nullish=()=>Mi(yZe(e)),e.nonoptional=n=>Nsn(e,n),e.array=()=>Gn(e),e.or=n=>fi([e,n]),e.and=n=>Wz(e,n),e.transform=n=>bre(e,vZe(n)),e.default=n=>Isn(e,n),e.prefault=n=>Osn(e,n),e.catch=n=>Csn(e,n),e.pipe=n=>bre(e,n),e.readonly=()=>Lsn(e),e.describe=n=>{let r=e.clone();return jP.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return jP.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return jP.get(e);let r=e.clone();return jP.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),SZe=he("_ZodString",(e,t)=>{Lz.init(e,t),Wi.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(tre(...r)),e.includes=(...r)=>e.check(ire(...r)),e.startsWith=(...r)=>e.check(sre(...r)),e.endsWith=(...r)=>e.check(ore(...r)),e.min=(...r)=>e.check(Mw(...r)),e.max=(...r)=>e.check(qz(...r)),e.length=(...r)=>e.check(Bz(...r)),e.nonempty=(...r)=>e.check(Mw(1,...r)),e.lowercase=r=>e.check(nre(r)),e.uppercase=r=>e.check(rre(r)),e.trim=()=>e.check(cre()),e.normalize=(...r)=>e.check(are(...r)),e.toLowerCase=()=>e.check(ure()),e.toUpperCase=()=>e.check(lre())}),Jin=he("ZodString",(e,t)=>{Lz.init(e,t),SZe.init(e,t),e.email=n=>e.check(p9e(Xin,n)),e.url=n=>e.check(S9e(Qin,n)),e.jwt=n=>e.check(C9e(psn,n)),e.emoji=n=>e.check(_9e($in,n)),e.guid=n=>e.check(ere(mZe,n)),e.uuid=n=>e.check(h9e(Vz,n)),e.uuidv4=n=>e.check(m9e(Vz,n)),e.uuidv6=n=>e.check(g9e(Vz,n)),e.uuidv7=n=>e.check(y9e(Vz,n)),e.nanoid=n=>e.check(E9e(esn,n)),e.guid=n=>e.check(ere(mZe,n)),e.cuid=n=>e.check(b9e(tsn,n)),e.cuid2=n=>e.check(T9e(nsn,n)),e.ulid=n=>e.check(v9e(rsn,n)),e.base64=n=>e.check(O9e(lsn,n)),e.base64url=n=>e.check(N9e(dsn,n)),e.xid=n=>e.check(A9e(isn,n)),e.ksuid=n=>e.check(R9e(ssn,n)),e.ipv4=n=>e.check(w9e(osn,n)),e.ipv6=n=>e.check(k9e(asn,n)),e.cidrv4=n=>e.check(I9e(csn,n)),e.cidrv6=n=>e.check(x9e(usn,n)),e.e164=n=>e.check(P9e(fsn,n)),e.datetime=n=>e.check(fre(n)),e.date=n=>e.check(pre(n)),e.time=n=>e.check(hre(n)),e.duration=n=>e.check(mre(n))});Pi=he("ZodStringFormat",(e,t)=>{di.init(e,t),SZe.init(e,t)}),Xin=he("ZodEmail",(e,t)=>{S3e.init(e,t),Pi.init(e,t)}),mZe=he("ZodGUID",(e,t)=>{g3e.init(e,t),Pi.init(e,t)}),Vz=he("ZodUUID",(e,t)=>{y3e.init(e,t),Pi.init(e,t)}),Qin=he("ZodURL",(e,t)=>{_3e.init(e,t),Pi.init(e,t)}),$in=he("ZodEmoji",(e,t)=>{E3e.init(e,t),Pi.init(e,t)}),esn=he("ZodNanoID",(e,t)=>{b3e.init(e,t),Pi.init(e,t)}),tsn=he("ZodCUID",(e,t)=>{T3e.init(e,t),Pi.init(e,t)}),nsn=he("ZodCUID2",(e,t)=>{v3e.init(e,t),Pi.init(e,t)}),rsn=he("ZodULID",(e,t)=>{A3e.init(e,t),Pi.init(e,t)}),isn=he("ZodXID",(e,t)=>{R3e.init(e,t),Pi.init(e,t)}),ssn=he("ZodKSUID",(e,t)=>{w3e.init(e,t),Pi.init(e,t)}),osn=he("ZodIPv4",(e,t)=>{N3e.init(e,t),Pi.init(e,t)}),asn=he("ZodIPv6",(e,t)=>{P3e.init(e,t),Pi.init(e,t)}),csn=he("ZodCIDRv4",(e,t)=>{C3e.init(e,t),Pi.init(e,t)}),usn=he("ZodCIDRv6",(e,t)=>{M3e.init(e,t),Pi.init(e,t)}),lsn=he("ZodBase64",(e,t)=>{L3e.init(e,t),Pi.init(e,t)}),dsn=he("ZodBase64URL",(e,t)=>{U3e.init(e,t),Pi.init(e,t)}),fsn=he("ZodE164",(e,t)=>{j3e.init(e,t),Pi.init(e,t)}),psn=he("ZodJWT",(e,t)=>{F3e.init(e,t),Pi.init(e,t)}),_Ze=he("ZodNumber",(e,t)=>{Jne.init(e,t),Wi.init(e,t),e.gt=(r,i)=>e.check(Fz(r,i)),e.gte=(r,i)=>e.check(HP(r,i)),e.min=(r,i)=>e.check(HP(r,i)),e.lt=(r,i)=>e.check(jz(r,i)),e.lte=(r,i)=>e.check(FP(r,i)),e.max=(r,i)=>e.check(FP(r,i)),e.int=r=>e.check(gZe(r)),e.safe=r=>e.check(gZe(r)),e.positive=r=>e.check(Fz(0,r)),e.nonnegative=r=>e.check(HP(0,r)),e.negative=r=>e.check(jz(0,r)),e.nonpositive=r=>e.check(FP(0,r)),e.multipleOf=(r,i)=>e.check(Hz(r,i)),e.step=(r,i)=>e.check(Hz(r,i)),e.finite=()=>e;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??.5),e.isFinite=!0,e.format=n.format??null});hsn=he("ZodNumberFormat",(e,t)=>{H3e.init(e,t),_Ze.init(e,t)});msn=he("ZodBoolean",(e,t)=>{q3e.init(e,t),Wi.init(e,t)});gsn=he("ZodNull",(e,t)=>{B3e.init(e,t),Wi.init(e,t)});ysn=he("ZodUnknown",(e,t)=>{G3e.init(e,t),Wi.init(e,t)});Ssn=he("ZodNever",(e,t)=>{z3e.init(e,t),Wi.init(e,t)});Esn=he("ZodArray",(e,t)=>{V3e.init(e,t),Wi.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Mw(n,r)),e.nonempty=n=>e.check(Mw(1,n)),e.max=(n,r)=>e.check(qz(n,r)),e.length=(n,r)=>e.check(Bz(n,r)),e.unwrap=()=>e.element});bZe=he("ZodObject",(e,t)=>{W3e.init(e,t),Wi.init(e,t),sr.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>mu(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Ci()}),e.loose=()=>e.clone({...e._zod.def,catchall:Ci()}),e.strict=()=>e.clone({...e._zod.def,catchall:_sn()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>sr.extend(e,n),e.merge=n=>sr.merge(e,n),e.pick=n=>sr.pick(e,n),e.omit=n=>sr.omit(e,n),e.partial=(...n)=>sr.partial(AZe,e,n[0]),e.required=(...n)=>sr.required(RZe,e,n[0])});TZe=he("ZodUnion",(e,t)=>{Xne.init(e,t),Wi.init(e,t),e.options=t.options});bsn=he("ZodDiscriminatedUnion",(e,t)=>{TZe.init(e,t),K3e.init(e,t)});Tsn=he("ZodIntersection",(e,t)=>{Z3e.init(e,t),Wi.init(e,t)});vsn=he("ZodRecord",(e,t)=>{Y3e.init(e,t),Wi.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Ere=he("ZodEnum",(e,t)=>{J3e.init(e,t),Wi.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Ere({...t,checks:[],...sr.normalizeParams(i),entries:s})},e.exclude=(r,i)=>{let s={...t.entries};for(let o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new Ere({...t,checks:[],...sr.normalizeParams(i),entries:s})}});Asn=he("ZodLiteral",(e,t)=>{X3e.init(e,t),Wi.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});Rsn=he("ZodTransform",(e,t)=>{Q3e.init(e,t),Wi.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(sr.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(sr.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});AZe=he("ZodOptional",(e,t)=>{$3e.init(e,t),Wi.init(e,t),e.unwrap=()=>e._zod.def.innerType});wsn=he("ZodNullable",(e,t)=>{e9e.init(e,t),Wi.init(e,t),e.unwrap=()=>e._zod.def.innerType});ksn=he("ZodDefault",(e,t)=>{t9e.init(e,t),Wi.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});xsn=he("ZodPrefault",(e,t)=>{n9e.init(e,t),Wi.init(e,t),e.unwrap=()=>e._zod.def.innerType});RZe=he("ZodNonOptional",(e,t)=>{r9e.init(e,t),Wi.init(e,t),e.unwrap=()=>e._zod.def.innerType});Psn=he("ZodCatch",(e,t)=>{i9e.init(e,t),Wi.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Msn=he("ZodPipe",(e,t)=>{s9e.init(e,t),Wi.init(e,t),e.in=t.in,e.out=t.out});Dsn=he("ZodReadonly",(e,t)=>{o9e.init(e,t),Wi.init(e,t)});wZe=he("ZodCustom",(e,t)=>{a9e.init(e,t),Wi.init(e,t)})});var IZe=v(()=>{});var xZe=v(()=>{});var OZe=v(()=>{cd();yre();dre();Sre();_re();IZe();cd();l9e();Uz();gre();xZe();ad(u9e())});var NZe=v(()=>{OZe()});var PZe=v(()=>{NZe()});var Rre,CZe,AS,Zz,mo,MZe,DZe,$Fr,Bsn,Gsn,wre,fl,GP,LZe,pa,ud,ld,ha,Yz,UZe,kre,jZe,FZe,Ire,zP,yn,xre,HZe,qZe,eHr,Jz,zsn,Xz,Vsn,VP,Uw,BZe,Wsn,Ksn,Zsn,Ysn,Jsn,Xsn,Ore,Qsn,$sn,Nre,Qz,eon,ton,$z,non,WP,KP,ron,ZP,jw,ion,YP,e2,t2,n2,tHr,r2,i2,s2,GZe,zZe,VZe,Pre,WZe,JP,Fw,KZe,son,oon,aon,con,uon,Cre,lon,don,fon,pon,hon,mon,gon,yon,Son,_on,Eon,bon,Mre,Ton,von,Dre,Lre,Ure,jre,Aon,Ron,won,Fre,kon,Ion,xon,Oon,Non,ZZe,Hre,Pon,o2,nHr,Con,XP,Mon,rHr,QP,Don,qre,Lon,Uon,jon,Fon,Hon,qon,Bon,Kz,Gon,zon,Von,$P,Bre,Won,Kon,Zon,Yon,Jon,Xon,Qon,$on,ean,tan,nan,ran,ian,san,oan,aan,can,uan,Hw,lan,dan,fan,Gre,pan,han,man,zre,gan,iHr,sHr,oHr,aHr,cHr,uHr,en,Are,kb=v(()=>{PZe();Rre="2025-11-25",CZe=[Rre,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],AS="io.modelcontextprotocol/related-task",Zz="2.0",mo=kZe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),MZe=fi([ce(),br().int()]),DZe=ce(),$Fr=Fc({ttl:br().optional(),pollInterval:br().optional()}),Bsn=$e({ttl:br().optional()}),Gsn=$e({taskId:ce()}),wre=Fc({progressToken:MZe.optional(),[AS]:Gsn.optional()}),fl=$e({_meta:wre.optional()}),GP=fl.extend({task:Bsn.optional()}),LZe=e=>GP.safeParse(e).success,pa=$e({method:ce(),params:fl.loose().optional()}),ud=$e({_meta:wre.optional()}),ld=$e({method:ce(),params:ud.loose().optional()}),ha=Fc({_meta:wre.optional()}),Yz=fi([ce(),br().int()]),UZe=$e({jsonrpc:ft(Zz),id:Yz,...pa.shape}).strict(),kre=e=>UZe.safeParse(e).success,jZe=$e({jsonrpc:ft(Zz),...ld.shape}).strict(),FZe=e=>jZe.safeParse(e).success,Ire=$e({jsonrpc:ft(Zz),id:Yz,result:ha}).strict(),zP=e=>Ire.safeParse(e).success;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(yn||(yn={}));xre=$e({jsonrpc:ft(Zz),id:Yz.optional(),error:$e({code:br().int(),message:ce(),data:Ci().optional()})}).strict(),HZe=e=>xre.safeParse(e).success,qZe=fi([UZe,jZe,Ire,xre]),eHr=fi([Ire,xre]),Jz=ha.strict(),zsn=ud.extend({requestId:Yz.optional(),reason:ce().optional()}),Xz=ld.extend({method:ft("notifications/cancelled"),params:zsn}),Vsn=$e({src:ce(),mimeType:ce().optional(),sizes:Gn(ce()).optional(),theme:mu(["light","dark"]).optional()}),VP=$e({icons:Gn(Vsn).optional()}),Uw=$e({name:ce(),title:ce().optional()}),BZe=Uw.extend({...Uw.shape,...VP.shape,version:ce(),websiteUrl:ce().optional(),description:ce().optional()}),Wsn=Wz($e({applyDefaults:Go().optional()}),ni(ce(),Ci())),Ksn=vre(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Wz($e({form:Wsn.optional(),url:mo.optional()}),ni(ce(),Ci()).optional())),Zsn=Fc({list:mo.optional(),cancel:mo.optional(),requests:Fc({sampling:Fc({createMessage:mo.optional()}).optional(),elicitation:Fc({create:mo.optional()}).optional()}).optional()}),Ysn=Fc({list:mo.optional(),cancel:mo.optional(),requests:Fc({tools:Fc({call:mo.optional()}).optional()}).optional()}),Jsn=$e({experimental:ni(ce(),mo).optional(),sampling:$e({context:mo.optional(),tools:mo.optional()}).optional(),elicitation:Ksn.optional(),roots:$e({listChanged:Go().optional()}).optional(),tasks:Zsn.optional(),extensions:ni(ce(),mo).optional()}),Xsn=fl.extend({protocolVersion:ce(),capabilities:Jsn,clientInfo:BZe}),Ore=pa.extend({method:ft("initialize"),params:Xsn}),Qsn=$e({experimental:ni(ce(),mo).optional(),logging:mo.optional(),completions:mo.optional(),prompts:$e({listChanged:Go().optional()}).optional(),resources:$e({subscribe:Go().optional(),listChanged:Go().optional()}).optional(),tools:$e({listChanged:Go().optional()}).optional(),tasks:Ysn.optional(),extensions:ni(ce(),mo).optional()}),$sn=ha.extend({protocolVersion:ce(),capabilities:Qsn,serverInfo:BZe,instructions:ce().optional()}),Nre=ld.extend({method:ft("notifications/initialized"),params:ud.optional()}),Qz=pa.extend({method:ft("ping"),params:fl.optional()}),eon=$e({progress:br(),total:Mi(br()),message:Mi(ce())}),ton=$e({...ud.shape,...eon.shape,progressToken:MZe}),$z=ld.extend({method:ft("notifications/progress"),params:ton}),non=fl.extend({cursor:DZe.optional()}),WP=pa.extend({params:non.optional()}),KP=ha.extend({nextCursor:DZe.optional()}),ron=mu(["working","input_required","completed","failed","cancelled"]),ZP=$e({taskId:ce(),status:ron,ttl:fi([br(),EZe()]),createdAt:ce(),lastUpdatedAt:ce(),pollInterval:Mi(br()),statusMessage:Mi(ce())}),jw=ha.extend({task:ZP}),ion=ud.merge(ZP),YP=ld.extend({method:ft("notifications/tasks/status"),params:ion}),e2=pa.extend({method:ft("tasks/get"),params:fl.extend({taskId:ce()})}),t2=ha.merge(ZP),n2=pa.extend({method:ft("tasks/result"),params:fl.extend({taskId:ce()})}),tHr=ha.loose(),r2=WP.extend({method:ft("tasks/list")}),i2=KP.extend({tasks:Gn(ZP)}),s2=pa.extend({method:ft("tasks/cancel"),params:fl.extend({taskId:ce()})}),GZe=ha.merge(ZP),zZe=$e({uri:ce(),mimeType:Mi(ce()),_meta:ni(ce(),Ci()).optional()}),VZe=zZe.extend({text:ce()}),Pre=ce().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),WZe=zZe.extend({blob:Pre}),JP=mu(["user","assistant"]),Fw=$e({audience:Gn(JP).optional(),priority:br().min(0).max(1).optional(),lastModified:qP.datetime({offset:!0}).optional()}),KZe=$e({...Uw.shape,...VP.shape,uri:ce(),description:Mi(ce()),mimeType:Mi(ce()),size:Mi(br()),annotations:Fw.optional(),_meta:Mi(Fc({}))}),son=$e({...Uw.shape,...VP.shape,uriTemplate:ce(),description:Mi(ce()),mimeType:Mi(ce()),annotations:Fw.optional(),_meta:Mi(Fc({}))}),oon=WP.extend({method:ft("resources/list")}),aon=KP.extend({resources:Gn(KZe)}),con=WP.extend({method:ft("resources/templates/list")}),uon=KP.extend({resourceTemplates:Gn(son)}),Cre=fl.extend({uri:ce()}),lon=Cre,don=pa.extend({method:ft("resources/read"),params:lon}),fon=ha.extend({contents:Gn(fi([VZe,WZe]))}),pon=ld.extend({method:ft("notifications/resources/list_changed"),params:ud.optional()}),hon=Cre,mon=pa.extend({method:ft("resources/subscribe"),params:hon}),gon=Cre,yon=pa.extend({method:ft("resources/unsubscribe"),params:gon}),Son=ud.extend({uri:ce()}),_on=ld.extend({method:ft("notifications/resources/updated"),params:Son}),Eon=$e({name:ce(),description:Mi(ce()),required:Mi(Go())}),bon=$e({...Uw.shape,...VP.shape,description:Mi(ce()),arguments:Mi(Gn(Eon)),_meta:Mi(Fc({}))}),Mre=WP.extend({method:ft("prompts/list")}),Ton=KP.extend({prompts:Gn(bon)}),von=fl.extend({name:ce(),arguments:ni(ce(),ce()).optional()}),Dre=pa.extend({method:ft("prompts/get"),params:von}),Lre=$e({type:ft("text"),text:ce(),annotations:Fw.optional(),_meta:ni(ce(),Ci()).optional()}),Ure=$e({type:ft("image"),data:Pre,mimeType:ce(),annotations:Fw.optional(),_meta:ni(ce(),Ci()).optional()}),jre=$e({type:ft("audio"),data:Pre,mimeType:ce(),annotations:Fw.optional(),_meta:ni(ce(),Ci()).optional()}),Aon=$e({type:ft("tool_use"),name:ce(),id:ce(),input:ni(ce(),Ci()),_meta:ni(ce(),Ci()).optional()}),Ron=$e({type:ft("resource"),resource:fi([VZe,WZe]),annotations:Fw.optional(),_meta:ni(ce(),Ci()).optional()}),won=KZe.extend({type:ft("resource_link")}),Fre=fi([Lre,Ure,jre,won,Ron]),kon=$e({role:JP,content:Fre}),Ion=ha.extend({description:ce().optional(),messages:Gn(kon)}),xon=ld.extend({method:ft("notifications/prompts/list_changed"),params:ud.optional()}),Oon=$e({title:ce().optional(),readOnlyHint:Go().optional(),destructiveHint:Go().optional(),idempotentHint:Go().optional(),openWorldHint:Go().optional()}),Non=$e({taskSupport:mu(["required","optional","forbidden"]).optional()}),ZZe=$e({...Uw.shape,...VP.shape,description:ce().optional(),inputSchema:$e({type:ft("object"),properties:ni(ce(),mo).optional(),required:Gn(ce()).optional()}).catchall(Ci()),outputSchema:$e({type:ft("object"),properties:ni(ce(),mo).optional(),required:Gn(ce()).optional()}).catchall(Ci()).optional(),annotations:Oon.optional(),execution:Non.optional(),_meta:ni(ce(),Ci()).optional()}),Hre=WP.extend({method:ft("tools/list")}),Pon=KP.extend({tools:Gn(ZZe)}),o2=ha.extend({content:Gn(Fre).default([]),structuredContent:ni(ce(),Ci()).optional(),isError:Go().optional()}),nHr=o2.or(ha.extend({toolResult:Ci()})),Con=GP.extend({name:ce(),arguments:ni(ce(),Ci()).optional()}),XP=pa.extend({method:ft("tools/call"),params:Con}),Mon=ld.extend({method:ft("notifications/tools/list_changed"),params:ud.optional()}),rHr=$e({autoRefresh:Go().default(!0),debounceMs:br().int().nonnegative().default(300)}),QP=mu(["debug","info","notice","warning","error","critical","alert","emergency"]),Don=fl.extend({level:QP}),qre=pa.extend({method:ft("logging/setLevel"),params:Don}),Lon=ud.extend({level:QP,logger:ce().optional(),data:Ci()}),Uon=ld.extend({method:ft("notifications/message"),params:Lon}),jon=$e({name:ce().optional()}),Fon=$e({hints:Gn(jon).optional(),costPriority:br().min(0).max(1).optional(),speedPriority:br().min(0).max(1).optional(),intelligencePriority:br().min(0).max(1).optional()}),Hon=$e({mode:mu(["auto","required","none"]).optional()}),qon=$e({type:ft("tool_result"),toolUseId:ce().describe("The unique identifier for the corresponding tool call."),content:Gn(Fre).default([]),structuredContent:$e({}).loose().optional(),isError:Go().optional(),_meta:ni(ce(),Ci()).optional()}),Bon=Tre("type",[Lre,Ure,jre]),Kz=Tre("type",[Lre,Ure,jre,Aon,qon]),Gon=$e({role:JP,content:fi([Kz,Gn(Kz)]),_meta:ni(ce(),Ci()).optional()}),zon=GP.extend({messages:Gn(Gon),modelPreferences:Fon.optional(),systemPrompt:ce().optional(),includeContext:mu(["none","thisServer","allServers"]).optional(),temperature:br().optional(),maxTokens:br().int(),stopSequences:Gn(ce()).optional(),metadata:mo.optional(),tools:Gn(ZZe).optional(),toolChoice:Hon.optional()}),Von=pa.extend({method:ft("sampling/createMessage"),params:zon}),$P=ha.extend({model:ce(),stopReason:Mi(mu(["endTurn","stopSequence","maxTokens"]).or(ce())),role:JP,content:Bon}),Bre=ha.extend({model:ce(),stopReason:Mi(mu(["endTurn","stopSequence","maxTokens","toolUse"]).or(ce())),role:JP,content:fi([Kz,Gn(Kz)])}),Won=$e({type:ft("boolean"),title:ce().optional(),description:ce().optional(),default:Go().optional()}),Kon=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),minLength:br().optional(),maxLength:br().optional(),format:mu(["email","uri","date","date-time"]).optional(),default:ce().optional()}),Zon=$e({type:mu(["number","integer"]),title:ce().optional(),description:ce().optional(),minimum:br().optional(),maximum:br().optional(),default:br().optional()}),Yon=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Gn(ce()),default:ce().optional()}),Jon=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),oneOf:Gn($e({const:ce(),title:ce()})),default:ce().optional()}),Xon=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Gn(ce()),enumNames:Gn(ce()).optional(),default:ce().optional()}),Qon=fi([Yon,Jon]),$on=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:br().optional(),maxItems:br().optional(),items:$e({type:ft("string"),enum:Gn(ce())}),default:Gn(ce()).optional()}),ean=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:br().optional(),maxItems:br().optional(),items:$e({anyOf:Gn($e({const:ce(),title:ce()}))}),default:Gn(ce()).optional()}),tan=fi([$on,ean]),nan=fi([Xon,Qon,tan]),ran=fi([nan,Won,Kon,Zon]),ian=GP.extend({mode:ft("form").optional(),message:ce(),requestedSchema:$e({type:ft("object"),properties:ni(ce(),ran),required:Gn(ce()).optional()})}),san=GP.extend({mode:ft("url"),message:ce(),elicitationId:ce(),url:ce().url()}),oan=fi([ian,san]),aan=pa.extend({method:ft("elicitation/create"),params:oan}),can=ud.extend({elicitationId:ce()}),uan=ld.extend({method:ft("notifications/elicitation/complete"),params:can}),Hw=ha.extend({action:mu(["accept","decline","cancel"]),content:vre(e=>e===null?void 0:e,ni(ce(),fi([ce(),br(),Go(),Gn(ce())])).optional())}),lan=$e({type:ft("ref/resource"),uri:ce()}),dan=$e({type:ft("ref/prompt"),name:ce()}),fan=fl.extend({ref:fi([dan,lan]),argument:$e({name:ce(),value:ce()}),context:$e({arguments:ni(ce(),ce()).optional()}).optional()}),Gre=pa.extend({method:ft("completion/complete"),params:fan}),pan=ha.extend({completion:Fc({values:Gn(ce()).max(100),total:Mi(br().int()),hasMore:Mi(Go())})}),han=$e({uri:ce().startsWith("file://"),name:ce().optional(),_meta:ni(ce(),Ci()).optional()}),man=pa.extend({method:ft("roots/list"),params:fl.optional()}),zre=ha.extend({roots:Gn(han)}),gan=ld.extend({method:ft("notifications/roots/list_changed"),params:ud.optional()}),iHr=fi([Qz,Ore,Gre,qre,Dre,Mre,oon,con,don,mon,yon,XP,Hre,e2,n2,r2,s2]),sHr=fi([Xz,$z,Nre,gan,YP]),oHr=fi([Jz,$P,Bre,Hw,zre,t2,i2,jw]),aHr=fi([Qz,Von,aan,man,e2,n2,r2,s2]),cHr=fi([Xz,$z,Uon,_on,pon,Mon,xon,YP,uan]),uHr=fi([Jz,$sn,pan,Ion,Ton,aon,uon,fon,o2,Pon,t2,i2,jw]),en=class e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===yn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new Are(i.elicitations,n)}return new e(t,n,r)}},Are=class extends en{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(yn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function RS(e){return e==="completed"||e==="failed"||e==="cancelled"}var YZe=v(()=>{});var a2=v(()=>{});var Vre=v(()=>{a2()});var wS=v(()=>{});var c2=v(()=>{});var dd=v(()=>{c2()});var Wre=v(()=>{wS();Zs()});var Kre=v(()=>{wS()});var Zre=v(()=>{});var u2=v(()=>{Zs()});var Yre=v(()=>{Zs()});var Jre=v(()=>{wS()});var Xre=v(()=>{Zs()});var Qre=v(()=>{Zs();dd()});var $re=v(()=>{});var eie=v(()=>{Zs()});var tie=v(()=>{});var BHr,l2=v(()=>{wS();BHr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var d2=v(()=>{Zs();l2();u2();dd()});var nie=v(()=>{Zs();d2();dd()});var rie=v(()=>{});var iie=v(()=>{dd()});var sie=v(()=>{});var f2=v(()=>{Zs()});var oie=v(()=>{Zs();f2()});var aie=v(()=>{wS()});var cie=v(()=>{Zs()});var uie=v(()=>{Zs();dd()});var lie=v(()=>{Zs()});var die=v(()=>{Zs()});var fie=v(()=>{wS();Zs()});var pie=v(()=>{Zs()});var hie=v(()=>{dd()});var mie=v(()=>{dd()});var gie=v(()=>{Zs()});var yie=v(()=>{dd();Wre();Kre();Zre();u2();Yre();Jre();Xre();Qre();$re();eie();tie();nie();rie();iie();sie();oie();aie();cie();uie();lie();die();d2();fie();l2();pie();hie();f2();mie();gie()});var Zs=v(()=>{a2();yie();c2();dd()});var JZe=v(()=>{});var Sie=v(()=>{Zs();Vre();dd()});var _ie=v(()=>{a2();Vre();wS();c2();Zs();JZe();dd();Wre();Kre();Zre();u2();Yre();Jre();Xre();Qre();$re();eie();tie();nie();rie();iie();sie();oie();aie();cie();uie();lie();die();gie();d2();fie();l2();pie();hie();f2();mie();yie();Sie();Sie()});function Eie(e){let n=Gz(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=sZe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function bie(e,t){let n=vS(e,t);if(!n.success)throw n.error;return n.data}var QZe=v(()=>{zz();_ie()});function $Ze(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function e5e(e,t){let n={...e};for(let r in t){let i=r,s=t[i];if(s===void 0)continue;let o=n[i];$Ze(o)&&$Ze(s)?n[i]={...o,...s}:n[i]=s}return n}var ban,p2,t5e=v(()=>{zz();kb();YZe();QZe();ban=6e4,p2=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Xz,n=>{this._oncancel(n)}),this.setNotificationHandler($z,n=>{this._onprogress(n)}),this.setRequestHandler(Qz,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(e2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new en(yn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(n2,async(n,r)=>{let i=async()=>{let s=n.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,r.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,f=new en(d.error.code,d.error.message,d.error.data);l(f)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:r.requestId})}}let o=await this._taskStore.getTask(s,r.sessionId);if(!o)throw new en(yn.InvalidParams,`Task not found: ${s}`);if(!RS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(RS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[AS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(r2,async(n,r)=>{try{let{tasks:i,nextCursor:s}=await this._taskStore.listTasks(n.params?.cursor,r.sessionId);return{tasks:i,nextCursor:s,_meta:{}}}catch(i){throw new en(yn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(s2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new en(yn.InvalidParams,`Task not found: ${n.params.taskId}`);if(RS(i.status))throw new en(yn.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new en(yn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof en?i:new en(yn.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),en.fromError(yn.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let r=this.transport?.onerror;this._transport.onerror=s=>{r?.(s),this._onerror(s)};let i=this._transport?.onmessage;this._transport.onmessage=(s,o)=>{i?.(s,o),zP(s)||HZe(s)?this._onresponse(s):kre(s)?this._onrequest(s,o):FZe(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let r of this._timeoutInfo.values())clearTimeout(r.timeoutId);this._timeoutInfo.clear();for(let r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();let n=en.fromError(yn.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let r of t.values())r(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){let n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(t,n){let r=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,i=this._transport,s=t.params?._meta?.[AS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:yn.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(t.id,o);let a=LZe(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{if(o.signal.aborted)return;let d={relatedRequestId:t.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,f)=>{if(o.signal.aborted)throw new en(yn.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:t.id};s&&!p.relatedTask&&(p.relatedTask={taskId:s});let h=p.relatedTask?.taskId??s;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(l,d,p)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(t.method)}).then(()=>r(t,u)).then(async l=>{if(o.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:t.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)},async l=>{if(o.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:yn.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===o&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...r}=t.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(r)}_onresponse(t){let n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),zP(t))r(t);else{let o=new en(t.error.code,t.error.message,t.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(zP(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),zP(t))i(t);else{let o=en.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,r){let{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(t,n,r)}}catch(o){yield{type:"error",error:o instanceof en?o:new en(yn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,jw,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new en(yn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},RS(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)}:a.status==="failed"?yield{type:"error",error:new en(yn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new en(yn.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),r?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof en?o:new en(yn.InternalError,String(o))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{let d=E=>{l(E)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(E){d(E);return}r?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:f};r?.onprogress&&(this._progressHandlers.set(f,r.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[AS]:c}});let h=E=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(E)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(_=>this._onerror(new Error(`Failed to send cancellation: ${_}`)));let S=E instanceof en?E:new en(yn.RequestTimeout,String(E));l(S)};this._responseHandlers.set(f,E=>{if(!r?.signal?.aborted){if(E instanceof Error)return l(E);try{let S=vS(n,E.result);S.success?u(S.data):l(S.error)}catch(S){l(S)}}}),r?.signal?.addEventListener("abort",()=>{h(r?.signal?.reason)});let m=r?.timeout??ban,y=()=>h(en.fromError(yn.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,r?.maxTotalTimeout,y,r?.resetTimeoutOnProgress??!1);let g=c?.taskId;if(g){let E=S=>{let _=this._responseHandlers.get(f);_?_(S):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,E),this._enqueueTaskMessage(g,{type:"request",message:p,timestamp:Date.now()}).catch(S=>{this._cleanupTimeout(f),l(S)})}else this._transport.send(p,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(E=>{this._cleanupTimeout(f),l(E)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},t2,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},i2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},GZe,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let r=n?.relatedTask?.taskId;if(r){let a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[AS]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[AS]:n.relatedTask}}}),this._transport?.send(a,n).catch(c=>this._onerror(c))});return}let o={...t,jsonrpc:"2.0"};n?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[AS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Eie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=bie(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=Eie(t);this._notificationHandlers.set(r,i=>{let s=bie(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,i)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&kre(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new en(yn.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){let r=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(t);i?.pollInterval&&(r=i.pollInterval)}catch{}return new Promise((i,s)=>{if(n.aborted){s(new en(yn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new en(yn.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{let s=await r.getTask(i,n);if(!s)throw new en(yn.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await r.storeTaskResult(i,s,o,n);let a=await r.getTask(i,n);if(a){let c=YP.parse({method:"notifications/tasks/status",params:a});await this.notification(c),RS(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new en(yn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(RS(a.status))throw new en(yn.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=YP.parse({method:"notifications/tasks/status",params:c});await this.notification(u),RS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var qw=w(er=>{"use strict";Object.defineProperty(er,"__esModule",{value:!0});er.regexpCode=er.getEsmExportName=er.getProperty=er.safeStringify=er.stringify=er.strConcat=er.addCodeArg=er.str=er._=er.nil=er._Code=er.Name=er.IDENTIFIER=er._CodeOrName=void 0;var tC=class{};er._CodeOrName=tC;er.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Ib=class extends tC{constructor(t){if(super(),!er.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};er.Name=Ib;var fd=class extends tC{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((n,r)=>`${n}${r}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((n,r)=>(r instanceof Ib&&(n[r.str]=(n[r.str]||0)+1),n),{})}};er._Code=fd;er.nil=new fd("");function n5e(e,...t){let n=[e[0]],r=0;for(;r{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.ValueScope=yu.ValueScopeName=yu.Scope=yu.varKinds=yu.UsedValueState=void 0;var gu=qw(),Aie=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},h2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(h2||(yu.UsedValueState=h2={}));yu.varKinds={const:new gu.Name("const"),let:new gu.Name("let"),var:new gu.Name("var")};var m2=class{constructor({prefixes:t,parent:n}={}){this._names={},this._prefixes=t,this._parent=n}toName(t){return t instanceof gu.Name?t:this.name(t)}name(t){return new gu.Name(this._newName(t))}_newName(t){let n=this._names[t]||this._nameGroup(t);return`${t}${n.index++}`}_nameGroup(t){var n,r;if(!((r=(n=this._parent)===null||n===void 0?void 0:n._prefixes)===null||r===void 0)&&r.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};yu.Scope=m2;var g2=class extends gu.Name{constructor(t,n){super(n),this.prefix=t}setValue(t,{property:n,itemIndex:r}){this.value=t,this.scopePath=(0,gu._)`.${new gu.Name(n)}[${r}]`}};yu.ValueScopeName=g2;var Oan=(0,gu._)`\n`,Rie=class extends m2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Oan:gu.nil}}get(){return this._scope}name(t){return new g2(t,this._newName(t))}value(t,n){var r;if(n.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:s}=i,o=(r=n.key)!==null&&r!==void 0?r:n.ref,a=this._values[s];if(a){let l=a.get(o);if(l)return l}else a=this._values[s]=new Map;a.set(o,i);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=n.ref,i.setValue(n,{property:s,itemIndex:u}),i}getValue(t,n){let r=this._values[t];if(r)return r.get(n)}scopeRefs(t,n=this._values){return this._reduceValues(n,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return(0,gu._)`${t}${r.scopePath}`})}scopeCode(t=this._values,n,r){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},n,r)}_reduceValues(t,n,r={},i){let s=gu.nil;for(let o in t){let a=t[o];if(!a)continue;let c=r[o]=r[o]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,h2.Started);let l=n(u);if(l){let d=this.opts.es5?yu.varKinds.var:yu.varKinds.const;s=(0,gu._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))s=(0,gu._)`${s}${l}${this.opts._n}`;else throw new Aie(u);c.set(u,h2.Completed)})}return s}};yu.ValueScope=Rie});var kt=w(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.or=Sn.and=Sn.not=Sn.CodeGen=Sn.operators=Sn.varKinds=Sn.ValueScopeName=Sn.ValueScope=Sn.Scope=Sn.Name=Sn.regexpCode=Sn.stringify=Sn.getProperty=Sn.nil=Sn.strConcat=Sn.str=Sn._=void 0;var zn=qw(),Ef=y2(),kS=qw();Object.defineProperty(Sn,"_",{enumerable:!0,get:function(){return kS._}});Object.defineProperty(Sn,"str",{enumerable:!0,get:function(){return kS.str}});Object.defineProperty(Sn,"strConcat",{enumerable:!0,get:function(){return kS.strConcat}});Object.defineProperty(Sn,"nil",{enumerable:!0,get:function(){return kS.nil}});Object.defineProperty(Sn,"getProperty",{enumerable:!0,get:function(){return kS.getProperty}});Object.defineProperty(Sn,"stringify",{enumerable:!0,get:function(){return kS.stringify}});Object.defineProperty(Sn,"regexpCode",{enumerable:!0,get:function(){return kS.regexpCode}});Object.defineProperty(Sn,"Name",{enumerable:!0,get:function(){return kS.Name}});var b2=y2();Object.defineProperty(Sn,"Scope",{enumerable:!0,get:function(){return b2.Scope}});Object.defineProperty(Sn,"ValueScope",{enumerable:!0,get:function(){return b2.ValueScope}});Object.defineProperty(Sn,"ValueScopeName",{enumerable:!0,get:function(){return b2.ValueScopeName}});Object.defineProperty(Sn,"varKinds",{enumerable:!0,get:function(){return b2.varKinds}});Sn.operators={GT:new zn._Code(">"),GTE:new zn._Code(">="),LT:new zn._Code("<"),LTE:new zn._Code("<="),EQ:new zn._Code("==="),NEQ:new zn._Code("!=="),NOT:new zn._Code("!"),OR:new zn._Code("||"),AND:new zn._Code("&&"),ADD:new zn._Code("+")};var Fm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},wie=class extends Fm{constructor(t,n,r){super(),this.varKind=t,this.name=n,this.rhs=r}render({es5:t,_n:n}){let r=t?Ef.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${r} ${this.name}${i};`+n}optimizeNames(t,n){if(t[this.name.str])return this.rhs&&(this.rhs=Gw(this.rhs,t,n)),this}get names(){return this.rhs instanceof zn._CodeOrName?this.rhs.names:{}}},S2=class extends Fm{constructor(t,n,r){super(),this.lhs=t,this.rhs=n,this.sideEffects=r}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,n){if(!(this.lhs instanceof zn.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Gw(this.rhs,t,n),this}get names(){let t=this.lhs instanceof zn.Name?{}:{...this.lhs.names};return E2(t,this.rhs)}},kie=class extends S2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Iie=class extends Fm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},xie=class extends Fm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Oie=class extends Fm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Nie=class extends Fm{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,n){return this.code=Gw(this.code,t,n),this}get names(){return this.code instanceof zn._CodeOrName?this.code.names:{}}},rC=class extends Fm{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((n,r)=>n+r.render(t),"")}optimizeNodes(){let{nodes:t}=this,n=t.length;for(;n--;){let r=t[n].optimizeNodes();Array.isArray(r)?t.splice(n,1,...r):r?t[n]=r:t.splice(n,1)}return t.length>0?this:void 0}optimizeNames(t,n){let{nodes:r}=this,i=r.length;for(;i--;){let s=r[i];s.optimizeNames(t,n)||(Nan(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>Nb(t,n.names),{})}},Hm=class extends rC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Pie=class extends rC{},Bw=class extends Hm{};Bw.kind="else";var xb=class e extends Hm{constructor(t,n){super(n),this.condition=t}render(t){let n=`if(${this.condition})`+super.render(t);return this.else&&(n+="else "+this.else.render(t)),n}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let r=n.optimizeNodes();n=this.else=Array.isArray(r)?new Bw(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(i5e(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,n){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,n),!!(super.optimizeNames(t,n)||this.else))return this.condition=Gw(this.condition,t,n),this}get names(){let t=super.names;return E2(t,this.condition),this.else&&Nb(t,this.else.names),t}};xb.kind="if";var Ob=class extends Hm{};Ob.kind="for";var Cie=class extends Ob{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iteration=Gw(this.iteration,t,n),this}get names(){return Nb(super.names,this.iteration.names)}},Mie=class extends Ob{constructor(t,n,r,i){super(),this.varKind=t,this.name=n,this.from=r,this.to=i}render(t){let n=t.es5?Ef.varKinds.var:this.varKind,{name:r,from:i,to:s}=this;return`for(${n} ${r}=${i}; ${r}<${s}; ${r}++)`+super.render(t)}get names(){let t=E2(super.names,this.from);return E2(t,this.to)}},_2=class extends Ob{constructor(t,n,r,i){super(),this.loop=t,this.varKind=n,this.name=r,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iterable=Gw(this.iterable,t,n),this}get names(){return Nb(super.names,this.iterable.names)}},iC=class extends Hm{constructor(t,n,r){super(),this.name=t,this.args=n,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};iC.kind="func";var sC=class extends rC{render(t){return"return "+super.render(t)}};sC.kind="return";var Die=class extends Hm{render(t){let n="try"+super.render(t);return this.catch&&(n+=this.catch.render(t)),this.finally&&(n+=this.finally.render(t)),n}optimizeNodes(){var t,n;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(n=this.finally)===null||n===void 0||n.optimizeNodes(),this}optimizeNames(t,n){var r,i;return super.optimizeNames(t,n),(r=this.catch)===null||r===void 0||r.optimizeNames(t,n),(i=this.finally)===null||i===void 0||i.optimizeNames(t,n),this}get names(){let t=super.names;return this.catch&&Nb(t,this.catch.names),this.finally&&Nb(t,this.finally.names),t}},oC=class extends Hm{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};oC.kind="catch";var aC=class extends Hm{render(t){return"finally"+super.render(t)}};aC.kind="finally";var Lie=class{constructor(t,n={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...n,_n:n.lines?` -`:""},this._extScope=t,this._scope=new Ef.Scope({parent:t}),this._nodes=[new Pie]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,n){let r=this._extScope.value(t,n);return(this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(t,n){return this._extScope.getValue(t,n)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,n,r,i){let s=this._scope.toName(n);return r!==void 0&&i&&(this._constants[s.str]=r),this._leafNode(new wie(t,s,r)),s}const(t,n,r){return this._def(Ef.varKinds.const,t,n,r)}let(t,n,r){return this._def(Ef.varKinds.let,t,n,r)}var(t,n,r){return this._def(Ef.varKinds.var,t,n,r)}assign(t,n,r){return this._leafNode(new S2(t,n,r))}add(t,n){return this._leafNode(new kie(t,Sn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==zn.nil&&this._leafNode(new Nie(t)),this}object(...t){let n=["{"];for(let[r,i]of t)n.length>1&&n.push(","),n.push(r),(r!==i||this.opts.es5)&&(n.push(":"),(0,zn.addCodeArg)(n,i));return n.push("}"),new zn._Code(n)}if(t,n,r){if(this._blockNode(new xb(t)),n&&r)this.code(n).else().code(r).endIf();else if(n)this.code(n).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new xb(t))}else(){return this._elseNode(new Bw)}endIf(){return this._endBlockNode(xb,Bw)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new Cie(t),n)}forRange(t,n,r,i,s=this.opts.es5?Ef.varKinds.var:Ef.varKinds.let){let o=this._scope.toName(t);return this._for(new Mie(s,o,n,r),()=>i(o))}forOf(t,n,r,i=Ef.varKinds.const){let s=this._scope.toName(t);if(this.opts.es5){let o=n instanceof zn.Name?n:this.var("_arr",n);return this.forRange("_i",0,(0,zn._)`${o}.length`,a=>{this.var(s,(0,zn._)`${o}[${a}]`),r(s)})}return this._for(new _2("of",i,s,n),()=>r(s))}forIn(t,n,r,i=this.opts.es5?Ef.varKinds.var:Ef.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,zn._)`Object.keys(${n})`,r);let s=this._scope.toName(t);return this._for(new _2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(Ob)}label(t){return this._leafNode(new Iie(t))}break(t){return this._leafNode(new xie(t))}return(t){let n=new sC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(sC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Die;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new oC(s),n(s)}return r&&(this._currNode=i.finally=new aC,this.code(r)),this._endBlockNode(oC,aC)}throw(t){return this._leafNode(new Oie(t))}block(t,n){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(n),this}endBlock(t){let n=this._blockStarts.pop();if(n===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-n;if(r<0||t!==void 0&&r!==t)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${t} expected`);return this._nodes.length=n,this}func(t,n=zn.nil,r,i){return this._blockNode(new iC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(iC)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,n){let r=this._currNode;if(r instanceof t||n&&r instanceof n)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${n?`${t.kind}/${n.kind}`:t.kind}"`)}_elseNode(t){let n=this._currNode;if(!(n instanceof xb))throw new Error('CodeGen: "else" without "if"');return this._currNode=n.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let n=this._nodes;n[n.length-1]=t}};Sn.CodeGen=Lie;function Nb(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function E2(e,t){return t instanceof zn._CodeOrName?Nb(e,t.names):e}function Gw(e,t,n){if(e instanceof zn.Name)return r(e);if(!i(e))return e;return new zn._Code(e._items.reduce((s,o)=>(o instanceof zn.Name&&(o=r(o)),o instanceof zn._Code?s.push(...o._items):s.push(o),s),[]));function r(s){let o=n[s.str];return o===void 0||t[s.str]!==1?s:(delete t[s.str],o)}function i(s){return s instanceof zn._Code&&s._items.some(o=>o instanceof zn.Name&&t[o.str]===1&&n[o.str]!==void 0)}}function Nan(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function i5e(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,zn._)`!${Uie(e)}`}Sn.not=i5e;var Pan=s5e(Sn.operators.AND);function Can(...e){return e.reduce(Pan)}Sn.and=Can;var Man=s5e(Sn.operators.OR);function Dan(...e){return e.reduce(Man)}Sn.or=Dan;function s5e(e){return(t,n)=>t===zn.nil?n:n===zn.nil?t:(0,zn._)`${Uie(t)} ${e} ${Uie(n)}`}function Uie(e){return e instanceof zn.Name?e:(0,zn._)`(${e})`}});var pn=w(An=>{"use strict";Object.defineProperty(An,"__esModule",{value:!0});An.checkStrictMode=An.getErrorPath=An.Type=An.useFunc=An.setEvaluated=An.evaluatedPropsToName=An.mergeEvaluated=An.eachItem=An.unescapeJsonPointer=An.escapeJsonPointer=An.escapeFragment=An.unescapeFragment=An.schemaRefOrVal=An.schemaHasRulesButRef=An.schemaHasRules=An.checkUnknownRules=An.alwaysValidSchema=An.toHash=void 0;var zr=kt(),Lan=qw();function Uan(e){let t={};for(let n of e)t[n]=!0;return t}An.toHash=Uan;function jan(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(c5e(e,t),!u5e(t,e.self.RULES.all))}An.alwaysValidSchema=jan;function c5e(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t=="boolean")return;let i=r.RULES.keywords;for(let s in t)i[s]||f5e(e,`unknown keyword: "${s}"`)}An.checkUnknownRules=c5e;function u5e(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}An.schemaHasRules=u5e;function Fan(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(n!=="$ref"&&t.all[n])return!0;return!1}An.schemaHasRulesButRef=Fan;function Han({topSchemaRef:e,schemaPath:t},n,r,i){if(!i){if(typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="string")return(0,zr._)`${n}`}return(0,zr._)`${e}${t}${(0,zr.getProperty)(r)}`}An.schemaRefOrVal=Han;function qan(e){return l5e(decodeURIComponent(e))}An.unescapeFragment=qan;function Ban(e){return encodeURIComponent(Fie(e))}An.escapeFragment=Ban;function Fie(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}An.escapeJsonPointer=Fie;function l5e(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}An.unescapeJsonPointer=l5e;function Gan(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}An.eachItem=Gan;function o5e({mergeNames:e,mergeToName:t,mergeValues:n,resultToName:r}){return(i,s,o,a)=>{let c=o===void 0?s:o instanceof zr.Name?(s instanceof zr.Name?e(i,s,o):t(i,s,o),o):s instanceof zr.Name?(t(i,o,s),s):n(s,o);return a===zr.Name&&!(c instanceof zr.Name)?r(i,c):c}}An.mergeEvaluated={props:o5e({mergeNames:(e,t,n)=>e.if((0,zr._)`${n} !== true && ${t} !== undefined`,()=>{e.if((0,zr._)`${t} === true`,()=>e.assign(n,!0),()=>e.assign(n,(0,zr._)`${n} || {}`).code((0,zr._)`Object.assign(${n}, ${t})`))}),mergeToName:(e,t,n)=>e.if((0,zr._)`${n} !== true`,()=>{t===!0?e.assign(n,!0):(e.assign(n,(0,zr._)`${n} || {}`),Hie(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:d5e}),items:o5e({mergeNames:(e,t,n)=>e.if((0,zr._)`${n} !== true && ${t} !== undefined`,()=>e.assign(n,(0,zr._)`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`)),mergeToName:(e,t,n)=>e.if((0,zr._)`${n} !== true`,()=>e.assign(n,t===!0?!0:(0,zr._)`${n} > ${t} ? ${n} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function d5e(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,zr._)`{}`);return t!==void 0&&Hie(e,n,t),n}An.evaluatedPropsToName=d5e;function Hie(e,t,n){Object.keys(n).forEach(r=>e.assign((0,zr._)`${t}${(0,zr.getProperty)(r)}`,!0))}An.setEvaluated=Hie;var a5e={};function zan(e,t){return e.scopeValue("func",{ref:t,code:a5e[t.code]||(a5e[t.code]=new Lan._Code(t.code))})}An.useFunc=zan;var jie;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(jie||(An.Type=jie={}));function Van(e,t,n){if(e instanceof zr.Name){let r=t===jie.Num;return n?r?(0,zr._)`"[" + ${e} + "]"`:(0,zr._)`"['" + ${e} + "']"`:r?(0,zr._)`"/" + ${e}`:(0,zr._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return n?(0,zr.getProperty)(e).toString():"/"+Fie(e)}An.getErrorPath=Van;function f5e(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw new Error(t);e.self.logger.warn(t)}}An.checkStrictMode=f5e});var pd=w(qie=>{"use strict";Object.defineProperty(qie,"__esModule",{value:!0});var Xa=kt(),Wan={data:new Xa.Name("data"),valCxt:new Xa.Name("valCxt"),instancePath:new Xa.Name("instancePath"),parentData:new Xa.Name("parentData"),parentDataProperty:new Xa.Name("parentDataProperty"),rootData:new Xa.Name("rootData"),dynamicAnchors:new Xa.Name("dynamicAnchors"),vErrors:new Xa.Name("vErrors"),errors:new Xa.Name("errors"),this:new Xa.Name("this"),self:new Xa.Name("self"),scope:new Xa.Name("scope"),json:new Xa.Name("json"),jsonPos:new Xa.Name("jsonPos"),jsonLen:new Xa.Name("jsonLen"),jsonPart:new Xa.Name("jsonPart")};qie.default=Wan});var cC=w(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.extendErrors=Qa.resetErrorsCount=Qa.reportExtraError=Qa.reportError=Qa.keyword$DataError=Qa.keywordError=void 0;var Kn=kt(),T2=pn(),Hc=pd();Qa.keywordError={message:({keyword:e})=>(0,Kn.str)`must pass "${e}" keyword validation`};Qa.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,Kn.str)`"${e}" keyword must be ${t} ($data)`:(0,Kn.str)`"${e}" keyword is invalid ($data)`};function Kan(e,t=Qa.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=m5e(e,t,n);r??(o||a)?p5e(s,c):h5e(i,(0,Kn._)`[${c}]`)}Qa.reportError=Kan;function Zan(e,t=Qa.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=m5e(e,t,n);p5e(i,a),s||o||h5e(r,Hc.default.vErrors)}Qa.reportExtraError=Zan;function Yan(e,t){e.assign(Hc.default.errors,t),e.if((0,Kn._)`${Hc.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,Kn._)`${Hc.default.vErrors}.length`,t),()=>e.assign(Hc.default.vErrors,null)))}Qa.resetErrorsCount=Yan;function Jan({gen:e,keyword:t,schemaValue:n,data:r,errsCount:i,it:s}){if(i===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",i,Hc.default.errors,a=>{e.const(o,(0,Kn._)`${Hc.default.vErrors}[${a}]`),e.if((0,Kn._)`${o}.instancePath === undefined`,()=>e.assign((0,Kn._)`${o}.instancePath`,(0,Kn.strConcat)(Hc.default.instancePath,s.errorPath))),e.assign((0,Kn._)`${o}.schemaPath`,(0,Kn.str)`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign((0,Kn._)`${o}.schema`,n),e.assign((0,Kn._)`${o}.data`,r))})}Qa.extendErrors=Jan;function p5e(e,t){let n=e.const("err",t);e.if((0,Kn._)`${Hc.default.vErrors} === null`,()=>e.assign(Hc.default.vErrors,(0,Kn._)`[${n}]`),(0,Kn._)`${Hc.default.vErrors}.push(${n})`),e.code((0,Kn._)`${Hc.default.errors}++`)}function h5e(e,t){let{gen:n,validateName:r,schemaEnv:i}=e;i.$async?n.throw((0,Kn._)`new ${e.ValidationError}(${t})`):(n.assign((0,Kn._)`${r}.errors`,t),n.return(!1))}var Pb={keyword:new Kn.Name("keyword"),schemaPath:new Kn.Name("schemaPath"),params:new Kn.Name("params"),propertyName:new Kn.Name("propertyName"),message:new Kn.Name("message"),schema:new Kn.Name("schema"),parentSchema:new Kn.Name("parentSchema")};function m5e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Kn._)`{}`:Xan(e,t,n)}function Xan(e,t,n={}){let{gen:r,it:i}=e,s=[Qan(i,n),$an(e,n)];return ecn(e,t,s),r.object(...s)}function Qan({errorPath:e},{instancePath:t}){let n=t?(0,Kn.str)`${e}${(0,T2.getErrorPath)(t,T2.Type.Str)}`:e;return[Hc.default.instancePath,(0,Kn.strConcat)(Hc.default.instancePath,n)]}function $an({keyword:e,it:{errSchemaPath:t}},{schemaPath:n,parentSchema:r}){let i=r?t:(0,Kn.str)`${t}/${e}`;return n&&(i=(0,Kn.str)`${i}${(0,T2.getErrorPath)(n,T2.Type.Str)}`),[Pb.schemaPath,i]}function ecn(e,{params:t,message:n},r){let{keyword:i,data:s,schemaValue:o,it:a}=e,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;r.push([Pb.keyword,i],[Pb.params,typeof t=="function"?t(e):t||(0,Kn._)`{}`]),c.messages&&r.push([Pb.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([Pb.schema,o],[Pb.parentSchema,(0,Kn._)`${l}${d}`],[Hc.default.data,s]),u&&r.push([Pb.propertyName,u])}});var y5e=w(zw=>{"use strict";Object.defineProperty(zw,"__esModule",{value:!0});zw.boolOrEmptySchema=zw.topBoolOrEmptySchema=void 0;var tcn=cC(),ncn=kt(),rcn=pd(),icn={message:"boolean schema is false"};function scn(e){let{gen:t,schema:n,validateName:r}=e;n===!1?g5e(e,!1):typeof n=="object"&&n.$async===!0?t.return(rcn.default.data):(t.assign((0,ncn._)`${r}.errors`,null),t.return(!0))}zw.topBoolOrEmptySchema=scn;function ocn(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),g5e(e)):n.var(t,!0)}zw.boolOrEmptySchema=ocn;function g5e(e,t){let{gen:n,data:r}=e,i={gen:n,keyword:"false schema",data:r,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,tcn.reportError)(i,icn,void 0,t)}});var Bie=w(Vw=>{"use strict";Object.defineProperty(Vw,"__esModule",{value:!0});Vw.getRules=Vw.isJSONType=void 0;var acn=["string","number","integer","boolean","null","object","array"],ccn=new Set(acn);function ucn(e){return typeof e=="string"&&ccn.has(e)}Vw.isJSONType=ucn;function lcn(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Vw.getRules=lcn});var Gie=w(IS=>{"use strict";Object.defineProperty(IS,"__esModule",{value:!0});IS.shouldUseRule=IS.shouldUseGroup=IS.schemaHasRulesForType=void 0;function dcn({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&S5e(e,r)}IS.schemaHasRulesForType=dcn;function S5e(e,t){return t.rules.some(n=>_5e(e,n))}IS.shouldUseGroup=S5e;function _5e(e,t){var n;return e[t.keyword]!==void 0||((n=t.definition.implements)===null||n===void 0?void 0:n.some(r=>e[r]!==void 0))}IS.shouldUseRule=_5e});var uC=w($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.reportTypeError=$a.checkDataTypes=$a.checkDataType=$a.coerceAndCheckDataType=$a.getJSONTypes=$a.getSchemaTypes=$a.DataType=void 0;var fcn=Bie(),pcn=Gie(),hcn=cC(),hn=kt(),E5e=pn(),Ww;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Ww||($a.DataType=Ww={}));function mcn(e){let t=b5e(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}$a.getSchemaTypes=mcn;function b5e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(fcn.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}$a.getJSONTypes=b5e;function gcn(e,t){let{gen:n,data:r,opts:i}=e,s=ycn(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,pcn.schemaHasRulesForType)(e,t[0]));if(o){let a=Vie(t,r,i.strictNumbers,Ww.Wrong);n.if(a,()=>{s.length?Scn(e,t,s):Wie(e)})}return o}$a.coerceAndCheckDataType=gcn;var T5e=new Set(["string","number","integer","boolean","null"]);function ycn(e,t){return t?e.filter(n=>T5e.has(n)||t==="array"&&n==="array"):[]}function Scn(e,t,n){let{gen:r,data:i,opts:s}=e,o=r.let("dataType",(0,hn._)`typeof ${i}`),a=r.let("coerced",(0,hn._)`undefined`);s.coerceTypes==="array"&&r.if((0,hn._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0,hn._)`${i}[0]`).assign(o,(0,hn._)`typeof ${i}`).if(Vie(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(T5e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),Wie(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),_cn(e,a)});function c(u){switch(u){case"string":r.elseIf((0,hn._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,hn._)`"" + ${i}`).elseIf((0,hn._)`${i} === null`).assign(a,(0,hn._)`""`);return;case"number":r.elseIf((0,hn._)`${o} == "boolean" || ${i} === null + path: iss.path ? [${Ib(E)}, ...iss.path] : [${Ib(E)}] + })));`),f.write(`newResult[${Ib(E)}] = ${S}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");let y=f.compile();return(E,S)=>y(d,E,S)},i,s=Fw,o=!Hz.jitless,c=o&&Jne.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let _ of l.keys){let b=S[_],T=b._zod.run({value:p[_],issues:[]},f),A=b._zod.optin==="optional"&&b._zod.optout==="optional";T instanceof Promise?h.push(T.then(R=>A?j9e(R,d,_,p):Zz(R,d,_))):A?j9e(T,d,_,p):Zz(T,d,_)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let m=[],g=l.keySet,y=u._zod,E=y.def.type;for(let S of Object.keys(p)){if(g.has(S))continue;if(E==="never"){m.push(S);continue}let _=y.run({value:p[S],issues:[]},f);_ instanceof Promise?h.push(_.then(b=>Zz(b,d,S))):Zz(_,d,S)}return m.length&&d.issues.push({code:"unrecognized_keys",keys:m,input:p,inst:e}),h.length?Promise.all(h).then(()=>d):d}});mre=me("$ZodUnion",(e,t)=>{ri.init(e,t),ni(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ni(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ni(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ni(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>BN(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>H9e(o,n,e,r)):H9e(s,n,e,r)}}),A3e=me("$ZodDiscriminatedUnion",(e,t)=>{mre.init(e,t);let n=e._zod.parse;ni(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=HN(()=>{let i=t.options,s=new Map;for(let o of i){let a=o._zod.propValues[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});e._zod.parse=(i,s)=>{let o=i.value;if(!Fw(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;let a=r.value.get(o?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[t.discriminator],inst:e}),i)}}),R3e=me("$ZodIntersection",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>q9e(n,c,u)):q9e(n,s,o)}});w3e=me("$ZodRecord",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!jw(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...lh(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...lh(c,u.issues)),n.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=t.keyType._zod.run({value:o,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>bf(u,r,ld())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...lh(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...lh(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),k3e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=Wne(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>Xne.has(typeof r)).map(r=>typeof r=="string"?wS(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),I3e=me("$ZodLiteral",(e,t)=>{ri.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?wS(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),x3e=me("$ZodTransform",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new qm;return n.value=i,n}}),O3e=me("$ZodOptional",(e,t)=>{ri.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ni(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ni(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${BN(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),P3e=me("$ZodNullable",(e,t)=>{ri.init(e,t),ni(e._zod,"optin",()=>t.innerType._zod.optin),ni(e._zod,"optout",()=>t.innerType._zod.optout),ni(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${BN(n.source)}|null)$`):void 0}),ni(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),N3e=me("$ZodDefault",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>B9e(s,t)):B9e(i,t)}});C3e=me("$ZodPrefault",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),M3e=me("$ZodNonOptional",(e,t)=>{ri.init(e,t),ni(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>G9e(s,e)):G9e(i,e)}});D3e=me("$ZodCatch",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"optout",()=>t.innerType._zod.optout),ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>bf(o,r,ld()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>bf(s,r,ld()))},input:n.value}),n.issues=[]),n)}}),L3e=me("$ZodPipe",(e,t)=>{ri.init(e,t),ni(e._zod,"values",()=>t.in._zod.values),ni(e._zod,"optin",()=>t.in._zod.optin),ni(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>z9e(s,t,r)):z9e(i,t,r)}});U3e=me("$ZodReadonly",(e,t)=>{ri.init(e,t),ni(e._zod,"propValues",()=>t.innerType._zod.propValues),ni(e._zod,"values",()=>t.innerType._zod.values),ni(e._zod,"optin",()=>t.innerType._zod.optin),ni(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(V9e):V9e(i)}});F3e=me("$ZodCustom",(e,t)=>{nc.init(e,t),ri.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>W9e(s,n,r,e));W9e(i,n,r,e)}})});function H3e(){return{localeError:Usn()}}var Lsn,Usn,q3e=v(()=>{Bm();Lsn=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},Usn=()=>{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"}};function t(r){return e[r]??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"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${Lsn(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${Gz(r.values[0])}`:`Invalid option: expected one of ${qz(r.values,"|")}`;case"too_big":{let i=r.inclusive?"<=":"<",s=t(r.origin);return s?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{let i=r.inclusive?">=":">",s=t(r.origin);return s?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${s.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{let i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${qz(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}}});var Xz=v(()=>{});function Fsn(){return new yre}var yre,WN,B3e=v(()=>{yre=class{constructor(){this._map=new Map,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(t){let n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};WN=Fsn()});function G3e(e,t){return new e({type:"string",...Dt(t)})}function z3e(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Dt(t)})}function Sre(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(t)})}function V3e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(t)})}function W3e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(t)})}function K3e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(t)})}function Y3e(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(t)})}function Z3e(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Dt(t)})}function J3e(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(t)})}function X3e(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(t)})}function Q3e(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(t)})}function $3e(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(t)})}function eYe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(t)})}function tYe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(t)})}function nYe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(t)})}function rYe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(t)})}function iYe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(t)})}function sYe(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(t)})}function oYe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(t)})}function aYe(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(t)})}function cYe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(t)})}function uYe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(t)})}function lYe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(t)})}function dYe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(t)})}function fYe(e,t){return new e({type:"string",format:"date",check:"string_format",...Dt(t)})}function pYe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Dt(t)})}function hYe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Dt(t)})}function mYe(e,t){return new e({type:"number",checks:[],...Dt(t)})}function gYe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(t)})}function yYe(e,t){return new e({type:"boolean",...Dt(t)})}function SYe(e,t){return new e({type:"null",...Dt(t)})}function EYe(e){return new e({type:"unknown"})}function _Ye(e,t){return new e({type:"never",...Dt(t)})}function Qz(e,t){return new ure({check:"less_than",...Dt(t),value:e,inclusive:!1})}function KN(e,t){return new ure({check:"less_than",...Dt(t),value:e,inclusive:!0})}function $z(e,t){return new lre({check:"greater_than",...Dt(t),value:e,inclusive:!1})}function YN(e,t){return new lre({check:"greater_than",...Dt(t),value:e,inclusive:!0})}function eV(e,t){return new A9e({check:"multiple_of",...Dt(t),value:e})}function tV(e,t){return new w9e({check:"max_length",...Dt(t),maximum:e})}function Hw(e,t){return new k9e({check:"min_length",...Dt(t),minimum:e})}function nV(e,t){return new I9e({check:"length_equals",...Dt(t),length:e})}function Ere(e,t){return new x9e({check:"string_format",format:"regex",...Dt(t),pattern:e})}function _re(e){return new O9e({check:"string_format",format:"lowercase",...Dt(e)})}function bre(e){return new P9e({check:"string_format",format:"uppercase",...Dt(e)})}function Tre(e,t){return new N9e({check:"string_format",format:"includes",...Dt(t),includes:e})}function vre(e,t){return new C9e({check:"string_format",format:"starts_with",...Dt(t),prefix:e})}function Are(e,t){return new M9e({check:"string_format",format:"ends_with",...Dt(t),suffix:e})}function Ob(e){return new D9e({check:"overwrite",tx:e})}function Rre(e){return Ob(t=>t.normalize(e))}function wre(){return Ob(e=>e.trim())}function kre(){return Ob(e=>e.toLowerCase())}function Ire(){return Ob(e=>e.toUpperCase())}function bYe(e,t,n){return new e({type:"array",element:t,...Dt(n)})}function TYe(e,t,n){let r=Dt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function vYe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Dt(n)})}var AYe=v(()=>{Kz();Bm()});var RYe=v(()=>{});var wYe=v(()=>{});var kYe=v(()=>{});var dd=v(()=>{Uw();sre();nre();j3e();Kz();fre();Bm();Wz();Xz();B3e();dre();RYe();AYe();wYe();kYe()});var IYe=v(()=>{dd()});var xYe=v(()=>{});var OYe=v(()=>{});var PYe=v(()=>{});var NYe=v(()=>{});var CYe=v(()=>{dd();IYe();xYe();OYe();Xz();PYe();NYe()});var MYe=v(()=>{CYe()});var DYe=v(()=>{MYe()});function Bw(e){return!!e._zod}function kS(e,t){return Bw(e)?zN(e,t):e.safeParse(t)}function rV(e){if(!e)return;let t;if(Bw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function LYe(e){if(Bw(e)){let s=e._zod?.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}let n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}let r=e.value;if(r!==void 0)return r}var iV=v(()=>{DYe()});var xre=v(()=>{dd()});var ZN={};Rr(ZN,{ZodISODate:()=>FYe,ZodISODateTime:()=>UYe,ZodISODuration:()=>HYe,ZodISOTime:()=>jYe,date:()=>Pre,datetime:()=>Ore,duration:()=>Cre,time:()=>Nre});function Ore(e){return dYe(UYe,e)}function Pre(e){return fYe(FYe,e)}function Nre(e){return pYe(jYe,e)}function Cre(e){return hYe(HYe,e)}var UYe,FYe,jYe,HYe,Mre=v(()=>{dd();Dre();UYe=me("ZodISODateTime",(e,t)=>{i3e.init(e,t),Di.init(e,t)});FYe=me("ZodISODate",(e,t)=>{s3e.init(e,t),Di.init(e,t)});jYe=me("ZodISOTime",(e,t)=>{o3e.init(e,t),Di.init(e,t)});HYe=me("ZodISODuration",(e,t)=>{a3e.init(e,t),Di.init(e,t)})});var qYe,XHr,JN,Lre=v(()=>{dd();dd();qYe=(e,t)=>{zz.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>VKe(e,n)},flatten:{value:n=>zKe(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},XHr=me("ZodError",qYe),JN=me("ZodError",qYe,{Parent:Error})});var BYe,GYe,zYe,VYe,Ure=v(()=>{dd();Lre();BYe=WKe(JN),GYe=KKe(JN),zYe=rre(JN),VYe=ire(JN)});function ce(e){return G3e(Zsn,e)}function vr(e){return mYe(JYe,e)}function KYe(e){return gYe(pon,e)}function Vo(e){return yYe(hon,e)}function XYe(e){return SYe(mon,e)}function Li(){return EYe(gon)}function Son(e){return _Ye(yon,e)}function Vn(e,t){return bYe(Eon,e,t)}function $e(e,t){let n={type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},...or.normalizeParams(t)};return new QYe(n)}function qc(e,t){return new QYe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new $Ye({type:"union",options:e,...or.normalizeParams(t)})}function Hre(e,t,n){return new _on({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function oV(e,t){return new bon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new Ton({type:"record",keyType:e,valueType:t,...or.normalizeParams(n)})}function bu(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Fre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new von({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function e5e(e){return new Aon({type:"transform",transform:e})}function Ui(e){return new t5e({type:"optional",innerType:e})}function YYe(e){return new Ron({type:"nullable",innerType:e})}function kon(e,t){return new won({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function xon(e,t){return new Ion({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Oon(e,t){return new n5e({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Non(e,t){return new Pon({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function jre(e,t){return new Con({type:"pipe",in:e,out:t})}function Don(e){return new Mon({type:"readonly",innerType:e})}function Lon(e){let t=new nc({check:"custom"});return t._zod.check=e,t}function i5e(e,t){return TYe(r5e,e??(()=>!0),t)}function Uon(e,t={}){return vYe(r5e,e,t)}function Fon(e){let t=Lon(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(or.issue(r,n.value,t._zod.def));else{let i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(or.issue(i))}},e(n.value,n)));return t}function qre(e,t){return jre(e5e(e),t)}var Ji,ZYe,Zsn,Di,Jsn,WYe,sV,Xsn,Qsn,$sn,eon,ton,non,ron,ion,son,oon,aon,con,uon,lon,don,fon,JYe,pon,hon,mon,gon,yon,Eon,QYe,$Ye,_on,bon,Ton,Fre,von,Aon,t5e,Ron,won,Ion,n5e,Pon,Con,Mon,r5e,Dre=v(()=>{dd();dd();xre();Mre();Ure();Ji=me("ZodType",(e,t)=>(ri.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>uh(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>BYe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>zYe(e,n,r),e.parseAsync=async(n,r)=>GYe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>VYe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Uon(n,r)),e.superRefine=n=>e.check(Fon(n)),e.overwrite=n=>e.check(Ob(n)),e.optional=()=>Ui(e),e.nullable=()=>YYe(e),e.nullish=()=>Ui(YYe(e)),e.nonoptional=n=>Oon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>oV(e,n),e.transform=n=>jre(e,e5e(n)),e.default=n=>kon(e,n),e.prefault=n=>xon(e,n),e.catch=n=>Non(e,n),e.pipe=n=>jre(e,n),e.readonly=()=>Don(e),e.describe=n=>{let r=e.clone();return WN.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return WN.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return WN.get(e);let r=e.clone();return WN.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),ZYe=me("_ZodString",(e,t)=>{Jz.init(e,t),Ji.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Ere(...r)),e.includes=(...r)=>e.check(Tre(...r)),e.startsWith=(...r)=>e.check(vre(...r)),e.endsWith=(...r)=>e.check(Are(...r)),e.min=(...r)=>e.check(Hw(...r)),e.max=(...r)=>e.check(tV(...r)),e.length=(...r)=>e.check(nV(...r)),e.nonempty=(...r)=>e.check(Hw(1,...r)),e.lowercase=r=>e.check(_re(r)),e.uppercase=r=>e.check(bre(r)),e.trim=()=>e.check(wre()),e.normalize=(...r)=>e.check(Rre(...r)),e.toLowerCase=()=>e.check(kre()),e.toUpperCase=()=>e.check(Ire())}),Zsn=me("ZodString",(e,t)=>{Jz.init(e,t),ZYe.init(e,t),e.email=n=>e.check(z3e(Jsn,n)),e.url=n=>e.check(Z3e(Xsn,n)),e.jwt=n=>e.check(lYe(fon,n)),e.emoji=n=>e.check(J3e(Qsn,n)),e.guid=n=>e.check(Sre(WYe,n)),e.uuid=n=>e.check(V3e(sV,n)),e.uuidv4=n=>e.check(W3e(sV,n)),e.uuidv6=n=>e.check(K3e(sV,n)),e.uuidv7=n=>e.check(Y3e(sV,n)),e.nanoid=n=>e.check(X3e($sn,n)),e.guid=n=>e.check(Sre(WYe,n)),e.cuid=n=>e.check(Q3e(eon,n)),e.cuid2=n=>e.check($3e(ton,n)),e.ulid=n=>e.check(eYe(non,n)),e.base64=n=>e.check(aYe(uon,n)),e.base64url=n=>e.check(cYe(lon,n)),e.xid=n=>e.check(tYe(ron,n)),e.ksuid=n=>e.check(nYe(ion,n)),e.ipv4=n=>e.check(rYe(son,n)),e.ipv6=n=>e.check(iYe(oon,n)),e.cidrv4=n=>e.check(sYe(aon,n)),e.cidrv6=n=>e.check(oYe(con,n)),e.e164=n=>e.check(uYe(don,n)),e.datetime=n=>e.check(Ore(n)),e.date=n=>e.check(Pre(n)),e.time=n=>e.check(Nre(n)),e.duration=n=>e.check(Cre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),ZYe.init(e,t)}),Jsn=me("ZodEmail",(e,t)=>{Z9e.init(e,t),Di.init(e,t)}),WYe=me("ZodGUID",(e,t)=>{K9e.init(e,t),Di.init(e,t)}),sV=me("ZodUUID",(e,t)=>{Y9e.init(e,t),Di.init(e,t)}),Xsn=me("ZodURL",(e,t)=>{J9e.init(e,t),Di.init(e,t)}),Qsn=me("ZodEmoji",(e,t)=>{X9e.init(e,t),Di.init(e,t)}),$sn=me("ZodNanoID",(e,t)=>{Q9e.init(e,t),Di.init(e,t)}),eon=me("ZodCUID",(e,t)=>{$9e.init(e,t),Di.init(e,t)}),ton=me("ZodCUID2",(e,t)=>{e3e.init(e,t),Di.init(e,t)}),non=me("ZodULID",(e,t)=>{t3e.init(e,t),Di.init(e,t)}),ron=me("ZodXID",(e,t)=>{n3e.init(e,t),Di.init(e,t)}),ion=me("ZodKSUID",(e,t)=>{r3e.init(e,t),Di.init(e,t)}),son=me("ZodIPv4",(e,t)=>{c3e.init(e,t),Di.init(e,t)}),oon=me("ZodIPv6",(e,t)=>{u3e.init(e,t),Di.init(e,t)}),aon=me("ZodCIDRv4",(e,t)=>{l3e.init(e,t),Di.init(e,t)}),con=me("ZodCIDRv6",(e,t)=>{d3e.init(e,t),Di.init(e,t)}),uon=me("ZodBase64",(e,t)=>{p3e.init(e,t),Di.init(e,t)}),lon=me("ZodBase64URL",(e,t)=>{h3e.init(e,t),Di.init(e,t)}),don=me("ZodE164",(e,t)=>{m3e.init(e,t),Di.init(e,t)}),fon=me("ZodJWT",(e,t)=>{g3e.init(e,t),Di.init(e,t)}),JYe=me("ZodNumber",(e,t)=>{hre.init(e,t),Ji.init(e,t),e.gt=(r,i)=>e.check($z(r,i)),e.gte=(r,i)=>e.check(YN(r,i)),e.min=(r,i)=>e.check(YN(r,i)),e.lt=(r,i)=>e.check(Qz(r,i)),e.lte=(r,i)=>e.check(KN(r,i)),e.max=(r,i)=>e.check(KN(r,i)),e.int=r=>e.check(KYe(r)),e.safe=r=>e.check(KYe(r)),e.positive=r=>e.check($z(0,r)),e.nonnegative=r=>e.check(YN(0,r)),e.negative=r=>e.check(Qz(0,r)),e.nonpositive=r=>e.check(KN(0,r)),e.multipleOf=(r,i)=>e.check(eV(r,i)),e.step=(r,i)=>e.check(eV(r,i)),e.finite=()=>e;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??.5),e.isFinite=!0,e.format=n.format??null});pon=me("ZodNumberFormat",(e,t)=>{y3e.init(e,t),JYe.init(e,t)});hon=me("ZodBoolean",(e,t)=>{S3e.init(e,t),Ji.init(e,t)});mon=me("ZodNull",(e,t)=>{E3e.init(e,t),Ji.init(e,t)});gon=me("ZodUnknown",(e,t)=>{_3e.init(e,t),Ji.init(e,t)});yon=me("ZodNever",(e,t)=>{b3e.init(e,t),Ji.init(e,t)});Eon=me("ZodArray",(e,t)=>{T3e.init(e,t),Ji.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Hw(n,r)),e.nonempty=n=>e.check(Hw(1,n)),e.max=(n,r)=>e.check(tV(n,r)),e.length=(n,r)=>e.check(nV(n,r)),e.unwrap=()=>e.element});QYe=me("ZodObject",(e,t)=>{v3e.init(e,t),Ji.init(e,t),or.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>bu(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Li()}),e.loose=()=>e.clone({...e._zod.def,catchall:Li()}),e.strict=()=>e.clone({...e._zod.def,catchall:Son()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>or.extend(e,n),e.merge=n=>or.merge(e,n),e.pick=n=>or.pick(e,n),e.omit=n=>or.omit(e,n),e.partial=(...n)=>or.partial(t5e,e,n[0]),e.required=(...n)=>or.required(n5e,e,n[0])});$Ye=me("ZodUnion",(e,t)=>{mre.init(e,t),Ji.init(e,t),e.options=t.options});_on=me("ZodDiscriminatedUnion",(e,t)=>{$Ye.init(e,t),A3e.init(e,t)});bon=me("ZodIntersection",(e,t)=>{R3e.init(e,t),Ji.init(e,t)});Ton=me("ZodRecord",(e,t)=>{w3e.init(e,t),Ji.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Fre=me("ZodEnum",(e,t)=>{k3e.init(e,t),Ji.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Fre({...t,checks:[],...or.normalizeParams(i),entries:s})},e.exclude=(r,i)=>{let s={...t.entries};for(let o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new Fre({...t,checks:[],...or.normalizeParams(i),entries:s})}});von=me("ZodLiteral",(e,t)=>{I3e.init(e,t),Ji.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});Aon=me("ZodTransform",(e,t)=>{x3e.init(e,t),Ji.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(or.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(or.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});t5e=me("ZodOptional",(e,t)=>{O3e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Ron=me("ZodNullable",(e,t)=>{P3e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});won=me("ZodDefault",(e,t)=>{N3e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Ion=me("ZodPrefault",(e,t)=>{C3e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});n5e=me("ZodNonOptional",(e,t)=>{M3e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Pon=me("ZodCatch",(e,t)=>{D3e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Con=me("ZodPipe",(e,t)=>{L3e.init(e,t),Ji.init(e,t),e.in=t.in,e.out=t.out});Mon=me("ZodReadonly",(e,t)=>{U3e.init(e,t),Ji.init(e,t)});r5e=me("ZodCustom",(e,t)=>{F3e.init(e,t),Ji.init(e,t)})});var s5e=v(()=>{});var o5e=v(()=>{});var a5e=v(()=>{dd();Dre();xre();Lre();Ure();s5e();dd();q3e();Xz();Mre();o5e();ld(H3e())});var c5e=v(()=>{a5e()});var u5e=v(()=>{c5e()});var Gre,l5e,IS,cV,bo,d5e,f5e,Wqr,qon,Bon,zre,yl,XN,p5e,ma,fd,pd,ga,uV,h5e,Vre,m5e,g5e,Wre,QN,yn,Kre,y5e,S5e,Kqr,lV,Gon,dV,zon,$N,Gw,E5e,Von,Won,Kon,Yon,Zon,Jon,Yre,Xon,Qon,Zre,fV,$on,ean,pV,tan,eC,tC,nan,nC,zw,ran,rC,hV,mV,gV,Yqr,yV,SV,EV,_5e,b5e,T5e,Jre,v5e,iC,Vw,A5e,ian,san,oan,aan,can,Xre,uan,lan,dan,fan,pan,han,man,gan,yan,San,Ean,_an,Qre,ban,Tan,$re,eie,tie,nie,van,Aan,Ran,rie,wan,kan,Ian,xan,Oan,R5e,iie,Pan,_V,Zqr,Nan,sC,Can,Jqr,oC,Man,sie,Dan,Lan,Uan,Fan,jan,Han,qan,aV,Ban,Gan,zan,aC,oie,Van,Wan,Kan,Yan,Zan,Jan,Xan,Qan,$an,ecn,tcn,ncn,rcn,icn,scn,ocn,acn,ccn,Ww,ucn,lcn,dcn,aie,fcn,pcn,hcn,cie,mcn,Xqr,Qqr,$qr,eBr,tBr,nBr,rn,Bre,Pb=v(()=>{u5e();Gre="2025-11-25",l5e=[Gre,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],IS="io.modelcontextprotocol/related-task",cV="2.0",bo=i5e(e=>e!==null&&(typeof e=="object"||typeof e=="function")),d5e=mi([ce(),vr().int()]),f5e=ce(),Wqr=qc({ttl:vr().optional(),pollInterval:vr().optional()}),qon=$e({ttl:vr().optional()}),Bon=$e({taskId:ce()}),zre=qc({progressToken:d5e.optional(),[IS]:Bon.optional()}),yl=$e({_meta:zre.optional()}),XN=yl.extend({task:qon.optional()}),p5e=e=>XN.safeParse(e).success,ma=$e({method:ce(),params:yl.loose().optional()}),fd=$e({_meta:zre.optional()}),pd=$e({method:ce(),params:fd.loose().optional()}),ga=qc({_meta:zre.optional()}),uV=mi([ce(),vr().int()]),h5e=$e({jsonrpc:ft(cV),id:uV,...ma.shape}).strict(),Vre=e=>h5e.safeParse(e).success,m5e=$e({jsonrpc:ft(cV),...pd.shape}).strict(),g5e=e=>m5e.safeParse(e).success,Wre=$e({jsonrpc:ft(cV),id:uV,result:ga}).strict(),QN=e=>Wre.safeParse(e).success;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(yn||(yn={}));Kre=$e({jsonrpc:ft(cV),id:uV.optional(),error:$e({code:vr().int(),message:ce(),data:Li().optional()})}).strict(),y5e=e=>Kre.safeParse(e).success,S5e=mi([h5e,m5e,Wre,Kre]),Kqr=mi([Wre,Kre]),lV=ga.strict(),Gon=fd.extend({requestId:uV.optional(),reason:ce().optional()}),dV=pd.extend({method:ft("notifications/cancelled"),params:Gon}),zon=$e({src:ce(),mimeType:ce().optional(),sizes:Vn(ce()).optional(),theme:bu(["light","dark"]).optional()}),$N=$e({icons:Vn(zon).optional()}),Gw=$e({name:ce(),title:ce().optional()}),E5e=Gw.extend({...Gw.shape,...$N.shape,version:ce(),websiteUrl:ce().optional(),description:ce().optional()}),Von=oV($e({applyDefaults:Vo().optional()}),ii(ce(),Li())),Won=qre(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,oV($e({form:Von.optional(),url:bo.optional()}),ii(ce(),Li()).optional())),Kon=qc({list:bo.optional(),cancel:bo.optional(),requests:qc({sampling:qc({createMessage:bo.optional()}).optional(),elicitation:qc({create:bo.optional()}).optional()}).optional()}),Yon=qc({list:bo.optional(),cancel:bo.optional(),requests:qc({tools:qc({call:bo.optional()}).optional()}).optional()}),Zon=$e({experimental:ii(ce(),bo).optional(),sampling:$e({context:bo.optional(),tools:bo.optional()}).optional(),elicitation:Won.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:Kon.optional(),extensions:ii(ce(),bo).optional()}),Jon=yl.extend({protocolVersion:ce(),capabilities:Zon,clientInfo:E5e}),Yre=ma.extend({method:ft("initialize"),params:Jon}),Xon=$e({experimental:ii(ce(),bo).optional(),logging:bo.optional(),completions:bo.optional(),prompts:$e({listChanged:Vo().optional()}).optional(),resources:$e({subscribe:Vo().optional(),listChanged:Vo().optional()}).optional(),tools:$e({listChanged:Vo().optional()}).optional(),tasks:Yon.optional(),extensions:ii(ce(),bo).optional()}),Qon=ga.extend({protocolVersion:ce(),capabilities:Xon,serverInfo:E5e,instructions:ce().optional()}),Zre=pd.extend({method:ft("notifications/initialized"),params:fd.optional()}),fV=ma.extend({method:ft("ping"),params:yl.optional()}),$on=$e({progress:vr(),total:Ui(vr()),message:Ui(ce())}),ean=$e({...fd.shape,...$on.shape,progressToken:d5e}),pV=pd.extend({method:ft("notifications/progress"),params:ean}),tan=yl.extend({cursor:f5e.optional()}),eC=ma.extend({params:tan.optional()}),tC=ga.extend({nextCursor:f5e.optional()}),nan=bu(["working","input_required","completed","failed","cancelled"]),nC=$e({taskId:ce(),status:nan,ttl:mi([vr(),XYe()]),createdAt:ce(),lastUpdatedAt:ce(),pollInterval:Ui(vr()),statusMessage:Ui(ce())}),zw=ga.extend({task:nC}),ran=fd.merge(nC),rC=pd.extend({method:ft("notifications/tasks/status"),params:ran}),hV=ma.extend({method:ft("tasks/get"),params:yl.extend({taskId:ce()})}),mV=ga.merge(nC),gV=ma.extend({method:ft("tasks/result"),params:yl.extend({taskId:ce()})}),Yqr=ga.loose(),yV=eC.extend({method:ft("tasks/list")}),SV=tC.extend({tasks:Vn(nC)}),EV=ma.extend({method:ft("tasks/cancel"),params:yl.extend({taskId:ce()})}),_5e=ga.merge(nC),b5e=$e({uri:ce(),mimeType:Ui(ce()),_meta:ii(ce(),Li()).optional()}),T5e=b5e.extend({text:ce()}),Jre=ce().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),v5e=b5e.extend({blob:Jre}),iC=bu(["user","assistant"]),Vw=$e({audience:Vn(iC).optional(),priority:vr().min(0).max(1).optional(),lastModified:ZN.datetime({offset:!0}).optional()}),A5e=$e({...Gw.shape,...$N.shape,uri:ce(),description:Ui(ce()),mimeType:Ui(ce()),size:Ui(vr()),annotations:Vw.optional(),_meta:Ui(qc({}))}),ian=$e({...Gw.shape,...$N.shape,uriTemplate:ce(),description:Ui(ce()),mimeType:Ui(ce()),annotations:Vw.optional(),_meta:Ui(qc({}))}),san=eC.extend({method:ft("resources/list")}),oan=tC.extend({resources:Vn(A5e)}),aan=eC.extend({method:ft("resources/templates/list")}),can=tC.extend({resourceTemplates:Vn(ian)}),Xre=yl.extend({uri:ce()}),uan=Xre,lan=ma.extend({method:ft("resources/read"),params:uan}),dan=ga.extend({contents:Vn(mi([T5e,v5e]))}),fan=pd.extend({method:ft("notifications/resources/list_changed"),params:fd.optional()}),pan=Xre,han=ma.extend({method:ft("resources/subscribe"),params:pan}),man=Xre,gan=ma.extend({method:ft("resources/unsubscribe"),params:man}),yan=fd.extend({uri:ce()}),San=pd.extend({method:ft("notifications/resources/updated"),params:yan}),Ean=$e({name:ce(),description:Ui(ce()),required:Ui(Vo())}),_an=$e({...Gw.shape,...$N.shape,description:Ui(ce()),arguments:Ui(Vn(Ean)),_meta:Ui(qc({}))}),Qre=eC.extend({method:ft("prompts/list")}),ban=tC.extend({prompts:Vn(_an)}),Tan=yl.extend({name:ce(),arguments:ii(ce(),ce()).optional()}),$re=ma.extend({method:ft("prompts/get"),params:Tan}),eie=$e({type:ft("text"),text:ce(),annotations:Vw.optional(),_meta:ii(ce(),Li()).optional()}),tie=$e({type:ft("image"),data:Jre,mimeType:ce(),annotations:Vw.optional(),_meta:ii(ce(),Li()).optional()}),nie=$e({type:ft("audio"),data:Jre,mimeType:ce(),annotations:Vw.optional(),_meta:ii(ce(),Li()).optional()}),van=$e({type:ft("tool_use"),name:ce(),id:ce(),input:ii(ce(),Li()),_meta:ii(ce(),Li()).optional()}),Aan=$e({type:ft("resource"),resource:mi([T5e,v5e]),annotations:Vw.optional(),_meta:ii(ce(),Li()).optional()}),Ran=A5e.extend({type:ft("resource_link")}),rie=mi([eie,tie,nie,Ran,Aan]),wan=$e({role:iC,content:rie}),kan=ga.extend({description:ce().optional(),messages:Vn(wan)}),Ian=pd.extend({method:ft("notifications/prompts/list_changed"),params:fd.optional()}),xan=$e({title:ce().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Oan=$e({taskSupport:bu(["required","optional","forbidden"]).optional()}),R5e=$e({...Gw.shape,...$N.shape,description:ce().optional(),inputSchema:$e({type:ft("object"),properties:ii(ce(),bo).optional(),required:Vn(ce()).optional()}).catchall(Li()),outputSchema:$e({type:ft("object"),properties:ii(ce(),bo).optional(),required:Vn(ce()).optional()}).catchall(Li()).optional(),annotations:xan.optional(),execution:Oan.optional(),_meta:ii(ce(),Li()).optional()}),iie=eC.extend({method:ft("tools/list")}),Pan=tC.extend({tools:Vn(R5e)}),_V=ga.extend({content:Vn(rie).default([]),structuredContent:ii(ce(),Li()).optional(),isError:Vo().optional()}),Zqr=_V.or(ga.extend({toolResult:Li()})),Nan=XN.extend({name:ce(),arguments:ii(ce(),Li()).optional()}),sC=ma.extend({method:ft("tools/call"),params:Nan}),Can=pd.extend({method:ft("notifications/tools/list_changed"),params:fd.optional()}),Jqr=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),oC=bu(["debug","info","notice","warning","error","critical","alert","emergency"]),Man=yl.extend({level:oC}),sie=ma.extend({method:ft("logging/setLevel"),params:Man}),Dan=fd.extend({level:oC,logger:ce().optional(),data:Li()}),Lan=pd.extend({method:ft("notifications/message"),params:Dan}),Uan=$e({name:ce().optional()}),Fan=$e({hints:Vn(Uan).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),jan=$e({mode:bu(["auto","required","none"]).optional()}),Han=$e({type:ft("tool_result"),toolUseId:ce().describe("The unique identifier for the corresponding tool call."),content:Vn(rie).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(ce(),Li()).optional()}),qan=Hre("type",[eie,tie,nie]),aV=Hre("type",[eie,tie,nie,van,Han]),Ban=$e({role:iC,content:mi([aV,Vn(aV)]),_meta:ii(ce(),Li()).optional()}),Gan=XN.extend({messages:Vn(Ban),modelPreferences:Fan.optional(),systemPrompt:ce().optional(),includeContext:bu(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(ce()).optional(),metadata:bo.optional(),tools:Vn(R5e).optional(),toolChoice:jan.optional()}),zan=ma.extend({method:ft("sampling/createMessage"),params:Gan}),aC=ga.extend({model:ce(),stopReason:Ui(bu(["endTurn","stopSequence","maxTokens"]).or(ce())),role:iC,content:qan}),oie=ga.extend({model:ce(),stopReason:Ui(bu(["endTurn","stopSequence","maxTokens","toolUse"]).or(ce())),role:iC,content:mi([aV,Vn(aV)])}),Van=$e({type:ft("boolean"),title:ce().optional(),description:ce().optional(),default:Vo().optional()}),Wan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:bu(["email","uri","date","date-time"]).optional(),default:ce().optional()}),Kan=$e({type:bu(["number","integer"]),title:ce().optional(),description:ce().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),Yan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),default:ce().optional()}),Zan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),oneOf:Vn($e({const:ce(),title:ce()})),default:ce().optional()}),Jan=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),enumNames:Vn(ce()).optional(),default:ce().optional()}),Xan=mi([Yan,Zan]),Qan=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(ce())}),default:Vn(ce()).optional()}),$an=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:ce(),title:ce()}))}),default:Vn(ce()).optional()}),ecn=mi([Qan,$an]),tcn=mi([Jan,Xan,ecn]),ncn=mi([tcn,Van,Wan,Kan]),rcn=XN.extend({mode:ft("form").optional(),message:ce(),requestedSchema:$e({type:ft("object"),properties:ii(ce(),ncn),required:Vn(ce()).optional()})}),icn=XN.extend({mode:ft("url"),message:ce(),elicitationId:ce(),url:ce().url()}),scn=mi([rcn,icn]),ocn=ma.extend({method:ft("elicitation/create"),params:scn}),acn=fd.extend({elicitationId:ce()}),ccn=pd.extend({method:ft("notifications/elicitation/complete"),params:acn}),Ww=ga.extend({action:bu(["accept","decline","cancel"]),content:qre(e=>e===null?void 0:e,ii(ce(),mi([ce(),vr(),Vo(),Vn(ce())])).optional())}),ucn=$e({type:ft("ref/resource"),uri:ce()}),lcn=$e({type:ft("ref/prompt"),name:ce()}),dcn=yl.extend({ref:mi([lcn,ucn]),argument:$e({name:ce(),value:ce()}),context:$e({arguments:ii(ce(),ce()).optional()}).optional()}),aie=ma.extend({method:ft("completion/complete"),params:dcn}),fcn=ga.extend({completion:qc({values:Vn(ce()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),pcn=$e({uri:ce().startsWith("file://"),name:ce().optional(),_meta:ii(ce(),Li()).optional()}),hcn=ma.extend({method:ft("roots/list"),params:yl.optional()}),cie=ga.extend({roots:Vn(pcn)}),mcn=pd.extend({method:ft("notifications/roots/list_changed"),params:fd.optional()}),Xqr=mi([fV,Yre,aie,sie,$re,Qre,san,aan,lan,han,gan,sC,iie,hV,gV,yV,EV]),Qqr=mi([dV,pV,Zre,mcn,rC]),$qr=mi([lV,aC,oie,Ww,cie,mV,SV,zw]),eBr=mi([fV,zan,ocn,hcn,hV,gV,yV,EV]),tBr=mi([dV,pV,Lan,San,fan,Can,Ian,rC,ccn]),nBr=mi([lV,Qon,fcn,kan,ban,oan,can,dan,_V,Pan,mV,SV,zw]),rn=class e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===yn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new Bre(i.elicitations,n)}return new e(t,n,r)}},Bre=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(yn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function xS(e){return e==="completed"||e==="failed"||e==="cancelled"}var w5e=v(()=>{});var bV=v(()=>{});var uie=v(()=>{bV()});var OS=v(()=>{});var TV=v(()=>{});var hd=v(()=>{TV()});var lie=v(()=>{OS();Qs()});var die=v(()=>{OS()});var fie=v(()=>{});var vV=v(()=>{Qs()});var pie=v(()=>{Qs()});var hie=v(()=>{OS()});var mie=v(()=>{Qs()});var gie=v(()=>{Qs();hd()});var yie=v(()=>{});var Sie=v(()=>{Qs()});var Eie=v(()=>{});var DBr,AV=v(()=>{OS();DBr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var RV=v(()=>{Qs();AV();vV();hd()});var _ie=v(()=>{Qs();RV();hd()});var bie=v(()=>{});var Tie=v(()=>{hd()});var vie=v(()=>{});var wV=v(()=>{Qs()});var Aie=v(()=>{Qs();wV()});var Rie=v(()=>{OS()});var wie=v(()=>{Qs()});var kie=v(()=>{Qs();hd()});var Iie=v(()=>{Qs()});var xie=v(()=>{Qs()});var Oie=v(()=>{OS();Qs()});var Pie=v(()=>{Qs()});var Nie=v(()=>{hd()});var Cie=v(()=>{hd()});var Mie=v(()=>{Qs()});var Die=v(()=>{hd();lie();die();fie();vV();pie();hie();mie();gie();yie();Sie();Eie();_ie();bie();Tie();vie();Aie();Rie();wie();kie();Iie();xie();RV();Oie();AV();Pie();Nie();wV();Cie();Mie()});var Qs=v(()=>{bV();Die();TV();hd()});var k5e=v(()=>{});var Lie=v(()=>{Qs();uie();hd()});var Uie=v(()=>{bV();uie();OS();TV();Qs();k5e();hd();lie();die();fie();vV();pie();hie();mie();gie();yie();Sie();Eie();_ie();bie();Tie();vie();Aie();Rie();wie();kie();Iie();xie();Mie();RV();Oie();AV();Pie();Nie();wV();Cie();Die();Lie();Lie()});function Fie(e){let n=rV(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=LYe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function jie(e,t){let n=kS(e,t);if(!n.success)throw n.error;return n.data}var x5e=v(()=>{iV();Uie()});function O5e(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function P5e(e,t){let n={...e};for(let r in t){let i=r,s=t[i];if(s===void 0)continue;let o=n[i];O5e(o)&&O5e(s)?n[i]={...o,...s}:n[i]=s}return n}var _cn,kV,N5e=v(()=>{iV();Pb();w5e();x5e();_cn=6e4,kV=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(dV,n=>{this._oncancel(n)}),this.setNotificationHandler(pV,n=>{this._onprogress(n)}),this.setRequestHandler(fV,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(hV,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(yn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(gV,async(n,r)=>{let i=async()=>{let s=n.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,r.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,f=new rn(d.error.code,d.error.message,d.error.data);l(f)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:r.requestId})}}let o=await this._taskStore.getTask(s,r.sessionId);if(!o)throw new rn(yn.InvalidParams,`Task not found: ${s}`);if(!xS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(xS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[IS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(yV,async(n,r)=>{try{let{tasks:i,nextCursor:s}=await this._taskStore.listTasks(n.params?.cursor,r.sessionId);return{tasks:i,nextCursor:s,_meta:{}}}catch(i){throw new rn(yn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(EV,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(yn.InvalidParams,`Task not found: ${n.params.taskId}`);if(xS(i.status))throw new rn(yn.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new rn(yn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(yn.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),rn.fromError(yn.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let r=this.transport?.onerror;this._transport.onerror=s=>{r?.(s),this._onerror(s)};let i=this._transport?.onmessage;this._transport.onmessage=(s,o)=>{i?.(s,o),QN(s)||y5e(s)?this._onresponse(s):Vre(s)?this._onrequest(s,o):g5e(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let r of this._timeoutInfo.values())clearTimeout(r.timeoutId);this._timeoutInfo.clear();for(let r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();let n=rn.fromError(yn.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let r of t.values())r(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){let n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(t,n){let r=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,i=this._transport,s=t.params?._meta?.[IS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:yn.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(t.id,o);let a=p5e(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{if(o.signal.aborted)return;let d={relatedRequestId:t.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,f)=>{if(o.signal.aborted)throw new rn(yn.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:t.id};s&&!p.relatedTask&&(p.relatedTask={taskId:s});let h=p.relatedTask?.taskId??s;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(l,d,p)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(t.method)}).then(()=>r(t,u)).then(async l=>{if(o.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:t.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)},async l=>{if(o.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:yn.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===o&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...r}=t.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(r)}_onresponse(t){let n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),QN(t))r(t);else{let o=new rn(t.error.code,t.error.message,t.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(QN(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),QN(t))i(t);else{let o=rn.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,r){let{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(t,n,r)}}catch(o){yield{type:"error",error:o instanceof rn?o:new rn(yn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,zw,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(yn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},xS(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)}:a.status==="failed"?yield{type:"error",error:new rn(yn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(yn.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),r?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof rn?o:new rn(yn.InternalError,String(o))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{let d=E=>{l(E)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(E){d(E);return}r?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:f};r?.onprogress&&(this._progressHandlers.set(f,r.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[IS]:c}});let h=E=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(E)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(_=>this._onerror(new Error(`Failed to send cancellation: ${_}`)));let S=E instanceof rn?E:new rn(yn.RequestTimeout,String(E));l(S)};this._responseHandlers.set(f,E=>{if(!r?.signal?.aborted){if(E instanceof Error)return l(E);try{let S=kS(n,E.result);S.success?u(S.data):l(S.error)}catch(S){l(S)}}}),r?.signal?.addEventListener("abort",()=>{h(r?.signal?.reason)});let m=r?.timeout??_cn,g=()=>h(rn.fromError(yn.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,r?.maxTotalTimeout,g,r?.resetTimeoutOnProgress??!1);let y=c?.taskId;if(y){let E=S=>{let _=this._responseHandlers.get(f);_?_(S):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,E),this._enqueueTaskMessage(y,{type:"request",message:p,timestamp:Date.now()}).catch(S=>{this._cleanupTimeout(f),l(S)})}else this._transport.send(p,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(E=>{this._cleanupTimeout(f),l(E)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},mV,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},SV,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},_5e,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let r=n?.relatedTask?.taskId;if(r){let a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[IS]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[IS]:n.relatedTask}}}),this._transport?.send(a,n).catch(c=>this._onerror(c))});return}let o={...t,jsonrpc:"2.0"};n?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[IS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Fie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=jie(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=Fie(t);this._notificationHandlers.set(r,i=>{let s=jie(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,i)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&Vre(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new rn(yn.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){let r=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(t);i?.pollInterval&&(r=i.pollInterval)}catch{}return new Promise((i,s)=>{if(n.aborted){s(new rn(yn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new rn(yn.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{let s=await r.getTask(i,n);if(!s)throw new rn(yn.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await r.storeTaskResult(i,s,o,n);let a=await r.getTask(i,n);if(a){let c=rC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),xS(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new rn(yn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(xS(a.status))throw new rn(yn.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=rC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),xS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var Kw=w(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.regexpCode=tr.getEsmExportName=tr.getProperty=tr.safeStringify=tr.stringify=tr.strConcat=tr.addCodeArg=tr.str=tr._=tr.nil=tr._Code=tr.Name=tr.IDENTIFIER=tr._CodeOrName=void 0;var uC=class{};tr._CodeOrName=uC;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var Nb=class extends uC{constructor(t){if(super(),!tr.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};tr.Name=Nb;var md=class extends uC{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((n,r)=>`${n}${r}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((n,r)=>(r instanceof Nb&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=md;tr.nil=new md("");function C5e(e,...t){let n=[e[0]],r=0;for(;r{"use strict";Object.defineProperty(vu,"__esModule",{value:!0});vu.ValueScope=vu.ValueScopeName=vu.Scope=vu.varKinds=vu.UsedValueState=void 0;var Tu=Kw(),Bie=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},IV;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(IV||(vu.UsedValueState=IV={}));vu.varKinds={const:new Tu.Name("const"),let:new Tu.Name("let"),var:new Tu.Name("var")};var xV=class{constructor({prefixes:t,parent:n}={}){this._names={},this._prefixes=t,this._parent=n}toName(t){return t instanceof Tu.Name?t:this.name(t)}name(t){return new Tu.Name(this._newName(t))}_newName(t){let n=this._names[t]||this._nameGroup(t);return`${t}${n.index++}`}_nameGroup(t){var n,r;if(!((r=(n=this._parent)===null||n===void 0?void 0:n._prefixes)===null||r===void 0)&&r.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};vu.Scope=xV;var OV=class extends Tu.Name{constructor(t,n){super(n),this.prefix=t}setValue(t,{property:n,itemIndex:r}){this.value=t,this.scopePath=(0,Tu._)`.${new Tu.Name(n)}[${r}]`}};vu.ValueScopeName=OV;var xcn=(0,Tu._)`\n`,Gie=class extends xV{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?xcn:Tu.nil}}get(){return this._scope}name(t){return new OV(t,this._newName(t))}value(t,n){var r;if(n.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:s}=i,o=(r=n.key)!==null&&r!==void 0?r:n.ref,a=this._values[s];if(a){let l=a.get(o);if(l)return l}else a=this._values[s]=new Map;a.set(o,i);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=n.ref,i.setValue(n,{property:s,itemIndex:u}),i}getValue(t,n){let r=this._values[t];if(r)return r.get(n)}scopeRefs(t,n=this._values){return this._reduceValues(n,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return(0,Tu._)`${t}${r.scopePath}`})}scopeCode(t=this._values,n,r){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},n,r)}_reduceValues(t,n,r={},i){let s=Tu.nil;for(let o in t){let a=t[o];if(!a)continue;let c=r[o]=r[o]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,IV.Started);let l=n(u);if(l){let d=this.opts.es5?vu.varKinds.var:vu.varKinds.const;s=(0,Tu._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))s=(0,Tu._)`${s}${l}${this.opts._n}`;else throw new Bie(u);c.set(u,IV.Completed)})}return s}};vu.ValueScope=Gie});var Ot=w(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.or=Sn.and=Sn.not=Sn.CodeGen=Sn.operators=Sn.varKinds=Sn.ValueScopeName=Sn.ValueScope=Sn.Scope=Sn.Name=Sn.regexpCode=Sn.stringify=Sn.getProperty=Sn.nil=Sn.strConcat=Sn.str=Sn._=void 0;var Wn=Kw(),Tf=PV(),PS=Kw();Object.defineProperty(Sn,"_",{enumerable:!0,get:function(){return PS._}});Object.defineProperty(Sn,"str",{enumerable:!0,get:function(){return PS.str}});Object.defineProperty(Sn,"strConcat",{enumerable:!0,get:function(){return PS.strConcat}});Object.defineProperty(Sn,"nil",{enumerable:!0,get:function(){return PS.nil}});Object.defineProperty(Sn,"getProperty",{enumerable:!0,get:function(){return PS.getProperty}});Object.defineProperty(Sn,"stringify",{enumerable:!0,get:function(){return PS.stringify}});Object.defineProperty(Sn,"regexpCode",{enumerable:!0,get:function(){return PS.regexpCode}});Object.defineProperty(Sn,"Name",{enumerable:!0,get:function(){return PS.Name}});var DV=PV();Object.defineProperty(Sn,"Scope",{enumerable:!0,get:function(){return DV.Scope}});Object.defineProperty(Sn,"ValueScope",{enumerable:!0,get:function(){return DV.ValueScope}});Object.defineProperty(Sn,"ValueScopeName",{enumerable:!0,get:function(){return DV.ValueScopeName}});Object.defineProperty(Sn,"varKinds",{enumerable:!0,get:function(){return DV.varKinds}});Sn.operators={GT:new Wn._Code(">"),GTE:new Wn._Code(">="),LT:new Wn._Code("<"),LTE:new Wn._Code("<="),EQ:new Wn._Code("==="),NEQ:new Wn._Code("!=="),NOT:new Wn._Code("!"),OR:new Wn._Code("||"),AND:new Wn._Code("&&"),ADD:new Wn._Code("+")};var zm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},zie=class extends zm{constructor(t,n,r){super(),this.varKind=t,this.name=n,this.rhs=r}render({es5:t,_n:n}){let r=t?Tf.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${r} ${this.name}${i};`+n}optimizeNames(t,n){if(t[this.name.str])return this.rhs&&(this.rhs=Zw(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},NV=class extends zm{constructor(t,n,r){super(),this.lhs=t,this.rhs=n,this.sideEffects=r}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,n){if(!(this.lhs instanceof Wn.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Zw(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return MV(t,this.rhs)}},Vie=class extends NV{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Wie=class extends zm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Kie=class extends zm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Yie=class extends zm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Zie=class extends zm{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,n){return this.code=Zw(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},dC=class extends zm{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((n,r)=>n+r.render(t),"")}optimizeNodes(){let{nodes:t}=this,n=t.length;for(;n--;){let r=t[n].optimizeNodes();Array.isArray(r)?t.splice(n,1,...r):r?t[n]=r:t.splice(n,1)}return t.length>0?this:void 0}optimizeNames(t,n){let{nodes:r}=this,i=r.length;for(;i--;){let s=r[i];s.optimizeNames(t,n)||(Ocn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>Db(t,n.names),{})}},Vm=class extends dC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Jie=class extends dC{},Yw=class extends Vm{};Yw.kind="else";var Cb=class e extends Vm{constructor(t,n){super(n),this.condition=t}render(t){let n=`if(${this.condition})`+super.render(t);return this.else&&(n+="else "+this.else.render(t)),n}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let r=n.optimizeNodes();n=this.else=Array.isArray(r)?new Yw(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(D5e(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,n){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,n),!!(super.optimizeNames(t,n)||this.else))return this.condition=Zw(this.condition,t,n),this}get names(){let t=super.names;return MV(t,this.condition),this.else&&Db(t,this.else.names),t}};Cb.kind="if";var Mb=class extends Vm{};Mb.kind="for";var Xie=class extends Mb{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iteration=Zw(this.iteration,t,n),this}get names(){return Db(super.names,this.iteration.names)}},Qie=class extends Mb{constructor(t,n,r,i){super(),this.varKind=t,this.name=n,this.from=r,this.to=i}render(t){let n=t.es5?Tf.varKinds.var:this.varKind,{name:r,from:i,to:s}=this;return`for(${n} ${r}=${i}; ${r}<${s}; ${r}++)`+super.render(t)}get names(){let t=MV(super.names,this.from);return MV(t,this.to)}},CV=class extends Mb{constructor(t,n,r,i){super(),this.loop=t,this.varKind=n,this.name=r,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iterable=Zw(this.iterable,t,n),this}get names(){return Db(super.names,this.iterable.names)}},fC=class extends Vm{constructor(t,n,r){super(),this.name=t,this.args=n,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};fC.kind="func";var pC=class extends dC{render(t){return"return "+super.render(t)}};pC.kind="return";var $ie=class extends Vm{render(t){let n="try"+super.render(t);return this.catch&&(n+=this.catch.render(t)),this.finally&&(n+=this.finally.render(t)),n}optimizeNodes(){var t,n;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(n=this.finally)===null||n===void 0||n.optimizeNodes(),this}optimizeNames(t,n){var r,i;return super.optimizeNames(t,n),(r=this.catch)===null||r===void 0||r.optimizeNames(t,n),(i=this.finally)===null||i===void 0||i.optimizeNames(t,n),this}get names(){let t=super.names;return this.catch&&Db(t,this.catch.names),this.finally&&Db(t,this.finally.names),t}},hC=class extends Vm{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};hC.kind="catch";var mC=class extends Vm{render(t){return"finally"+super.render(t)}};mC.kind="finally";var ese=class{constructor(t,n={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...n,_n:n.lines?` +`:""},this._extScope=t,this._scope=new Tf.Scope({parent:t}),this._nodes=[new Jie]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,n){let r=this._extScope.value(t,n);return(this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(t,n){return this._extScope.getValue(t,n)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,n,r,i){let s=this._scope.toName(n);return r!==void 0&&i&&(this._constants[s.str]=r),this._leafNode(new zie(t,s,r)),s}const(t,n,r){return this._def(Tf.varKinds.const,t,n,r)}let(t,n,r){return this._def(Tf.varKinds.let,t,n,r)}var(t,n,r){return this._def(Tf.varKinds.var,t,n,r)}assign(t,n,r){return this._leafNode(new NV(t,n,r))}add(t,n){return this._leafNode(new Vie(t,Sn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new Zie(t)),this}object(...t){let n=["{"];for(let[r,i]of t)n.length>1&&n.push(","),n.push(r),(r!==i||this.opts.es5)&&(n.push(":"),(0,Wn.addCodeArg)(n,i));return n.push("}"),new Wn._Code(n)}if(t,n,r){if(this._blockNode(new Cb(t)),n&&r)this.code(n).else().code(r).endIf();else if(n)this.code(n).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new Cb(t))}else(){return this._elseNode(new Yw)}endIf(){return this._endBlockNode(Cb,Yw)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new Xie(t),n)}forRange(t,n,r,i,s=this.opts.es5?Tf.varKinds.var:Tf.varKinds.let){let o=this._scope.toName(t);return this._for(new Qie(s,o,n,r),()=>i(o))}forOf(t,n,r,i=Tf.varKinds.const){let s=this._scope.toName(t);if(this.opts.es5){let o=n instanceof Wn.Name?n:this.var("_arr",n);return this.forRange("_i",0,(0,Wn._)`${o}.length`,a=>{this.var(s,(0,Wn._)`${o}[${a}]`),r(s)})}return this._for(new CV("of",i,s,n),()=>r(s))}forIn(t,n,r,i=this.opts.es5?Tf.varKinds.var:Tf.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,Wn._)`Object.keys(${n})`,r);let s=this._scope.toName(t);return this._for(new CV("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(Mb)}label(t){return this._leafNode(new Wie(t))}break(t){return this._leafNode(new Kie(t))}return(t){let n=new pC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(pC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new $ie;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new hC(s),n(s)}return r&&(this._currNode=i.finally=new mC,this.code(r)),this._endBlockNode(hC,mC)}throw(t){return this._leafNode(new Yie(t))}block(t,n){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(n),this}endBlock(t){let n=this._blockStarts.pop();if(n===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-n;if(r<0||t!==void 0&&r!==t)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${t} expected`);return this._nodes.length=n,this}func(t,n=Wn.nil,r,i){return this._blockNode(new fC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(fC)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,n){let r=this._currNode;if(r instanceof t||n&&r instanceof n)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${n?`${t.kind}/${n.kind}`:t.kind}"`)}_elseNode(t){let n=this._currNode;if(!(n instanceof Cb))throw new Error('CodeGen: "else" without "if"');return this._currNode=n.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let n=this._nodes;n[n.length-1]=t}};Sn.CodeGen=ese;function Db(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function MV(e,t){return t instanceof Wn._CodeOrName?Db(e,t.names):e}function Zw(e,t,n){if(e instanceof Wn.Name)return r(e);if(!i(e))return e;return new Wn._Code(e._items.reduce((s,o)=>(o instanceof Wn.Name&&(o=r(o)),o instanceof Wn._Code?s.push(...o._items):s.push(o),s),[]));function r(s){let o=n[s.str];return o===void 0||t[s.str]!==1?s:(delete t[s.str],o)}function i(s){return s instanceof Wn._Code&&s._items.some(o=>o instanceof Wn.Name&&t[o.str]===1&&n[o.str]!==void 0)}}function Ocn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function D5e(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${tse(e)}`}Sn.not=D5e;var Pcn=L5e(Sn.operators.AND);function Ncn(...e){return e.reduce(Pcn)}Sn.and=Ncn;var Ccn=L5e(Sn.operators.OR);function Mcn(...e){return e.reduce(Ccn)}Sn.or=Mcn;function L5e(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${tse(t)} ${e} ${tse(n)}`}function tse(e){return e instanceof Wn.Name?e:(0,Wn._)`(${e})`}});var pn=w(An=>{"use strict";Object.defineProperty(An,"__esModule",{value:!0});An.checkStrictMode=An.getErrorPath=An.Type=An.useFunc=An.setEvaluated=An.evaluatedPropsToName=An.mergeEvaluated=An.eachItem=An.unescapeJsonPointer=An.escapeJsonPointer=An.escapeFragment=An.unescapeFragment=An.schemaRefOrVal=An.schemaHasRulesButRef=An.schemaHasRules=An.checkUnknownRules=An.alwaysValidSchema=An.toHash=void 0;var Wr=Ot(),Dcn=Kw();function Lcn(e){let t={};for(let n of e)t[n]=!0;return t}An.toHash=Lcn;function Ucn(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(j5e(e,t),!H5e(t,e.self.RULES.all))}An.alwaysValidSchema=Ucn;function j5e(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t=="boolean")return;let i=r.RULES.keywords;for(let s in t)i[s]||G5e(e,`unknown keyword: "${s}"`)}An.checkUnknownRules=j5e;function H5e(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}An.schemaHasRules=H5e;function Fcn(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(n!=="$ref"&&t.all[n])return!0;return!1}An.schemaHasRulesButRef=Fcn;function jcn({topSchemaRef:e,schemaPath:t},n,r,i){if(!i){if(typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="string")return(0,Wr._)`${n}`}return(0,Wr._)`${e}${t}${(0,Wr.getProperty)(r)}`}An.schemaRefOrVal=jcn;function Hcn(e){return q5e(decodeURIComponent(e))}An.unescapeFragment=Hcn;function qcn(e){return encodeURIComponent(rse(e))}An.escapeFragment=qcn;function rse(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}An.escapeJsonPointer=rse;function q5e(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}An.unescapeJsonPointer=q5e;function Bcn(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}An.eachItem=Bcn;function U5e({mergeNames:e,mergeToName:t,mergeValues:n,resultToName:r}){return(i,s,o,a)=>{let c=o===void 0?s:o instanceof Wr.Name?(s instanceof Wr.Name?e(i,s,o):t(i,s,o),o):s instanceof Wr.Name?(t(i,o,s),s):n(s,o);return a===Wr.Name&&!(c instanceof Wr.Name)?r(i,c):c}}An.mergeEvaluated={props:U5e({mergeNames:(e,t,n)=>e.if((0,Wr._)`${n} !== true && ${t} !== undefined`,()=>{e.if((0,Wr._)`${t} === true`,()=>e.assign(n,!0),()=>e.assign(n,(0,Wr._)`${n} || {}`).code((0,Wr._)`Object.assign(${n}, ${t})`))}),mergeToName:(e,t,n)=>e.if((0,Wr._)`${n} !== true`,()=>{t===!0?e.assign(n,!0):(e.assign(n,(0,Wr._)`${n} || {}`),ise(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:B5e}),items:U5e({mergeNames:(e,t,n)=>e.if((0,Wr._)`${n} !== true && ${t} !== undefined`,()=>e.assign(n,(0,Wr._)`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`)),mergeToName:(e,t,n)=>e.if((0,Wr._)`${n} !== true`,()=>e.assign(n,t===!0?!0:(0,Wr._)`${n} > ${t} ? ${n} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function B5e(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&ise(e,n,t),n}An.evaluatedPropsToName=B5e;function ise(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}An.setEvaluated=ise;var F5e={};function Gcn(e,t){return e.scopeValue("func",{ref:t,code:F5e[t.code]||(F5e[t.code]=new Dcn._Code(t.code))})}An.useFunc=Gcn;var nse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(nse||(An.Type=nse={}));function zcn(e,t,n){if(e instanceof Wr.Name){let r=t===nse.Num;return n?r?(0,Wr._)`"[" + ${e} + "]"`:(0,Wr._)`"['" + ${e} + "']"`:r?(0,Wr._)`"/" + ${e}`:(0,Wr._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return n?(0,Wr.getProperty)(e).toString():"/"+rse(e)}An.getErrorPath=zcn;function G5e(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw new Error(t);e.self.logger.warn(t)}}An.checkStrictMode=G5e});var gd=w(sse=>{"use strict";Object.defineProperty(sse,"__esModule",{value:!0});var rc=Ot(),Vcn={data:new rc.Name("data"),valCxt:new rc.Name("valCxt"),instancePath:new rc.Name("instancePath"),parentData:new rc.Name("parentData"),parentDataProperty:new rc.Name("parentDataProperty"),rootData:new rc.Name("rootData"),dynamicAnchors:new rc.Name("dynamicAnchors"),vErrors:new rc.Name("vErrors"),errors:new rc.Name("errors"),this:new rc.Name("this"),self:new rc.Name("self"),scope:new rc.Name("scope"),json:new rc.Name("json"),jsonPos:new rc.Name("jsonPos"),jsonLen:new rc.Name("jsonLen"),jsonPart:new rc.Name("jsonPart")};sse.default=Vcn});var gC=w(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.extendErrors=ic.resetErrorsCount=ic.reportExtraError=ic.reportError=ic.keyword$DataError=ic.keywordError=void 0;var Jn=Ot(),LV=pn(),Bc=gd();ic.keywordError={message:({keyword:e})=>(0,Jn.str)`must pass "${e}" keyword validation`};ic.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,Jn.str)`"${e}" keyword must be ${t} ($data)`:(0,Jn.str)`"${e}" keyword is invalid ($data)`};function Wcn(e,t=ic.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=W5e(e,t,n);r??(o||a)?z5e(s,c):V5e(i,(0,Jn._)`[${c}]`)}ic.reportError=Wcn;function Kcn(e,t=ic.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=W5e(e,t,n);z5e(i,a),s||o||V5e(r,Bc.default.vErrors)}ic.reportExtraError=Kcn;function Ycn(e,t){e.assign(Bc.default.errors,t),e.if((0,Jn._)`${Bc.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,Jn._)`${Bc.default.vErrors}.length`,t),()=>e.assign(Bc.default.vErrors,null)))}ic.resetErrorsCount=Ycn;function Zcn({gen:e,keyword:t,schemaValue:n,data:r,errsCount:i,it:s}){if(i===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",i,Bc.default.errors,a=>{e.const(o,(0,Jn._)`${Bc.default.vErrors}[${a}]`),e.if((0,Jn._)`${o}.instancePath === undefined`,()=>e.assign((0,Jn._)`${o}.instancePath`,(0,Jn.strConcat)(Bc.default.instancePath,s.errorPath))),e.assign((0,Jn._)`${o}.schemaPath`,(0,Jn.str)`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign((0,Jn._)`${o}.schema`,n),e.assign((0,Jn._)`${o}.data`,r))})}ic.extendErrors=Zcn;function z5e(e,t){let n=e.const("err",t);e.if((0,Jn._)`${Bc.default.vErrors} === null`,()=>e.assign(Bc.default.vErrors,(0,Jn._)`[${n}]`),(0,Jn._)`${Bc.default.vErrors}.push(${n})`),e.code((0,Jn._)`${Bc.default.errors}++`)}function V5e(e,t){let{gen:n,validateName:r,schemaEnv:i}=e;i.$async?n.throw((0,Jn._)`new ${e.ValidationError}(${t})`):(n.assign((0,Jn._)`${r}.errors`,t),n.return(!1))}var Lb={keyword:new Jn.Name("keyword"),schemaPath:new Jn.Name("schemaPath"),params:new Jn.Name("params"),propertyName:new Jn.Name("propertyName"),message:new Jn.Name("message"),schema:new Jn.Name("schema"),parentSchema:new Jn.Name("parentSchema")};function W5e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:Jcn(e,t,n)}function Jcn(e,t,n={}){let{gen:r,it:i}=e,s=[Xcn(i,n),Qcn(e,n)];return $cn(e,t,s),r.object(...s)}function Xcn({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,LV.getErrorPath)(t,LV.Type.Str)}`:e;return[Bc.default.instancePath,(0,Jn.strConcat)(Bc.default.instancePath,n)]}function Qcn({keyword:e,it:{errSchemaPath:t}},{schemaPath:n,parentSchema:r}){let i=r?t:(0,Jn.str)`${t}/${e}`;return n&&(i=(0,Jn.str)`${i}${(0,LV.getErrorPath)(n,LV.Type.Str)}`),[Lb.schemaPath,i]}function $cn(e,{params:t,message:n},r){let{keyword:i,data:s,schemaValue:o,it:a}=e,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;r.push([Lb.keyword,i],[Lb.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([Lb.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([Lb.schema,o],[Lb.parentSchema,(0,Jn._)`${l}${d}`],[Bc.default.data,s]),u&&r.push([Lb.propertyName,u])}});var Y5e=w(Jw=>{"use strict";Object.defineProperty(Jw,"__esModule",{value:!0});Jw.boolOrEmptySchema=Jw.topBoolOrEmptySchema=void 0;var eun=gC(),tun=Ot(),nun=gd(),run={message:"boolean schema is false"};function iun(e){let{gen:t,schema:n,validateName:r}=e;n===!1?K5e(e,!1):typeof n=="object"&&n.$async===!0?t.return(nun.default.data):(t.assign((0,tun._)`${r}.errors`,null),t.return(!0))}Jw.topBoolOrEmptySchema=iun;function sun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),K5e(e)):n.var(t,!0)}Jw.boolOrEmptySchema=sun;function K5e(e,t){let{gen:n,data:r}=e,i={gen:n,keyword:"false schema",data:r,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,eun.reportError)(i,run,void 0,t)}});var ose=w(Xw=>{"use strict";Object.defineProperty(Xw,"__esModule",{value:!0});Xw.getRules=Xw.isJSONType=void 0;var oun=["string","number","integer","boolean","null","object","array"],aun=new Set(oun);function cun(e){return typeof e=="string"&&aun.has(e)}Xw.isJSONType=cun;function uun(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Xw.getRules=uun});var ase=w(NS=>{"use strict";Object.defineProperty(NS,"__esModule",{value:!0});NS.shouldUseRule=NS.shouldUseGroup=NS.schemaHasRulesForType=void 0;function lun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&Z5e(e,r)}NS.schemaHasRulesForType=lun;function Z5e(e,t){return t.rules.some(n=>J5e(e,n))}NS.shouldUseGroup=Z5e;function J5e(e,t){var n;return e[t.keyword]!==void 0||((n=t.definition.implements)===null||n===void 0?void 0:n.some(r=>e[r]!==void 0))}NS.shouldUseRule=J5e});var yC=w(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.reportTypeError=sc.checkDataTypes=sc.checkDataType=sc.coerceAndCheckDataType=sc.getJSONTypes=sc.getSchemaTypes=sc.DataType=void 0;var dun=ose(),fun=ase(),pun=gC(),hn=Ot(),X5e=pn(),Qw;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Qw||(sc.DataType=Qw={}));function hun(e){let t=Q5e(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}sc.getSchemaTypes=hun;function Q5e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(dun.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}sc.getJSONTypes=Q5e;function mun(e,t){let{gen:n,data:r,opts:i}=e,s=gun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,fun.schemaHasRulesForType)(e,t[0]));if(o){let a=use(t,r,i.strictNumbers,Qw.Wrong);n.if(a,()=>{s.length?yun(e,t,s):lse(e)})}return o}sc.coerceAndCheckDataType=mun;var $5e=new Set(["string","number","integer","boolean","null"]);function gun(e,t){return t?e.filter(n=>$5e.has(n)||t==="array"&&n==="array"):[]}function yun(e,t,n){let{gen:r,data:i,opts:s}=e,o=r.let("dataType",(0,hn._)`typeof ${i}`),a=r.let("coerced",(0,hn._)`undefined`);s.coerceTypes==="array"&&r.if((0,hn._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0,hn._)`${i}[0]`).assign(o,(0,hn._)`typeof ${i}`).if(use(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)($5e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),lse(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),Sun(e,a)});function c(u){switch(u){case"string":r.elseIf((0,hn._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,hn._)`"" + ${i}`).elseIf((0,hn._)`${i} === null`).assign(a,(0,hn._)`""`);return;case"number":r.elseIf((0,hn._)`${o} == "boolean" || ${i} === null || (${o} == "string" && ${i} && ${i} == +${i})`).assign(a,(0,hn._)`+${i}`);return;case"integer":r.elseIf((0,hn._)`${o} === "boolean" || ${i} === null || (${o} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(a,(0,hn._)`+${i}`);return;case"boolean":r.elseIf((0,hn._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(a,!1).elseIf((0,hn._)`${i} === "true" || ${i} === 1`).assign(a,!0);return;case"null":r.elseIf((0,hn._)`${i} === "" || ${i} === 0 || ${i} === false`),r.assign(a,null);return;case"array":r.elseIf((0,hn._)`${o} === "string" || ${o} === "number" - || ${o} === "boolean" || ${i} === null`).assign(a,(0,hn._)`[${i}]`)}}}function _cn({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function zie(e,t,n,r=Ww.Correct){let i=r===Ww.Correct?hn.operators.EQ:hn.operators.NEQ,s;switch(e){case"null":return(0,hn._)`${t} ${i} null`;case"array":s=(0,hn._)`Array.isArray(${t})`;break;case"object":s=(0,hn._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":s=o((0,hn._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":s=o();break;default:return(0,hn._)`typeof ${t} ${i} ${e}`}return r===Ww.Correct?s:(0,hn.not)(s);function o(a=hn.nil){return(0,hn.and)((0,hn._)`typeof ${t} == "number"`,a,n?(0,hn._)`isFinite(${t})`:hn.nil)}}$a.checkDataType=zie;function Vie(e,t,n,r){if(e.length===1)return zie(e[0],t,n,r);let i,s=(0,E5e.toHash)(e);if(s.array&&s.object){let o=(0,hn._)`typeof ${t} != "object"`;i=s.null?o:(0,hn._)`!${t} || ${o}`,delete s.null,delete s.array,delete s.object}else i=hn.nil;s.number&&delete s.integer;for(let o in s)i=(0,hn.and)(i,zie(o,t,n,r));return i}$a.checkDataTypes=Vie;var Ecn={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function Wie(e){let t=bcn(e);(0,hcn.reportError)(t,Ecn)}$a.reportTypeError=Wie;function bcn(e){let{gen:t,data:n,schema:r}=e,i=(0,E5e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var A5e=w(v2=>{"use strict";Object.defineProperty(v2,"__esModule",{value:!0});v2.assignDefaults=void 0;var Kw=kt(),Tcn=pn();function vcn(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)v5e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>v5e(e,s,i.default))}v2.assignDefaults=vcn;function v5e(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,Kw._)`${s}${(0,Kw.getProperty)(t)}`;if(i){(0,Tcn.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,Kw._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,Kw._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,Kw._)`${a} = ${(0,Kw.stringify)(n)}`)}});var ga=w(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.validateUnion=jr.validateArray=jr.usePattern=jr.callValidateCode=jr.schemaProperties=jr.allSchemaProperties=jr.noPropertyInData=jr.propertyInData=jr.isOwnProperty=jr.hasPropFunc=jr.reportMissingProp=jr.checkMissingProp=jr.checkReportMissingProp=void 0;var pi=kt(),Kie=pn(),xS=pd(),Acn=pn();function Rcn(e,t){let{gen:n,data:r,it:i}=e;n.if(Yie(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,pi._)`${t}`},!0),e.error()})}jr.checkReportMissingProp=Rcn;function wcn({gen:e,data:t,it:{opts:n}},r,i){return(0,pi.or)(...r.map(s=>(0,pi.and)(Yie(e,t,s,n.ownProperties),(0,pi._)`${i} = ${s}`)))}jr.checkMissingProp=wcn;function kcn(e,t){e.setParams({missingProperty:t},!0),e.error()}jr.reportMissingProp=kcn;function R5e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,pi._)`Object.prototype.hasOwnProperty`})}jr.hasPropFunc=R5e;function Zie(e,t,n){return(0,pi._)`${R5e(e)}.call(${t}, ${n})`}jr.isOwnProperty=Zie;function Icn(e,t,n,r){let i=(0,pi._)`${t}${(0,pi.getProperty)(n)} !== undefined`;return r?(0,pi._)`${i} && ${Zie(e,t,n)}`:i}jr.propertyInData=Icn;function Yie(e,t,n,r){let i=(0,pi._)`${t}${(0,pi.getProperty)(n)} === undefined`;return r?(0,pi.or)(i,(0,pi.not)(Zie(e,t,n))):i}jr.noPropertyInData=Yie;function w5e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}jr.allSchemaProperties=w5e;function xcn(e,t){return w5e(t).filter(n=>!(0,Kie.alwaysValidSchema)(e,t[n]))}jr.schemaProperties=xcn;function Ocn({schemaCode:e,data:t,it:{gen:n,topSchemaRef:r,schemaPath:i,errorPath:s},it:o},a,c,u){let l=u?(0,pi._)`${e}, ${t}, ${r}${i}`:t,d=[[xS.default.instancePath,(0,pi.strConcat)(xS.default.instancePath,s)],[xS.default.parentData,o.parentData],[xS.default.parentDataProperty,o.parentDataProperty],[xS.default.rootData,xS.default.rootData]];o.opts.dynamicRef&&d.push([xS.default.dynamicAnchors,xS.default.dynamicAnchors]);let f=(0,pi._)`${l}, ${n.object(...d)}`;return c!==pi.nil?(0,pi._)`${a}.call(${c}, ${f})`:(0,pi._)`${a}(${f})`}jr.callValidateCode=Ocn;var Ncn=(0,pi._)`new RegExp`;function Pcn({gen:e,it:{opts:t}},n){let r=t.unicodeRegExp?"u":"",{regExp:i}=t.code,s=i(n,r);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,pi._)`${i.code==="new RegExp"?Ncn:(0,Acn.useFunc)(e,i)}(${n}, ${r})`})}jr.usePattern=Pcn;function Ccn(e){let{gen:t,data:n,keyword:r,it:i}=e,s=t.name("valid");if(i.allErrors){let a=t.let("valid",!0);return o(()=>t.assign(a,!1)),a}return t.var(s,!0),o(()=>t.break()),s;function o(a){let c=t.const("len",(0,pi._)`${n}.length`);t.forRange("i",0,c,u=>{e.subschema({keyword:r,dataProp:u,dataPropType:Kie.Type.Num},s),t.if((0,pi.not)(s),a)})}}jr.validateArray=Ccn;function Mcn(e){let{gen:t,schema:n,keyword:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(c=>(0,Kie.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=t.let("valid",!1),a=t.name("_valid");t.block(()=>n.forEach((c,u)=>{let l=e.subschema({keyword:r,schemaProp:u,compositeRule:!0},a);t.assign(o,(0,pi._)`${o} || ${a}`),e.mergeValidEvaluated(l,a)||t.if((0,pi.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}jr.validateUnion=Mcn});var x5e=w(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});oh.validateKeywordUsage=oh.validSchemaType=oh.funcKeywordCode=oh.macroKeywordCode=void 0;var qc=kt(),Cb=pd(),Dcn=ga(),Lcn=cC();function Ucn(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=I5e(n,r,a);o.opts.validateSchema!==!1&&o.self.validateSchema(a,!0);let u=n.name("valid");e.subschema({schema:a,schemaPath:qc.nil,errSchemaPath:`${o.errSchemaPath}/${r}`,topSchemaRef:c,compositeRule:!0},u),e.pass(u,()=>e.error(!0))}oh.macroKeywordCode=Ucn;function jcn(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;Hcn(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=I5e(r,i,u),d=r.let("valid");e.block$data(d,f),e.ok((n=t.valid)!==null&&n!==void 0?n:d);function f(){if(t.errors===!1)m(),t.modifying&&k5e(e),y(()=>e.error());else{let g=t.async?p():h();t.modifying&&k5e(e),y(()=>Fcn(e,g))}}function p(){let g=r.let("ruleErrs",null);return r.try(()=>m((0,qc._)`await `),E=>r.assign(d,!1).if((0,qc._)`${E} instanceof ${c.ValidationError}`,()=>r.assign(g,(0,qc._)`${E}.errors`),()=>r.throw(E))),g}function h(){let g=(0,qc._)`${l}.errors`;return r.assign(g,null),m(qc.nil),g}function m(g=t.async?(0,qc._)`await `:qc.nil){let E=c.opts.passContext?Cb.default.this:Cb.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,qc._)`${g}${(0,Dcn.callValidateCode)(e,l,E,S)}`,t.modifying)}function y(g){var E;r.if((0,qc.not)((E=t.valid)!==null&&E!==void 0?E:d),g)}}oh.funcKeywordCode=jcn;function k5e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,qc._)`${r.parentData}[${r.parentDataProperty}]`))}function Fcn(e,t){let{gen:n}=e;n.if((0,qc._)`Array.isArray(${t})`,()=>{n.assign(Cb.default.vErrors,(0,qc._)`${Cb.default.vErrors} === null ? ${t} : ${Cb.default.vErrors}.concat(${t})`).assign(Cb.default.errors,(0,qc._)`${Cb.default.vErrors}.length`),(0,Lcn.extendErrors)(e)},()=>e.error())}function Hcn({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function I5e(e,t,n){if(n===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof n=="function"?{ref:n}:{ref:n,code:(0,qc.stringify)(n)})}function qcn(e,t,n=!1){return!t.length||t.some(r=>r==="array"?Array.isArray(e):r==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==r||n&&typeof e>"u")}oh.validSchemaType=qcn;function Bcn({schema:e,opts:t,self:n,errSchemaPath:r},i,s){if(Array.isArray(i.keyword)?!i.keyword.includes(s):i.keyword!==s)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(a=>!Object.prototype.hasOwnProperty.call(e,a)))throw new Error(`parent schema must have dependencies of ${s}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[s])){let c=`keyword "${s}" value is invalid at path "${r}": `+n.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")n.logger.error(c);else throw new Error(c)}}oh.validateKeywordUsage=Bcn});var N5e=w(OS=>{"use strict";Object.defineProperty(OS,"__esModule",{value:!0});OS.extendSubschemaMode=OS.extendSubschemaData=OS.getSubschema=void 0;var ah=kt(),O5e=pn();function Gcn(e,{keyword:t,schemaProp:n,schema:r,schemaPath:i,errSchemaPath:s,topSchemaRef:o}){if(t!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let a=e.schema[t];return n===void 0?{schema:a,schemaPath:(0,ah._)`${e.schemaPath}${(0,ah.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:a[n],schemaPath:(0,ah._)`${e.schemaPath}${(0,ah.getProperty)(t)}${(0,ah.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,O5e.escapeFragment)(n)}`}}if(r!==void 0){if(i===void 0||s===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:r,schemaPath:i,topSchemaRef:o,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}OS.getSubschema=Gcn;function zcn(e,t,{dataProp:n,dataPropType:r,data:i,dataTypes:s,propertyName:o}){if(i!==void 0&&n!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=t;if(n!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=t,f=a.let("data",(0,ah._)`${t.data}${(0,ah.getProperty)(n)}`,!0);c(f),e.errorPath=(0,ah.str)`${u}${(0,O5e.getErrorPath)(n,r,d.jsPropertySyntax)}`,e.parentDataProperty=(0,ah._)`${n}`,e.dataPathArr=[...l,e.parentDataProperty]}if(i!==void 0){let u=i instanceof ah.Name?i:a.let("data",i,!0);c(u),o!==void 0&&(e.propertyName=o)}s&&(e.dataTypes=s);function c(u){e.data=u,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,u]}}OS.extendSubschemaData=zcn;function Vcn(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:i,allErrors:s}){r!==void 0&&(e.compositeRule=r),i!==void 0&&(e.createErrors=i),s!==void 0&&(e.allErrors=s),e.jtdDiscriminator=t,e.jtdMetadata=n}OS.extendSubschemaMode=Vcn});var lC=w((tzr,P5e)=>{"use strict";P5e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(s=Object.keys(t),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}});var M5e=w((nzr,C5e)=>{"use strict";var NS=C5e.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),n=t.cb||n;var r=typeof n=="function"?n:n.pre||function(){},i=n.post||function(){};A2(t,r,i,e,"",e)};NS.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};NS.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};NS.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};NS.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function A2(e,t,n,r,i,s,o,a,c,u){if(r&&typeof r=="object"&&!Array.isArray(r)){t(r,i,s,o,a,c,u);for(var l in r){var d=r[l];if(Array.isArray(d)){if(l in NS.arrayKeywords)for(var f=0;f{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.getSchemaRefs=Su.resolveUrl=Su.normalizeId=Su._getFullPath=Su.getFullPath=Su.inlineRef=void 0;var Kcn=pn(),Zcn=lC(),Ycn=M5e(),Jcn=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Xcn(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Jie(e):t?D5e(e)<=t:!1}Su.inlineRef=Xcn;var Qcn=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Jie(e){for(let t in e){if(Qcn.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(Jie)||typeof n=="object"&&Jie(n))return!0}return!1}function D5e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!Jcn.has(n)&&(typeof e[n]=="object"&&(0,Kcn.eachItem)(e[n],r=>t+=D5e(r)),t===1/0))return 1/0}return t}function L5e(e,t="",n){n!==!1&&(t=Zw(t));let r=e.parse(t);return U5e(e,r)}Su.getFullPath=L5e;function U5e(e,t){return e.serialize(t).split("#")[0]+"#"}Su._getFullPath=U5e;var $cn=/#\/?$/;function Zw(e){return e?e.replace($cn,""):""}Su.normalizeId=Zw;function eun(e,t,n){return n=Zw(n),e.resolve(t,n)}Su.resolveUrl=eun;var tun=/^[a-z_][-a-z0-9._]*$/i;function nun(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=Zw(e[n]||t),s={"":i},o=L5e(r,i,!1),a={},c=new Set;return Ycn(e,{allKeys:!0},(d,f,p,h)=>{if(h===void 0)return;let m=o+f,y=s[h];typeof d[n]=="string"&&(y=g.call(this,d[n])),E.call(this,d.$anchor),E.call(this,d.$dynamicAnchor),s[f]=y;function g(S){let _=this.opts.uriResolver.resolve;if(S=Zw(y?_(y,S):S),c.has(S))throw l(S);c.add(S);let b=this.refs[S];return typeof b=="string"&&(b=this.refs[b]),typeof b=="object"?u(d,b.schema,S):S!==Zw(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function E(S){if(typeof S=="string"){if(!tun.test(S))throw new Error(`invalid anchor "${S}"`);g.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!Zcn(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Su.getSchemaRefs=nun});var Yw=w(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0});PS.getData=PS.KeywordCxt=PS.validateFunctionCode=void 0;var B5e=y5e(),j5e=uC(),Qie=Gie(),R2=uC(),run=A5e(),pC=x5e(),Xie=N5e(),pt=kt(),Jt=pd(),iun=dC(),qm=pn(),fC=cC();function sun(e){if(V5e(e)&&(W5e(e),z5e(e))){cun(e);return}G5e(e,()=>(0,B5e.topBoolOrEmptySchema)(e))}PS.validateFunctionCode=sun;function G5e({gen:e,validateName:t,schema:n,schemaEnv:r,opts:i},s){i.code.es5?e.func(t,(0,pt._)`${Jt.default.data}, ${Jt.default.valCxt}`,r.$async,()=>{e.code((0,pt._)`"use strict"; ${F5e(n,i)}`),aun(e,i),e.code(s)}):e.func(t,(0,pt._)`${Jt.default.data}, ${oun(i)}`,r.$async,()=>e.code(F5e(n,i)).code(s))}function oun(e){return(0,pt._)`{${Jt.default.instancePath}="", ${Jt.default.parentData}, ${Jt.default.parentDataProperty}, ${Jt.default.rootData}=${Jt.default.data}${e.dynamicRef?(0,pt._)`, ${Jt.default.dynamicAnchors}={}`:pt.nil}}={}`}function aun(e,t){e.if(Jt.default.valCxt,()=>{e.var(Jt.default.instancePath,(0,pt._)`${Jt.default.valCxt}.${Jt.default.instancePath}`),e.var(Jt.default.parentData,(0,pt._)`${Jt.default.valCxt}.${Jt.default.parentData}`),e.var(Jt.default.parentDataProperty,(0,pt._)`${Jt.default.valCxt}.${Jt.default.parentDataProperty}`),e.var(Jt.default.rootData,(0,pt._)`${Jt.default.valCxt}.${Jt.default.rootData}`),t.dynamicRef&&e.var(Jt.default.dynamicAnchors,(0,pt._)`${Jt.default.valCxt}.${Jt.default.dynamicAnchors}`)},()=>{e.var(Jt.default.instancePath,(0,pt._)`""`),e.var(Jt.default.parentData,(0,pt._)`undefined`),e.var(Jt.default.parentDataProperty,(0,pt._)`undefined`),e.var(Jt.default.rootData,Jt.default.data),t.dynamicRef&&e.var(Jt.default.dynamicAnchors,(0,pt._)`{}`)})}function cun(e){let{schema:t,opts:n,gen:r}=e;G5e(e,()=>{n.$comment&&t.$comment&&Z5e(e),pun(e),r.let(Jt.default.vErrors,null),r.let(Jt.default.errors,0),n.unevaluated&&uun(e),K5e(e),gun(e)})}function uun(e){let{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",(0,pt._)`${n}.evaluated`),t.if((0,pt._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,pt._)`${e.evaluated}.props`,(0,pt._)`undefined`)),t.if((0,pt._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,pt._)`${e.evaluated}.items`,(0,pt._)`undefined`))}function F5e(e,t){let n=typeof e=="object"&&e[t.schemaId];return n&&(t.code.source||t.code.process)?(0,pt._)`/*# sourceURL=${n} */`:pt.nil}function lun(e,t){if(V5e(e)&&(W5e(e),z5e(e))){dun(e,t);return}(0,B5e.boolOrEmptySchema)(e,t)}function z5e({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let n in e)if(t.RULES.all[n])return!0;return!1}function V5e(e){return typeof e.schema!="boolean"}function dun(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&Z5e(e),hun(e),mun(e);let s=r.const("_errs",Jt.default.errors);K5e(e,s),r.var(t,(0,pt._)`${s} === ${Jt.default.errors}`)}function W5e(e){(0,qm.checkUnknownRules)(e),fun(e)}function K5e(e,t){if(e.opts.jtd)return H5e(e,[],!1,t);let n=(0,j5e.getSchemaTypes)(e.schema),r=(0,j5e.coerceAndCheckDataType)(e,n);H5e(e,n,!r,t)}function fun(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,qm.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function pun(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,qm.checkStrictMode)(e,"default is ignored in the schema root")}function hun(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,iun.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function mun(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Z5e({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:i}){let s=n.$comment;if(i.$comment===!0)e.code((0,pt._)`${Jt.default.self}.logger.log(${s})`);else if(typeof i.$comment=="function"){let o=(0,pt.str)`${r}/$comment`,a=e.scopeValue("root",{ref:t.root});e.code((0,pt._)`${Jt.default.self}.opts.$comment(${s}, ${o}, ${a}.schema)`)}}function gun(e){let{gen:t,schemaEnv:n,validateName:r,ValidationError:i,opts:s}=e;n.$async?t.if((0,pt._)`${Jt.default.errors} === 0`,()=>t.return(Jt.default.data),()=>t.throw((0,pt._)`new ${i}(${Jt.default.vErrors})`)):(t.assign((0,pt._)`${r}.errors`,Jt.default.vErrors),s.unevaluated&&yun(e),t.return((0,pt._)`${Jt.default.errors} === 0`))}function yun({gen:e,evaluated:t,props:n,items:r}){n instanceof pt.Name&&e.assign((0,pt._)`${t}.props`,n),r instanceof pt.Name&&e.assign((0,pt._)`${t}.items`,r)}function H5e(e,t,n,r){let{gen:i,schema:s,data:o,allErrors:a,opts:c,self:u}=e,{RULES:l}=u;if(s.$ref&&(c.ignoreKeywordsWithRef||!(0,qm.schemaHasRulesButRef)(s,l))){i.block(()=>J5e(e,"$ref",l.all.$ref.definition));return}c.jtd||Sun(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,Qie.shouldUseGroup)(s,f)&&(f.type?(i.if((0,R2.checkDataType)(f.type,o,c.strictNumbers)),q5e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,R2.reportTypeError)(e)),i.endIf()):q5e(e,f),a||i.if((0,pt._)`${Jt.default.errors} === ${r||0}`))}}function q5e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,run.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Qie.shouldUseRule)(r,s)&&J5e(e,s.keyword,s.definition,t.type)})}function Sun(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(_un(e,t),e.opts.allowUnionTypes||Eun(e,t),bun(e,e.dataTypes))}function _un(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{Y5e(e.dataTypes,n)||$ie(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),vun(e,t)}}function Eun(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&$ie(e,"use allowUnionTypes to allow union type keyword")}function bun(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,Qie.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>Tun(t,o))&&$ie(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function Tun(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Y5e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function vun(e,t){let n=[];for(let r of e.dataTypes)Y5e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function $ie(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,qm.checkStrictMode)(e,t,e.opts.strictTypes)}var w2=class{constructor(t,n,r){if((0,pC.validateKeywordUsage)(t,n,r),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=r,this.data=t.data,this.schema=t.schema[r],this.$data=n.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,qm.schemaRefOrVal)(t,this.schema,r,this.$data),this.schemaType=n.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=n,this.$data)this.schemaCode=t.gen.const("vSchema",X5e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,pC.validSchemaType)(this.schema,n.schemaType,n.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(n.schemaType)}`);("code"in n?n.trackErrors:n.errors!==!1)&&(this.errsCount=t.gen.const("_errs",Jt.default.errors))}result(t,n,r){this.failResult((0,pt.not)(t),n,r)}failResult(t,n,r){this.gen.if(t),r?r():this.error(),n?(this.gen.else(),n(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,n){this.failResult((0,pt.not)(t),void 0,n)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:n}=this;this.fail((0,pt._)`${n} !== undefined && (${(0,pt.or)(this.invalid$data(),t)})`)}error(t,n,r){if(n){this.setParams(n),this._error(t,r),this.setParams({});return}this._error(t,r)}_error(t,n){(t?fC.reportExtraError:fC.reportError)(this,this.def.error,n)}$dataError(){(0,fC.reportError)(this,this.def.$dataError||fC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,fC.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,n){n?Object.assign(this.params,t):this.params=t}block$data(t,n,r=pt.nil){this.gen.block(()=>{this.check$data(t,r),n()})}check$data(t=pt.nil,n=pt.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:s,def:o}=this;r.if((0,pt.or)((0,pt._)`${i} === undefined`,n)),t!==pt.nil&&r.assign(t,!0),(s.length||o.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),t!==pt.nil&&r.assign(t,!1)),r.else()}invalid$data(){let{gen:t,schemaCode:n,schemaType:r,def:i,it:s}=this;return(0,pt.or)(o(),a());function o(){if(r.length){if(!(n instanceof pt.Name))throw new Error("ajv implementation error");let c=Array.isArray(r)?r:[r];return(0,pt._)`${(0,R2.checkDataTypes)(c,n,s.opts.strictNumbers,R2.DataType.Wrong)}`}return pt.nil}function a(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,pt._)`!${c}(${n})`}return pt.nil}}subschema(t,n){let r=(0,Xie.getSubschema)(this.it,t);(0,Xie.extendSubschemaData)(r,this.it,t),(0,Xie.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return lun(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=qm.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=qm.mergeEvaluated.items(i,t.items,r.items,n)))}mergeValidEvaluated(t,n){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==!0||r.items!==!0))return i.if(n,()=>this.mergeEvaluated(t,pt.Name)),!0}};PS.KeywordCxt=w2;function J5e(e,t,n,r){let i=new w2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,pC.funcKeywordCode)(i,n):"macro"in n?(0,pC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,pC.funcKeywordCode)(i,n)}var Aun=/^\/(?:[^~]|~0|~1)*$/,Run=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function X5e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Jt.default.rootData;if(e[0]==="/"){if(!Aun.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Jt.default.rootData}else{let u=Run.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+u[1];if(i=u[2],i==="#"){if(l>=t)throw new Error(c("property/index",l));return r[t-l]}if(l>t)throw new Error(c("data",l));if(s=n[t-l],!i)return s}let o=s,a=i.split("/");for(let u of a)u&&(s=(0,pt._)`${s}${(0,pt.getProperty)((0,qm.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}PS.getData=X5e});var hC=w(tse=>{"use strict";Object.defineProperty(tse,"__esModule",{value:!0});var ese=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};tse.default=ese});var Bm=w(ise=>{"use strict";Object.defineProperty(ise,"__esModule",{value:!0});var nse=dC(),rse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,nse.resolveUrl)(t,n,r),this.missingSchema=(0,nse.normalizeId)((0,nse.getFullPath)(t,this.missingRef))}};ise.default=rse});var Db=w(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.resolveSchema=hd.getCompilingSchema=hd.resolveRef=hd.compileSchema=hd.SchemaEnv=void 0;var bf=kt(),wun=hC(),Mb=pd(),Tf=dC(),Q5e=pn(),kun=Yw(),Jw=class{constructor(t){var n;this.refs={},this.dynamicAnchors={};let r;typeof t.schema=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,Tf.normalizeId)(r?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r?.$async,this.refs={}}};hd.SchemaEnv=Jw;function ose(e){let t=$5e.call(this,e);if(t)return t;let n=(0,Tf.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new bf.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a;e.$async&&(a=o.scopeValue("Error",{ref:wun.default,code:(0,bf._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:Mb.default.data,parentData:Mb.default.parentData,parentDataProperty:Mb.default.parentDataProperty,dataNames:[Mb.default.data],dataPathArr:[bf.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,bf.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:bf.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,bf._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,kun.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(Mb.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${Mb.default.self}`,`${Mb.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=e.schema,p.schemaEnv=e,e.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:d,scopeValues:o._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof bf.Name?void 0:h,items:m instanceof bf.Name?void 0:m,dynamicProps:h instanceof bf.Name,dynamicItems:m instanceof bf.Name},p.source&&(p.source.evaluated=(0,bf.stringify)(p.evaluated))}return e.validate=p,e}catch(d){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(e)}}hd.compileSchema=ose;function Iun(e,t,n){var r;n=(0,Tf.resolveUrl)(this.opts.uriResolver,t,n);let i=e.refs[n];if(i)return i;let s=Nun.call(this,e,n);if(s===void 0){let o=(r=e.localRefs)===null||r===void 0?void 0:r[n],{schemaId:a}=this.opts;o&&(s=new Jw({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=xun.call(this,s)}hd.resolveRef=Iun;function xun(e){return(0,Tf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:ose.call(this,e)}function $5e(e){for(let t of this._compilations)if(Oun(t,e))return t}hd.getCompilingSchema=$5e;function Oun(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Nun(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||k2.call(this,e,t)}function k2(e,t){let n=this.opts.uriResolver.parse(t),r=(0,Tf._getFullPath)(this.opts.uriResolver,n),i=(0,Tf.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===i)return sse.call(this,n,e);let s=(0,Tf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=k2.call(this,e,o);return typeof a?.schema!="object"?void 0:sse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||ose.call(this,o),s===(0,Tf.normalizeId)(t)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(i=(0,Tf.resolveUrl)(this.opts.uriResolver,i,u)),new Jw({schema:a,schemaId:c,root:e,baseId:i})}return sse.call(this,n,o)}}hd.resolveSchema=k2;var Pun=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function sse(e,{baseId:t,schema:n,root:r}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let a of e.fragment.slice(1).split("/")){if(typeof n=="boolean")return;let c=n[(0,Q5e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Pun.has(a)&&u&&(t=(0,Tf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,Q5e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,Tf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=k2.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new Jw({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var e6e=w((czr,Cun)=>{Cun.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var cse=w((uzr,i6e)=>{"use strict";var Mun=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),n6e=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function ase(e){let t="",n=0,r=0;for(r=0;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r];break}for(r+=1;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r]}return t}var Dun=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function t6e(e){return e.length=0,!0}function Lun(e,t,n){if(e.length){let r=ase(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function Uun(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=Lun;for(let c=0;c7){n.error=!0;break}c>0&&e[c-1]===":"&&(s=!0),r.push(":");continue}else if(u==="%"){if(!a(i,r,n))break;a=t6e}else{i.push(u);continue}}return i.length&&(a===t6e?n.zone=i.join(""):o?r.push(i.join("")):r.push(ase(i))),n.address=r.join(""),n}function r6e(e){if(jun(e,":")<2)return{host:e,isIPV6:!1};let t=Uun(e);if(t.error)return{host:e,isIPV6:!1};{let n=t.address,r=t.address;return t.zone&&(n+="%"+t.zone,r+="%25"+t.zone),{host:n,isIPV6:!0,escapedHost:r}}}function jun(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:Bun}=cse(),Gun=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,zun=["http","https","ws","wss","urn","urn:uuid"];function Vun(e){return zun.indexOf(e)!==-1}function use(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function s6e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function o6e(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function Wun(e){return e.secure=use(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Kun(e){if((e.port===(use(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,n]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}function Zun(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(Gun);if(n){let r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];let i=`${r}:${t.nid||e.nid}`,s=lse(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Yun(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let n=t.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),i=`${n}:${t.nid||r}`,s=lse(i);s&&(e=s.serialize(e,t));let o=e,a=e.nss;return o.path=`${r||t.nid}:${a}`,t.skipEscape=!0,o}function Jun(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!Bun(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function Xun(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var a6e={scheme:"http",domainHost:!0,parse:s6e,serialize:o6e},Qun={scheme:"https",domainHost:a6e.domainHost,parse:s6e,serialize:o6e},I2={scheme:"ws",domainHost:!0,parse:Wun,serialize:Kun},$un={scheme:"wss",domainHost:I2.domainHost,parse:I2.parse,serialize:I2.serialize},eln={scheme:"urn",parse:Zun,serialize:Yun,skipNormalize:!0},tln={scheme:"urn:uuid",parse:Jun,serialize:Xun,skipNormalize:!0},x2={http:a6e,https:Qun,ws:I2,wss:$un,urn:eln,"urn:uuid":tln};Object.setPrototypeOf(x2,null);function lse(e){return e&&(x2[e]||x2[e.toLowerCase()])||void 0}c6e.exports={wsIsSecure:use,SCHEMES:x2,isValidSchemeName:Vun,getSchemeHandler:lse}});var P2=w((dzr,N2)=>{"use strict";var{normalizeIPv6:nln,removeDotSegments:mC,recomposeAuthority:rln,normalizeComponentEncoding:O2,isIPv4:iln,nonSimpleDomain:sln}=cse(),{SCHEMES:oln,getSchemeHandler:l6e}=u6e();function aln(e,t){return typeof e=="string"?e=ch(Gm(e,t),t):typeof e=="object"&&(e=Gm(ch(e,t),t)),e}function cln(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=d6e(Gm(e,r),Gm(t,r),r,!0);return r.skipEscape=!0,ch(i,r)}function d6e(e,t,n,r){let i={};return r||(e=Gm(ch(e,n),n),t=Gm(ch(t,n),n)),n=n||{},!n.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=mC(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=mC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=mC(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=mC(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function uln(e,t,n){return typeof e=="string"?(e=unescape(e),e=ch(O2(Gm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=ch(O2(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=ch(O2(Gm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=ch(O2(t,!0),{...n,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function ch(e,t){let n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},t),i=[],s=l6e(r.scheme||n.scheme);s&&s.serialize&&s.serialize(n,r),n.path!==void 0&&(r.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),n.scheme!==void 0&&(n.path=n.path.split("%3A").join(":")))),r.reference!=="suffix"&&n.scheme&&i.push(n.scheme,":");let o=rln(n);if(o!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(o),n.path&&n.path[0]!=="/"&&i.push("/")),n.path!==void 0){let a=n.path;!r.absolutePath&&(!s||!s.absolutePath)&&(a=mC(a)),o===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),i.push(a)}return n.query!==void 0&&i.push("?",n.query),n.fragment!==void 0&&i.push("#",n.fragment),i.join("")}var lln=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Gm(e,t){let n=Object.assign({},t),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1;n.reference==="suffix"&&(n.scheme?e=n.scheme+":"+e:e="//"+e);let s=e.match(lln);if(s){if(r.scheme=s[1],r.userinfo=s[3],r.host=s[4],r.port=parseInt(s[5],10),r.path=s[6]||"",r.query=s[7],r.fragment=s[8],isNaN(r.port)&&(r.port=s[5]),r.host)if(iln(r.host)===!1){let c=nln(r.host);r.host=c.host.toLowerCase(),i=c.isIPV6}else i=!0;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",n.reference&&n.reference!=="suffix"&&n.reference!==r.reference&&(r.error=r.error||"URI is not a "+n.reference+" reference.");let o=l6e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&sln(r.host))try{r.host=URL.domainToASCII(r.host.toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to ASCII: "+a}(!o||o&&!o.skipNormalize)&&(e.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=unescape(r.host))),r.path&&(r.path=escape(unescape(r.path))),r.fragment&&(r.fragment=encodeURI(decodeURIComponent(r.fragment)))),o&&o.parse&&o.parse(r,n)}else r.error=r.error||"URI can not be parsed.";return r}var dse={SCHEMES:oln,normalize:aln,resolve:cln,resolveComponent:d6e,equal:uln,serialize:ch,parse:Gm};N2.exports=dse;N2.exports.default=dse;N2.exports.fastUri=dse});var p6e=w(fse=>{"use strict";Object.defineProperty(fse,"__esModule",{value:!0});var f6e=P2();f6e.code='require("ajv/dist/runtime/uri").default';fse.default=f6e});var mse=w(ya=>{"use strict";Object.defineProperty(ya,"__esModule",{value:!0});ya.CodeGen=ya.Name=ya.nil=ya.stringify=ya.str=ya._=ya.KeywordCxt=void 0;var dln=Yw();Object.defineProperty(ya,"KeywordCxt",{enumerable:!0,get:function(){return dln.KeywordCxt}});var Xw=kt();Object.defineProperty(ya,"_",{enumerable:!0,get:function(){return Xw._}});Object.defineProperty(ya,"str",{enumerable:!0,get:function(){return Xw.str}});Object.defineProperty(ya,"stringify",{enumerable:!0,get:function(){return Xw.stringify}});Object.defineProperty(ya,"nil",{enumerable:!0,get:function(){return Xw.nil}});Object.defineProperty(ya,"Name",{enumerable:!0,get:function(){return Xw.Name}});Object.defineProperty(ya,"CodeGen",{enumerable:!0,get:function(){return Xw.CodeGen}});var fln=hC(),S6e=Bm(),pln=Bie(),gC=Db(),hln=kt(),yC=dC(),C2=uC(),hse=pn(),h6e=e6e(),mln=p6e(),_6e=(e,t)=>new RegExp(e,t);_6e.code="new RegExp";var gln=["removeAdditional","useDefaults","coerceTypes"],yln=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Sln={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},_ln={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},m6e=200;function Eln(e){var t,n,r,i,s,o,a,c,u,l,d,f,p,h,m,y,g,E,S,_,b,T,A,R,k;let x=e.strict,N=(t=e.code)===null||t===void 0?void 0:t.optimize,P=N===!0||N===void 0?1:N||0,D=(r=(n=e.code)===null||n===void 0?void 0:n.regExp)!==null&&r!==void 0?r:_6e,j=(i=e.uriResolver)!==null&&i!==void 0?i:mln.default;return{strictSchema:(o=(s=e.strictSchema)!==null&&s!==void 0?s:x)!==null&&o!==void 0?o:!0,strictNumbers:(c=(a=e.strictNumbers)!==null&&a!==void 0?a:x)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=e.strictTypes)!==null&&u!==void 0?u:x)!==null&&l!==void 0?l:"log",strictTuples:(f=(d=e.strictTuples)!==null&&d!==void 0?d:x)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=e.strictRequired)!==null&&p!==void 0?p:x)!==null&&h!==void 0?h:!1,code:e.code?{...e.code,optimize:P,regExp:D}:{optimize:P,regExp:D},loopRequired:(m=e.loopRequired)!==null&&m!==void 0?m:m6e,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:m6e,meta:(g=e.meta)!==null&&g!==void 0?g:!0,messages:(E=e.messages)!==null&&E!==void 0?E:!0,inlineRefs:(S=e.inlineRefs)!==null&&S!==void 0?S:!0,schemaId:(_=e.schemaId)!==null&&_!==void 0?_:"$id",addUsedSchema:(b=e.addUsedSchema)!==null&&b!==void 0?b:!0,validateSchema:(T=e.validateSchema)!==null&&T!==void 0?T:!0,validateFormats:(A=e.validateFormats)!==null&&A!==void 0?A:!0,unicodeRegExp:(R=e.unicodeRegExp)!==null&&R!==void 0?R:!0,int32range:(k=e.int32range)!==null&&k!==void 0?k:!0,uriResolver:j}}var SC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Eln(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new hln.ValueScope({scope:{},prefixes:yln,es5:n,lines:r}),this.logger=wln(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,pln.getRules)(),g6e.call(this,Sln,t,"NOT SUPPORTED"),g6e.call(this,_ln,t,"DEPRECATED","warn"),this._metaOpts=Aln.call(this),t.formats&&Tln.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&vln.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),bln.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=h6e;r==="id"&&(i={...h6e},i.id=i.$id,delete i.$id),n&&t&&this.addMetaSchema(i,i[r],!1)}defaultMeta(){let{meta:t,schemaId:n}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[n]||t:void 0}validate(t,n){let r;if(typeof t=="string"){if(r=this.getSchema(t),!r)throw new Error(`no schema with key or ref "${t}"`)}else r=this.compile(t);let i=r(n);return"$async"in r||(this.errors=r.errors),i}compile(t,n){let r=this._addSchema(t,n);return r.validate||this._compileSchemaEnv(r)}compileAsync(t,n){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,t,n);async function i(l,d){await s.call(this,l.$schema);let f=this._addSchema(l,d);return f.validate||o.call(this,f)}async function s(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof S6e.default))throw d;return a.call(this,d),await c.call(this,d.missingSchema),o.call(this,l)}}function a({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await s.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,n)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=r(l))}finally{delete this._loading[l]}}}addSchema(t,n,r,i=this.opts.validateSchema){if(Array.isArray(t)){for(let o of t)this.addSchema(o,void 0,r,i);return this}let s;if(typeof t=="object"){let{schemaId:o}=this.opts;if(s=t[o],s!==void 0&&typeof s!="string")throw new Error(`schema ${o} must be string`)}return n=(0,yC.normalizeId)(n||s),this._checkUnique(n),this.schemas[n]=this._addSchema(t,r,n,i,!0),this}addMetaSchema(t,n,r=this.opts.validateSchema){return this.addSchema(t,n,!0,r),this}validateSchema(t,n){if(typeof t=="boolean")return!0;let r;if(r=t.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(r,t);if(!i&&n){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return i}getSchema(t){let n;for(;typeof(n=y6e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new gC.SchemaEnv({schema:{},schemaId:r});if(n=gC.resolveSchema.call(this,i,t),!n)return;this.refs[t]=n}return n.validate||this._compileSchemaEnv(n)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let n=y6e.call(this,t);return typeof n=="object"&&this._cache.delete(n.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let n=t;this._cache.delete(n);let r=t[this.opts.schemaId];return r&&(r=(0,yC.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let n of t)this.addKeyword(n);return this}addKeyword(t,n){let r;if(typeof t=="string")r=t,typeof n=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),n.keyword=r);else if(typeof t=="object"&&n===void 0){if(n=t,r=n.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Iln.call(this,r,n),!n)return(0,hse.eachItem)(r,s=>pse.call(this,s)),this;Oln.call(this,n);let i={...n,type:(0,C2.getJSONTypes)(n.type),schemaType:(0,C2.getJSONTypes)(n.schemaType)};return(0,hse.eachItem)(r,i.type.length===0?s=>pse.call(this,s,i):s=>i.type.forEach(o=>pse.call(this,s,i,o))),this}getKeyword(t){let n=this.RULES.all[t];return typeof n=="object"?n.definition:!!n}removeKeyword(t){let{RULES:n}=this;delete n.keywords[t],delete n.all[t];for(let r of n.rules){let i=r.rules.findIndex(s=>s.keyword===t);i>=0&&r.rules.splice(i,1)}return this}addFormat(t,n){return typeof n=="string"&&(n=new RegExp(n)),this.formats[t]=n,this}errorsText(t=this.errors,{separator:n=", ",dataVar:r="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,s)=>i+n+s)}$dataMetaSchema(t,n){let r=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of n){let s=i.split("/").slice(1),o=t;for(let a of s)o=o[a];for(let a in r){let c=r[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[a];u&&l&&(o[a]=E6e(l))}}return t}_removeAllSchemas(t,n){for(let r in t){let i=t[r];(!n||n.test(r))&&(typeof i=="string"?delete t[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[r]))}}_addSchema(t,n,r,i=this.opts.validateSchema,s=this.opts.addUsedSchema){let o,{schemaId:a}=this.opts;if(typeof t=="object")o=t[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;r=(0,yC.normalizeId)(o||r);let u=yC.getSchemaRefs.call(this,t,r);return c=new gC.SchemaEnv({schema:t,schemaId:a,meta:n,baseId:r,localRefs:u}),this._cache.set(c.schema,c),s&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):gC.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let n=this.opts;this.opts=this._metaOpts;try{gC.compileSchema.call(this,t)}finally{this.opts=n}}};SC.ValidationError=fln.default;SC.MissingRefError=S6e.default;ya.default=SC;function g6e(e,t,n,r="error"){for(let i in e){let s=i;s in t&&this.logger[r](`${n}: option ${i}. ${e[s]}`)}}function y6e(e){return e=(0,yC.normalizeId)(e),this.schemas[e]||this.refs[e]}function bln(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function Tln(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function vln(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}function Aln(){let e={...this.opts};for(let t of gln)delete e[t];return e}var Rln={log(){},warn(){},error(){}};function wln(e){if(e===!1)return Rln;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var kln=/^[a-z_$][a-z0-9_$:-]*$/i;function Iln(e,t){let{RULES:n}=this;if((0,hse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!kln.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function pse(e,t,n){var r;let i=t?.post;if(n&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,o=i?s.post:s.rules.find(({type:c})=>c===n);if(o||(o={type:n,rules:[]},s.rules.push(o)),s.keywords[e]=!0,!t)return;let a={keyword:e,definition:{...t,type:(0,C2.getJSONTypes)(t.type),schemaType:(0,C2.getJSONTypes)(t.schemaType)}};t.before?xln.call(this,o,a,t.before):o.rules.push(a),s.all[e]=a,(r=t.implements)===null||r===void 0||r.forEach(c=>this.addKeyword(c))}function xln(e,t,n){let r=e.rules.findIndex(i=>i.keyword===n);r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function Oln(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=E6e(t)),e.validateSchema=this.compile(t,!0))}var Nln={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function E6e(e){return{anyOf:[e,Nln]}}});var b6e=w(gse=>{"use strict";Object.defineProperty(gse,"__esModule",{value:!0});var Pln={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};gse.default=Pln});var yse=w(Lb=>{"use strict";Object.defineProperty(Lb,"__esModule",{value:!0});Lb.callRef=Lb.getValidate=void 0;var Cln=Bm(),T6e=ga(),_u=kt(),Qw=pd(),v6e=Db(),M2=pn(),Mln={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:n,it:r}=e,{baseId:i,schemaEnv:s,validateName:o,opts:a,self:c}=r,{root:u}=s;if((n==="#"||n==="#/")&&i===u.baseId)return d();let l=v6e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Cln.default(r.opts.uriResolver,i,n);if(l instanceof v6e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return D2(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return D2(e,(0,_u._)`${h}.validate`,u,u.$async)}function f(h){let m=A6e(e,h);D2(e,m,h,h.$async)}function p(h){let m=t.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,_u.stringify)(h)}:{ref:h}),y=t.name("valid"),g=e.subschema({schema:h,dataTypes:[],schemaPath:_u.nil,topSchemaRef:m,errSchemaPath:n},y);e.mergeEvaluated(g),e.ok(y)}}};function A6e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,_u._)`${n.scopeValue("wrapper",{ref:t})}.validate`}Lb.getValidate=A6e;function D2(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?Qw.default.this:_u.nil;r?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=i.let("valid");i.try(()=>{i.code((0,_u._)`await ${(0,T6e.callValidateCode)(e,t,u)}`),p(t),o||i.assign(h,!0)},m=>{i.if((0,_u._)`!(${m} instanceof ${s.ValidationError})`,()=>i.throw(m)),f(m),o||i.assign(h,!1)}),e.ok(h)}function d(){e.result((0,T6e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,_u._)`${h}.errors`;i.assign(Qw.default.vErrors,(0,_u._)`${Qw.default.vErrors} === null ? ${m} : ${Qw.default.vErrors}.concat(${m})`),i.assign(Qw.default.errors,(0,_u._)`${Qw.default.vErrors}.length`)}function p(h){var m;if(!s.opts.unevaluated)return;let y=(m=n?.validate)===null||m===void 0?void 0:m.evaluated;if(s.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(s.props=M2.mergeEvaluated.props(i,y.props,s.props));else{let g=i.var("props",(0,_u._)`${h}.evaluated.props`);s.props=M2.mergeEvaluated.props(i,g,s.props,_u.Name)}if(s.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(s.items=M2.mergeEvaluated.items(i,y.items,s.items));else{let g=i.var("items",(0,_u._)`${h}.evaluated.items`);s.items=M2.mergeEvaluated.items(i,g,s.items,_u.Name)}}}Lb.callRef=D2;Lb.default=Mln});var R6e=w(Sse=>{"use strict";Object.defineProperty(Sse,"__esModule",{value:!0});var Dln=b6e(),Lln=yse(),Uln=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Dln.default,Lln.default];Sse.default=Uln});var w6e=w(_se=>{"use strict";Object.defineProperty(_se,"__esModule",{value:!0});var L2=kt(),CS=L2.operators,U2={maximum:{okStr:"<=",ok:CS.LTE,fail:CS.GT},minimum:{okStr:">=",ok:CS.GTE,fail:CS.LT},exclusiveMaximum:{okStr:"<",ok:CS.LT,fail:CS.GTE},exclusiveMinimum:{okStr:">",ok:CS.GT,fail:CS.LTE}},jln={message:({keyword:e,schemaCode:t})=>(0,L2.str)`must be ${U2[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,L2._)`{comparison: ${U2[e].okStr}, limit: ${t}}`},Fln={keyword:Object.keys(U2),type:"number",schemaType:"number",$data:!0,error:jln,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,L2._)`${n} ${U2[t].fail} ${r} || isNaN(${n})`)}};_se.default=Fln});var k6e=w(Ese=>{"use strict";Object.defineProperty(Ese,"__esModule",{value:!0});var _C=kt(),Hln={message:({schemaCode:e})=>(0,_C.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,_C._)`{multipleOf: ${e}}`},qln={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Hln,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,_C._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,_C._)`${o} !== parseInt(${o})`;e.fail$data((0,_C._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Ese.default=qln});var x6e=w(bse=>{"use strict";Object.defineProperty(bse,"__esModule",{value:!0});function I6e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Tse,"__esModule",{value:!0});var Ub=kt(),Bln=pn(),Gln=x6e(),zln={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,Ub.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,Ub._)`{limit: ${e}}`},Vln={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:zln,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?Ub.operators.GT:Ub.operators.LT,o=i.opts.unicode===!1?(0,Ub._)`${n}.length`:(0,Ub._)`${(0,Bln.useFunc)(e.gen,Gln.default)}(${n})`;e.fail$data((0,Ub._)`${o} ${s} ${r}`)}};Tse.default=Vln});var N6e=w(vse=>{"use strict";Object.defineProperty(vse,"__esModule",{value:!0});var Wln=ga(),Kln=pn(),$w=kt(),Zln={message:({schemaCode:e})=>(0,$w.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,$w._)`{pattern: ${e}}`},Yln={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Zln,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e,a=o.opts.unicodeRegExp?"u":"";if(r){let{regExp:c}=o.opts.code,u=c.code==="new RegExp"?(0,$w._)`new RegExp`:(0,Kln.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,$w._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,$w._)`!${l}`)}else{let c=(0,Wln.usePattern)(e,i);e.fail$data((0,$w._)`!${c}.test(${n})`)}}};vse.default=Yln});var P6e=w(Ase=>{"use strict";Object.defineProperty(Ase,"__esModule",{value:!0});var EC=kt(),Jln={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,EC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,EC._)`{limit: ${e}}`},Xln={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Jln,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?EC.operators.GT:EC.operators.LT;e.fail$data((0,EC._)`Object.keys(${n}).length ${i} ${r}`)}};Ase.default=Xln});var C6e=w(Rse=>{"use strict";Object.defineProperty(Rse,"__esModule",{value:!0});var bC=ga(),TC=kt(),Qln=pn(),$ln={message:({params:{missingProperty:e}})=>(0,TC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,TC._)`{missingProperty: ${e}}`},edn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:$ln,code(e){let{gen:t,schema:n,schemaCode:r,data:i,$data:s,it:o}=e,{opts:a}=o;if(!s&&n.length===0)return;let c=n.length>=a.loopRequired;if(o.allErrors?u():l(),a.strictRequired){let p=e.parentSchema.properties,{definedProperties:h}=e.it;for(let m of n)if(p?.[m]===void 0&&!h.has(m)){let y=o.schemaEnv.baseId+o.errSchemaPath,g=`required property "${m}" is not defined at "${y}" (strictRequired)`;(0,Qln.checkStrictMode)(o,g,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(TC.nil,d);else for(let p of n)(0,bC.checkReportMissingProp)(e,p)}function l(){let p=t.let("missing");if(c||s){let h=t.let("valid",!0);e.block$data(h,()=>f(p,h)),e.ok(h)}else t.if((0,bC.checkMissingProp)(e,n,p)),(0,bC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,bC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,bC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,TC.not)(h),()=>{e.error(),t.break()})},TC.nil)}}};Rse.default=edn});var M6e=w(wse=>{"use strict";Object.defineProperty(wse,"__esModule",{value:!0});var vC=kt(),tdn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,vC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,vC._)`{limit: ${e}}`},ndn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:tdn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?vC.operators.GT:vC.operators.LT;e.fail$data((0,vC._)`${n}.length ${i} ${r}`)}};wse.default=ndn});var AC=w(kse=>{"use strict";Object.defineProperty(kse,"__esModule",{value:!0});var D6e=lC();D6e.code='require("ajv/dist/runtime/equal").default';kse.default=D6e});var L6e=w(xse=>{"use strict";Object.defineProperty(xse,"__esModule",{value:!0});var Ise=uC(),Sa=kt(),rdn=pn(),idn=AC(),sdn={message:({params:{i:e,j:t}})=>(0,Sa.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Sa._)`{i: ${e}, j: ${t}}`},odn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:sdn,code(e){let{gen:t,data:n,$data:r,schema:i,parentSchema:s,schemaCode:o,it:a}=e;if(!r&&!i)return;let c=t.let("valid"),u=s.items?(0,Ise.getSchemaTypes)(s.items):[];e.block$data(c,l,(0,Sa._)`${o} === false`),e.ok(c);function l(){let h=t.let("i",(0,Sa._)`${n}.length`),m=t.let("j");e.setParams({i:h,j:m}),t.assign(c,!0),t.if((0,Sa._)`${h} > 1`,()=>(d()?f:p)(h,m))}function d(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function f(h,m){let y=t.name("item"),g=(0,Ise.checkDataTypes)(u,y,a.opts.strictNumbers,Ise.DataType.Wrong),E=t.const("indices",(0,Sa._)`{}`);t.for((0,Sa._)`;${h}--;`,()=>{t.let(y,(0,Sa._)`${n}[${h}]`),t.if(g,(0,Sa._)`continue`),u.length>1&&t.if((0,Sa._)`typeof ${y} == "string"`,(0,Sa._)`${y} += "_"`),t.if((0,Sa._)`typeof ${E}[${y}] == "number"`,()=>{t.assign(m,(0,Sa._)`${E}[${y}]`),e.error(),t.assign(c,!1).break()}).code((0,Sa._)`${E}[${y}] = ${h}`)})}function p(h,m){let y=(0,rdn.useFunc)(t,idn.default),g=t.name("outer");t.label(g).for((0,Sa._)`;${h}--;`,()=>t.for((0,Sa._)`${m} = ${h}; ${m}--;`,()=>t.if((0,Sa._)`${y}(${n}[${h}], ${n}[${m}])`,()=>{e.error(),t.assign(c,!1).break(g)})))}}};xse.default=odn});var U6e=w(Nse=>{"use strict";Object.defineProperty(Nse,"__esModule",{value:!0});var Ose=kt(),adn=pn(),cdn=AC(),udn={message:"must be equal to constant",params:({schemaCode:e})=>(0,Ose._)`{allowedValue: ${e}}`},ldn={keyword:"const",$data:!0,error:udn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,Ose._)`!${(0,adn.useFunc)(t,cdn.default)}(${n}, ${i})`):e.fail((0,Ose._)`${s} !== ${n}`)}};Nse.default=ldn});var j6e=w(Pse=>{"use strict";Object.defineProperty(Pse,"__esModule",{value:!0});var RC=kt(),ddn=pn(),fdn=AC(),pdn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,RC._)`{allowedValues: ${e}}`},hdn={keyword:"enum",schemaType:"array",$data:!0,error:pdn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let a=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,ddn.useFunc)(t,fdn.default)),l;if(a||r)l=t.let("valid"),e.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let p=t.const("vSchema",s);l=(0,RC.or)(...i.map((h,m)=>f(p,m)))}e.pass(l);function d(){t.assign(l,!1),t.forOf("v",s,p=>t.if((0,RC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,RC._)`${u()}(${n}, ${p}[${h}])`:(0,RC._)`${n} === ${m}`}}};Pse.default=hdn});var F6e=w(Cse=>{"use strict";Object.defineProperty(Cse,"__esModule",{value:!0});var mdn=w6e(),gdn=k6e(),ydn=O6e(),Sdn=N6e(),_dn=P6e(),Edn=C6e(),bdn=M6e(),Tdn=L6e(),vdn=U6e(),Adn=j6e(),Rdn=[mdn.default,gdn.default,ydn.default,Sdn.default,_dn.default,Edn.default,bdn.default,Tdn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},vdn.default,Adn.default];Cse.default=Rdn});var Dse=w(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.validateAdditionalItems=void 0;var jb=kt(),Mse=pn(),wdn={message:({params:{len:e}})=>(0,jb.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,jb._)`{limit: ${e}}`},kdn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:wdn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,Mse.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}H6e(e,r)}};function H6e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,jb._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,jb._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,Mse.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,jb._)`${a} <= ${t.length}`);n.if((0,jb.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:Mse.Type.Num},u),o.allErrors||n.if((0,jb.not)(u),()=>n.break())})}}wC.validateAdditionalItems=H6e;wC.default=kdn});var Lse=w(kC=>{"use strict";Object.defineProperty(kC,"__esModule",{value:!0});kC.validateTuple=void 0;var q6e=kt(),j2=pn(),Idn=ga(),xdn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return B6e(e,"additionalItems",t);n.items=!0,!(0,j2.alwaysValidSchema)(n,t)&&e.ok((0,Idn.validateArray)(e))}};function B6e(e,t,n=e.schema){let{gen:r,parentSchema:i,data:s,keyword:o,it:a}=e;l(i),a.opts.unevaluated&&n.length&&a.items!==!0&&(a.items=j2.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,q6e._)`${s}.length`);n.forEach((d,f)=>{(0,j2.alwaysValidSchema)(a,d)||(r.if((0,q6e._)`${u} > ${f}`,()=>e.subschema({keyword:o,schemaProp:f,dataProp:f},c)),e.ok(c))});function l(d){let{opts:f,errSchemaPath:p}=a,h=n.length,m=h===d.minItems&&(h===d.maxItems||d[t]===!1);if(f.strictTuples&&!m){let y=`"${o}" is ${h}-tuple, but minItems or maxItems/${t} are not specified or different at path "${p}"`;(0,j2.checkStrictMode)(a,y,f.strictTuples)}}}kC.validateTuple=B6e;kC.default=xdn});var G6e=w(Use=>{"use strict";Object.defineProperty(Use,"__esModule",{value:!0});var Odn=Lse(),Ndn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,Odn.validateTuple)(e,"items")};Use.default=Ndn});var V6e=w(jse=>{"use strict";Object.defineProperty(jse,"__esModule",{value:!0});var z6e=kt(),Pdn=pn(),Cdn=ga(),Mdn=Dse(),Ddn={message:({params:{len:e}})=>(0,z6e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,z6e._)`{limit: ${e}}`},Ldn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Ddn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Pdn.alwaysValidSchema)(r,t)&&(i?(0,Mdn.validateAdditionalItems)(e,i):e.ok((0,Cdn.validateArray)(e)))}};jse.default=Ldn});var W6e=w(Fse=>{"use strict";Object.defineProperty(Fse,"__esModule",{value:!0});var md=kt(),F2=pn(),Udn={message:({params:{min:e,max:t}})=>t===void 0?(0,md.str)`must contain at least ${e} valid item(s)`:(0,md.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,md._)`{minContains: ${e}}`:(0,md._)`{minContains: ${e}, maxContains: ${t}}`},jdn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Udn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e,o,a,{minContains:c,maxContains:u}=r;s.opts.next?(o=c===void 0?1:c,a=u):o=1;let l=t.const("len",(0,md._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,F2.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,F2.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,F2.alwaysValidSchema)(s,n)){let m=(0,md._)`${l} >= ${o}`;a!==void 0&&(m=(0,md._)`${m} && ${l} <= ${a}`),e.pass(m);return}s.items=!0;let d=t.name("valid");a===void 0&&o===1?p(d,()=>t.if(d,()=>t.break())):o===0?(t.let(d,!0),a!==void 0&&t.if((0,md._)`${i}.length > 0`,f)):(t.let(d,!1),f()),e.result(d,()=>e.reset());function f(){let m=t.name("_valid"),y=t.let("count",0);p(m,()=>t.if(m,()=>h(y)))}function p(m,y){t.forRange("i",0,l,g=>{e.subschema({keyword:"contains",dataProp:g,dataPropType:F2.Type.Num,compositeRule:!0},m),y()})}function h(m){t.code((0,md._)`${m}++`),a===void 0?t.if((0,md._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,md._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,md._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};Fse.default=jdn});var Y6e=w(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});uh.validateSchemaDeps=uh.validatePropertyDeps=uh.error=void 0;var Hse=kt(),Fdn=pn(),IC=ga();uh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,Hse.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,Hse._)`{property: ${e}, + || ${o} === "boolean" || ${i} === null`).assign(a,(0,hn._)`[${i}]`)}}}function Sun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function cse(e,t,n,r=Qw.Correct){let i=r===Qw.Correct?hn.operators.EQ:hn.operators.NEQ,s;switch(e){case"null":return(0,hn._)`${t} ${i} null`;case"array":s=(0,hn._)`Array.isArray(${t})`;break;case"object":s=(0,hn._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":s=o((0,hn._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":s=o();break;default:return(0,hn._)`typeof ${t} ${i} ${e}`}return r===Qw.Correct?s:(0,hn.not)(s);function o(a=hn.nil){return(0,hn.and)((0,hn._)`typeof ${t} == "number"`,a,n?(0,hn._)`isFinite(${t})`:hn.nil)}}sc.checkDataType=cse;function use(e,t,n,r){if(e.length===1)return cse(e[0],t,n,r);let i,s=(0,X5e.toHash)(e);if(s.array&&s.object){let o=(0,hn._)`typeof ${t} != "object"`;i=s.null?o:(0,hn._)`!${t} || ${o}`,delete s.null,delete s.array,delete s.object}else i=hn.nil;s.number&&delete s.integer;for(let o in s)i=(0,hn.and)(i,cse(o,t,n,r));return i}sc.checkDataTypes=use;var Eun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function lse(e){let t=_un(e);(0,pun.reportError)(t,Eun)}sc.reportTypeError=lse;function _un(e){let{gen:t,data:n,schema:r}=e,i=(0,X5e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var tZe=w(UV=>{"use strict";Object.defineProperty(UV,"__esModule",{value:!0});UV.assignDefaults=void 0;var $w=Ot(),bun=pn();function Tun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)eZe(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>eZe(e,s,i.default))}UV.assignDefaults=Tun;function eZe(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,$w._)`${s}${(0,$w.getProperty)(t)}`;if(i){(0,bun.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,$w._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,$w._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,$w._)`${a} = ${(0,$w.stringify)(n)}`)}});var Sa=w(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});Fr.validateUnion=Fr.validateArray=Fr.usePattern=Fr.callValidateCode=Fr.schemaProperties=Fr.allSchemaProperties=Fr.noPropertyInData=Fr.propertyInData=Fr.isOwnProperty=Fr.hasPropFunc=Fr.reportMissingProp=Fr.checkMissingProp=Fr.checkReportMissingProp=void 0;var gi=Ot(),dse=pn(),CS=gd(),vun=pn();function Aun(e,t){let{gen:n,data:r,it:i}=e;n.if(pse(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=Aun;function Run({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(pse(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=Run;function wun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=wun;function nZe(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=nZe;function fse(e,t,n){return(0,gi._)`${nZe(e)}.call(${t}, ${n})`}Fr.isOwnProperty=fse;function kun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${fse(e,t,n)}`:i}Fr.propertyInData=kun;function pse(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(fse(e,t,n))):i}Fr.noPropertyInData=pse;function rZe(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=rZe;function Iun(e,t){return rZe(t).filter(n=>!(0,dse.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Iun;function xun({schemaCode:e,data:t,it:{gen:n,topSchemaRef:r,schemaPath:i,errorPath:s},it:o},a,c,u){let l=u?(0,gi._)`${e}, ${t}, ${r}${i}`:t,d=[[CS.default.instancePath,(0,gi.strConcat)(CS.default.instancePath,s)],[CS.default.parentData,o.parentData],[CS.default.parentDataProperty,o.parentDataProperty],[CS.default.rootData,CS.default.rootData]];o.opts.dynamicRef&&d.push([CS.default.dynamicAnchors,CS.default.dynamicAnchors]);let f=(0,gi._)`${l}, ${n.object(...d)}`;return c!==gi.nil?(0,gi._)`${a}.call(${c}, ${f})`:(0,gi._)`${a}(${f})`}Fr.callValidateCode=xun;var Oun=(0,gi._)`new RegExp`;function Pun({gen:e,it:{opts:t}},n){let r=t.unicodeRegExp?"u":"",{regExp:i}=t.code,s=i(n,r);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,gi._)`${i.code==="new RegExp"?Oun:(0,vun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=Pun;function Nun(e){let{gen:t,data:n,keyword:r,it:i}=e,s=t.name("valid");if(i.allErrors){let a=t.let("valid",!0);return o(()=>t.assign(a,!1)),a}return t.var(s,!0),o(()=>t.break()),s;function o(a){let c=t.const("len",(0,gi._)`${n}.length`);t.forRange("i",0,c,u=>{e.subschema({keyword:r,dataProp:u,dataPropType:dse.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Nun;function Cun(e){let{gen:t,schema:n,keyword:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(c=>(0,dse.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=t.let("valid",!1),a=t.name("_valid");t.block(()=>n.forEach((c,u)=>{let l=e.subschema({keyword:r,schemaProp:u,compositeRule:!0},a);t.assign(o,(0,gi._)`${o} || ${a}`),e.mergeValidEvaluated(l,a)||t.if((0,gi.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}Fr.validateUnion=Cun});var oZe=w(dh=>{"use strict";Object.defineProperty(dh,"__esModule",{value:!0});dh.validateKeywordUsage=dh.validSchemaType=dh.funcKeywordCode=dh.macroKeywordCode=void 0;var Gc=Ot(),Ub=gd(),Mun=Sa(),Dun=gC();function Lun(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=sZe(n,r,a);o.opts.validateSchema!==!1&&o.self.validateSchema(a,!0);let u=n.name("valid");e.subschema({schema:a,schemaPath:Gc.nil,errSchemaPath:`${o.errSchemaPath}/${r}`,topSchemaRef:c,compositeRule:!0},u),e.pass(u,()=>e.error(!0))}dh.macroKeywordCode=Lun;function Uun(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;jun(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=sZe(r,i,u),d=r.let("valid");e.block$data(d,f),e.ok((n=t.valid)!==null&&n!==void 0?n:d);function f(){if(t.errors===!1)m(),t.modifying&&iZe(e),g(()=>e.error());else{let y=t.async?p():h();t.modifying&&iZe(e),g(()=>Fun(e,y))}}function p(){let y=r.let("ruleErrs",null);return r.try(()=>m((0,Gc._)`await `),E=>r.assign(d,!1).if((0,Gc._)`${E} instanceof ${c.ValidationError}`,()=>r.assign(y,(0,Gc._)`${E}.errors`),()=>r.throw(E))),y}function h(){let y=(0,Gc._)`${l}.errors`;return r.assign(y,null),m(Gc.nil),y}function m(y=t.async?(0,Gc._)`await `:Gc.nil){let E=c.opts.passContext?Ub.default.this:Ub.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${y}${(0,Mun.callValidateCode)(e,l,E,S)}`,t.modifying)}function g(y){var E;r.if((0,Gc.not)((E=t.valid)!==null&&E!==void 0?E:d),y)}}dh.funcKeywordCode=Uun;function iZe(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function Fun(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(Ub.default.vErrors,(0,Gc._)`${Ub.default.vErrors} === null ? ${t} : ${Ub.default.vErrors}.concat(${t})`).assign(Ub.default.errors,(0,Gc._)`${Ub.default.vErrors}.length`),(0,Dun.extendErrors)(e)},()=>e.error())}function jun({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function sZe(e,t,n){if(n===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof n=="function"?{ref:n}:{ref:n,code:(0,Gc.stringify)(n)})}function Hun(e,t,n=!1){return!t.length||t.some(r=>r==="array"?Array.isArray(e):r==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==r||n&&typeof e>"u")}dh.validSchemaType=Hun;function qun({schema:e,opts:t,self:n,errSchemaPath:r},i,s){if(Array.isArray(i.keyword)?!i.keyword.includes(s):i.keyword!==s)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(a=>!Object.prototype.hasOwnProperty.call(e,a)))throw new Error(`parent schema must have dependencies of ${s}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[s])){let c=`keyword "${s}" value is invalid at path "${r}": `+n.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")n.logger.error(c);else throw new Error(c)}}dh.validateKeywordUsage=qun});var cZe=w(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});MS.extendSubschemaMode=MS.extendSubschemaData=MS.getSubschema=void 0;var fh=Ot(),aZe=pn();function Bun(e,{keyword:t,schemaProp:n,schema:r,schemaPath:i,errSchemaPath:s,topSchemaRef:o}){if(t!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let a=e.schema[t];return n===void 0?{schema:a,schemaPath:(0,fh._)`${e.schemaPath}${(0,fh.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:a[n],schemaPath:(0,fh._)`${e.schemaPath}${(0,fh.getProperty)(t)}${(0,fh.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,aZe.escapeFragment)(n)}`}}if(r!==void 0){if(i===void 0||s===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:r,schemaPath:i,topSchemaRef:o,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}MS.getSubschema=Bun;function Gun(e,t,{dataProp:n,dataPropType:r,data:i,dataTypes:s,propertyName:o}){if(i!==void 0&&n!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=t;if(n!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=t,f=a.let("data",(0,fh._)`${t.data}${(0,fh.getProperty)(n)}`,!0);c(f),e.errorPath=(0,fh.str)`${u}${(0,aZe.getErrorPath)(n,r,d.jsPropertySyntax)}`,e.parentDataProperty=(0,fh._)`${n}`,e.dataPathArr=[...l,e.parentDataProperty]}if(i!==void 0){let u=i instanceof fh.Name?i:a.let("data",i,!0);c(u),o!==void 0&&(e.propertyName=o)}s&&(e.dataTypes=s);function c(u){e.data=u,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,u]}}MS.extendSubschemaData=Gun;function zun(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:i,allErrors:s}){r!==void 0&&(e.compositeRule=r),i!==void 0&&(e.createErrors=i),s!==void 0&&(e.allErrors=s),e.jtdDiscriminator=t,e.jtdMetadata=n}MS.extendSubschemaMode=zun});var SC=w((YVr,uZe)=>{"use strict";uZe.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(s=Object.keys(t),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}});var dZe=w((ZVr,lZe)=>{"use strict";var DS=lZe.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),n=t.cb||n;var r=typeof n=="function"?n:n.pre||function(){},i=n.post||function(){};FV(t,r,i,e,"",e)};DS.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};DS.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};DS.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};DS.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function FV(e,t,n,r,i,s,o,a,c,u){if(r&&typeof r=="object"&&!Array.isArray(r)){t(r,i,s,o,a,c,u);for(var l in r){var d=r[l];if(Array.isArray(d)){if(l in DS.arrayKeywords)for(var f=0;f{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.getSchemaRefs=Au.resolveUrl=Au.normalizeId=Au._getFullPath=Au.getFullPath=Au.inlineRef=void 0;var Wun=pn(),Kun=SC(),Yun=dZe(),Zun=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Jun(e,t=!0){return typeof e=="boolean"?!0:t===!0?!hse(e):t?fZe(e)<=t:!1}Au.inlineRef=Jun;var Xun=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function hse(e){for(let t in e){if(Xun.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(hse)||typeof n=="object"&&hse(n))return!0}return!1}function fZe(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!Zun.has(n)&&(typeof e[n]=="object"&&(0,Wun.eachItem)(e[n],r=>t+=fZe(r)),t===1/0))return 1/0}return t}function pZe(e,t="",n){n!==!1&&(t=ek(t));let r=e.parse(t);return hZe(e,r)}Au.getFullPath=pZe;function hZe(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=hZe;var Qun=/#\/?$/;function ek(e){return e?e.replace(Qun,""):""}Au.normalizeId=ek;function $un(e,t,n){return n=ek(n),e.resolve(t,n)}Au.resolveUrl=$un;var eln=/^[a-z_][-a-z0-9._]*$/i;function tln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=ek(e[n]||t),s={"":i},o=pZe(r,i,!1),a={},c=new Set;return Yun(e,{allKeys:!0},(d,f,p,h)=>{if(h===void 0)return;let m=o+f,g=s[h];typeof d[n]=="string"&&(g=y.call(this,d[n])),E.call(this,d.$anchor),E.call(this,d.$dynamicAnchor),s[f]=g;function y(S){let _=this.opts.uriResolver.resolve;if(S=ek(g?_(g,S):S),c.has(S))throw l(S);c.add(S);let b=this.refs[S];return typeof b=="string"&&(b=this.refs[b]),typeof b=="object"?u(d,b.schema,S):S!==ek(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function E(S){if(typeof S=="string"){if(!eln.test(S))throw new Error(`invalid anchor "${S}"`);y.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!Kun(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=tln});var tk=w(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.getData=LS.KeywordCxt=LS.validateFunctionCode=void 0;var EZe=Y5e(),mZe=yC(),gse=ase(),jV=yC(),nln=tZe(),bC=oZe(),mse=cZe(),pt=Ot(),Xt=gd(),rln=EC(),Wm=pn(),_C=gC();function iln(e){if(TZe(e)&&(vZe(e),bZe(e))){aln(e);return}_Ze(e,()=>(0,EZe.topBoolOrEmptySchema)(e))}LS.validateFunctionCode=iln;function _Ze({gen:e,validateName:t,schema:n,schemaEnv:r,opts:i},s){i.code.es5?e.func(t,(0,pt._)`${Xt.default.data}, ${Xt.default.valCxt}`,r.$async,()=>{e.code((0,pt._)`"use strict"; ${gZe(n,i)}`),oln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${sln(i)}`,r.$async,()=>e.code(gZe(n,i)).code(s))}function sln(e){return(0,pt._)`{${Xt.default.instancePath}="", ${Xt.default.parentData}, ${Xt.default.parentDataProperty}, ${Xt.default.rootData}=${Xt.default.data}${e.dynamicRef?(0,pt._)`, ${Xt.default.dynamicAnchors}={}`:pt.nil}}={}`}function oln(e,t){e.if(Xt.default.valCxt,()=>{e.var(Xt.default.instancePath,(0,pt._)`${Xt.default.valCxt}.${Xt.default.instancePath}`),e.var(Xt.default.parentData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentData}`),e.var(Xt.default.parentDataProperty,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentDataProperty}`),e.var(Xt.default.rootData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.rootData}`),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`${Xt.default.valCxt}.${Xt.default.dynamicAnchors}`)},()=>{e.var(Xt.default.instancePath,(0,pt._)`""`),e.var(Xt.default.parentData,(0,pt._)`undefined`),e.var(Xt.default.parentDataProperty,(0,pt._)`undefined`),e.var(Xt.default.rootData,Xt.default.data),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`{}`)})}function aln(e){let{schema:t,opts:n,gen:r}=e;_Ze(e,()=>{n.$comment&&t.$comment&&RZe(e),fln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&cln(e),AZe(e),mln(e)})}function cln(e){let{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",(0,pt._)`${n}.evaluated`),t.if((0,pt._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,pt._)`${e.evaluated}.props`,(0,pt._)`undefined`)),t.if((0,pt._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,pt._)`${e.evaluated}.items`,(0,pt._)`undefined`))}function gZe(e,t){let n=typeof e=="object"&&e[t.schemaId];return n&&(t.code.source||t.code.process)?(0,pt._)`/*# sourceURL=${n} */`:pt.nil}function uln(e,t){if(TZe(e)&&(vZe(e),bZe(e))){lln(e,t);return}(0,EZe.boolOrEmptySchema)(e,t)}function bZe({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let n in e)if(t.RULES.all[n])return!0;return!1}function TZe(e){return typeof e.schema!="boolean"}function lln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&RZe(e),pln(e),hln(e);let s=r.const("_errs",Xt.default.errors);AZe(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function vZe(e){(0,Wm.checkUnknownRules)(e),dln(e)}function AZe(e,t){if(e.opts.jtd)return yZe(e,[],!1,t);let n=(0,mZe.getSchemaTypes)(e.schema),r=(0,mZe.coerceAndCheckDataType)(e,n);yZe(e,n,!r,t)}function dln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Wm.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function fln(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,Wm.checkStrictMode)(e,"default is ignored in the schema root")}function pln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,rln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function hln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function RZe({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:i}){let s=n.$comment;if(i.$comment===!0)e.code((0,pt._)`${Xt.default.self}.logger.log(${s})`);else if(typeof i.$comment=="function"){let o=(0,pt.str)`${r}/$comment`,a=e.scopeValue("root",{ref:t.root});e.code((0,pt._)`${Xt.default.self}.opts.$comment(${s}, ${o}, ${a}.schema)`)}}function mln(e){let{gen:t,schemaEnv:n,validateName:r,ValidationError:i,opts:s}=e;n.$async?t.if((0,pt._)`${Xt.default.errors} === 0`,()=>t.return(Xt.default.data),()=>t.throw((0,pt._)`new ${i}(${Xt.default.vErrors})`)):(t.assign((0,pt._)`${r}.errors`,Xt.default.vErrors),s.unevaluated&&gln(e),t.return((0,pt._)`${Xt.default.errors} === 0`))}function gln({gen:e,evaluated:t,props:n,items:r}){n instanceof pt.Name&&e.assign((0,pt._)`${t}.props`,n),r instanceof pt.Name&&e.assign((0,pt._)`${t}.items`,r)}function yZe(e,t,n,r){let{gen:i,schema:s,data:o,allErrors:a,opts:c,self:u}=e,{RULES:l}=u;if(s.$ref&&(c.ignoreKeywordsWithRef||!(0,Wm.schemaHasRulesButRef)(s,l))){i.block(()=>kZe(e,"$ref",l.all.$ref.definition));return}c.jtd||yln(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,gse.shouldUseGroup)(s,f)&&(f.type?(i.if((0,jV.checkDataType)(f.type,o,c.strictNumbers)),SZe(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,jV.reportTypeError)(e)),i.endIf()):SZe(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function SZe(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,nln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,gse.shouldUseRule)(r,s)&&kZe(e,s.keyword,s.definition,t.type)})}function yln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Sln(e,t),e.opts.allowUnionTypes||Eln(e,t),_ln(e,e.dataTypes))}function Sln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{wZe(e.dataTypes,n)||yse(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),Tln(e,t)}}function Eln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&yse(e,"use allowUnionTypes to allow union type keyword")}function _ln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,gse.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>bln(t,o))&&yse(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function bln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function wZe(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Tln(e,t){let n=[];for(let r of e.dataTypes)wZe(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function yse(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Wm.checkStrictMode)(e,t,e.opts.strictTypes)}var HV=class{constructor(t,n,r){if((0,bC.validateKeywordUsage)(t,n,r),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=r,this.data=t.data,this.schema=t.schema[r],this.$data=n.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Wm.schemaRefOrVal)(t,this.schema,r,this.$data),this.schemaType=n.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=n,this.$data)this.schemaCode=t.gen.const("vSchema",IZe(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,bC.validSchemaType)(this.schema,n.schemaType,n.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(n.schemaType)}`);("code"in n?n.trackErrors:n.errors!==!1)&&(this.errsCount=t.gen.const("_errs",Xt.default.errors))}result(t,n,r){this.failResult((0,pt.not)(t),n,r)}failResult(t,n,r){this.gen.if(t),r?r():this.error(),n?(this.gen.else(),n(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,n){this.failResult((0,pt.not)(t),void 0,n)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:n}=this;this.fail((0,pt._)`${n} !== undefined && (${(0,pt.or)(this.invalid$data(),t)})`)}error(t,n,r){if(n){this.setParams(n),this._error(t,r),this.setParams({});return}this._error(t,r)}_error(t,n){(t?_C.reportExtraError:_C.reportError)(this,this.def.error,n)}$dataError(){(0,_C.reportError)(this,this.def.$dataError||_C.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,_C.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,n){n?Object.assign(this.params,t):this.params=t}block$data(t,n,r=pt.nil){this.gen.block(()=>{this.check$data(t,r),n()})}check$data(t=pt.nil,n=pt.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:s,def:o}=this;r.if((0,pt.or)((0,pt._)`${i} === undefined`,n)),t!==pt.nil&&r.assign(t,!0),(s.length||o.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),t!==pt.nil&&r.assign(t,!1)),r.else()}invalid$data(){let{gen:t,schemaCode:n,schemaType:r,def:i,it:s}=this;return(0,pt.or)(o(),a());function o(){if(r.length){if(!(n instanceof pt.Name))throw new Error("ajv implementation error");let c=Array.isArray(r)?r:[r];return(0,pt._)`${(0,jV.checkDataTypes)(c,n,s.opts.strictNumbers,jV.DataType.Wrong)}`}return pt.nil}function a(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,pt._)`!${c}(${n})`}return pt.nil}}subschema(t,n){let r=(0,mse.getSubschema)(this.it,t);(0,mse.extendSubschemaData)(r,this.it,t),(0,mse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return uln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Wm.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Wm.mergeEvaluated.items(i,t.items,r.items,n)))}mergeValidEvaluated(t,n){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==!0||r.items!==!0))return i.if(n,()=>this.mergeEvaluated(t,pt.Name)),!0}};LS.KeywordCxt=HV;function kZe(e,t,n,r){let i=new HV(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,bC.funcKeywordCode)(i,n):"macro"in n?(0,bC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,bC.funcKeywordCode)(i,n)}var vln=/^\/(?:[^~]|~0|~1)*$/,Aln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function IZe(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!vln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=Aln.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+u[1];if(i=u[2],i==="#"){if(l>=t)throw new Error(c("property/index",l));return r[t-l]}if(l>t)throw new Error(c("data",l));if(s=n[t-l],!i)return s}let o=s,a=i.split("/");for(let u of a)u&&(s=(0,pt._)`${s}${(0,pt.getProperty)((0,Wm.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}LS.getData=IZe});var TC=w(Ese=>{"use strict";Object.defineProperty(Ese,"__esModule",{value:!0});var Sse=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Ese.default=Sse});var Km=w(Tse=>{"use strict";Object.defineProperty(Tse,"__esModule",{value:!0});var _se=EC(),bse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,_se.resolveUrl)(t,n,r),this.missingSchema=(0,_se.normalizeId)((0,_se.getFullPath)(t,this.missingRef))}};Tse.default=bse});var jb=w(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.resolveSchema=yd.getCompilingSchema=yd.resolveRef=yd.compileSchema=yd.SchemaEnv=void 0;var vf=Ot(),Rln=TC(),Fb=gd(),Af=EC(),xZe=pn(),wln=tk(),nk=class{constructor(t){var n;this.refs={},this.dynamicAnchors={};let r;typeof t.schema=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,Af.normalizeId)(r?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r?.$async,this.refs={}}};yd.SchemaEnv=nk;function Ase(e){let t=OZe.call(this,e);if(t)return t;let n=(0,Af.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new vf.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a;e.$async&&(a=o.scopeValue("Error",{ref:Rln.default,code:(0,vf._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:Fb.default.data,parentData:Fb.default.parentData,parentDataProperty:Fb.default.parentDataProperty,dataNames:[Fb.default.data],dataPathArr:[vf.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,vf.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:vf.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,vf._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,wln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(Fb.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${Fb.default.self}`,`${Fb.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=e.schema,p.schemaEnv=e,e.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:d,scopeValues:o._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof vf.Name?void 0:h,items:m instanceof vf.Name?void 0:m,dynamicProps:h instanceof vf.Name,dynamicItems:m instanceof vf.Name},p.source&&(p.source.evaluated=(0,vf.stringify)(p.evaluated))}return e.validate=p,e}catch(d){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(e)}}yd.compileSchema=Ase;function kln(e,t,n){var r;n=(0,Af.resolveUrl)(this.opts.uriResolver,t,n);let i=e.refs[n];if(i)return i;let s=Oln.call(this,e,n);if(s===void 0){let o=(r=e.localRefs)===null||r===void 0?void 0:r[n],{schemaId:a}=this.opts;o&&(s=new nk({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Iln.call(this,s)}yd.resolveRef=kln;function Iln(e){return(0,Af.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Ase.call(this,e)}function OZe(e){for(let t of this._compilations)if(xln(t,e))return t}yd.getCompilingSchema=OZe;function xln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Oln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||qV.call(this,e,t)}function qV(e,t){let n=this.opts.uriResolver.parse(t),r=(0,Af._getFullPath)(this.opts.uriResolver,n),i=(0,Af.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===i)return vse.call(this,n,e);let s=(0,Af.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=qV.call(this,e,o);return typeof a?.schema!="object"?void 0:vse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||Ase.call(this,o),s===(0,Af.normalizeId)(t)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(i=(0,Af.resolveUrl)(this.opts.uriResolver,i,u)),new nk({schema:a,schemaId:c,root:e,baseId:i})}return vse.call(this,n,o)}}yd.resolveSchema=qV;var Pln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function vse(e,{baseId:t,schema:n,root:r}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let a of e.fragment.slice(1).split("/")){if(typeof n=="boolean")return;let c=n[(0,xZe.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!Pln.has(a)&&u&&(t=(0,Af.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,xZe.schemaHasRulesButRef)(n,this.RULES)){let a=(0,Af.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=qV.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new nk({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var PZe=w((t2r,Nln)=>{Nln.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var wse=w((n2r,DZe)=>{"use strict";var Cln=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),CZe=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function Rse(e){let t="",n=0,r=0;for(r=0;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r];break}for(r+=1;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r]}return t}var Mln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function NZe(e){return e.length=0,!0}function Dln(e,t,n){if(e.length){let r=Rse(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function Lln(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=Dln;for(let c=0;c7){n.error=!0;break}c>0&&e[c-1]===":"&&(s=!0),r.push(":");continue}else if(u==="%"){if(!a(i,r,n))break;a=NZe}else{i.push(u);continue}}return i.length&&(a===NZe?n.zone=i.join(""):o?r.push(i.join("")):r.push(Rse(i))),n.address=r.join(""),n}function MZe(e){if(Uln(e,":")<2)return{host:e,isIPV6:!1};let t=Lln(e);if(t.error)return{host:e,isIPV6:!1};{let n=t.address,r=t.address;return t.zone&&(n+="%"+t.zone,r+="%25"+t.zone),{host:n,isIPV6:!0,escapedHost:r}}}function Uln(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:qln}=wse(),Bln=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,Gln=["http","https","ws","wss","urn","urn:uuid"];function zln(e){return Gln.indexOf(e)!==-1}function kse(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function LZe(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function UZe(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function Vln(e){return e.secure=kse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Wln(e){if((e.port===(kse(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,n]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}function Kln(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(Bln);if(n){let r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];let i=`${r}:${t.nid||e.nid}`,s=Ise(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Yln(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let n=t.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),i=`${n}:${t.nid||r}`,s=Ise(i);s&&(e=s.serialize(e,t));let o=e,a=e.nss;return o.path=`${r||t.nid}:${a}`,t.skipEscape=!0,o}function Zln(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!qln(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function Jln(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var FZe={scheme:"http",domainHost:!0,parse:LZe,serialize:UZe},Xln={scheme:"https",domainHost:FZe.domainHost,parse:LZe,serialize:UZe},BV={scheme:"ws",domainHost:!0,parse:Vln,serialize:Wln},Qln={scheme:"wss",domainHost:BV.domainHost,parse:BV.parse,serialize:BV.serialize},$ln={scheme:"urn",parse:Kln,serialize:Yln,skipNormalize:!0},edn={scheme:"urn:uuid",parse:Zln,serialize:Jln,skipNormalize:!0},GV={http:FZe,https:Xln,ws:BV,wss:Qln,urn:$ln,"urn:uuid":edn};Object.setPrototypeOf(GV,null);function Ise(e){return e&&(GV[e]||GV[e.toLowerCase()])||void 0}jZe.exports={wsIsSecure:kse,SCHEMES:GV,isValidSchemeName:zln,getSchemeHandler:Ise}});var WV=w((i2r,VV)=>{"use strict";var{normalizeIPv6:tdn,removeDotSegments:vC,recomposeAuthority:ndn,normalizeComponentEncoding:zV,isIPv4:rdn,nonSimpleDomain:idn}=wse(),{SCHEMES:sdn,getSchemeHandler:qZe}=HZe();function odn(e,t){return typeof e=="string"?e=ph(Ym(e,t),t):typeof e=="object"&&(e=Ym(ph(e,t),t)),e}function adn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=BZe(Ym(e,r),Ym(t,r),r,!0);return r.skipEscape=!0,ph(i,r)}function BZe(e,t,n,r){let i={};return r||(e=Ym(ph(e,n),n),t=Ym(ph(t,n),n)),n=n||{},!n.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=vC(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=vC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=vC(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=vC(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function cdn(e,t,n){return typeof e=="string"?(e=unescape(e),e=ph(zV(Ym(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=ph(zV(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=ph(zV(Ym(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=ph(zV(t,!0),{...n,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function ph(e,t){let n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},t),i=[],s=qZe(r.scheme||n.scheme);s&&s.serialize&&s.serialize(n,r),n.path!==void 0&&(r.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),n.scheme!==void 0&&(n.path=n.path.split("%3A").join(":")))),r.reference!=="suffix"&&n.scheme&&i.push(n.scheme,":");let o=ndn(n);if(o!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(o),n.path&&n.path[0]!=="/"&&i.push("/")),n.path!==void 0){let a=n.path;!r.absolutePath&&(!s||!s.absolutePath)&&(a=vC(a)),o===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),i.push(a)}return n.query!==void 0&&i.push("?",n.query),n.fragment!==void 0&&i.push("#",n.fragment),i.join("")}var udn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Ym(e,t){let n=Object.assign({},t),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1;n.reference==="suffix"&&(n.scheme?e=n.scheme+":"+e:e="//"+e);let s=e.match(udn);if(s){if(r.scheme=s[1],r.userinfo=s[3],r.host=s[4],r.port=parseInt(s[5],10),r.path=s[6]||"",r.query=s[7],r.fragment=s[8],isNaN(r.port)&&(r.port=s[5]),r.host)if(rdn(r.host)===!1){let c=tdn(r.host);r.host=c.host.toLowerCase(),i=c.isIPV6}else i=!0;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",n.reference&&n.reference!=="suffix"&&n.reference!==r.reference&&(r.error=r.error||"URI is not a "+n.reference+" reference.");let o=qZe(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&idn(r.host))try{r.host=URL.domainToASCII(r.host.toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to ASCII: "+a}(!o||o&&!o.skipNormalize)&&(e.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=unescape(r.host))),r.path&&(r.path=escape(unescape(r.path))),r.fragment&&(r.fragment=encodeURI(decodeURIComponent(r.fragment)))),o&&o.parse&&o.parse(r,n)}else r.error=r.error||"URI can not be parsed.";return r}var xse={SCHEMES:sdn,normalize:odn,resolve:adn,resolveComponent:BZe,equal:cdn,serialize:ph,parse:Ym};VV.exports=xse;VV.exports.default=xse;VV.exports.fastUri=xse});var zZe=w(Ose=>{"use strict";Object.defineProperty(Ose,"__esModule",{value:!0});var GZe=WV();GZe.code='require("ajv/dist/runtime/uri").default';Ose.default=GZe});var Cse=w(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.CodeGen=Ea.Name=Ea.nil=Ea.stringify=Ea.str=Ea._=Ea.KeywordCxt=void 0;var ldn=tk();Object.defineProperty(Ea,"KeywordCxt",{enumerable:!0,get:function(){return ldn.KeywordCxt}});var rk=Ot();Object.defineProperty(Ea,"_",{enumerable:!0,get:function(){return rk._}});Object.defineProperty(Ea,"str",{enumerable:!0,get:function(){return rk.str}});Object.defineProperty(Ea,"stringify",{enumerable:!0,get:function(){return rk.stringify}});Object.defineProperty(Ea,"nil",{enumerable:!0,get:function(){return rk.nil}});Object.defineProperty(Ea,"Name",{enumerable:!0,get:function(){return rk.Name}});Object.defineProperty(Ea,"CodeGen",{enumerable:!0,get:function(){return rk.CodeGen}});var ddn=TC(),ZZe=Km(),fdn=ose(),AC=jb(),pdn=Ot(),RC=EC(),KV=yC(),Nse=pn(),VZe=PZe(),hdn=zZe(),JZe=(e,t)=>new RegExp(e,t);JZe.code="new RegExp";var mdn=["removeAdditional","useDefaults","coerceTypes"],gdn=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),ydn={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Sdn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},WZe=200;function Edn(e){var t,n,r,i,s,o,a,c,u,l,d,f,p,h,m,g,y,E,S,_,b,T,A,R,x;let k=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,N=P===!0||P===void 0?1:P||0,C=(r=(n=e.code)===null||n===void 0?void 0:n.regExp)!==null&&r!==void 0?r:JZe,F=(i=e.uriResolver)!==null&&i!==void 0?i:hdn.default;return{strictSchema:(o=(s=e.strictSchema)!==null&&s!==void 0?s:k)!==null&&o!==void 0?o:!0,strictNumbers:(c=(a=e.strictNumbers)!==null&&a!==void 0?a:k)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=e.strictTypes)!==null&&u!==void 0?u:k)!==null&&l!==void 0?l:"log",strictTuples:(f=(d=e.strictTuples)!==null&&d!==void 0?d:k)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=e.strictRequired)!==null&&p!==void 0?p:k)!==null&&h!==void 0?h:!1,code:e.code?{...e.code,optimize:N,regExp:C}:{optimize:N,regExp:C},loopRequired:(m=e.loopRequired)!==null&&m!==void 0?m:WZe,loopEnum:(g=e.loopEnum)!==null&&g!==void 0?g:WZe,meta:(y=e.meta)!==null&&y!==void 0?y:!0,messages:(E=e.messages)!==null&&E!==void 0?E:!0,inlineRefs:(S=e.inlineRefs)!==null&&S!==void 0?S:!0,schemaId:(_=e.schemaId)!==null&&_!==void 0?_:"$id",addUsedSchema:(b=e.addUsedSchema)!==null&&b!==void 0?b:!0,validateSchema:(T=e.validateSchema)!==null&&T!==void 0?T:!0,validateFormats:(A=e.validateFormats)!==null&&A!==void 0?A:!0,unicodeRegExp:(R=e.unicodeRegExp)!==null&&R!==void 0?R:!0,int32range:(x=e.int32range)!==null&&x!==void 0?x:!0,uriResolver:F}}var wC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Edn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new pdn.ValueScope({scope:{},prefixes:gdn,es5:n,lines:r}),this.logger=Rdn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,fdn.getRules)(),KZe.call(this,ydn,t,"NOT SUPPORTED"),KZe.call(this,Sdn,t,"DEPRECATED","warn"),this._metaOpts=vdn.call(this),t.formats&&bdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Tdn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),_dn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=VZe;r==="id"&&(i={...VZe},i.id=i.$id,delete i.$id),n&&t&&this.addMetaSchema(i,i[r],!1)}defaultMeta(){let{meta:t,schemaId:n}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[n]||t:void 0}validate(t,n){let r;if(typeof t=="string"){if(r=this.getSchema(t),!r)throw new Error(`no schema with key or ref "${t}"`)}else r=this.compile(t);let i=r(n);return"$async"in r||(this.errors=r.errors),i}compile(t,n){let r=this._addSchema(t,n);return r.validate||this._compileSchemaEnv(r)}compileAsync(t,n){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,t,n);async function i(l,d){await s.call(this,l.$schema);let f=this._addSchema(l,d);return f.validate||o.call(this,f)}async function s(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof ZZe.default))throw d;return a.call(this,d),await c.call(this,d.missingSchema),o.call(this,l)}}function a({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await s.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,n)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=r(l))}finally{delete this._loading[l]}}}addSchema(t,n,r,i=this.opts.validateSchema){if(Array.isArray(t)){for(let o of t)this.addSchema(o,void 0,r,i);return this}let s;if(typeof t=="object"){let{schemaId:o}=this.opts;if(s=t[o],s!==void 0&&typeof s!="string")throw new Error(`schema ${o} must be string`)}return n=(0,RC.normalizeId)(n||s),this._checkUnique(n),this.schemas[n]=this._addSchema(t,r,n,i,!0),this}addMetaSchema(t,n,r=this.opts.validateSchema){return this.addSchema(t,n,!0,r),this}validateSchema(t,n){if(typeof t=="boolean")return!0;let r;if(r=t.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(r,t);if(!i&&n){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return i}getSchema(t){let n;for(;typeof(n=YZe.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new AC.SchemaEnv({schema:{},schemaId:r});if(n=AC.resolveSchema.call(this,i,t),!n)return;this.refs[t]=n}return n.validate||this._compileSchemaEnv(n)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let n=YZe.call(this,t);return typeof n=="object"&&this._cache.delete(n.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let n=t;this._cache.delete(n);let r=t[this.opts.schemaId];return r&&(r=(0,RC.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let n of t)this.addKeyword(n);return this}addKeyword(t,n){let r;if(typeof t=="string")r=t,typeof n=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),n.keyword=r);else if(typeof t=="object"&&n===void 0){if(n=t,r=n.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(kdn.call(this,r,n),!n)return(0,Nse.eachItem)(r,s=>Pse.call(this,s)),this;xdn.call(this,n);let i={...n,type:(0,KV.getJSONTypes)(n.type),schemaType:(0,KV.getJSONTypes)(n.schemaType)};return(0,Nse.eachItem)(r,i.type.length===0?s=>Pse.call(this,s,i):s=>i.type.forEach(o=>Pse.call(this,s,i,o))),this}getKeyword(t){let n=this.RULES.all[t];return typeof n=="object"?n.definition:!!n}removeKeyword(t){let{RULES:n}=this;delete n.keywords[t],delete n.all[t];for(let r of n.rules){let i=r.rules.findIndex(s=>s.keyword===t);i>=0&&r.rules.splice(i,1)}return this}addFormat(t,n){return typeof n=="string"&&(n=new RegExp(n)),this.formats[t]=n,this}errorsText(t=this.errors,{separator:n=", ",dataVar:r="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,s)=>i+n+s)}$dataMetaSchema(t,n){let r=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of n){let s=i.split("/").slice(1),o=t;for(let a of s)o=o[a];for(let a in r){let c=r[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[a];u&&l&&(o[a]=XZe(l))}}return t}_removeAllSchemas(t,n){for(let r in t){let i=t[r];(!n||n.test(r))&&(typeof i=="string"?delete t[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[r]))}}_addSchema(t,n,r,i=this.opts.validateSchema,s=this.opts.addUsedSchema){let o,{schemaId:a}=this.opts;if(typeof t=="object")o=t[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;r=(0,RC.normalizeId)(o||r);let u=RC.getSchemaRefs.call(this,t,r);return c=new AC.SchemaEnv({schema:t,schemaId:a,meta:n,baseId:r,localRefs:u}),this._cache.set(c.schema,c),s&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):AC.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let n=this.opts;this.opts=this._metaOpts;try{AC.compileSchema.call(this,t)}finally{this.opts=n}}};wC.ValidationError=ddn.default;wC.MissingRefError=ZZe.default;Ea.default=wC;function KZe(e,t,n,r="error"){for(let i in e){let s=i;s in t&&this.logger[r](`${n}: option ${i}. ${e[s]}`)}}function YZe(e){return e=(0,RC.normalizeId)(e),this.schemas[e]||this.refs[e]}function _dn(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function bdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Tdn(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}function vdn(){let e={...this.opts};for(let t of mdn)delete e[t];return e}var Adn={log(){},warn(){},error(){}};function Rdn(e){if(e===!1)return Adn;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var wdn=/^[a-z_$][a-z0-9_$:-]*$/i;function kdn(e,t){let{RULES:n}=this;if((0,Nse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!wdn.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function Pse(e,t,n){var r;let i=t?.post;if(n&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,o=i?s.post:s.rules.find(({type:c})=>c===n);if(o||(o={type:n,rules:[]},s.rules.push(o)),s.keywords[e]=!0,!t)return;let a={keyword:e,definition:{...t,type:(0,KV.getJSONTypes)(t.type),schemaType:(0,KV.getJSONTypes)(t.schemaType)}};t.before?Idn.call(this,o,a,t.before):o.rules.push(a),s.all[e]=a,(r=t.implements)===null||r===void 0||r.forEach(c=>this.addKeyword(c))}function Idn(e,t,n){let r=e.rules.findIndex(i=>i.keyword===n);r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function xdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=XZe(t)),e.validateSchema=this.compile(t,!0))}var Odn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function XZe(e){return{anyOf:[e,Odn]}}});var QZe=w(Mse=>{"use strict";Object.defineProperty(Mse,"__esModule",{value:!0});var Pdn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Mse.default=Pdn});var Dse=w(Hb=>{"use strict";Object.defineProperty(Hb,"__esModule",{value:!0});Hb.callRef=Hb.getValidate=void 0;var Ndn=Km(),$Ze=Sa(),Ru=Ot(),ik=gd(),e6e=jb(),YV=pn(),Cdn={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:n,it:r}=e,{baseId:i,schemaEnv:s,validateName:o,opts:a,self:c}=r,{root:u}=s;if((n==="#"||n==="#/")&&i===u.baseId)return d();let l=e6e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Ndn.default(r.opts.uriResolver,i,n);if(l instanceof e6e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return ZV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return ZV(e,(0,Ru._)`${h}.validate`,u,u.$async)}function f(h){let m=t6e(e,h);ZV(e,m,h,h.$async)}function p(h){let m=t.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,Ru.stringify)(h)}:{ref:h}),g=t.name("valid"),y=e.subschema({schema:h,dataTypes:[],schemaPath:Ru.nil,topSchemaRef:m,errSchemaPath:n},g);e.mergeEvaluated(y),e.ok(g)}}};function t6e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,Ru._)`${n.scopeValue("wrapper",{ref:t})}.validate`}Hb.getValidate=t6e;function ZV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?ik.default.this:Ru.nil;r?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=i.let("valid");i.try(()=>{i.code((0,Ru._)`await ${(0,$Ze.callValidateCode)(e,t,u)}`),p(t),o||i.assign(h,!0)},m=>{i.if((0,Ru._)`!(${m} instanceof ${s.ValidationError})`,()=>i.throw(m)),f(m),o||i.assign(h,!1)}),e.ok(h)}function d(){e.result((0,$Ze.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,Ru._)`${h}.errors`;i.assign(ik.default.vErrors,(0,Ru._)`${ik.default.vErrors} === null ? ${m} : ${ik.default.vErrors}.concat(${m})`),i.assign(ik.default.errors,(0,Ru._)`${ik.default.vErrors}.length`)}function p(h){var m;if(!s.opts.unevaluated)return;let g=(m=n?.validate)===null||m===void 0?void 0:m.evaluated;if(s.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(s.props=YV.mergeEvaluated.props(i,g.props,s.props));else{let y=i.var("props",(0,Ru._)`${h}.evaluated.props`);s.props=YV.mergeEvaluated.props(i,y,s.props,Ru.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=YV.mergeEvaluated.items(i,g.items,s.items));else{let y=i.var("items",(0,Ru._)`${h}.evaluated.items`);s.items=YV.mergeEvaluated.items(i,y,s.items,Ru.Name)}}}Hb.callRef=ZV;Hb.default=Cdn});var n6e=w(Lse=>{"use strict";Object.defineProperty(Lse,"__esModule",{value:!0});var Mdn=QZe(),Ddn=Dse(),Ldn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Mdn.default,Ddn.default];Lse.default=Ldn});var r6e=w(Use=>{"use strict";Object.defineProperty(Use,"__esModule",{value:!0});var JV=Ot(),US=JV.operators,XV={maximum:{okStr:"<=",ok:US.LTE,fail:US.GT},minimum:{okStr:">=",ok:US.GTE,fail:US.LT},exclusiveMaximum:{okStr:"<",ok:US.LT,fail:US.GTE},exclusiveMinimum:{okStr:">",ok:US.GT,fail:US.LTE}},Udn={message:({keyword:e,schemaCode:t})=>(0,JV.str)`must be ${XV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,JV._)`{comparison: ${XV[e].okStr}, limit: ${t}}`},Fdn={keyword:Object.keys(XV),type:"number",schemaType:"number",$data:!0,error:Udn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,JV._)`${n} ${XV[t].fail} ${r} || isNaN(${n})`)}};Use.default=Fdn});var i6e=w(Fse=>{"use strict";Object.defineProperty(Fse,"__esModule",{value:!0});var kC=Ot(),jdn={message:({schemaCode:e})=>(0,kC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,kC._)`{multipleOf: ${e}}`},Hdn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:jdn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,kC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,kC._)`${o} !== parseInt(${o})`;e.fail$data((0,kC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Fse.default=Hdn});var o6e=w(jse=>{"use strict";Object.defineProperty(jse,"__esModule",{value:!0});function s6e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Hse,"__esModule",{value:!0});var qb=Ot(),qdn=pn(),Bdn=o6e(),Gdn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,qb.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,qb._)`{limit: ${e}}`},zdn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:Gdn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?qb.operators.GT:qb.operators.LT,o=i.opts.unicode===!1?(0,qb._)`${n}.length`:(0,qb._)`${(0,qdn.useFunc)(e.gen,Bdn.default)}(${n})`;e.fail$data((0,qb._)`${o} ${s} ${r}`)}};Hse.default=zdn});var c6e=w(qse=>{"use strict";Object.defineProperty(qse,"__esModule",{value:!0});var Vdn=Sa(),Wdn=pn(),sk=Ot(),Kdn={message:({schemaCode:e})=>(0,sk.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,sk._)`{pattern: ${e}}`},Ydn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Kdn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e,a=o.opts.unicodeRegExp?"u":"";if(r){let{regExp:c}=o.opts.code,u=c.code==="new RegExp"?(0,sk._)`new RegExp`:(0,Wdn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,sk._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,sk._)`!${l}`)}else{let c=(0,Vdn.usePattern)(e,i);e.fail$data((0,sk._)`!${c}.test(${n})`)}}};qse.default=Ydn});var u6e=w(Bse=>{"use strict";Object.defineProperty(Bse,"__esModule",{value:!0});var IC=Ot(),Zdn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,IC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,IC._)`{limit: ${e}}`},Jdn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Zdn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?IC.operators.GT:IC.operators.LT;e.fail$data((0,IC._)`Object.keys(${n}).length ${i} ${r}`)}};Bse.default=Jdn});var l6e=w(Gse=>{"use strict";Object.defineProperty(Gse,"__esModule",{value:!0});var xC=Sa(),OC=Ot(),Xdn=pn(),Qdn={message:({params:{missingProperty:e}})=>(0,OC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,OC._)`{missingProperty: ${e}}`},$dn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Qdn,code(e){let{gen:t,schema:n,schemaCode:r,data:i,$data:s,it:o}=e,{opts:a}=o;if(!s&&n.length===0)return;let c=n.length>=a.loopRequired;if(o.allErrors?u():l(),a.strictRequired){let p=e.parentSchema.properties,{definedProperties:h}=e.it;for(let m of n)if(p?.[m]===void 0&&!h.has(m)){let g=o.schemaEnv.baseId+o.errSchemaPath,y=`required property "${m}" is not defined at "${g}" (strictRequired)`;(0,Xdn.checkStrictMode)(o,y,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(OC.nil,d);else for(let p of n)(0,xC.checkReportMissingProp)(e,p)}function l(){let p=t.let("missing");if(c||s){let h=t.let("valid",!0);e.block$data(h,()=>f(p,h)),e.ok(h)}else t.if((0,xC.checkMissingProp)(e,n,p)),(0,xC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,xC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,xC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,OC.not)(h),()=>{e.error(),t.break()})},OC.nil)}}};Gse.default=$dn});var d6e=w(zse=>{"use strict";Object.defineProperty(zse,"__esModule",{value:!0});var PC=Ot(),efn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,PC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,PC._)`{limit: ${e}}`},tfn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:efn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?PC.operators.GT:PC.operators.LT;e.fail$data((0,PC._)`${n}.length ${i} ${r}`)}};zse.default=tfn});var NC=w(Vse=>{"use strict";Object.defineProperty(Vse,"__esModule",{value:!0});var f6e=SC();f6e.code='require("ajv/dist/runtime/equal").default';Vse.default=f6e});var p6e=w(Kse=>{"use strict";Object.defineProperty(Kse,"__esModule",{value:!0});var Wse=yC(),_a=Ot(),nfn=pn(),rfn=NC(),ifn={message:({params:{i:e,j:t}})=>(0,_a.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,_a._)`{i: ${e}, j: ${t}}`},sfn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:ifn,code(e){let{gen:t,data:n,$data:r,schema:i,parentSchema:s,schemaCode:o,it:a}=e;if(!r&&!i)return;let c=t.let("valid"),u=s.items?(0,Wse.getSchemaTypes)(s.items):[];e.block$data(c,l,(0,_a._)`${o} === false`),e.ok(c);function l(){let h=t.let("i",(0,_a._)`${n}.length`),m=t.let("j");e.setParams({i:h,j:m}),t.assign(c,!0),t.if((0,_a._)`${h} > 1`,()=>(d()?f:p)(h,m))}function d(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function f(h,m){let g=t.name("item"),y=(0,Wse.checkDataTypes)(u,g,a.opts.strictNumbers,Wse.DataType.Wrong),E=t.const("indices",(0,_a._)`{}`);t.for((0,_a._)`;${h}--;`,()=>{t.let(g,(0,_a._)`${n}[${h}]`),t.if(y,(0,_a._)`continue`),u.length>1&&t.if((0,_a._)`typeof ${g} == "string"`,(0,_a._)`${g} += "_"`),t.if((0,_a._)`typeof ${E}[${g}] == "number"`,()=>{t.assign(m,(0,_a._)`${E}[${g}]`),e.error(),t.assign(c,!1).break()}).code((0,_a._)`${E}[${g}] = ${h}`)})}function p(h,m){let g=(0,nfn.useFunc)(t,rfn.default),y=t.name("outer");t.label(y).for((0,_a._)`;${h}--;`,()=>t.for((0,_a._)`${m} = ${h}; ${m}--;`,()=>t.if((0,_a._)`${g}(${n}[${h}], ${n}[${m}])`,()=>{e.error(),t.assign(c,!1).break(y)})))}}};Kse.default=sfn});var h6e=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var Yse=Ot(),ofn=pn(),afn=NC(),cfn={message:"must be equal to constant",params:({schemaCode:e})=>(0,Yse._)`{allowedValue: ${e}}`},ufn={keyword:"const",$data:!0,error:cfn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,Yse._)`!${(0,ofn.useFunc)(t,afn.default)}(${n}, ${i})`):e.fail((0,Yse._)`${s} !== ${n}`)}};Zse.default=ufn});var m6e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var CC=Ot(),lfn=pn(),dfn=NC(),ffn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,CC._)`{allowedValues: ${e}}`},pfn={keyword:"enum",schemaType:"array",$data:!0,error:ffn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let a=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,lfn.useFunc)(t,dfn.default)),l;if(a||r)l=t.let("valid"),e.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let p=t.const("vSchema",s);l=(0,CC.or)(...i.map((h,m)=>f(p,m)))}e.pass(l);function d(){t.assign(l,!1),t.forOf("v",s,p=>t.if((0,CC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,CC._)`${u()}(${n}, ${p}[${h}])`:(0,CC._)`${n} === ${m}`}}};Jse.default=pfn});var g6e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});var hfn=r6e(),mfn=i6e(),gfn=a6e(),yfn=c6e(),Sfn=u6e(),Efn=l6e(),_fn=d6e(),bfn=p6e(),Tfn=h6e(),vfn=m6e(),Afn=[hfn.default,mfn.default,gfn.default,yfn.default,Sfn.default,Efn.default,_fn.default,bfn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Tfn.default,vfn.default];Xse.default=Afn});var $se=w(MC=>{"use strict";Object.defineProperty(MC,"__esModule",{value:!0});MC.validateAdditionalItems=void 0;var Bb=Ot(),Qse=pn(),Rfn={message:({params:{len:e}})=>(0,Bb.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Bb._)`{limit: ${e}}`},wfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Rfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,Qse.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}y6e(e,r)}};function y6e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,Bb._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,Bb._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,Qse.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,Bb._)`${a} <= ${t.length}`);n.if((0,Bb.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:Qse.Type.Num},u),o.allErrors||n.if((0,Bb.not)(u),()=>n.break())})}}MC.validateAdditionalItems=y6e;MC.default=wfn});var eoe=w(DC=>{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.validateTuple=void 0;var S6e=Ot(),QV=pn(),kfn=Sa(),Ifn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return E6e(e,"additionalItems",t);n.items=!0,!(0,QV.alwaysValidSchema)(n,t)&&e.ok((0,kfn.validateArray)(e))}};function E6e(e,t,n=e.schema){let{gen:r,parentSchema:i,data:s,keyword:o,it:a}=e;l(i),a.opts.unevaluated&&n.length&&a.items!==!0&&(a.items=QV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,S6e._)`${s}.length`);n.forEach((d,f)=>{(0,QV.alwaysValidSchema)(a,d)||(r.if((0,S6e._)`${u} > ${f}`,()=>e.subschema({keyword:o,schemaProp:f,dataProp:f},c)),e.ok(c))});function l(d){let{opts:f,errSchemaPath:p}=a,h=n.length,m=h===d.minItems&&(h===d.maxItems||d[t]===!1);if(f.strictTuples&&!m){let g=`"${o}" is ${h}-tuple, but minItems or maxItems/${t} are not specified or different at path "${p}"`;(0,QV.checkStrictMode)(a,g,f.strictTuples)}}}DC.validateTuple=E6e;DC.default=Ifn});var _6e=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var xfn=eoe(),Ofn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,xfn.validateTuple)(e,"items")};toe.default=Ofn});var T6e=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var b6e=Ot(),Pfn=pn(),Nfn=Sa(),Cfn=$se(),Mfn={message:({params:{len:e}})=>(0,b6e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,b6e._)`{limit: ${e}}`},Dfn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Mfn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,Pfn.alwaysValidSchema)(r,t)&&(i?(0,Cfn.validateAdditionalItems)(e,i):e.ok((0,Nfn.validateArray)(e)))}};noe.default=Dfn});var v6e=w(roe=>{"use strict";Object.defineProperty(roe,"__esModule",{value:!0});var Sd=Ot(),$V=pn(),Lfn={message:({params:{min:e,max:t}})=>t===void 0?(0,Sd.str)`must contain at least ${e} valid item(s)`:(0,Sd.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,Sd._)`{minContains: ${e}}`:(0,Sd._)`{minContains: ${e}, maxContains: ${t}}`},Ufn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Lfn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e,o,a,{minContains:c,maxContains:u}=r;s.opts.next?(o=c===void 0?1:c,a=u):o=1;let l=t.const("len",(0,Sd._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,$V.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,$V.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,$V.alwaysValidSchema)(s,n)){let m=(0,Sd._)`${l} >= ${o}`;a!==void 0&&(m=(0,Sd._)`${m} && ${l} <= ${a}`),e.pass(m);return}s.items=!0;let d=t.name("valid");a===void 0&&o===1?p(d,()=>t.if(d,()=>t.break())):o===0?(t.let(d,!0),a!==void 0&&t.if((0,Sd._)`${i}.length > 0`,f)):(t.let(d,!1),f()),e.result(d,()=>e.reset());function f(){let m=t.name("_valid"),g=t.let("count",0);p(m,()=>t.if(m,()=>h(g)))}function p(m,g){t.forRange("i",0,l,y=>{e.subschema({keyword:"contains",dataProp:y,dataPropType:$V.Type.Num,compositeRule:!0},m),g()})}function h(m){t.code((0,Sd._)`${m}++`),a===void 0?t.if((0,Sd._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,Sd._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,Sd._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};roe.default=Ufn});var w6e=w(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});hh.validateSchemaDeps=hh.validatePropertyDeps=hh.error=void 0;var ioe=Ot(),Ffn=pn(),LC=Sa();hh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,ioe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,ioe._)`{property: ${e}, missingProperty: ${r}, depsCount: ${t}, - deps: ${n}}`};var Hdn={keyword:"dependencies",type:"object",schemaType:"object",error:uh.error,code(e){let[t,n]=qdn(e);K6e(e,t),Z6e(e,n)}};function qdn({schema:e}){let t={},n={};for(let r in e){if(r==="__proto__")continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function K6e(e,t=e.schema){let{gen:n,data:r,it:i}=e;if(Object.keys(t).length===0)return;let s=n.let("missing");for(let o in t){let a=t[o];if(a.length===0)continue;let c=(0,IC.propertyInData)(n,r,o,i.opts.ownProperties);e.setParams({property:o,depsCount:a.length,deps:a.join(", ")}),i.allErrors?n.if(c,()=>{for(let u of a)(0,IC.checkReportMissingProp)(e,u)}):(n.if((0,Hse._)`${c} && (${(0,IC.checkMissingProp)(e,a,s)})`),(0,IC.reportMissingProp)(e,s),n.else())}}uh.validatePropertyDeps=K6e;function Z6e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,Fdn.alwaysValidSchema)(s,t[a])||(n.if((0,IC.propertyInData)(n,r,a,s.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:a},o);e.mergeValidEvaluated(c,o)},()=>n.var(o,!0)),e.ok(o))}uh.validateSchemaDeps=Z6e;uh.default=Hdn});var X6e=w(qse=>{"use strict";Object.defineProperty(qse,"__esModule",{value:!0});var J6e=kt(),Bdn=pn(),Gdn={message:"property name must be valid",params:({params:e})=>(0,J6e._)`{propertyName: ${e.propertyName}}`},zdn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Gdn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,Bdn.alwaysValidSchema)(i,n))return;let s=t.name("valid");t.forIn("key",r,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},s),t.if((0,J6e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};qse.default=zdn});var Gse=w(Bse=>{"use strict";Object.defineProperty(Bse,"__esModule",{value:!0});var H2=ga(),vf=kt(),Vdn=pd(),q2=pn(),Wdn={message:"must NOT have additional properties",params:({params:e})=>(0,vf._)`{additionalProperty: ${e.additionalProperty}}`},Kdn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Wdn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,errsCount:s,it:o}=e;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,q2.alwaysValidSchema)(o,n))return;let u=(0,H2.allSchemaProperties)(r.properties),l=(0,H2.allSchemaProperties)(r.patternProperties);d(),e.ok((0,vf._)`${s} === ${Vdn.default.errors}`);function d(){t.forIn("key",i,y=>{!u.length&&!l.length?h(y):t.if(f(y),()=>h(y))})}function f(y){let g;if(u.length>8){let E=(0,q2.schemaRefOrVal)(o,r.properties,"properties");g=(0,H2.isOwnProperty)(t,E,y)}else u.length?g=(0,vf.or)(...u.map(E=>(0,vf._)`${y} === ${E}`)):g=vf.nil;return l.length&&(g=(0,vf.or)(g,...l.map(E=>(0,vf._)`${(0,H2.usePattern)(e,E)}.test(${y})`))),(0,vf.not)(g)}function p(y){t.code((0,vf._)`delete ${i}[${y}]`)}function h(y){if(c.removeAdditional==="all"||c.removeAdditional&&n===!1){p(y);return}if(n===!1){e.setParams({additionalProperty:y}),e.error(),a||t.break();return}if(typeof n=="object"&&!(0,q2.alwaysValidSchema)(o,n)){let g=t.name("valid");c.removeAdditional==="failing"?(m(y,g,!1),t.if((0,vf.not)(g),()=>{e.reset(),p(y)})):(m(y,g),a||t.if((0,vf.not)(g),()=>t.break()))}}function m(y,g,E){let S={keyword:"additionalProperties",dataProp:y,dataPropType:q2.Type.Str};E===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,g)}}};Bse.default=Kdn});var eYe=w(Vse=>{"use strict";Object.defineProperty(Vse,"__esModule",{value:!0});var Zdn=Yw(),Q6e=ga(),zse=pn(),$6e=Gse(),Ydn={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e;s.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&$6e.default.code(new Zdn.KeywordCxt(s,$6e.default,"additionalProperties"));let o=(0,Q6e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=zse.mergeEvaluated.props(t,(0,zse.toHash)(o),s.props));let a=o.filter(d=>!(0,zse.alwaysValidSchema)(s,n[d]));if(a.length===0)return;let c=t.name("valid");for(let d of a)u(d)?l(d):(t.if((0,Q6e.propertyInData)(t,i,d,s.opts.ownProperties)),l(d),s.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function u(d){return s.opts.useDefaults&&!s.compositeRule&&n[d].default!==void 0}function l(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Vse.default=Ydn});var iYe=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var tYe=ga(),B2=kt(),nYe=pn(),rYe=pn(),Jdn={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,data:r,parentSchema:i,it:s}=e,{opts:o}=s,a=(0,tYe.allSchemaProperties)(n),c=a.filter(m=>(0,nYe.alwaysValidSchema)(s,n[m]));if(a.length===0||c.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=t.name("valid");s.props!==!0&&!(s.props instanceof B2.Name)&&(s.props=(0,rYe.evaluatedPropsToName)(t,s.props));let{props:d}=s;f();function f(){for(let m of a)u&&p(m),s.allErrors?h(m):(t.var(l,!0),h(m),t.if(l))}function p(m){for(let y in u)new RegExp(m).test(y)&&(0,nYe.checkStrictMode)(s,`property ${y} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,y=>{t.if((0,B2._)`${(0,tYe.usePattern)(e,m)}.test(${y})`,()=>{let g=c.includes(m);g||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:y,dataPropType:rYe.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,B2._)`${d}[${y}]`,!0):!g&&!s.allErrors&&t.if((0,B2.not)(l),()=>t.break())})})}}};Wse.default=Jdn});var sYe=w(Kse=>{"use strict";Object.defineProperty(Kse,"__esModule",{value:!0});var Xdn=pn(),Qdn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,Xdn.alwaysValidSchema)(r,n)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Kse.default=Qdn});var oYe=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var $dn=ga(),efn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:$dn.validateUnion,error:{message:"must match a schema in anyOf"}};Zse.default=efn});var aYe=w(Yse=>{"use strict";Object.defineProperty(Yse,"__esModule",{value:!0});var G2=kt(),tfn=pn(),nfn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,G2._)`{passingSchemas: ${e.passing}}`},rfn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:nfn,code(e){let{gen:t,schema:n,parentSchema:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let s=n,o=t.let("valid",!1),a=t.let("passing",null),c=t.name("_valid");e.setParams({passing:a}),t.block(u),e.result(o,()=>e.reset(),()=>e.error(!0));function u(){s.forEach((l,d)=>{let f;(0,tfn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,G2._)`${c} && ${o}`).assign(o,!1).assign(a,(0,G2._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,G2.Name)})})}}};Yse.default=rfn});var cYe=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var ifn=pn(),sfn={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let i=t.name("valid");n.forEach((s,o)=>{if((0,ifn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};Jse.default=sfn});var dYe=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});var z2=kt(),lYe=pn(),ofn={message:({params:e})=>(0,z2.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,z2._)`{failingKeyword: ${e.ifClause}}`},afn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:ofn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,lYe.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=uYe(r,"then"),s=uYe(r,"else");if(!i&&!s)return;let o=t.let("valid",!0),a=t.name("_valid");if(c(),e.reset(),i&&s){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(a,u("then",l),u("else",l))}else i?t.if(a,u("then")):t.if((0,z2.not)(a),u("else"));e.pass(o,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(l)}function u(l,d){return()=>{let f=e.subschema({keyword:l},a);t.assign(o,a),e.mergeValidEvaluated(f,o),d?t.assign(d,(0,z2._)`${l}`):e.setParams({ifClause:l})}}}};function uYe(e,t){let n=e.schema[t];return n!==void 0&&!(0,lYe.alwaysValidSchema)(e,n)}Xse.default=afn});var fYe=w(Qse=>{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var cfn=pn(),ufn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,cfn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Qse.default=ufn});var pYe=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var lfn=Dse(),dfn=G6e(),ffn=Lse(),pfn=V6e(),hfn=W6e(),mfn=Y6e(),gfn=X6e(),yfn=Gse(),Sfn=eYe(),_fn=iYe(),Efn=sYe(),bfn=oYe(),Tfn=aYe(),vfn=cYe(),Afn=dYe(),Rfn=fYe();function wfn(e=!1){let t=[Efn.default,bfn.default,Tfn.default,vfn.default,Afn.default,Rfn.default,gfn.default,yfn.default,mfn.default,Sfn.default,_fn.default];return e?t.push(dfn.default,pfn.default):t.push(lfn.default,ffn.default),t.push(hfn.default),t}$se.default=wfn});var hYe=w(eoe=>{"use strict";Object.defineProperty(eoe,"__esModule",{value:!0});var xs=kt(),kfn={message:({schemaCode:e})=>(0,xs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,xs._)`{format: ${e}}`},Ifn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:kfn,code(e,t){let{gen:n,data:r,$data:i,schema:s,schemaCode:o,it:a}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;i?f():p();function f(){let h=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),m=n.const("fDef",(0,xs._)`${h}[${o}]`),y=n.let("fType"),g=n.let("format");n.if((0,xs._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>n.assign(y,(0,xs._)`${m}.type || "string"`).assign(g,(0,xs._)`${m}.validate`),()=>n.assign(y,(0,xs._)`"string"`).assign(g,m)),e.fail$data((0,xs.or)(E(),S()));function E(){return c.strictSchema===!1?xs.nil:(0,xs._)`${o} && !${g}`}function S(){let _=l.$async?(0,xs._)`(${m}.async ? await ${g}(${r}) : ${g}(${r}))`:(0,xs._)`${g}(${r})`,b=(0,xs._)`(typeof ${g} == "function" ? ${_} : ${g}.test(${r}))`;return(0,xs._)`${g} && ${g} !== true && ${y} === ${t} && !${b}`}}function p(){let h=d.formats[s];if(!h){E();return}if(h===!0)return;let[m,y,g]=S(h);m===t&&e.pass(_());function E(){if(c.strictSchema===!1){d.logger.warn(b());return}throw new Error(b());function b(){return`unknown format "${s}" ignored in schema at path "${u}"`}}function S(b){let T=b instanceof RegExp?(0,xs.regexpCode)(b):c.code.formats?(0,xs._)`${c.code.formats}${(0,xs.getProperty)(s)}`:void 0,A=n.scopeValue("formats",{key:s,ref:b,code:T});return typeof b=="object"&&!(b instanceof RegExp)?[b.type||"string",b.validate,(0,xs._)`${A}.validate`]:["string",b,A]}function _(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!l.$async)throw new Error("async format in sync schema");return(0,xs._)`await ${g}(${r})`}return typeof y=="function"?(0,xs._)`${g}(${r})`:(0,xs._)`${g}.test(${r})`}}}};eoe.default=Ifn});var mYe=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var xfn=hYe(),Ofn=[xfn.default];toe.default=Ofn});var gYe=w(ek=>{"use strict";Object.defineProperty(ek,"__esModule",{value:!0});ek.contentVocabulary=ek.metadataVocabulary=void 0;ek.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ek.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var SYe=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var Nfn=R6e(),Pfn=F6e(),Cfn=pYe(),Mfn=mYe(),yYe=gYe(),Dfn=[Nfn.default,Pfn.default,(0,Cfn.default)(),Mfn.default,yYe.metadataVocabulary,yYe.contentVocabulary];noe.default=Dfn});var roe=w(V2=>{"use strict";Object.defineProperty(V2,"__esModule",{value:!0});V2.DiscrError=void 0;var _Ye;(function(e){e.Tag="tag",e.Mapping="mapping"})(_Ye||(V2.DiscrError=_Ye={}))});var bYe=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var tk=kt(),ioe=roe(),EYe=Db(),Lfn=Bm(),Ufn=pn(),jfn={message:({params:{discrError:e,tagName:t}})=>e===ioe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,tk._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},Ffn={keyword:"discriminator",type:"object",schemaType:"object",error:jfn,code(e){let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{oneOf:o}=i;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),u=t.const("tag",(0,tk._)`${n}${(0,tk.getProperty)(a)}`);t.if((0,tk._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:ioe.DiscrError.Tag,tag:u,tagName:a})),e.ok(c);function l(){let p=f();t.if(!1);for(let h in p)t.elseIf((0,tk._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:ioe.DiscrError.Mapping,tag:u,tagName:a}),t.endIf()}function d(p){let h=t.name("valid"),m=e.subschema({keyword:"oneOf",schemaProp:p},h);return e.mergeEvaluated(m,tk.Name),h}function f(){var p;let h={},m=g(i),y=!0;for(let _=0;_{Hfn.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var Fb=w((hi,ooe)=>{"use strict";Object.defineProperty(hi,"__esModule",{value:!0});hi.MissingRefError=hi.ValidationError=hi.CodeGen=hi.Name=hi.nil=hi.stringify=hi.str=hi._=hi.KeywordCxt=hi.Ajv=void 0;var qfn=mse(),Bfn=SYe(),Gfn=bYe(),vYe=TYe(),zfn=["/properties"],W2="http://json-schema.org/draft-07/schema",nk=class extends qfn.default{_addVocabularies(){super._addVocabularies(),Bfn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(Gfn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(vYe,zfn):vYe;this.addMetaSchema(t,W2,!1),this.refs["http://json-schema.org/schema"]=W2}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(W2)?W2:void 0)}};hi.Ajv=nk;ooe.exports=hi=nk;ooe.exports.Ajv=nk;Object.defineProperty(hi,"__esModule",{value:!0});hi.default=nk;var Vfn=Yw();Object.defineProperty(hi,"KeywordCxt",{enumerable:!0,get:function(){return Vfn.KeywordCxt}});var rk=kt();Object.defineProperty(hi,"_",{enumerable:!0,get:function(){return rk._}});Object.defineProperty(hi,"str",{enumerable:!0,get:function(){return rk.str}});Object.defineProperty(hi,"stringify",{enumerable:!0,get:function(){return rk.stringify}});Object.defineProperty(hi,"nil",{enumerable:!0,get:function(){return rk.nil}});Object.defineProperty(hi,"Name",{enumerable:!0,get:function(){return rk.Name}});Object.defineProperty(hi,"CodeGen",{enumerable:!0,get:function(){return rk.CodeGen}});var Wfn=hC();Object.defineProperty(hi,"ValidationError",{enumerable:!0,get:function(){return Wfn.default}});var Kfn=Bm();Object.defineProperty(hi,"MissingRefError",{enumerable:!0,get:function(){return Kfn.default}})});var K2=w(dh=>{"use strict";Object.defineProperty(dh,"__esModule",{value:!0});dh.formatNames=dh.fastFormats=dh.fullFormats=void 0;function lh(e,t){return{validate:e,compare:t}}dh.fullFormats={date:lh(kYe,loe),time:lh(coe(!0),doe),"date-time":lh(AYe(!0),xYe),"iso-time":lh(coe(),IYe),"iso-date-time":lh(AYe(),OYe),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:$fn,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:opn,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:epn,int32:{type:"number",validate:rpn},int64:{type:"number",validate:ipn},float:{type:"number",validate:wYe},double:{type:"number",validate:wYe},password:!0,binary:!0};dh.fastFormats={...dh.fullFormats,date:lh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,loe),time:lh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,doe),"date-time":lh(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,xYe),"iso-time":lh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,IYe),"iso-date-time":lh(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,OYe),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};dh.formatNames=Object.keys(dh.fullFormats);function Zfn(e){return e%4===0&&(e%100!==0||e%400===0)}var Yfn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Jfn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function kYe(e){let t=Yfn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r===2&&Zfn(n)?29:Jfn[r])}function loe(e,t){if(e&&t)return e>t?1:e23||l>59||e&&!a)return!1;if(i<=23&&s<=59&&o<60)return!0;let d=s-l*c,f=i-u*c-(d<0?1:0);return(f===23||f===-1)&&(d===59||d===-1)&&o<61}}function doe(e,t){if(!(e&&t))return;let n=new Date("2020-01-01T"+e).valueOf(),r=new Date("2020-01-01T"+t).valueOf();if(n&&r)return n-r}function IYe(e,t){if(!(e&&t))return;let n=aoe.exec(e),r=aoe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=tpn}function ipn(e){return Number.isInteger(e)}function wYe(){return!0}var spn=/[^\\]\\Z/;function opn(e){if(spn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var NYe=w(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});ik.formatLimitDefinition=void 0;var apn=Fb(),Af=kt(),MS=Af.operators,Z2={formatMaximum:{okStr:"<=",ok:MS.LTE,fail:MS.GT},formatMinimum:{okStr:">=",ok:MS.GTE,fail:MS.LT},formatExclusiveMaximum:{okStr:"<",ok:MS.LT,fail:MS.GTE},formatExclusiveMinimum:{okStr:">",ok:MS.GT,fail:MS.LTE}},cpn={message:({keyword:e,schemaCode:t})=>(0,Af.str)`should be ${Z2[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,Af._)`{comparison: ${Z2[e].okStr}, limit: ${t}}`};ik.formatLimitDefinition={keyword:Object.keys(Z2),type:"string",schemaType:"string",$data:!0,error:cpn,code(e){let{gen:t,data:n,schemaCode:r,keyword:i,it:s}=e,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new apn.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let f=t.scopeValue("formats",{ref:a.formats,code:o.code.formats}),p=t.const("fmt",(0,Af._)`${f}[${c.schemaCode}]`);e.fail$data((0,Af.or)((0,Af._)`typeof ${p} != "object"`,(0,Af._)`${p} instanceof RegExp`,(0,Af._)`typeof ${p}.compare != "function"`,d(p)))}function l(){let f=c.schema,p=a.formats[f];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${i}": format "${f}" does not define "compare" function`);let h=t.scopeValue("formats",{key:f,ref:p,code:o.code.formats?(0,Af._)`${o.code.formats}${(0,Af.getProperty)(f)}`:void 0});e.fail$data(d(h))}function d(f){return(0,Af._)`${f}.compare(${n}, ${r}) ${Z2[i].fail} 0`}},dependencies:["format"]};var upn=e=>(e.addKeyword(ik.formatLimitDefinition),e);ik.default=upn});var Y2=w((xC,MYe)=>{"use strict";Object.defineProperty(xC,"__esModule",{value:!0});var sk=K2(),lpn=NYe(),foe=kt(),PYe=new foe.Name("fullFormats"),dpn=new foe.Name("fastFormats"),poe=(e,t={keywords:!0})=>{if(Array.isArray(t))return CYe(e,t,sk.fullFormats,PYe),e;let[n,r]=t.mode==="fast"?[sk.fastFormats,dpn]:[sk.fullFormats,PYe],i=t.formats||sk.formatNames;return CYe(e,i,n,r),t.keywords&&(0,lpn.default)(e),e};poe.get=(e,t="full")=>{let r=(t==="fast"?sk.fastFormats:sk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function CYe(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,foe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}MYe.exports=xC=poe;Object.defineProperty(xC,"__esModule",{value:!0});xC.default=poe});function fpn(){let e=new DYe.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,LYe.default)(e),e}var DYe,LYe,J2,UYe=v(()=>{DYe=_e(Fb(),1),LYe=_e(Y2(),1);J2=class{constructor(t){this._ajv=t??fpn()}getValidator(t){let n="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return r=>n(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}}});var X2,jYe=v(()=>{kb();X2=class{constructor(t){this._server=t}requestStream(t,n,r){return this._server.requestStream(t,n,r)}createMessageStream(t,n){let r=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!r?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let i=t.messages[t.messages.length-1],s=Array.isArray(i.content)?i.content:[i.content],o=s.some(l=>l.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],u=c.some(l=>l.type==="tool_use");if(o){if(s.some(l=>l.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let l=new Set(c.filter(f=>f.type==="tool_use").map(f=>f.id)),d=new Set(s.filter(f=>f.type==="tool_result").map(f=>f.toolUseId));if(l.size!==d.size||![...l].every(f=>d.has(f)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:t},$P,n)}elicitInputStream(t,n){let r=this._server.getClientCapabilities(),i=t.mode??"form";switch(i){case"url":{if(!r?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!r?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let s=i==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:s},Hw,n)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,r){return this._server.getTaskResult({taskId:t},n,r)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}}});function FYe(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function HYe(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var qYe=v(()=>{});var Q2,BYe=v(()=>{t5e();kb();UYe();zz();jYe();qYe();Q2=class extends p2{constructor(t,n){super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(QP.options.map((r,i)=>[r,i])),this.isMessageIgnored=(r,i)=>{let s=this._loggingLevels.get(i);return s?this.LOG_LEVEL_SEVERITY.get(r)this._oninitialize(r)),this.setNotificationHandler(Nre,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(qre,async(r,i)=>{let s=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,a=QP.safeParse(o);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new X2(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=e5e(this._capabilities,t)}setRequestHandler(t,n){let i=Gz(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Lw(i)){let a=i;s=a._zod?.def?.value??a.value}else{let a=i;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");if(s==="tools/call"){let a=async(c,u)=>{let l=vS(XP,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new en(yn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=vS(jw,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new en(yn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=vS(o2,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new en(yn.InvalidParams,`Invalid tools/call result: ${h}`)}return p.data};return super.setRequestHandler(t,a)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){HYe(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&FYe(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:CZe.includes(n)?n:Rre,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},Jz)}async createMessage(t,n){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let r=t.messages[t.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],s=i.some(u=>u.type==="tool_result"),o=t.messages.length>1?t.messages[t.messages.length-2]:void 0,a=o?Array.isArray(o.content)?o.content:[o.content]:[],c=a.some(u=>u.type==="tool_use");if(s){if(i.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(a.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(i.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},Bre,n):this.request({method:"sampling/createMessage",params:t},$P,n)}async elicitInput(t,n){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=t;return this.request({method:"elicitation/create",params:i},Hw,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=t.mode==="form"?t:{...t,mode:"form"},s=await this.request({method:"elicitation/create",params:i},Hw,n);if(s.action==="accept"&&s.content&&i.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(i.requestedSchema)(s.content);if(!a.valid)throw new en(yn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof en?o:new en(yn.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return s}}}createElicitationCompletionNotifier(t,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},zre,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}});function ppn(e){return qZe.parse(JSON.parse(e))}function GYe(e){return JSON.stringify(e)+` -`}var $2,zYe=v(()=>{kb();$2=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(` -`);if(t===-1)return null;let n=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),ppn(n)}clear(){this._buffer=void 0}}});import VYe from"node:process";var eV,WYe=v(()=>{zYe();eV=class{constructor(t=VYe.stdin,n=VYe.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new $2,this._started=!1,this._ondata=r=>{this._readBuffer.append(r),this.processReadBuffer()},this._onerror=r=>{this.onerror?.(r)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(n=>{let r=GYe(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var ZYe=w((S2r,hoe)=>{"use strict";var hpn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,mpn=/(\w*(\.\w*)*)\..*/;hoe.exports=function(t){if(t.name.length>0)return t.name;let n=Error.stackTraceLimit;Error.stackTraceLimit=10;try{throw new Error("anonymous function")}catch(r){return Error.stackTraceLimit=n,KYe(r.stack)}};function KYe(e){let t=e.match(hpn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(mpn)[1]:"anonymous"}hoe.exports.extractPluginName=KYe});var JYe=w((_2r,YYe)=>{"use strict";YYe.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var OC=w((E2r,tV)=>{"use strict";var gpn=ZYe(),ypn=JYe(),Spn=0;function moe(e,t={}){let n=!1;if(e.default!==void 0&&(e=e.default),typeof e!="function")throw new TypeError(`fastify-plugin expects a function, instead got a '${typeof e}'`);if(typeof t=="string"&&(t={fastify:t}),typeof t!="object"||Array.isArray(t)||t===null)throw new TypeError("The options object should be an object");if(t.fastify!==void 0&&typeof t.fastify!="string")throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof t.fastify}'`);t.name||(n=!0,t.name=gpn(e)+"-auto-"+Spn++),e[Symbol.for("skip-override")]=t.encapsulate!==!0,e[Symbol.for("fastify.display-name")]=t.name,e[Symbol.for("plugin-meta")]=t,e.default||(e.default=e);let r=ypn(t.name);return!n&&!e[r]&&(e[r]=e),e}tV.exports=moe;tV.exports.default=moe;tV.exports.fastifyPlugin=moe});var sV=w(fh=>{"use strict";var goe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},yoe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},NC=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=n}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];delete this.items[t],this.size--,n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items[t]=r,++this.size===1?this.first=r:this.last.next=r,this.last=r}},nV=class{constructor(){this.records={}}initForCache(t,n){this.records[t]={[n]:{cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,invalidateOne:0,invalidateAll:0,sets:0}}}resetForCache(t){for(let n of Object.keys(this.records[t]))this.records[t][n]={cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,invalidateOne:0,invalidateAll:0,sets:0}}getStatistics(){return this.records}};function XYe(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Soe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=XYe(this.collectionStart),this.records=r||new nV,this.records.initForCache(this.cacheId,this.currentTimeStamp)}get currentRecord(){return this.records.records[this.cacheId][this.currentTimeStamp]||(this.records.records[this.cacheId][this.currentTimeStamp]={cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,sets:0,invalidateOne:0,invalidateAll:0}),this.records.records[this.cacheId][this.currentTimeStamp]}hoursPassed(){return(Date.now()-this.collectionStart)/1e3/60/60}addHit(){this.archiveIfNeeded(),this.currentRecord.hits++}addFalsyHit(){this.archiveIfNeeded(),this.currentRecord.falsyHits++}addEmptyHit(){this.archiveIfNeeded(),this.currentRecord.emptyHits++}addMiss(){this.archiveIfNeeded(),this.currentRecord.misses++}addEviction(){this.archiveIfNeeded(),this.currentRecord.evictions++}setCacheSize(t){this.archiveIfNeeded(),this.currentRecord.cacheSize=t}addExpiration(){this.archiveIfNeeded(),this.currentRecord.expirations++}addSet(){this.archiveIfNeeded(),this.currentRecord.sets++}addInvalidateOne(){this.archiveIfNeeded(),this.currentRecord.invalidateOne++}addInvalidateAll(){this.archiveIfNeeded(),this.currentRecord.invalidateAll++}getStatistics(){return this.records.getStatistics()}archiveIfNeeded(){this.hoursPassed()>=this.statisticTtlInHours&&(this.collectionStart=new Date,this.currentTimeStamp=XYe(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},rV=class extends NC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Soe(r,s!==void 0?s:24,i)}getStatistics(){return this.hitStatistics.getStatistics()}set(t,n){super.set(t,n),this.hitStatistics.addSet(),this.hitStatistics.setCacheSize(this.size)}evict(){super.evict(),this.hitStatistics.addEviction(),this.hitStatistics.setCacheSize(this.size)}delete(t,n=!1){super.delete(t),n||this.hitStatistics.addInvalidateOne(),this.hitStatistics.setCacheSize(this.size)}clear(){super.clear(),this.hitStatistics.addInvalidateAll(),this.hitStatistics.setCacheSize(this.size)}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t,!0),this.hitStatistics.addExpiration();return}return this.bumpLru(n),n.value||this.hitStatistics.addFalsyHit(),(n.value===void 0||n.value===null||n.value==="")&&this.hitStatistics.addEmptyHit(),this.hitStatistics.addHit(),n.value}this.hitStatistics.addMiss()}},iV=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=n}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];delete this.items[t],this.size--,n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items[t]=r,++this.size===1?this.first=r:this.last.next=r,this.last=r}};fh.Fifo=iV;fh.FifoMap=goe;fh.FifoObject=iV;fh.HitStatisticsRecord=nV;fh.Lru=NC;fh.LruHitStatistics=rV;fh.LruMap=yoe;fh.LruObject=NC;fh.LruObjectHitStatistics=rV});var $Ye=w((T2r,PC)=>{"use strict";var{FifoMap:_pn}=sV(),Epn=/^[!#$%&'*+\-.^\w`|~]+$/u;function bpn(e){if(Epn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function QYe(e){e=e.trim().toLowerCase();let t=[];if(e.length!==0)if(e.indexOf(",")===-1)t.push(e);else{let n=e.length,r=0,i=0,s;for(r;r{"use strict";var Tpn=OC(),{addAccessControlRequestHeadersToVaryHeader:vpn,addOriginToVaryHeader:Apn}=$Ye(),boe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Rpn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Eoe=["preSerialization","preParsing","onSend"];function n8e(e,t){Rpn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function wpn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")e8e(t,e,{hook:boe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;e8e(s,e,o,n)}else{let s=oV(t);n8e(s.hook,n),Eoe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){CC(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){CC(e,s,a,c,u)})}t.logLevel!==void 0&&(i=t.logLevel),t.hideOptionsRoute!==void 0&&(r=t.hideOptionsRoute),e.options("*",{schema:{hide:r},logLevel:i},(s,o)=>{if(!s.corsPreflightEnabled){o.callNotFound();return}o.send()}),n()}function e8e(e,t,n,r){let i=n?.hook||boe.hook;n8e(i,r),e.length===2?Eoe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){t8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){t8e(e,t,o,a,c)}):Eoe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>CC(t,oV(d,!0),o,a,u)).catch(u);return}u(new Error("Invalid CORS origin option"))}):t.addHook(i,function(o,a,c){let u=e(o);if(u&&typeof u.then=="function"){u.then(l=>CC(t,oV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function t8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):CC(t,oV(o,!0),n,r,i)})}function oV(e,t){let n={...boe,...e};return Array.isArray(e.origin)&&e.origin.indexOf("*")!==-1&&(n.origin="*"),Number.isInteger(n.cacheControl)?n.cacheControl=`max-age=${n.cacheControl}`:typeof n.cacheControl!="string"&&(n.cacheControl=null),n.dynamic=t||!1,n}function CC(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&Apn(r),(typeof s.origin=="function"?xpn(e,s.origin):(a,c)=>c(null,s.origin))(n,(a,c)=>{if(a!==null)return i(a);if(c===!1||n.routeOptions.config?.cors===!1)return i();if(!c)return i(new Error("Invalid CORS origin option"));if(kpn(n,r,c,s),n.raw.method==="OPTIONS"&&s.preflight===!0){if(s.strictPreflight===!0&&(!n.headers.origin||!n.headers["access-control-request-method"])){r.status(400).type("text/plain").send("Invalid Preflight Request");return}if(n.corsPreflightEnabled=!0,Ipn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function kpn(e,t,n,r){let i=Opn(e.headers.origin,n);i&&t.header("Access-Control-Allow-Origin",i),r.credentials&&t.header("Access-Control-Allow-Credentials","true"),r.exposedHeaders!==null&&t.header("Access-Control-Expose-Headers",Array.isArray(r.exposedHeaders)?r.exposedHeaders.join(", "):r.exposedHeaders)}function Ipn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){vpn(t);let r=e.headers["access-control-request-headers"];r!==void 0&&t.header("Access-Control-Allow-Headers",r)}else t.header("Access-Control-Allow-Headers",Array.isArray(n.allowedHeaders)?n.allowedHeaders.join(", "):n.allowedHeaders);n.maxAge!==null&&t.header("Access-Control-Max-Age",String(n.maxAge)),n.cacheControl&&t.header("Cache-Control",n.cacheControl)}function xpn(e,t){return function(n,r){let i=t.call(e,n.headers.origin,r);i&&typeof i.then=="function"&&i.then(s=>r(null,s),r)}}function Opn(e,t){return typeof t=="string"?t:r8e(e,t)?e:!1}function r8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Npn=/^(-?(?:\d+)?\.?\d+) *(m(?:illiseconds?|s(?:ecs?)?))?(s(?:ec(?:onds?|s)?)?)?(m(?:in(?:utes?|s)?)?)?(h(?:ours?|rs?)?)?(d(?:ays?)?)?(w(?:eeks?|ks?)?)?(y(?:ears?|rs?)?)?$/,cV=1e3,uV=cV*60,lV=uV*60,DC=lV*24,voe=DC*365.25;function Ppn(e){var t,n=e.toLowerCase().match(Npn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*cV:n[4]!=null?t*uV:n[5]!=null?t*lV:n[6]!=null?t*DC:n[7]!=null?t*DC*7:n[8]!=null?t*voe:t}function MC(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Cpn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:Mpn}=sV();function dV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new Mpn(n)}dV.prototype.incr=function(e,t,n,r){let i=Date.now(),s=this.lru.get(e);if(!s)s={current:1,ttl:n,iterationStartMs:i};else if(s.iterationStartMs+n<=i)s.current=1,s.ttl=n,s.iterationStartMs=i;else if(++s.current,this.continueExceeding&&s.current>r)s.ttl=n,s.iterationStartMs=i;else if(this.exponentialBackoff&&s.current>r){let o=s.current-r-1,a=n*2**o;s.ttl=Number.isSafeInteger(a)?a:Number.MAX_SAFE_INTEGER,s.iterationStartMs=i}else s.ttl=n-(i-s.iterationStartMs);this.lru.set(e,s),t(null,s)};dV.prototype.child=function(e){return new dV(e.continueExceeding,e.exponentialBackoff,e.cache)};o8e.exports=dV});var u8e=w((w2r,c8e)=>{"use strict";var Dpn=` + deps: ${n}}`};var jfn={keyword:"dependencies",type:"object",schemaType:"object",error:hh.error,code(e){let[t,n]=Hfn(e);A6e(e,t),R6e(e,n)}};function Hfn({schema:e}){let t={},n={};for(let r in e){if(r==="__proto__")continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function A6e(e,t=e.schema){let{gen:n,data:r,it:i}=e;if(Object.keys(t).length===0)return;let s=n.let("missing");for(let o in t){let a=t[o];if(a.length===0)continue;let c=(0,LC.propertyInData)(n,r,o,i.opts.ownProperties);e.setParams({property:o,depsCount:a.length,deps:a.join(", ")}),i.allErrors?n.if(c,()=>{for(let u of a)(0,LC.checkReportMissingProp)(e,u)}):(n.if((0,ioe._)`${c} && (${(0,LC.checkMissingProp)(e,a,s)})`),(0,LC.reportMissingProp)(e,s),n.else())}}hh.validatePropertyDeps=A6e;function R6e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,Ffn.alwaysValidSchema)(s,t[a])||(n.if((0,LC.propertyInData)(n,r,a,s.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:a},o);e.mergeValidEvaluated(c,o)},()=>n.var(o,!0)),e.ok(o))}hh.validateSchemaDeps=R6e;hh.default=jfn});var I6e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var k6e=Ot(),qfn=pn(),Bfn={message:"property name must be valid",params:({params:e})=>(0,k6e._)`{propertyName: ${e.propertyName}}`},Gfn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Bfn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,qfn.alwaysValidSchema)(i,n))return;let s=t.name("valid");t.forIn("key",r,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},s),t.if((0,k6e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};soe.default=Gfn});var aoe=w(ooe=>{"use strict";Object.defineProperty(ooe,"__esModule",{value:!0});var e2=Sa(),Rf=Ot(),zfn=gd(),t2=pn(),Vfn={message:"must NOT have additional properties",params:({params:e})=>(0,Rf._)`{additionalProperty: ${e.additionalProperty}}`},Wfn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Vfn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,errsCount:s,it:o}=e;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,t2.alwaysValidSchema)(o,n))return;let u=(0,e2.allSchemaProperties)(r.properties),l=(0,e2.allSchemaProperties)(r.patternProperties);d(),e.ok((0,Rf._)`${s} === ${zfn.default.errors}`);function d(){t.forIn("key",i,g=>{!u.length&&!l.length?h(g):t.if(f(g),()=>h(g))})}function f(g){let y;if(u.length>8){let E=(0,t2.schemaRefOrVal)(o,r.properties,"properties");y=(0,e2.isOwnProperty)(t,E,g)}else u.length?y=(0,Rf.or)(...u.map(E=>(0,Rf._)`${g} === ${E}`)):y=Rf.nil;return l.length&&(y=(0,Rf.or)(y,...l.map(E=>(0,Rf._)`${(0,e2.usePattern)(e,E)}.test(${g})`))),(0,Rf.not)(y)}function p(g){t.code((0,Rf._)`delete ${i}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&n===!1){p(g);return}if(n===!1){e.setParams({additionalProperty:g}),e.error(),a||t.break();return}if(typeof n=="object"&&!(0,t2.alwaysValidSchema)(o,n)){let y=t.name("valid");c.removeAdditional==="failing"?(m(g,y,!1),t.if((0,Rf.not)(y),()=>{e.reset(),p(g)})):(m(g,y),a||t.if((0,Rf.not)(y),()=>t.break()))}}function m(g,y,E){let S={keyword:"additionalProperties",dataProp:g,dataPropType:t2.Type.Str};E===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,y)}}};ooe.default=Wfn});var P6e=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var Kfn=tk(),x6e=Sa(),coe=pn(),O6e=aoe(),Yfn={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e;s.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&O6e.default.code(new Kfn.KeywordCxt(s,O6e.default,"additionalProperties"));let o=(0,x6e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=coe.mergeEvaluated.props(t,(0,coe.toHash)(o),s.props));let a=o.filter(d=>!(0,coe.alwaysValidSchema)(s,n[d]));if(a.length===0)return;let c=t.name("valid");for(let d of a)u(d)?l(d):(t.if((0,x6e.propertyInData)(t,i,d,s.opts.ownProperties)),l(d),s.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function u(d){return s.opts.useDefaults&&!s.compositeRule&&n[d].default!==void 0}function l(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};uoe.default=Yfn});var D6e=w(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});var N6e=Sa(),n2=Ot(),C6e=pn(),M6e=pn(),Zfn={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,data:r,parentSchema:i,it:s}=e,{opts:o}=s,a=(0,N6e.allSchemaProperties)(n),c=a.filter(m=>(0,C6e.alwaysValidSchema)(s,n[m]));if(a.length===0||c.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=t.name("valid");s.props!==!0&&!(s.props instanceof n2.Name)&&(s.props=(0,M6e.evaluatedPropsToName)(t,s.props));let{props:d}=s;f();function f(){for(let m of a)u&&p(m),s.allErrors?h(m):(t.var(l,!0),h(m),t.if(l))}function p(m){for(let g in u)new RegExp(m).test(g)&&(0,C6e.checkStrictMode)(s,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,g=>{t.if((0,n2._)`${(0,N6e.usePattern)(e,m)}.test(${g})`,()=>{let y=c.includes(m);y||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:M6e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,n2._)`${d}[${g}]`,!0):!y&&!s.allErrors&&t.if((0,n2.not)(l),()=>t.break())})})}}};loe.default=Zfn});var L6e=w(doe=>{"use strict";Object.defineProperty(doe,"__esModule",{value:!0});var Jfn=pn(),Xfn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,Jfn.alwaysValidSchema)(r,n)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};doe.default=Xfn});var U6e=w(foe=>{"use strict";Object.defineProperty(foe,"__esModule",{value:!0});var Qfn=Sa(),$fn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Qfn.validateUnion,error:{message:"must match a schema in anyOf"}};foe.default=$fn});var F6e=w(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});var r2=Ot(),epn=pn(),tpn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,r2._)`{passingSchemas: ${e.passing}}`},npn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:tpn,code(e){let{gen:t,schema:n,parentSchema:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let s=n,o=t.let("valid",!1),a=t.let("passing",null),c=t.name("_valid");e.setParams({passing:a}),t.block(u),e.result(o,()=>e.reset(),()=>e.error(!0));function u(){s.forEach((l,d)=>{let f;(0,epn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,r2._)`${c} && ${o}`).assign(o,!1).assign(a,(0,r2._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,r2.Name)})})}}};poe.default=npn});var j6e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var rpn=pn(),ipn={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let i=t.name("valid");n.forEach((s,o)=>{if((0,rpn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};hoe.default=ipn});var B6e=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var i2=Ot(),q6e=pn(),spn={message:({params:e})=>(0,i2.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,i2._)`{failingKeyword: ${e.ifClause}}`},opn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:spn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,q6e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=H6e(r,"then"),s=H6e(r,"else");if(!i&&!s)return;let o=t.let("valid",!0),a=t.name("_valid");if(c(),e.reset(),i&&s){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(a,u("then",l),u("else",l))}else i?t.if(a,u("then")):t.if((0,i2.not)(a),u("else"));e.pass(o,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(l)}function u(l,d){return()=>{let f=e.subschema({keyword:l},a);t.assign(o,a),e.mergeValidEvaluated(f,o),d?t.assign(d,(0,i2._)`${l}`):e.setParams({ifClause:l})}}}};function H6e(e,t){let n=e.schema[t];return n!==void 0&&!(0,q6e.alwaysValidSchema)(e,n)}moe.default=opn});var G6e=w(goe=>{"use strict";Object.defineProperty(goe,"__esModule",{value:!0});var apn=pn(),cpn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,apn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};goe.default=cpn});var z6e=w(yoe=>{"use strict";Object.defineProperty(yoe,"__esModule",{value:!0});var upn=$se(),lpn=_6e(),dpn=eoe(),fpn=T6e(),ppn=v6e(),hpn=w6e(),mpn=I6e(),gpn=aoe(),ypn=P6e(),Spn=D6e(),Epn=L6e(),_pn=U6e(),bpn=F6e(),Tpn=j6e(),vpn=B6e(),Apn=G6e();function Rpn(e=!1){let t=[Epn.default,_pn.default,bpn.default,Tpn.default,vpn.default,Apn.default,mpn.default,gpn.default,hpn.default,ypn.default,Spn.default];return e?t.push(lpn.default,fpn.default):t.push(upn.default,dpn.default),t.push(ppn.default),t}yoe.default=Rpn});var V6e=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var Cs=Ot(),wpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},kpn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:wpn,code(e,t){let{gen:n,data:r,$data:i,schema:s,schemaCode:o,it:a}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;i?f():p();function f(){let h=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),m=n.const("fDef",(0,Cs._)`${h}[${o}]`),g=n.let("fType"),y=n.let("format");n.if((0,Cs._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>n.assign(g,(0,Cs._)`${m}.type || "string"`).assign(y,(0,Cs._)`${m}.validate`),()=>n.assign(g,(0,Cs._)`"string"`).assign(y,m)),e.fail$data((0,Cs.or)(E(),S()));function E(){return c.strictSchema===!1?Cs.nil:(0,Cs._)`${o} && !${y}`}function S(){let _=l.$async?(0,Cs._)`(${m}.async ? await ${y}(${r}) : ${y}(${r}))`:(0,Cs._)`${y}(${r})`,b=(0,Cs._)`(typeof ${y} == "function" ? ${_} : ${y}.test(${r}))`;return(0,Cs._)`${y} && ${y} !== true && ${g} === ${t} && !${b}`}}function p(){let h=d.formats[s];if(!h){E();return}if(h===!0)return;let[m,g,y]=S(h);m===t&&e.pass(_());function E(){if(c.strictSchema===!1){d.logger.warn(b());return}throw new Error(b());function b(){return`unknown format "${s}" ignored in schema at path "${u}"`}}function S(b){let T=b instanceof RegExp?(0,Cs.regexpCode)(b):c.code.formats?(0,Cs._)`${c.code.formats}${(0,Cs.getProperty)(s)}`:void 0,A=n.scopeValue("formats",{key:s,ref:b,code:T});return typeof b=="object"&&!(b instanceof RegExp)?[b.type||"string",b.validate,(0,Cs._)`${A}.validate`]:["string",b,A]}function _(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Cs._)`await ${y}(${r})`}return typeof g=="function"?(0,Cs._)`${y}(${r})`:(0,Cs._)`${y}.test(${r})`}}}};Soe.default=kpn});var W6e=w(Eoe=>{"use strict";Object.defineProperty(Eoe,"__esModule",{value:!0});var Ipn=V6e(),xpn=[Ipn.default];Eoe.default=xpn});var K6e=w(ok=>{"use strict";Object.defineProperty(ok,"__esModule",{value:!0});ok.contentVocabulary=ok.metadataVocabulary=void 0;ok.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ok.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Z6e=w(_oe=>{"use strict";Object.defineProperty(_oe,"__esModule",{value:!0});var Opn=n6e(),Ppn=g6e(),Npn=z6e(),Cpn=W6e(),Y6e=K6e(),Mpn=[Opn.default,Ppn.default,(0,Npn.default)(),Cpn.default,Y6e.metadataVocabulary,Y6e.contentVocabulary];_oe.default=Mpn});var boe=w(s2=>{"use strict";Object.defineProperty(s2,"__esModule",{value:!0});s2.DiscrError=void 0;var J6e;(function(e){e.Tag="tag",e.Mapping="mapping"})(J6e||(s2.DiscrError=J6e={}))});var Q6e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var ak=Ot(),Toe=boe(),X6e=jb(),Dpn=Km(),Lpn=pn(),Upn={message:({params:{discrError:e,tagName:t}})=>e===Toe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,ak._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},Fpn={keyword:"discriminator",type:"object",schemaType:"object",error:Upn,code(e){let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{oneOf:o}=i;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),u=t.const("tag",(0,ak._)`${n}${(0,ak.getProperty)(a)}`);t.if((0,ak._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Toe.DiscrError.Tag,tag:u,tagName:a})),e.ok(c);function l(){let p=f();t.if(!1);for(let h in p)t.elseIf((0,ak._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:Toe.DiscrError.Mapping,tag:u,tagName:a}),t.endIf()}function d(p){let h=t.name("valid"),m=e.subschema({keyword:"oneOf",schemaProp:p},h);return e.mergeEvaluated(m,ak.Name),h}function f(){var p;let h={},m=y(i),g=!0;for(let _=0;_{jpn.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var Gb=w((yi,Aoe)=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.MissingRefError=yi.ValidationError=yi.CodeGen=yi.Name=yi.nil=yi.stringify=yi.str=yi._=yi.KeywordCxt=yi.Ajv=void 0;var Hpn=Cse(),qpn=Z6e(),Bpn=Q6e(),e8e=$6e(),Gpn=["/properties"],o2="http://json-schema.org/draft-07/schema",ck=class extends Hpn.default{_addVocabularies(){super._addVocabularies(),qpn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(Bpn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(e8e,Gpn):e8e;this.addMetaSchema(t,o2,!1),this.refs["http://json-schema.org/schema"]=o2}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o2)?o2:void 0)}};yi.Ajv=ck;Aoe.exports=yi=ck;Aoe.exports.Ajv=ck;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=ck;var zpn=tk();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return zpn.KeywordCxt}});var uk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return uk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return uk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return uk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return uk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return uk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return uk.CodeGen}});var Vpn=TC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return Vpn.default}});var Wpn=Km();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return Wpn.default}})});var a2=w(gh=>{"use strict";Object.defineProperty(gh,"__esModule",{value:!0});gh.formatNames=gh.fastFormats=gh.fullFormats=void 0;function mh(e,t){return{validate:e,compare:t}}gh.fullFormats={date:mh(i8e,Ioe),time:mh(woe(!0),xoe),"date-time":mh(t8e(!0),o8e),"iso-time":mh(woe(),s8e),"iso-date-time":mh(t8e(),a8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Qpn,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:shn,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:$pn,int32:{type:"number",validate:nhn},int64:{type:"number",validate:rhn},float:{type:"number",validate:r8e},double:{type:"number",validate:r8e},password:!0,binary:!0};gh.fastFormats={...gh.fullFormats,date:mh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Ioe),time:mh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,xoe),"date-time":mh(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,o8e),"iso-time":mh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,s8e),"iso-date-time":mh(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,a8e),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};gh.formatNames=Object.keys(gh.fullFormats);function Kpn(e){return e%4===0&&(e%100!==0||e%400===0)}var Ypn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Zpn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i8e(e){let t=Ypn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r===2&&Kpn(n)?29:Zpn[r])}function Ioe(e,t){if(e&&t)return e>t?1:e23||l>59||e&&!a)return!1;if(i<=23&&s<=59&&o<60)return!0;let d=s-l*c,f=i-u*c-(d<0?1:0);return(f===23||f===-1)&&(d===59||d===-1)&&o<61}}function xoe(e,t){if(!(e&&t))return;let n=new Date("2020-01-01T"+e).valueOf(),r=new Date("2020-01-01T"+t).valueOf();if(n&&r)return n-r}function s8e(e,t){if(!(e&&t))return;let n=Roe.exec(e),r=Roe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=ehn}function rhn(e){return Number.isInteger(e)}function r8e(){return!0}var ihn=/[^\\]\\Z/;function shn(e){if(ihn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var c8e=w(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});lk.formatLimitDefinition=void 0;var ohn=Gb(),wf=Ot(),FS=wf.operators,c2={formatMaximum:{okStr:"<=",ok:FS.LTE,fail:FS.GT},formatMinimum:{okStr:">=",ok:FS.GTE,fail:FS.LT},formatExclusiveMaximum:{okStr:"<",ok:FS.LT,fail:FS.GTE},formatExclusiveMinimum:{okStr:">",ok:FS.GT,fail:FS.LTE}},ahn={message:({keyword:e,schemaCode:t})=>(0,wf.str)`should be ${c2[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,wf._)`{comparison: ${c2[e].okStr}, limit: ${t}}`};lk.formatLimitDefinition={keyword:Object.keys(c2),type:"string",schemaType:"string",$data:!0,error:ahn,code(e){let{gen:t,data:n,schemaCode:r,keyword:i,it:s}=e,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new ohn.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let f=t.scopeValue("formats",{ref:a.formats,code:o.code.formats}),p=t.const("fmt",(0,wf._)`${f}[${c.schemaCode}]`);e.fail$data((0,wf.or)((0,wf._)`typeof ${p} != "object"`,(0,wf._)`${p} instanceof RegExp`,(0,wf._)`typeof ${p}.compare != "function"`,d(p)))}function l(){let f=c.schema,p=a.formats[f];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${i}": format "${f}" does not define "compare" function`);let h=t.scopeValue("formats",{key:f,ref:p,code:o.code.formats?(0,wf._)`${o.code.formats}${(0,wf.getProperty)(f)}`:void 0});e.fail$data(d(h))}function d(f){return(0,wf._)`${f}.compare(${n}, ${r}) ${c2[i].fail} 0`}},dependencies:["format"]};var chn=e=>(e.addKeyword(lk.formatLimitDefinition),e);lk.default=chn});var u2=w((UC,d8e)=>{"use strict";Object.defineProperty(UC,"__esModule",{value:!0});var dk=a2(),uhn=c8e(),Ooe=Ot(),u8e=new Ooe.Name("fullFormats"),lhn=new Ooe.Name("fastFormats"),Poe=(e,t={keywords:!0})=>{if(Array.isArray(t))return l8e(e,t,dk.fullFormats,u8e),e;let[n,r]=t.mode==="fast"?[dk.fastFormats,lhn]:[dk.fullFormats,u8e],i=t.formats||dk.formatNames;return l8e(e,i,n,r),t.keywords&&(0,uhn.default)(e),e};Poe.get=(e,t="full")=>{let r=(t==="fast"?dk.fastFormats:dk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function l8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,Ooe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}d8e.exports=UC=Poe;Object.defineProperty(UC,"__esModule",{value:!0});UC.default=Poe});function dhn(){let e=new f8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,p8e.default)(e),e}var f8e,p8e,l2,h8e=v(()=>{f8e=Se(Gb(),1),p8e=Se(u2(),1);l2=class{constructor(t){this._ajv=t??dhn()}getValidator(t){let n="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return r=>n(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}}});var d2,m8e=v(()=>{Pb();d2=class{constructor(t){this._server=t}requestStream(t,n,r){return this._server.requestStream(t,n,r)}createMessageStream(t,n){let r=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!r?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let i=t.messages[t.messages.length-1],s=Array.isArray(i.content)?i.content:[i.content],o=s.some(l=>l.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],u=c.some(l=>l.type==="tool_use");if(o){if(s.some(l=>l.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let l=new Set(c.filter(f=>f.type==="tool_use").map(f=>f.id)),d=new Set(s.filter(f=>f.type==="tool_result").map(f=>f.toolUseId));if(l.size!==d.size||![...l].every(f=>d.has(f)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:t},aC,n)}elicitInputStream(t,n){let r=this._server.getClientCapabilities(),i=t.mode??"form";switch(i){case"url":{if(!r?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!r?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let s=i==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:s},Ww,n)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,r){return this._server.getTaskResult({taskId:t},n,r)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}}});function g8e(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function y8e(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var S8e=v(()=>{});var f2,E8e=v(()=>{N5e();Pb();h8e();iV();m8e();S8e();f2=class extends kV{constructor(t,n){super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(oC.options.map((r,i)=>[r,i])),this.isMessageIgnored=(r,i)=>{let s=this._loggingLevels.get(i);return s?this.LOG_LEVEL_SEVERITY.get(r)this._oninitialize(r)),this.setNotificationHandler(Zre,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(sie,async(r,i)=>{let s=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,a=oC.safeParse(o);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new d2(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=P5e(this._capabilities,t)}setRequestHandler(t,n){let i=rV(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Bw(i)){let a=i;s=a._zod?.def?.value??a.value}else{let a=i;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");if(s==="tools/call"){let a=async(c,u)=>{let l=kS(sC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(yn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=kS(zw,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(yn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=kS(_V,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new rn(yn.InvalidParams,`Invalid tools/call result: ${h}`)}return p.data};return super.setRequestHandler(t,a)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){y8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&g8e(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:l5e.includes(n)?n:Gre,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},lV)}async createMessage(t,n){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let r=t.messages[t.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],s=i.some(u=>u.type==="tool_result"),o=t.messages.length>1?t.messages[t.messages.length-2]:void 0,a=o?Array.isArray(o.content)?o.content:[o.content]:[],c=a.some(u=>u.type==="tool_use");if(s){if(i.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(a.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(i.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},oie,n):this.request({method:"sampling/createMessage",params:t},aC,n)}async elicitInput(t,n){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=t;return this.request({method:"elicitation/create",params:i},Ww,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=t.mode==="form"?t:{...t,mode:"form"},s=await this.request({method:"elicitation/create",params:i},Ww,n);if(s.action==="accept"&&s.content&&i.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(i.requestedSchema)(s.content);if(!a.valid)throw new rn(yn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof rn?o:new rn(yn.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return s}}}createElicitationCompletionNotifier(t,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},cie,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}});function fhn(e){return S5e.parse(JSON.parse(e))}function _8e(e){return JSON.stringify(e)+` +`}var p2,b8e=v(()=>{Pb();p2=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(` +`);if(t===-1)return null;let n=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),fhn(n)}clear(){this._buffer=void 0}}});import T8e from"node:process";var h2,v8e=v(()=>{b8e();h2=class{constructor(t=T8e.stdin,n=T8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new p2,this._started=!1,this._ondata=r=>{this._readBuffer.append(r),this.processReadBuffer()},this._onerror=r=>{this.onerror?.(r)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(n=>{let r=_8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var R8e=w((dWr,Noe)=>{"use strict";var phn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,hhn=/(\w*(\.\w*)*)\..*/;Noe.exports=function(t){if(t.name.length>0)return t.name;let n=Error.stackTraceLimit;Error.stackTraceLimit=10;try{throw new Error("anonymous function")}catch(r){return Error.stackTraceLimit=n,A8e(r.stack)}};function A8e(e){let t=e.match(phn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(hhn)[1]:"anonymous"}Noe.exports.extractPluginName=A8e});var k8e=w((fWr,w8e)=>{"use strict";w8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var FC=w((pWr,m2)=>{"use strict";var mhn=R8e(),ghn=k8e(),yhn=0;function Coe(e,t={}){let n=!1;if(e.default!==void 0&&(e=e.default),typeof e!="function")throw new TypeError(`fastify-plugin expects a function, instead got a '${typeof e}'`);if(typeof t=="string"&&(t={fastify:t}),typeof t!="object"||Array.isArray(t)||t===null)throw new TypeError("The options object should be an object");if(t.fastify!==void 0&&typeof t.fastify!="string")throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof t.fastify}'`);t.name||(n=!0,t.name=mhn(e)+"-auto-"+yhn++),e[Symbol.for("skip-override")]=t.encapsulate!==!0,e[Symbol.for("fastify.display-name")]=t.name,e[Symbol.for("plugin-meta")]=t,e.default||(e.default=e);let r=ghn(t.name);return!n&&!e[r]&&(e[r]=e),e}m2.exports=Coe;m2.exports.default=Coe;m2.exports.fastifyPlugin=Coe});var E2=w(yh=>{"use strict";var Moe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},Doe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},jC=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=n}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];delete this.items[t],this.size--,n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items[t]=r,++this.size===1?this.first=r:this.last.next=r,this.last=r}},g2=class{constructor(){this.records={}}initForCache(t,n){this.records[t]={[n]:{cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,invalidateOne:0,invalidateAll:0,sets:0}}}resetForCache(t){for(let n of Object.keys(this.records[t]))this.records[t][n]={cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,invalidateOne:0,invalidateAll:0,sets:0}}getStatistics(){return this.records}};function I8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Loe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=I8e(this.collectionStart),this.records=r||new g2,this.records.initForCache(this.cacheId,this.currentTimeStamp)}get currentRecord(){return this.records.records[this.cacheId][this.currentTimeStamp]||(this.records.records[this.cacheId][this.currentTimeStamp]={cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,sets:0,invalidateOne:0,invalidateAll:0}),this.records.records[this.cacheId][this.currentTimeStamp]}hoursPassed(){return(Date.now()-this.collectionStart)/1e3/60/60}addHit(){this.archiveIfNeeded(),this.currentRecord.hits++}addFalsyHit(){this.archiveIfNeeded(),this.currentRecord.falsyHits++}addEmptyHit(){this.archiveIfNeeded(),this.currentRecord.emptyHits++}addMiss(){this.archiveIfNeeded(),this.currentRecord.misses++}addEviction(){this.archiveIfNeeded(),this.currentRecord.evictions++}setCacheSize(t){this.archiveIfNeeded(),this.currentRecord.cacheSize=t}addExpiration(){this.archiveIfNeeded(),this.currentRecord.expirations++}addSet(){this.archiveIfNeeded(),this.currentRecord.sets++}addInvalidateOne(){this.archiveIfNeeded(),this.currentRecord.invalidateOne++}addInvalidateAll(){this.archiveIfNeeded(),this.currentRecord.invalidateAll++}getStatistics(){return this.records.getStatistics()}archiveIfNeeded(){this.hoursPassed()>=this.statisticTtlInHours&&(this.collectionStart=new Date,this.currentTimeStamp=I8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},y2=class extends jC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Loe(r,s!==void 0?s:24,i)}getStatistics(){return this.hitStatistics.getStatistics()}set(t,n){super.set(t,n),this.hitStatistics.addSet(),this.hitStatistics.setCacheSize(this.size)}evict(){super.evict(),this.hitStatistics.addEviction(),this.hitStatistics.setCacheSize(this.size)}delete(t,n=!1){super.delete(t),n||this.hitStatistics.addInvalidateOne(),this.hitStatistics.setCacheSize(this.size)}clear(){super.clear(),this.hitStatistics.addInvalidateAll(),this.hitStatistics.setCacheSize(this.size)}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t,!0),this.hitStatistics.addExpiration();return}return this.bumpLru(n),n.value||this.hitStatistics.addFalsyHit(),(n.value===void 0||n.value===null||n.value==="")&&this.hitStatistics.addEmptyHit(),this.hitStatistics.addHit(),n.value}this.hitStatistics.addMiss()}},S2=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=n}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];delete this.items[t],this.size--,n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items[t]=r,++this.size===1?this.first=r:this.last.next=r,this.last=r}};yh.Fifo=S2;yh.FifoMap=Moe;yh.FifoObject=S2;yh.HitStatisticsRecord=g2;yh.Lru=jC;yh.LruHitStatistics=y2;yh.LruMap=Doe;yh.LruObject=jC;yh.LruObjectHitStatistics=y2});var O8e=w((mWr,HC)=>{"use strict";var{FifoMap:Shn}=E2(),Ehn=/^[!#$%&'*+\-.^\w`|~]+$/u;function _hn(e){if(Ehn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function x8e(e){e=e.trim().toLowerCase();let t=[];if(e.length!==0)if(e.indexOf(",")===-1)t.push(e);else{let n=e.length,r=0,i=0,s;for(r;r{"use strict";var bhn=FC(),{addAccessControlRequestHeadersToVaryHeader:Thn,addOriginToVaryHeader:vhn}=O8e(),joe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Ahn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Foe=["preSerialization","preParsing","onSend"];function C8e(e,t){Ahn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function Rhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")P8e(t,e,{hook:joe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;P8e(s,e,o,n)}else{let s=_2(t);C8e(s.hook,n),Foe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){qC(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){qC(e,s,a,c,u)})}t.logLevel!==void 0&&(i=t.logLevel),t.hideOptionsRoute!==void 0&&(r=t.hideOptionsRoute),e.options("*",{schema:{hide:r},logLevel:i},(s,o)=>{if(!s.corsPreflightEnabled){o.callNotFound();return}o.send()}),n()}function P8e(e,t,n,r){let i=n?.hook||joe.hook;C8e(i,r),e.length===2?Foe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){N8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){N8e(e,t,o,a,c)}):Foe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>qC(t,_2(d,!0),o,a,u)).catch(u);return}u(new Error("Invalid CORS origin option"))}):t.addHook(i,function(o,a,c){let u=e(o);if(u&&typeof u.then=="function"){u.then(l=>qC(t,_2(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function N8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):qC(t,_2(o,!0),n,r,i)})}function _2(e,t){let n={...joe,...e};return Array.isArray(e.origin)&&e.origin.indexOf("*")!==-1&&(n.origin="*"),Number.isInteger(n.cacheControl)?n.cacheControl=`max-age=${n.cacheControl}`:typeof n.cacheControl!="string"&&(n.cacheControl=null),n.dynamic=t||!1,n}function qC(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&vhn(r),(typeof s.origin=="function"?Ihn(e,s.origin):(a,c)=>c(null,s.origin))(n,(a,c)=>{if(a!==null)return i(a);if(c===!1||n.routeOptions.config?.cors===!1)return i();if(!c)return i(new Error("Invalid CORS origin option"));if(whn(n,r,c,s),n.raw.method==="OPTIONS"&&s.preflight===!0){if(s.strictPreflight===!0&&(!n.headers.origin||!n.headers["access-control-request-method"])){r.status(400).type("text/plain").send("Invalid Preflight Request");return}if(n.corsPreflightEnabled=!0,khn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function whn(e,t,n,r){let i=xhn(e.headers.origin,n);i&&t.header("Access-Control-Allow-Origin",i),r.credentials&&t.header("Access-Control-Allow-Credentials","true"),r.exposedHeaders!==null&&t.header("Access-Control-Expose-Headers",Array.isArray(r.exposedHeaders)?r.exposedHeaders.join(", "):r.exposedHeaders)}function khn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){Thn(t);let r=e.headers["access-control-request-headers"];r!==void 0&&t.header("Access-Control-Allow-Headers",r)}else t.header("Access-Control-Allow-Headers",Array.isArray(n.allowedHeaders)?n.allowedHeaders.join(", "):n.allowedHeaders);n.maxAge!==null&&t.header("Access-Control-Max-Age",String(n.maxAge)),n.cacheControl&&t.header("Cache-Control",n.cacheControl)}function Ihn(e,t){return function(n,r){let i=t.call(e,n.headers.origin,r);i&&typeof i.then=="function"&&i.then(s=>r(null,s),r)}}function xhn(e,t){return typeof t=="string"?t:M8e(e,t)?e:!1}function M8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Ohn=/^(-?(?:\d+)?\.?\d+) *(m(?:illiseconds?|s(?:ecs?)?))?(s(?:ec(?:onds?|s)?)?)?(m(?:in(?:utes?|s)?)?)?(h(?:ours?|rs?)?)?(d(?:ays?)?)?(w(?:eeks?|ks?)?)?(y(?:ears?|rs?)?)?$/,T2=1e3,v2=T2*60,A2=v2*60,GC=A2*24,qoe=GC*365.25;function Phn(e){var t,n=e.toLowerCase().match(Ohn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*T2:n[4]!=null?t*v2:n[5]!=null?t*A2:n[6]!=null?t*GC:n[7]!=null?t*GC*7:n[8]!=null?t*qoe:t}function BC(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Nhn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:Chn}=E2();function R2(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new Chn(n)}R2.prototype.incr=function(e,t,n,r){let i=Date.now(),s=this.lru.get(e);if(!s)s={current:1,ttl:n,iterationStartMs:i};else if(s.iterationStartMs+n<=i)s.current=1,s.ttl=n,s.iterationStartMs=i;else if(++s.current,this.continueExceeding&&s.current>r)s.ttl=n,s.iterationStartMs=i;else if(this.exponentialBackoff&&s.current>r){let o=s.current-r-1,a=n*2**o;s.ttl=Number.isSafeInteger(a)?a:Number.MAX_SAFE_INTEGER,s.iterationStartMs=i}else s.ttl=n-(i-s.iterationStartMs);this.lru.set(e,s),t(null,s)};R2.prototype.child=function(e){return new R2(e.continueExceeding,e.exponentialBackoff,e.cache)};U8e.exports=R2});var H8e=w((EWr,j8e)=>{"use strict";var Mhn=` -- Key to operate on local key = KEYS[1] -- Time window for the TTL @@ -100,38 +100,38 @@ Mongoose Error Code: ${t.code}`:""}`})}function Bee(e,t,n,r=void 0){n&&(0,ZN.saf end return {current, timeWindow} -`;function fV(e,t,n,r="fastify-rate-limit-"){this.continueExceeding=e,this.exponentialBackoff=t,this.redis=n,this.key=r,this.redis.rateLimit||this.redis.defineCommand("rateLimit",{numberOfKeys:1,lua:Dpn})}fV.prototype.incr=function(e,t,n,r){this.redis.rateLimit(this.key+e,n,r,this.continueExceeding,this.exponentialBackoff,(i,s)=>{i?t(i,null):t(null,{current:s[0],ttl:s[1]})})};fV.prototype.child=function(e){return new fV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};c8e.exports=fV});var S8e=w((k2r,pV)=>{"use strict";var Lpn=OC(),{parse:f8e,format:Upn}=s8e(),jpn=a8e(),Fpn=u8e(),p8e=1e3,h8e=6e4,Hpn="onRequest",qpn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},Bpn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},Roe=()=>{},Gpn=e=>e.ip,zpn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function woe(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=Bpn):(n.enableDraftSpec=!1,n.labels=qpn),n.addHeaders=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0,[n.labels.retryAfter]:!0},t.addHeaders),n.addHeadersOnExceeding=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0},t.addHeadersOnExceeding),Number.isFinite(t.max)&&t.max>=0?n.max=Math.trunc(t.max):typeof t.max=="function"?n.max=t.max:n.max=p8e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=f8e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=h8e,n.hook=t.hook||Hpn,n.allowList=t.allowList||t.whitelist||null,n.ban=Number.isFinite(t.ban)&&t.ban>=0?Math.trunc(t.ban):-1,n.onBanReach=typeof t.onBanReach=="function"?t.onBanReach:Roe,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:Roe,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:Roe,n.continueExceeding=typeof t.continueExceeding=="boolean"?t.continueExceeding:!1,n.exponentialBackoff=typeof t.exponentialBackoff=="boolean"?t.exponentialBackoff:!1,n.keyGenerator=typeof t.keyGenerator=="function"?t.keyGenerator:Gpn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=zpn,n.isCustomErrorMessage=!1),n.skipOnError=typeof t.skipOnError=="boolean"?t.skipOnError:!1;let r={rateLimitRan:Symbol("fastify.request.rateLimitRan"),store:null};if(t.store){let i=t.store;r.store=new i(n)}else t.redis?r.store=new Fpn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new jpn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=l8e(r,n,i);return o=>g8e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=l8e(r,n,i);return y8e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=m8e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),d8e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&d8e(r,n,i)})}function m8e(...e){let t=Object.assign({},...e);if(Number.isFinite(t.timeWindow)&&t.timeWindow>=0?t.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?t.timeWindow=f8e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=h8e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=p8e),Number.isFinite(t.ban)&&t.ban>=0?t.ban=Math.trunc(t.ban):t.ban=-1,t.groupId!==void 0&&typeof t.groupId!="string")throw new Error("groupId must be a string");return t}function l8e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=m8e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function d8e(e,t,n){let r=t.hook,i=y8e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function g8e(e,t,n){let{store:r}=e,i=await t.keyGenerator(n),s=n.routeOptions.config?.rateLimit?.groupId;if(s&&(i+=s),t.allowList){if(typeof t.allowList=="function"){if(await t.allowList(n,i))return{isAllowed:!0,key:i}}else if(t.allowList.indexOf(i)!==-1)return{isAllowed:!0,key:i}}let o=typeof t.max=="number"?t.max:await t.max(n,i),a=typeof t.timeWindow=="number"?t.timeWindow:await t.timeWindow(n,i),c=0,u=0,l=0;try{let d=await new Promise((f,p)=>{r.incr(i,(h,m)=>{h?p(h):f(m)},a,o)});c=d.current,u=d.ttl,l=Math.ceil(d.ttl/1e3)}catch(d){if(!t.skipOnError)throw d}return{isAllowed:!1,key:i,max:o,timeWindow:a,remaining:Math.max(0,o-c),ttl:u,ttlInSeconds:l,isExceeded:c>o,isBanned:t.ban!==-1&&c-o>t.ban}}function y8e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await g8e(e,t,r);if(s.isAllowed)return;let{key:o,max:a,remaining:c,ttl:u,ttlInSeconds:l,isExceeded:d,isBanned:f}=s;if(!d){t.addHeadersOnExceeding[t.labels.rateLimit]&&i.header(t.labels.rateLimit,a),t.addHeadersOnExceeding[t.labels.rateRemaining]&&i.header(t.labels.rateRemaining,c),t.addHeadersOnExceeding[t.labels.rateReset]&&i.header(t.labels.rateReset,l),t.onExceeding(r,o);return}t.onExceeded(r,o),t.addHeaders[t.labels.rateLimit]&&i.header(t.labels.rateLimit,a),t.addHeaders[t.labels.rateRemaining]&&i.header(t.labels.rateRemaining,0),t.addHeaders[t.labels.rateReset]&&i.header(t.labels.rateReset,l),t.addHeaders[t.labels.retryAfter]&&i.header(t.labels.retryAfter,l);let p={statusCode:429,ban:!1,max:a,ttl:u,after:Upn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}pV.exports=Lpn(woe,{fastify:"5.x",name:"@fastify/rate-limit"});pV.exports.default=woe;pV.exports.fastifyRateLimit=woe});var zm=w((I2r,b8e)=>{"use strict";var _8e=["nodebuffer","arraybuffer","fragments"],E8e=typeof Blob<"u";E8e&&_8e.push("blob");b8e.exports={BINARY_TYPES:_8e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:E8e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var LC=w((x2r,hV)=>{"use strict";var{EMPTY_BUFFER:Vpn}=zm(),koe=Buffer[Symbol.species];function Wpn(e,t){if(e.length===0)return Vpn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var A8e=Symbol("kDone"),xoe=Symbol("kRun"),Ooe=class{constructor(t){this[A8e]=()=>{this.pending--,this[xoe]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[xoe]()}[xoe](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[A8e])}}};R8e.exports=Ooe});var ck=w((N2r,O8e)=>{"use strict";var UC=Y("zlib"),k8e=LC(),Zpn=w8e(),{kStatusCode:I8e}=zm(),Ypn=Buffer[Symbol.species],Jpn=Buffer.from([0,0,255,255]),gV=Symbol("permessage-deflate"),Vm=Symbol("total-length"),ok=Symbol("callback"),DS=Symbol("buffers"),ak=Symbol("error"),mV,Noe=class{constructor(t){if(this._options=t||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!mV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;mV=new Zpn(n)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[ok];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let n=this._options,r=t.find(i=>!(n.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(n.serverMaxWindowBits===!1||typeof n.serverMaxWindowBits=="number"&&n.serverMaxWindowBits>i.server_max_window_bits)||typeof n.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return n.serverNoContextTakeover&&(r.server_no_context_takeover=!0),n.clientNoContextTakeover&&(r.client_no_context_takeover=!0),typeof n.serverMaxWindowBits=="number"&&(r.server_max_window_bits=n.serverMaxWindowBits),typeof n.clientMaxWindowBits=="number"?r.client_max_window_bits=n.clientMaxWindowBits:(r.client_max_window_bits===!0||n.clientMaxWindowBits===!1)&&delete r.client_max_window_bits,r}acceptAsClient(t){let n=t[0];if(this._options.clientNoContextTakeover===!1&&n.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!n.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(n.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&n.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return n}normalizeParams(t){return t.forEach(n=>{Object.keys(n).forEach(r=>{let i=n[r];if(i.length>1)throw new Error(`Parameter "${r}" must have only a single value`);if(i=i[0],r==="client_max_window_bits"){if(i!==!0){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else if(r==="server_max_window_bits"){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(r==="client_no_context_takeover"||r==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else throw new Error(`Unknown parameter "${r}"`);n[r]=i})}),t}decompress(t,n,r){mV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){mV.add(i=>{this._compress(t,n,(s,o)=>{i(),r(s,o)})})}_decompress(t,n,r){let i=this._isServer?"client":"server";if(!this._inflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?UC.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=UC.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[gV]=this,this._inflate[Vm]=0,this._inflate[DS]=[],this._inflate.on("error",Qpn),this._inflate.on("data",x8e)}this._inflate[ok]=r,this._inflate.write(t),n&&this._inflate.write(Jpn),this._inflate.flush(()=>{let s=this._inflate[ak];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=k8e.concat(this._inflate[DS],this._inflate[Vm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Vm]=0,this._inflate[DS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),r(null,o)})}_compress(t,n,r){let i=this._isServer?"server":"client";if(!this._deflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?UC.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=UC.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Vm]=0,this._deflate[DS]=[],this._deflate.on("data",Xpn)}this._deflate[ok]=r,this._deflate.write(t),this._deflate.flush(UC.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=k8e.concat(this._deflate[DS],this._deflate[Vm]);n&&(s=new Ypn(s.buffer,s.byteOffset,s.length-4)),this._deflate[ok]=null,this._deflate[Vm]=0,this._deflate[DS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};O8e.exports=Noe;function Xpn(e){this[DS].push(e),this[Vm]+=e.length}function x8e(e){if(this[Vm]+=e.length,this[gV]._maxPayload<1||this[Vm]<=this[gV]._maxPayload){this[DS].push(e);return}this[ak]=new RangeError("Max payload size exceeded"),this[ak].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[ak][I8e]=1009,this.removeListener("data",x8e),this.reset()}function Qpn(e){if(this[gV]._inflate=null,this[ak]){this[ok](this[ak]);return}e[I8e]=1007,this[ok](e)}});var uk=w((P2r,yV)=>{"use strict";var{isUtf8:N8e}=Y("buffer"),{hasBlob:$pn}=zm(),ehn=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function thn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function Poe(e){let t=e.length,n=0;for(;n=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||e[n]===224&&(e[n+1]&224)===128||e[n]===237&&(e[n+1]&224)===160)return!1;n+=3}else if((e[n]&248)===240){if(n+3>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||(e[n+3]&192)!==128||e[n]===240&&(e[n+1]&240)===128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function nhn(e){return $pn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}yV.exports={isBlob:nhn,isValidStatusCode:thn,isValidUTF8:Poe,tokenChars:ehn};if(N8e)yV.exports.isValidUTF8=function(e){return e.length<24?Poe(e):N8e(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Y("utf-8-validate");yV.exports.isValidUTF8=function(t){return t.length<32?Poe(t):e(t)}}catch{}});var Uoe=w((C2r,j8e)=>{"use strict";var{Writable:rhn}=Y("stream"),P8e=ck(),{BINARY_TYPES:ihn,EMPTY_BUFFER:C8e,kStatusCode:shn,kWebSocket:ohn}=zm(),{concat:Coe,toArrayBuffer:ahn,unmask:chn}=LC(),{isValidStatusCode:uhn,isValidUTF8:M8e}=uk(),SV=Buffer[Symbol.species],gd=0,D8e=1,L8e=2,U8e=3,Moe=4,Doe=5,_V=6,Loe=class extends rhn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||ihn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[ohn]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=gd}_write(t,n,r){if(this._opcode===8&&this._state==gd)return r();this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(r)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t=r.length?n.set(this._buffers.shift(),i):(n.set(new Uint8Array(r.buffer,r.byteOffset,t),i),this._buffers[0]=new SV(r.buffer,r.byteOffset+t,r.length-t)),t-=r.length}while(t>0);return n}startLoop(t){this._loop=!0;do switch(this._state){case gd:this.getInfo(t);break;case D8e:this.getPayloadLength16(t);break;case L8e:this.getPayloadLength64(t);break;case U8e:this.getMask();break;case Moe:this.getData(t);break;case Doe:case _V:this._loop=!1;return}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2){this._loop=!1;return}let n=this.consume(2);if((n[0]&48)!==0){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");t(i);return}let r=(n[0]&64)===64;if(r&&!this._extensions[P8e.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(this._fin=(n[0]&128)===128,this._opcode=n[0]&15,this._payloadLength=n[1]&127,this._opcode===0){if(r){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");t(i);return}if(r){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");t(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(n[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");t(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");t(i);return}this._payloadLength===126?this._state=D8e:this._payloadLength===127?this._state=L8e:this.haveLength(t)}getPayloadLength16(t){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t)}getPayloadLength64(t){if(this._bufferedBytes<8){this._loop=!1;return}let n=this.consume(8),r=n.readUInt32BE(0);if(r>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");t(i);return}this._payloadLength=r*Math.pow(2,32)+n.readUInt32BE(4),this.haveLength(t)}haveLength(t){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let n=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(n);return}this._masked?this._state=U8e:this._state=Moe}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Moe}getData(t){let n=C8e;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=Doe,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[P8e.extensionName].decompress(t,this._fin,(i,s)=>{if(i)return n(i);if(s.length){if(this._messageLength+=s.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");n(o);return}this._fragments.push(s)}this.dataMessage(n),this._state===gd&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=gd;return}let n=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=Coe(r,n):this._binaryType==="arraybuffer"?i=ahn(Coe(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=gd):(this._state=_V,setImmediate(()=>{this.emit("message",i,!0),this._state=gd,this.startLoop(t)}))}else{let i=Coe(r,n);if(!this._skipUTF8Validation&&!M8e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===Doe||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=gd):(this._state=_V,setImmediate(()=>{this.emit("message",i,!1),this._state=gd,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,C8e),this.end();else{let r=t.readUInt16BE(0);if(!uhn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new SV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!M8e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");n(s);return}this._loop=!1,this.emit("conclude",r,i),this.end()}this._state=gd;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=gd):(this._state=_V,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=gd,this.startLoop(n)}))}createError(t,n,r,i,s){this._loop=!1,this._errored=!0;let o=new t(r?`Invalid WebSocket frame: ${n}`:n);return Error.captureStackTrace(o,this.createError),o.code=s,o[shn]=i,o}};j8e.exports=Loe});var Hoe=w((D2r,q8e)=>{"use strict";var{Duplex:M2r}=Y("stream"),{randomFillSync:lhn}=Y("crypto"),F8e=ck(),{EMPTY_BUFFER:dhn,kWebSocket:fhn,NOOP:phn}=zm(),{isBlob:lk,isValidStatusCode:hhn}=uk(),{mask:H8e,toBuffer:Hb}=LC(),yd=Symbol("kByteLength"),mhn=Buffer.alloc(4),EV=8*1024,qb,dk=EV,Rf=0,ghn=1,yhn=2,joe=class e{constructor(t,n,r){this._extensions=n||{},r&&(this._generateMask=r,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=Rf,this.onerror=phn,this[fhn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||mhn,n.generateMask?n.generateMask(r):(dk===EV&&(qb===void 0&&(qb=Buffer.alloc(EV)),lhn(qb,0,EV),dk=0),r[0]=qb[dk++],r[1]=qb[dk++],r[2]=qb[dk++],r[3]=qb[dk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[yd]!==void 0?a=n[yd]:(t=Buffer.from(t),a=t.length):(a=t.length,i=n.mask&&n.readOnly&&!o);let c=a;a>=65536?(s+=8,c=127):a>125&&(s+=2,c=126);let u=Buffer.allocUnsafe(i?a+s:s);return u[0]=n.fin?n.opcode|128:n.opcode,n.rsv1&&(u[0]|=64),u[1]=c,c===126?u.writeUInt16BE(a,2):c===127&&(u[2]=u[3]=0,u.writeUIntBE(a,4,6)),n.mask?(u[1]|=128,u[s-4]=r[0],u[s-3]=r[1],u[s-2]=r[2],u[s-1]=r[3],o?[u,t]:i?(H8e(t,r,u,s,a),[u]):(H8e(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=dhn;else{if(typeof t!="number"||!hhn(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0);else{let a=Buffer.byteLength(n);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+a),s.writeUInt16BE(t,0),typeof n=="string"?s.write(n,2):s.set(n,2)}}let o={[yd]:s.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==Rf?this.enqueue([this.dispatch,s,!1,o,i]):this.sendFrame(e.frame(s,o),i)}ping(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):lk(t)?(i=t.size,s=!1):(t=Hb(t),i=t.length,s=Hb.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[yd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};lk(t)?this._state!==Rf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==Rf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}pong(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):lk(t)?(i=t.size,s=!1):(t=Hb(t),i=t.length,s=Hb.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[yd]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};lk(t)?this._state!==Rf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==Rf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}send(t,n,r){let i=this._extensions[F8e.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):lk(t)?(a=t.size,c=!1):(t=Hb(t),a=t.length,c=Hb.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=a>=i._threshold),this._compress=o):(o=!1,s=0),n.fin&&(this._firstFragment=!0);let u={[yd]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};lk(t)?this._state!==Rf?this.enqueue([this.getBlobData,t,this._compress,u,r]):this.getBlobData(t,this._compress,u,r):this._state!==Rf?this.enqueue([this.dispatch,t,this._compress,u,r]):this.dispatch(t,this._compress,u,r)}getBlobData(t,n,r,i){this._bufferedBytes+=r[yd],this._state=yhn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(Foe,this,a,i);return}this._bufferedBytes-=r[yd];let o=Hb(s);n?this.dispatch(o,n,r,i):(this._state=Rf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(Shn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[F8e.extensionName];this._bufferedBytes+=r[yd],this._state=ghn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");Foe(this,c,i);return}this._bufferedBytes-=r[yd],this._state=Rf,r.readOnly=!1,this.sendFrame(e.frame(a,r),i),this.dequeue()})}dequeue(){for(;this._state===Rf&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][yd],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][yd],this._queue.push(t)}sendFrame(t,n){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],n),this._socket.uncork()):this._socket.write(t[0],n)}};q8e.exports=joe;function Foe(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:jC,kListener:qoe}=zm(),B8e=Symbol("kCode"),G8e=Symbol("kData"),z8e=Symbol("kError"),V8e=Symbol("kMessage"),W8e=Symbol("kReason"),fk=Symbol("kTarget"),K8e=Symbol("kType"),Z8e=Symbol("kWasClean"),Wm=class{constructor(t){this[fk]=null,this[K8e]=t}get target(){return this[fk]}get type(){return this[K8e]}};Object.defineProperty(Wm.prototype,"target",{enumerable:!0});Object.defineProperty(Wm.prototype,"type",{enumerable:!0});var Bb=class extends Wm{constructor(t,n={}){super(t),this[B8e]=n.code===void 0?0:n.code,this[W8e]=n.reason===void 0?"":n.reason,this[Z8e]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[B8e]}get reason(){return this[W8e]}get wasClean(){return this[Z8e]}};Object.defineProperty(Bb.prototype,"code",{enumerable:!0});Object.defineProperty(Bb.prototype,"reason",{enumerable:!0});Object.defineProperty(Bb.prototype,"wasClean",{enumerable:!0});var pk=class extends Wm{constructor(t,n={}){super(t),this[z8e]=n.error===void 0?null:n.error,this[V8e]=n.message===void 0?"":n.message}get error(){return this[z8e]}get message(){return this[V8e]}};Object.defineProperty(pk.prototype,"error",{enumerable:!0});Object.defineProperty(pk.prototype,"message",{enumerable:!0});var FC=class extends Wm{constructor(t,n={}){super(t),this[G8e]=n.data===void 0?null:n.data}get data(){return this[G8e]}};Object.defineProperty(FC.prototype,"data",{enumerable:!0});var _hn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[jC]&&i[qoe]===t&&!i[jC])return;let r;if(e==="message")r=function(s,o){let a=new FC("message",{data:o?s:s.toString()});a[fk]=this,bV(t,this,a)};else if(e==="close")r=function(s,o){let a=new Bb("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[fk]=this,bV(t,this,a)};else if(e==="error")r=function(s){let o=new pk("error",{error:s,message:s.message});o[fk]=this,bV(t,this,o)};else if(e==="open")r=function(){let s=new Wm("open");s[fk]=this,bV(t,this,s)};else return;r[jC]=!!n[jC],r[qoe]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[qoe]===t&&!n[jC]){this.removeListener(e,n);break}}};Y8e.exports={CloseEvent:Bb,ErrorEvent:pk,Event:Wm,EventTarget:_hn,MessageEvent:FC};function bV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var TV=w((U2r,X8e)=>{"use strict";var{tokenChars:HC}=uk();function ph(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function Ehn(e){let t=Object.create(null),n=Object.create(null),r=!1,i=!1,s=!1,o,a,c=-1,u=-1,l=-1,d=0;for(;d{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(r=>[t].concat(Object.keys(r).map(i=>{let s=r[i];return Array.isArray(s)||(s=[s]),s.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}X8e.exports={format:bhn,parse:Ehn}});var wV=w((H2r,uJe)=>{"use strict";var Thn=Y("events"),vhn=Y("https"),Ahn=Y("http"),eJe=Y("net"),Rhn=Y("tls"),{randomBytes:whn,createHash:khn}=Y("crypto"),{Duplex:j2r,Readable:F2r}=Y("stream"),{URL:Boe}=Y("url"),LS=ck(),Ihn=Uoe(),xhn=Hoe(),{isBlob:Ohn}=uk(),{BINARY_TYPES:Q8e,CLOSE_TIMEOUT:Nhn,EMPTY_BUFFER:vV,GUID:Phn,kForOnEventAttribute:Goe,kListener:Chn,kStatusCode:Mhn,kWebSocket:zo,NOOP:tJe}=zm(),{EventTarget:{addEventListener:Dhn,removeEventListener:Lhn}}=J8e(),{format:Uhn,parse:jhn}=TV(),{toBuffer:Fhn}=LC(),nJe=Symbol("kAborted"),zoe=[8,13],Km=["CONNECTING","OPEN","CLOSING","CLOSED"],Hhn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Di=class e extends Thn{constructor(t,n,r){super(),this._binaryType=Q8e[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=vV,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,n===void 0?n=[]:Array.isArray(n)||(typeof n=="object"&&n!==null?(r=n,n=[]):n=[n]),rJe(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){Q8e.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,r){let i=new Ihn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new xhn(t,this._extensions,r.generateMask);this._receiver=i,this._sender=s,this._socket=t,i[zo]=this,s[zo]=this,t[zo]=this,i.on("conclude",Ghn),i.on("drain",zhn),i.on("error",Vhn),i.on("message",Whn),i.on("ping",Khn),i.on("pong",Zhn),s.onerror=Yhn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",oJe),t.on("data",RV),t.on("end",aJe),t.on("error",cJe),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[LS.extensionName]&&this._extensions[LS.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){pl(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,r=>{r||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),sJe(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(r=t,t=n=void 0):typeof n=="function"&&(r=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Voe(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||vV,n,r)}pong(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(r=t,t=n=void 0):typeof n=="function"&&(r=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Voe(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||vV,n,r)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof n=="function"&&(r=n,n={}),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Voe(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[LS.extensionName]||(i.compress=!1),this._sender.send(t||vV,i,r)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){pl(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(Di,"CONNECTING",{enumerable:!0,value:Km.indexOf("CONNECTING")});Object.defineProperty(Di.prototype,"CONNECTING",{enumerable:!0,value:Km.indexOf("CONNECTING")});Object.defineProperty(Di,"OPEN",{enumerable:!0,value:Km.indexOf("OPEN")});Object.defineProperty(Di.prototype,"OPEN",{enumerable:!0,value:Km.indexOf("OPEN")});Object.defineProperty(Di,"CLOSING",{enumerable:!0,value:Km.indexOf("CLOSING")});Object.defineProperty(Di.prototype,"CLOSING",{enumerable:!0,value:Km.indexOf("CLOSING")});Object.defineProperty(Di,"CLOSED",{enumerable:!0,value:Km.indexOf("CLOSED")});Object.defineProperty(Di.prototype,"CLOSED",{enumerable:!0,value:Km.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(Di.prototype,e,{enumerable:!0})});["open","error","close","message"].forEach(e=>{Object.defineProperty(Di.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[Goe])return t[Chn];return null},set(t){for(let n of this.listeners(e))if(n[Goe]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[Goe]:!0})}})});Di.prototype.addEventListener=Dhn;Di.prototype.removeEventListener=Lhn;uJe.exports=Di;function rJe(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Nhn,protocolVersion:zoe[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=i.autoPong,e._closeTimeout=i.closeTimeout,!zoe.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${zoe.join(", ")})`);let s;if(t instanceof Boe)s=t;else try{s=new Boe(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}s.protocol==="http:"?s.protocol="ws:":s.protocol==="https:"&&(s.protocol="wss:"),e._url=s.href;let o=s.protocol==="wss:",a=s.protocol==="ws+unix:",c;if(s.protocol!=="ws:"&&!o&&!a?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!s.pathname?c="The URL's pathname is empty":s.hash&&(c="The URL contains a fragment identifier"),c){let m=new SyntaxError(c);if(e._redirects===0)throw m;AV(e,m);return}let u=o?443:80,l=whn(16).toString("base64"),d=o?vhn.request:Ahn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?Bhn:qhn),i.defaultPort=i.defaultPort||u,i.port=s.port||u,i.host=s.hostname.startsWith("[")?s.hostname.slice(1,-1):s.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":l,Connection:"Upgrade",Upgrade:"websocket"},i.path=s.pathname+s.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(p=new LS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=Uhn({[LS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!Hhn.test(m)||f.has(m))throw new SyntaxError("An invalid or duplicated subprotocol was specified");f.add(m)}i.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(s.username||s.password)&&(i.auth=`${s.username}:${s.password}`),a){let m=i.path.split(":");i.socketPath=m[0],i.path=m[1]}let h;if(i.followRedirects){if(e._redirects===0){e._originalIpc=a,e._originalSecure=o,e._originalHostOrSocketPath=a?i.socketPath:s.host;let m=r&&r.headers;if(r={...r,headers:{}},m)for(let[y,g]of Object.entries(m))r.headers[y.toLowerCase()]=g}else if(e.listenerCount("redirect")===0){let m=a?e._originalIpc?i.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:s.host===e._originalHostOrSocketPath;(!m||e._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,m||delete i.headers.host,i.auth=void 0)}i.auth&&!r.headers.authorization&&(r.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),h=e._req=d(i),e._redirects&&e.emit("redirect",e.url,h)}else h=e._req=d(i);i.timeout&&h.on("timeout",()=>{pl(e,h,"Opening handshake has timed out")}),h.on("error",m=>{h===null||h[nJe]||(h=e._req=null,AV(e,m))}),h.on("response",m=>{let y=m.headers.location,g=m.statusCode;if(y&&i.followRedirects&&g>=300&&g<400){if(++e._redirects>i.maxRedirects){pl(e,h,"Maximum redirects exceeded");return}h.abort();let E;try{E=new Boe(y,t)}catch{let _=new SyntaxError(`Invalid URL: ${y}`);AV(e,_);return}rJe(e,E,n,r)}else e.emit("unexpected-response",h,m)||pl(e,h,`Unexpected server response: ${m.statusCode}`)}),h.on("upgrade",(m,y,g)=>{if(e.emit("upgrade",m),e.readyState!==Di.CONNECTING)return;h=e._req=null;let E=m.headers.upgrade;if(E===void 0||E.toLowerCase()!=="websocket"){pl(e,y,"Invalid Upgrade header");return}let S=khn("sha1").update(l+Phn).digest("base64");if(m.headers["sec-websocket-accept"]!==S){pl(e,y,"Invalid Sec-WebSocket-Accept header");return}let _=m.headers["sec-websocket-protocol"],b;if(_!==void 0?f.size?f.has(_)||(b="Server sent an invalid subprotocol"):b="Server sent a subprotocol but none was requested":f.size&&(b="Server sent no subprotocol"),b){pl(e,y,b);return}_&&(e._protocol=_);let T=m.headers["sec-websocket-extensions"];if(T!==void 0){if(!p){pl(e,y,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let A;try{A=jhn(T)}catch{pl(e,y,"Invalid Sec-WebSocket-Extensions header");return}let R=Object.keys(A);if(R.length!==1||R[0]!==LS.extensionName){pl(e,y,"Server indicated an extension that was not requested");return}try{p.accept(A[LS.extensionName])}catch{pl(e,y,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[LS.extensionName]=p}e.setSocket(y,g,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(h,e):h.end()}function AV(e,t){e._readyState=Di.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function qhn(e){return e.path=e.socketPath,eJe.connect(e)}function Bhn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=eJe.isIP(e.host)?"":e.host),Rhn.connect(e)}function pl(e,t,n){e._readyState=Di.CLOSING;let r=new Error(n);Error.captureStackTrace(r,pl),t.setHeader?(t[nJe]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(AV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function Voe(e,t,n){if(t){let r=Ohn(t)?t.size:Fhn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${Km[e.readyState]})`);process.nextTick(n,r)}}function Ghn(e,t){let n=this[zo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[zo]!==void 0&&(n._socket.removeListener("data",RV),process.nextTick(iJe,n._socket),e===1005?n.close():n.close(e,t))}function zhn(){let e=this[zo];e.isPaused||e._socket.resume()}function Vhn(e){let t=this[zo];t._socket[zo]!==void 0&&(t._socket.removeListener("data",RV),process.nextTick(iJe,t._socket),t.close(e[Mhn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function $8e(){this[zo].emitClose()}function Whn(e,t){this[zo].emit("message",e,t)}function Khn(e){let t=this[zo];t._autoPong&&t.pong(e,!this._isServer,tJe),t.emit("ping",e)}function Zhn(e){this[zo].emit("pong",e)}function iJe(e){e.resume()}function Yhn(e){let t=this[zo];t.readyState!==Di.CLOSED&&(t.readyState===Di.OPEN&&(t._readyState=Di.CLOSING,sJe(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function sJe(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function oJe(){let e=this[zo];if(this.removeListener("close",oJe),this.removeListener("data",RV),this.removeListener("end",aJe),e._readyState=Di.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[zo]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",$8e),e._receiver.on("finish",$8e))}function RV(e){this[zo]._receiver.write(e)||this.pause()}function aJe(){let e=this[zo];e._readyState=Di.CLOSING,e._receiver.end(),this.end()}function cJe(){let e=this[zo];this.removeListener("error",cJe),this.on("error",tJe),e&&(e._readyState=Di.CLOSING,this.destroy())}});var pJe=w((B2r,fJe)=>{"use strict";var q2r=wV(),{Duplex:Jhn}=Y("stream");function lJe(e){e.emit("close")}function Xhn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function dJe(e){this.removeListener("error",dJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function Qhn(e,t){let n=!0,r=new Jhn({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(s,o){let a=!o&&r._readableState.objectMode?s.toString():s;r.push(a)||e.pause()}),e.once("error",function(s){r.destroyed||(n=!1,r.destroy(s))}),e.once("close",function(){r.destroyed||r.push(null)}),r._destroy=function(i,s){if(e.readyState===e.CLOSED){s(i),process.nextTick(lJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(lJe,r)}),n&&e.terminate()},r._final=function(i){if(e.readyState===e.CONNECTING){e.once("open",function(){r._final(i)});return}e._socket!==null&&(e._socket._writableState.finished?(i(),r._readableState.endEmitted&&r.destroy()):(e._socket.once("finish",function(){i()}),e.close()))},r._read=function(){e.isPaused&&e.resume()},r._write=function(i,s,o){if(e.readyState===e.CONNECTING){e.once("open",function(){r._write(i,s,o)});return}e.send(i,o)},r.on("end",Xhn),r.on("error",dJe),r}fJe.exports=Qhn});var Woe=w((G2r,hJe)=>{"use strict";var{tokenChars:$hn}=uk();function emn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var tmn=Y("events"),kV=Y("http"),{Duplex:z2r}=Y("stream"),{createHash:nmn}=Y("crypto"),mJe=TV(),Gb=ck(),rmn=Woe(),imn=wV(),{CLOSE_TIMEOUT:smn,GUID:omn,kWebSocket:amn}=zm(),cmn=/^[+/0-9A-Za-z]{22}==$/,gJe=0,yJe=1,_Je=2,Koe=class extends tmn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:smn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:imn,...t},t.port==null&&!t.server&&!t.noServer||t.port!=null&&(t.server||t.noServer)||t.server&&t.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(t.port!=null?(this._server=kV.createServer((r,i)=>{let s=kV.STATUS_CODES[426];i.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"}),i.end(s)}),this._server.listen(t.port,t.host,t.backlog,n)):t.server&&(this._server=t.server),this._server){let r=this.emit.bind(this,"connection");this._removeListeners=umn(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,s,o)=>{this.handleUpgrade(i,s,o,r)}})}t.perMessageDeflate===!0&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=gJe}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(this._state===_Je){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(qC,this);return}if(t&&this.once("close",t),this._state!==yJe)if(this._state=yJe,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(qC,this):process.nextTick(qC,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{qC(this)})}}shouldHandle(t){if(this.options.path){let n=t.url.indexOf("?");if((n!==-1?t.url.slice(0,n):t.url)!==this.options.path)return!1}return!0}handleUpgrade(t,n,r,i){n.on("error",SJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){zb(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){zb(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!cmn.test(s)){zb(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){zb(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){BC(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=rmn.parse(c)}catch{zb(this,t,n,400,"Invalid Sec-WebSocket-Protocol header");return}let l=t.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&l!==void 0){let f=new Gb({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=mJe.parse(l);p[Gb.extensionName]&&(f.accept(p[Gb.extensionName]),d[Gb.extensionName]=f)}catch{zb(this,t,n,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let f={origin:t.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(t.socket.authorized||t.socket.encrypted),req:t};if(this.options.verifyClient.length===2){this.options.verifyClient(f,(p,h,m,y)=>{if(!p)return BC(n,h||401,m,y);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return BC(n,401)}this.completeUpgrade(d,s,u,t,n,r,i)}completeUpgrade(t,n,r,i,s,o,a){if(!s.readable||!s.writable)return s.destroy();if(s[amn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>gJe)return BC(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${nmn("sha1").update(n+omn).digest("base64")}`],l=new this.options.WebSocket(null,void 0,this.options);if(r.size){let d=this.options.handleProtocols?this.options.handleProtocols(r,i):r.values().next().value;d&&(u.push(`Sec-WebSocket-Protocol: ${d}`),l._protocol=d)}if(t[Gb.extensionName]){let d=t[Gb.extensionName].params,f=mJe.format({[Gb.extensionName]:[d]});u.push(`Sec-WebSocket-Extensions: ${f}`),l._extensions=t}this.emit("headers",u,i),s.write(u.concat(`\r +`;function w2(e,t,n,r="fastify-rate-limit-"){this.continueExceeding=e,this.exponentialBackoff=t,this.redis=n,this.key=r,this.redis.rateLimit||this.redis.defineCommand("rateLimit",{numberOfKeys:1,lua:Mhn})}w2.prototype.incr=function(e,t,n,r){this.redis.rateLimit(this.key+e,n,r,this.continueExceeding,this.exponentialBackoff,(i,s)=>{i?t(i,null):t(null,{current:s[0],ttl:s[1]})})};w2.prototype.child=function(e){return new w2(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};j8e.exports=w2});var Z8e=w((_Wr,k2)=>{"use strict";var Dhn=FC(),{parse:G8e,format:Lhn}=L8e(),Uhn=F8e(),Fhn=H8e(),z8e=1e3,V8e=6e4,jhn="onRequest",Hhn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},qhn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},Goe=()=>{},Bhn=e=>e.ip,Ghn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function zoe(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=qhn):(n.enableDraftSpec=!1,n.labels=Hhn),n.addHeaders=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0,[n.labels.retryAfter]:!0},t.addHeaders),n.addHeadersOnExceeding=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0},t.addHeadersOnExceeding),Number.isFinite(t.max)&&t.max>=0?n.max=Math.trunc(t.max):typeof t.max=="function"?n.max=t.max:n.max=z8e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=G8e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=V8e,n.hook=t.hook||jhn,n.allowList=t.allowList||t.whitelist||null,n.ban=Number.isFinite(t.ban)&&t.ban>=0?Math.trunc(t.ban):-1,n.onBanReach=typeof t.onBanReach=="function"?t.onBanReach:Goe,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:Goe,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:Goe,n.continueExceeding=typeof t.continueExceeding=="boolean"?t.continueExceeding:!1,n.exponentialBackoff=typeof t.exponentialBackoff=="boolean"?t.exponentialBackoff:!1,n.keyGenerator=typeof t.keyGenerator=="function"?t.keyGenerator:Bhn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=Ghn,n.isCustomErrorMessage=!1),n.skipOnError=typeof t.skipOnError=="boolean"?t.skipOnError:!1;let r={rateLimitRan:Symbol("fastify.request.rateLimitRan"),store:null};if(t.store){let i=t.store;r.store=new i(n)}else t.redis?r.store=new Fhn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new Uhn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=q8e(r,n,i);return o=>K8e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=q8e(r,n,i);return Y8e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=W8e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),B8e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&B8e(r,n,i)})}function W8e(...e){let t=Object.assign({},...e);if(Number.isFinite(t.timeWindow)&&t.timeWindow>=0?t.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?t.timeWindow=G8e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=V8e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=z8e),Number.isFinite(t.ban)&&t.ban>=0?t.ban=Math.trunc(t.ban):t.ban=-1,t.groupId!==void 0&&typeof t.groupId!="string")throw new Error("groupId must be a string");return t}function q8e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=W8e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function B8e(e,t,n){let r=t.hook,i=Y8e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function K8e(e,t,n){let{store:r}=e,i=await t.keyGenerator(n),s=n.routeOptions.config?.rateLimit?.groupId;if(s&&(i+=s),t.allowList){if(typeof t.allowList=="function"){if(await t.allowList(n,i))return{isAllowed:!0,key:i}}else if(t.allowList.indexOf(i)!==-1)return{isAllowed:!0,key:i}}let o=typeof t.max=="number"?t.max:await t.max(n,i),a=typeof t.timeWindow=="number"?t.timeWindow:await t.timeWindow(n,i),c=0,u=0,l=0;try{let d=await new Promise((f,p)=>{r.incr(i,(h,m)=>{h?p(h):f(m)},a,o)});c=d.current,u=d.ttl,l=Math.ceil(d.ttl/1e3)}catch(d){if(!t.skipOnError)throw d}return{isAllowed:!1,key:i,max:o,timeWindow:a,remaining:Math.max(0,o-c),ttl:u,ttlInSeconds:l,isExceeded:c>o,isBanned:t.ban!==-1&&c-o>t.ban}}function Y8e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await K8e(e,t,r);if(s.isAllowed)return;let{key:o,max:a,remaining:c,ttl:u,ttlInSeconds:l,isExceeded:d,isBanned:f}=s;if(!d){t.addHeadersOnExceeding[t.labels.rateLimit]&&i.header(t.labels.rateLimit,a),t.addHeadersOnExceeding[t.labels.rateRemaining]&&i.header(t.labels.rateRemaining,c),t.addHeadersOnExceeding[t.labels.rateReset]&&i.header(t.labels.rateReset,l),t.onExceeding(r,o);return}t.onExceeded(r,o),t.addHeaders[t.labels.rateLimit]&&i.header(t.labels.rateLimit,a),t.addHeaders[t.labels.rateRemaining]&&i.header(t.labels.rateRemaining,0),t.addHeaders[t.labels.rateReset]&&i.header(t.labels.rateReset,l),t.addHeaders[t.labels.retryAfter]&&i.header(t.labels.retryAfter,l);let p={statusCode:429,ban:!1,max:a,ttl:u,after:Lhn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}k2.exports=Dhn(zoe,{fastify:"5.x",name:"@fastify/rate-limit"});k2.exports.default=zoe;k2.exports.fastifyRateLimit=zoe});var Zm=w((bWr,Q8e)=>{"use strict";var J8e=["nodebuffer","arraybuffer","fragments"],X8e=typeof Blob<"u";X8e&&J8e.push("blob");Q8e.exports={BINARY_TYPES:J8e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:X8e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var zC=w((TWr,I2)=>{"use strict";var{EMPTY_BUFFER:zhn}=Zm(),Voe=Buffer[Symbol.species];function Vhn(e,t){if(e.length===0)return zhn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var tJe=Symbol("kDone"),Koe=Symbol("kRun"),Yoe=class{constructor(t){this[tJe]=()=>{this.pending--,this[Koe]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[Koe]()}[Koe](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[tJe])}}};nJe.exports=Yoe});var hk=w((AWr,aJe)=>{"use strict";var VC=Y("zlib"),iJe=zC(),Khn=rJe(),{kStatusCode:sJe}=Zm(),Yhn=Buffer[Symbol.species],Zhn=Buffer.from([0,0,255,255]),O2=Symbol("permessage-deflate"),Jm=Symbol("total-length"),fk=Symbol("callback"),jS=Symbol("buffers"),pk=Symbol("error"),x2,Zoe=class{constructor(t){if(this._options=t||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!x2){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;x2=new Khn(n)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[fk];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let n=this._options,r=t.find(i=>!(n.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(n.serverMaxWindowBits===!1||typeof n.serverMaxWindowBits=="number"&&n.serverMaxWindowBits>i.server_max_window_bits)||typeof n.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return n.serverNoContextTakeover&&(r.server_no_context_takeover=!0),n.clientNoContextTakeover&&(r.client_no_context_takeover=!0),typeof n.serverMaxWindowBits=="number"&&(r.server_max_window_bits=n.serverMaxWindowBits),typeof n.clientMaxWindowBits=="number"?r.client_max_window_bits=n.clientMaxWindowBits:(r.client_max_window_bits===!0||n.clientMaxWindowBits===!1)&&delete r.client_max_window_bits,r}acceptAsClient(t){let n=t[0];if(this._options.clientNoContextTakeover===!1&&n.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!n.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(n.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&n.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return n}normalizeParams(t){return t.forEach(n=>{Object.keys(n).forEach(r=>{let i=n[r];if(i.length>1)throw new Error(`Parameter "${r}" must have only a single value`);if(i=i[0],r==="client_max_window_bits"){if(i!==!0){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else if(r==="server_max_window_bits"){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(r==="client_no_context_takeover"||r==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else throw new Error(`Unknown parameter "${r}"`);n[r]=i})}),t}decompress(t,n,r){x2.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){x2.add(i=>{this._compress(t,n,(s,o)=>{i(),r(s,o)})})}_decompress(t,n,r){let i=this._isServer?"client":"server";if(!this._inflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?VC.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=VC.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[O2]=this,this._inflate[Jm]=0,this._inflate[jS]=[],this._inflate.on("error",Xhn),this._inflate.on("data",oJe)}this._inflate[fk]=r,this._inflate.write(t),n&&this._inflate.write(Zhn),this._inflate.flush(()=>{let s=this._inflate[pk];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=iJe.concat(this._inflate[jS],this._inflate[Jm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Jm]=0,this._inflate[jS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),r(null,o)})}_compress(t,n,r){let i=this._isServer?"server":"client";if(!this._deflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?VC.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=VC.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Jm]=0,this._deflate[jS]=[],this._deflate.on("data",Jhn)}this._deflate[fk]=r,this._deflate.write(t),this._deflate.flush(VC.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=iJe.concat(this._deflate[jS],this._deflate[Jm]);n&&(s=new Yhn(s.buffer,s.byteOffset,s.length-4)),this._deflate[fk]=null,this._deflate[Jm]=0,this._deflate[jS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};aJe.exports=Zoe;function Jhn(e){this[jS].push(e),this[Jm]+=e.length}function oJe(e){if(this[Jm]+=e.length,this[O2]._maxPayload<1||this[Jm]<=this[O2]._maxPayload){this[jS].push(e);return}this[pk]=new RangeError("Max payload size exceeded"),this[pk].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[pk][sJe]=1009,this.removeListener("data",oJe),this.reset()}function Xhn(e){if(this[O2]._inflate=null,this[pk]){this[fk](this[pk]);return}e[sJe]=1007,this[fk](e)}});var mk=w((RWr,P2)=>{"use strict";var{isUtf8:cJe}=Y("buffer"),{hasBlob:Qhn}=Zm(),$hn=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function emn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function Joe(e){let t=e.length,n=0;for(;n=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||e[n]===224&&(e[n+1]&224)===128||e[n]===237&&(e[n+1]&224)===160)return!1;n+=3}else if((e[n]&248)===240){if(n+3>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||(e[n+3]&192)!==128||e[n]===240&&(e[n+1]&240)===128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function tmn(e){return Qhn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}P2.exports={isBlob:tmn,isValidStatusCode:emn,isValidUTF8:Joe,tokenChars:$hn};if(cJe)P2.exports.isValidUTF8=function(e){return e.length<24?Joe(e):cJe(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=Y("utf-8-validate");P2.exports.isValidUTF8=function(t){return t.length<32?Joe(t):e(t)}}catch{}});var tae=w((wWr,mJe)=>{"use strict";var{Writable:nmn}=Y("stream"),uJe=hk(),{BINARY_TYPES:rmn,EMPTY_BUFFER:lJe,kStatusCode:imn,kWebSocket:smn}=Zm(),{concat:Xoe,toArrayBuffer:omn,unmask:amn}=zC(),{isValidStatusCode:cmn,isValidUTF8:dJe}=mk(),N2=Buffer[Symbol.species],Ed=0,fJe=1,pJe=2,hJe=3,Qoe=4,$oe=5,C2=6,eae=class extends nmn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||rmn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[smn]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=Ed}_write(t,n,r){if(this._opcode===8&&this._state==Ed)return r();this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(r)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t=r.length?n.set(this._buffers.shift(),i):(n.set(new Uint8Array(r.buffer,r.byteOffset,t),i),this._buffers[0]=new N2(r.buffer,r.byteOffset+t,r.length-t)),t-=r.length}while(t>0);return n}startLoop(t){this._loop=!0;do switch(this._state){case Ed:this.getInfo(t);break;case fJe:this.getPayloadLength16(t);break;case pJe:this.getPayloadLength64(t);break;case hJe:this.getMask();break;case Qoe:this.getData(t);break;case $oe:case C2:this._loop=!1;return}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2){this._loop=!1;return}let n=this.consume(2);if((n[0]&48)!==0){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");t(i);return}let r=(n[0]&64)===64;if(r&&!this._extensions[uJe.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(this._fin=(n[0]&128)===128,this._opcode=n[0]&15,this._payloadLength=n[1]&127,this._opcode===0){if(r){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");t(i);return}if(r){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");t(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(n[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");t(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");t(i);return}this._payloadLength===126?this._state=fJe:this._payloadLength===127?this._state=pJe:this.haveLength(t)}getPayloadLength16(t){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t)}getPayloadLength64(t){if(this._bufferedBytes<8){this._loop=!1;return}let n=this.consume(8),r=n.readUInt32BE(0);if(r>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");t(i);return}this._payloadLength=r*Math.pow(2,32)+n.readUInt32BE(4),this.haveLength(t)}haveLength(t){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let n=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(n);return}this._masked?this._state=hJe:this._state=Qoe}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Qoe}getData(t){let n=lJe;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=$oe,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[uJe.extensionName].decompress(t,this._fin,(i,s)=>{if(i)return n(i);if(s.length){if(this._messageLength+=s.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");n(o);return}this._fragments.push(s)}this.dataMessage(n),this._state===Ed&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=Ed;return}let n=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=Xoe(r,n):this._binaryType==="arraybuffer"?i=omn(Xoe(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=Ed):(this._state=C2,setImmediate(()=>{this.emit("message",i,!0),this._state=Ed,this.startLoop(t)}))}else{let i=Xoe(r,n);if(!this._skipUTF8Validation&&!dJe(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===$oe||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=Ed):(this._state=C2,setImmediate(()=>{this.emit("message",i,!1),this._state=Ed,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,lJe),this.end();else{let r=t.readUInt16BE(0);if(!cmn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new N2(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!dJe(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");n(s);return}this._loop=!1,this.emit("conclude",r,i),this.end()}this._state=Ed;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=Ed):(this._state=C2,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=Ed,this.startLoop(n)}))}createError(t,n,r,i,s){this._loop=!1,this._errored=!0;let o=new t(r?`Invalid WebSocket frame: ${n}`:n);return Error.captureStackTrace(o,this.createError),o.code=s,o[imn]=i,o}};mJe.exports=eae});var iae=w((IWr,SJe)=>{"use strict";var{Duplex:kWr}=Y("stream"),{randomFillSync:umn}=Y("crypto"),gJe=hk(),{EMPTY_BUFFER:lmn,kWebSocket:dmn,NOOP:fmn}=Zm(),{isBlob:gk,isValidStatusCode:pmn}=mk(),{mask:yJe,toBuffer:zb}=zC(),_d=Symbol("kByteLength"),hmn=Buffer.alloc(4),M2=8*1024,Vb,yk=M2,kf=0,mmn=1,gmn=2,nae=class e{constructor(t,n,r){this._extensions=n||{},r&&(this._generateMask=r,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=kf,this.onerror=fmn,this[dmn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||hmn,n.generateMask?n.generateMask(r):(yk===M2&&(Vb===void 0&&(Vb=Buffer.alloc(M2)),umn(Vb,0,M2),yk=0),r[0]=Vb[yk++],r[1]=Vb[yk++],r[2]=Vb[yk++],r[3]=Vb[yk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[_d]!==void 0?a=n[_d]:(t=Buffer.from(t),a=t.length):(a=t.length,i=n.mask&&n.readOnly&&!o);let c=a;a>=65536?(s+=8,c=127):a>125&&(s+=2,c=126);let u=Buffer.allocUnsafe(i?a+s:s);return u[0]=n.fin?n.opcode|128:n.opcode,n.rsv1&&(u[0]|=64),u[1]=c,c===126?u.writeUInt16BE(a,2):c===127&&(u[2]=u[3]=0,u.writeUIntBE(a,4,6)),n.mask?(u[1]|=128,u[s-4]=r[0],u[s-3]=r[1],u[s-2]=r[2],u[s-1]=r[3],o?[u,t]:i?(yJe(t,r,u,s,a),[u]):(yJe(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=lmn;else{if(typeof t!="number"||!pmn(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0);else{let a=Buffer.byteLength(n);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+a),s.writeUInt16BE(t,0),typeof n=="string"?s.write(n,2):s.set(n,2)}}let o={[_d]:s.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==kf?this.enqueue([this.dispatch,s,!1,o,i]):this.sendFrame(e.frame(s,o),i)}ping(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):gk(t)?(i=t.size,s=!1):(t=zb(t),i=t.length,s=zb.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[_d]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};gk(t)?this._state!==kf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==kf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}pong(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):gk(t)?(i=t.size,s=!1):(t=zb(t),i=t.length,s=zb.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[_d]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};gk(t)?this._state!==kf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==kf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}send(t,n,r){let i=this._extensions[gJe.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):gk(t)?(a=t.size,c=!1):(t=zb(t),a=t.length,c=zb.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=a>=i._threshold),this._compress=o):(o=!1,s=0),n.fin&&(this._firstFragment=!0);let u={[_d]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};gk(t)?this._state!==kf?this.enqueue([this.getBlobData,t,this._compress,u,r]):this.getBlobData(t,this._compress,u,r):this._state!==kf?this.enqueue([this.dispatch,t,this._compress,u,r]):this.dispatch(t,this._compress,u,r)}getBlobData(t,n,r,i){this._bufferedBytes+=r[_d],this._state=gmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(rae,this,a,i);return}this._bufferedBytes-=r[_d];let o=zb(s);n?this.dispatch(o,n,r,i):(this._state=kf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(ymn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[gJe.extensionName];this._bufferedBytes+=r[_d],this._state=mmn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");rae(this,c,i);return}this._bufferedBytes-=r[_d],this._state=kf,r.readOnly=!1,this.sendFrame(e.frame(a,r),i),this.dequeue()})}dequeue(){for(;this._state===kf&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][_d],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][_d],this._queue.push(t)}sendFrame(t,n){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],n),this._socket.uncork()):this._socket.write(t[0],n)}};SJe.exports=nae;function rae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:WC,kListener:sae}=Zm(),EJe=Symbol("kCode"),_Je=Symbol("kData"),bJe=Symbol("kError"),TJe=Symbol("kMessage"),vJe=Symbol("kReason"),Sk=Symbol("kTarget"),AJe=Symbol("kType"),RJe=Symbol("kWasClean"),Xm=class{constructor(t){this[Sk]=null,this[AJe]=t}get target(){return this[Sk]}get type(){return this[AJe]}};Object.defineProperty(Xm.prototype,"target",{enumerable:!0});Object.defineProperty(Xm.prototype,"type",{enumerable:!0});var Wb=class extends Xm{constructor(t,n={}){super(t),this[EJe]=n.code===void 0?0:n.code,this[vJe]=n.reason===void 0?"":n.reason,this[RJe]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[EJe]}get reason(){return this[vJe]}get wasClean(){return this[RJe]}};Object.defineProperty(Wb.prototype,"code",{enumerable:!0});Object.defineProperty(Wb.prototype,"reason",{enumerable:!0});Object.defineProperty(Wb.prototype,"wasClean",{enumerable:!0});var Ek=class extends Xm{constructor(t,n={}){super(t),this[bJe]=n.error===void 0?null:n.error,this[TJe]=n.message===void 0?"":n.message}get error(){return this[bJe]}get message(){return this[TJe]}};Object.defineProperty(Ek.prototype,"error",{enumerable:!0});Object.defineProperty(Ek.prototype,"message",{enumerable:!0});var KC=class extends Xm{constructor(t,n={}){super(t),this[_Je]=n.data===void 0?null:n.data}get data(){return this[_Je]}};Object.defineProperty(KC.prototype,"data",{enumerable:!0});var Smn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[WC]&&i[sae]===t&&!i[WC])return;let r;if(e==="message")r=function(s,o){let a=new KC("message",{data:o?s:s.toString()});a[Sk]=this,D2(t,this,a)};else if(e==="close")r=function(s,o){let a=new Wb("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Sk]=this,D2(t,this,a)};else if(e==="error")r=function(s){let o=new Ek("error",{error:s,message:s.message});o[Sk]=this,D2(t,this,o)};else if(e==="open")r=function(){let s=new Xm("open");s[Sk]=this,D2(t,this,s)};else return;r[WC]=!!n[WC],r[sae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[sae]===t&&!n[WC]){this.removeListener(e,n);break}}};wJe.exports={CloseEvent:Wb,ErrorEvent:Ek,Event:Xm,EventTarget:Smn,MessageEvent:KC};function D2(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var L2=w((OWr,IJe)=>{"use strict";var{tokenChars:YC}=mk();function Sh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function Emn(e){let t=Object.create(null),n=Object.create(null),r=!1,i=!1,s=!1,o,a,c=-1,u=-1,l=-1,d=0;for(;d{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(r=>[t].concat(Object.keys(r).map(i=>{let s=r[i];return Array.isArray(s)||(s=[s]),s.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}IJe.exports={format:_mn,parse:Emn}});var H2=w((CWr,HJe)=>{"use strict";var bmn=Y("events"),Tmn=Y("https"),vmn=Y("http"),PJe=Y("net"),Amn=Y("tls"),{randomBytes:Rmn,createHash:wmn}=Y("crypto"),{Duplex:PWr,Readable:NWr}=Y("stream"),{URL:oae}=Y("url"),HS=hk(),kmn=tae(),Imn=iae(),{isBlob:xmn}=mk(),{BINARY_TYPES:xJe,CLOSE_TIMEOUT:Omn,EMPTY_BUFFER:U2,GUID:Pmn,kForOnEventAttribute:aae,kListener:Nmn,kStatusCode:Cmn,kWebSocket:Wo,NOOP:NJe}=Zm(),{EventTarget:{addEventListener:Mmn,removeEventListener:Dmn}}=kJe(),{format:Lmn,parse:Umn}=L2(),{toBuffer:Fmn}=zC(),CJe=Symbol("kAborted"),cae=[8,13],Qm=["CONNECTING","OPEN","CLOSING","CLOSED"],jmn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends bmn{constructor(t,n,r){super(),this._binaryType=xJe[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=U2,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,n===void 0?n=[]:Array.isArray(n)||(typeof n=="object"&&n!==null?(r=n,n=[]):n=[n]),MJe(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){xJe.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,r){let i=new kmn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Imn(t,this._extensions,r.generateMask);this._receiver=i,this._sender=s,this._socket=t,i[Wo]=this,s[Wo]=this,t[Wo]=this,i.on("conclude",Bmn),i.on("drain",Gmn),i.on("error",zmn),i.on("message",Vmn),i.on("ping",Wmn),i.on("pong",Kmn),s.onerror=Ymn,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",UJe),t.on("data",j2),t.on("end",FJe),t.on("error",jJe),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[HS.extensionName]&&this._extensions[HS.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){Sl(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,r=>{r||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),LJe(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(r=t,t=n=void 0):typeof n=="function"&&(r=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){uae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||U2,n,r)}pong(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(r=t,t=n=void 0):typeof n=="function"&&(r=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){uae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||U2,n,r)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof n=="function"&&(r=n,n={}),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){uae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[HS.extensionName]||(i.compress=!1),this._sender.send(t||U2,i,r)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){Sl(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(Fi,"CONNECTING",{enumerable:!0,value:Qm.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:Qm.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:Qm.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:Qm.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:Qm.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:Qm.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:Qm.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:Qm.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(Fi.prototype,e,{enumerable:!0})});["open","error","close","message"].forEach(e=>{Object.defineProperty(Fi.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[aae])return t[Nmn];return null},set(t){for(let n of this.listeners(e))if(n[aae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[aae]:!0})}})});Fi.prototype.addEventListener=Mmn;Fi.prototype.removeEventListener=Dmn;HJe.exports=Fi;function MJe(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Omn,protocolVersion:cae[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=i.autoPong,e._closeTimeout=i.closeTimeout,!cae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${cae.join(", ")})`);let s;if(t instanceof oae)s=t;else try{s=new oae(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}s.protocol==="http:"?s.protocol="ws:":s.protocol==="https:"&&(s.protocol="wss:"),e._url=s.href;let o=s.protocol==="wss:",a=s.protocol==="ws+unix:",c;if(s.protocol!=="ws:"&&!o&&!a?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!s.pathname?c="The URL's pathname is empty":s.hash&&(c="The URL contains a fragment identifier"),c){let m=new SyntaxError(c);if(e._redirects===0)throw m;F2(e,m);return}let u=o?443:80,l=Rmn(16).toString("base64"),d=o?Tmn.request:vmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?qmn:Hmn),i.defaultPort=i.defaultPort||u,i.port=s.port||u,i.host=s.hostname.startsWith("[")?s.hostname.slice(1,-1):s.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":l,Connection:"Upgrade",Upgrade:"websocket"},i.path=s.pathname+s.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(p=new HS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=Lmn({[HS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!jmn.test(m)||f.has(m))throw new SyntaxError("An invalid or duplicated subprotocol was specified");f.add(m)}i.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(s.username||s.password)&&(i.auth=`${s.username}:${s.password}`),a){let m=i.path.split(":");i.socketPath=m[0],i.path=m[1]}let h;if(i.followRedirects){if(e._redirects===0){e._originalIpc=a,e._originalSecure=o,e._originalHostOrSocketPath=a?i.socketPath:s.host;let m=r&&r.headers;if(r={...r,headers:{}},m)for(let[g,y]of Object.entries(m))r.headers[g.toLowerCase()]=y}else if(e.listenerCount("redirect")===0){let m=a?e._originalIpc?i.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:s.host===e._originalHostOrSocketPath;(!m||e._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,m||delete i.headers.host,i.auth=void 0)}i.auth&&!r.headers.authorization&&(r.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),h=e._req=d(i),e._redirects&&e.emit("redirect",e.url,h)}else h=e._req=d(i);i.timeout&&h.on("timeout",()=>{Sl(e,h,"Opening handshake has timed out")}),h.on("error",m=>{h===null||h[CJe]||(h=e._req=null,F2(e,m))}),h.on("response",m=>{let g=m.headers.location,y=m.statusCode;if(g&&i.followRedirects&&y>=300&&y<400){if(++e._redirects>i.maxRedirects){Sl(e,h,"Maximum redirects exceeded");return}h.abort();let E;try{E=new oae(g,t)}catch{let _=new SyntaxError(`Invalid URL: ${g}`);F2(e,_);return}MJe(e,E,n,r)}else e.emit("unexpected-response",h,m)||Sl(e,h,`Unexpected server response: ${m.statusCode}`)}),h.on("upgrade",(m,g,y)=>{if(e.emit("upgrade",m),e.readyState!==Fi.CONNECTING)return;h=e._req=null;let E=m.headers.upgrade;if(E===void 0||E.toLowerCase()!=="websocket"){Sl(e,g,"Invalid Upgrade header");return}let S=wmn("sha1").update(l+Pmn).digest("base64");if(m.headers["sec-websocket-accept"]!==S){Sl(e,g,"Invalid Sec-WebSocket-Accept header");return}let _=m.headers["sec-websocket-protocol"],b;if(_!==void 0?f.size?f.has(_)||(b="Server sent an invalid subprotocol"):b="Server sent a subprotocol but none was requested":f.size&&(b="Server sent no subprotocol"),b){Sl(e,g,b);return}_&&(e._protocol=_);let T=m.headers["sec-websocket-extensions"];if(T!==void 0){if(!p){Sl(e,g,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let A;try{A=Umn(T)}catch{Sl(e,g,"Invalid Sec-WebSocket-Extensions header");return}let R=Object.keys(A);if(R.length!==1||R[0]!==HS.extensionName){Sl(e,g,"Server indicated an extension that was not requested");return}try{p.accept(A[HS.extensionName])}catch{Sl(e,g,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[HS.extensionName]=p}e.setSocket(g,y,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(h,e):h.end()}function F2(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function Hmn(e){return e.path=e.socketPath,PJe.connect(e)}function qmn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=PJe.isIP(e.host)?"":e.host),Amn.connect(e)}function Sl(e,t,n){e._readyState=Fi.CLOSING;let r=new Error(n);Error.captureStackTrace(r,Sl),t.setHeader?(t[CJe]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(F2,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function uae(e,t,n){if(t){let r=xmn(t)?t.size:Fmn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${Qm[e.readyState]})`);process.nextTick(n,r)}}function Bmn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",j2),process.nextTick(DJe,n._socket),e===1005?n.close():n.close(e,t))}function Gmn(){let e=this[Wo];e.isPaused||e._socket.resume()}function zmn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",j2),process.nextTick(DJe,t._socket),t.close(e[Cmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function OJe(){this[Wo].emitClose()}function Vmn(e,t){this[Wo].emit("message",e,t)}function Wmn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,NJe),t.emit("ping",e)}function Kmn(e){this[Wo].emit("pong",e)}function DJe(e){e.resume()}function Ymn(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,LJe(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function LJe(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function UJe(){let e=this[Wo];if(this.removeListener("close",UJe),this.removeListener("data",j2),this.removeListener("end",FJe),e._readyState=Fi.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[Wo]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",OJe),e._receiver.on("finish",OJe))}function j2(e){this[Wo]._receiver.write(e)||this.pause()}function FJe(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function jJe(){let e=this[Wo];this.removeListener("error",jJe),this.on("error",NJe),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var zJe=w((DWr,GJe)=>{"use strict";var MWr=H2(),{Duplex:Zmn}=Y("stream");function qJe(e){e.emit("close")}function Jmn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function BJe(e){this.removeListener("error",BJe),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function Xmn(e,t){let n=!0,r=new Zmn({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(s,o){let a=!o&&r._readableState.objectMode?s.toString():s;r.push(a)||e.pause()}),e.once("error",function(s){r.destroyed||(n=!1,r.destroy(s))}),e.once("close",function(){r.destroyed||r.push(null)}),r._destroy=function(i,s){if(e.readyState===e.CLOSED){s(i),process.nextTick(qJe,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(qJe,r)}),n&&e.terminate()},r._final=function(i){if(e.readyState===e.CONNECTING){e.once("open",function(){r._final(i)});return}e._socket!==null&&(e._socket._writableState.finished?(i(),r._readableState.endEmitted&&r.destroy()):(e._socket.once("finish",function(){i()}),e.close()))},r._read=function(){e.isPaused&&e.resume()},r._write=function(i,s,o){if(e.readyState===e.CONNECTING){e.once("open",function(){r._write(i,s,o)});return}e.send(i,o)},r.on("end",Jmn),r.on("error",BJe),r}GJe.exports=Xmn});var lae=w((LWr,VJe)=>{"use strict";var{tokenChars:Qmn}=mk();function $mn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var egn=Y("events"),q2=Y("http"),{Duplex:UWr}=Y("stream"),{createHash:tgn}=Y("crypto"),WJe=L2(),Kb=hk(),ngn=lae(),rgn=H2(),{CLOSE_TIMEOUT:ign,GUID:sgn,kWebSocket:ogn}=Zm(),agn=/^[+/0-9A-Za-z]{22}==$/,KJe=0,YJe=1,JJe=2,dae=class extends egn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:ign,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:rgn,...t},t.port==null&&!t.server&&!t.noServer||t.port!=null&&(t.server||t.noServer)||t.server&&t.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(t.port!=null?(this._server=q2.createServer((r,i)=>{let s=q2.STATUS_CODES[426];i.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"}),i.end(s)}),this._server.listen(t.port,t.host,t.backlog,n)):t.server&&(this._server=t.server),this._server){let r=this.emit.bind(this,"connection");this._removeListeners=cgn(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,s,o)=>{this.handleUpgrade(i,s,o,r)}})}t.perMessageDeflate===!0&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=KJe}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(this._state===JJe){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(ZC,this);return}if(t&&this.once("close",t),this._state!==YJe)if(this._state=YJe,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(ZC,this):process.nextTick(ZC,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{ZC(this)})}}shouldHandle(t){if(this.options.path){let n=t.url.indexOf("?");if((n!==-1?t.url.slice(0,n):t.url)!==this.options.path)return!1}return!0}handleUpgrade(t,n,r,i){n.on("error",ZJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){Yb(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){Yb(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!agn.test(s)){Yb(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){Yb(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){JC(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=ngn.parse(c)}catch{Yb(this,t,n,400,"Invalid Sec-WebSocket-Protocol header");return}let l=t.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&l!==void 0){let f=new Kb({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=WJe.parse(l);p[Kb.extensionName]&&(f.accept(p[Kb.extensionName]),d[Kb.extensionName]=f)}catch{Yb(this,t,n,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let f={origin:t.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(t.socket.authorized||t.socket.encrypted),req:t};if(this.options.verifyClient.length===2){this.options.verifyClient(f,(p,h,m,g)=>{if(!p)return JC(n,h||401,m,g);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return JC(n,401)}this.completeUpgrade(d,s,u,t,n,r,i)}completeUpgrade(t,n,r,i,s,o,a){if(!s.readable||!s.writable)return s.destroy();if(s[ogn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>KJe)return JC(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${tgn("sha1").update(n+sgn).digest("base64")}`],l=new this.options.WebSocket(null,void 0,this.options);if(r.size){let d=this.options.handleProtocols?this.options.handleProtocols(r,i):r.values().next().value;d&&(u.push(`Sec-WebSocket-Protocol: ${d}`),l._protocol=d)}if(t[Kb.extensionName]){let d=t[Kb.extensionName].params,f=WJe.format({[Kb.extensionName]:[d]});u.push(`Sec-WebSocket-Extensions: ${f}`),l._extensions=t}this.emit("headers",u,i),s.write(u.concat(`\r `).join(`\r -`)),s.removeListener("error",SJe),l.setSocket(s,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(l),l.on("close",()=>{this.clients.delete(l),this._shouldEmitClose&&!this.clients.size&&process.nextTick(qC,this)})),a(l,i)}};EJe.exports=Koe;function umn(e,t){for(let n of Object.keys(t))e.on(n,t[n]);return function(){for(let r of Object.keys(t))e.removeListener(r,t[r])}}function qC(e){e._state=_Je,e.emit("close")}function SJe(){this.destroy()}function BC(e,t,n,r){n=n||kV.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(n),...r},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${kV.STATUS_CODES[t]}\r +`)),s.removeListener("error",ZJe),l.setSocket(s,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(l),l.on("close",()=>{this.clients.delete(l),this._shouldEmitClose&&!this.clients.size&&process.nextTick(ZC,this)})),a(l,i)}};XJe.exports=dae;function cgn(e,t){for(let n of Object.keys(t))e.on(n,t[n]);return function(){for(let r of Object.keys(t))e.removeListener(r,t[r])}}function ZC(e){e._state=JJe,e.emit("close")}function ZJe(){this.destroy()}function JC(e,t,n,r){n=n||q2.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(n),...r},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${q2.STATUS_CODES[t]}\r `+Object.keys(r).map(i=>`${i}: ${r[i]}`).join(`\r `)+`\r \r -`+n)}function zb(e,t,n,r,i,s){if(e.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,zb),e.emit("wsClientError",o,n,t)}else BC(n,r,i,s)}});var AJe=w((W2r,vJe)=>{"use strict";var lmn=pJe(),dmn=TV(),fmn=ck(),pmn=Uoe(),hmn=Hoe(),mmn=Woe(),wf=wV(),TJe=bJe();wf.createWebSocketStream=lmn;wf.extension=dmn;wf.PerMessageDeflate=fmn;wf.Receiver=pmn;wf.Sender=hmn;wf.Server=TJe;wf.subprotocol=mmn;wf.WebSocket=wf;wf.WebSocketServer=TJe;vJe.exports=wf});var Zoe=w((K2r,RJe)=>{RJe.exports=Y("stream")});var NJe=w((Z2r,OJe)=>{"use strict";function wJe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function kJe(e){for(var t=1;t0?this.tail.next=r:this.head=r,this.tail=r,++this.length}},{key:"unshift",value:function(n){var r={data:n,next:this.head};this.length===0&&(this.tail=r),this.head=r,++this.length}},{key:"shift",value:function(){if(this.length!==0){var n=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,n}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(n){if(this.length===0)return"";for(var r=this.head,i=""+r.data;r=r.next;)i+=n+r.data;return i}},{key:"concat",value:function(n){if(this.length===0)return IV.alloc(0);for(var r=IV.allocUnsafe(n>>>0),i=this.head,s=0;i;)vmn(i.data,r,s),s+=i.data.length,i=i.next;return r}},{key:"consume",value:function(n,r){var i;return no.length?o.length:n;if(a===o.length?s+=o:s+=o.slice(0,n),n-=a,n===0){a===o.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(a));break}++i}return this.length-=i,s}},{key:"_getBuffer",value:function(n){var r=IV.allocUnsafe(n),i=this.head,s=1;for(i.data.copy(r),n-=i.data.length;i=i.next;){var o=i.data,a=n>o.length?o.length:n;if(o.copy(r,r.length-n,0,a),n-=a,n===0){a===o.length?(++s,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++s}return this.length-=s,r}},{key:Tmn,value:function(n,r){return Yoe(this,kJe(kJe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var Xoe=w((Y2r,CJe)=>{"use strict";function Amn(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Joe,this,e)):process.nextTick(Joe,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?n._writableState?n._writableState.errorEmitted?process.nextTick(xV,n):(n._writableState.errorEmitted=!0,process.nextTick(PJe,n,s)):process.nextTick(PJe,n,s):t?(process.nextTick(xV,n),t(s)):process.nextTick(xV,n)}),this)}function PJe(e,t){Joe(e,t),xV(e)}function xV(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Rmn(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Joe(e,t){e.emit("error",t)}function wmn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}CJe.exports={destroy:Amn,undestroy:Rmn,errorOrDestroy:wmn}});var US=w((J2r,LJe)=>{"use strict";var DJe={};function Sd(e,t,n){n||(n=Error);function r(s,o,a){return typeof t=="string"?t:t(s,o,a)}class i extends n{constructor(o,a,c){super(r(o,a,c))}}i.prototype.name=n.name,i.prototype.code=e,DJe[e]=i}function MJe(e,t){if(Array.isArray(e)){let n=e.length;return e=e.map(r=>String(r)),n>2?`one of ${t} ${e.slice(0,n-1).join(", ")}, or `+e[n-1]:n===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function kmn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function Imn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function xmn(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}Sd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Sd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&kmn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(Imn(e," argument"))i=`The ${e} ${r} ${MJe(t,"type")}`;else{let s=xmn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${MJe(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);Sd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Sd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Sd("ERR_STREAM_PREMATURE_CLOSE","Premature close");Sd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Sd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Sd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Sd("ERR_STREAM_WRITE_AFTER_END","write after end");Sd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Sd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Sd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");LJe.exports.codes=DJe});var Qoe=w((X2r,UJe)=>{"use strict";var Omn=US().codes.ERR_INVALID_OPT_VALUE;function Nmn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Pmn(e,t,n,r){var i=Nmn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new Omn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}UJe.exports={getHighWaterMark:Pmn}});var jJe=w((Q2r,$oe)=>{typeof Object.create=="function"?$oe.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:$oe.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}}});var Vb=w(($2r,tae)=>{try{if(eae=Y("util"),typeof eae.inherits!="function")throw"";tae.exports=eae.inherits}catch{tae.exports=jJe()}var eae});var HJe=w((eVr,FJe)=>{FJe.exports=Y("util").deprecate});var iae=w((tVr,WJe)=>{"use strict";WJe.exports=hs;function BJe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){sgn(t,e)}}var hk;hs.WritableState=zC;var Cmn={deprecate:HJe()},GJe=Zoe(),NV=Y("buffer").Buffer,Mmn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Dmn(e){return NV.from(e)}function Lmn(e){return NV.isBuffer(e)||e instanceof Mmn}var rae=Xoe(),Umn=Qoe(),jmn=Umn.getHighWaterMark,jS=US().codes,Fmn=jS.ERR_INVALID_ARG_TYPE,Hmn=jS.ERR_METHOD_NOT_IMPLEMENTED,qmn=jS.ERR_MULTIPLE_CALLBACK,Bmn=jS.ERR_STREAM_CANNOT_PIPE,Gmn=jS.ERR_STREAM_DESTROYED,zmn=jS.ERR_STREAM_NULL_VALUES,Vmn=jS.ERR_STREAM_WRITE_AFTER_END,Wmn=jS.ERR_UNKNOWN_ENCODING,mk=rae.errorOrDestroy;Vb()(hs,GJe);function Kmn(){}function zC(e,t,n){hk=hk||Wb(),e=e||{},typeof n!="boolean"&&(n=t instanceof hk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=jmn(this,e,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var r=e.decodeStrings===!1;this.decodeStrings=!r,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(i){egn(t,i)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new BJe(this)}zC.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(zC.prototype,"buffer",{get:Cmn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var OV;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(OV=Function.prototype[Symbol.hasInstance],Object.defineProperty(hs,Symbol.hasInstance,{value:function(t){return OV.call(this,t)?!0:this!==hs?!1:t&&t._writableState instanceof zC}})):OV=function(t){return t instanceof this};function hs(e){hk=hk||Wb();var t=this instanceof hk;if(!t&&!OV.call(hs,this))return new hs(e);this._writableState=new zC(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),GJe.call(this)}hs.prototype.pipe=function(){mk(this,new Bmn)};function Zmn(e,t){var n=new Vmn;mk(e,n),process.nextTick(t,n)}function Ymn(e,t,n,r){var i;return n===null?i=new zmn:typeof n!="string"&&!t.objectMode&&(i=new Fmn("chunk",["string","Buffer"],n)),i?(mk(e,i),process.nextTick(r,i),!1):!0}hs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&Lmn(e);return s&&!NV.isBuffer(e)&&(e=Dmn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=Kmn),r.ending?Zmn(this,n):(s||Ymn(this,r,e,n))&&(r.pendingcb++,i=Xmn(this,r,s,e,t,n)),i};hs.prototype.cork=function(){this._writableState.corked++};hs.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&zJe(this,e))};hs.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new Wmn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(hs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Jmn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=NV.from(t,n)),t}Object.defineProperty(hs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Xmn(e,t,n,r,i,s){if(!n){var o=Jmn(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var a=t.objectMode?1:r.length;t.length+=a;var c=t.length{"use strict";var ogn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};ZJe.exports=hh;var KJe=aae(),oae=iae();Vb()(hh,KJe);for(sae=ogn(oae.prototype),PV=0;PV{var MV=Y("buffer"),mh=MV.Buffer;function YJe(e,t){for(var n in e)t[n]=e[n]}mh.from&&mh.alloc&&mh.allocUnsafe&&mh.allocUnsafeSlow?JJe.exports=MV:(YJe(MV,cae),cae.Buffer=Kb);function Kb(e,t,n){return mh(e,t,n)}Kb.prototype=Object.create(mh.prototype);YJe(mh,Kb);Kb.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return mh(e,t,n)};Kb.alloc=function(e,t,n){if(typeof e!="number")throw new TypeError("Argument must be a number");var r=mh(e);return t!==void 0?typeof n=="string"?r.fill(t,n):r.fill(t):r.fill(0),r};Kb.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return mh(e)};Kb.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return MV.SlowBuffer(e)}});var dae=w($Je=>{"use strict";var lae=XJe().Buffer,QJe=lae.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function ugn(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function lgn(e){var t=ugn(e);if(typeof t!="string"&&(lae.isEncoding===QJe||!QJe(e)))throw new Error("Unknown encoding: "+e);return t||e}$Je.StringDecoder=VC;function VC(e){this.encoding=lgn(e);var t;switch(this.encoding){case"utf16le":this.text=ggn,this.end=ygn,t=4;break;case"utf8":this.fillLast=pgn,t=4;break;case"base64":this.text=Sgn,this.end=_gn,t=3;break;default:this.write=Egn,this.end=bgn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=lae.allocUnsafe(t)}VC.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function dgn(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function fgn(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function pgn(e){var t=this.lastTotal-this.lastNeed,n=fgn(this,e,t);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function hgn(e,t){var n=dgn(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function mgn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function ggn(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function ygn(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function Sgn(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function _gn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Egn(e){return e.toString(this.encoding)}function bgn(e){return e&&e.length?this.write(e):""}});var DV=w((iVr,n7e)=>{"use strict";var e7e=US().codes.ERR_STREAM_PREMATURE_CLOSE;function Tgn(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i{"use strict";var LV;function FS(e,t,n){return t=Rgn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rgn(e){var t=wgn(e,"string");return typeof t=="symbol"?t:String(t)}function wgn(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var kgn=DV(),HS=Symbol("lastResolve"),Zb=Symbol("lastReject"),WC=Symbol("error"),UV=Symbol("ended"),Yb=Symbol("lastPromise"),fae=Symbol("handlePromise"),Jb=Symbol("stream");function qS(e,t){return{value:e,done:t}}function Ign(e){var t=e[HS];if(t!==null){var n=e[Jb].read();n!==null&&(e[Yb]=null,e[HS]=null,e[Zb]=null,t(qS(n,!1)))}}function xgn(e){process.nextTick(Ign,e)}function Ogn(e,t){return function(n,r){e.then(function(){if(t[UV]){n(qS(void 0,!0));return}t[fae](n,r)},r)}}var Ngn=Object.getPrototypeOf(function(){}),Pgn=Object.setPrototypeOf((LV={get stream(){return this[Jb]},next:function(){var t=this,n=this[WC];if(n!==null)return Promise.reject(n);if(this[UV])return Promise.resolve(qS(void 0,!0));if(this[Jb].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[WC]?a(t[WC]):o(qS(void 0,!0))})});var r=this[Yb],i;if(r)i=new Promise(Ogn(r,this));else{var s=this[Jb].read();if(s!==null)return Promise.resolve(qS(s,!1));i=new Promise(this[fae])}return this[Yb]=i,i}},FS(LV,Symbol.asyncIterator,function(){return this}),FS(LV,"return",function(){var t=this;return new Promise(function(n,r){t[Jb].destroy(null,function(i){if(i){r(i);return}n(qS(void 0,!0))})})}),LV),Ngn),Cgn=function(t){var n,r=Object.create(Pgn,(n={},FS(n,Jb,{value:t,writable:!0}),FS(n,HS,{value:null,writable:!0}),FS(n,Zb,{value:null,writable:!0}),FS(n,WC,{value:null,writable:!0}),FS(n,UV,{value:t._readableState.endEmitted,writable:!0}),FS(n,fae,{value:function(s,o){var a=r[Jb].read();a?(r[Yb]=null,r[HS]=null,r[Zb]=null,s(qS(a,!1))):(r[HS]=s,r[Zb]=o)},writable:!0}),n));return r[Yb]=null,kgn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[Zb];s!==null&&(r[Yb]=null,r[HS]=null,r[Zb]=null,s(i)),r[WC]=i;return}var o=r[HS];o!==null&&(r[Yb]=null,r[HS]=null,r[Zb]=null,o(qS(void 0,!0))),r[UV]=!0}),t.on("readable",xgn.bind(null,r)),r};r7e.exports=Cgn});var c7e=w((oVr,a7e)=>{"use strict";function s7e(e,t,n,r,i,s,o){try{var a=e[s](o),c=a.value}catch(u){n(u);return}a.done?t(c):Promise.resolve(c).then(r,i)}function Mgn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){s7e(s,r,i,o,a,"next",c)}function a(c){s7e(s,r,i,o,a,"throw",c)}o(void 0)})}}function o7e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Dgn(e){for(var t=1;t{"use strict";S7e.exports=tr;var gk;tr.ReadableState=f7e;var aVr=Y("events").EventEmitter,d7e=function(t,n){return t.listeners(n).length},ZC=Zoe(),jV=Y("buffer").Buffer,qgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Bgn(e){return jV.from(e)}function Ggn(e){return jV.isBuffer(e)||e instanceof qgn}var pae=Y("util"),Rn;pae&&pae.debuglog?Rn=pae.debuglog("stream"):Rn=function(){};var zgn=NJe(),Eae=Xoe(),Vgn=Qoe(),Wgn=Vgn.getHighWaterMark,FV=US().codes,Kgn=FV.ERR_INVALID_ARG_TYPE,Zgn=FV.ERR_STREAM_PUSH_AFTER_EOF,Ygn=FV.ERR_METHOD_NOT_IMPLEMENTED,Jgn=FV.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,yk,hae,mae;Vb()(tr,ZC);var KC=Eae.errorOrDestroy,gae=["error","close","destroy","pause","resume"];function Xgn(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function f7e(e,t,n){gk=gk||Wb(),e=e||{},typeof n!="boolean"&&(n=t instanceof gk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=Wgn(this,e,"readableHighWaterMark",n),this.buffer=new zgn,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(yk||(yk=dae().StringDecoder),this.decoder=new yk(e.encoding),this.encoding=e.encoding)}function tr(e){if(gk=gk||Wb(),!(this instanceof tr))return new tr(e);var t=this instanceof gk;this._readableState=new f7e(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),ZC.call(this)}Object.defineProperty(tr.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});tr.prototype.destroy=Eae.destroy;tr.prototype._undestroy=Eae.undestroy;tr.prototype._destroy=function(e,t){t(e)};tr.prototype.push=function(e,t){var n=this._readableState,r;return n.objectMode?r=!0:typeof e=="string"&&(t=t||n.defaultEncoding,t!==n.encoding&&(e=jV.from(e,t),t=""),r=!0),p7e(this,e,t,!1,r)};tr.prototype.unshift=function(e){return p7e(this,e,null,!0,!1)};function p7e(e,t,n,r,i){Rn("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,eyn(e,s);else{var o;if(i||(o=Qgn(s,t)),o)KC(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==jV.prototype&&(t=Bgn(t)),r)s.endEmitted?KC(e,new Jgn):yae(e,s,t,!0);else if(s.ended)KC(e,new Zgn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?yae(e,s,t,!1):_ae(e,s)):yae(e,s,t,!1)}else r||(s.reading=!1,_ae(e,s))}return!s.ended&&(s.length=u7e?e=u7e:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function l7e(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=$gn(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}tr.prototype.read=function(e){Rn("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Rn("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Sae(this):HV(this),null;if(e=l7e(e,t),e===0&&t.ended)return t.length===0&&Sae(this),null;var r=t.needReadable;Rn("need readable",r),(t.length===0||t.length-e0?i=g7e(e,t):i=null,i===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&Sae(this)),i!==null&&this.emit("data",i),i};function eyn(e,t){if(Rn("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?HV(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,h7e(e)))}}function HV(e){var t=e._readableState;Rn("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(Rn("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h7e,e))}function h7e(e){var t=e._readableState;Rn("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,bae(e)}function _ae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(tyn,e,t))}function tyn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&y7e(r.pipes,e)!==-1)&&!u&&(Rn("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function f(y){Rn("onerror",y),m(),e.removeListener("error",f),d7e(e,"error")===0&&KC(e,y)}Xgn(e,"error",f);function p(){e.removeListener("finish",h),m()}e.once("close",p);function h(){Rn("onfinish"),e.removeListener("close",p),m()}e.once("finish",h);function m(){Rn("unpipe"),n.unpipe(e)}return e.emit("pipe",n),r.flowing||(Rn("pipe resume"),n.resume()),e};function nyn(e){return function(){var n=e._readableState;Rn("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&d7e(e,"data")&&(n.flowing=!0,bae(e))}}tr.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s0,r.flowing!==!1&&this.resume()):e==="readable"&&!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,Rn("on readable",r.length,r.reading),r.length?HV(this):r.reading||process.nextTick(ryn,this)),n};tr.prototype.addListener=tr.prototype.on;tr.prototype.removeListener=function(e,t){var n=ZC.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(m7e,this),n};tr.prototype.removeAllListeners=function(e){var t=ZC.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(m7e,this),t};function m7e(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function ryn(e){Rn("readable nexttick read 0"),e.read(0)}tr.prototype.resume=function(){var e=this._readableState;return e.flowing||(Rn("resume"),e.flowing=!e.readableListening,iyn(this,e)),e.paused=!1,this};function iyn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(syn,e,t))}function syn(e,t){Rn("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),bae(e),t.flowing&&!t.reading&&e.read(0)}tr.prototype.pause=function(){return Rn("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Rn("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function bae(e){var t=e._readableState;for(Rn("flow",t.flowing);t.flowing&&e.read()!==null;);}tr.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;e.on("end",function(){if(Rn("wrapped end"),n.decoder&&!n.ended){var o=n.decoder.end();o&&o.length&&t.push(o)}t.push(null)}),e.on("data",function(o){if(Rn("wrapped data"),n.decoder&&(o=n.decoder.write(o)),!(n.objectMode&&o==null)&&!(!n.objectMode&&(!o||!o.length))){var a=t.push(o);a||(r=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=(function(a){return function(){return e[a].apply(e,arguments)}})(i));for(var s=0;s=t.length?(t.decoder?n=t.buffer.join(""):t.buffer.length===1?n=t.buffer.first():n=t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n}function Sae(e){var t=e._readableState;Rn("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(oyn,t,e))}function oyn(e,t){if(Rn("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}typeof Symbol=="function"&&(tr.from=function(e,t){return mae===void 0&&(mae=c7e()),mae(tr,e,t)});function y7e(e,t){for(var n=0,r=e.length;n{"use strict";E7e.exports=Zm;var qV=US().codes,ayn=qV.ERR_METHOD_NOT_IMPLEMENTED,cyn=qV.ERR_MULTIPLE_CALLBACK,uyn=qV.ERR_TRANSFORM_ALREADY_TRANSFORMING,lyn=qV.ERR_TRANSFORM_WITH_LENGTH_0,BV=Wb();Vb()(Zm,BV);function dyn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new cyn);n.writechunk=null,n.writecb=null,t!=null&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";T7e.exports=YC;var b7e=Tae();Vb()(YC,b7e);function YC(e){if(!(this instanceof YC))return new YC(e);b7e.call(this,e)}YC.prototype._transform=function(e,t,n){n(null,e)}});var I7e=w((dVr,k7e)=>{"use strict";var vae;function pyn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var w7e=US().codes,hyn=w7e.ERR_MISSING_ARGS,myn=w7e.ERR_STREAM_DESTROYED;function A7e(e){if(e)throw e}function gyn(e){return e.setHeader&&typeof e.abort=="function"}function yyn(e,t,n,r){r=pyn(r);var i=!1;e.on("close",function(){i=!0}),vae===void 0&&(vae=DV()),vae(e,{readable:t,writable:n},function(o){if(o)return r(o);i=!0,r()});var s=!1;return function(o){if(!i&&!s){if(s=!0,gyn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new myn("pipe"))}}}function R7e(e){e()}function Syn(e,t){return e.pipe(t)}function _yn(e){return!e.length||typeof e[e.length-1]!="function"?A7e:e.pop()}function Eyn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return yyn(o,c,u,function(l){i||(i=l),l&&s.forEach(R7e),!c&&(s.forEach(R7e),r(i))})});return t.reduce(Syn)}k7e.exports=Eyn});var x7e=w((_d,XC)=>{var JC=Y("stream");process.env.READABLE_STREAM==="disable"&&JC?(XC.exports=JC.Readable,Object.assign(XC.exports,JC),XC.exports.Stream=JC):(_d=XC.exports=aae(),_d.Stream=JC||_d,_d.Readable=_d,_d.Writable=iae(),_d.Duplex=Wb(),_d.Transform=Tae(),_d.PassThrough=v7e(),_d.finished=DV(),_d.pipeline=I7e())});var P7e=w((fVr,N7e)=>{N7e.exports=O7e;function O7e(e,t){if(e&&t)return O7e(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(r){n[r]=e[r]}),n;function n(){for(var r=new Array(arguments.length),i=0;i{var C7e=P7e();Aae.exports=C7e(GV);Aae.exports.strict=C7e(M7e);GV.proto=GV(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return GV(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return M7e(this)},configurable:!0})});function GV(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function M7e(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},n=e.name||"Function wrapped with `once`";return t.onceError=n+" shouldn't be called more than once",t.called=!1,t}});var j7e=w((hVr,U7e)=>{var byn=D7e(),Tyn=function(){},vyn=global.Bare?queueMicrotask:process.nextTick.bind(process),Ayn=function(e){return e.setHeader&&typeof e.abort=="function"},Ryn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},L7e=function(e,t,n){if(typeof t=="function")return L7e(e,null,t);t||(t={}),n=byn(n||Tyn);var r=e._writableState,i=e._readableState,s=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,a=!1,c=function(){e.writable||u()},u=function(){o=!1,s||n.call(e)},l=function(){s=!1,o||n.call(e)},d=function(y){n.call(e,y?new Error("exited with error code: "+y):null)},f=function(y){n.call(e,y)},p=function(){vyn(h)},h=function(){if(!a){if(s&&!(i&&i.ended&&!i.destroyed))return n.call(e,new Error("premature close"));if(o&&!(r&&r.ended&&!r.destroyed))return n.call(e,new Error("premature close"))}},m=function(){e.req.on("finish",u)};return Ayn(e)?(e.on("complete",u),e.on("abort",p),e.req?m():e.on("request",m)):o&&!r&&(e.on("end",c),e.on("close",c)),Ryn(e)&&e.on("exit",d),e.on("end",l),e.on("finish",u),t.error!==!1&&e.on("error",f),e.on("close",p),function(){a=!0,e.removeListener("complete",u),e.removeListener("abort",p),e.removeListener("request",m),e.req&&e.req.removeListener("finish",u),e.removeListener("end",c),e.removeListener("close",c),e.removeListener("finish",u),e.removeListener("exit",d),e.removeListener("end",l),e.removeListener("error",f),e.removeListener("close",p)}};U7e.exports=L7e});var H7e=w((mVr,F7e)=>{F7e.exports=wyn;function wyn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(kyn(t)):null}function kyn(e){if(e.buffer.length){var t=e.bufferIndex||0;if(e.buffer.head)return e.buffer.head.data.length;if(e.buffer.length-t>0&&e.buffer[t])return e.buffer[t].length}return e.length}});var V7e=w((gVr,z7e)=>{var zV=x7e(),q7e=j7e(),Iyn=Vb(),xyn=H7e(),B7e=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),Rae=function(e,t){e._corked?e.once("uncork",t):t()},Oyn=function(e,t){e._autoDestroy&&e.destroy(t)},G7e=function(e,t){return function(n){n?Oyn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},Nyn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},Pyn=function(){},Cyn=function(e){return new zV.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);zV.Duplex.call(this,n),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!n||n.autoDestroy!==!1,this._forwardDestroy=!n||n.destroy!==!1,this._forwardEnd=!n||n.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,e&&this.setWritable(e),t&&this.setReadable(t)};Iyn(_a,zV.Duplex);_a.obj=function(e,t,n){return n||(n={}),n.objectMode=!0,n.highWaterMark=16,new _a(e,t,n)};_a.prototype.cork=function(){++this._corked===1&&this.emit("cork")};_a.prototype.uncork=function(){this._corked&&--this._corked===0&&this.emit("uncork")};_a.prototype.setWritable=function(e){if(this._unwrite&&this._unwrite(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.end();return}var t=this,n=q7e(e,{writable:!0,readable:!1},G7e(this,this._forwardEnd)),r=function(){var s=t._ondrain;t._ondrain=null,s&&s()},i=function(){t._writable.removeListener("drain",r),n()};this._unwrite&&process.nextTick(r),this._writable=e,this._writable.on("drain",r),this._unwrite=i,this.uncork()};_a.prototype.setReadable=function(e){if(this._unread&&this._unread(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.push(null),this.resume();return}var t=this,n=q7e(e,{writable:!1,readable:!0},G7e(this)),r=function(){t._forward()},i=function(){t.push(null)},s=function(){t._readable2.removeListener("readable",r),t._readable2.removeListener("end",i),n()};this._drained=!0,this._readable=e,this._readable2=e._readableState?e:Cyn(e),this._readable2.on("readable",r),this._readable2.on("end",i),this._unread=s,this._forward()};_a.prototype._read=function(){this._drained=!0,this._forward()};_a.prototype._forward=function(){if(!(this._forwarding||!this._readable2||!this._drained)){this._forwarding=!0;for(var e;this._drained&&(e=xyn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=Pyn),this.destroyed)return t(null);this.destroyed=!0;var n=this;process.nextTick(function(){n._destroy(e),t(null)})};_a.prototype._destroy=function(e){if(e){var t=this._ondrain;this._ondrain=null,t?t(e):this.emit("error",e)}this._forwardDestroy&&(this._readable&&this._readable.destroy&&this._readable.destroy(),this._writable&&this._writable.destroy&&this._writable.destroy()),this.emit("close")};_a.prototype._write=function(e,t,n){if(!this.destroyed){if(this._corked)return Rae(this,this._write.bind(this,e,t,n));if(e===B7e)return this._finish(n);if(!this._writable)return n();this._writable.write(e)===!1?this._ondrain=n:this.destroyed||n()}};_a.prototype._finish=function(e){var t=this;this.emit("preend"),Rae(this,function(){Nyn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),Rae(t,e)})})};_a.prototype.end=function(e,t,n){return typeof e=="function"?this.end(null,null,e):typeof t=="function"?this.end(e,null,t):(this._ended=!0,e&&this.write(e),!this._writableState.ending&&!this._writableState.destroyed&&this.write(B7e),zV.Writable.prototype.end.call(this,n))};z7e.exports=_a});var Y7e=w((yVr,WV)=>{"use strict";var{ServerResponse:Myn}=Y("node:http"),{PassThrough:W7e}=Y("node:stream"),{randomBytes:Dyn}=Y("node:crypto"),Lyn=OC(),K7e=AJe(),Z7e=V7e(),Xb=Symbol("ws-socket"),VV=Symbol("ws-head"),Uyn=/HTTP\/1.1 (\d+)/u;function wae(e,t,n){e.decorateRequest("ws",null);let r=p;if(t.errorHandler){if(typeof t.errorHandler!="function")return n(new Error("invalid errorHandler function"));r=t.errorHandler}let i=d;if(t?.preClose){if(typeof t.preClose!="function")return n(new Error("invalid preClose function"));i=t.preClose}if(t.options?.noServer)return n(new Error("fastify-websocket doesn't support the ws noServer option. If you want to create a websocket server detatched from fastify, use the ws library directly."));let s=Object.assign({noServer:!0},t.options);s.path&&e.log.warn("ws server path option shouldn't be provided, use a route instead");let o=s.server||e.server;delete s.server;let a=new K7e.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},y={}){let g=new W7e,E=new W7e,S=new Z7e(g,E),_=new Z7e(E,g),b=new K7e(null,void 0,{isServer:!1}),T=Buffer.from([]),A,R,k=new Promise((P,D)=>{A=P,R=D});typeof y.onInit=="function"&&y.onInit(b),b.on("open",()=>{typeof y.onOpen=="function"&&y.onOpen(b),_.removeListener("data",x),A(b)});let x=P=>{if(P.toString().includes("HTTP/1.1 101 Switching Protocols"))b._isServer=!1,b.setSocket(_,T,{maxPayload:0});else{_.removeListener("data",x);let D=Number(Uyn.exec(P.toString())[1]);R(new Error("Unexpected server response: "+D))}};_.on("data",x);let N={...m,method:"GET",headers:{...m.headers,connection:"upgrade",upgrade:"websocket","sec-websocket-version":13,"sec-websocket-key":Dyn(16).toString("base64")},httpVersion:"1.1",url:h,[Xb]:S,[VV]:T};return o.emit("upgrade",N,N[Xb],N[VV]),k}e.decorate("injectWS",c);function u(h,m,y){h[Xb]=m,h[VV]=y;let g=new Myn(h);try{g.assignSocket(m),e.routing(h,g)}catch(E){e.log.warn({err:E},"websocket upgrade failed")}}o.on("upgrade",u);let l=(h,m)=>{a.handleUpgrade(h,h[Xb],h[VV],y=>{a.emit("connection",y,h),y.on("error",g=>{e.log.error(g)}),m(y)})};e.addHook("onRequest",(h,m,y)=>{h.raw[Xb]?h.ws=!0:h.ws=!1,y()}),e.addHook("onResponse",(h,m,y)=>{h.ws&&h.raw[Xb].destroy(),y()}),e.addHook("onRoute",h=>{let m=!1,y=h.wsHandler,g=h.handler;if(h.websocket||h.wsHandler){if(h.method==="HEAD")return;if(h.method!=="GET")throw new Error("websocket handler can only be declared in GET method");if(m=!0,h.websocket&&(h.schema||(h.schema={}),h.schema.hide=!0,y=h.handler,g=function(E,S){S.code(404).send()}),typeof y!="function")throw new TypeError("invalid wsHandler function")}h.handler=function(E,S){if(E.raw[Xb])S.hijack(),l(E.raw,_=>{let b;try{m?b=y.call(this,_,E):b=f.call(this,_,E)}catch(T){return r.call(this,T,_,E,S)}b&&typeof b.catch=="function"&&b.catch(T=>r.call(this,T,_,E,S))});else return g.call(this,E,S)}}),e.addHook("preClose",i);function d(h){let m=this.websocketServer;if(m.clients)for(let y of m.clients)y.close();e.server.removeListener("upgrade",u),m.close(h),h()}function f(h,m){this.log.info({path:m.url},"closed incoming websocket connection for path with no websocket handler"),h.close()}function p(h,m,y){y.log.error(h),m.terminate()}n()}WV.exports=Lyn(wae,{fastify:"5.x",name:"@fastify/websocket"});WV.exports.default=wae;WV.exports.fastifyWebsocket=wae});var X7e=w((SVr,J7e)=>{"use strict";function jyn(e){var t=new e,n=t;function r(){var s=t;return s.next?t=s.next:(t=new e,n=t),s.next=null,s}function i(s){n.next=s,n=s}return{get:r,release:i}}J7e.exports=jyn});var $7e=w((_Vr,kae)=>{"use strict";var Fyn=X7e();function Q7e(e,t,n){if(typeof e=="function"&&(n=t,t=e,e=null),!(n>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var r=Fyn(Hyn),i=null,s=null,o=0,a=null,c={push:m,drain:Eu,saturated:Eu,pause:l,paused:!1,get concurrency(){return n},set concurrency(T){if(!(T>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(n=T,!c.paused)for(;i&&o=n||c.paused?s?(s.next=R,s=R):(i=R,s=R,c.saturated()):(o++,t.call(e,R.value,R.worked))}function y(T,A){var R=r.get();R.context=e,R.release=g,R.value=T,R.callback=A||Eu,R.errorHandler=a,o>=n||c.paused?i?(R.next=i,i=R):(i=R,s=R,c.saturated()):(o++,t.call(e,R.value,R.worked))}function g(T){T&&r.release(T);var A=i;A&&o<=n?c.paused?o--:(s===i&&(s=null),i=A.next,A.next=null,t.call(e,A.value,A.worked),s===null&&c.empty()):--o===0&&c.drain()}function E(){i=null,s=null,c.drain=Eu}function S(){i=null,s=null,c.drain(),c.drain=Eu}function _(){var T=i;for(i=null,s=null;T;){var A=T.next,R=T.callback,k=T.errorHandler,x=T.value,N=T.context;T.value=null,T.callback=Eu,T.errorHandler=null,k&&k(new Error("abort"),x),R.call(N,new Error("abort")),T.release(T),T=A}c.drain=Eu}function b(T){a=T}}function Eu(){}function Hyn(){this.value=null,this.callback=Eu,this.next=null,this.release=Eu,this.context=null,this.errorHandler=null;var e=this;this.worked=function(n,r){var i=e.callback,s=e.errorHandler,o=e.value;e.value=null,e.callback=Eu,e.errorHandler&&s(n,o),i.call(e.context,n,r),e.release(e)}}function qyn(e,t,n){typeof e=="function"&&(n=t,t=e,e=null);function r(l,d){t.call(this,l).then(function(f){d(null,f)},d)}var i=Q7e(e,r,n),s=i.push,o=i.unshift;return i.push=a,i.unshift=c,i.drained=u,i;function a(l){var d=new Promise(function(f,p){s(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(Eu),d}function c(l){var d=new Promise(function(f,p){o(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(Eu),d}function u(){var l=new Promise(function(d){process.nextTick(function(){if(i.idle())d();else{var f=i.drain;i.drain=function(){typeof f=="function"&&f(),d(),i.drain=f}}})});return l}}kae.exports=Q7e;kae.exports.promise=qyn});var ZV=w((EVr,QC)=>{"use strict";var{format:Byn}=Y("node:util");function Gyn(){return`${this.name} [${this.code}]: ${this.message}`}var KV=Symbol.for("fastify-error-generic");function Sk(e,t,n=500,r=Error,i=Sk.captureStackTrace){let s=e===KV;if(s&&(e="FST_ERR"),!e)throw new Error("Fastify error code must not be empty");if(!t)throw new Error("Fastify error message must not be empty");e=e.toUpperCase(),!n&&(n=void 0);let o=Symbol.for(`fastify-error ${e}`);function a(...c){if(!new.target)return new a(...c);this.code=e,this.name="FastifyError",this.statusCode=n;let u=c.length-1;u!==-1&&c[u]&&typeof c[u]=="object"&&"cause"in c[u]&&(this.cause=c.pop().cause),this.message=Byn(t,...c),Error.stackTraceLimit&&i&&Error.captureStackTrace(this,a)}return a.prototype=Object.create(r.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0},[KV]:{value:!0,enumerable:!1,writable:!1,configurable:!1},[o]:{value:!0,enumerable:!1,writable:!1,configurable:!1}}),s?Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[KV]},configurable:!1,writable:!1,enumerable:!1}):Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[o]},configurable:!1,writable:!1,enumerable:!1}),a.prototype[Symbol.toStringTag]="Error",a.prototype.toString=Gyn,a}Sk.captureStackTrace=!0;var zyn=Sk(KV,"Fastify Error",500,Error);QC.exports=Sk;QC.exports.FastifyError=zyn;QC.exports.default=Sk;QC.exports.createError=Sk});var YV=w((bVr,eXe)=>{"use strict";var{createError:BS}=ZV();eXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:BS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:BS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:BS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:BS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:BS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:BS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:BS("AVV_ERR_READY_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise"),AVV_ERR_PLUGIN_EXEC_TIMEOUT:BS("AVV_ERR_PLUGIN_EXEC_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise")}});var _k=w((TVr,tXe)=>{"use strict";var Vyn=Symbol("avvio.Boot"),Wyn=Symbol("isOnCloseHandler"),Kyn=Symbol("avvio.ThenifyDoNotWrap"),Zyn=Symbol("avvio.TimeTree.untrackNode"),Yyn=Symbol("avvio.TimeTree.trackNode"),Jyn=Symbol("avvio.TimeTree.getParent"),Xyn=Symbol("avvio.TimeTree.getNode"),Qyn=Symbol("avvio.TimeTree.addNode"),$yn=Symbol.for("plugin-meta");tXe.exports={kAvvio:Vyn,kIsOnCloseHandler:Wyn,kThenifyDoNotWrap:Kyn,kUntrackNode:Zyn,kTrackNode:Yyn,kGetParent:Jyn,kGetNode:Xyn,kAddNode:Qyn,kPluginMeta:$yn}});var cXe=w((vVr,aXe)=>{"use strict";var{kUntrackNode:nXe,kTrackNode:Iae,kGetParent:rXe,kGetNode:iXe,kAddNode:sXe}=_k(),xae=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[Iae](t){this.tableId.set(t.id,t),this.tableLabel.has(t.label)?this.tableLabel.get(t.label).push(t):this.tableLabel.set(t.label,[t])}[nXe](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[rXe](t){if(t===null)return null;if(this.tableLabel.has(t)){let n=this.tableLabel.get(t);return n[n.length-1]}else return null}[iXe](t){return this.tableId.get(t)}[sXe](t,n,r){let i=this[rXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[Iae](this.root),this.root.id;let o=`${n}-${Math.random()}`,a={parent:t,id:o,label:n,nodes:[],start:r,stop:null,diff:-1};return i.nodes.push(a),this[Iae](a),o}start(t,n,r=Date.now()){return this[sXe](t,n,r)}stop(t,n=Date.now()){let r=this[iXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[nXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return oXe(this.toJSON())}};function oXe(e,t=""){let n=t,r=e.nodes.length,i=r-1;n+=`${e.label} ${e.diff} ms -`;for(let s=0;s{"use strict";var{debuglog:eSn}=Y("node:util"),tSn=eSn("avvio");uXe.exports={debug:tSn}});var dXe=w((RVr,lXe)=>{"use strict";function nSn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}lXe.exports={createPromise:nSn}});var hXe=w((wVr,pXe)=>{"use strict";var{kPluginMeta:fXe}=_k();function rSn(e,t){return e[fXe]?.name?e[fXe].name:t?.name?t.name:e.name?e.name:e.toString().split(` -`).slice(0,2).map(n=>n.trim()).join(" -- ")}pXe.exports={getPluginName:rSn}});var XV=w((kVr,mXe)=>{"use strict";function iSn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}mXe.exports={isPromiseLike:iSn}});var yXe=w((IVr,gXe)=>{"use strict";var{EventEmitter:sSn}=Y("node:events"),{inherits:oSn}=Y("node:util"),{debug:Ea}=JV(),{createPromise:aSn}=dXe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:cSn}=YV(),{getPluginName:uSn}=hXe(),{isPromiseLike:lSn}=XV();function Ek(e,t,n,r,i){this.queue=e,this.func=t,this.options=n,this.isAfter=r,this.timeout=i,this.started=!1,this.name=uSn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}oSn(Ek,sSn);Ek.prototype.exec=function(e,t){Ea("exec",this.name),this.server=e;let n=this.func,r=this.name,i=!1;this.options=typeof this.options=="function"?this.options(this.server):this.options;let s=null,o=c=>{if(i){Ea("loading complete",r);return}this._error=c,Ea(c?"exec errored":"exec completed",r),i=!0,s&&clearTimeout(s),t(c)};this.timeout>0&&(Ea("setting up timeout",r,this.timeout),s=setTimeout(function(){Ea("timed out",r),s=null;let c=new cSn(r);c.fn=n,o(c)},this.timeout)),this.started=!0,this.startTime=Date.now(),this.emit("start",this.server?this.server.name:null,this.name,Date.now());let a=n(this.server,this.options,o);lSn(a)?(Ea("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};Ek.prototype.loadedSoFar=function(){if(Ea("loadedSoFar",this.name),this.loaded)return Promise.resolve();let e=()=>{this.server.after((n,r)=>{this._error=n,this.queue.pause(),this._promise&&(n?(Ea("rejecting promise",this.name,n),this._promise.reject(n)):(Ea("resolving promise",this.name),this._promise.resolve()),this._promise=null),process.nextTick(r,n)}),this.queue.resume()},t;return this._promise?t=Promise.resolve():(this._promise=aSn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Ek.prototype.enqueue=function(e,t){Ea("enqueue",this.name,e.name),this.emit("enqueue",this.server?this.server.name:null,this.name,Date.now()),this.queue.push(e,t)};Ek.prototype.finish=function(e,t){Ea("finish",this.name,e);let n=()=>{this.loaded||(Ea("loaded",this.name),this.emit("loaded",this.server?this.server.name:null,this.name,Date.now()),this.loaded=!0,t(e))};if(e){this._promise&&(this._promise.reject(e),this._promise=null),n();return}let r=()=>{if(Ea("check",this.name,this.queue.length(),this.queue.running(),this._promise),this.queue.length()===0&&this.queue.running()===0)if(this._promise){let i=()=>{Ea("wrap"),queueMicrotask(r)};this._promise.resolve(),this._promise.promise.then(i,i),this._promise=null}else n();else Ea("delayed",this.name),this.queue.drain=()=>{Ea("drain",this.name),this.queue.drain=dSn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function dSn(){}gXe.exports={Plugin:Ek}});var _Xe=w((xVr,SXe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:Oae}=YV();function fSn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new Oae("array"):e===null?new Oae("null"):new Oae(typeof e)}SXe.exports={validatePlugin:fSn}});var bXe=w((OVr,EXe)=>{"use strict";function pSn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}EXe.exports={isBundledOrTypescriptPlugin:pSn}});var AXe=w((NVr,vXe)=>{"use strict";var{debug:TXe}=JV(),{kThenifyDoNotWrap:Nae}=_k();function hSn(){if(this.booted){TXe("thenify returning undefined because we are already booted");return}if(this[Nae]){this[Nae]=!1;return}return TXe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[Nae]=!0,e(this._server)),t)}vXe.exports={thenify:hSn}});var wXe=w((PVr,RXe)=>{"use strict";var{isPromiseLike:mSn}=XV(),{kAvvio:gSn}=_k();function ySn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}mSn(r)&&!r[gSn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}RXe.exports={executeWithThenable:ySn}});var DXe=w((CVr,MXe)=>{"use strict";var QV=$7e(),SSn=Y("node:events").EventEmitter,_Sn=Y("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:$C,AVV_ERR_CALLBACK_NOT_FN:bk,AVV_ERR_ROOT_PLG_BOOTED:ESn,AVV_ERR_READY_TIMEOUT:bSn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:TSn}=YV(),{kAvvio:xXe,kIsOnCloseHandler:OXe}=_k(),{TimeTree:vSn}=cXe(),{Plugin:NXe}=yXe(),{debug:Tk}=JV(),{validatePlugin:ASn}=_Xe(),{isBundledOrTypescriptPlugin:RSn}=bXe(),{isPromiseLike:wSn}=XV(),{thenify:PXe}=AXe(),{executeWithThenable:kXe}=wXe();function Os(e,t,n){if(typeof e=="function"&&arguments.length===1&&(n=e,t={},e=null),typeof t=="function"&&(n=t,t={}),t=t||{},t.autostart=t.autostart!==!1,t.timeout=Number(t.timeout)||0,t.expose=t.expose||{},!new.target)return new Os(e,t,n);this._server=e||this,this._opts=t,e&&this._expose(),this._current=[],this._error=null,this._lastUsed=null,this.setMaxListeners(0),n&&this.once("start",n),this.started=!1,this.booted=!1,this.pluginTree=new vSn,this._readyQ=QV(this,CXe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=IXe},this._closeQ=QV(this,ISn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=IXe},this._doStart=null;let r=this;this._root=new NXe(QV(this,this._loadPluginNextTick,1),function(s,o,a){r._doStart=a,o.autostart&&r.start()},t,!1,0),this._trackPluginLoading(this._root),this._loadPlugin(this._root,i=>{Tk("root plugin ready");try{this.emit("preReady"),this._root=null}catch(s){i=i||this._error||s}if(i){if(this._error=i,this._readyQ.length()===0)throw i}else this.booted=!0;this._readyQ.resume()})}_Sn(Os,SSn);"asyncDispose"in Symbol&&(Os.prototype[Symbol.asyncDispose]=function(){return new Promise((e,t)=>{this.close(n=>{if(n)return t(n);e()})})});Os.prototype.start=function(){return this.started=!0,process.nextTick(this._doStart),this};Os.prototype.override=function(e,t,n){return e};Os.prototype[xXe]=!0;Os.prototype.use=function(e,t){return this._lastUsed=this._addPlugin(e,t,!1),this};Os.prototype._loadRegistered=function(){let e=this._current[0];return!this.started&&!this.booted&&process.nextTick(()=>this._root.queue.resume()),e?e.loadedSoFar():Promise.resolve()};Object.defineProperty(Os.prototype,"then",{get:PXe});Os.prototype._addPlugin=function(e,t,n){if(RSn(e)&&(e=e.default),ASn(e),t=t||{},this.booted)throw new ESn;let r=this._current[0],i=this._opts.timeout;if(!r.loaded&&r.timeout>0){let o=Date.now()-r.startTime;i=r.timeout-(o+3)}let s=new NXe(QV(this,this._loadPluginNextTick,1),e,t,n,i);if(this._trackPluginLoading(s),r.loaded)throw new Error(s.name,r.name);return r.enqueue(s,o=>{o&&(this._error=o)}),s};Os.prototype._expose=function(){let t=this,n=t._server,{use:r="use",after:i="after",ready:s="ready",onClose:o="onClose",close:a="close"}=this._opts.expose;if(n[r])throw new $C(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new $C(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(Pae(c,this)),this)},n[s])throw new $C(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new bk(s,typeof c);return t.ready(c?Pae(c,this):void 0)},n[o])throw new $C(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new bk(o,typeof c);return t.onClose(xSn(c,this)),this},n[a])throw new $C(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new bk(a,typeof c);return c?(t.close(Pae(c,this)),this):t.close()},n.then)throw new TSn("then");Object.defineProperty(n,"then",{get:PXe.bind(t)}),n[xXe]=!0};Os.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){CXe.call(this,e,i)}return this};Os.prototype.onClose=function(e){if(typeof e!="function")throw new bk("onClose",typeof e);return e[OXe]=!0,this._closeQ.unshift(e,t=>{t&&(this._error=t)}),this};Os.prototype.close=function(e){let t;if(e){if(typeof e!="function")throw new bk("close",typeof e)}else t=new Promise(function(n,r){e=function(i){if(i)return r(i);n()}});return this.ready(()=>{this._error=null,this._closeQ.push(e),process.nextTick(this._closeQ.resume.bind(this._closeQ))}),t};Os.prototype.ready=function(e){if(e){if(typeof e!="function")throw new bk("ready",typeof e);this._readyQ.push(e),queueMicrotask(this.start.bind(this));return}return new Promise((t,n)=>{this._readyQ.push(i),this.start();let r=this._current[0].server;function i(s,o,a){s?n(s):t(r),process.nextTick(a)}})};Os.prototype._trackPluginLoading=function(e){let t=this._current[0]?.name||null;e.once("start",(n,r,i)=>{let s=this.pluginTree.start(t||null,r,i);e.once("loaded",(o,a,c)=>{this.pluginTree.stop(s,c)})})};Os.prototype.prettyPrint=function(){return this.pluginTree.prettyPrint()};Os.prototype.toJSON=function(){return this.pluginTree.toJSON()};Os.prototype._loadPlugin=function(e,t){let n=this;if(wSn(e.func)){e.func.then(o=>{typeof o.default=="function"&&(o=o.default),e.func=o,this._loadPlugin(e,t)},t);return}let r=n._current[0];if(n._current.unshift(e),n._error&&!e.isAfter){Tk("skipping loading of plugin as instance errored and it is not an after",e.name),process.nextTick(s);return}let i=r?.server||n._server;if(!e.isAfter)try{i=n.override(i,e.func,e.options)}catch(o){return Tk("override errored",e.name),s(o)}e.exec(i,s);function s(o){e.finish(o,a=>{n._current.shift(),t(a)})}};Os.prototype._loadPluginNextTick=function(e,t){process.nextTick(this._loadPlugin.bind(this),e,t)};function IXe(){}function CXe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,kXe(e,[],t);else if(e.length===1)kXe(e,[r],t);else if(this._opts.timeout===0){let i=s=>{this._error=s,t(this._error)};e.length===2?e(r,i):e(r,n,i)}else kSn.call(this,e,r,n,t)}function kSn(e,t,n,r){let i=e.unwrappedName??e.name;Tk("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Tk("timed out",i),s=null;let a=new bSn(i);a.fn=e,this._error=a,r(a)},this._opts.timeout);e.length===2?e(t,o.bind(this)):e(t,n,o.bind(this));function o(a){s&&(clearTimeout(s),this._error=a,r(this._error))}}function ISn(e,t){let n=this._server,r=e[OXe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Tk("resolving close/onClose promise"),i.then(()=>process.nextTick(t),s=>process.nextTick(t,s))):process.nextTick(t)}else e.length===2?e(r?n:this._error,t):r?e(n,t):e(this._error,n,t)}function xSn(e,t){return n.bind(t);function n(r,i){let s;e.length===0?(s=e(),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e.length===1?(s=e(this),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e(this,i)}}function Pae(e,t){let n=r.bind(t);return n.unwrappedName=e.name,n;function r(i,s){let o;e?e.length===0?(o=e(),o?.then?o.then(function(){process.nextTick(s,i)},s):process.nextTick(s,i)):e.length===1?(o=e(i),o?.then?o.then(function(){process.nextTick(s)},s):process.nextTick(s)):e.length===2?e(i,s):e(i,this,s):process.nextTick(s)}}MXe.exports=Os});var Ys=w((MVr,LXe)=>{"use strict";var OSn={kAvvioBoot:Symbol("fastify.avvioBoot"),kChildren:Symbol("fastify.children"),kServerBindings:Symbol("fastify.serverBindings"),kBodyLimit:Symbol("fastify.bodyLimit"),kSupportedHTTPMethods:Symbol("fastify.acceptedHTTPMethods"),kRoutePrefix:Symbol("fastify.routePrefix"),kLogLevel:Symbol("fastify.logLevel"),kLogSerializers:Symbol("fastify.logSerializers"),kHooks:Symbol("fastify.hooks"),kContentTypeParser:Symbol("fastify.contentTypeParser"),kState:Symbol("fastify.state"),kOptions:Symbol("fastify.options"),kDisableRequestLogging:Symbol("fastify.disableRequestLogging"),kPluginNameChain:Symbol("fastify.pluginNameChain"),kRouteContext:Symbol("fastify.context"),kGenReqId:Symbol("fastify.genReqId"),kHttp2ServerSessions:Symbol("fastify.http2ServerSessions"),kSchemaController:Symbol("fastify.schemaController"),kSchemaHeaders:Symbol("headers-schema"),kSchemaParams:Symbol("params-schema"),kSchemaQuerystring:Symbol("querystring-schema"),kSchemaBody:Symbol("body-schema"),kSchemaResponse:Symbol("response-schema"),kSchemaErrorFormatter:Symbol("fastify.schemaErrorFormatter"),kSchemaVisited:Symbol("fastify.schemas.visited"),kRequest:Symbol("fastify.Request"),kRequestPayloadStream:Symbol("fastify.RequestPayloadStream"),kRequestAcceptVersion:Symbol("fastify.RequestAcceptVersion"),kRequestCacheValidateFns:Symbol("fastify.request.cache.validateFns"),kRequestOriginalUrl:Symbol("fastify.request.originalUrl"),kRequestSignal:Symbol("fastify.request.signal"),kHandlerTimeout:Symbol("fastify.handlerTimeout"),kTimeoutTimer:Symbol("fastify.request.timeoutTimer"),kOnAbort:Symbol("fastify.request.onAbort"),kFourOhFour:Symbol("fastify.404"),kCanSetNotFoundHandler:Symbol("fastify.canSetNotFoundHandler"),kFourOhFourLevelInstance:Symbol("fastify.404LogLevelInstance"),kFourOhFourContext:Symbol("fastify.404ContextKey"),kDefaultJsonParse:Symbol("fastify.defaultJSONParse"),kReply:Symbol("fastify.Reply"),kReplySerializer:Symbol("fastify.reply.serializer"),kReplyIsError:Symbol("fastify.reply.isError"),kReplyHeaders:Symbol("fastify.reply.headers"),kReplyTrailers:Symbol("fastify.reply.trailers"),kReplyHasStatusCode:Symbol("fastify.reply.hasStatusCode"),kReplyHijacked:Symbol("fastify.reply.hijacked"),kReplyStartTime:Symbol("fastify.reply.startTime"),kReplyNextErrorHandler:Symbol("fastify.reply.nextErrorHandler"),kReplyEndTime:Symbol("fastify.reply.endTime"),kReplyErrorHandlerCalled:Symbol("fastify.reply.errorHandlerCalled"),kReplyIsRunningOnErrorHook:Symbol("fastify.reply.isRunningOnErrorHook"),kReplySerializerDefault:Symbol("fastify.replySerializerDefault"),kReplyCacheSerializeFns:Symbol("fastify.reply.cache.serializeFns"),kTestInternals:Symbol("fastify.testInternals"),kErrorHandler:Symbol("fastify.errorHandler"),kErrorHandlerAlreadySet:Symbol("fastify.errorHandlerAlreadySet"),kChildLoggerFactory:Symbol("fastify.childLoggerFactory"),kHasBeenDecorated:Symbol("fastify.hasBeenDecorated"),kKeepAliveConnections:Symbol("fastify.keepAliveConnections"),kRouteByFastify:Symbol("fastify.routeByFastify")};LXe.exports=OSn});var jXe=w((DVr,$V)=>{"use strict";var{format:Cae}=Y("node:util");function NSn(e){return UXe({...e,name:"DeprecationWarning"})}function UXe({name:e,code:t,message:n,unlimited:r=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!n)throw new Error("Warning message must not be empty");if(typeof r!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let i={[e]:function(o,a,c){s.emitted===!0&&s.unlimited!==!0||(s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code))}};r&&(i={[e]:function(o,a,c){s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code)}});let s=i[e];return s.emitted=!1,s.message=n,s.unlimited=r,s.code=t,s.format=function(o,a,c){let u;return o&&a&&c?u=Cae(n,o,a,c):o&&a?u=Cae(n,o,a):o?u=Cae(n,o):u=n,u},s}var Mae={createWarning:UXe,createDeprecation:NSn};$V.exports=Mae;$V.exports.default=Mae;$V.exports.processWarning=Mae});var vk=w((LVr,FXe)=>{"use strict";var{createWarning:eM}=jXe(),PSn=eM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),CSn=eM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),MSn=eM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),DSn=eM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),LSn=eM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});FXe.exports={FSTWRN001:PSn,FSTWRN003:CSn,FSTWRN004:MSn,FSTSEC001:DSn,FSTDEP022:LSn}});var Vo=w((UVr,eW)=>{"use strict";var Ue=ZV(),Qb={FST_ERR_NOT_FOUND:Ue("FST_ERR_NOT_FOUND","Not Found",404),FST_ERR_OPTIONS_NOT_OBJ:Ue("FST_ERR_OPTIONS_NOT_OBJ","Options must be an object",500,TypeError),FST_ERR_QSP_NOT_FN:Ue("FST_ERR_QSP_NOT_FN","querystringParser option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:Ue("FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN","schemaController.bucket option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:Ue("FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN","schemaErrorFormatter option should be a non async function. Instead got '%s'.",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:Ue("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ","ajv.customOptions option should be an object, instead got '%s'",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:Ue("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR","ajv.plugins option should be an array, instead got '%s'",500,TypeError),FST_ERR_VALIDATION:Ue("FST_ERR_VALIDATION","%s",400),FST_ERR_LISTEN_OPTIONS_INVALID:Ue("FST_ERR_LISTEN_OPTIONS_INVALID","Invalid listen options: '%s'",500,TypeError),FST_ERR_ERROR_HANDLER_NOT_FN:Ue("FST_ERR_ERROR_HANDLER_NOT_FN","Error Handler must be a function",500,TypeError),FST_ERR_ERROR_HANDLER_ALREADY_SET:Ue("FST_ERR_ERROR_HANDLER_ALREADY_SET","Error Handler already set in this scope. Set 'allowErrorHandlerOverride: true' to allow overriding.",500,TypeError),FST_ERR_CTP_ALREADY_PRESENT:Ue("FST_ERR_CTP_ALREADY_PRESENT","Content type parser '%s' already present."),FST_ERR_CTP_INVALID_TYPE:Ue("FST_ERR_CTP_INVALID_TYPE","The content type should be a string or a RegExp",500,TypeError),FST_ERR_CTP_EMPTY_TYPE:Ue("FST_ERR_CTP_EMPTY_TYPE","The content type cannot be an empty string",500,TypeError),FST_ERR_CTP_INVALID_HANDLER:Ue("FST_ERR_CTP_INVALID_HANDLER","The content type handler should be a function",500,TypeError),FST_ERR_CTP_INVALID_PARSE_TYPE:Ue("FST_ERR_CTP_INVALID_PARSE_TYPE","The body parser can only parse your data as 'string' or 'buffer', you asked '%s' which is not supported.",500,TypeError),FST_ERR_CTP_BODY_TOO_LARGE:Ue("FST_ERR_CTP_BODY_TOO_LARGE","Request body is too large",413,RangeError),FST_ERR_CTP_INVALID_MEDIA_TYPE:Ue("FST_ERR_CTP_INVALID_MEDIA_TYPE","Unsupported Media Type",415),FST_ERR_CTP_INVALID_CONTENT_LENGTH:Ue("FST_ERR_CTP_INVALID_CONTENT_LENGTH","Request body size did not match Content-Length",400,RangeError),FST_ERR_CTP_EMPTY_JSON_BODY:Ue("FST_ERR_CTP_EMPTY_JSON_BODY","Body cannot be empty when content-type is set to 'application/json'",400),FST_ERR_CTP_INVALID_JSON_BODY:Ue("FST_ERR_CTP_INVALID_JSON_BODY","Body is not valid JSON but content-type is set to 'application/json'",400),FST_ERR_CTP_INSTANCE_ALREADY_STARTED:Ue("FST_ERR_CTP_INSTANCE_ALREADY_STARTED",'Cannot call "%s" when fastify instance is already started!',400),FST_ERR_DEC_ALREADY_PRESENT:Ue("FST_ERR_DEC_ALREADY_PRESENT","The decorator '%s' has already been added!"),FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:Ue("FST_ERR_DEC_DEPENDENCY_INVALID_TYPE","The dependencies of decorator '%s' must be of type Array.",500,TypeError),FST_ERR_DEC_MISSING_DEPENDENCY:Ue("FST_ERR_DEC_MISSING_DEPENDENCY","The decorator is missing dependency '%s'."),FST_ERR_DEC_AFTER_START:Ue("FST_ERR_DEC_AFTER_START","The decorator '%s' has been added after start!"),FST_ERR_DEC_REFERENCE_TYPE:Ue("FST_ERR_DEC_REFERENCE_TYPE","The decorator '%s' of type '%s' is a reference type. Use the { getter, setter } interface instead."),FST_ERR_DEC_UNDECLARED:Ue("FST_ERR_DEC_UNDECLARED","No decorator '%s' has been declared on %s."),FST_ERR_HOOK_INVALID_TYPE:Ue("FST_ERR_HOOK_INVALID_TYPE","The hook name must be a string",500,TypeError),FST_ERR_HOOK_INVALID_HANDLER:Ue("FST_ERR_HOOK_INVALID_HANDLER","%s hook should be a function, instead got %s",500,TypeError),FST_ERR_HOOK_INVALID_ASYNC_HANDLER:Ue("FST_ERR_HOOK_INVALID_ASYNC_HANDLER","Async function has too many arguments. Async hooks should not use the 'done' argument.",500,TypeError),FST_ERR_HOOK_NOT_SUPPORTED:Ue("FST_ERR_HOOK_NOT_SUPPORTED","%s hook not supported!",500,TypeError),FST_ERR_MISSING_MIDDLEWARE:Ue("FST_ERR_MISSING_MIDDLEWARE","You must register a plugin for handling middlewares, visit fastify.dev/docs/latest/Reference/Middleware/ for more info.",500),FST_ERR_HOOK_TIMEOUT:Ue("FST_ERR_HOOK_TIMEOUT","A callback for '%s' hook%s timed out. You may have forgotten to call 'done' function or to resolve a Promise"),FST_ERR_LOG_INVALID_DESTINATION:Ue("FST_ERR_LOG_INVALID_DESTINATION","Cannot specify both logger.stream and logger.file options"),FST_ERR_LOG_INVALID_LOGGER:Ue("FST_ERR_LOG_INVALID_LOGGER","Invalid logger object provided. The logger instance should have these functions(s): '%s'.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_INSTANCE:Ue("FST_ERR_LOG_INVALID_LOGGER_INSTANCE","loggerInstance only accepts a logger instance.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_CONFIG:Ue("FST_ERR_LOG_INVALID_LOGGER_CONFIG","logger options only accepts a configuration object.",500,TypeError),FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:Ue("FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED","You cannot provide both logger and loggerInstance. Please provide only one.",500,TypeError),FST_ERR_REP_INVALID_PAYLOAD_TYPE:Ue("FST_ERR_REP_INVALID_PAYLOAD_TYPE","Attempted to send payload of invalid type '%s'. Expected a string or Buffer.",500,TypeError),FST_ERR_REP_RESPONSE_BODY_CONSUMED:Ue("FST_ERR_REP_RESPONSE_BODY_CONSUMED","Response.body is already consumed."),FST_ERR_REP_READABLE_STREAM_LOCKED:Ue("FST_ERR_REP_READABLE_STREAM_LOCKED","ReadableStream was locked. You should call releaseLock() method on reader before sending."),FST_ERR_REP_ALREADY_SENT:Ue("FST_ERR_REP_ALREADY_SENT",'Reply was already sent, did you forget to "return reply" in "%s" (%s)?'),FST_ERR_REP_SENT_VALUE:Ue("FST_ERR_REP_SENT_VALUE","The only possible value for reply.sent is true.",500,TypeError),FST_ERR_SEND_INSIDE_ONERR:Ue("FST_ERR_SEND_INSIDE_ONERR","You cannot use `send` inside the `onError` hook"),FST_ERR_SEND_UNDEFINED_ERR:Ue("FST_ERR_SEND_UNDEFINED_ERR","Undefined error has occurred"),FST_ERR_BAD_STATUS_CODE:Ue("FST_ERR_BAD_STATUS_CODE","Called reply with an invalid status code: %s"),FST_ERR_BAD_TRAILER_NAME:Ue("FST_ERR_BAD_TRAILER_NAME","Called reply.trailer with an invalid header name: %s"),FST_ERR_BAD_TRAILER_VALUE:Ue("FST_ERR_BAD_TRAILER_VALUE","Called reply.trailer('%s', fn) with an invalid type: %s. Expected a function."),FST_ERR_FAILED_ERROR_SERIALIZATION:Ue("FST_ERR_FAILED_ERROR_SERIALIZATION","Failed to serialize an error. Error: %s. Original error: %s"),FST_ERR_MISSING_SERIALIZATION_FN:Ue("FST_ERR_MISSING_SERIALIZATION_FN",'Missing serialization function. Key "%s"'),FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Ue("FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN",'Missing serialization function. Key "%s:%s"'),FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:Ue("FST_ERR_REQ_INVALID_VALIDATION_INVOCATION",'Invalid validation invocation. Missing validation function for HTTP part "%s" nor schema provided.'),FST_ERR_SCH_MISSING_ID:Ue("FST_ERR_SCH_MISSING_ID","Missing schema $id property"),FST_ERR_SCH_ALREADY_PRESENT:Ue("FST_ERR_SCH_ALREADY_PRESENT","Schema with id '%s' already declared!"),FST_ERR_SCH_CONTENT_MISSING_SCHEMA:Ue("FST_ERR_SCH_CONTENT_MISSING_SCHEMA","Schema is missing for the content type '%s'"),FST_ERR_SCH_DUPLICATE:Ue("FST_ERR_SCH_DUPLICATE","Schema with '%s' already present!"),FST_ERR_SCH_VALIDATION_BUILD:Ue("FST_ERR_SCH_VALIDATION_BUILD","Failed building the validation schema for %s: %s, due to error %s"),FST_ERR_SCH_SERIALIZATION_BUILD:Ue("FST_ERR_SCH_SERIALIZATION_BUILD","Failed building the serialization schema for %s: %s, due to error %s"),FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:Ue("FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX",'response schemas should be nested under a valid status code, e.g { 2xx: { type: "object" } }'),FST_ERR_INIT_OPTS_INVALID:Ue("FST_ERR_INIT_OPTS_INVALID","Invalid initialization options: '%s'"),FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:Ue("FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE","Cannot set forceCloseConnections to 'idle' as your HTTP server does not support closeIdleConnections method"),FST_ERR_DUPLICATED_ROUTE:Ue("FST_ERR_DUPLICATED_ROUTE","Method '%s' already declared for route '%s'"),FST_ERR_BAD_URL:Ue("FST_ERR_BAD_URL","'%s' is not a valid url component",400,URIError),FST_ERR_ASYNC_CONSTRAINT:Ue("FST_ERR_ASYNC_CONSTRAINT","Unexpected error from async constraint",500),FST_ERR_INVALID_URL:Ue("FST_ERR_INVALID_URL","URL must be a string. Received '%s'",400,TypeError),FST_ERR_ROUTE_OPTIONS_NOT_OBJ:Ue("FST_ERR_ROUTE_OPTIONS_NOT_OBJ",'Options for "%s:%s" route must be an object',500,TypeError),FST_ERR_ROUTE_DUPLICATED_HANDLER:Ue("FST_ERR_ROUTE_DUPLICATED_HANDLER",'Duplicate handler for "%s:%s" route is not allowed!',500),FST_ERR_ROUTE_HANDLER_NOT_FN:Ue("FST_ERR_ROUTE_HANDLER_NOT_FN","Error Handler for %s:%s route, if defined, must be a function",500,TypeError),FST_ERR_ROUTE_MISSING_HANDLER:Ue("FST_ERR_ROUTE_MISSING_HANDLER",'Missing handler function for "%s:%s" route.',500),FST_ERR_ROUTE_METHOD_INVALID:Ue("FST_ERR_ROUTE_METHOD_INVALID","Provided method is invalid!",500,TypeError),FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:Ue("FST_ERR_ROUTE_METHOD_NOT_SUPPORTED","%s method is not supported.",500),FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:Ue("FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED","Body validation schema for %s:%s route is not supported!",500),FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:Ue("FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT","'bodyLimit' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_HANDLER_TIMEOUT:Ue("FST_ERR_HANDLER_TIMEOUT","Request timed out after %s ms on route '%s'",503),FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:Ue("FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT","'handlerTimeout' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_ROUTE_REWRITE_NOT_STR:Ue("FST_ERR_ROUTE_REWRITE_NOT_STR",'Rewrite url for "%s" needs to be of type "string" but received "%s"',500,TypeError),FST_ERR_REOPENED_CLOSE_SERVER:Ue("FST_ERR_REOPENED_CLOSE_SERVER","Fastify has already been closed and cannot be reopened"),FST_ERR_REOPENED_SERVER:Ue("FST_ERR_REOPENED_SERVER","Fastify is already listening"),FST_ERR_INSTANCE_ALREADY_LISTENING:Ue("FST_ERR_INSTANCE_ALREADY_LISTENING","Fastify instance is already listening. %s"),FST_ERR_PLUGIN_VERSION_MISMATCH:Ue("FST_ERR_PLUGIN_VERSION_MISMATCH","fastify-plugin: %s - expected '%s' fastify version, '%s' is installed"),FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:Ue("FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE","The decorator '%s'%s is not present in %s"),FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:Ue("FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER","The %s plugin being registered mixes async and callback styles. Async plugin should not mix async and callback style.",500,TypeError),FST_ERR_PLUGIN_CALLBACK_NOT_FN:Ue("FST_ERR_PLUGIN_CALLBACK_NOT_FN","fastify-plugin: %s",500,TypeError),FST_ERR_PLUGIN_NOT_VALID:Ue("FST_ERR_PLUGIN_NOT_VALID","fastify-plugin: %s"),FST_ERR_ROOT_PLG_BOOTED:Ue("FST_ERR_ROOT_PLG_BOOTED","fastify-plugin: %s"),FST_ERR_PARENT_PLUGIN_BOOTED:Ue("FST_ERR_PARENT_PLUGIN_BOOTED","fastify-plugin: %s"),FST_ERR_PLUGIN_TIMEOUT:Ue("FST_ERR_PLUGIN_TIMEOUT","fastify-plugin: %s")};function USn(e,t){return t.cause=e,t}eW.exports=Qb;eW.exports.appendStackTrace=USn;eW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:Qb.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:Qb.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:Qb.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:Qb.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:Qb.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:Qb.FST_ERR_PLUGIN_TIMEOUT}});var GS=w((jVr,ZXe)=>{"use strict";var jSn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],GXe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],FSn=GXe.concat(jSn),{FST_ERR_HOOK_INVALID_TYPE:HSn,FST_ERR_HOOK_INVALID_HANDLER:qSn,FST_ERR_SEND_UNDEFINED_ERR:tW,FST_ERR_HOOK_TIMEOUT:BSn,FST_ERR_HOOK_NOT_SUPPORTED:GSn,AVVIO_ERRORS_MAP:HXe,appendStackTrace:qXe}=Vo(),{kChildren:tM,kHooks:zXe,kRequestPayloadStream:BXe}=Ys();function nM(){this.onRequest=[],this.preParsing=[],this.preValidation=[],this.preSerialization=[],this.preHandler=[],this.onResponse=[],this.onSend=[],this.onError=[],this.onRoute=[],this.onRegister=[],this.onReady=[],this.onListen=[],this.onTimeout=[],this.onRequestAbort=[],this.preClose=[]}nM.prototype=Object.create(null);nM.prototype.validate=function(e,t){if(typeof e!="string")throw new HSn;if(Array.isArray(this[e])===!1)throw new GSn(e);if(typeof t!="function")throw new qSn(e,Object.prototype.toString.call(t))};nM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function zSn(e){let t=new nM;return t.onRequest=e.onRequest.slice(),t.preParsing=e.preParsing.slice(),t.preValidation=e.preValidation.slice(),t.preSerialization=e.preSerialization.slice(),t.preHandler=e.preHandler.slice(),t.onSend=e.onSend.slice(),t.onResponse=e.onResponse.slice(),t.onError=e.onError.slice(),t.onRoute=e.onRoute.slice(),t.onRegister=e.onRegister.slice(),t.onTimeout=e.onTimeout.slice(),t.onRequestAbort=e.onRequestAbort.slice(),t.onReady=[],t.onListen=[],t.preClose=[],t}function VXe(e,t,n,r){let i=n[zXe][e],s=0,o=0;c();function a(l){let d=i[s-1]?.name,f=d?` "${d}"`:"";if(l){l.code==="AVV_ERR_READY_TIMEOUT"?l=qXe(l,new BSn(e,f)):l=HXe[l.code]!=null?qXe(l,new HXe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[tM].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";YXe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var Dae=w((HVr,QXe)=>{"use strict";var{kTestInternals:e_n}=Ys();function XXe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}QXe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):XXe,[e_n]:{withResolvers:XXe}}});var uQe=w((qVr,cQe)=>{"use strict";var t_n=Y("node:http"),n_n=Y("node:https"),$Xe=Y("node:http2"),r_n=Y("node:dns"),i_n=Y("node:os"),{kState:Ns,kOptions:s_n,kServerBindings:o_n,kHttp2ServerSessions:$b}=Ys(),{FSTWRN003:a_n}=vk(),{onListenHookRunner:nW}=GS(),{FST_ERR_REOPENED_CLOSE_SERVER:tQe,FST_ERR_REOPENED_SERVER:nQe,FST_ERR_LISTEN_OPTIONS_INVALID:c_n,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:u_n}=Vo(),l_n=JXe(),rQe=Dae();cQe.exports.createServer=d_n;function iQe(e){return`Server listening at ${e}`}function d_n(e,t){let n=oQe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&a_n("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new c_n("Invalid options.signal");if(this[Ns].aborted=u.signal.aborted,this[Ns].aborted)return this.close();{let f=()=>{this[Ns].aborted=!0,this.close()};u.signal.addEventListener("abort",f,{once:!0})}}let d;if(u.path==null?d=u.host??"localhost":d=u.host,(!Object.hasOwn(u,"host")||u.host==null)&&(u.host=d),d==="localhost"?u.cb=(f,p)=>{if(f){l(f,p);return}eQe.call(this,n,t,e,u,()=>{this[Ns].listening=!0,l(null,p),nW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ns].listening=!0,l(null,p),nW(this)},l===void 0)return f_n.call(this,n,u).then(p=>{let{promise:h,resolve:m}=rQe.withResolvers();return d==="localhost"?eQe.call(this,n,t,e,u,()=>{this[Ns].listening=!0,m(p),nW(this)}):(m(p),nW(this)),h});this.ready(sQe.call(this,n,u))}let i=typeof n.closeAllConnections=="function",s=typeof n.closeIdleConnections=="function",o=typeof n.closeHttp2Sessions=="function",a=e.forceCloseConnections;if(a==="idle"&&!s)throw new u_n;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:l_n();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function eQe(e,t,n,r,i){this[Ns].listening=!1,r_n.lookup(r.host,{all:!0},(s,o)=>{if(s||this[Ns].aborted){i();return}let a=e.listening&&n.serverFactory,c=0,u=0;if(!a){let d=e.address();for(let f of o)if(f.address!==d.address){c++;let p=Object.assign({},r,{host:f.address,port:d.port,cb:y=>{u++,y||this[o_n].push(h),u===c&&i()}}),h=oQe(n,t),m=()=>{h.close(()=>{}),typeof h.closeAllConnections=="function"&&n.forceCloseConnections===!0&&h.closeAllConnections(),typeof h.closeHttp2Sessions=="function"&&h.closeHttp2Sessions()};h.on("upgrade",e.emit.bind(e,"upgrade")),e.on("unref",m),e.on("close",m),e.on("error",m),this[Ns].listening=!1,sQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function sQe(e,t){let n=r=>{if(e.removeListener("error",n),e.removeListener("listening",n),r)this[Ns].listening=!1,t.cb(r,null);else{let i=aQe.call(this,e,t.listenTextResolver||iQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ns].listening&&this[Ns].closing)return t.cb(new tQe,null);if(this[Ns].listening)return t.cb(new nQe,null);e.once("error",n),this[Ns].closing||(e.once("listening",n),e.listen(t),this[Ns].listening=!0)}}function f_n(e,t){return this[Ns].listening&&this[Ns].closing?Promise.reject(new tQe):this[Ns].listening?Promise.reject(new nQe):this.ready().then(()=>{if(this[Ns].aborted)return;let{promise:n,resolve:r,reject:i}=rQe.withResolvers(),s=c=>{a(),this[Ns].listening=!1,i(c)},o=()=>{a(),this[Ns].listening=!0,r(aQe.call(this,e,t.listenTextResolver||iQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function oQe(e,t){if(e.serverFactory)return e.serverFactory(t,e);let n=e.https===!0?{}:e.https;if(e.http2){let i=typeof n=="object"?$Xe.createSecureServer(n,t):$Xe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=h_n(i)),i.setTimeout(e.connectionTimeout),i}let r=n?n_n.createServer(n,t):t_n.createServer(e.http,t);return r.keepAliveTimeout=e.keepAliveTimeout,r.requestTimeout=e.requestTimeout,r.setTimeout(e.connectionTimeout),e.maxRequestsPerSocket>0&&(r.maxRequestsPerSocket=e.maxRequestsPerSocket),r}function p_n(e){return e.address==="0.0.0.0"?Object.values(i_n.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function aQe(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=p_n(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[s_n].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function h_n(e){return e[$b]=new Set,e.on("session",function(t){t.once("connect",function(){e[$b].add(t)}),t.once("close",function(){e[$b].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[$b].delete(t)}),t.once("goaway",function(){e[$b].delete(t)})}),function(){if(e[$b].size!==0)for(let n of e[$b])n.close()}}});var jae=w((BVr,fQe)=>{"use strict";var Lae=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,lQe=/^[\w!#$%&'*+.^`|~-]+$/,dQe=/^[\w!#$%&'*+.^`|~-]+\s*$/,Uae=class{#t=!1;#n=!0;#i="";#e="";#r=new Map;#s;constructor(t){if(t==null||t===""||t==="undefined")return;let n=t.indexOf(";");if(n===-1){if(n=t.indexOf("/"),n===-1)return;let c=t.slice(0,n).trimStart().toLowerCase(),u=t.slice(n+1).trimEnd().toLowerCase();lQe.test(c)===!0&&dQe.test(u)===!0&&(this.#t=!0,this.#n=!1,this.#i=c,this.#e=u);return}let r=t.slice(0,n).toLowerCase(),i=t.slice(n+1).trim();if(n=r.indexOf("/"),n===-1)return;let s=r.slice(0,n).trimStart(),o=r.slice(n+1).trimEnd();if(lQe.test(s)===!1||dQe.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=Lae.exec(i);for(;a;){let c=a[1],u=a[2];if(u[0]==='"'){if(u.at(-1)!=='"'){this.#r.set(c,"invalid quoted string"),a=Lae.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=Lae.exec(i)}}get[Symbol.toStringTag](){return"ContentType"}get isEmpty(){return this.#n}get isValid(){return this.#t}get mediaType(){return`${this.#i}/${this.#e}`}get type(){return this.#i}get subtype(){return this.#e}get parameters(){return this.#r}toString(){if(this.#s)return this.#s;let t=[];for(let[r,i]of this.#r.entries())t.push(`${r}="${i}"`);let n=[this.#i,"/",this.#e];return t.length>0&&(n.push("; "),n.push(t.join("; "))),this.#s=n.join(""),this.#s}};fQe.exports=Uae});var rW=w((GVr,pQe)=>{"use strict";var{kReplyHasStatusCode:m_n}=Ys();function g_n(e,t){if(!e[m_n]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}pQe.exports={setErrorStatusCode:g_n}});var Fae=w((zVr,mQe)=>{"use strict";var{kReplyIsError:hQe,kReplyHijacked:y_n}=Ys(),{setErrorStatusCode:S_n}=rW(),__n=Y("node:diagnostics_channel"),iM=__n.tracingChannel("fastify.request.handler");function E_n(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[y_n]!==!0){n&&iM.asyncStart.publish(n);try{if(r!==void 0||t.sent===!1&&t.raw.headersSent===!1&&t.request.raw.aborted===!1&&t.request.socket&&!t.request.socket.destroyed)try{t.send(r)}catch(i){t[hQe]=!0,t.send(i)}}finally{n&&iM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,S_n(t,r),iM.error.publish(n),iM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[hQe]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&iM.asyncEnd.publish(n)}})}mQe.exports=E_n});var Bae=w((VVr,yQe)=>{"use strict";var{kSchemaHeaders:oW,kSchemaParams:Hae,kSchemaQuerystring:qae,kSchemaBody:eT,kSchemaResponse:gQe}=Ys(),b_n=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:T_n}=Vo(),{FSTWRN001:iW}=vk();function v_n(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[gQe]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!b_n.test(s))throw new T_n;if(o.content){let a={};for(let c of Object.keys(o.content)){let u=o.content[c].schema;a[c]=t({schema:u,url:r,method:n,httpStatus:s,contentType:c})}i[s]=a}else i[s]=t({schema:o,url:r,method:n,httpStatus:s});return i},{})}function A_n(e,t,n){let{schema:r}=e;if(!r)return;let{method:i,url:s}=e.config||{},o=r.headers;if(o&&(n||Object.getPrototypeOf(o)!==Object.prototype))e[oW]=t({schema:o,method:i,url:s,httpPart:"headers"});else if(o){let a={};Object.keys(o).forEach(c=>{a[c]=o[c]}),a.required instanceof Array&&(a.required=a.required.map(c=>c.toLowerCase())),o.properties&&(a.properties={},Object.keys(o.properties).forEach(c=>{a.properties[c.toLowerCase()]=o.properties[c]})),e[oW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&iW("headers",i,s);if(r.body){let a=r.body.content;if(a){let c={};for(let u of Object.keys(a)){let l=a[u].schema;c[u]=t({schema:l,method:i,url:s,httpPart:"body",contentType:u})}e[eT]=c}else e[eT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&iW("body",i,s);r.querystring?e[qae]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&iW("querystring",i,s),r.params?e[Hae]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&iW("params",i,s)}function sW(e,t,n){let r=t[n]===void 0,i;try{i=e?.(r?null:t[n])}catch(o){return o.statusCode=500,o}if(i&&typeof i.then=="function")return i.then(o=>s(o)).catch(o=>o);return s(i);function s(o){return o===!1?e.errors:o&&o.error?o.error:(o&&o.value&&(t[n]=o.value),!1)}}function aW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=sW(e[Hae],t,"params");if(s)return typeof s.then!="function"?zS(s,"params",e.schemaErrorFormatter):R_n(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[eT]=="function")s=e[eT];else if(e[eT]){let a=x_n(t.headers["content-type"]),c=e[eT][a];c&&(s=c)}let o=sW(s,t,"body");if(o)return typeof o.then!="function"?zS(o,"body",e.schemaErrorFormatter):w_n(o,e,t)}if(r||!n.skipQuery){let s=sW(e[qae],t,"query");if(s)return typeof s.then!="function"?zS(s,"querystring",e.schemaErrorFormatter):k_n(s,e,t)}let i=sW(e[oW],t,"headers");return i?typeof i.then!="function"?zS(i,"headers",e.schemaErrorFormatter):I_n(i,e,t):!1}function R_n(e,t,n){return e.then(r=>r?zS(r,"params",t.schemaErrorFormatter):aW(t,n,{skipParams:!0}))}function w_n(e,t,n){return e.then(r=>r?zS(r,"body",t.schemaErrorFormatter):aW(t,n,{skipParams:!0,skipBody:!0}))}function k_n(e,t,n){return e.then(r=>r?zS(r,"querystring",t.schemaErrorFormatter):aW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function I_n(e,t,n){return e.then(r=>r?zS(r,"headers",t.schemaErrorFormatter):!1)}function zS(e,t,n){if(e instanceof Error)return e.statusCode=e.statusCode||400,e.code=e.code||"FST_ERR_VALIDATION",e.validationContext=e.validationContext||t,e;let r=n(e,t);return r.statusCode=r.statusCode||400,r.code=r.code||"FST_ERR_VALIDATION",r.validation=e,r.validationContext=t,r}function x_n(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}yQe.exports={symbols:{bodySchema:eT,querystringSchema:qae,responseSchema:gQe,paramsSchema:Hae,headersSchema:oW},compileSchemasForValidation:A_n,compileSchemasForSerialization:v_n,validate:aW}});var Wae=w((WVr,Vae)=>{"use strict";var O_n=Y("node:diagnostics_channel"),N_n=jae(),P_n=Fae(),{validate:C_n}=Bae(),{preValidationHookRunner:M_n,preHandlerHookRunner:D_n}=GS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:L_n}=Vo(),{setErrorStatusCode:SQe}=rW(),{kReplyIsError:oM,kRouteContext:gh,kFourOhFourContext:U_n,kSupportedHTTPMethods:_Qe}=Ys(),sM=O_n.tracingChannel("fastify.request.handler");function j_n(e,t,n){if(n.sent===!0)return;if(e!=null){n[oM]=!0,n.send(e);return}let r=t.method;if(this[_Qe].bodyless.has(r)){Rk(t,n);return}if(this[_Qe].bodywith.has(r)){let i=t.headers,s=i["content-type"];if(s===void 0){let a=i["content-length"];if(i["transfer-encoding"]===void 0&&(a===void 0||a==="0")){Rk(t,n);return}t[gh].contentTypeParser.run("",Rk,t,n);return}let o=new N_n(s);if(o.isValid===!1){n[oM]=!0,n.status(415).send(new L_n);return}t[gh].contentTypeParser.run(o.toString(),Rk,t,n);return}Rk(t,n)}function Rk(e,t){try{e[gh].preValidation!==null?M_n(e[gh].preValidation,e,t,Gae):Gae(null,e,t)}catch(n){Gae(n,e,t)}}function Gae(e,t,n){if(n.sent===!0)return;if(e!=null){n[oM]=!0,n.send(e);return}let r=C_n(n[gh],t);if(r&&typeof r.then=="function"||!1){let s=EQe.bind(null,t,n);r.then(s,s)}else EQe(t,n,r)}function EQe(e,t,n){if(n){if(t[gh].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[gh].preHandler!==null?D_n(e[gh].preHandler,e,t,zae):zae(null,e,t)}function zae(e,t,n){if(n.sent)return;let r=t[gh];if(!sM.hasSubscribers||r[U_n]===null)bQe(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};sM.start.runStores(i,bQe,void 0,e,t,n,i)}}function bQe(e,t,n,r){let i=t[gh];try{if(e!=null){n[oM]=!0,r&&(r.error=e,SQe(n,e),sM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,SQe(n,o),sM.error.publish(r)),n[oM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?P_n(s,n,r):n.send(s))}finally{r&&sM.end.publish(r)}}Vae.exports=j_n;Vae.exports[Symbol.for("internals")]={handler:Rk,preHandlerCallback:zae}});var vQe=w((KVr,TQe)=>{"use strict";function wk(){}var F_n={fatal:wk,error:wk,warn:wk,info:wk,debug:wk,trace:wk};Object.defineProperty(TQe,"exports",{get(){return Object.create(F_n)}})});var Zae=w((ZVr,wQe)=>{"use strict";var aM=e=>e&&typeof e.message=="string",Kae=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return aM(n)?n:void 0}else return aM(t)?t:void 0},AQe=(e,t)=>{if(!aM(e))return"";let n=e.stack||"";if(t.has(e))return n+` -causes have become circular...`;let r=Kae(e);return r?(t.add(e),n+` -caused by: `+AQe(r,t)):n},H_n=e=>AQe(e,new Set),RQe=(e,t,n)=>{if(!aM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=Kae(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+RQe(i,t,s)}else return r},q_n=e=>RQe(e,new Set);wQe.exports={isErrorLike:aM,getErrorCause:Kae,stackWithCauses:H_n,messageWithCauses:q_n}});var Yae=w((YVr,IQe)=>{"use strict";var B_n=Symbol("circular-ref-tag"),cW=Symbol("pino-raw-err-ref"),kQe=Object.create({},{type:{enumerable:!0,writable:!0,value:void 0},message:{enumerable:!0,writable:!0,value:void 0},stack:{enumerable:!0,writable:!0,value:void 0},aggregateErrors:{enumerable:!0,writable:!0,value:void 0},raw:{enumerable:!1,get:function(){return this[cW]},set:function(e){this[cW]=e}}});Object.defineProperty(kQe,cW,{writable:!0,value:{}});IQe.exports={pinoErrProto:kQe,pinoErrorSymbols:{seen:B_n,rawSymbol:cW}}});var NQe=w((JVr,OQe)=>{"use strict";OQe.exports=Xae;var{messageWithCauses:G_n,stackWithCauses:z_n,isErrorLike:xQe}=Zae(),{pinoErrProto:V_n,pinoErrorSymbols:W_n}=Yae(),{seen:Jae}=W_n,{toString:K_n}=Object.prototype;function Xae(e){if(!xQe(e))return e;e[Jae]=void 0;let t=Object.create(V_n);t.type=K_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=G_n(e),t.stack=z_n(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>Xae(n)));for(let n in e)if(t[n]===void 0){let r=e[n];xQe(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,Jae)&&(t[n]=Xae(r)):t[n]=r}return delete e[Jae],t.raw=e,t}});var CQe=w((XVr,PQe)=>{"use strict";PQe.exports=lW;var{isErrorLike:Qae}=Zae(),{pinoErrProto:Z_n,pinoErrorSymbols:Y_n}=Yae(),{seen:uW}=Y_n,{toString:J_n}=Object.prototype;function lW(e){if(!Qae(e))return e;e[uW]=void 0;let t=Object.create(Z_n);t.type=J_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=e.message,t.stack=e.stack,Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>lW(n))),Qae(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,uW)&&(t.cause=lW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];Qae(r)?Object.prototype.hasOwnProperty.call(r,uW)||(t[n]=lW(r)):t[n]=r}return delete e[uW],t.raw=e,t}});var UQe=w((QVr,LQe)=>{"use strict";LQe.exports={mapHttpRequest:X_n,reqSerializer:DQe};var $ae=Symbol("pino-raw-req-ref"),MQe=Object.create({},{id:{enumerable:!0,writable:!0,value:""},method:{enumerable:!0,writable:!0,value:""},url:{enumerable:!0,writable:!0,value:""},query:{enumerable:!0,writable:!0,value:""},params:{enumerable:!0,writable:!0,value:""},headers:{enumerable:!0,writable:!0,value:{}},remoteAddress:{enumerable:!0,writable:!0,value:""},remotePort:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[$ae]},set:function(e){this[$ae]=e}}});Object.defineProperty(MQe,$ae,{writable:!0,value:{}});function DQe(e){let t=e.info||e.socket,n=Object.create(MQe);if(n.id=typeof e.id=="function"?e.id():e.id||(e.info?e.info.id:void 0),n.method=e.method,e.originalUrl)n.url=e.originalUrl;else{let r=e.path;n.url=typeof r=="string"?r:e.url?e.url.path||e.url:void 0}return e.query&&(n.query=e.query),e.params&&(n.params=e.params),n.headers=e.headers,n.remoteAddress=t&&t.remoteAddress,n.remotePort=t&&t.remotePort,n.raw=e.raw||e,n}function X_n(e){return{req:DQe(e)}}});var qQe=w(($Vr,HQe)=>{"use strict";HQe.exports={mapHttpResponse:Q_n,resSerializer:FQe};var ece=Symbol("pino-raw-res-ref"),jQe=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[ece]},set:function(e){this[ece]=e}}});Object.defineProperty(jQe,ece,{writable:!0,value:{}});function FQe(e){let t=Object.create(jQe);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function Q_n(e){return{res:FQe(e)}}});var nce=w((eWr,BQe)=>{"use strict";var tce=NQe(),$_n=CQe(),dW=UQe(),fW=qQe();BQe.exports={err:tce,errWithCause:$_n,mapHttpRequest:dW.mapHttpRequest,mapHttpResponse:fW.mapHttpResponse,req:dW.reqSerializer,res:fW.resSerializer,wrapErrorSerializer:function(t){return t===tce?t:function(r){return t(tce(r))}},wrapRequestSerializer:function(t){return t===dW.reqSerializer?t:function(r){return t(dW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===fW.resSerializer?t:function(r){return t(fW.resSerializer(r))}}}});var rce=w((tWr,GQe)=>{"use strict";function eEn(e,t){return t}GQe.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=eEn;let n=new Error().stack;if(Error.prepareStackTrace=t,!Array.isArray(n))return;let r=n.slice(2),i=[];for(let s of r)s&&i.push(s.getFileName());return i}});var YQe=w((nWr,ZQe)=>{"use strict";function ice(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Array){let t=[];for(let n=0;n{let m=[...c.slice(0,d),...h];return n(p,m)}:n,i,s);else if(s)WQe(l,a);else{let f=typeof n=="function"?n(nEn(l,a),[...c.slice(0,d),...a]):n;VQe(l,a,f)}}if(o.length===0)u(e,0);else{let l=e;for(let d=0;d0)n?s===r&&(n=!1,r=""):(n=!0,r=s);else if(s==="["&&!n)t++;else if(s==="]"&&!n&&(t--,t<0))throw new Error(`Invalid redaction path (${e})`)}if(t!==0)throw new Error(`Invalid redaction path (${e})`)}function cEn(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)aEn(t)}function uEn(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;cEn(t);let o=sEn(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=oEn(c,o),l=c,d=n;return typeof n=="function"&&(d=n),rEn(u,t,d,s),r===!1?(u.restore=function(){return ice(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}ZQe.exports=uEn});var kk=w((rWr,JQe)=>{"use strict";var lEn=Symbol("pino.setLevel"),dEn=Symbol("pino.getLevel"),fEn=Symbol("pino.levelVal"),pEn=Symbol("pino.levelComp"),hEn=Symbol("pino.useLevelLabels"),mEn=Symbol("pino.useOnlyCustomLevels"),gEn=Symbol("pino.mixin"),yEn=Symbol("pino.lsCache"),SEn=Symbol("pino.chindings"),_En=Symbol("pino.asJson"),EEn=Symbol("pino.write"),bEn=Symbol("pino.redactFmt"),TEn=Symbol("pino.time"),vEn=Symbol("pino.timeSliceIndex"),AEn=Symbol("pino.stream"),REn=Symbol("pino.stringify"),wEn=Symbol("pino.stringifySafe"),kEn=Symbol("pino.stringifiers"),IEn=Symbol("pino.end"),xEn=Symbol("pino.formatOpts"),OEn=Symbol("pino.messageKey"),NEn=Symbol("pino.errorKey"),PEn=Symbol("pino.nestedKey"),CEn=Symbol("pino.nestedKeyStr"),MEn=Symbol("pino.mixinMergeStrategy"),DEn=Symbol("pino.msgPrefix"),LEn=Symbol("pino.wildcardFirst"),UEn=Symbol.for("pino.serializers"),jEn=Symbol.for("pino.formatters"),FEn=Symbol.for("pino.hooks"),HEn=Symbol.for("pino.metadata");JQe.exports={setLevelSym:lEn,getLevelSym:dEn,levelValSym:fEn,levelCompSym:pEn,useLevelLabelsSym:hEn,mixinSym:gEn,lsCacheSym:yEn,chindingsSym:SEn,asJsonSym:_En,writeSym:EEn,serializersSym:UEn,redactFmtSym:bEn,timeSym:TEn,timeSliceIndexSym:vEn,streamSym:AEn,stringifySym:REn,stringifySafeSym:wEn,stringifiersSym:kEn,endSym:IEn,formatOptsSym:xEn,messageKeySym:OEn,errorKeySym:NEn,nestedKeySym:PEn,wildcardFirstSym:LEn,needsMetadataGsym:HEn,useOnlyCustomLevelsSym:mEn,formattersSym:jEn,hooksSym:FEn,nestedKeyStrSym:CEn,mixinMergeStrategySym:MEn,msgPrefixSym:DEn}});var oce=w((iWr,e$e)=>{"use strict";var XQe=YQe(),{redactFmtSym:qEn,wildcardFirstSym:hW}=kk(),sce=/[^.[\]]+|\[([^[\]]*?)\]/g,QQe="[Redacted]",$Qe=!1;function BEn(e,t){let{paths:n,censor:r,remove:i}=GEn(e),s=n.reduce((c,u)=>{sce.lastIndex=0;let l=sce.exec(u),d=sce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=hW),d===null)return c[f]=null,c;if(c[f]===null)return c;let{index:p}=d,h=`${u.substr(p,u.length-1)}`;return c[f]=c[f]||[],f!==hW&&c[f].length===0&&c[f].push(...c[hW]||[]),f===hW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[qEn]:XQe({paths:n,censor:r,serialize:t,strict:$Qe,remove:i})},a=(...c)=>t(typeof r=="function"?r(...c):r);return[...Object.keys(s),...Object.getOwnPropertySymbols(s)].reduce((c,u)=>{if(s[u]===null)c[u]=l=>a(l,[u]);else{let l=typeof r=="function"?(d,f)=>r(d,[u,...f]):r;c[u]=XQe({paths:s[u],censor:l,serialize:t,strict:$Qe,remove:i})}return c},o)}function GEn(e){if(Array.isArray(e))return e={paths:e,censor:QQe},e;let{paths:t,censor:n=QQe,remove:r}=e;if(Array.isArray(t)===!1)throw Error("pino \u2013 redact must contain an array of strings");return r===!0&&(n=void 0),{paths:t,censor:n,remove:r}}e$e.exports=BEn});var r$e=w((sWr,n$e)=>{"use strict";var zEn=()=>"",VEn=()=>`,"time":${Date.now()}`,WEn=()=>`,"time":${Math.round(Date.now()/1e3)}`,KEn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,ZEn=1000000n,t$e=1000000000n,YEn=BigInt(Date.now())*ZEn,JEn=process.hrtime.bigint(),XEn=()=>{let e=process.hrtime.bigint()-JEn,t=YEn+e,n=t/t$e,r=t%t$e,i=Number(n*1000n+r/1000000n),s=new Date(i),o=s.getUTCFullYear(),a=(s.getUTCMonth()+1).toString().padStart(2,"0"),c=s.getUTCDate().toString().padStart(2,"0"),u=s.getUTCHours().toString().padStart(2,"0"),l=s.getUTCMinutes().toString().padStart(2,"0"),d=s.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${o}-${a}-${c}T${u}:${l}:${d}.${r.toString().padStart(9,"0")}Z"`};n$e.exports={nullTime:zEn,epochTime:VEn,unixTime:WEn,isoTime:KEn,isoTimeNano:XEn}});var s$e=w((oWr,i$e)=>{"use strict";function QEn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}i$e.exports=$En;function $En(e,t,n){var r=n&&n.stringify||QEn,i=1;if(typeof e=="object"&&e!==null){var s=t.length+i;if(s===1)return e;var o=new Array(s);o[0]=r(e);for(var a=1;a-1?d:0,e.charCodeAt(p+1)){case 100:case 102:if(l>=c||t[l]==null)break;d=c||t[l]==null)break;d=c||t[l]===void 0)break;d",d=p+2,p++;break}u+=r(t[l]),d=p+2,p++;break;case 115:if(l>=c)break;d{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let t=function(n){if((n>0&&n<1/0)===!1)throw typeof n!="number"&&typeof n!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(e,0,0,Number(n))},e=new Int32Array(new SharedArrayBuffer(4));ace.exports=t}else{let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let r=Date.now()+Number(t);for(;r>Date.now(););};ace.exports=e}});var p$e=w((cWr,f$e)=>{"use strict";var mi=Y("fs"),ebn=Y("events"),tbn=Y("util").inherits,o$e=Y("path"),lce=cce(),nbn=Y("assert"),mW=100,gW=Buffer.allocUnsafe(0),rbn=16*1024,a$e="buffer",c$e="utf8",[ibn,sbn]=(process.versions.node||"0.0").split(".").map(Number),obn=ibn>=22&&sbn>=7;function u$e(e,t){t._opening=!0,t._writing=!0,t._asyncDrainScheduled=!1;function n(s,o){if(s){t._reopening=!1,t._writing=!1,t._opening=!1,t.sync?process.nextTick(()=>{t.listenerCount("error")>0&&t.emit("error",s)}):t.emit("error",s);return}let a=t._reopening;t.fd=o,t.file=e,t._reopening=!1,t._opening=!1,t._writing=!1,t.sync?process.nextTick(()=>t.emit("ready")):t.emit("ready"),!t.destroyed&&(!t._writing&&t._len>t.minLength||t._flushPending?t._actualWrite():a&&process.nextTick(()=>t.emit("drain")))}let r=t.append?"a":"w",i=t.mode;if(t.sync)try{t.mkdir&&mi.mkdirSync(o$e.dirname(e),{recursive:!0});let s=mi.openSync(e,r,i);n(null,s)}catch(s){throw n(s),s}else t.mkdir?mi.mkdir(o$e.dirname(e),{recursive:!0},s=>{if(s)return n(s);mi.open(e,r,i,n)}):mi.open(e,r,i,n)}function kf(e){if(!(this instanceof kf))return new kf(e);let{fd:t,dest:n,minLength:r,maxLength:i,maxWrite:s,periodicFlush:o,sync:a,append:c=!0,mkdir:u,retryEAGAIN:l,fsync:d,contentMode:f,mode:p}=e||{};t=t||n,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(r||0,16387),this.file=null,this.destroyed=!1,this.minLength=r||0,this.maxLength=i||0,this.maxWrite=s||rbn,this._periodicFlush=o||0,this._periodicFlushTimer=void 0,this.sync=a||!1,this.writable=!0,this._fsync=d||!1,this.append=c||!1,this.mode=p,this.retryEAGAIN=l||(()=>!0),this.mkdir=u||!1;let h,m;if(f===a$e)this._writingBuf=gW,this.write=ubn,this.flush=dbn,this.flushSync=pbn,this._actualWrite=mbn,h=()=>mi.writeSync(this.fd,this._writingBuf),m=()=>mi.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===c$e)this._writingBuf="",this.write=cbn,this.flush=lbn,this.flushSync=fbn,this._actualWrite=hbn,h=()=>Buffer.isBuffer(this._writingBuf)?mi.writeSync(this.fd,this._writingBuf):mi.writeSync(this.fd,this._writingBuf,"utf8"),m=()=>Buffer.isBuffer(this._writingBuf)?mi.write(this.fd,this._writingBuf,this.release):mi.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${c$e}" and "${a$e}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")u$e(t,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(y,g)=>{if(y){if((y.code==="EAGAIN"||y.code==="EBUSY")&&this.retryEAGAIN(y,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{lce(mW),this.release(void 0,0)}catch(_){this.release(_)}else setTimeout(m,mW);else this._writing=!1,this.emit("error",y);return}this.emit("write",g);let E=uce(this._writingBuf,this._len,g);if(this._len=E.len,this._writingBuf=E.writingBuf,this._writingBuf.length){if(!this.sync){m();return}try{do{let _=h(),b=uce(this._writingBuf,this._len,_);this._len=b.len,this._writingBuf=b.writingBuf}while(this._writingBuf.length)}catch(_){this.release(_);return}}this._fsync&&mi.fsyncSync(this.fd);let S=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):S>this.minLength?this._actualWrite():this._ending?S>0?this._actualWrite():(this._writing=!1,yW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(abn,this)):this.emit("drain"))},this.on("newListener",function(y){y==="drain"&&(this._asyncDrainScheduled=!1)}),this._periodicFlush!==0&&(this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref())}function uce(e,t,n){return typeof e=="string"&&(e=Buffer.from(e)),t=Math.max(t-n,0),e=e.subarray(n),{writingBuf:e,len:t}}function abn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}tbn(kf,ebn);function l$e(e,t){return e.length===0?gW:e.length===1?e[0]:Buffer.concat(e,t)}function cbn(e){if(this.destroyed)throw new Error("SonicBoom destroyed");e=""+e;let t=Buffer.byteLength(e),n=this._len+t,r=this._bufs;return this.maxLength&&n>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(e):r[r.length-1]+=e,this._len=n,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(n.push([e]),r.push(e.length)):(n[n.length-1].push(e),r[r.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{if(this._fsync)this._flushPending=!1,e();else try{mi.fsync(this.fd,r=>{this._flushPending=!1,e(r)})}catch(r){e(r)}this.off("error",n)},n=r=>{this._flushPending=!1,e(r),this.off("drain",t)};this.once("drain",t),this.once("error",n)}function lbn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&d$e.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function dbn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&d$e.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}kf.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&mi.close(t,n=>{if(n)return this.emit("error",n)})}),u$e(this.file,this)};kf.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():yW(this)))};function fbn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e.length;){e.length<=0&&(e=this._bufs[0]);try{let t=Buffer.isBuffer(e)?mi.writeSync(this.fd,e):mi.writeSync(this.fd,e,"utf8"),n=uce(e,this._len,t);e=n.writingBuf,this._len=n.len,e.length<=0&&this._bufs.shift()}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;lce(mW)}}try{mi.fsyncSync(this.fd)}catch{}}function pbn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=gW);let e=gW;for(;this._bufs.length||e.length;){e.length<=0&&(e=l$e(this._bufs[0],this._lens[0]));try{let t=mi.writeSync(this.fd,e);e=e.subarray(t),this._len=Math.max(this._len-t,0),e.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;lce(mW)}}}kf.prototype.destroy=function(){this.destroyed||yW(this)};function hbn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let t=Buffer.isBuffer(this._writingBuf)?mi.writeSync(this.fd,this._writingBuf):mi.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else mi.write(this.fd,this._writingBuf,e)}function mbn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:l$e(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=mi.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else obn&&(this._writingBuf=Buffer.from(this._writingBuf)),mi.write(this.fd,this._writingBuf,e)}function yW(e){if(e.fd===-1){e.once("ready",yW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],nbn(typeof e.fd=="number",`sonic.fd must be a number, got ${typeof e.fd}`);try{mi.fsync(e.fd,t)}catch{}function t(){e.fd!==1&&e.fd!==2?mi.close(e.fd,n):n()}function n(r){if(r){e.emit("error",r);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}kf.SonicBoom=kf;kf.default=kf;f$e.exports=kf});var dce=w((uWr,S$e)=>{"use strict";var If={exit:[],beforeExit:[]},h$e={exit:Sbn,beforeExit:_bn},Ik;function gbn(){Ik===void 0&&(Ik=new FinalizationRegistry(Ebn))}function ybn(e){If[e].length>0||process.on(e,h$e[e])}function m$e(e){If[e].length>0||(process.removeListener(e,h$e[e]),If.exit.length===0&&If.beforeExit.length===0&&(Ik=void 0))}function Sbn(){g$e("exit")}function _bn(){g$e("beforeExit")}function g$e(e){for(let t of If[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}If[e]=[]}function Ebn(e){for(let t of["exit","beforeExit"]){let n=If[t].indexOf(e);If[t].splice(n,n+1),m$e(t)}}function y$e(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");ybn(e);let r=new WeakRef(t);r.fn=n,gbn(),Ik.register(t,r),If[e].push(r)}function bbn(e,t){y$e("exit",e,t)}function Tbn(e,t){y$e("beforeExit",e,t)}function vbn(e){if(Ik!==void 0){Ik.unregister(e);for(let t of["exit","beforeExit"])If[t]=If[t].filter(n=>{let r=n.deref();return r&&r!==e}),m$e(t)}}S$e.exports={register:bbn,registerBeforeExit:Tbn,unregister:vbn}});var _$e=w((lWr,Abn)=>{Abn.exports={name:"thread-stream",version:"4.0.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^22.0.0","@yao-pkg/pkg":"^6.0.0",borp:"^0.21.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",husky:"^9.0.6",neostandard:"^0.12.2","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:"npm run lint && npm run build && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:ci":"npm run lint && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:yarn":"npm run transpile && borp --pattern 'test/*.test.js'",transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina ",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var b$e=w((dWr,E$e)=>{"use strict";function Rbn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{let a=Atomics.load(e,t);if(a===n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,a,c);u.async?u.value.then(o):setImmediate(o)};o()}function wbn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{if(Atomics.load(e,t)!==n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,n,c);u.async?u.value.then(o):setImmediate(o)};o()}E$e.exports={wait:Rbn,waitDiff:wbn}});var v$e=w((fWr,T$e)=>{"use strict";T$e.exports={WRITE_INDEX:4,READ_INDEX:8}});var I$e=w((pWr,k$e)=>{"use strict";var{version:kbn}=_$e(),{EventEmitter:Ibn}=Y("events"),{Worker:xbn}=Y("worker_threads"),{join:Obn}=Y("path"),{pathToFileURL:Nbn}=Y("url"),{wait:Pbn}=b$e(),{WRITE_INDEX:Tu,READ_INDEX:bu}=v$e(),Cbn=Y("buffer"),Mbn=Y("assert"),Ee=Symbol("kImpl"),Dbn=Cbn.constants.MAX_STRING_LENGTH,cM=class{constructor(t){this._value=t}deref(){return this._value}},_W=class{register(){}unregister(){}},Lbn=process.env.NODE_V8_COVERAGE?_W:global.FinalizationRegistry||_W,Ubn=process.env.NODE_V8_COVERAGE?cM:global.WeakRef||cM,A$e=new Lbn(e=>{e.exited||e.terminate()});function jbn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||Obn(__dirname,"lib","worker.js"),o=new xbn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:Nbn(n).href,dataBuf:e[Ee].dataBuf,stateBuf:e[Ee].stateBuf,workerData:{$context:{threadStreamVersion:kbn},...r}}});return o.stream=new cM(e),o.on("message",Fbn),o.on("exit",w$e),A$e.register(e,o),o}function R$e(e){Mbn(!e[Ee].sync),e[Ee].needDrain&&(e[Ee].needDrain=!1,e.emit("drain"))}function SW(e){let t=Atomics.load(e[Ee].state,Tu),n=e[Ee].data.length-t;if(n>0){if(e[Ee].buf.length===0){e[Ee].flushing=!1,e[Ee].ending?gce(e):e[Ee].needDrain&&process.nextTick(R$e,e);return}let r=e[Ee].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[Ee].buf=e[Ee].buf.slice(n),EW(e,r,SW.bind(null,e))):e.flush(()=>{if(!e.destroyed){for(Atomics.store(e[Ee].state,bu,0),Atomics.store(e[Ee].state,Tu,0),Atomics.notify(e[Ee].state,bu);i>e[Ee].data.length;)n=n/2,r=e[Ee].buf.slice(0,n),i=Buffer.byteLength(r);e[Ee].buf=e[Ee].buf.slice(n),EW(e,r,SW.bind(null,e))}})}else if(n===0){if(t===0&&e[Ee].buf.length===0)return;e.flush(()=>{Atomics.store(e[Ee].state,bu,0),Atomics.store(e[Ee].state,Tu,0),Atomics.notify(e[Ee].state,bu),SW(e)})}else yh(e,new Error("overwritten"))}function Fbn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new Ubn(t),t.flush(()=>{t[Ee].ready=!0,t.emit("ready")});break;case"ERROR":yh(t,e.err);break;case"EVENT":Array.isArray(e.args)?t.emit(e.name,...e.args):t.emit(e.name,e.args);break;case"WARNING":process.emitWarning(e.err);break;default:yh(t,new Error("this should not happen: "+e.code))}}function w$e(e){let t=this.stream.deref();t!==void 0&&(A$e.unregister(t),t.worker.exited=!0,t.worker.off("exit",w$e),yh(t,e!==0?new Error("the worker thread exited"):null))}var pce=class extends Ibn{constructor(t={}){if(super(),t.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[Ee]={},this[Ee].stateBuf=new SharedArrayBuffer(128),this[Ee].state=new Int32Array(this[Ee].stateBuf),this[Ee].dataBuf=new SharedArrayBuffer(t.bufferSize||4*1024*1024),this[Ee].data=Buffer.from(this[Ee].dataBuf),this[Ee].sync=t.sync||!1,this[Ee].ending=!1,this[Ee].ended=!1,this[Ee].needDrain=!1,this[Ee].destroyed=!1,this[Ee].flushing=!1,this[Ee].ready=!1,this[Ee].finished=!1,this[Ee].errored=null,this[Ee].closed=!1,this[Ee].buf="",this.worker=jbn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[Ee].destroyed)return hce(this,new Error("the worker has exited")),!1;if(this[Ee].ending)return hce(this,new Error("the worker is ending")),!1;if(this[Ee].flushing&&this[Ee].buf.length+t.length>=Dbn)try{fce(this),this[Ee].flushing=!0}catch(n){return yh(this,n),!1}if(this[Ee].buf+=t,this[Ee].sync)try{return fce(this),!0}catch(n){return yh(this,n),!1}return this[Ee].flushing||(this[Ee].flushing=!0,setImmediate(SW,this)),this[Ee].needDrain=this[Ee].data.length-this[Ee].buf.length-Atomics.load(this[Ee].state,Tu)<=0,!this[Ee].needDrain}end(){this[Ee].destroyed||(this[Ee].ending=!0,gce(this))}flush(t){if(this[Ee].destroyed){typeof t=="function"&&process.nextTick(t,new Error("the worker has exited"));return}let n=Atomics.load(this[Ee].state,Tu);Pbn(this[Ee].state,bu,n,1/0,(r,i)=>{if(r){yh(this,r),process.nextTick(t,r);return}if(i==="not-equal"){this.flush(t);return}process.nextTick(t)})}flushSync(){this[Ee].destroyed||(fce(this),mce(this))}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[Ee].ready}get destroyed(){return this[Ee].destroyed}get closed(){return this[Ee].closed}get writable(){return!this[Ee].destroyed&&!this[Ee].ending}get writableEnded(){return this[Ee].ending}get writableFinished(){return this[Ee].finished}get writableNeedDrain(){return this[Ee].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[Ee].errored}};function hce(e,t){setImmediate(()=>{e.emit("error",t)})}function yh(e,t){e[Ee].destroyed||(e[Ee].destroyed=!0,t&&(e[Ee].errored=t,hce(e,t)),e.worker.exited?setImmediate(()=>{e[Ee].closed=!0,e.emit("close")}):e.worker.terminate().catch(()=>{}).then(()=>{e[Ee].closed=!0,e.emit("close")}))}function EW(e,t,n){let r=Atomics.load(e[Ee].state,Tu),i=Buffer.byteLength(t);return e[Ee].data.write(t,r),Atomics.store(e[Ee].state,Tu,r+i),Atomics.notify(e[Ee].state,Tu),n(),!0}function gce(e){if(!(e[Ee].ended||!e[Ee].ending||e[Ee].flushing)){e[Ee].ended=!0;try{e.flushSync();let t=Atomics.load(e[Ee].state,bu);Atomics.store(e[Ee].state,Tu,-1),Atomics.notify(e[Ee].state,Tu);let n=0;for(;t!==-1;){if(Atomics.wait(e[Ee].state,bu,t,1e3),t=Atomics.load(e[Ee].state,bu),t===-2){yh(e,new Error("end() failed"));return}if(++n===10){yh(e,new Error("end() took too long (10s)"));return}}process.nextTick(()=>{e[Ee].finished=!0,e.emit("finish")})}catch(t){yh(e,t)}}}function fce(e){let t=()=>{e[Ee].ending?gce(e):e[Ee].needDrain&&process.nextTick(R$e,e)};for(e[Ee].flushing=!1;e[Ee].buf.length!==0;){let n=Atomics.load(e[Ee].state,Tu),r=e[Ee].data.length-n;if(r===0){mce(e),Atomics.store(e[Ee].state,bu,0),Atomics.store(e[Ee].state,Tu,0),Atomics.notify(e[Ee].state,bu);continue}else if(r<0)throw new Error("overwritten");let i=e[Ee].buf.slice(0,r),s=Buffer.byteLength(i);if(s<=r)e[Ee].buf=e[Ee].buf.slice(r),EW(e,i,t);else{for(mce(e),Atomics.store(e[Ee].state,bu,0),Atomics.store(e[Ee].state,Tu,0),Atomics.notify(e[Ee].state,bu);s>e[Ee].buf.length;)r=r/2,i=e[Ee].buf.slice(0,r),s=Buffer.byteLength(i);e[Ee].buf=e[Ee].buf.slice(r),EW(e,i,t)}}}function mce(e){if(e[Ee].flushing)throw new Error("unable to flush while flushing");let t=Atomics.load(e[Ee].state,Tu),n=0;for(;;){let r=Atomics.load(e[Ee].state,bu);if(r===-2)throw Error("_flushSync failed");if(r!==t)Atomics.wait(e[Ee].state,bu,r,1e3);else break;if(++n===10)throw new Error("_flushSync took too long (10s)")}}k$e.exports=pce});var _ce=w((hWr,N$e)=>{"use strict";var{createRequire:Hbn}=Y("module"),{existsSync:qbn}=Y("node:fs"),Bbn=rce(),{join:yce,isAbsolute:O$e,sep:Gbn}=Y("node:path"),{fileURLToPath:zbn}=Y("node:url"),Vbn=cce(),Sce=dce(),Wbn=I$e();function Kbn(e){Sce.register(e,Qbn),Sce.registerBeforeExit(e,$bn),e.on("close",function(){Sce.unregister(e)})}function Zbn(){let e=process.execArgv;for(let t=0;th.target).map(h=>({...h,target:p(h.target)})),c.pipelines=n.filter(h=>h.pipeline).map(h=>h.pipeline.map(m=>({...m,level:h.level,target:p(m.target)})))):t&&(d=l["pino-worker"]||yce(__dirname,"worker.js"),c.pipelines=[t.map(h=>({...h,target:p(h.target)}))]),r&&(c.levels=r),i&&(c.dedupe=i),c.pinoWillSendConfig=!0;let f=n||t?"pino.transport":d;return Xbn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,O$e(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return yce(__dirname,"..","file.js");let m;for(let y of u)try{let g=y==="node:repl"?process.cwd()+Gbn:y;m=Hbn(g).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}N$e.exports=eTn});var vW=w((gWr,z$e)=>{"use strict";var tTn=Y("node:diagnostics_channel"),P$e=s$e(),{mapHttpRequest:nTn,mapHttpResponse:rTn}=nce(),bce=p$e(),C$e=dce(),{lsCacheSym:iTn,chindingsSym:j$e,writeSym:M$e,serializersSym:F$e,formatOptsSym:D$e,endSym:sTn,stringifiersSym:H$e,stringifySym:q$e,stringifySafeSym:Tce,wildcardFirstSym:B$e,nestedKeySym:oTn,formattersSym:G$e,messageKeySym:aTn,errorKeySym:cTn,nestedKeyStrSym:uTn,msgPrefixSym:bW}=kk(),{isMainThread:lTn}=Y("worker_threads"),dTn=_ce(),[fTn]=process.versions.node.split(".").map(e=>Number(e)),L$e=tTn.tracingChannel("pino_asJson"),Ece=fTn>=25?e=>JSON.stringify(e):hTn;function xk(){}function pTn(e,t){if(!t)return n;return function(...i){t.call(this,i,n,e)};function n(r,...i){if(typeof r=="object"){let s=r;r!==null&&(r.method&&r.headers&&r.socket?r=nTn(r):typeof r.setHeader=="function"&&(r=rTn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[bW]=="string"&&s!==void 0&&s!==null&&(s=this[bW]+s),this[M$e](r,P$e(s,o,this[D$e]),e)}else{let s=r===void 0?i.shift():r;typeof this[bW]=="string"&&s!==void 0&&s!==null&&(s=this[bW]+s),this[M$e](null,P$e(s,i,this[D$e]),e)}}}function hTn(e){let t="",n=0,r=!1,i=255,s=e.length;if(s>100)return JSON.stringify(e);for(var o=0;o=32;o++)i=e.charCodeAt(o),(i===34||i===92)&&(t+=e.slice(n,o)+"\\",n=o,r=!0);return r?t+=e.slice(n):t=e,i<32?JSON.stringify(e):'"'+t+'"'}function mTn(e,t,n,r){if(L$e.hasSubscribers===!1)return U$e.call(this,e,t,n,r);let i={instance:this,arguments};return L$e.traceSync(U$e,i,this,e,t,n,r)}function U$e(e,t,n,r){let i=this[q$e],s=this[Tce],o=this[H$e],a=this[sTn],c=this[j$e],u=this[F$e],l=this[G$e],d=this[aTn],f=this[cTn],p=this[iTn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[B$e],y="";for(let E in e)if(h=e[E],Object.prototype.hasOwnProperty.call(e,E)&&h!==void 0){u[E]?h=u[E](h):E===f&&u.err&&(h=u.err(h));let S=o[E]||m;switch(typeof h){case"undefined":case"function":continue;case"number":Number.isFinite(h)===!1&&(h=null);case"boolean":S&&(h=S(h));break;case"string":h=(S||Ece)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let _=Ece(E);y+=","+_+":"+h}let g="";if(t!==void 0){h=u[d]?u[d](t):t;let E=o[d]||m;switch(typeof h){case"function":break;case"number":Number.isFinite(h)===!1&&(h=null);case"boolean":E&&(h=E(h)),g=',"'+d+'":'+h;break;case"string":h=(E||Ece)(h),g=',"'+d+'":'+h;break;default:h=(E||i)(h,s),g=',"'+d+'":'+h}}return this[oTn]&&y?p+this[uTn]+y.slice(1)+"}"+g+a:p+y+g+a}function gTn(e,t){let n,r=e[j$e],i=e[q$e],s=e[Tce],o=e[H$e],a=o[B$e],c=e[F$e],u=e[G$e].bindings;t=u(t);for(let l in t)if(n=t[l],((l.length<5||l!=="level"&&l!=="serializers"&&l!=="formatters"&&l!=="customLevels")&&t.hasOwnProperty(l)&&n!==void 0)===!0){if(n=c[l]?c[l](n):n,n=(o[l]||a||i)(n,s),n===void 0)continue;r+=',"'+l+'":'+n}return r}function yTn(e){return e.write!==e.constructor.prototype.write}function TW(e){let t=new bce(e);return t.on("error",n),!e.sync&&lTn&&(C$e.register(t,STn),t.on("close",function(){C$e.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=xk,t.end=xk,t.flushSync=xk,t.destroy=xk;return}t.removeListener("error",n),t.emit("error",r)}}function STn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function _Tn(e){return function(n,r,i={},s){if(typeof i=="string")s=TW({dest:i}),i={};else if(typeof s=="string"){if(i&&i.transport)throw Error("only one of option.transport or stream can be specified");s=TW({dest:s})}else if(i instanceof bce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof bce||i.transport.writable||i.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(i.transport.targets&&i.transport.targets.length&&i.formatters&&typeof i.formatters.level=="function")throw Error("option.transport.targets do not allow custom level formatters");let c;i.customLevels&&(c=i.useOnlyCustomLevels?i.customLevels:Object.assign({},i.levels,i.customLevels)),s=dTn({caller:r,...i.transport,levels:c})}if(i=Object.assign({},e,i),i.serializers=Object.assign({},e.serializers,i.serializers),i.formatters=Object.assign({},e.formatters,i.formatters),i.prettyPrint)throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:o,onChild:a}=i;return o===!1&&(i.level="silent"),a||(i.onChild=xk),s||(yTn(process.stdout)?s=process.stdout:s=TW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function ETn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Tce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function bTn(e,t,n){return{level:e,bindings:t,log:n}}function TTn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}z$e.exports={noop:xk,buildSafeSonicBoom:TW,asChindings:gTn,asJson:mTn,genLog:pTn,createArgsNormalizer:_Tn,stringify:ETn,buildFormatters:bTn,normalizeDestFileDescriptor:TTn}});var AW=w((yWr,V$e)=>{var vTn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},ATn={ASC:"ASC",DESC:"DESC"};V$e.exports={DEFAULT_LEVELS:vTn,SORTING_ORDER:ATn}});var Rce=w((SWr,Y$e)=>{"use strict";var{lsCacheSym:RTn,levelValSym:vce,useOnlyCustomLevelsSym:wTn,streamSym:kTn,formattersSym:ITn,hooksSym:xTn,levelCompSym:W$e}=kk(),{noop:OTn,genLog:tT}=vW(),{DEFAULT_LEVELS:Sh,SORTING_ORDER:K$e}=AW(),Z$e={fatal:e=>{let t=tT(Sh.fatal,e);return function(...n){let r=this[kTn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>tT(Sh.error,e),warn:e=>tT(Sh.warn,e),info:e=>tT(Sh.info,e),debug:e=>tT(Sh.debug,e),trace:e=>tT(Sh.trace,e)},Ace=Object.keys(Sh).reduce((e,t)=>(e[Sh[t]]=t,e),{}),NTn=Object.keys(Ace).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function PTn(e){let t=e[ITn].level,{labels:n}=e.levels,r={};for(let i in n){let s=t(n[i],Number(i));r[i]=JSON.stringify(s).slice(0,-1)}return e[RTn]=r,e}function CTn(e,t){if(t)return!1;switch(e){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function MTn(e){let{labels:t,values:n}=this.levels;if(typeof e=="number"){if(t[e]===void 0)throw Error("unknown level value"+e);e=t[e]}if(n[e]===void 0)throw Error("unknown level "+e);let r=this[vce],i=this[vce]=n[e],s=this[wTn],o=this[W$e],a=this[xTn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=OTn;continue}this[c]=CTn(c,s)?Z$e[c](a):tT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function DTn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function LTn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[W$e](n,this[vce])}function UTn(e,t,n){return e===K$e.DESC?t<=n:t>=n}function jTn(e){return typeof e=="string"?UTn.bind(null,e):e}function FTn(e=null,t=!1){let n=e?Object.keys(e).reduce((s,o)=>(s[e[o]]=o,s),{}):null,r=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),t?null:Ace,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Sh,e);return{labels:r,values:i}}function HTn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(Ace).map(s=>+s),1/0).includes(e))throw Error(`default level:${e} must be included in custom levels`);return}let r=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),n?null:Sh,t);if(!(e in r))throw Error(`default level:${e} must be included in custom levels`)}function qTn(e,t){let{labels:n,values:r}=e;for(let i in t){if(i in r)throw Error("levels cannot be overridden");if(t[i]in n)throw Error("pre-existing level values cannot be used for new levels")}}function BTn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(K$e).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Y$e.exports={initialLsCache:NTn,genLsCache:PTn,levelMethods:Z$e,getLevel:DTn,setLevel:MTn,isLevelEnabled:LTn,mappings:FTn,assertNoLevelCollisions:qTn,assertDefaultLevelFound:HTn,genLevelComparison:jTn,assertLevelComparison:BTn}});var wce=w((_Wr,J$e)=>{"use strict";J$e.exports={version:"10.3.1"}});var iet=w((bWr,ret)=>{"use strict";var{EventEmitter:GTn}=Y("node:events"),{lsCacheSym:zTn,levelValSym:VTn,setLevelSym:Ice,getLevelSym:X$e,chindingsSym:wW,mixinSym:WTn,asJsonSym:$$e,writeSym:KTn,mixinMergeStrategySym:ZTn,timeSym:YTn,timeSliceIndexSym:JTn,streamSym:eet,serializersSym:nT,formattersSym:uM,errorKeySym:XTn,messageKeySym:QTn,useOnlyCustomLevelsSym:$Tn,needsMetadataGsym:evn,redactFmtSym:tvn,stringifySym:nvn,formatOptsSym:rvn,stringifiersSym:ivn,msgPrefixSym:xce,hooksSym:svn}=kk(),{getLevel:ovn,setLevel:avn,isLevelEnabled:cvn,mappings:uvn,initialLsCache:lvn,genLsCache:dvn,assertNoLevelCollisions:fvn}=Rce(),{asChindings:Oce,asJson:pvn,buildFormatters:kce,stringify:Q$e,noop:tet}=vW(),{version:hvn}=wce(),mvn=oce(),gvn=class{},net={constructor:gvn,child:yvn,bindings:Svn,setBindings:_vn,flush:Tvn,isLevelEnabled:cvn,version:hvn,get level(){return this[X$e]()},set level(e){this[Ice](e)},get levelVal(){return this[VTn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[xce]},get[Symbol.toStringTag](){return"Pino"},[zTn]:lvn,[KTn]:bvn,[$$e]:pvn,[X$e]:ovn,[Ice]:avn};Object.setPrototypeOf(net,GTn.prototype);ret.exports=function(){return Object.create(net)};var RW=e=>e;function yvn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[nT],r=this[uM],i=Object.create(this);if(t==null)return i[uM].bindings!==RW&&(i[uM]=kce(r.level,RW,r.log)),i[wW]=Oce(i,e),this.onChild!==tet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[nT]=Object.create(null);for(let u in n)i[nT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:lM}=Object.prototype,iT=Cce();iT.configure=Cce;iT.stringify=iT;iT.default=iT;Mce.stringify=iT;Mce.configure=Cce;aet.exports=iT;var vvn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function VS(e){return e.length<5e3&&!vvn.test(e)?`"${e}"`:JSON.stringify(e)}function Nce(e,t){if(e.length>200||t)return e.sort(t);for(let n=1;nr;)e[i]=e[i-1],i--;e[i]=r}return e}var Avn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function Pce(e){return Avn.call(e)!==void 0&&e.length!==0}function set(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function rT(e){return e===1?"1 item":`${e} items`}function Ivn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function xvn(e){if(lM.call(e,"strict")){let t=e.strict;if(typeof t!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(t)return n=>{let r=`Object can not safely be stringified. Received type ${typeof n}`;throw typeof n!="function"&&(r+=` (${n.toString()})`),new Error(r)}}}function Cce(e){e={...e};let t=xvn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=Rvn(e),r=kvn(e,"bigint"),i=wvn(e),s=typeof i=="function"?i:void 0,o=oet(e,"maximumDepth"),a=oet(e,"maximumBreadth");function c(p,h,m,y,g,E){let S=h[p];switch(typeof S=="object"&&S!==null&&typeof S.toJSON=="function"&&(S=S.toJSON(p)),S=y.call(h,p,S),typeof S){case"string":return VS(S);case"object":{if(S===null)return"null";if(m.indexOf(S)!==-1)return n;let _="",b=",",T=E;if(Array.isArray(S)){if(S.length===0)return"[]";if(o{"use strict";var ugn=zJe(),lgn=L2(),dgn=hk(),fgn=tae(),pgn=iae(),hgn=lae(),If=H2(),$Je=QJe();If.createWebSocketStream=ugn;If.extension=lgn;If.PerMessageDeflate=dgn;If.Receiver=fgn;If.Sender=pgn;If.Server=$Je;If.subprotocol=hgn;If.WebSocket=If;If.WebSocketServer=$Je;e7e.exports=If});var fae=w((HWr,n7e)=>{n7e.exports=Y("stream")});var c7e=w((qWr,a7e)=>{"use strict";function r7e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function i7e(e){for(var t=1;t0?this.tail.next=r:this.head=r,this.tail=r,++this.length}},{key:"unshift",value:function(n){var r={data:n,next:this.head};this.length===0&&(this.tail=r),this.head=r,++this.length}},{key:"shift",value:function(){if(this.length!==0){var n=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,n}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(n){if(this.length===0)return"";for(var r=this.head,i=""+r.data;r=r.next;)i+=n+r.data;return i}},{key:"concat",value:function(n){if(this.length===0)return B2.alloc(0);for(var r=B2.allocUnsafe(n>>>0),i=this.head,s=0;i;)Tgn(i.data,r,s),s+=i.data.length,i=i.next;return r}},{key:"consume",value:function(n,r){var i;return no.length?o.length:n;if(a===o.length?s+=o:s+=o.slice(0,n),n-=a,n===0){a===o.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(a));break}++i}return this.length-=i,s}},{key:"_getBuffer",value:function(n){var r=B2.allocUnsafe(n),i=this.head,s=1;for(i.data.copy(r),n-=i.data.length;i=i.next;){var o=i.data,a=n>o.length?o.length:n;if(o.copy(r,r.length-n,0,a),n-=a,n===0){a===o.length?(++s,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++s}return this.length-=s,r}},{key:bgn,value:function(n,r){return pae(this,i7e(i7e({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var mae=w((BWr,l7e)=>{"use strict";function vgn(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(hae,this,e)):process.nextTick(hae,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?n._writableState?n._writableState.errorEmitted?process.nextTick(G2,n):(n._writableState.errorEmitted=!0,process.nextTick(u7e,n,s)):process.nextTick(u7e,n,s):t?(process.nextTick(G2,n),t(s)):process.nextTick(G2,n)}),this)}function u7e(e,t){hae(e,t),G2(e)}function G2(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Agn(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function hae(e,t){e.emit("error",t)}function Rgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}l7e.exports={destroy:vgn,undestroy:Agn,errorOrDestroy:Rgn}});var qS=w((GWr,p7e)=>{"use strict";var f7e={};function bd(e,t,n){n||(n=Error);function r(s,o,a){return typeof t=="string"?t:t(s,o,a)}class i extends n{constructor(o,a,c){super(r(o,a,c))}}i.prototype.name=n.name,i.prototype.code=e,f7e[e]=i}function d7e(e,t){if(Array.isArray(e)){let n=e.length;return e=e.map(r=>String(r)),n>2?`one of ${t} ${e.slice(0,n-1).join(", ")}, or `+e[n-1]:n===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function wgn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function kgn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Ign(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}bd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);bd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&wgn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(kgn(e," argument"))i=`The ${e} ${r} ${d7e(t,"type")}`;else{let s=Ign(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${d7e(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);bd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");bd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});bd("ERR_STREAM_PREMATURE_CLOSE","Premature close");bd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});bd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");bd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");bd("ERR_STREAM_WRITE_AFTER_END","write after end");bd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);bd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);bd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");p7e.exports.codes=f7e});var gae=w((zWr,h7e)=>{"use strict";var xgn=qS().codes.ERR_INVALID_OPT_VALUE;function Ogn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function Pgn(e,t,n,r){var i=Ogn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new xgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}h7e.exports={getHighWaterMark:Pgn}});var m7e=w((VWr,yae)=>{typeof Object.create=="function"?yae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:yae.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}}});var Zb=w((WWr,Eae)=>{try{if(Sae=Y("util"),typeof Sae.inherits!="function")throw"";Eae.exports=Sae.inherits}catch{Eae.exports=m7e()}var Sae});var y7e=w((KWr,g7e)=>{g7e.exports=Y("util").deprecate});var Tae=w((YWr,v7e)=>{"use strict";v7e.exports=gs;function E7e(e){var t=this;this.next=null,this.entry=null,this.finish=function(){iyn(t,e)}}var _k;gs.WritableState=QC;var Ngn={deprecate:y7e()},_7e=fae(),V2=Y("buffer").Buffer,Cgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Mgn(e){return V2.from(e)}function Dgn(e){return V2.isBuffer(e)||e instanceof Cgn}var bae=mae(),Lgn=gae(),Ugn=Lgn.getHighWaterMark,BS=qS().codes,Fgn=BS.ERR_INVALID_ARG_TYPE,jgn=BS.ERR_METHOD_NOT_IMPLEMENTED,Hgn=BS.ERR_MULTIPLE_CALLBACK,qgn=BS.ERR_STREAM_CANNOT_PIPE,Bgn=BS.ERR_STREAM_DESTROYED,Ggn=BS.ERR_STREAM_NULL_VALUES,zgn=BS.ERR_STREAM_WRITE_AFTER_END,Vgn=BS.ERR_UNKNOWN_ENCODING,bk=bae.errorOrDestroy;Zb()(gs,_7e);function Wgn(){}function QC(e,t,n){_k=_k||Jb(),e=e||{},typeof n!="boolean"&&(n=t instanceof _k),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=Ugn(this,e,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var r=e.decodeStrings===!1;this.decodeStrings=!r,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(i){$gn(t,i)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new E7e(this)}QC.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(QC.prototype,"buffer",{get:Ngn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var z2;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(z2=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return z2.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof QC}})):z2=function(t){return t instanceof this};function gs(e){_k=_k||Jb();var t=this instanceof _k;if(!t&&!z2.call(gs,this))return new gs(e);this._writableState=new QC(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),_7e.call(this)}gs.prototype.pipe=function(){bk(this,new qgn)};function Kgn(e,t){var n=new zgn;bk(e,n),process.nextTick(t,n)}function Ygn(e,t,n,r){var i;return n===null?i=new Ggn:typeof n!="string"&&!t.objectMode&&(i=new Fgn("chunk",["string","Buffer"],n)),i?(bk(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&Dgn(e);return s&&!V2.isBuffer(e)&&(e=Mgn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=Wgn),r.ending?Kgn(this,n):(s||Ygn(this,r,e,n))&&(r.pendingcb++,i=Jgn(this,r,s,e,t,n)),i};gs.prototype.cork=function(){this._writableState.corked++};gs.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&b7e(this,e))};gs.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new Vgn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Zgn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=V2.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Jgn(e,t,n,r,i,s){if(!n){var o=Zgn(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var a=t.objectMode?1:r.length;t.length+=a;var c=t.length{"use strict";var syn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};R7e.exports=Eh;var A7e=Rae(),Aae=Tae();Zb()(Eh,A7e);for(vae=syn(Aae.prototype),W2=0;W2{var Y2=Y("buffer"),_h=Y2.Buffer;function w7e(e,t){for(var n in e)t[n]=e[n]}_h.from&&_h.alloc&&_h.allocUnsafe&&_h.allocUnsafeSlow?k7e.exports=Y2:(w7e(Y2,wae),wae.Buffer=Xb);function Xb(e,t,n){return _h(e,t,n)}Xb.prototype=Object.create(_h.prototype);w7e(_h,Xb);Xb.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _h(e,t,n)};Xb.alloc=function(e,t,n){if(typeof e!="number")throw new TypeError("Argument must be a number");var r=_h(e);return t!==void 0?typeof n=="string"?r.fill(t,n):r.fill(t):r.fill(0),r};Xb.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _h(e)};Xb.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Y2.SlowBuffer(e)}});var xae=w(O7e=>{"use strict";var Iae=I7e().Buffer,x7e=Iae.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function cyn(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function uyn(e){var t=cyn(e);if(typeof t!="string"&&(Iae.isEncoding===x7e||!x7e(e)))throw new Error("Unknown encoding: "+e);return t||e}O7e.StringDecoder=$C;function $C(e){this.encoding=uyn(e);var t;switch(this.encoding){case"utf16le":this.text=myn,this.end=gyn,t=4;break;case"utf8":this.fillLast=fyn,t=4;break;case"base64":this.text=yyn,this.end=Syn,t=3;break;default:this.write=Eyn,this.end=_yn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Iae.allocUnsafe(t)}$C.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function lyn(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function dyn(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function fyn(e){var t=this.lastTotal-this.lastNeed,n=dyn(this,e,t);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function pyn(e,t){var n=lyn(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function hyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function myn(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function gyn(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function yyn(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function Syn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Eyn(e){return e.toString(this.encoding)}function _yn(e){return e&&e.length?this.write(e):""}});var Z2=w((XWr,C7e)=>{"use strict";var P7e=qS().codes.ERR_STREAM_PREMATURE_CLOSE;function byn(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i{"use strict";var J2;function GS(e,t,n){return t=Ayn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ayn(e){var t=Ryn(e,"string");return typeof t=="symbol"?t:String(t)}function Ryn(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var wyn=Z2(),zS=Symbol("lastResolve"),Qb=Symbol("lastReject"),eM=Symbol("error"),X2=Symbol("ended"),$b=Symbol("lastPromise"),Oae=Symbol("handlePromise"),eT=Symbol("stream");function VS(e,t){return{value:e,done:t}}function kyn(e){var t=e[zS];if(t!==null){var n=e[eT].read();n!==null&&(e[$b]=null,e[zS]=null,e[Qb]=null,t(VS(n,!1)))}}function Iyn(e){process.nextTick(kyn,e)}function xyn(e,t){return function(n,r){e.then(function(){if(t[X2]){n(VS(void 0,!0));return}t[Oae](n,r)},r)}}var Oyn=Object.getPrototypeOf(function(){}),Pyn=Object.setPrototypeOf((J2={get stream(){return this[eT]},next:function(){var t=this,n=this[eM];if(n!==null)return Promise.reject(n);if(this[X2])return Promise.resolve(VS(void 0,!0));if(this[eT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[eM]?a(t[eM]):o(VS(void 0,!0))})});var r=this[$b],i;if(r)i=new Promise(xyn(r,this));else{var s=this[eT].read();if(s!==null)return Promise.resolve(VS(s,!1));i=new Promise(this[Oae])}return this[$b]=i,i}},GS(J2,Symbol.asyncIterator,function(){return this}),GS(J2,"return",function(){var t=this;return new Promise(function(n,r){t[eT].destroy(null,function(i){if(i){r(i);return}n(VS(void 0,!0))})})}),J2),Oyn),Nyn=function(t){var n,r=Object.create(Pyn,(n={},GS(n,eT,{value:t,writable:!0}),GS(n,zS,{value:null,writable:!0}),GS(n,Qb,{value:null,writable:!0}),GS(n,eM,{value:null,writable:!0}),GS(n,X2,{value:t._readableState.endEmitted,writable:!0}),GS(n,Oae,{value:function(s,o){var a=r[eT].read();a?(r[$b]=null,r[zS]=null,r[Qb]=null,s(VS(a,!1))):(r[zS]=s,r[Qb]=o)},writable:!0}),n));return r[$b]=null,wyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[Qb];s!==null&&(r[$b]=null,r[zS]=null,r[Qb]=null,s(i)),r[eM]=i;return}var o=r[zS];o!==null&&(r[$b]=null,r[zS]=null,r[Qb]=null,o(VS(void 0,!0))),r[X2]=!0}),t.on("readable",Iyn.bind(null,r)),r};M7e.exports=Nyn});var j7e=w(($Wr,F7e)=>{"use strict";function L7e(e,t,n,r,i,s,o){try{var a=e[s](o),c=a.value}catch(u){n(u);return}a.done?t(c):Promise.resolve(c).then(r,i)}function Cyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){L7e(s,r,i,o,a,"next",c)}function a(c){L7e(s,r,i,o,a,"throw",c)}o(void 0)})}}function U7e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Myn(e){for(var t=1;t{"use strict";Z7e.exports=nr;var Tk;nr.ReadableState=G7e;var e4r=Y("events").EventEmitter,B7e=function(t,n){return t.listeners(n).length},nM=fae(),Q2=Y("buffer").Buffer,Hyn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function qyn(e){return Q2.from(e)}function Byn(e){return Q2.isBuffer(e)||e instanceof Hyn}var Pae=Y("util"),Rn;Pae&&Pae.debuglog?Rn=Pae.debuglog("stream"):Rn=function(){};var Gyn=c7e(),Fae=mae(),zyn=gae(),Vyn=zyn.getHighWaterMark,$2=qS().codes,Wyn=$2.ERR_INVALID_ARG_TYPE,Kyn=$2.ERR_STREAM_PUSH_AFTER_EOF,Yyn=$2.ERR_METHOD_NOT_IMPLEMENTED,Zyn=$2.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,vk,Nae,Cae;Zb()(nr,nM);var tM=Fae.errorOrDestroy,Mae=["error","close","destroy","pause","resume"];function Jyn(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function G7e(e,t,n){Tk=Tk||Jb(),e=e||{},typeof n!="boolean"&&(n=t instanceof Tk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=Vyn(this,e,"readableHighWaterMark",n),this.buffer=new Gyn,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(vk||(vk=xae().StringDecoder),this.decoder=new vk(e.encoding),this.encoding=e.encoding)}function nr(e){if(Tk=Tk||Jb(),!(this instanceof nr))return new nr(e);var t=this instanceof Tk;this._readableState=new G7e(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),nM.call(this)}Object.defineProperty(nr.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});nr.prototype.destroy=Fae.destroy;nr.prototype._undestroy=Fae.undestroy;nr.prototype._destroy=function(e,t){t(e)};nr.prototype.push=function(e,t){var n=this._readableState,r;return n.objectMode?r=!0:typeof e=="string"&&(t=t||n.defaultEncoding,t!==n.encoding&&(e=Q2.from(e,t),t=""),r=!0),z7e(this,e,t,!1,r)};nr.prototype.unshift=function(e){return z7e(this,e,null,!0,!1)};function z7e(e,t,n,r,i){Rn("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,$yn(e,s);else{var o;if(i||(o=Xyn(s,t)),o)tM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==Q2.prototype&&(t=qyn(t)),r)s.endEmitted?tM(e,new Zyn):Dae(e,s,t,!0);else if(s.ended)tM(e,new Kyn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Dae(e,s,t,!1):Uae(e,s)):Dae(e,s,t,!1)}else r||(s.reading=!1,Uae(e,s))}return!s.ended&&(s.length=H7e?e=H7e:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function q7e(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=Qyn(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}nr.prototype.read=function(e){Rn("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Rn("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Lae(this):eW(this),null;if(e=q7e(e,t),e===0&&t.ended)return t.length===0&&Lae(this),null;var r=t.needReadable;Rn("need readable",r),(t.length===0||t.length-e0?i=K7e(e,t):i=null,i===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&Lae(this)),i!==null&&this.emit("data",i),i};function $yn(e,t){if(Rn("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?eW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,V7e(e)))}}function eW(e){var t=e._readableState;Rn("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(Rn("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(V7e,e))}function V7e(e){var t=e._readableState;Rn("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,jae(e)}function Uae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(eSn,e,t))}function eSn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&Y7e(r.pipes,e)!==-1)&&!u&&(Rn("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function f(g){Rn("onerror",g),m(),e.removeListener("error",f),B7e(e,"error")===0&&tM(e,g)}Jyn(e,"error",f);function p(){e.removeListener("finish",h),m()}e.once("close",p);function h(){Rn("onfinish"),e.removeListener("close",p),m()}e.once("finish",h);function m(){Rn("unpipe"),n.unpipe(e)}return e.emit("pipe",n),r.flowing||(Rn("pipe resume"),n.resume()),e};function tSn(e){return function(){var n=e._readableState;Rn("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&B7e(e,"data")&&(n.flowing=!0,jae(e))}}nr.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s0,r.flowing!==!1&&this.resume()):e==="readable"&&!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,Rn("on readable",r.length,r.reading),r.length?eW(this):r.reading||process.nextTick(nSn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=nM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(W7e,this),n};nr.prototype.removeAllListeners=function(e){var t=nM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(W7e,this),t};function W7e(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function nSn(e){Rn("readable nexttick read 0"),e.read(0)}nr.prototype.resume=function(){var e=this._readableState;return e.flowing||(Rn("resume"),e.flowing=!e.readableListening,rSn(this,e)),e.paused=!1,this};function rSn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(iSn,e,t))}function iSn(e,t){Rn("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),jae(e),t.flowing&&!t.reading&&e.read(0)}nr.prototype.pause=function(){return Rn("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Rn("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function jae(e){var t=e._readableState;for(Rn("flow",t.flowing);t.flowing&&e.read()!==null;);}nr.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;e.on("end",function(){if(Rn("wrapped end"),n.decoder&&!n.ended){var o=n.decoder.end();o&&o.length&&t.push(o)}t.push(null)}),e.on("data",function(o){if(Rn("wrapped data"),n.decoder&&(o=n.decoder.write(o)),!(n.objectMode&&o==null)&&!(!n.objectMode&&(!o||!o.length))){var a=t.push(o);a||(r=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=(function(a){return function(){return e[a].apply(e,arguments)}})(i));for(var s=0;s=t.length?(t.decoder?n=t.buffer.join(""):t.buffer.length===1?n=t.buffer.first():n=t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n}function Lae(e){var t=e._readableState;Rn("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(sSn,t,e))}function sSn(e,t){if(Rn("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}typeof Symbol=="function"&&(nr.from=function(e,t){return Cae===void 0&&(Cae=j7e()),Cae(nr,e,t)});function Y7e(e,t){for(var n=0,r=e.length;n{"use strict";X7e.exports=$m;var tW=qS().codes,oSn=tW.ERR_METHOD_NOT_IMPLEMENTED,aSn=tW.ERR_MULTIPLE_CALLBACK,cSn=tW.ERR_TRANSFORM_ALREADY_TRANSFORMING,uSn=tW.ERR_TRANSFORM_WITH_LENGTH_0,nW=Jb();Zb()($m,nW);function lSn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new aSn);n.writechunk=null,n.writecb=null,t!=null&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";$7e.exports=rM;var Q7e=Hae();Zb()(rM,Q7e);function rM(e){if(!(this instanceof rM))return new rM(e);Q7e.call(this,e)}rM.prototype._transform=function(e,t,n){n(null,e)}});var sXe=w((i4r,iXe)=>{"use strict";var qae;function fSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var rXe=qS().codes,pSn=rXe.ERR_MISSING_ARGS,hSn=rXe.ERR_STREAM_DESTROYED;function tXe(e){if(e)throw e}function mSn(e){return e.setHeader&&typeof e.abort=="function"}function gSn(e,t,n,r){r=fSn(r);var i=!1;e.on("close",function(){i=!0}),qae===void 0&&(qae=Z2()),qae(e,{readable:t,writable:n},function(o){if(o)return r(o);i=!0,r()});var s=!1;return function(o){if(!i&&!s){if(s=!0,mSn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new hSn("pipe"))}}}function nXe(e){e()}function ySn(e,t){return e.pipe(t)}function SSn(e){return!e.length||typeof e[e.length-1]!="function"?tXe:e.pop()}function ESn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return gSn(o,c,u,function(l){i||(i=l),l&&s.forEach(nXe),!c&&(s.forEach(nXe),r(i))})});return t.reduce(ySn)}iXe.exports=ESn});var oXe=w((Td,sM)=>{var iM=Y("stream");process.env.READABLE_STREAM==="disable"&&iM?(sM.exports=iM.Readable,Object.assign(sM.exports,iM),sM.exports.Stream=iM):(Td=sM.exports=Rae(),Td.Stream=iM||Td,Td.Readable=Td,Td.Writable=Tae(),Td.Duplex=Jb(),Td.Transform=Hae(),Td.PassThrough=eXe(),Td.finished=Z2(),Td.pipeline=sXe())});var uXe=w((s4r,cXe)=>{cXe.exports=aXe;function aXe(e,t){if(e&&t)return aXe(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(r){n[r]=e[r]}),n;function n(){for(var r=new Array(arguments.length),i=0;i{var lXe=uXe();Bae.exports=lXe(rW);Bae.exports.strict=lXe(dXe);rW.proto=rW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return rW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return dXe(this)},configurable:!0})});function rW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function dXe(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},n=e.name||"Function wrapped with `once`";return t.onceError=n+" shouldn't be called more than once",t.called=!1,t}});var mXe=w((a4r,hXe)=>{var _Sn=fXe(),bSn=function(){},TSn=global.Bare?queueMicrotask:process.nextTick.bind(process),vSn=function(e){return e.setHeader&&typeof e.abort=="function"},ASn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},pXe=function(e,t,n){if(typeof t=="function")return pXe(e,null,t);t||(t={}),n=_Sn(n||bSn);var r=e._writableState,i=e._readableState,s=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,a=!1,c=function(){e.writable||u()},u=function(){o=!1,s||n.call(e)},l=function(){s=!1,o||n.call(e)},d=function(g){n.call(e,g?new Error("exited with error code: "+g):null)},f=function(g){n.call(e,g)},p=function(){TSn(h)},h=function(){if(!a){if(s&&!(i&&i.ended&&!i.destroyed))return n.call(e,new Error("premature close"));if(o&&!(r&&r.ended&&!r.destroyed))return n.call(e,new Error("premature close"))}},m=function(){e.req.on("finish",u)};return vSn(e)?(e.on("complete",u),e.on("abort",p),e.req?m():e.on("request",m)):o&&!r&&(e.on("end",c),e.on("close",c)),ASn(e)&&e.on("exit",d),e.on("end",l),e.on("finish",u),t.error!==!1&&e.on("error",f),e.on("close",p),function(){a=!0,e.removeListener("complete",u),e.removeListener("abort",p),e.removeListener("request",m),e.req&&e.req.removeListener("finish",u),e.removeListener("end",c),e.removeListener("close",c),e.removeListener("finish",u),e.removeListener("exit",d),e.removeListener("end",l),e.removeListener("error",f),e.removeListener("close",p)}};hXe.exports=pXe});var yXe=w((c4r,gXe)=>{gXe.exports=RSn;function RSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(wSn(t)):null}function wSn(e){if(e.buffer.length){var t=e.bufferIndex||0;if(e.buffer.head)return e.buffer.head.data.length;if(e.buffer.length-t>0&&e.buffer[t])return e.buffer[t].length}return e.length}});var TXe=w((u4r,bXe)=>{var iW=oXe(),SXe=mXe(),kSn=Zb(),ISn=yXe(),EXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),Gae=function(e,t){e._corked?e.once("uncork",t):t()},xSn=function(e,t){e._autoDestroy&&e.destroy(t)},_Xe=function(e,t){return function(n){n?xSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},OSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},PSn=function(){},NSn=function(e){return new iW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},ba=function(e,t,n){if(!(this instanceof ba))return new ba(e,t,n);iW.Duplex.call(this,n),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!n||n.autoDestroy!==!1,this._forwardDestroy=!n||n.destroy!==!1,this._forwardEnd=!n||n.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,e&&this.setWritable(e),t&&this.setReadable(t)};kSn(ba,iW.Duplex);ba.obj=function(e,t,n){return n||(n={}),n.objectMode=!0,n.highWaterMark=16,new ba(e,t,n)};ba.prototype.cork=function(){++this._corked===1&&this.emit("cork")};ba.prototype.uncork=function(){this._corked&&--this._corked===0&&this.emit("uncork")};ba.prototype.setWritable=function(e){if(this._unwrite&&this._unwrite(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.end();return}var t=this,n=SXe(e,{writable:!0,readable:!1},_Xe(this,this._forwardEnd)),r=function(){var s=t._ondrain;t._ondrain=null,s&&s()},i=function(){t._writable.removeListener("drain",r),n()};this._unwrite&&process.nextTick(r),this._writable=e,this._writable.on("drain",r),this._unwrite=i,this.uncork()};ba.prototype.setReadable=function(e){if(this._unread&&this._unread(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.push(null),this.resume();return}var t=this,n=SXe(e,{writable:!1,readable:!0},_Xe(this)),r=function(){t._forward()},i=function(){t.push(null)},s=function(){t._readable2.removeListener("readable",r),t._readable2.removeListener("end",i),n()};this._drained=!0,this._readable=e,this._readable2=e._readableState?e:NSn(e),this._readable2.on("readable",r),this._readable2.on("end",i),this._unread=s,this._forward()};ba.prototype._read=function(){this._drained=!0,this._forward()};ba.prototype._forward=function(){if(!(this._forwarding||!this._readable2||!this._drained)){this._forwarding=!0;for(var e;this._drained&&(e=ISn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};ba.prototype.destroy=function(e,t){if(t||(t=PSn),this.destroyed)return t(null);this.destroyed=!0;var n=this;process.nextTick(function(){n._destroy(e),t(null)})};ba.prototype._destroy=function(e){if(e){var t=this._ondrain;this._ondrain=null,t?t(e):this.emit("error",e)}this._forwardDestroy&&(this._readable&&this._readable.destroy&&this._readable.destroy(),this._writable&&this._writable.destroy&&this._writable.destroy()),this.emit("close")};ba.prototype._write=function(e,t,n){if(!this.destroyed){if(this._corked)return Gae(this,this._write.bind(this,e,t,n));if(e===EXe)return this._finish(n);if(!this._writable)return n();this._writable.write(e)===!1?this._ondrain=n:this.destroyed||n()}};ba.prototype._finish=function(e){var t=this;this.emit("preend"),Gae(this,function(){OSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),Gae(t,e)})})};ba.prototype.end=function(e,t,n){return typeof e=="function"?this.end(null,null,e):typeof t=="function"?this.end(e,null,t):(this._ended=!0,e&&this.write(e),!this._writableState.ending&&!this._writableState.destroyed&&this.write(EXe),iW.Writable.prototype.end.call(this,n))};bXe.exports=ba});var wXe=w((l4r,oW)=>{"use strict";var{ServerResponse:CSn}=Y("node:http"),{PassThrough:vXe}=Y("node:stream"),{randomBytes:MSn}=Y("node:crypto"),DSn=FC(),AXe=t7e(),RXe=TXe(),tT=Symbol("ws-socket"),sW=Symbol("ws-head"),LSn=/HTTP\/1.1 (\d+)/u;function zae(e,t,n){e.decorateRequest("ws",null);let r=p;if(t.errorHandler){if(typeof t.errorHandler!="function")return n(new Error("invalid errorHandler function"));r=t.errorHandler}let i=d;if(t?.preClose){if(typeof t.preClose!="function")return n(new Error("invalid preClose function"));i=t.preClose}if(t.options?.noServer)return n(new Error("fastify-websocket doesn't support the ws noServer option. If you want to create a websocket server detatched from fastify, use the ws library directly."));let s=Object.assign({noServer:!0},t.options);s.path&&e.log.warn("ws server path option shouldn't be provided, use a route instead");let o=s.server||e.server;delete s.server;let a=new AXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},g={}){let y=new vXe,E=new vXe,S=new RXe(y,E),_=new RXe(E,y),b=new AXe(null,void 0,{isServer:!1}),T=Buffer.from([]),A,R,x=new Promise((N,C)=>{A=N,R=C});typeof g.onInit=="function"&&g.onInit(b),b.on("open",()=>{typeof g.onOpen=="function"&&g.onOpen(b),_.removeListener("data",k),A(b)});let k=N=>{if(N.toString().includes("HTTP/1.1 101 Switching Protocols"))b._isServer=!1,b.setSocket(_,T,{maxPayload:0});else{_.removeListener("data",k);let C=Number(LSn.exec(N.toString())[1]);R(new Error("Unexpected server response: "+C))}};_.on("data",k);let P={...m,method:"GET",headers:{...m.headers,connection:"upgrade",upgrade:"websocket","sec-websocket-version":13,"sec-websocket-key":MSn(16).toString("base64")},httpVersion:"1.1",url:h,[tT]:S,[sW]:T};return o.emit("upgrade",P,P[tT],P[sW]),x}e.decorate("injectWS",c);function u(h,m,g){h[tT]=m,h[sW]=g;let y=new CSn(h);try{y.assignSocket(m),e.routing(h,y)}catch(E){e.log.warn({err:E},"websocket upgrade failed")}}o.on("upgrade",u);let l=(h,m)=>{a.handleUpgrade(h,h[tT],h[sW],g=>{a.emit("connection",g,h),g.on("error",y=>{e.log.error(y)}),m(g)})};e.addHook("onRequest",(h,m,g)=>{h.raw[tT]?h.ws=!0:h.ws=!1,g()}),e.addHook("onResponse",(h,m,g)=>{h.ws&&h.raw[tT].destroy(),g()}),e.addHook("onRoute",h=>{let m=!1,g=h.wsHandler,y=h.handler;if(h.websocket||h.wsHandler){if(h.method==="HEAD")return;if(h.method!=="GET")throw new Error("websocket handler can only be declared in GET method");if(m=!0,h.websocket&&(h.schema||(h.schema={}),h.schema.hide=!0,g=h.handler,y=function(E,S){S.code(404).send()}),typeof g!="function")throw new TypeError("invalid wsHandler function")}h.handler=function(E,S){if(E.raw[tT])S.hijack(),l(E.raw,_=>{let b;try{m?b=g.call(this,_,E):b=f.call(this,_,E)}catch(T){return r.call(this,T,_,E,S)}b&&typeof b.catch=="function"&&b.catch(T=>r.call(this,T,_,E,S))});else return y.call(this,E,S)}}),e.addHook("preClose",i);function d(h){let m=this.websocketServer;if(m.clients)for(let g of m.clients)g.close();e.server.removeListener("upgrade",u),m.close(h),h()}function f(h,m){this.log.info({path:m.url},"closed incoming websocket connection for path with no websocket handler"),h.close()}function p(h,m,g){g.log.error(h),m.terminate()}n()}oW.exports=DSn(zae,{fastify:"5.x",name:"@fastify/websocket"});oW.exports.default=zae;oW.exports.fastifyWebsocket=zae});var IXe=w((d4r,kXe)=>{"use strict";function USn(e){var t=new e,n=t;function r(){var s=t;return s.next?t=s.next:(t=new e,n=t),s.next=null,s}function i(s){n.next=s,n=s}return{get:r,release:i}}kXe.exports=USn});var OXe=w((f4r,Vae)=>{"use strict";var FSn=IXe();function xXe(e,t,n){if(typeof e=="function"&&(n=t,t=e,e=null),!(n>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var r=FSn(jSn),i=null,s=null,o=0,a=null,c={push:m,drain:wu,saturated:wu,pause:l,paused:!1,get concurrency(){return n},set concurrency(T){if(!(T>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(n=T,!c.paused)for(;i&&o=n||c.paused?s?(s.next=R,s=R):(i=R,s=R,c.saturated()):(o++,t.call(e,R.value,R.worked))}function g(T,A){var R=r.get();R.context=e,R.release=y,R.value=T,R.callback=A||wu,R.errorHandler=a,o>=n||c.paused?i?(R.next=i,i=R):(i=R,s=R,c.saturated()):(o++,t.call(e,R.value,R.worked))}function y(T){T&&r.release(T);var A=i;A&&o<=n?c.paused?o--:(s===i&&(s=null),i=A.next,A.next=null,t.call(e,A.value,A.worked),s===null&&c.empty()):--o===0&&c.drain()}function E(){i=null,s=null,c.drain=wu}function S(){i=null,s=null,c.drain(),c.drain=wu}function _(){var T=i;for(i=null,s=null;T;){var A=T.next,R=T.callback,x=T.errorHandler,k=T.value,P=T.context;T.value=null,T.callback=wu,T.errorHandler=null,x&&x(new Error("abort"),k),R.call(P,new Error("abort")),T.release(T),T=A}c.drain=wu}function b(T){a=T}}function wu(){}function jSn(){this.value=null,this.callback=wu,this.next=null,this.release=wu,this.context=null,this.errorHandler=null;var e=this;this.worked=function(n,r){var i=e.callback,s=e.errorHandler,o=e.value;e.value=null,e.callback=wu,e.errorHandler&&s(n,o),i.call(e.context,n,r),e.release(e)}}function HSn(e,t,n){typeof e=="function"&&(n=t,t=e,e=null);function r(l,d){t.call(this,l).then(function(f){d(null,f)},d)}var i=xXe(e,r,n),s=i.push,o=i.unshift;return i.push=a,i.unshift=c,i.drained=u,i;function a(l){var d=new Promise(function(f,p){s(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(wu),d}function c(l){var d=new Promise(function(f,p){o(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(wu),d}function u(){var l=new Promise(function(d){process.nextTick(function(){if(i.idle())d();else{var f=i.drain;i.drain=function(){typeof f=="function"&&f(),d(),i.drain=f}}})});return l}}Vae.exports=xXe;Vae.exports.promise=HSn});var cW=w((p4r,oM)=>{"use strict";var{format:qSn}=Y("node:util");function BSn(){return`${this.name} [${this.code}]: ${this.message}`}var aW=Symbol.for("fastify-error-generic");function Ak(e,t,n=500,r=Error,i=Ak.captureStackTrace){let s=e===aW;if(s&&(e="FST_ERR"),!e)throw new Error("Fastify error code must not be empty");if(!t)throw new Error("Fastify error message must not be empty");e=e.toUpperCase(),!n&&(n=void 0);let o=Symbol.for(`fastify-error ${e}`);function a(...c){if(!new.target)return new a(...c);this.code=e,this.name="FastifyError",this.statusCode=n;let u=c.length-1;u!==-1&&c[u]&&typeof c[u]=="object"&&"cause"in c[u]&&(this.cause=c.pop().cause),this.message=qSn(t,...c),Error.stackTraceLimit&&i&&Error.captureStackTrace(this,a)}return a.prototype=Object.create(r.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0},[aW]:{value:!0,enumerable:!1,writable:!1,configurable:!1},[o]:{value:!0,enumerable:!1,writable:!1,configurable:!1}}),s?Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[aW]},configurable:!1,writable:!1,enumerable:!1}):Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[o]},configurable:!1,writable:!1,enumerable:!1}),a.prototype[Symbol.toStringTag]="Error",a.prototype.toString=BSn,a}Ak.captureStackTrace=!0;var GSn=Ak(aW,"Fastify Error",500,Error);oM.exports=Ak;oM.exports.FastifyError=GSn;oM.exports.default=Ak;oM.exports.createError=Ak});var uW=w((h4r,PXe)=>{"use strict";var{createError:WS}=cW();PXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:WS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:WS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:WS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:WS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:WS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:WS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:WS("AVV_ERR_READY_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise"),AVV_ERR_PLUGIN_EXEC_TIMEOUT:WS("AVV_ERR_PLUGIN_EXEC_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise")}});var Rk=w((m4r,NXe)=>{"use strict";var zSn=Symbol("avvio.Boot"),VSn=Symbol("isOnCloseHandler"),WSn=Symbol("avvio.ThenifyDoNotWrap"),KSn=Symbol("avvio.TimeTree.untrackNode"),YSn=Symbol("avvio.TimeTree.trackNode"),ZSn=Symbol("avvio.TimeTree.getParent"),JSn=Symbol("avvio.TimeTree.getNode"),XSn=Symbol("avvio.TimeTree.addNode"),QSn=Symbol.for("plugin-meta");NXe.exports={kAvvio:zSn,kIsOnCloseHandler:VSn,kThenifyDoNotWrap:WSn,kUntrackNode:KSn,kTrackNode:YSn,kGetParent:ZSn,kGetNode:JSn,kAddNode:XSn,kPluginMeta:QSn}});var jXe=w((g4r,FXe)=>{"use strict";var{kUntrackNode:CXe,kTrackNode:Wae,kGetParent:MXe,kGetNode:DXe,kAddNode:LXe}=Rk(),Kae=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[Wae](t){this.tableId.set(t.id,t),this.tableLabel.has(t.label)?this.tableLabel.get(t.label).push(t):this.tableLabel.set(t.label,[t])}[CXe](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[MXe](t){if(t===null)return null;if(this.tableLabel.has(t)){let n=this.tableLabel.get(t);return n[n.length-1]}else return null}[DXe](t){return this.tableId.get(t)}[LXe](t,n,r){let i=this[MXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[Wae](this.root),this.root.id;let o=`${n}-${Math.random()}`,a={parent:t,id:o,label:n,nodes:[],start:r,stop:null,diff:-1};return i.nodes.push(a),this[Wae](a),o}start(t,n,r=Date.now()){return this[LXe](t,n,r)}stop(t,n=Date.now()){let r=this[DXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[CXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return UXe(this.toJSON())}};function UXe(e,t=""){let n=t,r=e.nodes.length,i=r-1;n+=`${e.label} ${e.diff} ms +`;for(let s=0;s{"use strict";var{debuglog:$Sn}=Y("node:util"),eEn=$Sn("avvio");HXe.exports={debug:eEn}});var BXe=w((S4r,qXe)=>{"use strict";function tEn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}qXe.exports={createPromise:tEn}});var VXe=w((E4r,zXe)=>{"use strict";var{kPluginMeta:GXe}=Rk();function nEn(e,t){return e[GXe]?.name?e[GXe].name:t?.name?t.name:e.name?e.name:e.toString().split(` +`).slice(0,2).map(n=>n.trim()).join(" -- ")}zXe.exports={getPluginName:nEn}});var dW=w((_4r,WXe)=>{"use strict";function rEn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}WXe.exports={isPromiseLike:rEn}});var YXe=w((b4r,KXe)=>{"use strict";var{EventEmitter:iEn}=Y("node:events"),{inherits:sEn}=Y("node:util"),{debug:Ta}=lW(),{createPromise:oEn}=BXe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:aEn}=uW(),{getPluginName:cEn}=VXe(),{isPromiseLike:uEn}=dW();function wk(e,t,n,r,i){this.queue=e,this.func=t,this.options=n,this.isAfter=r,this.timeout=i,this.started=!1,this.name=cEn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}sEn(wk,iEn);wk.prototype.exec=function(e,t){Ta("exec",this.name),this.server=e;let n=this.func,r=this.name,i=!1;this.options=typeof this.options=="function"?this.options(this.server):this.options;let s=null,o=c=>{if(i){Ta("loading complete",r);return}this._error=c,Ta(c?"exec errored":"exec completed",r),i=!0,s&&clearTimeout(s),t(c)};this.timeout>0&&(Ta("setting up timeout",r,this.timeout),s=setTimeout(function(){Ta("timed out",r),s=null;let c=new aEn(r);c.fn=n,o(c)},this.timeout)),this.started=!0,this.startTime=Date.now(),this.emit("start",this.server?this.server.name:null,this.name,Date.now());let a=n(this.server,this.options,o);uEn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};wk.prototype.loadedSoFar=function(){if(Ta("loadedSoFar",this.name),this.loaded)return Promise.resolve();let e=()=>{this.server.after((n,r)=>{this._error=n,this.queue.pause(),this._promise&&(n?(Ta("rejecting promise",this.name,n),this._promise.reject(n)):(Ta("resolving promise",this.name),this._promise.resolve()),this._promise=null),process.nextTick(r,n)}),this.queue.resume()},t;return this._promise?t=Promise.resolve():(this._promise=oEn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};wk.prototype.enqueue=function(e,t){Ta("enqueue",this.name,e.name),this.emit("enqueue",this.server?this.server.name:null,this.name,Date.now()),this.queue.push(e,t)};wk.prototype.finish=function(e,t){Ta("finish",this.name,e);let n=()=>{this.loaded||(Ta("loaded",this.name),this.emit("loaded",this.server?this.server.name:null,this.name,Date.now()),this.loaded=!0,t(e))};if(e){this._promise&&(this._promise.reject(e),this._promise=null),n();return}let r=()=>{if(Ta("check",this.name,this.queue.length(),this.queue.running(),this._promise),this.queue.length()===0&&this.queue.running()===0)if(this._promise){let i=()=>{Ta("wrap"),queueMicrotask(r)};this._promise.resolve(),this._promise.promise.then(i,i),this._promise=null}else n();else Ta("delayed",this.name),this.queue.drain=()=>{Ta("drain",this.name),this.queue.drain=lEn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function lEn(){}KXe.exports={Plugin:wk}});var JXe=w((T4r,ZXe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:Yae}=uW();function dEn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new Yae("array"):e===null?new Yae("null"):new Yae(typeof e)}ZXe.exports={validatePlugin:dEn}});var QXe=w((v4r,XXe)=>{"use strict";function fEn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}XXe.exports={isBundledOrTypescriptPlugin:fEn}});var tQe=w((A4r,eQe)=>{"use strict";var{debug:$Xe}=lW(),{kThenifyDoNotWrap:Zae}=Rk();function pEn(){if(this.booted){$Xe("thenify returning undefined because we are already booted");return}if(this[Zae]){this[Zae]=!1;return}return $Xe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[Zae]=!0,e(this._server)),t)}eQe.exports={thenify:pEn}});var rQe=w((R4r,nQe)=>{"use strict";var{isPromiseLike:hEn}=dW(),{kAvvio:mEn}=Rk();function gEn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}hEn(r)&&!r[mEn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}nQe.exports={executeWithThenable:gEn}});var fQe=w((w4r,dQe)=>{"use strict";var fW=OXe(),yEn=Y("node:events").EventEmitter,SEn=Y("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:aM,AVV_ERR_CALLBACK_NOT_FN:kk,AVV_ERR_ROOT_PLG_BOOTED:EEn,AVV_ERR_READY_TIMEOUT:_En,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:bEn}=uW(),{kAvvio:oQe,kIsOnCloseHandler:aQe}=Rk(),{TimeTree:TEn}=jXe(),{Plugin:cQe}=YXe(),{debug:Ik}=lW(),{validatePlugin:vEn}=JXe(),{isBundledOrTypescriptPlugin:AEn}=QXe(),{isPromiseLike:REn}=dW(),{thenify:uQe}=tQe(),{executeWithThenable:iQe}=rQe();function Ms(e,t,n){if(typeof e=="function"&&arguments.length===1&&(n=e,t={},e=null),typeof t=="function"&&(n=t,t={}),t=t||{},t.autostart=t.autostart!==!1,t.timeout=Number(t.timeout)||0,t.expose=t.expose||{},!new.target)return new Ms(e,t,n);this._server=e||this,this._opts=t,e&&this._expose(),this._current=[],this._error=null,this._lastUsed=null,this.setMaxListeners(0),n&&this.once("start",n),this.started=!1,this.booted=!1,this.pluginTree=new TEn,this._readyQ=fW(this,lQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=sQe},this._closeQ=fW(this,kEn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=sQe},this._doStart=null;let r=this;this._root=new cQe(fW(this,this._loadPluginNextTick,1),function(s,o,a){r._doStart=a,o.autostart&&r.start()},t,!1,0),this._trackPluginLoading(this._root),this._loadPlugin(this._root,i=>{Ik("root plugin ready");try{this.emit("preReady"),this._root=null}catch(s){i=i||this._error||s}if(i){if(this._error=i,this._readyQ.length()===0)throw i}else this.booted=!0;this._readyQ.resume()})}SEn(Ms,yEn);"asyncDispose"in Symbol&&(Ms.prototype[Symbol.asyncDispose]=function(){return new Promise((e,t)=>{this.close(n=>{if(n)return t(n);e()})})});Ms.prototype.start=function(){return this.started=!0,process.nextTick(this._doStart),this};Ms.prototype.override=function(e,t,n){return e};Ms.prototype[oQe]=!0;Ms.prototype.use=function(e,t){return this._lastUsed=this._addPlugin(e,t,!1),this};Ms.prototype._loadRegistered=function(){let e=this._current[0];return!this.started&&!this.booted&&process.nextTick(()=>this._root.queue.resume()),e?e.loadedSoFar():Promise.resolve()};Object.defineProperty(Ms.prototype,"then",{get:uQe});Ms.prototype._addPlugin=function(e,t,n){if(AEn(e)&&(e=e.default),vEn(e),t=t||{},this.booted)throw new EEn;let r=this._current[0],i=this._opts.timeout;if(!r.loaded&&r.timeout>0){let o=Date.now()-r.startTime;i=r.timeout-(o+3)}let s=new cQe(fW(this,this._loadPluginNextTick,1),e,t,n,i);if(this._trackPluginLoading(s),r.loaded)throw new Error(s.name,r.name);return r.enqueue(s,o=>{o&&(this._error=o)}),s};Ms.prototype._expose=function(){let t=this,n=t._server,{use:r="use",after:i="after",ready:s="ready",onClose:o="onClose",close:a="close"}=this._opts.expose;if(n[r])throw new aM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new aM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(Jae(c,this)),this)},n[s])throw new aM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new kk(s,typeof c);return t.ready(c?Jae(c,this):void 0)},n[o])throw new aM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new kk(o,typeof c);return t.onClose(IEn(c,this)),this},n[a])throw new aM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new kk(a,typeof c);return c?(t.close(Jae(c,this)),this):t.close()},n.then)throw new bEn("then");Object.defineProperty(n,"then",{get:uQe.bind(t)}),n[oQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){lQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new kk("onClose",typeof e);return e[aQe]=!0,this._closeQ.unshift(e,t=>{t&&(this._error=t)}),this};Ms.prototype.close=function(e){let t;if(e){if(typeof e!="function")throw new kk("close",typeof e)}else t=new Promise(function(n,r){e=function(i){if(i)return r(i);n()}});return this.ready(()=>{this._error=null,this._closeQ.push(e),process.nextTick(this._closeQ.resume.bind(this._closeQ))}),t};Ms.prototype.ready=function(e){if(e){if(typeof e!="function")throw new kk("ready",typeof e);this._readyQ.push(e),queueMicrotask(this.start.bind(this));return}return new Promise((t,n)=>{this._readyQ.push(i),this.start();let r=this._current[0].server;function i(s,o,a){s?n(s):t(r),process.nextTick(a)}})};Ms.prototype._trackPluginLoading=function(e){let t=this._current[0]?.name||null;e.once("start",(n,r,i)=>{let s=this.pluginTree.start(t||null,r,i);e.once("loaded",(o,a,c)=>{this.pluginTree.stop(s,c)})})};Ms.prototype.prettyPrint=function(){return this.pluginTree.prettyPrint()};Ms.prototype.toJSON=function(){return this.pluginTree.toJSON()};Ms.prototype._loadPlugin=function(e,t){let n=this;if(REn(e.func)){e.func.then(o=>{typeof o.default=="function"&&(o=o.default),e.func=o,this._loadPlugin(e,t)},t);return}let r=n._current[0];if(n._current.unshift(e),n._error&&!e.isAfter){Ik("skipping loading of plugin as instance errored and it is not an after",e.name),process.nextTick(s);return}let i=r?.server||n._server;if(!e.isAfter)try{i=n.override(i,e.func,e.options)}catch(o){return Ik("override errored",e.name),s(o)}e.exec(i,s);function s(o){e.finish(o,a=>{n._current.shift(),t(a)})}};Ms.prototype._loadPluginNextTick=function(e,t){process.nextTick(this._loadPlugin.bind(this),e,t)};function sQe(){}function lQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,iQe(e,[],t);else if(e.length===1)iQe(e,[r],t);else if(this._opts.timeout===0){let i=s=>{this._error=s,t(this._error)};e.length===2?e(r,i):e(r,n,i)}else wEn.call(this,e,r,n,t)}function wEn(e,t,n,r){let i=e.unwrappedName??e.name;Ik("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Ik("timed out",i),s=null;let a=new _En(i);a.fn=e,this._error=a,r(a)},this._opts.timeout);e.length===2?e(t,o.bind(this)):e(t,n,o.bind(this));function o(a){s&&(clearTimeout(s),this._error=a,r(this._error))}}function kEn(e,t){let n=this._server,r=e[aQe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Ik("resolving close/onClose promise"),i.then(()=>process.nextTick(t),s=>process.nextTick(t,s))):process.nextTick(t)}else e.length===2?e(r?n:this._error,t):r?e(n,t):e(this._error,n,t)}function IEn(e,t){return n.bind(t);function n(r,i){let s;e.length===0?(s=e(),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e.length===1?(s=e(this),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e(this,i)}}function Jae(e,t){let n=r.bind(t);return n.unwrappedName=e.name,n;function r(i,s){let o;e?e.length===0?(o=e(),o?.then?o.then(function(){process.nextTick(s,i)},s):process.nextTick(s,i)):e.length===1?(o=e(i),o?.then?o.then(function(){process.nextTick(s)},s):process.nextTick(s)):e.length===2?e(i,s):e(i,this,s):process.nextTick(s)}}dQe.exports=Ms});var $s=w((k4r,pQe)=>{"use strict";var xEn={kAvvioBoot:Symbol("fastify.avvioBoot"),kChildren:Symbol("fastify.children"),kServerBindings:Symbol("fastify.serverBindings"),kBodyLimit:Symbol("fastify.bodyLimit"),kSupportedHTTPMethods:Symbol("fastify.acceptedHTTPMethods"),kRoutePrefix:Symbol("fastify.routePrefix"),kLogLevel:Symbol("fastify.logLevel"),kLogSerializers:Symbol("fastify.logSerializers"),kHooks:Symbol("fastify.hooks"),kContentTypeParser:Symbol("fastify.contentTypeParser"),kState:Symbol("fastify.state"),kOptions:Symbol("fastify.options"),kDisableRequestLogging:Symbol("fastify.disableRequestLogging"),kPluginNameChain:Symbol("fastify.pluginNameChain"),kRouteContext:Symbol("fastify.context"),kGenReqId:Symbol("fastify.genReqId"),kHttp2ServerSessions:Symbol("fastify.http2ServerSessions"),kSchemaController:Symbol("fastify.schemaController"),kSchemaHeaders:Symbol("headers-schema"),kSchemaParams:Symbol("params-schema"),kSchemaQuerystring:Symbol("querystring-schema"),kSchemaBody:Symbol("body-schema"),kSchemaResponse:Symbol("response-schema"),kSchemaErrorFormatter:Symbol("fastify.schemaErrorFormatter"),kSchemaVisited:Symbol("fastify.schemas.visited"),kRequest:Symbol("fastify.Request"),kRequestPayloadStream:Symbol("fastify.RequestPayloadStream"),kRequestAcceptVersion:Symbol("fastify.RequestAcceptVersion"),kRequestCacheValidateFns:Symbol("fastify.request.cache.validateFns"),kRequestOriginalUrl:Symbol("fastify.request.originalUrl"),kRequestSignal:Symbol("fastify.request.signal"),kHandlerTimeout:Symbol("fastify.handlerTimeout"),kTimeoutTimer:Symbol("fastify.request.timeoutTimer"),kOnAbort:Symbol("fastify.request.onAbort"),kFourOhFour:Symbol("fastify.404"),kCanSetNotFoundHandler:Symbol("fastify.canSetNotFoundHandler"),kFourOhFourLevelInstance:Symbol("fastify.404LogLevelInstance"),kFourOhFourContext:Symbol("fastify.404ContextKey"),kDefaultJsonParse:Symbol("fastify.defaultJSONParse"),kReply:Symbol("fastify.Reply"),kReplySerializer:Symbol("fastify.reply.serializer"),kReplyIsError:Symbol("fastify.reply.isError"),kReplyHeaders:Symbol("fastify.reply.headers"),kReplyTrailers:Symbol("fastify.reply.trailers"),kReplyHasStatusCode:Symbol("fastify.reply.hasStatusCode"),kReplyHijacked:Symbol("fastify.reply.hijacked"),kReplyStartTime:Symbol("fastify.reply.startTime"),kReplyNextErrorHandler:Symbol("fastify.reply.nextErrorHandler"),kReplyEndTime:Symbol("fastify.reply.endTime"),kReplyErrorHandlerCalled:Symbol("fastify.reply.errorHandlerCalled"),kReplyIsRunningOnErrorHook:Symbol("fastify.reply.isRunningOnErrorHook"),kReplySerializerDefault:Symbol("fastify.replySerializerDefault"),kReplyCacheSerializeFns:Symbol("fastify.reply.cache.serializeFns"),kTestInternals:Symbol("fastify.testInternals"),kErrorHandler:Symbol("fastify.errorHandler"),kErrorHandlerAlreadySet:Symbol("fastify.errorHandlerAlreadySet"),kChildLoggerFactory:Symbol("fastify.childLoggerFactory"),kHasBeenDecorated:Symbol("fastify.hasBeenDecorated"),kKeepAliveConnections:Symbol("fastify.keepAliveConnections"),kRouteByFastify:Symbol("fastify.routeByFastify")};pQe.exports=xEn});var mQe=w((I4r,pW)=>{"use strict";var{format:Xae}=Y("node:util");function OEn(e){return hQe({...e,name:"DeprecationWarning"})}function hQe({name:e,code:t,message:n,unlimited:r=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!n)throw new Error("Warning message must not be empty");if(typeof r!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let i={[e]:function(o,a,c){s.emitted===!0&&s.unlimited!==!0||(s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code))}};r&&(i={[e]:function(o,a,c){s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code)}});let s=i[e];return s.emitted=!1,s.message=n,s.unlimited=r,s.code=t,s.format=function(o,a,c){let u;return o&&a&&c?u=Xae(n,o,a,c):o&&a?u=Xae(n,o,a):o?u=Xae(n,o):u=n,u},s}var Qae={createWarning:hQe,createDeprecation:OEn};pW.exports=Qae;pW.exports.default=Qae;pW.exports.processWarning=Qae});var xk=w((x4r,gQe)=>{"use strict";var{createWarning:cM}=mQe(),PEn=cM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),NEn=cM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),CEn=cM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),MEn=cM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),DEn=cM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});gQe.exports={FSTWRN001:PEn,FSTWRN003:NEn,FSTWRN004:CEn,FSTSEC001:MEn,FSTDEP022:DEn}});var Ko=w((O4r,hW)=>{"use strict";var je=cW(),nT={FST_ERR_NOT_FOUND:je("FST_ERR_NOT_FOUND","Not Found",404),FST_ERR_OPTIONS_NOT_OBJ:je("FST_ERR_OPTIONS_NOT_OBJ","Options must be an object",500,TypeError),FST_ERR_QSP_NOT_FN:je("FST_ERR_QSP_NOT_FN","querystringParser option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:je("FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN","schemaController.bucket option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:je("FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN","schemaErrorFormatter option should be a non async function. Instead got '%s'.",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:je("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ","ajv.customOptions option should be an object, instead got '%s'",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:je("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR","ajv.plugins option should be an array, instead got '%s'",500,TypeError),FST_ERR_VALIDATION:je("FST_ERR_VALIDATION","%s",400),FST_ERR_LISTEN_OPTIONS_INVALID:je("FST_ERR_LISTEN_OPTIONS_INVALID","Invalid listen options: '%s'",500,TypeError),FST_ERR_ERROR_HANDLER_NOT_FN:je("FST_ERR_ERROR_HANDLER_NOT_FN","Error Handler must be a function",500,TypeError),FST_ERR_ERROR_HANDLER_ALREADY_SET:je("FST_ERR_ERROR_HANDLER_ALREADY_SET","Error Handler already set in this scope. Set 'allowErrorHandlerOverride: true' to allow overriding.",500,TypeError),FST_ERR_CTP_ALREADY_PRESENT:je("FST_ERR_CTP_ALREADY_PRESENT","Content type parser '%s' already present."),FST_ERR_CTP_INVALID_TYPE:je("FST_ERR_CTP_INVALID_TYPE","The content type should be a string or a RegExp",500,TypeError),FST_ERR_CTP_EMPTY_TYPE:je("FST_ERR_CTP_EMPTY_TYPE","The content type cannot be an empty string",500,TypeError),FST_ERR_CTP_INVALID_HANDLER:je("FST_ERR_CTP_INVALID_HANDLER","The content type handler should be a function",500,TypeError),FST_ERR_CTP_INVALID_PARSE_TYPE:je("FST_ERR_CTP_INVALID_PARSE_TYPE","The body parser can only parse your data as 'string' or 'buffer', you asked '%s' which is not supported.",500,TypeError),FST_ERR_CTP_BODY_TOO_LARGE:je("FST_ERR_CTP_BODY_TOO_LARGE","Request body is too large",413,RangeError),FST_ERR_CTP_INVALID_MEDIA_TYPE:je("FST_ERR_CTP_INVALID_MEDIA_TYPE","Unsupported Media Type",415),FST_ERR_CTP_INVALID_CONTENT_LENGTH:je("FST_ERR_CTP_INVALID_CONTENT_LENGTH","Request body size did not match Content-Length",400,RangeError),FST_ERR_CTP_EMPTY_JSON_BODY:je("FST_ERR_CTP_EMPTY_JSON_BODY","Body cannot be empty when content-type is set to 'application/json'",400),FST_ERR_CTP_INVALID_JSON_BODY:je("FST_ERR_CTP_INVALID_JSON_BODY","Body is not valid JSON but content-type is set to 'application/json'",400),FST_ERR_CTP_INSTANCE_ALREADY_STARTED:je("FST_ERR_CTP_INSTANCE_ALREADY_STARTED",'Cannot call "%s" when fastify instance is already started!',400),FST_ERR_DEC_ALREADY_PRESENT:je("FST_ERR_DEC_ALREADY_PRESENT","The decorator '%s' has already been added!"),FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:je("FST_ERR_DEC_DEPENDENCY_INVALID_TYPE","The dependencies of decorator '%s' must be of type Array.",500,TypeError),FST_ERR_DEC_MISSING_DEPENDENCY:je("FST_ERR_DEC_MISSING_DEPENDENCY","The decorator is missing dependency '%s'."),FST_ERR_DEC_AFTER_START:je("FST_ERR_DEC_AFTER_START","The decorator '%s' has been added after start!"),FST_ERR_DEC_REFERENCE_TYPE:je("FST_ERR_DEC_REFERENCE_TYPE","The decorator '%s' of type '%s' is a reference type. Use the { getter, setter } interface instead."),FST_ERR_DEC_UNDECLARED:je("FST_ERR_DEC_UNDECLARED","No decorator '%s' has been declared on %s."),FST_ERR_HOOK_INVALID_TYPE:je("FST_ERR_HOOK_INVALID_TYPE","The hook name must be a string",500,TypeError),FST_ERR_HOOK_INVALID_HANDLER:je("FST_ERR_HOOK_INVALID_HANDLER","%s hook should be a function, instead got %s",500,TypeError),FST_ERR_HOOK_INVALID_ASYNC_HANDLER:je("FST_ERR_HOOK_INVALID_ASYNC_HANDLER","Async function has too many arguments. Async hooks should not use the 'done' argument.",500,TypeError),FST_ERR_HOOK_NOT_SUPPORTED:je("FST_ERR_HOOK_NOT_SUPPORTED","%s hook not supported!",500,TypeError),FST_ERR_MISSING_MIDDLEWARE:je("FST_ERR_MISSING_MIDDLEWARE","You must register a plugin for handling middlewares, visit fastify.dev/docs/latest/Reference/Middleware/ for more info.",500),FST_ERR_HOOK_TIMEOUT:je("FST_ERR_HOOK_TIMEOUT","A callback for '%s' hook%s timed out. You may have forgotten to call 'done' function or to resolve a Promise"),FST_ERR_LOG_INVALID_DESTINATION:je("FST_ERR_LOG_INVALID_DESTINATION","Cannot specify both logger.stream and logger.file options"),FST_ERR_LOG_INVALID_LOGGER:je("FST_ERR_LOG_INVALID_LOGGER","Invalid logger object provided. The logger instance should have these functions(s): '%s'.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_INSTANCE:je("FST_ERR_LOG_INVALID_LOGGER_INSTANCE","loggerInstance only accepts a logger instance.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_CONFIG:je("FST_ERR_LOG_INVALID_LOGGER_CONFIG","logger options only accepts a configuration object.",500,TypeError),FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:je("FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED","You cannot provide both logger and loggerInstance. Please provide only one.",500,TypeError),FST_ERR_REP_INVALID_PAYLOAD_TYPE:je("FST_ERR_REP_INVALID_PAYLOAD_TYPE","Attempted to send payload of invalid type '%s'. Expected a string or Buffer.",500,TypeError),FST_ERR_REP_RESPONSE_BODY_CONSUMED:je("FST_ERR_REP_RESPONSE_BODY_CONSUMED","Response.body is already consumed."),FST_ERR_REP_READABLE_STREAM_LOCKED:je("FST_ERR_REP_READABLE_STREAM_LOCKED","ReadableStream was locked. You should call releaseLock() method on reader before sending."),FST_ERR_REP_ALREADY_SENT:je("FST_ERR_REP_ALREADY_SENT",'Reply was already sent, did you forget to "return reply" in "%s" (%s)?'),FST_ERR_REP_SENT_VALUE:je("FST_ERR_REP_SENT_VALUE","The only possible value for reply.sent is true.",500,TypeError),FST_ERR_SEND_INSIDE_ONERR:je("FST_ERR_SEND_INSIDE_ONERR","You cannot use `send` inside the `onError` hook"),FST_ERR_SEND_UNDEFINED_ERR:je("FST_ERR_SEND_UNDEFINED_ERR","Undefined error has occurred"),FST_ERR_BAD_STATUS_CODE:je("FST_ERR_BAD_STATUS_CODE","Called reply with an invalid status code: %s"),FST_ERR_BAD_TRAILER_NAME:je("FST_ERR_BAD_TRAILER_NAME","Called reply.trailer with an invalid header name: %s"),FST_ERR_BAD_TRAILER_VALUE:je("FST_ERR_BAD_TRAILER_VALUE","Called reply.trailer('%s', fn) with an invalid type: %s. Expected a function."),FST_ERR_FAILED_ERROR_SERIALIZATION:je("FST_ERR_FAILED_ERROR_SERIALIZATION","Failed to serialize an error. Error: %s. Original error: %s"),FST_ERR_MISSING_SERIALIZATION_FN:je("FST_ERR_MISSING_SERIALIZATION_FN",'Missing serialization function. Key "%s"'),FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:je("FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN",'Missing serialization function. Key "%s:%s"'),FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:je("FST_ERR_REQ_INVALID_VALIDATION_INVOCATION",'Invalid validation invocation. Missing validation function for HTTP part "%s" nor schema provided.'),FST_ERR_SCH_MISSING_ID:je("FST_ERR_SCH_MISSING_ID","Missing schema $id property"),FST_ERR_SCH_ALREADY_PRESENT:je("FST_ERR_SCH_ALREADY_PRESENT","Schema with id '%s' already declared!"),FST_ERR_SCH_CONTENT_MISSING_SCHEMA:je("FST_ERR_SCH_CONTENT_MISSING_SCHEMA","Schema is missing for the content type '%s'"),FST_ERR_SCH_DUPLICATE:je("FST_ERR_SCH_DUPLICATE","Schema with '%s' already present!"),FST_ERR_SCH_VALIDATION_BUILD:je("FST_ERR_SCH_VALIDATION_BUILD","Failed building the validation schema for %s: %s, due to error %s"),FST_ERR_SCH_SERIALIZATION_BUILD:je("FST_ERR_SCH_SERIALIZATION_BUILD","Failed building the serialization schema for %s: %s, due to error %s"),FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:je("FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX",'response schemas should be nested under a valid status code, e.g { 2xx: { type: "object" } }'),FST_ERR_INIT_OPTS_INVALID:je("FST_ERR_INIT_OPTS_INVALID","Invalid initialization options: '%s'"),FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:je("FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE","Cannot set forceCloseConnections to 'idle' as your HTTP server does not support closeIdleConnections method"),FST_ERR_DUPLICATED_ROUTE:je("FST_ERR_DUPLICATED_ROUTE","Method '%s' already declared for route '%s'"),FST_ERR_BAD_URL:je("FST_ERR_BAD_URL","'%s' is not a valid url component",400,URIError),FST_ERR_ASYNC_CONSTRAINT:je("FST_ERR_ASYNC_CONSTRAINT","Unexpected error from async constraint",500),FST_ERR_INVALID_URL:je("FST_ERR_INVALID_URL","URL must be a string. Received '%s'",400,TypeError),FST_ERR_ROUTE_OPTIONS_NOT_OBJ:je("FST_ERR_ROUTE_OPTIONS_NOT_OBJ",'Options for "%s:%s" route must be an object',500,TypeError),FST_ERR_ROUTE_DUPLICATED_HANDLER:je("FST_ERR_ROUTE_DUPLICATED_HANDLER",'Duplicate handler for "%s:%s" route is not allowed!',500),FST_ERR_ROUTE_HANDLER_NOT_FN:je("FST_ERR_ROUTE_HANDLER_NOT_FN","Error Handler for %s:%s route, if defined, must be a function",500,TypeError),FST_ERR_ROUTE_MISSING_HANDLER:je("FST_ERR_ROUTE_MISSING_HANDLER",'Missing handler function for "%s:%s" route.',500),FST_ERR_ROUTE_METHOD_INVALID:je("FST_ERR_ROUTE_METHOD_INVALID","Provided method is invalid!",500,TypeError),FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:je("FST_ERR_ROUTE_METHOD_NOT_SUPPORTED","%s method is not supported.",500),FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:je("FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED","Body validation schema for %s:%s route is not supported!",500),FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:je("FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT","'bodyLimit' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_HANDLER_TIMEOUT:je("FST_ERR_HANDLER_TIMEOUT","Request timed out after %s ms on route '%s'",503),FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:je("FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT","'handlerTimeout' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_ROUTE_REWRITE_NOT_STR:je("FST_ERR_ROUTE_REWRITE_NOT_STR",'Rewrite url for "%s" needs to be of type "string" but received "%s"',500,TypeError),FST_ERR_REOPENED_CLOSE_SERVER:je("FST_ERR_REOPENED_CLOSE_SERVER","Fastify has already been closed and cannot be reopened"),FST_ERR_REOPENED_SERVER:je("FST_ERR_REOPENED_SERVER","Fastify is already listening"),FST_ERR_INSTANCE_ALREADY_LISTENING:je("FST_ERR_INSTANCE_ALREADY_LISTENING","Fastify instance is already listening. %s"),FST_ERR_PLUGIN_VERSION_MISMATCH:je("FST_ERR_PLUGIN_VERSION_MISMATCH","fastify-plugin: %s - expected '%s' fastify version, '%s' is installed"),FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:je("FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE","The decorator '%s'%s is not present in %s"),FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:je("FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER","The %s plugin being registered mixes async and callback styles. Async plugin should not mix async and callback style.",500,TypeError),FST_ERR_PLUGIN_CALLBACK_NOT_FN:je("FST_ERR_PLUGIN_CALLBACK_NOT_FN","fastify-plugin: %s",500,TypeError),FST_ERR_PLUGIN_NOT_VALID:je("FST_ERR_PLUGIN_NOT_VALID","fastify-plugin: %s"),FST_ERR_ROOT_PLG_BOOTED:je("FST_ERR_ROOT_PLG_BOOTED","fastify-plugin: %s"),FST_ERR_PARENT_PLUGIN_BOOTED:je("FST_ERR_PARENT_PLUGIN_BOOTED","fastify-plugin: %s"),FST_ERR_PLUGIN_TIMEOUT:je("FST_ERR_PLUGIN_TIMEOUT","fastify-plugin: %s")};function LEn(e,t){return t.cause=e,t}hW.exports=nT;hW.exports.appendStackTrace=LEn;hW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:nT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:nT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:nT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:nT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:nT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:nT.FST_ERR_PLUGIN_TIMEOUT}});var KS=w((P4r,RQe)=>{"use strict";var UEn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],_Qe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],FEn=_Qe.concat(UEn),{FST_ERR_HOOK_INVALID_TYPE:jEn,FST_ERR_HOOK_INVALID_HANDLER:HEn,FST_ERR_SEND_UNDEFINED_ERR:mW,FST_ERR_HOOK_TIMEOUT:qEn,FST_ERR_HOOK_NOT_SUPPORTED:BEn,AVVIO_ERRORS_MAP:yQe,appendStackTrace:SQe}=Ko(),{kChildren:uM,kHooks:bQe,kRequestPayloadStream:EQe}=$s();function lM(){this.onRequest=[],this.preParsing=[],this.preValidation=[],this.preSerialization=[],this.preHandler=[],this.onResponse=[],this.onSend=[],this.onError=[],this.onRoute=[],this.onRegister=[],this.onReady=[],this.onListen=[],this.onTimeout=[],this.onRequestAbort=[],this.preClose=[]}lM.prototype=Object.create(null);lM.prototype.validate=function(e,t){if(typeof e!="string")throw new jEn;if(Array.isArray(this[e])===!1)throw new BEn(e);if(typeof t!="function")throw new HEn(e,Object.prototype.toString.call(t))};lM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function GEn(e){let t=new lM;return t.onRequest=e.onRequest.slice(),t.preParsing=e.preParsing.slice(),t.preValidation=e.preValidation.slice(),t.preSerialization=e.preSerialization.slice(),t.preHandler=e.preHandler.slice(),t.onSend=e.onSend.slice(),t.onResponse=e.onResponse.slice(),t.onError=e.onError.slice(),t.onRoute=e.onRoute.slice(),t.onRegister=e.onRegister.slice(),t.onTimeout=e.onTimeout.slice(),t.onRequestAbort=e.onRequestAbort.slice(),t.onReady=[],t.onListen=[],t.preClose=[],t}function TQe(e,t,n,r){let i=n[bQe][e],s=0,o=0;c();function a(l){let d=i[s-1]?.name,f=d?` "${d}"`:"";if(l){l.code==="AVV_ERR_READY_TIMEOUT"?l=SQe(l,new qEn(e,f)):l=yQe[l.code]!=null?SQe(l,new yQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[uM].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";wQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var $ae=w((C4r,xQe)=>{"use strict";var{kTestInternals:$En}=$s();function IQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}xQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):IQe,[$En]:{withResolvers:IQe}}});var HQe=w((M4r,jQe)=>{"use strict";var e_n=Y("node:http"),t_n=Y("node:https"),OQe=Y("node:http2"),n_n=Y("node:dns"),r_n=Y("node:os"),{kState:Ds,kOptions:i_n,kServerBindings:s_n,kHttp2ServerSessions:rT}=$s(),{FSTWRN003:o_n}=xk(),{onListenHookRunner:gW}=KS(),{FST_ERR_REOPENED_CLOSE_SERVER:NQe,FST_ERR_REOPENED_SERVER:CQe,FST_ERR_LISTEN_OPTIONS_INVALID:a_n,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:c_n}=Ko(),u_n=kQe(),MQe=$ae();jQe.exports.createServer=l_n;function DQe(e){return`Server listening at ${e}`}function l_n(e,t){let n=UQe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&o_n("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new a_n("Invalid options.signal");if(this[Ds].aborted=u.signal.aborted,this[Ds].aborted)return this.close();{let f=()=>{this[Ds].aborted=!0,this.close()};u.signal.addEventListener("abort",f,{once:!0})}}let d;if(u.path==null?d=u.host??"localhost":d=u.host,(!Object.hasOwn(u,"host")||u.host==null)&&(u.host=d),d==="localhost"?u.cb=(f,p)=>{if(f){l(f,p);return}PQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),gW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),gW(this)},l===void 0)return d_n.call(this,n,u).then(p=>{let{promise:h,resolve:m}=MQe.withResolvers();return d==="localhost"?PQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),gW(this)}):(m(p),gW(this)),h});this.ready(LQe.call(this,n,u))}let i=typeof n.closeAllConnections=="function",s=typeof n.closeIdleConnections=="function",o=typeof n.closeHttp2Sessions=="function",a=e.forceCloseConnections;if(a==="idle"&&!s)throw new c_n;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:u_n();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function PQe(e,t,n,r,i){this[Ds].listening=!1,n_n.lookup(r.host,{all:!0},(s,o)=>{if(s||this[Ds].aborted){i();return}let a=e.listening&&n.serverFactory,c=0,u=0;if(!a){let d=e.address();for(let f of o)if(f.address!==d.address){c++;let p=Object.assign({},r,{host:f.address,port:d.port,cb:g=>{u++,g||this[s_n].push(h),u===c&&i()}}),h=UQe(n,t),m=()=>{h.close(()=>{}),typeof h.closeAllConnections=="function"&&n.forceCloseConnections===!0&&h.closeAllConnections(),typeof h.closeHttp2Sessions=="function"&&h.closeHttp2Sessions()};h.on("upgrade",e.emit.bind(e,"upgrade")),e.on("unref",m),e.on("close",m),e.on("error",m),this[Ds].listening=!1,LQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function LQe(e,t){let n=r=>{if(e.removeListener("error",n),e.removeListener("listening",n),r)this[Ds].listening=!1,t.cb(r,null);else{let i=FQe.call(this,e,t.listenTextResolver||DQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new NQe,null);if(this[Ds].listening)return t.cb(new CQe,null);e.once("error",n),this[Ds].closing||(e.once("listening",n),e.listen(t),this[Ds].listening=!0)}}function d_n(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new NQe):this[Ds].listening?Promise.reject(new CQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=MQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(FQe.call(this,e,t.listenTextResolver||DQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function UQe(e,t){if(e.serverFactory)return e.serverFactory(t,e);let n=e.https===!0?{}:e.https;if(e.http2){let i=typeof n=="object"?OQe.createSecureServer(n,t):OQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=p_n(i)),i.setTimeout(e.connectionTimeout),i}let r=n?t_n.createServer(n,t):e_n.createServer(e.http,t);return r.keepAliveTimeout=e.keepAliveTimeout,r.requestTimeout=e.requestTimeout,r.setTimeout(e.connectionTimeout),e.maxRequestsPerSocket>0&&(r.maxRequestsPerSocket=e.maxRequestsPerSocket),r}function f_n(e){return e.address==="0.0.0.0"?Object.values(r_n.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function FQe(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=f_n(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[i_n].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function p_n(e){return e[rT]=new Set,e.on("session",function(t){t.once("connect",function(){e[rT].add(t)}),t.once("close",function(){e[rT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[rT].delete(t)}),t.once("goaway",function(){e[rT].delete(t)})}),function(){if(e[rT].size!==0)for(let n of e[rT])n.close()}}});var nce=w((D4r,GQe)=>{"use strict";var ece=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,qQe=/^[\w!#$%&'*+.^`|~-]+$/,BQe=/^[\w!#$%&'*+.^`|~-]+\s*$/,tce=class{#t=!1;#n=!0;#i="";#e="";#r=new Map;#s;constructor(t){if(t==null||t===""||t==="undefined")return;let n=t.indexOf(";");if(n===-1){if(n=t.indexOf("/"),n===-1)return;let c=t.slice(0,n).trimStart().toLowerCase(),u=t.slice(n+1).trimEnd().toLowerCase();qQe.test(c)===!0&&BQe.test(u)===!0&&(this.#t=!0,this.#n=!1,this.#i=c,this.#e=u);return}let r=t.slice(0,n).toLowerCase(),i=t.slice(n+1).trim();if(n=r.indexOf("/"),n===-1)return;let s=r.slice(0,n).trimStart(),o=r.slice(n+1).trimEnd();if(qQe.test(s)===!1||BQe.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=ece.exec(i);for(;a;){let c=a[1],u=a[2];if(u[0]==='"'){if(u.at(-1)!=='"'){this.#r.set(c,"invalid quoted string"),a=ece.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=ece.exec(i)}}get[Symbol.toStringTag](){return"ContentType"}get isEmpty(){return this.#n}get isValid(){return this.#t}get mediaType(){return`${this.#i}/${this.#e}`}get type(){return this.#i}get subtype(){return this.#e}get parameters(){return this.#r}toString(){if(this.#s)return this.#s;let t=[];for(let[r,i]of this.#r.entries())t.push(`${r}="${i}"`);let n=[this.#i,"/",this.#e];return t.length>0&&(n.push("; "),n.push(t.join("; "))),this.#s=n.join(""),this.#s}};GQe.exports=tce});var yW=w((L4r,zQe)=>{"use strict";var{kReplyHasStatusCode:h_n}=$s();function m_n(e,t){if(!e[h_n]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}zQe.exports={setErrorStatusCode:m_n}});var rce=w((U4r,WQe)=>{"use strict";var{kReplyIsError:VQe,kReplyHijacked:g_n}=$s(),{setErrorStatusCode:y_n}=yW(),S_n=Y("node:diagnostics_channel"),fM=S_n.tracingChannel("fastify.request.handler");function E_n(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[g_n]!==!0){n&&fM.asyncStart.publish(n);try{if(r!==void 0||t.sent===!1&&t.raw.headersSent===!1&&t.request.raw.aborted===!1&&t.request.socket&&!t.request.socket.destroyed)try{t.send(r)}catch(i){t[VQe]=!0,t.send(i)}}finally{n&&fM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,y_n(t,r),fM.error.publish(n),fM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[VQe]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&fM.asyncEnd.publish(n)}})}WQe.exports=E_n});var oce=w((F4r,YQe)=>{"use strict";var{kSchemaHeaders:_W,kSchemaParams:ice,kSchemaQuerystring:sce,kSchemaBody:iT,kSchemaResponse:KQe}=$s(),__n=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:b_n}=Ko(),{FSTWRN001:SW}=xk();function T_n(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[KQe]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!__n.test(s))throw new b_n;if(o.content){let a={};for(let c of Object.keys(o.content)){let u=o.content[c].schema;a[c]=t({schema:u,url:r,method:n,httpStatus:s,contentType:c})}i[s]=a}else i[s]=t({schema:o,url:r,method:n,httpStatus:s});return i},{})}function v_n(e,t,n){let{schema:r}=e;if(!r)return;let{method:i,url:s}=e.config||{},o=r.headers;if(o&&(n||Object.getPrototypeOf(o)!==Object.prototype))e[_W]=t({schema:o,method:i,url:s,httpPart:"headers"});else if(o){let a={};Object.keys(o).forEach(c=>{a[c]=o[c]}),a.required instanceof Array&&(a.required=a.required.map(c=>c.toLowerCase())),o.properties&&(a.properties={},Object.keys(o.properties).forEach(c=>{a.properties[c.toLowerCase()]=o.properties[c]})),e[_W]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&SW("headers",i,s);if(r.body){let a=r.body.content;if(a){let c={};for(let u of Object.keys(a)){let l=a[u].schema;c[u]=t({schema:l,method:i,url:s,httpPart:"body",contentType:u})}e[iT]=c}else e[iT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&SW("body",i,s);r.querystring?e[sce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&SW("querystring",i,s),r.params?e[ice]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&SW("params",i,s)}function EW(e,t,n){let r=t[n]===void 0,i;try{i=e?.(r?null:t[n])}catch(o){return o.statusCode=500,o}if(i&&typeof i.then=="function")return i.then(o=>s(o)).catch(o=>o);return s(i);function s(o){return o===!1?e.errors:o&&o.error?o.error:(o&&o.value&&(t[n]=o.value),!1)}}function bW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=EW(e[ice],t,"params");if(s)return typeof s.then!="function"?YS(s,"params",e.schemaErrorFormatter):A_n(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[iT]=="function")s=e[iT];else if(e[iT]){let a=I_n(t.headers["content-type"]),c=e[iT][a];c&&(s=c)}let o=EW(s,t,"body");if(o)return typeof o.then!="function"?YS(o,"body",e.schemaErrorFormatter):R_n(o,e,t)}if(r||!n.skipQuery){let s=EW(e[sce],t,"query");if(s)return typeof s.then!="function"?YS(s,"querystring",e.schemaErrorFormatter):w_n(s,e,t)}let i=EW(e[_W],t,"headers");return i?typeof i.then!="function"?YS(i,"headers",e.schemaErrorFormatter):k_n(i,e,t):!1}function A_n(e,t,n){return e.then(r=>r?YS(r,"params",t.schemaErrorFormatter):bW(t,n,{skipParams:!0}))}function R_n(e,t,n){return e.then(r=>r?YS(r,"body",t.schemaErrorFormatter):bW(t,n,{skipParams:!0,skipBody:!0}))}function w_n(e,t,n){return e.then(r=>r?YS(r,"querystring",t.schemaErrorFormatter):bW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function k_n(e,t,n){return e.then(r=>r?YS(r,"headers",t.schemaErrorFormatter):!1)}function YS(e,t,n){if(e instanceof Error)return e.statusCode=e.statusCode||400,e.code=e.code||"FST_ERR_VALIDATION",e.validationContext=e.validationContext||t,e;let r=n(e,t);return r.statusCode=r.statusCode||400,r.code=r.code||"FST_ERR_VALIDATION",r.validation=e,r.validationContext=t,r}function I_n(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}YQe.exports={symbols:{bodySchema:iT,querystringSchema:sce,responseSchema:KQe,paramsSchema:ice,headersSchema:_W},compileSchemasForValidation:v_n,compileSchemasForSerialization:T_n,validate:bW}});var lce=w((j4r,uce)=>{"use strict";var x_n=Y("node:diagnostics_channel"),O_n=nce(),P_n=rce(),{validate:N_n}=oce(),{preValidationHookRunner:C_n,preHandlerHookRunner:M_n}=KS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:D_n}=Ko(),{setErrorStatusCode:ZQe}=yW(),{kReplyIsError:hM,kRouteContext:bh,kFourOhFourContext:L_n,kSupportedHTTPMethods:JQe}=$s(),pM=x_n.tracingChannel("fastify.request.handler");function U_n(e,t,n){if(n.sent===!0)return;if(e!=null){n[hM]=!0,n.send(e);return}let r=t.method;if(this[JQe].bodyless.has(r)){Pk(t,n);return}if(this[JQe].bodywith.has(r)){let i=t.headers,s=i["content-type"];if(s===void 0){let a=i["content-length"];if(i["transfer-encoding"]===void 0&&(a===void 0||a==="0")){Pk(t,n);return}t[bh].contentTypeParser.run("",Pk,t,n);return}let o=new O_n(s);if(o.isValid===!1){n[hM]=!0,n.status(415).send(new D_n);return}t[bh].contentTypeParser.run(o.toString(),Pk,t,n);return}Pk(t,n)}function Pk(e,t){try{e[bh].preValidation!==null?C_n(e[bh].preValidation,e,t,ace):ace(null,e,t)}catch(n){ace(n,e,t)}}function ace(e,t,n){if(n.sent===!0)return;if(e!=null){n[hM]=!0,n.send(e);return}let r=N_n(n[bh],t);if(r&&typeof r.then=="function"||!1){let s=XQe.bind(null,t,n);r.then(s,s)}else XQe(t,n,r)}function XQe(e,t,n){if(n){if(t[bh].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[bh].preHandler!==null?M_n(e[bh].preHandler,e,t,cce):cce(null,e,t)}function cce(e,t,n){if(n.sent)return;let r=t[bh];if(!pM.hasSubscribers||r[L_n]===null)QQe(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};pM.start.runStores(i,QQe,void 0,e,t,n,i)}}function QQe(e,t,n,r){let i=t[bh];try{if(e!=null){n[hM]=!0,r&&(r.error=e,ZQe(n,e),pM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,ZQe(n,o),pM.error.publish(r)),n[hM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?P_n(s,n,r):n.send(s))}finally{r&&pM.end.publish(r)}}uce.exports=U_n;uce.exports[Symbol.for("internals")]={handler:Pk,preHandlerCallback:cce}});var e$e=w((H4r,$Qe)=>{"use strict";function Nk(){}var F_n={fatal:Nk,error:Nk,warn:Nk,info:Nk,debug:Nk,trace:Nk};Object.defineProperty($Qe,"exports",{get(){return Object.create(F_n)}})});var fce=w((q4r,r$e)=>{"use strict";var mM=e=>e&&typeof e.message=="string",dce=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return mM(n)?n:void 0}else return mM(t)?t:void 0},t$e=(e,t)=>{if(!mM(e))return"";let n=e.stack||"";if(t.has(e))return n+` +causes have become circular...`;let r=dce(e);return r?(t.add(e),n+` +caused by: `+t$e(r,t)):n},j_n=e=>t$e(e,new Set),n$e=(e,t,n)=>{if(!mM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=dce(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+n$e(i,t,s)}else return r},H_n=e=>n$e(e,new Set);r$e.exports={isErrorLike:mM,getErrorCause:dce,stackWithCauses:j_n,messageWithCauses:H_n}});var pce=w((B4r,s$e)=>{"use strict";var q_n=Symbol("circular-ref-tag"),TW=Symbol("pino-raw-err-ref"),i$e=Object.create({},{type:{enumerable:!0,writable:!0,value:void 0},message:{enumerable:!0,writable:!0,value:void 0},stack:{enumerable:!0,writable:!0,value:void 0},aggregateErrors:{enumerable:!0,writable:!0,value:void 0},raw:{enumerable:!1,get:function(){return this[TW]},set:function(e){this[TW]=e}}});Object.defineProperty(i$e,TW,{writable:!0,value:{}});s$e.exports={pinoErrProto:i$e,pinoErrorSymbols:{seen:q_n,rawSymbol:TW}}});var c$e=w((G4r,a$e)=>{"use strict";a$e.exports=mce;var{messageWithCauses:B_n,stackWithCauses:G_n,isErrorLike:o$e}=fce(),{pinoErrProto:z_n,pinoErrorSymbols:V_n}=pce(),{seen:hce}=V_n,{toString:W_n}=Object.prototype;function mce(e){if(!o$e(e))return e;e[hce]=void 0;let t=Object.create(z_n);t.type=W_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=B_n(e),t.stack=G_n(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>mce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];o$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,hce)&&(t[n]=mce(r)):t[n]=r}return delete e[hce],t.raw=e,t}});var l$e=w((z4r,u$e)=>{"use strict";u$e.exports=AW;var{isErrorLike:gce}=fce(),{pinoErrProto:K_n,pinoErrorSymbols:Y_n}=pce(),{seen:vW}=Y_n,{toString:Z_n}=Object.prototype;function AW(e){if(!gce(e))return e;e[vW]=void 0;let t=Object.create(K_n);t.type=Z_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=e.message,t.stack=e.stack,Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>AW(n))),gce(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,vW)&&(t.cause=AW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];gce(r)?Object.prototype.hasOwnProperty.call(r,vW)||(t[n]=AW(r)):t[n]=r}return delete e[vW],t.raw=e,t}});var h$e=w((V4r,p$e)=>{"use strict";p$e.exports={mapHttpRequest:J_n,reqSerializer:f$e};var yce=Symbol("pino-raw-req-ref"),d$e=Object.create({},{id:{enumerable:!0,writable:!0,value:""},method:{enumerable:!0,writable:!0,value:""},url:{enumerable:!0,writable:!0,value:""},query:{enumerable:!0,writable:!0,value:""},params:{enumerable:!0,writable:!0,value:""},headers:{enumerable:!0,writable:!0,value:{}},remoteAddress:{enumerable:!0,writable:!0,value:""},remotePort:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[yce]},set:function(e){this[yce]=e}}});Object.defineProperty(d$e,yce,{writable:!0,value:{}});function f$e(e){let t=e.info||e.socket,n=Object.create(d$e);if(n.id=typeof e.id=="function"?e.id():e.id||(e.info?e.info.id:void 0),n.method=e.method,e.originalUrl)n.url=e.originalUrl;else{let r=e.path;n.url=typeof r=="string"?r:e.url?e.url.path||e.url:void 0}return e.query&&(n.query=e.query),e.params&&(n.params=e.params),n.headers=e.headers,n.remoteAddress=t&&t.remoteAddress,n.remotePort=t&&t.remotePort,n.raw=e.raw||e,n}function J_n(e){return{req:f$e(e)}}});var S$e=w((W4r,y$e)=>{"use strict";y$e.exports={mapHttpResponse:X_n,resSerializer:g$e};var Sce=Symbol("pino-raw-res-ref"),m$e=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Sce]},set:function(e){this[Sce]=e}}});Object.defineProperty(m$e,Sce,{writable:!0,value:{}});function g$e(e){let t=Object.create(m$e);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function X_n(e){return{res:g$e(e)}}});var _ce=w((K4r,E$e)=>{"use strict";var Ece=c$e(),Q_n=l$e(),RW=h$e(),wW=S$e();E$e.exports={err:Ece,errWithCause:Q_n,mapHttpRequest:RW.mapHttpRequest,mapHttpResponse:wW.mapHttpResponse,req:RW.reqSerializer,res:wW.resSerializer,wrapErrorSerializer:function(t){return t===Ece?t:function(r){return t(Ece(r))}},wrapRequestSerializer:function(t){return t===RW.reqSerializer?t:function(r){return t(RW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===wW.resSerializer?t:function(r){return t(wW.resSerializer(r))}}}});var bce=w((Y4r,_$e)=>{"use strict";function $_n(e,t){return t}_$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=$_n;let n=new Error().stack;if(Error.prepareStackTrace=t,!Array.isArray(n))return;let r=n.slice(2),i=[];for(let s of r)s&&i.push(s.getFileName());return i}});var w$e=w((Z4r,R$e)=>{"use strict";function Tce(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Array){let t=[];for(let n=0;n{let m=[...c.slice(0,d),...h];return n(p,m)}:n,i,s);else if(s)v$e(l,a);else{let f=typeof n=="function"?n(tbn(l,a),[...c.slice(0,d),...a]):n;T$e(l,a,f)}}if(o.length===0)u(e,0);else{let l=e;for(let d=0;d0)n?s===r&&(n=!1,r=""):(n=!0,r=s);else if(s==="["&&!n)t++;else if(s==="]"&&!n&&(t--,t<0))throw new Error(`Invalid redaction path (${e})`)}if(t!==0)throw new Error(`Invalid redaction path (${e})`)}function abn(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)obn(t)}function cbn(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;abn(t);let o=ibn(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=sbn(c,o),l=c,d=n;return typeof n=="function"&&(d=n),nbn(u,t,d,s),r===!1?(u.restore=function(){return Tce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}R$e.exports=cbn});var Ck=w((J4r,k$e)=>{"use strict";var ubn=Symbol("pino.setLevel"),lbn=Symbol("pino.getLevel"),dbn=Symbol("pino.levelVal"),fbn=Symbol("pino.levelComp"),pbn=Symbol("pino.useLevelLabels"),hbn=Symbol("pino.useOnlyCustomLevels"),mbn=Symbol("pino.mixin"),gbn=Symbol("pino.lsCache"),ybn=Symbol("pino.chindings"),Sbn=Symbol("pino.asJson"),Ebn=Symbol("pino.write"),_bn=Symbol("pino.redactFmt"),bbn=Symbol("pino.time"),Tbn=Symbol("pino.timeSliceIndex"),vbn=Symbol("pino.stream"),Abn=Symbol("pino.stringify"),Rbn=Symbol("pino.stringifySafe"),wbn=Symbol("pino.stringifiers"),kbn=Symbol("pino.end"),Ibn=Symbol("pino.formatOpts"),xbn=Symbol("pino.messageKey"),Obn=Symbol("pino.errorKey"),Pbn=Symbol("pino.nestedKey"),Nbn=Symbol("pino.nestedKeyStr"),Cbn=Symbol("pino.mixinMergeStrategy"),Mbn=Symbol("pino.msgPrefix"),Dbn=Symbol("pino.wildcardFirst"),Lbn=Symbol.for("pino.serializers"),Ubn=Symbol.for("pino.formatters"),Fbn=Symbol.for("pino.hooks"),jbn=Symbol.for("pino.metadata");k$e.exports={setLevelSym:ubn,getLevelSym:lbn,levelValSym:dbn,levelCompSym:fbn,useLevelLabelsSym:pbn,mixinSym:mbn,lsCacheSym:gbn,chindingsSym:ybn,asJsonSym:Sbn,writeSym:Ebn,serializersSym:Lbn,redactFmtSym:_bn,timeSym:bbn,timeSliceIndexSym:Tbn,streamSym:vbn,stringifySym:Abn,stringifySafeSym:Rbn,stringifiersSym:wbn,endSym:kbn,formatOptsSym:Ibn,messageKeySym:xbn,errorKeySym:Obn,nestedKeySym:Pbn,wildcardFirstSym:Dbn,needsMetadataGsym:jbn,useOnlyCustomLevelsSym:hbn,formattersSym:Ubn,hooksSym:Fbn,nestedKeyStrSym:Nbn,mixinMergeStrategySym:Cbn,msgPrefixSym:Mbn}});var Ace=w((X4r,P$e)=>{"use strict";var I$e=w$e(),{redactFmtSym:Hbn,wildcardFirstSym:IW}=Ck(),vce=/[^.[\]]+|\[([^[\]]*?)\]/g,x$e="[Redacted]",O$e=!1;function qbn(e,t){let{paths:n,censor:r,remove:i}=Bbn(e),s=n.reduce((c,u)=>{vce.lastIndex=0;let l=vce.exec(u),d=vce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=IW),d===null)return c[f]=null,c;if(c[f]===null)return c;let{index:p}=d,h=`${u.substr(p,u.length-1)}`;return c[f]=c[f]||[],f!==IW&&c[f].length===0&&c[f].push(...c[IW]||[]),f===IW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[Hbn]:I$e({paths:n,censor:r,serialize:t,strict:O$e,remove:i})},a=(...c)=>t(typeof r=="function"?r(...c):r);return[...Object.keys(s),...Object.getOwnPropertySymbols(s)].reduce((c,u)=>{if(s[u]===null)c[u]=l=>a(l,[u]);else{let l=typeof r=="function"?(d,f)=>r(d,[u,...f]):r;c[u]=I$e({paths:s[u],censor:l,serialize:t,strict:O$e,remove:i})}return c},o)}function Bbn(e){if(Array.isArray(e))return e={paths:e,censor:x$e},e;let{paths:t,censor:n=x$e,remove:r}=e;if(Array.isArray(t)===!1)throw Error("pino \u2013 redact must contain an array of strings");return r===!0&&(n=void 0),{paths:t,censor:n,remove:r}}P$e.exports=qbn});var M$e=w((Q4r,C$e)=>{"use strict";var Gbn=()=>"",zbn=()=>`,"time":${Date.now()}`,Vbn=()=>`,"time":${Math.round(Date.now()/1e3)}`,Wbn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,Kbn=1000000n,N$e=1000000000n,Ybn=BigInt(Date.now())*Kbn,Zbn=process.hrtime.bigint(),Jbn=()=>{let e=process.hrtime.bigint()-Zbn,t=Ybn+e,n=t/N$e,r=t%N$e,i=Number(n*1000n+r/1000000n),s=new Date(i),o=s.getUTCFullYear(),a=(s.getUTCMonth()+1).toString().padStart(2,"0"),c=s.getUTCDate().toString().padStart(2,"0"),u=s.getUTCHours().toString().padStart(2,"0"),l=s.getUTCMinutes().toString().padStart(2,"0"),d=s.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${o}-${a}-${c}T${u}:${l}:${d}.${r.toString().padStart(9,"0")}Z"`};C$e.exports={nullTime:Gbn,epochTime:zbn,unixTime:Vbn,isoTime:Wbn,isoTimeNano:Jbn}});var L$e=w(($4r,D$e)=>{"use strict";function Xbn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}D$e.exports=Qbn;function Qbn(e,t,n){var r=n&&n.stringify||Xbn,i=1;if(typeof e=="object"&&e!==null){var s=t.length+i;if(s===1)return e;var o=new Array(s);o[0]=r(e);for(var a=1;a-1?d:0,e.charCodeAt(p+1)){case 100:case 102:if(l>=c||t[l]==null)break;d=c||t[l]==null)break;d=c||t[l]===void 0)break;d",d=p+2,p++;break}u+=r(t[l]),d=p+2,p++;break;case 115:if(l>=c)break;d{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let t=function(n){if((n>0&&n<1/0)===!1)throw typeof n!="number"&&typeof n!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(e,0,0,Number(n))},e=new Int32Array(new SharedArrayBuffer(4));Rce.exports=t}else{let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let r=Date.now()+Number(t);for(;r>Date.now(););};Rce.exports=e}});var z$e=w((tKr,G$e)=>{"use strict";var Si=Y("fs"),$bn=Y("events"),eTn=Y("util").inherits,U$e=Y("path"),Ice=wce(),tTn=Y("assert"),xW=100,OW=Buffer.allocUnsafe(0),nTn=16*1024,F$e="buffer",j$e="utf8",[rTn,iTn]=(process.versions.node||"0.0").split(".").map(Number),sTn=rTn>=22&&iTn>=7;function H$e(e,t){t._opening=!0,t._writing=!0,t._asyncDrainScheduled=!1;function n(s,o){if(s){t._reopening=!1,t._writing=!1,t._opening=!1,t.sync?process.nextTick(()=>{t.listenerCount("error")>0&&t.emit("error",s)}):t.emit("error",s);return}let a=t._reopening;t.fd=o,t.file=e,t._reopening=!1,t._opening=!1,t._writing=!1,t.sync?process.nextTick(()=>t.emit("ready")):t.emit("ready"),!t.destroyed&&(!t._writing&&t._len>t.minLength||t._flushPending?t._actualWrite():a&&process.nextTick(()=>t.emit("drain")))}let r=t.append?"a":"w",i=t.mode;if(t.sync)try{t.mkdir&&Si.mkdirSync(U$e.dirname(e),{recursive:!0});let s=Si.openSync(e,r,i);n(null,s)}catch(s){throw n(s),s}else t.mkdir?Si.mkdir(U$e.dirname(e),{recursive:!0},s=>{if(s)return n(s);Si.open(e,r,i,n)}):Si.open(e,r,i,n)}function xf(e){if(!(this instanceof xf))return new xf(e);let{fd:t,dest:n,minLength:r,maxLength:i,maxWrite:s,periodicFlush:o,sync:a,append:c=!0,mkdir:u,retryEAGAIN:l,fsync:d,contentMode:f,mode:p}=e||{};t=t||n,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(r||0,16387),this.file=null,this.destroyed=!1,this.minLength=r||0,this.maxLength=i||0,this.maxWrite=s||nTn,this._periodicFlush=o||0,this._periodicFlushTimer=void 0,this.sync=a||!1,this.writable=!0,this._fsync=d||!1,this.append=c||!1,this.mode=p,this.retryEAGAIN=l||(()=>!0),this.mkdir=u||!1;let h,m;if(f===F$e)this._writingBuf=OW,this.write=cTn,this.flush=lTn,this.flushSync=fTn,this._actualWrite=hTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===j$e)this._writingBuf="",this.write=aTn,this.flush=uTn,this.flushSync=dTn,this._actualWrite=pTn,h=()=>Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8"),m=()=>Buffer.isBuffer(this._writingBuf)?Si.write(this.fd,this._writingBuf,this.release):Si.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${j$e}" and "${F$e}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")H$e(t,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(g,y)=>{if(g){if((g.code==="EAGAIN"||g.code==="EBUSY")&&this.retryEAGAIN(g,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{Ice(xW),this.release(void 0,0)}catch(_){this.release(_)}else setTimeout(m,xW);else this._writing=!1,this.emit("error",g);return}this.emit("write",y);let E=kce(this._writingBuf,this._len,y);if(this._len=E.len,this._writingBuf=E.writingBuf,this._writingBuf.length){if(!this.sync){m();return}try{do{let _=h(),b=kce(this._writingBuf,this._len,_);this._len=b.len,this._writingBuf=b.writingBuf}while(this._writingBuf.length)}catch(_){this.release(_);return}}this._fsync&&Si.fsyncSync(this.fd);let S=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):S>this.minLength?this._actualWrite():this._ending?S>0?this._actualWrite():(this._writing=!1,PW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(oTn,this)):this.emit("drain"))},this.on("newListener",function(g){g==="drain"&&(this._asyncDrainScheduled=!1)}),this._periodicFlush!==0&&(this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref())}function kce(e,t,n){return typeof e=="string"&&(e=Buffer.from(e)),t=Math.max(t-n,0),e=e.subarray(n),{writingBuf:e,len:t}}function oTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}eTn(xf,$bn);function q$e(e,t){return e.length===0?OW:e.length===1?e[0]:Buffer.concat(e,t)}function aTn(e){if(this.destroyed)throw new Error("SonicBoom destroyed");e=""+e;let t=Buffer.byteLength(e),n=this._len+t,r=this._bufs;return this.maxLength&&n>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(e):r[r.length-1]+=e,this._len=n,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(n.push([e]),r.push(e.length)):(n[n.length-1].push(e),r[r.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{if(this._fsync)this._flushPending=!1,e();else try{Si.fsync(this.fd,r=>{this._flushPending=!1,e(r)})}catch(r){e(r)}this.off("error",n)},n=r=>{this._flushPending=!1,e(r),this.off("drain",t)};this.once("drain",t),this.once("error",n)}function uTn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&B$e.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function lTn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&B$e.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}xf.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&Si.close(t,n=>{if(n)return this.emit("error",n)})}),H$e(this.file,this)};xf.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():PW(this)))};function dTn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e.length;){e.length<=0&&(e=this._bufs[0]);try{let t=Buffer.isBuffer(e)?Si.writeSync(this.fd,e):Si.writeSync(this.fd,e,"utf8"),n=kce(e,this._len,t);e=n.writingBuf,this._len=n.len,e.length<=0&&this._bufs.shift()}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;Ice(xW)}}try{Si.fsyncSync(this.fd)}catch{}}function fTn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=OW);let e=OW;for(;this._bufs.length||e.length;){e.length<=0&&(e=q$e(this._bufs[0],this._lens[0]));try{let t=Si.writeSync(this.fd,e);e=e.subarray(t),this._len=Math.max(this._len-t,0),e.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;Ice(xW)}}}xf.prototype.destroy=function(){this.destroyed||PW(this)};function pTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let t=Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else Si.write(this.fd,this._writingBuf,e)}function hTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:q$e(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=Si.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else sTn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function PW(e){if(e.fd===-1){e.once("ready",PW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],tTn(typeof e.fd=="number",`sonic.fd must be a number, got ${typeof e.fd}`);try{Si.fsync(e.fd,t)}catch{}function t(){e.fd!==1&&e.fd!==2?Si.close(e.fd,n):n()}function n(r){if(r){e.emit("error",r);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}xf.SonicBoom=xf;xf.default=xf;G$e.exports=xf});var xce=w((nKr,Z$e)=>{"use strict";var Of={exit:[],beforeExit:[]},V$e={exit:yTn,beforeExit:STn},Mk;function mTn(){Mk===void 0&&(Mk=new FinalizationRegistry(ETn))}function gTn(e){Of[e].length>0||process.on(e,V$e[e])}function W$e(e){Of[e].length>0||(process.removeListener(e,V$e[e]),Of.exit.length===0&&Of.beforeExit.length===0&&(Mk=void 0))}function yTn(){K$e("exit")}function STn(){K$e("beforeExit")}function K$e(e){for(let t of Of[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Of[e]=[]}function ETn(e){for(let t of["exit","beforeExit"]){let n=Of[t].indexOf(e);Of[t].splice(n,n+1),W$e(t)}}function Y$e(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");gTn(e);let r=new WeakRef(t);r.fn=n,mTn(),Mk.register(t,r),Of[e].push(r)}function _Tn(e,t){Y$e("exit",e,t)}function bTn(e,t){Y$e("beforeExit",e,t)}function TTn(e){if(Mk!==void 0){Mk.unregister(e);for(let t of["exit","beforeExit"])Of[t]=Of[t].filter(n=>{let r=n.deref();return r&&r!==e}),W$e(t)}}Z$e.exports={register:_Tn,registerBeforeExit:bTn,unregister:TTn}});var J$e=w((rKr,vTn)=>{vTn.exports={name:"thread-stream",version:"4.0.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^22.0.0","@yao-pkg/pkg":"^6.0.0",borp:"^0.21.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",husky:"^9.0.6",neostandard:"^0.12.2","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:"npm run lint && npm run build && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:ci":"npm run lint && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:yarn":"npm run transpile && borp --pattern 'test/*.test.js'",transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina ",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var Q$e=w((iKr,X$e)=>{"use strict";function ATn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{let a=Atomics.load(e,t);if(a===n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,a,c);u.async?u.value.then(o):setImmediate(o)};o()}function RTn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{if(Atomics.load(e,t)!==n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,n,c);u.async?u.value.then(o):setImmediate(o)};o()}X$e.exports={wait:ATn,waitDiff:RTn}});var eet=w((sKr,$$e)=>{"use strict";$$e.exports={WRITE_INDEX:4,READ_INDEX:8}});var set=w((oKr,iet)=>{"use strict";var{version:wTn}=J$e(),{EventEmitter:kTn}=Y("events"),{Worker:ITn}=Y("worker_threads"),{join:xTn}=Y("path"),{pathToFileURL:OTn}=Y("url"),{wait:PTn}=Q$e(),{WRITE_INDEX:Iu,READ_INDEX:ku}=eet(),NTn=Y("buffer"),CTn=Y("assert"),_e=Symbol("kImpl"),MTn=NTn.constants.MAX_STRING_LENGTH,gM=class{constructor(t){this._value=t}deref(){return this._value}},CW=class{register(){}unregister(){}},DTn=process.env.NODE_V8_COVERAGE?CW:global.FinalizationRegistry||CW,LTn=process.env.NODE_V8_COVERAGE?gM:global.WeakRef||gM,tet=new DTn(e=>{e.exited||e.terminate()});function UTn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||xTn(__dirname,"lib","worker.js"),o=new ITn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:OTn(n).href,dataBuf:e[_e].dataBuf,stateBuf:e[_e].stateBuf,workerData:{$context:{threadStreamVersion:wTn},...r}}});return o.stream=new gM(e),o.on("message",FTn),o.on("exit",ret),tet.register(e,o),o}function net(e){CTn(!e[_e].sync),e[_e].needDrain&&(e[_e].needDrain=!1,e.emit("drain"))}function NW(e){let t=Atomics.load(e[_e].state,Iu),n=e[_e].data.length-t;if(n>0){if(e[_e].buf.length===0){e[_e].flushing=!1,e[_e].ending?Mce(e):e[_e].needDrain&&process.nextTick(net,e);return}let r=e[_e].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[_e].buf=e[_e].buf.slice(n),MW(e,r,NW.bind(null,e))):e.flush(()=>{if(!e.destroyed){for(Atomics.store(e[_e].state,ku,0),Atomics.store(e[_e].state,Iu,0),Atomics.notify(e[_e].state,ku);i>e[_e].data.length;)n=n/2,r=e[_e].buf.slice(0,n),i=Buffer.byteLength(r);e[_e].buf=e[_e].buf.slice(n),MW(e,r,NW.bind(null,e))}})}else if(n===0){if(t===0&&e[_e].buf.length===0)return;e.flush(()=>{Atomics.store(e[_e].state,ku,0),Atomics.store(e[_e].state,Iu,0),Atomics.notify(e[_e].state,ku),NW(e)})}else Th(e,new Error("overwritten"))}function FTn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new LTn(t),t.flush(()=>{t[_e].ready=!0,t.emit("ready")});break;case"ERROR":Th(t,e.err);break;case"EVENT":Array.isArray(e.args)?t.emit(e.name,...e.args):t.emit(e.name,e.args);break;case"WARNING":process.emitWarning(e.err);break;default:Th(t,new Error("this should not happen: "+e.code))}}function ret(e){let t=this.stream.deref();t!==void 0&&(tet.unregister(t),t.worker.exited=!0,t.worker.off("exit",ret),Th(t,e!==0?new Error("the worker thread exited"):null))}var Pce=class extends kTn{constructor(t={}){if(super(),t.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[_e]={},this[_e].stateBuf=new SharedArrayBuffer(128),this[_e].state=new Int32Array(this[_e].stateBuf),this[_e].dataBuf=new SharedArrayBuffer(t.bufferSize||4*1024*1024),this[_e].data=Buffer.from(this[_e].dataBuf),this[_e].sync=t.sync||!1,this[_e].ending=!1,this[_e].ended=!1,this[_e].needDrain=!1,this[_e].destroyed=!1,this[_e].flushing=!1,this[_e].ready=!1,this[_e].finished=!1,this[_e].errored=null,this[_e].closed=!1,this[_e].buf="",this.worker=UTn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[_e].destroyed)return Nce(this,new Error("the worker has exited")),!1;if(this[_e].ending)return Nce(this,new Error("the worker is ending")),!1;if(this[_e].flushing&&this[_e].buf.length+t.length>=MTn)try{Oce(this),this[_e].flushing=!0}catch(n){return Th(this,n),!1}if(this[_e].buf+=t,this[_e].sync)try{return Oce(this),!0}catch(n){return Th(this,n),!1}return this[_e].flushing||(this[_e].flushing=!0,setImmediate(NW,this)),this[_e].needDrain=this[_e].data.length-this[_e].buf.length-Atomics.load(this[_e].state,Iu)<=0,!this[_e].needDrain}end(){this[_e].destroyed||(this[_e].ending=!0,Mce(this))}flush(t){if(this[_e].destroyed){typeof t=="function"&&process.nextTick(t,new Error("the worker has exited"));return}let n=Atomics.load(this[_e].state,Iu);PTn(this[_e].state,ku,n,1/0,(r,i)=>{if(r){Th(this,r),process.nextTick(t,r);return}if(i==="not-equal"){this.flush(t);return}process.nextTick(t)})}flushSync(){this[_e].destroyed||(Oce(this),Cce(this))}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[_e].ready}get destroyed(){return this[_e].destroyed}get closed(){return this[_e].closed}get writable(){return!this[_e].destroyed&&!this[_e].ending}get writableEnded(){return this[_e].ending}get writableFinished(){return this[_e].finished}get writableNeedDrain(){return this[_e].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[_e].errored}};function Nce(e,t){setImmediate(()=>{e.emit("error",t)})}function Th(e,t){e[_e].destroyed||(e[_e].destroyed=!0,t&&(e[_e].errored=t,Nce(e,t)),e.worker.exited?setImmediate(()=>{e[_e].closed=!0,e.emit("close")}):e.worker.terminate().catch(()=>{}).then(()=>{e[_e].closed=!0,e.emit("close")}))}function MW(e,t,n){let r=Atomics.load(e[_e].state,Iu),i=Buffer.byteLength(t);return e[_e].data.write(t,r),Atomics.store(e[_e].state,Iu,r+i),Atomics.notify(e[_e].state,Iu),n(),!0}function Mce(e){if(!(e[_e].ended||!e[_e].ending||e[_e].flushing)){e[_e].ended=!0;try{e.flushSync();let t=Atomics.load(e[_e].state,ku);Atomics.store(e[_e].state,Iu,-1),Atomics.notify(e[_e].state,Iu);let n=0;for(;t!==-1;){if(Atomics.wait(e[_e].state,ku,t,1e3),t=Atomics.load(e[_e].state,ku),t===-2){Th(e,new Error("end() failed"));return}if(++n===10){Th(e,new Error("end() took too long (10s)"));return}}process.nextTick(()=>{e[_e].finished=!0,e.emit("finish")})}catch(t){Th(e,t)}}}function Oce(e){let t=()=>{e[_e].ending?Mce(e):e[_e].needDrain&&process.nextTick(net,e)};for(e[_e].flushing=!1;e[_e].buf.length!==0;){let n=Atomics.load(e[_e].state,Iu),r=e[_e].data.length-n;if(r===0){Cce(e),Atomics.store(e[_e].state,ku,0),Atomics.store(e[_e].state,Iu,0),Atomics.notify(e[_e].state,ku);continue}else if(r<0)throw new Error("overwritten");let i=e[_e].buf.slice(0,r),s=Buffer.byteLength(i);if(s<=r)e[_e].buf=e[_e].buf.slice(r),MW(e,i,t);else{for(Cce(e),Atomics.store(e[_e].state,ku,0),Atomics.store(e[_e].state,Iu,0),Atomics.notify(e[_e].state,ku);s>e[_e].buf.length;)r=r/2,i=e[_e].buf.slice(0,r),s=Buffer.byteLength(i);e[_e].buf=e[_e].buf.slice(r),MW(e,i,t)}}}function Cce(e){if(e[_e].flushing)throw new Error("unable to flush while flushing");let t=Atomics.load(e[_e].state,Iu),n=0;for(;;){let r=Atomics.load(e[_e].state,ku);if(r===-2)throw Error("_flushSync failed");if(r!==t)Atomics.wait(e[_e].state,ku,r,1e3);else break;if(++n===10)throw new Error("_flushSync took too long (10s)")}}iet.exports=Pce});var Uce=w((aKr,cet)=>{"use strict";var{createRequire:jTn}=Y("module"),{existsSync:HTn}=Y("node:fs"),qTn=bce(),{join:Dce,isAbsolute:aet,sep:BTn}=Y("node:path"),{fileURLToPath:GTn}=Y("node:url"),zTn=wce(),Lce=xce(),VTn=set();function WTn(e){Lce.register(e,XTn),Lce.registerBeforeExit(e,QTn),e.on("close",function(){Lce.unregister(e)})}function KTn(){let e=process.execArgv;for(let t=0;th.target).map(h=>({...h,target:p(h.target)})),c.pipelines=n.filter(h=>h.pipeline).map(h=>h.pipeline.map(m=>({...m,level:h.level,target:p(m.target)})))):t&&(d=l["pino-worker"]||Dce(__dirname,"worker.js"),c.pipelines=[t.map(h=>({...h,target:p(h.target)}))]),r&&(c.levels=r),i&&(c.dedupe=i),c.pinoWillSendConfig=!0;let f=n||t?"pino.transport":d;return JTn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,aet(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Dce(__dirname,"..","file.js");let m;for(let g of u)try{let y=g==="node:repl"?process.cwd()+BTn:g;m=jTn(y).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}cet.exports=$Tn});var UW=w((uKr,vet)=>{"use strict";var evn=Y("node:diagnostics_channel"),uet=L$e(),{mapHttpRequest:tvn,mapHttpResponse:nvn}=_ce(),jce=z$e(),det=xce(),{lsCacheSym:rvn,chindingsSym:get,writeSym:fet,serializersSym:yet,formatOptsSym:pet,endSym:ivn,stringifiersSym:Eet,stringifySym:_et,stringifySafeSym:Hce,wildcardFirstSym:bet,nestedKeySym:svn,formattersSym:Tet,messageKeySym:ovn,errorKeySym:avn,nestedKeyStrSym:cvn,msgPrefixSym:DW}=Ck(),{isMainThread:uvn}=Y("worker_threads"),lvn=Uce(),[dvn]=process.versions.node.split(".").map(e=>Number(e)),het=evn.tracingChannel("pino_asJson"),Fce=dvn>=25?e=>JSON.stringify(e):pvn;function Dk(){}function fvn(e,t){if(!t)return n;return function(...i){t.call(this,i,n,e)};function n(r,...i){if(typeof r=="object"){let s=r;r!==null&&(r.method&&r.headers&&r.socket?r=tvn(r):typeof r.setHeader=="function"&&(r=nvn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[DW]=="string"&&s!==void 0&&s!==null&&(s=this[DW]+s),this[fet](r,uet(s,o,this[pet]),e)}else{let s=r===void 0?i.shift():r;typeof this[DW]=="string"&&s!==void 0&&s!==null&&(s=this[DW]+s),this[fet](null,uet(s,i,this[pet]),e)}}}function pvn(e){let t="",n=0,r=!1,i=255,s=e.length;if(s>100)return JSON.stringify(e);for(var o=0;o=32;o++)i=e.charCodeAt(o),(i===34||i===92)&&(t+=e.slice(n,o)+"\\",n=o,r=!0);return r?t+=e.slice(n):t=e,i<32?JSON.stringify(e):'"'+t+'"'}function hvn(e,t,n,r){if(het.hasSubscribers===!1)return met.call(this,e,t,n,r);let i={instance:this,arguments};return het.traceSync(met,i,this,e,t,n,r)}function met(e,t,n,r){let i=this[_et],s=this[Hce],o=this[Eet],a=this[ivn],c=this[get],u=this[yet],l=this[Tet],d=this[ovn],f=this[avn],p=this[rvn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[bet],g="";for(let E in e)if(h=e[E],Object.prototype.hasOwnProperty.call(e,E)&&h!==void 0){u[E]?h=u[E](h):E===f&&u.err&&(h=u.err(h));let S=o[E]||m;switch(typeof h){case"undefined":case"function":continue;case"number":Number.isFinite(h)===!1&&(h=null);case"boolean":S&&(h=S(h));break;case"string":h=(S||Fce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let _=Fce(E);g+=","+_+":"+h}let y="";if(t!==void 0){h=u[d]?u[d](t):t;let E=o[d]||m;switch(typeof h){case"function":break;case"number":Number.isFinite(h)===!1&&(h=null);case"boolean":E&&(h=E(h)),y=',"'+d+'":'+h;break;case"string":h=(E||Fce)(h),y=',"'+d+'":'+h;break;default:h=(E||i)(h,s),y=',"'+d+'":'+h}}return this[svn]&&g?p+this[cvn]+g.slice(1)+"}"+y+a:p+g+y+a}function mvn(e,t){let n,r=e[get],i=e[_et],s=e[Hce],o=e[Eet],a=o[bet],c=e[yet],u=e[Tet].bindings;t=u(t);for(let l in t)if(n=t[l],((l.length<5||l!=="level"&&l!=="serializers"&&l!=="formatters"&&l!=="customLevels")&&t.hasOwnProperty(l)&&n!==void 0)===!0){if(n=c[l]?c[l](n):n,n=(o[l]||a||i)(n,s),n===void 0)continue;r+=',"'+l+'":'+n}return r}function gvn(e){return e.write!==e.constructor.prototype.write}function LW(e){let t=new jce(e);return t.on("error",n),!e.sync&&uvn&&(det.register(t,yvn),t.on("close",function(){det.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Dk,t.end=Dk,t.flushSync=Dk,t.destroy=Dk;return}t.removeListener("error",n),t.emit("error",r)}}function yvn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function Svn(e){return function(n,r,i={},s){if(typeof i=="string")s=LW({dest:i}),i={};else if(typeof s=="string"){if(i&&i.transport)throw Error("only one of option.transport or stream can be specified");s=LW({dest:s})}else if(i instanceof jce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof jce||i.transport.writable||i.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(i.transport.targets&&i.transport.targets.length&&i.formatters&&typeof i.formatters.level=="function")throw Error("option.transport.targets do not allow custom level formatters");let c;i.customLevels&&(c=i.useOnlyCustomLevels?i.customLevels:Object.assign({},i.levels,i.customLevels)),s=lvn({caller:r,...i.transport,levels:c})}if(i=Object.assign({},e,i),i.serializers=Object.assign({},e.serializers,i.serializers),i.formatters=Object.assign({},e.formatters,i.formatters),i.prettyPrint)throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:o,onChild:a}=i;return o===!1&&(i.level="silent"),a||(i.onChild=Dk),s||(gvn(process.stdout)?s=process.stdout:s=LW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function Evn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Hce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function _vn(e,t,n){return{level:e,bindings:t,log:n}}function bvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}vet.exports={noop:Dk,buildSafeSonicBoom:LW,asChindings:mvn,asJson:hvn,genLog:fvn,createArgsNormalizer:Svn,stringify:Evn,buildFormatters:_vn,normalizeDestFileDescriptor:bvn}});var FW=w((lKr,Aet)=>{var Tvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},vvn={ASC:"ASC",DESC:"DESC"};Aet.exports={DEFAULT_LEVELS:Tvn,SORTING_ORDER:vvn}});var Gce=w((dKr,Iet)=>{"use strict";var{lsCacheSym:Avn,levelValSym:qce,useOnlyCustomLevelsSym:Rvn,streamSym:wvn,formattersSym:kvn,hooksSym:Ivn,levelCompSym:Ret}=Ck(),{noop:xvn,genLog:sT}=UW(),{DEFAULT_LEVELS:vh,SORTING_ORDER:wet}=FW(),ket={fatal:e=>{let t=sT(vh.fatal,e);return function(...n){let r=this[wvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>sT(vh.error,e),warn:e=>sT(vh.warn,e),info:e=>sT(vh.info,e),debug:e=>sT(vh.debug,e),trace:e=>sT(vh.trace,e)},Bce=Object.keys(vh).reduce((e,t)=>(e[vh[t]]=t,e),{}),Ovn=Object.keys(Bce).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function Pvn(e){let t=e[kvn].level,{labels:n}=e.levels,r={};for(let i in n){let s=t(n[i],Number(i));r[i]=JSON.stringify(s).slice(0,-1)}return e[Avn]=r,e}function Nvn(e,t){if(t)return!1;switch(e){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function Cvn(e){let{labels:t,values:n}=this.levels;if(typeof e=="number"){if(t[e]===void 0)throw Error("unknown level value"+e);e=t[e]}if(n[e]===void 0)throw Error("unknown level "+e);let r=this[qce],i=this[qce]=n[e],s=this[Rvn],o=this[Ret],a=this[Ivn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=xvn;continue}this[c]=Nvn(c,s)?ket[c](a):sT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Mvn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function Dvn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[Ret](n,this[qce])}function Lvn(e,t,n){return e===wet.DESC?t<=n:t>=n}function Uvn(e){return typeof e=="string"?Lvn.bind(null,e):e}function Fvn(e=null,t=!1){let n=e?Object.keys(e).reduce((s,o)=>(s[e[o]]=o,s),{}):null,r=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),t?null:Bce,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:vh,e);return{labels:r,values:i}}function jvn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(Bce).map(s=>+s),1/0).includes(e))throw Error(`default level:${e} must be included in custom levels`);return}let r=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),n?null:vh,t);if(!(e in r))throw Error(`default level:${e} must be included in custom levels`)}function Hvn(e,t){let{labels:n,values:r}=e;for(let i in t){if(i in r)throw Error("levels cannot be overridden");if(t[i]in n)throw Error("pre-existing level values cannot be used for new levels")}}function qvn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(wet).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Iet.exports={initialLsCache:Ovn,genLsCache:Pvn,levelMethods:ket,getLevel:Mvn,setLevel:Cvn,isLevelEnabled:Dvn,mappings:Fvn,assertNoLevelCollisions:Hvn,assertDefaultLevelFound:jvn,genLevelComparison:Uvn,assertLevelComparison:qvn}});var zce=w((fKr,xet)=>{"use strict";xet.exports={version:"10.3.1"}});var Uet=w((hKr,Let)=>{"use strict";var{EventEmitter:Bvn}=Y("node:events"),{lsCacheSym:Gvn,levelValSym:zvn,setLevelSym:Wce,getLevelSym:Oet,chindingsSym:HW,mixinSym:Vvn,asJsonSym:Net,writeSym:Wvn,mixinMergeStrategySym:Kvn,timeSym:Yvn,timeSliceIndexSym:Zvn,streamSym:Cet,serializersSym:oT,formattersSym:yM,errorKeySym:Jvn,messageKeySym:Xvn,useOnlyCustomLevelsSym:Qvn,needsMetadataGsym:$vn,redactFmtSym:eAn,stringifySym:tAn,formatOptsSym:nAn,stringifiersSym:rAn,msgPrefixSym:Kce,hooksSym:iAn}=Ck(),{getLevel:sAn,setLevel:oAn,isLevelEnabled:aAn,mappings:cAn,initialLsCache:uAn,genLsCache:lAn,assertNoLevelCollisions:dAn}=Gce(),{asChindings:Yce,asJson:fAn,buildFormatters:Vce,stringify:Pet,noop:Met}=UW(),{version:pAn}=zce(),hAn=Ace(),mAn=class{},Det={constructor:mAn,child:gAn,bindings:yAn,setBindings:SAn,flush:bAn,isLevelEnabled:aAn,version:pAn,get level(){return this[Oet]()},set level(e){this[Wce](e)},get levelVal(){return this[zvn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[Kce]},get[Symbol.toStringTag](){return"Pino"},[Gvn]:uAn,[Wvn]:_An,[Net]:fAn,[Oet]:sAn,[Wce]:oAn};Object.setPrototypeOf(Det,Bvn.prototype);Let.exports=function(){return Object.create(Det)};var jW=e=>e;function gAn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[oT],r=this[yM],i=Object.create(this);if(t==null)return i[yM].bindings!==jW&&(i[yM]=Vce(r.level,jW,r.log)),i[HW]=Yce(i,e),this.onChild!==Met&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[oT]=Object.create(null);for(let u in n)i[oT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:SM}=Object.prototype,cT=Xce();cT.configure=Xce;cT.stringify=cT;cT.default=cT;Qce.stringify=cT;Qce.configure=Xce;Het.exports=cT;var TAn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function ZS(e){return e.length<5e3&&!TAn.test(e)?`"${e}"`:JSON.stringify(e)}function Zce(e,t){if(e.length>200||t)return e.sort(t);for(let n=1;nr;)e[i]=e[i-1],i--;e[i]=r}return e}var vAn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function Jce(e){return vAn.call(e)!==void 0&&e.length!==0}function Fet(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function aT(e){return e===1?"1 item":`${e} items`}function kAn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function IAn(e){if(SM.call(e,"strict")){let t=e.strict;if(typeof t!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(t)return n=>{let r=`Object can not safely be stringified. Received type ${typeof n}`;throw typeof n!="function"&&(r+=` (${n.toString()})`),new Error(r)}}}function Xce(e){e={...e};let t=IAn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=AAn(e),r=wAn(e,"bigint"),i=RAn(e),s=typeof i=="function"?i:void 0,o=jet(e,"maximumDepth"),a=jet(e,"maximumBreadth");function c(p,h,m,g,y,E){let S=h[p];switch(typeof S=="object"&&S!==null&&typeof S.toJSON=="function"&&(S=S.toJSON(p)),S=g.call(h,p,S),typeof S){case"string":return ZS(S);case"object":{if(S===null)return"null";if(m.indexOf(S)!==-1)return n;let _="",b=",",T=E;if(Array.isArray(S)){if(S.length===0)return"[]";if(oa){let V=S.length-a-1;_+=`${b}"... ${rT(V)} not stringified"`}return g!==""&&(_+=` -${T}`),m.pop(),`[${_}]`}let A=Object.keys(S),R=A.length;if(R===0)return"{}";if(oa){let P=R-a;_+=`${x}"...":${k}"${rT(P)} not stringified"`,x=b}return g!==""&&x.length>1&&(_=` +${E}`);let N=Math.min(S.length,a),C=0;for(;Ca){let V=S.length-a-1;_+=`${b}"... ${aT(V)} not stringified"`}return y!==""&&(_+=` +${T}`),m.pop(),`[${_}]`}let A=Object.keys(S),R=A.length;if(R===0)return"{}";if(oa){let N=R-a;_+=`${k}"...":${x}"${aT(N)} not stringified"`,k=b}return y!==""&&k.length>1&&(_=` ${E}${_} -${T}`),m.pop(),`{${_}}`}case"number":return isFinite(S)?String(S):t?t(S):"null";case"boolean":return S===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(S);default:return t?t(S):void 0}}function u(p,h,m,y,g,E){switch(typeof h=="object"&&h!==null&&typeof h.toJSON=="function"&&(h=h.toJSON(p)),typeof h){case"string":return VS(h);case"object":{if(h===null)return"null";if(m.indexOf(h)!==-1)return n;let S=E,_="",b=",";if(Array.isArray(h)){if(h.length===0)return"[]";if(oa){let N=h.length-a-1;_+=`${b}"... ${rT(N)} not stringified"`}return g!==""&&(_+=` -${S}`),m.pop(),`[${_}]`}m.push(h);let T="";g!==""&&(E+=g,b=`, -${E}`,T=" ");let A="";for(let R of y){let k=u(R,h[R],m,y,g,E);k!==void 0&&(_+=`${A}${VS(R)}:${T}${k}`,A=b)}return g!==""&&A.length>1&&(_=` +${E}`);let R=Math.min(h.length,a),x=0;for(;xa){let P=h.length-a-1;_+=`${b}"... ${aT(P)} not stringified"`}return y!==""&&(_+=` +${S}`),m.pop(),`[${_}]`}m.push(h);let T="";y!==""&&(E+=y,b=`, +${E}`,T=" ");let A="";for(let R of g){let x=u(R,h[R],m,g,y,E);x!==void 0&&(_+=`${A}${ZS(R)}:${T}${x}`,A=b)}return y!==""&&A.length>1&&(_=` ${E}${_} -${S}`),m.pop(),`{${_}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function l(p,h,m,y,g){switch(typeof h){case"string":return VS(h);case"object":{if(h===null)return"null";if(typeof h.toJSON=="function"){if(h=h.toJSON(p),typeof h!="object")return l(p,h,m,y,g);if(h===null)return"null"}if(m.indexOf(h)!==-1)return n;let E=g;if(Array.isArray(h)){if(h.length===0)return"[]";if(oa){let j=h.length-a-1;k+=`${x}"... ${rT(j)} not stringified"`}return k+=` -${E}`,m.pop(),`[${k}]`}let S=Object.keys(h),_=S.length;if(_===0)return"{}";if(oa){let k=_-a;T+=`${A}"...": "${rT(k)} not stringified"`,A=b}return A!==""&&(T=` -${g}${T} -${E}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function d(p,h,m){switch(typeof h){case"string":return VS(h);case"object":{if(h===null)return"null";if(typeof h.toJSON=="function"){if(h=h.toJSON(p),typeof h!="object")return d(p,h,m);if(h===null)return"null"}if(m.indexOf(h)!==-1)return n;let y="",g=h.length!==void 0;if(g&&Array.isArray(h)){if(h.length===0)return"[]";if(oa){let k=h.length-a-1;y+=`,"... ${rT(k)} not stringified"`}return m.pop(),`[${y}]`}let E=Object.keys(h),S=E.length;if(S===0)return"{}";if(oa){let T=S-a;y+=`${_}"...":"${rT(T)} not stringified"`}return m.pop(),`{${y}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function f(p,h,m){if(arguments.length>1){let y="";if(typeof m=="number"?y=" ".repeat(Math.min(m,10)):typeof m=="string"&&(y=m.slice(0,10)),h!=null){if(typeof h=="function")return c("",{"":p},[],h,y,"");if(Array.isArray(h))return u("",p,[],Ivn(h),y,"")}if(y.length!==0)return l("",p,[],y,"")}return d("",p,[])}return f}});var pet=w((TWr,fet)=>{"use strict";var Dce=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:det}=AW(),Ovn=det.info;function Nvn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(det);n.silent=1/0,t.levels&&typeof t.levels=="object"&&Object.keys(t.levels).forEach(d=>{n[d]=t.levels[d]});let r={write:i,add:a,remove:c,emit:s,flushSync:o,end:u,minLevel:0,lastId:0,streams:[],clone:l,[Dce]:!0,streamLevels:n};return Array.isArray(e)?e.forEach(a,r):a.call(r,e),e=null,r;function i(d){let f,p=this.lastLevel,{streams:h}=this,m=0,y;for(let g=Pvn(h.length,t.dedupe);Mvn(g,h.length,t.dedupe);g=Cvn(g,t.dedupe))if(f=h[g],f.level<=p){if(m!==0&&m!==f.level)break;if(y=f.stream,y[Dce]){let{lastTime:E,lastMsg:S,lastObj:_,lastLogger:b}=this;y.lastLevel=p,y.lastTime=E,y.lastMsg=S,y.lastObj=_,y.lastLogger=b}y.write(d),t.dedupe&&(m=f.level)}else if(!t.dedupe)break}function s(...d){for(let{stream:f}of this.streams)typeof f.emit=="function"&&f.emit(...d)}function o(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync()}function a(d){if(!d)return r;let f=typeof d.write=="function"||d.stream,p=d.write?d:d.stream;if(!f)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:h,streamLevels:m}=this,y;typeof d.levelVal=="number"?y=d.levelVal:typeof d.level=="string"?y=m[d.level]:typeof d.level=="number"?y=d.level:y=Ovn;let g={stream:p,level:y,levelVal:void 0,id:++r.lastId};return h.unshift(g),h.sort(uet),this.minLevel=h[0].level,r}function c(d){let{streams:f}=this,p=f.findIndex(h=>h.id===d);return p>=0&&(f.splice(p,1),f.sort(uet),this.minLevel=f.length>0?f[0].level:-1),r}function u(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync(),d.end()}function l(d){let f=new Array(this.streams.length);for(let p=0;p=0:e{"use strict";var Dvn=Y("node:os"),Tet=nce(),Lvn=rce(),Uvn=oce(),vet=r$e(),jvn=iet(),Aet=kk(),{configure:Fvn}=cet(),{assertDefaultLevelFound:Hvn,mappings:Ret,genLsCache:qvn,genLevelComparison:Bvn,assertLevelComparison:Gvn}=Rce(),{DEFAULT_LEVELS:wet,SORTING_ORDER:zvn}=AW(),{createArgsNormalizer:Vvn,asChindings:Wvn,buildSafeSonicBoom:het,buildFormatters:Kvn,stringify:Lce,normalizeDestFileDescriptor:met,noop:Zvn}=vW(),{version:Yvn}=wce(),{chindingsSym:get,redactFmtSym:Jvn,serializersSym:yet,timeSym:Xvn,timeSliceIndexSym:Qvn,streamSym:$vn,stringifySym:_et,stringifySafeSym:Uce,stringifiersSym:Eet,setLevelSym:eAn,endSym:tAn,formatOptsSym:nAn,messageKeySym:rAn,errorKeySym:iAn,nestedKeySym:sAn,mixinSym:oAn,levelCompSym:aAn,useOnlyCustomLevelsSym:cAn,formattersSym:bet,hooksSym:uAn,nestedKeyStrSym:lAn,mixinMergeStrategySym:dAn,msgPrefixSym:fAn}=Aet,{epochTime:ket,nullTime:pAn}=vet,{pid:hAn}=process,mAn=Dvn.hostname(),gAn=Tet.err,yAn={level:"info",levelComparison:zvn.ASC,levels:wet,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:hAn,hostname:mAn},serializers:Object.assign(Object.create(null),{err:gAn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:ket,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},SAn=Vvn(yAn),_An=Object.assign(Object.create(null),Tet);function jce(...e){let t={},{opts:n,stream:r}=SAn(t,Lvn(),...e);n.level&&typeof n.level=="string"&&wet[n.level.toLowerCase()]!==void 0&&(n.level=n.level.toLowerCase());let{redact:i,crlf:s,serializers:o,timestamp:a,messageKey:c,errorKey:u,nestedKey:l,base:d,name:f,level:p,customLevels:h,levelComparison:m,mixin:y,mixinMergeStrategy:g,useOnlyCustomLevels:E,formatters:S,hooks:_,depthLimit:b,edgeLimit:T,onChild:A,msgPrefix:R}=n,k=Fvn({maximumDepth:b,maximumBreadth:T}),x=Kvn(S.level,S.bindings,S.log),N=Lce.bind({[Uce]:k}),P=i?Uvn(i,N):{},D=i?{stringify:P[Jvn]}:{stringify:N},j="}"+(s?`\r +${S}`),m.pop(),`{${_}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function l(p,h,m,g,y){switch(typeof h){case"string":return ZS(h);case"object":{if(h===null)return"null";if(typeof h.toJSON=="function"){if(h=h.toJSON(p),typeof h!="object")return l(p,h,m,g,y);if(h===null)return"null"}if(m.indexOf(h)!==-1)return n;let E=y;if(Array.isArray(h)){if(h.length===0)return"[]";if(oa){let F=h.length-a-1;x+=`${k}"... ${aT(F)} not stringified"`}return x+=` +${E}`,m.pop(),`[${x}]`}let S=Object.keys(h),_=S.length;if(_===0)return"{}";if(oa){let x=_-a;T+=`${A}"...": "${aT(x)} not stringified"`,A=b}return A!==""&&(T=` +${y}${T} +${E}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function d(p,h,m){switch(typeof h){case"string":return ZS(h);case"object":{if(h===null)return"null";if(typeof h.toJSON=="function"){if(h=h.toJSON(p),typeof h!="object")return d(p,h,m);if(h===null)return"null"}if(m.indexOf(h)!==-1)return n;let g="",y=h.length!==void 0;if(y&&Array.isArray(h)){if(h.length===0)return"[]";if(oa){let x=h.length-a-1;g+=`,"... ${aT(x)} not stringified"`}return m.pop(),`[${g}]`}let E=Object.keys(h),S=E.length;if(S===0)return"{}";if(oa){let T=S-a;g+=`${_}"...":"${aT(T)} not stringified"`}return m.pop(),`{${g}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function f(p,h,m){if(arguments.length>1){let g="";if(typeof m=="number"?g=" ".repeat(Math.min(m,10)):typeof m=="string"&&(g=m.slice(0,10)),h!=null){if(typeof h=="function")return c("",{"":p},[],h,g,"");if(Array.isArray(h))return u("",p,[],kAn(h),g,"")}if(g.length!==0)return l("",p,[],g,"")}return d("",p,[])}return f}});var Vet=w((mKr,zet)=>{"use strict";var $ce=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:Get}=FW(),xAn=Get.info;function OAn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(Get);n.silent=1/0,t.levels&&typeof t.levels=="object"&&Object.keys(t.levels).forEach(d=>{n[d]=t.levels[d]});let r={write:i,add:a,remove:c,emit:s,flushSync:o,end:u,minLevel:0,lastId:0,streams:[],clone:l,[$ce]:!0,streamLevels:n};return Array.isArray(e)?e.forEach(a,r):a.call(r,e),e=null,r;function i(d){let f,p=this.lastLevel,{streams:h}=this,m=0,g;for(let y=PAn(h.length,t.dedupe);CAn(y,h.length,t.dedupe);y=NAn(y,t.dedupe))if(f=h[y],f.level<=p){if(m!==0&&m!==f.level)break;if(g=f.stream,g[$ce]){let{lastTime:E,lastMsg:S,lastObj:_,lastLogger:b}=this;g.lastLevel=p,g.lastTime=E,g.lastMsg=S,g.lastObj=_,g.lastLogger=b}g.write(d),t.dedupe&&(m=f.level)}else if(!t.dedupe)break}function s(...d){for(let{stream:f}of this.streams)typeof f.emit=="function"&&f.emit(...d)}function o(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync()}function a(d){if(!d)return r;let f=typeof d.write=="function"||d.stream,p=d.write?d:d.stream;if(!f)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:h,streamLevels:m}=this,g;typeof d.levelVal=="number"?g=d.levelVal:typeof d.level=="string"?g=m[d.level]:typeof d.level=="number"?g=d.level:g=xAn;let y={stream:p,level:g,levelVal:void 0,id:++r.lastId};return h.unshift(y),h.sort(Bet),this.minLevel=h[0].level,r}function c(d){let{streams:f}=this,p=f.findIndex(h=>h.id===d);return p>=0&&(f.splice(p,1),f.sort(Bet),this.minLevel=f.length>0?f[0].level:-1),r}function u(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync(),d.end()}function l(d){let f=new Array(this.streams.length);for(let p=0;p=0:e{"use strict";var MAn=Y("node:os"),$et=_ce(),DAn=bce(),LAn=Ace(),ett=M$e(),UAn=Uet(),ttt=Ck(),{configure:FAn}=qet(),{assertDefaultLevelFound:jAn,mappings:ntt,genLsCache:HAn,genLevelComparison:qAn,assertLevelComparison:BAn}=Gce(),{DEFAULT_LEVELS:rtt,SORTING_ORDER:GAn}=FW(),{createArgsNormalizer:zAn,asChindings:VAn,buildSafeSonicBoom:Wet,buildFormatters:WAn,stringify:eue,normalizeDestFileDescriptor:Ket,noop:KAn}=UW(),{version:YAn}=zce(),{chindingsSym:Yet,redactFmtSym:ZAn,serializersSym:Zet,timeSym:JAn,timeSliceIndexSym:XAn,streamSym:QAn,stringifySym:Jet,stringifySafeSym:tue,stringifiersSym:Xet,setLevelSym:$An,endSym:eRn,formatOptsSym:tRn,messageKeySym:nRn,errorKeySym:rRn,nestedKeySym:iRn,mixinSym:sRn,levelCompSym:oRn,useOnlyCustomLevelsSym:aRn,formattersSym:Qet,hooksSym:cRn,nestedKeyStrSym:uRn,mixinMergeStrategySym:lRn,msgPrefixSym:dRn}=ttt,{epochTime:itt,nullTime:fRn}=ett,{pid:pRn}=process,hRn=MAn.hostname(),mRn=$et.err,gRn={level:"info",levelComparison:GAn.ASC,levels:rtt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:pRn,hostname:hRn},serializers:Object.assign(Object.create(null),{err:mRn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:itt,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},yRn=zAn(gRn),SRn=Object.assign(Object.create(null),$et);function nue(...e){let t={},{opts:n,stream:r}=yRn(t,DAn(),...e);n.level&&typeof n.level=="string"&&rtt[n.level.toLowerCase()]!==void 0&&(n.level=n.level.toLowerCase());let{redact:i,crlf:s,serializers:o,timestamp:a,messageKey:c,errorKey:u,nestedKey:l,base:d,name:f,level:p,customLevels:h,levelComparison:m,mixin:g,mixinMergeStrategy:y,useOnlyCustomLevels:E,formatters:S,hooks:_,depthLimit:b,edgeLimit:T,onChild:A,msgPrefix:R}=n,x=FAn({maximumDepth:b,maximumBreadth:T}),k=WAn(S.level,S.bindings,S.log),P=eue.bind({[tue]:x}),N=i?LAn(i,P):{},C=i?{stringify:N[ZAn]}:{stringify:P},F="}"+(s?`\r `:` -`),V=Wvn.bind(null,{[get]:"",[yet]:o,[Eet]:P,[_et]:Lce,[Uce]:k,[bet]:x}),Z="";d!==null&&(f===void 0?Z=V(d):Z=V(Object.assign({},d,{name:f})));let B=a instanceof Function?a:a?ket:pAn,G=B().indexOf(":")+1;if(E&&!h)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(y&&typeof y!="function")throw Error(`Unknown mixin type "${typeof y}" - expected "function"`);if(R&&typeof R!="string")throw Error(`Unknown msgPrefix type "${typeof R}" - expected "string"`);Hvn(p,h,E);let X=Ret(h,E);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:X,messageKey:c,errorKey:u}}),Gvn(m);let q=Bvn(m);return Object.assign(t,{levels:X,[aAn]:q,[cAn]:E,[$vn]:r,[Xvn]:B,[Qvn]:G,[_et]:Lce,[Uce]:k,[Eet]:P,[tAn]:j,[nAn]:D,[rAn]:c,[iAn]:u,[sAn]:l,[lAn]:l?`,${JSON.stringify(l)}:{`:"",[yet]:o,[oAn]:y,[dAn]:g,[get]:Z,[bet]:x,[uAn]:_,silent:Zvn,onChild:A,[fAn]:R}),Object.setPrototypeOf(t,jvn()),qvn(t),t[eAn](p),t}Ed.exports=jce;Ed.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=met(e.dest||process.stdout.fd),het(e)):het({dest:met(e),minLength:0});Ed.exports.transport=_ce();Ed.exports.multistream=pet();Ed.exports.levels=Ret();Ed.exports.stdSerializers=_An;Ed.exports.stdTimeFunctions=Object.assign({},vet);Ed.exports.symbols=Aet;Ed.exports.version=Yvn;Ed.exports.default=jce;Ed.exports.pino=jce});var Net=w((AWr,Oet)=>{"use strict";var kW=Iet(),{serializersSym:xet}=kW.symbols,{FST_ERR_LOG_INVALID_DESTINATION:EAn}=Vo();function bAn(e){if(e.stream&&e.file)throw new EAn;e.file&&(e.stream=kW.destination(e.file),delete e.file);let t=e.logger,n=e.genReqId,r=null;return t?(e.logger=void 0,e.genReqId=void 0,t[xet]&&(e.serializers=Object.assign({},e.serializers,t[xet])),r=t.child({},e),e.logger=t,e.genReqId=n):r=kW(e,e.stream),r}var TAn={req:function(t){return{method:t.method,url:t.url,version:t.headers&&t.headers["accept-version"],host:t.host,remoteAddress:t.ip,remotePort:t.socket?t.socket.remotePort:void 0}},err:kW.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};Oet.exports={serializers:TAn,createPinoLogger:bAn}});var dM=w((RWr,Cet)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:vAn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:AAn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:RAn,FST_ERR_LOG_INVALID_LOGGER:wAn}=Vo();function kAn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==Pet&&IW(o,!0),o}function Pet(e,t,n){return e.child(t,n)}function IW(e,t){let n=["info","error","debug","fatal","warn","trace","child"],r=e?n.filter(i=>!e[i]||typeof e[i]!="function"):n;if(r.length){if(r.length===n.length&&!t)return!1;throw wAn(r.join(","))}else return!0}function IAn(e){if(e.logger&&e.loggerInstance)throw new vAn;if(!e.loggerInstance&&!e.logger){let o=vQe();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=Net();if(IW(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(IW(e.logger))throw AAn();if(e.loggerInstance)throw RAn();let r={};return Object.prototype.toString.call(e.logger)==="[object Object]"&&Reflect.ownKeys(e.logger).forEach(s=>{Object.defineProperty(r,s,{value:e.logger[s],writable:!0,enumerable:!0,configurable:!0})}),r.level=r.level||"info",r.serializers=Object.assign({},n,r.serializers),e.logger=r,{logger:t(e.logger),hasLogger:!0}}function xAn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}Cet.exports={createChildLogger:kAn,defaultChildLoggerFactory:Pet,createLogger:IAn,validateLogger:IW,now:xAn}});var xW=w((wWr,Met)=>{"use strict";Met.exports=OAn;function Ok(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function OAn(e){if(e=e||{},e.circles)return NAn(e);let t=new Map;if(t.set(Date,o=>new Date(o)),t.set(Map,(o,a)=>new Map(r(Array.from(o),a))),t.set(Set,(o,a)=>new Set(r(Array.from(o),a))),e.constructorHandlers)for(let o of e.constructorHandlers)t.set(o[0],o[1]);let n=null;return e.proto?s:i;function r(o,a){let c=Object.keys(o),u=new Array(c.length);for(let l=0;lnew Date(c)),r.set(Map,(c,u)=>new Map(s(Array.from(c),u))),r.set(Set,(c,u)=>new Set(s(Array.from(c),u))),e.constructorHandlers)for(let c of e.constructorHandlers)r.set(c[0],c[1]);let i=null;return e.proto?a:o;function s(c,u){let l=Object.keys(c),d=new Array(l.length);for(let f=0;f{"use strict";var PAn=xW()({circles:!1,proto:!0}),{kSchemaVisited:Det,kSchemaResponse:CAn}=Ys(),Fce=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:MAn,FST_ERR_SCH_ALREADY_PRESENT:DAn,FST_ERR_SCH_DUPLICATE:LAn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:Let}=Vo(),jet=["params","body","querystring","query","headers"];function OW(e){this.store=e||{}}OW.prototype.add=function(e){let t=PAn(e.isFluentSchema||e.isFluentJSONSchema||e[Fce]?e.valueOf():e),n=t.$id;if(!n)throw new MAn;if(this.store[n])throw new DAn(n);this.store[n]=t};OW.prototype.getSchemas=function(){return Object.assign({},this.store)};OW.prototype.getSchema=function(e){return this.store[e]};function Uet(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function UAn(e,t){if(e[Det])return e;if(e.query){if(e.querystring)throw new LAn("querystring");e.querystring=e.query}jAn(e);for(let n of jet){let r=e[n];if(r&&!Uet(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var HAn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;qet.exports=class Het{constructor(t){switch(t&&t.rounding){case"floor":this.parseInteger=Math.floor;break;case"ceil":this.parseInteger=Math.ceil;break;case"round":this.parseInteger=Math.round;break;default:this.parseInteger=Math.trunc;break}this._options=t}asInteger(t){if(Number.isInteger(t))return""+t;if(typeof t=="bigint")return t.toString();let n=this.parseInteger(t);if(n===1/0||n===-1/0||n!==n)throw new Error(`The value "${t}" cannot be converted to an integer.`);return""+n}asNumber(t){let n=Number(t);if(n!==n)throw new Error(`The value "${t}" cannot be converted to a number.`);return n===1/0||n===-1/0?"null":""+n}asBoolean(t){return t&&"true"||"false"}asDateTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+t.toISOString()+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date-time.`)}asDate(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,10)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date.`)}asTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(11,19)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a time.`)}asString(t){let n=t.length;if(n===0)return'""';if(n<42){let r="",i=-1,s=255;for(let o=0;o=55296&&s<=57343)return JSON.stringify(t);return i===-1&&'"'+t+'"'||'"'+r+t.slice(i)+'"'}else return n<5e3&&HAn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new Het(t)}}});var Get=w((xWr,Bet)=>{"use strict";var qAn=NW(),BAn={mode:"standalone"},GAn=qAn.restoreFromState(BAn),zAn=null;Bet.exports=(function(t,n){let{asString:r,asNumber:i,asBoolean:s,asDateTime:o,asDate:a,asTime:c,asUnsafeString:u}=n,l=n.asInteger.bind(n),d="{",f="}",p="[",h="]",m=",",y=":",g='"',E=d+f,S=p+h,_=g+g,b="null";function T(R){let k=R&&typeof R.toJSON=="function"?R.toJSON():R;if(k===null)return E;let x,N=d,P=!1;return x=k.statusCode,x!==void 0&&(!P&&(P=!0)||(N+=m),N+='"statusCode":',N+=i(x)),x=k.code,x!==void 0&&(!P&&(P=!0)||(N+=m),N+='"code":',typeof x!="string"?x===null?N+=_:x instanceof Date?N+=g+x.toISOString()+g:x instanceof RegExp?N+=r(x.source):N+=r(x.toString()):N+=r(x)),x=k.error,x!==void 0&&(!P&&(P=!0)||(N+=m),N+='"error":',typeof x!="string"?x===null?N+=_:x instanceof Date?N+=g+x.toISOString()+g:x instanceof RegExp?N+=r(x.source):N+=r(x.toString()):N+=r(x)),x=k.message,x!==void 0&&(!P&&(P=!0)||(N+=m),N+='"message":',typeof x!="string"?x===null?N+=_:x instanceof Date?N+=g+x.toISOString()+g:x instanceof RegExp?N+=r(x.source):N+=r(x.toString()):N+=r(x)),N+f}return T})(zAn,GAn)});var pM=w((OWr,Ket)=>{"use strict";var zet=Y("node:http").STATUS_CODES,VAn=Fae(),{setErrorStatusCode:WAn}=rW(),{kReplyHeaders:sT,kReplyNextErrorHandler:PW,kReplyIsRunningOnErrorHook:KAn,kRouteContext:Wet,kDisableRequestLogging:CW}=Ys(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:ZAn,FST_ERR_FAILED_ERROR_SERIALIZATION:YAn}=Vo(),{getSchemaSerializer:JAn}=fM(),Hce=Get(),XAn={func:$An,toJSON(){return this.func.name.toString()+"()"}};function QAn(e,t,n){e[KAn]=!1;let r=e[Wet];if(e[PW]===!1){Vet(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[sT])}catch(c){o.log[CW]||o.log.warn({req:o.request,res:o,err:c},c?.message),o.raw.writeHead(o.raw.statusCode)}o.raw.end(a)});return}let i=e[PW]||r.errorHandler;e[PW]=Object.getPrototypeOf(i),delete e[sT]["content-type"],delete e[sT]["content-length"];let s=i.func;if(!s){e[PW]=!1,Vet(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?VAn(o,e):e.send(o))}catch(o){e.send(o)}}function $An(e,t,n){tRn(e,n),WAn(n,e),n.statusCode<500?n.log[CW]||n.log.info({res:n,err:e},e?.message):n.log[CW]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Vet(e,t,n){let r=t.raw,i=t.statusCode;t[sT]["content-type"]=t[sT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=JAn(t[Wet],i,t[sT]["content-type"]);o===!1?s=Hce({error:zet[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:zet[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[CW]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=Hce(new YAn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=Hce(new ZAn(typeof s))),t[sT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function eRn(e=XAn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function tRn(e,t){let n=t.raw,r=n.statusCode;r=r>=400?r:500,e!=null&&(e.headers!==void 0&&t.headers(e.headers),e.status>=400?r=e.status:e.statusCode>=400&&(r=e.statusCode)),n.statusCode=r}Ket.exports={buildErrorHandler:eRn,handleError:QAn}});var gM=w((NWr,Xet)=>{"use strict";var{kReply:qce,kRequest:Bce,kState:nRn,kHasBeenDecorated:rRn}=Ys(),{FST_ERR_DEC_ALREADY_PRESENT:Zet,FST_ERR_DEC_MISSING_DEPENDENCY:iRn,FST_ERR_DEC_AFTER_START:sRn,FST_ERR_DEC_REFERENCE_TYPE:oRn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:aRn,FST_ERR_DEC_UNDECLARED:cRn}=Vo();function uRn(e,t,n,r){if(Object.hasOwn(e,t))throw new Zet(t);Gce(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(e,t,{get:n.getter,set:n.setter}):e[t]=n}function lRn(e){if(!hM(this,e))throw new cRn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Yet(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||mM(e,t))throw new Zet(t);e[rRn]=!0,Gce(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(i,t,{get:n.getter,set:n.setter}):typeof n=="function"?i[t]=n:e.props.push({key:t,value:n})}function Jet(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new oRn(e,typeof t)}function dRn(e,t,n){return zce(this,e),uRn(this,e,t,n),this}function hM(e,t){return t?t in e||e.prototype&&t in e.prototype||mM(e,t):e in this}function mM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function fRn(e){return e&&mM(this[Bce],e)?!0:hM(this[Bce].prototype,e)}function pRn(e){return e&&mM(this[qce],e)?!0:hM(this[qce].prototype,e)}function Gce(e,t,n){if(n!=null){if(!Array.isArray(n))throw new aRn(t);for(let r=0;r!==n.length;++r)if(!hM(e,n[r]))throw new iRn(n[r])}}function hRn(e,t,n){return zce(this,e),Jet(e,t),Yet(this[qce],e,t,n),this}function mRn(e,t,n){return zce(this,e),Jet(e,t),Yet(this[Bce],e,t,n),this}function zce(e,t){if(e[nRn].started)throw new sRn(t)}Xet.exports={add:dRn,exist:hM,existRequest:fRn,existReply:pRn,dependencies:Gce,decorateReply:hRn,decorateRequest:mRn,getInstanceDecorator:lRn,hasKey:mM}});var BW=w((PWr,qW)=>{"use strict";var MW=Y("node:stream").finished,{kFourOhFourContext:Qet,kReplyErrorHandlerCalled:stt,kReplyHijacked:Yce,kReplyStartTime:SM,kReplyEndTime:Jce,kReplySerializer:Ym,kReplySerializerDefault:DW,kReplyIsError:LW,kReplyHeaders:Fr,kReplyTrailers:Wo,kReplyHasStatusCode:Xce,kReplyIsRunningOnErrorHook:Qce,kReplyNextErrorHandler:gRn,kDisableRequestLogging:ott,kSchemaResponse:UW,kReplyCacheSerializeFns:WS,kSchemaController:Vce,kOptions:yRn,kRouteContext:Pn,kTimeoutTimer:jW,kOnAbort:Nk,kRequestSignal:att}=Ys(),{onSendHookRunner:ctt,onResponseHookRunner:SRn,preHandlerHookRunner:_Rn,preSerializationHookRunner:ERn}=GS(),$et=Wae()[Symbol.for("internals")],bRn=dM(),Zce=bRn.now,{handleError:ett}=pM(),{getSchemaSerializer:TRn}=fM(),Wce={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:vRn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:ARn,FST_ERR_REP_READABLE_STREAM_LOCKED:RRn,FST_ERR_REP_ALREADY_SENT:wRn,FST_ERR_SEND_INSIDE_ONERR:kRn,FST_ERR_BAD_STATUS_CODE:IRn,FST_ERR_BAD_TRAILER_NAME:xRn,FST_ERR_BAD_TRAILER_VALUE:ORn,FST_ERR_MISSING_SERIALIZATION_FN:NRn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:PRn,FST_ERR_DEC_UNDECLARED:CRn}=Vo(),ttt=gM(),utt=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[Ym]=null,this[stt]=!1,this[LW]=!1,this[Qce]=!1,this.request=t,this[Fr]={},this[Wo]=null,this[Xce]=!1,this[SM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Pn]:{get(){return this.request[Pn]}},elapsedTime:{get(){return this[SM]===void 0?0:(this[Jce]||Zce())-this[SM]}},server:{get(){return this.request[Pn].server}},sent:{enumerable:!0,get(){return(this[Yce]||this.raw.writableEnded)===!0}},statusCode:{get(){return this.raw.statusCode},set(e){this.code(e)}},routeOptions:{get(){return this.request.routeOptions}}});Hr.prototype.writeEarlyHints=function(e,t){return this.raw.writeEarlyHints(e,t),this};Hr.prototype.hijack=function(){return this[Yce]=!0,this.request[att]&&(clearTimeout(this.request[jW]),this.request[jW]=null,this.request[Nk]&&(this.request.raw.removeListener("close",this.request[Nk]),this.request[Nk]=null)),this};Hr.prototype.send=function(e){if(this[Qce])throw new kRn;if(this.sent===!0)return this.log.warn({err:new wRn(this.request.url,this.request.method)}),this;if(this[LW]||e instanceof Error)return this[LW]=!1,Pk(this,e,oT),this;if(e===void 0)return oT(this,e),this;let t=this.getHeader("content-type"),n=t!==void 0;if(e!==null){if(typeof e.pipe=="function"||typeof e.getReader=="function"||utt.call(e)==="[object Response]")return oT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[Fr]["content-type"]=Wce.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return oT(this,r),this}if(!n&&typeof e=="string")return this[Fr]["content-type"]=Wce.PLAIN,oT(this,e),this}if(this[Ym]!==null){if(typeof e!="string")return ntt(this,e),this;e=this[Ym](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[Fr]["content-type"]=Wce.JSON;else if(t.indexOf("charset")===-1){let r=t.trim();r.endsWith(";")?this[Fr]["content-type"]=`${r} charset=utf-8`:this[Fr]["content-type"]=`${r}; charset=utf-8`}if(typeof e!="string")return ntt(this,e),this}return oT(this,e),this};Hr.prototype.getHeader=function(e){e=e.toLowerCase();let t=this[Fr][e];return t!==void 0?t:this.raw.getHeader(e)};Hr.prototype.getHeaders=function(){return{...this.raw.getHeaders(),...this[Fr]}};Hr.prototype.hasHeader=function(e){return e=e.toLowerCase(),this[Fr][e]!==void 0||this.raw.hasHeader(e)};Hr.prototype.removeHeader=function(e){return delete this[Fr][e.toLowerCase()],this};Hr.prototype.header=function(e,t=""){return e=e.toLowerCase(),this[Fr][e]&&e==="set-cookie"?(typeof this[Fr][e]=="string"&&(this[Fr][e]=[this[Fr][e]]),Array.isArray(t)?Array.prototype.push.apply(this[Fr][e],t):this[Fr][e].push(t)):this[Fr][e]=t,this};Hr.prototype.headers=function(e){let t=Object.keys(e);for(let n=0;n!==t.length;++n){let r=t[n];this.header(r,e[r])}return this};var MRn=new Set(["transfer-encoding","content-length","host","cache-control","max-forwards","te","authorization","set-cookie","content-encoding","content-type","content-range","trailer"]);Hr.prototype.trailer=function(e,t){if(e=e.toLowerCase(),MRn.has(e))throw new xRn(e);if(typeof t!="function")throw new ORn(e,typeof t);return this[Wo]===null&&(this[Wo]={}),this[Wo][e]=t,this};Hr.prototype.hasTrailer=function(e){return this[Wo]?.[e.toLowerCase()]!==void 0};Hr.prototype.removeTrailer=function(e){return this[Wo]===null?this:(this[Wo][e.toLowerCase()]=void 0,this)};Hr.prototype.code=function(e){let t=+e;if(!(t>=100&&t<=599))throw new IRn(e||String(e));return this.raw.statusCode=t,this[Xce]=!0,this};Hr.prototype.status=Hr.prototype.code;Hr.prototype.getSerializationFunction=function(e,t){let n;return typeof e=="string"||typeof e=="number"?typeof t=="string"?n=this[Pn][UW]?.[e]?.[t]:n=this[Pn][UW]?.[e]:typeof e=="object"&&(n=this[Pn][WS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Pn][WS]?.has(e))return this[Pn][WS].get(e);let a=(this[Pn].serializerCompiler||this.server[Vce].serializerCompiler||this.server[Vce].setupSerializer(this.server[yRn])||this.server[Vce].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Pn][WS]==null&&(this[Pn][WS]=new WeakMap),this[Pn][WS].set(e,a),a};Hr.prototype.serializeInput=function(e,t,n,r){let i=n,s;if(n=typeof t=="string"||typeof t=="number"?t:n,r=n&&i!==n?i:r,n!=null){if(r!=null?s=this[Pn][UW]?.[n]?.[r]:s=this[Pn][UW]?.[n],s==null)throw r?new PRn(n,r):new NRn(n)}else this[Pn][WS]?.has(t)?s=this[Pn][WS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[Ym]!==null?this[Ym](e):this[Pn]&&this[Pn][DW]?this[Pn][DW](e,this.raw.statusCode):dtt(this[Pn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[Ym]=e,this};Hr.prototype.type=function(e){return this[Fr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[Xce]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return BRn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}MW(this.raw,n=>{n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"?t?t(n):this.log&&this.log.warn("unhandled rejection on reply.then"):e()})};Hr.prototype.getDecorator=function(e){if(!ttt.hasKey(this,e)&&!ttt.exist(this,e))throw new CRn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function ntt(e,t){e[Pn].preSerialization!==null?ERn(e[Pn].preSerialization,e.request,e,t,rtt):rtt(null,void 0,e,t)}function rtt(e,t,n,r){if(e!=null){Pk(n,e);return}try{n[Ym]!==null?r=n[Ym](r):n[Pn]&&n[Pn][DW]?r=n[Pn][DW](r,n.raw.statusCode):r=dtt(n[Pn],r,n.raw.statusCode,n[Fr]["content-type"])}catch(i){DRn(i,n),Pk(n,i);return}oT(n,r)}function DRn(e,t){e.serialization=t[Pn].config}function oT(e,t){e[Pn].onSend!==null?ctt(e[Pn].onSend,e.request,e,t,LRn):ltt(e,t)}function LRn(e,t,n,r){e!=null?Pk(n,e):ltt(n,r)}function Kce(e,t){let n=e.raw;try{n.writeHead(t,e[Fr])}catch(r){throw r.code==="ERR_HTTP_HEADERS_SENT"&&e.log.warn(`Reply was already sent, did you forget to "return reply" in the "${e.request.raw.url}" (${e.request.raw.method}) route?`),r}}function ltt(e,t){let n=e.raw,r=e.request;if(e[Wo]!==null){let s=Object.keys(e[Wo]),o="";for(let a of s)typeof e[Wo][a]=="function"&&(o+=" ",o+=a);e.header("Transfer-Encoding","chunked"),e.header("Trailer",o.trim())}if(utt.call(t)==="[object Response]"){if(typeof t.status=="number"&&e.code(t.status),typeof t.headers=="object"&&typeof t.headers.forEach=="function")for(let[s,o]of t.headers)e.header(s,o);if(t.body!==null&&t.bodyUsed)throw new ARn;t=t.body}let i=n.statusCode;if(t==null){i>=200&&i!==204&&i!==304&&r.method!=="HEAD"&&e[Wo]===null&&(e[Fr]["content-length"]="0"),Kce(e,i),yM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),Kce(e,i),yM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",HW),t.resume());return}if(typeof t.pipe=="function"){jRn(t,n,e);return}if(typeof t.getReader=="function"){URn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new vRn(typeof t);if(e[Wo]===null){let s=e[Fr]["content-length"];(!s||r.raw.method!=="HEAD"&&Number(s)!==Buffer.byteLength(t))&&(e[Fr]["content-length"]=""+Buffer.byteLength(t))}Kce(e,i),n.write(t),yM(t,n,e)}function FW(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[ott]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function URn(e,t,n){if(e.locked)throw new RRn;let r=!0,i=!1,s=!1,o=e.getReader();if(MW(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,FW(n.log,l,t)),o.cancel().catch(HW))}),t.headersSent)n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode");else for(let l in n[Fr])t.setHeader(l,n[Fr][l]);function a(l){if(l.done){r=!1,yM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(HW);return}if(t.write(l.value)===!1){s=!0,t.once("drain",c);return}o.read().then(a,u)}function c(){!s||!r||t.destroyed||(s=!1,o.read().then(a,u))}function u(l){r=!1,t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,FW(n.log,l,n)),t.destroy()):Pk(n,l)}o.read().then(a,u)}function jRn(e,t,n){let r=!0,i=!1;if(FRn(e,t,n),MW(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,FW(n.log,s,n)),t.destroy()):Pk(n,s))}),MW(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,FW(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(HW):typeof e.abort=="function"?e.abort():n.log.warn("stream payload does not end properly"))}),t.headersSent)n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode");else for(let s in n[Fr])t.setHeader(s,n[Fr][s]);e.pipe(t)}function yM(e,t,n){if(n[Wo]===null){t.end(null,null,null);return}let r=Object.keys(n[Wo]),i={},s=0,o=!0;function a(){s===0&&(t.addTrailers(i),t.end(null,null,null))}for(let c of r){let u=function(d,f){s++,d?n.log.debug(d):i[c]=f,process.nextTick(a)};if(typeof n[Wo][c]!="function")continue;o=!1,s--;let l=n[Wo][c](n,e,u);typeof l=="object"&&typeof l.then=="function"&&l.then(d=>u(null,d),u)}o&&t.end(null,null,null)}function FRn(e,t,n){n[Wo]!==null&&e.on("end",()=>yM(null,t,n))}function Pk(e,t,n){e[Pn].onError!==null&&!e[gRn]?(e[Qce]=!0,ctt(e[Pn].onError,e.request,e,t,()=>ett(e,t,n))):ett(e,t,n)}function HRn(e){e[SM]=Zce();let t=n=>{e[Jce]=Zce(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Pn];e.request[att]&&(clearTimeout(e.request[jW]),e.request[jW]=null,e.request[Nk]&&(e.request.raw.removeListener("close",e.request[Nk]),e.request[Nk]=null)),r&&r.onResponse!==null?SRn(r.onResponse,e.request,e,itt):itt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function itt(e,t,n){if(n.log[ott])return;let r=n.elapsedTime;if(e!=null){n.log.error({res:n,err:e,responseTime:r},"request errored");return}n.log.info({res:n,responseTime:r},"request completed")}function qRn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[LW]=!1,this[stt]=!1,this[Yce]=!1,this[Ym]=null,this.request=i,this[Fr]={},this[Wo]=null,this[SM]=void 0,this[Jce]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function $ce(e){if(!e)throw new TypeError("argument req is required");let t=e.headers["x-forwarded-for"],n=e.socket.remoteAddress;if(!t||typeof t!="string")return[n];if(t.indexOf(",")===-1){let r=t.trim();return r.length?[n,r]:[n]}else return GRn(t,n)}function GRn(e,t){let n=[t],r=e.length,i=r,s,o;for(o=r-1;o>=0;--o)s=e[o],s===" "?i===r&&(i=r=o):s===","?(i!==r&&n.push(e.slice(i,r)),i=r=o):i=o;return i!==r&&n.push(e.substring(i,r)),n}GW.exports=$ce;GW.exports.default=$ce;GW.exports.forwarded=$ce});var htt=w((ptt,zW)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},r=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,y=-1,g=(p.match(a.zoneIndex)||[])[0],E,S;for(g&&(g=g.substring(1),p=p.replace(/%.+$/,""));(y=p.indexOf(":",y+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(S=h-m,E=":";S--;)E+="0:";return p=p.replace("::",E),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=(function(){let _=p.split(":"),b=[];for(let T=0;T<_.length;T++)b.push(parseInt(_[T],16));return b})(),{parts:h,zoneId:g}}function u(p,h,m,y){if(p.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,E;for(;y>0;){if(E=m-y,E<0&&(E=0),p[g]>>E!==h[g]>>E)return!1;y-=m,g+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(r.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function d(p,h){for(;p.length=0;g-=1)if(E=this.octets[g],E in y){if(S=y[E],m&&S!==0)return null;S!==8&&(m=!0),h+=S}else return null;return 32-h},p.prototype.range=function(){return f.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return f.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p})(),f.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],E=0;for(;E<4;)g.push(parseInt(m[E],10)|parseInt(y[E],10)^255),E++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},f.IPv4.isIPv4=function(p){return this.parser(p)!==null},f.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},f.IPv4.isValidCIDR=function(p){try{return this.parseCIDR(p),!0}catch{return!1}},f.IPv4.isValidFourPartDecimal=function(p){return!!(f.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},f.IPv4.isValidCIDRFourPartDecimal=function(p){let h=p.match(/^(.+)\/(\d+)$/);return!f.IPv4.isValidCIDR(p)||!h?!1:f.IPv4.isValidFourPartDecimal(h[1])},f.IPv4.networkAddressFromCIDR=function(p){let h,m,y,g,E;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),E=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(E[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},f.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},f.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let y=[this.parse(h[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},f.IPv4.parser=function(p){let h,m,y;if(h=p.match(n.fourOctet))return(function(){let g=h.slice(1,6),E=[];for(let S=0;S4294967295||y<0)throw new Error("ipaddr: address outside defined range");return(function(){let g=[],E;for(E=0;E<=24;E+=8)g.push(y>>E&255);return g})().reverse()}else return(h=p.match(n.twoOctet))?(function(){let g=h.slice(1,4),E=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return E.push(l(g[0])),E.push(y>>16&255),E.push(y>>8&255),E.push(y&255),E})():(h=p.match(n.threeOctet))?(function(){let g=h.slice(1,5),E=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return E.push(l(g[0])),E.push(l(g[1])),E.push(y>>8&255),E.push(y&255),E})():null},f.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,y=Math.floor(p/8);for(;m=0;S-=1)if(g=this.parts[S],g in y){if(E=y[g],m&&E!==0)return null;E!==16&&(m=!0),h+=E}else return null;return 128-h},p.prototype.range=function(){return f.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],y=this.parts;for(let g=0;g>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=(function(){let y=[];for(let g=0;g>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let h=(function(){let y=[];for(let g=0;gg&&(y=E.index,g=E[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},p.prototype.toString=function(){return this.toRFC5952String()},p})(),f.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],E=0;for(;E<16;)g.push(parseInt(m[E],10)|parseInt(y[E],10)^255),E++;return new this(g)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},f.IPv6.isIPv6=function(p){return this.parser(p)!==null},f.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},f.IPv6.isValidCIDR=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{return this.parseCIDR(p),!0}catch{return!1}},f.IPv6.networkAddressFromCIDR=function(p){let h,m,y,g,E;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),E=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(E[m],10)),m++;return new this(g)}catch(S){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${S})`)}},f.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},f.IPv6.parseCIDR=function(p){let h,m,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return y=[this.parse(m[1]),h],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},f.IPv6.parser=function(p){let h,m,y,g,E,S;if(y=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(p))return c(p,8);if((y=p.match(a.transitional))&&(S=y[6]||"",h=y[1],y[1].endsWith("::")||(h=h.slice(0,-1)),h=c(h+S,6),h.parts)){for(E=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(p/8);for(;m{"use strict";Ck.exports=eue;Ck.exports.default=eue;Ck.exports.proxyaddr=eue;Ck.exports.all=ytt;Ck.exports.compile=Stt;var zRn=ftt(),gtt=htt(),VRn=/^\d+$/u,VW=gtt.isValid,WW=gtt.parse,mtt={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function ytt(e,t){let n=zRn(e);if(!t)return n;typeof t!="function"&&(t=Stt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function YRn(e){let t=WW(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function eue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=ytt(e,t);return n[n.length-1]}function JRn(){return!1}function XRn(e){return function(n){if(!VW(n))return!1;let r=WW(n),i,s=r.kind();for(let o=0;o{"use strict";var KW=_tt(),{kHasBeenDecorated:$Rn,kSchemaBody:ewn,kSchemaHeaders:twn,kSchemaParams:nwn,kSchemaQuerystring:Ett,kSchemaController:tue,kOptions:rwn,kRequestCacheValidateFns:KS,kRouteContext:ec,kRequestOriginalUrl:nue,kRequestSignal:btt,kOnAbort:iwn}=Ys(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:swn,FST_ERR_DEC_UNDECLARED:own}=Vo(),Ttt=gM(),vtt={body:ewn,headers:twn,params:nwn,querystring:Ett,query:Ett};function rue(e,t,n,r,i,s){this.id=e,this[ec]=s,this.params=t,this.raw=n,this.query=r,this.log=i,this.body=void 0}rue.props=[];function awn(e){if(typeof e=="function")return e;if(e===!0)return function(){return!0};if(typeof e=="number")return function(t,n){return nn.trim());return KW.compile(t)}return KW.compile(e)}function cwn(e,t){return t?uwn(e,t):wtt(e)}function wtt(e){let t=e.props.slice();function n(r,i,s,o,a,c){this.id=r,this[ec]=c,this.params=i,this.raw=s,this.query=o,this.log=a,this.body=void 0;let u;for(let l=0;l{e.signal.aborted||e.abort()};return this.raw.on("close",t),this[iwn]=t,e.signal}},ip:{get(){if(this.socket)return this.socket.remoteAddress}},host:{get(){return this.raw.headers.host??this.raw.headers[":authority"]??""}},hostname:{get(){return this.host[0]==="["?this.host.slice(0,this.host.indexOf("]")+1):this.host.split(":",1)[0]}},port:{get(){let e=/(?:\d+)$/,t=this.headers.host??this.headers[":authority"]??"",n=e.exec(t);return n===null||n[1]===void 0?null:parseInt(n.groups.port.slice(1),10)}},protocol:{get(){if(this.socket)return this.socket.encrypted?"https":"http"}},headers:{get(){return this.additionalHeaders?Object.assign({},this.raw.headers,this.additionalHeaders):this.raw.headers},set(e){this.additionalHeaders=e}},getValidationFunction:{value:function(e){if(typeof e=="string"){let t=vtt[e];return this[ec][t]}else if(typeof e=="object")return this[ec][KS]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[ec][KS]?.has(e))return this[ec][KS].get(e);let s=(this[ec].validatorCompiler||this.server[tue].validatorCompiler||this.server[tue].setupValidator(this.server[rwn])||this.server[tue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[ec][KS]==null&&(this[ec][KS]=new WeakMap),this[ec][KS].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&vtt[n],i;if(r&&(i=this[ec][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new swn(n);return i==null&&(this[ec][KS]?.has(t)?i=this[ec][KS].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){Rtt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){Rtt(this,e),this[e]=t}}});iue.exports=rue;iue.exports.buildRequest=cwn});var YW=w((LWr,ktt)=>{"use strict";var{kFourOhFourContext:lwn,kReplySerializerDefault:dwn,kSchemaErrorFormatter:fwn,kErrorHandler:pwn,kChildLoggerFactory:hwn,kOptions:mwn,kReply:gwn,kRequest:ywn,kBodyLimit:Swn,kLogLevel:_wn,kContentTypeParser:Ewn,kRouteByFastify:bwn,kRequestCacheValidateFns:Twn,kReplyCacheSerializeFns:vwn,kHandlerTimeout:Awn}=Ys();function Rwn({schema:e,handler:t,config:n,requestIdLogLabel:r,childLoggerFactory:i,errorHandler:s,bodyLimit:o,logLevel:a,logSerializers:c,attachValidation:u,validatorCompiler:l,serializerCompiler:d,replySerializer:f,schemaErrorFormatter:p,exposeHeadRoute:h,prefixTrailingSlash:m,server:y,isFastify:g,handlerTimeout:E}){this.schema=e,this.handler=t,this.Reply=y[gwn],this.Request=y[ywn],this.contentTypeParser=y[Ewn],this.onRequest=null,this.onSend=null,this.onError=null,this.onTimeout=null,this.preHandler=null,this.onResponse=null,this.preSerialization=null,this.onRequestAbort=null,this.config=n,this.errorHandler=s||y[pwn],this.requestIdLogLabel=r||y[mwn].requestIdLogLabel,this.childLoggerFactory=i||y[hwn],this._middie=null,this._parserOptions={limit:o||y[Swn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||y[_wn],this.logSerializers=c,this[lwn]=null,this.attachValidation=u,this[dwn]=f,this.schemaErrorFormatter=p||y[fwn]||wwn,this[bwn]=g,this[Twn]=null,this[vwn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=E||y[Awn]||0,this.server=y}function wwn(e,t){let n="";for(let i=0;i!==e.length;++i){let s=e[i];n+=t+(s.instancePath||"")+" "+s.message+", "}return new Error(n.slice(0,-2))}ktt.exports=Rwn});var oue=w((UWr,Mk)=>{"use strict";var kwn=typeof Buffer<"u",Itt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,xtt=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function Ott(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),kwn&&Buffer.isBuffer(e)&&(e=e.toString()),e&&e.charCodeAt(0)===65279&&(e=e.slice(1));let r=JSON.parse(e,t);if(r===null||typeof r!="object")return r;let i=n&&n.protoAction||"error",s=n&&n.constructorAction||"error";if(i==="ignore"&&s==="ignore")return r;if(i!=="ignore"&&s!=="ignore"){if(Itt.test(e)===!1&&xtt.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(Itt.test(e)===!1)return r}else if(xtt.test(e)===!1)return r;return Ntt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function Ntt(e,{protoAction:t="error",constructorAction:n="error",safe:r}={}){let i=[e];for(;i.length;){let s=i;i=[];for(let o of s){if(t!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"__proto__")){if(r===!0)return null;if(t==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.__proto__}if(n!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"constructor")&&o.constructor!==null&&typeof o.constructor=="object"&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype")){if(r===!0)return null;if(n==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.constructor}for(let a in o){let c=o[a];c&&typeof c=="object"&&i.push(c)}}}return e}function sue(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return Ott(e,t,n)}finally{Error.stackTraceLimit=r}}function Iwn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return Ott(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Mk.exports=sue;Mk.exports.default=sue;Mk.exports.parse=sue;Mk.exports.safeParse=Iwn;Mk.exports.scan=Ntt});var due=w((jWr,bM)=>{"use strict";var{AsyncResource:xwn}=Y("node:async_hooks"),{FifoMap:Mtt}=sV(),{parse:Own}=oue(),EM=jae(),{kDefaultJsonParse:_M,kContentTypeParser:Dk,kBodyLimit:Nwn,kRequestPayloadStream:Dtt,kState:cue,kTestInternals:Pwn,kReplyIsError:Ptt,kRouteContext:Cwn}=Ys(),{FST_ERR_CTP_INVALID_TYPE:JW,FST_ERR_CTP_EMPTY_TYPE:Mwn,FST_ERR_CTP_ALREADY_PRESENT:Dwn,FST_ERR_CTP_INVALID_HANDLER:Lwn,FST_ERR_CTP_INVALID_PARSE_TYPE:Uwn,FST_ERR_CTP_BODY_TOO_LARGE:Ctt,FST_ERR_CTP_INVALID_MEDIA_TYPE:jwn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:Fwn,FST_ERR_CTP_EMPTY_JSON_BODY:Hwn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:uue,FST_ERR_CTP_INVALID_JSON_BODY:qwn}=Vo(),{FSTSEC001:Bwn}=vk();function Jm(e,t,n){this[_M]=Utt(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new aue(!0,!1,e,this[_M])),this.customParsers.set("text/plain",new aue(!0,!1,e,lue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new Mtt(100)}Jm.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new Mwn}else if(!(e instanceof RegExp))throw new JW;if(typeof n!="function")throw new Lwn;if(this.existingParser(e))throw new Dwn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new Uwn(t.parseAs);let i=new aue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new EM(e);if(s.isValid===!1)throw new JW;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else Zwn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};Jm.prototype.hasParser=function(e){if(typeof e=="string")e=new EM(e).toString();else{if(!(e instanceof RegExp))throw new JW;e=e.toString()}return this.customParsers.has(e)};Jm.prototype.existingParser=function(e){if(typeof e=="string"){let t=new EM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[_M];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==lue}return this.hasParser(e)};Jm.prototype.getParser=function(e){typeof e=="string"&&(e=new EM(e));let t=e.toString(),n=this.cache.get(t);if(n!==void 0)return n;if(n=this.customParsers.get(t),n!==void 0)return this.cache.set(t,n),n;if(n=this.customParsers.get(e.mediaType),n!==void 0)return n;for(let r=0;r!==this.parserRegExpList.length;++r){let i=this.parserRegExpList[r];if(i.test(t))return n=this.customParsers.get(i.toString()),this.cache.set(t,n),n}return this.customParsers.get("")};Jm.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new Mtt(100)};Jm.prototype.remove=function(e){let t;if(typeof e=="string")e=new EM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new JW;e=e.toString(),t=this.parserRegExpList}let n=this.customParsers.delete(e),r=t.findIndex(i=>i.toString()===e);return r>-1&&t.splice(r,1),n||r>-1};Jm.prototype.run=function(e,t,n,r){let i=this.getParser(e);if(i===void 0){if(n.is404===!0){t(n,r);return}r[Ptt]=!0,r.send(new jwn);return}let s=new xwn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){Ltt(n,r,r[Cwn]._parserOptions,i,o);return}let a=i.fn(n,n[Dtt],o);a&&typeof a.then=="function"&&a.then(u=>{o(null,u)},o);function c(u,l){if(s.emitDestroy(),u!=null){r.header("connection","close"),r[Ptt]=!0,r.send(u);return}n.body=l,t(n,r)}};function Ltt(e,t,n,r,i){let s=r.asString===!0,o=n.limit===null?r.bodyLimit:n.limit,a=Number(e.headers["content-length"]);if(a>o){i(new Ctt,void 0);return}let c=0,u=s?"":[],l=e[Dtt]||e.raw;s&&l.setEncoding("utf8"),l.on("data",d),l.on("end",f),l.on("error",f),l.resume();function d(p){c+=s?Buffer.byteLength(p):p.length;let{receivedEncodedLength:h=0}=l;if(c>o||h>o){l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),i(new Ctt,void 0);return}s?u+=p:u.push(p)}function f(p){if(l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),p!=null){typeof p.statusCode=="number"&&p.statusCode>=400||(p.statusCode=400),i(p,void 0);return}if(!Number.isNaN(a)&&(l.receivedEncodedLength||c)!==a){i(new Fwn,void 0);return}s||(u=Buffer.concat(u));let h=r.fn(e,u,i);h&&typeof h.then=="function"&&h.then(m=>{i(null,m)},i)}}function Utt(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new Hwn,void 0);return}try{o(null,Own(s,n))}catch{o(new qwn,void 0)}}}function lue(e,t,n){n(null,t)}function aue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function Gwn(e){let t=new Jm;return t[_M]=e[_M],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function zwn(e,t,n){if(this[cue].started)throw new uue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Nwn]),Array.isArray(e)?e.forEach(r=>this[Dk].add(r,t,n)):this[Dk].add(e,t,n),this}function Vwn(e){return this[Dk].hasParser(e)}function Wwn(e){if(this[cue].started)throw new uue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[Dk].remove(t);else this[Dk].remove(e)}function Kwn(){if(this[cue].started)throw new uue("removeAllContentTypeParsers");this[Dk].removeAll()}function Zwn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&Bwn(e.source)}bM.exports=Jm;bM.exports.helpers={buildContentTypeParser:Gwn,addContentTypeParser:zwn,hasContentTypeParser:Vwn,removeContentTypeParser:Wwn,removeAllContentTypeParsers:Kwn};bM.exports.defaultParsers={getDefaultJsonParser:Utt,defaultTextParser:lue};bM.exports[Pwn]={rawBody:Ltt}});var Xm=w(TM=>{"use strict";Object.defineProperty(TM,"__esModule",{value:!0});TM.checkMetadata=void 0;var Ywn=pn(),Jwn={keyword:"metadata",schemaType:"object",code(e){jtt(e);let{gen:t,schema:n,it:r}=e;if((0,Ywn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function jtt({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}TM.checkMetadata=jtt;TM.default=Jwn});var XW=w(AM=>{"use strict";Object.defineProperty(AM,"__esModule",{value:!0});AM.hasRef=void 0;var Ftt=Db(),vM=kt(),Xwn=Bm(),Htt=pd(),qtt=yse(),Qwn=Xm(),$wn={keyword:"ref",schemaType:"string",code(e){(0,Qwn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{schemaEnv:{root:o}}=s,a=t.name("valid");i.nullable?(t.var(a,(0,vM._)`${n} === null`),t.if((0,vM.not)(a),c)):(t.var(a,!1),c()),e.ok(a);function c(){var d;let f=(d=o.schema.definitions)===null||d===void 0?void 0:d[r];if(!f)throw new Xwn.default(s.opts.uriResolver,"",r,`No definition ${r}`);fue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=Ftt.compileSchema.call(s.self,new Ftt.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,qtt.getValidate)(e,f),h=t.const("_errs",Htt.default.errors);(0,qtt.callRef)(e,p,f,f.$async),t.assign(a,(0,vM._)`${h} === ${Htt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,vM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:vM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function fue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&fue(n))return!0}return!1}AM.hasRef=fue;AM.default=$wn});var hue=w(pue=>{"use strict";Object.defineProperty(pue,"__esModule",{value:!0});var ekn=/t|\s/i,tkn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,nkn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,rkn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Gtt(e,t){let n=e.split(ekn);return n.length===2&&Btt(n[0])&&ikn(n[1])||t&&n.length===1&&Btt(n[0])}pue.default=Gtt;function Btt(e){let t=tkn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=rkn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function ikn(e){let t=nkn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3],s=+(t[4]||0),o=+(t[5]||0);return n<=23&&r<=59&&i<=59||n-s===23&&r-o===59&&i===60}Gtt.code='require("ajv/dist/runtime/timestamp").default'});var Lk=w(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.typeErrorParams=ZS.typeErrorMessage=ZS.typeError=void 0;var skn=kt();function okn(e){return{message:t=>ztt(t,e),params:t=>Vtt(t,e)}}ZS.typeError=okn;function ztt({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}ZS.typeErrorMessage=ztt;function Vtt({parentSchema:e},t){return(0,skn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}ZS.typeErrorParams=Vtt});var mue=w(Uk=>{"use strict";Object.defineProperty(Uk,"__esModule",{value:!0});Uk.intRange=void 0;var hl=kt(),akn=hue(),ckn=pn(),ukn=Xm(),Wtt=Lk();Uk.intRange={int8:[-128,127,3],uint8:[0,255,3],int16:[-32768,32767,5],uint16:[0,65535,5],int32:[-2147483648,2147483647,10],uint32:[0,4294967295,10]};var lkn={message:e=>(0,Wtt.typeErrorMessage)(e,e.schema),params:e=>(0,Wtt.typeErrorParams)(e,e.schema)};function dkn(e){let{gen:t,data:n,it:r}=e,{timestamp:i,allowDate:s}=r.opts;if(i==="date")return(0,hl._)`${n} instanceof Date `;let o=(0,ckn.useFunc)(t,akn.default),a=s?(0,hl._)`, true`:hl.nil,c=(0,hl._)`typeof ${n} == "string" && ${o}(${n}${a})`;return i==="string"?c:(0,hl.or)((0,hl._)`${n} instanceof Date`,c)}var fkn={keyword:"type",schemaType:"string",error:lkn,code(e){(0,ukn.checkMetadata)(e);let{data:t,schema:n,parentSchema:r,it:i}=e,s;switch(n){case"boolean":case"string":s=(0,hl._)`typeof ${t} == ${n}`;break;case"timestamp":{s=dkn(e);break}case"float32":case"float64":s=(0,hl._)`typeof ${t} == "number"`;break;default:{let o=n;if(s=(0,hl._)`typeof ${t} == "number" && isFinite(${t}) && !(${t} % 1)`,!i.opts.int32range&&(o==="int32"||o==="uint32"))o==="uint32"&&(s=(0,hl._)`${s} && ${t} >= 0`);else{let[a,c]=Uk.intRange[o];s=(0,hl._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,hl.or)((0,hl._)`${t} === null`,s):s)}};Uk.default=fkn});var Fk=w(jk=>{"use strict";Object.defineProperty(jk,"__esModule",{value:!0});jk.checkNullableObject=jk.checkNullable=void 0;var QW=kt();function Ktt({gen:e,data:t,parentSchema:n},r=QW.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,QW._)`${t} === null`),r=(0,QW.not)(i)):e.let(i,!1),[i,r]}jk.checkNullable=Ktt;function pkn(e,t){let[n,r]=Ktt(e,t);return[n,(0,QW._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}jk.checkNullableObject=pkn});var Ztt=w(gue=>{"use strict";Object.defineProperty(gue,"__esModule",{value:!0});var YS=kt(),hkn=Xm(),mkn=Fk(),gkn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,YS._)`{allowedValues: ${e}}`},ykn={keyword:"enum",schemaType:"array",error:gkn,code(e){(0,hkn.checkMetadata)(e);let{gen:t,data:n,schema:r,schemaValue:i,parentSchema:s,it:o}=e;if(r.length===0)throw new Error("enum must have non-empty array");if(r.length!==new Set(r).size)throw new Error("enum items must be unique");let a,c=(0,YS._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,mkn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,YS.and)(c,(0,YS.or)(...r.map(l=>(0,YS._)`${n} === ${l}`))),s.nullable&&(a=(0,YS.or)((0,YS._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,YS._)`${a} = ${n} === ${l}`,()=>t.break()))}}};gue.default=ykn});var Jtt=w(yue=>{"use strict";Object.defineProperty(yue,"__esModule",{value:!0});var Skn=pn(),_kn=ga(),Ytt=kt(),Ekn=Xm(),bkn=Fk(),Tkn=Lk(),vkn={keyword:"elements",schemaType:"object",error:(0,Tkn.typeError)("array"),code(e){(0,Ekn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,Skn.alwaysValidSchema)(i,r))return;let[s]=(0,bkn.checkNullable)(e);t.if((0,Ytt.not)(s),()=>t.if((0,Ytt._)`Array.isArray(${n})`,()=>t.assign(s,(0,_kn.validateArray)(e)),()=>e.error())),e.ok(s)}};yue.default=vkn});var _ue=w(JS=>{"use strict";Object.defineProperty(JS,"__esModule",{value:!0});JS.validateProperties=JS.error=void 0;var Sue=ga(),Xtt=pn(),Qm=kt(),Akn=Xm(),Rkn=Fk(),Qtt=Lk(),Hk;(function(e){e.Additional="additional",e.Missing="missing"})(Hk||(Hk={}));JS.error={message:e=>{let{params:t}=e;return t.propError?t.propError===Hk.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,Qtt.typeErrorMessage)(e,"object")},params:e=>{let{params:t}=e;return t.propError?t.propError===Hk.Additional?(0,Qm._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,Qm._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,Qtt.typeErrorParams)(e,"object")}};var wkn={keyword:"properties",schemaType:"object",error:JS.error,code:$tt};function $tt(e){(0,Akn.checkMetadata)(e);let{gen:t,data:n,parentSchema:r,it:i}=e,{additionalProperties:s,nullable:o}=r;if(i.jtdDiscriminator&&o)throw new Error("JTD: nullable inside discriminator mapping");if(p())throw new Error("JTD: properties and optionalProperties have common members");let[a,c]=h("properties"),[u,l]=h("optionalProperties");if(c.length===0&&l.length===0&&s)return;let[d,f]=i.jtdDiscriminator===void 0?(0,Rkn.checkNullableObject)(e,n):[t.let("valid",!1),!0];t.if(f,()=>t.assign(d,!0).block(()=>{m(c,"properties",!0),m(l,"optionalProperties"),s||g()})),e.pass(d);function p(){let S=r.properties,_=r.optionalProperties;if(!(S&&_))return!1;for(let b in S)if(Object.prototype.hasOwnProperty.call(_,b))return!0;return!1}function h(S){let _=r[S],b=_?(0,Sue.allSchemaProperties)(_):[];if(i.jtdDiscriminator&&b.some(A=>A===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=b.filter(A=>!(0,Xtt.alwaysValidSchema)(i,_[A]));return[b,T]}function m(S,_,b){let T=t.var("valid");for(let R of S)t.if((0,Sue.propertyInData)(t,n,R,i.opts.ownProperties),()=>y(R,_,T),()=>A(R)),e.ok(T);function A(R){b?(t.assign(T,!1),e.error(!1,{propError:Hk.Missing,missingProperty:R},{schemaPath:R})):t.assign(T,!0)}}function y(S,_,b){e.subschema({keyword:_,schemaProp:S,dataProp:S},b)}function g(){t.forIn("key",n,S=>{let _=E(S,a,"properties",i.jtdDiscriminator),b=E(S,u,"optionalProperties"),T=_===!0?b:b===!0?_:(0,Qm.and)(_,b);t.if(T,()=>{i.opts.removeAdditional?t.code((0,Qm._)`delete ${n}[${S}]`):(e.error(!1,{propError:Hk.Additional,additionalProperty:S},{instancePath:S,parentSchema:!0}),i.opts.allErrors||t.break())})})}function E(S,_,b,T){let A;if(_.length>8){let R=(0,Xtt.schemaRefOrVal)(i,r[b],b);A=(0,Qm.not)((0,Sue.isOwnProperty)(t,R,S)),T!==void 0&&(A=(0,Qm.and)(A,(0,Qm._)`${S} !== ${T}`))}else if(_.length||T!==void 0){let R=T===void 0?_:[T].concat(_);A=(0,Qm.and)(...R.map(k=>(0,Qm._)`${S} !== ${k}`))}else A=!0;return A}}JS.validateProperties=$tt;JS.default=wkn});var tnt=w(Eue=>{"use strict";Object.defineProperty(Eue,"__esModule",{value:!0});var ent=_ue(),kkn={keyword:"optionalProperties",schemaType:"object",error:ent.error,code(e){e.parentSchema.properties||(0,ent.validateProperties)(e)}};Eue.default=kkn});var rnt=w(bue=>{"use strict";Object.defineProperty(bue,"__esModule",{value:!0});var aT=kt(),Ikn=Xm(),xkn=Fk(),nnt=Lk(),$W=roe(),Okn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===$W.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in mapping`:(0,nnt.typeErrorMessage)(e,"object")},params:e=>{let{schema:t,params:n}=e;return n.discrError?(0,aT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,nnt.typeErrorParams)(e,"object")}},Nkn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:Okn,code(e){(0,Ikn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,xkn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,aT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,aT._)`${n}${(0,aT.getProperty)(r)}`);t.if((0,aT._)`${l} === undefined`),e.error(!1,{discrError:$W.DiscrError.Tag,tag:l}),t.elseIf((0,aT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:$W.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,aT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:$W.DiscrError.Mapping,tag:l},{instancePath:r,schemaPath:"mapping",parentSchema:!0}),t.endIf()}function u(l){let d=t.name("valid");return e.subschema({keyword:"mapping",schemaProp:l,jtdDiscriminator:r},d),d}}};bue.default=Nkn});var snt=w(Tue=>{"use strict";Object.defineProperty(Tue,"__esModule",{value:!0});var int=pn(),e4=kt(),Pkn=Xm(),Ckn=Fk(),Mkn=Lk(),Dkn={keyword:"values",schemaType:"object",error:(0,Mkn.typeError)("object"),code(e){(0,Pkn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,Ckn.checkNullableObject)(e,n);(0,int.alwaysValidSchema)(i,r)?t.if((0,e4.not)((0,e4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,e4.not)(s)),e.error(),t.endIf()),e.ok(s);function a(){let c=t.name("valid");if(i.allErrors){let l=t.let("valid",!0);return u(()=>t.assign(l,!1)),l}return t.var(c,!0),u(()=>t.break()),c;function u(l){t.forIn("key",n,d=>{e.subschema({keyword:"values",dataProp:d,dataPropType:int.Type.Str},c),t.if((0,e4.not)(c),l)})}}}};Tue.default=Dkn});var ont=w(vue=>{"use strict";Object.defineProperty(vue,"__esModule",{value:!0});var Lkn=ga(),Ukn={keyword:"union",schemaType:"array",trackErrors:!0,code:Lkn.validateUnion,error:{message:"must match a schema in union"}};vue.default=Ukn});var ant=w(Aue=>{"use strict";Object.defineProperty(Aue,"__esModule",{value:!0});var jkn=XW(),Fkn=mue(),Hkn=Ztt(),qkn=Jtt(),Bkn=_ue(),Gkn=tnt(),zkn=rnt(),Vkn=snt(),Wkn=ont(),Kkn=Xm(),Zkn=["definitions",jkn.default,Fkn.default,Hkn.default,qkn.default,Bkn.default,Gkn.default,zkn.default,Vkn.default,Wkn.default,Kkn.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];Aue.default=Zkn});var dnt=w(Rue=>{"use strict";Object.defineProperty(Rue,"__esModule",{value:!0});var $m=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},Ykn=e=>({optionalProperties:$m(e)}),Jkn=e=>({properties:{ref:{type:"string"}},optionalProperties:$m(e)}),Xkn=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:$m(e)}),Qkn=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:$m(e)}),$kn=e=>({properties:{elements:{ref:"schema"}},optionalProperties:$m(e)}),unt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...$m(e)}}),lnt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...$m(e)}}),eIn=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[unt(!1),lnt(!1)]}}}},optionalProperties:$m(e)}),tIn=e=>({properties:{values:{ref:"schema"}},optionalProperties:$m(e)}),cnt=e=>({metadata:{union:[Ykn,Jkn,Xkn,Qkn,$kn,unt,lnt,eIn,tIn].map(t=>t(e))}}),nIn={definitions:{schema:cnt(!1)},...cnt(!0)};Rue.default=nIn});var wue=w(t4=>{"use strict";Object.defineProperty(t4,"__esModule",{value:!0});t4.jtdForms=void 0;t4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var pnt=w(Iue=>{"use strict";Object.defineProperty(Iue,"__esModule",{value:!0});var kue=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,rIn={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function fnt(e){return kue.lastIndex=0,'"'+(kue.test(e)?e.replace(kue,t=>{let n=rIn[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}Iue.default=fnt;fnt.code='require("ajv/dist/runtime/quote").default'});var _nt=w(Oue=>{"use strict";Object.defineProperty(Oue,"__esModule",{value:!0});var iIn=wue(),mnt=Db(),_n=kt(),sIn=Bm(),qr=pd(),oIn=ga(),aIn=XW(),cIn=pn(),uIn=pnt(),lIn={elements:fIn,values:pIn,discriminator:hIn,properties:hnt,optionalProperties:hnt,enum:RM,type:mIn,ref:yIn};function gnt(e,t){let n=mnt.getCompilingSchema.call(this,e);if(n)return n;let{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new _n.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a=o.scopeName("serialize"),c={self:this,gen:o,schema:e.schema,schemaEnv:e,definitions:t,data:qr.default.data},u;try{this._compilations.add(e),e.serializeName=a,o.func(a,qr.default.data,!1,()=>{o.let(qr.default.json,(0,_n.str)``),wM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}Oue.default=gnt;function wM(e){let t;for(let n of iIn.jtdForms)if(n in e.schema){t=n;break}dIn(e,t?lIn[t]:_In)}function dIn(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);n.if((0,_n._)`${i} === undefined || ${i} === null`,()=>n.add(qr.default.json,(0,_n._)`"null"`),()=>t(e))}function fIn(e){let{gen:t,schema:n,data:r}=e;t.add(qr.default.json,(0,_n.str)`[`);let i=t.let("first",!0);t.forOf("el",r,s=>{xue(e,i),wM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,_n.str)`]`)}function pIn(e){let{gen:t,schema:n,data:r}=e;t.add(qr.default.json,(0,_n.str)`{`);let i=t.let("first",!0);t.forIn("key",r,s=>ynt(e,s,n.values,i)),t.add(qr.default.json,(0,_n.str)`}`)}function ynt(e,t,n,r){let{gen:i,data:s}=e;xue(e,r),RM({...e,data:t}),i.add(qr.default.json,(0,_n.str)`:`);let o=i.const("value",(0,_n._)`${s}${(0,_n.getProperty)(t)}`);wM({...e,schema:n,data:o})}function hIn(e){let{gen:t,schema:n,data:r}=e,{discriminator:i}=n;t.add(qr.default.json,(0,_n.str)`{${JSON.stringify(i)}:`);let s=t.const("tag",(0,_n._)`${r}${(0,_n.getProperty)(i)}`);RM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,_n._)`${s} === ${o}`);let a=n.mapping[o];Snt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,_n.str)`}`)}function hnt(e){let{gen:t}=e;t.add(qr.default.json,(0,_n.str)`{`),Snt(e),t.add(qr.default.json,(0,_n.str)`}`)}function Snt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let g of a)l?l=!1:n.add(qr.default.json,(0,_n.str)`,`),m(g,s[g],h(g));l&&(d=n.let("first",!0));for(let g of c){let E=h(g);n.if((0,_n.and)((0,_n._)`${E} !== undefined`,(0,oIn.isOwnProperty)(n,i,g)),()=>{xue(e,d),m(g,o[g],E)})}r.additionalProperties&&n.forIn("key",i,g=>n.if(y(g,u),()=>ynt(e,g,{},d)));function f(g){return g?Object.keys(g):[]}function p(g){if(t&&g.push(t),new Set(g).size!==g.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return g}function h(g){return n.const("value",(0,_n._)`${i}${(0,_n.getProperty)(g)}`)}function m(g,E,S){n.add(qr.default.json,(0,_n.str)`${JSON.stringify(g)}:`),wM({...e,schema:E,data:S})}function y(g,E){return E.length?(0,_n.and)(...E.map(S=>(0,_n._)`${g} !== ${S}`)):!0}}function mIn(e){let{gen:t,schema:n,data:r}=e;switch(n.type){case"boolean":t.add(qr.default.json,(0,_n._)`${r} ? "true" : "false"`);break;case"string":RM(e);break;case"timestamp":t.if((0,_n._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,_n._)`'"' + ${r}.toISOString() + '"'`),()=>RM(e));break;default:gIn(e)}}function RM({gen:e,data:t}){e.add(qr.default.json,(0,_n._)`${(0,cIn.useFunc)(e,uIn.default)}(${t})`)}function gIn({gen:e,data:t,self:n}){let r=(0,_n._)`${t} === Infinity || ${t} === -Infinity || ${t} !== ${t}`;n.opts.specialNumbers===void 0||n.opts.specialNumbers==="fast"?e.add(qr.default.json,(0,_n._)`"" + ${t}`):e.if(r,()=>e.add(qr.default.json,(0,_n._)`null`),()=>e.add(qr.default.json,(0,_n._)`"" + ${t}`))}function yIn(e){let{gen:t,self:n,data:r,definitions:i,schema:s,schemaEnv:o}=e,{ref:a}=s,c=i[a];if(!c)throw new sIn.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,aIn.hasRef)(c))return wM({...e,schema:c});let{root:u}=o,l=gnt.call(n,new mnt.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,_n._)`${SIn(t,l)}(${r})`)}function SIn(e,t){return t.serialize?e.scopeValue("serialize",{ref:t.serialize}):(0,_n._)`${e.scopeValue("wrapper",{ref:t})}.serialize`}function _In({gen:e,data:t}){e.add(qr.default.json,(0,_n._)`JSON.stringify(${t})`)}function xue({gen:e},t){t?e.if(t,()=>e.assign(t,!1),()=>e.add(qr.default.json,(0,_n.str)`,`)):e.add(qr.default.json,(0,_n.str)`,`)}});var bnt=w(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0});QS.parseJsonString=QS.parseJsonNumber=QS.parseJson=void 0;var EIn=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function eg(e,t){let n;eg.message=void 0;let r;t&&(e=e.slice(t));try{return eg.position=t+e.length,JSON.parse(e)}catch(i){if(r=EIn.exec(i.message),!r){eg.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),eg.position=t+n;try{return JSON.parse(e)}catch{eg.message=`unexpected token ${s}`;return}}}QS.parseJson=eg;eg.message=void 0;eg.position=0;eg.code='require("ajv/dist/runtime/parseJson").parseJson';function tg(e,t,n){let r="",i;if(tg.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return tg.position=t,+r;if(e[t]==="."&&(r+=".",t++,!s())){o();return}if(i=e[t],(i==="e"||i==="E")&&(r+="e",t++,i=e[t],(i==="+"||i==="-")&&(r+=i,t++),!s())){o();return}return tg.position=t,+r;function s(a){let c=!1;for(;i=e[t],i>="0"&&i<="9"&&(a===void 0||a-- >0);)c=!0,r+=i,t++;return c}function o(){tg.position=t,tg.message=t="a"&&r<="f")o+=r.charCodeAt(0)-bIn+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-TIn;else{i(`unexpected token ${r}`);return}t++}n+=String.fromCharCode(o)}else{i(`unexpected token ${r}`);return}else if(r===void 0){i("unexpected end");return}else if(r.charCodeAt(0)>=32)n+=r;else{i(`unexpected token ${r}`);return}return XS.position=t,n;function i(s){XS.position=t,XS.message=s}}QS.parseJsonString=XS;XS.message=void 0;XS.position=0;XS.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var Pnt=w(jue=>{"use strict";Object.defineProperty(jue,"__esModule",{value:!0});var vIn=wue(),Rnt=Db(),ht=kt(),AIn=Bm(),Cn=pd(),RIn=ga(),wIn=XW(),kIn=mue(),Cue=bnt(),wnt=pn(),IIn=hue(),xIn={elements:CIn,values:MIn,discriminator:LIn,properties:Tnt,optionalProperties:Tnt,enum:jIn,type:UIn,ref:FIn};function knt(e,t){let n=Rnt.getCompilingSchema.call(this,e);if(n)return n;let{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new ht.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a=o.scopeName("parse"),c={self:this,gen:o,schema:e.schema,schemaEnv:e,definitions:t,data:Cn.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,OIn(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Cn.default.scope)}return ${l}`;let f=new Function(`${Cn.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.parse=f}catch(l){throw u&&this.logger.error("Error compiling parser, function code:",u),delete e.parse,delete e.parseName,l}finally{this._compilations.delete(e)}return e}jue.default=knt;var Pue=(0,ht._)`undefined`;function OIn(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,ht._)`${Cn.default.json}, ${Cn.default.jsonPos}, ${Cn.default.jsonPart}`,!1,()=>{t.let(Cn.default.data),t.let(r),t.assign((0,ht._)`${n}.message`,Pue),t.assign((0,ht._)`${n}.position`,Pue),t.assign(Cn.default.jsonPos,(0,ht._)`${Cn.default.jsonPos} || 0`),t.const(Cn.default.jsonLen,(0,ht._)`${Cn.default.json}.length`),n4(e),Uue(e),t.if(Cn.default.jsonPart,()=>{t.assign((0,ht._)`${n}.position`,Cn.default.jsonPos),t.return(Cn.default.data)}),t.if((0,ht._)`${Cn.default.jsonPos} === ${Cn.default.jsonLen}`,()=>t.return(Cn.default.data)),qk(e)})}function n4(e){let t;for(let n of vIn.jtdForms)if(n in e.schema){t=n;break}t?PIn(e,xIn[t]):Due(e)}var NIn=Ant(!0,Ant(!1,qk));function PIn(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);kM(e,"null",t,()=>n.assign(i,null))}function CIn(e){let{gen:t,schema:n,data:r}=e;_h(e,"[");let i=t.let("i",0);t.assign(r,(0,ht._)`[]`),Mue(e,"]",()=>{let s=t.let("el");n4({...e,schema:n.elements,data:s}),t.assign((0,ht._)`${r}[${i}++]`,s)})}function MIn(e){let{gen:t,schema:n,data:r}=e;_h(e,"{"),t.assign(r,(0,ht._)`{}`),Mue(e,"}",()=>DIn(e,n.values))}function Mue(e,t,n){Int(e,t,n),_h(e,t)}function Int(e,t,n){let{gen:r}=e;r.for((0,ht._)`;${Cn.default.jsonPos}<${Cn.default.jsonLen} && ${r4(1)}!==${t};`,()=>{n(),kM(e,",",()=>r.break(),i)});function i(){kM(e,t,()=>{},qk)}}function DIn(e,t){let{gen:n}=e,r=n.let("key");cT({...e,data:r}),_h(e,":"),Ont(e,r,t)}function LIn(e){let{gen:t,data:n,schema:r}=e,{discriminator:i,mapping:s}=r;_h(e,"{"),t.assign(n,(0,ht._)`{}`);let o=t.const("pos",Cn.default.jsonPos),a=t.let("value"),c=t.let("tag");Int(e,"}",()=>{let u=t.let("key");cT({...e,data:u}),_h(e,":"),t.if((0,ht._)`${u} === ${i}`,()=>{cT({...e,data:c}),t.assign((0,ht._)`${n}[${u}]`,c),t.break()},()=>Due({...e,data:a}))}),t.assign(Cn.default.jsonPos,o),t.if((0,ht._)`${c} === undefined`),ng(e,(0,ht.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,ht._)`${c} === ${u}`),xnt({...e,schema:s[u]},i);t.else(),ng(e,(0,ht.str)`discriminator value not in schema`),t.endIf()}function Tnt(e){let{gen:t,data:n}=e;_h(e,"{"),t.assign(n,(0,ht._)`{}`),xnt(e)}function xnt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(Mue(e,"}",()=>{let c=n.let("key");if(cT({...e,data:c}),_h(e,":"),n.if(!1),vnt(e,c,s),vnt(e,c,o),t){n.elseIf((0,ht._)`${c} === ${t}`);let u=n.let("tag");cT({...e,data:u})}n.else(),a?Due({...e,data:(0,ht._)`${i}[${c}]`}):ng(e,(0,ht.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,RIn.hasPropFunc)(n),u=(0,ht.and)(...Object.keys(s).map(l=>(0,ht._)`${c}.call(${i}, ${l})`));n.if((0,ht.not)(u),()=>ng(e,(0,ht.str)`missing required properties`))}}function vnt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,ht._)`${t} === ${i}`),Ont(e,t,n[i])}function Ont(e,t,n){n4({...e,schema:n,data:(0,ht._)`${e.data}[${t}]`})}function UIn(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":NIn(e);break;case"string":cT(e);break;case"timestamp":{cT(e);let s=(0,wnt.useFunc)(t,IIn.default),{allowDate:o,parseDate:a}=i.opts,c=o?(0,ht._)`!${s}(${r}, true)`:(0,ht._)`!${s}(${r})`,u=a?(0,ht.or)(c,(0,ht._)`(${r} = new Date(${r}), false)`,(0,ht._)`isNaN(${r}.valueOf())`):c;t.if(u,()=>ng(e,(0,ht.str)`invalid timestamp`));break}case"float32":case"float64":Nue(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))Nue(e,16),s==="uint32"&&t.if((0,ht._)`${r} < 0`,()=>ng(e,(0,ht.str)`integer out of range`));else{let[o,a,c]=kIn.intRange[s];Nue(e,c),t.if((0,ht._)`${r} < ${o} || ${r} > ${a}`,()=>ng(e,(0,ht.str)`integer out of range`))}}}}function cT(e){_h(e,'"'),Lue(e,Cue.parseJsonString)}function jIn(e){let{gen:t,data:n,schema:r}=e,i=r.enum;_h(e,'"'),t.if(!1);for(let s of i){let o=JSON.stringify(s).slice(1);t.elseIf((0,ht._)`${r4(o.length)} === ${o}`),t.assign(n,(0,ht.str)`${s}`),t.add(Cn.default.jsonPos,o.length)}t.else(),qk(e),t.endIf()}function Nue(e,t){let{gen:n}=e;Uue(e),n.if((0,ht._)`"-0123456789".indexOf(${r4(1)}) < 0`,()=>qk(e),()=>Lue(e,Cue.parseJsonNumber,t))}function Ant(e,t){return n=>{let{gen:r,data:i}=n;kM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function FIn(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new AIn.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,wIn.hasRef)(a))return n4({...e,schema:a});let{root:c}=s,u=knt.call(n,new Rnt.SchemaEnv({schema:a,root:c}),r);Nnt(e,HIn(t,u),!0)}function HIn(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,ht._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function Due(e){Lue(e,Cue.parseJson)}function Lue(e,t,n){Nnt(e,(0,wnt.useFunc)(e.gen,t),n)}function Nnt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,ht._)`${t}(${Cn.default.json}, ${Cn.default.jsonPos}${n?(0,ht._)`, ${n}`:ht.nil})`),r.assign(Cn.default.jsonPos,(0,ht._)`${t}.position`),r.if((0,ht._)`${i} === undefined`,()=>ng(e,(0,ht._)`${t}.message`))}function _h(e,t){kM(e,t,qk)}function kM(e,t,n,r){let{gen:i}=e,s=t.length;Uue(e),i.if((0,ht._)`${r4(s)} === ${t}`,()=>{i.add(Cn.default.jsonPos,s),r?.(e)},()=>n(e))}function Uue({gen:e,char:t}){e.code((0,ht._)`while((${t}=${Cn.default.json}[${Cn.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Cn.default.jsonPos}++;`)}function r4(e){return e===1?(0,ht._)`${Cn.default.json}[${Cn.default.jsonPos}]`:(0,ht._)`${Cn.default.json}.slice(${Cn.default.jsonPos}, ${Cn.default.jsonPos}+${e})`}function qk(e){ng(e,(0,ht._)`"unexpected token " + ${Cn.default.json}[${Cn.default.jsonPos}]`)}function ng({gen:e,parseName:t},n){e.assign((0,ht._)`${t}.message`,n),e.assign((0,ht._)`${t}.position`,Cn.default.jsonPos),e.return(Pue)}});var que=w((gi,Hue)=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.MissingRefError=gi.ValidationError=gi.CodeGen=gi.Name=gi.nil=gi.stringify=gi.str=gi._=gi.KeywordCxt=gi.Ajv=void 0;var qIn=mse(),BIn=ant(),GIn=dnt(),zIn=_nt(),VIn=Pnt(),Fue="JTD-meta-schema",Bk=class extends qIn.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(BIn.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(GIn.default,Fue,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Fue)?Fue:void 0)}compileSerializer(t){let n=this._addSchema(t);return n.serialize||this._compileSerializer(n)}compileParser(t){let n=this._addSchema(t);return n.parse||this._compileParser(n)}_compileSerializer(t){if(zIn.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(VIn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};gi.Ajv=Bk;Hue.exports=gi=Bk;Hue.exports.Ajv=Bk;Object.defineProperty(gi,"__esModule",{value:!0});gi.default=Bk;var WIn=Yw();Object.defineProperty(gi,"KeywordCxt",{enumerable:!0,get:function(){return WIn.KeywordCxt}});var Gk=kt();Object.defineProperty(gi,"_",{enumerable:!0,get:function(){return Gk._}});Object.defineProperty(gi,"str",{enumerable:!0,get:function(){return Gk.str}});Object.defineProperty(gi,"stringify",{enumerable:!0,get:function(){return Gk.stringify}});Object.defineProperty(gi,"nil",{enumerable:!0,get:function(){return Gk.nil}});Object.defineProperty(gi,"Name",{enumerable:!0,get:function(){return Gk.Name}});Object.defineProperty(gi,"CodeGen",{enumerable:!0,get:function(){return Gk.CodeGen}});var KIn=hC();Object.defineProperty(gi,"ValidationError",{enumerable:!0,get:function(){return KIn.default}});var ZIn=Bm();Object.defineProperty(gi,"MissingRefError",{enumerable:!0,get:function(){return ZIn.default}})});var Bue=w((s4r,Cnt)=>{"use strict";var YIn=P2();Cnt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:YIn,addUsedSchema:!1,allErrors:!1})});var Lnt=w((o4r,Dnt)=>{"use strict";var JIn=Fb().default,XIn=que(),Mnt=Bue(),Gue=class{constructor(t,n){n.mode==="JTD"?this.ajv=new XIn(Object.assign({},Mnt,n.customOptions)):this.ajv=new JIn(Object.assign({},Mnt,n.customOptions));let r=!0;if(n.plugins&&n.plugins.length>0)for(let s of n.plugins)Array.isArray(s)?(r=r&&s[0].name!=="formatsPlugin",s[0](this.ajv,s[1])):(r=r&&s.name!=="formatsPlugin",s(this.ajv));r&&Y2()(this.ajv),n.onCreate?.(this.ajv);let i=Object.values(t);for(let s of i)this.ajv.addSchema(s)}buildValidatorFunction({schema:t}){if(t.$id){let n=this.ajv.getSchema(t.$id);if(n)return n}return this.ajv.compile(t)}};Dnt.exports=Gue});var jnt=w((a4r,Unt)=>{"use strict";var QIn=que(),$In=Bue(),zue=class{constructor(t,n){this.ajv=new QIn(Object.assign({},$In,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};Unt.exports=zue});var qnt=w((xM,Hnt)=>{"use strict";Object.defineProperty(xM,"__esModule",{value:!0});var IM=y2(),xf=qw();function Fnt(e,t){if(!e.opts.code.source)throw new Error("moduleCode: ajv instance must have code.source option");let{_n:n}=e.scope.opts;return typeof t=="function"?i(t.source):t!==void 0?s(t,r):s(e.schemas,a=>a.meta?void 0:e.compile(a.schema));function r(a){let c=e.getSchema(a);if(!c)throw new Error(`moduleCode: no schema with id ${a}`);return c}function i(a){let c={},u=a?.validateName,l=o(c,a);return e.opts.code.esm?`"use strict";${n}export const validate = ${u};${n}export default ${u};${n}${l}`:`"use strict";${n}module.exports = ${u};${n}module.exports.default = ${u};${n}${l}`}function s(a,c){var u;let l={},d=(0,xf._)`"use strict";`;for(let f in a){let p=c(a[f]);if(p){let h=o(l,p.source),m=e.opts.code.esm?(0,xf._)`export const ${(0,xf.getEsmExportName)(f)}`:(0,xf._)`exports${(0,xf.getProperty)(f)}`;d=(0,xf._)`${d}${n}${m} = ${(u=p.source)===null||u===void 0?void 0:u.validateName};${n}${h}`}}return`${d}`}function o(a,c){if(!c)throw new Error('moduleCode: function does not have "source" property');if(f(c.validateName)===IM.UsedValueState.Completed)return xf.nil;p(c.validateName,IM.UsedValueState.Started);let u=e.scope.scopeCode(c.scopeValues,a,d),l=new xf._Code(`${u}${n}${c.validateCode}`);return c.evaluated?(0,xf._)`${l}${c.validateName}.evaluated = ${c.evaluated};${n}`:l;function d(h){var m;let y=(m=h.value)===null||m===void 0?void 0:m.ref;if(h.prefix==="validate"&&typeof y=="function")return o(a,y.source);if((h.prefix==="root"||h.prefix==="wrapper")&&typeof y=="object"){let{validate:g,validateName:E}=y;if(!E)throw new Error("ajv internal error");let S=e.opts.code.es5?IM.varKinds.var:IM.varKinds.const,_=(0,xf._)`${S} ${h} = {validate: ${E}};`;if(f(E)===IM.UsedValueState.Started)return _;let b=o(a,g?.source);return(0,xf._)`${_}${n}${b}`}}function f(h){var m;return(m=a[h.prefix])===null||m===void 0?void 0:m.get(h)}function p(h,m){let{prefix:y}=h;(a[y]=a[y]||new Map).set(h,m)}}}Hnt.exports=xM=Fnt;Object.defineProperty(xM,"__esModule",{value:!0});xM.default=Fnt});var znt=w((c4r,Gnt)=>{"use strict";var Bnt=Vue(),e0n=qnt().default;function t0n(e={readMode:!0}){if(e.readMode===!0&&!e.restoreFunction)throw new Error("You must provide a restoreFunction options when readMode ON");if(e.readMode!==!0&&!e.storeFunction)throw new Error("You must provide a storeFunction options when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=Bnt();return function(r,i={}){(!i.customOptions||!i.customOptions.code)&&(i.customOptions=Object.assign({},i.customOptions,{code:{source:!0}}));let s=t(r,i);return function(o){let a=s(o),c=e0n(s[Bnt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}Gnt.exports=t0n});var Vue=w((u4r,zk)=>{"use strict";var Wnt=Symbol.for("fastify.ajv-compiler.reference"),n0n=Lnt(),r0n=jnt();function Wue(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Vnt({},s);if(n.has(o))return n.get(o);let a=new r0n(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Vnt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new n0n(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[Wnt]=a),c}}function Vnt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}zk.exports=Wue;zk.exports.default=Wue;zk.exports.AjvCompiler=Wue;zk.exports.AjvReference=Wnt;zk.exports.StandaloneValidator=znt()});var i4=w(Ynt=>{var Knt=Object.prototype.hasOwnProperty;function Znt(e,t,n){for(n of e.keys())if(OM(n,t))return n}function OM(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&OM(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i=="object"&&(i=Znt(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i=="object"&&(i=Znt(t,i),!i)||!OM(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(Knt.call(e,n)&&++r&&!Knt.call(t,n)||!(n in t)||!OM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Ynt.dequal=OM});var $nt=w((d4r,Qnt)=>{"use strict";var{dequal:Jnt}=i4(),i0n=Symbol.for("json-schema-ref"),Kue=class{#t;#n;#i;#e;#r;constructor(t={}){this.#t={},this.#n={},this.#i=t.insertRefSymbol??!1,this.#e=t.allowEqualDuplicates??!0,this.#r=t.cloneSchemaWithoutRefs??!1}addSchema(t,n,r=!0){r&&(t.$id!==void 0&&t.$id.charAt(0)!=="#"?n=t.$id:this.#o(t,n));let i=t.$id;i!==void 0&&typeof i=="string"&&(i.charAt(0)==="#"?this.#a(t,n,i):(this.#o(t,i),n=i));let s=t.$ref;if(s!==void 0&&typeof s=="string"){let{refSchemaId:o,refJsonPointer:a}=this.#s(s,n);this.#t[n].refs.push({schemaId:o,jsonPointer:a})}for(let o in t)typeof t[o]=="object"&&t[o]!==null&&this.addSchema(t[o],n,!1)}getSchema(t,n="#"){let r=this.#t[t];if(r===void 0)throw new Error(`Cannot resolve ref "${t}${n}". Schema with id "${t}" is not found.`);return r.anchors[n]!==void 0?r.anchors[n]:Xnt(r.schema,n)}hasSchema(t){return this.#t[t]!==void 0}getSchemaRefs(t){let n=this.#t[t];if(n===void 0)throw new Error(`Schema with id "${t}" is not found.`);return n.refs}getSchemaDependencies(t,n={}){let r=this.#t[t];for(let i of r.refs){let s=i.schemaId;s===t||n[s]!==void 0||(n[s]=this.getSchema(s),this.getSchemaDependencies(s,n))}return n}derefSchema(t){if(this.#n[t]!==void 0)return;let n=this.#t[t];if(n===void 0)throw new Error(`Schema with id "${t}" is not found.`);!this.#r&&n.refs.length===0&&(this.#n[t]={schema:n.schema,anchors:n.anchors});let r=[];this.#c(n.schema,t,!0,r);let i=this.getSchemaDependencies(t);for(let s in i){let o=i[s];this.#c(o,s,!0,r)}for(let s of r){let{refSchemaId:o,refJsonPointer:a}=this.#s(s.ref,s.sourceSchemaId),c=this.getDerefSchema(o,a);if(c===null)throw new Error(`Cannot resolve ref "${s.ref}". Ref "${a}" is not found in schema "${o}".`);s.targetSchema=c,s.targetSchemaId=o}for(let s of r)this.#u(s,r)}getDerefSchema(t,n="#"){let r=this.#n[t];return r===void 0&&(this.derefSchema(t),r=this.#n[t]),r.anchors[n]!==void 0?r.anchors[n]:Xnt(r.schema,n)}#s(t,n){let r=t.indexOf("#");return r===-1?{refSchemaId:t,refJsonPointer:"#"}:r===0?{refSchemaId:n,refJsonPointer:t}:{refSchemaId:t.slice(0,r),refJsonPointer:t.slice(r)}}#c(t,n,r,i=[]){let s=Array.isArray(t)?[...t]:{...t};r&&(t.$id!==void 0&&t.$id.charAt(0)!=="#"?n=t.$id:this.#l(s,n));let o=s.$id;o!==void 0&&typeof o=="string"&&(o.charAt(0)==="#"?this.#d(s,n,o):(this.#l(s,o),n=o)),s.$ref!==void 0&&i.push({ref:s.$ref,sourceSchemaId:n,sourceSchema:s});for(let a in s){let c=s[a];typeof c=="object"&&c!==null&&(s[a]=this.#c(c,n,!1,i))}return s}#u(t,n){let{sourceSchema:r,targetSchema:i}=t;if(r.$ref){if(this.#i&&(r[i0n]=r.$ref),delete r.$ref,i.$ref){let s=n.find(o=>o.sourceSchema===i);this.#u(s,n)}for(let s in i)if(s!=="$id"){if(r[s]!==void 0){if(Jnt(r[s],i[s]))continue;throw new Error(`Cannot resolve ref "${t.ref}". Property "${s}" already exists in schema "${t.sourceSchemaId}".`)}r[s]=i[s]}t.isResolved=!0}}#o(t,n){let r=this.#t[n];if(r!==void 0){if(this.#e&&Jnt(t,r.schema))return;throw new Error(`There is already another schema with id "${n}".`)}this.#t[n]={schema:t,anchors:{},refs:[]}}#a(t,n,r){let{anchors:i}=this.#t[n];if(i[r]!==void 0)throw new Error(`There is already another anchor "${r}" in schema "${n}".`);i[r]=t}#l(t,n){this.#n[n]===void 0&&(this.#n[n]={schema:t,anchors:{}})}#d(t,n,r){let{anchors:i}=this.#n[n];i[r]=t}};function Xnt(e,t){let n=t.split("/"),r=e;for(let i of n)if(!(i===""||i==="#")){if(typeof r!="object"||r===null)return null;r=r[i]}return r??null}Qnt.exports={RefResolver:Kue}});var Yue=w((f4r,ert)=>{"use strict";var s0n=Fb(),o0n=P2(),a0n=Y2(),c0n=xW()({proto:!0}),Zue=class e{constructor(t){this.ajv=new s0n({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:o0n}),a0n(this.ajv),this.ajv.addKeyword({keyword:"fjs_type",type:"object",errors:!1,validate:(n,r)=>r&&typeof r.toJSON=="function"}),this._ajvSchemas={},this._ajvOptions=t||{}}addSchema(t,n){let r=t.$id||n;if(t.$id!==void 0&&t.$id[0]==="#"&&(r=n+t.$id),this.ajv.refs[r]===void 0&&this.ajv.schemas[r]===void 0){let i=c0n(t);this.convertSchemaToAjvFormat(i),this.ajv.addSchema(i,r),this._ajvSchemas[r]=t}}validate(t,n){return this.ajv.validate(t,n)}convertSchemaToAjvFormat(t){if(t!==null){t.type==="string"?(t.fjs_type="string",t.type=["string","object"]):Array.isArray(t.type)&&t.type.includes("string")&&!t.type.includes("object")&&(t.fjs_type="string",t.type.push("object"));for(let n in t)typeof t[n]=="object"&&this.convertSchemaToAjvFormat(t[n])}}getState(){return{ajvOptions:this._ajvOptions,ajvSchemas:this._ajvSchemas}}static restoreFromState(t){let n=new e(t.ajvOptions);for(let[r,i]of Object.entries(t.ajvSchemas))n.ajv.addSchema(i,r);return n}};ert.exports=Zue});var nrt=w((p4r,trt)=>{"use strict";var Jue=class e{constructor(t,n,r="#"){this.schema=t,this.schemaId=n,this.jsonPointer=r}getPropertyLocation(t){return new e(this.schema[t],this.schemaId,this.jsonPointer+"/"+t)}getSchemaRef(){return this.schemaId+this.jsonPointer}};trt.exports=Jue});var art=w((h4r,Que)=>{"use strict";Que.exports=Fe;Que.exports.default=Fe;var u0n={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0},rrt={enum:["array","boolean","integer","null","number","object","string"]},irt=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,l0n=K2().fullFormats.uri,srt=K2().fullFormats.regex;function bd(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o;return typeof e=="number"&&!(e%1)&&!isNaN(e)&&isFinite(e)?o===a&&typeof e=="number"&&isFinite(e)&&(e<0||isNaN(e))?(bd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(bd.errors=s,o===0):(bd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var Xue={validate:Fe};function Bc(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0;if(o===0)if(Array.isArray(e)){if(e.length<1)return Bc.errors=[{instancePath:t,schemaPath:"#/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"}],!1;{var a=!0;let c=e.length;for(let u=0;u",limit:0},message:"must be > 0"}],!1}else return Fe.errors=[{instancePath:t+"/multipleOf",schemaPath:"#/properties/multipleOf/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.maximum!==void 0){let S=e.maximum,_=o;if(!(typeof S=="number"&&isFinite(S)))return Fe.errors=[{instancePath:t+"/maximum",schemaPath:"#/properties/maximum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.exclusiveMaximum!==void 0){let S=e.exclusiveMaximum,_=o;if(!(typeof S=="number"&&isFinite(S)))return Fe.errors=[{instancePath:t+"/exclusiveMaximum",schemaPath:"#/properties/exclusiveMaximum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.minimum!==void 0){let S=e.minimum,_=o;if(!(typeof S=="number"&&isFinite(S)))return Fe.errors=[{instancePath:t+"/minimum",schemaPath:"#/properties/minimum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.exclusiveMinimum!==void 0){let S=e.exclusiveMinimum,_=o;if(!(typeof S=="number"&&isFinite(S)))return Fe.errors=[{instancePath:t+"/exclusiveMinimum",schemaPath:"#/properties/exclusiveMinimum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.maxLength!==void 0){let S=e.maxLength,_=o,b=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return Fe.errors=[{instancePath:t+"/maxLength",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===b&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return Fe.errors=[{instancePath:t+"/maxLength",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=_===o}else var a=!0;if(a){if(e.minLength!==void 0){let S=o;bd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?bd.errors:s.concat(bd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.pattern!==void 0){let S=e.pattern,_=o;if(o===_&&o===_)if(typeof S=="string"){if(!srt(S))return Fe.errors=[{instancePath:t+"/pattern",schemaPath:"#/properties/pattern/format",keyword:"format",params:{format:"regex"},message:'must match format "regex"'}],!1}else return Fe.errors=[{instancePath:t+"/pattern",schemaPath:"#/properties/pattern/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=_===o}else var a=!0;if(a){if(e.additionalItems!==void 0){let S=o;Fe(e.additionalItems,{instancePath:t+"/additionalItems",parentData:e,parentDataProperty:"additionalItems",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.items!==void 0){let S=e.items,_=o,b=o,T=!1,A=o;Fe(S,{instancePath:t+"/items",parentData:e,parentDataProperty:"items",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var c=A===o;if(T=T||c,!T){let k=o;Bc(S,{instancePath:t+"/items",parentData:e,parentDataProperty:"items",rootData:i})||(s=s===null?Bc.errors:s.concat(Bc.errors),o=s.length);var c=k===o;T=T||c}if(T)o=b,s!==null&&(b?s.length=b:s=null);else{let k={instancePath:t+"/items",schemaPath:"#/properties/items/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[k]:s.push(k),o++,Fe.errors=s,!1}var a=_===o}else var a=!0;if(a){if(e.maxItems!==void 0){let S=e.maxItems,_=o,b=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return Fe.errors=[{instancePath:t+"/maxItems",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===b&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return Fe.errors=[{instancePath:t+"/maxItems",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=_===o}else var a=!0;if(a){if(e.minItems!==void 0){let S=o;bd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?bd.errors:s.concat(bd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.uniqueItems!==void 0){let S=o;if(typeof e.uniqueItems!="boolean")return Fe.errors=[{instancePath:t+"/uniqueItems",schemaPath:"#/properties/uniqueItems/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;var a=S===o}else var a=!0;if(a){if(e.contains!==void 0){let S=o;Fe(e.contains,{instancePath:t+"/contains",parentData:e,parentDataProperty:"contains",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.maxProperties!==void 0){let S=e.maxProperties,_=o,b=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return Fe.errors=[{instancePath:t+"/maxProperties",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===b&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return Fe.errors=[{instancePath:t+"/maxProperties",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=_===o}else var a=!0;if(a){if(e.minProperties!==void 0){let S=o;bd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?bd.errors:s.concat(bd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.required!==void 0){let S=e.required,_=o;if(o===o)if(Array.isArray(S)){var u=!0;let A=S.length;for(let R=0;R1){let x={};for(;R--;){let N=S[R];if(typeof N=="string"){if(typeof x[N]=="number"){return k=x[N],Fe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/uniqueItems",keyword:"uniqueItems",params:{i:R,j:k},message:"must NOT have duplicate items (items ## "+k+" and "+R+" are identical)"}],!1;break}x[N]=R}}}}}else return Fe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=_===o}else var a=!0;if(a){if(e.additionalProperties!==void 0){let S=o;Fe(e.additionalProperties,{instancePath:t+"/additionalProperties",parentData:e,parentDataProperty:"additionalProperties",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.definitions!==void 0){let S=e.definitions,_=o;if(o===_)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let A=o;Fe(S[T],{instancePath:t+"/definitions/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var l=A===o;if(!l)break}else return Fe.errors=[{instancePath:t+"/definitions",schemaPath:"#/properties/definitions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=_===o}else var a=!0;if(a){if(e.properties!==void 0){let S=e.properties,_=o;if(o===_)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let A=o;Fe(S[T],{instancePath:t+"/properties/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var d=A===o;if(!d)break}else return Fe.errors=[{instancePath:t+"/properties",schemaPath:"#/properties/properties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=_===o}else var a=!0;if(a){if(e.patternProperties!==void 0){let S=e.patternProperties,_=o;if(o===_)if(S&&typeof S=="object"&&!Array.isArray(S)){for(let T in S){let A=o;if(o===A&&typeof T=="string"&&!srt(T)){let R={instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/propertyNames/format",keyword:"format",params:{format:"regex"},message:'must match format "regex"',propertyName:T};s===null?s=[R]:s.push(R),o++}var f=A===o;if(!f){let R={instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/propertyNames",keyword:"propertyNames",params:{propertyName:T},message:"property name must be valid"};return s===null?s=[R]:s.push(R),o++,Fe.errors=s,!1;break}}if(f)for(let T in S){let A=o;Fe(S[T],{instancePath:t+"/patternProperties/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var p=A===o;if(!p)break}}else return Fe.errors=[{instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=_===o}else var a=!0;if(a){if(e.dependencies!==void 0){let S=e.dependencies,_=o;if(o===_)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let A=S[T],R=o,k=o,x=!1,N=o;Fe(A,{instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var h=N===o;if(x=x||h,!x){let P=o;if(o===o)if(Array.isArray(A)){var m=!0;let V=A.length;for(let Z=0;Z1){let G={};for(;Z--;){let X=A[Z];if(typeof X=="string"){if(typeof G[X]=="number"){B=G[X];let q={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/definitions/stringArray/uniqueItems",keyword:"uniqueItems",params:{i:Z,j:B},message:"must NOT have duplicate items (items ## "+B+" and "+Z+" are identical)"};s===null?s=[q]:s.push(q),o++;break}G[X]=Z}}}}}else{let V={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"};s===null?s=[V]:s.push(V),o++}var h=P===o;x=x||h}if(x)o=k,s!==null&&(k?s.length=k:s=null);else{let P={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/dependencies/additionalProperties/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[P]:s.push(P),o++,Fe.errors=s,!1}var y=R===o;if(!y)break}else return Fe.errors=[{instancePath:t+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=_===o}else var a=!0;if(a){if(e.propertyNames!==void 0){let S=o;Fe(e.propertyNames,{instancePath:t+"/propertyNames",parentData:e,parentDataProperty:"propertyNames",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.enum!==void 0){let S=e.enum,_=o;if(o===_)if(Array.isArray(S)){if(S.length<1)return Fe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"}],!1;{let T=S.length,A;if(T>1){e:for(;T--;)for(A=T;A--;)if(ort(S[T],S[A])){return Fe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/uniqueItems",keyword:"uniqueItems",params:{i:T,j:A},message:"must NOT have duplicate items (items ## "+A+" and "+T+" are identical)"}],!1;break e}}}}else return Fe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=_===o}else var a=!0;if(a){if(e.type!==void 0){let S=e.type,_=o,b=o,T=!1,A=o;if(!(S==="array"||S==="boolean"||S==="integer"||S==="null"||S==="number"||S==="object"||S==="string")){let k={instancePath:t+"/type",schemaPath:"#/definitions/simpleTypes/enum",keyword:"enum",params:{allowedValues:rrt.enum},message:"must be equal to one of the allowed values"};s===null?s=[k]:s.push(k),o++}var g=A===o;if(T=T||g,!T){let k=o;if(o===k)if(Array.isArray(S))if(S.length<1){let N={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};s===null?s=[N]:s.push(N),o++}else{var E=!0;let N=S.length;for(let P=0;P1){e:for(;P--;)for(D=P;D--;)if(ort(S[P],S[D])){let j={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/uniqueItems",keyword:"uniqueItems",params:{i:P,j:D},message:"must NOT have duplicate items (items ## "+D+" and "+P+" are identical)"};s===null?s=[j]:s.push(j),o++;break e}}}}else{let N={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/type",keyword:"type",params:{type:"array"},message:"must be array"};s===null?s=[N]:s.push(N),o++}var g=k===o;T=T||g}if(T)o=b,s!==null&&(b?s.length=b:s=null);else{let k={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[k]:s.push(k),o++,Fe.errors=s,!1}var a=_===o}else var a=!0;if(a){if(e.format!==void 0){let S=o;if(typeof e.format!="string")return Fe.errors=[{instancePath:t+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.contentMediaType!==void 0){let S=o;if(typeof e.contentMediaType!="string")return Fe.errors=[{instancePath:t+"/contentMediaType",schemaPath:"#/properties/contentMediaType/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.contentEncoding!==void 0){let S=o;if(typeof e.contentEncoding!="string")return Fe.errors=[{instancePath:t+"/contentEncoding",schemaPath:"#/properties/contentEncoding/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.if!==void 0){let S=o;Fe(e.if,{instancePath:t+"/if",parentData:e,parentDataProperty:"if",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.then!==void 0){let S=o;Fe(e.then,{instancePath:t+"/then",parentData:e,parentDataProperty:"then",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.else!==void 0){let S=o;Fe(e.else,{instancePath:t+"/else",parentData:e,parentDataProperty:"else",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.allOf!==void 0){let S=o;Bc(e.allOf,{instancePath:t+"/allOf",parentData:e,parentDataProperty:"allOf",rootData:i})||(s=s===null?Bc.errors:s.concat(Bc.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.anyOf!==void 0){let S=o;Bc(e.anyOf,{instancePath:t+"/anyOf",parentData:e,parentDataProperty:"anyOf",rootData:i})||(s=s===null?Bc.errors:s.concat(Bc.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.oneOf!==void 0){let S=o;Bc(e.oneOf,{instancePath:t+"/oneOf",parentData:e,parentDataProperty:"oneOf",rootData:i})||(s=s===null?Bc.errors:s.concat(Bc.errors),o=s.length);var a=S===o}else var a=!0;if(a)if(e.not!==void 0){let S=o;Fe(e.not,{instancePath:t+"/not",parentData:e,parentDataProperty:"not",rootData:i})||(s=s===null?Fe.errors:s.concat(Fe.errors),o=s.length);var a=S===o}else var a=!0}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return Fe.errors=s,o===0}});var nle=w((m4r,crt)=>{"use strict";var $ue=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Failed to merge "${t}" keyword schemas.`,this.schemas=n}},ele=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Resolver for "${t}" keyword not found.`,this.schemas=n}},tle=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};crt.exports={MergeError:$ue,ResolverNotFoundError:ele,InvalidOnConflictOptionError:tle}});var drt=w((g4r,lrt)=>{"use strict";var{dequal:d0n}=i4(),{MergeError:rle}=nle();function urt(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function f0n(e,t,n){let r=urt(t);if(r.length===0)throw new rle(e,t);n[e]=r}function p0n(e,t,n){for(let i=0;ic?r(c,a%c):a,i=(a,c)=>a*c/r(a,c),s=1;for(let a of t)for(;a*s%1!==0;)s*=10;let o=t[0]*s;for(let a of t)o=i(o,a*s);n[e]=o/s}function S0n(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:T0n}=i4(),Ki=drt(),a4=nle(),hrt={$id:Ki.skip,type:Ki.hybridArraysIntersection,enum:Ki.arraysIntersection,minLength:Ki.maxNumber,maxLength:Ki.minNumber,minimum:Ki.maxNumber,maximum:Ki.minNumber,multipleOf:Ki.commonMultiple,exclusiveMinimum:Ki.maxNumber,exclusiveMaximum:Ki.minNumber,minItems:Ki.maxNumber,maxItems:Ki.minNumber,maxProperties:Ki.minNumber,minProperties:Ki.maxNumber,const:Ki.allEqual,default:Ki.allEqual,format:Ki.allEqual,required:Ki.arraysUnion,properties:I0n,patternProperties:o4,additionalProperties:s4,items:R0n,additionalItems:w0n,definitions:o4,$defs:o4,nullable:Ki.booleanAnd,oneOf:frt,anyOf:frt,allOf:Ki.arraysUnion,not:s4,if:x0n,then:Ki.skip,else:Ki.skip,dependencies:prt,dependentRequired:prt,dependentSchemas:o4,propertyNames:s4,uniqueItems:Ki.booleanOr,contains:s4};function s4(e,t,n,r,i){n[e]=Of(t,i)}function v0n(e){let t=[[]];for(let n of e){let r=[];for(let i of t)for(let s of n)r.push([...i,s]);t=r}return t}function frt(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=v0n(t),o=[];for(let a of s)try{let c=Of(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof a4.MergeError)continue;throw c}n[e]=o}function A0n(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:N0n}=yrt();function P0n(e){return N0n(e,{onConflict:"skip"})}Srt.exports=P0n});var Ert=w((_4r,ile)=>{"use strict";function C0n(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') +`),V=VAn.bind(null,{[Yet]:"",[Zet]:o,[Xet]:N,[Jet]:eue,[tue]:x,[Qet]:k}),K="";d!==null&&(f===void 0?K=V(d):K=V(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?itt:fRn,B=$().indexOf(":")+1;if(E&&!h)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(g&&typeof g!="function")throw Error(`Unknown mixin type "${typeof g}" - expected "function"`);if(R&&typeof R!="string")throw Error(`Unknown msgPrefix type "${typeof R}" - expected "string"`);jAn(p,h,E);let X=ntt(h,E);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:X,messageKey:c,errorKey:u}}),BAn(m);let G=qAn(m);return Object.assign(t,{levels:X,[oRn]:G,[aRn]:E,[QAn]:r,[JAn]:$,[XAn]:B,[Jet]:eue,[tue]:x,[Xet]:N,[eRn]:F,[tRn]:C,[nRn]:c,[rRn]:u,[iRn]:l,[uRn]:l?`,${JSON.stringify(l)}:{`:"",[Zet]:o,[sRn]:g,[lRn]:y,[Yet]:K,[Qet]:k,[cRn]:_,silent:KAn,onChild:A,[dRn]:R}),Object.setPrototypeOf(t,UAn()),HAn(t),t[$An](p),t}vd.exports=nue;vd.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=Ket(e.dest||process.stdout.fd),Wet(e)):Wet({dest:Ket(e),minLength:0});vd.exports.transport=Uce();vd.exports.multistream=Vet();vd.exports.levels=ntt();vd.exports.stdSerializers=SRn;vd.exports.stdTimeFunctions=Object.assign({},ett);vd.exports.symbols=ttt;vd.exports.version=YAn;vd.exports.default=nue;vd.exports.pino=nue});var ctt=w((yKr,att)=>{"use strict";var qW=stt(),{serializersSym:ott}=qW.symbols,{FST_ERR_LOG_INVALID_DESTINATION:ERn}=Ko();function _Rn(e){if(e.stream&&e.file)throw new ERn;e.file&&(e.stream=qW.destination(e.file),delete e.file);let t=e.logger,n=e.genReqId,r=null;return t?(e.logger=void 0,e.genReqId=void 0,t[ott]&&(e.serializers=Object.assign({},e.serializers,t[ott])),r=t.child({},e),e.logger=t,e.genReqId=n):r=qW(e,e.stream),r}var bRn={req:function(t){return{method:t.method,url:t.url,version:t.headers&&t.headers["accept-version"],host:t.host,remoteAddress:t.ip,remotePort:t.socket?t.socket.remotePort:void 0}},err:qW.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};att.exports={serializers:bRn,createPinoLogger:_Rn}});var EM=w((SKr,ltt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:TRn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:vRn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:ARn,FST_ERR_LOG_INVALID_LOGGER:RRn}=Ko();function wRn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==utt&&BW(o,!0),o}function utt(e,t,n){return e.child(t,n)}function BW(e,t){let n=["info","error","debug","fatal","warn","trace","child"],r=e?n.filter(i=>!e[i]||typeof e[i]!="function"):n;if(r.length){if(r.length===n.length&&!t)return!1;throw RRn(r.join(","))}else return!0}function kRn(e){if(e.logger&&e.loggerInstance)throw new TRn;if(!e.loggerInstance&&!e.logger){let o=e$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=ctt();if(BW(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(BW(e.logger))throw vRn();if(e.loggerInstance)throw ARn();let r={};return Object.prototype.toString.call(e.logger)==="[object Object]"&&Reflect.ownKeys(e.logger).forEach(s=>{Object.defineProperty(r,s,{value:e.logger[s],writable:!0,enumerable:!0,configurable:!0})}),r.level=r.level||"info",r.serializers=Object.assign({},n,r.serializers),e.logger=r,{logger:t(e.logger),hasLogger:!0}}function IRn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}ltt.exports={createChildLogger:wRn,defaultChildLoggerFactory:utt,createLogger:kRn,validateLogger:BW,now:IRn}});var GW=w((EKr,dtt)=>{"use strict";dtt.exports=xRn;function Lk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function xRn(e){if(e=e||{},e.circles)return ORn(e);let t=new Map;if(t.set(Date,o=>new Date(o)),t.set(Map,(o,a)=>new Map(r(Array.from(o),a))),t.set(Set,(o,a)=>new Set(r(Array.from(o),a))),e.constructorHandlers)for(let o of e.constructorHandlers)t.set(o[0],o[1]);let n=null;return e.proto?s:i;function r(o,a){let c=Object.keys(o),u=new Array(c.length);for(let l=0;lnew Date(c)),r.set(Map,(c,u)=>new Map(s(Array.from(c),u))),r.set(Set,(c,u)=>new Set(s(Array.from(c),u))),e.constructorHandlers)for(let c of e.constructorHandlers)r.set(c[0],c[1]);let i=null;return e.proto?a:o;function s(c,u){let l=Object.keys(c),d=new Array(l.length);for(let f=0;f{"use strict";var PRn=GW()({circles:!1,proto:!0}),{kSchemaVisited:ftt,kSchemaResponse:NRn}=$s(),rue=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:CRn,FST_ERR_SCH_ALREADY_PRESENT:MRn,FST_ERR_SCH_DUPLICATE:DRn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:ptt}=Ko(),mtt=["params","body","querystring","query","headers"];function zW(e){this.store=e||{}}zW.prototype.add=function(e){let t=PRn(e.isFluentSchema||e.isFluentJSONSchema||e[rue]?e.valueOf():e),n=t.$id;if(!n)throw new CRn;if(this.store[n])throw new MRn(n);this.store[n]=t};zW.prototype.getSchemas=function(){return Object.assign({},this.store)};zW.prototype.getSchema=function(e){return this.store[e]};function htt(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function LRn(e,t){if(e[ftt])return e;if(e.query){if(e.querystring)throw new DRn("querystring");e.querystring=e.query}URn(e);for(let n of mtt){let r=e[n];if(r&&!htt(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var jRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;Stt.exports=class ytt{constructor(t){switch(t&&t.rounding){case"floor":this.parseInteger=Math.floor;break;case"ceil":this.parseInteger=Math.ceil;break;case"round":this.parseInteger=Math.round;break;default:this.parseInteger=Math.trunc;break}this._options=t}asInteger(t){if(Number.isInteger(t))return""+t;if(typeof t=="bigint")return t.toString();let n=this.parseInteger(t);if(n===1/0||n===-1/0||n!==n)throw new Error(`The value "${t}" cannot be converted to an integer.`);return""+n}asNumber(t){let n=Number(t);if(n!==n)throw new Error(`The value "${t}" cannot be converted to a number.`);return n===1/0||n===-1/0?"null":""+n}asBoolean(t){return t&&"true"||"false"}asDateTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+t.toISOString()+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date-time.`)}asDate(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,10)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date.`)}asTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(11,19)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a time.`)}asString(t){let n=t.length;if(n===0)return'""';if(n<42){let r="",i=-1,s=255;for(let o=0;o=55296&&s<=57343)return JSON.stringify(t);return i===-1&&'"'+t+'"'||'"'+r+t.slice(i)+'"'}else return n<5e3&&jRn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new ytt(t)}}});var _tt=w((TKr,Ett)=>{"use strict";var HRn=VW(),qRn={mode:"standalone"},BRn=HRn.restoreFromState(qRn),GRn=null;Ett.exports=(function(t,n){let{asString:r,asNumber:i,asBoolean:s,asDateTime:o,asDate:a,asTime:c,asUnsafeString:u}=n,l=n.asInteger.bind(n),d="{",f="}",p="[",h="]",m=",",g=":",y='"',E=d+f,S=p+h,_=y+y,b="null";function T(R){let x=R&&typeof R.toJSON=="function"?R.toJSON():R;if(x===null)return E;let k,P=d,N=!1;return k=x.statusCode,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"statusCode":',P+=i(k)),k=x.code,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"code":',typeof k!="string"?k===null?P+=_:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),k=x.error,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"error":',typeof k!="string"?k===null?P+=_:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),k=x.message,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"message":',typeof k!="string"?k===null?P+=_:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),P+f}return T})(GRn,BRn)});var bM=w((vKr,Att)=>{"use strict";var btt=Y("node:http").STATUS_CODES,zRn=rce(),{setErrorStatusCode:VRn}=yW(),{kReplyHeaders:uT,kReplyNextErrorHandler:WW,kReplyIsRunningOnErrorHook:WRn,kRouteContext:vtt,kDisableRequestLogging:KW}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:KRn,FST_ERR_FAILED_ERROR_SERIALIZATION:YRn}=Ko(),{getSchemaSerializer:ZRn}=_M(),iue=_tt(),JRn={func:QRn,toJSON(){return this.func.name.toString()+"()"}};function XRn(e,t,n){e[WRn]=!1;let r=e[vtt];if(e[WW]===!1){Ttt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[uT])}catch(c){o.log[KW]||o.log.warn({req:o.request,res:o,err:c},c?.message),o.raw.writeHead(o.raw.statusCode)}o.raw.end(a)});return}let i=e[WW]||r.errorHandler;e[WW]=Object.getPrototypeOf(i),delete e[uT]["content-type"],delete e[uT]["content-length"];let s=i.func;if(!s){e[WW]=!1,Ttt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?zRn(o,e):e.send(o))}catch(o){e.send(o)}}function QRn(e,t,n){ewn(e,n),VRn(n,e),n.statusCode<500?n.log[KW]||n.log.info({res:n,err:e},e?.message):n.log[KW]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Ttt(e,t,n){let r=t.raw,i=t.statusCode;t[uT]["content-type"]=t[uT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=ZRn(t[vtt],i,t[uT]["content-type"]);o===!1?s=iue({error:btt[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:btt[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[KW]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=iue(new YRn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=iue(new KRn(typeof s))),t[uT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function $Rn(e=JRn,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function ewn(e,t){let n=t.raw,r=n.statusCode;r=r>=400?r:500,e!=null&&(e.headers!==void 0&&t.headers(e.headers),e.status>=400?r=e.status:e.statusCode>=400&&(r=e.statusCode)),n.statusCode=r}Att.exports={buildErrorHandler:$Rn,handleError:XRn}});var AM=w((AKr,Itt)=>{"use strict";var{kReply:sue,kRequest:oue,kState:twn,kHasBeenDecorated:nwn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:Rtt,FST_ERR_DEC_MISSING_DEPENDENCY:rwn,FST_ERR_DEC_AFTER_START:iwn,FST_ERR_DEC_REFERENCE_TYPE:swn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:own,FST_ERR_DEC_UNDECLARED:awn}=Ko();function cwn(e,t,n,r){if(Object.hasOwn(e,t))throw new Rtt(t);aue(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(e,t,{get:n.getter,set:n.setter}):e[t]=n}function uwn(e){if(!TM(this,e))throw new awn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function wtt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||vM(e,t))throw new Rtt(t);e[nwn]=!0,aue(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(i,t,{get:n.getter,set:n.setter}):typeof n=="function"?i[t]=n:e.props.push({key:t,value:n})}function ktt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new swn(e,typeof t)}function lwn(e,t,n){return cue(this,e),cwn(this,e,t,n),this}function TM(e,t){return t?t in e||e.prototype&&t in e.prototype||vM(e,t):e in this}function vM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function dwn(e){return e&&vM(this[oue],e)?!0:TM(this[oue].prototype,e)}function fwn(e){return e&&vM(this[sue],e)?!0:TM(this[sue].prototype,e)}function aue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new own(t);for(let r=0;r!==n.length;++r)if(!TM(e,n[r]))throw new rwn(n[r])}}function pwn(e,t,n){return cue(this,e),ktt(e,t),wtt(this[sue],e,t,n),this}function hwn(e,t,n){return cue(this,e),ktt(e,t),wtt(this[oue],e,t,n),this}function cue(e,t){if(e[twn].started)throw new iwn(t)}Itt.exports={add:lwn,exist:TM,existRequest:dwn,existReply:fwn,dependencies:aue,decorateReply:pwn,decorateRequest:hwn,getInstanceDecorator:uwn,hasKey:vM}});var n4=w((RKr,t4)=>{"use strict";var YW=Y("node:stream").finished,{kFourOhFourContext:xtt,kReplyErrorHandlerCalled:Ltt,kReplyHijacked:pue,kReplyStartTime:wM,kReplyEndTime:hue,kReplySerializer:eg,kReplySerializerDefault:ZW,kReplyIsError:JW,kReplyHeaders:jr,kReplyTrailers:Yo,kReplyHasStatusCode:mue,kReplyIsRunningOnErrorHook:gue,kReplyNextErrorHandler:mwn,kDisableRequestLogging:Utt,kSchemaResponse:XW,kReplyCacheSerializeFns:JS,kSchemaController:uue,kOptions:gwn,kRouteContext:Mn,kTimeoutTimer:QW,kOnAbort:Uk,kRequestSignal:Ftt}=$s(),{onSendHookRunner:jtt,onResponseHookRunner:ywn,preHandlerHookRunner:Swn,preSerializationHookRunner:Ewn}=KS(),Ott=lce()[Symbol.for("internals")],_wn=EM(),fue=_wn.now,{handleError:Ptt}=bM(),{getSchemaSerializer:bwn}=_M(),lue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:Twn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:vwn,FST_ERR_REP_READABLE_STREAM_LOCKED:Awn,FST_ERR_REP_ALREADY_SENT:Rwn,FST_ERR_SEND_INSIDE_ONERR:wwn,FST_ERR_BAD_STATUS_CODE:kwn,FST_ERR_BAD_TRAILER_NAME:Iwn,FST_ERR_BAD_TRAILER_VALUE:xwn,FST_ERR_MISSING_SERIALIZATION_FN:Own,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:Pwn,FST_ERR_DEC_UNDECLARED:Nwn}=Ko(),Ntt=AM(),Htt=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[eg]=null,this[Ltt]=!1,this[JW]=!1,this[gue]=!1,this.request=t,this[jr]={},this[Yo]=null,this[mue]=!1,this[wM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Mn]:{get(){return this.request[Mn]}},elapsedTime:{get(){return this[wM]===void 0?0:(this[hue]||fue())-this[wM]}},server:{get(){return this.request[Mn].server}},sent:{enumerable:!0,get(){return(this[pue]||this.raw.writableEnded)===!0}},statusCode:{get(){return this.raw.statusCode},set(e){this.code(e)}},routeOptions:{get(){return this.request.routeOptions}}});Hr.prototype.writeEarlyHints=function(e,t){return this.raw.writeEarlyHints(e,t),this};Hr.prototype.hijack=function(){return this[pue]=!0,this.request[Ftt]&&(clearTimeout(this.request[QW]),this.request[QW]=null,this.request[Uk]&&(this.request.raw.removeListener("close",this.request[Uk]),this.request[Uk]=null)),this};Hr.prototype.send=function(e){if(this[gue])throw new wwn;if(this.sent===!0)return this.log.warn({err:new Rwn(this.request.url,this.request.method)}),this;if(this[JW]||e instanceof Error)return this[JW]=!1,Fk(this,e,lT),this;if(e===void 0)return lT(this,e),this;let t=this.getHeader("content-type"),n=t!==void 0;if(e!==null){if(typeof e.pipe=="function"||typeof e.getReader=="function"||Htt.call(e)==="[object Response]")return lT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=lue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return lT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=lue.PLAIN,lT(this,e),this}if(this[eg]!==null){if(typeof e!="string")return Ctt(this,e),this;e=this[eg](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=lue.JSON;else if(t.indexOf("charset")===-1){let r=t.trim();r.endsWith(";")?this[jr]["content-type"]=`${r} charset=utf-8`:this[jr]["content-type"]=`${r}; charset=utf-8`}if(typeof e!="string")return Ctt(this,e),this}return lT(this,e),this};Hr.prototype.getHeader=function(e){e=e.toLowerCase();let t=this[jr][e];return t!==void 0?t:this.raw.getHeader(e)};Hr.prototype.getHeaders=function(){return{...this.raw.getHeaders(),...this[jr]}};Hr.prototype.hasHeader=function(e){return e=e.toLowerCase(),this[jr][e]!==void 0||this.raw.hasHeader(e)};Hr.prototype.removeHeader=function(e){return delete this[jr][e.toLowerCase()],this};Hr.prototype.header=function(e,t=""){return e=e.toLowerCase(),this[jr][e]&&e==="set-cookie"?(typeof this[jr][e]=="string"&&(this[jr][e]=[this[jr][e]]),Array.isArray(t)?Array.prototype.push.apply(this[jr][e],t):this[jr][e].push(t)):this[jr][e]=t,this};Hr.prototype.headers=function(e){let t=Object.keys(e);for(let n=0;n!==t.length;++n){let r=t[n];this.header(r,e[r])}return this};var Cwn=new Set(["transfer-encoding","content-length","host","cache-control","max-forwards","te","authorization","set-cookie","content-encoding","content-type","content-range","trailer"]);Hr.prototype.trailer=function(e,t){if(e=e.toLowerCase(),Cwn.has(e))throw new Iwn(e);if(typeof t!="function")throw new xwn(e,typeof t);return this[Yo]===null&&(this[Yo]={}),this[Yo][e]=t,this};Hr.prototype.hasTrailer=function(e){return this[Yo]?.[e.toLowerCase()]!==void 0};Hr.prototype.removeTrailer=function(e){return this[Yo]===null?this:(this[Yo][e.toLowerCase()]=void 0,this)};Hr.prototype.code=function(e){let t=+e;if(!(t>=100&&t<=599))throw new kwn(e||String(e));return this.raw.statusCode=t,this[mue]=!0,this};Hr.prototype.status=Hr.prototype.code;Hr.prototype.getSerializationFunction=function(e,t){let n;return typeof e=="string"||typeof e=="number"?typeof t=="string"?n=this[Mn][XW]?.[e]?.[t]:n=this[Mn][XW]?.[e]:typeof e=="object"&&(n=this[Mn][JS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Mn][JS]?.has(e))return this[Mn][JS].get(e);let a=(this[Mn].serializerCompiler||this.server[uue].serializerCompiler||this.server[uue].setupSerializer(this.server[gwn])||this.server[uue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Mn][JS]==null&&(this[Mn][JS]=new WeakMap),this[Mn][JS].set(e,a),a};Hr.prototype.serializeInput=function(e,t,n,r){let i=n,s;if(n=typeof t=="string"||typeof t=="number"?t:n,r=n&&i!==n?i:r,n!=null){if(r!=null?s=this[Mn][XW]?.[n]?.[r]:s=this[Mn][XW]?.[n],s==null)throw r?new Pwn(n,r):new Own(n)}else this[Mn][JS]?.has(t)?s=this[Mn][JS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[eg]!==null?this[eg](e):this[Mn]&&this[Mn][ZW]?this[Mn][ZW](e,this.raw.statusCode):Btt(this[Mn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[eg]=e,this};Hr.prototype.type=function(e){return this[jr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[mue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return qwn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}YW(this.raw,n=>{n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"?t?t(n):this.log&&this.log.warn("unhandled rejection on reply.then"):e()})};Hr.prototype.getDecorator=function(e){if(!Ntt.hasKey(this,e)&&!Ntt.exist(this,e))throw new Nwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Ctt(e,t){e[Mn].preSerialization!==null?Ewn(e[Mn].preSerialization,e.request,e,t,Mtt):Mtt(null,void 0,e,t)}function Mtt(e,t,n,r){if(e!=null){Fk(n,e);return}try{n[eg]!==null?r=n[eg](r):n[Mn]&&n[Mn][ZW]?r=n[Mn][ZW](r,n.raw.statusCode):r=Btt(n[Mn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Mwn(i,n),Fk(n,i);return}lT(n,r)}function Mwn(e,t){e.serialization=t[Mn].config}function lT(e,t){e[Mn].onSend!==null?jtt(e[Mn].onSend,e.request,e,t,Dwn):qtt(e,t)}function Dwn(e,t,n,r){e!=null?Fk(n,e):qtt(n,r)}function due(e,t){let n=e.raw;try{n.writeHead(t,e[jr])}catch(r){throw r.code==="ERR_HTTP_HEADERS_SENT"&&e.log.warn(`Reply was already sent, did you forget to "return reply" in the "${e.request.raw.url}" (${e.request.raw.method}) route?`),r}}function qtt(e,t){let n=e.raw,r=e.request;if(e[Yo]!==null){let s=Object.keys(e[Yo]),o="";for(let a of s)typeof e[Yo][a]=="function"&&(o+=" ",o+=a);e.header("Transfer-Encoding","chunked"),e.header("Trailer",o.trim())}if(Htt.call(t)==="[object Response]"){if(typeof t.status=="number"&&e.code(t.status),typeof t.headers=="object"&&typeof t.headers.forEach=="function")for(let[s,o]of t.headers)e.header(s,o);if(t.body!==null&&t.bodyUsed)throw new vwn;t=t.body}let i=n.statusCode;if(t==null){i>=200&&i!==204&&i!==304&&r.method!=="HEAD"&&e[Yo]===null&&(e[jr]["content-length"]="0"),due(e,i),RM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),due(e,i),RM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",e4),t.resume());return}if(typeof t.pipe=="function"){Uwn(t,n,e);return}if(typeof t.getReader=="function"){Lwn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new Twn(typeof t);if(e[Yo]===null){let s=e[jr]["content-length"];(!s||r.raw.method!=="HEAD"&&Number(s)!==Buffer.byteLength(t))&&(e[jr]["content-length"]=""+Buffer.byteLength(t))}due(e,i),n.write(t),RM(t,n,e)}function $W(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[Utt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function Lwn(e,t,n){if(e.locked)throw new Awn;let r=!0,i=!1,s=!1,o=e.getReader();if(YW(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,$W(n.log,l,t)),o.cancel().catch(e4))}),t.headersSent)n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode");else for(let l in n[jr])t.setHeader(l,n[jr][l]);function a(l){if(l.done){r=!1,RM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(e4);return}if(t.write(l.value)===!1){s=!0,t.once("drain",c);return}o.read().then(a,u)}function c(){!s||!r||t.destroyed||(s=!1,o.read().then(a,u))}function u(l){r=!1,t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,$W(n.log,l,n)),t.destroy()):Fk(n,l)}o.read().then(a,u)}function Uwn(e,t,n){let r=!0,i=!1;if(Fwn(e,t,n),YW(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,$W(n.log,s,n)),t.destroy()):Fk(n,s))}),YW(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,$W(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(e4):typeof e.abort=="function"?e.abort():n.log.warn("stream payload does not end properly"))}),t.headersSent)n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode");else for(let s in n[jr])t.setHeader(s,n[jr][s]);e.pipe(t)}function RM(e,t,n){if(n[Yo]===null){t.end(null,null,null);return}let r=Object.keys(n[Yo]),i={},s=0,o=!0;function a(){s===0&&(t.addTrailers(i),t.end(null,null,null))}for(let c of r){let u=function(d,f){s++,d?n.log.debug(d):i[c]=f,process.nextTick(a)};if(typeof n[Yo][c]!="function")continue;o=!1,s--;let l=n[Yo][c](n,e,u);typeof l=="object"&&typeof l.then=="function"&&l.then(d=>u(null,d),u)}o&&t.end(null,null,null)}function Fwn(e,t,n){n[Yo]!==null&&e.on("end",()=>RM(null,t,n))}function Fk(e,t,n){e[Mn].onError!==null&&!e[mwn]?(e[gue]=!0,jtt(e[Mn].onError,e.request,e,t,()=>Ptt(e,t,n))):Ptt(e,t,n)}function jwn(e){e[wM]=fue();let t=n=>{e[hue]=fue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Mn];e.request[Ftt]&&(clearTimeout(e.request[QW]),e.request[QW]=null,e.request[Uk]&&(e.request.raw.removeListener("close",e.request[Uk]),e.request[Uk]=null)),r&&r.onResponse!==null?ywn(r.onResponse,e.request,e,Dtt):Dtt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Dtt(e,t,n){if(n.log[Utt])return;let r=n.elapsedTime;if(e!=null){n.log.error({res:n,err:e,responseTime:r},"request errored");return}n.log.info({res:n,responseTime:r},"request completed")}function Hwn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[JW]=!1,this[Ltt]=!1,this[pue]=!1,this[eg]=null,this.request=i,this[jr]={},this[Yo]=null,this[wM]=void 0,this[hue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function yue(e){if(!e)throw new TypeError("argument req is required");let t=e.headers["x-forwarded-for"],n=e.socket.remoteAddress;if(!t||typeof t!="string")return[n];if(t.indexOf(",")===-1){let r=t.trim();return r.length?[n,r]:[n]}else return Bwn(t,n)}function Bwn(e,t){let n=[t],r=e.length,i=r,s,o;for(o=r-1;o>=0;--o)s=e[o],s===" "?i===r&&(i=r=o):s===","?(i!==r&&n.push(e.slice(i,r)),i=r=o):i=o;return i!==r&&n.push(e.substring(i,r)),n}r4.exports=yue;r4.exports.default=yue;r4.exports.forwarded=yue});var Vtt=w((ztt,i4)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},r=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,g=-1,y=(p.match(a.zoneIndex)||[])[0],E,S;for(y&&(y=y.substring(1),p=p.replace(/%.+$/,""));(g=p.indexOf(":",g+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(S=h-m,E=":";S--;)E+="0:";return p=p.replace("::",E),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=(function(){let _=p.split(":"),b=[];for(let T=0;T<_.length;T++)b.push(parseInt(_[T],16));return b})(),{parts:h,zoneId:y}}function u(p,h,m,g){if(p.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let y=0,E;for(;g>0;){if(E=m-g,E<0&&(E=0),p[y]>>E!==h[y]>>E)return!1;g-=m,y+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(r.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function d(p,h){for(;p.length=0;y-=1)if(E=this.octets[y],E in g){if(S=g[E],m&&S!==0)return null;S!==8&&(m=!0),h+=S}else return null;return 32-h},p.prototype.range=function(){return f.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return f.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p})(),f.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],E=0;for(;E<4;)y.push(parseInt(m[E],10)|parseInt(g[E],10)^255),E++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},f.IPv4.isIPv4=function(p){return this.parser(p)!==null},f.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},f.IPv4.isValidCIDR=function(p){try{return this.parseCIDR(p),!0}catch{return!1}},f.IPv4.isValidFourPartDecimal=function(p){return!!(f.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},f.IPv4.isValidCIDRFourPartDecimal=function(p){let h=p.match(/^(.+)\/(\d+)$/);return!f.IPv4.isValidCIDR(p)||!h?!1:f.IPv4.isValidFourPartDecimal(h[1])},f.IPv4.networkAddressFromCIDR=function(p){let h,m,g,y,E;try{for(h=this.parseCIDR(p),g=h[0].toByteArray(),E=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],m=0;m<4;)y.push(parseInt(g[m],10)&parseInt(E[m],10)),m++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},f.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},f.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let g=[this.parse(h[1]),m];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},f.IPv4.parser=function(p){let h,m,g;if(h=p.match(n.fourOctet))return(function(){let y=h.slice(1,6),E=[];for(let S=0;S4294967295||g<0)throw new Error("ipaddr: address outside defined range");return(function(){let y=[],E;for(E=0;E<=24;E+=8)y.push(g>>E&255);return y})().reverse()}else return(h=p.match(n.twoOctet))?(function(){let y=h.slice(1,4),E=[];if(g=l(y[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return E.push(l(y[0])),E.push(g>>16&255),E.push(g>>8&255),E.push(g&255),E})():(h=p.match(n.threeOctet))?(function(){let y=h.slice(1,5),E=[];if(g=l(y[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return E.push(l(y[0])),E.push(l(y[1])),E.push(g>>8&255),E.push(g&255),E})():null},f.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,g=Math.floor(p/8);for(;m=0;S-=1)if(y=this.parts[S],y in g){if(E=g[y],m&&E!==0)return null;E!==16&&(m=!0),h+=E}else return null;return 128-h},p.prototype.range=function(){return f.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],g=this.parts;for(let y=0;y>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=(function(){let g=[];for(let y=0;y>8,m&255,g>>8,g&255])},p.prototype.toNormalizedString=function(){let h=(function(){let g=[];for(let y=0;yy&&(g=E.index,y=E[0].length);return y<0?m:`${m.substring(0,g)}::${m.substring(g+y)}`},p.prototype.toString=function(){return this.toRFC5952String()},p})(),f.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],E=0;for(;E<16;)y.push(parseInt(m[E],10)|parseInt(g[E],10)^255),E++;return new this(y)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},f.IPv6.isIPv6=function(p){return this.parser(p)!==null},f.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},f.IPv6.isValidCIDR=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{return this.parseCIDR(p),!0}catch{return!1}},f.IPv6.networkAddressFromCIDR=function(p){let h,m,g,y,E;try{for(h=this.parseCIDR(p),g=h[0].toByteArray(),E=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],m=0;m<16;)y.push(parseInt(g[m],10)&parseInt(E[m],10)),m++;return new this(y)}catch(S){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${S})`)}},f.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},f.IPv6.parseCIDR=function(p){let h,m,g;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return g=[this.parse(m[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},f.IPv6.parser=function(p){let h,m,g,y,E,S;if(g=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(a.native.test(p))return c(p,8);if((g=p.match(a.transitional))&&(S=g[6]||"",h=g[1],g[1].endsWith("::")||(h=h.slice(0,-1)),h=c(h+S,6),h.parts)){for(E=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],m=0;m128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,g=Math.floor(p/8);for(;m{"use strict";jk.exports=Sue;jk.exports.default=Sue;jk.exports.proxyaddr=Sue;jk.exports.all=Ytt;jk.exports.compile=Ztt;var Gwn=Gtt(),Ktt=Vtt(),zwn=/^\d+$/u,s4=Ktt.isValid,o4=Ktt.parse,Wtt={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function Ytt(e,t){let n=Gwn(e);if(!t)return n;typeof t!="function"&&(t=Ztt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function Ywn(e){let t=o4(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function Sue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=Ytt(e,t);return n[n.length-1]}function Zwn(){return!1}function Jwn(e){return function(n){if(!s4(n))return!1;let r=o4(n),i,s=r.kind();for(let o=0;o{"use strict";var a4=Jtt(),{kHasBeenDecorated:Qwn,kSchemaBody:$wn,kSchemaHeaders:ekn,kSchemaParams:tkn,kSchemaQuerystring:Xtt,kSchemaController:Eue,kOptions:nkn,kRequestCacheValidateFns:XS,kRouteContext:oc,kRequestOriginalUrl:_ue,kRequestSignal:Qtt,kOnAbort:rkn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:ikn,FST_ERR_DEC_UNDECLARED:skn}=Ko(),$tt=AM(),ent={body:$wn,headers:ekn,params:tkn,querystring:Xtt,query:Xtt};function bue(e,t,n,r,i,s){this.id=e,this[oc]=s,this.params=t,this.raw=n,this.query=r,this.log=i,this.body=void 0}bue.props=[];function okn(e){if(typeof e=="function")return e;if(e===!0)return function(){return!0};if(typeof e=="number")return function(t,n){return nn.trim());return a4.compile(t)}return a4.compile(e)}function akn(e,t){return t?ckn(e,t):rnt(e)}function rnt(e){let t=e.props.slice();function n(r,i,s,o,a,c){this.id=r,this[oc]=c,this.params=i,this.raw=s,this.query=o,this.log=a,this.body=void 0;let u;for(let l=0;l{e.signal.aborted||e.abort()};return this.raw.on("close",t),this[rkn]=t,e.signal}},ip:{get(){if(this.socket)return this.socket.remoteAddress}},host:{get(){return this.raw.headers.host??this.raw.headers[":authority"]??""}},hostname:{get(){return this.host[0]==="["?this.host.slice(0,this.host.indexOf("]")+1):this.host.split(":",1)[0]}},port:{get(){let e=/(?:\d+)$/,t=this.headers.host??this.headers[":authority"]??"",n=e.exec(t);return n===null||n[1]===void 0?null:parseInt(n.groups.port.slice(1),10)}},protocol:{get(){if(this.socket)return this.socket.encrypted?"https":"http"}},headers:{get(){return this.additionalHeaders?Object.assign({},this.raw.headers,this.additionalHeaders):this.raw.headers},set(e){this.additionalHeaders=e}},getValidationFunction:{value:function(e){if(typeof e=="string"){let t=ent[e];return this[oc][t]}else if(typeof e=="object")return this[oc][XS]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[oc][XS]?.has(e))return this[oc][XS].get(e);let s=(this[oc].validatorCompiler||this.server[Eue].validatorCompiler||this.server[Eue].setupValidator(this.server[nkn])||this.server[Eue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[oc][XS]==null&&(this[oc][XS]=new WeakMap),this[oc][XS].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&ent[n],i;if(r&&(i=this[oc][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new ikn(n);return i==null&&(this[oc][XS]?.has(t)?i=this[oc][XS].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){nnt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){nnt(this,e),this[e]=t}}});Tue.exports=bue;Tue.exports.buildRequest=akn});var u4=w((xKr,int)=>{"use strict";var{kFourOhFourContext:ukn,kReplySerializerDefault:lkn,kSchemaErrorFormatter:dkn,kErrorHandler:fkn,kChildLoggerFactory:pkn,kOptions:hkn,kReply:mkn,kRequest:gkn,kBodyLimit:ykn,kLogLevel:Skn,kContentTypeParser:Ekn,kRouteByFastify:_kn,kRequestCacheValidateFns:bkn,kReplyCacheSerializeFns:Tkn,kHandlerTimeout:vkn}=$s();function Akn({schema:e,handler:t,config:n,requestIdLogLabel:r,childLoggerFactory:i,errorHandler:s,bodyLimit:o,logLevel:a,logSerializers:c,attachValidation:u,validatorCompiler:l,serializerCompiler:d,replySerializer:f,schemaErrorFormatter:p,exposeHeadRoute:h,prefixTrailingSlash:m,server:g,isFastify:y,handlerTimeout:E}){this.schema=e,this.handler=t,this.Reply=g[mkn],this.Request=g[gkn],this.contentTypeParser=g[Ekn],this.onRequest=null,this.onSend=null,this.onError=null,this.onTimeout=null,this.preHandler=null,this.onResponse=null,this.preSerialization=null,this.onRequestAbort=null,this.config=n,this.errorHandler=s||g[fkn],this.requestIdLogLabel=r||g[hkn].requestIdLogLabel,this.childLoggerFactory=i||g[pkn],this._middie=null,this._parserOptions={limit:o||g[ykn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||g[Skn],this.logSerializers=c,this[ukn]=null,this.attachValidation=u,this[lkn]=f,this.schemaErrorFormatter=p||g[dkn]||Rkn,this[_kn]=y,this[bkn]=null,this[Tkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=E||g[vkn]||0,this.server=g}function Rkn(e,t){let n="";for(let i=0;i!==e.length;++i){let s=e[i];n+=t+(s.instancePath||"")+" "+s.message+", "}return new Error(n.slice(0,-2))}int.exports=Akn});var Aue=w((OKr,Hk)=>{"use strict";var wkn=typeof Buffer<"u",snt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,ont=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function ant(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),wkn&&Buffer.isBuffer(e)&&(e=e.toString()),e&&e.charCodeAt(0)===65279&&(e=e.slice(1));let r=JSON.parse(e,t);if(r===null||typeof r!="object")return r;let i=n&&n.protoAction||"error",s=n&&n.constructorAction||"error";if(i==="ignore"&&s==="ignore")return r;if(i!=="ignore"&&s!=="ignore"){if(snt.test(e)===!1&&ont.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(snt.test(e)===!1)return r}else if(ont.test(e)===!1)return r;return cnt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function cnt(e,{protoAction:t="error",constructorAction:n="error",safe:r}={}){let i=[e];for(;i.length;){let s=i;i=[];for(let o of s){if(t!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"__proto__")){if(r===!0)return null;if(t==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.__proto__}if(n!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"constructor")&&o.constructor!==null&&typeof o.constructor=="object"&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype")){if(r===!0)return null;if(n==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.constructor}for(let a in o){let c=o[a];c&&typeof c=="object"&&i.push(c)}}}return e}function vue(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return ant(e,t,n)}finally{Error.stackTraceLimit=r}}function kkn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return ant(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Hk.exports=vue;Hk.exports.default=vue;Hk.exports.parse=vue;Hk.exports.safeParse=kkn;Hk.exports.scan=cnt});var xue=w((PKr,xM)=>{"use strict";var{AsyncResource:Ikn}=Y("node:async_hooks"),{FifoMap:dnt}=E2(),{parse:xkn}=Aue(),IM=nce(),{kDefaultJsonParse:kM,kContentTypeParser:qk,kBodyLimit:Okn,kRequestPayloadStream:fnt,kState:wue,kTestInternals:Pkn,kReplyIsError:unt,kRouteContext:Nkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:l4,FST_ERR_CTP_EMPTY_TYPE:Ckn,FST_ERR_CTP_ALREADY_PRESENT:Mkn,FST_ERR_CTP_INVALID_HANDLER:Dkn,FST_ERR_CTP_INVALID_PARSE_TYPE:Lkn,FST_ERR_CTP_BODY_TOO_LARGE:lnt,FST_ERR_CTP_INVALID_MEDIA_TYPE:Ukn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:Fkn,FST_ERR_CTP_EMPTY_JSON_BODY:jkn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:kue,FST_ERR_CTP_INVALID_JSON_BODY:Hkn}=Ko(),{FSTSEC001:qkn}=xk();function tg(e,t,n){this[kM]=hnt(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Rue(!0,!1,e,this[kM])),this.customParsers.set("text/plain",new Rue(!0,!1,e,Iue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new dnt(100)}tg.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new Ckn}else if(!(e instanceof RegExp))throw new l4;if(typeof n!="function")throw new Dkn;if(this.existingParser(e))throw new Mkn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new Lkn(t.parseAs);let i=new Rue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new IM(e);if(s.isValid===!1)throw new l4;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else Kkn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};tg.prototype.hasParser=function(e){if(typeof e=="string")e=new IM(e).toString();else{if(!(e instanceof RegExp))throw new l4;e=e.toString()}return this.customParsers.has(e)};tg.prototype.existingParser=function(e){if(typeof e=="string"){let t=new IM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[kM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Iue}return this.hasParser(e)};tg.prototype.getParser=function(e){typeof e=="string"&&(e=new IM(e));let t=e.toString(),n=this.cache.get(t);if(n!==void 0)return n;if(n=this.customParsers.get(t),n!==void 0)return this.cache.set(t,n),n;if(n=this.customParsers.get(e.mediaType),n!==void 0)return n;for(let r=0;r!==this.parserRegExpList.length;++r){let i=this.parserRegExpList[r];if(i.test(t))return n=this.customParsers.get(i.toString()),this.cache.set(t,n),n}return this.customParsers.get("")};tg.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new dnt(100)};tg.prototype.remove=function(e){let t;if(typeof e=="string")e=new IM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new l4;e=e.toString(),t=this.parserRegExpList}let n=this.customParsers.delete(e),r=t.findIndex(i=>i.toString()===e);return r>-1&&t.splice(r,1),n||r>-1};tg.prototype.run=function(e,t,n,r){let i=this.getParser(e);if(i===void 0){if(n.is404===!0){t(n,r);return}r[unt]=!0,r.send(new Ukn);return}let s=new Ikn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){pnt(n,r,r[Nkn]._parserOptions,i,o);return}let a=i.fn(n,n[fnt],o);a&&typeof a.then=="function"&&a.then(u=>{o(null,u)},o);function c(u,l){if(s.emitDestroy(),u!=null){r.header("connection","close"),r[unt]=!0,r.send(u);return}n.body=l,t(n,r)}};function pnt(e,t,n,r,i){let s=r.asString===!0,o=n.limit===null?r.bodyLimit:n.limit,a=Number(e.headers["content-length"]);if(a>o){i(new lnt,void 0);return}let c=0,u=s?"":[],l=e[fnt]||e.raw;s&&l.setEncoding("utf8"),l.on("data",d),l.on("end",f),l.on("error",f),l.resume();function d(p){c+=s?Buffer.byteLength(p):p.length;let{receivedEncodedLength:h=0}=l;if(c>o||h>o){l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),i(new lnt,void 0);return}s?u+=p:u.push(p)}function f(p){if(l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),p!=null){typeof p.statusCode=="number"&&p.statusCode>=400||(p.statusCode=400),i(p,void 0);return}if(!Number.isNaN(a)&&(l.receivedEncodedLength||c)!==a){i(new Fkn,void 0);return}s||(u=Buffer.concat(u));let h=r.fn(e,u,i);h&&typeof h.then=="function"&&h.then(m=>{i(null,m)},i)}}function hnt(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new jkn,void 0);return}try{o(null,xkn(s,n))}catch{o(new Hkn,void 0)}}}function Iue(e,t,n){n(null,t)}function Rue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function Bkn(e){let t=new tg;return t[kM]=e[kM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function Gkn(e,t,n){if(this[wue].started)throw new kue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Okn]),Array.isArray(e)?e.forEach(r=>this[qk].add(r,t,n)):this[qk].add(e,t,n),this}function zkn(e){return this[qk].hasParser(e)}function Vkn(e){if(this[wue].started)throw new kue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[qk].remove(t);else this[qk].remove(e)}function Wkn(){if(this[wue].started)throw new kue("removeAllContentTypeParsers");this[qk].removeAll()}function Kkn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&qkn(e.source)}xM.exports=tg;xM.exports.helpers={buildContentTypeParser:Bkn,addContentTypeParser:Gkn,hasContentTypeParser:zkn,removeContentTypeParser:Vkn,removeAllContentTypeParsers:Wkn};xM.exports.defaultParsers={getDefaultJsonParser:hnt,defaultTextParser:Iue};xM.exports[Pkn]={rawBody:pnt}});var ng=w(OM=>{"use strict";Object.defineProperty(OM,"__esModule",{value:!0});OM.checkMetadata=void 0;var Ykn=pn(),Zkn={keyword:"metadata",schemaType:"object",code(e){mnt(e);let{gen:t,schema:n,it:r}=e;if((0,Ykn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function mnt({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}OM.checkMetadata=mnt;OM.default=Zkn});var d4=w(NM=>{"use strict";Object.defineProperty(NM,"__esModule",{value:!0});NM.hasRef=void 0;var gnt=jb(),PM=Ot(),Jkn=Km(),ynt=gd(),Snt=Dse(),Xkn=ng(),Qkn={keyword:"ref",schemaType:"string",code(e){(0,Xkn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{schemaEnv:{root:o}}=s,a=t.name("valid");i.nullable?(t.var(a,(0,PM._)`${n} === null`),t.if((0,PM.not)(a),c)):(t.var(a,!1),c()),e.ok(a);function c(){var d;let f=(d=o.schema.definitions)===null||d===void 0?void 0:d[r];if(!f)throw new Jkn.default(s.opts.uriResolver,"",r,`No definition ${r}`);Oue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=gnt.compileSchema.call(s.self,new gnt.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,Snt.getValidate)(e,f),h=t.const("_errs",ynt.default.errors);(0,Snt.callRef)(e,p,f,f.$async),t.assign(a,(0,PM._)`${h} === ${ynt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,PM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:PM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function Oue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&Oue(n))return!0}return!1}NM.hasRef=Oue;NM.default=Qkn});var Nue=w(Pue=>{"use strict";Object.defineProperty(Pue,"__esModule",{value:!0});var $kn=/t|\s/i,eIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,tIn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,nIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function _nt(e,t){let n=e.split($kn);return n.length===2&&Ent(n[0])&&rIn(n[1])||t&&n.length===1&&Ent(n[0])}Pue.default=_nt;function Ent(e){let t=eIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=nIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function rIn(e){let t=tIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3],s=+(t[4]||0),o=+(t[5]||0);return n<=23&&r<=59&&i<=59||n-s===23&&r-o===59&&i===60}_nt.code='require("ajv/dist/runtime/timestamp").default'});var Bk=w(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0});QS.typeErrorParams=QS.typeErrorMessage=QS.typeError=void 0;var iIn=Ot();function sIn(e){return{message:t=>bnt(t,e),params:t=>Tnt(t,e)}}QS.typeError=sIn;function bnt({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}QS.typeErrorMessage=bnt;function Tnt({parentSchema:e},t){return(0,iIn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}QS.typeErrorParams=Tnt});var Cue=w(Gk=>{"use strict";Object.defineProperty(Gk,"__esModule",{value:!0});Gk.intRange=void 0;var El=Ot(),oIn=Nue(),aIn=pn(),cIn=ng(),vnt=Bk();Gk.intRange={int8:[-128,127,3],uint8:[0,255,3],int16:[-32768,32767,5],uint16:[0,65535,5],int32:[-2147483648,2147483647,10],uint32:[0,4294967295,10]};var uIn={message:e=>(0,vnt.typeErrorMessage)(e,e.schema),params:e=>(0,vnt.typeErrorParams)(e,e.schema)};function lIn(e){let{gen:t,data:n,it:r}=e,{timestamp:i,allowDate:s}=r.opts;if(i==="date")return(0,El._)`${n} instanceof Date `;let o=(0,aIn.useFunc)(t,oIn.default),a=s?(0,El._)`, true`:El.nil,c=(0,El._)`typeof ${n} == "string" && ${o}(${n}${a})`;return i==="string"?c:(0,El.or)((0,El._)`${n} instanceof Date`,c)}var dIn={keyword:"type",schemaType:"string",error:uIn,code(e){(0,cIn.checkMetadata)(e);let{data:t,schema:n,parentSchema:r,it:i}=e,s;switch(n){case"boolean":case"string":s=(0,El._)`typeof ${t} == ${n}`;break;case"timestamp":{s=lIn(e);break}case"float32":case"float64":s=(0,El._)`typeof ${t} == "number"`;break;default:{let o=n;if(s=(0,El._)`typeof ${t} == "number" && isFinite(${t}) && !(${t} % 1)`,!i.opts.int32range&&(o==="int32"||o==="uint32"))o==="uint32"&&(s=(0,El._)`${s} && ${t} >= 0`);else{let[a,c]=Gk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Gk.default=dIn});var Vk=w(zk=>{"use strict";Object.defineProperty(zk,"__esModule",{value:!0});zk.checkNullableObject=zk.checkNullable=void 0;var f4=Ot();function Ant({gen:e,data:t,parentSchema:n},r=f4.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,f4._)`${t} === null`),r=(0,f4.not)(i)):e.let(i,!1),[i,r]}zk.checkNullable=Ant;function fIn(e,t){let[n,r]=Ant(e,t);return[n,(0,f4._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}zk.checkNullableObject=fIn});var Rnt=w(Mue=>{"use strict";Object.defineProperty(Mue,"__esModule",{value:!0});var $S=Ot(),pIn=ng(),hIn=Vk(),mIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,$S._)`{allowedValues: ${e}}`},gIn={keyword:"enum",schemaType:"array",error:mIn,code(e){(0,pIn.checkMetadata)(e);let{gen:t,data:n,schema:r,schemaValue:i,parentSchema:s,it:o}=e;if(r.length===0)throw new Error("enum must have non-empty array");if(r.length!==new Set(r).size)throw new Error("enum items must be unique");let a,c=(0,$S._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,hIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,$S.and)(c,(0,$S.or)(...r.map(l=>(0,$S._)`${n} === ${l}`))),s.nullable&&(a=(0,$S.or)((0,$S._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,$S._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Mue.default=gIn});var knt=w(Due=>{"use strict";Object.defineProperty(Due,"__esModule",{value:!0});var yIn=pn(),SIn=Sa(),wnt=Ot(),EIn=ng(),_In=Vk(),bIn=Bk(),TIn={keyword:"elements",schemaType:"object",error:(0,bIn.typeError)("array"),code(e){(0,EIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,yIn.alwaysValidSchema)(i,r))return;let[s]=(0,_In.checkNullable)(e);t.if((0,wnt.not)(s),()=>t.if((0,wnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,SIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Due.default=TIn});var Uue=w(eE=>{"use strict";Object.defineProperty(eE,"__esModule",{value:!0});eE.validateProperties=eE.error=void 0;var Lue=Sa(),Int=pn(),rg=Ot(),vIn=ng(),AIn=Vk(),xnt=Bk(),Wk;(function(e){e.Additional="additional",e.Missing="missing"})(Wk||(Wk={}));eE.error={message:e=>{let{params:t}=e;return t.propError?t.propError===Wk.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,xnt.typeErrorMessage)(e,"object")},params:e=>{let{params:t}=e;return t.propError?t.propError===Wk.Additional?(0,rg._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,rg._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,xnt.typeErrorParams)(e,"object")}};var RIn={keyword:"properties",schemaType:"object",error:eE.error,code:Ont};function Ont(e){(0,vIn.checkMetadata)(e);let{gen:t,data:n,parentSchema:r,it:i}=e,{additionalProperties:s,nullable:o}=r;if(i.jtdDiscriminator&&o)throw new Error("JTD: nullable inside discriminator mapping");if(p())throw new Error("JTD: properties and optionalProperties have common members");let[a,c]=h("properties"),[u,l]=h("optionalProperties");if(c.length===0&&l.length===0&&s)return;let[d,f]=i.jtdDiscriminator===void 0?(0,AIn.checkNullableObject)(e,n):[t.let("valid",!1),!0];t.if(f,()=>t.assign(d,!0).block(()=>{m(c,"properties",!0),m(l,"optionalProperties"),s||y()})),e.pass(d);function p(){let S=r.properties,_=r.optionalProperties;if(!(S&&_))return!1;for(let b in S)if(Object.prototype.hasOwnProperty.call(_,b))return!0;return!1}function h(S){let _=r[S],b=_?(0,Lue.allSchemaProperties)(_):[];if(i.jtdDiscriminator&&b.some(A=>A===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=b.filter(A=>!(0,Int.alwaysValidSchema)(i,_[A]));return[b,T]}function m(S,_,b){let T=t.var("valid");for(let R of S)t.if((0,Lue.propertyInData)(t,n,R,i.opts.ownProperties),()=>g(R,_,T),()=>A(R)),e.ok(T);function A(R){b?(t.assign(T,!1),e.error(!1,{propError:Wk.Missing,missingProperty:R},{schemaPath:R})):t.assign(T,!0)}}function g(S,_,b){e.subschema({keyword:_,schemaProp:S,dataProp:S},b)}function y(){t.forIn("key",n,S=>{let _=E(S,a,"properties",i.jtdDiscriminator),b=E(S,u,"optionalProperties"),T=_===!0?b:b===!0?_:(0,rg.and)(_,b);t.if(T,()=>{i.opts.removeAdditional?t.code((0,rg._)`delete ${n}[${S}]`):(e.error(!1,{propError:Wk.Additional,additionalProperty:S},{instancePath:S,parentSchema:!0}),i.opts.allErrors||t.break())})})}function E(S,_,b,T){let A;if(_.length>8){let R=(0,Int.schemaRefOrVal)(i,r[b],b);A=(0,rg.not)((0,Lue.isOwnProperty)(t,R,S)),T!==void 0&&(A=(0,rg.and)(A,(0,rg._)`${S} !== ${T}`))}else if(_.length||T!==void 0){let R=T===void 0?_:[T].concat(_);A=(0,rg.and)(...R.map(x=>(0,rg._)`${S} !== ${x}`))}else A=!0;return A}}eE.validateProperties=Ont;eE.default=RIn});var Nnt=w(Fue=>{"use strict";Object.defineProperty(Fue,"__esModule",{value:!0});var Pnt=Uue(),wIn={keyword:"optionalProperties",schemaType:"object",error:Pnt.error,code(e){e.parentSchema.properties||(0,Pnt.validateProperties)(e)}};Fue.default=wIn});var Mnt=w(jue=>{"use strict";Object.defineProperty(jue,"__esModule",{value:!0});var dT=Ot(),kIn=ng(),IIn=Vk(),Cnt=Bk(),p4=boe(),xIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===p4.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in mapping`:(0,Cnt.typeErrorMessage)(e,"object")},params:e=>{let{schema:t,params:n}=e;return n.discrError?(0,dT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Cnt.typeErrorParams)(e,"object")}},OIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:xIn,code(e){(0,kIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,IIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,dT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,dT._)`${n}${(0,dT.getProperty)(r)}`);t.if((0,dT._)`${l} === undefined`),e.error(!1,{discrError:p4.DiscrError.Tag,tag:l}),t.elseIf((0,dT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:p4.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,dT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:p4.DiscrError.Mapping,tag:l},{instancePath:r,schemaPath:"mapping",parentSchema:!0}),t.endIf()}function u(l){let d=t.name("valid");return e.subschema({keyword:"mapping",schemaProp:l,jtdDiscriminator:r},d),d}}};jue.default=OIn});var Lnt=w(Hue=>{"use strict";Object.defineProperty(Hue,"__esModule",{value:!0});var Dnt=pn(),h4=Ot(),PIn=ng(),NIn=Vk(),CIn=Bk(),MIn={keyword:"values",schemaType:"object",error:(0,CIn.typeError)("object"),code(e){(0,PIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,NIn.checkNullableObject)(e,n);(0,Dnt.alwaysValidSchema)(i,r)?t.if((0,h4.not)((0,h4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,h4.not)(s)),e.error(),t.endIf()),e.ok(s);function a(){let c=t.name("valid");if(i.allErrors){let l=t.let("valid",!0);return u(()=>t.assign(l,!1)),l}return t.var(c,!0),u(()=>t.break()),c;function u(l){t.forIn("key",n,d=>{e.subschema({keyword:"values",dataProp:d,dataPropType:Dnt.Type.Str},c),t.if((0,h4.not)(c),l)})}}}};Hue.default=MIn});var Unt=w(que=>{"use strict";Object.defineProperty(que,"__esModule",{value:!0});var DIn=Sa(),LIn={keyword:"union",schemaType:"array",trackErrors:!0,code:DIn.validateUnion,error:{message:"must match a schema in union"}};que.default=LIn});var Fnt=w(Bue=>{"use strict";Object.defineProperty(Bue,"__esModule",{value:!0});var UIn=d4(),FIn=Cue(),jIn=Rnt(),HIn=knt(),qIn=Uue(),BIn=Nnt(),GIn=Mnt(),zIn=Lnt(),VIn=Unt(),WIn=ng(),KIn=["definitions",UIn.default,FIn.default,jIn.default,HIn.default,qIn.default,BIn.default,GIn.default,zIn.default,VIn.default,WIn.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];Bue.default=KIn});var Bnt=w(Gue=>{"use strict";Object.defineProperty(Gue,"__esModule",{value:!0});var ig=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},YIn=e=>({optionalProperties:ig(e)}),ZIn=e=>({properties:{ref:{type:"string"}},optionalProperties:ig(e)}),JIn=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:ig(e)}),XIn=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:ig(e)}),QIn=e=>({properties:{elements:{ref:"schema"}},optionalProperties:ig(e)}),Hnt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...ig(e)}}),qnt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...ig(e)}}),$In=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[Hnt(!1),qnt(!1)]}}}},optionalProperties:ig(e)}),e0n=e=>({properties:{values:{ref:"schema"}},optionalProperties:ig(e)}),jnt=e=>({metadata:{union:[YIn,ZIn,JIn,XIn,QIn,Hnt,qnt,$In,e0n].map(t=>t(e))}}),t0n={definitions:{schema:jnt(!1)},...jnt(!0)};Gue.default=t0n});var zue=w(m4=>{"use strict";Object.defineProperty(m4,"__esModule",{value:!0});m4.jtdForms=void 0;m4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var znt=w(Wue=>{"use strict";Object.defineProperty(Wue,"__esModule",{value:!0});var Vue=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n0n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function Gnt(e){return Vue.lastIndex=0,'"'+(Vue.test(e)?e.replace(Vue,t=>{let n=n0n[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}Wue.default=Gnt;Gnt.code='require("ajv/dist/runtime/quote").default'});var Jnt=w(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});var r0n=zue(),Wnt=jb(),En=Ot(),i0n=Km(),qr=gd(),s0n=Sa(),o0n=d4(),a0n=pn(),c0n=znt(),u0n={elements:d0n,values:f0n,discriminator:p0n,properties:Vnt,optionalProperties:Vnt,enum:CM,type:h0n,ref:g0n};function Knt(e,t){let n=Wnt.getCompilingSchema.call(this,e);if(n)return n;let{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new En.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a=o.scopeName("serialize"),c={self:this,gen:o,schema:e.schema,schemaEnv:e,definitions:t,data:qr.default.data},u;try{this._compilations.add(e),e.serializeName=a,o.func(a,qr.default.data,!1,()=>{o.let(qr.default.json,(0,En.str)``),MM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}Yue.default=Knt;function MM(e){let t;for(let n of r0n.jtdForms)if(n in e.schema){t=n;break}l0n(e,t?u0n[t]:S0n)}function l0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);n.if((0,En._)`${i} === undefined || ${i} === null`,()=>n.add(qr.default.json,(0,En._)`"null"`),()=>t(e))}function d0n(e){let{gen:t,schema:n,data:r}=e;t.add(qr.default.json,(0,En.str)`[`);let i=t.let("first",!0);t.forOf("el",r,s=>{Kue(e,i),MM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,En.str)`]`)}function f0n(e){let{gen:t,schema:n,data:r}=e;t.add(qr.default.json,(0,En.str)`{`);let i=t.let("first",!0);t.forIn("key",r,s=>Ynt(e,s,n.values,i)),t.add(qr.default.json,(0,En.str)`}`)}function Ynt(e,t,n,r){let{gen:i,data:s}=e;Kue(e,r),CM({...e,data:t}),i.add(qr.default.json,(0,En.str)`:`);let o=i.const("value",(0,En._)`${s}${(0,En.getProperty)(t)}`);MM({...e,schema:n,data:o})}function p0n(e){let{gen:t,schema:n,data:r}=e,{discriminator:i}=n;t.add(qr.default.json,(0,En.str)`{${JSON.stringify(i)}:`);let s=t.const("tag",(0,En._)`${r}${(0,En.getProperty)(i)}`);CM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,En._)`${s} === ${o}`);let a=n.mapping[o];Znt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,En.str)`}`)}function Vnt(e){let{gen:t}=e;t.add(qr.default.json,(0,En.str)`{`),Znt(e),t.add(qr.default.json,(0,En.str)`}`)}function Znt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let y of a)l?l=!1:n.add(qr.default.json,(0,En.str)`,`),m(y,s[y],h(y));l&&(d=n.let("first",!0));for(let y of c){let E=h(y);n.if((0,En.and)((0,En._)`${E} !== undefined`,(0,s0n.isOwnProperty)(n,i,y)),()=>{Kue(e,d),m(y,o[y],E)})}r.additionalProperties&&n.forIn("key",i,y=>n.if(g(y,u),()=>Ynt(e,y,{},d)));function f(y){return y?Object.keys(y):[]}function p(y){if(t&&y.push(t),new Set(y).size!==y.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return y}function h(y){return n.const("value",(0,En._)`${i}${(0,En.getProperty)(y)}`)}function m(y,E,S){n.add(qr.default.json,(0,En.str)`${JSON.stringify(y)}:`),MM({...e,schema:E,data:S})}function g(y,E){return E.length?(0,En.and)(...E.map(S=>(0,En._)`${y} !== ${S}`)):!0}}function h0n(e){let{gen:t,schema:n,data:r}=e;switch(n.type){case"boolean":t.add(qr.default.json,(0,En._)`${r} ? "true" : "false"`);break;case"string":CM(e);break;case"timestamp":t.if((0,En._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,En._)`'"' + ${r}.toISOString() + '"'`),()=>CM(e));break;default:m0n(e)}}function CM({gen:e,data:t}){e.add(qr.default.json,(0,En._)`${(0,a0n.useFunc)(e,c0n.default)}(${t})`)}function m0n({gen:e,data:t,self:n}){let r=(0,En._)`${t} === Infinity || ${t} === -Infinity || ${t} !== ${t}`;n.opts.specialNumbers===void 0||n.opts.specialNumbers==="fast"?e.add(qr.default.json,(0,En._)`"" + ${t}`):e.if(r,()=>e.add(qr.default.json,(0,En._)`null`),()=>e.add(qr.default.json,(0,En._)`"" + ${t}`))}function g0n(e){let{gen:t,self:n,data:r,definitions:i,schema:s,schemaEnv:o}=e,{ref:a}=s,c=i[a];if(!c)throw new i0n.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,o0n.hasRef)(c))return MM({...e,schema:c});let{root:u}=o,l=Knt.call(n,new Wnt.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,En._)`${y0n(t,l)}(${r})`)}function y0n(e,t){return t.serialize?e.scopeValue("serialize",{ref:t.serialize}):(0,En._)`${e.scopeValue("wrapper",{ref:t})}.serialize`}function S0n({gen:e,data:t}){e.add(qr.default.json,(0,En._)`JSON.stringify(${t})`)}function Kue({gen:e},t){t?e.if(t,()=>e.assign(t,!1),()=>e.add(qr.default.json,(0,En.str)`,`)):e.add(qr.default.json,(0,En.str)`,`)}});var Qnt=w(nE=>{"use strict";Object.defineProperty(nE,"__esModule",{value:!0});nE.parseJsonString=nE.parseJsonNumber=nE.parseJson=void 0;var E0n=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function sg(e,t){let n;sg.message=void 0;let r;t&&(e=e.slice(t));try{return sg.position=t+e.length,JSON.parse(e)}catch(i){if(r=E0n.exec(i.message),!r){sg.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),sg.position=t+n;try{return JSON.parse(e)}catch{sg.message=`unexpected token ${s}`;return}}}nE.parseJson=sg;sg.message=void 0;sg.position=0;sg.code='require("ajv/dist/runtime/parseJson").parseJson';function og(e,t,n){let r="",i;if(og.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return og.position=t,+r;if(e[t]==="."&&(r+=".",t++,!s())){o();return}if(i=e[t],(i==="e"||i==="E")&&(r+="e",t++,i=e[t],(i==="+"||i==="-")&&(r+=i,t++),!s())){o();return}return og.position=t,+r;function s(a){let c=!1;for(;i=e[t],i>="0"&&i<="9"&&(a===void 0||a-- >0);)c=!0,r+=i,t++;return c}function o(){og.position=t,og.message=t="a"&&r<="f")o+=r.charCodeAt(0)-_0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-b0n;else{i(`unexpected token ${r}`);return}t++}n+=String.fromCharCode(o)}else{i(`unexpected token ${r}`);return}else if(r===void 0){i("unexpected end");return}else if(r.charCodeAt(0)>=32)n+=r;else{i(`unexpected token ${r}`);return}return tE.position=t,n;function i(s){tE.position=t,tE.message=s}}nE.parseJsonString=tE;tE.message=void 0;tE.position=0;tE.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var urt=w(nle=>{"use strict";Object.defineProperty(nle,"__esModule",{value:!0});var T0n=zue(),nrt=jb(),mt=Ot(),v0n=Km(),Dn=gd(),A0n=Sa(),R0n=d4(),w0n=Cue(),Xue=Qnt(),rrt=pn(),k0n=Nue(),I0n={elements:N0n,values:C0n,discriminator:D0n,properties:$nt,optionalProperties:$nt,enum:U0n,type:L0n,ref:F0n};function irt(e,t){let n=nrt.getCompilingSchema.call(this,e);if(n)return n;let{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new mt.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a=o.scopeName("parse"),c={self:this,gen:o,schema:e.schema,schemaEnv:e,definitions:t,data:Dn.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,x0n(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Dn.default.scope)}return ${l}`;let f=new Function(`${Dn.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.parse=f}catch(l){throw u&&this.logger.error("Error compiling parser, function code:",u),delete e.parse,delete e.parseName,l}finally{this._compilations.delete(e)}return e}nle.default=irt;var Jue=(0,mt._)`undefined`;function x0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Dn.default.json}, ${Dn.default.jsonPos}, ${Dn.default.jsonPart}`,!1,()=>{t.let(Dn.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,Jue),t.assign((0,mt._)`${n}.position`,Jue),t.assign(Dn.default.jsonPos,(0,mt._)`${Dn.default.jsonPos} || 0`),t.const(Dn.default.jsonLen,(0,mt._)`${Dn.default.json}.length`),g4(e),tle(e),t.if(Dn.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Dn.default.jsonPos),t.return(Dn.default.data)}),t.if((0,mt._)`${Dn.default.jsonPos} === ${Dn.default.jsonLen}`,()=>t.return(Dn.default.data)),Kk(e)})}function g4(e){let t;for(let n of T0n.jtdForms)if(n in e.schema){t=n;break}t?P0n(e,I0n[t]):$ue(e)}var O0n=trt(!0,trt(!1,Kk));function P0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);DM(e,"null",t,()=>n.assign(i,null))}function N0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),Que(e,"]",()=>{let s=t.let("el");g4({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function C0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),Que(e,"}",()=>M0n(e,n.values))}function Que(e,t,n){srt(e,t,n),Ah(e,t)}function srt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Dn.default.jsonPos}<${Dn.default.jsonLen} && ${y4(1)}!==${t};`,()=>{n(),DM(e,",",()=>r.break(),i)});function i(){DM(e,t,()=>{},Kk)}}function M0n(e,t){let{gen:n}=e,r=n.let("key");fT({...e,data:r}),Ah(e,":"),art(e,r,t)}function D0n(e){let{gen:t,data:n,schema:r}=e,{discriminator:i,mapping:s}=r;Ah(e,"{"),t.assign(n,(0,mt._)`{}`);let o=t.const("pos",Dn.default.jsonPos),a=t.let("value"),c=t.let("tag");srt(e,"}",()=>{let u=t.let("key");fT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{fT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>$ue({...e,data:a}))}),t.assign(Dn.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),ag(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),ort({...e,schema:s[u]},i);t.else(),ag(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function $nt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),ort(e)}function ort(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(Que(e,"}",()=>{let c=n.let("key");if(fT({...e,data:c}),Ah(e,":"),n.if(!1),ert(e,c,s),ert(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");fT({...e,data:u})}n.else(),a?$ue({...e,data:(0,mt._)`${i}[${c}]`}):ag(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,A0n.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>ag(e,(0,mt.str)`missing required properties`))}}function ert(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),art(e,t,n[i])}function art(e,t,n){g4({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function L0n(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":O0n(e);break;case"string":fT(e);break;case"timestamp":{fT(e);let s=(0,rrt.useFunc)(t,k0n.default),{allowDate:o,parseDate:a}=i.opts,c=o?(0,mt._)`!${s}(${r}, true)`:(0,mt._)`!${s}(${r})`,u=a?(0,mt.or)(c,(0,mt._)`(${r} = new Date(${r}), false)`,(0,mt._)`isNaN(${r}.valueOf())`):c;t.if(u,()=>ag(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":Zue(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))Zue(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>ag(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=w0n.intRange[s];Zue(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>ag(e,(0,mt.str)`integer out of range`))}}}}function fT(e){Ah(e,'"'),ele(e,Xue.parseJsonString)}function U0n(e){let{gen:t,data:n,schema:r}=e,i=r.enum;Ah(e,'"'),t.if(!1);for(let s of i){let o=JSON.stringify(s).slice(1);t.elseIf((0,mt._)`${y4(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Dn.default.jsonPos,o.length)}t.else(),Kk(e),t.endIf()}function Zue(e,t){let{gen:n}=e;tle(e),n.if((0,mt._)`"-0123456789".indexOf(${y4(1)}) < 0`,()=>Kk(e),()=>ele(e,Xue.parseJsonNumber,t))}function trt(e,t){return n=>{let{gen:r,data:i}=n;DM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function F0n(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new v0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,R0n.hasRef)(a))return g4({...e,schema:a});let{root:c}=s,u=irt.call(n,new nrt.SchemaEnv({schema:a,root:c}),r);crt(e,j0n(t,u),!0)}function j0n(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function $ue(e){ele(e,Xue.parseJson)}function ele(e,t,n){crt(e,(0,rrt.useFunc)(e.gen,t),n)}function crt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Dn.default.json}, ${Dn.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Dn.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>ag(e,(0,mt._)`${t}.message`))}function Ah(e,t){DM(e,t,Kk)}function DM(e,t,n,r){let{gen:i}=e,s=t.length;tle(e),i.if((0,mt._)`${y4(s)} === ${t}`,()=>{i.add(Dn.default.jsonPos,s),r?.(e)},()=>n(e))}function tle({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Dn.default.json}[${Dn.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Dn.default.jsonPos}++;`)}function y4(e){return e===1?(0,mt._)`${Dn.default.json}[${Dn.default.jsonPos}]`:(0,mt._)`${Dn.default.json}.slice(${Dn.default.jsonPos}, ${Dn.default.jsonPos}+${e})`}function Kk(e){ag(e,(0,mt._)`"unexpected token " + ${Dn.default.json}[${Dn.default.jsonPos}]`)}function ag({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Dn.default.jsonPos),e.return(Jue)}});var sle=w((Ei,ile)=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.MissingRefError=Ei.ValidationError=Ei.CodeGen=Ei.Name=Ei.nil=Ei.stringify=Ei.str=Ei._=Ei.KeywordCxt=Ei.Ajv=void 0;var H0n=Cse(),q0n=Fnt(),B0n=Bnt(),G0n=Jnt(),z0n=urt(),rle="JTD-meta-schema",Yk=class extends H0n.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(q0n.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(B0n.default,rle,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(rle)?rle:void 0)}compileSerializer(t){let n=this._addSchema(t);return n.serialize||this._compileSerializer(n)}compileParser(t){let n=this._addSchema(t);return n.parse||this._compileParser(n)}_compileSerializer(t){if(G0n.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(z0n.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};Ei.Ajv=Yk;ile.exports=Ei=Yk;ile.exports.Ajv=Yk;Object.defineProperty(Ei,"__esModule",{value:!0});Ei.default=Yk;var V0n=tk();Object.defineProperty(Ei,"KeywordCxt",{enumerable:!0,get:function(){return V0n.KeywordCxt}});var Zk=Ot();Object.defineProperty(Ei,"_",{enumerable:!0,get:function(){return Zk._}});Object.defineProperty(Ei,"str",{enumerable:!0,get:function(){return Zk.str}});Object.defineProperty(Ei,"stringify",{enumerable:!0,get:function(){return Zk.stringify}});Object.defineProperty(Ei,"nil",{enumerable:!0,get:function(){return Zk.nil}});Object.defineProperty(Ei,"Name",{enumerable:!0,get:function(){return Zk.Name}});Object.defineProperty(Ei,"CodeGen",{enumerable:!0,get:function(){return Zk.CodeGen}});var W0n=TC();Object.defineProperty(Ei,"ValidationError",{enumerable:!0,get:function(){return W0n.default}});var K0n=Km();Object.defineProperty(Ei,"MissingRefError",{enumerable:!0,get:function(){return K0n.default}})});var ole=w((QKr,lrt)=>{"use strict";var Y0n=WV();lrt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:Y0n,addUsedSchema:!1,allErrors:!1})});var prt=w(($Kr,frt)=>{"use strict";var Z0n=Gb().default,J0n=sle(),drt=ole(),ale=class{constructor(t,n){n.mode==="JTD"?this.ajv=new J0n(Object.assign({},drt,n.customOptions)):this.ajv=new Z0n(Object.assign({},drt,n.customOptions));let r=!0;if(n.plugins&&n.plugins.length>0)for(let s of n.plugins)Array.isArray(s)?(r=r&&s[0].name!=="formatsPlugin",s[0](this.ajv,s[1])):(r=r&&s.name!=="formatsPlugin",s(this.ajv));r&&u2()(this.ajv),n.onCreate?.(this.ajv);let i=Object.values(t);for(let s of i)this.ajv.addSchema(s)}buildValidatorFunction({schema:t}){if(t.$id){let n=this.ajv.getSchema(t.$id);if(n)return n}return this.ajv.compile(t)}};frt.exports=ale});var mrt=w((e9r,hrt)=>{"use strict";var X0n=sle(),Q0n=ole(),cle=class{constructor(t,n){this.ajv=new X0n(Object.assign({},Q0n,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};hrt.exports=cle});var Srt=w((UM,yrt)=>{"use strict";Object.defineProperty(UM,"__esModule",{value:!0});var LM=PV(),Pf=Kw();function grt(e,t){if(!e.opts.code.source)throw new Error("moduleCode: ajv instance must have code.source option");let{_n:n}=e.scope.opts;return typeof t=="function"?i(t.source):t!==void 0?s(t,r):s(e.schemas,a=>a.meta?void 0:e.compile(a.schema));function r(a){let c=e.getSchema(a);if(!c)throw new Error(`moduleCode: no schema with id ${a}`);return c}function i(a){let c={},u=a?.validateName,l=o(c,a);return e.opts.code.esm?`"use strict";${n}export const validate = ${u};${n}export default ${u};${n}${l}`:`"use strict";${n}module.exports = ${u};${n}module.exports.default = ${u};${n}${l}`}function s(a,c){var u;let l={},d=(0,Pf._)`"use strict";`;for(let f in a){let p=c(a[f]);if(p){let h=o(l,p.source),m=e.opts.code.esm?(0,Pf._)`export const ${(0,Pf.getEsmExportName)(f)}`:(0,Pf._)`exports${(0,Pf.getProperty)(f)}`;d=(0,Pf._)`${d}${n}${m} = ${(u=p.source)===null||u===void 0?void 0:u.validateName};${n}${h}`}}return`${d}`}function o(a,c){if(!c)throw new Error('moduleCode: function does not have "source" property');if(f(c.validateName)===LM.UsedValueState.Completed)return Pf.nil;p(c.validateName,LM.UsedValueState.Started);let u=e.scope.scopeCode(c.scopeValues,a,d),l=new Pf._Code(`${u}${n}${c.validateCode}`);return c.evaluated?(0,Pf._)`${l}${c.validateName}.evaluated = ${c.evaluated};${n}`:l;function d(h){var m;let g=(m=h.value)===null||m===void 0?void 0:m.ref;if(h.prefix==="validate"&&typeof g=="function")return o(a,g.source);if((h.prefix==="root"||h.prefix==="wrapper")&&typeof g=="object"){let{validate:y,validateName:E}=g;if(!E)throw new Error("ajv internal error");let S=e.opts.code.es5?LM.varKinds.var:LM.varKinds.const,_=(0,Pf._)`${S} ${h} = {validate: ${E}};`;if(f(E)===LM.UsedValueState.Started)return _;let b=o(a,y?.source);return(0,Pf._)`${_}${n}${b}`}}function f(h){var m;return(m=a[h.prefix])===null||m===void 0?void 0:m.get(h)}function p(h,m){let{prefix:g}=h;(a[g]=a[g]||new Map).set(h,m)}}}yrt.exports=UM=grt;Object.defineProperty(UM,"__esModule",{value:!0});UM.default=grt});var brt=w((t9r,_rt)=>{"use strict";var Ert=ule(),$0n=Srt().default;function exn(e={readMode:!0}){if(e.readMode===!0&&!e.restoreFunction)throw new Error("You must provide a restoreFunction options when readMode ON");if(e.readMode!==!0&&!e.storeFunction)throw new Error("You must provide a storeFunction options when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=Ert();return function(r,i={}){(!i.customOptions||!i.customOptions.code)&&(i.customOptions=Object.assign({},i.customOptions,{code:{source:!0}}));let s=t(r,i);return function(o){let a=s(o),c=$0n(s[Ert.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}_rt.exports=exn});var ule=w((n9r,Jk)=>{"use strict";var vrt=Symbol.for("fastify.ajv-compiler.reference"),txn=prt(),nxn=mrt();function lle(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Trt({},s);if(n.has(o))return n.get(o);let a=new nxn(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Trt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new txn(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[vrt]=a),c}}function Trt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}Jk.exports=lle;Jk.exports.default=lle;Jk.exports.AjvCompiler=lle;Jk.exports.AjvReference=vrt;Jk.exports.StandaloneValidator=brt()});var S4=w(wrt=>{var Art=Object.prototype.hasOwnProperty;function Rrt(e,t,n){for(n of e.keys())if(FM(n,t))return n}function FM(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&FM(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i=="object"&&(i=Rrt(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i=="object"&&(i=Rrt(t,i),!i)||!FM(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(Art.call(e,n)&&++r&&!Art.call(t,n)||!(n in t)||!FM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}wrt.dequal=FM});var Ort=w((i9r,xrt)=>{"use strict";var{dequal:krt}=S4(),rxn=Symbol.for("json-schema-ref"),dle=class{#t;#n;#i;#e;#r;constructor(t={}){this.#t={},this.#n={},this.#i=t.insertRefSymbol??!1,this.#e=t.allowEqualDuplicates??!0,this.#r=t.cloneSchemaWithoutRefs??!1}addSchema(t,n,r=!0){r&&(t.$id!==void 0&&t.$id.charAt(0)!=="#"?n=t.$id:this.#o(t,n));let i=t.$id;i!==void 0&&typeof i=="string"&&(i.charAt(0)==="#"?this.#a(t,n,i):(this.#o(t,i),n=i));let s=t.$ref;if(s!==void 0&&typeof s=="string"){let{refSchemaId:o,refJsonPointer:a}=this.#s(s,n);this.#t[n].refs.push({schemaId:o,jsonPointer:a})}for(let o in t)typeof t[o]=="object"&&t[o]!==null&&this.addSchema(t[o],n,!1)}getSchema(t,n="#"){let r=this.#t[t];if(r===void 0)throw new Error(`Cannot resolve ref "${t}${n}". Schema with id "${t}" is not found.`);return r.anchors[n]!==void 0?r.anchors[n]:Irt(r.schema,n)}hasSchema(t){return this.#t[t]!==void 0}getSchemaRefs(t){let n=this.#t[t];if(n===void 0)throw new Error(`Schema with id "${t}" is not found.`);return n.refs}getSchemaDependencies(t,n={}){let r=this.#t[t];for(let i of r.refs){let s=i.schemaId;s===t||n[s]!==void 0||(n[s]=this.getSchema(s),this.getSchemaDependencies(s,n))}return n}derefSchema(t){if(this.#n[t]!==void 0)return;let n=this.#t[t];if(n===void 0)throw new Error(`Schema with id "${t}" is not found.`);!this.#r&&n.refs.length===0&&(this.#n[t]={schema:n.schema,anchors:n.anchors});let r=[];this.#c(n.schema,t,!0,r);let i=this.getSchemaDependencies(t);for(let s in i){let o=i[s];this.#c(o,s,!0,r)}for(let s of r){let{refSchemaId:o,refJsonPointer:a}=this.#s(s.ref,s.sourceSchemaId),c=this.getDerefSchema(o,a);if(c===null)throw new Error(`Cannot resolve ref "${s.ref}". Ref "${a}" is not found in schema "${o}".`);s.targetSchema=c,s.targetSchemaId=o}for(let s of r)this.#u(s,r)}getDerefSchema(t,n="#"){let r=this.#n[t];return r===void 0&&(this.derefSchema(t),r=this.#n[t]),r.anchors[n]!==void 0?r.anchors[n]:Irt(r.schema,n)}#s(t,n){let r=t.indexOf("#");return r===-1?{refSchemaId:t,refJsonPointer:"#"}:r===0?{refSchemaId:n,refJsonPointer:t}:{refSchemaId:t.slice(0,r),refJsonPointer:t.slice(r)}}#c(t,n,r,i=[]){let s=Array.isArray(t)?[...t]:{...t};r&&(t.$id!==void 0&&t.$id.charAt(0)!=="#"?n=t.$id:this.#l(s,n));let o=s.$id;o!==void 0&&typeof o=="string"&&(o.charAt(0)==="#"?this.#d(s,n,o):(this.#l(s,o),n=o)),s.$ref!==void 0&&i.push({ref:s.$ref,sourceSchemaId:n,sourceSchema:s});for(let a in s){let c=s[a];typeof c=="object"&&c!==null&&(s[a]=this.#c(c,n,!1,i))}return s}#u(t,n){let{sourceSchema:r,targetSchema:i}=t;if(r.$ref){if(this.#i&&(r[rxn]=r.$ref),delete r.$ref,i.$ref){let s=n.find(o=>o.sourceSchema===i);this.#u(s,n)}for(let s in i)if(s!=="$id"){if(r[s]!==void 0){if(krt(r[s],i[s]))continue;throw new Error(`Cannot resolve ref "${t.ref}". Property "${s}" already exists in schema "${t.sourceSchemaId}".`)}r[s]=i[s]}t.isResolved=!0}}#o(t,n){let r=this.#t[n];if(r!==void 0){if(this.#e&&krt(t,r.schema))return;throw new Error(`There is already another schema with id "${n}".`)}this.#t[n]={schema:t,anchors:{},refs:[]}}#a(t,n,r){let{anchors:i}=this.#t[n];if(i[r]!==void 0)throw new Error(`There is already another anchor "${r}" in schema "${n}".`);i[r]=t}#l(t,n){this.#n[n]===void 0&&(this.#n[n]={schema:t,anchors:{}})}#d(t,n,r){let{anchors:i}=this.#n[n];i[r]=t}};function Irt(e,t){let n=t.split("/"),r=e;for(let i of n)if(!(i===""||i==="#")){if(typeof r!="object"||r===null)return null;r=r[i]}return r??null}xrt.exports={RefResolver:dle}});var ple=w((s9r,Prt)=>{"use strict";var ixn=Gb(),sxn=WV(),oxn=u2(),axn=GW()({proto:!0}),fle=class e{constructor(t){this.ajv=new ixn({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:sxn}),oxn(this.ajv),this.ajv.addKeyword({keyword:"fjs_type",type:"object",errors:!1,validate:(n,r)=>r&&typeof r.toJSON=="function"}),this._ajvSchemas={},this._ajvOptions=t||{}}addSchema(t,n){let r=t.$id||n;if(t.$id!==void 0&&t.$id[0]==="#"&&(r=n+t.$id),this.ajv.refs[r]===void 0&&this.ajv.schemas[r]===void 0){let i=axn(t);this.convertSchemaToAjvFormat(i),this.ajv.addSchema(i,r),this._ajvSchemas[r]=t}}validate(t,n){return this.ajv.validate(t,n)}convertSchemaToAjvFormat(t){if(t!==null){t.type==="string"?(t.fjs_type="string",t.type=["string","object"]):Array.isArray(t.type)&&t.type.includes("string")&&!t.type.includes("object")&&(t.fjs_type="string",t.type.push("object"));for(let n in t)typeof t[n]=="object"&&this.convertSchemaToAjvFormat(t[n])}}getState(){return{ajvOptions:this._ajvOptions,ajvSchemas:this._ajvSchemas}}static restoreFromState(t){let n=new e(t.ajvOptions);for(let[r,i]of Object.entries(t.ajvSchemas))n.ajv.addSchema(i,r);return n}};Prt.exports=fle});var Crt=w((o9r,Nrt)=>{"use strict";var hle=class e{constructor(t,n,r="#"){this.schema=t,this.schemaId=n,this.jsonPointer=r}getPropertyLocation(t){return new e(this.schema[t],this.schemaId,this.jsonPointer+"/"+t)}getSchemaRef(){return this.schemaId+this.jsonPointer}};Nrt.exports=hle});var Frt=w((a9r,gle)=>{"use strict";gle.exports=qe;gle.exports.default=qe;var cxn={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0},Mrt={enum:["array","boolean","integer","null","number","object","string"]},Drt=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,uxn=a2().fullFormats.uri,Lrt=a2().fullFormats.regex;function Ad(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o;return typeof e=="number"&&!(e%1)&&!isNaN(e)&&isFinite(e)?o===a&&typeof e=="number"&&isFinite(e)&&(e<0||isNaN(e))?(Ad.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(Ad.errors=s,o===0):(Ad.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var mle={validate:qe};function zc(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0;if(o===0)if(Array.isArray(e)){if(e.length<1)return zc.errors=[{instancePath:t,schemaPath:"#/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"}],!1;{var a=!0;let c=e.length;for(let u=0;u",limit:0},message:"must be > 0"}],!1}else return qe.errors=[{instancePath:t+"/multipleOf",schemaPath:"#/properties/multipleOf/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.maximum!==void 0){let S=e.maximum,_=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/maximum",schemaPath:"#/properties/maximum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.exclusiveMaximum!==void 0){let S=e.exclusiveMaximum,_=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/exclusiveMaximum",schemaPath:"#/properties/exclusiveMaximum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.minimum!==void 0){let S=e.minimum,_=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/minimum",schemaPath:"#/properties/minimum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.exclusiveMinimum!==void 0){let S=e.exclusiveMinimum,_=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/exclusiveMinimum",schemaPath:"#/properties/exclusiveMinimum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=_===o}else var a=!0;if(a){if(e.maxLength!==void 0){let S=e.maxLength,_=o,b=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxLength",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===b&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxLength",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=_===o}else var a=!0;if(a){if(e.minLength!==void 0){let S=o;Ad(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?Ad.errors:s.concat(Ad.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.pattern!==void 0){let S=e.pattern,_=o;if(o===_&&o===_)if(typeof S=="string"){if(!Lrt(S))return qe.errors=[{instancePath:t+"/pattern",schemaPath:"#/properties/pattern/format",keyword:"format",params:{format:"regex"},message:'must match format "regex"'}],!1}else return qe.errors=[{instancePath:t+"/pattern",schemaPath:"#/properties/pattern/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=_===o}else var a=!0;if(a){if(e.additionalItems!==void 0){let S=o;qe(e.additionalItems,{instancePath:t+"/additionalItems",parentData:e,parentDataProperty:"additionalItems",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.items!==void 0){let S=e.items,_=o,b=o,T=!1,A=o;qe(S,{instancePath:t+"/items",parentData:e,parentDataProperty:"items",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var c=A===o;if(T=T||c,!T){let x=o;zc(S,{instancePath:t+"/items",parentData:e,parentDataProperty:"items",rootData:i})||(s=s===null?zc.errors:s.concat(zc.errors),o=s.length);var c=x===o;T=T||c}if(T)o=b,s!==null&&(b?s.length=b:s=null);else{let x={instancePath:t+"/items",schemaPath:"#/properties/items/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[x]:s.push(x),o++,qe.errors=s,!1}var a=_===o}else var a=!0;if(a){if(e.maxItems!==void 0){let S=e.maxItems,_=o,b=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxItems",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===b&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxItems",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=_===o}else var a=!0;if(a){if(e.minItems!==void 0){let S=o;Ad(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?Ad.errors:s.concat(Ad.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.uniqueItems!==void 0){let S=o;if(typeof e.uniqueItems!="boolean")return qe.errors=[{instancePath:t+"/uniqueItems",schemaPath:"#/properties/uniqueItems/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;var a=S===o}else var a=!0;if(a){if(e.contains!==void 0){let S=o;qe(e.contains,{instancePath:t+"/contains",parentData:e,parentDataProperty:"contains",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.maxProperties!==void 0){let S=e.maxProperties,_=o,b=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxProperties",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===b&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxProperties",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=_===o}else var a=!0;if(a){if(e.minProperties!==void 0){let S=o;Ad(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?Ad.errors:s.concat(Ad.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.required!==void 0){let S=e.required,_=o;if(o===o)if(Array.isArray(S)){var u=!0;let A=S.length;for(let R=0;R1){let k={};for(;R--;){let P=S[R];if(typeof P=="string"){if(typeof k[P]=="number"){return x=k[P],qe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/uniqueItems",keyword:"uniqueItems",params:{i:R,j:x},message:"must NOT have duplicate items (items ## "+x+" and "+R+" are identical)"}],!1;break}k[P]=R}}}}}else return qe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=_===o}else var a=!0;if(a){if(e.additionalProperties!==void 0){let S=o;qe(e.additionalProperties,{instancePath:t+"/additionalProperties",parentData:e,parentDataProperty:"additionalProperties",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.definitions!==void 0){let S=e.definitions,_=o;if(o===_)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let A=o;qe(S[T],{instancePath:t+"/definitions/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var l=A===o;if(!l)break}else return qe.errors=[{instancePath:t+"/definitions",schemaPath:"#/properties/definitions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=_===o}else var a=!0;if(a){if(e.properties!==void 0){let S=e.properties,_=o;if(o===_)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let A=o;qe(S[T],{instancePath:t+"/properties/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var d=A===o;if(!d)break}else return qe.errors=[{instancePath:t+"/properties",schemaPath:"#/properties/properties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=_===o}else var a=!0;if(a){if(e.patternProperties!==void 0){let S=e.patternProperties,_=o;if(o===_)if(S&&typeof S=="object"&&!Array.isArray(S)){for(let T in S){let A=o;if(o===A&&typeof T=="string"&&!Lrt(T)){let R={instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/propertyNames/format",keyword:"format",params:{format:"regex"},message:'must match format "regex"',propertyName:T};s===null?s=[R]:s.push(R),o++}var f=A===o;if(!f){let R={instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/propertyNames",keyword:"propertyNames",params:{propertyName:T},message:"property name must be valid"};return s===null?s=[R]:s.push(R),o++,qe.errors=s,!1;break}}if(f)for(let T in S){let A=o;qe(S[T],{instancePath:t+"/patternProperties/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var p=A===o;if(!p)break}}else return qe.errors=[{instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=_===o}else var a=!0;if(a){if(e.dependencies!==void 0){let S=e.dependencies,_=o;if(o===_)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let A=S[T],R=o,x=o,k=!1,P=o;qe(A,{instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var h=P===o;if(k=k||h,!k){let N=o;if(o===o)if(Array.isArray(A)){var m=!0;let V=A.length;for(let K=0;K1){let B={};for(;K--;){let X=A[K];if(typeof X=="string"){if(typeof B[X]=="number"){$=B[X];let G={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/definitions/stringArray/uniqueItems",keyword:"uniqueItems",params:{i:K,j:$},message:"must NOT have duplicate items (items ## "+$+" and "+K+" are identical)"};s===null?s=[G]:s.push(G),o++;break}B[X]=K}}}}}else{let V={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"};s===null?s=[V]:s.push(V),o++}var h=N===o;k=k||h}if(k)o=x,s!==null&&(x?s.length=x:s=null);else{let N={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/dependencies/additionalProperties/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[N]:s.push(N),o++,qe.errors=s,!1}var g=R===o;if(!g)break}else return qe.errors=[{instancePath:t+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=_===o}else var a=!0;if(a){if(e.propertyNames!==void 0){let S=o;qe(e.propertyNames,{instancePath:t+"/propertyNames",parentData:e,parentDataProperty:"propertyNames",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.enum!==void 0){let S=e.enum,_=o;if(o===_)if(Array.isArray(S)){if(S.length<1)return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"}],!1;{let T=S.length,A;if(T>1){e:for(;T--;)for(A=T;A--;)if(Urt(S[T],S[A])){return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/uniqueItems",keyword:"uniqueItems",params:{i:T,j:A},message:"must NOT have duplicate items (items ## "+A+" and "+T+" are identical)"}],!1;break e}}}}else return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=_===o}else var a=!0;if(a){if(e.type!==void 0){let S=e.type,_=o,b=o,T=!1,A=o;if(!(S==="array"||S==="boolean"||S==="integer"||S==="null"||S==="number"||S==="object"||S==="string")){let x={instancePath:t+"/type",schemaPath:"#/definitions/simpleTypes/enum",keyword:"enum",params:{allowedValues:Mrt.enum},message:"must be equal to one of the allowed values"};s===null?s=[x]:s.push(x),o++}var y=A===o;if(T=T||y,!T){let x=o;if(o===x)if(Array.isArray(S))if(S.length<1){let P={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};s===null?s=[P]:s.push(P),o++}else{var E=!0;let P=S.length;for(let N=0;N1){e:for(;N--;)for(C=N;C--;)if(Urt(S[N],S[C])){let F={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/uniqueItems",keyword:"uniqueItems",params:{i:N,j:C},message:"must NOT have duplicate items (items ## "+C+" and "+N+" are identical)"};s===null?s=[F]:s.push(F),o++;break e}}}}else{let P={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/type",keyword:"type",params:{type:"array"},message:"must be array"};s===null?s=[P]:s.push(P),o++}var y=x===o;T=T||y}if(T)o=b,s!==null&&(b?s.length=b:s=null);else{let x={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[x]:s.push(x),o++,qe.errors=s,!1}var a=_===o}else var a=!0;if(a){if(e.format!==void 0){let S=o;if(typeof e.format!="string")return qe.errors=[{instancePath:t+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.contentMediaType!==void 0){let S=o;if(typeof e.contentMediaType!="string")return qe.errors=[{instancePath:t+"/contentMediaType",schemaPath:"#/properties/contentMediaType/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.contentEncoding!==void 0){let S=o;if(typeof e.contentEncoding!="string")return qe.errors=[{instancePath:t+"/contentEncoding",schemaPath:"#/properties/contentEncoding/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.if!==void 0){let S=o;qe(e.if,{instancePath:t+"/if",parentData:e,parentDataProperty:"if",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.then!==void 0){let S=o;qe(e.then,{instancePath:t+"/then",parentData:e,parentDataProperty:"then",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.else!==void 0){let S=o;qe(e.else,{instancePath:t+"/else",parentData:e,parentDataProperty:"else",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.allOf!==void 0){let S=o;zc(e.allOf,{instancePath:t+"/allOf",parentData:e,parentDataProperty:"allOf",rootData:i})||(s=s===null?zc.errors:s.concat(zc.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.anyOf!==void 0){let S=o;zc(e.anyOf,{instancePath:t+"/anyOf",parentData:e,parentDataProperty:"anyOf",rootData:i})||(s=s===null?zc.errors:s.concat(zc.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.oneOf!==void 0){let S=o;zc(e.oneOf,{instancePath:t+"/oneOf",parentData:e,parentDataProperty:"oneOf",rootData:i})||(s=s===null?zc.errors:s.concat(zc.errors),o=s.length);var a=S===o}else var a=!0;if(a)if(e.not!==void 0){let S=o;qe(e.not,{instancePath:t+"/not",parentData:e,parentDataProperty:"not",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return qe.errors=s,o===0}});var _le=w((c9r,jrt)=>{"use strict";var yle=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Failed to merge "${t}" keyword schemas.`,this.schemas=n}},Sle=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Resolver for "${t}" keyword not found.`,this.schemas=n}},Ele=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};jrt.exports={MergeError:yle,ResolverNotFoundError:Sle,InvalidOnConflictOptionError:Ele}});var Brt=w((u9r,qrt)=>{"use strict";var{dequal:lxn}=S4(),{MergeError:ble}=_le();function Hrt(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function dxn(e,t,n){let r=Hrt(t);if(r.length===0)throw new ble(e,t);n[e]=r}function fxn(e,t,n){for(let i=0;ic?r(c,a%c):a,i=(a,c)=>a*c/r(a,c),s=1;for(let a of t)for(;a*s%1!==0;)s*=10;let o=t[0]*s;for(let a of t)o=i(o,a*s);n[e]=o/s}function yxn(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:bxn}=S4(),Xi=Brt(),b4=_le(),Vrt={$id:Xi.skip,type:Xi.hybridArraysIntersection,enum:Xi.arraysIntersection,minLength:Xi.maxNumber,maxLength:Xi.minNumber,minimum:Xi.maxNumber,maximum:Xi.minNumber,multipleOf:Xi.commonMultiple,exclusiveMinimum:Xi.maxNumber,exclusiveMaximum:Xi.minNumber,minItems:Xi.maxNumber,maxItems:Xi.minNumber,maxProperties:Xi.minNumber,minProperties:Xi.maxNumber,const:Xi.allEqual,default:Xi.allEqual,format:Xi.allEqual,required:Xi.arraysUnion,properties:kxn,patternProperties:_4,additionalProperties:E4,items:Axn,additionalItems:Rxn,definitions:_4,$defs:_4,nullable:Xi.booleanAnd,oneOf:Grt,anyOf:Grt,allOf:Xi.arraysUnion,not:E4,if:Ixn,then:Xi.skip,else:Xi.skip,dependencies:zrt,dependentRequired:zrt,dependentSchemas:_4,propertyNames:E4,uniqueItems:Xi.booleanOr,contains:E4};function E4(e,t,n,r,i){n[e]=Nf(t,i)}function Txn(e){let t=[[]];for(let n of e){let r=[];for(let i of t)for(let s of n)r.push([...i,s]);t=r}return t}function Grt(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=Txn(t),o=[];for(let a of s)try{let c=Nf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof b4.MergeError)continue;throw c}n[e]=o}function vxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Oxn}=Yrt();function Pxn(e){return Oxn(e,{onConflict:"skip"})}Zrt.exports=Pxn});var Xrt=w((f9r,Tle)=>{"use strict";function Nxn(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') `,i+=`const validatorState = ${JSON.stringify(r.getState())} `,i+=`const validator = Validator.restoreFromState(validatorState) `):i+=`const validator = null @@ -144,7 +144,7 @@ ${E}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null"; ${i} - module.exports = ${e.toString()}(validator, serializer)`}ile.exports=C0n;ile.exports.dependencies={Serializer:NW(),Validator:Yue()}});var xrt=w((E4r,Vk)=>{"use strict";var{RefResolver:M0n}=$nt(),D0n=NW(),L0n=Yue(),uT=nrt(),brt=art(),U0n=_rt(),j0n=/'/g,NM=2e4,c4="default",F0n=` + module.exports = ${e.toString()}(validator, serializer)`}Tle.exports=Nxn;Tle.exports.dependencies={Serializer:VW(),Validator:ple()}});var oit=w((p9r,Xk)=>{"use strict";var{RefResolver:Cxn}=Ort(),Mxn=VW(),Dxn=ple(),pT=Crt(),Qrt=Frt(),Lxn=Jrt(),Uxn=/'/g,jM=2e4,T4="default",Fxn=` const { asString, asNumber, @@ -157,8 +157,8 @@ const { const asInteger = serializer.asInteger.bind(serializer) -`,H0n=new Set(["floor","ceil","round","trunc"]),Rrt=new Set(["default","json-stringify"]),PM=0;function sle(e,t){if(!brt(e)){t?t=`"${t}" `:t="";let n=brt.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=sle.errors,r}}function rg(e,t){let n=t.schema.$ref,r=n.indexOf("#");r===-1&&(r=n.length);let i=n.slice(0,r)||t.schemaId,s=n.slice(r)||"#",o=e.refResolver.getSchema(i,s);if(o===null)throw new Error(`Cannot find reference "${n}"`);let a=new uT(o,i,s);return o.$ref!==void 0?rg(e,a):a}function u4(e,t){let n=e.refResolver.getSchema(t,"#");return new uT(n,t,"#")}function Trt(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function CM(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function ale(e,t){sle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new M0n,rootSchemaId:e.$id||`__fjs_root_${PM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=Trt(e,n.rootSchemaId);if(n.refResolver.hasSchema(r)||n.refResolver.addSchema(e,n.rootSchemaId),t.schema)for(let l in t.schema){let d=t.schema[l],f=Trt(d,l);n.refResolver.hasSchema(f)||(sle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!H0n.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(Rrt.has(t.largeArrayMechanism))c4=t.largeArrayMechanism;else throw new Error(`Unsupported large array mechanism ${t.largeArrayMechanism}`);if(t.largeArraySize){let l=typeof t.largeArraySize,d;if(l==="string"&&Number.isFinite(d=Number.parseInt(t.largeArraySize,10)))NM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))NM=t.largeArraySize;else if(l==="bigint")NM=Number(t.largeArraySize);else throw new Error(`Unsupported large array size. Expected integer-like, got ${typeof t.largeArraySize} with value ${t.largeArraySize}`)}let i=new uT(e,n.rootSchemaId);J0n(n,i);let s=tc(n,i,"input"),o=` - ${F0n} +`,jxn=new Set(["floor","ceil","round","trunc"]),nit=new Set(["default","json-stringify"]),HM=0;function vle(e,t){if(!Qrt(e)){t?t=`"${t}" `:t="";let n=Qrt.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=vle.errors,r}}function cg(e,t){let n=t.schema.$ref,r=n.indexOf("#");r===-1&&(r=n.length);let i=n.slice(0,r)||t.schemaId,s=n.slice(r)||"#",o=e.refResolver.getSchema(i,s);if(o===null)throw new Error(`Cannot find reference "${n}"`);let a=new pT(o,i,s);return o.$ref!==void 0?cg(e,a):a}function v4(e,t){let n=e.refResolver.getSchema(t,"#");return new pT(n,t,"#")}function $rt(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function qM(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Rle(e,t){vle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new Cxn,rootSchemaId:e.$id||`__fjs_root_${HM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=$rt(e,n.rootSchemaId);if(n.refResolver.hasSchema(r)||n.refResolver.addSchema(e,n.rootSchemaId),t.schema)for(let l in t.schema){let d=t.schema[l],f=$rt(d,l);n.refResolver.hasSchema(f)||(vle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!jxn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(nit.has(t.largeArrayMechanism))T4=t.largeArrayMechanism;else throw new Error(`Unsupported large array mechanism ${t.largeArrayMechanism}`);if(t.largeArraySize){let l=typeof t.largeArraySize,d;if(l==="string"&&Number.isFinite(d=Number.parseInt(t.largeArraySize,10)))jM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))jM=t.largeArraySize;else if(l==="bigint")jM=Number(t.largeArraySize);else throw new Error(`Unsupported large array size. Expected integer-like, got ${typeof t.largeArraySize} with value ${t.largeArraySize}`)}let i=new pT(e,n.rootSchemaId);Zxn(n,i);let s=ac(n,i,"input"),o=` + ${Fxn} const JSON_STR_BEGIN_OBJECT = '{' const JSON_STR_END_OBJECT = '}' const JSON_STR_BEGIN_ARRAY = '[' @@ -184,9 +184,9 @@ const asInteger = serializer.asInteger.bind(serializer) ${n.functions.join(` `)} return main - `;let a=new D0n(t),c=new L0n(t.ajv);for(let l of n.validatorSchemasIds){let d=n.refResolver.getSchema(l);c.addSchema(d,l);let f=n.refResolver.getSchemaDependencies(l);for(let[p,h]of Object.entries(f))c.addSchema(h,p)}if(t.debugMode&&(t.mode="debug"),t.mode==="debug")return{validator:c,serializer:a,code:`validator + `;let a=new Mxn(t),c=new Dxn(t.ajv);for(let l of n.validatorSchemasIds){let d=n.refResolver.getSchema(l);c.addSchema(d,l);let f=n.refResolver.getSchemaDependencies(l);for(let[p,h]of Object.entries(f))c.addSchema(h,p)}if(t.debugMode&&(t.mode="debug"),t.mode==="debug")return{validator:c,serializer:a,code:`validator serializer -${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode==="standalone"?Ert()(u,n,a,c):u(c,a)}var q0n=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],B0n=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],G0n=["maxLength","minLength","pattern"],z0n=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function V0n(e){for(let t of q0n)if(t in e)return"object";for(let t of B0n)if(t in e)return"array";for(let t of G0n)if(t in e)return"string";for(let t of z0n)if(t in e)return"number";return e.type}function W0n(e,t,n,r){let i=t.schema,s=Object.keys(i.properties||{}),o=` +${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode==="standalone"?Xrt()(u,n,a,c):u(c,a)}var Hxn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],qxn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],Bxn=["maxLength","minLength","pattern"],Gxn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function zxn(e){for(let t of Hxn)if(t in e)return"object";for(let t of qxn)if(t in e)return"array";for(let t of Bxn)if(t in e)return"string";for(let t of Gxn)if(t in e)return"number";return e.type}function Vxn(e,t,n,r){let i=t.schema,s=Object.keys(i.properties||{}),o=` for (const key of Object.keys(${r})) { if ( ${s.length>0?s.map(d=>`key === ${JSON.stringify(d)}`).join(" || ")+" ||":""} @@ -199,7 +199,7 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== if (/${d.replace(/\\*\//g,"\\/")}/.test(key)) { ${n} json += asString(key) + JSON_STR_COLONS - ${tc(e,f,"value")} + ${ac(e,f,"value")} continue } `}let l=t.getPropertyLocation("additionalProperties").schema;if(l!==void 0)if(l===!0)o+=` @@ -208,63 +208,63 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== `;else{let d=t.getPropertyLocation("additionalProperties");o+=` ${n} json += asString(key) + JSON_STR_COLONS - ${tc(e,d,"value")} + ${ac(e,d,"value")} `}return o+=` } - `,o}function vrt(e,t,n){let r=t.schema,i=t.getPropertyLocation("properties"),s=r.required||[],o=Object.keys(r.properties||{}).sort((l,d)=>{let f=s.includes(l),p=s.includes(d);return f===p?0:f?-1:1}),a="";for(let l of s)if(!o.includes(l)){let d=JSON.stringify(l);a+=`if (${n}[${d}] === undefined) throw new Error('${d.replace(/'/g,"\\'")} is required!') + `,o}function eit(e,t,n){let r=t.schema,i=t.getPropertyLocation("properties"),s=r.required||[],o=Object.keys(r.properties||{}).sort((l,d)=>{let f=s.includes(l),p=s.includes(d);return f===p?0:f?-1:1}),a="";for(let l of s)if(!o.includes(l)){let d=JSON.stringify(l);a+=`if (${n}[${d}] === undefined) throw new Error('${d.replace(/'/g,"\\'")} is required!') `}a+=`json += JSON_STR_BEGIN_OBJECT -`;let c=e.uid++,u="";if(s.length>0){for(let l=0;l0){for(let l=0;l1||r.patternProperties||r.additionalProperties!==void 0&&r.additionalProperties!==!1)&&(a+=`let addComma_${c} = false -`,u=`!addComma_${c} && (addComma_${c} = true) || (json += JSON_STR_COMMA)`);for(let d of o){let f=i.getPropertyLocation(d);f.schema.$ref&&(f=rg(e,f));let p=JSON.stringify(d),h=`value_${d.replace(/[^a-zA-Z0-9]/g,"_")}_${e.uid++}`,m=f.schema.default,y=s.includes(d);a+=` +`,u=`!addComma_${c} && (addComma_${c} = true) || (json += JSON_STR_COMMA)`);for(let d of o){let f=i.getPropertyLocation(d);f.schema.$ref&&(f=cg(e,f));let p=JSON.stringify(d),h=`value_${d.replace(/[^a-zA-Z0-9]/g,"_")}_${e.uid++}`,m=f.schema.default,g=s.includes(d);a+=` const ${h} = ${n}[${p}] if (${h} !== undefined) { ${u} json += ${JSON.stringify(p+":")} - ${tc(e,f,`${h}`)} + ${ac(e,f,`${h}`)} }`,m!==void 0?a+=` else { ${u} json += ${JSON.stringify(p+":"+JSON.stringify(m))} } - `:y?a+=` else { + `:g?a+=` else { throw new Error('${p.replace(/'/g,"\\'")} is required!') } `:a+=` -`}}return(r.patternProperties||r.additionalProperties)&&(a+=W0n(e,t,u,n)),a+=` +`}}return(r.patternProperties||r.additionalProperties)&&(a+=Vxn(e,t,u,n)),a+=` json += JSON_STR_END_OBJECT - `,a}function l4(e,t,n){for(let o=0,a=n.length;o ${s.length}) { throw new Error(\`Item at ${s.length} does not match schema definition.\`) } - `),c4==="json-stringify"&&(m+=`if (arrayLength >= ${NM}) return JSON.stringify(obj) + `),T4==="json-stringify"&&(m+=`if (arrayLength >= ${jM}) return JSON.stringify(obj) `),m+=` json += JSON_STR_BEGIN_ARRAY - `,Array.isArray(s)){for(let y=0,g=s.length;y 0) { const value = obj[0] - ${y} + ${g} for (let i = 1; i < arrayLength; i++) { json += JSON_STR_COMMA const value = obj[i] - ${y} + ${g} } }`}return m+=` return json + JSON_STR_END_ARRAY - }`,e.functions.push(m),`json += ${p}(${n})`}e.buildingSet.add(r);let l=CM(e,t),d=`obj_${e.uid++}`,f=` + }`,e.functions.push(m),`json += ${p}(${n})`}e.buildingSet.add(r);let l=qM(e,t),d=`obj_${e.uid++}`,f=` const ${d} = ${n} if (${d} === null) { json += ${o?"JSON_STR_NULL":"JSON_STR_EMPTY_ARRAY"} @@ -321,13 +321,13 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== if (arrayLength_${d} > ${s.length}) { throw new Error(\`Item at ${s.length} does not match schema definition.\`) } - `),c4==="json-stringify"&&(f+=`if (arrayLength_${d} >= ${NM}) json += JSON.stringify(${d}) + `),T4==="json-stringify"&&(f+=`if (arrayLength_${d} >= ${jM}) json += JSON.stringify(${d}) else {`),f+=` json += JSON_STR_BEGIN_ARRAY `,Array.isArray(s)){let p=e.uid++;f+=`let addComma_${p} = false -`;for(let h=0,m=s.length;h 0) { const value = ${d}[0] ${p} @@ -349,7 +349,7 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== } }`}return f+=` json += JSON_STR_END_ARRAY - `,c4==="json-stringify"&&(f+="}"),f+="}",e.buildingSet.delete(r),f}function ole(e,t){let n;switch(e){case"null":n=`${t} === null`;break;case"string":n=`typeof ${t} === 'string' || + `,T4==="json-stringify"&&(f+="}"),f+="}",e.buildingSet.delete(r),f}function Ale(e,t){let n;switch(e){case"null":n=`${t} === null`;break;case"string":n=`typeof ${t} === 'string' || ${t} === null || ${t} instanceof Date || ${t} instanceof RegExp || @@ -357,7 +357,7 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== typeof ${t} === "object" && typeof ${t}.toString === "function" && ${t}.toString !== Object.prototype.toString - )`;break;case"integer":n=`Number.isInteger(${t})`;break;case"number":n=`Number.isFinite(${t})`;break;case"boolean":n=`typeof ${t} === 'boolean'`;break;case"object":n=`${t} && typeof ${t} === 'object' && ${t}.constructor === Object`;break;case"array":n=`Array.isArray(${t})`;break;default:Array.isArray(e)&&(n=`(${e.map(i=>ole(i,t)).join(" || ")})`)}return n}function krt(e){return"anonymous"+e.functionsCounter++}function Y0n(e,t,n){let i=t.schema.type.sort(o=>o==="null"?-1:1),s="";return i.forEach((o,a)=>{t.schema={...t.schema,type:o};let c=Irt(e,t,n),u=a===0?"if":"else if";switch(o){case"null":s+=` + )`;break;case"integer":n=`Number.isInteger(${t})`;break;case"number":n=`Number.isFinite(${t})`;break;case"boolean":n=`typeof ${t} === 'boolean'`;break;case"object":n=`${t} && typeof ${t} === 'object' && ${t}.constructor === Object`;break;case"array":n=`Array.isArray(${t})`;break;default:Array.isArray(e)&&(n=`(${e.map(i=>Ale(i,t)).join(" || ")})`)}return n}function iit(e){return"anonymous"+e.functionsCounter++}function Yxn(e,t,n){let i=t.schema.type.sort(o=>o==="null"?-1:1),s="";return i.forEach((o,a)=>{t.schema={...t.schema,type:o};let c=sit(e,t,n),u=a===0?"if":"else if";switch(o){case"null":s+=` ${u} (${n} === null) { ${c} } @@ -388,8 +388,8 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== ${c} } `;break}}}),s+=` - else throw new TypeError(\`The value of '${CM(e,t)}' does not match schema definition.\`) - `,s}function Irt(e,t,n){let r=t.schema;switch(r.type){case"null":return"json += JSON_STR_NULL";case"string":return r.format==="date-time"?`json += asDateTime(${n})`:r.format==="date"?`json += asDate(${n})`:r.format==="time"?`json += asTime(${n})`:r.format==="unsafe"?`json += asUnsafeString(${n})`:` + else throw new TypeError(\`The value of '${qM(e,t)}' does not match schema definition.\`) + `,s}function sit(e,t,n){let r=t.schema;switch(r.type){case"null":return"json += JSON_STR_NULL";case"string":return r.format==="date-time"?`json += asDateTime(${n})`:r.format==="date"?`json += asDate(${n})`:r.format==="time"?`json += asTime(${n})`:r.format==="unsafe"?`json += asUnsafeString(${n})`:` if (typeof ${n} !== 'string') { if (${n} === null) { json += JSON_STR_EMPTY_STRING @@ -403,44 +403,44 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== } else { json += asString(${n}) } - `;case"integer":return`json += asInteger(${n})`;case"number":return`json += asNumber(${n})`;case"boolean":return`json += asBoolean(${n})`;case"object":return K0n(e,t,n);case"array":return Z0n(e,t,n);case void 0:return`json += JSON.stringify(${n})`;default:throw new Error(`${r.type} unsupported`)}}function J0n(e,t){let n=new Set;function r(i){let s=i.schema;if(typeof s!="object"||s===null)return;let o=i.schemaId||"",a=i.jsonPointer||"",c=`${o}#${a}`;if(n.has(c)){let u=!1;for(let l of n)l===c&&(u=!0),u&&e.recursivePaths.add(l);e.recursivePaths.add(c);return}if(n.add(c),s.$ref)try{let u=rg(e,i);r(u)}catch{}if(s.properties){let u=i.getPropertyLocation("properties");for(let l in s.properties)r(u.getPropertyLocation(l))}if(s.additionalProperties&&typeof s.additionalProperties=="object"&&r(i.getPropertyLocation("additionalProperties")),s.patternProperties){let u=i.getPropertyLocation("patternProperties");for(let l in s.patternProperties)r(u.getPropertyLocation(l))}if(s.items){let u=i.getPropertyLocation("items");if(Array.isArray(s.items))for(let l=0;l{"use strict";var txn=xrt();function Ort(){return function(t,n){let r=Object.assign({},n,{schema:t});return nxn.bind(null,r)}}function nxn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),txn(t,e)}function Nrt(e={readMode:!0}){if(e.readMode===!0&&typeof e.restoreFunction!="function")throw new Error("You must provide a function for the restoreFunction-option when readMode ON");if(e.readMode!==!0&&typeof e.storeFunction!="function")throw new Error("You must provide a function for the storeFunction-option when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=Ort();return function(r,i={}){i.mode="standalone";let s=t(r,i);return function(o){let a=s(o);return e.storeFunction(o,a),new Function(a)}}}d4.exports.SerializerSelector=Ort;d4.exports.StandaloneSerializer=Nrt;d4.exports.default=Nrt});var Crt=w((T4r,MM)=>{"use strict";var{SerializerSelector:cle,StandaloneSerializer:rxn}=Prt();MM.exports=cle;MM.exports.default=cle;MM.exports.SerializerSelector=cle;MM.exports.StandaloneSerializer=rxn});var ule=w((v4r,Mrt)=>{"use strict";var{buildSchemas:ixn}=fM();function sxn(e,t){if(e)return new Wk(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=Vue();n.buildValidator=i()}if(!n.buildSerializer){let i=Crt();n.buildSerializer=i()}let r={bucket:t&&t.bucket||ixn,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new Wk(void 0,r)}var Wk=class{constructor(t,n){this.opts=n||t?.opts,this.addedSchemas=!1,this.compilersFactory=this.opts.compilersFactory,t?(this.schemaBucket=this.opts.bucket(t.getSchemas()),this.validatorCompiler=t.getValidatorCompiler(),this.serializerCompiler=t.getSerializerCompiler(),this.isCustomValidatorCompiler=t.isCustomValidatorCompiler,this.isCustomSerializerCompiler=t.isCustomSerializerCompiler,this.parent=t):(this.schemaBucket=this.opts.bucket(),this.isCustomValidatorCompiler=this.opts.isCustomValidatorCompiler||!1,this.isCustomSerializerCompiler=this.opts.isCustomSerializerCompiler||!1)}add(t){return this.addedSchemas=!0,this.schemaBucket.add(t)}getSchema(t){return this.schemaBucket.getSchema(t)}getSchemas(){return this.schemaBucket.getSchemas()}setValidatorCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildValidator:()=>t}),this.validatorCompiler=t,this.isCustomValidatorCompiler=!0}setSerializerCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildSerializer:()=>t}),this.serializerCompiler=t,this.isCustomSerializerCompiler=!0}getValidatorCompiler(){return this.validatorCompiler||this.parent&&this.parent.getValidatorCompiler()}getSerializerCompiler(){return this.serializerCompiler||this.parent&&this.parent.getSerializerCompiler()}getSerializerBuilder(){return this.compilersFactory.buildSerializer||this.parent&&this.parent.getSerializerBuilder()}getValidatorBuilder(){return this.compilersFactory.buildValidator||this.parent&&this.parent.getValidatorBuilder()}setupValidator(t){this.validatorCompiler!==void 0&&!this.addedSchemas||(this.validatorCompiler=this.getValidatorBuilder()(this.schemaBucket.getSchemas(),t.ajv))}setupSerializer(t){this.serializerCompiler!==void 0&&!this.addedSchemas||(this.serializerCompiler=this.getSerializerBuilder()(this.schemaBucket.getSchemas(),t.serializerOpts))}};Wk.buildSchemaController=sxn;Mrt.exports=Wk});var DM=w((A4r,Drt)=>{"use strict";var oxn="2.0.0",axn=Number.MAX_SAFE_INTEGER||9007199254740991,cxn=16,uxn=250,lxn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Drt.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:cxn,MAX_SAFE_BUILD_LENGTH:uxn,MAX_SAFE_INTEGER:axn,RELEASE_TYPES:lxn,SEMVER_SPEC_VERSION:oxn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var LM=w((R4r,Lrt)=>{"use strict";var dxn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};Lrt.exports=dxn});var Kk=w((Eh,Urt)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:lle,MAX_SAFE_BUILD_LENGTH:fxn,MAX_LENGTH:pxn}=DM(),hxn=LM();Eh=Urt.exports={};var mxn=Eh.re=[],gxn=Eh.safeRe=[],et=Eh.src=[],yxn=Eh.safeSrc=[],tt=Eh.t={},Sxn=0,dle="[a-zA-Z0-9-]",_xn=[["\\s",1],["\\d",pxn],[dle,fxn]],Exn=e=>{for(let[t,n]of _xn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},rn=(e,t,n)=>{let r=Exn(t),i=Sxn++;hxn(e,i,t),tt[e]=i,et[i]=t,yxn[i]=r,mxn[i]=new RegExp(t,n?"g":void 0),gxn[i]=new RegExp(r,n?"g":void 0)};rn("NUMERICIDENTIFIER","0|[1-9]\\d*");rn("NUMERICIDENTIFIERLOOSE","\\d+");rn("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${dle}*`);rn("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);rn("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);rn("PRERELEASEIDENTIFIER",`(?:${et[tt.NONNUMERICIDENTIFIER]}|${et[tt.NUMERICIDENTIFIER]})`);rn("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NONNUMERICIDENTIFIER]}|${et[tt.NUMERICIDENTIFIERLOOSE]})`);rn("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);rn("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);rn("BUILDIDENTIFIER",`${dle}+`);rn("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);rn("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);rn("FULL",`^${et[tt.FULLPLAIN]}$`);rn("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);rn("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);rn("GTLT","((?:<|>)?=?)");rn("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);rn("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);rn("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);rn("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);rn("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);rn("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);rn("COERCEPLAIN",`(^|[^\\d])(\\d{1,${lle}})(?:\\.(\\d{1,${lle}}))?(?:\\.(\\d{1,${lle}}))?`);rn("COERCE",`${et[tt.COERCEPLAIN]}(?:$|[^\\d])`);rn("COERCEFULL",et[tt.COERCEPLAIN]+`(?:${et[tt.PRERELEASE]})?(?:${et[tt.BUILD]})?(?:$|[^\\d])`);rn("COERCERTL",et[tt.COERCE],!0);rn("COERCERTLFULL",et[tt.COERCEFULL],!0);rn("LONETILDE","(?:~>?)");rn("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);Eh.tildeTrimReplace="$1~";rn("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);rn("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);rn("LONECARET","(?:\\^)");rn("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);Eh.caretTrimReplace="$1^";rn("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);rn("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);rn("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);rn("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);rn("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);Eh.comparatorTrimReplace="$1$2$3";rn("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);rn("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);rn("STAR","(<|>)?=?\\s*\\*");rn("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");rn("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var f4=w((w4r,jrt)=>{"use strict";var bxn=Object.freeze({loose:!0}),Txn=Object.freeze({}),vxn=e=>e?typeof e!="object"?bxn:e:Txn;jrt.exports=vxn});var fle=w((k4r,qrt)=>{"use strict";var Frt=/^[0-9]+$/,Hrt=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:eHrt(t,e);qrt.exports={compareIdentifiers:Hrt,rcompareIdentifiers:Axn}});var nc=w((I4r,Grt)=>{"use strict";var p4=LM(),{MAX_LENGTH:Brt,MAX_SAFE_INTEGER:h4}=DM(),{safeRe:m4,t:g4}=Kk(),Rxn=f4(),{compareIdentifiers:ple}=fle(),hle=class e{constructor(t,n){if(n=Rxn(n),t instanceof e){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Brt)throw new TypeError(`version is longer than ${Brt} characters`);p4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?m4[g4.LOOSE]:m4[g4.FULL]);if(!r)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>h4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>h4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>h4||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&st.major?1:this.minort.minor?1:this.patcht.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let n=0;do{let r=this.prerelease[n],i=t.prerelease[n];if(p4("prerelease compare",n,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return ple(r,i)}while(++n)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let n=0;do{let r=this.build[n],i=t.build[n];if(p4("build compare",n,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return ple(r,i)}while(++n)}inc(t,n,r){if(t.startsWith("pre")){if(!n&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(n){let i=`-${n}`.match(this.options.loose?m4[g4.PRERELEASELOOSE]:m4[g4.PRERELEASE]);if(!i||i[1]!==n)throw new Error(`invalid identifier: ${n}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,r),this.inc("pre",n,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,r),this.inc("pre",n,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(n===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(n){let s=[n,i];r===!1&&(s=[n]),ple(this.prerelease[0],n)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Grt.exports=hle});var lT=w((x4r,Vrt)=>{"use strict";var zrt=nc(),wxn=(e,t,n=!1)=>{if(e instanceof zrt)return e;try{return new zrt(e,t)}catch(r){if(!n)return null;throw r}};Vrt.exports=wxn});var Krt=w((O4r,Wrt)=>{"use strict";var kxn=lT(),Ixn=(e,t)=>{let n=kxn(e,t);return n?n.version:null};Wrt.exports=Ixn});var Yrt=w((N4r,Zrt)=>{"use strict";var xxn=lT(),Oxn=(e,t)=>{let n=xxn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};Zrt.exports=Oxn});var Qrt=w((P4r,Xrt)=>{"use strict";var Jrt=nc(),Nxn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new Jrt(e instanceof Jrt?e.version:e,n).inc(t,r,i).version}catch{return null}};Xrt.exports=Nxn});var tit=w((C4r,eit)=>{"use strict";var $rt=lT(),Pxn=(e,t)=>{let n=$rt(e,null,!0),r=$rt(t,null,!0),i=n.compare(r);if(i===0)return null;let s=i>0,o=s?n:r,a=s?r:n,c=!!o.prerelease.length;if(!!a.prerelease.length&&!c){if(!a.patch&&!a.minor)return"major";if(a.compareMain(o)===0)return a.minor&&!a.patch?"minor":"patch"}let l=c?"pre":"";return n.major!==r.major?l+"major":n.minor!==r.minor?l+"minor":n.patch!==r.patch?l+"patch":"prerelease"};eit.exports=Pxn});var rit=w((M4r,nit)=>{"use strict";var Cxn=nc(),Mxn=(e,t)=>new Cxn(e,t).major;nit.exports=Mxn});var sit=w((D4r,iit)=>{"use strict";var Dxn=nc(),Lxn=(e,t)=>new Dxn(e,t).minor;iit.exports=Lxn});var ait=w((L4r,oit)=>{"use strict";var Uxn=nc(),jxn=(e,t)=>new Uxn(e,t).patch;oit.exports=jxn});var uit=w((U4r,cit)=>{"use strict";var Fxn=lT(),Hxn=(e,t)=>{let n=Fxn(e,t);return n&&n.prerelease.length?n.prerelease:null};cit.exports=Hxn});var Td=w((j4r,dit)=>{"use strict";var lit=nc(),qxn=(e,t,n)=>new lit(e,n).compare(new lit(t,n));dit.exports=qxn});var pit=w((F4r,fit)=>{"use strict";var Bxn=Td(),Gxn=(e,t,n)=>Bxn(t,e,n);fit.exports=Gxn});var mit=w((H4r,hit)=>{"use strict";var zxn=Td(),Vxn=(e,t)=>zxn(e,t,!0);hit.exports=Vxn});var y4=w((q4r,yit)=>{"use strict";var git=nc(),Wxn=(e,t,n)=>{let r=new git(e,n),i=new git(t,n);return r.compare(i)||r.compareBuild(i)};yit.exports=Wxn});var _it=w((B4r,Sit)=>{"use strict";var Kxn=y4(),Zxn=(e,t)=>e.sort((n,r)=>Kxn(n,r,t));Sit.exports=Zxn});var bit=w((G4r,Eit)=>{"use strict";var Yxn=y4(),Jxn=(e,t)=>e.sort((n,r)=>Yxn(r,n,t));Eit.exports=Jxn});var UM=w((z4r,Tit)=>{"use strict";var Xxn=Td(),Qxn=(e,t,n)=>Xxn(e,t,n)>0;Tit.exports=Qxn});var S4=w((V4r,vit)=>{"use strict";var $xn=Td(),eOn=(e,t,n)=>$xn(e,t,n)<0;vit.exports=eOn});var mle=w((W4r,Ait)=>{"use strict";var tOn=Td(),nOn=(e,t,n)=>tOn(e,t,n)===0;Ait.exports=nOn});var gle=w((K4r,Rit)=>{"use strict";var rOn=Td(),iOn=(e,t,n)=>rOn(e,t,n)!==0;Rit.exports=iOn});var _4=w((Z4r,wit)=>{"use strict";var sOn=Td(),oOn=(e,t,n)=>sOn(e,t,n)>=0;wit.exports=oOn});var E4=w((Y4r,kit)=>{"use strict";var aOn=Td(),cOn=(e,t,n)=>aOn(e,t,n)<=0;kit.exports=cOn});var yle=w((J4r,Iit)=>{"use strict";var uOn=mle(),lOn=gle(),dOn=UM(),fOn=_4(),pOn=S4(),hOn=E4(),mOn=(e,t,n,r)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e===n;case"!==":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e!==n;case"":case"=":case"==":return uOn(e,n,r);case"!=":return lOn(e,n,r);case">":return dOn(e,n,r);case">=":return fOn(e,n,r);case"<":return pOn(e,n,r);case"<=":return hOn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};Iit.exports=mOn});var Oit=w((X4r,xit)=>{"use strict";var gOn=nc(),yOn=lT(),{safeRe:b4,t:T4}=Kk(),SOn=(e,t)=>{if(e instanceof gOn)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let n=null;if(!t.rtl)n=e.match(t.includePrerelease?b4[T4.COERCEFULL]:b4[T4.COERCE]);else{let c=t.includePrerelease?b4[T4.COERCERTLFULL]:b4[T4.COERCERTL],u;for(;(u=c.exec(e))&&(!n||n.index+n[0].length!==e.length);)(!n||u.index+u[0].length!==n.index+n[0].length)&&(n=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(n===null)return null;let r=n[2],i=n[3]||"0",s=n[4]||"0",o=t.includePrerelease&&n[5]?`-${n[5]}`:"",a=t.includePrerelease&&n[6]?`+${n[6]}`:"";return yOn(`${r}.${i}.${s}${o}${a}`,t)};xit.exports=SOn});var Pit=w((Q4r,Nit)=>{"use strict";var Sle=class{constructor(){this.max=1e3,this.map=new Map}get(t){let n=this.map.get(t);if(n!==void 0)return this.map.delete(t),this.map.set(t,n),n}delete(t){return this.map.delete(t)}set(t,n){if(!this.delete(t)&&n!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,n)}return this}};Nit.exports=Sle});var vd=w(($4r,Lit)=>{"use strict";var _On=/\s+/g,_le=class e{constructor(t,n){if(n=bOn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Ele)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease,this.raw=t.trim().replace(_On," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(i=>!Mit(i[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&IOn(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let n=this.set[t];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=n[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let r=((this.options.includePrerelease&&wOn)|(this.options.loose&&kOn))+":"+t,i=Cit.get(r);if(i)return i;let s=this.options.loose,o=s?Gc[rc.HYPHENRANGELOOSE]:Gc[rc.HYPHENRANGE];t=t.replace(o,jOn(this.options.includePrerelease)),yi("hyphen replace",t),t=t.replace(Gc[rc.COMPARATORTRIM],vOn),yi("comparator trim",t),t=t.replace(Gc[rc.TILDETRIM],AOn),yi("tilde trim",t),t=t.replace(Gc[rc.CARETTRIM],ROn),yi("caret trim",t);let a=t.split(" ").map(d=>xOn(d,this.options)).join(" ").split(/\s+/).map(d=>UOn(d,this.options));s&&(a=a.filter(d=>(yi("loose invalid filter",d,this.options),!!d.match(Gc[rc.COMPARATORLOOSE])))),yi("range list",a);let c=new Map,u=a.map(d=>new Ele(d,this.options));for(let d of u){if(Mit(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return Cit.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>Dit(r,n)&&t.set.some(i=>Dit(i,n)&&r.every(s=>i.every(o=>s.intersects(o,n)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new TOn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",IOn=e=>e.value==="",Dit=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(s=>i.intersects(s,t)),i=r.pop();return n},xOn=(e,t)=>(e=e.replace(Gc[rc.BUILD],""),yi("comp",e,t),e=POn(e,t),yi("caret",e),e=OOn(e,t),yi("tildes",e),e=MOn(e,t),yi("xrange",e),e=LOn(e,t),yi("stars",e),e),zc=e=>!e||e.toLowerCase()==="x"||e==="*",OOn=(e,t)=>e.trim().split(/\s+/).map(n=>NOn(n,t)).join(" "),NOn=(e,t)=>{let n=t.loose?Gc[rc.TILDELOOSE]:Gc[rc.TILDE];return e.replace(n,(r,i,s,o,a)=>{yi("tilde",e,r,i,s,o,a);let c;return zc(i)?c="":zc(s)?c=`>=${i}.0.0 <${+i+1}.0.0-0`:zc(o)?c=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:a?(yi("replaceTilde pr",a),c=`>=${i}.${s}.${o}-${a} <${i}.${+s+1}.0-0`):c=`>=${i}.${s}.${o} <${i}.${+s+1}.0-0`,yi("tilde return",c),c})},POn=(e,t)=>e.trim().split(/\s+/).map(n=>COn(n,t)).join(" "),COn=(e,t)=>{yi("caret",e,t);let n=t.loose?Gc[rc.CARETLOOSE]:Gc[rc.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{yi("caret",e,i,s,o,a,c);let u;return zc(s)?u="":zc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:zc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?(yi("replaceCaret pr",c),s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`):(yi("no pr"),s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),yi("caret return",u),u})},MOn=(e,t)=>(yi("replaceXRanges",e,t),e.split(/\s+/).map(n=>DOn(n,t)).join(" ")),DOn=(e,t)=>{e=e.trim();let n=t.loose?Gc[rc.XRANGELOOSE]:Gc[rc.XRANGE];return e.replace(n,(r,i,s,o,a,c)=>{yi("xRange",e,r,i,s,o,a,c);let u=zc(s),l=u||zc(o),d=l||zc(a),f=d;return i==="="&&f&&(i=""),c=t.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),yi("xRange return",r),r})},LOn=(e,t)=>(yi("replaceStars",e,t),e.trim().replace(Gc[rc.STAR],"")),UOn=(e,t)=>(yi("replaceGTE0",e,t),e.trim().replace(Gc[t.includePrerelease?rc.GTE0PRE:rc.GTE0],"")),jOn=e=>(t,n,r,i,s,o,a,c,u,l,d,f)=>(zc(r)?n="":zc(i)?n=`>=${r}.0.0${e?"-0":""}`:zc(s)?n=`>=${r}.${i}.0${e?"-0":""}`:o?n=`>=${n}`:n=`>=${n}${e?"-0":""}`,zc(u)?c="":zc(l)?c=`<${+u+1}.0.0-0`:zc(d)?c=`<${u}.${+l+1}.0-0`:f?c=`<=${u}.${l}.${d}-${f}`:e?c=`<${u}.${l}.${+d+1}-0`:c=`<=${c}`,`${n} ${c}`.trim()),FOn=(e,t,n)=>{for(let r=0;r0){let i=e[r].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var jM=w((eKr,Bit)=>{"use strict";var FM=Symbol("SemVer ANY"),vle=class e{static get ANY(){return FM}constructor(t,n){if(n=Uit(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Tle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===FM?this.value="":this.value=this.operator+this.semver.version,Tle("comp",this)}parse(t){let n=this.options.loose?jit[Fit.COMPARATORLOOSE]:jit[Fit.COMPARATOR],r=t.match(n);if(!r)throw new TypeError(`Invalid comparator: ${t}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new Hit(r[2],this.options.loose):this.semver=FM}toString(){return this.value}test(t){if(Tle("Comparator.test",t,this.options.loose),this.semver===FM||t===FM)return!0;if(typeof t=="string")try{t=new Hit(t,this.options)}catch{return!1}return ble(t,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new qit(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new qit(this.value,n).test(t.semver):(n=Uit(n),n.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!n.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||ble(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||ble(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Bit.exports=vle;var Uit=f4(),{safeRe:jit,t:Fit}=Kk(),ble=yle(),Tle=LM(),Hit=nc(),qit=vd()});var HM=w((tKr,Git)=>{"use strict";var HOn=vd(),qOn=(e,t,n)=>{try{t=new HOn(t,n)}catch{return!1}return t.test(e)};Git.exports=qOn});var Vit=w((nKr,zit)=>{"use strict";var BOn=vd(),GOn=(e,t)=>new BOn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));zit.exports=GOn});var Kit=w((rKr,Wit)=>{"use strict";var zOn=nc(),VOn=vd(),WOn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new VOn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new zOn(r,n))}),r};Wit.exports=WOn});var Yit=w((iKr,Zit)=>{"use strict";var KOn=nc(),ZOn=vd(),YOn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new ZOn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new KOn(r,n))}),r};Zit.exports=YOn});var Qit=w((sKr,Xit)=>{"use strict";var Ale=nc(),JOn=vd(),Jit=UM(),XOn=(e,t)=>{e=new JOn(e,t);let n=new Ale("0.0.0");if(e.test(n)||(n=new Ale("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new Ale(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Jit(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||Jit(n,s))&&(n=s)}return n&&e.test(n)?n:null};Xit.exports=XOn});var est=w((oKr,$it)=>{"use strict";var QOn=vd(),$On=(e,t)=>{try{return new QOn(e,t).range||"*"}catch{return null}};$it.exports=$On});var v4=w((aKr,ist)=>{"use strict";var eNn=nc(),rst=jM(),{ANY:tNn}=rst,nNn=vd(),rNn=HM(),tst=UM(),nst=S4(),iNn=E4(),sNn=_4(),oNn=(e,t,n,r)=>{e=new eNn(e,r),t=new nNn(t,r);let i,s,o,a,c;switch(n){case">":i=tst,s=iNn,o=nst,a=">",c=">=";break;case"<":i=nst,s=sNn,o=tst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(rNn(e,t,r))return!1;for(let u=0;u{p.semver===tNn&&(p=new rst(">=0.0.0")),d=d||p,f=f||p,i(p.semver,d.semver,r)?d=p:o(p.semver,f.semver,r)&&(f=p)}),d.operator===a||d.operator===c||(!f.operator||f.operator===a)&&s(e,f.semver))return!1;if(f.operator===c&&o(e,f.semver))return!1}return!0};ist.exports=oNn});var ost=w((cKr,sst)=>{"use strict";var aNn=v4(),cNn=(e,t,n)=>aNn(e,t,">",n);sst.exports=cNn});var cst=w((uKr,ast)=>{"use strict";var uNn=v4(),lNn=(e,t,n)=>uNn(e,t,"<",n);ast.exports=lNn});var dst=w((lKr,lst)=>{"use strict";var ust=vd(),dNn=(e,t,n)=>(e=new ust(e,n),t=new ust(t,n),e.intersects(t,n));lst.exports=dNn});var pst=w((dKr,fst)=>{"use strict";var fNn=HM(),pNn=Td();fst.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>pNn(l,d,n));for(let l of o)fNn(l,t,n)?(s=l,i||(i=l)):(s&&r.push([i,s]),s=null,i=null);i&&r.push([i,null]);let a=[];for(let[l,d]of r)l===d?a.push(l):!d&&l===o[0]?a.push("*"):d?l===o[0]?a.push(`<=${d}`):a.push(`${l} - ${d}`):a.push(`>=${l}`);let c=a.join(" || "),u=typeof t.raw=="string"?t.raw:String(t);return c.length{"use strict";var hst=vd(),wle=jM(),{ANY:Rle}=wle,qM=HM(),kle=Td(),hNn=(e,t,n={})=>{if(e===t)return!0;e=new hst(e,n),t=new hst(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=gNn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},mNn=[new wle(">=0.0.0-0")],mst=[new wle(">=0.0.0")],gNn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Rle){if(t.length===1&&t[0].semver===Rle)return!0;n.includePrerelease?e=mNn:e=mst}if(t.length===1&&t[0].semver===Rle){if(n.includePrerelease)return!0;t=mst}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=gst(i,p,n):p.operator==="<"||p.operator==="<="?s=yst(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=kle(i.semver,s.semver,n),o>0)return null;if(o===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let p of r){if(i&&!qM(p,String(i),n)||s&&!qM(p,String(s),n))return null;for(let h of t)if(!qM(p,String(h),n))return!1;return!0}let a,c,u,l,d=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=i&&!n.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&s.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let p of t){if(l=l||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",i){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(a=gst(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!qM(i.semver,String(p),n))return!1}if(s){if(d&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===d.major&&p.semver.minor===d.minor&&p.semver.patch===d.patch&&(d=!1),p.operator==="<"||p.operator==="<="){if(c=yst(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!qM(s.semver,String(p),n))return!1}if(!p.operator&&(s||i)&&o!==0)return!1}return!(i&&u&&!s&&o!==0||s&&l&&!i&&o!==0||f||d)},gst=(e,t,n)=>{if(!e)return t;let r=kle(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},yst=(e,t,n)=>{if(!e)return t;let r=kle(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};Sst.exports=hNn});var vst=w((pKr,Tst)=>{"use strict";var Ile=Kk(),Est=DM(),yNn=nc(),bst=fle(),SNn=lT(),_Nn=Krt(),ENn=Yrt(),bNn=Qrt(),TNn=tit(),vNn=rit(),ANn=sit(),RNn=ait(),wNn=uit(),kNn=Td(),INn=pit(),xNn=mit(),ONn=y4(),NNn=_it(),PNn=bit(),CNn=UM(),MNn=S4(),DNn=mle(),LNn=gle(),UNn=_4(),jNn=E4(),FNn=yle(),HNn=Oit(),qNn=jM(),BNn=vd(),GNn=HM(),zNn=Vit(),VNn=Kit(),WNn=Yit(),KNn=Qit(),ZNn=est(),YNn=v4(),JNn=ost(),XNn=cst(),QNn=dst(),$Nn=pst(),ePn=_st();Tst.exports={parse:SNn,valid:_Nn,clean:ENn,inc:bNn,diff:TNn,major:vNn,minor:ANn,patch:RNn,prerelease:wNn,compare:kNn,rcompare:INn,compareLoose:xNn,compareBuild:ONn,sort:NNn,rsort:PNn,gt:CNn,lt:MNn,eq:DNn,neq:LNn,gte:UNn,lte:jNn,cmp:FNn,coerce:HNn,Comparator:qNn,Range:BNn,satisfies:GNn,toComparators:zNn,maxSatisfying:VNn,minSatisfying:WNn,minVersion:KNn,validRange:ZNn,outside:YNn,gtr:JNn,ltr:XNn,intersects:QNn,simplifyRange:$Nn,subset:ePn,SemVer:yNn,re:Ile.re,src:Ile.src,tokens:Ile.t,SEMVER_SPEC_VERSION:Est.SEMVER_SPEC_VERSION,RELEASE_TYPES:Est.RELEASE_TYPES,compareIdentifiers:bst.compareIdentifiers,rcompareIdentifiers:bst.rcompareIdentifiers}});var Mle=w((hKr,Cle)=>{"use strict";var xle=vst(),Nle=Y("node:assert"),Ple=Symbol.for("registered-plugin"),{kTestInternals:tPn}=Ys(),{exist:nPn,existReply:rPn,existRequest:iPn}=gM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:sPn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:oPn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:aPn}=Vo(),cPn=/-(?:rc|pre|alpha).+$/u;function BM(e){return e[Symbol.for("plugin-meta")]}function Ast(e){let t=Rst(e);if(t)return t;let n=Y.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function Rst(e){return e[Symbol.for("fastify.display-name")]}function wst(e){return!!e[Symbol.for("skip-override")]}function kst(e){let t=BM(e);if(!t)return;let n=t.dependencies;n&&(Nle(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{Nle(this[Ple].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function Ist(e){let t=BM(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&Ole(this,"Fastify",n.fastify,r),n.reply&&Ole(this,"Reply",n.reply,r),n.request&&Ole(this,"Request",n.request,r))}var lPn={Fastify:nPn,Request:iPn,Reply:rPn};function Ole(e,t,n,r){Nle(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!lPn[t].call(e,i))throw new oPn(i,s,t)})}function dPn(e){let t=BM(e);if(t?.fastify==null)return;let n=t.fastify,r=cPn.test(this.version);if(!(r===!0&&xle.gt(this.version,xle.coerce(n))===!0)&&n&&xle.satisfies(this.version,n,{includePrerelease:r})===!1)throw new sPn(t.name,n,this.version)}function fPn(e){let t=BM(e);if(!t)return;let n=t.name;if(n)return this[Ple].push(n),n}function pPn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new aPn(t)}function hPn(e){let t=fPn.call(this,e)||Ast(e);return pPn.call(this,e,t),dPn.call(this,e),Ist.call(this,e),kst.call(this,e),wst(e)}Cle.exports={getPluginName:Ast,getFuncPreview:uPn,kRegisteredPlugins:Ple,getDisplayName:Rst,registerPlugin:hPn};Cle.exports[tPn]={shouldSkipOverride:wst,getMeta:BM,checkDecorators:Ist,checkDependencies:kst}});var A4=w((gKr,xst)=>{"use strict";function mPn(e,t){let n=t||yPn();return e?SPn(e,n):n}function gPn(e,t){return e.genReqId(t)}function yPn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function SPn(e,t){return function(n){return n.headers[e]||t(n)}}xst.exports={getGenReqId:gPn,reqIdGenFactory:mPn}});var Cst=w((yKr,Pst)=>{"use strict";var Ost=12,_Pn=0,Dle=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7];function EPn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=Ost;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===_Pn)return null;if(t+=3,t{"use strict";var Mst=Cst(),Dst=/\+/g,Lst=function(){};Lst.prototype=Object.create(null);function TPn(e){let t=new Lst;if(typeof e!="string")return t;let n=e.length,r="",i="",s=-1,o=-1,a=!1,c=!1,u=!1,l=!1,d=!1,f=0;for(let p=0;ps,d||(o=p),r=e.slice(s+1,o),d||r.length>0){u&&(r=r.replace(Dst," ")),a&&(r=Mst(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(Dst," ")),c&&(i=Mst(i)||i));let h=t[r];h===void 0?t[r]=i:h.pop?h.push(i):t[r]=[h,i]}i="",s=p,o=p,a=!1,c=!1,u=!1,l=!1}else f===61?o<=s?o=p:c=!0:f===43?o>s?l=!0:u=!0:f===37&&(o>s?c=!0:a=!0);return t}Ust.exports=TPn});var Hst=w((_Kr,Fst)=>{var bh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),vPn=new Int8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0]);function APn(e){let t=e.length;if(t===0)return"";let n="",r=0,i=0;e:for(;i>6]+bh[128|s&63];continue}if(s<55296||s>=57344){r=i+1,n+=bh[224|s>>12]+bh[128|s>>6&63]+bh[128|s&63];continue}if(++i,i>=t)throw new Error("URI malformed");let o=e.charCodeAt(i)&1023;r=i+1,s=65536+((s&1023)<<10|o),n+=bh[240|s>>18]+bh[128|s>>12&63]+bh[128|s>>6&63]+bh[128|s&63]}return r===0?e:r{"use strict";var{encodeString:Lle}=Hst();function qst(e){let t=typeof e;return t==="string"?Lle(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:Lle(""+e):""}function RPn(e){let t="";if(e===null||typeof e!="object")return t;let n="&",r=Object.keys(e),i=r.length,s=0;for(let o=0;o{"use strict";var zst=jst(),Vst=Gst(),Wst={parse:zst,stringify:Vst};GM.exports=Wst;GM.exports.default=Wst;GM.exports.parse=zst;GM.exports.stringify=Vst});var Yst=w(Zst=>{"use strict";Object.defineProperty(Zst,"__esModule",{value:!0})});var Jst=w(zM=>{"use strict";Object.defineProperty(zM,"__esModule",{value:!0});zM.types=void 0;var wPn;(function(e){e[e.ROOT=0]="ROOT",e[e.GROUP=1]="GROUP",e[e.POSITION=2]="POSITION",e[e.SET=3]="SET",e[e.RANGE=4]="RANGE",e[e.REPETITION=5]="REPETITION",e[e.REFERENCE=6]="REFERENCE",e[e.CHAR=7]="CHAR"})(wPn=zM.types||(zM.types={}))});var Qst=w(Xst=>{"use strict";Object.defineProperty(Xst,"__esModule",{value:!0})});var sg=w(ig=>{"use strict";var kPn=ig&&ig.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Ule=ig&&ig.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&kPn(t,e,n)};Object.defineProperty(ig,"__esModule",{value:!0});Ule(Yst(),ig);Ule(Jst(),ig);Ule(Qst(),ig)});var R4=w(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.anyChar=ic.notWhitespace=ic.whitespace=ic.notInts=ic.ints=ic.notWords=ic.words=void 0;var pr=sg(),$st=()=>[{type:pr.types.RANGE,from:48,to:57}],eot=()=>[{type:pr.types.CHAR,value:95},{type:pr.types.RANGE,from:97,to:122},{type:pr.types.RANGE,from:65,to:90},{type:pr.types.RANGE,from:48,to:57}],tot=()=>[{type:pr.types.CHAR,value:9},{type:pr.types.CHAR,value:10},{type:pr.types.CHAR,value:11},{type:pr.types.CHAR,value:12},{type:pr.types.CHAR,value:13},{type:pr.types.CHAR,value:32},{type:pr.types.CHAR,value:160},{type:pr.types.CHAR,value:5760},{type:pr.types.RANGE,from:8192,to:8202},{type:pr.types.CHAR,value:8232},{type:pr.types.CHAR,value:8233},{type:pr.types.CHAR,value:8239},{type:pr.types.CHAR,value:8287},{type:pr.types.CHAR,value:12288},{type:pr.types.CHAR,value:65279}],IPn=()=>[{type:pr.types.CHAR,value:10},{type:pr.types.CHAR,value:13},{type:pr.types.CHAR,value:8232},{type:pr.types.CHAR,value:8233}];ic.words=()=>({type:pr.types.SET,set:eot(),not:!1});ic.notWords=()=>({type:pr.types.SET,set:eot(),not:!0});ic.ints=()=>({type:pr.types.SET,set:$st(),not:!1});ic.notInts=()=>({type:pr.types.SET,set:$st(),not:!0});ic.whitespace=()=>({type:pr.types.SET,set:tot(),not:!1});ic.notWhitespace=()=>({type:pr.types.SET,set:tot(),not:!0});ic.anyChar=()=>({type:pr.types.SET,set:IPn(),not:!0})});var rot=w(Ad=>{"use strict";var xPn=Ad&&Ad.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),OPn=Ad&&Ad.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),NPn=Ad&&Ad.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&xPn(t,e,n);return OPn(t,e),t};Object.defineProperty(Ad,"__esModule",{value:!0});Ad.tokenizeClass=Ad.strToChars=void 0;var not=sg(),Zk=NPn(R4()),PPn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";Ad.strToChars=e=>{let t=/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g;return e.replace(t,(n,r,i,s,o,a,c)=>{if(i)return n;let u=r?8:s?parseInt(s,16):o?parseInt(o,16):a?PPn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};Ad.tokenizeClass=(e,t)=>{var n,r,i,s,o,a,c;let u=[],l,d,f=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(l=f.exec(e))!==null;){let p=(c=(a=(o=(s=(i=(r=(n=l[1]&&Zk.words())!==null&&n!==void 0?n:l[2]&&Zk.ints())!==null&&r!==void 0?r:l[3]&&Zk.whitespace())!==null&&i!==void 0?i:l[4]&&Zk.notWords())!==null&&s!==void 0?s:l[5]&&Zk.notInts())!==null&&o!==void 0?o:l[6]&&Zk.notWhitespace())!==null&&a!==void 0?a:l[7]&&{type:not.types.RANGE,from:(l[8]||l[9]).charCodeAt(0),to:(d=l[10]).charCodeAt(d.length-1)})!==null&&c!==void 0?c:(d=l[16])&&{type:not.types.CHAR,value:d.charCodeAt(0)};if(p)u.push(p);else return[u,f.lastIndex]}throw new SyntaxError(`Invalid regular expression: /${t}/: Unterminated character class`)}});var jle=w(Th=>{"use strict";var CPn=Th&&Th.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),MPn=Th&&Th.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),oot=Th&&Th.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&CPn(t,e,n);return MPn(t,e),t};Object.defineProperty(Th,"__esModule",{value:!0});Th.tokenizer=void 0;var iot=oot(rot()),ba=sg(),dT=oot(R4()),DPn=/^[a-zA-Z_$]$/i,LPn=/^[a-zA-Z0-9_$]$/i,sot=/\d/;Th.tokenizer=e=>{let t=0,n,r={type:ba.types.ROOT,stack:[]},i=r,s=r.stack,o=[],a=[],c=0,u=d=>{throw new SyntaxError(`Invalid regular expression: /${e}/: Nothing to repeat at column ${d-1}`)},l=iot.strToChars(e);for(;t")throw new SyntaxError(`Invalid regular expression: /${e}/: Unclosed capture group name, expected '>', found '${l[t]}' at column ${t+1}`);d.name=f,t++}else if(n===":")d.remember=!1;else throw new SyntaxError(`Invalid regular expression: /${e}/: Invalid group, character '${n}' after '?' at column ${t-1}`);else c+=1;s.push(d),o.push(i),i=d,s=d.stack;break}case")":if(o.length===0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unmatched ) at column ${t-1}`);i=o.pop(),s=i.options?i.options[i.options.length-1]:i.stack;break;case"|":{i.options||(i.options=[i.stack],delete i.stack);let d=[];i.options.push(d),s=d;break}case"{":{let d=/^(\d+)(,(\d+)?)?\}/.exec(l.slice(t)),f,p;d!==null?(s.length===0&&u(t),f=parseInt(d[1],10),p=d[2]?d[3]?parseInt(d[3],10):1/0:f,t+=d[0].length,s.push({type:ba.types.REPETITION,min:f,max:p,value:s.pop()})):s.push({type:ba.types.CHAR,value:123});break}case"?":s.length===0&&u(t),s.push({type:ba.types.REPETITION,min:0,max:1,value:s.pop()});break;case"+":s.length===0&&u(t),s.push({type:ba.types.REPETITION,min:1,max:1/0,value:s.pop()});break;case"*":s.length===0&&u(t),s.push({type:ba.types.REPETITION,min:0,max:1/0,value:s.pop()});break;default:s.push({type:ba.types.CHAR,value:n.charCodeAt(0)})}if(o.length!==0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unterminated group`);return UPn(a,c),r};function UPn(e,t){for(let n of e.reverse())if(ti){let s=n.stack.splice(n.index+1);for(let o of r.slice(i))n.stack.push({type:ba.types.CHAR,value:o.charCodeAt(0)});n.stack.push(...s)}}}}});var cot=w(sc=>{"use strict";var jPn=sc&&sc.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),FPn=sc&&sc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),HPn=sc&&sc.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&jPn(t,e,n);return FPn(t,e),t};Object.defineProperty(sc,"__esModule",{value:!0});sc.NOTANYCHAR=sc.WHITESPACE=sc.WORDS=sc.INTS=void 0;var w4=HPn(R4()),aot=sg();function k4(e){let t={},n=0;for(let r of e)r.type===aot.types.CHAR&&(t[r.value]=!0),r.type===aot.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}sc.INTS=k4(w4.ints().set);sc.WORDS=k4(w4.words().set);sc.WHITESPACE=k4(w4.whitespace().set);sc.NOTANYCHAR=k4(w4.anyChar().set)});var lot=w(Rd=>{"use strict";var qPn=Rd&&Rd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),BPn=Rd&&Rd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),GPn=Rd&&Rd.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&qPn(t,e,n);return BPn(t,e),t};Object.defineProperty(Rd,"__esModule",{value:!0});Rd.writeSetTokens=Rd.setChar=void 0;var N4=sg(),I4=GPn(cot());function O4(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Rd.setChar=O4;function x4(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===N4.types.SET)return!1;let s=i.type===N4.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function uot(e,t=!1){if(x4(e.set,I4.INTS))return e.not?"\\D":"\\d";if(x4(e.set,I4.WORDS))return e.not?"\\W":"\\w";if(e.not&&x4(e.set,I4.NOTANYCHAR))return".";if(x4(e.set,I4.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(Yk,"__esModule",{value:!0});Yk.reconstruct=void 0;var $S=sg(),Fle=lot(),dot=e=>e.map(Yk.reconstruct).join(""),fot=e=>{if("options"in e)return e.options.map(dot).join("|");if("stack"in e)return dot(e.stack);throw new Error("options or stack must be Root or Group token")};Yk.reconstruct=e=>{switch(e.type){case $S.types.ROOT:return fot(e);case $S.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case $S.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case $S.types.REFERENCE:return`\\${e.value}`;case $S.types.SET:return Fle.writeSetTokens(e);case $S.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${fot(e)})`;case $S.types.REPETITION:{let{min:t,max:n}=e,r;return t===0&&n===1?r="?":t===1&&n===1/0?r="+":t===0&&n===1/0?r="*":n===1/0?r=`{${t},}`:t===n?r=`{${t}}`:r=`{${t},${n}}`,`${Yk.reconstruct(e.value)}${r}`}case $S.types.RANGE:return`${Fle.setChar(e.from)}-${Fle.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var Ble=w((wd,P4)=>{"use strict";var VPn=wd&&wd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),qle=wd&&wd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&VPn(t,e,n)};Object.defineProperty(wd,"__esModule",{value:!0});wd.types=void 0;var pot=sg();Object.defineProperty(wd,"types",{enumerable:!0,get:function(){return pot.types}});qle(jle(),wd);qle(Hle(),wd);var hot=jle(),WPn=Hle();qle(sg(),wd);wd.default=hot.tokenizer;P4.exports=hot.tokenizer;P4.exports.types=pot.types;P4.exports.reconstruct=WPn.reconstruct});var mot=w((PKr,C4)=>{"use strict";var KPn=Ble(),{types:ZPn}=Ble();function Gle(e,t,n){let r,i,s;if(e.type===ZPn.REPETITION&&(n++,t.reps++,n>1||t.reps>t.limit))return!1;let o=e.options||e.value?.options;if(o){for(r=0,s=o.length;r{"use strict";got.exports={name:"__fmw_internal_strategy_merged_tree_http_method__",storage:function(){let e=new Map;return{get:t=>e.get(t)||null,set:(t,n)=>{e.set(t,n)}}},deriveConstraint:e=>e.method,mustMatchWhenDerived:!0}});var vot=w((MKr,Tot)=>{"use strict";var yot=lC(),Sot=M4(),_ot=Symbol("treeData");function Eot(e,t=""){let n="",r=Object.keys(e);for(let i=0;i{"use strict";var eOn=oit();function ait(){return function(t,n){let r=Object.assign({},n,{schema:t});return tOn.bind(null,r)}}function tOn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),eOn(t,e)}function cit(e={readMode:!0}){if(e.readMode===!0&&typeof e.restoreFunction!="function")throw new Error("You must provide a function for the restoreFunction-option when readMode ON");if(e.readMode!==!0&&typeof e.storeFunction!="function")throw new Error("You must provide a function for the storeFunction-option when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=ait();return function(r,i={}){i.mode="standalone";let s=t(r,i);return function(o){let a=s(o);return e.storeFunction(o,a),new Function(a)}}}R4.exports.SerializerSelector=ait;R4.exports.StandaloneSerializer=cit;R4.exports.default=cit});var lit=w((m9r,BM)=>{"use strict";var{SerializerSelector:wle,StandaloneSerializer:nOn}=uit();BM.exports=wle;BM.exports.default=wle;BM.exports.SerializerSelector=wle;BM.exports.StandaloneSerializer=nOn});var kle=w((g9r,dit)=>{"use strict";var{buildSchemas:rOn}=_M();function iOn(e,t){if(e)return new Qk(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=ule();n.buildValidator=i()}if(!n.buildSerializer){let i=lit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||rOn,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new Qk(void 0,r)}var Qk=class{constructor(t,n){this.opts=n||t?.opts,this.addedSchemas=!1,this.compilersFactory=this.opts.compilersFactory,t?(this.schemaBucket=this.opts.bucket(t.getSchemas()),this.validatorCompiler=t.getValidatorCompiler(),this.serializerCompiler=t.getSerializerCompiler(),this.isCustomValidatorCompiler=t.isCustomValidatorCompiler,this.isCustomSerializerCompiler=t.isCustomSerializerCompiler,this.parent=t):(this.schemaBucket=this.opts.bucket(),this.isCustomValidatorCompiler=this.opts.isCustomValidatorCompiler||!1,this.isCustomSerializerCompiler=this.opts.isCustomSerializerCompiler||!1)}add(t){return this.addedSchemas=!0,this.schemaBucket.add(t)}getSchema(t){return this.schemaBucket.getSchema(t)}getSchemas(){return this.schemaBucket.getSchemas()}setValidatorCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildValidator:()=>t}),this.validatorCompiler=t,this.isCustomValidatorCompiler=!0}setSerializerCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildSerializer:()=>t}),this.serializerCompiler=t,this.isCustomSerializerCompiler=!0}getValidatorCompiler(){return this.validatorCompiler||this.parent&&this.parent.getValidatorCompiler()}getSerializerCompiler(){return this.serializerCompiler||this.parent&&this.parent.getSerializerCompiler()}getSerializerBuilder(){return this.compilersFactory.buildSerializer||this.parent&&this.parent.getSerializerBuilder()}getValidatorBuilder(){return this.compilersFactory.buildValidator||this.parent&&this.parent.getValidatorBuilder()}setupValidator(t){this.validatorCompiler!==void 0&&!this.addedSchemas||(this.validatorCompiler=this.getValidatorBuilder()(this.schemaBucket.getSchemas(),t.ajv))}setupSerializer(t){this.serializerCompiler!==void 0&&!this.addedSchemas||(this.serializerCompiler=this.getSerializerBuilder()(this.schemaBucket.getSchemas(),t.serializerOpts))}};Qk.buildSchemaController=iOn;dit.exports=Qk});var GM=w((y9r,fit)=>{"use strict";var sOn="2.0.0",oOn=Number.MAX_SAFE_INTEGER||9007199254740991,aOn=16,cOn=250,uOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];fit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:aOn,MAX_SAFE_BUILD_LENGTH:cOn,MAX_SAFE_INTEGER:oOn,RELEASE_TYPES:uOn,SEMVER_SPEC_VERSION:sOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var zM=w((S9r,pit)=>{"use strict";var lOn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};pit.exports=lOn});var $k=w((Rh,hit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Ile,MAX_SAFE_BUILD_LENGTH:dOn,MAX_LENGTH:fOn}=GM(),pOn=zM();Rh=hit.exports={};var hOn=Rh.re=[],mOn=Rh.safeRe=[],et=Rh.src=[],gOn=Rh.safeSrc=[],tt=Rh.t={},yOn=0,xle="[a-zA-Z0-9-]",SOn=[["\\s",1],["\\d",fOn],[xle,dOn]],EOn=e=>{for(let[t,n]of SOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=EOn(t),i=yOn++;pOn(e,i,t),tt[e]=i,et[i]=t,gOn[i]=r,hOn[i]=new RegExp(t,n?"g":void 0),mOn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${xle}*`);on("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);on("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);on("PRERELEASEIDENTIFIER",`(?:${et[tt.NONNUMERICIDENTIFIER]}|${et[tt.NUMERICIDENTIFIER]})`);on("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NONNUMERICIDENTIFIER]}|${et[tt.NUMERICIDENTIFIERLOOSE]})`);on("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);on("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);on("BUILDIDENTIFIER",`${xle}+`);on("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);on("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);on("FULL",`^${et[tt.FULLPLAIN]}$`);on("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);on("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);on("GTLT","((?:<|>)?=?)");on("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);on("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);on("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);on("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);on("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);on("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);on("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Ile}})(?:\\.(\\d{1,${Ile}}))?(?:\\.(\\d{1,${Ile}}))?`);on("COERCE",`${et[tt.COERCEPLAIN]}(?:$|[^\\d])`);on("COERCEFULL",et[tt.COERCEPLAIN]+`(?:${et[tt.PRERELEASE]})?(?:${et[tt.BUILD]})?(?:$|[^\\d])`);on("COERCERTL",et[tt.COERCE],!0);on("COERCERTLFULL",et[tt.COERCEFULL],!0);on("LONETILDE","(?:~>?)");on("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);Rh.tildeTrimReplace="$1~";on("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);on("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);on("LONECARET","(?:\\^)");on("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);Rh.caretTrimReplace="$1^";on("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);on("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);on("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);on("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);on("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);Rh.comparatorTrimReplace="$1$2$3";on("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);on("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);on("STAR","(<|>)?=?\\s*\\*");on("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");on("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var w4=w((E9r,mit)=>{"use strict";var _On=Object.freeze({loose:!0}),bOn=Object.freeze({}),TOn=e=>e?typeof e!="object"?_On:e:bOn;mit.exports=TOn});var Ole=w((_9r,Sit)=>{"use strict";var git=/^[0-9]+$/,yit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:eyit(t,e);Sit.exports={compareIdentifiers:yit,rcompareIdentifiers:vOn}});var cc=w((b9r,_it)=>{"use strict";var k4=zM(),{MAX_LENGTH:Eit,MAX_SAFE_INTEGER:I4}=GM(),{safeRe:x4,t:O4}=$k(),AOn=w4(),{compareIdentifiers:Ple}=Ole(),Nle=class e{constructor(t,n){if(n=AOn(n),t instanceof e){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Eit)throw new TypeError(`version is longer than ${Eit} characters`);k4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?x4[O4.LOOSE]:x4[O4.FULL]);if(!r)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>I4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>I4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>I4||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&st.major?1:this.minort.minor?1:this.patcht.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let n=0;do{let r=this.prerelease[n],i=t.prerelease[n];if(k4("prerelease compare",n,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return Ple(r,i)}while(++n)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let n=0;do{let r=this.build[n],i=t.build[n];if(k4("build compare",n,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return Ple(r,i)}while(++n)}inc(t,n,r){if(t.startsWith("pre")){if(!n&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(n){let i=`-${n}`.match(this.options.loose?x4[O4.PRERELEASELOOSE]:x4[O4.PRERELEASE]);if(!i||i[1]!==n)throw new Error(`invalid identifier: ${n}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,r),this.inc("pre",n,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,r),this.inc("pre",n,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(n===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(n){let s=[n,i];r===!1&&(s=[n]),Ple(this.prerelease[0],n)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};_it.exports=Nle});var hT=w((T9r,Tit)=>{"use strict";var bit=cc(),ROn=(e,t,n=!1)=>{if(e instanceof bit)return e;try{return new bit(e,t)}catch(r){if(!n)return null;throw r}};Tit.exports=ROn});var Ait=w((v9r,vit)=>{"use strict";var wOn=hT(),kOn=(e,t)=>{let n=wOn(e,t);return n?n.version:null};vit.exports=kOn});var wit=w((A9r,Rit)=>{"use strict";var IOn=hT(),xOn=(e,t)=>{let n=IOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};Rit.exports=xOn});var xit=w((R9r,Iit)=>{"use strict";var kit=cc(),OOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new kit(e instanceof kit?e.version:e,n).inc(t,r,i).version}catch{return null}};Iit.exports=OOn});var Nit=w((w9r,Pit)=>{"use strict";var Oit=hT(),POn=(e,t)=>{let n=Oit(e,null,!0),r=Oit(t,null,!0),i=n.compare(r);if(i===0)return null;let s=i>0,o=s?n:r,a=s?r:n,c=!!o.prerelease.length;if(!!a.prerelease.length&&!c){if(!a.patch&&!a.minor)return"major";if(a.compareMain(o)===0)return a.minor&&!a.patch?"minor":"patch"}let l=c?"pre":"";return n.major!==r.major?l+"major":n.minor!==r.minor?l+"minor":n.patch!==r.patch?l+"patch":"prerelease"};Pit.exports=POn});var Mit=w((k9r,Cit)=>{"use strict";var NOn=cc(),COn=(e,t)=>new NOn(e,t).major;Cit.exports=COn});var Lit=w((I9r,Dit)=>{"use strict";var MOn=cc(),DOn=(e,t)=>new MOn(e,t).minor;Dit.exports=DOn});var Fit=w((x9r,Uit)=>{"use strict";var LOn=cc(),UOn=(e,t)=>new LOn(e,t).patch;Uit.exports=UOn});var Hit=w((O9r,jit)=>{"use strict";var FOn=hT(),jOn=(e,t)=>{let n=FOn(e,t);return n&&n.prerelease.length?n.prerelease:null};jit.exports=jOn});var Rd=w((P9r,Bit)=>{"use strict";var qit=cc(),HOn=(e,t,n)=>new qit(e,n).compare(new qit(t,n));Bit.exports=HOn});var zit=w((N9r,Git)=>{"use strict";var qOn=Rd(),BOn=(e,t,n)=>qOn(t,e,n);Git.exports=BOn});var Wit=w((C9r,Vit)=>{"use strict";var GOn=Rd(),zOn=(e,t)=>GOn(e,t,!0);Vit.exports=zOn});var P4=w((M9r,Yit)=>{"use strict";var Kit=cc(),VOn=(e,t,n)=>{let r=new Kit(e,n),i=new Kit(t,n);return r.compare(i)||r.compareBuild(i)};Yit.exports=VOn});var Jit=w((D9r,Zit)=>{"use strict";var WOn=P4(),KOn=(e,t)=>e.sort((n,r)=>WOn(n,r,t));Zit.exports=KOn});var Qit=w((L9r,Xit)=>{"use strict";var YOn=P4(),ZOn=(e,t)=>e.sort((n,r)=>YOn(r,n,t));Xit.exports=ZOn});var VM=w((U9r,$it)=>{"use strict";var JOn=Rd(),XOn=(e,t,n)=>JOn(e,t,n)>0;$it.exports=XOn});var N4=w((F9r,est)=>{"use strict";var QOn=Rd(),$On=(e,t,n)=>QOn(e,t,n)<0;est.exports=$On});var Cle=w((j9r,tst)=>{"use strict";var ePn=Rd(),tPn=(e,t,n)=>ePn(e,t,n)===0;tst.exports=tPn});var Mle=w((H9r,nst)=>{"use strict";var nPn=Rd(),rPn=(e,t,n)=>nPn(e,t,n)!==0;nst.exports=rPn});var C4=w((q9r,rst)=>{"use strict";var iPn=Rd(),sPn=(e,t,n)=>iPn(e,t,n)>=0;rst.exports=sPn});var M4=w((B9r,ist)=>{"use strict";var oPn=Rd(),aPn=(e,t,n)=>oPn(e,t,n)<=0;ist.exports=aPn});var Dle=w((G9r,sst)=>{"use strict";var cPn=Cle(),uPn=Mle(),lPn=VM(),dPn=C4(),fPn=N4(),pPn=M4(),hPn=(e,t,n,r)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e===n;case"!==":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e!==n;case"":case"=":case"==":return cPn(e,n,r);case"!=":return uPn(e,n,r);case">":return lPn(e,n,r);case">=":return dPn(e,n,r);case"<":return fPn(e,n,r);case"<=":return pPn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};sst.exports=hPn});var ast=w((z9r,ost)=>{"use strict";var mPn=cc(),gPn=hT(),{safeRe:D4,t:L4}=$k(),yPn=(e,t)=>{if(e instanceof mPn)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let n=null;if(!t.rtl)n=e.match(t.includePrerelease?D4[L4.COERCEFULL]:D4[L4.COERCE]);else{let c=t.includePrerelease?D4[L4.COERCERTLFULL]:D4[L4.COERCERTL],u;for(;(u=c.exec(e))&&(!n||n.index+n[0].length!==e.length);)(!n||u.index+u[0].length!==n.index+n[0].length)&&(n=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(n===null)return null;let r=n[2],i=n[3]||"0",s=n[4]||"0",o=t.includePrerelease&&n[5]?`-${n[5]}`:"",a=t.includePrerelease&&n[6]?`+${n[6]}`:"";return gPn(`${r}.${i}.${s}${o}${a}`,t)};ost.exports=yPn});var ust=w((V9r,cst)=>{"use strict";var Lle=class{constructor(){this.max=1e3,this.map=new Map}get(t){let n=this.map.get(t);if(n!==void 0)return this.map.delete(t),this.map.set(t,n),n}delete(t){return this.map.delete(t)}set(t,n){if(!this.delete(t)&&n!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,n)}return this}};cst.exports=Lle});var wd=w((W9r,pst)=>{"use strict";var SPn=/\s+/g,Ule=class e{constructor(t,n){if(n=_Pn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Fle)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease,this.raw=t.trim().replace(SPn," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(i=>!dst(i[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&kPn(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let n=this.set[t];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=n[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let r=((this.options.includePrerelease&&RPn)|(this.options.loose&&wPn))+":"+t,i=lst.get(r);if(i)return i;let s=this.options.loose,o=s?Vc[uc.HYPHENRANGELOOSE]:Vc[uc.HYPHENRANGE];t=t.replace(o,UPn(this.options.includePrerelease)),_i("hyphen replace",t),t=t.replace(Vc[uc.COMPARATORTRIM],TPn),_i("comparator trim",t),t=t.replace(Vc[uc.TILDETRIM],vPn),_i("tilde trim",t),t=t.replace(Vc[uc.CARETTRIM],APn),_i("caret trim",t);let a=t.split(" ").map(d=>IPn(d,this.options)).join(" ").split(/\s+/).map(d=>LPn(d,this.options));s&&(a=a.filter(d=>(_i("loose invalid filter",d,this.options),!!d.match(Vc[uc.COMPARATORLOOSE])))),_i("range list",a);let c=new Map,u=a.map(d=>new Fle(d,this.options));for(let d of u){if(dst(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return lst.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>fst(r,n)&&t.set.some(i=>fst(i,n)&&r.every(s=>i.every(o=>s.intersects(o,n)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new bPn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",kPn=e=>e.value==="",fst=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(s=>i.intersects(s,t)),i=r.pop();return n},IPn=(e,t)=>(e=e.replace(Vc[uc.BUILD],""),_i("comp",e,t),e=PPn(e,t),_i("caret",e),e=xPn(e,t),_i("tildes",e),e=CPn(e,t),_i("xrange",e),e=DPn(e,t),_i("stars",e),e),Wc=e=>!e||e.toLowerCase()==="x"||e==="*",xPn=(e,t)=>e.trim().split(/\s+/).map(n=>OPn(n,t)).join(" "),OPn=(e,t)=>{let n=t.loose?Vc[uc.TILDELOOSE]:Vc[uc.TILDE];return e.replace(n,(r,i,s,o,a)=>{_i("tilde",e,r,i,s,o,a);let c;return Wc(i)?c="":Wc(s)?c=`>=${i}.0.0 <${+i+1}.0.0-0`:Wc(o)?c=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:a?(_i("replaceTilde pr",a),c=`>=${i}.${s}.${o}-${a} <${i}.${+s+1}.0-0`):c=`>=${i}.${s}.${o} <${i}.${+s+1}.0-0`,_i("tilde return",c),c})},PPn=(e,t)=>e.trim().split(/\s+/).map(n=>NPn(n,t)).join(" "),NPn=(e,t)=>{_i("caret",e,t);let n=t.loose?Vc[uc.CARETLOOSE]:Vc[uc.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{_i("caret",e,i,s,o,a,c);let u;return Wc(s)?u="":Wc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Wc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?(_i("replaceCaret pr",c),s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`):(_i("no pr"),s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),_i("caret return",u),u})},CPn=(e,t)=>(_i("replaceXRanges",e,t),e.split(/\s+/).map(n=>MPn(n,t)).join(" ")),MPn=(e,t)=>{e=e.trim();let n=t.loose?Vc[uc.XRANGELOOSE]:Vc[uc.XRANGE];return e.replace(n,(r,i,s,o,a,c)=>{_i("xRange",e,r,i,s,o,a,c);let u=Wc(s),l=u||Wc(o),d=l||Wc(a),f=d;return i==="="&&f&&(i=""),c=t.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),_i("xRange return",r),r})},DPn=(e,t)=>(_i("replaceStars",e,t),e.trim().replace(Vc[uc.STAR],"")),LPn=(e,t)=>(_i("replaceGTE0",e,t),e.trim().replace(Vc[t.includePrerelease?uc.GTE0PRE:uc.GTE0],"")),UPn=e=>(t,n,r,i,s,o,a,c,u,l,d,f)=>(Wc(r)?n="":Wc(i)?n=`>=${r}.0.0${e?"-0":""}`:Wc(s)?n=`>=${r}.${i}.0${e?"-0":""}`:o?n=`>=${n}`:n=`>=${n}${e?"-0":""}`,Wc(u)?c="":Wc(l)?c=`<${+u+1}.0.0-0`:Wc(d)?c=`<${u}.${+l+1}.0-0`:f?c=`<=${u}.${l}.${d}-${f}`:e?c=`<${u}.${l}.${+d+1}-0`:c=`<=${c}`,`${n} ${c}`.trim()),FPn=(e,t,n)=>{for(let r=0;r0){let i=e[r].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var WM=w((K9r,Est)=>{"use strict";var KM=Symbol("SemVer ANY"),qle=class e{static get ANY(){return KM}constructor(t,n){if(n=hst(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Hle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===KM?this.value="":this.value=this.operator+this.semver.version,Hle("comp",this)}parse(t){let n=this.options.loose?mst[gst.COMPARATORLOOSE]:mst[gst.COMPARATOR],r=t.match(n);if(!r)throw new TypeError(`Invalid comparator: ${t}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new yst(r[2],this.options.loose):this.semver=KM}toString(){return this.value}test(t){if(Hle("Comparator.test",t,this.options.loose),this.semver===KM||t===KM)return!0;if(typeof t=="string")try{t=new yst(t,this.options)}catch{return!1}return jle(t,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Sst(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new Sst(this.value,n).test(t.semver):(n=hst(n),n.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!n.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||jle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||jle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Est.exports=qle;var hst=w4(),{safeRe:mst,t:gst}=$k(),jle=Dle(),Hle=zM(),yst=cc(),Sst=wd()});var YM=w((Y9r,_st)=>{"use strict";var jPn=wd(),HPn=(e,t,n)=>{try{t=new jPn(t,n)}catch{return!1}return t.test(e)};_st.exports=HPn});var Tst=w((Z9r,bst)=>{"use strict";var qPn=wd(),BPn=(e,t)=>new qPn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));bst.exports=BPn});var Ast=w((J9r,vst)=>{"use strict";var GPn=cc(),zPn=wd(),VPn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new zPn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new GPn(r,n))}),r};vst.exports=VPn});var wst=w((X9r,Rst)=>{"use strict";var WPn=cc(),KPn=wd(),YPn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new KPn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new WPn(r,n))}),r};Rst.exports=YPn});var xst=w((Q9r,Ist)=>{"use strict";var Ble=cc(),ZPn=wd(),kst=VM(),JPn=(e,t)=>{e=new ZPn(e,t);let n=new Ble("0.0.0");if(e.test(n)||(n=new Ble("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new Ble(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||kst(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||kst(n,s))&&(n=s)}return n&&e.test(n)?n:null};Ist.exports=JPn});var Pst=w(($9r,Ost)=>{"use strict";var XPn=wd(),QPn=(e,t)=>{try{return new XPn(e,t).range||"*"}catch{return null}};Ost.exports=QPn});var U4=w((e3r,Dst)=>{"use strict";var $Pn=cc(),Mst=WM(),{ANY:eNn}=Mst,tNn=wd(),nNn=YM(),Nst=VM(),Cst=N4(),rNn=M4(),iNn=C4(),sNn=(e,t,n,r)=>{e=new $Pn(e,r),t=new tNn(t,r);let i,s,o,a,c;switch(n){case">":i=Nst,s=rNn,o=Cst,a=">",c=">=";break;case"<":i=Cst,s=iNn,o=Nst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(nNn(e,t,r))return!1;for(let u=0;u{p.semver===eNn&&(p=new Mst(">=0.0.0")),d=d||p,f=f||p,i(p.semver,d.semver,r)?d=p:o(p.semver,f.semver,r)&&(f=p)}),d.operator===a||d.operator===c||(!f.operator||f.operator===a)&&s(e,f.semver))return!1;if(f.operator===c&&o(e,f.semver))return!1}return!0};Dst.exports=sNn});var Ust=w((t3r,Lst)=>{"use strict";var oNn=U4(),aNn=(e,t,n)=>oNn(e,t,">",n);Lst.exports=aNn});var jst=w((n3r,Fst)=>{"use strict";var cNn=U4(),uNn=(e,t,n)=>cNn(e,t,"<",n);Fst.exports=uNn});var Bst=w((r3r,qst)=>{"use strict";var Hst=wd(),lNn=(e,t,n)=>(e=new Hst(e,n),t=new Hst(t,n),e.intersects(t,n));qst.exports=lNn});var zst=w((i3r,Gst)=>{"use strict";var dNn=YM(),fNn=Rd();Gst.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>fNn(l,d,n));for(let l of o)dNn(l,t,n)?(s=l,i||(i=l)):(s&&r.push([i,s]),s=null,i=null);i&&r.push([i,null]);let a=[];for(let[l,d]of r)l===d?a.push(l):!d&&l===o[0]?a.push("*"):d?l===o[0]?a.push(`<=${d}`):a.push(`${l} - ${d}`):a.push(`>=${l}`);let c=a.join(" || "),u=typeof t.raw=="string"?t.raw:String(t);return c.length{"use strict";var Vst=wd(),zle=WM(),{ANY:Gle}=zle,ZM=YM(),Vle=Rd(),pNn=(e,t,n={})=>{if(e===t)return!0;e=new Vst(e,n),t=new Vst(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=mNn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},hNn=[new zle(">=0.0.0-0")],Wst=[new zle(">=0.0.0")],mNn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Gle){if(t.length===1&&t[0].semver===Gle)return!0;n.includePrerelease?e=hNn:e=Wst}if(t.length===1&&t[0].semver===Gle){if(n.includePrerelease)return!0;t=Wst}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=Kst(i,p,n):p.operator==="<"||p.operator==="<="?s=Yst(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=Vle(i.semver,s.semver,n),o>0)return null;if(o===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let p of r){if(i&&!ZM(p,String(i),n)||s&&!ZM(p,String(s),n))return null;for(let h of t)if(!ZM(p,String(h),n))return!1;return!0}let a,c,u,l,d=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=i&&!n.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&s.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let p of t){if(l=l||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",i){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(a=Kst(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!ZM(i.semver,String(p),n))return!1}if(s){if(d&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===d.major&&p.semver.minor===d.minor&&p.semver.patch===d.patch&&(d=!1),p.operator==="<"||p.operator==="<="){if(c=Yst(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!ZM(s.semver,String(p),n))return!1}if(!p.operator&&(s||i)&&o!==0)return!1}return!(i&&u&&!s&&o!==0||s&&l&&!i&&o!==0||f||d)},Kst=(e,t,n)=>{if(!e)return t;let r=Vle(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},Yst=(e,t,n)=>{if(!e)return t;let r=Vle(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};Zst.exports=pNn});var eot=w((o3r,$st)=>{"use strict";var Wle=$k(),Xst=GM(),gNn=cc(),Qst=Ole(),yNn=hT(),SNn=Ait(),ENn=wit(),_Nn=xit(),bNn=Nit(),TNn=Mit(),vNn=Lit(),ANn=Fit(),RNn=Hit(),wNn=Rd(),kNn=zit(),INn=Wit(),xNn=P4(),ONn=Jit(),PNn=Qit(),NNn=VM(),CNn=N4(),MNn=Cle(),DNn=Mle(),LNn=C4(),UNn=M4(),FNn=Dle(),jNn=ast(),HNn=WM(),qNn=wd(),BNn=YM(),GNn=Tst(),zNn=Ast(),VNn=wst(),WNn=xst(),KNn=Pst(),YNn=U4(),ZNn=Ust(),JNn=jst(),XNn=Bst(),QNn=zst(),$Nn=Jst();$st.exports={parse:yNn,valid:SNn,clean:ENn,inc:_Nn,diff:bNn,major:TNn,minor:vNn,patch:ANn,prerelease:RNn,compare:wNn,rcompare:kNn,compareLoose:INn,compareBuild:xNn,sort:ONn,rsort:PNn,gt:NNn,lt:CNn,eq:MNn,neq:DNn,gte:LNn,lte:UNn,cmp:FNn,coerce:jNn,Comparator:HNn,Range:qNn,satisfies:BNn,toComparators:GNn,maxSatisfying:zNn,minSatisfying:VNn,minVersion:WNn,validRange:KNn,outside:YNn,gtr:ZNn,ltr:JNn,intersects:XNn,simplifyRange:QNn,subset:$Nn,SemVer:gNn,re:Wle.re,src:Wle.src,tokens:Wle.t,SEMVER_SPEC_VERSION:Xst.SEMVER_SPEC_VERSION,RELEASE_TYPES:Xst.RELEASE_TYPES,compareIdentifiers:Qst.compareIdentifiers,rcompareIdentifiers:Qst.rcompareIdentifiers}});var Qle=w((a3r,Xle)=>{"use strict";var Kle=eot(),Zle=Y("node:assert"),Jle=Symbol.for("registered-plugin"),{kTestInternals:eCn}=$s(),{exist:tCn,existReply:nCn,existRequest:rCn}=AM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:iCn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:sCn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:oCn}=Ko(),aCn=/-(?:rc|pre|alpha).+$/u;function JM(e){return e[Symbol.for("plugin-meta")]}function tot(e){let t=not(e);if(t)return t;let n=Y.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function not(e){return e[Symbol.for("fastify.display-name")]}function rot(e){return!!e[Symbol.for("skip-override")]}function iot(e){let t=JM(e);if(!t)return;let n=t.dependencies;n&&(Zle(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{Zle(this[Jle].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function sot(e){let t=JM(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&Yle(this,"Fastify",n.fastify,r),n.reply&&Yle(this,"Reply",n.reply,r),n.request&&Yle(this,"Request",n.request,r))}var uCn={Fastify:tCn,Request:rCn,Reply:nCn};function Yle(e,t,n,r){Zle(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!uCn[t].call(e,i))throw new sCn(i,s,t)})}function lCn(e){let t=JM(e);if(t?.fastify==null)return;let n=t.fastify,r=aCn.test(this.version);if(!(r===!0&&Kle.gt(this.version,Kle.coerce(n))===!0)&&n&&Kle.satisfies(this.version,n,{includePrerelease:r})===!1)throw new iCn(t.name,n,this.version)}function dCn(e){let t=JM(e);if(!t)return;let n=t.name;if(n)return this[Jle].push(n),n}function fCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new oCn(t)}function pCn(e){let t=dCn.call(this,e)||tot(e);return fCn.call(this,e,t),lCn.call(this,e),sot.call(this,e),iot.call(this,e),rot(e)}Xle.exports={getPluginName:tot,getFuncPreview:cCn,kRegisteredPlugins:Jle,getDisplayName:not,registerPlugin:pCn};Xle.exports[eCn]={shouldSkipOverride:rot,getMeta:JM,checkDecorators:sot,checkDependencies:iot}});var F4=w((u3r,oot)=>{"use strict";function hCn(e,t){let n=t||gCn();return e?yCn(e,n):n}function mCn(e,t){return e.genReqId(t)}function gCn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function yCn(e,t){return function(n){return n.headers[e]||t(n)}}oot.exports={getGenReqId:mCn,reqIdGenFactory:hCn}});var lot=w((l3r,uot)=>{"use strict";var aot=12,SCn=0,$le=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7];function ECn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=aot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===SCn)return null;if(t+=3,t{"use strict";var dot=lot(),fot=/\+/g,pot=function(){};pot.prototype=Object.create(null);function bCn(e){let t=new pot;if(typeof e!="string")return t;let n=e.length,r="",i="",s=-1,o=-1,a=!1,c=!1,u=!1,l=!1,d=!1,f=0;for(let p=0;ps,d||(o=p),r=e.slice(s+1,o),d||r.length>0){u&&(r=r.replace(fot," ")),a&&(r=dot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(fot," ")),c&&(i=dot(i)||i));let h=t[r];h===void 0?t[r]=i:h.pop?h.push(i):t[r]=[h,i]}i="",s=p,o=p,a=!1,c=!1,u=!1,l=!1}else f===61?o<=s?o=p:c=!0:f===43?o>s?l=!0:u=!0:f===37&&(o>s?c=!0:a=!0);return t}hot.exports=bCn});var yot=w((f3r,got)=>{var wh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),TCn=new Int8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0]);function vCn(e){let t=e.length;if(t===0)return"";let n="",r=0,i=0;e:for(;i>6]+wh[128|s&63];continue}if(s<55296||s>=57344){r=i+1,n+=wh[224|s>>12]+wh[128|s>>6&63]+wh[128|s&63];continue}if(++i,i>=t)throw new Error("URI malformed");let o=e.charCodeAt(i)&1023;r=i+1,s=65536+((s&1023)<<10|o),n+=wh[240|s>>18]+wh[128|s>>12&63]+wh[128|s>>6&63]+wh[128|s&63]}return r===0?e:r{"use strict";var{encodeString:ede}=yot();function Sot(e){let t=typeof e;return t==="string"?ede(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:ede(""+e):""}function ACn(e){let t="";if(e===null||typeof e!="object")return t;let n="&",r=Object.keys(e),i=r.length,s=0;for(let o=0;o{"use strict";var bot=mot(),Tot=_ot(),vot={parse:bot,stringify:Tot};XM.exports=vot;XM.exports.default=vot;XM.exports.parse=bot;XM.exports.stringify=Tot});var wot=w(Rot=>{"use strict";Object.defineProperty(Rot,"__esModule",{value:!0})});var kot=w(QM=>{"use strict";Object.defineProperty(QM,"__esModule",{value:!0});QM.types=void 0;var RCn;(function(e){e[e.ROOT=0]="ROOT",e[e.GROUP=1]="GROUP",e[e.POSITION=2]="POSITION",e[e.SET=3]="SET",e[e.RANGE=4]="RANGE",e[e.REPETITION=5]="REPETITION",e[e.REFERENCE=6]="REFERENCE",e[e.CHAR=7]="CHAR"})(RCn=QM.types||(QM.types={}))});var xot=w(Iot=>{"use strict";Object.defineProperty(Iot,"__esModule",{value:!0})});var lg=w(ug=>{"use strict";var wCn=ug&&ug.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),tde=ug&&ug.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&wCn(t,e,n)};Object.defineProperty(ug,"__esModule",{value:!0});tde(wot(),ug);tde(kot(),ug);tde(xot(),ug)});var j4=w(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.anyChar=lc.notWhitespace=lc.whitespace=lc.notInts=lc.ints=lc.notWords=lc.words=void 0;var hr=lg(),Oot=()=>[{type:hr.types.RANGE,from:48,to:57}],Pot=()=>[{type:hr.types.CHAR,value:95},{type:hr.types.RANGE,from:97,to:122},{type:hr.types.RANGE,from:65,to:90},{type:hr.types.RANGE,from:48,to:57}],Not=()=>[{type:hr.types.CHAR,value:9},{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:11},{type:hr.types.CHAR,value:12},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:32},{type:hr.types.CHAR,value:160},{type:hr.types.CHAR,value:5760},{type:hr.types.RANGE,from:8192,to:8202},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233},{type:hr.types.CHAR,value:8239},{type:hr.types.CHAR,value:8287},{type:hr.types.CHAR,value:12288},{type:hr.types.CHAR,value:65279}],kCn=()=>[{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233}];lc.words=()=>({type:hr.types.SET,set:Pot(),not:!1});lc.notWords=()=>({type:hr.types.SET,set:Pot(),not:!0});lc.ints=()=>({type:hr.types.SET,set:Oot(),not:!1});lc.notInts=()=>({type:hr.types.SET,set:Oot(),not:!0});lc.whitespace=()=>({type:hr.types.SET,set:Not(),not:!1});lc.notWhitespace=()=>({type:hr.types.SET,set:Not(),not:!0});lc.anyChar=()=>({type:hr.types.SET,set:kCn(),not:!0})});var Mot=w(kd=>{"use strict";var ICn=kd&&kd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),xCn=kd&&kd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),OCn=kd&&kd.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&ICn(t,e,n);return xCn(t,e),t};Object.defineProperty(kd,"__esModule",{value:!0});kd.tokenizeClass=kd.strToChars=void 0;var Cot=lg(),eI=OCn(j4()),PCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";kd.strToChars=e=>{let t=/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g;return e.replace(t,(n,r,i,s,o,a,c)=>{if(i)return n;let u=r?8:s?parseInt(s,16):o?parseInt(o,16):a?PCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};kd.tokenizeClass=(e,t)=>{var n,r,i,s,o,a,c;let u=[],l,d,f=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(l=f.exec(e))!==null;){let p=(c=(a=(o=(s=(i=(r=(n=l[1]&&eI.words())!==null&&n!==void 0?n:l[2]&&eI.ints())!==null&&r!==void 0?r:l[3]&&eI.whitespace())!==null&&i!==void 0?i:l[4]&&eI.notWords())!==null&&s!==void 0?s:l[5]&&eI.notInts())!==null&&o!==void 0?o:l[6]&&eI.notWhitespace())!==null&&a!==void 0?a:l[7]&&{type:Cot.types.RANGE,from:(l[8]||l[9]).charCodeAt(0),to:(d=l[10]).charCodeAt(d.length-1)})!==null&&c!==void 0?c:(d=l[16])&&{type:Cot.types.CHAR,value:d.charCodeAt(0)};if(p)u.push(p);else return[u,f.lastIndex]}throw new SyntaxError(`Invalid regular expression: /${t}/: Unterminated character class`)}});var nde=w(kh=>{"use strict";var NCn=kh&&kh.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),CCn=kh&&kh.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Uot=kh&&kh.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&NCn(t,e,n);return CCn(t,e),t};Object.defineProperty(kh,"__esModule",{value:!0});kh.tokenizer=void 0;var Dot=Uot(Mot()),va=lg(),mT=Uot(j4()),MCn=/^[a-zA-Z_$]$/i,DCn=/^[a-zA-Z0-9_$]$/i,Lot=/\d/;kh.tokenizer=e=>{let t=0,n,r={type:va.types.ROOT,stack:[]},i=r,s=r.stack,o=[],a=[],c=0,u=d=>{throw new SyntaxError(`Invalid regular expression: /${e}/: Nothing to repeat at column ${d-1}`)},l=Dot.strToChars(e);for(;t")throw new SyntaxError(`Invalid regular expression: /${e}/: Unclosed capture group name, expected '>', found '${l[t]}' at column ${t+1}`);d.name=f,t++}else if(n===":")d.remember=!1;else throw new SyntaxError(`Invalid regular expression: /${e}/: Invalid group, character '${n}' after '?' at column ${t-1}`);else c+=1;s.push(d),o.push(i),i=d,s=d.stack;break}case")":if(o.length===0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unmatched ) at column ${t-1}`);i=o.pop(),s=i.options?i.options[i.options.length-1]:i.stack;break;case"|":{i.options||(i.options=[i.stack],delete i.stack);let d=[];i.options.push(d),s=d;break}case"{":{let d=/^(\d+)(,(\d+)?)?\}/.exec(l.slice(t)),f,p;d!==null?(s.length===0&&u(t),f=parseInt(d[1],10),p=d[2]?d[3]?parseInt(d[3],10):1/0:f,t+=d[0].length,s.push({type:va.types.REPETITION,min:f,max:p,value:s.pop()})):s.push({type:va.types.CHAR,value:123});break}case"?":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:0,max:1,value:s.pop()});break;case"+":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:1,max:1/0,value:s.pop()});break;case"*":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:0,max:1/0,value:s.pop()});break;default:s.push({type:va.types.CHAR,value:n.charCodeAt(0)})}if(o.length!==0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unterminated group`);return LCn(a,c),r};function LCn(e,t){for(let n of e.reverse())if(ti){let s=n.stack.splice(n.index+1);for(let o of r.slice(i))n.stack.push({type:va.types.CHAR,value:o.charCodeAt(0)});n.stack.push(...s)}}}}});var jot=w(dc=>{"use strict";var UCn=dc&&dc.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),FCn=dc&&dc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),jCn=dc&&dc.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&UCn(t,e,n);return FCn(t,e),t};Object.defineProperty(dc,"__esModule",{value:!0});dc.NOTANYCHAR=dc.WHITESPACE=dc.WORDS=dc.INTS=void 0;var H4=jCn(j4()),Fot=lg();function q4(e){let t={},n=0;for(let r of e)r.type===Fot.types.CHAR&&(t[r.value]=!0),r.type===Fot.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}dc.INTS=q4(H4.ints().set);dc.WORDS=q4(H4.words().set);dc.WHITESPACE=q4(H4.whitespace().set);dc.NOTANYCHAR=q4(H4.anyChar().set)});var qot=w(Id=>{"use strict";var HCn=Id&&Id.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),qCn=Id&&Id.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),BCn=Id&&Id.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&HCn(t,e,n);return qCn(t,e),t};Object.defineProperty(Id,"__esModule",{value:!0});Id.writeSetTokens=Id.setChar=void 0;var V4=lg(),B4=BCn(jot());function z4(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Id.setChar=z4;function G4(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===V4.types.SET)return!1;let s=i.type===V4.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function Hot(e,t=!1){if(G4(e.set,B4.INTS))return e.not?"\\D":"\\d";if(G4(e.set,B4.WORDS))return e.not?"\\W":"\\w";if(e.not&&G4(e.set,B4.NOTANYCHAR))return".";if(G4(e.set,B4.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(tI,"__esModule",{value:!0});tI.reconstruct=void 0;var rE=lg(),rde=qot(),Bot=e=>e.map(tI.reconstruct).join(""),Got=e=>{if("options"in e)return e.options.map(Bot).join("|");if("stack"in e)return Bot(e.stack);throw new Error("options or stack must be Root or Group token")};tI.reconstruct=e=>{switch(e.type){case rE.types.ROOT:return Got(e);case rE.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case rE.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case rE.types.REFERENCE:return`\\${e.value}`;case rE.types.SET:return rde.writeSetTokens(e);case rE.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${Got(e)})`;case rE.types.REPETITION:{let{min:t,max:n}=e,r;return t===0&&n===1?r="?":t===1&&n===1/0?r="+":t===0&&n===1/0?r="*":n===1/0?r=`{${t},}`:t===n?r=`{${t}}`:r=`{${t},${n}}`,`${tI.reconstruct(e.value)}${r}`}case rE.types.RANGE:return`${rde.setChar(e.from)}-${rde.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var ode=w((xd,W4)=>{"use strict";var zCn=xd&&xd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),sde=xd&&xd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&zCn(t,e,n)};Object.defineProperty(xd,"__esModule",{value:!0});xd.types=void 0;var zot=lg();Object.defineProperty(xd,"types",{enumerable:!0,get:function(){return zot.types}});sde(nde(),xd);sde(ide(),xd);var Vot=nde(),VCn=ide();sde(lg(),xd);xd.default=Vot.tokenizer;W4.exports=Vot.tokenizer;W4.exports.types=zot.types;W4.exports.reconstruct=VCn.reconstruct});var Wot=w((R3r,K4)=>{"use strict";var WCn=ode(),{types:KCn}=ode();function ade(e,t,n){let r,i,s;if(e.type===KCn.REPETITION&&(n++,t.reps++,n>1||t.reps>t.limit))return!1;let o=e.options||e.value?.options;if(o){for(r=0,s=o.length;r{"use strict";Kot.exports={name:"__fmw_internal_strategy_merged_tree_http_method__",storage:function(){let e=new Map;return{get:t=>e.get(t)||null,set:(t,n)=>{e.set(t,n)}}},deriveConstraint:e=>e.method,mustMatchWhenDerived:!0}});var eat=w((k3r,$ot)=>{"use strict";var Yot=SC(),Zot=Y4(),Jot=Symbol("treeData");function Xot(e,t=""){let n="",r=Object.keys(e);for(let i=0;ibot(t)):typeof e=="symbol"?e.toString():typeof e=="function"?JPn(e):e}function XPn(e,t){if(!t.includeMeta)return{};let n=t.buildPrettyMeta(e),r={},i=t.includeMeta;Array.isArray(i)||(i=Reflect.ownKeys(n));for(let s of i){if(!Object.prototype.hasOwnProperty.call(n,s))continue;let o=s.toString(),a=n[s];if(a!=null){let c=JSON.stringify(bot(a));r[o]=c}}return r}function QPn(e){let t="";for(let[n,r]of Object.entries(e))t+=` -\u2022 (${n}) ${r}`;return t}function $Pn(e){let t={...e.opts.constraints},n=t[Sot.name];return delete t[Sot.name],{...e,method:n,opts:{constraints:t}}}function eCn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=QPn(e.metaData),t}function tCn(e){return e.reduce((t,n)=>{for(let r of t)if(yot(n.opts.constraints,r.opts.constraints)&&yot(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function nCn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map($Pn)),r=r.map(i=>(i.metaData=XPn(i,n),i)),n.method===void 0&&(r=tCn(r)),r.map(eCn).join(` -${t}`)}function D4(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[_ot]=nCn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))D4(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");D4(i,t,n+s,r)}e.wildcardChild&&D4(e.wildcardChild,t,"*",r)}function rCn(e,t){let n={};return D4(e,n,e.prefix,t),Eot(n)}Tot.exports={prettyPrintTree:rCn}});var wot=w((DKr,Rot)=>{"use strict";var Aot=function(){};Aot.prototype=Object.create(null);Rot.exports={NullObject:Aot}});var Iot=w((LKr,kot)=>{"use strict";var{NullObject:iCn}=wot(),sCn=M4(),Vle=class{constructor(){this.unconstrainedHandler=null,this.constraints=[],this.handlers=[],this.constrainedHandlerStores=null}getMatchingHandler(t){return t===void 0?this.unconstrainedHandler:this._getHandlerMatchingConstraints(t)}addHandler(t,n){let r=n.params,i=n.opts.constraints||{},s={params:r,constraints:i,handler:n.handler,store:n.store||null,_createParamsObject:this._compileCreateParamsObject(r)},o=Object.keys(i);o.length===0&&(this.unconstrainedHandler=s);for(let c of o)this.constraints.includes(c)||(c==="version"?this.constraints.unshift(c):this.constraints.push(c));let a=o.includes(sCn.name);if(!a&&this.handlers.length>=31)throw new Error("find-my-way supports a maximum of 31 route handlers per node when there are constraints, limit reached");this.handlers.push(s),this.handlers.sort((c,u)=>Object.keys(c.constraints).length-Object.keys(u.constraints).length),a||this._compileGetHandlerMatchingConstraints(t,i)}_compileCreateParamsObject(t){let n=[];n.push("const fn = function _createParamsObject (paramsArray) {"),n.push("const params = new NullObject()");for(let r=0;rQot(t)):typeof e=="symbol"?e.toString():typeof e=="function"?ZCn(e):e}function JCn(e,t){if(!t.includeMeta)return{};let n=t.buildPrettyMeta(e),r={},i=t.includeMeta;Array.isArray(i)||(i=Reflect.ownKeys(n));for(let s of i){if(!Object.prototype.hasOwnProperty.call(n,s))continue;let o=s.toString(),a=n[s];if(a!=null){let c=JSON.stringify(Qot(a));r[o]=c}}return r}function XCn(e){let t="";for(let[n,r]of Object.entries(e))t+=` +\u2022 (${n}) ${r}`;return t}function QCn(e){let t={...e.opts.constraints},n=t[Zot.name];return delete t[Zot.name],{...e,method:n,opts:{constraints:t}}}function $Cn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=XCn(e.metaData),t}function eMn(e){return e.reduce((t,n)=>{for(let r of t)if(Yot(n.opts.constraints,r.opts.constraints)&&Yot(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function tMn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(QCn)),r=r.map(i=>(i.metaData=JCn(i,n),i)),n.method===void 0&&(r=eMn(r)),r.map($Cn).join(` +${t}`)}function Z4(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[Jot]=tMn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))Z4(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");Z4(i,t,n+s,r)}e.wildcardChild&&Z4(e.wildcardChild,t,"*",r)}function nMn(e,t){let n={};return Z4(e,n,e.prefix,t),Xot(n)}$ot.exports={prettyPrintTree:nMn}});var rat=w((I3r,nat)=>{"use strict";var tat=function(){};tat.prototype=Object.create(null);nat.exports={NullObject:tat}});var sat=w((x3r,iat)=>{"use strict";var{NullObject:rMn}=rat(),iMn=Y4(),ude=class{constructor(){this.unconstrainedHandler=null,this.constraints=[],this.handlers=[],this.constrainedHandlerStores=null}getMatchingHandler(t){return t===void 0?this.unconstrainedHandler:this._getHandlerMatchingConstraints(t)}addHandler(t,n){let r=n.params,i=n.opts.constraints||{},s={params:r,constraints:i,handler:n.handler,store:n.store||null,_createParamsObject:this._compileCreateParamsObject(r)},o=Object.keys(i);o.length===0&&(this.unconstrainedHandler=s);for(let c of o)this.constraints.includes(c)||(c==="version"?this.constraints.unshift(c):this.constraints.push(c));let a=o.includes(iMn.name);if(!a&&this.handlers.length>=31)throw new Error("find-my-way supports a maximum of 31 route handlers per node when there are constraints, limit reached");this.handlers.push(s),this.handlers.sort((c,u)=>Object.keys(c.constraints).length-Object.keys(u.constraints).length),a||this._compileGetHandlerMatchingConstraints(t,i)}_compileCreateParamsObject(t){let n=[];n.push("const fn = function _createParamsObject (paramsArray) {"),n.push("const params = new NullObject()");for(let r=0;r{"use strict";var oCn=Iot(),q4={STATIC:0,PARAMETRIC:1,WILDCARD:2},L4=class{constructor(){this.isLeafNode=!1,this.routes=null,this.handlerStorage=null}addRoute(t,n){this.routes===null&&(this.routes=[]),this.handlerStorage===null&&(this.handlerStorage=new oCn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},U4=class extends L4{constructor(){super(),this.staticChildren={}}findStaticMatchingChild(t,n){let r=this.staticChildren[t.charAt(n)];return r===void 0||!r.matchPrefix(t,n)?null:r}getStaticChild(t,n=0){if(t.length===n)return this;let r=this.findStaticMatchingChild(t,n);return r?r.getStaticChild(t,n+r.prefix.length):null}createStaticChild(t){if(t.length===0)return this;let n=this.staticChildren[t.charAt(0)];if(n){let i=1;for(;i(i.regex&&i.regex.source)===n);return r||null}createParametricChild(t,n,r){let i=this.getParametricChild(t);return i?(i.nodePaths.add(r),i):(i=new F4(t,n,r),this.parametricChildren.push(i),this.parametricChildren.sort((s,o)=>s.isRegex?o.isRegex?s.staticSuffix===null?1:o.staticSuffix===null?-1:o.staticSuffix.endsWith(s.staticSuffix)?1:s.staticSuffix.endsWith(o.staticSuffix)?-1:0:-1:1),i)}getWildcardChild(){return this.wildcardChild}createWildcardChild(){return this.wildcardChild=this.getWildcardChild()||new H4,this.wildcardChild}split(t,n){let r=this.prefix.slice(0,n),i=this.prefix.slice(n);this.prefix=i,this._compilePrefixMatch();let s=new e(r);return s.staticChildren[i.charAt(0)]=this,t.staticChildren[r.charAt(0)]=s,s}getNextNode(t,n,r,i){let s=this.findStaticMatchingChild(t,n),o=0;if(s===null){if(this.parametricChildren.length===0)return this.wildcardChild;s=this.parametricChildren[0],o=1}this.wildcardChild!==null&&r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.wildcardChild});for(let a=this.parametricChildren.length-1;a>=o;a--)r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.parametricChildren[a]});return s}_compilePrefixMatch(){if(this.prefix.length===1){this.matchPrefix=()=>!0;return}let t=[];for(let n=1;n{"use strict";var aCn=Y("node:assert");function VM(){if(!(this instanceof VM))return new VM;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}VM.prototype.set=function(e,t){if(typeof e!="string")throw new TypeError("Version should be a string");let[n,r,i]=e.split(".",3);if(isNaN(n))throw new TypeError("Major version must be a numeric value");return n=Number(n),r=Number(r)||0,i=Number(i)||0,n>=this.maxMajor&&(this.maxMajor=n,this.store.set("x",t),this.store.set("*",t),this.store.set("x.x",t),this.store.set("x.x.x",t)),r>=(this.maxMinors[n]||0)&&(this.maxMinors[n]=r,this.store.set(`${n}.x`,t),this.store.set(`${n}.x.x`,t)),i>=(this.maxPatches[`${n}.${r}`]||0)&&(this.maxPatches[`${n}.${r}`]=i,this.store.set(`${n}.${r}.x`,t)),this.store.set(`${n}.${r}.${i}`,t),this};VM.prototype.get=function(e){return this.store.get(e)};Not.exports={name:"version",mustMatchWhenDerived:!0,storage:VM,validate(e){aCn(typeof e=="string","Version should be a string")}}});var Mot=w((FKr,Cot)=>{"use strict";var cCn=Y("node:assert");function uCn(){let e=new Map,t=[];return{get:n=>{let r=e.get(n);if(r)return r;for(let i of t)if(i.host.test(n))return i.value},set:(n,r)=>{n instanceof RegExp?t.push({host:n,value:r}):e.set(n,r)}}}Cot.exports={name:"host",mustMatchWhenDerived:!1,storage:uCn,validate(e){cCn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var Lot=w((HKr,Dot)=>{"use strict";var lCn=Pot(),dCn=Mot(),Wle=Y("node:assert"),Kle=class{constructor(t){if(this.strategies={version:lCn,host:dCn},this.strategiesInUse=new Set,this.asyncStrategiesInUse=new Set,t)for(let n of Object.values(t))this.addConstraintStrategy(n)}isStrategyUsed(t){return this.strategiesInUse.has(t)||this.asyncStrategiesInUse.has(t)}hasConstraintStrategy(t){let n=this.strategies[t];return n!==void 0?n.isCustom||this.isStrategyUsed(t):!1}addConstraintStrategy(t){if(Wle(typeof t.name=="string"&&t.name!=="","strategy.name is required."),Wle(t.storage&&typeof t.storage=="function","strategy.storage function is required."),Wle(t.deriveConstraint&&typeof t.deriveConstraint=="function","strategy.deriveConstraint function is required."),this.strategies[t.name]&&this.strategies[t.name].isCustom)throw new Error(`There already exists a custom constraint with the name ${t.name}.`);if(this.isStrategyUsed(t.name))throw new Error(`There already exists a route with ${t.name} constraint.`);t.isCustom=!0,t.isAsync=t.deriveConstraint.length===3,this.strategies[t.name]=t,t.mustMatchWhenDerived&&this.noteUsage({[t.name]:t})}deriveConstraints(t,n,r){let i=this.deriveSyncConstraints(t,n);if(r===void 0)return i;this.deriveAsyncConstraints(i,t,n,r)}deriveSyncConstraints(t,n){}noteUsage(t){if(t){let n=this.strategiesInUse.size;for(let r in t){if(!Object.hasOwn(t,r))continue;this.strategies[r].isAsync?this.asyncStrategiesInUse.add(r):this.strategiesInUse.add(r)}n!==this.strategiesInUse.size&&this._buildDeriveConstraints()}}newStoreForConstraint(t){if(!this.strategies[t])throw new Error(`No strategy registered for constraint key ${t}`);return this.strategies[t].storage()}validateConstraints(t){for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n];if(typeof r>"u")throw new Error("Can't pass an undefined constraint value, must pass null or no key at all");let i=this.strategies[n];if(!i)throw new Error(`No strategy registered for constraint key ${n}`);i.validate&&i.validate(r)}}deriveAsyncConstraints(t,n,r,i){let s=this.asyncStrategiesInUse.size;if(s===0){i(null,t);return}t=t||{};for(let o of this.asyncStrategiesInUse)this.strategies[o].deriveConstraint(n,r,(c,u)=>{if(c!==null){i(c);return}t[o]=u,--s===0&&i(null,t)})}_buildDeriveConstraints(){if(this.strategiesInUse.size===0)return;let t=["return {"];for(let n of this.strategiesInUse){let r=this.strategies[n];r.isCustom?t.push(` ${r.name}: this.strategies.${n}.deriveConstraint(req, ctx),`):n==="version"?t.push(" version: req.headers['accept-version'],"):t.push(" host: req.headers.host || req.headers[':authority'],")}t.push("}"),this.deriveSyncConstraints=new Function("req","ctx",t.join(` -`)).bind(this)}};Dot.exports=Kle});var jot=w((qKr,Uot)=>{"use strict";var fCn=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];Uot.exports=fCn});var qot=w((BKr,Hot)=>{"use strict";function Fot(e,t){return e===50?t===53?"%":t===51?"#":t===52?"$":t===54?"&":t===66||t===98?"+":t===67||t===99?",":t===70||t===102?"/":null:e===51?t===65||t===97?":":t===66||t===98?";":t===68||t===100?"=":t===70||t===102?"?":null:e===52&&t===48?"@":null}function pCn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ps=Y("node:assert"),mCn=Kst(),Xk=mot(),Jle=lC(),{prettyPrintTree:gCn}=vot(),{StaticNode:Bot,NODE_TYPES:Got}=Oot(),yCn=Lot(),Jk=jot(),Zle=M4(),{safeDecodeURI:zot,safeDecodeURIComponent:Yle}=qot(),Vot=/^https?:\/\/.*?\//,fT=/(\/:[^/()]*?)\?(\/?)/,Wot=/[.*+?^${}()|[\]\\]/g,Kot=/\/\/+/g;if(!Xk(Vot))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!Xk(fT))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!Xk(Wot))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!Xk(Kot))throw new Error("the REMOVE_DUPLICATE_SLASHES_REGEXP is not safe, update this module");function Si(e){if(!(this instanceof Si))return new Si(e);e=e||{},this._opts=e,e.defaultRoute?(Ps(typeof e.defaultRoute=="function","The default route must be a function"),this.defaultRoute=e.defaultRoute):this.defaultRoute=null,e.onBadUrl?(Ps(typeof e.onBadUrl=="function","The bad url handler must be a function"),this.onBadUrl=e.onBadUrl):this.onBadUrl=null,e.buildPrettyMeta?(Ps(typeof e.buildPrettyMeta=="function","buildPrettyMeta must be a function"),this.buildPrettyMeta=e.buildPrettyMeta):this.buildPrettyMeta=SCn,e.querystringParser?(Ps(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:mCn.parse(t),this.caseSensitive=e.caseSensitive===void 0?!0:e.caseSensitive,this.ignoreTrailingSlash=e.ignoreTrailingSlash||!1,this.ignoreDuplicateSlashes=e.ignoreDuplicateSlashes||!1,this.maxParamLength=e.maxParamLength||100,this.allowUnsafeRegex=e.allowUnsafeRegex||!1,this.constrainer=new yCn(e.constraints),this.useSemicolonDelimiter=e.useSemicolonDelimiter||!1,this.routes=[],this.trees={}}Si.prototype.on=function(t,n,r,i,s){typeof r=="function"&&(i!==void 0&&(s=i),i=r,r={}),Ps(typeof n=="string","Path should be a string"),Ps(n.length>0,"The path could not be empty"),Ps(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ps(typeof i=="function","Handler should be a function");let o=n.match(fT);if(o){Ps(n.length===o.index+o[0].length,"Optional Parameter needs to be the last parameter of the path");let u=n.replace(fT,"$1$2"),l=n.replace(fT,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=B4(n)),this.ignoreTrailingSlash&&(n=G4(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ps(typeof u=="string","Method should be a string"),Ps(Jk.includes(u),`Method '${u}' is not an http method.`),this._on(u,n,r,i,s,a)};Si.prototype._on=function(t,n,r,i,s){let o={};r.constraints!==void 0&&(Ps(typeof r.constraints=="object"&&r.constraints!==null,"Constraints should be an object"),Object.keys(r.constraints).length!==0&&(o=r.constraints)),this.constrainer.validateConstraints(o),this.constrainer.noteUsage(o),this.trees[t]===void 0&&(this.trees[t]=new Bot("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Bot(""),this.trees[t].staticChildren["/"]=f}let c=this.trees[t],u=c.prefix.length,l=[];for(let f=0;f<=a.length;f++){if(a.charCodeAt(f)===58&&a.charCodeAt(f+1)===58){f++;continue}let p=a.charCodeAt(f)===58&&a.charCodeAt(f+1)!==58,h=a.charCodeAt(f)===42;if(p||h||f===a.length&&f!==u){let m=a.slice(u,f);this.caseSensitive||(m=m.toLowerCase()),m=m.replaceAll("::",":"),m=m.replaceAll("%","%25"),c=c.createStaticChild(m)}if(p){let m=!1,y=!0,g="",E=[],S=f+1;for(let _=S;;_++){let b=a.charCodeAt(_),T=b===40,A=b===45||b===46,R=b===47||_===a.length;if(T||A||R){let k=a.slice(S,_);if(l.push(k),m=m||T||A,T){let P=Jot(a,_),D=a.slice(_,P+1);this.allowUnsafeRegex||Ps(Xk(new RegExp(D)),`The regex '${D}' is not safe!`),E.push(Yot(D)),_=P+1,y=!0}else E.push(y?"(.*?)":`(${g}|(?:(?!${g}).)*)`),y=!1;let x=_;for(;_0,"The path could not be empty"),Ps(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ps(typeof r>"u"||typeof r=="object"&&!Array.isArray(r)&&r!==null,"Constraints should be an object or undefined.");let i=n.match(fT);if(i){Ps(n.length===i.index+i[0].length,"Optional Parameter needs to be the last parameter of the path");let o=n.replace(fT,"$1$2"),a=n.replace(fT,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=B4(n)),this.ignoreTrailingSlash&&(n=G4(n));let s=Array.isArray(t)?t:[t];for(let o of s)this._off(o,n,r)};Si.prototype._off=function(t,n,r){Ps(typeof t=="string","Method should be a string"),Ps(Jk.includes(t),`Method '${t}' is not an http method.`);function i(c){return t!==c.method||n!==c.path}function s(c){return i(c)||!Jle(r,c.opts.constraints||{})}let o=r?s:i,a=this.routes.filter(o);this._rebuild(a)};Si.prototype.lookup=function(t,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i===void 0){let s=this.constrainer.deriveConstraints(t,r),o=this.find(t.method,t.url,s);return this.callHandler(o,t,n,r)}this.constrainer.deriveConstraints(t,r,(s,o)=>{if(s!==null){i(s);return}try{let a=this.find(t.method,t.url,o),c=this.callHandler(a,t,n,r);i(null,c)}catch(a){i(a)}})};Si.prototype.callHandler=function(t,n,r,i){return t===null?this._defaultRoute(n,r,i):i===void 0?t.handler(n,r,t.params,t.store,t.searchParams):t.handler.call(i,n,r,t.params,t.store,t.searchParams)};Si.prototype.find=function(t,n,r){let i=this.trees[t];if(i===void 0)return null;n.charCodeAt(0)!==47&&(n=n.replace(Vot,"/")),this.ignoreDuplicateSlashes&&(n=B4(n));let s,o,a;try{s=zot(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=G4(n));let c=n;this.caseSensitive===!1&&(n=n.toLowerCase());let u=this.maxParamLength,l=i.prefix.length,d=[],f=n.length,p=[];for(;;){if(l===f&&i.isLeafNode){let g=i.handlerStorage.getMatchingHandler(r);if(g!==null)return{handler:g.handler,store:g.store,params:g._createParamsObject(d),searchParams:this.querystringParser(o)}}let h=i.getNextNode(n,l,p,d.length);if(h===null){if(p.length===0)return null;let g=p.pop();l=g.brotherPathIndex,d.splice(g.paramsCount),h=g.brotherNode}if(i=h,i.kind===Got.STATIC){l+=i.prefix.length;continue}if(i.kind===Got.WILDCARD){let g=c.slice(l);a&&(g=Yle(g)),d.push(g),l=f;continue}let m=c.indexOf("/",l);m===-1&&(m=f);let y=c.slice(l,m);if(a&&(y=Yle(y)),i.isRegex){let g=i.regex.exec(y);if(g===null)continue;for(let E=1;Eu)return null;d.push(S)}}else{if(y.length>u)return null;d.push(y)}l=m}};Si.prototype._rebuild=function(e){this.reset();for(let t of e){let{method:n,path:r,opts:i,handler:s,store:o}=t;this._on(n,r,i,s,o)}};Si.prototype._defaultRoute=function(e,t,n){if(this.defaultRoute!==null)return n===void 0?this.defaultRoute(e,t):this.defaultRoute.call(n,e,t);t.statusCode=404,t.end()};Si.prototype._onBadUrl=function(e){if(this.onBadUrl===null)return null;let t=this.onBadUrl;return{handler:(n,r,i)=>t(e,n,r),params:{},store:null}};Si.prototype.prettyPrint=function(e={}){let t=e.method;e.buildPrettyMeta=this.buildPrettyMeta.bind(this);let n=null;if(t===void 0){let{version:r,host:i,...s}=this.constrainer.strategies;s[Zle.name]=Zle;let o=new Si({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[Zle.name]:c.method};return{...c,method:"MERGED",opts:{constraints:u}}});o._rebuild(a),n=o.trees.MERGED}else n=this.trees[t];return n==null?"(empty tree)":gCn(n,e)};for(let e in Jk){if(!Jk.hasOwnProperty(e))continue;let t=Jk[e],n=t.toLowerCase();Si.prototype[n]=function(r,i,s){return this.on(t,r,i,s)}}Si.prototype.all=function(e,t,n){this.on(Jk,e,t,n)};Si.sanitizeUrlPath=function(t,n){let r=zot(t,n);return r.shouldDecodeParam?Yle(r.path):r.path};Si.removeDuplicateSlashes=B4;Si.trimLastSlash=G4;Xot.exports=Si;function Zot(e){return e.replace(Wot,"\\$&")}function B4(e){return e.indexOf("//")!==-1?e.replace(Kot,"/"):e}function G4(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Yot(e){return e.charCodeAt(1)===94&&(e=e.slice(0,1)+e.slice(2)),e.charCodeAt(e.length-2)===36&&(e=e.slice(0,e.length-2)+e.slice(e.length-1)),e}function Jot(e,t){let n=1;for(;t{"use strict";function Qle(e,t,n,r){if(n===void 0){t.header("content-length","0"),r(null,null);return}if(typeof n.resume=="function"){n.on("error",s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),n.resume(),r(null,null);return}if(typeof n.getReader=="function"){n.cancel("Stream cancelled by HEAD route").catch(s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),r(null,null);return}let i=""+Buffer.byteLength(n);t.header("content-length",i),r(null,null)}function _Cn(e){return e==null?Qle:Array.isArray(e)?[...e,Qle]:[e,Qle]}Qot.exports={parseHeadOnSendHandlers:_Cn}});var _at=w((VKr,Sat)=>{"use strict";var ECn=Xle(),bCn=YW(),eat=Wae(),{onRequestAbortHookRunner:TCn,lifecycleHooks:tat,preParsingHookRunner:vCn,onTimeoutHookRunner:ACn,onRequestHookRunner:RCn}=GS(),{normalizeSchema:wCn}=fM(),{parseHeadOnSendHandlers:kCn}=$ot(),{compileSchemasForValidation:ICn,compileSchemasForSerialization:xCn}=Bae(),{FST_ERR_SCH_VALIDATION_BUILD:OCn,FST_ERR_SCH_SERIALIZATION_BUILD:NCn,FST_ERR_DUPLICATED_ROUTE:PCn,FST_ERR_INVALID_URL:CCn,FST_ERR_HOOK_INVALID_HANDLER:nat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:MCn,FST_ERR_ROUTE_DUPLICATED_HANDLER:DCn,FST_ERR_ROUTE_HANDLER_NOT_FN:rat,FST_ERR_ROUTE_MISSING_HANDLER:LCn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:UCn,FST_ERR_ROUTE_METHOD_INVALID:jCn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:FCn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:HCn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:qCn,FST_ERR_HANDLER_TIMEOUT:BCn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:$le}=Vo(),{kRoutePrefix:GCn,kSupportedHTTPMethods:nde,kLogLevel:zCn,kLogSerializers:iat,kHooks:sat,kSchemaController:VCn,kOptions:oat,kReplySerializerDefault:ede,kReplyIsError:gat,kRequestPayloadStream:WCn,kDisableRequestLogging:aat,kSchemaErrorFormatter:KCn,kErrorHandler:cat,kHasBeenDecorated:uat,kRequestAcceptVersion:tde,kRouteByFastify:ZCn,kRouteContext:lat,kRequestSignal:YCn,kTimeoutTimer:dat,kOnAbort:JCn}=Ys(),{buildErrorHandler:XCn}=pM(),{createChildLogger:QCn}=dM(),{getGenReqId:$Cn}=A4(),{FSTDEP022:eMn}=vk(),fat=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function tMn(e){let t=ECn(e),n,r,i,s,o,a,c,u,l,d,f,p,h,m=!1;return{setup(R,k){n=k.avvio,r=k.fourOhFour,i=R.logger,s=k.hasLogger,o=k.setupResponseListeners,a=k.throwIfAlreadyStarted,p=R.exposeHeadRoutes,c=R.disableRequestLogging,typeof c=="function"&&(u=R.disableRequestLogging),l=R.routerOptions.ignoreTrailingSlash,d=R.routerOptions.ignoreDuplicateSlashes,f=Object.hasOwn(R,"return503OnClosing")?R.return503OnClosing:!0,h=k.keepAliveConnections},routing:t.lookup.bind(t),route:T,hasRoute:_,prepareRoute:S,routeHandler:A,closeRoutes:()=>{m=!0},printRoutes:t.prettyPrint.bind(t),addConstraintStrategy:y,hasConstraintStrategy:g,isAsyncConstraint:E,findRoute:b};function y(R){return a("Cannot add constraint strategy!"),t.addConstraintStrategy(R)}function g(R){return t.hasConstraintStrategy(R)}function E(){return t.constrainer.asyncStrategiesInUse.size>0}function S({method:R,url:k,options:x,handler:N,isFastify:P}){if(typeof k!="string")throw new CCn(typeof k);if(!N&&typeof x=="function")N=x,x={};else if(N&&typeof N=="function"){if(Object.prototype.toString.call(x)!=="[object Object]")throw new MCn(R,k);if(x.handler)throw typeof x.handler=="function"?new DCn(R,k):new rat(R,k)}return x=Object.assign({},x,{method:R,url:k,path:k,handler:N||x&&x.handler}),T.call(this,{options:x,isFastify:P})}function _({options:R}){let k=R.method?.toUpperCase()??"";return t.hasRoute(k,R.url||"",R.constraints)}function b(R){let k=t.find(R.method,R.url||"",R.constraints);return k?{handler:k.handler,params:k.params,searchParams:k.searchParams}:null}function T({options:R,isFastify:k}){a("Cannot add route!");let x={...R},N=x.url||x.path||"";if(!x.handler)throw new LCn(x.method,N);if(x.errorHandler!==void 0&&typeof x.errorHandler!="function")throw new rat(x.method,N);yat(x.bodyLimit),iMn(x.handlerTimeout);let P=x.exposeHeadRoute??p,D=!1,j=!1;if(Array.isArray(x.method))for(let G=0;G0&&x.method!=="HEAD")switch(x.prefixTrailingSlash){case"slash":B.call(this,{path:N,isFastify:k});break;case"no-slash":B.call(this,{path:"",isFastify:k});break;default:B.call(this,{path:"",isFastify:k}),l!==!0&&(d!==!0||!Z.endsWith("/"))&&B.call(this,{path:N,prefixing:!0,isFastify:k})}else N[0]==="/"&&Z.endsWith("/")?B.call(this,{path:N.slice(1),isFastify:k}):B.call(this,{path:N,isFastify:k});return this;function B({path:G,prefixing:X=!1,isFastify:q=!1}){let C=Z+G;if(x.url=C,x.path=C,x.routePath=G,x.prefix=Z,x.logLevel=x.logLevel||this[zCn],(this[iat]||x.logSerializers)&&(x.logSerializers=Object.assign(Object.create(this[iat]),x.logSerializers)),x.attachValidation==null&&(x.attachValidation=!1),X===!1)for(let W of this[sat].onRoute)W.call(this,x);for(let W of tat)if(x&&W in x){if(Array.isArray(x[W]))for(let $ of x[W]){if(typeof $!="function")throw new nat(W,Object.prototype.toString.call($));if(W==="onSend"||W==="preSerialization"||W==="onError"||W==="preParsing"){if($.constructor.name==="AsyncFunction"&&$.length===4)throw new $le}else if(W==="onRequestAbort"){if($.constructor.name==="AsyncFunction"&&$.length!==1)throw new $le}else if($.constructor.name==="AsyncFunction"&&$.length===3)throw new $le}else if(x[W]!==void 0&&typeof x[W]!="function")throw new nat(W,Object.prototype.toString.call(x[W]))}let z=x.constraints||{},U={...x.config,url:C,method:x.method},M=new bCn({schema:x.schema,handler:x.handler.bind(this),config:U,errorHandler:x.errorHandler,childLoggerFactory:x.childLoggerFactory,bodyLimit:x.bodyLimit,logLevel:x.logLevel,logSerializers:x.logSerializers,attachValidation:x.attachValidation,schemaErrorFormatter:x.schemaErrorFormatter,replySerializer:this[ede],validatorCompiler:x.validatorCompiler,serializerCompiler:x.serializerCompiler,exposeHeadRoute:P,prefixTrailingSlash:x.prefixTrailingSlash||"both",server:this,isFastify:q,handlerTimeout:x.handlerTimeout}),F=t.findRoute("HEAD",x.url,z)!==null;try{t.on(x.method,x.url,{constraints:z},A,M)}catch(W){if(!M[ZCn])throw W.message.includes(`Method '${x.method}' already declared for route`)?new PCn(x.method,x.url):W}if(this.after((W,$)=>{M.errorHandler=x.errorHandler?XCn(this[cat],x.errorHandler):this[cat],M._parserOptions.limit=x.bodyLimit||null,M.logLevel=x.logLevel,M.logSerializers=x.logSerializers,M.attachValidation=x.attachValidation,M[ede]=this[ede],M.schemaErrorFormatter=x.schemaErrorFormatter||this[KCn]||M.schemaErrorFormatter,n.once("preReady",()=>{for(let ie of tat){let Re=this[sat][ie].concat(x[ie]||[]).map(Te=>Te.bind(this));M[ie]=Re.length?Re:null}for(;!M.Request[uat]&&M.Request.parent;)M.Request=M.Request.parent;for(;!M.Reply[uat]&&M.Reply.parent;)M.Reply=M.Reply.parent;if(r.setContext(this,M),x.schema){M.schema=wCn(M.schema,this.initialConfig);let ie=this[VCn],Re=x.schema.body||x.schema.headers||x.schema.querystring||x.schema.params;!x.validatorCompiler&&Re&&ie.setupValidator(this[oat]);try{let Te=typeof x?.validatorCompiler=="function"||ie.isCustomValidatorCompiler;ICn(M,x.validatorCompiler||ie.validatorCompiler,Te)}catch(Te){throw new OCn(x.method,C,Te.message)}x.schema.response&&!x.serializerCompiler&&ie.setupSerializer(this[oat]);try{xCn(M,x.serializerCompiler||ie.serializerCompiler)}catch(Te){throw new NCn(x.method,C,Te.message)}}}),$(W)}),P&&D&&!j&&!F){let W=kCn(V.onSend);S.call(this,{method:"HEAD",url:G,options:{...V,onSend:W},isFastify:!0})}}}function A(R,k,x,N,P){let D=$Cn(N.server,R),j={level:N.logLevel};N.logSerializers&&(j.serializers=N.logSerializers);let V=QCn(N,i,R,D,j);if(V[aat]=u?!1:c,m===!0&&(R.httpVersionMajor!==2&&k.setHeader("Connection","close"),f)){let C={"Content-Type":"application/json","Content-Length":"80"};k.writeHead(503,C),k.end('{"error":"Service Unavailable","message":"Service Unavailable","statusCode":503}'),V.info({res:{statusCode:503}},"request aborted - refusing to accept new requests as server is closing");return}String.prototype.toLowerCase.call(R.headers.connection||"")==="keep-alive"&&h.has(R.socket)===!1&&(h.add(R.socket),R.socket.on("close",oMn.bind({keepAliveConnections:h,socket:R.socket}))),R.headers[tde]!==void 0&&(R.headers["accept-version"]=R.headers[tde],R.headers[tde]=void 0);let B=new N.Request(D,x,R,P,V,N),G=new N.Reply(k,B,V),X=u?u(B):c;V[aat]=X,X===!1&&V.info({req:B},"incoming request");let q=N.handlerTimeout;if(q>0){let C=new AbortController;B[YCn]=C,B[dat]=setTimeout(()=>{if(!G.sent){let U=new BCn(q,N.config?.url);C.abort(U),G[gat]=!0,G.send(U)}},q);let z=()=>{C.signal.aborted||C.abort(),clearTimeout(B[dat])};R.on("close",z),B[JCn]=z}(s===!0||N.onResponse!==null||q>0)&&o(G),N.onRequest!==null?RCn(N.onRequest,B,G,mat):mat(null,B,G),N.onRequestAbort!==null&&R.on("close",()=>{R.aborted&&TCn(N.onRequestAbort,B,nMn.bind(null,G))}),N.onTimeout!==null&&(B.raw.socket._meta||B.raw.socket.on("timeout",rMn),B.raw.socket._meta={context:N,request:B,reply:G})}}function nMn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function rMn(){let{context:e,request:t,reply:n}=this._meta;ACn(e.onTimeout,t,n,aMn)}function pat(e){if(typeof e!="string")throw new jCn;if(e=e.toUpperCase(),!this[nde].bodyless.has(e)&&!this[nde].bodywith.has(e))throw new UCn(e);return e}function hat(e,t,n){if(this[nde].bodyless.has(e)&&n?.body)throw new FCn(e,t)}function yat(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new HCn(e)}function iMn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new qCn(e)}function mat(e,t,n){if(n.sent!==!0){if(e!=null){n[gat]=!0,n.send(e);return}t[WCn]=t.raw,t[lat].preParsing!==null?vCn(t[lat].preParsing,t,n,eat.bind(t.server)):eat.call(t.server,null,t,n)}}function sMn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=fat.filter(i=>Object.hasOwn(e,i));r.length>0&&eMn(r.join(", "));for(let i of fat)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function oMn(){this.keepAliveConnections.delete(this.socket)}function aMn(){}Sat.exports={buildRouting:tMn,validateBodyLimitOption:yat,buildRouterOptions:sMn}});var wat=w((WKr,Rat)=>{"use strict";var cMn=Xle(),Eat=BW(),bat=ZW(),uMn=YW(),{kRoutePrefix:lMn,kCanSetNotFoundHandler:WM,kFourOhFourLevelInstance:KM,kFourOhFourContext:vh,kHooks:dMn,kErrorHandler:Tat}=Ys(),{lifecycleHooks:fMn}=GS(),{buildErrorHandler:pMn}=pM(),{FST_ERR_NOT_FOUND:hMn}=Vo(),{createChildLogger:vat}=dM(),{getGenReqId:Aat}=A4();function mMn(e){let{logger:t,disableRequestLogging:n}=e,r=cMn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[KM]=f,f[WM]=!0,r.onBadUrl=r.onBadUrl.bind(f),r.defaultRoute=r.defaultRoute.bind(f)}function o(f,p){let{url:h,method:m}=f.raw,y=`Route ${m}:${h} not found`;(typeof n=="function"?n(f.raw):n)||f.log.info(y),p.code(404).send({message:y,error:"Not Found",statusCode:404})}function a(){return function(p,h,m){let y=this[KM][vh],g=Aat(y.server,h),E=vat(y,t,h,g),S=new bat(g,null,h,null,E,y),_=new Eat(m,S,E);i(S,_)}}function c(f,p){let h=Object.assign({},f[vh]);h.onSend=p.onSend,p[vh]=h}function u(f,p,h,m){this[WM]===void 0&&(this[WM]=!0),this[vh]===void 0&&(this[vh]=null);let y=this,g=this[lMn]||"/";if(this[WM]===!1)throw new Error(`Not found handler already set for Fastify instance with prefix: '${g}'`);typeof f=="object"&&(f.preHandler&&(Array.isArray(f.preHandler)?f.preHandler=f.preHandler.map(E=>E.bind(y)):f.preHandler=f.preHandler.bind(y)),f.preValidation&&(Array.isArray(f.preValidation)?f.preValidation=f.preValidation.map(E=>E.bind(y)):f.preValidation=f.preValidation.bind(y))),typeof f=="function"&&(p=f,f=void 0),f=f||{},p?(this[KM][WM]=!1,p=p.bind(this),i=p):(p=o,i=o),this.after((E,S)=>{l.call(this,g,f,p,h,m),S(E)})}function l(f,p,h,m,y){let g=new uMn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let E=this[vh];for(let S of fMn){let _=this[dMn][S].concat(p[S]||[]).map(b=>b.bind(this));E[S]=_.length?_:null}E.errorHandler=p.errorHandler?pMn(this[Tat],p.errorHandler):this[Tat]}),this[vh]!==null&&f==="/"){Object.assign(this[vh],g);return}this[KM][vh]=g,r.all(f+(f.endsWith("/")?"*":"/*"),y,g),r.all(f,y,g)}function d(f,p){let h=this[KM][vh],m=Aat(h.server,f),y=vat(h,t,f,m);y.info({req:f},"incoming request");let g=new bat(m,null,f,null,y,h),E=new Eat(p,g,y);g.log.warn("the default handler for 404 did not catch this, this is likely a fastify bug, please report it"),g.log.warn(r.prettyPrint()),E.code(404).send(new hMn)}}Rat.exports=mMn});var kat=w((KKr,z4)=>{"use strict";z4.exports=Hn;z4.exports.default=Hn;var gMn={type:"object",additionalProperties:!1,properties:{connectionTimeout:{type:"integer",default:0},keepAliveTimeout:{type:"integer",default:72e3},forceCloseConnections:{oneOf:[{type:"string",pattern:"idle"},{type:"boolean"}]},maxRequestsPerSocket:{type:"integer",default:0,nullable:!0},requestTimeout:{type:"integer",default:0},handlerTimeout:{type:"integer",default:0},bodyLimit:{type:"integer",default:1048576},caseSensitive:{type:"boolean",default:!0},allowUnsafeRegex:{type:"boolean",default:!1},http2:{type:"boolean"},https:{if:{not:{oneOf:[{type:"boolean"},{type:"null"},{type:"object",additionalProperties:!1,required:["allowHTTP1"],properties:{allowHTTP1:{type:"boolean"}}}]}},then:{setDefaultValue:!0}},ignoreTrailingSlash:{type:"boolean",default:!1},ignoreDuplicateSlashes:{type:"boolean",default:!1},disableRequestLogging:{default:!1},maxParamLength:{type:"integer",default:100},onProtoPoisoning:{type:"string",default:"error"},onConstructorPoisoning:{type:"string",default:"error"},pluginTimeout:{type:"integer",default:1e4},requestIdHeader:{anyOf:[{type:"boolean"},{type:"string"}],default:!1},requestIdLogLabel:{type:"string",default:"reqId"},http2SessionTimeout:{type:"integer",default:72e3},exposeHeadRoutes:{type:"boolean",default:!0},useSemicolonDelimiter:{type:"boolean",default:!1},routerOptions:{type:"object",additionalProperties:!0,properties:{ignoreTrailingSlash:{type:"boolean",default:!1},ignoreDuplicateSlashes:{type:"boolean",default:!1},maxParamLength:{type:"integer",default:100},allowUnsafeRegex:{type:"boolean",default:!1},useSemicolonDelimiter:{type:"boolean",default:!1}}},constraints:{type:"object",additionalProperties:{type:"object",required:["name","storage","validate","deriveConstraint"],additionalProperties:!0,properties:{name:{type:"string"},storage:{},validate:{},deriveConstraint:{}}}}}},yMn=Object.prototype.hasOwnProperty,SMn=new RegExp("idle","u");function Hn(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0;if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){e.connectionTimeout===void 0&&(e.connectionTimeout=0),e.keepAliveTimeout===void 0&&(e.keepAliveTimeout=72e3),e.maxRequestsPerSocket===void 0&&(e.maxRequestsPerSocket=0),e.requestTimeout===void 0&&(e.requestTimeout=0),e.handlerTimeout===void 0&&(e.handlerTimeout=0),e.bodyLimit===void 0&&(e.bodyLimit=1048576),e.caseSensitive===void 0&&(e.caseSensitive=!0),e.allowUnsafeRegex===void 0&&(e.allowUnsafeRegex=!1),e.ignoreTrailingSlash===void 0&&(e.ignoreTrailingSlash=!1),e.ignoreDuplicateSlashes===void 0&&(e.ignoreDuplicateSlashes=!1),e.disableRequestLogging===void 0&&(e.disableRequestLogging=!1),e.maxParamLength===void 0&&(e.maxParamLength=100),e.onProtoPoisoning===void 0&&(e.onProtoPoisoning="error"),e.onConstructorPoisoning===void 0&&(e.onConstructorPoisoning="error"),e.pluginTimeout===void 0&&(e.pluginTimeout=1e4),e.requestIdHeader===void 0&&(e.requestIdHeader=!1),e.requestIdLogLabel===void 0&&(e.requestIdLogLabel="reqId"),e.http2SessionTimeout===void 0&&(e.http2SessionTimeout=72e3),e.exposeHeadRoutes===void 0&&(e.exposeHeadRoutes=!0),e.useSemicolonDelimiter===void 0&&(e.useSemicolonDelimiter=!1);let m=o;for(let y in e)yMn.call(gMn.properties,y)||delete e[y];if(m===o){let y=e.connectionTimeout,g=o;if(!(typeof y=="number"&&!(y%1)&&!isNaN(y)&&isFinite(y))){let E=typeof y,S;if(S===void 0)if(E==="boolean"||y===null||E==="string"&&y&&y==+y&&!(y%1))S=+y;else return Hn.errors=[{instancePath:t+"/connectionTimeout",schemaPath:"#/properties/connectionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;S!==void 0&&(y=S,e!==void 0&&(e.connectionTimeout=S))}var a=g===o;if(a){let E=e.keepAliveTimeout,S=o;if(!(typeof E=="number"&&!(E%1)&&!isNaN(E)&&isFinite(E))){let b=typeof E,T;if(T===void 0)if(b==="boolean"||E===null||b==="string"&&E&&E==+E&&!(E%1))T=+E;else return Hn.errors=[{instancePath:t+"/keepAliveTimeout",schemaPath:"#/properties/keepAliveTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;T!==void 0&&(E=T,e!==void 0&&(e.keepAliveTimeout=T))}var a=S===o;if(a){if(e.forceCloseConnections!==void 0){let b=e.forceCloseConnections,T=o,A=o,R=!1,k=null,x=o;if(typeof b!="string"){let D=typeof b,j;if(j===void 0)if(D=="number"||D=="boolean")j=""+b;else if(b===null)j="";else{let V={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[V]:s.push(V),o++}j!==void 0&&(b=j,e!==void 0&&(e.forceCloseConnections=j))}if(o===x&&typeof b=="string"&&!SMn.test(b)){let D={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/0/pattern",keyword:"pattern",params:{pattern:"idle"},message:'must match pattern "idle"'};s===null?s=[D]:s.push(D),o++}var c=x===o;c&&(R=!0,k=0);let N=o;if(typeof b!="boolean"){let D;if(D===void 0)if(b==="false"||b===0||b===null)D=!1;else if(b==="true"||b===1)D=!0;else{let j={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/1/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[j]:s.push(j),o++}D!==void 0&&(b=D,e!==void 0&&(e.forceCloseConnections=D))}var c=N===o;if(c&&R?(R=!1,k=[k,1]):c&&(R=!0,k=1),R)o=A,s!==null&&(A?s.length=A:s=null);else{let D={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf",keyword:"oneOf",params:{passingSchemas:k},message:"must match exactly one schema in oneOf"};return s===null?s=[D]:s.push(D),o++,Hn.errors=s,!1}var a=T===o}else var a=!0;if(a){let b=e.maxRequestsPerSocket,T=o;if(!(typeof b=="number"&&!(b%1)&&!isNaN(b)&&isFinite(b))&&b!==null){let R=typeof b,k;if(k===void 0)if(R==="boolean"||b===null||R==="string"&&b&&b==+b&&!(b%1))k=+b;else if(b===""||b===0||b===!1)k=null;else return Hn.errors=[{instancePath:t+"/maxRequestsPerSocket",schemaPath:"#/properties/maxRequestsPerSocket/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;k!==void 0&&(b=k,e!==void 0&&(e.maxRequestsPerSocket=k))}var a=T===o;if(a){let R=e.requestTimeout,k=o;if(!(typeof R=="number"&&!(R%1)&&!isNaN(R)&&isFinite(R))){let N=typeof R,P;if(P===void 0)if(N==="boolean"||R===null||N==="string"&&R&&R==+R&&!(R%1))P=+R;else return Hn.errors=[{instancePath:t+"/requestTimeout",schemaPath:"#/properties/requestTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;P!==void 0&&(R=P,e!==void 0&&(e.requestTimeout=P))}var a=k===o;if(a){let N=e.handlerTimeout,P=o;if(!(typeof N=="number"&&!(N%1)&&!isNaN(N)&&isFinite(N))){let j=typeof N,V;if(V===void 0)if(j==="boolean"||N===null||j==="string"&&N&&N==+N&&!(N%1))V=+N;else return Hn.errors=[{instancePath:t+"/handlerTimeout",schemaPath:"#/properties/handlerTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;V!==void 0&&(N=V,e!==void 0&&(e.handlerTimeout=V))}var a=P===o;if(a){let j=e.bodyLimit,V=o;if(!(typeof j=="number"&&!(j%1)&&!isNaN(j)&&isFinite(j))){let B=typeof j,G;if(G===void 0)if(B==="boolean"||j===null||B==="string"&&j&&j==+j&&!(j%1))G=+j;else return Hn.errors=[{instancePath:t+"/bodyLimit",schemaPath:"#/properties/bodyLimit/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;G!==void 0&&(j=G,e!==void 0&&(e.bodyLimit=G))}var a=V===o;if(a){let B=e.caseSensitive,G=o;if(typeof B!="boolean"){let q;if(q===void 0)if(B==="false"||B===0||B===null)q=!1;else if(B==="true"||B===1)q=!0;else return Hn.errors=[{instancePath:t+"/caseSensitive",schemaPath:"#/properties/caseSensitive/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;q!==void 0&&(B=q,e!==void 0&&(e.caseSensitive=q))}var a=G===o;if(a){let q=e.allowUnsafeRegex,C=o;if(typeof q!="boolean"){let U;if(U===void 0)if(q==="false"||q===0||q===null)U=!1;else if(q==="true"||q===1)U=!0;else return Hn.errors=[{instancePath:t+"/allowUnsafeRegex",schemaPath:"#/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;U!==void 0&&(q=U,e!==void 0&&(e.allowUnsafeRegex=U))}var a=C===o;if(a){if(e.http2!==void 0){let U=e.http2,M=o;if(typeof U!="boolean"){let F;if(F===void 0)if(U==="false"||U===0||U===null)F=!1;else if(U==="true"||U===1)F=!0;else return Hn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;F!==void 0&&(U=F,e!==void 0&&(e.http2=F))}var a=M===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,M=o,H=o,F=!0,W=o,$=o,ie=o,Re=o,Te=!1,K=null,Q=o;if(typeof U!="boolean"){let Se;if(Se===void 0)if(U==="false"||U===0||U===null)Se=!1;else if(U==="true"||U===1)Se=!0;else{let Ot={};s===null?s=[Ot]:s.push(Ot),o++}Se!==void 0&&(U=Se,e!==void 0&&(e.https=Se))}var u=Q===o;u&&(Te=!0,K=0);let ae=o;if(U!==null){let Se;if(Se===void 0)if(U===""||U===0||U===!1)Se=null;else{let Ot={};s===null?s=[Ot]:s.push(Ot),o++}Se!==void 0&&(U=Se,e!==void 0&&(e.https=Se))}var u=ae===o;if(u&&Te)Te=!1,K=[K,1];else{u&&(Te=!0,K=1);let Se=o;if(o===Se)if(U&&typeof U=="object"&&!Array.isArray(U)){let Be;if(U.allowHTTP1===void 0&&(Be="allowHTTP1")){let Dn={};s===null?s=[Dn]:s.push(Dn),o++}else{let Dn=o;for(let ur in U)ur!=="allowHTTP1"&&delete U[ur];if(Dn===o&&U.allowHTTP1!==void 0){let ur=U.allowHTTP1;if(typeof ur!="boolean"){let tn;if(tn===void 0)if(ur==="false"||ur===0||ur===null)tn=!1;else if(ur==="true"||ur===1)tn=!0;else{let lr={};s===null?s=[lr]:s.push(lr),o++}tn!==void 0&&(ur=tn,U!==void 0&&(U.allowHTTP1=tn))}}}}else{let Be={};s===null?s=[Be]:s.push(Be),o++}var u=Se===o;u&&Te?(Te=!1,K=[K,2]):u&&(Te=!0,K=2)}if(Te)o=Re,s!==null&&(Re?s.length=Re:s=null);else{let Se={};s===null?s=[Se]:s.push(Se),o++}var l=ie===o;if(l){let Se={};s===null?s=[Se]:s.push(Se),o++}else o=$,s!==null&&($?s.length=$:s=null);var d=W===o;if(o=H,s!==null&&(H?s.length=H:s=null),d){let Se=o;e.https=!0;var d=Se===o;F=d}if(!F){let Se={instancePath:t+"/https",schemaPath:"#/properties/https/if",keyword:"if",params:{failingKeyword:"then"},message:'must match "then" schema'};return s===null?s=[Se]:s.push(Se),o++,Hn.errors=s,!1}var a=M===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,M=o;if(typeof U!="boolean"){let F;if(F===void 0)if(U==="false"||U===0||U===null)F=!1;else if(U==="true"||U===1)F=!0;else return Hn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;F!==void 0&&(U=F,e!==void 0&&(e.ignoreTrailingSlash=F))}var a=M===o;if(a){let F=e.ignoreDuplicateSlashes,W=o;if(typeof F!="boolean"){let ie;if(ie===void 0)if(F==="false"||F===0||F===null)ie=!1;else if(F==="true"||F===1)ie=!0;else return Hn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;ie!==void 0&&(F=ie,e!==void 0&&(e.ignoreDuplicateSlashes=ie))}var a=W===o;if(a){let ie=e.maxParamLength,Re=o;if(!(typeof ie=="number"&&!(ie%1)&&!isNaN(ie)&&isFinite(ie))){let K=typeof ie,Q;if(Q===void 0)if(K==="boolean"||ie===null||K==="string"&&ie&&ie==+ie&&!(ie%1))Q=+ie;else return Hn.errors=[{instancePath:t+"/maxParamLength",schemaPath:"#/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;Q!==void 0&&(ie=Q,e!==void 0&&(e.maxParamLength=Q))}var a=Re===o;if(a){let K=e.onProtoPoisoning,Q=o;if(typeof K!="string"){let ge=typeof K,Se;if(Se===void 0)if(ge=="number"||ge=="boolean")Se=""+K;else if(K===null)Se="";else return Hn.errors=[{instancePath:t+"/onProtoPoisoning",schemaPath:"#/properties/onProtoPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Se!==void 0&&(K=Se,e!==void 0&&(e.onProtoPoisoning=Se))}var a=Q===o;if(a){let ge=e.onConstructorPoisoning,Se=o;if(typeof ge!="string"){let Be=typeof ge,Dn;if(Dn===void 0)if(Be=="number"||Be=="boolean")Dn=""+ge;else if(ge===null)Dn="";else return Hn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Dn!==void 0&&(ge=Dn,e!==void 0&&(e.onConstructorPoisoning=Dn))}var a=Se===o;if(a){let Be=e.pluginTimeout,Dn=o;if(!(typeof Be=="number"&&!(Be%1)&&!isNaN(Be)&&isFinite(Be))){let tn=typeof Be,lr;if(lr===void 0)if(tn==="boolean"||Be===null||tn==="string"&&Be&&Be==+Be&&!(Be%1))lr=+Be;else return Hn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;lr!==void 0&&(Be=lr,e!==void 0&&(e.pluginTimeout=lr))}var a=Dn===o;if(a){let tn=e.requestIdHeader,lr=o,Ju=o,bs=!1,iE=o;if(typeof tn!="boolean"){let Ri;if(Ri===void 0)if(tn==="false"||tn===0||tn===null)Ri=!1;else if(tn==="true"||tn===1)Ri=!0;else{let mp={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/0/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[mp]:s.push(mp),o++}Ri!==void 0&&(tn=Ri,e!==void 0&&(e.requestIdHeader=Ri))}var f=iE===o;if(bs=bs||f,!bs){let Ri=o;if(typeof tn!="string"){let iy=typeof tn,Ar;if(Ar===void 0)if(iy=="number"||iy=="boolean")Ar=""+tn;else if(tn===null)Ar="";else{let Ca={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[Ca]:s.push(Ca),o++}Ar!==void 0&&(tn=Ar,e!==void 0&&(e.requestIdHeader=Ar))}var f=Ri===o;bs=bs||f}if(bs)o=Ju,s!==null&&(Ju?s.length=Ju:s=null);else{let Ri={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[Ri]:s.push(Ri),o++,Hn.errors=s,!1}var a=lr===o;if(a){let Ri=e.requestIdLogLabel,mp=o;if(typeof Ri!="string"){let Ar=typeof Ri,Ca;if(Ca===void 0)if(Ar=="number"||Ar=="boolean")Ca=""+Ri;else if(Ri===null)Ca="";else return Hn.errors=[{instancePath:t+"/requestIdLogLabel",schemaPath:"#/properties/requestIdLogLabel/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Ca!==void 0&&(Ri=Ca,e!==void 0&&(e.requestIdLogLabel=Ca))}var a=mp===o;if(a){let Ar=e.http2SessionTimeout,Ca=o;if(!(typeof Ar=="number"&&!(Ar%1)&&!isNaN(Ar)&&isFinite(Ar))){let $c=typeof Ar,gp;if(gp===void 0)if($c==="boolean"||Ar===null||$c==="string"&&Ar&&Ar==+Ar&&!(Ar%1))gp=+Ar;else return Hn.errors=[{instancePath:t+"/http2SessionTimeout",schemaPath:"#/properties/http2SessionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;gp!==void 0&&(Ar=gp,e!==void 0&&(e.http2SessionTimeout=gp))}var a=Ca===o;if(a){let $c=e.exposeHeadRoutes,gp=o;if(typeof $c!="boolean"){let L;if(L===void 0)if($c==="false"||$c===0||$c===null)L=!1;else if($c==="true"||$c===1)L=!0;else return Hn.errors=[{instancePath:t+"/exposeHeadRoutes",schemaPath:"#/properties/exposeHeadRoutes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;L!==void 0&&($c=L,e!==void 0&&(e.exposeHeadRoutes=L))}var a=gp===o;if(a){let L=e.useSemicolonDelimiter,te=o;if(typeof L!="boolean"){let ye;if(ye===void 0)if(L==="false"||L===0||L===null)ye=!1;else if(L==="true"||L===1)ye=!0;else return Hn.errors=[{instancePath:t+"/useSemicolonDelimiter",schemaPath:"#/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;ye!==void 0&&(L=ye,e!==void 0&&(e.useSemicolonDelimiter=ye))}var a=te===o;if(a){if(e.routerOptions!==void 0){let ye=e.routerOptions,at=o;if(o===at)if(ye&&typeof ye=="object"&&!Array.isArray(ye)){ye.ignoreTrailingSlash===void 0&&(ye.ignoreTrailingSlash=!1),ye.ignoreDuplicateSlashes===void 0&&(ye.ignoreDuplicateSlashes=!1),ye.maxParamLength===void 0&&(ye.maxParamLength=100),ye.allowUnsafeRegex===void 0&&(ye.allowUnsafeRegex=!1),ye.useSemicolonDelimiter===void 0&&(ye.useSemicolonDelimiter=!1);let wt=ye.ignoreTrailingSlash,dn=o;if(typeof wt!="boolean"){let bt;if(bt===void 0)if(wt==="false"||wt===0||wt===null)bt=!1;else if(wt==="true"||wt===1)bt=!0;else return Hn.errors=[{instancePath:t+"/routerOptions/ignoreTrailingSlash",schemaPath:"#/properties/routerOptions/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;bt!==void 0&&(wt=bt,ye!==void 0&&(ye.ignoreTrailingSlash=bt))}var p=dn===o;if(p){let bt=ye.ignoreDuplicateSlashes,ta=o;if(typeof bt!="boolean"){let wi;if(wi===void 0)if(bt==="false"||bt===0||bt===null)wi=!1;else if(bt==="true"||bt===1)wi=!0;else return Hn.errors=[{instancePath:t+"/routerOptions/ignoreDuplicateSlashes",schemaPath:"#/properties/routerOptions/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;wi!==void 0&&(bt=wi,ye!==void 0&&(ye.ignoreDuplicateSlashes=wi))}var p=ta===o;if(p){let wi=ye.maxParamLength,yp=o;if(!(typeof wi=="number"&&!(wi%1)&&!isNaN(wi)&&isFinite(wi))){let Sp=typeof wi,sE;if(sE===void 0)if(Sp==="boolean"||wi===null||Sp==="string"&&wi&&wi==+wi&&!(wi%1))sE=+wi;else return Hn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;sE!==void 0&&(wi=sE,ye!==void 0&&(ye.maxParamLength=sE))}var p=yp===o;if(p){let Sp=ye.allowUnsafeRegex,sE=o;if(typeof Sp!="boolean"){let eu;if(eu===void 0)if(Sp==="false"||Sp===0||Sp===null)eu=!1;else if(Sp==="true"||Sp===1)eu=!0;else return Hn.errors=[{instancePath:t+"/routerOptions/allowUnsafeRegex",schemaPath:"#/properties/routerOptions/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;eu!==void 0&&(Sp=eu,ye!==void 0&&(ye.allowUnsafeRegex=eu))}var p=sE===o;if(p){let eu=ye.useSemicolonDelimiter,zPt=o;if(typeof eu!="boolean"){let Jv;if(Jv===void 0)if(eu==="false"||eu===0||eu===null)Jv=!1;else if(eu==="true"||eu===1)Jv=!0;else return Hn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;Jv!==void 0&&(eu=Jv,ye!==void 0&&(ye.useSemicolonDelimiter=Jv))}var p=zPt===o}}}}}else return Hn.errors=[{instancePath:t+"/routerOptions",schemaPath:"#/properties/routerOptions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0;if(a)if(e.constraints!==void 0){let ye=e.constraints,at=o;if(o===at)if(ye&&typeof ye=="object"&&!Array.isArray(ye))for(let wt in ye){let dn=ye[wt],bt=o;if(o===bt)if(dn&&typeof dn=="object"&&!Array.isArray(dn)){let ta;if(dn.name===void 0&&(ta="name")||dn.storage===void 0&&(ta="storage")||dn.validate===void 0&&(ta="validate")||dn.deriveConstraint===void 0&&(ta="deriveConstraint"))return Hn.errors=[{instancePath:t+"/constraints/"+wt.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/required",keyword:"required",params:{missingProperty:ta},message:"must have required property '"+ta+"'"}],!1;if(dn.name!==void 0){let Ml=dn.name;if(typeof Ml!="string"){let wi=typeof Ml,yp;if(yp===void 0)if(wi=="number"||wi=="boolean")yp=""+Ml;else if(Ml===null)yp="";else return Hn.errors=[{instancePath:t+"/constraints/"+wt.replace(/~/g,"~0").replace(/\//g,"~1")+"/name",schemaPath:"#/properties/constraints/additionalProperties/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;yp!==void 0&&(Ml=yp,dn!==void 0&&(dn.name=yp))}}}else return Hn.errors=[{instancePath:t+"/constraints/"+wt.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var h=bt===o;if(!h)break}else return Hn.errors=[{instancePath:t+"/constraints",schemaPath:"#/properties/constraints/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0}}}}}}}}}}}}}}}}}}}}}}}}else return Hn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return Hn.errors=s,o===0}z4.exports.defaultInitOptions={connectionTimeout:0,keepAliveTimeout:72e3,maxRequestsPerSocket:0,requestTimeout:0,handlerTimeout:0,bodyLimit:1048576,caseSensitive:!0,allowUnsafeRegex:!1,disableRequestLogging:!1,ignoreTrailingSlash:!1,ignoreDuplicateSlashes:!1,maxParamLength:100,onProtoPoisoning:"error",onConstructorPoisoning:"error",pluginTimeout:1e4,requestIdHeader:!1,requestIdLogLabel:"reqId",http2SessionTimeout:72e3,exposeHeadRoutes:!0,useSemicolonDelimiter:!1,allowErrorHandlerOverride:!0,routerOptions:{ignoreTrailingSlash:!1,ignoreDuplicateSlashes:!1,maxParamLength:100,allowUnsafeRegex:!1,useSemicolonDelimiter:!1}}});var Iat=w((ZKr,W4)=>{"use strict";var V4=kat(),_Mn=xW()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:EMn}=Vo();function bMn(e){let t=_Mn(e);if(!V4(t)){let n=new EMn(JSON.stringify(V4.errors.map(r=>r.message)));throw n.errors=V4.errors,n}return rde(t)}function rde(e){let t=Object.getOwnPropertyNames(e);for(let n of t){let r=e[n];ArrayBuffer.isView(r)&&!(r instanceof DataView)||(e[n]=r&&typeof r=="object"?rde(r):r)}return Object.freeze(e)}W4.exports=bMn;W4.exports.defaultInitOptions=V4.defaultInitOptions;W4.exports.utils={deepFreezeObject:rde}});var Uat=w((YKr,Lat)=>{"use strict";var{kAvvioBoot:TMn,kChildren:xat,kRoutePrefix:Oat,kLogLevel:Nat,kLogSerializers:ide,kHooks:sde,kSchemaController:Qk,kContentTypeParser:Pat,kReply:Cat,kRequest:Mat,kFourOhFour:vMn,kPluginNameChain:Dat,kErrorHandlerAlreadySet:AMn}=Ys(),RMn=BW(),wMn=ZW(),kMn=ule(),IMn=due(),{buildHooks:xMn}=GS(),ZM=Mle();Lat.exports=function(t,n,r){let i=ZM.registerPlugin.call(t,n),s=ZM.getPluginName(n)||ZM.getFuncPreview(n);if(i)return t[Dat].push(s),t;let o=Object.create(t);t[xat].push(o),o.ready=t[TMn].bind(o),o[xat]=[],o[Cat]=RMn.buildReply(o[Cat]),o[Mat]=wMn.buildRequest(o[Mat]),o[Pat]=IMn.helpers.buildContentTypeParser(o[Pat]),o[sde]=xMn(o[sde]),o[Oat]=OMn(o[Oat],r.prefix),o[Nat]=r.logLevel||o[Nat],o[Qk]=kMn.buildSchemaController(t[Qk]),o.getSchema=o[Qk].getSchema.bind(o[Qk]),o.getSchemas=o[Qk].getSchemas.bind(o[Qk]),o[ZM.kRegisteredPlugins]=Object.create(o[ZM.kRegisteredPlugins]),o[Dat]=[s],o[AMn]=!1,(o[ide]||r.logSerializers)&&(o[ide]=Object.assign(Object.create(o[ide]),r.logSerializers)),r.prefix&&o[vMn].arrange404(o);for(let a of o[sde].onRegister)a.call(t,o,r);return o};function OMn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Bat=w(Ah=>{"use strict";Object.defineProperty(Ah,"__esModule",{value:!0});Ah.parseCookie=Hat;Ah.parse=Hat;Ah.stringifyCookie=LMn;Ah.stringifySetCookie=K4;Ah.serialize=K4;Ah.parseSetCookie=UMn;Ah.stringifySetCookie=K4;Ah.serialize=K4;var jat=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Fat=/^[\u0021-\u003A\u003C-\u007E]*$/,NMn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,PMn=/^[\u0020-\u003A\u003D-\u007E]*$/,CMn=/^-?\d+$/,MMn=Object.prototype.toString,DMn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function Hat(e,t){let n=new DMn,r=e.length;if(r<2)return n;let i=t?.decode||qat,s=0;do{let o=ade(e,s,r);if(o===-1)break;let a=ode(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=e_(e,s,o);n[c]===void 0&&(n[c]=i(e_(e,o+1,a))),s=a+1}while(sr;){let s=e.charCodeAt(i-1);if(s!==32&&s!==9)break;i--}return e.slice(r,i)}function qat(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function jMn(e){return MMn.call(e)==="[object Date]"}});var zat=w((XKr,Z4)=>{"use strict";var{format:cde}=Y("node:util");function FMn(e){return Gat({...e,name:"DeprecationWarning"})}function Gat({name:e,code:t,message:n,unlimited:r=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!n)throw new Error("Warning message must not be empty");if(typeof r!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let i={[e]:function(o,a,c){s.emitted===!0&&s.unlimited!==!0||(s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code))}};r&&(i={[e]:function(o,a,c){s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code)}});let s=i[e];return s.emitted=!1,s.message=n,s.unlimited=r,s.code=t,s.format=function(o,a,c){let u;return o&&a&&c?u=cde(n,o,a,c):o&&a?u=cde(n,o,a):o?u=cde(n,o):u=n,u},s}var ude={createWarning:Gat,createDeprecation:FMn};Z4.exports=ude;Z4.exports.default=ude;Z4.exports.processWarning=ude});var Kat=w((QKr,Wat)=>{"use strict";var{URL:Vat}=Y("node:url"),lde="http://localhost";Wat.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=lde+t);let r=typeof t=="object"?Object.assign(new Vat(lde),t):new Vat(t,lde);if(typeof n=="string"){n=new URLSearchParams(n);for(let i of n.keys()){r.searchParams.delete(i);for(let s of n.getAll(i))r.searchParams.append(i,s)}}else{let i=Object.assign({},t.query,n);for(let s in i){let o=i[s];if(Array.isArray(o)){r.searchParams.delete(s);for(let a of o)r.searchParams.append(s,a)}else r.searchParams.set(s,o)}}return r}});var Zat=w(($Kr,dde)=>{"use strict";var{randomUUID:HMn}=Y("node:crypto"),{Readable:qMn}=Y("node:stream"),$k;function BMn(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function GMn(e){$k=$k??new TextEncoder;let t=`----formdata-${HMn()}`,n=`--${t}\r +`))}};iat.exports=ude});var aat=w((O3r,oat)=>{"use strict";var sMn=sat(),tK={STATIC:0,PARAMETRIC:1,WILDCARD:2},J4=class{constructor(){this.isLeafNode=!1,this.routes=null,this.handlerStorage=null}addRoute(t,n){this.routes===null&&(this.routes=[]),this.handlerStorage===null&&(this.handlerStorage=new sMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},X4=class extends J4{constructor(){super(),this.staticChildren={}}findStaticMatchingChild(t,n){let r=this.staticChildren[t.charAt(n)];return r===void 0||!r.matchPrefix(t,n)?null:r}getStaticChild(t,n=0){if(t.length===n)return this;let r=this.findStaticMatchingChild(t,n);return r?r.getStaticChild(t,n+r.prefix.length):null}createStaticChild(t){if(t.length===0)return this;let n=this.staticChildren[t.charAt(0)];if(n){let i=1;for(;i(i.regex&&i.regex.source)===n);return r||null}createParametricChild(t,n,r){let i=this.getParametricChild(t);return i?(i.nodePaths.add(r),i):(i=new $4(t,n,r),this.parametricChildren.push(i),this.parametricChildren.sort((s,o)=>s.isRegex?o.isRegex?s.staticSuffix===null?1:o.staticSuffix===null?-1:o.staticSuffix.endsWith(s.staticSuffix)?1:s.staticSuffix.endsWith(o.staticSuffix)?-1:0:-1:1),i)}getWildcardChild(){return this.wildcardChild}createWildcardChild(){return this.wildcardChild=this.getWildcardChild()||new eK,this.wildcardChild}split(t,n){let r=this.prefix.slice(0,n),i=this.prefix.slice(n);this.prefix=i,this._compilePrefixMatch();let s=new e(r);return s.staticChildren[i.charAt(0)]=this,t.staticChildren[r.charAt(0)]=s,s}getNextNode(t,n,r,i){let s=this.findStaticMatchingChild(t,n),o=0;if(s===null){if(this.parametricChildren.length===0)return this.wildcardChild;s=this.parametricChildren[0],o=1}this.wildcardChild!==null&&r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.wildcardChild});for(let a=this.parametricChildren.length-1;a>=o;a--)r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.parametricChildren[a]});return s}_compilePrefixMatch(){if(this.prefix.length===1){this.matchPrefix=()=>!0;return}let t=[];for(let n=1;n{"use strict";var oMn=Y("node:assert");function $M(){if(!(this instanceof $M))return new $M;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}$M.prototype.set=function(e,t){if(typeof e!="string")throw new TypeError("Version should be a string");let[n,r,i]=e.split(".",3);if(isNaN(n))throw new TypeError("Major version must be a numeric value");return n=Number(n),r=Number(r)||0,i=Number(i)||0,n>=this.maxMajor&&(this.maxMajor=n,this.store.set("x",t),this.store.set("*",t),this.store.set("x.x",t),this.store.set("x.x.x",t)),r>=(this.maxMinors[n]||0)&&(this.maxMinors[n]=r,this.store.set(`${n}.x`,t),this.store.set(`${n}.x.x`,t)),i>=(this.maxPatches[`${n}.${r}`]||0)&&(this.maxPatches[`${n}.${r}`]=i,this.store.set(`${n}.${r}.x`,t)),this.store.set(`${n}.${r}.${i}`,t),this};$M.prototype.get=function(e){return this.store.get(e)};cat.exports={name:"version",mustMatchWhenDerived:!0,storage:$M,validate(e){oMn(typeof e=="string","Version should be a string")}}});var dat=w((N3r,lat)=>{"use strict";var aMn=Y("node:assert");function cMn(){let e=new Map,t=[];return{get:n=>{let r=e.get(n);if(r)return r;for(let i of t)if(i.host.test(n))return i.value},set:(n,r)=>{n instanceof RegExp?t.push({host:n,value:r}):e.set(n,r)}}}lat.exports={name:"host",mustMatchWhenDerived:!1,storage:cMn,validate(e){aMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var pat=w((C3r,fat)=>{"use strict";var uMn=uat(),lMn=dat(),lde=Y("node:assert"),dde=class{constructor(t){if(this.strategies={version:uMn,host:lMn},this.strategiesInUse=new Set,this.asyncStrategiesInUse=new Set,t)for(let n of Object.values(t))this.addConstraintStrategy(n)}isStrategyUsed(t){return this.strategiesInUse.has(t)||this.asyncStrategiesInUse.has(t)}hasConstraintStrategy(t){let n=this.strategies[t];return n!==void 0?n.isCustom||this.isStrategyUsed(t):!1}addConstraintStrategy(t){if(lde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),lde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),lde(t.deriveConstraint&&typeof t.deriveConstraint=="function","strategy.deriveConstraint function is required."),this.strategies[t.name]&&this.strategies[t.name].isCustom)throw new Error(`There already exists a custom constraint with the name ${t.name}.`);if(this.isStrategyUsed(t.name))throw new Error(`There already exists a route with ${t.name} constraint.`);t.isCustom=!0,t.isAsync=t.deriveConstraint.length===3,this.strategies[t.name]=t,t.mustMatchWhenDerived&&this.noteUsage({[t.name]:t})}deriveConstraints(t,n,r){let i=this.deriveSyncConstraints(t,n);if(r===void 0)return i;this.deriveAsyncConstraints(i,t,n,r)}deriveSyncConstraints(t,n){}noteUsage(t){if(t){let n=this.strategiesInUse.size;for(let r in t){if(!Object.hasOwn(t,r))continue;this.strategies[r].isAsync?this.asyncStrategiesInUse.add(r):this.strategiesInUse.add(r)}n!==this.strategiesInUse.size&&this._buildDeriveConstraints()}}newStoreForConstraint(t){if(!this.strategies[t])throw new Error(`No strategy registered for constraint key ${t}`);return this.strategies[t].storage()}validateConstraints(t){for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n];if(typeof r>"u")throw new Error("Can't pass an undefined constraint value, must pass null or no key at all");let i=this.strategies[n];if(!i)throw new Error(`No strategy registered for constraint key ${n}`);i.validate&&i.validate(r)}}deriveAsyncConstraints(t,n,r,i){let s=this.asyncStrategiesInUse.size;if(s===0){i(null,t);return}t=t||{};for(let o of this.asyncStrategiesInUse)this.strategies[o].deriveConstraint(n,r,(c,u)=>{if(c!==null){i(c);return}t[o]=u,--s===0&&i(null,t)})}_buildDeriveConstraints(){if(this.strategiesInUse.size===0)return;let t=["return {"];for(let n of this.strategiesInUse){let r=this.strategies[n];r.isCustom?t.push(` ${r.name}: this.strategies.${n}.deriveConstraint(req, ctx),`):n==="version"?t.push(" version: req.headers['accept-version'],"):t.push(" host: req.headers.host || req.headers[':authority'],")}t.push("}"),this.deriveSyncConstraints=new Function("req","ctx",t.join(` +`)).bind(this)}};fat.exports=dde});var mat=w((M3r,hat)=>{"use strict";var dMn=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];hat.exports=dMn});var Sat=w((D3r,yat)=>{"use strict";function gat(e,t){return e===50?t===53?"%":t===51?"#":t===52?"$":t===54?"&":t===66||t===98?"+":t===67||t===99?",":t===70||t===102?"/":null:e===51?t===65||t===97?":":t===66||t===98?";":t===68||t===100?"=":t===70||t===102?"?":null:e===52&&t===48?"@":null}function fMn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ls=Y("node:assert"),hMn=Aot(),rI=Wot(),hde=SC(),{prettyPrintTree:mMn}=eat(),{StaticNode:Eat,NODE_TYPES:_at}=aat(),gMn=pat(),nI=mat(),fde=Y4(),{safeDecodeURI:bat,safeDecodeURIComponent:pde}=Sat(),Tat=/^https?:\/\/.*?\//,gT=/(\/:[^/()]*?)\?(\/?)/,vat=/[.*+?^${}()|[\]\\]/g,Aat=/\/\/+/g;if(!rI(Tat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!rI(gT))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!rI(vat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!rI(Aat))throw new Error("the REMOVE_DUPLICATE_SLASHES_REGEXP is not safe, update this module");function bi(e){if(!(this instanceof bi))return new bi(e);e=e||{},this._opts=e,e.defaultRoute?(Ls(typeof e.defaultRoute=="function","The default route must be a function"),this.defaultRoute=e.defaultRoute):this.defaultRoute=null,e.onBadUrl?(Ls(typeof e.onBadUrl=="function","The bad url handler must be a function"),this.onBadUrl=e.onBadUrl):this.onBadUrl=null,e.buildPrettyMeta?(Ls(typeof e.buildPrettyMeta=="function","buildPrettyMeta must be a function"),this.buildPrettyMeta=e.buildPrettyMeta):this.buildPrettyMeta=yMn,e.querystringParser?(Ls(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:hMn.parse(t),this.caseSensitive=e.caseSensitive===void 0?!0:e.caseSensitive,this.ignoreTrailingSlash=e.ignoreTrailingSlash||!1,this.ignoreDuplicateSlashes=e.ignoreDuplicateSlashes||!1,this.maxParamLength=e.maxParamLength||100,this.allowUnsafeRegex=e.allowUnsafeRegex||!1,this.constrainer=new gMn(e.constraints),this.useSemicolonDelimiter=e.useSemicolonDelimiter||!1,this.routes=[],this.trees={}}bi.prototype.on=function(t,n,r,i,s){typeof r=="function"&&(i!==void 0&&(s=i),i=r,r={}),Ls(typeof n=="string","Path should be a string"),Ls(n.length>0,"The path could not be empty"),Ls(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ls(typeof i=="function","Handler should be a function");let o=n.match(gT);if(o){Ls(n.length===o.index+o[0].length,"Optional Parameter needs to be the last parameter of the path");let u=n.replace(gT,"$1$2"),l=n.replace(gT,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=nK(n)),this.ignoreTrailingSlash&&(n=rK(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ls(typeof u=="string","Method should be a string"),Ls(nI.includes(u),`Method '${u}' is not an http method.`),this._on(u,n,r,i,s,a)};bi.prototype._on=function(t,n,r,i,s){let o={};r.constraints!==void 0&&(Ls(typeof r.constraints=="object"&&r.constraints!==null,"Constraints should be an object"),Object.keys(r.constraints).length!==0&&(o=r.constraints)),this.constrainer.validateConstraints(o),this.constrainer.noteUsage(o),this.trees[t]===void 0&&(this.trees[t]=new Eat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Eat(""),this.trees[t].staticChildren["/"]=f}let c=this.trees[t],u=c.prefix.length,l=[];for(let f=0;f<=a.length;f++){if(a.charCodeAt(f)===58&&a.charCodeAt(f+1)===58){f++;continue}let p=a.charCodeAt(f)===58&&a.charCodeAt(f+1)!==58,h=a.charCodeAt(f)===42;if(p||h||f===a.length&&f!==u){let m=a.slice(u,f);this.caseSensitive||(m=m.toLowerCase()),m=m.replaceAll("::",":"),m=m.replaceAll("%","%25"),c=c.createStaticChild(m)}if(p){let m=!1,g=!0,y="",E=[],S=f+1;for(let _=S;;_++){let b=a.charCodeAt(_),T=b===40,A=b===45||b===46,R=b===47||_===a.length;if(T||A||R){let x=a.slice(S,_);if(l.push(x),m=m||T||A,T){let N=kat(a,_),C=a.slice(_,N+1);this.allowUnsafeRegex||Ls(rI(new RegExp(C)),`The regex '${C}' is not safe!`),E.push(wat(C)),_=N+1,g=!0}else E.push(g?"(.*?)":`(${y}|(?:(?!${y}).)*)`),g=!1;let k=_;for(;_0,"The path could not be empty"),Ls(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ls(typeof r>"u"||typeof r=="object"&&!Array.isArray(r)&&r!==null,"Constraints should be an object or undefined.");let i=n.match(gT);if(i){Ls(n.length===i.index+i[0].length,"Optional Parameter needs to be the last parameter of the path");let o=n.replace(gT,"$1$2"),a=n.replace(gT,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=nK(n)),this.ignoreTrailingSlash&&(n=rK(n));let s=Array.isArray(t)?t:[t];for(let o of s)this._off(o,n,r)};bi.prototype._off=function(t,n,r){Ls(typeof t=="string","Method should be a string"),Ls(nI.includes(t),`Method '${t}' is not an http method.`);function i(c){return t!==c.method||n!==c.path}function s(c){return i(c)||!hde(r,c.opts.constraints||{})}let o=r?s:i,a=this.routes.filter(o);this._rebuild(a)};bi.prototype.lookup=function(t,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i===void 0){let s=this.constrainer.deriveConstraints(t,r),o=this.find(t.method,t.url,s);return this.callHandler(o,t,n,r)}this.constrainer.deriveConstraints(t,r,(s,o)=>{if(s!==null){i(s);return}try{let a=this.find(t.method,t.url,o),c=this.callHandler(a,t,n,r);i(null,c)}catch(a){i(a)}})};bi.prototype.callHandler=function(t,n,r,i){return t===null?this._defaultRoute(n,r,i):i===void 0?t.handler(n,r,t.params,t.store,t.searchParams):t.handler.call(i,n,r,t.params,t.store,t.searchParams)};bi.prototype.find=function(t,n,r){let i=this.trees[t];if(i===void 0)return null;n.charCodeAt(0)!==47&&(n=n.replace(Tat,"/")),this.ignoreDuplicateSlashes&&(n=nK(n));let s,o,a;try{s=bat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=rK(n));let c=n;this.caseSensitive===!1&&(n=n.toLowerCase());let u=this.maxParamLength,l=i.prefix.length,d=[],f=n.length,p=[];for(;;){if(l===f&&i.isLeafNode){let y=i.handlerStorage.getMatchingHandler(r);if(y!==null)return{handler:y.handler,store:y.store,params:y._createParamsObject(d),searchParams:this.querystringParser(o)}}let h=i.getNextNode(n,l,p,d.length);if(h===null){if(p.length===0)return null;let y=p.pop();l=y.brotherPathIndex,d.splice(y.paramsCount),h=y.brotherNode}if(i=h,i.kind===_at.STATIC){l+=i.prefix.length;continue}if(i.kind===_at.WILDCARD){let y=c.slice(l);a&&(y=pde(y)),d.push(y),l=f;continue}let m=c.indexOf("/",l);m===-1&&(m=f);let g=c.slice(l,m);if(a&&(g=pde(g)),i.isRegex){let y=i.regex.exec(g);if(y===null)continue;for(let E=1;Eu)return null;d.push(S)}}else{if(g.length>u)return null;d.push(g)}l=m}};bi.prototype._rebuild=function(e){this.reset();for(let t of e){let{method:n,path:r,opts:i,handler:s,store:o}=t;this._on(n,r,i,s,o)}};bi.prototype._defaultRoute=function(e,t,n){if(this.defaultRoute!==null)return n===void 0?this.defaultRoute(e,t):this.defaultRoute.call(n,e,t);t.statusCode=404,t.end()};bi.prototype._onBadUrl=function(e){if(this.onBadUrl===null)return null;let t=this.onBadUrl;return{handler:(n,r,i)=>t(e,n,r),params:{},store:null}};bi.prototype.prettyPrint=function(e={}){let t=e.method;e.buildPrettyMeta=this.buildPrettyMeta.bind(this);let n=null;if(t===void 0){let{version:r,host:i,...s}=this.constrainer.strategies;s[fde.name]=fde;let o=new bi({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[fde.name]:c.method};return{...c,method:"MERGED",opts:{constraints:u}}});o._rebuild(a),n=o.trees.MERGED}else n=this.trees[t];return n==null?"(empty tree)":mMn(n,e)};for(let e in nI){if(!nI.hasOwnProperty(e))continue;let t=nI[e],n=t.toLowerCase();bi.prototype[n]=function(r,i,s){return this.on(t,r,i,s)}}bi.prototype.all=function(e,t,n){this.on(nI,e,t,n)};bi.sanitizeUrlPath=function(t,n){let r=bat(t,n);return r.shouldDecodeParam?pde(r.path):r.path};bi.removeDuplicateSlashes=nK;bi.trimLastSlash=rK;Iat.exports=bi;function Rat(e){return e.replace(vat,"\\$&")}function nK(e){return e.indexOf("//")!==-1?e.replace(Aat,"/"):e}function rK(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function wat(e){return e.charCodeAt(1)===94&&(e=e.slice(0,1)+e.slice(2)),e.charCodeAt(e.length-2)===36&&(e=e.slice(0,e.length-2)+e.slice(e.length-1)),e}function kat(e,t){let n=1;for(;t{"use strict";function gde(e,t,n,r){if(n===void 0){t.header("content-length","0"),r(null,null);return}if(typeof n.resume=="function"){n.on("error",s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),n.resume(),r(null,null);return}if(typeof n.getReader=="function"){n.cancel("Stream cancelled by HEAD route").catch(s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),r(null,null);return}let i=""+Buffer.byteLength(n);t.header("content-length",i),r(null,null)}function SMn(e){return e==null?gde:Array.isArray(e)?[...e,gde]:[e,gde]}xat.exports={parseHeadOnSendHandlers:SMn}});var Jat=w((F3r,Zat)=>{"use strict";var EMn=mde(),_Mn=u4(),Pat=lce(),{onRequestAbortHookRunner:bMn,lifecycleHooks:Nat,preParsingHookRunner:TMn,onTimeoutHookRunner:vMn,onRequestHookRunner:AMn}=KS(),{normalizeSchema:RMn}=_M(),{parseHeadOnSendHandlers:wMn}=Oat(),{compileSchemasForValidation:kMn,compileSchemasForSerialization:IMn}=oce(),{FST_ERR_SCH_VALIDATION_BUILD:xMn,FST_ERR_SCH_SERIALIZATION_BUILD:OMn,FST_ERR_DUPLICATED_ROUTE:PMn,FST_ERR_INVALID_URL:NMn,FST_ERR_HOOK_INVALID_HANDLER:Cat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:CMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:MMn,FST_ERR_ROUTE_HANDLER_NOT_FN:Mat,FST_ERR_ROUTE_MISSING_HANDLER:DMn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:LMn,FST_ERR_ROUTE_METHOD_INVALID:UMn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:FMn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:jMn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:HMn,FST_ERR_HANDLER_TIMEOUT:qMn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:yde}=Ko(),{kRoutePrefix:BMn,kSupportedHTTPMethods:_de,kLogLevel:GMn,kLogSerializers:Dat,kHooks:Lat,kSchemaController:zMn,kOptions:Uat,kReplySerializerDefault:Sde,kReplyIsError:Kat,kRequestPayloadStream:VMn,kDisableRequestLogging:Fat,kSchemaErrorFormatter:WMn,kErrorHandler:jat,kHasBeenDecorated:Hat,kRequestAcceptVersion:Ede,kRouteByFastify:KMn,kRouteContext:qat,kRequestSignal:YMn,kTimeoutTimer:Bat,kOnAbort:ZMn}=$s(),{buildErrorHandler:JMn}=bM(),{createChildLogger:XMn}=EM(),{getGenReqId:QMn}=F4(),{FSTDEP022:$Mn}=xk(),Gat=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function eDn(e){let t=EMn(e),n,r,i,s,o,a,c,u,l,d,f,p,h,m=!1;return{setup(R,x){n=x.avvio,r=x.fourOhFour,i=R.logger,s=x.hasLogger,o=x.setupResponseListeners,a=x.throwIfAlreadyStarted,p=R.exposeHeadRoutes,c=R.disableRequestLogging,typeof c=="function"&&(u=R.disableRequestLogging),l=R.routerOptions.ignoreTrailingSlash,d=R.routerOptions.ignoreDuplicateSlashes,f=Object.hasOwn(R,"return503OnClosing")?R.return503OnClosing:!0,h=x.keepAliveConnections},routing:t.lookup.bind(t),route:T,hasRoute:_,prepareRoute:S,routeHandler:A,closeRoutes:()=>{m=!0},printRoutes:t.prettyPrint.bind(t),addConstraintStrategy:g,hasConstraintStrategy:y,isAsyncConstraint:E,findRoute:b};function g(R){return a("Cannot add constraint strategy!"),t.addConstraintStrategy(R)}function y(R){return t.hasConstraintStrategy(R)}function E(){return t.constrainer.asyncStrategiesInUse.size>0}function S({method:R,url:x,options:k,handler:P,isFastify:N}){if(typeof x!="string")throw new NMn(typeof x);if(!P&&typeof k=="function")P=k,k={};else if(P&&typeof P=="function"){if(Object.prototype.toString.call(k)!=="[object Object]")throw new CMn(R,x);if(k.handler)throw typeof k.handler=="function"?new MMn(R,x):new Mat(R,x)}return k=Object.assign({},k,{method:R,url:x,path:x,handler:P||k&&k.handler}),T.call(this,{options:k,isFastify:N})}function _({options:R}){let x=R.method?.toUpperCase()??"";return t.hasRoute(x,R.url||"",R.constraints)}function b(R){let x=t.find(R.method,R.url||"",R.constraints);return x?{handler:x.handler,params:x.params,searchParams:x.searchParams}:null}function T({options:R,isFastify:x}){a("Cannot add route!");let k={...R},P=k.url||k.path||"";if(!k.handler)throw new DMn(k.method,P);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Mat(k.method,P);Yat(k.bodyLimit),rDn(k.handlerTimeout);let N=k.exposeHeadRoute??p,C=!1,F=!1;if(Array.isArray(k.method))for(let B=0;B0&&k.method!=="HEAD")switch(k.prefixTrailingSlash){case"slash":$.call(this,{path:P,isFastify:x});break;case"no-slash":$.call(this,{path:"",isFastify:x});break;default:$.call(this,{path:"",isFastify:x}),l!==!0&&(d!==!0||!K.endsWith("/"))&&$.call(this,{path:P,prefixing:!0,isFastify:x})}else P[0]==="/"&&K.endsWith("/")?$.call(this,{path:P.slice(1),isFastify:x}):$.call(this,{path:P,isFastify:x});return this;function $({path:B,prefixing:X=!1,isFastify:G=!1}){let M=K+B;if(k.url=M,k.path=M,k.routePath=B,k.prefix=K,k.logLevel=k.logLevel||this[GMn],(this[Dat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Dat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),X===!1)for(let W of this[Lat].onRoute)W.call(this,k);for(let W of Nat)if(k&&W in k){if(Array.isArray(k[W]))for(let ee of k[W]){if(typeof ee!="function")throw new Cat(W,Object.prototype.toString.call(ee));if(W==="onSend"||W==="preSerialization"||W==="onError"||W==="preParsing"){if(ee.constructor.name==="AsyncFunction"&&ee.length===4)throw new yde}else if(W==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new yde}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new yde}else if(k[W]!==void 0&&typeof k[W]!="function")throw new Cat(W,Object.prototype.toString.call(k[W]))}let q=k.constraints||{},U={...k.config,url:M,method:k.method},D=new _Mn({schema:k.schema,handler:k.handler.bind(this),config:U,errorHandler:k.errorHandler,childLoggerFactory:k.childLoggerFactory,bodyLimit:k.bodyLimit,logLevel:k.logLevel,logSerializers:k.logSerializers,attachValidation:k.attachValidation,schemaErrorFormatter:k.schemaErrorFormatter,replySerializer:this[Sde],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:N,prefixTrailingSlash:k.prefixTrailingSlash||"both",server:this,isFastify:G,handlerTimeout:k.handlerTimeout}),j=t.findRoute("HEAD",k.url,q)!==null;try{t.on(k.method,k.url,{constraints:q},A,D)}catch(W){if(!D[KMn])throw W.message.includes(`Method '${k.method}' already declared for route`)?new PMn(k.method,k.url):W}if(this.after((W,ee)=>{D.errorHandler=k.errorHandler?JMn(this[jat],k.errorHandler):this[jat],D._parserOptions.limit=k.bodyLimit||null,D.logLevel=k.logLevel,D.logSerializers=k.logSerializers,D.attachValidation=k.attachValidation,D[Sde]=this[Sde],D.schemaErrorFormatter=k.schemaErrorFormatter||this[WMn]||D.schemaErrorFormatter,n.once("preReady",()=>{for(let se of Nat){let Me=this[Lat][se].concat(k[se]||[]).map(Re=>Re.bind(this));D[se]=Me.length?Me:null}for(;!D.Request[Hat]&&D.Request.parent;)D.Request=D.Request.parent;for(;!D.Reply[Hat]&&D.Reply.parent;)D.Reply=D.Reply.parent;if(r.setContext(this,D),k.schema){D.schema=RMn(D.schema,this.initialConfig);let se=this[zMn],Me=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Me&&se.setupValidator(this[Uat]);try{let Re=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;kMn(D,k.validatorCompiler||se.validatorCompiler,Re)}catch(Re){throw new xMn(k.method,M,Re.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[Uat]);try{IMn(D,k.serializerCompiler||se.serializerCompiler)}catch(Re){throw new OMn(k.method,M,Re.message)}}}),ee(W)}),N&&C&&!F&&!j){let W=wMn(V.onSend);S.call(this,{method:"HEAD",url:B,options:{...V,onSend:W},isFastify:!0})}}}function A(R,x,k,P,N){let C=QMn(P.server,R),F={level:P.logLevel};P.logSerializers&&(F.serializers=P.logSerializers);let V=XMn(P,i,R,C,F);if(V[Fat]=u?!1:c,m===!0&&(R.httpVersionMajor!==2&&x.setHeader("Connection","close"),f)){let M={"Content-Type":"application/json","Content-Length":"80"};x.writeHead(503,M),x.end('{"error":"Service Unavailable","message":"Service Unavailable","statusCode":503}'),V.info({res:{statusCode:503}},"request aborted - refusing to accept new requests as server is closing");return}String.prototype.toLowerCase.call(R.headers.connection||"")==="keep-alive"&&h.has(R.socket)===!1&&(h.add(R.socket),R.socket.on("close",sDn.bind({keepAliveConnections:h,socket:R.socket}))),R.headers[Ede]!==void 0&&(R.headers["accept-version"]=R.headers[Ede],R.headers[Ede]=void 0);let $=new P.Request(C,k,R,N,V,P),B=new P.Reply(x,$,V),X=u?u($):c;V[Fat]=X,X===!1&&V.info({req:$},"incoming request");let G=P.handlerTimeout;if(G>0){let M=new AbortController;$[YMn]=M,$[Bat]=setTimeout(()=>{if(!B.sent){let U=new qMn(G,P.config?.url);M.abort(U),B[Kat]=!0,B.send(U)}},G);let q=()=>{M.signal.aborted||M.abort(),clearTimeout($[Bat])};R.on("close",q),$[ZMn]=q}(s===!0||P.onResponse!==null||G>0)&&o(B),P.onRequest!==null?AMn(P.onRequest,$,B,Wat):Wat(null,$,B),P.onRequestAbort!==null&&R.on("close",()=>{R.aborted&&bMn(P.onRequestAbort,$,tDn.bind(null,B))}),P.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",nDn),$.raw.socket._meta={context:P,request:$,reply:B})}}function tDn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function nDn(){let{context:e,request:t,reply:n}=this._meta;vMn(e.onTimeout,t,n,oDn)}function zat(e){if(typeof e!="string")throw new UMn;if(e=e.toUpperCase(),!this[_de].bodyless.has(e)&&!this[_de].bodywith.has(e))throw new LMn(e);return e}function Vat(e,t,n){if(this[_de].bodyless.has(e)&&n?.body)throw new FMn(e,t)}function Yat(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new jMn(e)}function rDn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new HMn(e)}function Wat(e,t,n){if(n.sent!==!0){if(e!=null){n[Kat]=!0,n.send(e);return}t[VMn]=t.raw,t[qat].preParsing!==null?TMn(t[qat].preParsing,t,n,Pat.bind(t.server)):Pat.call(t.server,null,t,n)}}function iDn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=Gat.filter(i=>Object.hasOwn(e,i));r.length>0&&$Mn(r.join(", "));for(let i of Gat)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function sDn(){this.keepAliveConnections.delete(this.socket)}function oDn(){}Zat.exports={buildRouting:eDn,validateBodyLimitOption:Yat,buildRouterOptions:iDn}});var rct=w((j3r,nct)=>{"use strict";var aDn=mde(),Xat=n4(),Qat=c4(),cDn=u4(),{kRoutePrefix:uDn,kCanSetNotFoundHandler:eD,kFourOhFourLevelInstance:tD,kFourOhFourContext:Ih,kHooks:lDn,kErrorHandler:$at}=$s(),{lifecycleHooks:dDn}=KS(),{buildErrorHandler:fDn}=bM(),{FST_ERR_NOT_FOUND:pDn}=Ko(),{createChildLogger:ect}=EM(),{getGenReqId:tct}=F4();function hDn(e){let{logger:t,disableRequestLogging:n}=e,r=aDn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[tD]=f,f[eD]=!0,r.onBadUrl=r.onBadUrl.bind(f),r.defaultRoute=r.defaultRoute.bind(f)}function o(f,p){let{url:h,method:m}=f.raw,g=`Route ${m}:${h} not found`;(typeof n=="function"?n(f.raw):n)||f.log.info(g),p.code(404).send({message:g,error:"Not Found",statusCode:404})}function a(){return function(p,h,m){let g=this[tD][Ih],y=tct(g.server,h),E=ect(g,t,h,y),S=new Qat(y,null,h,null,E,g),_=new Xat(m,S,E);i(S,_)}}function c(f,p){let h=Object.assign({},f[Ih]);h.onSend=p.onSend,p[Ih]=h}function u(f,p,h,m){this[eD]===void 0&&(this[eD]=!0),this[Ih]===void 0&&(this[Ih]=null);let g=this,y=this[uDn]||"/";if(this[eD]===!1)throw new Error(`Not found handler already set for Fastify instance with prefix: '${y}'`);typeof f=="object"&&(f.preHandler&&(Array.isArray(f.preHandler)?f.preHandler=f.preHandler.map(E=>E.bind(g)):f.preHandler=f.preHandler.bind(g)),f.preValidation&&(Array.isArray(f.preValidation)?f.preValidation=f.preValidation.map(E=>E.bind(g)):f.preValidation=f.preValidation.bind(g))),typeof f=="function"&&(p=f,f=void 0),f=f||{},p?(this[tD][eD]=!1,p=p.bind(this),i=p):(p=o,i=o),this.after((E,S)=>{l.call(this,y,f,p,h,m),S(E)})}function l(f,p,h,m,g){let y=new cDn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let E=this[Ih];for(let S of dDn){let _=this[lDn][S].concat(p[S]||[]).map(b=>b.bind(this));E[S]=_.length?_:null}E.errorHandler=p.errorHandler?fDn(this[$at],p.errorHandler):this[$at]}),this[Ih]!==null&&f==="/"){Object.assign(this[Ih],y);return}this[tD][Ih]=y,r.all(f+(f.endsWith("/")?"*":"/*"),g,y),r.all(f,g,y)}function d(f,p){let h=this[tD][Ih],m=tct(h.server,f),g=ect(h,t,f,m);g.info({req:f},"incoming request");let y=new Qat(m,null,f,null,g,h),E=new Xat(p,y,g);y.log.warn("the default handler for 404 did not catch this, this is likely a fastify bug, please report it"),y.log.warn(r.prettyPrint()),E.code(404).send(new pDn)}}nct.exports=hDn});var ict=w((H3r,iK)=>{"use strict";iK.exports=qn;iK.exports.default=qn;var mDn={type:"object",additionalProperties:!1,properties:{connectionTimeout:{type:"integer",default:0},keepAliveTimeout:{type:"integer",default:72e3},forceCloseConnections:{oneOf:[{type:"string",pattern:"idle"},{type:"boolean"}]},maxRequestsPerSocket:{type:"integer",default:0,nullable:!0},requestTimeout:{type:"integer",default:0},handlerTimeout:{type:"integer",default:0},bodyLimit:{type:"integer",default:1048576},caseSensitive:{type:"boolean",default:!0},allowUnsafeRegex:{type:"boolean",default:!1},http2:{type:"boolean"},https:{if:{not:{oneOf:[{type:"boolean"},{type:"null"},{type:"object",additionalProperties:!1,required:["allowHTTP1"],properties:{allowHTTP1:{type:"boolean"}}}]}},then:{setDefaultValue:!0}},ignoreTrailingSlash:{type:"boolean",default:!1},ignoreDuplicateSlashes:{type:"boolean",default:!1},disableRequestLogging:{default:!1},maxParamLength:{type:"integer",default:100},onProtoPoisoning:{type:"string",default:"error"},onConstructorPoisoning:{type:"string",default:"error"},pluginTimeout:{type:"integer",default:1e4},requestIdHeader:{anyOf:[{type:"boolean"},{type:"string"}],default:!1},requestIdLogLabel:{type:"string",default:"reqId"},http2SessionTimeout:{type:"integer",default:72e3},exposeHeadRoutes:{type:"boolean",default:!0},useSemicolonDelimiter:{type:"boolean",default:!1},routerOptions:{type:"object",additionalProperties:!0,properties:{ignoreTrailingSlash:{type:"boolean",default:!1},ignoreDuplicateSlashes:{type:"boolean",default:!1},maxParamLength:{type:"integer",default:100},allowUnsafeRegex:{type:"boolean",default:!1},useSemicolonDelimiter:{type:"boolean",default:!1}}},constraints:{type:"object",additionalProperties:{type:"object",required:["name","storage","validate","deriveConstraint"],additionalProperties:!0,properties:{name:{type:"string"},storage:{},validate:{},deriveConstraint:{}}}}}},gDn=Object.prototype.hasOwnProperty,yDn=new RegExp("idle","u");function qn(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0;if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){e.connectionTimeout===void 0&&(e.connectionTimeout=0),e.keepAliveTimeout===void 0&&(e.keepAliveTimeout=72e3),e.maxRequestsPerSocket===void 0&&(e.maxRequestsPerSocket=0),e.requestTimeout===void 0&&(e.requestTimeout=0),e.handlerTimeout===void 0&&(e.handlerTimeout=0),e.bodyLimit===void 0&&(e.bodyLimit=1048576),e.caseSensitive===void 0&&(e.caseSensitive=!0),e.allowUnsafeRegex===void 0&&(e.allowUnsafeRegex=!1),e.ignoreTrailingSlash===void 0&&(e.ignoreTrailingSlash=!1),e.ignoreDuplicateSlashes===void 0&&(e.ignoreDuplicateSlashes=!1),e.disableRequestLogging===void 0&&(e.disableRequestLogging=!1),e.maxParamLength===void 0&&(e.maxParamLength=100),e.onProtoPoisoning===void 0&&(e.onProtoPoisoning="error"),e.onConstructorPoisoning===void 0&&(e.onConstructorPoisoning="error"),e.pluginTimeout===void 0&&(e.pluginTimeout=1e4),e.requestIdHeader===void 0&&(e.requestIdHeader=!1),e.requestIdLogLabel===void 0&&(e.requestIdLogLabel="reqId"),e.http2SessionTimeout===void 0&&(e.http2SessionTimeout=72e3),e.exposeHeadRoutes===void 0&&(e.exposeHeadRoutes=!0),e.useSemicolonDelimiter===void 0&&(e.useSemicolonDelimiter=!1);let m=o;for(let g in e)gDn.call(mDn.properties,g)||delete e[g];if(m===o){let g=e.connectionTimeout,y=o;if(!(typeof g=="number"&&!(g%1)&&!isNaN(g)&&isFinite(g))){let E=typeof g,S;if(S===void 0)if(E==="boolean"||g===null||E==="string"&&g&&g==+g&&!(g%1))S=+g;else return qn.errors=[{instancePath:t+"/connectionTimeout",schemaPath:"#/properties/connectionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;S!==void 0&&(g=S,e!==void 0&&(e.connectionTimeout=S))}var a=y===o;if(a){let E=e.keepAliveTimeout,S=o;if(!(typeof E=="number"&&!(E%1)&&!isNaN(E)&&isFinite(E))){let b=typeof E,T;if(T===void 0)if(b==="boolean"||E===null||b==="string"&&E&&E==+E&&!(E%1))T=+E;else return qn.errors=[{instancePath:t+"/keepAliveTimeout",schemaPath:"#/properties/keepAliveTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;T!==void 0&&(E=T,e!==void 0&&(e.keepAliveTimeout=T))}var a=S===o;if(a){if(e.forceCloseConnections!==void 0){let b=e.forceCloseConnections,T=o,A=o,R=!1,x=null,k=o;if(typeof b!="string"){let C=typeof b,F;if(F===void 0)if(C=="number"||C=="boolean")F=""+b;else if(b===null)F="";else{let V={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[V]:s.push(V),o++}F!==void 0&&(b=F,e!==void 0&&(e.forceCloseConnections=F))}if(o===k&&typeof b=="string"&&!yDn.test(b)){let C={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/0/pattern",keyword:"pattern",params:{pattern:"idle"},message:'must match pattern "idle"'};s===null?s=[C]:s.push(C),o++}var c=k===o;c&&(R=!0,x=0);let P=o;if(typeof b!="boolean"){let C;if(C===void 0)if(b==="false"||b===0||b===null)C=!1;else if(b==="true"||b===1)C=!0;else{let F={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/1/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[F]:s.push(F),o++}C!==void 0&&(b=C,e!==void 0&&(e.forceCloseConnections=C))}var c=P===o;if(c&&R?(R=!1,x=[x,1]):c&&(R=!0,x=1),R)o=A,s!==null&&(A?s.length=A:s=null);else{let C={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf",keyword:"oneOf",params:{passingSchemas:x},message:"must match exactly one schema in oneOf"};return s===null?s=[C]:s.push(C),o++,qn.errors=s,!1}var a=T===o}else var a=!0;if(a){let b=e.maxRequestsPerSocket,T=o;if(!(typeof b=="number"&&!(b%1)&&!isNaN(b)&&isFinite(b))&&b!==null){let R=typeof b,x;if(x===void 0)if(R==="boolean"||b===null||R==="string"&&b&&b==+b&&!(b%1))x=+b;else if(b===""||b===0||b===!1)x=null;else return qn.errors=[{instancePath:t+"/maxRequestsPerSocket",schemaPath:"#/properties/maxRequestsPerSocket/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;x!==void 0&&(b=x,e!==void 0&&(e.maxRequestsPerSocket=x))}var a=T===o;if(a){let R=e.requestTimeout,x=o;if(!(typeof R=="number"&&!(R%1)&&!isNaN(R)&&isFinite(R))){let P=typeof R,N;if(N===void 0)if(P==="boolean"||R===null||P==="string"&&R&&R==+R&&!(R%1))N=+R;else return qn.errors=[{instancePath:t+"/requestTimeout",schemaPath:"#/properties/requestTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;N!==void 0&&(R=N,e!==void 0&&(e.requestTimeout=N))}var a=x===o;if(a){let P=e.handlerTimeout,N=o;if(!(typeof P=="number"&&!(P%1)&&!isNaN(P)&&isFinite(P))){let F=typeof P,V;if(V===void 0)if(F==="boolean"||P===null||F==="string"&&P&&P==+P&&!(P%1))V=+P;else return qn.errors=[{instancePath:t+"/handlerTimeout",schemaPath:"#/properties/handlerTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;V!==void 0&&(P=V,e!==void 0&&(e.handlerTimeout=V))}var a=N===o;if(a){let F=e.bodyLimit,V=o;if(!(typeof F=="number"&&!(F%1)&&!isNaN(F)&&isFinite(F))){let $=typeof F,B;if(B===void 0)if($==="boolean"||F===null||$==="string"&&F&&F==+F&&!(F%1))B=+F;else return qn.errors=[{instancePath:t+"/bodyLimit",schemaPath:"#/properties/bodyLimit/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;B!==void 0&&(F=B,e!==void 0&&(e.bodyLimit=B))}var a=V===o;if(a){let $=e.caseSensitive,B=o;if(typeof $!="boolean"){let G;if(G===void 0)if($==="false"||$===0||$===null)G=!1;else if($==="true"||$===1)G=!0;else return qn.errors=[{instancePath:t+"/caseSensitive",schemaPath:"#/properties/caseSensitive/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;G!==void 0&&($=G,e!==void 0&&(e.caseSensitive=G))}var a=B===o;if(a){let G=e.allowUnsafeRegex,M=o;if(typeof G!="boolean"){let U;if(U===void 0)if(G==="false"||G===0||G===null)U=!1;else if(G==="true"||G===1)U=!0;else return qn.errors=[{instancePath:t+"/allowUnsafeRegex",schemaPath:"#/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;U!==void 0&&(G=U,e!==void 0&&(e.allowUnsafeRegex=U))}var a=M===o;if(a){if(e.http2!==void 0){let U=e.http2,D=o;if(typeof U!="boolean"){let j;if(j===void 0)if(U==="false"||U===0||U===null)j=!1;else if(U==="true"||U===1)j=!0;else return qn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;j!==void 0&&(U=j,e!==void 0&&(e.http2=j))}var a=D===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,D=o,H=o,j=!0,W=o,ee=o,se=o,Me=o,Re=!1,z=null,J=o;if(typeof U!="boolean"){let be;if(be===void 0)if(U==="false"||U===0||U===null)be=!1;else if(U==="true"||U===1)be=!0;else{let kt={};s===null?s=[kt]:s.push(kt),o++}be!==void 0&&(U=be,e!==void 0&&(e.https=be))}var u=J===o;u&&(Re=!0,z=0);let oe=o;if(U!==null){let be;if(be===void 0)if(U===""||U===0||U===!1)be=null;else{let kt={};s===null?s=[kt]:s.push(kt),o++}be!==void 0&&(U=be,e!==void 0&&(e.https=be))}var u=oe===o;if(u&&Re)Re=!1,z=[z,1];else{u&&(Re=!0,z=1);let be=o;if(o===be)if(U&&typeof U=="object"&&!Array.isArray(U)){let Ue;if(U.allowHTTP1===void 0&&(Ue="allowHTTP1")){let Ln={};s===null?s=[Ln]:s.push(Ln),o++}else{let Ln=o;for(let lr in U)lr!=="allowHTTP1"&&delete U[lr];if(Ln===o&&U.allowHTTP1!==void 0){let lr=U.allowHTTP1;if(typeof lr!="boolean"){let sn;if(sn===void 0)if(lr==="false"||lr===0||lr===null)sn=!1;else if(lr==="true"||lr===1)sn=!0;else{let dr={};s===null?s=[dr]:s.push(dr),o++}sn!==void 0&&(lr=sn,U!==void 0&&(U.allowHTTP1=sn))}}}}else{let Ue={};s===null?s=[Ue]:s.push(Ue),o++}var u=be===o;u&&Re?(Re=!1,z=[z,2]):u&&(Re=!0,z=2)}if(Re)o=Me,s!==null&&(Me?s.length=Me:s=null);else{let be={};s===null?s=[be]:s.push(be),o++}var l=se===o;if(l){let be={};s===null?s=[be]:s.push(be),o++}else o=ee,s!==null&&(ee?s.length=ee:s=null);var d=W===o;if(o=H,s!==null&&(H?s.length=H:s=null),d){let be=o;e.https=!0;var d=be===o;j=d}if(!j){let be={instancePath:t+"/https",schemaPath:"#/properties/https/if",keyword:"if",params:{failingKeyword:"then"},message:'must match "then" schema'};return s===null?s=[be]:s.push(be),o++,qn.errors=s,!1}var a=D===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,D=o;if(typeof U!="boolean"){let j;if(j===void 0)if(U==="false"||U===0||U===null)j=!1;else if(U==="true"||U===1)j=!0;else return qn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;j!==void 0&&(U=j,e!==void 0&&(e.ignoreTrailingSlash=j))}var a=D===o;if(a){let j=e.ignoreDuplicateSlashes,W=o;if(typeof j!="boolean"){let se;if(se===void 0)if(j==="false"||j===0||j===null)se=!1;else if(j==="true"||j===1)se=!0;else return qn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(j=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=W===o;if(a){let se=e.maxParamLength,Me=o;if(!(typeof se=="number"&&!(se%1)&&!isNaN(se)&&isFinite(se))){let z=typeof se,J;if(J===void 0)if(z==="boolean"||se===null||z==="string"&&se&&se==+se&&!(se%1))J=+se;else return qn.errors=[{instancePath:t+"/maxParamLength",schemaPath:"#/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;J!==void 0&&(se=J,e!==void 0&&(e.maxParamLength=J))}var a=Me===o;if(a){let z=e.onProtoPoisoning,J=o;if(typeof z!="string"){let le=typeof z,be;if(be===void 0)if(le=="number"||le=="boolean")be=""+z;else if(z===null)be="";else return qn.errors=[{instancePath:t+"/onProtoPoisoning",schemaPath:"#/properties/onProtoPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;be!==void 0&&(z=be,e!==void 0&&(e.onProtoPoisoning=be))}var a=J===o;if(a){let le=e.onConstructorPoisoning,be=o;if(typeof le!="string"){let Ue=typeof le,Ln;if(Ln===void 0)if(Ue=="number"||Ue=="boolean")Ln=""+le;else if(le===null)Ln="";else return qn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Ln!==void 0&&(le=Ln,e!==void 0&&(e.onConstructorPoisoning=Ln))}var a=be===o;if(a){let Ue=e.pluginTimeout,Ln=o;if(!(typeof Ue=="number"&&!(Ue%1)&&!isNaN(Ue)&&isFinite(Ue))){let sn=typeof Ue,dr;if(dr===void 0)if(sn==="boolean"||Ue===null||sn==="string"&&Ue&&Ue==+Ue&&!(Ue%1))dr=+Ue;else return qn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;dr!==void 0&&(Ue=dr,e!==void 0&&(e.pluginTimeout=dr))}var a=Ln===o;if(a){let sn=e.requestIdHeader,dr=o,tl=o,Rs=!1,c_=o;if(typeof sn!="boolean"){let Ii;if(Ii===void 0)if(sn==="false"||sn===0||sn===null)Ii=!1;else if(sn==="true"||sn===1)Ii=!0;else{let _p={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/0/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[_p]:s.push(_p),o++}Ii!==void 0&&(sn=Ii,e!==void 0&&(e.requestIdHeader=Ii))}var f=c_===o;if(Rs=Rs||f,!Rs){let Ii=o;if(typeof sn!="string"){let cy=typeof sn,Ar;if(Ar===void 0)if(cy=="number"||cy=="boolean")Ar=""+sn;else if(sn===null)Ar="";else{let ja={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[ja]:s.push(ja),o++}Ar!==void 0&&(sn=Ar,e!==void 0&&(e.requestIdHeader=Ar))}var f=Ii===o;Rs=Rs||f}if(Rs)o=tl,s!==null&&(tl?s.length=tl:s=null);else{let Ii={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[Ii]:s.push(Ii),o++,qn.errors=s,!1}var a=dr===o;if(a){let Ii=e.requestIdLogLabel,_p=o;if(typeof Ii!="string"){let Ar=typeof Ii,ja;if(ja===void 0)if(Ar=="number"||Ar=="boolean")ja=""+Ii;else if(Ii===null)ja="";else return qn.errors=[{instancePath:t+"/requestIdLogLabel",schemaPath:"#/properties/requestIdLogLabel/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;ja!==void 0&&(Ii=ja,e!==void 0&&(e.requestIdLogLabel=ja))}var a=_p===o;if(a){let Ar=e.http2SessionTimeout,ja=o;if(!(typeof Ar=="number"&&!(Ar%1)&&!isNaN(Ar)&&isFinite(Ar))){let su=typeof Ar,bp;if(bp===void 0)if(su==="boolean"||Ar===null||su==="string"&&Ar&&Ar==+Ar&&!(Ar%1))bp=+Ar;else return qn.errors=[{instancePath:t+"/http2SessionTimeout",schemaPath:"#/properties/http2SessionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;bp!==void 0&&(Ar=bp,e!==void 0&&(e.http2SessionTimeout=bp))}var a=ja===o;if(a){let su=e.exposeHeadRoutes,bp=o;if(typeof su!="boolean"){let L;if(L===void 0)if(su==="false"||su===0||su===null)L=!1;else if(su==="true"||su===1)L=!0;else return qn.errors=[{instancePath:t+"/exposeHeadRoutes",schemaPath:"#/properties/exposeHeadRoutes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;L!==void 0&&(su=L,e!==void 0&&(e.exposeHeadRoutes=L))}var a=bp===o;if(a){let L=e.useSemicolonDelimiter,te=o;if(typeof L!="boolean"){let Ee;if(Ee===void 0)if(L==="false"||L===0||L===null)Ee=!1;else if(L==="true"||L===1)Ee=!0;else return qn.errors=[{instancePath:t+"/useSemicolonDelimiter",schemaPath:"#/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;Ee!==void 0&&(L=Ee,e!==void 0&&(e.useSemicolonDelimiter=Ee))}var a=te===o;if(a){if(e.routerOptions!==void 0){let Ee=e.routerOptions,at=o;if(o===at)if(Ee&&typeof Ee=="object"&&!Array.isArray(Ee)){Ee.ignoreTrailingSlash===void 0&&(Ee.ignoreTrailingSlash=!1),Ee.ignoreDuplicateSlashes===void 0&&(Ee.ignoreDuplicateSlashes=!1),Ee.maxParamLength===void 0&&(Ee.maxParamLength=100),Ee.allowUnsafeRegex===void 0&&(Ee.allowUnsafeRegex=!1),Ee.useSemicolonDelimiter===void 0&&(Ee.useSemicolonDelimiter=!1);let It=Ee.ignoreTrailingSlash,dn=o;if(typeof It!="boolean"){let bt;if(bt===void 0)if(It==="false"||It===0||It===null)bt=!1;else if(It==="true"||It===1)bt=!0;else return qn.errors=[{instancePath:t+"/routerOptions/ignoreTrailingSlash",schemaPath:"#/properties/routerOptions/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;bt!==void 0&&(It=bt,Ee!==void 0&&(Ee.ignoreTrailingSlash=bt))}var p=dn===o;if(p){let bt=Ee.ignoreDuplicateSlashes,ra=o;if(typeof bt!="boolean"){let xi;if(xi===void 0)if(bt==="false"||bt===0||bt===null)xi=!1;else if(bt==="true"||bt===1)xi=!0;else return qn.errors=[{instancePath:t+"/routerOptions/ignoreDuplicateSlashes",schemaPath:"#/properties/routerOptions/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;xi!==void 0&&(bt=xi,Ee!==void 0&&(Ee.ignoreDuplicateSlashes=xi))}var p=ra===o;if(p){let xi=Ee.maxParamLength,Tp=o;if(!(typeof xi=="number"&&!(xi%1)&&!isNaN(xi)&&isFinite(xi))){let vp=typeof xi,u_;if(u_===void 0)if(vp==="boolean"||xi===null||vp==="string"&&xi&&xi==+xi&&!(xi%1))u_=+xi;else return qn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;u_!==void 0&&(xi=u_,Ee!==void 0&&(Ee.maxParamLength=u_))}var p=Tp===o;if(p){let vp=Ee.allowUnsafeRegex,u_=o;if(typeof vp!="boolean"){let ou;if(ou===void 0)if(vp==="false"||vp===0||vp===null)ou=!1;else if(vp==="true"||vp===1)ou=!0;else return qn.errors=[{instancePath:t+"/routerOptions/allowUnsafeRegex",schemaPath:"#/properties/routerOptions/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;ou!==void 0&&(vp=ou,Ee!==void 0&&(Ee.allowUnsafeRegex=ou))}var p=u_===o;if(p){let ou=Ee.useSemicolonDelimiter,GCt=o;if(typeof ou!="boolean"){let nA;if(nA===void 0)if(ou==="false"||ou===0||ou===null)nA=!1;else if(ou==="true"||ou===1)nA=!0;else return qn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;nA!==void 0&&(ou=nA,Ee!==void 0&&(Ee.useSemicolonDelimiter=nA))}var p=GCt===o}}}}}else return qn.errors=[{instancePath:t+"/routerOptions",schemaPath:"#/properties/routerOptions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0;if(a)if(e.constraints!==void 0){let Ee=e.constraints,at=o;if(o===at)if(Ee&&typeof Ee=="object"&&!Array.isArray(Ee))for(let It in Ee){let dn=Ee[It],bt=o;if(o===bt)if(dn&&typeof dn=="object"&&!Array.isArray(dn)){let ra;if(dn.name===void 0&&(ra="name")||dn.storage===void 0&&(ra="storage")||dn.validate===void 0&&(ra="validate")||dn.deriveConstraint===void 0&&(ra="deriveConstraint"))return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/required",keyword:"required",params:{missingProperty:ra},message:"must have required property '"+ra+"'"}],!1;if(dn.name!==void 0){let Ul=dn.name;if(typeof Ul!="string"){let xi=typeof Ul,Tp;if(Tp===void 0)if(xi=="number"||xi=="boolean")Tp=""+Ul;else if(Ul===null)Tp="";else return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1")+"/name",schemaPath:"#/properties/constraints/additionalProperties/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Tp!==void 0&&(Ul=Tp,dn!==void 0&&(dn.name=Tp))}}}else return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var h=bt===o;if(!h)break}else return qn.errors=[{instancePath:t+"/constraints",schemaPath:"#/properties/constraints/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0}}}}}}}}}}}}}}}}}}}}}}}}else return qn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return qn.errors=s,o===0}iK.exports.defaultInitOptions={connectionTimeout:0,keepAliveTimeout:72e3,maxRequestsPerSocket:0,requestTimeout:0,handlerTimeout:0,bodyLimit:1048576,caseSensitive:!0,allowUnsafeRegex:!1,disableRequestLogging:!1,ignoreTrailingSlash:!1,ignoreDuplicateSlashes:!1,maxParamLength:100,onProtoPoisoning:"error",onConstructorPoisoning:"error",pluginTimeout:1e4,requestIdHeader:!1,requestIdLogLabel:"reqId",http2SessionTimeout:72e3,exposeHeadRoutes:!0,useSemicolonDelimiter:!1,allowErrorHandlerOverride:!0,routerOptions:{ignoreTrailingSlash:!1,ignoreDuplicateSlashes:!1,maxParamLength:100,allowUnsafeRegex:!1,useSemicolonDelimiter:!1}}});var sct=w((q3r,oK)=>{"use strict";var sK=ict(),SDn=GW()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:EDn}=Ko();function _Dn(e){let t=SDn(e);if(!sK(t)){let n=new EDn(JSON.stringify(sK.errors.map(r=>r.message)));throw n.errors=sK.errors,n}return bde(t)}function bde(e){let t=Object.getOwnPropertyNames(e);for(let n of t){let r=e[n];ArrayBuffer.isView(r)&&!(r instanceof DataView)||(e[n]=r&&typeof r=="object"?bde(r):r)}return Object.freeze(e)}oK.exports=_Dn;oK.exports.defaultInitOptions=sK.defaultInitOptions;oK.exports.utils={deepFreezeObject:bde}});var hct=w((B3r,pct)=>{"use strict";var{kAvvioBoot:bDn,kChildren:oct,kRoutePrefix:act,kLogLevel:cct,kLogSerializers:Tde,kHooks:vde,kSchemaController:iI,kContentTypeParser:uct,kReply:lct,kRequest:dct,kFourOhFour:TDn,kPluginNameChain:fct,kErrorHandlerAlreadySet:vDn}=$s(),ADn=n4(),RDn=c4(),wDn=kle(),kDn=xue(),{buildHooks:IDn}=KS(),nD=Qle();pct.exports=function(t,n,r){let i=nD.registerPlugin.call(t,n),s=nD.getPluginName(n)||nD.getFuncPreview(n);if(i)return t[fct].push(s),t;let o=Object.create(t);t[oct].push(o),o.ready=t[bDn].bind(o),o[oct]=[],o[lct]=ADn.buildReply(o[lct]),o[dct]=RDn.buildRequest(o[dct]),o[uct]=kDn.helpers.buildContentTypeParser(o[uct]),o[vde]=IDn(o[vde]),o[act]=xDn(o[act],r.prefix),o[cct]=r.logLevel||o[cct],o[iI]=wDn.buildSchemaController(t[iI]),o.getSchema=o[iI].getSchema.bind(o[iI]),o.getSchemas=o[iI].getSchemas.bind(o[iI]),o[nD.kRegisteredPlugins]=Object.create(o[nD.kRegisteredPlugins]),o[fct]=[s],o[vDn]=!1,(o[Tde]||r.logSerializers)&&(o[Tde]=Object.assign(Object.create(o[Tde]),r.logSerializers)),r.prefix&&o[TDn].arrange404(o);for(let a of o[vde].onRegister)a.call(t,o,r);return o};function xDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Ect=w(xh=>{"use strict";Object.defineProperty(xh,"__esModule",{value:!0});xh.parseCookie=yct;xh.parse=yct;xh.stringifyCookie=DDn;xh.stringifySetCookie=aK;xh.serialize=aK;xh.parseSetCookie=LDn;xh.stringifySetCookie=aK;xh.serialize=aK;var mct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,gct=/^[\u0021-\u003A\u003C-\u007E]*$/,ODn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,PDn=/^[\u0020-\u003A\u003D-\u007E]*$/,NDn=/^-?\d+$/,CDn=Object.prototype.toString,MDn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function yct(e,t){let n=new MDn,r=e.length;if(r<2)return n;let i=t?.decode||Sct,s=0;do{let o=Rde(e,s,r);if(o===-1)break;let a=Ade(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=iE(e,s,o);n[c]===void 0&&(n[c]=i(iE(e,o+1,a))),s=a+1}while(sr;){let s=e.charCodeAt(i-1);if(s!==32&&s!==9)break;i--}return e.slice(r,i)}function Sct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function UDn(e){return CDn.call(e)==="[object Date]"}});var bct=w((z3r,cK)=>{"use strict";var{format:wde}=Y("node:util");function FDn(e){return _ct({...e,name:"DeprecationWarning"})}function _ct({name:e,code:t,message:n,unlimited:r=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!n)throw new Error("Warning message must not be empty");if(typeof r!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let i={[e]:function(o,a,c){s.emitted===!0&&s.unlimited!==!0||(s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code))}};r&&(i={[e]:function(o,a,c){s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code)}});let s=i[e];return s.emitted=!1,s.message=n,s.unlimited=r,s.code=t,s.format=function(o,a,c){let u;return o&&a&&c?u=wde(n,o,a,c):o&&a?u=wde(n,o,a):o?u=wde(n,o):u=n,u},s}var kde={createWarning:_ct,createDeprecation:FDn};cK.exports=kde;cK.exports.default=kde;cK.exports.processWarning=kde});var Act=w((V3r,vct)=>{"use strict";var{URL:Tct}=Y("node:url"),Ide="http://localhost";vct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Ide+t);let r=typeof t=="object"?Object.assign(new Tct(Ide),t):new Tct(t,Ide);if(typeof n=="string"){n=new URLSearchParams(n);for(let i of n.keys()){r.searchParams.delete(i);for(let s of n.getAll(i))r.searchParams.append(i,s)}}else{let i=Object.assign({},t.query,n);for(let s in i){let o=i[s];if(Array.isArray(o)){r.searchParams.delete(s);for(let a of o)r.searchParams.append(s,a)}else r.searchParams.set(s,o)}}return r}});var Rct=w((W3r,xde)=>{"use strict";var{randomUUID:jDn}=Y("node:crypto"),{Readable:HDn}=Y("node:stream"),sI;function qDn(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function BDn(e){sI=sI??new TextEncoder;let t=`----formdata-${jDn()}`,n=`--${t}\r Content-Disposition: form-data`;let r=c=>c.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),i=c=>c.replace(/\r?\n|\r/g,`\r -`),s=new Uint8Array([13,10]);async function*o(){for(let[c,u]of e)if(typeof u=="string")yield $k.encode(`${n}; name="${r(i(c))}"\r +`),s=new Uint8Array([13,10]);async function*o(){for(let[c,u]of e)if(typeof u=="string")yield sI.encode(`${n}; name="${r(i(c))}"\r \r -`),yield $k.encode(`${i(u)}\r +`),yield sI.encode(`${i(u)}\r `);else{let l=`${n}; name="${r(i(c))}"`;u.name&&(l+=`; filename="${r(u.name)}"`),l+=`\r Content-Type: ${u.type||"application/octet-stream"}\r \r -`,yield $k.encode(l),u.stream?yield*u.stream():yield u,yield s}yield $k.encode(`--${t}--`)}return{stream:qMn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}dde.exports.isFormDataLike=BMn;dde.exports.formDataToStream=GMn});var Xat=w((e3r,Y4)=>{"use strict";var{Readable:Yat,addAbortSignal:zMn}=Y("node:stream"),pde=Y("node:util"),VMn=Bat(),WMn=Y("node:assert"),{createDeprecation:KMn}=zat(),ZMn=Kat(),{isFormDataLike:YMn,formDataToStream:JMn}=Zat(),{EventEmitter:XMn}=Y("node:events"),QMn=KMn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function $Mn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var fde=class extends XMn{constructor(t){super(),this.remoteAddress=t}};function Jat(e){return new t(this);function t(n){t_.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(t_.prototype))this.constructor.prototype[r]=t_.prototype[r];return pde.inherits(this.constructor,e.Request),this}}function t_(e){Yat.call(this,{autoDestroy:!1});let t=ZMn(e.url||e.path,e.query);this.url=t.pathname+t.search,this.aborted=!1,this.httpVersionMajor=1,this.httpVersionMinor=1,this.httpVersion="1.1",this.method=e.method?e.method.toUpperCase():"GET",this.headers={},this.rawHeaders=[];let n=e.headers||{};for(let o in n){let a=o.toLowerCase();if((a==="user-agent"||a==="content-type")&&n[o]===void 0){this.headers[a]=void 0;continue}let c=n[o];WMn(c!==void 0,'invalid value "undefined" for header '+o),this.headers[a]=""+c}if("user-agent"in this.headers||(this.headers["user-agent"]="lightMyRequest"),this.headers.host=this.headers.host||e.authority||$Mn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>VMn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new fde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return QMn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(YMn(r)){let o=JMn(r);r=o.stream,i=!0,this.headers["content-type"]=o.contentType,this.headers["transfer-encoding"]="chunked"}r&&typeof r!="string"&&!i&&!Buffer.isBuffer(r)&&(r=JSON.stringify(r),"content-type"in this.headers||(this.headers["content-type"]="application/json")),r&&!i&&!Object.hasOwn(this.headers,"content-length")&&(this.headers["content-length"]=(Buffer.isBuffer(r)?r.length:Buffer.byteLength(r)).toString());for(let o of Object.keys(this.headers))this.rawHeaders.push(o,this.headers[o]);this._lightMyRequest={payload:r,isDone:!1,simulate:e.simulate||{},payloadAsStream:e.payloadAsStream,signal:e.signal};let s=e.signal;s&&zMn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=eDn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=tDn}return this}function eDn(){let e=this._lightMyRequest.payload,t=!0,n=!1,r;for(;t&&(r=e.read());)n=!0,t=this.push(r);t&&!n&&this._lightMyRequest.payload.once("readable",this._read.bind(this))}function tDn(){setImmediate(()=>{if(this._lightMyRequest.isDone){this._lightMyRequest.simulate.end!==!1&&this.push(null);return}this._lightMyRequest.isDone=!0,this._lightMyRequest.payload&&(this._lightMyRequest.simulate.split?(this.push(this._lightMyRequest.payload.slice(0,1)),this.push(this._lightMyRequest.payload.slice(1))):this.push(this._lightMyRequest.payload)),this._lightMyRequest.simulate.error&&this.emit("error",new Error("Simulated")),this._lightMyRequest.simulate.close&&this.emit("close"),this._lightMyRequest.simulate.end!==!1&&this.push(null)})}pde.inherits(t_,Yat);pde.inherits(Jat,t_);t_.prototype.destroy=function(e){this.destroyed||this._lightMyRequest.isDone||(this.destroyed=!0,e&&(this._error=!0,process.nextTick(()=>this.emit("error",e))),process.nextTick(()=>this.emit("close")))};Y4.exports=t_;Y4.exports.Request=t_;Y4.exports.CustomRequest=Jat});var $at=w((t3r,YM)=>{"use strict";var J4={decodeValues:!0,map:!1,silent:!1};function hde(e){return typeof e!="string"||e in{}}function mde(){return Object.create(null)}function gde(e){return typeof e=="string"&&!!e.trim()}function yde(e,t){var n=e.split(";").filter(gde),r=n.shift(),i=nDn(r),s=i.name,o=i.value;if(t=t?Object.assign({},J4,t):J4,hde(s))return null;try{o=t.decodeValues?decodeURIComponent(o):o}catch(c){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",c)}var a=mde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!hde(l)){var d=u.join("=");if(l==="expires")a.expires=new Date(d);else if(l==="max-age"){var f=parseInt(d,10);Number.isNaN(f)||(a.maxAge=f)}else l==="secure"?a.secure=!0:l==="httponly"?a.httpOnly=!0:l==="samesite"?a.sameSite=d:l==="partitioned"?a.partitioned=!0:l&&(a[l]=d)}}),a}function nDn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function Qat(e,t){if(t=t?Object.assign({},J4,t):J4,!e)return t.map?mde():[];if(e.headers)if(typeof e.headers.getSetCookie=="function")e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var n=e.headers[Object.keys(e.headers).find(function(i){return i.toLowerCase()==="set-cookie"})];!n&&e.headers.cookie&&!t.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=n}if(Array.isArray(e)||(e=[e]),t.map){var r=mde();return e.filter(gde).reduce(function(i,s){var o=yde(s,t);return o&&!hde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(gde).map(function(i){return yde(i,t)}).filter(Boolean)}function rDn(e){if(Array.isArray(e))return e;if(typeof e!="string")return[];var t=[],n=0,r,i,s,o,a;function c(){for(;n=e.length)&&t.push(e.substring(r,e.length))}return t}YM.exports=Qat;YM.exports.parse=Qat;YM.exports.parseString=yde;YM.exports.splitCookiesString=rDn});var ict=w((n3r,rct)=>{"use strict";var JM=Y("node:http"),{Writable:iDn,Readable:ect,addAbortSignal:sDn}=Y("node:stream"),oDn=Y("node:util"),aDn=$at();function n_(e,t,n){if(JM.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new ect({read:a})};let c=e._lightMyRequest.signal;c&&sDn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(cDn()),this._promiseCallback=typeof n=="function";let r=!1,i=a=>{if(!r){if(r=!0,this._promiseCallback)return process.nextTick(()=>t(a));process.nextTick(()=>t(null,a))}};this._lightMyRequest.onEndSuccess=i;let s=!1,o=a=>{if(r){this._lightMyRequest.stream&&!s&&(a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._lightMyRequest.stream.destroy(a),this._lightMyRequest.stream.on("error",()=>{}));return}if(r=!0,a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._promiseCallback)return process.nextTick(()=>n(a));process.nextTick(()=>t(a,null))};this._lightMyRequest.stream?this.once("finish",()=>{s=!0,this._lightMyRequest.stream.push(null)}):this.once("finish",()=>{let a=tct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}oDn.inherits(n_,JM.ServerResponse);n_.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};n_.prototype.writeHead=function(){let e=JM.ServerResponse.prototype.writeHead.apply(this,arguments);return nct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(tct(this)),e};n_.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),JM.ServerResponse.prototype.write.call(this,e,t,n),this._lightMyRequest.stream?this._lightMyRequest.stream.push(Buffer.from(e,t)):(this._lightMyRequest.payloadChunks.push(Buffer.from(e,t)),!0)};n_.prototype.end=function(e,t,n){e&&this.write(e,t),JM.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};n_.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};n_.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function tct(e){e._lightMyRequest.headers===null&&nct(e),uDn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return aDn.parse(this)}};if(t.trailers=e._lightMyRequest.trailers,e._lightMyRequest.payloadChunks){let n=Buffer.concat(e._lightMyRequest.payloadChunks);t.rawPayload=n,t.payload=n.toString(),t.body=t.payload,t.json=function(){return JSON.parse(t.payload)}}else t.json=function(){throw new Error("Response payload is not available with payloadAsStream: true")};return t.stream=function(){return e._lightMyRequest.stream?e._lightMyRequest.stream:ect.from(e._lightMyRequest.payloadChunks)},t}function cDn(){return new iDn({write(e,t,n){setImmediate(n)}})}function uDn(e){let t=e._lightMyRequest.headers;for(let n of Object.keys(t)){let r=t[n];Array.isArray(r)?t[n]=r.map(i=>""+i):t[n]=""+r}}function nct(e){e._lightMyRequest.headers=Object.assign({},e.getHeaders()),["Date","Connection","Transfer-Encoding"].forEach(t=>{let n=new RegExp("\\r\\n"+t+": ([^\\r]*)\\r\\n"),r=e._header?.match(n);r&&(e._lightMyRequest.headers[t.toLowerCase()]=r[1])})}rct.exports=n_});var sct=w((r3r,Sde)=>{"use strict";Sde.exports=Js;Sde.exports.default=Js;var lDn={type:"object",properties:{url:{oneOf:[{type:"string"},{type:"object",properties:{protocol:{type:"string"},hostname:{type:"string"},pathname:{type:"string"}},additionalProperties:!0,required:["pathname"]}]},path:{oneOf:[{type:"string"},{type:"object",properties:{protocol:{type:"string"},hostname:{type:"string"},pathname:{type:"string"}},additionalProperties:!0,required:["pathname"]}]},cookies:{type:"object",additionalProperties:!0},headers:{type:"object",additionalProperties:!0},query:{anyOf:[{type:"object",additionalProperties:!0},{type:"string"}]},simulate:{type:"object",properties:{end:{type:"boolean"},split:{type:"boolean"},error:{type:"boolean"},close:{type:"boolean"}}},authority:{type:"string"},remoteAddress:{type:"string"},method:{type:"string",enum:["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE","acl","bind","checkout","connect","copy","delete","get","head","link","lock","m-search","merge","mkactivity","mkcalendar","mkcol","move","notify","options","patch","post","propfind","proppatch","purge","put","query","rebind","report","search","source","subscribe","trace","unbind","unlink","unlock","unsubscribe"]},validate:{type:"boolean"}},additionalProperties:!0,oneOf:[{required:["url"]},{required:["path"]}]};function Js(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o,c=!1,u=null,l=o;if(e&&typeof e=="object"&&!Array.isArray(e)){let _;if(e.url===void 0&&(_="url")){let b={instancePath:t,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:_},message:"must have required property '"+_+"'"};s===null?s=[b]:s.push(b),o++}}var f=l===o;f&&(c=!0,u=0);let d=o;if(e&&typeof e=="object"&&!Array.isArray(e)){let _;if(e.path===void 0&&(_="path")){let b={instancePath:t,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty:_},message:"must have required property '"+_+"'"};s===null?s=[b]:s.push(b),o++}}var f=d===o;if(f&&c?(c=!1,u=[u,1]):f&&(c=!0,u=1),c)o=a,s!==null&&(a?s.length=a:s=null);else{let _={instancePath:t,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas:u},message:"must match exactly one schema in oneOf"};return s===null?s=[_]:s.push(_),o++,Js.errors=s,!1}if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){if(e.url!==void 0){let _=e.url,b=o,T=o,A=!1,R=null,k=o;if(typeof _!="string"){let N=typeof _,P;if(P===void 0)if(N=="number"||N=="boolean")P=""+_;else if(_===null)P="";else{let D={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[D]:s.push(D),o++}P!==void 0&&(_=P,e!==void 0&&(e.url=P))}var h=k===o;h&&(A=!0,R=0);let x=o;if(o===x)if(_&&typeof _=="object"&&!Array.isArray(_)){let N;if(_.pathname===void 0&&(N="pathname")){let P={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/1/required",keyword:"required",params:{missingProperty:N},message:"must have required property '"+N+"'"};s===null?s=[P]:s.push(P),o++}else{if(_.protocol!==void 0){let P=_.protocol,D=o;if(typeof P!="string"){let j=typeof P,V;if(V===void 0)if(j=="number"||j=="boolean")V=""+P;else if(P===null)V="";else{let Z={instancePath:t+"/url/protocol",schemaPath:"#/properties/url/oneOf/1/properties/protocol/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[Z]:s.push(Z),o++}V!==void 0&&(P=V,_!==void 0&&(_.protocol=V))}var p=D===o}else var p=!0;if(p){if(_.hostname!==void 0){let P=_.hostname,D=o;if(typeof P!="string"){let V=typeof P,Z;if(Z===void 0)if(V=="number"||V=="boolean")Z=""+P;else if(P===null)Z="";else{let B={instancePath:t+"/url/hostname",schemaPath:"#/properties/url/oneOf/1/properties/hostname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[B]:s.push(B),o++}Z!==void 0&&(P=Z,_!==void 0&&(_.hostname=Z))}var p=D===o}else var p=!0;if(p)if(_.pathname!==void 0){let P=_.pathname,D=o;if(typeof P!="string"){let V=typeof P,Z;if(Z===void 0)if(V=="number"||V=="boolean")Z=""+P;else if(P===null)Z="";else{let B={instancePath:t+"/url/pathname",schemaPath:"#/properties/url/oneOf/1/properties/pathname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[B]:s.push(B),o++}Z!==void 0&&(P=Z,_!==void 0&&(_.pathname=Z))}var p=D===o}else var p=!0}}}else{let N={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[N]:s.push(N),o++}var h=x===o;if(h&&A?(A=!1,R=[R,1]):h&&(A=!0,R=1),A)o=T,s!==null&&(T?s.length=T:s=null);else{let N={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf",keyword:"oneOf",params:{passingSchemas:R},message:"must match exactly one schema in oneOf"};return s===null?s=[N]:s.push(N),o++,Js.errors=s,!1}var m=b===o}else var m=!0;if(m){if(e.path!==void 0){let _=e.path,b=o,T=o,A=!1,R=null,k=o;if(typeof _!="string"){let P=typeof _,D;if(D===void 0)if(P=="number"||P=="boolean")D=""+_;else if(_===null)D="";else{let j={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[j]:s.push(j),o++}D!==void 0&&(_=D,e!==void 0&&(e.path=D))}var g=k===o;g&&(A=!0,R=0);let x=o;if(o===x)if(_&&typeof _=="object"&&!Array.isArray(_)){let P;if(_.pathname===void 0&&(P="pathname")){let D={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/required",keyword:"required",params:{missingProperty:P},message:"must have required property '"+P+"'"};s===null?s=[D]:s.push(D),o++}else{if(_.protocol!==void 0){let D=_.protocol,j=o;if(typeof D!="string"){let V=typeof D,Z;if(Z===void 0)if(V=="number"||V=="boolean")Z=""+D;else if(D===null)Z="";else{let B={instancePath:t+"/path/protocol",schemaPath:"#/properties/path/oneOf/1/properties/protocol/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[B]:s.push(B),o++}Z!==void 0&&(D=Z,_!==void 0&&(_.protocol=Z))}var y=j===o}else var y=!0;if(y){if(_.hostname!==void 0){let D=_.hostname,j=o;if(typeof D!="string"){let Z=typeof D,B;if(B===void 0)if(Z=="number"||Z=="boolean")B=""+D;else if(D===null)B="";else{let G={instancePath:t+"/path/hostname",schemaPath:"#/properties/path/oneOf/1/properties/hostname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[G]:s.push(G),o++}B!==void 0&&(D=B,_!==void 0&&(_.hostname=B))}var y=j===o}else var y=!0;if(y)if(_.pathname!==void 0){let D=_.pathname,j=o;if(typeof D!="string"){let Z=typeof D,B;if(B===void 0)if(Z=="number"||Z=="boolean")B=""+D;else if(D===null)B="";else{let G={instancePath:t+"/path/pathname",schemaPath:"#/properties/path/oneOf/1/properties/pathname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[G]:s.push(G),o++}B!==void 0&&(D=B,_!==void 0&&(_.pathname=B))}var y=j===o}else var y=!0}}}else{let P={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[P]:s.push(P),o++}var g=x===o;if(g&&A?(A=!1,R=[R,1]):g&&(A=!0,R=1),A)o=T,s!==null&&(T?s.length=T:s=null);else{let P={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf",keyword:"oneOf",params:{passingSchemas:R},message:"must match exactly one schema in oneOf"};return s===null?s=[P]:s.push(P),o++,Js.errors=s,!1}var m=b===o}else var m=!0;if(m){if(e.cookies!==void 0){let _=e.cookies,b=o;if(o===b&&!(_&&typeof _=="object"&&!Array.isArray(_)))return Js.errors=[{instancePath:t+"/cookies",schemaPath:"#/properties/cookies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=b===o}else var m=!0;if(m){if(e.headers!==void 0){let _=e.headers,b=o;if(o===b&&!(_&&typeof _=="object"&&!Array.isArray(_)))return Js.errors=[{instancePath:t+"/headers",schemaPath:"#/properties/headers/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=b===o}else var m=!0;if(m){if(e.query!==void 0){let _=e.query,b=o,T=o,A=!1,R=o;if(o===R&&!(_&&typeof _=="object"&&!Array.isArray(_))){let x={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[x]:s.push(x),o++}var E=R===o;if(A=A||E,!A){let x=o;if(typeof _!="string"){let P=typeof _,D;if(D===void 0)if(P=="number"||P=="boolean")D=""+_;else if(_===null)D="";else{let j={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[j]:s.push(j),o++}D!==void 0&&(_=D,e!==void 0&&(e.query=D))}var E=x===o;A=A||E}if(A)o=T,s!==null&&(T?s.length=T:s=null);else{let x={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[x]:s.push(x),o++,Js.errors=s,!1}var m=b===o}else var m=!0;if(m){if(e.simulate!==void 0){let _=e.simulate,b=o;if(o===b)if(_&&typeof _=="object"&&!Array.isArray(_)){if(_.end!==void 0){let A=_.end,R=o;if(typeof A!="boolean"){let k;if(k===void 0)if(A==="false"||A===0||A===null)k=!1;else if(A==="true"||A===1)k=!0;else return Js.errors=[{instancePath:t+"/simulate/end",schemaPath:"#/properties/simulate/properties/end/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(A=k,_!==void 0&&(_.end=k))}var S=R===o}else var S=!0;if(S){if(_.split!==void 0){let A=_.split,R=o;if(typeof A!="boolean"){let x;if(x===void 0)if(A==="false"||A===0||A===null)x=!1;else if(A==="true"||A===1)x=!0;else return Js.errors=[{instancePath:t+"/simulate/split",schemaPath:"#/properties/simulate/properties/split/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;x!==void 0&&(A=x,_!==void 0&&(_.split=x))}var S=R===o}else var S=!0;if(S){if(_.error!==void 0){let A=_.error,R=o;if(typeof A!="boolean"){let x;if(x===void 0)if(A==="false"||A===0||A===null)x=!1;else if(A==="true"||A===1)x=!0;else return Js.errors=[{instancePath:t+"/simulate/error",schemaPath:"#/properties/simulate/properties/error/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;x!==void 0&&(A=x,_!==void 0&&(_.error=x))}var S=R===o}else var S=!0;if(S)if(_.close!==void 0){let A=_.close,R=o;if(typeof A!="boolean"){let x;if(x===void 0)if(A==="false"||A===0||A===null)x=!1;else if(A==="true"||A===1)x=!0;else return Js.errors=[{instancePath:t+"/simulate/close",schemaPath:"#/properties/simulate/properties/close/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;x!==void 0&&(A=x,_!==void 0&&(_.close=x))}var S=R===o}else var S=!0}}}else return Js.errors=[{instancePath:t+"/simulate",schemaPath:"#/properties/simulate/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=b===o}else var m=!0;if(m){if(e.authority!==void 0){let _=e.authority,b=o;if(typeof _!="string"){let A=typeof _,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+_;else if(_===null)R="";else return Js.errors=[{instancePath:t+"/authority",schemaPath:"#/properties/authority/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;R!==void 0&&(_=R,e!==void 0&&(e.authority=R))}var m=b===o}else var m=!0;if(m){if(e.remoteAddress!==void 0){let _=e.remoteAddress,b=o;if(typeof _!="string"){let A=typeof _,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+_;else if(_===null)R="";else return Js.errors=[{instancePath:t+"/remoteAddress",schemaPath:"#/properties/remoteAddress/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;R!==void 0&&(_=R,e!==void 0&&(e.remoteAddress=R))}var m=b===o}else var m=!0;if(m){if(e.method!==void 0){let _=e.method,b=o;if(typeof _!="string"){let A=typeof _,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+_;else if(_===null)R="";else return Js.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;R!==void 0&&(_=R,e!==void 0&&(e.method=R))}if(!(_==="ACL"||_==="BIND"||_==="CHECKOUT"||_==="CONNECT"||_==="COPY"||_==="DELETE"||_==="GET"||_==="HEAD"||_==="LINK"||_==="LOCK"||_==="M-SEARCH"||_==="MERGE"||_==="MKACTIVITY"||_==="MKCALENDAR"||_==="MKCOL"||_==="MOVE"||_==="NOTIFY"||_==="OPTIONS"||_==="PATCH"||_==="POST"||_==="PROPFIND"||_==="PROPPATCH"||_==="PURGE"||_==="PUT"||_==="QUERY"||_==="REBIND"||_==="REPORT"||_==="SEARCH"||_==="SOURCE"||_==="SUBSCRIBE"||_==="TRACE"||_==="UNBIND"||_==="UNLINK"||_==="UNLOCK"||_==="UNSUBSCRIBE"||_==="acl"||_==="bind"||_==="checkout"||_==="connect"||_==="copy"||_==="delete"||_==="get"||_==="head"||_==="link"||_==="lock"||_==="m-search"||_==="merge"||_==="mkactivity"||_==="mkcalendar"||_==="mkcol"||_==="move"||_==="notify"||_==="options"||_==="patch"||_==="post"||_==="propfind"||_==="proppatch"||_==="purge"||_==="put"||_==="query"||_==="rebind"||_==="report"||_==="search"||_==="source"||_==="subscribe"||_==="trace"||_==="unbind"||_==="unlink"||_==="unlock"||_==="unsubscribe"))return Js.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/enum",keyword:"enum",params:{allowedValues:lDn.properties.method.enum},message:"must be equal to one of the allowed values"}],!1;var m=b===o}else var m=!0;if(m)if(e.validate!==void 0){let _=e.validate,b=o;if(typeof _!="boolean"){let A;if(A===void 0)if(_==="false"||_===0||_===null)A=!1;else if(_==="true"||_===1)A=!0;else return Js.errors=[{instancePath:t+"/validate",schemaPath:"#/properties/validate/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;A!==void 0&&(_=A,e!==void 0&&(e.validate=A))}var m=b===o}else var m=!0}}}}}}}}}else return Js.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return Js.errors=s,o===0}});var cct=w((i3r,QM)=>{"use strict";var dDn=Y("node:assert"),_de=Xat(),X4=ict(),$4="The dispatch function has already been invoked",oct=sct();function Ede(e,t,n){return n===void 0?new XM(e,t):Q4(e,t,n)}function fDn(e,t){let n=e._lightMyRequest.payload;if(!n||n._readableState||typeof n.resume!="function")return t();let r=[];n.on("data",i=>r.push(Buffer.from(i))),n.on("end",()=>{let i=Buffer.concat(r);return e.headers["content-length"]=e.headers["content-length"]||""+i.length,delete e.headers["transfer-encoding"],e._lightMyRequest.payload=i,t()}),n.resume()}function act(e,t,n,r){return n.once("error",function(i){this.destroyed&&r.destroy(i)}),n.once("close",function(){this.destroyed&&!this._error&&r.destroy()}),fDn(n,()=>e.call(t,n,r))}function Q4(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(dDn(typeof e=="function","dispatchFunc should be a function"),!oct(t)))throw new Error(oct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?_de.CustomRequest:_de;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),X4.prototype)),typeof n=="function"){let s=new i(t),o=new X4(s,n);return act(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new X4(a,s,o);act(e,r,a,c)})}function XM(e,t){typeof t=="string"?this.option={url:t}:this.option=Object.assign({},t),this.dispatch=e,this._hasInvoked=!1,this._promise=null,this.option.autoStart!==!1&&process.nextTick(()=>{this._hasInvoked||this.end()})}var pDn=["delete","get","head","options","patch","post","put","trace"];pDn.forEach(e=>{XM.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error($4);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var hDn=["body","cookies","headers","payload","query"];hDn.forEach(e=>{XM.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error($4);return this.option[e]=t,this}});XM.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error($4);if(this._hasInvoked=!0,typeof e=="function")Q4(this.dispatch,this.option,e);else return this._promise=Q4(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(XM.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error($4);this._hasInvoked=!0,this._promise=Q4(this.dispatch,this.option)}return this._promise[e](...t)})});function mDn(e){return e instanceof _de||e instanceof X4||e?.constructor?.name==="_CustomLMRRequest"}QM.exports=Ede;QM.exports.default=Ede;QM.exports.inject=Ede;QM.exports.isInjection=mDn});var Act=w((s3r,rD)=>{"use strict";var gDn="5.8.5",yDn=DXe(),rK=Y("node:http"),SDn=Y("node:diagnostics_channel"),$M,{kAvvioBoot:eD,kChildren:bde,kServerBindings:uct,kBodyLimit:_Dn,kSupportedHTTPMethods:pT,kRoutePrefix:lct,kLogLevel:EDn,kLogSerializers:bDn,kHooks:Tde,kSchemaController:r_,kRequestAcceptVersion:TDn,kReplySerializerDefault:dct,kContentTypeParser:vDn,kReply:ADn,kRequest:RDn,kFourOhFour:wDn,kState:Zi,kOptions:vde,kPluginNameChain:tD,kSchemaErrorFormatter:Ade,kErrorHandler:eK,kKeepAliveConnections:Rde,kChildLoggerFactory:wde,kGenReqId:kde,kErrorHandlerAlreadySet:tK,kHandlerTimeout:kDn}=Ys(),{createServer:IDn}=uQe(),nD=BW(),nK=ZW(),xDn=YW(),hT=gM(),mT=due(),fct=ule(),{Hooks:ODn,hookRunnerApplication:pct,supportedHooks:Ide}=GS(),{createChildLogger:hct,defaultChildLoggerFactory:NDn,createLogger:PDn}=dM(),mct=Mle(),{getGenReqId:gct,reqIdGenFactory:Tct}=A4(),{buildRouting:CDn,validateBodyLimitOption:MDn,buildRouterOptions:DDn}=_at(),LDn=wat(),vct=Iat(),UDn=Uat(),{appendStackTrace:jDn,AVVIO_ERRORS_MAP:yct,...gT}=Vo(),FDn=Dae(),{defaultInitOptions:vu}=vct,{FST_ERR_ASYNC_CONSTRAINT:HDn,FST_ERR_BAD_URL:qDn,FST_ERR_OPTIONS_NOT_OBJ:BDn,FST_ERR_QSP_NOT_FN:GDn,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:zDn,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:VDn,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:WDn,FST_ERR_INSTANCE_ALREADY_LISTENING:KDn,FST_ERR_REOPENED_CLOSE_SERVER:ZDn,FST_ERR_ROUTE_REWRITE_NOT_STR:YDn,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:Sct,FST_ERR_ERROR_HANDLER_NOT_FN:JDn,FST_ERR_ERROR_HANDLER_ALREADY_SET:XDn,FST_ERR_ROUTE_METHOD_INVALID:QDn}=gT,{buildErrorHandler:_ct}=pM(),{FSTWRN004:$Dn}=vk(),Ect=SDn.channel("fastify.initialization");function xde(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=eLn(e,N,P),o=CDn(t.routerOptions),a=LDn(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=IDn(t,c),m=nD.setupResponseListeners,y=fct.buildSchemaController(null,t.schemaController),g={[Zi]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[Rde]:h,[pT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[vde]:t,[bde]:[],[uct]:[],[_Dn]:t.bodyLimit,[kDn]:t.handlerTimeout,[lct]:"",[EDn]:"",[bDn]:null,[Tde]:new ODn,[r_]:y,[Ade]:null,[eK]:_ct(),[tK]:!1,[wde]:t.childLoggerFactory||NDn,[dct]:null,[vDn]:new mT(t.bodyLimit,t.onProtoPoisoning||vu.onProtoPoisoning,t.onConstructorPoisoning||vu.onConstructorPoisoning),[ADn]:nD.buildReply(nD),[RDn]:nK.buildRequest(nK,t.trustProxy),[wDn]:a,[mct.kRegisteredPlugins]:[],[tD]:["fastify"],[eD]:null,[kde]:n,routing:c,delete:function(W,$,ie){return o.prepareRoute.call(this,{method:"DELETE",url:W,options:$,handler:ie})},get:function(W,$,ie){return o.prepareRoute.call(this,{method:"GET",url:W,options:$,handler:ie})},head:function(W,$,ie){return o.prepareRoute.call(this,{method:"HEAD",url:W,options:$,handler:ie})},trace:function(W,$,ie){return o.prepareRoute.call(this,{method:"TRACE",url:W,options:$,handler:ie})},patch:function(W,$,ie){return o.prepareRoute.call(this,{method:"PATCH",url:W,options:$,handler:ie})},post:function(W,$,ie){return o.prepareRoute.call(this,{method:"POST",url:W,options:$,handler:ie})},put:function(W,$,ie){return o.prepareRoute.call(this,{method:"PUT",url:W,options:$,handler:ie})},options:function(W,$,ie){return o.prepareRoute.call(this,{method:"OPTIONS",url:W,options:$,handler:ie})},all:function(W,$,ie){return o.prepareRoute.call(this,{method:this.supportedMethods,url:W,options:$,handler:ie})},route:function(W){return o.route.call(this,{options:W})},hasRoute:function(W){return o.hasRoute.call(this,{options:W})},findRoute:function(W){return o.findRoute(W)},log:t.logger,withTypeProvider:R,addHook:k,addSchema:x,getSchema:y.getSchema.bind(y),getSchemas:y.getSchemas.bind(y),setValidatorCompiler:V,setSerializerCompiler:B,setSchemaController:G,setReplySerializer:X,setSchemaErrorFormatter:Z,setGenReqId:M,addContentTypeParser:mT.helpers.addContentTypeParser,hasContentTypeParser:mT.helpers.hasContentTypeParser,getDefaultJsonParser:mT.defaultParsers.getDefaultJsonParser,defaultTextParser:mT.defaultParsers.defaultTextParser,removeContentTypeParser:mT.helpers.removeContentTypeParser,removeAllContentTypeParsers:mT.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(F){return this[mct.kRegisteredPlugins].includes(F)||this[tD].includes(F)},listen:l,server:u,addresses:function(){let F=this[uct].map(W=>W.address());return F.push(this.server.address()),F.filter(W=>W)},decorate:hT.add,hasDecorator:hT.exist,decorateReply:hT.decorateReply,decorateRequest:hT.decorateRequest,hasRequestDecorator:hT.existRequest,hasReplyDecorator:hT.existReply,getDecorator:hT.getInstanceDecorator,addHttpMethod:H,inject:T,printRoutes:z,setNotFoundHandler:j,setErrorHandler:q,setChildLoggerFactory:C,initialConfig:s,addConstraintStrategy:o.addConstraintStrategy.bind(o),hasConstraintStrategy:o.hasConstraintStrategy.bind(o)};Object.defineProperties(g,{listeningOrigin:{get(){let F=this.addresses().slice(-1).pop();if(typeof F=="string")return F;let W=F.family==="IPv6"?`[${F.address}]`:F.address;return`${this[vde].https?"https":"http"}://${W}:${F.port}`}},pluginName:{configurable:!0,get(){return this[tD].length>1?this[tD].join(" -> "):this[tD][0]}},prefix:{configurable:!0,get(){return this[lct]}},validatorCompiler:{configurable:!0,get(){return this[r_].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[r_].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[wde]}},version:{configurable:!0,get(){return gDn}},errorHandler:{configurable:!0,get(){return this[eK].func}},genReqId:{configurable:!0,get(){return this[kde]}},supportedMethods:{configurable:!1,get(){return[...this[pT].bodyless,...this[pT].bodywith]}}}),t.schemaErrorFormatter&&(bct(t.schemaErrorFormatter),g[Ade]=t.schemaErrorFormatter.bind(g));let E=Number(t.pluginTimeout),S=yDn(g,{autostart:!1,timeout:isNaN(E)===!1?E:vu.pluginTimeout,expose:{use:"register"}});S.override=UDn,S.on("start",()=>g[Zi].started=!0),g[eD]=g.ready,g.ready=A,g.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{g.onClose((F,W)=>{g[Zi].closing=!0,o.closeRoutes(),pct("preClose",g[eD],g,function(){if(g[Zi].listening){if(d==="idle")F.server.closeIdleConnections();else if(f&&d)F.server.closeAllConnections();else if(d===!0)for(let $ of g[Rde])$.destroy(),g[Rde].delete($)}p&&F.server.closeHttp2Sessions(),!t.serverFactory||g[Zi].listening?F.server.close(function($){$&&$.code!=="ERR_SERVER_NOT_RUNNING"?W(null):W()}):process.nextTick(W,null)})})});let _=new xDn({server:g,config:{}});return g.setNotFoundHandler(),a.arrange404(g),o.setup(t,{avvio:S,fourOhFour:a,hasLogger:i,setupResponseListeners:m,throwIfAlreadyStarted:b,keepAliveConnections:h}),u.on("clientError",t.clientErrorHandler.bind(g)),Ect.hasSubscribers&&Ect.publish({fastify:g}),"asyncDispose"in Symbol&&(g[Symbol.asyncDispose]=function(){return g.close()}),g;function b(F){if(g[Zi].started)throw new KDn(F)}function T(F,W){if($M===void 0&&($M=cct()),g[Zi].started){if(g[Zi].closing){let $=new ZDn;if(W){W($);return}else return Promise.reject($)}return $M(c,F,W)}if(W)this.ready($=>{$?W($,null):$M(c,F,W)});else return $M(($,ie)=>{this.ready(function(Re){if(Re){ie.emit("error",Re);return}c($,ie)})},F)}function A(F){if(this[Zi].readyResolver!==null){if(F!=null){this[Zi].readyResolver.promise.then(()=>F(null,g),F);return}return this[Zi].readyResolver.promise}if(process.nextTick(W),this[Zi].readyResolver=FDn.withResolvers(),F)this[Zi].readyResolver.promise.then(()=>F(null,g),F);else return this[Zi].readyResolver.promise;function W(){g[eD]((ie,Re)=>{ie||g[Zi].started||g[Zi].ready||g[Zi].booting?$(ie):(g[Zi].booting=!0,pct("onReady",g[eD],g,$)),Re()})}function $(ie){if(ie=ie!=null&&yct[ie.code]!=null?jDn(ie,new yct[ie.code](ie.message)):ie,ie)return g[Zi].readyResolver.reject(ie);g[Zi].readyResolver.resolve(g),g[Zi].booting=!1,g[Zi].ready=!0,g[Zi].readyResolver=null}}function R(){return this}function k(F,W){if(b('Cannot call "addHook"!'),W==null)throw new gT.FST_ERR_HOOK_INVALID_HANDLER(F,W);if(F==="onSend"||F==="preSerialization"||F==="onError"||F==="preParsing"){if(W.constructor.name==="AsyncFunction"&&W.length===4)throw new gT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(F==="onReady"||F==="onListen"){if(W.constructor.name==="AsyncFunction"&&W.length!==0)throw new gT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(F==="onRequestAbort"){if(W.constructor.name==="AsyncFunction"&&W.length!==1)throw new gT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(W.constructor.name==="AsyncFunction"&&W.length===3)throw new gT.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return F==="onClose"?this.onClose(W.bind(this)):F==="onReady"||F==="onListen"||F==="onRoute"?this[Tde].add(F,W):this.after((ie,Re)=>{try{$.call(this,F,W),Re(ie)}catch(Te){Re(Te)}}),this;function $(ie,Re){this[Tde].add(ie,Re),this[bde].forEach(Te=>$.call(Te,ie,Re))}}function x(F){return b('Cannot call "addSchema"!'),this[r_].add(F),this[bde].forEach(W=>W.addSchema(F)),this}function N(F,W){F.headers["accept-version"]!==void 0&&(F.headers[TDn]=F.headers["accept-version"],F.headers["accept-version"]=void 0),a.router.lookup(F,W)}function P(F,W,$){if(t.frameworkErrors){let Re=gct(_.server,W),Te=hct(_,t.logger,W,Re),K=new nK(Re,null,W,null,Te,_),Q=new nD($,K,Te);return(typeof r=="function"?r(W):r)===!1&&Te.info({req:K},"incoming request"),t.frameworkErrors(new qDn(F),K,Q)}let ie=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${F}' is not a valid url component`,statusCode:400});$.writeHead(400,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(ie)}),$.end(ie)}function D(F,W,$){if(F!==!1)return function(Re){if(Re){if(t.frameworkErrors){let K=gct(_.server,W),Q=hct(_,t.logger,W,K),ae=new nK(K,null,W,null,Q,_),ge=new nD($,ae,Q);return(typeof r=="function"?r(W):r)===!1&&Q.info({req:ae},"incoming request"),t.frameworkErrors(new HDn,ae,ge)}let Te='{"error":"Internal Server Error","message":"Unexpected error from async constraint","statusCode":500}';$.writeHead(500,{"Content-Type":"application/json","Content-Length":Te.length}),$.end(Te)}}}function j(F,W){return b('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,F,W,S,o.routeHandler),this}function V(F){return b('Cannot call "setValidatorCompiler"!'),this[r_].setValidatorCompiler(F),this}function Z(F){return b('Cannot call "setSchemaErrorFormatter"!'),bct(F),this[Ade]=F.bind(this),this}function B(F){return b('Cannot call "setSerializerCompiler"!'),this[r_].setSerializerCompiler(F),this}function G(F){b('Cannot call "setSchemaController"!');let W=this[r_],$=fct.buildSchemaController(W,Object.assign({},W.opts,F));return this[r_]=$,this.getSchema=$.getSchema.bind($),this.getSchemas=$.getSchemas.bind($),this}function X(F){return b('Cannot call "setReplySerializer"!'),this[dct]=F,this}function q(F){if(b('Cannot call "setErrorHandler"!'),typeof F!="function")throw new JDn;if(!t.allowErrorHandlerOverride&&this[tK])throw new XDn;return this[tK]&&$Dn("To disable this behavior, set 'allowErrorHandlerOverride' to false or ignore this message. For more information, visit: https://fastify.dev/docs/latest/Reference/Server/#allowerrorhandleroverride"),this[tK]=!0,this[eK]=_ct(this[eK],F.bind(this)),this}function C(F){return b('Cannot call "setChildLoggerFactory"!'),this[wde]=F,this}function z(F={}){return F.includeMeta=F.includeHooks?F.includeMeta?Ide.concat(F.includeMeta):Ide:F.includeMeta,o.printRoutes(F)}function U(F,{rewriteUrl:W,logger:$}){let ie;return function(Te,K){if(ie===void 0&&(ie=F.isAsyncConstraint()),W){Te.originalUrl=Te.url;let Q=W.call(g,Te);if(typeof Q=="string")Te.url=Q;else{let ae=new YDn(Te.url,typeof Q);Te.destroy(ae)}}F.routing(Te,K,D(ie,Te,K))}}function M(F){return b('Cannot call "setGenReqId"!'),this[kde]=Tct(this[vde].requestIdHeader,F),this}function H(F,{hasBody:W=!1}={}){if(typeof F!="string"||rK.METHODS.indexOf(F)===-1)throw new QDn;W===!0?(this[pT].bodywith.add(F),this[pT].bodyless.delete(F)):(this[pT].bodywith.delete(F),this[pT].bodyless.add(F));let $=F.toLowerCase();return this.hasDecorator($)||this.decorate($,function(ie,Re,Te){return o.prepareRoute.call(this,{method:F,url:ie,options:Re,handler:Te})}),this}}function eLn(e,t,n){if(e&&typeof e!="object")throw new BDn;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new GDn(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new zDn(typeof e.schemaController.bucket);MDn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=Tct(r,e.genReqId),s=e.requestIdLogLabel||"reqId";e.bodyLimit=e.bodyLimit||vu.bodyLimit;let o=e.disableRequestLogging||!1,a=Object.assign({customOptions:{},plugins:[]},e.ajv);if(!a.customOptions||Object.prototype.toString.call(a.customOptions)!=="[object Object]")throw new VDn(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new WDn(typeof a.plugins);let{logger:c,hasLogger:u}=PDn(e);e.connectionTimeout=e.connectionTimeout||vu.connectionTimeout,e.keepAliveTimeout=e.keepAliveTimeout||vu.keepAliveTimeout,e.maxRequestsPerSocket=e.maxRequestsPerSocket||vu.maxRequestsPerSocket,e.requestTimeout=e.requestTimeout||vu.requestTimeout,e.logger=c,e.requestIdHeader=r,e.requestIdLogLabel=s,e.disableRequestLogging=o,e.ajv=a,e.clientErrorHandler=e.clientErrorHandler||nLn,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??vu.allowErrorHandlerOverride;let l=vct(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=DDn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:vu.ignoreTrailingSlash,ignoreDuplicateSlashes:vu.ignoreDuplicateSlashes,maxParamLength:vu.maxParamLength,allowUnsafeRegex:vu.allowUnsafeRegex,buildPrettyMeta:tLn,useSemicolonDelimiter:vu.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function tLn(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(Ide).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function nLn(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=rK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=rK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=rK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Error","statusCode":400}`,s="error"),this.log.trace({err:e},`client ${s}`),t.writable&&t.write(`HTTP/1.1 ${r} ${i}\r +`,yield sI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield sI.encode(`--${t}--`)}return{stream:HDn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}xde.exports.isFormDataLike=qDn;xde.exports.formDataToStream=BDn});var Ict=w((K3r,uK)=>{"use strict";var{Readable:wct,addAbortSignal:GDn}=Y("node:stream"),Pde=Y("node:util"),zDn=Ect(),VDn=Y("node:assert"),{createDeprecation:WDn}=bct(),KDn=Act(),{isFormDataLike:YDn,formDataToStream:ZDn}=Rct(),{EventEmitter:JDn}=Y("node:events"),XDn=WDn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function QDn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var Ode=class extends JDn{constructor(t){super(),this.remoteAddress=t}};function kct(e){return new t(this);function t(n){sE.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(sE.prototype))this.constructor.prototype[r]=sE.prototype[r];return Pde.inherits(this.constructor,e.Request),this}}function sE(e){wct.call(this,{autoDestroy:!1});let t=KDn(e.url||e.path,e.query);this.url=t.pathname+t.search,this.aborted=!1,this.httpVersionMajor=1,this.httpVersionMinor=1,this.httpVersion="1.1",this.method=e.method?e.method.toUpperCase():"GET",this.headers={},this.rawHeaders=[];let n=e.headers||{};for(let o in n){let a=o.toLowerCase();if((a==="user-agent"||a==="content-type")&&n[o]===void 0){this.headers[a]=void 0;continue}let c=n[o];VDn(c!==void 0,'invalid value "undefined" for header '+o),this.headers[a]=""+c}if("user-agent"in this.headers||(this.headers["user-agent"]="lightMyRequest"),this.headers.host=this.headers.host||e.authority||QDn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>zDn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new Ode(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return XDn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(YDn(r)){let o=ZDn(r);r=o.stream,i=!0,this.headers["content-type"]=o.contentType,this.headers["transfer-encoding"]="chunked"}r&&typeof r!="string"&&!i&&!Buffer.isBuffer(r)&&(r=JSON.stringify(r),"content-type"in this.headers||(this.headers["content-type"]="application/json")),r&&!i&&!Object.hasOwn(this.headers,"content-length")&&(this.headers["content-length"]=(Buffer.isBuffer(r)?r.length:Buffer.byteLength(r)).toString());for(let o of Object.keys(this.headers))this.rawHeaders.push(o,this.headers[o]);this._lightMyRequest={payload:r,isDone:!1,simulate:e.simulate||{},payloadAsStream:e.payloadAsStream,signal:e.signal};let s=e.signal;s&&GDn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=$Dn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=eLn}return this}function $Dn(){let e=this._lightMyRequest.payload,t=!0,n=!1,r;for(;t&&(r=e.read());)n=!0,t=this.push(r);t&&!n&&this._lightMyRequest.payload.once("readable",this._read.bind(this))}function eLn(){setImmediate(()=>{if(this._lightMyRequest.isDone){this._lightMyRequest.simulate.end!==!1&&this.push(null);return}this._lightMyRequest.isDone=!0,this._lightMyRequest.payload&&(this._lightMyRequest.simulate.split?(this.push(this._lightMyRequest.payload.slice(0,1)),this.push(this._lightMyRequest.payload.slice(1))):this.push(this._lightMyRequest.payload)),this._lightMyRequest.simulate.error&&this.emit("error",new Error("Simulated")),this._lightMyRequest.simulate.close&&this.emit("close"),this._lightMyRequest.simulate.end!==!1&&this.push(null)})}Pde.inherits(sE,wct);Pde.inherits(kct,sE);sE.prototype.destroy=function(e){this.destroyed||this._lightMyRequest.isDone||(this.destroyed=!0,e&&(this._error=!0,process.nextTick(()=>this.emit("error",e))),process.nextTick(()=>this.emit("close")))};uK.exports=sE;uK.exports.Request=sE;uK.exports.CustomRequest=kct});var Oct=w((Y3r,rD)=>{"use strict";var lK={decodeValues:!0,map:!1,silent:!1};function Nde(e){return typeof e!="string"||e in{}}function Cde(){return Object.create(null)}function Mde(e){return typeof e=="string"&&!!e.trim()}function Dde(e,t){var n=e.split(";").filter(Mde),r=n.shift(),i=tLn(r),s=i.name,o=i.value;if(t=t?Object.assign({},lK,t):lK,Nde(s))return null;try{o=t.decodeValues?decodeURIComponent(o):o}catch(c){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",c)}var a=Cde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Nde(l)){var d=u.join("=");if(l==="expires")a.expires=new Date(d);else if(l==="max-age"){var f=parseInt(d,10);Number.isNaN(f)||(a.maxAge=f)}else l==="secure"?a.secure=!0:l==="httponly"?a.httpOnly=!0:l==="samesite"?a.sameSite=d:l==="partitioned"?a.partitioned=!0:l&&(a[l]=d)}}),a}function tLn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function xct(e,t){if(t=t?Object.assign({},lK,t):lK,!e)return t.map?Cde():[];if(e.headers)if(typeof e.headers.getSetCookie=="function")e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var n=e.headers[Object.keys(e.headers).find(function(i){return i.toLowerCase()==="set-cookie"})];!n&&e.headers.cookie&&!t.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=n}if(Array.isArray(e)||(e=[e]),t.map){var r=Cde();return e.filter(Mde).reduce(function(i,s){var o=Dde(s,t);return o&&!Nde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Mde).map(function(i){return Dde(i,t)}).filter(Boolean)}function nLn(e){if(Array.isArray(e))return e;if(typeof e!="string")return[];var t=[],n=0,r,i,s,o,a;function c(){for(;n=e.length)&&t.push(e.substring(r,e.length))}return t}rD.exports=xct;rD.exports.parse=xct;rD.exports.parseString=Dde;rD.exports.splitCookiesString=nLn});var Dct=w((Z3r,Mct)=>{"use strict";var iD=Y("node:http"),{Writable:rLn,Readable:Pct,addAbortSignal:iLn}=Y("node:stream"),sLn=Y("node:util"),oLn=Oct();function oE(e,t,n){if(iD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new Pct({read:a})};let c=e._lightMyRequest.signal;c&&iLn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(aLn()),this._promiseCallback=typeof n=="function";let r=!1,i=a=>{if(!r){if(r=!0,this._promiseCallback)return process.nextTick(()=>t(a));process.nextTick(()=>t(null,a))}};this._lightMyRequest.onEndSuccess=i;let s=!1,o=a=>{if(r){this._lightMyRequest.stream&&!s&&(a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._lightMyRequest.stream.destroy(a),this._lightMyRequest.stream.on("error",()=>{}));return}if(r=!0,a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._promiseCallback)return process.nextTick(()=>n(a));process.nextTick(()=>t(a,null))};this._lightMyRequest.stream?this.once("finish",()=>{s=!0,this._lightMyRequest.stream.push(null)}):this.once("finish",()=>{let a=Nct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}sLn.inherits(oE,iD.ServerResponse);oE.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};oE.prototype.writeHead=function(){let e=iD.ServerResponse.prototype.writeHead.apply(this,arguments);return Cct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Nct(this)),e};oE.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),iD.ServerResponse.prototype.write.call(this,e,t,n),this._lightMyRequest.stream?this._lightMyRequest.stream.push(Buffer.from(e,t)):(this._lightMyRequest.payloadChunks.push(Buffer.from(e,t)),!0)};oE.prototype.end=function(e,t,n){e&&this.write(e,t),iD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};oE.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};oE.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Nct(e){e._lightMyRequest.headers===null&&Cct(e),cLn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return oLn.parse(this)}};if(t.trailers=e._lightMyRequest.trailers,e._lightMyRequest.payloadChunks){let n=Buffer.concat(e._lightMyRequest.payloadChunks);t.rawPayload=n,t.payload=n.toString(),t.body=t.payload,t.json=function(){return JSON.parse(t.payload)}}else t.json=function(){throw new Error("Response payload is not available with payloadAsStream: true")};return t.stream=function(){return e._lightMyRequest.stream?e._lightMyRequest.stream:Pct.from(e._lightMyRequest.payloadChunks)},t}function aLn(){return new rLn({write(e,t,n){setImmediate(n)}})}function cLn(e){let t=e._lightMyRequest.headers;for(let n of Object.keys(t)){let r=t[n];Array.isArray(r)?t[n]=r.map(i=>""+i):t[n]=""+r}}function Cct(e){e._lightMyRequest.headers=Object.assign({},e.getHeaders()),["Date","Connection","Transfer-Encoding"].forEach(t=>{let n=new RegExp("\\r\\n"+t+": ([^\\r]*)\\r\\n"),r=e._header?.match(n);r&&(e._lightMyRequest.headers[t.toLowerCase()]=r[1])})}Mct.exports=oE});var Lct=w((J3r,Lde)=>{"use strict";Lde.exports=eo;Lde.exports.default=eo;var uLn={type:"object",properties:{url:{oneOf:[{type:"string"},{type:"object",properties:{protocol:{type:"string"},hostname:{type:"string"},pathname:{type:"string"}},additionalProperties:!0,required:["pathname"]}]},path:{oneOf:[{type:"string"},{type:"object",properties:{protocol:{type:"string"},hostname:{type:"string"},pathname:{type:"string"}},additionalProperties:!0,required:["pathname"]}]},cookies:{type:"object",additionalProperties:!0},headers:{type:"object",additionalProperties:!0},query:{anyOf:[{type:"object",additionalProperties:!0},{type:"string"}]},simulate:{type:"object",properties:{end:{type:"boolean"},split:{type:"boolean"},error:{type:"boolean"},close:{type:"boolean"}}},authority:{type:"string"},remoteAddress:{type:"string"},method:{type:"string",enum:["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE","acl","bind","checkout","connect","copy","delete","get","head","link","lock","m-search","merge","mkactivity","mkcalendar","mkcol","move","notify","options","patch","post","propfind","proppatch","purge","put","query","rebind","report","search","source","subscribe","trace","unbind","unlink","unlock","unsubscribe"]},validate:{type:"boolean"}},additionalProperties:!0,oneOf:[{required:["url"]},{required:["path"]}]};function eo(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o,c=!1,u=null,l=o;if(e&&typeof e=="object"&&!Array.isArray(e)){let _;if(e.url===void 0&&(_="url")){let b={instancePath:t,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:_},message:"must have required property '"+_+"'"};s===null?s=[b]:s.push(b),o++}}var f=l===o;f&&(c=!0,u=0);let d=o;if(e&&typeof e=="object"&&!Array.isArray(e)){let _;if(e.path===void 0&&(_="path")){let b={instancePath:t,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty:_},message:"must have required property '"+_+"'"};s===null?s=[b]:s.push(b),o++}}var f=d===o;if(f&&c?(c=!1,u=[u,1]):f&&(c=!0,u=1),c)o=a,s!==null&&(a?s.length=a:s=null);else{let _={instancePath:t,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas:u},message:"must match exactly one schema in oneOf"};return s===null?s=[_]:s.push(_),o++,eo.errors=s,!1}if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){if(e.url!==void 0){let _=e.url,b=o,T=o,A=!1,R=null,x=o;if(typeof _!="string"){let P=typeof _,N;if(N===void 0)if(P=="number"||P=="boolean")N=""+_;else if(_===null)N="";else{let C={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[C]:s.push(C),o++}N!==void 0&&(_=N,e!==void 0&&(e.url=N))}var h=x===o;h&&(A=!0,R=0);let k=o;if(o===k)if(_&&typeof _=="object"&&!Array.isArray(_)){let P;if(_.pathname===void 0&&(P="pathname")){let N={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/1/required",keyword:"required",params:{missingProperty:P},message:"must have required property '"+P+"'"};s===null?s=[N]:s.push(N),o++}else{if(_.protocol!==void 0){let N=_.protocol,C=o;if(typeof N!="string"){let F=typeof N,V;if(V===void 0)if(F=="number"||F=="boolean")V=""+N;else if(N===null)V="";else{let K={instancePath:t+"/url/protocol",schemaPath:"#/properties/url/oneOf/1/properties/protocol/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[K]:s.push(K),o++}V!==void 0&&(N=V,_!==void 0&&(_.protocol=V))}var p=C===o}else var p=!0;if(p){if(_.hostname!==void 0){let N=_.hostname,C=o;if(typeof N!="string"){let V=typeof N,K;if(K===void 0)if(V=="number"||V=="boolean")K=""+N;else if(N===null)K="";else{let $={instancePath:t+"/url/hostname",schemaPath:"#/properties/url/oneOf/1/properties/hostname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}K!==void 0&&(N=K,_!==void 0&&(_.hostname=K))}var p=C===o}else var p=!0;if(p)if(_.pathname!==void 0){let N=_.pathname,C=o;if(typeof N!="string"){let V=typeof N,K;if(K===void 0)if(V=="number"||V=="boolean")K=""+N;else if(N===null)K="";else{let $={instancePath:t+"/url/pathname",schemaPath:"#/properties/url/oneOf/1/properties/pathname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}K!==void 0&&(N=K,_!==void 0&&(_.pathname=K))}var p=C===o}else var p=!0}}}else{let P={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[P]:s.push(P),o++}var h=k===o;if(h&&A?(A=!1,R=[R,1]):h&&(A=!0,R=1),A)o=T,s!==null&&(T?s.length=T:s=null);else{let P={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf",keyword:"oneOf",params:{passingSchemas:R},message:"must match exactly one schema in oneOf"};return s===null?s=[P]:s.push(P),o++,eo.errors=s,!1}var m=b===o}else var m=!0;if(m){if(e.path!==void 0){let _=e.path,b=o,T=o,A=!1,R=null,x=o;if(typeof _!="string"){let N=typeof _,C;if(C===void 0)if(N=="number"||N=="boolean")C=""+_;else if(_===null)C="";else{let F={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[F]:s.push(F),o++}C!==void 0&&(_=C,e!==void 0&&(e.path=C))}var y=x===o;y&&(A=!0,R=0);let k=o;if(o===k)if(_&&typeof _=="object"&&!Array.isArray(_)){let N;if(_.pathname===void 0&&(N="pathname")){let C={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/required",keyword:"required",params:{missingProperty:N},message:"must have required property '"+N+"'"};s===null?s=[C]:s.push(C),o++}else{if(_.protocol!==void 0){let C=_.protocol,F=o;if(typeof C!="string"){let V=typeof C,K;if(K===void 0)if(V=="number"||V=="boolean")K=""+C;else if(C===null)K="";else{let $={instancePath:t+"/path/protocol",schemaPath:"#/properties/path/oneOf/1/properties/protocol/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}K!==void 0&&(C=K,_!==void 0&&(_.protocol=K))}var g=F===o}else var g=!0;if(g){if(_.hostname!==void 0){let C=_.hostname,F=o;if(typeof C!="string"){let K=typeof C,$;if($===void 0)if(K=="number"||K=="boolean")$=""+C;else if(C===null)$="";else{let B={instancePath:t+"/path/hostname",schemaPath:"#/properties/path/oneOf/1/properties/hostname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[B]:s.push(B),o++}$!==void 0&&(C=$,_!==void 0&&(_.hostname=$))}var g=F===o}else var g=!0;if(g)if(_.pathname!==void 0){let C=_.pathname,F=o;if(typeof C!="string"){let K=typeof C,$;if($===void 0)if(K=="number"||K=="boolean")$=""+C;else if(C===null)$="";else{let B={instancePath:t+"/path/pathname",schemaPath:"#/properties/path/oneOf/1/properties/pathname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[B]:s.push(B),o++}$!==void 0&&(C=$,_!==void 0&&(_.pathname=$))}var g=F===o}else var g=!0}}}else{let N={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[N]:s.push(N),o++}var y=k===o;if(y&&A?(A=!1,R=[R,1]):y&&(A=!0,R=1),A)o=T,s!==null&&(T?s.length=T:s=null);else{let N={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf",keyword:"oneOf",params:{passingSchemas:R},message:"must match exactly one schema in oneOf"};return s===null?s=[N]:s.push(N),o++,eo.errors=s,!1}var m=b===o}else var m=!0;if(m){if(e.cookies!==void 0){let _=e.cookies,b=o;if(o===b&&!(_&&typeof _=="object"&&!Array.isArray(_)))return eo.errors=[{instancePath:t+"/cookies",schemaPath:"#/properties/cookies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=b===o}else var m=!0;if(m){if(e.headers!==void 0){let _=e.headers,b=o;if(o===b&&!(_&&typeof _=="object"&&!Array.isArray(_)))return eo.errors=[{instancePath:t+"/headers",schemaPath:"#/properties/headers/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=b===o}else var m=!0;if(m){if(e.query!==void 0){let _=e.query,b=o,T=o,A=!1,R=o;if(o===R&&!(_&&typeof _=="object"&&!Array.isArray(_))){let k={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[k]:s.push(k),o++}var E=R===o;if(A=A||E,!A){let k=o;if(typeof _!="string"){let N=typeof _,C;if(C===void 0)if(N=="number"||N=="boolean")C=""+_;else if(_===null)C="";else{let F={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[F]:s.push(F),o++}C!==void 0&&(_=C,e!==void 0&&(e.query=C))}var E=k===o;A=A||E}if(A)o=T,s!==null&&(T?s.length=T:s=null);else{let k={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[k]:s.push(k),o++,eo.errors=s,!1}var m=b===o}else var m=!0;if(m){if(e.simulate!==void 0){let _=e.simulate,b=o;if(o===b)if(_&&typeof _=="object"&&!Array.isArray(_)){if(_.end!==void 0){let A=_.end,R=o;if(typeof A!="boolean"){let x;if(x===void 0)if(A==="false"||A===0||A===null)x=!1;else if(A==="true"||A===1)x=!0;else return eo.errors=[{instancePath:t+"/simulate/end",schemaPath:"#/properties/simulate/properties/end/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;x!==void 0&&(A=x,_!==void 0&&(_.end=x))}var S=R===o}else var S=!0;if(S){if(_.split!==void 0){let A=_.split,R=o;if(typeof A!="boolean"){let k;if(k===void 0)if(A==="false"||A===0||A===null)k=!1;else if(A==="true"||A===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/split",schemaPath:"#/properties/simulate/properties/split/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(A=k,_!==void 0&&(_.split=k))}var S=R===o}else var S=!0;if(S){if(_.error!==void 0){let A=_.error,R=o;if(typeof A!="boolean"){let k;if(k===void 0)if(A==="false"||A===0||A===null)k=!1;else if(A==="true"||A===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/error",schemaPath:"#/properties/simulate/properties/error/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(A=k,_!==void 0&&(_.error=k))}var S=R===o}else var S=!0;if(S)if(_.close!==void 0){let A=_.close,R=o;if(typeof A!="boolean"){let k;if(k===void 0)if(A==="false"||A===0||A===null)k=!1;else if(A==="true"||A===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/close",schemaPath:"#/properties/simulate/properties/close/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(A=k,_!==void 0&&(_.close=k))}var S=R===o}else var S=!0}}}else return eo.errors=[{instancePath:t+"/simulate",schemaPath:"#/properties/simulate/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=b===o}else var m=!0;if(m){if(e.authority!==void 0){let _=e.authority,b=o;if(typeof _!="string"){let A=typeof _,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+_;else if(_===null)R="";else return eo.errors=[{instancePath:t+"/authority",schemaPath:"#/properties/authority/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;R!==void 0&&(_=R,e!==void 0&&(e.authority=R))}var m=b===o}else var m=!0;if(m){if(e.remoteAddress!==void 0){let _=e.remoteAddress,b=o;if(typeof _!="string"){let A=typeof _,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+_;else if(_===null)R="";else return eo.errors=[{instancePath:t+"/remoteAddress",schemaPath:"#/properties/remoteAddress/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;R!==void 0&&(_=R,e!==void 0&&(e.remoteAddress=R))}var m=b===o}else var m=!0;if(m){if(e.method!==void 0){let _=e.method,b=o;if(typeof _!="string"){let A=typeof _,R;if(R===void 0)if(A=="number"||A=="boolean")R=""+_;else if(_===null)R="";else return eo.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;R!==void 0&&(_=R,e!==void 0&&(e.method=R))}if(!(_==="ACL"||_==="BIND"||_==="CHECKOUT"||_==="CONNECT"||_==="COPY"||_==="DELETE"||_==="GET"||_==="HEAD"||_==="LINK"||_==="LOCK"||_==="M-SEARCH"||_==="MERGE"||_==="MKACTIVITY"||_==="MKCALENDAR"||_==="MKCOL"||_==="MOVE"||_==="NOTIFY"||_==="OPTIONS"||_==="PATCH"||_==="POST"||_==="PROPFIND"||_==="PROPPATCH"||_==="PURGE"||_==="PUT"||_==="QUERY"||_==="REBIND"||_==="REPORT"||_==="SEARCH"||_==="SOURCE"||_==="SUBSCRIBE"||_==="TRACE"||_==="UNBIND"||_==="UNLINK"||_==="UNLOCK"||_==="UNSUBSCRIBE"||_==="acl"||_==="bind"||_==="checkout"||_==="connect"||_==="copy"||_==="delete"||_==="get"||_==="head"||_==="link"||_==="lock"||_==="m-search"||_==="merge"||_==="mkactivity"||_==="mkcalendar"||_==="mkcol"||_==="move"||_==="notify"||_==="options"||_==="patch"||_==="post"||_==="propfind"||_==="proppatch"||_==="purge"||_==="put"||_==="query"||_==="rebind"||_==="report"||_==="search"||_==="source"||_==="subscribe"||_==="trace"||_==="unbind"||_==="unlink"||_==="unlock"||_==="unsubscribe"))return eo.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/enum",keyword:"enum",params:{allowedValues:uLn.properties.method.enum},message:"must be equal to one of the allowed values"}],!1;var m=b===o}else var m=!0;if(m)if(e.validate!==void 0){let _=e.validate,b=o;if(typeof _!="boolean"){let A;if(A===void 0)if(_==="false"||_===0||_===null)A=!1;else if(_==="true"||_===1)A=!0;else return eo.errors=[{instancePath:t+"/validate",schemaPath:"#/properties/validate/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;A!==void 0&&(_=A,e!==void 0&&(e.validate=A))}var m=b===o}else var m=!0}}}}}}}}}else return eo.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return eo.errors=s,o===0}});var jct=w((X3r,oD)=>{"use strict";var lLn=Y("node:assert"),Ude=Ict(),dK=Dct(),pK="The dispatch function has already been invoked",Uct=Lct();function Fde(e,t,n){return n===void 0?new sD(e,t):fK(e,t,n)}function dLn(e,t){let n=e._lightMyRequest.payload;if(!n||n._readableState||typeof n.resume!="function")return t();let r=[];n.on("data",i=>r.push(Buffer.from(i))),n.on("end",()=>{let i=Buffer.concat(r);return e.headers["content-length"]=e.headers["content-length"]||""+i.length,delete e.headers["transfer-encoding"],e._lightMyRequest.payload=i,t()}),n.resume()}function Fct(e,t,n,r){return n.once("error",function(i){this.destroyed&&r.destroy(i)}),n.once("close",function(){this.destroyed&&!this._error&&r.destroy()}),dLn(n,()=>e.call(t,n,r))}function fK(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(lLn(typeof e=="function","dispatchFunc should be a function"),!Uct(t)))throw new Error(Uct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Ude.CustomRequest:Ude;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),dK.prototype)),typeof n=="function"){let s=new i(t),o=new dK(s,n);return Fct(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new dK(a,s,o);Fct(e,r,a,c)})}function sD(e,t){typeof t=="string"?this.option={url:t}:this.option=Object.assign({},t),this.dispatch=e,this._hasInvoked=!1,this._promise=null,this.option.autoStart!==!1&&process.nextTick(()=>{this._hasInvoked||this.end()})}var fLn=["delete","get","head","options","patch","post","put","trace"];fLn.forEach(e=>{sD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(pK);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var pLn=["body","cookies","headers","payload","query"];pLn.forEach(e=>{sD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(pK);return this.option[e]=t,this}});sD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(pK);if(this._hasInvoked=!0,typeof e=="function")fK(this.dispatch,this.option,e);else return this._promise=fK(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(sD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(pK);this._hasInvoked=!0,this._promise=fK(this.dispatch,this.option)}return this._promise[e](...t)})});function hLn(e){return e instanceof Ude||e instanceof dK||e?.constructor?.name==="_CustomLMRRequest"}oD.exports=Fde;oD.exports.default=Fde;oD.exports.inject=Fde;oD.exports.isInjection=hLn});var tut=w((Q3r,dD)=>{"use strict";var mLn="5.8.5",gLn=fQe(),yK=Y("node:http"),yLn=Y("node:diagnostics_channel"),aD,{kAvvioBoot:cD,kChildren:jde,kServerBindings:Hct,kBodyLimit:SLn,kSupportedHTTPMethods:yT,kRoutePrefix:qct,kLogLevel:ELn,kLogSerializers:_Ln,kHooks:Hde,kSchemaController:aE,kRequestAcceptVersion:bLn,kReplySerializerDefault:Bct,kContentTypeParser:TLn,kReply:vLn,kRequest:ALn,kFourOhFour:RLn,kState:Qi,kOptions:qde,kPluginNameChain:uD,kSchemaErrorFormatter:Bde,kErrorHandler:hK,kKeepAliveConnections:Gde,kChildLoggerFactory:zde,kGenReqId:Vde,kErrorHandlerAlreadySet:mK,kHandlerTimeout:wLn}=$s(),{createServer:kLn}=HQe(),lD=n4(),gK=c4(),ILn=u4(),ST=AM(),ET=xue(),Gct=kle(),{Hooks:xLn,hookRunnerApplication:zct,supportedHooks:Wde}=KS(),{createChildLogger:Vct,defaultChildLoggerFactory:OLn,createLogger:PLn}=EM(),Wct=Qle(),{getGenReqId:Kct,reqIdGenFactory:$ct}=F4(),{buildRouting:NLn,validateBodyLimitOption:CLn,buildRouterOptions:MLn}=Jat(),DLn=rct(),eut=sct(),LLn=hct(),{appendStackTrace:ULn,AVVIO_ERRORS_MAP:Yct,..._T}=Ko(),FLn=$ae(),{defaultInitOptions:xu}=eut,{FST_ERR_ASYNC_CONSTRAINT:jLn,FST_ERR_BAD_URL:HLn,FST_ERR_OPTIONS_NOT_OBJ:qLn,FST_ERR_QSP_NOT_FN:BLn,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:GLn,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:zLn,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:VLn,FST_ERR_INSTANCE_ALREADY_LISTENING:WLn,FST_ERR_REOPENED_CLOSE_SERVER:KLn,FST_ERR_ROUTE_REWRITE_NOT_STR:YLn,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:Zct,FST_ERR_ERROR_HANDLER_NOT_FN:ZLn,FST_ERR_ERROR_HANDLER_ALREADY_SET:JLn,FST_ERR_ROUTE_METHOD_INVALID:XLn}=_T,{buildErrorHandler:Jct}=bM(),{FSTWRN004:QLn}=xk(),Xct=yLn.channel("fastify.initialization");function Kde(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=$Ln(e,P,N),o=NLn(t.routerOptions),a=DLn(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=kLn(t,c),m=lD.setupResponseListeners,g=Gct.buildSchemaController(null,t.schemaController),y={[Qi]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[Gde]:h,[yT]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[qde]:t,[jde]:[],[Hct]:[],[SLn]:t.bodyLimit,[wLn]:t.handlerTimeout,[qct]:"",[ELn]:"",[_Ln]:null,[Hde]:new xLn,[aE]:g,[Bde]:null,[hK]:Jct(),[mK]:!1,[zde]:t.childLoggerFactory||OLn,[Bct]:null,[TLn]:new ET(t.bodyLimit,t.onProtoPoisoning||xu.onProtoPoisoning,t.onConstructorPoisoning||xu.onConstructorPoisoning),[vLn]:lD.buildReply(lD),[ALn]:gK.buildRequest(gK,t.trustProxy),[RLn]:a,[Wct.kRegisteredPlugins]:[],[uD]:["fastify"],[cD]:null,[Vde]:n,routing:c,delete:function(W,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:W,options:ee,handler:se})},get:function(W,ee,se){return o.prepareRoute.call(this,{method:"GET",url:W,options:ee,handler:se})},head:function(W,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:W,options:ee,handler:se})},trace:function(W,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:W,options:ee,handler:se})},patch:function(W,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:W,options:ee,handler:se})},post:function(W,ee,se){return o.prepareRoute.call(this,{method:"POST",url:W,options:ee,handler:se})},put:function(W,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:W,options:ee,handler:se})},options:function(W,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:W,options:ee,handler:se})},all:function(W,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:W,options:ee,handler:se})},route:function(W){return o.route.call(this,{options:W})},hasRoute:function(W){return o.hasRoute.call(this,{options:W})},findRoute:function(W){return o.findRoute(W)},log:t.logger,withTypeProvider:R,addHook:x,addSchema:k,getSchema:g.getSchema.bind(g),getSchemas:g.getSchemas.bind(g),setValidatorCompiler:V,setSerializerCompiler:$,setSchemaController:B,setReplySerializer:X,setSchemaErrorFormatter:K,setGenReqId:D,addContentTypeParser:ET.helpers.addContentTypeParser,hasContentTypeParser:ET.helpers.hasContentTypeParser,getDefaultJsonParser:ET.defaultParsers.getDefaultJsonParser,defaultTextParser:ET.defaultParsers.defaultTextParser,removeContentTypeParser:ET.helpers.removeContentTypeParser,removeAllContentTypeParsers:ET.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(j){return this[Wct.kRegisteredPlugins].includes(j)||this[uD].includes(j)},listen:l,server:u,addresses:function(){let j=this[Hct].map(W=>W.address());return j.push(this.server.address()),j.filter(W=>W)},decorate:ST.add,hasDecorator:ST.exist,decorateReply:ST.decorateReply,decorateRequest:ST.decorateRequest,hasRequestDecorator:ST.existRequest,hasReplyDecorator:ST.existReply,getDecorator:ST.getInstanceDecorator,addHttpMethod:H,inject:T,printRoutes:q,setNotFoundHandler:F,setErrorHandler:G,setChildLoggerFactory:M,initialConfig:s,addConstraintStrategy:o.addConstraintStrategy.bind(o),hasConstraintStrategy:o.hasConstraintStrategy.bind(o)};Object.defineProperties(y,{listeningOrigin:{get(){let j=this.addresses().slice(-1).pop();if(typeof j=="string")return j;let W=j.family==="IPv6"?`[${j.address}]`:j.address;return`${this[qde].https?"https":"http"}://${W}:${j.port}`}},pluginName:{configurable:!0,get(){return this[uD].length>1?this[uD].join(" -> "):this[uD][0]}},prefix:{configurable:!0,get(){return this[qct]}},validatorCompiler:{configurable:!0,get(){return this[aE].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[aE].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[zde]}},version:{configurable:!0,get(){return mLn}},errorHandler:{configurable:!0,get(){return this[hK].func}},genReqId:{configurable:!0,get(){return this[Vde]}},supportedMethods:{configurable:!1,get(){return[...this[yT].bodyless,...this[yT].bodywith]}}}),t.schemaErrorFormatter&&(Qct(t.schemaErrorFormatter),y[Bde]=t.schemaErrorFormatter.bind(y));let E=Number(t.pluginTimeout),S=gLn(y,{autostart:!1,timeout:isNaN(E)===!1?E:xu.pluginTimeout,expose:{use:"register"}});S.override=LLn,S.on("start",()=>y[Qi].started=!0),y[cD]=y.ready,y.ready=A,y.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{y.onClose((j,W)=>{y[Qi].closing=!0,o.closeRoutes(),zct("preClose",y[cD],y,function(){if(y[Qi].listening){if(d==="idle")j.server.closeIdleConnections();else if(f&&d)j.server.closeAllConnections();else if(d===!0)for(let ee of y[Gde])ee.destroy(),y[Gde].delete(ee)}p&&j.server.closeHttp2Sessions(),!t.serverFactory||y[Qi].listening?j.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?W(null):W()}):process.nextTick(W,null)})})});let _=new ILn({server:y,config:{}});return y.setNotFoundHandler(),a.arrange404(y),o.setup(t,{avvio:S,fourOhFour:a,hasLogger:i,setupResponseListeners:m,throwIfAlreadyStarted:b,keepAliveConnections:h}),u.on("clientError",t.clientErrorHandler.bind(y)),Xct.hasSubscribers&&Xct.publish({fastify:y}),"asyncDispose"in Symbol&&(y[Symbol.asyncDispose]=function(){return y.close()}),y;function b(j){if(y[Qi].started)throw new WLn(j)}function T(j,W){if(aD===void 0&&(aD=jct()),y[Qi].started){if(y[Qi].closing){let ee=new KLn;if(W){W(ee);return}else return Promise.reject(ee)}return aD(c,j,W)}if(W)this.ready(ee=>{ee?W(ee,null):aD(c,j,W)});else return aD((ee,se)=>{this.ready(function(Me){if(Me){se.emit("error",Me);return}c(ee,se)})},j)}function A(j){if(this[Qi].readyResolver!==null){if(j!=null){this[Qi].readyResolver.promise.then(()=>j(null,y),j);return}return this[Qi].readyResolver.promise}if(process.nextTick(W),this[Qi].readyResolver=FLn.withResolvers(),j)this[Qi].readyResolver.promise.then(()=>j(null,y),j);else return this[Qi].readyResolver.promise;function W(){y[cD]((se,Me)=>{se||y[Qi].started||y[Qi].ready||y[Qi].booting?ee(se):(y[Qi].booting=!0,zct("onReady",y[cD],y,ee)),Me()})}function ee(se){if(se=se!=null&&Yct[se.code]!=null?ULn(se,new Yct[se.code](se.message)):se,se)return y[Qi].readyResolver.reject(se);y[Qi].readyResolver.resolve(y),y[Qi].booting=!1,y[Qi].ready=!0,y[Qi].readyResolver=null}}function R(){return this}function x(j,W){if(b('Cannot call "addHook"!'),W==null)throw new _T.FST_ERR_HOOK_INVALID_HANDLER(j,W);if(j==="onSend"||j==="preSerialization"||j==="onError"||j==="preParsing"){if(W.constructor.name==="AsyncFunction"&&W.length===4)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onReady"||j==="onListen"){if(W.constructor.name==="AsyncFunction"&&W.length!==0)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onRequestAbort"){if(W.constructor.name==="AsyncFunction"&&W.length!==1)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(W.constructor.name==="AsyncFunction"&&W.length===3)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return j==="onClose"?this.onClose(W.bind(this)):j==="onReady"||j==="onListen"||j==="onRoute"?this[Hde].add(j,W):this.after((se,Me)=>{try{ee.call(this,j,W),Me(se)}catch(Re){Me(Re)}}),this;function ee(se,Me){this[Hde].add(se,Me),this[jde].forEach(Re=>ee.call(Re,se,Me))}}function k(j){return b('Cannot call "addSchema"!'),this[aE].add(j),this[jde].forEach(W=>W.addSchema(j)),this}function P(j,W){j.headers["accept-version"]!==void 0&&(j.headers[bLn]=j.headers["accept-version"],j.headers["accept-version"]=void 0),a.router.lookup(j,W)}function N(j,W,ee){if(t.frameworkErrors){let Me=Kct(_.server,W),Re=Vct(_,t.logger,W,Me),z=new gK(Me,null,W,null,Re,_),J=new lD(ee,z,Re);return(typeof r=="function"?r(W):r)===!1&&Re.info({req:z},"incoming request"),t.frameworkErrors(new HLn(j),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${j}' is not a valid url component`,statusCode:400});ee.writeHead(400,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(se)}),ee.end(se)}function C(j,W,ee){if(j!==!1)return function(Me){if(Me){if(t.frameworkErrors){let z=Kct(_.server,W),J=Vct(_,t.logger,W,z),oe=new gK(z,null,W,null,J,_),le=new lD(ee,oe,J);return(typeof r=="function"?r(W):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new jLn,oe,le)}let Re='{"error":"Internal Server Error","message":"Unexpected error from async constraint","statusCode":500}';ee.writeHead(500,{"Content-Type":"application/json","Content-Length":Re.length}),ee.end(Re)}}}function F(j,W){return b('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,j,W,S,o.routeHandler),this}function V(j){return b('Cannot call "setValidatorCompiler"!'),this[aE].setValidatorCompiler(j),this}function K(j){return b('Cannot call "setSchemaErrorFormatter"!'),Qct(j),this[Bde]=j.bind(this),this}function $(j){return b('Cannot call "setSerializerCompiler"!'),this[aE].setSerializerCompiler(j),this}function B(j){b('Cannot call "setSchemaController"!');let W=this[aE],ee=Gct.buildSchemaController(W,Object.assign({},W.opts,j));return this[aE]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function X(j){return b('Cannot call "setReplySerializer"!'),this[Bct]=j,this}function G(j){if(b('Cannot call "setErrorHandler"!'),typeof j!="function")throw new ZLn;if(!t.allowErrorHandlerOverride&&this[mK])throw new JLn;return this[mK]&&QLn("To disable this behavior, set 'allowErrorHandlerOverride' to false or ignore this message. For more information, visit: https://fastify.dev/docs/latest/Reference/Server/#allowerrorhandleroverride"),this[mK]=!0,this[hK]=Jct(this[hK],j.bind(this)),this}function M(j){return b('Cannot call "setChildLoggerFactory"!'),this[zde]=j,this}function q(j={}){return j.includeMeta=j.includeHooks?j.includeMeta?Wde.concat(j.includeMeta):Wde:j.includeMeta,o.printRoutes(j)}function U(j,{rewriteUrl:W,logger:ee}){let se;return function(Re,z){if(se===void 0&&(se=j.isAsyncConstraint()),W){Re.originalUrl=Re.url;let J=W.call(y,Re);if(typeof J=="string")Re.url=J;else{let oe=new YLn(Re.url,typeof J);Re.destroy(oe)}}j.routing(Re,z,C(se,Re,z))}}function D(j){return b('Cannot call "setGenReqId"!'),this[Vde]=$ct(this[qde].requestIdHeader,j),this}function H(j,{hasBody:W=!1}={}){if(typeof j!="string"||yK.METHODS.indexOf(j)===-1)throw new XLn;W===!0?(this[yT].bodywith.add(j),this[yT].bodyless.delete(j)):(this[yT].bodywith.delete(j),this[yT].bodyless.add(j));let ee=j.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Me,Re){return o.prepareRoute.call(this,{method:j,url:se,options:Me,handler:Re})}),this}}function $Ln(e,t,n){if(e&&typeof e!="object")throw new qLn;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new BLn(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new GLn(typeof e.schemaController.bucket);CLn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=$ct(r,e.genReqId),s=e.requestIdLogLabel||"reqId";e.bodyLimit=e.bodyLimit||xu.bodyLimit;let o=e.disableRequestLogging||!1,a=Object.assign({customOptions:{},plugins:[]},e.ajv);if(!a.customOptions||Object.prototype.toString.call(a.customOptions)!=="[object Object]")throw new zLn(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new VLn(typeof a.plugins);let{logger:c,hasLogger:u}=PLn(e);e.connectionTimeout=e.connectionTimeout||xu.connectionTimeout,e.keepAliveTimeout=e.keepAliveTimeout||xu.keepAliveTimeout,e.maxRequestsPerSocket=e.maxRequestsPerSocket||xu.maxRequestsPerSocket,e.requestTimeout=e.requestTimeout||xu.requestTimeout,e.logger=c,e.requestIdHeader=r,e.requestIdLogLabel=s,e.disableRequestLogging=o,e.ajv=a,e.clientErrorHandler=e.clientErrorHandler||t1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??xu.allowErrorHandlerOverride;let l=eut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=MLn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:xu.ignoreTrailingSlash,ignoreDuplicateSlashes:xu.ignoreDuplicateSlashes,maxParamLength:xu.maxParamLength,allowUnsafeRegex:xu.allowUnsafeRegex,buildPrettyMeta:e1n,useSemicolonDelimiter:xu.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function e1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(Wde).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function t1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=yK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=yK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=yK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Error","statusCode":400}`,s="error"),this.log.trace({err:e},`client ${s}`),t.writable&&t.write(`HTTP/1.1 ${r} ${i}\r Content-Length: ${n.length}\r Content-Type: application/json\r \r -${n}`),t.destroy(e)}function bct(e){if(typeof e!="function")throw new Sct(typeof e);if(e.constructor.name==="AsyncFunction")throw new Sct("AsyncFunction")}rD.exports=xde;rD.exports.errorCodes=gT;rD.exports.fastify=xde;rD.exports.default=xde});var ml=v(()=>{Rne();Rne()});var rLn,Ode=v(()=>{"use strict";ml();rLn=O.object({ok:O.literal(!0),stage:O.string().describe("The stage the advance signal was resolved against."),open_feedback_count:O.number().int().min(0).describe("Number of pending / fixing / addressed feedback items on the stage at the time of the call. Zero means the engine stamped the user slots; non-zero means it didn't \u2014 the cursor will walk Track B first."),stamped_user_slots:O.boolean().describe("True when this call stamped `reviews.user` and `approvals.user` on the units that needed them (i.e., open_feedback_count was zero).")}).describe("POST /api/advance/:sessionId response body")});var iLn,sLn,Nde=v(()=>{"use strict";ml();iLn=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),sLn=O.object({token:O.string().min(1).max(512).describe("Bearer token value (1..512 chars)."),issued_at:O.string().min(1).max(64).describe("ISO-8601 timestamp the token was minted (\u2264 64 chars)."),expires_at:O.string().min(1).max(64).optional().describe("ISO-8601 expiry timestamp. Optional \u2014 tokens without an expiry are long-lived (deployment policy determines acceptability).")}).describe("Session-token skeleton for future non-loopback deployments. Not wired to any current route.")});var Rct,Pde,wct,iD,iK,kct,Ict,Cde,xct,eI,oLn,aLn,sK,h3r,sD,cLn,m3r,oD,oK,aD,Mde,og=v(()=>{"use strict";ml();Nde();Rct=O.enum(["human","agent","system"]).describe("Derived from origin. Human-authored feedback cannot be closed/deleted by agents. `system` is reserved for engine-authored FBs (e.g. reject-loop escalation) that the SPA surfaces to humans but treats distinctly from agent and human authorship."),Pde=O.enum(["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"]).describe("Origin of a feedback item. Derives author_type (human|agent) via state-tools.deriveAuthorType. `user-question` marks a reply-seeking item that the router handles with `feedback_answer` instead of a fix loop. `engine-review` is the engine-built review roles (spec/continuity/cross-stage-consistency)."),wct=O.enum(["blocker","high","medium","low"]).describe("Finding urgency: blocker (stops the gate) > high (fix before delivery) > medium (should fix) > low (nit). Drives fix-loop dispatch order."),iD=O.enum(["pending","fixing","addressed","answered","non_actionable","escalated","closed","rejected"]).describe("Lifecycle: pending -> fixing -> addressed -> closed, or pending -> answered (question resolved by reply, no code delta), or pending -> non_actionable (valid but no code fix \u2014 a question, out-of-scope note, or immutable/superseded target; terminally closed and acknowledged, distinct from rejected/invalid), or pending -> rejected, or pending|fixing -> escalated (bolt cap exceeded on agent FBs). Only pending/fixing block the stage gate; escalated is a human-intervention waypoint, not a blocker."),iK=O.enum(["question","inline_fix","stage_revisit"]).describe("Routing hint for the FSM's feedback resolver. null = caller has no preference, router defaults to stage_revisit."),kct=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:Rct,body:O.string().min(1).max(5e3).describe("Reply body (\u2264 5,000 chars)."),created_at:O.string().max(40).describe("ISO-8601 timestamp the reply was written.")}).describe("A single reply on a feedback thread"),Ict=Rct,Cde=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to canvas width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to canvas height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)")}).describe("Screenshot pin annotation"),xct=O.object({selectedText:O.string().max(2e3).describe("Highlighted text the comment anchors to (capped at 2,000 chars)"),comment:O.string().max(1e4).describe("Comment body (capped at 10,000 chars)"),paragraph:O.number().describe("Zero-based paragraph index inside the reviewed artifact"),location:O.string().max(500).optional().describe("Artifact path (relative to intent root) the comment was made on \u2014 e.g. `knowledge/DISCOVERY.md` or `stages/security/THREAT-MODEL.md`. Omitted for unit-spec / in-session contexts where the parent has a single implicit location.")}).describe("Inline text-anchored comment annotation"),eI=O.object({screenshot:O.string().max(65536).optional().describe("Base64-encoded PNG of annotated canvas (capped at 65,536 chars \u2014 matches WS frame cap)"),pins:O.array(Cde).optional(),comments:O.array(xct).optional()}).describe("Annotations attached to a review decision"),oLn=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to image width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to image height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] \u2014 which reference image this pin sits on")}).describe("Per-image pin annotation on a question session"),aLn=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] this annotation was captured on")}).describe("One reviewer annotation pass over a question reference image"),sK=O.object({comments:O.array(xct).optional(),pins:O.array(oLn).optional(),screenshots:O.array(aLn).max(20).optional()}).describe("Annotations attached to a question answer"),h3r=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),sD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),cLn=O.object({code:O.string(),message:O.string(),path:O.array(O.union([O.string(),O.number()]))}).passthrough().describe("Structural ZodIssue on the wire \u2014 we expose code/message/path at minimum; extra keys are preserved via passthrough."),m3r=O.object({error:O.literal("validation_failed"),issues:O.array(cLn)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),oD=1048576,oK=131072,aD=8388608,Mde=33554432});var uLn,lLn,dLn,fLn,pLn,hLn,mLn,Dde,gLn,Lde=v(()=>{"use strict";ml();og();uLn=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)")}).describe("One reviewer annotation pass over the chosen preview"),lLn=O.object({pins:O.array(Cde).optional(),screenshots:O.array(uLn).max(20).optional()}).describe("Annotations attached to a design-direction selection"),dLn=O.object({mode:O.literal("select"),archetype:O.string().max(64).describe("Archetype name selected by the user from the design-direction set"),comments:O.string().max(1e4).optional().describe("Optional free-text comments accompanying the selection"),annotations:lLn.optional()}).describe("Final selection \u2014 user picked one archetype"),fLn=O.object({mode:O.literal("regenerate"),keep:O.array(O.string().max(64)).max(50).describe("Archetype names the user wants preserved; the agent should produce fresh variants for the remaining slots"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the next generation \u2014 what to change, what to lean into")}).describe("Regenerate request \u2014 user wants more / different variants"),pLn=O.object({filename:O.string().min(1).max(255).describe("Original filename (sanitised by the server)"),data_url:O.string().max(15e5).describe("`data:image/...;base64,...` URL of the uploaded file (1.5 MB cap per file, matches screenshot annotations)"),caption:O.string().max(1e4).optional().describe("Optional caption describing what this artefact represents")}).describe("One uploaded design file in an upload-mode submission"),hLn=O.object({mode:O.literal("upload"),files:O.array(pLn).min(1).max(20).describe("Designer-provided files to use directly as the chosen direction (no archetype generation)"),comments:O.string().max(1e4).optional().describe("Optional overall notes about the uploaded direction \u2014 what the designer wants the agent to honour")}).describe("Upload submission \u2014 designer provided finished designs; skip archetype generation"),mLn=O.object({mode:O.literal("generate"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the agent's first archetype generation")}).describe("Intake signal \u2014 user has no uploads and wants the agent to generate variants"),Dde=O.discriminatedUnion("mode",[dLn,fLn,hLn,mLn]).describe("POST /direction/:sessionId/select request body"),gLn=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var Oct,yLn,SLn,_Ln,ELn,Ude,bLn,jde,TLn,vLn,Fde,ALn,Hde=v(()=>{"use strict";ml();og();Oct=O.object({selected_text:O.string().min(1).max(1e3),paragraph:O.number().int().nonnegative().max(1e4),location:O.string().max(500),comment_id:O.string().max(200).optional(),file_path:O.string().max(1e3).optional(),content_sha:O.string().max(64).optional()}).describe("Inline text-anchor metadata for inline-comment feedback"),yLn=O.object({feedback_id:O.string().max(32).describe("FB-NN identifier (scoped per stage)"),title:O.string().max(200),body:O.string().max(1e4),status:iD,origin:Pde,severity:wct.nullable().optional().describe("Finding urgency. null/absent for user-authored FBs not yet classified by the classifier fix-hat, and for pre-severity legacy FBs."),author:O.string().max(200).describe("Free-form author handle (e.g. 'user', 'agent')"),author_type:Ict,created_at:O.string().max(40).describe("ISO-8601 creation timestamp"),visit:O.number().int().nonnegative().describe("Stage-visit counter at creation time"),source_ref:O.string().max(1e3).nullable().describe("Back-reference to origin artifact (e.g. review-agent run id)"),closed_by:O.string().max(200).nullable().describe("Unit slug whose feedback-assessor hat certified closure, or null while open."),resolution:iK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(kct).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:Oct.nullable().optional().describe("Inline-text anchor metadata. Present when the feedback was created by selecting text in a rendered artifact and attaching a comment. Null / absent for visual-pin or plain chat feedback."),scope:O.enum(["intent","stage"]).optional().describe("Whether this feedback lives under .haiku/intents//feedback/ (intent scope, logged by the studio-level completion review) or .haiku/intents//stages//feedback/ (stage scope, the normal adversarial review output). UI shows intent-scope items with a distinguishing chip so cross-stage findings don't get hidden behind a stage tab."),iterations:O.array(O.object({bolt:O.number().int().nonnegative(),hat:O.string().max(200),started_at:O.string().max(40).optional(),completed_at:O.string().max(40).optional(),result:O.enum(["advanced","closed","reopened","rejected"]).optional(),commit:O.string().max(64).optional(),message:O.string().max(4e3).optional(),reason:O.string().max(1e3).optional()})).optional().describe("Per-bolt history of the fix loop \u2014 one entry per hat that fires against this finding. Mirrors the `iterations:` frontmatter on unit files so reviewers can see at a glance why a finding needed multiple tries."),closure_reply:O.object({text:O.string().max(2e3),at:O.string().max(40)}).optional().describe("Agent's plain-language reply to the requester at FB closure time. Set on the terminal fix-hat advance."),closure_reply_unread:O.boolean().optional().describe("True when the reply hasn't been acknowledged in the SPA yet. Flipped to false by the dismiss action.")}).describe("Wire shape of a feedback item"),SLn=O.object({intent:O.string(),stage:O.string(),count:O.number().int().nonnegative(),items:O.array(yLn)}).describe("GET /api/feedback/:intent/:stage response body"),_Ln=O.object({pageId:O.string().min(1).max(200),x:O.number().min(0).max(1),y:O.number().min(0).max(1),viewportWidth:O.number().int().positive().max(1e4),viewportHeight:O.number().int().positive().max(1e4)}).describe("Pin anchor metadata for visual annotations"),ELn=6e6,Ude=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:Pde.optional().default("user-visual"),author:O.string().max(200).optional().describe("Ignored by the server \u2014 retained for backward compatibility only. The HTTP feedback-create handler always stamps `user` as the author for HTTP-sourced submissions (see packages/haiku/src/http.ts:1526). Do NOT rely on this field to convey identity: there is no session-context author resolution today, so honoring client-supplied values would let any HTTP caller forge authorship. Treat any value submitted here as untrusted data that crosses into the server trust boundary and is discarded."),source_ref:O.string().max(1e3).nullable().optional(),anchor:_Ln.optional(),inline_anchor:Oct.optional(),resolution:iK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(ELn).regex(/^data:image\/(png|jpeg|webp);base64,[A-Za-z0-9+/=]+$/,{message:"attachment_data_url must be a base64-encoded data URL for png/jpeg/webp (svg rejected \u2014 stored-XSS risk)"}).optional()}).describe("POST /api/feedback/:intent/:stage request body"),bLn=O.object({feedback_id:O.string(),file:O.string().describe("Path to the committed feedback file (relative to .haiku root)"),status:O.literal("pending"),message:O.string()}).describe("POST /api/feedback/:intent/:stage response body"),jde=O.object({status:iD.optional(),closed_by:O.string().max(200).optional(),resolution:iK.nullable().optional()}).refine(e=>e.status!==void 0||e.closed_by!==void 0||e.resolution!==void 0,{message:"At least one of 'status' / 'closed_by' / 'resolution' must be provided"}).describe("PUT /api/feedback/:intent/:stage/:id request body"),TLn=O.object({feedback_id:O.string(),updated_fields:O.array(O.string()).describe("List of frontmatter fields that were actually changed"),message:O.string()}).describe("PUT /api/feedback/:intent/:stage/:id response body"),vLn=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),Fde=O.object({body:O.string().min(1).max(5e3),author:O.string().max(200).optional().describe("Optional author hint. When omitted the server stamps 'user' or the agent name from session context."),close_as_answered:O.boolean().optional()}).describe("POST /api/feedback/:intent/:stage/:id/replies request body"),ALn=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:iD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var qde,Bde,RLn,aK=v(()=>{"use strict";ml();og();qde=O.object({question:O.string().max(1e3).describe("Question prompt text (echoed back)"),selectedOptions:O.array(O.string().max(200)).max(50).describe("Options the user selected (may contain one or many)"),otherText:O.string().max(2e3).optional().describe("Free-text 'other' input, when the question allows it")}).describe("A single question's answer in a multi-question session"),Bde=O.object({answers:O.array(qde).max(50),feedback:O.string().max(1e4).optional(),annotations:sK.optional()}).describe("POST /question/:sessionId/answer request body"),RLn=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var wLn,Gde,kLn,zde=v(()=>{"use strict";ml();og();wLn=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),Gde=O.object({decision:O.string().describe("Raw decision string \u2014 server canonicalizes to 'approved' or 'changes_requested'."),feedback:O.string().optional().describe("Reviewer-provided free-text feedback"),annotations:eI.optional()}).describe("POST /review/:sessionId/decide request body"),kLn=O.object({ok:O.literal(!0),decision:wLn,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var cD,P3r,ILn,xLn,OLn,Nct,NLn,PLn,CLn,Pct,MLn,DLn,LLn,ULn,jLn,FLn,HLn,qLn,BLn,GLn,zLn,VLn,WLn,KLn,ZLn,YLn,JLn,XLn,QLn,$Ln,e1n,t1n,C3r,n1n,Vde=v(()=>{"use strict";ml();og();cD=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),P3r=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),ILn=O.object({stage:O.string(),mergedIntoMain:O.boolean(),status:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),phase:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),started_at:O.string().optional(),completed_at:O.string().nullable().optional(),gate_entered_at:O.string().nullable().optional(),gate_outcome:O.string().nullable().optional()}).describe("Per-stage status snapshot. v4: only `stage` and `mergedIntoMain` are authoritative; other fields are deprecated v3 shims pending SPA rewrite."),xLn=O.object({name:O.string(),content:O.string()}),OLn=O.object({stage:O.string(),name:O.string(),content:O.string()}),Nct=O.object({stage:O.string(),name:O.string(),type:O.enum(["markdown","html","image","file"]),content:O.string().optional(),relativePath:O.string().optional(),intentRelativePath:O.string().optional()}),NLn=O.object({path:O.string(),name:O.string(),type:O.enum(["markdown","html","image","file"]),url:O.string(),previewBody:O.string().optional(),sizeBytes:O.number().int().nonnegative().optional(),exists:O.boolean()}),PLn=O.object({path:O.string(),stage:O.string(),intent:O.string(),action:O.enum(["modified","added","deleted"]),age:O.string(),kind:O.enum(["spec","output","discovery_output","discovery_mandate"]).optional(),unit:O.string().optional(),role:O.string().optional()}).describe("One drift-sweep entry: a witnessed unit/output/discovery artifact whose on-disk content no longer matches the stored hash. Surfaced in the SPA's DriftBanner."),CLn=O.object({feedback:O.string(),reviewedAt:O.string(),intentRawContent:O.string(),unitRawContents:O.record(O.string())}).describe("Snapshot of the prior review attached when the current review follows a changes_requested decision."),Pct=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),MLn=O.object({studio:O.string(),stage:O.string(),phase:O.enum(["elaborate","execute","review","approve","complete","gate",""]),step:O.string().optional(),nextState:O.object({stage:O.string().optional(),phase:O.enum(["elaborate","execute","review","approve","complete","gate"]).optional(),step:O.string().optional(),blockedOn:O.enum(["user-gate","external-review","feedback-fix"]).nullable().optional()}).nullable().optional(),pending_signals:O.array(O.string()).optional(),milestones:O.array(Pct).optional(),progress_index:O.number().int().nonnegative().optional(),progress_total:O.number().int().nonnegative().optional()}).describe("Unified current-state snapshot \u2014 derived fresh per request from per-unit frontmatter and branch-merge state. The single source of truth for 'where is this intent right now?'."),DLn=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),LLn=O.object({label:O.string(),kind:DLn}).describe("Server-computed Approve button label + kind. The SPA renders `label` verbatim so the button reflects the next consequence (e.g. 'Complete Development Stage', 'Open Development Pull Request', 'Mark Intent Done')."),ULn=O.object({url:O.string(),source:O.enum(["github-pr-ref","gitlab-mr-ref"]),prNumber:O.number().int().positive(),matchedSha:O.string()}).describe("PR/MR auto-discovered via raw git from a published head ref"),jLn=O.object({session_id:O.string(),session_type:O.literal("review"),status:sD,intent_slug:O.string().optional(),intent_dir:O.string().optional(),gate_type:O.string().optional(),target:O.string().optional(),decision:O.string().optional(),feedback:O.string().optional(),annotations:eI.optional(),intent:cD.optional(),units:O.array(cD).optional(),criteria:O.array(cD).optional(),mermaid:O.string().optional(),intent_mockups:O.array(cD).optional(),unit_mockups:O.record(O.array(cD)).optional(),stage_states:O.record(ILn).optional(),stage_summaries:O.record(O.string()).optional(),stage_briefs:O.record(O.string()).optional(),stage_observations:O.record(O.string()).optional(),reflection:O.string().optional(),stage_milestones:O.record(O.array(Pct)).optional(),current_state:MLn.optional(),knowledge_files:O.array(xLn).optional(),stage_artifacts:O.array(OLn).optional(),output_artifacts:O.array(Nct).optional(),other_files:O.array(Nct).optional(),unit_outputs:O.record(O.array(NLn)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:CLn.optional(),drift:O.array(PLn).optional(),discovered_review_url:ULn.nullable().optional(),ad_hoc:O.boolean().optional(),stage:O.string().optional(),gate_context:O.string().optional(),next_stage:O.string().nullable().optional(),next_phase:O.string().nullable().optional(),approve_action:LLn.optional(),await_active:O.boolean().optional(),await_count:O.number().int().nonnegative().optional(),pending_decision:O.object({decision:O.string(),feedback:O.string(),submitted_at:O.string()}).optional(),last_await_started_at:O.string().optional(),last_await_ended_at:O.string().optional()}).describe("Review session payload (GET /api/session/:id, session_type=review)"),FLn=O.object({question:O.string(),header:O.string().optional(),options:O.array(O.string()),multiSelect:O.boolean().optional()}).describe("A single question in a multi-question session"),HLn=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),qLn=O.object({session_id:O.string(),session_type:O.literal("question"),status:sD,title:O.string().optional(),context:O.string().optional(),questions:O.array(FLn).optional(),answers:O.array(HLn).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),BLn=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),GLn=O.object({archetype:O.string(),comments:O.string().optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string()})).optional(),screenshots:O.array(O.object({comment:O.string(),screenshot_data_url:O.string()})).optional()}).optional()}).describe("Saved direction selection (nullable on the session)"),zLn=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:sD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(BLn).optional(),selection:GLn.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),VLn=O.enum(["studio","mode","stage","confirm","url_input"]),WLn=O.object({id:O.string(),label:O.string(),description:O.string().optional(),secondary:O.boolean().optional()}).describe("One option in a picker session \u2014 id is the canonical value the wire echoes back, label/description are display-only. `secondary` options are hidden behind a 'Show all\u2026' expansion (studio picker shortlist)."),KLn=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),ZLn=O.object({session_id:O.string(),session_type:O.literal("picker"),status:sD,intent_slug:O.string().optional(),kind:VLn,title:O.string(),prompt:O.string(),options:O.array(WLn),selection:KLn.nullable().optional()}).describe("Picker session payload (GET /api/session/:id, session_type=picker) \u2014 engine-side blocking selection for studio/mode/stage and destructive-confirm"),YLn=O.object({id:O.string().min(1).max(256)}).describe("POST /picker/:sessionId/select request body \u2014 id must match one of the session's options"),JLn=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),XLn=O.object({session_id:O.string(),session_type:O.literal("view"),status:O.enum(["open","closed"]),intent_slug:O.string(),studio:O.string().optional(),stage:O.string().optional(),artifact:O.string().optional(),mode:O.enum(["viewer","boot"]),boot_port:O.number().int().positive().optional(),boot_command:O.string().optional()}).describe("View session payload (GET /api/session/:id, session_type=view). Opened by haiku_view, closed by haiku_view_close."),QLn=O.discriminatedUnion("session_type",[jLn,qLn,zLn,ZLn,XLn]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),$Ln=O.object({pending:O.number().int().nonnegative(),addressed:O.number().int().nonnegative(),closed:O.number().int().nonnegative(),rejected:O.number().int().nonnegative()}).describe("Per-status counts of feedback items for the active stage."),e1n=O.object({name:O.string(),status:O.string(),phase:O.string().optional(),iteration:O.number().optional(),iterations:O.array(O.unknown()).optional(),visits:O.number().optional()}),t1n=O.object({slug:O.string(),title:O.string(),status:O.string()}),C3r=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(t1n),feedback_summary:$Ln,stages:O.array(e1n)}).describe("GET /api/review/current response body"),n1n=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var Wde=v(()=>{"use strict";Ode();og();Lde();Hde();aK();zde();Vde()});var Kde=v(()=>{"use strict"});var Cct=v(()=>{"use strict";_ie();Wde();Kde()});function a1n(e){return!(e.includes("\0")||s1n.test(e)||e.startsWith("/")||e.startsWith("\\")||o1n.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var s1n,o1n,Mct,Y3r,Dct=v(()=>{"use strict";ml();s1n=/%(?:00|2e|2f|5c)/i,o1n=/^[A-Za-z]:/;Mct=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(a1n,{message:"path must be a safe relative path \u2014 no '..' segments, absolute paths, null bytes, or URL-encoded variants (%00, %2e, %2f, %5c)"}).describe("Relative path under the session's serving root")}).describe("Path parameters for /files/:sessionId/*path and aliases"),Y3r=O.object({sessionId:O.string().min(1),index:O.number().int().nonnegative().describe("Zero-based image index within the question session")}).describe("Path parameters for /question-image/:sessionId/:index")});var Lct,c1n,u1n,l1n,d1n,Uct,jct,f1n,p1n,h1n,m1n,g1n,y1n,S1n,_1n,E1n,b1n,T1n,v1n,e9r,Fct=v(()=>{"use strict";ml();og();aK();Lct=65536,c1n=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:eI.optional()}).describe("Review decision frame (session_type=review)"),u1n=O.object({type:O.literal("answer"),answers:O.array(qde),feedback:O.string().max(1e4).optional(),annotations:sK.optional()}).describe("Question answer frame (session_type=question)"),l1n=O.object({type:O.literal("select"),mode:O.enum(["select","regenerate"]),archetype:O.string().max(64).optional(),keep:O.array(O.string().max(64)).max(50).optional(),comments:O.string().max(1e4).optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string().max(1e3)})).optional()}).optional()}).describe("Design-direction frame (session_type=design_direction) \u2014 mode='select' finalizes a choice, mode='regenerate' asks the agent for more variants"),d1n=O.object({type:O.literal("heartbeat"),t:O.number().optional()}).describe("Client liveness heartbeat (any session_type). Sent every 30s over the long-lived WS; the server records presence and replies heartbeat_ack."),Uct=(e,t)=>{let n=JSON.stringify(e).length;n>Lct&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${Lct} bytes`,path:[]})},jct=O.discriminatedUnion("type",[c1n,u1n,l1n,d1n]).superRefine(Uct).describe("Any client -> server WebSocket envelope"),f1n=O.object({type:O.literal("ack"),ok:O.literal(!0),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server acknowledgement frame. Shape aligns with the payload sendToWebSocket emits after a successful client message."),p1n=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),h1n=O.object({type:O.literal("heartbeat_ack"),t:O.number().optional()}).describe("Server heartbeat acknowledgement \u2014 presence was recorded; the connection is still seen as live."),m1n=O.object({type:O.literal("session-update"),session_id:O.string().max(64),status:O.string().max(32),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server broadcast when a session's durable status changes (review decided, question answered, direction selected)."),g1n=O.object({type:O.literal("tick_committed"),action:O.string().max(64),phase:O.string().max(64).optional(),stage:O.string().max(64).optional(),iteration:O.number().int().nonnegative().optional()}),y1n=O.object({type:O.literal("unit_changed"),unit_name:O.string().max(128),status:O.string().max(32),stage:O.string().max(64).optional(),hat:O.string().max(64).optional()}),S1n=O.object({type:O.literal("feedback_changed"),feedback_id:O.string().max(64),status:O.string().max(32),stage:O.string().max(64).optional()}),_1n=O.object({type:O.literal("gate_prepared"),session_id:O.string().max(64),stage:O.string().max(64),gate_context:O.string().max(64),review_url:O.string().max(2048),browser_attached:O.boolean()}),E1n=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),b1n=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),T1n=O.discriminatedUnion("type",[g1n,y1n,S1n,_1n,E1n,b1n]),v1n=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:T1n}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),e9r=O.discriminatedUnion("type",[f1n,p1n,h1n,m1n,v1n]).superRefine(Uct).describe("Any server -> client WebSocket envelope")});var yT=v(()=>{"use strict";Cct();Wde();Ode();Nde();og();Lde();Hde();Dct();aK();zde();Vde();Fct();Kde()});function ag(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---(\r?\n[\s\S]*)?$/);if(!t)return{text:e,removed:[]};let{cleaned:n,removed:r}=Hct(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- +${n}`),t.destroy(e)}function Qct(e){if(typeof e!="function")throw new Zct(typeof e);if(e.constructor.name==="AsyncFunction")throw new Zct("AsyncFunction")}dD.exports=Kde;dD.exports.errorCodes=_T;dD.exports.fastify=Kde;dD.exports.default=Kde});var _l=v(()=>{Gne();Gne()});var n1n,Yde=v(()=>{"use strict";_l();n1n=O.object({ok:O.literal(!0),stage:O.string().describe("The stage the advance signal was resolved against."),open_feedback_count:O.number().int().min(0).describe("Number of pending / fixing / addressed feedback items on the stage at the time of the call. Zero means the engine stamped the user slots; non-zero means it didn't \u2014 the cursor will walk Track B first."),stamped_user_slots:O.boolean().describe("True when this call stamped `reviews.user` and `approvals.user` on the units that needed them (i.e., open_feedback_count was zero).")}).describe("POST /api/advance/:sessionId response body")});var r1n,i1n,Zde=v(()=>{"use strict";_l();r1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),i1n=O.object({token:O.string().min(1).max(512).describe("Bearer token value (1..512 chars)."),issued_at:O.string().min(1).max(64).describe("ISO-8601 timestamp the token was minted (\u2264 64 chars)."),expires_at:O.string().min(1).max(64).optional().describe("ISO-8601 expiry timestamp. Optional \u2014 tokens without an expiry are long-lived (deployment policy determines acceptability).")}).describe("Session-token skeleton for future non-loopback deployments. Not wired to any current route.")});var nut,Jde,rut,fD,SK,iut,sut,Xde,out,oI,s1n,o1n,EK,aYr,pD,a1n,cYr,hD,_K,mD,Qde,dg=v(()=>{"use strict";_l();Zde();nut=O.enum(["human","agent","system"]).describe("Derived from origin. Human-authored feedback cannot be closed/deleted by agents. `system` is reserved for engine-authored FBs (e.g. reject-loop escalation) that the SPA surfaces to humans but treats distinctly from agent and human authorship."),Jde=O.enum(["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"]).describe("Origin of a feedback item. Derives author_type (human|agent) via state-tools.deriveAuthorType. `user-question` marks a reply-seeking item that the router handles with `feedback_answer` instead of a fix loop. `engine-review` is the engine-built review roles (spec/continuity/cross-stage-consistency)."),rut=O.enum(["blocker","high","medium","low"]).describe("Finding urgency: blocker (stops the gate) > high (fix before delivery) > medium (should fix) > low (nit). Drives fix-loop dispatch order."),fD=O.enum(["pending","fixing","addressed","answered","non_actionable","escalated","closed","rejected"]).describe("Lifecycle: pending -> fixing -> addressed -> closed, or pending -> answered (question resolved by reply, no code delta), or pending -> non_actionable (valid but no code fix \u2014 a question, out-of-scope note, or immutable/superseded target; terminally closed and acknowledged, distinct from rejected/invalid), or pending -> rejected, or pending|fixing -> escalated (bolt cap exceeded on agent FBs). Only pending/fixing block the stage gate; escalated is a human-intervention waypoint, not a blocker."),SK=O.enum(["question","inline_fix","stage_revisit"]).describe("Routing hint for the FSM's feedback resolver. null = caller has no preference, router defaults to stage_revisit."),iut=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:nut,body:O.string().min(1).max(5e3).describe("Reply body (\u2264 5,000 chars)."),created_at:O.string().max(40).describe("ISO-8601 timestamp the reply was written.")}).describe("A single reply on a feedback thread"),sut=nut,Xde=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to canvas width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to canvas height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)")}).describe("Screenshot pin annotation"),out=O.object({selectedText:O.string().max(2e3).describe("Highlighted text the comment anchors to (capped at 2,000 chars)"),comment:O.string().max(1e4).describe("Comment body (capped at 10,000 chars)"),paragraph:O.number().describe("Zero-based paragraph index inside the reviewed artifact"),location:O.string().max(500).optional().describe("Artifact path (relative to intent root) the comment was made on \u2014 e.g. `knowledge/DISCOVERY.md` or `stages/security/THREAT-MODEL.md`. Omitted for unit-spec / in-session contexts where the parent has a single implicit location.")}).describe("Inline text-anchored comment annotation"),oI=O.object({screenshot:O.string().max(65536).optional().describe("Base64-encoded PNG of annotated canvas (capped at 65,536 chars \u2014 matches WS frame cap)"),pins:O.array(Xde).optional(),comments:O.array(out).optional()}).describe("Annotations attached to a review decision"),s1n=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to image width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to image height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] \u2014 which reference image this pin sits on")}).describe("Per-image pin annotation on a question session"),o1n=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] this annotation was captured on")}).describe("One reviewer annotation pass over a question reference image"),EK=O.object({comments:O.array(out).optional(),pins:O.array(s1n).optional(),screenshots:O.array(o1n).max(20).optional()}).describe("Annotations attached to a question answer"),aYr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),pD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),a1n=O.object({code:O.string(),message:O.string(),path:O.array(O.union([O.string(),O.number()]))}).passthrough().describe("Structural ZodIssue on the wire \u2014 we expose code/message/path at minimum; extra keys are preserved via passthrough."),cYr=O.object({error:O.literal("validation_failed"),issues:O.array(a1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),hD=1048576,_K=131072,mD=8388608,Qde=33554432});var c1n,u1n,l1n,d1n,f1n,p1n,h1n,$de,m1n,efe=v(()=>{"use strict";_l();dg();c1n=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)")}).describe("One reviewer annotation pass over the chosen preview"),u1n=O.object({pins:O.array(Xde).optional(),screenshots:O.array(c1n).max(20).optional()}).describe("Annotations attached to a design-direction selection"),l1n=O.object({mode:O.literal("select"),archetype:O.string().max(64).describe("Archetype name selected by the user from the design-direction set"),comments:O.string().max(1e4).optional().describe("Optional free-text comments accompanying the selection"),annotations:u1n.optional()}).describe("Final selection \u2014 user picked one archetype"),d1n=O.object({mode:O.literal("regenerate"),keep:O.array(O.string().max(64)).max(50).describe("Archetype names the user wants preserved; the agent should produce fresh variants for the remaining slots"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the next generation \u2014 what to change, what to lean into")}).describe("Regenerate request \u2014 user wants more / different variants"),f1n=O.object({filename:O.string().min(1).max(255).describe("Original filename (sanitised by the server)"),data_url:O.string().max(15e5).describe("`data:image/...;base64,...` URL of the uploaded file (1.5 MB cap per file, matches screenshot annotations)"),caption:O.string().max(1e4).optional().describe("Optional caption describing what this artefact represents")}).describe("One uploaded design file in an upload-mode submission"),p1n=O.object({mode:O.literal("upload"),files:O.array(f1n).min(1).max(20).describe("Designer-provided files to use directly as the chosen direction (no archetype generation)"),comments:O.string().max(1e4).optional().describe("Optional overall notes about the uploaded direction \u2014 what the designer wants the agent to honour")}).describe("Upload submission \u2014 designer provided finished designs; skip archetype generation"),h1n=O.object({mode:O.literal("generate"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the agent's first archetype generation")}).describe("Intake signal \u2014 user has no uploads and wants the agent to generate variants"),$de=O.discriminatedUnion("mode",[l1n,d1n,p1n,h1n]).describe("POST /direction/:sessionId/select request body"),m1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var aut,g1n,y1n,S1n,E1n,tfe,_1n,nfe,b1n,T1n,rfe,v1n,ife=v(()=>{"use strict";_l();dg();aut=O.object({selected_text:O.string().min(1).max(1e3),paragraph:O.number().int().nonnegative().max(1e4),location:O.string().max(500),comment_id:O.string().max(200).optional(),file_path:O.string().max(1e3).optional(),content_sha:O.string().max(64).optional()}).describe("Inline text-anchor metadata for inline-comment feedback"),g1n=O.object({feedback_id:O.string().max(32).describe("FB-NN identifier (scoped per stage)"),title:O.string().max(200),body:O.string().max(1e4),status:fD,origin:Jde,severity:rut.nullable().optional().describe("Finding urgency. null/absent for user-authored FBs not yet classified by the classifier fix-hat, and for pre-severity legacy FBs."),author:O.string().max(200).describe("Free-form author handle (e.g. 'user', 'agent')"),author_type:sut,created_at:O.string().max(40).describe("ISO-8601 creation timestamp"),visit:O.number().int().nonnegative().describe("Stage-visit counter at creation time"),source_ref:O.string().max(1e3).nullable().describe("Back-reference to origin artifact (e.g. review-agent run id)"),closed_by:O.string().max(200).nullable().describe("Unit slug whose feedback-assessor hat certified closure, or null while open."),resolution:SK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(iut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:aut.nullable().optional().describe("Inline-text anchor metadata. Present when the feedback was created by selecting text in a rendered artifact and attaching a comment. Null / absent for visual-pin or plain chat feedback."),scope:O.enum(["intent","stage"]).optional().describe("Whether this feedback lives under .haiku/intents//feedback/ (intent scope, logged by the studio-level completion review) or .haiku/intents//stages//feedback/ (stage scope, the normal adversarial review output). UI shows intent-scope items with a distinguishing chip so cross-stage findings don't get hidden behind a stage tab."),iterations:O.array(O.object({bolt:O.number().int().nonnegative(),hat:O.string().max(200),started_at:O.string().max(40).optional(),completed_at:O.string().max(40).optional(),result:O.enum(["advanced","closed","reopened","rejected"]).optional(),commit:O.string().max(64).optional(),message:O.string().max(4e3).optional(),reason:O.string().max(1e3).optional()})).optional().describe("Per-bolt history of the fix loop \u2014 one entry per hat that fires against this finding. Mirrors the `iterations:` frontmatter on unit files so reviewers can see at a glance why a finding needed multiple tries."),closure_reply:O.object({text:O.string().max(2e3),at:O.string().max(40)}).optional().describe("Agent's plain-language reply to the requester at FB closure time. Set on the terminal fix-hat advance."),closure_reply_unread:O.boolean().optional().describe("True when the reply hasn't been acknowledged in the SPA yet. Flipped to false by the dismiss action.")}).describe("Wire shape of a feedback item"),y1n=O.object({intent:O.string(),stage:O.string(),count:O.number().int().nonnegative(),items:O.array(g1n)}).describe("GET /api/feedback/:intent/:stage response body"),S1n=O.object({pageId:O.string().min(1).max(200),x:O.number().min(0).max(1),y:O.number().min(0).max(1),viewportWidth:O.number().int().positive().max(1e4),viewportHeight:O.number().int().positive().max(1e4)}).describe("Pin anchor metadata for visual annotations"),E1n=6e6,tfe=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:Jde.optional().default("user-visual"),author:O.string().max(200).optional().describe("Ignored by the server \u2014 retained for backward compatibility only. The HTTP feedback-create handler always stamps `user` as the author for HTTP-sourced submissions (see packages/haiku/src/http.ts:1526). Do NOT rely on this field to convey identity: there is no session-context author resolution today, so honoring client-supplied values would let any HTTP caller forge authorship. Treat any value submitted here as untrusted data that crosses into the server trust boundary and is discarded."),source_ref:O.string().max(1e3).nullable().optional(),anchor:S1n.optional(),inline_anchor:aut.optional(),resolution:SK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(E1n).regex(/^data:image\/(png|jpeg|webp);base64,[A-Za-z0-9+/=]+$/,{message:"attachment_data_url must be a base64-encoded data URL for png/jpeg/webp (svg rejected \u2014 stored-XSS risk)"}).optional()}).describe("POST /api/feedback/:intent/:stage request body"),_1n=O.object({feedback_id:O.string(),file:O.string().describe("Path to the committed feedback file (relative to .haiku root)"),status:O.literal("pending"),message:O.string()}).describe("POST /api/feedback/:intent/:stage response body"),nfe=O.object({status:fD.optional(),closed_by:O.string().max(200).optional(),resolution:SK.nullable().optional()}).refine(e=>e.status!==void 0||e.closed_by!==void 0||e.resolution!==void 0,{message:"At least one of 'status' / 'closed_by' / 'resolution' must be provided"}).describe("PUT /api/feedback/:intent/:stage/:id request body"),b1n=O.object({feedback_id:O.string(),updated_fields:O.array(O.string()).describe("List of frontmatter fields that were actually changed"),message:O.string()}).describe("PUT /api/feedback/:intent/:stage/:id response body"),T1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),rfe=O.object({body:O.string().min(1).max(5e3),author:O.string().max(200).optional().describe("Optional author hint. When omitted the server stamps 'user' or the agent name from session context."),close_as_answered:O.boolean().optional()}).describe("POST /api/feedback/:intent/:stage/:id/replies request body"),v1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:fD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var sfe,ofe,A1n,bK=v(()=>{"use strict";_l();dg();sfe=O.object({question:O.string().max(1e3).describe("Question prompt text (echoed back)"),selectedOptions:O.array(O.string().max(200)).max(50).describe("Options the user selected (may contain one or many)"),otherText:O.string().max(2e3).optional().describe("Free-text 'other' input, when the question allows it")}).describe("A single question's answer in a multi-question session"),ofe=O.object({answers:O.array(sfe).max(50),feedback:O.string().max(1e4).optional(),annotations:EK.optional()}).describe("POST /question/:sessionId/answer request body"),A1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var R1n,afe,w1n,cfe=v(()=>{"use strict";_l();dg();R1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),afe=O.object({decision:O.string().describe("Raw decision string \u2014 server canonicalizes to 'approved' or 'changes_requested'."),feedback:O.string().optional().describe("Reviewer-provided free-text feedback"),annotations:oI.optional()}).describe("POST /review/:sessionId/decide request body"),w1n=O.object({ok:O.literal(!0),decision:R1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var gD,RYr,k1n,I1n,x1n,ufe,O1n,P1n,N1n,cut,C1n,M1n,D1n,L1n,U1n,F1n,j1n,H1n,q1n,B1n,G1n,z1n,V1n,W1n,K1n,Y1n,Z1n,J1n,X1n,Q1n,$1n,eUn,wYr,tUn,lfe=v(()=>{"use strict";_l();dg();gD=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),RYr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),k1n=O.object({stage:O.string(),mergedIntoMain:O.boolean(),status:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),phase:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),started_at:O.string().optional(),completed_at:O.string().nullable().optional(),gate_entered_at:O.string().nullable().optional(),gate_outcome:O.string().nullable().optional()}).describe("Per-stage status snapshot. v4: only `stage` and `mergedIntoMain` are authoritative; other fields are deprecated v3 shims pending SPA rewrite."),I1n=O.object({name:O.string(),content:O.string()}),x1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),ufe=O.object({stage:O.string(),name:O.string(),type:O.enum(["markdown","html","image","video","code","file"]),language:O.string().optional(),directory:O.string().optional(),content:O.string().optional(),relativePath:O.string().optional(),intentRelativePath:O.string().optional()}),O1n=O.object({path:O.string(),name:O.string(),type:O.enum(["markdown","html","image","file"]),url:O.string(),previewBody:O.string().optional(),sizeBytes:O.number().int().nonnegative().optional(),exists:O.boolean()}),P1n=O.object({path:O.string(),stage:O.string(),intent:O.string(),action:O.enum(["modified","added","deleted"]),age:O.string(),kind:O.enum(["spec","output","discovery_output","discovery_mandate"]).optional(),unit:O.string().optional(),role:O.string().optional()}).describe("One drift-sweep entry: a witnessed unit/output/discovery artifact whose on-disk content no longer matches the stored hash. Surfaced in the SPA's DriftBanner."),N1n=O.object({feedback:O.string(),reviewedAt:O.string(),intentRawContent:O.string(),unitRawContents:O.record(O.string())}).describe("Snapshot of the prior review attached when the current review follows a changes_requested decision."),cut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),C1n=O.object({studio:O.string(),stage:O.string(),phase:O.enum(["elaborate","execute","review","approve","complete","gate",""]),step:O.string().optional(),nextState:O.object({stage:O.string().optional(),phase:O.enum(["elaborate","execute","review","approve","complete","gate"]).optional(),step:O.string().optional(),blockedOn:O.enum(["user-gate","external-review","feedback-fix"]).nullable().optional()}).nullable().optional(),pending_signals:O.array(O.string()).optional(),milestones:O.array(cut).optional(),progress_index:O.number().int().nonnegative().optional(),progress_total:O.number().int().nonnegative().optional(),seal_status:O.enum(["sealed","pending_seal"]).optional(),awaiting_merge_into:O.string().optional()}).describe("Unified current-state snapshot \u2014 derived fresh per request from per-unit frontmatter and branch-merge state. The single source of truth for 'where is this intent right now?'."),M1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),D1n=O.object({label:O.string(),kind:M1n}).describe("Server-computed Approve button label + kind. The SPA renders `label` verbatim so the button reflects the next consequence (e.g. 'Complete Development Stage', 'Open Development Pull Request', 'Mark Intent Done')."),L1n=O.object({url:O.string(),source:O.enum(["github-pr-ref","gitlab-mr-ref"]),prNumber:O.number().int().positive(),matchedSha:O.string()}).describe("PR/MR auto-discovered via raw git from a published head ref"),U1n=O.object({session_id:O.string(),session_type:O.literal("review"),status:pD,intent_slug:O.string().optional(),intent_dir:O.string().optional(),gate_type:O.string().optional(),target:O.string().optional(),decision:O.string().optional(),feedback:O.string().optional(),annotations:oI.optional(),intent:gD.optional(),units:O.array(gD).optional(),criteria:O.array(gD).optional(),mermaid:O.string().optional(),intent_mockups:O.array(gD).optional(),unit_mockups:O.record(O.array(gD)).optional(),stage_states:O.record(k1n).optional(),stage_summaries:O.record(O.string()).optional(),stage_briefs:O.record(O.string()).optional(),stage_observations:O.record(O.string()).optional(),stage_elaborations:O.record(O.string()).optional(),reflection:O.string().optional(),stage_milestones:O.record(O.array(cut)).optional(),current_state:C1n.optional(),knowledge_files:O.array(I1n).optional(),stage_artifacts:O.array(x1n).optional(),output_artifacts:O.array(ufe).optional(),other_files:O.array(ufe).optional(),intent_other_files:O.array(ufe).optional(),unit_outputs:O.record(O.array(O1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:N1n.optional(),drift:O.array(P1n).optional(),discovered_review_url:L1n.nullable().optional(),ad_hoc:O.boolean().optional(),stage:O.string().optional(),gate_context:O.string().optional(),next_stage:O.string().nullable().optional(),next_phase:O.string().nullable().optional(),approve_action:D1n.optional(),await_active:O.boolean().optional(),await_count:O.number().int().nonnegative().optional(),pending_decision:O.object({decision:O.string(),feedback:O.string(),submitted_at:O.string()}).optional(),last_await_started_at:O.string().optional(),last_await_ended_at:O.string().optional()}).describe("Review session payload (GET /api/session/:id, session_type=review)"),F1n=O.object({question:O.string(),header:O.string().optional(),options:O.array(O.string()),multiSelect:O.boolean().optional()}).describe("A single question in a multi-question session"),j1n=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),H1n=O.object({session_id:O.string(),session_type:O.literal("question"),status:pD,title:O.string().optional(),context:O.string().optional(),questions:O.array(F1n).optional(),answers:O.array(j1n).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),q1n=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),B1n=O.object({archetype:O.string(),comments:O.string().optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string()})).optional(),screenshots:O.array(O.object({comment:O.string(),screenshot_data_url:O.string()})).optional()}).optional()}).describe("Saved direction selection (nullable on the session)"),G1n=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:pD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(q1n).optional(),selection:B1n.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),z1n=O.enum(["studio","mode","stage","confirm","url_input"]),V1n=O.object({id:O.string(),label:O.string(),description:O.string().optional(),secondary:O.boolean().optional()}).describe("One option in a picker session \u2014 id is the canonical value the wire echoes back, label/description are display-only. `secondary` options are hidden behind a 'Show all\u2026' expansion (studio picker shortlist)."),W1n=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),K1n=O.object({session_id:O.string(),session_type:O.literal("picker"),status:pD,intent_slug:O.string().optional(),kind:z1n,title:O.string(),prompt:O.string(),options:O.array(V1n),selection:W1n.nullable().optional()}).describe("Picker session payload (GET /api/session/:id, session_type=picker) \u2014 engine-side blocking selection for studio/mode/stage and destructive-confirm"),Y1n=O.object({id:O.string().min(1).max(256)}).describe("POST /picker/:sessionId/select request body \u2014 id must match one of the session's options"),Z1n=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),J1n=O.object({session_id:O.string(),session_type:O.literal("view"),status:O.enum(["open","closed"]),intent_slug:O.string(),studio:O.string().optional(),stage:O.string().optional(),artifact:O.string().optional(),mode:O.enum(["viewer","boot"]),boot_port:O.number().int().positive().optional(),boot_command:O.string().optional()}).describe("View session payload (GET /api/session/:id, session_type=view). Opened by haiku_view, closed by haiku_view_close."),X1n=O.discriminatedUnion("session_type",[U1n,H1n,G1n,K1n,J1n]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),Q1n=O.object({pending:O.number().int().nonnegative(),addressed:O.number().int().nonnegative(),closed:O.number().int().nonnegative(),rejected:O.number().int().nonnegative()}).describe("Per-status counts of feedback items for the active stage."),$1n=O.object({name:O.string(),status:O.string(),phase:O.string().optional(),iteration:O.number().optional(),iterations:O.array(O.unknown()).optional(),visits:O.number().optional()}),eUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),wYr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(eUn),feedback_summary:Q1n,stages:O.array($1n)}).describe("GET /api/review/current response body"),tUn=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var dfe=v(()=>{"use strict";Yde();dg();efe();ife();bK();cfe();lfe()});var ffe=v(()=>{"use strict"});var uut=v(()=>{"use strict";Uie();dfe();ffe()});function oUn(e){return!(e.includes("\0")||iUn.test(e)||e.startsWith("/")||e.startsWith("\\")||sUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var iUn,sUn,lut,BYr,dut=v(()=>{"use strict";_l();iUn=/%(?:00|2e|2f|5c)/i,sUn=/^[A-Za-z]:/;lut=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(oUn,{message:"path must be a safe relative path \u2014 no '..' segments, absolute paths, null bytes, or URL-encoded variants (%00, %2e, %2f, %5c)"}).describe("Relative path under the session's serving root")}).describe("Path parameters for /files/:sessionId/*path and aliases"),BYr=O.object({sessionId:O.string().min(1),index:O.number().int().nonnegative().describe("Zero-based image index within the question session")}).describe("Path parameters for /question-image/:sessionId/:index")});var fut,aUn,cUn,uUn,lUn,put,hut,dUn,fUn,pUn,hUn,mUn,gUn,yUn,SUn,EUn,_Un,bUn,TUn,KYr,mut=v(()=>{"use strict";_l();dg();bK();fut=65536,aUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:oI.optional()}).describe("Review decision frame (session_type=review)"),cUn=O.object({type:O.literal("answer"),answers:O.array(sfe),feedback:O.string().max(1e4).optional(),annotations:EK.optional()}).describe("Question answer frame (session_type=question)"),uUn=O.object({type:O.literal("select"),mode:O.enum(["select","regenerate"]),archetype:O.string().max(64).optional(),keep:O.array(O.string().max(64)).max(50).optional(),comments:O.string().max(1e4).optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string().max(1e3)})).optional()}).optional()}).describe("Design-direction frame (session_type=design_direction) \u2014 mode='select' finalizes a choice, mode='regenerate' asks the agent for more variants"),lUn=O.object({type:O.literal("heartbeat"),t:O.number().optional()}).describe("Client liveness heartbeat (any session_type). Sent every 30s over the long-lived WS; the server records presence and replies heartbeat_ack."),put=(e,t)=>{let n=JSON.stringify(e).length;n>fut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${fut} bytes`,path:[]})},hut=O.discriminatedUnion("type",[aUn,cUn,uUn,lUn]).superRefine(put).describe("Any client -> server WebSocket envelope"),dUn=O.object({type:O.literal("ack"),ok:O.literal(!0),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server acknowledgement frame. Shape aligns with the payload sendToWebSocket emits after a successful client message."),fUn=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),pUn=O.object({type:O.literal("heartbeat_ack"),t:O.number().optional()}).describe("Server heartbeat acknowledgement \u2014 presence was recorded; the connection is still seen as live."),hUn=O.object({type:O.literal("session-update"),session_id:O.string().max(64),status:O.string().max(32),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server broadcast when a session's durable status changes (review decided, question answered, direction selected)."),mUn=O.object({type:O.literal("tick_committed"),action:O.string().max(64),phase:O.string().max(64).optional(),stage:O.string().max(64).optional(),iteration:O.number().int().nonnegative().optional()}),gUn=O.object({type:O.literal("unit_changed"),unit_name:O.string().max(128),status:O.string().max(32),stage:O.string().max(64).optional(),hat:O.string().max(64).optional()}),yUn=O.object({type:O.literal("feedback_changed"),feedback_id:O.string().max(64),status:O.string().max(32),stage:O.string().max(64).optional()}),SUn=O.object({type:O.literal("gate_prepared"),session_id:O.string().max(64),stage:O.string().max(64),gate_context:O.string().max(64),review_url:O.string().max(2048),browser_attached:O.boolean()}),EUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),_Un=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),bUn=O.discriminatedUnion("type",[mUn,gUn,yUn,SUn,EUn,_Un]),TUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:bUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),KYr=O.discriminatedUnion("type",[dUn,fUn,pUn,hUn,TUn]).superRefine(put).describe("Any server -> client WebSocket envelope")});var bT=v(()=>{"use strict";uut();dfe();Yde();Zde();dg();efe();ife();dut();bK();cfe();lfe();mut();ffe()});function fg(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---(\r?\n[\s\S]*)?$/);if(!t)return{text:e,removed:[]};let{cleaned:n,removed:r}=gut(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- ${n} ----${t[2]??""}`,removed:r}}function Hct(e){let t=e.split(/\r?\n/),n=[],r=null;for(let c of t){let u=c.match(/^([A-Za-z_][A-Za-z0-9_-]*)\s*:/);u!=null&&!c.startsWith(" ")&&!c.startsWith(" ")&&u?(r&&n.push(r),r={key:u[1],text:[c]}):r?r.text.push(c):n.push({key:null,text:[c]})}r&&n.push(r);let i=new Map,s=new Map;for(let c=0;c1&&o.push(c);let a=[];for(let c=0;c{"use strict"});var lD=w((T9r,Bct)=>{var A1n=Object.prototype.toString;Bct.exports=function(t){if(t===void 0)return"undefined";if(t===null)return"null";var n=typeof t;if(n==="boolean")return"boolean";if(n==="string")return"string";if(n==="number")return"number";if(n==="symbol")return"symbol";if(n==="function")return x1n(t)?"generatorfunction":"function";if(R1n(t))return"array";if(P1n(t))return"buffer";if(N1n(t))return"arguments";if(k1n(t))return"date";if(w1n(t))return"error";if(I1n(t))return"regexp";switch(qct(t)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(O1n(t))return"generator";switch(n=A1n.call(t),n){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return n.slice(8,-1).toLowerCase().replace(/\s/g,"")};function qct(e){return typeof e.constructor=="function"?e.constructor.name:null}function R1n(e){return Array.isArray?Array.isArray(e):e instanceof Array}function w1n(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function k1n(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function I1n(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function x1n(e,t){return qct(e)==="GeneratorFunction"}function O1n(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function N1n(e){try{if(typeof e.length=="number"&&typeof e.callee=="function")return!0}catch(t){if(t.message.indexOf("callee")!==-1)return!0}return!1}function P1n(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var zct=w((v9r,Gct)=>{"use strict";Gct.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var Kct=w((A9r,Wct)=>{"use strict";var Vct=zct();Wct.exports=function(t){Vct(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var D1n=lD(),L1n=Kct();Yct.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=j1n(e),r={section_delimiter:"---",parse:H1n},i=L1n({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Zct(),u=[],l=[];function d(g){n.content=g,a=[],u=[]}function f(g){l.length&&(c.key=F1n(l[0],s),c.content=g,i.parse(c,a),a.push(c),c=Zct(),u=[],l=[])}for(var p=0;p1&&o.push(c);let a=[];for(let c=0;c{"use strict"});var SD=w((m5r,Sut)=>{var vUn=Object.prototype.toString;Sut.exports=function(t){if(t===void 0)return"undefined";if(t===null)return"null";var n=typeof t;if(n==="boolean")return"boolean";if(n==="string")return"string";if(n==="number")return"number";if(n==="symbol")return"symbol";if(n==="function")return IUn(t)?"generatorfunction":"function";if(AUn(t))return"array";if(PUn(t))return"buffer";if(OUn(t))return"arguments";if(wUn(t))return"date";if(RUn(t))return"error";if(kUn(t))return"regexp";switch(yut(t)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(xUn(t))return"generator";switch(n=vUn.call(t),n){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return n.slice(8,-1).toLowerCase().replace(/\s/g,"")};function yut(e){return typeof e.constructor=="function"?e.constructor.name:null}function AUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function RUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function wUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function kUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function IUn(e,t){return yut(e)==="GeneratorFunction"}function xUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function OUn(e){try{if(typeof e.length=="number"&&typeof e.callee=="function")return!0}catch(t){if(t.message.indexOf("callee")!==-1)return!0}return!1}function PUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var _ut=w((g5r,Eut)=>{"use strict";Eut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var vut=w((y5r,Tut)=>{"use strict";var but=_ut();Tut.exports=function(t){but(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var MUn=SD(),DUn=vut();Rut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=UUn(e),r={section_delimiter:"---",parse:jUn},i=DUn({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Aut(),u=[],l=[];function d(y){n.content=y,a=[],u=[]}function f(y){l.length&&(c.key=FUn(l[0],s),c.content=y,i.parse(c,a),a.push(c),c=Aut(),u=[],l=[])}for(var p=0;p{"use strict";function Xct(e){return typeof e>"u"||e===null}function B1n(e){return typeof e=="object"&&e!==null}function G1n(e){return Array.isArray(e)?e:Xct(e)?[]:[e]}function z1n(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function dD(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}dD.prototype=Object.create(Error.prototype);dD.prototype.constructor=dD;dD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};Qct.exports=dD});var tut=w((I9r,eut)=>{"use strict";var $ct=_T();function Zde(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}Zde.prototype.getSnippet=function(t,n){var r,i,s,o,a;if(!this.buffer)return null;for(t=t||4,n=n||75,r="",i=this.position;i>0&&`\0\r +`)),n.sections=a,n};function LUn(e,t){return!(e.slice(0,t.length)!==t||e.charAt(t.length+1)===t.slice(-1))}function UUn(e){if(MUn(e)!=="object"&&(e={content:e}),typeof e.content!="string"&&!HUn(e.content))throw new TypeError("expected a buffer or string");return e.content=e.content.toString(),e.sections=[],e}function FUn(e,t){return e?e.slice(t.length).trim():""}function Aut(){return{key:"",data:"",content:""}}function jUn(e){return e}function HUn(e){return e&&e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var vT=w((E5r,TT)=>{"use strict";function kut(e){return typeof e>"u"||e===null}function qUn(e){return typeof e=="object"&&e!==null}function BUn(e){return Array.isArray(e)?e:kut(e)?[]:[e]}function GUn(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function ED(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}ED.prototype=Object.create(Error.prototype);ED.prototype.constructor=ED;ED.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};Iut.exports=ED});var Put=w((b5r,Out)=>{"use strict";var xut=vT();function pfe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}pfe.prototype.getSnippet=function(t,n){var r,i,s,o,a;if(!this.buffer)return null;for(t=t||4,n=n||75,r="",i=this.position;i>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(i-1))===-1;)if(i-=1,this.position-i>n/2-1){r=" ... ",i+=5;break}for(s="",o=this.position;on/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(i,o),$ct.repeat(" ",t)+r+a+s+` -`+$ct.repeat(" ",t+this.position-i+r.length)+"^"};Zde.prototype.toString=function(t){var n,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(n=this.getSnippet(),n&&(r+=`: -`+n)),r};eut.exports=Zde});var go=w((x9r,rut)=>{"use strict";var nut=nI(),K1n=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Z1n=["scalar","sequence","mapping"];function Y1n(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function J1n(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(K1n.indexOf(n)===-1)throw new nut('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=Y1n(t.styleAliases||null),Z1n.indexOf(this.kind)===-1)throw new nut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}rut.exports=J1n});var ET=w((O9r,sut)=>{"use strict";var iut=_T(),cK=nI(),X1n=go();function Yde(e,t,n){var r=[];return e.include.forEach(function(i){n=Yde(i,t,n)}),e[t].forEach(function(i){n.forEach(function(s,o){s.tag===i.tag&&s.kind===i.kind&&r.push(o)}),n.push(i)}),n.filter(function(i,s){return r.indexOf(s)===-1})}function Q1n(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,n;function r(i){e[i.kind][i.tag]=e.fallback[i.tag]=i}for(t=0,n=arguments.length;t{"use strict";var $1n=go();out.exports=new $1n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var uut=w((P9r,cut)=>{"use strict";var eUn=go();cut.exports=new eUn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var dut=w((C9r,lut)=>{"use strict";var tUn=go();lut.exports=new tUn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var uK=w((M9r,fut)=>{"use strict";var nUn=ET();fut.exports=new nUn({explicit:[aut(),uut(),dut()]})});var hut=w((D9r,put)=>{"use strict";var rUn=go();function iUn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function sUn(){return null}function oUn(e){return e===null}put.exports=new rUn("tag:yaml.org,2002:null",{kind:"scalar",resolve:iUn,construct:sUn,predicate:oUn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var gut=w((L9r,mut)=>{"use strict";var aUn=go();function cUn(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function uUn(e){return e==="true"||e==="True"||e==="TRUE"}function lUn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}mut.exports=new aUn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:cUn,construct:uUn,predicate:lUn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var Sut=w((U9r,yut)=>{"use strict";var dUn=_T(),fUn=go();function pUn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function hUn(e){return 48<=e&&e<=55}function mUn(e){return 48<=e&&e<=57}function gUn(e){if(e===null)return!1;var t=e.length,n=0,r=!1,i;if(!t)return!1;if(i=e[n],(i==="-"||i==="+")&&(i=e[++n]),i==="0"){if(n+1===t)return!0;if(i=e[++n],i==="b"){for(n++;n=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var but=w((j9r,Eut)=>{"use strict";var _ut=_T(),_Un=go(),EUn=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function bUn(e){return!(e===null||!EUn.test(e)||e[e.length-1]==="_")}function TUn(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(s){i.unshift(parseFloat(s,10))}),t=0,r=1,i.forEach(function(s){t+=s*r,r*=60}),n*t):n*parseFloat(t,10)}var vUn=/^[-+]?[0-9]+e/;function AUn(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_ut.isNegativeZero(e))return"-0.0";return n=e.toString(10),vUn.test(n)?n.replace("e",".e"):n}function RUn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||_ut.isNegativeZero(e))}Eut.exports=new _Un("tag:yaml.org,2002:float",{kind:"scalar",resolve:bUn,construct:TUn,predicate:RUn,represent:AUn,defaultStyle:"lowercase"})});var Jde=w((F9r,Tut)=>{"use strict";var wUn=ET();Tut.exports=new wUn({include:[uK()],implicit:[hut(),gut(),Sut(),but()]})});var Xde=w((H9r,vut)=>{"use strict";var kUn=ET();vut.exports=new kUn({include:[Jde()]})});var kut=w((q9r,wut)=>{"use strict";var IUn=go(),Aut=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Rut=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function xUn(e){return e===null?!1:Aut.exec(e)!==null||Rut.exec(e)!==null}function OUn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=Aut.exec(e),t===null&&(t=Rut.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(s=+t[4],o=+t[5],a=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(l=+t[10],d=+(t[11]||0),u=(l*60+d)*6e4,t[9]==="-"&&(u=-u)),f=new Date(Date.UTC(n,r,i,s,o,a,c)),u&&f.setTime(f.getTime()-u),f}function NUn(e){return e.toISOString()}wut.exports=new IUn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:xUn,construct:OUn,instanceOf:Date,represent:NUn})});var xut=w((B9r,Iut)=>{"use strict";var PUn=go();function CUn(e){return e==="<<"||e===null}Iut.exports=new PUn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:CUn})});var Put=w((G9r,Nut)=>{"use strict";var bT;try{Out=Y,bT=Out("buffer").Buffer}catch{}var Out,MUn=go(),Qde=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function DUn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=Qde;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function LUn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=Qde,o=0,a=[];for(t=0;t>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(r.charAt(t));return n=i%4*6,n===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):n===18?(a.push(o>>10&255),a.push(o>>2&255)):n===12&&a.push(o>>4&255),bT?bT.from?bT.from(a):new bT(a):a}function UUn(e){var t="",n=0,r,i,s=e.length,o=Qde;for(r=0;r>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]),n=(n<<8)+e[r];return i=s%3,i===0?(t+=o[n>>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]):i===2?(t+=o[n>>10&63],t+=o[n>>4&63],t+=o[n<<2&63],t+=o[64]):i===1&&(t+=o[n>>2&63],t+=o[n<<4&63],t+=o[64],t+=o[64]),t}function jUn(e){return bT&&bT.isBuffer(e)}Nut.exports=new MUn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:DUn,construct:LUn,predicate:jUn,represent:UUn})});var Mut=w((V9r,Cut)=>{"use strict";var FUn=go(),HUn=Object.prototype.hasOwnProperty,qUn=Object.prototype.toString;function BUn(e){if(e===null)return!0;var t=[],n,r,i,s,o,a=e;for(n=0,r=a.length;n{"use strict";var zUn=go(),VUn=Object.prototype.toString;function WUn(e){if(e===null)return!0;var t,n,r,i,s,o=e;for(s=new Array(o.length),t=0,n=o.length;t{"use strict";var ZUn=go(),YUn=Object.prototype.hasOwnProperty;function JUn(e){if(e===null)return!0;var t,n=e;for(t in n)if(YUn.call(n,t)&&n[t]!==null)return!1;return!0}function XUn(e){return e!==null?e:{}}Uut.exports=new ZUn("tag:yaml.org,2002:set",{kind:"mapping",resolve:JUn,construct:XUn})});var iI=w((Z9r,Fut)=>{"use strict";var QUn=ET();Fut.exports=new QUn({include:[Xde()],implicit:[kut(),xut()],explicit:[Put(),Mut(),Lut(),jut()]})});var qut=w((Y9r,Hut)=>{"use strict";var $Un=go();function ejn(){return!0}function tjn(){}function njn(){return""}function rjn(e){return typeof e>"u"}Hut.exports=new $Un("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:ejn,construct:tjn,predicate:rjn,represent:njn})});var Gut=w((J9r,But)=>{"use strict";var ijn=go();function sjn(e){if(e===null||e.length===0)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";return!(t[0]==="/"&&(n&&(r=n[1]),r.length>3||t[t.length-r.length-1]!=="/"))}function ojn(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return t[0]==="/"&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function ajn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function cjn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}But.exports=new ijn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:sjn,construct:ojn,predicate:cjn,represent:ajn})});var Wut=w((X9r,Vut)=>{"use strict";var lK;try{zut=Y,lK=zut("esprima")}catch{typeof window<"u"&&(lK=window.esprima)}var zut,ujn=go();function ljn(e){if(e===null)return!1;try{var t="("+e+")",n=lK.parse(t,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function djn(e){var t="("+e+")",n=lK.parse(t,{range:!0}),r=[],i;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(s){r.push(s.name)}),i=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(r,t.slice(i[0]+1,i[1]-1)):new Function(r,"return "+t.slice(i[0],i[1]))}function fjn(e){return e.toString()}function pjn(e){return Object.prototype.toString.call(e)==="[object Function]"}Vut.exports=new ujn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:ljn,construct:djn,predicate:pjn,represent:fjn})});var fD=w(($9r,Zut)=>{"use strict";var Kut=ET();Zut.exports=Kut.DEFAULT=new Kut({include:[iI()],explicit:[qut(),Gut(),Wut()]})});var hlt=w((eZr,pD)=>{"use strict";var cg=_T(),tlt=nI(),hjn=tut(),nlt=iI(),mjn=fD(),s_=Object.prototype.hasOwnProperty,dK=1,rlt=2,ilt=3,fK=4,$de=1,gjn=2,Yut=3,yjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Sjn=/[\x85\u2028\u2029]/,_jn=/[,\[\]\{\}]/,slt=/^(?:!|!!|![a-z\-]+!)$/i,olt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Jut(e){return Object.prototype.toString.call(e)}function Rh(e){return e===10||e===13}function vT(e){return e===9||e===32}function Au(e){return e===9||e===32||e===10||e===13}function sI(e){return e===44||e===91||e===93||e===123||e===125}function Ejn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function bjn(e){return e===120?2:e===117?4:e===85?8:0}function Tjn(e){return 48<=e&&e<=57?e-48:-1}function Xut(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` -`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function vjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function alt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var clt=new Array(256),ult=new Array(256);for(TT=0;TT<256;TT++)clt[TT]=Xut(TT)?1:0,ult[TT]=Xut(TT);var TT;function Ajn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||mjn,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function llt(e,t){return new tlt(t,new hjn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Ct(e,t){throw llt(e,t)}function pK(e,t){e.onWarning&&e.onWarning.call(null,llt(e,t))}var Qut={YAML:function(t,n,r){var i,s,o;t.version!==null&&Ct(t,"duplication of %YAML directive"),r.length!==1&&Ct(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&Ct(t,"ill-formed argument of the YAML directive"),s=parseInt(i[1],10),o=parseInt(i[2],10),s!==1&&Ct(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=o<2,o!==1&&o!==2&&pK(t,"unsupported YAML version of the document")},TAG:function(t,n,r){var i,s;r.length!==2&&Ct(t,"TAG directive accepts exactly two arguments"),i=r[0],s=r[1],slt.test(i)||Ct(t,"ill-formed tag handle (first argument) of the TAG directive"),s_.call(t.tagMap,i)&&Ct(t,'there is a previously declared suffix for "'+i+'" tag handle'),olt.test(s)||Ct(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function i_(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=cg.repeat(` -`,t-1))}function Rjn(e,t,n){var r,i,s,o,a,c,u,l,d=e.kind,f=e.result,p;if(p=e.input.charCodeAt(e.position),Au(p)||sI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Au(i)||n&&sI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Au(i)||n&&sI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Au(r))break}else{if(e.position===e.lineStart&&hK(e)||n&&sI(p))break;if(Rh(p))if(c=e.line,u=e.lineStart,l=e.lineIndent,Xs(e,!1,-1),e.lineIndent>=t){a=!0,p=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=c,e.lineStart=u,e.lineIndent=l;break}}a&&(i_(e,s,o,!1),tfe(e,e.line-c),s=o=e.position,a=!1),vT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return i_(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function wjn(e,t){var n,r,i;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(i_(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)r=e.position,e.position++,i=e.position;else return!0;else Rh(n)?(i_(e,r,i,!0),tfe(e,Xs(e,!1,t)),r=i=e.position):e.position===e.lineStart&&hK(e)?Ct(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);Ct(e,"unexpected end of the stream within a single quoted scalar")}function kjn(e,t){var n,r,i,s,o,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return i_(e,n,e.position,!0),e.position++,!0;if(a===92){if(i_(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Rh(a))Xs(e,!1,t);else if(a<256&&clt[a])e.result+=ult[a],e.position++;else if((o=bjn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=Ejn(a))>=0?s=(s<<4)+o:Ct(e,"expected hexadecimal character");e.result+=vjn(s),e.position++}else Ct(e,"unknown escape sequence");n=r=e.position}else Rh(a)?(i_(e,n,r,!0),tfe(e,Xs(e,!1,t)),n=r=e.position):e.position===e.lineStart&&hK(e)?Ct(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}Ct(e,"unexpected end of the stream within a double quoted scalar")}function Ijn(e,t){var n=!0,r,i=e.tag,s,o=e.anchor,a,c,u,l,d,f={},p,h,m,y;if(y=e.input.charCodeAt(e.position),y===91)c=93,d=!1,s=[];else if(y===123)c=125,d=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),y=e.input.charCodeAt(++e.position);y!==0;){if(Xs(e,!0,t),y=e.input.charCodeAt(e.position),y===c)return e.position++,e.tag=i,e.anchor=o,e.kind=d?"mapping":"sequence",e.result=s,!0;n||Ct(e,"missed comma between flow collection entries"),h=p=m=null,u=l=!1,y===63&&(a=e.input.charCodeAt(e.position+1),Au(a)&&(u=l=!0,e.position++,Xs(e,!0,t))),r=e.line,aI(e,t,dK,!1,!0),h=e.tag,p=e.result,Xs(e,!0,t),y=e.input.charCodeAt(e.position),(l||e.line===r)&&y===58&&(u=!0,y=e.input.charCodeAt(++e.position),Xs(e,!0,t),aI(e,t,dK,!1,!0),m=e.result),d?oI(e,s,f,h,p,m):u?s.push(oI(e,null,f,h,p,m)):s.push(p),Xs(e,!0,t),y=e.input.charCodeAt(e.position),y===44?(n=!0,y=e.input.charCodeAt(++e.position)):n=!1}Ct(e,"unexpected end of the stream within a flow collection")}function xjn(e,t){var n,r,i=$de,s=!1,o=!1,a=t,c=0,u=!1,l,d;if(d=e.input.charCodeAt(e.position),d===124)r=!1;else if(d===62)r=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)$de===i?i=d===43?Yut:gjn:Ct(e,"repeat of a chomping mode identifier");else if((l=Tjn(d))>=0)l===0?Ct(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?Ct(e,"repeat of an indentation width identifier"):(a=t+l-1,o=!0);else break;if(vT(d)){do d=e.input.charCodeAt(++e.position);while(vT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Rh(d)&&d!==0)}for(;d!==0;){for(efe(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!o||e.lineIndenta&&(a=e.lineIndent),Rh(d)){c++;continue}if(e.lineIndentt)&&c!==0)Ct(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(aI(e,t,fK,!0,i)&&(h?f=e.result:p=e.result),h||(oI(e,u,l,d,f,p,s,o),d=f=p=null),Xs(e,!0,-1),y=e.input.charCodeAt(e.position)),e.lineIndent>t&&y!==0)Ct(e,"bad indentation of a mapping entry");else if(e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),d=0,f=e.implicitTypes.length;d tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result)?(e.result=p.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):Ct(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Ct(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||l}function Mjn(e){var t=e.position,n,r,i,s=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(o=e.input.charCodeAt(e.position))!==0&&(Xs(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(s=!0,o=e.input.charCodeAt(++e.position),n=e.position;o!==0&&!Au(o);)o=e.input.charCodeAt(++e.position);for(r=e.input.slice(n,e.position),i=[],r.length<1&&Ct(e,"directive name must not be less than one character in length");o!==0;){for(;vT(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!Rh(o));break}if(Rh(o))break;for(n=e.position;o!==0&&!Au(o);)o=e.input.charCodeAt(++e.position);i.push(e.input.slice(n,e.position))}o!==0&&efe(e),s_.call(Qut,r)?Qut[r](e,r,i):pK(e,'unknown document directive "'+r+'"')}if(Xs(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,Xs(e,!0,-1)):s&&Ct(e,"directives end mark is expected"),aI(e,e.lineIndent-1,fK,!1,!0),Xs(e,!0,-1),e.checkLineBreaks&&Sjn.test(e.input.slice(t,e.position))&&pK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&hK(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,Xs(e,!0,-1));return}if(e.position"u"&&(n=t,t=null);var r=dlt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),flt(e,t,cg.extend({schema:nlt},n))}function Ljn(e,t){return plt(e,cg.extend({schema:nlt},t))}pD.exports.loadAll=flt;pD.exports.load=plt;pD.exports.safeLoadAll=Djn;pD.exports.safeLoad=Ljn});var Ult=w((tZr,sfe)=>{"use strict";var mD=_T(),gD=nI(),Ujn=fD(),jjn=iI(),Tlt=Object.prototype.toString,vlt=Object.prototype.hasOwnProperty,Fjn=9,hD=10,Hjn=13,qjn=32,Bjn=33,Gjn=34,Alt=35,zjn=37,Vjn=38,Wjn=39,Kjn=42,Rlt=44,Zjn=45,wlt=58,Yjn=61,Jjn=62,Xjn=63,Qjn=64,klt=91,Ilt=93,$jn=96,xlt=123,eFn=124,Olt=125,oc={};oc[0]="\\0";oc[7]="\\a";oc[8]="\\b";oc[9]="\\t";oc[10]="\\n";oc[11]="\\v";oc[12]="\\f";oc[13]="\\r";oc[27]="\\e";oc[34]='\\"';oc[92]="\\\\";oc[133]="\\N";oc[160]="\\_";oc[8232]="\\L";oc[8233]="\\P";var tFn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function nFn(e,t){var n,r,i,s,o,a,c;if(t===null)return{};for(n={},r=Object.keys(t),i=0,s=r.length;in/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(i,o),xut.repeat(" ",t)+r+a+s+` +`+xut.repeat(" ",t+this.position-i+r.length)+"^"};pfe.prototype.toString=function(t){var n,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(n=this.getSnippet(),n&&(r+=`: +`+n)),r};Out.exports=pfe});var To=w((T5r,Cut)=>{"use strict";var Nut=cI(),WUn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],KUn=["scalar","sequence","mapping"];function YUn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function ZUn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(WUn.indexOf(n)===-1)throw new Nut('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=YUn(t.styleAliases||null),KUn.indexOf(this.kind)===-1)throw new Nut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}Cut.exports=ZUn});var AT=w((v5r,Dut)=>{"use strict";var Mut=vT(),TK=cI(),JUn=To();function hfe(e,t,n){var r=[];return e.include.forEach(function(i){n=hfe(i,t,n)}),e[t].forEach(function(i){n.forEach(function(s,o){s.tag===i.tag&&s.kind===i.kind&&r.push(o)}),n.push(i)}),n.filter(function(i,s){return r.indexOf(s)===-1})}function XUn(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,n;function r(i){e[i.kind][i.tag]=e.fallback[i.tag]=i}for(t=0,n=arguments.length;t{"use strict";var QUn=To();Lut.exports=new QUn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var jut=w((R5r,Fut)=>{"use strict";var $Un=To();Fut.exports=new $Un("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var qut=w((w5r,Hut)=>{"use strict";var eFn=To();Hut.exports=new eFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var vK=w((k5r,But)=>{"use strict";var tFn=AT();But.exports=new tFn({explicit:[Uut(),jut(),qut()]})});var zut=w((I5r,Gut)=>{"use strict";var nFn=To();function rFn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function iFn(){return null}function sFn(e){return e===null}Gut.exports=new nFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:rFn,construct:iFn,predicate:sFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var Wut=w((x5r,Vut)=>{"use strict";var oFn=To();function aFn(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function cFn(e){return e==="true"||e==="True"||e==="TRUE"}function uFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}Vut.exports=new oFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:aFn,construct:cFn,predicate:uFn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var Yut=w((O5r,Kut)=>{"use strict";var lFn=vT(),dFn=To();function fFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function pFn(e){return 48<=e&&e<=55}function hFn(e){return 48<=e&&e<=57}function mFn(e){if(e===null)return!1;var t=e.length,n=0,r=!1,i;if(!t)return!1;if(i=e[n],(i==="-"||i==="+")&&(i=e[++n]),i==="0"){if(n+1===t)return!0;if(i=e[++n],i==="b"){for(n++;n=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var Xut=w((P5r,Jut)=>{"use strict";var Zut=vT(),SFn=To(),EFn=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function _Fn(e){return!(e===null||!EFn.test(e)||e[e.length-1]==="_")}function bFn(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(s){i.unshift(parseFloat(s,10))}),t=0,r=1,i.forEach(function(s){t+=s*r,r*=60}),n*t):n*parseFloat(t,10)}var TFn=/^[-+]?[0-9]+e/;function vFn(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Zut.isNegativeZero(e))return"-0.0";return n=e.toString(10),TFn.test(n)?n.replace("e",".e"):n}function AFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||Zut.isNegativeZero(e))}Jut.exports=new SFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:_Fn,construct:bFn,predicate:AFn,represent:vFn,defaultStyle:"lowercase"})});var mfe=w((N5r,Qut)=>{"use strict";var RFn=AT();Qut.exports=new RFn({include:[vK()],implicit:[zut(),Wut(),Yut(),Xut()]})});var gfe=w((C5r,$ut)=>{"use strict";var wFn=AT();$ut.exports=new wFn({include:[mfe()]})});var rlt=w((M5r,nlt)=>{"use strict";var kFn=To(),elt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),tlt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function IFn(e){return e===null?!1:elt.exec(e)!==null||tlt.exec(e)!==null}function xFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=elt.exec(e),t===null&&(t=tlt.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(s=+t[4],o=+t[5],a=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(l=+t[10],d=+(t[11]||0),u=(l*60+d)*6e4,t[9]==="-"&&(u=-u)),f=new Date(Date.UTC(n,r,i,s,o,a,c)),u&&f.setTime(f.getTime()-u),f}function OFn(e){return e.toISOString()}nlt.exports=new kFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:IFn,construct:xFn,instanceOf:Date,represent:OFn})});var slt=w((D5r,ilt)=>{"use strict";var PFn=To();function NFn(e){return e==="<<"||e===null}ilt.exports=new PFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:NFn})});var clt=w((L5r,alt)=>{"use strict";var RT;try{olt=Y,RT=olt("buffer").Buffer}catch{}var olt,CFn=To(),yfe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function MFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=yfe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function DFn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=yfe,o=0,a=[];for(t=0;t>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(r.charAt(t));return n=i%4*6,n===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):n===18?(a.push(o>>10&255),a.push(o>>2&255)):n===12&&a.push(o>>4&255),RT?RT.from?RT.from(a):new RT(a):a}function LFn(e){var t="",n=0,r,i,s=e.length,o=yfe;for(r=0;r>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]),n=(n<<8)+e[r];return i=s%3,i===0?(t+=o[n>>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]):i===2?(t+=o[n>>10&63],t+=o[n>>4&63],t+=o[n<<2&63],t+=o[64]):i===1&&(t+=o[n>>2&63],t+=o[n<<4&63],t+=o[64],t+=o[64]),t}function UFn(e){return RT&&RT.isBuffer(e)}alt.exports=new CFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:MFn,construct:DFn,predicate:UFn,represent:LFn})});var llt=w((F5r,ult)=>{"use strict";var FFn=To(),jFn=Object.prototype.hasOwnProperty,HFn=Object.prototype.toString;function qFn(e){if(e===null)return!0;var t=[],n,r,i,s,o,a=e;for(n=0,r=a.length;n{"use strict";var GFn=To(),zFn=Object.prototype.toString;function VFn(e){if(e===null)return!0;var t,n,r,i,s,o=e;for(s=new Array(o.length),t=0,n=o.length;t{"use strict";var KFn=To(),YFn=Object.prototype.hasOwnProperty;function ZFn(e){if(e===null)return!0;var t,n=e;for(t in n)if(YFn.call(n,t)&&n[t]!==null)return!1;return!0}function JFn(e){return e!==null?e:{}}plt.exports=new KFn("tag:yaml.org,2002:set",{kind:"mapping",resolve:ZFn,construct:JFn})});var lI=w((q5r,mlt)=>{"use strict";var XFn=AT();mlt.exports=new XFn({include:[gfe()],implicit:[rlt(),slt()],explicit:[clt(),llt(),flt(),hlt()]})});var ylt=w((B5r,glt)=>{"use strict";var QFn=To();function $Fn(){return!0}function ejn(){}function tjn(){return""}function njn(e){return typeof e>"u"}glt.exports=new QFn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:$Fn,construct:ejn,predicate:njn,represent:tjn})});var Elt=w((G5r,Slt)=>{"use strict";var rjn=To();function ijn(e){if(e===null||e.length===0)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";return!(t[0]==="/"&&(n&&(r=n[1]),r.length>3||t[t.length-r.length-1]!=="/"))}function sjn(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return t[0]==="/"&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function ojn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function ajn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}Slt.exports=new rjn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ijn,construct:sjn,predicate:ajn,represent:ojn})});var Tlt=w((z5r,blt)=>{"use strict";var AK;try{_lt=Y,AK=_lt("esprima")}catch{typeof window<"u"&&(AK=window.esprima)}var _lt,cjn=To();function ujn(e){if(e===null)return!1;try{var t="("+e+")",n=AK.parse(t,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function ljn(e){var t="("+e+")",n=AK.parse(t,{range:!0}),r=[],i;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(s){r.push(s.name)}),i=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(r,t.slice(i[0]+1,i[1]-1)):new Function(r,"return "+t.slice(i[0],i[1]))}function djn(e){return e.toString()}function fjn(e){return Object.prototype.toString.call(e)==="[object Function]"}blt.exports=new cjn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:ujn,construct:ljn,predicate:fjn,represent:djn})});var _D=w((W5r,Alt)=>{"use strict";var vlt=AT();Alt.exports=vlt.DEFAULT=new vlt({include:[lI()],explicit:[ylt(),Elt(),Tlt()]})});var zlt=w((K5r,bD)=>{"use strict";var pg=vT(),Plt=cI(),pjn=Put(),Nlt=lI(),hjn=_D(),uE=Object.prototype.hasOwnProperty,RK=1,Clt=2,Mlt=3,wK=4,Sfe=1,mjn=2,Rlt=3,gjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,yjn=/[\x85\u2028\u2029]/,Sjn=/[,\[\]\{\}]/,Dlt=/^(?:!|!!|![a-z\-]+!)$/i,Llt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function wlt(e){return Object.prototype.toString.call(e)}function Oh(e){return e===10||e===13}function kT(e){return e===9||e===32}function Ou(e){return e===9||e===32||e===10||e===13}function dI(e){return e===44||e===91||e===93||e===123||e===125}function Ejn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function _jn(e){return e===120?2:e===117?4:e===85?8:0}function bjn(e){return 48<=e&&e<=57?e-48:-1}function klt(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` +`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function Tjn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Ult(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var Flt=new Array(256),jlt=new Array(256);for(wT=0;wT<256;wT++)Flt[wT]=klt(wT)?1:0,jlt[wT]=klt(wT);var wT;function vjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||hjn,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Hlt(e,t){return new Plt(t,new pjn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Lt(e,t){throw Hlt(e,t)}function kK(e,t){e.onWarning&&e.onWarning.call(null,Hlt(e,t))}var Ilt={YAML:function(t,n,r){var i,s,o;t.version!==null&&Lt(t,"duplication of %YAML directive"),r.length!==1&&Lt(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&Lt(t,"ill-formed argument of the YAML directive"),s=parseInt(i[1],10),o=parseInt(i[2],10),s!==1&&Lt(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=o<2,o!==1&&o!==2&&kK(t,"unsupported YAML version of the document")},TAG:function(t,n,r){var i,s;r.length!==2&&Lt(t,"TAG directive accepts exactly two arguments"),i=r[0],s=r[1],Dlt.test(i)||Lt(t,"ill-formed tag handle (first argument) of the TAG directive"),uE.call(t.tagMap,i)&&Lt(t,'there is a previously declared suffix for "'+i+'" tag handle'),Llt.test(s)||Lt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function cE(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=pg.repeat(` +`,t-1))}function Ajn(e,t,n){var r,i,s,o,a,c,u,l,d=e.kind,f=e.result,p;if(p=e.input.charCodeAt(e.position),Ou(p)||dI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Ou(i)||n&&dI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Ou(i)||n&&dI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Ou(r))break}else{if(e.position===e.lineStart&&IK(e)||n&&dI(p))break;if(Oh(p))if(c=e.line,u=e.lineStart,l=e.lineIndent,to(e,!1,-1),e.lineIndent>=t){a=!0,p=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=c,e.lineStart=u,e.lineIndent=l;break}}a&&(cE(e,s,o,!1),_fe(e,e.line-c),s=o=e.position,a=!1),kT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return cE(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function Rjn(e,t){var n,r,i;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(cE(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)r=e.position,e.position++,i=e.position;else return!0;else Oh(n)?(cE(e,r,i,!0),_fe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&IK(e)?Lt(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);Lt(e,"unexpected end of the stream within a single quoted scalar")}function wjn(e,t){var n,r,i,s,o,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return cE(e,n,e.position,!0),e.position++,!0;if(a===92){if(cE(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Oh(a))to(e,!1,t);else if(a<256&&Flt[a])e.result+=jlt[a],e.position++;else if((o=_jn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=Ejn(a))>=0?s=(s<<4)+o:Lt(e,"expected hexadecimal character");e.result+=Tjn(s),e.position++}else Lt(e,"unknown escape sequence");n=r=e.position}else Oh(a)?(cE(e,n,r,!0),_fe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&IK(e)?Lt(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}Lt(e,"unexpected end of the stream within a double quoted scalar")}function kjn(e,t){var n=!0,r,i=e.tag,s,o=e.anchor,a,c,u,l,d,f={},p,h,m,g;if(g=e.input.charCodeAt(e.position),g===91)c=93,d=!1,s=[];else if(g===123)c=125,d=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),g=e.input.charCodeAt(++e.position);g!==0;){if(to(e,!0,t),g=e.input.charCodeAt(e.position),g===c)return e.position++,e.tag=i,e.anchor=o,e.kind=d?"mapping":"sequence",e.result=s,!0;n||Lt(e,"missed comma between flow collection entries"),h=p=m=null,u=l=!1,g===63&&(a=e.input.charCodeAt(e.position+1),Ou(a)&&(u=l=!0,e.position++,to(e,!0,t))),r=e.line,pI(e,t,RK,!1,!0),h=e.tag,p=e.result,to(e,!0,t),g=e.input.charCodeAt(e.position),(l||e.line===r)&&g===58&&(u=!0,g=e.input.charCodeAt(++e.position),to(e,!0,t),pI(e,t,RK,!1,!0),m=e.result),d?fI(e,s,f,h,p,m):u?s.push(fI(e,null,f,h,p,m)):s.push(p),to(e,!0,t),g=e.input.charCodeAt(e.position),g===44?(n=!0,g=e.input.charCodeAt(++e.position)):n=!1}Lt(e,"unexpected end of the stream within a flow collection")}function Ijn(e,t){var n,r,i=Sfe,s=!1,o=!1,a=t,c=0,u=!1,l,d;if(d=e.input.charCodeAt(e.position),d===124)r=!1;else if(d===62)r=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)Sfe===i?i=d===43?Rlt:mjn:Lt(e,"repeat of a chomping mode identifier");else if((l=bjn(d))>=0)l===0?Lt(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?Lt(e,"repeat of an indentation width identifier"):(a=t+l-1,o=!0);else break;if(kT(d)){do d=e.input.charCodeAt(++e.position);while(kT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Oh(d)&&d!==0)}for(;d!==0;){for(Efe(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!o||e.lineIndenta&&(a=e.lineIndent),Oh(d)){c++;continue}if(e.lineIndentt)&&c!==0)Lt(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(pI(e,t,wK,!0,i)&&(h?f=e.result:p=e.result),h||(fI(e,u,l,d,f,p,s,o),d=f=p=null),to(e,!0,-1),g=e.input.charCodeAt(e.position)),e.lineIndent>t&&g!==0)Lt(e,"bad indentation of a mapping entry");else if(e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),d=0,f=e.implicitTypes.length;d tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result)?(e.result=p.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):Lt(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Lt(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||l}function Cjn(e){var t=e.position,n,r,i,s=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(o=e.input.charCodeAt(e.position))!==0&&(to(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(s=!0,o=e.input.charCodeAt(++e.position),n=e.position;o!==0&&!Ou(o);)o=e.input.charCodeAt(++e.position);for(r=e.input.slice(n,e.position),i=[],r.length<1&&Lt(e,"directive name must not be less than one character in length");o!==0;){for(;kT(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!Oh(o));break}if(Oh(o))break;for(n=e.position;o!==0&&!Ou(o);)o=e.input.charCodeAt(++e.position);i.push(e.input.slice(n,e.position))}o!==0&&Efe(e),uE.call(Ilt,r)?Ilt[r](e,r,i):kK(e,'unknown document directive "'+r+'"')}if(to(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,to(e,!0,-1)):s&&Lt(e,"directives end mark is expected"),pI(e,e.lineIndent-1,wK,!1,!0),to(e,!0,-1),e.checkLineBreaks&&yjn.test(e.input.slice(t,e.position))&&kK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&IK(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,to(e,!0,-1));return}if(e.position"u"&&(n=t,t=null);var r=qlt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),Blt(e,t,pg.extend({schema:Nlt},n))}function Djn(e,t){return Glt(e,pg.extend({schema:Nlt},t))}bD.exports.loadAll=Blt;bD.exports.load=Glt;bD.exports.safeLoadAll=Mjn;bD.exports.safeLoad=Djn});var pdt=w((Y5r,Afe)=>{"use strict";var vD=vT(),AD=cI(),Ljn=_D(),Ujn=lI(),Qlt=Object.prototype.toString,$lt=Object.prototype.hasOwnProperty,Fjn=9,TD=10,jjn=13,Hjn=32,qjn=33,Bjn=34,edt=35,Gjn=37,zjn=38,Vjn=39,Wjn=42,tdt=44,Kjn=45,ndt=58,Yjn=61,Zjn=62,Jjn=63,Xjn=64,rdt=91,idt=93,Qjn=96,sdt=123,$jn=124,odt=125,fc={};fc[0]="\\0";fc[7]="\\a";fc[8]="\\b";fc[9]="\\t";fc[10]="\\n";fc[11]="\\v";fc[12]="\\f";fc[13]="\\r";fc[27]="\\e";fc[34]='\\"';fc[92]="\\\\";fc[133]="\\N";fc[160]="\\_";fc[8232]="\\L";fc[8233]="\\P";var eHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function tHn(e,t){var n,r,i,s,o,a,c;if(t===null)return{};for(n={},r=Object.keys(t),i=0,s=r.length;i0?e.charCodeAt(s-1):null,f=f&&ylt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!cI(o))return mK;a=s>0?e.charCodeAt(s-1):null,f=f&&ylt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?Plt:Clt:n>9&&Nlt(e)?mK:u?Dlt:Mlt}function cFn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&tFn.indexOf(t)!==-1)return"'"+t+"'";var i=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),o=r||e.flowLevel>-1&&n>=e.flowLevel;function a(c){return iFn(e,c)}switch(aFn(t,o,e.indent,s,a)){case Plt:return t;case Clt:return"'"+t.replace(/'/g,"''")+"'";case Mlt:return"|"+Slt(t,e.indent)+_lt(glt(t,i));case Dlt:return">"+Slt(t,e.indent)+_lt(glt(uFn(t,s),i));case mK:return'"'+lFn(t,s)+'"';default:throw new gD("impossible error: invalid scalar style")}})()}function Slt(e,t){var n=Nlt(e)?String(t):"",r=e[e.length-1]===` +`&&(s+=n),s+=o;return s}function bfe(e,t){return` +`+vD.repeat(" ",e.indent*t)}function rHn(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;n0?e.charCodeAt(s-1):null,f=f&&Klt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!hI(o))return xK;a=s>0?e.charCodeAt(s-1):null,f=f&&Klt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?cdt:udt:n>9&&adt(e)?xK:u?ddt:ldt}function aHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&eHn.indexOf(t)!==-1)return"'"+t+"'";var i=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),o=r||e.flowLevel>-1&&n>=e.flowLevel;function a(c){return rHn(e,c)}switch(oHn(t,o,e.indent,s,a)){case cdt:return t;case udt:return"'"+t.replace(/'/g,"''")+"'";case ldt:return"|"+Ylt(t,e.indent)+Zlt(Wlt(t,i));case ddt:return">"+Ylt(t,e.indent)+Zlt(Wlt(cHn(t,s),i));case xK:return'"'+uHn(t,s)+'"';default:throw new AD("impossible error: invalid scalar style")}})()}function Ylt(e,t){var n=adt(e)?String(t):"",r=e[e.length-1]===` `,i=r&&(e[e.length-2]===` `||e===` `),s=i?"+":r?"":"-";return n+s+` -`}function _lt(e){return e[e.length-1]===` -`?e.slice(0,-1):e}function uFn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` -`);return u=u!==-1?u:e.length,n.lastIndex=u,Elt(e.slice(0,u),t)})(),i=e[0]===` +`}function Zlt(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function cHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` +`);return u=u!==-1?u:e.length,n.lastIndex=u,Jlt(e.slice(0,u),t)})(),i=e[0]===` `||e[0]===" ",s,o;o=n.exec(e);){var a=o[1],c=o[2];s=c[0]===" ",r+=a+(!i&&!s&&c!==""?` -`:"")+Elt(c,t),i=s}return r}function Elt(e,t){if(e===""||e[0]===" ")return e;for(var n=/ [^ ]/g,r,i=0,s,o=0,a=0,c="";r=n.exec(e);)a=r.index,a-i>t&&(s=o>i?o:a,c+=` +`:"")+Jlt(c,t),i=s}return r}function Jlt(e,t){if(e===""||e[0]===" ")return e;for(var n=/ [^ ]/g,r,i=0,s,o=0,a=0,c="";r=n.exec(e);)a=r.index,a-i>t&&(s=o>i?o:a,c+=` `+e.slice(i,s),i=s+1),o=a;return c+=` `,e.length-i>t&&o>i?c+=e.slice(i,o)+` -`+e.slice(o+1):c+=e.slice(i),c.slice(1)}function lFn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=mlt((n-55296)*1024+r-56320+65536),s++;continue}i=oc[n],t+=!i&&cI(n)?e[s]:i||mlt(n)}return t}function dFn(e,t,n){var r="",i=e.tag,s,o;for(s=0,o=n.length;s1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),AT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function hFn(e,t,n,r){var i="",s=e.tag,o=Object.keys(n),a,c,u,l,d,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new gD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&hD===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=nfe(e,t)),AT(e,t+1,l,!0,d)&&(e.dump&&hD===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function blt(e,t,n){var r,i,s,o,a,c;for(i=n?e.explicitTypes:e.implicitTypes,s=0,o=i.length;s tag resolver accepts not "'+c+'" style');e.dump=r}return!0}return!1}function AT(e,t,n,r,i,s){e.tag=null,e.dump=n,blt(e,n,!1)||blt(e,n,!0);var o=Tlt.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a=o==="[object Object]"||o==="[object Array]",c,u;if(a&&(c=e.duplicates.indexOf(n),u=c!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&t>0)&&(i=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(a&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),o==="[object Object]")r&&Object.keys(e.dump).length!==0?(hFn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(pFn(e,t,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump));else if(o==="[object Array]"){var l=e.noArrayIndent&&t>0?t-1:t;r&&e.dump.length!==0?(fFn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(dFn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&cFn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new gD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function mFn(e,t){var n=[],r=[],i,s;for(rfe(e,n,r),i=0,s=r.length;i{"use strict";var gK=hlt(),jlt=Ult();function yK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ms.exports.Type=go();ms.exports.Schema=ET();ms.exports.FAILSAFE_SCHEMA=uK();ms.exports.JSON_SCHEMA=Jde();ms.exports.CORE_SCHEMA=Xde();ms.exports.DEFAULT_SAFE_SCHEMA=iI();ms.exports.DEFAULT_FULL_SCHEMA=fD();ms.exports.load=gK.load;ms.exports.loadAll=gK.loadAll;ms.exports.safeLoad=gK.safeLoad;ms.exports.safeLoadAll=gK.safeLoadAll;ms.exports.dump=jlt.dump;ms.exports.safeDump=jlt.safeDump;ms.exports.YAMLException=nI();ms.exports.MINIMAL_SCHEMA=uK();ms.exports.SAFE_SCHEMA=iI();ms.exports.DEFAULT_SCHEMA=fD();ms.exports.scan=yK("scan");ms.exports.parse=yK("parse");ms.exports.compose=yK("compose");ms.exports.addConstructor=yK("addConstructor")});var qlt=w((rZr,Hlt)=>{"use strict";var yFn=Flt();Hlt.exports=yFn});var ofe=w((exports,module)=>{"use strict";var yaml=qlt(),engines=exports=module.exports;engines.yaml={parse:yaml.safeLoad.bind(yaml),stringify:yaml.safeDump.bind(yaml)};engines.json={parse:JSON.parse.bind(JSON),stringify:function(e,t){let n=Object.assign({replacer:null,space:2},t);return JSON.stringify(e,n.replacer,n.space)}};engines.javascript={parse:function parse(str,options,wrap){try{return wrap!==!1&&(str=`(function() { +`+e.slice(o+1):c+=e.slice(i),c.slice(1)}function uHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=Vlt((n-55296)*1024+r-56320+65536),s++;continue}i=fc[n],t+=!i&&hI(n)?e[s]:i||Vlt(n)}return t}function lHn(e,t,n){var r="",i=e.tag,s,o;for(s=0,o=n.length;s1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),IT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function pHn(e,t,n,r){var i="",s=e.tag,o=Object.keys(n),a,c,u,l,d,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new AD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&TD===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=bfe(e,t)),IT(e,t+1,l,!0,d)&&(e.dump&&TD===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function Xlt(e,t,n){var r,i,s,o,a,c;for(i=n?e.explicitTypes:e.implicitTypes,s=0,o=i.length;s tag resolver accepts not "'+c+'" style');e.dump=r}return!0}return!1}function IT(e,t,n,r,i,s){e.tag=null,e.dump=n,Xlt(e,n,!1)||Xlt(e,n,!0);var o=Qlt.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a=o==="[object Object]"||o==="[object Array]",c,u;if(a&&(c=e.duplicates.indexOf(n),u=c!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&t>0)&&(i=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(a&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),o==="[object Object]")r&&Object.keys(e.dump).length!==0?(pHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(fHn(e,t,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump));else if(o==="[object Array]"){var l=e.noArrayIndent&&t>0?t-1:t;r&&e.dump.length!==0?(dHn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(lHn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&aHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new AD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function hHn(e,t){var n=[],r=[],i,s;for(Tfe(e,n,r),i=0,s=r.length;i{"use strict";var OK=zlt(),hdt=pdt();function PK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=To();ys.exports.Schema=AT();ys.exports.FAILSAFE_SCHEMA=vK();ys.exports.JSON_SCHEMA=mfe();ys.exports.CORE_SCHEMA=gfe();ys.exports.DEFAULT_SAFE_SCHEMA=lI();ys.exports.DEFAULT_FULL_SCHEMA=_D();ys.exports.load=OK.load;ys.exports.loadAll=OK.loadAll;ys.exports.safeLoad=OK.safeLoad;ys.exports.safeLoadAll=OK.safeLoadAll;ys.exports.dump=hdt.dump;ys.exports.safeDump=hdt.safeDump;ys.exports.YAMLException=cI();ys.exports.MINIMAL_SCHEMA=vK();ys.exports.SAFE_SCHEMA=lI();ys.exports.DEFAULT_SCHEMA=_D();ys.exports.scan=PK("scan");ys.exports.parse=PK("parse");ys.exports.compose=PK("compose");ys.exports.addConstructor=PK("addConstructor")});var ydt=w((J5r,gdt)=>{"use strict";var gHn=mdt();gdt.exports=gHn});var Rfe=w((exports,module)=>{"use strict";var yaml=ydt(),engines=exports=module.exports;engines.yaml={parse:yaml.safeLoad.bind(yaml),stringify:yaml.safeDump.bind(yaml)};engines.json={parse:JSON.parse.bind(JSON),stringify:function(e,t){let n=Object.assign({replacer:null,space:2},t);return JSON.stringify(e,n.replacer,n.space)}};engines.javascript={parse:function parse(str,options,wrap){try{return wrap!==!1&&(str=`(function() { return `+str.trim()+`; -}());`),eval(str)||{}}catch(e){if(wrap!==!1&&/(unexpected|identifier)/i.test(e.message))return parse(str,options,!1);throw new SyntaxError(e)}},stringify:function(){throw new Error("stringifying JavaScript is not supported")}}});var Glt=w((iZr,Blt)=>{"use strict";Blt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var SK=w(ug=>{"use strict";var zlt=Glt(),Vlt=lD();ug.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};ug.isBuffer=function(e){return Vlt(e)==="buffer"};ug.isObject=function(e){return Vlt(e)==="object"};ug.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};ug.toString=function(e){if(ug.isBuffer(e))return zlt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return zlt(e)};ug.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};ug.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var yD=w((oZr,Wlt)=>{"use strict";var SFn=ofe(),_Fn=SK();Wlt.exports=function(e){let t=Object.assign({},e);return t.delimiters=_Fn.arrayify(t.delims||t.delimiters||"---"),t.delimiters.length===1&&t.delimiters.push(t.delimiters[0]),t.language=(t.language||t.lang||"yaml").toLowerCase(),t.engines=Object.assign({},SFn,t.parsers,t.engines),t}});var afe=w((aZr,Klt)=>{"use strict";Klt.exports=function(e,t){let n=t.engines[e]||t.engines[EFn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function EFn(e){switch(e.toLowerCase()){case"js":case"javascript":return"javascript";case"coffee":case"coffeescript":case"cson":return"coffee";case"yaml":case"yml":return"yaml";default:return e}}});var cfe=w((cZr,Zlt)=>{"use strict";var bFn=lD(),TFn=afe(),vFn=yD();Zlt.exports=function(e,t,n){if(t==null&&n==null)switch(bFn(e)){case"object":t=e.data,n={};break;case"string":return e;default:throw new TypeError("expected file to be a string or object")}let r=e.content,i=vFn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=TFn(s,i);if(typeof o.stringify!="function")throw new TypeError('expected "'+s+'.stringify" to be a function');t=Object.assign({},e.data,t);let a=i.delimiters[0],c=i.delimiters[1],u=o.stringify(t,n).trim(),l="";return u!=="{}"&&(l=uI(a)+uI(u)+uI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=uI(e.excerpt)+uI(c)),l+uI(r)};function uI(e){return e.slice(-1)!==` +}());`),eval(str)||{}}catch(e){if(wrap!==!1&&/(unexpected|identifier)/i.test(e.message))return parse(str,options,!1);throw new SyntaxError(e)}},stringify:function(){throw new Error("stringifying JavaScript is not supported")}}});var Edt=w((X5r,Sdt)=>{"use strict";Sdt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var NK=w(hg=>{"use strict";var _dt=Edt(),bdt=SD();hg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};hg.isBuffer=function(e){return bdt(e)==="buffer"};hg.isObject=function(e){return bdt(e)==="object"};hg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};hg.toString=function(e){if(hg.isBuffer(e))return _dt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return _dt(e)};hg.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};hg.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var RD=w(($5r,Tdt)=>{"use strict";var yHn=Rfe(),SHn=NK();Tdt.exports=function(e){let t=Object.assign({},e);return t.delimiters=SHn.arrayify(t.delims||t.delimiters||"---"),t.delimiters.length===1&&t.delimiters.push(t.delimiters[0]),t.language=(t.language||t.lang||"yaml").toLowerCase(),t.engines=Object.assign({},yHn,t.parsers,t.engines),t}});var wfe=w((eZr,vdt)=>{"use strict";vdt.exports=function(e,t){let n=t.engines[e]||t.engines[EHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function EHn(e){switch(e.toLowerCase()){case"js":case"javascript":return"javascript";case"coffee":case"coffeescript":case"cson":return"coffee";case"yaml":case"yml":return"yaml";default:return e}}});var kfe=w((tZr,Adt)=>{"use strict";var _Hn=SD(),bHn=wfe(),THn=RD();Adt.exports=function(e,t,n){if(t==null&&n==null)switch(_Hn(e)){case"object":t=e.data,n={};break;case"string":return e;default:throw new TypeError("expected file to be a string or object")}let r=e.content,i=THn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=bHn(s,i);if(typeof o.stringify!="function")throw new TypeError('expected "'+s+'.stringify" to be a function');t=Object.assign({},e.data,t);let a=i.delimiters[0],c=i.delimiters[1],u=o.stringify(t,n).trim(),l="";return u!=="{}"&&(l=mI(a)+mI(u)+mI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=mI(e.excerpt)+mI(c)),l+mI(r)};function mI(e){return e.slice(-1)!==` `?e+` -`:e}});var Jlt=w((uZr,Ylt)=>{"use strict";var AFn=yD();Ylt.exports=function(e,t){let n=AFn(t);if(e.data==null&&(e.data={}),typeof n.excerpt=="function")return n.excerpt(e,n);let r=e.data.excerpt_separator||n.excerpt_separator;if(r==null&&(n.excerpt===!1||n.excerpt==null))return e;let i=typeof n.excerpt=="string"?n.excerpt:r||n.delimiters[0],s=e.content.indexOf(i);return s!==-1&&(e.excerpt=e.content.slice(0,s)),e}});var $lt=w((lZr,Qlt)=>{"use strict";var Xlt=lD(),RFn=cfe(),lI=SK();Qlt.exports=function(e){return Xlt(e)!=="object"&&(e={content:e}),Xlt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),lI.define(e,"orig",lI.toBuffer(e.content)),lI.define(e,"language",e.language||""),lI.define(e,"matter",e.matter||""),lI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),RFn(e,t,n)}),e.content=lI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var tdt=w((dZr,edt)=>{"use strict";var wFn=afe(),kFn=yD();edt.exports=function(e,t,n){let r=kFn(n),i=wFn(e,r);if(typeof i.parse!="function")throw new TypeError('expected "'+e+'.parse" to be a function');return i.parse(t,r)}});var sn=w((fZr,idt)=>{"use strict";var IFn=Y("fs"),xFn=Jct(),ufe=yD(),OFn=cfe(),ndt=Jlt(),NFn=ofe(),PFn=$lt(),CFn=tdt(),rdt=SK();function Vc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=PFn(e),r=Vc.cache[n.content];if(!t){if(r)return n=Object.assign({},r),n.orig=r.orig,n;Vc.cache[n.content]=n}return MFn(n,t)}function MFn(e,t){let n=ufe(t),r=n.delimiters[0],i=` -`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!rdt.startsWith(s,r,o))return ndt(e,n),e;if(s.charAt(o)===r.slice(-1))return e;s=s.slice(o);let a=s.length,c=Vc.language(s,n);c.name&&(e.language=c.name,s=s.slice(c.raw.length));let u=s.indexOf(i);return u===-1&&(u=a),e.matter=s.slice(0,u),e.matter.replace(/^\s*#[^\n]+/gm,"").trim()===""?(e.isEmpty=!0,e.empty=e.content,e.data={}):e.data=CFn(e.language,e.matter,n),u===a?e.content="":(e.content=s.slice(u+i.length),e.content[0]==="\r"&&(e.content=e.content.slice(1)),e.content[0]===` -`&&(e.content=e.content.slice(1))),ndt(e,n),(n.sections===!0||typeof n.section=="function")&&xFn(e,n.section),e}Vc.engines=NFn;Vc.stringify=function(e,t,n){return typeof e=="string"&&(e=Vc(e,n)),OFn(e,t,n)};Vc.read=function(e,t){let n=IFn.readFileSync(e,"utf8"),r=Vc(n,t);return r.path=e,r};Vc.test=function(e,t){return rdt.startsWith(e,ufe(t).delimiters[0])};Vc.language=function(e,t){let r=ufe(t).delimiters[0];Vc.test(e)&&(e=e.slice(r.length));let i=e.slice(0,e.search(/\r?\n/));return{raw:i,name:i?i.trim():""}};Vc.cache={};Vc.clearCache=function(){Vc.cache={}};idt.exports=Vc});import{execFileSync as DFn}from"node:child_process";function _K(e,t){try{return DFn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function SD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=odt[t];if(!n)return!1;let r=sdt.get(t);if(r!==void 0)return r;let i=n.probe();return sdt.set(t,i),i}function lfe(){return Object.keys(odt).filter(SD)}var odt,sdt,dfe=v(()=>{"use strict";odt={docker:{name:"docker",displayName:"Docker",probe:()=>_K("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>_K("docker",["compose","version"])||_K("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>_K("make",["--version"])}},sdt=new Map});function UFn(e,t={}){for(let n of t.requiredTools??[])if(!SD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return LFn.some(n=>n.test(e.output))?{environment:!0,reason:`gate '${e.name}' couldn't reach a runtime dependency (its output matches a service-unavailable signature) \u2014 the gate ran nothing meaningful`}:{environment:!1,reason:null}}function EK(e,t={}){for(let n of e){let r=UFn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var LFn,ffe=v(()=>{"use strict";dfe();LFn=[/cannot connect to the docker daemon/i,/is the docker daemon running/i,/connection refused/i,/\beconnrefused\b/i,/could not connect to server/i,/can't reach database server/i,/no connection could be made/i,/getaddrinfo (enotfound|eai_again)/i,/\bmongonetworkerror\b/i,/server closed the connection unexpectedly/i,/connection to .* (port|host) .* failed/i,/(redis|mongo|postgres|postgresql|mysql|mariadb).*(connection|connect).*(refused|failed|timed out)/i,/\b(docker|docker-compose|psql|mysql|redis-cli|pg_isready)\b[^\n]*\b(command not found|not found|no such file)/i,/\b(command not found|not found):?\s*(docker|docker-compose|psql|mysql)\b/i]});function Ru(){return{intent_md_migrated:!1,units_migrated:0,units_with_synthesized_approval:0,review_stamps_synthesized:0,approval_stamps_synthesized:0,feedback_migrated:0,feedback_with_synthesized_closure:0,feedback_relocated:0,state_json_deleted:0,drift_artifacts_deleted:0,review_slots_backfilled:0,approval_slots_stripped:0,iterations_message_migrated:0}}function kd(e,t,n){if(e===t)throw new Error(`registerMigrator: from == to (${e}) \u2014 migrators must change the version`);let r=bK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),bK.set(e,r)}function jFn(e,t){if(e===t)return[];let n=[{version:e,chain:[]}],r=new Set([e]);for(;n.length>0;){let i=n.shift();if(!i)break;let s=bK.get(i.version)??[];for(let o of s){if(r.has(o.to))continue;let a=[...i.chain,o.migrator];if(o.to===t)return a;r.add(o.to),n.push({version:o.to,chain:a})}}return null}function TK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:Ru()};let r=jFn(t,n);if(r===null)throw new Error(`migrateIntent: no migration path from ${t} to ${n} for intent at ${e.intentDir}`);let i=[],s=Ru(),o=t;for(let a of r){let c=(bK.get(o)??[]).find(l=>l.migrator===a);c&&(i.push(`${o}\u2192${c.to}`),o=c.to);let u=a(e);u&&(s.intent_md_migrated=s.intent_md_migrated||u.intent_md_migrated,s.units_migrated+=u.units_migrated,s.units_with_synthesized_approval+=u.units_with_synthesized_approval,s.review_stamps_synthesized+=u.review_stamps_synthesized,s.approval_stamps_synthesized+=u.approval_stamps_synthesized,s.feedback_migrated+=u.feedback_migrated,s.feedback_with_synthesized_closure+=u.feedback_with_synthesized_closure,s.feedback_relocated+=u.feedback_relocated,s.state_json_deleted+=u.state_json_deleted,s.drift_artifacts_deleted+=u.drift_artifacts_deleted,s.review_slots_backfilled+=u.review_slots_backfilled,s.approval_slots_stripped+=u.approval_slots_stripped,s.iterations_message_migrated+=u.iterations_message_migrated)}return{from:t,to:n,steps:r.length,chain:i,details:s}}var bK,lg=v(()=>{"use strict";bK=new Map});import{join as adt}from"node:path";function nr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function cdt(){let e=nn();return[adt(process.cwd(),".haiku","studios"),adt(e,"studios")]}var pfe=v(()=>{"use strict";Oi();ze();ze()});function udt(e){return typeof e=="string"&&HFn.has(e)}function dI(e){return udt(e)?e:void 0}function o_(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=dI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function hfe(e){if(udt(e))return qFn[e]}var FFn,HFn,qFn,a_=v(()=>{"use strict";FFn=["haiku","sonnet","opus"],HFn=new Set(FFn),qFn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as gs,lstatSync as BFn,readdirSync as wh,readFileSync as wu,statSync as ldt}from"node:fs";import{join as Kt}from"node:path";function fdt(e){try{if(!gs(e))return;let{data:t}=re(wu(e,"utf8"));return dI(t.model)}catch{return}}function Yi(e,t){nr(e,"studio"),nr(t,"stage");for(let n of ku()){let r=Kt(n,e,"stages",t,"STAGE.md");if(gs(r))return re(wu(r,"utf8"))}return null}function Id(e){nr(e,"studio");for(let t of ku()){let n=Kt(t,e,"STUDIO.md");if(gs(n))return re(wu(n,"utf8"))}return null}function pdt(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function hdt(e,t){let n=Kt(process.cwd(),".haiku"),r=nn();return[Kt(r,"hats"),Kt(n,"hats"),Kt(r,"studios",e,"hats"),Kt(n,"studios",e,"hats"),Kt(r,"studios",e,"stages",t,"hats"),Kt(n,"studios",e,"stages",t,"hats")]}function Iu(e,t){nr(e,"studio"),nr(t,"stage");let n={};for(let r of hdt(e,t))if(gs(r))for(let i of wh(r).filter(s=>s.endsWith(".md"))){let s=wu(Kt(r,i),"utf8"),{data:o,body:a}=re(s);n[i.replace(/\.md$/,"")]={content:a,agent_type:o.agent_type||void 0,model:o.model||void 0,run_quality_gates:o.run_quality_gates===!0?!0:void 0,role:pdt(o.role),raw:s}}return n}function fI(e,t,n){nr(e,"studio"),nr(t,"stage"),nr(n,"hat");let r=null;for(let i of hdt(e,t)){let s=Kt(i,`${n}.md`);gs(s)&&(r=s)}return r}function GFn(e,t,n){nr(e,"studio"),nr(t,"stage"),nr(n,"hat");let r=Kt(process.cwd(),".haiku"),i=nn(),s=null;for(let o of[Kt(i,"studios",e,"stages",t,"fix-hats"),Kt(r,"studios",e,"stages",t,"fix-hats")]){let a=Kt(o,`${n}.md`);gs(a)&&(s=a)}return s??fI(e,t,n)}function mdt(e,t){let n=Kt(process.cwd(),".haiku"),r=nn();return[Kt(r,"review-agents"),Kt(n,"review-agents"),Kt(r,"studios",e,"review-agents"),Kt(n,"studios",e,"review-agents"),Kt(r,"studios",e,"stages",t,"review-agents"),Kt(n,"studios",e,"stages",t,"review-agents")]}function gl(e,t){nr(e,"studio"),nr(t,"stage");let n={};for(let r of mdt(e,t))if(gs(r))for(let i of wh(r).filter(s=>s.endsWith(".md")))n[i.replace(/\.md$/,"")]=Kt(r,i);return n}function bD(e,t,n){nr(e,"studio"),nr(t,"stage"),nr(n,"agent");let r=null;for(let i of mdt(e,t)){let s=Kt(i,`${n}.md`);gs(s)&&(r=s)}return r}function gfe(e,t,n){nr(e,"studio"),nr(t,"stage"),nr(n,"discovery template");for(let r of ku()){let i=Kt(r,e,"stages",t,"discovery",`${n}.md`);if(gs(i))return i}return null}function zFn(e,t,n){nr(e,"studio"),nr(t,"stage"),nr(n,"output template");for(let r of ku()){let i=Kt(r,e,"stages",t,"outputs",`${n}.md`);if(gs(i))return i}return null}function dg(e){nr(e,"studio");let t={},n=[...ku()].reverse(),r=i=>{if(gs(i))for(let s of wh(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Kt(i,s)};for(let i of n)r(Kt(i,"..","intent-review-agents"));for(let i of n)r(Kt(i,e,"intent-review-agents"));return t}function TD(e){if(!e||!gs(e))return null;let{body:t}=re(wu(e,"utf8"));return(t||"").trim()||null}function pI(e,t,n,r=!1){return TD(r?GFn(e,t,n):fI(e,t,n))}function kh(e,t,n){let r=t?bD(e,t,n):dg(e)[n]??null;return TD(r)}function hI(e,t,n){return TD(gfe(e,t,n))}function vK(e,t,n){return TD(zFn(e,t,n))}function AK(e,t,n){return(Sfe(e,t,n)?.body||"").trim()||null}function Ih(e,t){return(Yi(e,t)?.body||"").trim()||null}function gdt(e,t){return TD(yfe(e)[t]??null)}function ydt(e){let t=Kt(process.cwd(),".haiku"),n=nn();return[Kt(n,"fix-hats"),Kt(t,"fix-hats"),Kt(n,"studios",e,"fix-hats"),Kt(t,"studios",e,"fix-hats")]}function RK(e){nr(e,"studio");let t={};for(let n of ydt(e))if(gs(n))for(let r of wh(n).filter(i=>i.endsWith(".md"))){let i=wu(Kt(n,r),"utf8"),{data:s,body:o}=re(i);t[r.replace(/\.md$/,"")]={content:o,agent_type:s.agent_type||void 0,model:s.model||void 0,role:pdt(s.role),raw:i}}return t}function yfe(e){nr(e,"studio");let t={};for(let n of ydt(e))if(gs(n))for(let r of wh(n).filter(i=>i.endsWith(".md")))t[r.replace(/\.md$/,"")]=Kt(n,r);return t}function Sdt(e,t,n){let r={},i=null,s=null;for(let[l,d]of Object.entries(e))u(d)&&(r[l]=d);return r;function o(l){try{let d=wu(l,"utf8"),{data:f}=re(d),p=f.applies_to;if(p!=null){if(Array.isArray(p)&&p.every(h=>typeof h=="string"))return p;console.warn(`[haiku] review-agent ${l}: \`applies_to:\` is present but not a string[]; treating as unscoped (always runs). Fix the frontmatter to scope the agent.`)}}catch{}}function a(){return i===null&&(i=VFn(t)),i}function c(){if(s===null&&(s=[],n))for(let l of Qs(n.studio,n.stage)){if(l.kind!=="output")continue;let p=(l.location||"").replace(/\{[^}]+\}/g,"").toLowerCase().match(/\.[a-z0-9]+$/);p&&s.push(p[0])}return s}function u(l){let d=o(l);if(!d||d.length===0)return!0;let f=a();if(f.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(f.some(y=>y.toLowerCase().endsWith(m)))return!0}return!1}let p=c();if(p.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(p.some(y=>y===m))return!0}return!1}return!0}}function VFn(e){if(!gs(e))return[];let t=[],n=[e];for(;n.length>0;){let r=n.pop();try{let i=wh(r,{withFileTypes:!0});for(let s of i){let o=String(s.name),a=Kt(r,o);s.isDirectory()?n.push(a):t.push(o)}}catch{}}return t}function Qs(e,t){nr(e,"studio"),nr(t,"stage");let n=[],r=new Set;for(let s of[...ku()].reverse())for(let o of["discovery","outputs"]){let a=Kt(s,e,"stages",t,o);if(gs(a))for(let c of wh(a).filter(u=>u.endsWith(".md"))){let u=`${o}:${c}`;if(r.has(u))continue;r.add(u);let l=wu(Kt(a,c),"utf8"),{data:d,body:f}=re(l);n.push({name:d.name||c.replace(/\.md$/,""),location:d.location||"",scope:d.scope||"intent",format:d.format||"text",required:d.required!==!1,body:f,kind:o==="outputs"?"output":"discovery",...typeof d.tool=="string"&&d.tool.length>0?{tool:d.tool}:{}})}}let i=new Map;for(let s of n){if(s.kind!=="discovery"||!s.location)continue;let o=i.get(s.location)??[];o.push(s.name),i.set(s.location,o)}for(let[s,o]of i)if(o.length>1)throw new Error(`Studio configuration error: discovery templates [${o.join(", ")}] in stage '${t}' of studio '${e}' share the same location '${s}'. Each discovery template must declare a unique 'location:' frontmatter field \u2014 parallel agents writing to the same path produce merge conflicts and ambiguous existence checks.`);return n}function wK(e,t,n,r){let i=[];for(let s of t){let o=s.stage,a=Qs(e,o);if(s.discovery){let c=a.find(u=>u.name===s.discovery&&u.kind==="discovery");if(c?.location){let u=ddt(c.location,n,r),l=gs(u);if((c.location.endsWith("/")||l&&ldt(u).isDirectory())&&l){let f=mfe(u);i.push({stage:o,artifactName:s.discovery,kind:"discovery",resolvedPath:u,exists:l,content:f||"(empty directory)",description:c.body})}else i.push({stage:o,artifactName:s.discovery,kind:"discovery",resolvedPath:u,exists:l,content:l?wu(u,"utf8"):null,description:c.body})}}if(s.output){let c=a.find(u=>u.name===s.output&&u.kind==="output");if(c?.location){let u=ddt(c.location,n,r),l=gs(u);if((c.location.endsWith("/")||l&&ldt(u).isDirectory())&&l){let f=mfe(u);i.push({stage:o,artifactName:s.output,kind:"output",resolvedPath:u,exists:l,content:f||"(empty directory)",description:c.body})}else i.push({stage:o,artifactName:s.output,kind:"output",resolvedPath:u,exists:l,content:l?wu(u,"utf8"):null,description:c.body})}}}return i}function mfe(e,t=""){let n=wh(e).filter(i=>!i.startsWith(".")),r=[];for(let i of n){let s=Kt(e,i),o=t?`${t}/${i}`:i,a;try{a=BFn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(mfe(s,o));else{let c;try{c=wu(s,"utf8")}catch{continue}r.push(`### ${o} +`:e}});var wdt=w((nZr,Rdt)=>{"use strict";var vHn=RD();Rdt.exports=function(e,t){let n=vHn(t);if(e.data==null&&(e.data={}),typeof n.excerpt=="function")return n.excerpt(e,n);let r=e.data.excerpt_separator||n.excerpt_separator;if(r==null&&(n.excerpt===!1||n.excerpt==null))return e;let i=typeof n.excerpt=="string"?n.excerpt:r||n.delimiters[0],s=e.content.indexOf(i);return s!==-1&&(e.excerpt=e.content.slice(0,s)),e}});var xdt=w((rZr,Idt)=>{"use strict";var kdt=SD(),AHn=kfe(),gI=NK();Idt.exports=function(e){return kdt(e)!=="object"&&(e={content:e}),kdt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),gI.define(e,"orig",gI.toBuffer(e.content)),gI.define(e,"language",e.language||""),gI.define(e,"matter",e.matter||""),gI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),AHn(e,t,n)}),e.content=gI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var Pdt=w((iZr,Odt)=>{"use strict";var RHn=wfe(),wHn=RD();Odt.exports=function(e,t,n){let r=wHn(n),i=RHn(e,r);if(typeof i.parse!="function")throw new TypeError('expected "'+e+'.parse" to be a function');return i.parse(t,r)}});var Kt=w((sZr,Mdt)=>{"use strict";var kHn=Y("fs"),IHn=wut(),Ife=RD(),xHn=kfe(),Ndt=wdt(),OHn=Rfe(),PHn=xdt(),NHn=Pdt(),Cdt=NK();function Kc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=PHn(e),r=Kc.cache[n.content];if(!t){if(r)return n=Object.assign({},r),n.orig=r.orig,n;Kc.cache[n.content]=n}return CHn(n,t)}function CHn(e,t){let n=Ife(t),r=n.delimiters[0],i=` +`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!Cdt.startsWith(s,r,o))return Ndt(e,n),e;if(s.charAt(o)===r.slice(-1))return e;s=s.slice(o);let a=s.length,c=Kc.language(s,n);c.name&&(e.language=c.name,s=s.slice(c.raw.length));let u=s.indexOf(i);return u===-1&&(u=a),e.matter=s.slice(0,u),e.matter.replace(/^\s*#[^\n]+/gm,"").trim()===""?(e.isEmpty=!0,e.empty=e.content,e.data={}):e.data=NHn(e.language,e.matter,n),u===a?e.content="":(e.content=s.slice(u+i.length),e.content[0]==="\r"&&(e.content=e.content.slice(1)),e.content[0]===` +`&&(e.content=e.content.slice(1))),Ndt(e,n),(n.sections===!0||typeof n.section=="function")&&IHn(e,n.section),e}Kc.engines=OHn;Kc.stringify=function(e,t,n){return typeof e=="string"&&(e=Kc(e,n)),xHn(e,t,n)};Kc.read=function(e,t){let n=kHn.readFileSync(e,"utf8"),r=Kc(n,t);return r.path=e,r};Kc.test=function(e,t){return Cdt.startsWith(e,Ife(t).delimiters[0])};Kc.language=function(e,t){let r=Ife(t).delimiters[0];Kc.test(e)&&(e=e.slice(r.length));let i=e.slice(0,e.search(/\r?\n/));return{raw:i,name:i?i.trim():""}};Kc.cache={};Kc.clearCache=function(){Kc.cache={}};Mdt.exports=Kc});import{execFileSync as MHn}from"node:child_process";function CK(e,t){try{return MHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function wD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=Ldt[t];if(!n)return!1;let r=Ddt.get(t);if(r!==void 0)return r;let i=n.probe();return Ddt.set(t,i),i}function xfe(){return Object.keys(Ldt).filter(wD)}var Ldt,Ddt,Ofe=v(()=>{"use strict";Ldt={docker:{name:"docker",displayName:"Docker",probe:()=>CK("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>CK("docker",["compose","version"])||CK("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>CK("make",["--version"])}},Ddt=new Map});function LHn(e,t={}){for(let n of t.requiredTools??[])if(!wD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return DHn.some(n=>n.test(e.output))?{environment:!0,reason:`gate '${e.name}' couldn't reach a runtime dependency (its output matches a service-unavailable signature) \u2014 the gate ran nothing meaningful`}:{environment:!1,reason:null}}function MK(e,t={}){for(let n of e){let r=LHn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var DHn,Pfe=v(()=>{"use strict";Ofe();DHn=[/cannot connect to the docker daemon/i,/is the docker daemon running/i,/connection refused/i,/\beconnrefused\b/i,/could not connect to server/i,/can't reach database server/i,/no connection could be made/i,/getaddrinfo (enotfound|eai_again)/i,/\bmongonetworkerror\b/i,/server closed the connection unexpectedly/i,/connection to .* (port|host) .* failed/i,/(redis|mongo|postgres|postgresql|mysql|mariadb).*(connection|connect).*(refused|failed|timed out)/i,/\b(docker|docker-compose|psql|mysql|redis-cli|pg_isready)\b[^\n]*\b(command not found|not found|no such file)/i,/\b(command not found|not found):?\s*(docker|docker-compose|psql|mysql)\b/i]});function pc(){return{intent_md_migrated:!1,units_migrated:0,units_with_synthesized_approval:0,review_stamps_synthesized:0,approval_stamps_synthesized:0,feedback_migrated:0,feedback_with_synthesized_closure:0,feedback_relocated:0,state_json_deleted:0,drift_artifacts_deleted:0,review_slots_backfilled:0,approval_slots_stripped:0,iterations_message_migrated:0}}function Pu(e,t,n){if(e===t)throw new Error(`registerMigrator: from == to (${e}) \u2014 migrators must change the version`);let r=DK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),DK.set(e,r)}function UHn(e,t){if(e===t)return[];let n=[{version:e,chain:[]}],r=new Set([e]);for(;n.length>0;){let i=n.shift();if(!i)break;let s=DK.get(i.version)??[];for(let o of s){if(r.has(o.to))continue;let a=[...i.chain,o.migrator];if(o.to===t)return a;r.add(o.to),n.push({version:o.to,chain:a})}}return null}function LK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:pc()};let r=UHn(t,n);if(r===null)throw new Error(`migrateIntent: no migration path from ${t} to ${n} for intent at ${e.intentDir}`);let i=[],s=pc(),o=t;for(let a of r){let c=(DK.get(o)??[]).find(l=>l.migrator===a);c&&(i.push(`${o}\u2192${c.to}`),o=c.to);let u=a(e);u&&(s.intent_md_migrated=s.intent_md_migrated||u.intent_md_migrated,s.units_migrated+=u.units_migrated,s.units_with_synthesized_approval+=u.units_with_synthesized_approval,s.review_stamps_synthesized+=u.review_stamps_synthesized,s.approval_stamps_synthesized+=u.approval_stamps_synthesized,s.feedback_migrated+=u.feedback_migrated,s.feedback_with_synthesized_closure+=u.feedback_with_synthesized_closure,s.feedback_relocated+=u.feedback_relocated,s.state_json_deleted+=u.state_json_deleted,s.drift_artifacts_deleted+=u.drift_artifacts_deleted,s.review_slots_backfilled+=u.review_slots_backfilled,s.approval_slots_stripped+=u.approval_slots_stripped,s.iterations_message_migrated+=u.iterations_message_migrated)}return{from:t,to:n,steps:r.length,chain:i,details:s}}var DK,Ph=v(()=>{"use strict";DK=new Map});import{join as Udt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function Fdt(){let e=nn();return[Udt(process.cwd(),".haiku","studios"),Udt(e,"studios")]}var Nfe=v(()=>{"use strict";Ci();ze();ze()});function jdt(e){return typeof e=="string"&&jHn.has(e)}function yI(e){return jdt(e)?e:void 0}function lE(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=yI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function Cfe(e){if(jdt(e))return HHn[e]}var FHn,jHn,HHn,dE=v(()=>{"use strict";FHn=["haiku","sonnet","opus"],jHn=new Set(FHn),HHn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as qHn,readdirSync as Nh,readFileSync as Nu,statSync as Hdt}from"node:fs";import{join as Yt}from"node:path";function Bdt(e){try{if(!Ss(e))return;let{data:t}=re(Nu(e,"utf8"));return yI(t.model)}catch{return}}function $i(e,t){rr(e,"studio"),rr(t,"stage");for(let n of Cu()){let r=Yt(n,e,"stages",t,"STAGE.md");if(Ss(r))return re(Nu(r,"utf8"))}return null}function Od(e){rr(e,"studio");for(let t of Cu()){let n=Yt(t,e,"STUDIO.md");if(Ss(n))return re(Nu(n,"utf8"))}return null}function Gdt(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function zdt(e,t){let n=Yt(process.cwd(),".haiku"),r=nn();return[Yt(r,"hats"),Yt(n,"hats"),Yt(r,"studios",e,"hats"),Yt(n,"studios",e,"hats"),Yt(r,"studios",e,"stages",t,"hats"),Yt(n,"studios",e,"stages",t,"hats")]}function Mu(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of zdt(e,t))if(Ss(r))for(let i of Nh(r).filter(s=>s.endsWith(".md"))){let s=Nu(Yt(r,i),"utf8"),{data:o,body:a}=re(s);n[i.replace(/\.md$/,"")]={content:a,agent_type:o.agent_type||void 0,model:o.model||void 0,run_quality_gates:o.run_quality_gates===!0?!0:void 0,role:Gdt(o.role),raw:s}}return n}function fE(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of zdt(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Dfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=Yt(process.cwd(),".haiku"),i=nn(),s=null;for(let o of[Yt(i,"studios",e,"stages",t,"fix-hats"),Yt(r,"studios",e,"stages",t,"fix-hats")]){let a=Yt(o,`${n}.md`);Ss(a)&&(s=a)}return s??fE(e,t,n)}function Vdt(e,t){let n=Yt(process.cwd(),".haiku"),r=nn();return[Yt(r,"review-agents"),Yt(n,"review-agents"),Yt(r,"studios",e,"review-agents"),Yt(n,"studios",e,"review-agents"),Yt(r,"studios",e,"stages",t,"review-agents"),Yt(n,"studios",e,"stages",t,"review-agents")]}function bl(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of Vdt(e,t))if(Ss(r))for(let i of Nh(r).filter(s=>s.endsWith(".md")))n[i.replace(/\.md$/,"")]=Yt(r,i);return n}function xD(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of Vdt(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Lfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"discovery template");for(let r of Cu()){let i=Yt(r,e,"stages",t,"discovery",`${n}.md`);if(Ss(i))return i}return null}function BHn(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"output template");for(let r of Cu()){let i=Yt(r,e,"stages",t,"outputs",`${n}.md`);if(Ss(i))return i}return null}function mg(e){rr(e,"studio");let t={},n=[...Cu()].reverse(),r=i=>{if(Ss(i))for(let s of Nh(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Yt(i,s)};for(let i of n)r(Yt(i,"..","intent-review-agents"));for(let i of n)r(Yt(i,e,"intent-review-agents"));return t}function OD(e){if(!e||!Ss(e))return null;let{body:t}=re(Nu(e,"utf8"));return(t||"").trim()||null}function SI(e,t,n,r=!1){return OD(r?Dfe(e,t,n):fE(e,t,n))}function Ch(e,t,n){let r=t?xD(e,t,n):mg(e)[n]??null;return OD(r)}function EI(e,t,n){return OD(Lfe(e,t,n))}function UK(e,t,n){return OD(BHn(e,t,n))}function FK(e,t,n){return(Ufe(e,t,n)?.body||"").trim()||null}function Mh(e,t){return($i(e,t)?.body||"").trim()||null}function Wdt(e,t){return OD(PD(e)[t]??null)}function Kdt(e){let t=Yt(process.cwd(),".haiku"),n=nn();return[Yt(n,"fix-hats"),Yt(t,"fix-hats"),Yt(n,"studios",e,"fix-hats"),Yt(t,"studios",e,"fix-hats")]}function jK(e){rr(e,"studio");let t={};for(let n of Kdt(e))if(Ss(n))for(let r of Nh(n).filter(i=>i.endsWith(".md"))){let i=Nu(Yt(n,r),"utf8"),{data:s,body:o}=re(i);t[r.replace(/\.md$/,"")]={content:o,agent_type:s.agent_type||void 0,model:s.model||void 0,role:Gdt(s.role),raw:i}}return t}function PD(e){rr(e,"studio");let t={};for(let n of Kdt(e))if(Ss(n))for(let r of Nh(n).filter(i=>i.endsWith(".md")))t[r.replace(/\.md$/,"")]=Yt(n,r);return t}function Ydt(e,t,n){let r={},i=null,s=null;for(let[l,d]of Object.entries(e))u(d)&&(r[l]=d);return r;function o(l){try{let d=Nu(l,"utf8"),{data:f}=re(d),p=f.applies_to;if(p!=null){if(Array.isArray(p)&&p.every(h=>typeof h=="string"))return p;console.warn(`[haiku] review-agent ${l}: \`applies_to:\` is present but not a string[]; treating as unscoped (always runs). Fix the frontmatter to scope the agent.`)}}catch{}}function a(){return i===null&&(i=GHn(t)),i}function c(){if(s===null&&(s=[],n))for(let l of no(n.studio,n.stage)){if(l.kind!=="output")continue;let p=(l.location||"").replace(/\{[^}]+\}/g,"").toLowerCase().match(/\.[a-z0-9]+$/);p&&s.push(p[0])}return s}function u(l){let d=o(l);if(!d||d.length===0)return!0;let f=a();if(f.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(f.some(g=>g.toLowerCase().endsWith(m)))return!0}return!1}let p=c();if(p.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(p.some(g=>g===m))return!0}return!1}return!0}}function GHn(e){if(!Ss(e))return[];let t=[],n=[e];for(;n.length>0;){let r=n.pop();try{let i=Nh(r,{withFileTypes:!0});for(let s of i){let o=String(s.name),a=Yt(r,o);s.isDirectory()?n.push(a):t.push(o)}}catch{}}return t}function no(e,t){rr(e,"studio"),rr(t,"stage");let n=[],r=new Set;for(let s of[...Cu()].reverse())for(let o of["discovery","outputs"]){let a=Yt(s,e,"stages",t,o);if(Ss(a))for(let c of Nh(a).filter(u=>u.endsWith(".md"))){let u=`${o}:${c}`;if(r.has(u))continue;r.add(u);let l=Nu(Yt(a,c),"utf8"),{data:d,body:f}=re(l);n.push({name:d.name||c.replace(/\.md$/,""),location:d.location||"",scope:d.scope||"intent",format:d.format||"text",required:d.required!==!1,body:f,kind:o==="outputs"?"output":"discovery",...typeof d.tool=="string"&&d.tool.length>0?{tool:d.tool}:{}})}}let i=new Map;for(let s of n){if(s.kind!=="discovery"||!s.location)continue;let o=i.get(s.location)??[];o.push(s.name),i.set(s.location,o)}for(let[s,o]of i)if(o.length>1)throw new Error(`Studio configuration error: discovery templates [${o.join(", ")}] in stage '${t}' of studio '${e}' share the same location '${s}'. Each discovery template must declare a unique 'location:' frontmatter field \u2014 parallel agents writing to the same path produce merge conflicts and ambiguous existence checks.`);return n}function HK(e,t,n,r){let i=[];for(let s of t){let o=s.stage,a=no(e,o);if(s.discovery){let c=a.find(u=>u.name===s.discovery&&u.kind==="discovery");if(c?.location){let u=qdt(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&Hdt(u).isDirectory())&&l){let f=Mfe(u);i.push({stage:o,artifactName:s.discovery,kind:"discovery",resolvedPath:u,exists:l,content:f||"(empty directory)",description:c.body})}else i.push({stage:o,artifactName:s.discovery,kind:"discovery",resolvedPath:u,exists:l,content:l?Nu(u,"utf8"):null,description:c.body})}}if(s.output){let c=a.find(u=>u.name===s.output&&u.kind==="output");if(c?.location){let u=qdt(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&Hdt(u).isDirectory())&&l){let f=Mfe(u);i.push({stage:o,artifactName:s.output,kind:"output",resolvedPath:u,exists:l,content:f||"(empty directory)",description:c.body})}else i.push({stage:o,artifactName:s.output,kind:"output",resolvedPath:u,exists:l,content:l?Nu(u,"utf8"):null,description:c.body})}}}return i}function Mfe(e,t=""){let n=Nh(e).filter(i=>!i.startsWith(".")),r=[];for(let i of n){let s=Yt(e,i),o=t?`${t}/${i}`:i,a;try{a=qHn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Mfe(s,o));else{let c;try{c=Nu(s,"utf8")}catch{continue}r.push(`### ${o} ${c.slice(0,1500)}${c.length>1500?` ...(truncated)`:""}`)}}return r.filter(Boolean).join(` -`)}function ddt(e,t,n){let r=e.replace(/\{intent-slug\}/g,n),i=`.haiku/intents/${n}/`;return r.startsWith(i)?Kt(t,r.slice(i.length)):r.startsWith("/")?r:Kt(process.cwd(),r)}function KFn(){let e=new Map,t=nn(),n=ku();for(let r of[...n].reverse()){if(!gs(r))continue;let i=t&&r.startsWith(t)?"plugin":"project";for(let s of wh(r,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Kt(r,s.name),a=Kt(o,"STUDIO.md");if(!gs(a))continue;let{data:c,body:u}=re(wu(a,"utf8")),l=c.name||s.name,d=c.slug||l,f=Array.isArray(c.aliases)?c.aliases:[];e.set(s.name,{dir:s.name,name:l,slug:d,aliases:f,description:c.description||"",category:c.category||"general",stages:Array.isArray(c.stages)?c.stages:[],data:c,body:u,source:i,path:o,studioFile:a})}}return Array.from(e.values())}function mI(){let e=ku().join("|"),t=Date.now();if(ED&&ED.key===e&&ED.expiresAt>t)return ED.value;let n=KFn();return ED={key:e,expiresAt:t+WFn,value:n},n}function _i(e){if(!e)return null;let t=e.toLowerCase(),n=mI();for(let r of n)if(r.dir.toLowerCase()===t||r.name.toLowerCase()===t||r.slug.toLowerCase()===t||r.aliases.some(i=>i.toLowerCase()===t))return r;return null}function Sfe(e,t,n){nr(e,"studio"),nr(t,"stage");for(let r of ku()){let i=Kt(r,e,"stages",t,"phases",`${n.toUpperCase()}.md`);if(gs(i))return re(wu(i,"utf8"))}return null}function _dt(e){nr(e,"studio");let t={},n=ku();for(let r of[...n].reverse()){let i=Kt(r,e,"reflections");if(gs(i))for(let s of wh(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=wu(Kt(i,s),"utf8")}return t}var ku,WFn,ED,Zn=v(()=>{"use strict";pfe();Oi();a_();ze();ku=cdt;WFn=2e3,ED=null});import{spawnSync as ZFn}from"node:child_process";import{readFileSync as YFn}from"node:fs";import{homedir as JFn}from"node:os";import{join as _fe}from"node:path";function xd(e){return(process.env[e]??"").trim()}function Edt(e){let t={};if(!e)return t;for(let n of e.split(",")){let r=n.trim();if(!r)continue;let i=r.indexOf("=");if(i<=0)continue;let s=r.slice(0,i).trim(),o=r.slice(i+1).trim();if(!s)continue;let a=o;try{a=decodeURIComponent(o)}catch{}t[s]=a}return t}function XFn(){let e=xd("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(xd("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function QFn(){let e=xd("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return Edt(e||xd("OTEL_EXPORTER_OTLP_HEADERS"))}function $Fn(){let e=xd("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||xd("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function eHn(){let e=Number(xd("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(xd("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function tHn(){return xd("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function nHn(e){try{let t=YFn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function rHn(){let e={},t=JFn(),n=process.cwd(),r=[t?_fe(t,".claude","settings.json"):null,_fe(n,".claude","settings.json"),_fe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=nHn(i);s&&Object.assign(e,s)}return e}function iHn(){let t=rHn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function oHn(){let e=Number(xd("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:sHn}function aHn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=ZFn(t,n,{encoding:"utf8",timeout:1e4});if(r.status!==0){let a=(r.stderr||"").trim();return console.error(`[haiku/telemetry] otelHeadersHelper exited ${r.status}${a?`: ${a}`:""}`),null}let i=(r.stdout||"").trim();if(!i)return console.error("[haiku/telemetry] otelHeadersHelper did not return a valid value"),null;let s;try{s=JSON.parse(i)}catch(a){return console.error(`[haiku/telemetry] otelHeadersHelper output is not valid JSON: ${a instanceof Error?a.message:String(a)}`),null}if(!s||typeof s!="object"||Array.isArray(s))return console.error("[haiku/telemetry] otelHeadersHelper must return a JSON object with string key-value pairs"),null;let o={};for(let[a,c]of Object.entries(s)){if(typeof c!="string")return console.error(`[haiku/telemetry] otelHeadersHelper returned non-string value for key "${a}": ${typeof c}`),null;o[a]=c}return o}function cHn(){let e=oHn();if(gI!==null&&Date.now()-Efe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:pHn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=cHn(),a={"Content-Type":"application/json",...dHn,...o};fetch(lHn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(fHn)}).catch(()=>{})}var Tfe,sHn,gI,Efe,lHn,dHn,Tdt,fHn,pHn,bfe,vfe,vdt,hHn,mHn,bdt,Ko=v(()=>{"use strict";Oi();Tfe=Bo.telemetry;sHn=174e4,gI=null,Efe=0;lHn=XFn(),dHn=QFn(),Tdt=$Fn(),fHn=eHn(),pHn=uHn(),bfe=tHn(),vfe=bfe==="otlp",vdt=Tdt==="http/json";Tfe&&!vfe&&bfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${bfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);Tfe&&vfe&&!vdt&&console.error(`[haiku/telemetry] OTLP protocol "${Tdt}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);hHn=Tfe&&vfe&&vdt,mHn=new Set(["diff_unified","excerpt","file_content","file_body","user_email","user_name","message_body","finding_body","fb_body","content","password","passwd","pwd","token","access_token","refresh_token","id_token","bearer_token","bearer","api_key","apikey","api-key","authorization","auth_header","auth","secret","client_secret","signing_secret","credential","credentials","session_id","cookie","private_key","pem"]),bdt=new Set});import{existsSync as xu,mkdirSync as yHn,readdirSync as yI,readFileSync as Rdt,renameSync as SHn,rmSync as Afe,writeFileSync as _Hn}from"node:fs";import{dirname as EHn,join as $s}from"node:path";function RHn(e){return!1}function SI(e){let t=Rdt(e,"utf8"),n=(0,Rfe.default)(t);return{data:n.data,body:n.content}}function wfe(e,t,n){try{t()}catch(r){let i=r instanceof Error?r.message:String(r);console.warn(`[haiku-migrate-v0-to-v4] Skipped ${n} at ${e} due to parse error: ${i}. The file is preserved as-is; fix the YAML and re-tick to migrate.`),Qe("haiku.migrator.unit_skip",{path:e,context:n,error:i.slice(0,500)})}}function kfe(e,t,n){let r=Rfe.default.stringify(n,t);_Hn(e,r)}function Ife(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function kdt(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function IHn(e,t){let n=$s(e,"intent.md");xu(n)&&wfe(n,()=>{let{data:r,body:i}=SI(n),s=Ife(r,bHn);s.plugin_version=wdt,(typeof s.approvals!="object"||s.approvals===null)&&(s.approvals={}),s.started_at==null&&(s.started_at=null),s.sealed_at==null&&(s.sealed_at=null),kfe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function xHn(e,t,n,r){let i=$s(e,"units");if(!xu(i))return;let s=yI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=$s(i,o.name);wfe(a,()=>NHn(a,t,n,r),`unit ${o.name}`)}}function OHn(e,t,n,r,i){let s={at:t,migrated:!0},o=e.reviews,a=[];try{a=Object.keys(gl(n,r)).sort()}catch{a=[]}let c=["spec",...a,"user"];for(let d of c)o[d]==null&&(o[d]=s,i.review_stamps_synthesized++);let u=e.approvals,l=["spec","quality_gates",...a,"user"];for(let d of l)u[d]==null&&(u[d]=s,i.approval_stamps_synthesized++)}function NHn(e,t,n,r){let{data:i,body:s}=SI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=Ife(i,THn);if((typeof c.iterations!="object"||!Array.isArray(c.iterations))&&(c.iterations=i.iterations??[]),Array.isArray(c.iterations))for(let u of c.iterations)u&&u.result==="rejected"&&(u.result="reject"),u&&u.result==="advanced"&&(u.result="advance");if((typeof c.reviews!="object"||c.reviews===null)&&(c.reviews={}),(typeof c.approvals!="object"||c.approvals===null)&&(c.approvals={}),delete c.discovery,o){let u=kdt([a]);OHn(c,u,n,r,t),t.units_with_synthesized_approval++}kfe(e,c,s),t.units_migrated++}function Adt(e,t,n){if(!xu(e))return;let r=yI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=$s(e,i.name);wfe(s,()=>CHn(s,t,n),`feedback ${i.name}`)}}function PHn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=EHn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=$s(n,"stages",r,"feedback");if(!xu(a))try{yHn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of yI(a).filter(m=>m.endsWith(".md"))){let m=h.match(/^(\d+)-/);m&&c.add(Number.parseInt(m[1],10))}let u=1;for(;c.has(u);)u++;let l=e.split("/").pop()??"",d=l.match(/^\d+-(.+\.md)$/),f=d?`${String(u).padStart(2,"0")}-${d[1]}`:`${String(u).padStart(2,"0")}-${l}`,p=$s(a,f);return xu(p)?null:(SHn(e,p),p)}function CHn(e,t,n){let{data:r,body:i}=SI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=Ife(r,wHn);if((typeof a.iterations!="object"||!Array.isArray(a.iterations))&&(a.iterations=r.iterations??[]),Array.isArray(a.iterations))for(let l of a.iterations)l&&l.result==="rejected"&&(l.result="reject"),l&&l.result==="advanced"&&(l.result="advance");(typeof a.targets!="object"||a.targets===null)&&(a.targets={unit:null,invalidates:[]});let c=!1;a.closed_at==null&&(kHn.has(s)?(a.closed_at=kdt([o,r.created_at]),c=!0):a.closed_at=null),kfe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,PHn(e,r,t)&&n.feedback_relocated++}function MHn(e){let{intentDir:t}=e,n=Ru();IHn(t,n);let r="",i=$s(t,"intent.md");if(xu(i))try{let o=SI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=$s(t,"stages");if(xu(s))for(let o of yI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=$s(s,o.name),c=o.name;xHn(a,n,r,c),Adt($s(a,"feedback"),t,n);let u=$s(a,"state.json");xu(u)&&(Afe(u,{force:!0}),n.state_json_deleted++);for(let l of["baseline.json","drift-markers.json","baseline-content"]){let d=$s(a,l);xu(d)&&(Afe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}Adt($s(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=$s(t,o);xu(a)&&(Afe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function kK(e){let t=$s(e,"intent.md");if(xu(t))try{let r=SI(t).data;for(let i of vHn)if(i in r)return!0}catch{}let n=$s(e,"stages");if(!xu(n))return!1;for(let r of yI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=$s(n,r.name),s=$s(i,"units");if(xu(s)){let a=yI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=SI($s(s,c)).data;for(let l of AHn)if(l in u)return!0;if(RHn(u))return!0}catch{}}let o=$s(i,"state.json");if(xu(o))try{let a=JSON.parse(Rdt(o,"utf8"));if(typeof a=="object"&&a!==null&&typeof a.status=="string"&&(a.status==="active"||a.status==="completed"||a.status==="pending"))return!0}catch{}}return!1}var Rfe,wdt,bHn,THn,vHn,AHn,wHn,kHn,IK=v(()=>{"use strict";Rfe=_e(sn(),1);Zn();Ko();lg();wdt="4.0.0",bHn=new Set(["status","active_stage","phase","completed_at","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase","autopilot","intent_completion_review"]),THn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),vHn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),AHn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);wHn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),kHn=new Set(["closed","answered","addressed","rejected"]);kd("0",wdt,MHn)});var CD={};Rr(CD,{GIT_NETWORK_TIMEOUT_MS:()=>Ta,GIT_NONINTERACTIVE_ENV:()=>va,addTempWorktree:()=>PK,branchAheadOfOrigin:()=>DK,branchExists:()=>Ft,buildCompareUrl:()=>Ffe,checkoutFromBranchOnIntentMain:()=>ZHn,cleanupDiscoveryWorktree:()=>$Hn,cleanupFixChainWorktree:()=>UK,cleanupIntentWorktrees:()=>ND,cleanupOrphanedStageBranches:()=>LK,cleanupUnitWorktree:()=>rpe,commitAndPushFromWorktree:()=>MK,consolidateStageBranches:()=>Kfe,createDiscoveryWorktree:()=>epe,createFixChainWorktree:()=>npe,createIntentBranch:()=>EI,createStageBranch:()=>Vfe,createUnitWorktree:()=>Xfe,deleteBranch:()=>PD,deleteStageBranch:()=>f_,detectPrTool:()=>wD,discoveryBranchName:()=>TI,discoveryWorktreePath:()=>bI,ensureOnIntentMain:()=>Gfe,ensureOnStageBranch:()=>mr,ensureStageBranch:()=>d_,fetchOrigin:()=>wT,finalizeIntentBranches:()=>ipe,fixChainBranchName:()=>xD,fixChainWorktreePath:()=>pg,getCurrentBranch:()=>hr,getMainlineBranch:()=>ac,hasGitRemote:()=>Lfe,hasNoMergeDebt:()=>RD,isAncestor:()=>Nf,isBranchMerged:()=>yl,isCurrentWorktreeLocked:()=>WHn,isLiveWorktree:()=>Pdt,isMergeInProgress:()=>u_,isOnIntentBranch:()=>BHn,isOnStageBranch:()=>zfe,listIntentBranches:()=>NK,listOrphanDiscreteIntents:()=>Mfe,markPullRequestReady:()=>qfe,mergeDiscoveryWorktree:()=>tpe,mergeFixChainWorktree:()=>OD,mergeStageBranchForward:()=>Wfe,mergeStageBranchIntoMain:()=>ID,mergeUnitWorktree:()=>$fe,openIntentDraftPullRequest:()=>Hfe,openPullRequest:()=>_I,openStagePullRequest:()=>HHn,prepareRevisitBranch:()=>eqn,pushBranchToOrigin:()=>fg,pushFixChainWorktree:()=>jfe,pushStageBranch:()=>kD,pushUnitWorktree:()=>Ufe,readFileFromBranch:()=>Zfe,reconcileIntentBranches:()=>Bfe,reconcileMisroutedStageMerges:()=>qHn,refsHaveIdenticalTrees:()=>OK,removeTempWorktree:()=>CK,resolveMainlineRef:()=>Cfe,syncBranchDownstream:()=>Nfe,uncommittedAgentWork:()=>Yfe,unitBranchExists:()=>Dfe,unitSpecInWorktree:()=>VHn,unitWorktreePath:()=>l_,writeOnIntentMain:()=>KHn});import{execFileSync as Vr}from"node:child_process";import{existsSync as eo,writeFileSync as xfe,mkdirSync as AD,mkdtempSync as DHn,readFileSync as LHn,rmSync as Ofe}from"node:fs";import{tmpdir as UHn}from"node:os";import{join as Ji}from"node:path";function jt(e,t){return Vr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,env:process.env}).trim()}function oe(e,t){try{return jt(e,t)}catch{return""}}function jHn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` -`)}function OK(e,t){let n=oe(["git","rev-parse",`${e}^{tree}`]);if(!n)return!1;let r=oe(["git","rev-parse",`${t}^{tree}`]);return r?n===r:!1}function u_(){if(!Ae())return!1;let e=oe(["git","rev-parse","--git-dir"]);if(!e)return!1;let t=e.startsWith("/")?e:Ji(process.cwd(),e);for(let n of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(eo(Ji(t,n)))return!0;return!1}function RD(e,t){return!!(OK(e,t)||Nf(e,t))}function xK(e,t){try{return Vr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Ta,env:va}).trim()}catch{return""}}function hr(){return oe(["git","rev-parse","--abbrev-ref","HEAD"])}function Ft(e){return Ae()?oe(["git","rev-parse","--verify",e])!=="":!1}function Nfe(e){if(!Ae())return{ok:!0,performed:!1,message:"non-git mode"};let t=ac(),n=`haiku/${e}/main`,r=hr(),i=!1;if(t&&n&&Ft(n)){let s=oe(["git","rev-parse","--verify",`origin/${t}`])?`origin/${t}`:"",o=Ft(t),a=s&&o&&Nf(t,s)&&oe(["git","rev-parse","--verify",t])!==oe(["git","rev-parse","--verify",s]),c=o?a?s:t:s;if(c&&!RD(c,n)){let u=FHn(c,n,r,`haiku: merge ${c} \u2192 ${n} (pre-cursor sync)`,e);if(!u.ok)return{ok:!1,performed:i,conflictAt:"mainline_to_intent_main",conflictFiles:u.conflictFiles,conflictBranch:n,message:u.message};u.performed&&(i=!0)}}if(n&&Ft(n)&&r&&r!==n&&r.startsWith(`haiku/${e}/`)&&!OK(r,n)){let s=Odt(n,`haiku: merge ${n} \u2192 ${r} (pre-cursor sync)`,e);if(!s.ok)return{ok:!1,performed:i,conflictAt:"intent_main_to_stage",conflictFiles:s.conflictFiles,conflictBranch:r,message:s.message};s.performed&&(i=!0)}return{ok:!0,performed:i}}function FHn(e,t,n,r,i){if(n===t)return Odt(e,r,i);try{return xh(t,o=>Pfe(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function Pfe(e,t,n,r){let i=null;try{jt(["git",...e,"merge",t,"--no-ff","--no-commit"])}catch(a){i=a}if(!!!oe(["git",...e,"rev-parse","--quiet","--verify","MERGE_HEAD"]))return i?{ok:!1,performed:!1,conflictFiles:[],message:i instanceof Error?i.message:String(i)}:{ok:!0,performed:!1};Qfe(e,"HEAD",n);let o=oe(["git",...e,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);return o.length>0?{ok:!1,performed:!1,conflictFiles:o,message:`Merge ${t} left conflicts in ${o.length} file(s): ${o.join(", ")}.`}:(jt(["git",...e,"commit","--no-edit","-m",r]),{ok:!0,performed:!0})}function Odt(e,t,n){return Pfe([],e,n,t)}function ac(){if(!Ae())return"main";let e=oe(["git","symbolic-ref","--short","refs/remotes/origin/HEAD"]);if(e){let n=e.match(/^origin\/(.+)$/);if(n)return n[1]}for(let n of["main","master"])if(oe(["git","rev-parse","--verify",n])||oe(["git","rev-parse","--verify",`origin/${n}`]))return n;return oe(["git","config","--get","init.defaultBranch"])||"main"}function Cfe(){if(!Ae())return"";let e=ac();return oe(["git","rev-parse","--verify",e])?e:oe(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function wT(){if(!Ae())return!1;try{return Vr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Ta,env:va}),!0}catch{return!1}}function NK(){if(!Ae())return[];let e=new Set,t=oe(["git","for-each-ref","--format=%(refname:short)","refs/heads/haiku"]);for(let r of t.split(` -`).filter(Boolean)){let i=r.match(/^haiku\/([^/]+)\/main$/);i&&e.add(i[1])}let n=oe(["git","for-each-ref","--format=%(refname:short)","refs/remotes/origin/haiku"]);for(let r of n.split(` -`).filter(Boolean)){let i=r.match(/^origin\/haiku\/([^/]+)\/main$/);i&&e.add(i[1])}return Array.from(e).sort()}function Mfe(){if(!Ae())return[];let e=new Set(NK()),t=new Map;for(let n of["refs/heads/haiku","refs/remotes/origin/haiku"]){let r=oe(["git","for-each-ref","--format=%(refname:short)",n]);for(let i of r.split(` -`).filter(Boolean)){let o=(i.startsWith("origin/")?i.slice(7):i).match(/^haiku\/([^/]+)\/(.+)$/);if(!o)continue;let[,a,c]=o;if(c==="main"||e.has(a))continue;t.has(a)||t.set(a,[]);let u=t.get(a)??[],l=`haiku/${a}/${c}`;u.includes(l)||u.push(l)}}return Array.from(t.entries()).map(([n,r])=>({slug:n,branches:r})).sort((n,r)=>n.slug.localeCompare(r.slug))}function yl(e,t){if(!Ae())return!1;let n=[t,`origin/${t}`],r=oe(["git","rev-parse","--verify",e])||oe(["git","rev-parse","--verify",`origin/${e}`]);if(!r)return!1;for(let o of n){let a=oe(["git","rev-parse","--verify",o]);if(a)try{return Vr("git",["merge-base","--is-ancestor",r,a],{stdio:"ignore"}),!0}catch{}}let i=wD(),s=e.startsWith("origin/")?e.slice(7):e;if(i==="gh"){let o=oe(["gh","pr","list","--head",s,"--base",t,"--state","merged","--json","number","--limit","1"]);if(o&&o.trim()!=="[]")return!0}else if(i==="glab"){let o=oe(["glab","mr","list","--source-branch",s,"--target-branch",t,"--state","merged","--per-page","1"]);if(o&&/^!(\d+)\b/m.test(o))return!0}return!1}function PK(e,t="haiku-repair",n=!1){if(!Ae())throw new Error("not a git repo");let r=Ji("/tmp",`${t}-${Date.now()}-${Math.floor(Math.random()*1e6)}`),i=oe(["git","rev-parse","--verify",e]),s=oe(["git","rev-parse","--verify",`origin/${e}`]),o;if(n?o=s?`origin/${e}`:i?e:"":o=i?e:s?`origin/${e}`:"",!o)throw new Error(`branch '${e}' not found locally or on origin`);return jt(["git","worktree","add","--detach",r,o]),r}function CK(e){e&&eo(e)&&oe(["git","worktree","remove","--force",e])}function MK(e,t,n){if(!Ae())return{committed:!1,pushed:!1,pushError:"not a git repo"};if(oe(["git","-C",e,"add","-A"]),!oe(["git","-C",e,"status","--porcelain"]))return{committed:!1,pushed:!1};try{Vr("git",["-C",e,"commit","-m",n],{stdio:"pipe"})}catch(a){return{committed:!1,pushed:!1,pushError:a instanceof Error?a.message:String(a)}}let i=()=>{try{return Vr("git",["-C",e,"push","origin",`HEAD:refs/heads/${t}`],{stdio:"pipe",timeout:Ta,env:va}),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}},s=i();if(s.ok)return{committed:!0,pushed:!0};if(/non-fast-forward|fetch first|behind the remote/i.test(s.error??"")){xK(["git","-C",e,"fetch","origin",t]);try{Vr("git",["-C",e,"rebase",`origin/${t}`],{stdio:"pipe"})}catch(c){return oe(["git","-C",e,"rebase","--abort"]),{committed:!0,pushed:!1,pushError:`non-fast-forward; rebase onto origin/${t} failed: ${c instanceof Error?c.message:String(c)}`}}let a=i();return a.ok?{committed:!0,pushed:!0}:{committed:!0,pushed:!1,pushError:a.error}}return{committed:!0,pushed:!1,pushError:s.error}}function wD(){return oe(["which","gh"])?"gh":oe(["which","glab"])?"glab":null}function _I(e,t,n,r,i){let s=wD();if(!s)return{ok:!1,error:"no PR tool (gh/glab) found on PATH"};let o=i?.draft===!0;try{if(s==="gh"){let d=oe(["gh","pr","list","--head",e,"--state","open","--json","url","--jq",".[0].url"]);if(d)return{ok:!0,url:d};let f=["pr","create"];return o&&f.push("--draft"),f.push("--base",t,"--head",e,"--title",n,"--body",r),{ok:!0,url:Vr("gh",f,{encoding:"utf8",timeout:Ta,env:va}).trim()}}let c=xK(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=xK(["glab","mr","view",d,"--output","json"]);if(f)try{let p=JSON.parse(f);if(p.web_url)return{ok:!0,url:p.web_url}}catch{}}let u=["mr","create"];return o&&u.push("--draft"),u.push("--target-branch",t,"--source-branch",e,"--title",n,"--description",r),{ok:!0,url:Vr("glab",u,{encoding:"utf8",timeout:Ta,env:va}).trim()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}function Dfe(e,t){if(!Ae())return{local:!1,remote:!1};let n=`haiku/${e}/${t}`,r=!!oe(["git","branch","--list",n])?.trim();oe(["git","fetch","origin",n]);let i=!!oe(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${n}`])?.trim();return{local:r,remote:i}}function Lfe(){return Ae()?!!oe(["git","remote"])?.trim():!1}function Ufe(e,t){if(!Ae())return;let n=l_(e,t);if(!eo(n))return;let r=`haiku/${e}/${t}`;try{oe(["git","-C",n,"add","-A"]);let i=oe(["git","-C",n,"status","--porcelain"]);i&&i.trim().length>0&&oe(["git","-C",n,"commit","-m",`haiku: checkpoint ${t}`]),Vr("git",["-C",n,"push","origin",`HEAD:refs/heads/${r}`],{stdio:"pipe",timeout:Ta,env:va})}catch{}}function jfe(e,t,n){if(!Ae())return;let r=pg(e,t,n);if(!eo(r))return;let i=xD(e,t,n);try{oe(["git","-C",r,"add","-A"]);let s=oe(["git","-C",r,"status","--porcelain"]);s&&s.trim().length>0&&oe(["git","-C",r,"commit","-m",`haiku: checkpoint fix-chain ${n}`]),Vr("git",["-C",r,"push","origin",`HEAD:refs/heads/${i}`],{stdio:"pipe",timeout:Ta,env:va})}catch{}}function fg(e){try{return Vr("git",["push","-u","origin",e],{encoding:"utf8",stdio:"pipe",timeout:Ta,env:va}),{ok:!0}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}function Ffe(e,t){let n="";try{n=Vr("git",["remote","get-url","origin"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{return null}if(!n)return null;let r="",i="",s=n.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(s)r=s[1],i=s[2];else try{let d=new URL(n);r=d.hostname,i=d.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let o=i.split("/").filter(Boolean);if(o.length<2)return null;let a=o[0],c=o.slice(1).join("/"),u=encodeURIComponent(e),l=encodeURIComponent(t);return r==="github.com"?`https://github.com/${a}/${c}/compare/${l}...${u}?expand=1`:r==="gitlab.com"?`https://gitlab.com/${a}/${c}/-/merge_requests/new?merge_request%5Bsource_branch%5D=${u}&merge_request%5Btarget_branch%5D=${l}`:null}function HHn(e){let t=`haiku/${e.slug}/${e.stage}`,n=`haiku/${e.slug}/main`,r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug} \u2014 stage ${e.stage} review`,i=e.body??`Stage \`${e.stage}\` is ready for review on intent \`${e.slug}\`. - -Merging this PR signals approval to the H\xB7AI\xB7K\xB7U workflow engine.`;if(!Ae())return{branch:t,base:n,message:"This is not a git repo \u2014 stage progression is driven by per-unit signature state, not a git merge. Nothing to open."};let s=fg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=_I(t,n,r,i);if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Stage PR opened: ${c.url}`,o;o.prError=c.error}let a=Ffe(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage branch \`${t}\` is pushed. The gh/glab CLI didn't create the PR (${o.prError??"no tool found"}). Click here to open the MR manually: ${a}`:`Failed to push \`${t}\` (${s.error}). After resolving the push, open the MR at: ${a}`,o):(o.message=s.ok?`Stage branch \`${t}\` is pushed but no provider-specific compare URL could be built (origin host not recognised). Open the MR manually from \`${t}\` into \`${n}\` via your provider's web UI.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built. Resolve the push, then open the MR from \`${t}\` into \`${n}\` via your provider's web UI.`,o)}function Hfe(e){let t=`haiku/${e.slug}/main`,n=ac(),r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug}`,i=e.body??`Intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the work can be watched as stages land. The engine will mark it ready when the intent completes.`;if(!Ae())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=fg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=_I(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft PR opened: ${c.url}`,o;o.prError=c.error}let a=Ffe(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Intent main branch \`${t}\` is pushed. The provider CLI didn't create the draft PR (${o.prError??"no tool found"}). Click here to open one manually: ${a}`:`Failed to push \`${t}\` (${s.error}). After resolving, open the draft PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function qfe(e){if(!e)return{ok:!1,error:"empty url"};let t;try{t=new URL(e)}catch{return{ok:!1,error:`not a valid URL: ${e}`}}try{if(t.hostname.includes("github"))return Vr("gh",["pr","ready",e],{encoding:"utf8",stdio:"pipe",timeout:Ta,env:va}),{ok:!0};if(t.hostname.includes("gitlab")){let n=t.pathname.match(/\/merge_requests\/(\d+)/);return n?(Vr("glab",["mr","update",n[1],"--ready"],{encoding:"utf8",stdio:"pipe",timeout:Ta,env:va}),{ok:!0}):{ok:!1,error:"could not parse MR iid from URL"}}return{ok:!1,error:`unrecognised provider host: ${t.hostname}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}function kD(e,t){if(!Ae())return{ok:!0,skipped:!0};if(process.env.HAIKU_NO_AUTO_PUSH==="1")return{ok:!0,skipped:!0};let n=`haiku/${e}/${t}`;return Ft(n)?oe(["git","remote","get-url","origin"])?DK(n)?fg(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function DK(e){if(!Ae()||!oe(["git","rev-parse",e]))return!1;if(!oe(["git","rev-parse",`origin/${e}`]))return!0;let r=oe(["git","rev-list","--count",`origin/${e}..${e}`]);return r?Number.parseInt(r,10)>0:!1}function qHn(e,t){if(!Ae())return[];let n=[],r=ac(),i=`haiku/${e}/main`;if(!r||!Ft(i))return n;for(let s of t){let o=`haiku/${e}/${s}`,a={stage:s,stageBranch:o,intentMain:i,mainline:r,misrouted:!1,reconciled:!1,pushed:!1},c=oe(["git","rev-parse","--verify",o])||oe(["git","rev-parse","--verify",`origin/${o}`]);if(!c)continue;let u=oe(["git","rev-parse","--verify",i])||oe(["git","rev-parse","--verify",`origin/${i}`]);if(!u||Nf(c,u)&&Idt(c,u)>0)continue;let l=oe(["git","rev-parse","--verify",`origin/${r}`])||oe(["git","rev-parse","--verify",r]);if(!l||!Nf(c,l)||Idt(c,l)<=0)continue;if(a.misrouted=!0,!Nf(u,l)){a.error=`Stage \`${o}\` was merged into \`${r}\` (the repo default) instead of \`${i}\`, but \`${i}\` has commits that aren't on \`${r}\` \u2014 fast-forward isn't safe. Resolve manually: \`git checkout ${i} && git merge ${r}\` (or \`origin/${r}\`), resolve any conflicts, then re-run /haiku:haiku-pickup.`,n.push(a);continue}let f=hr(),p="";try{if(f!==i)try{Vr("git",["checkout",i],{stdio:"pipe"}),p=f}catch(h){a.error=`Could not check out \`${i}\` to fast-forward (${h instanceof Error?h.message:String(h)}). Reconcile manually: \`git checkout ${i} && git merge --ff-only origin/${r}\`.`,n.push(a);continue}try{Vr("git",["merge","--ff-only",`origin/${r}`],{stdio:"pipe"}),a.reconciled=!0}catch{try{Vr("git",["merge","--ff-only",r],{stdio:"pipe"}),a.reconciled=!0}catch(h){a.error=`Fast-forward of \`${i}\` to \`${r}\` failed: ${h instanceof Error?h.message:String(h)}. Reconcile manually: \`git checkout ${i} && git merge origin/${r}\`, resolve any conflicts, then re-run /haiku:haiku-pickup.`}}if(a.reconciled){let h=fg(i);a.pushed=h.ok,h.ok||(a.error=`Reconciled \`${i}\` locally but push to origin failed: ${h.error}. The next agent on this branch needs to push manually.`)}}catch(h){a.error=`Misrouted-merge reconciliation threw: ${h instanceof Error?h.message:String(h)}`}finally{if(p)try{Vr("git",["checkout",p],{stdio:"pipe"})}catch{}}n.push(a)}return n}function Bfe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Ae())return t;wT();let n=`haiku/${e}/main`,r=ac();if(!Ft(n)||!r)return t;let i=hr(),s=oe(["git","rev-parse","--verify",n]),o=oe(["git","rev-parse","--verify",`origin/${r}`])||oe(["git","rev-parse","--verify",r]);if(s&&o&&s!==o)if(Nf(s,o))if(i===n)try{Vr("git",["merge","--ff-only",`origin/${r}`],{stdio:"pipe"}),t.intentMainFastForwarded=!0}catch(u){t.error=`Failed to FF ${n} from origin/${r}: ${u instanceof Error?u.message:String(u)}`}else try{Vr("git",["fetch",".",`origin/${r}:${n}`],{stdio:"pipe"}),t.intentMainFastForwarded=!0}catch(u){t.error=`Failed to FF ${n} from origin/${r} via refspec: ${u instanceof Error?u.message:String(u)}`}else Nf(o,s)||(t.error=`${n} has diverged from origin/${r} \u2014 fast-forward isn't safe. Resolve manually.`);let a=`haiku/${e}/`;if(i.startsWith(a)&&i!==n){let u=oe(["git","rev-parse","--verify",n])||s,l=oe(["git","rev-parse","--verify",i]);if(l&&u&&l!==u&&Nf(l,u))try{Vr("git",["merge","--ff-only",n],{stdio:"pipe"}),t.stageBranchFastForwarded=!0}catch(d){let f=t.error?`${t.error} -`:"";t.error=`${f}Failed to fast-forward ${i} from ${n}: ${d instanceof Error?d.message:String(d)}`}}return t}function Nf(e,t){if(!e||!t)return!1;try{return Vr("git",["merge-base","--is-ancestor",e,t],{stdio:"ignore"}),!0}catch{return!1}}function Idt(e,t){let n=oe(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function BHn(e){return hr()===`haiku/${e}/main`}function Gfe(e){if(!Ae())return!0;let t=`haiku/${e}/main`;if(!Ft(t)||hr()===t)return!0;try{return RT(["checkout",t]),!0}catch{return!1}}function zfe(e,t){return hr()===`haiku/${e}/${t}`}function Ndt(e,t){if(oe(["git","rev-parse","--verify",e]))hr()!==e&&RT(["checkout",e]);else if(t)RT(["checkout","-b",e,t]);else try{RT(["checkout","-b",e])}catch{}return e}function EI(e,t){let n=`haiku/${e}/main`;return!Ae()||Ft(n)||jt(t?["git","branch",n,t]:["git","branch",n]),n}function Vfe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!Ae())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return Ndt(`haiku/${e}/${t}`,n)}function Wfe(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=hr();try{jt(["git","rev-parse","--verify",r]),jt(["git","rev-parse","--verify",i])}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}let o=a=>{let c=a?["-C",a]:[];try{return jt(["git",...c,"merge",r,"--no-ff","--no-edit","-m",`haiku: merge forward ${t} \u2192 ${n}`]),{conflictFiles:[]}}catch(u){let l=oe(["git",...c,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(l.length===0)throw oe(["git",...c,"merge","--abort"]),u;return{conflictFiles:l}}};try{let a=s===i?o():xh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return oe(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function ID(e,t){if(!Ae())return{success:!0,message:"no git",noop:!0};let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`,i=`haiku: merge stage ${t} into main`,s=hr();try{let o=oe(["git","rev-parse","--verify",n]),a=oe(["git","rev-parse","--verify",`origin/${n}`]);if(!o&&!a)return{success:!0,noop:!0,message:`stage branch ${n} is missing locally and on origin \u2014 presumed merged-and-deleted in pre-v4 (3.x) workflow; treating as already merged`};if(jt(["git","rev-parse","--verify",n]),jt(["git","rev-parse","--verify",r]),RD(n,r))return{success:!0,noop:!0,message:`${n} has no merge debt against ${r} (trees match or stage is already an ancestor of main) \u2014 skipping no-op merge`};let c=hr(),u=f=>{let p=f?["-C",f]:[],h=()=>oe(["git",...p,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean),m=()=>{jt(["git",...p,"merge",n,"--no-ff","--no-edit","-m",i])};try{return m(),{conflictFiles:[]}}catch(y){let g=h();if(g.length>0)return{conflictFiles:g};let E=jHn(y);if(!(/untracked working tree files would be overwritten/i.test(E)||/Please move or remove them before you merge/i.test(E)))throw oe(["git",...p,"merge","--abort"]),y;oe(["git",...p,"merge","--abort"]);let _=oe(["git",...p,"stash","push","-u","-m","haiku: pre-merge autostash (untracked clobber guard)"]);if(!/Saved working directory/i.test(_))throw y;try{m()}catch(b){let T=h();if(oe(["git",...p,"stash","pop"]),T.length>0)return{conflictFiles:T};throw oe(["git",...p,"merge","--abort"]),b}return oe(["git",...p,"stash","pop"]),{conflictFiles:h()}}},l=f=>{let p=u(f);if(p.conflictFiles.length>0)return{conflictFiles:p.conflictFiles,postMergeMigration:{migrated:!1,unitsMigrated:0}};let h={migrated:!1,unitsMigrated:0};try{h=GHn(e,f)}catch(m){zHn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){vD(n);try{RT(["checkout",r])}catch(f){let p=f instanceof Error?f.message:String(f);return{success:!1,message:`cannot switch primary worktree from '${n}' to '${r}' for stage merge: ${p}`}}d=l()}else d=xh(r,f=>l(f));return d.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:d.conflictFiles,message:`Merge ${n} \u2192 ${r} left ${d.conflictFiles.length} conflicted file(s): ${d.conflictFiles.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the stage completion.`}:d.postMergeMigration.migrated?{success:!0,message:`merged ${n} \u2192 ${r}; post-merge re-migration cleaned up v3-shape frontmatter on ${d.postMergeMigration.unitsMigrated} unit(s) brought back through the merge`}:{success:!0,message:`merged ${n} \u2192 ${r}`}}catch(o){return s&&Ft(s)&&hr()!==s&&!u_()&&oe(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function GHn(e,t){let n=t??Wr(),r=Ji(n,".haiku","intents",e);if(!eo(r))return{migrated:!1,unitsMigrated:0};if(!kK(r))return{migrated:!1,unitsMigrated:0};let i=TK({intentDir:r,repoRoot:n},"0","4.0.0");if(i.steps>0)try{let s=t?["-C",t]:[];jt(["git",...s,"add","-A"]),jt(["git",...s,"commit","-m",`haiku: post-merge v3\u2192v4 cleanup for ${e}`,"--allow-empty"])}catch{}return{migrated:i.steps>0,unitsMigrated:i.details.units_migrated}}function zHn(e,t){try{Qe("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function Kfe(e,t){let n=`haiku/${e}/main`;if(!Ae())return{branch:n,success:!0,message:"no git"};if(t.length===0)return{branch:n,success:!0,message:"no stages"};try{let r=`haiku/${e}/${t[t.length-1]}`;if(jt(["git","rev-parse","--verify",r]),!Ft(n))return{branch:Ndt(n,r),success:!0,message:`created ${n} from ${r}`};let i=a=>{try{return jt(["git","-C",a,"merge",r,"--no-ff","--no-edit","-m","haiku: consolidate discrete stages into main"]),{conflictFiles:[]}}catch(c){let u=oe(["git","-C",a,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(u.length===0)throw oe(["git","-C",a,"merge","--abort"]),c;return{conflictFiles:u}}},o=hr()===n?i(Wr()):xh(n,a=>i(a));return o.conflictFiles.length>0?{branch:n,success:!1,isConflict:!0,conflictFiles:o.conflictFiles,message:`merge conflict in ${o.conflictFiles.length} file(s) while consolidating ${r} into ${n}: ${o.conflictFiles.join(", ")}. Resolve the conflicts on '${n}' (edit files, \`git add\`, \`git commit\`), then retry.`}:{branch:n,success:!0,message:`merged ${r} into ${n}`}}catch(r){return oe(["git","merge","--abort"]),{branch:n,success:!1,message:r instanceof Error?r.message:String(r)}}}function Zfe(e,t){if(!Ae())return null;try{return jt(["git","show",`${e}:${t}`])}catch{return null}}function l_(e,t){return Ji(Wr(),".haiku","worktrees",e,t)}function pg(e,t,n){return Ji(Wr(),".haiku","worktrees",e,`fix-${t}-${n}`)}function xD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function VHn(e,t,n){let r=l_(e,n),i=n.endsWith(".md")?n:`${n}.md`;return Ji(r,".haiku","intents",e,"stages",t,"units",i)}function d_(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Ae()||Ft(n)||(Ft(r)||EI(e),kT(e),oe(["git","branch",n,r])),n}function RT(e){jt(["git",...e])}function WHn(){try{let e=Vr("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}).trim();if(!e)return!1;let t=e.startsWith("/")?e:Ji(process.cwd(),e),n=Ji(t,"locked");return eo(n)}catch{return!1}}function mr(e,t){if(!Ae())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Ft(r)&&d_(e,t);let i=t&&Ft(r)?r:n,s=hr();if(!Ft(i)){let l=ac();if(l&&Ft(l)&&s!==l){let d=Jfe(l);if(d&&d!==process.cwd())return{ok:!1,branch:s,message:`target branch '${i}' not yet created, and the fallback (repo mainline '${l}') is checked out at another worktree '${d}'. Move that checkout to a different branch or remove the worktree (\`git worktree remove --force ${d}\`), then retry.`,switched:!1,target_branch:l};try{return jt(["git","checkout",l]),{ok:!0,branch:l,message:`target branch '${i}' not yet created \u2014 fell back to repo mainline '${l}' for safe branch creation`,switched:!0}}catch(f){let p=f instanceof Error?f.message:String(f);if(p.includes("would be overwritten by checkout")||p.includes("Please commit your changes or stash them")){let m=vD(s);if(m.ok)try{return jt(["git","checkout",l]),{ok:!0,branch:l,message:`target branch '${i}' not yet created \u2014 auto-committed WIP on '${s}' (${m.committed_files.length} file(s)) and fell back to repo mainline '${l}'`,switched:!0}}catch(y){return{ok:!1,branch:s,message:`auto-committed WIP on '${s}' but retry fallback to '${l}' still failed: ${y instanceof Error?y.message:String(y)}`,switched:!1,target_branch:l}}}return{ok:!1,branch:s,message:`target branch '${i}' not yet created, and failed to fall back to mainline '${l}': ${p}`,switched:!1,target_branch:l}}}return{ok:!0,branch:i,message:`target branch '${i}' not yet created \u2014 skipping enforcement`,switched:!1}}if(s===i)return{ok:!0,branch:i,message:"already on target",switched:!1};let o=`haiku/${e}/`;if(!s.startsWith(o)&&Nf(i,"HEAD")&&!Nf("HEAD",i))return{ok:!0,branch:s,message:`target branch '${i}' has been merged into HEAD ('${s}') \u2014 no checkout needed`,switched:!1};let c=oe(["git","rev-parse","--git-dir"]);if(c){for(let l of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"])if(eo(Ji(c,l)))return{ok:!1,branch:s,message:`A git operation is in progress (${l} present). Resolve the conflicted files, then \`git add\` + \`git commit\` to finish the merge (or \`git merge --abort\` to back out) before stage-branch enforcement can realign the checkout. While ${l} is present the workflow-file guardrails are SUSPENDED \u2014 both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions \u2014 so you can resolve directly; the schema-safe internal tools still validate. Engine-owned feedback/unit YAML: the more-advanced (terminal/more-iterations/later) state wins, but KEEP feedback that exists only on this not-yet-merged stage branch.`,switched:!1,block:"merge_in_progress",target_branch:i}}if(oe(["git","status","--porcelain"])){let l=vD(s);if(!l.ok)return{ok:!1,branch:s,message:`Pre-checkout auto-commit on '${s}' failed: ${l.message}. Resolve the working tree manually before retrying.`,switched:!1,block:"dirty_tree",target_branch:i}}if(i===r&&Ft(n)){let l=oe(["git","rev-list","--count",`${r}..${n}`]);if(l&&Number.parseInt(l,10)>0&&!OK(r,n)){try{jt(["git","checkout",r])}catch(d){let f=d instanceof Error?d.message:String(d);if(f.includes("would be overwritten by checkout")||f.includes("Please commit your changes or stash them")){let h=vD(s);if(h.ok)try{jt(["git","checkout",r])}catch(m){return{ok:!1,branch:hr()||s,message:`auto-committed WIP on '${s}' but retry checkout of '${r}' failed: ${m instanceof Error?m.message:String(m)}`,switched:!1,target_branch:r}}else return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${r}' and auto-commit failed: ${h.message}`,switched:!1,block:"dirty_tree",dirty_files:xdt(f),target_branch:r}}else return{ok:!1,branch:hr()||s,message:`failed to checkout '${r}' before merging main: ${f}`,switched:!1,target_branch:r}}try{return jt(["git","merge",n,"--no-ff","--no-edit","-m",`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`]),{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0}}catch(d){let f=d instanceof Error?d.message:String(d),h=(oe(["git","status","--porcelain"])||"").split(` +`)}function qdt(e,t,n){let r=e.replace(/\{intent-slug\}/g,n),i=`.haiku/intents/${n}/`;return r.startsWith(i)?Yt(t,r.slice(i.length)):r.startsWith("/")?r:Yt(process.cwd(),r)}function VHn(){let e=new Map,t=nn(),n=Cu();for(let r of[...n].reverse()){if(!Ss(r))continue;let i=t&&r.startsWith(t)?"plugin":"project";for(let s of Nh(r,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Yt(r,s.name),a=Yt(o,"STUDIO.md");if(!Ss(a))continue;let{data:c,body:u}=re(Nu(a,"utf8")),l=c.name||s.name,d=c.slug||l,f=Array.isArray(c.aliases)?c.aliases:[];e.set(s.name,{dir:s.name,name:l,slug:d,aliases:f,description:c.description||"",category:c.category||"general",stages:Array.isArray(c.stages)?c.stages:[],data:c,body:u,source:i,path:o,studioFile:a})}}return Array.from(e.values())}function _I(){let e=Cu().join("|"),t=Date.now();if(ID&&ID.key===e&&ID.expiresAt>t)return ID.value;let n=VHn();return ID={key:e,expiresAt:t+zHn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=_I();for(let r of n)if(r.dir.toLowerCase()===t||r.name.toLowerCase()===t||r.slug.toLowerCase()===t||r.aliases.some(i=>i.toLowerCase()===t))return r;return null}function Ufe(e,t,n){rr(e,"studio"),rr(t,"stage");for(let r of Cu()){let i=Yt(r,e,"stages",t,"phases",`${n.toUpperCase()}.md`);if(Ss(i))return re(Nu(i,"utf8"))}return null}function Zdt(e){rr(e,"studio");let t={},n=Cu();for(let r of[...n].reverse()){let i=Yt(r,e,"reflections");if(Ss(i))for(let s of Nh(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Nu(Yt(i,s),"utf8")}return t}var Cu,zHn,ID,Kn=v(()=>{"use strict";Nfe();Ci();dE();ze();Cu=Fdt;zHn=2e3,ID=null});import{spawnSync as WHn}from"node:child_process";import{readFileSync as KHn}from"node:fs";import{homedir as YHn}from"node:os";import{join as Ffe}from"node:path";function Pd(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function Jdt(e){let t={};if(!e)return t;for(let n of e.split(",")){let r=n.trim();if(!r)continue;let i=r.indexOf("=");if(i<=0)continue;let s=r.slice(0,i).trim(),o=r.slice(i+1).trim();if(!s)continue;let a=o;try{a=decodeURIComponent(o)}catch{}t[s]=a}return t}function ZHn(){let e=Pd("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Pd("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function JHn(){let e=Pd("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return Jdt(e||Pd("OTEL_EXPORTER_OTLP_HEADERS"))}function XHn(){let e=Pd("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Pd("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function QHn(){let e=Number(Pd("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Pd("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function $Hn(){return Pd("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function eqn(e){try{let t=KHn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function tqn(){let e={},t=YHn(),n=process.cwd(),r=[t?Ffe(t,".claude","settings.json"):null,Ffe(n,".claude","settings.json"),Ffe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=eqn(i);s&&Object.assign(e,s)}return e}function nqn(){let t=tqn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function iqn(){let e=Number(Pd("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:rqn}function sqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=WHn(t,n,{encoding:"utf8",timeout:1e4});if(r.status!==0){let a=(r.stderr||"").trim();return console.error(`[haiku/telemetry] otelHeadersHelper exited ${r.status}${a?`: ${a}`:""}`),null}let i=(r.stdout||"").trim();if(!i)return console.error("[haiku/telemetry] otelHeadersHelper did not return a valid value"),null;let s;try{s=JSON.parse(i)}catch(a){return console.error(`[haiku/telemetry] otelHeadersHelper output is not valid JSON: ${a instanceof Error?a.message:String(a)}`),null}if(!s||typeof s!="object"||Array.isArray(s))return console.error("[haiku/telemetry] otelHeadersHelper must return a JSON object with string key-value pairs"),null;let o={};for(let[a,c]of Object.entries(s)){if(typeof c!="string")return console.error(`[haiku/telemetry] otelHeadersHelper returned non-string value for key "${a}": ${typeof c}`),null;o[a]=c}return o}function oqn(){let e=iqn();if(bI!==null&&Date.now()-jfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:dqn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=oqn(),a={"Content-Type":"application/json",...uqn,...o};fetch(cqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(lqn)}).catch(()=>{})}var qfe,rqn,bI,jfe,cqn,uqn,Qdt,lqn,dqn,Hfe,Bfe,$dt,fqn,pqn,Xdt,vo=v(()=>{"use strict";Ci();qfe=zo.telemetry;rqn=174e4,bI=null,jfe=0;cqn=ZHn(),uqn=JHn(),Qdt=XHn(),lqn=QHn(),dqn=aqn(),Hfe=$Hn(),Bfe=Hfe==="otlp",$dt=Qdt==="http/json";qfe&&!Bfe&&Hfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Hfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);qfe&&Bfe&&!$dt&&console.error(`[haiku/telemetry] OTLP protocol "${Qdt}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);fqn=qfe&&Bfe&&$dt,pqn=new Set(["diff_unified","excerpt","file_content","file_body","user_email","user_name","message_body","finding_body","fb_body","content","password","passwd","pwd","token","access_token","refresh_token","id_token","bearer_token","bearer","api_key","apikey","api-key","authorization","auth_header","auth","secret","client_secret","signing_secret","credential","credentials","session_id","cookie","private_key","pem"]),Xdt=new Set});import{existsSync as Du,mkdirSync as mqn,readdirSync as TI,readFileSync as tft,renameSync as gqn,rmSync as Gfe,writeFileSync as yqn}from"node:fs";import{dirname as Sqn,join as ro}from"node:path";function vqn(e){return!1}function vI(e){let t=tft(e,"utf8"),n=(0,zfe.default)(t);return{data:n.data,body:n.content}}function Vfe(e,t,n){try{t()}catch(r){let i=r instanceof Error?r.message:String(r);console.warn(`[haiku-migrate-v0-to-v4] Skipped ${n} at ${e} due to parse error: ${i}. The file is preserved as-is; fix the YAML and re-tick to migrate.`),Ke("haiku.migrator.unit_skip",{path:e,context:n,error:i.slice(0,500)})}}function Wfe(e,t,n){let r=zfe.default.stringify(n,t);yqn(e,r)}function Kfe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function rft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function wqn(e,t){let n=ro(e,"intent.md");Du(n)&&Vfe(n,()=>{let{data:r,body:i}=vI(n),s=Kfe(r,Eqn);s.plugin_version=nft,(typeof s.approvals!="object"||s.approvals===null)&&(s.approvals={}),s.started_at==null&&(s.started_at=null),s.sealed_at==null&&(s.sealed_at=null),Wfe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function kqn(e,t,n,r){let i=ro(e,"units");if(!Du(i))return;let s=TI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=ro(i,o.name);Vfe(a,()=>xqn(a,t,n,r),`unit ${o.name}`)}}function Iqn(e,t,n,r,i){let s={at:t,migrated:!0},o=e.reviews,a=[];try{a=Object.keys(bl(n,r)).sort()}catch{a=[]}let c=["spec",...a,"user"];for(let d of c)o[d]==null&&(o[d]=s,i.review_stamps_synthesized++);let u=e.approvals,l=["spec","quality_gates",...a,"user"];for(let d of l)u[d]==null&&(u[d]=s,i.approval_stamps_synthesized++)}function xqn(e,t,n,r){let{data:i,body:s}=vI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=Kfe(i,_qn);if((typeof c.iterations!="object"||!Array.isArray(c.iterations))&&(c.iterations=i.iterations??[]),Array.isArray(c.iterations))for(let u of c.iterations)u&&u.result==="rejected"&&(u.result="reject"),u&&u.result==="advanced"&&(u.result="advance");if((typeof c.reviews!="object"||c.reviews===null)&&(c.reviews={}),(typeof c.approvals!="object"||c.approvals===null)&&(c.approvals={}),delete c.discovery,o){let u=rft([a]);Iqn(c,u,n,r,t),t.units_with_synthesized_approval++}Wfe(e,c,s),t.units_migrated++}function eft(e,t,n){if(!Du(e))return;let r=TI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=ro(e,i.name);Vfe(s,()=>Pqn(s,t,n),`feedback ${i.name}`)}}function Oqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=Sqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Du(a))try{mqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of TI(a).filter(m=>m.endsWith(".md"))){let m=h.match(/^(\d+)-/);m&&c.add(Number.parseInt(m[1],10))}let u=1;for(;c.has(u);)u++;let l=e.split("/").pop()??"",d=l.match(/^\d+-(.+\.md)$/),f=d?`${String(u).padStart(2,"0")}-${d[1]}`:`${String(u).padStart(2,"0")}-${l}`,p=ro(a,f);return Du(p)?null:(gqn(e,p),p)}function Pqn(e,t,n){let{data:r,body:i}=vI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=Kfe(r,Aqn);if((typeof a.iterations!="object"||!Array.isArray(a.iterations))&&(a.iterations=r.iterations??[]),Array.isArray(a.iterations))for(let l of a.iterations)l&&l.result==="rejected"&&(l.result="reject"),l&&l.result==="advanced"&&(l.result="advance");(typeof a.targets!="object"||a.targets===null)&&(a.targets={unit:null,invalidates:[]});let c=!1;a.closed_at==null&&(Rqn.has(s)?(a.closed_at=rft([o,r.created_at]),c=!0):a.closed_at=null),Wfe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Oqn(e,r,t)&&n.feedback_relocated++}function Nqn(e){let{intentDir:t}=e,n=pc();wqn(t,n);let r="",i=ro(t,"intent.md");if(Du(i))try{let o=vI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Du(s))for(let o of TI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;kqn(a,n,r,c),eft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Du(u)&&(Gfe(u,{force:!0}),n.state_json_deleted++);for(let l of["baseline.json","drift-markers.json","baseline-content"]){let d=ro(a,l);Du(d)&&(Gfe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}eft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Du(a)&&(Gfe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function qK(e){let t=ro(e,"intent.md");if(Du(t))try{let r=vI(t).data;for(let i of bqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Du(n))return!1;for(let r of TI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=ro(n,r.name),s=ro(i,"units");if(Du(s)){let a=TI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=vI(ro(s,c)).data;for(let l of Tqn)if(l in u)return!0;if(vqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Du(o))try{let a=JSON.parse(tft(o,"utf8"));if(typeof a=="object"&&a!==null&&typeof a.status=="string"&&(a.status==="active"||a.status==="completed"||a.status==="pending"))return!0}catch{}}return!1}var zfe,nft,Eqn,_qn,bqn,Tqn,Aqn,Rqn,BK=v(()=>{"use strict";zfe=Se(Kt(),1);Kn();vo();Ph();nft="4.0.0",Eqn=new Set(["status","active_stage","phase","completed_at","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase","autopilot","intent_completion_review"]),_qn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),bqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),Tqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);Aqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),Rqn=new Set(["closed","answered","addressed","rejected"]);Pu("0",nft,Nqn)});var BD={};Rr(BD,{GIT_NETWORK_TIMEOUT_MS:()=>Aa,GIT_NONINTERACTIVE_ENV:()=>Ra,addTempWorktree:()=>KK,branchAheadOfOrigin:()=>JK,branchExists:()=>Pt,buildCompareUrl:()=>rpe,checkoutFromBranchOnIntentMain:()=>Wqn,cleanupDiscoveryWorktree:()=>Xqn,cleanupFixChainWorktree:()=>QK,cleanupIntentWorktrees:()=>HD,cleanupOrphanedStageBranches:()=>XK,cleanupUnitWorktree:()=>bpe,commitAndPushFromWorktree:()=>ZK,consolidateStageBranches:()=>dpe,createDiscoveryWorktree:()=>Spe,createFixChainWorktree:()=>_pe,createIntentBranch:()=>RI,createStageBranch:()=>upe,createUnitWorktree:()=>mpe,deleteBranch:()=>qD,deleteStageBranch:()=>yE,detectPrTool:()=>DD,discoveryBranchName:()=>kI,discoveryWorktreePath:()=>wI,ensureOnIntentMain:()=>ape,ensureOnStageBranch:()=>gr,ensureStageBranch:()=>gE,fetchOrigin:()=>OT,finalizeIntentBranches:()=>Tpe,fixChainBranchName:()=>FD,fixChainWorktreePath:()=>yg,getCurrentBranch:()=>mr,getMainlineBranch:()=>Zo,hasGitRemote:()=>epe,hasNoMergeDebt:()=>MD,isAncestor:()=>Lu,isBranchMerged:()=>Yc,isCurrentWorktreeLocked:()=>zqn,isLiveWorktree:()=>cft,isMergeInProgress:()=>hE,isOnIntentBranch:()=>Hqn,isOnStageBranch:()=>cpe,listIntentBranches:()=>WK,listOrphanDiscreteIntents:()=>Qfe,markPullRequestReady:()=>spe,mergeDiscoveryWorktree:()=>Epe,mergeFixChainWorktree:()=>jD,mergeStageBranchForward:()=>lpe,mergeStageBranchIntoMain:()=>UD,mergeUnitWorktree:()=>ype,openIntentDraftPullRequest:()=>ipe,openPullRequest:()=>AI,openStagePullRequest:()=>Fqn,prepareRevisitBranch:()=>Qqn,pushBranchToOrigin:()=>gg,pushFixChainWorktree:()=>npe,pushStageBranch:()=>LD,pushUnitWorktree:()=>tpe,readFileFromBranch:()=>fpe,reconcileIntentBranches:()=>ope,reconcileMisroutedStageMerges:()=>jqn,refsHaveIdenticalTrees:()=>zK,removeTempWorktree:()=>YK,resolveMainlineRef:()=>Xfe,syncBranchDownstream:()=>Jfe,uncommittedAgentWork:()=>ppe,unitBranchExists:()=>$fe,unitSpecInWorktree:()=>Gqn,unitWorktreePath:()=>mE,writeOnIntentMain:()=>Vqn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as Yfe,mkdirSync as CD,mkdtempSync as Cqn,readFileSync as Mqn,rmSync as Zfe}from"node:fs";import{tmpdir as Dqn}from"node:os";import{join as es}from"node:path";function Gt(e,t){return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,env:process.env}).trim()}function ae(e,t){try{return Gt(e,t)}catch{return""}}function Lqn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` +`)}function zK(e,t){let n=ae(["git","rev-parse",`${e}^{tree}`]);if(!n)return!1;let r=ae(["git","rev-parse",`${t}^{tree}`]);return r?n===r:!1}function hE(){if(!Ae())return!1;let e=ae(["git","rev-parse","--git-dir"]);if(!e)return!1;let t=e.startsWith("/")?e:es(process.cwd(),e);for(let n of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(io(es(t,n)))return!0;return!1}function MD(e,t){return!!(zK(e,t)||Lu(e,t))}function GK(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Aa,env:Ra}).trim()}catch{return""}}function mr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Pt(e){return Ae()?ae(["git","rev-parse","--verify",e])!=="":!1}function Jfe(e){if(!Ae())return{ok:!0,performed:!1,message:"non-git mode"};let t=Zo(),n=`haiku/${e}/main`,r=mr(),i=!1;if(t&&n&&Pt(n)){let s=ae(["git","rev-parse","--verify",`origin/${t}`])?`origin/${t}`:"",o=Pt(t),a=s&&o&&Lu(t,s)&&ae(["git","rev-parse","--verify",t])!==ae(["git","rev-parse","--verify",s]),c=o?a?s:t:s;if(c&&!MD(c,n)){let u=Uqn(c,n,r,`haiku: merge ${c} \u2192 ${n} (pre-cursor sync)`,e);if(!u.ok)return{ok:!1,performed:i,conflictAt:"mainline_to_intent_main",conflictFiles:u.conflictFiles,conflictBranch:n,message:u.message};u.performed&&(i=!0)}}if(n&&Pt(n)&&r&&r!==n&&r.startsWith(`haiku/${e}/`)&&!zK(r,n)){let s=oft(n,`haiku: merge ${n} \u2192 ${r} (pre-cursor sync)`,e);if(!s.ok)return{ok:!1,performed:i,conflictAt:"intent_main_to_stage",conflictFiles:s.conflictFiles,conflictBranch:r,message:s.message};s.performed&&(i=!0)}return{ok:!0,performed:i}}function Uqn(e,t,n,r,i){if(n===t)return oft(e,r,i);try{return Dh(t,o=>VK(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function VK(e,t,n,r){let i=null;try{Gt(["git",...e,"merge",t,"--no-ff","--no-commit"])}catch(a){i=a}if(!!!ae(["git",...e,"rev-parse","--quiet","--verify","MERGE_HEAD"]))return i?{ok:!1,performed:!1,conflictFiles:[],message:i instanceof Error?i.message:String(i)}:{ok:!0,performed:!1};gpe(e,"HEAD",n);let o=ae(["git",...e,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);return o.length>0?{ok:!1,performed:!1,conflictFiles:o,message:`Merge ${t} left conflicts in ${o.length} file(s): ${o.join(", ")}.`}:(Gt(["git",...e,"commit","--no-edit","-m",r]),{ok:!0,performed:!0})}function oft(e,t,n){return VK([],e,n,t)}function Zo(){if(!Ae())return"main";let e=ae(["git","symbolic-ref","--short","refs/remotes/origin/HEAD"]);if(e){let n=e.match(/^origin\/(.+)$/);if(n)return n[1]}for(let n of["main","master"])if(ae(["git","rev-parse","--verify",n])||ae(["git","rev-parse","--verify",`origin/${n}`]))return n;return ae(["git","config","--get","init.defaultBranch"])||"main"}function Xfe(){if(!Ae())return"";let e=Zo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function OT(){if(!Ae())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Aa,env:Ra}),!0}catch{return!1}}function WK(){if(!Ae())return[];let e=new Set,t=ae(["git","for-each-ref","--format=%(refname:short)","refs/heads/haiku"]);for(let r of t.split(` +`).filter(Boolean)){let i=r.match(/^haiku\/([^/]+)\/main$/);i&&e.add(i[1])}let n=ae(["git","for-each-ref","--format=%(refname:short)","refs/remotes/origin/haiku"]);for(let r of n.split(` +`).filter(Boolean)){let i=r.match(/^origin\/haiku\/([^/]+)\/main$/);i&&e.add(i[1])}return Array.from(e).sort()}function Qfe(){if(!Ae())return[];let e=new Set(WK()),t=new Map;for(let n of["refs/heads/haiku","refs/remotes/origin/haiku"]){let r=ae(["git","for-each-ref","--format=%(refname:short)",n]);for(let i of r.split(` +`).filter(Boolean)){let o=(i.startsWith("origin/")?i.slice(7):i).match(/^haiku\/([^/]+)\/(.+)$/);if(!o)continue;let[,a,c]=o;if(c==="main"||e.has(a))continue;t.has(a)||t.set(a,[]);let u=t.get(a)??[],l=`haiku/${a}/${c}`;u.includes(l)||u.push(l)}}return Array.from(t.entries()).map(([n,r])=>({slug:n,branches:r})).sort((n,r)=>n.slug.localeCompare(r.slug))}function Yc(e,t){if(!Ae())return!1;let n=[t,`origin/${t}`],r=ae(["git","rev-parse","--verify",e])||ae(["git","rev-parse","--verify",`origin/${e}`]);if(!r)return!1;for(let o of n){let a=ae(["git","rev-parse","--verify",o]);if(a)try{return Kr("git",["merge-base","--is-ancestor",r,a],{stdio:"ignore"}),!0}catch{}}let i=DD(),s=e.startsWith("origin/")?e.slice(7):e;if(i==="gh"){let o=ae(["gh","pr","list","--head",s,"--base",t,"--state","merged","--json","number","--limit","1"]);if(o&&o.trim()!=="[]")return!0}else if(i==="glab"){let o=ae(["glab","mr","list","--source-branch",s,"--target-branch",t,"--state","merged","--per-page","1"]);if(o&&/^!(\d+)\b/m.test(o))return!0}return!1}function KK(e,t="haiku-repair",n=!1){if(!Ae())throw new Error("not a git repo");let r=es("/tmp",`${t}-${Date.now()}-${Math.floor(Math.random()*1e6)}`),i=ae(["git","rev-parse","--verify",e]),s=ae(["git","rev-parse","--verify",`origin/${e}`]),o;if(n?o=s?`origin/${e}`:i?e:"":o=i?e:s?`origin/${e}`:"",!o)throw new Error(`branch '${e}' not found locally or on origin`);return Gt(["git","worktree","add","--detach",r,o]),r}function YK(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function ZK(e,t,n){if(!Ae())return{committed:!1,pushed:!1,pushError:"not a git repo"};if(ae(["git","-C",e,"add","-A"]),!ae(["git","-C",e,"status","--porcelain"]))return{committed:!1,pushed:!1};try{Kr("git",["-C",e,"commit","-m",n],{stdio:"pipe"})}catch(a){return{committed:!1,pushed:!1,pushError:a instanceof Error?a.message:String(a)}}let i=()=>{try{return Kr("git",["-C",e,"push","origin",`HEAD:refs/heads/${t}`],{stdio:"pipe",timeout:Aa,env:Ra}),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}},s=i();if(s.ok)return{committed:!0,pushed:!0};if(/non-fast-forward|fetch first|behind the remote/i.test(s.error??"")){GK(["git","-C",e,"fetch","origin",t]);try{Kr("git",["-C",e,"rebase",`origin/${t}`],{stdio:"pipe"})}catch(c){return ae(["git","-C",e,"rebase","--abort"]),{committed:!0,pushed:!1,pushError:`non-fast-forward; rebase onto origin/${t} failed: ${c instanceof Error?c.message:String(c)}`}}let a=i();return a.ok?{committed:!0,pushed:!0}:{committed:!0,pushed:!1,pushError:a.error}}return{committed:!0,pushed:!1,pushError:s.error}}function DD(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function AI(e,t,n,r,i){let s=DD();if(!s)return{ok:!1,error:"no PR tool (gh/glab) found on PATH"};let o=i?.draft===!0;try{if(s==="gh"){let d=ae(["gh","pr","list","--head",e,"--state","open","--json","url","--jq",".[0].url"]);if(d)return{ok:!0,url:d};let f=["pr","create"];return o&&f.push("--draft"),f.push("--base",t,"--head",e,"--title",n,"--body",r),{ok:!0,url:Kr("gh",f,{encoding:"utf8",timeout:Aa,env:Ra}).trim()}}let c=GK(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=GK(["glab","mr","view",d,"--output","json"]);if(f)try{let p=JSON.parse(f);if(p.web_url)return{ok:!0,url:p.web_url}}catch{}}let u=["mr","create"];return o&&u.push("--draft"),u.push("--target-branch",t,"--source-branch",e,"--title",n,"--description",r),{ok:!0,url:Kr("glab",u,{encoding:"utf8",timeout:Aa,env:Ra}).trim()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}function $fe(e,t){if(!Ae())return{local:!1,remote:!1};let n=`haiku/${e}/${t}`,r=!!ae(["git","branch","--list",n])?.trim();ae(["git","fetch","origin",n]);let i=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${n}`])?.trim();return{local:r,remote:i}}function epe(){return Ae()?!!ae(["git","remote"])?.trim():!1}function tpe(e,t){if(!Ae())return;let n=mE(e,t);if(!io(n))return;let r=`haiku/${e}/${t}`;try{ae(["git","-C",n,"add","-A"]);let i=ae(["git","-C",n,"status","--porcelain"]);i&&i.trim().length>0&&ae(["git","-C",n,"commit","-m",`haiku: checkpoint ${t}`]),Kr("git",["-C",n,"push","origin",`HEAD:refs/heads/${r}`],{stdio:"pipe",timeout:Aa,env:Ra})}catch{}}function npe(e,t,n){if(!Ae())return;let r=yg(e,t,n);if(!io(r))return;let i=FD(e,t,n);try{ae(["git","-C",r,"add","-A"]);let s=ae(["git","-C",r,"status","--porcelain"]);s&&s.trim().length>0&&ae(["git","-C",r,"commit","-m",`haiku: checkpoint fix-chain ${n}`]),Kr("git",["-C",r,"push","origin",`HEAD:refs/heads/${i}`],{stdio:"pipe",timeout:Aa,env:Ra})}catch{}}function gg(e){try{return Kr("git",["push","-u","origin",e],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{ok:!0}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}function rpe(e,t){let n="";try{n=Kr("git",["remote","get-url","origin"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{return null}if(!n)return null;let r="",i="",s=n.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(s)r=s[1],i=s[2];else try{let d=new URL(n);r=d.hostname,i=d.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let o=i.split("/").filter(Boolean);if(o.length<2)return null;let a=o[0],c=o.slice(1).join("/"),u=encodeURIComponent(e),l=encodeURIComponent(t);return r==="github.com"?`https://github.com/${a}/${c}/compare/${l}...${u}?expand=1`:r==="gitlab.com"?`https://gitlab.com/${a}/${c}/-/merge_requests/new?merge_request%5Bsource_branch%5D=${u}&merge_request%5Btarget_branch%5D=${l}`:null}function Fqn(e){let t=`haiku/${e.slug}/${e.stage}`,n=`haiku/${e.slug}/main`,r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug} \u2014 stage ${e.stage} review`,i=e.body??`Stage \`${e.stage}\` is ready for review on intent \`${e.slug}\`. + +Merging this PR signals approval to the H\xB7AI\xB7K\xB7U workflow engine.`;if(!Ae())return{branch:t,base:n,message:"This is not a git repo \u2014 stage progression is driven by per-unit signature state, not a git merge. Nothing to open."};let s=gg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=AI(t,n,r,i);if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Stage PR opened: ${c.url}`,o;o.prError=c.error}let a=rpe(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage branch \`${t}\` is pushed. The gh/glab CLI didn't create the PR (${o.prError??"no tool found"}). Click here to open the MR manually: ${a}`:`Failed to push \`${t}\` (${s.error}). After resolving the push, open the MR at: ${a}`,o):(o.message=s.ok?`Stage branch \`${t}\` is pushed but no provider-specific compare URL could be built (origin host not recognised). Open the MR manually from \`${t}\` into \`${n}\` via your provider's web UI.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built. Resolve the push, then open the MR from \`${t}\` into \`${n}\` via your provider's web UI.`,o)}function ipe(e){let t=`haiku/${e.slug}/main`,n=Zo(),r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug}`,i=e.body??`Intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the work can be watched as stages land. The engine will mark it ready when the intent completes.`;if(!Ae())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=gg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=AI(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft PR opened: ${c.url}`,o;o.prError=c.error}let a=rpe(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Intent main branch \`${t}\` is pushed. The provider CLI didn't create the draft PR (${o.prError??"no tool found"}). Click here to open one manually: ${a}`:`Failed to push \`${t}\` (${s.error}). After resolving, open the draft PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function spe(e){if(!e)return{ok:!1,error:"empty url"};let t;try{t=new URL(e)}catch{return{ok:!1,error:`not a valid URL: ${e}`}}try{if(t.hostname.includes("github"))return Kr("gh",["pr","ready",e],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{ok:!0};if(t.hostname.includes("gitlab")){let n=t.pathname.match(/\/merge_requests\/(\d+)/);return n?(Kr("glab",["mr","update",n[1],"--ready"],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{ok:!0}):{ok:!1,error:"could not parse MR iid from URL"}}return{ok:!1,error:`unrecognised provider host: ${t.hostname}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}function LD(e,t){if(!Ae())return{ok:!0,skipped:!0};if(process.env.HAIKU_NO_AUTO_PUSH==="1")return{ok:!0,skipped:!0};let n=`haiku/${e}/${t}`;return Pt(n)?ae(["git","remote","get-url","origin"])?JK(n)?gg(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function JK(e){if(!Ae()||!ae(["git","rev-parse",e]))return!1;if(!ae(["git","rev-parse",`origin/${e}`]))return!0;let r=ae(["git","rev-list","--count",`origin/${e}..${e}`]);return r?Number.parseInt(r,10)>0:!1}function jqn(e,t){if(!Ae())return[];let n=[],r=Zo(),i=`haiku/${e}/main`;if(!r||!Pt(i))return n;for(let s of t){let o=`haiku/${e}/${s}`,a={stage:s,stageBranch:o,intentMain:i,mainline:r,misrouted:!1,reconciled:!1,pushed:!1},c=ae(["git","rev-parse","--verify",o])||ae(["git","rev-parse","--verify",`origin/${o}`]);if(!c)continue;let u=ae(["git","rev-parse","--verify",i])||ae(["git","rev-parse","--verify",`origin/${i}`]);if(!u||Lu(c,u)&&ift(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Lu(c,l)||ift(c,l)<=0)continue;if(a.misrouted=!0,!Lu(u,l)){a.error=`Stage \`${o}\` was merged into \`${r}\` (the repo default) instead of \`${i}\`, but \`${i}\` has commits that aren't on \`${r}\` \u2014 fast-forward isn't safe. Resolve manually: \`git checkout ${i} && git merge ${r}\` (or \`origin/${r}\`), resolve any conflicts, then re-run /haiku:haiku-pickup.`,n.push(a);continue}let f=mr(),p="";try{if(f!==i)try{Kr("git",["checkout",i],{stdio:"pipe"}),p=f}catch(h){a.error=`Could not check out \`${i}\` to fast-forward (${h instanceof Error?h.message:String(h)}). Reconcile manually: \`git checkout ${i} && git merge --ff-only origin/${r}\`.`,n.push(a);continue}try{Kr("git",["merge","--ff-only",`origin/${r}`],{stdio:"pipe"}),a.reconciled=!0}catch{try{Kr("git",["merge","--ff-only",r],{stdio:"pipe"}),a.reconciled=!0}catch(h){a.error=`Fast-forward of \`${i}\` to \`${r}\` failed: ${h instanceof Error?h.message:String(h)}. Reconcile manually: \`git checkout ${i} && git merge origin/${r}\`, resolve any conflicts, then re-run /haiku:haiku-pickup.`}}if(a.reconciled){let h=gg(i);a.pushed=h.ok,h.ok||(a.error=`Reconciled \`${i}\` locally but push to origin failed: ${h.error}. The next agent on this branch needs to push manually.`)}}catch(h){a.error=`Misrouted-merge reconciliation threw: ${h instanceof Error?h.message:String(h)}`}finally{if(p)try{Kr("git",["checkout",p],{stdio:"pipe"})}catch{}}n.push(a)}return n}function ope(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!Ae())return t;OT();let n=`haiku/${e}/main`,r=Zo();if(!Pt(n)||!r)return t;let i=mr(),s=ae(["git","rev-parse","--verify",n]),o=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(s&&o&&s!==o)if(Lu(s,o))if(i===n)try{Kr("git",["merge","--ff-only",`origin/${r}`],{stdio:"pipe"}),t.intentMainFastForwarded=!0}catch(u){t.error=`Failed to FF ${n} from origin/${r}: ${u instanceof Error?u.message:String(u)}`}else try{Kr("git",["fetch",".",`origin/${r}:${n}`],{stdio:"pipe"}),t.intentMainFastForwarded=!0}catch(u){t.error=`Failed to FF ${n} from origin/${r} via refspec: ${u instanceof Error?u.message:String(u)}`}else Lu(o,s)||(t.error=`${n} has diverged from origin/${r} \u2014 fast-forward isn't safe. Resolve manually.`);let a=`haiku/${e}/`;if(i.startsWith(a)&&i!==n){let u=ae(["git","rev-parse","--verify",n])||s,l=ae(["git","rev-parse","--verify",i]);if(l&&u&&l!==u&&Lu(l,u))try{Kr("git",["merge","--ff-only",n],{stdio:"pipe"}),t.stageBranchFastForwarded=!0}catch(d){let f=t.error?`${t.error} +`:"";t.error=`${f}Failed to fast-forward ${i} from ${n}: ${d instanceof Error?d.message:String(d)}`}}return t}function Lu(e,t){if(!e||!t)return!1;try{return Kr("git",["merge-base","--is-ancestor",e,t],{stdio:"ignore"}),!0}catch{return!1}}function ift(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function Hqn(e){return mr()===`haiku/${e}/main`}function ape(e){if(!Ae())return!0;let t=`haiku/${e}/main`;if(!Pt(t)||mr()===t)return!0;try{return xT(["checkout",t]),!0}catch{return!1}}function cpe(e,t){return mr()===`haiku/${e}/${t}`}function aft(e,t){if(ae(["git","rev-parse","--verify",e]))mr()!==e&&xT(["checkout",e]);else if(t)xT(["checkout","-b",e,t]);else try{xT(["checkout","-b",e])}catch{}return e}function RI(e,t){let n=`haiku/${e}/main`;return!Ae()||Pt(n)||Gt(t?["git","branch",n,t]:["git","branch",n]),n}function upe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!Ae())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return aft(`haiku/${e}/${t}`,n)}function lpe(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=mr();try{Gt(["git","rev-parse","--verify",r]),Gt(["git","rev-parse","--verify",i])}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}let o=a=>{let c=a?["-C",a]:[],u=VK(c,r,e,`haiku: merge forward ${t} \u2192 ${n}`);if(u.ok)return{conflictFiles:[]};if(u.conflictFiles&&u.conflictFiles.length>0)return{conflictFiles:u.conflictFiles};throw ae(["git",...c,"merge","--abort"]),new Error(u.message||`merge ${r} \u2192 ${i} failed`)};try{let a=s===i?o():Dh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return ae(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function UD(e,t){if(!Ae())return{success:!0,message:"no git",noop:!0};let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`,i=`haiku: merge stage ${t} into main`,s=mr();try{let o=ae(["git","rev-parse","--verify",n]),a=ae(["git","rev-parse","--verify",`origin/${n}`]);if(!o&&!a)return{success:!0,noop:!0,message:`stage branch ${n} is missing locally and on origin \u2014 presumed merged-and-deleted in pre-v4 (3.x) workflow; treating as already merged`};if(Gt(["git","rev-parse","--verify",n]),Gt(["git","rev-parse","--verify",r]),MD(n,r))return{success:!0,noop:!0,message:`${n} has no merge debt against ${r} (trees match or stage is already an ancestor of main) \u2014 skipping no-op merge`};let c=mr(),u=f=>{let p=f?["-C",f]:[],h=()=>ae(["git",...p,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean),m=()=>{Gt(["git",...p,"merge",n,"--no-ff","--no-edit","-m",i])};try{return m(),{conflictFiles:[]}}catch(g){let y=h();if(y.length>0)return{conflictFiles:y};let E=Lqn(g);if(!(/untracked working tree files would be overwritten/i.test(E)||/Please move or remove them before you merge/i.test(E)))throw ae(["git",...p,"merge","--abort"]),g;ae(["git",...p,"merge","--abort"]);let _=ae(["git",...p,"stash","push","-u","-m","haiku: pre-merge autostash (untracked clobber guard)"]);if(!/Saved working directory/i.test(_))throw g;try{m()}catch(b){let T=h();if(ae(["git",...p,"stash","pop"]),T.length>0)return{conflictFiles:T};throw ae(["git",...p,"merge","--abort"]),b}return ae(["git",...p,"stash","pop"]),{conflictFiles:h()}}},l=f=>{let p=u(f);if(p.conflictFiles.length>0)return{conflictFiles:p.conflictFiles,postMergeMigration:{migrated:!1,unitsMigrated:0}};let h={migrated:!1,unitsMigrated:0};try{h=qqn(e,f)}catch(m){Bqn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){ND(n);try{xT(["checkout",r])}catch(f){let p=f instanceof Error?f.message:String(f);return{success:!1,message:`cannot switch primary worktree from '${n}' to '${r}' for stage merge: ${p}`}}d=l()}else d=Dh(r,f=>l(f));return d.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:d.conflictFiles,message:`Merge ${n} \u2192 ${r} left ${d.conflictFiles.length} conflicted file(s): ${d.conflictFiles.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the stage completion.`}:d.postMergeMigration.migrated?{success:!0,message:`merged ${n} \u2192 ${r}; post-merge re-migration cleaned up v3-shape frontmatter on ${d.postMergeMigration.unitsMigrated} unit(s) brought back through the merge`}:{success:!0,message:`merged ${n} \u2192 ${r}`}}catch(o){return s&&Pt(s)&&mr()!==s&&!hE()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function qqn(e,t){let n=t??Br(),r=es(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!qK(r))return{migrated:!1,unitsMigrated:0};let i=LK({intentDir:r,repoRoot:n},"0","4.0.0");if(i.steps>0)try{let s=t?["-C",t]:[];Gt(["git",...s,"add","-A"]),Gt(["git",...s,"commit","-m",`haiku: post-merge v3\u2192v4 cleanup for ${e}`,"--allow-empty"])}catch{}return{migrated:i.steps>0,unitsMigrated:i.details.units_migrated}}function Bqn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function dpe(e,t){let n=`haiku/${e}/main`;if(!Ae())return{branch:n,success:!0,message:"no git"};if(t.length===0)return{branch:n,success:!0,message:"no stages"};try{let r=`haiku/${e}/${t[t.length-1]}`;if(Gt(["git","rev-parse","--verify",r]),!Pt(n))return{branch:aft(n,r),success:!0,message:`created ${n} from ${r}`};let i=a=>{try{return Gt(["git","-C",a,"merge",r,"--no-ff","--no-edit","-m","haiku: consolidate discrete stages into main"]),{conflictFiles:[]}}catch(c){let u=ae(["git","-C",a,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(u.length===0)throw ae(["git","-C",a,"merge","--abort"]),c;return{conflictFiles:u}}},o=mr()===n?i(Br()):Dh(n,a=>i(a));return o.conflictFiles.length>0?{branch:n,success:!1,isConflict:!0,conflictFiles:o.conflictFiles,message:`merge conflict in ${o.conflictFiles.length} file(s) while consolidating ${r} into ${n}: ${o.conflictFiles.join(", ")}. Resolve the conflicts on '${n}' (edit files, \`git add\`, \`git commit\`), then retry.`}:{branch:n,success:!0,message:`merged ${r} into ${n}`}}catch(r){return ae(["git","merge","--abort"]),{branch:n,success:!1,message:r instanceof Error?r.message:String(r)}}}function fpe(e,t){if(!Ae())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function mE(e,t){return es(Br(),".haiku","worktrees",e,t)}function yg(e,t,n){return es(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function FD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function Gqn(e,t,n){let r=mE(e,n),i=n.endsWith(".md")?n:`${n}.md`;return es(r,".haiku","intents",e,"stages",t,"units",i)}function gE(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!Ae()||Pt(n)||(Pt(r)||RI(e),PT(e),ae(["git","branch",n,r])),n}function xT(e){Gt(["git",...e])}function zqn(){try{let e=Kr("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}).trim();if(!e)return!1;let t=e.startsWith("/")?e:es(process.cwd(),e),n=es(t,"locked");return io(n)}catch{return!1}}function gr(e,t){if(!Ae())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Pt(r)&&gE(e,t);let i=t&&Pt(r)?r:n,s=mr();if(!Pt(i)){let l=Zo();if(l&&Pt(l)&&s!==l){let d=hpe(l);if(d&&d!==process.cwd())return{ok:!1,branch:s,message:`target branch '${i}' not yet created, and the fallback (repo mainline '${l}') is checked out at another worktree '${d}'. Move that checkout to a different branch or remove the worktree (\`git worktree remove --force ${d}\`), then retry.`,switched:!1,target_branch:l};try{return Gt(["git","checkout",l]),{ok:!0,branch:l,message:`target branch '${i}' not yet created \u2014 fell back to repo mainline '${l}' for safe branch creation`,switched:!0}}catch(f){let p=f instanceof Error?f.message:String(f);if(p.includes("would be overwritten by checkout")||p.includes("Please commit your changes or stash them")){let m=ND(s);if(m.ok)try{return Gt(["git","checkout",l]),{ok:!0,branch:l,message:`target branch '${i}' not yet created \u2014 auto-committed WIP on '${s}' (${m.committed_files.length} file(s)) and fell back to repo mainline '${l}'`,switched:!0}}catch(g){return{ok:!1,branch:s,message:`auto-committed WIP on '${s}' but retry fallback to '${l}' still failed: ${g instanceof Error?g.message:String(g)}`,switched:!1,target_branch:l}}}return{ok:!1,branch:s,message:`target branch '${i}' not yet created, and failed to fall back to mainline '${l}': ${p}`,switched:!1,target_branch:l}}}return{ok:!0,branch:i,message:`target branch '${i}' not yet created \u2014 skipping enforcement`,switched:!1}}if(s===i)return{ok:!0,branch:i,message:"already on target",switched:!1};let o=`haiku/${e}/`;if(!s.startsWith(o)&&Lu(i,"HEAD")&&!Lu("HEAD",i))return{ok:!0,branch:s,message:`target branch '${i}' has been merged into HEAD ('${s}') \u2014 no checkout needed`,switched:!1};let c=ae(["git","rev-parse","--git-dir"]);if(c){for(let l of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"])if(io(es(c,l)))return{ok:!1,branch:s,message:`A git operation is in progress (${l} present). Resolve the conflicted files, then \`git add\` + \`git commit\` to finish the merge (or \`git merge --abort\` to back out) before stage-branch enforcement can realign the checkout. While ${l} is present the workflow-file guardrails are SUSPENDED \u2014 both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions \u2014 so you can resolve directly; the schema-safe internal tools still validate. Engine-owned feedback/unit YAML: the more-advanced (terminal/more-iterations/later) state wins, but KEEP feedback that exists only on this not-yet-merged stage branch.`,switched:!1,block:"merge_in_progress",target_branch:i}}if(ae(["git","status","--porcelain"])){let l=ND(s);if(!l.ok)return{ok:!1,branch:s,message:`Pre-checkout auto-commit on '${s}' failed: ${l.message}. Resolve the working tree manually before retrying.`,switched:!1,block:"dirty_tree",target_branch:i}}if(i===r&&Pt(n)){let l=ae(["git","rev-list","--count",`${r}..${n}`]);if(l&&Number.parseInt(l,10)>0&&!zK(r,n)){try{Gt(["git","checkout",r])}catch(d){let f=d instanceof Error?d.message:String(d);if(f.includes("would be overwritten by checkout")||f.includes("Please commit your changes or stash them")){let h=ND(s);if(h.ok)try{Gt(["git","checkout",r])}catch(m){return{ok:!1,branch:mr()||s,message:`auto-committed WIP on '${s}' but retry checkout of '${r}' failed: ${m instanceof Error?m.message:String(m)}`,switched:!1,target_branch:r}}else return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${r}' and auto-commit failed: ${h.message}`,switched:!1,block:"dirty_tree",dirty_files:sft(f),target_branch:r}}else return{ok:!1,branch:mr()||s,message:`failed to checkout '${r}' before merging main: ${f}`,switched:!1,target_branch:r}}try{return Gt(["git","merge",n,"--no-ff","--no-edit","-m",`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`]),{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0}}catch(d){let f=d instanceof Error?d.message:String(d),h=(ae(["git","status","--porcelain"])||"").split(` `).filter(m=>m.startsWith("UU ")||m.startsWith("AA ")||m.startsWith("DD ")||m.startsWith("AU ")||m.startsWith("UA ")||m.startsWith("DU ")||m.startsWith("UD ")).map(m=>m.slice(3).trim());return{ok:!1,branch:r,message:h.length>0?`Merge intent-main \u2192 stage '${t}' left ${h.length} conflicted file(s): ${h.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. While this merge is in progress the workflow-file guardrails are SUSPENDED (both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions), so you can resolve the conflicts directly. Prefer the schema-safe internal tools (\`haiku_feedback_write\`, \`haiku_unit_set\`, \`haiku_intent_set\`) \u2014 their schema validation still runs, so the resolved files stay valid. -Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${f}. Resolve manually on '${r}', then retry.`,switched:!1,block:h.length>0?"merge_conflict":void 0,dirty_files:h.length>0?h:void 0,target_branch:r}}}}try{return jt(["git","checkout",i]),{ok:!0,branch:i,message:`checked out ${i}`,switched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);if(d.includes("would be overwritten by checkout")||d.includes("Please commit your changes or stash them")){let p=vD(s);if(p.ok)try{return jt(["git","checkout",i]),{ok:!0,branch:i,message:`auto-committed WIP on '${s}' (${p.committed_files.length} file(s)), then checked out ${i}`,switched:!0}}catch(h){let m=h instanceof Error?h.message:String(h);return{ok:!1,branch:s,message:`auto-committed WIP on '${s}' but retry checkout still failed: ${m}`,switched:!1,target_branch:i}}return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${i}' and auto-commit failed: ${p.message}`,switched:!1,block:"dirty_tree",dirty_files:xdt(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function vD(e){try{jt(["git","add","-A"]);let n=oe(["git","diff","--cached","--name-only"]).split(` -`).filter(Boolean);return n.length===0?{ok:!1,message:"nothing to commit after git add -A (dirty-tree signal may have been spurious)"}:(jt(["git","commit","-m",`haiku: auto-commit wip on ${e} (workflow engine branch enforcement)`]),{ok:!0,committed_files:n})}catch(t){return{ok:!1,message:t instanceof Error?t.message:String(t)}}}function Yfe(){if(!Ae())return[];let e=oe(["git","status","--porcelain","--untracked-files=all"]);if(!e.trim())return[];let t=[];for(let n of e.split(` -`)){if(!n.trim())continue;let r=n.replace(/^[ MADRCU?!]{1,2} +/,""),i=r.indexOf(" -> ");i!==-1&&(r=r.slice(i+4).trim()),r.startsWith('"')&&r.endsWith('"')&&(r=r.slice(1,-1)),!(r===".haiku"||r.startsWith(".haiku/"))&&t.push(r)}return t}function xdt(e){let t=e.split(` -`),n=[],r=!1;for(let i of t){if(i.includes("would be overwritten by")||i.includes("Please commit your changes or stash them")){r=!0;continue}if(i.trim()==="Aborting"||i.trim().startsWith("error: ")){r=!1;continue}if(r){let s=i.replace(/^\t+/,"").trim();s&&!s.startsWith("error:")&&!s.startsWith("hint:")&&n.push(s)}}return n}function KHn(e,t,n,r){if(!Ae())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Ft(i))return{ok:!1,message:`${i} does not exist`};try{if(hr()===i){let o=Wr(),a=Ji(o,t),c=a.replace(/\/[^/]+$/,"");AD(c,{recursive:!0}),xfe(a,n),jt(["git","-C",o,"add",t]),oe(["git","-C",o,"diff","--cached","--name-only","--",t]).trim()&&jt(["git","-C",o,"commit","-m",r,"--",t])}else xh(i,o=>{let a=Ji(o,t),c=a.replace(/\/[^/]+$/,"");AD(c,{recursive:!0}),xfe(a,n),jt(["git","-C",o,"add",t]),oe(["git","-C",o,"status","--porcelain"]).trim()&&jt(["git","-C",o,"commit","-m",r])});return{ok:!0,message:`wrote ${t} on ${i}`}}catch(s){return{ok:!1,message:s instanceof Error?s.message:String(s)}}}function ZHn(e,t,n,r){let i={paths_copied:[]};if(!Ae())return{ok:!0,message:"no git",...i};let s=`haiku/${e}/main`;if(!Ft(s))return{ok:!1,message:`${s} does not exist`,...i};if(!Ft(t))return{ok:!0,message:`source branch ${t} does not exist \u2014 skipping`,...i};let o=oe(["git","ls-tree","-r","--name-only",t,"--",n]).split(` -`).map(c=>c.trim()).filter(Boolean);if(o.length===0)return{ok:!0,message:`no files under ${n} on ${t} \u2014 skipping`,...i};let a=c=>{jt(["git","-C",c,"checkout",t,"--",n]),jt(["git","-C",c,"add","--",n]),oe(["git","-C",c,"diff","--cached","--name-only","--",n]).trim()&&jt(["git","-C",c,"commit","-m",r,"--",n])};try{return hr()===s?a(Wr()):xh(s,u=>{a(u)}),{ok:!0,message:`copied ${o.length} file(s) from ${t} (${n})`,paths_copied:o}}catch(c){return{ok:!1,message:c instanceof Error?c.message:String(c),...i}}}function LK(e){let t={deleted_local:[],deleted_remote:[]};if(!Ae())return t;let n=`haiku/${e}/main`;if(!Ft(n))return t;let r=oe(["git","for-each-ref","--format=%(refname:short)",`refs/heads/haiku/${e}`]);for(let s of r.split(` -`).filter(Boolean))s===n||s.slice(`haiku/${e}/`.length).startsWith("unit-")||yl(s,n)&&(oe(["git","branch","-D",s]),t.deleted_local.push(s));let i=oe(["git","for-each-ref","--format=%(refname:short)",`refs/remotes/origin/haiku/${e}`]);for(let s of i.split(` -`).filter(Boolean)){let o=s.startsWith("origin/")?s.slice(7):s;o===n||o.slice(`haiku/${e}/`.length).startsWith("unit-")||yl(o,n)&&xK(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function YHn(e,t){let n=DHn(Ji(UHn(),"haiku-merge-"));try{jt(["git","worktree","add",n,e]);try{return t(n)}finally{oe(["git","worktree","remove","--force",n])}}finally{try{Ofe(n,{recursive:!0,force:!0})}catch{}}}function kT(e){if(Ae())try{let t=Ji(Wr(),".haiku","intents",e);if(!eo(t))return;let n=["action-log.jsonl merge=union","write-audit.jsonl merge=union"],i=`${[...["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution."],...n].join(` +Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${f}. Resolve manually on '${r}', then retry.`,switched:!1,block:h.length>0?"merge_conflict":void 0,dirty_files:h.length>0?h:void 0,target_branch:r}}}}try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`checked out ${i}`,switched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);if(d.includes("would be overwritten by checkout")||d.includes("Please commit your changes or stash them")){let p=ND(s);if(p.ok)try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`auto-committed WIP on '${s}' (${p.committed_files.length} file(s)), then checked out ${i}`,switched:!0}}catch(h){let m=h instanceof Error?h.message:String(h);return{ok:!1,branch:s,message:`auto-committed WIP on '${s}' but retry checkout still failed: ${m}`,switched:!1,target_branch:i}}return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${i}' and auto-commit failed: ${p.message}`,switched:!1,block:"dirty_tree",dirty_files:sft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function ND(e){try{Gt(["git","add","-A"]);let n=ae(["git","diff","--cached","--name-only"]).split(` +`).filter(Boolean);return n.length===0?{ok:!1,message:"nothing to commit after git add -A (dirty-tree signal may have been spurious)"}:(Gt(["git","commit","-m",`haiku: auto-commit wip on ${e} (workflow engine branch enforcement)`]),{ok:!0,committed_files:n})}catch(t){return{ok:!1,message:t instanceof Error?t.message:String(t)}}}function ppe(){if(!Ae())return[];let e=ae(["git","status","--porcelain","--untracked-files=all"]);if(!e.trim())return[];let t=[];for(let n of e.split(` +`)){if(!n.trim())continue;let r=n.replace(/^[ MADRCU?!]{1,2} +/,""),i=r.indexOf(" -> ");i!==-1&&(r=r.slice(i+4).trim()),r.startsWith('"')&&r.endsWith('"')&&(r=r.slice(1,-1)),!(r===".haiku"||r.startsWith(".haiku/"))&&t.push(r)}return t}function sft(e){let t=e.split(` +`),n=[],r=!1;for(let i of t){if(i.includes("would be overwritten by")||i.includes("Please commit your changes or stash them")){r=!0;continue}if(i.trim()==="Aborting"||i.trim().startsWith("error: ")){r=!1;continue}if(r){let s=i.replace(/^\t+/,"").trim();s&&!s.startsWith("error:")&&!s.startsWith("hint:")&&n.push(s)}}return n}function Vqn(e,t,n,r){if(!Ae())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Pt(i))return{ok:!1,message:`${i} does not exist`};try{if(mr()===i){let o=Br(),a=es(o,t),c=a.replace(/\/[^/]+$/,"");CD(c,{recursive:!0}),Yfe(a,n),Gt(["git","-C",o,"add",t]),ae(["git","-C",o,"diff","--cached","--name-only","--",t]).trim()&&Gt(["git","-C",o,"commit","-m",r,"--",t])}else Dh(i,o=>{let a=es(o,t),c=a.replace(/\/[^/]+$/,"");CD(c,{recursive:!0}),Yfe(a,n),Gt(["git","-C",o,"add",t]),ae(["git","-C",o,"status","--porcelain"]).trim()&&Gt(["git","-C",o,"commit","-m",r])});return{ok:!0,message:`wrote ${t} on ${i}`}}catch(s){return{ok:!1,message:s instanceof Error?s.message:String(s)}}}function Wqn(e,t,n,r){let i={paths_copied:[]};if(!Ae())return{ok:!0,message:"no git",...i};let s=`haiku/${e}/main`;if(!Pt(s))return{ok:!1,message:`${s} does not exist`,...i};if(!Pt(t))return{ok:!0,message:`source branch ${t} does not exist \u2014 skipping`,...i};let o=ae(["git","ls-tree","-r","--name-only",t,"--",n]).split(` +`).map(c=>c.trim()).filter(Boolean);if(o.length===0)return{ok:!0,message:`no files under ${n} on ${t} \u2014 skipping`,...i};let a=c=>{Gt(["git","-C",c,"checkout",t,"--",n]),Gt(["git","-C",c,"add","--",n]),ae(["git","-C",c,"diff","--cached","--name-only","--",n]).trim()&&Gt(["git","-C",c,"commit","-m",r,"--",n])};try{return mr()===s?a(Br()):Dh(s,u=>{a(u)}),{ok:!0,message:`copied ${o.length} file(s) from ${t} (${n})`,paths_copied:o}}catch(c){return{ok:!1,message:c instanceof Error?c.message:String(c),...i}}}function XK(e){let t={deleted_local:[],deleted_remote:[]};if(!Ae())return t;let n=`haiku/${e}/main`;if(!Pt(n))return t;let r=ae(["git","for-each-ref","--format=%(refname:short)",`refs/heads/haiku/${e}`]);for(let s of r.split(` +`).filter(Boolean))s===n||s.slice(`haiku/${e}/`.length).startsWith("unit-")||Yc(s,n)&&(ae(["git","branch","-D",s]),t.deleted_local.push(s));let i=ae(["git","for-each-ref","--format=%(refname:short)",`refs/remotes/origin/haiku/${e}`]);for(let s of i.split(` +`).filter(Boolean)){let o=s.startsWith("origin/")?s.slice(7):s;o===n||o.slice(`haiku/${e}/`.length).startsWith("unit-")||Yc(o,n)&&GK(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function Kqn(e,t){let n=Cqn(es(Dqn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{Zfe(n,{recursive:!0,force:!0})}catch{}}}function PT(e){if(Ae())try{let t=es(Br(),".haiku","intents",e);if(!io(t))return;let n=["action-log.jsonl merge=union","write-audit.jsonl merge=union"],i=`${[...["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution."],...n].join(` `)} -`,s=`haiku/${e}/main`,o=`.haiku/intents/${e}/.gitattributes`,a=u=>{let l=u?["-C",u]:[],d=u?Ji(u,o):Ji(Wr(),o),f="";try{eo(d)&&(f=LHn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(xfe(d,i),oe(["git",...l,"add","--",o]),oe(["git",...l,"commit","-m",`haiku: seed .gitattributes (merge=union for engine event streams) for ${e}`,"--",o]))};if(!Ft(s))return;let c=hr();if(c===s)a();else try{xh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function c_(e,t){if(!Ae()||!Ft(e)||oe(["git","branch","-D",e])!=="")return!0;let r=Jfe(e);return console.error(r?`[haiku] could not delete branch '${e}' (${t}) \u2014 held by worktree '${r}'. The branch will leak; remove the worktree (\`git worktree remove --force ${r}\`) and rerun cleanup, or delete the branch manually.`:`[haiku] could not delete branch '${e}' (${t}). The branch will leak; investigate via \`git branch -D ${e}\`.`),!1}function Jfe(e){if(!Ae()||!e)return null;let t;try{t=Vr("git",["worktree","list","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}let n=`refs/heads/${e}`,r=null;for(let i of t.split(` -`))if(i.startsWith("worktree "))r=i.slice(9).trim();else if(i.startsWith("branch ")&&r){if(i.slice(7).trim()===n)return r}else i===""&&(r=null);return null}function Pdt(e){return eo(Ji(e,".git"))}function JHn(e){try{Vr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{Ofe(e,{recursive:!0,force:!0})}catch{}}function XHn(e){let t;try{t=Vr("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return{tracked:!1,untracked:!1,unknown:!0}}if(t.trim().length===0)return null;let n=!1,r=!1;for(let i of t.split(` -`))i&&(i.startsWith("??")?r=!0:n=!0);return{tracked:n,untracked:r}}function xh(e,t){let n=Jfe(e);if(n){let r=XHn(n);if(r){let i,s;throw r.unknown?(i="an indeterminate state",s="inspect the worktree manually"):r.tracked&&r.untracked?(i="uncommitted changes and untracked files",s="commit or stash the tracked changes AND add or clean the untracked files"):r.tracked?(i="uncommitted changes",s="commit or stash them"):(i="untracked files",s="add them to a commit or `git clean` them"),new Error(`branch '${e}' is checked out at '${n}' with ${i} \u2014 ${s} so the workflow engine can merge into it`)}return t(n)}return YHn(e,t)}function Xfe(e,t,n){if(!Ae())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=d_(e,n);kT(e),MD();let i=`haiku/${e}/${t}`,s=Ji(Wr(),".haiku","worktrees",e),o=Ji(s,t);try{if(eo(o))return o;if(AD(s,{recursive:!0}),!!!oe(["git","branch","--list",i])?.trim()){oe(["git","fetch","origin",i]);let c=!!oe(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${i}`])?.trim();oe(["git","branch",i,c?`origin/${i}`:r])}return jt(["git","worktree","add",o,i]),o}catch{return null}}function QHn(e,t){let n=`.haiku/intents/${t}/`;if(!e.startsWith(n))return!1;let r=e.slice(n.length);return!!(r==="intent.md"||/^feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/units\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/(state|baseline)\.json$/.test(r))}function Qfe(e,t,n){let r=`.haiku/intents/${n}`,i=oe(["git",...e,"ls-tree","-r","--name-only",t,"--",r]).split(` -`).map(s=>s.trim()).filter(Boolean);for(let s of i)QHn(s,n)&&(oe(["git",...e,"checkout",t,"--",s]),oe(["git",...e,"add","--",s]))}function $fe(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};if(!n)return{success:!1,message:"mergeUnitWorktree requires `stage` \u2014 units always merge into the stage branch"};let r=d_(e,n),i=`haiku/${e}/${t}`,s=l_(e,t);kT(e);let o=eo(s);if(!o&&(!Ft(i)||yl(i,r)))return{success:!0,message:"no worktree"};try{o&&(oe(["git","-C",s,"add","-A"]),oe(["git","-C",s,"commit","-m",`haiku: complete ${t}`,"--allow-empty"]));let a=hr()===r,c=u=>{let l=u?["-C",u]:[],d=["git",...l,"merge",i,"--no-commit","--no-ff"],f=null;try{jt(d)}catch(m){f=m}if(!oe(["git",...l,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}Qfe(l,r,e);let h=oe(["git",...l,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(h.length>0){let m=new Error(`merge_conflict: real conflicts on agent-authored content require resolution: ${h.join(", ")}`);throw m.conflictPaths=h,m}jt(["git",...l,"commit","--no-edit","-m",`haiku: merge ${t} into ${n}`])};return a?c():xh(r,u=>c(u)),oe(["git","worktree","remove",s,"--force"]),c_(i,`unit-merge cleanup for ${t}`),oe(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(a){let c=a instanceof Error?a.message:String(a),u=a?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge ${i} \u2192 ${r} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the unit merge.`}:{success:!1,message:c}}}function bI(e,t,n){return Ji(Wr(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function TI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function epe(e,t,n){if(!Ae())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=d_(e,t);kT(e),MD();let i=TI(e,t,n),s=bI(e,t,n),o=Ji(Wr(),".haiku","worktrees",e);try{return eo(s)||(AD(o,{recursive:!0}),Ft(i)||oe(["git","branch",i,r]),jt(["git","worktree","add",s,i])),s}catch{return null}}function tpe(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};let r=d_(e,t),i=TI(e,t,n),s=bI(e,t,n);if(kT(e),!eo(s))return c_(i,`discovery cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!oe(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=oe(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(a.length>0)return{success:!1,isConflict:!0,conflictFiles:a,message:`${a.length} file(s) with unresolved conflict markers in discovery worktree ${n} \u2014 integrator work incomplete`};try{if(o)oe(["git","-C",s,"add","-A"]),jt(["git","-C",s,"commit","--no-edit","-m",`haiku: integrate ${t} into discovery ${n}`]);else{oe(["git","-C",s,"add","-A"]),oe(["git","-C",s,"commit","-m",`haiku: complete discovery ${n}`,"--allow-empty"]);try{jt(["git","-C",s,"merge",r,"--no-ff","--no-edit","-m",`haiku: sync ${t} into discovery ${n}`])}catch(l){let d=oe(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(d.length>0)return{success:!1,isConflict:!0,conflictFiles:d,message:`merge conflict in ${d.length} file(s) while pulling ${r} into discovery ${n}`};throw oe(["git","-C",s,"merge","--abort"]),l}}let c=hr()===r,u=l=>{let f=Pfe(l?["-C",l]:[],i,e,`haiku: merge discovery ${n} into ${t}`);if(!f.ok){let p=new Error(f.message??"discovery forward-merge failed");throw f.conflictFiles&&f.conflictFiles.length>0&&(p.conflictPaths=f.conflictFiles),p}};if(c){let l=`.haiku/intents/${e}`;oe(["git","add","--",l]),oe(["git","diff","--cached","--name-only","--",l])&&jt(["git","commit","-m",`haiku: snapshot engine state before merging discovery ${n} into ${t}`]),u()}else xh(r,l=>u(l));return oe(["git","worktree","remove",s,"--force"]),c_(i,`discovery merge cleanup for ${e}/${t}/${n}`),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging discovery ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function $Hn(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=TI(e,t,n),i=bI(e,t,n);return eo(i)&&oe(["git","worktree","remove",i,"--force"]),c_(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function npe(e,t,n){if(!Ae())return null;if(!t)throw new Error("createFixChainWorktree requires `scope` \u2014 stage name or 'intent'");if(!n)throw new Error("createFixChainWorktree requires `feedbackId` \u2014 the FB-NN of the chain");let r=t==="intent"?`haiku/${e}/main`:d_(e,t);kT(e),MD();let i=xD(e,t,n),s=pg(e,t,n),o=Ji(Wr(),".haiku","worktrees",e);try{if(eo(s))return s;if(AD(o,{recursive:!0}),!Ft(i)){oe(["git","fetch","origin",i]);let a=!!oe(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${i}`])?.trim();oe(["git","branch",i,a?`origin/${i}`:r])}return jt(["git","worktree","add",s,i]),s}catch{return null}}function OD(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:d_(e,t),i=xD(e,t,n),s=pg(e,t,n);if(kT(e),!eo(s)||!Pdt(s))return eo(s)&&JHn(s),c_(i,`fix-chain cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!oe(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=oe(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(a.length>0)return{success:!1,isConflict:!0,conflictFiles:a,message:`${a.length} file(s) with unresolved conflict markers in fix-chain ${n} \u2014 integrator work incomplete`};try{if(o)oe(["git","-C",s,"add","-A"]),jt(["git","-C",s,"commit","--no-edit","-m",`haiku: integrate ${t} into fix-chain ${n}`]);else{oe(["git","-C",s,"add","-A"]),oe(["git","-C",s,"commit","-m",`haiku: complete fix-chain ${n}`,"--allow-empty"]);try{jt(["git","-C",s,"merge",r,"--no-ff","--no-edit","-m",`haiku: sync ${t} into fix-chain ${n}`])}catch(l){let d=oe(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(d.length>0)return{success:!1,isConflict:!0,conflictFiles:d,message:`merge conflict in ${d.length} file(s) while pulling ${r} into fix-chain ${n}`};throw oe(["git","-C",s,"merge","--abort"]),l}}let c=hr()===r,u=l=>{let d=l?["-C",l]:[],f=null;try{jt(["git",...d,"merge",i,"--no-commit","--no-ff"])}catch(m){f=m}if(!oe(["git",...d,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}Qfe(d,r,e);let h=oe(["git",...d,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(h.length>0){let m=new Error(`merge_conflict: real conflicts on agent-authored content require resolution: ${h.join(", ")}`);throw m.conflictPaths=h,m}jt(["git",...d,"commit","--no-edit","-m",`haiku: merge fix-chain ${n} into ${t}`])};return c?u():xh(r,l=>u(l)),oe(["git","worktree","remove",s,"--force"]),c_(i,`fix-chain merge cleanup for ${e}/${t}/${n}`),oe(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging fix-chain ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function UK(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=xD(e,t,n),i=pg(e,t,n);return eo(i)&&oe(["git","worktree","remove",i,"--force"]),c_(r,`fix-chain cleanup for ${e}/${t}/${n}`),oe(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function rpe(e,t){if(!Ae())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=l_(e,t);return eo(r)&&oe(["git","worktree","remove",r,"--force"]),c_(n,`unit reset for ${e}/${t}`),oe(["git","push","origin","--delete",n]),oe(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function ND(e){let t=Ji(Wr(),".haiku","worktrees",e);try{Ofe(t,{recursive:!0,force:!0})}catch{}oe(["git","worktree","prune"])}function PD(e){return!Ae()||hr()===e||!Ft(e)?!1:oe(["git","branch","-D",e])!==""}function f_(e,t){if(!Ae()||t==="main")return!1;let n=`haiku/${e}/${t}`;return oe(["git","worktree","prune"]),PD(n)}function ipe(e,t){let n=`haiku/${e}/main`;if(!Ae())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Ft(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Ft(o)||yl(o,n))continue;let a=ID(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(hr()!==n)try{RT(["checkout",n])}catch(s){return{success:!1,merged:r,deleted:i,message:`checkout ${n} failed: ${s instanceof Error?s.message:String(s)}`}}for(let s of t){let o=`haiku/${e}/${s}`;Ft(o)&&yl(o,n)&&PD(o)&&i.push(o)}return oe(["git","worktree","prune"]),{success:!0,merged:r,deleted:i,message:`finalized ${e}: merged ${r.length}, deleted ${i.length}`}}function eqn(e,t,n){if(!Ae())return{success:!0,message:"no git"};if(n==="main")return{success:!1,message:"cannot revisit 'main'"};let r=`haiku/${e}/${n}`,i=t?`haiku/${e}/${t}`:"",s=`haiku/${e}/main`;if(!Ft(s))return{success:!0,message:`${s} does not exist \u2014 nothing to merge`};function o(){let a=oe(["git","status","--porcelain"]);return a?a.split(` -`).filter(c=>c.startsWith("UU ")||c.startsWith("AA ")||c.startsWith("DD ")||c.startsWith("AU ")||c.startsWith("UA ")||c.startsWith("DU ")||c.startsWith("UD ")).map(c=>c.slice(3).trim()):[]}try{Ft(r)||jt(["git","branch",r,s]),hr()!==r&&RT(["checkout",r]);let a=oe(["git","rev-list","--count",`${r}..${s}`]);if(a&&Number.parseInt(a,10)>0)try{jt(["git","merge",s,"--no-ff","--no-edit","-m",`haiku: merge main \u2192 ${n} (revisit prep)`])}catch(c){let u=o();return u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge main \u2192 ${n} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit \u2014 the workflow engine will detect main is already merged and continue with the ${t} merge.`}:{success:!1,message:`Merge main \u2192 ${n} failed: ${c instanceof Error?c.message:String(c)}`}}if(i&&t!==n&&Ft(i)){let c=oe(["git","rev-list","--count",`${r}..${i}`]);if(c&&Number.parseInt(c,10)>0)try{jt(["git","merge",i,"--no-ff","--no-edit","-m",`haiku: merge ${t} \u2192 ${n} (revisit carries future-stage work back)`])}catch(u){let l=o();return l.length>0?{success:!1,isConflict:!0,conflictFiles:l,message:`Merge ${t} \u2192 ${n} left ${l.length} conflicted file(s): ${l.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit. Main has already been merged cleanly and won't be remerged.`}:{success:!1,message:`Merge ${t} \u2192 ${n} failed: ${u instanceof Error?u.message:String(u)}`}}}return{success:!0,message:`prepared ${r} with main${i&&t!==n?` + ${t}`:""} merged in`}}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}}var Ta,va,Tr=v(()=>{"use strict";lg();IK();ze();Ko();Ta=3e4,va={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as Ddt from"node:fs";import*as Od from"node:path";function DD(e,t,n){let r=t.slice(0,n).split(/\n/),i=r.length,s=r[i-1].length+1;throw e+=" at line "+i+" col "+s+`: +`,s=`haiku/${e}/main`,o=`.haiku/intents/${e}/.gitattributes`,a=u=>{let l=u?["-C",u]:[],d=u?es(u,o):es(Br(),o),f="";try{io(d)&&(f=Mqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(Yfe(d,i),ae(["git",...l,"add","--",o]),ae(["git",...l,"commit","-m",`haiku: seed .gitattributes (merge=union for engine event streams) for ${e}`,"--",o]))};if(!Pt(s))return;let c=mr();if(c===s)a();else try{Dh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function pE(e,t){if(!Ae()||!Pt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=hpe(e);return console.error(r?`[haiku] could not delete branch '${e}' (${t}) \u2014 held by worktree '${r}'. The branch will leak; remove the worktree (\`git worktree remove --force ${r}\`) and rerun cleanup, or delete the branch manually.`:`[haiku] could not delete branch '${e}' (${t}). The branch will leak; investigate via \`git branch -D ${e}\`.`),!1}function hpe(e){if(!Ae()||!e)return null;let t;try{t=Kr("git",["worktree","list","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}let n=`refs/heads/${e}`,r=null;for(let i of t.split(` +`))if(i.startsWith("worktree "))r=i.slice(9).trim();else if(i.startsWith("branch ")&&r){if(i.slice(7).trim()===n)return r}else i===""&&(r=null);return null}function cft(e){return io(es(e,".git"))}function Yqn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{Zfe(e,{recursive:!0,force:!0})}catch{}}function Zqn(e){let t;try{t=Kr("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return{tracked:!1,untracked:!1,unknown:!0}}if(t.trim().length===0)return null;let n=!1,r=!1;for(let i of t.split(` +`))i&&(i.startsWith("??")?r=!0:n=!0);return{tracked:n,untracked:r}}function Dh(e,t){let n=hpe(e);if(n){let r=Zqn(n);if(r){let i,s;throw r.unknown?(i="an indeterminate state",s="inspect the worktree manually"):r.tracked&&r.untracked?(i="uncommitted changes and untracked files",s="commit or stash the tracked changes AND add or clean the untracked files"):r.tracked?(i="uncommitted changes",s="commit or stash them"):(i="untracked files",s="add them to a commit or `git clean` them"),new Error(`branch '${e}' is checked out at '${n}' with ${i} \u2014 ${s} so the workflow engine can merge into it`)}return t(n)}return Kqn(e,t)}function mpe(e,t,n){if(!Ae())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=gE(e,n);PT(e),GD();let i=`haiku/${e}/${t}`,s=es(Br(),".haiku","worktrees",e),o=es(s,t);try{if(io(o))return o;if(CD(s,{recursive:!0}),!!!ae(["git","branch","--list",i])?.trim()){ae(["git","fetch","origin",i]);let c=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${i}`])?.trim();ae(["git","branch",i,c?`origin/${i}`:r])}return Gt(["git","worktree","add",o,i]),o}catch{return null}}function Jqn(e,t){let n=`.haiku/intents/${t}/`;if(!e.startsWith(n))return!1;let r=e.slice(n.length);return!!(r==="intent.md"||/^feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/units\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/(state|baseline)\.json$/.test(r))}function gpe(e,t,n){let r=`.haiku/intents/${n}`,i=ae(["git",...e,"ls-tree","-r","--name-only",t,"--",r]).split(` +`).map(s=>s.trim()).filter(Boolean);for(let s of i)Jqn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function ype(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};if(!n)return{success:!1,message:"mergeUnitWorktree requires `stage` \u2014 units always merge into the stage branch"};let r=gE(e,n),i=`haiku/${e}/${t}`,s=mE(e,t);PT(e);let o=io(s);if(!o&&(!Pt(i)||Yc(i,r)))return{success:!0,message:"no worktree"};try{o&&(ae(["git","-C",s,"add","-A"]),ae(["git","-C",s,"commit","-m",`haiku: complete ${t}`,"--allow-empty"]));let a=mr()===r,c=u=>{let l=u?["-C",u]:[],d=["git",...l,"merge",i,"--no-commit","--no-ff"],f=null;try{Gt(d)}catch(m){f=m}if(!ae(["git",...l,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}gpe(l,r,e);let h=ae(["git",...l,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(h.length>0){let m=new Error(`merge_conflict: real conflicts on agent-authored content require resolution: ${h.join(", ")}`);throw m.conflictPaths=h,m}Gt(["git",...l,"commit","--no-edit","-m",`haiku: merge ${t} into ${n}`])};return a?c():Dh(r,u=>c(u)),ae(["git","worktree","remove",s,"--force"]),pE(i,`unit-merge cleanup for ${t}`),ae(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(a){let c=a instanceof Error?a.message:String(a),u=a?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge ${i} \u2192 ${r} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the unit merge.`}:{success:!1,message:c}}}function wI(e,t,n){return es(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function kI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function Spe(e,t,n){if(!Ae())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=gE(e,t);PT(e),GD();let i=kI(e,t,n),s=wI(e,t,n),o=es(Br(),".haiku","worktrees",e);try{return io(s)||(CD(o,{recursive:!0}),Pt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function Epe(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};let r=gE(e,t),i=kI(e,t,n),s=wI(e,t,n);if(PT(e),!io(s))return pE(i,`discovery cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!ae(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(a.length>0)return{success:!1,isConflict:!0,conflictFiles:a,message:`${a.length} file(s) with unresolved conflict markers in discovery worktree ${n} \u2014 integrator work incomplete`};try{if(o)ae(["git","-C",s,"add","-A"]),Gt(["git","-C",s,"commit","--no-edit","-m",`haiku: integrate ${t} into discovery ${n}`]);else{ae(["git","-C",s,"add","-A"]),ae(["git","-C",s,"commit","-m",`haiku: complete discovery ${n}`,"--allow-empty"]);try{Gt(["git","-C",s,"merge",r,"--no-ff","--no-edit","-m",`haiku: sync ${t} into discovery ${n}`])}catch(l){let d=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(d.length>0)return{success:!1,isConflict:!0,conflictFiles:d,message:`merge conflict in ${d.length} file(s) while pulling ${r} into discovery ${n}`};throw ae(["git","-C",s,"merge","--abort"]),l}}let c=mr()===r,u=l=>{let f=VK(l?["-C",l]:[],i,e,`haiku: merge discovery ${n} into ${t}`);if(!f.ok){let p=new Error(f.message??"discovery forward-merge failed");throw f.conflictFiles&&f.conflictFiles.length>0&&(p.conflictPaths=f.conflictFiles),p}};if(c){let l=`.haiku/intents/${e}`;ae(["git","add","--",l]),ae(["git","diff","--cached","--name-only","--",l])&&Gt(["git","commit","-m",`haiku: snapshot engine state before merging discovery ${n} into ${t}`]),u()}else Dh(r,l=>u(l));return ae(["git","worktree","remove",s,"--force"]),pE(i,`discovery merge cleanup for ${e}/${t}/${n}`),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging discovery ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function Xqn(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=kI(e,t,n),i=wI(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),pE(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function _pe(e,t,n){if(!Ae())return null;if(!t)throw new Error("createFixChainWorktree requires `scope` \u2014 stage name or 'intent'");if(!n)throw new Error("createFixChainWorktree requires `feedbackId` \u2014 the FB-NN of the chain");let r=t==="intent"?`haiku/${e}/main`:gE(e,t);PT(e),GD();let i=FD(e,t,n),s=yg(e,t,n),o=es(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(CD(o,{recursive:!0}),!Pt(i)){ae(["git","fetch","origin",i]);let a=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${i}`])?.trim();ae(["git","branch",i,a?`origin/${i}`:r])}return Gt(["git","worktree","add",s,i]),s}catch{return null}}function jD(e,t,n){if(!Ae())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:gE(e,t),i=FD(e,t,n),s=yg(e,t,n);if(PT(e),!io(s)||!cft(s))return io(s)&&Yqn(s),pE(i,`fix-chain cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!ae(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(a.length>0)return{success:!1,isConflict:!0,conflictFiles:a,message:`${a.length} file(s) with unresolved conflict markers in fix-chain ${n} \u2014 integrator work incomplete`};try{if(o)ae(["git","-C",s,"add","-A"]),Gt(["git","-C",s,"commit","--no-edit","-m",`haiku: integrate ${t} into fix-chain ${n}`]);else{ae(["git","-C",s,"add","-A"]),ae(["git","-C",s,"commit","-m",`haiku: complete fix-chain ${n}`,"--allow-empty"]);try{Gt(["git","-C",s,"merge",r,"--no-ff","--no-edit","-m",`haiku: sync ${t} into fix-chain ${n}`])}catch(l){let d=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(d.length>0)return{success:!1,isConflict:!0,conflictFiles:d,message:`merge conflict in ${d.length} file(s) while pulling ${r} into fix-chain ${n}`};throw ae(["git","-C",s,"merge","--abort"]),l}}let c=mr()===r,u=l=>{let d=l?["-C",l]:[],f=null;try{Gt(["git",...d,"merge",i,"--no-commit","--no-ff"])}catch(m){f=m}if(!ae(["git",...d,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}gpe(d,r,e);let h=ae(["git",...d,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(h.length>0){let m=new Error(`merge_conflict: real conflicts on agent-authored content require resolution: ${h.join(", ")}`);throw m.conflictPaths=h,m}Gt(["git",...d,"commit","--no-edit","-m",`haiku: merge fix-chain ${n} into ${t}`])};return c?u():Dh(r,l=>u(l)),ae(["git","worktree","remove",s,"--force"]),pE(i,`fix-chain merge cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging fix-chain ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function QK(e,t,n){if(!Ae())return{success:!0,message:"no git"};let r=FD(e,t,n),i=yg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),pE(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function bpe(e,t){if(!Ae())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=mE(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),pE(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function HD(e){let t=es(Br(),".haiku","worktrees",e);try{Zfe(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function qD(e){return!Ae()||mr()===e||!Pt(e)?!1:ae(["git","branch","-D",e])!==""}function yE(e,t){if(!Ae()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),qD(n)}function Tpe(e,t){let n=`haiku/${e}/main`;if(!Ae())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Pt(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Pt(o)||Yc(o,n))continue;let a=UD(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(mr()!==n)try{xT(["checkout",n])}catch(s){return{success:!1,merged:r,deleted:i,message:`checkout ${n} failed: ${s instanceof Error?s.message:String(s)}`}}for(let s of t){let o=`haiku/${e}/${s}`;Pt(o)&&Yc(o,n)&&qD(o)&&i.push(o)}return ae(["git","worktree","prune"]),{success:!0,merged:r,deleted:i,message:`finalized ${e}: merged ${r.length}, deleted ${i.length}`}}function Qqn(e,t,n){if(!Ae())return{success:!0,message:"no git"};if(n==="main")return{success:!1,message:"cannot revisit 'main'"};let r=`haiku/${e}/${n}`,i=t?`haiku/${e}/${t}`:"",s=`haiku/${e}/main`;if(!Pt(s))return{success:!0,message:`${s} does not exist \u2014 nothing to merge`};function o(){let a=ae(["git","status","--porcelain"]);return a?a.split(` +`).filter(c=>c.startsWith("UU ")||c.startsWith("AA ")||c.startsWith("DD ")||c.startsWith("AU ")||c.startsWith("UA ")||c.startsWith("DU ")||c.startsWith("UD ")).map(c=>c.slice(3).trim()):[]}try{Pt(r)||Gt(["git","branch",r,s]),mr()!==r&&xT(["checkout",r]);let a=ae(["git","rev-list","--count",`${r}..${s}`]);if(a&&Number.parseInt(a,10)>0)try{Gt(["git","merge",s,"--no-ff","--no-edit","-m",`haiku: merge main \u2192 ${n} (revisit prep)`])}catch(c){let u=o();return u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge main \u2192 ${n} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit \u2014 the workflow engine will detect main is already merged and continue with the ${t} merge.`}:{success:!1,message:`Merge main \u2192 ${n} failed: ${c instanceof Error?c.message:String(c)}`}}if(i&&t!==n&&Pt(i)){let c=ae(["git","rev-list","--count",`${r}..${i}`]);if(c&&Number.parseInt(c,10)>0)try{Gt(["git","merge",i,"--no-ff","--no-edit","-m",`haiku: merge ${t} \u2192 ${n} (revisit carries future-stage work back)`])}catch(u){let l=o();return l.length>0?{success:!1,isConflict:!0,conflictFiles:l,message:`Merge ${t} \u2192 ${n} left ${l.length} conflicted file(s): ${l.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit. Main has already been merged cleanly and won't be remerged.`}:{success:!1,message:`Merge ${t} \u2192 ${n} failed: ${u instanceof Error?u.message:String(u)}`}}}return{success:!0,message:`prepared ${r} with main${i&&t!==n?` + ${t}`:""} merged in`}}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}}var Aa,Ra,yr=v(()=>{"use strict";Ph();BK();ze();vo();Aa=3e4,Ra={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as dft from"node:fs";import*as Nd from"node:path";function zD(e,t,n){let r=t.slice(0,n).split(/\n/),i=r.length,s=r[i-1].length+1;throw e+=" at line "+i+" col "+s+`: `+t.split(/\n/)[i-1]+` - `+Array(s).join(" ")+"^",new Ldt(e)}function rqn(e,t,n,r){let i=t.split(` + `+Array(s).join(" ")+"^",new fft(e)}function tBn(e,t,n,r){let i=t.split(` `),s=Math.max(n-3,0),o=Math.min(i.length,n+3),a=r,c=i.slice(s,o).map((l,d)=>{let f=d+s+1;return(f===n?" >> ":" ")+f+"| "+l}).join(` -`),u=new tqn((a?a+":"+n+` +`),u=new $qn((a?a+":"+n+` `:"line "+n+` `)+c+` -`+e.message);throw u.name=e.name,u.cause=e,u}function iqn(e){let t="";try{t=Ddt.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new spe(`Could not find template: ${e}`):n}return t}function sqn(e,t){let n="",r=this.config.views;if(!r)throw new spe("Views directory is not defined");let i=t?.filepath,s=this.config.defaultExtension===void 0?".eta":this.config.defaultExtension,o=JSON.stringify({filename:i,path:e,views:this.config.views});if(e+=Od.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(aqn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Od.join(r,a)}else n=Od.join(Od.dirname(i),e)}else n=Od.join(r,e);if(oqn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new spe(`Template '${e}' is not in the views directory`)}function oqn(e,t){let n=Od.relative(e,t);return n&&!n.startsWith("..")&&!Od.isAbsolute(n)}function uqn(e,t){let n=this.config,r=t?.async?cqn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new Ldt(`Bad template syntax +`+e.message);throw u.name=e.name,u.cause=e,u}function nBn(e){let t="";try{t=dft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new vpe(`Could not find template: ${e}`):n}return t}function rBn(e,t){let n="",r=this.config.views;if(!r)throw new vpe("Views directory is not defined");let i=t?.filepath,s=this.config.defaultExtension===void 0?".eta":this.config.defaultExtension,o=JSON.stringify({filename:i,path:e,views:this.config.views});if(e+=Nd.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(sBn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Nd.join(r,a)}else n=Nd.join(Nd.dirname(i),e)}else n=Nd.join(r,e);if(iBn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new vpe(`Template '${e}' is not in the views directory`)}function iBn(e,t){let n=Nd.relative(e,t);return n&&!n.startsWith("..")&&!Nd.isAbsolute(n)}function aBn(e,t){let n=this.config,r=t?.async?oBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new fft(`Bad template syntax `+i.message+` `+Array(i.message.length+1).join("=")+` `+this.compileToString.call(this,e,t)+` -`):i}}function lqn(e,t){let n=this.config,r=t?.async,i=this.compileBody,s=this.parse.call(this,e),o=`${n.functionHeader} +`):i}}function cBn(e,t){let n=this.config,r=t?.async,i=this.compileBody,s=this.parse.call(this,e),o=`${n.functionHeader} let include = (__eta_t, __eta_d) => this.render(__eta_t, {...${n.varName}, ...(__eta_d ?? {})}, options); let includeAsync = (__eta_t, __eta_d) => this.renderAsync(__eta_t, {...${n.varName}, ...(__eta_d ?? {})}, options); @@ -587,54 +586,54 @@ if (__eta.layout) { } ${n.useWith?"}":""}${n.debug?"} catch (e) { this.RuntimeErr(e, __eta.templateStr, __eta.line, options.filepath) }":""} return __eta.res; -`;if(n.plugins)for(let a=0;a"']/.test(t)?t.replace(/[&<>"']/g,hqn):t}function qK(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function gqn(e,t){return e.slice(0,t).split(` -`).length}function yqn(e){let t=this.config,n=[],r=!1,i=0,s=t.parse,o=Object.keys(t.customTags);if(t.plugins)for(let f=0;ff&&p?f+"|"+qK(p):p?qK(p):f,""),u=new RegExp(qK(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+qK(t.tags[1])+")","g"),d;for(;d=u.exec(e);){let f=e.slice(i,d.index);i=d[0].length+d.index;let p=d[1],h=d[2]||"";a(f,p),l.lastIndex=i;let m,y=!1;for(;m=l.exec(e);)if(m[1]){let g=e.slice(i,m.index);u.lastIndex=i=l.lastIndex,r=m[2],y={t:h===s.exec?"e":h===s.raw?"r":h===s.interpolate?"i":o.includes(h)?h:"",val:g};break}else{let g=m[0];if(g==="/*"){let E=e.indexOf("*/",l.lastIndex);E===-1&&DD("unclosed comment",e,m.index),l.lastIndex=E}else g==="'"?(FK.lastIndex=m.index,FK.exec(e)?l.lastIndex=FK.lastIndex:DD("unclosed string",e,m.index)):g==='"'?(HK.lastIndex=m.index,HK.exec(e)?l.lastIndex=HK.lastIndex:DD("unclosed string",e,m.index)):g==="`"&&(jK.lastIndex=m.index,jK.exec(e)?l.lastIndex=jK.lastIndex:DD("unclosed string",e,m.index))}y?(t.debug&&(y.lineNo=gqn(e,d.index)),n.push(y)):DD("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{LD=class extends Error{constructor(e){super(e),this.name="Eta Error"}},Ldt=class extends LD{constructor(e){super(e),this.name="EtaParser Error"}},tqn=class extends LD{constructor(e){super(e),this.name="EtaRuntime Error"}},spe=class extends LD{constructor(e){super(e),this.name="EtaFileResolution Error"}},nqn=class extends LD{constructor(e){super(e),this.name="EtaNameResolution Error"}};aqn=/^\\|^\//,cqn=(async()=>{}).constructor;pqn={"&":"&","<":"<",">":">",'"':""","'":"'"};Cdt={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:mqn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},jK=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,FK=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,HK=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;Mdt=class{constructor(e){this.cache=e}define(e,t){this.cache[e]=t}get(e){return this.cache[e]}remove(e){delete this.cache[e]}reset(){this.cache={}}load(e){this.cache={...this.cache,...e}}},Eqn=class{constructor(e){e?this.config={...Cdt,...e}:this.config={...Cdt};let t=[this.config.parse.exec,this.config.parse.interpolate,this.config.parse.raw,"-","_"];for(let n of Object.keys(this.config.customTags))if(t.includes(n))throw new LD(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=rqn;compile=uqn;compileToString=lqn;compileBody=dqn;parse=yqn;render=jdt;renderAsync=Fdt;renderString=Sqn;renderStringAsync=_qn;filepathCache={};templatesSync=new Mdt({});templatesAsync=new Mdt({});resolvePath=null;readFile=null;configure(e){this.config={...this.config,...e}}withConfig(e){return{...this,config:{...this.config,...e}}}loadTemplate(e,t,n){if(typeof t=="string")(n?.async?this.templatesAsync:this.templatesSync).define(e,this.compile(t,n));else{let r=this.templatesSync;(t.constructor.name==="AsyncFunction"||n?.async)&&(r=this.templatesAsync),r.define(e,t)}}},ve=class extends Eqn{readFile=iqn;resolvePath=sqn}});import{execFileSync as bqn}from"node:child_process";import{existsSync as Tqn,mkdirSync as c5r,readdirSync as u5r,readFileSync as l5r,writeFileSync as d5r}from"node:fs";import{join as ope}from"node:path";function Ae(){if(IT!==null)return IT;try{bqn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),IT=!0}catch{IT=!1}return IT}function Hdt(){IT=null}function qdt(e){IT=e}function Bdt(e){ape=e}function we(){if(ape)return ape;let e=process.cwd();for(let t=0;t<20;t++){if(Tqn(ope(e,".haiku")))return ope(e,".haiku");let n=ope(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var vqn,IT,ape,xT=v(()=>{"use strict";uD();vqn=_e(sn(),1);$p();IT=null;ape=null});import{execFileSync as Aqn}from"node:child_process";import{mkdirSync as GK,mkdtempSync as Rqn,readdirSync as S5r,renameSync as wqn,rmSync as kqn,statSync as _5r,writeFileSync as Iqn}from"node:fs";import{homedir as xqn,tmpdir as Oqn}from"node:os";import{dirname as Gdt,join as Ou,resolve as Nqn}from"node:path";function zdt(e){e&&(BK&&BK!==e||(BK=e))}function Pqn(){return BK||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function Cqn(){try{let e=Aqn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Gdt(Nqn(e))}catch{}try{return Gdt(we())}catch{return process.cwd()}}function Mqn(){return Cqn().replace(/\//g,"-")}function Dqn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function upe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(Dqn()?(cpe||(cpe=Rqn(Ou(Oqn(),"haiku-test-projects-"))),cpe):Ou(xqn(),".haiku","projects"))}function lpe(){return Ou(upe(),Mqn())}function zK(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Ou("stages",n(t)):"intent",s=Ou(lpe(),"intents",r,"prompts",i);return GK(s,{recursive:!0}),s}function Lqn(){let e=Ou(lpe(),"sessions",Pqn());return GK(e,{recursive:!0}),e}function Vdt(e){return Ou(Lqn(),e)}function vI(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Ou(lpe(),"intents",n);return GK(r,{recursive:!0}),Ou(r,t)}function Wdt(e){let{unit:t,hat:n,bolt:r,content:i,intent:s,stage:o,omitBolt:a}=e,c=a?"":`-${r}`,u=`subagent-${t.replace(/\.md$/,"")}-${n}${c}`,l=zK(s,o),d=Ou(l,`${u}.prompt.md`);WK(d,i);let f=`Read the file at \`${d}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`;return{path:d,parentInstruction:f}}function p_(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Ou(zK(t,n),"refs",o(r));GK(a,{recursive:!0});let c=Ou(a,`${o(i).replace(/\.md$/,"")}.md`);return WK(c,s),c}function Kdt(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=zK(n,r),c=Ou(a,`${o}.prompt.md`);return WK(c,i),{path:c}}function Zdt(e){let{path:t,parentInstruction:n,agentType:r,model:i,heading:s,toolAttr:o,background:a=!1}=e,c=n??`Read the file at \`${t}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`,u=o?' tool="Agent"':"",l=i?` model="${i}"`:"",d=a?' background="true"':"",f=s??"## Subagent Dispatch (MANDATORY \u2014 relay verbatim)",p=[`> **Parent: do NOT Read \`${t}\` yourself.** That file is the subagent's prompt \u2014 it is sized for the subagent's context, not yours. Reading it pollutes your context with content the subagent already gets via its own Read call when it executes. Pass the entire \`\` block below to the Task tool verbatim and let the subagent do the work.`,""].join(` +`)}}return i}function lBn(e,t,n,r){let i,s;return Array.isArray(t.autoTrim)?(i=t.autoTrim[1],s=t.autoTrim[0]):i=s=t.autoTrim,(n||n===!1)&&(i=n),(r||r===!1)&&(s=r),!s&&!i?e:i==="slurp"&&s==="slurp"?e.trim():(i==="_"||i==="slurp"?e=e.trimStart():(i==="-"||i==="nl")&&(e=e.replace(/^(?:\r\n|\n|\r)/,"")),s==="_"||s==="slurp"?e=e.trimEnd():(s==="-"||s==="nl")&&(e=e.replace(/(?:\r\n|\n|\r)$/,"")),e)}function fBn(e){return dBn[e]}function pBn(e){let t=String(e);return/[&<>"']/.test(t)?t.replace(/[&<>"']/g,fBn):t}function n9(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function hBn(e,t){return e.slice(0,t).split(` +`).length}function mBn(e){let t=this.config,n=[],r=!1,i=0,s=t.parse,o=Object.keys(t.customTags);if(t.plugins)for(let f=0;ff&&p?f+"|"+n9(p):p?n9(p):f,""),u=new RegExp(n9(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+n9(t.tags[1])+")","g"),d;for(;d=u.exec(e);){let f=e.slice(i,d.index);i=d[0].length+d.index;let p=d[1],h=d[2]||"";a(f,p),l.lastIndex=i;let m,g=!1;for(;m=l.exec(e);)if(m[1]){let y=e.slice(i,m.index);u.lastIndex=i=l.lastIndex,r=m[2],g={t:h===s.exec?"e":h===s.raw?"r":h===s.interpolate?"i":o.includes(h)?h:"",val:y};break}else{let y=m[0];if(y==="/*"){let E=e.indexOf("*/",l.lastIndex);E===-1&&zD("unclosed comment",e,m.index),l.lastIndex=E}else y==="'"?(e9.lastIndex=m.index,e9.exec(e)?l.lastIndex=e9.lastIndex:zD("unclosed string",e,m.index)):y==='"'?(t9.lastIndex=m.index,t9.exec(e)?l.lastIndex=t9.lastIndex:zD("unclosed string",e,m.index)):y==="`"&&($K.lastIndex=m.index,$K.exec(e)?l.lastIndex=$K.lastIndex:zD("unclosed string",e,m.index))}g?(t.debug&&(g.lineNo=hBn(e,d.index)),n.push(g)):zD("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{VD=class extends Error{constructor(e){super(e),this.name="Eta Error"}},fft=class extends VD{constructor(e){super(e),this.name="EtaParser Error"}},$qn=class extends VD{constructor(e){super(e),this.name="EtaRuntime Error"}},vpe=class extends VD{constructor(e){super(e),this.name="EtaFileResolution Error"}},eBn=class extends VD{constructor(e){super(e),this.name="EtaNameResolution Error"}};sBn=/^\\|^\//,oBn=(async()=>{}).constructor;dBn={"&":"&","<":"<",">":">",'"':""","'":"'"};uft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:pBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},$K=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,e9=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,t9=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;lft=class{constructor(e){this.cache=e}define(e,t){this.cache[e]=t}get(e){return this.cache[e]}remove(e){delete this.cache[e]}reset(){this.cache={}}load(e){this.cache={...this.cache,...e}}},SBn=class{constructor(e){e?this.config={...uft,...e}:this.config={...uft};let t=[this.config.parse.exec,this.config.parse.interpolate,this.config.parse.raw,"-","_"];for(let n of Object.keys(this.config.customTags))if(t.includes(n))throw new VD(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=tBn;compile=aBn;compileToString=cBn;compileBody=uBn;parse=mBn;render=hft;renderAsync=mft;renderString=gBn;renderStringAsync=yBn;filepathCache={};templatesSync=new lft({});templatesAsync=new lft({});resolvePath=null;readFile=null;configure(e){this.config={...this.config,...e}}withConfig(e){return{...this,config:{...this.config,...e}}}loadTemplate(e,t,n){if(typeof t=="string")(n?.async?this.templatesAsync:this.templatesSync).define(e,this.compile(t,n));else{let r=this.templatesSync;(t.constructor.name==="AsyncFunction"||n?.async)&&(r=this.templatesAsync),r.define(e,t)}}},Te=class extends SBn{readFile=nBn;resolvePath=rBn}});import{execFileSync as EBn}from"node:child_process";import{existsSync as _Bn,mkdirSync as t6r,readdirSync as n6r,readFileSync as r6r,writeFileSync as i6r}from"node:fs";import{join as Ape}from"node:path";function Ae(){if(NT!==null)return NT;try{EBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),NT=!0}catch{NT=!1}return NT}function gft(){NT=null}function yft(e){NT=e}function Sft(e){Rpe=e}function ve(){if(Rpe)return Rpe;let e=process.cwd();for(let t=0;t<20;t++){if(_Bn(Ape(e,".haiku")))return Ape(e,".haiku");let n=Ape(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var bBn,NT,Rpe,SE=v(()=>{"use strict";yD();bBn=Se(Kt(),1);ih();NT=null;Rpe=null});import{execFileSync as TBn}from"node:child_process";import{mkdirSync as i9,mkdtempSync as vBn,readdirSync as d6r,renameSync as ABn,rmSync as RBn,statSync as f6r,writeFileSync as wBn}from"node:fs";import{homedir as kBn,tmpdir as IBn}from"node:os";import{dirname as Eft,join as Uu,resolve as xBn}from"node:path";function _ft(e){e&&(r9&&r9!==e||(r9=e))}function OBn(){return r9||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function PBn(){try{let e=TBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Eft(xBn(e))}catch{}try{return Eft(ve())}catch{return process.cwd()}}function NBn(){return PBn().replace(/\//g,"-")}function CBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function kpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(CBn()?(wpe||(wpe=vBn(Uu(IBn(),"haiku-test-projects-"))),wpe):Uu(kBn(),".haiku","projects"))}function Ipe(){return Uu(kpe(),NBn())}function s9(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Uu("stages",n(t)):"intent",s=Uu(Ipe(),"intents",r,"prompts",i);return i9(s,{recursive:!0}),s}function MBn(){let e=Uu(Ipe(),"sessions",OBn());return i9(e,{recursive:!0}),e}function bft(e){return Uu(MBn(),e)}function II(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Uu(Ipe(),"intents",n);return i9(r,{recursive:!0}),Uu(r,t)}function Tft(e){let{unit:t,hat:n,bolt:r,content:i,intent:s,stage:o,omitBolt:a}=e,c=a?"":`-${r}`,u=`subagent-${t.replace(/\.md$/,"")}-${n}${c}`,l=s9(s,o),d=Uu(l,`${u}.prompt.md`);a9(d,i);let f=`Read the file at \`${d}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`;return{path:d,parentInstruction:f}}function EE(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Uu(s9(t,n),"refs",o(r));i9(a,{recursive:!0});let c=Uu(a,`${o(i).replace(/\.md$/,"")}.md`);return a9(c,s),c}function vft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=s9(n,r),c=Uu(a,`${o}.prompt.md`);return a9(c,i),{path:c}}function Aft(e){let{path:t,parentInstruction:n,agentType:r,model:i,heading:s,toolAttr:o,background:a=!1}=e,c=n??`Read the file at \`${t}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`,u=o?' tool="Agent"':"",l=i?` model="${i}"`:"",d=a?' background="true"':"",f=s??"## Subagent Dispatch (MANDATORY \u2014 relay verbatim)",p=[`> **Parent: do NOT Read \`${t}\` yourself.** That file is the subagent's prompt \u2014 it is sized for the subagent's context, not yours. Reading it pollutes your context with content the subagent already gets via its own Read call when it executes. Pass the entire \`\` block below to the Task tool verbatim and let the subagent do the work.`,""].join(` `);return`${f} ${p} ${c} -`}function Uqn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Ou(zK(i,s),`${o}.next-relay.md`)}function VK(e,t){WK(Uqn(e),t)}function WK(e,t){let n=`${e}.${process.pid}.tmp`;Iqn(n,t,"utf8");try{wqn(n,e)}catch(r){try{kqn(n,{force:!0})}catch{}throw new Error(`atomicWrite: rename failed \u2014 tmp and final must share a filesystem. Original: ${r instanceof Error?r.message:String(r)}`)}}var BK,cpe,Sl=v(()=>{"use strict";xT();BK=null;cpe=null});import{existsSync as jqn,readFileSync as Fqn,statSync as dpe}from"node:fs";import{join as KK}from"node:path";import{fileURLToPath as Hqn}from"node:url";function Bqn(e,t){let n=KK(process.cwd(),".haiku","prompts",e);try{if(dpe(n).isFile())return n}catch{}let r=KK(t,e);try{if(dpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Qdt(e){let t=Hqn(e),n=t.indexOf(Jdt);if(n<0)throw new Error(`loadTemplate: import.meta.url is not under the prompts tree (${t})`);let r=t.slice(0,n),i=t.slice(n+Jdt.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:KK(r,"plugin","prompts")}}function Gqn(e){let t=dpe(e).mtimeMs,n=Xdt.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=Fqn(e,"utf8");return Xdt.set(e,{body:r,mtimeMs:t,path:e}),r}function zqn(){let e=KK(nn(),"prompts");if(jqn(e))return e;try{return Qdt(import.meta.url).pluginPromptsRoot}catch{return e}}function se(e,t="template.eta.md"){let n,r;if(e.startsWith(Ydt))n=e.slice(Ydt.length),r=zqn();else{let a=Qdt(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=qqn.get(i);if(s!==void 0)return s;let o=Bqn(i,r);return Gqn(o)}var Ydt,Jdt,Xdt,qqn,mt=v(()=>{"use strict";Oi();Ydt="@canon:",Jdt="/packages/haiku/src/orchestrator/prompts/",Xdt=new Map,qqn=new Map});import{existsSync as ZK,readFileSync as fpe}from"node:fs";import{join as UD}from"node:path";function Vqn(e){let t=e;for(let n=0;n<4;n++){let r=UD(t,"settings.yml");if(ZK(r))try{let i=fpe(r,"utf8"),{data:s}=(0,YK.default)(`--- +`}function DBn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Uu(s9(i,s),`${o}.next-relay.md`)}function o9(e,t){a9(DBn(e),t)}function a9(e,t){let n=`${e}.${process.pid}.tmp`;wBn(n,t,"utf8");try{ABn(n,e)}catch(r){try{RBn(n,{force:!0})}catch{}throw new Error(`atomicWrite: rename failed \u2014 tmp and final must share a filesystem. Original: ${r instanceof Error?r.message:String(r)}`)}}var r9,wpe,Tl=v(()=>{"use strict";SE();r9=null;wpe=null});import{existsSync as LBn,readFileSync as UBn,statSync as xpe}from"node:fs";import{join as c9}from"node:path";import{fileURLToPath as FBn}from"node:url";function HBn(e,t){let n=c9(process.cwd(),".haiku","prompts",e);try{if(xpe(n).isFile())return n}catch{}let r=c9(t,e);try{if(xpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Ift(e){let t=FBn(e),n=t.indexOf(wft);if(n<0)throw new Error(`loadTemplate: import.meta.url is not under the prompts tree (${t})`);let r=t.slice(0,n),i=t.slice(n+wft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:c9(r,"plugin","prompts")}}function qBn(e){let t=xpe(e).mtimeMs,n=kft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=UBn(e,"utf8");return kft.set(e,{body:r,mtimeMs:t,path:e}),r}function BBn(){let e=c9(nn(),"prompts");if(LBn(e))return e;try{return Ift(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(Rft))n=e.slice(Rft.length),r=BBn();else{let a=Ift(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=jBn.get(i);if(s!==void 0)return s;let o=HBn(i,r);return qBn(o)}var Rft,wft,kft,jBn,ht=v(()=>{"use strict";Ci();Rft="@canon:",wft="/packages/haiku/src/orchestrator/prompts/",kft=new Map,jBn=new Map});import{existsSync as u9,readFileSync as Ope}from"node:fs";import{join as WD}from"node:path";function GBn(e){let t=e;for(let n=0;n<4;n++){let r=WD(t,"settings.yml");if(u9(r))try{let i=Ope(r,"utf8"),{data:s}=(0,l9.default)(`--- ${i} --- -`);return s}catch{return{}}t=UD(t,"..")}try{let n=we(),r=UD(n,"settings.yml");if(ZK(r)){let i=fpe(r,"utf8"),{data:s}=(0,YK.default)(`--- +`);return s}catch{return{}}t=WD(t,"..")}try{let n=ve(),r=WD(n,"settings.yml");if(u9(r)){let i=Ope(r,"utf8"),{data:s}=(0,l9.default)(`--- ${i} --- -`);return s}}catch{}return{}}function Wqn(e){let t;try{t=we()}catch{t=process.cwd()}let n=UD(t,"providers",`${e}.md`);if(ZK(n))return n;let r=UD(nn(),"providers",`${e}.md`);return ZK(r)?r:null}function Kqn(e){try{let t=fpe(e,"utf8"),n=(0,YK.default)(t),r=n.data,i=typeof r.provider_kind=="string"?r.provider_kind:"",s=r.category==="source"||r.category==="workflow"?r.category:null;if(!i||!s)return null;let o=r.always_on===!0,c=(Array.isArray(r.splices_into)?r.splices_into:[]).filter(u=>typeof u=="string");return{kind:i,category:s,alwaysOn:o,splicesInto:c,body:n.content.trim(),path:e}}catch{return null}}function Zqn(e){return e==="git"?Ae():!0}function Yqn(e){let n=Vqn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=Wqn(s);if(!o)continue;let a=Kqn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&Zqn(s)&&i.push(a)}return i}function $dt(e,t){return Yqn(t).filter(n=>n.splicesInto.includes(e))}var YK,eft=v(()=>{"use strict";YK=_e(sn(),1);Oi();xT()});var OT,ppe,hpe=v(()=>{"use strict";OT=new Set(["runtime-verifier"]),ppe=new Set(["delivery-verifier"])});import{execFileSync as Jqn}from"node:child_process";import{mkdirSync as ift,writeFileSync as sft}from"node:fs";import{dirname as tft,join as jD,resolve as Xqn}from"node:path";function NT(e){let t=null;return()=>(t===null&&(t=se("@canon:_shared",e)),t)}function oBn(){return mpe===null&&(mpe=Qqn.renderString(se("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Pf})),mpe}function aBn(){try{let e=Jqn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return tft(Xqn(e))}catch{}try{return tft(we())}catch{return process.cwd()}}function gpe(){let e=aBn().replace(/\//g,"-");return jD(upe(),e,"shared")}function cBn(){let e=gpe();if(nft!==e){ift(e,{recursive:!0});for(let[t,n]of Object.entries(oft))try{sft(jD(e,`${t}.md`),n.content(),"utf8")}catch{}nft=e}}function ys(e){cBn();let t=oft[e],n=jD(gpe(),`${e}.md`);return[`### ${t.title} (REQUIRED reading)`,"",`**Read** \`${n}\` **before continuing this prompt.** It defines ${t.summary} These rules are universal \u2014 the workflow engine validates against them; non-compliant work blocks at \`haiku_run_next\`. The file is stable across ticks, so once you've read it this session you've got it.`].join(` -`)}function lBn(e,t){let n=uBn();ift(n,{recursive:!0});let r=jD(n,`${e}.md`),i=`${r}:${e}`;if(!rft.has(i)){try{sft(r,t,"utf8")}catch{}rft.add(i)}return r}function aft(e){let t=lBn(e.kind,e.body),n=e.description?` ${e.description}`:"";return[`### Provider: \`${e.kind}\` (${e.category}) \u2014 behavior contract`,"",`**Read** \`${t}\` **before continuing this prompt.**${n} The contract describes how to operate against the configured \`${e.kind}\` provider in this project \u2014 what to read, what to write, what to record in \`external_refs:\`, and how to degrade when the required MCP tools aren't available.`].join(` -`)}var Qqn,$qn,eBn,tBn,nBn,rBn,iBn,sBn,mpe,oft,nft,uBn,rft,Oh=v(()=>{"use strict";_t();xT();ze();Sl();mt();hpe();Qqn=new ve({autoEscape:!1,useWith:!0});$qn=NT("announcement.md"),eBn=NT("subagent-error-recovery.md"),tBn=NT("workflow-contracts-elaborate.md"),nBn=NT("workflow-contracts-execute.md"),rBn=NT("workflow-contracts-fix-loop.md"),iBn=NT("runtime-verification.md"),sBn=NT("service-dependencies.md"),mpe=null;oft={"workflow-contracts-elaborate":{content:()=>tBn(),title:"Universal workflow contracts (elaborate)",summary:"unit-file naming, the same-stage `depends_on:` DAG, executable `quality_gates:`, per-unit `model:` selection, revisit `closes:`, the elaborate-phase MCP tool surface, unit-content validation, and authoring discipline."},"workflow-contracts-execute":{content:()=>nBn(),title:"Universal workflow contracts (execute)",summary:"the per-hat advance/reject contract, bolt count limits, and the engine-owned fields (`bolt`, `hat`, `status`, `iterations`) hats must NOT mutate directly."},"workflow-contracts-review":{content:()=>oBn(),title:"Universal workflow contracts (review)",summary:"the review/approval role split, when to file feedback vs sign-off, and the iteration cap that drives gate-blocking escalation."},"workflow-contracts-fix-loop":{content:()=>rBn(),title:"Universal workflow contracts (fix-loop)",summary:"how fix hats edit feedback bodies (NOT unit specs), the per-finding bolt cap, the advance vs reject vs reject_hat distinction, and feedback-assessor's closure authority."},"workflow-contracts-announcement":{content:()=>$qn(),title:"Subagent-announce discipline",summary:"how to announce a subagent dispatch in the same response as the spawn \u2014 one sentence on WHAT is starting and HOW MANY agents, no jargon."},"subagent-error-recovery":{content:()=>eBn(),title:"Subagent error-recovery contract",summary:"how to handle subagent failures \u2014 rescue attempts before declaring blocked, the diagnostic that goes in the bolt summary, and the workflow tool surface for failure reporting."},"runtime-verification":{content:()=>iBn(),title:"Runtime-verification doctrine",summary:"that verification is runtime observation (NOT running tests/typecheck); how to find the change's surface and route to a handle (web/GUI \u2192 `haiku_view` boot + `haiku-playwright`; CLI \u2192 run the command; server \u2192 the socket; library \u2192 the public export); the `.haiku/boot.md` project boot recipe; how to drive the smallest path, probe around the change, capture evidence under `proof/`; and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>sBn(),title:"Service-dependency doctrine",summary:"when a quality gate needs a live dependency (DB, queue, cache): best-effort boot the project's declared services (`.haiku/boot.md` `service:` processes / compose / make) when the tool is live, else escalate to the user \u2014 NEVER advance or mark a gate passed on an unreachable environment, because a gate that didn't run verified nothing."}},nft="";uBn=()=>jD(gpe(),"providers"),rft=new Set});import{existsSync as FD,readdirSync as dBn,readFileSync as JK}from"node:fs";import{join as fBn}from"node:path";function AI(e){if(!(!e||!FD(e)))try{let{data:t}=re(JK(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function RI(e){return e?e==="lens"?["## Mandate interpretation: LENS","","Your mandate above is a **lens**, not a checklist.","","- **In-spirit findings count.** A finding obviously within your mandate's lens but not listed as an explicit checklist item is IN scope. The mandate names representative concerns, not the exhaustive set.","- **Out-of-mandate findings are NOT in scope, even if visible.** If your glob matched a file but the change has nothing to do with your lens, return zero findings. Inventing findings to justify dispatch is a scope violation, not thoroughness.","- **Letter and spirit are not separable.** A change that technically passes a literal check but obviously violates what the check exists to enforce IS a finding. State the spirit-violation explicitly in the body so the fix loop knows what to address."].join(` +`);return s}}catch{}return{}}function zBn(e){let t;try{t=ve()}catch{t=process.cwd()}let n=WD(t,"providers",`${e}.md`);if(u9(n))return n;let r=WD(nn(),"providers",`${e}.md`);return u9(r)?r:null}function VBn(e){try{let t=Ope(e,"utf8"),n=(0,l9.default)(t),r=n.data,i=typeof r.provider_kind=="string"?r.provider_kind:"",s=r.category==="source"||r.category==="workflow"?r.category:null;if(!i||!s)return null;let o=r.always_on===!0,c=(Array.isArray(r.splices_into)?r.splices_into:[]).filter(u=>typeof u=="string");return{kind:i,category:s,alwaysOn:o,splicesInto:c,body:n.content.trim(),path:e}}catch{return null}}function WBn(e){return e==="git"?Ae():!0}function KBn(e){let n=GBn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=zBn(s);if(!o)continue;let a=VBn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&WBn(s)&&i.push(a)}return i}function xft(e,t){return KBn(t).filter(n=>n.splicesInto.includes(e))}var l9,Oft=v(()=>{"use strict";l9=Se(Kt(),1);Ci();SE()});var CT,KD,d9=v(()=>{"use strict";CT=new Set(["runtime-verifier"]),KD=new Set(["delivery-verifier"])});import{execFileSync as YBn}from"node:child_process";import{mkdirSync as Mft,writeFileSync as Dft}from"node:fs";import{dirname as Pft,join as YD,resolve as ZBn}from"node:path";function MT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function iGn(){return Ppe===null&&(Ppe=JBn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Cf})),Ppe}function sGn(){try{let e=YBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Pft(ZBn(e))}catch{}try{return Pft(ve())}catch{return process.cwd()}}function Npe(){let e=sGn().replace(/\//g,"-");return YD(kpe(),e,"shared")}function oGn(){let e=Npe();if(Nft!==e){Mft(e,{recursive:!0});for(let[t,n]of Object.entries(Lft))try{Dft(YD(e,`${t}.md`),n.content(),"utf8")}catch{}Nft=e}}function Es(e){oGn();let t=Lft[e],n=YD(Npe(),`${e}.md`);return[`### ${t.title} (REQUIRED reading)`,"",`**Read** \`${n}\` **before continuing this prompt.** It defines ${t.summary} These rules are universal \u2014 the workflow engine validates against them; non-compliant work blocks at \`haiku_run_next\`. The file is stable across ticks, so once you've read it this session you've got it.`].join(` +`)}function cGn(e,t){let n=aGn();Mft(n,{recursive:!0});let r=YD(n,`${e}.md`),i=`${r}:${e}`;if(!Cft.has(i)){try{Dft(r,t,"utf8")}catch{}Cft.add(i)}return r}function Uft(e){let t=cGn(e.kind,e.body),n=e.description?` ${e.description}`:"";return[`### Provider: \`${e.kind}\` (${e.category}) \u2014 behavior contract`,"",`**Read** \`${t}\` **before continuing this prompt.**${n} The contract describes how to operate against the configured \`${e.kind}\` provider in this project \u2014 what to read, what to write, what to record in \`external_refs:\`, and how to degrade when the required MCP tools aren't available.`].join(` +`)}var JBn,XBn,QBn,$Bn,eGn,tGn,nGn,rGn,Ppe,Lft,Nft,aGn,Cft,Lh=v(()=>{"use strict";gt();SE();ze();Tl();ht();d9();JBn=new Te({autoEscape:!1,useWith:!0});XBn=MT("announcement.md"),QBn=MT("subagent-error-recovery.md"),$Bn=MT("workflow-contracts-elaborate.md"),eGn=MT("workflow-contracts-execute.md"),tGn=MT("workflow-contracts-fix-loop.md"),nGn=MT("runtime-verification.md"),rGn=MT("service-dependencies.md"),Ppe=null;Lft={"workflow-contracts-elaborate":{content:()=>$Bn(),title:"Universal workflow contracts (elaborate)",summary:"unit-file naming, the same-stage `depends_on:` DAG, executable `quality_gates:`, per-unit `model:` selection, revisit `closes:`, the elaborate-phase MCP tool surface, unit-content validation, and authoring discipline."},"workflow-contracts-execute":{content:()=>eGn(),title:"Universal workflow contracts (execute)",summary:"the per-hat advance/reject contract, bolt count limits, and the engine-owned fields (`bolt`, `hat`, `status`, `iterations`) hats must NOT mutate directly."},"workflow-contracts-review":{content:()=>iGn(),title:"Universal workflow contracts (review)",summary:"the review/approval role split, when to file feedback vs sign-off, and the iteration cap that drives gate-blocking escalation."},"workflow-contracts-fix-loop":{content:()=>tGn(),title:"Universal workflow contracts (fix-loop)",summary:"how fix hats edit feedback bodies (NOT unit specs), the per-finding bolt cap, the advance vs reject vs reject_hat distinction, and feedback-assessor's closure authority."},"workflow-contracts-announcement":{content:()=>XBn(),title:"Subagent-announce discipline",summary:"how to announce a subagent dispatch in the same response as the spawn \u2014 one sentence on WHAT is starting and HOW MANY agents, no jargon."},"subagent-error-recovery":{content:()=>QBn(),title:"Subagent error-recovery contract",summary:"how to handle subagent failures \u2014 rescue attempts before declaring blocked, the diagnostic that goes in the bolt summary, and the workflow tool surface for failure reporting."},"runtime-verification":{content:()=>nGn(),title:"Runtime-verification doctrine",summary:"that verification is runtime observation (NOT running tests/typecheck); how to find the change's surface and route to a handle (web/GUI \u2192 `haiku_view` boot + `haiku-playwright`; CLI \u2192 run the command; server \u2192 the socket; library \u2192 the public export); the `.haiku/boot.md` project boot recipe; how to drive the smallest path, probe around the change, capture evidence under `proof/`; and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>rGn(),title:"Service-dependency doctrine",summary:"when a quality gate needs a live dependency (DB, queue, cache): best-effort boot the project's declared services (`.haiku/boot.md` `service:` processes / compose / make) when the tool is live, else escalate to the user \u2014 NEVER advance or mark a gate passed on an unreachable environment, because a gate that didn't run verified nothing."}},Nft="";aGn=()=>YD(Npe(),"providers"),Cft=new Set});import{existsSync as ZD,readdirSync as uGn,readFileSync as f9}from"node:fs";import{join as lGn}from"node:path";function xI(e){if(!(!e||!ZD(e)))try{let{data:t}=re(f9(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function OI(e){return e?e==="lens"?["## Mandate interpretation: LENS","","Your mandate above is a **lens**, not a checklist.","","- **In-spirit findings count.** A finding obviously within your mandate's lens but not listed as an explicit checklist item is IN scope. The mandate names representative concerns, not the exhaustive set.","- **Out-of-mandate findings are NOT in scope, even if visible.** If your glob matched a file but the change has nothing to do with your lens, return zero findings. Inventing findings to justify dispatch is a scope violation, not thoroughness.","- **Letter and spirit are not separable.** A change that technically passes a literal check but obviously violates what the check exists to enforce IS a finding. State the spirit-violation explicitly in the body so the fix loop knows what to address."].join(` `):["## Mandate interpretation: STRICT","","Your mandate above is a **literal checklist**.","",'- Findings MUST be tied to a specific named item in your mandate. Do NOT extend to "in-spirit" issues \u2014 for this review, false positives carry the same weight as false negatives.',"- If you see something concerning outside the checklist, do NOT log it through this agent. Log it through a different review agent if one exists, or surface it as an out-of-scope observation in your summary.","- Cite the specific checklist item each finding maps to in the `body:` field so the fix loop can verify scope."].join(` -`):""}function ype(e){if(e.length===0)return"";let t=[];for(let{heading:n,path:r}of e){if(!n||!r)continue;let i=_l(r,n);i&&t.push(i)}return t.join(` -`)}function _l(e,t){if(!FD(e))return"";let n=JK(e,"utf8"),r;try{r=(0,cft.default)(n).content.trim()}catch{r=n}return r?`### ${t} +`):""}function Cpe(e){if(e.length===0)return"";let t=[];for(let{heading:n,path:r}of e){if(!n||!r)continue;let i=vl(r,n);i&&t.push(i)}return t.join(` +`)}function vl(e,t){if(!ZD(e))return"";let n=f9(e,"utf8"),r;try{r=(0,Fft.default)(n).content.trim()}catch{r=n}return r?`### ${t} *Source: \`${e}\`* ~~~~ ${r} ~~~~ -`:""}function kr(e){let{resolveBody:t,toolName:n,toolArgs:r,intent:i,stage:s,kind:o,name:a}=e,c=t();if(c?.trim())return`**Read** \`${p_({intent:i,stage:s,kind:o,name:a,body:c.trim()})}\``;let u=Object.entries(r).map(([l,d])=>`${l}: ${JSON.stringify(d)}`).join(", ");return`**Call** \`${n} { ${u} }\``}function lft(e,t){if(!FD(e))return"";let n=[];try{let{data:p}=re(JK(e,"utf8"));Array.isArray(p.iterations)&&(n=p.iterations)}catch{return""}let r=[];for(let p=n.length-1;p>=0;p--){let h=n[p];if(!h||!h.completed_at)continue;let m=typeof h.message=="string"&&h.message.trim()?h.message.trim():typeof h.reason=="string"&&h.reason.trim()?h.reason.trim():"";m&&r.push({hatName:typeof h.hat=="string"?h.hat:"previous hat",boltStr:t.fixLoop&&typeof h.bolt=="number"?` (bolt ${h.bolt})`:"",isReject:typeof h.result=="string"&&t.rejectResults.has(h.result),text:m})}if(r.length===0)return"";let i=r[0],s=i.isReject?["## Prior rejection \u2014 address this before advancing","",`The previous ${t.fixLoop?"fix attempt":"bolt"}'s **${i.hatName}** hat${i.boltStr} rejected the work and handed back:`,"","~~~~",i.text,"~~~~","",`Treat each item as a hard requirement: your hat is NOT done until every issue above is resolved. Reference them in your work summary and commit message so the next reviewer can verify closure. Do NOT call \`${t.rejectAdvanceTool}\` while any remain open \u2014 call \`${t.rejectHatTool}\` with what's still outstanding.`].join(` +`:""}function kr(e){let{resolveBody:t,toolName:n,toolArgs:r,intent:i,stage:s,kind:o,name:a}=e,c=t();if(c?.trim())return`**Read** \`${EE({intent:i,stage:s,kind:o,name:a,body:c.trim()})}\``;let u=Object.entries(r).map(([l,d])=>`${l}: ${JSON.stringify(d)}`).join(", ");return`**Call** \`${n} { ${u} }\``}function Hft(e,t){if(!ZD(e))return"";let n=[];try{let{data:p}=re(f9(e,"utf8"));Array.isArray(p.iterations)&&(n=p.iterations)}catch{return""}let r=[];for(let p=n.length-1;p>=0;p--){let h=n[p];if(!h||!h.completed_at)continue;let m=typeof h.message=="string"&&h.message.trim()?h.message.trim():typeof h.reason=="string"&&h.reason.trim()?h.reason.trim():"";m&&r.push({hatName:typeof h.hat=="string"?h.hat:"previous hat",boltStr:t.fixLoop&&typeof h.bolt=="number"?` (bolt ${h.bolt})`:"",isReject:typeof h.result=="string"&&t.rejectResults.has(h.result),text:m})}if(r.length===0)return"";let i=r[0],s=i.isReject?["## Prior rejection \u2014 address this before advancing","",`The previous ${t.fixLoop?"fix attempt":"bolt"}'s **${i.hatName}** hat${i.boltStr} rejected the work and handed back:`,"","~~~~",i.text,"~~~~","",`Treat each item as a hard requirement: your hat is NOT done until every issue above is resolved. Reference them in your work summary and commit message so the next reviewer can verify closure. Do NOT call \`${t.rejectAdvanceTool}\` while any remain open \u2014 call \`${t.rejectHatTool}\` with what's still outstanding.`].join(` `):[`## Handoff from \`${i.hatName}\`${i.boltStr}`,"","The prior hat completed and passed you this baton:","","~~~~",i.text,"~~~~","","Pick up where it left off \u2014 honor its decisions, resolve any open questions it flagged, and don't redo work it already landed."].join(` `),o=8,a=240,c=r.slice(1,1+o);if(c.length===0)return s;let u=c.map(p=>{let h=p.text.replace(/```[\s\S]*?```/g," ").replace(/\s+/g," ").trim(),m=h.length>a?`${h.slice(0,a)}\u2026`:h;return`- **${p.hatName}**${p.boltStr} ${p.isReject?"rejected":"handed off"}: ${m}`}),l=r.length-1-c.length,d=l>0?[`_(+${l} earlier)_`]:[],f=["### Earlier in this chain \u2014 context only, do NOT act on this","","Background from prior hats on this work item, newest first. This is reference, not your task: act on the block above, stay in your hat's lane, and do not jump ahead, re-open settled decisions, or do another hat's job.","",...u,...d].join(` `);return`${s} -${f}`}function XK(e){return lft(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function wI(e){return lft(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function kI(e,t){let n=[];try{let c=t?yo(e,t):[],u=yo(e,""),l=new Set;for(let d of[...c,...u])l.has(d.file)||(l.add(d.file),n.push(d))}catch{return""}if(n.length===0)return"";let r=50,i=n.slice(0,r),s=(c,u)=>c.length>u?`${c.slice(0,u)}\u2026`:c,o=i.map(c=>{let u=c.file.includes("/stages/")?"stage":"intent",l=c.severity?`${c.severity} \xB7 `:"",d=(c.body||"").replace(/```[\s\S]*?```/g," ").replace(/\s+/g," ").trim(),f=s(d,140),p="",h=c.closure_reply?.text?.replace(/\s+/g," ").trim();if(h)p=` \xB7 resolved: ${s(h,160)}`;else if(c.status==="rejected"){let m=(c.body||"").match(/\*\*Rejection reason:\*\*\s*([\s\S]+)$/),y=m?m[1].replace(/\s+/g," ").trim():"";p=y?` \xB7 dismissed: ${s(y,160)}`:" \xB7 dismissed"}return`- \`${c.id}\` [${l}${c.status} \xB7 ${c.origin} \xB7 ${u}] ${c.title}${f?` \u2014 ${f}`:""}${p}`}),a=n.length>r?` +${f}`}function p9(e){return Hft(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function PI(e){return Hft(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function NI(e,t){let n=[];try{let c=t?Us(e,t):[],u=Us(e,""),l=new Set;for(let d of[...c,...u])l.has(d.file)||(l.add(d.file),n.push(d))}catch{return""}if(n.length===0)return"";let r=50,i=n.slice(0,r),s=(c,u)=>c.length>u?`${c.slice(0,u)}\u2026`:c,o=i.map(c=>{let u=c.file.includes("/stages/")?"stage":"intent",l=c.severity?`${c.severity} \xB7 `:"",d=(c.body||"").replace(/```[\s\S]*?```/g," ").replace(/\s+/g," ").trim(),f=s(d,140),p="",h=c.closure_reply?.text?.replace(/\s+/g," ").trim();if(h)p=` \xB7 resolved: ${s(h,160)}`;else if(c.status==="rejected"){let m=(c.body||"").match(/\*\*Rejection reason:\*\*\s*([\s\S]+)$/),g=m?m[1].replace(/\s+/g," ").trim():"";p=g?` \xB7 dismissed: ${s(g,160)}`:" \xB7 dismissed"}return`- \`${c.id}\` [${l}${c.status} \xB7 ${c.origin} \xB7 ${u}] ${c.title}${f?` \u2014 ${f}`:""}${p}`}),a=n.length>r?` _(+${n.length-r} more on record)_`:"";return["## Existing feedback on this scope \u2014 do NOT re-raise","","These findings are already on record \u2014 open, being fixed, addressed, answered, closed, or dismissed. Read them BEFORE you file anything. If your observation is already captured here, do NOT file a duplicate: the engine is already tracking it, or a human/agent already decided it. A `resolved:` note shows what the fix-hat actually did \u2014 verify THAT delta rather than re-deriving your critique from scratch; a `dismissed:` note shows why a prior reviewer threw the finding out \u2014 respect it unless you have new evidence. Reserve new findings for genuinely new problems this list doesn't cover. If you think an existing finding was resolved wrong, say so in your closing summary instead of re-filing it.","",...o,a].join(` -`).trimEnd()}function II(e){let t=fBn(fe(e),"stages");if(!FD(t))return"";let n=[];try{for(let r of dBn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of QK(e,r.name)){let s=String(i.decision??"").trim(),o=String(i.choice??"").trim();if(!s||!o)continue;let a=i.source==="user"?"user":"agent-acknowledged",c=typeof i.rationale=="string"&&i.rationale.trim()?` \u2014 ${i.rationale.trim()}`:"";n.push(`- **${s}** \u2192 chose \`${o}\` (${a})${c}`)}}catch{return""}return n.length===0?"":["## Decisions already made \u2014 do NOT re-litigate","","These are rulings the owner (or the agent, acknowledged) has already made on this intent \u2014 including how to resolve contradictions between upstream artifacts. A finding that re-opens one of these is churn: the call stands. If an upstream doc still contradicts the ruling, that's a known divergence flagged for reconciliation, NOT a fresh finding \u2014 do not re-file it. Only raise it if you have genuinely new information the decision didn't account for, and say so explicitly.","",...n].join(` -`).trimEnd()}function Ei(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s,agentType:o,model:a,promptBody:c,heading:u,toolAttr:l,forceForeground:d,omitBolt:f}=e,{path:p,parentInstruction:h}=Wdt({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Zdt({path:p,parentInstruction:h,agentType:o,model:a,heading:u,toolAttr:l,background:d===!0?!1:Ni().subagents.backgroundSpawn})}function Nu(e){if(!Bo.modelSelection)return;let{mandatePath:t,studio:n,stage:r}=e;if(t){let s=fdt(t);if(s)return s}if(r){let s=Yi(n,r),o=dI(s?.data?.default_model);if(o)return o}let i=Id(n);return dI(i?.data?.default_model)}function dft(e,t,n,r,i){let s=Ni();return s.hooks?"":uft.renderString(pBn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function xI(e,t){if(!t)return"";let n=$dt(e,t);return n.length===0?"":["## Active providers for this phase","","The following provider behavior contracts apply to this prompt. Read each one before drafting your response.","",n.map(i=>aft({kind:i.kind,category:i.category,body:i.body})).join(` +`).trimEnd()}function CI(e){let t=lGn(pe(e),"stages");if(!ZD(t))return"";let n=[];try{for(let r of uGn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of h9(e,r.name)){let s=String(i.decision??"").trim(),o=String(i.choice??"").trim();if(!s||!o)continue;let a=i.source==="user"?"user":"agent-acknowledged",c=typeof i.rationale=="string"&&i.rationale.trim()?` \u2014 ${i.rationale.trim()}`:"";n.push(`- **${s}** \u2192 chose \`${o}\` (${a})${c}`)}}catch{return""}return n.length===0?"":["## Decisions already made \u2014 do NOT re-litigate","","These are rulings the owner (or the agent, acknowledged) has already made on this intent \u2014 including how to resolve contradictions between upstream artifacts. A finding that re-opens one of these is churn: the call stands. If an upstream doc still contradicts the ruling, that's a known divergence flagged for reconciliation, NOT a fresh finding \u2014 do not re-file it. Only raise it if you have genuinely new information the decision didn't account for, and say so explicitly.","",...n].join(` +`).trimEnd()}function Ti(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s,agentType:o,model:a,promptBody:c,heading:u,toolAttr:l,forceForeground:d,omitBolt:f}=e,{path:p,parentInstruction:h}=Tft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Aft({path:p,parentInstruction:h,agentType:o,model:a,heading:u,toolAttr:l,background:d===!0?!1:Mi().subagents.backgroundSpawn})}function Fu(e){if(!zo.modelSelection)return;let{mandatePath:t,studio:n,stage:r}=e;if(t){let s=Bdt(t);if(s)return s}if(r){let s=$i(n,r),o=yI(s?.data?.default_model);if(o)return o}let i=Od(n);return yI(i?.data?.default_model)}function qft(e,t,n,r,i){let s=Mi();return s.hooks?"":jft.renderString(dGn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function MI(e,t){if(!t)return"";let n=xft(e,t);return n.length===0?"":["## Active providers for this phase","","The following provider behavior contracts apply to this prompt. Read each one before drafting your response.","",n.map(i=>Uft({kind:i.kind,category:i.category,body:i.body})).join(` `)].join(` -`)}function OI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!FD(t))return"";try{let{data:n}=re(JK(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function NI(e,t="subagents",n={}){return`Spawn each \`\` block below in a single message (parallel \`Task\` calls). When a ${t.replace(/s$/,"")} returns, do what its final message tells you \u2014 spawn the relayed \`\` block it carries, call \`haiku_run_next\`, or just acknowledge.`}function Cf(e,t){let{slug:n,stage:r}=t,i=r?`\`${r}\``:"the active stage",o=[{signal:"conversation",line:`**Capture (or extend) the conversation.** If alignment on substance for ${i} is already reached, call \`haiku_stage_elaboration_record\` now \u2014 the cursor's next tick fires the substance verifier without re-prompting for conversation.`},{signal:"verify_conversation",line:"**Dispatch the elaborate-substance verifier** if a conversation artifact exists but is unverified. Spawning the verifier in this same tick lets the next `haiku_run_next` advance past `elaborate_review` immediately."},{signal:"discovery",line:"**Fan out missing discovery subagents** for any `discovery/*.md` templates whose `location:` artifacts aren't on disk yet. Each subagent runs in its own isolation worktree and writes one file; the cursor's next tick skips `discovery_required` for every artifact already present."},{signal:"decompose",line:"**Draft units as scope crystallizes** via `haiku_unit_write`. Units written during the elaborate loop are first-class \u2014 the decompose-coverage verifier catches missing units and drift either way, so there's no penalty for landing them early."},{signal:"verify_decompose",line:`**Dispatch the decompose-coverage verifier** if units exist for ${i} but \`decompose_verified_at\` is missing on the elaboration artifact. Stacking it onto this tick lets the next \`haiku_run_next\` advance past \`decompose_review\` immediately.`}].filter(a=>a.signal!==e);return o.length===0?"":uft.renderString(hBn,{slug:n,concurrentLines:o.map(a=>a.line)})}var cft,uft,pBn,hBn,Xi=v(()=>{"use strict";_t();cft=_e(sn(),1);Oi();yf();a_();ze();Zn();Sl();mt();eft();Oh();uft=new ve({autoEscape:!1,useWith:!0}),pBn=se("@canon:","_shared/inline-subagent-context.eta.md"),hBn=se("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function $K(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=mBn.renderString(e.template(),e.templateVars({hat:t,terminal:n,worktree:r,mandateRef:i,priorRejectBlock:s}));return Ei({unit:e.dispatchId,hat:t,bolt:a,intent:e.slug,stage:e.emitStage,agentType:"general-purpose",model:o,promptBody:c,heading:e.heading(t)})}var mBn,Spe=v(()=>{"use strict";_t();Xi();mBn=new ve({autoEscape:!1,useWith:!0})});import{existsSync as fft,readdirSync as pft,readFileSync as hft}from"node:fs";import{join as PI}from"node:path";function gBn(){return _pe===null&&(_pe=se("@canon:feedback/start_feedback_hat","subagent.eta.md")),_pe}function yBn(e){if(!Bo.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?PI(vr(t,n),"feedback"):PI(fe(t),"feedback");try{let p=fft(f)?pft(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=hft(PI(f,p[0]),"utf8");o=(0,Epe.default)(h).data.model}}catch{}}let a=n?Iu(r,n)?.[i]:RK(r)?.[i],c=n?Yi(r,n):void 0,u=Id(r),l=o_({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function CI(e){let{slug:t,studio:n,feedbackId:r,stage:i,hat:s,terminal:o}=e,a=Number.parseInt(r.replace(/^FB-/i,""),10)||0,c=i||"intent",u=null,l=()=>{if(u)return u;let f=i?PI(vr(t,i),"feedback"):PI(fe(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(fft(f)){let y=pft(f).find(g=>g.startsWith(p)&&g.endsWith(".md"));if(y){let g=PI(f,y);h=wI(g);try{let E=(0,Epe.default)(hft(g,"utf8")).data,_=(Array.isArray(E.iterations)?E.iterations:[]).reduce((b,T)=>{let A=T?.bolt;return typeof A=="number"&&A>b?A:b},0);m=_>0?_:1}catch{}}}return u={priorRejectBlock:h,bolt:m},u},d={slug:t,emitStage:i||void 0,dispatchId:`fix-${r}`,ensureWorktree:()=>npe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?pI(n,i,f,!0):gdt(n,f),toolName:"haiku_read_hat",toolArgs:i?{studio:n,stage:i,hat:f,fix:!0}:{studio:n,hat:f,fix:!0},intent:t,stage:i||void 0,kind:"mandate",name:f}),priorHandoffBlock:()=>l().priorRejectBlock,resolveModel:f=>yBn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>gBn(),templateVars:({hat:f,terminal:p,worktree:h,mandateRef:m,priorRejectBlock:y})=>({slug:t,hat:f,stage:i,feedbackId:r,fbInt:a,terminal:p,worktree:h,mandateRef:m,priorRejectBlock:y}),heading:f=>`### Subagent \u2014 \`${r}\` (stage \`${i||"(intent)"}\`, hat \`${f}\`)`};return $K(d,s,o)}var Epe,_pe,bpe=v(()=>{"use strict";Epe=_e(sn(),1);Oi();Tr();a_();ze();Zn();Spe();Xi();mt();_pe=null});function Tpe(e,t,n){let r=e.indexOf(t);if(n?.assessorToFirst&&n.assessorHat&&t===n.assessorHat)return{targetHat:e[0]??t,callingIdx:r,via:"assessor-to-first"};let i=n?.roleOf;if(n?.namedTarget){let o=e.indexOf(n.namedTarget);if(o>=0&&o=0;o--)if(i(e[o])==="build")return{targetHat:e[o],callingIdx:r,via:"nearest-build"}}return{targetHat:r>0?e[r-1]:e[0]??t,callingIdx:r,via:"step-back-one"}}var mft=v(()=>{"use strict"});var yft={};Rr(yft,{resolveIntentStages:()=>or,resolveStageFixHats:()=>PT,resolveStageHats:()=>to,resolveStageMetadata:()=>wpe,resolveStageReview:()=>Rpe,resolveStudioFilePath:()=>Mf,resolveStudioFixHats:()=>hg,resolveStudioStages:()=>So,resolveUnitHatsInStudio:()=>Ape});import{existsSync as Nh,readdirSync as SBn,readFileSync as vpe}from"node:fs";import{join as Li}from"node:path";function MI(e){if(!Nh(e))return{};let t=vpe(e,"utf8"),{data:n}=re(t);return n}function Mf(e){for(let t of ku()){let n=Li(t,e);if(Nh(n))return n}return null}function or(e,t){let n=So(t),r=Array.isArray(e.stages)?e.stages:[],i=r.length>0?new Set(r):null,s=e.skip_stages||[];return n.filter(o=>!(i&&!i.has(o)||s.includes(o)))}function So(e){let t=_i(e);if(t)return t.stages;let n=nn();for(let r of[Li(process.cwd(),".haiku","studios"),Li(n,"studios")]){let i=Li(r,e,"STUDIO.md");if(Nh(i))return MI(i).stages||[]}return[]}function to(e,t){let n=_i(e),r=n?n.dir:e,i=nn();for(let s of[Li(process.cwd(),".haiku","studios"),Li(i,"studios")]){let o=Li(s,r,"stages",t,"STAGE.md");if(Nh(o))return MI(o).hats||[]}return[]}function hg(e){let t=_i(e),n=t?t.dir:e,r=nn();for(let s of[Li(process.cwd(),".haiku","studios"),Li(r,"studios")]){let o=Li(s,n,"STUDIO.md");if(Nh(o)){let c=MI(o).fix_hats;if(Array.isArray(c)&&c.length>0)return c.filter(u=>typeof u=="string");break}}let i=[];for(let s of[Li(r,"fix-hats"),Li(process.cwd(),".haiku","fix-hats"),Li(r,"studios",n,"fix-hats"),Li(process.cwd(),".haiku","studios",n,"fix-hats")])if(Nh(s))for(let o of SBn(s).filter(a=>a.endsWith(".md"))){let a=o.replace(/\.md$/,"");i.includes(a)||i.push(a)}return i.sort()}function PT(e,t){let n=_i(e),r=n?n.dir:e,i=nn();for(let s of[Li(process.cwd(),".haiku","studios"),Li(i,"studios")]){let o=Li(s,r,"stages",t,"STAGE.md");if(Nh(o)){let c=MI(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function Ape(e,t,n,r){let i=to(e,t),s=fe(n),o=Li(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Nh(o))return i;try{let{data:a}=re(vpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function Rpe(e,t){let n=_i(e),r=n?n.dir:e,i=nn();for(let s of[Li(process.cwd(),".haiku","studios"),Li(i,"studios")]){let o=Li(s,r,"stages",t,"STAGE.md");if(Nh(o)){let c=MI(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function wpe(e,t){let n=_i(e),r=n?n.dir:e,i=nn();for(let s of[Li(process.cwd(),".haiku","studios"),Li(i,"studios")]){let o=Li(s,r,"stages",t,"STAGE.md");if(Nh(o)){let a=vpe(o,"utf8"),c=MI(o),{content:u}=(0,gft.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var gft,_o=v(()=>{"use strict";gft=_e(sn(),1);Oi();ze();Zn()});import{existsSync as Sft,readFileSync as _ft}from"node:fs";import{join as Ipe}from"node:path";function _Bn(){return kpe===null&&(kpe=se("@canon:stage/execute/start_unit_hat","subagent.eta.md")),kpe}function EBn(e){if(!Bo.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=Ipe(vr(t,r),"units",`${s}.md`);if(Sft(a))try{let d=_ft(a,"utf8");o=(0,xpe.default)(d).data.model}catch{}let c=r?Iu(n,r)?.[i]:void 0,u=r?Yi(n,r):void 0,l=Id(n);return o_({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function bBn(e){let{slug:t,stage:n,unit:r}=e,i=Ipe(vr(t,n),"units",`${r}.md`);if(!Sft(i))return[];try{let s=(0,xpe.default)(_ft(i,"utf8")).data;return(Array.isArray(s.iterations)?s.iterations:[]).filter(a=>a.result==="advance").map(a=>typeof a.hat=="string"?a.hat:"").filter(a=>a.length>0)}catch{return[]}}function DI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=Ipe(vr(t,i),"units",`${r}.md`),c=null,u=()=>c??=bBn({slug:t,stage:i,unit:r});return $K({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>Xfe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>pI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>XK(a),resolveModel:d=>EBn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>_Bn(),templateVars:({hat:d,terminal:f,worktree:p,mandateRef:h,priorRejectBlock:m})=>({slug:t,studio:n,stage:i,hat:d,unit:r,terminal:f,worktree:p,mandateRef:h,priorHatsInline:u(),priorRejectBlock:m}),heading:d=>`### Subagent \u2014 \`${r}\` (stage \`${i}\`, hat \`${d}\`)`},s,o)}var xpe,kpe,Ope=v(()=>{"use strict";xpe=_e(sn(),1);Oi();Tr();a_();ze();Zn();Spe();Xi();mt();kpe=null});function t3(e){let t=e.map(o=>({id:o.slug,status:o.frontmatter.status})),n=[],r=new Map;for(let o of e)r.set(o.slug,[]);let i=new Set(e.map(o=>o.slug)),s=[];for(let o of e){let a=o.frontmatter.depends_on??[];for(let c of a){if(!i.has(c)){s.push({unit:o.slug,dep:c});continue}n.push({from:c,to:o.slug});let u=r.get(c);u&&u.push(o.slug)}}return{nodes:t,edges:n,adjacency:r,unresolvedDeps:s.length>0?s:void 0}}function bft(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function n3(e){let t=bft(e),n=new Map;for(let i of t){let s=e.edges.filter(o=>o.to===i).map(o=>o.from);if(s.length===0)n.set(i,0);else{let o=Math.max(...s.map(a=>n.get(a)??0));n.set(i,o+1)}}let r=new Map;for(let[i,s]of n){let o=r.get(s)??[];o.push(i),r.set(s,o)}return r}function e3(e){return e.replace(/"/g,""").replace(/\[/g,"[").replace(/\]/g,"]").replace(//g,">")}function Pu(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_");return/^[a-zA-Z]/.test(t)?t:`n_${t}`}function r3(e,t){let n=["graph TD"],r=new Set(t.map(l=>l.slug)),i=[],s=new Map;for(let l of t){let d=l.frontmatter.stage||"_root";s.has(d)||(s.set(d,[]),i.push(d)),s.get(d)?.push(l)}let o=i.length>1;if(o)for(let l of i){let d=s.get(l)||[],f=e3(l.charAt(0).toUpperCase()+l.slice(1));n.push(` subgraph ${Pu(`stage_${l}`)}["${f}"]`);for(let p of d){let h=p.title||p.slug,m=e3(h),y=Pu(p.slug);n.push(` ${y}["${m}"]`)}n.push(" end")}else{let l=n3(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let y=(l.get(h)??[]).map(g=>d.get(g)).filter(g=>g!==void 0);if(y.length!==0){p&&n.push(` subgraph ${Pu(`wave_${h}`)}["Wave ${h}"]`);for(let g of y){let E=g.title||g.slug,S=e3(E),_=Pu(g.slug);n.push(` ${_}["${S}"]`)}p&&n.push(" end")}}}if(o&&i.length>1)for(let l=0;l ${f}`)}let a=new Map;for(let l of t)a.set(l.slug,l.frontmatter.stage||"_root");for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to);d&&f&&d===f&&n.push(` ${Pu(l.from)} --> ${Pu(l.to)}`)}let c=new Set;for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to),p=!r.has(l.from),h=!r.has(l.to);p&&f&&(c.add(l.from),n.push(` ${Pu(l.from)} --> ${Pu(l.to)}`)),h&&d&&(c.add(l.to),n.push(` ${Pu(l.from)} --> ${Pu(l.to)}`))}for(let l of c){let d=Pu(l),f=e3(l);n.push(` ${d}["${f} (external)"]:::external`)}let u=new Map;for(let l of e.nodes){if(c.has(l.id))continue;let d=u.get(l.status)??[];d.push(Pu(l.id)),u.set(l.status,d)}for(let[l,d]of u){let f=Eft[l]??Eft.pending;n.push(` classDef ${l} ${f}`),n.push(` class ${d.join(",")} ${l}`)}return c.size>0&&n.push(" classDef external fill:#f5f5f5,stroke:#999,stroke-dasharray:5 5,color:#666"),n.join(` -`)}var Eft,Npe=v(()=>{"use strict";Eft={completed:"fill:#166534,stroke:#14532d,color:#fff",active:"fill:#1e40af,stroke:#1e3a8a,color:#fff",in_progress:"fill:#1e40af,stroke:#1e3a8a,color:#fff",pending:"fill:#525252,stroke:#404040,color:#fff",blocked:"fill:#991b1b,stroke:#7f1d1d,color:#fff"}});import{existsSync as Ppe,readdirSync as Tft,readFileSync as TBn,rmSync as vBn}from"node:fs";import{join as i3}from"node:path";function ABn(e){if(!Ppe(e))return{};let t=TBn(e,"utf8"),{data:n}=re(t);return n}function HD(e,t){let n=mg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function vft(e,t){if(!HD(e,t))return[];let n=i3(e,"stages",t,"feedback");if(!Ppe(n))return[];let r=[];for(let i of Tft(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{vBn(i3(n,i),{force:!0}),r.push(i)}catch{}return r}function RBn(e){let t=typeof e.started_at=="string"&&e.started_at.length>0,n=Array.isArray(e.iterations)?e.iterations:[],r=n.length>0?n[n.length-1]:null,i=e.approvals&&typeof e.approvals=="object"?e.approvals:{},s=Object.values(i).some(l=>l!==null&&l!==!1&&l!==void 0),o=r!==null&&(r.result==="advance"||r.result==="closed")&&typeof r.hat=="string",a;s||o?a="completed":t?a="active":a="pending";let c=r!==null&&typeof r.hat=="string"?r.hat:"",u=n.length;return{status:a,hat:c,bolt:u}}function mg(e,t){let n=i3(e,"stages",t,"units");if(!Ppe(n))return[];let i=Tft(n).filter(o=>o.endsWith(".md")).map(o=>{let a=ABn(i3(n,o)),c=RBn(a);return{name:o.replace(".md",""),status:c.status,hat:c.hat,bolt:c.bolt,dependsOn:a.depends_on||[],depsComplete:!1}}),s=new Map(i.map(o=>[o.name,o.status]));for(let o of i)o.depsComplete=o.dependsOn.every(a=>s.get(a)==="completed");return i}function LI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=n3(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function UI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function s3(e,t){try{let n=mg(e,t);if(n.length===0)return"";let r=n.length,i=n.filter(p=>p.status==="completed").length,s=n.filter(p=>p.status==="active").length,o=n.filter(p=>p.status==="pending").length,{unitWave:a,totalWaves:c}=LI(n),u=UI(n,a,c),l=new Map;for(let p of n){if(p.status!=="active")continue;let h=p.hat||"?";l.set(h,(l.get(h)??0)+1)}let d=[...l.entries()].map(([p,h])=>`${p}\xD7${h}`).join(", "),f=`pool \xB7 stage \`${t}\`: ${i}/${r} units done \xB7 ${s} in flight \xB7 ${o} pending`+(c>1?` \xB7 wave ${u+1}/${c}`:"");return d?`${f} - in flight by hat: ${d}`:f}catch{return""}}var o3=v(()=>{"use strict";Npe();ze()});var cc={};Rr(cc,{HasPropertyKey:()=>a3,IsArray:()=>Cs,IsAsyncIterator:()=>Cpe,IsBigInt:()=>qD,IsBoolean:()=>gg,IsDate:()=>CT,IsFunction:()=>Mpe,IsIterator:()=>Dpe,IsNull:()=>Lpe,IsNumber:()=>El,IsObject:()=>Ir,IsRegExp:()=>BD,IsString:()=>Kr,IsSymbol:()=>Upe,IsUint8Array:()=>yg,IsUndefined:()=>Ms});function a3(e,t){return t in e}function Cpe(e){return Ir(e)&&!Cs(e)&&!yg(e)&&Symbol.asyncIterator in e}function Cs(e){return Array.isArray(e)}function qD(e){return typeof e=="bigint"}function gg(e){return typeof e=="boolean"}function CT(e){return e instanceof globalThis.Date}function Mpe(e){return typeof e=="function"}function Dpe(e){return Ir(e)&&!Cs(e)&&!yg(e)&&Symbol.iterator in e}function Lpe(e){return e===null}function El(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function BD(e){return e instanceof globalThis.RegExp}function Kr(e){return typeof e=="string"}function Upe(e){return typeof e=="symbol"}function yg(e){return e instanceof globalThis.Uint8Array}function Ms(e){return e===void 0}var Wc=v(()=>{});function wBn(e){return e.map(t=>c3(t))}function kBn(e){return new Date(e.getTime())}function IBn(e){return new Uint8Array(e)}function xBn(e){return new RegExp(e.source,e.flags)}function OBn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=c3(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=c3(e[n]);return t}function c3(e){return Cs(e)?wBn(e):CT(e)?kBn(e):yg(e)?IBn(e):BD(e)?xBn(e):Ir(e)?OBn(e):e}function bi(e){return c3(e)}var Cu=v(()=>{Wc()});function jI(e,t){return t===void 0?bi(e):bi({...t,...e})}var u3=v(()=>{Cu()});var jpe=v(()=>{u3();Cu()});function Aft(e){return e!==null&&typeof e=="object"}function Rft(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function wft(e){return e===void 0}function kft(e){return typeof e=="number"}var Ift=v(()=>{});var xft=v(()=>{Ift()});var l3,Oft=v(()=>{xft();(function(e){e.InstanceMode="default",e.ExactOptionalPropertyTypes=!1,e.AllowArrayObject=!1,e.AllowNaN=!1,e.AllowNullVoid=!1;function t(o,a){return e.ExactOptionalPropertyTypes?a in o:o[a]!==void 0}e.IsExactOptionalProperty=t;function n(o){let a=Aft(o);return e.AllowArrayObject?a:a&&!Rft(o)}e.IsObjectLike=n;function r(o){return n(o)&&!(o instanceof Date)&&!(o instanceof Uint8Array)}e.IsRecordLike=r;function i(o){return e.AllowNaN?kft(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=wft(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(l3||(l3={}))});function NBn(e){return globalThis.Object.freeze(e).map(t=>GD(t))}function PBn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=GD(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=GD(e[n]);return globalThis.Object.freeze(t)}function GD(e){return Cs(e)?NBn(e):CT(e)?e:yg(e)?e:BD(e)?e:Ir(e)?PBn(e):e}var Nft=v(()=>{Wc()});function ue(e,t){let n=t!==void 0?{...t,...e}:e;switch(l3.InstanceMode){case"freeze":return GD(n);case"clone":return bi(n);default:return n}}var It=v(()=>{Oft();Nft();Cu()});var Sg=v(()=>{It()});var Zo,Pft=v(()=>{Zo=class extends Error{constructor(t){super(t)}}});var Ph=v(()=>{Pft()});var no,Df,Aa,Nd,Ne,zD=v(()=>{no=Symbol.for("TypeBox.Transform"),Df=Symbol.for("TypeBox.Readonly"),Aa=Symbol.for("TypeBox.Optional"),Nd=Symbol.for("TypeBox.Hint"),Ne=Symbol.for("TypeBox.Kind")});var Mt=v(()=>{zD()});function FI(e){return Ir(e)&&e[Df]==="Readonly"}function Mu(e){return Ir(e)&&e[Aa]==="Optional"}function Fpe(e){return qn(e,"Any")}function Hpe(e){return qn(e,"Argument")}function Lf(e){return qn(e,"Array")}function MT(e){return qn(e,"AsyncIterator")}function DT(e){return qn(e,"BigInt")}function _g(e){return qn(e,"Boolean")}function Uf(e){return qn(e,"Computed")}function jf(e){return qn(e,"Constructor")}function CBn(e){return qn(e,"Date")}function Ff(e){return qn(e,"Function")}function Hf(e){return qn(e,"Integer")}function Qi(e){return qn(e,"Intersect")}function LT(e){return qn(e,"Iterator")}function qn(e,t){return Ir(e)&&Ne in e&&e[Ne]===t}function d3(e){return gg(e)||El(e)||Kr(e)}function bl(e){return qn(e,"Literal")}function Tl(e){return qn(e,"MappedKey")}function Ti(e){return qn(e,"MappedResult")}function h_(e){return qn(e,"Never")}function MBn(e){return qn(e,"Not")}function VD(e){return qn(e,"Null")}function qf(e){return qn(e,"Number")}function Ds(e){return qn(e,"Object")}function UT(e){return qn(e,"Promise")}function jT(e){return qn(e,"Record")}function Ss(e){return qn(e,"Ref")}function qpe(e){return qn(e,"RegExp")}function Eg(e){return qn(e,"String")}function WD(e){return qn(e,"Symbol")}function vl(e){return qn(e,"TemplateLiteral")}function DBn(e){return qn(e,"This")}function m_(e){return Ir(e)&&no in e}function Al(e){return qn(e,"Tuple")}function KD(e){return qn(e,"Undefined")}function Vn(e){return qn(e,"Union")}function LBn(e){return qn(e,"Uint8Array")}function UBn(e){return qn(e,"Unknown")}function jBn(e){return qn(e,"Unsafe")}function FBn(e){return qn(e,"Void")}function HBn(e){return Ir(e)&&Ne in e&&Kr(e[Ne])}function Rl(e){return Fpe(e)||Hpe(e)||Lf(e)||_g(e)||DT(e)||MT(e)||Uf(e)||jf(e)||CBn(e)||Ff(e)||Hf(e)||Qi(e)||LT(e)||bl(e)||Tl(e)||Ti(e)||h_(e)||MBn(e)||VD(e)||qf(e)||Ds(e)||UT(e)||jT(e)||Ss(e)||qpe(e)||Eg(e)||WD(e)||vl(e)||DBn(e)||Al(e)||KD(e)||Vn(e)||LBn(e)||UBn(e)||jBn(e)||FBn(e)||HBn(e)}var Yn=v(()=>{Wc();Mt()});var ee={};Rr(ee,{IsAny:()=>Lft,IsArgument:()=>Uft,IsArray:()=>jft,IsAsyncIterator:()=>Fft,IsBigInt:()=>Hft,IsBoolean:()=>qft,IsComputed:()=>Bft,IsConstructor:()=>Gft,IsDate:()=>zft,IsFunction:()=>Vft,IsImport:()=>WBn,IsInteger:()=>Wft,IsIntersect:()=>Kft,IsIterator:()=>Zft,IsKind:()=>Ept,IsKindOf:()=>wn,IsLiteral:()=>YD,IsLiteralBoolean:()=>KBn,IsLiteralNumber:()=>Jft,IsLiteralString:()=>Yft,IsLiteralValue:()=>Xft,IsMappedKey:()=>Qft,IsMappedResult:()=>$ft,IsNever:()=>ept,IsNot:()=>tpt,IsNull:()=>npt,IsNumber:()=>rpt,IsObject:()=>ipt,IsOptional:()=>VBn,IsPromise:()=>spt,IsProperties:()=>f3,IsReadonly:()=>zBn,IsRecord:()=>opt,IsRecursive:()=>ZBn,IsRef:()=>apt,IsRegExp:()=>cpt,IsSchema:()=>Yo,IsString:()=>upt,IsSymbol:()=>lpt,IsTemplateLiteral:()=>dpt,IsThis:()=>fpt,IsTransform:()=>ppt,IsTuple:()=>hpt,IsUint8Array:()=>gpt,IsUndefined:()=>mpt,IsUnion:()=>Vpe,IsUnionLiteral:()=>YBn,IsUnknown:()=>ypt,IsUnsafe:()=>Spt,IsVoid:()=>_pt,TypeGuardUnknownTypeError:()=>Bpe});function Cft(e){try{return new RegExp(e),!0}catch{return!1}}function Gpe(e){if(!Kr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function Mft(e){return zpe(e)||Yo(e)}function ZD(e){return Ms(e)||qD(e)}function Zr(e){return Ms(e)||El(e)}function zpe(e){return Ms(e)||gg(e)}function xr(e){return Ms(e)||Kr(e)}function BBn(e){return Ms(e)||Kr(e)&&Gpe(e)&&Cft(e)}function GBn(e){return Ms(e)||Kr(e)&&Gpe(e)}function Dft(e){return Ms(e)||Yo(e)}function zBn(e){return Ir(e)&&e[Df]==="Readonly"}function VBn(e){return Ir(e)&&e[Aa]==="Optional"}function Lft(e){return wn(e,"Any")&&xr(e.$id)}function Uft(e){return wn(e,"Argument")&&El(e.index)}function jft(e){return wn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Yo(e.items)&&Zr(e.minItems)&&Zr(e.maxItems)&&zpe(e.uniqueItems)&&Dft(e.contains)&&Zr(e.minContains)&&Zr(e.maxContains)}function Fft(e){return wn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Yo(e.items)}function Hft(e){return wn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&ZD(e.exclusiveMaximum)&&ZD(e.exclusiveMinimum)&&ZD(e.maximum)&&ZD(e.minimum)&&ZD(e.multipleOf)}function qft(e){return wn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Bft(e){return wn(e,"Computed")&&Kr(e.target)&&Cs(e.parameters)&&e.parameters.every(t=>Yo(t))}function Gft(e){return wn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&Cs(e.parameters)&&e.parameters.every(t=>Yo(t))&&Yo(e.returns)}function zft(e){return wn(e,"Date")&&e.type==="Date"&&xr(e.$id)&&Zr(e.exclusiveMaximumTimestamp)&&Zr(e.exclusiveMinimumTimestamp)&&Zr(e.maximumTimestamp)&&Zr(e.minimumTimestamp)&&Zr(e.multipleOfTimestamp)}function Vft(e){return wn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&Cs(e.parameters)&&e.parameters.every(t=>Yo(t))&&Yo(e.returns)}function WBn(e){return wn(e,"Import")&&a3(e,"$defs")&&Ir(e.$defs)&&f3(e.$defs)&&a3(e,"$ref")&&Kr(e.$ref)&&e.$ref in e.$defs}function Wft(e){return wn(e,"Integer")&&e.type==="integer"&&xr(e.$id)&&Zr(e.exclusiveMaximum)&&Zr(e.exclusiveMinimum)&&Zr(e.maximum)&&Zr(e.minimum)&&Zr(e.multipleOf)}function f3(e){return Ir(e)&&Object.entries(e).every(([t,n])=>Gpe(t)&&Yo(n))}function Kft(e){return wn(e,"Intersect")&&!(Kr(e.type)&&e.type!=="object")&&Cs(e.allOf)&&e.allOf.every(t=>Yo(t)&&!ppt(t))&&xr(e.type)&&(zpe(e.unevaluatedProperties)||Dft(e.unevaluatedProperties))&&xr(e.$id)}function Zft(e){return wn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Yo(e.items)}function wn(e,t){return Ir(e)&&Ne in e&&e[Ne]===t}function Yft(e){return YD(e)&&Kr(e.const)}function Jft(e){return YD(e)&&El(e.const)}function KBn(e){return YD(e)&&gg(e.const)}function YD(e){return wn(e,"Literal")&&xr(e.$id)&&Xft(e.const)}function Xft(e){return gg(e)||El(e)||Kr(e)}function Qft(e){return wn(e,"MappedKey")&&Cs(e.keys)&&e.keys.every(t=>El(t)||Kr(t))}function $ft(e){return wn(e,"MappedResult")&&f3(e.properties)}function ept(e){return wn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function tpt(e){return wn(e,"Not")&&Yo(e.not)}function npt(e){return wn(e,"Null")&&e.type==="null"&&xr(e.$id)}function rpt(e){return wn(e,"Number")&&e.type==="number"&&xr(e.$id)&&Zr(e.exclusiveMaximum)&&Zr(e.exclusiveMinimum)&&Zr(e.maximum)&&Zr(e.minimum)&&Zr(e.multipleOf)}function ipt(e){return wn(e,"Object")&&e.type==="object"&&xr(e.$id)&&f3(e.properties)&&Mft(e.additionalProperties)&&Zr(e.minProperties)&&Zr(e.maxProperties)}function spt(e){return wn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Yo(e.item)}function opt(e){return wn(e,"Record")&&e.type==="object"&&xr(e.$id)&&Mft(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&Cft(n[0])&&Ir(t.patternProperties)&&Yo(t.patternProperties[n[0]])})(e)}function ZBn(e){return Ir(e)&&Nd in e&&e[Nd]==="Recursive"}function apt(e){return wn(e,"Ref")&&xr(e.$id)&&Kr(e.$ref)}function cpt(e){return wn(e,"RegExp")&&xr(e.$id)&&Kr(e.source)&&Kr(e.flags)&&Zr(e.maxLength)&&Zr(e.minLength)}function upt(e){return wn(e,"String")&&e.type==="string"&&xr(e.$id)&&Zr(e.minLength)&&Zr(e.maxLength)&&BBn(e.pattern)&&GBn(e.format)}function lpt(e){return wn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function dpt(e){return wn(e,"TemplateLiteral")&&e.type==="string"&&Kr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function fpt(e){return wn(e,"This")&&xr(e.$id)&&Kr(e.$ref)}function ppt(e){return Ir(e)&&no in e}function hpt(e){return wn(e,"Tuple")&&e.type==="array"&&xr(e.$id)&&El(e.minItems)&&El(e.maxItems)&&e.minItems===e.maxItems&&(Ms(e.items)&&Ms(e.additionalItems)&&e.minItems===0||Cs(e.items)&&e.items.every(t=>Yo(t)))}function mpt(e){return wn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function YBn(e){return Vpe(e)&&e.anyOf.every(t=>Yft(t)||Jft(t))}function Vpe(e){return wn(e,"Union")&&xr(e.$id)&&Ir(e)&&Cs(e.anyOf)&&e.anyOf.every(t=>Yo(t))}function gpt(e){return wn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Zr(e.minByteLength)&&Zr(e.maxByteLength)}function ypt(e){return wn(e,"Unknown")&&xr(e.$id)}function Spt(e){return wn(e,"Unsafe")}function _pt(e){return wn(e,"Void")&&e.type==="void"&&xr(e.$id)}function Ept(e){return Ir(e)&&Ne in e&&Kr(e[Ne])&&!qBn.includes(e[Ne])}function Yo(e){return Ir(e)&&(Lft(e)||Uft(e)||jft(e)||qft(e)||Hft(e)||Fft(e)||Bft(e)||Gft(e)||zft(e)||Vft(e)||Wft(e)||Kft(e)||Zft(e)||YD(e)||Qft(e)||$ft(e)||ept(e)||tpt(e)||npt(e)||rpt(e)||ipt(e)||spt(e)||opt(e)||apt(e)||cpt(e)||upt(e)||lpt(e)||dpt(e)||fpt(e)||hpt(e)||mpt(e)||Vpe(e)||gpt(e)||ypt(e)||Spt(e)||_pt(e)||Ept(e))}var Bpe,qBn,bpt=v(()=>{Wc();Mt();Ph();Bpe=class extends Zo{},qBn=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"]});var Wpe=v(()=>{Yn();bpt();Wc()});var Tpt=v(()=>{});var vpt=v(()=>{Tpt()});var Kpe,JD,Zpe,JBn,SYr,g_,y_,Apt,Rpt=v(()=>{Kpe="(true|false)",JD="(0|[1-9][0-9]*)",Zpe="(.*)",JBn="(?!.*)",SYr=`^${Kpe}$`,g_=`^${JD}$`,y_=`^${Zpe}$`,Apt=`^${JBn}$`});var XD=v(()=>{Rpt()});var wpt=v(()=>{});var kpt=v(()=>{});var Ipt=v(()=>{wpt();kpt()});function xpt(e,t){return e.includes(t)}function Opt(e){return[...new Set(e)]}function $Bn(e,t){return e.filter(n=>t.includes(n))}function eGn(e,t){return e.reduce((n,r)=>$Bn(n,r),t)}function Npt(e){return e.length===1?e[0]:e.length>1?eGn(e.slice(1),e[0]):[]}function Ppt(e){let t=[];for(let n of e)t.push(...n);return t}var Cpt=v(()=>{});var QD=v(()=>{Cpt()});function S_(e){return ue({[Ne]:"Any"},e)}var Mpt=v(()=>{Sg();Mt()});var $D=v(()=>{Mpt()});function HI(e,t){return ue({[Ne]:"Array",type:"array",items:e},t)}var Dpt=v(()=>{It();Mt()});var eL=v(()=>{Dpt()});function Lpt(e){return ue({[Ne]:"Argument",index:e})}var Upt=v(()=>{It();Mt()});var Ype=v(()=>{Upt()});function qI(e,t){return ue({[Ne]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var jpt=v(()=>{Mt();It()});var tL=v(()=>{jpt()});function ri(e,t,n){return ue({[Ne]:"Computed",target:e,parameters:t},n)}var Fpt=v(()=>{Sg();zD()});var __=v(()=>{Fpt()});function tGn(e,t){let{[t]:n,...r}=e;return r}function $i(e,t){return t.reduce((n,r)=>tGn(n,r),e)}var p3=v(()=>{});var Tg=v(()=>{p3()});function Wn(e){return ue({[Ne]:"Never",not:{}},e)}var Hpt=v(()=>{It();Mt()});var Ra=v(()=>{Hpt()});var qpt=v(()=>{});function Jn(e){return ue({[Ne]:"MappedResult",properties:e})}var Jpe=v(()=>{It();Mt()});function BI(e,t,n){return ue({[Ne]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Bpt=v(()=>{It();Mt()});var nL=v(()=>{Bpt()});function Ch(e,t,n){return ue({[Ne]:"Function",type:"Function",parameters:e,returns:t},n)}var Gpt=v(()=>{It();Mt()});var FT=v(()=>{Gpt()});function rL(e,t){return ue({[Ne]:"Union",anyOf:e},t)}var Xpe=v(()=>{It();Mt()});function nGn(e){return e.some(t=>Mu(t))}function zpt(e){return e.map(t=>Mu(t)?rGn(t):t)}function rGn(e){return $i(e,[Aa])}function iGn(e,t){return nGn(e)?uc(rL(zpt(e),t)):rL(zpt(e),t)}function Mh(e,t){return e.length===1?ue(e[0],t):e.length===0?Wn(t):iGn(e,t)}var Vpt=v(()=>{It();Mt();Tg();Ra();vg();Xpe();Yn()});var Wpt=v(()=>{});function gr(e,t){return e.length===0?Wn(t):e.length===1?ue(e[0],t):rL(e,t)}var Kpt=v(()=>{Ra();It();Xpe()});var ro=v(()=>{Vpt();Wpt();Kpt()});function sGn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function Qpe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function Ag(e,t){return Qpe(e,t,"(")}function iL(e,t){return Qpe(e,t,")")}function Zpt(e,t){return Qpe(e,t,"|")}function oGn(e){if(!(Ag(e,0)&&iL(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(GI(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(GI(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function dGn(e){function t(i,s){if(!Ag(i,s))throw new h3("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(GI(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function GI(e){return oGn(e)?GI(aGn(e)):cGn(e)?lGn(e):uGn(e)?dGn(e):{type:"const",const:sGn(e)}}function zI(e){return GI(e.slice(1,e.length-1))}var h3,m3=v(()=>{Ph();h3=class extends Zo{}});function fGn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function pGn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function hGn(e){return e.type==="const"&&e.const===".*"}function HT(e){return fGn(e)||hGn(e)?!1:pGn(e)?!0:e.type==="and"?e.expr.every(t=>HT(t)):e.type==="or"?e.expr.every(t=>HT(t)):e.type==="const"?!0:(()=>{throw new $pe("Unknown expression type")})()}function Ypt(e){let t=zI(e.pattern);return HT(t)}var $pe,ehe=v(()=>{m3();Ph();$pe=class extends Zo{}});function*Jpt(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Jpt(e.slice(1)))yield`${t}${n}`}function*mGn(e){return yield*Jpt(e.expr.map(t=>[...sL(t)]))}function*gGn(e){for(let t of e.expr)yield*sL(t)}function*yGn(e){return yield e.const}function*sL(e){return e.type==="and"?yield*mGn(e):e.type==="or"?yield*gGn(e):e.type==="const"?yield*yGn(e):(()=>{throw new the("Unknown expression")})()}function g3(e){let t=zI(e.pattern);return HT(t)?[...sL(t)]:[]}var the,nhe=v(()=>{ehe();m3();Ph();the=class extends Zo{}});function ar(e,t){return ue({[Ne]:"Literal",const:e,type:typeof e},t)}var Xpt=v(()=>{It();Mt()});var Du=v(()=>{Xpt()});function y3(e){return ue({[Ne]:"Boolean",type:"boolean"},e)}var Qpt=v(()=>{Mt();Sg()});var S3=v(()=>{Qpt()});function VI(e){return ue({[Ne]:"BigInt",type:"bigint"},e)}var $pt=v(()=>{Mt();Sg()});var oL=v(()=>{$pt()});function Pd(e){return ue({[Ne]:"Number",type:"number"},e)}var eht=v(()=>{It();Mt()});var qT=v(()=>{eht()});function Bf(e){return ue({[Ne]:"String",type:"string"},e)}var tht=v(()=>{It();Mt()});var WI=v(()=>{tht()});function*SGn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield y3():t==="number"?yield Pd():t==="bigint"?yield VI():t==="string"?yield Bf():yield(()=>{let n=t.split("|").map(r=>ar(r.trim()));return n.length===0?Wn():n.length===1?n[0]:Mh(n)})()}function*_Gn(e){if(e[1]!=="{"){let t=ar("$"),n=rhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{Du();S3();oL();qT();WI();ro();Ra()});function EGn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function rht(e,t){return vl(e)?e.pattern.slice(1,e.pattern.length-1):Vn(e)?`(${e.anyOf.map(n=>rht(n,t)).join("|")})`:qf(e)?`${t}${JD}`:Hf(e)?`${t}${JD}`:DT(e)?`${t}${JD}`:Eg(e)?`${t}${Zpe}`:bl(e)?`${t}${EGn(e.const.toString())}`:_g(e)?`${t}${Kpe}`:(()=>{throw new she(`Unexpected Kind '${e[Ne]}'`)})()}function ohe(e){return`^${e.map(t=>rht(t,"")).join("")}$`}var she,ahe=v(()=>{XD();Mt();Ph();Yn();she=class extends Zo{}});function BT(e){let n=g3(e).map(r=>ar(r));return Mh(n)}var iht=v(()=>{ro();Du();nhe()});function _3(e,t){let n=Kr(e)?ohe(nht(e)):ohe(e);return ue({[Ne]:"TemplateLiteral",type:"string",pattern:n},t)}var sht=v(()=>{It();ihe();ahe();Wc();Mt()});var Rg=v(()=>{ehe();nhe();ihe();m3();ahe();iht();sht()});function bGn(e){return g3(e).map(n=>n.toString())}function TGn(e){let t=[];for(let n of e)t.push(...Lu(n));return t}function vGn(e){return[e.toString()]}function Lu(e){return[...new Set(vl(e)?bGn(e):Vn(e)?TGn(e.anyOf):bl(e)?vGn(e.const):qf(e)?["[number]"]:Hf(e)?["[number]"]:[])]}var E3=v(()=>{Rg();Yn()});function AGn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=E_(e,Lu(t[i]),n);return r}function RGn(e,t,n){return AGn(e,t.properties,n)}function oht(e,t,n){let r=RGn(e,t,n);return Jn(r)}var che=v(()=>{Eo();E3();Dh()});function cht(e,t){return e.map(n=>uht(n,t))}function wGn(e){return e.filter(t=>!h_(t))}function kGn(e,t){return b3(wGn(cht(e,t)))}function IGn(e){return e.some(t=>h_(t))?[]:e}function xGn(e,t){return Mh(IGn(cht(e,t)))}function OGn(e,t){return t in e?e[t]:t==="[number]"?Mh(e):Wn()}function NGn(e,t){return t==="[number]"?e:Wn()}function PGn(e,t){return t in e?e[t]:Wn()}function uht(e,t){return Qi(e)?kGn(e.allOf,t):Vn(e)?xGn(e.anyOf,t):Al(e)?OGn(e.items??[],t):Lf(e)?NGn(e.items,t):Ds(e)?PGn(e.properties,t):Wn()}function uhe(e,t){return t.map(n=>uht(e,n))}function aht(e,t){return Mh(uhe(e,t))}function E_(e,t,n){if(Ss(e)||Ss(t)){let r="Index types using Ref parameters require both Type and Key to be of TSchema";if(!Rl(e)||!Rl(t))throw new Zo(r);return ri("Index",[e,t])}return Ti(t)?oht(e,t,n):Tl(t)?lht(e,t,n):ue(Rl(t)?aht(e,Lu(t)):aht(e,t),n)}var lhe=v(()=>{It();Ph();__();Ra();Cd();ro();E3();dhe();che();Yn()});function CGn(e,t,n){return{[t]:E_(e,[t],bi(n))}}function MGn(e,t,n){return t.reduce((r,i)=>({...r,...CGn(e,i,n)}),{})}function DGn(e,t,n){return MGn(e,t.keys,n)}function lht(e,t,n){let r=DGn(e,t,n);return Jn(r)}var dhe=v(()=>{lhe();Eo();Cu()});var Dh=v(()=>{dhe();che();E3();lhe()});function KI(e,t){return ue({[Ne]:"Iterator",type:"Iterator",items:e},t)}var dht=v(()=>{It();Mt()});var aL=v(()=>{dht()});function LGn(e){return globalThis.Object.keys(e).filter(t=>!Mu(e[t]))}function UGn(e,t){let n=LGn(e),r=n.length>0?{[Ne]:"Object",type:"object",required:n,properties:e}:{[Ne]:"Object",type:"object",properties:e};return ue(r,t)}var Or,fht=v(()=>{It();Mt();Yn();Or=UGn});var wl=v(()=>{fht()});function T3(e,t){return ue({[Ne]:"Promise",type:"Promise",item:e},t)}var pht=v(()=>{It();Mt()});var v3=v(()=>{pht()});function jGn(e){return ue($i(e,[Df]))}function FGn(e){return ue({...e,[Df]:"Readonly"})}function HGn(e,t){return t===!1?jGn(e):FGn(e)}function Uu(e,t){let n=t??!0;return Ti(e)?hht(e,n):HGn(e,n)}var fhe=v(()=>{It();Mt();Tg();phe();Yn()});function qGn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Uu(e[r],t);return n}function BGn(e,t){return qGn(e.properties,t)}function hht(e,t){let n=BGn(e,t);return Jn(n)}var phe=v(()=>{Eo();fhe()});var GT=v(()=>{phe();fhe()});function Md(e,t){return ue(e.length>0?{[Ne]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Ne]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var mht=v(()=>{It();Mt()});var b_=v(()=>{mht()});function ght(e,t){return e in t?Dd(e,t[e]):Jn(t)}function GGn(e){return{[e]:ar(e)}}function zGn(e){let t={};for(let n of e)t[n]=ar(n);return t}function VGn(e,t){return xpt(t,e)?GGn(e):zGn(t)}function WGn(e,t){let n=VGn(e,t);return ght(e,n)}function cL(e,t){return t.map(n=>Dd(e,n))}function KGn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Dd(e,t[r]);return n}function Dd(e,t){let n={...t};return Mu(t)?uc(Dd(e,$i(t,[Aa]))):FI(t)?Uu(Dd(e,$i(t,[Df]))):Ti(t)?ght(e,t.properties):Tl(t)?WGn(e,t.keys):jf(t)?BI(cL(e,t.parameters),Dd(e,t.returns),n):Ff(t)?Ch(cL(e,t.parameters),Dd(e,t.returns),n):MT(t)?qI(Dd(e,t.items),n):LT(t)?KI(Dd(e,t.items),n):Qi(t)?lc(cL(e,t.allOf),n):Vn(t)?gr(cL(e,t.anyOf),n):Al(t)?Md(cL(e,t.items??[]),n):Ds(t)?Or(KGn(e,t.properties),n):Lf(t)?HI(Dd(e,t.items),n):UT(t)?T3(Dd(e,t.item),n):t}function ZGn(e,t){let n={};for(let r of e)n[r]=Dd(r,t);return n}function yht(e,t,n){let r=Rl(e)?Lu(e):e,i=t({[Ne]:"MappedKey",keys:r}),s=ZGn(r,i);return Or(s,n)}var Sht=v(()=>{Mt();Tg();eL();tL();nL();FT();Dh();Cd();aL();Du();wl();vg();v3();GT();b_();ro();QD();Jpe();Yn()});var Eo=v(()=>{qpt();Jpe();Sht()});function YGn(e){return ue($i(e,[Aa]))}function JGn(e){return ue({...e,[Aa]:"Optional"})}function XGn(e,t){return t===!1?YGn(e):JGn(e)}function uc(e,t){let n=t??!0;return Ti(e)?_ht(e,n):XGn(e,n)}var hhe=v(()=>{It();Mt();Tg();mhe();Yn()});function QGn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=uc(e[r],t);return n}function $Gn(e,t){return QGn(e.properties,t)}function _ht(e,t){let n=$Gn(e,t);return Jn(n)}var mhe=v(()=>{Eo();hhe()});var vg=v(()=>{mhe();hhe()});function uL(e,t={}){let n=e.every(i=>Ds(i)),r=Rl(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return ue(t.unevaluatedProperties===!1||Rl(t.unevaluatedProperties)||n?{...r,[Ne]:"Intersect",type:"object",allOf:e}:{...r,[Ne]:"Intersect",allOf:e},t)}var ghe=v(()=>{It();Mt();Yn()});function ezn(e){return e.every(t=>Mu(t))}function tzn(e){return $i(e,[Aa])}function Eht(e){return e.map(t=>Mu(t)?tzn(t):t)}function nzn(e,t){return ezn(e)?uc(uL(Eht(e),t)):uL(Eht(e),t)}function b3(e,t={}){if(e.length===1)return ue(e[0],t);if(e.length===0)return Wn(t);if(e.some(n=>m_(n)))throw new Error("Cannot intersect transform types");return nzn(e,t)}var bht=v(()=>{Mt();It();Tg();Ra();vg();ghe();Yn()});var Tht=v(()=>{});function lc(e,t){if(e.length===1)return ue(e[0],t);if(e.length===0)return Wn(t);if(e.some(n=>m_(n)))throw new Error("Cannot intersect transform types");return uL(e,t)}var vht=v(()=>{It();Ra();ghe();Yn()});var Cd=v(()=>{bht();Tht();vht()});function Lh(...e){let[t,n]=typeof e[0]=="string"?[e[0],e[1]]:[e[0].$id,e[1]];if(typeof t!="string")throw new Zo("Ref: $ref must be a string");return ue({[Ne]:"Ref",$ref:t},n)}var Aht=v(()=>{Ph();It();Mt()});var zT=v(()=>{Aht()});function rzn(e,t){return ri("Awaited",[ri(e,t)])}function izn(e){return ri("Awaited",[Lh(e)])}function szn(e){return lc(Rht(e))}function ozn(e){return gr(Rht(e))}function azn(e){return ZI(e)}function Rht(e){return e.map(t=>ZI(t))}function ZI(e,t){return ue(Uf(e)?rzn(e.target,e.parameters):Qi(e)?szn(e.allOf):Vn(e)?ozn(e.anyOf):UT(e)?azn(e.item):Ss(e)?izn(e.$ref):e,t)}var wht=v(()=>{It();__();Cd();ro();zT();Yn()});var A3=v(()=>{wht()});function kht(e){let t=[];for(let n of e)t.push(lL(n));return t}function czn(e){let t=kht(e);return Ppt(t)}function uzn(e){let t=kht(e);return Npt(t)}function lzn(e){return e.map((t,n)=>n.toString())}function dzn(e){return["[number]"]}function fzn(e){return globalThis.Object.getOwnPropertyNames(e)}function pzn(e){return hzn?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function lL(e){return Qi(e)?czn(e.allOf):Vn(e)?uzn(e.anyOf):Al(e)?lzn(e.items??[]):Lf(e)?dzn(e.items):Ds(e)?fzn(e.properties):jT(e)?pzn(e.patternProperties):[]}var hzn,yhe=v(()=>{QD();Yn();hzn=!1});function mzn(e,t){return ri("KeyOf",[ri(e,t)])}function gzn(e){return ri("KeyOf",[Lh(e)])}function yzn(e,t){let n=lL(e),r=Szn(n),i=Mh(r);return ue(i,t)}function Szn(e){return e.map(t=>t==="[number]"?Pd():ar(t))}function YI(e,t){return Uf(e)?mzn(e.target,e.parameters):Ss(e)?gzn(e.$ref):Ti(e)?Iht(e,t):yzn(e,t)}var She=v(()=>{It();Du();qT();__();zT();yhe();ro();_he();Yn()});function _zn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=YI(e[r],bi(t));return n}function Ezn(e,t){return _zn(e.properties,t)}function Iht(e,t){let n=Ezn(e,t);return Jn(n)}var _he=v(()=>{Eo();She();Cu()});var xht=v(()=>{});var dL=v(()=>{_he();xht();yhe();She()});function bzn(e){let t=[];for(let n of e)t.push(...lL(n));return Opt(t)}function Tzn(e){return e.filter(t=>!h_(t))}function vzn(e,t){let n=[];for(let r of e)n.push(...uhe(r,[t]));return Tzn(n)}function Azn(e,t){let n={};for(let r of t)n[r]=b3(vzn(e,r));return n}function Oht(e,t){let n=bzn(e),r=Azn(e,n);return Or(r,t)}var Nht=v(()=>{Cd();Dh();dL();wl();QD();Yn()});var Ehe=v(()=>{Nht()});function R3(e){return ue({[Ne]:"Date",type:"Date"},e)}var Pht=v(()=>{Mt();It()});var w3=v(()=>{Pht()});function k3(e){return ue({[Ne]:"Null",type:"null"},e)}var Cht=v(()=>{It();Mt()});var I3=v(()=>{Cht()});function x3(e){return ue({[Ne]:"Symbol",type:"symbol"},e)}var Mht=v(()=>{It();Mt()});var O3=v(()=>{Mht()});function N3(e){return ue({[Ne]:"Undefined",type:"undefined"},e)}var Dht=v(()=>{It();Mt()});var P3=v(()=>{Dht()});function C3(e){return ue({[Ne]:"Uint8Array",type:"Uint8Array"},e)}var Lht=v(()=>{It();Mt()});var M3=v(()=>{Lht()});function T_(e){return ue({[Ne]:"Unknown"},e)}var Uht=v(()=>{It();Mt()});var JI=v(()=>{Uht()});function Rzn(e){return e.map(t=>bhe(t,!1))}function wzn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Uu(bhe(e[n],!1));return t}function D3(e,t){return t===!0?e:Uu(e)}function bhe(e,t){return Cpe(e)?D3(S_(),t):Dpe(e)?D3(S_(),t):Cs(e)?Uu(Md(Rzn(e))):yg(e)?C3():CT(e)?R3():Ir(e)?D3(Or(wzn(e)),t):Mpe(e)?D3(Ch([],T_()),t):Ms(e)?N3():Lpe(e)?k3():Upe(e)?x3():qD(e)?VI():El(e)?ar(e):gg(e)?ar(e):Kr(e)?ar(e):Or({})}function jht(e,t){return ue(bhe(e,!0),t)}var Fht=v(()=>{$D();oL();w3();FT();Du();I3();wl();O3();b_();GT();P3();M3();JI();Sg();Wc()});var The=v(()=>{Fht()});function Hht(e,t){return jf(e)?Md(e.parameters,t):Wn(t)}var qht=v(()=>{b_();Ra();Yn()});var vhe=v(()=>{qht()});function Bht(e,t){if(Ms(e))throw new Error("Enum undefined or empty");let n=globalThis.Object.getOwnPropertyNames(e).filter(s=>isNaN(s)).map(s=>e[s]),i=[...new Set(n)].map(s=>ar(s));return gr(i,{...t,[Nd]:"Enum"})}var Ght=v(()=>{Du();Mt();ro();Wc()});var Ahe=v(()=>{Ght()});function Ld(e){return e===le.False?e:le.True}function XI(e){throw new whe(e)}function io(e){return ee.IsNever(e)||ee.IsIntersect(e)||ee.IsUnion(e)||ee.IsUnknown(e)||ee.IsAny(e)}function so(e,t){return ee.IsNever(t)?Jht(e,t):ee.IsIntersect(t)?L3(e,t):ee.IsUnion(t)?Ohe(e,t):ee.IsUnknown(t)?emt(e,t):ee.IsAny(t)?xhe(e,t):XI("StructuralRight")}function xhe(e,t){return le.True}function kzn(e,t){return ee.IsIntersect(t)?L3(e,t):ee.IsUnion(t)&&t.anyOf.some(n=>ee.IsAny(n)||ee.IsUnknown(n))?le.True:ee.IsUnion(t)?le.Union:ee.IsUnknown(t)||ee.IsAny(t)?le.True:le.Union}function Izn(e,t){return ee.IsUnknown(e)?le.False:ee.IsAny(e)?le.Union:ee.IsNever(e)?le.True:le.False}function xzn(e,t){return ee.IsObject(t)&&U3(t)?le.True:io(t)?so(e,t):ee.IsArray(t)?Ld(Nr(e.items,t.items)):le.False}function Ozn(e,t){return io(t)?so(e,t):ee.IsAsyncIterator(t)?Ld(Nr(e.items,t.items)):le.False}function Nzn(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsBigInt(t)?le.True:le.False}function Zht(e,t){return ee.IsLiteralBoolean(e)||ee.IsBoolean(e)?le.True:le.False}function Pzn(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsBoolean(t)?le.True:le.False}function Czn(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsConstructor(t)?e.parameters.length>t.parameters.length?le.False:e.parameters.every((n,r)=>Ld(Nr(t.parameters[r],n))===le.True)?Ld(Nr(e.returns,t.returns)):le.False:le.False}function Mzn(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsDate(t)?le.True:le.False}function Dzn(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsFunction(t)?e.parameters.length>t.parameters.length?le.False:e.parameters.every((n,r)=>Ld(Nr(t.parameters[r],n))===le.True)?Ld(Nr(e.returns,t.returns)):le.False:le.False}function Yht(e,t){return ee.IsLiteral(e)&&cc.IsNumber(e.const)||ee.IsNumber(e)||ee.IsInteger(e)?le.True:le.False}function Lzn(e,t){return ee.IsInteger(t)||ee.IsNumber(t)?le.True:io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):le.False}function L3(e,t){return t.allOf.every(n=>Nr(e,n)===le.True)?le.True:le.False}function Uzn(e,t){return e.allOf.some(n=>Nr(n,t)===le.True)?le.True:le.False}function jzn(e,t){return io(t)?so(e,t):ee.IsIterator(t)?Ld(Nr(e.items,t.items)):le.False}function Fzn(e,t){return ee.IsLiteral(t)&&t.const===e.const?le.True:io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsString(t)?$ht(e,t):ee.IsNumber(t)?Xht(e,t):ee.IsInteger(t)?Yht(e,t):ee.IsBoolean(t)?Zht(e,t):le.False}function Jht(e,t){return le.False}function Hzn(e,t){return le.True}function zht(e){let[t,n]=[e,0];for(;ee.IsNot(t);)t=t.not,n+=1;return n%2===0?t:T_()}function qzn(e,t){return ee.IsNot(e)?Nr(zht(e),t):ee.IsNot(t)?Nr(e,zht(t)):XI("Invalid fallthrough for Not")}function Bzn(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsNull(t)?le.True:le.False}function Xht(e,t){return ee.IsLiteralNumber(e)||ee.IsNumber(e)||ee.IsInteger(e)?le.True:le.False}function Gzn(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsInteger(t)||ee.IsNumber(t)?le.True:le.False}function ju(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Vht(e){return U3(e)}function Wht(e){return ju(e,0)||ju(e,1)&&"description"in e.properties&&ee.IsUnion(e.properties.description)&&e.properties.description.anyOf.length===2&&(ee.IsString(e.properties.description.anyOf[0])&&ee.IsUndefined(e.properties.description.anyOf[1])||ee.IsString(e.properties.description.anyOf[1])&&ee.IsUndefined(e.properties.description.anyOf[0]))}function Rhe(e){return ju(e,0)}function Kht(e){return ju(e,0)}function zzn(e){return ju(e,0)}function Vzn(e){return ju(e,0)}function Wzn(e){return U3(e)}function Kzn(e){let t=Pd();return ju(e,0)||ju(e,1)&&"length"in e.properties&&Ld(Nr(e.properties.length,t))===le.True}function Zzn(e){return ju(e,0)}function U3(e){let t=Pd();return ju(e,0)||ju(e,1)&&"length"in e.properties&&Ld(Nr(e.properties.length,t))===le.True}function Yzn(e){let t=Ch([S_()],S_());return ju(e,0)||ju(e,1)&&"then"in e.properties&&Ld(Nr(e.properties.then,t))===le.True}function Qht(e,t){return Nr(e,t)===le.False||ee.IsOptional(e)&&!ee.IsOptional(t)?le.False:le.True}function dc(e,t){return ee.IsUnknown(e)?le.False:ee.IsAny(e)?le.Union:ee.IsNever(e)||ee.IsLiteralString(e)&&Vht(t)||ee.IsLiteralNumber(e)&&Rhe(t)||ee.IsLiteralBoolean(e)&&Kht(t)||ee.IsSymbol(e)&&Wht(t)||ee.IsBigInt(e)&&zzn(t)||ee.IsString(e)&&Vht(t)||ee.IsSymbol(e)&&Wht(t)||ee.IsNumber(e)&&Rhe(t)||ee.IsInteger(e)&&Rhe(t)||ee.IsBoolean(e)&&Kht(t)||ee.IsUint8Array(e)&&Wzn(t)||ee.IsDate(e)&&Vzn(t)||ee.IsConstructor(e)&&Zzn(t)||ee.IsFunction(e)&&Kzn(t)?le.True:ee.IsRecord(e)&&ee.IsString(khe(e))?t[Nd]==="Record"?le.True:le.False:ee.IsRecord(e)&&ee.IsNumber(khe(e))&&ju(t,0)?le.True:le.False}function Jzn(e,t){return io(t)?so(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!ee.IsOptional(t.properties[n]))return le.False;if(ee.IsOptional(t.properties[n]))return le.True;if(Qht(e.properties[n],t.properties[n])===le.False)return le.False}return le.True})():le.False}function Xzn(e,t){return io(t)?so(e,t):ee.IsObject(t)&&Yzn(t)?le.True:ee.IsPromise(t)?Ld(Nr(e.item,t.item)):le.False}function khe(e){return g_ in e.patternProperties?Pd():y_ in e.patternProperties?Bf():XI("Unknown record key pattern")}function Ihe(e){return g_ in e.patternProperties?e.patternProperties[g_]:y_ in e.patternProperties?e.patternProperties[y_]:XI("Unable to get record value schema")}function Ud(e,t){let[n,r]=[khe(t),Ihe(t)];return ee.IsLiteralString(e)&&ee.IsNumber(n)&&Ld(Nr(e,r))===le.True?le.True:ee.IsUint8Array(e)&&ee.IsNumber(n)||ee.IsString(e)&&ee.IsNumber(n)||ee.IsArray(e)&&ee.IsNumber(n)?Nr(e,r):ee.IsObject(e)?(()=>{for(let i of Object.getOwnPropertyNames(e.properties))if(Qht(r,e.properties[i])===le.False)return le.False;return le.True})():le.False}function Qzn(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Nr(Ihe(e),Ihe(t)):le.False}function $zn(e,t){let n=ee.IsRegExp(e)?Bf():e,r=ee.IsRegExp(t)?Bf():t;return Nr(n,r)}function $ht(e,t){return ee.IsLiteral(e)&&cc.IsString(e.const)||ee.IsString(e)?le.True:le.False}function e2n(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsString(t)?le.True:le.False}function t2n(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsSymbol(t)?le.True:le.False}function n2n(e,t){return ee.IsTemplateLiteral(e)?Nr(BT(e),t):ee.IsTemplateLiteral(t)?Nr(e,BT(t)):XI("Invalid fallthrough for TemplateLiteral")}function r2n(e,t){return ee.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Nr(n,t.items)===le.True)}function i2n(e,t){return ee.IsNever(e)?le.True:ee.IsUnknown(e)?le.False:ee.IsAny(e)?le.Union:le.False}function s2n(e,t){return io(t)?so(e,t):ee.IsObject(t)&&U3(t)||ee.IsArray(t)&&r2n(e,t)?le.True:ee.IsTuple(t)?cc.IsUndefined(e.items)&&!cc.IsUndefined(t.items)||!cc.IsUndefined(e.items)&&cc.IsUndefined(t.items)?le.False:cc.IsUndefined(e.items)&&!cc.IsUndefined(t.items)||e.items.every((n,r)=>Nr(n,t.items[r])===le.True)?le.True:le.False:le.False}function o2n(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsUint8Array(t)?le.True:le.False}function a2n(e,t){return io(t)?so(e,t):ee.IsObject(t)?dc(e,t):ee.IsRecord(t)?Ud(e,t):ee.IsVoid(t)?l2n(e,t):ee.IsUndefined(t)?le.True:le.False}function Ohe(e,t){return t.anyOf.some(n=>Nr(e,n)===le.True)?le.True:le.False}function c2n(e,t){return e.anyOf.every(n=>Nr(n,t)===le.True)?le.True:le.False}function emt(e,t){return le.True}function u2n(e,t){return ee.IsNever(t)?Jht(e,t):ee.IsIntersect(t)?L3(e,t):ee.IsUnion(t)?Ohe(e,t):ee.IsAny(t)?xhe(e,t):ee.IsString(t)?$ht(e,t):ee.IsNumber(t)?Xht(e,t):ee.IsInteger(t)?Yht(e,t):ee.IsBoolean(t)?Zht(e,t):ee.IsArray(t)?Izn(e,t):ee.IsTuple(t)?i2n(e,t):ee.IsObject(t)?dc(e,t):ee.IsUnknown(t)?le.True:le.False}function l2n(e,t){return ee.IsUndefined(e)||ee.IsUndefined(e)?le.True:le.False}function d2n(e,t){return ee.IsIntersect(t)?L3(e,t):ee.IsUnion(t)?Ohe(e,t):ee.IsUnknown(t)?emt(e,t):ee.IsAny(t)?xhe(e,t):ee.IsObject(t)?dc(e,t):ee.IsVoid(t)?le.True:le.False}function Nr(e,t){return ee.IsTemplateLiteral(e)||ee.IsTemplateLiteral(t)?n2n(e,t):ee.IsRegExp(e)||ee.IsRegExp(t)?$zn(e,t):ee.IsNot(e)||ee.IsNot(t)?qzn(e,t):ee.IsAny(e)?kzn(e,t):ee.IsArray(e)?xzn(e,t):ee.IsBigInt(e)?Nzn(e,t):ee.IsBoolean(e)?Pzn(e,t):ee.IsAsyncIterator(e)?Ozn(e,t):ee.IsConstructor(e)?Czn(e,t):ee.IsDate(e)?Mzn(e,t):ee.IsFunction(e)?Dzn(e,t):ee.IsInteger(e)?Lzn(e,t):ee.IsIntersect(e)?Uzn(e,t):ee.IsIterator(e)?jzn(e,t):ee.IsLiteral(e)?Fzn(e,t):ee.IsNever(e)?Hzn(e,t):ee.IsNull(e)?Bzn(e,t):ee.IsNumber(e)?Gzn(e,t):ee.IsObject(e)?Jzn(e,t):ee.IsRecord(e)?Qzn(e,t):ee.IsString(e)?e2n(e,t):ee.IsSymbol(e)?t2n(e,t):ee.IsTuple(e)?s2n(e,t):ee.IsPromise(e)?Xzn(e,t):ee.IsUint8Array(e)?o2n(e,t):ee.IsUndefined(e)?a2n(e,t):ee.IsUnion(e)?c2n(e,t):ee.IsUnknown(e)?u2n(e,t):ee.IsVoid(e)?d2n(e,t):XI(`Unknown left type operand '${e[Ne]}'`)}function v_(e,t){return Nr(e,t)}var whe,le,Nhe=v(()=>{$D();FT();qT();WI();JI();Rg();XD();Mt();Ph();Wpe();whe=class extends Zo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(le||(le={}))});function f2n(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=QI(e[o],t,n,r,bi(i));return s}function p2n(e,t,n,r,i){return f2n(e.properties,t,n,r,i)}function tmt(e,t,n,r,i){let s=p2n(e,t,n,r,i);return Jn(s)}var Phe=v(()=>{Eo();j3();Cu()});function h2n(e,t,n,r){let i=v_(e,t);return i===le.Union?gr([n,r]):i===le.True?n:r}function QI(e,t,n,r,i){return Ti(e)?tmt(e,t,n,r,i):Tl(e)?ue(nmt(e,t,n,r,i)):ue(h2n(e,t,n,r),i)}var j3=v(()=>{It();ro();Nhe();Che();Phe();Yn()});function m2n(e,t,n,r,i){return{[e]:QI(ar(e),t,n,r,bi(i))}}function g2n(e,t,n,r,i){return e.reduce((s,o)=>({...s,...m2n(o,t,n,r,i)}),{})}function y2n(e,t,n,r,i){return g2n(e.keys,t,n,r,i)}function nmt(e,t,n,r,i){let s=y2n(e,t,n,r,i);return Jn(s)}var Che=v(()=>{Eo();Du();j3();Cu()});var rmt=v(()=>{});var fL=v(()=>{Nhe();Che();Phe();rmt();j3()});function imt(e,t){return $I(BT(e),t)}var Mhe=v(()=>{F3();Rg()});function S2n(e,t){let n=e.filter(r=>v_(r,t)===le.False);return n.length===1?n[0]:gr(n)}function $I(e,t,n={}){return vl(e)?ue(imt(e,t),n):Ti(e)?ue(smt(e,t),n):ue(Vn(e)?S2n(e.anyOf,t):v_(e,t)!==le.False?Wn():e,n)}var F3=v(()=>{It();ro();Ra();fL();Dhe();Mhe();Yn()});function _2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=$I(e[r],t);return n}function E2n(e,t){return _2n(e.properties,t)}function smt(e,t){let n=E2n(e,t);return Jn(n)}var Dhe=v(()=>{Eo();F3()});var Lhe=v(()=>{Dhe();Mhe();F3()});function omt(e,t){return e0(BT(e),t)}var Uhe=v(()=>{H3();Rg()});function b2n(e,t){let n=e.filter(r=>v_(r,t)!==le.False);return n.length===1?n[0]:gr(n)}function e0(e,t,n){return vl(e)?ue(omt(e,t),n):Ti(e)?ue(amt(e,t),n):ue(Vn(e)?b2n(e.anyOf,t):v_(e,t)!==le.False?e:Wn(),n)}var H3=v(()=>{It();ro();Ra();fL();jhe();Uhe();Yn()});function T2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=e0(e[r],t);return n}function v2n(e,t){return T2n(e.properties,t)}function amt(e,t){let n=v2n(e,t);return Jn(n)}var jhe=v(()=>{Eo();H3()});var Fhe=v(()=>{jhe();Uhe();H3()});function cmt(e,t){return jf(e)?ue(e.returns,t):Wn(t)}var umt=v(()=>{It();Ra();Yn()});var Hhe=v(()=>{umt()});function q3(e){return Uu(uc(e))}var lmt=v(()=>{GT();vg()});var B3=v(()=>{lmt()});function VT(e,t,n){return ue({[Ne]:"Record",type:"object",patternProperties:{[e]:t}},n)}function qhe(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Nd]:"Record"})}function A2n(e,t,n){return Ypt(e)?qhe(Lu(e),t,n):VT(e.pattern,t,n)}function R2n(e,t,n){return qhe(Lu(gr(e)),t,n)}function w2n(e,t,n){return qhe([e.toString()],t,n)}function k2n(e,t,n){return VT(e.source,t,n)}function I2n(e,t,n){let r=Ms(e.pattern)?y_:e.pattern;return VT(r,t,n)}function x2n(e,t,n){return VT(y_,t,n)}function O2n(e,t,n){return VT(Apt,t,n)}function N2n(e,t,n){return Or({true:t,false:t},n)}function P2n(e,t,n){return VT(g_,t,n)}function C2n(e,t,n){return VT(g_,t,n)}function G3(e,t,n={}){return Vn(e)?R2n(e.anyOf,t,n):vl(e)?A2n(e,t,n):bl(e)?w2n(e.const,t,n):_g(e)?N2n(e,t,n):Hf(e)?P2n(e,t,n):qf(e)?C2n(e,t,n):qpe(e)?k2n(e,t,n):Eg(e)?I2n(e,t,n):Fpe(e)?x2n(e,t,n):h_(e)?O2n(e,t,n):Wn(n)}function z3(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function dmt(e){let t=z3(e);return t===y_?Bf():t===g_?Pd():Bf({pattern:t})}function V3(e){return e.patternProperties[z3(e)]}var fmt=v(()=>{It();Mt();Ra();qT();wl();WI();ro();Rg();XD();Dh();Wc();Yn()});var pL=v(()=>{fmt()});function M2n(e,t){return t.parameters=hL(e,t.parameters),t.returns=Gf(e,t.returns),t}function D2n(e,t){return t.parameters=hL(e,t.parameters),t.returns=Gf(e,t.returns),t}function L2n(e,t){return t.allOf=hL(e,t.allOf),t}function U2n(e,t){return t.anyOf=hL(e,t.anyOf),t}function j2n(e,t){return Ms(t.items)||(t.items=hL(e,t.items)),t}function F2n(e,t){return t.items=Gf(e,t.items),t}function H2n(e,t){return t.items=Gf(e,t.items),t}function q2n(e,t){return t.items=Gf(e,t.items),t}function B2n(e,t){return t.item=Gf(e,t.item),t}function G2n(e,t){let n=K2n(e,t.properties);return{...t,...Or(n)}}function z2n(e,t){let n=Gf(e,dmt(t)),r=Gf(e,V3(t)),i=G3(n,r);return{...t,...i}}function V2n(e,t){return t.index in e?e[t.index]:T_()}function W2n(e,t){let n=FI(t),r=Mu(t),i=Gf(e,t);return n&&r?q3(i):n&&!r?Uu(i):!n&&r?uc(i):i}function K2n(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:W2n(e,t[r])}),{})}function hL(e,t){return t.map(n=>Gf(e,n))}function Gf(e,t){return jf(t)?M2n(e,t):Ff(t)?D2n(e,t):Qi(t)?L2n(e,t):Vn(t)?U2n(e,t):Al(t)?j2n(e,t):Lf(t)?F2n(e,t):MT(t)?H2n(e,t):LT(t)?q2n(e,t):UT(t)?B2n(e,t):Ds(t)?G2n(e,t):jT(t)?z2n(e,t):Hpe(t)?V2n(e,t):t}function pmt(e,t){return Gf(t,jI(e))}var hmt=v(()=>{u3();JI();B3();GT();vg();wl();pL();Wc();Yn()});var Bhe=v(()=>{hmt()});function mmt(e){return ue({[Ne]:"Integer",type:"integer"},e)}var gmt=v(()=>{It();Mt()});var Ghe=v(()=>{gmt()});function Z2n(e,t,n){return{[e]:zf(ar(e),t,bi(n))}}function Y2n(e,t,n){return e.reduce((i,s)=>({...i,...Z2n(s,t,n)}),{})}function J2n(e,t,n){return Y2n(e.keys,t,n)}function ymt(e,t,n){let r=J2n(e,t,n);return Jn(r)}var zhe=v(()=>{Eo();WT();Du();Cu()});function X2n(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function Q2n(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function $2n(e){return e.toUpperCase()}function eVn(e){return e.toLowerCase()}function tVn(e,t,n){let r=zI(e.pattern);if(!HT(r))return{...e,pattern:Smt(e.pattern,t)};let o=[...sL(r)].map(u=>ar(u)),a=_mt(o,t),c=gr(a);return _3([c],n)}function Smt(e,t){return typeof e=="string"?t==="Uncapitalize"?X2n(e):t==="Capitalize"?Q2n(e):t==="Uppercase"?$2n(e):t==="Lowercase"?eVn(e):e:e.toString()}function _mt(e,t){return e.map(n=>zf(n,t))}function zf(e,t,n={}){return Tl(e)?ymt(e,t,n):vl(e)?tVn(e,t,n):Vn(e)?gr(_mt(e.anyOf,t),n):bl(e)?ar(Smt(e.const,t),n):ue(e,n)}var WT=v(()=>{It();Rg();zhe();Du();ro();Yn()});function Emt(e,t={}){return zf(e,"Capitalize",t)}var bmt=v(()=>{WT()});function Tmt(e,t={}){return zf(e,"Lowercase",t)}var vmt=v(()=>{WT()});function Amt(e,t={}){return zf(e,"Uncapitalize",t)}var Rmt=v(()=>{WT()});function wmt(e,t={}){return zf(e,"Uppercase",t)}var kmt=v(()=>{WT()});var Vhe=v(()=>{bmt();zhe();WT();vmt();Rmt();kmt()});function nVn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=A_(e[i],t,bi(n));return r}function rVn(e,t,n){return nVn(e.properties,t,n)}function Imt(e,t,n){let r=rVn(e,t,n);return Jn(r)}var Whe=v(()=>{Eo();W3();Cu()});function iVn(e,t){return e.map(n=>Khe(n,t))}function sVn(e,t){return e.map(n=>Khe(n,t))}function oVn(e,t){let{[t]:n,...r}=e;return r}function aVn(e,t){return t.reduce((n,r)=>oVn(n,r),e)}function cVn(e,t,n){let r=$i(e,[no,"$id","required","properties"]),i=aVn(n,t);return Or(i,r)}function uVn(e){let t=e.reduce((n,r)=>d3(r)?[...n,ar(r)]:n,[]);return gr(t)}function Khe(e,t){return Qi(e)?lc(iVn(e.allOf,t)):Vn(e)?gr(sVn(e.anyOf,t)):Ds(e)?cVn(e,t,e.properties):Or({})}function A_(e,t,n){let r=Cs(t)?uVn(t):t,i=Rl(t)?Lu(t):t,s=Ss(e),o=Ss(t);return Ti(e)?Imt(e,i,n):Tl(t)?xmt(e,t,n):s&&o?ri("Omit",[e,r],n):!s&&o?ri("Omit",[e,r],n):s&&!o?ri("Omit",[e,r],n):ue({...Khe(e,i),...n})}var W3=v(()=>{It();p3();zD();__();Du();Dh();Cd();ro();wl();Zhe();Whe();Yn();Wc()});function lVn(e,t,n){return{[t]:A_(e,[t],bi(n))}}function dVn(e,t,n){return t.reduce((r,i)=>({...r,...lVn(e,i,n)}),{})}function fVn(e,t,n){return dVn(e,t.keys,n)}function xmt(e,t,n){let r=fVn(e,t,n);return Jn(r)}var Zhe=v(()=>{Eo();W3();Cu()});var K3=v(()=>{Zhe();Whe();W3()});function pVn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=R_(e[i],t,bi(n));return r}function hVn(e,t,n){return pVn(e.properties,t,n)}function Omt(e,t,n){let r=hVn(e,t,n);return Jn(r)}var Yhe=v(()=>{Eo();Z3();Cu()});function mVn(e,t){return e.map(n=>Jhe(n,t))}function gVn(e,t){return e.map(n=>Jhe(n,t))}function yVn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function SVn(e,t,n){let r=$i(e,[no,"$id","required","properties"]),i=yVn(n,t);return Or(i,r)}function _Vn(e){let t=e.reduce((n,r)=>d3(r)?[...n,ar(r)]:n,[]);return gr(t)}function Jhe(e,t){return Qi(e)?lc(mVn(e.allOf,t)):Vn(e)?gr(gVn(e.anyOf,t)):Ds(e)?SVn(e,t,e.properties):Or({})}function R_(e,t,n){let r=Cs(t)?_Vn(t):t,i=Rl(t)?Lu(t):t,s=Ss(e),o=Ss(t);return Ti(e)?Omt(e,i,n):Tl(t)?Nmt(e,t,n):s&&o?ri("Pick",[e,r],n):!s&&o?ri("Pick",[e,r],n):s&&!o?ri("Pick",[e,r],n):ue({...Jhe(e,i),...n})}var Z3=v(()=>{It();p3();__();Cd();Du();wl();ro();Dh();zD();Yn();Wc();Xhe();Yhe()});function EVn(e,t,n){return{[t]:R_(e,[t],bi(n))}}function bVn(e,t,n){return t.reduce((r,i)=>({...r,...EVn(e,i,n)}),{})}function TVn(e,t,n){return bVn(e,t.keys,n)}function Nmt(e,t,n){let r=TVn(e,t,n);return Jn(r)}var Xhe=v(()=>{Eo();Z3();Cu()});var Y3=v(()=>{Xhe();Yhe();Z3()});function vVn(e,t){return ri("Partial",[ri(e,t)])}function AVn(e){return ri("Partial",[Lh(e)])}function RVn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=uc(e[n]);return t}function wVn(e,t){let n=$i(e,[no,"$id","required","properties"]),r=RVn(t);return Or(r,n)}function Pmt(e){return e.map(t=>Cmt(t))}function Cmt(e){return Uf(e)?vVn(e.target,e.parameters):Ss(e)?AVn(e.$ref):Qi(e)?lc(Pmt(e.allOf)):Vn(e)?gr(Pmt(e.anyOf)):Ds(e)?wVn(e,e.properties):DT(e)||_g(e)||Hf(e)||bl(e)||VD(e)||qf(e)||Eg(e)||WD(e)||KD(e)?e:Or({})}function t0(e,t){return Ti(e)?Mmt(e,t):ue({...Cmt(e),...t})}var Qhe=v(()=>{It();__();vg();wl();Cd();ro();zT();Tg();Mt();$he();Yn()});function kVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=t0(e[r],bi(t));return n}function IVn(e,t){return kVn(e.properties,t)}function Mmt(e,t){let n=IVn(e,t);return Jn(n)}var $he=v(()=>{Eo();Qhe();Cu()});var J3=v(()=>{$he();Qhe()});function xVn(e,t){return ri("Required",[ri(e,t)])}function OVn(e){return ri("Required",[Lh(e)])}function NVn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=$i(e[n],[Aa]);return t}function PVn(e,t){let n=$i(e,[no,"$id","required","properties"]),r=NVn(t);return Or(r,n)}function Dmt(e){return e.map(t=>Lmt(t))}function Lmt(e){return Uf(e)?xVn(e.target,e.parameters):Ss(e)?OVn(e.$ref):Qi(e)?lc(Dmt(e.allOf)):Vn(e)?gr(Dmt(e.anyOf)):Ds(e)?PVn(e,e.properties):DT(e)||_g(e)||Hf(e)||bl(e)||VD(e)||qf(e)||Eg(e)||WD(e)||KD(e)?e:Or({})}function n0(e,t){return Ti(e)?Umt(e,t):ue({...Lmt(e),...t})}var eme=v(()=>{It();__();wl();Cd();ro();zT();Mt();Tg();tme();Yn()});function CVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=n0(e[r],t);return n}function MVn(e,t){return CVn(e.properties,t)}function Umt(e,t){let n=MVn(e,t);return Jn(n)}var tme=v(()=>{Eo();eme()});var X3=v(()=>{tme();eme()});function DVn(e,t){return t.map(n=>Ss(n)?nme(e,n.$ref):kl(e,n))}function nme(e,t){return t in e?Ss(e[t])?nme(e,e[t].$ref):kl(e,e[t]):Wn()}function LVn(e){return ZI(e[0])}function UVn(e){return E_(e[0],e[1])}function jVn(e){return YI(e[0])}function FVn(e){return t0(e[0])}function HVn(e){return A_(e[0],e[1])}function qVn(e){return R_(e[0],e[1])}function BVn(e){return n0(e[0])}function GVn(e,t,n){let r=DVn(e,n);return t==="Awaited"?LVn(r):t==="Index"?UVn(r):t==="KeyOf"?jVn(r):t==="Partial"?FVn(r):t==="Omit"?HVn(r):t==="Pick"?qVn(r):t==="Required"?BVn(r):Wn()}function zVn(e,t){return HI(kl(e,t))}function VVn(e,t){return qI(kl(e,t))}function WVn(e,t,n){return BI(mL(e,t),kl(e,n))}function KVn(e,t,n){return Ch(mL(e,t),kl(e,n))}function ZVn(e,t){return lc(mL(e,t))}function YVn(e,t){return KI(kl(e,t))}function JVn(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:kl(e,t[r])}),{}))}function XVn(e,t){let[n,r]=[kl(e,V3(t)),z3(t)],i=jI(t);return i.patternProperties[r]=n,i}function QVn(e,t){return Ss(t)?{...nme(e,t.$ref),[no]:t[no]}:t}function $Vn(e,t){return Md(mL(e,t))}function eWn(e,t){return gr(mL(e,t))}function mL(e,t){return t.map(n=>kl(e,n))}function kl(e,t){return Mu(t)?ue(kl(e,$i(t,[Aa])),t):FI(t)?ue(kl(e,$i(t,[Df])),t):m_(t)?ue(QVn(e,t),t):Lf(t)?ue(zVn(e,t.items),t):MT(t)?ue(VVn(e,t.items),t):Uf(t)?ue(GVn(e,t.target,t.parameters)):jf(t)?ue(WVn(e,t.parameters,t.returns),t):Ff(t)?ue(KVn(e,t.parameters,t.returns),t):Qi(t)?ue(ZVn(e,t.allOf),t):LT(t)?ue(YVn(e,t.items),t):Ds(t)?ue(JVn(e,t.properties),t):jT(t)?ue(XVn(e,t)):Al(t)?ue($Vn(e,t.items||[]),t):Vn(t)?ue(eWn(e,t.anyOf),t):t}function tWn(e,t){return t in e?kl(e,e[t]):Wn()}function jmt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:tWn(e,n)}),{})}var Fmt=v(()=>{Sg();jpe();Tg();eL();A3();tL();nL();Dh();FT();Cd();aL();dL();wl();K3();Y3();Ra();J3();pL();X3();b_();ro();Mt();Yn()});function Hmt(e){return new rme(e)}var rme,qmt=v(()=>{Sg();Mt();Fmt();rme=class{constructor(t){let n=jmt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:ue(this.$defs[t],n)};return ue({[Ne]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var ime=v(()=>{qmt()});function Bmt(e,t){return ue({[Ne]:"Not",not:e},t)}var Gmt=v(()=>{It();Mt()});var sme=v(()=>{Gmt()});function zmt(e,t){return Ff(e)?Md(e.parameters,t):Wn()}var Vmt=v(()=>{b_();Ra();Yn()});var ome=v(()=>{Vmt()});function Wmt(e,t={}){Ms(t.$id)&&(t.$id=`T${nWn++}`);let n=jI(e({[Ne]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,ue({[Nd]:"Recursive",...n},t)}var nWn,Kmt=v(()=>{u3();It();Wc();Mt();nWn=0});var ame=v(()=>{Kmt()});function Zmt(e,t){let n=Kr(e)?new globalThis.RegExp(e):e;return ue({[Ne]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var Ymt=v(()=>{It();Wc();Mt()});var cme=v(()=>{Ymt()});function rWn(e){return Qi(e)?e.allOf:Vn(e)?e.anyOf:Al(e)?e.items??[]:[]}function Jmt(e){return rWn(e)}var Xmt=v(()=>{Yn()});var ume=v(()=>{Xmt()});function Qmt(e,t){return Ff(e)?ue(e.returns,t):Wn(t)}var $mt=v(()=>{It();Ra();Yn()});var lme=v(()=>{$mt()});var egt=v(()=>{});var tgt=v(()=>{});var ngt=v(()=>{egt();tgt()});var rgt=v(()=>{});var igt=v(()=>{rgt()});function sgt(e){return new dme(e)}var dme,fme,ogt=v(()=>{Mt();Yn();dme=class{constructor(t){this.schema=t}Decode(t){return new fme(this.schema,t)}},fme=class{constructor(t,n){this.schema=t,this.decode=n}EncodeTransform(t,n){let s={Encode:o=>n[no].Encode(t(o)),Decode:o=>this.decode(n[no].Decode(o))};return{...n,[no]:s}}EncodeSchema(t,n){let r={Decode:this.decode,Encode:t};return{...n,[no]:r}}Encode(t){return m_(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var pme=v(()=>{ogt()});function agt(e={}){return ue({[Ne]:e[Ne]??"Unsafe"},e)}var cgt=v(()=>{It();Mt()});var hme=v(()=>{cgt()});function ugt(e){return ue({[Ne]:"Void",type:"void"},e)}var lgt=v(()=>{It();Mt()});var mme=v(()=>{lgt()});var gme={};Rr(gme,{Any:()=>S_,Argument:()=>Lpt,Array:()=>HI,AsyncIterator:()=>qI,Awaited:()=>ZI,BigInt:()=>VI,Boolean:()=>y3,Capitalize:()=>Emt,Composite:()=>Oht,Const:()=>jht,Constructor:()=>BI,ConstructorParameters:()=>Hht,Date:()=>R3,Enum:()=>Bht,Exclude:()=>$I,Extends:()=>QI,Extract:()=>e0,Function:()=>Ch,Index:()=>E_,InstanceType:()=>cmt,Instantiate:()=>pmt,Integer:()=>mmt,Intersect:()=>lc,Iterator:()=>KI,KeyOf:()=>YI,Literal:()=>ar,Lowercase:()=>Tmt,Mapped:()=>yht,Module:()=>Hmt,Never:()=>Wn,Not:()=>Bmt,Null:()=>k3,Number:()=>Pd,Object:()=>Or,Omit:()=>A_,Optional:()=>uc,Parameters:()=>zmt,Partial:()=>t0,Pick:()=>R_,Promise:()=>T3,Readonly:()=>Uu,ReadonlyOptional:()=>q3,Record:()=>G3,Recursive:()=>Wmt,Ref:()=>Lh,RegExp:()=>Zmt,Required:()=>n0,Rest:()=>Jmt,ReturnType:()=>Qmt,String:()=>Bf,Symbol:()=>x3,TemplateLiteral:()=>_3,Transform:()=>sgt,Tuple:()=>Md,Uint8Array:()=>C3,Uncapitalize:()=>Amt,Undefined:()=>N3,Union:()=>gr,Unknown:()=>T_,Unsafe:()=>agt,Uppercase:()=>wmt,Void:()=>ugt});var dgt=v(()=>{$D();Ype();eL();tL();A3();oL();S3();Ehe();The();nL();vhe();w3();Ahe();Lhe();fL();Fhe();FT();Dh();Hhe();Bhe();Ghe();Cd();Vhe();aL();dL();Du();Eo();ime();Ra();sme();I3();qT();wl();K3();vg();ome();J3();Y3();v3();GT();B3();pL();ame();zT();cme();X3();ume();lme();WI();O3();Rg();pme();b_();M3();P3();ro();JI();hme();mme()});var I,fgt=v(()=>{dgt();I=gme});var bo=v(()=>{jpe();Sg();Ph();Wpe();vpt();XD();Ipt();QD();Mt();$D();eL();Ype();tL();A3();oL();S3();Ehe();The();nL();vhe();w3();Ahe();Lhe();fL();Fhe();FT();Dh();Hhe();Bhe();Ghe();Cd();aL();Vhe();dL();Du();ime();Eo();Ra();sme();I3();qT();wl();K3();vg();ome();J3();Y3();v3();GT();B3();pL();ame();zT();cme();X3();ume();lme();ngt();igt();WI();O3();Rg();pme();b_();M3();P3();ro();JI();hme();mme();fgt()});var iWn,yme,Sme=v(()=>{"use strict";bo();iWn=I.Object({at:I.String({description:"ISO 8601 timestamp the spec review was signed. Drift sweep walks `git log --since=` against the unit spec to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from legacy state. Real reviews omit this field."}))},{additionalProperties:!1}),yme=I.Object({at:I.String({description:"ISO 8601 timestamp the approval was signed. Drift sweep walks `git log --since=` against declared output paths to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from a legacy `status: completed` unit. Real approvals omit this field."}))},{additionalProperties:!1})});var pgt,He,wa=v(()=>{"use strict";pgt=_e(Fb(),1),He=new pgt.Ajv({allErrors:!0,strict:!1})});function Kc(e){switch(e){case"blocker":return 0;case"high":return 1;case"medium":return 2;case"low":return 3;default:return 2}}function hgt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return gL.includes(e)?Kc(e):Kc("high")}function r0(e){return typeof e!="string"||e.length===0?!0:Kc(e)<=hgt()}var Q3,gL,mgt,ggt,sWn,oWn,aWn,cWn,$3,_me,uWn,dci,yL,SL,ygt=v(()=>{"use strict";bo();wa();Q3=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],gL=["blocker","high","medium","low"];mgt="^(?:FB-)?\\d+$",ggt=["iterations","closed_at"],sWn=I.Object({unit:I.Union([I.String(),I.Null()],{description:"Unit name this feedback targets (e.g. 'unit-03-business-context'). Null when the FB is intent-scope (no specific unit). Set at create time, immutable thereafter \u2014 to retarget, reject and create a new FB."}),invalidates:I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. Examples: ['user'] (user re-review needed), ['code-reviewer', 'spec'] (those two reviewers re-sign), [] (no invalidation \u2014 closure is informational only). Default is the role of the FB's filer (e.g. user-chat \u2192 ['user'], adversarial-review \u2192 [])."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the classification choice. Set by the classifier fix-hat via haiku_feedback_set_targets when the FB lands without targets (typical of user-authored FBs). Surfaced in the SPA so reviewers can see why the classifier routed the way it did."}))},{additionalProperties:!1}),oWn=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),aWn=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...Q3]})),severity:I.Optional(I.String({enum:[...gL]})),author:I.Optional(I.String()),author_type:I.Optional(I.String({enum:["agent","human","system"]})),created_at:I.Optional(I.String()),source_ref:I.Optional(I.Union([I.String(),I.Null()])),attachment:I.Optional(I.String()),inline_anchor:I.Optional(I.Object({},{additionalProperties:!0})),targets:I.Optional(sWn),closure_reply:I.Optional(oWn),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...ggt]}},additionalProperties:!0}),cWn=I.Object({selected_text:I.String({minLength:1,maxLength:1e3,description:"The literal text excerpt the feedback anchors to. The SPA greps the rendered artifact body for this string, so it must match the source verbatim (including whitespace inside the span)."}),paragraph:I.Integer({minimum:0,maximum:1e4,description:"Zero-based paragraph index in the rendered artifact body. Used as a tiebreaker when the same selected_text appears more than once."}),location:I.String({maxLength:500,description:"Human-readable label rendered on the feedback card (e.g. 'Unit: Threat model and security hardening'). Display only \u2014 not used for routing."}),comment_id:I.Optional(I.String({maxLength:200,description:"Optional DOM id the SPA can scroll-to. Defaulted by the engine when omitted."})),file_path:I.Optional(I.String({maxLength:1e3,description:"Repo-relative path to the artifact file (e.g. .haiku/intents//stages//units/.md). The SPA parses this to route to the right tab; agents can grep it for selected_text to land on the line."})),content_sha:I.Optional(I.String({maxLength:64,description:"Optional sha of the artifact's raw body at the time of anchoring. The SPA uses it to paint stale highlights when the body has drifted since."}))},{additionalProperties:!1}),$3=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit (or pass empty) to log an intent-scope finding."})),title:I.String({minLength:1,maxLength:120,description:"Short title for the feedback item (max 120 chars)."}),body:I.String({minLength:1,description:"Markdown body describing the finding."}),severity:I.String({enum:[...gL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${gL.join(" | ")}. blocker = stops the gate, fix first; high = fix before delivery; medium = should fix; low = nice-to-have / nit. The fix-loop dispatches higher-severity findings first.`}),origin:I.Optional(I.String({enum:[...Q3],description:`Source of the feedback. One of: ${Q3.join(" | ")} (default: agent).`})),source_ref:I.Optional(I.String({description:"Optional reference \u2014 review-agent name, annotation ID, etc."})),author:I.Optional(I.String({description:"Who created it (default: agent)."})),inline_anchor:I.Optional(cWn),target_unit:I.Optional(I.Unsafe({type:["string","null"],description:"Unit this feedback targets. Null/omitted for intent-scope. Immutable post-create."})),target_invalidates:I.Optional(I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. Defaulted by handler from origin if omitted."})),state_file:I.Optional(I.String())},{additionalProperties:!1}),_me=He.compile($3),uWn=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:mgt}),reason:I.String({minLength:1,description:"Why the FB is being rejected. Persisted in the closing iteration's reason field."}),state_file:I.Optional(I.String())},{additionalProperties:!1}),dci=He.compile(uWn),yL=ggt,SL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var i0,Eme,e9,bme,t9,Tme,Sgt=v(()=>{"use strict";bo();wa();i0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),session_id:I.Optional(I.String({description:"Override the session ID to await. When omitted, the live review session for this intent is resolved from the in-memory registry (haiku_run_next passes it explicitly on the inline path). No session id is persisted to the repo."})),gate_context:I.Optional(I.String({description:"What this gate advances on approval \u2014 intent_completion | intent_review | elaborate_to_execute | stage_gate. Passed by haiku_run_next on the inline path so post-decision routing needs no repo-persisted pointer. Defaults to stage_gate when omitted."})),next_stage:I.Optional(I.Unsafe({type:["string","null"],description:"Stage to advance to on approval (non-final stage gate), or null. Passed by haiku_run_next on the inline path."})),next_phase:I.Optional(I.Unsafe({type:["string","null"],description:"Phase to advance to on approval (spec / intent_review gates), or null. Passed by haiku_run_next on the inline path."})),auto_open:I.Optional(I.Boolean({description:"Hard override on the local browser launch. Defaults to true. When true, the tool launches the review URL in the default browser only if NO SPA tab is already attached for this session \u2014 the live-websocket check is authoritative, so passing true never causes a duplicate tab. Set to false on hosts where the local-browser launch is known to fail (headless containers, sandboxed runners) \u2014 the tool will still complete the await, the user just has to follow the URL themselves."})),review_url:I.Optional(I.String({description:"Review URL to open. Optional. Pass the review_url from the gate_review action \u2014 if omitted, no browser will be launched but the await will still complete when the user submits a decision via the SPA."})),state_file:I.Optional(I.String({description:"Internal \u2014 session state file path for telemetry."}))},{additionalProperties:!1}),Eme=He.compile(i0),e9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by ask_user_visual_question."}),url:I.Optional(I.String({description:"Question URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),bme=He.compile(e9),t9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by pick_design_direction."}),intent_slug:I.Optional(I.String({description:"Intent slug \u2014 used for stage-branch reconciliation after the user selects an archetype. Optional: handler also resolves it from the session record. Pass it explicitly to override."})),url:I.Optional(I.String({description:"Direction URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Tme=He.compile(t9)});var _L,s0,vme,_gt=v(()=>{"use strict";bo();wa();_L=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],s0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[..._L],description:"Which admin op to run: force_stage_complete, set_intent_field, reset_drift, mutate_feedback, preview_cursor."}),reason:I.Optional(I.String({description:"Why you're running this admin op \u2014 the cause that led here (e.g. 'cursor stuck on stage `design` after a manual branch edit; force-completing to unblock'). Surfaced verbatim to the user at the top of the confirmation picker so they have the context to approve or cancel. Plain prose, not a status code."})),stage:I.Optional(I.String({description:"Target stage (force_stage_complete, mutate_feedback)."})),field:I.Optional(I.String({description:"intent.md FM key (set_intent_field)."})),value:I.Optional(I.Unsafe({type:["string","array","number","boolean","null","object"],description:"intent.md FM value (set_intent_field)."})),feedback_id:I.Optional(I.String({description:"Feedback ID to mutate (mutate_feedback). For batch mutations, use feedback_ids instead."})),feedback_ids:I.Optional(I.Array(I.String(),{description:"Batch form of feedback_id \u2014 array of FB IDs to mutate in a single call (mutate_feedback). The same `patch` is applied to every FB in the list. Use this instead of firing the picker confirmation per-FB."})),patch:I.Optional(I.Object({},{additionalProperties:!0,description:"FB FM keys to set (mutate_feedback). Example: { closed_at: '2026-...', closed_by: 'manual_review' }."})),fields:I.Optional(I.Object({},{additionalProperties:!0,description:"Batch form of field/value \u2014 object of intent.md FM keys to set in a single call (set_intent_field). Example: { mode: 'autopilot', archived: false }."})),close_open_feedback:I.Optional(I.Boolean({description:'force_stage_complete only. When true, also stamps `closed_at` + `closed_by: "force_complete"` on every open FB on the targeted stages (and on intent scope when the final stage is the target). Open FBs otherwise continue blocking the cursor even after every approval is signed.'})),unit:I.Optional(I.String({description:"Unit slug or filename stem (set_unit_iterations). Example: 'unit-03-my-thing' or 'unit-03'."})),iterations:I.Optional(I.Array(I.Object({hat:I.String({minLength:1}),result:I.String({enum:["advance","reject"]}),at:I.Optional(I.String())},{additionalProperties:!0}),{description:"Explicit iterations[] array to write (set_unit_iterations). Omit to auto-synthesize one `advance` entry per hat in the stage's `hats:` sequence \u2014 the typical recovery shape when a legacy unit has no iterations but its outputs landed."}))},{additionalProperties:!1}),vme=He.compile(s0)});var o0,Ame,Egt=v(()=>{"use strict";bo();wa();o0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),stage:I.String({minLength:1,description:"Stage the discovery belongs to (e.g. `inception`, `design`)."}),template:I.String({minLength:1,description:"Discovery template name (matches the `discovery/.md` file under the studio's stage)."})},{additionalProperties:!1}),Ame=He.compile(o0)});var Uh,wg,n9,Rme,r9,wme,i9,kme,s9,Ime,o9,xme,a9,Ome,c9,Nme,u9,Pme,l9,Cme,d9,Mme,bgt=v(()=>{"use strict";bo();wa();Uh=I.Optional(I.String()),wg={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit for intent-scope feedback."})),feedback_id:I.Integer({minimum:1,maximum:999,description:"Feedback identifier \u2014 the numeric prefix of the FB on disk (e.g. for `008-output-discovery-\u2026md`, pass `8`). Just a number; no `FB-` prefix, no zero-padding, no string form. Range fits the on-disk `NNN-\u2026md` 3-digit padding (max 999, plenty of room). The handler does prefix-match lookup against `-*.md` \u2014 the agent never needs to know the slug part. Pre-2026-05-07 intents that used 2-digit padding (`08-\u2026md`) still resolve correctly; the lookup parses leading digits regardless of width."})},n9=I.Object({...wg,state_file:Uh},{additionalProperties:!1}),Rme=He.compile(n9),r9=I.Object({...wg,to_stage:I.String({description:"Target stage. Empty string for intent-scope. Same as `stage` to confirm placement; different to relocate."}),state_file:Uh},{additionalProperties:!1}),wme=He.compile(r9),i9=I.Object({...wg,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Uh},{additionalProperties:!1}),kme=He.compile(i9),s9=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit to list across all stages."})),closed:I.Optional(I.Boolean({description:"If true, list only closed feedback (closed_at != null). If false, list only open feedback (closed_at == null). Omit to list both."})),state_file:Uh},{additionalProperties:!1}),Ime=He.compile(s9),o9=I.Object({...wg,state_file:Uh},{additionalProperties:!1}),xme=He.compile(o9),a9=I.Object({...wg,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Uh},{additionalProperties:!1}),Ome=He.compile(a9),c9=I.Object({...wg,target_unit:I.Unsafe({type:["string","null"],description:"Unit slug this FB targets (e.g. 'unit-03-business-context'), or null for intent-scope. Set once; subsequent calls are rejected."}),target_invalidates:I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. e.g. ['user'] for user-recoverable findings, ['code-reviewer', 'spec'] for cross-role invalidation. Empty array is allowed (informational closure with no rerun)."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the classification choice. Stored on `targets.reasoning` and surfaced in the SPA next to the target so reviewers can see WHY the classifier picked this target_unit / target_invalidates combo. Encouraged for non-obvious classifications (e.g. cross-cutting findings routed to intent-scope)."})),state_file:Uh},{additionalProperties:!1}),Nme=He.compile(c9),u9=I.Object({...wg,severity:I.String({enum:["blocker","high","medium","low"],description:"Finding urgency. blocker = stops the gate, fix first; high = fix before delivery; medium = should fix; low = nice-to-have / nit. Set once; subsequent calls on an already-classified FB are rejected."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the severity choice. Surfaced in the SPA next to the badge so reviewers see WHY the classifier ranked it this way. Encouraged for non-obvious calls (e.g. a low-looking finding bumped to blocker because it gates a downstream unit)."})),state_file:Uh},{additionalProperties:!1}),Pme=He.compile(u9),l9=I.Object({...wg,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next fix-hat. State what you did about the finding, what you concluded, and what the next hat needs to know to pick up cleanly. Recorded on this iteration and embedded in the next fix-hat's dispatch. Distinct from `reply` (the requester-facing closure note); this is the inter-hat baton."}),reply:I.Optional(I.String({description:"REQUIRED when this advance closes the feedback (terminal hat in fix_hats). A short plain-language explanation of what was changed, written to the requester. Stored on the FB frontmatter as `closure_reply` and surfaced in the SPA review timeline. Mid-chain advances may omit it."})),resolution:I.Optional(I.String({enum:["non_actionable"],description:"Set to `non_actionable` to TERMINAL-CLOSE this finding immediately from ANY hat, short-circuiting the rest of the fix_hats chain. Use ONLY when the finding is valid but has no code fix \u2014 a question you can answer in `message`/`reply`, an out-of-scope/process note, or an immutable/already-superseded target. The FB closes as `non_actionable` (distinct from a fixed-closure and from `haiku_feedback_reject`'s invalid-rejection) and is never re-dispatched. Omit for a normal advance."})),state_file:Uh},{additionalProperties:!1}),Cme=He.compile(l9),d9=I.Object({...wg,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the fix-hat that gets re-run. Explain why the current hat's work was rejected AND what must change to pass. Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:Uh},{additionalProperties:!1}),Mme=He.compile(d9)});var f9,EL,p9,Dme,h9,Lme,m9,Ume,Tgt=v(()=>{"use strict";bo();wa();f9=I.Optional(I.String()),EL=I.Object({title:I.String({description:'Short human-readable title (3\u20138 words, max 80 chars, single line, no trailing period). Must be a deliberate summary \u2014 NOT the first 80 chars of the description. Good: "Add archivable intents". Bad: "Add archivable intents to H\xB7AI\xB7K\xB7U. Users need a way to soft-hide\u2026".'}),description:I.String({description:"Full description of what the intent is about (2\u20135 sentences covering scope, motivation, and constraints). Stored verbatim in the intent body."}),studio_candidates:I.Array(I.String(),{description:"REQUIRED. The 2\u20134 studios (canonical name, slug, or alias) that best fit the description \u2014 pre-narrows the studio picker. Fetch the options from `haiku_studio_list` (name + description per studio) and pick the closest matches. At least one must resolve; the picker still shows the rest behind a 'Show all studios\u2026' expansion. Omitting it is rejected with instructions to fetch the list and retry."}),slug:I.Optional(I.String({description:"URL-friendly slug for the intent (auto-generated from title if not provided)"})),context:I.Optional(I.String({description:"Conversation context summary \u2014 highlights from the conversation that led to this intent"})),state_file:f9},{additionalProperties:!1}),p9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:f9},{additionalProperties:!1}),Dme=He.compile(p9),h9=I.Object({include_archived:I.Optional(I.Boolean({description:"When true, include archived intents in the result and add an 'archived' field to each response object. Defaults to false."})),state_file:f9},{additionalProperties:!1}),Lme=He.compile(h9),m9=I.Object({intent:I.String({minLength:1}),field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must match the field's declared type in INTENT_FRONTMATTER_SCHEMA. Mismatches return `intent_field_type_mismatch`."}),state_file:f9},{additionalProperties:!1}),Ume=He.compile(m9)});var To,vgt,g9,jme,y9,Fme,S9,Hme,_9,qme,bL,TL,E9,Bme,b9,Gme,T9,zme,v9,Vme,A9,Wme,R9,Kme,w9,Zme,k9,Yme,I9,Jme,x9,Xme,O9,Qme,a0,$me,N9,ege,P9,tge,C9,nge,Agt=v(()=>{"use strict";bo();wa();To=I.Optional(I.String()),vgt=I.Object({state_file:To},{additionalProperties:!1}),g9=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String({description:"Stage name. Defaults to the intent's active_stage when omitted."})),rationale:I.String({minLength:1,description:"Rationale (\u226510 chars in handler check) explaining why this divergence is intentional."}),state_file:To},{additionalProperties:!1}),jme=He.compile(g9),y9=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),no_decisions:I.Optional(I.Boolean()),decision:I.Optional(I.String()),options:I.Optional(I.Array(I.String())),choice:I.Optional(I.String()),source:I.Optional(I.String({enum:["user","autonomous-acknowledged"],description:"Who made the call. user = user picked from agent-presented options. autonomous-acknowledged = agent chose and surfaced for veto-style approval."})),rationale:I.Optional(I.String()),state_file:To},{additionalProperties:!1}),Fme=He.compile(y9),S9=I.Object({intent:I.String({minLength:1}),state_file:To},{additionalProperties:!1}),Hme=He.compile(S9),_9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:To},{additionalProperties:!1}),qme=He.compile(_9),bL=vgt,TL=He.compile(vgt),E9=I.Object({studio:I.String({minLength:1}),state_file:To},{additionalProperties:!1}),Bme=He.compile(E9),b9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:To},{additionalProperties:!1}),Gme=He.compile(b9),T9=I.Object({field:I.String({minLength:1,description:"Dot-separated path (e.g. 'studio', 'providers.ticketing.type', 'providers.spec.config.space')"}),state_file:To},{additionalProperties:!1}),zme=He.compile(T9),v9=I.Object({field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must validate against the field's declared shape in settings.schema.json. Pass null to delete."}),state_file:To},{additionalProperties:!1}),Vme=He.compile(v9),A9=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:To},{additionalProperties:!1}),Wme=He.compile(A9),R9=I.Object({task:I.String({minLength:1,description:"The work to run through the stage's hat loop."}),studio:I.Optional(I.String({description:"Studio slug (e.g. `software`). Defaults to `software` when omitted and present."})),stage:I.Optional(I.String({description:"Stage within the studio (e.g. `development`). Defaults to the studio's build-class execution stage when omitted."})),state_file:To},{additionalProperties:!1}),Kme=He.compile(R9),w9=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:To},{additionalProperties:!1}),Zme=He.compile(w9),k9=I.Object({intent:I.Optional(I.String({description:"Optional intent slug. Defaults to the sole active intent."})),stage:I.Optional(I.String({description:"Optional stage name. Defaults to the intent's active_stage."})),gate_kind:I.Optional(I.String({enum:["spec","approval"],description:"When set, opens the review pane as a workflow-bound gate session (vs. ad-hoc). 'spec' = pre-execute spec review (stamps reviews.user). 'approval' = post-execute output approval (stamps approvals.user)."})),units:I.Optional(I.Array(I.String(),{description:"Unit identifiers the user is gating. Surfaced by the cursor's user_gate action; ignored when gate_kind is unset."})),state_file:To},{additionalProperties:!1}),Yme=He.compile(k9),I9=I.Object({action:I.Optional(I.String({enum:["list","add","review","promote"],description:"Defaults to `list`."})),description:I.Optional(I.String({description:"Description for the new backlog item (used with action=add)."})),state_file:To},{additionalProperties:!1}),Jme=He.compile(I9),x9=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:To},{additionalProperties:!1}),Xme=He.compile(x9),O9=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:To},{additionalProperties:!1}),Qme=He.compile(O9),a0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name to reset (e.g. 'product')"})},{additionalProperties:!1}),$me=He.compile(a0),N9=I.Object({intent:I.Optional(I.String({description:"Specific intent slug to scan in cwd (skips multi-branch mode)"})),apply:I.Optional(I.Boolean()),skip_branches:I.Optional(I.Boolean()),state_file:To},{additionalProperties:!1}),ege=He.compile(N9),P9=I.Object({intent:I.String({minLength:1,description:"Intent slug to scope the view session. The SPA will only serve files under this intent's directory."}),stage:I.Optional(I.String({description:"Optional stage name to narrow the artifact list. Defaults to the intent's active_stage when omitted."})),artifact:I.Optional(I.String({description:"Optional intent-relative path to deep-link the SPA to a single artifact file (e.g. `stages/design/artifacts/wireframe.svg`). When omitted the SPA lists every artifact in scope."})),mode:I.Optional(I.String({enum:["auto","viewer","boot"],description:"Mode preference. `auto` (default) tries boot first and falls back to viewer. `boot` forces a spawned dev server and hard-fails when no `command` is supplied and no fast-path is detected. `viewer` forces the SPA artifact-browser route."})),command:I.Optional(I.Array(I.String({minLength:1}),{minItems:1,description:'Single-process boot \u2014 explicit command argv (e.g. `["uvicorn", "app:main"]`, `["bin/dev"]`, `["go", "run", "./cmd/server"]`). Engine spawns with `PORT` + `HOST` env vars set so the dev server binds where the supervisor expects. Use this for one-process apps. For monorepos / stacks (api + frontend + db + worker), use `processes` instead.'})),cwd:I.Optional(I.String({description:"Working directory for `command`, relative to the intent dir. Defaults to the intent dir when omitted. Ignored when `processes` is supplied (each process declares its own cwd)."})),processes:I.Optional(I.Array(I.Object({name:I.String({minLength:1,pattern:"^[a-zA-Z][a-zA-Z0-9_-]*$",description:"Identifier for this process. Used to build service-discovery env vars (`_PORT`, `_URL`) injected into dependents, and as the `primary` selector. Lowercase letters / digits / `-` / `_`; must start with a letter."}),command:I.Array(I.String({minLength:1}),{minItems:1,description:'Argv for this process (e.g. `["npm", "run", "api"]`, `["redis-server"]`, `["docker", "compose", "up", "postgres"]`).'}),cwd:I.Optional(I.String({description:'Working directory for this process, relative to the intent dir. Defaults to the intent dir when omitted (e.g. `"backend"` for `packages/backend/` in a monorepo).'})),port_env:I.Optional(I.String({minLength:1,description:'Env-var name the engine assigns the allocated ephemeral port to. Defaults to `PORT`. Override when the process expects a different name (e.g. `"RAILS_PORT"`, `"API_PORT"`).'})),ready_url:I.Optional(I.String({description:'Optional HTTP URL the supervisor polls to confirm this process is ready before starting dependents (e.g. `"http://127.0.0.1:{port}/healthz"`). Use `{port}` as the placeholder for the allocated port. Falls back to TCP port-bind detection when omitted.'})),depends_on:I.Optional(I.Array(I.String({minLength:1}),{description:"Names of processes that must be ready before this one starts. The supervisor topologically sorts the graph and starts processes in dependency order. Each dependency's `_PORT` and `_URL` env vars are injected into this process's env so the runtime can do service discovery (e.g. an API depending on `db` sees `DB_PORT` + `DB_URL`)."})),no_port:I.Optional(I.Boolean({description:"Set true for processes that don't listen on a TCP port (queue workers, background daemons, schedulers). The supervisor still tracks lifecycle but skips port allocation and readiness checking."}))},{additionalProperties:!1}),{minItems:1,description:"Process group \u2014 boot multiple coordinated processes (api + frontend + db + worker etc.). The supervisor allocates an ephemeral port per process (unless `no_port`), starts them in dependency order, waits for each to be ready, and exposes `_PORT` + `_URL` env vars to every dependent. Killing the session kills the whole group. Mutually exclusive with `command`."})),primary:I.Optional(I.String({minLength:1,description:"Name of the process whose URL is returned as the top-level `url` field \u2014 i.e., the one Playwright drives. Required when `processes` has more than one port-bound entry. Ignored for single-process boots."})),state_file:To},{additionalProperties:!1}),tge=He.compile(P9),C9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:To},{additionalProperties:!1}),nge=He.compile(C9)});var c0,rge,Rgt=v(()=>{"use strict";bo();wa();c0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),kind:I.String({enum:["review","approval"],description:"Which witness to stamp: `review` (PRE-execute spec audit) or `approval` (POST-execute work audit). Matches the dispatch phase your subagent ran under."}),role:I.String({minLength:1,description:"Your review role (e.g. `continuity`, `cross-stage-consistency`, `completeness`, `spec`, or a studio review-agent name). Stamps `reviews.` / `approvals.`."}),stage:I.String({minLength:1,description:"Stage the review/approval belongs to."})},{additionalProperties:!1}),rge=He.compile(c0)});var u0,ige,l0,sge,d0,oge,wgt=v(()=>{"use strict";bo();wa();u0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Studio names to present in the picker. Empty/omitted = every available studio. Single element = auto-select without prompting."}))},{additionalProperties:!1}),ige=He.compile(u0),l0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Mode names to present in the picker (continuous, discrete, autopilot, quick). Empty/omitted = every mode valid for the intent's current state. Single element = auto-select without prompting."}))},{additionalProperties:!1}),sge=He.compile(l0),d0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Stage name to auto-select (zero or one element \u2014 quick mode is single-stage by definition)."}))},{additionalProperties:!1}),oge=He.compile(d0)});var kgt,f0,age,p0,cge,h0,uge,M9,lge,D9,dge,m0,fge,Igt=v(()=>{"use strict";bo();wa();kgt=I.Optional(I.String()),f0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),body:I.String({minLength:1,description:"Markdown body of the captured conversation. Should summarize what the agent proposed, what the user clarified, and the final agreement. Anchored on specific intent content."})},{additionalProperties:!1}),age=He.compile(f0),p0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the `elaborate_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded as the seal's rationale. Stored on FM as `verified_notes`."}))},{additionalProperties:!1}),cge=He.compile(p0),h0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the `decompose_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded as the seal's rationale. Stored on FM as `decompose_verified_notes`."}))},{additionalProperties:!1}),uge=He.compile(h0),M9=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:kgt},{additionalProperties:!1}),lge=He.compile(M9),D9=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must match the field's declared type."}),state_file:kgt},{additionalProperties:!1}),dge=He.compile(D9),m0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the pre-intent `elaborate_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded on intent FM as `verified_notes`."}))},{additionalProperties:!1}),fge=He.compile(m0)});var L9,pge,U9,hge,j9,mge,F9,gge,H9,yge,q9,Sge,B9,_ge,xgt=v(()=>{"use strict";bo();wa();L9=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),hat:I.String({minLength:1,description:"Hat name"}),fix:I.Optional(I.Boolean({description:"When true, resolve the fix-loop-scoped mandate (stages//fix-hats/.md, falling back to the production hats/.md when absent). Use ONLY from fix-loop dispatches; omit for production hat work."}))},{additionalProperties:!1}),pge=He.compile(L9),U9=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),hge=He.compile(U9),j9=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),mge=He.compile(j9),F9=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.Optional(I.String({minLength:1,description:"Stage name for a stage-scope review/approval agent. OMIT for an intent-completion review agent (resolved from the studio's intent-review-agents/)."})),role:I.String({minLength:1,description:"Review-agent role name"})},{additionalProperties:!1}),gge=He.compile(F9),H9=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),template:I.String({minLength:1,description:"Discovery template name (no .md extension)"})},{additionalProperties:!1}),yge=He.compile(H9),q9=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),phase:I.String({minLength:1,description:"Phase name (e.g. ELABORATION). Case-insensitive \u2014 resolved as phases/.md."})},{additionalProperties:!1}),Sge=He.compile(q9),B9=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),name:I.String({minLength:1,description:"Output template name (no .md extension)"})},{additionalProperties:!1}),_ge=He.compile(B9)});var G9,w_,z9,Ege,V9,bge,W9,Tge,vge,K9,Age,Z9,Rge,Y9,wge,J9,kge,X9,Ige,Q9,xge,g0,Oge,Ogt=v(()=>{"use strict";bo();wa();G9={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),unit:I.String({minLength:1,description:"Unit name (no .md extension). Convention: `unit-NNN-slug` (3-digit zero-pad, max 999). Legacy 2-digit names (`unit-01-foo`) still resolve via numeric-prefix matching \u2014 pass either width and the engine matches by `(number, slug)` parts."})},w_=I.Optional(I.String()),z9=I.Object({...G9,field:I.String({minLength:1,description:"Frontmatter field name. Must be agent-authorable per UNIT_FRONTMATTER_SCHEMA."}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"The field's new value. MUST match the field's declared type in UNIT_FRONTMATTER_SCHEMA \u2014 pass an array for array-typed fields, a string for string-typed, etc. Native types only; stringified JSON is rejected."}),state_file:w_},{additionalProperties:!1}),Ege=He.compile(z9),V9=I.Object({...G9,field:I.String({minLength:1,description:"Frontmatter field to read. Agent-authorable/corrective fields only (quality_gates, outputs, inputs, depends_on, model, closes, title, description). FSM-driven fields (iterations, reviews, approvals, started_at) return `unit_field_engine_only`."})},{additionalProperties:!1}),bge=He.compile(V9),W9=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:w_},{additionalProperties:!1}),Tge=He.compile(W9),vge=I.Optional(I.String({description:"Stage the unit lives on. OPTIONAL \u2014 when omitted, the handler resolves it from on-disk layout. Pass it through from the cursor's dispatched action to make this call race-safe against concurrent run_next calls that may switch the working tree."})),K9=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:vge,state_file:w_},{additionalProperties:!1}),Age=He.compile(K9),Z9=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:vge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next hat. State what you did, what you concluded, and what the next hat needs to know to pick up cleanly (decisions made, open questions, where you left off). Recorded on this iteration and embedded in the next hat's dispatch. Not a status line \u2014 write it for the hat that reads it next."}),state_file:w_},{additionalProperties:!1}),Rge=He.compile(Z9),Y9=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:vge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the hat that gets re-run. Explain why the current hat's output was rejected AND what must change to pass (e.g. 'touch targets <44px on mobile \u2014 bump to 44px min and re-check the nav row'). Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:w_},{additionalProperties:!1}),wge=He.compile(Y9),J9=I.Object({...G9,state_file:w_},{additionalProperties:!1}),kge=He.compile(J9),X9=I.Object({...G9,state_file:w_},{additionalProperties:!1}),Ige=He.compile(X9),Q9=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),unit:I.String({minLength:1,description:"Unit name without `.md` extension, e.g. `unit-001-foo`. Convention: `unit-NNN-slug` with 3-digit zero-padded number (max 999). Legacy 2-digit names (`unit-01-foo`) still resolve via numeric-prefix matching."}),body:I.String({description:"Full markdown body of the unit. Must be substantive (no placeholders like TBD, TODO, '...')."}),frontmatter:I.Optional(I.Object({},{additionalProperties:!0})),state_file:w_},{additionalProperties:!1}),xge=He.compile(Q9),g0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage the unit lives in"}),unit:I.String({minLength:1,description:"Unit to reset (e.g. 'unit-06-pii-masking-granularity')"})},{additionalProperties:!1}),Oge=He.compile(g0)});var Nge,lWn,$9,dWn,vL,y0,fWn,KT,ZT,eZ,Pge=v(()=>{"use strict";bo();wa();Sme();Nge=["plugin_version","started_at","approvals","sealed_at","mode","stages","archived","archived_at","draft_pr_url","draft_pr_status","draft_pr_ready_at","verified_at","verified_notes"],lWn=["draft","ready","failed"],$9=["continuous","discrete","autopilot","discrete-hybrid","quick"],dWn=I.Record(I.String(),I.Union([yme,I.Null()])),vL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...$9]})),skip_stages:I.Optional(I.Array(I.String())),studio:I.Optional(I.String()),studio_candidates:I.Optional(I.Array(I.String())),follows:I.Optional(I.String()),clarifications:I.Optional(I.Record(I.String(),I.Unknown())),draft_pr_url:I.Optional(I.String()),draft_pr_status:I.Optional(I.String({enum:[...lWn]})),draft_pr_ready_at:I.Optional(I.String()),verified_at:I.Optional(I.String()),verified_notes:I.Optional(I.String()),external_refs:I.Optional(I.Record(I.String(),I.String()))},{propertyNames:{not:{enum:[...Nge]}},additionalProperties:!0}),y0=He.compile(vL),fWn=new Set(Nge),KT=Object.keys(vL.properties??{}).filter(e=>!fWn.has(e)),ZT=Nge,eZ=["studio","plugin_version","follows"]});var pWn,Ngt=v(()=>{"use strict";bo();pWn=I.Object({hat:I.String({minLength:1,description:"Hat name (e.g. `researcher`, `distiller`, `verifier`, `feedback-assessor`). Must match a hat declared in the studio's stage hat sequence (or `fix_hats:` for feedback iterations)."}),started_at:I.String({description:"ISO 8601 timestamp when this hat dispatch began. Set when the iteration is appended."}),completed_at:I.Union([I.String(),I.Null()],{description:"ISO 8601 timestamp when this hat's terminal advance/reject landed. Null while the hat is in flight."}),result:I.Union([I.Literal("advance"),I.Literal("reject"),I.Null()],{description:"Outcome of this hat. `advance` = move to next hat (or close on terminal hat). `reject` = loop back to previous hat. Null while in flight."}),reason:I.Optional(I.Union([I.String(),I.Null()],{description:"Optional reason for the result. Required on `reject` (caller must explain what went wrong) and optional on `advance`."}))},{additionalProperties:!1})});var Cge,Mge,Pgt=v(()=>{"use strict";bo();Cge=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),Mge=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var tZ,Dge,Cgt=v(()=>{"use strict";bo();tZ=I.Object({stage:I.Optional(I.String()),status:I.Optional(I.String({enum:["pending","active","completed","blocked"]})),phase:I.Optional(I.String({enum:["","elaborate","execute","review","gate"]})),started_at:I.Optional(I.Union([I.String(),I.Null()])),completed_at:I.Optional(I.Union([I.String(),I.Null()])),gate_entered_at:I.Optional(I.Union([I.String(),I.Null()])),gate_outcome:I.Optional(I.Union([I.String(),I.Null()])),visits:I.Optional(I.Integer({minimum:0})),iterations:I.Optional(I.Array(I.Unknown())),elaboration_turns:I.Optional(I.Integer({minimum:0})),decision_log:I.Optional(I.Array(I.Unknown()))},{additionalProperties:!0}),Dge=Object.keys(tZ.properties??{})});var Dgt,Mgt,YT,kg,k_,Vf,Lgt=v(()=>{"use strict";bo();wa();Dgt=["started_at","iterations","reviews","approvals"],Mgt="^[^\\s:,]+(?:/[^\\s:,]+)*$",YT=I.Object({title:I.Optional(I.String({minLength:1,description:"Unit title \u2014 non-empty string. Defaults to first H1 in the body, or to the unit name."})),description:I.Optional(I.String({description:"Optional unit description."})),depends_on:I.Optional(I.Array(I.String(),{description:"Names of sibling units in the SAME stage that must complete before this one. Each entry must resolve to an actual sibling. No self-reference. No cycles. (Cross-sibling and cycle checks are runtime \u2014 they need the full stage DAG, not expressible in this schema.)"})),inputs:I.Optional(I.Array(I.String({pattern:Mgt}),{description:"Cross-stage inputs this unit reads \u2014 paths to artifacts produced by prior stages. Each entry MUST be a file/dir path (no whitespace, no colons or commas, no prose)."})),outputs:I.Optional(I.Array(I.String({pattern:Mgt}),{description:"Artifacts this unit produces. Each entry MUST be a real file path (no whitespace, no colons or commas, no prose) \u2014 the gate verifies the path exists on disk at unit completion. Use `inputs:` if you mean to declare what the unit READS; use the body's `## Completion Criteria` section if you mean to declare prose-style success conditions."})),quality_gates:I.Optional(I.Array(I.Object({name:I.String(),command:I.String(),dir:I.Optional(I.String())}),{description:"Build-class only: list of `{name, command, dir?}` executable gate objects. Run at terminal advance_hat time; non-zero exit blocks. Prose strings are silently skipped \u2014 they give no enforcement."})),model:I.Optional(I.String({enum:["haiku","sonnet","opus"],description:"Subagent tier for this unit's hats. `haiku` = mechanical, `sonnet` = standard (default), `opus` = deep reasoning. Cascade: unit > hat > stage > studio."})),closes:I.Optional(I.Array(I.String(),{description:"On revisit iterations, list of FB IDs this unit addresses (e.g. `[FB-01, FB-03]`). Informational \u2014 feedback closure happens via the FB's own iterations + targets.invalidates, not via this field."})),applicable_skills:I.Optional(I.Array(I.String(),{description:"Skill slugs (slash-command names without the leading `/`) identified as relevant for this unit during elaboration. The elaborator populates this from the installed skill registry. Hat subagent prompts surface these automatically so subagents know which skills to reach for."})),external_refs:I.Optional(I.Record(I.String(),I.String(),{description:"External-system references for this unit (e.g. `ticket: PROJ-123`, `design_ref: figma://...`). Populated by the agent when a workflow or source provider is active. Engine doesn't interpret values \u2014 they're the durable handle between H\xB7AI\xB7K\xB7U and the external system. (2026-05-19, provider-injection wave.)"}))},{propertyNames:{not:{enum:[...Dgt]}},additionalProperties:!0}),kg=He.compile(YT),k_=Object.keys(YT.properties??{}),Vf=Dgt});var es=v(()=>{"use strict";Sme();ygt();Sgt();_gt();Egt();bgt();Tgt();Agt();Rgt();wgt();Igt();xgt();Ogt();Pge();Ngt();Pgt();Cgt();Lgt()});var Fgt={};Rr(Fgt,{DIR_INVENTORY_SKIP:()=>iZ,bodyMatchesStoredHash:()=>AL,bodySha256:()=>Ig,buildApprovalRecord:()=>jd,buildOutputWitnesses:()=>gWn,buildReviewRecord:()=>Il,fileSha256:()=>S0,isTextBodyExtension:()=>rZ,normalizeInputPath:()=>RL,outputSha256:()=>I_,resolveInputWitnesses:()=>sZ});import{createHash as nZ}from"node:crypto";import{existsSync as JT,readdirSync as hWn,readFileSync as Lge,statSync as Ugt}from"node:fs";import{join as XT}from"node:path";function Ig(e){if(!JT(e))return"";let t=Lge(e,"utf8"),n=t;try{n=(0,Uge.default)(t).content}catch{n=t}return n.endsWith(` +`)}function DI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!ZD(t))return"";try{let{data:n}=re(f9(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function LI(e,t="subagents",n={}){return`Spawn each \`\` block below in a single message (parallel \`Task\` calls). When a ${t.replace(/s$/,"")} returns, do what its final message tells you \u2014 spawn the relayed \`\` block it carries, call \`haiku_run_next\`, or just acknowledge.`}function Mf(e,t){let{slug:n,stage:r}=t,i=r?`\`${r}\``:"the active stage",o=[{signal:"conversation",line:`**Capture (or extend) the conversation.** If alignment on substance for ${i} is already reached, call \`haiku_stage_elaboration_record\` now \u2014 the cursor's next tick fires the substance verifier without re-prompting for conversation.`},{signal:"verify_conversation",line:"**Dispatch the elaborate-substance verifier** if a conversation artifact exists but is unverified. Spawning the verifier in this same tick lets the next `haiku_run_next` advance past `elaborate_review` immediately."},{signal:"discovery",line:"**Fan out missing discovery subagents** for any `discovery/*.md` templates whose `location:` artifacts aren't on disk yet. Each subagent runs in its own isolation worktree and writes one file; the cursor's next tick skips `discovery_required` for every artifact already present."},{signal:"decompose",line:"**Draft units as scope crystallizes** via `haiku_unit_write`. Units written during the elaborate loop are first-class \u2014 the decompose-coverage verifier catches missing units and drift either way, so there's no penalty for landing them early."},{signal:"verify_decompose",line:`**Dispatch the decompose-coverage verifier** if units exist for ${i} but \`decompose_verified_at\` is missing on the elaboration artifact. Stacking it onto this tick lets the next \`haiku_run_next\` advance past \`decompose_review\` immediately.`}].filter(a=>a.signal!==e);return o.length===0?"":jft.renderString(fGn,{slug:n,concurrentLines:o.map(a=>a.line)})}var Fft,jft,dGn,fGn,ts=v(()=>{"use strict";gt();Fft=Se(Kt(),1);Ci();Ef();dE();ze();Kn();Tl();ht();Oft();Lh();jft=new Te({autoEscape:!1,useWith:!0}),dGn=ie("@canon:","_shared/inline-subagent-context.eta.md"),fGn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function m9(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=pGn.renderString(e.template(),e.templateVars({hat:t,terminal:n,worktree:r,mandateRef:i,priorRejectBlock:s}));return Ti({unit:e.dispatchId,hat:t,bolt:a,intent:e.slug,stage:e.emitStage,agentType:"general-purpose",model:o,promptBody:c,heading:e.heading(t)})}var pGn,Mpe=v(()=>{"use strict";gt();ts();pGn=new Te({autoEscape:!1,useWith:!0})});import{existsSync as Bft,readdirSync as Gft,readFileSync as zft}from"node:fs";import{join as UI}from"node:path";function hGn(){return Dpe===null&&(Dpe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),Dpe}function mGn(e){if(!zo.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?UI(ar(t,n),"feedback"):UI(pe(t),"feedback");try{let p=Bft(f)?Gft(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=zft(UI(f,p[0]),"utf8");o=(0,Lpe.default)(h).data.model}}catch{}}let a=n?Mu(r,n)?.[i]:jK(r)?.[i],c=n?$i(r,n):void 0,u=Od(r),l=lE({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function FI(e){let{slug:t,studio:n,feedbackId:r,stage:i,hat:s,terminal:o}=e,a=Number.parseInt(r.replace(/^FB-/i,""),10)||0,c=i||"intent",u=null,l=()=>{if(u)return u;let f=i?UI(ar(t,i),"feedback"):UI(pe(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(Bft(f)){let g=Gft(f).find(y=>y.startsWith(p)&&y.endsWith(".md"));if(g){let y=UI(f,g);h=PI(y);try{let E=(0,Lpe.default)(zft(y,"utf8")).data,_=(Array.isArray(E.iterations)?E.iterations:[]).reduce((b,T)=>{let A=T?.bolt;return typeof A=="number"&&A>b?A:b},0);m=_>0?_:1}catch{}}}return u={priorRejectBlock:h,bolt:m},u},d={slug:t,emitStage:i||void 0,dispatchId:`fix-${r}`,ensureWorktree:()=>_pe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?SI(n,i,f,!0):Wdt(n,f),toolName:"haiku_read_hat",toolArgs:i?{studio:n,stage:i,hat:f,fix:!0}:{studio:n,hat:f,fix:!0},intent:t,stage:i||void 0,kind:"mandate",name:f}),priorHandoffBlock:()=>l().priorRejectBlock,resolveModel:f=>mGn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>hGn(),templateVars:({hat:f,terminal:p,worktree:h,mandateRef:m,priorRejectBlock:g})=>({slug:t,hat:f,stage:i,feedbackId:r,fbInt:a,terminal:p,worktree:h,mandateRef:m,priorRejectBlock:g}),heading:f=>`### Subagent \u2014 \`${r}\` (stage \`${i||"(intent)"}\`, hat \`${f}\`)`};return m9(d,s,o)}var Lpe,Dpe,Upe=v(()=>{"use strict";Lpe=Se(Kt(),1);Ci();yr();dE();ze();Kn();Mpe();ts();ht();Dpe=null});function Fpe(e,t,n){let r=e.indexOf(t);if(n?.assessorToFirst&&n.assessorHat&&t===n.assessorHat)return{targetHat:e[0]??t,callingIdx:r,via:"assessor-to-first"};let i=n?.roleOf;if(n?.namedTarget){let o=e.indexOf(n.namedTarget);if(o>=0&&o=0;o--)if(i(e[o])==="build")return{targetHat:e[o],callingIdx:r,via:"nearest-build"}}return{targetHat:r>0?e[r-1]:e[0]??t,callingIdx:r,via:"step-back-one"}}var Vft=v(()=>{"use strict"});var Yft={};Rr(Yft,{computeStageDependents:()=>qpe,filterInputsByPlanStages:()=>Hpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>Sg,resolveStageHats:()=>_s,resolveStageMetadata:()=>zpe,resolveStageOptional:()=>JD,resolveStageReview:()=>Gpe,resolveStudioFilePath:()=>Lf,resolveStudioFixHats:()=>Uf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>Bpe});import{existsSync as Df,readdirSync as gGn,readFileSync as jpe}from"node:fs";import{join as Yr}from"node:path";function DT(e){if(!Df(e))return{};let t=jpe(e,"utf8"),{data:n}=re(t);return n}function Lf(e){for(let t of Cu()){let n=Yr(t,e);if(Df(n))return n}return null}function wn(e,t){let n=Fs(t),r=Array.isArray(e.stages)?e.stages.filter(i=>typeof i=="string"):[];if(r.length>0){let i=new Set(n);return r.filter(s=>i.has(s))}return n}function Hpe(e,t){let n=t instanceof Set?t:new Set(t);return e.filter(r=>n.has(r.stage))}function Fs(e){let t=si(e);if(t)return t.stages;let n=nn();for(let r of[Yr(process.cwd(),".haiku","studios"),Yr(n,"studios")]){let i=Yr(r,e,"STUDIO.md");if(Df(i))return DT(i).stages||[]}return[]}function _s(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Df(o))return DT(o).hats||[]}return[]}function Kft(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Df(o))return DT(o)}return{}}function JD(e,t){return Kft(e,t).optional===!0}function qpe(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=Kft(e,s),a=Array.isArray(o.inputs)?o.inputs.filter(u=>u.stage===t).map(u=>u.discovery??u.output??"?"):[],c=Array.isArray(o["review-agents-include"])?o["review-agents-include"].filter(u=>u.stage===t).flatMap(u=>Array.isArray(u.agents)?u.agents:[]):[];(a.length>0||c.length>0)&&i.push({stage:s,inputs:a,reviewAgents:c})}return i}function Uf(e){let t=si(e),n=t?t.dir:e,r=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(r,"studios")]){let o=Yr(s,n,"STUDIO.md");if(Df(o)){let c=DT(o).fix_hats;if(Array.isArray(c)&&c.length>0)return c.filter(u=>typeof u=="string");break}}let i=[];for(let s of[Yr(r,"fix-hats"),Yr(process.cwd(),".haiku","fix-hats"),Yr(r,"studios",n,"fix-hats"),Yr(process.cwd(),".haiku","studios",n,"fix-hats")])if(Df(s))for(let o of gGn(s).filter(a=>a.endsWith(".md"))){let a=o.replace(/\.md$/,"");i.includes(a)||i.push(a)}return i.sort()}function Sg(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Df(o)){let c=DT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function Bpe(e,t,n,r){let i=_s(e,t),s=pe(n),o=Yr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Df(o))return i;try{let{data:a}=re(jpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function Gpe(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Df(o)){let c=DT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function zpe(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Df(o)){let a=jpe(o,"utf8"),c=DT(o),{content:u}=(0,Wft.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var Wft,ns=v(()=>{"use strict";Wft=Se(Kt(),1);Ci();ze();Kn()});import{existsSync as Zft,readFileSync as Jft}from"node:fs";import{join as Wpe}from"node:path";function yGn(){return Vpe===null&&(Vpe=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),Vpe}function SGn(e){if(!zo.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=Wpe(ar(t,r),"units",`${s}.md`);if(Zft(a))try{let d=Jft(a,"utf8");o=(0,Kpe.default)(d).data.model}catch{}let c=r?Mu(n,r)?.[i]:void 0,u=r?$i(n,r):void 0,l=Od(n);return lE({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function EGn(e){let{slug:t,stage:n,unit:r}=e,i=Wpe(ar(t,n),"units",`${r}.md`);if(!Zft(i))return[];try{let s=(0,Kpe.default)(Jft(i,"utf8")).data;return(Array.isArray(s.iterations)?s.iterations:[]).filter(a=>a.result==="advance").map(a=>typeof a.hat=="string"?a.hat:"").filter(a=>a.length>0)}catch{return[]}}function jI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=Wpe(ar(t,i),"units",`${r}.md`),c=null,u=()=>c??=EGn({slug:t,stage:i,unit:r});return m9({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>mpe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>SI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>p9(a),resolveModel:d=>SGn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>yGn(),templateVars:({hat:d,terminal:f,worktree:p,mandateRef:h,priorRejectBlock:m})=>({slug:t,studio:n,stage:i,hat:d,unit:r,terminal:f,worktree:p,mandateRef:h,priorHatsInline:u(),priorRejectBlock:m}),heading:d=>`### Subagent \u2014 \`${r}\` (stage \`${i}\`, hat \`${d}\`)`},s,o)}var Kpe,Vpe,Ype=v(()=>{"use strict";Kpe=Se(Kt(),1);Ci();yr();dE();ze();Kn();Mpe();ts();ht();Vpe=null});function y9(e){let t=e.map(o=>({id:o.slug,status:o.frontmatter.status})),n=[],r=new Map;for(let o of e)r.set(o.slug,[]);let i=new Set(e.map(o=>o.slug)),s=[];for(let o of e){let a=o.frontmatter.depends_on??[];for(let c of a){if(!i.has(c)){s.push({unit:o.slug,dep:c});continue}n.push({from:c,to:o.slug});let u=r.get(c);u&&u.push(o.slug)}}return{nodes:t,edges:n,adjacency:r,unresolvedDeps:s.length>0?s:void 0}}function Qft(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function S9(e){let t=Qft(e),n=new Map;for(let i of t){let s=e.edges.filter(o=>o.to===i).map(o=>o.from);if(s.length===0)n.set(i,0);else{let o=Math.max(...s.map(a=>n.get(a)??0));n.set(i,o+1)}}let r=new Map;for(let[i,s]of n){let o=r.get(s)??[];o.push(i),r.set(s,o)}return r}function g9(e){return e.replace(/"/g,""").replace(/\[/g,"[").replace(/\]/g,"]").replace(//g,">")}function ju(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_");return/^[a-zA-Z]/.test(t)?t:`n_${t}`}function E9(e,t){let n=["graph TD"],r=new Set(t.map(l=>l.slug)),i=[],s=new Map;for(let l of t){let d=l.frontmatter.stage||"_root";s.has(d)||(s.set(d,[]),i.push(d)),s.get(d)?.push(l)}let o=i.length>1;if(o)for(let l of i){let d=s.get(l)||[],f=g9(l.charAt(0).toUpperCase()+l.slice(1));n.push(` subgraph ${ju(`stage_${l}`)}["${f}"]`);for(let p of d){let h=p.title||p.slug,m=g9(h),g=ju(p.slug);n.push(` ${g}["${m}"]`)}n.push(" end")}else{let l=S9(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let g=(l.get(h)??[]).map(y=>d.get(y)).filter(y=>y!==void 0);if(g.length!==0){p&&n.push(` subgraph ${ju(`wave_${h}`)}["Wave ${h}"]`);for(let y of g){let E=y.title||y.slug,S=g9(E),_=ju(y.slug);n.push(` ${_}["${S}"]`)}p&&n.push(" end")}}}if(o&&i.length>1)for(let l=0;l ${f}`)}let a=new Map;for(let l of t)a.set(l.slug,l.frontmatter.stage||"_root");for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to);d&&f&&d===f&&n.push(` ${ju(l.from)} --> ${ju(l.to)}`)}let c=new Set;for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to),p=!r.has(l.from),h=!r.has(l.to);p&&f&&(c.add(l.from),n.push(` ${ju(l.from)} --> ${ju(l.to)}`)),h&&d&&(c.add(l.to),n.push(` ${ju(l.from)} --> ${ju(l.to)}`))}for(let l of c){let d=ju(l),f=g9(l);n.push(` ${d}["${f} (external)"]:::external`)}let u=new Map;for(let l of e.nodes){if(c.has(l.id))continue;let d=u.get(l.status)??[];d.push(ju(l.id)),u.set(l.status,d)}for(let[l,d]of u){let f=Xft[l]??Xft.pending;n.push(` classDef ${l} ${f}`),n.push(` class ${d.join(",")} ${l}`)}return c.size>0&&n.push(" classDef external fill:#f5f5f5,stroke:#999,stroke-dasharray:5 5,color:#666"),n.join(` +`)}var Xft,Zpe=v(()=>{"use strict";Xft={completed:"fill:#166534,stroke:#14532d,color:#fff",active:"fill:#1e40af,stroke:#1e3a8a,color:#fff",in_progress:"fill:#1e40af,stroke:#1e3a8a,color:#fff",pending:"fill:#525252,stroke:#404040,color:#fff",blocked:"fill:#991b1b,stroke:#7f1d1d,color:#fff"}});import{existsSync as Jpe,readdirSync as $ft,readFileSync as _Gn,rmSync as bGn}from"node:fs";import{join as _9}from"node:path";function TGn(e){if(!Jpe(e))return{};let t=_Gn(e,"utf8"),{data:n}=re(t);return n}function XD(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function ept(e,t){if(!XD(e,t))return[];let n=_9(e,"stages",t,"feedback");if(!Jpe(n))return[];let r=[];for(let i of $ft(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{bGn(_9(n,i),{force:!0}),r.push(i)}catch{}return r}function vGn(e){let t=typeof e.started_at=="string"&&e.started_at.length>0,n=Array.isArray(e.iterations)?e.iterations:[],r=n.length>0?n[n.length-1]:null,i=e.approvals&&typeof e.approvals=="object"?e.approvals:{},s=Object.values(i).some(l=>l!==null&&l!==!1&&l!==void 0),o=r!==null&&(r.result==="advance"||r.result==="closed")&&typeof r.hat=="string",a;s||o?a="completed":t?a="active":a="pending";let c=r!==null&&typeof r.hat=="string"?r.hat:"",u=n.length;return{status:a,hat:c,bolt:u}}function Eg(e,t){let n=_9(e,"stages",t,"units");if(!Jpe(n))return[];let i=$ft(n).filter(o=>o.endsWith(".md")).map(o=>{let a=TGn(_9(n,o)),c=vGn(a);return{name:o.replace(".md",""),status:c.status,hat:c.hat,bolt:c.bolt,dependsOn:a.depends_on||[],depsComplete:!1}}),s=new Map(i.map(o=>[o.name,o.status]));for(let o of i)o.depsComplete=o.dependsOn.every(a=>s.get(a)==="completed");return i}function HI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=S9(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function qI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function b9(e,t){try{let n=Eg(e,t);if(n.length===0)return"";let r=n.length,i=n.filter(p=>p.status==="completed").length,s=n.filter(p=>p.status==="active").length,o=n.filter(p=>p.status==="pending").length,{unitWave:a,totalWaves:c}=HI(n),u=qI(n,a,c),l=new Map;for(let p of n){if(p.status!=="active")continue;let h=p.hat||"?";l.set(h,(l.get(h)??0)+1)}let d=[...l.entries()].map(([p,h])=>`${p}\xD7${h}`).join(", "),f=`pool \xB7 stage \`${t}\`: ${i}/${r} units done \xB7 ${s} in flight \xB7 ${o} pending`+(c>1?` \xB7 wave ${u+1}/${c}`:"");return d?`${f} + in flight by hat: ${d}`:f}catch{return""}}var T9=v(()=>{"use strict";Zpe();ze()});var hc={};Rr(hc,{HasPropertyKey:()=>v9,IsArray:()=>js,IsAsyncIterator:()=>Xpe,IsBigInt:()=>QD,IsBoolean:()=>_g,IsDate:()=>LT,IsFunction:()=>Qpe,IsIterator:()=>$pe,IsNull:()=>ehe,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>$D,IsString:()=>Zr,IsSymbol:()=>the,IsUint8Array:()=>bg,IsUndefined:()=>Hs});function v9(e,t){return t in e}function Xpe(e){return Ir(e)&&!js(e)&&!bg(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function QD(e){return typeof e=="bigint"}function _g(e){return typeof e=="boolean"}function LT(e){return e instanceof globalThis.Date}function Qpe(e){return typeof e=="function"}function $pe(e){return Ir(e)&&!js(e)&&!bg(e)&&Symbol.iterator in e}function ehe(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function $D(e){return e instanceof globalThis.RegExp}function Zr(e){return typeof e=="string"}function the(e){return typeof e=="symbol"}function bg(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Zc=v(()=>{});function AGn(e){return e.map(t=>A9(t))}function RGn(e){return new Date(e.getTime())}function wGn(e){return new Uint8Array(e)}function kGn(e){return new RegExp(e.source,e.flags)}function IGn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=A9(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=A9(e[n]);return t}function A9(e){return js(e)?AGn(e):LT(e)?RGn(e):bg(e)?wGn(e):$D(e)?kGn(e):Ir(e)?IGn(e):e}function vi(e){return A9(e)}var Hu=v(()=>{Zc()});function BI(e,t){return t===void 0?vi(e):vi({...t,...e})}var R9=v(()=>{Hu()});var nhe=v(()=>{R9();Hu()});function tpt(e){return e!==null&&typeof e=="object"}function npt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function rpt(e){return e===void 0}function ipt(e){return typeof e=="number"}var spt=v(()=>{});var opt=v(()=>{spt()});var w9,apt=v(()=>{opt();(function(e){e.InstanceMode="default",e.ExactOptionalPropertyTypes=!1,e.AllowArrayObject=!1,e.AllowNaN=!1,e.AllowNullVoid=!1;function t(o,a){return e.ExactOptionalPropertyTypes?a in o:o[a]!==void 0}e.IsExactOptionalProperty=t;function n(o){let a=tpt(o);return e.AllowArrayObject?a:a&&!npt(o)}e.IsObjectLike=n;function r(o){return n(o)&&!(o instanceof Date)&&!(o instanceof Uint8Array)}e.IsRecordLike=r;function i(o){return e.AllowNaN?ipt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=rpt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(w9||(w9={}))});function xGn(e){return globalThis.Object.freeze(e).map(t=>eL(t))}function OGn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=eL(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=eL(e[n]);return globalThis.Object.freeze(t)}function eL(e){return js(e)?xGn(e):LT(e)?e:bg(e)?e:$D(e)?e:Ir(e)?OGn(e):e}var cpt=v(()=>{Zc()});function de(e,t){let n=t!==void 0?{...t,...e}:e;switch(w9.InstanceMode){case"freeze":return eL(n);case"clone":return vi(n);default:return n}}var Nt=v(()=>{apt();cpt();Hu()});var Tg=v(()=>{Nt()});var Jo,upt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var Uh=v(()=>{upt()});var so,Ff,wa,Cd,Oe,tL=v(()=>{so=Symbol.for("TypeBox.Transform"),Ff=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Cd=Symbol.for("TypeBox.Hint"),Oe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{tL()});function GI(e){return Ir(e)&&e[Ff]==="Readonly"}function qu(e){return Ir(e)&&e[wa]==="Optional"}function rhe(e){return Bn(e,"Any")}function ihe(e){return Bn(e,"Argument")}function jf(e){return Bn(e,"Array")}function UT(e){return Bn(e,"AsyncIterator")}function FT(e){return Bn(e,"BigInt")}function vg(e){return Bn(e,"Boolean")}function Hf(e){return Bn(e,"Computed")}function qf(e){return Bn(e,"Constructor")}function PGn(e){return Bn(e,"Date")}function Bf(e){return Bn(e,"Function")}function Gf(e){return Bn(e,"Integer")}function rs(e){return Bn(e,"Intersect")}function jT(e){return Bn(e,"Iterator")}function Bn(e,t){return Ir(e)&&Oe in e&&e[Oe]===t}function k9(e){return _g(e)||Al(e)||Zr(e)}function Rl(e){return Bn(e,"Literal")}function wl(e){return Bn(e,"MappedKey")}function Ai(e){return Bn(e,"MappedResult")}function _E(e){return Bn(e,"Never")}function NGn(e){return Bn(e,"Not")}function nL(e){return Bn(e,"Null")}function zf(e){return Bn(e,"Number")}function qs(e){return Bn(e,"Object")}function HT(e){return Bn(e,"Promise")}function qT(e){return Bn(e,"Record")}function bs(e){return Bn(e,"Ref")}function she(e){return Bn(e,"RegExp")}function Ag(e){return Bn(e,"String")}function rL(e){return Bn(e,"Symbol")}function kl(e){return Bn(e,"TemplateLiteral")}function CGn(e){return Bn(e,"This")}function bE(e){return Ir(e)&&so in e}function Il(e){return Bn(e,"Tuple")}function iL(e){return Bn(e,"Undefined")}function Yn(e){return Bn(e,"Union")}function MGn(e){return Bn(e,"Uint8Array")}function DGn(e){return Bn(e,"Unknown")}function LGn(e){return Bn(e,"Unsafe")}function UGn(e){return Bn(e,"Void")}function FGn(e){return Ir(e)&&Oe in e&&Zr(e[Oe])}function xl(e){return rhe(e)||ihe(e)||jf(e)||vg(e)||FT(e)||UT(e)||Hf(e)||qf(e)||PGn(e)||Bf(e)||Gf(e)||rs(e)||jT(e)||Rl(e)||wl(e)||Ai(e)||_E(e)||NGn(e)||nL(e)||zf(e)||qs(e)||HT(e)||qT(e)||bs(e)||she(e)||Ag(e)||rL(e)||kl(e)||CGn(e)||Il(e)||iL(e)||Yn(e)||MGn(e)||DGn(e)||LGn(e)||UGn(e)||FGn(e)}var Xn=v(()=>{Zc();Ut()});var Q={};Rr(Q,{IsAny:()=>ppt,IsArgument:()=>hpt,IsArray:()=>mpt,IsAsyncIterator:()=>gpt,IsBigInt:()=>ypt,IsBoolean:()=>Spt,IsComputed:()=>Ept,IsConstructor:()=>_pt,IsDate:()=>bpt,IsFunction:()=>Tpt,IsImport:()=>zGn,IsInteger:()=>vpt,IsIntersect:()=>Apt,IsIterator:()=>Rpt,IsKind:()=>Xpt,IsKindOf:()=>kn,IsLiteral:()=>oL,IsLiteralBoolean:()=>VGn,IsLiteralNumber:()=>kpt,IsLiteralString:()=>wpt,IsLiteralValue:()=>Ipt,IsMappedKey:()=>xpt,IsMappedResult:()=>Opt,IsNever:()=>Ppt,IsNot:()=>Npt,IsNull:()=>Cpt,IsNumber:()=>Mpt,IsObject:()=>Dpt,IsOptional:()=>GGn,IsPromise:()=>Lpt,IsProperties:()=>I9,IsReadonly:()=>BGn,IsRecord:()=>Upt,IsRecursive:()=>WGn,IsRef:()=>Fpt,IsRegExp:()=>jpt,IsSchema:()=>Xo,IsString:()=>Hpt,IsSymbol:()=>qpt,IsTemplateLiteral:()=>Bpt,IsThis:()=>Gpt,IsTransform:()=>zpt,IsTuple:()=>Vpt,IsUint8Array:()=>Kpt,IsUndefined:()=>Wpt,IsUnion:()=>uhe,IsUnionLiteral:()=>KGn,IsUnknown:()=>Ypt,IsUnsafe:()=>Zpt,IsVoid:()=>Jpt,TypeGuardUnknownTypeError:()=>ohe});function lpt(e){try{return new RegExp(e),!0}catch{return!1}}function ahe(e){if(!Zr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function dpt(e){return che(e)||Xo(e)}function sL(e){return Hs(e)||QD(e)}function Jr(e){return Hs(e)||Al(e)}function che(e){return Hs(e)||_g(e)}function xr(e){return Hs(e)||Zr(e)}function HGn(e){return Hs(e)||Zr(e)&&ahe(e)&&lpt(e)}function qGn(e){return Hs(e)||Zr(e)&&ahe(e)}function fpt(e){return Hs(e)||Xo(e)}function BGn(e){return Ir(e)&&e[Ff]==="Readonly"}function GGn(e){return Ir(e)&&e[wa]==="Optional"}function ppt(e){return kn(e,"Any")&&xr(e.$id)}function hpt(e){return kn(e,"Argument")&&Al(e.index)}function mpt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&che(e.uniqueItems)&&fpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function gpt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function ypt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&sL(e.exclusiveMaximum)&&sL(e.exclusiveMinimum)&&sL(e.maximum)&&sL(e.minimum)&&sL(e.multipleOf)}function Spt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Ept(e){return kn(e,"Computed")&&Zr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function _pt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function bpt(e){return kn(e,"Date")&&e.type==="Date"&&xr(e.$id)&&Jr(e.exclusiveMaximumTimestamp)&&Jr(e.exclusiveMinimumTimestamp)&&Jr(e.maximumTimestamp)&&Jr(e.minimumTimestamp)&&Jr(e.multipleOfTimestamp)}function Tpt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function zGn(e){return kn(e,"Import")&&v9(e,"$defs")&&Ir(e.$defs)&&I9(e.$defs)&&v9(e,"$ref")&&Zr(e.$ref)&&e.$ref in e.$defs}function vpt(e){return kn(e,"Integer")&&e.type==="integer"&&xr(e.$id)&&Jr(e.exclusiveMaximum)&&Jr(e.exclusiveMinimum)&&Jr(e.maximum)&&Jr(e.minimum)&&Jr(e.multipleOf)}function I9(e){return Ir(e)&&Object.entries(e).every(([t,n])=>ahe(t)&&Xo(n))}function Apt(e){return kn(e,"Intersect")&&!(Zr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!zpt(t))&&xr(e.type)&&(che(e.unevaluatedProperties)||fpt(e.unevaluatedProperties))&&xr(e.$id)}function Rpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Xo(e.items)}function kn(e,t){return Ir(e)&&Oe in e&&e[Oe]===t}function wpt(e){return oL(e)&&Zr(e.const)}function kpt(e){return oL(e)&&Al(e.const)}function VGn(e){return oL(e)&&_g(e.const)}function oL(e){return kn(e,"Literal")&&xr(e.$id)&&Ipt(e.const)}function Ipt(e){return _g(e)||Al(e)||Zr(e)}function xpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Zr(t))}function Opt(e){return kn(e,"MappedResult")&&I9(e.properties)}function Ppt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Npt(e){return kn(e,"Not")&&Xo(e.not)}function Cpt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Mpt(e){return kn(e,"Number")&&e.type==="number"&&xr(e.$id)&&Jr(e.exclusiveMaximum)&&Jr(e.exclusiveMinimum)&&Jr(e.maximum)&&Jr(e.minimum)&&Jr(e.multipleOf)}function Dpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&I9(e.properties)&&dpt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function Lpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function Upt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&dpt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&lpt(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function WGn(e){return Ir(e)&&Cd in e&&e[Cd]==="Recursive"}function Fpt(e){return kn(e,"Ref")&&xr(e.$id)&&Zr(e.$ref)}function jpt(e){return kn(e,"RegExp")&&xr(e.$id)&&Zr(e.source)&&Zr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function Hpt(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&HGn(e.pattern)&&qGn(e.format)}function qpt(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function Bpt(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Zr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function Gpt(e){return kn(e,"This")&&xr(e.$id)&&Zr(e.$ref)}function zpt(e){return Ir(e)&&so in e}function Vpt(e){return kn(e,"Tuple")&&e.type==="array"&&xr(e.$id)&&Al(e.minItems)&&Al(e.maxItems)&&e.minItems===e.maxItems&&(Hs(e.items)&&Hs(e.additionalItems)&&e.minItems===0||js(e.items)&&e.items.every(t=>Xo(t)))}function Wpt(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function KGn(e){return uhe(e)&&e.anyOf.every(t=>wpt(t)||kpt(t))}function uhe(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function Kpt(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function Ypt(e){return kn(e,"Unknown")&&xr(e.$id)}function Zpt(e){return kn(e,"Unsafe")}function Jpt(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function Xpt(e){return Ir(e)&&Oe in e&&Zr(e[Oe])&&!jGn.includes(e[Oe])}function Xo(e){return Ir(e)&&(ppt(e)||hpt(e)||mpt(e)||Spt(e)||ypt(e)||gpt(e)||Ept(e)||_pt(e)||bpt(e)||Tpt(e)||vpt(e)||Apt(e)||Rpt(e)||oL(e)||xpt(e)||Opt(e)||Ppt(e)||Npt(e)||Cpt(e)||Mpt(e)||Dpt(e)||Lpt(e)||Upt(e)||Fpt(e)||jpt(e)||Hpt(e)||qpt(e)||Bpt(e)||Gpt(e)||Vpt(e)||Wpt(e)||uhe(e)||Kpt(e)||Ypt(e)||Zpt(e)||Jpt(e)||Xpt(e))}var ohe,jGn,Qpt=v(()=>{Zc();Ut();Uh();ohe=class extends Jo{},jGn=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"]});var lhe=v(()=>{Xn();Qpt();Zc()});var $pt=v(()=>{});var eht=v(()=>{$pt()});var dhe,aL,fhe,YGn,dJr,TE,vE,tht,nht=v(()=>{dhe="(true|false)",aL="(0|[1-9][0-9]*)",fhe="(.*)",YGn="(?!.*)",dJr=`^${dhe}$`,TE=`^${aL}$`,vE=`^${fhe}$`,tht=`^${YGn}$`});var cL=v(()=>{nht()});var rht=v(()=>{});var iht=v(()=>{});var sht=v(()=>{rht();iht()});function oht(e,t){return e.includes(t)}function aht(e){return[...new Set(e)]}function XGn(e,t){return e.filter(n=>t.includes(n))}function QGn(e,t){return e.reduce((n,r)=>XGn(n,r),t)}function cht(e){return e.length===1?e[0]:e.length>1?QGn(e.slice(1),e[0]):[]}function uht(e){let t=[];for(let n of e)t.push(...n);return t}var lht=v(()=>{});var uL=v(()=>{lht()});function AE(e){return de({[Oe]:"Any"},e)}var dht=v(()=>{Tg();Ut()});var lL=v(()=>{dht()});function zI(e,t){return de({[Oe]:"Array",type:"array",items:e},t)}var fht=v(()=>{Nt();Ut()});var dL=v(()=>{fht()});function pht(e){return de({[Oe]:"Argument",index:e})}var hht=v(()=>{Nt();Ut()});var phe=v(()=>{hht()});function VI(e,t){return de({[Oe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var mht=v(()=>{Ut();Nt()});var fL=v(()=>{mht()});function oi(e,t,n){return de({[Oe]:"Computed",target:e,parameters:t},n)}var ght=v(()=>{Tg();tL()});var RE=v(()=>{ght()});function $Gn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>$Gn(n,r),e)}var x9=v(()=>{});var wg=v(()=>{x9()});function Zn(e){return de({[Oe]:"Never",not:{}},e)}var yht=v(()=>{Nt();Ut()});var ka=v(()=>{yht()});var Sht=v(()=>{});function Qn(e){return de({[Oe]:"MappedResult",properties:e})}var hhe=v(()=>{Nt();Ut()});function WI(e,t,n){return de({[Oe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Eht=v(()=>{Nt();Ut()});var pL=v(()=>{Eht()});function Fh(e,t,n){return de({[Oe]:"Function",type:"Function",parameters:e,returns:t},n)}var _ht=v(()=>{Nt();Ut()});var BT=v(()=>{_ht()});function hL(e,t){return de({[Oe]:"Union",anyOf:e},t)}var mhe=v(()=>{Nt();Ut()});function ezn(e){return e.some(t=>qu(t))}function bht(e){return e.map(t=>qu(t)?tzn(t):t)}function tzn(e){return is(e,[wa])}function nzn(e,t){return ezn(e)?mc(hL(bht(e),t)):hL(bht(e),t)}function jh(e,t){return e.length===1?de(e[0],t):e.length===0?Zn(t):nzn(e,t)}var Tht=v(()=>{Nt();Ut();wg();ka();kg();mhe();Xn()});var vht=v(()=>{});function Sr(e,t){return e.length===0?Zn(t):e.length===1?de(e[0],t):hL(e,t)}var Aht=v(()=>{ka();Nt();mhe()});var oo=v(()=>{Tht();vht();Aht()});function rzn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function ghe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function Ig(e,t){return ghe(e,t,"(")}function mL(e,t){return ghe(e,t,")")}function Rht(e,t){return ghe(e,t,"|")}function izn(e){if(!(Ig(e,0)&&mL(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(KI(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(KI(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function uzn(e){function t(i,s){if(!Ig(i,s))throw new O9("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(KI(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function KI(e){return izn(e)?KI(szn(e)):ozn(e)?czn(e):azn(e)?uzn(e):{type:"const",const:rzn(e)}}function YI(e){return KI(e.slice(1,e.length-1))}var O9,P9=v(()=>{Uh();O9=class extends Jo{}});function lzn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function dzn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function fzn(e){return e.type==="const"&&e.const===".*"}function GT(e){return lzn(e)||fzn(e)?!1:dzn(e)?!0:e.type==="and"?e.expr.every(t=>GT(t)):e.type==="or"?e.expr.every(t=>GT(t)):e.type==="const"?!0:(()=>{throw new yhe("Unknown expression type")})()}function wht(e){let t=YI(e.pattern);return GT(t)}var yhe,She=v(()=>{P9();Uh();yhe=class extends Jo{}});function*kht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of kht(e.slice(1)))yield`${t}${n}`}function*pzn(e){return yield*kht(e.expr.map(t=>[...gL(t)]))}function*hzn(e){for(let t of e.expr)yield*gL(t)}function*mzn(e){return yield e.const}function*gL(e){return e.type==="and"?yield*pzn(e):e.type==="or"?yield*hzn(e):e.type==="const"?yield*mzn(e):(()=>{throw new Ehe("Unknown expression")})()}function N9(e){let t=YI(e.pattern);return GT(t)?[...gL(t)]:[]}var Ehe,_he=v(()=>{She();P9();Uh();Ehe=class extends Jo{}});function cr(e,t){return de({[Oe]:"Literal",const:e,type:typeof e},t)}var Iht=v(()=>{Nt();Ut()});var Bu=v(()=>{Iht()});function C9(e){return de({[Oe]:"Boolean",type:"boolean"},e)}var xht=v(()=>{Ut();Tg()});var M9=v(()=>{xht()});function ZI(e){return de({[Oe]:"BigInt",type:"bigint"},e)}var Oht=v(()=>{Ut();Tg()});var yL=v(()=>{Oht()});function Md(e){return de({[Oe]:"Number",type:"number"},e)}var Pht=v(()=>{Nt();Ut()});var zT=v(()=>{Pht()});function Vf(e){return de({[Oe]:"String",type:"string"},e)}var Nht=v(()=>{Nt();Ut()});var JI=v(()=>{Nht()});function*gzn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield C9():t==="number"?yield Md():t==="bigint"?yield ZI():t==="string"?yield Vf():yield(()=>{let n=t.split("|").map(r=>cr(r.trim()));return n.length===0?Zn():n.length===1?n[0]:jh(n)})()}function*yzn(e){if(e[1]!=="{"){let t=cr("$"),n=bhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{Bu();M9();yL();zT();JI();oo();ka()});function Szn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Mht(e,t){return kl(e)?e.pattern.slice(1,e.pattern.length-1):Yn(e)?`(${e.anyOf.map(n=>Mht(n,t)).join("|")})`:zf(e)?`${t}${aL}`:Gf(e)?`${t}${aL}`:FT(e)?`${t}${aL}`:Ag(e)?`${t}${fhe}`:Rl(e)?`${t}${Szn(e.const.toString())}`:vg(e)?`${t}${dhe}`:(()=>{throw new vhe(`Unexpected Kind '${e[Oe]}'`)})()}function Ahe(e){return`^${e.map(t=>Mht(t,"")).join("")}$`}var vhe,Rhe=v(()=>{cL();Ut();Uh();Xn();vhe=class extends Jo{}});function VT(e){let n=N9(e).map(r=>cr(r));return jh(n)}var Dht=v(()=>{oo();Bu();_he()});function D9(e,t){let n=Zr(e)?Ahe(Cht(e)):Ahe(e);return de({[Oe]:"TemplateLiteral",type:"string",pattern:n},t)}var Lht=v(()=>{Nt();The();Rhe();Zc();Ut()});var xg=v(()=>{She();_he();The();P9();Rhe();Dht();Lht()});function Ezn(e){return N9(e).map(n=>n.toString())}function _zn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function bzn(e){return[e.toString()]}function Gu(e){return[...new Set(kl(e)?Ezn(e):Yn(e)?_zn(e.anyOf):Rl(e)?bzn(e.const):zf(e)?["[number]"]:Gf(e)?["[number]"]:[])]}var L9=v(()=>{xg();Xn()});function Tzn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=wE(e,Gu(t[i]),n);return r}function vzn(e,t,n){return Tzn(e,t.properties,n)}function Uht(e,t,n){let r=vzn(e,t,n);return Qn(r)}var whe=v(()=>{Ao();L9();Hh()});function jht(e,t){return e.map(n=>Hht(n,t))}function Azn(e){return e.filter(t=>!_E(t))}function Rzn(e,t){return U9(Azn(jht(e,t)))}function wzn(e){return e.some(t=>_E(t))?[]:e}function kzn(e,t){return jh(wzn(jht(e,t)))}function Izn(e,t){return t in e?e[t]:t==="[number]"?jh(e):Zn()}function xzn(e,t){return t==="[number]"?e:Zn()}function Ozn(e,t){return t in e?e[t]:Zn()}function Hht(e,t){return rs(e)?Rzn(e.allOf,t):Yn(e)?kzn(e.anyOf,t):Il(e)?Izn(e.items??[],t):jf(e)?xzn(e.items,t):qs(e)?Ozn(e.properties,t):Zn()}function khe(e,t){return t.map(n=>Hht(e,n))}function Fht(e,t){return jh(khe(e,t))}function wE(e,t,n){if(bs(e)||bs(t)){let r="Index types using Ref parameters require both Type and Key to be of TSchema";if(!xl(e)||!xl(t))throw new Jo(r);return oi("Index",[e,t])}return Ai(t)?Uht(e,t,n):wl(t)?qht(e,t,n):de(xl(t)?Fht(e,Gu(t)):Fht(e,t),n)}var Ihe=v(()=>{Nt();Uh();RE();ka();Dd();oo();L9();xhe();whe();Xn()});function Pzn(e,t,n){return{[t]:wE(e,[t],vi(n))}}function Nzn(e,t,n){return t.reduce((r,i)=>({...r,...Pzn(e,i,n)}),{})}function Czn(e,t,n){return Nzn(e,t.keys,n)}function qht(e,t,n){let r=Czn(e,t,n);return Qn(r)}var xhe=v(()=>{Ihe();Ao();Hu()});var Hh=v(()=>{xhe();whe();L9();Ihe()});function XI(e,t){return de({[Oe]:"Iterator",type:"Iterator",items:e},t)}var Bht=v(()=>{Nt();Ut()});var SL=v(()=>{Bht()});function Mzn(e){return globalThis.Object.keys(e).filter(t=>!qu(e[t]))}function Dzn(e,t){let n=Mzn(e),r=n.length>0?{[Oe]:"Object",type:"object",required:n,properties:e}:{[Oe]:"Object",type:"object",properties:e};return de(r,t)}var Or,Ght=v(()=>{Nt();Ut();Xn();Or=Dzn});var Ol=v(()=>{Ght()});function F9(e,t){return de({[Oe]:"Promise",type:"Promise",item:e},t)}var zht=v(()=>{Nt();Ut()});var j9=v(()=>{zht()});function Lzn(e){return de(is(e,[Ff]))}function Uzn(e){return de({...e,[Ff]:"Readonly"})}function Fzn(e,t){return t===!1?Lzn(e):Uzn(e)}function zu(e,t){let n=t??!0;return Ai(e)?Vht(e,n):Fzn(e,n)}var Ohe=v(()=>{Nt();Ut();wg();Phe();Xn()});function jzn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=zu(e[r],t);return n}function Hzn(e,t){return jzn(e.properties,t)}function Vht(e,t){let n=Hzn(e,t);return Qn(n)}var Phe=v(()=>{Ao();Ohe()});var WT=v(()=>{Phe();Ohe()});function Ld(e,t){return de(e.length>0?{[Oe]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Oe]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var Wht=v(()=>{Nt();Ut()});var kE=v(()=>{Wht()});function Kht(e,t){return e in t?Ud(e,t[e]):Qn(t)}function qzn(e){return{[e]:cr(e)}}function Bzn(e){let t={};for(let n of e)t[n]=cr(n);return t}function Gzn(e,t){return oht(t,e)?qzn(e):Bzn(t)}function zzn(e,t){let n=Gzn(e,t);return Kht(e,n)}function EL(e,t){return t.map(n=>Ud(e,n))}function Vzn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=Ud(e,t[r]);return n}function Ud(e,t){let n={...t};return qu(t)?mc(Ud(e,is(t,[wa]))):GI(t)?zu(Ud(e,is(t,[Ff]))):Ai(t)?Kht(e,t.properties):wl(t)?zzn(e,t.keys):qf(t)?WI(EL(e,t.parameters),Ud(e,t.returns),n):Bf(t)?Fh(EL(e,t.parameters),Ud(e,t.returns),n):UT(t)?VI(Ud(e,t.items),n):jT(t)?XI(Ud(e,t.items),n):rs(t)?gc(EL(e,t.allOf),n):Yn(t)?Sr(EL(e,t.anyOf),n):Il(t)?Ld(EL(e,t.items??[]),n):qs(t)?Or(Vzn(e,t.properties),n):jf(t)?zI(Ud(e,t.items),n):HT(t)?F9(Ud(e,t.item),n):t}function Wzn(e,t){let n={};for(let r of e)n[r]=Ud(r,t);return n}function Yht(e,t,n){let r=xl(e)?Gu(e):e,i=t({[Oe]:"MappedKey",keys:r}),s=Wzn(r,i);return Or(s,n)}var Zht=v(()=>{Ut();wg();dL();fL();pL();BT();Hh();Dd();SL();Bu();Ol();kg();j9();WT();kE();oo();uL();hhe();Xn()});var Ao=v(()=>{Sht();hhe();Zht()});function Kzn(e){return de(is(e,[wa]))}function Yzn(e){return de({...e,[wa]:"Optional"})}function Zzn(e,t){return t===!1?Kzn(e):Yzn(e)}function mc(e,t){let n=t??!0;return Ai(e)?Jht(e,n):Zzn(e,n)}var Nhe=v(()=>{Nt();Ut();wg();Che();Xn()});function Jzn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=mc(e[r],t);return n}function Xzn(e,t){return Jzn(e.properties,t)}function Jht(e,t){let n=Xzn(e,t);return Qn(n)}var Che=v(()=>{Ao();Nhe()});var kg=v(()=>{Che();Nhe()});function _L(e,t={}){let n=e.every(i=>qs(i)),r=xl(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return de(t.unevaluatedProperties===!1||xl(t.unevaluatedProperties)||n?{...r,[Oe]:"Intersect",type:"object",allOf:e}:{...r,[Oe]:"Intersect",allOf:e},t)}var Mhe=v(()=>{Nt();Ut();Xn()});function Qzn(e){return e.every(t=>qu(t))}function $zn(e){return is(e,[wa])}function Xht(e){return e.map(t=>qu(t)?$zn(t):t)}function eVn(e,t){return Qzn(e)?mc(_L(Xht(e),t)):_L(Xht(e),t)}function U9(e,t={}){if(e.length===1)return de(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>bE(n)))throw new Error("Cannot intersect transform types");return eVn(e,t)}var Qht=v(()=>{Ut();Nt();wg();ka();kg();Mhe();Xn()});var $ht=v(()=>{});function gc(e,t){if(e.length===1)return de(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>bE(n)))throw new Error("Cannot intersect transform types");return _L(e,t)}var emt=v(()=>{Nt();ka();Mhe();Xn()});var Dd=v(()=>{Qht();$ht();emt()});function qh(...e){let[t,n]=typeof e[0]=="string"?[e[0],e[1]]:[e[0].$id,e[1]];if(typeof t!="string")throw new Jo("Ref: $ref must be a string");return de({[Oe]:"Ref",$ref:t},n)}var tmt=v(()=>{Uh();Nt();Ut()});var KT=v(()=>{tmt()});function tVn(e,t){return oi("Awaited",[oi(e,t)])}function nVn(e){return oi("Awaited",[qh(e)])}function rVn(e){return gc(nmt(e))}function iVn(e){return Sr(nmt(e))}function sVn(e){return QI(e)}function nmt(e){return e.map(t=>QI(t))}function QI(e,t){return de(Hf(e)?tVn(e.target,e.parameters):rs(e)?rVn(e.allOf):Yn(e)?iVn(e.anyOf):HT(e)?sVn(e.item):bs(e)?nVn(e.$ref):e,t)}var rmt=v(()=>{Nt();RE();Dd();oo();KT();Xn()});var H9=v(()=>{rmt()});function imt(e){let t=[];for(let n of e)t.push(bL(n));return t}function oVn(e){let t=imt(e);return uht(t)}function aVn(e){let t=imt(e);return cht(t)}function cVn(e){return e.map((t,n)=>n.toString())}function uVn(e){return["[number]"]}function lVn(e){return globalThis.Object.getOwnPropertyNames(e)}function dVn(e){return fVn?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function bL(e){return rs(e)?oVn(e.allOf):Yn(e)?aVn(e.anyOf):Il(e)?cVn(e.items??[]):jf(e)?uVn(e.items):qs(e)?lVn(e.properties):qT(e)?dVn(e.patternProperties):[]}var fVn,Dhe=v(()=>{uL();Xn();fVn=!1});function pVn(e,t){return oi("KeyOf",[oi(e,t)])}function hVn(e){return oi("KeyOf",[qh(e)])}function mVn(e,t){let n=bL(e),r=gVn(n),i=jh(r);return de(i,t)}function gVn(e){return e.map(t=>t==="[number]"?Md():cr(t))}function $I(e,t){return Hf(e)?pVn(e.target,e.parameters):bs(e)?hVn(e.$ref):Ai(e)?smt(e,t):mVn(e,t)}var Lhe=v(()=>{Nt();Bu();zT();RE();KT();Dhe();oo();Uhe();Xn()});function yVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=$I(e[r],vi(t));return n}function SVn(e,t){return yVn(e.properties,t)}function smt(e,t){let n=SVn(e,t);return Qn(n)}var Uhe=v(()=>{Ao();Lhe();Hu()});var omt=v(()=>{});var TL=v(()=>{Uhe();omt();Dhe();Lhe()});function EVn(e){let t=[];for(let n of e)t.push(...bL(n));return aht(t)}function _Vn(e){return e.filter(t=>!_E(t))}function bVn(e,t){let n=[];for(let r of e)n.push(...khe(r,[t]));return _Vn(n)}function TVn(e,t){let n={};for(let r of t)n[r]=U9(bVn(e,r));return n}function amt(e,t){let n=EVn(e),r=TVn(e,n);return Or(r,t)}var cmt=v(()=>{Dd();Hh();TL();Ol();uL();Xn()});var Fhe=v(()=>{cmt()});function q9(e){return de({[Oe]:"Date",type:"Date"},e)}var umt=v(()=>{Ut();Nt()});var B9=v(()=>{umt()});function G9(e){return de({[Oe]:"Null",type:"null"},e)}var lmt=v(()=>{Nt();Ut()});var z9=v(()=>{lmt()});function V9(e){return de({[Oe]:"Symbol",type:"symbol"},e)}var dmt=v(()=>{Nt();Ut()});var W9=v(()=>{dmt()});function K9(e){return de({[Oe]:"Undefined",type:"undefined"},e)}var fmt=v(()=>{Nt();Ut()});var Y9=v(()=>{fmt()});function Z9(e){return de({[Oe]:"Uint8Array",type:"Uint8Array"},e)}var pmt=v(()=>{Nt();Ut()});var J9=v(()=>{pmt()});function IE(e){return de({[Oe]:"Unknown"},e)}var hmt=v(()=>{Nt();Ut()});var e0=v(()=>{hmt()});function vVn(e){return e.map(t=>jhe(t,!1))}function AVn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=zu(jhe(e[n],!1));return t}function X9(e,t){return t===!0?e:zu(e)}function jhe(e,t){return Xpe(e)?X9(AE(),t):$pe(e)?X9(AE(),t):js(e)?zu(Ld(vVn(e))):bg(e)?Z9():LT(e)?q9():Ir(e)?X9(Or(AVn(e)),t):Qpe(e)?X9(Fh([],IE()),t):Hs(e)?K9():ehe(e)?G9():the(e)?V9():QD(e)?ZI():Al(e)?cr(e):_g(e)?cr(e):Zr(e)?cr(e):Or({})}function mmt(e,t){return de(jhe(e,!0),t)}var gmt=v(()=>{lL();yL();B9();BT();Bu();z9();Ol();W9();kE();WT();Y9();J9();e0();Tg();Zc()});var Hhe=v(()=>{gmt()});function ymt(e,t){return qf(e)?Ld(e.parameters,t):Zn(t)}var Smt=v(()=>{kE();ka();Xn()});var qhe=v(()=>{Smt()});function Emt(e,t){if(Hs(e))throw new Error("Enum undefined or empty");let n=globalThis.Object.getOwnPropertyNames(e).filter(s=>isNaN(s)).map(s=>e[s]),i=[...new Set(n)].map(s=>cr(s));return Sr(i,{...t,[Cd]:"Enum"})}var _mt=v(()=>{Bu();Ut();oo();Zc()});var Bhe=v(()=>{_mt()});function Fd(e){return e===fe.False?e:fe.True}function t0(e){throw new zhe(e)}function ao(e){return Q.IsNever(e)||Q.IsIntersect(e)||Q.IsUnion(e)||Q.IsUnknown(e)||Q.IsAny(e)}function co(e,t){return Q.IsNever(t)?kmt(e,t):Q.IsIntersect(t)?Q9(e,t):Q.IsUnion(t)?Yhe(e,t):Q.IsUnknown(t)?Pmt(e,t):Q.IsAny(t)?Khe(e,t):t0("StructuralRight")}function Khe(e,t){return fe.True}function RVn(e,t){return Q.IsIntersect(t)?Q9(e,t):Q.IsUnion(t)&&t.anyOf.some(n=>Q.IsAny(n)||Q.IsUnknown(n))?fe.True:Q.IsUnion(t)?fe.Union:Q.IsUnknown(t)||Q.IsAny(t)?fe.True:fe.Union}function wVn(e,t){return Q.IsUnknown(e)?fe.False:Q.IsAny(e)?fe.Union:Q.IsNever(e)?fe.True:fe.False}function kVn(e,t){return Q.IsObject(t)&&$9(t)?fe.True:ao(t)?co(e,t):Q.IsArray(t)?Fd(Pr(e.items,t.items)):fe.False}function IVn(e,t){return ao(t)?co(e,t):Q.IsAsyncIterator(t)?Fd(Pr(e.items,t.items)):fe.False}function xVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsBigInt(t)?fe.True:fe.False}function Rmt(e,t){return Q.IsLiteralBoolean(e)||Q.IsBoolean(e)?fe.True:fe.False}function OVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsBoolean(t)?fe.True:fe.False}function PVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsConstructor(t)?e.parameters.length>t.parameters.length?fe.False:e.parameters.every((n,r)=>Fd(Pr(t.parameters[r],n))===fe.True)?Fd(Pr(e.returns,t.returns)):fe.False:fe.False}function NVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsDate(t)?fe.True:fe.False}function CVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsFunction(t)?e.parameters.length>t.parameters.length?fe.False:e.parameters.every((n,r)=>Fd(Pr(t.parameters[r],n))===fe.True)?Fd(Pr(e.returns,t.returns)):fe.False:fe.False}function wmt(e,t){return Q.IsLiteral(e)&&hc.IsNumber(e.const)||Q.IsNumber(e)||Q.IsInteger(e)?fe.True:fe.False}function MVn(e,t){return Q.IsInteger(t)||Q.IsNumber(t)?fe.True:ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):fe.False}function Q9(e,t){return t.allOf.every(n=>Pr(e,n)===fe.True)?fe.True:fe.False}function DVn(e,t){return e.allOf.some(n=>Pr(n,t)===fe.True)?fe.True:fe.False}function LVn(e,t){return ao(t)?co(e,t):Q.IsIterator(t)?Fd(Pr(e.items,t.items)):fe.False}function UVn(e,t){return Q.IsLiteral(t)&&t.const===e.const?fe.True:ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsString(t)?Omt(e,t):Q.IsNumber(t)?Imt(e,t):Q.IsInteger(t)?wmt(e,t):Q.IsBoolean(t)?Rmt(e,t):fe.False}function kmt(e,t){return fe.False}function FVn(e,t){return fe.True}function bmt(e){let[t,n]=[e,0];for(;Q.IsNot(t);)t=t.not,n+=1;return n%2===0?t:IE()}function jVn(e,t){return Q.IsNot(e)?Pr(bmt(e),t):Q.IsNot(t)?Pr(e,bmt(t)):t0("Invalid fallthrough for Not")}function HVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsNull(t)?fe.True:fe.False}function Imt(e,t){return Q.IsLiteralNumber(e)||Q.IsNumber(e)||Q.IsInteger(e)?fe.True:fe.False}function qVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsInteger(t)||Q.IsNumber(t)?fe.True:fe.False}function Vu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Tmt(e){return $9(e)}function vmt(e){return Vu(e,0)||Vu(e,1)&&"description"in e.properties&&Q.IsUnion(e.properties.description)&&e.properties.description.anyOf.length===2&&(Q.IsString(e.properties.description.anyOf[0])&&Q.IsUndefined(e.properties.description.anyOf[1])||Q.IsString(e.properties.description.anyOf[1])&&Q.IsUndefined(e.properties.description.anyOf[0]))}function Ghe(e){return Vu(e,0)}function Amt(e){return Vu(e,0)}function BVn(e){return Vu(e,0)}function GVn(e){return Vu(e,0)}function zVn(e){return $9(e)}function VVn(e){let t=Md();return Vu(e,0)||Vu(e,1)&&"length"in e.properties&&Fd(Pr(e.properties.length,t))===fe.True}function WVn(e){return Vu(e,0)}function $9(e){let t=Md();return Vu(e,0)||Vu(e,1)&&"length"in e.properties&&Fd(Pr(e.properties.length,t))===fe.True}function KVn(e){let t=Fh([AE()],AE());return Vu(e,0)||Vu(e,1)&&"then"in e.properties&&Fd(Pr(e.properties.then,t))===fe.True}function xmt(e,t){return Pr(e,t)===fe.False||Q.IsOptional(e)&&!Q.IsOptional(t)?fe.False:fe.True}function yc(e,t){return Q.IsUnknown(e)?fe.False:Q.IsAny(e)?fe.Union:Q.IsNever(e)||Q.IsLiteralString(e)&&Tmt(t)||Q.IsLiteralNumber(e)&&Ghe(t)||Q.IsLiteralBoolean(e)&&Amt(t)||Q.IsSymbol(e)&&vmt(t)||Q.IsBigInt(e)&&BVn(t)||Q.IsString(e)&&Tmt(t)||Q.IsSymbol(e)&&vmt(t)||Q.IsNumber(e)&&Ghe(t)||Q.IsInteger(e)&&Ghe(t)||Q.IsBoolean(e)&&Amt(t)||Q.IsUint8Array(e)&&zVn(t)||Q.IsDate(e)&&GVn(t)||Q.IsConstructor(e)&&WVn(t)||Q.IsFunction(e)&&VVn(t)?fe.True:Q.IsRecord(e)&&Q.IsString(Vhe(e))?t[Cd]==="Record"?fe.True:fe.False:Q.IsRecord(e)&&Q.IsNumber(Vhe(e))&&Vu(t,0)?fe.True:fe.False}function YVn(e,t){return ao(t)?co(e,t):Q.IsRecord(t)?jd(e,t):Q.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!Q.IsOptional(t.properties[n]))return fe.False;if(Q.IsOptional(t.properties[n]))return fe.True;if(xmt(e.properties[n],t.properties[n])===fe.False)return fe.False}return fe.True})():fe.False}function ZVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)&&KVn(t)?fe.True:Q.IsPromise(t)?Fd(Pr(e.item,t.item)):fe.False}function Vhe(e){return TE in e.patternProperties?Md():vE in e.patternProperties?Vf():t0("Unknown record key pattern")}function Whe(e){return TE in e.patternProperties?e.patternProperties[TE]:vE in e.patternProperties?e.patternProperties[vE]:t0("Unable to get record value schema")}function jd(e,t){let[n,r]=[Vhe(t),Whe(t)];return Q.IsLiteralString(e)&&Q.IsNumber(n)&&Fd(Pr(e,r))===fe.True?fe.True:Q.IsUint8Array(e)&&Q.IsNumber(n)||Q.IsString(e)&&Q.IsNumber(n)||Q.IsArray(e)&&Q.IsNumber(n)?Pr(e,r):Q.IsObject(e)?(()=>{for(let i of Object.getOwnPropertyNames(e.properties))if(xmt(r,e.properties[i])===fe.False)return fe.False;return fe.True})():fe.False}function JVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?Pr(Whe(e),Whe(t)):fe.False}function XVn(e,t){let n=Q.IsRegExp(e)?Vf():e,r=Q.IsRegExp(t)?Vf():t;return Pr(n,r)}function Omt(e,t){return Q.IsLiteral(e)&&hc.IsString(e.const)||Q.IsString(e)?fe.True:fe.False}function QVn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsString(t)?fe.True:fe.False}function $Vn(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsSymbol(t)?fe.True:fe.False}function e2n(e,t){return Q.IsTemplateLiteral(e)?Pr(VT(e),t):Q.IsTemplateLiteral(t)?Pr(e,VT(t)):t0("Invalid fallthrough for TemplateLiteral")}function t2n(e,t){return Q.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Pr(n,t.items)===fe.True)}function n2n(e,t){return Q.IsNever(e)?fe.True:Q.IsUnknown(e)?fe.False:Q.IsAny(e)?fe.Union:fe.False}function r2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)&&$9(t)||Q.IsArray(t)&&t2n(e,t)?fe.True:Q.IsTuple(t)?hc.IsUndefined(e.items)&&!hc.IsUndefined(t.items)||!hc.IsUndefined(e.items)&&hc.IsUndefined(t.items)?fe.False:hc.IsUndefined(e.items)&&!hc.IsUndefined(t.items)||e.items.every((n,r)=>Pr(n,t.items[r])===fe.True)?fe.True:fe.False:fe.False}function i2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsUint8Array(t)?fe.True:fe.False}function s2n(e,t){return ao(t)?co(e,t):Q.IsObject(t)?yc(e,t):Q.IsRecord(t)?jd(e,t):Q.IsVoid(t)?c2n(e,t):Q.IsUndefined(t)?fe.True:fe.False}function Yhe(e,t){return t.anyOf.some(n=>Pr(e,n)===fe.True)?fe.True:fe.False}function o2n(e,t){return e.anyOf.every(n=>Pr(n,t)===fe.True)?fe.True:fe.False}function Pmt(e,t){return fe.True}function a2n(e,t){return Q.IsNever(t)?kmt(e,t):Q.IsIntersect(t)?Q9(e,t):Q.IsUnion(t)?Yhe(e,t):Q.IsAny(t)?Khe(e,t):Q.IsString(t)?Omt(e,t):Q.IsNumber(t)?Imt(e,t):Q.IsInteger(t)?wmt(e,t):Q.IsBoolean(t)?Rmt(e,t):Q.IsArray(t)?wVn(e,t):Q.IsTuple(t)?n2n(e,t):Q.IsObject(t)?yc(e,t):Q.IsUnknown(t)?fe.True:fe.False}function c2n(e,t){return Q.IsUndefined(e)||Q.IsUndefined(e)?fe.True:fe.False}function u2n(e,t){return Q.IsIntersect(t)?Q9(e,t):Q.IsUnion(t)?Yhe(e,t):Q.IsUnknown(t)?Pmt(e,t):Q.IsAny(t)?Khe(e,t):Q.IsObject(t)?yc(e,t):Q.IsVoid(t)?fe.True:fe.False}function Pr(e,t){return Q.IsTemplateLiteral(e)||Q.IsTemplateLiteral(t)?e2n(e,t):Q.IsRegExp(e)||Q.IsRegExp(t)?XVn(e,t):Q.IsNot(e)||Q.IsNot(t)?jVn(e,t):Q.IsAny(e)?RVn(e,t):Q.IsArray(e)?kVn(e,t):Q.IsBigInt(e)?xVn(e,t):Q.IsBoolean(e)?OVn(e,t):Q.IsAsyncIterator(e)?IVn(e,t):Q.IsConstructor(e)?PVn(e,t):Q.IsDate(e)?NVn(e,t):Q.IsFunction(e)?CVn(e,t):Q.IsInteger(e)?MVn(e,t):Q.IsIntersect(e)?DVn(e,t):Q.IsIterator(e)?LVn(e,t):Q.IsLiteral(e)?UVn(e,t):Q.IsNever(e)?FVn(e,t):Q.IsNull(e)?HVn(e,t):Q.IsNumber(e)?qVn(e,t):Q.IsObject(e)?YVn(e,t):Q.IsRecord(e)?JVn(e,t):Q.IsString(e)?QVn(e,t):Q.IsSymbol(e)?$Vn(e,t):Q.IsTuple(e)?r2n(e,t):Q.IsPromise(e)?ZVn(e,t):Q.IsUint8Array(e)?i2n(e,t):Q.IsUndefined(e)?s2n(e,t):Q.IsUnion(e)?o2n(e,t):Q.IsUnknown(e)?a2n(e,t):Q.IsVoid(e)?u2n(e,t):t0(`Unknown left type operand '${e[Oe]}'`)}function xE(e,t){return Pr(e,t)}var zhe,fe,Zhe=v(()=>{lL();BT();zT();JI();e0();xg();cL();Ut();Uh();lhe();zhe=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(fe||(fe={}))});function l2n(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=n0(e[o],t,n,r,vi(i));return s}function d2n(e,t,n,r,i){return l2n(e.properties,t,n,r,i)}function Nmt(e,t,n,r,i){let s=d2n(e,t,n,r,i);return Qn(s)}var Jhe=v(()=>{Ao();e3();Hu()});function f2n(e,t,n,r){let i=xE(e,t);return i===fe.Union?Sr([n,r]):i===fe.True?n:r}function n0(e,t,n,r,i){return Ai(e)?Nmt(e,t,n,r,i):wl(e)?de(Cmt(e,t,n,r,i)):de(f2n(e,t,n,r),i)}var e3=v(()=>{Nt();oo();Zhe();Xhe();Jhe();Xn()});function p2n(e,t,n,r,i){return{[e]:n0(cr(e),t,n,r,vi(i))}}function h2n(e,t,n,r,i){return e.reduce((s,o)=>({...s,...p2n(o,t,n,r,i)}),{})}function m2n(e,t,n,r,i){return h2n(e.keys,t,n,r,i)}function Cmt(e,t,n,r,i){let s=m2n(e,t,n,r,i);return Qn(s)}var Xhe=v(()=>{Ao();Bu();e3();Hu()});var Mmt=v(()=>{});var vL=v(()=>{Zhe();Xhe();Jhe();Mmt();e3()});function Dmt(e,t){return r0(VT(e),t)}var Qhe=v(()=>{t3();xg()});function g2n(e,t){let n=e.filter(r=>xE(r,t)===fe.False);return n.length===1?n[0]:Sr(n)}function r0(e,t,n={}){return kl(e)?de(Dmt(e,t),n):Ai(e)?de(Lmt(e,t),n):de(Yn(e)?g2n(e.anyOf,t):xE(e,t)!==fe.False?Zn():e,n)}var t3=v(()=>{Nt();oo();ka();vL();$he();Qhe();Xn()});function y2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=r0(e[r],t);return n}function S2n(e,t){return y2n(e.properties,t)}function Lmt(e,t){let n=S2n(e,t);return Qn(n)}var $he=v(()=>{Ao();t3()});var eme=v(()=>{$he();Qhe();t3()});function Umt(e,t){return i0(VT(e),t)}var tme=v(()=>{n3();xg()});function E2n(e,t){let n=e.filter(r=>xE(r,t)!==fe.False);return n.length===1?n[0]:Sr(n)}function i0(e,t,n){return kl(e)?de(Umt(e,t),n):Ai(e)?de(Fmt(e,t),n):de(Yn(e)?E2n(e.anyOf,t):xE(e,t)!==fe.False?e:Zn(),n)}var n3=v(()=>{Nt();oo();ka();vL();nme();tme();Xn()});function _2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=i0(e[r],t);return n}function b2n(e,t){return _2n(e.properties,t)}function Fmt(e,t){let n=b2n(e,t);return Qn(n)}var nme=v(()=>{Ao();n3()});var rme=v(()=>{nme();tme();n3()});function jmt(e,t){return qf(e)?de(e.returns,t):Zn(t)}var Hmt=v(()=>{Nt();ka();Xn()});var ime=v(()=>{Hmt()});function r3(e){return zu(mc(e))}var qmt=v(()=>{WT();kg()});var i3=v(()=>{qmt()});function YT(e,t,n){return de({[Oe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function sme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Cd]:"Record"})}function T2n(e,t,n){return wht(e)?sme(Gu(e),t,n):YT(e.pattern,t,n)}function v2n(e,t,n){return sme(Gu(Sr(e)),t,n)}function A2n(e,t,n){return sme([e.toString()],t,n)}function R2n(e,t,n){return YT(e.source,t,n)}function w2n(e,t,n){let r=Hs(e.pattern)?vE:e.pattern;return YT(r,t,n)}function k2n(e,t,n){return YT(vE,t,n)}function I2n(e,t,n){return YT(tht,t,n)}function x2n(e,t,n){return Or({true:t,false:t},n)}function O2n(e,t,n){return YT(TE,t,n)}function P2n(e,t,n){return YT(TE,t,n)}function s3(e,t,n={}){return Yn(e)?v2n(e.anyOf,t,n):kl(e)?T2n(e,t,n):Rl(e)?A2n(e.const,t,n):vg(e)?x2n(e,t,n):Gf(e)?O2n(e,t,n):zf(e)?P2n(e,t,n):she(e)?R2n(e,t,n):Ag(e)?w2n(e,t,n):rhe(e)?k2n(e,t,n):_E(e)?I2n(e,t,n):Zn(n)}function o3(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function Bmt(e){let t=o3(e);return t===vE?Vf():t===TE?Md():Vf({pattern:t})}function a3(e){return e.patternProperties[o3(e)]}var Gmt=v(()=>{Nt();Ut();ka();zT();Ol();JI();oo();xg();cL();Hh();Zc();Xn()});var AL=v(()=>{Gmt()});function N2n(e,t){return t.parameters=RL(e,t.parameters),t.returns=Wf(e,t.returns),t}function C2n(e,t){return t.parameters=RL(e,t.parameters),t.returns=Wf(e,t.returns),t}function M2n(e,t){return t.allOf=RL(e,t.allOf),t}function D2n(e,t){return t.anyOf=RL(e,t.anyOf),t}function L2n(e,t){return Hs(t.items)||(t.items=RL(e,t.items)),t}function U2n(e,t){return t.items=Wf(e,t.items),t}function F2n(e,t){return t.items=Wf(e,t.items),t}function j2n(e,t){return t.items=Wf(e,t.items),t}function H2n(e,t){return t.item=Wf(e,t.item),t}function q2n(e,t){let n=V2n(e,t.properties);return{...t,...Or(n)}}function B2n(e,t){let n=Wf(e,Bmt(t)),r=Wf(e,a3(t)),i=s3(n,r);return{...t,...i}}function G2n(e,t){return t.index in e?e[t.index]:IE()}function z2n(e,t){let n=GI(t),r=qu(t),i=Wf(e,t);return n&&r?r3(i):n&&!r?zu(i):!n&&r?mc(i):i}function V2n(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:z2n(e,t[r])}),{})}function RL(e,t){return t.map(n=>Wf(e,n))}function Wf(e,t){return qf(t)?N2n(e,t):Bf(t)?C2n(e,t):rs(t)?M2n(e,t):Yn(t)?D2n(e,t):Il(t)?L2n(e,t):jf(t)?U2n(e,t):UT(t)?F2n(e,t):jT(t)?j2n(e,t):HT(t)?H2n(e,t):qs(t)?q2n(e,t):qT(t)?B2n(e,t):ihe(t)?G2n(e,t):t}function zmt(e,t){return Wf(t,BI(e))}var Vmt=v(()=>{R9();e0();i3();WT();kg();Ol();AL();Zc();Xn()});var ome=v(()=>{Vmt()});function Wmt(e){return de({[Oe]:"Integer",type:"integer"},e)}var Kmt=v(()=>{Nt();Ut()});var ame=v(()=>{Kmt()});function W2n(e,t,n){return{[e]:Kf(cr(e),t,vi(n))}}function K2n(e,t,n){return e.reduce((i,s)=>({...i,...W2n(s,t,n)}),{})}function Y2n(e,t,n){return K2n(e.keys,t,n)}function Ymt(e,t,n){let r=Y2n(e,t,n);return Qn(r)}var cme=v(()=>{Ao();ZT();Bu();Hu()});function Z2n(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function J2n(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function X2n(e){return e.toUpperCase()}function Q2n(e){return e.toLowerCase()}function $2n(e,t,n){let r=YI(e.pattern);if(!GT(r))return{...e,pattern:Zmt(e.pattern,t)};let o=[...gL(r)].map(u=>cr(u)),a=Jmt(o,t),c=Sr(a);return D9([c],n)}function Zmt(e,t){return typeof e=="string"?t==="Uncapitalize"?Z2n(e):t==="Capitalize"?J2n(e):t==="Uppercase"?X2n(e):t==="Lowercase"?Q2n(e):e:e.toString()}function Jmt(e,t){return e.map(n=>Kf(n,t))}function Kf(e,t,n={}){return wl(e)?Ymt(e,t,n):kl(e)?$2n(e,t,n):Yn(e)?Sr(Jmt(e.anyOf,t),n):Rl(e)?cr(Zmt(e.const,t),n):de(e,n)}var ZT=v(()=>{Nt();xg();cme();Bu();oo();Xn()});function Xmt(e,t={}){return Kf(e,"Capitalize",t)}var Qmt=v(()=>{ZT()});function $mt(e,t={}){return Kf(e,"Lowercase",t)}var egt=v(()=>{ZT()});function tgt(e,t={}){return Kf(e,"Uncapitalize",t)}var ngt=v(()=>{ZT()});function rgt(e,t={}){return Kf(e,"Uppercase",t)}var igt=v(()=>{ZT()});var ume=v(()=>{Qmt();cme();ZT();egt();ngt();igt()});function eWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=OE(e[i],t,vi(n));return r}function tWn(e,t,n){return eWn(e.properties,t,n)}function sgt(e,t,n){let r=tWn(e,t,n);return Qn(r)}var lme=v(()=>{Ao();c3();Hu()});function nWn(e,t){return e.map(n=>dme(n,t))}function rWn(e,t){return e.map(n=>dme(n,t))}function iWn(e,t){let{[t]:n,...r}=e;return r}function sWn(e,t){return t.reduce((n,r)=>iWn(n,r),e)}function oWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=sWn(n,t);return Or(i,r)}function aWn(e){let t=e.reduce((n,r)=>k9(r)?[...n,cr(r)]:n,[]);return Sr(t)}function dme(e,t){return rs(e)?gc(nWn(e.allOf,t)):Yn(e)?Sr(rWn(e.anyOf,t)):qs(e)?oWn(e,t,e.properties):Or({})}function OE(e,t,n){let r=js(t)?aWn(t):t,i=xl(t)?Gu(t):t,s=bs(e),o=bs(t);return Ai(e)?sgt(e,i,n):wl(t)?ogt(e,t,n):s&&o?oi("Omit",[e,r],n):!s&&o?oi("Omit",[e,r],n):s&&!o?oi("Omit",[e,r],n):de({...dme(e,i),...n})}var c3=v(()=>{Nt();x9();tL();RE();Bu();Hh();Dd();oo();Ol();fme();lme();Xn();Zc()});function cWn(e,t,n){return{[t]:OE(e,[t],vi(n))}}function uWn(e,t,n){return t.reduce((r,i)=>({...r,...cWn(e,i,n)}),{})}function lWn(e,t,n){return uWn(e,t.keys,n)}function ogt(e,t,n){let r=lWn(e,t,n);return Qn(r)}var fme=v(()=>{Ao();c3();Hu()});var u3=v(()=>{fme();lme();c3()});function dWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=PE(e[i],t,vi(n));return r}function fWn(e,t,n){return dWn(e.properties,t,n)}function agt(e,t,n){let r=fWn(e,t,n);return Qn(r)}var pme=v(()=>{Ao();l3();Hu()});function pWn(e,t){return e.map(n=>hme(n,t))}function hWn(e,t){return e.map(n=>hme(n,t))}function mWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function gWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=mWn(n,t);return Or(i,r)}function yWn(e){let t=e.reduce((n,r)=>k9(r)?[...n,cr(r)]:n,[]);return Sr(t)}function hme(e,t){return rs(e)?gc(pWn(e.allOf,t)):Yn(e)?Sr(hWn(e.anyOf,t)):qs(e)?gWn(e,t,e.properties):Or({})}function PE(e,t,n){let r=js(t)?yWn(t):t,i=xl(t)?Gu(t):t,s=bs(e),o=bs(t);return Ai(e)?agt(e,i,n):wl(t)?cgt(e,t,n):s&&o?oi("Pick",[e,r],n):!s&&o?oi("Pick",[e,r],n):s&&!o?oi("Pick",[e,r],n):de({...hme(e,i),...n})}var l3=v(()=>{Nt();x9();RE();Dd();Bu();Ol();oo();Hh();tL();Xn();Zc();mme();pme()});function SWn(e,t,n){return{[t]:PE(e,[t],vi(n))}}function EWn(e,t,n){return t.reduce((r,i)=>({...r,...SWn(e,i,n)}),{})}function _Wn(e,t,n){return EWn(e,t.keys,n)}function cgt(e,t,n){let r=_Wn(e,t,n);return Qn(r)}var mme=v(()=>{Ao();l3();Hu()});var d3=v(()=>{mme();pme();l3()});function bWn(e,t){return oi("Partial",[oi(e,t)])}function TWn(e){return oi("Partial",[qh(e)])}function vWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=mc(e[n]);return t}function AWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=vWn(t);return Or(r,n)}function ugt(e){return e.map(t=>lgt(t))}function lgt(e){return Hf(e)?bWn(e.target,e.parameters):bs(e)?TWn(e.$ref):rs(e)?gc(ugt(e.allOf)):Yn(e)?Sr(ugt(e.anyOf)):qs(e)?AWn(e,e.properties):FT(e)||vg(e)||Gf(e)||Rl(e)||nL(e)||zf(e)||Ag(e)||rL(e)||iL(e)?e:Or({})}function s0(e,t){return Ai(e)?dgt(e,t):de({...lgt(e),...t})}var gme=v(()=>{Nt();RE();kg();Ol();Dd();oo();KT();wg();Ut();yme();Xn()});function RWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=s0(e[r],vi(t));return n}function wWn(e,t){return RWn(e.properties,t)}function dgt(e,t){let n=wWn(e,t);return Qn(n)}var yme=v(()=>{Ao();gme();Hu()});var f3=v(()=>{yme();gme()});function kWn(e,t){return oi("Required",[oi(e,t)])}function IWn(e){return oi("Required",[qh(e)])}function xWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function OWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=xWn(t);return Or(r,n)}function fgt(e){return e.map(t=>pgt(t))}function pgt(e){return Hf(e)?kWn(e.target,e.parameters):bs(e)?IWn(e.$ref):rs(e)?gc(fgt(e.allOf)):Yn(e)?Sr(fgt(e.anyOf)):qs(e)?OWn(e,e.properties):FT(e)||vg(e)||Gf(e)||Rl(e)||nL(e)||zf(e)||Ag(e)||rL(e)||iL(e)?e:Or({})}function o0(e,t){return Ai(e)?hgt(e,t):de({...pgt(e),...t})}var Sme=v(()=>{Nt();RE();Ol();Dd();oo();KT();Ut();wg();Eme();Xn()});function PWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],t);return n}function NWn(e,t){return PWn(e.properties,t)}function hgt(e,t){let n=NWn(e,t);return Qn(n)}var Eme=v(()=>{Ao();Sme()});var p3=v(()=>{Eme();Sme()});function CWn(e,t){return t.map(n=>bs(n)?_me(e,n.$ref):Pl(e,n))}function _me(e,t){return t in e?bs(e[t])?_me(e,e[t].$ref):Pl(e,e[t]):Zn()}function MWn(e){return QI(e[0])}function DWn(e){return wE(e[0],e[1])}function LWn(e){return $I(e[0])}function UWn(e){return s0(e[0])}function FWn(e){return OE(e[0],e[1])}function jWn(e){return PE(e[0],e[1])}function HWn(e){return o0(e[0])}function qWn(e,t,n){let r=CWn(e,n);return t==="Awaited"?MWn(r):t==="Index"?DWn(r):t==="KeyOf"?LWn(r):t==="Partial"?UWn(r):t==="Omit"?FWn(r):t==="Pick"?jWn(r):t==="Required"?HWn(r):Zn()}function BWn(e,t){return zI(Pl(e,t))}function GWn(e,t){return VI(Pl(e,t))}function zWn(e,t,n){return WI(wL(e,t),Pl(e,n))}function VWn(e,t,n){return Fh(wL(e,t),Pl(e,n))}function WWn(e,t){return gc(wL(e,t))}function KWn(e,t){return XI(Pl(e,t))}function YWn(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Pl(e,t[r])}),{}))}function ZWn(e,t){let[n,r]=[Pl(e,a3(t)),o3(t)],i=BI(t);return i.patternProperties[r]=n,i}function JWn(e,t){return bs(t)?{..._me(e,t.$ref),[so]:t[so]}:t}function XWn(e,t){return Ld(wL(e,t))}function QWn(e,t){return Sr(wL(e,t))}function wL(e,t){return t.map(n=>Pl(e,n))}function Pl(e,t){return qu(t)?de(Pl(e,is(t,[wa])),t):GI(t)?de(Pl(e,is(t,[Ff])),t):bE(t)?de(JWn(e,t),t):jf(t)?de(BWn(e,t.items),t):UT(t)?de(GWn(e,t.items),t):Hf(t)?de(qWn(e,t.target,t.parameters)):qf(t)?de(zWn(e,t.parameters,t.returns),t):Bf(t)?de(VWn(e,t.parameters,t.returns),t):rs(t)?de(WWn(e,t.allOf),t):jT(t)?de(KWn(e,t.items),t):qs(t)?de(YWn(e,t.properties),t):qT(t)?de(ZWn(e,t)):Il(t)?de(XWn(e,t.items||[]),t):Yn(t)?de(QWn(e,t.anyOf),t):t}function $Wn(e,t){return t in e?Pl(e,e[t]):Zn()}function mgt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:$Wn(e,n)}),{})}var ggt=v(()=>{Tg();nhe();wg();dL();H9();fL();pL();Hh();BT();Dd();SL();TL();Ol();u3();d3();ka();f3();AL();p3();kE();oo();Ut();Xn()});function ygt(e){return new bme(e)}var bme,Sgt=v(()=>{Tg();Ut();ggt();bme=class{constructor(t){let n=mgt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:de(this.$defs[t],n)};return de({[Oe]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var Tme=v(()=>{Sgt()});function Egt(e,t){return de({[Oe]:"Not",not:e},t)}var _gt=v(()=>{Nt();Ut()});var vme=v(()=>{_gt()});function bgt(e,t){return Bf(e)?Ld(e.parameters,t):Zn()}var Tgt=v(()=>{kE();ka();Xn()});var Ame=v(()=>{Tgt()});function vgt(e,t={}){Hs(t.$id)&&(t.$id=`T${e4n++}`);let n=BI(e({[Oe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,de({[Cd]:"Recursive",...n},t)}var e4n,Agt=v(()=>{R9();Nt();Zc();Ut();e4n=0});var Rme=v(()=>{Agt()});function Rgt(e,t){let n=Zr(e)?new globalThis.RegExp(e):e;return de({[Oe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var wgt=v(()=>{Nt();Zc();Ut()});var wme=v(()=>{wgt()});function t4n(e){return rs(e)?e.allOf:Yn(e)?e.anyOf:Il(e)?e.items??[]:[]}function kgt(e){return t4n(e)}var Igt=v(()=>{Xn()});var kme=v(()=>{Igt()});function xgt(e,t){return Bf(e)?de(e.returns,t):Zn(t)}var Ogt=v(()=>{Nt();ka();Xn()});var Ime=v(()=>{Ogt()});var Pgt=v(()=>{});var Ngt=v(()=>{});var Cgt=v(()=>{Pgt();Ngt()});var Mgt=v(()=>{});var Dgt=v(()=>{Mgt()});function Lgt(e){return new xme(e)}var xme,Ome,Ugt=v(()=>{Ut();Xn();xme=class{constructor(t){this.schema=t}Decode(t){return new Ome(this.schema,t)}},Ome=class{constructor(t,n){this.schema=t,this.decode=n}EncodeTransform(t,n){let s={Encode:o=>n[so].Encode(t(o)),Decode:o=>this.decode(n[so].Decode(o))};return{...n,[so]:s}}EncodeSchema(t,n){let r={Decode:this.decode,Encode:t};return{...n,[so]:r}}Encode(t){return bE(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var Pme=v(()=>{Ugt()});function Fgt(e={}){return de({[Oe]:e[Oe]??"Unsafe"},e)}var jgt=v(()=>{Nt();Ut()});var Nme=v(()=>{jgt()});function Hgt(e){return de({[Oe]:"Void",type:"void"},e)}var qgt=v(()=>{Nt();Ut()});var Cme=v(()=>{qgt()});var Mme={};Rr(Mme,{Any:()=>AE,Argument:()=>pht,Array:()=>zI,AsyncIterator:()=>VI,Awaited:()=>QI,BigInt:()=>ZI,Boolean:()=>C9,Capitalize:()=>Xmt,Composite:()=>amt,Const:()=>mmt,Constructor:()=>WI,ConstructorParameters:()=>ymt,Date:()=>q9,Enum:()=>Emt,Exclude:()=>r0,Extends:()=>n0,Extract:()=>i0,Function:()=>Fh,Index:()=>wE,InstanceType:()=>jmt,Instantiate:()=>zmt,Integer:()=>Wmt,Intersect:()=>gc,Iterator:()=>XI,KeyOf:()=>$I,Literal:()=>cr,Lowercase:()=>$mt,Mapped:()=>Yht,Module:()=>ygt,Never:()=>Zn,Not:()=>Egt,Null:()=>G9,Number:()=>Md,Object:()=>Or,Omit:()=>OE,Optional:()=>mc,Parameters:()=>bgt,Partial:()=>s0,Pick:()=>PE,Promise:()=>F9,Readonly:()=>zu,ReadonlyOptional:()=>r3,Record:()=>s3,Recursive:()=>vgt,Ref:()=>qh,RegExp:()=>Rgt,Required:()=>o0,Rest:()=>kgt,ReturnType:()=>xgt,String:()=>Vf,Symbol:()=>V9,TemplateLiteral:()=>D9,Transform:()=>Lgt,Tuple:()=>Ld,Uint8Array:()=>Z9,Uncapitalize:()=>tgt,Undefined:()=>K9,Union:()=>Sr,Unknown:()=>IE,Unsafe:()=>Fgt,Uppercase:()=>rgt,Void:()=>Hgt});var Bgt=v(()=>{lL();phe();dL();fL();H9();yL();M9();Fhe();Hhe();pL();qhe();B9();Bhe();eme();vL();rme();BT();Hh();ime();ome();ame();Dd();ume();SL();TL();Bu();Ao();Tme();ka();vme();z9();zT();Ol();u3();kg();Ame();f3();d3();j9();WT();i3();AL();Rme();KT();wme();p3();kme();Ime();JI();W9();xg();Pme();kE();J9();Y9();oo();e0();Nme();Cme()});var I,Ggt=v(()=>{Bgt();I=Mme});var Ro=v(()=>{nhe();Tg();Uh();lhe();eht();cL();sht();uL();Ut();lL();dL();phe();fL();H9();yL();M9();Fhe();Hhe();pL();qhe();B9();Bhe();eme();vL();rme();BT();Hh();ime();ome();ame();Dd();SL();ume();TL();Bu();Tme();Ao();ka();vme();z9();zT();Ol();u3();kg();Ame();f3();d3();j9();WT();i3();AL();Rme();KT();wme();p3();kme();Ime();Cgt();Dgt();JI();W9();xg();Pme();kE();J9();Y9();oo();e0();Nme();Cme();Ggt()});var n4n,Dme,Lme=v(()=>{"use strict";Ro();n4n=I.Object({at:I.String({description:"ISO 8601 timestamp the spec review was signed. Drift sweep walks `git log --since=` against the unit spec to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from legacy state. Real reviews omit this field."}))},{additionalProperties:!1}),Dme=I.Object({at:I.String({description:"ISO 8601 timestamp the approval was signed. Drift sweep walks `git log --since=` against declared output paths to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from a legacy `status: completed` unit. Real approvals omit this field."}))},{additionalProperties:!1})});var zgt,He,Ia=v(()=>{"use strict";zgt=Se(Gb(),1),He=new zgt.Ajv({allErrors:!0,strict:!1})});function Jc(e){switch(e){case"blocker":return 0;case"high":return 1;case"medium":return 2;case"low":return 3;default:return 2}}function Vgt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return kL.includes(e)?Jc(e):Jc("high")}function a0(e){return typeof e!="string"||e.length===0?!0:Jc(e)<=Vgt()}var h3,kL,Wgt,Kgt,r4n,i4n,s4n,o4n,m3,Ume,a4n,ili,IL,xL,Ygt=v(()=>{"use strict";Ro();Ia();h3=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],kL=["blocker","high","medium","low"];Wgt="^(?:FB-)?\\d+$",Kgt=["iterations","closed_at"],r4n=I.Object({unit:I.Union([I.String(),I.Null()],{description:"Unit name this feedback targets (e.g. 'unit-03-business-context'). Null when the FB is intent-scope (no specific unit). Set at create time, immutable thereafter \u2014 to retarget, reject and create a new FB."}),invalidates:I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. Examples: ['user'] (user re-review needed), ['code-reviewer', 'spec'] (those two reviewers re-sign), [] (no invalidation \u2014 closure is informational only). Default is the role of the FB's filer (e.g. user-chat \u2192 ['user'], adversarial-review \u2192 [])."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the classification choice. Set by the classifier fix-hat via haiku_feedback_set_targets when the FB lands without targets (typical of user-authored FBs). Surfaced in the SPA so reviewers can see why the classifier routed the way it did."}))},{additionalProperties:!1}),i4n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),s4n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...h3]})),severity:I.Optional(I.String({enum:[...kL]})),author:I.Optional(I.String()),author_type:I.Optional(I.String({enum:["agent","human","system"]})),created_at:I.Optional(I.String()),source_ref:I.Optional(I.Union([I.String(),I.Null()])),attachment:I.Optional(I.String()),inline_anchor:I.Optional(I.Object({},{additionalProperties:!0})),targets:I.Optional(r4n),closure_reply:I.Optional(i4n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...Kgt]}},additionalProperties:!0}),o4n=I.Object({selected_text:I.String({minLength:1,maxLength:1e3,description:"The literal text excerpt the feedback anchors to. The SPA greps the rendered artifact body for this string, so it must match the source verbatim (including whitespace inside the span)."}),paragraph:I.Integer({minimum:0,maximum:1e4,description:"Zero-based paragraph index in the rendered artifact body. Used as a tiebreaker when the same selected_text appears more than once."}),location:I.String({maxLength:500,description:"Human-readable label rendered on the feedback card (e.g. 'Unit: Threat model and security hardening'). Display only \u2014 not used for routing."}),comment_id:I.Optional(I.String({maxLength:200,description:"Optional DOM id the SPA can scroll-to. Defaulted by the engine when omitted."})),file_path:I.Optional(I.String({maxLength:1e3,description:"Repo-relative path to the artifact file (e.g. .haiku/intents//stages//units/.md). The SPA parses this to route to the right tab; agents can grep it for selected_text to land on the line."})),content_sha:I.Optional(I.String({maxLength:64,description:"Optional sha of the artifact's raw body at the time of anchoring. The SPA uses it to paint stale highlights when the body has drifted since."}))},{additionalProperties:!1}),m3=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit (or pass empty) to log an intent-scope finding."})),title:I.String({minLength:1,maxLength:120,description:"Short title for the feedback item (max 120 chars)."}),body:I.String({minLength:1,description:"Markdown body describing the finding."}),severity:I.String({enum:[...kL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${kL.join(" | ")}. blocker = stops the gate, fix first; high = fix before delivery; medium = should fix; low = nice-to-have / nit. The fix-loop dispatches higher-severity findings first.`}),origin:I.Optional(I.String({enum:[...h3],description:`Source of the feedback. One of: ${h3.join(" | ")} (default: agent).`})),source_ref:I.Optional(I.String({description:"Optional reference \u2014 review-agent name, annotation ID, etc."})),author:I.Optional(I.String({description:"Who created it (default: agent)."})),inline_anchor:I.Optional(o4n),target_unit:I.Optional(I.Unsafe({type:["string","null"],description:"Unit this feedback targets. Null/omitted for intent-scope. Immutable post-create."})),target_invalidates:I.Optional(I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. Defaulted by handler from origin if omitted."})),state_file:I.Optional(I.String())},{additionalProperties:!1}),Ume=He.compile(m3),a4n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:Wgt}),reason:I.String({minLength:1,description:"Why the FB is being rejected. Persisted in the closing iteration's reason field."}),state_file:I.Optional(I.String())},{additionalProperties:!1}),ili=He.compile(a4n),IL=Kgt,xL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var c0,Fme,g3,jme,y3,Hme,Zgt=v(()=>{"use strict";Ro();Ia();c0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),session_id:I.Optional(I.String({description:"Override the session ID to await. When omitted, the live review session for this intent is resolved from the in-memory registry (haiku_run_next passes it explicitly on the inline path). No session id is persisted to the repo."})),gate_context:I.Optional(I.String({description:"What this gate advances on approval \u2014 intent_completion | intent_review | elaborate_to_execute | stage_gate. Passed by haiku_run_next on the inline path so post-decision routing needs no repo-persisted pointer. Defaults to stage_gate when omitted."})),next_stage:I.Optional(I.Unsafe({type:["string","null"],description:"Stage to advance to on approval (non-final stage gate), or null. Passed by haiku_run_next on the inline path."})),next_phase:I.Optional(I.Unsafe({type:["string","null"],description:"Phase to advance to on approval (spec / intent_review gates), or null. Passed by haiku_run_next on the inline path."})),auto_open:I.Optional(I.Boolean({description:"Hard override on the local browser launch. Defaults to true. When true, the tool launches the review URL in the default browser only if NO SPA tab is already attached for this session \u2014 the live-websocket check is authoritative, so passing true never causes a duplicate tab. Set to false on hosts where the local-browser launch is known to fail (headless containers, sandboxed runners) \u2014 the tool will still complete the await, the user just has to follow the URL themselves."})),review_url:I.Optional(I.String({description:"Review URL to open. Optional. Pass the review_url from the gate_review action \u2014 if omitted, no browser will be launched but the await will still complete when the user submits a decision via the SPA."})),state_file:I.Optional(I.String({description:"Internal \u2014 session state file path for telemetry."}))},{additionalProperties:!1}),Fme=He.compile(c0),g3=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by ask_user_visual_question."}),url:I.Optional(I.String({description:"Question URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),jme=He.compile(g3),y3=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by pick_design_direction."}),intent_slug:I.Optional(I.String({description:"Intent slug \u2014 used for stage-branch reconciliation after the user selects an archetype. Optional: handler also resolves it from the session record. Pass it explicitly to override."})),url:I.Optional(I.String({description:"Direction URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Hme=He.compile(y3)});var OL,u0,qme,Jgt=v(()=>{"use strict";Ro();Ia();OL=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],u0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...OL],description:"Which admin op to run: force_stage_complete, set_intent_field, reset_drift, mutate_feedback, preview_cursor."}),reason:I.Optional(I.String({description:"Why you're running this admin op \u2014 the cause that led here (e.g. 'cursor stuck on stage `design` after a manual branch edit; force-completing to unblock'). Surfaced verbatim to the user at the top of the confirmation picker so they have the context to approve or cancel. Plain prose, not a status code."})),stage:I.Optional(I.String({description:"Target stage (force_stage_complete, mutate_feedback)."})),field:I.Optional(I.String({description:"intent.md FM key (set_intent_field)."})),value:I.Optional(I.Unsafe({type:["string","array","number","boolean","null","object"],description:"intent.md FM value (set_intent_field)."})),feedback_id:I.Optional(I.String({description:"Feedback ID to mutate (mutate_feedback). For batch mutations, use feedback_ids instead."})),feedback_ids:I.Optional(I.Array(I.String(),{description:"Batch form of feedback_id \u2014 array of FB IDs to mutate in a single call (mutate_feedback). The same `patch` is applied to every FB in the list. Use this instead of firing the picker confirmation per-FB."})),patch:I.Optional(I.Object({},{additionalProperties:!0,description:"FB FM keys to set (mutate_feedback). Example: { closed_at: '2026-...', closed_by: 'manual_review' }."})),fields:I.Optional(I.Object({},{additionalProperties:!0,description:"Batch form of field/value \u2014 object of intent.md FM keys to set in a single call (set_intent_field). Example: { mode: 'autopilot', archived: false }."})),close_open_feedback:I.Optional(I.Boolean({description:'force_stage_complete only. When true, also stamps `closed_at` + `closed_by: "force_complete"` on every open FB on the targeted stages (and on intent scope when the final stage is the target). Open FBs otherwise continue blocking the cursor even after every approval is signed.'})),unit:I.Optional(I.String({description:"Unit slug or filename stem (set_unit_iterations). Example: 'unit-03-my-thing' or 'unit-03'."})),iterations:I.Optional(I.Array(I.Object({hat:I.String({minLength:1}),result:I.String({enum:["advance","reject"]}),at:I.Optional(I.String())},{additionalProperties:!0}),{description:"Explicit iterations[] array to write (set_unit_iterations). Omit to auto-synthesize one `advance` entry per hat in the stage's `hats:` sequence \u2014 the typical recovery shape when a legacy unit has no iterations but its outputs landed."}))},{additionalProperties:!1}),qme=He.compile(u0)});var l0,Bme,Xgt=v(()=>{"use strict";Ro();Ia();l0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),stage:I.String({minLength:1,description:"Stage the discovery belongs to (e.g. `inception`, `design`)."}),template:I.String({minLength:1,description:"Discovery template name (matches the `discovery/.md` file under the studio's stage)."})},{additionalProperties:!1}),Bme=He.compile(l0)});var Bh,Og,S3,Gme,E3,zme,_3,Vme,b3,Wme,T3,Kme,v3,Yme,A3,Zme,R3,Jme,w3,Xme,k3,Qme,Qgt=v(()=>{"use strict";Ro();Ia();Bh=I.Optional(I.String()),Og={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit for intent-scope feedback."})),feedback_id:I.Integer({minimum:1,maximum:999,description:"Feedback identifier \u2014 the numeric prefix of the FB on disk (e.g. for `008-output-discovery-\u2026md`, pass `8`). Just a number; no `FB-` prefix, no zero-padding, no string form. Range fits the on-disk `NNN-\u2026md` 3-digit padding (max 999, plenty of room). The handler does prefix-match lookup against `-*.md` \u2014 the agent never needs to know the slug part. Pre-2026-05-07 intents that used 2-digit padding (`08-\u2026md`) still resolve correctly; the lookup parses leading digits regardless of width."})},S3=I.Object({...Og,state_file:Bh},{additionalProperties:!1}),Gme=He.compile(S3),E3=I.Object({...Og,to_stage:I.String({description:"Target stage. Empty string for intent-scope. Same as `stage` to confirm placement; different to relocate."}),state_file:Bh},{additionalProperties:!1}),zme=He.compile(E3),_3=I.Object({...Og,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:Bh},{additionalProperties:!1}),Vme=He.compile(_3),b3=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit to list across all stages."})),closed:I.Optional(I.Boolean({description:"If true, list only closed feedback (closed_at != null). If false, list only open feedback (closed_at == null). Omit to list both."})),state_file:Bh},{additionalProperties:!1}),Wme=He.compile(b3),T3=I.Object({...Og,state_file:Bh},{additionalProperties:!1}),Kme=He.compile(T3),v3=I.Object({...Og,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:Bh},{additionalProperties:!1}),Yme=He.compile(v3),A3=I.Object({...Og,target_unit:I.Unsafe({type:["string","null"],description:"Unit slug this FB targets (e.g. 'unit-03-business-context'), or null for intent-scope. Set once; subsequent calls are rejected."}),target_invalidates:I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. e.g. ['user'] for user-recoverable findings, ['code-reviewer', 'spec'] for cross-role invalidation. Empty array is allowed (informational closure with no rerun)."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the classification choice. Stored on `targets.reasoning` and surfaced in the SPA next to the target so reviewers can see WHY the classifier picked this target_unit / target_invalidates combo. Encouraged for non-obvious classifications (e.g. cross-cutting findings routed to intent-scope)."})),state_file:Bh},{additionalProperties:!1}),Zme=He.compile(A3),R3=I.Object({...Og,severity:I.String({enum:["blocker","high","medium","low"],description:"Finding urgency. blocker = stops the gate, fix first; high = fix before delivery; medium = should fix; low = nice-to-have / nit. Set once; subsequent calls on an already-classified FB are rejected."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the severity choice. Surfaced in the SPA next to the badge so reviewers see WHY the classifier ranked it this way. Encouraged for non-obvious calls (e.g. a low-looking finding bumped to blocker because it gates a downstream unit)."})),state_file:Bh},{additionalProperties:!1}),Jme=He.compile(R3),w3=I.Object({...Og,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next fix-hat. State what you did about the finding, what you concluded, and what the next hat needs to know to pick up cleanly. Recorded on this iteration and embedded in the next fix-hat's dispatch. Distinct from `reply` (the requester-facing closure note); this is the inter-hat baton."}),reply:I.Optional(I.String({description:"REQUIRED when this advance closes the feedback (terminal hat in fix_hats). A short plain-language explanation of what was changed, written to the requester. Stored on the FB frontmatter as `closure_reply` and surfaced in the SPA review timeline. Mid-chain advances may omit it."})),resolution:I.Optional(I.String({enum:["non_actionable"],description:"Set to `non_actionable` to TERMINAL-CLOSE this finding immediately from ANY hat, short-circuiting the rest of the fix_hats chain. Use ONLY when the finding is valid but has no code fix \u2014 a question you can answer in `message`/`reply`, an out-of-scope/process note, or an immutable/already-superseded target. The FB closes as `non_actionable` (distinct from a fixed-closure and from `haiku_feedback_reject`'s invalid-rejection) and is never re-dispatched. Omit for a normal advance."})),state_file:Bh},{additionalProperties:!1}),Xme=He.compile(w3),k3=I.Object({...Og,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the fix-hat that gets re-run. Explain why the current hat's work was rejected AND what must change to pass. Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:Bh},{additionalProperties:!1}),Qme=He.compile(k3)});var I3,PL,x3,$me,O3,ege,P3,tge,$gt=v(()=>{"use strict";Ro();Ia();I3=I.Optional(I.String()),PL=I.Object({title:I.String({description:'Short human-readable title (3\u20138 words, max 80 chars, single line, no trailing period). Must be a deliberate summary \u2014 NOT the first 80 chars of the description. Good: "Add archivable intents". Bad: "Add archivable intents to H\xB7AI\xB7K\xB7U. Users need a way to soft-hide\u2026".'}),description:I.String({description:"Full description of what the intent is about (2\u20135 sentences covering scope, motivation, and constraints). Stored verbatim in the intent body."}),studio_candidates:I.Array(I.String(),{description:"REQUIRED. The 2\u20134 studios (canonical name, slug, or alias) that best fit the description \u2014 pre-narrows the studio picker. Fetch the options from `haiku_studio_list` (name + description per studio) and pick the closest matches. At least one must resolve; the picker still shows the rest behind a 'Show all studios\u2026' expansion. Omitting it is rejected with instructions to fetch the list and retry."}),slug:I.Optional(I.String({description:"URL-friendly slug for the intent (auto-generated from title if not provided)"})),context:I.Optional(I.String({description:"Conversation context summary \u2014 highlights from the conversation that led to this intent"})),state_file:I3},{additionalProperties:!1}),x3=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:I3},{additionalProperties:!1}),$me=He.compile(x3),O3=I.Object({include_archived:I.Optional(I.Boolean({description:"When true, include archived intents in the result and add an 'archived' field to each response object. Defaults to false."})),state_file:I3},{additionalProperties:!1}),ege=He.compile(O3),P3=I.Object({intent:I.String({minLength:1}),field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must match the field's declared type in INTENT_FRONTMATTER_SCHEMA. Mismatches return `intent_field_type_mismatch`."}),state_file:I3},{additionalProperties:!1}),tge=He.compile(P3)});var wo,eyt,N3,nge,C3,rge,M3,ige,D3,sge,NL,CL,L3,oge,U3,age,F3,cge,j3,uge,H3,lge,q3,dge,B3,fge,G3,pge,z3,hge,V3,mge,W3,gge,d0,yge,K3,Sge,Y3,Ege,Z3,_ge,tyt=v(()=>{"use strict";Ro();Ia();wo=I.Optional(I.String()),eyt=I.Object({state_file:wo},{additionalProperties:!1}),N3=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String({description:"Stage name. Defaults to the intent's active_stage when omitted."})),rationale:I.String({minLength:1,description:"Rationale (\u226510 chars in handler check) explaining why this divergence is intentional."}),state_file:wo},{additionalProperties:!1}),nge=He.compile(N3),C3=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),no_decisions:I.Optional(I.Boolean()),decision:I.Optional(I.String()),options:I.Optional(I.Array(I.String())),choice:I.Optional(I.String()),source:I.Optional(I.String({enum:["user","autonomous-acknowledged"],description:"Who made the call. user = user picked from agent-presented options. autonomous-acknowledged = agent chose and surfaced for veto-style approval."})),rationale:I.Optional(I.String()),state_file:wo},{additionalProperties:!1}),rge=He.compile(C3),M3=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),ige=He.compile(M3),D3=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),sge=He.compile(D3),NL=eyt,CL=He.compile(eyt),L3=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),oge=He.compile(L3),U3=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),age=He.compile(U3),F3=I.Object({field:I.String({minLength:1,description:"Dot-separated path (e.g. 'studio', 'providers.ticketing.type', 'providers.spec.config.space')"}),state_file:wo},{additionalProperties:!1}),cge=He.compile(F3),j3=I.Object({field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must validate against the field's declared shape in settings.schema.json. Pass null to delete."}),state_file:wo},{additionalProperties:!1}),uge=He.compile(j3),H3=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),lge=He.compile(H3),q3=I.Object({task:I.String({minLength:1,description:"The work to run through the stage's hat loop."}),studio:I.Optional(I.String({description:"Studio slug (e.g. `software`). Defaults to `software` when omitted and present."})),stage:I.Optional(I.String({description:"Stage within the studio (e.g. `development`). Defaults to the studio's build-class execution stage when omitted."})),state_file:wo},{additionalProperties:!1}),dge=He.compile(q3),B3=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),fge=He.compile(B3),G3=I.Object({intent:I.Optional(I.String({description:"Optional intent slug. Defaults to the sole active intent."})),stage:I.Optional(I.String({description:"Optional stage name. Defaults to the intent's active_stage."})),gate_kind:I.Optional(I.String({enum:["spec","approval"],description:"When set, opens the review pane as a workflow-bound gate session (vs. ad-hoc). 'spec' = pre-execute spec review (stamps reviews.user). 'approval' = post-execute output approval (stamps approvals.user)."})),units:I.Optional(I.Array(I.String(),{description:"Unit identifiers the user is gating. Surfaced by the cursor's user_gate action; ignored when gate_kind is unset."})),state_file:wo},{additionalProperties:!1}),pge=He.compile(G3),z3=I.Object({action:I.Optional(I.String({enum:["list","add","review","promote"],description:"Defaults to `list`."})),description:I.Optional(I.String({description:"Description for the new backlog item (used with action=add)."})),state_file:wo},{additionalProperties:!1}),hge=He.compile(z3),V3=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),mge=He.compile(V3),W3=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),gge=He.compile(W3),d0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name to reset (e.g. 'product')"})},{additionalProperties:!1}),yge=He.compile(d0),K3=I.Object({intent:I.Optional(I.String({description:"Specific intent slug to scan in cwd (skips multi-branch mode)"})),apply:I.Optional(I.Boolean()),skip_branches:I.Optional(I.Boolean()),state_file:wo},{additionalProperties:!1}),Sge=He.compile(K3),Y3=I.Object({intent:I.String({minLength:1,description:"Intent slug to scope the view session. The SPA will only serve files under this intent's directory."}),stage:I.Optional(I.String({description:"Optional stage name to narrow the artifact list. Defaults to the intent's active_stage when omitted."})),artifact:I.Optional(I.String({description:"Optional intent-relative path to deep-link the SPA to a single artifact file (e.g. `stages/design/artifacts/wireframe.svg`). When omitted the SPA lists every artifact in scope."})),mode:I.Optional(I.String({enum:["auto","viewer","boot"],description:"Mode preference. `auto` (default) tries boot first and falls back to viewer. `boot` forces a spawned dev server and hard-fails when no `command` is supplied and no fast-path is detected. `viewer` forces the SPA artifact-browser route."})),command:I.Optional(I.Array(I.String({minLength:1}),{minItems:1,description:'Single-process boot \u2014 explicit command argv (e.g. `["uvicorn", "app:main"]`, `["bin/dev"]`, `["go", "run", "./cmd/server"]`). Engine spawns with `PORT` + `HOST` env vars set so the dev server binds where the supervisor expects. Use this for one-process apps. For monorepos / stacks (api + frontend + db + worker), use `processes` instead.'})),cwd:I.Optional(I.String({description:"Working directory for `command`, relative to the intent dir. Defaults to the intent dir when omitted. Ignored when `processes` is supplied (each process declares its own cwd)."})),processes:I.Optional(I.Array(I.Object({name:I.String({minLength:1,pattern:"^[a-zA-Z][a-zA-Z0-9_-]*$",description:"Identifier for this process. Used to build service-discovery env vars (`_PORT`, `_URL`) injected into dependents, and as the `primary` selector. Lowercase letters / digits / `-` / `_`; must start with a letter."}),command:I.Array(I.String({minLength:1}),{minItems:1,description:'Argv for this process (e.g. `["npm", "run", "api"]`, `["redis-server"]`, `["docker", "compose", "up", "postgres"]`).'}),cwd:I.Optional(I.String({description:'Working directory for this process, relative to the intent dir. Defaults to the intent dir when omitted (e.g. `"backend"` for `packages/backend/` in a monorepo).'})),port_env:I.Optional(I.String({minLength:1,description:'Env-var name the engine assigns the allocated ephemeral port to. Defaults to `PORT`. Override when the process expects a different name (e.g. `"RAILS_PORT"`, `"API_PORT"`).'})),ready_url:I.Optional(I.String({description:'Optional HTTP URL the supervisor polls to confirm this process is ready before starting dependents (e.g. `"http://127.0.0.1:{port}/healthz"`). Use `{port}` as the placeholder for the allocated port. Falls back to TCP port-bind detection when omitted.'})),depends_on:I.Optional(I.Array(I.String({minLength:1}),{description:"Names of processes that must be ready before this one starts. The supervisor topologically sorts the graph and starts processes in dependency order. Each dependency's `_PORT` and `_URL` env vars are injected into this process's env so the runtime can do service discovery (e.g. an API depending on `db` sees `DB_PORT` + `DB_URL`)."})),no_port:I.Optional(I.Boolean({description:"Set true for processes that don't listen on a TCP port (queue workers, background daemons, schedulers). The supervisor still tracks lifecycle but skips port allocation and readiness checking."}))},{additionalProperties:!1}),{minItems:1,description:"Process group \u2014 boot multiple coordinated processes (api + frontend + db + worker etc.). The supervisor allocates an ephemeral port per process (unless `no_port`), starts them in dependency order, waits for each to be ready, and exposes `_PORT` + `_URL` env vars to every dependent. Killing the session kills the whole group. Mutually exclusive with `command`."})),primary:I.Optional(I.String({minLength:1,description:"Name of the process whose URL is returned as the top-level `url` field \u2014 i.e., the one Playwright drives. Required when `processes` has more than one port-bound entry. Ignored for single-process boots."})),state_file:wo},{additionalProperties:!1}),Ege=He.compile(Y3),Z3=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),_ge=He.compile(Z3)});var f0,bge,nyt=v(()=>{"use strict";Ro();Ia();f0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),kind:I.String({enum:["review","approval"],description:"Which witness to stamp: `review` (PRE-execute spec audit) or `approval` (POST-execute work audit). Matches the dispatch phase your subagent ran under."}),role:I.String({minLength:1,description:"Your review role (e.g. `continuity`, `cross-stage-consistency`, `completeness`, `spec`, or a studio review-agent name). Stamps `reviews.` / `approvals.`."}),stage:I.String({minLength:1,description:"Stage the review/approval belongs to."})},{additionalProperties:!1}),bge=He.compile(f0)});var p0,Tge,h0,vge,m0,Age,g0,Rge,ryt=v(()=>{"use strict";Ro();Ia();p0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Studio names to present in the picker. Empty/omitted = every available studio. Single element = auto-select without prompting."}))},{additionalProperties:!1}),Tge=He.compile(p0),h0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Mode names to present in the picker (continuous, discrete, autopilot, quick). Empty/omitted = every mode valid for the intent's current state. Single element = auto-select without prompting."}))},{additionalProperties:!1}),vge=He.compile(h0),m0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Stage name to auto-select (zero or one element \u2014 quick mode is single-stage by definition)."}))},{additionalProperties:!1}),Age=He.compile(m0),g0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),stage:I.String({minLength:1,description:"Name of the optional stage to drop. Must be the intent's active stage and not yet started."})},{additionalProperties:!1}),Rge=He.compile(g0)});var iyt,y0,wge,S0,kge,E0,Ige,J3,xge,X3,Oge,_0,Pge,syt=v(()=>{"use strict";Ro();Ia();iyt=I.Optional(I.String()),y0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),body:I.String({minLength:1,description:"Markdown body of the captured conversation. Should summarize what the agent proposed, what the user clarified, and the final agreement. Anchored on specific intent content."})},{additionalProperties:!1}),wge=He.compile(y0),S0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the `elaborate_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded as the seal's rationale. Stored on FM as `verified_notes`."}))},{additionalProperties:!1}),kge=He.compile(S0),E0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the `decompose_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded as the seal's rationale. Stored on FM as `decompose_verified_notes`."}))},{additionalProperties:!1}),Ige=He.compile(E0),J3=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:iyt},{additionalProperties:!1}),xge=He.compile(J3),X3=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must match the field's declared type."}),state_file:iyt},{additionalProperties:!1}),Oge=He.compile(X3),_0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the pre-intent `elaborate_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded on intent FM as `verified_notes`."}))},{additionalProperties:!1}),Pge=He.compile(_0)});var Q3,Nge,$3,Cge,eY,Mge,tY,Dge,nY,Lge,rY,Uge,iY,Fge,oyt=v(()=>{"use strict";Ro();Ia();Q3=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),hat:I.String({minLength:1,description:"Hat name"}),fix:I.Optional(I.Boolean({description:"When true, resolve the fix-loop-scoped mandate (stages//fix-hats/.md, falling back to the production hats/.md when absent). Use ONLY from fix-loop dispatches; omit for production hat work."}))},{additionalProperties:!1}),Nge=He.compile(Q3),$3=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Cge=He.compile($3),eY=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Mge=He.compile(eY),tY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.Optional(I.String({minLength:1,description:"Stage name for a stage-scope review/approval agent. OMIT for an intent-completion review agent (resolved from the studio's intent-review-agents/)."})),role:I.String({minLength:1,description:"Review-agent role name"})},{additionalProperties:!1}),Dge=He.compile(tY),nY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),template:I.String({minLength:1,description:"Discovery template name (no .md extension)"})},{additionalProperties:!1}),Lge=He.compile(nY),rY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),phase:I.String({minLength:1,description:"Phase name (e.g. ELABORATION). Case-insensitive \u2014 resolved as phases/.md."})},{additionalProperties:!1}),Uge=He.compile(rY),iY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),name:I.String({minLength:1,description:"Output template name (no .md extension)"})},{additionalProperties:!1}),Fge=He.compile(iY)});var sY,NE,oY,jge,aY,Hge,cY,qge,Bge,uY,Gge,lY,zge,dY,Vge,fY,Wge,pY,Kge,hY,Yge,b0,Zge,ayt=v(()=>{"use strict";Ro();Ia();sY={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),unit:I.String({minLength:1,description:"Unit name (no .md extension). Convention: `unit-NNN-slug` (3-digit zero-pad, max 999). Legacy 2-digit names (`unit-01-foo`) still resolve via numeric-prefix matching \u2014 pass either width and the engine matches by `(number, slug)` parts."})},NE=I.Optional(I.String()),oY=I.Object({...sY,field:I.String({minLength:1,description:"Frontmatter field name. Must be agent-authorable per UNIT_FRONTMATTER_SCHEMA."}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"The field's new value. MUST match the field's declared type in UNIT_FRONTMATTER_SCHEMA \u2014 pass an array for array-typed fields, a string for string-typed, etc. Native types only; stringified JSON is rejected."}),state_file:NE},{additionalProperties:!1}),jge=He.compile(oY),aY=I.Object({...sY,field:I.String({minLength:1,description:"Frontmatter field to read. Agent-authorable/corrective fields only (quality_gates, outputs, inputs, depends_on, model, closes, title, description). FSM-driven fields (iterations, reviews, approvals, started_at) return `unit_field_engine_only`."})},{additionalProperties:!1}),Hge=He.compile(aY),cY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:NE},{additionalProperties:!1}),qge=He.compile(cY),Bge=I.Optional(I.String({description:"Stage the unit lives on. OPTIONAL \u2014 when omitted, the handler resolves it from on-disk layout. Pass it through from the cursor's dispatched action to make this call race-safe against concurrent run_next calls that may switch the working tree."})),uY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Bge,state_file:NE},{additionalProperties:!1}),Gge=He.compile(uY),lY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Bge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next hat. State what you did, what you concluded, and what the next hat needs to know to pick up cleanly (decisions made, open questions, where you left off). Recorded on this iteration and embedded in the next hat's dispatch. Not a status line \u2014 write it for the hat that reads it next."}),state_file:NE},{additionalProperties:!1}),zge=He.compile(lY),dY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Bge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the hat that gets re-run. Explain why the current hat's output was rejected AND what must change to pass (e.g. 'touch targets <44px on mobile \u2014 bump to 44px min and re-check the nav row'). Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:NE},{additionalProperties:!1}),Vge=He.compile(dY),fY=I.Object({...sY,state_file:NE},{additionalProperties:!1}),Wge=He.compile(fY),pY=I.Object({...sY,state_file:NE},{additionalProperties:!1}),Kge=He.compile(pY),hY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),unit:I.String({minLength:1,description:"Unit name without `.md` extension, e.g. `unit-001-foo`. Convention: `unit-NNN-slug` with 3-digit zero-padded number (max 999). Legacy 2-digit names (`unit-01-foo`) still resolve via numeric-prefix matching."}),body:I.String({description:"Full markdown body of the unit. Must be substantive (no placeholders like TBD, TODO, '...')."}),frontmatter:I.Optional(I.Object({},{additionalProperties:!0})),state_file:NE},{additionalProperties:!1}),Yge=He.compile(hY),b0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage the unit lives in"}),unit:I.String({minLength:1,description:"Unit to reset (e.g. 'unit-06-pii-masking-granularity')"})},{additionalProperties:!1}),Zge=He.compile(b0)});var Jge,c4n,mY,u4n,ML,T0,l4n,JT,XT,gY,Xge=v(()=>{"use strict";Ro();Ia();Lme();Jge=["plugin_version","started_at","approvals","sealed_at","mode","stages","archived","archived_at","draft_pr_url","draft_pr_status","draft_pr_ready_at","verified_at","verified_notes"],c4n=["draft","ready","failed"],mY=["continuous","discrete","autopilot","discrete-hybrid","quick"],u4n=I.Record(I.String(),I.Union([Dme,I.Null()])),ML=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...mY]})),studio:I.Optional(I.String()),studio_candidates:I.Optional(I.Array(I.String())),follows:I.Optional(I.String()),clarifications:I.Optional(I.Record(I.String(),I.Unknown())),draft_pr_url:I.Optional(I.String()),draft_pr_status:I.Optional(I.String({enum:[...c4n]})),draft_pr_ready_at:I.Optional(I.String()),verified_at:I.Optional(I.String()),verified_notes:I.Optional(I.String()),external_refs:I.Optional(I.Record(I.String(),I.String()))},{propertyNames:{not:{enum:[...Jge]}},additionalProperties:!0}),T0=He.compile(ML),l4n=new Set(Jge),JT=Object.keys(ML.properties??{}).filter(e=>!l4n.has(e)),XT=Jge,gY=["studio","plugin_version","follows"]});var d4n,cyt=v(()=>{"use strict";Ro();d4n=I.Object({hat:I.String({minLength:1,description:"Hat name (e.g. `researcher`, `distiller`, `verifier`, `feedback-assessor`). Must match a hat declared in the studio's stage hat sequence (or `fix_hats:` for feedback iterations)."}),started_at:I.String({description:"ISO 8601 timestamp when this hat dispatch began. Set when the iteration is appended."}),completed_at:I.Union([I.String(),I.Null()],{description:"ISO 8601 timestamp when this hat's terminal advance/reject landed. Null while the hat is in flight."}),result:I.Union([I.Literal("advance"),I.Literal("reject"),I.Null()],{description:"Outcome of this hat. `advance` = move to next hat (or close on terminal hat). `reject` = loop back to previous hat. Null while in flight."}),reason:I.Optional(I.Union([I.String(),I.Null()],{description:"Optional reason for the result. Required on `reject` (caller must explain what went wrong) and optional on `advance`."}))},{additionalProperties:!1})});var Qge,$ge,uyt=v(()=>{"use strict";Ro();Qge=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),$ge=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var yY,eye,lyt=v(()=>{"use strict";Ro();yY=I.Object({stage:I.Optional(I.String()),status:I.Optional(I.String({enum:["pending","active","completed","blocked"]})),phase:I.Optional(I.String({enum:["","elaborate","execute","review","gate"]})),started_at:I.Optional(I.Union([I.String(),I.Null()])),completed_at:I.Optional(I.Union([I.String(),I.Null()])),gate_entered_at:I.Optional(I.Union([I.String(),I.Null()])),gate_outcome:I.Optional(I.Union([I.String(),I.Null()])),visits:I.Optional(I.Integer({minimum:0})),iterations:I.Optional(I.Array(I.Unknown())),elaboration_turns:I.Optional(I.Integer({minimum:0})),decision_log:I.Optional(I.Array(I.Unknown()))},{additionalProperties:!0}),eye=Object.keys(yY.properties??{})});var fyt,dyt,QT,Pg,CE,Yf,pyt=v(()=>{"use strict";Ro();Ia();fyt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],dyt="^[^\\s:,]+(?:/[^\\s:,]+)*$",QT=I.Object({title:I.Optional(I.String({minLength:1,description:"Unit title \u2014 non-empty string. Defaults to first H1 in the body, or to the unit name."})),description:I.Optional(I.String({description:"Optional unit description."})),depends_on:I.Optional(I.Array(I.String(),{description:"Names of sibling units in the SAME stage that must complete before this one. Each entry must resolve to an actual sibling. No self-reference. No cycles. (Cross-sibling and cycle checks are runtime \u2014 they need the full stage DAG, not expressible in this schema.)"})),inputs:I.Optional(I.Array(I.String({pattern:dyt}),{description:"Cross-stage inputs this unit reads \u2014 paths to artifacts produced by prior stages. Each entry MUST be a file/dir path (no whitespace, no colons or commas, no prose)."})),outputs:I.Optional(I.Array(I.String({pattern:dyt}),{description:"Artifacts this unit produces. Each entry MUST be a real file path (no whitespace, no colons or commas, no prose) \u2014 the gate verifies the path exists on disk at unit completion. Use `inputs:` if you mean to declare what the unit READS; use the body's `## Completion Criteria` section if you mean to declare prose-style success conditions."})),quality_gates:I.Optional(I.Array(I.Object({name:I.String(),command:I.String(),dir:I.Optional(I.String())}),{description:"Build-class only: list of `{name, command, dir?}` executable gate objects. Run at terminal advance_hat time; non-zero exit blocks. Prose strings are silently skipped \u2014 they give no enforcement."})),model:I.Optional(I.String({enum:["haiku","sonnet","opus"],description:"Subagent tier for this unit's hats. `haiku` = mechanical, `sonnet` = standard (default), `opus` = deep reasoning. Cascade: unit > hat > stage > studio."})),closes:I.Optional(I.Array(I.String(),{description:"On revisit iterations, list of FB IDs this unit addresses (e.g. `[FB-01, FB-03]`). Informational \u2014 feedback closure happens via the FB's own iterations + targets.invalidates, not via this field."})),applicable_skills:I.Optional(I.Array(I.String(),{description:"Skill slugs (slash-command names without the leading `/`) identified as relevant for this unit during elaboration. The elaborator populates this from the installed skill registry. Hat subagent prompts surface these automatically so subagents know which skills to reach for."})),external_refs:I.Optional(I.Record(I.String(),I.String(),{description:"External-system references for this unit (e.g. `ticket: PROJ-123`, `design_ref: figma://...`). Populated by the agent when a workflow or source provider is active. Engine doesn't interpret values \u2014 they're the durable handle between H\xB7AI\xB7K\xB7U and the external system. (2026-05-19, provider-injection wave.)"}))},{propertyNames:{not:{enum:[...fyt]}},additionalProperties:!0}),Pg=He.compile(QT),CE=Object.keys(QT.properties??{}),Yf=fyt});var ji=v(()=>{"use strict";Lme();Ygt();Zgt();Jgt();Xgt();Qgt();$gt();tyt();nyt();ryt();syt();oyt();ayt();Xge();cyt();uyt();lyt();pyt()});var gyt={};Rr(gyt,{DIR_INVENTORY_SKIP:()=>_Y,bodyMatchesStoredHash:()=>DL,bodySha256:()=>Ng,buildApprovalRecord:()=>Hd,buildOutputWitnesses:()=>h4n,buildReviewRecord:()=>Nl,fileSha256:()=>v0,isTextBodyExtension:()=>EY,normalizeInputPath:()=>LL,outputSha256:()=>ME,resolveInputWitnesses:()=>bY});import{createHash as SY}from"node:crypto";import{existsSync as $T,readdirSync as f4n,readFileSync as tye,statSync as hyt}from"node:fs";import{join as ev}from"node:path";function Ng(e){if(!$T(e))return"";let t=tye(e,"utf8"),n=t;try{n=(0,nye.default)(t).content}catch{n=t}return n.endsWith(` `)||(n=`${n} -`),nZ("sha256").update(n,"utf8").digest("hex")}function S0(e){if(!JT(e))return"";let t=Lge(e);return nZ("sha256").update(t).digest("hex")}function AL(e,t){if(!JT(e))return!0;let n=Ig(e);if(n&&n===t)return!0;let r=Lge(e,"utf8"),i=r;try{i=(0,Uge.default)(r).content}catch{i=r}if(nZ("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` -`)?i.slice(0,-1):i;return o===i?!1:nZ("sha256").update(o,"utf8").digest("hex")===t}function I_(e){return JT(e)?rZ(e)?Ig(e):S0(e):""}function rZ(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return mWn.has(t)}function gWn(e,t,n){let r={},i=n??jgt(e);for(let s of t){let o=s.startsWith("stages/")?XT(e,s):XT(i,s),a=I_(o);a&&(r[s]=a)}return r}function jgt(e){return XT(e,"..","..","..")}function RL(e,t){let n=t.split("/").filter(Boolean).pop()??"";if(!n)return e;let r=`.haiku/intents/${n}/`;if(e.startsWith(r))return e.slice(r.length);let i=`${t}/`;return e.startsWith(i)?e.slice(i.length):e}function yWn(e){let t={},n=[];try{n=hWn(e)}catch{return t}for(let r of n){if(r.startsWith(".")||iZ.has(r))continue;let i=XT(e,r);try{if(!Ugt(i).isFile())continue}catch{continue}let s=S0(i);s&&(t[r]=s)}return t}function sZ(e){let t=e.repoRoot??jgt(e.intentDir),n={files:{},dirs:{}},r=XT(e.intentDir,"intent.md");if(JT(r)){let i=Ig(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=RL(i,e.intentDir);if(s==="intent.md")continue;let o=XT(e.intentDir,s),a=JT(o)?o:XT(t,s);if(!JT(a))continue;let c=!1;try{c=Ugt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=yWn(a);else{let u=I_(a);u&&(n.files[s]=u)}}return n}function Il(e,t){let n={at:new Date().toISOString(),body_sha256:Ig(e)};return t?{...n,input_witnesses:sZ({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function jd(e,t){return{at:new Date().toISOString()}}var Uge,mWn,iZ,Wf=v(()=>{"use strict";Uge=_e(sn(),1);mWn=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);iZ=new Set([".DS_Store","Thumbs.db",".git",".gitignore","action-log.jsonl","drift-markers.json","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json"])});import{existsSync as QT,readdirSync as Hgt,readFileSync as jge}from"node:fs";import{join as jh}from"node:path";function SWn(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function Fge(e,t){return`${e}:${t}`}function _Wn(e){let t=new Map;for(let n of e){let r=Fge(n.kind,n.file),i=t.get(r);i?(i.slots.push({unit:n.unit,role:n.role}),n.since0||typeof a.status=="string"&&a.status==="closed"||typeof a.closed_by=="string"&&a.closed_by.startsWith("fix-loop:"))continue;let u=a.source_ref;if(typeof u!="string"||u.length===0)continue;let l=u.match(/^drift:([^:]+):([\s\S]+)$/);if(!l)continue;let d=l[1]??"",f=l[2]??"",p=f.match(/^(.*):([0-9a-f]{64})$/);p?.[1]&&(f=p[1]),t.add(Fge(d,f))}return t}function bWn(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Ig(e):I_(e)}function TWn(e,t,n){let r=jh(t,e);if(QT(r))return r;let i=jh(n,e);if(QT(i))return i;let s=t.split("/").filter(Boolean).pop()??"";if(s){let o=`.haiku/intents/${s}/`;if(e.startsWith(o)){let a=e.slice(o.length),c=jh(t,a);if(QT(c))return c}}return null}function vWn(e){let t=jh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!QT(t))return;let n=jge(t,"utf8"),i=(0,oZ.default)(n).data;if(e.kind==="spec"){let p={...i.reviews??{}},h=!1;for(let[m,y]of Object.entries(p)){if(!y||typeof y!="object"||Array.isArray(y))continue;let g=y;typeof g.at=="string"&&g.body_sha256!==e.currentSha&&(p[m]={...g,body_sha256:e.currentSha},h=!0)}h&&je(t,"reviews",p);return}let s=i.reviews??{},o=s[e.role];if(!o||typeof o!="object"||Array.isArray(o))return;let a=Array.isArray(i.inputs)?i.inputs:[],c=Il(t,{intentDir:e.intentDir,unitInputs:a}),l={...o,body_sha256:c.body_sha256,input_witnesses:c.input_witnesses},d={...s,[e.role]:l};je(t,"reviews",d)}function AWn(e){let t=jh(e.intentDir,"intent.md");if(!QT(t))return;let n=jge(t,"utf8"),s=(0,oZ.default)(n).data.approvals??{},o=s[e.role];if(!o||typeof o!="object"||Array.isArray(o))return;let a=o;if(a.body_sha256===e.currentSha)return;let c={...a,body_sha256:e.currentSha},u={...s,[e.role]:c};je(t,"approvals",u)}function RWn(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` +`),SY("sha256").update(n,"utf8").digest("hex")}function v0(e){if(!$T(e))return"";let t=tye(e);return SY("sha256").update(t).digest("hex")}function DL(e,t){if(!$T(e))return!0;let n=Ng(e);if(n&&n===t)return!0;let r=tye(e,"utf8"),i=r;try{i=(0,nye.default)(r).content}catch{i=r}if(SY("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` +`)?i.slice(0,-1):i;return o===i?!1:SY("sha256").update(o,"utf8").digest("hex")===t}function ME(e){return $T(e)?EY(e)?Ng(e):v0(e):""}function EY(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return p4n.has(t)}function h4n(e,t,n){let r={},i=n??myt(e);for(let s of t){let o=s.startsWith("stages/")?ev(e,s):ev(i,s),a=ME(o);a&&(r[s]=a)}return r}function myt(e){return ev(e,"..","..","..")}function LL(e,t){let n=t.split("/").filter(Boolean).pop()??"";if(!n)return e;let r=`.haiku/intents/${n}/`;if(e.startsWith(r))return e.slice(r.length);let i=`${t}/`;return e.startsWith(i)?e.slice(i.length):e}function m4n(e){let t={},n=[];try{n=f4n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||_Y.has(r))continue;let i=ev(e,r);try{if(!hyt(i).isFile())continue}catch{continue}let s=v0(i);s&&(t[r]=s)}return t}function bY(e){let t=e.repoRoot??myt(e.intentDir),n={files:{},dirs:{}},r=ev(e.intentDir,"intent.md");if($T(r)){let i=Ng(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=LL(i,e.intentDir);if(s==="intent.md")continue;let o=ev(e.intentDir,s),a=$T(o)?o:ev(t,s);if(!$T(a))continue;let c=!1;try{c=hyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=m4n(a);else{let u=ME(a);u&&(n.files[s]=u)}}return n}function Nl(e,t){let n={at:new Date().toISOString(),body_sha256:Ng(e)};return t?{...n,input_witnesses:bY({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function Hd(e,t){return{at:new Date().toISOString()}}var nye,p4n,_Y,Zf=v(()=>{"use strict";nye=Se(Kt(),1);p4n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);_Y=new Set([".DS_Store","Thumbs.db",".git",".gitignore","action-log.jsonl","drift-markers.json","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json"])});import{existsSync as tv,readdirSync as yyt,readFileSync as rye}from"node:fs";import{join as Gh}from"node:path";function g4n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function iye(e,t){return`${e}:${t}`}function y4n(e){let t=new Map;for(let n of e){let r=iye(n.kind,n.file),i=t.get(r);i?(i.slots.push({unit:n.unit,role:n.role}),n.since0||typeof a.status=="string"&&a.status==="closed"||typeof a.closed_by=="string"&&a.closed_by.startsWith("fix-loop:"))continue;let u=a.source_ref;if(typeof u!="string"||u.length===0)continue;let l=u.match(/^drift:([^:]+):([\s\S]+)$/);if(!l)continue;let d=l[1]??"",f=l[2]??"",p=f.match(/^(.*):([0-9a-f]{64})$/);p?.[1]&&(f=p[1]),t.add(iye(d,f))}return t}function E4n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Ng(e):ME(e)}function _4n(e,t,n){let r=Gh(t,e);if(tv(r))return r;let i=Gh(n,e);if(tv(i))return i;let s=t.split("/").filter(Boolean).pop()??"";if(s){let o=`.haiku/intents/${s}/`;if(e.startsWith(o)){let a=e.slice(o.length),c=Gh(t,a);if(tv(c))return c}}return null}function b4n(e){let t=Gh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!tv(t))return;let n=rye(t,"utf8"),i=(0,TY.default)(n).data;if(e.kind==="spec"){let p={...i.reviews??{}},h=!1;for(let[m,g]of Object.entries(p)){if(!g||typeof g!="object"||Array.isArray(g))continue;let y=g;typeof y.at=="string"&&y.body_sha256!==e.currentSha&&(p[m]={...y,body_sha256:e.currentSha},h=!0)}h&&De(t,"reviews",p);return}let s=i.reviews??{},o=s[e.role];if(!o||typeof o!="object"||Array.isArray(o))return;let a=Array.isArray(i.inputs)?i.inputs:[],c=Nl(t,{intentDir:e.intentDir,unitInputs:a}),l={...o,body_sha256:c.body_sha256,input_witnesses:c.input_witnesses},d={...s,[e.role]:l};De(t,"reviews",d)}function T4n(e){let t=Gh(e.intentDir,"intent.md");if(!tv(t))return;let n=rye(t,"utf8"),s=(0,TY.default)(n).data.approvals??{},o=s[e.role];if(!o||typeof o!="object"||Array.isArray(o))return;let a=o;if(a.body_sha256===e.currentSha)return;let c={...a,body_sha256:e.currentSha},u={...s,[e.role]:c};De(t,"approvals",u)}function v4n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` `),n=e.group.kind==="input_deletion"||e.currentSha===null?`**File**: \`${e.group.file}\` (no longer present on disk)`:`**File**: \`${e.group.file}\``,r=e.currentSha?`**Current SHA**: \`${e.currentSha}\``:"",i=`**Witnessed at**: ${e.group.since}`;return`_Engine-authored drift FB. The premise that ${e.group.slots.length} signed slot(s) depended on has shifted. Read the file at the path below and classify._ ${n} @@ -654,47 +653,47 @@ Read the file body and the slots' specs, decide cosmetic vs material, and **reco - **Cosmetic** \u2014 the premise shifted but the consumers' reasoning is unaffected (e.g., whitespace, comments, doc reword that doesn't change the contract). Put WHY it's cosmetic in your advance \`message\`, then advance the hat. Closure is a no-op; the witnesses are already current. - **Material** \u2014 the shift invalidates one or more consumers' signoff. Put WHICH consumers and WHY in your advance \`message\`, AND call \`haiku_feedback_set_targets\` with \`invalidates: [, ...]\` listing the roles whose signature can no longer stand. \`set_targets\` is the invalidation MECHANISM only \u2014 your reasoning lives in the handoff \`message\`. The close hook deletes those slots; the next tick re-dispatches them to re-sign against the new premise. -This FB will NOT be re-emitted by the next drift sweep \u2014 the witness restamp at file time made the SHA mismatch impossible to detect twice.`}function Bgt(e){let t=e.repoRoot??jh(e.intentDir,"..","..",".."),n={groups_total:0,fbs_filed:0,fbs_dedup_skipped:0,fbs_cascade_skipped:0,slots_restamped:0,cascade_alarm_tripped:!1};if(e.events.length===0)return n;let r=_Wn(e.events);n.groups_total=r.length;let i=EWn(e.intentDir),s=i.size>=qgt;s&&(n.cascade_alarm_tripped=!0,console.error(`[haiku] drift cascade alarm tripped for ${e.slug}/${e.stage}: ${i.size} open drift FBs \u2265 threshold ${qgt}. Suppressing new drift FBs this tick. Consider running /haiku:haiku-repair if this pattern repeats \u2014 the witness baseline may be stale.`));for(let o of r){let a=TWn(o.file,e.intentDir,t),c=a?bWn(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(AWn({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}vWn({intentDir:e.intentDir,stage:e.stage,unit:m.unit,role:m.role,file:o.file,currentSha:c,kind:o.kind}),n.slots_restamped++}if(s){n.fbs_cascade_skipped++;continue}if((o.kind==="input_mutation"||o.kind==="input_deletion")&&!SWn(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=Fge(o.kind,o.file);if(i.has(l)){n.fbs_dedup_skipped++;continue}let f=o.slots.every(m=>m.unit==="(intent)")?"":e.stage,p=(()=>{let m=o.file.split("/").pop()??o.file;return`${o.kind} drift on ${m}`})(),h=`drift:${o.kind}:${o.file}${c?`:${c}`:""}`;try{fc(e.slug,f,{title:p,body:RWn({group:o,currentSha:c||null}),origin:"drift",severity:"high",author:"engine",authorType:"system",source_ref:h,triaged_at:new Date().toISOString(),targetInvalidates:[],targetUnit:null}),n.fbs_filed++,i.add(l)}catch{}}return n}var oZ,qgt,Ggt=v(()=>{"use strict";oZ=_e(sn(),1);ze();Wf();qgt=(()=>{let e=process.env.HAIKU_DRIFT_CASCADE_THRESHOLD;if(!e)return 10;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:10})()});import{closeSync as wWn,createReadStream as Cui,existsSync as aZ,fsyncSync as Mui,mkdirSync as Dui,openSync as kWn,readdirSync as zgt,readFileSync as Vgt,readSync as IWn,statSync as xWn,unlinkSync as Lui,writeFileSync as Uui,writeSync as jui}from"node:fs";import{dirname as Hui,join as xg,relative as qui}from"node:path";function $T(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function Kgt(e){try{if(xWn(e).size<12)return null;let n=Buffer.alloc(16),r=kWn(e,"r");try{IWn(r,n,0,16,0)}finally{wWn(r)}for(let{kind:i,prefix:s}of MWn)if(s.every((o,a)=>n[a]===o))return i;if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&n[8]===87&&n[9]===69&&n[10]===66&&n[11]===80)return"webp";if(n[4]===102&&n[5]===116&&n[6]===121&&n[7]===112){let i=n.subarray(8,12).toString("ascii");if(i==="avif"||i==="avis"||i==="mif1"||i==="msf1")return"avif"}return null}catch{return null}}function DWn(e,t){return xg(e,"stages",t,"baseline-content")}function Zgt(e,t,n){return xg(DWn(e,t),n)}function LWn(e){return xg(e,"baseline-content")}function Ygt(e,t){return xg(LWn(e),t)}function x_(e,t){let n=xg(e,"stages");if(!aZ(n))return 0;let r=i=>{if(!aZ(i))return null;try{let o=JSON.parse(Vgt(i,"utf-8")).iteration;return typeof o=="number"?o:null}catch{return null}};if(t!==void 0)return r(xg(n,t,"state.json"))??0;try{let i=zgt(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name);for(let s of i){let o=r(xg(n,s,"state.json"));if(o!==null)return o}}catch{}return 0}function cZ(e){let t=xg(e,"settings.yml");if(!aZ(t))return!1;try{let n=Vgt(t,"utf-8"),{data:r}=(0,Wgt.default)(`--- +This FB will NOT be re-emitted by the next drift sweep \u2014 the witness restamp at file time made the SHA mismatch impossible to detect twice.`}function Eyt(e){let t=e.repoRoot??Gh(e.intentDir,"..","..",".."),n={groups_total:0,fbs_filed:0,fbs_dedup_skipped:0,fbs_cascade_skipped:0,slots_restamped:0,cascade_alarm_tripped:!1};if(e.events.length===0)return n;let r=y4n(e.events);n.groups_total=r.length;let i=S4n(e.intentDir),s=i.size>=Syt;s&&(n.cascade_alarm_tripped=!0,console.error(`[haiku] drift cascade alarm tripped for ${e.slug}/${e.stage}: ${i.size} open drift FBs \u2265 threshold ${Syt}. Suppressing new drift FBs this tick. Consider running /haiku:haiku-repair if this pattern repeats \u2014 the witness baseline may be stale.`));for(let o of r){let a=_4n(o.file,e.intentDir,t),c=a?E4n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(T4n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}b4n({intentDir:e.intentDir,stage:e.stage,unit:m.unit,role:m.role,file:o.file,currentSha:c,kind:o.kind}),n.slots_restamped++}if(s){n.fbs_cascade_skipped++;continue}if((o.kind==="input_mutation"||o.kind==="input_deletion")&&!g4n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=iye(o.kind,o.file);if(i.has(l)){n.fbs_dedup_skipped++;continue}let f=o.slots.every(m=>m.unit==="(intent)")?"":e.stage,p=(()=>{let m=o.file.split("/").pop()??o.file;return`${o.kind} drift on ${m}`})(),h=`drift:${o.kind}:${o.file}${c?`:${c}`:""}`;try{Qo(e.slug,f,{title:p,body:v4n({group:o,currentSha:c||null}),origin:"drift",severity:"high",author:"engine",authorType:"system",source_ref:h,triaged_at:new Date().toISOString(),targetInvalidates:[],targetUnit:null}),n.fbs_filed++,i.add(l)}catch{}}return n}var TY,Syt,_yt=v(()=>{"use strict";TY=Se(Kt(),1);ze();Zf();Syt=(()=>{let e=process.env.HAIKU_DRIFT_CASCADE_THRESHOLD;if(!e)return 10;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:10})()});function UL(e,t={}){let n=`haiku/${e}/main`;if(!Ae())return{applicable:!1,defaultBranch:"",intentMain:n,merged:!0};let r=Zo();if(!r||!Pt(n))return{applicable:!1,defaultBranch:r,intentMain:n,merged:!0};let i=t.localOnly?Lu(n,r)||Lu(n,`origin/${r}`):Yc(n,r);return{applicable:!0,defaultBranch:r,intentMain:n,merged:i}}function byt(e,t={}){let n=UL(e,t);return n.applicable&&!n.merged}var vY=v(()=>{"use strict";yr();SE()});import{closeSync as A4n,createReadStream as xdi,existsSync as AY,fsyncSync as Odi,mkdirSync as Pdi,openSync as R4n,readdirSync as Tyt,readFileSync as vyt,readSync as w4n,statSync as k4n,unlinkSync as Ndi,writeFileSync as Cdi,writeSync as Mdi}from"node:fs";import{dirname as Ldi,join as Cg,relative as Udi}from"node:path";function nv(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function Ryt(e){try{if(k4n(e).size<12)return null;let n=Buffer.alloc(16),r=R4n(e,"r");try{w4n(r,n,0,16,0)}finally{A4n(r)}for(let{kind:i,prefix:s}of N4n)if(s.every((o,a)=>n[a]===o))return i;if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&n[8]===87&&n[9]===69&&n[10]===66&&n[11]===80)return"webp";if(n[4]===102&&n[5]===116&&n[6]===121&&n[7]===112){let i=n.subarray(8,12).toString("ascii");if(i==="avif"||i==="avis"||i==="mif1"||i==="msf1")return"avif"}return null}catch{return null}}function C4n(e,t){return Cg(e,"stages",t,"baseline-content")}function wyt(e,t,n){return Cg(C4n(e,t),n)}function M4n(e){return Cg(e,"baseline-content")}function kyt(e,t){return Cg(M4n(e),t)}function DE(e,t){let n=Cg(e,"stages");if(!AY(n))return 0;let r=i=>{if(!AY(i))return null;try{let o=JSON.parse(vyt(i,"utf-8")).iteration;return typeof o=="number"?o:null}catch{return null}};if(t!==void 0)return r(Cg(n,t,"state.json"))??0;try{let i=Tyt(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name);for(let s of i){let o=r(Cg(n,s,"state.json"));if(o!==null)return o}}catch{}return 0}function RY(e){let t=Cg(e,"settings.yml");if(!AY(t))return!1;try{let n=vyt(t,"utf-8"),{data:r}=(0,Ayt.default)(`--- ${n} --- -`);return r.drift_detection===!1}catch{return!1}}function Jgt(e){let t=xg(e,"stages");if(!aZ(t))return[];try{return zgt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Wgt,OWn,NWn,PWn,CWn,Gui,zui,MWn,_0=v(()=>{"use strict";Wgt=_e(sn(),1);ml();OWn=O.enum(["agent","human-via-mcp","human-implicit"]),NWn=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),PWn=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),CWn=O.object({path:O.string(),sha256:O.string().regex(/^[0-9a-f]{64}$/),bytes:O.number().int().nonnegative(),mtime_ns:O.number().int(),is_binary:O.boolean(),author_class:OWn,acknowledged_at:O.string(),acknowledged_via:NWn,stage:O.string().nullable(),tracking_class:PWn}),Gui=O.record(O.string(),CWn);zui=64*1024,MWn=[{kind:"png",prefix:[137,80,78,71,13,10,26,10]},{kind:"jpeg",prefix:[255,216,255]},{kind:"gif",prefix:[71,73,70,56]}]});import{existsSync as Kf,readdirSync as $gt,readFileSync as UWn,statSync as jWn}from"node:fs";import{basename as eyt,join as Jo,relative as uZ}from"node:path";function FWn(e){if(!Kf(e))return[];let t=[];try{t=$gt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!iZ.has(r))try{jWn(Jo(e,r)).isFile()&&n.push(r)}catch{}return n}function HWn(e){if(e===null||typeof e!="object")return null;let n=e.input_witnesses;if(!n||typeof n!="object"||Array.isArray(n))return null;let r=n,i=r.files,s=r.dirs,o={},a={};if(i&&typeof i=="object"&&!Array.isArray(i))for(let[c,u]of Object.entries(i))typeof u=="string"&&u.length===64&&(o[c]=u);if(s&&typeof s=="object"&&!Array.isArray(s))for(let[c,u]of Object.entries(s)){if(!u||typeof u!="object"||Array.isArray(u))continue;let l={};for(let[d,f]of Object.entries(u))typeof f=="string"&&f.length===64&&(l[d]=f);a[c]=l}return Object.keys(o).length===0&&Object.keys(a).length===0?null:{files:o,dirs:a}}function qge(e){if(!Kf(e))return null;try{let t=UWn(e,"utf8");return(0,tyt.default)(t).data}catch{return null}}function Hge(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.at=="string"&&t.at.length>0?t.at:null}function Xgt(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.body_sha256=="string"&&t.body_sha256.length===64?t.body_sha256:null}function Qgt(e,t){let n=I_(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=S0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function qWn(e){let t=Jo(e,"units");return Kf(t)?$gt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>Jo(t,n.name)):[]}function BWn(e,t,n){return Jo(e,"stages",t,"discovery",`${n}.md`)}function Bge(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function GWn(e,t,n,r){let i=eyt(e),s=new Set;try{for(let o of Qs(t,n))o.location&&s.add(Bge(o.location,i))}catch{}for(let o of r){let a=qge(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(Bge(u,i))}return s}function zWn(e,t,n,r){return Jo(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function lZ(e){let t=e.repoRoot??Jo(e.intentDir,"..","..",".."),n=Jo(t,".haiku");if(cZ(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=Jo(e.intentDir,"stages",e.stage),a=qWn(o),c=GWn(e.intentDir,e.studio,e.stage,a),u=eyt(e.intentDir),l=p=>c.has(p)||c.has(Bge(p,u));for(let p of a){let h=qge(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let y=uZ(e.intentDir,p),g=h.reviews??{};for(let[S,_]of Object.entries(g)){i++;let b=Hge(_);if(!b)continue;let T=Xgt(_);T&&Kf(p)&&!AL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:y,since:b});let A=HWn(_);if(A){for(let[R,k]of Object.entries(A.files)){let x=Jo(e.intentDir,R),N=Jo(t,R),P=null;if(Kf(x))P=x;else if(Kf(N))P=N;else{let j=RL(R,e.intentDir);if(j!==R){let V=Jo(e.intentDir,j);Kf(V)&&(P=V)}}if(P===null){l(R)||r.push({unit:m,role:S,kind:"input_deletion",file:R,since:b});continue}(rZ(P)?!AL(P,k):(()=>{let j=I_(P);return!!j&&j!==k})())&&!l(R)&&r.push({unit:m,role:S,kind:"input_mutation",file:R,since:b})}for(let[R,k]of Object.entries(A.dirs)){let x=Jo(e.intentDir,R),N=Jo(t,R),P=null;if(Kf(x))P=x;else if(Kf(N))P=N;else{let j=RL(R,e.intentDir),V=j!==R?Jo(e.intentDir,j):"";V&&Kf(V)&&(P=V)}if(P===null){l(R)||r.push({unit:m,role:S,kind:"input_deletion",file:R,since:b});continue}let D=FWn(P);for(let[j,V]of Object.entries(k)){let Z=Jo(R,j),B=Jo(P,j);if(!Kf(B)){l(Z)||r.push({unit:m,role:S,kind:"input_deletion",file:Z,since:b});continue}let G=S0(B);G&&G!==V&&!l(Z)&&r.push({unit:m,role:S,kind:"input_mutation",file:Z,since:b})}for(let j of D){let V=Jo(R,j);k[j]===void 0&&!l(V)&&r.push({unit:m,role:S,kind:"input_addition",file:V,since:b})}}}}let E=h.discovery??{};for(let[S,_]of Object.entries(E)){i++;let b=Hge(_);if(!b)continue;let T=_,A=BWn(e.intentDir,e.stage,S),R=typeof T.output_sha256=="string"?T.output_sha256:null;if(R){let N=Qgt(A,R);N&&!N.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:uZ(e.intentDir,A),since:b})}let k=zWn(t,e.studio,e.stage,S),x=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(x){let N=Qgt(k,x);N&&!N.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:uZ(t,k),since:b})}}}let d=Jo(e.intentDir,"intent.md"),f=qge(d);if(f){let p=f.approvals??{},h=uZ(e.intentDir,d);for(let[m,y]of Object.entries(p)){i++;let g=Hge(y);if(!g)continue;let E=Xgt(y);E&&(AL(d,E)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:g}))}}return{events:r,scanned:i,skipped:s}}var tyt,Gge=v(()=>{"use strict";tyt=_e(sn(),1);Zn();_0();Wf()});var T0={};Rr(T0,{__testOnly:()=>$Wn,computeElaborateSignals:()=>b0,derivePosition:()=>Zf,findCurrentStage:()=>_s,intentReviewRoles:()=>hZ,isBriefEnabled:()=>syt,isReflectionEnabled:()=>nv,isStageComplete:()=>E0,listUnitPaths:()=>kL,nextHatForUnit:()=>tv,pendingApprovalSlots:()=>KWn,pendingReviewSlots:()=>WWn,readFm:()=>Fu,serializeElaborateSignals:()=>Kge,stageOwesBrief:()=>cyt,stageOwesObservations:()=>Vge,stageRoleLists:()=>mZ,unitName:()=>pZ,walkFeedbackTrack:()=>Wge});import{existsSync as pc,readdirSync as wL,readFileSync as dZ,writeFileSync as nyt}from"node:fs";import{basename as iyt,join as ii}from"node:path";function VWn(e){let t=ii(e.intentDir,"intent.md");if(pc(t))try{let n=dZ(t,"utf8"),r=(0,ev.default)(n),i=r.data,s="drift_cascade_alarm",o=e.stage,a=i[s],c=a&&typeof a=="object"&&!Array.isArray(a)?{...a}:{},u=c[o];e.tripped?u!==!0&&(c[o]=!0,i[s]=c,nyt(t,ev.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,nyt(t,ev.default.stringify(r.content,i)))}catch{}}function nv(e){let t=ii(e,"intent.md");if(!pc(t))return!0;try{let n=dZ(t,"utf8"),i=(0,ev.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function syt(e){let t=ii(e,"intent.md");if(!pc(t))return!0;try{let n=dZ(t,"utf8");return(0,ev.default)(n).data.brief!==!1}catch{return!0}}function Fu(e){if(!pc(e))return null;try{let t=dZ(e,"utf8"),n=(0,ev.default)(t);return{data:n.data,body:n.content}}catch{return null}}function oyt(e){if(e.closed_at&&(e.closed_at instanceof Date||typeof e.closed_at=="string"&&e.closed_at.length>0))return!0;let t=e.rejected_at;return!!(t&&(t instanceof Date||typeof t=="string"&&t.length>0)||typeof e.status=="string"&&(e.status==="closed"||e.status==="rejected")||typeof e.closed_by=="string"&&e.closed_by.startsWith("fix-loop:"))}function O_(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function fZ(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function ayt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function pZ(e){return iyt(e).replace(/\.md$/,"")}function kL(e){let t=ii(e,"units");return pc(t)?wL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>ii(t,n.name)).sort():[]}function ryt(e){let t=ii(e,"feedback");return pc(t)?wL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>ii(t,n.name)).sort():[]}function tv(e,t){if(t.length===0)return null;let n=O_(e);if(n.length===0)return{hat:t[0],terminal:t.length===1};let r=n[n.length-1];if(r.result===null){let i=t.indexOf(r.hat);return i<0?null:{hat:r.hat,terminal:i===t.length-1}}if(r.result==="advance"||r.result==="advanced"){let i=t.indexOf(r.hat);if(i<0)return null;let s=i+1;return s>=t.length?null:{hat:t[s],terminal:s===t.length-1}}if(r.result==="reject"||r.result==="rejected"){let i=t.indexOf(r.hat);if(i<=0)return{hat:t[0],terminal:t.length===1,rejected:!0};let s=i-1;return{hat:t[s],terminal:s===t.length-1,rejected:!0}}return null}function WWn(e,t){let n=ayt(e);return t.filter(r=>!n[r])}function KWn(e,t){let n=fZ(e);return t.filter(r=>!n[r])}function ZWn(e,t,n){let r=Object.keys(gl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function YWn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function JWn(e,t){let n=fZ(e);for(let r of t)if(!n[r])return!1;return!0}function XWn(e,t){if(JWn(e,t))return!0;let n=YWn(e),r=O_(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function QWn(e,t,n,r){let i=ii(e,"stages",n,"units");if(!pc(i))return!1;let s=wL(i).filter(c=>c.endsWith(".md"));if(s.length===0||to(t,n).length===0)return!1;let a=ZWn(t,n,r);for(let c of s){let u=Fu(ii(i,c))?.data;if(!u||!XWn(u,a))return!1}return!0}function E0(e,t,n,r){return QWn(e,t,n,r)}function Vge(e,t){return nv(e)?!pc(ii(e,"stages",t,"observations.md")):!1}function cyt(e,t,n){return!(!syt(e)||pc(ii(e,"stages",t,"BRIEF.md"))||n)}function _s(e,t,n){let r=n??ii(we(),"intents",e),i=ii(r,"intent.md"),s=Fu(i)?.data??{},o=or(s,t);if(o.length===0)return null;let a=typeof s?.mode=="string"&&s.mode.length>0?s.mode:"continuous";for(let c of o)if(!E0(r,t,c,a))return c;return null}function Wge(e){let{intentDir:t,studio:n,currentStage:r,intent:i}=e,s=or(i,n),o=s.indexOf(r),a=o>=0?s.slice(0,o+1):[],c=[],u=(E,S)=>{let _=uyt(E,S,n);if(!_)return null;if(_.kind!=="start_feedback_hat")return _;let b=Fu(S)?.data,T=b?.severity??null,A=Array.isArray(b?.iterations)?b.iterations.length>0:!1,R=_.dispatches[0];return R&&c.push({...R,severity:T,inFlight:A}),null};for(let E of a){let S=ryt(ii(t,"stages",E));for(let _ of S){let b=u(E,_);if(b)return b}}let l=ryt(t);for(let E of l){let S=u("",E);if(S)return S}if(c.length===0)return null;let d=new Set,f=[];for(let E of c)d.has(E.feedback_id)||(d.add(E.feedback_id),f.push(E));let p=[];for(let E of f){let S=Number.parseInt(E.feedback_id.replace(/^FB-/i,""),10),_=[];E.stage&&_.push(ii(t,"stages",E.stage,"feedback")),_.push(ii(t,"feedback"));let b=!0;for(let T of _){if(!pc(T))continue;let A=wL(T).filter(k=>{if(!k.endsWith(".md"))return!1;let x=/^(\d+)/.exec(k);return x!=null&&Number.parseInt(x[1],10)===S}),R=!1;for(let k of A){let x=Fu(ii(T,k))?.data;if(x&&oyt(x)){R=!0;break}}if(R){b=!1;break}}b&&p.push(E)}if(p.length===0||!p.some(E=>E.inFlight||r0(E.severity)))return null;let y=[...p].sort((E,S)=>Kc(E.severity)-Kc(S.severity)).slice(0,rv),g=y[0];return{kind:"start_feedback_hat",dispatches:y.map(E=>({feedback_id:E.feedback_id,stage:E.stage,hat:E.hat,terminal:E.terminal})),stage:g?.stage??"",hat:g?.hat??"",feedback_ids:y.map(E=>E.feedback_id),terminal:g?.terminal??!1}}function uyt(e,t,n){let r=Fu(t);if(!r)return null;let i=r.data;if(oyt(i))return null;let s=lyt(t);if(!s)return null;if(i.resolution==="question")return{kind:"feedback_question",stage:e,feedback_id:s,feedback_path:t};if(i.author_type==="agent"||i.author_type==="system"){let u=O_(i),l=new Set;for(let d of u){let f=d.bolt;typeof f=="number"&&f>0&&l.add(f)}if(l.size>=Og)return null;if(u.length>=2){let d=u[u.length-1],f=u[u.length-2],p=d.result==="reject"||d.result==="rejected",h=f.result==="reject"||f.result==="rejected";if(p&&h&&d.hat===f.hat)return null}}let a=e===""?hg(n):PT(n,e);if(a.length===0)return{kind:"user_gate",stage:e,gate_kind:"approval",units:[]};let c=tv(i,a);if(c===null){let u=O_(i);if(u.length===0)return null;let l=u[u.length-1];return l.result===null?null:(l.result==="closed"||l.result==="advance")&&l.hat===a[a.length-1]?{kind:"close_feedback",stage:e,feedback_id:s}:null}return{kind:"start_feedback_hat",dispatches:[{feedback_id:s,stage:e,hat:c.hat,terminal:c.terminal}],stage:e,hat:c.hat,feedback_ids:[s],terminal:c.terminal}}function lyt(e){let t=iyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function dyt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=ii(n,"stages",i),c=kL(o).map(A=>({path:A,name:pZ(A),fm:Fu(A)?.data??{}})).filter(A=>A.fm),u=to(r,i),l=gl(r,i),d=Object.keys(l).sort(),{reviewRoles:f,approvalRoles:p}=mZ(r,i,s,d),h=b0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(A=>A.name),mode:s});if(h.length>0)return{kind:"elaborate_loop",stage:i,signals_unmet:h};{let A=or(Fu(ii(n,"intent.md"))?.data??{},r);if(!(A.length>0&&A[0]===i)){let k=c.filter(x=>!("inputs"in x.fm)).map(x=>x.name);if(k.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:k}}}{let A=[],R=null;for(let k of f){let x=c.filter(N=>N.fm.started_at!=null||O_(N.fm).length>0?!1:!ayt(N.fm)[k]).map(N=>N.name);if(x.length!==0){if(k==="user"){R=x;continue}if(zge.has(k)){if(A.length>0){let N=A[0];return{kind:"dispatch_review",stage:i,dispatches:A,role:N.role,units:N.units}}return{kind:"dispatch_review",stage:i,dispatches:[{role:k,units:x}],role:k,units:x}}A.push({role:k,units:x})}}if(A.length>0){let k=A[0];return{kind:"dispatch_review",stage:i,dispatches:A,role:k.role,units:k.units}}{let k=c.some(x=>!!x.fm.started_at||O_(x.fm).length>0);if(cyt(n,i,k))return{kind:"write_brief",stage:i}}if(R)return{kind:"user_gate",stage:i,gate_kind:"spec",units:R}}let m=new Set(c.filter(A=>{if(u.length===0)return!1;let R=O_(A.fm);if(R.length===0)return!1;let k=R[R.length-1];return k.result==="advance"&&k.hat===u[u.length-1]}).map(A=>A.name)),y=c.filter(A=>A.fm.started_at!=null&&tv(A.fm,u)!==null),E=(y.length===0?c.filter(A=>A.fm.started_at!=null?!1:(Array.isArray(A.fm.depends_on)?A.fm.depends_on:[]).every(k=>m.has(k))):[]).slice(0,rv),S=or(Fu(ii(n,"intent.md"))?.data??{},r),_=S.length>0&&S[0]===i;if(!_&&E.length>0){let A=E.filter(R=>!("inputs"in R.fm)).map(R=>R.name);if(A.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:A}}if(E.length>0)return{kind:"start_unit_hat",stage:i,hat:u[0],units:E.map(A=>A.name),terminal:u.length===1};let b=[],T=!1;for(let A of c){if(A.fm.started_at==null)continue;let R=tv(A.fm,u);if(R===null)continue;let k=Array.isArray(A.fm.iterations)?A.fm.iterations:[],x=k[k.length-1];if(x&&x.result===null&&typeof x.dispatched_at=="string"&&x.dispatched_at.length>0){T=!0;continue}b.push({unit:A.name,hat:R.hat,terminal:R.terminal})}if(b.length===0&&T&&y.length>0)return null;if(!_&&b.length>0){let A=new Set(b.map(k=>k.unit)),R=c.filter(k=>A.has(k.name)&&!("inputs"in k.fm)).map(k=>k.name);if(R.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:R}}if(b.length>0){let A=new Map;for(let P of b){let D=A.get(P.hat)??[];D.push(P.unit),A.set(P.hat,D)}let R=[...A.entries()].sort(([P],[D])=>u.indexOf(P)-u.indexOf(D)),[k,x]=R[0],N=u.indexOf(k);return{kind:"start_unit_hat",stage:i,hat:k,units:x,terminal:N===u.length-1}}{let A=c.filter(R=>(Array.isArray(R.fm.outputs)?R.fm.outputs:[]).length===0?!1:O_(R.fm).length===0).map(R=>R.name);if(A.length>0)return{kind:"unit_outputs_empty_iterations",stage:i,units:A}}{let A=[];for(let R of p){let k=c.filter(x=>!fZ(x.fm)[R]).map(x=>x.name);if(k.length!==0){if(R==="user"){if(A.length>0){let x=A[0];return{kind:"dispatch_approval",stage:i,dispatches:A,role:x.role,units:x.units}}return{kind:"user_gate",stage:i,gate_kind:"approval",units:k}}if(zge.has(R)){if(A.length>0){let x=A[0];return{kind:"dispatch_approval",stage:i,dispatches:A,role:x.role,units:x.units}}return R==="quality_gates"?{kind:"dispatch_quality_gates",stage:i,units:k}:{kind:"dispatch_approval",stage:i,dispatches:[{role:R,units:k}],role:R,units:k}}A.push({role:R,units:k})}}if(A.length>0){let R=A[0];return{kind:"dispatch_approval",stage:i,dispatches:A,role:R.role,units:R.units}}}if(nv(n)){let A=ii(o,"observations.md");if(!pc(A))return{kind:"record_observations",stage:i}}return{kind:"complete_stage",stage:i}}function Zf(e){let{slug:t,intentDir:n,studio:r}=e,i=ii(n,"intent.md"),s=Fu(i),o=typeof s?.data.mode=="string"&&s.data.mode.length>0?s.data.mode:"continuous";if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0)return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let l=or(s.data,r)[0]??"",d=l?ii(n,"stages",l):"",f=d&&pc(d)?kL(d).length>0:!1;if(_s(t,r,n)===l&&!f)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let a=_s(t,r,n);if(a){let c=lZ({intentDir:n,stage:a,studio:r});if(c.events.length>0){let u=Bgt({events:c.events,intentDir:n,stage:a,slug:t});s&&VWn({intentDir:n,stage:a,tripped:u.cascade_alarm_tripped})}}{let c=s?.data??{},u=Wge({intentDir:n,studio:r,intent:c,currentStage:a??or(c,r).slice(-1)[0]??""});if(u)return{track:"feedback",action:u}}if(a){let c=dyt({slug:t,intentDir:n,studio:r,stage:a,mode:o});return c!==null?{track:"intent",action:c}:{track:"noop",action:null}}if(s){let c=fZ(s.data),u=Object.keys(dg(r)).sort(),l=hZ(o,u),d=[],f=!1;for(let p of l)if(!c[p]){if(p==="user"){f=!0;continue}if(zge.has(p))return d.length>0?{track:"intent",action:{kind:"intent_review",role:d[0].role,dispatches:d}}:{track:"intent",action:{kind:"intent_review",role:p,dispatches:[{role:p}]}};d.push({role:p})}if(d.length>0)return{track:"intent",action:{kind:"intent_review",role:d[0].role,dispatches:d}};if(f)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(!c.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(s.data.sealed_at==null){if(nv(n)){let p=ii(n,"reflection.md");if(!pc(p))return{track:"intent",action:{kind:"record_reflection"}}}return{track:"intent",action:{kind:"seal_intent"}}}}return{track:"sealed",action:{kind:"sealed"}}}function hZ(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function mZ(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(gl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!OT.has(l)),c=o?["spec",...a]:["spec",...a,"user"],u=o?["spec",...s,"quality_gates"]:["spec",...s,"quality_gates","user"];return{reviewRoles:c,approvalRoles:u}}function b0(e){let{slug:t,studio:n,stage:r,stageDir:i,unitNames:s,mode:o}=e,a=[],c=ii(i,"elaboration.md"),u=pc(c)?Fu(c)?.data??{}:null,l=o==="autopilot";!l&&u===null&&s.length===0&&a.push({signal:"conversation"}),!l&&u!==null&&(typeof u.verified_at=="string"&&u.verified_at||a.push({signal:"verify_conversation"}));let d=Qs(n,r).filter(f=>f.kind==="discovery").sort((f,p)=>f.name.localeCompare(p.name));for(let f of d){if(s.length===0&&!f.tool||!f.required)continue;if(!f.location){console.error(`[haiku] Studio configuration error: discovery template '${f.name}' in stage '${r}' is required but declares no 'location:' field. The gate is being skipped \u2014 fix the template.`);continue}let p=f.location.replace(/\{intent-slug\}/g,t),h=ii(process.cwd(),p);(p.endsWith("/")?pc(h)&&wL(h).filter(y=>y!==".gitkeep").length>0:pc(h))||a.push({signal:"discovery",agent:f.name,units:s.length>0?[s[0]]:[]})}return s.length===0&&a.push({signal:"decompose"}),!l&&s.length>0&&u!==null&&(typeof u.decompose_verified_at=="string"&&u.decompose_verified_at||a.push({signal:"verify_decompose"})),a}function Kge(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var ev,zge,$Wn,hc=v(()=>{"use strict";ev=_e(sn(),1);es();ze();Zn();hpe();_o();Ggt();Gge();zge=new Set(["spec","quality_gates","user"]);$Wn={walkIntentTrack:dyt,walkFeedbackTrack:Wge,nextActionForFeedback:uyt,parseFbIdFromFilename:lyt}});function n4n(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*>[\\s\\S]*?<\\/${n}\\s*>`,"gi"),i=e.replace(r,""),s=new RegExp(`<${n}\\b[^>]*>`,"gi");i=i.replace(s,"");let o=new RegExp(`<\\/${n}\\s*>`,"gi");return i=i.replace(o,""),i}function r4n(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function i4n(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function s4n(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function o4n(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>pyt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function a4n(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>pyt.test(r.trim())?`${n}(#)`:t)}function fyt(e){let t=e;for(let n of e4n)t=n4n(t,n);for(let n of t4n)t=r4n(t,n);return t=i4n(t),t=s4n(t),t=o4n(t),t=a4n(t),t}function iv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=fyt(t);if(r===t)return r;t=r}return fyt(t)}var e4n,t4n,pyt,Zge=v(()=>{"use strict";e4n=["script","iframe","object","style","form"],t4n=["embed"],pyt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as c4n}from"node:crypto";function v0(){let e=l4n();return d4n(e)}function l4n(){let e=new Uint8Array(16),t=Date.now();e[0]=t/1099511627776&255,e[1]=t/4294967296&255,e[2]=t/16777216&255,e[3]=t/65536&255,e[4]=t/256&255,e[5]=t&255;let n=c4n(10);for(let r=0;r<10;r++)e[6+r]=n[r];return e[6]=e[6]&15|112,e[8]=e[8]&63|128,e}function d4n(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=u4n[i]+r}return"1".repeat(t)+r}var u4n,hyt=v(()=>{"use strict";u4n="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var iye={};Rr(iye,{_runPresenceSweepForTests:()=>g4n,beginPresenceWatch:()=>Yge,clearHeartbeat:()=>gZ,clearPreviousReviewSnapshot:()=>Eyt,createDesignDirectionSession:()=>eye,createPickerSession:()=>tye,createQuestionSession:()=>$ge,createSession:()=>yZ,createViewSession:()=>nye,deleteSession:()=>I0,endPresenceWatch:()=>Jge,findLiveReviewSessionForIntent:()=>NL,getPreviousReviewSnapshot:()=>Qge,getSession:()=>on,hasAttachedReviewSessionForIntent:()=>PL,hasPresenceLost:()=>Xge,isBrowserAttached:()=>ov,notifySessionUpdate:()=>k0,recordHeartbeat:()=>xL,setPreviousReviewSnapshot:()=>_yt,updateDesignDirectionSession:()=>ML,updatePickerSession:()=>_4n,updateQuestionSession:()=>CL,updateSession:()=>xl,updateViewSession:()=>rye,waitForSession:()=>sv});import{EventEmitter as f4n}from"node:events";function Yge(e,t={}){w0.set(e,t.startedAt??Date.now())}function Jge(e){w0.delete(e)}function xL(e){return Ui.has(e)?(R0.set(e,Date.now()),w0.delete(e),N_.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Xge(e){return N_.has(e)}function gZ(e){R0.delete(e),N_.delete(e),w0.delete(e)}function myt(e){return!(e.session_type==="view"||(e.session_type==="review"||e.session_type==="question"||e.session_type==="design_direction"||e.session_type==="picker")&&e.status!=="pending")}function gyt(e,t){N_.has(e)||(N_.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),A0.emit(`session:${e}`))}function Syt(){let e=Date.now();for(let[t,n]of R0){if(e-n<=p4n)continue;let r=Ui.get(t);if(!r){R0.delete(t),N_.delete(t);continue}myt(r)&&gyt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of w0){if(R0.has(t)||e-n<=m4n)continue;let r=Ui.get(t);if(!r){w0.delete(t);continue}myt(r)&&gyt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function g4n(){Syt()}function k0(e){A0.emit(`session:${e}`)}function sv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{A0.removeListener(`session:${e}`,o),n?.removeEventListener("abort",a),i(new Error("Session timeout"))},t);function o(){clearTimeout(s),n?.removeEventListener("abort",a),r()}function a(){clearTimeout(s),A0.removeListener(`session:${e}`,o),i(new Error(`Session wait aborted${n?.reason?`: ${String(n.reason)}`:""}`))}if(n?.aborted){clearTimeout(s),i(new Error("Session wait aborted before start"));return}n?.addEventListener("abort",a,{once:!0}),A0.once(`session:${e}`,o)})}function Qge(e){return IL.get(e)}function _yt(e,t){IL.set(e,t)}function Eyt(e){IL.delete(e)}function yyt(e){if(IL.has(e)){for(let t of Ui.values())if(t.session_type==="review"&&t.intent_dir===e)return;IL.delete(e)}}function OL(){let e=Date.now();for(let[t,n]of Yf)if(e-n>S4n){let r=Ui.get(t);Ui.delete(t),Yf.delete(t),gZ(t),r?.session_type==="review"&&yyt(r.intent_dir)}for(;Ui.size>=y4n;){let t=Yf.entries().next().value;if(!t)break;let n=Ui.get(t[0]);Ui.delete(t[0]),Yf.delete(t[0]),gZ(t[0]),n?.session_type==="review"&&yyt(n.intent_dir)}}function yZ(e){OL();let t=v0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return Ui.set(t,n),Yf.set(t,Date.now()),n}function $ge(e){OL();let t=v0(),n={...e,session_type:"question",session_id:t,imagePaths:e.imagePaths??[],status:"pending",answers:[],feedback:""};return Ui.set(t,n),Yf.set(t,Date.now()),n}function eye(e){OL();let t=v0(),n={...e,session_type:"design_direction",session_id:t,status:"pending",selection:null};return Ui.set(t,n),Yf.set(t,Date.now()),n}function tye(e){OL();let t=v0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return Ui.set(t,n),Yf.set(t,Date.now()),n}function _4n(e,t){let n=Ui.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),k0(e),n}function nye(e){OL();let t=v0(),n={...e,session_type:"view",session_id:t,status:"open"};return Ui.set(t,n),Yf.set(t,Date.now()),n}function rye(e,t){let n=Ui.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),k0(e),n}function on(e){return Ui.get(e)}function NL(e){let t,n=0;for(let[r,i]of Ui){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||N_.has(r))continue;let s=Yf.get(r)??0;s>n&&(t=i,n=s)}return t}function ov(e){if(!Ui.has(e)||N_.has(e))return!1;let t=R0.get(e);return t?Date.now()-t<=E4n:!1}function PL(e){for(let[t,n]of Ui)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&ov(t))return!0;return!1}function I0(e){let t=Ui.delete(e);return Yf.delete(e),gZ(e),t}function xl(e,t){let n=Ui.get(e);if(!(!n||n.session_type!=="review")){if(Object.assign(n,t),t.status==="decided"&&!n.ad_hoc)if(n.decision==="changes_requested"){let r=n.parsedIntent,i=n.parsedUnits??[],s={};for(let o of i)o?.slug&&typeof o.rawContent=="string"&&(s[o.slug]=o.rawContent);_yt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else Eyt(n.intent_dir);return k0(e),n}}function CL(e,t){let n=Ui.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),k0(e),n}function ML(e,t){let n=Ui.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),k0(e),n}var A0,p4n,h4n,R0,N_,m4n,w0,Ui,IL,y4n,S4n,Yf,E4n,Hu=v(()=>{"use strict";hyt();A0=new f4n;A0.setMaxListeners(200);p4n=12e4,h4n=5e3,R0=new Map,N_=new Set,m4n=6e4,w0=new Map;setInterval(Syt,h4n).unref();Ui=new Map,IL=new Map;y4n=100,S4n=14400*1e3,Yf=new Map;E4n=3e4});import{spawn as b4n}from"node:child_process";import{existsSync as x0,readFileSync as vyt}from"node:fs";import{createServer as T4n}from"node:net";import{isAbsolute as v4n,join as av}from"node:path";function R4n(){return new Promise((e,t)=>{let n=T4n();n.unref(),n.on("error",t),n.listen(0,"127.0.0.1",()=>{let r=n.address();if(typeof r!="object"||r===null){n.close(),t(new Error("could not determine ephemeral port"));return}let i=r.port;n.close(()=>e(i))})})}function w4n(e){return new Promise(t=>{let{Socket:n}=Y("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function k4n(e,t){let n=Date.now()+SZ;for(;Date.now()setTimeout(r,Ryt))}throw new Error(`Dev server did not bind to port ${e} within ${SZ}ms`)}async function I4n(e){try{let t=new AbortController,n=setTimeout(()=>t.abort(),1500),r=await fetch(e,{signal:t.signal});return clearTimeout(n),r.status<500}catch{return!1}}async function x4n(e,t){let n=Date.now()+SZ;for(;Date.now()setTimeout(r,Ryt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${SZ}ms`)}function wyt(e,t){if(e.length===0)throw new Error("bootFromAgent: command must have at least one entry");return{command:e,cwd:t,description:e.join(" ")}}function kyt(e){let t=av(e,"package.json");if(!x0(t))return null;let n;try{n=JSON.parse(vyt(t,"utf-8"))}catch{return null}let r=n.scripts??{},i=typeof r.dev=="string"?"dev":typeof r.start=="string"?"start":null;if(!i)return null;let s=O4n(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function O4n(e){return x0(av(e,"bun.lockb"))||x0(av(e,"bun.lock"))?"bun":x0(av(e,"pnpm-lock.yaml"))?"pnpm":x0(av(e,"yarn.lock"))?"yarn":"npm"}function Ng(e){return new Error(`[${Iyt}] ${e}`)}function byt(e,t){if(!Array.isArray(e)||e.length===0||!e.every(n=>typeof n=="string"&&n.length>0))throw Ng(`${t} must be a non-empty array of strings`);return e}function sye(e){let t=av(e,Iyt);if(!x0(t))return null;let n;try{n=(0,Ayt.default)(vyt(t,"utf8")).data}catch(s){throw Ng(`could not parse frontmatter: ${s instanceof Error?s.message:String(s)}`)}let r=s=>{if(s==null)return e;if(typeof s!="string")throw Ng("`cwd` must be a string");return v4n(s)?s:av(e,s)},i=s=>{if(s==null)return;if(typeof s!="object"||Array.isArray(s))throw Ng("`env` must be a mapping of string\u2192string");let o={};for(let[a,c]of Object.entries(s))o[a]=String(c);return o};if(Array.isArray(n.processes)&&n.processes.length>0){let s=n.processes.map((u,l)=>{if(typeof u?.name!="string"||!u.name)throw Ng(`processes[${l}] is missing a string \`name\``);return{name:u.name,command:byt(u.command,`processes[${l}].command`),cwd:r(u.cwd),port_env:typeof u.port_env=="string"?u.port_env:void 0,ready_url:typeof u.ready_url=="string"?u.ready_url:void 0,depends_on:Array.isArray(u.depends_on)?u.depends_on.map(String):void 0,no_port:u.no_port===!0,env:i(u.env),service:u.service===!0,requires_tool:typeof u.requires_tool=="string"?u.requires_tool:void 0}}),o=s.filter(u=>!u.no_port),a;if(typeof n.primary=="string"&&n.primary)a=n.primary;else if(o.length===1)a=o[0].name;else throw Ng(`\`processes\` has ${o.length} port-bound entries (${o.map(u=>u.name).join(", ")}); set \`primary: \` to name the one Playwright should drive`);let c=new Set(s.map(u=>u.name));if(!c.has(a))throw Ng(`\`primary: ${a}\` does not match any process name (${[...c].join(", ")})`);if(s.find(u=>u.name===a)?.no_port)throw Ng(`\`primary: ${a}\` cannot be a no_port process`);return{processes:s,primary:a}}if(n.command!==void 0){if(n.no_port===!0)throw Ng("a single-`command` recipe drives a URL, so it cannot set `no_port: true` \u2014 use the `processes` form for a portless helper");return{processes:[{name:"app",command:byt(n.command,"`command`"),cwd:r(n.cwd),port_env:typeof n.port_env=="string"?n.port_env:void 0,ready_url:typeof n.ready_url=="string"?n.ready_url:void 0,env:i(n.env)}],primary:"app"}}return null}function LL(e){let t=sye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function N4n(e){let t=new Map(e.map(o=>[o.name,o])),n=new Set,r=new Set,i=[],s=(o,a)=>{if(r.has(o))return;if(n.has(o))throw new Error(`Cyclic depends_on in boot processes: ${[...a,o].join(" \u2192 ")}`);let c=t.get(o);if(!c)throw new Error(`depends_on references unknown process "${o}" (referenced from "${a.at(-1)??"?"}")`);n.add(o);for(let u of c.depends_on??[])s(u,[...a,o]);n.delete(o),r.add(o),i.push(c)};for(let o of e)s(o.name,[]);return i}async function oye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=N4n(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await R4n());let s=t.find(l=>l.name===n);if(!s)throw new Error(`primary "${n}" not found in process group`);if(s.no_port)throw new Error(`primary "${n}" cannot have no_port: true`);let o=setTimeout(()=>{console.error(`[haiku-view-boot] TTL hit for session ${e} \u2014 killing process group`),O0(e)},A4n);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};DL.set(e,a);try{for(let l of r){let d=i.get(l.name)??null,f=l.port_env??"PORT",p={...process.env,...l.env??{},HOST:"127.0.0.1"};d!==null&&(p[f]=String(d));for(let E of l.depends_on??[]){let S=i.get(E);if(S!=null){let _=E.toUpperCase().replace(/-/g,"_");p[`${_}_PORT`]=String(S),p[`${_}_URL`]=`http://127.0.0.1:${S}`}}let[h,...m]=l.command;if(!h)throw new Error(`process "${l.name}" has empty command`);let y=b4n(h,m,{cwd:l.cwd,env:p,stdio:"ignore",detached:!1}),g=l.command.join(" ");if(y.on("error",E=>{console.error(`[haiku-view-boot] process "${l.name}" (${g}) spawn error:`,E.message)}),a.processes.push({name:l.name,child:y,port:d,command:g,cwd:l.cwd}),d!==null)if(l.ready_url){let E=l.ready_url.replace("{port}",String(d));await x4n(E)}else await k4n(d)}}catch(l){throw O0(e),l}let c=a.processes.map(l=>({name:l.name,port:l.port,command:l.command,pid:l.child.pid??-1})),u=c.find(l=>l.name===n);if(!u)throw new Error(`primary "${n}" missing from spawned set`);return{processes:c,primary:u}}async function xyt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await oye(e,[n],"app")).primary}function O0(e){let t=DL.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),DL.delete(e);for(let n of[...t.processes].reverse()){try{n.child.kill("SIGTERM")}catch{}setTimeout(()=>{try{n.child.kill("SIGKILL")}catch{}},2e3).unref?.()}return!0}function Oyt(){let e=0;for(let[t]of DL)on(t)||(O0(t),e+=1);return e}function P4n(){if(Tyt)return;Tyt=!0;let e=()=>{for(let[t]of DL)O0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var Ayt,DL,A4n,SZ,Ryt,Iyt,Tyt,UL=v(()=>{"use strict";Ayt=_e(sn(),1);Hu();DL=new Map,A4n=1800*1e3,SZ=60*1e3,Ryt=200;Iyt=".haiku/boot.md";Tyt=!1;P4n()});import{lstatSync as aye,mkdirSync as C4n,realpathSync as Nyt,renameSync as M4n,unlinkSync as D4n}from"node:fs";import{isAbsolute as L4n,relative as U4n,resolve as _Z,sep as EZ}from"node:path";function cv(e,t,n,r){let i=_Z(e),s=_Z(t),o=_Z(r),a;try{if(aye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=Nyt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${N0(d)}`}}if(s!==i&&!s.startsWith(`${i}${EZ}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${EZ}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=U4n(i,s),u=c===""?[]:c.split(EZ),l=i;for(let d of u){if(d===""||d==="."||d===".."||L4n(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=_Z(l,d);try{let f=aye(l);if(f.isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`segment '${l}' is a symbolic link \u2014 refusing to traverse`};if(!f.isDirectory())return{ok:!1,code:"parent_chain_escape",detail:`segment '${l}' exists but is not a directory`}}catch(f){if(f.code==="ENOENT")try{C4n(l)}catch(h){if(h.code==="EEXIST")try{let y=aye(l);if(y.isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`segment '${l}' became a symlink during mkdir race`};if(!y.isDirectory())return{ok:!1,code:"parent_chain_escape",detail:`segment '${l}' became a non-directory during mkdir race`}}catch(y){return{ok:!1,code:"parent_open_failed",detail:`cannot stat segment after EEXIST: ${N0(y)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${N0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${N0(f)}`}}}try{let d=Nyt(s);if(d!==a&&!d.startsWith(`${a}${EZ}`))return{ok:!1,code:"parent_chain_escape",detail:`realpath(parent)='${d}' is not inside realpath(intentRoot)='${a}'`}}catch(d){return{ok:!1,code:"parent_open_failed",detail:`realpath(parent) failed: ${N0(d)}`}}try{M4n(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${N0(d)}`}}return{ok:!0}}function N0(e){return e instanceof Error?e.message:String(e)}function P0(e){try{D4n(e)}catch{}}var bZ=v(()=>{"use strict"});var qL={};Rr(qL,{applyFeedbackInvalidations:()=>uye,drainPendingDispatches:()=>H4n,stampSingleDispatch:()=>cye,stashPendingDispatch:()=>j4n,stashPendingIntentReview:()=>F4n});import{existsSync as jL,readdirSync as Cyt,readFileSync as FL}from"node:fs";import{join as Pg}from"node:path";function HL(e){let t=Pg(we(),"intents",e,"intent.md");if(!jL(t))return null;let n=FL(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function RZ(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Myt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function j4n(e,t,n,r,i){let s=HL(e);if(!s)return;let o=t==="review"?vZ:AZ,a={...RZ(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,je(s.path,o,a)}function F4n(e,t){if(t==="user")return;let n=HL(e);if(!n)return;let r={...Myt(n.fm,TZ)};r[t]={dispatched_at:new Date().toISOString()},je(n.path,TZ,r)}function Dyt(e){let{intentDir:t,stage:n,role:r,units:i,dispatchedAt:s,kind:o}=e,a=[],c=[];for(let u of i){let l=Pg(t,"stages",n,"units",`${u}.md`);if(!jL(l))continue;if(s&&q4n({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=FL(l,"utf8"),p=re(d).data;if(o==="review"){let h=p.reviews&&typeof p.reviews=="object"?{...p.reviews}:{},m=Array.isArray(p.inputs)?p.inputs:[];h[r]=Il(l,{intentDir:t,unitInputs:m}),je(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=jd(t,h),je(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function cye(e,t,n,r){let i=HL(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?vZ:AZ,o=RZ(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Pg(we(),"intents",e),{stamped:u,skipped:l}=Dyt({intentDir:c,stage:n,role:r,units:a.units,dispatchedAt:a.dispatched_at,kind:t}),d={...o[n]??{}};return delete d[r],Object.keys(d).length===0?delete o[n]:o[n]=d,je(i.path,s,o),{found:!0,stamped:u,skipped:l}}function H4n(e){let t=HL(e);if(!t)return!1;let n=we(),r=Pg(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?vZ:AZ,c=RZ(t.fm,a);if(Object.keys(c).length!==0){for(let u of Object.keys(c)){let l=c[u]??{};for(let d of Object.keys(l)){let f=l[d];if(!f||!Array.isArray(f.units))continue;Dyt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}je(t.path,a,{})}}let s=Myt(t.fm,TZ);if(Object.keys(s).length>0){let o=t.fm.approvals&&typeof t.fm.approvals=="object"?{...t.fm.approvals}:{},a=!1;for(let c of Object.keys(s)){let u=s[c];u?.dispatched_at&&(B4n({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&je(t.path,"approvals",o),je(t.path,TZ,{})}return i}function q4n(e){let t=Pg(e.intentDir,"stages",e.stage,"feedback");if(!jL(t))return!1;for(let n of Cyt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Pg(t,n.name),i=FL(r,"utf8"),o=re(i).data;if(o.closed_at||o.rejected_at)continue;let a=o.targets??{};if(a.unit!==e.targetUnit||!(Array.isArray(a.invalidates)?a.invalidates:[]).includes(e.role)||!r0(o.severity))continue;let u=o.created_at??"";if(!(u&&uc!==e.unit);a.length!==o.units.length&&(a.length===0?delete r[s]:r[s]={...o,units:a},i=!0)}i&&(Object.keys(r).length===0&&delete n[e.stage],je(t.path,e.field,n))}var vZ,AZ,TZ,uv=v(()=>{"use strict";es();ze();Wf();vZ="_pending_review_dispatches",AZ="_pending_approval_dispatches",TZ="_pending_intent_review_dispatches"});import{existsSync as G4n,readFileSync as z4n}from"node:fs";import{join as V4n}from"node:path";function Uyt(e){let t=e.fbFm.targets??{},n=typeof t.unit=="string"?t.unit:void 0,r=Array.isArray(t.invalidates)?t.invalidates.filter(i=>typeof i=="string"):[];if(n&&e.stage&&r.length>0)try{uye({slug:e.slug,stage:e.stage,targetUnit:n,invalidates:r})}catch(i){Qe("haiku.feedback.invalidations_failed",{intent:e.slug,stage:e.stage,feedback_id:e.feedbackId,target_unit:n,invalidates:r.join(","),error:String(i?.message??i)})}if(n&&e.stage)try{W4n({slug:e.slug,stage:e.stage,targetUnit:n,invalidates:r})}catch(i){Qe("haiku.feedback.witness_restamp_failed",{intent:e.slug,stage:e.stage,feedback_id:e.feedbackId,target_unit:n,error:String(i?.message??i)})}}function W4n(e){let t=we(),n=V4n(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!G4n(n))return;let r=Ig(n);if(!r)return;let i=z4n(n,"utf8"),o=(0,Lyt.default)(i).data,a=new Set(e.invalidates),c=d=>{let f=o[d];if(!f||typeof f!="object"||Array.isArray(f))return null;let p={...f},h=!1;for(let[m,y]of Object.entries(p)){if(a.has(m)||!y||typeof y!="object"||Array.isArray(y))continue;let g=y;typeof g.at=="string"&&g.body_sha256!==r&&(p[m]={...g,body_sha256:r},h=!0)}return h?p:null},u=c("reviews");u&&je(n,"reviews",u);let l=c("approvals");l&&je(n,"approvals",l)}var Lyt,jyt=v(()=>{"use strict";Lyt=_e(sn(),1);uv();Wf();ze();Ko()});var Vyt={};Rr(Vyt,{__testOnly:()=>nKn,withIntentDispatchLock:()=>C0,withIntentMainLock:()=>xZ,withStageLock:()=>P_});import{existsSync as K4n,mkdirSync as Hyt,readFileSync as Z4n,rmSync as qyt,statSync as Y4n,writeFileSync as J4n}from"node:fs";import{join as wZ}from"node:path";function Byt(){return wZ(Wr(),".haiku","locks")}function $4n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function eKn(e){let t=wZ(e,"holder.json");if(!K4n(t))return null;try{let n=Z4n(t,"utf8"),r=JSON.parse(n);return typeof r.pid=="number"&&typeof r.at=="number"&&typeof r.tag=="string"?r:null}catch{return null}}function Gyt(e){let t;try{t=Date.now()-Y4n(e).mtimeMs}catch{return!1}if(t{"use strict";ze();X4n=50,Fyt=3e4,Q4n=5*6e4;nKn={acquireLock:kZ,releaseLock:IZ,lockRoot:Byt,isStale:Gyt}});function BL(e){return Array.isArray(e.iterations)?e.iterations:[]}function rKn(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function lye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Wyt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:BL(e.fm).length>0}function iKn(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(Wyt)?"active":"pending":e.length===0||!e.some(Wyt)?"pending":e.every(s=>{let o=BL(s.fm);if(o.length===0)return!1;let a=o[o.length-1];if(a.result!=="advance"||t.length>0&&a.hat!==t[t.length-1])return!1;let c=lye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function sKn(e,t,n,r,i,s){if(i!=="autopilot"&&(s===!1||s===null&&e.length===0)||e.length===0)return"elaborate";for(let o of n)if(e.some(c=>!rKn(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=BL(a.fm);if(c.length===0)return!1;let u=c[c.length-1];return u.result==="advance"&&u.hat===t[t.length-1]}))return"execute";for(let o of r)if(e.some(c=>!lye(c.fm)[o]))return"gate";return null}function oKn(e,t){return e.length===0?null:e.every(r=>{let i=lye(r.fm);return t.every(s=>i[s])})?"advanced":null}function Kyt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function aKn(e){return e.map(n=>Kyt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function cKn(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=BL(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=Kyt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function uKn(e){let t=0;for(let n of e){let r=BL(n.fm);r.length>t&&(t=r.length)}return t}function dye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=iKn(n,i,o,a),l=u==="completed"?null:sKn(n,i,s,o,r,c),d=oKn(n,o),f=aKn(n),p=cKn(n,u),h=uKn(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var fye=v(()=>{"use strict"});import{execFileSync as NZ}from"node:child_process";import{existsSync as Yyt,readdirSync as lKn,readFileSync as dKn}from"node:fs";import{basename as Jyt,join as OZ}from"node:path";function pye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(pye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=pye(r);return t}return e}function Qyt(e){try{let t=(0,Xyt.default)(e).data;return pye(t)}catch{return null}}function $yt(e){if(!Yyt(e))return null;try{return Qyt(dKn(e,"utf8"))}catch{return null}}function fKn(e){let t=OZ(e,"units");return Yyt(t)?lKn(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=$yt(OZ(t,n.name))??{};return{name:Jyt(n.name,".md"),fm:r}}):[]}function pKn(e,t){if(!Ae())return null;try{return NZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function eSt(e,t){let n=pKn(e,t);return n==null?null:Qyt(n)}function hKn(e,t){if(!Ae())return[];try{return NZ("git",["ls-tree","--name-only",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).map(r=>r.trim()).filter(r=>r.endsWith(".md")).sort((r,i)=>r.localeCompare(i))}catch{return[]}}function mKn(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=hKn(e,r);return i.length===0?[]:i.map(s=>{let o=eSt(e,`${r}/${s}`)??{};return{name:Jyt(s,".md"),fm:o}})}function hye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(gl(e,t)).sort(),"user"]}function mye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(gl(e,t)).sort(),"user"]}function gKn(e,t){if(!Ae())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return NZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function Zyt(e){if(!Ae())return!1;try{return NZ("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function lv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=OZ(i,"stages",r),a=to(n,r),c=hye(n,r,s),u=mye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Ae(),p=f&&Zyt(l),m=f&&Zyt(d)?d:p?l:null,y=m?mKn(m,t,r):fKn(o),g=p?gKn(t,r):null,E=OZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,_=m?eSt(m,S):$yt(E),b=null;return _!==null&&(b=(typeof _.verified_at=="string"?_.verified_at:"").length>0),dye({stage:r,units:y,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:g,elaborationVerified:b})}var Xyt,GL=v(()=>{"use strict";fye();Xyt=_e(sn(),1);xT();Zn();_o()});import{appendFileSync as yKn,existsSync as Wli,mkdirSync as tSt,readFileSync as Kli,writeFileSync as SKn}from"node:fs";import{dirname as nSt}from"node:path";function rSt(e,t){try{tSt(nSt(e),{recursive:!0}),SKn(e,`${JSON.stringify(t,null,2)} -`)}catch{}}function ts(e,t){try{let n=e.replace(/\.json$/,".jsonl");tSt(nSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};yKn(n,`${JSON.stringify(r)} -`)}catch{}}var zL=v(()=>{"use strict"});var iSt,sSt,oSt,aSt=v(()=>{"use strict";iSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],sSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],oSt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as _Kn}from"node:crypto";import{existsSync as cSt,readdirSync as EKn,readFileSync as uSt,writeFileSync as bKn}from"node:fs";import{join as PZ}from"node:path";function TKn(e){let t=JSON.stringify(e,Object.keys(e).sort());return _Kn("sha256").update(t).digest("hex").slice(0,16)}function gye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function vKn(e,t,n){if(!n)return{};let r=PZ(e,"intents",t,"stages",n,"units");if(!cSt(r))return{};for(let i of EKn(r)){if(!i.endsWith(".md"))continue;let s=uSt(PZ(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return gye(o,oSt)}return{}}function si(e){if(!Ni().hooks)try{let t=we(),n=PZ(t,"intents",e,"intent.md");if(!cSt(n))return;let r=uSt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=gye(i,iSt),a={};if(s){let f=D0(e,s),p=C_(f);a=gye(p,sSt)}let c=vKn(t,e,s),l=TKn({intent:o,stage:a,unit:c}),d=PZ(t,"intents",e,".fsm_checksum");bKn(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var CZ=v(()=>{"use strict";yf();ze();aSt()});function qe(e,t,n){if(t(e))return null;let r=(t.errors??[]).map(a=>({path:a.instancePath||"/",keyword:a.keyword,message:a.message??"(no message)",params:a.params})),i=He.errorsText(t.errors??null,{separator:"; "}),o={error:`${n}_input_invalid`,tool:n,message:`Invalid arguments for ${n}: ${i}. Check field types and required fields against the tool's inputSchema.`,errors:r};return{content:[{type:"text",text:JSON.stringify(o,null,2)}],structuredContent:o,isError:!0}}var vo=v(()=>{"use strict";wa()});var JZ={};Rr(JZ,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>KT,AGENT_AUTHORABLE_UNIT_FIELDS:()=>k_,CREATE_TIME_FB_FIELDS:()=>SL,ERROR_OUTPUT_SCHEMA:()=>Cge,FEEDBACK_ASSESSOR_HAT:()=>WZ,FEEDBACK_ORIGINS:()=>c3n,FEEDBACK_STATUSES:()=>D_,FSM_DRIVEN_FB_FIELDS:()=>yL,FSM_DRIVEN_INTENT_FIELDS:()=>ZT,FSM_DRIVEN_UNIT_FIELDS:()=>Vf,INTENT_FRONTMATTER_SCHEMA:()=>vL,INTENT_TITLE_MAX_LENGTH:()=>wye,IntentScopeTickPersistError:()=>Hd,MAX_CONCURRENT_SUBAGENTS:()=>rv,MAX_FIX_LOOP_BOLTS:()=>Og,MAX_INTEGRATOR_ATTEMPTS:()=>u3n,MAX_RATIONALE_BYTES:()=>bye,MAX_RATIONALE_EXCERPT_BYTES:()=>Tye,MAX_STAGE_ITERATIONS:()=>Pf,MAX_UNIT_BOLTS:()=>dv,OK_OUTPUT_SCHEMA:()=>Mge,REJECT_LOOP_MIN_REPEATS:()=>qZ,STAGE_STATE_FIELDS:()=>Dge,STAGE_STATE_SCHEMA:()=>tZ,UNIT_FRONTMATTER_SCHEMA:()=>YT,_resetIsGitRepoForTests:()=>Hdt,appendFeedbackIteration:()=>h3n,appendFeedbackReply:()=>Hye,appendStageIteration:()=>Nye,applyAutoFixes:()=>kye,closeCurrentStageIteration:()=>Pye,completeUnitIteration:()=>BZ,computeFeedbackSignature:()=>ASt,countConsecutiveSameRejects:()=>vSt,countInFlightUnits:()=>CSt,countPendingFeedback:()=>g3n,countUnitBolts:()=>TSt,deleteFeedbackFile:()=>YZ,deleteFrontmatterFields:()=>qh,deriveAuthorType:()=>Dye,deriveFeedbackIdFromFilename:()=>LSt,deriveFeedbackStatus:()=>Jf,deriveUnitStatus:()=>U0,detectDagCycles:()=>xSt,detectSettledDuplicate:()=>RSt,dismissFeedbackClosureReply:()=>qye,ensureWorktreesGitignored:()=>MD,feedbackDir:()=>$o,feedbackSeverityRank:()=>Kc,findFeedbackFile:()=>mc,findHaikuRoot:()=>we,formatFeedbackId:()=>Fd,getIntentScopeTickCounter:()=>e1,getStageIterationCount:()=>kSt,gitCommitAll:()=>GZ,gitCommitState:()=>Dt,gitCommitStateBackgroundPush:()=>Dg,gitCommitStateIfDirty:()=>Cye,handleStateTool:()=>Gye,incrementFeedbackBolt:()=>y3n,intentDir:()=>fe,intentFromCurrentBranch:()=>fv,intentTitleNeedsRepair:()=>XL,isGitRepo:()=>Ae,isIntentArchived:()=>$L,isIntentLocked:()=>QL,listInstalledSkills:()=>F0,listVisibleIntentSlugs:()=>s3n,listVisibleIntents:()=>Mg,matchesGlob:()=>vye,migrateIterationReasonsOnRead:()=>Aye,migrateMisplacedWorktrees:()=>bSt,moveFeedbackFile:()=>DSt,normalizeLegacyFeedbackStatus:()=>KZ,normalizeRejectReason:()=>xye,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>Lye,persistDesignDirectionUploads:()=>Uye,pickUndispatchedUnitBlocks:()=>PSt,primaryRepoRoot:()=>Wr,readClaimedAuthorId:()=>HKn,readDecisionLog:()=>QK,readFeedbackFiles:()=>yo,readIntentBody:()=>Hh,readJson:()=>C_,resolveUnitHats:()=>YL,runInlineQualityGates:()=>Iye,safeMkdirAndRename:()=>cv,setFrontmatterField:()=>je,setHaikuRootForTests:()=>Bdt,setIsGitRepoForTests:()=>qdt,setUnitFrontmatterField:()=>o3n,slugifyTitle:()=>ZZ,stageDir:()=>vr,stageStatePath:()=>D0,stampDispatchClaim:()=>NSt,stampUnitHatLease:()=>jye,startUnitIteration:()=>KL,stateToolDefs:()=>Bye,syncSessionMetadata:()=>Yr,timestamp:()=>En,unitIntentDir:()=>BKn,unitOutputExists:()=>M_,unitPath:()=>Qo,updateFeedbackFile:()=>Fye,validateBranch:()=>Mye,validateIntentSchema:()=>y0,validateRationaleCaps:()=>xKn,validateSlugArgs:()=>_D,validateUnitFrontmatter:()=>ISt,validateUnitSchema:()=>kg,validateUnitScope:()=>HZ,writeFeedbackFile:()=>fc,writeJson:()=>ZL});import{execFileSync as ka,execSync as Cg,spawn as AKn,spawnSync as MZ}from"node:child_process";import{randomBytes as RKn}from"node:crypto";import{appendFileSync as wKn,existsSync as de,lstatSync as kKn,mkdirSync as Ol,readdirSync as un,readFileSync as Pe,renameSync as gSt,rmSync as Eye,statSync as ySt,unlinkSync as j0,writeFileSync as Mn}from"node:fs";import{homedir as IKn}from"node:os";import{dirname as JL,join as ne,resolve as Fh,sep as L0}from"node:path";import{readdirSync as t3n}from"node:fs";function lSt(e){return Buffer.byteLength(e,"utf-8")}function xKn(e){let t=lSt(e.agent_rationale);if(t>bye)return{kind:"agent_rationale_too_long",bytes:t,cap:bye};for(let n=0;nTye)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:Tye}}return null}function XL(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>wye||/\n/.test(t))}function kye(e,t,n){let r=ne(e,t,"intent.md");if(!de(r))return{applied:[],remaining:n};let i=[],s=[r],o=ne(e,t,"stages");if(de(o))for(let g of un(o,{withFileTypes:!0})){if(!g.isDirectory())continue;let E=ne(o,g.name,"units");if(de(E))for(let S of un(E,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(ne(E,S.name))}for(let g of s){let E=Pe(g,"utf8"),{text:S,removed:_}=ag(E);if(_.length===0)continue;Mn(g,S);let b=g.startsWith(ne(e,t))?g.slice(ne(e,t).length+1):g;i.push({intent:t,field:`${b}:frontmatter`,description:`Deduped frontmatter keys: ${_.join(", ")}`})}let a=n.filter(g=>!g.field.endsWith(":frontmatter-duplicate-keys")),c=Pe(r,"utf8"),u=(0,Ht.default)(c),l=u.data,d=u.content,f=!1,p=[];for(let g of a){let E=!1;if(g.field==="title"&&typeof l.title=="string"&&XL(l.title)){let S=l.title.replace(/\s+/g," ").trim(),_=S.length>120?`${S.slice(0,117)}...`:S;p.push({intent:t,field:"title",severity:"error",message:`Title is ${S.length} chars \u2014 looks auto-truncated or is a full description, not a title`,fix:`Rewrite as a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Preserve the current text as a paragraph in the body under the H1 if it isn't there already. Original: "${_}"`}),E=!0}if(g.field==="created"&&l.created&&!l.created_at&&(l.created_at=l.created,delete l.created,i.push({intent:t,field:"created",description:"Renamed legacy `created` to `created_at`"}),E=!0,f=!0),g.field==="created_at"&&!l.created&&!l.created_at){let S=OKn(r);l.created_at=S?S.mtime.toISOString():new Date().toISOString(),i.push({intent:t,field:"created_at",description:"Added `created_at` from file mtime"}),E=!0,f=!0}if(g.field==="mode"&&!l.mode&&(l.mode="continuous",i.push({intent:t,field:"mode",description:"Defaulted `mode` to 'continuous'"}),E=!0,f=!0),g.field==="stages"&&g.message.startsWith("Stages don't match")){let S=g.fix.match(/Expected: \[([^\]]+)\]/);if(S){let _=S[1].split(",").map(b=>b.trim()).filter(Boolean);_.length>0&&(l.stages=_,i.push({intent:t,field:"stages",description:`Updated stages to match studio definition: [${_.join(", ")}]`}),E=!0,f=!0)}}if(g.field==="created_at"&&g.message.includes("git history")){let S=g.fix.match(/'([^']+)' \(from git/);S&&(l.created_at=S[1],i.push({intent:t,field:"created_at",description:`Updated created_at to '${S[1]}' from git history`}),E=!0,f=!0)}if(g.field==="started_at"&&g.fix.includes("from git")){let S=g.fix.match(/'([^']+)' \(from git/);S&&(l.started_at=S[1],i.push({intent:t,field:"started_at",description:`Updated started_at to '${S[1]}' from git history`}),E=!0,f=!0)}E||p.push(g)}f&&Mn(r,Ht.default.stringify(d,l));let h=ne(e,t,"stages");if(de(h))for(let g of un(h,{withFileTypes:!0})){if(!g.isDirectory())continue;let E=ne(h,g.name,"units");if(de(E))for(let S of un(E,{withFileTypes:!0})){if(!(S.isFile()&&S.name.endsWith(".md")))continue;let _=ne(E,S.name),b=Pe(_,"utf8"),T=(0,Ht.default)(b);if("type"in T.data){let{type:A,...R}=T.data;Mn(_,Ht.default.stringify(T.content,R)),i.push({intent:t,field:`stages/${g.name}/units/${S.name}:type`,description:"Removed deprecated `type` field from unit"})}}}let m=[],y=/^stages\/([^/]+)\/units\/([^/]+):inputs$/;for(let g of p){let E=g.field.match(y);if(!(E&&g.message.includes("Unit has no `inputs:`"))||typeof g.fix!="string"){m.push(g);continue}let S=E[1],_=E[2],b=ne(e,t,"stages",S,"units",_);if(!de(b)){m.push(g);continue}let T=[],A=g.fix.match(/upstream paths:\s*(.+?)\s*$/);if(A)T=A[1].split(",").map(N=>N.trim()).filter(Boolean);else{let N=["intent.md"],P=ne(e,t,"knowledge");if(de(P))for(let D of un(P))D.endsWith(".md")&&N.push(`knowledge/${D}`);T=N}if(T.length===0){m.push(g);continue}let R=Pe(b,"utf8"),k=(0,Ht.default)(R);(k.data.inputs||[]).length>0||(k.data.inputs=T,Mn(b,Ht.default.stringify(k.content,k.data)),i.push({intent:t,field:g.field,description:`Linked ${T.length} input(s): ${T.join(", ")}`}))}return{applied:i,remaining:m}}function OKn(e){try{return ySt(e)}catch{return null}}function NKn(e,t){if(!Ae())return null;try{let r=ka("git",["log","--diff-filter=A","--follow","--format=%aI","--",e],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"],...t?{cwd:t}:{}}).trim().split(` -`).filter(Boolean);return r.length>0?r[r.length-1]:null}catch{return null}}function _St(e){let t=new Map,n=nn(),r=[ne(e,"studios"),ne(n,"studios")];for(let i of r)if(de(i))for(let s of un(i,{withFileTypes:!0})){if(!s.isDirectory()||t.has(s.name))continue;let o=ne(i,s.name,"STUDIO.md");if(!de(o))continue;let{data:a}=re(Pe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function VZ(e,t,n,r){let i=ne(e,t,"intent.md");if(!de(i))return[];let s=Pe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=ag(s);if(c.length>0&&a.push({intent:t,field:"intent.md:frontmatter-duplicate-keys",severity:"warning",message:`Duplicate frontmatter keys: ${c.join(", ")}`,fix:"Rewrite frontmatter with duplicate keys removed (last value wins)"}),!o.title||typeof o.title=="string"&&o.title.trim()==="")a.push({intent:t,field:"title",severity:"error",message:"Missing title field",fix:"Add `title` field with a short one-line name (\u226480 chars)"});else if(typeof o.title=="string"&&XL(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${wye})`;a.push({intent:t,field:"title",severity:"error",message:`Title should be a short one-liner \u2014 ${f}`,fix:"Rewrite `title` as a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Do NOT truncate the current value \u2014 write a deliberate human-readable summary. Preserve the original text as a paragraph in the body under the H1 if it isn't there already."})}o.studio||a.push({intent:t,field:"studio",severity:"error",message:"Missing studio field",fix:"Set `studio` to an available studio"});let u=o.studio;if(u&&!n.has(u)&&!_i(u)){let f=Array.from(n.keys()).join(", ");a.push({intent:t,field:"studio",severity:"error",message:`Studio '${u}' not found`,fix:`Studio '${u}' not found. Available: ${f}`})}let l=o.stages;if(!Array.isArray(l)||l.length===0)if(u&&n.has(u)){let d=n.get(u)?.join(", ");a.push({intent:t,field:"stages",severity:"error",message:"Missing or empty stages array",fix:`Set \`stages\` to match studio definition: [${d}]`})}else a.push({intent:t,field:"stages",severity:"error",message:"Missing or empty stages array",fix:"Set `stages` to match studio definition"});if(Array.isArray(l)&&l.length>0&&u){let d=n.get(u);if(d){let f=l;JSON.stringify(d)!==JSON.stringify(f)&&a.push({intent:t,field:"stages",severity:"warning",message:"Stages don't match studio definition",fix:`Stages don't match studio definition. Expected: [${d.join(", ")}], got: [${f.join(", ")}]`})}}if(o.mode||a.push({intent:t,field:"mode",severity:"error",message:"Missing mode field",fix:"Run `haiku_run_next { intent: }` \u2014 the cursor will emit `select_mode` and the engine surfaces the picker. (Auto-apply defaults to 'continuous' as a recovery fallback for corrupted intents.)"}),o.created&&!o.created_at&&a.push({intent:t,field:"created",severity:"warning",message:"Legacy `created` field found",fix:"Rename `created` to `created_at`"}),o.created||o.created_at||a.push({intent:t,field:"created_at",severity:"warning",message:"Missing created_at field",fix:"Add `created_at` with an ISO date"}),Array.isArray(l))for(let d of l){let f=ne(e,t,"stages",d,"units");if(!de(f))continue;let p=[];if(u){let h=null;for(let m of r){let y=ne(m,u,"stages",d,"STAGE.md");if(!de(y))continue;let{data:g}=re(Pe(y,"utf8"));Array.isArray(g.inputs)&&g.inputs.length>0&&(h=g.inputs);break}if(h){let m=ne(e,t);for(let y of h)for(let g of r)for(let E of["discovery","outputs"]){let S=ne(g,u,"stages",y.stage,E);if(de(S))for(let _ of un(S).filter(b=>b.endsWith(".md"))){let b=Pe(ne(S,_),"utf8"),{data:T}=re(b),A=T.name||_.replace(/\.md$/,""),R=E==="outputs"?y.output:y.discovery;if(A!==R)continue;let k=T.location||"";if(!k)continue;let x=k.replace(/^\.haiku\/intents\/\{intent-slug\}\//,""),N=ne(m,x);de(N)&&p.push(x)}}}}for(let h of un(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;PKn.test(h.name)||a.push({intent:t,field:`stages/${d}/units/${h.name}`,severity:"warning",message:"Unit filename doesn't match expected pattern",fix:"Rename to match pattern: unit-NNN-slug-name.md (3-digit zero-padded; legacy 2-digit also resolves)"});let m=Pe(ne(f,h.name),"utf8"),{removed:y}=ag(m);y.length>0&&a.push({intent:t,field:`stages/${d}/units/${h.name}:frontmatter-duplicate-keys`,severity:"warning",message:`Duplicate frontmatter keys in unit: ${y.join(", ")}`,fix:"Rewrite frontmatter with duplicate keys removed (last value wins)"});let{data:g}=re(m),E=typeof o.plugin_version=="string";!g.status&&!E&&a.push({intent:t,field:`stages/${d}/units/${h.name}:status`,severity:"warning",message:"Unit missing 'status' field",fix:"Add `status` field to unit frontmatter"});let S=g.status||"";if(["complete","skipped","failed"].includes(S))continue;if((g.inputs||g.refs||[]).length===0){let b=p.length>0?`Add \`inputs:\` with upstream paths: ${p.join(", ")}`:"Add `inputs:` with at minimum the intent doc and discovery docs";a.push({intent:t,field:`stages/${d}/units/${h.name}:inputs`,severity:"error",message:"Unit has no `inputs:` \u2014 execution will be blocked",fix:b})}}}if(Ae()){let d=ne(e,t,"intent.md"),f=NKn(d),p=o.created_at,h=o.started_at;if(f&&p){let m=f.slice(0,10),y=typeof p=="string"?p.slice(0,10):"";m!==y&&a.push({intent:t,field:"created_at",severity:"warning",message:`created_at '${y}' doesn't match git history '${m}'`,fix:`Update created_at to '${f}' (from git first commit)`})}if(f&&h){let m=f.slice(0,10),y=typeof h=="string"?h.slice(0,10):"";m!==y&&a.push({intent:t,field:"started_at",severity:"warning",message:`started_at '${y}' doesn't match git history '${m}'`,fix:`Update started_at to '${f}' (from git first commit)`})}f&&!h&&a.push({intent:t,field:"started_at",severity:"warning",message:"Missing started_at field",fix:`Set started_at to '${f}' (from git first commit)`})}return a}function ESt(e,t,n){let r=e??we(),i=ne(r,"intents");if(!de(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=_St(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!de(ne(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=un(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&de(ne(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=VZ(i,f,s,o);if(n&&p.length>0){let h=kye(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=VZ(i,f,s,o))}p.length===0?u.push(f):(c.push(...p),d.push(...p))}return{scanned:a.length,cleanIntents:u,issues:c,applied:l,remaining:d}}function CKn(e,t=""){if(e.issues.length===0&&e.applied.length===0)return`${t}All intents passed validation. No repairs needed.`;let n=new Map;for(let i of e.issues){let s=n.get(i.intent)||[];s.push(i),n.set(i.intent,s)}let r=[`${t}# Intent Repair Report`,"",`Scanned ${e.scanned} intent(s). Auto-applied ${e.applied.length} fix(es). ${e.remaining.length} issue(s) remaining.`,""];if(e.applied.length>0){r.push("## Auto-Applied Fixes"),r.push("");for(let i of e.applied)r.push(`- **${i.intent}** / \`${i.field}\` \u2014 ${i.description}`);r.push("")}for(let[i,s]of n){let o=s.filter(c=>c.severity==="error").length,a=s.filter(c=>c.severity==="warning").length;r.push(`## ${i} \u2014 ${o} error(s), ${a} warning(s)`),r.push(""),r.push("| # | Severity | Field | Issue | Fix |"),r.push("|---|----------|-------|-------|-----|"),s.forEach((c,u)=>{r.push(`| ${u+1} | ${c.severity} | ${c.field} | ${c.message} | ${c.fix} |`)}),r.push("")}if(e.cleanIntents.length>0){r.push("## Intents with no issues");for(let i of e.cleanIntents)r.push(`- ${i}`);r.push("")}return e.remaining.length>0&&r.push("---","","Auto-fixes were applied for safe issues. Remaining issues need agent or user attention. For each:","1. Read the intent.md file","2. Apply the fix listed in the table above","3. After fixing, report what you changed"),r.join(` -`)}function dSt(){if(!Ae())return[];let e;try{e=ka("git",["worktree","list","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return[]}let t=[],n=null;for(let r of e.split(` -`))r.startsWith("worktree ")?(n&&t.push(n),n={path:r.slice(9).trim(),branch:null}):r.startsWith("branch ")&&n?n.branch=r.slice(7).trim():r===""&&n&&(t.push(n),n=null);return n&&t.push(n),t}function MKn(e){try{return ka("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function bSt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Ae())return e;let t=Wr(),n=`${L0}.haiku${L0}worktrees${L0}`;for(let i of dSt()){let s=i.path.indexOf(n);if(s===-1||i.path.slice(0,s)===t)continue;let a=i.path.slice(s),c=t+a;if(de(c)){e.skipped.push({path:i.path,reason:`target already exists: ${c}`});continue}if(MKn(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(L0));Ol(u,{recursive:!0}),ka("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of dSt())i.path!==t&&r.add(i.path);for(let i of r){let s=ne(i,".haiku","worktrees");if(!de(s))continue;let o=!1;try{let a=c=>{if(!o)for(let u of un(c,{withFileTypes:!0})){let l=ne(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{Eye(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=ne(i,".haiku");de(a)&&un(a).length===0&&Eye(a,{recursive:!0,force:!0})}catch{}}return e}function DKn(e){if(e.moved.length===0&&e.skipped.length===0&&e.cleanedSkeletons.length===0)return"";let t=["## Worktree Migration",""];if(e.moved.length>0){t.push(`Moved ${e.moved.length} misplaced worktree(s):`);for(let n of e.moved)t.push(`- \`${n.branch}\`: ${n.old} \u2192 ${n.new}`);t.push("")}if(e.skipped.length>0){t.push(`Skipped ${e.skipped.length} worktree(s):`);for(let n of e.skipped)t.push(`- ${n.path} \u2014 ${n.reason}`);t.push("")}if(e.cleanedSkeletons.length>0){t.push(`Cleaned ${e.cleanedSkeletons.length} empty skeleton dir(s):`);for(let n of e.cleanedSkeletons)t.push(`- ${n}`);t.push("")}return t.join(` -`)}function LKn(e){wT();let t=ac(),n=[];if(e){let s=Mfe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=Zfe(u,`.haiku/intents/${o}/intent.md`);if(l){let{data:d}=re(l),f=d.studio||"";if(f){let p=_i(f);if(p&&p.stages.length>0){let h=p.stages;c.sort((m,y)=>{let g=h.indexOf(m),E=h.indexOf(y);return(g===-1?h.length:g)-(E===-1?h.length:E)})}}}}catch{}try{let u=Kfe(o,c);if(u.success)try{ka("git",["push","-u","origin",`haiku/${o}/main`],{encoding:"utf8",stdio:"pipe"})}catch{}else{let l=u.isConflict?`Merge conflict consolidating into haiku/${o}/main on ${u.conflictFiles?.length??0} file(s): ${(u.conflictFiles??[]).join(", ")}. Resolve on haiku/${o}/main, commit, then re-run /haiku:haiku-repair.`:`Failed to consolidate stage branches into haiku/${o}/main: ${u.message}`;n.push({slug:o,branch:`haiku/${o}/main`,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1,pushError:l})}}catch(u){n.push({slug:o,branch:`haiku/${o}/main`,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1,pushError:`Failed to create main from stage branches: ${u instanceof Error?u.message:String(u)}`})}}}let r=NK();for(let s of r){let o=`haiku/${s}/main`,a="",c={slug:s,branch:o,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1};try{a=PK(o,"haiku-repair",!0)}catch(u){c.error=`Failed to create worktree: ${u instanceof Error?u.message:String(u)}`,n.push(c);continue}try{let u=ne(a,".haiku"),l=ESt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=ne(u,"intents",s,"intent.md");if(de(d)&&re(Pe(d,"utf8")).data.status==="completed"&&!yl(o,t)){let p={intent:s,field:"status",severity:"error",message:`Intent marked 'completed' but branch '${o}' is not merged into '${t}'`,fix:`Either merge the branch into '${t}' or set status to 'active'`};c.remaining.push(p)}if(e&&l.applied.length>0){let f=yl(o,t),p=[`repair: auto-fix ${l.applied.length} metadata issue(s)`,"",...l.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=MK(a,o,p.join(` -`));if(c.committed=h.committed,c.pushed=h.pushed,c.pushError=h.pushError,h.committed&&h.pushed&&f){c.merged=!0;let m=_I(o,t,`repair: metadata fixes for ${s}`,`Auto-applied repair fixes (branch was already merged into \`${t}\`): - -${l.applied.map(y=>`- **${y.intent}/${y.field}**: ${y.description}`).join(` -`)}`);m.ok?c.prUrl=m.url:c.prError=m.error}}}finally{a&&CK(a)}n.push(c)}let i=UKn(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function UKn(e,t,n){let r=new Set(e),i=`repair/archived-intents-${Date.now()}`,s={slug:"",branch:i,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1},o="";try{o=PK(t,"haiku-repair-archived",!0)}catch(a){return s.setupError=`Failed to create mainline worktree: ${a instanceof Error?a.message:String(a)}`,s}try{let a=ne(o,".haiku"),c=ne(a,"intents");if(!de(c))return;let l=un(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&de(ne(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=_St(a);for(let p of l){let h=VZ(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=kye(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=VZ(c,p,d,f))}h.length>0&&s.remaining.push(...h)}if(n&&s.applied.length>0){let p=[`repair: auto-fix ${s.applied.length} issue(s) in archived intent(s)`,"",...s.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=MK(o,i,p.join(` -`));if(s.committed=h.committed,s.pushed=h.pushed,s.pushError=h.pushError,h.committed&&h.pushed){let m=_I(i,t,"repair: metadata fixes for archived intents",`Auto-applied repair fixes for archived intents on \`${t}\`: - -${s.applied.map(y=>`- **${y.intent}/${y.field}**: ${y.description}`).join(` -`)}`);m.ok?s.prUrl=m.url:s.prError=m.error}}}finally{o&&CK(o)}if(s.scanned>0||s.setupError)return s}function jKn(e,t,n){if(e.length===0&&!n)return"No intent branches or archived intents found in this repository.";let r=["# Multi-Branch Repair Report","",`Scanned ${e.length} intent branch(es). Mainline: \`${t}\`.`,""],i=e.reduce((l,d)=>l+d.applied.length,0)+(n?.applied.length??0),s=e.reduce((l,d)=>l+d.remaining.length,0)+(n?.remaining.length??0),o=e.filter(l=>l.pushed).length+(n?.pushed?1:0),a=e.filter(l=>l.prUrl).length,c=n?.prUrl?1:0,u=a>0&&c>0?`${a} PR(s) for already-merged branches + 1 PR for archived intents`:a>0?`${a} PR(s) opened for already-merged branches`:c>0?"1 PR opened for archived intents":"no PRs opened";r.push(`**Summary:** ${i} fix(es) auto-applied across ${o} branch(es); ${u}; ${s} issue(s) still need attention.`),r.push("");for(let l of e){if(r.push(`## \`${l.branch}\``),r.push(""),r.push(`- Scanned: ${l.scanned} intent(s)`),r.push(`- Auto-applied: ${l.applied.length}`),r.push(`- Remaining: ${l.remaining.length}`),l.committed&&l.pushed?r.push(`- Committed and pushed to \`origin/${l.branch}\``):l.committed?r.push(`- Committed locally; push failed: ${l.pushError||"unknown"}`):l.error?r.push(`- Error: ${l.error}`):l.pushError&&r.push(`- Push error: ${l.pushError}`),l.merged&&l.prUrl?r.push(`- Branch already merged into \`${t}\` \u2014 opened PR/MR: ${l.prUrl}`):l.merged&&l.prError&&r.push(`- Branch already merged into \`${t}\` \u2014 failed to open PR: ${l.prError}`),l.applied.length>0){r.push(""),r.push("**Fixes applied:**");for(let d of l.applied)r.push(`- ${d.intent}/${d.field}: ${d.description}`)}if(l.remaining.length>0){r.push(""),r.push("**Remaining issues (need agent attention):**");for(let d of l.remaining)r.push(`- **${d.intent}**/${d.field} (${d.severity}): ${d.message} \u2192 ${d.fix}`)}r.push("")}if(n){if(r.push("## Archived intents (mainline only)"),r.push(""),n.setupError)return r.push(`- **Mainline worktree setup failed:** ${n.setupError}`),r.push("- No archived intents were scanned. Fix the underlying git/filesystem issue and re-run `/repair`."),r.push(""),r.join(` +`);return r.drift_detection===!1}catch{return!1}}function Iyt(e){let t=Cg(e,"stages");if(!AY(t))return[];try{return Tyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Ayt,I4n,x4n,O4n,P4n,jdi,Hdi,N4n,A0=v(()=>{"use strict";Ayt=Se(Kt(),1);_l();I4n=O.enum(["agent","human-via-mcp","human-implicit"]),x4n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),O4n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),P4n=O.object({path:O.string(),sha256:O.string().regex(/^[0-9a-f]{64}$/),bytes:O.number().int().nonnegative(),mtime_ns:O.number().int(),is_binary:O.boolean(),author_class:I4n,acknowledged_at:O.string(),acknowledged_via:x4n,stage:O.string().nullable(),tracking_class:O4n}),jdi=O.record(O.string(),P4n);Hdi=64*1024,N4n=[{kind:"png",prefix:[137,80,78,71,13,10,26,10]},{kind:"jpeg",prefix:[255,216,255]},{kind:"gif",prefix:[71,73,70,56]}]});import{existsSync as Jf,readdirSync as Pyt,readFileSync as D4n,statSync as L4n}from"node:fs";import{basename as Nyt,join as $o,relative as wY}from"node:path";function U4n(e){if(!Jf(e))return[];let t=[];try{t=Pyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!_Y.has(r))try{L4n($o(e,r)).isFile()&&n.push(r)}catch{}return n}function F4n(e){if(e===null||typeof e!="object")return null;let n=e.input_witnesses;if(!n||typeof n!="object"||Array.isArray(n))return null;let r=n,i=r.files,s=r.dirs,o={},a={};if(i&&typeof i=="object"&&!Array.isArray(i))for(let[c,u]of Object.entries(i))typeof u=="string"&&u.length===64&&(o[c]=u);if(s&&typeof s=="object"&&!Array.isArray(s))for(let[c,u]of Object.entries(s)){if(!u||typeof u!="object"||Array.isArray(u))continue;let l={};for(let[d,f]of Object.entries(u))typeof f=="string"&&f.length===64&&(l[d]=f);a[c]=l}return Object.keys(o).length===0&&Object.keys(a).length===0?null:{files:o,dirs:a}}function oye(e){if(!Jf(e))return null;try{let t=D4n(e,"utf8");return(0,Cyt.default)(t).data}catch{return null}}function sye(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.at=="string"&&t.at.length>0?t.at:null}function xyt(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.body_sha256=="string"&&t.body_sha256.length===64?t.body_sha256:null}function Oyt(e,t){let n=ME(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=v0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function j4n(e){let t=$o(e,"units");return Jf(t)?Pyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function H4n(e,t,n){return $o(e,"stages",t,"discovery",`${n}.md`)}function aye(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function q4n(e,t,n,r){let i=Nyt(e),s=new Set;try{for(let o of no(t,n))o.location&&s.add(aye(o.location,i))}catch{}for(let o of r){let a=oye(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(aye(u,i))}return s}function B4n(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function kY(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(RY(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=j4n(o),c=q4n(e.intentDir,e.studio,e.stage,a),u=Nyt(e.intentDir),l=p=>c.has(p)||c.has(aye(p,u));for(let p of a){let h=oye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let g=wY(e.intentDir,p),y=h.reviews??{};for(let[S,_]of Object.entries(y)){i++;let b=sye(_);if(!b)continue;let T=xyt(_);T&&Jf(p)&&!DL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:g,since:b});let A=F4n(_);if(A){for(let[R,x]of Object.entries(A.files)){let k=$o(e.intentDir,R),P=$o(t,R),N=null;if(Jf(k))N=k;else if(Jf(P))N=P;else{let F=LL(R,e.intentDir);if(F!==R){let V=$o(e.intentDir,F);Jf(V)&&(N=V)}}if(N===null){l(R)||r.push({unit:m,role:S,kind:"input_deletion",file:R,since:b});continue}(EY(N)?!DL(N,x):(()=>{let F=ME(N);return!!F&&F!==x})())&&!l(R)&&r.push({unit:m,role:S,kind:"input_mutation",file:R,since:b})}for(let[R,x]of Object.entries(A.dirs)){let k=$o(e.intentDir,R),P=$o(t,R),N=null;if(Jf(k))N=k;else if(Jf(P))N=P;else{let F=LL(R,e.intentDir),V=F!==R?$o(e.intentDir,F):"";V&&Jf(V)&&(N=V)}if(N===null){l(R)||r.push({unit:m,role:S,kind:"input_deletion",file:R,since:b});continue}let C=U4n(N);for(let[F,V]of Object.entries(x)){let K=$o(R,F),$=$o(N,F);if(!Jf($)){l(K)||r.push({unit:m,role:S,kind:"input_deletion",file:K,since:b});continue}let B=v0($);B&&B!==V&&!l(K)&&r.push({unit:m,role:S,kind:"input_mutation",file:K,since:b})}for(let F of C){let V=$o(R,F);x[F]===void 0&&!l(V)&&r.push({unit:m,role:S,kind:"input_addition",file:V,since:b})}}}}let E=h.discovery??{};for(let[S,_]of Object.entries(E)){i++;let b=sye(_);if(!b)continue;let T=_,A=H4n(e.intentDir,e.stage,S),R=typeof T.output_sha256=="string"?T.output_sha256:null;if(R){let P=Oyt(A,R);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:wY(e.intentDir,A),since:b})}let x=B4n(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let P=Oyt(x,k);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:wY(t,x),since:b})}}}let d=$o(e.intentDir,"intent.md"),f=oye(d);if(f){let p=f.approvals??{},h=wY(e.intentDir,d);for(let[m,g]of Object.entries(p)){i++;let y=sye(g);if(!y)continue;let E=xyt(g);E&&(DL(d,E)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:y}))}}return{events:r,scanned:i,skipped:s}}var Cyt,cye=v(()=>{"use strict";Cyt=Se(Kt(),1);Kn();A0();Zf()});var k0={};Rr(k0,{__testOnly:()=>X4n,computeElaborateSignals:()=>w0,derivePosition:()=>Xf,findCurrentStage:()=>ai,intentReviewRoles:()=>PY,isBriefEnabled:()=>Uyt,isReflectionEnabled:()=>sv,isStageComplete:()=>R0,listUnitPaths:()=>ov,nextHatForUnit:()=>iv,pendingApprovalSlots:()=>V4n,pendingReviewSlots:()=>z4n,readFm:()=>Xc,serializeElaborateSignals:()=>fye,stageOwesBrief:()=>Hyt,stageOwesObservations:()=>lye,stageRoleLists:()=>NY,unitName:()=>OY,walkFeedbackTrack:()=>dye});import{existsSync as xa,readdirSync as FL,readFileSync as IY,writeFileSync as Myt}from"node:fs";import{basename as Lyt,join as Gr}from"node:path";function G4n(e){let t=Gr(e.intentDir,"intent.md");if(xa(t))try{let n=IY(t,"utf8"),r=(0,rv.default)(n),i=r.data,s="drift_cascade_alarm",o=e.stage,a=i[s],c=a&&typeof a=="object"&&!Array.isArray(a)?{...a}:{},u=c[o];e.tripped?u!==!0&&(c[o]=!0,i[s]=c,Myt(t,rv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,Myt(t,rv.default.stringify(r.content,i)))}catch{}}function sv(e){let t=Gr(e,"intent.md");if(!xa(t))return!0;try{let n=IY(t,"utf8"),i=(0,rv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function Uyt(e){let t=Gr(e,"intent.md");if(!xa(t))return!0;try{let n=IY(t,"utf8");return(0,rv.default)(n).data.brief!==!1}catch{return!0}}function Xc(e){if(!xa(e))return null;try{let t=IY(e,"utf8"),n=(0,rv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Fyt(e){if(e.closed_at&&(e.closed_at instanceof Date||typeof e.closed_at=="string"&&e.closed_at.length>0))return!0;let t=e.rejected_at;return!!(t&&(t instanceof Date||typeof t=="string"&&t.length>0)||typeof e.status=="string"&&(e.status==="closed"||e.status==="rejected")||typeof e.closed_by=="string"&&e.closed_by.startsWith("fix-loop:"))}function LE(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function xY(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function jyt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function OY(e){return Lyt(e).replace(/\.md$/,"")}function ov(e){let t=Gr(e,"units");return xa(t)?FL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>Gr(t,n.name)).sort():[]}function Dyt(e){let t=Gr(e,"feedback");return xa(t)?FL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>Gr(t,n.name)).sort():[]}function iv(e,t){if(t.length===0)return null;let n=LE(e);if(n.length===0)return{hat:t[0],terminal:t.length===1};let r=n[n.length-1];if(r.result===null){let i=t.indexOf(r.hat);return i<0?null:{hat:r.hat,terminal:i===t.length-1}}if(r.result==="advance"||r.result==="advanced"){let i=t.indexOf(r.hat);if(i<0)return null;let s=i+1;return s>=t.length?null:{hat:t[s],terminal:s===t.length-1}}if(r.result==="reject"||r.result==="rejected"){let i=t.indexOf(r.hat);if(i<=0)return{hat:t[0],terminal:t.length===1,rejected:!0};let s=i-1;return{hat:t[s],terminal:s===t.length-1,rejected:!0}}return null}function z4n(e,t){let n=jyt(e);return t.filter(r=>!n[r])}function V4n(e,t){let n=xY(e);return t.filter(r=>!n[r])}function W4n(e,t,n){let r=Object.keys(bl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function K4n(e){return typeof e.started_at=="string"&&e.started_at.length>0}function Y4n(e,t){let n=xY(e);for(let r of t)if(!n[r])return!1;return!0}function Z4n(e,t){if(Y4n(e,t))return!0;let n=K4n(e),r=LE(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function J4n(e,t,n,r){let i=Gr(e,"stages",n,"units");if(!xa(i))return!1;let s=FL(i).filter(c=>c.endsWith(".md"));if(s.length===0||_s(t,n).length===0)return!1;let a=W4n(t,n,r);for(let c of s){let u=Xc(Gr(i,c))?.data;if(!u||!Z4n(u,a))return!1}return!0}function R0(e,t,n,r){return J4n(e,t,n,r)}function lye(e,t){return sv(e)?!xa(Gr(e,"stages",t,"observations.md")):!1}function Hyt(e,t,n){return!(!Uyt(e)||xa(Gr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??Gr(ve(),"intents",e),i=Gr(r,"intent.md"),s=Xc(i)?.data??{},o=wn(s,t);if(o.length===0)return null;let a=typeof s?.mode=="string"&&s.mode.length>0?s.mode:"continuous";for(let c of o)if(!R0(r,t,c,a))return c;return null}function dye(e){let{intentDir:t,studio:n,currentStage:r,intent:i}=e,s=wn(i,n),o=s.indexOf(r),a=o>=0?s.slice(0,o+1):[],c=[],u=(E,S)=>{let _=qyt(E,S,n);if(!_)return null;if(_.kind!=="start_feedback_hat")return _;let b=Xc(S)?.data,T=b?.severity??null,A=Array.isArray(b?.iterations)?b.iterations.length>0:!1,R=_.dispatches[0];return R&&c.push({...R,severity:T,inFlight:A}),null};for(let E of a){let S=Dyt(Gr(t,"stages",E));for(let _ of S){let b=u(E,_);if(b)return b}}let l=Dyt(t);for(let E of l){let S=u("",E);if(S)return S}if(c.length===0)return null;let d=new Set,f=[];for(let E of c)d.has(E.feedback_id)||(d.add(E.feedback_id),f.push(E));let p=[];for(let E of f){let S=Number.parseInt(E.feedback_id.replace(/^FB-/i,""),10),_=[];E.stage&&_.push(Gr(t,"stages",E.stage,"feedback")),_.push(Gr(t,"feedback"));let b=!0;for(let T of _){if(!xa(T))continue;let A=FL(T).filter(x=>{if(!x.endsWith(".md"))return!1;let k=/^(\d+)/.exec(x);return k!=null&&Number.parseInt(k[1],10)===S}),R=!1;for(let x of A){let k=Xc(Gr(T,x))?.data;if(k&&Fyt(k)){R=!0;break}}if(R){b=!1;break}}b&&p.push(E)}if(p.length===0||!p.some(E=>E.inFlight||a0(E.severity)))return null;let g=[...p].sort((E,S)=>Jc(E.severity)-Jc(S.severity)).slice(0,av),y=g[0];return{kind:"start_feedback_hat",dispatches:g.map(E=>({feedback_id:E.feedback_id,stage:E.stage,hat:E.hat,terminal:E.terminal})),stage:y?.stage??"",hat:y?.hat??"",feedback_ids:g.map(E=>E.feedback_id),terminal:y?.terminal??!1}}function qyt(e,t,n){let r=Xc(t);if(!r)return null;let i=r.data;if(Fyt(i))return null;let s=Byt(t);if(!s)return null;if(i.resolution==="question")return{kind:"feedback_question",stage:e,feedback_id:s,feedback_path:t};if(i.author_type==="agent"||i.author_type==="system"){let u=LE(i),l=new Set;for(let d of u){let f=d.bolt;typeof f=="number"&&f>0&&l.add(f)}if(l.size>=Mg)return null;if(u.length>=2){let d=u[u.length-1],f=u[u.length-2],p=d.result==="reject"||d.result==="rejected",h=f.result==="reject"||f.result==="rejected";if(p&&h&&d.hat===f.hat)return null}}let a=e===""?Uf(n):Sg(n,e);if(a.length===0)return{kind:"user_gate",stage:e,gate_kind:"approval",units:[]};let c=iv(i,a);if(c===null){let u=LE(i);if(u.length===0)return null;let l=u[u.length-1];return l.result===null?null:(l.result==="closed"||l.result==="advance")&&l.hat===a[a.length-1]?{kind:"close_feedback",stage:e,feedback_id:s}:null}return{kind:"start_feedback_hat",dispatches:[{feedback_id:s,stage:e,hat:c.hat,terminal:c.terminal}],stage:e,hat:c.hat,feedback_ids:[s],terminal:c.terminal}}function Byt(e){let t=Lyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function Gyt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=Gr(n,"stages",i),c=ov(o).map(A=>({path:A,name:OY(A),fm:Xc(A)?.data??{}})).filter(A=>A.fm),u=_s(r,i),l=bl(r,i),d=Object.keys(l).sort(),{reviewRoles:f,approvalRoles:p}=NY(r,i,s,d),h=w0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(A=>A.name),mode:s});if(h.length>0){if(JD(r,i)&&c.length===0&&!xa(Gr(o,"elaboration.md"))){let A=wn(Xc(Gr(n,"intent.md"))?.data??{},r);return{kind:"elaborate_loop",stage:i,signals_unmet:h,optional_offer:!0,dependents:qpe(r,i,A)}}return{kind:"elaborate_loop",stage:i,signals_unmet:h}}{let A=wn(Xc(Gr(n,"intent.md"))?.data??{},r);if(!(A.length>0&&A[0]===i)){let x=c.filter(k=>!("inputs"in k.fm)).map(k=>k.name);if(x.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:x}}}{let A=[],R=null;for(let x of f){let k=c.filter(P=>P.fm.started_at!=null||LE(P.fm).length>0?!1:!jyt(P.fm)[x]).map(P=>P.name);if(k.length!==0){if(x==="user"){R=k;continue}if(uye.has(x)){if(A.length>0){let P=A[0];return{kind:"dispatch_review",stage:i,dispatches:A,role:P.role,units:P.units}}return{kind:"dispatch_review",stage:i,dispatches:[{role:x,units:k}],role:x,units:k}}A.push({role:x,units:k})}}if(A.length>0){let x=A[0];return{kind:"dispatch_review",stage:i,dispatches:A,role:x.role,units:x.units}}{let x=c.some(k=>!!k.fm.started_at||LE(k.fm).length>0);if(Hyt(n,i,x))return{kind:"write_brief",stage:i}}if(R)return{kind:"user_gate",stage:i,gate_kind:"spec",units:R}}let m=new Set(c.filter(A=>{if(u.length===0)return!1;let R=LE(A.fm);if(R.length===0)return!1;let x=R[R.length-1];return x.result==="advance"&&x.hat===u[u.length-1]}).map(A=>A.name)),g=c.filter(A=>A.fm.started_at!=null&&iv(A.fm,u)!==null),E=(g.length===0?c.filter(A=>A.fm.started_at!=null?!1:(Array.isArray(A.fm.depends_on)?A.fm.depends_on:[]).every(x=>m.has(x))):[]).slice(0,av),S=wn(Xc(Gr(n,"intent.md"))?.data??{},r),_=S.length>0&&S[0]===i;if(!_&&E.length>0){let A=E.filter(R=>!("inputs"in R.fm)).map(R=>R.name);if(A.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:A}}if(E.length>0)return{kind:"start_unit_hat",stage:i,hat:u[0],units:E.map(A=>A.name),terminal:u.length===1};let b=[],T=!1;for(let A of c){if(A.fm.started_at==null)continue;let R=iv(A.fm,u);if(R===null)continue;let x=Array.isArray(A.fm.iterations)?A.fm.iterations:[],k=x[x.length-1];if(k&&k.result===null&&typeof k.dispatched_at=="string"&&k.dispatched_at.length>0){T=!0;continue}b.push({unit:A.name,hat:R.hat,terminal:R.terminal})}if(b.length===0&&T&&g.length>0)return null;if(!_&&b.length>0){let A=new Set(b.map(x=>x.unit)),R=c.filter(x=>A.has(x.name)&&!("inputs"in x.fm)).map(x=>x.name);if(R.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:R}}if(b.length>0){let A=new Map;for(let N of b){let C=A.get(N.hat)??[];C.push(N.unit),A.set(N.hat,C)}let R=[...A.entries()].sort(([N],[C])=>u.indexOf(N)-u.indexOf(C)),[x,k]=R[0],P=u.indexOf(x);return{kind:"start_unit_hat",stage:i,hat:x,units:k,terminal:P===u.length-1}}{let A=c.filter(R=>(Array.isArray(R.fm.outputs)?R.fm.outputs:[]).length===0?!1:LE(R.fm).length===0).map(R=>R.name);if(A.length>0)return{kind:"unit_outputs_empty_iterations",stage:i,units:A}}{let A=[];for(let R of p){let x=c.filter(k=>!xY(k.fm)[R]).map(k=>k.name);if(x.length!==0){if(R==="user"){if(A.length>0){let k=A[0];return{kind:"dispatch_approval",stage:i,dispatches:A,role:k.role,units:k.units}}return{kind:"user_gate",stage:i,gate_kind:"approval",units:x}}if(uye.has(R)){if(A.length>0){let k=A[0];return{kind:"dispatch_approval",stage:i,dispatches:A,role:k.role,units:k.units}}return R==="quality_gates"?{kind:"dispatch_quality_gates",stage:i,units:x}:{kind:"dispatch_approval",stage:i,dispatches:[{role:R,units:x}],role:R,units:x}}A.push({role:R,units:x})}}if(A.length>0){let R=A[0];return{kind:"dispatch_approval",stage:i,dispatches:A,role:R.role,units:R.units}}}if(sv(n)){let A=Gr(o,"observations.md");if(!xa(A))return{kind:"record_observations",stage:i}}return{kind:"complete_stage",stage:i}}function Xf(e){let{slug:t,intentDir:n,studio:r}=e,i=Gr(n,"intent.md"),s=Xc(i),o=typeof s?.data.mode=="string"&&s.data.mode.length>0?s.data.mode:"continuous";if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0)return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let l=wn(s.data,r)[0]??"",d=l?Gr(n,"stages",l):"",f=d&&xa(d)?ov(d).length>0:!1;if(ai(t,r,n)===l&&!f)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let a=ai(t,r,n);if(a){let c=kY({intentDir:n,stage:a,studio:r});if(c.events.length>0){let u=Eyt({events:c.events,intentDir:n,stage:a,slug:t});s&&G4n({intentDir:n,stage:a,tripped:u.cascade_alarm_tripped})}}{let c=s?.data??{},u=dye({intentDir:n,studio:r,intent:c,currentStage:a??wn(c,r).slice(-1)[0]??""});if(u)return{track:"feedback",action:u}}if(a){let c=Gyt({slug:t,intentDir:n,studio:r,stage:a,mode:o});return c!==null?{track:"intent",action:c}:{track:"noop",action:null}}if(s){let c=xY(s.data),u=Object.keys(mg(r)).sort(),l=PY(o,u),d=[],f=!1;for(let p of l)if(!c[p]){if(p==="user"){f=!0;continue}if(uye.has(p))return d.length>0?{track:"intent",action:{kind:"intent_review",role:d[0].role,dispatches:d}}:{track:"intent",action:{kind:"intent_review",role:p,dispatches:[{role:p}]}};d.push({role:p})}if(d.length>0)return{track:"intent",action:{kind:"intent_review",role:d[0].role,dispatches:d}};if(!c.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(f)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null){if(sv(n)){let h=Gr(n,"reflection.md");if(!xa(h))return{track:"intent",action:{kind:"record_reflection"}}}let p=UL(t);return p.applicable&&!p.merged?{track:"intent",action:{kind:"pending_seal",default_branch:p.defaultBranch}}:{track:"intent",action:{kind:"seal_intent"}}}}return{track:"sealed",action:{kind:"sealed"}}}function PY(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function NY(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(bl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!CT.has(l)),c=o?["spec",...a]:["spec",...a,"user"],u=o?["spec",...s,"quality_gates"]:["spec",...s,"quality_gates","user"];return{reviewRoles:c,approvalRoles:u}}function w0(e){let{slug:t,studio:n,stage:r,stageDir:i,unitNames:s,mode:o}=e,a=[],c=Gr(i,"elaboration.md"),u=xa(c)?Xc(c)?.data??{}:null,l=o==="autopilot";!l&&u===null&&s.length===0&&a.push({signal:"conversation"}),!l&&u!==null&&(typeof u.verified_at=="string"&&u.verified_at||a.push({signal:"verify_conversation"}));let d=no(n,r).filter(f=>f.kind==="discovery").sort((f,p)=>f.name.localeCompare(p.name));for(let f of d){if(s.length===0&&!f.tool||!f.required)continue;if(!f.location){console.error(`[haiku] Studio configuration error: discovery template '${f.name}' in stage '${r}' is required but declares no 'location:' field. The gate is being skipped \u2014 fix the template.`);continue}let p=f.location.replace(/\{intent-slug\}/g,t),h=Gr(process.cwd(),p);(p.endsWith("/")?xa(h)&&FL(h).filter(g=>g!==".gitkeep").length>0:xa(h))||a.push({signal:"discovery",agent:f.name,units:s.length>0?[s[0]]:[]})}return s.length===0&&a.push({signal:"decompose"}),!l&&s.length>0&&u!==null&&(typeof u.decompose_verified_at=="string"&&u.decompose_verified_at||a.push({signal:"verify_decompose"})),a}function fye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var rv,uye,X4n,Oa=v(()=>{"use strict";rv=Se(Kt(),1);ji();ze();Kn();d9();ns();_yt();vY();cye();uye=new Set(["spec","quality_gates","user"]);X4n={walkIntentTrack:Gyt,walkFeedbackTrack:dye,nextActionForFeedback:qyt,parseFbIdFromFilename:Byt}});function eKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*>[\\s\\S]*?<\\/${n}\\s*>`,"gi"),i=e.replace(r,""),s=new RegExp(`<${n}\\b[^>]*>`,"gi");i=i.replace(s,"");let o=new RegExp(`<\\/${n}\\s*>`,"gi");return i=i.replace(o,""),i}function tKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function nKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function rKn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function iKn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>Vyt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function sKn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>Vyt.test(r.trim())?`${n}(#)`:t)}function zyt(e){let t=e;for(let n of Q4n)t=eKn(t,n);for(let n of $4n)t=tKn(t,n);return t=nKn(t),t=rKn(t),t=iKn(t),t=sKn(t),t}function cv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=zyt(t);if(r===t)return r;t=r}return zyt(t)}var Q4n,$4n,Vyt,pye=v(()=>{"use strict";Q4n=["script","iframe","object","style","form"],$4n=["embed"],Vyt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as oKn}from"node:crypto";function I0(){let e=cKn();return uKn(e)}function cKn(){let e=new Uint8Array(16),t=Date.now();e[0]=t/1099511627776&255,e[1]=t/4294967296&255,e[2]=t/16777216&255,e[3]=t/65536&255,e[4]=t/256&255,e[5]=t&255;let n=oKn(10);for(let r=0;r<10;r++)e[6+r]=n[r];return e[6]=e[6]&15|112,e[8]=e[8]&63|128,e}function uKn(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=aKn[i]+r}return"1".repeat(t)+r}var aKn,Wyt=v(()=>{"use strict";aKn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var vye={};Rr(vye,{_runPresenceSweepForTests:()=>hKn,beginPresenceWatch:()=>hye,clearHeartbeat:()=>CY,clearPreviousReviewSnapshot:()=>Qyt,createDesignDirectionSession:()=>Eye,createPickerSession:()=>_ye,createQuestionSession:()=>Sye,createSession:()=>MY,createViewSession:()=>bye,deleteSession:()=>C0,endPresenceWatch:()=>mye,findLiveReviewSessionForIntent:()=>BL,getPreviousReviewSnapshot:()=>yye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>GL,hasPresenceLost:()=>gye,isBrowserAttached:()=>lv,notifySessionUpdate:()=>N0,recordHeartbeat:()=>HL,setPreviousReviewSnapshot:()=>Xyt,updateDesignDirectionSession:()=>VL,updatePickerSession:()=>yKn,updateQuestionSession:()=>zL,updateSession:()=>Cl,updateViewSession:()=>Tye,waitForSession:()=>uv});import{EventEmitter as lKn}from"node:events";function hye(e,t={}){P0.set(e,t.startedAt??Date.now())}function mye(e){P0.delete(e)}function HL(e){return Hi.has(e)?(O0.set(e,Date.now()),P0.delete(e),UE.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function gye(e){return UE.has(e)}function CY(e){O0.delete(e),UE.delete(e),P0.delete(e)}function Kyt(e){return!(e.session_type==="view"||(e.session_type==="review"||e.session_type==="question"||e.session_type==="design_direction"||e.session_type==="picker")&&e.status!=="pending")}function Yyt(e,t){UE.has(e)||(UE.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),x0.emit(`session:${e}`))}function Jyt(){let e=Date.now();for(let[t,n]of O0){if(e-n<=dKn)continue;let r=Hi.get(t);if(!r){O0.delete(t),UE.delete(t);continue}Kyt(r)&&Yyt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of P0){if(O0.has(t)||e-n<=pKn)continue;let r=Hi.get(t);if(!r){P0.delete(t);continue}Kyt(r)&&Yyt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function hKn(){Jyt()}function N0(e){x0.emit(`session:${e}`)}function uv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{x0.removeListener(`session:${e}`,o),n?.removeEventListener("abort",a),i(new Error("Session timeout"))},t);function o(){clearTimeout(s),n?.removeEventListener("abort",a),r()}function a(){clearTimeout(s),x0.removeListener(`session:${e}`,o),i(new Error(`Session wait aborted${n?.reason?`: ${String(n.reason)}`:""}`))}if(n?.aborted){clearTimeout(s),i(new Error("Session wait aborted before start"));return}n?.addEventListener("abort",a,{once:!0}),x0.once(`session:${e}`,o)})}function yye(e){return jL.get(e)}function Xyt(e,t){jL.set(e,t)}function Qyt(e){jL.delete(e)}function Zyt(e){if(jL.has(e)){for(let t of Hi.values())if(t.session_type==="review"&&t.intent_dir===e)return;jL.delete(e)}}function qL(){let e=Date.now();for(let[t,n]of Qf)if(e-n>gKn){let r=Hi.get(t);Hi.delete(t),Qf.delete(t),CY(t),r?.session_type==="review"&&Zyt(r.intent_dir)}for(;Hi.size>=mKn;){let t=Qf.entries().next().value;if(!t)break;let n=Hi.get(t[0]);Hi.delete(t[0]),Qf.delete(t[0]),CY(t[0]),n?.session_type==="review"&&Zyt(n.intent_dir)}}function MY(e){qL();let t=I0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return Hi.set(t,n),Qf.set(t,Date.now()),n}function Sye(e){qL();let t=I0(),n={...e,session_type:"question",session_id:t,imagePaths:e.imagePaths??[],status:"pending",answers:[],feedback:""};return Hi.set(t,n),Qf.set(t,Date.now()),n}function Eye(e){qL();let t=I0(),n={...e,session_type:"design_direction",session_id:t,status:"pending",selection:null};return Hi.set(t,n),Qf.set(t,Date.now()),n}function _ye(e){qL();let t=I0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return Hi.set(t,n),Qf.set(t,Date.now()),n}function yKn(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),N0(e),n}function bye(e){qL();let t=I0(),n={...e,session_type:"view",session_id:t,status:"open"};return Hi.set(t,n),Qf.set(t,Date.now()),n}function Tye(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),N0(e),n}function $t(e){return Hi.get(e)}function BL(e){let t,n=0;for(let[r,i]of Hi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||UE.has(r))continue;let s=Qf.get(r)??0;s>n&&(t=i,n=s)}return t}function lv(e){if(!Hi.has(e)||UE.has(e))return!1;let t=O0.get(e);return t?Date.now()-t<=SKn:!1}function GL(e){for(let[t,n]of Hi)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&lv(t))return!0;return!1}function C0(e){let t=Hi.delete(e);return Qf.delete(e),CY(e),t}function Cl(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="review")){if(Object.assign(n,t),t.status==="decided"&&!n.ad_hoc)if(n.decision==="changes_requested"){let r=n.parsedIntent,i=n.parsedUnits??[],s={};for(let o of i)o?.slug&&typeof o.rawContent=="string"&&(s[o.slug]=o.rawContent);Xyt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else Qyt(n.intent_dir);return N0(e),n}}function zL(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),N0(e),n}function VL(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),N0(e),n}var x0,dKn,fKn,O0,UE,pKn,P0,Hi,jL,mKn,gKn,Qf,SKn,Qc=v(()=>{"use strict";Wyt();x0=new lKn;x0.setMaxListeners(200);dKn=12e4,fKn=5e3,O0=new Map,UE=new Set,pKn=6e4,P0=new Map;setInterval(Jyt,fKn).unref();Hi=new Map,jL=new Map;mKn=100,gKn=14400*1e3,Qf=new Map;SKn=3e4});import{spawn as EKn}from"node:child_process";import{existsSync as M0,readFileSync as tSt}from"node:fs";import{createServer as _Kn}from"node:net";import{isAbsolute as bKn,join as dv}from"node:path";function vKn(){return new Promise((e,t)=>{let n=_Kn();n.unref(),n.on("error",t),n.listen(0,"127.0.0.1",()=>{let r=n.address();if(typeof r!="object"||r===null){n.close(),t(new Error("could not determine ephemeral port"));return}let i=r.port;n.close(()=>e(i))})})}function AKn(e){return new Promise(t=>{let{Socket:n}=Y("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function RKn(e,t){let n=Date.now()+DY;for(;Date.now()setTimeout(r,rSt))}throw new Error(`Dev server did not bind to port ${e} within ${DY}ms`)}async function wKn(e){try{let t=new AbortController,n=setTimeout(()=>t.abort(),1500),r=await fetch(e,{signal:t.signal});return clearTimeout(n),r.status<500}catch{return!1}}async function kKn(e,t){let n=Date.now()+DY;for(;Date.now()setTimeout(r,rSt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${DY}ms`)}function iSt(e,t){if(e.length===0)throw new Error("bootFromAgent: command must have at least one entry");return{command:e,cwd:t,description:e.join(" ")}}function sSt(e){let t=dv(e,"package.json");if(!M0(t))return null;let n;try{n=JSON.parse(tSt(t,"utf-8"))}catch{return null}let r=n.scripts??{},i=typeof r.dev=="string"?"dev":typeof r.start=="string"?"start":null;if(!i)return null;let s=IKn(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function IKn(e){return M0(dv(e,"bun.lockb"))||M0(dv(e,"bun.lock"))?"bun":M0(dv(e,"pnpm-lock.yaml"))?"pnpm":M0(dv(e,"yarn.lock"))?"yarn":"npm"}function Dg(e){return new Error(`[${oSt}] ${e}`)}function $yt(e,t){if(!Array.isArray(e)||e.length===0||!e.every(n=>typeof n=="string"&&n.length>0))throw Dg(`${t} must be a non-empty array of strings`);return e}function Aye(e){let t=dv(e,oSt);if(!M0(t))return null;let n;try{n=(0,nSt.default)(tSt(t,"utf8")).data}catch(s){throw Dg(`could not parse frontmatter: ${s instanceof Error?s.message:String(s)}`)}let r=s=>{if(s==null)return e;if(typeof s!="string")throw Dg("`cwd` must be a string");return bKn(s)?s:dv(e,s)},i=s=>{if(s==null)return;if(typeof s!="object"||Array.isArray(s))throw Dg("`env` must be a mapping of string\u2192string");let o={};for(let[a,c]of Object.entries(s))o[a]=String(c);return o};if(Array.isArray(n.processes)&&n.processes.length>0){let s=n.processes.map((u,l)=>{if(typeof u?.name!="string"||!u.name)throw Dg(`processes[${l}] is missing a string \`name\``);return{name:u.name,command:$yt(u.command,`processes[${l}].command`),cwd:r(u.cwd),port_env:typeof u.port_env=="string"?u.port_env:void 0,ready_url:typeof u.ready_url=="string"?u.ready_url:void 0,depends_on:Array.isArray(u.depends_on)?u.depends_on.map(String):void 0,no_port:u.no_port===!0,env:i(u.env),service:u.service===!0,requires_tool:typeof u.requires_tool=="string"?u.requires_tool:void 0}}),o=s.filter(u=>!u.no_port),a;if(typeof n.primary=="string"&&n.primary)a=n.primary;else if(o.length===1)a=o[0].name;else throw Dg(`\`processes\` has ${o.length} port-bound entries (${o.map(u=>u.name).join(", ")}); set \`primary: \` to name the one Playwright should drive`);let c=new Set(s.map(u=>u.name));if(!c.has(a))throw Dg(`\`primary: ${a}\` does not match any process name (${[...c].join(", ")})`);if(s.find(u=>u.name===a)?.no_port)throw Dg(`\`primary: ${a}\` cannot be a no_port process`);return{processes:s,primary:a}}if(n.command!==void 0){if(n.no_port===!0)throw Dg("a single-`command` recipe drives a URL, so it cannot set `no_port: true` \u2014 use the `processes` form for a portless helper");return{processes:[{name:"app",command:$yt(n.command,"`command`"),cwd:r(n.cwd),port_env:typeof n.port_env=="string"?n.port_env:void 0,ready_url:typeof n.ready_url=="string"?n.ready_url:void 0,env:i(n.env)}],primary:"app"}}return null}function KL(e){let t=Aye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function xKn(e){let t=new Map(e.map(o=>[o.name,o])),n=new Set,r=new Set,i=[],s=(o,a)=>{if(r.has(o))return;if(n.has(o))throw new Error(`Cyclic depends_on in boot processes: ${[...a,o].join(" \u2192 ")}`);let c=t.get(o);if(!c)throw new Error(`depends_on references unknown process "${o}" (referenced from "${a.at(-1)??"?"}")`);n.add(o);for(let u of c.depends_on??[])s(u,[...a,o]);n.delete(o),r.add(o),i.push(c)};for(let o of e)s(o.name,[]);return i}async function Rye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=xKn(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await vKn());let s=t.find(l=>l.name===n);if(!s)throw new Error(`primary "${n}" not found in process group`);if(s.no_port)throw new Error(`primary "${n}" cannot have no_port: true`);let o=setTimeout(()=>{console.error(`[haiku-view-boot] TTL hit for session ${e} \u2014 killing process group`),D0(e)},TKn);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};WL.set(e,a);try{for(let l of r){let d=i.get(l.name)??null,f=l.port_env??"PORT",p={...process.env,...l.env??{},HOST:"127.0.0.1"};d!==null&&(p[f]=String(d));for(let E of l.depends_on??[]){let S=i.get(E);if(S!=null){let _=E.toUpperCase().replace(/-/g,"_");p[`${_}_PORT`]=String(S),p[`${_}_URL`]=`http://127.0.0.1:${S}`}}let[h,...m]=l.command;if(!h)throw new Error(`process "${l.name}" has empty command`);let g=EKn(h,m,{cwd:l.cwd,env:p,stdio:"ignore",detached:!1}),y=l.command.join(" ");if(g.on("error",E=>{console.error(`[haiku-view-boot] process "${l.name}" (${y}) spawn error:`,E.message)}),a.processes.push({name:l.name,child:g,port:d,command:y,cwd:l.cwd}),d!==null)if(l.ready_url){let E=l.ready_url.replace("{port}",String(d));await kKn(E)}else await RKn(d)}}catch(l){throw D0(e),l}let c=a.processes.map(l=>({name:l.name,port:l.port,command:l.command,pid:l.child.pid??-1})),u=c.find(l=>l.name===n);if(!u)throw new Error(`primary "${n}" missing from spawned set`);return{processes:c,primary:u}}async function aSt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await Rye(e,[n],"app")).primary}function D0(e){let t=WL.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),WL.delete(e);for(let n of[...t.processes].reverse()){try{n.child.kill("SIGTERM")}catch{}setTimeout(()=>{try{n.child.kill("SIGKILL")}catch{}},2e3).unref?.()}return!0}function cSt(){let e=0;for(let[t]of WL)$t(t)||(D0(t),e+=1);return e}function OKn(){if(eSt)return;eSt=!0;let e=()=>{for(let[t]of WL)D0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var nSt,WL,TKn,DY,rSt,oSt,eSt,YL=v(()=>{"use strict";nSt=Se(Kt(),1);Qc();WL=new Map,TKn=1800*1e3,DY=60*1e3,rSt=200;oSt=".haiku/boot.md";eSt=!1;OKn()});import{lstatSync as wye,mkdirSync as PKn,realpathSync as uSt,renameSync as NKn,unlinkSync as CKn}from"node:fs";import{isAbsolute as MKn,relative as DKn,resolve as LY,sep as UY}from"node:path";function fv(e,t,n,r){let i=LY(e),s=LY(t),o=LY(r),a;try{if(wye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=uSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${L0(d)}`}}if(s!==i&&!s.startsWith(`${i}${UY}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${UY}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=DKn(i,s),u=c===""?[]:c.split(UY),l=i;for(let d of u){if(d===""||d==="."||d===".."||MKn(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=LY(l,d);try{let f=wye(l);if(f.isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`segment '${l}' is a symbolic link \u2014 refusing to traverse`};if(!f.isDirectory())return{ok:!1,code:"parent_chain_escape",detail:`segment '${l}' exists but is not a directory`}}catch(f){if(f.code==="ENOENT")try{PKn(l)}catch(h){if(h.code==="EEXIST")try{let g=wye(l);if(g.isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`segment '${l}' became a symlink during mkdir race`};if(!g.isDirectory())return{ok:!1,code:"parent_chain_escape",detail:`segment '${l}' became a non-directory during mkdir race`}}catch(g){return{ok:!1,code:"parent_open_failed",detail:`cannot stat segment after EEXIST: ${L0(g)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${L0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${L0(f)}`}}}try{let d=uSt(s);if(d!==a&&!d.startsWith(`${a}${UY}`))return{ok:!1,code:"parent_chain_escape",detail:`realpath(parent)='${d}' is not inside realpath(intentRoot)='${a}'`}}catch(d){return{ok:!1,code:"parent_open_failed",detail:`realpath(parent) failed: ${L0(d)}`}}try{NKn(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${L0(d)}`}}return{ok:!0}}function L0(e){return e instanceof Error?e.message:String(e)}function U0(e){try{CKn(e)}catch{}}var FY=v(()=>{"use strict"});var QL={};Rr(QL,{applyFeedbackInvalidations:()=>Iye,drainPendingDispatches:()=>FKn,stampSingleDispatch:()=>kye,stashPendingDispatch:()=>LKn,stashPendingIntentReview:()=>UKn});import{existsSync as ZL,readdirSync as dSt,readFileSync as JL}from"node:fs";import{join as Lg}from"node:path";function XL(e){let t=Lg(ve(),"intents",e,"intent.md");if(!ZL(t))return null;let n=JL(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function BY(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function fSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function LKn(e,t,n,r,i){let s=XL(e);if(!s)return;let o=t==="review"?HY:qY,a={...BY(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,De(s.path,o,a)}function UKn(e,t){if(t==="user")return;let n=XL(e);if(!n)return;let r={...fSt(n.fm,jY)};r[t]={dispatched_at:new Date().toISOString()},De(n.path,jY,r)}function pSt(e){let{intentDir:t,stage:n,role:r,units:i,dispatchedAt:s,kind:o}=e,a=[],c=[];for(let u of i){let l=Lg(t,"stages",n,"units",`${u}.md`);if(!ZL(l))continue;if(s&&jKn({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=JL(l,"utf8"),p=re(d).data;if(o==="review"){let h=p.reviews&&typeof p.reviews=="object"?{...p.reviews}:{},m=Array.isArray(p.inputs)?p.inputs:[];h[r]=Nl(l,{intentDir:t,unitInputs:m}),De(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=Hd(t,h),De(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function kye(e,t,n,r){let i=XL(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?HY:qY,o=BY(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Lg(ve(),"intents",e),{stamped:u,skipped:l}=pSt({intentDir:c,stage:n,role:r,units:a.units,dispatchedAt:a.dispatched_at,kind:t}),d={...o[n]??{}};return delete d[r],Object.keys(d).length===0?delete o[n]:o[n]=d,De(i.path,s,o),{found:!0,stamped:u,skipped:l}}function FKn(e){let t=XL(e);if(!t)return!1;let n=ve(),r=Lg(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?HY:qY,c=BY(t.fm,a);if(Object.keys(c).length!==0){for(let u of Object.keys(c)){let l=c[u]??{};for(let d of Object.keys(l)){let f=l[d];if(!f||!Array.isArray(f.units))continue;pSt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}De(t.path,a,{})}}let s=fSt(t.fm,jY);if(Object.keys(s).length>0){let o=t.fm.approvals&&typeof t.fm.approvals=="object"?{...t.fm.approvals}:{},a=!1;for(let c of Object.keys(s)){let u=s[c];u?.dispatched_at&&(HKn({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&De(t.path,"approvals",o),De(t.path,jY,{})}return i}function jKn(e){let t=Lg(e.intentDir,"stages",e.stage,"feedback");if(!ZL(t))return!1;for(let n of dSt(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Lg(t,n.name),i=JL(r,"utf8"),o=re(i).data;if(o.closed_at||o.rejected_at)continue;let a=o.targets??{};if(a.unit!==e.targetUnit||!(Array.isArray(a.invalidates)?a.invalidates:[]).includes(e.role)||!a0(o.severity))continue;let u=o.created_at??"";if(!(u&&uc!==e.unit);a.length!==o.units.length&&(a.length===0?delete r[s]:r[s]={...o,units:a},i=!0)}i&&(Object.keys(r).length===0&&delete n[e.stage],De(t.path,e.field,n))}var HY,qY,jY,pv=v(()=>{"use strict";ji();ze();Zf();HY="_pending_review_dispatches",qY="_pending_approval_dispatches",jY="_pending_intent_review_dispatches"});import{existsSync as qKn,readFileSync as BKn}from"node:fs";import{join as GKn}from"node:path";function mSt(e){let t=e.fbFm.targets??{},n=typeof t.unit=="string"?t.unit:void 0,r=Array.isArray(t.invalidates)?t.invalidates.filter(i=>typeof i=="string"):[];if(n&&e.stage&&r.length>0)try{Iye({slug:e.slug,stage:e.stage,targetUnit:n,invalidates:r})}catch(i){Ke("haiku.feedback.invalidations_failed",{intent:e.slug,stage:e.stage,feedback_id:e.feedbackId,target_unit:n,invalidates:r.join(","),error:String(i?.message??i)})}if(n&&e.stage)try{zKn({slug:e.slug,stage:e.stage,targetUnit:n,invalidates:r})}catch(i){Ke("haiku.feedback.witness_restamp_failed",{intent:e.slug,stage:e.stage,feedback_id:e.feedbackId,target_unit:n,error:String(i?.message??i)})}}function zKn(e){let t=ve(),n=GKn(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!qKn(n))return;let r=Ng(n);if(!r)return;let i=BKn(n,"utf8"),o=(0,hSt.default)(i).data,a=new Set(e.invalidates),c=d=>{let f=o[d];if(!f||typeof f!="object"||Array.isArray(f))return null;let p={...f},h=!1;for(let[m,g]of Object.entries(p)){if(a.has(m)||!g||typeof g!="object"||Array.isArray(g))continue;let y=g;typeof y.at=="string"&&y.body_sha256!==r&&(p[m]={...y,body_sha256:r},h=!0)}return h?p:null},u=c("reviews");u&&De(n,"reviews",u);let l=c("approvals");l&&De(n,"approvals",l)}var hSt,gSt=v(()=>{"use strict";hSt=Se(Kt(),1);pv();Zf();ze();vo()});var vSt={};Rr(vSt,{__testOnly:()=>e9n,withIntentDispatchLock:()=>F0,withIntentMainLock:()=>WY,withStageLock:()=>FE});import{existsSync as VKn,mkdirSync as SSt,readFileSync as WKn,rmSync as ESt,statSync as KKn,writeFileSync as YKn}from"node:fs";import{join as GY}from"node:path";function _St(){return GY(Br(),".haiku","locks")}function XKn(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function QKn(e){let t=GY(e,"holder.json");if(!VKn(t))return null;try{let n=WKn(t,"utf8"),r=JSON.parse(n);return typeof r.pid=="number"&&typeof r.at=="number"&&typeof r.tag=="string"?r:null}catch{return null}}function bSt(e){let t;try{t=Date.now()-KKn(e).mtimeMs}catch{return!1}if(t{"use strict";ze();ZKn=50,ySt=3e4,JKn=5*6e4;e9n={acquireLock:zY,releaseLock:VY,lockRoot:_St,isStale:bSt}});function $L(e){return Array.isArray(e.iterations)?e.iterations:[]}function t9n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function xye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function ASt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:$L(e.fm).length>0}function n9n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(ASt)?"active":"pending":e.length===0||!e.some(ASt)?"pending":e.every(s=>{let o=$L(s.fm);if(o.length===0)return!1;let a=o[o.length-1];if(a.result!=="advance"||t.length>0&&a.hat!==t[t.length-1])return!1;let c=xye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function r9n(e,t,n,r,i,s){if(i!=="autopilot"&&(s===!1||s===null&&e.length===0)||e.length===0)return"elaborate";for(let o of n)if(e.some(c=>!t9n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=$L(a.fm);if(c.length===0)return!1;let u=c[c.length-1];return u.result==="advance"&&u.hat===t[t.length-1]}))return"execute";for(let o of r)if(e.some(c=>!xye(c.fm)[o]))return"gate";return null}function i9n(e,t){return e.length===0?null:e.every(r=>{let i=xye(r.fm);return t.every(s=>i[s])})?"advanced":null}function RSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function s9n(e){return e.map(n=>RSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function o9n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=$L(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=RSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function a9n(e){let t=0;for(let n of e){let r=$L(n.fm);r.length>t&&(t=r.length)}return t}function Oye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=n9n(n,i,o,a),l=u==="completed"?null:r9n(n,i,s,o,r,c),d=i9n(n,o),f=s9n(n),p=o9n(n,u),h=a9n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var Pye=v(()=>{"use strict"});import{execFileSync as YY}from"node:child_process";import{existsSync as kSt,readdirSync as c9n,readFileSync as u9n}from"node:fs";import{basename as ISt,join as KY}from"node:path";function Nye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Nye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Nye(r);return t}return e}function OSt(e){try{let t=(0,xSt.default)(e).data;return Nye(t)}catch{return null}}function PSt(e){if(!kSt(e))return null;try{return OSt(u9n(e,"utf8"))}catch{return null}}function l9n(e){let t=KY(e,"units");return kSt(t)?c9n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=PSt(KY(t,n.name))??{};return{name:ISt(n.name,".md"),fm:r}}):[]}function d9n(e,t){if(!Ae())return null;try{return YY("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function NSt(e,t){let n=d9n(e,t);return n==null?null:OSt(n)}function f9n(e,t){if(!Ae())return[];try{return YY("git",["ls-tree","--name-only",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).map(r=>r.trim()).filter(r=>r.endsWith(".md")).sort((r,i)=>r.localeCompare(i))}catch{return[]}}function p9n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=f9n(e,r);return i.length===0?[]:i.map(s=>{let o=NSt(e,`${r}/${s}`)??{};return{name:ISt(s,".md"),fm:o}})}function Cye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(bl(e,t)).sort(),"user"]}function Mye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(bl(e,t)).sort(),"user"]}function h9n(e,t){if(!Ae())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return YY("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function wSt(e){if(!Ae())return!1;try{return YY("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function hv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=KY(i,"stages",r),a=_s(n,r),c=Cye(n,r,s),u=Mye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=Ae(),p=f&&wSt(l),m=f&&wSt(d)?d:p?l:null,g=m?p9n(m,t,r):l9n(o),y=p?h9n(t,r):null,E=KY(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,_=m?NSt(m,S):PSt(E),b=null;return _!==null&&(b=(typeof _.verified_at=="string"?_.verified_at:"").length>0),Oye({stage:r,units:g,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:y,elaborationVerified:b})}var xSt,e1=v(()=>{"use strict";Pye();xSt=Se(Kt(),1);SE();Kn();ns()});import{appendFileSync as m9n,existsSync as Gfi,mkdirSync as CSt,readFileSync as zfi,writeFileSync as g9n}from"node:fs";import{dirname as MSt}from"node:path";function DSt(e,t){try{CSt(MSt(e),{recursive:!0}),g9n(e,`${JSON.stringify(t,null,2)} +`)}catch{}}function qi(e,t){try{let n=e.replace(/\.json$/,".jsonl");CSt(MSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};m9n(n,`${JSON.stringify(r)} +`)}catch{}}var t1=v(()=>{"use strict"});var LSt,USt,FSt,jSt=v(()=>{"use strict";LSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],USt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],FSt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as y9n}from"node:crypto";import{existsSync as HSt,readdirSync as S9n,readFileSync as qSt,writeFileSync as E9n}from"node:fs";import{join as ZY}from"node:path";function _9n(e){let t=JSON.stringify(e,Object.keys(e).sort());return y9n("sha256").update(t).digest("hex").slice(0,16)}function Dye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function b9n(e,t,n){if(!n)return{};let r=ZY(e,"intents",t,"stages",n,"units");if(!HSt(r))return{};for(let i of S9n(r)){if(!i.endsWith(".md"))continue;let s=qSt(ZY(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Dye(o,FSt)}return{}}function ci(e){if(!Mi().hooks)try{let t=ve(),n=ZY(t,"intents",e,"intent.md");if(!HSt(n))return;let r=qSt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Dye(i,LSt),a={};if(s){let f=H0(e,s),p=jE(f);a=Dye(p,USt)}let c=b9n(t,e,s),l=_9n({intent:o,stage:a,unit:c}),d=ZY(t,"intents",e,".fsm_checksum");E9n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var JY=v(()=>{"use strict";Ef();ze();jSt()});function Be(e,t,n){if(t(e))return null;let r=(t.errors??[]).map(a=>({path:a.instancePath||"/",keyword:a.keyword,message:a.message??"(no message)",params:a.params})),i=He.errorsText(t.errors??null,{separator:"; "}),o={error:`${n}_input_invalid`,tool:n,message:`Invalid arguments for ${n}: ${i}. Check field types and required fields against the tool's inputSchema.`,errors:r};return{content:[{type:"text",text:JSON.stringify(o,null,2)}],structuredContent:o,isError:!0}}var uo=v(()=>{"use strict";Ia()});var f5={};Rr(f5,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>JT,AGENT_AUTHORABLE_UNIT_FIELDS:()=>CE,CREATE_TIME_FB_FIELDS:()=>xL,ERROR_OUTPUT_SCHEMA:()=>Qge,FEEDBACK_ASSESSOR_HAT:()=>uEt,FEEDBACK_ORIGINS:()=>c3n,FEEDBACK_STATUSES:()=>HE,FSM_DRIVEN_FB_FIELDS:()=>IL,FSM_DRIVEN_INTENT_FIELDS:()=>XT,FSM_DRIVEN_UNIT_FIELDS:()=>Yf,INTENT_FRONTMATTER_SCHEMA:()=>ML,INTENT_TITLE_MAX_LENGTH:()=>Kye,IntentScopeTickPersistError:()=>Bd,MAX_CONCURRENT_SUBAGENTS:()=>av,MAX_FIX_LOOP_BOLTS:()=>Mg,MAX_INTEGRATOR_ATTEMPTS:()=>u3n,MAX_RATIONALE_BYTES:()=>qye,MAX_RATIONALE_EXCERPT_BYTES:()=>Bye,MAX_STAGE_ITERATIONS:()=>Cf,MAX_UNIT_BOLTS:()=>mv,OK_OUTPUT_SCHEMA:()=>$ge,REJECT_LOOP_MIN_REPEATS:()=>r5,STAGE_STATE_FIELDS:()=>eye,STAGE_STATE_SCHEMA:()=>yY,UNIT_FRONTMATTER_SCHEMA:()=>QT,_resetIsGitRepoForTests:()=>gft,appendFeedbackIteration:()=>h3n,appendFeedbackReply:()=>aSe,appendStageIteration:()=>Qye,applyAutoFixes:()=>Yye,closeCurrentStageIteration:()=>$ye,completeUnitIteration:()=>i5,computeFeedbackSignature:()=>nEt,countConsecutiveSameRejects:()=>tEt,countInFlightUnits:()=>fEt,countPendingFeedback:()=>g3n,countUnitBolts:()=>eEt,deleteFeedbackFile:()=>d5,deleteFrontmatterFields:()=>Kh,deriveAuthorType:()=>nSe,deriveFeedbackIdFromFilename:()=>mEt,deriveFeedbackStatus:()=>ep,deriveUnitStatus:()=>B0,detectDagCycles:()=>aEt,detectSettledDuplicate:()=>rEt,dismissFeedbackClosureReply:()=>cSe,ensureWorktreesGitignored:()=>GD,feedbackDir:()=>lo,feedbackSeverityRank:()=>Jc,findFeedbackFile:()=>Sc,findHaikuRoot:()=>ve,formatFeedbackId:()=>qd,getIntentScopeTickCounter:()=>l1,getStageIterationCount:()=>sEt,gitCommitAll:()=>s5,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>Fg,gitCommitStateIfDirty:()=>eSe,handleStateTool:()=>lSe,incrementFeedbackBolt:()=>y3n,intentDir:()=>pe,intentFromCurrentBranch:()=>gv,intentTitleNeedsRepair:()=>a1,isGitRepo:()=>Ae,isIntentArchived:()=>u1,isIntentLocked:()=>c1,listInstalledSkills:()=>V0,listVisibleIntentSlugs:()=>s3n,listVisibleIntents:()=>Ug,matchesGlob:()=>Gye,migrateIterationReasonsOnRead:()=>zye,migrateMisplacedWorktrees:()=>$St,moveFeedbackFile:()=>hEt,normalizeLegacyFeedbackStatus:()=>u5,normalizeRejectReason:()=>Jye,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>rSe,persistDesignDirectionUploads:()=>iSe,pickUndispatchedUnitBlocks:()=>dEt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>j9n,readDecisionLog:()=>h9,readFeedbackFiles:()=>Us,readIntentBody:()=>Wh,readJson:()=>jE,repairDeclaredOutput:()=>c5,resolveUnitHats:()=>Wye,runInlineQualityGates:()=>Zye,safeMkdirAndRename:()=>fv,setFrontmatterField:()=>De,setHaikuRootForTests:()=>Sft,setIsGitRepoForTests:()=>yft,setUnitFrontmatterField:()=>o3n,slugifyTitle:()=>l5,stageDir:()=>ar,stageStatePath:()=>H0,stampDispatchClaim:()=>lEt,stampUnitHatLease:()=>sSe,startUnitIteration:()=>s1,stateToolDefs:()=>uSe,syncSessionMetadata:()=>Xr,timestamp:()=>_n,unitIntentDir:()=>q9n,unitOutputExists:()=>Vh,unitPath:()=>Pa,updateFeedbackFile:()=>oSe,validateBranch:()=>tSe,validateIntentSchema:()=>T0,validateRationaleCaps:()=>I9n,validateSlugArgs:()=>kD,validateUnitFrontmatter:()=>oEt,validateUnitSchema:()=>Pg,validateUnitScope:()=>n5,writeFeedbackFile:()=>Qo,writeJson:()=>o1});import{execFileSync as Na,execSync as zh,spawn as T9n,spawnSync as XY}from"node:child_process";import{randomBytes as v9n}from"node:crypto";import{appendFileSync as A9n,existsSync as ue,lstatSync as R9n,mkdirSync as Ml,readdirSync as an,readFileSync as Pe,renameSync as YSt,rmSync as Hye,statSync as ZSt,unlinkSync as G0,writeFileSync as In}from"node:fs";import{homedir as w9n}from"node:os";import{basename as k9n,dirname as z0,join as ne,resolve as $f,sep as q0}from"node:path";import{readdirSync as t3n}from"node:fs";function BSt(e){return Buffer.byteLength(e,"utf-8")}function I9n(e){let t=BSt(e.agent_rationale);if(t>qye)return{kind:"agent_rationale_too_long",bytes:t,cap:qye};for(let n=0;nBye)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:Bye}}return null}function a1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>Kye||/\n/.test(t))}function Yye(e,t,n){let r=ne(e,t,"intent.md");if(!ue(r))return{applied:[],remaining:n};let i=[],s=[r],o=ne(e,t,"stages");if(ue(o))for(let y of an(o,{withFileTypes:!0})){if(!y.isDirectory())continue;let E=ne(o,y.name,"units");if(ue(E))for(let S of an(E,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(ne(E,S.name))}for(let y of s){let E=Pe(y,"utf8"),{text:S,removed:_}=fg(E);if(_.length===0)continue;In(y,S);let b=y.startsWith(ne(e,t))?y.slice(ne(e,t).length+1):y;i.push({intent:t,field:`${b}:frontmatter`,description:`Deduped frontmatter keys: ${_.join(", ")}`})}let a=n.filter(y=>!y.field.endsWith(":frontmatter-duplicate-keys")),c=Pe(r,"utf8"),u=(0,Ct.default)(c),l=u.data,d=u.content,f=!1,p=[];for(let y of a){let E=!1;if(y.field==="title"&&typeof l.title=="string"&&a1(l.title)){let S=l.title.replace(/\s+/g," ").trim(),_=S.length>120?`${S.slice(0,117)}...`:S;p.push({intent:t,field:"title",severity:"error",message:`Title is ${S.length} chars \u2014 looks auto-truncated or is a full description, not a title`,fix:`Rewrite as a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Preserve the current text as a paragraph in the body under the H1 if it isn't there already. Original: "${_}"`}),E=!0}if(y.field==="created"&&l.created&&!l.created_at&&(l.created_at=l.created,delete l.created,i.push({intent:t,field:"created",description:"Renamed legacy `created` to `created_at`"}),E=!0,f=!0),y.field==="created_at"&&!l.created&&!l.created_at){let S=x9n(r);l.created_at=S?S.mtime.toISOString():new Date().toISOString(),i.push({intent:t,field:"created_at",description:"Added `created_at` from file mtime"}),E=!0,f=!0}if(y.field==="mode"&&!l.mode&&(l.mode="continuous",i.push({intent:t,field:"mode",description:"Defaulted `mode` to 'continuous'"}),E=!0,f=!0),y.field==="stages"&&y.message.startsWith("Stages don't match")){let S=y.fix.match(/Expected: \[([^\]]+)\]/);if(S){let _=S[1].split(",").map(b=>b.trim()).filter(Boolean);_.length>0&&(l.stages=_,i.push({intent:t,field:"stages",description:`Updated stages to match studio definition: [${_.join(", ")}]`}),E=!0,f=!0)}}if(y.field==="created_at"&&y.message.includes("git history")){let S=y.fix.match(/'([^']+)' \(from git/);S&&(l.created_at=S[1],i.push({intent:t,field:"created_at",description:`Updated created_at to '${S[1]}' from git history`}),E=!0,f=!0)}if(y.field==="started_at"&&y.fix.includes("from git")){let S=y.fix.match(/'([^']+)' \(from git/);S&&(l.started_at=S[1],i.push({intent:t,field:"started_at",description:`Updated started_at to '${S[1]}' from git history`}),E=!0,f=!0)}E||p.push(y)}f&&In(r,Ct.default.stringify(d,l));let h=ne(e,t,"stages");if(ue(h))for(let y of an(h,{withFileTypes:!0})){if(!y.isDirectory())continue;let E=ne(h,y.name,"units");if(ue(E))for(let S of an(E,{withFileTypes:!0})){if(!(S.isFile()&&S.name.endsWith(".md")))continue;let _=ne(E,S.name),b=Pe(_,"utf8"),T=(0,Ct.default)(b);if("type"in T.data){let{type:A,...R}=T.data;In(_,Ct.default.stringify(T.content,R)),i.push({intent:t,field:`stages/${y.name}/units/${S.name}:type`,description:"Removed deprecated `type` field from unit"})}}}let m=[],g=/^stages\/([^/]+)\/units\/([^/]+):inputs$/;for(let y of p){let E=y.field.match(g);if(!(E&&y.message.includes("Unit has no `inputs:`"))||typeof y.fix!="string"){m.push(y);continue}let S=E[1],_=E[2],b=ne(e,t,"stages",S,"units",_);if(!ue(b)){m.push(y);continue}let T=[],A=y.fix.match(/upstream paths:\s*(.+?)\s*$/);if(A)T=A[1].split(",").map(P=>P.trim()).filter(Boolean);else{let P=["intent.md"],N=ne(e,t,"knowledge");if(ue(N))for(let C of an(N))C.endsWith(".md")&&P.push(`knowledge/${C}`);T=P}if(T.length===0){m.push(y);continue}let R=Pe(b,"utf8"),x=(0,Ct.default)(R);(x.data.inputs||[]).length>0||(x.data.inputs=T,In(b,Ct.default.stringify(x.content,x.data)),i.push({intent:t,field:y.field,description:`Linked ${T.length} input(s): ${T.join(", ")}`}))}return{applied:i,remaining:m}}function x9n(e){try{return ZSt(e)}catch{return null}}function O9n(e,t){if(!Ae())return null;try{let r=Na("git",["log","--diff-filter=A","--follow","--format=%aI","--",e],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"],...t?{cwd:t}:{}}).trim().split(` +`).filter(Boolean);return r.length>0?r[r.length-1]:null}catch{return null}}function XSt(e){let t=new Map,n=nn(),r=[ne(e,"studios"),ne(n,"studios")];for(let i of r)if(ue(i))for(let s of an(i,{withFileTypes:!0})){if(!s.isDirectory()||t.has(s.name))continue;let o=ne(i,s.name,"STUDIO.md");if(!ue(o))continue;let{data:a}=re(Pe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function a5(e,t,n,r){let i=ne(e,t,"intent.md");if(!ue(i))return[];let s=Pe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=fg(s);if(c.length>0&&a.push({intent:t,field:"intent.md:frontmatter-duplicate-keys",severity:"warning",message:`Duplicate frontmatter keys: ${c.join(", ")}`,fix:"Rewrite frontmatter with duplicate keys removed (last value wins)"}),!o.title||typeof o.title=="string"&&o.title.trim()==="")a.push({intent:t,field:"title",severity:"error",message:"Missing title field",fix:"Add `title` field with a short one-line name (\u226480 chars)"});else if(typeof o.title=="string"&&a1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${Kye})`;a.push({intent:t,field:"title",severity:"error",message:`Title should be a short one-liner \u2014 ${f}`,fix:"Rewrite `title` as a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Do NOT truncate the current value \u2014 write a deliberate human-readable summary. Preserve the original text as a paragraph in the body under the H1 if it isn't there already."})}o.studio||a.push({intent:t,field:"studio",severity:"error",message:"Missing studio field",fix:"Set `studio` to an available studio"});let u=o.studio;if(u&&!n.has(u)&&!si(u)){let f=Array.from(n.keys()).join(", ");a.push({intent:t,field:"studio",severity:"error",message:`Studio '${u}' not found`,fix:`Studio '${u}' not found. Available: ${f}`})}let l=o.stages;if(!Array.isArray(l)||l.length===0)if(u&&n.has(u)){let d=n.get(u)?.join(", ");a.push({intent:t,field:"stages",severity:"error",message:"Missing or empty stages array",fix:`Set \`stages\` to match studio definition: [${d}]`})}else a.push({intent:t,field:"stages",severity:"error",message:"Missing or empty stages array",fix:"Set `stages` to match studio definition"});if(Array.isArray(l)&&l.length>0&&u){let d=n.get(u);if(d){let f=l;JSON.stringify(d)!==JSON.stringify(f)&&a.push({intent:t,field:"stages",severity:"warning",message:"Stages don't match studio definition",fix:`Stages don't match studio definition. Expected: [${d.join(", ")}], got: [${f.join(", ")}]`})}}if(o.mode||a.push({intent:t,field:"mode",severity:"error",message:"Missing mode field",fix:"Run `haiku_run_next { intent: }` \u2014 the cursor will emit `select_mode` and the engine surfaces the picker. (Auto-apply defaults to 'continuous' as a recovery fallback for corrupted intents.)"}),o.created&&!o.created_at&&a.push({intent:t,field:"created",severity:"warning",message:"Legacy `created` field found",fix:"Rename `created` to `created_at`"}),o.created||o.created_at||a.push({intent:t,field:"created_at",severity:"warning",message:"Missing created_at field",fix:"Add `created_at` with an ISO date"}),Array.isArray(l))for(let d of l){let f=ne(e,t,"stages",d,"units");if(!ue(f))continue;let p=[];if(u){let h=null;for(let m of r){let g=ne(m,u,"stages",d,"STAGE.md");if(!ue(g))continue;let{data:y}=re(Pe(g,"utf8"));Array.isArray(y.inputs)&&y.inputs.length>0&&(h=y.inputs);break}if(h){let m=ne(e,t);for(let g of h)for(let y of r)for(let E of["discovery","outputs"]){let S=ne(y,u,"stages",g.stage,E);if(ue(S))for(let _ of an(S).filter(b=>b.endsWith(".md"))){let b=Pe(ne(S,_),"utf8"),{data:T}=re(b),A=T.name||_.replace(/\.md$/,""),R=E==="outputs"?g.output:g.discovery;if(A!==R)continue;let x=T.location||"";if(!x)continue;let k=x.replace(/^\.haiku\/intents\/\{intent-slug\}\//,""),P=ne(m,k);ue(P)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;P9n.test(h.name)||a.push({intent:t,field:`stages/${d}/units/${h.name}`,severity:"warning",message:"Unit filename doesn't match expected pattern",fix:"Rename to match pattern: unit-NNN-slug-name.md (3-digit zero-padded; legacy 2-digit also resolves)"});let m=Pe(ne(f,h.name),"utf8"),{removed:g}=fg(m);g.length>0&&a.push({intent:t,field:`stages/${d}/units/${h.name}:frontmatter-duplicate-keys`,severity:"warning",message:`Duplicate frontmatter keys in unit: ${g.join(", ")}`,fix:"Rewrite frontmatter with duplicate keys removed (last value wins)"});let{data:y}=re(m),E=typeof o.plugin_version=="string";!y.status&&!E&&a.push({intent:t,field:`stages/${d}/units/${h.name}:status`,severity:"warning",message:"Unit missing 'status' field",fix:"Add `status` field to unit frontmatter"});let S=y.status||"";if(["complete","skipped","failed"].includes(S))continue;if((y.inputs||y.refs||[]).length===0){let b=p.length>0?`Add \`inputs:\` with upstream paths: ${p.join(", ")}`:"Add `inputs:` with at minimum the intent doc and discovery docs";a.push({intent:t,field:`stages/${d}/units/${h.name}:inputs`,severity:"error",message:"Unit has no `inputs:` \u2014 execution will be blocked",fix:b})}}}if(Ae()){let d=ne(e,t,"intent.md"),f=O9n(d),p=o.created_at,h=o.started_at;if(f&&p){let m=f.slice(0,10),g=typeof p=="string"?p.slice(0,10):"";m!==g&&a.push({intent:t,field:"created_at",severity:"warning",message:`created_at '${g}' doesn't match git history '${m}'`,fix:`Update created_at to '${f}' (from git first commit)`})}if(f&&h){let m=f.slice(0,10),g=typeof h=="string"?h.slice(0,10):"";m!==g&&a.push({intent:t,field:"started_at",severity:"warning",message:`started_at '${g}' doesn't match git history '${m}'`,fix:`Update started_at to '${f}' (from git first commit)`})}f&&!h&&a.push({intent:t,field:"started_at",severity:"warning",message:"Missing started_at field",fix:`Set started_at to '${f}' (from git first commit)`})}return a}function QSt(e,t,n){let r=e??ve(),i=ne(r,"intents");if(!ue(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=XSt(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!ue(ne(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=an(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&ue(ne(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=a5(i,f,s,o);if(n&&p.length>0){let h=Yye(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=a5(i,f,s,o))}p.length===0?u.push(f):(c.push(...p),d.push(...p))}return{scanned:a.length,cleanIntents:u,issues:c,applied:l,remaining:d}}function N9n(e,t=""){if(e.issues.length===0&&e.applied.length===0)return`${t}All intents passed validation. No repairs needed.`;let n=new Map;for(let i of e.issues){let s=n.get(i.intent)||[];s.push(i),n.set(i.intent,s)}let r=[`${t}# Intent Repair Report`,"",`Scanned ${e.scanned} intent(s). Auto-applied ${e.applied.length} fix(es). ${e.remaining.length} issue(s) remaining.`,""];if(e.applied.length>0){r.push("## Auto-Applied Fixes"),r.push("");for(let i of e.applied)r.push(`- **${i.intent}** / \`${i.field}\` \u2014 ${i.description}`);r.push("")}for(let[i,s]of n){let o=s.filter(c=>c.severity==="error").length,a=s.filter(c=>c.severity==="warning").length;r.push(`## ${i} \u2014 ${o} error(s), ${a} warning(s)`),r.push(""),r.push("| # | Severity | Field | Issue | Fix |"),r.push("|---|----------|-------|-------|-----|"),s.forEach((c,u)=>{r.push(`| ${u+1} | ${c.severity} | ${c.field} | ${c.message} | ${c.fix} |`)}),r.push("")}if(e.cleanIntents.length>0){r.push("## Intents with no issues");for(let i of e.cleanIntents)r.push(`- ${i}`);r.push("")}return e.remaining.length>0&&r.push("---","","Auto-fixes were applied for safe issues. Remaining issues need agent or user attention. For each:","1. Read the intent.md file","2. Apply the fix listed in the table above","3. After fixing, report what you changed"),r.join(` +`)}function GSt(){if(!Ae())return[];let e;try{e=Na("git",["worktree","list","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return[]}let t=[],n=null;for(let r of e.split(` +`))r.startsWith("worktree ")?(n&&t.push(n),n={path:r.slice(9).trim(),branch:null}):r.startsWith("branch ")&&n?n.branch=r.slice(7).trim():r===""&&n&&(t.push(n),n=null);return n&&t.push(n),t}function C9n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function $St(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!Ae())return e;let t=Br(),n=`${q0}.haiku${q0}worktrees${q0}`;for(let i of GSt()){let s=i.path.indexOf(n);if(s===-1||i.path.slice(0,s)===t)continue;let a=i.path.slice(s),c=t+a;if(ue(c)){e.skipped.push({path:i.path,reason:`target already exists: ${c}`});continue}if(C9n(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(q0));Ml(u,{recursive:!0}),Na("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of GSt())i.path!==t&&r.add(i.path);for(let i of r){let s=ne(i,".haiku","worktrees");if(!ue(s))continue;let o=!1;try{let a=c=>{if(!o)for(let u of an(c,{withFileTypes:!0})){let l=ne(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{Hye(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=ne(i,".haiku");ue(a)&&an(a).length===0&&Hye(a,{recursive:!0,force:!0})}catch{}}return e}function M9n(e){if(e.moved.length===0&&e.skipped.length===0&&e.cleanedSkeletons.length===0)return"";let t=["## Worktree Migration",""];if(e.moved.length>0){t.push(`Moved ${e.moved.length} misplaced worktree(s):`);for(let n of e.moved)t.push(`- \`${n.branch}\`: ${n.old} \u2192 ${n.new}`);t.push("")}if(e.skipped.length>0){t.push(`Skipped ${e.skipped.length} worktree(s):`);for(let n of e.skipped)t.push(`- ${n.path} \u2014 ${n.reason}`);t.push("")}if(e.cleanedSkeletons.length>0){t.push(`Cleaned ${e.cleanedSkeletons.length} empty skeleton dir(s):`);for(let n of e.cleanedSkeletons)t.push(`- ${n}`);t.push("")}return t.join(` +`)}function D9n(e){OT();let t=Zo(),n=[];if(e){let s=Qfe();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=fpe(u,`.haiku/intents/${o}/intent.md`);if(l){let{data:d}=re(l),f=d.studio||"";if(f){let p=si(f);if(p&&p.stages.length>0){let h=p.stages;c.sort((m,g)=>{let y=h.indexOf(m),E=h.indexOf(g);return(y===-1?h.length:y)-(E===-1?h.length:E)})}}}}catch{}try{let u=dpe(o,c);if(u.success)try{Na("git",["push","-u","origin",`haiku/${o}/main`],{encoding:"utf8",stdio:"pipe"})}catch{}else{let l=u.isConflict?`Merge conflict consolidating into haiku/${o}/main on ${u.conflictFiles?.length??0} file(s): ${(u.conflictFiles??[]).join(", ")}. Resolve on haiku/${o}/main, commit, then re-run /haiku:haiku-repair.`:`Failed to consolidate stage branches into haiku/${o}/main: ${u.message}`;n.push({slug:o,branch:`haiku/${o}/main`,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1,pushError:l})}}catch(u){n.push({slug:o,branch:`haiku/${o}/main`,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1,pushError:`Failed to create main from stage branches: ${u instanceof Error?u.message:String(u)}`})}}}let r=WK();for(let s of r){let o=`haiku/${s}/main`,a="",c={slug:s,branch:o,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1};try{a=KK(o,"haiku-repair",!0)}catch(u){c.error=`Failed to create worktree: ${u instanceof Error?u.message:String(u)}`,n.push(c);continue}try{let u=ne(a,".haiku"),l=QSt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=ne(u,"intents",s,"intent.md");if(ue(d)&&re(Pe(d,"utf8")).data.status==="completed"&&!Yc(o,t)){let p={intent:s,field:"status",severity:"error",message:`Intent marked 'completed' but branch '${o}' is not merged into '${t}'`,fix:`Either merge the branch into '${t}' or set status to 'active'`};c.remaining.push(p)}if(e&&l.applied.length>0){let f=Yc(o,t),p=[`repair: auto-fix ${l.applied.length} metadata issue(s)`,"",...l.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=ZK(a,o,p.join(` +`));if(c.committed=h.committed,c.pushed=h.pushed,c.pushError=h.pushError,h.committed&&h.pushed&&f){c.merged=!0;let m=AI(o,t,`repair: metadata fixes for ${s}`,`Auto-applied repair fixes (branch was already merged into \`${t}\`): + +${l.applied.map(g=>`- **${g.intent}/${g.field}**: ${g.description}`).join(` +`)}`);m.ok?c.prUrl=m.url:c.prError=m.error}}}finally{a&&YK(a)}n.push(c)}let i=L9n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function L9n(e,t,n){let r=new Set(e),i=`repair/archived-intents-${Date.now()}`,s={slug:"",branch:i,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1},o="";try{o=KK(t,"haiku-repair-archived",!0)}catch(a){return s.setupError=`Failed to create mainline worktree: ${a instanceof Error?a.message:String(a)}`,s}try{let a=ne(o,".haiku"),c=ne(a,"intents");if(!ue(c))return;let l=an(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&ue(ne(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=XSt(a);for(let p of l){let h=a5(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=Yye(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=a5(c,p,d,f))}h.length>0&&s.remaining.push(...h)}if(n&&s.applied.length>0){let p=[`repair: auto-fix ${s.applied.length} issue(s) in archived intent(s)`,"",...s.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=ZK(o,i,p.join(` +`));if(s.committed=h.committed,s.pushed=h.pushed,s.pushError=h.pushError,h.committed&&h.pushed){let m=AI(i,t,"repair: metadata fixes for archived intents",`Auto-applied repair fixes for archived intents on \`${t}\`: + +${s.applied.map(g=>`- **${g.intent}/${g.field}**: ${g.description}`).join(` +`)}`);m.ok?s.prUrl=m.url:s.prError=m.error}}}finally{o&&YK(o)}if(s.scanned>0||s.setupError)return s}function U9n(e,t,n){if(e.length===0&&!n)return"No intent branches or archived intents found in this repository.";let r=["# Multi-Branch Repair Report","",`Scanned ${e.length} intent branch(es). Mainline: \`${t}\`.`,""],i=e.reduce((l,d)=>l+d.applied.length,0)+(n?.applied.length??0),s=e.reduce((l,d)=>l+d.remaining.length,0)+(n?.remaining.length??0),o=e.filter(l=>l.pushed).length+(n?.pushed?1:0),a=e.filter(l=>l.prUrl).length,c=n?.prUrl?1:0,u=a>0&&c>0?`${a} PR(s) for already-merged branches + 1 PR for archived intents`:a>0?`${a} PR(s) opened for already-merged branches`:c>0?"1 PR opened for archived intents":"no PRs opened";r.push(`**Summary:** ${i} fix(es) auto-applied across ${o} branch(es); ${u}; ${s} issue(s) still need attention.`),r.push("");for(let l of e){if(r.push(`## \`${l.branch}\``),r.push(""),r.push(`- Scanned: ${l.scanned} intent(s)`),r.push(`- Auto-applied: ${l.applied.length}`),r.push(`- Remaining: ${l.remaining.length}`),l.committed&&l.pushed?r.push(`- Committed and pushed to \`origin/${l.branch}\``):l.committed?r.push(`- Committed locally; push failed: ${l.pushError||"unknown"}`):l.error?r.push(`- Error: ${l.error}`):l.pushError&&r.push(`- Push error: ${l.pushError}`),l.merged&&l.prUrl?r.push(`- Branch already merged into \`${t}\` \u2014 opened PR/MR: ${l.prUrl}`):l.merged&&l.prError&&r.push(`- Branch already merged into \`${t}\` \u2014 failed to open PR: ${l.prError}`),l.applied.length>0){r.push(""),r.push("**Fixes applied:**");for(let d of l.applied)r.push(`- ${d.intent}/${d.field}: ${d.description}`)}if(l.remaining.length>0){r.push(""),r.push("**Remaining issues (need agent attention):**");for(let d of l.remaining)r.push(`- **${d.intent}**/${d.field} (${d.severity}): ${d.message} \u2192 ${d.fix}`)}r.push("")}if(n){if(r.push("## Archived intents (mainline only)"),r.push(""),n.setupError)return r.push(`- **Mainline worktree setup failed:** ${n.setupError}`),r.push("- No archived intents were scanned. Fix the underlying git/filesystem issue and re-run `/repair`."),r.push(""),r.join(` `);if(r.push(`- Scanned: ${n.scanned} archived intent(s)`),r.push(`- Auto-applied: ${n.applied.length}`),r.push(`- Remaining: ${n.remaining.length}`),n.committed&&n.pushed?r.push(`- Pushed repair branch \`origin/${n.branch}\``):n.pushError&&r.push(`- Push error: ${n.pushError}`),n.prUrl?r.push(`- Opened PR/MR: ${n.prUrl}`):n.prError&&r.push(`- Failed to open PR: ${n.prError}`),n.applied.length>0){r.push(""),r.push("**Fixes applied:**");for(let l of n.applied)r.push(`- ${l.intent}/${l.field}: ${l.description}`)}if(n.remaining.length>0){r.push(""),r.push("**Remaining issues (need agent attention):**");for(let l of n.remaining)r.push(`- **${l.intent}**/${l.field} (${l.severity}): ${l.message} \u2192 ${l.fix}`)}r.push("")}return r.join(` -`)}function Wr(){let e=process.cwd();if(VL!==null&&VL.cwd===e)return VL.root;if(!Ae())return VL={cwd:e,root:e},e;let t;try{let n=ka("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(!n)t=e;else{let r=n.startsWith("/")?n:Fh(e,n);t=Fh(r,"..")}}catch{t=e}return VL={cwd:e,root:t},t}function Iye(e,t){let n=we(),r=ne(n,"intents",e,"intent.md");function i(f){if(!de(f))return[];let p=Pe(f,"utf8"),{data:h}=re(p),m=h.quality_gates;return Array.isArray(m)?m:[]}let s=i(r),o=i(t),a=[...s,...o];if(a.length===0)return null;let c=process.cwd();try{c=Cg("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let u=[];for(let f=0;f`- ${f.name}: '${f.command}' exited ${f.exit_code}${f.output?`: ${f.output}`:""}`).join(` `)}`,failures:u,environment:!0,env_reason:d.reason??void 0,requires_tool:d.requiresTool}:{error:"quality_gate_failed",message:`Cannot advance hat: ${u.length} quality gate(s) failed. Fix the issues and try again. ${u.map(f=>`- ${f.name}: '${f.command}' exited ${f.exit_code}${f.output?`: ${f.output}`:""}`).join(` -`)}`,failures:u}}function FKn(e){try{let t=LL(Wr());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function fe(e){return ne(we(),"intents",e)}function Hh(e){let t=ne(fe(e),"intent.md");if(!de(t))return null;let{body:n}=re(Pe(t,"utf8"));return(n||"").trim()||null}function QL(e){try{let t=ne(e,"intent.md");if(!de(t))return!1;let n=Pe(t,"utf-8"),{data:r}=(0,Ht.default)(n);return r.status==="locked"}catch{return!1}}function $L(e){try{let t=ne(e,"intent.md");if(!de(t))return!1;let n=Pe(t,"utf-8"),{data:r}=(0,Ht.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function HKn(e){let t=e.claimed_author_id;if(typeof t=="string"&&t.length>0)return t;let n=e.human_author_id;return typeof n=="string"&&n.length>0?n:null}function qKn(e){return ne(e,"intent-tick.json")}function e1(e){let t=qKn(e),n=JL(t);try{let o=kKn(n);if(o.isSymbolicLink())throw new Hd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Hd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Hd?o:new Hd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(de(t)){let o=Pe(t,"utf-8"),a=JSON.parse(o);typeof a.tick=="number"&&a.tick>=0&&(r=a.tick)}}catch{r=0}let i=r+1,s=ne(n,`.intent-tick-${process.pid}-${RKn(6).toString("hex")}.json.tmp`);try{Mn(s,JSON.stringify({tick:i},null,2)),gSt(s,t)}catch(o){try{j0(s)}catch{}throw new Hd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function BKn(e,t){let n=ne(Wr(),".haiku","worktrees",e,t),r=ne(n,".haiku","intents",e);return de(r)?r:fe(e)}function DZ(e){if(!de(e))return!1;try{let t=ySt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function M_(e,t,n){let r=Fh(fe(e),n);if(DZ(r))return!0;let i=ne(Wr(),".haiku","worktrees",e,t),s=ne(i,".haiku","intents",e);if(de(s)){let a=Fh(s,n);if(DZ(a))return!0}let o=(()=>{try{return Cg("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=Fh(o,n);if(DZ(a))return!0}if(de(i)){let a=Fh(i,n);if(DZ(a))return!0}return!1}function vr(e,t){return ne(fe(e),"stages",t)}function Qo(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=ne(vr(e,t),"units"),s=ne(i,r);if(de(s))return s;let o=r.match(/^unit-(\d+)-(.+)\.md$/);if(!o)return s;let a=Number.parseInt(o[1],10),c=o[2];if(!de(i))return s;let u=un(i).filter(l=>{let d=l.match(/^unit-(\d+)-(.+)\.md$/);return d?Number.parseInt(d[1],10)===a&&d[2]===c:!1});return u.length===1?ne(i,u[0]):s}function D0(e,t){return ne(vr(e,t),"state.json")}function vye(e,t){let n=e.replace(/^\.\//,""),r=t.replace(/^\.\//,"");if(n===r)return!0;if(r.endsWith("/**")){let i=r.slice(0,-3);return n===i||n.startsWith(`${i}/`)}if(r.endsWith("/"))return n.startsWith(r);if(!r.includes("*")&&n.startsWith(`${r}/`))return!0;if(r.includes("*")){let i=r.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),s=/\*\*/g,o=/\x00/g;return new RegExp(`^${i.replace(s,"\0").replace(/\*/g,"[^/]*").replace(o,".*")}$`).test(n)}return!1}function GKn(e,t,n){if(!Ae())return null;let r=t.replace(/\.md$/,""),i=ne(Wr(),".haiku","worktrees",e,r);if(!de(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=Cg(`git merge-base ${s} ${o}`,{cwd:i,encoding:"utf8"}).toString().trim(),c=new Set,u=l=>{for(let d of l.split(` -`).map(f=>f.trim()))d&&c.add(d)};return u(Cg(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Cg(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Cg("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(Cg("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(Cg("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>de(ne(i,l)))}catch{return null}}function zKn(e,t,n,r){let i=r.replace(/\.md$/,""),s=[`stages/${n}/units/${i}.md`,`stages/${n}/state.json`,`stages/${n}/iteration.json`,`stages/${n}/feedback/**`,`stages/${n}/artifacts/**`,`stages/${n}/outputs/**`,`stages/${n}/discovery/**`,"state/**",".integrity.json","knowledge/**","action-log.jsonl","write-audit.jsonl","baseline.json","intent-tick.json"],o=[],a=!1,c=Qs(t,n);for(let u of c){let l=(u.location||"").trim(),d=u.scope||"intent";if(!l){d==="repo"&&(a=!0);continue}if(l.startsWith("(")&&l.endsWith(")")){d==="repo"&&(a=!0);continue}let f=l.replace(/\{intent-slug\}/g,e).replace(/\{stage\}/g,n);if(d==="repo")o.push(f);else{let p=`.haiku/intents/${e}/`,h=f.startsWith(p)?f.slice(p.length):f;s.push(h)}}return{intentGlobs:s,repoGlobs:o,repoWildcard:a}}function VKn(e,t,n,r){let i=GKn(e,n,t);return i!==null?i:[]}function WKn(e,t,n,r){let i=`.haiku/intents/${t}/`,s=r?e.startsWith(i)?e.slice(i.length):null:e;return!!(s!==null&&n.intentGlobs.some(o=>vye(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>vye(e,o))))}function KKn(e,t,n,r){if(r.length===0)return;let i=Qo(e,t,n);if(!de(i))return;let s=Pe(i,"utf8"),{data:o,content:a}=(0,Ht.default)(s),c=new Set((o.outputs||[]).map(y=>y)),u=n.replace(/\.md$/,""),l=new Set([`stages/${t}/units/${u}.md`,`stages/${t}/state.json`,`stages/${t}/iteration.json`,".integrity.json"]),d=[`stages/${t}/feedback/`,"state/"],f=Ae(),p=`.haiku/intents/${e}/`,h=[];for(let y of r){let g=f?y.startsWith(p)?y.slice(p.length):null:y;if(g!==null&&(l.has(g)||d.some(S=>g.startsWith(S))))continue;let E=g??y;c.has(E)||(c.add(E),h.push(E))}if(h.length===0)return;let m=[...o.outputs||[],...h];o.outputs=m,Mn(i,Ht.default.stringify(a,o))}function HZ(e,t,n,r){let i=Qo(e,n,r);if(!de(i))return null;let{data:s}=re(Pe(i,"utf8")),o=s.hat_started_at,a=VKn(e,n,r,o);if(a.length===0)return null;let c=zKn(e,t,n,r),u=Ae(),l=[];for(let d of a)WKn(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(KKn(e,n,r,a),null)}function xye(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function TSt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function vSt(e,t,n){if(!n)return 0;let r=0;for(let i=e.length-1;i>=0;i--){let s=e[i];if(!(s.completed_at===null||s.result===null)){if(s.result!=="reject"||s.hat!==t||xye(s.reason)!==n)break;r++}}return r}function ASt(e){let t=e.map(r=>(r||"").trim().toLowerCase()).filter(r=>r.length>0).sort();if(t.length===0)return"";let n=5381;for(let r of t){for(let i=0;i>>0).toString(16)}`}function fSt(e,t){let r=`${e} ${t}`.replace(/```[\s\S]*?```/g," ").replace(/`[^`]*`/g," ").replace(/\*\*Rejection reason:\*\*[\s\S]*$/i," ").toLowerCase().replace(/[^a-z0-9\s]/g," ").split(/\s+/).filter(i=>i.length>=3&&!ZKn.has(i));return new Set(r)}function YKn(e,t){if(e.size===0||t.size===0)return 0;let n=0;for(let i of e)t.has(i)&&n++;let r=e.size+t.size-n;return r===0?0:n/r}function RSt(e,t,n){let r;try{let a=t?yo(e,t):[],c=yo(e,"");r=[...a,...c]}catch{return null}let i=fSt(n.title,n.body);if(i.size===0)return null;let s=n.targetUnit??null,o=null;for(let a of r){if(a.status!=="closed"&&a.status!=="rejected"&&a.status!=="non_actionable")continue;let c=a.targets?.unit??null;if(s!==c)continue;let u=YKn(i,fSt(a.title,a.body));if(uo.sim)&&(o={id:a.id,status:a.status,resolution:d,sim:u})}return o?{id:o.id,status:o.status,resolution:o.resolution}:null}function wSt(e,t){return ne(vr(e,t),"decisions.jsonl")}function pSt(e,t,n){let r=wSt(e,t);try{Ol(JL(r),{recursive:!0}),wKn(r,`${JSON.stringify(n)} -`)}catch(i){console.error(`[haiku] failed to append decision log for ${e}/${t}: ${i instanceof Error?i.message:String(i)}`)}}function QK(e,t){let n=wSt(e,t);if(!de(n))return[];let r=Pe(n,"utf8"),i=[];for(let s of r.split(` -`)){let o=s.trim();if(o)try{i.push(JSON.parse(o))}catch{}}return i}function Oye(e,t){return yo(e,t).filter(s=>typeof s.closed_at=="string"&&s.closed_at.length>0).slice().sort((s,o)=>(s.closed_at??"").localeCompare(o.closed_at??"")).map((s,o)=>({index:o+1,started_at:s.created_at||"",completed_at:s.closed_at??null,trigger:"feedback",result:"feedback-revisit",...s.title?{reason:s.title}:{}}))}function kSt(e,t,n){if(t&&n){let s=Oye(t,n).length;if(s>0)return s}let r=e.iterations;if(Array.isArray(r))return r.length;let i=e.visits;return typeof i=="number"?i:0}function Nye(e,t,n,r="feedback-revisit"){let i=Oye(e,t),s=En();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?ASt(n.feedbackTitles):"";({trigger:n.trigger,...n.reason?{reason:n.reason}:{},...o?{feedback_signature:o}:{}},i.push({index:i.length+1,started_at:s,completed_at:null,trigger:n.trigger,result:null,...n.reason?{reason:n.reason}:{},...o?{feedback_signature:o}:{}}));let a=i.length,c=n.trigger==="feedback"||n.trigger==="external-changes",u=c&&a>Pf,l=!1;if(o&&c&&i.length>=2){let d=i[i.length-2];d.feedback_signature&&d.feedback_signature===o&&(l=!0)}return Qe("haiku.stage.iteration",{intent:e,stage:t,iteration:String(a),trigger:n.trigger,signature:o,exceeded:String(u),loop_detected:String(l)}),{count:a,exceeded:u,loopDetected:l,signature:o}}function Pye(e,t,n,r){let i=Oye(e,t),s=En();i.length===0&&void 0,{...r?{reason:r}:{}}}function KL(e,t){if(!de(e))return;let{data:n,body:r}=re(Pe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:En(),completed_at:null,result:null}),n.iterations=i,Mn(e,Ht.default.stringify(r,n))}function Aye(e){if(!de(e))return;let t;try{t=re(Pe(e,"utf8"))}catch{return}let n=t.data.iterations;if(!Array.isArray(n))return;let r=!1;for(let i of n){if(!i||typeof i!="object"||Array.isArray(i))continue;let s=i;typeof s.reason=="string"&&(s.message===void 0&&s.reason.length>0&&(s.message=s.reason),delete s.reason,r=!0)}if(r)try{Mn(e,Ht.default.stringify(t.body,t.data))}catch{}}function BZ(e,t,n){if(!de(e))return;let{data:r,body:i}=re(Pe(e,"utf8")),s=Array.isArray(r.iterations)?r.iterations.slice():[];if(s.length===0)return;let o=s[s.length-1];o.completed_at||(o.completed_at=En(),o.result=t,n&&(o.message=n),r.iterations=s,Mn(e,Ht.default.stringify(i,r)))}function QKn(e){let t=[],n=new Set;for(let r of XKn){r.lastIndex=0;for(let i of e.matchAll(r)){let s=i[1],o=i[2];if(!s||!o)continue;let a=`${s}@${o}`;n.has(a)||(n.add(a),t.push({full:i[0],identifier:s,path:o}))}}return t}function $Kn(e){let t=QKn(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(L0)?n:`${n}${L0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:ne(n,i.path),o=Fh(s);if(!o.startsWith(r)&&o!==n)return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_outside_project",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but the resolved path escapes the project root. Only paths within the project tree can be cited as existing helpers.`};if(!de(o))return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_missing",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but that path does not exist. Either fix the citation to a real path, or remove the citation if the helper is being introduced by this unit (the elaborate phase tracks NEW symbols separately from cited ones).`};try{let a=Pe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${yye(i.identifier)}\\b|\\bfunction\\s+${yye(i.identifier)}\\b|\\b${yye(i.identifier)}\\s*[:=(])`).test(a))return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"identifier_missing_in_path",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but \`${i.identifier}\` does not appear in that file (looked for export/function/record-field/assignment/call patterns). Either fix the citation, or if you intend to ADD this helper as part of this unit, remove the "existing" qualifier \u2014 the citation pattern is for already-shipped code.`}}catch{return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_unreadable",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but that path is unreadable. Fix the citation or remove it.`}}}return null}function yye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function e3n(e,t){let n=Array.isArray(t.quality_gates)?t.quality_gates:[];if(n.length===0)return null;let r=new Set;if(Array.isArray(t.outputs))for(let i of t.outputs)typeof i=="string"&&r.add(i);for(let i of n){if(typeof i!="object"||i===null)continue;let s=i,o=s.name||"",a=s.command||"";if(!a)continue;let c=a.match(/!\s*grep([^|]*)$/);if(c){let d=[...c[1].trim().split(/\s+/)].reverse().find(p=>!p.startsWith("-")),f=d?d.replace(/['"`]/g,""):"";for(let p of r)if(f===p||f.endsWith(`/${p}`)||p.endsWith(f))return{error:"gate_trivially_passes",gate:o,unit:e,pattern:"asserts_zero_matches_on_own_output",command:a,message:`Quality gate '${o}' on unit '${e}' asserts zero matches against \`${f}\`, which is one of the unit's own declared outputs. The gate trivially passes before the unit produces any output \u2014 once the implementer writes the wrong substring, the gate first fails. This is a no-op test. Replace it with a positive assertion (\`grep -q "" "${f}"\`) or a behavior-driven test (run the code, verify the result).`}}let u=a.match(/\bgrep\s+(?:-[a-zA-Z]+\s+)?["']([^"']+)["']\s+([\S]+)/);if(u){let l=u[1],d=u[2].replace(/['"`]/g,"");for(let f of r)if((d===f||d.endsWith(`/${f}`)||f.endsWith(d))&&/\b(complete|completed|done|finished|implemented|ready|success|passed)\b/i.test(l))return{error:"gate_trivially_passes",gate:o,unit:e,pattern:"literal_substring_in_self_authored_output",command:a,literal:l,message:`Quality gate '${o}' on unit '${e}' greps for the literal "${l}" in \`${d}\`, which is one of the unit's own declared outputs. The implementer can satisfy the gate by writing the literal into their own output \u2014 the gate is circular. Replace it with a behavior-driven test (run the code, verify the actual result), not a substring assertion on the file the implementer also writes.`}}}return null}function n3n(e){if(!Sye){let t=new SSt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=ne(n,"schemas","providers");if(de(r)){let a="https://haiku.dev/schemas/";for(let c of t3n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(Pe(ne(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=ne(n,"schemas","settings.schema.json"),s=de(i)?JSON.parse(Pe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Sye=o,Rye=()=>o.errors}return Sye(e)}function r3n(){return Rye?Rye():[]}function i3n(e){if(e.keyword==="propertyNames")return`fsm_field_forbidden: '${e.params.propertyName??""}' is workflow-driven and must not be set by agents. The workflow engine owns this field via haiku_unit_advance_hat / haiku_unit_increment_bolt / etc.`;let n=e.instancePath.split("/").filter(Boolean)[0];switch(n){case"title":return`title_shape: title must be a non-empty string, or omit the field (it will default to the unit name). (${e.message??e.keyword})`;case"model":return"model_shape: model must be 'haiku', 'sonnet', or 'opus'. Omit the field to fall through to hat/stage/studio defaults.";case"depends_on":return`depends_on_shape: depends_on must be a list of unit names (strings), or omit the field entirely for units with no dependencies. (${e.message??e.keyword} at ${e.instancePath})`;case"closes":return`closes_shape: closes must be a list of FB ID strings, or omit the field for units that don't address feedback. (${e.message??e.keyword} at ${e.instancePath})`;case"quality_gates":return`quality_gates_shape: quality_gates must be a list of {name, command, dir?} objects with non-empty name+command. Prose-only gates are silently skipped \u2014 write a real command. (${e.message??e.keyword} at ${e.instancePath})`;case"inputs":case"outputs":return`${n}_shape: ${n} must be a list of strings. (${e.message??e.keyword} at ${e.instancePath})`;default:return`frontmatter_shape: ${e.message??e.keyword} at ${e.instancePath||"/"}`}}function LZ(e,t){if(e===t)return!0;let n=e.match(/^unit-(\d+)-(.+)$/),r=t.match(/^unit-(\d+)-(.+)$/);return!n||!r?!1:Number.parseInt(n[1],10)===Number.parseInt(r[1],10)&&n[2]===r[2]}function ISt(e,t){let n=[];if(!kg(e)&&kg.errors)for(let i of kg.errors)n.push(i3n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||LZ(i,t.unit))&&n.push(`depends_on_self_reference: unit '${t.unit}' lists itself in depends_on. A unit cannot depend on itself.`),!t.siblingUnits.some(o=>LZ(i,o))&&!LZ(i,t.unit)&&n.push(`depends_on_unresolved: depends_on entry '${i}' does not resolve to a unit in stage '${t.stage}'. Sibling units in this stage: [${t.siblingUnits.join(", ")}].`)}if(Array.isArray(e.inputs))for(let i of e.inputs)typeof i=="string"&&/^unit-\d+-/.test(i.trim())&&n.push(`inputs_unit_name_not_path: inputs entry '${i}' looks like a unit name, but \`inputs:\` must list file PATHS the unit reads (e.g. \`product/ACCEPTANCE-CRITERIA.md\`, a prior-stage artifact, or a sibling unit's declared output file). To express ordering on another unit, add it to \`depends_on:\` and put that unit's actual output path in \`inputs:\`.`);if(Array.isArray(e.inputs)&&t.siblingOutputs){let i=Array.isArray(e.depends_on)?e.depends_on.filter(s=>typeof s=="string"):[];for(let s of e.inputs){if(typeof s!="string")continue;let o=s.trim();for(let[a,c]of Object.entries(t.siblingOutputs)){if(a===t.unit||!c.includes(o))continue;i.some(l=>LZ(l,a))||n.push(`inputs_undeclared_producer: inputs entry '${o}' is a declared output of sibling unit '${a}', but '${a}' is not in \`depends_on:\`. The wave scheduler sequences only on depends_on \u2014 without it, '${t.unit}' is co-scheduled with its producer and the input won't exist when it runs. Add '${a}' to \`depends_on:\`.`)}}}if(t.stageProduces==="build"){let s=(Array.isArray(e.outputs)?e.outputs:[]).length>0,o="quality_gates"in e;s&&!o&&n.push(`build_unit_missing_quality_gates: unit '${t.unit}' declares \`outputs:\` in build-class stage '${t.stage}' but has no \`quality_gates:\` field \u2014 it would complete with nothing verifying its artifact. Add \`quality_gates:\` (an explicit empty list \`[]\` is allowed when the unit genuinely defers verification to a sibling test unit, but the field MUST be present so the omission is a deliberate, reviewable choice rather than a silent gap).`)}return n.length===0?{valid:!0}:{valid:!1,errors:n}}function xSt(e){let i={},s=new Set;for(let a of Object.keys(e))i[a]=0;function o(a){if(i[a]===1)return s.add(a),!0;if(i[a]===2)return!1;i[a]=1;let c=e[a]||[],u=!1;for(let l of c)l in e&&o(l)&&(s.add(a),u=!0);return i[a]=2,u}for(let a of Object.keys(e))i[a]===0&&o(a);return[...s].sort()}function t1(e){let t={...e};for(let n in t)t[n]instanceof Date&&(t[n]=t[n].toISOString());return t}function re(e){let t=n=>{let{data:r,content:i}=(0,Ht.default)(n);return{data:t1(r),body:i.trim()}};try{return t(e)}catch(n){if(!tI(n))throw n;let{text:r,removed:i}=ag(e);if(i.length===0)throw n;return ps(n,{context:"parseFrontmatter:dedup-recovery",removed_keys:i}),t(r)}}function Mg(e,t){if(!de(e))return[];let n=t?.includeArchived===!0,r=[];for(let i of un(e)){let s=ne(e,i,"intent.md");if(!de(s))continue;let{data:o}=re(Pe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function s3n(e,t){return Mg(e,t).map(n=>n.slug)}function fv(){if(!Ae())return null;let e=hr();if(!e)return null;let t=e.match(/^haiku\/([^/]+)\/([^/]+)$/);if(!t)return null;let n=t[1],r=t[2];return{slug:n,stage:r==="main"?null:r}}function je(e,t,n){let r=Pe(e,"utf8"),i=(0,Ht.default)(r),s={...i.data,[t]:n};Mn(e,Ht.default.stringify(i.content,t1(s)))}function qh(e,t){if(!de(e))return;let n=Pe(e,"utf8"),r=(0,Ht.default)(n),i={...r.data},s=!1;for(let o of t)o in i&&(delete i[o],s=!0);s&&Mn(e,Ht.default.stringify(r.content,t1(i)))}function o3n(e,t,n,r,i){let s=Qo(e,t,n);de(s)&&je(s,r,i);let o=ne(Wr(),".haiku","worktrees",e,n);if(!de(o))return;let a=ne(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);de(a)&&je(a,r,i)}function hSt(e){let{data:t}=(0,Ht.default)(`--- +`)}`,failures:u}}function F9n(e){try{let t=KL(Br());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function pe(e){return ne(ve(),"intents",e)}function Wh(e){let t=ne(pe(e),"intent.md");if(!ue(t))return null;let{body:n}=re(Pe(t,"utf8"));return(n||"").trim()||null}function c1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Pe(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function u1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Pe(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function j9n(e){let t=e.claimed_author_id;if(typeof t=="string"&&t.length>0)return t;let n=e.human_author_id;return typeof n=="string"&&n.length>0?n:null}function H9n(e){return ne(e,"intent-tick.json")}function l1(e){let t=H9n(e),n=z0(t);try{let o=R9n(n);if(o.isSymbolicLink())throw new Bd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Bd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Bd?o:new Bd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=Pe(t,"utf-8"),a=JSON.parse(o);typeof a.tick=="number"&&a.tick>=0&&(r=a.tick)}}catch{r=0}let i=r+1,s=ne(n,`.intent-tick-${process.pid}-${v9n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),YSt(s,t)}catch(o){try{G0(s)}catch{}throw new Bd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function q9n(e,t){let n=ne(Br(),".haiku","worktrees",e,t),r=ne(n,".haiku","intents",e);return ue(r)?r:pe(e)}function r1(e){if(!ue(e))return!1;try{let t=ZSt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function Vh(e,t,n){let r=$f(pe(e),n);if(r1(r))return!0;let i=ne(Br(),".haiku","worktrees",e,t),s=ne(i,".haiku","intents",e);if(ue(s)){let a=$f(s,n);if(r1(a))return!0}let o=(()=>{try{return zh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=$f(o,n);if(r1(a))return!0}if(ue(i)){let a=$f(i,n);if(r1(a))return!0}return!1}function B9n(e,t){let n=[pe(e)],r=ne(Br(),".haiku","worktrees",e,t),i=ne(r,".haiku","intents",e);ue(i)&&n.push(i);try{let s=zh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim();s&&n.push(s)}catch{}return ue(r)&&n.push(r),n.filter(s=>ue(s))}function Lye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function c5(e,t,n){let r=k9n(n);if(Lye(r)===r)return null;let i=Lye(r),s=z0(n),o=new Set;for(let c of B9n(e,t)){let u=$f(c,s);if(!ue(u))continue;let l;try{l=an(u)}catch{continue}for(let d of l)d!==r&&Lye(d)===i&&r1(ne(u,d))&&o.add(d)}if(o.size!==1)return null;let a=[...o][0];return s==="."?a:ne(s,a)}function ar(e,t){return ne(pe(e),"stages",t)}function Pa(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=ne(ar(e,t),"units"),s=ne(i,r);if(ue(s))return s;let o=r.match(/^unit-(\d+)-(.+)\.md$/);if(!o)return s;let a=Number.parseInt(o[1],10),c=o[2];if(!ue(i))return s;let u=an(i).filter(l=>{let d=l.match(/^unit-(\d+)-(.+)\.md$/);return d?Number.parseInt(d[1],10)===a&&d[2]===c:!1});return u.length===1?ne(i,u[0]):s}function H0(e,t){return ne(ar(e,t),"state.json")}function Gye(e,t){let n=e.replace(/^\.\//,""),r=t.replace(/^\.\//,"");if(n===r)return!0;if(r.endsWith("/**")){let i=r.slice(0,-3);return n===i||n.startsWith(`${i}/`)}if(r.endsWith("/"))return n.startsWith(r);if(!r.includes("*")&&n.startsWith(`${r}/`))return!0;if(r.includes("*")){let i=r.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),s=/\*\*/g,o=/\x00/g;return new RegExp(`^${i.replace(s,"\0").replace(/\*/g,"[^/]*").replace(o,".*")}$`).test(n)}return!1}function G9n(e,t,n){if(!Ae())return null;let r=t.replace(/\.md$/,""),i=ne(Br(),".haiku","worktrees",e,r);if(!ue(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=zh(`git merge-base ${s} ${o}`,{cwd:i,encoding:"utf8"}).toString().trim(),c=new Set,u=l=>{for(let d of l.split(` +`).map(f=>f.trim()))d&&c.add(d)};return u(zh(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(zh(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(zh("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(zh("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(zh("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>ue(ne(i,l)))}catch{return null}}function z9n(e,t,n,r){let i=r.replace(/\.md$/,""),s=[`stages/${n}/units/${i}.md`,`stages/${n}/state.json`,`stages/${n}/iteration.json`,`stages/${n}/feedback/**`,`stages/${n}/artifacts/**`,`stages/${n}/outputs/**`,`stages/${n}/discovery/**`,"state/**",".integrity.json","knowledge/**","action-log.jsonl","write-audit.jsonl","baseline.json","intent-tick.json"],o=[],a=!1,c=no(t,n);for(let u of c){let l=(u.location||"").trim(),d=u.scope||"intent";if(!l){d==="repo"&&(a=!0);continue}if(l.startsWith("(")&&l.endsWith(")")){d==="repo"&&(a=!0);continue}let f=l.replace(/\{intent-slug\}/g,e).replace(/\{stage\}/g,n);if(d==="repo")o.push(f);else{let p=`.haiku/intents/${e}/`,h=f.startsWith(p)?f.slice(p.length):f;s.push(h)}}return{intentGlobs:s,repoGlobs:o,repoWildcard:a}}function V9n(e,t,n,r){let i=G9n(e,n,t);return i!==null?i:[]}function W9n(e,t,n,r){let i=`.haiku/intents/${t}/`,s=r?e.startsWith(i)?e.slice(i.length):null:e;return!!(s!==null&&n.intentGlobs.some(o=>Gye(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>Gye(e,o))))}function K9n(e,t,n,r){if(r.length===0)return;let i=Pa(e,t,n);if(!ue(i))return;let s=Pe(i,"utf8"),{data:o,content:a}=(0,Ct.default)(s),c=new Set((o.outputs||[]).map(g=>g)),u=n.replace(/\.md$/,""),l=new Set([`stages/${t}/units/${u}.md`,`stages/${t}/state.json`,`stages/${t}/iteration.json`,".integrity.json"]),d=[`stages/${t}/feedback/`,"state/"],f=Ae(),p=`.haiku/intents/${e}/`,h=[];for(let g of r){let y=f?g.startsWith(p)?g.slice(p.length):null:g;if(y!==null&&(l.has(y)||d.some(S=>y.startsWith(S))))continue;let E=y??g;c.has(E)||(c.add(E),h.push(E))}if(h.length===0)return;let m=[...o.outputs||[],...h];o.outputs=m,In(i,Ct.default.stringify(a,o))}function n5(e,t,n,r){let i=Pa(e,n,r);if(!ue(i))return null;let{data:s}=re(Pe(i,"utf8")),o=s.hat_started_at,a=V9n(e,n,r,o);if(a.length===0)return null;let c=z9n(e,t,n,r),u=Ae(),l=[];for(let d of a)W9n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(K9n(e,n,r,a),null)}function Jye(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function eEt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function tEt(e,t,n){if(!n)return 0;let r=0;for(let i=e.length-1;i>=0;i--){let s=e[i];if(!(s.completed_at===null||s.result===null)){if(s.result!=="reject"||s.hat!==t||Jye(s.reason)!==n)break;r++}}return r}function nEt(e){let t=e.map(r=>(r||"").trim().toLowerCase()).filter(r=>r.length>0).sort();if(t.length===0)return"";let n=5381;for(let r of t){for(let i=0;i>>0).toString(16)}`}function zSt(e,t){let r=`${e} ${t}`.replace(/```[\s\S]*?```/g," ").replace(/`[^`]*`/g," ").replace(/\*\*Rejection reason:\*\*[\s\S]*$/i," ").toLowerCase().replace(/[^a-z0-9\s]/g," ").split(/\s+/).filter(i=>i.length>=3&&!Y9n.has(i));return new Set(r)}function Z9n(e,t){if(e.size===0||t.size===0)return 0;let n=0;for(let i of e)t.has(i)&&n++;let r=e.size+t.size-n;return r===0?0:n/r}function rEt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=zSt(n.title,n.body);if(i.size===0)return null;let s=n.targetUnit??null,o=null;for(let a of r){if(a.status!=="closed"&&a.status!=="rejected"&&a.status!=="non_actionable")continue;let c=a.targets?.unit??null;if(s!==c)continue;let u=Z9n(i,zSt(a.title,a.body));if(uo.sim)&&(o={id:a.id,status:a.status,resolution:d,sim:u})}return o?{id:o.id,status:o.status,resolution:o.resolution}:null}function iEt(e,t){return ne(ar(e,t),"decisions.jsonl")}function VSt(e,t,n){let r=iEt(e,t);try{Ml(z0(r),{recursive:!0}),A9n(r,`${JSON.stringify(n)} +`)}catch(i){console.error(`[haiku] failed to append decision log for ${e}/${t}: ${i instanceof Error?i.message:String(i)}`)}}function h9(e,t){let n=iEt(e,t);if(!ue(n))return[];let r=Pe(n,"utf8"),i=[];for(let s of r.split(` +`)){let o=s.trim();if(o)try{i.push(JSON.parse(o))}catch{}}return i}function Xye(e,t){return Us(e,t).filter(s=>typeof s.closed_at=="string"&&s.closed_at.length>0).slice().sort((s,o)=>(s.closed_at??"").localeCompare(o.closed_at??"")).map((s,o)=>({index:o+1,started_at:s.created_at||"",completed_at:s.closed_at??null,trigger:"feedback",result:"feedback-revisit",...s.title?{reason:s.title}:{}}))}function sEt(e,t,n){if(t&&n){let s=Xye(t,n).length;if(s>0)return s}let r=e.iterations;if(Array.isArray(r))return r.length;let i=e.visits;return typeof i=="number"?i:0}function Qye(e,t,n,r="feedback-revisit"){let i=Xye(e,t),s=_n();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?nEt(n.feedbackTitles):"";({trigger:n.trigger,...n.reason?{reason:n.reason}:{},...o?{feedback_signature:o}:{}},i.push({index:i.length+1,started_at:s,completed_at:null,trigger:n.trigger,result:null,...n.reason?{reason:n.reason}:{},...o?{feedback_signature:o}:{}}));let a=i.length,c=n.trigger==="feedback"||n.trigger==="external-changes",u=c&&a>Cf,l=!1;if(o&&c&&i.length>=2){let d=i[i.length-2];d.feedback_signature&&d.feedback_signature===o&&(l=!0)}return Ke("haiku.stage.iteration",{intent:e,stage:t,iteration:String(a),trigger:n.trigger,signature:o,exceeded:String(u),loop_detected:String(l)}),{count:a,exceeded:u,loopDetected:l,signature:o}}function $ye(e,t,n,r){let i=Xye(e,t),s=_n();i.length===0&&void 0,{...r?{reason:r}:{}}}function s1(e,t){if(!ue(e))return;let{data:n,body:r}=re(Pe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:_n(),completed_at:null,result:null}),n.iterations=i,In(e,Ct.default.stringify(r,n))}function zye(e){if(!ue(e))return;let t;try{t=re(Pe(e,"utf8"))}catch{return}let n=t.data.iterations;if(!Array.isArray(n))return;let r=!1;for(let i of n){if(!i||typeof i!="object"||Array.isArray(i))continue;let s=i;typeof s.reason=="string"&&(s.message===void 0&&s.reason.length>0&&(s.message=s.reason),delete s.reason,r=!0)}if(r)try{In(e,Ct.default.stringify(t.body,t.data))}catch{}}function i5(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(Pe(e,"utf8")),s=Array.isArray(r.iterations)?r.iterations.slice():[];if(s.length===0)return;let o=s[s.length-1];o.completed_at||(o.completed_at=_n(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Ct.default.stringify(i,r)))}function Q9n(e){let t=[],n=new Set;for(let r of X9n){r.lastIndex=0;for(let i of e.matchAll(r)){let s=i[1],o=i[2];if(!s||!o)continue;let a=`${s}@${o}`;n.has(a)||(n.add(a),t.push({full:i[0],identifier:s,path:o}))}}return t}function $9n(e){let t=Q9n(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(q0)?n:`${n}${q0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:ne(n,i.path),o=$f(s);if(!o.startsWith(r)&&o!==n)return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_outside_project",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but the resolved path escapes the project root. Only paths within the project tree can be cited as existing helpers.`};if(!ue(o))return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_missing",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but that path does not exist. Either fix the citation to a real path, or remove the citation if the helper is being introduced by this unit (the elaborate phase tracks NEW symbols separately from cited ones).`};try{let a=Pe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Uye(i.identifier)}\\b|\\bfunction\\s+${Uye(i.identifier)}\\b|\\b${Uye(i.identifier)}\\s*[:=(])`).test(a))return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"identifier_missing_in_path",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but \`${i.identifier}\` does not appear in that file (looked for export/function/record-field/assignment/call patterns). Either fix the citation, or if you intend to ADD this helper as part of this unit, remove the "existing" qualifier \u2014 the citation pattern is for already-shipped code.`}}catch{return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_unreadable",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but that path is unreadable. Fix the citation or remove it.`}}}return null}function Uye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function e3n(e,t){let n=Array.isArray(t.quality_gates)?t.quality_gates:[];if(n.length===0)return null;let r=new Set;if(Array.isArray(t.outputs))for(let i of t.outputs)typeof i=="string"&&r.add(i);for(let i of n){if(typeof i!="object"||i===null)continue;let s=i,o=s.name||"",a=s.command||"";if(!a)continue;let c=a.match(/!\s*grep([^|]*)$/);if(c){let d=[...c[1].trim().split(/\s+/)].reverse().find(p=>!p.startsWith("-")),f=d?d.replace(/['"`]/g,""):"";for(let p of r)if(f===p||f.endsWith(`/${p}`)||p.endsWith(f))return{error:"gate_trivially_passes",gate:o,unit:e,pattern:"asserts_zero_matches_on_own_output",command:a,message:`Quality gate '${o}' on unit '${e}' asserts zero matches against \`${f}\`, which is one of the unit's own declared outputs. The gate trivially passes before the unit produces any output \u2014 once the implementer writes the wrong substring, the gate first fails. This is a no-op test. Replace it with a positive assertion (\`grep -q "" "${f}"\`) or a behavior-driven test (run the code, verify the result).`}}let u=a.match(/\bgrep\s+(?:-[a-zA-Z]+\s+)?["']([^"']+)["']\s+([\S]+)/);if(u){let l=u[1],d=u[2].replace(/['"`]/g,"");for(let f of r)if((d===f||d.endsWith(`/${f}`)||f.endsWith(d))&&/\b(complete|completed|done|finished|implemented|ready|success|passed)\b/i.test(l))return{error:"gate_trivially_passes",gate:o,unit:e,pattern:"literal_substring_in_self_authored_output",command:a,literal:l,message:`Quality gate '${o}' on unit '${e}' greps for the literal "${l}" in \`${d}\`, which is one of the unit's own declared outputs. The implementer can satisfy the gate by writing the literal into their own output \u2014 the gate is circular. Replace it with a behavior-driven test (run the code, verify the actual result), not a substring assertion on the file the implementer also writes.`}}}return null}function n3n(e){if(!Fye){let t=new JSt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=ne(n,"schemas","providers");if(ue(r)){let a="https://haiku.dev/schemas/";for(let c of t3n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(Pe(ne(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=ne(n,"schemas","settings.schema.json"),s=ue(i)?JSON.parse(Pe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Fye=o,Vye=()=>o.errors}return Fye(e)}function r3n(){return Vye?Vye():[]}function i3n(e){if(e.keyword==="propertyNames")return`fsm_field_forbidden: '${e.params.propertyName??""}' is workflow-driven and must not be set by agents. The workflow engine owns this field via haiku_unit_advance_hat / haiku_unit_increment_bolt / etc.`;let n=e.instancePath.split("/").filter(Boolean)[0];switch(n){case"title":return`title_shape: title must be a non-empty string, or omit the field (it will default to the unit name). (${e.message??e.keyword})`;case"model":return"model_shape: model must be 'haiku', 'sonnet', or 'opus'. Omit the field to fall through to hat/stage/studio defaults.";case"depends_on":return`depends_on_shape: depends_on must be a list of unit names (strings), or omit the field entirely for units with no dependencies. (${e.message??e.keyword} at ${e.instancePath})`;case"closes":return`closes_shape: closes must be a list of FB ID strings, or omit the field for units that don't address feedback. (${e.message??e.keyword} at ${e.instancePath})`;case"quality_gates":return`quality_gates_shape: quality_gates must be a list of {name, command, dir?} objects with non-empty name+command. Prose-only gates are silently skipped \u2014 write a real command. (${e.message??e.keyword} at ${e.instancePath})`;case"inputs":case"outputs":return`${n}_shape: ${n} must be a list of strings. (${e.message??e.keyword} at ${e.instancePath})`;default:return`frontmatter_shape: ${e.message??e.keyword} at ${e.instancePath||"/"}`}}function QY(e,t){if(e===t)return!0;let n=e.match(/^unit-(\d+)-(.+)$/),r=t.match(/^unit-(\d+)-(.+)$/);return!n||!r?!1:Number.parseInt(n[1],10)===Number.parseInt(r[1],10)&&n[2]===r[2]}function oEt(e,t){let n=[];if(!Pg(e)&&Pg.errors)for(let i of Pg.errors)n.push(i3n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||QY(i,t.unit))&&n.push(`depends_on_self_reference: unit '${t.unit}' lists itself in depends_on. A unit cannot depend on itself.`),!t.siblingUnits.some(o=>QY(i,o))&&!QY(i,t.unit)&&n.push(`depends_on_unresolved: depends_on entry '${i}' does not resolve to a unit in stage '${t.stage}'. Sibling units in this stage: [${t.siblingUnits.join(", ")}].`)}if(Array.isArray(e.inputs))for(let i of e.inputs)typeof i=="string"&&/^unit-\d+-/.test(i.trim())&&n.push(`inputs_unit_name_not_path: inputs entry '${i}' looks like a unit name, but \`inputs:\` must list file PATHS the unit reads (e.g. \`product/ACCEPTANCE-CRITERIA.md\`, a prior-stage artifact, or a sibling unit's declared output file). To express ordering on another unit, add it to \`depends_on:\` and put that unit's actual output path in \`inputs:\`.`);if(Array.isArray(e.inputs)&&t.siblingOutputs){let i=Array.isArray(e.depends_on)?e.depends_on.filter(s=>typeof s=="string"):[];for(let s of e.inputs){if(typeof s!="string")continue;let o=s.trim();for(let[a,c]of Object.entries(t.siblingOutputs)){if(a===t.unit||!c.includes(o))continue;i.some(l=>QY(l,a))||n.push(`inputs_undeclared_producer: inputs entry '${o}' is a declared output of sibling unit '${a}', but '${a}' is not in \`depends_on:\`. The wave scheduler sequences only on depends_on \u2014 without it, '${t.unit}' is co-scheduled with its producer and the input won't exist when it runs. Add '${a}' to \`depends_on:\`.`)}}}if(t.stageProduces==="build"){let s=(Array.isArray(e.outputs)?e.outputs:[]).length>0,o="quality_gates"in e;s&&!o&&n.push(`build_unit_missing_quality_gates: unit '${t.unit}' declares \`outputs:\` in build-class stage '${t.stage}' but has no \`quality_gates:\` field \u2014 it would complete with nothing verifying its artifact. Add \`quality_gates:\` (an explicit empty list \`[]\` is allowed when the unit genuinely defers verification to a sibling test unit, but the field MUST be present so the omission is a deliberate, reviewable choice rather than a silent gap).`)}return n.length===0?{valid:!0}:{valid:!1,errors:n}}function aEt(e){let i={},s=new Set;for(let a of Object.keys(e))i[a]=0;function o(a){if(i[a]===1)return s.add(a),!0;if(i[a]===2)return!1;i[a]=1;let c=e[a]||[],u=!1;for(let l of c)l in e&&o(l)&&(s.add(a),u=!0);return i[a]=2,u}for(let a of Object.keys(e))i[a]===0&&o(a);return[...s].sort()}function d1(e){let t={...e};for(let n in t)t[n]instanceof Date&&(t[n]=t[n].toISOString());return t}function re(e){let t=n=>{let{data:r,content:i}=(0,Ct.default)(n);return{data:d1(r),body:i.trim()}};try{return t(e)}catch(n){if(!aI(n))throw n;let{text:r,removed:i}=fg(e);if(i.length===0)throw n;return ms(n,{context:"parseFrontmatter:dedup-recovery",removed_keys:i}),t(r)}}function Ug(e,t){if(!ue(e))return[];let n=t?.includeArchived===!0,r=[];for(let i of an(e)){let s=ne(e,i,"intent.md");if(!ue(s))continue;let{data:o}=re(Pe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function s3n(e,t){return Ug(e,t).map(n=>n.slug)}function gv(){if(!Ae())return null;let e=mr();if(!e)return null;let t=e.match(/^haiku\/([^/]+)\/([^/]+)$/);if(!t)return null;let n=t[1],r=t[2];return{slug:n,stage:r==="main"?null:r}}function De(e,t,n){let r=Pe(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,d1(s)))}function Kh(e,t){if(!ue(e))return;let n=Pe(e,"utf8"),r=(0,Ct.default)(n),i={...r.data},s=!1;for(let o of t)o in i&&(delete i[o],s=!0);s&&In(e,Ct.default.stringify(r.content,d1(i)))}function o3n(e,t,n,r,i){let s=Pa(e,t,n);ue(s)&&De(s,r,i);let o=ne(Br(),".haiku","worktrees",e,n);if(!ue(o))return;let a=ne(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);ue(a)&&De(a,r,i)}function WSt(e){let{data:t}=(0,Ct.default)(`--- ${e} --- -`);return t1(t)}function a3n(e,t){let n=t.split("."),r=e;for(let i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function C_(e){return de(e)?JSON.parse(Pe(e,"utf8")):{}}function ZL(e,t){Ol(ne(e,".."),{recursive:!0}),Mn(e,`${JSON.stringify(t,null,2)} -`)}function En(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function MD(){if(Ae())try{let e=ne(Wr(),".gitignore"),t=".haiku/worktrees/",n="";try{de(e)&&(n=Pe(e,"utf8"))}catch{}if(n.split(` +`);return d1(t)}function a3n(e,t){let n=t.split("."),r=e;for(let i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function jE(e){return ue(e)?JSON.parse(Pe(e,"utf8")):{}}function o1(e,t){Ml(ne(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} +`)}function _n(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function GD(){if(Ae())try{let e=ne(Br(),".gitignore"),t=".haiku/worktrees/",n="";try{ue(e)&&(n=Pe(e,"utf8"))}catch{}if(n.split(` `).map(a=>a.trim()).some(a=>a===t||a===".haiku/worktrees"))return;let i="# H\xB7AI\xB7K\xB7U engine worktree pool \u2014 each entry is a linked git worktree; never commit these.",s=n&&!n.endsWith(` `)?` -`:"";Mn(e,`${n}${s}${n?` +`:"";In(e,`${n}${s}${n?` `:""}${i} ${t} -`),ka("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),ka("git",["commit","-m","chore(haiku): gitignore engine worktree pool (.haiku/worktrees/)","--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function OSt(e){ka("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{ka("git",["rm","--cached","-r","--ignore-unmatch","-f","--",ne(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function GZ(e){if(!Ae())return{committed:!1,pushed:!1};try{ka("git",["add","-A","--",we(),"."],{encoding:"utf8",stdio:"pipe"}),ka("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return ka("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Ta,env:va}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function Dt(e){if(!Ae())return{committed:!1,pushed:!1};try{OSt(we()),ka("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return ka("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Ta,env:va}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function Cye(e){if(!Ae())return{committed:!1,pushed:!1};try{if(!ka("git",["status","--porcelain","--",we()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return Dt(e)}function Dg(e){if(!Ae())return{committed:!1};try{OSt(we()),ka("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=AKn("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function Mye(e,t,n){if(!Ae())return"";let r=hr();if(!r)return"";let i=`haiku/${e}/`;if(t==="intent"){if(!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected a branch under '${i}' but on '${r}'. Run \`git checkout haiku/${e}/main\` or the appropriate stage branch. Custom branch names break the H\xB7AI\xB7K\xB7U lifecycle.`}else if(t==="unit"&&n){let s=`haiku/${e}/${n}`;if(r!==s&&!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected '${s}' or a branch under '${i}' but on '${r}'. Ensure you're working in the correct worktree.`}return""}function UZ(e){return e.pushed||!e.committed?"":` +`),Na("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m","chore(haiku): gitignore engine worktree pool (.haiku/worktrees/)","--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function cEt(e){Na("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Na("git",["rm","--cached","-r","--ignore-unmatch","-f","--",ne(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function s5(e){if(!Ae())return{committed:!1,pushed:!1};try{Na("git",["add","-A","--",ve(),"."],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Na("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function wt(e){if(!Ae())return{committed:!1,pushed:!1};try{cEt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Na("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Aa,env:Ra}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function eSe(e){if(!Ae())return{committed:!1,pushed:!1};try{if(!Na("git",["status","--porcelain","--",ve()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function Fg(e){if(!Ae())return{committed:!1};try{cEt(ve()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=T9n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function tSe(e,t,n){if(!Ae())return"";let r=mr();if(!r)return"";let i=`haiku/${e}/`;if(t==="intent"){if(!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected a branch under '${i}' but on '${r}'. Run \`git checkout haiku/${e}/main\` or the appropriate stage branch. Custom branch names break the H\xB7AI\xB7K\xB7U lifecycle.`}else if(t==="unit"&&n){let s=`haiku/${e}/${n}`;if(r!==s&&!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected '${s}' or a branch under '${i}' but on '${r}'. Ensure you're working in the correct worktree.`}return""}function $Y(e){return e.pushed||!e.committed?"":` -\u26A0\uFE0F GIT PUSH FAILED: ${e.pushError||"unknown error"}. Run \`git pull --rebase && git push\` to sync with remote. If there are conflicts, resolve them then push again.`}function jZ(e,t){return t.pushed||!t.committed?e:{...e,push_failed:!0,push_error:t.pushError||"unknown error",message:`${e.message||""}. \u26A0\uFE0F GIT PUSH FAILED: ${t.pushError||"unknown error"}. Run \`git pull --rebase && git push\` to resolve.`}}function WL(e){let t=we(),n=ne(t,"intents",e,"intent.md");if(!de(n))return"";let{data:r}=re(Pe(n,"utf8"));return r.active_stage||""}function Xo(e,t){if(u_())return null;let n=mr(e,t);if(!n.ok){if(n.block==="dirty_tree"){let r=n.dirty_files||[],i=r.length>0?` +\u26A0\uFE0F GIT PUSH FAILED: ${e.pushError||"unknown error"}. Run \`git pull --rebase && git push\` to sync with remote. If there are conflicts, resolve them then push again.`}function e5(e,t){return t.pushed||!t.committed?e:{...e,push_failed:!0,push_error:t.pushError||"unknown error",message:`${e.message||""}. \u26A0\uFE0F GIT PUSH FAILED: ${t.pushError||"unknown error"}. Run \`git pull --rebase && git push\` to resolve.`}}function i1(e){let t=ve(),n=ne(t,"intents",e,"intent.md");if(!ue(n))return"";let{data:r}=re(Pe(n,"utf8"));return r.active_stage||""}function ea(e,t){if(hE())return null;let n=gr(e,t);if(!n.ok){if(n.block==="dirty_tree"){let r=n.dirty_files||[],i=r.length>0?` Files to commit: ${r.map(o=>` - ${o}`).join(` @@ -703,128 +702,128 @@ ${r.map(o=>` - ${o}`).join(` Steps: 1. \`git add ${r.length>0?r.join(" "):""}\` 2. \`git commit -m "haiku: wip on ${n.branch}"\` - 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function zZ(e,t){let n=we(),r=WL(e);if(r){let s=Qo(e,r,t);if(de(s))return{path:s,stage:r}}let i=ne(n,"intents",e,"stages");if(!de(i))return null;for(let s of un(i)){let o=Qo(e,s,t);if(de(o))return{path:o,stage:s}}return null}function YL(e,t,n){let r=n1(e,t);try{let i=Qo(e,t,n);if(!de(i))return r;let{data:s}=re(Pe(i,"utf8"));if((s.closes||[]).length>0&&!r.includes(WZ))return[...r,WZ]}catch{}return r}function n1(e,t){try{let n=we(),r=ne(n,"intents",e,"intent.md");if(!de(r))return[];let{data:i}=re(Pe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[ne(process.cwd(),".haiku","studios"),ne(o,"studios")]){let c=ne(a,s,"stages",t,"STAGE.md");if(!de(c))continue;let{data:u}=re(Pe(c,"utf8"));return u.hats||[]}}catch{}return[]}function FZ(e,t){try{let n=we(),r=ne(n,"intents",e,"intent.md");if(!de(r))return"";let{data:i}=re(Pe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[ne(process.cwd(),".haiku","studios"),ne(o,"studios")]){let c=ne(a,s,"stages",t,"STAGE.md");if(!de(c))continue;let u=Pe(c,"utf8"),l=re(u),{content:d}=(0,Ht.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Yr(e,t){if(t)try{let n=we(),r=ne(n,"intents",e,"intent.md");if(!de(r))return;let{data:i}=re(Pe(r,"utf8")),s=i.studio||"",o=i.active_stage||"",a="";if(o){let f=typeof i.mode=="string"&&i.mode.length>0?i.mode:"continuous";a=lv({slug:e,studio:s,stage:o,intentDir:ne(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=ne(vr(e,o),"units");if(de(f))for(let p of un(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(Pe(ne(f,p),"utf8"));if(!(typeof h.started_at=="string"&&h.started_at.length>0))continue;let y=Array.isArray(h.iterations)?h.iterations:[],g=y.length>0?y[y.length-1]:null;if(!(g!==null&&(g.result==="advance"||g.result==="closed"))){c=p.replace(".md",""),u=g!==null&&typeof g.hat=="string"?g.hat:null,l=y.length>0?y.length:1;break}}}let d=o;if(s&&o){let f=nn();for(let p of[ne(process.cwd(),".haiku","studios"),ne(f,"studios")]){let h=ne(p,s,"stages",o,"STAGE.md");if(!de(h))continue;let{data:m}=re(Pe(h,"utf8"));d=m.description||o;break}}rSt(t,{intent:e,studio:s,active_stage:o,phase:a,active_unit:c,hat:u,bolt:l,stage_description:d,updated_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z")})}catch{}}function U0(e){let t=e.iterations;if(Array.isArray(t)&&t.length>0){let r=t[t.length-1],i=e.approvals,s=i!==null&&typeof i=="object"&&Object.keys(i).length>0;return r&&r.result==="advance"&&s?"completed":"active"}let n=e.status;if(typeof n=="string"){let r=n.trim().toLowerCase();if(r==="completed"||r==="complete")return"completed";if(r==="active")return"active"}return"pending"}function Jf(e){let t=e.rejected_at;if(typeof t=="string"&&t.length>0)return"rejected";let n=e.closed_at,r=typeof n=="string"&&n.length>0?n:null,i=e.closed_by,s=typeof i=="string"&&i.length>0?i:null;if(r){if(s==="feedback-assessor")return"addressed";let c=e.resolution;return typeof c=="string"&&c==="answered"?"answered":typeof c=="string"&&c==="non_actionable"?"non_actionable":"closed"}let o=e.status;if(typeof o=="string"){let c=o.trim().toLowerCase();if(c==="rejected")return"rejected";if(c==="addressed")return"addressed";if(c==="answered")return"answered";if(c==="non_actionable")return"non_actionable";if(c==="closed")return"closed";if(c==="fixing")return"fixing"}if(s)return"fixing";let a=e.iterations;return Array.isArray(a)&&a.length>0?"fixing":"pending"}function KZ(e,t=()=>new Date().toISOString()){let n=e.status;if(n===void 0)return e;if(typeof n!="string")return delete e.status,e;let r=n.trim().toLowerCase();if(r==="")return delete e.status,e;switch(r){case"rejected":e.rejected_at||(e.rejected_at=t());break;case"addressed":e.closed_at||(e.closed_at=t()),e.closed_by||(e.closed_by="feedback-assessor");break;case"answered":e.closed_at||(e.closed_at=t()),e.resolution||(e.resolution="answered");break;case"closed":e.closed_at||(e.closed_at=t());break;case"fixing":case"pending":break;default:break}return delete e.status,e}function Dye(e){return l3n.has(e)?"human":"agent"}function d3n(e){return Dye(e)==="human"?"user":"agent"}function f3n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function ZZ(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function Lye(e){let t=ne(vr(e.slug,e.stage),"artifacts","design-direction");Ol(t,{recursive:!0});for(let s of un(t))if(/^dd-\d+-.*\.(png|jpe?g|webp)$/i.test(s))try{j0(ne(t,s))}catch{}let n=ZZ(e.archetype)||"selection",r=[],i=1;for(let s of e.screenshots){let o=s.screenshot_data_url.match(/^data:image\/(png|jpeg|webp);base64,([A-Za-z0-9+/=]+)$/);if(!o)continue;let a=o[1]==="jpeg"?"jpg":o[1],c=`dd-${r1(i)}-${n}.${a}`;Mn(ne(t,c),Buffer.from(o[2],"base64")),r.push({comment:s.comment,screenshot_path:`stages/${e.stage}/artifacts/design-direction/${c}`}),i++}try{let s=ne(fe(e.slug),"intent.md");if(de(s)){let o=Pe(s,"utf8"),c=re(o).data||{},u=c.design_directions&&typeof c.design_directions=="object"?c.design_directions:{};u[e.stage]={mode:"archetype",archetype:e.archetype,...e.comments?{comments:e.comments}:{},...r.length>0?{annotations:r}:{},at:En()},je(s,"design_directions",u)}}catch(s){console.error(`[haiku] failed to stamp design_directions on intent.md: ${s instanceof Error?s.message:String(s)}`)}try{let s=ne(vr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:En()};e.comments&&(o.comments=e.comments),r.length>0&&(o.annotations=r);let a=[];if(a.push(`# Design Direction \u2014 ${e.archetype}`),a.push(""),e.comments&&(a.push(e.comments.trim()),a.push("")),r.length>0){a.push("## Annotated screenshots"),a.push("");for(let c of r)a.push(`- \`${c.screenshot_path}\` \u2014 ${c.comment}`)}Ol(JL(s),{recursive:!0}),Mn(s,Ht.default.stringify(`${a.join(` + 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function o5(e,t){let n=ve(),r=i1(e);if(r){let s=Pa(e,r,t);if(ue(s))return{path:s,stage:r}}let i=ne(n,"intents",e,"stages");if(!ue(i))return null;for(let s of an(i)){let o=Pa(e,s,t);if(ue(o))return{path:o,stage:s}}return null}function Wye(e,t,n){return f1(e,t)}function f1(e,t){try{let n=ve(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(Pe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[ne(process.cwd(),".haiku","studios"),ne(o,"studios")]){let c=ne(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let{data:u}=re(Pe(c,"utf8"));return u.hats||[]}}catch{}return[]}function t5(e,t){try{let n=ve(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(Pe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[ne(process.cwd(),".haiku","studios"),ne(o,"studios")]){let c=ne(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let u=Pe(c,"utf8"),l=re(u),{content:d}=(0,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=ve(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(Pe(r,"utf8")),s=i.studio||"",o=i.active_stage||"",a="";if(o){let f=typeof i.mode=="string"&&i.mode.length>0?i.mode:"continuous";a=hv({slug:e,studio:s,stage:o,intentDir:ne(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=ne(ar(e,o),"units");if(ue(f))for(let p of an(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(Pe(ne(f,p),"utf8"));if(!(typeof h.started_at=="string"&&h.started_at.length>0))continue;let g=Array.isArray(h.iterations)?h.iterations:[],y=g.length>0?g[g.length-1]:null;if(!(y!==null&&(y.result==="advance"||y.result==="closed"))){c=p.replace(".md",""),u=y!==null&&typeof y.hat=="string"?y.hat:null,l=g.length>0?g.length:1;break}}}let d=o;if(s&&o){let f=nn();for(let p of[ne(process.cwd(),".haiku","studios"),ne(f,"studios")]){let h=ne(p,s,"stages",o,"STAGE.md");if(!ue(h))continue;let{data:m}=re(Pe(h,"utf8"));d=m.description||o;break}}DSt(t,{intent:e,studio:s,active_stage:o,phase:a,active_unit:c,hat:u,bolt:l,stage_description:d,updated_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z")})}catch{}}function B0(e){let t=e.iterations;if(Array.isArray(t)&&t.length>0){let r=t[t.length-1],i=e.approvals,s=i!==null&&typeof i=="object"&&Object.keys(i).length>0;return r&&r.result==="advance"&&s?"completed":"active"}let n=e.status;if(typeof n=="string"){let r=n.trim().toLowerCase();if(r==="completed"||r==="complete")return"completed";if(r==="active")return"active"}return"pending"}function ep(e){let t=e.rejected_at;if(typeof t=="string"&&t.length>0)return"rejected";let n=e.closed_at,r=typeof n=="string"&&n.length>0?n:null,i=e.closed_by,s=typeof i=="string"&&i.length>0?i:null;if(r){if(s==="feedback-assessor")return"addressed";let c=e.resolution;return typeof c=="string"&&c==="answered"?"answered":typeof c=="string"&&c==="non_actionable"?"non_actionable":"closed"}let o=e.status;if(typeof o=="string"){let c=o.trim().toLowerCase();if(c==="rejected")return"rejected";if(c==="addressed")return"addressed";if(c==="answered")return"answered";if(c==="non_actionable")return"non_actionable";if(c==="closed")return"closed";if(c==="fixing")return"fixing"}if(s)return"fixing";let a=e.iterations;return Array.isArray(a)&&a.length>0?"fixing":"pending"}function u5(e,t=()=>new Date().toISOString()){let n=e.status;if(n===void 0)return e;if(typeof n!="string")return delete e.status,e;let r=n.trim().toLowerCase();if(r==="")return delete e.status,e;switch(r){case"rejected":e.rejected_at||(e.rejected_at=t());break;case"addressed":e.closed_at||(e.closed_at=t()),e.closed_by||(e.closed_by="feedback-assessor");break;case"answered":e.closed_at||(e.closed_at=t()),e.resolution||(e.resolution="answered");break;case"closed":e.closed_at||(e.closed_at=t());break;case"fixing":case"pending":break;default:break}return delete e.status,e}function nSe(e){return l3n.has(e)?"human":"agent"}function d3n(e){return nSe(e)==="human"?"user":"agent"}function f3n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function l5(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function rSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction");Ml(t,{recursive:!0});for(let s of an(t))if(/^dd-\d+-.*\.(png|jpe?g|webp)$/i.test(s))try{G0(ne(t,s))}catch{}let n=l5(e.archetype)||"selection",r=[],i=1;for(let s of e.screenshots){let o=s.screenshot_data_url.match(/^data:image\/(png|jpeg|webp);base64,([A-Za-z0-9+/=]+)$/);if(!o)continue;let a=o[1]==="jpeg"?"jpg":o[1],c=`dd-${p1(i)}-${n}.${a}`;In(ne(t,c),Buffer.from(o[2],"base64")),r.push({comment:s.comment,screenshot_path:`stages/${e.stage}/artifacts/design-direction/${c}`}),i++}try{let s=ne(pe(e.slug),"intent.md");if(ue(s)){let o=Pe(s,"utf8"),c=re(o).data||{},u=c.design_directions&&typeof c.design_directions=="object"?c.design_directions:{};u[e.stage]={mode:"archetype",archetype:e.archetype,...e.comments?{comments:e.comments}:{},...r.length>0?{annotations:r}:{},at:_n()},De(s,"design_directions",u)}}catch(s){console.error(`[haiku] failed to stamp design_directions on intent.md: ${s instanceof Error?s.message:String(s)}`)}try{let s=ne(ar(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:_n()};e.comments&&(o.comments=e.comments),r.length>0&&(o.annotations=r);let a=[];if(a.push(`# Design Direction \u2014 ${e.archetype}`),a.push(""),e.comments&&(a.push(e.comments.trim()),a.push("")),r.length>0){a.push("## Annotated screenshots"),a.push("");for(let c of r)a.push(`- \`${c.screenshot_path}\` \u2014 ${c.comment}`)}Ml(z0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` `).trim()} -`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest: ${s instanceof Error?s.message:String(s)}`)}return{annotations:r,artifactsDir:t}}function Uye(e){let t=ne(vr(e.slug,e.stage),"artifacts","design-direction"),n=ne(t,"uploads");Ol(n,{recursive:!0});for(let s of un(n))if(/^up-\d+-.*\.(png|jpe?g|webp|svg|pdf|gif)$/i.test(s))try{j0(ne(n,s))}catch{}let r=[],i=1;for(let s of e.files){let o=s.data_url.match(/^data:(image\/(?:png|jpeg|webp|svg\+xml|gif)|application\/pdf);base64,([A-Za-z0-9+/=]+)$/);if(!o)continue;let a=o[1],c;a==="image/jpeg"?c="jpg":a==="image/svg+xml"?c="svg":a==="application/pdf"?c="pdf":c=a.replace(/^image\//,"");let u=ZZ(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${r1(i)}-${u}.${c}`;Mn(ne(n,l),Buffer.from(o[2],"base64"));let d={filename:s.filename,path:`stages/${e.stage}/artifacts/design-direction/uploads/${l}`,...s.caption?{caption:s.caption}:{}};r.push(d),i++}try{let s=ne(fe(e.slug),"intent.md");if(de(s)){let o=Pe(s,"utf8"),c=re(o).data||{},u=c.design_directions&&typeof c.design_directions=="object"?c.design_directions:{};u[e.stage]={mode:"upload",...e.comments?{comments:e.comments}:{},uploads:r,at:En()},je(s,"design_directions",u)}}catch(s){console.error(`[haiku] failed to stamp design_directions (upload) on intent.md: ${s instanceof Error?s.message:String(s)}`)}try{let s=ne(vr(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:En()};e.comments&&(o.comments=e.comments),r.length>0&&(o.uploads=r);let a=[];if(a.push("# Design Direction \u2014 Uploaded reference materials"),a.push(""),e.comments&&(a.push(e.comments.trim()),a.push("")),r.length>0){a.push("## Uploaded files"),a.push("");for(let c of r){let u=c.caption?` \u2014 ${c.caption}`:"";a.push(`- \`${c.path}\` (${c.filename})${u}`)}}Ol(JL(s),{recursive:!0}),Mn(s,Ht.default.stringify(`${a.join(` +`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest: ${s instanceof Error?s.message:String(s)}`)}return{annotations:r,artifactsDir:t}}function iSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction"),n=ne(t,"uploads");Ml(n,{recursive:!0});for(let s of an(n))if(/^up-\d+-.*\.(png|jpe?g|webp|svg|pdf|gif)$/i.test(s))try{G0(ne(n,s))}catch{}let r=[],i=1;for(let s of e.files){let o=s.data_url.match(/^data:(image\/(?:png|jpeg|webp|svg\+xml|gif)|application\/pdf);base64,([A-Za-z0-9+/=]+)$/);if(!o)continue;let a=o[1],c;a==="image/jpeg"?c="jpg":a==="image/svg+xml"?c="svg":a==="application/pdf"?c="pdf":c=a.replace(/^image\//,"");let u=l5(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${p1(i)}-${u}.${c}`;In(ne(n,l),Buffer.from(o[2],"base64"));let d={filename:s.filename,path:`stages/${e.stage}/artifacts/design-direction/uploads/${l}`,...s.caption?{caption:s.caption}:{}};r.push(d),i++}try{let s=ne(pe(e.slug),"intent.md");if(ue(s)){let o=Pe(s,"utf8"),c=re(o).data||{},u=c.design_directions&&typeof c.design_directions=="object"?c.design_directions:{};u[e.stage]={mode:"upload",...e.comments?{comments:e.comments}:{},uploads:r,at:_n()},De(s,"design_directions",u)}}catch(s){console.error(`[haiku] failed to stamp design_directions (upload) on intent.md: ${s instanceof Error?s.message:String(s)}`)}try{let s=ne(ar(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:_n()};e.comments&&(o.comments=e.comments),r.length>0&&(o.uploads=r);let a=[];if(a.push("# Design Direction \u2014 Uploaded reference materials"),a.push(""),e.comments&&(a.push(e.comments.trim()),a.push("")),r.length>0){a.push("## Uploaded files"),a.push("");for(let c of r){let u=c.caption?` \u2014 ${c.caption}`:"";a.push(`- \`${c.path}\` (${c.filename})${u}`)}}Ml(z0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` `).trim()} -`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest (upload): ${s instanceof Error?s.message:String(s)}`)}return{uploads:r,uploadsDir:n}}function $o(e,t){return t?ne(vr(e,t),"feedback"):ne(fe(e),"feedback")}function NSt(e){let{slug:t,stage:n,feedbackId:r,hat:i}=e;try{let s=$o(t,n);if(!de(s))return;let o=r.replace(/^FB-/i,""),a=un(s).find(g=>g.startsWith(o)&&g.endsWith(".md"));if(!a)return;let c=ne(s,a),u=Pe(c,"utf8"),l=(0,Ht.default)(u),d=l.data,f=Array.isArray(d.iterations)?d.iterations:[],p=f[f.length-1];if(p&&(p.result===null||p.result===void 0)&&p.hat===i)return;let h=f.reduce((g,E)=>{let S=E.bolt;return typeof S=="number"&&S>g?S:g},0),m=h>0?h:1;f.push({hat:i,started_at:En(),result:null,bolt:m});let y={...d,iterations:f};Mn(c,Ht.default.stringify(`${l.content.trimEnd()} -`,y))}catch{}}function jye(e){let{slug:t,stage:n,unit:r,hat:i}=e;try{let s=Qo(t,n,r);if(!de(s))return;let a=(0,Ht.default)(Pe(s,"utf8")).data,c=Array.isArray(a.iterations)?a.iterations:[],u=c[c.length-1];if(!u||u.result!==null||u.hat!==i||typeof u.dispatched_at=="string"&&u.dispatched_at.length>0)return;u.dispatched_at=En(),je(s,"iterations",c)}catch{}}function mSt(e,t){try{return C0(e,()=>{let n=fe(e),r=ne(n,"intent.md");if(!de(r))return null;let i=(0,Ht.default)(Pe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=zZ(e,t);if(!d)return null;let f=re(Pe(d.path,"utf8")),p=n1(e,d.stage),h=tv(f.data,p);if(!h)return null;let m=DI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return jye({slug:e,stage:d.stage,unit:t,hat:h.hat}),m}let o=Zf({slug:e,intentDir:n,studio:s});if(!o?.action||o.action.kind!=="start_unit_hat")return null;let a=o.action.stage,c=o.action.hat,u=o.action.units,l=o.action.terminal;return!a||!c||!Array.isArray(u)||u.length===0?null:DI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function _ye(e,t){let n=fe(e),r=de(ne(n,"intent.md"))?(0,Ht.default)(Pe(ne(n,"intent.md"),"utf8")).data:{},i=_s(e,t,n)??"",s=or(r,t),o=s.indexOf(i),a=o>=0?s.slice(0,o+1):[],c=[];for(let d of a)c.push({stage:d,dir:ne(n,"stages",d,"feedback")});c.push({stage:"",dir:ne(n,"feedback")});let u=[];for(let{stage:d,dir:f}of c){if(!de(f))continue;let p=un(f).filter(h=>h.endsWith(".md")).sort();for(let h of p){let m;try{m=re(Pe(ne(f,h),"utf8")).data}catch{m=void 0}if(!m||typeof m.status=="string"&&(m.status==="closed"||m.status==="rejected")||m.closed_at||m.rejected_at||(Array.isArray(m.iterations)?m.iterations:[]).length>0)continue;let g=d?PT(t,d):hg(t);if(g.length===0)continue;let E=h.match(/^(\d+)-/)?.[1]??"";E&&u.push({stage:d,feedbackId:`FB-${E.padStart(3,"0")}`,firstHat:g[0],terminal:g.length===1,severity:typeof m.severity=="string"?m.severity:null})}}if(u.length===0)return null;let l=[...u].sort((d,f)=>Kc(d.severity)-Kc(f.severity))[0];return NSt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),CI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function PSt(e,t,n){if(n<=0)return[];let r=fe(e),i=_s(e,t,r)??"";if(!i)return[];let s=n1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=ne(vr(e,i),"units");if(!de(u))return[];let l=un(u).filter(h=>h.endsWith(".md")).sort(),d=[];for(let h of l){let m=ne(u,h),y;try{y=re(Pe(m,"utf8")).data}catch{y=void 0}y&&d.push({name:h.replace(/\.md$/,""),path:m,fm:y})}let f=new Set(d.filter(h=>{let m=Array.isArray(h.fm.iterations)?h.fm.iterations:[],y=m[m.length-1];return y&&y.result==="advance"&&y.hat===a}).map(h=>h.name)),p=[];for(let h of d){if(p.length>=n)break;h.fm.started_at!=null||(Array.isArray(h.fm.iterations)?h.fm.iterations:[]).length>0||!(Array.isArray(h.fm.depends_on)?h.fm.depends_on:[]).every(E=>f.has(E))||!("inputs"in h.fm)||(Array.isArray(h.fm.inputs)?h.fm.inputs:[]).some(E=>!M_(e,h.name,E))||(je(h.path,"started_at",En()),KL(h.path,o),jye({slug:e,stage:i,unit:h.name,hat:o}),p.push(DI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&si(e),p}function CSt(e,t,n){let r=n1(e,t);if(r.length===0)return 0;let i=ne(vr(e,t),"units");if(!de(i))return 0;let s=0;for(let o of un(i).filter(a=>a.endsWith(".md"))){if(o.replace(/\.md$/,"")===n)continue;let c;try{c=re(Pe(ne(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||tv(c,r)!==null&&s++}return s}function MSt(e){if(!de(e))return 1;let t=un(e).filter(r=>r.endsWith(".md")),n=0;for(let r of t){let i=r.match(/^(\d+)-/);if(i){let s=Number.parseInt(i[1],10);s>n&&(n=s)}}return n+1}function r1(e){return e.toString().padStart(3,"0")}function fc(e,t,n){let r=$o(e,t);Ol(r,{recursive:!0});let i=MSt(r),s=r1(i),o=ZZ(n.title),a=`${s}-${o}.md`,c=ne(r,a),u=n.origin||"agent",l=n.authorType??Dye(u),d=n.author||d3n(u),f=new Set(["blocker","high","medium","low"]),p=typeof n.severity=="string"&&f.has(n.severity)?n.severity:null,h=0;if(t){let A=D0(e,t),R=de(A)?C_(A):{};h=kSt(R,e,t)}let m=null;if(n.attachmentDataUrl){let A=n.attachmentDataUrl.match(/^data:image\/(png|jpeg|webp);base64,([A-Za-z0-9+/=]+)$/);if(A){let R=A[1];m=`${s}-${o}.${R==="jpeg"?"jpg":R}`;let x=ne(r,m);Mn(x,Buffer.from(A[2],"base64"))}}let y=iv(n.body),g=m?`${y.trim()} +`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest (upload): ${s instanceof Error?s.message:String(s)}`)}return{uploads:r,uploadsDir:n}}function lo(e,t){return t?ne(ar(e,t),"feedback"):ne(pe(e),"feedback")}function lEt(e){let{slug:t,stage:n,feedbackId:r,hat:i}=e;try{let s=lo(t,n);if(!ue(s))return;let o=r.replace(/^FB-/i,""),a=an(s).find(y=>y.startsWith(o)&&y.endsWith(".md"));if(!a)return;let c=ne(s,a),u=Pe(c,"utf8"),l=(0,Ct.default)(u),d=l.data,f=Array.isArray(d.iterations)?d.iterations:[],p=f[f.length-1];if(p&&(p.result===null||p.result===void 0)&&p.hat===i)return;let h=f.reduce((y,E)=>{let S=E.bolt;return typeof S=="number"&&S>y?S:y},0),m=h>0?h:1;f.push({hat:i,started_at:_n(),result:null,bolt:m});let g={...d,iterations:f};In(c,Ct.default.stringify(`${l.content.trimEnd()} +`,g))}catch{}}function sSe(e){let{slug:t,stage:n,unit:r,hat:i}=e;try{let s=Pa(t,n,r);if(!ue(s))return;let a=(0,Ct.default)(Pe(s,"utf8")).data,c=Array.isArray(a.iterations)?a.iterations:[],u=c[c.length-1];if(!u||u.result!==null||u.hat!==i||typeof u.dispatched_at=="string"&&u.dispatched_at.length>0)return;u.dispatched_at=_n(),De(s,"iterations",c)}catch{}}function KSt(e,t){try{return F0(e,()=>{let n=pe(e),r=ne(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(Pe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=o5(e,t);if(!d)return null;let f=re(Pe(d.path,"utf8")),p=f1(e,d.stage),h=iv(f.data,p);if(!h)return null;let m=jI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return sSe({slug:e,stage:d.stage,unit:t,hat:h.hat}),m}let o=Xf({slug:e,intentDir:n,studio:s});if(!o?.action||o.action.kind!=="start_unit_hat")return null;let a=o.action.stage,c=o.action.hat,u=o.action.units,l=o.action.terminal;return!a||!c||!Array.isArray(u)||u.length===0?null:jI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function jye(e,t){let n=pe(e),r=ue(ne(n,"intent.md"))?(0,Ct.default)(Pe(ne(n,"intent.md"),"utf8")).data:{},i=ai(e,t,n)??"",s=wn(r,t),o=s.indexOf(i),a=o>=0?s.slice(0,o+1):[],c=[];for(let d of a)c.push({stage:d,dir:ne(n,"stages",d,"feedback")});c.push({stage:"",dir:ne(n,"feedback")});let u=[];for(let{stage:d,dir:f}of c){if(!ue(f))continue;let p=an(f).filter(h=>h.endsWith(".md")).sort();for(let h of p){let m;try{m=re(Pe(ne(f,h),"utf8")).data}catch{m=void 0}if(!m||typeof m.status=="string"&&(m.status==="closed"||m.status==="rejected")||m.closed_at||m.rejected_at||(Array.isArray(m.iterations)?m.iterations:[]).length>0)continue;let y=d?Sg(t,d):Uf(t);if(y.length===0)continue;let E=h.match(/^(\d+)-/)?.[1]??"";E&&u.push({stage:d,feedbackId:`FB-${E.padStart(3,"0")}`,firstHat:y[0],terminal:y.length===1,severity:typeof m.severity=="string"?m.severity:null})}}if(u.length===0)return null;let l=[...u].sort((d,f)=>Jc(d.severity)-Jc(f.severity))[0];return lEt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),FI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function dEt(e,t,n){if(n<=0)return[];let r=pe(e),i=ai(e,t,r)??"";if(!i)return[];let s=f1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=ne(ar(e,i),"units");if(!ue(u))return[];let l=an(u).filter(h=>h.endsWith(".md")).sort(),d=[];for(let h of l){let m=ne(u,h),g;try{g=re(Pe(m,"utf8")).data}catch{g=void 0}g&&d.push({name:h.replace(/\.md$/,""),path:m,fm:g})}let f=new Set(d.filter(h=>{let m=Array.isArray(h.fm.iterations)?h.fm.iterations:[],g=m[m.length-1];return g&&g.result==="advance"&&g.hat===a}).map(h=>h.name)),p=[];for(let h of d){if(p.length>=n)break;h.fm.started_at!=null||(Array.isArray(h.fm.iterations)?h.fm.iterations:[]).length>0||!(Array.isArray(h.fm.depends_on)?h.fm.depends_on:[]).every(E=>f.has(E))||!("inputs"in h.fm)||(Array.isArray(h.fm.inputs)?h.fm.inputs:[]).some(E=>!Vh(e,h.name,E))||(De(h.path,"started_at",_n()),s1(h.path,o),sSe({slug:e,stage:i,unit:h.name,hat:o}),p.push(jI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&ci(e),p}function fEt(e,t,n){let r=f1(e,t);if(r.length===0)return 0;let i=ne(ar(e,t),"units");if(!ue(i))return 0;let s=0;for(let o of an(i).filter(a=>a.endsWith(".md"))){if(o.replace(/\.md$/,"")===n)continue;let c;try{c=re(Pe(ne(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||iv(c,r)!==null&&s++}return s}function pEt(e){if(!ue(e))return 1;let t=an(e).filter(r=>r.endsWith(".md")),n=0;for(let r of t){let i=r.match(/^(\d+)-/);if(i){let s=Number.parseInt(i[1],10);s>n&&(n=s)}}return n+1}function p1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Ml(r,{recursive:!0});let i=pEt(r),s=p1(i),o=l5(n.title),a=`${s}-${o}.md`,c=ne(r,a),u=n.origin||"agent",l=n.authorType??nSe(u),d=n.author||d3n(u),f=new Set(["blocker","high","medium","low"]),p=typeof n.severity=="string"&&f.has(n.severity)?n.severity:null,h=0;if(t){let A=H0(e,t),R=ue(A)?jE(A):{};h=sEt(R,e,t)}let m=null;if(n.attachmentDataUrl){let A=n.attachmentDataUrl.match(/^data:image\/(png|jpeg|webp);base64,([A-Za-z0-9+/=]+)$/);if(A){let R=A[1];m=`${s}-${o}.${R==="jpeg"?"jpg":R}`;let k=ne(r,m);In(k,Buffer.from(A[2],"base64"))}}let g=cv(n.body),y=m?`${g.trim()} ![annotation](/api/feedback-attachment/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${encodeURIComponent(m)}) -`:y,E=new Set(["question","inline_fix","stage_revisit"]),S=typeof n.resolution=="string"&&E.has(n.resolution)?n.resolution:null,_={title:n.title,status:"pending",origin:u,...p?{severity:p}:{},author:d,author_type:l,created_at:En(),iteration:h,visit:h,source_ref:n.source_ref??null,closed_by:null,bolt:0,triaged_at:n.triaged_at!==void 0?n.triaged_at:l!=="human"?En():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:f3n(n.targetInvalidates,u)},...m?{attachment:m}:{},...n.inlineAnchor?{inline_anchor:{selected_text:n.inlineAnchor.selectedText,paragraph:n.inlineAnchor.paragraph,location:n.inlineAnchor.location,...n.inlineAnchor.commentId?{comment_id:n.inlineAnchor.commentId}:{},...n.inlineAnchor.filePath?{file_path:n.inlineAnchor.filePath}:{},...n.inlineAnchor.contentSha?{content_sha:n.inlineAnchor.contentSha}:{}}}:{}},b=Ht.default.stringify(` -${g} -`,_);Mn(c,b);let T=t?`.haiku/intents/${e}/stages/${t}/feedback/${a}`:`.haiku/intents/${e}/feedback/${a}`;return{feedback_id:`FB-${s}`,file:T,num:i}}function yo(e,t){let n=$o(e,t);if(!de(n))return[];let r=un(n).filter(s=>s.endsWith(".md")).sort(),i=[];for(let s of r){let o=s.match(/^(\d+)-(.+)\.md$/);if(!o)continue;let a=Number.parseInt(o[1],10),c=o[2],u=Pe(ne(n,s),"utf8"),{data:l,body:d}=re(u),f=l.resolution,p=typeof f=="string"&&f.length>0&&f!=="null"?f:null,h=l.replies,m=Array.isArray(h)?h.filter(y=>typeof y=="object"&&y!==null).map(y=>({author:typeof y.author=="string"?y.author:"unknown",author_type:y.author_type==="agent"?"agent":"human",body:typeof y.body=="string"?y.body:"",created_at:typeof y.created_at=="string"?y.created_at:""})):[];i.push({id:`FB-${r1(a)}`,num:a,slug:c,file:t?`.haiku/intents/${e}/stages/${t}/feedback/${s}`:`.haiku/intents/${e}/feedback/${s}`,title:l.title||"",body:d,status:Jf(l),origin:l.origin||"agent",severity:l.severity||null,author:l.author||"agent",author_type:l.author_type||"agent",created_at:l.created_at||"",visit:l.visit||0,source_ref:l.source_ref||null,closed_by:l.closed_by||null,closed_at:l.closed_at||null,bolt:typeof l.bolt=="number"?l.bolt:0,triaged_at:(()=>{let y=typeof l.triaged_at=="string"&&l.triaged_at.length>0?l.triaged_at:null;if(y)return y;let g=l.author_type||"",E=l.created_at||"";return g==="agent"&&E?E:null})(),resolution:p,replies:m,inline_anchor:m3n(l),iterations:p3n(l),closure_reply:(()=>{let y=l.closure_reply;if(!y||typeof y!="object")return null;let g=y,E=typeof g.text=="string"?g.text:"",S=typeof g.at=="string"?g.at:"";return!E||!S?null:{text:E,at:S}})(),closure_reply_unread:typeof l.closure_reply_unread=="boolean"?l.closure_reply_unread:!1,targets:(()=>{let y=l.targets;if(!y||typeof y!="object")return null;let g=y,E=typeof g.unit=="string"?g.unit:null,S=Array.isArray(g.invalidates)?g.invalidates.filter(_=>typeof _=="string"):[];return{unit:E,invalidates:S}})()})}return i}function p3n(e){let t=e.iterations;if(!Array.isArray(t))return[];let n=[];for(let r of t){if(!(r&&typeof r=="object"))continue;let i=r,s=typeof i.bolt=="number"?i.bolt:0,o=typeof i.hat=="string"?i.hat:"";if(!o)continue;let a=i.result,c=a==="advanced"||a==="closed"||a==="reopened"||a==="rejected";n.push({bolt:s,hat:o,...typeof i.started_at=="string"?{started_at:i.started_at}:{},...typeof i.completed_at=="string"?{completed_at:i.completed_at}:{},...c?{result:a}:{},...typeof i.commit=="string"?{commit:i.commit}:{},...typeof i.message=="string"?{message:i.message}:{},...typeof i.reason=="string"?{reason:i.reason}:{}})}return n}function h3n(e,t,n,r){let i=$o(e,t);if(!de(i))return;let s=n.replace(/^FB-/,""),o=un(i).find(p=>p.startsWith(`${s}-`)&&p.endsWith(".md"));if(!o)return;let a=ne(i,o),c=Pe(a,"utf8"),u=(0,Ht.default)(c),d=[...Array.isArray(u.data.iterations)?u.data.iterations:[],{bolt:r.bolt,hat:r.hat,...r.started_at?{started_at:r.started_at}:{},...r.completed_at?{completed_at:r.completed_at}:{},...r.result?{result:r.result}:{},...r.commit?{commit:r.commit}:{},...r.reason?{reason:r.reason}:{}}],f={...u.data,iterations:d};Mn(a,Ht.default.stringify(u.content,t1(f)))}function m3n(e){let t=e.inline_anchor;if(!(t&&typeof t=="object"))return null;let n=t,r=n.selected_text??n.selectedText,i=n.paragraph,s=n.location;return typeof r!="string"||typeof i!="number"||typeof s!="string"?null:{selected_text:r,paragraph:i,location:s,...typeof n.comment_id=="string"?{comment_id:n.comment_id}:{},...typeof n.file_path=="string"?{file_path:n.file_path}:{},...typeof n.content_sha=="string"?{content_sha:n.content_sha}:{}}}function g3n(e,t){return yo(e,t).filter(n=>n.status==="pending"||n.status==="fixing").length}function mc(e,t,n){let r=$o(e,t);if(!de(r))return null;let i=n.match(/^(?:FB-)?(\d+)$/i);if(!i)return null;let s=Number.parseInt(i[1],10),o=un(r).filter(c=>{if(!c.endsWith(".md"))return!1;let u=c.match(/^(\d+)-/);return!!u&&Number.parseInt(u[1],10)===s}).sort();if(o.length===0)return null;let a=c=>{let u=re(Pe(ne(r,c),"utf8"));return{path:ne(r,c),filename:c,data:u.data,body:u.body}};if(o.length===1)return a(o[0]);for(let c of o){let u=a(c),l=Jf(u.data);if(l!=="closed"&&l!=="rejected")return u}return a(o[0])}function DSt(e,t,n,r){let i=mc(e,t,n);if(!i)return null;let s=En(),o={...i.data,triaged_at:s};if(t===r){KZ(o);let S=Ht.default.stringify(` +`:g,E=new Set(["question","inline_fix","stage_revisit"]),S=typeof n.resolution=="string"&&E.has(n.resolution)?n.resolution:null,_={title:n.title,status:"pending",origin:u,...p?{severity:p}:{},author:d,author_type:l,created_at:_n(),iteration:h,visit:h,source_ref:n.source_ref??null,closed_by:null,bolt:0,triaged_at:n.triaged_at!==void 0?n.triaged_at:l!=="human"?_n():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:f3n(n.targetInvalidates,u)},...m?{attachment:m}:{},...n.inlineAnchor?{inline_anchor:{selected_text:n.inlineAnchor.selectedText,paragraph:n.inlineAnchor.paragraph,location:n.inlineAnchor.location,...n.inlineAnchor.commentId?{comment_id:n.inlineAnchor.commentId}:{},...n.inlineAnchor.filePath?{file_path:n.inlineAnchor.filePath}:{},...n.inlineAnchor.contentSha?{content_sha:n.inlineAnchor.contentSha}:{}}}:{}},b=Ct.default.stringify(` +${y} +`,_);In(c,b);let T=t?`.haiku/intents/${e}/stages/${t}/feedback/${a}`:`.haiku/intents/${e}/feedback/${a}`;return{feedback_id:`FB-${s}`,file:T,num:i}}function Us(e,t){let n=lo(e,t);if(!ue(n))return[];let r=an(n).filter(s=>s.endsWith(".md")).sort(),i=[];for(let s of r){let o=s.match(/^(\d+)-(.+)\.md$/);if(!o)continue;let a=Number.parseInt(o[1],10),c=o[2],u=Pe(ne(n,s),"utf8"),{data:l,body:d}=re(u),f=l.resolution,p=typeof f=="string"&&f.length>0&&f!=="null"?f:null,h=l.replies,m=Array.isArray(h)?h.filter(g=>typeof g=="object"&&g!==null).map(g=>({author:typeof g.author=="string"?g.author:"unknown",author_type:g.author_type==="agent"?"agent":"human",body:typeof g.body=="string"?g.body:"",created_at:typeof g.created_at=="string"?g.created_at:""})):[];i.push({id:`FB-${p1(a)}`,num:a,slug:c,file:t?`.haiku/intents/${e}/stages/${t}/feedback/${s}`:`.haiku/intents/${e}/feedback/${s}`,title:l.title||"",body:d,status:ep(l),origin:l.origin||"agent",severity:l.severity||null,author:l.author||"agent",author_type:l.author_type||"agent",created_at:l.created_at||"",visit:l.visit||0,source_ref:l.source_ref||null,closed_by:l.closed_by||null,closed_at:l.closed_at||null,bolt:typeof l.bolt=="number"?l.bolt:0,triaged_at:(()=>{let g=typeof l.triaged_at=="string"&&l.triaged_at.length>0?l.triaged_at:null;if(g)return g;let y=l.author_type||"",E=l.created_at||"";return y==="agent"&&E?E:null})(),resolution:p,replies:m,inline_anchor:m3n(l),iterations:p3n(l),closure_reply:(()=>{let g=l.closure_reply;if(!g||typeof g!="object")return null;let y=g,E=typeof y.text=="string"?y.text:"",S=typeof y.at=="string"?y.at:"";return!E||!S?null:{text:E,at:S}})(),closure_reply_unread:typeof l.closure_reply_unread=="boolean"?l.closure_reply_unread:!1,targets:(()=>{let g=l.targets;if(!g||typeof g!="object")return null;let y=g,E=typeof y.unit=="string"?y.unit:null,S=Array.isArray(y.invalidates)?y.invalidates.filter(_=>typeof _=="string"):[];return{unit:E,invalidates:S}})()})}return i}function p3n(e){let t=e.iterations;if(!Array.isArray(t))return[];let n=[];for(let r of t){if(!(r&&typeof r=="object"))continue;let i=r,s=typeof i.bolt=="number"?i.bolt:0,o=typeof i.hat=="string"?i.hat:"";if(!o)continue;let a=i.result,c=a==="advanced"||a==="closed"||a==="reopened"||a==="rejected";n.push({bolt:s,hat:o,...typeof i.started_at=="string"?{started_at:i.started_at}:{},...typeof i.completed_at=="string"?{completed_at:i.completed_at}:{},...c?{result:a}:{},...typeof i.commit=="string"?{commit:i.commit}:{},...typeof i.message=="string"?{message:i.message}:{},...typeof i.reason=="string"?{reason:i.reason}:{}})}return n}function h3n(e,t,n,r){let i=lo(e,t);if(!ue(i))return;let s=n.replace(/^FB-/,""),o=an(i).find(p=>p.startsWith(`${s}-`)&&p.endsWith(".md"));if(!o)return;let a=ne(i,o),c=Pe(a,"utf8"),u=(0,Ct.default)(c),d=[...Array.isArray(u.data.iterations)?u.data.iterations:[],{bolt:r.bolt,hat:r.hat,...r.started_at?{started_at:r.started_at}:{},...r.completed_at?{completed_at:r.completed_at}:{},...r.result?{result:r.result}:{},...r.commit?{commit:r.commit}:{},...r.reason?{reason:r.reason}:{}}],f={...u.data,iterations:d};In(a,Ct.default.stringify(u.content,d1(f)))}function m3n(e){let t=e.inline_anchor;if(!(t&&typeof t=="object"))return null;let n=t,r=n.selected_text??n.selectedText,i=n.paragraph,s=n.location;return typeof r!="string"||typeof i!="number"||typeof s!="string"?null:{selected_text:r,paragraph:i,location:s,...typeof n.comment_id=="string"?{comment_id:n.comment_id}:{},...typeof n.file_path=="string"?{file_path:n.file_path}:{},...typeof n.content_sha=="string"?{content_sha:n.content_sha}:{}}}function g3n(e,t){return Us(e,t).filter(n=>n.status==="pending"||n.status==="fixing").length}function Sc(e,t,n){let r=lo(e,t);if(!ue(r))return null;let i=n.match(/^(?:FB-)?(\d+)$/i);if(!i)return null;let s=Number.parseInt(i[1],10),o=an(r).filter(c=>{if(!c.endsWith(".md"))return!1;let u=c.match(/^(\d+)-/);return!!u&&Number.parseInt(u[1],10)===s}).sort();if(o.length===0)return null;let a=c=>{let u=re(Pe(ne(r,c),"utf8"));return{path:ne(r,c),filename:c,data:u.data,body:u.body}};if(o.length===1)return a(o[0]);for(let c of o){let u=a(c),l=ep(u.data);if(l!=="closed"&&l!=="rejected")return u}return a(o[0])}function hEt(e,t,n,r){let i=Sc(e,t,n);if(!i)return null;let s=_n(),o={...i.data,triaged_at:s};if(t===r){u5(o);let S=Ct.default.stringify(` ${i.body.trim()} -`,o);Mn(i.path,S);let _=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,b=o.id;return{feedback_id:typeof b=="string"&&b.length>0?b:LSt(i.filename),file:_,moved:!1,triaged_at:s}}let a=$o(e,r);Ol(a,{recursive:!0});let c=MSt(a),u=r1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=ne(a,f),h=$o(e,t),m=i.filename.match(/^(\d+)-/),y=m?m[1]:null;if(y)for(let S of["png","jpg","jpeg","webp"]){let _=ne(h,`${y}-${d}.${S}`);if(de(_)){let b=ne(a,`${u}-${d}.${S}`);if(de(b))throw new Error(`moveFeedbackFile: refusing to overwrite existing attachment '${b}' \u2014 clean it up manually before retrying.`)}}let g=Ht.default.stringify(` +`,o);In(i.path,S);let _=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,b=o.id;return{feedback_id:typeof b=="string"&&b.length>0?b:mEt(i.filename),file:_,moved:!1,triaged_at:s}}let a=lo(e,r);Ml(a,{recursive:!0});let c=pEt(a),u=p1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=ne(a,f),h=lo(e,t),m=i.filename.match(/^(\d+)-/),g=m?m[1]:null;if(g)for(let S of["png","jpg","jpeg","webp"]){let _=ne(h,`${g}-${d}.${S}`);if(ue(_)){let b=ne(a,`${u}-${d}.${S}`);if(ue(b))throw new Error(`moveFeedbackFile: refusing to overwrite existing attachment '${b}' \u2014 clean it up manually before retrying.`)}}let y=Ct.default.stringify(` ${i.body.trim()} -`,o);if(Mn(p,g),y)for(let S of["png","jpg","jpeg","webp"]){let _=ne(h,`${y}-${d}.${S}`);if(de(_)){let b=ne(a,`${u}-${d}.${S}`);gSt(_,b);let T=i.body.replace(new RegExp(`/api/feedback-attachment/[^/]+/[^/]+/${y}-${d}\\.${S}`,"g"),`/api/feedback-attachment/${encodeURIComponent(e)}/${encodeURIComponent(r)}/${u}-${d}.${S}`);T!==i.body&&Mn(p,Ht.default.stringify(` +`,o);if(In(p,y),g)for(let S of["png","jpg","jpeg","webp"]){let _=ne(h,`${g}-${d}.${S}`);if(ue(_)){let b=ne(a,`${u}-${d}.${S}`);YSt(_,b);let T=i.body.replace(new RegExp(`/api/feedback-attachment/[^/]+/[^/]+/${g}-${d}\\.${S}`,"g"),`/api/feedback-attachment/${encodeURIComponent(e)}/${encodeURIComponent(r)}/${u}-${d}.${S}`);T!==i.body&&In(p,Ct.default.stringify(` ${T.trim()} -`,o))}}j0(i.path);let E=r?`.haiku/intents/${e}/stages/${r}/feedback/${f}`:`.haiku/intents/${e}/feedback/${f}`;return{feedback_id:`FB-${u}`,file:E,moved:!0,triaged_at:s}}function LSt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function Fd(e){return`FB-${e.toString().padStart(3,"0")}`}function Fye(e,t,n,r,i="agent"){let s=mc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r.status===void 0&&r.closed_by===void 0&&r.resolution===void 0)return{ok:!1,error:"Error: at least one of 'status' / 'closed_by' / 'resolution' must be provided"};if(r.resolution!==void 0&&r.resolution!==null&&!new Set(["question","inline_fix","stage_revisit"]).has(r.resolution))return{ok:!1,error:"Error: resolution must be one of: question, inline_fix, stage_revisit (or null to clear). For cross-stage routing, call `haiku_feedback_move` to relocate the FB instead."};if(r.status!==void 0&&!D_.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${D_.join(", ")}`};if(i==="agent"&&typeof r.closed_by=="string"&&r.closed_by.length>0&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot close human-authored feedback. Only the original author may set `closed_by` via the review UI."};if(i==="agent"&&r.status==="closed"&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot set status='closed' on human-authored feedback. Only the original author may close the item, via the review UI."};if(typeof r.closed_by=="string"&&/^unit-\d+[-_]/i.test(r.closed_by)&&t){let c=r.closed_by.replace(/\.md$/,""),u=ne(vr(e,t),"units",`${c}.md`);if(!de(u))return{ok:!1,error:`Error: closed_by='${r.closed_by}' references a unit that does not exist at stages/${t}/units/${c}.md. Agents cannot mark findings closed via a ghost unit. Either create the unit spec first (additive elaboration), or close via a fix-loop marker (e.g. 'fix-loop:${n}:bolt-N').`}}let o=[],a={...s.data};return r.status!==void 0&&(a.status=r.status,o.push("status")),r.closed_by!==void 0&&(r.closed_by===null?delete a.closed_by:a.closed_by=r.closed_by,o.push("closed_by")),r.resolution!==void 0&&(a.resolution=r.resolution,o.push("resolution")),KZ(a),Mn(s.path,Ht.default.stringify(` +`,o))}}G0(i.path);let E=r?`.haiku/intents/${e}/stages/${r}/feedback/${f}`:`.haiku/intents/${e}/feedback/${f}`;return{feedback_id:`FB-${u}`,file:E,moved:!0,triaged_at:s}}function mEt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function qd(e){return`FB-${e.toString().padStart(3,"0")}`}function oSe(e,t,n,r,i="agent"){let s=Sc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r.status===void 0&&r.closed_by===void 0&&r.resolution===void 0)return{ok:!1,error:"Error: at least one of 'status' / 'closed_by' / 'resolution' must be provided"};if(r.resolution!==void 0&&r.resolution!==null&&!new Set(["question","inline_fix","stage_revisit"]).has(r.resolution))return{ok:!1,error:"Error: resolution must be one of: question, inline_fix, stage_revisit (or null to clear). For cross-stage routing, call `haiku_feedback_move` to relocate the FB instead."};if(r.status!==void 0&&!HE.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${HE.join(", ")}`};if(i==="agent"&&typeof r.closed_by=="string"&&r.closed_by.length>0&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot close human-authored feedback. Only the original author may set `closed_by` via the review UI."};if(i==="agent"&&r.status==="closed"&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot set status='closed' on human-authored feedback. Only the original author may close the item, via the review UI."};if(typeof r.closed_by=="string"&&/^unit-\d+[-_]/i.test(r.closed_by)&&t){let c=r.closed_by.replace(/\.md$/,""),u=ne(ar(e,t),"units",`${c}.md`);if(!ue(u))return{ok:!1,error:`Error: closed_by='${r.closed_by}' references a unit that does not exist at stages/${t}/units/${c}.md. Agents cannot mark findings closed via a ghost unit. Either create the unit spec first (additive elaboration), or close via a fix-loop marker (e.g. 'fix-loop:${n}:bolt-N').`}}let o=[],a={...s.data};return r.status!==void 0&&(a.status=r.status,o.push("status")),r.closed_by!==void 0&&(r.closed_by===null?delete a.closed_by:a.closed_by=r.closed_by,o.push("closed_by")),r.resolution!==void 0&&(a.resolution=r.resolution,o.push("resolution")),u5(a),In(s.path,Ct.default.stringify(` ${s.body} -`,a)),{ok:!0,updated_fields:o}}function Hye(e,t,n,r,i={}){let s=mc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};let a=iv(r.body).trim();if(a.length===0)return{ok:!1,error:"Error: reply body cannot be empty"};let c={author:r.author||"unknown",author_type:r.author_type,body:a,created_at:En()},l=[...Array.isArray(s.data.replies)?s.data.replies:[],c],d={...s.data,replies:l};return i.close_as_answered&&(d.closed_at||(d.closed_at=new Date().toISOString()),d.resolution||(d.resolution="answered")),Mn(s.path,Ht.default.stringify(` +`,a)),{ok:!0,updated_fields:o}}function aSe(e,t,n,r,i={}){let s=Sc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};let a=cv(r.body).trim();if(a.length===0)return{ok:!1,error:"Error: reply body cannot be empty"};let c={author:r.author||"unknown",author_type:r.author_type,body:a,created_at:_n()},l=[...Array.isArray(s.data.replies)?s.data.replies:[],c],d={...s.data,replies:l};return i.close_as_answered&&(d.closed_at||(d.closed_at=new Date().toISOString()),d.resolution||(d.resolution="answered")),In(s.path,Ct.default.stringify(` ${s.body} -`,d)),{ok:!0,reply_index:l.length-1,status:Jf(d)}}function y3n(e,t,n){let r=mc(e,t,n);if(!r)return null;let s=(typeof r.data.bolt=="number"?r.data.bolt:0)+1,o={...r.data,bolt:s,status:"fixing"};return Mn(r.path,Ht.default.stringify(` +`,d)),{ok:!0,reply_index:l.length-1,status:ep(d)}}function y3n(e,t,n){let r=Sc(e,t,n);if(!r)return null;let s=(typeof r.data.bolt=="number"?r.data.bolt:0)+1,o={...r.data,bolt:s,status:"fixing"};return In(r.path,Ct.default.stringify(` ${r.body} -`,o)),{bolt:s}}function qye(e,t,n){let r=mc(e,t,n);if(!r)return null;if(!(r.data.closure_reply_unread===!0))return{ok:!0,already_dismissed:!0};let s={...r.data,closure_reply_unread:!1};return Mn(r.path,Ht.default.stringify(` +`,o)),{bolt:s}}function cSe(e,t,n){let r=Sc(e,t,n);if(!r)return null;if(!(r.data.closure_reply_unread===!0))return{ok:!0,already_dismissed:!0};let s={...r.data,closure_reply_unread:!1};return In(r.path,Ct.default.stringify(` ${r.body} -`,s)),{ok:!0,already_dismissed:!1}}function YZ(e,t,n,r="agent"){let i=mc(e,t,n);if(!i)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r==="agent"&&i.data.author_type==="human")return{ok:!1,error:"Error: agents cannot delete human-authored feedback. Use the review UI."};let s=Jf(i.data);if(s==="pending"||s==="fixing")return{ok:!1,error:"Error: cannot delete pending feedback. Close or reject it first."};j0(i.path);let a=JL(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=ne(a,`${u}.${l}`);if(de(d))try{j0(d)}catch{}}}return{ok:!0}}function F0(){let e=[],t=new Set;function n(i,s){if(!de(i))return;let o;try{o=un(i,{withFileTypes:!0})}catch{return}for(let a of o){if(!a.isDirectory())continue;let c=a.name;if(t.has(c))continue;let u=ne(i,c,"SKILL.md");if(de(u)){t.add(c);try{let l=Pe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(ne(process.cwd(),".claude","skills"),"project");try{let i=ne(IKn(),".claude","plugins");if(de(i))for(let s of un(i,{withFileTypes:!0}))s.isDirectory()&&n(ne(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(ne(r,"skills"),"plugin"),e}function _D(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}function S3n(e,t,n){let r=e.toLowerCase();return/verif|review|check|assess/.test(r)?"verifier":/plan|design/.test(r)||t===0?"planner":t===n-1?"verifier":"builder"}function _3n(e){return e==="planner"?["1. Read the task and stage scope above.","2. Produce a concise implementation plan:"," - Files to inspect or modify (with reasoning)"," - Step-by-step approach (3\u20135 items)"," - Risks or edge cases to watch for","3. Return your plan as plain text. Do NOT implement \u2014 planning only."].join(` +`,s)),{ok:!0,already_dismissed:!1}}function d5(e,t,n,r="agent"){let i=Sc(e,t,n);if(!i)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r==="agent"&&i.data.author_type==="human")return{ok:!1,error:"Error: agents cannot delete human-authored feedback. Use the review UI."};let s=ep(i.data);if(s==="pending"||s==="fixing")return{ok:!1,error:"Error: cannot delete pending feedback. Close or reject it first."};G0(i.path);let a=z0(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=ne(a,`${u}.${l}`);if(ue(d))try{G0(d)}catch{}}}return{ok:!0}}function V0(){let e=[],t=new Set;function n(i,s){if(!ue(i))return;let o;try{o=an(i,{withFileTypes:!0})}catch{return}for(let a of o){if(!a.isDirectory())continue;let c=a.name;if(t.has(c))continue;let u=ne(i,c,"SKILL.md");if(ue(u)){t.add(c);try{let l=Pe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(ne(process.cwd(),".claude","skills"),"project");try{let i=ne(w9n(),".claude","plugins");if(ue(i))for(let s of an(i,{withFileTypes:!0}))s.isDirectory()&&n(ne(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(ne(r,"skills"),"plugin"),e}function kD(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}function S3n(e,t,n){let r=e.toLowerCase();return/verif|review|check|assess/.test(r)?"verifier":/plan|design/.test(r)||t===0?"planner":t===n-1?"verifier":"builder"}function E3n(e){return e==="planner"?["1. Read the task and stage scope above.","2. Produce a concise implementation plan:"," - Files to inspect or modify (with reasoning)"," - Step-by-step approach (3\u20135 items)"," - Risks or edge cases to watch for","3. Return your plan as plain text. Do NOT implement \u2014 planning only."].join(` `):e==="verifier"?["1. Read the task description and the prior hat outputs (especially the builder's summary).","2. Inspect the actual uncommitted changes with `git status --porcelain` and `git diff` to confirm they match the summary.","3. Verify the work meets the task's success criteria:"," - Does the change address exactly what was asked?"," - Is the code internally consistent and free of obvious regressions?"," - Are there edge cases the builder missed that the stage scope would flag?","4. Your final message MUST be structured exactly as one of these two formats:",""," On success (single line, then a Files block):"," ```"," PASS \u2014 "," Files:"," "," "," ..."," ```",""," On failure (single line, no files block):"," ```"," FAIL \u2014 "," ```",""," The Files block on PASS lists the exact paths the parent should stage. Include only paths you confirmed via `git diff` are part of the task's intended change. Exclude any pre-existing dirty paths that were called out in the prompt.","","5. Do NOT run quality gates \u2014 that was the builder's job. Focus on correctness and fit.","6. Do NOT commit, amend, or otherwise mutate the git tree.","7. Do NOT call any haiku_* tools."].join(` `):["1. Read the prior hat's output above and the hat mandate.",`2. Apply your hat's role to the task. If your mandate is "build/implement," write the code. If your mandate is "critique/refine prior output," critique it and emit a revised plan or revised work as appropriate.`,"3. If you wrote or modified files, run any project quality gates (tests, lint, typecheck) and fix failures.","4. Do NOT commit. Leave changes uncommitted in the working tree \u2014 the parent skill commits once at the end after the verifier passes.","5. Return a summary:"," - Files you created/modified (exact paths)"," - Quality gate results (commands run, pass/fail)"," - One-paragraph description of what changed and why"].join(` -`)}function E3n(e){if(e.length===0)return null;if(e.includes("development"))return"development";let t=/research|design|discovery|inception|ideation|plan/i;for(let n=e.length-1;n>=0;n--)if(!t.test(e[n]))return e[n];return e[e.length-1]}function b3n(e){let t=e.task,n=mI(),r=Array.from(new Set(n.flatMap(y=>[y.slug,...y.aliases]))).sort(),i=_i("software");if(e.studio){let y=_i(e.studio);if(!y)return{error:"zap_studio_not_found",valid_studios:r,message:`Studio '${e.studio}' not found. Valid studios: ${r.join(", ")}. Ask the user to pick one and call haiku_zap again with that studio.`};i=y}if(!i)return{error:"zap_studio_not_found",valid_studios:r,message:`No studio specified and no 'software' studio is available. Valid studios: ${r.join(", ")}. Ask the user to pick one and call haiku_zap again with that studio.`};let s=i.slug,o=i.dir,a=i.stages,c;if(e.stage){if(!a.includes(e.stage))return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${e.stage}' not found in studio '${s}'. Valid stages: ${a.join(", ")}. Ask the user to pick one and call haiku_zap again with that stage.`};c=e.stage}else{let y=E3n(a);if(!y)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Studio '${s}' declares no stages. Cannot zap. Pick a different studio.`};c=y}let u=Yi(o,c);if(!u)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${c}' is listed for studio '${s}' but its STAGE.md could not be read. Pick a different stage.`};let l=u.body.trim(),d=Array.isArray(u.data.hats)?u.data.hats:[];if(d.length===0)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${c}' in studio '${s}' declares no hats \u2014 nothing to run. Pick a different stage.`};let f=Iu(o,c),p=d.length,h=d.map((y,g)=>S3n(y,g,p)),m=[];m.push("# Zap \u2014 stateless single-task hat loop"),m.push(""),m.push(`Resolved studio **${s}**, stage **${c}**. This is a zap run: no intent file, no unit decomposition, no workflow tick, no \`haiku_*\` tool calls inside the hats. Work directly on the repo. Follow this procedure verbatim \u2014 you are the sequential loop driver.`),m.push(""),m.push("## Hat sequence (run in this order)"),m.push("");for(let y=0;y ...` (NEVER `git add -A`/`git add .` \u2014 that sweeps in pre-existing dirty paths), commit with a brief message derived from the task + verifier summary, then report files committed + commands run + the verifier's PASS line."),m.push(""),m.push('**On FAIL:** surface the reason. If the retry counter is **< 2**, ask via `AskUserQuestion` (options `["Retry the hat loop with this failure as context", "Abandon \u2014 I\'ll fix it manually"]`). On retry: increment the counter, leave the working tree untouched (prior uncommitted changes carry forward), and re-run from step 2 prepending a `## Prior failure context: ` block to the task. If the counter is **2 or more**, do NOT offer retry \u2014 tell the user zap isn\'t converging (two retries used, 3 total attempts), suggest discarding via `git restore .` and bailing to `/haiku:haiku-start`, then stop. On abandon: leave changes in place and stop.'),m.push(""),m.push('**If a hat subagent errors out** (no output / throws / crashes): treat it as a `FAIL` with reason `" subagent errored: "` and route through the FAIL path above. Don\'t silently retry.'),m.push(""),m.push("## Commit safety"),m.push(""),m.push("Only YOU (the parent) commit, only after verifier PASS, only the exact files the verifier listed. No hat commits. Stateless \u2014 no `.haiku/` files are written; if the user needs formal traceability, suggest `/haiku:haiku-quick`."),m.push(""),m.push("---"),m.push(""),m.push("## Per-hat subagent prompts"),m.push(""),m.push("Spawn each block below as its own subagent, in order. Fill the `` slot with the prior hat's verbatim output (omit the section for the first hat). Prepend a `## Prior failure context` block to the task on a retry. Prepend a `## Pre-existing uncommitted changes (do NOT modify)` block listing the preflight dirty paths if the user opted to proceed dirty."),m.push("");for(let y=0;y WARNING: no mandate file resolved for hat \`${g}\` in \`${s}/${c}\`. The hat is listed on STAGE.md but no \`hats/${g}.md\` exists in any cascade tier. Run the hat with role instructions only, or fix the stage definition.`),m.push("")),m.push("```"),m.push(`You are executing a zap task as the **${g}** hat (${E} role) in stage **${c}** of studio **${s}**.`),m.push(""),m.push("This is a zap run \u2014 no workflow engine, no unit files, no haiku_* tool calls. Work directly on the repo."),m.push(""),m.push("## Stage scope"),m.push(""),m.push(l||"(STAGE.md body was empty)"),m.push(""),m.push(`## Your mandate: ${g}`),m.push(""),m.push(_||`(No mandate body for ${g}${b?` at ${b}`:""} \u2014 follow the role instructions below.)`),m.push(""),m.push("Note: this mandate was written for the workflow-engine context. Where it references units, feedback files, or haiku_* tools, translate that as: work directly on the repo, return your output as plain text to the parent. Do NOT call any haiku_* tools."),m.push(""),m.push("## Task"),m.push(""),m.push(t),m.push(""),y>0&&(m.push(`## Input from prior hat (${d[y-1]})`),m.push(""),m.push(""),m.push("")),m.push("## Instructions"),m.push(""),m.push(_3n(E)),m.push("```"),m.push("")}return{message:m.join(` -`),studio:s,stage:c}}function Gye(e,t){let n=o=>({content:[{type:"text",text:o}]}),r=(o,a)=>({content:[{type:"text",text:JSON.stringify(o,null,2)}],structuredContent:o,...a?.isError?{isError:!0}:{}}),i=t._session_context;i?.CLAUDE_SESSION_ID&&zdt(i.CLAUDE_SESSION_ID);let s=_D(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=qe(t,Dme,"haiku_intent_get");if(o)return o;let a=ne(fe(t.slug),"intent.md");if(!de(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(Pe(a,"utf8")),u=c[t.field];return r({found:u!=null,field:t.field,value:u??null})}case"haiku_intent_list":{let o=qe(t,Lme,"haiku_intent_list");if(o)return o;let a=we(),c=ne(a,"intents");if(!de(c))return n("[]");let u=t.include_archived===!0,l=Mg(c,{includeArchived:u}),d=fv(),f=l.map(({slug:p,data:h})=>{let m=h.studio||"",y=typeof h.sealed_at=="string"&&h.sealed_at.length>0,g=m?_s(p,m):null,E=y||g===null?"completed":"active",S={slug:p,studio:h.studio,status:E,active_stage:g??""};return u&&(S.archived=h.archived===!0),d&&d.slug===p&&(S.current_branch=!0,d.stage&&(S.current_branch_stage=d.stage)),S});return r({intents:f})}case"haiku_stage_get":{let o=qe(t,lge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=ne(fe(a),"intent.md"),d=de(l)?re(Pe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=lv({slug:a,studio:f,stage:c,intentDir:fe(a),intentMode:p}),m={stage:h.stage,status:h.status,phase:h.phase??"",started_at:h.started_at,completed_at:h.completed_at,gate_outcome:h.gate_outcome,visits:h.visits},y=Object.hasOwn(m,u)?m[u]:null;return r({found:y!=null,field:u,value:y??null})}case"haiku_unit_get":{let o=qe(t,bge,"haiku_unit_get");if(o)return o;let a=t.field;if(Vf.includes(a))return r({error:"unit_field_engine_only",field:a,message:`Field '${a}' is workflow-driven (engine bookkeeping) and is not agent-readable. Engine-only fields: [${Vf.join(", ")}]. Readable corrective/authorable fields: [${k_.join(", ")}]. For the unit body/title use haiku_unit_read.`},{isError:!0});let c=Qo(t.intent,t.stage,t.unit);if(!de(c))return r({error:"unit_not_found",field:a,message:`Unit '${t.unit}' not found at stage '${t.stage}' of intent '${t.intent}'.`},{isError:!0});let{data:u}=re(Pe(c,"utf8")),l=u[a];return r({ok:!0,field:a,found:l!=null,value:l??null})}case"haiku_unit_set":{let o=qe(t,Ege,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=u_();if(!u&&Vf.includes(a))return r({error:"fsm_field_forbidden",field:a,message:`Field '${a}' is workflow-driven \u2014 set automatically by haiku_unit_advance_hat / haiku_unit_reject_hat / haiku_unit_increment_bolt. Agents must not set it directly. Forbidden fields: [${Vf.join(", ")}].`},{isError:!0});let l=Xo(t.intent,t.stage);if(l)return l;let d=Qo(t.intent,t.stage,t.unit);if(de(d)){let{data:p}=re(Pe(d,"utf8")),h=U0(p);if(!u&&!(a==="outputs"||a==="quality_gates")&&(h==="active"||h==="completed"))return r({error:"lifecycle_violation",current_status:h,field:a,message:`Cannot set field '${a}' on unit '${t.unit}' \u2014 status is '${h}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once they enter active or completed status. Pending units only. (\`outputs\` and \`quality_gates\` are exempt \u2014 see haiku_unit_set handler comments.)`},{isError:!0})}let f=YT.properties[a];if(f?.type){let p=Array.isArray(f.type)?f.type:[f.type],h=Array.isArray(c)?"array":c===null?"null":typeof c;if(!p.includes(h)){let y=p.length===1?p[0]:`one of [${p.join(", ")}]`;return r({error:"field_type_mismatch",field:a,expected_type:p.length===1?p[0]:p,received_type:h,message:`Field '${a}' expects ${y}, got ${h}. Pass a native ${y} value \u2014 JSON-stringified values are not accepted (they corrupt the YAML output). Example for array fields: \`value: ["intent.md", "knowledge/DISCOVERY.md"]\`.`},{isError:!0})}let m={[a]:c};if(!kg(m)){let y=(kg.errors||[]).filter(g=>g.instancePath===`/${a}`||g.instancePath.startsWith(`/${a}/`));if(y.length>0)return r({error:"field_value_invalid",field:a,errors:y,message:`Field '${a}' value failed schema validation: ${He.errorsText(y)}.`},{isError:!0})}}return je(d,a,c),n("ok")}case"haiku_unit_list":{let o=qe(t,Tge,"haiku_unit_list");if(o)return o;let a=Xo(t.intent,t.stage);if(a)return a;let c=ne(vr(t.intent,t.stage),"units");if(!de(c))return r({units:[]});let l=un(c).filter(d=>d.endsWith(".md")).map(d=>{let{data:f}=re(Pe(ne(c,d),"utf8"));return{name:d.replace(".md",""),status:f.status,bolt:f.bolt,hat:f.hat,model:f.model??null}});return r({units:l})}case"haiku_unit_start":{let o=qe(t,Age,"haiku_unit_start");if(o)return o;let a=zZ(t.intent,t.unit),c=t.stage||a?.stage||WL(t.intent);if(!c)return r({error:"no_active_stage",message:"No active stage found for this intent. Call haiku_run_next first."},{isError:!0});let u=Xo(t.intent,c);if(u)return u;let l=Qo(t.intent,c,t.unit);if(de(l)){let{data:y}=re(Pe(l,"utf8")),g=typeof y.started_at=="string"&&y.started_at.length>0,E=Array.isArray(y.iterations)?y.iterations:[],S=E.length>0?E[E.length-1]:null,_=S!==null&&(S.result==="advance"||S.result==="closed");if(g&&!_){if(E.length===1&&S!==null&&(S.result===null||S.result===void 0)&&typeof S.dispatched_at=="string"&&S.dispatched_at.length>0){let R=FZ(t.intent,c);return n(R?`ok (already started by the engine) +`)}function _3n(e){if(e.length===0)return null;if(e.includes("development"))return"development";let t=/research|design|discovery|inception|ideation|plan/i;for(let n=e.length-1;n>=0;n--)if(!t.test(e[n]))return e[n];return e[e.length-1]}function b3n(e){let t=e.task,n=_I(),r=Array.from(new Set(n.flatMap(g=>[g.slug,...g.aliases]))).sort(),i=si("software");if(e.studio){let g=si(e.studio);if(!g)return{error:"zap_studio_not_found",valid_studios:r,message:`Studio '${e.studio}' not found. Valid studios: ${r.join(", ")}. Ask the user to pick one and call haiku_zap again with that studio.`};i=g}if(!i)return{error:"zap_studio_not_found",valid_studios:r,message:`No studio specified and no 'software' studio is available. Valid studios: ${r.join(", ")}. Ask the user to pick one and call haiku_zap again with that studio.`};let s=i.slug,o=i.dir,a=i.stages,c;if(e.stage){if(!a.includes(e.stage))return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${e.stage}' not found in studio '${s}'. Valid stages: ${a.join(", ")}. Ask the user to pick one and call haiku_zap again with that stage.`};c=e.stage}else{let g=_3n(a);if(!g)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Studio '${s}' declares no stages. Cannot zap. Pick a different studio.`};c=g}let u=$i(o,c);if(!u)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${c}' is listed for studio '${s}' but its STAGE.md could not be read. Pick a different stage.`};let l=u.body.trim(),d=Array.isArray(u.data.hats)?u.data.hats:[];if(d.length===0)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${c}' in studio '${s}' declares no hats \u2014 nothing to run. Pick a different stage.`};let f=Mu(o,c),p=d.length,h=d.map((g,y)=>S3n(g,y,p)),m=[];m.push("# Zap \u2014 stateless single-task hat loop"),m.push(""),m.push(`Resolved studio **${s}**, stage **${c}**. This is a zap run: no intent file, no unit decomposition, no workflow tick, no \`haiku_*\` tool calls inside the hats. Work directly on the repo. Follow this procedure verbatim \u2014 you are the sequential loop driver.`),m.push(""),m.push("## Hat sequence (run in this order)"),m.push("");for(let g=0;g ...` (NEVER `git add -A`/`git add .` \u2014 that sweeps in pre-existing dirty paths), commit with a brief message derived from the task + verifier summary, then report files committed + commands run + the verifier's PASS line."),m.push(""),m.push('**On FAIL:** surface the reason. If the retry counter is **< 2**, ask via `AskUserQuestion` (options `["Retry the hat loop with this failure as context", "Abandon \u2014 I\'ll fix it manually"]`). On retry: increment the counter, leave the working tree untouched (prior uncommitted changes carry forward), and re-run from step 2 prepending a `## Prior failure context: ` block to the task. If the counter is **2 or more**, do NOT offer retry \u2014 tell the user zap isn\'t converging (two retries used, 3 total attempts), suggest discarding via `git restore .` and bailing to `/haiku:haiku-start`, then stop. On abandon: leave changes in place and stop.'),m.push(""),m.push('**If a hat subagent errors out** (no output / throws / crashes): treat it as a `FAIL` with reason `" subagent errored: "` and route through the FAIL path above. Don\'t silently retry.'),m.push(""),m.push("## Commit safety"),m.push(""),m.push("Only YOU (the parent) commit, only after verifier PASS, only the exact files the verifier listed. No hat commits. Stateless \u2014 no `.haiku/` files are written; if the user needs formal traceability, suggest `/haiku:haiku-quick`."),m.push(""),m.push("---"),m.push(""),m.push("## Per-hat subagent prompts"),m.push(""),m.push("Spawn each block below as its own subagent, in order. Fill the `` slot with the prior hat's verbatim output (omit the section for the first hat). Prepend a `## Prior failure context` block to the task on a retry. Prepend a `## Pre-existing uncommitted changes (do NOT modify)` block listing the preflight dirty paths if the user opted to proceed dirty."),m.push("");for(let g=0;g WARNING: no mandate file resolved for hat \`${y}\` in \`${s}/${c}\`. The hat is listed on STAGE.md but no \`hats/${y}.md\` exists in any cascade tier. Run the hat with role instructions only, or fix the stage definition.`),m.push("")),m.push("```"),m.push(`You are executing a zap task as the **${y}** hat (${E} role) in stage **${c}** of studio **${s}**.`),m.push(""),m.push("This is a zap run \u2014 no workflow engine, no unit files, no haiku_* tool calls. Work directly on the repo."),m.push(""),m.push("## Stage scope"),m.push(""),m.push(l||"(STAGE.md body was empty)"),m.push(""),m.push(`## Your mandate: ${y}`),m.push(""),m.push(_||`(No mandate body for ${y}${b?` at ${b}`:""} \u2014 follow the role instructions below.)`),m.push(""),m.push("Note: this mandate was written for the workflow-engine context. Where it references units, feedback files, or haiku_* tools, translate that as: work directly on the repo, return your output as plain text to the parent. Do NOT call any haiku_* tools."),m.push(""),m.push("## Task"),m.push(""),m.push(t),m.push(""),g>0&&(m.push(`## Input from prior hat (${d[g-1]})`),m.push(""),m.push(""),m.push("")),m.push("## Instructions"),m.push(""),m.push(E3n(E)),m.push("```"),m.push("")}return{message:m.join(` +`),studio:s,stage:c}}function lSe(e,t){let n=o=>({content:[{type:"text",text:o}]}),r=(o,a)=>({content:[{type:"text",text:JSON.stringify(o,null,2)}],structuredContent:o,...a?.isError?{isError:!0}:{}}),i=t._session_context;i?.CLAUDE_SESSION_ID&&_ft(i.CLAUDE_SESSION_ID);let s=kD(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,$me,"haiku_intent_get");if(o)return o;let a=ne(pe(t.slug),"intent.md");if(!ue(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(Pe(a,"utf8")),u=c[t.field];return r({found:u!=null,field:t.field,value:u??null})}case"haiku_intent_list":{let o=Be(t,ege,"haiku_intent_list");if(o)return o;let a=ve(),c=ne(a,"intents");if(!ue(c))return n("[]");let u=t.include_archived===!0,l=Ug(c,{includeArchived:u}),d=gv(),f=l.map(({slug:p,data:h})=>{let m=h.studio||"",g=typeof h.sealed_at=="string"&&h.sealed_at.length>0,y=m?ai(p,m):null,E;g?E="completed":y===null?E=byt(p,{localOnly:!0})?"pending_seal":"completed":E="active";let S={slug:p,studio:h.studio,status:E,active_stage:y??""};return u&&(S.archived=h.archived===!0),d&&d.slug===p&&(S.current_branch=!0,d.stage&&(S.current_branch_stage=d.stage)),S});return r({intents:f})}case"haiku_stage_get":{let o=Be(t,xge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=ne(pe(a),"intent.md"),d=ue(l)?re(Pe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=hv({slug:a,studio:f,stage:c,intentDir:pe(a),intentMode:p}),m={stage:h.stage,status:h.status,phase:h.phase??"",started_at:h.started_at,completed_at:h.completed_at,gate_outcome:h.gate_outcome,visits:h.visits},g=Object.hasOwn(m,u)?m[u]:null;return r({found:g!=null,field:u,value:g??null})}case"haiku_unit_get":{let o=Be(t,Hge,"haiku_unit_get");if(o)return o;let a=t.field;if(Yf.includes(a))return r({error:"unit_field_engine_only",field:a,message:`Field '${a}' is workflow-driven (engine bookkeeping) and is not agent-readable. Engine-only fields: [${Yf.join(", ")}]. Readable corrective/authorable fields: [${CE.join(", ")}]. For the unit body/title use haiku_unit_read.`},{isError:!0});let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",field:a,message:`Unit '${t.unit}' not found at stage '${t.stage}' of intent '${t.intent}'.`},{isError:!0});let{data:u}=re(Pe(c,"utf8")),l=u[a];return r({ok:!0,field:a,found:l!=null,value:l??null})}case"haiku_unit_set":{let o=Be(t,jge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=hE();if(!u&&Yf.includes(a))return r({error:"fsm_field_forbidden",field:a,message:`Field '${a}' is workflow-driven \u2014 set automatically by haiku_unit_advance_hat / haiku_unit_reject_hat / haiku_unit_increment_bolt. Agents must not set it directly. Forbidden fields: [${Yf.join(", ")}].`},{isError:!0});let l=ea(t.intent,t.stage);if(l)return l;let d=Pa(t.intent,t.stage,t.unit);if(ue(d)){let{data:p}=re(Pe(d,"utf8")),h=B0(p);if(!u&&!(a==="outputs"||a==="quality_gates")&&(h==="active"||h==="completed"))return r({error:"lifecycle_violation",current_status:h,field:a,message:`Cannot set field '${a}' on unit '${t.unit}' \u2014 status is '${h}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once they enter active or completed status. Pending units only. (\`outputs\` and \`quality_gates\` are exempt \u2014 see haiku_unit_set handler comments.)`},{isError:!0})}let f=QT.properties[a];if(f?.type){let p=Array.isArray(f.type)?f.type:[f.type],h=Array.isArray(c)?"array":c===null?"null":typeof c;if(!p.includes(h)){let g=p.length===1?p[0]:`one of [${p.join(", ")}]`;return r({error:"field_type_mismatch",field:a,expected_type:p.length===1?p[0]:p,received_type:h,message:`Field '${a}' expects ${g}, got ${h}. Pass a native ${g} value \u2014 JSON-stringified values are not accepted (they corrupt the YAML output). Example for array fields: \`value: ["intent.md", "knowledge/DISCOVERY.md"]\`.`},{isError:!0})}let m={[a]:c};if(!Pg(m)){let g=(Pg.errors||[]).filter(y=>y.instancePath===`/${a}`||y.instancePath.startsWith(`/${a}/`));if(g.length>0)return r({error:"field_value_invalid",field:a,errors:g,message:`Field '${a}' value failed schema validation: ${He.errorsText(g)}.`},{isError:!0})}}return De(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,qge,"haiku_unit_list");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=ne(ar(t.intent,t.stage),"units");if(!ue(c))return r({units:[]});let l=an(c).filter(d=>d.endsWith(".md")).map(d=>{let{data:f}=re(Pe(ne(c,d),"utf8"));return{name:d.replace(".md",""),status:f.status,bolt:f.bolt,hat:f.hat,model:f.model??null}});return r({units:l})}case"haiku_unit_start":{let o=Be(t,Gge,"haiku_unit_start");if(o)return o;let a=o5(t.intent,t.unit),c=t.stage||a?.stage||i1(t.intent);if(!c)return r({error:"no_active_stage",message:"No active stage found for this intent. Call haiku_run_next first."},{isError:!0});let u=ea(t.intent,c);if(u)return u;let l=Pa(t.intent,c,t.unit);if(ue(l)){let{data:g}=re(Pe(l,"utf8")),y=typeof g.started_at=="string"&&g.started_at.length>0,E=Array.isArray(g.iterations)?g.iterations:[],S=E.length>0?E[E.length-1]:null,_=S!==null&&(S.result==="advance"||S.result==="closed");if(y&&!_){if(E.length===1&&S!==null&&(S.result===null||S.result===void 0)&&typeof S.dispatched_at=="string"&&S.dispatched_at.length>0){let R=t5(t.intent,c);return n(R?`ok (already started by the engine) -${R}`:"ok (already started by the engine)")}let T=FZ(t.intent,c),A=S!==null&&typeof S.hat=="string"?S.hat:"";return r({error:"unit_already_active",unit:t.unit,hat:A,scope:T||null,message:`Unit '${t.unit}' is already active (hat: ${A||"unknown"}). Do not start it again \u2014 continue working on it or call haiku_unit_advance_hat when done.`},{isError:!0})}}{let y=re(Pe(l,"utf8")).data;if(!("inputs"in y))return r({error:"unit_inputs_not_declared",unit:t.unit,stage:c,message:`Cannot start unit '${t.unit}': no \`inputs:\` field declared in frontmatter. Every unit MUST declare what upstream artifacts it reads (intent doc, knowledge docs, prior-stage outputs). Set inputs explicitly via \`haiku_unit_set { intent: "${t.intent}", unit: "${t.unit}", field: "inputs", value: [...] }\` \u2014 an empty array is fine if the unit genuinely reads nothing, but the field itself must be present.`},{isError:!0});let g=Array.isArray(y.inputs)?y.inputs:[],E=[];for(let S of g)M_(t.intent,t.unit,S)||E.push(S);if(E.length>0)return r({error:"unit_inputs_missing",missing:E,message:`Cannot start unit '${t.unit}': ${E.length} declared input(s) do not exist on disk: [${E.map(S=>`'${S}'`).join(", ")}]. Each entry in \`inputs:\` MUST reference a real file (typically an artifact a prior stage produced). Verify the upstream stage actually wrote the file, OR remove the input entry if the unit doesn't actually need it.`},{isError:!0})}let f=n1(t.intent,c)[0]||"";je(l,"started_at",En()),KL(l,f),si(t.intent),Qe("haiku.unit.started",{intent:t.intent,stage:c,unit:t.unit,hat:f});let p=t.state_file;p&&ts(p,{event:"unit_started",intent:t.intent,stage:c,unit:t.unit,hat:f});let h=Dt(`haiku: start unit ${t.unit}`);Yr(t.intent,t.state_file);let m=FZ(t.intent,c);return n((m?`ok +${R}`:"ok (already started by the engine)")}let T=t5(t.intent,c),A=S!==null&&typeof S.hat=="string"?S.hat:"";return r({error:"unit_already_active",unit:t.unit,hat:A,scope:T||null,message:`Unit '${t.unit}' is already active (hat: ${A||"unknown"}). Do not start it again \u2014 continue working on it or call haiku_unit_advance_hat when done.`},{isError:!0})}}{let g=re(Pe(l,"utf8")).data;if(!("inputs"in g))return r({error:"unit_inputs_not_declared",unit:t.unit,stage:c,message:`Cannot start unit '${t.unit}': no \`inputs:\` field declared in frontmatter. Every unit MUST declare what upstream artifacts it reads (intent doc, knowledge docs, prior-stage outputs). Set inputs explicitly via \`haiku_unit_set { intent: "${t.intent}", unit: "${t.unit}", field: "inputs", value: [...] }\` \u2014 an empty array is fine if the unit genuinely reads nothing, but the field itself must be present.`},{isError:!0});let y=Array.isArray(g.inputs)?g.inputs:[],E=[];for(let S of y)Vh(t.intent,t.unit,S)||E.push(S);if(E.length>0)return r({error:"unit_inputs_missing",missing:E,message:`Cannot start unit '${t.unit}': ${E.length} declared input(s) do not exist on disk: [${E.map(S=>`'${S}'`).join(", ")}]. Each entry in \`inputs:\` MUST reference a real file (typically an artifact a prior stage produced). Verify the upstream stage actually wrote the file, OR remove the input entry if the unit doesn't actually need it.`},{isError:!0})}let f=f1(t.intent,c)[0]||"";De(l,"started_at",_n()),s1(l,f),ci(t.intent),Ke("haiku.unit.started",{intent:t.intent,stage:c,unit:t.unit,hat:f});let p=t.state_file;p&&qi(p,{event:"unit_started",intent:t.intent,stage:c,unit:t.unit,hat:f});let h=wt(`haiku: start unit ${t.unit}`);Xr(t.intent,t.state_file);let m=t5(t.intent,c);return n((m?`ok -${m}`:"ok")+UZ(h))}case"haiku_unit_advance_hat":{let o=qe(t,Rge,"haiku_unit_advance_hat");if(o)return o;let a=t.stage,c,u;if(a){if(c=a,u=Qo(t.intent,c,t.unit),!de(u))return r({error:"unit_not_found",message:`Unit '${t.unit}' not found at stage '${a}' of intent '${t.intent}'.`},{isError:!0})}else{let D=zZ(t.intent,t.unit);if(!D)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});u=D.path,c=D.stage}let l=Xo(t.intent,c);if(l)return l;let d=(D,j,V)=>j&&j.length>0?`${D} +${m}`:"ok")+$Y(h))}case"haiku_unit_advance_hat":{let o=Be(t,zge,"haiku_unit_advance_hat");if(o)return o;let a=t.stage,c,u;if(a){if(c=a,u=Pa(t.intent,c,t.unit),!ue(u))return r({error:"unit_not_found",message:`Unit '${t.unit}' not found at stage '${a}' of intent '${t.intent}'.`},{isError:!0})}else{let C=o5(t.intent,t.unit);if(!C)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});u=C.path,c=C.stage}let l=ea(t.intent,c);if(l)return l;let d=(C,F,V)=>F&&F.length>0?`${C} --- Wave still has work \u2014 spawn the block below as your next Task call: -${j}`:`${D} +${F}`:`${C} -Wave done \u2014 call \`haiku_run_next { intent: "${V}" }\` for the next instruction.`,f=Pe(u,"utf8"),{data:p}=re(f),h=Array.isArray(p.iterations)?p.iterations:[];if(h.length===0)return r({error:"unit_not_started",unit:t.unit,message:`Unit '${t.unit}' has no iterations[]. Call haiku_unit_start before advancing a hat.`},{isError:!0});let m=h[h.length-1];if(m.completed_at!==null&&m.result!==null)return r({error:"iteration_already_terminal",unit:t.unit,message:`Unit '${t.unit}' last iteration is already terminal (hat='${m.hat}', result='${m.result}'). The cursor will dispatch the next hat on the next haiku_run_next tick.`},{isError:!0});let y=m.hat;if(!("inputs"in p))return r({error:"unit_inputs_not_declared",unit:t.unit,stage:c,message:`Cannot advance hat: unit '${t.unit}' has no \`inputs:\` field declared in frontmatter. Every unit MUST declare what upstream artifacts it reads. Set inputs explicitly via \`haiku_unit_set { intent: "${t.intent}", unit: "${t.unit}", field: "inputs", value: [...] }\` \u2014 an empty array is fine if the unit genuinely reads nothing, but the field itself must be present.`},{isError:!0});let g=p.outputs||[];if(g.length>0){let D=fe(t.intent),j=g.filter(Z=>!Fh(D,Z).startsWith(`${Fh(D)}/`));if(j.length>0)return r({error:"unit_outputs_escaped",escaped:j,message:`Cannot advance hat: ${j.length} output path(s) escape the intent directory: ${j.join(", ")}. Fix the outputs in the unit frontmatter.`},{isError:!0});let V=g.filter(Z=>!M_(t.intent,t.unit,Z));if(V.length>0){let Z=t.state_file;return Z&&ts(Z,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:V}),r({error:"unit_outputs_missing",missing:V,message:`Cannot advance hat: ${V.length} declared output(s) not found in unit worktree or main intent dir: ${V.join(", ")}. Create them (in the unit worktree if you have one, otherwise in the main intent dir) or remove them from the outputs list.`},{isError:!0})}}let E=YL(t.intent,c,t.unit),_=E.indexOf(y)+1;if(_>=E.length){{let Re=`${fe(t.intent)}/intent.md`,{data:Te}=re(Pe(Re,"utf8")),K=Te.studio||"",Q=K?HZ(t.intent,K,c,t.unit):null;if(Q){let ae=t.state_file;ae&&ts(ae,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:Q.violations});let ge=[...Q.scope.intentGlobs.map(Se=>` - \`${Se}\` (intent-relative)`),...Q.scope.repoGlobs.map(Se=>` - \`${Se}\` (repo-relative)`),Q.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` -`);return r({error:"unit_scope_violation",violations:Q.violations,scope:Q.scope,message:`Cannot complete unit: ${Q.violations.length} file(s) were written outside the stage's declared scope. +Wave done \u2014 call \`haiku_run_next { intent: "${V}" }\` for the next instruction.`,f=Pe(u,"utf8"),{data:p}=re(f),h=Array.isArray(p.iterations)?p.iterations:[];if(h.length===0)return r({error:"unit_not_started",unit:t.unit,message:`Unit '${t.unit}' has no iterations[]. Call haiku_unit_start before advancing a hat.`},{isError:!0});let m=h[h.length-1];if(m.completed_at!==null&&m.result!==null)return r({error:"iteration_already_terminal",unit:t.unit,message:`Unit '${t.unit}' last iteration is already terminal (hat='${m.hat}', result='${m.result}'). The cursor will dispatch the next hat on the next haiku_run_next tick.`},{isError:!0});let g=m.hat;if(!("inputs"in p))return r({error:"unit_inputs_not_declared",unit:t.unit,stage:c,message:`Cannot advance hat: unit '${t.unit}' has no \`inputs:\` field declared in frontmatter. Every unit MUST declare what upstream artifacts it reads. Set inputs explicitly via \`haiku_unit_set { intent: "${t.intent}", unit: "${t.unit}", field: "inputs", value: [...] }\` \u2014 an empty array is fine if the unit genuinely reads nothing, but the field itself must be present.`},{isError:!0});let y=p.outputs||[];if(y.length>0){let C=pe(t.intent),F=y.filter(K=>!$f(C,K).startsWith(`${$f(C)}/`));if(F.length>0)return r({error:"unit_outputs_escaped",escaped:F,message:`Cannot advance hat: ${F.length} output path(s) escape the intent directory: ${F.join(", ")}. Fix the outputs in the unit frontmatter.`},{isError:!0});let V=y.filter(K=>!Vh(t.intent,t.unit,K));if(V.length>0){let K=t.state_file;return K&&qi(K,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:V}),r({error:"unit_outputs_missing",missing:V,message:`Cannot advance hat: ${V.length} declared output(s) not found in unit worktree or main intent dir: ${V.join(", ")}. Create them (in the unit worktree if you have one, otherwise in the main intent dir) or remove them from the outputs list.`},{isError:!0})}}let E=Wye(t.intent,c,t.unit),_=E.indexOf(g)+1;if(_>=E.length){{let z=`${pe(t.intent)}/intent.md`,{data:J}=re(Pe(z,"utf8")),oe=J.studio||"",le=oe?n5(t.intent,oe,c,t.unit):null;if(le){let be=t.state_file;be&&qi(be,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:le.violations});let kt=[...le.scope.intentGlobs.map(Ue=>` - \`${Ue}\` (intent-relative)`),...le.scope.repoGlobs.map(Ue=>` - \`${Ue}\` (repo-relative)`),le.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` +`);return r({error:"unit_scope_violation",violations:le.violations,scope:le.scope,message:`Cannot complete unit: ${le.violations.length} file(s) were written outside the stage's declared scope. Out-of-bounds files: -${Q.violations.map(Se=>` - ${Se}`).join(` +${le.violations.map(Ue=>` - ${Ue}`).join(` `)} Allowed paths (stage output templates + workflow engine metadata): -${ge} +${kt} To resolve (in the unit worktree): (a) drop ALL unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\` \u2014 recommended if the unit just started and few commits landed; or (b) amend the bad file out of the latest commit with \`git rm && git commit --amend --no-edit\`; or (c) whole-commit rollback with \`git revert --no-edit \` for each bad commit. NOTE: \`git checkout HEAD -- \` does NOT work on committed files (it's a no-op when the file matches HEAD). Use one of the above. -Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let D=Pe(u,"utf8"),{data:j}=re(D),V=j.outputs||[];if(V.length===0){let Re=t.state_file;return Re&&ts(Re,{event:"outputs_empty",intent:t.intent,stage:c,unit:t.unit}),r({error:"unit_outputs_empty",message:"Cannot complete unit: no outputs were produced. Every unit must write at least one artifact that the workflow engine can detect (stage artifact under `stages//...` excluding `units/`/`state.json`, knowledge document under `knowledge/`, or a file matching a stage output template `location:`). The workflow engine auto-populates `outputs:` from the git diff at advance time; if you've written files but they're not showing up, verify they've been committed in the unit worktree, or add them explicitly to the unit's `outputs:` frontmatter field."},{isError:!0})}let Z=[];for(let Re of V)M_(t.intent,t.unit,Re)||Z.push(Re);if(Z.length>0){let Re=t.state_file;return Re&&ts(Re,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:Z.length}),r({error:"unit_outputs_missing",missing:Z,message:`Cannot complete unit: ${Z.length} declared output(s) do not exist on disk: [${Z.map(Te=>`'${Te}'`).join(", ")}]. Each entry in \`outputs:\` MUST be a real file path. If you wrote prose (e.g. "Weekly carryover roll: scheduler trigger, idempotent roll logic"), that's a completion-criteria description, not an output path \u2014 move it to the body's \`## Completion Criteria\` section and let auto-populate fill \`outputs:\` from the actual git diff.`},{isError:!0})}let B=(f.match(/- \[ \]/g)||[]).length;if(B>0){let Re=t.state_file;return Re&&ts(Re,{event:"criteria_not_met",intent:t.intent,stage:c,unit:t.unit,unchecked:B}),r({error:"criteria_not_met",unchecked:B,message:`Cannot complete unit: ${B} completion criteria still unchecked. Address them, then call haiku_unit_advance_hat again.`},{isError:!0})}BZ(u,"advance",t.message),Qe("haiku.unit.completed",{intent:t.intent,stage:c,unit:t.unit});{let Re=t.state_file;Re&&ts(Re,{event:"unit_completed",intent:t.intent,stage:c,unit:t.unit})}let G=GZ(`haiku: complete unit ${t.unit}`),X=t.intent,q=`haiku/${X}/${c}`,C=P_(X,c,()=>$fe(X,t.unit,c));if(!C.success){let Re=ne(process.cwd(),".haiku","worktrees",X,t.unit),Te=C.message.match(/^merge_conflict: real conflicts on agent-authored content require resolution: (.+)$/m),K=Te?Te[1].split(",").map(Q=>Q.trim()).filter(Boolean):[];return K.length>0?r({action:"resolve_merge_conflicts",status:"completed_pending_merge_resolution",intent:t.intent,unit:t.unit,stage:c,unit_branch:`haiku/${X}/${t.unit}`,stage_branch:q,conflict_paths:K,worktree:Re,message:`Unit ${t.unit} completed its hat sequence, but merging into ${q} produced real content conflicts on ${K.length} file(s): ${K.join(", ")}. The merge is left in-progress \u2014 resolve each conflicted file (the workflow engine cannot \u2014 they contain agent-authored content), \`git add\` the resolved files, \`git commit\` to complete the merge, then call \`haiku_run_next { intent: "${X}" }\`. If multiple units in this wave have pending merges, the engine will queue them and surface the next one after this is resolved.`},{isError:!0}):r({action:"merge_failed",status:"completed_merge_failed",intent:t.intent,unit:t.unit,stage:c,unit_branch:`haiku/${X}/${t.unit}`,stage_branch:q,worktree:Re,error:C.message,message:`Unit ${t.unit} completed its hat sequence, but the workflow engine could not merge into ${q}. Git output: ${C.message}. Most common cause: the stage branch's primary worktree has uncommitted engine writes from concurrent dispatch. Inspect with \`git status\` on ${q}; commit any engine-owned dirty files (state.json, units/*.md, baseline.json), then call \`haiku_run_next { intent: "${X}" }\` so the engine retries the merge.`},{isError:!0})}Yr(t.intent,t.state_file);let z=C.message==="no worktree"?"":` (${C.message})`,U=s3(fe(t.intent),c),M=`completed (last hat) \u2014 unit branch merged into ${q}${z}. -${t.unit}: ${y} done \u2014 unit complete`+(U?` -${U}`:"")+UZ(G),H=(()=>{let Re=ne(fe(t.intent),"intent.md");if(!de(Re))return"";let Te=(0,Ht.default)(Pe(Re,"utf8")).data;return typeof Te.studio=="string"?Te.studio:""})(),F=CSt(t.intent,c,t.unit),W=Math.max(0,rv-F),$=H&&W>0?C0(t.intent,()=>PSt(t.intent,H,W)):[];$.length>0&&Dt(`haiku: refill ${$.length} unit slot(s) after ${t.unit}`);let ie;if($.length>0){let Re=$.length===1?"block":"blocks";ie=`${M} +Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let C=Pe(u,"utf8"),{data:F}=re(C),V=F.outputs||[];if(V.length===0){let z=t.state_file;return z&&qi(z,{event:"outputs_empty",intent:t.intent,stage:c,unit:t.unit}),r({error:"unit_outputs_empty",message:"Cannot complete unit: no outputs were produced. Every unit must write at least one artifact that the workflow engine can detect (stage artifact under `stages//...` excluding `units/`/`state.json`, knowledge document under `knowledge/`, or a file matching a stage output template `location:`). The workflow engine auto-populates `outputs:` from the git diff at advance time; if you've written files but they're not showing up, verify they've been committed in the unit worktree, or add them explicitly to the unit's `outputs:` frontmatter field."},{isError:!0})}let K=[],$=[],B=[];for(let z of V){if(Vh(t.intent,t.unit,z)){B.push(z);continue}let J=c5(t.intent,t.unit,z);J?($.push({from:z,to:J}),B.push(J)):(K.push(z),B.push(z))}if($.length>0)try{let z=Pe(u,"utf8"),{data:J,content:oe}=(0,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:B}));let le=t.state_file;le&&qi(le,{event:"outputs_repaired",intent:t.intent,stage:c,unit:t.unit,repaired:$.length})}catch{}if(K.length>0){let z=t.state_file;return z&&qi(z,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:K.length}),r({error:"unit_outputs_missing",missing:K,message:`Cannot complete unit: ${K.length} declared output(s) do not exist on disk: [${K.map(J=>`'${J}'`).join(", ")}]. Each entry in \`outputs:\` MUST be a real file path. If you wrote prose (e.g. "Weekly carryover roll: scheduler trigger, idempotent roll logic"), that's a completion-criteria description, not an output path \u2014 move it to the body's \`## Completion Criteria\` section and let auto-populate fill \`outputs:\` from the actual git diff. (No same-name file with a different extension was found, so this wasn't auto-repairable.)`},{isError:!0})}let X=(f.match(/- \[ \]/g)||[]).length;if(X>0){let z=t.state_file;return z&&qi(z,{event:"criteria_not_met",intent:t.intent,stage:c,unit:t.unit,unchecked:X}),r({error:"criteria_not_met",unchecked:X,message:`Cannot complete unit: ${X} completion criteria still unchecked. Address them, then call haiku_unit_advance_hat again.`},{isError:!0})}i5(u,"advance",t.message),Ke("haiku.unit.completed",{intent:t.intent,stage:c,unit:t.unit});{let z=t.state_file;z&&qi(z,{event:"unit_completed",intent:t.intent,stage:c,unit:t.unit})}let G=s5(`haiku: complete unit ${t.unit}`),M=t.intent,q=`haiku/${M}/${c}`,U=FE(M,c,()=>ype(M,t.unit,c));if(!U.success){let z=ne(process.cwd(),".haiku","worktrees",M,t.unit),J=U.message.match(/^merge_conflict: real conflicts on agent-authored content require resolution: (.+)$/m),oe=J?J[1].split(",").map(le=>le.trim()).filter(Boolean):[];return oe.length>0?r({action:"resolve_merge_conflicts",status:"completed_pending_merge_resolution",intent:t.intent,unit:t.unit,stage:c,unit_branch:`haiku/${M}/${t.unit}`,stage_branch:q,conflict_paths:oe,worktree:z,message:`Unit ${t.unit} completed its hat sequence, but merging into ${q} produced real content conflicts on ${oe.length} file(s): ${oe.join(", ")}. The merge is left in-progress \u2014 resolve each conflicted file (the workflow engine cannot \u2014 they contain agent-authored content), \`git add\` the resolved files, \`git commit\` to complete the merge, then call \`haiku_run_next { intent: "${M}" }\`. If multiple units in this wave have pending merges, the engine will queue them and surface the next one after this is resolved.`},{isError:!0}):r({action:"merge_failed",status:"completed_merge_failed",intent:t.intent,unit:t.unit,stage:c,unit_branch:`haiku/${M}/${t.unit}`,stage_branch:q,worktree:z,error:U.message,message:`Unit ${t.unit} completed its hat sequence, but the workflow engine could not merge into ${q}. Git output: ${U.message}. Most common cause: the stage branch's primary worktree has uncommitted engine writes from concurrent dispatch. Inspect with \`git status\` on ${q}; commit any engine-owned dirty files (state.json, units/*.md, baseline.json), then call \`haiku_run_next { intent: "${M}" }\` so the engine retries the merge.`},{isError:!0})}Xr(t.intent,t.state_file);let D=U.message==="no worktree"?"":` (${U.message})`,H=b9(pe(t.intent),c),j=`completed (last hat) \u2014 unit branch merged into ${q}${D}. +${t.unit}: ${g} done \u2014 unit complete`+(H?` +${H}`:"")+$Y(G),W=(()=>{let z=ne(pe(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(Pe(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=fEt(t.intent,c,t.unit),se=Math.max(0,av-ee),Me=W&&se>0?F0(t.intent,()=>dEt(t.intent,W,se)):[];Me.length>0&&wt(`haiku: refill ${Me.length} unit slot(s) after ${t.unit}`);let Re;if(Me.length>0){let z=Me.length===1?"block":"blocks";Re=`${j} --- -Wave still has work \u2014 spawn the ${$.length} ${Re} below as your next Task call(s) to refill the freed slot(s): +Wave still has work \u2014 spawn the ${Me.length} ${z} below as your next Task call(s) to refill the freed slot(s): -`+$.join(` +`+Me.join(` -`)}else F>0?ie=`${M} +`)}else ee>0?Re=`${j} -No unstarted units are ready to dispatch right now; sibling subagents are still working and will refill the pool as they finish. Terminate this turn \u2014 do NOT call haiku_run_next.`:ie=`${M} +No unstarted units are ready to dispatch right now; sibling subagents are still working and will refill the pool as they finish. Terminate this turn \u2014 do NOT call haiku_run_next.`:Re=`${j} -Wave done \u2014 call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return n(ie)}{let D=`${fe(t.intent)}/intent.md`,{data:j}=re(Pe(D,"utf8")),V=j.studio||"",Z=V?HZ(t.intent,V,c,t.unit):null;if(Z){let B=t.state_file;B&&ts(B,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,hat:y,violations:Z.violations});let G=[...Z.scope.intentGlobs.map(X=>` - \`${X}\` (intent-relative)`),...Z.scope.repoGlobs.map(X=>` - \`${X}\` (repo-relative)`),Z.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` -`);return r({error:"unit_scope_violation",hat:y,violations:Z.violations,scope:Z.scope,message:`Cannot advance hat '${y}': ${Z.violations.length} file(s) were written outside the stage's declared scope. +Wave done \u2014 call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return n(Re)}{let C=`${pe(t.intent)}/intent.md`,{data:F}=re(Pe(C,"utf8")),V=F.studio||"",K=V?n5(t.intent,V,c,t.unit):null;if(K){let $=t.state_file;$&&qi($,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,hat:g,violations:K.violations});let B=[...K.scope.intentGlobs.map(X=>` - \`${X}\` (intent-relative)`),...K.scope.repoGlobs.map(X=>` - \`${X}\` (repo-relative)`),K.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` +`);return r({error:"unit_scope_violation",hat:g,violations:K.violations,scope:K.scope,message:`Cannot advance hat '${g}': ${K.violations.length} file(s) were written outside the stage's declared scope. Out-of-bounds files: -${Z.violations.map(X=>` - ${X}`).join(` +${K.violations.map(X=>` - ${X}`).join(` `)} Allowed paths (stage output templates + workflow engine metadata): -${G} +${B} -Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a no-op on committed files. Or update the stage's output template if this pattern is legitimate. Do NOT advance with scope violations \u2014 downstream hats will run blind.`},{isError:!0})}}let T=E[_];BZ(u,"advance",t.message),KL(u,T);{let D=t.state_file;D&&ts(D,{event:"hat_advanced",intent:t.intent,stage:c,unit:t.unit,hat:T})}Qe("haiku.hat.transition",{intent:t.intent,stage:c,unit:t.unit,hat:T});let A=GZ(`haiku: advance hat to ${T} on ${t.unit}`);Ufe(t.intent,t.unit),Yr(t.intent,t.state_file);let R=FZ(t.intent,c),k=`${t.unit}: ${y} \u2192 ${T} (hat ${_+1}/${E.length})`,x=s3(fe(t.intent),c),N=`advanced to ${T} -${k}`+(x?` -${x}`:"")+(R?` +Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a no-op on committed files. Or update the stage's output template if this pattern is legitimate. Do NOT advance with scope violations \u2014 downstream hats will run blind.`},{isError:!0})}}let T=E[_];i5(u,"advance",t.message),s1(u,T);{let C=t.state_file;C&&qi(C,{event:"hat_advanced",intent:t.intent,stage:c,unit:t.unit,hat:T})}Ke("haiku.hat.transition",{intent:t.intent,stage:c,unit:t.unit,hat:T});let A=s5(`haiku: advance hat to ${T} on ${t.unit}`);tpe(t.intent,t.unit),Xr(t.intent,t.state_file);let R=t5(t.intent,c),x=`${t.unit}: ${g} \u2192 ${T} (hat ${_+1}/${E.length})`,k=b9(pe(t.intent),c),P=`advanced to ${T} +${x}`+(k?` +${k}`:"")+(R?` -${R}`:"")+UZ(A),P=mSt(t.intent,t.unit);return n(d(N,P,t.intent))}case"haiku_unit_reject_hat":{let o=qe(t,wge,"haiku_unit_reject_hat");if(o)return o;let a=t.stage,c,u;if(a){if(u=a,c=Qo(t.intent,u,t.unit),!de(c))return r({error:"unit_not_found",message:`Unit '${t.unit}' not found at stage '${a}' of intent '${t.intent}'.`},{isError:!0})}else{let q=zZ(t.intent,t.unit);if(!q)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});c=q.path,u=q.stage}let l=Xo(t.intent,u);if(l)return l;let{data:d}=re(Pe(c,"utf8")),f=Array.isArray(d.iterations)?d.iterations:[];if(f.length===0)return r({error:"unit_not_started",unit:t.unit,message:`Unit '${t.unit}' has no iterations[]. Cannot reject a hat that hasn't started.`},{isError:!0});let p=f[f.length-1];if(p.completed_at!==null&&p.result!==null)return r({error:"iteration_already_terminal",unit:t.unit,message:`Unit '${t.unit}' last iteration is terminal \u2014 nothing to reject. Call run_next to dispatch the next hat.`},{isError:!0});let h=p.hat,m=TSt(f),y=t.message||void 0,g=Array.isArray(d.outputs)?d.outputs.filter(q=>typeof q=="string"):[],E=[],S=[];for(let q of g)M_(t.intent,t.unit,q)?E.push(q):S.push(q);let _=E.length>0,b=y?/\b(no\s+(?:files?|outputs?|artifacts?)\b|not\s+produced\b|nothing\s+(?:was\s+)?(?:written|produced|created)\b|(?:files?|outputs?|artifacts?)\s+(?:are\s+|were\s+)?(?:missing|absent)\b|missing\s+from\s+disk\b|empty\s+(?:files?|outputs?|artifacts?)\b)/.test(y.toLowerCase()):!1;if(g.length>0&&S.length===0&&b)return r({error:"reject_contradicts_filesystem",unit:t.unit,reason:y,declared_outputs:g,files_present:E,message:"Reject refused: every declared output for this unit exists on disk, but the reject reason claims they are missing. The reviewer's filesystem view is stale (likely running in an isolated git worktree that wasn't seeded with the unit's stage branch). Re-dispatch the reviewer from a worktree that sees the stage branch state, or \u2014 if the reviewer's real concern is content quality, not file presence \u2014 re-issue the reject with a reason that describes the substantive problem. No iteration was recorded; the bolt count is unchanged."},{isError:!0});let T;!_&&g.length>0?T="[NO FILES PRODUCED \u2014 REJECTED FOR MISSING ARTIFACTS]":_?T="[FILES EXIST \u2014 REJECTED FOR CONTENT QUALITY]":T="";let A=xye(y),R=vSt(f,h,A);if(A.length>0&&R+1>=qZ&&m+1<=dv){let q=null;try{let z=`Reject-loop escalation: ${(y||"").trim().slice(0,80)||"unit stuck on same reason"}`,U=`Unit \`${t.unit}\` (stage \`${u}\`) has been rejected ${R+1} consecutive times by hat \`${h}\` for substantially the same reason. The doer cannot fix what requires a spec change, an open question, or user input. +${R}`:"")+$Y(A),N=KSt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,Vge,"haiku_unit_reject_hat");if(o)return o;let a=t.stage,c,u;if(a){if(u=a,c=Pa(t.intent,u,t.unit),!ue(c))return r({error:"unit_not_found",message:`Unit '${t.unit}' not found at stage '${a}' of intent '${t.intent}'.`},{isError:!0})}else{let G=o5(t.intent,t.unit);if(!G)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});c=G.path,u=G.stage}let l=ea(t.intent,u);if(l)return l;let{data:d}=re(Pe(c,"utf8")),f=Array.isArray(d.iterations)?d.iterations:[];if(f.length===0)return r({error:"unit_not_started",unit:t.unit,message:`Unit '${t.unit}' has no iterations[]. Cannot reject a hat that hasn't started.`},{isError:!0});let p=f[f.length-1];if(p.completed_at!==null&&p.result!==null)return r({error:"iteration_already_terminal",unit:t.unit,message:`Unit '${t.unit}' last iteration is terminal \u2014 nothing to reject. Call run_next to dispatch the next hat.`},{isError:!0});let h=p.hat,m=eEt(f),g=t.message||void 0,y=Array.isArray(d.outputs)?d.outputs.filter(G=>typeof G=="string"):[],E=[],S=[];for(let G of y)Vh(t.intent,t.unit,G)?E.push(G):S.push(G);let _=E.length>0,b=g?/\b(no\s+(?:files?|outputs?|artifacts?)\b|not\s+produced\b|nothing\s+(?:was\s+)?(?:written|produced|created)\b|(?:files?|outputs?|artifacts?)\s+(?:are\s+|were\s+)?(?:missing|absent)\b|missing\s+from\s+disk\b|empty\s+(?:files?|outputs?|artifacts?)\b)/.test(g.toLowerCase()):!1;if(y.length>0&&S.length===0&&b)return r({error:"reject_contradicts_filesystem",unit:t.unit,reason:g,declared_outputs:y,files_present:E,message:"Reject refused: every declared output for this unit exists on disk, but the reject reason claims they are missing. The reviewer's filesystem view is stale (likely running in an isolated git worktree that wasn't seeded with the unit's stage branch). Re-dispatch the reviewer from a worktree that sees the stage branch state, or \u2014 if the reviewer's real concern is content quality, not file presence \u2014 re-issue the reject with a reason that describes the substantive problem. No iteration was recorded; the bolt count is unchanged."},{isError:!0});let T;!_&&y.length>0?T="[NO FILES PRODUCED \u2014 REJECTED FOR MISSING ARTIFACTS]":_?T="[FILES EXIST \u2014 REJECTED FOR CONTENT QUALITY]":T="";let A=Jye(g),R=tEt(f,h,A);if(A.length>0&&R+1>=r5&&m+1<=mv){let G=null;try{let q=`Reject-loop escalation: ${(g||"").trim().slice(0,80)||"unit stuck on same reason"}`,U=`Unit \`${t.unit}\` (stage \`${u}\`) has been rejected ${R+1} consecutive times by hat \`${h}\` for substantially the same reason. The doer cannot fix what requires a spec change, an open question, or user input. **Last reject reason**: -> ${y||"(none)"} +> ${g||"(none)"} -**Outputs status**: ${_?`files exist on disk (${E.length}/${g.length} declared)`:g.length>0?"no declared output files exist on disk":"unit declares no outputs"}. +**Outputs status**: ${_?`files exist on disk (${E.length}/${y.length} declared)`:y.length>0?"no declared output files exist on disk":"unit declares no outputs"}. -**Next steps**: revisit the spec/unit, answer any open question the reviewer is pointing at, or split the unit. Reject-loop escalation fires before the ${dv}-bolt cap so the user can intervene without losing the remaining bolts.`,M=fc(t.intent,u,{title:z,body:U,origin:"agent",severity:"blocker",author:"engine",authorType:"system",source_ref:`reject-loop:${t.unit}:${h}`});q=M.feedback_id,Dt(`feedback: reject-loop escalation ${M.feedback_id} on ${t.unit} (${h})`)}catch(C){console.error(`[haiku] reject-loop escalation FB write failed: ${C.message}`)}return r({error:"reject_loop_escalation",unit:t.unit,stage:u,hat:h,bolt:m,consecutive_same_reason_rejects:R+1,min_repeats:qZ,last_reason:y??null,outputs_present:_,outputs_files_present:E,outputs_files_missing:S,escalation_feedback_id:q,message:`${T?`${T} `:""}Reject-loop detected: hat '${h}' has rejected unit '${t.unit}' ${R+1} times in a row for the same reason. The doer cannot resolve this on its own \u2014 the issue likely needs user input, a spec change, or a unit split. Filed system feedback ${q??"(write failed)"} so the user sees the stuck state. Stop iterating and escalate. (Loop signal fires at ${qZ} consecutive same-reason rejects from the same hat, ${dv-(m+1)} bolts ahead of the hard cap.)`},{isError:!0})}if(m+1>dv)return r({error:"max_bolts_exceeded",bolt:m,max:dv,outputs_present:_,outputs_files_present:E,outputs_files_missing:S,message:`${T?`${T} `:""}Unit has exceeded ${dv} bolt iterations. Escalate to the user \u2014 this unit needs structural intervention, not another retry. To restart it clean (e.g. the spec premise was wrong, or the work should redo from scratch), reset it: \`haiku_unit_reset { intent: "${t.intent}", stage: "${u}", unit: "${t.unit}" }\` \u2014 returns the unit to pending and discards its worktree (siblings + the stage branch untouched); then rewrite the spec with haiku_unit_write if needed and re-run. Or split it into smaller units.`},{isError:!0});{let q=`${fe(t.intent)}/intent.md`,{data:C}=re(Pe(q,"utf8")),z=C.studio||"",U=z?HZ(t.intent,z,u,t.unit):null;if(U)return r({error:"unit_scope_violation_on_reject",bolt:m,violations:U.violations,scope:U.scope,message:`Cannot reject hat: the unit worktree still contains ${U.violations.length} out-of-scope write(s) that must be reverted first. +**Next steps**: revisit the spec/unit, answer any open question the reviewer is pointing at, or split the unit. Reject-loop escalation fires before the ${mv}-bolt cap so the user can intervene without losing the remaining bolts.`,D=Qo(t.intent,u,{title:q,body:U,origin:"agent",severity:"blocker",author:"engine",authorType:"system",source_ref:`reject-loop:${t.unit}:${h}`});G=D.feedback_id,wt(`feedback: reject-loop escalation ${D.feedback_id} on ${t.unit} (${h})`)}catch(M){console.error(`[haiku] reject-loop escalation FB write failed: ${M.message}`)}return r({error:"reject_loop_escalation",unit:t.unit,stage:u,hat:h,bolt:m,consecutive_same_reason_rejects:R+1,min_repeats:r5,last_reason:g??null,outputs_present:_,outputs_files_present:E,outputs_files_missing:S,escalation_feedback_id:G,message:`${T?`${T} `:""}Reject-loop detected: hat '${h}' has rejected unit '${t.unit}' ${R+1} times in a row for the same reason. The doer cannot resolve this on its own \u2014 the issue likely needs user input, a spec change, or a unit split. Filed system feedback ${G??"(write failed)"} so the user sees the stuck state. Stop iterating and escalate. (Loop signal fires at ${r5} consecutive same-reason rejects from the same hat, ${mv-(m+1)} bolts ahead of the hard cap.)`},{isError:!0})}if(m+1>mv)return r({error:"max_bolts_exceeded",bolt:m,max:mv,outputs_present:_,outputs_files_present:E,outputs_files_missing:S,message:`${T?`${T} `:""}Unit has exceeded ${mv} bolt iterations. Escalate to the user \u2014 this unit needs structural intervention, not another retry. To restart it clean (e.g. the spec premise was wrong, or the work should redo from scratch), reset it: \`haiku_unit_reset { intent: "${t.intent}", stage: "${u}", unit: "${t.unit}" }\` \u2014 returns the unit to pending and discards its worktree (siblings + the stage branch untouched); then rewrite the spec with haiku_unit_write if needed and re-run. Or split it into smaller units.`},{isError:!0});{let G=`${pe(t.intent)}/intent.md`,{data:M}=re(Pe(G,"utf8")),q=M.studio||"",U=q?n5(t.intent,q,u,t.unit):null;if(U)return r({error:"unit_scope_violation_on_reject",bolt:m,violations:U.violations,scope:U.scope,message:`Cannot reject hat: the unit worktree still contains ${U.violations.length} out-of-scope write(s) that must be reverted first. Out-of-bounds files: -${U.violations.map(M=>` - ${M}`).join(` +${U.violations.map(D=>` - ${D}`).join(` `)} -Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${u})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a NO-OP on committed files and will not clear the violation. After the revert, call reject_hat again.`},{isError:!0})}let k=YL(t.intent,u,t.unit),x=re(Pe(`${fe(t.intent)}/intent.md`,"utf8")).data.studio||"",N=x?Iu(x,u):{},{targetHat:P}=Tpe(k,h,{assessorToFirst:!0,assessorHat:WZ,roleOf:q=>N[q]?.role});if(Bo.modelSelection){let q=d.model,C=hfe(q);q&&C&&(je(c,"model_original",q),je(c,"model",C),console.error(`[haiku] model escalated: ${q} \u2192 ${C} (hat rejected, iteration ${m+1})`))}let D=y;BZ(c,"reject",D),KL(c,P);{let q=t.state_file;q&&ts(q,{event:"unit_failed",intent:t.intent,stage:u,unit:t.unit,from_hat:h,to_hat:P,bolt:m+1})}Qe("haiku.unit.failed",{intent:t.intent,stage:u,unit:t.unit,hat:h,prev_hat:P,bolt:String(m+1)});let j=Dt(`haiku: fail ${t.unit} \u2014 back to ${P}, iteration ${m+1}`);Yr(t.intent,t.state_file);let V=mSt(t.intent,t.unit),Z=T?`${T} `:"",B=s3(fe(t.intent),u),G=`${Z}rejected \u2014 back to ${P} (iteration ${m+1}). Reason: ${D??"(none)"} -${t.unit}: ${h} \u2192 ${P} (bounced back, iteration ${m+1})`+(B?` -${B}`:"")+UZ(j),X=V&&V.length>0?`${G} +Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${u})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a NO-OP on committed files and will not clear the violation. After the revert, call reject_hat again.`},{isError:!0})}let x=Wye(t.intent,u,t.unit),k=re(Pe(`${pe(t.intent)}/intent.md`,"utf8")).data.studio||"",P=k?Mu(k,u):{},{targetHat:N}=Fpe(x,h,{assessorToFirst:!0,assessorHat:uEt,roleOf:G=>P[G]?.role});if(zo.modelSelection){let G=d.model,M=Cfe(G);G&&M&&(De(c,"model_original",G),De(c,"model",M),console.error(`[haiku] model escalated: ${G} \u2192 ${M} (hat rejected, iteration ${m+1})`))}let C=g;i5(c,"reject",C),s1(c,N);{let G=t.state_file;G&&qi(G,{event:"unit_failed",intent:t.intent,stage:u,unit:t.unit,from_hat:h,to_hat:N,bolt:m+1})}Ke("haiku.unit.failed",{intent:t.intent,stage:u,unit:t.unit,hat:h,prev_hat:N,bolt:String(m+1)});let F=wt(`haiku: fail ${t.unit} \u2014 back to ${N}, iteration ${m+1}`);Xr(t.intent,t.state_file);let V=KSt(t.intent,t.unit),K=T?`${T} `:"",$=b9(pe(t.intent),u),B=`${K}rejected \u2014 back to ${N} (iteration ${m+1}). Reason: ${C??"(none)"} +${t.unit}: ${h} \u2192 ${N} (bounced back, iteration ${m+1})`+($?` +${$}`:"")+$Y(F),X=V&&V.length>0?`${B} --- Wave still has work \u2014 spawn the block below as your next Task call: -${V}`:`${G} +${V}`:`${B} -Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return r({ok:!0,unit:t.unit,stage:u,prev_hat:P,bolt:m+1,reason:D??null,outputs_present:_,outputs_files_present:E,outputs_files_missing:S,next_subagent_dispatch_block:V,message:X})}case"haiku_unit_read":{let o=qe(t,kge,"haiku_unit_read");if(o)return o;let a=Xo(t.intent,t.stage);if(a)return a;let c=Qo(t.intent,t.stage,t.unit);if(!de(c))return r({error:"unit_not_found",intent:t.intent,stage:t.stage,unit:t.unit,message:`No unit '${t.unit}' in stage '${t.stage}'.`},{isError:!0});Aye(c);let{data:u,body:l}=re(Pe(c,"utf8")),d=typeof u.title=="string"?u.title:"",f=l.match(/^#\s+(.+)$/m),p=d||(f?f[1].trim():t.unit);return r({title:p,body:l})}case"haiku_read_hat":{let o=qe(t,pge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=pI(a,c,u,l);return d===null?r({error:"hat_not_found",studio:a,stage:c,hat:u,fix:l,message:`No ${l?"fix-scoped or production ":""}mandate for hat '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({hat:u,body:d})}case"haiku_read_stage":{let o=qe(t,hge,"haiku_read_stage");if(o)return o;let a=t.studio,c=t.stage,u=Ih(a,c);return u===null?r({error:"stage_not_found",studio:a,stage:c,message:`No STAGE.md for studio '${a}' stage '${c}'.`},{isError:!0}):r({stage:c,body:u})}case"haiku_read_review_agent":{let o=qe(t,gge,"haiku_read_review_agent");if(o)return o;let a=t.studio,c=t.stage||"",u=t.role,l=kh(a,c||void 0,u);return l===null?r({error:"review_agent_not_found",studio:a,stage:c||null,role:u,message:`No ${c?"stage-scope":"intent-completion"} review agent '${u}' in studio '${a}'${c?` stage '${c}'`:""}. (Engine-built-in roles like spec/continuity/cross-stage-consistency are generated, not files \u2014 they are not readable here.)`},{isError:!0}):r({role:u,body:l})}case"haiku_read_intent":{let o=qe(t,mge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Hh(a);return c===null?r({error:"intent_not_found",intent:a,message:`No intent.md for '${a}'.`},{isError:!0}):r({intent:a,body:c})}case"haiku_read_discovery":{let o=qe(t,yge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=hI(a,c,u);return l===null?r({error:"discovery_template_not_found",studio:a,stage:c,template:u,message:`No discovery template '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({template:u,body:l})}case"haiku_read_phase":{let o=qe(t,Sge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=AK(a,c,u);return l===null?r({error:"phase_not_found",studio:a,stage:c,phase:u,message:`No '${u}' phase override for studio '${a}' stage '${c}'.`},{isError:!0}):r({phase:u,body:l})}case"haiku_read_output":{let o=qe(t,_ge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=vK(a,c,u);return l===null?r({error:"output_template_not_found",studio:a,stage:c,name:u,message:`No output template '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({name:u,body:l})}case"haiku_unit_delete":{let o=qe(t,Ige,"haiku_unit_delete");if(o)return o;let a=Xo(t.intent,t.stage);if(a)return a;let c=Qo(t.intent,t.stage,t.unit);if(!de(c))return r({error:"unit_not_found",intent:t.intent,stage:t.stage,unit:t.unit,message:`No unit '${t.unit}' in stage '${t.stage}'.`},{isError:!0});let{data:u}=re(Pe(c,"utf8")),l=U0(u);return l!=="pending"?r({error:"lifecycle_violation",current_status:l,required_status:"pending",message:`Cannot delete unit '${t.unit}' \u2014 status is '${l}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once they enter active or completed status because downstream work has been informed by them. Pending units only.`},{isError:!0}):(Eye(c),si(t.intent),Qe("haiku.unit.deleted",{intent:t.intent,stage:t.stage,unit:t.unit}),r({ok:!0,message:`Deleted pending unit '${t.unit}'.`}))}case"haiku_unit_write":{let o=qe(t,xge,"haiku_unit_write");if(o)return o;let a=Xo(t.intent,t.stage);if(a)return a;let c=t.intent,u=t.stage,l=t.unit,d=t.body??"",f=t.frontmatter??{};if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty bodies cannot pass downstream verification."},{isError:!0});let p=Qo(c,u,l),h=!0;if(de(p)){let{data:k}=re(Pe(p,"utf8")),x=U0(k);if(x!=="pending")return r({error:"lifecycle_violation",current_status:x,message:`Cannot rewrite unit '${l}' \u2014 status is '${x}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once active or completed. To address a defect in a completed unit, draft a NEW pending unit in the next elaborate iteration; do not modify the original.`},{isError:!0});h=!1}let m=ne(vr(c,u),"units"),y=[],g={};if(de(m))for(let k of un(m).filter(x=>x.endsWith(".md"))){let x=k.replace(/\.md$/,"");y.push(x);try{let N=re(Pe(ne(m,k),"utf8")).data;Array.isArray(N.outputs)&&(g[x]=N.outputs.filter(P=>typeof P=="string").map(P=>P.trim()))}catch{}}y.includes(l)||y.push(l);let E="knowledge";try{let k=ne(fe(c),"intent.md");if(de(k)){let x=re(Pe(k,"utf8")).data.studio||"",N=x?_i(x):null;if(N){let P=Yi(N.dir,u);P&&P.data.produces==="build"&&(E="build")}}}catch{}let S=ISt(f,{intent:c,stage:u,unit:l,siblingUnits:y,siblingOutputs:g,stageProduces:E});if(!S.valid)return r({error:"frontmatter_validation_failed",errors:S.errors,message:"Frontmatter failed validation. Fix each error and call again. Architecture \xA71.1 mandates that the workflow engine enforces FM validity at write time, so the agent never sees defects sneak through."},{isError:!0});let _={};if(de(m))for(let k of un(m).filter(x=>x.endsWith(".md"))){let x=k.replace(/\.md$/,"");if(x===l)continue;let{data:N}=re(Pe(ne(m,k),"utf8"));_[x]=Array.isArray(N.depends_on)?N.depends_on:[]}_[l]=Array.isArray(f.depends_on)?f.depends_on:[];let b=xSt(_);if(b.length>0)return r({error:"dag_cycle_detected",cycle_nodes:b,message:`Writing unit '${l}' with depends_on=[${f.depends_on?.join(", ")??""}] would create a dependency cycle involving: [${b.join(", ")}]. The workflow engine rejects writes that produce a cyclic DAG. Reorder dependencies or restructure the units.`},{isError:!0});let T=$Kn(d);if(T)return r(T,{isError:!0});let A=e3n(l,f);if(A)return r(A,{isError:!0});let R={...f,status:"pending"};if(!("title"in R)){let k=d.match(/^#\s+(.+)$/m);R.title=k?k[1].trim():l}return h&&!de(m)&&Ol(m,{recursive:!0}),Mn(p,Ht.default.stringify(`${d.trimEnd()} -`,R)),si(c),Qe(h?"haiku.unit.created":"haiku.unit.rewritten",{intent:c,stage:u,unit:l}),r({ok:!0,created:h,unit:l,stage:u,intent:c,message:h?`Created unit '${l}' in stage '${u}' (status: pending).`:`Rewrote unit '${l}' in stage '${u}' (status preserved as pending).`})}case"haiku_reconciliation_acknowledge":{let o=qe(t,jme,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||WL(a),l=t.rationale?.trim();if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});if(!l||l.length<10)return r({error:"rationale_required",message:"haiku_reconciliation_acknowledge requires a rationale of at least 10 characters explaining why the divergence is intentional. Acknowledging without explanation defeats the purpose of the reconciliation log."},{isError:!0});let d=ne(fe(a),"stages",u);Ol(d,{recursive:!0});let f=ne(d,"upstream-reconciliation.json");return ZL(f,{acknowledged:!0,acknowledged_at:En(),rationale:l}),pSt(a,u,{decision:"Upstream reconciliation acknowledged",options:["reconcile upstream artifacts","acknowledge divergence"],choice:"acknowledge divergence",source:"autonomous-acknowledged",rationale:l,kind:"upstream_reconciliation",recorded_at:En()}),si(a),Qe("haiku.reconciliation.acknowledged",{intent:a,stage:u}),r({ok:!0,intent:a,stage:u,rationale:l})}case"haiku_decision_record":{let o=qe(t,Fme,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||WL(a);if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});let l=ne(fe(a),"stages",u);Ol(l,{recursive:!0});let d=t.no_decisions===!0,f=t.rationale?.trim();if(d){if(!f||f.length<10)return r({error:"rationale_required",message:"no_decisions=true requires a rationale of at least 10 characters explaining why no architectural decisions are in scope for this stage. State the convention or constraint that makes the work routine (e.g. 'all units follow the team's standard CRUD scaffolding; no architectural choices remain after design stage')."},{isError:!0});let E=ne(l,"no-decisions.json");return ZL(E,{declared:!0,declared_at:En(),rationale:f}),si(a),Qe("haiku.elaboration.no_decisions_declared",{intent:a,stage:u}),r({ok:!0,intent:a,stage:u,no_decisions:!0,rationale:f})}let p=t.decision?.trim(),h=t.options,m=t.choice?.trim(),y=t.source;if(!p||!h||!m||!y)return r({error:"missing_fields",message:"haiku_decision_record requires `decision`, `options`, `choice`, and `source` (or `no_decisions: true` with `rationale`)."},{isError:!0});if(!Array.isArray(h)||h.length<2)return r({error:"options_too_few",message:"`options` must be an array of at least 2 concrete alternatives. A 'decision' with only one option isn't a decision \u2014 it's just doing the work. If the work is forced, use `no_decisions: true` with a rationale instead."},{isError:!0});if(!h.includes(m))return r({error:"choice_not_in_options",message:`\`choice\` must match one of the entries in \`options\`. Got choice=${JSON.stringify(m)}; options=${JSON.stringify(h)}. The decision-log is provenance \u2014 recording a choice that wasn't in the presented alternatives corrupts the very property the log exists to preserve.`},{isError:!0});if(y!=="user"&&y!=="autonomous-acknowledged")return r({error:"invalid_source",message:'`source` must be "user" (the user picked between the options) or "autonomous-acknowledged" (you chose and surfaced the choice for the user to veto, and they did not push back).'},{isError:!0});pSt(a,u,{decision:p,options:h,choice:m,source:y,rationale:f||null,recorded_at:En()});let g=QK(a,u).length;return si(a),Qe("haiku.decision.recorded",{intent:a,stage:u,source:y}),r({ok:!0,intent:a,stage:u,decision_count:g})}case"haiku_knowledge_list":{let o=qe(t,Hme,"haiku_knowledge_list");if(o)return o;let a=ne(fe(t.intent),"knowledge");if(!de(a))return r({files:[]});let c=un(a).filter(u=>u.endsWith(".md"));return r({files:c})}case"haiku_knowledge_read":{let o=qe(t,qme,"haiku_knowledge_read");if(o)return o;let a=ne(fe(t.intent),"knowledge",t.name);return de(a)?r({found:!0,name:t.name,content:Pe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=qe(t,TL,"haiku_skill_list");return o||r({skills:F0()})}case"haiku_studio_list":{let o=qe(t,TL,"haiku_studio_list");if(o)return o;let a=mI().map(c=>({name:c.name,slug:c.slug,aliases:c.aliases,dir:c.dir,description:c.description,category:c.category,stages:c.stages,source:c.source,path:c.path,studio_md:c.studioFile,body:c.body.slice(0,200)}));return r({studios:a})}case"haiku_studio_get":{let o=qe(t,Bme,"haiku_studio_get");if(o)return o;let a=_i(t.studio);return r(a?{found:!0,name:a.name,slug:a.slug,aliases:a.aliases,dir:a.dir,description:a.description,category:a.category,stages:a.stages,source:a.source,path:a.path,studio_md:a.studioFile,body:a.body,...a.data}:{found:!1})}case"haiku_studio_stage_get":{let o=qe(t,Gme,"haiku_studio_stage_get");if(o)return o;let a=_i(t.studio);if(!a)return r({found:!1});let c=t.stage,u=ne(a.path,"stages",c,"STAGE.md");if(!de(u))return r({found:!1});let l=Pe(u,"utf8"),{data:d,body:f}=re(l);return r({found:!0,...d,body:f,studio:a.name,studio_dir:a.dir,stage_md:u})}case"haiku_settings_get":{let o=qe(t,zme,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=ne(we(),"settings.yml")}catch{}if(!(c&&de(c)))return r({found:!1,field:a,value:null});let u=Pe(c,"utf8"),l=hSt(u),d=a3n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=qe(t,Vme,"haiku_settings_set");if(o)return o;let a=t.field,c=t.value,u=(m,y)=>r({error:m,field:a,message:y},{isError:!0}),l="";try{l=ne(we(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...de(l)?hSt(Pe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!n3n(f)){let m=r3n()[0];return u("settings_field_validation_failed",`Field '${a}' fails settings.schema.json validation: ${m?.instancePath||"(root)"} ${m?.message||"invalid"}.`)}let h=Ht.default.engines.yaml.stringify(f);return Mn(l,h),r({ok:!0,field:a,message:c==null?`Deleted '${a}' from .haiku/settings.yml`:`Set '${a}' in .haiku/settings.yml`})}case"haiku_intent_set":{let o=qe(t,Ume,"haiku_intent_set");if(o)return o;let a=t.intent,c=t.field,u=t.value,l=(h,m)=>r({error:h,intent:a,field:c,message:m},{isError:!0}),d=u_();if(!d&&ZT.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${ZT.join(", ")}.`);if(!d&&eZ.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!KT.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${KT.filter(h=>!eZ.includes(h)).join(", ")}.`);let f="";try{f=ne(fe(a),"intent.md")}catch(h){return l("haiku_root_not_found",`Could not resolve intent dir: ${h.message}`)}if(!de(f))return l("intent_not_found",`Intent '${a}' not found at ${f}.`);let p={[c]:u};if(!y0(p)){let h=y0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return je(f,c,u),Dt(`haiku: intent ${a} set ${c} via haiku_intent_set`),r({ok:!0,intent:a,field:c,message:`Set intent.${c} on '${a}'.`})}case"haiku_stage_set":{let o=qe(t,dge,"haiku_stage_set");if(o)return o;let a=t.intent,c=t.stage,u=t.field;t.value;let l=(d,f)=>r({error:d,intent:a,stage:c,field:u,message:f},{isError:!0});return!u||typeof u!="string"?l("stage_field_required","`field` is required"):l("stage_field_engine_only",`Stage state.json is workflow engine-managed \u2014 agents cannot set fields directly. Stage fields are mutated by haiku_run_next ticks (start, advance phase, complete) and lifecycle tools (haiku_unit_advance_hat, haiku_feedback_advance_hat). To force a stage transition manually, use /haiku:haiku-repair, or file a stage_revisit feedback via \`haiku_feedback({ resolution: "stage_revisit" })\` to re-open the target stage. Field '${u}' on stage '${c}' of intent '${a}' was not written.`)}case"haiku_capacity":{let o=qe(t,Wme,"haiku_capacity");if(o)return o;let a=t.studio||"",c=a||null,u;try{u=we()}catch{return r({markdown:"No .haiku directory found.",studio:c})}let l=ne(u,"intents");if(!de(l))return r({markdown:"No intents found.",studio:c});let d=Mg(l),f=m=>{if(m.length===0)return 0;let y=[...m].sort((E,S)=>E-S),g=Math.floor(y.length/2);return y.length%2!==0?y[g]:(y[g-1]+y[g])/2},p=new Map;for(let{slug:m,data:y}of d){let g=y.studio||"unassigned";if(a&&g!==a)continue;p.has(g)||p.set(g,[]);let E=typeof y.plugin_version=="string",S=y.status||"",_=E?typeof y.sealed_at=="string"&&y.sealed_at?"completed":"active":"",b=S||_||"unknown";p.get(g)?.push({slug:m,status:b,data:y})}if(p.size===0)return r({markdown:a?`No intents found for studio '${a}'.`:"No intents found.",studio:c});let h=`# Capacity Report -`;for(let[m,y]of p){let g=y.filter(_=>_.status==="completed").length,E=y.filter(_=>_.status==="active").length;h+=` +Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return r({ok:!0,unit:t.unit,stage:u,prev_hat:N,bolt:m+1,reason:C??null,outputs_present:_,outputs_files_present:E,outputs_files_missing:S,next_subagent_dispatch_block:V,message:X})}case"haiku_unit_read":{let o=Be(t,Wge,"haiku_unit_read");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",intent:t.intent,stage:t.stage,unit:t.unit,message:`No unit '${t.unit}' in stage '${t.stage}'.`},{isError:!0});zye(c);let{data:u,body:l}=re(Pe(c,"utf8")),d=typeof u.title=="string"?u.title:"",f=l.match(/^#\s+(.+)$/m),p=d||(f?f[1].trim():t.unit);return r({title:p,body:l})}case"haiku_read_hat":{let o=Be(t,Nge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=SI(a,c,u,l);return d===null?r({error:"hat_not_found",studio:a,stage:c,hat:u,fix:l,message:`No ${l?"fix-scoped or production ":""}mandate for hat '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({hat:u,body:d})}case"haiku_read_stage":{let o=Be(t,Cge,"haiku_read_stage");if(o)return o;let a=t.studio,c=t.stage,u=Mh(a,c);return u===null?r({error:"stage_not_found",studio:a,stage:c,message:`No STAGE.md for studio '${a}' stage '${c}'.`},{isError:!0}):r({stage:c,body:u})}case"haiku_read_review_agent":{let o=Be(t,Dge,"haiku_read_review_agent");if(o)return o;let a=t.studio,c=t.stage||"",u=t.role,l=Ch(a,c||void 0,u);return l===null?r({error:"review_agent_not_found",studio:a,stage:c||null,role:u,message:`No ${c?"stage-scope":"intent-completion"} review agent '${u}' in studio '${a}'${c?` stage '${c}'`:""}. (Engine-built-in roles like spec/continuity/cross-stage-consistency are generated, not files \u2014 they are not readable here.)`},{isError:!0}):r({role:u,body:l})}case"haiku_read_intent":{let o=Be(t,Mge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Wh(a);return c===null?r({error:"intent_not_found",intent:a,message:`No intent.md for '${a}'.`},{isError:!0}):r({intent:a,body:c})}case"haiku_read_discovery":{let o=Be(t,Lge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=EI(a,c,u);return l===null?r({error:"discovery_template_not_found",studio:a,stage:c,template:u,message:`No discovery template '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({template:u,body:l})}case"haiku_read_phase":{let o=Be(t,Uge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=FK(a,c,u);return l===null?r({error:"phase_not_found",studio:a,stage:c,phase:u,message:`No '${u}' phase override for studio '${a}' stage '${c}'.`},{isError:!0}):r({phase:u,body:l})}case"haiku_read_output":{let o=Be(t,Fge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=UK(a,c,u);return l===null?r({error:"output_template_not_found",studio:a,stage:c,name:u,message:`No output template '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({name:u,body:l})}case"haiku_unit_delete":{let o=Be(t,Kge,"haiku_unit_delete");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",intent:t.intent,stage:t.stage,unit:t.unit,message:`No unit '${t.unit}' in stage '${t.stage}'.`},{isError:!0});let{data:u}=re(Pe(c,"utf8")),l=B0(u);return l!=="pending"?r({error:"lifecycle_violation",current_status:l,required_status:"pending",message:`Cannot delete unit '${t.unit}' \u2014 status is '${l}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once they enter active or completed status because downstream work has been informed by them. Pending units only.`},{isError:!0}):(Hye(c),ci(t.intent),Ke("haiku.unit.deleted",{intent:t.intent,stage:t.stage,unit:t.unit}),r({ok:!0,message:`Deleted pending unit '${t.unit}'.`}))}case"haiku_unit_write":{let o=Be(t,Yge,"haiku_unit_write");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=t.intent,u=t.stage,l=t.unit,d=t.body??"",f=t.frontmatter??{};if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty bodies cannot pass downstream verification."},{isError:!0});let p=Pa(c,u,l),h=!0;if(ue(p)){let{data:x}=re(Pe(p,"utf8")),k=B0(x);if(k!=="pending")return r({error:"lifecycle_violation",current_status:k,message:`Cannot rewrite unit '${l}' \u2014 status is '${k}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once active or completed. To address a defect in a completed unit, draft a NEW pending unit in the next elaborate iteration; do not modify the original.`},{isError:!0});h=!1}let m=ne(ar(c,u),"units"),g=[],y={};if(ue(m))for(let x of an(m).filter(k=>k.endsWith(".md"))){let k=x.replace(/\.md$/,"");g.push(k);try{let P=re(Pe(ne(m,x),"utf8")).data;Array.isArray(P.outputs)&&(y[k]=P.outputs.filter(N=>typeof N=="string").map(N=>N.trim()))}catch{}}g.includes(l)||g.push(l);let E="knowledge";try{let x=ne(pe(c),"intent.md");if(ue(x)){let k=re(Pe(x,"utf8")).data.studio||"",P=k?si(k):null;if(P){let N=$i(P.dir,u);N&&N.data.produces==="build"&&(E="build")}}}catch{}let S=oEt(f,{intent:c,stage:u,unit:l,siblingUnits:g,siblingOutputs:y,stageProduces:E});if(!S.valid)return r({error:"frontmatter_validation_failed",errors:S.errors,message:"Frontmatter failed validation. Fix each error and call again. Architecture \xA71.1 mandates that the workflow engine enforces FM validity at write time, so the agent never sees defects sneak through."},{isError:!0});let _={};if(ue(m))for(let x of an(m).filter(k=>k.endsWith(".md"))){let k=x.replace(/\.md$/,"");if(k===l)continue;let{data:P}=re(Pe(ne(m,x),"utf8"));_[k]=Array.isArray(P.depends_on)?P.depends_on:[]}_[l]=Array.isArray(f.depends_on)?f.depends_on:[];let b=aEt(_);if(b.length>0)return r({error:"dag_cycle_detected",cycle_nodes:b,message:`Writing unit '${l}' with depends_on=[${f.depends_on?.join(", ")??""}] would create a dependency cycle involving: [${b.join(", ")}]. The workflow engine rejects writes that produce a cyclic DAG. Reorder dependencies or restructure the units.`},{isError:!0});let T=$9n(d);if(T)return r(T,{isError:!0});let A=e3n(l,f);if(A)return r(A,{isError:!0});let R={...f,status:"pending"};if(!("title"in R)){let x=d.match(/^#\s+(.+)$/m);R.title=x?x[1].trim():l}return h&&!ue(m)&&Ml(m,{recursive:!0}),In(p,Ct.default.stringify(`${d.trimEnd()} +`,R)),ci(c),Ke(h?"haiku.unit.created":"haiku.unit.rewritten",{intent:c,stage:u,unit:l}),r({ok:!0,created:h,unit:l,stage:u,intent:c,message:h?`Created unit '${l}' in stage '${u}' (status: pending).`:`Rewrote unit '${l}' in stage '${u}' (status preserved as pending).`})}case"haiku_reconciliation_acknowledge":{let o=Be(t,nge,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||i1(a),l=t.rationale?.trim();if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});if(!l||l.length<10)return r({error:"rationale_required",message:"haiku_reconciliation_acknowledge requires a rationale of at least 10 characters explaining why the divergence is intentional. Acknowledging without explanation defeats the purpose of the reconciliation log."},{isError:!0});let d=ne(pe(a),"stages",u);Ml(d,{recursive:!0});let f=ne(d,"upstream-reconciliation.json");return o1(f,{acknowledged:!0,acknowledged_at:_n(),rationale:l}),VSt(a,u,{decision:"Upstream reconciliation acknowledged",options:["reconcile upstream artifacts","acknowledge divergence"],choice:"acknowledge divergence",source:"autonomous-acknowledged",rationale:l,kind:"upstream_reconciliation",recorded_at:_n()}),ci(a),Ke("haiku.reconciliation.acknowledged",{intent:a,stage:u}),r({ok:!0,intent:a,stage:u,rationale:l})}case"haiku_decision_record":{let o=Be(t,rge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||i1(a);if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});let l=ne(pe(a),"stages",u);Ml(l,{recursive:!0});let d=t.no_decisions===!0,f=t.rationale?.trim();if(d){if(!f||f.length<10)return r({error:"rationale_required",message:"no_decisions=true requires a rationale of at least 10 characters explaining why no architectural decisions are in scope for this stage. State the convention or constraint that makes the work routine (e.g. 'all units follow the team's standard CRUD scaffolding; no architectural choices remain after design stage')."},{isError:!0});let E=ne(l,"no-decisions.json");return o1(E,{declared:!0,declared_at:_n(),rationale:f}),ci(a),Ke("haiku.elaboration.no_decisions_declared",{intent:a,stage:u}),r({ok:!0,intent:a,stage:u,no_decisions:!0,rationale:f})}let p=t.decision?.trim(),h=t.options,m=t.choice?.trim(),g=t.source;if(!p||!h||!m||!g)return r({error:"missing_fields",message:"haiku_decision_record requires `decision`, `options`, `choice`, and `source` (or `no_decisions: true` with `rationale`)."},{isError:!0});if(!Array.isArray(h)||h.length<2)return r({error:"options_too_few",message:"`options` must be an array of at least 2 concrete alternatives. A 'decision' with only one option isn't a decision \u2014 it's just doing the work. If the work is forced, use `no_decisions: true` with a rationale instead."},{isError:!0});if(!h.includes(m))return r({error:"choice_not_in_options",message:`\`choice\` must match one of the entries in \`options\`. Got choice=${JSON.stringify(m)}; options=${JSON.stringify(h)}. The decision-log is provenance \u2014 recording a choice that wasn't in the presented alternatives corrupts the very property the log exists to preserve.`},{isError:!0});if(g!=="user"&&g!=="autonomous-acknowledged")return r({error:"invalid_source",message:'`source` must be "user" (the user picked between the options) or "autonomous-acknowledged" (you chose and surfaced the choice for the user to veto, and they did not push back).'},{isError:!0});VSt(a,u,{decision:p,options:h,choice:m,source:g,rationale:f||null,recorded_at:_n()});let y=h9(a,u).length;return ci(a),Ke("haiku.decision.recorded",{intent:a,stage:u,source:g}),r({ok:!0,intent:a,stage:u,decision_count:y})}case"haiku_knowledge_list":{let o=Be(t,ige,"haiku_knowledge_list");if(o)return o;let a=ne(pe(t.intent),"knowledge");if(!ue(a))return r({files:[]});let c=an(a).filter(u=>u.endsWith(".md"));return r({files:c})}case"haiku_knowledge_read":{let o=Be(t,sge,"haiku_knowledge_read");if(o)return o;let a=ne(pe(t.intent),"knowledge",t.name);return ue(a)?r({found:!0,name:t.name,content:Pe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,CL,"haiku_skill_list");return o||r({skills:V0()})}case"haiku_studio_list":{let o=Be(t,CL,"haiku_studio_list");if(o)return o;let a=_I().filter(c=>c.data.deprecated!==!0).map(c=>({name:c.name,slug:c.slug,aliases:c.aliases,dir:c.dir,description:c.description,category:c.category,stages:c.stages,source:c.source,path:c.path,studio_md:c.studioFile,body:c.body.slice(0,200)}));return r({studios:a})}case"haiku_studio_get":{let o=Be(t,oge,"haiku_studio_get");if(o)return o;let a=si(t.studio);return r(a?{found:!0,name:a.name,slug:a.slug,aliases:a.aliases,dir:a.dir,description:a.description,category:a.category,stages:a.stages,source:a.source,path:a.path,studio_md:a.studioFile,body:a.body,...a.data}:{found:!1})}case"haiku_studio_stage_get":{let o=Be(t,age,"haiku_studio_stage_get");if(o)return o;let a=si(t.studio);if(!a)return r({found:!1});let c=t.stage,u=ne(a.path,"stages",c,"STAGE.md");if(!ue(u))return r({found:!1});let l=Pe(u,"utf8"),{data:d,body:f}=re(l);return r({found:!0,...d,body:f,studio:a.name,studio_dir:a.dir,stage_md:u})}case"haiku_settings_get":{let o=Be(t,cge,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=ne(ve(),"settings.yml")}catch{}if(!(c&&ue(c)))return r({found:!1,field:a,value:null});let u=Pe(c,"utf8"),l=WSt(u),d=a3n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,uge,"haiku_settings_set");if(o)return o;let a=t.field,c=t.value,u=(m,g)=>r({error:m,field:a,message:g},{isError:!0}),l="";try{l=ne(ve(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?WSt(Pe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!n3n(f)){let m=r3n()[0];return u("settings_field_validation_failed",`Field '${a}' fails settings.schema.json validation: ${m?.instancePath||"(root)"} ${m?.message||"invalid"}.`)}let h=Ct.default.engines.yaml.stringify(f);return In(l,h),r({ok:!0,field:a,message:c==null?`Deleted '${a}' from .haiku/settings.yml`:`Set '${a}' in .haiku/settings.yml`})}case"haiku_intent_set":{let o=Be(t,tge,"haiku_intent_set");if(o)return o;let a=t.intent,c=t.field,u=t.value,l=(h,m)=>r({error:h,intent:a,field:c,message:m},{isError:!0}),d=hE();if(!d&&XT.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${XT.join(", ")}.`);if(!d&&gY.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!JT.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${JT.filter(h=>!gY.includes(h)).join(", ")}.`);let f="";try{f=ne(pe(a),"intent.md")}catch(h){return l("haiku_root_not_found",`Could not resolve intent dir: ${h.message}`)}if(!ue(f))return l("intent_not_found",`Intent '${a}' not found at ${f}.`);let p={[c]:u};if(!T0(p)){let h=T0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return De(f,c,u),wt(`haiku: intent ${a} set ${c} via haiku_intent_set`),r({ok:!0,intent:a,field:c,message:`Set intent.${c} on '${a}'.`})}case"haiku_stage_set":{let o=Be(t,Oge,"haiku_stage_set");if(o)return o;let a=t.intent,c=t.stage,u=t.field;t.value;let l=(d,f)=>r({error:d,intent:a,stage:c,field:u,message:f},{isError:!0});return!u||typeof u!="string"?l("stage_field_required","`field` is required"):l("stage_field_engine_only",`Stage state.json is workflow engine-managed \u2014 agents cannot set fields directly. Stage fields are mutated by haiku_run_next ticks (start, advance phase, complete) and lifecycle tools (haiku_unit_advance_hat, haiku_feedback_advance_hat). To force a stage transition manually, use /haiku:haiku-repair, or file a stage_revisit feedback via \`haiku_feedback({ resolution: "stage_revisit" })\` to re-open the target stage. Field '${u}' on stage '${c}' of intent '${a}' was not written.`)}case"haiku_capacity":{let o=Be(t,lge,"haiku_capacity");if(o)return o;let a=t.studio||"",c=a||null,u;try{u=ve()}catch{return r({markdown:"No .haiku directory found.",studio:c})}let l=ne(u,"intents");if(!ue(l))return r({markdown:"No intents found.",studio:c});let d=Ug(l),f=m=>{if(m.length===0)return 0;let g=[...m].sort((E,S)=>E-S),y=Math.floor(g.length/2);return g.length%2!==0?g[y]:(g[y-1]+g[y])/2},p=new Map;for(let{slug:m,data:g}of d){let y=g.studio||"unassigned";if(a&&y!==a)continue;p.has(y)||p.set(y,[]);let E=typeof g.plugin_version=="string",S=g.status||"",_=E?typeof g.sealed_at=="string"&&g.sealed_at?"completed":"active":"",b=S||_||"unknown";p.get(y)?.push({slug:m,status:b,data:g})}if(p.size===0)return r({markdown:a?`No intents found for studio '${a}'.`:"No intents found.",studio:c});let h=`# Capacity Report +`;for(let[m,g]of p){let y=g.filter(_=>_.status==="completed").length,E=g.filter(_=>_.status==="active").length;h+=` ## Studio: ${m} -`,h+=`- Total intents: ${y.length} -`,h+=`- Completed: ${g} +`,h+=`- Total intents: ${g.length} +`,h+=`- Completed: ${y} `,h+=`- Active: ${E} -`;let S=new Map;for(let _ of y){let b=ne(l,_.slug,"stages");if(de(b))for(let T of un(b)){let A=ne(b,T,"units");if(de(A)){S.has(T)||S.set(T,[]);for(let R of un(A).filter(k=>k.endsWith(".md"))){let{data:k}=re(Pe(ne(A,R),"utf8")),x=null;typeof k.bolt=="number"?x=k.bolt:Array.isArray(k.iterations)&&(x=k.iterations.length),x!==null&&S.get(T)?.push(x)}}}}if(S.size>0){h+=` +`;let S=new Map;for(let _ of g){let b=ne(l,_.slug,"stages");if(ue(b))for(let T of an(b)){let A=ne(b,T,"units");if(ue(A)){S.has(T)||S.set(T,[]);for(let R of an(A).filter(x=>x.endsWith(".md"))){let{data:x}=re(Pe(ne(A,R),"utf8")),k=null;typeof x.bolt=="number"?k=x.bolt:Array.isArray(x.iterations)&&(k=x.iterations.length),k!==null&&S.get(T)?.push(k)}}}}if(S.size>0){h+=` | Stage | Units | Median Iterations | |-------|-------|-------------------| `;for(let[_,b]of S)h+=`| ${_} | ${b.length} | ${f(b)} | -`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=qe(t,Kme,"haiku_zap");if(o)return o;let a=b3n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=qe(t,Zme,"haiku_review");if(o)return o;let a=ac();try{let m=MZ("git",["rev-parse","--abbrev-ref","@{upstream}"],{encoding:"utf8",stdio:"pipe"});m.status===0&&m.stdout.trim()&&(a=m.stdout.trim())}catch{}let c="",u="",l="";try{c=MZ("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=MZ("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=MZ("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} +`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=Be(t,dge,"haiku_zap");if(o)return o;let a=b3n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,fge,"haiku_review");if(o)return o;let a=Zo();try{let m=XY("git",["rev-parse","--abbrev-ref","@{upstream}"],{encoding:"utf8",stdio:"pipe"});m.status===0&&m.stdout.trim()&&(a=m.stdout.trim())}catch{}let c="",u="",l="";try{c=XY("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=XY("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=XY("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} -... [TRUNCATED at 100k chars] ...`);let f="",p=process.cwd();for(let m of["REVIEW.md","CLAUDE.md"]){let y=ne(p,m);de(y)&&(f+=` +... [TRUNCATED at 100k chars] ...`);let f="",p=process.cwd();for(let m of["REVIEW.md","CLAUDE.md"]){let g=ne(p,m);ue(g)&&(f+=` ### ${m} -${Pe(y,"utf8").slice(0,5e3)} +${Pe(g,"utf8").slice(0,5e3)} `)}let h=`## Pre-Delivery Code Review `;return h+=`Diff base: ${a} @@ -849,7 +848,7 @@ ${c||"No changes detected."} `,h+=`2. Collect findings, deduplicate across agents `,h+=`3. Fix all HIGH severity findings before delivery `,h+=`4. Report findings summary to the user -`,n(h)}case"haiku_backlog":{let o=qe(t,Jme,"haiku_backlog");if(o)return o;let a=t.action||"list",c=d=>r({markdown:d,action:a}),u;try{u=we()}catch{return c("No .haiku directory found.")}let l=ne(u,"backlog");switch(a){case"list":{if(!de(l))return c("No backlog items found.");let d=un(l).filter(p=>p.endsWith(".md"));if(d.length===0)return c("No backlog items found.");let f=`# Backlog +`,n(h)}case"haiku_backlog":{let o=Be(t,hge,"haiku_backlog");if(o)return o;let a=t.action||"list",c=d=>r({markdown:d,action:a}),u;try{u=ve()}catch{return c("No .haiku directory found.")}let l=ne(u,"backlog");switch(a){case"list":{if(!ue(l))return c("No backlog items found.");let d=an(l).filter(p=>p.endsWith(".md"));if(d.length===0)return c("No backlog items found.");let f=`# Backlog | # | Item | Priority | Created | |---|------|----------|---------| @@ -859,19 +858,19 @@ ${c||"No changes detected."} `;return f+="Create a new file in `.haiku/backlog/` with this template:\n\n",f+=`\`\`\`markdown --- priority: medium -created_at: ${En()} +created_at: ${_n()} --- `,f+=`${d||"Description of the backlog item"} \`\`\` -`,f+="\nFilename should be a slug of the item description (e.g. `improve-error-handling.md`).\n",c(f)}case"review":{if(!de(l))return c("No backlog items to review.");let d=un(l).filter(p=>p.endsWith(".md"));if(d.length===0)return c("No backlog items to review.");let f=`## Backlog Review +`,f+="\nFilename should be a slug of the item description (e.g. `improve-error-handling.md`).\n",c(f)}case"review":{if(!ue(l))return c("No backlog items to review.");let d=an(l).filter(p=>p.endsWith(".md"));if(d.length===0)return c("No backlog items to review.");let f=`## Backlog Review Present each item to the user and ask: **Keep / Reprioritize / Drop / Promote / Skip** -`;for(let p=0;pp.endsWith(".md"));if(l.length===0)return n("No seeds found.");let d=new Map;for(let p of l){let{data:h}=re(Pe(ne(u,p),"utf8")),m=h.status||"planted";d.has(m)||d.set(m,[]),d.get(m)?.push({name:p.replace(".md",""),data:h})}let f=`# Seeds +`,c(d)}default:return c(`Unknown backlog action: '${a}'. Valid actions: list, add, review, promote.`)}}case"haiku_seed":{let o=Be(t,mge,"haiku_seed");if(o)return o;let a=t.action||"list",c;try{c=ve()}catch{return n("No .haiku directory found.")}let u=ne(c,"seeds");switch(a){case"list":{if(!ue(u))return n("No seeds found.");let l=an(u).filter(p=>p.endsWith(".md"));if(l.length===0)return n("No seeds found.");let d=new Map;for(let p of l){let{data:h}=re(Pe(ne(u,p),"utf8")),m=h.status||"planted";d.has(m)||d.set(m,[]),d.get(m)?.push({name:p.replace(".md",""),data:h})}let f=`# Seeds `;for(let[p,h]of d){f+=` ## ${p.charAt(0).toUpperCase()+p.slice(1)} (${h.length}) @@ -894,10 +893,10 @@ For each item, ask the user and apply their choice. --- status: planted trigger: "" -created_at: ${En()} +created_at: ${_n()} --- -`,l+="Description of the idea or future work.\n```\n",l+="\nFilename should be a slug of the seed idea (e.g. `add-caching-layer.md`).\n",n(l)}case"check":{if(!de(u))return n("No seeds to check.");let d=un(u).filter(p=>p.endsWith(".md")).filter(p=>{let{data:h}=re(Pe(ne(u,p),"utf8"));return h.status==="planted"});if(d.length===0)return n("No planted seeds to check.");let f=`## Seed Check +`,l+="Description of the idea or future work.\n```\n",l+="\nFilename should be a slug of the seed idea (e.g. `add-caching-layer.md`).\n",n(l)}case"check":{if(!ue(u))return n("No seeds to check.");let d=an(u).filter(p=>p.endsWith(".md")).filter(p=>{let{data:h}=re(Pe(ne(u,p),"utf8"));return h.status==="planted"});if(d.length===0)return n("No planted seeds to check.");let f=`## Seed Check Evaluate each planted seed's trigger condition against the current project state: @@ -907,62 +906,62 @@ Evaluate each planted seed's trigger condition against the current project state `}return f+=`--- For each seed: if the trigger condition is met, update its status to 'surfaced'. If not, leave as 'planted'. -`,n(f)}default:return n(`Unknown seed action: '${a}'. Valid actions: list, plant, check.`)}}case"haiku_release_notes":{let o=qe(t,Qme,"haiku_release_notes");if(o)return o;let a=t.version||"",c=a||null,u=E=>r({markdown:E,version:c}),l="",d=nn();if(d){let E=ne(d,"CHANGELOG.md");de(E)&&(l=E)}if(!l){let E=process.cwd();for(let S=0;S<20;S++){let _=ne(E,"CHANGELOG.md");if(de(_)){l=_;break}let b=ne(E,"..");if(b===E)break;E=b}}if(!l)return u("No CHANGELOG.md found.");let f=Pe(l,"utf8"),p=/^## \[([^\]]+)\]/gm,h=[],m=p.exec(f);for(;m!==null;)h.push({version:m[1],start:m.index}),m=p.exec(f);if(h.length===0)return u("No versioned entries found in CHANGELOG.md.");if(a){let E=h.findIndex(b=>b.version===a);if(E===-1)return u(`Version '${a}' not found in CHANGELOG.md. Available: ${h.slice(0,10).map(b=>b.version).join(", ")}`);let S=E+1r({markdown:E,version:c}),l="",d=nn();if(d){let E=ne(d,"CHANGELOG.md");ue(E)&&(l=E)}if(!l){let E=process.cwd();for(let S=0;S<20;S++){let _=ne(E,"CHANGELOG.md");if(ue(_)){l=_;break}let b=ne(E,"..");if(b===E)break;E=b}}if(!l)return u("No CHANGELOG.md found.");let f=Pe(l,"utf8"),p=/^## \[([^\]]+)\]/gm,h=[],m=p.exec(f);for(;m!==null;)h.push({version:m[1],start:m.index}),m=p.exec(f);if(h.length===0)return u("No versioned entries found in CHANGELOG.md.");if(a){let E=h.findIndex(b=>b.version===a);if(E===-1)return u(`Version '${a}' not found in CHANGELOG.md. Available: ${h.slice(0,10).map(b=>b.version).join(", ")}`);let S=E+1r({markdown:m}),d=c?bSt():{moved:[],skipped:[],cleanedSkeletons:[]},f=DKn(d);if(Ae()&&!a&&!u)try{let{summaries:m,mainline:y,archivedSummary:g}=LKn(c);if(m.length>0||g){let E=jKn(m,y,g);return l(f?`${f} -${E}`:E)}}catch(m){let y=`Multi-branch repair failed: ${m instanceof Error?m.message:String(m)}`;return l(f?`${f} -${y}`:y)}try{we()}catch{return l(f?`${f} -No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=ESt(void 0,a,c)}catch(m){let y=`Repair failed: ${m instanceof Error?m.message:String(m)}`;return l(f?`${f} -${y}`:y)}if(a&&p.scanned===0){let m=`Intent '${a}' not found.`;return l(f?`${f} +`,u(y)}case"haiku_repair":{let o=Be(t,Sge,"haiku_repair");if(o)return o;let a=t.intent,c=t.apply!==!1,u=t.skip_branches===!0,l=m=>r({markdown:m}),d=c?$St():{moved:[],skipped:[],cleanedSkeletons:[]},f=M9n(d);if(Ae()&&!a&&!u)try{let{summaries:m,mainline:g,archivedSummary:y}=D9n(c);if(m.length>0||y){let E=U9n(m,g,y);return l(f?`${f} +${E}`:E)}}catch(m){let g=`Multi-branch repair failed: ${m instanceof Error?m.message:String(m)}`;return l(f?`${f} +${g}`:g)}try{ve()}catch{return l(f?`${f} +No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=QSt(void 0,a,c)}catch(m){let g=`Repair failed: ${m instanceof Error?m.message:String(m)}`;return l(f?`${f} +${g}`:g)}if(a&&p.scanned===0){let m=`Intent '${a}' not found.`;return l(f?`${f} ${m}`:m)}if(p.scanned===0)return l(f?`${f} -No intents found.`:"No intents found.");let h=CKn(p);return l(f?`${f} -${h}`:h)}case"haiku_feedback":{let o=qe(t,_me,"haiku_feedback");if(o)return o;let a=t.intent,c=t.stage||"",u=t.title,l=t.body,d=t.severity,f=t.origin||void 0,p=t.source_ref||void 0,h=t.author||void 0,m=t.resolution||void 0,y=t.inline_anchor,g=y?{selectedText:y.selected_text,paragraph:y.paragraph,location:y.location,...y.comment_id?{commentId:y.comment_id}:{},...y.file_path?{filePath:y.file_path}:{},...y.content_sha?{contentSha:y.content_sha}:{}}:void 0,E=ne(fe(a),"intent.md");if(!de(E))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let S=Xo(a,c||void 0);if(S)return S;if(c){let x=vr(a,c);if(!de(x)){let{data:N}=re(Pe(E,"utf8"));if(!(N.stages||[]).includes(c))return{content:[{type:"text",text:`Error: stage '${c}' not found under intent '${a}'`}],isError:!0};Ol(x,{recursive:!0})}}let _=t.target_unit===void 0?void 0:t.target_unit===null?null:t.target_unit,b=Array.isArray(t.target_invalidates)?t.target_invalidates:void 0,T=fc(a,c,{title:u,body:l,origin:f,severity:d,author:h,source_ref:p??null,resolution:m??null,...g?{inlineAnchor:g}:{},..._!==void 0?{targetUnit:_}:{},...b!==void 0?{targetInvalidates:b}:{}}),A=Dt(c?`feedback: create ${T.feedback_id} in ${c}`:`feedback: create ${T.feedback_id} (intent-scope)`),R={feedback_id:T.feedback_id,file:T.file,status:"pending",message:`Feedback ${T.feedback_id} created.`},k=RSt(a,c,{title:u,body:l,targetUnit:_??null});return k&&(R.duplicate_warning={matches:k.id,settled_status:k.status,resolution:k.resolution,message:`This finding closely matches ${k.id}, already ${k.status} (${k.resolution||"no resolution recorded"}). If that resolution still stands, reject this as a duplicate via haiku_feedback_reject; only keep it if you have new evidence the prior resolution was wrong.`}),r(jZ(R,A))}case"haiku_feedback_update":return r({error:"feedback_update_removed_in_v4",message:"haiku_feedback_update is removed in v4. Closure runs through the fix-hat sequence (call haiku_feedback_advance_hat on the terminal hat). targets.invalidates is set at create time via haiku_feedback. To reject without closure, call haiku_feedback_reject."},{isError:!0});case"haiku_feedback_delete":{let o=qe(t,Rme,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id);if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};let l=Xo(a,c||void 0);if(l)return l;let d=YZ(a,c,u,"agent");if(!d.ok)return{content:[{type:"text",text:d.error}],isError:!0};let f=Dt(c?`feedback: delete ${u} from ${c}`:`feedback: delete ${u} (intent-scope)`),p={feedback_id:u,deleted:!0,message:c?`Feedback ${u} deleted from stage '${c}'.`:`Feedback ${u} deleted (intent-scope).`};return r(jZ(p,f))}case"haiku_feedback_move":{let o=qe(t,wme,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id),l=t.to_stage||"";if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(typeof t.to_stage!="string")return{content:[{type:"text",text:'Error: to_stage is required (use "" for intent-scope)'}],isError:!0};let d=ne(fe(a),"intent.md");if(!de(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(Pe(d,"utf8")),_=S.stages||[];if(!_.includes(l))return{content:[{type:"text",text:`Error: to_stage '${l}' is not a stage of intent '${a}'. Valid stages: ${_.join(", ")}`}],isError:!0}}let f=mc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};let p=Jf(f.data);if(p==="closed"||p==="rejected"||p==="non_actionable")return r({error:"lifecycle_violation",current_status:p,message:`Cannot move feedback '${u}' \u2014 status is '${p}'. Per the forward-only lifecycle rule, closed, rejected, and non-actionable feedback are terminal.`},{isError:!0});let h=Xo(a,l||void 0);if(h)return h;let m=DSt(a,c,u,l);if(!m)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};let y=m.moved?`feedback: move ${u} from ${c||"intent-scope"} to ${l||"intent-scope"} (now ${m.feedback_id})`:`feedback: triage-confirm ${u} in ${c||"intent-scope"}`,g=Dt(y),E={feedback_id:m.feedback_id,file:m.file,moved:m.moved,triaged_at:m.triaged_at,message:m.moved?`Feedback moved from ${c||"intent-scope"} to ${l||"intent-scope"} as ${m.feedback_id}.`:`Feedback ${u} placement confirmed.`};return r(jZ(E,g))}case"haiku_feedback_reject":{let o=qe(t,kme,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id),l=t.reason;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(!l)return{content:[{type:"text",text:"Error: reason is required when rejecting feedback"}],isError:!0};let d=Xo(a,c||void 0);if(d)return d;let f=mc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};if(f.data.author_type==="human")return{content:[{type:"text",text:"Error: agents cannot reject human-authored feedback. Only the user can reject it via the review UI."}],isError:!0};let p=Jf(f.data);if(p==="closed"||p==="rejected")return{content:[{type:"text",text:`Error: feedback '${u}' is already '${p}' -- cannot reject again`}],isError:!0};let h={...f.data,rejected_at:new Date().toISOString()};KZ(h);let m=`${f.body} +No intents found.`:"No intents found.");let h=N9n(p);return l(f?`${f} +${h}`:h)}case"haiku_feedback":{let o=Be(t,Ume,"haiku_feedback");if(o)return o;let a=t.intent,c=t.stage||"",u=t.title,l=t.body,d=t.severity,f=t.origin||void 0,p=t.source_ref||void 0,h=t.author||void 0,m=t.resolution||void 0,g=t.inline_anchor,y=g?{selectedText:g.selected_text,paragraph:g.paragraph,location:g.location,...g.comment_id?{commentId:g.comment_id}:{},...g.file_path?{filePath:g.file_path}:{},...g.content_sha?{contentSha:g.content_sha}:{}}:void 0,E=ne(pe(a),"intent.md");if(!ue(E))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let S=ea(a,c||void 0);if(S)return S;if(c){let k=ar(a,c);if(!ue(k)){let{data:P}=re(Pe(E,"utf8"));if(!(P.stages||[]).includes(c))return{content:[{type:"text",text:`Error: stage '${c}' not found under intent '${a}'`}],isError:!0};Ml(k,{recursive:!0})}}let _=t.target_unit===void 0?void 0:t.target_unit===null?null:t.target_unit,b=Array.isArray(t.target_invalidates)?t.target_invalidates:void 0,T=Qo(a,c,{title:u,body:l,origin:f,severity:d,author:h,source_ref:p??null,resolution:m??null,...y?{inlineAnchor:y}:{},..._!==void 0?{targetUnit:_}:{},...b!==void 0?{targetInvalidates:b}:{}}),A=wt(c?`feedback: create ${T.feedback_id} in ${c}`:`feedback: create ${T.feedback_id} (intent-scope)`),R={feedback_id:T.feedback_id,file:T.file,status:"pending",message:`Feedback ${T.feedback_id} created.`},x=rEt(a,c,{title:u,body:l,targetUnit:_??null});return x&&(R.duplicate_warning={matches:x.id,settled_status:x.status,resolution:x.resolution,message:`This finding closely matches ${x.id}, already ${x.status} (${x.resolution||"no resolution recorded"}). If that resolution still stands, reject this as a duplicate via haiku_feedback_reject; only keep it if you have new evidence the prior resolution was wrong.`}),r(e5(R,A))}case"haiku_feedback_update":return r({error:"feedback_update_removed_in_v4",message:"haiku_feedback_update is removed in v4. Closure runs through the fix-hat sequence (call haiku_feedback_advance_hat on the terminal hat). targets.invalidates is set at create time via haiku_feedback. To reject without closure, call haiku_feedback_reject."},{isError:!0});case"haiku_feedback_delete":{let o=Be(t,Gme,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id);if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};let l=ea(a,c||void 0);if(l)return l;let d=d5(a,c,u,"agent");if(!d.ok)return{content:[{type:"text",text:d.error}],isError:!0};let f=wt(c?`feedback: delete ${u} from ${c}`:`feedback: delete ${u} (intent-scope)`),p={feedback_id:u,deleted:!0,message:c?`Feedback ${u} deleted from stage '${c}'.`:`Feedback ${u} deleted (intent-scope).`};return r(e5(p,f))}case"haiku_feedback_move":{let o=Be(t,zme,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.to_stage||"";if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(typeof t.to_stage!="string")return{content:[{type:"text",text:'Error: to_stage is required (use "" for intent-scope)'}],isError:!0};let d=ne(pe(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(Pe(d,"utf8")),_=S.stages||[];if(!_.includes(l))return{content:[{type:"text",text:`Error: to_stage '${l}' is not a stage of intent '${a}'. Valid stages: ${_.join(", ")}`}],isError:!0}}let f=Sc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};let p=ep(f.data);if(p==="closed"||p==="rejected"||p==="non_actionable")return r({error:"lifecycle_violation",current_status:p,message:`Cannot move feedback '${u}' \u2014 status is '${p}'. Per the forward-only lifecycle rule, closed, rejected, and non-actionable feedback are terminal.`},{isError:!0});let h=ea(a,l||void 0);if(h)return h;let m=hEt(a,c,u,l);if(!m)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};let g=m.moved?`feedback: move ${u} from ${c||"intent-scope"} to ${l||"intent-scope"} (now ${m.feedback_id})`:`feedback: triage-confirm ${u} in ${c||"intent-scope"}`,y=wt(g),E={feedback_id:m.feedback_id,file:m.file,moved:m.moved,triaged_at:m.triaged_at,message:m.moved?`Feedback moved from ${c||"intent-scope"} to ${l||"intent-scope"} as ${m.feedback_id}.`:`Feedback ${u} placement confirmed.`};return r(e5(E,y))}case"haiku_feedback_reject":{let o=Be(t,Vme,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.reason;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(!l)return{content:[{type:"text",text:"Error: reason is required when rejecting feedback"}],isError:!0};let d=ea(a,c||void 0);if(d)return d;let f=Sc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};if(f.data.author_type==="human")return{content:[{type:"text",text:"Error: agents cannot reject human-authored feedback. Only the user can reject it via the review UI."}],isError:!0};let p=ep(f.data);if(p==="closed"||p==="rejected")return{content:[{type:"text",text:`Error: feedback '${u}' is already '${p}' -- cannot reject again`}],isError:!0};let h={...f.data,rejected_at:new Date().toISOString()};u5(h);let m=`${f.body} --- -**Rejection reason:** ${l}`;Mn(f.path,Ht.default.stringify(` +**Rejection reason:** ${l}`;In(f.path,Ct.default.stringify(` ${m} -`,h));let y=Dt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);UK(a,c||"intent",u);let g=null;try{let S=ne(fe(a),"intent.md"),_=de(S)?re(Pe(S,"utf8")).data.studio??"":"";_&&(g=C0(a,()=>_ye(a,_)))}catch{}let E={feedback_id:u,status:"rejected",next_subagent_dispatch_block:g,message:g?`Feedback ${u} rejected: ${l}. Relay the \`next_subagent_dispatch_block\` field verbatim as your final message to start the next finding.`:`Feedback ${u} rejected: ${l}. No further undispatched findings \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`};return r(jZ(E,y))}case"haiku_feedback_list":{let o=qe(t,Ime,"haiku_feedback_list");if(o)return o;let a=t.intent,c=t.stage||void 0,u=typeof t.closed=="boolean"?t.closed:void 0;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};let l=ne(fe(a),"intent.md");if(!de(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=Xo(a,c??WL(a));if(d)return d;let f;if(c)f=[c];else{let y=ne(fe(a),"stages");de(y)?f=un(y).filter(g=>de(ne(y,g))):f=[]}let p=y=>y.status==="closed"||y.status==="rejected"||y.status==="addressed"||y.status==="answered",h=[];for(let y of f){let g=yo(a,y);for(let E of g){if(u!==void 0&&p(E)!==u)continue;let S={feedback_id:E.id,file:E.file,title:E.title,status:E.status,origin:E.origin,author:E.author,author_type:E.author_type,created_at:E.created_at,visit:E.visit,source_ref:E.source_ref,closed_by:E.closed_by,closed_at:E.closed_at,bolt:E.bolt,triaged_at:E.triaged_at};c||(S.stage=y),h.push(S)}}if(!c){let y=yo(a,"");for(let g of y)u!==void 0&&p(g)!==u||h.push({feedback_id:g.id,file:g.file,title:g.title,status:g.status,origin:g.origin,author:g.author,author_type:g.author_type,created_at:g.created_at,visit:g.visit,source_ref:g.source_ref,closed_by:g.closed_by,closed_at:g.closed_at,bolt:g.bolt,triaged_at:g.triaged_at,stage:null})}let m={intent:a,stage:c||null,count:h.length,items:h};return r(m)}case"haiku_feedback_read":{let o=qe(t,xme,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=c?$o(a,c):$o(a,"");if(!de(l))return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback directory at ${l}.`},{isError:!0});let d=null,f=null,p=null,h=u.match(/^(?:FB-)?(\d+)$/i),m=h?Number.parseInt(h[1],10):null;for(let S of un(l).filter(_=>_.endsWith(".md"))){let _=ne(l,S),{data:b,body:T}=re(Pe(_,"utf8")),A=S.match(/^(\d+)-/),R=A?Number.parseInt(A[1],10):null;if(b.id===u||b.feedback_id===u||m!==null&&R===m){d=_,f=b,p=T;break}}if(!d||!p)return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${l}.`},{isError:!0});Aye(d);let y=typeof f?.title=="string"?f.title:"",g=p.match(/^#\s+(.+)$/m),E=y||(g?g[1].trim():u);return r({title:E,body:p})}case"haiku_feedback_write":{let o=qe(t,Ome,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id),l=t.body??"",d=iv(l);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty FB bodies cannot pass the assessor's spec-match check."},{isError:!0});let f=Xo(a,c||void 0);if(f)return f;let p=mc(a,c,u);if(!p){let E=c?$o(a,c):$o(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${E}.`},{isError:!0})}let h=p.path,m=p.data,y=m.status||"pending";if(!u_()&&(y==="closed"||y==="rejected"||y==="non_actionable"))return r({error:"lifecycle_violation",current_status:y,message:`Cannot rewrite feedback '${u}' \u2014 status is '${y}'. Per the forward-only lifecycle rule, closed, rejected, and non-actionable feedback are terminal and immutable. To raise a related concern, file a NEW feedback via haiku_feedback.`},{isError:!0});let g=Array.isArray(m.iterations)?m.iterations:[];return!u_()&&g.length>0?r({error:"body_locked",feedback_id:u,iterations:g.length,message:`Feedback '${u}' body is locked \u2014 its fix-hat loop has started (${g.length} iteration(s) on record). The body is the immutable finding; record your per-hat work in the handoff \`message\` on haiku_feedback_advance_hat (or haiku_feedback_reject_hat), which the engine threads into the next hat's dispatch. Do not rewrite the body.`},{isError:!0}):(Mn(h,Ht.default.stringify(`${d.trimEnd()} -`,m)),si(a),Qe("haiku.feedback.body_rewritten",{intent:a,stage:c||"",feedback_id:u}),r({ok:!0,feedback_id:u,stage:c||null,intent:a,message:`Rewrote body of feedback '${u}' (status preserved as '${y}').`}))}case"haiku_feedback_advance_hat":{let o=qe(t,Cme,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=Xo(a,c||void 0);if(l)return l;let d=mc(a,c,u);if(!d){let H=c?$o(a,c):$o(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${H}.`},{isError:!0})}let f=d.path,p=d.data,h=d.body,m=Jf(p);if(m==="closed"||m==="rejected"||m==="non_actionable")return r({error:"lifecycle_violation",current_status:m,message:`Cannot advance hat on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let y=[],g=ne(fe(a),"intent.md"),E="software";if(de(g)){let{data:H}=re(Pe(g,"utf8"));E=H.studio||"software"}if(c){let H=Yi(E,c);H?.data?.fix_hats&&Array.isArray(H.data.fix_hats)&&(y=H.data.fix_hats)}else y=hg(E);if(y.length===0)return r({error:"no_fix_hats",stage:c||null,scope:c?"stage":"intent",message:c?`Stage '${c}' has no \`fix_hats:\` configured in STAGE.md. The fix-loop FB-as-unit model requires a fix_hats sequence.`:`Studio '${E}' has no fix-hats (looked in the global \`plugin/fix-hats/\` and studio \`plugin/studios/${E}/fix-hats/\`). Intent-completion fix loops require at least one fix-hat.`},{isError:!0});let S=p.hat||"",_=p.bolt||1,T=(S?y.indexOf(S):-1)+1,A=y[T];if(!A)return r({error:"no_hat_to_advance",message:`FB '${u}' is at hat '${S}', already the last hat in fix_hats. The FB should have closed on the prior advance call. State may be inconsistent.`},{isError:!0});let R=T===y.length-1;if((typeof t.resolution=="string"?t.resolution:"")==="non_actionable"){let H=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!H)return r({error:"reason_required",feedback_id:u,message:`Closing FB '${u}' as non_actionable requires a \`message\` (or \`reply\`) explaining why it has no code fix \u2014 the answer to the question, why it's out of scope, or why the target is immutable/superseded.`},{isError:!0});let F=Array.isArray(p.iterations)?p.iterations.slice():[],W=F[F.length-1],$={bolt:_,hat:A,completed_at:En(),result:"closed",message:H};W&&(W.result===null||W.result===void 0)&&W.hat===A?F[F.length-1]={...W,...$}:F.push($);let ie={...p,hat:A,iterations:F,status:"non_actionable",resolution:"non_actionable",closed_at:En(),closed_by:`${A}:non_actionable`,closure_reply:{text:H,at:En()},closure_reply_unread:!0};Mn(f,Ht.default.stringify(`${h.trimEnd()} -`,ie)),si(a),UK(a,c||"intent",u),Dt(`haiku: close fix-chain ${u} (non-actionable)`),Qe("haiku.feedback.non_actionable",{intent:a,stage:c||"",feedback_id:u,hat:A});let Te=_ye(a,E);return n(JSON.stringify({action:"feedback_non_actionable",feedback_id:u,resolution:"non_actionable",hat:A,next_subagent_dispatch_block:Te,message:`FB '${u}' closed as non-actionable by '${A}': ${H}`+(Te?" Spawn the relayed block below.":` Call haiku_run_next { intent: "${a}" }.`)}))}let x=typeof t.reply=="string"?t.reply.trim():"",N=typeof t.message=="string"?t.message.trim():"";if(R&&!x)return r({error:"reply_required",feedback_id:u,calling_hat:A,message:`FB '${u}' is about to close on terminal hat '${A}'. Pass a \`reply\` arg with a short plain-language explanation of what was done so the requester can see how the issue was addressed.`},{isError:!0});let P=Array.isArray(p.iterations)?p.iterations.slice():[],D=P[P.length-1];D&&(D.result===null||D.result===void 0)&&D.hat===A?P[P.length-1]={...D,completed_at:En(),result:R?"closed":"advanced",...N?{message:N}:{}}:P.push({bolt:_,hat:A,completed_at:En(),result:R?"closed":"advanced",...N?{message:N}:{}});let V=m,Z,B;R?(V="closed",Z=`fix-loop:${u}:bolt-${_}`,B=En()):V="addressed";let G=A,X={...p,hat:G,iterations:P,status:V};Z&&(X.closed_by=Z),B&&(X.closed_at=B),R&&x&&(X.closure_reply={text:x,at:En()},X.closure_reply_unread=!0),Mn(f,Ht.default.stringify(`${h.trimEnd()} -`,X)),si(a),R&&Uyt({slug:a,stage:c??void 0,feedbackId:u,fbFm:p}),Qe(R?"haiku.feedback.closed":"haiku.feedback.hat_advanced",{intent:a,stage:c||"",feedback_id:u,hat:G});let q=c||"intent";if(!R)jfe(a,q,u);else{GZ(`haiku: close fix-chain ${u}`);let H=P_(a,q,()=>OD(a,q,u));if(!H.success){let F=pg(a,q,u);return H.isConflict?r({action:"integrate_fix_chains",intent:a,scope:q,items:[{feedback_id:u}],feedback_id:u,worktree:F,conflict_paths:H.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${q==="intent"?`haiku/${a}/main`:`stage '${q}'`} produced conflicts on ${(H.conflictFiles??[]).length} file(s): ${(H.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${F}) \u2014 resolve each conflicted file there (the engine can't; they contain code), \`git add\` the resolved files, \`git commit\` to complete the in-worktree merge, then call \`haiku_run_next { intent: "${a}" }\`. The engine forward-merges the resolved chain into ${q==="intent"?"intent main":"the stage branch"} on that tick.`},{isError:!0}):r({action:"merge_failed",intent:a,scope:q,feedback_id:u,worktree:F,error:H.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${q==="intent"?`haiku/${a}/main`:`stage '${q}'`}. Git output: ${H.message}. Commit any engine-owned dirty files on the base branch, then call \`haiku_run_next { intent: "${a}" }\` so the engine retries the merge.`},{isError:!0})}}let C=R?null:y[T+1],z=null,U="",M=(()=>{let H=ne(fe(a),"intent.md");if(!de(H))return"";let F=(0,Ht.default)(Pe(H,"utf8")).data;return typeof F.studio=="string"?F.studio:""})();if(!R&&C&&M)try{let H=T+1===y.length-1;z=CI({slug:a,studio:M,feedbackId:u,stage:c??"",hat:C,terminal:H}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(R&&M)try{z=C0(a,()=>_ye(a,M)),z&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!z){let H=!1;try{let F=fe(a),W=[ne(F,"feedback")],$=ne(F,"stages");if(de($))for(let ie of un($))W.push(ne($,ie,"feedback"));e:for(let ie of W)if(de(ie))for(let Re of un(ie).filter(Te=>Te.endsWith(".md"))){let Te=Pe(ne(ie,Re),"utf8"),K=(0,Ht.default)(Te).data;if(typeof K.status=="string"&&(K.status==="closed"||K.status==="rejected")||K.closed_at||K.rejected_at)continue;let Q=Array.isArray(K.iterations)?K.iterations:[],ae=Q[Q.length-1];if(ae&&(ae.result===null||ae.result===void 0)){H=!0;break e}}}catch{}U=H?"Wave still has in-flight fix-chains; no replenishment available right now. Terminate \u2014 sibling subagents will fire their own breadcrumbs when they advance.":R?`FB '${u}' closed by ${Z} after '${A}' (last hat in fix_hats sequence ${T+1}/${y.length}). Wave done \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`:`FB '${u}': '${A}' (${T+1}/${y.length}) finished. Wave done \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`}return r({ok:!0,feedback_id:u,stage:c||null,calling_hat:A,next_dispatched_hat:C,closed:R,bolt:_,next_subagent_dispatch_block:z,message:U})}case"haiku_feedback_reject_hat":{let o=qe(t,Mme,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id),l=t.message||"";if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let d=Xo(a,c||void 0);if(d)return d;let f=mc(a,c,u);if(!f){let z=c?$o(a,c):$o(a,"");return r({error:"feedback_not_found",feedback_id:u,message:`No feedback file matching ${u} in ${z}.`},{isError:!0})}let p=f.path,h=f.data,m=f.body,y=Jf(h);if(y==="closed"||y==="rejected")return r({error:"lifecycle_violation",current_status:y,message:`Cannot reject hat on FB '${u}' \u2014 already ${y} (terminal).`},{isError:!0});let g=[],E=ne(fe(a),"intent.md"),S="software";if(de(E)){let{data:z}=re(Pe(E,"utf8"));S=z.studio||"software"}if(c){let z=Yi(S,c);z?.data?.fix_hats&&Array.isArray(z.data.fix_hats)&&(g=z.data.fix_hats)}else g=hg(S);if(g.length===0)return r({error:"no_fix_hats",stage:c||null,scope:c?"stage":"intent",message:c?`Stage '${c}' has no \`fix_hats:\` configured.`:`Studio '${S}' has no fix-hats (looked in the global \`plugin/fix-hats/\` and studio \`plugin/studios/${S}/fix-hats/\`).`},{isError:!0});let _=h.hat||"",b=h.bolt||1,A=(_?g.indexOf(_):-1)+1,R=g[A];if(!R)return r({error:"no_hat_to_reject",message:`FB '${u}' has no hat to reject \u2014 already past the last hat in fix_hats (storage at '${_}').`},{isError:!0});let k=A-2,x=k>=0?g[k]:"",N=c?Iu(S,c):RK(S),{targetHat:P}=Tpe(g,R,{roleOf:z=>N[z]?.role}),D=Array.isArray(h.iterations)?h.iterations.slice():[],j=0;for(let z of D){if(!z||typeof z!="object")continue;let U=z;U.hat===R&&U.result==="rejected"&&j++}if(j>=1){let z=c?`stage: "${c}", `:"";return r({error:"fix_loop_no_progress",calling_hat:R,prior_rejections_by_same_hat:j,message:`Hat '${R}' has already rejected FB '${u}' ${j} time(s) in prior bolt(s); this would be rejection #${j+1}. Bouncing back to '${P}' to re-run cannot produce a different outcome \u2014 the rejecter has signaled the same impasse twice. Two paths forward: - - If this finding has no actionable fix (cosmetic, valid observation that needs no code change, upstream-driven drift the engine will resolve on the next sign cycle): call \`haiku_feedback_reject { intent: "${a}", ${z}feedback_id: ${u}, reason: "" }\` to terminally close. - If the finding is real but this hat chain cannot resolve it: file an upstream FB describing the impasse for human review.`},{isError:!0})}let V=D[D.length-1];V&&(V.result===null||V.result===void 0)&&V.hat===R?D[D.length-1]={...V,completed_at:En(),result:"rejected",message:l||"(no message provided)"}:D.push({bolt:b,hat:R,completed_at:En(),result:"rejected",message:l||"(no message provided)"});let B,G;if(Bo.modelSelection){let z=h.model,U=hfe(z);z&&U&&(B=z,G=U)}let X={...h,hat:x,bolt:b+1,iterations:D,...G?{model:G,model_original:h.model_original??B}:{}};Mn(p,Ht.default.stringify(`${m.trimEnd()} -`,X)),B&&G&&console.error(`[haiku] feedback model escalated: ${B} \u2192 ${G} (FB ${u} hat rejected, bolt ${b+1})`),si(a),Qe("haiku.feedback.hat_rejected",{intent:a,stage:c||"",feedback_id:u,hat:R,new_bolt:String(b+1),...G?{model_escalated_from:B,model_escalated_to:G}:{}});let q=null;if(S)try{q=CI({slug:a,studio:S,feedbackId:u,stage:c??"",hat:P,terminal:!1})}catch{}let C=q?`FB '${u}' hat '${R}' rejected \u2014 re-running '${P}' (bolt ${b+1}). Relay the \`next_subagent_dispatch_block\` field verbatim as your final message.`:`FB '${u}' hat '${R}' rejected \u2014 bounced to '${P}' (bolt ${b+1}). Call \`haiku_run_next { intent: "${a}" }\` to re-dispatch it.`;return r({ok:!0,feedback_id:u,rejecting_hat:R,next_dispatched_hat:P,new_bolt:b+1,handoff:l,next_subagent_dispatch_block:q,message:C})}case"haiku_feedback_set_targets":{let o=qe(t,Nme,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id),l=t.target_unit===null||t.target_unit===void 0?null:t.target_unit,d=t.target_invalidates??[],f=typeof t.reasoning=="string"?t.reasoning.trim():"",p=Xo(a,c||void 0);if(p)return p;let h=mc(a,c,u);if(!h)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let m=h.data.targets&&typeof h.data.targets=="object"?h.data.targets:null,y=m&&typeof m.unit<"u"&&m.unit!==null?m.unit:null,g=m&&Array.isArray(m.invalidates)?m.invalidates:[];if(y!==null||g.length>0)return r({error:"targets_already_set",feedback_id:u,current_target_unit:y,current_target_invalidates:g,message:`Feedback '${u}' already has classified targets \u2014 once set, immutable per the FB-as-unit architecture. To retarget, reject the FB (haiku_feedback_reject) and create a new one with the correct targets.`},{isError:!0});let E=h.data.status||"pending";if(E==="closed"||E==="rejected")return r({error:"lifecycle_violation",current_status:E,message:`Cannot classify FB '${u}' \u2014 already ${E} (terminal).`},{isError:!0});let S={unit:l,invalidates:d};f&&(S.reasoning=f);let _={...h.data,targets:S};return Mn(h.path,Ht.default.stringify(` +`,h));let g=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);QK(a,c||"intent",u);let y=null;try{let S=ne(pe(a),"intent.md"),_=ue(S)?re(Pe(S,"utf8")).data.studio??"":"";_&&(y=F0(a,()=>jye(a,_)))}catch{}let E={feedback_id:u,status:"rejected",next_subagent_dispatch_block:y,message:y?`Feedback ${u} rejected: ${l}. Relay the \`next_subagent_dispatch_block\` field verbatim as your final message to start the next finding.`:`Feedback ${u} rejected: ${l}. No further undispatched findings \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`};return r(e5(E,g))}case"haiku_feedback_list":{let o=Be(t,Wme,"haiku_feedback_list");if(o)return o;let a=t.intent,c=t.stage||void 0,u=typeof t.closed=="boolean"?t.closed:void 0;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};let l=ne(pe(a),"intent.md");if(!ue(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=ea(a,c??i1(a));if(d)return d;let f;if(c)f=[c];else{let g=ne(pe(a),"stages");ue(g)?f=an(g).filter(y=>ue(ne(g,y))):f=[]}let p=g=>g.status==="closed"||g.status==="rejected"||g.status==="addressed"||g.status==="answered",h=[];for(let g of f){let y=Us(a,g);for(let E of y){if(u!==void 0&&p(E)!==u)continue;let S={feedback_id:E.id,file:E.file,title:E.title,status:E.status,origin:E.origin,author:E.author,author_type:E.author_type,created_at:E.created_at,visit:E.visit,source_ref:E.source_ref,closed_by:E.closed_by,closed_at:E.closed_at,bolt:E.bolt,triaged_at:E.triaged_at};c||(S.stage=g),h.push(S)}}if(!c){let g=Us(a,"");for(let y of g)u!==void 0&&p(y)!==u||h.push({feedback_id:y.id,file:y.file,title:y.title,status:y.status,origin:y.origin,author:y.author,author_type:y.author_type,created_at:y.created_at,visit:y.visit,source_ref:y.source_ref,closed_by:y.closed_by,closed_at:y.closed_at,bolt:y.bolt,triaged_at:y.triaged_at,stage:null})}let m={intent:a,stage:c||null,count:h.length,items:h};return r(m)}case"haiku_feedback_read":{let o=Be(t,Kme,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=c?lo(a,c):lo(a,"");if(!ue(l))return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback directory at ${l}.`},{isError:!0});let d=null,f=null,p=null,h=u.match(/^(?:FB-)?(\d+)$/i),m=h?Number.parseInt(h[1],10):null;for(let S of an(l).filter(_=>_.endsWith(".md"))){let _=ne(l,S),{data:b,body:T}=re(Pe(_,"utf8")),A=S.match(/^(\d+)-/),R=A?Number.parseInt(A[1],10):null;if(b.id===u||b.feedback_id===u||m!==null&&R===m){d=_,f=b,p=T;break}}if(!d||!p)return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${l}.`},{isError:!0});zye(d);let g=typeof f?.title=="string"?f.title:"",y=p.match(/^#\s+(.+)$/m),E=g||(y?y[1].trim():u);return r({title:E,body:p})}case"haiku_feedback_write":{let o=Be(t,Yme,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.body??"",d=cv(l);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty FB bodies cannot pass the assessor's spec-match check."},{isError:!0});let f=ea(a,c||void 0);if(f)return f;let p=Sc(a,c,u);if(!p){let E=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${E}.`},{isError:!0})}let h=p.path,m=p.data,g=m.status||"pending";if(!hE()&&(g==="closed"||g==="rejected"||g==="non_actionable"))return r({error:"lifecycle_violation",current_status:g,message:`Cannot rewrite feedback '${u}' \u2014 status is '${g}'. Per the forward-only lifecycle rule, closed, rejected, and non-actionable feedback are terminal and immutable. To raise a related concern, file a NEW feedback via haiku_feedback.`},{isError:!0});let y=Array.isArray(m.iterations)?m.iterations:[];return!hE()&&y.length>0?r({error:"body_locked",feedback_id:u,iterations:y.length,message:`Feedback '${u}' body is locked \u2014 its fix-hat loop has started (${y.length} iteration(s) on record). The body is the immutable finding; record your per-hat work in the handoff \`message\` on haiku_feedback_advance_hat (or haiku_feedback_reject_hat), which the engine threads into the next hat's dispatch. Do not rewrite the body.`},{isError:!0}):(In(h,Ct.default.stringify(`${d.trimEnd()} +`,m)),ci(a),Ke("haiku.feedback.body_rewritten",{intent:a,stage:c||"",feedback_id:u}),r({ok:!0,feedback_id:u,stage:c||null,intent:a,message:`Rewrote body of feedback '${u}' (status preserved as '${g}').`}))}case"haiku_feedback_advance_hat":{let o=Be(t,Xme,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=ea(a,c||void 0);if(l)return l;let d=Sc(a,c,u);if(!d){let H=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${H}.`},{isError:!0})}let f=d.path,p=d.data,h=d.body,m=ep(p);if(m==="closed"||m==="rejected"||m==="non_actionable")return r({error:"lifecycle_violation",current_status:m,message:`Cannot advance hat on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g=[],y=ne(pe(a),"intent.md"),E="software";if(ue(y)){let{data:H}=re(Pe(y,"utf8"));E=H.studio||"software"}if(c){let H=$i(E,c);H?.data?.fix_hats&&Array.isArray(H.data.fix_hats)&&(g=H.data.fix_hats)}else g=Uf(E);if(g.length===0)return r({error:"no_fix_hats",stage:c||null,scope:c?"stage":"intent",message:c?`Stage '${c}' has no \`fix_hats:\` configured in STAGE.md. The fix-loop FB-as-unit model requires a fix_hats sequence.`:`Studio '${E}' has no fix-hats (looked in the global \`plugin/fix-hats/\` and studio \`plugin/studios/${E}/fix-hats/\`). Intent-completion fix loops require at least one fix-hat.`},{isError:!0});let S=p.hat||"",_=p.bolt||1,T=(S?g.indexOf(S):-1)+1,A=g[T];if(!A)return r({error:"no_hat_to_advance",message:`FB '${u}' is at hat '${S}', already the last hat in fix_hats. The FB should have closed on the prior advance call. State may be inconsistent.`},{isError:!0});let R=T===g.length-1;if((typeof t.resolution=="string"?t.resolution:"")==="non_actionable"){let H=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!H)return r({error:"reason_required",feedback_id:u,message:`Closing FB '${u}' as non_actionable requires a \`message\` (or \`reply\`) explaining why it has no code fix \u2014 the answer to the question, why it's out of scope, or why the target is immutable/superseded.`},{isError:!0});let j=Array.isArray(p.iterations)?p.iterations.slice():[],W=j[j.length-1],ee={bolt:_,hat:A,completed_at:_n(),result:"closed",message:H};W&&(W.result===null||W.result===void 0)&&W.hat===A?j[j.length-1]={...W,...ee}:j.push(ee);let se={...p,hat:A,iterations:j,status:"non_actionable",resolution:"non_actionable",closed_at:_n(),closed_by:`${A}:non_actionable`,closure_reply:{text:H,at:_n()},closure_reply_unread:!0};In(f,Ct.default.stringify(`${h.trimEnd()} +`,se)),ci(a),QK(a,c||"intent",u),wt(`haiku: close fix-chain ${u} (non-actionable)`),Ke("haiku.feedback.non_actionable",{intent:a,stage:c||"",feedback_id:u,hat:A});let Re=jye(a,E);return n(JSON.stringify({action:"feedback_non_actionable",feedback_id:u,resolution:"non_actionable",hat:A,next_subagent_dispatch_block:Re,message:`FB '${u}' closed as non-actionable by '${A}': ${H}`+(Re?" Spawn the relayed block below.":` Call haiku_run_next { intent: "${a}" }.`)}))}let k=typeof t.reply=="string"?t.reply.trim():"",P=typeof t.message=="string"?t.message.trim():"";if(R&&!k)return r({error:"reply_required",feedback_id:u,calling_hat:A,message:`FB '${u}' is about to close on terminal hat '${A}'. Pass a \`reply\` arg with a short plain-language explanation of what was done so the requester can see how the issue was addressed.`},{isError:!0});let N=Array.isArray(p.iterations)?p.iterations.slice():[],C=N[N.length-1];C&&(C.result===null||C.result===void 0)&&C.hat===A?N[N.length-1]={...C,completed_at:_n(),result:R?"closed":"advanced",...P?{message:P}:{}}:N.push({bolt:_,hat:A,completed_at:_n(),result:R?"closed":"advanced",...P?{message:P}:{}});let V=m,K,$;R?(V="closed",K=`fix-loop:${u}:bolt-${_}`,$=_n()):V="addressed";let B=A,X={...p,hat:B,iterations:N,status:V};K&&(X.closed_by=K),$&&(X.closed_at=$),R&&k&&(X.closure_reply={text:k,at:_n()},X.closure_reply_unread=!0),In(f,Ct.default.stringify(`${h.trimEnd()} +`,X)),ci(a),R&&mSt({slug:a,stage:c??void 0,feedbackId:u,fbFm:p}),Ke(R?"haiku.feedback.closed":"haiku.feedback.hat_advanced",{intent:a,stage:c||"",feedback_id:u,hat:B});let G=c||"intent";if(!R)npe(a,G,u);else{s5(`haiku: close fix-chain ${u}`);let H=FE(a,G,()=>jD(a,G,u));if(!H.success){let j=yg(a,G,u);return H.isConflict?r({action:"integrate_fix_chains",intent:a,scope:G,items:[{feedback_id:u}],feedback_id:u,worktree:j,conflict_paths:H.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${G==="intent"?`haiku/${a}/main`:`stage '${G}'`} produced conflicts on ${(H.conflictFiles??[]).length} file(s): ${(H.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${j}) \u2014 resolve each conflicted file there (the engine can't; they contain code), \`git add\` the resolved files, \`git commit\` to complete the in-worktree merge, then call \`haiku_run_next { intent: "${a}" }\`. The engine forward-merges the resolved chain into ${G==="intent"?"intent main":"the stage branch"} on that tick.`},{isError:!0}):r({action:"merge_failed",intent:a,scope:G,feedback_id:u,worktree:j,error:H.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${G==="intent"?`haiku/${a}/main`:`stage '${G}'`}. Git output: ${H.message}. Commit any engine-owned dirty files on the base branch, then call \`haiku_run_next { intent: "${a}" }\` so the engine retries the merge.`},{isError:!0})}}let M=R?null:g[T+1],q=null,U="",D=(()=>{let H=ne(pe(a),"intent.md");if(!ue(H))return"";let j=(0,Ct.default)(Pe(H,"utf8")).data;return typeof j.studio=="string"?j.studio:""})();if(!R&&M&&D)try{let H=T+1===g.length-1;q=FI({slug:a,studio:D,feedbackId:u,stage:c??"",hat:M,terminal:H}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(R&&D)try{q=F0(a,()=>jye(a,D)),q&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!q){let H=!1;try{let j=pe(a),W=[ne(j,"feedback")],ee=ne(j,"stages");if(ue(ee))for(let se of an(ee))W.push(ne(ee,se,"feedback"));e:for(let se of W)if(ue(se))for(let Me of an(se).filter(Re=>Re.endsWith(".md"))){let Re=Pe(ne(se,Me),"utf8"),z=(0,Ct.default)(Re).data;if(typeof z.status=="string"&&(z.status==="closed"||z.status==="rejected")||z.closed_at||z.rejected_at)continue;let J=Array.isArray(z.iterations)?z.iterations:[],oe=J[J.length-1];if(oe&&(oe.result===null||oe.result===void 0)){H=!0;break e}}}catch{}U=H?"Wave still has in-flight fix-chains; no replenishment available right now. Terminate \u2014 sibling subagents will fire their own breadcrumbs when they advance.":R?`FB '${u}' closed by ${K} after '${A}' (last hat in fix_hats sequence ${T+1}/${g.length}). Wave done \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`:`FB '${u}': '${A}' (${T+1}/${g.length}) finished. Wave done \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`}return r({ok:!0,feedback_id:u,stage:c||null,calling_hat:A,next_dispatched_hat:M,closed:R,bolt:_,next_subagent_dispatch_block:q,message:U})}case"haiku_feedback_reject_hat":{let o=Be(t,Qme,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.message||"";if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let d=ea(a,c||void 0);if(d)return d;let f=Sc(a,c,u);if(!f){let q=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",feedback_id:u,message:`No feedback file matching ${u} in ${q}.`},{isError:!0})}let p=f.path,h=f.data,m=f.body,g=ep(h);if(g==="closed"||g==="rejected")return r({error:"lifecycle_violation",current_status:g,message:`Cannot reject hat on FB '${u}' \u2014 already ${g} (terminal).`},{isError:!0});let y=[],E=ne(pe(a),"intent.md"),S="software";if(ue(E)){let{data:q}=re(Pe(E,"utf8"));S=q.studio||"software"}if(c){let q=$i(S,c);q?.data?.fix_hats&&Array.isArray(q.data.fix_hats)&&(y=q.data.fix_hats)}else y=Uf(S);if(y.length===0)return r({error:"no_fix_hats",stage:c||null,scope:c?"stage":"intent",message:c?`Stage '${c}' has no \`fix_hats:\` configured.`:`Studio '${S}' has no fix-hats (looked in the global \`plugin/fix-hats/\` and studio \`plugin/studios/${S}/fix-hats/\`).`},{isError:!0});let _=h.hat||"",b=h.bolt||1,A=(_?y.indexOf(_):-1)+1,R=y[A];if(!R)return r({error:"no_hat_to_reject",message:`FB '${u}' has no hat to reject \u2014 already past the last hat in fix_hats (storage at '${_}').`},{isError:!0});let x=A-2,k=x>=0?y[x]:"",P=c?Mu(S,c):jK(S),{targetHat:N}=Fpe(y,R,{roleOf:q=>P[q]?.role}),C=Array.isArray(h.iterations)?h.iterations.slice():[],F=0;for(let q of C){if(!q||typeof q!="object")continue;let U=q;U.hat===R&&U.result==="rejected"&&F++}if(F>=1){let q=c?`stage: "${c}", `:"";return r({error:"fix_loop_no_progress",calling_hat:R,prior_rejections_by_same_hat:F,message:`Hat '${R}' has already rejected FB '${u}' ${F} time(s) in prior bolt(s); this would be rejection #${F+1}. Bouncing back to '${N}' to re-run cannot produce a different outcome \u2014 the rejecter has signaled the same impasse twice. Two paths forward: + - If this finding has no actionable fix (cosmetic, valid observation that needs no code change, upstream-driven drift the engine will resolve on the next sign cycle): call \`haiku_feedback_reject { intent: "${a}", ${q}feedback_id: ${u}, reason: "" }\` to terminally close. - If the finding is real but this hat chain cannot resolve it: file an upstream FB describing the impasse for human review.`},{isError:!0})}let V=C[C.length-1];V&&(V.result===null||V.result===void 0)&&V.hat===R?C[C.length-1]={...V,completed_at:_n(),result:"rejected",message:l||"(no message provided)"}:C.push({bolt:b,hat:R,completed_at:_n(),result:"rejected",message:l||"(no message provided)"});let $,B;if(zo.modelSelection){let q=h.model,U=Cfe(q);q&&U&&($=q,B=U)}let X={...h,hat:k,bolt:b+1,iterations:C,...B?{model:B,model_original:h.model_original??$}:{}};In(p,Ct.default.stringify(`${m.trimEnd()} +`,X)),$&&B&&console.error(`[haiku] feedback model escalated: ${$} \u2192 ${B} (FB ${u} hat rejected, bolt ${b+1})`),ci(a),Ke("haiku.feedback.hat_rejected",{intent:a,stage:c||"",feedback_id:u,hat:R,new_bolt:String(b+1),...B?{model_escalated_from:$,model_escalated_to:B}:{}});let G=null;if(S)try{G=FI({slug:a,studio:S,feedbackId:u,stage:c??"",hat:N,terminal:!1})}catch{}let M=G?`FB '${u}' hat '${R}' rejected \u2014 re-running '${N}' (bolt ${b+1}). Relay the \`next_subagent_dispatch_block\` field verbatim as your final message.`:`FB '${u}' hat '${R}' rejected \u2014 bounced to '${N}' (bolt ${b+1}). Call \`haiku_run_next { intent: "${a}" }\` to re-dispatch it.`;return r({ok:!0,feedback_id:u,rejecting_hat:R,next_dispatched_hat:N,new_bolt:b+1,handoff:l,next_subagent_dispatch_block:G,message:M})}case"haiku_feedback_set_targets":{let o=Be(t,Zme,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.target_unit===null||t.target_unit===void 0?null:t.target_unit,d=t.target_invalidates??[],f=typeof t.reasoning=="string"?t.reasoning.trim():"",p=ea(a,c||void 0);if(p)return p;let h=Sc(a,c,u);if(!h)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let m=h.data.targets&&typeof h.data.targets=="object"?h.data.targets:null,g=m&&typeof m.unit<"u"&&m.unit!==null?m.unit:null,y=m&&Array.isArray(m.invalidates)?m.invalidates:[];if(g!==null||y.length>0)return r({error:"targets_already_set",feedback_id:u,current_target_unit:g,current_target_invalidates:y,message:`Feedback '${u}' already has classified targets \u2014 once set, immutable per the FB-as-unit architecture. To retarget, reject the FB (haiku_feedback_reject) and create a new one with the correct targets.`},{isError:!0});let E=h.data.status||"pending";if(E==="closed"||E==="rejected")return r({error:"lifecycle_violation",current_status:E,message:`Cannot classify FB '${u}' \u2014 already ${E} (terminal).`},{isError:!0});let S={unit:l,invalidates:d};f&&(S.reasoning=f);let _={...h.data,targets:S};return In(h.path,Ct.default.stringify(` ${h.body} -`,_)),si(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=qe(t,Pme,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=Fd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=Xo(a,c||void 0);if(f)return f;let p=mc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let y={...p.data,severity:l};return Mn(p.path,Ht.default.stringify(` +`,_)),ci(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=Be(t,Jme,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=qd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=ea(a,c||void 0);if(f)return f;let p=Sc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g={...p.data,severity:l};return In(p.path,Ct.default.stringify(` ${p.body} -`,y)),si(a),r({ok:!0,feedback_id:u,severity:l,reasoning:d||null,message:`Feedback '${u}' severity set to '${l}'${d?` \u2014 ${d}`:""}.`})}case"haiku_version_info":{let o=qe(t,TL,"haiku_version_info");if(o)return o;let a=rd==="dev",c={mcp_version:rd,plugin_version:yS(),build_kind:a?"dev (source via bun/tsx)":"prod (compiled bundle)",runtime:`${process.release?.name??"node"} ${process.version}`,entry:process.argv[1]??""};return r(c)}default:return n(`Unknown tool: ${e}`)}}var SSt,Ht,bye,Tye,wye,PKn,VL,Hd,Pf,dv,qZ,ZKn,JKn,XKn,Sye,Rye,WZ,c3n,D_,Og,u3n,rv,l3n,Bye,ze=v(()=>{"use strict";uD();SSt=_e(Fb(),1),Ht=_e(sn(),1);Oi();ffe();bpe();mft();_o();Ope();o3();hc();Zge();UL();bZ();jyt();Tr();M0();a_();GL();$p();zL();CZ();Zn();Sl();Ko();ab();xT();es();wa();es();vo();bye=10*1024,Tye=1024;wye=80;PKn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;VL=null;Hd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Pf=2,dv=5,qZ=3;ZKn=new Set(["the","a","an","is","are","was","were","be","been","to","of","in","on","at","for","and","or","but","this","that","it","its","with","as","by","from","should","must","needs","need","has","have","not","no","we","you","i","if","then","than","there","here","when","which","what","does","do","did","can","will"]);JKn=.6;XKn=[/\b(?:use|extend)\s+(?:the\s+)?existing\s+`([A-Za-z_][\w.$]*)`\s+(?:in|from)\s+`([^`]+)`/gi,/\bextend\s+(?:the\s+)?`([A-Za-z_][\w.$]*)`\s+exported\s+from\s+`([^`]+)`/gi];Sye=null,Rye=null;WZ="feedback-assessor";c3n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],D_=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Og=3,u3n=3,rv=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),l3n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);Bye=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:p9,outputSchema:{type:"object",properties:{found:{type:"boolean",description:"True if the intent file exists."},field:{type:"string",description:"Echoed field name from the request."},value:{description:"Field value as parsed from frontmatter. Null when missing or when the intent doesn't exist."}},required:["found","field"]}},{name:"haiku_intent_list",description:"List all intents in the workspace",inputSchema:h9,outputSchema:{type:"object",properties:{intents:{type:"array",items:{type:"object",properties:{slug:{type:"string"},title:{type:"string"},status:{type:"string"},studio:{type:"string"},archived:{type:"boolean"}},required:["slug"]}}},required:["intents"]}},{name:"haiku_stage_get",description:"Read a field from a stage's state",inputSchema:M9,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Stage state field value. v3 reads it from per-stage state.json; v4 derives stage state from per-unit `iterations[]` + branch-merge state. Null when missing."}},required:["found","field"]}},{name:"haiku_unit_get",description:`Read ONE agent-authorable/corrective frontmatter field on a unit. The READ counterpart to haiku_unit_set's corrective exemption: haiku_unit_set replaces the WHOLE \`quality_gates\` (or \`outputs\`) array, so to repair a single wrong gate command/path on an active unit without clobbering the others you must first read the current array, modify one entry, then write it back. Readable fields: ${k_.join(", ")}. FSM-driven fields (${Vf.join(", ")}) return \`unit_field_engine_only\` \u2014 engine bookkeeping stays hidden; for the unit body/title use haiku_unit_read.`,inputSchema:V9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},found:{type:"boolean",description:"True when the field is present (non-null) on the unit."},value:{type:["string","array","number","boolean","null","object"],description:"The field's current native value (array for quality_gates/outputs/inputs/etc.), or null when absent."},error:{type:"string"}}}},{name:"haiku_unit_set",description:`Set a field in a unit's frontmatter. \`value\` MUST match the field's declared type in the unit FM schema \u2014 array for \`inputs:\` / \`outputs:\` / \`depends_on:\` / \`closes:\` / \`quality_gates:\`, string for \`title:\` / \`model:\`. The handler validates per-field at runtime and rejects mismatches with \`field_type_mismatch\` so type drift never lands in YAML. Agent-authorable fields: ${k_.join(", ")}. FSM-driven (rejected): ${Vf.join(", ")}. CORRECTIVE EXEMPTION: \`outputs\` and \`quality_gates\` stay editable AFTER the unit has started/completed (every other field is forward-only-immutable once active). This is the sanctioned path to repair a broken gate command (wrong workspace name, bad path, wrong invocation) or a missed output without re-opening the unit \u2014 it changes how the unit is verified, NOT what it produced, so it is a safe correction, not a workflow-control rewrite. Use it directly to fix gate typos.`,inputSchema:z9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"},current_status:{type:"string",description:"On lifecycle_violation: the unit's current immutable status."},field:{type:"string"}}}},{name:"haiku_unit_list",description:"List all units in a stage with their status",inputSchema:W9,outputSchema:{type:"object",properties:{units:{type:"array",items:{type:"object",properties:{name:{type:"string"},status:{type:"string",description:"pending | active | completed"},bolt:{type:"number"},hat:{type:"string"},model:{type:["string","null"]}},required:["name"]}}},required:["units"]}},{name:"haiku_unit_start",description:"Mark a unit as started. The system resolves the stage and first hat internally.",inputSchema:K9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},stage:{type:"string"},first_hat:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_unit_advance_hat",description:"Advance a unit to the next hat in the sequence. When called on the last hat, auto-completes the unit and progresses the workflow engine. The system resolves the current hat, next hat, and stage internally.",inputSchema:Z9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},current_hat:{type:"string",description:"The hat that just finished."},next_hat:{type:["string","null"],description:"The hat to dispatch next, or null when the unit auto-completed."},completed:{type:"boolean",description:"True if this advance closed the unit (last hat in the sequence)."},bolt:{type:"number"},message:{type:"string"},error:{type:"string",description:"On failure: stable named error code."}},required:["message"]}},{name:"haiku_unit_reject_hat",description:"Reject the current hat's work \u2014 moves back to the previous hat and increments bolt. Pass `reason` so the unit's iteration history records why the hat was rejected (what failed, which criterion wasn't met).",inputSchema:Y9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},stage:{type:"string"},prev_hat:{type:"string",description:"The prior hat the chain bounced back to (re-dispatched next)."},bolt:{type:"number"},reason:{type:["string","null"]},outputs_present:{type:"boolean"},outputs_files_present:{type:"array",items:{type:"string"}},outputs_files_missing:{type:"array",items:{type:"string"}},next_subagent_dispatch_block:{type:["string","null"],description:"The bounced-to prior hat's dispatch block \u2014 relay it verbatim to re-run that hat. Null when the wave has no more work."},message:{type:"string"},error:{type:"string"}},required:["message"]}},{name:"haiku_unit_read",description:"Read a unit's body content (and title). Returns ONLY the body and title \u2014 frontmatter is workflow engine-internal and not exposed to agents per the architecture's FM-is-workflow engine-only rule. Use this when a hat needs to read another unit's substance (sibling references, prior-stage knowledge artifacts) without interpreting FM. Returns { title, body } as JSON.",inputSchema:J9,outputSchema:{type:"object",properties:{title:{type:"string",description:"Unit title from frontmatter (or derived from first H1)."},body:{type:"string",description:"Full markdown body. Frontmatter is intentionally not exposed (workflow engine-only per architecture \xA71.1)."},error:{type:"string",description:"On not-found / wrong-stage."}}}},{name:"haiku_read_hat",description:"Read a hat mandate body, resolved through the project\u2192plugin override cascade and with frontmatter stripped (engine bookkeeping; not for the agent). Dispatch prompts instruct the agent to call this for its role's behavior contract instead of carrying an inlined copy. Pass `fix: true` from a fix-loop dispatch to prefer the fix-scoped mandate (`stages//fix-hats/.md`, falling back to the production `hats/.md`). Returns { hat, body } as JSON.",inputSchema:L9,outputSchema:{type:"object",properties:{hat:{type:"string"},body:{type:"string",description:"Hat mandate markdown body (frontmatter stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_stage",description:"Read a stage's STAGE.md body, resolved through the project\u2192plugin override cascade and with frontmatter stripped. Dispatch prompts instruct the agent to call this for the stage scope instead of carrying an inlined copy. Returns { stage, body } as JSON.",inputSchema:U9,outputSchema:{type:"object",properties:{stage:{type:"string"},body:{type:"string",description:"STAGE.md markdown body (frontmatter stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_review_agent",description:"Read a review/approval agent's mandate body, resolved through the project\u2192plugin override cascade and with frontmatter stripped. Pass `stage` for a stage-scope review/approval agent; OMIT `stage` for an intent-completion review agent (studio's intent-review-agents/). Engine-built-in roles (spec/continuity/cross-stage-consistency) are NOT files \u2014 they're generated and not readable here. Returns { role, body } as JSON.",inputSchema:F9,outputSchema:{type:"object",properties:{role:{type:"string"},body:{type:"string",description:"Mandate body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_intent",description:"Read the intent's body (`.haiku/intents//intent.md`), frontmatter stripped. The workflow hook guards this file against generic Read, so this is how a dispatched agent gets the intent goal. Returns { intent, body } as JSON.",inputSchema:j9,outputSchema:{type:"object",properties:{intent:{type:"string"},body:{type:"string",description:"Intent body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_discovery",description:"Read a discovery template body, resolved through the project\u2192plugin override cascade and with frontmatter stripped (the `location:`/`tool:` FM is engine bookkeeping). The body is the content guide + quality signals the discovery agent authors its artifact from. Returns { template, body } as JSON.",inputSchema:H9,outputSchema:{type:"object",properties:{template:{type:"string"},body:{type:"string",description:"Template body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_phase",description:"Read a stage's phase override body (`phases/.md`), resolved through the project\u2192plugin override cascade and with frontmatter stripped. Returns { phase, body } as JSON; `error: phase_not_found` when the stage ships no override for that phase.",inputSchema:q9,outputSchema:{type:"object",properties:{phase:{type:"string"},body:{type:"string",description:"Phase override body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_output",description:"Read an output template body (`outputs/.md`), resolved through the project\u2192plugin override cascade and with frontmatter stripped. The body is the artifact-shape guide the producing hat follows. Returns { name, body } as JSON.",inputSchema:B9,outputSchema:{type:"object",properties:{name:{type:"string"},body:{type:"string",description:"Output template body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_unit_delete",description:"Delete a unit. ONLY permitted when the unit's status is `pending`. Active and completed units are immutable per the forward-only lifecycle rule \u2014 once a unit has informed downstream work, deleting it would silently invalidate that work. Returns an error naming the rule when called against a non-pending unit.",inputSchema:X9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"},current_status:{type:"string"},required_status:{type:"string",const:"pending"}}}},{name:"haiku_unit_write",description:`Create or fully rewrite a unit file. This is the ONLY agent-callable path for authoring units \u2014 generic file Write/Edit on \`units/*.md\` is denied at the hook layer. The body is freeform markdown; the optional \`frontmatter\` is validated against the FM schema (depends_on entries must be strings with no self-reference and no cycles among declared units; etc.). Lifecycle: only allowed when the unit doesn't exist yet OR when its status is \`pending\`. Active and completed units are immutable. +`,g)),ci(a),r({ok:!0,feedback_id:u,severity:l,reasoning:d||null,message:`Feedback '${u}' severity set to '${l}'${d?` \u2014 ${d}`:""}.`})}case"haiku_version_info":{let o=Be(t,CL,"haiku_version_info");if(o)return o;let a=od==="dev",c={mcp_version:od,plugin_version:bS(),build_kind:a?"dev (source via bun/tsx)":"prod (compiled bundle)",runtime:`${process.release?.name??"node"} ${process.version}`,entry:process.argv[1]??""};return r(c)}default:return n(`Unknown tool: ${e}`)}}var JSt,Ct,qye,Bye,Kye,P9n,n1,Bd,Cf,mv,r5,Y9n,J9n,X9n,Fye,Vye,uEt,c3n,HE,Mg,u3n,av,l3n,uSe,ze=v(()=>{"use strict";yD();JSt=Se(Gb(),1),Ct=Se(Kt(),1);Ci();Pfe();Upe();Vft();ns();Ype();T9();Oa();vY();pye();YL();FY();gSt();yr();j0();dE();e1();ih();t1();JY();Kn();Tl();vo();db();SE();ji();Ia();ji();uo();qye=10*1024,Bye=1024;Kye=80;P9n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;n1=null;Bd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Cf=2,mv=5,r5=3;Y9n=new Set(["the","a","an","is","are","was","were","be","been","to","of","in","on","at","for","and","or","but","this","that","it","its","with","as","by","from","should","must","needs","need","has","have","not","no","we","you","i","if","then","than","there","here","when","which","what","does","do","did","can","will"]);J9n=.6;X9n=[/\b(?:use|extend)\s+(?:the\s+)?existing\s+`([A-Za-z_][\w.$]*)`\s+(?:in|from)\s+`([^`]+)`/gi,/\bextend\s+(?:the\s+)?`([A-Za-z_][\w.$]*)`\s+exported\s+from\s+`([^`]+)`/gi];Fye=null,Vye=null;uEt="feedback-assessor";c3n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],HE=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Mg=3,u3n=3,av=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),l3n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);uSe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:x3,outputSchema:{type:"object",properties:{found:{type:"boolean",description:"True if the intent file exists."},field:{type:"string",description:"Echoed field name from the request."},value:{description:"Field value as parsed from frontmatter. Null when missing or when the intent doesn't exist."}},required:["found","field"]}},{name:"haiku_intent_list",description:"List all intents in the workspace",inputSchema:O3,outputSchema:{type:"object",properties:{intents:{type:"array",items:{type:"object",properties:{slug:{type:"string"},title:{type:"string"},status:{type:"string"},studio:{type:"string"},archived:{type:"boolean"}},required:["slug"]}}},required:["intents"]}},{name:"haiku_stage_get",description:"Read a field from a stage's state",inputSchema:J3,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Stage state field value. v3 reads it from per-stage state.json; v4 derives stage state from per-unit `iterations[]` + branch-merge state. Null when missing."}},required:["found","field"]}},{name:"haiku_unit_get",description:`Read ONE agent-authorable/corrective frontmatter field on a unit. The READ counterpart to haiku_unit_set's corrective exemption: haiku_unit_set replaces the WHOLE \`quality_gates\` (or \`outputs\`) array, so to repair a single wrong gate command/path on an active unit without clobbering the others you must first read the current array, modify one entry, then write it back. Readable fields: ${CE.join(", ")}. FSM-driven fields (${Yf.join(", ")}) return \`unit_field_engine_only\` \u2014 engine bookkeeping stays hidden; for the unit body/title use haiku_unit_read.`,inputSchema:aY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},found:{type:"boolean",description:"True when the field is present (non-null) on the unit."},value:{type:["string","array","number","boolean","null","object"],description:"The field's current native value (array for quality_gates/outputs/inputs/etc.), or null when absent."},error:{type:"string"}}}},{name:"haiku_unit_set",description:`Set a field in a unit's frontmatter. \`value\` MUST match the field's declared type in the unit FM schema \u2014 array for \`inputs:\` / \`outputs:\` / \`depends_on:\` / \`closes:\` / \`quality_gates:\`, string for \`title:\` / \`model:\`. The handler validates per-field at runtime and rejects mismatches with \`field_type_mismatch\` so type drift never lands in YAML. Agent-authorable fields: ${CE.join(", ")}. FSM-driven (rejected): ${Yf.join(", ")}. CORRECTIVE EXEMPTION: \`outputs\` and \`quality_gates\` stay editable AFTER the unit has started/completed (every other field is forward-only-immutable once active). This is the sanctioned path to repair a broken gate command (wrong workspace name, bad path, wrong invocation) or a missed output without re-opening the unit \u2014 it changes how the unit is verified, NOT what it produced, so it is a safe correction, not a workflow-control rewrite. Use it directly to fix gate typos.`,inputSchema:oY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"},current_status:{type:"string",description:"On lifecycle_violation: the unit's current immutable status."},field:{type:"string"}}}},{name:"haiku_unit_list",description:"List all units in a stage with their status",inputSchema:cY,outputSchema:{type:"object",properties:{units:{type:"array",items:{type:"object",properties:{name:{type:"string"},status:{type:"string",description:"pending | active | completed"},bolt:{type:"number"},hat:{type:"string"},model:{type:["string","null"]}},required:["name"]}}},required:["units"]}},{name:"haiku_unit_start",description:"Mark a unit as started. The system resolves the stage and first hat internally.",inputSchema:uY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},stage:{type:"string"},first_hat:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_unit_advance_hat",description:"Advance a unit to the next hat in the sequence. When called on the last hat, auto-completes the unit and progresses the workflow engine. The system resolves the current hat, next hat, and stage internally.",inputSchema:lY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},current_hat:{type:"string",description:"The hat that just finished."},next_hat:{type:["string","null"],description:"The hat to dispatch next, or null when the unit auto-completed."},completed:{type:"boolean",description:"True if this advance closed the unit (last hat in the sequence)."},bolt:{type:"number"},message:{type:"string"},error:{type:"string",description:"On failure: stable named error code."}},required:["message"]}},{name:"haiku_unit_reject_hat",description:"Reject the current hat's work \u2014 moves back to the previous hat and increments bolt. Pass `reason` so the unit's iteration history records why the hat was rejected (what failed, which criterion wasn't met).",inputSchema:dY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},stage:{type:"string"},prev_hat:{type:"string",description:"The prior hat the chain bounced back to (re-dispatched next)."},bolt:{type:"number"},reason:{type:["string","null"]},outputs_present:{type:"boolean"},outputs_files_present:{type:"array",items:{type:"string"}},outputs_files_missing:{type:"array",items:{type:"string"}},next_subagent_dispatch_block:{type:["string","null"],description:"The bounced-to prior hat's dispatch block \u2014 relay it verbatim to re-run that hat. Null when the wave has no more work."},message:{type:"string"},error:{type:"string"}},required:["message"]}},{name:"haiku_unit_read",description:"Read a unit's body content (and title). Returns ONLY the body and title \u2014 frontmatter is workflow engine-internal and not exposed to agents per the architecture's FM-is-workflow engine-only rule. Use this when a hat needs to read another unit's substance (sibling references, prior-stage knowledge artifacts) without interpreting FM. Returns { title, body } as JSON.",inputSchema:fY,outputSchema:{type:"object",properties:{title:{type:"string",description:"Unit title from frontmatter (or derived from first H1)."},body:{type:"string",description:"Full markdown body. Frontmatter is intentionally not exposed (workflow engine-only per architecture \xA71.1)."},error:{type:"string",description:"On not-found / wrong-stage."}}}},{name:"haiku_read_hat",description:"Read a hat mandate body, resolved through the project\u2192plugin override cascade and with frontmatter stripped (engine bookkeeping; not for the agent). Dispatch prompts instruct the agent to call this for its role's behavior contract instead of carrying an inlined copy. Pass `fix: true` from a fix-loop dispatch to prefer the fix-scoped mandate (`stages//fix-hats/.md`, falling back to the production `hats/.md`). Returns { hat, body } as JSON.",inputSchema:Q3,outputSchema:{type:"object",properties:{hat:{type:"string"},body:{type:"string",description:"Hat mandate markdown body (frontmatter stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_stage",description:"Read a stage's STAGE.md body, resolved through the project\u2192plugin override cascade and with frontmatter stripped. Dispatch prompts instruct the agent to call this for the stage scope instead of carrying an inlined copy. Returns { stage, body } as JSON.",inputSchema:$3,outputSchema:{type:"object",properties:{stage:{type:"string"},body:{type:"string",description:"STAGE.md markdown body (frontmatter stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_review_agent",description:"Read a review/approval agent's mandate body, resolved through the project\u2192plugin override cascade and with frontmatter stripped. Pass `stage` for a stage-scope review/approval agent; OMIT `stage` for an intent-completion review agent (studio's intent-review-agents/). Engine-built-in roles (spec/continuity/cross-stage-consistency) are NOT files \u2014 they're generated and not readable here. Returns { role, body } as JSON.",inputSchema:tY,outputSchema:{type:"object",properties:{role:{type:"string"},body:{type:"string",description:"Mandate body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_intent",description:"Read the intent's body (`.haiku/intents//intent.md`), frontmatter stripped. The workflow hook guards this file against generic Read, so this is how a dispatched agent gets the intent goal. Returns { intent, body } as JSON.",inputSchema:eY,outputSchema:{type:"object",properties:{intent:{type:"string"},body:{type:"string",description:"Intent body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_discovery",description:"Read a discovery template body, resolved through the project\u2192plugin override cascade and with frontmatter stripped (the `location:`/`tool:` FM is engine bookkeeping). The body is the content guide + quality signals the discovery agent authors its artifact from. Returns { template, body } as JSON.",inputSchema:nY,outputSchema:{type:"object",properties:{template:{type:"string"},body:{type:"string",description:"Template body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_phase",description:"Read a stage's phase override body (`phases/.md`), resolved through the project\u2192plugin override cascade and with frontmatter stripped. Returns { phase, body } as JSON; `error: phase_not_found` when the stage ships no override for that phase.",inputSchema:rY,outputSchema:{type:"object",properties:{phase:{type:"string"},body:{type:"string",description:"Phase override body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_output",description:"Read an output template body (`outputs/.md`), resolved through the project\u2192plugin override cascade and with frontmatter stripped. The body is the artifact-shape guide the producing hat follows. Returns { name, body } as JSON.",inputSchema:iY,outputSchema:{type:"object",properties:{name:{type:"string"},body:{type:"string",description:"Output template body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_unit_delete",description:"Delete a unit. ONLY permitted when the unit's status is `pending`. Active and completed units are immutable per the forward-only lifecycle rule \u2014 once a unit has informed downstream work, deleting it would silently invalidate that work. Returns an error naming the rule when called against a non-pending unit.",inputSchema:pY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"},current_status:{type:"string"},required_status:{type:"string",const:"pending"}}}},{name:"haiku_unit_write",description:`Create or fully rewrite a unit file. This is the ONLY agent-callable path for authoring units \u2014 generic file Write/Edit on \`units/*.md\` is denied at the hook layer. The body is freeform markdown; the optional \`frontmatter\` is validated against the FM schema (depends_on entries must be strings with no self-reference and no cycles among declared units; etc.). Lifecycle: only allowed when the unit doesn't exist yet OR when its status is \`pending\`. Active and completed units are immutable. -Allowed FM fields (agent-authorable): ${k_.join(", ")} \u2014 plus any stage-specific fields the per-stage \`phases/ELABORATION.md\` documents. +Allowed FM fields (agent-authorable): ${CE.join(", ")} \u2014 plus any stage-specific fields the per-stage \`phases/ELABORATION.md\` documents. -Forbidden FM fields (workflow-driven, mutating these returns \`fsm_field_forbidden\`): ${Vf.join(", ")}.`,inputSchema:Q9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},created:{type:"boolean",description:"True if a new file was created; false if an existing pending unit was rewritten."},unit:{type:"string",description:"Unit name."},stage:{type:"string",description:"Stage name."},intent:{type:"string",description:"Intent slug."},message:{type:"string"},error:{type:"string",description:"Stable error code: `frontmatter_validation_failed`, `dag_cycle_detected`, `lifecycle_violation`, `missing_args`, etc."},errors:{type:"array",items:{type:"string"},description:"Per-rule error messages from the FM validator (e.g. `fsm_field_forbidden: '...'`)."},cycle_nodes:{type:"array",items:{type:"string"},description:"On `dag_cycle_detected`: the unit names involved in the cycle."},current_status:{type:"string",description:"On `lifecycle_violation`: the current immutable status (active/completed)."}},required:["message"]}},{name:"haiku_reconciliation_acknowledge",description:"Acknowledge upstream-artifact divergences detected by the pre-elaboration reconciliation gate. Records the decision in the stage's decision_log so the gate falls through on the next tick. Use this when the divergence is intentional (e.g. the upstream artifacts describe different surfaces that genuinely need different names). When the divergence is unintentional, edit the upstream artifacts to reconcile and re-run haiku_run_next instead \u2014 do NOT acknowledge to skip the work.",inputSchema:g9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},stage:{type:"string"},rationale:{type:"string"},error:{type:"string"}}}},{name:"haiku_decision_record",description:"Record an elaboration decision in the stage's decision_log, OR declare 'no architectural decisions in scope' for the stage. Used in collaborative-mode stages to track meaningful human-AI knowledge-unification moments instead of counting interaction turns. Each entry is an architectural choice the user picked between options, OR a choice the agent made and surfaced for veto-style approval. Padding questions don't count.",inputSchema:y9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_knowledge_list",description:"List knowledge artifacts for an intent",inputSchema:S9,outputSchema:{type:"object",properties:{files:{type:"array",items:{type:"string"}}},required:["files"]}},{name:"haiku_knowledge_read",description:"Read a knowledge artifact",inputSchema:_9,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},content:{type:"string",description:"Raw markdown body."}},required:["found","name","content"]}},{name:"haiku_skill_list",description:"List all Claude Code skills (slash commands) installed in the user's environment \u2014 plugin root, project-local (.claude/skills/), and global (~/.claude/plugins/*/skills/). The elaborator calls this to annotate units with `applicable_skills:` frontmatter; hat subagent prompts surface those skills automatically.",inputSchema:bL,outputSchema:{type:"object",properties:{skills:{type:"array",items:{type:"object",properties:{slug:{type:"string",description:"Skill slug \u2014 the identifier used in `applicable_skills:` frontmatter (no leading `/`)."},name:{type:"string"},description:{type:"string"},source:{type:"string",enum:["plugin","project","global"]}},required:["slug","name","description","source"]}}},required:["skills"]}},{name:"haiku_studio_list",description:"List all available studios with their description, stages, and category. Project-level studios (.haiku/studios/) override built-in ones on name collision.",inputSchema:bL,outputSchema:{type:"object",properties:{studios:{type:"array",items:{type:"object",properties:{name:{type:"string"},slug:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string",enum:["project","plugin"]}},required:["name","slug"]}}},required:["studios"]}},{name:"haiku_studio_get",description:"Read a studio's STUDIO.md \u2014 returns frontmatter fields and body text. Resolves project-level override first, then built-in.",inputSchema:E9,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},slug:{type:"string"},aliases:{type:"array",items:{type:"string"}},dir:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string"},path:{type:"string"},studio_md:{type:"string"},body:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_studio_stage_get",description:"Read a stage's STAGE.md from a studio \u2014 returns frontmatter fields (hats, review, requires, produces) and body text. Resolves project-level override first, then built-in.",inputSchema:b9,outputSchema:{type:"object",properties:{found:{type:"boolean"},body:{type:"string"},studio:{type:"string"},studio_dir:{type:"string"},stage_md:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_settings_get",description:"Read a field from .haiku/settings.yml. Two top-level fields are load-bearing: `studio` (the lifecycle template name) and `providers.*` (configured external-system providers). Dot-paths like `providers.ticketing.type` work. Returns empty string if not set.",inputSchema:T9,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Field value \u2014 null when missing."}},required:["found","field"]}},{name:"haiku_settings_set",description:"Set a top-level field in .haiku/settings.yml. Validated against plugin/schemas/settings.schema.json. Pass `null` to delete a field. Use this instead of editing the file directly \u2014 Edit/Write/MultiEdit on .haiku/settings.yml is denied by the workflow-fields hook.",inputSchema:v9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_intent_set",description:`Set a frontmatter field on an intent's intent.md. Validated against INTENT_FRONTMATTER_SCHEMA. Agent-authorable fields: ${KT.join(", ")} (note 'studio' is immutable post-creation). Engine-only fields (${ZT.join(", ")}) are rejected \u2014 those are mutated by the workflow engine itself. Use this instead of editing intent.md directly \u2014 Edit/Write/MultiEdit on intent.md is denied by the workflow-fields hook.`,inputSchema:m9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_stage_set",description:"Set a field on stage state. v4: stage state.json is dead \u2014 status / phase / gate_outcome / etc. derive from per-unit FM and branch-merge state. This tool stays as a no-op-with-stable-error so legacy callers get a clean rejection. Agent calls return `stage_field_engine_only`.",inputSchema:D9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},stage:{type:"string"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_capacity",description:"Returns a capacity report grouped by studio \u2014 completed/active counts and median bolt counts per stage.",inputSchema:A9,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Rendered capacity report as markdown text."},studio:{type:["string","null"],description:"Echoed studio filter when one was provided."}},required:["markdown"]}},{name:"haiku_zap",description:"Zero-ceremony single-task run through a stage's hat loop \u2014 stateless (no `.haiku/` files, no workflow tick). Resolves the studio + stage, reads STAGE.md + each hat body via the three-tier cascade, assigns plan/build/verify roles, and returns ready-to-run markdown: the resolved hat sequence, a ready-to-spawn subagent prompt per hat (stage scope + hat mandate + role instructions + the task), and the run/verify/commit procedure (preflight clean-tree check, sequential hat dispatch, PASS/FAIL verdict parsing, commit-only-on-PASS, retry cap of 2). On a bad studio/stage it returns `zap_studio_not_found` / `zap_stage_not_found` with the valid options. The agent follows the returned `message` verbatim and drives the sequential loop.",inputSchema:R9,outputSchema:{type:"object",properties:{message:{type:"string",description:"Markdown instructions the agent follows verbatim (resolved hats, per-hat subagent prompts, run/verify/commit procedure). Always present, including on error responses."},error:{type:"string",description:"Stable named error code (`zap_studio_not_found` / `zap_stage_not_found`) when resolution fails."},studio:{type:"string",description:"Echoed resolved studio slug (success or stage error)."},stage:{type:"string",description:"Echoed resolved stage name on success."},valid_studios:{type:"array",items:{type:"string"},description:"Available studio slugs (zap_studio_not_found path)."},valid_stages:{type:"array",items:{type:"string"},description:"The studio's stage list (zap_stage_not_found path)."}},required:["message"]}},{name:"haiku_review",description:"Runs a git diff against main/upstream and returns formatted pre-delivery code review instructions with diff, stats, review guidelines, and review-agent config.",inputSchema:w9,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_review_open",description:'Open an ad-hoc review pane in the browser for the active intent and BLOCK until the reviewer clicks Done or Request Changes (or the pane times out at 30min). The UI swaps Approve for Done/Close, shows an "Ad-hoc review" badge, and never mutates workflow engine state on its own. Return value is a concrete next-step instruction: on Done the tool returns "no changes requested"; on Request Changes it returns a nudge to call haiku_run_next so the durable feedback routes through the normal fix-loop / revisit path.',inputSchema:k9,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_view",description:'Open a URL the caller can hand to the bundled `haiku-playwright` MCP for runtime verification, visual inspection, or any browser-driven check. Two modes. **Viewer**: tunneled URL pointing at the SPA\'s artifact-browser route \u2014 for inspecting a single rendered artifact. **Boot**: spawns the project\'s runnable stack and returns a localhost URL pointing at the primary process. Boot accepts either `command` (single-process app: `["uvicorn", "app:main"]`, `["bin/dev"]`, `["go", "run", "./cmd/server"]`) or `processes` (multi-process stack: api + frontend + db + worker, with `depends_on` order and `primary` naming the Playwright target). The engine allocates ephemeral ports, sets `PORT`/`HOST` env vars, and exposes `_PORT` + `_URL` to dependents for service discovery. Falls back to a `package.json` `dev`/`start` fast-path when neither `command` nor `processes` is supplied. Non-blocking \u2014 closes via `haiku_view_close` or the 30-minute session TTL; close kills the whole process group.',inputSchema:P9,outputSchema:{type:"object",properties:{session_id:{type:"string"},url:{type:"string"},mode:{type:"string",enum:["viewer","boot"]},intent:{type:"string"},stage:{type:["string","null"]},artifact:{type:["string","null"]},note:{type:"string"}},required:["session_id","url","mode","intent"]}},{name:"haiku_view_close",description:"Explicitly close a view session opened by `haiku_view`. Idempotent \u2014 closing an unknown or already-closed session returns success. Boot-mode sessions (when supported) also terminate the spawned dev server. Use this when the verifier or browsing flow is complete so the session releases its tunnel slot promptly instead of waiting for the standard TTL eviction.",inputSchema:C9,outputSchema:{type:"object",properties:{closed:{type:"boolean"},session_id:{type:"string"},was_view_session:{type:"boolean"}},required:["closed","session_id"]}},{name:"haiku_backlog",description:"Manage the backlog: list items, add new items, review items interactively, or promote items to intents.",inputSchema:I9,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Rendered backlog report as markdown text."},action:{type:"string",enum:["list","add","review","promote"]}},required:["markdown"]}},{name:"haiku_seed",description:"Manage seeds (future ideas): list by status, plant a new seed, or check planted seeds for trigger conditions.",inputSchema:x9,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_feedback",description:'Create a feedback item for an intent. Writes a markdown file with frontmatter tracking status, origin, and author. Omit `stage` to log an intent-scope finding (used by the studio-level pre-intent-completion review layer). To request a stage rewind from the agent side (planner blocked, upstream gap, etc.), pass `stage: ""` and `resolution: "stage_revisit"` \u2014 the next `haiku_run_next` will route the agent to that stage via the feedback walk (emits `start_feedback_hat` at the target stage; post-cursor branch switch moves the working tree there). Revisit is a property of run_next mechanics, not a separate verb. Pass `inline_anchor: { selected_text, paragraph, location, file_path? }` when the finding points at a specific span of an artifact \u2014 the SPA will scroll-and-flash the excerpt when the reviewer clicks the feedback card. Adversarial-review and studio-review hats should attach an anchor whenever they cite a specific line. If the user provides a file as context for this finding (a doc, a screenshot, a log, a path like `~/Downloads/notes.pdf`), read it and synthesize the relevant substance directly into `body` \u2014 NEVER store or reference the file path. An absolute path leaks the user\u2019s machine layout and the external file won\u2019t persist with the feedback; the body must stand on its own from its own text. The `inline_anchor.file_path` exception is an INTENT-relative artifact path the SPA resolves, not an external machine path.',inputSchema:$3,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"e.g. FB-01"},file:{type:"string",description:"Repo-relative path to the FB markdown file."},status:{type:"string"},message:{type:"string"},push_warning:{type:"string",description:"Set when the post-write git push failed."}}}},{name:"haiku_feedback_delete",description:"Delete a feedback file. Cannot delete pending items. Agents cannot delete human-authored items. Omit `stage` for intent-scope feedback.",inputSchema:n9,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},deleted:{type:"boolean"},message:{type:"string"}}}},{name:"haiku_feedback_move",description:'Triage placement for a feedback item. Pass `to_stage` equal to the source `stage` to confirm the FB belongs where it lives (sets `triaged_at` only). Pass a different `to_stage` to relocate it \u2014 the file moves to the target stage\'s feedback dir, gets renumbered to the next free FB-NN there, and `triaged_at` is set. Use "" for intent-scope (either source or target). Closed and rejected FBs are immutable; rejected with an error.',inputSchema:r9,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"FB-NN id in the target location (renumbered on move)."},file:{type:"string",description:"Repo-relative path to the FB file after the operation."},moved:{type:"boolean",description:"True when the file was relocated; false on confirm."},triaged_at:{type:"string"},message:{type:"string"}}}},{name:"haiku_feedback_reject",description:"Reject an agent-authored feedback item with a reason. Sets status to rejected and appends rejection reason to body. Omit `stage` for intent-scope feedback.",inputSchema:i9,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},status:{type:"string",const:"rejected"},message:{type:"string"}}}},{name:"haiku_feedback_list",description:"List feedback items with optional filtering. Omit stage to list across all stages.",inputSchema:s9,outputSchema:{type:"object",properties:{items:{type:"array",items:{type:"object",additionalProperties:!0}}},required:["items"]}},{name:"haiku_feedback_read",description:"Read a feedback file's body content (and title). Returns ONLY the body and title \u2014 frontmatter is workflow engine-internal and not exposed to agents per the architecture's FM-is-workflow engine-only rule. Use this when a fixer hat needs to read its own FB diagnosis or when a reviewer needs to read prior findings on the same artifact. Returns { title, body } as JSON. Omit `stage` to read an intent-scope FB.",inputSchema:o9,outputSchema:{type:"object",properties:{title:{type:"string"},body:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_write",description:`Update a feedback file's body content. This is the architecture-mandated path for fixer hats to populate the FB body with diagnosis (root cause, proposed action, file:line refs) per the FB-as-unit model. Generic Write/Edit on feedback/*.md is denied at the hook layer. Lifecycle: only pending or addressed (under-fix) FBs accept body rewrites. Closed and rejected FBs are immutable. +Forbidden FM fields (workflow-driven, mutating these returns \`fsm_field_forbidden\`): ${Yf.join(", ")}.`,inputSchema:hY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},created:{type:"boolean",description:"True if a new file was created; false if an existing pending unit was rewritten."},unit:{type:"string",description:"Unit name."},stage:{type:"string",description:"Stage name."},intent:{type:"string",description:"Intent slug."},message:{type:"string"},error:{type:"string",description:"Stable error code: `frontmatter_validation_failed`, `dag_cycle_detected`, `lifecycle_violation`, `missing_args`, etc."},errors:{type:"array",items:{type:"string"},description:"Per-rule error messages from the FM validator (e.g. `fsm_field_forbidden: '...'`)."},cycle_nodes:{type:"array",items:{type:"string"},description:"On `dag_cycle_detected`: the unit names involved in the cycle."},current_status:{type:"string",description:"On `lifecycle_violation`: the current immutable status (active/completed)."}},required:["message"]}},{name:"haiku_reconciliation_acknowledge",description:"Acknowledge upstream-artifact divergences detected by the pre-elaboration reconciliation gate. Records the decision in the stage's decision_log so the gate falls through on the next tick. Use this when the divergence is intentional (e.g. the upstream artifacts describe different surfaces that genuinely need different names). When the divergence is unintentional, edit the upstream artifacts to reconcile and re-run haiku_run_next instead \u2014 do NOT acknowledge to skip the work.",inputSchema:N3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},stage:{type:"string"},rationale:{type:"string"},error:{type:"string"}}}},{name:"haiku_decision_record",description:"Record an elaboration decision in the stage's decision_log, OR declare 'no architectural decisions in scope' for the stage. Used in collaborative-mode stages to track meaningful human-AI knowledge-unification moments instead of counting interaction turns. Each entry is an architectural choice the user picked between options, OR a choice the agent made and surfaced for veto-style approval. Padding questions don't count.",inputSchema:C3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_knowledge_list",description:"List knowledge artifacts for an intent",inputSchema:M3,outputSchema:{type:"object",properties:{files:{type:"array",items:{type:"string"}}},required:["files"]}},{name:"haiku_knowledge_read",description:"Read a knowledge artifact",inputSchema:D3,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},content:{type:"string",description:"Raw markdown body."}},required:["found","name","content"]}},{name:"haiku_skill_list",description:"List all Claude Code skills (slash commands) installed in the user's environment \u2014 plugin root, project-local (.claude/skills/), and global (~/.claude/plugins/*/skills/). The elaborator calls this to annotate units with `applicable_skills:` frontmatter; hat subagent prompts surface those skills automatically.",inputSchema:NL,outputSchema:{type:"object",properties:{skills:{type:"array",items:{type:"object",properties:{slug:{type:"string",description:"Skill slug \u2014 the identifier used in `applicable_skills:` frontmatter (no leading `/`)."},name:{type:"string"},description:{type:"string"},source:{type:"string",enum:["plugin","project","global"]}},required:["slug","name","description","source"]}}},required:["skills"]}},{name:"haiku_studio_list",description:"List all available studios with their description, stages, and category. Project-level studios (.haiku/studios/) override built-in ones on name collision.",inputSchema:NL,outputSchema:{type:"object",properties:{studios:{type:"array",items:{type:"object",properties:{name:{type:"string"},slug:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string",enum:["project","plugin"]}},required:["name","slug"]}}},required:["studios"]}},{name:"haiku_studio_get",description:"Read a studio's STUDIO.md \u2014 returns frontmatter fields and body text. Resolves project-level override first, then built-in.",inputSchema:L3,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},slug:{type:"string"},aliases:{type:"array",items:{type:"string"}},dir:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string"},path:{type:"string"},studio_md:{type:"string"},body:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_studio_stage_get",description:"Read a stage's STAGE.md from a studio \u2014 returns frontmatter fields (hats, review, requires, produces) and body text. Resolves project-level override first, then built-in.",inputSchema:U3,outputSchema:{type:"object",properties:{found:{type:"boolean"},body:{type:"string"},studio:{type:"string"},studio_dir:{type:"string"},stage_md:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_settings_get",description:"Read a field from .haiku/settings.yml. Two top-level fields are load-bearing: `studio` (the lifecycle template name) and `providers.*` (configured external-system providers). Dot-paths like `providers.ticketing.type` work. Returns empty string if not set.",inputSchema:F3,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Field value \u2014 null when missing."}},required:["found","field"]}},{name:"haiku_settings_set",description:"Set a top-level field in .haiku/settings.yml. Validated against plugin/schemas/settings.schema.json. Pass `null` to delete a field. Use this instead of editing the file directly \u2014 Edit/Write/MultiEdit on .haiku/settings.yml is denied by the workflow-fields hook.",inputSchema:j3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_intent_set",description:`Set a frontmatter field on an intent's intent.md. Validated against INTENT_FRONTMATTER_SCHEMA. Agent-authorable fields: ${JT.join(", ")} (note 'studio' is immutable post-creation). Engine-only fields (${XT.join(", ")}) are rejected \u2014 those are mutated by the workflow engine itself. Use this instead of editing intent.md directly \u2014 Edit/Write/MultiEdit on intent.md is denied by the workflow-fields hook.`,inputSchema:P3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_stage_set",description:"Set a field on stage state. v4: stage state.json is dead \u2014 status / phase / gate_outcome / etc. derive from per-unit FM and branch-merge state. This tool stays as a no-op-with-stable-error so legacy callers get a clean rejection. Agent calls return `stage_field_engine_only`.",inputSchema:X3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},stage:{type:"string"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_capacity",description:"Returns a capacity report grouped by studio \u2014 completed/active counts and median bolt counts per stage.",inputSchema:H3,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Rendered capacity report as markdown text."},studio:{type:["string","null"],description:"Echoed studio filter when one was provided."}},required:["markdown"]}},{name:"haiku_zap",description:"Zero-ceremony single-task run through a stage's hat loop \u2014 stateless (no `.haiku/` files, no workflow tick). Resolves the studio + stage, reads STAGE.md + each hat body via the three-tier cascade, assigns plan/build/verify roles, and returns ready-to-run markdown: the resolved hat sequence, a ready-to-spawn subagent prompt per hat (stage scope + hat mandate + role instructions + the task), and the run/verify/commit procedure (preflight clean-tree check, sequential hat dispatch, PASS/FAIL verdict parsing, commit-only-on-PASS, retry cap of 2). On a bad studio/stage it returns `zap_studio_not_found` / `zap_stage_not_found` with the valid options. The agent follows the returned `message` verbatim and drives the sequential loop.",inputSchema:q3,outputSchema:{type:"object",properties:{message:{type:"string",description:"Markdown instructions the agent follows verbatim (resolved hats, per-hat subagent prompts, run/verify/commit procedure). Always present, including on error responses."},error:{type:"string",description:"Stable named error code (`zap_studio_not_found` / `zap_stage_not_found`) when resolution fails."},studio:{type:"string",description:"Echoed resolved studio slug (success or stage error)."},stage:{type:"string",description:"Echoed resolved stage name on success."},valid_studios:{type:"array",items:{type:"string"},description:"Available studio slugs (zap_studio_not_found path)."},valid_stages:{type:"array",items:{type:"string"},description:"The studio's stage list (zap_stage_not_found path)."}},required:["message"]}},{name:"haiku_review",description:"Runs a git diff against main/upstream and returns formatted pre-delivery code review instructions with diff, stats, review guidelines, and review-agent config.",inputSchema:B3,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_review_open",description:'Open an ad-hoc review pane in the browser for the active intent and BLOCK until the reviewer clicks Done or Request Changes (or the pane times out at 30min). The UI swaps Approve for Done/Close, shows an "Ad-hoc review" badge, and never mutates workflow engine state on its own. Return value is a concrete next-step instruction: on Done the tool returns "no changes requested"; on Request Changes it returns a nudge to call haiku_run_next so the durable feedback routes through the normal fix-loop / revisit path.',inputSchema:G3,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_view",description:'Open a URL the caller can hand to the bundled `haiku-playwright` MCP for runtime verification, visual inspection, or any browser-driven check. Two modes. **Viewer**: tunneled URL pointing at the SPA\'s artifact-browser route \u2014 for inspecting a single rendered artifact. **Boot**: spawns the project\'s runnable stack and returns a localhost URL pointing at the primary process. Boot accepts either `command` (single-process app: `["uvicorn", "app:main"]`, `["bin/dev"]`, `["go", "run", "./cmd/server"]`) or `processes` (multi-process stack: api + frontend + db + worker, with `depends_on` order and `primary` naming the Playwright target). The engine allocates ephemeral ports, sets `PORT`/`HOST` env vars, and exposes `_PORT` + `_URL` to dependents for service discovery. Falls back to a `package.json` `dev`/`start` fast-path when neither `command` nor `processes` is supplied. Non-blocking \u2014 closes via `haiku_view_close` or the 30-minute session TTL; close kills the whole process group.',inputSchema:Y3,outputSchema:{type:"object",properties:{session_id:{type:"string"},url:{type:"string"},mode:{type:"string",enum:["viewer","boot"]},intent:{type:"string"},stage:{type:["string","null"]},artifact:{type:["string","null"]},note:{type:"string"}},required:["session_id","url","mode","intent"]}},{name:"haiku_view_close",description:"Explicitly close a view session opened by `haiku_view`. Idempotent \u2014 closing an unknown or already-closed session returns success. Boot-mode sessions (when supported) also terminate the spawned dev server. Use this when the verifier or browsing flow is complete so the session releases its tunnel slot promptly instead of waiting for the standard TTL eviction.",inputSchema:Z3,outputSchema:{type:"object",properties:{closed:{type:"boolean"},session_id:{type:"string"},was_view_session:{type:"boolean"}},required:["closed","session_id"]}},{name:"haiku_backlog",description:"Manage the backlog: list items, add new items, review items interactively, or promote items to intents.",inputSchema:z3,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Rendered backlog report as markdown text."},action:{type:"string",enum:["list","add","review","promote"]}},required:["markdown"]}},{name:"haiku_seed",description:"Manage seeds (future ideas): list by status, plant a new seed, or check planted seeds for trigger conditions.",inputSchema:V3,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_feedback",description:'Create a feedback item for an intent. Writes a markdown file with frontmatter tracking status, origin, and author. Omit `stage` to log an intent-scope finding (used by the studio-level pre-intent-completion review layer). To request a stage rewind from the agent side (planner blocked, upstream gap, etc.), pass `stage: ""` and `resolution: "stage_revisit"` \u2014 the next `haiku_run_next` will route the agent to that stage via the feedback walk (emits `start_feedback_hat` at the target stage; post-cursor branch switch moves the working tree there). Revisit is a property of run_next mechanics, not a separate verb. Pass `inline_anchor: { selected_text, paragraph, location, file_path? }` when the finding points at a specific span of an artifact \u2014 the SPA will scroll-and-flash the excerpt when the reviewer clicks the feedback card. Adversarial-review and studio-review hats should attach an anchor whenever they cite a specific line. If the user provides a file as context for this finding (a doc, a screenshot, a log, a path like `~/Downloads/notes.pdf`), read it and synthesize the relevant substance directly into `body` \u2014 NEVER store or reference the file path. An absolute path leaks the user\u2019s machine layout and the external file won\u2019t persist with the feedback; the body must stand on its own from its own text. The `inline_anchor.file_path` exception is an INTENT-relative artifact path the SPA resolves, not an external machine path.',inputSchema:m3,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"e.g. FB-01"},file:{type:"string",description:"Repo-relative path to the FB markdown file."},status:{type:"string"},message:{type:"string"},push_warning:{type:"string",description:"Set when the post-write git push failed."}}}},{name:"haiku_feedback_delete",description:"Delete a feedback file. Cannot delete pending items. Agents cannot delete human-authored items. Omit `stage` for intent-scope feedback.",inputSchema:S3,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},deleted:{type:"boolean"},message:{type:"string"}}}},{name:"haiku_feedback_move",description:'Triage placement for a feedback item. Pass `to_stage` equal to the source `stage` to confirm the FB belongs where it lives (sets `triaged_at` only). Pass a different `to_stage` to relocate it \u2014 the file moves to the target stage\'s feedback dir, gets renumbered to the next free FB-NN there, and `triaged_at` is set. Use "" for intent-scope (either source or target). Closed and rejected FBs are immutable; rejected with an error.',inputSchema:E3,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"FB-NN id in the target location (renumbered on move)."},file:{type:"string",description:"Repo-relative path to the FB file after the operation."},moved:{type:"boolean",description:"True when the file was relocated; false on confirm."},triaged_at:{type:"string"},message:{type:"string"}}}},{name:"haiku_feedback_reject",description:"Reject an agent-authored feedback item with a reason. Sets status to rejected and appends rejection reason to body. Omit `stage` for intent-scope feedback.",inputSchema:_3,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},status:{type:"string",const:"rejected"},message:{type:"string"}}}},{name:"haiku_feedback_list",description:"List feedback items with optional filtering. Omit stage to list across all stages.",inputSchema:b3,outputSchema:{type:"object",properties:{items:{type:"array",items:{type:"object",additionalProperties:!0}}},required:["items"]}},{name:"haiku_feedback_read",description:"Read a feedback file's body content (and title). Returns ONLY the body and title \u2014 frontmatter is workflow engine-internal and not exposed to agents per the architecture's FM-is-workflow engine-only rule. Use this when a fixer hat needs to read its own FB diagnosis or when a reviewer needs to read prior findings on the same artifact. Returns { title, body } as JSON. Omit `stage` to read an intent-scope FB.",inputSchema:T3,outputSchema:{type:"object",properties:{title:{type:"string"},body:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_write",description:`Update a feedback file's body content. This is the architecture-mandated path for fixer hats to populate the FB body with diagnosis (root cause, proposed action, file:line refs) per the FB-as-unit model. Generic Write/Edit on feedback/*.md is denied at the hook layer. Lifecycle: only pending or addressed (under-fix) FBs accept body rewrites. Closed and rejected FBs are immutable. Frontmatter is workflow engine-controlled and cannot be set through this tool. For reference (when reading FB context): - \u2022 workflow-driven (mutated over the FB lifecycle): ${yL.join(", ")} - \u2022 Set at creation, immutable thereafter: ${SL.join(", ")} + \u2022 workflow-driven (mutated over the FB lifecycle): ${IL.join(", ")} + \u2022 Set at creation, immutable thereafter: ${xL.join(", ")} -Use haiku_feedback_update for status transitions and haiku_feedback_reject for rejections.`,inputSchema:a9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},stage:{type:["string","null"]},intent:{type:"string"},message:{type:"string"},error:{type:"string"},current_status:{type:"string"}}}},{name:"haiku_feedback_advance_hat",description:"Advance an FB to the next fix-hat. The response carries `next_subagent_dispatch_block` and a `message` \u2014 follow them.",inputSchema:l9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},stage:{type:["string","null"]},calling_hat:{type:"string"},next_dispatched_hat:{type:["string","null"]},closed:{type:"boolean"},bolt:{type:"number"},next_subagent_dispatch_block:{type:["string","null"]},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_reject_hat",description:"Reject the current fix-hat's work on an FB \u2014 moves back to the previous hat and increments the FB's bolt counter. Pass `reason` so the FB's iteration history records why the hat was rejected. Mirrors haiku_unit_reject_hat for FBs.",inputSchema:d9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},rejecting_hat:{type:"string"},next_dispatched_hat:{type:["string","null"]},new_bolt:{type:"number"},reason:{type:"string"},next_subagent_dispatch_block:{type:["string","null"],description:"The bounced-to prior hat's dispatch block on the SAME FB \u2014 relay it verbatim to re-run that hat. Null when it can't be built."},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_set_targets",description:"Classify a user-authored feedback's targets \u2014 set `target_unit` (which unit this counter-signals) and `target_invalidates` (which approval roles get cleared on closure). Called by the `classifier` fix-hat as the FIRST hat in a stage's `fix_hats:` chain when the FB was filed without targets (e.g. via the SPA, where the human can't classify). Refuses to overwrite an FB that already has classified targets \u2014 once set, immutable per the FB-as-unit architecture.",inputSchema:c9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},target_unit:{type:["string","null"]},target_invalidates:{type:"array",items:{type:"string"}},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_set_severity",description:"Classify a feedback's severity \u2014 set `severity` (blocker | high | medium | low). Called by the `classifier` fix-hat (first in the `fix_hats:` chain) when the FB was filed WITHOUT a severity (e.g. via the SPA, where the human can't classify). The fix-loop dispatches higher-severity findings first. Refuses to overwrite an FB that already has a severity \u2014 once set, immutable per the FB-as-unit architecture (agent-filed FBs carry severity from creation, so this is a no-op-confirm on those).",inputSchema:u9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},severity:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_release_notes",description:"Extract release notes from CHANGELOG.md \u2014 a specific version or the 5 most recent entries.",inputSchema:O9,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Release notes as markdown."},version:{type:["string","null"],description:"Echoed version filter (null when 5-most-recent was returned)."}},required:["markdown"]}},{name:"haiku_repair",description:"Scan intents for metadata issues and auto-apply safe fixes. In a git repo, scans all intent branches sequentially, auto-applies safe fixes, syncs changes, and opens PRs/MRs for already-merged branches. In filesystem mode, scans intents in the current working directory. Also relocates any worktrees misplaced by older H\xB7AI\xB7K\xB7U versions (which rooted `.haiku/worktrees/` at cwd instead of the primary repo) \u2014 clean worktrees are moved via `git worktree move`; dirty ones are reported for manual resolution. Pass `intent` to repair a single intent only. Pass `skip_branches: true` to force cwd-only mode in a git repo. Pass `apply: false` to scan without applying fixes.",inputSchema:N9,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:bL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var zye=w((qdi,USt)=>{"use strict";USt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var T3n=zye(),pv=Object.prototype.toString;function Kye(e){return pv.call(e)==="[object Array]"}function Vye(e){return typeof e>"u"}function v3n(e){return e!==null&&!Vye(e)&&e.constructor!==null&&!Vye(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function A3n(e){return pv.call(e)==="[object ArrayBuffer]"}function R3n(e){return typeof FormData<"u"&&e instanceof FormData}function w3n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function k3n(e){return typeof e=="string"}function I3n(e){return typeof e=="number"}function jSt(e){return e!==null&&typeof e=="object"}function XZ(e){if(pv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function x3n(e){return pv.call(e)==="[object Date]"}function O3n(e){return pv.call(e)==="[object File]"}function N3n(e){return pv.call(e)==="[object Blob]"}function FSt(e){return pv.call(e)==="[object Function]"}function P3n(e){return jSt(e)&&FSt(e.pipe)}function C3n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function M3n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function D3n(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function Zye(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),Kye(e))for(var n=0,r=e.length;n{"use strict";var H0=Zc();function qSt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}BSt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(H0.isURLSearchParams(n))i=n.toString();else{var s=[];H0.forEach(n,function(c,u){c===null||typeof c>"u"||(H0.isArray(c)?u=u+"[]":c=[c],H0.forEach(c,function(d){H0.isDate(d)?d=d.toISOString():H0.isObject(d)&&(d=JSON.stringify(d)),s.push(qSt(u)+"="+qSt(d))}))}),i=s.join("&")}if(i){var o=t.indexOf("#");o!==-1&&(t=t.slice(0,o)),t+=(t.indexOf("?")===-1?"?":"&")+i}return t}});var zSt=w((zdi,GSt)=>{"use strict";var j3n=Zc();function $Z(){this.handlers=[]}$Z.prototype.use=function(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1};$Z.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};$Z.prototype.forEach=function(t){j3n.forEach(this.handlers,function(r){r!==null&&t(r)})};GSt.exports=$Z});var WSt=w((Vdi,VSt)=>{"use strict";var F3n=Zc();VSt.exports=function(t,n){F3n.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var e5=w((Wdi,KSt)=>{"use strict";KSt.exports=function(t,n,r,i,s){return t.config=n,r&&(t.code=r),t.request=i,t.response=s,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}});var t5=w((Kdi,ZSt)=>{"use strict";var H3n=e5();ZSt.exports=function(t,n,r,i,s){var o=new Error(t);return H3n(o,n,r,i,s)}});var Yye=w((Zdi,YSt)=>{"use strict";var q3n=t5();YSt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(q3n("Request failed with status code "+r.status,r.config,null,r.request,r))}});var XSt=w((Ydi,JSt)=>{"use strict";var n5=Zc();JSt.exports=n5.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),n5.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),n5.isString(s)&&c.push("path="+s),n5.isString(o)&&c.push("domain="+o),a===!0&&c.push("secure"),document.cookie=c.join("; ")},read:function(n){var r=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}})():(function(){return{write:function(){},read:function(){return null},remove:function(){}}})()});var $St=w((Jdi,QSt)=>{"use strict";QSt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var t_t=w((Xdi,e_t)=>{"use strict";e_t.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var Jye=w((Qdi,n_t)=>{"use strict";var B3n=$St(),G3n=t_t();n_t.exports=function(t,n){return t&&!B3n(n)?G3n(t,n):n}});var i_t=w(($di,r_t)=>{"use strict";var Xye=Zc(),z3n=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];r_t.exports=function(t){var n={},r,i,s;return t&&Xye.forEach(t.split(` -`),function(a){if(s=a.indexOf(":"),r=Xye.trim(a.substr(0,s)).toLowerCase(),i=Xye.trim(a.substr(s+1)),r){if(n[r]&&z3n.indexOf(r)>=0)return;r==="set-cookie"?n[r]=(n[r]?n[r]:[]).concat([i]):n[r]=n[r]?n[r]+", "+i:i}}),n}});var a_t=w((efi,o_t)=>{"use strict";var s_t=Zc();o_t.exports=s_t.isStandardBrowserEnv()?(function(){var t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a"),r;function i(s){var o=s;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=i(window.location.href),function(o){var a=s_t.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var u_t=w((tfi,c_t)=>{"use strict";var r5=Zc(),V3n=Yye(),W3n=XSt(),K3n=QZ(),Z3n=Jye(),Y3n=i_t(),J3n=a_t(),Qye=t5();c_t.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;r5.isFormData(s)&&delete o["Content-Type"];var c=new XMLHttpRequest;if(t.auth){var u=t.auth.username||"",l=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.Authorization="Basic "+btoa(u+":"+l)}var d=Z3n(t.baseURL,t.url);c.open(t.method.toUpperCase(),K3n(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?Y3n(c.getAllResponseHeaders()):null,m=!a||a==="text"||a==="json"?c.responseText:c.response,y={data:m,status:c.status,statusText:c.statusText,headers:h,config:t,request:c};V3n(r,i,y),c=null}}if("onloadend"in c?c.onloadend=f:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(f)},c.onabort=function(){c&&(i(Qye("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(Qye("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(Qye(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},r5.isStandardBrowserEnv()){var p=(t.withCredentials||J3n(d))&&t.xsrfCookieName?W3n.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&r5.forEach(o,function(m,y){typeof s>"u"&&y.toLowerCase()==="content-type"?delete o[y]:c.setRequestHeader(y,m)}),r5.isUndefined(t.withCredentials)||(c.withCredentials=!!t.withCredentials),a&&a!=="json"&&(c.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&c.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(m){c&&(c.abort(),i(m),c=null)}),s||(s=null),c.send(s)})}});var d_t=w((nfi,l_t)=>{var i1;l_t.exports=function(){if(!i1){try{i1=OJ()("follow-redirects")}catch{}typeof i1!="function"&&(i1=function(){})}i1.apply(null,arguments)}});var dSe=w((rfi,lSe)=>{var o1=Y("url"),s1=o1.URL,X3n=Y("http"),Q3n=Y("https"),rSe=Y("stream").Writable,iSe=Y("assert"),f_t=d_t();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=mv(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var sSe=!1;try{iSe(new s1(""))}catch(e){sSe=e.code==="ERR_INVALID_URL"}var $3n=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],oSe=["abort","aborted","connect","error","socket","timeout"],aSe=Object.create(null);oSe.forEach(function(e){aSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var eSe=a1("ERR_INVALID_URL","Invalid URL",TypeError),tSe=a1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),e9n=a1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",tSe),t9n=a1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),n9n=a1("ERR_STREAM_WRITE_AFTER_END","write after end"),r9n=rSe.prototype.destroy||h_t;function qu(e,t){rSe.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var n=this;this._onNativeResponse=function(r){try{n._processResponse(r)}catch(i){n.emit("error",i instanceof tSe?i:new tSe({cause:i}))}},this._performRequest()}qu.prototype=Object.create(rSe.prototype);qu.prototype.abort=function(){uSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};qu.prototype.destroy=function(e){return uSe(this._currentRequest,e),r9n.call(this,e),this};qu.prototype.write=function(e,t,n){if(this._ending)throw new n9n;if(!hv(e)&&!o9n(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(mv(t)&&(n=t,t=null),e.length===0){n&&n();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,n)):(this.emit("error",new t9n),this.abort())};qu.prototype.end=function(e,t,n){if(mv(e)?(n=e,e=t=null):mv(t)&&(n=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,n);else{var r=this,i=this._currentRequest;this.write(e,t,function(){r._ended=!0,i.end(null,null,n)}),this._ending=!0}};qu.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};qu.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};qu.prototype.setTimeout=function(e,t){var n=this;function r(o){o.setTimeout(e),o.removeListener("timeout",o.destroy),o.addListener("timeout",o.destroy)}function i(o){n._timeout&&clearTimeout(n._timeout),n._timeout=setTimeout(function(){n.emit("timeout"),s()},e),r(o)}function s(){n._timeout&&(clearTimeout(n._timeout),n._timeout=null),n.removeListener("abort",s),n.removeListener("error",s),n.removeListener("response",s),n.removeListener("close",s),t&&n.removeListener("timeout",t),n.socket||n._currentRequest.removeListener("socket",i)}return t&&this.on("timeout",t),this.socket?i(this.socket):this._currentRequest.once("socket",i),this.on("socket",r),this.on("abort",s),this.on("error",s),this.on("response",s),this.on("close",s),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){qu.prototype[e]=function(t,n){return this._currentRequest[e](t,n)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(qu.prototype,e,{get:function(){return this._currentRequest[e]}})});qu.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};qu.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var n=e.slice(0,-1);this._options.agent=this._options.agents[n]}var r=this._currentRequest=t.request(this._options,this._onNativeResponse);r._redirectable=this;for(var i of oSe)r.on(i,aSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?o1.format(this._options):this._options.path,this._isRedirect){var s=0,o=this,a=this._requestBodyBuffers;(function c(u){if(r===o._currentRequest)if(u)o.emit("error",u);else if(s=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(uSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new e9n;var r,i=this._options.beforeRedirect;i&&(r=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var s=this._options.method;((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],$ye(/^content-/i,this._options.headers));var o=$ye(/^host$/i,this._options.headers),a=cSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:o1.format(Object.assign(a,{host:c})),l=i9n(n,u);if(f_t("redirecting to",l.href),this._isRedirect=!0,nSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!s9n(l.host,c))&&$ye(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),mv(i)){var d={headers:e.headers,statusCode:t},f={url:u,method:s,headers:r};i(this._options,d,f),this._sanitizeOptions(this._options)}this._performRequest()};function p_t(e){var t={maxRedirects:21,maxBodyLength:10485760},n={};return Object.keys(e).forEach(function(r){var i=r+":",s=n[i]=e[r],o=t[r]=Object.create(s);function a(u,l,d){return a9n(u)?u=nSe(u):hv(u)?u=nSe(cSe(u)):(d=l,l=m_t(u),u={protocol:i}),mv(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!hv(l.host)&&!hv(l.hostname)&&(l.hostname="::1"),iSe.equal(l.protocol,i,"protocol mismatch"),f_t("options",l),new qu(l,d)}function c(u,l,d){var f=o.request(u,l,d);return f.end(),f}Object.defineProperties(o,{request:{value:a,configurable:!0,enumerable:!0,writable:!0},get:{value:c,configurable:!0,enumerable:!0,writable:!0}})}),t}function h_t(){}function cSe(e){var t;if(sSe)t=new s1(e);else if(t=m_t(o1.parse(e)),!hv(t.protocol))throw new eSe({input:e});return t}function i9n(e,t){return sSe?new s1(e,t):cSe(o1.resolve(t,e))}function m_t(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new eSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new eSe({input:e.href||e});return e}function nSe(e,t){var n=t||{};for(var r of $3n)n[r]=e[r];return n.hostname.startsWith("[")&&(n.hostname=n.hostname.slice(1,-1)),n.port!==""&&(n.port=Number(n.port)),n.path=n.search?n.pathname+n.search:n.pathname,n}function $ye(e,t){var n;for(var r in t)e.test(r)&&(n=t[r],delete t[r]);return n===null||typeof n>"u"?void 0:String(n).trim()}function a1(e,t,n){function r(i){mv(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,i||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return r.prototype=new(n||Error),Object.defineProperties(r.prototype,{constructor:{value:r,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),r}function uSe(e,t){for(var n of oSe)e.removeListener(n,aSe[n]);e.on("error",h_t),e.destroy(t)}function s9n(e,t){iSe(hv(e)&&hv(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function hv(e){return typeof e=="string"||e instanceof String}function mv(e){return typeof e=="function"}function o9n(e){return typeof e=="object"&&"length"in e}function a9n(e){return s1&&e instanceof s1}lSe.exports=p_t({http:X3n,https:Q3n});lSe.exports.wrap=p_t});var fSe=w((ifi,c9n)=>{c9n.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var b_t=w((sfi,E_t)=>{"use strict";var c1=Zc(),g_t=Yye(),u9n=Jye(),l9n=QZ(),d9n=Y("http"),f9n=Y("https"),p9n=dSe().http,h9n=dSe().https,y_t=Y("url"),m9n=Y("zlib"),g9n=fSe(),i5=t5(),pSe=e5(),S_t=/https:?/;function __t(e,t,n){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=n,t.auth){var r=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+r}e.beforeRedirect=function(s){s.headers.host=s.host,__t(s,t,s.href)}}E_t.exports=function(t){return new Promise(function(r,i){var s=function(G){r(G)},o=function(G){i(G)},a=t.data,c=t.headers;if("User-Agent"in c||"user-agent"in c?!c["User-Agent"]&&!c["user-agent"]&&(delete c["User-Agent"],delete c["user-agent"]):c["User-Agent"]="axios/"+g9n.version,a&&!c1.isStream(a)){if(!Buffer.isBuffer(a))if(c1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(c1.isString(a))a=Buffer.from(a,"utf-8");else return o(i5("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",t));c["Content-Length"]=a.length}var u=void 0;if(t.auth){var l=t.auth.username||"",d=t.auth.password||"";u=l+":"+d}var f=u9n(t.baseURL,t.url),p=y_t.parse(f),h=p.protocol||"http:";if(!u&&p.auth){var m=p.auth.split(":"),y=m[0]||"",g=m[1]||"";u=y+":"+g}u&&delete c.Authorization;var E=S_t.test(h),S=E?t.httpsAgent:t.httpAgent,_={path:l9n(p.path,t.params,t.paramsSerializer).replace(/^\?/,""),method:t.method.toUpperCase(),headers:c,agent:S,agents:{http:t.httpAgent,https:t.httpsAgent},auth:u};t.socketPath?_.socketPath=t.socketPath:(_.hostname=p.hostname,_.port=p.port);var b=t.proxy;if(!b&&b!==!1){var T=h.slice(0,-1)+"_proxy",A=process.env[T]||process.env[T.toUpperCase()];if(A){var R=y_t.parse(A),k=process.env.no_proxy||process.env.NO_PROXY,x=!0;if(k){var N=k.split(",").map(function(G){return G.trim()});x=!N.some(function(G){return G?G==="*"||G[0]==="."&&p.hostname.substr(p.hostname.length-G.length)===G?!0:p.hostname===G:!1})}if(x&&(b={host:R.hostname,port:R.port,protocol:R.protocol},R.auth)){var P=R.auth.split(":");b.auth={username:P[0],password:P[1]}}}}b&&(_.headers.host=p.hostname+(p.port?":"+p.port:""),__t(_,b,h+"//"+p.hostname+(p.port?":"+p.port:"")+_.path));var D,j=E&&(b?S_t.test(b.protocol):!0);t.transport?D=t.transport:t.maxRedirects===0?D=j?f9n:d9n:(t.maxRedirects&&(_.maxRedirects=t.maxRedirects),D=j?h9n:p9n),t.maxBodyLength>-1&&(_.maxBodyLength=t.maxBodyLength);var V=D.request(_,function(G){if(!V.aborted){var X=G,q=G.req||V;if(G.statusCode!==204&&q.method!=="HEAD"&&t.decompress!==!1)switch(G.headers["content-encoding"]){case"gzip":case"compress":case"deflate":X=X.pipe(m9n.createUnzip()),delete G.headers["content-encoding"];break}var C={status:G.statusCode,statusText:G.statusMessage,headers:G.headers,config:t,request:q};if(t.responseType==="stream")C.data=X,g_t(s,o,C);else{var z=[],U=0;X.on("data",function(H){z.push(H),U+=H.length,t.maxContentLength>-1&&U>t.maxContentLength&&(X.destroy(),o(i5("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,q)))}),X.on("error",function(H){V.aborted||o(pSe(H,t,null,q))}),X.on("end",function(){var H=Buffer.concat(z);t.responseType!=="arraybuffer"&&(H=H.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(H=c1.stripBOM(H))),C.data=H,g_t(s,o,C)})}}});if(V.on("error",function(G){V.aborted&&G.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(pSe(G,t,null,V))}),t.timeout){var Z=parseInt(t.timeout,10);if(isNaN(Z)){o(i5("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",V));return}V.setTimeout(Z,function(){V.abort(),o(i5("timeout of "+Z+"ms exceeded",t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",V))})}t.cancelToken&&t.cancelToken.promise.then(function(G){V.aborted||(V.abort(),o(G))}),c1.isStream(a)?a.on("error",function(G){o(pSe(G,t,null,V))}).pipe(V):V.end(a)})}});var o5=w((ofi,A_t)=>{"use strict";var Ia=Zc(),T_t=WSt(),y9n=e5(),S9n={"Content-Type":"application/x-www-form-urlencoded"};function v_t(e,t){!Ia.isUndefined(e)&&Ia.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function _9n(){var e;return typeof XMLHttpRequest<"u"?e=u_t():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=b_t()),e}function E9n(e,t,n){if(Ia.isString(e))try{return(t||JSON.parse)(e),Ia.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var s5={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:_9n(),transformRequest:[function(t,n){return T_t(n,"Accept"),T_t(n,"Content-Type"),Ia.isFormData(t)||Ia.isArrayBuffer(t)||Ia.isBuffer(t)||Ia.isStream(t)||Ia.isFile(t)||Ia.isBlob(t)?t:Ia.isArrayBufferView(t)?t.buffer:Ia.isURLSearchParams(t)?(v_t(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Ia.isObject(t)||n&&n["Content-Type"]==="application/json"?(v_t(n,"application/json"),E9n(t)):t}],transformResponse:[function(t){var n=this.transitional,r=n&&n.silentJSONParsing,i=n&&n.forcedJSONParsing,s=!r&&this.responseType==="json";if(s||i&&Ia.isString(t)&&t.length)try{return JSON.parse(t)}catch(o){if(s)throw o.name==="SyntaxError"?y9n(o,this,"E_JSON_PARSE"):o}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};s5.headers={common:{Accept:"application/json, text/plain, */*"}};Ia.forEach(["delete","get","head"],function(t){s5.headers[t]={}});Ia.forEach(["post","put","patch"],function(t){s5.headers[t]=Ia.merge(S9n)});A_t.exports=s5});var w_t=w((afi,R_t)=>{"use strict";var b9n=Zc(),T9n=o5();R_t.exports=function(t,n,r){var i=this||T9n;return b9n.forEach(r,function(o){t=o.call(i,t,n)}),t}});var hSe=w((cfi,k_t)=>{"use strict";k_t.exports=function(t){return!!(t&&t.__CANCEL__)}});var O_t=w((ufi,x_t)=>{"use strict";var I_t=Zc(),mSe=w_t(),v9n=hSe(),A9n=o5();function gSe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}x_t.exports=function(t){gSe(t),t.headers=t.headers||{},t.data=mSe.call(t,t.data,t.headers,t.transformRequest),t.headers=I_t.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),I_t.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||A9n.adapter;return n(t).then(function(i){return gSe(t),i.data=mSe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return v9n(i)||(gSe(t),i&&i.response&&(i.response.data=mSe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var ySe=w((lfi,N_t)=>{"use strict";var yc=Zc();N_t.exports=function(t,n){n=n||{};var r={},i=["url","method","data"],s=["headers","auth","proxy","params"],o=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function c(f,p){return yc.isPlainObject(f)&&yc.isPlainObject(p)?yc.merge(f,p):yc.isPlainObject(p)?yc.merge({},p):yc.isArray(p)?p.slice():p}function u(f){yc.isUndefined(n[f])?yc.isUndefined(t[f])||(r[f]=c(void 0,t[f])):r[f]=c(t[f],n[f])}yc.forEach(i,function(p){yc.isUndefined(n[p])||(r[p]=c(void 0,n[p]))}),yc.forEach(s,u),yc.forEach(o,function(p){yc.isUndefined(n[p])?yc.isUndefined(t[p])||(r[p]=c(void 0,t[p])):r[p]=c(void 0,n[p])}),yc.forEach(a,function(p){p in n?r[p]=c(t[p],n[p]):p in t&&(r[p]=c(void 0,t[p]))});var l=i.concat(s).concat(o).concat(a),d=Object.keys(t).concat(Object.keys(n)).filter(function(p){return l.indexOf(p)===-1});return yc.forEach(d,u),r}});var L_t=w((dfi,D_t)=>{"use strict";var C_t=fSe(),SSe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){SSe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var P_t={},R9n=C_t.version.split(".");function M_t(e,t){for(var n=t?t.split("."):R9n,r=e.split("."),i=0;i<3;i++){if(n[i]>r[i])return!0;if(n[i]0;){var s=r[i],o=t[s];if(o){var a=e[s],c=a===void 0||o(a,s,e);if(c!==!0)throw new TypeError("option "+s+" must be "+c);continue}if(n!==!0)throw Error("Unknown option "+s)}}D_t.exports={isOlderVersion:M_t,assertOptions:w9n,validators:SSe}});var B_t=w((ffi,q_t)=>{"use strict";var F_t=Zc(),k9n=QZ(),U_t=zSt(),j_t=O_t(),a5=ySe(),H_t=L_t(),q0=H_t.validators;function u1(e){this.defaults=e,this.interceptors={request:new U_t,response:new U_t}}u1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=a5(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var n=t.transitional;n!==void 0&&H_t.assertOptions(n,{silentJSONParsing:q0.transitional(q0.boolean,"1.0.0"),forcedJSONParsing:q0.transitional(q0.boolean,"1.0.0"),clarifyTimeoutError:q0.transitional(q0.boolean,"1.0.0")},!1);var r=[],i=!0;this.interceptors.request.forEach(function(f){typeof f.runWhen=="function"&&f.runWhen(t)===!1||(i=i&&f.synchronous,r.unshift(f.fulfilled,f.rejected))});var s=[];this.interceptors.response.forEach(function(f){s.push(f.fulfilled,f.rejected)});var o;if(!i){var a=[j_t,void 0];for(Array.prototype.unshift.apply(a,r),a=a.concat(s),o=Promise.resolve(t);a.length;)o=o.then(a.shift(),a.shift());return o}for(var c=t;r.length;){var u=r.shift(),l=r.shift();try{c=u(c)}catch(d){l(d);break}}try{o=j_t(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};u1.prototype.getUri=function(t){return t=a5(this.defaults,t),k9n(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};F_t.forEach(["delete","get","head","options"],function(t){u1.prototype[t]=function(n,r){return this.request(a5(r||{},{method:t,url:n,data:(r||{}).data}))}});F_t.forEach(["post","put","patch"],function(t){u1.prototype[t]=function(n,r,i){return this.request(a5(i||{},{method:t,url:n,data:r}))}});q_t.exports=u1});var ESe=w((pfi,G_t)=>{"use strict";function _Se(e){this.message=e}_Se.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};_Se.prototype.__CANCEL__=!0;G_t.exports=_Se});var V_t=w((hfi,z_t)=>{"use strict";var I9n=ESe();function c5(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(i){t=i});var n=this;e(function(i){n.reason||(n.reason=new I9n(i),t(n.reason))})}c5.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};c5.source=function(){var t,n=new c5(function(i){t=i});return{token:n,cancel:t}};z_t.exports=c5});var K_t=w((mfi,W_t)=>{"use strict";W_t.exports=function(t){return function(r){return t.apply(null,r)}}});var Y_t=w((gfi,Z_t)=>{"use strict";Z_t.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var Q_t=w((yfi,bSe)=>{"use strict";var J_t=Zc(),x9n=zye(),u5=B_t(),O9n=ySe(),N9n=o5();function X_t(e){var t=new u5(e),n=x9n(u5.prototype.request,t);return J_t.extend(n,u5.prototype,t),J_t.extend(n,t),n}var Xf=X_t(N9n);Xf.Axios=u5;Xf.create=function(t){return X_t(O9n(Xf.defaults,t))};Xf.Cancel=ESe();Xf.CancelToken=V_t();Xf.isCancel=hSe();Xf.all=function(t){return Promise.all(t)};Xf.spread=K_t();Xf.isAxiosError=Y_t();bSe.exports=Xf;bSe.exports.default=Xf});var eEt=w((Sfi,$_t)=>{$_t.exports=Q_t()});var nEt=w((_fi,tEt)=>{var B0=1e3,G0=B0*60,z0=G0*60,gv=z0*24,P9n=gv*7,C9n=gv*365.25;tEt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return M9n(e);if(n==="number"&&isFinite(e))return t.long?L9n(e):D9n(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function M9n(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*C9n;case"weeks":case"week":case"w":return n*P9n;case"days":case"day":case"d":return n*gv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*z0;case"minutes":case"minute":case"mins":case"min":case"m":return n*G0;case"seconds":case"second":case"secs":case"sec":case"s":return n*B0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function D9n(e){var t=Math.abs(e);return t>=gv?Math.round(e/gv)+"d":t>=z0?Math.round(e/z0)+"h":t>=G0?Math.round(e/G0)+"m":t>=B0?Math.round(e/B0)+"s":e+"ms"}function L9n(e){var t=Math.abs(e);return t>=gv?l5(e,t,gv,"day"):t>=z0?l5(e,t,z0,"hour"):t>=G0?l5(e,t,G0,"minute"):t>=B0?l5(e,t,B0,"second"):e+" ms"}function l5(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var TSe=w((Efi,rEt)=>{function U9n(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=nEt(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";_++;let R=n.formatters[A];if(typeof R=="function"){let k=y[_];T=R.call(g,k),y.splice(_,1),_--}return T}),n.formatArgs.call(g,y),(g.log||n.log).apply(g,y)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:y=>{f=y}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d,f=(typeof l=="string"?l:"").split(/[\s,]+/),p=f.length;for(d=0;d"-"+d)].join(",");return n.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let d,f;for(d=0,f=n.skips.length;d{Nl.formatArgs=F9n;Nl.save=H9n;Nl.load=q9n;Nl.useColors=j9n;Nl.storage=B9n();Nl.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Nl.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function j9n(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function F9n(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+d5.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}Nl.log=console.debug||console.log||(()=>{});function H9n(e){try{e?Nl.storage.setItem("debug",e):Nl.storage.removeItem("debug")}catch{}}function q9n(){let e;try{e=Nl.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function B9n(){try{return localStorage}catch{}}d5.exports=TSe()(Nl);var{formatters:G9n}=d5.exports;G9n.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var oEt=w((xa,p5)=>{var z9n=Y("tty"),f5=Y("util");xa.init=X9n;xa.log=Z9n;xa.formatArgs=W9n;xa.save=Y9n;xa.load=J9n;xa.useColors=V9n;xa.destroy=f5.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");xa.colors=[6,2,3,4,5,1];try{let e=IJ();e&&(e.stderr||e).level>=2&&(xa.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}xa.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function V9n(){return"colors"in xa.inspectOpts?!!xa.inspectOpts.colors:z9n.isatty(process.stderr.fd)}function W9n(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` +Use haiku_feedback_update for status transitions and haiku_feedback_reject for rejections.`,inputSchema:v3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},stage:{type:["string","null"]},intent:{type:"string"},message:{type:"string"},error:{type:"string"},current_status:{type:"string"}}}},{name:"haiku_feedback_advance_hat",description:"Advance an FB to the next fix-hat. The response carries `next_subagent_dispatch_block` and a `message` \u2014 follow them.",inputSchema:w3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},stage:{type:["string","null"]},calling_hat:{type:"string"},next_dispatched_hat:{type:["string","null"]},closed:{type:"boolean"},bolt:{type:"number"},next_subagent_dispatch_block:{type:["string","null"]},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_reject_hat",description:"Reject the current fix-hat's work on an FB \u2014 moves back to the previous hat and increments the FB's bolt counter. Pass `reason` so the FB's iteration history records why the hat was rejected. Mirrors haiku_unit_reject_hat for FBs.",inputSchema:k3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},rejecting_hat:{type:"string"},next_dispatched_hat:{type:["string","null"]},new_bolt:{type:"number"},reason:{type:"string"},next_subagent_dispatch_block:{type:["string","null"],description:"The bounced-to prior hat's dispatch block on the SAME FB \u2014 relay it verbatim to re-run that hat. Null when it can't be built."},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_set_targets",description:"Classify a user-authored feedback's targets \u2014 set `target_unit` (which unit this counter-signals) and `target_invalidates` (which approval roles get cleared on closure). Called by the `classifier` fix-hat as the FIRST hat in a stage's `fix_hats:` chain when the FB was filed without targets (e.g. via the SPA, where the human can't classify). Refuses to overwrite an FB that already has classified targets \u2014 once set, immutable per the FB-as-unit architecture.",inputSchema:A3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},target_unit:{type:["string","null"]},target_invalidates:{type:"array",items:{type:"string"}},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_set_severity",description:"Classify a feedback's severity \u2014 set `severity` (blocker | high | medium | low). Called by the `classifier` fix-hat (first in the `fix_hats:` chain) when the FB was filed WITHOUT a severity (e.g. via the SPA, where the human can't classify). The fix-loop dispatches higher-severity findings first. Refuses to overwrite an FB that already has a severity \u2014 once set, immutable per the FB-as-unit architecture (agent-filed FBs carry severity from creation, so this is a no-op-confirm on those).",inputSchema:R3,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},severity:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_release_notes",description:"Extract release notes from CHANGELOG.md \u2014 a specific version or the 5 most recent entries.",inputSchema:W3,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Release notes as markdown."},version:{type:["string","null"],description:"Echoed version filter (null when 5-most-recent was returned)."}},required:["markdown"]}},{name:"haiku_repair",description:"Scan intents for metadata issues and auto-apply safe fixes. In a git repo, scans all intent branches sequentially, auto-applies safe fixes, syncs changes, and opens PRs/MRs for already-merged branches. In filesystem mode, scans intents in the current working directory. Also relocates any worktrees misplaced by older H\xB7AI\xB7K\xB7U versions (which rooted `.haiku/worktrees/` at cwd instead of the primary repo) \u2014 clean worktrees are moved via `git worktree move`; dirty ones are reported for manual resolution. Pass `intent` to repair a single intent only. Pass `skip_branches: true` to force cwd-only mode in a git repo. Pass `apply: false` to scan without applying fixes.",inputSchema:K3,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:NL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var dSe=w((jpi,gEt)=>{"use strict";gEt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var T3n=dSe(),yv=Object.prototype.toString;function hSe(e){return yv.call(e)==="[object Array]"}function fSe(e){return typeof e>"u"}function v3n(e){return e!==null&&!fSe(e)&&e.constructor!==null&&!fSe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function A3n(e){return yv.call(e)==="[object ArrayBuffer]"}function R3n(e){return typeof FormData<"u"&&e instanceof FormData}function w3n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function k3n(e){return typeof e=="string"}function I3n(e){return typeof e=="number"}function yEt(e){return e!==null&&typeof e=="object"}function p5(e){if(yv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function x3n(e){return yv.call(e)==="[object Date]"}function O3n(e){return yv.call(e)==="[object File]"}function P3n(e){return yv.call(e)==="[object Blob]"}function SEt(e){return yv.call(e)==="[object Function]"}function N3n(e){return yEt(e)&&SEt(e.pipe)}function C3n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function M3n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function D3n(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function mSe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),hSe(e))for(var n=0,r=e.length;n{"use strict";var W0=$c();function _Et(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}bEt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(W0.isURLSearchParams(n))i=n.toString();else{var s=[];W0.forEach(n,function(c,u){c===null||typeof c>"u"||(W0.isArray(c)?u=u+"[]":c=[c],W0.forEach(c,function(d){W0.isDate(d)?d=d.toISOString():W0.isObject(d)&&(d=JSON.stringify(d)),s.push(_Et(u)+"="+_Et(d))}))}),i=s.join("&")}if(i){var o=t.indexOf("#");o!==-1&&(t=t.slice(0,o)),t+=(t.indexOf("?")===-1?"?":"&")+i}return t}});var vEt=w((Bpi,TEt)=>{"use strict";var F3n=$c();function m5(){this.handlers=[]}m5.prototype.use=function(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1};m5.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};m5.prototype.forEach=function(t){F3n.forEach(this.handlers,function(r){r!==null&&t(r)})};TEt.exports=m5});var REt=w((Gpi,AEt)=>{"use strict";var j3n=$c();AEt.exports=function(t,n){j3n.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var g5=w((zpi,wEt)=>{"use strict";wEt.exports=function(t,n,r,i,s){return t.config=n,r&&(t.code=r),t.request=i,t.response=s,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}});var y5=w((Vpi,kEt)=>{"use strict";var H3n=g5();kEt.exports=function(t,n,r,i,s){var o=new Error(t);return H3n(o,n,r,i,s)}});var gSe=w((Wpi,IEt)=>{"use strict";var q3n=y5();IEt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(q3n("Request failed with status code "+r.status,r.config,null,r.request,r))}});var OEt=w((Kpi,xEt)=>{"use strict";var S5=$c();xEt.exports=S5.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),S5.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),S5.isString(s)&&c.push("path="+s),S5.isString(o)&&c.push("domain="+o),a===!0&&c.push("secure"),document.cookie=c.join("; ")},read:function(n){var r=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}})():(function(){return{write:function(){},read:function(){return null},remove:function(){}}})()});var NEt=w((Ypi,PEt)=>{"use strict";PEt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var MEt=w((Zpi,CEt)=>{"use strict";CEt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var ySe=w((Jpi,DEt)=>{"use strict";var B3n=NEt(),G3n=MEt();DEt.exports=function(t,n){return t&&!B3n(n)?G3n(t,n):n}});var UEt=w((Xpi,LEt)=>{"use strict";var SSe=$c(),z3n=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];LEt.exports=function(t){var n={},r,i,s;return t&&SSe.forEach(t.split(` +`),function(a){if(s=a.indexOf(":"),r=SSe.trim(a.substr(0,s)).toLowerCase(),i=SSe.trim(a.substr(s+1)),r){if(n[r]&&z3n.indexOf(r)>=0)return;r==="set-cookie"?n[r]=(n[r]?n[r]:[]).concat([i]):n[r]=n[r]?n[r]+", "+i:i}}),n}});var HEt=w((Qpi,jEt)=>{"use strict";var FEt=$c();jEt.exports=FEt.isStandardBrowserEnv()?(function(){var t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a"),r;function i(s){var o=s;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=i(window.location.href),function(o){var a=FEt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var BEt=w(($pi,qEt)=>{"use strict";var E5=$c(),V3n=gSe(),W3n=OEt(),K3n=h5(),Y3n=ySe(),Z3n=UEt(),J3n=HEt(),ESe=y5();qEt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;E5.isFormData(s)&&delete o["Content-Type"];var c=new XMLHttpRequest;if(t.auth){var u=t.auth.username||"",l=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.Authorization="Basic "+btoa(u+":"+l)}var d=Y3n(t.baseURL,t.url);c.open(t.method.toUpperCase(),K3n(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?Z3n(c.getAllResponseHeaders()):null,m=!a||a==="text"||a==="json"?c.responseText:c.response,g={data:m,status:c.status,statusText:c.statusText,headers:h,config:t,request:c};V3n(r,i,g),c=null}}if("onloadend"in c?c.onloadend=f:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(f)},c.onabort=function(){c&&(i(ESe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(ESe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(ESe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},E5.isStandardBrowserEnv()){var p=(t.withCredentials||J3n(d))&&t.xsrfCookieName?W3n.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&E5.forEach(o,function(m,g){typeof s>"u"&&g.toLowerCase()==="content-type"?delete o[g]:c.setRequestHeader(g,m)}),E5.isUndefined(t.withCredentials)||(c.withCredentials=!!t.withCredentials),a&&a!=="json"&&(c.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&c.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(m){c&&(c.abort(),i(m),c=null)}),s||(s=null),c.send(s)})}});var zEt=w((ehi,GEt)=>{var h1;GEt.exports=function(){if(!h1){try{h1=YJ()("follow-redirects")}catch{}typeof h1!="function"&&(h1=function(){})}h1.apply(null,arguments)}});var NSe=w((thi,PSe)=>{var g1=Y("url"),m1=g1.URL,X3n=Y("http"),Q3n=Y("https"),ASe=Y("stream").Writable,RSe=Y("assert"),VEt=zEt();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=Ev(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var wSe=!1;try{RSe(new m1(""))}catch(e){wSe=e.code==="ERR_INVALID_URL"}var $3n=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],kSe=["abort","aborted","connect","error","socket","timeout"],ISe=Object.create(null);kSe.forEach(function(e){ISe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var bSe=y1("ERR_INVALID_URL","Invalid URL",TypeError),TSe=y1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),eYn=y1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",TSe),tYn=y1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),nYn=y1("ERR_STREAM_WRITE_AFTER_END","write after end"),rYn=ASe.prototype.destroy||KEt;function Wu(e,t){ASe.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var n=this;this._onNativeResponse=function(r){try{n._processResponse(r)}catch(i){n.emit("error",i instanceof TSe?i:new TSe({cause:i}))}},this._performRequest()}Wu.prototype=Object.create(ASe.prototype);Wu.prototype.abort=function(){OSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Wu.prototype.destroy=function(e){return OSe(this._currentRequest,e),rYn.call(this,e),this};Wu.prototype.write=function(e,t,n){if(this._ending)throw new nYn;if(!Sv(e)&&!oYn(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(Ev(t)&&(n=t,t=null),e.length===0){n&&n();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,n)):(this.emit("error",new tYn),this.abort())};Wu.prototype.end=function(e,t,n){if(Ev(e)?(n=e,e=t=null):Ev(t)&&(n=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,n);else{var r=this,i=this._currentRequest;this.write(e,t,function(){r._ended=!0,i.end(null,null,n)}),this._ending=!0}};Wu.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};Wu.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};Wu.prototype.setTimeout=function(e,t){var n=this;function r(o){o.setTimeout(e),o.removeListener("timeout",o.destroy),o.addListener("timeout",o.destroy)}function i(o){n._timeout&&clearTimeout(n._timeout),n._timeout=setTimeout(function(){n.emit("timeout"),s()},e),r(o)}function s(){n._timeout&&(clearTimeout(n._timeout),n._timeout=null),n.removeListener("abort",s),n.removeListener("error",s),n.removeListener("response",s),n.removeListener("close",s),t&&n.removeListener("timeout",t),n.socket||n._currentRequest.removeListener("socket",i)}return t&&this.on("timeout",t),this.socket?i(this.socket):this._currentRequest.once("socket",i),this.on("socket",r),this.on("abort",s),this.on("error",s),this.on("response",s),this.on("close",s),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){Wu.prototype[e]=function(t,n){return this._currentRequest[e](t,n)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(Wu.prototype,e,{get:function(){return this._currentRequest[e]}})});Wu.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};Wu.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var n=e.slice(0,-1);this._options.agent=this._options.agents[n]}var r=this._currentRequest=t.request(this._options,this._onNativeResponse);r._redirectable=this;for(var i of kSe)r.on(i,ISe[i]);if(this._currentUrl=/^\//.test(this._options.path)?g1.format(this._options):this._options.path,this._isRedirect){var s=0,o=this,a=this._requestBodyBuffers;(function c(u){if(r===o._currentRequest)if(u)o.emit("error",u);else if(s=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(OSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new eYn;var r,i=this._options.beforeRedirect;i&&(r=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var s=this._options.method;((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],_Se(/^content-/i,this._options.headers));var o=_Se(/^host$/i,this._options.headers),a=xSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:g1.format(Object.assign(a,{host:c})),l=iYn(n,u);if(VEt("redirecting to",l.href),this._isRedirect=!0,vSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!sYn(l.host,c))&&_Se(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),Ev(i)){var d={headers:e.headers,statusCode:t},f={url:u,method:s,headers:r};i(this._options,d,f),this._sanitizeOptions(this._options)}this._performRequest()};function WEt(e){var t={maxRedirects:21,maxBodyLength:10485760},n={};return Object.keys(e).forEach(function(r){var i=r+":",s=n[i]=e[r],o=t[r]=Object.create(s);function a(u,l,d){return aYn(u)?u=vSe(u):Sv(u)?u=vSe(xSe(u)):(d=l,l=YEt(u),u={protocol:i}),Ev(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!Sv(l.host)&&!Sv(l.hostname)&&(l.hostname="::1"),RSe.equal(l.protocol,i,"protocol mismatch"),VEt("options",l),new Wu(l,d)}function c(u,l,d){var f=o.request(u,l,d);return f.end(),f}Object.defineProperties(o,{request:{value:a,configurable:!0,enumerable:!0,writable:!0},get:{value:c,configurable:!0,enumerable:!0,writable:!0}})}),t}function KEt(){}function xSe(e){var t;if(wSe)t=new m1(e);else if(t=YEt(g1.parse(e)),!Sv(t.protocol))throw new bSe({input:e});return t}function iYn(e,t){return wSe?new m1(e,t):xSe(g1.resolve(t,e))}function YEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new bSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new bSe({input:e.href||e});return e}function vSe(e,t){var n=t||{};for(var r of $3n)n[r]=e[r];return n.hostname.startsWith("[")&&(n.hostname=n.hostname.slice(1,-1)),n.port!==""&&(n.port=Number(n.port)),n.path=n.search?n.pathname+n.search:n.pathname,n}function _Se(e,t){var n;for(var r in t)e.test(r)&&(n=t[r],delete t[r]);return n===null||typeof n>"u"?void 0:String(n).trim()}function y1(e,t,n){function r(i){Ev(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,i||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return r.prototype=new(n||Error),Object.defineProperties(r.prototype,{constructor:{value:r,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),r}function OSe(e,t){for(var n of kSe)e.removeListener(n,ISe[n]);e.on("error",KEt),e.destroy(t)}function sYn(e,t){RSe(Sv(e)&&Sv(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function Sv(e){return typeof e=="string"||e instanceof String}function Ev(e){return typeof e=="function"}function oYn(e){return typeof e=="object"&&"length"in e}function aYn(e){return m1&&e instanceof m1}PSe.exports=WEt({http:X3n,https:Q3n});PSe.exports.wrap=WEt});var CSe=w((nhi,cYn)=>{cYn.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var e_t=w((rhi,$Et)=>{"use strict";var S1=$c(),ZEt=gSe(),uYn=ySe(),lYn=h5(),dYn=Y("http"),fYn=Y("https"),pYn=NSe().http,hYn=NSe().https,JEt=Y("url"),mYn=Y("zlib"),gYn=CSe(),_5=y5(),MSe=g5(),XEt=/https:?/;function QEt(e,t,n){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=n,t.auth){var r=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+r}e.beforeRedirect=function(s){s.headers.host=s.host,QEt(s,t,s.href)}}$Et.exports=function(t){return new Promise(function(r,i){var s=function(B){r(B)},o=function(B){i(B)},a=t.data,c=t.headers;if("User-Agent"in c||"user-agent"in c?!c["User-Agent"]&&!c["user-agent"]&&(delete c["User-Agent"],delete c["user-agent"]):c["User-Agent"]="axios/"+gYn.version,a&&!S1.isStream(a)){if(!Buffer.isBuffer(a))if(S1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(S1.isString(a))a=Buffer.from(a,"utf-8");else return o(_5("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",t));c["Content-Length"]=a.length}var u=void 0;if(t.auth){var l=t.auth.username||"",d=t.auth.password||"";u=l+":"+d}var f=uYn(t.baseURL,t.url),p=JEt.parse(f),h=p.protocol||"http:";if(!u&&p.auth){var m=p.auth.split(":"),g=m[0]||"",y=m[1]||"";u=g+":"+y}u&&delete c.Authorization;var E=XEt.test(h),S=E?t.httpsAgent:t.httpAgent,_={path:lYn(p.path,t.params,t.paramsSerializer).replace(/^\?/,""),method:t.method.toUpperCase(),headers:c,agent:S,agents:{http:t.httpAgent,https:t.httpsAgent},auth:u};t.socketPath?_.socketPath=t.socketPath:(_.hostname=p.hostname,_.port=p.port);var b=t.proxy;if(!b&&b!==!1){var T=h.slice(0,-1)+"_proxy",A=process.env[T]||process.env[T.toUpperCase()];if(A){var R=JEt.parse(A),x=process.env.no_proxy||process.env.NO_PROXY,k=!0;if(x){var P=x.split(",").map(function(B){return B.trim()});k=!P.some(function(B){return B?B==="*"||B[0]==="."&&p.hostname.substr(p.hostname.length-B.length)===B?!0:p.hostname===B:!1})}if(k&&(b={host:R.hostname,port:R.port,protocol:R.protocol},R.auth)){var N=R.auth.split(":");b.auth={username:N[0],password:N[1]}}}}b&&(_.headers.host=p.hostname+(p.port?":"+p.port:""),QEt(_,b,h+"//"+p.hostname+(p.port?":"+p.port:"")+_.path));var C,F=E&&(b?XEt.test(b.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=F?fYn:dYn:(t.maxRedirects&&(_.maxRedirects=t.maxRedirects),C=F?hYn:pYn),t.maxBodyLength>-1&&(_.maxBodyLength=t.maxBodyLength);var V=C.request(_,function(B){if(!V.aborted){var X=B,G=B.req||V;if(B.statusCode!==204&&G.method!=="HEAD"&&t.decompress!==!1)switch(B.headers["content-encoding"]){case"gzip":case"compress":case"deflate":X=X.pipe(mYn.createUnzip()),delete B.headers["content-encoding"];break}var M={status:B.statusCode,statusText:B.statusMessage,headers:B.headers,config:t,request:G};if(t.responseType==="stream")M.data=X,ZEt(s,o,M);else{var q=[],U=0;X.on("data",function(H){q.push(H),U+=H.length,t.maxContentLength>-1&&U>t.maxContentLength&&(X.destroy(),o(_5("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,G)))}),X.on("error",function(H){V.aborted||o(MSe(H,t,null,G))}),X.on("end",function(){var H=Buffer.concat(q);t.responseType!=="arraybuffer"&&(H=H.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(H=S1.stripBOM(H))),M.data=H,ZEt(s,o,M)})}}});if(V.on("error",function(B){V.aborted&&B.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(MSe(B,t,null,V))}),t.timeout){var K=parseInt(t.timeout,10);if(isNaN(K)){o(_5("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",V));return}V.setTimeout(K,function(){V.abort(),o(_5("timeout of "+K+"ms exceeded",t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",V))})}t.cancelToken&&t.cancelToken.promise.then(function(B){V.aborted||(V.abort(),o(B))}),S1.isStream(a)?a.on("error",function(B){o(MSe(B,t,null,V))}).pipe(V):V.end(a)})}});var T5=w((ihi,r_t)=>{"use strict";var Ma=$c(),t_t=REt(),yYn=g5(),SYn={"Content-Type":"application/x-www-form-urlencoded"};function n_t(e,t){!Ma.isUndefined(e)&&Ma.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function EYn(){var e;return typeof XMLHttpRequest<"u"?e=BEt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=e_t()),e}function _Yn(e,t,n){if(Ma.isString(e))try{return(t||JSON.parse)(e),Ma.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var b5={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:EYn(),transformRequest:[function(t,n){return t_t(n,"Accept"),t_t(n,"Content-Type"),Ma.isFormData(t)||Ma.isArrayBuffer(t)||Ma.isBuffer(t)||Ma.isStream(t)||Ma.isFile(t)||Ma.isBlob(t)?t:Ma.isArrayBufferView(t)?t.buffer:Ma.isURLSearchParams(t)?(n_t(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Ma.isObject(t)||n&&n["Content-Type"]==="application/json"?(n_t(n,"application/json"),_Yn(t)):t}],transformResponse:[function(t){var n=this.transitional,r=n&&n.silentJSONParsing,i=n&&n.forcedJSONParsing,s=!r&&this.responseType==="json";if(s||i&&Ma.isString(t)&&t.length)try{return JSON.parse(t)}catch(o){if(s)throw o.name==="SyntaxError"?yYn(o,this,"E_JSON_PARSE"):o}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};b5.headers={common:{Accept:"application/json, text/plain, */*"}};Ma.forEach(["delete","get","head"],function(t){b5.headers[t]={}});Ma.forEach(["post","put","patch"],function(t){b5.headers[t]=Ma.merge(SYn)});r_t.exports=b5});var s_t=w((shi,i_t)=>{"use strict";var bYn=$c(),TYn=T5();i_t.exports=function(t,n,r){var i=this||TYn;return bYn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var DSe=w((ohi,o_t)=>{"use strict";o_t.exports=function(t){return!!(t&&t.__CANCEL__)}});var u_t=w((ahi,c_t)=>{"use strict";var a_t=$c(),LSe=s_t(),vYn=DSe(),AYn=T5();function USe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}c_t.exports=function(t){USe(t),t.headers=t.headers||{},t.data=LSe.call(t,t.data,t.headers,t.transformRequest),t.headers=a_t.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),a_t.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||AYn.adapter;return n(t).then(function(i){return USe(t),i.data=LSe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return vYn(i)||(USe(t),i&&i.response&&(i.response.data=LSe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var FSe=w((chi,l_t)=>{"use strict";var Ec=$c();l_t.exports=function(t,n){n=n||{};var r={},i=["url","method","data"],s=["headers","auth","proxy","params"],o=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function c(f,p){return Ec.isPlainObject(f)&&Ec.isPlainObject(p)?Ec.merge(f,p):Ec.isPlainObject(p)?Ec.merge({},p):Ec.isArray(p)?p.slice():p}function u(f){Ec.isUndefined(n[f])?Ec.isUndefined(t[f])||(r[f]=c(void 0,t[f])):r[f]=c(t[f],n[f])}Ec.forEach(i,function(p){Ec.isUndefined(n[p])||(r[p]=c(void 0,n[p]))}),Ec.forEach(s,u),Ec.forEach(o,function(p){Ec.isUndefined(n[p])?Ec.isUndefined(t[p])||(r[p]=c(void 0,t[p])):r[p]=c(void 0,n[p])}),Ec.forEach(a,function(p){p in n?r[p]=c(t[p],n[p]):p in t&&(r[p]=c(void 0,t[p]))});var l=i.concat(s).concat(o).concat(a),d=Object.keys(t).concat(Object.keys(n)).filter(function(p){return l.indexOf(p)===-1});return Ec.forEach(d,u),r}});var m_t=w((uhi,h_t)=>{"use strict";var f_t=CSe(),jSe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){jSe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var d_t={},RYn=f_t.version.split(".");function p_t(e,t){for(var n=t?t.split("."):RYn,r=e.split("."),i=0;i<3;i++){if(n[i]>r[i])return!0;if(n[i]0;){var s=r[i],o=t[s];if(o){var a=e[s],c=a===void 0||o(a,s,e);if(c!==!0)throw new TypeError("option "+s+" must be "+c);continue}if(n!==!0)throw Error("Unknown option "+s)}}h_t.exports={isOlderVersion:p_t,assertOptions:wYn,validators:jSe}});var b_t=w((lhi,__t)=>{"use strict";var S_t=$c(),kYn=h5(),g_t=vEt(),y_t=u_t(),v5=FSe(),E_t=m_t(),K0=E_t.validators;function E1(e){this.defaults=e,this.interceptors={request:new g_t,response:new g_t}}E1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=v5(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var n=t.transitional;n!==void 0&&E_t.assertOptions(n,{silentJSONParsing:K0.transitional(K0.boolean,"1.0.0"),forcedJSONParsing:K0.transitional(K0.boolean,"1.0.0"),clarifyTimeoutError:K0.transitional(K0.boolean,"1.0.0")},!1);var r=[],i=!0;this.interceptors.request.forEach(function(f){typeof f.runWhen=="function"&&f.runWhen(t)===!1||(i=i&&f.synchronous,r.unshift(f.fulfilled,f.rejected))});var s=[];this.interceptors.response.forEach(function(f){s.push(f.fulfilled,f.rejected)});var o;if(!i){var a=[y_t,void 0];for(Array.prototype.unshift.apply(a,r),a=a.concat(s),o=Promise.resolve(t);a.length;)o=o.then(a.shift(),a.shift());return o}for(var c=t;r.length;){var u=r.shift(),l=r.shift();try{c=u(c)}catch(d){l(d);break}}try{o=y_t(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};E1.prototype.getUri=function(t){return t=v5(this.defaults,t),kYn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};S_t.forEach(["delete","get","head","options"],function(t){E1.prototype[t]=function(n,r){return this.request(v5(r||{},{method:t,url:n,data:(r||{}).data}))}});S_t.forEach(["post","put","patch"],function(t){E1.prototype[t]=function(n,r,i){return this.request(v5(i||{},{method:t,url:n,data:r}))}});__t.exports=E1});var qSe=w((dhi,T_t)=>{"use strict";function HSe(e){this.message=e}HSe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};HSe.prototype.__CANCEL__=!0;T_t.exports=HSe});var A_t=w((fhi,v_t)=>{"use strict";var IYn=qSe();function A5(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(i){t=i});var n=this;e(function(i){n.reason||(n.reason=new IYn(i),t(n.reason))})}A5.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};A5.source=function(){var t,n=new A5(function(i){t=i});return{token:n,cancel:t}};v_t.exports=A5});var w_t=w((phi,R_t)=>{"use strict";R_t.exports=function(t){return function(r){return t.apply(null,r)}}});var I_t=w((hhi,k_t)=>{"use strict";k_t.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var P_t=w((mhi,BSe)=>{"use strict";var x_t=$c(),xYn=dSe(),R5=b_t(),OYn=FSe(),PYn=T5();function O_t(e){var t=new R5(e),n=xYn(R5.prototype.request,t);return x_t.extend(n,R5.prototype,t),x_t.extend(n,t),n}var tp=O_t(PYn);tp.Axios=R5;tp.create=function(t){return O_t(OYn(tp.defaults,t))};tp.Cancel=qSe();tp.CancelToken=A_t();tp.isCancel=DSe();tp.all=function(t){return Promise.all(t)};tp.spread=w_t();tp.isAxiosError=I_t();BSe.exports=tp;BSe.exports.default=tp});var C_t=w((ghi,N_t)=>{N_t.exports=P_t()});var D_t=w((yhi,M_t)=>{var Y0=1e3,Z0=Y0*60,J0=Z0*60,_v=J0*24,NYn=_v*7,CYn=_v*365.25;M_t.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return MYn(e);if(n==="number"&&isFinite(e))return t.long?LYn(e):DYn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function MYn(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*CYn;case"weeks":case"week":case"w":return n*NYn;case"days":case"day":case"d":return n*_v;case"hours":case"hour":case"hrs":case"hr":case"h":return n*J0;case"minutes":case"minute":case"mins":case"min":case"m":return n*Z0;case"seconds":case"second":case"secs":case"sec":case"s":return n*Y0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function DYn(e){var t=Math.abs(e);return t>=_v?Math.round(e/_v)+"d":t>=J0?Math.round(e/J0)+"h":t>=Z0?Math.round(e/Z0)+"m":t>=Y0?Math.round(e/Y0)+"s":e+"ms"}function LYn(e){var t=Math.abs(e);return t>=_v?w5(e,t,_v,"day"):t>=J0?w5(e,t,J0,"hour"):t>=Z0?w5(e,t,Z0,"minute"):t>=Y0?w5(e,t,Y0,"second"):e+" ms"}function w5(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var GSe=w((Shi,L_t)=>{function UYn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=D_t(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";_++;let R=n.formatters[A];if(typeof R=="function"){let x=g[_];T=R.call(y,x),g.splice(_,1),_--}return T}),n.formatArgs.call(y,g),(y.log||n.log).apply(y,g)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:g=>{f=g}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d,f=(typeof l=="string"?l:"").split(/[\s,]+/),p=f.length;for(d=0;d"-"+d)].join(",");return n.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let d,f;for(d=0,f=n.skips.length;d{Dl.formatArgs=jYn;Dl.save=HYn;Dl.load=qYn;Dl.useColors=FYn;Dl.storage=BYn();Dl.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Dl.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function FYn(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function jYn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+k5.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}Dl.log=console.debug||console.log||(()=>{});function HYn(e){try{e?Dl.storage.setItem("debug",e):Dl.storage.removeItem("debug")}catch{}}function qYn(){let e;try{e=Dl.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function BYn(){try{return localStorage}catch{}}k5.exports=GSe()(Dl);var{formatters:GYn}=k5.exports;GYn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var j_t=w((Da,x5)=>{var zYn=Y("tty"),I5=Y("util");Da.init=XYn;Da.log=YYn;Da.formatArgs=WYn;Da.save=ZYn;Da.load=JYn;Da.useColors=VYn;Da.destroy=I5.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Da.colors=[6,2,3,4,5,1];try{let e=WJ();e&&(e.stderr||e).level>=2&&(Da.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Da.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function VYn(){return"colors"in Da.inspectOpts?!!Da.inspectOpts.colors:zYn.isatty(process.stderr.fd)}function WYn(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` `).join(` -`+s),e.push(i+"m+"+p5.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=K9n()+t+" "+e[0]}function K9n(){return xa.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Z9n(...e){return process.stderr.write(f5.format(...e)+` -`)}function Y9n(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function J9n(){return process.env.DEBUG}function X9n(e){e.inspectOpts={};let t=Object.keys(xa.inspectOpts);for(let n=0;nt.trim()).join(" ")};sEt.O=function(e){return this.inspectOpts.colors=this.useColors,f5.inspect(e,this.inspectOpts)}});var ASe=w((bfi,vSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?vSe.exports=iEt():vSe.exports=oEt()});var cEt=w((Tfi,aEt)=>{var{Transform:Q9n}=Y("stream"),RSe=class extends Q9n{constructor(t={}){super(t),this.host=t.host||"localhost",this.replaced=!1}_transform(t,n,r){r(null,this.replaced?t:t.toString().replace(/(\r\n[Hh]ost: )\S+/,(i,s)=>(this.replaced=!0,s+this.host)))}};aEt.exports=RSe});var dEt=w((Afi,lEt)=>{var{EventEmitter:$9n}=Y("events"),Bh=ASe()("localtunnel:client"),wSe=Y("fs"),uEt=Y("net"),eZn=Y("tls"),tZn=cEt();lEt.exports=class extends $9n{constructor(t={}){super(t),this.opts=t}open(){let t=this.opts,n=t.remote_ip||t.remote_host,r=t.remote_port,i=t.local_host||"localhost",s=t.local_port,o=t.local_https?"https":"http",a=t.allow_invalid_cert;Bh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=uEt.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Bh("got remote connection error",l.message),l.code==="ECONNREFUSED"&&this.emit("error",new Error(`connection refused: ${n}:${r} (check your firewall settings)`)),c.end()});let u=()=>{if(c.destroyed){Bh("remote destroyed"),this.emit("dead");return}Bh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Bh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:wSe.readFileSync(t.local_cert),key:wSe.readFileSync(t.local_key),ca:t.local_ca?[wSe.readFileSync(t.local_ca)]:void 0},d=t.local_https?eZn.connect({host:i,port:s,...l()}):uEt.connect({host:i,port:s}),f=()=>{Bh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Bh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Bh("connected locally"),c.resume();let p=c;t.local_host&&(Bh("transform Host header to %s",t.local_host),p=c.pipe(new tZn({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Bh("local connection closed [%s]",h)})})};c.on("data",l=>{let d=l.toString().match(/^(\w+) (\S+)/);d&&this.emit("request",{method:d[1],path:d[2]})}),c.once("connect",()=>{this.emit("open",c),u()})}}});var hEt=w((wfi,pEt)=>{var{parse:nZn}=Y("url"),{EventEmitter:fEt}=Y("events"),rZn=eEt(),l1=ASe()("localtunnel:client"),iZn=dEt();pEt.exports=class extends fEt{constructor(t={}){super(t),this.opts=t,this.closed=!1,this.opts.host||(this.opts.host="https://localtunnel.me")}_getInfo(t){let{id:n,ip:r,port:i,url:s,cached_url:o,max_conn_count:a}=t,{host:c,port:u,local_host:l}=this.opts,{local_https:d,local_cert:f,local_key:p,local_ca:h,allow_invalid_cert:m}=this.opts;return{name:n,url:s,cached_url:o,max_conn:a||1,remote_host:nZn(c).hostname,remote_ip:r,remote_port:i,local_port:u,local_host:l,local_https:d,local_cert:f,local_key:p,local_ca:h,allow_invalid_cert:m}}_init(t){let n=this.opts,r=this._getInfo.bind(this),i={responseType:"json"},s=`${n.host}/`,o=n.subdomain,a=s+(o||"?new");(function c(){rZn.get(a,i).then(u=>{let l=u.data;if(l1("got tunnel information",u.data),u.status!==200){let d=new Error(l&&l.message||"localtunnel server returned an error, please try again");return t(d)}t(null,r(l))}).catch(u=>(l1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(fEt.defaultMaxListeners||10)),this.tunnelCluster=new iZn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{l1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,l1("tunnel open [total: %d]",n);let i=()=>{r.destroy()};if(this.closed)return i();this.once("close",i),r.once("close",()=>{this.removeListener("close",i)})}),this.tunnelCluster.on("dead",()=>{n--,l1("tunnel dead [total: %d]",n),!this.closed&&this.tunnelCluster.open()}),this.tunnelCluster.on("request",r=>{this.emit("request",r)});for(let r=0;r{if(n)return t(n);this.clientId=r.name,this.url=r.url,r.cached_url&&(this.cachedUrl=r.cached_url),this._establish(r),t()})}close(){this.closed=!0,this.emit("close")}}});var gEt=w((kfi,mEt)=>{var sZn=hEt();mEt.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new sZn(i);return s?(o.open(a=>a?s(a):s(null,o)),o):new Promise((a,c)=>o.open(u=>u?c(u):a(o)))}});var wEt={};Rr(wEt,{__setActiveTunnelForTesting:()=>fZn,buildReviewUrl:()=>_v,clearE2EKey:()=>CSe,closeTunnel:()=>NSe,e2eEncrypt:()=>PSe,getTunnelUrl:()=>REt,isE2EActive:()=>p1,isRemoteReviewEnabled:()=>ji,isTunnelOpen:()=>lZn,openTunnel:()=>Lg,signJWT:()=>vEt,verifyTunnelJWT:()=>Gh});import{createCipheriv as oZn,createHmac as EEt,randomBytes as xSe,timingSafeEqual as aZn}from"node:crypto";async function uZn(){if(!(!Es||Sv||yv))try{let e=await fetch(`${Es.url}/health`,{headers:{"bypass-tunnel-reminder":"1"},signal:AbortSignal.timeout(1e4)});if(!e.ok)throw new Error(`HTTP ${e.status}`)}catch{console.error("[haiku] Tunnel health check failed \u2014 reconnecting"),Es?.close(),Es=null,ISe()}}function TEt(){h5(),d1=setInterval(uZn,cZn),d1.unref()}function h5(){d1&&(clearInterval(d1),d1=null)}function yEt(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function vEt(e){let t=yEt(JSON.stringify({alg:"HS256",typ:"JWT"})),n=yEt(JSON.stringify(e)),r=EEt("sha256",bEt).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Gh(e,t){let n=e.split(".");if(n.length!==3)return{ok:!1,reason:"malformed"};let[r,i,s]=n;if(!r||!i||!s)return{ok:!1,reason:"malformed"};try{let f=Buffer.from(r,"base64url").toString("utf-8"),p=JSON.parse(f);if(p.alg!=="HS256")return{ok:!1,reason:"bad_alg"};if(p.typ!==void 0&&p.typ!=="JWT")return{ok:!1,reason:"bad_typ"}}catch{return{ok:!1,reason:"malformed"}}let o=EEt("sha256",bEt).update(`${r}.${i}`).digest("base64url"),a,c;try{a=Buffer.from(s,"base64url"),c=Buffer.from(o,"base64url")}catch{return{ok:!1,reason:"malformed"}}if(a.length===0||a.length!==c.length)return{ok:!1,reason:"bad_signature"};if(!aZn(a,c))return{ok:!1,reason:"bad_signature"};let u;try{let f=Buffer.from(i,"base64url").toString("utf-8");u=JSON.parse(f)}catch{return{ok:!1,reason:"malformed"}}let l=Math.floor(Date.now()/1e3);if(typeof u.exp!="number"||u.exp<=l)return{ok:!1,reason:"expired"};let d=REt();return!d||u.tun!==d?{ok:!1,reason:"tunnel_mismatch"}:t!==null&&u.sid!==t?{ok:!1,reason:"sid_mismatch"}:{ok:!0,payload:u}}async function ISe(){if(yv||Sv||!kSe)return;yv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,OSe.default)({port:kSe});Es=r,AEt(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),TEt(),yv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}yv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function AEt(e){e.on("close",()=>{Es===e&&(Es=null,h5(),console.error("[haiku] Tunnel closed unexpectedly"),Sv||ISe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Es===e&&(Es=null,h5(),Sv||ISe())})}async function Lg(e){if(Es)return Es.url;if(yv){let n=Date.now()+SEt;if(await new Promise((r,i)=>{let s=setInterval(()=>{yv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${SEt}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Es)return Es.url}kSe=e,Sv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${_Et}ms`)),_Et)),i=await Promise.race([(0,OSe.default)({port:e}),r]);return Es=i,AEt(i),console.error(`[haiku] Tunnel opened: ${i.url}`),TEt(),i.url}catch(r){console.error(`[haiku] Tunnel open failed (attempt ${n+1}/${t}):`,r instanceof Error?r.message:r),nsetTimeout(i,1e3*(n+1)))}throw new Error("Failed to open localtunnel after 3 attempts")}function NSe(){Sv=!0,h5(),Es&&(Es.close(),Es=null,console.error("[haiku] Tunnel closed"))}function REt(){return Es?.url??null}function lZn(){return Es!==null}function ji(){return Bo.remoteReview}function _v(e,t,n){let r=xSe(32);f1.set(e,r);let i=Math.floor(Date.now()/1e3),s=vEt({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${dZn}/review/#${s}`}function PSe(e,t){let n=f1.get(e);if(!n)return null;let r=xSe(12),i=oZn("aes-256-gcm",n,r),s=typeof t=="string"?Buffer.from(t,"utf-8"):t,o=Buffer.concat([i.update(s),i.final()]),a=i.getAuthTag();return Buffer.concat([r,a,o]).toString("base64url")}function p1(e){return e?f1.has(e):f1.size>0}function CSe(e){f1.delete(e)}function fZn(e){e?Es={url:e,close:()=>{Es=null},on:()=>{}}:Es=null}var OSe,bEt,f1,Es,kSe,yv,Sv,d1,cZn,SEt,_Et,dZn,zh=v(()=>{"use strict";OSe=_e(gEt(),1);Oi();bEt=xSe(32),f1=new Map,Es=null,kSe=null,yv=!1,Sv=!1,d1=null,cZn=3e4;SEt=3e4,_Et=15e3;dZn=mf.siteUrl});import{randomBytes as pZn}from"node:crypto";function mZn(){let e=process.env.HAIKU_ALLOWED_ORIGINS;return!e||e.trim()===""?["http://localhost:*"]:e.split(",").map(t=>t.trim()).filter(t=>t.length>0)}function OEt(e,t){if(!e)return!1;for(let n of t){if(n===e||n==="*")return!0;if(n.endsWith(":*")){let r=n.slice(0,-2);if(e.startsWith(`${r}:`)){let i=e.slice(r.length+1);if(/^\d+$/.test(i))return!0}}if(n.includes("://*.")){let[r,i]=n.split("://*.");if(e.startsWith(`${r}://`)){let s=e.slice(r.length+3);if(s.endsWith(`.${i}`)||s===i)return!0}}}return!1}function gZn(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function yZn(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return kEt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?kEt:t}function NEt(e){let t=pZn(32).toString("base64url");return MSe.set(e,{nonce:t,expiresAt:Date.now()+yZn()}),t}function PEt(e){let t=MSe.get(e);return t?t.expiresAt{if(!ji())return n.send({nonce:"local-mode-no-csrf-required"});let r=h1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Gh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=NEt(i.payload.sid);return n.send({nonce:s})})}var hZn,IEt,xEt,kEt,MSe,DSe=v(()=>{"use strict";zh();Ug();hZn=new Set(["POST","PUT","PATCH","DELETE"]),IEt="query_param_token_disallowed_on_mutating_route",xEt="X-Haiku-CSRF";kEt=3600*1e3;MSe=new Map});function h1(e){let t=e.headers.authorization;if(t){let r=t.match(/^Bearer\s+(.+)$/i);if(r){let i=r[1].trim();if(i)return i}}return e.query?.t?.trim()||null}function Bn(e,t,n){if(!ji())return!0;let r=h1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Gh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function V0(e,t,n){if(!ji())return!0;let r=h1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Gh(r,null);if(!i.ok)return t.status(401).send({error:"unauthorized",reason:i.reason}),!1;let s=i.payload.sid,o=on(s);return o?(o.session_type==="review"?o.intent_slug:void 0)!==n?(t.status(403).send({error:"forbidden_cross_session",reason:"intent_mismatch"}),!1):!0:(t.status(403).send({error:"forbidden_cross_session",reason:"unknown_session"}),!1)}var W0,Ug=v(()=>{"use strict";Hu();zh();DSe();W0=V0});import{existsSync as DEt}from"node:fs";import{join as LEt}from"node:path";function SZn(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function L_(e,t,n){let r=n.safeParse(t);if(!r.success){let i=r.error.issues.map(s=>({code:s.code,message:s.message,path:s.path}));return SZn(e,i),{ok:!1}}return{ok:!0,data:r.data}}function gn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function Oa(e){try{let t=fe(e);return DEt(LEt(t,"intent.md"))}catch{return!1}}function Vh(e,t){try{let n=fe(e);return DEt(LEt(n,"stages",t))}catch{return!1}}var Ev=v(()=>{"use strict";ze()});import{existsSync as m5,readdirSync as LSe,readFileSync as _Zn}from"node:fs";import{join as g1}from"node:path";function jEt(e){return typeof e!="string"||e.length<=UEt?e:`${e.slice(0,UEt)}\u2026`}function EZn(e){let t={...e};t.agent_rationale=jEt(e.agent_rationale);let n=e.classifications;return Array.isArray(n)&&(t.classifications=n.map(r=>r===null||typeof r!="object"?r:{...r,rationale_excerpt:jEt(r.rationale_excerpt)})),t}function bZn(e){return/^DA-\d+$/.test(e)}function m1(e){try{let t=_Zn(e,"utf-8");return JSON.parse(t)}catch{return null}}function TZn(e){let t=fe(e),n=g1(t,"stages");if(!m5(n))return[];let r=[],i;try{i=LSe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=g1(n,s,"drift-assessments");if(!m5(o))continue;let a;try{a=LSe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=g1(o,c),d=m1(l),f=typeof d?.created_at=="string"?d.created_at:"1970-01-01T00:00:00Z";r.push({absPath:l,stage:s,id:u,createdAt:f})}}return r.sort((s,o)=>new Date(o.createdAt).getTime()-new Date(s.createdAt).getTime()),r}function FEt(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Oa(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}let i=t.query,s=50;if(i.limit!==void 0){let m=Number.parseInt(i.limit,10);if(!Number.isFinite(m)||m<1){n.status(400).send({error:"bad_param",code:"bad_param",message:"limit must be a positive integer"});return}s=Math.min(m,200)}let o=null;if(i.since!==void 0){let m=Date.parse(i.since);if(Number.isNaN(m)){n.status(400).send({error:"bad_param",code:"bad_param",message:"since must be a valid RFC 3339 timestamp"});return}o=m}let a=i.stage??null,c=i.outcome??null,l=TZn(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let y=m1(m.absPath);if(!y)return!1;let g=y.findings;if(!Array.isArray(g)||!g.some(E=>E.stage===a))return!1}if(c!==null){let y=m1(m.absPath);if(!y)return!1;let g=y.classifications;if(!Array.isArray(g)||!g.some(E=>E.outcome===c))return!1}return!0}),d=l.length,f=d>s,p=l.slice(0,s),h=[];for(let m of p){let y=m1(m.absPath);y!==null&&h.push(EZn(y))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!gn(r)){n.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Oa(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(!bZn(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=fe(r),o=g1(s,"stages");if(!m5(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=LSe(o,{withFileTypes:!0}).filter(c=>c.isDirectory()).map(c=>c.name)}catch{n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}for(let c of a){let u=g1(o,c,"drift-assessments",`${i}.json`);if(m5(u)){let l=m1(u);if(l===null){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}n.send({ok:!0,assessment:l});return}}n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"})})}var UEt,HEt=v(()=>{"use strict";ze();Ug();Ev();UEt=256});import{createReadStream as vZn,existsSync as AZn}from"node:fs";function g5(e,t){e.status(400).send({error:t,code:t})}function USe(e,t){e.status(404).send({error:t,code:t})}function BEt(e,t){if(!AZn(t)){USe(e,"sidecar_not_found");return}let n=Kgt(t),r=n?RZn[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(vZn(t))}function GEt(e){e.get("/api/intents/:intent/baseline-content/stage/:stage/:sha256",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,stage:i,sha256:s}=t.params;if(!gn(r)||!gn(i)){g5(n,"bad_param");return}if(!qEt.test(s)){g5(n,"bad_sha");return}if(!Oa(r)){USe(n,"intent_not_found");return}let o=Zgt(fe(r),i,s);BEt(n,o)}),e.get("/api/intents/:intent/baseline-content/intent/:sha256",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,sha256:i}=t.params;if(!gn(r)){g5(n,"bad_param");return}if(!qEt.test(i)){g5(n,"bad_sha");return}if(!Oa(r)){USe(n,"intent_not_found");return}let s=Ygt(fe(r),i);BEt(n,s)})}var qEt,RZn,zEt=v(()=>{"use strict";_0();ze();Ug();Ev();qEt=/^[0-9a-f]{64}$/,RZn={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as wZn}from"node:zlib";var kZn,qd,y5=v(()=>{"use strict";kZn="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",qd=wZn(Buffer.from(kZn,"base64")).toString("utf-8")});import{existsSync as Qf,readdirSync as K0,readFileSync as bv,writeFileSync as IZn}from"node:fs";import{join as Ao}from"node:path";function S5(e){let t=fe(e.slug),n=Ao(t,"intent.md");if(!Qf(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(bv(n,"utf8")).data,i=r.studio||"",s=r.mode||"continuous";if(!i)return{ok:!1,error:"intent_missing_studio"};let o=So(i);if(!o.includes(e.targetStage))return{ok:!1,error:"stage_not_in_studio",details:{studio:i,stages:o,targetStage:e.targetStage}};let a=o.indexOf(e.targetStage),c=o.slice(0,a+1),u=[],l=[];for(let g of c){let E=Ao(t,"stages",g,"units");if(!Qf(E))continue;let S=hye(i,g,s),_=mye(i,g,s);for(let b of K0(E).filter(T=>T.endsWith(".md"))){let T=Ao(E,b),A=re(bv(T,"utf8")).data,R=Array.isArray(A.iterations)?A.iterations:[],k=R[R.length-1];if(!k||k.result!=="advance"){u.push({stage:g,unit:b,reason:"unit has not reached terminal advance \u2014 debug tool refuses to sign units that have NOT moved through all hats"});continue}l.push({stage:g,unitPath:T,reviewRoles:S,approvalRoles:_,fm:A})}}if(u.length>0)return{ok:!1,error:"units_not_terminal_advance",details:{refusedUnits:u,signed:0}};let d=new Set,f=0;for(let g of l){let E=Array.isArray(g.fm.outputs)?g.fm.outputs:[],S=g.fm.reviews&&typeof g.fm.reviews=="object"?{...g.fm.reviews}:{},_=Array.isArray(g.fm.inputs)?g.fm.inputs:[];for(let T of g.reviewRoles)S[T]||(S[T]=Il(g.unitPath,{intentDir:t,unitInputs:_}));let b=g.fm.approvals&&typeof g.fm.approvals=="object"?{...g.fm.approvals}:{};for(let T of g.approvalRoles)b[T]||(b[T]=jd(t,E));je(g.unitPath,"reviews",S),je(g.unitPath,"approvals",b),d.add(g.stage),f++}let p=c.filter(g=>d.has(g)),h=0;for(let g of p){let E=Ao(t,"stages",g),S=Ao(E,"elaboration.md"),_=new Date().toISOString();if(Qf(S)){let b=re(bv(S,"utf8")).data,T=!1;b.verified_at||(je(S,"verified_at",_),T=!0),b.decompose_verified_at||(je(S,"decompose_verified_at",_),T=!0),T&&h++}else{let b=`# Elaboration (synthesized by /haiku:haiku-debug) +`+s),e.push(i+"m+"+x5.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=KYn()+t+" "+e[0]}function KYn(){return Da.inspectOpts.hideDate?"":new Date().toISOString()+" "}function YYn(...e){return process.stderr.write(I5.format(...e)+` +`)}function ZYn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function JYn(){return process.env.DEBUG}function XYn(e){e.inspectOpts={};let t=Object.keys(Da.inspectOpts);for(let n=0;nt.trim()).join(" ")};F_t.O=function(e){return this.inspectOpts.colors=this.useColors,I5.inspect(e,this.inspectOpts)}});var VSe=w((Ehi,zSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?zSe.exports=U_t():zSe.exports=j_t()});var q_t=w((_hi,H_t)=>{var{Transform:QYn}=Y("stream"),WSe=class extends QYn{constructor(t={}){super(t),this.host=t.host||"localhost",this.replaced=!1}_transform(t,n,r){r(null,this.replaced?t:t.toString().replace(/(\r\n[Hh]ost: )\S+/,(i,s)=>(this.replaced=!0,s+this.host)))}};H_t.exports=WSe});var z_t=w((Thi,G_t)=>{var{EventEmitter:$Yn}=Y("events"),Yh=VSe()("localtunnel:client"),KSe=Y("fs"),B_t=Y("net"),e5n=Y("tls"),t5n=q_t();G_t.exports=class extends $Yn{constructor(t={}){super(t),this.opts=t}open(){let t=this.opts,n=t.remote_ip||t.remote_host,r=t.remote_port,i=t.local_host||"localhost",s=t.local_port,o=t.local_https?"https":"http",a=t.allow_invalid_cert;Yh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=B_t.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Yh("got remote connection error",l.message),l.code==="ECONNREFUSED"&&this.emit("error",new Error(`connection refused: ${n}:${r} (check your firewall settings)`)),c.end()});let u=()=>{if(c.destroyed){Yh("remote destroyed"),this.emit("dead");return}Yh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Yh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:KSe.readFileSync(t.local_cert),key:KSe.readFileSync(t.local_key),ca:t.local_ca?[KSe.readFileSync(t.local_ca)]:void 0},d=t.local_https?e5n.connect({host:i,port:s,...l()}):B_t.connect({host:i,port:s}),f=()=>{Yh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Yh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Yh("connected locally"),c.resume();let p=c;t.local_host&&(Yh("transform Host header to %s",t.local_host),p=c.pipe(new t5n({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Yh("local connection closed [%s]",h)})})};c.on("data",l=>{let d=l.toString().match(/^(\w+) (\S+)/);d&&this.emit("request",{method:d[1],path:d[2]})}),c.once("connect",()=>{this.emit("open",c),u()})}}});var K_t=w((Ahi,W_t)=>{var{parse:n5n}=Y("url"),{EventEmitter:V_t}=Y("events"),r5n=C_t(),_1=VSe()("localtunnel:client"),i5n=z_t();W_t.exports=class extends V_t{constructor(t={}){super(t),this.opts=t,this.closed=!1,this.opts.host||(this.opts.host="https://localtunnel.me")}_getInfo(t){let{id:n,ip:r,port:i,url:s,cached_url:o,max_conn_count:a}=t,{host:c,port:u,local_host:l}=this.opts,{local_https:d,local_cert:f,local_key:p,local_ca:h,allow_invalid_cert:m}=this.opts;return{name:n,url:s,cached_url:o,max_conn:a||1,remote_host:n5n(c).hostname,remote_ip:r,remote_port:i,local_port:u,local_host:l,local_https:d,local_cert:f,local_key:p,local_ca:h,allow_invalid_cert:m}}_init(t){let n=this.opts,r=this._getInfo.bind(this),i={responseType:"json"},s=`${n.host}/`,o=n.subdomain,a=s+(o||"?new");(function c(){r5n.get(a,i).then(u=>{let l=u.data;if(_1("got tunnel information",u.data),u.status!==200){let d=new Error(l&&l.message||"localtunnel server returned an error, please try again");return t(d)}t(null,r(l))}).catch(u=>(_1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(V_t.defaultMaxListeners||10)),this.tunnelCluster=new i5n(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{_1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,_1("tunnel open [total: %d]",n);let i=()=>{r.destroy()};if(this.closed)return i();this.once("close",i),r.once("close",()=>{this.removeListener("close",i)})}),this.tunnelCluster.on("dead",()=>{n--,_1("tunnel dead [total: %d]",n),!this.closed&&this.tunnelCluster.open()}),this.tunnelCluster.on("request",r=>{this.emit("request",r)});for(let r=0;r{if(n)return t(n);this.clientId=r.name,this.url=r.url,r.cached_url&&(this.cachedUrl=r.cached_url),this._establish(r),t()})}close(){this.closed=!0,this.emit("close")}}});var Z_t=w((Rhi,Y_t)=>{var s5n=K_t();Y_t.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new s5n(i);return s?(o.open(a=>a?s(a):s(null,o)),o):new Promise((a,c)=>o.open(u=>u?c(u):a(o)))}});var sbt={};Rr(sbt,{__setActiveTunnelForTesting:()=>f5n,buildReviewUrl:()=>vv,clearE2EKey:()=>eEe,closeTunnel:()=>QSe,e2eEncrypt:()=>$Se,getTunnelUrl:()=>ibt,isE2EActive:()=>v1,isRemoteReviewEnabled:()=>Bi,isTunnelOpen:()=>l5n,openTunnel:()=>jg,signJWT:()=>nbt,verifyTunnelJWT:()=>Zh});import{createCipheriv as o5n,createHmac as $_t,randomBytes as JSe,timingSafeEqual as a5n}from"node:crypto";async function u5n(){if(!(!Ts||Tv||bv))try{let e=await fetch(`${Ts.url}/health`,{headers:{"bypass-tunnel-reminder":"1"},signal:AbortSignal.timeout(1e4)});if(!e.ok)throw new Error(`HTTP ${e.status}`)}catch{console.error("[haiku] Tunnel health check failed \u2014 reconnecting"),Ts?.close(),Ts=null,ZSe()}}function tbt(){O5(),b1=setInterval(u5n,c5n),b1.unref()}function O5(){b1&&(clearInterval(b1),b1=null)}function J_t(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function nbt(e){let t=J_t(JSON.stringify({alg:"HS256",typ:"JWT"})),n=J_t(JSON.stringify(e)),r=$_t("sha256",ebt).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Zh(e,t){let n=e.split(".");if(n.length!==3)return{ok:!1,reason:"malformed"};let[r,i,s]=n;if(!r||!i||!s)return{ok:!1,reason:"malformed"};try{let f=Buffer.from(r,"base64url").toString("utf-8"),p=JSON.parse(f);if(p.alg!=="HS256")return{ok:!1,reason:"bad_alg"};if(p.typ!==void 0&&p.typ!=="JWT")return{ok:!1,reason:"bad_typ"}}catch{return{ok:!1,reason:"malformed"}}let o=$_t("sha256",ebt).update(`${r}.${i}`).digest("base64url"),a,c;try{a=Buffer.from(s,"base64url"),c=Buffer.from(o,"base64url")}catch{return{ok:!1,reason:"malformed"}}if(a.length===0||a.length!==c.length)return{ok:!1,reason:"bad_signature"};if(!a5n(a,c))return{ok:!1,reason:"bad_signature"};let u;try{let f=Buffer.from(i,"base64url").toString("utf-8");u=JSON.parse(f)}catch{return{ok:!1,reason:"malformed"}}let l=Math.floor(Date.now()/1e3);if(typeof u.exp!="number"||u.exp<=l)return{ok:!1,reason:"expired"};let d=ibt();return!d||u.tun!==d?{ok:!1,reason:"tunnel_mismatch"}:t!==null&&u.sid!==t?{ok:!1,reason:"sid_mismatch"}:{ok:!0,payload:u}}async function ZSe(){if(bv||Tv||!YSe)return;bv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,XSe.default)({port:YSe});Ts=r,rbt(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),tbt(),bv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}bv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function rbt(e){e.on("close",()=>{Ts===e&&(Ts=null,O5(),console.error("[haiku] Tunnel closed unexpectedly"),Tv||ZSe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,O5(),Tv||ZSe())})}async function jg(e){if(Ts)return Ts.url;if(bv){let n=Date.now()+X_t;if(await new Promise((r,i)=>{let s=setInterval(()=>{bv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${X_t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}YSe=e,Tv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${Q_t}ms`)),Q_t)),i=await Promise.race([(0,XSe.default)({port:e}),r]);return Ts=i,rbt(i),console.error(`[haiku] Tunnel opened: ${i.url}`),tbt(),i.url}catch(r){console.error(`[haiku] Tunnel open failed (attempt ${n+1}/${t}):`,r instanceof Error?r.message:r),nsetTimeout(i,1e3*(n+1)))}throw new Error("Failed to open localtunnel after 3 attempts")}function QSe(){Tv=!0,O5(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function ibt(){return Ts?.url??null}function l5n(){return Ts!==null}function Bi(){return zo.remoteReview}function vv(e,t,n){let r=JSe(32);T1.set(e,r);let i=Math.floor(Date.now()/1e3),s=nbt({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${d5n}/review/#${s}`}function $Se(e,t){let n=T1.get(e);if(!n)return null;let r=JSe(12),i=o5n("aes-256-gcm",n,r),s=typeof t=="string"?Buffer.from(t,"utf-8"):t,o=Buffer.concat([i.update(s),i.final()]),a=i.getAuthTag();return Buffer.concat([r,a,o]).toString("base64url")}function v1(e){return e?T1.has(e):T1.size>0}function eEe(e){T1.delete(e)}function f5n(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var XSe,ebt,T1,Ts,YSe,bv,Tv,b1,c5n,X_t,Q_t,d5n,Jh=v(()=>{"use strict";XSe=Se(Z_t(),1);Ci();ebt=JSe(32),T1=new Map,Ts=null,YSe=null,bv=!1,Tv=!1,b1=null,c5n=3e4;X_t=3e4,Q_t=15e3;d5n=yf.siteUrl});import{randomBytes as p5n}from"node:crypto";function m5n(){let e=process.env.HAIKU_ALLOWED_ORIGINS;return!e||e.trim()===""?["http://localhost:*"]:e.split(",").map(t=>t.trim()).filter(t=>t.length>0)}function ubt(e,t){if(!e)return!1;for(let n of t){if(n===e||n==="*")return!0;if(n.endsWith(":*")){let r=n.slice(0,-2);if(e.startsWith(`${r}:`)){let i=e.slice(r.length+1);if(/^\d+$/.test(i))return!0}}if(n.includes("://*.")){let[r,i]=n.split("://*.");if(e.startsWith(`${r}://`)){let s=e.slice(r.length+3);if(s.endsWith(`.${i}`)||s===i)return!0}}}return!1}function g5n(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function y5n(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return obt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?obt:t}function lbt(e){let t=p5n(32).toString("base64url");return tEe.set(e,{nonce:t,expiresAt:Date.now()+y5n()}),t}function dbt(e){let t=tEe.get(e);return t?t.expiresAt{if(!Bi())return n.send({nonce:"local-mode-no-csrf-required"});let r=A1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Zh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=lbt(i.payload.sid);return n.send({nonce:s})})}var h5n,abt,cbt,obt,tEe,nEe=v(()=>{"use strict";Jh();Hg();h5n=new Set(["POST","PUT","PATCH","DELETE"]),abt="query_param_token_disallowed_on_mutating_route",cbt="X-Haiku-CSRF";obt=3600*1e3;tEe=new Map});function A1(e){let t=e.headers.authorization;if(t){let r=t.match(/^Bearer\s+(.+)$/i);if(r){let i=r[1].trim();if(i)return i}}return e.query?.t?.trim()||null}function Gn(e,t,n){if(!Bi())return!0;let r=A1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Zh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function X0(e,t,n){if(!Bi())return!0;let r=A1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Zh(r,null);if(!i.ok)return t.status(401).send({error:"unauthorized",reason:i.reason}),!1;let s=i.payload.sid,o=$t(s);return o?(o.session_type==="review"?o.intent_slug:void 0)!==n?(t.status(403).send({error:"forbidden_cross_session",reason:"intent_mismatch"}),!1):!0:(t.status(403).send({error:"forbidden_cross_session",reason:"unknown_session"}),!1)}var Q0,Hg=v(()=>{"use strict";Qc();Jh();nEe();Q0=X0});import{existsSync as hbt}from"node:fs";import{join as mbt}from"node:path";function S5n(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function qE(e,t,n){let r=n.safeParse(t);if(!r.success){let i=r.error.issues.map(s=>({code:s.code,message:s.message,path:s.path}));return S5n(e,i),{ok:!1}}return{ok:!0,data:r.data}}function gn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function La(e){try{let t=pe(e);return hbt(mbt(t,"intent.md"))}catch{return!1}}function Xh(e,t){try{let n=pe(e);return hbt(mbt(n,"stages",t))}catch{return!1}}var Av=v(()=>{"use strict";ze()});import{existsSync as P5,readdirSync as rEe,readFileSync as E5n}from"node:fs";import{join as w1}from"node:path";function ybt(e){return typeof e!="string"||e.length<=gbt?e:`${e.slice(0,gbt)}\u2026`}function _5n(e){let t={...e};t.agent_rationale=ybt(e.agent_rationale);let n=e.classifications;return Array.isArray(n)&&(t.classifications=n.map(r=>r===null||typeof r!="object"?r:{...r,rationale_excerpt:ybt(r.rationale_excerpt)})),t}function b5n(e){return/^DA-\d+$/.test(e)}function R1(e){try{let t=E5n(e,"utf-8");return JSON.parse(t)}catch{return null}}function T5n(e){let t=pe(e),n=w1(t,"stages");if(!P5(n))return[];let r=[],i;try{i=rEe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=w1(n,s,"drift-assessments");if(!P5(o))continue;let a;try{a=rEe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=w1(o,c),d=R1(l),f=typeof d?.created_at=="string"?d.created_at:"1970-01-01T00:00:00Z";r.push({absPath:l,stage:s,id:u,createdAt:f})}}return r.sort((s,o)=>new Date(o.createdAt).getTime()-new Date(s.createdAt).getTime()),r}function Sbt(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"bad_param",code:"bad_param"});return}if(!La(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}let i=t.query,s=50;if(i.limit!==void 0){let m=Number.parseInt(i.limit,10);if(!Number.isFinite(m)||m<1){n.status(400).send({error:"bad_param",code:"bad_param",message:"limit must be a positive integer"});return}s=Math.min(m,200)}let o=null;if(i.since!==void 0){let m=Date.parse(i.since);if(Number.isNaN(m)){n.status(400).send({error:"bad_param",code:"bad_param",message:"since must be a valid RFC 3339 timestamp"});return}o=m}let a=i.stage??null,c=i.outcome??null,l=T5n(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let g=R1(m.absPath);if(!g)return!1;let y=g.findings;if(!Array.isArray(y)||!y.some(E=>E.stage===a))return!1}if(c!==null){let g=R1(m.absPath);if(!g)return!1;let y=g.classifications;if(!Array.isArray(y)||!y.some(E=>E.outcome===c))return!1}return!0}),d=l.length,f=d>s,p=l.slice(0,s),h=[];for(let m of p){let g=R1(m.absPath);g!==null&&h.push(_5n(g))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!gn(r)){n.status(400).send({error:"bad_param",code:"bad_param"});return}if(!La(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(!b5n(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=pe(r),o=w1(s,"stages");if(!P5(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=rEe(o,{withFileTypes:!0}).filter(c=>c.isDirectory()).map(c=>c.name)}catch{n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}for(let c of a){let u=w1(o,c,"drift-assessments",`${i}.json`);if(P5(u)){let l=R1(u);if(l===null){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}n.send({ok:!0,assessment:l});return}}n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"})})}var gbt,Ebt=v(()=>{"use strict";ze();Hg();Av();gbt=256});import{createReadStream as v5n,existsSync as A5n}from"node:fs";function N5(e,t){e.status(400).send({error:t,code:t})}function iEe(e,t){e.status(404).send({error:t,code:t})}function bbt(e,t){if(!A5n(t)){iEe(e,"sidecar_not_found");return}let n=Ryt(t),r=n?R5n[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send(v5n(t))}function Tbt(e){e.get("/api/intents/:intent/baseline-content/stage/:stage/:sha256",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,sha256:s}=t.params;if(!gn(r)||!gn(i)){N5(n,"bad_param");return}if(!_bt.test(s)){N5(n,"bad_sha");return}if(!La(r)){iEe(n,"intent_not_found");return}let o=wyt(pe(r),i,s);bbt(n,o)}),e.get("/api/intents/:intent/baseline-content/intent/:sha256",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,sha256:i}=t.params;if(!gn(r)){N5(n,"bad_param");return}if(!_bt.test(i)){N5(n,"bad_sha");return}if(!La(r)){iEe(n,"intent_not_found");return}let s=kyt(pe(r),i);bbt(n,s)})}var _bt,R5n,vbt=v(()=>{"use strict";A0();ze();Hg();Av();_bt=/^[0-9a-f]{64}$/,R5n={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as w5n}from"node:zlib";var k5n,Gd,C5=v(()=>{"use strict";k5n="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",Gd=w5n(Buffer.from(k5n,"base64")).toString("utf-8")});import{existsSync as np,readdirSync as $0,readFileSync as Rv,writeFileSync as I5n}from"node:fs";import{join as ko}from"node:path";function M5(e){let t=pe(e.slug),n=ko(t,"intent.md");if(!np(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(Rv(n,"utf8")).data,i=r.studio||"",s=r.mode||"continuous";if(!i)return{ok:!1,error:"intent_missing_studio"};let o=Fs(i);if(!o.includes(e.targetStage))return{ok:!1,error:"stage_not_in_studio",details:{studio:i,stages:o,targetStage:e.targetStage}};let a=o.indexOf(e.targetStage),c=o.slice(0,a+1),u=[],l=[];for(let y of c){let E=ko(t,"stages",y,"units");if(!np(E))continue;let S=Cye(i,y,s),_=Mye(i,y,s);for(let b of $0(E).filter(T=>T.endsWith(".md"))){let T=ko(E,b),A=re(Rv(T,"utf8")).data,R=Array.isArray(A.iterations)?A.iterations:[],x=R[R.length-1];if(!x||x.result!=="advance"){u.push({stage:y,unit:b,reason:"unit has not reached terminal advance \u2014 debug tool refuses to sign units that have NOT moved through all hats"});continue}l.push({stage:y,unitPath:T,reviewRoles:S,approvalRoles:_,fm:A})}}if(u.length>0)return{ok:!1,error:"units_not_terminal_advance",details:{refusedUnits:u,signed:0}};let d=new Set,f=0;for(let y of l){let E=Array.isArray(y.fm.outputs)?y.fm.outputs:[],S=y.fm.reviews&&typeof y.fm.reviews=="object"?{...y.fm.reviews}:{},_=Array.isArray(y.fm.inputs)?y.fm.inputs:[];for(let T of y.reviewRoles)S[T]||(S[T]=Nl(y.unitPath,{intentDir:t,unitInputs:_}));let b=y.fm.approvals&&typeof y.fm.approvals=="object"?{...y.fm.approvals}:{};for(let T of y.approvalRoles)b[T]||(b[T]=Hd(t,E));De(y.unitPath,"reviews",S),De(y.unitPath,"approvals",b),d.add(y.stage),f++}let p=c.filter(y=>d.has(y)),h=0;for(let y of p){let E=ko(t,"stages",y),S=ko(E,"elaboration.md"),_=new Date().toISOString();if(np(S)){let b=re(Rv(S,"utf8")).data,T=!1;b.verified_at||(De(S,"verified_at",_),T=!0),b.decompose_verified_at||(De(S,"decompose_verified_at",_),T=!0),T&&h++}else{let b=`# Elaboration (synthesized by /haiku:haiku-debug) This stage's units terminal-advanced through every hat without an elaboration.md being recorded. The debug recovery op synthesized this artifact so the cursor can walk past the elaborate phase. -`,T={recorded_at:_,verified_at:_,decompose_verified_at:_,intent:e.slug,stage:g,synthesized_by:"force_complete"};IZn(S,VEt.default.stringify(b,T)),h++}}let m=!1;if(a===o.length-1){let g=r.approvals&&typeof r.approvals=="object"?{...r.approvals}:{};for(let E of["spec","continuity","user","intent_quality_gates"])g[E]||(g[E]={at:new Date().toISOString()});je(n,"approvals",g),m=!0}let y=0;if(e.closeOpenFeedback){let g=p.map(S=>Ao(t,"stages",S,"feedback"));a===o.length-1&&g.push(Ao(t,"feedback"));let E=new Date().toISOString();for(let S of g)if(Qf(S))for(let _ of K0(S).filter(b=>b.endsWith(".md"))){let b=Ao(S,_),T=re(bv(b,"utf8")).data,A=T.closed_at,R=T.rejected_at;if(typeof A=="string"&&A.length>0||typeof R=="string"&&R.length>0)continue;je(b,"closed_at",E);let k=T.closed_by;typeof k=="string"&&k.length>0||je(b,"closed_by","force_complete"),y++}}return{ok:!0,result:{stages_processed:p,units_signed:f,intent_quality_gates_signed:m,feedback_closed:y,elaborations_sealed:h}}}function Z0(e){let t=Ao(fe(e.slug),"intent.md");return Qf(t)?(je(t,e.field,e.value),{ok:!0}):{ok:!1,error:"intent_not_found"}}function _5(e){let t=fe(e.slug),n=Ao(t,"stages");if(!Qf(n))return{ok:!1,error:"no_stages_dir"};let r=0,i=0;for(let s of K0(n,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Ao(n,s.name,"units");if(Qf(o))for(let a of K0(o).filter(c=>c.endsWith(".md"))){let c=Ao(o,a),u=re(bv(c,"utf8")).data,l=Array.isArray(u.outputs)?u.outputs:[],d=u.reviews&&typeof u.reviews=="object"?{...u.reviews}:{},f=Array.isArray(u.inputs)?u.inputs:[];for(let h of Object.keys(d))d[h]=Il(c,{intentDir:t,unitInputs:f}),r++;let p=u.approvals&&typeof u.approvals=="object"?{...u.approvals}:{};for(let h of Object.keys(p))p[h]=jd(t,l),i++;Object.keys(d).length>0&&je(c,"reviews",d),Object.keys(p).length>0&&je(c,"approvals",p)}}return{ok:!0,reviews_refreshed:r,approvals_refreshed:i}}function E5(e){let t=fe(e.slug),n=Ao(t,"intent.md");if(!Qf(n))return{ok:!1,error:"intent_not_found"};let i=re(bv(n,"utf8")).data.studio||"";if(!i)return{ok:!1,error:"intent_missing_studio"};let s=Ao(t,"stages",e.stage,"units");if(!Qf(s))return{ok:!1,error:"units_dir_not_found",details:{stage:e.stage}};let o=K0(s).filter(u=>u.endsWith(".md")).find(u=>{let l=u.replace(/\.md$/,"");if(l===e.unit||l.startsWith(`${e.unit}-`))return!0;let d=e.unit.match(/^(?:unit-)?(\d+)$/i);if(d){let f=Number.parseInt(d[1],10),p=l.match(/^unit-(\d+)-/);if(p&&Number.parseInt(p[1],10)===f)return!0}return!1});if(!o)return{ok:!1,error:"unit_not_found",details:{stage:e.stage,unit:e.unit}};let a=Ao(s,o);if(Array.isArray(e.iterations)&&e.iterations.length===0)return{ok:!1,error:"use_haiku_unit_reset",details:{message:"Passing iterations: [] does NOT reset a unit \u2014 set_unit_iterations with no entries synthesizes a COMPLETED state (one advance per hat). To return a unit to pending (clear iterations, discard its worktree), use haiku_unit_reset { intent, stage, unit }."}};let c;if(e.iterations&&e.iterations.length>0){let u=new Date().toISOString();c=e.iterations.map(l=>({hat:l.hat,result:l.result,at:l.at||u}))}else{let u=to(i,e.stage);if(u.length===0)return{ok:!1,error:"no_hats_defined_for_stage",details:{studio:i,stage:e.stage}};let l=new Date().toISOString();c=u.map(d=>({hat:d,result:"advance",at:l}))}return je(a,"iterations",c),{ok:!0,unit_file:o,iterations_written:c.length}}function Y0(e){let t=fe(e.slug),n=e.stage?Ao(t,"stages",e.stage,"feedback"):Ao(t,"feedback");if(!Qf(n))return{ok:!1,error:"feedback_dir_not_found"};let r=e.feedbackId.match(/^(?:FB-)?(\d+)/i);if(!r)return{ok:!1,error:"invalid_feedback_id_shape"};let i=Number.parseInt(r[1],10),s=K0(n).filter(c=>c.endsWith(".md")).find(c=>{let u=c.match(/^(\d+)-/);return u&&Number.parseInt(u[1],10)===i});if(!s)return{ok:!1,error:"feedback_not_found"};let o=Ao(n,s),a=[];for(let[c,u]of Object.entries(e.patch))je(o,c,u),a.push(c);return{ok:!0,written_keys:a}}function b5(e){let t=fe(e.slug),n=Ao(t,"intent.md");if(!Qf(n))return{ok:!1,error:"intent_not_found"};let i=re(bv(n,"utf8")).data.studio||"";return i?{ok:!0,position:Zf({slug:e.slug,intentDir:t,studio:i})}:{ok:!1,error:"intent_missing_studio"}}var VEt,jSe=v(()=>{"use strict";VEt=_e(sn(),1);ze();_o();hc();GL();Wf()});import{existsSync as T5,readdirSync as KEt,readFileSync as ZEt}from"node:fs";import{join as v5}from"node:path";function xZn(){let e=v5(we(),"intents");if(!T5(e))return[];let t=[];for(let n of KEt(e,{withFileTypes:!0})){if(!n.isDirectory())continue;let r=v5(e,n.name,"intent.md");if(T5(r))try{let i=re(ZEt(r,"utf8")).data;t.push({slug:n.name,title:typeof i.title=="string"?i.title:null,studio:typeof i.studio=="string"?i.studio:null,mode:typeof i.mode=="string"?i.mode:null,status:typeof i.status=="string"?i.status:null,archived:i.archived===!0,created_at:typeof i.created_at=="string"?i.created_at:null})}catch{t.push({slug:n.name,title:null,studio:null,mode:null,status:null,archived:!1,created_at:null})}}return t.sort((n,r)=>n.slug.localeCompare(r.slug))}function OZn(e){if(!gn(e))return{ok:!1,error:"invalid_slug"};let t=fe(e),n=v5(t,"intent.md");if(!T5(n))return{ok:!1,error:"intent_not_found"};let r=re(ZEt(n,"utf8")).data,i=v5(t,"stages"),s=T5(i)?KEt(i,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name).sort():[];return{ok:!0,intent:{slug:e,title:typeof r.title=="string"?r.title:null,studio:typeof r.studio=="string"?r.studio:null,mode:typeof r.mode=="string"?r.mode:null,status:typeof r.status=="string"?r.status:null,archived:r.archived===!0,created_at:typeof r.created_at=="string"?r.created_at:null,frontmatter:r,stages_present:s}}}function YEt(e){e.get("/debug",async(t,n)=>{n.type("text/html; charset=utf-8").send(qd)}),e.get("/debug/:slug",async(t,n)=>{n.type("text/html; charset=utf-8").send(qd)}),e.get("/api/debug/intents",async(t,n)=>{Bn(t,n,null)&&n.send({intents:xZn()})}),e.get("/api/debug/intents/:intent",async(t,n)=>{if(!Bn(t,n,null))return;let r=OZn(t.params.intent);if(!r.ok){n.status(r.error==="intent_not_found"?404:400).send({error:r.error});return}n.send(r.intent)}),e.get("/api/debug/intents/:intent/cursor",async(t,n)=>{if(!Bn(t,n,null))return;let r=t.params.intent;if(!gn(r)){n.status(400).send({error:"invalid_slug"});return}try{let i=b5({slug:r});if(!("ok"in i)||!i.ok){n.status(404).send(i);return}n.send(i)}catch(i){n.status(500).send({ok:!1,error:"preview_cursor_threw",detail:i instanceof Error?i.message:String(i)})}}),e.post("/api/debug/intents/:intent/ops/:op",async(t,n)=>{let r=t.params.intent,i=t.params.op;if(!gn(r)){n.status(400).send({error:"invalid_slug"});return}if(!V0(t,n,r))return;if(!WEt.has(i)){n.status(400).send({error:"unsupported_op",message:`op must be one of: ${[...WEt].join(", ")}`});return}let s=t.body??{};try{let o;switch(i){case"force_stage_complete":{let a=typeof s.stage=="string"?s.stage:"";if(!a){n.status(400).send({error:"missing_stage"});return}if(!gn(a)){n.status(400).send({error:"invalid_stage"});return}o=S5({slug:r,targetStage:a,closeOpenFeedback:s.close_open_feedback===!0});break}case"set_intent_field":{if(s.fields&&typeof s.fields=="object"){let c=s.fields,u=[];for(let[l,d]of Object.entries(c))u.push({field:l,result:Z0({slug:r,field:l,value:d})});o={batch:!0,count:u.length,results:u};break}let a=typeof s.field=="string"?s.field:"";if(!a){n.status(400).send({error:"missing_field"});return}o=Z0({slug:r,field:a,value:s.value});break}case"reset_drift":{o=_5({slug:r});break}case"set_unit_iterations":{let a=typeof s.stage=="string"?s.stage:"",c=typeof s.unit=="string"?s.unit:"";if(!a||!c){n.status(400).send({error:"missing_stage_or_unit"});return}if(!gn(a)){n.status(400).send({error:"invalid_stage"});return}if(!gn(c)){n.status(400).send({error:"invalid_unit"});return}let u=Array.isArray(s.iterations)?s.iterations:void 0;o=E5({slug:r,stage:a,unit:c,iterations:u});break}case"mutate_feedback":{let a=typeof s.stage=="string"&&s.stage?s.stage:null;if(a&&!gn(a)){n.status(400).send({error:"invalid_stage"});return}let c=s.patch&&typeof s.patch=="object"?s.patch:{};if(Array.isArray(s.feedback_ids)&&s.feedback_ids.length>0){let l=s.feedback_ids,d=[];for(let f of l){if(typeof f!="string"||!f){n.status(400).send({error:"invalid_feedback_id",message:"feedback_ids entries must be non-empty strings"});return}d.push({feedback_id:f,result:Y0({slug:r,stage:a,feedbackId:f,patch:c})})}o={batch:!0,count:d.length,results:d};break}let u=typeof s.feedback_id=="string"?s.feedback_id:"";if(!u){n.status(400).send({error:"missing_feedback_id"});return}o=Y0({slug:r,stage:a,feedbackId:u,patch:c});break}default:n.status(400).send({error:"unhandled_op"});return}n.send({op:i,intent:r,result:o})}catch(o){n.status(500).send({error:"debug_op_threw",op:i,detail:o instanceof Error?o.message:String(o)})}})}var WEt,JEt=v(()=>{"use strict";y5();jSe();ze();Ug();Ev();WEt=new Set(["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations"])});function XEt(e,t){e.get("/health",async(n,r)=>t()?"ok":(r.status(503),"starting")),e.get("/api/version",async(n,r)=>(r.header("Cache-Control","no-store"),{mcp_version:rd,plugin_version:NZn})),e.get("/",async(n,r)=>{r.type("text/html; charset=utf-8").send(qd)}),e.setNotFoundHandler((n,r)=>{if(n.method==="GET"&&(n.url==="/"||n.url.startsWith("/review/")||n.url.startsWith("/question/")||n.url.startsWith("/direction/")||n.url.startsWith("/picker/"))){r.type("text/html; charset=utf-8").send(qd);return}if(n.method==="OPTIONS"){r.status(204).send();return}r.status(404).send("Not Found")}),e.setErrorHandler((n,r,i)=>{let s=n.code,o=n.statusCode??500,a=n instanceof Error?n.message:typeof n=="string"?n:"";try{console.error(JSON.stringify({level:o>=500?"error":"warn",event:"http_error_thrown",reqId:r.id,method:r.method,url:r.url,statusCode:o,error:a,code:s}))}catch{}if(s==="FST_ERR_CTP_INVALID_JSON"||s==="FST_ERR_CTP_INVALID_JSON_BODY"||n instanceof SyntaxError||o===400&&/JSON|json|Unexpected token/i.test(a)){let l={error:"validation_failed",issues:[{code:"invalid_json",message:a||"Request body is not valid JSON",path:[]}]};i.status(400).send(l);return}if(o===413){let u=(r.url??"/").split("?")[0],l=r.method==="POST"&&/^\/api\/feedback\/[^/]+\/[^/]+\/?$/.test(u)?aD:oD;i.status(413).send({error:"payload_too_large",max_bytes:l});return}i.status(o).send({error:"internal_error",message:a})})}var NZn,QEt=v(()=>{"use strict";yT();y5();ab();NZn=yS()});function FSe(e){return e.match(/\/(?:api\/session|review|question|direction|files|mockups|wireframe|stage-artifacts|question-image)\/([^/]+)/)?.[1]??null}async function $Et(e,t,n){if(t.statusCode>=400||t.statusCode===204||t.statusCode===205||t.statusCode===304)return n;let r=FSe(e.url.split("?")[0]);if(!r||!p1(r))return n;let i=t.getHeader("content-type")??"application/octet-stream",s;if(typeof n=="string")s=Buffer.from(n,"utf8");else if(Buffer.isBuffer(n))s=n;else if(n instanceof Uint8Array)s=Buffer.from(n);else if(n&&typeof n=="object")s=Buffer.from(JSON.stringify(n),"utf8");else return n;let o=PSe(r,s);return o?(t.header("Content-Type","application/octet-stream"),t.header("X-Original-Content-Type",i),t.header("X-E2E-Encrypted","1"),o):n}var ebt=v(()=>{"use strict";zh()});function ea(e){try{let t={ts:new Date().toISOString(),reqId:e.reqId,action:e.action,status:e.status,...e.intent?{intent:e.intent}:{},...e.stage?{stage:e.stage}:{},...e.feedbackId?{feedbackId:e.feedbackId}:{},...e.detail?{detail:e.detail}:{}};process.stderr.write(`[haiku-mcp][feedback] ${JSON.stringify(t)} -`)}catch{}}var HSe=v(()=>{"use strict"});import{readFile as PZn}from"node:fs/promises";import{dirname as A5,relative as CZn,resolve as BSe,sep as qSe}from"node:path";function GSe(e){return e.length>0&&!/^[a-z][a-z0-9+.-]*:/i.test(e)&&!e.startsWith("//")&&!e.startsWith("/")&&!e.startsWith("#")}function nbt(e,t){let n=t.endsWith(qSe)?t:t+qSe;return e===t||e.startsWith(n)}function tbt(e,t,n){return e.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,(r,i,s)=>{let o=s.trim();return GSe(o)?`url("${CZn(n,BSe(t,o)).split(qSe).join("/")}")`:r})}async function rbt(e,t,n,r=0){if(r>3)return null;let i;try{i=await PZn(e,"utf-8")}catch{return null}let s=A5(e),o=/@import\s+(?:url\(\s*)?["']?([^"')\s]+)["']?\s*\)?\s*;?/gi,a="",c=0;for(let u of i.matchAll(o)){let l=u[1]?.trim()??"",d=u.index??0;if(!GSe(l))continue;let f=BSe(s,l);if(!nbt(f,t))continue;let p=await rbt(f,t,n,r+1);p!=null&&(a+=tbt(i.slice(c,d),s,n),a+=p,c=d+u[0].length)}return a+=tbt(i.slice(c),s,n),a}async function R5(e,t,n){if(!/]*>/gi,s="",o=0;for(let a of e.matchAll(i)){let c=a[0],u=a.index??0,l=/\brel\s*=\s*["']?stylesheet["']?/i.test(c),f=/\bhref\s*=\s*["']([^"']+)["']/i.exec(c)?.[1];if(!l||!f||!GSe(f))continue;let p=BSe(r,f);if(!nbt(p,n))continue;let h=await rbt(p,n,r);h!=null&&(s+=e.slice(o,u),s+=``,o=u+c.length)}return s+=e.slice(o),s}function ibt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=A5(e);for(let i=0;i{"use strict"});import{readFile as sbt,realpath as VSe}from"node:fs/promises";import{extname as obt,resolve as WSe}from"node:path";async function KSe(e,t){let n=WSe(e),r=WSe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await VSe(r).catch(()=>null),s=await VSe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function y1(e,t,n){return Mct.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function ZSe(e,t){try{let n=await sbt(t),r=obt(t).toLowerCase(),i=MZn[r],s=DZn.has(r);e.header("X-Content-Type-Options","nosniff"),i&&!s?e.header("Content-Type",i):(e.header("Content-Type","application/octet-stream"),e.header("Content-Disposition","attachment")),e.send(n)}catch{e.status(404).send("Not found")}}async function YSe(e,t,n){if(!LZn.has(obt(t).toLowerCase()))return ZSe(e,t);let r;try{let i=await sbt(t,"utf-8"),s=await VSe(n).catch(()=>WSe(n));r=await R5(i,t,s)}catch{e.status(404).send("Not found");return}e.header("X-Content-Type-Options","nosniff"),e.header("Content-Type","application/octet-stream"),e.header("Content-Disposition","attachment"),e.send(r)}async function J0(e,t,n){let r=await KSe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return YSe(e,r.path,t)}var MZn,DZn,LZn,JSe=v(()=>{"use strict";yT();zSe();MZn={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".txt":"text/plain; charset=utf-8",".md":"text/markdown; charset=utf-8",".json":"application/json; charset=utf-8"},DZn=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);LZn=new Set([".html",".htm"])});import{join as UZn}from"node:path";function abt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Oa(r)){n.status(404).send({error:"Intent not found"});return}if(!Vh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!D_.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${D_.join(", ")}`});return}let o=yo(r,i);s&&(o=o.filter(c=>c.status===s));let a={intent:r,stage:i,count:o.length,items:o.map(c=>({feedback_id:c.id,title:c.title,body:c.body,status:c.status,origin:c.origin,severity:c.severity,author:c.author,author_type:c.author_type,created_at:c.created_at,iteration:c.visit,visit:c.visit,source_ref:c.source_ref??null,closed_by:c.closed_by??null,resolution:c.resolution,replies:c.replies.map(u=>({author:u.author,author_type:u.author_type,body:u.body,created_at:u.created_at})),inline_anchor:c.inline_anchor??null,closure_reply:c.closure_reply??void 0,closure_reply_unread:c.closure_reply_unread,iterations:c.iterations,scope:"stage"}))};n.send(a)}),e.get("/api/feedback-intent/:intent",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Oa(r)){n.status(404).send({error:"Intent not found"});return}let i=t.query?.status;if(i&&!D_.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${D_.join(", ")}`});return}let s=yo(r,"");i&&(s=s.filter(a=>a.status===i));let o={intent:r,stage:"",count:s.length,items:s.map(a=>({feedback_id:a.id,title:a.title,body:a.body,status:a.status,origin:a.origin,severity:a.severity,author:a.author,author_type:a.author_type,created_at:a.created_at,iteration:a.visit,visit:a.visit,source_ref:a.source_ref??null,closed_by:a.closed_by??null,resolution:a.resolution,replies:a.replies.map(c=>({author:c.author,author_type:c.author_type,body:c.body,created_at:c.created_at})),inline_anchor:a.inline_anchor??null,closure_reply:a.closure_reply??void 0,closure_reply_unread:a.closure_reply_unread,iterations:a.iterations,scope:"intent"}))};n.send(o)}),e.get("/api/feedback-attachment/:intent/:stage/:filename",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,stage:i,filename:s}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"invalid_slug"});return}if(!/^[A-Za-z0-9._-]+\.(png|jpg|jpeg|webp)$/.test(s)){n.status(400).send({error:"invalid_filename"});return}let o=UZn(fe(r),"stages",i,"feedback");await J0(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:aD},async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Oa(r)){n.status(404).send({error:"Intent not found"});return}if(!W0(t,n,r))return;if(!Vh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=L_(n,t.body,Ude);if(!s.ok)return;let o=s.data.inline_anchor,a=iv(s.data.body),c=fc(r,i,{title:s.data.title,body:a,origin:s.data.origin,author:"user",source_ref:s.data.source_ref??null,resolution:s.data.resolution??null,attachmentDataUrl:s.data.attachment_data_url??null,inlineAnchor:o?{selectedText:o.selected_text,paragraph:o.paragraph,location:o.location,...o.comment_id?{commentId:o.comment_id}:{},...o.file_path?{filePath:o.file_path}:{},...o.content_sha?{contentSha:o.content_sha}:{}}:null});Dg(`feedback: create ${c.feedback_id} in ${i}`);let u={feedback_id:c.feedback_id,file:c.file,status:"pending",message:`Feedback ${c.feedback_id} created.`};ea({reqId:t.id,action:"feedback.create",status:201,intent:r,stage:i,feedbackId:c.feedback_id}),n.status(201).send(u)}),e.put("/api/feedback/:intent/:stage/:feedbackId",{bodyLimit:oK},async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Oa(r)){n.status(404).send({error:"Intent not found"});return}if(!W0(t,n,r))return;let o=L_(n,t.body,jde);if(!o.ok)return;if(!Vh(r,i)){n.status(404).send({error:"Stage not found"});return}let a=Fye(r,i,s,{status:o.data.status,closed_by:o.data.closed_by,resolution:o.data.resolution},"human");if(!a.ok){if(a.error.includes("not found")){ea({reqId:t.id,action:"feedback.update",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ea({reqId:t.id,action:"feedback.update",status:400,intent:r,stage:i,feedbackId:s,detail:a.error}),n.status(400).send({error:a.error});return}Dg(`feedback: update ${s} in ${i}`);let c={feedback_id:s,updated_fields:a.updated_fields,message:`Feedback ${s} updated.`};ea({reqId:t.id,action:"feedback.update",status:200,intent:r,stage:i,feedbackId:s,detail:a.updated_fields.join(",")}),n.send(c)}),e.post("/api/feedback/:intent/:stage/:feedbackId/dismiss-reply",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Oa(r)){n.status(404).send({error:"Intent not found"});return}if(!Vh(r,i)){n.status(404).send({error:"Stage not found"});return}if(!W0(t,n,r))return;let o=qye(r,i,s);if(!o){n.status(404).send({error:i?`Feedback '${s}' not found in stage '${i}'`:`Feedback '${s}' not found (intent-scope)`});return}Dg(`feedback: dismiss reply ${s}${i?` in ${i}`:""}`),n.send({feedback_id:s,dismissed:!o.already_dismissed,message:o.already_dismissed?`Feedback ${s} reply was already dismissed.`:`Feedback ${s} reply dismissed.`})}),e.delete("/api/feedback/:intent/:stage/:feedbackId",async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Oa(r)){n.status(404).send({error:"Intent not found"});return}if(!W0(t,n,r))return;if(!Vh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=YZ(r,i,s,"human");if(!o.ok){if(o.error.includes("not found")){ea({reqId:t.id,action:"feedback.delete",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}if(o.error.includes("cannot delete")){ea({reqId:t.id,action:"feedback.delete",status:409,intent:r,stage:i,feedbackId:s,detail:"cannot_delete"}),n.status(409).send({error:o.error.replace(/^Error:\s*/,"")});return}ea({reqId:t.id,action:"feedback.delete",status:400,intent:r,stage:i,feedbackId:s,detail:o.error}),n.status(400).send({error:o.error});return}Dg(`feedback: delete ${s} from ${i}`);let a={feedback_id:s,deleted:!0,message:`Feedback ${s} deleted.`};ea({reqId:t.id,action:"feedback.delete",status:200,intent:r,stage:i,feedbackId:s}),n.send(a)}),e.post("/api/feedback/:intent/:stage/:feedbackId/replies",{bodyLimit:oK},async(t,n)=>{if(!Bn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Oa(r)){n.status(404).send({error:"Intent not found"});return}if(!W0(t,n,r))return;if(!Vh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=L_(n,t.body,Fde);if(!o.ok)return;let a=iv(o.data.body),c=Hye(r,i,s,{author:"user",author_type:"human",body:a},{close_as_answered:o.data.close_as_answered===!0});if(!c.ok){if(c.error.includes("not found")){ea({reqId:t.id,action:"feedback.reply",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ea({reqId:t.id,action:"feedback.reply",status:400,intent:r,stage:i,feedbackId:s,detail:c.error}),n.status(400).send({error:c.error});return}Dg(`feedback: reply on ${s} in ${i}`);let u={feedback_id:s,reply_index:c.reply_index,status:c.status,message:`Reply added to ${s}.`};ea({reqId:t.id,action:"feedback.reply",status:201,intent:r,stage:i,feedbackId:s,detail:`reply_index=${c.reply_index}`}),n.status(201).send(u)})}var cbt=v(()=>{"use strict";yT();Zge();ze();HSe();Ug();JSe();Ev()});import{realpath as ubt}from"node:fs/promises";import{dirname as lbt,join as jZn,resolve as dbt}from"node:path";function fbt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Bn(t,n,r)||y1(n,r,i))return;let s=on(r);if(!s){n.status(404).send("Session not found");return}let o=s.session_type==="review"?s.intent_dir:null,a=o?dbt(lbt(lbt(o)),"knowledge"):null,c=[o,a].filter(l=>l!==null);if(c.length===0){n.status(404).send("Not found");return}let u=!1;for(let l of c){let d=await KSe(l,i);if(!d.ok){u=!0;continue}return YSe(n,d.path,l)}if(u){n.status(403).send({error:"forbidden_path_traversal"});return}n.status(404).send("Not found")}),e.get("/mockups/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Bn(t,n,r)||y1(n,r,i))return;let s=on(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return J0(n,jZn(s.intent_dir,"mockups"),i)}),e.get("/wireframe/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Bn(t,n,r)||y1(n,r,i))return;let s=on(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return J0(n,s.intent_dir,i)}),e.get("/stage-artifacts/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Bn(t,n,r)||y1(n,r,i))return;let s=on(r);if(!s||s.session_type!=="review"&&s.session_type!=="view"){n.status(404).send("Session not found");return}return J0(n,s.intent_dir,i)}),e.get("/question-image/:sessionId/:index",async(t,n)=>{let{sessionId:r}=t.params,i=Number.parseInt(t.params.index,10);if(!Bn(t,n,r))return;let s=on(r);if(!s||s.session_type!=="question"){n.status(404).send("Session not found");return}let o=s.imagePaths??[];if(i<0||i>=o.length){n.status(404).send("Image index out of range");return}let a=o[i];if(!a.startsWith("/")){n.status(403).send("Forbidden");return}let c=s.imageBaseDirs?.[i];if(c)try{let u=await ubt(a).catch(()=>null),l=await ubt(c).catch(()=>dbt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return ZSe(n,a)})}var pbt=v(()=>{"use strict";Hu();Ug();JSe()});import{EventEmitter as FZn}from"node:events";function hbt(e,t){let n=`intent:${e}`;return w5.on(n,t),()=>{w5.off(n,t)}}function Bd(e,t){w5.emit(`intent:${e}`,t)}var w5,X0=v(()=>{"use strict";w5=new FZn;w5.setMaxListeners(200)});import{existsSync as mbt,readdirSync as HZn,readFileSync as qZn}from"node:fs";import{join as I5}from"node:path";function k5(e,t){return t?I5(t,"intents",e):fe(e)}function GZn(e,t){let n=I5(k5(e,t),"intent.md");if(!mbt(n))return null;let{data:r}=re(qZn(n,"utf8"));return r}function gbt(e,t){let n=GZn(e,t);if(!n)return null;let r=n.studio||"";if(!r||n.composite)return null;let i=or(n,r),s=i.length>0?i:So(r);if(s.length===0)return{studio:r,stage:"",phase:""};let o=typeof n.mode=="string"&&n.mode.length>0?n.mode:"continuous",c=_s(e,r,k5(e,t))??s[s.length-1],l=lv({slug:e,studio:r,stage:c,intentDir:k5(e,t),intentMode:o}).phase??"",d=BZn.has(l)?l:"",f;if(d==="elaborate"){let p=I5(k5(e,t),"stages",c),h=I5(p,"units"),m=mbt(h)?HZn(h).filter(g=>g.endsWith(".md")).map(g=>g.replace(/\.md$/,"")):[],y=b0({slug:e,studio:r,stage:c,stageDir:p,unitNames:m,mode:o});y.length>0&&(f=Kge(y))}return{studio:r,stage:c,phase:d,...f?{pending_signals:f}:{}}}var BZn,ybt=v(()=>{"use strict";_o();hc();GL();ze();BZn=new Set(["elaborate","execute","review","gate"])});import{execFileSync as zZn}from"node:child_process";function x5(e){try{return zZn(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function VZn(e){if(!e)return null;let t="",n="",r=e.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(r)t=r[1],n=r[2];else try{let c=new URL(e);t=c.hostname,n=c.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let i=n.split("/").filter(Boolean);if(i.length<2)return null;let s=i[0],o=i.slice(1).join("/");return{host:t==="github.com"?"github.com":t==="gitlab.com"?"gitlab.com":"other",owner:s,repo:o,rawUrl:e}}function WZn(e,t){if(!e)return null;for(let[n,r,i]of[["refs/pull/*/head","github-pr-ref","github.com"],["refs/merge-requests/*/head","gitlab-mr-ref","gitlab.com"]]){if(t.host!=="other"&&t.host!==i)continue;let s=x5(["git","ls-remote","origin",n]);if(s)for(let o of s.split(` -`)){let[a,c]=o.trim().split(/\s+/);if(a!==e)continue;let u=c?.match(/^refs\/(?:pull|merge-requests)\/(\d+)\/head$/);if(u)return{source:r,prNumber:Number(u[1])}}}return null}function KZn(e,t,n){return e.host==="github.com"&&t==="github-pr-ref"?`https://github.com/${e.owner}/${e.repo}/pull/${n}`:e.host==="gitlab.com"&&t==="gitlab-mr-ref"?`https://gitlab.com/${e.owner}/${e.repo}/-/merge_requests/${n}`:null}function ZZn(e){if(!Ae())return null;let t=`haiku/${e}/main`,n=x5(["git","rev-parse","--verify",t])||x5(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=x5(["git","remote","get-url","origin"]),i=VZn(r);if(!i)return null;let s=WZn(n,i);if(!s)return null;let o=KZn(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function _bt(e){let t=Date.now(),n=Sbt.get(e);if(n&&n.expiresAt>t)return n.value;let r=ZZn(e);return Sbt.set(e,{value:r,expiresAt:t+YZn}),r}var YZn,Sbt,Ebt=v(()=>{"use strict";xT();YZn=3e4,Sbt=new Map});var Tbt=w(O5=>{"use strict";var JZn=Symbol.for("react.transitional.element"),XZn=Symbol.for("react.fragment");function bbt(e,t,n){var r=null;if(n!==void 0&&(r=""+n),t.key!==void 0&&(r=""+t.key),"key"in t){n={};for(var i in t)i!=="key"&&(n[i]=t[i])}else n=t;return t=n.ref,{$$typeof:JZn,type:e,key:r,ref:t!==void 0?t:null,props:n}}O5.Fragment=XZn;O5.jsx=bbt;O5.jsxs=bbt});var Cbt=w(an=>{"use strict";var $Se=Symbol.for("react.transitional.element"),QZn=Symbol.for("react.portal"),$Zn=Symbol.for("react.fragment"),e5n=Symbol.for("react.strict_mode"),t5n=Symbol.for("react.profiler"),n5n=Symbol.for("react.consumer"),r5n=Symbol.for("react.context"),i5n=Symbol.for("react.forward_ref"),s5n=Symbol.for("react.suspense"),o5n=Symbol.for("react.memo"),kbt=Symbol.for("react.lazy"),a5n=Symbol.for("react.activity"),vbt=Symbol.iterator;function c5n(e){return e===null||typeof e!="object"?null:(e=vbt&&e[vbt]||e["@@iterator"],typeof e=="function"?e:null)}var Ibt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},xbt=Object.assign,Obt={};function $0(e,t,n){this.props=e,this.context=t,this.refs=Obt,this.updater=n||Ibt}$0.prototype.isReactComponent={};$0.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};$0.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Nbt(){}Nbt.prototype=$0.prototype;function e_e(e,t,n){this.props=e,this.context=t,this.refs=Obt,this.updater=n||Ibt}var t_e=e_e.prototype=new Nbt;t_e.constructor=e_e;xbt(t_e,$0.prototype);t_e.isPureReactComponent=!0;var Abt=Array.isArray;function QSe(){}var vi={H:null,A:null,T:null,S:null},Pbt=Object.prototype.hasOwnProperty;function n_e(e,t,n){var r=n.ref;return{$$typeof:$Se,type:e,key:t,ref:r!==void 0?r:null,props:n}}function u5n(e,t){return n_e(e.type,t,e.props)}function r_e(e){return typeof e=="object"&&e!==null&&e.$$typeof===$Se}function l5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var Rbt=/\/+/g;function XSe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?l5n(""+e.key):t.toString(36)}function d5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(QSe,QSe):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Q0(e,t,n,r,i){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(s){case"bigint":case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case $Se:case QZn:o=!0;break;case kbt:return o=e._init,Q0(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+XSe(e,0):r,Abt(i)?(n="",o!=null&&(n=o.replace(Rbt,"$&/")+"/"),Q0(i,t,n,"",function(u){return u})):i!=null&&(r_e(i)&&(i=u5n(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(Rbt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(Abt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(L,te){Object.defineProperty(r.prototype,L,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",te[0],te[1])}})}function t(L){return L===null||typeof L!="object"?null:(L=Re&&L[Re]||L["@@iterator"],typeof L=="function"?L:null)}function n(L,te){L=(L=L.constructor)&&(L.displayName||L.name)||"ReactClass";var Ce=L+"."+te;Te[Ce]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",te,L),Te[Ce]=!0)}function r(L,te,Ce){this.props=L,this.context=te,this.refs=ae,this.updater=Ce||K}function i(){}function s(L,te,Ce){this.props=L,this.context=te,this.refs=ae,this.updater=Ce||K}function o(){}function a(L){return""+L}function c(L){try{a(L);var te=!1}catch{te=!0}if(te){te=console;var Ce=te.error,ye=typeof Symbol=="function"&&Symbol.toStringTag&&L[Symbol.toStringTag]||L.constructor.name||"Object";return Ce.call(te,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",ye),a(L)}}function u(L){if(L==null)return null;if(typeof L=="function")return L.$$typeof===Ot?null:L.displayName||L.name||null;if(typeof L=="string")return L;switch(L){case X:return"Fragment";case C:return"Profiler";case q:return"StrictMode";case H:return"Suspense";case F:return"SuspenseList";case ie:return"Activity"}if(typeof L=="object")switch(typeof L.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),L.$$typeof){case G:return"Portal";case U:return L.displayName||"Context";case z:return(L._context.displayName||"Context")+".Consumer";case M:var te=L.render;return L=L.displayName,L||(L=te.displayName||te.name||"",L=L!==""?"ForwardRef("+L+")":"ForwardRef"),L;case W:return te=L.displayName||null,te!==null?te:u(L.type)||"Memo";case $:te=L._payload,L=L._init;try{return u(L(te))}catch{}}return null}function l(L){if(L===X)return"<>";if(typeof L=="object"&&L!==null&&L.$$typeof===$)return"<...>";try{var te=u(L);return te?"<"+te+">":"<...>"}catch{return"<...>"}}function d(){var L=Be.A;return L===null?null:L.getOwner()}function f(){return Error("react-stack-top-frame")}function p(L){if(Dn.call(L,"key")){var te=Object.getOwnPropertyDescriptor(L,"key").get;if(te&&te.isReactWarning)return!1}return L.key!==void 0}function h(L,te){function Ce(){tn||(tn=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",te))}Ce.isReactWarning=!0,Object.defineProperty(L,"key",{get:Ce,configurable:!0})}function m(){var L=u(this.type);return Ju[L]||(Ju[L]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),L=this.props.ref,L!==void 0?L:null}function y(L,te,Ce,ye,at,In){var wt=Ce.ref;return L={$$typeof:B,type:L,key:te,props:Ce,_owner:ye},(wt!==void 0?wt:null)!==null?Object.defineProperty(L,"ref",{enumerable:!1,get:m}):Object.defineProperty(L,"ref",{enumerable:!1,value:null}),L._store={},Object.defineProperty(L._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(L,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(L,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:at}),Object.defineProperty(L,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:In}),Object.freeze&&(Object.freeze(L.props),Object.freeze(L)),L}function g(L,te){return te=y(L.type,te,L.props,L._owner,L._debugStack,L._debugTask),L._store&&(te._store.validated=L._store.validated),te}function E(L){S(L)?L._store&&(L._store.validated=1):typeof L=="object"&&L!==null&&L.$$typeof===$&&(L._payload.status==="fulfilled"?S(L._payload.value)&&L._payload.value._store&&(L._payload.value._store.validated=1):L._store&&(L._store.validated=1))}function S(L){return typeof L=="object"&&L!==null&&L.$$typeof===B}function _(L){var te={"=":"=0",":":"=2"};return"$"+L.replace(/[=:]/g,function(Ce){return te[Ce]})}function b(L,te){return typeof L=="object"&&L!==null&&L.key!=null?(c(L.key),_(""+L.key)):te.toString(36)}function T(L){switch(L.status){case"fulfilled":return L.value;case"rejected":throw L.reason;default:switch(typeof L.status=="string"?L.then(o,o):(L.status="pending",L.then(function(te){L.status==="pending"&&(L.status="fulfilled",L.value=te)},function(te){L.status==="pending"&&(L.status="rejected",L.reason=te)})),L.status){case"fulfilled":return L.value;case"rejected":throw L.reason}}throw L}function A(L,te,Ce,ye,at){var In=typeof L;(In==="undefined"||In==="boolean")&&(L=null);var wt=!1;if(L===null)wt=!0;else switch(In){case"bigint":case"string":case"number":wt=!0;break;case"object":switch(L.$$typeof){case B:case G:wt=!0;break;case $:return wt=L._init,A(wt(L._payload),te,Ce,ye,at)}}if(wt){wt=L,at=at(wt);var dn=ye===""?"."+b(wt,0):ye;return Se(at)?(Ce="",dn!=null&&(Ce=dn.replace(Ri,"$&/")+"/"),A(at,te,Ce,"",function(ta){return ta})):at!=null&&(S(at)&&(at.key!=null&&(wt&&wt.key===at.key||c(at.key)),Ce=g(at,Ce+(at.key==null||wt&&wt.key===at.key?"":(""+at.key).replace(Ri,"$&/")+"/")+dn),ye!==""&&wt!=null&&S(wt)&&wt.key==null&&wt._store&&!wt._store.validated&&(Ce._store.validated=2),at=Ce),te.push(at)),1}if(wt=0,dn=ye===""?".":ye+":",Se(L))for(var bt=0;bt`,o=u+c.length)}return s+=e.slice(o),s}function Ubt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=H5(e);for(let i=0;i{"use strict"});import{readFile as Fbt,realpath as fEe}from"node:fs/promises";import{extname as jbt,resolve as pEe}from"node:path";async function hEe(e,t){let n=pEe(e),r=pEe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await fEe(r).catch(()=>null),s=await fEe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function k1(e,t,n){return lut.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function mEe(e,t){try{let n=await Fbt(t),r=jbt(t).toLowerCase(),i=M5n[r],s=D5n.has(r);e.header("X-Content-Type-Options","nosniff"),i&&!s?e.header("Content-Type",i):(e.header("Content-Type","application/octet-stream"),e.header("Content-Disposition","attachment")),e.send(n)}catch{e.status(404).send("Not found")}}async function gEe(e,t,n){if(!L5n.has(jbt(t).toLowerCase()))return mEe(e,t);let r;try{let i=await Fbt(t,"utf-8"),s=await fEe(n).catch(()=>pEe(n));r=await q5(i,t,s)}catch{e.status(404).send("Not found");return}e.header("X-Content-Type-Options","nosniff"),e.header("Content-Type","application/octet-stream"),e.header("Content-Disposition","attachment"),e.send(r)}async function nx(e,t,n){let r=await hEe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return gEe(e,r.path,t)}var M5n,D5n,L5n,yEe=v(()=>{"use strict";bT();dEe();M5n={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".txt":"text/plain; charset=utf-8",".md":"text/markdown; charset=utf-8",".json":"application/json; charset=utf-8"},D5n=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);L5n=new Set([".html",".htm"])});import{join as U5n}from"node:path";function Hbt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!La(r)){n.status(404).send({error:"Intent not found"});return}if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!HE.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${HE.join(", ")}`});return}let o=Us(r,i);s&&(o=o.filter(c=>c.status===s));let a={intent:r,stage:i,count:o.length,items:o.map(c=>({feedback_id:c.id,title:c.title,body:c.body,status:c.status,origin:c.origin,severity:c.severity,author:c.author,author_type:c.author_type,created_at:c.created_at,iteration:c.visit,visit:c.visit,source_ref:c.source_ref??null,closed_by:c.closed_by??null,resolution:c.resolution,replies:c.replies.map(u=>({author:u.author,author_type:u.author_type,body:u.body,created_at:u.created_at})),inline_anchor:c.inline_anchor??null,closure_reply:c.closure_reply??void 0,closure_reply_unread:c.closure_reply_unread,iterations:c.iterations,scope:"stage"}))};n.send(a)}),e.get("/api/feedback-intent/:intent",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!La(r)){n.status(404).send({error:"Intent not found"});return}let i=t.query?.status;if(i&&!HE.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${HE.join(", ")}`});return}let s=Us(r,"");i&&(s=s.filter(a=>a.status===i));let o={intent:r,stage:"",count:s.length,items:s.map(a=>({feedback_id:a.id,title:a.title,body:a.body,status:a.status,origin:a.origin,severity:a.severity,author:a.author,author_type:a.author_type,created_at:a.created_at,iteration:a.visit,visit:a.visit,source_ref:a.source_ref??null,closed_by:a.closed_by??null,resolution:a.resolution,replies:a.replies.map(c=>({author:c.author,author_type:c.author_type,body:c.body,created_at:c.created_at})),inline_anchor:a.inline_anchor??null,closure_reply:a.closure_reply??void 0,closure_reply_unread:a.closure_reply_unread,iterations:a.iterations,scope:"intent"}))};n.send(o)}),e.get("/api/feedback-attachment/:intent/:stage/:filename",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,filename:s}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"invalid_slug"});return}if(!/^[A-Za-z0-9._-]+\.(png|jpg|jpeg|webp)$/.test(s)){n.status(400).send({error:"invalid_filename"});return}let o=U5n(pe(r),"stages",i,"feedback");await nx(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:mD},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!La(r)){n.status(404).send({error:"Intent not found"});return}if(!Q0(t,n,r))return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=qE(n,t.body,tfe);if(!s.ok)return;let o=s.data.inline_anchor,a=cv(s.data.body),c=Qo(r,i,{title:s.data.title,body:a,origin:s.data.origin,author:"user",source_ref:s.data.source_ref??null,resolution:s.data.resolution??null,attachmentDataUrl:s.data.attachment_data_url??null,inlineAnchor:o?{selectedText:o.selected_text,paragraph:o.paragraph,location:o.location,...o.comment_id?{commentId:o.comment_id}:{},...o.file_path?{filePath:o.file_path}:{},...o.content_sha?{contentSha:o.content_sha}:{}}:null});Fg(`feedback: create ${c.feedback_id} in ${i}`);let u={feedback_id:c.feedback_id,file:c.file,status:"pending",message:`Feedback ${c.feedback_id} created.`};ta({reqId:t.id,action:"feedback.create",status:201,intent:r,stage:i,feedbackId:c.feedback_id}),n.status(201).send(u)}),e.put("/api/feedback/:intent/:stage/:feedbackId",{bodyLimit:_K},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!La(r)){n.status(404).send({error:"Intent not found"});return}if(!Q0(t,n,r))return;let o=qE(n,t.body,nfe);if(!o.ok)return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let a=oSe(r,i,s,{status:o.data.status,closed_by:o.data.closed_by,resolution:o.data.resolution},"human");if(!a.ok){if(a.error.includes("not found")){ta({reqId:t.id,action:"feedback.update",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ta({reqId:t.id,action:"feedback.update",status:400,intent:r,stage:i,feedbackId:s,detail:a.error}),n.status(400).send({error:a.error});return}Fg(`feedback: update ${s} in ${i}`);let c={feedback_id:s,updated_fields:a.updated_fields,message:`Feedback ${s} updated.`};ta({reqId:t.id,action:"feedback.update",status:200,intent:r,stage:i,feedbackId:s,detail:a.updated_fields.join(",")}),n.send(c)}),e.post("/api/feedback/:intent/:stage/:feedbackId/dismiss-reply",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!La(r)){n.status(404).send({error:"Intent not found"});return}if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}if(!Q0(t,n,r))return;let o=cSe(r,i,s);if(!o){n.status(404).send({error:i?`Feedback '${s}' not found in stage '${i}'`:`Feedback '${s}' not found (intent-scope)`});return}Fg(`feedback: dismiss reply ${s}${i?` in ${i}`:""}`),n.send({feedback_id:s,dismissed:!o.already_dismissed,message:o.already_dismissed?`Feedback ${s} reply was already dismissed.`:`Feedback ${s} reply dismissed.`})}),e.delete("/api/feedback/:intent/:stage/:feedbackId",async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!La(r)){n.status(404).send({error:"Intent not found"});return}if(!Q0(t,n,r))return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=d5(r,i,s,"human");if(!o.ok){if(o.error.includes("not found")){ta({reqId:t.id,action:"feedback.delete",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}if(o.error.includes("cannot delete")){ta({reqId:t.id,action:"feedback.delete",status:409,intent:r,stage:i,feedbackId:s,detail:"cannot_delete"}),n.status(409).send({error:o.error.replace(/^Error:\s*/,"")});return}ta({reqId:t.id,action:"feedback.delete",status:400,intent:r,stage:i,feedbackId:s,detail:o.error}),n.status(400).send({error:o.error});return}Fg(`feedback: delete ${s} from ${i}`);let a={feedback_id:s,deleted:!0,message:`Feedback ${s} deleted.`};ta({reqId:t.id,action:"feedback.delete",status:200,intent:r,stage:i,feedbackId:s}),n.send(a)}),e.post("/api/feedback/:intent/:stage/:feedbackId/replies",{bodyLimit:_K},async(t,n)=>{if(!Gn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!La(r)){n.status(404).send({error:"Intent not found"});return}if(!Q0(t,n,r))return;if(!Xh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=qE(n,t.body,rfe);if(!o.ok)return;let a=cv(o.data.body),c=aSe(r,i,s,{author:"user",author_type:"human",body:a},{close_as_answered:o.data.close_as_answered===!0});if(!c.ok){if(c.error.includes("not found")){ta({reqId:t.id,action:"feedback.reply",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ta({reqId:t.id,action:"feedback.reply",status:400,intent:r,stage:i,feedbackId:s,detail:c.error}),n.status(400).send({error:c.error});return}Fg(`feedback: reply on ${s} in ${i}`);let u={feedback_id:s,reply_index:c.reply_index,status:c.status,message:`Reply added to ${s}.`};ta({reqId:t.id,action:"feedback.reply",status:201,intent:r,stage:i,feedbackId:s,detail:`reply_index=${c.reply_index}`}),n.status(201).send(u)})}var qbt=v(()=>{"use strict";bT();pye();ze();aEe();Hg();yEe();Av()});import{realpath as Bbt}from"node:fs/promises";import{dirname as Gbt,join as F5n,resolve as zbt}from"node:path";function Vbt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||k1(n,r,i))return;let s=$t(r);if(!s){n.status(404).send("Session not found");return}let o=s.session_type==="review"?s.intent_dir:null,a=o?zbt(Gbt(Gbt(o)),"knowledge"):null,c=[o,a].filter(l=>l!==null);if(c.length===0){n.status(404).send("Not found");return}let u=!1;for(let l of c){let d=await hEe(l,i);if(!d.ok){u=!0;continue}return gEe(n,d.path,l)}if(u){n.status(403).send({error:"forbidden_path_traversal"});return}n.status(404).send("Not found")}),e.get("/mockups/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||k1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return nx(n,F5n(s.intent_dir,"mockups"),i)}),e.get("/wireframe/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||k1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return nx(n,s.intent_dir,i)}),e.get("/stage-artifacts/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!Gn(t,n,r)||k1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"&&s.session_type!=="view"){n.status(404).send("Session not found");return}return nx(n,s.intent_dir,i)}),e.get("/question-image/:sessionId/:index",async(t,n)=>{let{sessionId:r}=t.params,i=Number.parseInt(t.params.index,10);if(!Gn(t,n,r))return;let s=$t(r);if(!s||s.session_type!=="question"){n.status(404).send("Session not found");return}let o=s.imagePaths??[];if(i<0||i>=o.length){n.status(404).send("Image index out of range");return}let a=o[i];if(!a.startsWith("/")){n.status(403).send("Forbidden");return}let c=s.imageBaseDirs?.[i];if(c)try{let u=await Bbt(a).catch(()=>null),l=await Bbt(c).catch(()=>zbt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return mEe(n,a)})}var Wbt=v(()=>{"use strict";Qc();Hg();yEe()});import{EventEmitter as j5n}from"node:events";function Kbt(e,t){let n=`intent:${e}`;return B5.on(n,t),()=>{B5.off(n,t)}}function zd(e,t){B5.emit(`intent:${e}`,t)}var B5,rx=v(()=>{"use strict";B5=new j5n;B5.setMaxListeners(200)});import{spawn as H5n}from"node:child_process";import{accessSync as q5n,constants as B5n,existsSync as G5n,mkdirSync as z5n,readdirSync as V5n,rmSync as W5n}from"node:fs";import{homedir as _Ee,tmpdir as K5n}from"node:os";import{join as na}from"node:path";function Y5n(e=process.platform,t=process.env,n=_Ee(),r=i=>{try{return V5n(i)}catch{return[]}}){let i=t.PLAYWRIGHT_BROWSERS_PATH&&t.PLAYWRIGHT_BROWSERS_PATH!=="0"?t.PLAYWRIGHT_BROWSERS_PATH:e==="darwin"?na(n,"Library","Caches","ms-playwright"):e==="win32"?na(n,"AppData","Local","ms-playwright"):na(n,".cache","ms-playwright"),s=r(i).filter(d=>/^chromium-\d+$/.test(d)).sort((d,f)=>{let p=Number.parseInt(d.slice(9),10);return Number.parseInt(f.slice(9),10)-p});if(s.length===0)return null;let o=na(i,s[0]);if(e==="win32")return na(o,"chrome-win","chrome.exe");if(e!=="darwin")return na(o,"chrome-linux","chrome");let a=r(o).find(d=>d.startsWith("chrome-mac"));if(!a)return null;let c=na(o,a),u=r(c).find(d=>d.endsWith(".app"));if(!u)return null;let l=u.slice(0,-4);return na(c,u,"Contents","MacOS",l)}function Z5n(e=process.platform,t=process.env){if(e==="darwin")return["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/Applications/Chromium.app/Contents/MacOS/Chromium","/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge","/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"];if(e==="win32"){let n=t.PROGRAMFILES||"C:\\Program Files",r=t["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)",i=t.LOCALAPPDATA||na(_Ee(),"AppData","Local");return[na(n,"Google\\Chrome\\Application\\chrome.exe"),na(r,"Google\\Chrome\\Application\\chrome.exe"),na(i,"Google\\Chrome\\Application\\chrome.exe"),na(n,"Microsoft\\Edge\\Application\\msedge.exe"),na(r,"Microsoft\\Edge\\Application\\msedge.exe"),na(n,"BraveSoftware\\Brave-Browser\\Application\\brave.exe")]}return["google-chrome","google-chrome-stable","chromium","chromium-browser","microsoft-edge","microsoft-edge-stable","brave-browser"]}function J5n(e,t,n){if(e.includes("/")||e.includes("\\"))return n(e)?e:null;let r=t.PATH||"";for(let i of r.split(":")){if(!i)continue;let s=na(i,e);if(n(s))return s}return null}function X5n(e=process.platform,t=process.env,n=i=>{try{return q5n(i,B5n.X_OK),!0}catch{return G5n(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=Y5n(e,t,_Ee(),r);if(s&&n(s))return s;for(let o of Z5n(e,t)){let a=J5n(o,t,n);if(a)return a}return null}function Jbt(){return SEe===void 0&&(SEe=X5n()),SEe}function Q5n(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:Jbt()!==null}function $5n(e,t){return[`--app=${e}`,`--user-data-dir=${t}`,"--start-maximized","--no-first-run","--no-default-browser-check","--no-service-autorun","--disable-background-networking","--disable-component-update","--disable-sync","--disable-extensions"]}function eZn(e,t=na(K5n(),"haiku-micro-app")){return na(t,e)}function Xbt(e,t={}){if(!Q5n())return!1;let n=Jbt();if(!n)return!1;let r=t.sessionId??`anon-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=wv.get(r);if(i&&i.child.exitCode===null&&!i.child.killed)return!0;let s=eZn(r);try{z5n(s,{recursive:!0})}catch{return!1}try{let o=H5n(n,$5n(e,s),{stdio:"ignore",detached:!0});return o.on("error",a=>{console.error(`[haiku-micro-app] launch error (${n}): ${a.message}. The review URL is still printed above \u2014 open it manually.`),wv.delete(r),EEe(s)}),wv.set(r,{child:o,profileDir:s}),tZn(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),EEe(s),!1}}function EEe(e){try{W5n(e,{recursive:!0,force:!0})}catch{}}function Ybt(e,t){let n=e.child.pid;if(n!==void 0)try{process.kill(-n,t);return}catch{}try{e.child.kill(t)}catch{}}function ix(e){let t=wv.get(e);return t?(wv.delete(e),Ybt(t,"SIGTERM"),setTimeout(()=>{Ybt(t,"SIGKILL")},2e3).unref?.(),EEe(t.profileDir),!0):!1}function Qbt(){let e=0;for(let[t]of wv)t.startsWith("anon-")||$t(t)||(ix(t),e+=1);return e}function tZn(){if(Zbt)return;Zbt=!0;let e=()=>{for(let[t]of wv)ix(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var wv,SEe,Zbt,I1=v(()=>{"use strict";Qc();wv=new Map;Zbt=!1});import{existsSync as $bt,readdirSync as nZn,readFileSync as rZn}from"node:fs";import{join as z5}from"node:path";function G5(e,t){return t?z5(t,"intents",e):pe(e)}function sZn(e,t){let n=z5(G5(e,t),"intent.md");if(!$bt(n))return null;let{data:r}=re(rZn(n,"utf8"));return r}function eTt(e,t){let n=sZn(e,t);if(!n)return null;let r=n.studio||"";if(!r||n.composite)return null;let i=wn(n,r),s=i.length>0?i:Fs(r);if(s.length===0)return{studio:r,stage:"",phase:""};let o=typeof n.mode=="string"&&n.mode.length>0?n.mode:"continuous",a=ai(e,r,G5(e,t)),c=a??s[s.length-1],l=hv({slug:e,studio:r,stage:c,intentDir:G5(e,t),intentMode:o}).phase??"",d=iZn.has(l)?l:"",f;if(d==="elaborate"){let m=z5(G5(e,t),"stages",c),g=z5(m,"units"),y=$bt(g)?nZn(g).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],E=w0({slug:e,studio:r,stage:c,stageDir:m,unitNames:y,mode:o});E.length>0&&(f=fye(E))}let p,h;if(a===null)if(typeof n.sealed_at=="string"&&n.sealed_at.length>0)p="sealed";else{let g=UL(e,{localOnly:!0});g.applicable&&!g.merged&&(p="pending_seal",h=g.defaultBranch)}return{studio:r,stage:c,phase:d,...f?{pending_signals:f}:{},...p?{seal_status:p}:{},...h?{awaiting_merge_into:h}:{}}}var iZn,tTt=v(()=>{"use strict";ns();Oa();e1();vY();ze();iZn=new Set(["elaborate","execute","review","gate"])});import{execFileSync as oZn}from"node:child_process";function V5(e){try{return oZn(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function aZn(e){if(!e)return null;let t="",n="",r=e.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(r)t=r[1],n=r[2];else try{let c=new URL(e);t=c.hostname,n=c.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let i=n.split("/").filter(Boolean);if(i.length<2)return null;let s=i[0],o=i.slice(1).join("/");return{host:t==="github.com"?"github.com":t==="gitlab.com"?"gitlab.com":"other",owner:s,repo:o,rawUrl:e}}function cZn(e,t){if(!e)return null;for(let[n,r,i]of[["refs/pull/*/head","github-pr-ref","github.com"],["refs/merge-requests/*/head","gitlab-mr-ref","gitlab.com"]]){if(t.host!=="other"&&t.host!==i)continue;let s=V5(["git","ls-remote","origin",n]);if(s)for(let o of s.split(` +`)){let[a,c]=o.trim().split(/\s+/);if(a!==e)continue;let u=c?.match(/^refs\/(?:pull|merge-requests)\/(\d+)\/head$/);if(u)return{source:r,prNumber:Number(u[1])}}}return null}function uZn(e,t,n){return e.host==="github.com"&&t==="github-pr-ref"?`https://github.com/${e.owner}/${e.repo}/pull/${n}`:e.host==="gitlab.com"&&t==="gitlab-mr-ref"?`https://gitlab.com/${e.owner}/${e.repo}/-/merge_requests/${n}`:null}function lZn(e){if(!Ae())return null;let t=`haiku/${e}/main`,n=V5(["git","rev-parse","--verify",t])||V5(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=V5(["git","remote","get-url","origin"]),i=aZn(r);if(!i)return null;let s=cZn(n,i);if(!s)return null;let o=uZn(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function rTt(e){let t=Date.now(),n=nTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=lZn(e);return nTt.set(e,{value:r,expiresAt:t+dZn}),r}var dZn,nTt,iTt=v(()=>{"use strict";SE();dZn=3e4,nTt=new Map});var oTt=w(W5=>{"use strict";var fZn=Symbol.for("react.transitional.element"),pZn=Symbol.for("react.fragment");function sTt(e,t,n){var r=null;if(n!==void 0&&(r=""+n),t.key!==void 0&&(r=""+t.key),"key"in t){n={};for(var i in t)i!=="key"&&(n[i]=t[i])}else n=t;return t=n.ref,{$$typeof:fZn,type:e,key:r,ref:t!==void 0?t:null,props:n}}W5.Fragment=pZn;W5.jsx=sTt;W5.jsxs=sTt});var yTt=w(cn=>{"use strict";var vEe=Symbol.for("react.transitional.element"),hZn=Symbol.for("react.portal"),mZn=Symbol.for("react.fragment"),gZn=Symbol.for("react.strict_mode"),yZn=Symbol.for("react.profiler"),SZn=Symbol.for("react.consumer"),EZn=Symbol.for("react.context"),_Zn=Symbol.for("react.forward_ref"),bZn=Symbol.for("react.suspense"),TZn=Symbol.for("react.memo"),dTt=Symbol.for("react.lazy"),vZn=Symbol.for("react.activity"),aTt=Symbol.iterator;function AZn(e){return e===null||typeof e!="object"?null:(e=aTt&&e[aTt]||e["@@iterator"],typeof e=="function"?e:null)}var fTt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pTt=Object.assign,hTt={};function ox(e,t,n){this.props=e,this.context=t,this.refs=hTt,this.updater=n||fTt}ox.prototype.isReactComponent={};ox.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ox.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function mTt(){}mTt.prototype=ox.prototype;function AEe(e,t,n){this.props=e,this.context=t,this.refs=hTt,this.updater=n||fTt}var REe=AEe.prototype=new mTt;REe.constructor=AEe;pTt(REe,ox.prototype);REe.isPureReactComponent=!0;var cTt=Array.isArray;function TEe(){}var Ri={H:null,A:null,T:null,S:null},gTt=Object.prototype.hasOwnProperty;function wEe(e,t,n){var r=n.ref;return{$$typeof:vEe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function RZn(e,t){return wEe(e.type,t,e.props)}function kEe(e){return typeof e=="object"&&e!==null&&e.$$typeof===vEe}function wZn(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var uTt=/\/+/g;function bEe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?wZn(""+e.key):t.toString(36)}function kZn(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(TEe,TEe):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function sx(e,t,n,r,i){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(s){case"bigint":case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case vEe:case hZn:o=!0;break;case dTt:return o=e._init,sx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+bEe(e,0):r,cTt(i)?(n="",o!=null&&(n=o.replace(uTt,"$&/")+"/"),sx(i,t,n,"",function(u){return u})):i!=null&&(kEe(i)&&(i=RZn(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(uTt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(cTt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(L,te){Object.defineProperty(r.prototype,L,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",te[0],te[1])}})}function t(L){return L===null||typeof L!="object"?null:(L=Me&&L[Me]||L["@@iterator"],typeof L=="function"?L:null)}function n(L,te){L=(L=L.constructor)&&(L.displayName||L.name)||"ReactClass";var Ne=L+"."+te;Re[Ne]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",te,L),Re[Ne]=!0)}function r(L,te,Ne){this.props=L,this.context=te,this.refs=oe,this.updater=Ne||z}function i(){}function s(L,te,Ne){this.props=L,this.context=te,this.refs=oe,this.updater=Ne||z}function o(){}function a(L){return""+L}function c(L){try{a(L);var te=!1}catch{te=!0}if(te){te=console;var Ne=te.error,Ee=typeof Symbol=="function"&&Symbol.toStringTag&&L[Symbol.toStringTag]||L.constructor.name||"Object";return Ne.call(te,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",Ee),a(L)}}function u(L){if(L==null)return null;if(typeof L=="function")return L.$$typeof===kt?null:L.displayName||L.name||null;if(typeof L=="string")return L;switch(L){case X:return"Fragment";case M:return"Profiler";case G:return"StrictMode";case H:return"Suspense";case j:return"SuspenseList";case se:return"Activity"}if(typeof L=="object")switch(typeof L.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),L.$$typeof){case B:return"Portal";case U:return L.displayName||"Context";case q:return(L._context.displayName||"Context")+".Consumer";case D:var te=L.render;return L=L.displayName,L||(L=te.displayName||te.name||"",L=L!==""?"ForwardRef("+L+")":"ForwardRef"),L;case W:return te=L.displayName||null,te!==null?te:u(L.type)||"Memo";case ee:te=L._payload,L=L._init;try{return u(L(te))}catch{}}return null}function l(L){if(L===X)return"<>";if(typeof L=="object"&&L!==null&&L.$$typeof===ee)return"<...>";try{var te=u(L);return te?"<"+te+">":"<...>"}catch{return"<...>"}}function d(){var L=Ue.A;return L===null?null:L.getOwner()}function f(){return Error("react-stack-top-frame")}function p(L){if(Ln.call(L,"key")){var te=Object.getOwnPropertyDescriptor(L,"key").get;if(te&&te.isReactWarning)return!1}return L.key!==void 0}function h(L,te){function Ne(){sn||(sn=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",te))}Ne.isReactWarning=!0,Object.defineProperty(L,"key",{get:Ne,configurable:!0})}function m(){var L=u(this.type);return tl[L]||(tl[L]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),L=this.props.ref,L!==void 0?L:null}function g(L,te,Ne,Ee,at,On){var It=Ne.ref;return L={$$typeof:$,type:L,key:te,props:Ne,_owner:Ee},(It!==void 0?It:null)!==null?Object.defineProperty(L,"ref",{enumerable:!1,get:m}):Object.defineProperty(L,"ref",{enumerable:!1,value:null}),L._store={},Object.defineProperty(L._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(L,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(L,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:at}),Object.defineProperty(L,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:On}),Object.freeze&&(Object.freeze(L.props),Object.freeze(L)),L}function y(L,te){return te=g(L.type,te,L.props,L._owner,L._debugStack,L._debugTask),L._store&&(te._store.validated=L._store.validated),te}function E(L){S(L)?L._store&&(L._store.validated=1):typeof L=="object"&&L!==null&&L.$$typeof===ee&&(L._payload.status==="fulfilled"?S(L._payload.value)&&L._payload.value._store&&(L._payload.value._store.validated=1):L._store&&(L._store.validated=1))}function S(L){return typeof L=="object"&&L!==null&&L.$$typeof===$}function _(L){var te={"=":"=0",":":"=2"};return"$"+L.replace(/[=:]/g,function(Ne){return te[Ne]})}function b(L,te){return typeof L=="object"&&L!==null&&L.key!=null?(c(L.key),_(""+L.key)):te.toString(36)}function T(L){switch(L.status){case"fulfilled":return L.value;case"rejected":throw L.reason;default:switch(typeof L.status=="string"?L.then(o,o):(L.status="pending",L.then(function(te){L.status==="pending"&&(L.status="fulfilled",L.value=te)},function(te){L.status==="pending"&&(L.status="rejected",L.reason=te)})),L.status){case"fulfilled":return L.value;case"rejected":throw L.reason}}throw L}function A(L,te,Ne,Ee,at){var On=typeof L;(On==="undefined"||On==="boolean")&&(L=null);var It=!1;if(L===null)It=!0;else switch(On){case"bigint":case"string":case"number":It=!0;break;case"object":switch(L.$$typeof){case $:case B:It=!0;break;case ee:return It=L._init,A(It(L._payload),te,Ne,Ee,at)}}if(It){It=L,at=at(It);var dn=Ee===""?"."+b(It,0):Ee;return be(at)?(Ne="",dn!=null&&(Ne=dn.replace(Ii,"$&/")+"/"),A(at,te,Ne,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Ne=y(at,Ne+(at.key==null||It&&It.key===at.key?"":(""+at.key).replace(Ii,"$&/")+"/")+dn),Ee!==""&&It!=null&&S(It)&&It.key==null&&It._store&&!It._store.validated&&(Ne._store.validated=2),at=Ne),te.push(at)),1}if(It=0,dn=Ee===""?".":Ee+":",be(L))for(var bt=0;bt import('./MyComponent')) @@ -970,50 +969,50 @@ Your code should look like: Did you accidentally put curly braces around the import?`,te),"default"in te||console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s Your code should look like: - const MyComponent = lazy(() => import('./MyComponent'))`,te),te.default;throw L._result}function x(){var L=Be.H;return L===null&&console.error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: + const MyComponent = lazy(() => import('./MyComponent'))`,te),te.default;throw L._result}function k(){var L=Ue.H;return L===null&&console.error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),L}function N(){Be.asyncTransitions--}function P(L){if(Ar===null)try{var te=("require"+Math.random()).slice(0,7);Ar=(P5&&P5[te]).call(P5,"timers").setImmediate}catch{Ar=function(ye){iy===!1&&(iy=!0,typeof MessageChannel>"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var at=new MessageChannel;at.port1.onmessage=ye,at.port2.postMessage(void 0)}}return Ar(L)}function D(L){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(bt,ta){at=!0,wt.then(function(Ml){if(j(te,Ce),Ce===0){try{Z(ye),P(function(){return V(Ml,bt,ta)})}catch(yp){Be.thrownErrors.push(yp)}if(0 ...)"))}),Be.actQueue=null),0Be.recentlyCreatedOwnerStacks++;return y(L,at,ye,d(),bt?Error("react-stack-top-frame"):bs,bt?ur(l(L)):iE)},Qt.createRef=function(){var L={current:null};return Object.seal(L),L},Qt.forwardRef=function(L){L!=null&&L.$$typeof===W?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof L!="function"?console.error("forwardRef requires a render function but was given %s.",L===null?"null":typeof L):L.length!==0&&L.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",L.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),L!=null&&L.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var te={$$typeof:M,render:L},Ce;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(ye){Ce=ye,L.name||L.displayName||(Object.defineProperty(L,"name",{value:ye}),L.displayName=ye)}}),te},Qt.isValidElement=S,Qt.lazy=function(L){L={_status:-1,_result:L};var te={$$typeof:$,_payload:L,_init:k},Ce={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return L._ioInfo=Ce,te._debugInfo=[{awaited:Ce}],te},Qt.memo=function(L,te){L==null&&console.error("memo: The first argument must be a component. Instead received: %s",L===null?"null":typeof L),te={$$typeof:W,type:L,compare:te===void 0?null:te};var Ce;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ce},set:function(ye){Ce=ye,L.name||L.displayName||(Object.defineProperty(L,"name",{value:ye}),L.displayName=ye)}}),te},Qt.startTransition=function(L){var te=Be.T,Ce={};Ce._updatedFibers=new Set,Be.T=Ce;try{var ye=L(),at=Be.S;at!==null&&at(Ce,ye),typeof ye=="object"&&ye!==null&&typeof ye.then=="function"&&(Be.asyncTransitions++,ye.then(N,N),ye.then(o,mp))}catch(In){mp(In)}finally{te===null&&Ce._updatedFibers&&(L=Ce._updatedFibers.size,Ce._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?i_e.exports=Cbt():i_e.exports=Mbt()});var Dbt=w(C5=>{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(C){if(C==null)return null;if(typeof C=="function")return C.$$typeof===N?null:C.displayName||C.name||null;if(typeof C=="string")return C;switch(C){case y:return"Fragment";case E:return"Profiler";case g:return"StrictMode";case T:return"Suspense";case A:return"SuspenseList";case x:return"Activity"}if(typeof C=="object")switch(typeof C.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),C.$$typeof){case m:return"Portal";case _:return C.displayName||"Context";case S:return(C._context.displayName||"Context")+".Consumer";case b:var z=C.render;return C=C.displayName,C||(C=z.displayName||z.name||"",C=C!==""?"ForwardRef("+C+")":"ForwardRef"),C;case R:return z=C.displayName||null,z!==null?z:e(C.type)||"Memo";case k:z=C._payload,C=C._init;try{return e(C(z))}catch{}}return null}function t(C){return""+C}function n(C){try{t(C);var z=!1}catch{z=!0}if(z){z=console;var U=z.error,M=typeof Symbol=="function"&&Symbol.toStringTag&&C[Symbol.toStringTag]||C.constructor.name||"Object";return U.call(z,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",M),t(C)}}function r(C){if(C===y)return"<>";if(typeof C=="object"&&C!==null&&C.$$typeof===k)return"<...>";try{var z=e(C);return z?"<"+z+">":"<...>"}catch{return"<...>"}}function i(){var C=P.A;return C===null?null:C.getOwner()}function s(){return Error("react-stack-top-frame")}function o(C){if(D.call(C,"key")){var z=Object.getOwnPropertyDescriptor(C,"key").get;if(z&&z.isReactWarning)return!1}return C.key!==void 0}function a(C,z){function U(){Z||(Z=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",z))}U.isReactWarning=!0,Object.defineProperty(C,"key",{get:U,configurable:!0})}function c(){var C=e(this.type);return B[C]||(B[C]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),C=this.props.ref,C!==void 0?C:null}function u(C,z,U,M,H,F){var W=U.ref;return C={$$typeof:h,type:C,key:z,props:U,_owner:M},(W!==void 0?W:null)!==null?Object.defineProperty(C,"ref",{enumerable:!1,get:c}):Object.defineProperty(C,"ref",{enumerable:!1,value:null}),C._store={},Object.defineProperty(C._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(C,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(C,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:H}),Object.defineProperty(C,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:F}),Object.freeze&&(Object.freeze(C.props),Object.freeze(C)),C}function l(C,z,U,M,H,F){var W=z.children;if(W!==void 0)if(M)if(j(W)){for(M=0;M"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var at=new MessageChannel;at.port1.onmessage=Ee,at.port2.postMessage(void 0)}}return Ar(L)}function C(L){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(bt,ra){at=!0,It.then(function(Ul){if(F(te,Ne),Ne===0){try{K(Ee),N(function(){return V(Ul,bt,ra)})}catch(Tp){Ue.thrownErrors.push(Tp)}if(0 ...)"))}),Ue.actQueue=null),0Ue.recentlyCreatedOwnerStacks++;return g(L,at,Ee,d(),bt?Error("react-stack-top-frame"):Rs,bt?lr(l(L)):c_)},en.createRef=function(){var L={current:null};return Object.seal(L),L},en.forwardRef=function(L){L!=null&&L.$$typeof===W?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof L!="function"?console.error("forwardRef requires a render function but was given %s.",L===null?"null":typeof L):L.length!==0&&L.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",L.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),L!=null&&L.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var te={$$typeof:D,render:L},Ne;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ne},set:function(Ee){Ne=Ee,L.name||L.displayName||(Object.defineProperty(L,"name",{value:Ee}),L.displayName=Ee)}}),te},en.isValidElement=S,en.lazy=function(L){L={_status:-1,_result:L};var te={$$typeof:ee,_payload:L,_init:x},Ne={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return L._ioInfo=Ne,te._debugInfo=[{awaited:Ne}],te},en.memo=function(L,te){L==null&&console.error("memo: The first argument must be a component. Instead received: %s",L===null?"null":typeof L),te={$$typeof:W,type:L,compare:te===void 0?null:te};var Ne;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ne},set:function(Ee){Ne=Ee,L.name||L.displayName||(Object.defineProperty(L,"name",{value:Ee}),L.displayName=Ee)}}),te},en.startTransition=function(L){var te=Ue.T,Ne={};Ne._updatedFibers=new Set,Ue.T=Ne;try{var Ee=L(),at=Ue.S;at!==null&&at(Ne,Ee),typeof Ee=="object"&&Ee!==null&&typeof Ee.then=="function"&&(Ue.asyncTransitions++,Ee.then(P,P),Ee.then(o,_p))}catch(On){_p(On)}finally{te===null&&Ne._updatedFibers&&(L=Ne._updatedFibers.size,Ne._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?IEe.exports=yTt():IEe.exports=STt()});var ETt=w(Z5=>{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(M){if(M==null)return null;if(typeof M=="function")return M.$$typeof===P?null:M.displayName||M.name||null;if(typeof M=="string")return M;switch(M){case g:return"Fragment";case E:return"Profiler";case y:return"StrictMode";case T:return"Suspense";case A:return"SuspenseList";case k:return"Activity"}if(typeof M=="object")switch(typeof M.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),M.$$typeof){case m:return"Portal";case _:return M.displayName||"Context";case S:return(M._context.displayName||"Context")+".Consumer";case b:var q=M.render;return M=M.displayName,M||(M=q.displayName||q.name||"",M=M!==""?"ForwardRef("+M+")":"ForwardRef"),M;case R:return q=M.displayName||null,q!==null?q:e(M.type)||"Memo";case x:q=M._payload,M=M._init;try{return e(M(q))}catch{}}return null}function t(M){return""+M}function n(M){try{t(M);var q=!1}catch{q=!0}if(q){q=console;var U=q.error,D=typeof Symbol=="function"&&Symbol.toStringTag&&M[Symbol.toStringTag]||M.constructor.name||"Object";return U.call(q,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",D),t(M)}}function r(M){if(M===g)return"<>";if(typeof M=="object"&&M!==null&&M.$$typeof===x)return"<...>";try{var q=e(M);return q?"<"+q+">":"<...>"}catch{return"<...>"}}function i(){var M=N.A;return M===null?null:M.getOwner()}function s(){return Error("react-stack-top-frame")}function o(M){if(C.call(M,"key")){var q=Object.getOwnPropertyDescriptor(M,"key").get;if(q&&q.isReactWarning)return!1}return M.key!==void 0}function a(M,q){function U(){K||(K=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",q))}U.isReactWarning=!0,Object.defineProperty(M,"key",{get:U,configurable:!0})}function c(){var M=e(this.type);return $[M]||($[M]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),M=this.props.ref,M!==void 0?M:null}function u(M,q,U,D,H,j){var W=U.ref;return M={$$typeof:h,type:M,key:q,props:U,_owner:D},(W!==void 0?W:null)!==null?Object.defineProperty(M,"ref",{enumerable:!1,get:c}):Object.defineProperty(M,"ref",{enumerable:!1,value:null}),M._store={},Object.defineProperty(M._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(M,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(M,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:H}),Object.defineProperty(M,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:j}),Object.freeze&&(Object.freeze(M.props),Object.freeze(M)),M}function l(M,q,U,D,H,j){var W=q.children;if(W!==void 0)if(D)if(F(W)){for(D=0;D React keys must be passed directly to JSX without using spread: let props = %s; - <%s key={someKey} {...props} />`,M,W,$,W),q[W+M]=!0)}if(W=null,U!==void 0&&(n(U),W=""+U),o(z)&&(n(z.key),W=""+z.key),"key"in z){U={};for(var ie in z)ie!=="key"&&(U[ie]=z[ie])}else U=z;return W&&a(U,typeof C=="function"?C.displayName||C.name||"Unknown":C),u(C,W,U,i(),H,F)}function d(C){f(C)?C._store&&(C._store.validated=1):typeof C=="object"&&C!==null&&C.$$typeof===k&&(C._payload.status==="fulfilled"?f(C._payload.value)&&C._payload.value._store&&(C._payload.value._store.validated=1):C._store&&(C._store.validated=1))}function f(C){return typeof C=="object"&&C!==null&&C.$$typeof===h}var p=s_e(),h=Symbol.for("react.transitional.element"),m=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),g=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),S=Symbol.for("react.consumer"),_=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),A=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),N=Symbol.for("react.client.reference"),P=p.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D=Object.prototype.hasOwnProperty,j=Array.isArray,V=console.createTask?console.createTask:function(){return null};p={react_stack_bottom_frame:function(C){return C()}};var Z,B={},G=p.react_stack_bottom_frame.bind(p,s)(),X=V(r(s)),q={};C5.Fragment=y,C5.jsx=function(C,z,U){var M=1e4>P.recentlyCreatedOwnerStacks++;return l(C,z,U,!1,M?Error("react-stack-top-frame"):G,M?V(r(C)):X)},C5.jsxs=function(C,z,U){var M=1e4>P.recentlyCreatedOwnerStacks++;return l(C,z,U,!0,M?Error("react-stack-top-frame"):G,M?V(r(C)):X)}})()});var $f=w((lhi,o_e)=>{"use strict";process.env.NODE_ENV==="production"?o_e.exports=Tbt():o_e.exports=Dbt()});var Lbt,Ubt=v(()=>{"use strict";Lbt=_e($f(),1)});var h5n,jbt,Fbt=v(()=>{"use strict";h5n=_e(s_e(),1),jbt=_e($f(),1)});var m5n,Hbt=v(()=>{"use strict";m5n=_e($f(),1)});var g5n,qbt=v(()=>{"use strict";g5n=_e($f(),1)});var y5n,Bbt=v(()=>{"use strict";y5n=_e($f(),1)});var Gbt=v(()=>{"use strict";Ubt();Fbt();Hbt();qbt();Bbt()});var zbt=v(()=>{"use strict"});function Wbt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function Kbt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function M5(e){let t=!1;return e.map(n=>n.done?{key:n.key,label:n.label,status:"done"}:t?{key:n.key,label:n.label,status:"pending"}:(t=!0,{key:n.key,label:n.label,status:"active"}))}function a_e(e){let{elaborateDone:t,reviewRoles:n,executeDone:r,approvalRoles:i,observationsDone:s=null,groupAdversarial:o=!0}=e,a=[];return a.push({key:"elaborate",label:"elaborate",done:t}),a.push(...Vbt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...Vbt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),M5(a)}function Vbt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?Wbt(l):Kbt(l),u=()=>{if(s.length!==0){if(r){let l=s.filter(f=>f.stamped).length,d=s.length;i.push({key:`${t}:adversarial:${o}`,label:d>1?`${a} (${l}/${d})`:a,done:n&&s.every(f=>f.stamped)}),o+=1}else for(let l of s)i.push({key:`${t}:${l.role}`,label:c(l.role),done:n&&l.stamped});s=[]}};for(let l of e)v5n.has(l.role)?(u(),i.push({key:`${t}:${l.role}`,label:c(l.role),done:n&&l.stamped})):s.push(l);return u(),i}var v5n,Zbt=v(()=>{"use strict";v5n=new Set(["spec","quality_gates","user"])});var Ybt=v(()=>{"use strict";Gbt();fye();zbt();uD();Zbt()});import{existsSync as Jbt}from"node:fs";import{join as Tv}from"node:path";function u_e(e){if(!e)return!1;if(Array.isArray(e.dispatches)&&e.dispatches.length>1)return!0;let t=e.role;return typeof t=="string"&&t.length>0&&!c_e.has(t)}function D5(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=u_e(e),o=a=>t.findIndex(c=>a(c.key));switch(n){case"elaborate_loop":return o(a=>a==="elaborate");case"dispatch_review":return o(s?a=>a.startsWith("review:adversarial"):a=>a===`review:${r??"spec"}`);case"start_unit_hat":case"start_units":case"execute":case"continue_unit":case"continue_units":return o(a=>a==="execute");case"dispatch_approval":return o(s?a=>a.startsWith("approve:adversarial"):a=>a===`approve:${r??"spec"}`);case"dispatch_quality_gates":{let a=o(c=>c==="approve:quality_gates");return a>=0?a:o(c=>c==="intent-quality-gates")}case"user_gate":return o(i==="approval"?a=>a==="approve:user":a=>a==="review:user");case"write_brief":return o(a=>a==="review:user");case"intent_review":return o(r==="user"?a=>a==="intent-review:user":s?a=>a.startsWith("intent-review:adversarial"):a=>a===`intent-review:${r??"spec"}`);case"record_reflection":return o(a=>a==="reflection");case"seal_intent":case"sealed":return o(a=>a==="seal");default:return-1}}function A5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function Qbt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function R5n(e){return Array.isArray(e.iterations)?e.iterations:[]}function l_e(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=kL(i).map(g=>({name:pZ(g),fm:Fu(g)?.data??{}})).filter(g=>g.fm),u=c.map(g=>g.name),l=to(n,r),{reviewRoles:d,approvalRoles:f}=mZ(n,r,s),p=b0({slug:t,studio:n,stage:r,stageDir:i,unitNames:u,mode:s}).length===0,h=(g,E)=>c.length>0&&c.every(S=>!!(g==="reviews"?A5n(S.fm):Qbt(S.fm))[E]),m=c.length>0&&(l.length===0||c.every(g=>{let E=R5n(g.fm);if(E.length===0)return!1;let S=E[E.length-1];return S.result==="advance"&&S.hat===l[l.length-1]})),y=nv(Tv(i,"..",".."))?Jbt(Tv(i,"observations.md")):null;return a_e({elaborateDone:p,reviewRoles:d.map(g=>({role:g,stamped:h("reviews",g)})),executeDone:m,approvalRoles:f.map(g=>({role:g,stamped:h("approvals",g)})),observationsDone:y,groupAdversarial:o})}function $bt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Fu(Tv(t,"intent.md"))?.data??{},o=Qbt(s),a=s.studio||"",c=a?Object.keys(dg(a)).sort():[],u=f=>f==="spec"||f==="user",l=[],d=()=>{if(l.length===0)return;let f=l.filter(p=>!!o[p]).length;i.push({key:"intent-review:adversarial:0",label:l.length>1?`adversarial review (${f}/${l.length})`:"adversarial review",done:l.every(p=>!!o[p])}),l=[]};for(let f of hZ(n,c)){if(r&&!u(f)){l.push(f);continue}d(),i.push({key:`intent-review:${f}`,label:f==="user"?"intent gate":`${f} review`,done:!!o[f]})}return d(),i.push({key:"intent-quality-gates",label:"quality gates",done:!!o.intent_quality_gates}),nv(t)&&i.push({key:"reflection",label:"reflection",done:Jbt(Tv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),M5(i)}function L5(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:_s(t,n,r),a=o?l_e({slug:t,studio:n,stage:o,stageDir:Tv(r,"stages",o),mode:i}):$bt({intentDir:r,mode:i}),c=a.findIndex(u=>u.status!=="done");return{scope:o?"stage":"intent",steps:a,index:c===-1?a.length:c,total:a.length}}function eTt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:_s(t,n,r);return o?l_e({slug:t,studio:n,stage:o,stageDir:Tv(r,"stages",o),mode:i,groupAdversarial:!1}):$bt({intentDir:r,mode:i,groupAdversarial:!1})}function tTt(e){return l_e({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:Tv(e.intentDir,"stages",e.stage),mode:e.mode})}var c_e,Xbt,d_e=v(()=>{"use strict";Ybt();Zn();_o();hc();c_e=new Set(["spec","quality_gates","user"]),Xbt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as U5,readFileSync as j5}from"node:fs";import{join as F5}from"node:path";function w5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function rTt(e){if(!e||typeof e!="object")return e;let t={...e};for(let n of["reviews","approvals"]){let r=t[n];if(!r||typeof r!="object")continue;let i={};for(let[s,o]of Object.entries(r))if(o&&typeof o=="object"){let a=o,{body_sha256:c,witnesses:u,...l}=a;i[s]=l}else i[s]=o;t[n]=i}return t}function k5n(e){return e.map(t=>({...t,frontmatter:rTt(t.frontmatter)??t.frontmatter}))}function f_e(e){if(!e)return{};let t=F5(fe(e),"intent.md");if(!U5(t))return{};try{return re(j5(t,"utf8")).data}catch{return{}}}function x5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=nTt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?w5n(a):"";if(n==="intent_completion")return{label:"Mark Intent Done",kind:"complete_intent"};if(o)return{label:c?`Open ${c} Pull Request`:"Open Pull Request",kind:"open_pr"};if(n==="intent_review")return{label:c?`Start ${c}`:"Start Intent",kind:"start_intent"};if(n==="elaborate_to_execute")return{label:c?`Start ${c} Execution`:"Start Execution",kind:"start_execution"};let u=f_e(e.intent_slug),l=e.next_stage===null;if(!l&&e.next_stage===void 0){let d=t?.studio||u.studio||"";if(d){let f=or(u,d),p=f.length>0?f:So(d);l=p.length>0&&p[p.length-1]===a}}if(l){let d=t?.studio||u.studio||"";return!!d&&Object.keys(dg(d)).length>0?{label:"Submit Intent for Final Review",kind:"submit_intent_review"}:{label:"Complete Intent",kind:"complete_intent"}}return c?{label:`Complete ${c} Stage`,kind:"complete_stage"}:{label:"Approve",kind:"approve"}}function iTt(e,t){let n=on(t);if(!n){e.status(404).send({error:"Session not found"});return}let r={session_id:n.session_id,session_type:n.session_type,status:n.status};if(n.session_type==="review"){if(r.intent_slug=n.intent_slug,r.gate_type=n.gate_type||"ask",r.target=n.target,r.decision=n.decision,r.feedback=n.feedback,n.annotations&&(r.annotations=n.annotations),n.parsedIntent){let o=n.parsedIntent;r.intent={...o,frontmatter:rTt(o.frontmatter)}}if(n.parsedUnits&&(r.units=k5n(n.parsedUnits)),n.parsedCriteria&&(r.criteria=n.parsedCriteria),n.parsedMermaid&&(r.mermaid=n.parsedMermaid),n.intentMockups&&(r.intent_mockups=n.intentMockups),n.unitMockups){let o={};if(n.unitMockups instanceof Map)for(let[a,c]of n.unitMockups)o[a]=c;else Object.assign(o,n.unitMockups);r.unit_mockups=o}n.stageStates&&(r.stage_states=n.stageStates);let i=n.intent_slug?gbt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=f_e(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=L5({slug:n.intent_slug,studio:i.studio,intentDir:fe(n.intent_slug),intentMode:a});if(c.total>0){i.milestones=c.steps;let u=c.index;try{let l=Zf({slug:n.intent_slug,intentDir:fe(n.intent_slug),studio:i.studio}),d=D5(l.action,c.steps);d>=0&&(u=d)}catch{}i.progress_index=u,i.progress_total=c.total}}catch{}{let o=n.intent_slug,a=o?f_e(o):{},c=i?.studio||a.studio||"";if(o&&c)try{let u=typeof a?.mode=="string"?a.mode:"",l=or(a,c),d=l.length>0?l:So(c),f=fe(o),p={},h={},m={},y={};for(let g of d){try{let _=tTt({slug:o,studio:c,intentDir:f,stage:g,mode:u});_.length>0&&(p[g]=_)}catch{}let S=Yi(c,g)?.data?.description;typeof S=="string"&&S.trim()&&(h[g]=S.trim());try{let _=F5(f,"stages",g,"BRIEF.md");if(U5(_)){let b=j5(_,"utf8").trim();b&&(m[g]=b)}}catch{}try{let _=F5(f,"stages",g,"observations.md");if(U5(_)){let b=j5(_,"utf8").trim();b&&(y[g]=b)}}catch{}}Object.keys(p).length>0&&(r.stage_milestones=p),Object.keys(h).length>0&&(r.stage_summaries=h),Object.keys(m).length>0&&(r.stage_briefs=m),Object.keys(y).length>0&&(r.stage_observations=y);try{let g=F5(f,"reflection.md");if(U5(g)){let E=j5(g,"utf8").trim();E&&(r.reflection=E)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=x5n({slug:s,stage:i.stage,studio:i.studio,intentDir:fe(s)});o.length>0&&(r.drift=o.map(a=>({path:a.file,stage:a.unit==="(intent)"?"":i.stage,intent:s,action:"modified",age:a.since,kind:a.kind,unit:a.unit,role:a.role})))}catch{}if(n.intent_slug){let o=_bt(n.intent_slug);o&&(r.discovered_review_url=o)}n.knowledgeFiles&&(r.knowledge_files=n.knowledgeFiles),n.stageArtifacts&&(r.stage_artifacts=n.stageArtifacts),n.outputArtifacts&&(r.output_artifacts=n.outputArtifacts),n.otherFiles&&(r.other_files=n.otherFiles),n.unitOutputs&&(r.unit_outputs=n.unitOutputs),n.outputDeclaredBy&&(r.output_declared_by=n.outputDeclaredBy),n.previousReview&&(r.previous_review=n.previousReview),n.ad_hoc&&(r.ad_hoc=!0),n.stage&&(r.stage=n.stage),n.gate_context&&(r.gate_context=n.gate_context),n.next_stage!==void 0&&(r.next_stage=n.next_stage),n.next_phase!==void 0&&(r.next_phase=n.next_phase),r.await_active=n.await_active===!0,r.await_count=n.await_count??0,n.pending_decision&&(r.pending_decision=n.pending_decision),n.last_await_started_at&&(r.last_await_started_at=n.last_await_started_at),n.last_await_ended_at&&(r.last_await_ended_at=n.last_await_ended_at),r.approve_action=O5n(n,i)}if(n.session_type==="question"){r.title=n.title,r.context=n.context,r.questions=n.questions,r.answers=n.answers;let i=n.imagePaths??[];r.image_urls=i.map((s,o)=>`/question-image/${n.session_id}/${o}`)}n.session_type==="design_direction"&&(r.title="Design Direction",r.intent_slug=n.intent_slug,n.context&&(r.context=n.context),r.archetypes=n.archetypes,r.selection=n.selection),n.session_type==="picker"&&(r.intent_slug=n.intent_slug,r.kind=n.kind,r.title=n.title,r.prompt=n.prompt,r.options=n.options,r.selection=n.selection),n.session_type==="view"&&(r.intent_slug=n.intent_slug,r.mode=n.mode,n.studio&&(r.studio=n.studio),n.stage&&(r.stage=n.stage),n.artifact&&(r.artifact=n.artifact),n.boot_port&&(r.boot_port=n.boot_port),n.boot_command&&(r.boot_command=n.boot_command)),e.send(r)}var nTt,I5n,sTt=v(()=>{"use strict";ybt();Ebt();_o();Gge();hc();d_e();Hu();ze();Zn();nTt=new Map,I5n=2e3});import{appendFileSync as N5n}from"node:fs";function U_(e){try{N5n(P5n,`${new Date().toISOString()} ${e} + <%s key={someKey} {...props} />`,D,W,ee,W),G[W+D]=!0)}if(W=null,U!==void 0&&(n(U),W=""+U),o(q)&&(n(q.key),W=""+q.key),"key"in q){U={};for(var se in q)se!=="key"&&(U[se]=q[se])}else U=q;return W&&a(U,typeof M=="function"?M.displayName||M.name||"Unknown":M),u(M,W,U,i(),H,j)}function d(M){f(M)?M._store&&(M._store.validated=1):typeof M=="object"&&M!==null&&M.$$typeof===x&&(M._payload.status==="fulfilled"?f(M._payload.value)&&M._payload.value._store&&(M._payload.value._store.validated=1):M._store&&(M._store.validated=1))}function f(M){return typeof M=="object"&&M!==null&&M.$$typeof===h}var p=xEe(),h=Symbol.for("react.transitional.element"),m=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),y=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),S=Symbol.for("react.consumer"),_=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),A=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),k=Symbol.for("react.activity"),P=Symbol.for("react.client.reference"),N=p.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,C=Object.prototype.hasOwnProperty,F=Array.isArray,V=console.createTask?console.createTask:function(){return null};p={react_stack_bottom_frame:function(M){return M()}};var K,$={},B=p.react_stack_bottom_frame.bind(p,s)(),X=V(r(s)),G={};Z5.Fragment=g,Z5.jsx=function(M,q,U){var D=1e4>N.recentlyCreatedOwnerStacks++;return l(M,q,U,!1,D?Error("react-stack-top-frame"):B,D?V(r(M)):X)},Z5.jsxs=function(M,q,U){var D=1e4>N.recentlyCreatedOwnerStacks++;return l(M,q,U,!0,D?Error("react-stack-top-frame"):B,D?V(r(M)):X)}})()});var rp=w((mgi,OEe)=>{"use strict";process.env.NODE_ENV==="production"?OEe.exports=oTt():OEe.exports=ETt()});var _Tt,bTt=v(()=>{"use strict";_Tt=Se(rp(),1)});var OZn,TTt,vTt=v(()=>{"use strict";OZn=Se(xEe(),1),TTt=Se(rp(),1)});var PZn,ATt=v(()=>{"use strict";PZn=Se(rp(),1)});var NZn,RTt=v(()=>{"use strict";NZn=Se(rp(),1)});var CZn,wTt=v(()=>{"use strict";CZn=Se(rp(),1)});var kTt=v(()=>{"use strict";bTt();vTt();ATt();RTt();wTt()});var ITt=v(()=>{"use strict"});function OTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function PTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function J5(e){let t=!1;return e.map(n=>n.done?{key:n.key,label:n.label,status:"done"}:t?{key:n.key,label:n.label,status:"pending"}:(t=!0,{key:n.key,label:n.label,status:"active"}))}function PEe(e){let{elaborateDone:t,reviewRoles:n,executeDone:r,approvalRoles:i,observationsDone:s=null,groupAdversarial:o=!0}=e,a=[];return a.push({key:"elaborate",label:"elaborate",done:t}),a.push(...xTt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...xTt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),J5(a)}function xTt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?OTt(l):PTt(l),u=()=>{if(s.length!==0){if(r){let l=s.filter(f=>f.stamped).length,d=s.length;i.push({key:`${t}:adversarial:${o}`,label:d>1?`${a} (${l}/${d})`:a,done:n&&s.every(f=>f.stamped)}),o+=1}else for(let l of s)i.push({key:`${t}:${l.role}`,label:c(l.role),done:n&&l.stamped});s=[]}};for(let l of e)jZn.has(l.role)?(u(),i.push({key:`${t}:${l.role}`,label:c(l.role),done:n&&l.stamped})):s.push(l);return u(),i}var jZn,NTt=v(()=>{"use strict";jZn=new Set(["spec","quality_gates","user"])});var CTt=v(()=>{"use strict";kTt();Pye();ITt();yD();NTt()});import{existsSync as MTt}from"node:fs";import{join as kv}from"node:path";function CEe(e){if(!e)return!1;if(Array.isArray(e.dispatches)&&e.dispatches.length>1)return!0;let t=e.role;return typeof t=="string"&&t.length>0&&!NEe.has(t)}function X5(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=CEe(e),o=a=>t.findIndex(c=>a(c.key));switch(n){case"elaborate_loop":return o(a=>a==="elaborate");case"dispatch_review":return o(s?a=>a.startsWith("review:adversarial"):a=>a===`review:${r??"spec"}`);case"start_unit_hat":case"start_units":case"execute":case"continue_unit":case"continue_units":return o(a=>a==="execute");case"dispatch_approval":return o(s?a=>a.startsWith("approve:adversarial"):a=>a===`approve:${r??"spec"}`);case"dispatch_quality_gates":{let a=o(c=>c==="approve:quality_gates");return a>=0?a:o(c=>c==="intent-quality-gates")}case"user_gate":return o(i==="approval"?a=>a==="approve:user":a=>a==="review:user");case"write_brief":return o(a=>a==="review:user");case"intent_review":return o(r==="user"?a=>a==="intent-review:user":s?a=>a.startsWith("intent-review:adversarial"):a=>a===`intent-review:${r??"spec"}`);case"record_reflection":return o(a=>a==="reflection");case"seal_intent":case"pending_seal":case"sealed":return o(a=>a==="seal");default:return-1}}function HZn(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function LTt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function qZn(e){return Array.isArray(e.iterations)?e.iterations:[]}function MEe(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=ov(i).map(y=>({name:OY(y),fm:Xc(y)?.data??{}})).filter(y=>y.fm),u=c.map(y=>y.name),l=_s(n,r),{reviewRoles:d,approvalRoles:f}=NY(n,r,s),p=w0({slug:t,studio:n,stage:r,stageDir:i,unitNames:u,mode:s}).length===0,h=(y,E)=>c.length>0&&c.every(S=>!!(y==="reviews"?HZn(S.fm):LTt(S.fm))[E]),m=c.length>0&&(l.length===0||c.every(y=>{let E=qZn(y.fm);if(E.length===0)return!1;let S=E[E.length-1];return S.result==="advance"&&S.hat===l[l.length-1]})),g=sv(kv(i,"..",".."))?MTt(kv(i,"observations.md")):null;return PEe({elaborateDone:p,reviewRoles:d.map(y=>({role:y,stamped:h("reviews",y)})),executeDone:m,approvalRoles:f.map(y=>({role:y,stamped:h("approvals",y)})),observationsDone:g,groupAdversarial:o})}function UTt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Xc(kv(t,"intent.md"))?.data??{},o=LTt(s),a=s.studio||"",c=a?Object.keys(mg(a)).sort():[],u=f=>f==="spec"||f==="user",l=[],d=()=>{if(l.length===0)return;let f=l.filter(p=>!!o[p]).length;i.push({key:"intent-review:adversarial:0",label:l.length>1?`adversarial review (${f}/${l.length})`:"adversarial review",done:l.every(p=>!!o[p])}),l=[]};for(let f of PY(n,c)){if(r&&!u(f)){l.push(f);continue}d(),i.push({key:`intent-review:${f}`,label:f==="user"?"intent gate":`${f} review`,done:!!o[f]})}return d(),i.push({key:"intent-quality-gates",label:"quality gates",done:!!o.intent_quality_gates}),sv(t)&&i.push({key:"reflection",label:"reflection",done:MTt(kv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),J5(i)}function Q5(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r),a=o?MEe({slug:t,studio:n,stage:o,stageDir:kv(r,"stages",o),mode:i}):UTt({intentDir:r,mode:i}),c=a.findIndex(u=>u.status!=="done");return{scope:o?"stage":"intent",steps:a,index:c===-1?a.length:c,total:a.length}}function FTt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r);return o?MEe({slug:t,studio:n,stage:o,stageDir:kv(r,"stages",o),mode:i,groupAdversarial:!1}):UTt({intentDir:r,mode:i,groupAdversarial:!1})}function jTt(e){return MEe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:kv(e.intentDir,"stages",e.stage),mode:e.mode})}var NEe,DTt,DEe=v(()=>{"use strict";CTt();Kn();ns();Oa();NEe=new Set(["spec","quality_gates","user"]),DTt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as x1,readFileSync as O1}from"node:fs";import{join as P1}from"node:path";function BZn(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function qTt(e){if(!e||typeof e!="object")return e;let t={...e};for(let n of["reviews","approvals"]){let r=t[n];if(!r||typeof r!="object")continue;let i={};for(let[s,o]of Object.entries(r))if(o&&typeof o=="object"){let a=o,{body_sha256:c,witnesses:u,...l}=a;i[s]=l}else i[s]=o;t[n]=i}return t}function GZn(e){return e.map(t=>({...t,frontmatter:qTt(t.frontmatter)??t.frontmatter}))}function LEe(e){if(!e)return{};let t=P1(pe(e),"intent.md");if(!x1(t))return{};try{return re(O1(t,"utf8")).data}catch{return{}}}function VZn(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=HTt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?BZn(a):"";if(n==="intent_completion")return{label:"Mark Intent Done",kind:"complete_intent"};if(o)return{label:c?`Open ${c} Pull Request`:"Open Pull Request",kind:"open_pr"};if(n==="intent_review")return{label:c?`Start ${c}`:"Start Intent",kind:"start_intent"};if(n==="elaborate_to_execute")return{label:c?`Start ${c} Execution`:"Start Execution",kind:"start_execution"};let u=LEe(e.intent_slug),l=e.next_stage===null;if(!l&&e.next_stage===void 0){let d=t?.studio||u.studio||"";if(d){let f=wn(u,d),p=f.length>0?f:Fs(d);l=p.length>0&&p[p.length-1]===a}}if(l){let d=t?.studio||u.studio||"";return!!d&&Object.keys(mg(d)).length>0?{label:"Submit Intent for Final Review",kind:"submit_intent_review"}:{label:"Complete Intent",kind:"complete_intent"}}return c?{label:`Complete ${c} Stage`,kind:"complete_stage"}:{label:"Approve",kind:"approve"}}function BTt(e,t){let n=$t(t);if(!n){e.status(404).send({error:"Session not found"});return}let r={session_id:n.session_id,session_type:n.session_type,status:n.status};if(n.session_type==="review"){if(r.intent_slug=n.intent_slug,r.gate_type=n.gate_type||"ask",r.target=n.target,r.decision=n.decision,r.feedback=n.feedback,n.annotations&&(r.annotations=n.annotations),n.parsedIntent){let o=n.parsedIntent;r.intent={...o,frontmatter:qTt(o.frontmatter)}}if(n.parsedUnits&&(r.units=GZn(n.parsedUnits)),n.parsedCriteria&&(r.criteria=n.parsedCriteria),n.parsedMermaid&&(r.mermaid=n.parsedMermaid),n.intentMockups&&(r.intent_mockups=n.intentMockups),n.unitMockups){let o={};if(n.unitMockups instanceof Map)for(let[a,c]of n.unitMockups)o[a]=c;else Object.assign(o,n.unitMockups);r.unit_mockups=o}n.stageStates&&(r.stage_states=n.stageStates);let i=n.intent_slug?eTt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=LEe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=Q5({slug:n.intent_slug,studio:i.studio,intentDir:pe(n.intent_slug),intentMode:a});if(c.total>0){i.milestones=c.steps;let u=c.index;try{let l=Xf({slug:n.intent_slug,intentDir:pe(n.intent_slug),studio:i.studio}),d=X5(l.action,c.steps);d>=0&&(u=d)}catch{}i.progress_index=u,i.progress_total=c.total}}catch{}{let o=n.intent_slug,a=o?LEe(o):{},c=i?.studio||a.studio||"";if(o&&c)try{let u=typeof a?.mode=="string"?a.mode:"",l=wn(a,c),d=l.length>0?l:Fs(c),f=pe(o),p={},h={},m={},g={},y={};for(let E of d){try{let b=jTt({slug:o,studio:c,intentDir:f,stage:E,mode:u});b.length>0&&(p[E]=b)}catch{}let _=$i(c,E)?.data?.description;typeof _=="string"&&_.trim()&&(h[E]=_.trim());try{let b=P1(f,"stages",E,"BRIEF.md");if(x1(b)){let T=O1(b,"utf8").trim();T&&(m[E]=T)}}catch{}try{let b=P1(f,"stages",E,"observations.md");if(x1(b)){let T=O1(b,"utf8").trim();T&&(g[E]=T)}}catch{}try{let b=P1(f,"stages",E,"elaboration.md");if(x1(b)){let T=O1(b,"utf8").trim();T&&(y[E]=T)}}catch{}}Object.keys(p).length>0&&(r.stage_milestones=p),Object.keys(h).length>0&&(r.stage_summaries=h),Object.keys(m).length>0&&(r.stage_briefs=m),Object.keys(g).length>0&&(r.stage_observations=g),Object.keys(y).length>0&&(r.stage_elaborations=y);try{let E=P1(f,"reflection.md");if(x1(E)){let S=O1(E,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=VZn({slug:s,stage:i.stage,studio:i.studio,intentDir:pe(s)});o.length>0&&(r.drift=o.map(a=>({path:a.file,stage:a.unit==="(intent)"?"":i.stage,intent:s,action:"modified",age:a.since,kind:a.kind,unit:a.unit,role:a.role})))}catch{}if(n.intent_slug){let o=rTt(n.intent_slug);o&&(r.discovered_review_url=o)}n.knowledgeFiles&&(r.knowledge_files=n.knowledgeFiles),n.stageArtifacts&&(r.stage_artifacts=n.stageArtifacts),n.outputArtifacts&&(r.output_artifacts=n.outputArtifacts),n.otherFiles&&(r.other_files=n.otherFiles),n.intentOtherFiles&&(r.intent_other_files=n.intentOtherFiles),n.unitOutputs&&(r.unit_outputs=n.unitOutputs),n.outputDeclaredBy&&(r.output_declared_by=n.outputDeclaredBy),n.previousReview&&(r.previous_review=n.previousReview),n.ad_hoc&&(r.ad_hoc=!0),n.stage&&(r.stage=n.stage),n.gate_context&&(r.gate_context=n.gate_context),n.next_stage!==void 0&&(r.next_stage=n.next_stage),n.next_phase!==void 0&&(r.next_phase=n.next_phase),r.await_active=n.await_active===!0,r.await_count=n.await_count??0,n.pending_decision&&(r.pending_decision=n.pending_decision),n.last_await_started_at&&(r.last_await_started_at=n.last_await_started_at),n.last_await_ended_at&&(r.last_await_ended_at=n.last_await_ended_at),r.approve_action=WZn(n,i)}if(n.session_type==="question"){r.title=n.title,r.context=n.context,r.questions=n.questions,r.answers=n.answers;let i=n.imagePaths??[];r.image_urls=i.map((s,o)=>`/question-image/${n.session_id}/${o}`)}n.session_type==="design_direction"&&(r.title="Design Direction",r.intent_slug=n.intent_slug,n.context&&(r.context=n.context),r.archetypes=n.archetypes,r.selection=n.selection),n.session_type==="picker"&&(r.intent_slug=n.intent_slug,r.kind=n.kind,r.title=n.title,r.prompt=n.prompt,r.options=n.options,r.selection=n.selection),n.session_type==="view"&&(r.intent_slug=n.intent_slug,r.mode=n.mode,n.studio&&(r.studio=n.studio),n.stage&&(r.stage=n.stage),n.artifact&&(r.artifact=n.artifact),n.boot_port&&(r.boot_port=n.boot_port),n.boot_command&&(r.boot_command=n.boot_command)),e.send(r)}var HTt,zZn,GTt=v(()=>{"use strict";tTt();iTt();ns();Oa();cye();DEe();Qc();ze();Kn();HTt=new Map,zZn=2e3});import{appendFileSync as KZn}from"node:fs";function BE(e){try{KZn(YZn,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function cTt(e){let t=Date.now(),n=t-1e3,i=(p_e.get(e)??[]).filter(s=>s>n);return i.length>=C5n?(p_e.set(e,i),!1):(i.push(t),p_e.set(e,i),!0)}function Wh(e,t){let n=Bu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function vv(e,t){U_(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`);let n=Bu.get(e);if(!n){U_(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),U_(`closeSessionConnection(${e}): hint frame queued`)}catch(r){U_(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),U_(`closeSessionConnection(${e}): close frame sent`)}catch{}Bu.delete(e)}function uTt(e,t){let n;try{n=JSON.parse(t)}catch{Wh(e,{type:"error",error:"invalid_json"});return}let r=jct.safeParse(n);if(!r.success){Wh(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=on(e);if(s){if(i.type==="heartbeat"){xL(e),Wh(e,{type:"heartbeat_ack",...typeof i.t=="number"?{t:i.t}:{}});return}if(s.session_type==="review"&&i.type==="decide"){let o=i.decision==="approved"?"approved":"changes_requested",a=i.feedback??"",c=i.annotations;xl(e,{pending_decision:{decision:o,feedback:a,annotations:c,submitted_at:new Date().toISOString()}}),s.intent_slug&&Bd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),Wh(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;CL(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),Wh(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){Wh(e,{type:"error",error:"Direction already selected"});return}let o=i.mode==="regenerate"?{mode:"regenerate",keep:i.keep??[],...i.comments?{comments:i.comments}:{}}:{mode:"select",archetype:i.archetype,...i.comments?{comments:i.comments}:{},...i.annotations?{annotations:i.annotations}:{}};ML(e,{status:"answered",selection:o}),Wh(e,{type:"ack",ok:!0})}}}var P5n,Bu,p_e,oTt,C5n,aTt,S1,H5=v(()=>{"use strict";yT();X0();Hu();P5n="/tmp/haiku-session-cancel.log";Bu=new Map,p_e=new WeakMap,oTt=20,C5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return oTt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?oTt:Math.max(t,1)})();aTt=128,S1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return aTt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?aTt:Math.max(t,1)})()});import{existsSync as lTt,readdirSync as M5n,readFileSync as dTt}from"node:fs";import{join as m_e}from"node:path";function fTt(e){e.get("/review/:sessionId",async(t,n)=>{let r=on(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(qd)}),e.get("/question/:sessionId",async(t,n)=>{let r=on(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(qd)}),e.get("/direction/:sessionId",async(t,n)=>{let r=on(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(qd)}),e.get("/view/:sessionId",async(t,n)=>{let r=on(t.params.sessionId);if(!r||r.session_type!=="view"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(qd)}),e.post("/review/:sessionId/decide",async(t,n)=>{if(!Bn(t,n,t.params.sessionId))return;let r=on(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}let i=L_(n,t.body,Gde);if(!i.ok)return;let s=i.data.decision==="approved"?"approved":"changes_requested",o=i.data.feedback??"",a=i.data.annotations,c={ok:!0,decision:s,feedback:o};if(r.ad_hoc){n.send(c),vv(t.params.sessionId,"ad-hoc review closed"),ji()&&(CSe(t.params.sessionId),NSe()),I0(t.params.sessionId);return}xl(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Bd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c)}),e.post("/question/:sessionId/answer",{bodyLimit:Mde},async(t,n)=>{if(!Bn(t,n,t.params.sessionId))return;let r=on(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}let i=L_(n,t.body,Bde);if(!i.ok)return;CL(t.params.sessionId,{status:"answered",answers:i.data.answers,feedback:i.data.feedback??"",annotations:i.data.annotations});let s={ok:!0};n.send(s)}),e.post("/direction/:sessionId/select",{bodyLimit:Mde},async(t,n)=>{if(!Bn(t,n,t.params.sessionId))return;let r=on(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Direction already selected for this session"});return}let i=L_(n,t.body,Dde);if(!i.ok)return;let s=i.data.mode==="upload"?{mode:"upload",files:[]}:i.data;if(i.data.mode==="select"){let a=on(t.params.sessionId),c=a?.session_type==="design_direction"?a.intent_slug:"",u=c?h_e(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{Lye({slug:c,stage:u,archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{},screenshots:l}),d=!0;let{annotations:f,...p}=i.data;s=i.data.annotations?.pins?{...p,annotations:{pins:i.data.annotations.pins}}:p}catch(f){t.log.error({err:f},"persistDesignDirectionSelection failed \u2014 falling back to minimal state write")}if(!d)try{let f=D0(c,u),p=C_(f);p.design_direction_selected=!0,p.design_direction_selected_at=En(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,ZL(f,p)}catch(f){t.log.error({err:f},"minimal design-direction state write failed \u2014 agent may need to re-select")}}}if(i.data.mode==="upload"){let a=on(t.params.sessionId),c=a?.session_type==="design_direction"?a.intent_slug:"",u=c?h_e(c):"";if(c&&u)try{let{uploads:l}=Uye({slug:c,stage:u,files:i.data.files,...i.data.comments?{comments:i.data.comments}:{}});s={mode:"upload",files:l,...i.data.comments?{comments:i.data.comments}:{}}}catch(l){t.log.error({err:l},"persistDesignDirectionUploads failed \u2014 designer uploads not durable"),n.status(500).send({error:"upload_persist_failed",detail:l instanceof Error?l.message:String(l)});return}}ML(t.params.sessionId,{status:"answered",selection:s});let o={ok:!0};n.send(o)}),e.get("/picker/:sessionId",async(t,n)=>{let r=on(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(qd)}),e.post("/picker/:sessionId/select",async(t,n)=>{if(!Bn(t,n,t.params.sessionId))return;let r=on(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Picker already submitted"});return}let i=t.body??{},s=typeof i.id=="string"?i.id:"";if(!s){n.status(400).send({error:"Missing required field: id"});return}if(r.kind==="url_input"){let c=s.trim();if(c.length<4||c.length>2048){n.status(400).send({error:"URL must be 4\u20132048 characters"});return}if(!/^https?:\/\//i.test(c)&&!/^git@/i.test(c)&&!/^ssh:\/\//i.test(c)){n.status(400).send({error:"URL must start with http://, https://, ssh://, or git@ \u2014 paste the full URL"});return}let{updatePickerSession:u}=await Promise.resolve().then(()=>(Hu(),iye));u(t.params.sessionId,{status:"answered",selection:{id:c}}),n.send({ok:!0,id:c});return}let o=new Set(r.options.map(c=>c.id));if(!o.has(s)){n.status(400).send({error:`id "${s}" is not in the option set: ${[...o].join(", ")}`});return}let{updatePickerSession:a}=await Promise.resolve().then(()=>(Hu(),iye));a(t.params.sessionId,{status:"answered",selection:{id:s}}),n.send({ok:!0,id:s})}),e.get("/api/session/:sessionId",async(t,n)=>{Bn(t,n,t.params.sessionId)&&iTt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Bn(t,n,t.params.sessionId))return;let r=xL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!Bn(t,n,t.params.sessionId))return;let r=on(t.params.sessionId);if(!r||r.session_type!=="review"){ea({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ea({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=h_e(i);if(!s){ea({reqId:t.id,action:"advance",status:409,intent:i,detail:"no_active_stage"}),n.status(409).send({error:"no_active_stage",detail:"intent has no active stage"});return}let o=yo(i,s).filter(u=>u.status==="pending"||u.status==="fixing"||u.status==="addressed"),a=!1;if(o.length===0)try{D5n(i,s),a=!0,Dg(`haiku: user advance with no pending feedback on ${s} \u2014 stamp user slots`)}catch(u){ea({reqId:t.id,action:"advance",status:500,intent:i,stage:s,detail:`user_slot_stamp_failed: ${u instanceof Error?u.message:String(u)}`}),n.status(500).send({error:"user_slot_stamp_failed",detail:u instanceof Error?u.message:String(u)});return}xl(t.params.sessionId,{pending_decision:{decision:"advance",feedback:"",annotations:{},submitted_at:new Date().toISOString()}}),r.intent_slug&&Bd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0});let c={ok:!0,stage:s,open_feedback_count:o.length,stamped_user_slots:a};ea({reqId:t.id,action:"advance",status:200,intent:i,stage:s,detail:`open_fbs=${o.length} stamped=${a}`}),n.send(c)})}function h_e(e){let t=m_e(fe(e),"intent.md");if(!lTt(t))return"";try{let{data:n}=re(dTt(t,"utf8"));return n.active_stage||""}catch{return""}}function D5n(e,t){let n=fe(e),r=m_e(n,"stages",t,"units");if(!lTt(r))return;let i=M5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=m_e(r,s);try{let{data:a}=re(dTt(o,"utf8")),c=Array.isArray(a.outputs)?a.outputs:[],u=a.reviews&&typeof a.reviews=="object"?{...a.reviews}:{},l=a.approvals&&typeof a.approvals=="object"?{...a.approvals}:{},d=!1,f=!1;u.user||(u.user=Il(o),d=!0),l.user||(l.user=jd(n,c),f=!0),d&&je(o,"reviews",u),f&&je(o,"approvals",l)}catch{}}}var pTt=v(()=>{"use strict";yT();y5();X0();Wf();Hu();ze();zh();HSe();Ug();sTt();Ev();H5()});var g_e=w((Smi,hTt)=>{"use strict";var{EventEmitter:L5n}=Y("node:events"),{inherits:U5n}=Y("node:util");function Av(e){if(typeof e=="string"&&(e=Buffer.from(e)),!Buffer.isBuffer(e))throw new TypeError("The needle has to be a String or a Buffer.");let t=e.length,n=t-1;if(t===0)throw new Error("The needle cannot be an empty String/Buffer.");if(t>256)throw new Error("The needle cannot have a length bigger than 256.");this.maxMatches=1/0,this.matches=0,this._occ=new Uint8Array(256).fill(t),this._lookbehind_size=0,this._needle=e,this._bufpos=0,this._lookbehind=Buffer.alloc(n);for(var r=0;r=0)this.emit("info",!1,this._lookbehind,0,this._lookbehind_size),this._lookbehind_size=0;else{let c=this._lookbehind_size+o;return c>0&&this.emit("info",!1,this._lookbehind,0,c),this._lookbehind_size-=c,this._lookbehind.copy(this._lookbehind,0,c,this._lookbehind_size),e.copy(this._lookbehind,this._lookbehind_size),this._lookbehind_size+=t,this._bufpos=t,t}}if(o=e.indexOf(n,o+this._bufpos),o!==-1)return++this.matches,o===0?this.emit("info",!0):this.emit("info",!0,e,this._bufpos,o),this._bufpos=o+r;for(o=t-i,o<0&&(o=0);o!==t&&(e[o]!==n[0]||Buffer.compare(e.subarray(o+1,t),n.subarray(1,t-o))!==0);)++o;return o!==t&&(e.copy(this._lookbehind,0,o,t),this._lookbehind_size=t-o),o!==0&&this.emit("info",!1,e,this._bufpos,o),this._bufpos=t,t};Av.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};Av.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var j5n=Y("node:util").inherits,mTt=Y("node:stream").Readable;function y_e(e){mTt.call(this,e)}j5n(y_e,mTt);y_e.prototype._read=function(e){};gTt.exports=y_e});var q5=w((Emi,STt)=>{"use strict";STt.exports=function(t,n,r){if(!t||t[n]===void 0||t[n]===null)return r;if(typeof t[n]!="number"||isNaN(t[n]))throw new TypeError("Limit "+n+" is not a valid number");return t[n]}});var TTt=w((bmi,bTt)=>{"use strict";var ETt=Y("node:events").EventEmitter,F5n=Y("node:util").inherits,_Tt=q5(),H5n=g_e(),q5n=Buffer.from(`\r +`)}function WTt(e){let t=Date.now(),n=t-1e3,i=(UEe.get(e)??[]).filter(s=>s>n);return i.length>=ZZn?(UEe.set(e,i),!1):(i.push(t),UEe.set(e,i),!0)}function Qh(e,t){let n=Ku.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Iv(e,t){BE(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),ix(e);let n=Ku.get(e);if(!n){BE(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),BE(`closeSessionConnection(${e}): hint frame queued`)}catch(r){BE(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),BE(`closeSessionConnection(${e}): close frame sent`)}catch{}Ku.delete(e)}function KTt(e,t){let n;try{n=JSON.parse(t)}catch{Qh(e,{type:"error",error:"invalid_json"});return}let r=hut.safeParse(n);if(!r.success){Qh(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=$t(e);if(s){if(i.type==="heartbeat"){HL(e),Qh(e,{type:"heartbeat_ack",...typeof i.t=="number"?{t:i.t}:{}});return}if(s.session_type==="review"&&i.type==="decide"){let o=i.decision==="approved"?"approved":"changes_requested",a=i.feedback??"",c=i.annotations;Cl(e,{pending_decision:{decision:o,feedback:a,annotations:c,submitted_at:new Date().toISOString()}}),s.intent_slug&&zd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),Qh(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;zL(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),Qh(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){Qh(e,{type:"error",error:"Direction already selected"});return}let o=i.mode==="regenerate"?{mode:"regenerate",keep:i.keep??[],...i.comments?{comments:i.comments}:{}}:{mode:"select",archetype:i.archetype,...i.comments?{comments:i.comments}:{},...i.annotations?{annotations:i.annotations}:{}};VL(e,{status:"answered",selection:o}),Qh(e,{type:"ack",ok:!0})}}}var YZn,Ku,UEe,zTt,ZZn,VTt,N1,$5=v(()=>{"use strict";bT();rx();I1();Qc();YZn="/tmp/haiku-session-cancel.log";Ku=new Map,UEe=new WeakMap,zTt=20,ZZn=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return zTt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?zTt:Math.max(t,1)})();VTt=128,N1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return VTt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?VTt:Math.max(t,1)})()});import{existsSync as YTt,readdirSync as JZn,readFileSync as ZTt}from"node:fs";import{join as jEe}from"node:path";function JTt(e){e.get("/review/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.get("/question/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.get("/direction/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.get("/view/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="view"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.post("/review/:sessionId/decide",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}let i=qE(n,t.body,afe);if(!i.ok)return;let s=i.data.decision==="approved"?"approved":"changes_requested",o=i.data.feedback??"",a=i.data.annotations,c={ok:!0,decision:s,feedback:o};if(r.ad_hoc){n.send(c),Iv(t.params.sessionId,"ad-hoc review closed"),Bi()&&(eEe(t.params.sessionId),QSe()),C0(t.params.sessionId);return}Cl(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&zd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),ix(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:Qde},async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}let i=qE(n,t.body,ofe);if(!i.ok)return;zL(t.params.sessionId,{status:"answered",answers:i.data.answers,feedback:i.data.feedback??"",annotations:i.data.annotations});let s={ok:!0};n.send(s)}),e.post("/direction/:sessionId/select",{bodyLimit:Qde},async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Direction already selected for this session"});return}let i=qE(n,t.body,$de);if(!i.ok)return;let s=i.data.mode==="upload"?{mode:"upload",files:[]}:i.data;if(i.data.mode==="select"){let a=$t(t.params.sessionId),c=a?.session_type==="design_direction"?a.intent_slug:"",u=c?FEe(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{rSe({slug:c,stage:u,archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{},screenshots:l}),d=!0;let{annotations:f,...p}=i.data;s=i.data.annotations?.pins?{...p,annotations:{pins:i.data.annotations.pins}}:p}catch(f){t.log.error({err:f},"persistDesignDirectionSelection failed \u2014 falling back to minimal state write")}if(!d)try{let f=H0(c,u),p=jE(f);p.design_direction_selected=!0,p.design_direction_selected_at=_n(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,o1(f,p)}catch(f){t.log.error({err:f},"minimal design-direction state write failed \u2014 agent may need to re-select")}}}if(i.data.mode==="upload"){let a=$t(t.params.sessionId),c=a?.session_type==="design_direction"?a.intent_slug:"",u=c?FEe(c):"";if(c&&u)try{let{uploads:l}=iSe({slug:c,stage:u,files:i.data.files,...i.data.comments?{comments:i.data.comments}:{}});s={mode:"upload",files:l,...i.data.comments?{comments:i.data.comments}:{}}}catch(l){t.log.error({err:l},"persistDesignDirectionUploads failed \u2014 designer uploads not durable"),n.status(500).send({error:"upload_persist_failed",detail:l instanceof Error?l.message:String(l)});return}}VL(t.params.sessionId,{status:"answered",selection:s});let o={ok:!0};n.send(o)}),e.get("/picker/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Gd)}),e.post("/picker/:sessionId/select",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Picker already submitted"});return}let i=t.body??{},s=typeof i.id=="string"?i.id:"";if(!s){n.status(400).send({error:"Missing required field: id"});return}if(r.kind==="url_input"){let c=s.trim();if(c.length<4||c.length>2048){n.status(400).send({error:"URL must be 4\u20132048 characters"});return}if(!/^https?:\/\//i.test(c)&&!/^git@/i.test(c)&&!/^ssh:\/\//i.test(c)){n.status(400).send({error:"URL must start with http://, https://, ssh://, or git@ \u2014 paste the full URL"});return}let{updatePickerSession:u}=await Promise.resolve().then(()=>(Qc(),vye));u(t.params.sessionId,{status:"answered",selection:{id:c}}),n.send({ok:!0,id:c});return}let o=new Set(r.options.map(c=>c.id));if(!o.has(s)){n.status(400).send({error:`id "${s}" is not in the option set: ${[...o].join(", ")}`});return}let{updatePickerSession:a}=await Promise.resolve().then(()=>(Qc(),vye));a(t.params.sessionId,{status:"answered",selection:{id:s}}),n.send({ok:!0,id:s})}),e.get("/api/session/:sessionId",async(t,n)=>{Gn(t,n,t.params.sessionId)&&BTt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=HL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!Gn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=FEe(i);if(!s){ta({reqId:t.id,action:"advance",status:409,intent:i,detail:"no_active_stage"}),n.status(409).send({error:"no_active_stage",detail:"intent has no active stage"});return}let o=Us(i,s).filter(u=>u.status==="pending"||u.status==="fixing"||u.status==="addressed"),a=!1;if(o.length===0)try{XZn(i,s),a=!0,Fg(`haiku: user advance with no pending feedback on ${s} \u2014 stamp user slots`)}catch(u){ta({reqId:t.id,action:"advance",status:500,intent:i,stage:s,detail:`user_slot_stamp_failed: ${u instanceof Error?u.message:String(u)}`}),n.status(500).send({error:"user_slot_stamp_failed",detail:u instanceof Error?u.message:String(u)});return}Cl(t.params.sessionId,{pending_decision:{decision:"advance",feedback:"",annotations:{},submitted_at:new Date().toISOString()}}),r.intent_slug&&zd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0});let c={ok:!0,stage:s,open_feedback_count:o.length,stamped_user_slots:a};ta({reqId:t.id,action:"advance",status:200,intent:i,stage:s,detail:`open_fbs=${o.length} stamped=${a}`}),n.send(c)})}function FEe(e){let t=jEe(pe(e),"intent.md");if(!YTt(t))return"";try{let{data:n}=re(ZTt(t,"utf8"));return n.active_stage||""}catch{return""}}function XZn(e,t){let n=pe(e),r=jEe(n,"stages",t,"units");if(!YTt(r))return;let i=JZn(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=jEe(r,s);try{let{data:a}=re(ZTt(o,"utf8")),c=Array.isArray(a.outputs)?a.outputs:[],u=a.reviews&&typeof a.reviews=="object"?{...a.reviews}:{},l=a.approvals&&typeof a.approvals=="object"?{...a.approvals}:{},d=!1,f=!1;u.user||(u.user=Nl(o),d=!0),l.user||(l.user=Hd(n,c),f=!0),d&&De(o,"reviews",u),f&&De(o,"approvals",l)}catch{}}}var XTt=v(()=>{"use strict";bT();C5();rx();I1();Zf();Qc();ze();Jh();aEe();Hg();GTt();Av();$5()});var HEe=w((Ryi,QTt)=>{"use strict";var{EventEmitter:QZn}=Y("node:events"),{inherits:$Zn}=Y("node:util");function xv(e){if(typeof e=="string"&&(e=Buffer.from(e)),!Buffer.isBuffer(e))throw new TypeError("The needle has to be a String or a Buffer.");let t=e.length,n=t-1;if(t===0)throw new Error("The needle cannot be an empty String/Buffer.");if(t>256)throw new Error("The needle cannot have a length bigger than 256.");this.maxMatches=1/0,this.matches=0,this._occ=new Uint8Array(256).fill(t),this._lookbehind_size=0,this._needle=e,this._bufpos=0,this._lookbehind=Buffer.alloc(n);for(var r=0;r=0)this.emit("info",!1,this._lookbehind,0,this._lookbehind_size),this._lookbehind_size=0;else{let c=this._lookbehind_size+o;return c>0&&this.emit("info",!1,this._lookbehind,0,c),this._lookbehind_size-=c,this._lookbehind.copy(this._lookbehind,0,c,this._lookbehind_size),e.copy(this._lookbehind,this._lookbehind_size),this._lookbehind_size+=t,this._bufpos=t,t}}if(o=e.indexOf(n,o+this._bufpos),o!==-1)return++this.matches,o===0?this.emit("info",!0):this.emit("info",!0,e,this._bufpos,o),this._bufpos=o+r;for(o=t-i,o<0&&(o=0);o!==t&&(e[o]!==n[0]||Buffer.compare(e.subarray(o+1,t),n.subarray(1,t-o))!==0);)++o;return o!==t&&(e.copy(this._lookbehind,0,o,t),this._lookbehind_size=t-o),o!==0&&this.emit("info",!1,e,this._bufpos,o),this._bufpos=t,t};xv.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};xv.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var e6n=Y("node:util").inherits,$Tt=Y("node:stream").Readable;function qEe(e){$Tt.call(this,e)}e6n(qEe,$Tt);qEe.prototype._read=function(e){};evt.exports=qEe});var eZ=w((kyi,nvt)=>{"use strict";nvt.exports=function(t,n,r){if(!t||t[n]===void 0||t[n]===null)return r;if(typeof t[n]!="number"||isNaN(t[n]))throw new TypeError("Limit "+n+" is not a valid number");return t[n]}});var ovt=w((Iyi,svt)=>{"use strict";var ivt=Y("node:events").EventEmitter,t6n=Y("node:util").inherits,rvt=eZ(),n6n=HEe(),r6n=Buffer.from(`\r \r -`),B5n=/\r\n/g,G5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function ex(e){ETt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=_Tt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=_Tt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new H5n(q5n),this.ss.on("info",function(n,r,i,s){r&&!t.maxed&&(t.nread+s-i>=t.maxHeaderSize?(s=t.maxHeaderSize-t.nread+i,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=s-i,t.buffer+=r.toString("binary",i,s)),n&&t._finish()})}F5n(ex,ETt);ex.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};ex.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};ex.prototype._finish=function(){this.buffer&&this._parseHeader(),this.ss.matches=this.ss.maxMatches;let e=this.header;this.header={},this.buffer="",this.finished=!0,this.nread=this.npairs=0,this.maxed=!1,this.emit("header",e)};ex.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(B5n),t=e.length,n,r;for(var i=0;i{"use strict";var S_e=Y("node:stream").Writable,z5n=Y("node:util").inherits,V5n=g_e(),vTt=yTt(),W5n=TTt(),K5n=45,Z5n=Buffer.from("-"),Y5n=Buffer.from(`\r -`),J5n=function(){};function ep(e){if(!(this instanceof ep))return new ep(e);if(S_e.call(this,e),!e||!e.headerFirst&&typeof e.boundary!="string")throw new TypeError("Boundary required");typeof e.boundary=="string"?this.setBoundary(e.boundary):this._bparser=void 0,this._headerFirst=e.headerFirst,this._dashes=0,this._parts=0,this._finished=!1,this._realFinish=!1,this._isPreamble=!0,this._justMatched=!1,this._firstWrite=!0,this._inHeader=!0,this._part=void 0,this._cb=void 0,this._ignoreData=!1,this._partOpts={highWaterMark:e.partHwm},this._pause=!1;let t=this;this._hparser=new W5n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}z5n(ep,S_e);ep.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){let t=this;process.nextTick(function(){if(t.emit("error",new Error("Unexpected end of multipart data")),t._part&&!t._ignoreData){let n=t._isPreamble?"Preamble":"Part";t._part.emit("error",new Error(n+" terminated early due to unexpected end of multipart data")),t._part.push(null),process.nextTick(function(){t._realFinish=!0,t.emit("finish"),t._realFinish=!1});return}t._realFinish=!0,t.emit("finish"),t._realFinish=!1})}}else S_e.prototype.emit.apply(this,arguments)};ep.prototype._write=function(e,t,n){if(!this._hparser&&!this._bparser)return n();if(this._headerFirst&&this._isPreamble){this._part||(this._part=new vTt(this._partOpts),this.listenerCount("preamble")!==0?this.emit("preamble",this._part):this._ignore());let r=this._hparser.push(e);if(!this._inHeader&&r!==void 0&&r{"use strict";var RTt=new TextDecoder("utf-8"),wTt=new Map([["utf-8",RTt],["utf8",RTt]]);function X5n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return _1.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return _1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return _1.utf16le;case"base64":return _1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return _1.other.bind(e)}}var _1={utf8:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.utf8Slice(0,e.length)),latin1:(e,t)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.ucs2Slice(0,e.length)),base64:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.base64Slice(0,e.length)),other:(e,t)=>{if(e.length===0)return"";if(typeof e=="string"&&(e=Buffer.from(e,t)),wTt.has(E_e.toString()))try{return wTt.get(E_e).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function Q5n(e,t,n){return e&&X5n(n)(e,t)}kTt.exports=Q5n});var T_e=w((vmi,PTt)=>{"use strict";var G5=B5(),ITt=/%[a-fA-F0-9][a-fA-F0-9]/g,$5n={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` +`),i6n=/\r\n/g,s6n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function ax(e){ivt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=rvt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=rvt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new n6n(r6n),this.ss.on("info",function(n,r,i,s){r&&!t.maxed&&(t.nread+s-i>=t.maxHeaderSize?(s=t.maxHeaderSize-t.nread+i,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=s-i,t.buffer+=r.toString("binary",i,s)),n&&t._finish()})}t6n(ax,ivt);ax.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};ax.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};ax.prototype._finish=function(){this.buffer&&this._parseHeader(),this.ss.matches=this.ss.maxMatches;let e=this.header;this.header={},this.buffer="",this.finished=!0,this.nread=this.npairs=0,this.maxed=!1,this.emit("header",e)};ax.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(i6n),t=e.length,n,r;for(var i=0;i{"use strict";var BEe=Y("node:stream").Writable,o6n=Y("node:util").inherits,a6n=HEe(),avt=tvt(),c6n=ovt(),u6n=45,l6n=Buffer.from("-"),d6n=Buffer.from(`\r +`),f6n=function(){};function ip(e){if(!(this instanceof ip))return new ip(e);if(BEe.call(this,e),!e||!e.headerFirst&&typeof e.boundary!="string")throw new TypeError("Boundary required");typeof e.boundary=="string"?this.setBoundary(e.boundary):this._bparser=void 0,this._headerFirst=e.headerFirst,this._dashes=0,this._parts=0,this._finished=!1,this._realFinish=!1,this._isPreamble=!0,this._justMatched=!1,this._firstWrite=!0,this._inHeader=!0,this._part=void 0,this._cb=void 0,this._ignoreData=!1,this._partOpts={highWaterMark:e.partHwm},this._pause=!1;let t=this;this._hparser=new c6n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}o6n(ip,BEe);ip.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){let t=this;process.nextTick(function(){if(t.emit("error",new Error("Unexpected end of multipart data")),t._part&&!t._ignoreData){let n=t._isPreamble?"Preamble":"Part";t._part.emit("error",new Error(n+" terminated early due to unexpected end of multipart data")),t._part.push(null),process.nextTick(function(){t._realFinish=!0,t.emit("finish"),t._realFinish=!1});return}t._realFinish=!0,t.emit("finish"),t._realFinish=!1})}}else BEe.prototype.emit.apply(this,arguments)};ip.prototype._write=function(e,t,n){if(!this._hparser&&!this._bparser)return n();if(this._headerFirst&&this._isPreamble){this._part||(this._part=new avt(this._partOpts),this.listenerCount("preamble")!==0?this.emit("preamble",this._part):this._ignore());let r=this._hparser.push(e);if(!this._inHeader&&r!==void 0&&r{"use strict";var uvt=new TextDecoder("utf-8"),lvt=new Map([["utf-8",uvt],["utf8",uvt]]);function p6n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return C1.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return C1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return C1.utf16le;case"base64":return C1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return C1.other.bind(e)}}var C1={utf8:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.utf8Slice(0,e.length)),latin1:(e,t)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.ucs2Slice(0,e.length)),base64:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.base64Slice(0,e.length)),other:(e,t)=>{if(e.length===0)return"";if(typeof e=="string"&&(e=Buffer.from(e,t)),lvt.has(zEe.toString()))try{return lvt.get(zEe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function h6n(e,t,n){return e&&p6n(n)(e,t)}dvt.exports=h6n});var WEe=w((Oyi,gvt)=>{"use strict";var nZ=tZ(),fvt=/%[a-fA-F0-9][a-fA-F0-9]/g,m6n={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` `,"%0A":` -`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function xTt(e){return $5n[e]}var z5=0,OTt=1,b_e=2,NTt=3;function e6n(e){let t=[],n=z5,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";CTt.exports=function(t){if(typeof t!="string")return"";for(var n=t.length-1;n>=0;--n)switch(t.charCodeAt(n)){case 47:case 92:return t=t.slice(n+1),t===".."||t==="."?"":t}return t===".."||t==="."?"":t}});var jTt=w((Rmi,UTt)=>{"use strict";var{Readable:LTt}=Y("node:stream"),{inherits:t6n}=Y("node:util"),n6n=__e(),DTt=T_e(),r6n=B5(),i6n=MTt(),Rv=q5(),s6n=/^boundary$/i,o6n=/^form-data$/i,a6n=/^charset$/i,c6n=/^filename$/i,u6n=/^name$/i;V5.detect=/^multipart\/form-data/i;function V5(e,t){let n,r,i=this,s,o=t.limits,a=t.isPartAFile||((N,P,D)=>P==="application/octet-stream"||D!==void 0),c=t.parsedConType||[],u=t.defCharset||"utf8",l=t.preservePath,d={highWaterMark:t.fileHwm};for(n=0,r=c.length;ng)return i.parser.removeListener("part",N),i.parser.on("part",tx),e.hitPartsLimit=!0,e.emit("partsLimit"),tx(P);if(R){let D=R;D.emit("end"),D.removeAllListeners("end")}P.on("header",function(D){let j,V,Z,B,G,X,q=0;if(D["content-type"]&&(Z=DTt(D["content-type"][0]),Z[0])){for(j=Z[0].toLowerCase(),n=0,r=Z.length;nh){let H=h-q+M.length;H>0&&U.push(M.slice(0,H)),U.truncated=!0,U.bytesRead=h,P.removeAllListeners("data"),U.emit("limit");return}else U.push(M)||(i._pause=!0);U.bytesRead=q},z=function(){A=void 0,U.push(null)}}else{if(b===y)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),tx(P);++b,++T;let U="",M=!1;R=P,C=function(H){if((q+=H.length)>p){let F=p-(q-H.length);U+=H.toString("binary",0,F),M=!0,P.removeAllListeners("data")}else U+=H.toString("binary")},z=function(){R=void 0,U.length&&(U=r6n(U,"binary",B)),e.emit("field",V,U,!1,M,G,j),--T,f()}}P._readableState.sync=!1,P.on("data",C),P.on("end",z)}).on("error",function(D){A&&A.emit("error",D)})}).on("error",function(N){e.emit("error",N)}).on("finish",function(){k=!0,f()})}V5.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};V5.prototype.end=function(){let e=this;e.parser.writable?e.parser.end():e._boy._done||process.nextTick(function(){e._boy._done=!0,e._boy.emit("finish")})};function tx(e){e.resume()}function v_e(e){LTt.call(this,e),this.bytesRead=0,this.truncated=!1}t6n(v_e,LTt);v_e.prototype._read=function(e){};UTt.exports=V5});var HTt=w((wmi,FTt)=>{"use strict";var l6n=/\+/g,d6n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function A_e(){this.buffer=void 0}A_e.prototype.write=function(e){e=e.replace(l6n," ");let t="",n=0,r=0,i=e.length;for(;nr&&(t+=e.substring(r,n),r=n),this.buffer="",++r);return r{"use strict";var f6n=HTt(),nx=B5(),R_e=q5(),p6n=/^charset$/i;W5.detect=/^application\/x-www-form-urlencoded/i;function W5(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=R_e(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=R_e(n,"fieldNameSize",100),this.fieldsLimit=R_e(n,"fields",1/0);let i;for(var s=0,o=r.length;ss&&(this._key+=this.decoder.write(e.toString("binary",s,n))),this._state="val",this._hitLimit=!1,this._checkingBytes=!0,this._val="",this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),s=n+1;else if(r!==void 0){++this._fields;let a,c=this._keyTrunc;if(r>s?a=this._key+=this.decoder.write(e.toString("binary",s,r)):a=this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),a.length&&this.boy.emit("field",nx(a,"binary",this.charset),"",c,!1),s=r+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(i>s&&(this._key+=this.decoder.write(e.toString("binary",s,i))),s=i,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(ss&&(this._val+=this.decoder.write(e.toString("binary",s,r))),this.boy.emit("field",nx(this._key,"binary",this.charset),nx(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this._state="key",this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),s=r+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(i>s&&(this._val+=this.decoder.write(e.toString("binary",s,i))),s=i,(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(s0?this.boy.emit("field",nx(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",nx(this._key,"binary",this.charset),nx(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};qTt.exports=W5});var VTt=w((Imi,E1)=>{"use strict";var w_e=Y("node:stream").Writable,{inherits:h6n}=Y("node:util"),m6n=__e(),GTt=jTt(),zTt=BTt(),g6n=T_e();function jg(e){if(!(this instanceof jg))return new jg(e);if(typeof e!="object")throw new TypeError("Busboy expected an options-Object.");if(typeof e.headers!="object")throw new TypeError("Busboy expected an options-Object with headers-attribute.");if(typeof e.headers["content-type"]!="string")throw new TypeError("Missing Content-Type-header.");let{headers:t,...n}=e;this.opts={autoDestroy:!1,...n},w_e.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}h6n(jg,w_e);jg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}w_e.prototype.emit.apply(this,arguments)};jg.prototype.getParserByHeaders=function(e){let t=g6n(e["content-type"]),n={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(GTt.detect.test(t[0]))return new GTt(this,n);if(zTt.detect.test(t[0]))return new zTt(this,n);throw new Error("Unsupported Content-Type.")};jg.prototype._write=function(e,t,n){this._parser.write(e,n)};E1.exports=jg;E1.exports.default=jg;E1.exports.Busboy=jg;E1.exports.Dicer=m6n});var ZTt=w((xmi,KTt)=>{"use strict";var Fg=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],wv=Math.random;function WTt(){return Fg[255*wv()|0]+Fg[255*wv()|0]+Fg[255*wv()|0]+Fg[255*wv()|0]+Fg[255*wv()|0]+Fg[255*wv()|0]+Fg[255*wv()|0]}KTt.exports.generateId=(function(){let t=0,n=WTt();return function(){return t===255?(n=WTt())+Fg[t=0]:n+Fg[++t]}})()});var JTt=w((Omi,YTt)=>{"use strict";YTt.exports=function(t){return new Promise((n,r)=>{t.on("data",()=>{}),t.on("close",()=>{n()}),t.on("end",()=>{n()}),t.on("error",i=>{r(i)})})}});var $Tt=w((Nmi,b1)=>{"use strict";var XTt=Object.getPrototypeOf({});function QTt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function k_e(e){function t(g){return g!=="constructor"&&g!=="prototype"&&g!=="__proto__"}function n(g){let E=0,S=g.length,_=new Array(S);for(E;E"u")continue;S[R]=p(E[R])}return S}function m(g,E){if(l&&typeof E>"u")return p(g);let S=Array.isArray(E),_=Array.isArray(g);return d(E)?E:u(g)?S&&_?f(g,E):S!==_?p(E):h(g,E):p(E)}function y(){switch(arguments.length){case 0:return{};case 1:return p(arguments[0]);case 2:return m(arguments[0],arguments[1])}let g;for(let E=0,S=arguments.length;E{"use strict";var y6n=VTt(),S6n=Y("node:os"),_6n=OC(),{createWriteStream:E6n}=Y("node:fs"),{unlink:b6n}=Y("node:fs/promises"),evt=Y("node:path"),{generateId:T6n}=ZTt(),Hg=ZV(),v6n=JTt(),A6n=$Tt()({all:!0}),{PassThrough:R6n,Readable:w6n}=Y("node:stream"),{pipeline:k6n}=Y("node:stream/promises"),I6n=oue(),O_e=Symbol("multipart"),K5=Symbol("multipartHandler"),T1=Symbol("savedRequestFilesResult"),tvt=Hg("FST_PARTS_LIMIT","reach parts limit",413),nvt=Hg("FST_FILES_LIMIT","reach files limit",413),rvt=Hg("FST_FIELDS_LIMIT","reach fields limit",413),I_e=Hg("FST_REQ_FILE_TOO_LARGE","request file too large",413),x_e=Hg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),ivt=Hg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),svt=Hg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),ovt=Hg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),x6n=Hg("FST_NO_FORM_DATA","FormData is not available",500);function O6n(e,t,n){e[O_e]=!0,n()}function N6n(e){try{return new y6n(e)}catch(t){let n=new R6n;return process.nextTick(function(){n.emit("error",t)}),n}}function N_e(e,t,n){t.limits={...t.limits,parts:t.limits?.parts||1e3,fileSize:t.limits?.fileSize||e.initialConfig.bodyLimit};let r=t.attachFieldsToBody;(r===!0||r==="keyValues")&&(typeof t.sharedSchemaId=="string"&&r===!0&&e.addSchema({$id:t.sharedSchemaId,type:"object",properties:{fieldname:{type:"string"},encoding:{type:"string"},filename:{type:"string"},mimetype:{type:"string"}}}),e.addHook("preValidation",async function(p){if(p.isMultipart()){for await(let h of p.parts(p.routeOptions.config.multipartOptions))p.body=h.fields,h.file&&(t.onFile?await t.onFile.call(p,h):await h.toBuffer());if(r==="keyValues"){let h={};if(p.body){let m=Object.keys(p.body);for(let y=0;y{await p.cleanRequestFiles()});function s(){return this[O_e]}function o(p={}){if(!this.isMultipart())throw new ivt;this.log.debug("starting multipart parsing");let h=[],m=null,y=D=>{m?(m(D),m=null):h.push(D)},g=D=>{if(h.length>0){let j=h[0];h=h.slice(1),D(j)}else m=D},E=()=>new Promise((D,j)=>{g(V=>{V instanceof Error?V.message==="Unexpected end of multipart data"?D(null):j(V):D(V)})}),S={},_=null,b=null,T=this.raw,A=A6n({headers:T.headers},t,p);this.log.trace({busboyOptions:A},"Providing options to busboy");let R=N6n(A);T.on("close",P),T.on("error",P),R.on("field",k).on("file",x).on("end",P).on("finish",P).on("close",P).on("error",P),R.on("partsLimit",function(){let D=new tvt;N(D),process.nextTick(()=>P(D))}),R.on("filesLimit",function(){let D=new nvt;N(D),process.nextTick(()=>P(D))}),R.on("fieldsLimit",function(){let D=new rvt;N(D),process.nextTick(()=>P(D))}),T.pipe(R);function k(D,j,V,Z,B,G){if(D in Object.prototype){N(new x_e);return}if(G.startsWith("application/json")){if(Z){N(new svt);return}try{j=I6n.parse(j),G="application/json"}catch{N(new svt);return}}let X={type:"field",fieldname:D,mimetype:G,encoding:B,value:j,fieldnameTruncated:V,valueTruncated:Z,fields:S};S[D]===void 0?S[D]=X:Array.isArray(S[D])?S[D].push(X):S[D]=[S[D],X],y(X)}function x(D,j,V,Z,B){if(D in Object.prototype){v6n(j).catch(()=>{}),N(new x_e);return}let G=typeof p.throwFileSizeLimit=="boolean"?p.throwFileSizeLimit:i,X={type:"file",fieldname:D,filename:V,encoding:Z,mimetype:B,file:j,fields:S,_buf:null,async toBuffer(){if(this._buf)return this._buf;let q=[],C;for await(let z of this.file)q.push(z),G&&this.file.truncated&&(C=new I_e,C.part=this,N(C),q.length=0);if(C)throw C;return this._buf=Buffer.concat(q),this._buf}};j.on("error",function(q){q.message&&q.message.includes("terminated early")&&N(q)}),G&&j.on("limit",function(){let q=new I_e;q.part=X,N(q)}),S[D]===void 0?S[D]=X:Array.isArray(S[D])?S[D].push(X):S[D]=[S[D],X],b=j,y(X)}function N(D){_=D,b=null}function P(D){T.unpipe(R),(D||T.aborted)&&b&&(b.destroy(),b=null),y(D||_||null)}return E}async function a(p){if(this[T1])return this[T1];let h,m={};r===!0||r==="keyValues"?(h=this.body?c.call(this,this.body):[],m=this.body||{}):h=this.parts(p),this.savedRequestFiles=[];let y=p?.tmpdir||S6n.tmpdir();this.tmpUploads=[];let g=0;for await(let E of h){if(m=E.fields,!E.file)continue;let S=evt.join(y,T6n()+evt.extname(E.filename||"file"+g++)),_=E6n(S);try{this.tmpUploads.push(S),await k6n(E.file,_),this.savedRequestFiles.push({...E,filepath:S})}catch(b){throw _.destroy(),await this.cleanRequestFiles(),this.log.error({err:b},"save request file"),b}}return this[T1]={files:this.savedRequestFiles,values:m},this[T1]}function*c(p){try{let h=Array.isArray(p)?p:Object.values(p);for(let m=0;m(n.type="string",n.format="binary",delete n.isFile,r=>!!r.file),error:{message:"should be a file"}})}v1.exports=_6n(N_e,{fastify:"5.x",name:"@fastify/multipart"});v1.exports.default=N_e;v1.exports.fastifyMultipart=N_e;v1.exports.ajvFilePlugin=P6n});import{mkdirSync as C6n}from"node:fs";import{open as M6n}from"node:fs/promises";import{dirname as D6n,join as L6n}from"node:path";function w1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function uvt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function R1(e){return Buffer.byteLength(e,"utf-8")}function P_e(e,t){if(R1(e)<=t)return e;let n="...[truncated]",r=R1(n),i=Math.max(0,t-r),s=Buffer.from(e,"utf-8"),o=i;for(;o>0&&(s[o]&192)===128;)o--;return`${s.slice(0,o).toString("utf-8")}${n}`}function q6n(e){let t=(s,o)=>s==null?null:P_e(s,o),n={...e,path:P_e(e.path,j6n),claimed_author_id:t(e.claimed_author_id,cvt),human_author_id:t(e.human_author_id,cvt),rationale:t(e.rationale,U6n),dirs_created:(e.dirs_created??[]).slice(0,F6n).map(s=>P_e(s,H6n))},r=JSON.stringify(n),i=R1(r);return i>Z5?{ok:!1,reason:"record_too_large",bytes:i,cap:Z5}:{ok:!0,record:n,line:r}}function B6n(e){return L6n(e,"write-audit.jsonl")}async function G6n(e,t){let n=A1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});A1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=A1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{A1.get(e)===s&&A1.delete(e)})})}}async function lvt(e,t){try{C6n(D6n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return G6n(e,async()=>{let n=null;try{return n=await M6n(e,"a"),await n.write(`${t} -`),await n.sync(),{ok:!0}}catch(r){return{ok:!1,reason:String(r)}}finally{n!==null&&await n.close().catch(()=>{})}})}async function k1(e,t){let n=q6n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=B6n(e);return lvt(r,n.line)}async function dvt(e,t){return R1(t)>Z5?{ok:!1,reason:`record_too_large (bytes=${R1(t)}, cap=${Z5})`}:lvt(e,t)}var Z5,U6n,cvt,j6n,F6n,H6n,A1,Y5=v(()=>{"use strict";Z5=16*1024,U6n=4096,cvt=128,j6n=1024,F6n=16,H6n=512;A1=new Map});import{join as z6n}from"node:path";function C_e(e){return z6n(e,"action-log.jsonl")}async function kv(e,t,n){let r=C_e(e),i=JSON.stringify(n);return dvt(r,i)}var J5=v(()=>{"use strict";Y5()});import{createHash as V6n}from"node:crypto";import{createWriteStream as W6n,existsSync as D_e,readFileSync as K6n,unlinkSync as Evt}from"node:fs";import{join as I1,resolve as fvt}from"node:path";function Z6n(e){return!(!e||e==="application/octet-stream")}function hvt(e){return typeof e!="string"?!1:U_e.test(e)}function Y6n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function J6n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function mvt(e){return L_e.has(Y6n(e))}function M_e(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=pvt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?pvt:n}return t>X5?(Qe("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(X5)}),X5):Math.min(t,X5)}function gvt(e,t){try{let n=I1(fe(e),"stages",t,"state.json");if(!D_e(n))return!1;let r=K6n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function yvt(e){return $L(fe(e))}function Svt(e){return QL(fe(e))}async function _vt(e,t,n){let r=I1(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=V6n("sha256"),s=0,o=W6n(r),a=new Promise(c=>{o.on("close",()=>{c()})});return await new Promise((c,u)=>{o.on("error",u),o.on("finish",c),e.file.on("error",u),e.file.on("data",l=>{if(s+=l.length,s>n){e.file.destroy(),o.destroy(),u(Object.assign(new Error("payload_too_large"),{code:"PAYLOAD_TOO_LARGE"}));return}i.update(l)}),e.file.on("end",()=>{o.end()}),e.file.pipe(o)}).catch(async c=>{await a.catch(()=>{});try{Evt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function Tvt(e){await e.register(async t=>{await t.register(bvt.default,{limits:{fileSize:M_e()+1,files:1}}),t.post("/api/intents/:intent/uploads/stage-output",async(n,r)=>{if(!Bn(n,r,null))return;let{intent:i}=n.params;if(!gn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!V0(n,r,i))return;if(!Oa(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(yvt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(Svt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=M_e(),o,a,c,u,l;try{let Z=n.parts();for await(let B of Z)if(B.type==="file")l=B;else{let G=B.value;B.fieldname==="stage"?o=G:B.fieldname==="target_path"?a=G:B.fieldname==="mode"?c=G:B.fieldname==="attribute_to_user"&&(u=G)}}catch(Z){let B=Z.code;if(B==="FST_FILES_LIMIT"||B==="LIMIT_FILE_SIZE"||B==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}if(!o||!a||!c||!u||!l){r.status(400).send({error:"bad_param",code:"bad_param",message:"Missing required fields: stage, target_path, mode, attribute_to_user, file"});return}if(!hvt(u)){r.status(400).send({error:"bad_attribute_to_user",code:"bad_attribute_to_user",message:"attribute_to_user must match /^[\\w][\\w\\-.@ ]{0,127}$/ \u2014 alphanumerics, underscore, hyphen, dot, at-sign, space; max 128 chars; cannot start with a separator.",pattern:U_e.source});return}let d=mvt(l.filename),f=mvt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(L_e).join(", ")} are rejected \u2014 they render inline and become a stored-XSS vector. Convert to a non-executable format (PDF, PNG screenshot, plain text) and retry.`,blocked_extensions:Array.from(L_e)});return}let p=J6n(l.mimetype);if(!Z6n(p)){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`MIME type '${p||""}' is rejected \u2014 empty MIME or application/octet-stream cannot be accepted (the latter is a multipart default that bypasses MIME inspection). Send the file's real MIME and retry.`,received_mime:p});return}if(!["replace","create","upsert"].includes(c)){r.status(400).send({error:"bad_param",code:"bad_param",message:"mode must be replace, create, or upsert"});return}if(!gn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Vh(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(gvt(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}let h=(()=>{try{return decodeURIComponent(a)}catch{return a}})();if(h.includes("..")||h.includes("\0")||h.includes("\\")){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let m=h.replace(/^\/+/,""),y=$T(`stages/${o}/${m}`),g=`stages/${o}/artifacts/`;if(!y.startsWith(g)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let E=fe(i),S=I1(E,y),_=S.substring(0,S.lastIndexOf("/")),b=fvt(S),T=fvt(I1(E,g));if(!b.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let A=D_e(S);if(c==="replace"&&!A){r.status(400).send({error:"mode_violation",code:"mode_violation",message:"mode=replace but target does not exist"});return}if(c==="create"&&A){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let R=null,k,x;try{let Z=await _vt(l,E,s);R=Z.tmpPath,k=Z.sha256,x=Z.bytes}catch(Z){if(Z.code==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}let N=cv(E,_,R,S);if(!N.ok){P0(R),R=null,N.code==="parent_chain_contains_symlink"||N.code==="parent_chain_escape"?r.status(400).send({error:"bad_target_path",code:"bad_target_path",reason:N.code}):r.status(500).send({error:"write_failed",code:"write_failed"});return}R=null;let P=x_(E,o),D=w1(P,1),j=new Date().toISOString();await kv(E,P,{entry_type:"human_write",path:y,sha:k,author_class:"human-via-mcp",timestamp:j,claimed_author_id:u,human_author_id:u,entry_id:D,tick_counter:P,tick_scope:"stage"}),await k1(E,{timestamp:j,entry_id:D,path:y,sha:k,author_class:"human-via-mcp",claimed_author_id:u,human_author_id:u,rationale:null,user_instruction_excerpt:null,tick_counter:P,session_id:null,overwrite:A,dirs_created:[],audit_log_appended:!0,tick_scope:"stage"}),r.send({ok:!0,path:y,sha256:k,bytes:x,baseline_updated:!1,tick_will_observe:!0})}),t.post("/api/intents/:intent/uploads/knowledge",async(n,r)=>{if(!Bn(n,r,null))return;let{intent:i}=n.params;if(!gn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!V0(n,r,i))return;if(!Oa(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(yvt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(Svt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=M_e(),o,a=null,c,u;try{let x=n.parts();for await(let N of x)if(N.type==="file")u=N;else{let P=N.value;N.fieldname==="target_filename"?o=P:N.fieldname==="stage"?a=P||null:N.fieldname==="attribute_to_user"&&(c=P)}}catch(x){let N=x.code;if(N==="FST_FILES_LIMIT"||N==="LIMIT_FILE_SIZE"||N==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}if(!o||!c||!u){r.status(400).send({error:"bad_param",code:"bad_param",message:"Missing required fields: target_filename, attribute_to_user, file"});return}if(!hvt(c)){r.status(400).send({error:"bad_attribute_to_user",code:"bad_attribute_to_user",message:"attribute_to_user must match /^[\\w][\\w\\-.@ ]{0,127}$/ \u2014 alphanumerics, underscore, hyphen, dot, at-sign, space; max 128 chars; cannot start with a separator.",pattern:U_e.source});return}let l=(()=>{try{return decodeURIComponent(o)}catch{return o}})();if(l.includes("/")||l.includes("\\")||l.includes("..")||l.includes("\0")){r.status(400).send({error:"bad_target_path",code:"bad_target_path",message:"target_filename must be a basename with no path segments"});return}if(a!==null){if(!gn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Vh(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(gvt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=fe(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=I1(d,f),h=p.substring(0,p.lastIndexOf("/"));if(D_e(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let y=null,g,E;try{let x=await _vt(u,d,s);y=x.tmpPath,g=x.sha256,E=x.bytes}catch(x){if(x.code==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}let S=cv(d,h,y,p);if(!S.ok){P0(y),y=null,S.code==="parent_chain_contains_symlink"||S.code==="parent_chain_escape"?r.status(400).send({error:"bad_target_path",code:"bad_target_path",reason:S.code}):r.status(500).send({error:"write_failed",code:"write_failed"});return}y=null;let _=a===null,b;try{b=_?e1(d):x_(d,a)}catch(x){if(x instanceof Hd){try{Evt(p)}catch{}r.status(500).send({error:"tick_persist_failed",code:"tick_persist_failed",message:x.message});return}throw x}let T=_?"intent":"stage",A=w1(b,1),R=new Date().toISOString();await kv(d,b,{entry_type:"human_write",path:f,sha:g,author_class:"human-via-mcp",timestamp:R,claimed_author_id:c,human_author_id:c,entry_id:A,tick_counter:b,tick_scope:T}),await k1(d,{timestamp:R,entry_id:A,path:f,sha:g,author_class:"human-via-mcp",claimed_author_id:c,human_author_id:c,rationale:null,user_instruction_excerpt:null,tick_counter:b,session_id:null,overwrite:!1,dirs_created:[],audit_log_appended:!0,tick_scope:T}),r.send({ok:!0,path:f,sha256:g,bytes:E,baseline_updated:!1,tick_will_observe:!0})})})}var bvt,pvt,X5,L_e,U_e,vvt=v(()=>{"use strict";bvt=_e(avt(),1);J5();_0();Y5();bZ();ze();Ko();Ug();Ev();pvt=50*1024*1024,X5=50*1024*1024,L_e=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);U_e=/^[\w][\w\-.@ ]{0,127}$/});function Avt(e){e.register(async t=>{t.get("/ws/session/:sessionId",{websocket:!0,preValidation:async(n,r)=>{if(!ji())return;let{sessionId:i}=n.params,s=n.query?.t;if(!s){r.status(401).send({error:"unauthorized",reason:"missing_token"});return}let o=Gh(s,i);if(!o.ok){r.status(401).send({error:"unauthorized",reason:o.reason});return}}},(n,r)=>{let{sessionId:i}=r.params;if(ji()){let c=r.query?.t;if(!c){n.close(4401,"unauthorized");return}if(!Gh(c,i).ok){n.close(4401,"unauthorized");return}}let s=on(i);if(!s){n.close(4404,"session not found");return}if(!Bu.has(i)&&Bu.size>=S1){U_(`upgrade REJECT session=${i} reason=ws_session_cap size=${Bu.size} cap=${S1}`),n.close(1013,"session cap reached");return}Bu.set(i,n),U_(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=hbt(a.intent_slug,c=>{Wh(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!cTt(n)){n.close(1008,"rate limit");return}let u=Array.isArray(c)?Buffer.concat(c).toString("utf8"):typeof c=="string"?c:Buffer.from(c).toString("utf8");uTt(i,u)}),n.on("close",()=>{Bu.get(i)===n&&Bu.delete(i),o&&(o(),o=null)}),n.on("error",()=>{Bu.get(i)===n&&Bu.delete(i),o&&(o(),o=null)})})})}var Rvt=v(()=>{"use strict";X0();Hu();zh();H5()});import{randomUUID as X6n}from"node:crypto";function Q6n(){return j_e}function $6n(e){if(!e)return null;let t=mf.allowedOrigins.filter(r=>r&&r!=="*");return(t.length>0?t:[mf.siteUrl]).includes(e)?e:null}async function eYn(){let e=(0,Pvt.default)({logger:!1,bodyLimit:oD,disableRequestLogging:!0,genReqId:t=>{let n=t.headers["x-request-id"];if(typeof n=="string"&&n.length>0&&n.length<=128)return n;if(Array.isArray(n)&&n[0]){let r=n[0];if(r.length>0&&r.length<=128)return r}return X6n()},requestIdHeader:"x-request-id"});if(e.addHook("onRequest",async(t,n)=>{n.getHeader("x-request-id")||n.header("x-request-id",t.id),t.startTime=process.hrtime.bigint()}),e.addHook("onResponse",async(t,n)=>{let r=n.statusCode,i=t.startTime??void 0,s=i!==void 0?Number(process.hrtime.bigint()-i)/1e6:void 0,o=r>=500?"error":r>=400?"warn":"info";try{console.error(JSON.stringify({level:o,event:"http_response",reqId:t.id,method:t.method,url:t.url,statusCode:r,...s!==void 0?{responseTimeMs:Math.round(s*100)/100}:{}}))}catch{}}),ji()&&await e.register(xvt.default,{origin:(t,n)=>{n(null,$6n(t)??!1)},credentials:!1,methods:["GET","HEAD","POST","PUT","DELETE","OPTIONS"],allowedHeaders:["Authorization","Content-Type","bypass-tunnel-reminder","X-Haiku-CSRF"],exposedHeaders:["X-E2E-Encrypted","X-Original-Content-Type"],strictPreflight:!1,preflightContinue:!1}),ji()){let t=(()=>{let r=process.env.HAIKU_HTTP_RATE_MAX,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1?i:60})(),n=(()=>{let r=process.env.HAIKU_HTTP_RATE_WINDOW_MS,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1e3?i:6e4})();await e.register(Ovt.default,{max:t,timeWindow:n})}return await e.register(Nvt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=FSe((t.url??"/").split("?")[0]);if(!i||!p1(i)||n.statusCode>=400)return r;try{return await $Et(t,n,r)}catch{return r}}),XEt(e,Q6n),MEt(e),fTt(e),fbt(e),abt(e),await Tvt(e),FEt(e),GEt(e),YEt(e),Avt(e),e}function Ivt(e){if(process.env.HAIKU_TRANSPORT_ASSERT==="0"&&process.env.NODE_ENV==="test"){console.error("WARNING: HAIKU_TRANSPORT_ASSERT=0 bypass active (NODE_ENV=test). This is a test-only escape hatch; ignored outside NODE_ENV=test.");return}new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]).has(e)||(console.error(`FATAL: Review HTTP server bound to non-loopback address '${e}'. v1 transport invariant requires loopback-only; terminating.`),process.exit(1))}async function H_(){if(F_&&j_!==null)return j_;ji()&&mf.allowedOrigins.filter(s=>s&&s!=="*").length===0&&console.error("WARNING: HAIKU_REMOTE_REVIEW=1 but no allowed origins configured. Every cross-origin request from the SPA will be rejected by CORS. Set `HAIKU_REVIEW_ALLOWED_ORIGINS` (comma-separated) or `HAIKU_REVIEW_SITE_URL` before starting."),F_=await eYn();let e=process.env.HAIKU_FORCE_BIND_ADDR;e&&e!=="127.0.0.1"&&console.error(`WARNING: HAIKU_FORCE_BIND_ADDR='${e}' overrides the default loopback bind. This is a test/dev-only knob; in production it will trigger the transport-invariant FATAL exit.`);let t=e||"127.0.0.1",n=await F_.listen({host:t,port:0});F_.server.maxConnections=kvt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(j_=Number.parseInt(r[2],10),Ivt(r[1].replace(/^\[|\]$/g,""))),j_===null){let i=F_.server.address();i&&typeof i=="object"&&(j_=i.port,Ivt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${j_} (maxConnections=${kvt}, maxWsSessions=${S1})`),j_e=!0,j_}async function Cvt(){if(F_)try{for(let e of Array.from(Bu.keys()))try{vv(e,"shutdown")}catch{}await F_.close()}finally{F_=null,j_=null,j_e=!1}}var xvt,Ovt,Nvt,Pvt,wvt,kvt,F_,j_,j_e,Q5=v(()=>{"use strict";xvt=_e(i8e(),1),Ovt=_e(S8e(),1),Nvt=_e(Y7e(),1),Pvt=_e(Act(),1);yT();Oi();HEt();zEt();DSe();JEt();QEt();ebt();cbt();pbt();pTt();vvt();H5();Rvt();zh();wvt=256,kvt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return wvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?wvt:Math.max(t,1)})(),F_=null,j_=null,j_e=!1});import{execFileSync as tYn}from"node:child_process";import{cpSync as Mvt,existsSync as q_e,mkdirSync as F_e}from"node:fs";import{homedir as Dvt}from"node:os";import{join as B_e}from"node:path";function iYn(){return B_e(Dvt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function sYn(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of nYn)q_e(B_e(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function oYn(){if(rd==="dev")return{ok:!1,method:"skipped",reason:"dev_build_no_npm_source"};let e=nn();if(!e)return{ok:!1,method:"skipped",reason:"no_target_path"};let t=iYn();if(q_e(t))try{return F_e(e,{recursive:!0}),Mvt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=B_e(Dvt(),".claude","plugins","npm-cache");try{return F_e(n,{recursive:!0}),tYn("npm",["install",`haiku-method@${rd}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),q_e(t)?(F_e(e,{recursive:!0}),Mvt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-install"}):{ok:!1,method:"npm-install",reason:"npm_install_no_module"}}catch(r){return{ok:!1,method:"npm-install",reason:"npm_install_failed",error:r instanceof Error?r.message:String(r)}}}function Lvt(e){let t=Date.now();if(t-H_e{"use strict";Oi();$p();ab();nYn=["studios","schemas",".claude-plugin/plugin.json"],rYn=5e3,H_e=0});var Rt=v(()=>{"use strict"});var aYn,cYn,jvt,Fvt=v(()=>{"use strict";_t();mt();Rt();aYn=new ve({autoEscape:!1,useWith:!0}),cYn=se("@canon:feedback/changes_requested"),jvt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return aYn.renderString(cYn,{slug:e,message:r,annotations:n})}});var uYn,lYn,Hvt,qvt=v(()=>{"use strict";_t();mt();Rt();uYn=new ve({autoEscape:!1,useWith:!0}),lYn=se("@canon:feedback/close_feedback"),Hvt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return uYn.renderString(lYn,{slug:e,stage:n,fbId:r})}});var dYn,fYn,Bvt,Gvt=v(()=>{"use strict";_t();Xi();mt();Rt();dYn=new ve({autoEscape:!1,useWith:!0}),fYn=se("@canon:feedback/feedback_question"),Bvt=e=>{let t=e.action;return dYn.renderString(fYn,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:OI(e.dir)==="autopilot"})}});var pYn,hYn,zvt,Vvt=v(()=>{"use strict";_t();mt();Rt();pYn=new ve({autoEscape:!1,useWith:!0}),hYn=se("@canon:feedback/fix_quality_gates"),zvt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return pYn.renderString(hYn,{slug:e,stageHint:r,message:i})}});import{existsSync as $5}from"node:fs";import{join as mYn}from"node:path";var Wvt,gYn,yYn,Kvt,Zvt=v(()=>{"use strict";_t();yf();ze();Zn();Sl();Xi();mt();Oh();Rt();Wvt=new ve({autoEscape:!1,useWith:!0}),gYn=se("@canon:feedback/intent_completion_fix"),yYn=se("@canon:feedback/intent_completion_fix","subagent.eta.md"),Kvt=({slug:e,studio:t,action:n})=>{let r=n.fix_hats||[],i=n.max_bolts||Og,s=n.items||[],o=n.total_pending||s.length,a=n.escalated_count||0,c=we(),u=yfe(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:y,branch:g})=>{let E=mYn(c,p),S=Number.parseInt(f.replace(/^FB-/i,""),10)||0,_=[],b=null,T="";for(let A=r.length-1;A>=0;A--){let R=r[A],k=u[R];k||_.push(`> **Warning:** studio fix-hat \`${R}\` has no mandate file in \`plugin/studios/${t}/fix-hats/${R}.md\`. The subagent will run without a mandate \u2014 this is likely a studio bug.`);let x=A===r.length-1,N=k&&$5(k)?_l(k,`Fix-hat mandate: ${R}`):"",P=k&&$5(k)?RI(AI(k)):"",D=$5(E)?_l(E,`Feedback: ${f} \u2014 ${h}`):"",j=$5(E)?wI(E):"",V=Wvt.renderString(yYn,{hat:R,fbId:f,fbNum:S,fbTitle:h,fixBolt:m,fixMaxBolts:i,slug:e,fbWorktree:y,fbBranch:g,hatMandateInline:N,hatInterpBlock:P,fbInline:D,priorRejectBlock:j,gitRepo:Ae(),isLast:x}),Z=k?Nu({mandatePath:k,studio:t}):void 0,B=Ei({unit:`fix-${f}`,hat:R,bolt:m,intent:e,agentType:"general-purpose",model:Z,promptBody:V,heading:`#### Subagent: \`${R}\`${x?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!x&&b)try{VK({unit:`fix-${f}`,hat:R,bolt:m,intent:e},b)}catch{}b=B,A===0&&(T=B)}return{fbId:f,fbTitle:h,fixBolt:m,warnings:_.join(` -`),firstHatBlock:T}}),d=Ni().subagents.backgroundSpawn?'`background="true"` \u2192 `run_in_background: true` (always present on fix-loop dispatches \u2014 pass it through; the parent waits on results, so foreground would block this thread); ':"";return Wvt.renderString(gYn,{slug:e,itemCount:s.length,fixHatsList:r,fixMaxBolts:i,escalatedCount:a,totalPending:o,showTotalsLine:o!==s.length+a,showAnnouncement:s.length>1,announcementBlock:ys("workflow-contracts-announcement"),workflowContractsBlock:ys("workflow-contracts-fix-loop"),findings:l,bgClause:d})}});import{existsSync as e6}from"node:fs";import{join as t6}from"node:path";var Yvt,SYn,_Yn,Jvt,Xvt=v(()=>{"use strict";_t();Oi();yf();ze();Zn();Sl();_o();Xi();mt();Oh();Rt();Yvt=new ve({autoEscape:!1,useWith:!0}),SYn=se("@canon:feedback/review_fix"),_Yn=se("@canon:feedback/review_fix","subagent.eta.md"),Jvt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.fix_hats||[],s=n.max_bolts||Og,o=n.items||[],a=n.total_pending||o.length,c=n.escalated_count||0,u=we(),l=Iu(t,r),d=_i(t),f=d?d.dir:t,p=nn(),h=Mf(t6(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:g,feedback_file:E,feedback_title:S,bolt:_,worktree:b,branch:T})=>{let A=t6(u,E),R=Number.parseInt(g.replace(/^FB-/i,""),10)||0,k=[],x=null,N="";for(let P=i.length-1;P>=0;P--){let D=i[P],j=l[D];j||k.push(`> **Warning:** hat \`${D}\` declared in \`fix_hats\` has no mandate file in \`hats/${D}.md\`. The subagent will run without a mandate \u2014 this is likely a studio bug.`);let V=j?t6(p,"studios",f,"stages",r,"hats",`${D}.md`):null,Z=P===i.length-1,B=h?_l(h,`Stage scope: ${r}`):"",G=V&&e6(V)?_l(V,`Hat mandate: ${D}`):"",X=V&&e6(V)?RI(AI(V)):"",q=e6(A)?_l(A,`Feedback: ${g} \u2014 ${S}`):"",C=e6(A)?wI(A):"",z=Yvt.renderString(_Yn,{hat:D,fbId:g,fbNum:R,fbTitle:S,fixBolt:_,fixMaxBolts:s,fixStage:r,slug:e,fbWorktree:b,fbBranch:T,stageBaseInline:B,hatMandateInline:G,hatInterpBlock:X,fbInline:q,priorRejectBlock:C,gitRepo:Ae(),isLast:Z}),U=t6(nn(),"studios",t,"stages",r,"hats",`${D}.md`),M=Nu({mandatePath:U,studio:t,stage:r}),H=Ei({unit:`fix-${g}`,hat:D,bolt:_,intent:e,stage:r,agentType:j?.agent_type??"general-purpose",model:M??j?.model,promptBody:z,heading:`#### Subagent: \`${D}\`${Z?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!Z&&x)try{VK({unit:`fix-${g}`,hat:D,bolt:_,intent:e,stage:r},x)}catch{}x=H,P===0&&(N=H)}return{fbId:g,fbTitle:S,fixBolt:_,warnings:k.join(` -`),firstHatBlock:N}}),y=Ni().subagents.backgroundSpawn?'`background="true"` \u2192 `run_in_background: true` (always present on fix-loop dispatches \u2014 pass it through; the parent waits on results, so foreground would block this thread); ':"";return Yvt.renderString(SYn,{slug:e,fixStage:r,itemCount:o.length,fixHatsList:i,fixMaxBolts:s,escalatedCount:c,totalPending:a,showTotalsLine:a!==o.length+c,showAnnouncement:o.length>1,announcementBlock:ys("workflow-contracts-announcement"),workflowContractsBlock:ys("workflow-contracts-fix-loop"),findings:m,bgClause:y})}});import{existsSync as Qvt,readdirSync as $vt,readFileSync as eAt}from"node:fs";import{join as rx}from"node:path";function TYn(e){if(!Bo.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?rx(vr(t,n),"feedback"):rx(fe(t),"feedback");try{let p=Qvt(f)?$vt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=eAt(rx(f,p[0]),"utf8");o=(0,G_e.default)(h).data.model}}catch{}}let a=n?Iu(r,n)?.[i]:void 0,c=n?Yi(r,n):void 0,u=Id(r),l=o_({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var G_e,EYn,bYn,tAt,nAt=v(()=>{"use strict";_t();G_e=_e(sn(),1);Oi();a_();ze();Zn();bpe();Xi();mt();Oh();Rt();EYn=new ve({autoEscape:!1,useWith:!0}),bYn=se("@canon:feedback/start_feedback_hat");tAt=({slug:e,studio:t,action:n})=>{let r=n.dispatches??[];if(r.length===0&&Array.isArray(n.feedback_ids)){let s=n.stage??"",o=n.hat??"",a=n.terminal??!1;r=n.feedback_ids.map(c=>({feedback_id:c,stage:s,hat:o,terminal:a}))}r=r.filter(s=>{let o=s.feedback_id.replace(/^FB-/i,""),a=s.stage?rx(vr(e,s.stage),"feedback"):rx(fe(e),"feedback");if(!Qvt(a))return!0;let c=$vt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=eAt(rx(a,c[0]),"utf8"),l=(0,G_e.default)(u).data,d=l.closed_at;if(d instanceof Date||typeof d=="string"&&d.length>0||typeof l.status=="string"&&l.status==="closed"||typeof l.closed_by=="string"&&l.closed_by.startsWith("fix-loop:"))return!1}catch{}return!0});let i=r.map(s=>{let o=TYn({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=CI({slug:e,studio:t,feedbackId:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal});return{feedback_id:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal,fb_int:Number.parseInt(s.feedback_id.replace(/^FB-/i,""),10)||0,model_tier:o?.model,model_source:o?.source,hat_path:s.stage?fI(t,s.stage,s.hat):null,dispatch_block:a}});return EYn.renderString(bYn,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?NI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:ys("workflow-contracts-fix-loop")})}});var vYn,AYn,rAt,iAt=v(()=>{"use strict";_t();mt();Rt();vYn=new ve({autoEscape:!1,useWith:!0}),AYn=se("@canon:global/complete"),rAt=({action:e})=>vYn.renderString(AYn,{message:e.message??""})});var RYn,wYn,sAt,oAt=v(()=>{"use strict";_t();mt();Rt();RYn=new ve({autoEscape:!1,useWith:!0}),wYn=se("@canon:global/error"),sAt=({action:e})=>RYn.renderString(wYn,{message:e.message??""})});var kYn,IYn,aAt,cAt=v(()=>{"use strict";_t();mt();Rt();kYn=new ve({autoEscape:!1,useWith:!0}),IYn=se("@canon:global/loop_halted"),aAt=({action:e})=>{let t=e;return kYn.renderString(IYn,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function NYn(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var xYn,OYn,uAt,lAt=v(()=>{"use strict";_t();Zn();mt();Rt();xYn=new ve({autoEscape:!1,useWith:!0}),OYn=se("@canon:intent/reflection/record_reflection");uAt=({slug:e,studio:t})=>{let n=t?Object.entries(_dt(t)).map(([r,i])=>({name:r,body:NYn(i)})):[];return xYn.renderString(OYn,{slug:e,dimensions:n})}});var PYn,CYn,dAt,fAt=v(()=>{"use strict";_t();mt();Rt();PYn=new ve({autoEscape:!1,useWith:!0}),CYn=se("@canon:intent/repair/external_review_requested"),dAt=({action:e})=>PYn.renderString(CYn,{message:e.message??""})});var MYn,DYn,pAt,hAt=v(()=>{"use strict";_t();mt();Rt();MYn=new ve({autoEscape:!1,useWith:!0}),DYn=se("@canon:intent/repair/revise_unit_specs"),pAt=({action:e})=>MYn.renderString(DYn,{message:e.message??""})});var LYn,UYn,mAt,gAt=v(()=>{"use strict";_t();mt();Rt();LYn=new ve({autoEscape:!1,useWith:!0}),UYn=se("@canon:intent/repair/safe_intent_repair"),mAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return LYn.renderString(UYn,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});function HYn(e,t){return[`You are the \`${t}\` intent-completion reviewer for intent \`${e}\`.`,"","## Mandate (fallback \u2014 no studio-configured mandate file was found)","",`1. Read every stage's \`outputs/\` and \`elaboration.md\` under \`.haiku/intents/${e}/stages/\`.`,`2. Read the intent body at \`.haiku/intents/${e}/intent.md\`.`,"3. Judge the intent-as-a-whole: work that contradicts another stage's output, missing coverage of an acceptance criterion across all stages, any cross-stage inconsistency (terminology, scope, technical choices).",`4. For each finding, file \`haiku_feedback\` with \`intent: "${e}"\` (omit \`stage\`), \`origin: "agent"\`, \`author: "${t}"\`, and a body that quotes the artifact you're flagging. ALSO file one against the studio noting the missing mandate file at \`plugin/studios//intent-review-agents/${t}.md\`.`,'5. When done, return your verdict in one paragraph: which findings you filed (by FB-NN), or "no findings".',"","Do NOT modify any artifact files. Reviewer role, not fixer."].join(` -`)}function qYn(e,t,n){let r=jYn[n],i="",s,o;if(r){let c=n6.renderString(r,{slug:e}).trim();i=`**Read** \`${p_({intent:e,kind:"engine-body",name:n,body:c})}\``}else{let c=kh(t,void 0,n);c&&(i=kr({resolveBody:()=>c,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=Nu({mandatePath:dg(t)[n],studio:t}))}return o=i?n6.renderString(FYn,{slug:e,role:n,mandateRef:i,doctrineRef:OT.has(n)?ys("runtime-verification"):"",prInteraction:ppe.has(n),existingFeedback:kI(e,""),decisions:II(e)}):HYn(e,n),{dispatchBlock:Ei({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:o,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var jYn,n6,yAt,FYn,SAt,_At=v(()=>{"use strict";_t();Zn();Sl();Xi();mt();Oh();Rt();jYn={spec:se("@canon:intent/review/intent_review","engine-bodies/spec.eta.md"),continuity:se("@canon:intent/review/intent_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":se("@canon:intent/review/intent_review","engine-bodies/cross_stage_consistency.eta.md")},n6=new ve({autoEscape:!1,useWith:!0}),yAt=se("@canon:intent/review/intent_review"),FYn=se("@canon:intent/review/intent_review","subagent.eta.md");SAt=({slug:e,studio:t,action:n})=>{let r=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||""}];if(r.length===1&&r[0]?.role==="user")return n6.renderString(yAt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>qYn(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` +`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function pvt(e){return m6n[e]}var rZ=0,hvt=1,VEe=2,mvt=3;function g6n(e){let t=[],n=rZ,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";yvt.exports=function(t){if(typeof t!="string")return"";for(var n=t.length-1;n>=0;--n)switch(t.charCodeAt(n)){case 47:case 92:return t=t.slice(n+1),t===".."||t==="."?"":t}return t===".."||t==="."?"":t}});var Tvt=w((Nyi,bvt)=>{"use strict";var{Readable:_vt}=Y("node:stream"),{inherits:y6n}=Y("node:util"),S6n=GEe(),Evt=WEe(),E6n=tZ(),_6n=Svt(),Ov=eZ(),b6n=/^boundary$/i,T6n=/^form-data$/i,v6n=/^charset$/i,A6n=/^filename$/i,R6n=/^name$/i;iZ.detect=/^multipart\/form-data/i;function iZ(e,t){let n,r,i=this,s,o=t.limits,a=t.isPartAFile||((P,N,C)=>N==="application/octet-stream"||C!==void 0),c=t.parsedConType||[],u=t.defCharset||"utf8",l=t.preservePath,d={highWaterMark:t.fileHwm};for(n=0,r=c.length;ny)return i.parser.removeListener("part",P),i.parser.on("part",cx),e.hitPartsLimit=!0,e.emit("partsLimit"),cx(N);if(R){let C=R;C.emit("end"),C.removeAllListeners("end")}N.on("header",function(C){let F,V,K,$,B,X,G=0;if(C["content-type"]&&(K=Evt(C["content-type"][0]),K[0])){for(F=K[0].toLowerCase(),n=0,r=K.length;nh){let H=h-G+D.length;H>0&&U.push(D.slice(0,H)),U.truncated=!0,U.bytesRead=h,N.removeAllListeners("data"),U.emit("limit");return}else U.push(D)||(i._pause=!0);U.bytesRead=G},q=function(){A=void 0,U.push(null)}}else{if(b===g)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),cx(N);++b,++T;let U="",D=!1;R=N,M=function(H){if((G+=H.length)>p){let j=p-(G-H.length);U+=H.toString("binary",0,j),D=!0,N.removeAllListeners("data")}else U+=H.toString("binary")},q=function(){R=void 0,U.length&&(U=E6n(U,"binary",$)),e.emit("field",V,U,!1,D,B,F),--T,f()}}N._readableState.sync=!1,N.on("data",M),N.on("end",q)}).on("error",function(C){A&&A.emit("error",C)})}).on("error",function(P){e.emit("error",P)}).on("finish",function(){x=!0,f()})}iZ.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};iZ.prototype.end=function(){let e=this;e.parser.writable?e.parser.end():e._boy._done||process.nextTick(function(){e._boy._done=!0,e._boy.emit("finish")})};function cx(e){e.resume()}function KEe(e){_vt.call(this,e),this.bytesRead=0,this.truncated=!1}y6n(KEe,_vt);KEe.prototype._read=function(e){};bvt.exports=iZ});var Avt=w((Cyi,vvt)=>{"use strict";var w6n=/\+/g,k6n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function YEe(){this.buffer=void 0}YEe.prototype.write=function(e){e=e.replace(w6n," ");let t="",n=0,r=0,i=e.length;for(;nr&&(t+=e.substring(r,n),r=n),this.buffer="",++r);return r{"use strict";var I6n=Avt(),ux=tZ(),ZEe=eZ(),x6n=/^charset$/i;sZ.detect=/^application\/x-www-form-urlencoded/i;function sZ(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=ZEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=ZEe(n,"fieldNameSize",100),this.fieldsLimit=ZEe(n,"fields",1/0);let i;for(var s=0,o=r.length;ss&&(this._key+=this.decoder.write(e.toString("binary",s,n))),this._state="val",this._hitLimit=!1,this._checkingBytes=!0,this._val="",this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),s=n+1;else if(r!==void 0){++this._fields;let a,c=this._keyTrunc;if(r>s?a=this._key+=this.decoder.write(e.toString("binary",s,r)):a=this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),a.length&&this.boy.emit("field",ux(a,"binary",this.charset),"",c,!1),s=r+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(i>s&&(this._key+=this.decoder.write(e.toString("binary",s,i))),s=i,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(ss&&(this._val+=this.decoder.write(e.toString("binary",s,r))),this.boy.emit("field",ux(this._key,"binary",this.charset),ux(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this._state="key",this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),s=r+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(i>s&&(this._val+=this.decoder.write(e.toString("binary",s,i))),s=i,(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(s0?this.boy.emit("field",ux(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",ux(this._key,"binary",this.charset),ux(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};Rvt.exports=sZ});var xvt=w((Dyi,M1)=>{"use strict";var JEe=Y("node:stream").Writable,{inherits:O6n}=Y("node:util"),P6n=GEe(),kvt=Tvt(),Ivt=wvt(),N6n=WEe();function qg(e){if(!(this instanceof qg))return new qg(e);if(typeof e!="object")throw new TypeError("Busboy expected an options-Object.");if(typeof e.headers!="object")throw new TypeError("Busboy expected an options-Object with headers-attribute.");if(typeof e.headers["content-type"]!="string")throw new TypeError("Missing Content-Type-header.");let{headers:t,...n}=e;this.opts={autoDestroy:!1,...n},JEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}O6n(qg,JEe);qg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}JEe.prototype.emit.apply(this,arguments)};qg.prototype.getParserByHeaders=function(e){let t=N6n(e["content-type"]),n={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(kvt.detect.test(t[0]))return new kvt(this,n);if(Ivt.detect.test(t[0]))return new Ivt(this,n);throw new Error("Unsupported Content-Type.")};qg.prototype._write=function(e,t,n){this._parser.write(e,n)};M1.exports=qg;M1.exports.default=qg;M1.exports.Busboy=qg;M1.exports.Dicer=P6n});var Nvt=w((Lyi,Pvt)=>{"use strict";var Bg=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],Pv=Math.random;function Ovt(){return Bg[255*Pv()|0]+Bg[255*Pv()|0]+Bg[255*Pv()|0]+Bg[255*Pv()|0]+Bg[255*Pv()|0]+Bg[255*Pv()|0]+Bg[255*Pv()|0]}Pvt.exports.generateId=(function(){let t=0,n=Ovt();return function(){return t===255?(n=Ovt())+Bg[t=0]:n+Bg[++t]}})()});var Mvt=w((Uyi,Cvt)=>{"use strict";Cvt.exports=function(t){return new Promise((n,r)=>{t.on("data",()=>{}),t.on("close",()=>{n()}),t.on("end",()=>{n()}),t.on("error",i=>{r(i)})})}});var Uvt=w((Fyi,D1)=>{"use strict";var Dvt=Object.getPrototypeOf({});function Lvt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function XEe(e){function t(y){return y!=="constructor"&&y!=="prototype"&&y!=="__proto__"}function n(y){let E=0,S=y.length,_=new Array(S);for(E;E"u")continue;S[R]=p(E[R])}return S}function m(y,E){if(l&&typeof E>"u")return p(y);let S=Array.isArray(E),_=Array.isArray(y);return d(E)?E:u(y)?S&&_?f(y,E):S!==_?p(E):h(y,E):p(E)}function g(){switch(arguments.length){case 0:return{};case 1:return p(arguments[0]);case 2:return m(arguments[0],arguments[1])}let y;for(let E=0,S=arguments.length;E{"use strict";var C6n=xvt(),M6n=Y("node:os"),D6n=FC(),{createWriteStream:L6n}=Y("node:fs"),{unlink:U6n}=Y("node:fs/promises"),Fvt=Y("node:path"),{generateId:F6n}=Nvt(),Gg=cW(),j6n=Mvt(),H6n=Uvt()({all:!0}),{PassThrough:q6n,Readable:B6n}=Y("node:stream"),{pipeline:G6n}=Y("node:stream/promises"),z6n=Aue(),e_e=Symbol("multipart"),oZ=Symbol("multipartHandler"),L1=Symbol("savedRequestFilesResult"),jvt=Gg("FST_PARTS_LIMIT","reach parts limit",413),Hvt=Gg("FST_FILES_LIMIT","reach files limit",413),qvt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),QEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),$Ee=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),Bvt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),Gvt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),zvt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),V6n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function W6n(e,t,n){e[e_e]=!0,n()}function K6n(e){try{return new C6n(e)}catch(t){let n=new q6n;return process.nextTick(function(){n.emit("error",t)}),n}}function t_e(e,t,n){t.limits={...t.limits,parts:t.limits?.parts||1e3,fileSize:t.limits?.fileSize||e.initialConfig.bodyLimit};let r=t.attachFieldsToBody;(r===!0||r==="keyValues")&&(typeof t.sharedSchemaId=="string"&&r===!0&&e.addSchema({$id:t.sharedSchemaId,type:"object",properties:{fieldname:{type:"string"},encoding:{type:"string"},filename:{type:"string"},mimetype:{type:"string"}}}),e.addHook("preValidation",async function(p){if(p.isMultipart()){for await(let h of p.parts(p.routeOptions.config.multipartOptions))p.body=h.fields,h.file&&(t.onFile?await t.onFile.call(p,h):await h.toBuffer());if(r==="keyValues"){let h={};if(p.body){let m=Object.keys(p.body);for(let g=0;g{await p.cleanRequestFiles()});function s(){return this[e_e]}function o(p={}){if(!this.isMultipart())throw new Bvt;this.log.debug("starting multipart parsing");let h=[],m=null,g=C=>{m?(m(C),m=null):h.push(C)},y=C=>{if(h.length>0){let F=h[0];h=h.slice(1),C(F)}else m=C},E=()=>new Promise((C,F)=>{y(V=>{V instanceof Error?V.message==="Unexpected end of multipart data"?C(null):F(V):C(V)})}),S={},_=null,b=null,T=this.raw,A=H6n({headers:T.headers},t,p);this.log.trace({busboyOptions:A},"Providing options to busboy");let R=K6n(A);T.on("close",N),T.on("error",N),R.on("field",x).on("file",k).on("end",N).on("finish",N).on("close",N).on("error",N),R.on("partsLimit",function(){let C=new jvt;P(C),process.nextTick(()=>N(C))}),R.on("filesLimit",function(){let C=new Hvt;P(C),process.nextTick(()=>N(C))}),R.on("fieldsLimit",function(){let C=new qvt;P(C),process.nextTick(()=>N(C))}),T.pipe(R);function x(C,F,V,K,$,B){if(C in Object.prototype){P(new $Ee);return}if(B.startsWith("application/json")){if(K){P(new Gvt);return}try{F=z6n.parse(F),B="application/json"}catch{P(new Gvt);return}}let X={type:"field",fieldname:C,mimetype:B,encoding:$,value:F,fieldnameTruncated:V,valueTruncated:K,fields:S};S[C]===void 0?S[C]=X:Array.isArray(S[C])?S[C].push(X):S[C]=[S[C],X],g(X)}function k(C,F,V,K,$){if(C in Object.prototype){j6n(F).catch(()=>{}),P(new $Ee);return}let B=typeof p.throwFileSizeLimit=="boolean"?p.throwFileSizeLimit:i,X={type:"file",fieldname:C,filename:V,encoding:K,mimetype:$,file:F,fields:S,_buf:null,async toBuffer(){if(this._buf)return this._buf;let G=[],M;for await(let q of this.file)G.push(q),B&&this.file.truncated&&(M=new QEe,M.part=this,P(M),G.length=0);if(M)throw M;return this._buf=Buffer.concat(G),this._buf}};F.on("error",function(G){G.message&&G.message.includes("terminated early")&&P(G)}),B&&F.on("limit",function(){let G=new QEe;G.part=X,P(G)}),S[C]===void 0?S[C]=X:Array.isArray(S[C])?S[C].push(X):S[C]=[S[C],X],b=F,g(X)}function P(C){_=C,b=null}function N(C){T.unpipe(R),(C||T.aborted)&&b&&(b.destroy(),b=null),g(C||_||null)}return E}async function a(p){if(this[L1])return this[L1];let h,m={};r===!0||r==="keyValues"?(h=this.body?c.call(this,this.body):[],m=this.body||{}):h=this.parts(p),this.savedRequestFiles=[];let g=p?.tmpdir||M6n.tmpdir();this.tmpUploads=[];let y=0;for await(let E of h){if(m=E.fields,!E.file)continue;let S=Fvt.join(g,F6n()+Fvt.extname(E.filename||"file"+y++)),_=L6n(S);try{this.tmpUploads.push(S),await G6n(E.file,_),this.savedRequestFiles.push({...E,filepath:S})}catch(b){throw _.destroy(),await this.cleanRequestFiles(),this.log.error({err:b},"save request file"),b}}return this[L1]={files:this.savedRequestFiles,values:m},this[L1]}function*c(p){try{let h=Array.isArray(p)?p:Object.values(p);for(let m=0;m(n.type="string",n.format="binary",delete n.isFile,r=>!!r.file),error:{message:"should be a file"}})}U1.exports=D6n(t_e,{fastify:"5.x",name:"@fastify/multipart"});U1.exports.default=t_e;U1.exports.fastifyMultipart=t_e;U1.exports.ajvFilePlugin=Y6n});import{mkdirSync as Z6n}from"node:fs";import{open as J6n}from"node:fs/promises";import{dirname as X6n,join as Q6n}from"node:path";function H1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function Kvt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function j1(e){return Buffer.byteLength(e,"utf-8")}function n_e(e,t){if(j1(e)<=t)return e;let n="...[truncated]",r=j1(n),i=Math.max(0,t-r),s=Buffer.from(e,"utf-8"),o=i;for(;o>0&&(s[o]&192)===128;)o--;return`${s.slice(0,o).toString("utf-8")}${n}`}function r8n(e){let t=(s,o)=>s==null?null:n_e(s,o),n={...e,path:n_e(e.path,e8n),claimed_author_id:t(e.claimed_author_id,Wvt),human_author_id:t(e.human_author_id,Wvt),rationale:t(e.rationale,$6n),dirs_created:(e.dirs_created??[]).slice(0,t8n).map(s=>n_e(s,n8n))},r=JSON.stringify(n),i=j1(r);return i>aZ?{ok:!1,reason:"record_too_large",bytes:i,cap:aZ}:{ok:!0,record:n,line:r}}function i8n(e){return Q6n(e,"write-audit.jsonl")}async function s8n(e,t){let n=F1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});F1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=F1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{F1.get(e)===s&&F1.delete(e)})})}}async function Yvt(e,t){try{Z6n(X6n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return s8n(e,async()=>{let n=null;try{return n=await J6n(e,"a"),await n.write(`${t} +`),await n.sync(),{ok:!0}}catch(r){return{ok:!1,reason:String(r)}}finally{n!==null&&await n.close().catch(()=>{})}})}async function q1(e,t){let n=r8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=i8n(e);return Yvt(r,n.line)}async function Zvt(e,t){return j1(t)>aZ?{ok:!1,reason:`record_too_large (bytes=${j1(t)}, cap=${aZ})`}:Yvt(e,t)}var aZ,$6n,Wvt,e8n,t8n,n8n,F1,cZ=v(()=>{"use strict";aZ=16*1024,$6n=4096,Wvt=128,e8n=1024,t8n=16,n8n=512;F1=new Map});import{join as o8n}from"node:path";function r_e(e){return o8n(e,"action-log.jsonl")}async function Nv(e,t,n){let r=r_e(e),i=JSON.stringify(n);return Zvt(r,i)}var uZ=v(()=>{"use strict";cZ()});import{createHash as a8n}from"node:crypto";import{createWriteStream as c8n,existsSync as s_e,readFileSync as u8n,unlinkSync as iAt}from"node:fs";import{join as B1,resolve as Jvt}from"node:path";function l8n(e){return!(!e||e==="application/octet-stream")}function Qvt(e){return typeof e!="string"?!1:a_e.test(e)}function d8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function f8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function $vt(e){return o_e.has(d8n(e))}function i_e(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=Xvt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?Xvt:n}return t>lZ?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(lZ)}),lZ):Math.min(t,lZ)}function eAt(e,t){try{let n=B1(pe(e),"stages",t,"state.json");if(!s_e(n))return!1;let r=u8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function tAt(e){return u1(pe(e))}function nAt(e){return c1(pe(e))}async function rAt(e,t,n){let r=B1(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=a8n("sha256"),s=0,o=c8n(r),a=new Promise(c=>{o.on("close",()=>{c()})});return await new Promise((c,u)=>{o.on("error",u),o.on("finish",c),e.file.on("error",u),e.file.on("data",l=>{if(s+=l.length,s>n){e.file.destroy(),o.destroy(),u(Object.assign(new Error("payload_too_large"),{code:"PAYLOAD_TOO_LARGE"}));return}i.update(l)}),e.file.on("end",()=>{o.end()}),e.file.pipe(o)}).catch(async c=>{await a.catch(()=>{});try{iAt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function oAt(e){await e.register(async t=>{await t.register(sAt.default,{limits:{fileSize:i_e()+1,files:1}}),t.post("/api/intents/:intent/uploads/stage-output",async(n,r)=>{if(!Gn(n,r,null))return;let{intent:i}=n.params;if(!gn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!X0(n,r,i))return;if(!La(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(tAt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(nAt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=i_e(),o,a,c,u,l;try{let K=n.parts();for await(let $ of K)if($.type==="file")l=$;else{let B=$.value;$.fieldname==="stage"?o=B:$.fieldname==="target_path"?a=B:$.fieldname==="mode"?c=B:$.fieldname==="attribute_to_user"&&(u=B)}}catch(K){let $=K.code;if($==="FST_FILES_LIMIT"||$==="LIMIT_FILE_SIZE"||$==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}if(!o||!a||!c||!u||!l){r.status(400).send({error:"bad_param",code:"bad_param",message:"Missing required fields: stage, target_path, mode, attribute_to_user, file"});return}if(!Qvt(u)){r.status(400).send({error:"bad_attribute_to_user",code:"bad_attribute_to_user",message:"attribute_to_user must match /^[\\w][\\w\\-.@ ]{0,127}$/ \u2014 alphanumerics, underscore, hyphen, dot, at-sign, space; max 128 chars; cannot start with a separator.",pattern:a_e.source});return}let d=$vt(l.filename),f=$vt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(o_e).join(", ")} are rejected \u2014 they render inline and become a stored-XSS vector. Convert to a non-executable format (PDF, PNG screenshot, plain text) and retry.`,blocked_extensions:Array.from(o_e)});return}let p=f8n(l.mimetype);if(!l8n(p)){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`MIME type '${p||""}' is rejected \u2014 empty MIME or application/octet-stream cannot be accepted (the latter is a multipart default that bypasses MIME inspection). Send the file's real MIME and retry.`,received_mime:p});return}if(!["replace","create","upsert"].includes(c)){r.status(400).send({error:"bad_param",code:"bad_param",message:"mode must be replace, create, or upsert"});return}if(!gn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Xh(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(eAt(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}let h=(()=>{try{return decodeURIComponent(a)}catch{return a}})();if(h.includes("..")||h.includes("\0")||h.includes("\\")){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let m=h.replace(/^\/+/,""),g=nv(`stages/${o}/${m}`),y=`stages/${o}/artifacts/`;if(!g.startsWith(y)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let E=pe(i),S=B1(E,g),_=S.substring(0,S.lastIndexOf("/")),b=Jvt(S),T=Jvt(B1(E,y));if(!b.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let A=s_e(S);if(c==="replace"&&!A){r.status(400).send({error:"mode_violation",code:"mode_violation",message:"mode=replace but target does not exist"});return}if(c==="create"&&A){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let R=null,x,k;try{let K=await rAt(l,E,s);R=K.tmpPath,x=K.sha256,k=K.bytes}catch(K){if(K.code==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}let P=fv(E,_,R,S);if(!P.ok){U0(R),R=null,P.code==="parent_chain_contains_symlink"||P.code==="parent_chain_escape"?r.status(400).send({error:"bad_target_path",code:"bad_target_path",reason:P.code}):r.status(500).send({error:"write_failed",code:"write_failed"});return}R=null;let N=DE(E,o),C=H1(N,1),F=new Date().toISOString();await Nv(E,N,{entry_type:"human_write",path:g,sha:x,author_class:"human-via-mcp",timestamp:F,claimed_author_id:u,human_author_id:u,entry_id:C,tick_counter:N,tick_scope:"stage"}),await q1(E,{timestamp:F,entry_id:C,path:g,sha:x,author_class:"human-via-mcp",claimed_author_id:u,human_author_id:u,rationale:null,user_instruction_excerpt:null,tick_counter:N,session_id:null,overwrite:A,dirs_created:[],audit_log_appended:!0,tick_scope:"stage"}),r.send({ok:!0,path:g,sha256:x,bytes:k,baseline_updated:!1,tick_will_observe:!0})}),t.post("/api/intents/:intent/uploads/knowledge",async(n,r)=>{if(!Gn(n,r,null))return;let{intent:i}=n.params;if(!gn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!X0(n,r,i))return;if(!La(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(tAt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(nAt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=i_e(),o,a=null,c,u;try{let k=n.parts();for await(let P of k)if(P.type==="file")u=P;else{let N=P.value;P.fieldname==="target_filename"?o=N:P.fieldname==="stage"?a=N||null:P.fieldname==="attribute_to_user"&&(c=N)}}catch(k){let P=k.code;if(P==="FST_FILES_LIMIT"||P==="LIMIT_FILE_SIZE"||P==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}if(!o||!c||!u){r.status(400).send({error:"bad_param",code:"bad_param",message:"Missing required fields: target_filename, attribute_to_user, file"});return}if(!Qvt(c)){r.status(400).send({error:"bad_attribute_to_user",code:"bad_attribute_to_user",message:"attribute_to_user must match /^[\\w][\\w\\-.@ ]{0,127}$/ \u2014 alphanumerics, underscore, hyphen, dot, at-sign, space; max 128 chars; cannot start with a separator.",pattern:a_e.source});return}let l=(()=>{try{return decodeURIComponent(o)}catch{return o}})();if(l.includes("/")||l.includes("\\")||l.includes("..")||l.includes("\0")){r.status(400).send({error:"bad_target_path",code:"bad_target_path",message:"target_filename must be a basename with no path segments"});return}if(a!==null){if(!gn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Xh(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(eAt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=pe(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=B1(d,f),h=p.substring(0,p.lastIndexOf("/"));if(s_e(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let g=null,y,E;try{let k=await rAt(u,d,s);g=k.tmpPath,y=k.sha256,E=k.bytes}catch(k){if(k.code==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}let S=fv(d,h,g,p);if(!S.ok){U0(g),g=null,S.code==="parent_chain_contains_symlink"||S.code==="parent_chain_escape"?r.status(400).send({error:"bad_target_path",code:"bad_target_path",reason:S.code}):r.status(500).send({error:"write_failed",code:"write_failed"});return}g=null;let _=a===null,b;try{b=_?l1(d):DE(d,a)}catch(k){if(k instanceof Bd){try{iAt(p)}catch{}r.status(500).send({error:"tick_persist_failed",code:"tick_persist_failed",message:k.message});return}throw k}let T=_?"intent":"stage",A=H1(b,1),R=new Date().toISOString();await Nv(d,b,{entry_type:"human_write",path:f,sha:y,author_class:"human-via-mcp",timestamp:R,claimed_author_id:c,human_author_id:c,entry_id:A,tick_counter:b,tick_scope:T}),await q1(d,{timestamp:R,entry_id:A,path:f,sha:y,author_class:"human-via-mcp",claimed_author_id:c,human_author_id:c,rationale:null,user_instruction_excerpt:null,tick_counter:b,session_id:null,overwrite:!1,dirs_created:[],audit_log_appended:!0,tick_scope:T}),r.send({ok:!0,path:f,sha256:y,bytes:E,baseline_updated:!1,tick_will_observe:!0})})})}var sAt,Xvt,lZ,o_e,a_e,aAt=v(()=>{"use strict";sAt=Se(Vvt(),1);uZ();A0();cZ();FY();ze();vo();Hg();Av();Xvt=50*1024*1024,lZ=50*1024*1024,o_e=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);a_e=/^[\w][\w\-.@ ]{0,127}$/});function cAt(e){e.register(async t=>{t.get("/ws/session/:sessionId",{websocket:!0,preValidation:async(n,r)=>{if(!Bi())return;let{sessionId:i}=n.params,s=n.query?.t;if(!s){r.status(401).send({error:"unauthorized",reason:"missing_token"});return}let o=Zh(s,i);if(!o.ok){r.status(401).send({error:"unauthorized",reason:o.reason});return}}},(n,r)=>{let{sessionId:i}=r.params;if(Bi()){let c=r.query?.t;if(!c){n.close(4401,"unauthorized");return}if(!Zh(c,i).ok){n.close(4401,"unauthorized");return}}let s=$t(i);if(!s){n.close(4404,"session not found");return}if(!Ku.has(i)&&Ku.size>=N1){BE(`upgrade REJECT session=${i} reason=ws_session_cap size=${Ku.size} cap=${N1}`),n.close(1013,"session cap reached");return}Ku.set(i,n),BE(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=Kbt(a.intent_slug,c=>{Qh(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!WTt(n)){n.close(1008,"rate limit");return}let u=Array.isArray(c)?Buffer.concat(c).toString("utf8"):typeof c=="string"?c:Buffer.from(c).toString("utf8");KTt(i,u)}),n.on("close",()=>{Ku.get(i)===n&&Ku.delete(i),o&&(o(),o=null)}),n.on("error",()=>{Ku.get(i)===n&&Ku.delete(i),o&&(o(),o=null)})})})}var uAt=v(()=>{"use strict";rx();Qc();Jh();$5()});import{randomUUID as p8n}from"node:crypto";function h8n(){return c_e}function m8n(e){if(!e)return null;let t=yf.allowedOrigins.filter(r=>r&&r!=="*");return(t.length>0?t:[yf.siteUrl]).includes(e)?e:null}async function g8n(){let e=(0,gAt.default)({logger:!1,bodyLimit:hD,disableRequestLogging:!0,genReqId:t=>{let n=t.headers["x-request-id"];if(typeof n=="string"&&n.length>0&&n.length<=128)return n;if(Array.isArray(n)&&n[0]){let r=n[0];if(r.length>0&&r.length<=128)return r}return p8n()},requestIdHeader:"x-request-id"});if(e.addHook("onRequest",async(t,n)=>{n.getHeader("x-request-id")||n.header("x-request-id",t.id),t.startTime=process.hrtime.bigint()}),e.addHook("onResponse",async(t,n)=>{let r=n.statusCode,i=t.startTime??void 0,s=i!==void 0?Number(process.hrtime.bigint()-i)/1e6:void 0,o=r>=500?"error":r>=400?"warn":"info";try{console.error(JSON.stringify({level:o,event:"http_response",reqId:t.id,method:t.method,url:t.url,statusCode:r,...s!==void 0?{responseTimeMs:Math.round(s*100)/100}:{}}))}catch{}}),Bi()&&await e.register(pAt.default,{origin:(t,n)=>{n(null,m8n(t)??!1)},credentials:!1,methods:["GET","HEAD","POST","PUT","DELETE","OPTIONS"],allowedHeaders:["Authorization","Content-Type","bypass-tunnel-reminder","X-Haiku-CSRF"],exposedHeaders:["X-E2E-Encrypted","X-Original-Content-Type"],strictPreflight:!1,preflightContinue:!1}),Bi()){let t=(()=>{let r=process.env.HAIKU_HTTP_RATE_MAX,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1?i:60})(),n=(()=>{let r=process.env.HAIKU_HTTP_RATE_WINDOW_MS,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1e3?i:6e4})();await e.register(hAt.default,{max:t,timeWindow:n})}return await e.register(mAt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=oEe((t.url??"/").split("?")[0]);if(!i||!v1(i)||n.statusCode>=400)return r;try{return await Nbt(t,n,r)}catch{return r}}),Obt(e,h8n),pbt(e),JTt(e),Vbt(e),Hbt(e),await oAt(e),Sbt(e),Tbt(e),Ibt(e),cAt(e),e}function fAt(e){if(process.env.HAIKU_TRANSPORT_ASSERT==="0"&&process.env.NODE_ENV==="test"){console.error("WARNING: HAIKU_TRANSPORT_ASSERT=0 bypass active (NODE_ENV=test). This is a test-only escape hatch; ignored outside NODE_ENV=test.");return}new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]).has(e)||(console.error(`FATAL: Review HTTP server bound to non-loopback address '${e}'. v1 transport invariant requires loopback-only; terminating.`),process.exit(1))}async function VE(){if(zE&&GE!==null)return GE;Bi()&&yf.allowedOrigins.filter(s=>s&&s!=="*").length===0&&console.error("WARNING: HAIKU_REMOTE_REVIEW=1 but no allowed origins configured. Every cross-origin request from the SPA will be rejected by CORS. Set `HAIKU_REVIEW_ALLOWED_ORIGINS` (comma-separated) or `HAIKU_REVIEW_SITE_URL` before starting."),zE=await g8n();let e=process.env.HAIKU_FORCE_BIND_ADDR;e&&e!=="127.0.0.1"&&console.error(`WARNING: HAIKU_FORCE_BIND_ADDR='${e}' overrides the default loopback bind. This is a test/dev-only knob; in production it will trigger the transport-invariant FATAL exit.`);let t=e||"127.0.0.1",n=await zE.listen({host:t,port:0});zE.server.maxConnections=dAt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(GE=Number.parseInt(r[2],10),fAt(r[1].replace(/^\[|\]$/g,""))),GE===null){let i=zE.server.address();i&&typeof i=="object"&&(GE=i.port,fAt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${GE} (maxConnections=${dAt}, maxWsSessions=${N1})`),c_e=!0,GE}async function yAt(){if(zE)try{for(let e of Array.from(Ku.keys()))try{Iv(e,"shutdown")}catch{}await zE.close()}finally{zE=null,GE=null,c_e=!1}}var pAt,hAt,mAt,gAt,lAt,dAt,zE,GE,c_e,dZ=v(()=>{"use strict";pAt=Se(D8e(),1),hAt=Se(Z8e(),1),mAt=Se(wXe(),1),gAt=Se(tut(),1);bT();Ci();Ebt();vbt();nEe();xbt();Pbt();Cbt();qbt();Wbt();XTt();aAt();$5();uAt();Jh();lAt=256,dAt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return lAt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?lAt:Math.max(t,1)})(),zE=null,GE=null,c_e=!1});import{execFileSync as y8n}from"node:child_process";import{cpSync as SAt,existsSync as d_e,mkdirSync as u_e}from"node:fs";import{homedir as EAt}from"node:os";import{join as f_e}from"node:path";function _8n(){return f_e(EAt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function b8n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of S8n)d_e(f_e(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function T8n(){if(od==="dev")return{ok:!1,method:"skipped",reason:"dev_build_no_npm_source"};let e=nn();if(!e)return{ok:!1,method:"skipped",reason:"no_target_path"};let t=_8n();if(d_e(t))try{return u_e(e,{recursive:!0}),SAt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=f_e(EAt(),".claude","plugins","npm-cache");try{return u_e(n,{recursive:!0}),y8n("npm",["install",`haiku-method@${od}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),d_e(t)?(u_e(e,{recursive:!0}),SAt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-install"}):{ok:!1,method:"npm-install",reason:"npm_install_no_module"}}catch(r){return{ok:!1,method:"npm-install",reason:"npm_install_failed",error:r instanceof Error?r.message:String(r)}}}function _At(e){let t=Date.now();if(t-l_e{"use strict";Ci();ih();db();S8n=["studios","schemas",".claude-plugin/plugin.json"],E8n=5e3,l_e=0});var At=v(()=>{"use strict"});var v8n,A8n,TAt,vAt=v(()=>{"use strict";gt();ht();At();v8n=new Te({autoEscape:!1,useWith:!0}),A8n=ie("@canon:feedback/changes_requested"),TAt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return v8n.renderString(A8n,{slug:e,message:r,annotations:n})}});var R8n,w8n,AAt,RAt=v(()=>{"use strict";gt();ht();At();R8n=new Te({autoEscape:!1,useWith:!0}),w8n=ie("@canon:feedback/close_feedback"),AAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return R8n.renderString(w8n,{slug:e,stage:n,fbId:r})}});var k8n,I8n,wAt,kAt=v(()=>{"use strict";gt();ts();ht();At();k8n=new Te({autoEscape:!1,useWith:!0}),I8n=ie("@canon:feedback/feedback_question"),wAt=e=>{let t=e.action;return k8n.renderString(I8n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:DI(e.dir)==="autopilot"})}});var x8n,O8n,IAt,xAt=v(()=>{"use strict";gt();ht();At();x8n=new Te({autoEscape:!1,useWith:!0}),O8n=ie("@canon:feedback/fix_quality_gates"),IAt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return x8n.renderString(O8n,{slug:e,stageHint:r,message:i})}});import{existsSync as fZ}from"node:fs";import{join as P8n}from"node:path";var OAt,N8n,C8n,PAt,NAt=v(()=>{"use strict";gt();Ef();ze();Kn();Tl();ts();ht();Lh();At();OAt=new Te({autoEscape:!1,useWith:!0}),N8n=ie("@canon:feedback/intent_completion_fix"),C8n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),PAt=({slug:e,studio:t,action:n})=>{let r=n.fix_hats||[],i=n.max_bolts||Mg,s=n.items||[],o=n.total_pending||s.length,a=n.escalated_count||0,c=ve(),u=PD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:g,branch:y})=>{let E=P8n(c,p),S=Number.parseInt(f.replace(/^FB-/i,""),10)||0,_=[],b=null,T="";for(let A=r.length-1;A>=0;A--){let R=r[A],x=u[R];x||_.push(`> **Warning:** studio fix-hat \`${R}\` has no mandate file in \`plugin/studios/${t}/fix-hats/${R}.md\`. The subagent will run without a mandate \u2014 this is likely a studio bug.`);let k=A===r.length-1,P=x&&fZ(x)?vl(x,`Fix-hat mandate: ${R}`):"",N=x&&fZ(x)?OI(xI(x)):"",C=fZ(E)?vl(E,`Feedback: ${f} \u2014 ${h}`):"",F=fZ(E)?PI(E):"",V=OAt.renderString(C8n,{hat:R,fbId:f,fbNum:S,fbTitle:h,fixBolt:m,fixMaxBolts:i,slug:e,fbWorktree:g,fbBranch:y,hatMandateInline:P,hatInterpBlock:N,fbInline:C,priorRejectBlock:F,gitRepo:Ae(),isLast:k}),K=x?Fu({mandatePath:x,studio:t}):void 0,$=Ti({unit:`fix-${f}`,hat:R,bolt:m,intent:e,agentType:"general-purpose",model:K,promptBody:V,heading:`#### Subagent: \`${R}\`${k?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!k&&b)try{o9({unit:`fix-${f}`,hat:R,bolt:m,intent:e},b)}catch{}b=$,A===0&&(T=$)}return{fbId:f,fbTitle:h,fixBolt:m,warnings:_.join(` +`),firstHatBlock:T}}),d=Mi().subagents.backgroundSpawn?'`background="true"` \u2192 `run_in_background: true` (always present on fix-loop dispatches \u2014 pass it through; the parent waits on results, so foreground would block this thread); ':"";return OAt.renderString(N8n,{slug:e,itemCount:s.length,fixHatsList:r,fixMaxBolts:i,escalatedCount:a,totalPending:o,showTotalsLine:o!==s.length+a,showAnnouncement:s.length>1,announcementBlock:Es("workflow-contracts-announcement"),workflowContractsBlock:Es("workflow-contracts-fix-loop"),findings:l,bgClause:d})}});import{existsSync as pZ}from"node:fs";import{join as hZ}from"node:path";var CAt,M8n,D8n,MAt,DAt=v(()=>{"use strict";gt();Ci();Ef();ze();Kn();Tl();ns();ts();ht();Lh();At();CAt=new Te({autoEscape:!1,useWith:!0}),M8n=ie("@canon:feedback/review_fix"),D8n=ie("@canon:feedback/review_fix","subagent.eta.md"),MAt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.fix_hats||[],s=n.max_bolts||Mg,o=n.items||[],a=n.total_pending||o.length,c=n.escalated_count||0,u=ve(),l=Mu(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Lf(hZ(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:y,feedback_file:E,feedback_title:S,bolt:_,worktree:b,branch:T})=>{let A=hZ(u,E),R=Number.parseInt(y.replace(/^FB-/i,""),10)||0,x=[],k=null,P="";for(let N=i.length-1;N>=0;N--){let C=i[N],F=l[C];F||x.push(`> **Warning:** hat \`${C}\` declared in \`fix_hats\` has no mandate file in \`hats/${C}.md\`. The subagent will run without a mandate \u2014 this is likely a studio bug.`);let V=F?hZ(p,"studios",f,"stages",r,"hats",`${C}.md`):null,K=N===i.length-1,$=h?vl(h,`Stage scope: ${r}`):"",B=V&&pZ(V)?vl(V,`Hat mandate: ${C}`):"",X=V&&pZ(V)?OI(xI(V)):"",G=pZ(A)?vl(A,`Feedback: ${y} \u2014 ${S}`):"",M=pZ(A)?PI(A):"",q=CAt.renderString(D8n,{hat:C,fbId:y,fbNum:R,fbTitle:S,fixBolt:_,fixMaxBolts:s,fixStage:r,slug:e,fbWorktree:b,fbBranch:T,stageBaseInline:$,hatMandateInline:B,hatInterpBlock:X,fbInline:G,priorRejectBlock:M,gitRepo:Ae(),isLast:K}),U=hZ(nn(),"studios",t,"stages",r,"hats",`${C}.md`),D=Fu({mandatePath:U,studio:t,stage:r}),H=Ti({unit:`fix-${y}`,hat:C,bolt:_,intent:e,stage:r,agentType:F?.agent_type??"general-purpose",model:D??F?.model,promptBody:q,heading:`#### Subagent: \`${C}\`${K?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!K&&k)try{o9({unit:`fix-${y}`,hat:C,bolt:_,intent:e,stage:r},k)}catch{}k=H,N===0&&(P=H)}return{fbId:y,fbTitle:S,fixBolt:_,warnings:x.join(` +`),firstHatBlock:P}}),g=Mi().subagents.backgroundSpawn?'`background="true"` \u2192 `run_in_background: true` (always present on fix-loop dispatches \u2014 pass it through; the parent waits on results, so foreground would block this thread); ':"";return CAt.renderString(M8n,{slug:e,fixStage:r,itemCount:o.length,fixHatsList:i,fixMaxBolts:s,escalatedCount:c,totalPending:a,showTotalsLine:a!==o.length+c,showAnnouncement:o.length>1,announcementBlock:Es("workflow-contracts-announcement"),workflowContractsBlock:Es("workflow-contracts-fix-loop"),findings:m,bgClause:g})}});import{existsSync as LAt,readdirSync as UAt,readFileSync as FAt}from"node:fs";import{join as lx}from"node:path";function F8n(e){if(!zo.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?lx(ar(t,n),"feedback"):lx(pe(t),"feedback");try{let p=LAt(f)?UAt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=FAt(lx(f,p[0]),"utf8");o=(0,p_e.default)(h).data.model}}catch{}}let a=n?Mu(r,n)?.[i]:void 0,c=n?$i(r,n):void 0,u=Od(r),l=lE({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var p_e,L8n,U8n,jAt,HAt=v(()=>{"use strict";gt();p_e=Se(Kt(),1);Ci();dE();ze();Kn();Upe();ts();ht();Lh();At();L8n=new Te({autoEscape:!1,useWith:!0}),U8n=ie("@canon:feedback/start_feedback_hat");jAt=({slug:e,studio:t,action:n})=>{let r=n.dispatches??[];if(r.length===0&&Array.isArray(n.feedback_ids)){let s=n.stage??"",o=n.hat??"",a=n.terminal??!1;r=n.feedback_ids.map(c=>({feedback_id:c,stage:s,hat:o,terminal:a}))}r=r.filter(s=>{let o=s.feedback_id.replace(/^FB-/i,""),a=s.stage?lx(ar(e,s.stage),"feedback"):lx(pe(e),"feedback");if(!LAt(a))return!0;let c=UAt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=FAt(lx(a,c[0]),"utf8"),l=(0,p_e.default)(u).data,d=l.closed_at;if(d instanceof Date||typeof d=="string"&&d.length>0||typeof l.status=="string"&&l.status==="closed"||typeof l.closed_by=="string"&&l.closed_by.startsWith("fix-loop:"))return!1}catch{}return!0});let i=r.map(s=>{let o=F8n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=FI({slug:e,studio:t,feedbackId:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal});return{feedback_id:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal,fb_int:Number.parseInt(s.feedback_id.replace(/^FB-/i,""),10)||0,model_tier:o?.model,model_source:o?.source,hat_path:s.stage?fE(t,s.stage,s.hat):null,dispatch_block:a}});return L8n.renderString(U8n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?LI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:Es("workflow-contracts-fix-loop")})}});var j8n,H8n,qAt,BAt=v(()=>{"use strict";gt();ht();At();j8n=new Te({autoEscape:!1,useWith:!0}),H8n=ie("@canon:global/complete"),qAt=({action:e})=>j8n.renderString(H8n,{message:e.message??""})});var q8n,B8n,GAt,zAt=v(()=>{"use strict";gt();ht();At();q8n=new Te({autoEscape:!1,useWith:!0}),B8n=ie("@canon:global/error"),GAt=({action:e})=>q8n.renderString(B8n,{message:e.message??""})});var G8n,z8n,VAt,WAt=v(()=>{"use strict";gt();ht();At();G8n=new Te({autoEscape:!1,useWith:!0}),z8n=ie("@canon:global/loop_halted"),VAt=({action:e})=>{let t=e;return G8n.renderString(z8n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function K8n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var V8n,W8n,KAt,YAt=v(()=>{"use strict";gt();Kn();ht();At();V8n=new Te({autoEscape:!1,useWith:!0}),W8n=ie("@canon:intent/reflection/record_reflection");KAt=({slug:e,studio:t})=>{let n=t?Object.entries(Zdt(t)).map(([r,i])=>({name:r,body:K8n(i)})):[];return V8n.renderString(W8n,{slug:e,dimensions:n})}});var Y8n,Z8n,ZAt,JAt=v(()=>{"use strict";gt();ht();At();Y8n=new Te({autoEscape:!1,useWith:!0}),Z8n=ie("@canon:intent/repair/external_review_requested"),ZAt=({action:e})=>Y8n.renderString(Z8n,{message:e.message??""})});var J8n,X8n,XAt,QAt=v(()=>{"use strict";gt();ht();At();J8n=new Te({autoEscape:!1,useWith:!0}),X8n=ie("@canon:intent/repair/revise_unit_specs"),XAt=({action:e})=>J8n.renderString(X8n,{message:e.message??""})});var Q8n,$8n,$At,eRt=v(()=>{"use strict";gt();ht();At();Q8n=new Te({autoEscape:!1,useWith:!0}),$8n=ie("@canon:intent/repair/safe_intent_repair"),$At=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return Q8n.renderString($8n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});function nJn(e,t){return[`You are the \`${t}\` intent-completion reviewer for intent \`${e}\`.`,"","## Mandate (fallback \u2014 no studio-configured mandate file was found)","",`1. Read every stage's \`outputs/\` and \`elaboration.md\` under \`.haiku/intents/${e}/stages/\`.`,`2. Read the intent body at \`.haiku/intents/${e}/intent.md\`.`,"3. Judge the intent-as-a-whole: work that contradicts another stage's output, missing coverage of an acceptance criterion across all stages, any cross-stage inconsistency (terminology, scope, technical choices).",`4. For each finding, file \`haiku_feedback\` with \`intent: "${e}"\` (omit \`stage\`), \`origin: "agent"\`, \`author: "${t}"\`, and a body that quotes the artifact you're flagging. ALSO file one against the studio noting the missing mandate file at \`plugin/studios//intent-review-agents/${t}.md\`.`,'5. When done, return your verdict in one paragraph: which findings you filed (by FB-NN), or "no findings".',"","Do NOT modify any artifact files. Reviewer role, not fixer."].join(` +`)}function rJn(e,t,n){let r=eJn[n],i="",s;if(r){let c=mZ.renderString(r,{slug:e}).trim();i=`**Read** \`${EE({intent:e,kind:"engine-body",name:n,body:c})}\``}else{let c=Ch(t,void 0,n);c&&(i=kr({resolveBody:()=>c,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=Fu({mandatePath:mg(t)[n],studio:t}))}let o=i?mZ.renderString(tJn,{slug:e,role:n,mandateRef:i,doctrineRef:CT.has(n)?Es("runtime-verification"):"",prInteraction:KD.has(n),existingFeedback:NI(e,""),decisions:CI(e)}):nJn(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:o,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var eJn,mZ,tRt,tJn,nRt,rRt=v(()=>{"use strict";gt();Kn();Tl();ts();ht();Lh();At();eJn={spec:ie("@canon:intent/review/intent_review","engine-bodies/spec.eta.md"),continuity:ie("@canon:intent/review/intent_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:intent/review/intent_review","engine-bodies/cross_stage_consistency.eta.md")},mZ=new Te({autoEscape:!1,useWith:!0}),tRt=ie("@canon:intent/review/intent_review"),tJn=ie("@canon:intent/review/intent_review","subagent.eta.md");nRt=({slug:e,studio:t,action:n})=>{let r=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||""}];if(r.length===1&&r[0]?.role==="user")return mZ.renderString(tRt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>rJn(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` -`);return n6.renderString(yAt,{slug:e,role:r[0]?.role??"",roles:r.map(o=>o.role),dispatchCount:r.length,mandatePath:s,dispatchBlock:s,isEngineRole:i[0]?.isEngine??!1,description:""})}});var BYn,GYn,EAt,bAt=v(()=>{"use strict";_t();mt();Rt();BYn=new ve({autoEscape:!1,useWith:!0}),GYn=se("@canon:intent/seal/intent_approved"),EAt=({slug:e})=>BYn.renderString(GYn,{slug:e})});var zYn,VYn,TAt,vAt=v(()=>{"use strict";_t();Tr();ze();mt();Rt();zYn=new ve({autoEscape:!1,useWith:!0}),VYn=se("@canon:intent/seal/intent_complete"),TAt=({slug:e})=>{let t=Ae(),n=t?ac():"";return zYn.renderString(VYn,{slug:e,gitMode:t,mainline:n})}});var WYn,KYn,AAt,RAt=v(()=>{"use strict";_t();Xi();mt();Rt();WYn=new ve({autoEscape:!1,useWith:!0}),KYn=se("@canon:intent/seal/seal_intent"),AAt=({slug:e,dir:t})=>WYn.renderString(KYn,{slug:e,providerBlock:xI("seal_intent",t)})});var ZYn,YYn,wAt,kAt=v(()=>{"use strict";_t();mt();Rt();ZYn=new ve({autoEscape:!1,useWith:!0}),YYn=se("@canon:intent/setup/migrated"),wAt=({action:e})=>ZYn.renderString(YYn,{message:e.message??""})});var JYn,XYn,IAt,xAt=v(()=>{"use strict";_t();mt();Rt();JYn=new ve({autoEscape:!1,useWith:!0}),XYn=se("@canon:intent/setup/select_studio"),IAt=({slug:e,action:t})=>{let r=(t.available_studios??[]).map(s=>{let o=s.slug&&s.slug!==s.name?` (\`${s.slug}\`)`:"",a=s.description?` \u2014 ${s.description}`:"";return`- **${s.name}**${o}${a}`}).join(` -`),i=`_(no studios found in the registry \u2014 call \`haiku_select_studio { intent: "${e}" }\` to surface the conversational fallback)_`;return JYn.renderString(XYn,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as QYn,readFileSync as $Yn}from"node:fs";import{join as e8n}from"node:path";function i8n(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=e8n(vr(e,t),"units",r);if(!QYn(i))return[];try{let{data:s}=(0,OAt.default)($Yn(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function s8n(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=r8n[i],a="",c;if(o){let p=z_e.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${p_({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:p})}\``}else{a=kr({resolveBody:()=>kh(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let p=bD(n,r,i);p&&(c=Nu({mandatePath:p,studio:n,stage:r}))}let u=r?s.flatMap(p=>i8n(t,r,p)).filter((p,h,m)=>m.indexOf(p)===h):[],l=OT.has(i)?ys("runtime-verification"):"",d=z_e.renderString(n8n,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,existingFeedback:kI(t,r),decisions:II(t)});return{dispatchBlock:Ei({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:d,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var OAt,z_e,t8n,n8n,r8n,NAt,PAt=v(()=>{"use strict";_t();OAt=_e(sn(),1);ze();Zn();Sl();Xi();mt();Oh();Rt();z_e=new ve({autoEscape:!1,useWith:!0}),t8n=se("@canon:stage/approve/dispatch_approval"),n8n=se("@canon:stage/approve/dispatch_approval","subagent.eta.md"),r8n={spec:se("@canon:stage/approve/dispatch_approval","engine-bodies/spec.eta.md"),continuity:se("@canon:stage/approve/dispatch_approval","engine-bodies/continuity.eta.md"),"cross-stage-consistency":se("@canon:stage/approve/dispatch_approval","engine-bodies/cross_stage_consistency.eta.md")};NAt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>s8n({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`);return mZ.renderString(tRt,{slug:e,role:r[0]?.role??"",roles:r.map(o=>o.role),dispatchCount:r.length,mandatePath:s,dispatchBlock:s,isEngineRole:i[0]?.isEngine??!1,description:""})}});var iJn,sJn,iRt,sRt=v(()=>{"use strict";gt();ht();At();iJn=new Te({autoEscape:!1,useWith:!0}),sJn=ie("@canon:intent/seal/intent_approved"),iRt=({slug:e})=>iJn.renderString(sJn,{slug:e})});var oJn,aJn,oRt,aRt=v(()=>{"use strict";gt();yr();ze();ht();At();oJn=new Te({autoEscape:!1,useWith:!0}),aJn=ie("@canon:intent/seal/intent_complete"),oRt=({slug:e})=>{let t=Ae(),n=t?Zo():"";return oJn.renderString(aJn,{slug:e,gitMode:t,mainline:n})}});import{existsSync as cJn,readFileSync as uJn}from"node:fs";import{join as lJn}from"node:path";var cRt,dJn,fJn,uRt,lRt=v(()=>{"use strict";gt();cRt=Se(Kt(),1);ht();At();dJn=new Te({autoEscape:!1,useWith:!0}),fJn=ie("@canon:intent/seal/pending_seal"),uRt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=lJn(n,"intent.md");if(cJn(s)){let o=(0,cRt.default)(uJn(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return dJn.renderString(fJn,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var pJn,hJn,dRt,fRt=v(()=>{"use strict";gt();ts();ht();At();pJn=new Te({autoEscape:!1,useWith:!0}),hJn=ie("@canon:intent/seal/seal_intent"),dRt=({slug:e,dir:t})=>pJn.renderString(hJn,{slug:e,providerBlock:MI("seal_intent",t)})});var mJn,gJn,pRt,hRt=v(()=>{"use strict";gt();ht();At();mJn=new Te({autoEscape:!1,useWith:!0}),gJn=ie("@canon:intent/setup/migrated"),pRt=({action:e})=>mJn.renderString(gJn,{message:e.message??""})});var yJn,SJn,mRt,gRt=v(()=>{"use strict";gt();ht();At();yJn=new Te({autoEscape:!1,useWith:!0}),SJn=ie("@canon:intent/setup/select_studio"),mRt=({slug:e,action:t})=>{let r=(t.available_studios??[]).map(s=>{let o=s.slug&&s.slug!==s.name?` (\`${s.slug}\`)`:"",a=s.description?` \u2014 ${s.description}`:"";return`- **${s.name}**${o}${a}`}).join(` +`),i=`_(no studios found in the registry \u2014 call \`haiku_select_studio { intent: "${e}" }\` to surface the conversational fallback)_`;return yJn.renderString(SJn,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as EJn,readFileSync as _Jn}from"node:fs";import{join as bJn}from"node:path";function RJn(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=bJn(ar(e,t),"units",r);if(!EJn(i))return[];try{let{data:s}=(0,yRt.default)(_Jn(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function wJn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=AJn[i],a="",c;if(o){let p=h_e.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${EE({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:p})}\``}else{a=kr({resolveBody:()=>Ch(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let p=xD(n,r,i);p&&(c=Fu({mandatePath:p,studio:n,stage:r}))}let u=r?s.flatMap(p=>RJn(t,r,p)).filter((p,h,m)=>m.indexOf(p)===h):[],l=CT.has(i)?Es("runtime-verification"):"",d=h_e.renderString(vJn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,existingFeedback:NI(t,r),decisions:CI(t)});return{dispatchBlock:Ti({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:d,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var yRt,h_e,TJn,vJn,AJn,SRt,ERt=v(()=>{"use strict";gt();yRt=Se(Kt(),1);ze();Kn();Tl();ts();ht();Lh();At();h_e=new Te({autoEscape:!1,useWith:!0}),TJn=ie("@canon:stage/approve/dispatch_approval"),vJn=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),AJn={spec:ie("@canon:stage/approve/dispatch_approval","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/approve/dispatch_approval","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/approve/dispatch_approval","engine-bodies/cross_stage_consistency.eta.md")};SRt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>wJn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` -`),a=[...new Set(i.flatMap(c=>c.units))];return z_e.renderString(t8n,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var o8n,a8n,CAt,MAt=v(()=>{"use strict";_t();mt();Rt();o8n=new ve({autoEscape:!1,useWith:!0}),a8n=se("@canon:stage/approve/dispatch_quality_gates"),CAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return o8n.renderString(a8n,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var c8n,u8n,DAt,LAt=v(()=>{"use strict";_t();mt();Rt();c8n=new ve({autoEscape:!1,useWith:!0}),u8n=se("@canon:stage/complete/advance_phase"),DAt=({slug:e,action:t})=>{let n=t.to_phase;return c8n.renderString(u8n,{slug:e,toPhase:n})}});var l8n,d8n,UAt,jAt=v(()=>{"use strict";_t();mt();Rt();l8n=new ve({autoEscape:!1,useWith:!0}),d8n=se("@canon:stage/complete/advance_stage"),UAt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return l8n.renderString(d8n,{slug:e,stage:n,nextStage:r})}});var f8n,p8n,FAt,HAt=v(()=>{"use strict";_t();Xi();mt();Rt();f8n=new ve({autoEscape:!1,useWith:!0}),p8n=se("@canon:stage/complete/complete_stage"),FAt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return f8n.renderString(p8n,{slug:e,stage:r,providerBlock:xI("complete_stage",n)})}});var h8n,m8n,qAt,BAt=v(()=>{"use strict";_t();mt();Rt();h8n=new ve({autoEscape:!1,useWith:!0}),m8n=se("@canon:stage/complete/record_observations"),qAt=({slug:e,action:t})=>{let n=t.stage||"";return h8n.renderString(m8n,{slug:e,stage:n})}});import{execFileSync as g8n,execSync as GAt}from"node:child_process";import{existsSync as Sc,readdirSync as tp,readFileSync as r6,statSync as y8n}from"node:fs";import{join as yr,resolve as S8n}from"node:path";function x1(e){if(!Sc(e))return{};let t=r6(e,"utf8"),{data:n}=re(t);return n}function zAt(e,t,n){let r=nn();for(let i of[yr(process.cwd(),".haiku","studios"),yr(r,"studios")]){let s=yr(i,n,"stages",t,"outputs");if(!Sc(s))continue;let o=tp(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=r6(yr(s,c),"utf8"),{data:l}=(0,V_e.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=yr(process.cwd(),p);p.endsWith("/")?(!Sc(h)||tp(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):Sc(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"outputs_missing",intent:e,stage:t,missing:a,message:`Cannot advance to review: ${a.length} required output(s) not found. +`),a=[...new Set(i.flatMap(c=>c.units))];return h_e.renderString(TJn,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var kJn,IJn,_Rt,bRt=v(()=>{"use strict";gt();ht();At();kJn=new Te({autoEscape:!1,useWith:!0}),IJn=ie("@canon:stage/approve/dispatch_quality_gates"),_Rt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return kJn.renderString(IJn,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var xJn,OJn,TRt,vRt=v(()=>{"use strict";gt();ht();At();xJn=new Te({autoEscape:!1,useWith:!0}),OJn=ie("@canon:stage/complete/advance_phase"),TRt=({slug:e,action:t})=>{let n=t.to_phase;return xJn.renderString(OJn,{slug:e,toPhase:n})}});var PJn,NJn,ARt,RRt=v(()=>{"use strict";gt();ht();At();PJn=new Te({autoEscape:!1,useWith:!0}),NJn=ie("@canon:stage/complete/advance_stage"),ARt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return PJn.renderString(NJn,{slug:e,stage:n,nextStage:r})}});var CJn,MJn,wRt,kRt=v(()=>{"use strict";gt();ts();ht();At();CJn=new Te({autoEscape:!1,useWith:!0}),MJn=ie("@canon:stage/complete/complete_stage"),wRt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return CJn.renderString(MJn,{slug:e,stage:r,providerBlock:MI("complete_stage",n)})}});var DJn,LJn,IRt,xRt=v(()=>{"use strict";gt();ht();At();DJn=new Te({autoEscape:!1,useWith:!0}),LJn=ie("@canon:stage/complete/record_observations"),IRt=({slug:e,action:t})=>{let n=t.stage||"";return DJn.renderString(LJn,{slug:e,stage:n})}});import{execFileSync as UJn,execSync as ORt}from"node:child_process";import{existsSync as _c,readdirSync as sp,readFileSync as gZ,statSync as FJn}from"node:fs";import{join as Er,resolve as jJn}from"node:path";function G1(e){if(!_c(e))return{};let t=gZ(e,"utf8"),{data:n}=re(t);return n}function PRt(e,t,n){let r=nn();for(let i of[Er(process.cwd(),".haiku","studios"),Er(r,"studios")]){let s=Er(i,n,"stages",t,"outputs");if(!_c(s))continue;let o=sp(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=gZ(Er(s,c),"utf8"),{data:l}=(0,m_e.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=Er(process.cwd(),p);p.endsWith("/")?(!_c(h)||sp(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):_c(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"outputs_missing",intent:e,stage:t,missing:a,message:`Cannot advance to review: ${a.length} required output(s) not found. ${a.map(c=>`- ${c.name}: expected at ${c.location}`).join(` `)} -The execution phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function i6(e,t,n){let r=[],i=n.annotations;if(i?.pins)for(let s of i.pins){if(!s.text)continue;let o=s.text.length>120?`${s.text.slice(0,117)}...`:s.text,a=fc(e,t,{title:o,body:s.text,origin:"user-visual",author:"user",source_ref:`pin:${s.x},${s.y}`});r.push(a.feedback_id)}if(i?.comments)for(let s of i.comments){if(!s.comment)continue;let o=s.comment.length>120?`${s.comment.slice(0,117)}...`:s.comment,a=s.selectedText?s.selectedText.split(` +The execution phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function yZ(e,t,n){let r=[],i=n.annotations;if(i?.pins)for(let s of i.pins){if(!s.text)continue;let o=s.text.length>120?`${s.text.slice(0,117)}...`:s.text,a=Qo(e,t,{title:o,body:s.text,origin:"user-visual",author:"user",source_ref:`pin:${s.x},${s.y}`});r.push(a.feedback_id)}if(i?.comments)for(let s of i.comments){if(!s.comment)continue;let o=s.comment.length>120?`${s.comment.slice(0,117)}...`:s.comment,a=s.selectedText?s.selectedText.split(` `).map(p=>`> ${p}`).join(` `):"",u=[s.location?`**Location:** \`${s.location}\` (paragraph ${s.paragraph})`:`**Location:** paragraph ${s.paragraph}`];a&&u.push("","**Selected text:**","",a),u.push("","**Comment:**","",s.comment);let l=u.join(` -`),d=s.location?`${s.location}:paragraph=${s.paragraph}`:`paragraph:${s.paragraph}`,f=fc(e,t,{title:o,body:l,origin:"user-visual",author:"user",source_ref:d});r.push(f.feedback_id)}if(n.feedback?.trim()){let s=n.feedback.trim(),o=s.length>120?`${s.slice(0,117)}...`:s,a=fc(e,t,{title:o,body:s,origin:"user-chat",author:"user"});r.push(a.feedback_id)}return r.length>0&&Dt(t?`feedback: create ${r.join(", ")} from review UI in ${t}`:`feedback: create ${r.join(", ")} from review UI (intent-scope)`),r}function ix(e,t,n="## Output Requirements",r){let s=Qs(e,t).filter(a=>a.kind==="output");if(s.length===0)return"";let o=[n,"Read the template for each artifact you're expected to produce:",""];for(let a of s){let c=`**${a.name}**${a.required?" (REQUIRED)":""} \u2014 location: \`${a.location}\`, format: ${a.format}`;if(r){let u=kr({resolveBody:()=>vK(e,t,a.name),toolName:"haiku_read_output",toolArgs:{studio:e,stage:t,name:a.name},intent:r,stage:t,kind:"output",name:a.name});o.push(`- ${c} | ${u}`)}else{let u=Mf(yr(e,"stages",t,"outputs",`${a.name}.md`)),l=u?` | **Template:** \`${u}\``:"";o.push(`- ${c}${l}`)}}return o.join(` -`)}function VAt(e,t,n){let r=nn();for(let i of[yr(process.cwd(),".haiku","studios"),yr(r,"studios")]){let s=yr(i,n,"stages",t,"discovery");if(!Sc(s))continue;let o=tp(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=r6(yr(s,c),"utf8"),{data:l}=(0,V_e.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=yr(process.cwd(),p);p.endsWith("/")?(!Sc(h)||tp(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):Sc(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"discovery_missing",intent:e,stage:t,missing:a,message:`Cannot advance to execution: ${a.length} required discovery artifact(s) not found. +`),d=s.location?`${s.location}:paragraph=${s.paragraph}`:`paragraph:${s.paragraph}`,f=Qo(e,t,{title:o,body:l,origin:"user-visual",author:"user",source_ref:d});r.push(f.feedback_id)}if(n.feedback?.trim()){let s=n.feedback.trim(),o=s.length>120?`${s.slice(0,117)}...`:s,a=Qo(e,t,{title:o,body:s,origin:"user-chat",author:"user"});r.push(a.feedback_id)}return r.length>0&&wt(t?`feedback: create ${r.join(", ")} from review UI in ${t}`:`feedback: create ${r.join(", ")} from review UI (intent-scope)`),r}function dx(e,t,n="## Output Requirements",r){let s=no(e,t).filter(a=>a.kind==="output");if(s.length===0)return"";let o=[n,"Read the template for each artifact you're expected to produce:",""];for(let a of s){let c=`**${a.name}**${a.required?" (REQUIRED)":""} \u2014 location: \`${a.location}\`, format: ${a.format}`;if(r){let u=kr({resolveBody:()=>UK(e,t,a.name),toolName:"haiku_read_output",toolArgs:{studio:e,stage:t,name:a.name},intent:r,stage:t,kind:"output",name:a.name});o.push(`- ${c} | ${u}`)}else{let u=Lf(Er(e,"stages",t,"outputs",`${a.name}.md`)),l=u?` | **Template:** \`${u}\``:"";o.push(`- ${c}${l}`)}}return o.join(` +`)}function NRt(e,t,n){let r=nn();for(let i of[Er(process.cwd(),".haiku","studios"),Er(r,"studios")]){let s=Er(i,n,"stages",t,"discovery");if(!_c(s))continue;let o=sp(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=gZ(Er(s,c),"utf8"),{data:l}=(0,m_e.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=Er(process.cwd(),p);p.endsWith("/")?(!_c(h)||sp(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):_c(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"discovery_missing",intent:e,stage:t,missing:a,message:`Cannot advance to execution: ${a.length} required discovery artifact(s) not found. ${a.map(c=>`- ${c.name}: expected at ${c.location}`).join(` `)} -The elaboration phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function WAt(e,t){let n=yr(e,"stages",t,"units");if(!Sc(n))return null;let r=tp(n).filter(o=>o.endsWith(".md"));if(r.length===0)return null;let i=[],s=new Map;for(let o of r){if(!_8n.test(o)){o.startsWith("unit-")?/^unit-\d+/.test(o)?/^unit-\d{2,}/.test(o)?i.push({file:o,issue:"slug must be kebab-case (lowercase letters, numbers, hyphens). Expected: unit-NNN-slug.md"}):i.push({file:o,issue:"number must be zero-padded to at least 2 digits (preferred: 3 digits, e.g. `001`, `002`, \u2026, `999`)"}):i.push({file:o,issue:"must have a zero-padded number after 'unit-' (e.g., unit-001-...)"}):i.push({file:o,issue:"must start with 'unit-'"});continue}let a=o.match(/^unit-(\d+)/);if(a){let c=Number.parseInt(a[1],10);s.has(c)?i.push({file:o,issue:`duplicate number ${a[1]} (also used by ${s.get(c)})`}):s.set(c,o)}}if(i.length>0){let o=e.split("/intents/")[1]||"";return{action:"unit_naming_invalid",intent:o,stage:t,violations:i,message:`${i.length} unit file(s) have invalid naming in stage '${t}'. Files MUST be named \`unit-NNN-slug.md\` (e.g., \`unit-001-data-model.md\`; legacy 2-digit \`unit-01-\u2026\` still resolves): +The elaboration phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function CRt(e,t){let n=Er(e,"stages",t,"units");if(!_c(n))return null;let r=sp(n).filter(o=>o.endsWith(".md"));if(r.length===0)return null;let i=[],s=new Map;for(let o of r){if(!HJn.test(o)){o.startsWith("unit-")?/^unit-\d+/.test(o)?/^unit-\d{2,}/.test(o)?i.push({file:o,issue:"slug must be kebab-case (lowercase letters, numbers, hyphens). Expected: unit-NNN-slug.md"}):i.push({file:o,issue:"number must be zero-padded to at least 2 digits (preferred: 3 digits, e.g. `001`, `002`, \u2026, `999`)"}):i.push({file:o,issue:"must have a zero-padded number after 'unit-' (e.g., unit-001-...)"}):i.push({file:o,issue:"must start with 'unit-'"});continue}let a=o.match(/^unit-(\d+)/);if(a){let c=Number.parseInt(a[1],10);s.has(c)?i.push({file:o,issue:`duplicate number ${a[1]} (also used by ${s.get(c)})`}):s.set(c,o)}}if(i.length>0){let o=e.split("/intents/")[1]||"";return{action:"unit_naming_invalid",intent:o,stage:t,violations:i,message:`${i.length} unit file(s) have invalid naming in stage '${t}'. Files MUST be named \`unit-NNN-slug.md\` (e.g., \`unit-001-data-model.md\`; legacy 2-digit \`unit-01-\u2026\` still resolves): ${i.map(a=>`- \`${a.file}\`: ${a.issue}`).join(` `)} -Rename the files to match the convention, then call \`haiku_run_next { intent: "${o}" }\` again.`}}return null}function KAt(e,t){let n=yr(e,"stages",t,"units");if(!Sc(n))return null;let r=tp(n).filter(s=>s.endsWith(".md"));if(r.length===0)return null;let i=[];for(let s of r){let o=x1(yr(n,s)),a=o.status||"";if(["complete","skipped","failed"].includes(a))continue;(o.inputs||o.refs||[]).length===0&&i.push(s.replace(/\.md$/,""))}if(i.length>0){let s=e.split("/intents/")[1]||"";return{action:"unit_inputs_missing",intent:s,stage:t,missing_units:i,message:`Cannot advance to execution: ${i.length} unit(s) have no \`inputs:\` field. +Rename the files to match the convention, then call \`haiku_run_next { intent: "${o}" }\` again.`}}return null}function MRt(e,t){let n=Er(e,"stages",t,"units");if(!_c(n))return null;let r=sp(n).filter(s=>s.endsWith(".md"));if(r.length===0)return null;let i=[];for(let s of r){let o=G1(Er(n,s)),a=o.status||"";if(["complete","skipped","failed"].includes(a))continue;(o.inputs||o.refs||[]).length===0&&i.push(s.replace(/\.md$/,""))}if(i.length>0){let s=e.split("/intents/")[1]||"";return{action:"unit_inputs_missing",intent:s,stage:t,missing_units:i,message:`Cannot advance to execution: ${i.length} unit(s) have no \`inputs:\` field. Every unit MUST declare its inputs \u2014 the upstream artifacts, knowledge docs, and prior-stage outputs it references. At minimum, include the intent document and discovery docs. @@ -1021,7 +1020,7 @@ Units missing inputs: ${i.map(o=>`- ${o}`).join(` `)} -Add \`inputs:\` to each unit's frontmatter with paths relative to the intent directory (e.g., \`knowledge/DISCOVERY.md\`, \`stages/design/DESIGN-BRIEF.md\`), then call \`haiku_run_next { intent: "${s}" }\` again.`}}return null}function ZAt(e){let t=yr(e,"coverage-decisions.json");if(!Sc(t))return new Set;try{let n=JSON.parse(r6(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function b8n(e,t){let n=[];for(let r of E8n){let i=yr(e,r);if(!Sc(i))continue;let s=[""];for(;s.length>0;){let o=s.pop(),a=yr(i,o),c;try{c=tp(a)}catch{continue}for(let u of c){let l=o?`${o}/${u}`:u,d=yr(a,u);try{let f=y8n(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function T8n(e){if(!Sc(e))return[];let t=[];for(let n of tp(e)){if(!n.endsWith(".md"))continue;let i=x1(yr(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function v8n(e){let t=new Set;if(!Sc(e))return t;for(let n of tp(e)){if(!n.endsWith(".md"))continue;let r=x1(yr(e,n)),i=r.inputs||r.refs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.add(s.trim())}return t}function YAt(e,t,n){if(n.length===0)return null;let r=yr(e,"stages",t,"units"),i=v8n(r),s=ZAt(yr(e,"stages",t)),o=[],a=new Set;for(let u of n){let l=yr(e,"stages",u);if(!Sc(l))continue;let d=`stages/${u}`,f=T8n(yr(l,"units")),p=b8n(l,d);for(let h of[...f,...p])a.has(h)||(a.add(h),!i.has(h)&&(s.has(h)||o.push({path:h,from_stage:u})))}if(o.length===0)return null;let c=e.split("/intents/")[1]||"";return{action:"coverage_review_required",intent:c,stage:t,unreferenced:o,message:`Cannot advance past elaborate: ${o.length} prior-stage output(s) are not referenced by any unit's \`inputs:\` in stage '${t}' AND have no entry in \`stages/${t}/coverage-decisions.json\`. Continuity contract: downstream stages must cover upstream deliverables. +Add \`inputs:\` to each unit's frontmatter with paths relative to the intent directory (e.g., \`knowledge/DISCOVERY.md\`, \`stages/design/DESIGN-BRIEF.md\`), then call \`haiku_run_next { intent: "${s}" }\` again.`}}return null}function DRt(e){let t=Er(e,"coverage-decisions.json");if(!_c(t))return new Set;try{let n=JSON.parse(gZ(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function BJn(e,t){let n=[];for(let r of qJn){let i=Er(e,r);if(!_c(i))continue;let s=[""];for(;s.length>0;){let o=s.pop(),a=Er(i,o),c;try{c=sp(a)}catch{continue}for(let u of c){let l=o?`${o}/${u}`:u,d=Er(a,u);try{let f=FJn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function GJn(e){if(!_c(e))return[];let t=[];for(let n of sp(e)){if(!n.endsWith(".md"))continue;let i=G1(Er(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function zJn(e){let t=new Set;if(!_c(e))return t;for(let n of sp(e)){if(!n.endsWith(".md"))continue;let r=G1(Er(e,n)),i=r.inputs||r.refs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.add(s.trim())}return t}function LRt(e,t,n){if(n.length===0)return null;let r=Er(e,"stages",t,"units"),i=zJn(r),s=DRt(Er(e,"stages",t)),o=[],a=new Set;for(let u of n){let l=Er(e,"stages",u);if(!_c(l))continue;let d=`stages/${u}`,f=GJn(Er(l,"units")),p=BJn(l,d);for(let h of[...f,...p])a.has(h)||(a.add(h),!i.has(h)&&(s.has(h)||o.push({path:h,from_stage:u})))}if(o.length===0)return null;let c=e.split("/intents/")[1]||"";return{action:"coverage_review_required",intent:c,stage:t,unreferenced:o,message:`Cannot advance past elaborate: ${o.length} prior-stage output(s) are not referenced by any unit's \`inputs:\` in stage '${t}' AND have no entry in \`stages/${t}/coverage-decisions.json\`. Continuity contract: downstream stages must cover upstream deliverables. For each unreferenced file, EITHER: (a) Call \`haiku_unit_set { intent: "${c}", stage: "${t}", unit: "", field: "inputs", value: [...existing, ""] }\` to add it to a unit's inputs (the canonical path). @@ -1031,8 +1030,8 @@ Unreferenced files: ${o.map(u=>`- \`${u.path}\` (from stage '${u.from_stage}')`).join(` `)} -After resolving each, call \`haiku_run_next { intent: "${c}" }\` to re-run the validator.`}}function w8n(e){return!(!A8n.test(e)||R8n.test(e))}function k8n(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function I8n(e){return e.startsWith(".haiku/")}function x8n(e,t,n){if(t===""||t.length<2)return[];try{return g8n("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` -`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!I8n(i))}catch{return[]}}function JAt(e,t,n){if(t.length===0)return null;let r=[],i=new Set;for(let c of t){let u=yr(e,"stages",c,"units");if(Sc(u))for(let l of tp(u)){if(!l.endsWith(".md"))continue;let f=x1(yr(u,l)).outputs||[];for(let p of f)typeof p!="string"||!w8n(p)||i.has(p)||(i.add(p),r.push({path:p,from_stage:c,from_unit:l.replace(/\.md$/,"")}))}}if(r.length===0)return null;let s=new Set;for(let c of t){let u=ZAt(yr(e,"stages",c));for(let l of u)s.add(l)}let o=[];for(let c of r){if(s.has(c.path))continue;let u=k8n(c.path);x8n(n,u,c.path).length===0&&o.push(c)}if(o.length===0)return null;let a=e.split("/intents/")[1]||"";return{action:"output_liveness_review_required",intent:a,orphans:o,message:`Cannot advance to intent-completion review: ${o.length} code-output(s) shipped by units across this intent's stages have NO referencers anywhere in the repo. The continuity contract requires every code deliverable to be imported, rendered, or otherwise wired in by some other file. Files defined but never rendered are invisible to the user \u2014 the methodology promise breaks. +After resolving each, call \`haiku_run_next { intent: "${c}" }\` to re-run the validator.`}}function KJn(e){return!(!VJn.test(e)||WJn.test(e))}function YJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function ZJn(e){return e.startsWith(".haiku/")}function JJn(e,t,n){if(t===""||t.length<2)return[];try{return UJn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` +`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!ZJn(i))}catch{return[]}}function URt(e,t,n){if(t.length===0)return null;let r=[],i=new Set;for(let c of t){let u=Er(e,"stages",c,"units");if(_c(u))for(let l of sp(u)){if(!l.endsWith(".md"))continue;let f=G1(Er(u,l)).outputs||[];for(let p of f)typeof p!="string"||!KJn(p)||i.has(p)||(i.add(p),r.push({path:p,from_stage:c,from_unit:l.replace(/\.md$/,"")}))}}if(r.length===0)return null;let s=new Set;for(let c of t){let u=DRt(Er(e,"stages",c));for(let l of u)s.add(l)}let o=[];for(let c of r){if(s.has(c.path))continue;let u=YJn(c.path);JJn(n,u,c.path).length===0&&o.push(c)}if(o.length===0)return null;let a=e.split("/intents/")[1]||"";return{action:"output_liveness_review_required",intent:a,orphans:o,message:`Cannot advance to intent-completion review: ${o.length} code-output(s) shipped by units across this intent's stages have NO referencers anywhere in the repo. The continuity contract requires every code deliverable to be imported, rendered, or otherwise wired in by some other file. Files defined but never rendered are invisible to the user \u2014 the methodology promise breaks. For each orphan, EITHER: (a) Author a unit (or extend an existing unit) that integrates the output \u2014 typically importing the component into a parent screen, registering a route, or calling the function from a reachable code path. The integration code's diff lands as a new commit on the intent main branch. @@ -1042,116 +1041,119 @@ Orphan outputs: ${o.map(c=>`- \`${c.path}\` (declared by ${c.from_unit} in stage '${c.from_stage}')`).join(` `)} -After resolving each, call \`haiku_run_next { intent: "${a}" }\` to re-run the validator.`}}function XAt(e,t){let n=we(),r=yr(n,"intents",e),i=yr(r,"intent.md"),s;try{s=GAt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=x1(p);return(Array.isArray(h.quality_gates)?h.quality_gates:[]).filter(y=>!!y?.command).map(y=>({name:y.name??"",command:y.command,dir:y.dir??""}))}let a=o(i),c=yr(r,"stages",t,"units");if(Sc(c))for(let p of tp(c).filter(h=>h.startsWith("unit-")&&h.endsWith(".md")))a.push(...o(yr(c,p)));let u=new Set,l=a.filter(p=>{let h=`${p.command}::${p.dir}`;return u.has(h)?!1:(u.add(h),!0)}),d=(()=>{let p=process.env.HAIKU_QUALITY_GATE_TIMEOUT_MS,h=p?Number.parseInt(p,10):NaN;return Number.isFinite(h)&&h>0?h:12e4})(),f=[];for(let p=0;p{"use strict";V_e=_e(sn(),1);Oi();ze();Zn();Xi();_o();_8n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;E8n=["artifacts","outputs","knowledge","discovery"];A8n=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,R8n=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as qg,mkdirSync as O8n,readdirSync as N8n,readFileSync as eRt,renameSync as P8n}from"node:fs";import{dirname as C8n,join as Yc}from"node:path";function QAt(e){if(!qg(e))return{};let t=eRt(e,"utf8"),{data:n}=re(t);return n}function W_e(e,t,n,r){let i=Sdt(gl(e,t),Yc(n,"stages",t,"artifacts"),{studio:e,stage:t}),s=Object.keys(i).sort();if(s.length===0)return null;let o=s.map(a=>{let c=a.split(/[-_]/).map(l=>l.length===0?l:l[0].toUpperCase()+l.slice(1)).join(" "),u=kr({resolveBody:()=>kh(e,t,a),toolName:"haiku_read_review_agent",toolArgs:{studio:e,stage:t,role:a},intent:r,stage:t,kind:"review-agent",name:a});return`- **${c}** \u2014 ${u}`});return[D8n,"",...o].join(` -`).trimEnd()}function $At(){let e=F0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return sx.renderString(Z8n,{preamble:L8n,skillLines:t})}function Y8n(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=Yi(n,s),c=OI(i)==="autopilot",u=c?"autonomous":o?.data?.elaboration||"collaborative",l=r.iteration||r.visits||0,d=r.completed_units||[],f=r.pending_units||[],p=!!r.iterative,h=r.pending_feedback||[],m=r.validation_error,y=e.composedMode===!0,g=[];if(p){if(y||g.push(`## Iterative Re-Entry: ${s} (iteration #${l})`),o&&g.push(`${o.body}`),g.push("You're re-entering this stage with prior work already landed on the stage branch. **Completed units below are knowledge** \u2014 their artifacts are part of the current stage baseline and must NOT be re-done or modified. Your job is to decide whether this iteration of the intent needs new work, and if so, draft new units for it."),d.length>0){let G=["### Completed Units (knowledge \u2014 read-only)",""];for(let X of d){let q=Yc(i,"stages",s,"units",`${X}.md`);if(!qg(q)){G.push(`- **${X}** \u2014 _(file missing)_`);continue}let C=QAt(q),z=C.title||X,U=C.hat||"",M=Array.isArray(C.outputs)?C.outputs:[],H=[`- **${X}** \u2014 ${z}`,U?` - hat: \`${U}\``:null,M.length>0?` - outputs: ${M.map(F=>`\`${F}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${X}.md\``].filter(Boolean).join(` -`);G.push(H)}g.push(G.join(` -`))}f.length>0&&g.push(`### Pending Units (targets for this iteration) +After resolving each, call \`haiku_run_next { intent: "${a}" }\` to re-run the validator.`}}function FRt(e,t){let n=ve(),r=Er(n,"intents",e),i=Er(r,"intent.md"),s;try{s=ORt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=G1(p);return(Array.isArray(h.quality_gates)?h.quality_gates:[]).filter(g=>!!g?.command).map(g=>({name:g.name??"",command:g.command,dir:g.dir??""}))}let a=o(i),c=Er(r,"stages",t,"units");if(_c(c))for(let p of sp(c).filter(h=>h.startsWith("unit-")&&h.endsWith(".md")))a.push(...o(Er(c,p)));let u=new Set,l=a.filter(p=>{let h=`${p.command}::${p.dir}`;return u.has(h)?!1:(u.add(h),!0)}),d=(()=>{let p=process.env.HAIKU_QUALITY_GATE_TIMEOUT_MS,h=p?Number.parseInt(p,10):NaN;return Number.isFinite(h)&&h>0?h:12e4})(),f=[];for(let p=0;p{"use strict";m_e=Se(Kt(),1);Ci();ze();Kn();ts();ns();HJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;qJn=["artifacts","outputs","knowledge","discovery"];VJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,WJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as zg,mkdirSync as XJn,readdirSync as QJn,readFileSync as qRt,renameSync as $Jn}from"node:fs";import{dirname as e7n,join as eu}from"node:path";function jRt(e){if(!zg(e))return{};let t=qRt(e,"utf8"),{data:n}=re(t);return n}function g_e(e,t,n,r){let i=Ydt(bl(e,t),eu(n,"stages",t,"artifacts"),{studio:e,stage:t}),s=Object.keys(i).sort();if(s.length===0)return null;let o=s.map(a=>{let c=a.split(/[-_]/).map(l=>l.length===0?l:l[0].toUpperCase()+l.slice(1)).join(" "),u=kr({resolveBody:()=>Ch(e,t,a),toolName:"haiku_read_review_agent",toolArgs:{studio:e,stage:t,role:a},intent:r,stage:t,kind:"review-agent",name:a});return`- **${c}** \u2014 ${u}`});return[n7n,"",...o].join(` +`).trimEnd()}function HRt(){let e=V0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return fx.renderString(m7n,{preamble:r7n,skillLines:t})}function g7n(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=$i(n,s),c=DI(i)==="autopilot",u=c?"autonomous":o?.data?.elaboration||"collaborative",l=r.iteration||r.visits||0,d=r.completed_units||[],f=r.pending_units||[],p=!!r.iterative,h=r.pending_feedback||[],m=r.validation_error,g=e.composedMode===!0,y=[];if(p){if(g||y.push(`## Iterative Re-Entry: ${s} (iteration #${l})`),o&&y.push(`${o.body}`),y.push("You're re-entering this stage with prior work already landed on the stage branch. **Completed units below are knowledge** \u2014 their artifacts are part of the current stage baseline and must NOT be re-done or modified. Your job is to decide whether this iteration of the intent needs new work, and if so, draft new units for it."),d.length>0){let X=["### Completed Units (knowledge \u2014 read-only)",""];for(let G of d){let M=eu(i,"stages",s,"units",`${G}.md`);if(!zg(M)){X.push(`- **${G}** \u2014 _(file missing)_`);continue}let q=jRt(M),U=q.title||G,D=q.hat||"",H=Array.isArray(q.outputs)?q.outputs:[],j=[`- **${G}** \u2014 ${U}`,D?` - hat: \`${D}\``:null,H.length>0?` - outputs: ${H.map(W=>`\`${W}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${G}.md\``].filter(Boolean).join(` +`);X.push(j)}y.push(X.join(` +`))}f.length>0&&y.push(`### Pending Units (targets for this iteration) -${f.map(G=>`- \`${G}\``).join(` +${f.map(X=>`- \`${X}\``).join(` `)} -These units exist but haven't been executed. If they're still relevant, leave them. Revise their specs if the intent has evolved. Reject individual units by deleting their file (not advised unless clearly obsolete).`),g.push(ys("workflow-contracts-elaborate"));let B=W_e(n,s,i,t);return B&&g.push(B),g.push(sx.renderString(M8n,{slug:t})),g.join(` +These units exist but haven't been executed. If they're still relevant, leave them. Revise their specs if the intent has evolved. Reject individual units by deleting their file (not advised unless clearly obsolete).`),y.push(Es("workflow-contracts-elaborate"));let B=g_e(n,s,i,t);return B&&y.push(B),y.push(fx.renderString(t7n,{slug:t})),y.join(` -`)}if(l>1){y||g.push(`## Revisit Elaborate: ${s} (iteration #${l})`),m&&g.push(`### Validation Error +`)}if(l>1){g||y.push(`## Revisit Elaborate: ${s} (iteration #${l})`),m&&y.push(`### Validation Error -${m}`),d.length>0&&g.push(`### Frozen Completed Units (read-only) +${m}`),d.length>0&&y.push(`### Frozen Completed Units (read-only) The following units from prior iterations are **completed and immutable** \u2014 do NOT modify or re-queue them: -${d.map(X=>`- \`${X}\``).join(` -`)}`),h.length>0&&g.push(`### Pending Feedback (MUST address \u2014 READ EACH FILE IN FULL) +${d.map(G=>`- \`${G}\``).join(` +`)}`),h.length>0&&y.push(`### Pending Feedback (MUST address \u2014 READ EACH FILE IN FULL) -${h.map(X=>`- **${X.feedback_id}** \u2014 ${X.title} - - file: \`${X.file}\` - - origin: ${X.origin} \xB7 author: ${X.author}`).join(` +${h.map(G=>`- **${G.feedback_id}** \u2014 ${G.title} + - file: \`${G.file}\` + - origin: ${G.origin} \xB7 author: ${G.author}`).join(` `)} -You MUST open every file above and read it completely before drafting units. The title is only a handle; the body carries requirements, tests, and acceptance criteria.`);let B=W_e(n,s,i,t);B&&g.push(B);let G=$At();return G&&g.push(G),g.push("### Responsibilities\n\n- Read every `pending_feedback[].file` in full before drafting \u2014 the title is only a handle.\n- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.\n- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).\n- Ask the user clarifying questions (`AskUserQuestion` with options[]) when trade-offs are unclear; iterate across turns.\n- When the user approves the drafted units, call `haiku_run_next` to advance.\n\nInputs (read directly \u2014 do not inline summaries, open the actual files):\n- every `pending_feedback[].file` listed above\n- `stage_metadata` (STAGE.md body + review agents)\n- `completed_units` (read-only reference)\n- `intent.md` for overall goals"),g.push(`### Mechanics +You MUST open every file above and read it completely before drafting units. The title is only a handle; the body carries requirements, tests, and acceptance criteria.`);let B=g_e(n,s,i,t);B&&y.push(B);let X=HRt();return X&&y.push(X),y.push("### Responsibilities\n\n- Read every `pending_feedback[].file` in full before drafting \u2014 the title is only a handle.\n- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.\n- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).\n- Ask the user clarifying questions (`AskUserQuestion` with options[]) when trade-offs are unclear; iterate across turns.\n- When the user approves the drafted units, call `haiku_run_next` to advance.\n\nInputs (read directly \u2014 do not inline summaries, open the actual files):\n- every `pending_feedback[].file` listed above\n- `stage_metadata` (STAGE.md body + review agents)\n- `completed_units` (read-only reference)\n- `intent.md` for overall goals"),y.push(`### Mechanics 1. Continue the existing file-naming sequence: if the last unit is \`unit-0N-...\`, start new units at \`unit-0(N+1)-...\` (keep the same digit width as existing units in this stage; the engine resolves either width by numeric prefix). 2. Each new unit MUST declare \`closes: [FB-NNN]\` for every feedback id it addresses. 3. Every pending feedback item MUST be referenced by at least one new unit's \`closes:\` (orphans block advancement). 4. Use the unit-file naming convention: \`unit-NNN-slug.md\` (kebab-case slug, 3-digit zero-padded number; max 999). -5. Call \`haiku_run_next { intent: "${t}" }\` when done \u2014 the orchestrator re-validates and advances.`),g.join(` +5. Call \`haiku_run_next { intent: "${t}" }\` when done \u2014 the orchestrator re-validates and advances.`),y.join(` -`)}if(y||g.push(`## Elaborate: ${s}`),o&&g.push(`${o.body}`),Sfe(n,s,"ELABORATION")){let B=kr({resolveBody:()=>AK(n,s,"ELABORATION"),toolName:"haiku_read_phase",toolArgs:{studio:n,stage:s,phase:"ELABORATION"},intent:t,stage:s,kind:"phase",name:"ELABORATION"});g.push(`### Phase: Elaboration Override +`)}if(g||y.push(`## Elaborate: ${s}`),o&&y.push(`${o.body}`),Ufe(n,s,"ELABORATION")){let B=kr({resolveBody:()=>FK(n,s,"ELABORATION"),toolName:"haiku_read_phase",toolArgs:{studio:n,stage:s,phase:"ELABORATION"},intent:t,stage:s,kind:"phase",name:"ELABORATION"});y.push(`### Phase: Elaboration Override -${B}`)}g.push(ys("workflow-contracts-elaborate"));let E=xI("elaborate",i);E&&g.push(E);let S=W_e(n,s,i,t);S&&g.push(S);let _=[],b=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let B=o.data.inputs,G=wK(n,B,i,t),X=G.filter(C=>C.exists),q=G.filter(C=>!C.exists);if(X.length>0){b=X.map(C=>C.resolvedPath.startsWith(`${i}/`)?C.resolvedPath.slice(i.length+1):C.resolvedPath);for(let C of X){let z=C.resolvedPath.startsWith(`${i}/`)?C.resolvedPath.slice(i.length+1):C.resolvedPath;_.push(`- **${C.stage}/${C.artifactName}** (${C.kind}) \u2014 \`${z}\``)}}q.length>0&&g.push(`## \u26A0 Missing Upstream Artifacts +${B}`)}y.push(Es("workflow-contracts-elaborate"));let E=MI("elaborate",i);E&&y.push(E);let S=g_e(n,s,i,t);S&&y.push(S);let _=wn(zg(eu(i,"intent.md"))?jRt(eu(i,"intent.md")):{},n),b=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let B=o.data.inputs,X=Hpe(B,_),G=HK(n,X,i,t),M=G.filter(U=>U.exists),q=G.filter(U=>!U.exists);if(M.length>0){T=M.map(U=>U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath);for(let U of M){let D=U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath;b.push(`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 \`${D}\``)}}q.length>0&&y.push(`## \u26A0 Missing Upstream Artifacts The following inputs are declared but do not exist on disk: -${q.map(C=>`- **${C.stage}/${C.artifactName}** (${C.kind}) \u2014 expected at \`${C.resolvedPath}\``).join(` +${q.map(U=>`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 expected at \`${U.resolvedPath}\``).join(` `)} -These may not have been produced yet, or may have been saved to a different location. If they are critical for this stage, log a stage_revisit feedback at the producing stage via \`haiku_feedback { intent, stage: "", title: "", body: "", origin: "agent", resolution: "stage_revisit" }\` and call \`haiku_run_next\` \u2014 the pre-tick gate routes the rewind.`)}let T=[];{let B=or(qg(Yc(i,"intent.md"))?QAt(Yc(i,"intent.md")):{},n),G=B.indexOf(s),X=G>0?B.slice(0,G):[];for(let q of X){let C=`.haiku/intents/${t}/stages/${q}`;T.push(`- **${q}**`,` - knowledge / discovery: \`${C}/knowledge/\``,` - unit specs: \`${C}/units/unit-*.md\``,` - stage outputs: any files under \`${C}/\` outside \`units/\` (\`.md\` reports, \`artifacts/\`)`,` - resolved feedback: \`${C}/feedback/*.md\``)}}if(_.length>0||T.length>0){let B=[U8n];_.length>0&&(B.push("","### Declared Inputs (from STAGE.md)"),B.push("",..._)),T.length>0&&B.push("",j8n,"",...T,"",F8n),g.push(B.join(` -`)),b.length>0&&g.push(`## Unit Inputs Requirement (MANDATORY) +These may not have been produced yet, or may have been saved to a different location. If they are critical for this stage, log a stage_revisit feedback at the producing stage via \`haiku_feedback { intent, stage: "", title: "", body: "", origin: "agent", resolution: "stage_revisit" }\` and call \`haiku_run_next\` \u2014 the pre-tick gate routes the rewind.`)}let A=[];{let B=_,X=B.indexOf(s),G=X>0?B.slice(0,X):[];for(let M of G){let q=`.haiku/intents/${t}/stages/${M}`;A.push(`- **${M}**`,` - knowledge / discovery: \`${q}/knowledge/\``,` - unit specs: \`${q}/units/unit-*.md\``,` - stage outputs: any files under \`${q}/\` outside \`units/\` (\`.md\` reports, \`artifacts/\`)`,` - resolved feedback: \`${q}/feedback/*.md\``)}}if(b.length>0||A.length>0){let B=[i7n];b.length>0&&(B.push("","### Declared Inputs (from STAGE.md)"),B.push("",...b)),A.length>0&&B.push("",s7n,"",...A,"",o7n),y.push(B.join(` +`)),T.length>0&&y.push(`## Unit Inputs Requirement (MANDATORY) Every unit **MUST** have a non-empty \`inputs:\` field in its frontmatter. At minimum, every unit should reference the intent document and discovery docs. Units will be **blocked from execution** if \`inputs:\` is empty. Available upstream artifacts: \`\`\`yaml inputs: -${b.map(G=>` - ${G}`).join(` +${T.map(X=>` - ${X}`).join(` `)} \`\`\` -Include all inputs relevant to the unit's scope. Frontend/UI units should reference design artifacts. Backend units should reference behavioral specs and data contracts.`)}{let B=Qs(n,s).filter(G=>G.kind==="discovery"&&G.scope==="project"&&G.location).map(G=>({name:G.name,rel:G.location.replace(/\{intent-slug\}/g,t)})).filter(G=>qg(Yc(process.cwd(),G.rel))).sort((G,X)=>G.name.localeCompare(X.name));if(B.length>0){let G=B.map(X=>`- **${X.name}** \u2014 \`${X.rel}\``).join(` -`);g.push(`## Long-Lived Repo Knowledge (read as prior) +Include all inputs relevant to the unit's scope. Frontend/UI units should reference design artifacts. Backend units should reference behavioral specs and data contracts.`)}{let B=no(n,s).filter(X=>X.kind==="discovery"&&X.scope==="project"&&X.location).map(X=>({name:X.name,rel:X.location.replace(/\{intent-slug\}/g,t)})).filter(X=>zg(eu(process.cwd(),X.rel))).sort((X,G)=>X.name.localeCompare(G.name));if(B.length>0){let X=B.map(G=>`- **${G.name}** \u2014 \`${G.rel}\``).join(` +`);y.push(`## Long-Lived Repo Knowledge (read as prior) This project carries knowledge that persists across intents (\`scope: project\`). It already exists on disk \u2014 read it FIRST as your starting point so you build on what the project already established instead of rediscovering or reinventing it: -${G} +${X} -These are priors, not gospel. The research and work this intent requires may confirm or contradict them. If your work shows a prior has diverged from the codebase's current reality (a value moved, a pattern changed, a component was removed), update it in place during this stage \u2014 preserve what still holds, correct what doesn't. If it still holds, leave it untouched. When a unit builds on one of these, list its path in that unit's \`inputs:\` so the downstream hat reads the same prior.`)}}let A=[];{let B=new Set;for(let G of[...ku()].reverse()){let X=Yc(G,n,"stages",s,"discovery");if(qg(X))for(let q of N8n(X).filter(C=>C.endsWith(".md"))){if(B.has(q))continue;B.add(q);let C=Yc(X,q),z=eRt(C,"utf8"),{data:U}=re(z),M=U.location,H=typeof M=="string"?M.replace(/\{intent-slug\}/g,t):M,F=null;typeof H=="string"&&H.length>0&&(H.startsWith(".haiku/")?F=Yc(process.cwd(),H):H.startsWith("/")?F=H:F=Yc(i,H)),A.push({name:q.replace(/\.md$/i,"").toLowerCase(),templatePath:C,outputPath:F})}}}let R=Yc(i,"knowledge");for(let B of A){if(!B.outputPath||qg(B.outputPath))continue;let G=`${B.name.toUpperCase()}.md`,X=Yc(R,G);if(X!==B.outputPath&&qg(X))try{O8n(C8n(B.outputPath),{recursive:!0}),P8n(X,B.outputPath),console.error(`[haiku] Relocated misplaced discovery artifact: '${X}' \u2192 '${B.outputPath}' (template '${B.name}' declares ${B.outputPath}). Clears the cursor re-emission wedge from pre-2026-05-13 engine versions.`)}catch(q){console.error(`[haiku] Could not relocate '${X}' to '${B.outputPath}': ${q instanceof Error?q.message:String(q)}. Discovery will continue to re-emit until the file is moved manually.`)}}let k=A.filter(B=>{if(B.outputPath)return!qg(B.outputPath);let G=Yc(R,`${B.name.toUpperCase()}.md`);return!qg(G)});if(k.length>0){let B=k.map(M=>`\`${M.name}\``).join(", "),G=k.length!==1?"s":"",X=kr({resolveBody:()=>Hh(t),toolName:"haiku_read_intent",toolArgs:{intent:t},intent:t,stage:s,kind:"intent-goal",name:"intent"}),q=kr({resolveBody:()=>Ih(n,s),toolName:"haiku_read_stage",toolArgs:{studio:n,stage:s},intent:t,stage:s,kind:"stage-scope",name:s}),C=`## Discovery Fan-Out (REQUIRED) +These are priors, not gospel. The research and work this intent requires may confirm or contradict them. If your work shows a prior has diverged from the codebase's current reality (a value moved, a pattern changed, a component was removed), update it in place during this stage \u2014 preserve what still holds, correct what doesn't. If it still holds, leave it untouched. When a unit builds on one of these, list its path in that unit's \`inputs:\` so the downstream hat reads the same prior.`)}}let R=[];{let B=new Set;for(let X of[...Cu()].reverse()){let G=eu(X,n,"stages",s,"discovery");if(zg(G))for(let M of QJn(G).filter(q=>q.endsWith(".md"))){if(B.has(M))continue;B.add(M);let q=eu(G,M),U=qRt(q,"utf8"),{data:D}=re(U),H=D.location,j=typeof H=="string"?H.replace(/\{intent-slug\}/g,t):H,W=null;typeof j=="string"&&j.length>0&&(j.startsWith(".haiku/")?W=eu(process.cwd(),j):j.startsWith("/")?W=j:W=eu(i,j)),R.push({name:M.replace(/\.md$/i,"").toLowerCase(),templatePath:q,outputPath:W})}}}let x=eu(i,"knowledge");for(let B of R){if(!B.outputPath||zg(B.outputPath))continue;let X=`${B.name.toUpperCase()}.md`,G=eu(x,X);if(G!==B.outputPath&&zg(G))try{XJn(e7n(B.outputPath),{recursive:!0}),$Jn(G,B.outputPath),console.error(`[haiku] Relocated misplaced discovery artifact: '${G}' \u2192 '${B.outputPath}' (template '${B.name}' declares ${B.outputPath}). Clears the cursor re-emission wedge from pre-2026-05-13 engine versions.`)}catch(M){console.error(`[haiku] Could not relocate '${G}' to '${B.outputPath}': ${M instanceof Error?M.message:String(M)}. Discovery will continue to re-emit until the file is moved manually.`)}}let k=R.filter(B=>{if(B.outputPath)return!zg(B.outputPath);let X=eu(x,`${B.name.toUpperCase()}.md`);return!zg(X)});if(k.length>0){let B=k.map(H=>`\`${H.name}\``).join(", "),X=k.length!==1?"s":"",G=kr({resolveBody:()=>Wh(t),toolName:"haiku_read_intent",toolArgs:{intent:t},intent:t,stage:s,kind:"intent-goal",name:"intent"}),M=kr({resolveBody:()=>Mh(n,s),toolName:"haiku_read_stage",toolArgs:{studio:n,stage:s},intent:t,stage:s,kind:"stage-scope",name:s}),q=`## Discovery Fan-Out (REQUIRED) -This stage produces ${k.length} discovery artifact${G}: ${B}. +This stage produces ${k.length} discovery artifact${X}: ${B}. -${ys("workflow-contracts-announcement")} +${Es("workflow-contracts-announcement")} **Spawn one subagent per artifact** using the \`prompt_file\` attribute on each \`\` block \u2014 pass \`"Read and execute its instructions exactly."\` as the spawn prompt (substituting the attribute's path). Each subagent writes inside its own isolation worktree, then calls \`haiku_discovery_complete { intent, stage, template }\` to hand the merge-back over to the engine (which takes a per-stage lock so parallel siblings serialize cleanly). -${NI(k.length,"discovery subagents",{forceForeground:c})} +${LI(k.length,"discovery subagents",{forceForeground:c})} -`;for(let M of k){let H=epe(t,s,M.name),F=H?M.outputPath?M.outputPath.startsWith(i)?Yc(H,".haiku","intents",t,M.outputPath.slice(i.length+1)):M.outputPath.startsWith(process.cwd())?Yc(H,M.outputPath.slice(process.cwd().length+1)):M.outputPath:Yc(H,".haiku","intents",t,"knowledge",`${M.name.toUpperCase()}.md`):null,W=kr({resolveBody:()=>hI(n,s,M.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:M.name},intent:t,stage:s,kind:"discovery-template",name:M.name}),$=sx.renderString(K8n,{artifactName:M.name,slug:t,stage:s,studio:n,worktree:H,branchName:H?TI(t,s,M.name):"",expectedArtifactPath:F,intentRef:X,stageRef:q,templateRef:W}),ie=Nu({mandatePath:M.templatePath,studio:n,stage:s});C+=`${Ei({unit:"discovery",hat:M.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:ie,promptBody:$,heading:`### Subagent: \`${M.name}\``,forceForeground:c,omitBolt:!0})} +`;for(let H of k){let j=Spe(t,s,H.name),W=j?H.outputPath?H.outputPath.startsWith(i)?eu(j,".haiku","intents",t,H.outputPath.slice(i.length+1)):H.outputPath.startsWith(process.cwd())?eu(j,H.outputPath.slice(process.cwd().length+1)):H.outputPath:eu(j,".haiku","intents",t,"knowledge",`${H.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>EI(n,s,H.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:H.name},intent:t,stage:s,kind:"discovery-template",name:H.name}),se=fx.renderString(h7n,{artifactName:H.name,slug:t,stage:s,studio:n,worktree:j,branchName:j?kI(t,s,H.name):"",expectedArtifactPath:W,intentRef:G,stageRef:M,templateRef:ee}),Me=Fu({mandatePath:H.templatePath,studio:n,stage:s});q+=`${Ti({unit:"discovery",hat:H.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Me,promptBody:se,heading:`### Subagent: \`${H.name}\``,forceForeground:c,omitBolt:!0})} -`}let z=Ni().subagents.backgroundSpawn&&!c?' Each `` carries `background="true"` \u2014 pass `run_in_background: true` to the Task tool so the parent thread stays responsive while discovery agents run.':"",U=c?` **You are in autopilot mode \u2014 do NOT yield.** Spawn the subagents in the foreground (the \`\` blocks above carry no \`background\` attribute) and wait for every one to return in this same response. The instant the last subagent returns, call \`haiku_run_next { intent: "${t}" }\` in the SAME response. The next tick emits the unit-decomposition instructions, which you also handle in-turn. Autopilot is a contiguous drive \u2014 pausing across turns defeats the mode.`:` When ALL subagents return, call \`haiku_run_next { intent: "${t}" }\` \u2014 the workflow engine merges their isolation worktrees back into the stage branch (resolving conflicts via the integrator if needed) and then emits the unit-decomposition instructions. **Do NOT proceed to decomposition in this response** \u2014 wait for the next workflow tick so the merged knowledge artifacts are visible.`;return C+=`### Parent Instructions (do NOT include in subagent prompts) +`}let U=Mi().subagents.backgroundSpawn&&!c?' Each `` carries `background="true"` \u2014 pass `run_in_background: true` to the Task tool so the parent thread stays responsive while discovery agents run.':"",D=c?` **You are in autopilot mode \u2014 do NOT yield.** Spawn the subagents in the foreground (the \`\` blocks above carry no \`background\` attribute) and wait for every one to return in this same response. The instant the last subagent returns, call \`haiku_run_next { intent: "${t}" }\` in the SAME response. The next tick emits the unit-decomposition instructions, which you also handle in-turn. Autopilot is a contiguous drive \u2014 pausing across turns defeats the mode.`:` When ALL subagents return, call \`haiku_run_next { intent: "${t}" }\` \u2014 the workflow engine merges their isolation worktrees back into the stage branch (resolving conflicts via the integrator if needed) and then emits the unit-decomposition instructions. **Do NOT proceed to decomposition in this response** \u2014 wait for the next workflow tick so the merged knowledge artifacts are visible.`;return q+=`### Parent Instructions (do NOT include in subagent prompts) -Spawn each subagent above using the \`prompt_file\` attribute \u2014 pass \`"Read and execute its instructions exactly."\` as the spawn prompt (substituting the attribute's path). Do NOT include the \`\` block body itself in the spawn prompt.${z}${U}`,g.push(C),y||g.push(Cf("discovery",{slug:t,stage:s})),g.join(` +Spawn each subagent above using the \`prompt_file\` attribute \u2014 pass \`"Read and execute its instructions exactly."\` as the spawn prompt (substituting the attribute's path). Do NOT include the \`\` block body itself in the spawn prompt.${U}${D}`,y.push(q),g||y.push(Mf("discovery",{slug:t,stage:s})),y.join(` -`)}let x=ix(n,s,`## Stage Output Expectations +`)}let P=dx(n,s,`## Stage Output Expectations -This stage must ultimately produce the following outputs during execution. Plan units accordingly:`,t);x&&g.push(x),o?.data?.produces==="build"&&g.push("## Build-Class Units: Declare Verification\n\nThis is a **build** stage \u2014 every unit that declares `outputs:` MUST also declare a `quality_gates:` field. Pair each produced artifact with the executable check that verifies it (the verify-command pattern in this stage's elaboration guidance). If a unit genuinely defers verification to a sibling test unit, declare an explicit empty list (`quality_gates: []`) \u2014 but the field must be present so the choice is deliberate and reviewable. `haiku_unit_write` will reject a producing unit that omits it.\n\n**Gates that need a live dependency** (a test suite that hits a database, a migration, a check that talks to a queue/cache) only verify something when that dependency is running. Declare the dependency once as a service in `.haiku/boot.md` \u2014 a `processes:` entry with `service: true` and `requires_tool: docker` (e.g. a `docker compose up` Postgres with a `ready_url` health probe). At gate time the engine brings declared services up via the live tool, or \u2014 if the tool isn't available \u2014 escalates to the user. It will NOT advance a gate that couldn't reach its dependency, so a missing service recipe turns into a hold, not a false green. If this project already has a `docker-compose.yml` / `Makefile` the engine can auto-detect it, but a `.haiku/boot.md` service entry is the reproducible declaration.\n\n**Declare real internal services; never mock them.** Internal infrastructure the app owns \u2014 its database, cache, queue, search, object store (Postgres, Redis, Mongo, Elasticsearch, Kafka, \u2026) \u2014 MUST be a real `service:` process in `.haiku/boot.md`; never a mock, in-memory fake, or SQLite stand-in, because a gate that passes against a faked datastore verified nothing about migrations/queries/persistence. Third-party SaaS the app only calls across the network (Stripe, Twilio, SendGrid, vendor LLM/auth APIs) is the opposite: do NOT declare it as a `service:` to run \u2014 stub it or use the vendor sandbox at the app's edge, since hitting it live costs money and fires real side effects. The line is ownership: a process we stand up ourselves is real; a vendor API we call out to is mocked.");let N=o?.data?.hats||[];(s.includes("design")||N.some(B=>B.includes("designer")||B.includes("design"))||o?.body?.includes("pick_design_direction"))&&g.push(H8n),g.push(sx.renderString(q8n,{collaborative:u==="collaborative"}));let D=$At();D&&g.push(D);let j=u==="collaborative"?B8n:G8n,V=c?'\n\n**Autopilot \u2014 zero user interaction.** You are driving this intent autonomously; the only human touchpoint is the pre-intent conversation, which already happened. Do NOT call `AskUserQuestion`, `ask_user_visual_question`, `pick_design_direction`, or any other user-facing prompt during elaboration \u2014 not even for a "genuine blocker". Resolve every ambiguity yourself from the codebase, prior-stage outputs, established conventions, and the intent description: make the most defensible call and record the reasoning in the unit body, never as a question.':"",Z=sx.renderString(z8n,{slug:t,stage:s});return g.push(`${V8n} +This stage must ultimately produce the following outputs during execution. Plan units accordingly:`,t);P&&y.push(P),o?.data?.produces==="build"&&y.push("## Build-Class Units: Declare Verification\n\nThis is a **build** stage \u2014 every unit that declares `outputs:` MUST also declare a `quality_gates:` field. Pair each produced artifact with the executable check that verifies it (the verify-command pattern in this stage's elaboration guidance). If a unit genuinely defers verification to a sibling test unit, declare an explicit empty list (`quality_gates: []`) \u2014 but the field must be present so the choice is deliberate and reviewable. `haiku_unit_write` will reject a producing unit that omits it.\n\n**Gates that need a live dependency** (a test suite that hits a database, a migration, a check that talks to a queue/cache) only verify something when that dependency is running. Declare the dependency once as a service in `.haiku/boot.md` \u2014 a `processes:` entry with `service: true` and `requires_tool: docker` (e.g. a `docker compose up` Postgres with a `ready_url` health probe). At gate time the engine brings declared services up via the live tool, or \u2014 if the tool isn't available \u2014 escalates to the user. It will NOT advance a gate that couldn't reach its dependency, so a missing service recipe turns into a hold, not a false green. If this project already has a `docker-compose.yml` / `Makefile` the engine can auto-detect it, but a `.haiku/boot.md` service entry is the reproducible declaration.\n\n**Declare real internal services; never mock them.** Internal infrastructure the app owns \u2014 its database, cache, queue, search, object store (Postgres, Redis, Mongo, Elasticsearch, Kafka, \u2026) \u2014 MUST be a real `service:` process in `.haiku/boot.md`; never a mock, in-memory fake, or SQLite stand-in, because a gate that passes against a faked datastore verified nothing about migrations/queries/persistence. Third-party SaaS the app only calls across the network (Stripe, Twilio, SendGrid, vendor LLM/auth APIs) is the opposite: do NOT declare it as a `service:` to run \u2014 stub it or use the vendor sandbox at the app's edge, since hitting it live costs money and fires real side effects. The line is ownership: a process we stand up ourselves is real; a vendor API we call out to is mocked.");let N=o?.data?.hats||[];(s.includes("design")||N.some(B=>B.includes("designer")||B.includes("design"))||o?.body?.includes("pick_design_direction"))&&y.push(a7n),y.push(fx.renderString(c7n,{collaborative:u==="collaborative"}));let F=HRt();F&&y.push(F);let V=u==="collaborative"?u7n:l7n,K=c?'\n\n**Autopilot \u2014 zero user interaction.** You are driving this intent autonomously; the only human touchpoint is the pre-intent conversation, which already happened. Do NOT call `AskUserQuestion`, `ask_user_visual_question`, `pick_design_direction`, or any other user-facing prompt during elaboration \u2014 not even for a "genuine blocker". Resolve every ambiguity yourself from the codebase, prior-stage outputs, established conventions, and the intent description: make the most defensible call and record the reasoning in the unit body, never as a question.':"",$=fx.renderString(d7n,{slug:t,stage:s});return y.push(`${f7n} -${j}${V} +${V}${K} -${Z}`),y||g.push(Cf("decompose",{slug:t,stage:s})),g.join(` +${$}`),g||y.push(Mf("decompose",{slug:t,stage:s})),y.join(` -`)}var sx,M8n,D8n,L8n,U8n,j8n,F8n,H8n,q8n,B8n,G8n,z8n,V8n,W8n,K8n,Z8n,tRt,nRt=v(()=>{"use strict";_t();Tr();yf();ze();Zn();_o();s6();Xi();mt();Oh();Rt();sx=new ve({autoEscape:!1,useWith:!0}),M8n=se("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),D8n=se("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),L8n=se("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),U8n=se("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),j8n=se("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),F8n=se("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),H8n=se("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),q8n=se("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),B8n=se("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),G8n=se("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),z8n=se("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),V8n=se("@canon:stage/elaborate/decompose","blocks/scope-header.md"),W8n=se("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),K8n=se("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),Z8n=se("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");tRt=e=>{let t=e.action.prompt_file;return t?sx.renderString(W8n,{promptFile:t}):Y8n(e)}});import{join as J8n}from"node:path";var rRt,X8n,Q8n,iRt,sRt=v(()=>{"use strict";_t();ze();Zn();Xi();mt();Rt();rRt=new ve({autoEscape:!1,useWith:!0}),X8n=se("@canon:stage/elaborate/decompose_review"),Q8n=se("@canon:stage/elaborate/decompose_review","subagent.eta.md"),iRt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Hh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),a=kr({resolveBody:()=>Ih(i,n),toolName:"haiku_read_stage",toolArgs:{studio:i,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),c=J8n(e.dir,"stages",n,"elaboration.md"),u=Cf("verify_decompose",{slug:r,stage:n}),l=rRt.renderString(Q8n,{stage:n,intentSlug:r,intentRef:o,stageRef:a,elabPath:c,verifierNonce:s}),d=Ei({unit:`verify-${n}-decompose`,hat:"decompose-verifier",bolt:1,intent:r,stage:n,agentType:"general-purpose",promptBody:l,heading:`### Subagent: decompose verifier (stage \`${n}\`)`,omitBolt:!0});return rRt.renderString(X8n,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var oRt,$8n,eJn,K_e,aRt=v(()=>{"use strict";_t();Zn();Xi();mt();Rt();oRt=new ve({autoEscape:!1,useWith:!0}),$8n=se("@canon:stage/elaborate/discovery_required"),eJn=se("@canon:stage/elaborate/discovery_required","subagent.eta.md"),K_e=e=>{let{slug:t,studio:n,action:r}=e,i=r.stage||"",s=Array.isArray(r.dispatches)?r.dispatches:[{agent:r.agent||"",units:r.units||[]}],o=Qs(n,i).filter(u=>u.kind==="discovery"),a=s.map(u=>{let l=u.agent,f=(u.units??[])[0]||"",p=o.find(g=>g.name===l),h=p?p.location.replace(/\{intent-slug\}/g,t):"",m=f?` on \`${f}\``:"",y="";if(p&&!p.tool){let g=kr({resolveBody:()=>hI(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),E=oRt.renderString(eJn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:g}),S=Nu({mandatePath:gfe(n,i,l)??void 0,studio:n,stage:i});y=Ei({unit:"discovery",hat:l,bolt:1,intent:t,stage:i,agentType:"general-purpose",model:S,promptBody:E,heading:`### Subagent: \`${l}\``,omitBolt:!0})}return{agent:l,unit:f,unitLabel:m,def:p,resolvedLocation:h,dispatchBlock:y}}),c=Cf("discovery",{slug:t,stage:i});return oRt.renderString($8n,{slug:t,stage:i,dispatches:a,dispatchCount:a.length,agent:a[0]?.agent??"",unit:a[0]?.unit??"",unitLabel:a[0]?.unitLabel??"",def:a[0]?.def,resolvedLocation:a[0]?.resolvedLocation??"",dispatchBlock:a[0]?.dispatchBlock??"",concurrentLoopBlock:c,composedMode:e.composedMode===!0})}});var tJn,nJn,cRt,uRt=v(()=>{"use strict";_t();ze();Zn();Xi();mt();Rt();tJn=new ve({autoEscape:!1,useWith:!0}),nJn=se("@canon:stage/elaborate/elaborate"),cRt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Hh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),s=kr({resolveBody:()=>Ih(e.studio,n),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),o=Cf("conversation",{slug:r,stage:n});return tJn.renderString(nJn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as rJn}from"node:path";var lRt,iJn,sJn,dRt,fRt=v(()=>{"use strict";_t();ze();Zn();Xi();mt();Rt();lRt=new ve({autoEscape:!1,useWith:!0}),iJn=se("@canon:stage/elaborate/elaborate_review"),sJn=se("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),dRt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=!n,s=t.verifier_nonce??"",o=i?"":n,a=kr({resolveBody:()=>Hh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:o||void 0,kind:"intent-goal",name:"intent"}),c=i?"":kr({resolveBody:()=>Ih(e.studio,o),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:o},intent:r,stage:o,kind:"stage-scope",name:o}),u=i?"":rJn(e.dir,"stages",o,"elaboration.md"),l=i?"":Cf("verify_conversation",{slug:r,stage:o}),d=lRt.renderString(sJn,{isPreIntent:i,intentSlug:r,stage:o,intentRef:a,stageRef:c,elabPath:u,verifierNonce:s}),f=Ei({unit:i?"verify-intent":`verify-${o}-elaboration`,hat:"elaborate-verifier",bolt:1,intent:r,stage:i?void 0:o,agentType:"general-purpose",promptBody:d,heading:i?"### Subagent: pre-intent elaborate verifier":`### Subagent: elaborate verifier (stage \`${o}\`)`,omitBolt:!0});return lRt.renderString(iJn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function oJn(e,t){let n={stage:e.stage,intent:e.intent},r=e.verifier_nonces??{};switch(t.signal){case"conversation":return{...n,action:"elaborate",signal:"conversation"};case"verify_conversation":return{...n,action:"elaborate_review",signal:"verify_conversation",verifier_nonce:r.verify_conversation??""};case"discovery":return{...n,action:"discovery_required",signal:"discovery",agent:t.agent??"",units:t.units??[]};case"decompose":return{...n,action:"decompose",signal:"decompose"};case"verify_decompose":return{...n,action:"decompose_review",signal:"verify_decompose",verifier_nonce:r.verify_decompose??""}}}function aJn(e){switch(e){case"conversation":return cRt;case"verify_conversation":return dRt;case"discovery":return K_e;case"decompose":return tRt;case"verify_decompose":return iRt}}function pRt(e){switch(e){case"conversation":return"Signal: `conversation` \u2014 capture the stage's human-conversation outcome";case"verify_conversation":return"Signal: `verify_conversation` \u2014 dispatch the elaboration substance verifier";case"discovery":return"Signal: `discovery` \u2014 produce a missing discovery artifact";case"decompose":return"Signal: `decompose` \u2014 draft unit specs for this stage";case"verify_decompose":return"Signal: `verify_decompose` \u2014 dispatch the decompose coverage verifier"}}var hRt,mRt=v(()=>{"use strict";Xi();Rt();nRt();sRt();aRt();uRt();fRt();hRt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=OI(e.dir)==="autopilot";if(n.length===0)return["## Elaborate Loop","","Every elaborate-loop completion signal is currently met \u2014 call `haiku_run_next` to advance."].join(` -`);let o=[],a=r?`## Elaborate Loop \u2014 \`${r}\``:"## Elaborate Loop \u2014 pre-intent";o.push(a);let c=n.map(d=>d.signal==="discovery"&&d.agent?`\`${d.signal}\` (template: \`${d.agent}\`)`:`\`${d.signal}\``).join(", ");o.push(`The cursor's elaborate-loop has **${n.length}** completion signal${n.length===1?"":"s"} unmet for ${r?`stage \`${r}\``:`intent \`${i}\``}: ${c}. You may make progress on any subset of them in this tick \u2014 they are concurrent, not ordered. Each signal carries its own sub-instructions below.`),o.push("Read each block, decide which signals you can move forward this tick (often more than one), execute, then call `haiku_run_next` to re-evaluate the loop. The cursor stays in `elaborate_loop` until every signal flips on disk."),s&&o.push(["> **\u26A0 AUTOPILOT \u2014 THIS PHASE DOES NOT STOP TO ASK.**",">",'> Make progress on every signal you can this tick, then end your turn by calling `haiku_run_next`. Do **NOT** yield the turn to ask the user anything \u2014 not for a missing upstream artifact, not for an ambiguous scope or a fork between approaches, not for "should I continue?". Resolve it autonomously: pick the path the intent\'s goals imply, or file a `haiku_feedback` (`resolution: "stage_revisit"` for a missing upstream, `resolution: "question"` for a genuine fork) and immediately call `haiku_run_next` \u2014 the engine routes it on the next tick without a turn handoff. The ONLY human touchpoint in autopilot was the pre-intent conversation; there is no one to answer a question now.',">","> **DO THE WORK before you re-tick.** This phase is your work, not a transition to tick past: dispatch the discovery subagents and DRAFT the unit specs (`haiku_unit_write`) THIS turn. A signal clears only when you change disk state \u2014 calling `haiku_run_next` WITHOUT first drafting/dispatching returns the SAME elaborate-loop, and after a few empty ticks the engine HALTS the workflow as a no-progress loop. The escape is always to do the work, never to re-tick harder."].join(` -`));let u=n.filter(d=>d.signal==="discovery"),l=n.filter(d=>d.signal!=="discovery");if(u.length>0){let d={stage:r,intent:i,action:"discovery_required",signal:"discovery",dispatches:u.map(h=>({agent:h.agent??"",units:h.units??[]}))},f={...e,action:d,composedMode:!0},p=K_e(f)??"";o.push(`### ${pRt("discovery")} +`)}var fx,t7n,n7n,r7n,i7n,s7n,o7n,a7n,c7n,u7n,l7n,d7n,f7n,p7n,h7n,m7n,BRt,GRt=v(()=>{"use strict";gt();yr();Ef();ze();Kn();ns();SZ();ts();ht();Lh();At();fx=new Te({autoEscape:!1,useWith:!0}),t7n=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),n7n=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),r7n=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),i7n=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),s7n=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),o7n=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),a7n=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),c7n=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),u7n=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),l7n=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),d7n=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),f7n=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),p7n=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),h7n=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),m7n=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");BRt=e=>{let t=e.action.prompt_file;return t?fx.renderString(p7n,{promptFile:t}):g7n(e)}});import{join as y7n}from"node:path";var zRt,S7n,E7n,VRt,WRt=v(()=>{"use strict";gt();ze();Kn();ts();ht();At();zRt=new Te({autoEscape:!1,useWith:!0}),S7n=ie("@canon:stage/elaborate/decompose_review"),E7n=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),VRt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Wh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),a=kr({resolveBody:()=>Mh(i,n),toolName:"haiku_read_stage",toolArgs:{studio:i,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),c=y7n(e.dir,"stages",n,"elaboration.md"),u=Mf("verify_decompose",{slug:r,stage:n}),l=zRt.renderString(E7n,{stage:n,intentSlug:r,intentRef:o,stageRef:a,elabPath:c,verifierNonce:s}),d=Ti({unit:`verify-${n}-decompose`,hat:"decompose-verifier",bolt:1,intent:r,stage:n,agentType:"general-purpose",promptBody:l,heading:`### Subagent: decompose verifier (stage \`${n}\`)`,omitBolt:!0});return zRt.renderString(S7n,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var KRt,_7n,b7n,y_e,YRt=v(()=>{"use strict";gt();Kn();ts();ht();At();KRt=new Te({autoEscape:!1,useWith:!0}),_7n=ie("@canon:stage/elaborate/discovery_required"),b7n=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),y_e=e=>{let{slug:t,studio:n,action:r}=e,i=r.stage||"",s=Array.isArray(r.dispatches)?r.dispatches:[{agent:r.agent||"",units:r.units||[]}],o=no(n,i).filter(u=>u.kind==="discovery"),a=s.map(u=>{let l=u.agent,f=(u.units??[])[0]||"",p=o.find(y=>y.name===l),h=p?p.location.replace(/\{intent-slug\}/g,t):"",m=f?` on \`${f}\``:"",g="";if(p&&!p.tool){let y=kr({resolveBody:()=>EI(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),E=KRt.renderString(b7n,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:y}),S=Fu({mandatePath:Lfe(n,i,l)??void 0,studio:n,stage:i});g=Ti({unit:"discovery",hat:l,bolt:1,intent:t,stage:i,agentType:"general-purpose",model:S,promptBody:E,heading:`### Subagent: \`${l}\``,omitBolt:!0})}return{agent:l,unit:f,unitLabel:m,def:p,resolvedLocation:h,dispatchBlock:g}}),c=Mf("discovery",{slug:t,stage:i});return KRt.renderString(_7n,{slug:t,stage:i,dispatches:a,dispatchCount:a.length,agent:a[0]?.agent??"",unit:a[0]?.unit??"",unitLabel:a[0]?.unitLabel??"",def:a[0]?.def,resolvedLocation:a[0]?.resolvedLocation??"",dispatchBlock:a[0]?.dispatchBlock??"",concurrentLoopBlock:c,composedMode:e.composedMode===!0})}});var T7n,v7n,ZRt,JRt=v(()=>{"use strict";gt();ze();Kn();ts();ht();At();T7n=new Te({autoEscape:!1,useWith:!0}),v7n=ie("@canon:stage/elaborate/elaborate"),ZRt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Wh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),s=kr({resolveBody:()=>Mh(e.studio,n),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),o=Mf("conversation",{slug:r,stage:n});return T7n.renderString(v7n,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as A7n}from"node:path";var XRt,R7n,w7n,QRt,$Rt=v(()=>{"use strict";gt();ze();Kn();ts();ht();At();XRt=new Te({autoEscape:!1,useWith:!0}),R7n=ie("@canon:stage/elaborate/elaborate_review"),w7n=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),QRt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=!n,s=t.verifier_nonce??"",o=i?"":n,a=kr({resolveBody:()=>Wh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:o||void 0,kind:"intent-goal",name:"intent"}),c=i?"":kr({resolveBody:()=>Mh(e.studio,o),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:o},intent:r,stage:o,kind:"stage-scope",name:o}),u=i?"":A7n(e.dir,"stages",o,"elaboration.md"),l=i?"":Mf("verify_conversation",{slug:r,stage:o}),d=XRt.renderString(w7n,{isPreIntent:i,intentSlug:r,stage:o,intentRef:a,stageRef:c,elabPath:u,verifierNonce:s}),f=Ti({unit:i?"verify-intent":`verify-${o}-elaboration`,hat:"elaborate-verifier",bolt:1,intent:r,stage:i?void 0:o,agentType:"general-purpose",promptBody:d,heading:i?"### Subagent: pre-intent elaborate verifier":`### Subagent: elaborate verifier (stage \`${o}\`)`,omitBolt:!0});return XRt.renderString(R7n,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function k7n(e,t){let n={stage:e.stage,intent:e.intent},r=e.verifier_nonces??{};switch(t.signal){case"conversation":return{...n,action:"elaborate",signal:"conversation"};case"verify_conversation":return{...n,action:"elaborate_review",signal:"verify_conversation",verifier_nonce:r.verify_conversation??""};case"discovery":return{...n,action:"discovery_required",signal:"discovery",agent:t.agent??"",units:t.units??[]};case"decompose":return{...n,action:"decompose",signal:"decompose"};case"verify_decompose":return{...n,action:"decompose_review",signal:"verify_decompose",verifier_nonce:r.verify_decompose??""}}}function I7n(e){switch(e){case"conversation":return ZRt;case"verify_conversation":return QRt;case"discovery":return y_e;case"decompose":return BRt;case"verify_decompose":return VRt}}function ewt(e){switch(e){case"conversation":return"Signal: `conversation` \u2014 capture the stage's human-conversation outcome";case"verify_conversation":return"Signal: `verify_conversation` \u2014 dispatch the elaboration substance verifier";case"discovery":return"Signal: `discovery` \u2014 produce a missing discovery artifact";case"decompose":return"Signal: `decompose` \u2014 draft unit specs for this stage";case"verify_decompose":return"Signal: `verify_decompose` \u2014 dispatch the decompose coverage verifier"}}var twt,nwt=v(()=>{"use strict";ts();At();GRt();WRt();YRt();JRt();$Rt();twt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=DI(e.dir)==="autopilot";if(n.length===0)return["## Elaborate Loop","","Every elaborate-loop completion signal is currently met \u2014 call `haiku_run_next` to advance."].join(` +`);let o=[],a=r?`## Elaborate Loop \u2014 \`${r}\``:"## Elaborate Loop \u2014 pre-intent";if(o.push(a),t.optional_offer&&r){let d=t.dependents??[],f=d.length===0?"Nothing downstream references this stage \u2014 dropping it severs no inputs or review agents.":`Dropping it severs these downstream references (they auto-ignore once dropped, so downstream proceeds without them): +${d.map(p=>{let h=[];return p.inputs.length>0&&h.push(`inputs ${p.inputs.map(m=>`\`${m}\``).join(", ")}`),p.reviewAgents.length>0&&h.push(`review agents ${p.reviewAgents.map(m=>`\`${m}\``).join(", ")}`),`> - \`${p.stage}\` \u2014 ${h.join("; ")}`}).join(` +`)}`;o.push([`> **\`${r}\` is an OPTIONAL stage.** It applies to some intents and not others. Decide whether THIS intent needs it before doing any elaboration work below:`,">",`> - **If it doesn't apply** to this intent's goals, drop it: \`haiku_drop_stage { intent: "${i}", stage: "${r}" }\`. The plan advances to the next stage and this stage's elaborate/execute work is skipped entirely.`,"> - **If it applies**, just proceed with the elaboration below \u2014 keeping the stage needs no separate action.",">",`> ${f}`].join(` +`))}let c=n.map(d=>d.signal==="discovery"&&d.agent?`\`${d.signal}\` (template: \`${d.agent}\`)`:`\`${d.signal}\``).join(", ");o.push(`The cursor's elaborate-loop has **${n.length}** completion signal${n.length===1?"":"s"} unmet for ${r?`stage \`${r}\``:`intent \`${i}\``}: ${c}. You may make progress on any subset of them in this tick \u2014 they are concurrent, not ordered. Each signal carries its own sub-instructions below.`),o.push("Read each block, decide which signals you can move forward this tick (often more than one), execute, then call `haiku_run_next` to re-evaluate the loop. The cursor stays in `elaborate_loop` until every signal flips on disk."),s&&o.push(["> **\u26A0 AUTOPILOT \u2014 THIS PHASE DOES NOT STOP TO ASK.**",">",'> Make progress on every signal you can this tick, then end your turn by calling `haiku_run_next`. Do **NOT** yield the turn to ask the user anything \u2014 not for a missing upstream artifact, not for an ambiguous scope or a fork between approaches, not for "should I continue?". Resolve it autonomously: pick the path the intent\'s goals imply, or file a `haiku_feedback` (`resolution: "stage_revisit"` for a missing upstream, `resolution: "question"` for a genuine fork) and immediately call `haiku_run_next` \u2014 the engine routes it on the next tick without a turn handoff. The ONLY human touchpoint in autopilot was the pre-intent conversation; there is no one to answer a question now.',">","> **DO THE WORK before you re-tick.** This phase is your work, not a transition to tick past: dispatch the discovery subagents and DRAFT the unit specs (`haiku_unit_write`) THIS turn. A signal clears only when you change disk state \u2014 calling `haiku_run_next` WITHOUT first drafting/dispatching returns the SAME elaborate-loop, and after a few empty ticks the engine HALTS the workflow as a no-progress loop. The escape is always to do the work, never to re-tick harder."].join(` +`));let u=n.filter(d=>d.signal==="discovery"),l=n.filter(d=>d.signal!=="discovery");if(u.length>0){let d={stage:r,intent:i,action:"discovery_required",signal:"discovery",dispatches:u.map(h=>({agent:h.agent??"",units:h.units??[]}))},f={...e,action:d,composedMode:!0},p=y_e(f)??"";o.push(`### ${ewt("discovery")} -${p.trim()}`)}for(let d of l){let f=oJn(t,d),p={...e,action:f,composedMode:!0},h=aJn(d.signal)(p)??"";o.push(`### ${pRt(d.signal)} +${p.trim()}`)}for(let d of l){let f=k7n(t,d),p={...e,action:f,composedMode:!0},h=I7n(d.signal)(p)??"";o.push(`### ${ewt(d.signal)} ${h.trim()}`)}return o.push(["### Concurrent execution reminder","","The signals above are mutually independent unless explicitly noted in a signal block. You can dispatch the discovery subagent AND draft units AND record the elaboration conversation in the same response. The cursor's next tick re-evaluates the loop against the disk and returns whichever signals are still unmet (possibly an empty set, in which case the cursor walks past the loop).","",s?'A fork in the work (e.g. discovery turned up two viable approaches) is NOT a reason to stop in autopilot. Pick the option the intent\'s goals best support and record the call, or \u2014 if it genuinely needs a human later \u2014 file `origin: "discovery", resolution: "question"` feedback via `haiku_feedback` and immediately call `haiku_run_next`. Either way the turn ends on `haiku_run_next`; never hand the turn back to ask.':'When you need to surface a user decision (e.g. discovery turned up two viable forks), file `origin: "discovery", resolution: "question"` feedback via `haiku_feedback` instead of guessing. The next tick will route the FB through `feedback_question` so the user picks before the loop continues.'].join(` `)),o.join(` -`)}});var cJn,uJn,gRt,yRt=v(()=>{"use strict";_t();mt();Rt();cJn=new ve({autoEscape:!1,useWith:!0}),uJn=se("@canon:stage/error/blocked"),gRt=({action:e})=>{let t=e.blocked_units||[];return cJn.renderString(uJn,{blockedUnits:t})}});var lJn,dJn,SRt,_Rt=v(()=>{"use strict";_t();mt();Rt();lJn=new ve({autoEscape:!1,useWith:!0}),dJn=se("@canon:stage/error/coverage_review_required"),SRt=({action:e})=>lJn.renderString(dJn,{message:e.message??""})});var fJn,pJn,ERt,bRt=v(()=>{"use strict";_t();mt();Rt();fJn=new ve({autoEscape:!1,useWith:!0}),pJn=se("@canon:stage/error/dag_cycle_detected"),ERt=({action:e})=>fJn.renderString(pJn,{message:e.message??""})});var hJn,mJn,TRt,vRt=v(()=>{"use strict";_t();mt();Rt();hJn=new ve({autoEscape:!1,useWith:!0}),mJn=se("@canon:stage/error/discovery_missing"),TRt=({action:e})=>hJn.renderString(mJn,{message:e.message??""})});var gJn,yJn,ARt,RRt=v(()=>{"use strict";_t();mt();Rt();gJn=new ve({autoEscape:!1,useWith:!0}),yJn=se("@canon:stage/error/elaboration_insufficient"),ARt=({action:e})=>gJn.renderString(yJn,{message:e.message??""})});var SJn,_Jn,wRt,kRt=v(()=>{"use strict";_t();ze();mt();Rt();SJn=new ve({autoEscape:!1,useWith:!0}),_Jn=se("@canon:stage/error/escalate"),wRt=({slug:e,action:t})=>{let n=t.stage,r=t.reason||"unknown",i=t.iteration||0,s=t.max_iterations||Pf,o=t.message||"",a=t.pending_items||[],c=!n,u=c?`intent ${e} (studio-level fix loop)`:n,l=r==="loop_detected"?`## Escalation: Loop Detected in ${u}`:r==="fix_loop_cap_exceeded"?`## Escalation: Fix-Loop Bolt Cap Exceeded in ${u}`:`## Escalation: Iteration Limit Exceeded in ${u}`,d=c?"`haiku_feedback_reject { intent, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block (omit `stage` for intent-scope findings)":"`haiku_feedback_reject { intent, stage, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block",f=r==="fix_loop_cap_exceeded"?`the fix loop spent its full ${Og}-bolt budget on ${a.length||"the"} finding(s) without satisfying the closure check`:`iteration ${i} of ${s} (max) or repeated feedback signature detected`;return SJn.renderString(_Jn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var EJn,bJn,IRt,xRt=v(()=>{"use strict";_t();mt();Rt();EJn=new ve({autoEscape:!1,useWith:!0}),bJn=se("@canon:stage/error/gate_blocked"),IRt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return EJn.renderString(bJn,{slug:e,message:n})}});var TJn,vJn,ORt,NRt=v(()=>{"use strict";_t();mt();Rt();TJn=new ve({autoEscape:!1,useWith:!0}),vJn=se("@canon:stage/error/output_liveness_review_required"),ORt=({action:e})=>TJn.renderString(vJn,{message:e.message??""})});var AJn,RJn,PRt,CRt=v(()=>{"use strict";_t();mt();Rt();AJn=new ve({autoEscape:!1,useWith:!0}),RJn=se("@canon:stage/error/outputs_missing"),PRt=({action:e})=>AJn.renderString(RJn,{message:e.message??""})});var wJn,kJn,MRt,DRt=v(()=>{"use strict";_t();mt();Rt();wJn=new ve({autoEscape:!1,useWith:!0}),kJn=se("@canon:stage/error/save_wip"),MRt=({action:e})=>wJn.renderString(kJn,{message:e.message??""})});var IJn,xJn,LRt,URt=v(()=>{"use strict";_t();mt();Rt();IJn=new ve({autoEscape:!1,useWith:!0}),xJn=se("@canon:stage/error/unit_inputs_missing"),LRt=({action:e})=>IJn.renderString(xJn,{message:e.message??""})});var OJn,NJn,jRt,FRt=v(()=>{"use strict";_t();mt();Rt();OJn=new ve({autoEscape:!1,useWith:!0}),NJn=se("@canon:stage/error/unit_inputs_not_declared"),jRt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return OJn.renderString(NJn,{slug:t,stage:i,units:r,unitCount:r.length})}});var PJn,CJn,HRt,qRt=v(()=>{"use strict";_t();mt();Rt();PJn=new ve({autoEscape:!1,useWith:!0}),CJn=se("@canon:stage/error/unit_naming_invalid"),HRt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return PJn.renderString(CJn,{slug:e,message:n})}});var MJn,DJn,BRt,GRt=v(()=>{"use strict";_t();mt();Rt();MJn=new ve({autoEscape:!1,useWith:!0}),DJn=se("@canon:stage/error/unit_outputs_empty_iterations"),BRt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return MJn.renderString(DJn,{slug:t,stage:i,units:r,unitCount:r.length})}});var LJn,UJn,zRt,VRt=v(()=>{"use strict";_t();mt();Rt();LJn=new ve({autoEscape:!1,useWith:!0}),UJn=se("@canon:stage/error/unresolved_dependencies"),zRt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return LJn.renderString(UJn,{slug:e,message:n})}});import{existsSync as Z_e,readFileSync as WRt}from"node:fs";import{join as np,resolve as o6}from"node:path";var a6,jJn,FJn,HJn,qJn,BJn,GJn,zJn,VJn,KRt,ZRt=v(()=>{"use strict";_t();Oi();yf();a_();ze();Zn();_o();s6();Xi();mt();Oh();Rt();a6=new ve({autoEscape:!1,useWith:!0}),jJn=se("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),FJn=se("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),HJn=se("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),qJn=se("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),BJn=se("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),GJn=se("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),zJn=se("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),VJn=se("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),KRt=({slug:e,studio:t,action:n,dir:r})=>{let i=n.stage,s=n.unit||"",o=n.hat||n.first_hat||"",a=n.hats||[],c=n.bolt||1,u=Mf(np(t,"stages",i,"STAGE.md")),l=Mf(np(t,"stages",i,"hats",`${o}.md`)),d=Mf(np(t,"stages",i,"outputs")),f=np(r,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),p=[],h,m=[];if(Z_e(f)){let{data:G}=re(WRt(f,"utf8")),X=G.inputs;if(Array.isArray(X))p=X.filter(q=>typeof q=="string");else if(typeof X=="string"){let q=X.trim();if(q.startsWith("[")&&q.endsWith("]"))try{let C=JSON.parse(q);Array.isArray(C)&&(p=C.filter(z=>typeof z=="string"))}catch{}}h=G.model||void 0,Array.isArray(G.applicable_skills)&&(m=G.applicable_skills.filter(q=>typeof q=="string"))}let g=Iu(t,i)[o],E=g?.agent_type||"general-purpose",S;if(Bo.modelSelection){let G=Yi(t,i),X=Id(t),{model:q,source:C}=o_({unit:h,hat:g?.model,stage:G?.data?.default_model,studio:X?.data?.default_model});S=q,S&&console.error(`[haiku] resolved model: ${S} (source: ${C})`)}let _=[];{let G=o6(r);for(let X of p){let q=o6(r,X);!q.startsWith(`${G}/`)&&q!==G||Z_e(np(r,X))&&_.push(X)}}let b=[];{let G=Yi(t,i);if(G?.data?.inputs&&Array.isArray(G.data.inputs)){let X=G.data.inputs,C=wK(t,X,r,e).filter(U=>U.exists),z=new Set(p.map(U=>o6(r,U)));for(let U of C){if(z.has(o6(U.resolvedPath)))continue;let M=U.resolvedPath.startsWith(`${r}/`)?U.resolvedPath.slice(r.length+1):U.resolvedPath;b.push({label:`${U.stage}/${U.artifactName}`,path:M})}}}let T=ix(t,i),A=n.worktree||"",R=A?np(A,".haiku","intents",e):r,k=np(R,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),x=Ni(),N=dft(e,i,o,a,c),P=[];if(o==="feedback-assessor"){let G=Z_e(f)?re(WRt(f,"utf8")).data:{},X=G.closes||[],q=G.outputs||[],C=[],z=yo(e,i);for(let W of X){let $=z.find(ie=>ie.id===W);$&&C.push({id:$.id,file:$.file.startsWith(".haiku/intents/")?$.file.slice(`.haiku/intents/${e}/`.length):$.file})}let U=_l(k,`Unit spec: ${s}`),M=ype(q.map(W=>({heading:`Unit output: ${W}`,path:np(R,W)}))),H=ype(C.map(W=>({heading:`Feedback ${W.id}`,path:np(R,W.file)}))),F=a6.renderString(VJn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:A,intentRoot:R,unitInline:U,outputsInline:M,feedbackInline:H});if(x.subagents.supported){let W=N?`${N} +`)}});var x7n,O7n,rwt,iwt=v(()=>{"use strict";gt();ht();At();x7n=new Te({autoEscape:!1,useWith:!0}),O7n=ie("@canon:stage/error/blocked"),rwt=({action:e})=>{let t=e.blocked_units||[];return x7n.renderString(O7n,{blockedUnits:t})}});var P7n,N7n,swt,owt=v(()=>{"use strict";gt();ht();At();P7n=new Te({autoEscape:!1,useWith:!0}),N7n=ie("@canon:stage/error/coverage_review_required"),swt=({action:e})=>P7n.renderString(N7n,{message:e.message??""})});var C7n,M7n,awt,cwt=v(()=>{"use strict";gt();ht();At();C7n=new Te({autoEscape:!1,useWith:!0}),M7n=ie("@canon:stage/error/dag_cycle_detected"),awt=({action:e})=>C7n.renderString(M7n,{message:e.message??""})});var D7n,L7n,uwt,lwt=v(()=>{"use strict";gt();ht();At();D7n=new Te({autoEscape:!1,useWith:!0}),L7n=ie("@canon:stage/error/discovery_missing"),uwt=({action:e})=>D7n.renderString(L7n,{message:e.message??""})});var U7n,F7n,dwt,fwt=v(()=>{"use strict";gt();ht();At();U7n=new Te({autoEscape:!1,useWith:!0}),F7n=ie("@canon:stage/error/elaboration_insufficient"),dwt=({action:e})=>U7n.renderString(F7n,{message:e.message??""})});var j7n,H7n,pwt,hwt=v(()=>{"use strict";gt();ze();ht();At();j7n=new Te({autoEscape:!1,useWith:!0}),H7n=ie("@canon:stage/error/escalate"),pwt=({slug:e,action:t})=>{let n=t.stage,r=t.reason||"unknown",i=t.iteration||0,s=t.max_iterations||Cf,o=t.message||"",a=t.pending_items||[],c=!n,u=c?`intent ${e} (studio-level fix loop)`:n,l=r==="loop_detected"?`## Escalation: Loop Detected in ${u}`:r==="fix_loop_cap_exceeded"?`## Escalation: Fix-Loop Bolt Cap Exceeded in ${u}`:`## Escalation: Iteration Limit Exceeded in ${u}`,d=c?"`haiku_feedback_reject { intent, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block (omit `stage` for intent-scope findings)":"`haiku_feedback_reject { intent, stage, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block",f=r==="fix_loop_cap_exceeded"?`the fix loop spent its full ${Mg}-bolt budget on ${a.length||"the"} finding(s) without satisfying the closure check`:`iteration ${i} of ${s} (max) or repeated feedback signature detected`;return j7n.renderString(H7n,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var q7n,B7n,mwt,gwt=v(()=>{"use strict";gt();ht();At();q7n=new Te({autoEscape:!1,useWith:!0}),B7n=ie("@canon:stage/error/gate_blocked"),mwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return q7n.renderString(B7n,{slug:e,message:n})}});var G7n,z7n,ywt,Swt=v(()=>{"use strict";gt();ht();At();G7n=new Te({autoEscape:!1,useWith:!0}),z7n=ie("@canon:stage/error/output_liveness_review_required"),ywt=({action:e})=>G7n.renderString(z7n,{message:e.message??""})});var V7n,W7n,Ewt,_wt=v(()=>{"use strict";gt();ht();At();V7n=new Te({autoEscape:!1,useWith:!0}),W7n=ie("@canon:stage/error/outputs_missing"),Ewt=({action:e})=>V7n.renderString(W7n,{message:e.message??""})});var K7n,Y7n,bwt,Twt=v(()=>{"use strict";gt();ht();At();K7n=new Te({autoEscape:!1,useWith:!0}),Y7n=ie("@canon:stage/error/save_wip"),bwt=({action:e})=>K7n.renderString(Y7n,{message:e.message??""})});var Z7n,J7n,vwt,Awt=v(()=>{"use strict";gt();ht();At();Z7n=new Te({autoEscape:!1,useWith:!0}),J7n=ie("@canon:stage/error/unit_inputs_missing"),vwt=({action:e})=>Z7n.renderString(J7n,{message:e.message??""})});var X7n,Q7n,Rwt,wwt=v(()=>{"use strict";gt();ht();At();X7n=new Te({autoEscape:!1,useWith:!0}),Q7n=ie("@canon:stage/error/unit_inputs_not_declared"),Rwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return X7n.renderString(Q7n,{slug:t,stage:i,units:r,unitCount:r.length})}});var $7n,eXn,kwt,Iwt=v(()=>{"use strict";gt();ht();At();$7n=new Te({autoEscape:!1,useWith:!0}),eXn=ie("@canon:stage/error/unit_naming_invalid"),kwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return $7n.renderString(eXn,{slug:e,message:n})}});var tXn,nXn,xwt,Owt=v(()=>{"use strict";gt();ht();At();tXn=new Te({autoEscape:!1,useWith:!0}),nXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),xwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return tXn.renderString(nXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var rXn,iXn,Pwt,Nwt=v(()=>{"use strict";gt();ht();At();rXn=new Te({autoEscape:!1,useWith:!0}),iXn=ie("@canon:stage/error/unresolved_dependencies"),Pwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return rXn.renderString(iXn,{slug:e,message:n})}});import{existsSync as S_e,readFileSync as Cwt}from"node:fs";import{join as op,resolve as EZ}from"node:path";var _Z,sXn,oXn,aXn,cXn,uXn,lXn,dXn,fXn,Mwt,Dwt=v(()=>{"use strict";gt();Ci();Ef();dE();ze();Kn();ns();SZ();ts();ht();Lh();At();_Z=new Te({autoEscape:!1,useWith:!0}),sXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),oXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),aXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),cXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),uXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),lXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),dXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),fXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),Mwt=({slug:e,studio:t,action:n,dir:r})=>{let i=n.stage,s=n.unit||"",o=n.hat||n.first_hat||"",a=n.hats||[],c=n.bolt||1,u=Lf(op(t,"stages",i,"STAGE.md")),l=Lf(op(t,"stages",i,"hats",`${o}.md`)),d=Lf(op(t,"stages",i,"outputs")),f=op(r,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),p=[],h,m=[];if(S_e(f)){let{data:B}=re(Cwt(f,"utf8")),X=B.inputs;if(Array.isArray(X))p=X.filter(G=>typeof G=="string");else if(typeof X=="string"){let G=X.trim();if(G.startsWith("[")&&G.endsWith("]"))try{let M=JSON.parse(G);Array.isArray(M)&&(p=M.filter(q=>typeof q=="string"))}catch{}}h=B.model||void 0,Array.isArray(B.applicable_skills)&&(m=B.applicable_skills.filter(G=>typeof G=="string"))}let y=Mu(t,i)[o],E=y?.agent_type||"general-purpose",S;if(zo.modelSelection){let B=$i(t,i),X=Od(t),{model:G,source:M}=lE({unit:h,hat:y?.model,stage:B?.data?.default_model,studio:X?.data?.default_model});S=G,S&&console.error(`[haiku] resolved model: ${S} (source: ${M})`)}let _=[];{let B=EZ(r);for(let X of p){let G=EZ(r,X);!G.startsWith(`${B}/`)&&G!==B||S_e(op(r,X))&&_.push(X)}}let b=[];{let B=$i(t,i);if(B?.data?.inputs&&Array.isArray(B.data.inputs)){let X=B.data.inputs,M=HK(t,X,r,e).filter(U=>U.exists),q=new Set(p.map(U=>EZ(r,U)));for(let U of M){if(q.has(EZ(U.resolvedPath)))continue;let D=U.resolvedPath.startsWith(`${r}/`)?U.resolvedPath.slice(r.length+1):U.resolvedPath;b.push({label:`${U.stage}/${U.artifactName}`,path:D})}}}let T=dx(t,i),A=n.worktree||"",R=A?op(A,".haiku","intents",e):r,x=op(R,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),k=Mi(),P=qft(e,i,o,a,c),N=[];if(o==="feedback-assessor"){let B=S_e(f)?re(Cwt(f,"utf8")).data:{},X=B.closes||[],G=B.outputs||[],M=[],q=Us(e,i);for(let W of X){let ee=q.find(se=>se.id===W);ee&&M.push({id:ee.id,file:ee.file.startsWith(".haiku/intents/")?ee.file.slice(`.haiku/intents/${e}/`.length):ee.file})}let U=vl(x,`Unit spec: ${s}`),D=Cpe(G.map(W=>({heading:`Unit output: ${W}`,path:op(R,W)}))),H=Cpe(M.map(W=>({heading:`Feedback ${W.id}`,path:op(R,W.file)}))),j=_Z.renderString(fXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:A,intentRoot:R,unitInline:U,outputsInline:D,feedbackInline:H});if(k.subagents.supported){let W=P?`${P} -${F}`:F;P.push(Ei({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:E,model:S,promptBody:W,toolAttr:!0})),P.push(a6.renderString(GJn,{backgroundSpawn:x.subagents.backgroundSpawn}))}else N&&P.push(N),P.push(`### Feedback Assessor (Direct Execution) +${j}`:j;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:E,model:S,promptBody:W,toolAttr:!0})),N.push(_Z.renderString(lXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Feedback Assessor (Direct Execution) -${F}`);return P.join(` +${j}`);return N.join(` -`)}let D=o===(a[0]||""),j=new Map(F0().map(G=>[G.slug,G])),V=m.length>0?m.map(G=>{let X=j.get(G),q=X?.description?` \u2014 ${X.description}`:"";return`- \`/${G}\`${q}`}):[],Z=l?RI(AI(l)):"",B=a6.renderString(zJn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:A,intentRoot:R,worktreeAndTimeoutsBlock:jJn,requiredContextPreamble:FJn,stageInline:u?_l(u,"Stage scope"):"",hatInline:l?_l(l,`Hat: ${o}`):"",hatInterpBlock:Z,unitInline:_l(k,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:XK(f),unitInputPaths:_.map(G=>np(R,G)),upstreamPaths:b.map(G=>({label:G.label,path:np(R,G.path)})),outputReqs:T||"",skillLines:V,skillsPreamble:HJn,isStartUnit:n.action==="start_unit",isFirstHat:D,autonomyNote:qJn,subagentErrorRecovery:ys("subagent-error-recovery")});if(x.subagents.supported){let G=N?`${N} +`)}let C=o===(a[0]||""),F=new Map(V0().map(B=>[B.slug,B])),V=m.length>0?m.map(B=>{let X=F.get(B),G=X?.description?` \u2014 ${X.description}`:"";return`- \`/${B}\`${G}`}):[],K=l?OI(xI(l)):"",$=_Z.renderString(dXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:A,intentRoot:R,worktreeAndTimeoutsBlock:sXn,requiredContextPreamble:oXn,stageInline:u?vl(u,"Stage scope"):"",hatInline:l?vl(l,`Hat: ${o}`):"",hatInterpBlock:K,unitInline:vl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:p9(f),unitInputPaths:_.map(B=>op(R,B)),upstreamPaths:b.map(B=>({label:B.label,path:op(R,B.path)})),outputReqs:T||"",skillLines:V,skillsPreamble:aXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:cXn,subagentErrorRecovery:Es("subagent-error-recovery")});if(k.subagents.supported){let B=P?`${P} -${B}`:B;P.push(Ei({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:E,model:S,promptBody:G,toolAttr:!0})),P.push(a6.renderString(BJn,{backgroundSpawn:x.subagents.backgroundSpawn}))}else N&&P.push(N),P.push(`### Mechanics (Direct Execution) +${$}`:$;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:E,model:S,promptBody:B,toolAttr:!0})),N.push(_Z.renderString(uXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Mechanics (Direct Execution) **Execute the "${o}" hat work directly** \u2014 your harness does not support subagents. -${B}`);return P.join(` +${$}`);return N.join(` -`)}});var WJn,KJn,YRt,JRt=v(()=>{"use strict";_t();Ope();Xi();mt();Oh();Rt();WJn=new ve({autoEscape:!1,useWith:!0}),KJn=se("@canon:stage/execute/start_unit_hat"),YRt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>DI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return WJn.renderString(KJn,{slug:e,stage:r,hat:i,terminal:o,unitCount:s.length,dispatchBlocks:a,showAnnouncement:s.length>1,announcementBlock:ys("workflow-contracts-announcement"),executeContractsBlock:ys("workflow-contracts-execute"),serviceDependenciesBlock:o?ys("service-dependencies"):"",batchDirective:s.length>0?NI(s.length,"subagents"):""})}});var ZJn,YJn,XRt,QRt=v(()=>{"use strict";_t();mt();Rt();ZJn=new ve({autoEscape:!1,useWith:!0}),YJn=se("@canon:stage/gate/user_gate"),XRt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return ZJn.renderString(YJn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function $Jn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=QJn[i],a="",c;if(o){let d=Y_e.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${p_({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:d})}\``}else{a=kr({resolveBody:()=>kh(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let d=bD(n,r,i);d&&(c=Nu({mandatePath:d,studio:n,stage:r}))}let u=Y_e.renderString(XJn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:kI(t,r),decisions:II(t)});return{dispatchBlock:Ei({unit:`review-${i}`,hat:"review",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:u,heading:`### Subagent: \`${i}\` (pre-execute review)`,omitBolt:!0}),isEngineRole:o!==void 0}}var Y_e,JJn,XJn,QJn,$Rt,ewt=v(()=>{"use strict";_t();Zn();Sl();Xi();mt();Rt();Y_e=new ve({autoEscape:!1,useWith:!0}),JJn=se("@canon:stage/review/dispatch_review"),XJn=se("@canon:stage/review/dispatch_review","subagent.eta.md"),QJn={spec:se("@canon:stage/review/dispatch_review","engine-bodies/spec.eta.md"),continuity:se("@canon:stage/review/dispatch_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":se("@canon:stage/review/dispatch_review","engine-bodies/cross_stage_consistency.eta.md")};$Rt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>$Jn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`)}});var pXn,hXn,Lwt,Uwt=v(()=>{"use strict";gt();Ype();ts();ht();Lh();At();pXn=new Te({autoEscape:!1,useWith:!0}),hXn=ie("@canon:stage/execute/start_unit_hat"),Lwt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>jI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return pXn.renderString(hXn,{slug:e,stage:r,hat:i,terminal:o,unitCount:s.length,dispatchBlocks:a,showAnnouncement:s.length>1,announcementBlock:Es("workflow-contracts-announcement"),executeContractsBlock:Es("workflow-contracts-execute"),serviceDependenciesBlock:o?Es("service-dependencies"):"",batchDirective:s.length>0?LI(s.length,"subagents"):""})}});var mXn,gXn,Fwt,jwt=v(()=>{"use strict";gt();ht();At();mXn=new Te({autoEscape:!1,useWith:!0}),gXn=ie("@canon:stage/gate/user_gate"),Fwt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return mXn.renderString(gXn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function _Xn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=EXn[i],a="",c;if(o){let d=E_e.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${EE({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:d})}\``}else{a=kr({resolveBody:()=>Ch(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let d=xD(n,r,i);d&&(c=Fu({mandatePath:d,studio:n,stage:r}))}let u=E_e.renderString(SXn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:NI(t,r),decisions:CI(t)});return{dispatchBlock:Ti({unit:`review-${i}`,hat:"review",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:u,heading:`### Subagent: \`${i}\` (pre-execute review)`,omitBolt:!0}),isEngineRole:o!==void 0}}var E_e,yXn,SXn,EXn,Hwt,qwt=v(()=>{"use strict";gt();Kn();Tl();ts();ht();At();E_e=new Te({autoEscape:!1,useWith:!0}),yXn=ie("@canon:stage/review/dispatch_review"),SXn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),EXn={spec:ie("@canon:stage/review/dispatch_review","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/review/dispatch_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/review/dispatch_review","engine-bodies/cross_stage_consistency.eta.md")};Hwt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>_Xn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` -`),a=[...new Set(i.flatMap(c=>c.units))];return Y_e.renderString(JJn,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var twt,e7n,t7n,nwt,rwt=v(()=>{"use strict";_t();Xi();mt();Rt();twt=new ve({autoEscape:!1,useWith:!0}),e7n=se("@canon:stage/review/write_brief"),t7n=se("@canon:stage/review/write_brief","subagent.eta.md"),nwt=({slug:e,action:t})=>{let n=t.stage||"",r=twt.renderString(t7n,{slug:e,stage:n}),i=Ei({unit:"brief",hat:"brief",bolt:1,intent:e,stage:n||void 0,agentType:"general-purpose",promptBody:r,heading:`### Subagent: stage brief (\`${n}\`)`,omitBolt:!0});return twt.renderString(e7n,{slug:e,stage:n,dispatchBlock:i})}});var n7n,r7n,iwt,swt=v(()=>{"use strict";_t();Zn();mt();Rt();n7n=new ve({autoEscape:!1,useWith:!0}),r7n=se("@canon:stage/start_stage"),iwt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=Yi(t,r),o=Id(t);return n7n.renderString(r7n,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var owt,awt=v(()=>{"use strict";Fvt();qvt();Gvt();Vvt();Zvt();Xvt();nAt();iAt();oAt();cAt();lAt();fAt();hAt();gAt();_At();bAt();vAt();RAt();kAt();xAt();PAt();MAt();LAt();jAt();HAt();BAt();mRt();yRt();_Rt();bRt();vRt();RRt();kRt();xRt();NRt();CRt();DRt();URt();FRt();qRt();GRt();VRt();ZRt();JRt();QRt();ewt();rwt();swt();owt=new Map([["start_stage",iwt],["elaborate_loop",hRt],["start_unit",KRt],["start_unit_hat",YRt],["dispatch_review",$Rt],["write_brief",nwt],["dispatch_approval",NAt],["dispatch_quality_gates",CAt],["user_gate",XRt],["advance_phase",DAt],["advance_stage",UAt],["complete_stage",FAt],["record_observations",qAt],["record_reflection",uAt],["blocked",gRt],["coverage_review_required",SRt],["dag_cycle_detected",ERt],["discovery_missing",TRt],["elaboration_insufficient",ARt],["escalate",wRt],["gate_blocked",IRt],["output_liveness_review_required",ORt],["outputs_missing",PRt],["save_wip",MRt],["unit_inputs_missing",LRt],["unit_inputs_not_declared",jRt],["unit_naming_invalid",HRt],["unit_outputs_empty_iterations",BRt],["unresolved_dependencies",zRt],["migrated",wAt],["select_studio",IAt],["intent_review",SAt],["intent_approved",EAt],["intent_complete",TAt],["seal_intent",AAt],["external_review_requested",dAt],["revise_unit_specs",pAt],["safe_intent_repair",mAt],["changes_requested",jvt],["close_feedback",Hvt],["feedback_question",Bvt],["fix_quality_gates",zvt],["intent_completion_fix",Kvt],["review_fix",Jvt],["start_feedback_hat",tAt],["complete",rAt],["error",sAt],["loop_halted",aAt]])});var c6,cwt=v(()=>{"use strict";es();vo();c6=[{name:"haiku_run_next",description:"Advance an intent through its lifecycle. The workflow engine reads state, determines the next action, performs the state mutation (start stage, advance phase, complete stage, etc.), and returns the action to the agent. The agent follows the returned action \u2014 it never mutates stage or intent state directly. When `intent` is omitted, the workflow engine auto-resolves it from the current git branch (`haiku//main` or `haiku//`) \u2014 lets pickup/revisit skills be thin one-line redirects without asking the user to pick an intent the checkout already names. If omitted and no branch match exists, falls back to the single active intent; errors when zero or multiple active intents are present.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug. Omit to auto-resolve from the current git branch or the sole active intent."},external_review_url:{type:"string",description:"URL where stage was submitted for external review"},state_file:{type:"string",description:"Override path to the engine state file (testing / foreign callers). Omit in normal use."},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}}},{name:"haiku_await_gate",description:"Block on a pending gate-review session for an intent until the user approves, requests changes, or the wait times out (30 min). Pair with `haiku_run_next`: when run_next returns a `gate_review` action, post the included `review_url` to the user (essential for headless / SSH / web-client / mobile / remote-control setups where the MCP host can't auto-open the user's browser), then call this tool to wait for their decision. Opens the review URL in the default browser best-effort by default; pass `auto_open: false` to skip the browser launch. Returns the resulting orchestrator action (advance_stage / changes_requested / external_review_requested / etc.).",inputSchema:i0},{name:"haiku_intent_create",description:'Create a new H\xB7AI\xB7K\xB7U intent. Studio, mode, and (for quick) stage are selected separately via the engine-controlled elicitation chain (haiku_select_studio \u2192 haiku_select_mode \u2192 optional haiku_select_stage). You must provide a crisp `title` (3\u20138 words, \u226480 chars, single line, no trailing punctuation \u2014 e.g. "Add archivable intents"), a richer `description` (2\u20135 sentences covering scope, motivation, and constraints), AND `studio_candidates` \u2014 the 2\u20134 studios (from `haiku_studio_list`) that best fit, which pre-narrow the studio picker so the user is not scrolling the whole registry. The title is NOT derived from the description \u2014 write it deliberately as a human-readable summary. The agent never sets `mode` or `stages` \u2014 those flow through elicitation tools so the user picks them.',inputSchema:EL},{name:"haiku_select_studio",description:"Select or change the studio for an intent. Uses elicitation to present studio options. Cannot be used after the intent has entered any stage.",inputSchema:u0},{name:"haiku_select_mode",description:"Select an execution mode for an intent. Uses elicitation to present mode options. Engine-managed \u2014 agents never write `mode` directly; this tool is the only way to set or change it. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:l0},{name:"haiku_select_stage",description:"Select the single stage for a quick-mode intent. Uses elicitation to present the studio's stage list. Refuses if the intent's mode is not `quick` or if a stage is already set.",inputSchema:d0},{name:"haiku_intent_reset",description:"Reset an intent \u2014 preserves the description, deletes all state, and recreates the intent from scratch. Asks for confirmation via elicitation before proceeding.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to reset"}},required:["intent"]}},{name:"haiku_stage_reset",description:"Reset ONE stage of an intent: wipe its units, outputs, artifacts, elaboration, feedback, and stage branch. The intent's other stages are untouched. Use after fixing the stage's hat instructions or studio config when the user wants the agent to re-run that stage cleanly. Requires user confirmation via the SPA picker.",inputSchema:a0},{name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:g0},{name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]}},{name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]}},{name:"haiku_coverage_acknowledge",description:"Record a per-file decision for an upstream output that the current stage's units do not reference. Used to resolve a `coverage_review_required` action emitted by the pre-tick cumulative-input-coverage validator. Decisions persist to `stages//coverage-decisions.json`. The decision MUST be either `out-of-scope` (with rationale explaining why this file is not relevant to the current stage's deliverables) or `covered-by-unit` (with the `unit` slug whose `inputs:` field already includes \u2014 or will include \u2014 the path; redundant for paths added via `haiku_unit_set` but useful when the agent wants to record reasoning). This tool does NOT advance the workflow; call `haiku_run_next` after acknowledging to re-run the validator.",inputSchema:{type:"object",properties:{intent_slug:{type:"string"},stage:{type:"string"},path:{type:"string"},decision:{type:"string",enum:["out-of-scope","covered-by-unit"]},rationale:{type:"string"},unit:{type:"string"}},required:["intent_slug","stage","path","decision","rationale"]}},{name:"haiku_debug",description:"ADMIN: bypass-the-FSM tools to unstick corrupt intents. Force a stage complete (signs all reviews/approvals/QGs for units that have moved through every hat), set an intent field (mode, etc.), reset drift (re-stamp witnesses), mutate any feedback frontmatter, or preview the next cursor head after edits. Every mutation requires SPA-picker confirmation \u2014 the agent cannot act unilaterally. Use only when the normal workflow can't recover (corrupt FM, stuck loop, lost stamps).",inputSchema:s0},{name:"haiku_dispatch_quality_gates",description:"Run a unit's declared quality_gates as the post-execute approval-track actor. On all-pass, stamps approvals.quality_gates on each unit. On failure, files an FB targeting the unit (origin: agent, target_invalidates: [quality_gates]). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug"},stage:{type:"string",description:"Stage name"},units:{type:"array",items:{type:"string"},description:"Unit names to run gates for (stage scope)"},scope:{type:"string",enum:["intent","stage"],description:"Which scope to run. Defaults to 'intent' when stage is empty, else 'stage'."}},required:["intent"]}},{name:"haiku_human_write",description:"Write a file to the intent's tracked surface as a human-attributed write. Use when a user explicitly instructs the agent to write a file on their behalf (e.g. 'save this config to knowledge/'). The file is written atomically, attributed to the human via an action-log entry, and appended to the write-audit log. The baseline is NOT updated \u2014 the next drift-gate tick detects the change and dispatches manual_change_assessment. Allowed destinations: knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/ (or outputs/ alias). Workflow-managed files (units, feedback, intent.md, state.json) are refused.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The slug of the active intent."},path:{type:"string",description:"Destination file path \u2014 intent-relative (e.g. knowledge/brand-guide.md) or absolute within the intent directory. Path is canonicalised (outputs/ \u2192 artifacts/) before validation."},content:{type:"string",description:"File content. UTF-8 string by default. Pass base64-encoded bytes and set content_encoding: 'base64' for binary files."},content_encoding:{type:"string",enum:["utf-8","base64"],description:"Encoding of the content field. Default: 'utf-8'."},claimed_author_id:{type:"string",description:"Self-reported identifier (username, email, UUID) of who the agent BELIEVES gave the instruction. Captured in the audit log as a CLAIM, not an authoritative identity \u2014 the server does not cross-check against any session or OS identity. Reviewers reading audit logs MUST treat this as 'what the agent said' rather than 'who did it'."},human_author_id:{type:"string",description:"DEPRECATED legacy alias for `claimed_author_id`. Accepted for backwards compatibility; mirrored to `claimed_author_id` on persistence. New callers MUST use `claimed_author_id`."},rationale:{type:"string",description:"Short free-text explanation of why the human requested this write. Strongly recommended. Required when the plugin setting human_write_require_rationale is true."},user_instruction_excerpt:{type:"string",description:"The user's instruction as it appeared in chat (first 200 chars). Captured in the audit log for security review. Self-reported by the agent."},overwrite:{type:"boolean",description:"Whether to overwrite the file if it already exists. Default: true. When false, returns path_already_exists if the destination exists."},create_dirs:{type:"boolean",description:"Whether to create intermediate directories if they do not exist. Default: true. When false, returns parent_dir_missing if the parent directory is absent."}},required:["intent_slug","path","content"]}},{name:"haiku_intent_seal",description:"Stamp `verified_at` on intent.md frontmatter after the pre-intent substance verifier passes. The verifier subagent (dispatched via the cursor's pre-intent `elaborate_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to walk into the first stage's elaborate gate. Idempotent (no-op when already verified). Lands on intent main, not a stage branch \u2014 the seal precedes any stage walk.",inputSchema:m0},{name:"haiku_stage_elaboration_record",description:"Capture the per-stage human-conversation outcome at `stages//elaboration.md`. Call this when the conversation with the user has reached alignment for the active stage's `elaborate` action. The artifact's frontmatter records `recorded_at`; `verified_at` is stamped separately by the verifier subagent via `haiku_stage_elaboration_seal`. Overwrites any prior artifact (clearing a stale `verified_at`). Cursor stays at `elaborate_review` until the verifier seals the artifact.",inputSchema:f0},{name:"haiku_stage_elaboration_seal",description:"Stamp `verified_at` on the per-stage elaboration artifact's frontmatter. The verifier subagent (dispatched via the cursor's `elaborate_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `elaborate_review`. Idempotent (no-op when already verified).",inputSchema:p0},{name:"haiku_stage_decompose_seal",description:"Stamp `decompose_verified_at` on the per-stage elaboration artifact's frontmatter (the 4th elaborate-loop completion signal per GOALS.md). The decompose-verifier subagent (dispatched via the cursor's `decompose_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `decompose_review` into the execute phase. Idempotent (no-op when already verified).",inputSchema:h0},{name:"haiku_discovery_complete",description:"Discovery subagent's completion hand-off. Merges the discovery worktree's branch back into its stage branch under a per-stage lock. Call AFTER committing your artifact inside the isolation worktree. Returns `{ ok: true }` on clean merge, `discovery_merge_conflict` with `conflict_files` on a real conflict, `discovery_merge_failed` with the git error on other failures, `intent_not_found` when the intent dir is missing, `worktree_not_found` when the discovery worktree doesn't exist (already merged or never created).",inputSchema:o0},{name:"haiku_review_stamp",description:"Review/approval/intent-review subagent CLOSURE. Records your own `reviews.` / `approvals.` witness and returns a terminal ack \u2014 call this INSTEAD of `haiku_run_next` when you finish reviewing. `kind: review|approval` requires `stage`; `kind: intent_review` omits it. Returns `{ ok: true, stamped: [...], skipped: [...] }` (skipped = units you flagged with an open finding; they stay un-stamped so the cursor reroutes through them on close), or `{ ok: true, found: false }` when nothing was pending for your role (already stamped \u2014 clean no-op). Never walks the cursor and never returns a fix dispatch, so it can't trip the inter-tick loop guard.",inputSchema:c0},{name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/.... Workflow-managed paths (units/, feedback/, state.json, intent.md) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. stages/design/artifacts/spec.md) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]}}]});import{existsSync as i7n,readFileSync as s7n,writeFileSync as o7n}from"node:fs";import{join as a7n}from"node:path";function u7n(e){let t=Ru(),n=a7n(e.intentDir,"intent.md");if(!i7n(n))return t;let r=s7n(n,"utf8"),i=(0,J_e.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===X_e||(s.plugin_version=X_e,o7n(n,J_e.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var J_e,c7n,X_e,uwt=v(()=>{"use strict";J_e=_e(sn(),1);lg();c7n="4.0.0",X_e="5.0.0";kd(c7n,X_e,u7n)});import{existsSync as l7n,readFileSync as d7n,writeFileSync as f7n}from"node:fs";import{join as p7n}from"node:path";function m7n(e){let t=Ru(),n=p7n(e.intentDir,"intent.md");if(!l7n(n))return t;let r=d7n(n,"utf8"),i=(0,Q_e.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===$_e||(s.plugin_version=$_e,f7n(n,Q_e.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var Q_e,h7n,$_e,lwt=v(()=>{"use strict";Q_e=_e(sn(),1);lg();h7n="5.0.0",$_e="6.0.0";kd(h7n,$_e,m7n)});import{existsSync as g7n,readFileSync as y7n,writeFileSync as S7n}from"node:fs";import{join as _7n}from"node:path";function b7n(e){let t=Ru(),n=_7n(e.intentDir,"intent.md");if(!g7n(n))return t;let r=y7n(n,"utf8"),i=(0,eEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===tEe||(s.plugin_version=tEe,S7n(n,eEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var eEe,E7n,tEe,dwt=v(()=>{"use strict";eEe=_e(sn(),1);lg();E7n="6.0.0",tEe="7.0.0";kd(E7n,tEe,b7n)});import{existsSync as ox,readdirSync as u6,readFileSync as rEe,writeFileSync as iEe}from"node:fs";import{join as q_}from"node:path";function v7n(e){let t=rEe(e,"utf8"),n=(0,Iv.default)(t),r=n.data,i=typeof r.status=="string"?r.status.trim().toLowerCase():"";if(!i)return{migrated:!1,closure_synthesized:!1};let o=(typeof r.created_at=="string"?r.created_at:"")||new Date(0).toISOString(),a=!1;switch(i){case"addressed":r.closed_at||(r.closed_at=o,a=!0),r.closed_by||(r.closed_by="feedback-assessor");break;case"answered":r.closed_at||(r.closed_at=o,a=!0),r.resolution||(r.resolution="answered");break;case"closed":r.closed_at||(r.closed_at=o,a=!0),r.closed_by||(r.closed_by="manual_close");break;case"rejected":r.rejected_at||(r.rejected_at=o,a=!0);break;default:break}return delete r.status,iEe(e,Iv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function A7n(e){let t=rEe(e,"utf8"),n=(0,Iv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,iEe(e,Iv.default.stringify(n.content,r)),!0)}function R7n(e,t){let n=[],r=q_(e,"feedback");ox(r)&&n.push(r);let i=q_(e,"stages");if(ox(i))for(let s of u6(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=q_(i,s.name,"feedback");ox(o)&&n.push(o)}for(let s of n)for(let o of u6(s).filter(a=>a.endsWith(".md"))){let a=v7n(q_(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function w7n(e,t){let n=q_(e,"stages");if(ox(n))for(let r of u6(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=q_(n,r.name,"units");if(ox(i))for(let s of u6(i).filter(o=>o.endsWith(".md")))A7n(q_(i,s))&&t.units_migrated++}}function k7n(e){let t=Ru(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};R7n(e.intentDir,n),w7n(e.intentDir,n),t.feedback_migrated=n.feedback_migrated,t.feedback_with_synthesized_closure=n.feedback_with_synthesized_closure,t.units_migrated=n.units_migrated;let r=q_(e.intentDir,"intent.md");if(ox(r)){let i=rEe(r,"utf8"),s=(0,Iv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==nEe&&(o.plugin_version=nEe,iEe(r,Iv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Iv,T7n,nEe,fwt=v(()=>{"use strict";Iv=_e(sn(),1);lg();T7n="7.0.0",nEe="8.0.0";kd(T7n,nEe,k7n)});import{existsSync as xv,readdirSync as O1,readFileSync as oEe,rmSync as pwt,statSync as I7n,writeFileSync as aEe}from"node:fs";import{join as Na}from"node:path";function hwt(e){let t=e.iterations;if(!Array.isArray(t))return 0;let n=0;for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let i=r;typeof i.reason=="string"&&(i.message===void 0&&i.reason.length>0&&(i.message=i.reason),delete i.reason,n++)}return n}function O7n(e,t,n,r){let i=oEe(e,"utf8"),s=(0,Ov.default)(i),o=s.data,a=!1,c=Array.isArray(o.inputs)?o.inputs:[],u=o.reviews;if(u&&typeof u=="object"&&!Array.isArray(u)){let f=u;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;if(typeof h.at!="string"||h.at.length===0||h.input_witnesses!==void 0)continue;let m=sZ({intentDir:t,repoRoot:n,unitInputs:c});h.input_witnesses=m,r.review_slots_backfilled++,a=!0}}let l=o.approvals;if(l&&typeof l=="object"&&!Array.isArray(l)){let f=l;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;h.witnesses!==void 0&&(delete h.witnesses,r.approval_slots_stripped++,a=!0)}}let d=hwt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(aEe(e,Ov.default.stringify(s.content,o)),!0):!1}function N7n(e,t){let n=[Na(e,"feedback")],r=Na(e,"stages");if(xv(r))for(let i of O1(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Na(r,i.name,"feedback"));for(let i of n)if(xv(i))for(let s of O1(i).filter(o=>o.endsWith(".md"))){let o=Na(i,s),a=oEe(o,"utf8"),c=(0,Ov.default)(a),u=c.data,l=hwt(u);l>0&&(t.iterations_message_migrated+=l,aEe(o,Ov.default.stringify(c.content,u)))}}function ax(e,t){if(xv(e))try{I7n(e).isDirectory()?pwt(e,{recursive:!0,force:!0}):pwt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function P7n(e,t){ax(Na(e,"drift-markers.json"),t);let n=Na(e,"stages");if(xv(n))for(let r of O1(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Na(n,r.name);ax(Na(i,"baseline.json"),t),ax(Na(i,"baseline-content"),t),ax(Na(i,".baseline-ack"),t),ax(Na(i,"baseline-thrash.json"),t),ax(Na(i,"gate-session.json"),t)}}function C7n(e){return Na(e,"..","..","..")}function M7n(e){let t=Ru(),n={units_migrated:0,review_slots_backfilled:0,approval_slots_stripped:0,drift_artifacts_deleted:0,iterations_message_migrated:0},r=C7n(e.intentDir),i=Na(e.intentDir,"stages");if(xv(i))for(let o of O1(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Na(i,o.name,"units");if(xv(a))for(let c of O1(a).filter(u=>u.endsWith(".md"))){let u=Na(a,c);O7n(u,e.intentDir,r,n)&&n.units_migrated++}}N7n(e.intentDir,n),P7n(e.intentDir,n),t.units_migrated=n.units_migrated,t.drift_artifacts_deleted=n.drift_artifacts_deleted,t.review_slots_backfilled=n.review_slots_backfilled,t.approval_slots_stripped=n.approval_slots_stripped,t.iterations_message_migrated=n.iterations_message_migrated;let s=Na(e.intentDir,"intent.md");if(xv(s)){let o=oEe(s,"utf8"),a=(0,Ov.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==sEe&&(c.plugin_version=sEe,aEe(s,Ov.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Ov,x7n,sEe,mwt=v(()=>{"use strict";Ov=_e(sn(),1);lg();Wf();x7n="8.0.0",sEe="9.0.0";kd(x7n,sEe,M7n)});import{existsSync as gwt,readFileSync as D7n,renameSync as L7n,unlinkSync as U7n,writeFileSync as j7n}from"node:fs";function Swt(e,t){let n=vI(e,ywt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};j7n(r,JSON.stringify(i)),L7n(r,n)}catch{try{gwt(r)&&U7n(r)}catch{}}}function _wt(e){try{let t=vI(e,ywt);if(!gwt(t))return null;let n=JSON.parse(D7n(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var ywt,cEe=v(()=>{"use strict";Sl();ywt="statusline.json"});import{existsSync as F7n,readFileSync as H7n,rmSync as Hvi,writeFileSync as q7n}from"node:fs";function vwt(e){let t=cx.get(e);if(t)return t;try{let n=vI(e,Twt);if(!F7n(n))return;let r=JSON.parse(H7n(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>Rwt?void 0:(cx.set(e,r),r)}catch{return}}function G7n(e,t){cx.set(e,t);try{q7n(vI(e,Twt),JSON.stringify(t),"utf8"),B7n.add(e)}catch{}}function W7n(){if(cx.size<100)return;let e=Date.now();for(let[t,n]of cx)e-new Date(n.first_seen).getTime()>Rwt&&cx.delete(t)}function wwt(e){if(!e)return"null";let t=e.dispatches,n=Array.isArray(t)?t.map(a=>{let c=a??{};return`${c.feedback_id??""}:${c.hat??""}`}).sort().join(","):null,r=e.units,i=Array.isArray(r)?[...r].map(a=>String(a)).sort().join(","):null,s=e.signals_unmet,o=Array.isArray(s)?s.map(a=>{let c=a??{};return c.agent?`${c.signal??""}:${c.agent}`:`${c.signal??""}`}).sort().join(","):null;return JSON.stringify({action:e.action??null,stage:e.stage??null,unit:e.unit??null,feedback_id:e.feedback_id??null,role:e.role??null,hat:e.hat??null,fb_batch:n,unit_batch:i,signals:o})}function kwt(e,t){let n=wwt(t),r=new Date().toISOString(),i=vwt(e),s=typeof t=="object"&&t!==null&&t.action==="loop_halted",o;if(i&&i.signature===n){let a=i.count+1,c=s?i.recent:[...i.recent,n].slice(-uEe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===z7n&&Qe("haiku.deadlock.suspected",{intent:e,signature:n,consecutive_ticks:String(a),first_seen:i.first_seen})}else if(i){let a=s?i.recent:[...i.recent,n].slice(-uEe),c=i.recent.includes(n);if(o={signature:n,count:1,first_seen:i.first_seen,updated_at:r,recent:a,churn_fired:c?i.churn_fired:!1},!o.churn_fired&&a.length>=Ewt){let u=a.slice(-Ewt),l=new Set(u);l.size<=Awt&&l.size>1&&(Qe("haiku.deadlock.churn_suspected",{intent:e,recent_signatures:u.join(" | "),distinct_count:String(l.size),window_size:String(u.length),first_seen:i.first_seen}),o.churn_fired=!0)}}else o={signature:n,count:1,first_seen:r,updated_at:r,recent:s?[]:[n],churn_fired:!1};G7n(e,o),W7n()}function Z7n(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(K7n.has(t)||t==="intent_review"&&e.role==="user")}function Iwt(e,t){if(Z7n(t))return null;let n=wwt(t),r=vwt(e);if(!r)return null;if(r.signature===n&&r.count+1>=V7n)return{kind:"repeat",count:r.count+1,signature:n};let i=[...r.recent,n].slice(-uEe);if(i.length>=bwt){let s=i.slice(-bwt),o=new Set(s);if(o.size<=Awt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function xwt(e,t){Qe("haiku.deadlock.halted",{intent:e,loop:t.kind,...t.kind==="repeat"?{signature:t.signature,consecutive_ticks:String(t.count)}:{distinct:String(t.distinct),window:String(t.window)}});let n=t.kind==="repeat"?`The engine emitted the SAME action signature ${t.count} consecutive times for intent '${e}' with no on-disk progress between ticks. Signature: ${t.signature}.`:`The engine cycled through ${t.distinct} alternating action signatures across ${t.window} consecutive ticks for intent '${e}'. The classic A\u2194B churn wedge.`,i=t.kind==="repeat"&&t.signature.includes('"action":"elaborate_loop"')?`**Loop halted \u2014 the elaborate loop isn't advancing.** ${n} +`),a=[...new Set(i.flatMap(c=>c.units))];return E_e.renderString(yXn,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var Bwt,bXn,TXn,Gwt,zwt=v(()=>{"use strict";gt();ts();ht();At();Bwt=new Te({autoEscape:!1,useWith:!0}),bXn=ie("@canon:stage/review/write_brief"),TXn=ie("@canon:stage/review/write_brief","subagent.eta.md"),Gwt=({slug:e,action:t})=>{let n=t.stage||"",r=Bwt.renderString(TXn,{slug:e,stage:n}),i=Ti({unit:"brief",hat:"brief",bolt:1,intent:e,stage:n||void 0,agentType:"general-purpose",promptBody:r,heading:`### Subagent: stage brief (\`${n}\`)`,omitBolt:!0});return Bwt.renderString(bXn,{slug:e,stage:n,dispatchBlock:i})}});var vXn,AXn,Vwt,Wwt=v(()=>{"use strict";gt();Kn();ht();At();vXn=new Te({autoEscape:!1,useWith:!0}),AXn=ie("@canon:stage/start_stage"),Vwt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=$i(t,r),o=Od(t);return vXn.renderString(AXn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var Kwt,Ywt=v(()=>{"use strict";vAt();RAt();kAt();xAt();NAt();DAt();HAt();BAt();zAt();WAt();YAt();JAt();QAt();eRt();rRt();sRt();aRt();lRt();fRt();hRt();gRt();ERt();bRt();vRt();RRt();kRt();xRt();nwt();iwt();owt();cwt();lwt();fwt();hwt();gwt();Swt();_wt();Twt();Awt();wwt();Iwt();Owt();Nwt();Dwt();Uwt();jwt();qwt();zwt();Wwt();Kwt=new Map([["start_stage",Vwt],["elaborate_loop",twt],["start_unit",Mwt],["start_unit_hat",Lwt],["dispatch_review",Hwt],["write_brief",Gwt],["dispatch_approval",SRt],["dispatch_quality_gates",_Rt],["user_gate",Fwt],["advance_phase",TRt],["advance_stage",ARt],["complete_stage",wRt],["record_observations",IRt],["record_reflection",KAt],["blocked",rwt],["coverage_review_required",swt],["dag_cycle_detected",awt],["discovery_missing",uwt],["elaboration_insufficient",dwt],["escalate",pwt],["gate_blocked",mwt],["output_liveness_review_required",ywt],["outputs_missing",Ewt],["save_wip",bwt],["unit_inputs_missing",vwt],["unit_inputs_not_declared",Rwt],["unit_naming_invalid",kwt],["unit_outputs_empty_iterations",xwt],["unresolved_dependencies",Pwt],["migrated",pRt],["select_studio",mRt],["intent_review",nRt],["intent_approved",iRt],["intent_complete",oRt],["seal_intent",dRt],["pending_seal",uRt],["external_review_requested",ZAt],["revise_unit_specs",XAt],["safe_intent_repair",$At],["changes_requested",TAt],["close_feedback",AAt],["feedback_question",wAt],["fix_quality_gates",IAt],["intent_completion_fix",PAt],["review_fix",MAt],["start_feedback_hat",jAt],["complete",qAt],["error",GAt],["loop_halted",VAt]])});var bZ,Zwt=v(()=>{"use strict";ji();uo();bZ=[{name:"haiku_run_next",description:"Advance an intent through its lifecycle. The workflow engine reads state, determines the next action, performs the state mutation (start stage, advance phase, complete stage, etc.), and returns the action to the agent. The agent follows the returned action \u2014 it never mutates stage or intent state directly. When `intent` is omitted, the workflow engine auto-resolves it from the current git branch (`haiku//main` or `haiku//`) \u2014 lets pickup/revisit skills be thin one-line redirects without asking the user to pick an intent the checkout already names. If omitted and no branch match exists, falls back to the single active intent; errors when zero or multiple active intents are present.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug. Omit to auto-resolve from the current git branch or the sole active intent."},external_review_url:{type:"string",description:"URL where stage was submitted for external review"},state_file:{type:"string",description:"Override path to the engine state file (testing / foreign callers). Omit in normal use."},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}}},{name:"haiku_await_gate",description:"Block on a pending gate-review session for an intent until the user approves, requests changes, or the wait times out (30 min). Pair with `haiku_run_next`: when run_next returns a `gate_review` action, post the included `review_url` to the user (essential for headless / SSH / web-client / mobile / remote-control setups where the MCP host can't auto-open the user's browser), then call this tool to wait for their decision. Opens the review URL in the default browser best-effort by default; pass `auto_open: false` to skip the browser launch. Returns the resulting orchestrator action (advance_stage / changes_requested / external_review_requested / etc.).",inputSchema:c0},{name:"haiku_intent_create",description:'Create a new H\xB7AI\xB7K\xB7U intent. Studio, mode, and (for quick) stage are selected separately via the engine-controlled elicitation chain (haiku_select_studio \u2192 haiku_select_mode \u2192 optional haiku_select_stage). You must provide a crisp `title` (3\u20138 words, \u226480 chars, single line, no trailing punctuation \u2014 e.g. "Add archivable intents"), a richer `description` (2\u20135 sentences covering scope, motivation, and constraints), AND `studio_candidates` \u2014 the 2\u20134 studios (from `haiku_studio_list`) that best fit, which pre-narrow the studio picker so the user is not scrolling the whole registry. The title is NOT derived from the description \u2014 write it deliberately as a human-readable summary. The agent never sets `mode` or `stages` \u2014 those flow through elicitation tools so the user picks them.',inputSchema:PL},{name:"haiku_select_studio",description:"Select or change the studio for an intent. Uses elicitation to present studio options. Cannot be used after the intent has entered any stage.",inputSchema:p0},{name:"haiku_select_mode",description:"Select an execution mode for an intent. Uses elicitation to present mode options. Engine-managed \u2014 agents never write `mode` directly; this tool is the only way to set or change it. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:h0},{name:"haiku_select_stage",description:"Select the single stage for a quick-mode intent. Uses elicitation to present the studio's stage list. Refuses if the intent's mode is not `quick` or if a stage is already set.",inputSchema:m0},{name:"haiku_drop_stage",description:"Drop an OPTIONAL stage from an intent's plan when the elaborate-loop offered a keep-or-drop decision and this intent doesn't need the stage. Removes it from the plan so the next haiku_run_next advances. Only the active, not-yet-started stage can be dropped (drop_stage_not_active / drop_stage_not_optional / drop_stage_already_started).",inputSchema:g0},{name:"haiku_intent_reset",description:"Reset an intent \u2014 preserves the description, deletes all state, and recreates the intent from scratch. Asks for confirmation via elicitation before proceeding.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to reset"}},required:["intent"]}},{name:"haiku_stage_reset",description:"Reset ONE stage of an intent: wipe its units, outputs, artifacts, elaboration, feedback, and stage branch. The intent's other stages are untouched. Use after fixing the stage's hat instructions or studio config when the user wants the agent to re-run that stage cleanly. Requires user confirmation via the SPA picker.",inputSchema:d0},{name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:b0},{name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]}},{name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]}},{name:"haiku_coverage_acknowledge",description:"Record a per-file decision for an upstream output that the current stage's units do not reference. Used to resolve a `coverage_review_required` action emitted by the pre-tick cumulative-input-coverage validator. Decisions persist to `stages//coverage-decisions.json`. The decision MUST be either `out-of-scope` (with rationale explaining why this file is not relevant to the current stage's deliverables) or `covered-by-unit` (with the `unit` slug whose `inputs:` field already includes \u2014 or will include \u2014 the path; redundant for paths added via `haiku_unit_set` but useful when the agent wants to record reasoning). This tool does NOT advance the workflow; call `haiku_run_next` after acknowledging to re-run the validator.",inputSchema:{type:"object",properties:{intent_slug:{type:"string"},stage:{type:"string"},path:{type:"string"},decision:{type:"string",enum:["out-of-scope","covered-by-unit"]},rationale:{type:"string"},unit:{type:"string"}},required:["intent_slug","stage","path","decision","rationale"]}},{name:"haiku_debug",description:"ADMIN: bypass-the-FSM tools to unstick corrupt intents. Force a stage complete (signs all reviews/approvals/QGs for units that have moved through every hat), set an intent field (mode, etc.), reset drift (re-stamp witnesses), mutate any feedback frontmatter, or preview the next cursor head after edits. Every mutation requires SPA-picker confirmation \u2014 the agent cannot act unilaterally. Use only when the normal workflow can't recover (corrupt FM, stuck loop, lost stamps).",inputSchema:u0},{name:"haiku_dispatch_quality_gates",description:"Run a unit's declared quality_gates as the post-execute approval-track actor. On all-pass, stamps approvals.quality_gates on each unit. On failure, files an FB targeting the unit (origin: agent, target_invalidates: [quality_gates]). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug"},stage:{type:"string",description:"Stage name"},units:{type:"array",items:{type:"string"},description:"Unit names to run gates for (stage scope)"},scope:{type:"string",enum:["intent","stage"],description:"Which scope to run. Defaults to 'intent' when stage is empty, else 'stage'."}},required:["intent"]}},{name:"haiku_human_write",description:"Write a file to the intent's tracked surface as a human-attributed write. Use when a user explicitly instructs the agent to write a file on their behalf (e.g. 'save this config to knowledge/'). The file is written atomically, attributed to the human via an action-log entry, and appended to the write-audit log. The baseline is NOT updated \u2014 the next drift-gate tick detects the change and dispatches manual_change_assessment. Allowed destinations: knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/ (or outputs/ alias). Workflow-managed files (units, feedback, intent.md, state.json) are refused.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The slug of the active intent."},path:{type:"string",description:"Destination file path \u2014 intent-relative (e.g. knowledge/brand-guide.md) or absolute within the intent directory. Path is canonicalised (outputs/ \u2192 artifacts/) before validation."},content:{type:"string",description:"File content. UTF-8 string by default. Pass base64-encoded bytes and set content_encoding: 'base64' for binary files."},content_encoding:{type:"string",enum:["utf-8","base64"],description:"Encoding of the content field. Default: 'utf-8'."},claimed_author_id:{type:"string",description:"Self-reported identifier (username, email, UUID) of who the agent BELIEVES gave the instruction. Captured in the audit log as a CLAIM, not an authoritative identity \u2014 the server does not cross-check against any session or OS identity. Reviewers reading audit logs MUST treat this as 'what the agent said' rather than 'who did it'."},human_author_id:{type:"string",description:"DEPRECATED legacy alias for `claimed_author_id`. Accepted for backwards compatibility; mirrored to `claimed_author_id` on persistence. New callers MUST use `claimed_author_id`."},rationale:{type:"string",description:"Short free-text explanation of why the human requested this write. Strongly recommended. Required when the plugin setting human_write_require_rationale is true."},user_instruction_excerpt:{type:"string",description:"The user's instruction as it appeared in chat (first 200 chars). Captured in the audit log for security review. Self-reported by the agent."},overwrite:{type:"boolean",description:"Whether to overwrite the file if it already exists. Default: true. When false, returns path_already_exists if the destination exists."},create_dirs:{type:"boolean",description:"Whether to create intermediate directories if they do not exist. Default: true. When false, returns parent_dir_missing if the parent directory is absent."}},required:["intent_slug","path","content"]}},{name:"haiku_intent_seal",description:"Stamp `verified_at` on intent.md frontmatter after the pre-intent substance verifier passes. The verifier subagent (dispatched via the cursor's pre-intent `elaborate_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to walk into the first stage's elaborate gate. Idempotent (no-op when already verified). Lands on intent main, not a stage branch \u2014 the seal precedes any stage walk.",inputSchema:_0},{name:"haiku_stage_elaboration_record",description:"Capture the per-stage human-conversation outcome at `stages//elaboration.md`. Call this when the conversation with the user has reached alignment for the active stage's `elaborate` action. The artifact's frontmatter records `recorded_at`; `verified_at` is stamped separately by the verifier subagent via `haiku_stage_elaboration_seal`. Overwrites any prior artifact (clearing a stale `verified_at`). Cursor stays at `elaborate_review` until the verifier seals the artifact.",inputSchema:y0},{name:"haiku_stage_elaboration_seal",description:"Stamp `verified_at` on the per-stage elaboration artifact's frontmatter. The verifier subagent (dispatched via the cursor's `elaborate_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `elaborate_review`. Idempotent (no-op when already verified).",inputSchema:S0},{name:"haiku_stage_decompose_seal",description:"Stamp `decompose_verified_at` on the per-stage elaboration artifact's frontmatter (the 4th elaborate-loop completion signal per GOALS.md). The decompose-verifier subagent (dispatched via the cursor's `decompose_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `decompose_review` into the execute phase. Idempotent (no-op when already verified).",inputSchema:E0},{name:"haiku_discovery_complete",description:"Discovery subagent's completion hand-off. Merges the discovery worktree's branch back into its stage branch under a per-stage lock. Call AFTER committing your artifact inside the isolation worktree. Returns `{ ok: true }` on clean merge, `discovery_merge_conflict` with `conflict_files` on a real conflict, `discovery_merge_failed` with the git error on other failures, `intent_not_found` when the intent dir is missing, `worktree_not_found` when the discovery worktree doesn't exist (already merged or never created).",inputSchema:l0},{name:"haiku_review_stamp",description:"Review/approval/intent-review subagent CLOSURE. Records your own `reviews.` / `approvals.` witness and returns a terminal ack \u2014 call this INSTEAD of `haiku_run_next` when you finish reviewing. `kind: review|approval` requires `stage`; `kind: intent_review` omits it. Returns `{ ok: true, stamped: [...], skipped: [...] }` (skipped = units you flagged with an open finding; they stay un-stamped so the cursor reroutes through them on close), or `{ ok: true, found: false }` when nothing was pending for your role (already stamped \u2014 clean no-op). Never walks the cursor and never returns a fix dispatch, so it can't trip the inter-tick loop guard.",inputSchema:f0},{name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/.... Workflow-managed paths (units/, feedback/, state.json, intent.md) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. stages/design/artifacts/spec.md) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]}}]});import{existsSync as RXn,readFileSync as wXn,writeFileSync as kXn}from"node:fs";import{join as IXn}from"node:path";function OXn(e){let t=pc(),n=IXn(e.intentDir,"intent.md");if(!RXn(n))return t;let r=wXn(n,"utf8"),i=(0,__e.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===b_e||(s.plugin_version=b_e,kXn(n,__e.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var __e,xXn,b_e,Jwt=v(()=>{"use strict";__e=Se(Kt(),1);Ph();xXn="4.0.0",b_e="5.0.0";Pu(xXn,b_e,OXn)});import{existsSync as PXn,readFileSync as NXn,writeFileSync as CXn}from"node:fs";import{join as MXn}from"node:path";function LXn(e){let t=pc(),n=MXn(e.intentDir,"intent.md");if(!PXn(n))return t;let r=NXn(n,"utf8"),i=(0,T_e.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===v_e||(s.plugin_version=v_e,CXn(n,T_e.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var T_e,DXn,v_e,Xwt=v(()=>{"use strict";T_e=Se(Kt(),1);Ph();DXn="5.0.0",v_e="6.0.0";Pu(DXn,v_e,LXn)});import{existsSync as UXn,readFileSync as FXn,writeFileSync as jXn}from"node:fs";import{join as HXn}from"node:path";function BXn(e){let t=pc(),n=HXn(e.intentDir,"intent.md");if(!UXn(n))return t;let r=FXn(n,"utf8"),i=(0,A_e.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===R_e||(s.plugin_version=R_e,jXn(n,A_e.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var A_e,qXn,R_e,Qwt=v(()=>{"use strict";A_e=Se(Kt(),1);Ph();qXn="6.0.0",R_e="7.0.0";Pu(qXn,R_e,BXn)});import{existsSync as px,readdirSync as TZ,readFileSync as k_e,writeFileSync as I_e}from"node:fs";import{join as WE}from"node:path";function zXn(e){let t=k_e(e,"utf8"),n=(0,Cv.default)(t),r=n.data,i=typeof r.status=="string"?r.status.trim().toLowerCase():"";if(!i)return{migrated:!1,closure_synthesized:!1};let o=(typeof r.created_at=="string"?r.created_at:"")||new Date(0).toISOString(),a=!1;switch(i){case"addressed":r.closed_at||(r.closed_at=o,a=!0),r.closed_by||(r.closed_by="feedback-assessor");break;case"answered":r.closed_at||(r.closed_at=o,a=!0),r.resolution||(r.resolution="answered");break;case"closed":r.closed_at||(r.closed_at=o,a=!0),r.closed_by||(r.closed_by="manual_close");break;case"rejected":r.rejected_at||(r.rejected_at=o,a=!0);break;default:break}return delete r.status,I_e(e,Cv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function VXn(e){let t=k_e(e,"utf8"),n=(0,Cv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,I_e(e,Cv.default.stringify(n.content,r)),!0)}function WXn(e,t){let n=[],r=WE(e,"feedback");px(r)&&n.push(r);let i=WE(e,"stages");if(px(i))for(let s of TZ(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=WE(i,s.name,"feedback");px(o)&&n.push(o)}for(let s of n)for(let o of TZ(s).filter(a=>a.endsWith(".md"))){let a=zXn(WE(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function KXn(e,t){let n=WE(e,"stages");if(px(n))for(let r of TZ(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=WE(n,r.name,"units");if(px(i))for(let s of TZ(i).filter(o=>o.endsWith(".md")))VXn(WE(i,s))&&t.units_migrated++}}function YXn(e){let t=pc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};WXn(e.intentDir,n),KXn(e.intentDir,n),t.feedback_migrated=n.feedback_migrated,t.feedback_with_synthesized_closure=n.feedback_with_synthesized_closure,t.units_migrated=n.units_migrated;let r=WE(e.intentDir,"intent.md");if(px(r)){let i=k_e(r,"utf8"),s=(0,Cv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==w_e&&(o.plugin_version=w_e,I_e(r,Cv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Cv,GXn,w_e,$wt=v(()=>{"use strict";Cv=Se(Kt(),1);Ph();GXn="7.0.0",w_e="8.0.0";Pu(GXn,w_e,YXn)});import{existsSync as Mv,readdirSync as z1,readFileSync as O_e,rmSync as ekt,statSync as ZXn,writeFileSync as P_e}from"node:fs";import{join as Ua}from"node:path";function tkt(e){let t=e.iterations;if(!Array.isArray(t))return 0;let n=0;for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let i=r;typeof i.reason=="string"&&(i.message===void 0&&i.reason.length>0&&(i.message=i.reason),delete i.reason,n++)}return n}function XXn(e,t,n,r){let i=O_e(e,"utf8"),s=(0,Dv.default)(i),o=s.data,a=!1,c=Array.isArray(o.inputs)?o.inputs:[],u=o.reviews;if(u&&typeof u=="object"&&!Array.isArray(u)){let f=u;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;if(typeof h.at!="string"||h.at.length===0||h.input_witnesses!==void 0)continue;let m=bY({intentDir:t,repoRoot:n,unitInputs:c});h.input_witnesses=m,r.review_slots_backfilled++,a=!0}}let l=o.approvals;if(l&&typeof l=="object"&&!Array.isArray(l)){let f=l;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;h.witnesses!==void 0&&(delete h.witnesses,r.approval_slots_stripped++,a=!0)}}let d=tkt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(P_e(e,Dv.default.stringify(s.content,o)),!0):!1}function QXn(e,t){let n=[Ua(e,"feedback")],r=Ua(e,"stages");if(Mv(r))for(let i of z1(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Ua(r,i.name,"feedback"));for(let i of n)if(Mv(i))for(let s of z1(i).filter(o=>o.endsWith(".md"))){let o=Ua(i,s),a=O_e(o,"utf8"),c=(0,Dv.default)(a),u=c.data,l=tkt(u);l>0&&(t.iterations_message_migrated+=l,P_e(o,Dv.default.stringify(c.content,u)))}}function hx(e,t){if(Mv(e))try{ZXn(e).isDirectory()?ekt(e,{recursive:!0,force:!0}):ekt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function $Xn(e,t){hx(Ua(e,"drift-markers.json"),t);let n=Ua(e,"stages");if(Mv(n))for(let r of z1(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Ua(n,r.name);hx(Ua(i,"baseline.json"),t),hx(Ua(i,"baseline-content"),t),hx(Ua(i,".baseline-ack"),t),hx(Ua(i,"baseline-thrash.json"),t),hx(Ua(i,"gate-session.json"),t)}}function eQn(e){return Ua(e,"..","..","..")}function tQn(e){let t=pc(),n={units_migrated:0,review_slots_backfilled:0,approval_slots_stripped:0,drift_artifacts_deleted:0,iterations_message_migrated:0},r=eQn(e.intentDir),i=Ua(e.intentDir,"stages");if(Mv(i))for(let o of z1(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Ua(i,o.name,"units");if(Mv(a))for(let c of z1(a).filter(u=>u.endsWith(".md"))){let u=Ua(a,c);XXn(u,e.intentDir,r,n)&&n.units_migrated++}}QXn(e.intentDir,n),$Xn(e.intentDir,n),t.units_migrated=n.units_migrated,t.drift_artifacts_deleted=n.drift_artifacts_deleted,t.review_slots_backfilled=n.review_slots_backfilled,t.approval_slots_stripped=n.approval_slots_stripped,t.iterations_message_migrated=n.iterations_message_migrated;let s=Ua(e.intentDir,"intent.md");if(Mv(s)){let o=O_e(s,"utf8"),a=(0,Dv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==x_e&&(c.plugin_version=x_e,P_e(s,Dv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Dv,JXn,x_e,nkt=v(()=>{"use strict";Dv=Se(Kt(),1);Ph();Zf();JXn="8.0.0",x_e="9.0.0";Pu(JXn,x_e,tQn)});import{existsSync as nQn,readFileSync as rQn,writeFileSync as iQn}from"node:fs";import{join as sQn}from"node:path";function aQn(e){let t=pc(),n=sQn(e.intentDir,"intent.md");if(!nQn(n))return t;let r=rQn(n,"utf8"),i=(0,N_e.default)(r),s=i.data,o=typeof s.plugin_version=="string"?s.plugin_version:"",a=!1;if(!(Array.isArray(s.stages)&&s.stages.length>0)&&typeof s.studio=="string"&&s.studio){let u=Fs(s.studio),l=Array.isArray(s.skip_stages)?s.skip_stages.filter(f=>typeof f=="string"):[],d=u.filter(f=>!l.includes(f));d.length>0&&(s.stages=d,a=!0)}return"skip_stages"in s&&(delete s.skip_stages,a=!0),o===C_e&&!a||(s.plugin_version=C_e,iQn(n,N_e.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var N_e,oQn,C_e,rkt=v(()=>{"use strict";N_e=Se(Kt(),1);Ph();ns();oQn="9.0.0",C_e="10.0.0";Pu(oQn,C_e,aQn)});import{existsSync as ikt,readFileSync as cQn,renameSync as uQn,unlinkSync as lQn,writeFileSync as dQn}from"node:fs";function okt(e,t){let n=II(e,skt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};dQn(r,JSON.stringify(i)),uQn(r,n)}catch{try{ikt(r)&&lQn(r)}catch{}}}function akt(e){try{let t=II(e,skt);if(!ikt(t))return null;let n=JSON.parse(cQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var skt,M_e=v(()=>{"use strict";Tl();skt="statusline.json"});import{existsSync as fQn,readFileSync as pQn,rmSync as swi,writeFileSync as hQn}from"node:fs";function dkt(e){let t=mx.get(e);if(t)return t;try{let n=II(e,lkt);if(!fQn(n))return;let r=JSON.parse(pQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>pkt?void 0:(mx.set(e,r),r)}catch{return}}function gQn(e,t){mx.set(e,t);try{hQn(II(e,lkt),JSON.stringify(t),"utf8"),mQn.add(e)}catch{}}function EQn(){if(mx.size<100)return;let e=Date.now();for(let[t,n]of mx)e-new Date(n.first_seen).getTime()>pkt&&mx.delete(t)}function hkt(e){if(!e)return"null";let t=e.dispatches,n=Array.isArray(t)?t.map(a=>{let c=a??{};return`${c.feedback_id??""}:${c.hat??""}`}).sort().join(","):null,r=e.units,i=Array.isArray(r)?[...r].map(a=>String(a)).sort().join(","):null,s=e.signals_unmet,o=Array.isArray(s)?s.map(a=>{let c=a??{};return c.agent?`${c.signal??""}:${c.agent}`:`${c.signal??""}`}).sort().join(","):null;return JSON.stringify({action:e.action??null,stage:e.stage??null,unit:e.unit??null,feedback_id:e.feedback_id??null,role:e.role??null,hat:e.hat??null,fb_batch:n,unit_batch:i,signals:o})}function mkt(e,t){if(L_e(t))return;let n=hkt(t),r=new Date().toISOString(),i=dkt(e),s=typeof t=="object"&&t!==null&&t.action==="loop_halted",o;if(i&&i.signature===n){let a=i.count+1,c=s?i.recent:[...i.recent,n].slice(-D_e);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===yQn&&Ke("haiku.deadlock.suspected",{intent:e,signature:n,consecutive_ticks:String(a),first_seen:i.first_seen})}else if(i){let a=s?i.recent:[...i.recent,n].slice(-D_e),c=i.recent.includes(n);o={signature:n,count:1,first_seen:i.first_seen,updated_at:r,recent:a,churn_fired:c?i.churn_fired:!1};let u=gkt(a);if(!o.churn_fired&&u.length>=ckt){let l=u.slice(-ckt),d=new Set(l);d.size<=fkt&&d.size>1&&(Ke("haiku.deadlock.churn_suspected",{intent:e,recent_signatures:l.join(" | "),distinct_count:String(d.size),window_size:String(l.length),first_seen:i.first_seen}),o.churn_fired=!0)}}else o={signature:n,count:1,first_seen:r,updated_at:r,recent:s?[]:[n],churn_fired:!1};gQn(e,o),EQn()}function L_e(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(_Qn.has(t)||t==="intent_review"&&e.role==="user")}function bQn(e){try{return L_e(JSON.parse(e))}catch{return!1}}function gkt(e){return e.filter(t=>!bQn(t))}function ykt(e,t){if(L_e(t))return null;let n=hkt(t),r=dkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=SQn)return{kind:"repeat",count:r.count+1,signature:n};let i=gkt([...r.recent,n].slice(-D_e));if(i.length>=ukt){let s=i.slice(-ukt),o=new Set(s);if(o.size<=fkt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function Skt(e,t){Ke("haiku.deadlock.halted",{intent:e,loop:t.kind,...t.kind==="repeat"?{signature:t.signature,consecutive_ticks:String(t.count)}:{distinct:String(t.distinct),window:String(t.window)}});let n=t.kind==="repeat"?`The engine emitted the SAME action signature ${t.count} consecutive times for intent '${e}' with no on-disk progress between ticks. Signature: ${t.signature}.`:`The engine cycled through ${t.distinct} alternating action signatures across ${t.window} consecutive ticks for intent '${e}'. The classic A\u2194B churn wedge.`,i=t.kind==="repeat"&&t.signature.includes('"action":"elaborate_loop"')?`**Loop halted \u2014 the elaborate loop isn't advancing.** ${n} This is NOT a downstream wedge: the elaborate loop's unmet signal clears only when you change disk state, and re-ticking changed nothing. You re-ran \`haiku_run_next\` without doing the elaborate work. @@ -1166,28 +1168,29 @@ The cursor was about to return the same action again. Repeating it would not pro 1. Surface this halt to the user. Don't auto-recover. 2. Identify what the cursor was waiting for (read the signature above). 3. Either fix the underlying state (commit the missing artifact, sign the verifier, run \`/haiku:haiku-repair\`) or file a feedback explaining why the loop happened. -4. Once the underlying state has changed, the next \`haiku_run_next\` tick will surface a different action and the loop guard will reset.`;return{action:"loop_halted",intent:e,message:i,loop:t.kind}}var cx,B7n,Twt,z7n,uEe,Ewt,Awt,V7n,bwt,Rwt,K7n,Owt=v(()=>{"use strict";Sl();Ko();cx=new Map,B7n=new Set,Twt=".deadlock-history.json";z7n=2,uEe=10,Ewt=4,Awt=2,V7n=4,bwt=8,Rwt=3600*1e3;K7n=new Set(["user_gate","feedback_question","await_gate","await_design_direction","await_visual_answer","select_studio","select_mode","select_stage"])});import{existsSync as lEe,readdirSync as Y7n,readFileSync as Nwt}from"node:fs";function Pwt(e,t){if(!Ae())return{action:null};let n=[];try{let o=`${fe(e)}/intent.md`;if(!lEe(o))return{action:null};let a=re(Nwt(o,"utf8")).data,c=[...or(a,t),""];for(let u of c){let l=u||"intent",d=$o(e,u);if(lEe(d))for(let f of Y7n(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(Nwt(`${d}/${f}`,"utf8")).data}catch{continue}if(Jf(p)!=="closed")continue;let h=Number.parseInt(f.match(/^(\d+)/)?.[1]??"",10);if(!Number.isFinite(h)||h<=0)continue;let m=Fd(h),y=pg(e,l,m);if(!lEe(y))continue;let g=P_(e,l,()=>OD(e,l,m));g.success||n.push({feedbackId:m,scope:l,worktree:y,conflictFiles:g.conflictFiles??[]})}}}catch{return{action:null}}if(n.length===0)return{action:null};let r=n.map(s=>s.feedbackId).join(", "),i=n[0].scope;return{action:{action:"integrate_fix_chains",intent:e,scope:i,items:n.map(s=>({feedback_id:s.feedbackId})),message:`${n.length} fix-chain merge(s) still have unresolved conflicts: ${r}. `+n.map(s=>`For ${s.feedbackId}: resolve the conflicted file(s) in ${s.worktree} (${s.conflictFiles.join(", ")||"see git status"}), \`git add\` them, \`git commit\` to complete the in-worktree merge.`).join(" ")+` Then call \`haiku_run_next { intent: "${e}" }\` \u2014 the engine forward-merges each resolved chain into its base branch on the next tick.`}}}var Cwt=v(()=>{"use strict";Tr();M0();ze();_o()});import{existsSync as Mwt,readdirSync as J7n,readFileSync as Dwt,writeFileSync as X7n}from"node:fs";import{join as dEe}from"node:path";function Lwt(e){let t=[],n=fe(e),r=dEe(n,"intent.md");if(!Mwt(r))return{reconciled:t};let i=[];try{let{data:s}=(0,l6.default)(Dwt(r,"utf8"));i=Array.isArray(s.stages)?s.stages:[]}catch{return{reconciled:t}}for(let s of i){let o=dEe(n,"stages",s,"units");if(Mwt(o))for(let a of J7n(o).filter(c=>c.endsWith(".md"))){let c=a.replace(/\.md$/,""),u=dEe(o,a),l;try{l=(0,l6.default)(Dwt(u,"utf8"))}catch{continue}let d=Array.isArray(l.data.iterations)?l.data.iterations:[];if(d.length===0)continue;let f=new Set(YL(e,s,c)),p=y=>typeof y?.hat=="string"&&!f.has(y.hat);if(!d.some(p))continue;let h=d.filter(y=>!p(y)),m=structuredClone(l.data);m.iterations=h,X7n(u,l6.default.stringify(l.content,m)),t.push(`${s}/${c}`)}}return{reconciled:t}}var l6,Uwt=v(()=>{"use strict";l6=_e(sn(),1);ze()});import{existsSync as N1,readdirSync as Q7n,rmSync as jwt,statSync as Hwt}from"node:fs";import{join as d6}from"node:path";function Fwt(e){if(N1(e))try{Hwt(e).isDirectory()?jwt(e,{recursive:!0,force:!0}):jwt(e,{force:!0})}catch{}}function qwt(e){let t=0,n=new Set;for(let i of $7n){let s=d6(e,i);N1(s)&&n.add(s),Fwt(s)}let r=d6(e,"stages");if(N1(r)){let i=[];try{i=Q7n(r)}catch{i=[]}for(let s of i){let o=d6(r,s),a=!1;try{a=Hwt(o).isDirectory()}catch{continue}if(a)for(let c of eXn){let u=d6(o,c);N1(u)&&n.add(u),Fwt(u)}}}for(let i of n)N1(i)||t++;return t}var $7n,eXn,Bwt=v(()=>{"use strict";$7n=["drift-markers.json"],eXn=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as Nv,readdirSync as f6,readFileSync as zwt,writeFileSync as tXn}from"node:fs";import{join as B_}from"node:path";function nXn(e){if(!Nv(e))return null;try{let t=zwt(e,"utf8"),n=(0,p6.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function rXn(e,t,n){tXn(e,p6.default.stringify(n,t))}function iXn(e,t){let n=B_(e,"stages",t);if(!Nv(n))return!1;let r=B_(n,"units");if(Nv(r)&&f6(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||Nv(B_(n,"elaboration.md")))return!0;let i=B_(n,"feedback");return!!(Nv(i)&&f6(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||f6(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function Vwt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function sXn(e,t){let n=Vwt(e);if(n.length===0)return!1;let r=n[n.length-1];return r.result!=="advance"?!1:t.length===0?!0:r.hat===t[t.length-1]}function Wwt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=B_(e,"intent.md");if(!Nv(i))return r;let s={};try{s=(0,p6.default)(zwt(i,"utf8")).data}catch{return r}let o=or(s,t);if(o.length<2)return r;for(let a=0;ab.isFile()&&b.name.endsWith(".md")).map(b=>B_(l,b.name));if(d.length===0)continue;let f=[];try{f=Object.keys(gl(t,c)).sort()}catch{f=[]}let p=n==="autopilot",h=p?["spec"]:["spec",...f,"user"],m=p?["spec","quality_gates"]:["spec","quality_gates",...f,"user"],y=oXn(t,c),g=[],E=!0;for(let b of d){let T=nXn(b);if(!T){Qe("haiku.self_repair.unit_unreadable",{stage:c,path:b}),E=!1;break}g.push({path:b,data:T.data,body:T.body}),sXn(T.data,y)||(E=!1)}if(!E)continue;let S=!1;for(let b=a+1;b0?R[R.length-1].completed_at:"",x=typeof k=="string"&&k.length>0?k:new Date().toISOString(),N=T.reviews&&typeof T.reviews=="object"?{...T.reviews}:{},P=T.approvals&&typeof T.approvals=="object"?{...T.approvals}:{},D=!1;for(let j of h)N[j]==null&&(N[j]={at:x,migrated:!0,synthesized_reason:Gwt},r.reviewsAdded++,D=!0);for(let j of m)P[j]==null&&(P[j]={at:x,migrated:!0,synthesized_reason:Gwt},r.approvalsAdded++,D=!0);D&&(T.reviews=N,T.approvals=P,rXn(b,T,A),r.unitsTouched++,_=!0)}_&&r.stagesRepaired.push(c)}return r}function oXn(e,t){try{return to(e,t)||[]}catch{return[]}}var p6,Gwt,Kwt=v(()=>{"use strict";p6=_e(sn(),1);Zn();Ko();_o();Gwt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as h6,readdirSync as Zwt,readFileSync as Ywt}from"node:fs";import{join as m6}from"node:path";function Jwt(e,t){let n=[];try{if(!Lfe())return{reset:n};let r=fe(e),i=_s(e,t,r);if(!i)return{reset:n};let s=m6(r,"stages",i,"units");if(!h6(s))return{reset:n};let o=to(t,i),a=o[o.length-1]??"";for(let c of Zwt(s).filter(u=>u.endsWith(".md"))){let u=m6(s,c),l;try{l=re(Ywt(u,"utf8")).data}catch{continue}let d=typeof l.started_at=="string"&&l.started_at.length>0,f=Array.isArray(l.iterations)?l.iterations:[];if(!d||f.length===0)continue;let p=f[f.length-1];if(p&&p.result==="advance"&&p.hat===a)continue;let h=c.replace(/\.md$/,"");if(h6(l_(e,h)))continue;let{local:m,remote:y}=Dfe(e,h);m||y||(Array.isArray(l.outputs)?l.outputs.filter(E=>typeof E=="string"&&E.length>0):[]).some(E=>M_(e,h,E))||(je(u,"iterations",[]),je(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function Xwt(e,t){let n=[];try{let r=fe(e),i=_s(e,t,r);if(!i)return{cleared:n};let s=m6(r,"stages",i,"units");if(!h6(s))return{cleared:n};let o=Ae(),a=Date.now();for(let c of Zwt(s).filter(u=>u.endsWith(".md"))){let u=m6(s,c),l;try{l=re(Ywt(u,"utf8")).data}catch{continue}let d=Array.isArray(l.iterations)?l.iterations:[];if(d.length===0)continue;let f=d[d.length-1];if(!f||f.result!==null)continue;let p=typeof f.dispatched_at=="string"?f.dispatched_at:"";if(!p)continue;let h=c.replace(/\.md$/,""),m=o&&!h6(l_(e,h)),y=a-Date.parse(p),g=Number.isFinite(y)&&y>aXn;!m&&!g||(f.dispatched_at=null,je(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var aXn,Qwt=v(()=>{"use strict";Tr();ze();_o();hc();aXn=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as cXn,readdirSync as uXn,readFileSync as lXn}from"node:fs";import{join as $wt}from"node:path";function tkt(e,t,n){let r=[],i=[],s=_s(e,n,t);if(!s)return{filed:r,skipped:i};let o=$wt(vr(e,s),"units");if(!cXn(o))return{filed:r,skipped:i};let a=new Set;try{for(let u of yo(e,s)){let l=u.source_ref,d=u;d.closed_at||typeof d.status=="string"&&d.status==="closed"||typeof d.status=="string"&&d.status==="rejected"||typeof l=="string"&&l.startsWith("malformed-inputs:")&&a.add(l)}}catch{}let c;try{c=uXn(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,ekt.default)(lXn($wt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(y=>typeof y=="string"&&dXn.test(y.trim()));if(f.length===0)continue;let p=u.replace(/\.md$/,""),h=`malformed-inputs:${p}`;if(a.has(h)){i.push(p);continue}let m=[`Unit \`${p}\` declares \`inputs:\` entries that are unit NAMES, not file paths:`,"",...f.map(y=>` - \`${y}\``),"","`inputs:` must list file PATHS the unit reads (e.g. `product/ACCEPTANCE-CRITERIA.md`, a prior-stage artifact, or a producing unit's declared output file). A unit name is not a path the engine can read \u2014 `haiku_unit_start` rejects it as `unit_inputs_missing`, and because the cursor's wave-ready filter gates on `depends_on` (not `inputs`), the unit is selected as ready yet can never start.","","To fix: rewrite the unit so the cross-unit ordering lives in `depends_on:` and `inputs:` references the producing unit's actual output file path(s). Use `haiku_unit_write` (which now rejects the unit-name shape at write time)."].join(` -`);try{fc(e,s,{title:`Unit ${p}: inputs reference unit names, not file paths`,body:m,origin:"agent",severity:"blocker",author:"engine:input-validator",authorType:"system",source_ref:h,triaged_at:new Date().toISOString(),targetUnit:p}),r.push(p),a.add(h)}catch{}}return{filed:r,skipped:i}}var ekt,dXn,nkt=v(()=>{"use strict";ekt=_e(sn(),1);ze();hc();dXn=/^unit-\d+-/});import{randomBytes as fXn}from"node:crypto";import{existsSync as rkt,readFileSync as pXn,unlinkSync as hXn,writeFileSync as mXn}from"node:fs";import{join as gXn}from"node:path";function ikt(e,t){let n=t??we();return gXn(n,"intents",e,".verifier-nonces.json")}function fEe(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function pEe(e){let t=ikt(e);if(!rkt(t))return{};try{let n=pXn(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function hEe(e,t){let n=ikt(e);if(Object.keys(t).length===0){if(rkt(n))try{hXn(n)}catch{}return}mXn(n,`${JSON.stringify(t,null,2)} -`)}function g6(e,t){let n=pEe(e.slug),r=fEe(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=fXn(16).toString("hex");return n[r]={nonce:s,tied_to:t},hEe(e.slug,n),s}function ux(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=pEe(e.slug),r=fEe(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],hEe(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function mEe(e){let t=pEe(e.slug),n=fEe(e);t[n]&&(delete t[n],hEe(e.slug,t))}var lx=v(()=>{"use strict";ze()});import{existsSync as akt,readFileSync as ckt}from"node:fs";import{join as ukt}from"node:path";function yEe(e,t){let n;try{n=fe(e)}catch{return null}let r=ukt(n,"intent.md");if(!akt(r))return null;let i=yS(),s=Number(i.split(".")[0]??"0"),o=skt(r);if(s>=4){let f=typeof o.plugin_version=="string"?o.plugin_version:"0",p=Number(f.split(".")[0]??"0")||0,h=p===s&&kK(n);if(p>s)Qe("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){Cye(`haiku: migrate ${e} to ${m}${h?" (v3-cruft cleanup)":""}`);let E=g.details,S=[];if(h?S.push(`Re-migrated intent '${e}' to '${m}' \u2014 v3-shape frontmatter survived a merge into the otherwise-migrated tree (likely a stage merge into intent main from a pre-migration branch). The migrator is idempotent on already-v4 files; the v3 cruft has been cleaned up.`):S.push(`Migrated intent '${e}' from plugin_version='${f}' to '${m}'.`),S.push(""),S.push("**What changed on disk** (this is intentional):"),E.intent_md_migrated&&S.push("- `intent.md` frontmatter rewritten \u2014 deprecated v3 fields stripped, v4 schema applied"),E.units_migrated>0){let _=E.units_with_synthesized_approval>0?` (${E.units_with_synthesized_approval} had \`status: completed\` \u2192 backfilled \`reviews..at\` and \`approvals..at\` stamps so the cursor treats them as fully done \u2014 without these stamps the cursor would re-emit per-role review/approval actions on every tick. Discovery is NOT backfilled: the cursor reads the artifact on disk, and v3 already wrote it.)`:"";S.push(`- ${E.units_migrated} unit file(s) migrated${_}`)}if(E.feedback_migrated>0){let _=E.feedback_with_synthesized_closure>0?`; ${E.feedback_with_synthesized_closure} had a terminal v3 status \u2192 synthesized \`closed_at\``:"",b=E.feedback_relocated>0?`; ${E.feedback_relocated} relocated to their upstream stage (v4 routes feedback by file location, not by frontmatter hint)`:"";S.push(`- ${E.feedback_migrated} feedback file(s) migrated${_}${b}`)}return E.state_json_deleted>0&&S.push(`- ${E.state_json_deleted} stage \`state.json\` file(s) deleted \u2014 v4 derives stage position from disk (unit files on intent main in git mode, per-unit signature state in fs mode), not from state.json`),E.drift_artifacts_deleted>0&&S.push(`- ${E.drift_artifacts_deleted} drift artifact(s) deleted (\`baseline.json\` / \`drift-markers.json\` / \`baseline-content/\`) \u2014 v4 uses \`body_sha256\` stamped on each signed slot's frontmatter, no separate baseline manifest needed`),S.push(""),S.push("**What was preserved**:"),S.push("- Intent: title, description, mode, studio, started_at, follows"),S.push("- Units: title, body, inputs, outputs, depends_on, quality_gates, model, started_at, **iterations[]** (the bolt/hat history)"),S.push("- Feedback: title, body, origin, author, source_ref, attachment, **iterations[]**, **replies[]**"),S.push(""),S.push("**What v4 derives instead of stores**:"),S.push("- Active stage: derived by walking intent main's filesystem (`findCurrentStage` reads per-stage unit FM)"),S.push("- Current phase: decided per-tick by the cursor walk"),S.push("- Unit progress: read from `iterations[]` (the last entry's `result` and `hat`)"),S.push(""),S.push(`If anything looks broken, run \`haiku_run_next { intent: "${e}" }\` again \u2014 the cursor will pick up where v3 left off. The downgrade-or-redrive advice you might be tempted to give the user is wrong: the data is intact in the new shape.`),Pv(e,{position:{track:"intent",action:null},action:{action:"migrated",intent:e,message:S.join(` -`)}})}}catch(g){return Qe("haiku.migrate.failed",{intent:e,from:f,to:m,error:String(g?.message??g)}),Pv(e,{position:{track:"intent",action:{kind:"intent_review",role:"spec"}},action:{action:"error",intent:e,message:`Migration from plugin_version='${f}' to '${m}' failed: ${String(g?.message??g)}. Resolve manually before continuing.`}})}}}qwt(n),Oyt();let a=o.studio||"";if(!a)return Pv(e,{position:{track:"intent",action:null},action:{action:"select_studio",intent:e,message:`Intent '${e}' has no studio.`}});let c=o.mode||"";if(!c)return Pv(e,{position:{track:"intent",action:null},action:{action:"select_mode",intent:e,message:`Intent '${e}' has no mode.`}});let u=Array.isArray(o.stages)?o.stages:[];if(c==="quick"&&u.length===0)return Pv(e,{position:{track:"intent",action:null},action:{action:"select_stage",intent:e,message:`Intent '${e}' is in quick mode with no stage selected.`}});try{let f=Wwt(n,a,c);f.stagesRepaired.length>0&&Qe("haiku.self_repair.applied",{intent:e,stages_repaired:f.stagesRepaired.join(","),units_touched:String(f.unitsTouched),reviews_added:String(f.reviewsAdded),approvals_added:String(f.approvalsAdded)})}catch(f){Qe("haiku.self_repair.failed",{intent:e,error:String(f?.message??f)})}try{let f=Jwt(e,a);f.reset.length>0&&Qe("haiku.unit_recovery.reset",{intent:e,units:f.reset.join(",")})}catch(f){Qe("haiku.unit_recovery.failed",{intent:e,error:String(f?.message??f)})}try{let f=Xwt(e,a);f.cleared.length>0&&Qe("haiku.unit_recovery.lease_cleared",{intent:e,units:f.cleared.join(",")})}catch(f){Qe("haiku.unit_recovery.failed",{intent:e,error:String(f?.message??f)})}try{let f=Lwt(e);f.reconciled.length>0&&Qe("haiku.hat_sequence.reconciled",{intent:e,units:f.reconciled.join(",")})}catch(f){Qe("haiku.hat_sequence.reconcile_failed",{intent:e,error:String(f?.message??f)})}try{let f=tkt(e,n,a);f.filed.length>0&&Qe("haiku.input_validation.feedback_filed",{intent:e,units:f.filed.join(",")})}catch(f){Qe("haiku.input_validation.failed",{intent:e,error:String(f?.message??f)})}try{let f=Pwt(e,a);if(f.action)return Pv(e,{position:{track:"feedback",action:null},action:f.action})}catch(f){Qe("haiku.fix_chain_merge.failed",{intent:e,error:String(f?.message??f)})}let l=Zf({slug:e,intentDir:n,studio:a}),d=l.action?yXn(e,l.action):null;return Pv(e,{position:l,action:d})}function lkt(e,t){let n=yEe(e,t);return n?n.action?n.action:{action:"noop",intent:e,message:"Mid-wave noop. In-flight subagents are still working \u2014 wait for them to terminate, then retick."}:{action:"error",message:`Intent '${e}' not found`}}function skt(e){let t=ckt(e,"utf8");return(0,gEe.default)(t).data}function yXn(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=SXn(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function SXn(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=okt(e,t.stage);n.verify_conversation=g6({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=g6({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=okt(e,t.stage);n.verify_decompose=g6({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function okt(e,t){let n=ukt(fe(e),"stages",t,"elaboration.md");if(!akt(n))return null;try{let r=ckt(n,"utf8"),s=(0,gEe.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Pv(e,t){let n=Iwt(e,t.action),r=t;if(n!==null){let i=xwt(e,n);r={position:t.position,action:i}}return r.action&&Bd(e,{type:"tick_committed",action:r.action.action??"unknown"}),kwt(e,r.action),Swt(e,r.position.action),r}var gEe,SEe=v(()=>{"use strict";gEe=_e(sn(),1);X0();ze();Ko();ab();lg();IK();uwt();lwt();dwt();fwt();mwt();cEe();UL();IK();hc();Owt();Cwt();Uwt();Bwt();Kwt();Qwt();nkt();lx()});function Bg(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}var ns=v(()=>{"use strict"});function Xn(e,t){return`${_Xn} ${e} +4. Once the underlying state has changed, the next \`haiku_run_next\` tick will surface a different action and the loop guard will reset.`;return{action:"loop_halted",intent:e,message:i,loop:t.kind}}var mx,mQn,lkt,yQn,D_e,ckt,fkt,SQn,ukt,pkt,_Qn,Ekt=v(()=>{"use strict";Tl();vo();mx=new Map,mQn=new Set,lkt=".deadlock-history.json";yQn=2,D_e=10,ckt=4,fkt=2,SQn=4,ukt=8,pkt=3600*1e3;_Qn=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as U_e,readdirSync as TQn,readFileSync as _kt}from"node:fs";function bkt(e,t){if(!Ae())return{action:null};let n=[];try{let o=`${pe(e)}/intent.md`;if(!U_e(o))return{action:null};let a=re(_kt(o,"utf8")).data,c=[...wn(a,t),""];for(let u of c){let l=u||"intent",d=lo(e,u);if(U_e(d))for(let f of TQn(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(_kt(`${d}/${f}`,"utf8")).data}catch{continue}if(ep(p)!=="closed")continue;let h=Number.parseInt(f.match(/^(\d+)/)?.[1]??"",10);if(!Number.isFinite(h)||h<=0)continue;let m=qd(h),g=yg(e,l,m);if(!U_e(g))continue;let y=FE(e,l,()=>jD(e,l,m));y.success||n.push({feedbackId:m,scope:l,worktree:g,conflictFiles:y.conflictFiles??[]})}}}catch{return{action:null}}if(n.length===0)return{action:null};let r=n.map(s=>s.feedbackId).join(", "),i=n[0].scope;return{action:{action:"integrate_fix_chains",intent:e,scope:i,items:n.map(s=>({feedback_id:s.feedbackId})),message:`${n.length} fix-chain merge(s) still have unresolved conflicts: ${r}. `+n.map(s=>`For ${s.feedbackId}: resolve the conflicted file(s) in ${s.worktree} (${s.conflictFiles.join(", ")||"see git status"}), \`git add\` them, \`git commit\` to complete the in-worktree merge.`).join(" ")+` Then call \`haiku_run_next { intent: "${e}" }\` \u2014 the engine forward-merges each resolved chain into its base branch on the next tick.`}}}var Tkt=v(()=>{"use strict";yr();j0();ze();ns()});import{existsSync as vkt,readdirSync as vQn,readFileSync as Akt,writeFileSync as AQn}from"node:fs";import{join as V1}from"node:path";function RQn(e,t){return new Set(_s(e,t).filter(n=>fE(e,t,n)!==null))}function wQn(e,t){return new Set(Sg(e,t).filter(n=>Dfe(e,t,n)!==null))}function kQn(e){let t=PD(e);return new Set(Uf(e).filter(n=>t[n]!=null))}function IQn(e,t){let n;try{n=(0,vZ.default)(Akt(e,"utf8"))}catch{return!1}let r=Array.isArray(n.data.iterations)?n.data.iterations:[];if(r.length===0)return!1;let i=a=>typeof a?.hat=="string"&&!t.has(a.hat);if(!r.some(i))return!1;let s=r.filter(a=>!i(a)),o=structuredClone(n.data);return o.iterations=s,AQn(e,vZ.default.stringify(n.content,o)),!0}function F_e(e,t,n,r){if(vkt(e))for(let i of vQn(e).filter(s=>s.endsWith(".md")))IQn(V1(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Rkt(e){let t=[],n=pe(e),r=V1(n,"intent.md");if(!vkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,vZ.default)(Akt(r,"utf8"));i=Array.isArray(o.stages)?o.stages:[],s=typeof o.studio=="string"?o.studio:""}catch{return{reconciled:t}}if(!s)return{reconciled:t};for(let o of i)F_e(V1(n,"stages",o,"units"),RQn(s,o),o,t),F_e(V1(n,"stages",o,"feedback"),wQn(s,o),`${o}/feedback`,t);return F_e(V1(n,"feedback"),kQn(s),"feedback",t),{reconciled:t}}var vZ,wkt=v(()=>{"use strict";vZ=Se(Kt(),1);ze();Kn();ns()});import{existsSync as xQn,readdirSync as kkt,readFileSync as Ikt,renameSync as OQn,rmSync as PQn,writeFileSync as NQn}from"node:fs";import{join as gx}from"node:path";function CQn(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function xkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!xQn(s))continue;let o;try{o=kkt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=CQn(d);if(f===null)continue;let p=c.get(f);p?p.push(d):c.set(f,[d])}let u=0;for(let d of c.keys())d>u&&(u=d);let l=d=>{try{let f=(0,AZ.default)(Ikt(gx(s,d),"utf8")).data;return typeof f.created_at=="string"?f.created_at:""}catch{return""}};for(let[,d]of c){if(d.length<2)continue;let p=[...d].sort((h,m)=>{let g=l(h),y=l(m);return g!==y?g{"use strict";AZ=Se(Kt(),1);ze()});import{existsSync as W1,readdirSync as DQn,rmSync as Pkt,statSync as Ckt}from"node:fs";import{join as RZ}from"node:path";function Nkt(e){if(W1(e))try{Ckt(e).isDirectory()?Pkt(e,{recursive:!0,force:!0}):Pkt(e,{force:!0})}catch{}}function Mkt(e){let t=0,n=new Set;for(let i of LQn){let s=RZ(e,i);W1(s)&&n.add(s),Nkt(s)}let r=RZ(e,"stages");if(W1(r)){let i=[];try{i=DQn(r)}catch{i=[]}for(let s of i){let o=RZ(r,s),a=!1;try{a=Ckt(o).isDirectory()}catch{continue}if(a)for(let c of UQn){let u=RZ(o,c);W1(u)&&n.add(u),Nkt(u)}}}for(let i of n)W1(i)||t++;return t}var LQn,UQn,Dkt=v(()=>{"use strict";LQn=["drift-markers.json"],UQn=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as Lv,readdirSync as wZ,readFileSync as Ukt,writeFileSync as FQn}from"node:fs";import{join as KE}from"node:path";function jQn(e){if(!Lv(e))return null;try{let t=Ukt(e,"utf8"),n=(0,kZ.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function HQn(e,t,n){FQn(e,kZ.default.stringify(n,t))}function qQn(e,t){let n=KE(e,"stages",t);if(!Lv(n))return!1;let r=KE(n,"units");if(Lv(r)&&wZ(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||Lv(KE(n,"elaboration.md")))return!0;let i=KE(n,"feedback");return!!(Lv(i)&&wZ(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||wZ(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function Fkt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function BQn(e,t){let n=Fkt(e);if(n.length===0)return!1;let r=n[n.length-1];return r.result!=="advance"?!1:t.length===0?!0:r.hat===t[t.length-1]}function jkt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=KE(e,"intent.md");if(!Lv(i))return r;let s={};try{s=(0,kZ.default)(Ukt(i,"utf8")).data}catch{return r}let o=wn(s,t);if(o.length<2)return r;for(let a=0;ab.isFile()&&b.name.endsWith(".md")).map(b=>KE(l,b.name));if(d.length===0)continue;let f=[];try{f=Object.keys(bl(t,c)).sort()}catch{f=[]}let p=n==="autopilot",h=p?["spec"]:["spec",...f,"user"],m=p?["spec","quality_gates"]:["spec","quality_gates",...f,"user"],g=GQn(t,c),y=[],E=!0;for(let b of d){let T=jQn(b);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:b}),E=!1;break}y.push({path:b,data:T.data,body:T.body}),BQn(T.data,g)||(E=!1)}if(!E)continue;let S=!1;for(let b=a+1;b0?R[R.length-1].completed_at:"",k=typeof x=="string"&&x.length>0?x:new Date().toISOString(),P=T.reviews&&typeof T.reviews=="object"?{...T.reviews}:{},N=T.approvals&&typeof T.approvals=="object"?{...T.approvals}:{},C=!1;for(let F of h)P[F]==null&&(P[F]={at:k,migrated:!0,synthesized_reason:Lkt},r.reviewsAdded++,C=!0);for(let F of m)N[F]==null&&(N[F]={at:k,migrated:!0,synthesized_reason:Lkt},r.approvalsAdded++,C=!0);C&&(T.reviews=P,T.approvals=N,HQn(b,T,A),r.unitsTouched++,_=!0)}_&&r.stagesRepaired.push(c)}return r}function GQn(e,t){try{return _s(e,t)||[]}catch{return[]}}var kZ,Lkt,Hkt=v(()=>{"use strict";kZ=Se(Kt(),1);Kn();vo();ns();Lkt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as IZ,readdirSync as qkt,readFileSync as Bkt}from"node:fs";import{join as xZ}from"node:path";function Gkt(e,t){let n=[];try{if(!epe())return{reset:n};let r=pe(e),i=ai(e,t,r);if(!i)return{reset:n};let s=xZ(r,"stages",i,"units");if(!IZ(s))return{reset:n};let o=_s(t,i),a=o[o.length-1]??"";for(let c of qkt(s).filter(u=>u.endsWith(".md"))){let u=xZ(s,c),l;try{l=re(Bkt(u,"utf8")).data}catch{continue}let d=typeof l.started_at=="string"&&l.started_at.length>0,f=Array.isArray(l.iterations)?l.iterations:[];if(!d||f.length===0)continue;let p=f[f.length-1];if(p&&p.result==="advance"&&p.hat===a)continue;let h=c.replace(/\.md$/,"");if(IZ(mE(e,h)))continue;let{local:m,remote:g}=$fe(e,h);m||g||(Array.isArray(l.outputs)?l.outputs.filter(E=>typeof E=="string"&&E.length>0):[]).some(E=>Vh(e,h,E))||(De(u,"iterations",[]),De(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function zkt(e,t){let n=[];try{let r=pe(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=xZ(r,"stages",i,"units");if(!IZ(s))return{cleared:n};let o=Ae(),a=Date.now();for(let c of qkt(s).filter(u=>u.endsWith(".md"))){let u=xZ(s,c),l;try{l=re(Bkt(u,"utf8")).data}catch{continue}let d=Array.isArray(l.iterations)?l.iterations:[];if(d.length===0)continue;let f=d[d.length-1];if(!f||f.result!==null)continue;let p=typeof f.dispatched_at=="string"?f.dispatched_at:"";if(!p)continue;let h=c.replace(/\.md$/,""),m=o&&!IZ(mE(e,h)),g=a-Date.parse(p),y=Number.isFinite(g)&&g>zQn;!m&&!y||(f.dispatched_at=null,De(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var zQn,Vkt=v(()=>{"use strict";yr();ze();ns();Oa();zQn=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as VQn,readdirSync as WQn,readFileSync as KQn,writeFileSync as YQn}from"node:fs";import{join as j_e}from"node:path";function Wkt(e,t){let n=[],r=[],i=[];for(let s of t){let o=j_e(ar(e,s),"units");if(!VQn(o))continue;let a=new Set;try{for(let u of Us(e,s)){let l=u.source_ref,d=u,f=typeof d.status=="string"?d.status:null;d.closed_at&&f!=="non_actionable"||f==="closed"||f==="rejected"||typeof l=="string"&&l.startsWith("missing-output:")&&a.add(l)}}catch{}let c;try{c=WQn(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,H_e.default)(KQn(j_e(o,u),"utf8"))}catch{continue}let f=Array.isArray(d.data.outputs)?d.data.outputs.filter(g=>typeof g=="string"):[];if(f.length===0)continue;let p=[],h=[],m=!1;for(let g of f){if(Vh(e,l,g)){p.push(g);continue}let y=c5(e,l,g);y?(p.push(y),n.push({unit:l,from:g,to:y}),m=!0):(p.push(g),h.push(g))}if(m)try{YQn(j_e(o,u),H_e.default.stringify(d.content,{...d.data,outputs:p}))}catch{}for(let g of h){let y=`missing-output:${l}:${g}`;if(a.has(y)){i.push(`${l}:${g}`);continue}let E=[`Unit \`${l}\` declares an output that is not on disk:`,"",` - \`${g}\``,"","The intent is at closeout and this declared deliverable can't be found at the path the unit recorded. No same-name file with a different extension exists either, so it wasn't auto-repairable (an extension typo like `.test.ts` \u2192 `.test.tsx` self-corrects silently).","","To fix: EITHER correct the `outputs:` entry to the file's real path (if it was renamed/moved after this unit completed \u2014 e.g. a later unit or fix-loop changed it), OR produce the missing file. The fix-loop should land the actual change; a corrected declaration alone is only right when the file genuinely exists under a different name."].join(` +`);try{Qo(e,s,{title:`Unit ${l}: declared output not on disk (${g})`,body:E,origin:"agent",severity:"high",author:"engine:output-validator",authorType:"system",source_ref:y,triaged_at:new Date().toISOString(),targetUnit:l}),r.push(`${l}:${g}`),a.add(y)}catch{}}}}return{repaired:n,filed:r,skipped:i}}var H_e,Kkt=v(()=>{"use strict";H_e=Se(Kt(),1);ze()});import{existsSync as ZQn,readdirSync as JQn,readFileSync as XQn}from"node:fs";import{join as Ykt}from"node:path";function Jkt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=Ykt(ar(e,s),"units");if(!ZQn(o))return{filed:r,skipped:i};let a=new Set;try{for(let u of Us(e,s)){let l=u.source_ref,d=u;d.closed_at||typeof d.status=="string"&&d.status==="closed"||typeof d.status=="string"&&d.status==="rejected"||typeof l=="string"&&l.startsWith("malformed-inputs:")&&a.add(l)}}catch{}let c;try{c=JQn(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,Zkt.default)(XQn(Ykt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(g=>typeof g=="string"&&QQn.test(g.trim()));if(f.length===0)continue;let p=u.replace(/\.md$/,""),h=`malformed-inputs:${p}`;if(a.has(h)){i.push(p);continue}let m=[`Unit \`${p}\` declares \`inputs:\` entries that are unit NAMES, not file paths:`,"",...f.map(g=>` - \`${g}\``),"","`inputs:` must list file PATHS the unit reads (e.g. `product/ACCEPTANCE-CRITERIA.md`, a prior-stage artifact, or a producing unit's declared output file). A unit name is not a path the engine can read \u2014 `haiku_unit_start` rejects it as `unit_inputs_missing`, and because the cursor's wave-ready filter gates on `depends_on` (not `inputs`), the unit is selected as ready yet can never start.","","To fix: rewrite the unit so the cross-unit ordering lives in `depends_on:` and `inputs:` references the producing unit's actual output file path(s). Use `haiku_unit_write` (which now rejects the unit-name shape at write time)."].join(` +`);try{Qo(e,s,{title:`Unit ${p}: inputs reference unit names, not file paths`,body:m,origin:"agent",severity:"blocker",author:"engine:input-validator",authorType:"system",source_ref:h,triaged_at:new Date().toISOString(),targetUnit:p}),r.push(p),a.add(h)}catch{}}return{filed:r,skipped:i}}var Zkt,QQn,Xkt=v(()=>{"use strict";Zkt=Se(Kt(),1);ze();Oa();QQn=/^unit-\d+-/});import{randomBytes as $Qn}from"node:crypto";import{existsSync as Qkt,readFileSync as e$n,unlinkSync as t$n,writeFileSync as n$n}from"node:fs";import{join as r$n}from"node:path";function $kt(e,t){let n=t??ve();return r$n(n,"intents",e,".verifier-nonces.json")}function q_e(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function B_e(e){let t=$kt(e);if(!Qkt(t))return{};try{let n=e$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function G_e(e,t){let n=$kt(e);if(Object.keys(t).length===0){if(Qkt(n))try{t$n(n)}catch{}return}n$n(n,`${JSON.stringify(t,null,2)} +`)}function OZ(e,t){let n=B_e(e.slug),r=q_e(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=$Qn(16).toString("hex");return n[r]={nonce:s,tied_to:t},G_e(e.slug,n),s}function yx(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=B_e(e.slug),r=q_e(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],G_e(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function z_e(e){let t=B_e(e.slug),n=q_e(e);t[n]&&(delete t[n],G_e(e.slug,t))}var Sx=v(()=>{"use strict";ze()});import{existsSync as nIt,readFileSync as rIt}from"node:fs";import{join as iIt}from"node:path";function W_e(e,t){let n;try{n=pe(e)}catch{return null}let r=iIt(n,"intent.md");if(!nIt(r))return null;let i=bS(),s=Number(i.split(".")[0]??"0"),o=eIt(r);if(s>=4){let f=typeof o.plugin_version=="string"?o.plugin_version:"0",p=Number(f.split(".")[0]??"0")||0,h=p===s&&qK(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){eSe(`haiku: migrate ${e} to ${m}${h?" (v3-cruft cleanup)":""}`);let E=y.details,S=[];if(h?S.push(`Re-migrated intent '${e}' to '${m}' \u2014 v3-shape frontmatter survived a merge into the otherwise-migrated tree (likely a stage merge into intent main from a pre-migration branch). The migrator is idempotent on already-v4 files; the v3 cruft has been cleaned up.`):S.push(`Migrated intent '${e}' from plugin_version='${f}' to '${m}'.`),S.push(""),S.push("**What changed on disk** (this is intentional):"),E.intent_md_migrated&&S.push("- `intent.md` frontmatter rewritten \u2014 deprecated v3 fields stripped, v4 schema applied"),E.units_migrated>0){let _=E.units_with_synthesized_approval>0?` (${E.units_with_synthesized_approval} had \`status: completed\` \u2192 backfilled \`reviews..at\` and \`approvals..at\` stamps so the cursor treats them as fully done \u2014 without these stamps the cursor would re-emit per-role review/approval actions on every tick. Discovery is NOT backfilled: the cursor reads the artifact on disk, and v3 already wrote it.)`:"";S.push(`- ${E.units_migrated} unit file(s) migrated${_}`)}if(E.feedback_migrated>0){let _=E.feedback_with_synthesized_closure>0?`; ${E.feedback_with_synthesized_closure} had a terminal v3 status \u2192 synthesized \`closed_at\``:"",b=E.feedback_relocated>0?`; ${E.feedback_relocated} relocated to their upstream stage (v4 routes feedback by file location, not by frontmatter hint)`:"";S.push(`- ${E.feedback_migrated} feedback file(s) migrated${_}${b}`)}return E.state_json_deleted>0&&S.push(`- ${E.state_json_deleted} stage \`state.json\` file(s) deleted \u2014 v4 derives stage position from disk (unit files on intent main in git mode, per-unit signature state in fs mode), not from state.json`),E.drift_artifacts_deleted>0&&S.push(`- ${E.drift_artifacts_deleted} drift artifact(s) deleted (\`baseline.json\` / \`drift-markers.json\` / \`baseline-content/\`) \u2014 v4 uses \`body_sha256\` stamped on each signed slot's frontmatter, no separate baseline manifest needed`),S.push(""),S.push("**What was preserved**:"),S.push("- Intent: title, description, mode, studio, started_at, follows"),S.push("- Units: title, body, inputs, outputs, depends_on, quality_gates, model, started_at, **iterations[]** (the bolt/hat history)"),S.push("- Feedback: title, body, origin, author, source_ref, attachment, **iterations[]**, **replies[]**"),S.push(""),S.push("**What v4 derives instead of stores**:"),S.push("- Active stage: derived by walking intent main's filesystem (`findCurrentStage` reads per-stage unit FM)"),S.push("- Current phase: decided per-tick by the cursor walk"),S.push("- Unit progress: read from `iterations[]` (the last entry's `result` and `hat`)"),S.push(""),S.push(`If anything looks broken, run \`haiku_run_next { intent: "${e}" }\` again \u2014 the cursor will pick up where v3 left off. The downgrade-or-redrive advice you might be tempted to give the user is wrong: the data is intact in the new shape.`),Uv(e,{position:{track:"intent",action:null},action:{action:"migrated",intent:e,message:S.join(` +`)}})}}catch(y){return Ke("haiku.migrate.failed",{intent:e,from:f,to:m,error:String(y?.message??y)}),Uv(e,{position:{track:"intent",action:{kind:"intent_review",role:"spec"}},action:{action:"error",intent:e,message:`Migration from plugin_version='${f}' to '${m}' failed: ${String(y?.message??y)}. Resolve manually before continuing.`}})}}}Mkt(n),cSt(),Qbt();let a=o.studio||"";if(!a)return Uv(e,{position:{track:"intent",action:null},action:{action:"select_studio",intent:e,message:`Intent '${e}' has no studio.`}});let c=o.mode||"";if(!c)return Uv(e,{position:{track:"intent",action:null},action:{action:"select_mode",intent:e,message:`Intent '${e}' has no mode.`}});let u=Array.isArray(o.stages)?o.stages:[];if(c==="quick"&&u.length===0)return Uv(e,{position:{track:"intent",action:null},action:{action:"select_stage",intent:e,message:`Intent '${e}' is in quick mode with no stage selected.`}});try{let f=jkt(n,a,c);f.stagesRepaired.length>0&&Ke("haiku.self_repair.applied",{intent:e,stages_repaired:f.stagesRepaired.join(","),units_touched:String(f.unitsTouched),reviews_added:String(f.reviewsAdded),approvals_added:String(f.approvalsAdded)})}catch(f){Ke("haiku.self_repair.failed",{intent:e,error:String(f?.message??f)})}try{let f=Gkt(e,a);f.reset.length>0&&Ke("haiku.unit_recovery.reset",{intent:e,units:f.reset.join(",")})}catch(f){Ke("haiku.unit_recovery.failed",{intent:e,error:String(f?.message??f)})}try{let f=zkt(e,a);f.cleared.length>0&&Ke("haiku.unit_recovery.lease_cleared",{intent:e,units:f.cleared.join(",")})}catch(f){Ke("haiku.unit_recovery.failed",{intent:e,error:String(f?.message??f)})}try{let f=Rkt(e);f.reconciled.length>0&&Ke("haiku.hat_sequence.reconciled",{intent:e,units:f.reconciled.join(",")})}catch(f){Ke("haiku.hat_sequence.reconcile_failed",{intent:e,error:String(f?.message??f)})}try{let f=xkt(e,wn(o,a));f.renamed.length>0&&Ke("haiku.feedback.id_heal",{intent:e,renamed:String(f.renamed.length)})}catch(f){Ke("haiku.feedback.id_heal.failed",{intent:e,error:String(f?.message??f)})}try{let f=Jkt(e,n,a);f.filed.length>0&&Ke("haiku.input_validation.feedback_filed",{intent:e,units:f.filed.join(",")})}catch(f){Ke("haiku.input_validation.failed",{intent:e,error:String(f?.message??f)})}try{if(ai(e,a,n)===null){let f=wn(o,a),p=Wkt(e,f);(p.repaired.length>0||p.filed.length>0)&&Ke("haiku.output_validation.closeout_sweep",{intent:e,repaired:String(p.repaired.length),filed:String(p.filed.length)})}}catch(f){Ke("haiku.output_validation.failed",{intent:e,error:String(f?.message??f)})}try{let f=bkt(e,a);if(f.action)return Uv(e,{position:{track:"feedback",action:null},action:f.action})}catch(f){Ke("haiku.fix_chain_merge.failed",{intent:e,error:String(f?.message??f)})}let l=Xf({slug:e,intentDir:n,studio:a}),d=l.action?i$n(e,l.action):null;return Uv(e,{position:l,action:d})}function sIt(e,t){let n=W_e(e,t);return n?n.action?n.action:{action:"noop",intent:e,message:"Mid-wave noop. In-flight subagents are still working \u2014 wait for them to terminate, then retick."}:{action:"error",message:`Intent '${e}' not found`}}function eIt(e){let t=rIt(e,"utf8");return(0,V_e.default)(t).data}function i$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=s$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function s$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=tIt(e,t.stage);n.verify_conversation=OZ({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=OZ({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=tIt(e,t.stage);n.verify_decompose=OZ({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function tIt(e,t){let n=iIt(pe(e),"stages",t,"elaboration.md");if(!nIt(n))return null;try{let r=rIt(n,"utf8"),s=(0,V_e.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function Uv(e,t){let n=ykt(e,t.action),r=t;if(n!==null){let i=Skt(e,n);r={position:t.position,action:i}}return r.action&&zd(e,{type:"tick_committed",action:r.action.action??"unknown"}),mkt(e,r.action),okt(e,r.position.action),r}var V_e,K_e=v(()=>{"use strict";V_e=Se(Kt(),1);rx();ze();vo();db();Ph();BK();Jwt();Xwt();Qwt();$wt();nkt();rkt();I1();M_e();YL();BK();ns();Oa();Ekt();Tkt();wkt();Okt();Dkt();Hkt();Vkt();Kkt();Xkt();Sx()});function Vg(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}var Gi=v(()=>{"use strict"});function zn(e,t){return`${o$n} ${e} -${t}`}var _Xn,dx=v(()=>{"use strict";_Xn="**ANNOUNCE TO USER (post in chat now):**"});function dkt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function fkt(e){return e.includes("lost presence")}function pkt(e,t,n){if(e)return e;let r=n?`gate_review_url_${n}`:"";return r&&typeof t[r]=="string"?t[r]:typeof t.gate_review_url=="string"?t.gate_review_url:""}function hkt(e){return{content:[{type:"text",text:`Still waiting on the gate review for "${e}". The wait window expired without a decision \u2014 this is normal for long review windows. Call haiku_await_gate { intent: "${e}" } again to keep waiting (the session and review URL are unchanged); or haiku_run_next { intent: "${e}" } if you suspect the session was lost.`}],isError:!1}}var mkt=v(()=>{"use strict"});function be(e){return{content:[{type:"text",text:e}]}}var Ls=v(()=>{"use strict"});function EXn(e,t){let n=e;if(!t.subagents.supported)return n=n.replace(/Spawn one `Task` subagent per artifact\b[^.]*\./g,"Execute each artifact task sequentially \u2014 complete one before starting the next."),n=n.replace(/Spawn a subagent for the "([^"]+)" hat\./g,'Execute the "$1" hat task directly.'),n=n.replace(/spawn one Agent subagent per unit \*\*in a single message\*\*/g,"execute each unit sequentially"),n=n.replace(/Spawn one subagent per review agent \(in parallel\)/g,"Execute each review agent check sequentially"),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time."),n=n.replace(/\*\*IMMEDIATELY\*\* spawn one Agent subagent per unit \*\*in a single message\*\*[^.]*\./g,"**IMMEDIATELY** start executing units one at a time. No questions, no confirmation, no menu."),n=n.replace(/Agent type: `[^`]+`\n?/g,""),n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\./g,""),n=n.replace(/\bsubagent\b/g,"task"),n=n.replace(/\bSubagent\b/g,"Task"),n;let r=t.subagents.toolNames[0]||"Agent";return r!=="Agent"&&(n=n.replace(/`Agent`/g,`\`${r}\``),n=n.replace(/one Agent subagent/g,`one \`${r}\` call`),n=n.replace(/Agent tool calls/g,`\`${r}\` calls`),n=n.replace(/Agent tool's `model:`/g,`\`${r}\` tool's model`),n=n.replace(/tool="Agent"/g,`tool="${r}"`)),r!=="Task"&&(n=n.replace(/`Task` subagent/g,`\`${r}\``),n=n.replace(/tool="Task"/g,`tool="${r}"`)),t.hooks||(n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\. /g,"")),t.subagents.parallelSpawn||(n=n.replace(/\*\*in a single message\*\* \(all [^)]+\)/g,""),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time.")),n}function bXn(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>wP(r))}function TXn(e,t){if(t.nativeAskUser)return e;let n=e;return n=n.replace(/`AskUserQuestion`\s*with\s*(an\s*)?`options\[\]`\s*array/g,"a numbered list of options"),n=n.replace(/\| Scope decisions, tradeoffs, A\/B\/C choices \| `AskUserQuestion` with options\[\] \|[^\n]*/g,"| Scope decisions, tradeoffs, A/B/C choices | Present a numbered list of options |"),n=n.replace(/Use `AskUserQuestion`\b/g,"Present options to the user"),n=n.replace(/`AskUserQuestion`/g,"a structured question with options"),n=n.replace(/\*\*Good:\*\* `AskUserQuestion\(\{[^}]+\}\)`/g,'**Good:** Presenting clear numbered options like "1. OAuth 2.0 + PKCE, 2. Magic link, 3. SSO via SAML, 4. Other"'),n}function vXn(e,t){if(t.modelProvider==="anthropic")return e;let n=e;for(let[r,i]of Object.entries(t.modelTierMap))r!==i&&(n=n.replace(new RegExp(`model: "${r}"`,"g"),`model: "${i}"`));return n}function AXn(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function RXn(e,t){if(t.hooks)return e;let n=e;return n=n.replace(/via the `subagent-context` hook/g,"automatically"),n=n.replace(/`subagent-context` hook/g,"context injection"),n}function y6(e){let t=Ni();if(eh())return e;let n=e;return n=EXn(n,t),n=bXn(n,t),n=TXn(n,t),n=vXn(n,t),n=AXn(n,t),n=RXn(n,t),n}var _Ee=v(()=>{"use strict";yf()});function gkt(e,t,n){fx(n);let r=P1(e,t,n,fe(e)),i=y6(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} +${t}`}var o$n,Fv=v(()=>{"use strict";o$n="**ANNOUNCE TO USER (post in chat now):**"});function oIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function aIt(e){return e.includes("lost presence")}function cIt(e,t,n){if(e)return e;let r=n?`gate_review_url_${n}`:"";return r&&typeof t[r]=="string"?t[r]:typeof t.gate_review_url=="string"?t.gate_review_url:""}function uIt(e){return{content:[{type:"text",text:`Still waiting on the gate review for "${e}". The wait window expired without a decision \u2014 this is normal for long review windows. Call haiku_await_gate { intent: "${e}" } again to keep waiting (the session and review URL are unchanged); or haiku_run_next { intent: "${e}" } if you suspect the session was lost.`}],isError:!1}}var lIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function a$n(e,t){let n=e;if(!t.subagents.supported)return n=n.replace(/Spawn one `Task` subagent per artifact\b[^.]*\./g,"Execute each artifact task sequentially \u2014 complete one before starting the next."),n=n.replace(/Spawn a subagent for the "([^"]+)" hat\./g,'Execute the "$1" hat task directly.'),n=n.replace(/spawn one Agent subagent per unit \*\*in a single message\*\*/g,"execute each unit sequentially"),n=n.replace(/Spawn one subagent per review agent \(in parallel\)/g,"Execute each review agent check sequentially"),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time."),n=n.replace(/\*\*IMMEDIATELY\*\* spawn one Agent subagent per unit \*\*in a single message\*\*[^.]*\./g,"**IMMEDIATELY** start executing units one at a time. No questions, no confirmation, no menu."),n=n.replace(/Agent type: `[^`]+`\n?/g,""),n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\./g,""),n=n.replace(/\bsubagent\b/g,"task"),n=n.replace(/\bSubagent\b/g,"Task"),n;let r=t.subagents.toolNames[0]||"Agent";return r!=="Agent"&&(n=n.replace(/`Agent`/g,`\`${r}\``),n=n.replace(/one Agent subagent/g,`one \`${r}\` call`),n=n.replace(/Agent tool calls/g,`\`${r}\` calls`),n=n.replace(/Agent tool's `model:`/g,`\`${r}\` tool's model`),n=n.replace(/tool="Agent"/g,`tool="${r}"`)),r!=="Task"&&(n=n.replace(/`Task` subagent/g,`\`${r}\``),n=n.replace(/tool="Task"/g,`tool="${r}"`)),t.hooks||(n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\. /g,"")),t.subagents.parallelSpawn||(n=n.replace(/\*\*in a single message\*\* \(all [^)]+\)/g,""),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time.")),n}function c$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>MN(r))}function u$n(e,t){if(t.nativeAskUser)return e;let n=e;return n=n.replace(/`AskUserQuestion`\s*with\s*(an\s*)?`options\[\]`\s*array/g,"a numbered list of options"),n=n.replace(/\| Scope decisions, tradeoffs, A\/B\/C choices \| `AskUserQuestion` with options\[\] \|[^\n]*/g,"| Scope decisions, tradeoffs, A/B/C choices | Present a numbered list of options |"),n=n.replace(/Use `AskUserQuestion`\b/g,"Present options to the user"),n=n.replace(/`AskUserQuestion`/g,"a structured question with options"),n=n.replace(/\*\*Good:\*\* `AskUserQuestion\(\{[^}]+\}\)`/g,'**Good:** Presenting clear numbered options like "1. OAuth 2.0 + PKCE, 2. Magic link, 3. SSO via SAML, 4. Other"'),n}function l$n(e,t){if(t.modelProvider==="anthropic")return e;let n=e;for(let[r,i]of Object.entries(t.modelTierMap))r!==i&&(n=n.replace(new RegExp(`model: "${r}"`,"g"),`model: "${i}"`));return n}function d$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function f$n(e,t){if(t.hooks)return e;let n=e;return n=n.replace(/via the `subagent-context` hook/g,"automatically"),n=n.replace(/`subagent-context` hook/g,"context injection"),n}function PZ(e){let t=Mi();if(sh())return e;let n=e;return n=a$n(n,t),n=c$n(n,t),n=u$n(n,t),n=l$n(n,t),n=d$n(n,t),n=f$n(n,t),n}var Y_e=v(()=>{"use strict";Ef()});function dIt(e,t,n){Ex(n);let r=K1(e,t,n,pe(e)),i=PZ(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} --- -${i}`}var ykt=v(()=>{"use strict";_Ee();Gd();ze()});import{existsSync as Skt,mkdirSync as wXn,readdirSync as kXn,readFileSync as IXn,writeFileSync as xXn}from"node:fs";import{join as zd}from"node:path";function M1(e){if(!Skt(e))return{};let t=IXn(e,"utf8"),{data:n}=re(t);return n}function C1(e,t,n){let r=fe(e),i=zd(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=M1(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Il(i),je(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=zd(r,"stages",n,"units");if(!Skt(a))return;let c=kXn(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=zd(a,u),d=M1(l),f=d[o]&&typeof d[o]=="object"?d[o]:{};if(s){let p=Array.isArray(d.inputs)?d.inputs:[];f.user=Il(l,{intentDir:r,unitInputs:p})}else f.user=jd();je(l,o,f)}}var OXn,_kt,Ekt=v(()=>{"use strict";Tr();Wf();Gd();$p();zL();Hu();es();vo();CZ();ze();ns();dx();mkt();Ls();ykt();OXn=(e,t)=>{};_kt={name:"haiku_await_gate",description:"Resume / recovery entry point for a pending gate-review session. Under v4 the canonical flow blocks INSIDE haiku_run_next \u2014 the engine prepares the session, opens the browser best-effort, awaits the user's decision, and returns the post-decision action all in one tool call. Use haiku_await_gate only when the original tick timed out, the MCP host disconnected, or the agent restart lost the in-memory blocking call. The live review session is resolved from the in-memory registry keyed by intent slug, NOT a repo-persisted pointer (a page refresh reconnects the same logical session; pass session_id to target a specific one). Returns the same post-decision action shape (advance_stage / advance_phase / changes_requested / external_review_requested / intent_complete / etc.).",inputSchema:i0,async handle(e,t){let n=qe(e,Eme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=zd(fe(i),"intent.md"),a=M1(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(hc(),T0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=NL(i),h=l?`gate_review_session_${l}`:"",m=h?a[h]??"":"",y=a.gate_review_session_id||"",g=f&&y||m,E=r.session_id||p?.session_id||g;if(!E){if(!l&&!f)return be(`No active stage on intent '${i}' and no pending intent-scope gate \u2014 nothing to await. Call haiku_run_next first.`);let P=l?`stage '${l}'`:"intent scope";return be(`No live gate-review session for intent '${i}' (${P}). Call haiku_run_next to (re)open the gate \u2014 it re-derives the gate from the cursor and reattaches the live session.`)}let S=l,_=r.next_stage!==void 0?r.next_stage:a.gate_review_next_stage??null,b=r.next_phase!==void 0?r.next_phase:a.gate_review_next_phase??null,T=r.gate_context||a.gate_review_context||"stage_gate",A=`.haiku/intents/${i}`,R=EEe();if(!R)return be("Gate-review await handler not registered \u2014 server.ts wiring is broken. File a bug.");let k=r.review_url,x=r.auto_open!==!1;s&&ts(s,{event:"haiku_await_gate_entered",intent:i,stage:S,session_id:E,auto_open:x});let N=P=>gkt(i,c,P);try{let P=f?["gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase"]:l?[`gate_review_session_${l}`,`gate_review_url_${l}`,"gate_review_context","gate_review_next_stage","gate_review_next_phase"]:[];P.length>0&&qh(o,P)}catch{}try{let P=await R(E,{autoOpen:x,reviewUrl:k,timeoutMs:144e5,signal:t}),D=mr(i,S);if(!D.ok)return G_(i,S,D,"after review wait");if(s&&ts(s,{event:"gate_decision",intent:i,stage:S,decision:P.decision,feedback:P.feedback}),P.decision==="advance")return Yr(i,s),be(N({action:"advance",intent:i,stage:S,message:Xn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(P.decision==="approved"){if(T==="intent_completion"){let U=M1(zd(fe(i),"intent.md")).studio||"",M=L1(i,U);if(M.length>0)return be(N({action:"error",intent:i,message:`Cannot complete intent '${i}': the following stages have not completed: [${M.join(", ")}]. Run those stages to completion before approving intent_completion.`,incomplete_stages:M}));C1(i,"intent_completion",S),E6(i),Yr(i,s);let H={action:"intent_complete",intent:i,studio:U,message:Xn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return be(N(H))}if(T==="intent_review"){C1(i,"intent_review",S);let U=zd(process.cwd(),A,"intent.md");je(U,"intent_reviewed",!0),S&&b?D1(i,S,b):(qh(U,["phase"]),si(i)),Dt(`haiku: intent ${i} approved by user`),Yr(i,s);let M={action:"intent_approved",intent:i,stage:S||null,from_phase:"intent_review",to_phase:b||"execute",message:S?Xn(`The user approved intent "${i}" \u2014 advancing to ${b||"execute"}.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`):Xn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return be(N(M))}if(T==="elaborate_to_execute"&&b){C1(i,"elaborate_to_execute",S),D1(i,S,b),Yr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:b,message:Xn(`The user approved the specs for stage "${S}" \u2014 advancing to ${b}.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return be(N(U))}if(_){C1(i,"stage_gate",S),S6(i,S,_),Yr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:_,gate_outcome:"advanced",message:Xn(`The user approved stage "${S}" \u2014 advancing to "${_}".`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT summarize, do NOT say "want me to continue?" \u2014 the gate was already approved. Just call the tool.`)};return be(N(U))}C1(i,"stage_gate",S),px(i,S,"advanced"),Yr(i,s);let C=M1(zd(fe(i),"intent.md")).studio||"",z=_6(i,C,Xn(`The user approved the final stage "${S}" \u2014 intent complete.`,"Report the completion summary to the user."));return be(N(z))}if(P.decision==="external_review"){px(i,S,"advanced"),Yr(i,s);let C;if(Ae()){let{openStagePullRequest:U}=await Promise.resolve().then(()=>(Tr(),CD)),M=U({slug:i,stage:S});if(M.createdUrl){try{let H=zd(fe(i),"intent.md");je(H,"external_review_url",M.createdUrl)}catch{}C=Xn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${M.createdUrl}`,`Tell the user: "I opened the MR at ${M.createdUrl} \u2014 review and merge it when you're ready. Run /haiku:haiku-pickup after the merge to continue." The MR was created against \`haiku/${i}/main\` (NOT the repo default) so the workflow engine can detect the merge.`)}else M.compareUrl?C=Xn(`The user routed stage "${S}" to external review. ${M.message}`,`The engine couldn't open the MR programmatically (${M.prError??M.pushError??"no gh/glab on PATH"}). Tell the user to click ${M.compareUrl} to open it manually \u2014 that link pre-fills base \`haiku/${i}/main\` so the merge signal lands correctly. After they paste the resulting URL back to you, call haiku_run_next { intent: "${i}", external_review_url: "" }.`):C=Xn(`The user routed stage "${S}" to external review.`,`${M.message} Open ONE merge request from branch \`haiku/${i}/${S}\` to \`haiku/${i}/main\` (NOT the repo default \u2014 the engine detects the merge by intent main, not by the default branch). Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }.`)}else C=Xn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let z={action:"external_review_requested",intent:i,stage:S,feedback:P.feedback,message:C};return be(N(z))}let j=P.annotations,V=typeof j?.revisit_action=="string"?j.revisit_action:null;if(V)return Yr(i,s),be(N({action:V,intent:i,stage:S,message:j?.revisit_message||`Revisit dispatched on stage '${S}'. Follow the instructions returned by the orchestrator.`}));let Z=zd(process.cwd(),A),G=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?HD(Z,S):!1)||!S?[]:i6(i,S,P),X=G.length>0?` Created ${G.length} feedback file(s): ${G.join(", ")}.`:"";if(T==="intent_review"){Yr(i,s);let C={action:"changes_requested",intent:i,stage:S,feedback:P.feedback,annotations:P.annotations,feedback_ids:G,message:Xn(`The user requested changes on intent "${i}": ${P.feedback||"(see annotations)"}.`,`${X?`${X.trim()} `:""}Revise the intent description, then call haiku_run_next { intent: "${i}" } again.`)};return be(N(C))}if(T==="intent_completion"){let C=zd(fe(i),"intent.md");je(C,"completion_review_dispatched",!1),je(C,"completion_review_skipped",!1),OXn(i,""),si(i),Dt(`haiku: intent ${i} completion-review rejected, reopening for revisit`),Yr(i,s);let z={action:"changes_requested",intent:i,stage:null,gate_context:"intent_completion",feedback:P.feedback,annotations:P.annotations,feedback_ids:G,message:Xn(`The user requested changes at intent-completion review on "${i}": ${P.feedback||"(see annotations)"}.`,`${X?`${X.trim()} `:""}The intent is no longer in final review. Log stage_revisit feedback at the target stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` to re-open the relevant stage, then address the feedback and call \`haiku_run_next\` to drive back to final review.`)};return be(N(z))}if(T==="elaborate_to_execute"){Yr(i,s);let C=mg(Z,S).filter(U=>U.status!=="completed").map(U=>U.name),z={action:"revise_unit_specs",intent:i,stage:S,feedback:P.feedback,annotations:P.annotations,unstarted_units:C,units_dir:`.haiku/intents/${i}/stages/${S}/units/`,message:Xn(`The user requested changes on stage "${S}" unit specs: ${P.feedback||"(see annotations)"}.`,`Nothing has been built yet \u2014 NO feedback files were created. Resolve by EDITING the unstarted unit.md files in \`.haiku/intents/${i}/stages/${S}/units/\` directly (or adding new unit files if the scope needs expansion). Do NOT draft a full new wave of units to "close feedback" \u2014 that's a post-execute flow. When the edits are done, call \`haiku_run_next { intent: "${i}" }\` again to re-open the review gate.`)};return be(N(z))}Yr(i,s);let q={action:"changes_requested",intent:i,stage:S,feedback:P.feedback,annotations:P.annotations,feedback_ids:G,message:Xn(`The user requested changes on stage "${S}": ${P.feedback||"(see annotations)"}.`,`${X?`${X.trim()} `:""}Address the feedback, then call haiku_run_next { intent: "${i}" } again.`)};return be(N(q))}catch(P){let D=P instanceof Error?P.message:String(P),j=P instanceof Error?P.stack:"";console.error(`[haiku] gate_review failed: ${D}`),ps(P,{intent:i,stage:S});try{let Z=zd(process.cwd(),".haiku","logs");wXn(Z,{recursive:!0}),xXn(zd(Z,"gate-review-error.log"),`${new Date().toISOString()} +${i}`}var fIt=v(()=>{"use strict";Y_e();Vd();ze()});import{existsSync as pIt,mkdirSync as p$n,readdirSync as h$n,readFileSync as m$n,writeFileSync as g$n}from"node:fs";import{join as Wd}from"node:path";function Z1(e){if(!pIt(e))return{};let t=m$n(e,"utf8"),{data:n}=re(t);return n}function Y1(e,t,n){let r=pe(e),i=Wd(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=Z1(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Nl(i),De(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Wd(r,"stages",n,"units");if(!pIt(a))return;let c=h$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Wd(a,u),d=Z1(l),f=d[o]&&typeof d[o]=="object"?d[o]:{};if(s){let p=Array.isArray(d.inputs)?d.inputs:[];f.user=Nl(l,{intentDir:r,unitInputs:p})}else f.user=Hd();De(l,o,f)}}var y$n,hIt,mIt=v(()=>{"use strict";yr();Zf();Vd();ih();t1();Qc();ji();uo();JY();ze();Gi();Fv();lIt();vs();fIt();y$n=(e,t)=>{};hIt={name:"haiku_await_gate",description:"Resume / recovery entry point for a pending gate-review session. Under v4 the canonical flow blocks INSIDE haiku_run_next \u2014 the engine prepares the session, opens the browser best-effort, awaits the user's decision, and returns the post-decision action all in one tool call. Use haiku_await_gate only when the original tick timed out, the MCP host disconnected, or the agent restart lost the in-memory blocking call. The live review session is resolved from the in-memory registry keyed by intent slug, NOT a repo-persisted pointer (a page refresh reconnects the same logical session; pass session_id to target a specific one). Returns the same post-decision action shape (advance_stage / advance_phase / changes_requested / external_review_requested / intent_complete / etc.).",inputSchema:c0,async handle(e,t){let n=Be(e,Fme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Wd(pe(i),"intent.md"),a=Z1(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),k0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=BL(i),h=l?`gate_review_session_${l}`:"",m=h?a[h]??"":"",g=a.gate_review_session_id||"",y=f&&g||m,E=r.session_id||p?.session_id||y;if(!E){if(!l&&!f)return ye(`No active stage on intent '${i}' and no pending intent-scope gate \u2014 nothing to await. Call haiku_run_next first.`);let N=l?`stage '${l}'`:"intent scope";return ye(`No live gate-review session for intent '${i}' (${N}). Call haiku_run_next to (re)open the gate \u2014 it re-derives the gate from the cursor and reattaches the live session.`)}let S=l,_=r.next_stage!==void 0?r.next_stage:a.gate_review_next_stage??null,b=r.next_phase!==void 0?r.next_phase:a.gate_review_next_phase??null,T=r.gate_context||a.gate_review_context||"stage_gate",A=`.haiku/intents/${i}`,R=Z_e();if(!R)return ye("Gate-review await handler not registered \u2014 server.ts wiring is broken. File a bug.");let x=r.review_url,k=r.auto_open!==!1;s&&qi(s,{event:"haiku_await_gate_entered",intent:i,stage:S,session_id:E,auto_open:k});let P=N=>dIt(i,c,N);try{let N=f?["gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase"]:l?[`gate_review_session_${l}`,`gate_review_url_${l}`,"gate_review_context","gate_review_next_stage","gate_review_next_phase"]:[];N.length>0&&Kh(o,N)}catch{}try{let N=await R(E,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=gr(i,S);if(!C.ok)return YE(i,S,C,"after review wait");if(s&&qi(s,{event:"gate_decision",intent:i,stage:S,decision:N.decision,feedback:N.feedback}),N.decision==="advance")return Xr(i,s),ye(P({action:"advance",intent:i,stage:S,message:zn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(N.decision==="approved"){if(T==="intent_completion"){let U=Z1(Wd(pe(i),"intent.md")).studio||"",D=X1(i,U);if(D.length>0)return ye(P({action:"error",intent:i,message:`Cannot complete intent '${i}': the following stages have not completed: [${D.join(", ")}]. Run those stages to completion before approving intent_completion.`,incomplete_stages:D}));Y1(i,"intent_completion",S),MZ(i),Xr(i,s);let H={action:"intent_complete",intent:i,studio:U,message:zn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return ye(P(H))}if(T==="intent_review"){Y1(i,"intent_review",S);let U=Wd(process.cwd(),A,"intent.md");De(U,"intent_reviewed",!0),S&&b?J1(i,S,b):(Kh(U,["phase"]),ci(i)),wt(`haiku: intent ${i} approved by user`),Xr(i,s);let D={action:"intent_approved",intent:i,stage:S||null,from_phase:"intent_review",to_phase:b||"execute",message:S?zn(`The user approved intent "${i}" \u2014 advancing to ${b||"execute"}.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`):zn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(D))}if(T==="elaborate_to_execute"&&b){Y1(i,"elaborate_to_execute",S),J1(i,S,b),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:b,message:zn(`The user approved the specs for stage "${S}" \u2014 advancing to ${b}.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(U))}if(_){Y1(i,"stage_gate",S),NZ(i,S,_),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:_,gate_outcome:"advanced",message:zn(`The user approved stage "${S}" \u2014 advancing to "${_}".`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT summarize, do NOT say "want me to continue?" \u2014 the gate was already approved. Just call the tool.`)};return ye(P(U))}Y1(i,"stage_gate",S),_x(i,S,"advanced"),Xr(i,s);let M=Z1(Wd(pe(i),"intent.md")).studio||"",q=CZ(i,M,zn(`The user approved the final stage "${S}" \u2014 intent complete.`,"Report the completion summary to the user."));return ye(P(q))}if(N.decision==="external_review"){_x(i,S,"advanced"),Xr(i,s);let M;if(Ae()){let{openStagePullRequest:U}=await Promise.resolve().then(()=>(yr(),BD)),D=U({slug:i,stage:S});if(D.createdUrl){try{let H=Wd(pe(i),"intent.md");De(H,"external_review_url",D.createdUrl)}catch{}M=zn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${D.createdUrl}`,`Tell the user: "I opened the MR at ${D.createdUrl} \u2014 review and merge it when you're ready. Run /haiku:haiku-pickup after the merge to continue." The MR was created against \`haiku/${i}/main\` (NOT the repo default) so the workflow engine can detect the merge.`)}else D.compareUrl?M=zn(`The user routed stage "${S}" to external review. ${D.message}`,`The engine couldn't open the MR programmatically (${D.prError??D.pushError??"no gh/glab on PATH"}). Tell the user to click ${D.compareUrl} to open it manually \u2014 that link pre-fills base \`haiku/${i}/main\` so the merge signal lands correctly. After they paste the resulting URL back to you, call haiku_run_next { intent: "${i}", external_review_url: "" }.`):M=zn(`The user routed stage "${S}" to external review.`,`${D.message} Open ONE merge request from branch \`haiku/${i}/${S}\` to \`haiku/${i}/main\` (NOT the repo default \u2014 the engine detects the merge by intent main, not by the default branch). Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }.`)}else M=zn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let q={action:"external_review_requested",intent:i,stage:S,feedback:N.feedback,message:M};return ye(P(q))}let F=N.annotations,V=typeof F?.revisit_action=="string"?F.revisit_action:null;if(V)return Xr(i,s),ye(P({action:V,intent:i,stage:S,message:F?.revisit_message||`Revisit dispatched on stage '${S}'. Follow the instructions returned by the orchestrator.`}));let K=Wd(process.cwd(),A),B=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?XD(K,S):!1)||!S?[]:yZ(i,S,N),X=B.length>0?` Created ${B.length} feedback file(s): ${B.join(", ")}.`:"";if(T==="intent_review"){Xr(i,s);let M={action:"changes_requested",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,feedback_ids:B,message:zn(`The user requested changes on intent "${i}": ${N.feedback||"(see annotations)"}.`,`${X?`${X.trim()} `:""}Revise the intent description, then call haiku_run_next { intent: "${i}" } again.`)};return ye(P(M))}if(T==="intent_completion"){let M=Wd(pe(i),"intent.md");De(M,"completion_review_dispatched",!1),De(M,"completion_review_skipped",!1),y$n(i,""),ci(i),wt(`haiku: intent ${i} completion-review rejected, reopening for revisit`),Xr(i,s);let q={action:"changes_requested",intent:i,stage:null,gate_context:"intent_completion",feedback:N.feedback,annotations:N.annotations,feedback_ids:B,message:zn(`The user requested changes at intent-completion review on "${i}": ${N.feedback||"(see annotations)"}.`,`${X?`${X.trim()} `:""}The intent is no longer in final review. Log stage_revisit feedback at the target stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` to re-open the relevant stage, then address the feedback and call \`haiku_run_next\` to drive back to final review.`)};return ye(P(q))}if(T==="elaborate_to_execute"){Xr(i,s);let M=Eg(K,S).filter(U=>U.status!=="completed").map(U=>U.name),q={action:"revise_unit_specs",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,unstarted_units:M,units_dir:`.haiku/intents/${i}/stages/${S}/units/`,message:zn(`The user requested changes on stage "${S}" unit specs: ${N.feedback||"(see annotations)"}.`,`Nothing has been built yet \u2014 NO feedback files were created. Resolve by EDITING the unstarted unit.md files in \`.haiku/intents/${i}/stages/${S}/units/\` directly (or adding new unit files if the scope needs expansion). Do NOT draft a full new wave of units to "close feedback" \u2014 that's a post-execute flow. When the edits are done, call \`haiku_run_next { intent: "${i}" }\` again to re-open the review gate.`)};return ye(P(q))}Xr(i,s);let G={action:"changes_requested",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,feedback_ids:B,message:zn(`The user requested changes on stage "${S}": ${N.feedback||"(see annotations)"}.`,`${X?`${X.trim()} `:""}Address the feedback, then call haiku_run_next { intent: "${i}" } again.`)};return ye(P(G))}catch(N){let C=N instanceof Error?N.message:String(N),F=N instanceof Error?N.stack:"";console.error(`[haiku] gate_review failed: ${C}`),ms(N,{intent:i,stage:S});try{let K=Wd(process.cwd(),".haiku","logs");p$n(K,{recursive:!0}),g$n(Wd(K,"gate-review-error.log"),`${new Date().toISOString()} intent: ${i} stage: ${S} -error: ${D} -${j} +error: ${C} +${F} --- -`,{flag:"a"})}catch{}if(D.includes("not found")||D.includes("wrong type"))return{content:[{type:"text",text:`Gate review session expired or unavailable: ${D}. Call haiku_run_next { intent: "${i}" } to recreate it.`}],isError:!0};if(dkt(D))return hkt(i);if(fkt(D)){Yr(i,s);let Z=pkt(k,a,S);return be(N({action:"gate_awaiting_client",intent:i,stage:S,review_url:Z||null,message:Xn(Z?`The review isn't connected \u2014 the SPA never opened, or the tab was closed. Review URL: ${Z}`:"The review isn't connected (the SPA never opened, or the tab was closed) and no review URL is recorded.",Z?`Show the user this URL to open or re-open the review: ${Z} \u2014 then call \`haiku_await_gate { intent: "${i}" }\` again to keep holding for their decision. Do NOT abandon the gate or advance without it.`:`Call \`haiku_run_next { intent: "${i}" }\` to re-open the gate, then surface the URL it returns to the user.`)}))}return D.includes("Could not parse intent")||D.includes("No such file")||D.includes("ENOENT")||D.includes("frontmatter")||D.includes("invalid identifier")||D.includes("Circular dependency")?(Yr(i,s),{content:[{type:"text",text:`GATE BLOCKED: ${D}. This is a data issue the agent can fix \u2014 check that the intent directory and files are correctly structured, then call haiku_run_next again.`}],isError:!0}):(s&&ts(s,{event:"gate_review_ui_failed",intent:i,stage:S,error:D}),Yr(i,s),{content:[{type:"text",text:`GATE BLOCKED: Review UI failed to start. Error: ${D}. Logged to .haiku/logs/gate-review-error.log. Investigate the SPA server (port conflict? blocked browser launch?) then call haiku_run_next { intent: "${i}" } to retry.`}],isError:!0})}}}});import{existsSync as bkt,mkdirSync as NXn,readFileSync as PXn,renameSync as CXn,writeFileSync as MXn}from"node:fs";import{dirname as DXn,join as Tkt}from"node:path";function vkt(e,t){let n=we();return Tkt(n,"intents",e,"stages",t,"coverage-decisions.json")}function LXn(e,t){let n=vkt(e,t);if(!bkt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(PXn(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function UXn(e,t,n){let r=vkt(e,t);NXn(DXn(r),{recursive:!0});let i=`${r}.tmp`;MXn(i,`${JSON.stringify(n,null,2)} -`),CXn(i,r)}function bEe(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var Akt,Rkt=v(()=>{"use strict";ze();ns();Akt={name:"haiku_coverage_acknowledge",description:"Record a per-file decision for an upstream output that the current stage's units do not reference. Used to resolve a `coverage_review_required` action emitted by the pre-tick cumulative-input-coverage validator. Decisions persist to `stages//coverage-decisions.json`. The decision MUST be either `out-of-scope` (with rationale explaining why this file is not relevant to the current stage's deliverables) or `covered-by-unit` (with the `unit` slug whose `inputs:` field already includes \u2014 or will include \u2014 the path; redundant for paths added via `haiku_unit_set` but useful when the agent wants to record reasoning). This tool does NOT advance the workflow; call `haiku_run_next` after acknowledging to re-run the validator.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the active intent."},stage:{type:"string",description:"Stage whose coverage decisions are being recorded (the current stage)."},path:{type:"string",description:"Intent-relative path of the upstream file being acknowledged (e.g., `stages/inception/CONVERSATION-CONTEXT.md` or `stages/design/artifacts/SPA-UI-SPECS.md`). Must match a path enumerated in the `coverage_review_required` action's `unreferenced` list."},decision:{type:"string",enum:["out-of-scope","covered-by-unit"],description:"`out-of-scope`: this file is not relevant to the current stage's deliverables; rationale required. `covered-by-unit`: this file is (or will be) referenced by a unit's `inputs:`; `unit` field required."},rationale:{type:"string",description:"Free-text explanation of the decision. Required for `out-of-scope`; recommended for `covered-by-unit`. Reviewers can challenge this rationale during adversarial spec review."},unit:{type:"string",description:"Required when `decision` is `covered-by-unit`. The unit slug (e.g., `unit-04-spa-component-security-audit`) whose `inputs:` covers this file."}},required:["intent_slug","stage","path","decision","rationale"]},async handle(e){let t=e.intent_slug,n=e.stage,r=e.path,i=e.decision,s=e.rationale,o=e.unit,a=Bg({intent:t,stage:n});if(a)return a;if(typeof s!="string"||s.trim()==="")return bEe("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return bEe("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=we(),u=Tkt(c,"intents",t,"stages",n);if(!bkt(u))return bEe("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=LXn(t,n),d=l.decisions.findIndex(p=>p.path===r),f={path:r,decision:i,rationale:s.trim(),acknowledged_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),...o?{unit:o}:{}};return d>=0?l.decisions[d]=f:l.decisions.push(f),UXn(t,n,l),{content:[{type:"text",text:JSON.stringify({ok:!0,acknowledged:f,total_decisions:l.decisions.length,next_step:"Call `haiku_run_next` to re-run the cumulative-input-coverage validator. If any files remain unreferenced + unacknowledged, the validator will re-emit `coverage_review_required` with the remaining list."},null,2)}]}}}});function REe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function Pkt(e){Dv=e}function Qn(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(i,s)=>{let o=typeof s=="string"?s:s.source;return o=o.replace(Jc.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,t)};return r}function Kh(e,t){if(t){if(Jc.escapeTest.test(e))return e.replace(Jc.escapeReplace,Ikt)}else if(Jc.escapeTestNoEncode.test(e))return e.replace(Jc.escapeReplaceNoEncode,Ikt);return e}function xkt(e){try{e=encodeURI(e).replace(Jc.percentDecode,"%")}catch{return null}return e}function Okt(e,t){let n=e.replace(Jc.findPipe,(s,o,a)=>{let c=!1,u=o;for(;--u>=0&&a[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(Jc.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length0?-2:-1}function TQn(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let s=4-n%4;r+=" ".repeat(s),n+=s}else r+=i,n++;return r}function Nkt(e,t,n,r,i){let s=t.href,o=t.title||null,a=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}function vQn(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(` +`,{flag:"a"})}catch{}if(C.includes("not found")||C.includes("wrong type"))return{content:[{type:"text",text:`Gate review session expired or unavailable: ${C}. Call haiku_run_next { intent: "${i}" } to recreate it.`}],isError:!0};if(oIt(C))return uIt(i);if(aIt(C)){Xr(i,s);let K=cIt(x,a,S);return ye(P({action:"gate_awaiting_client",intent:i,stage:S,review_url:K||null,message:zn(K?`The review isn't connected \u2014 the SPA never opened, or the tab was closed. Review URL: ${K}`:"The review isn't connected (the SPA never opened, or the tab was closed) and no review URL is recorded.",K?`Show the user this URL to open or re-open the review: ${K} \u2014 then call \`haiku_await_gate { intent: "${i}" }\` again to keep holding for their decision. Do NOT abandon the gate or advance without it.`:`Call \`haiku_run_next { intent: "${i}" }\` to re-open the gate, then surface the URL it returns to the user.`)}))}return C.includes("Could not parse intent")||C.includes("No such file")||C.includes("ENOENT")||C.includes("frontmatter")||C.includes("invalid identifier")||C.includes("Circular dependency")?(Xr(i,s),{content:[{type:"text",text:`GATE BLOCKED: ${C}. This is a data issue the agent can fix \u2014 check that the intent directory and files are correctly structured, then call haiku_run_next again.`}],isError:!0}):(s&&qi(s,{event:"gate_review_ui_failed",intent:i,stage:S,error:C}),Xr(i,s),{content:[{type:"text",text:`GATE BLOCKED: Review UI failed to start. Error: ${C}. Logged to .haiku/logs/gate-review-error.log. Investigate the SPA server (port conflict? blocked browser launch?) then call haiku_run_next { intent: "${i}" } to retry.`}],isError:!0})}}}});import{existsSync as gIt,mkdirSync as S$n,readFileSync as E$n,renameSync as _$n,writeFileSync as b$n}from"node:fs";import{dirname as T$n,join as yIt}from"node:path";function SIt(e,t){let n=ve();return yIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function v$n(e,t){let n=SIt(e,t);if(!gIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(E$n(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function A$n(e,t,n){let r=SIt(e,t);S$n(T$n(r),{recursive:!0});let i=`${r}.tmp`;b$n(i,`${JSON.stringify(n,null,2)} +`),_$n(i,r)}function J_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var EIt,_It=v(()=>{"use strict";ze();Gi();EIt={name:"haiku_coverage_acknowledge",description:"Record a per-file decision for an upstream output that the current stage's units do not reference. Used to resolve a `coverage_review_required` action emitted by the pre-tick cumulative-input-coverage validator. Decisions persist to `stages//coverage-decisions.json`. The decision MUST be either `out-of-scope` (with rationale explaining why this file is not relevant to the current stage's deliverables) or `covered-by-unit` (with the `unit` slug whose `inputs:` field already includes \u2014 or will include \u2014 the path; redundant for paths added via `haiku_unit_set` but useful when the agent wants to record reasoning). This tool does NOT advance the workflow; call `haiku_run_next` after acknowledging to re-run the validator.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the active intent."},stage:{type:"string",description:"Stage whose coverage decisions are being recorded (the current stage)."},path:{type:"string",description:"Intent-relative path of the upstream file being acknowledged (e.g., `stages/inception/CONVERSATION-CONTEXT.md` or `stages/design/artifacts/SPA-UI-SPECS.md`). Must match a path enumerated in the `coverage_review_required` action's `unreferenced` list."},decision:{type:"string",enum:["out-of-scope","covered-by-unit"],description:"`out-of-scope`: this file is not relevant to the current stage's deliverables; rationale required. `covered-by-unit`: this file is (or will be) referenced by a unit's `inputs:`; `unit` field required."},rationale:{type:"string",description:"Free-text explanation of the decision. Required for `out-of-scope`; recommended for `covered-by-unit`. Reviewers can challenge this rationale during adversarial spec review."},unit:{type:"string",description:"Required when `decision` is `covered-by-unit`. The unit slug (e.g., `unit-04-spa-component-security-audit`) whose `inputs:` covers this file."}},required:["intent_slug","stage","path","decision","rationale"]},async handle(e){let t=e.intent_slug,n=e.stage,r=e.path,i=e.decision,s=e.rationale,o=e.unit,a=Vg({intent:t,stage:n});if(a)return a;if(typeof s!="string"||s.trim()==="")return J_e("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return J_e("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=ve(),u=yIt(c,"intents",t,"stages",n);if(!gIt(u))return J_e("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=v$n(t,n),d=l.decisions.findIndex(p=>p.path===r),f={path:r,decision:i,rationale:s.trim(),acknowledged_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),...o?{unit:o}:{}};return d>=0?l.decisions[d]=f:l.decisions.push(f),A$n(t,n,l),{content:[{type:"text",text:JSON.stringify({ok:!0,acknowledged:f,total_decisions:l.decisions.length,next_step:"Call `haiku_run_next` to re-run the cumulative-input-coverage validator. If any files remain unreferenced + unacknowledged, the validator will re-emit `coverage_review_required` with the remaining list."},null,2)}]}}}});function ebe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function kIt(e){qv=e}function $n(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(i,s)=>{let o=typeof s=="string"?s:s.source;return o=o.replace(tu.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,t)};return r}function $h(e,t){if(t){if(tu.escapeTest.test(e))return e.replace(tu.escapeReplace,vIt)}else if(tu.escapeTestNoEncode.test(e))return e.replace(tu.escapeReplaceNoEncode,vIt);return e}function AIt(e){try{e=encodeURI(e).replace(tu.percentDecode,"%")}catch{return null}return e}function RIt(e,t){let n=e.replace(tu.findPipe,(s,o,a)=>{let c=!1,u=o;for(;--u>=0&&a[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(tu.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length0?-2:-1}function uer(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let s=4-n%4;r+=" ".repeat(s),n+=s}else r+=i,n++;return r}function wIt(e,t,n,r,i){let s=t.href,o=t.title||null,a=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}function ler(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(` `).map(s=>{let o=s.match(n.other.beginningSpace);if(o===null)return s;let[a]=o;return a.length>=i.length?s.slice(i.length):s}).join(` -`)}function Pr(e,t){return Mv.parse(e,t)}var Dv,Cv,jXn,Jc,FXn,HXn,qXn,H1,BXn,wEe,Ckt,Mkt,GXn,kEe,zXn,IEe,VXn,WXn,R6,xEe,KXn,Dkt,ZXn,OEe,wkt,YXn,JXn,XXn,QXn,Lkt,$Xn,hx,w6,NEe,eQn,Ukt,tQn,nQn,rQn,jkt,iQn,sQn,Fkt,oQn,aQn,cQn,uQn,lQn,dQn,fQn,pQn,hQn,mQn,T6,gQn,Hkt,qkt,yQn,kkt,PEe,SQn,TEe,_Qn,b6,U1,EQn,Ikt,v6,rp,A6,CEe,ip,F1,AQn,Mv,NRi,PRi,CRi,MRi,DRi,LRi,URi,Bkt=v(()=>{Dv=REe();Cv={exec:()=>null};jXn=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},FXn=/^(?:[ \t]*(?:\n|$))+/,HXn=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,qXn=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,H1=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,BXn=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,wEe=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Ckt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Mkt=Qn(Ckt).replace(/bull/g,wEe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),GXn=Qn(Ckt).replace(/bull/g,wEe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),kEe=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,zXn=/^[^\n]+/,IEe=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,VXn=Qn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",IEe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),WXn=Qn(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,wEe).getRegex(),R6="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",xEe=/|$))/,KXn=Qn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",xEe).replace("tag",R6).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Dkt=Qn(kEe).replace("hr",H1).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R6).getRegex(),ZXn=Qn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Dkt).getRegex(),OEe={blockquote:ZXn,code:HXn,def:VXn,fences:qXn,heading:BXn,hr:H1,html:KXn,lheading:Mkt,list:WXn,newline:FXn,paragraph:Dkt,table:Cv,text:zXn},wkt=Qn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",H1).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R6).getRegex(),YXn={...OEe,lheading:GXn,table:wkt,paragraph:Qn(kEe).replace("hr",H1).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",wkt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R6).getRegex()},JXn={...OEe,html:Qn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",xEe).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Cv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Qn(kEe).replace("hr",H1).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",Mkt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},XXn=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,QXn=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Lkt=/^( {2,}|\\)\n(?!\s*$)/,$Xn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",jXn?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),jkt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,iQn=Qn(jkt,"u").replace(/punct/g,hx).getRegex(),sQn=Qn(jkt,"u").replace(/punct/g,Ukt).getRegex(),Fkt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",oQn=Qn(Fkt,"gu").replace(/notPunctSpace/g,NEe).replace(/punctSpace/g,w6).replace(/punct/g,hx).getRegex(),aQn=Qn(Fkt,"gu").replace(/notPunctSpace/g,nQn).replace(/punctSpace/g,tQn).replace(/punct/g,Ukt).getRegex(),cQn=Qn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,NEe).replace(/punctSpace/g,w6).replace(/punct/g,hx).getRegex(),uQn=Qn(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,hx).getRegex(),lQn="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",dQn=Qn(lQn,"gu").replace(/notPunctSpace/g,NEe).replace(/punctSpace/g,w6).replace(/punct/g,hx).getRegex(),fQn=Qn(/\\(punct)/,"gu").replace(/punct/g,hx).getRegex(),pQn=Qn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[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])?)+(?![-_])/).getRegex(),hQn=Qn(xEe).replace("(?:-->|$)","-->").getRegex(),mQn=Qn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",hQn).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),T6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,gQn=Qn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",T6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Hkt=Qn(/^!?\[(label)\]\[(ref)\]/).replace("label",T6).replace("ref",IEe).getRegex(),qkt=Qn(/^!?\[(ref)\](?:\[\])?/).replace("ref",IEe).getRegex(),yQn=Qn("reflink|nolink(?!\\()","g").replace("reflink",Hkt).replace("nolink",qkt).getRegex(),kkt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,PEe={_backpedal:Cv,anyPunctuation:fQn,autolink:pQn,blockSkip:rQn,br:Lkt,code:QXn,del:Cv,delLDelim:Cv,delRDelim:Cv,emStrongLDelim:iQn,emStrongRDelimAst:oQn,emStrongRDelimUnd:cQn,escape:XXn,link:gQn,nolink:qkt,punctuation:eQn,reflink:Hkt,reflinkSearch:yQn,tag:mQn,text:$Xn,url:Cv},SQn={...PEe,link:Qn(/^!?\[(label)\]\((.*?)\)/).replace("label",T6).getRegex(),reflink:Qn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",T6).getRegex()},TEe={...PEe,emStrongRDelimAst:aQn,emStrongLDelim:sQn,delLDelim:uQn,delRDelim:dQn,url:Qn(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",kkt).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:Qn(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},Ikt=e=>EQn[e];v6=class{options;rules;lexer;constructor(e){this.options=e||Dv}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:j1(n,` -`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=vQn(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=j1(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:j1(t[0],` -`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=j1(t[0],` +`)}function Nr(e,t){return Hv.parse(e,t)}var qv,jv,R$n,tu,w$n,k$n,I$n,tU,x$n,tbe,IIt,xIt,O$n,nbe,P$n,rbe,N$n,C$n,jZ,ibe,M$n,OIt,D$n,sbe,bIt,L$n,U$n,F$n,j$n,PIt,H$n,bx,HZ,obe,q$n,NIt,B$n,G$n,z$n,CIt,V$n,W$n,MIt,K$n,Y$n,Z$n,J$n,X$n,Q$n,$$n,eer,ter,ner,LZ,rer,DIt,LIt,ier,TIt,abe,ser,X_e,oer,DZ,Q1,aer,vIt,UZ,ap,FZ,cbe,cp,eU,der,Hv,dIi,fIi,pIi,hIi,mIi,gIi,yIi,UIt=v(()=>{qv=ebe();jv={exec:()=>null};R$n=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},w$n=/^(?:[ \t]*(?:\n|$))+/,k$n=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,I$n=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,tU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,x$n=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,tbe=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,IIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,xIt=$n(IIt).replace(/bull/g,tbe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),O$n=$n(IIt).replace(/bull/g,tbe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),nbe=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,P$n=/^[^\n]+/,rbe=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,N$n=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",rbe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),C$n=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,tbe).getRegex(),jZ="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ibe=/|$))/,M$n=$n("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ibe).replace("tag",jZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),OIt=$n(nbe).replace("hr",tU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex(),D$n=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",OIt).getRegex(),sbe={blockquote:D$n,code:k$n,def:N$n,fences:I$n,heading:x$n,hr:tU,html:M$n,lheading:xIt,list:C$n,newline:w$n,paragraph:OIt,table:jv,text:P$n},bIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",tU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex(),L$n={...sbe,lheading:O$n,table:bIt,paragraph:$n(nbe).replace("hr",tU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",bIt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex()},U$n={...sbe,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ibe).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:jv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(nbe).replace("hr",tU).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",xIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},F$n=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,j$n=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,PIt=/^( {2,}|\\)\n(?!\s*$)/,H$n=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",R$n?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),CIt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,V$n=$n(CIt,"u").replace(/punct/g,bx).getRegex(),W$n=$n(CIt,"u").replace(/punct/g,NIt).getRegex(),MIt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",K$n=$n(MIt,"gu").replace(/notPunctSpace/g,obe).replace(/punctSpace/g,HZ).replace(/punct/g,bx).getRegex(),Y$n=$n(MIt,"gu").replace(/notPunctSpace/g,G$n).replace(/punctSpace/g,B$n).replace(/punct/g,NIt).getRegex(),Z$n=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,obe).replace(/punctSpace/g,HZ).replace(/punct/g,bx).getRegex(),J$n=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,bx).getRegex(),X$n="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Q$n=$n(X$n,"gu").replace(/notPunctSpace/g,obe).replace(/punctSpace/g,HZ).replace(/punct/g,bx).getRegex(),$$n=$n(/\\(punct)/,"gu").replace(/punct/g,bx).getRegex(),eer=$n(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[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])?)+(?![-_])/).getRegex(),ter=$n(ibe).replace("(?:-->|$)","-->").getRegex(),ner=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",ter).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),LZ=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,rer=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",LZ).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),DIt=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",LZ).replace("ref",rbe).getRegex(),LIt=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",rbe).getRegex(),ier=$n("reflink|nolink(?!\\()","g").replace("reflink",DIt).replace("nolink",LIt).getRegex(),TIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,abe={_backpedal:jv,anyPunctuation:$$n,autolink:eer,blockSkip:z$n,br:PIt,code:j$n,del:jv,delLDelim:jv,delRDelim:jv,emStrongLDelim:V$n,emStrongRDelimAst:K$n,emStrongRDelimUnd:Z$n,escape:F$n,link:rer,nolink:LIt,punctuation:q$n,reflink:DIt,reflinkSearch:ier,tag:ner,text:H$n,url:jv},ser={...abe,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",LZ).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",LZ).getRegex()},X_e={...abe,emStrongRDelimAst:Y$n,emStrongLDelim:W$n,delLDelim:J$n,delRDelim:Q$n,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",TIt).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:$n(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},vIt=e=>aer[e];UZ=class{options;rules;lexer;constructor(e){this.options=e||qv}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:$1(n,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=ler(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=$1(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:$1(t[0],` +`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=$1(t[0],` `).split(` `),r="",i="",s=[];for(;n.length>0;){let o=!1,a=[],c;for(c=0;c1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let s=this.rules.other.listItemRegex(n),o=!1;for(;e;){let c=!1,u="",l="";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;u=t[0],e=e.substring(u.length);let d=TQn(t[2].split(` +`);continue}}return{type:"blockquote",raw:r,tokens:s,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let s=this.rules.other.listItemRegex(n),o=!1;for(;e;){let c=!1,u="",l="";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;u=t[0],e=e.substring(u.length);let d=uer(t[2].split(` `,1)[0],t[1].length),f=e.split(` `,1)[0],p=!d.trim(),h=0;if(this.options.pedantic?(h=2,l=d.trimStart()):p?h=t[1].length+1:(h=d.search(this.rules.other.nonSpaceChar),h=h>4?1:h,l=d.slice(h),h+=t[1].length),p&&this.rules.other.blankLine.test(f)&&(u+=f+` -`,e=e.substring(f.length+1),c=!0),!c){let m=this.rules.other.nextBulletRegex(h),y=this.rules.other.hrRegex(h),g=this.rules.other.fencesBeginRegex(h),E=this.rules.other.headingBeginRegex(h),S=this.rules.other.htmlBeginRegex(h),_=this.rules.other.blockquoteBeginRegex(h);for(;e;){let b=e.split(` -`,1)[0],T;if(f=b,this.options.pedantic?(f=f.replace(this.rules.other.listReplaceNesting," "),T=f):T=f.replace(this.rules.other.tabCharGlobal," "),g.test(f)||E.test(f)||S.test(f)||_.test(f)||m.test(f)||y.test(f))break;if(T.search(this.rules.other.nonSpaceChar)>=h||!f.trim())l+=` -`+T.slice(h);else{if(p||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||g.test(d)||E.test(d)||y.test(d))break;l+=` +`,e=e.substring(f.length+1),c=!0),!c){let m=this.rules.other.nextBulletRegex(h),g=this.rules.other.hrRegex(h),y=this.rules.other.fencesBeginRegex(h),E=this.rules.other.headingBeginRegex(h),S=this.rules.other.htmlBeginRegex(h),_=this.rules.other.blockquoteBeginRegex(h);for(;e;){let b=e.split(` +`,1)[0],T;if(f=b,this.options.pedantic?(f=f.replace(this.rules.other.listReplaceNesting," "),T=f):T=f.replace(this.rules.other.tabCharGlobal," "),y.test(f)||E.test(f)||S.test(f)||_.test(f)||m.test(f)||g.test(f))break;if(T.search(this.rules.other.nonSpaceChar)>=h||!f.trim())l+=` +`+T.slice(h);else{if(p||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||y.test(d)||E.test(d)||g.test(d))break;l+=` `+f}p=!f.trim(),u+=b+` -`,e=e.substring(b.length+1),d=T.slice(h)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(u)&&(o=!0)),i.items.push({type:"list_item",raw:u,task:!!this.options.gfm&&this.rules.other.listIsTask.test(l),loose:!1,text:l,tokens:[]}),i.raw+=u}let a=i.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let c of i.items){if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),c.task){if(c.text=c.text.replace(this.rules.other.listReplaceTask,""),c.tokens[0]?.type==="text"||c.tokens[0]?.type==="paragraph"){c.tokens[0].raw=c.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),c.tokens[0].text=c.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let l=this.lexer.inlineQueue.length-1;l>=0;l--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[l].src)){this.lexer.inlineQueue[l].src=this.lexer.inlineQueue[l].src.replace(this.rules.other.listReplaceTask,"");break}}let u=this.rules.other.listTaskCheckbox.exec(c.raw);if(u){let l={type:"checkbox",raw:u[0]+" ",checked:u[0]!=="[ ]"};c.checked=l.checked,i.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=l.raw+c.tokens[0].raw,c.tokens[0].text=l.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(l)):c.tokens.unshift({type:"paragraph",raw:l.raw,text:l.raw,tokens:[l]}):c.tokens.unshift(l)}}if(!i.loose){let u=c.tokens.filter(d=>d.type==="space"),l=u.length>0&&u.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=l}}if(i.loose)for(let c of i.items){c.loose=!0;for(let u of c.tokens)u.type==="text"&&(u.type="paragraph")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:t[0],href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Okt(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(` -`):[],s={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let o of r)this.rules.other.tableAlignRight.test(o)?s.align.push("right"):this.rules.other.tableAlignCenter.test(o)?s.align.push("center"):this.rules.other.tableAlignLeft.test(o)?s.align.push("left"):s.align.push(null);for(let o=0;o({text:a,tokens:this.lexer.inline(a),header:!1,align:s.align[c]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` -`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=j1(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=bQn(t[2],"()");if(s===-2)return;if(s>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),Nkt(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return Nkt(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+i);(r=u.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s)continue;if(o=[...s].length,r[3]||r[4]){a+=o;continue}else if((r[5]||r[6])&&i%3&&!((i+o)%3)){c+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+c);let l=[...r[0]][0].length,d=e.slice(0,i+r.index+l+o);if(Math.min(i,o)%2){let p=d.slice(1,-1);return{type:"em",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}let f=d.slice(2,-2);return{type:"strong",raw:d,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(r=c.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s||(o=[...s].length,o!==i))continue;if(r[3]||r[4]){a+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a);let u=[...r[0]][0].length,l=e.slice(0,i+r.index+u+o),d=l.slice(i,-i);return{type:"del",raw:l,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},rp=class vEe{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Dv,this.options.tokenizer=this.options.tokenizer||new v6,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:Jc,block:b6.normal,inline:U1.normal};this.options.pedantic?(n.block=b6.pedantic,n.inline=U1.pedantic):this.options.gfm&&(n.block=b6.gfm,this.options.breaks?n.inline=U1.breaks:n.inline=U1.gfm),this.tokenizer.rules=n}static get rules(){return{block:b6,inline:U1}}static lex(t,n){return new vEe(n).lex(t)}static lexInline(t,n){return new vEe(n).inlineTokens(t)}lex(t){t=t.replace(Jc.carriageReturn,` -`),this.blockTokens(t,this.tokens);for(let n=0;n(i=o.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let o=n.at(-1);i.raw.length===1&&o!==void 0?o.raw+=` +`,e=e.substring(b.length+1),d=T.slice(h)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(u)&&(o=!0)),i.items.push({type:"list_item",raw:u,task:!!this.options.gfm&&this.rules.other.listIsTask.test(l),loose:!1,text:l,tokens:[]}),i.raw+=u}let a=i.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let c of i.items){if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),c.task){if(c.text=c.text.replace(this.rules.other.listReplaceTask,""),c.tokens[0]?.type==="text"||c.tokens[0]?.type==="paragraph"){c.tokens[0].raw=c.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),c.tokens[0].text=c.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let l=this.lexer.inlineQueue.length-1;l>=0;l--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[l].src)){this.lexer.inlineQueue[l].src=this.lexer.inlineQueue[l].src.replace(this.rules.other.listReplaceTask,"");break}}let u=this.rules.other.listTaskCheckbox.exec(c.raw);if(u){let l={type:"checkbox",raw:u[0]+" ",checked:u[0]!=="[ ]"};c.checked=l.checked,i.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=l.raw+c.tokens[0].raw,c.tokens[0].text=l.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(l)):c.tokens.unshift({type:"paragraph",raw:l.raw,text:l.raw,tokens:[l]}):c.tokens.unshift(l)}}if(!i.loose){let u=c.tokens.filter(d=>d.type==="space"),l=u.length>0&&u.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=l}}if(i.loose)for(let c of i.items){c.loose=!0;for(let u of c.tokens)u.type==="text"&&(u.type="paragraph")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:t[0],href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=RIt(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(` +`):[],s={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let o of r)this.rules.other.tableAlignRight.test(o)?s.align.push("right"):this.rules.other.tableAlignCenter.test(o)?s.align.push("center"):this.rules.other.tableAlignLeft.test(o)?s.align.push("left"):s.align.push(null);for(let o=0;o({text:a,tokens:this.lexer.inline(a),header:!1,align:s.align[c]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=$1(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=cer(t[2],"()");if(s===-2)return;if(s>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),wIt(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return wIt(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+i);(r=u.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s)continue;if(o=[...s].length,r[3]||r[4]){a+=o;continue}else if((r[5]||r[6])&&i%3&&!((i+o)%3)){c+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+c);let l=[...r[0]][0].length,d=e.slice(0,i+r.index+l+o);if(Math.min(i,o)%2){let p=d.slice(1,-1);return{type:"em",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}let f=d.slice(2,-2);return{type:"strong",raw:d,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(r=c.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s||(o=[...s].length,o!==i))continue;if(r[3]||r[4]){a+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a);let u=[...r[0]][0].length,l=e.slice(0,i+r.index+u+o),d=l.slice(i,-i);return{type:"del",raw:l,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},ap=class Q_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||qv,this.options.tokenizer=this.options.tokenizer||new UZ,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:tu,block:DZ.normal,inline:Q1.normal};this.options.pedantic?(n.block=DZ.pedantic,n.inline=Q1.pedantic):this.options.gfm&&(n.block=DZ.gfm,this.options.breaks?n.inline=Q1.breaks:n.inline=Q1.gfm),this.tokenizer.rules=n}static get rules(){return{block:DZ,inline:Q1}}static lex(t,n){return new Q_e(n).lex(t)}static lexInline(t,n){return new Q_e(n).inlineTokens(t)}lex(t){t=t.replace(tu.carriageReturn,` +`),this.blockTokens(t,this.tokens);for(let n=0;n(i=o.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let o=n.at(-1);i.raw.length===1&&o!==void 0?o.raw+=` `:n.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length);let o=n.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(` `)?"":` `)+i.raw,o.text+=` @@ -1221,9 +1224,9 @@ ${l}`:l;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i),r=s.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length);let o=n.at(-1);o?.type==="text"?(o.raw+=(o.raw.endsWith(` `)?"":` `)+i.raw,o.text+=` -`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t,i=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)c.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)s=i[2]?i[2].length:0,r=r.slice(0,i.index+s)+"["+"a".repeat(i[0].length-s-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let o=!1,a="";for(;t;){o||(a=""),o=!1;let c;if(this.options.extensions?.inline?.some(l=>(c=l.call({lexer:this},t,n))?(t=t.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(c.raw.length);let l=n.at(-1);c.type==="text"&&l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(t)){t=t.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(t))){t=t.substring(c.raw.length),n.push(c);continue}let u=t;if(this.options.extensions?.startInline){let l=1/0,d=t.slice(1),f;this.options.extensions.startInline.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(l=Math.min(l,f))}),l<1/0&&l>=0&&(u=t.substring(0,l+1))}if(c=this.tokenizer.inlineText(u)){t=t.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(a=c.raw.slice(-1)),o=!0;let l=n.at(-1);l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(t){let l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return n}},A6=class{options;parser;constructor(e){this.options=e||Dv}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(Jc.notSpaceStart)?.[0],i=e.replace(Jc.endingNewline,"")+` -`;return r?'
'+(n?i:Kh(i,!0))+`
-`:"
"+(n?i:Kh(i,!0))+`
+`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t,i=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)c.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)s=i[2]?i[2].length:0,r=r.slice(0,i.index+s)+"["+"a".repeat(i[0].length-s-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let o=!1,a="";for(;t;){o||(a=""),o=!1;let c;if(this.options.extensions?.inline?.some(l=>(c=l.call({lexer:this},t,n))?(t=t.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(c.raw.length);let l=n.at(-1);c.type==="text"&&l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(t)){t=t.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(t))){t=t.substring(c.raw.length),n.push(c);continue}let u=t;if(this.options.extensions?.startInline){let l=1/0,d=t.slice(1),f;this.options.extensions.startInline.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(l=Math.min(l,f))}),l<1/0&&l>=0&&(u=t.substring(0,l+1))}if(c=this.tokenizer.inlineText(u)){t=t.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(a=c.raw.slice(-1)),o=!0;let l=n.at(-1);l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(t){let l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return n}},FZ=class{options;parser;constructor(e){this.options=e||qv}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(tu.notSpaceStart)?.[0],i=e.replace(tu.endingNewline,"")+` +`;return r?'
'+(n?i:$h(i,!0))+`
+`:"
"+(n?i:$h(i,!0))+`
`}blockquote({tokens:e}){return`
${this.parser.parse(e)}
`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} @@ -1239,35 +1242,35 @@ ${this.parser.parse(e)} `}tablerow({text:e}){return` ${e} `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` -`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${Kh(e,!0)}`}br(e){return"
"}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=xkt(e);if(i===null)return r;e=i;let s='
",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=xkt(e);if(i===null)return Kh(n);e=i;let s=`${Kh(n)}{let o=i[s].flat(1/0);n=n.concat(this.walkTokens(o,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...o){let a=i.renderer.apply(this,o);return a===!1&&(a=s.apply(this,o)),a}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new A6(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let o=s,a=n.renderer[o],c=i[o];i[o]=(...u)=>{let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new v6(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let o=s,a=n.tokenizer[o],c=i[o];i[o]=(...u)=>{let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new F1;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let o=s,a=n.hooks[o],c=i[o];F1.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&F1.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await a.call(i,u);return c.call(i,d)})();let l=a.call(i,u);return c.call(i,l)}:i[o]=(...u)=>{if(this.defaults.async)return(async()=>{let d=await a.apply(i,u);return d===!1&&(d=await c.apply(i,u)),d})();let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(o){let a=[];return a.push(s.call(this,o)),i&&(a=a.concat(i.call(this,o))),a}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return rp.lex(e,t??this.defaults)}parser(e,t){return ip.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},s=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let o=i.hooks?await i.hooks.preprocess(t):t,a=await(i.hooks?await i.hooks.provideLexer(e):e?rp.lex:rp.lexInline)(o,i),c=i.hooks?await i.hooks.processAllTokens(a):a;i.walkTokens&&await Promise.all(this.walkTokens(c,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser(e):e?ip.parse:ip.parseInline)(c,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(s);try{i.hooks&&(t=i.hooks.preprocess(t));let o=(i.hooks?i.hooks.provideLexer(e):e?rp.lex:rp.lexInline)(t,i);i.hooks&&(o=i.hooks.processAllTokens(o)),i.walkTokens&&this.walkTokens(o,i.walkTokens);let a=(i.hooks?i.hooks.provideParser(e):e?ip.parse:ip.parseInline)(o,i);return i.hooks&&(a=i.hooks.postprocess(a)),a}catch(o){return s(o)}}}onError(e,t){return n=>{if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,e){let r="

An error occurred:

"+Kh(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Mv=new AQn;Pr.options=Pr.setOptions=function(e){return Mv.setOptions(e),Pr.defaults=Mv.defaults,Pkt(Pr.defaults),Pr};Pr.getDefaults=REe;Pr.defaults=Dv;Pr.use=function(...e){return Mv.use(...e),Pr.defaults=Mv.defaults,Pkt(Pr.defaults),Pr};Pr.walkTokens=function(e,t){return Mv.walkTokens(e,t)};Pr.parseInline=Mv.parseInline;Pr.Parser=ip;Pr.parser=ip.parse;Pr.Renderer=A6;Pr.TextRenderer=CEe;Pr.Lexer=rp;Pr.lexer=rp.lex;Pr.Tokenizer=v6;Pr.Hooks=F1;Pr.parse=Pr;NRi=Pr.options,PRi=Pr.setOptions,CRi=Pr.use,MRi=Pr.walkTokens,DRi=Pr.parseInline,LRi=ip.parse,URi=rp.lex});function k6(e){let t=e.split(` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${$h(e,!0)}`}br(e){return"
"}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=AIt(e);if(i===null)return r;e=i;let s='
",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=AIt(e);if(i===null)return $h(n);e=i;let s=`${$h(n)}{let o=i[s].flat(1/0);n=n.concat(this.walkTokens(o,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...o){let a=i.renderer.apply(this,o);return a===!1&&(a=s.apply(this,o)),a}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new FZ(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let o=s,a=n.renderer[o],c=i[o];i[o]=(...u)=>{let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new UZ(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let o=s,a=n.tokenizer[o],c=i[o];i[o]=(...u)=>{let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new eU;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let o=s,a=n.hooks[o],c=i[o];eU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&eU.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await a.call(i,u);return c.call(i,d)})();let l=a.call(i,u);return c.call(i,l)}:i[o]=(...u)=>{if(this.defaults.async)return(async()=>{let d=await a.apply(i,u);return d===!1&&(d=await c.apply(i,u)),d})();let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(o){let a=[];return a.push(s.call(this,o)),i&&(a=a.concat(i.call(this,o))),a}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return ap.lex(e,t??this.defaults)}parser(e,t){return cp.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},s=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let o=i.hooks?await i.hooks.preprocess(t):t,a=await(i.hooks?await i.hooks.provideLexer(e):e?ap.lex:ap.lexInline)(o,i),c=i.hooks?await i.hooks.processAllTokens(a):a;i.walkTokens&&await Promise.all(this.walkTokens(c,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser(e):e?cp.parse:cp.parseInline)(c,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(s);try{i.hooks&&(t=i.hooks.preprocess(t));let o=(i.hooks?i.hooks.provideLexer(e):e?ap.lex:ap.lexInline)(t,i);i.hooks&&(o=i.hooks.processAllTokens(o)),i.walkTokens&&this.walkTokens(o,i.walkTokens);let a=(i.hooks?i.hooks.provideParser(e):e?cp.parse:cp.parseInline)(o,i);return i.hooks&&(a=i.hooks.postprocess(a)),a}catch(o){return s(o)}}}onError(e,t){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let r="

An error occurred:

"+$h(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Hv=new der;Nr.options=Nr.setOptions=function(e){return Hv.setOptions(e),Nr.defaults=Hv.defaults,kIt(Nr.defaults),Nr};Nr.getDefaults=ebe;Nr.defaults=qv;Nr.use=function(...e){return Hv.use(...e),Nr.defaults=Hv.defaults,kIt(Nr.defaults),Nr};Nr.walkTokens=function(e,t){return Hv.walkTokens(e,t)};Nr.parseInline=Hv.parseInline;Nr.Parser=cp;Nr.parser=cp.parse;Nr.Renderer=FZ;Nr.TextRenderer=cbe;Nr.Lexer=ap;Nr.lexer=ap.lex;Nr.Tokenizer=UZ;Nr.Hooks=eU;Nr.parse=Nr;dIi=Nr.options,fIi=Nr.setOptions,pIi=Nr.use,hIi=Nr.walkTokens,mIi=Nr.parseInline,gIi=cp.parse,yIi=ap.lex});function qZ(e){let t=e.split(` `),n=[],r=null,i=null,s=[];function o(){let a=s.join(` -`).trim();i?i.content=a:r?r.content=a:a&&n.push({heading:"_preamble",level:0,content:a,subsections:[]}),s=[]}for(let a of t){let c=a.match(/^## (.+)$/),u=a.match(/^### (.+)$/);c?(o(),i&&r&&(r.subsections.push(i),i=null),r&&n.push(r),r={heading:c[1],level:2,content:"",subsections:[]},i=null):u?(o(),i&&r&&r.subsections.push(i),i={heading:u[1],level:3,content:"",subsections:[]}):s.push(a)}return o(),i&&r&&r.subsections.push(i),r&&n.push(r),n}function I6(e){let t=[],n=/^[-*]\s+\[([ xX])\]\s+(.+)$/gm,r=n.exec(e);for(;r!==null;)t.push({checked:r[1].toLowerCase()==="x",text:r[2].trim()}),r=n.exec(e);return t}var MEe=v(()=>{"use strict";Bkt()});var Gkt,zkt=v(()=>{"use strict";Gkt=new Set(["STAGE.md","state.json","units","feedback","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","drift-assessments","iterations.jsonl","decisions.jsonl","no-decisions.json","upstream-reconciliation.json","gate-session.json"])});import{readdir as Pl,readFile as Zh}from"node:fs/promises";import{basename as x6,join as Fi,relative as Wkt,resolve as Vkt}from"node:path";function LEe(e,t){try{return(0,z_.default)(e)}catch(n){if(!tI(n))throw n;let{text:r,removed:i}=ag(e);if(i.length===0)throw n;let s=(0,z_.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function Kkt(e){let t={...e};for(let n in t){let r=t[n];r instanceof Date&&(t[n]=r.toISOString().split("T")[0])}return t}function Zkt(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function Ykt(e){return e.replace(/^# .+$/m,"").trim()}async function q1(e){try{let t=Fi(e,"intent.md"),n=await Zh(t,"utf-8"),{data:r,content:i}=LEe(n,t),s=Kkt(r),o=Zkt(i),a=Ykt(i),c=k6(a);return{slug:x6(e),frontmatter:s,title:o,sections:c,rawContent:n}}catch(t){let n=Fi(e,"intent.md");return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${n}:`,t),null}}async function Jkt(e){try{let t=await Zh(e,"utf-8"),{data:n,content:r}=LEe(t,e),i=Kkt(n),s=Zkt(r),o=Ykt(r),a=k6(o),c=x6(e,".md"),u=c.match(/^unit-(\d+)/),l=u?Number.parseInt(u[1],10):0;return{slug:c,number:l,frontmatter:i,title:s,sections:a,rawContent:t}}catch(t){return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${e}:`,t),null}}async function O6(e){let t=[];try{let n=Fi(e,"stages"),r=await Pl(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=Fi(n,i.name,"units"),a=(await Pl(s)).filter(c=>/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/.test(c)).sort();for(let c of a){let u=await Jkt(Fi(s,c));u&&(u.frontmatter.stage||(u.frontmatter.stage=i.name),t.push(u))}}catch{}}catch{}return t.sort((n,r)=>n.number-r.number)}async function N6(e){let t={};try{let n=Fi(e,"stages"),r=await Pl(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=i.name,o=await RQn(n,s);t[s]={stage:s,status:o.status,phase:o.phase,started_at:void 0,completed_at:void 0,gate_entered_at:void 0,gate_outcome:void 0}}}catch{}return t}async function RQn(e,t){let n=Fi(e,t),r=Fi(n,"units"),i=[];try{let l=(await Pl(r)).filter(d=>d.endsWith(".md"));i=await Promise.all(l.map(async d=>{try{let f=await Zh(Fi(r,d),"utf-8");return(0,z_.default)(f).data}catch{return{}}}))}catch{}if(i.length===0)return{status:"pending",phase:"elaborate"};if(!i.every(l=>{let d=l.reviews;return d&&typeof d=="object"&&Object.values(d).every(f=>!!f)}))return{status:"in_progress",phase:"review"};let o=i.some(l=>!l.started_at||l.started_at===null),a=i.some(l=>{let d=Array.isArray(l.iterations)?l.iterations:[];return d.length===0?!1:!d[d.length-1]?.result});return o||a?{status:"in_progress",phase:"execute"}:i.every(l=>{let d=l.approvals;return d&&typeof d=="object"&&!!d.user})?{status:"in_progress",phase:"complete"}:i.every(l=>{let d=l.approvals;return d&&typeof d=="object"&&Object.values(d).every(f=>!!f)})?{status:"completed",phase:""}:{status:"in_progress",phase:"approve"}}async function P6(e){let t=[];try{let n=Fi(e,"knowledge"),r=await Pl(n);for(let i of r.sort())if(i.endsWith(".md"))try{let s=await Zh(Fi(n,i),"utf-8"),{content:o}=(0,z_.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function C6(e){let t=[];try{let n=Fi(e,"stages"),r=await Pl(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=Fi(n,i.name),o=await Pl(s);for(let a of o.sort())if(a.endsWith(".md"))try{let c=await Zh(Fi(s,a),"utf-8"),{content:u}=(0,z_.default)(c);t.push({stage:i.name,name:a.replace(/\.md$/,""),content:u})}catch{}for(let a of["knowledge","discovery"])try{let c=Fi(s,a),u=await Pl(c,{withFileTypes:!0,encoding:"utf8"});for(let l of u.sort((d,f)=>d.name.localeCompare(f.name)))if(!(!l.isFile()||!l.name.endsWith(".md")))try{let d=await Zh(Fi(c,l.name),"utf-8"),{content:f}=(0,z_.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function Xkt(e){let t=[],n;try{n=await Pl(e,{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let r of n){let i=Fi(e,r.name);r.isDirectory()?t.push(...await Xkt(i)):t.push(i)}return t}async function DEe(e,t,n,r){let i=x6(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await Zh(e,"utf-8"),{content:a}=(0,z_.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(kQn.includes(s))try{let o=await Zh(e,"utf-8"),a=await R5(o,e,ibt(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(wQn.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if(IQn.includes(s))try{let o=await Zh(e,"utf-8");return{stage:t,name:n,type:"markdown",content:o,relativePath:r}}catch{}return{stage:t,name:n,type:"file",relativePath:r}}function B1(e,t){let r=`.haiku/intents/${x6(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function OQn(e){let t=[],n=Vkt(e),r=`${n}/`,i;try{i=await Pl(Fi(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let s of i){if(!s.isDirectory())continue;let o=s.name,a=Fi(e,"stages",o,"units"),c;try{c=(await Pl(a,{withFileTypes:!0,encoding:"utf8"})).filter(u=>u.isFile()&&xQn.test(u.name)).map(u=>u.name).sort()}catch{continue}for(let u of c){let l=Fi(a,u),d;try{let f=await Zh(l,"utf-8"),h=LEe(f,l).data.outputs;d=Array.isArray(h)?h.filter(m=>typeof m=="string"):[]}catch{continue}for(let f of d){let p=B1(f,e),h=Vkt(n,p);if(h!==n&&!h.startsWith(r))continue;let m=Wkt(n,h),g=await DEe(h,o,m,m);g&&t.push({absPath:h,artifact:g})}}}return t}async function Qkt(e,t=""){let n=[],r;try{r=await Pl(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&Gkt.has(i.name)||t===""&&i.name==="artifacts"||t===""&&(i.name==="knowledge"||i.name==="discovery"))continue;let s=t?`${t}/${i.name}`:i.name,o=Fi(e,i.name);i.isDirectory()?n.push(...await Qkt(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function M6(e){let t=[],n=[],r=new Set,i=[];try{let s=Fi(e,"stages");i=(await Pl(s,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(a=>a.name);for(let a of i){let c=Fi(s,a,"artifacts"),u=(await Xkt(c)).sort();for(let l of u){let d=Wkt(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await DEe(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await OQn(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=Fi(e,"stages",s),a=await Qkt(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c))continue;let l=u,d=`stages/${s}/${u}`,f=await DEe(c,s,l,d);f&&(n.push(f),r.add(c))}}return{outputs:t,other:n}}var z_,wQn,kQn,IQn,xQn,D6=v(()=>{"use strict";uD();z_=_e(sn(),1);zSe();MEe();zkt();wQn=[".png",".jpg",".jpeg",".svg",".webp",".gif"],kQn=[".html",".htm"],IQn=[".feature",".gherkin",".txt",".yaml",".yml",".json",".toml",".ini",".env",".sql",".graphql",".gql",".sh",".bash",".zsh",".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".rb",".go",".rs",".java",".kt",".swift",".c",".h",".cpp",".cs",".css",".scss",".cue",".tf",".hcl"];xQn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});var $kt=v(()=>{"use strict";Npe();MEe();D6()});import{readdir as eIt,readFile as NQn}from"node:fs/promises";import{basename as PQn,join as UEe,relative as CQn,resolve as tIt}from"node:path";async function rIt(e){let t=tIt(e),n=`${t}/`,r={},i;try{i=await eIt(UEe(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=UEe(e,"stages",s.name,"units"),a;try{a=(await eIt(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&MQn.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=UEe(o,c),l=PQn(c,".md"),d;try{let f=await NQn(u,"utf-8"),p=(0,nIt.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){let p=B1(f,e),h=tIt(t,p);if(h!==t&&!h.startsWith(n))continue;let m=CQn(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var nIt,MQn,iIt=v(()=>{"use strict";nIt=_e(sn(),1);D6();MQn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});function G1(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var jEe=v(()=>{"use strict"});import{readFile as sIt,stat as DQn}from"node:fs/promises";import{basename as LQn,relative as UQn,resolve as oIt}from"node:path";async function uIt(e,t,n){if(!n||n.length===0)return[];let r=oIt(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string")continue;let a=B1(o,e),c=oIt(r,a);if(c!==r&&!c.startsWith(i))continue;let u=UQn(r,c),l=LQn(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=G1(t,u),m=!0,y;try{let E=await DQn(c);y=E.size,E.isFile()||(m=!1)}catch{m=!1}let g={path:u,name:p,url:h,exists:m,...y!==void 0?{sizeBytes:y}:{}};if(f===".md"){let E;if(m)try{let S=await sIt(c,"utf-8"),{content:_}=(0,cIt.default)(S);E=aIt(_,jQn)}catch{}s.push({...g,type:"markdown",...E!==void 0?{previewBody:E}:{}});continue}if(qQn.has(f)){let E;if(m)try{let S=await sIt(c,"utf-8");E=aIt(S,FQn)}catch{}s.push({...g,type:"html",...E!==void 0?{previewBody:E}:{}});continue}if(HQn.has(f)){s.push({...g,type:"image"});continue}s.push({...g,type:"file"})}return s}function aIt(e,t){let n=e.trim();return n.length<=t?n:`${n.slice(0,t).trimEnd()} +`).trim();i?i.content=a:r?r.content=a:a&&n.push({heading:"_preamble",level:0,content:a,subsections:[]}),s=[]}for(let a of t){let c=a.match(/^## (.+)$/),u=a.match(/^### (.+)$/);c?(o(),i&&r&&(r.subsections.push(i),i=null),r&&n.push(r),r={heading:c[1],level:2,content:"",subsections:[]},i=null):u?(o(),i&&r&&r.subsections.push(i),i={heading:u[1],level:3,content:"",subsections:[]}):s.push(a)}return o(),i&&r&&r.subsections.push(i),r&&n.push(r),n}function BZ(e){let t=[],n=/^[-*]\s+\[([ xX])\]\s+(.+)$/gm,r=n.exec(e);for(;r!==null;)t.push({checked:r[1].toLowerCase()==="x",text:r[2].trim()}),r=n.exec(e);return t}var ube=v(()=>{"use strict";UIt()});var FIt,jIt,HIt=v(()=>{"use strict";FIt=new Set(["STAGE.md","state.json","units","feedback","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","drift-assessments","iterations.jsonl","decisions.jsonl","no-decisions.json","upstream-reconciliation.json","gate-session.json"]),jIt=new Set(["intent.md","stages","knowledge","feedback","reflection.md","intent-tick.json","action-log.jsonl","write-audit.jsonl","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","drift-markers.json","drift-assessments",".gitattributes",".gitkeep"])});import{existsSync as fer}from"node:fs";import{readdir as Yu,readFile as up}from"node:fs/promises";import{basename as VZ,join as wi,relative as qIt,resolve as GZ}from"node:path";function lbe(e,t){try{return(0,ZE.default)(e)}catch(n){if(!aI(n))throw n;let{text:r,removed:i}=fg(e);if(i.length===0)throw n;let s=(0,ZE.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function BIt(e){let t={...e};for(let n in t){let r=t[n];r instanceof Date&&(t[n]=r.toISOString().split("T")[0])}return t}function GIt(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function zIt(e){return e.replace(/^# .+$/m,"").trim()}async function nU(e){try{let t=wi(e,"intent.md"),n=await up(t,"utf-8"),{data:r,content:i}=lbe(n,t),s=BIt(r),o=GIt(i),a=zIt(i),c=qZ(a);return{slug:VZ(e),frontmatter:s,title:o,sections:c,rawContent:n}}catch(t){let n=wi(e,"intent.md");return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${n}:`,t),null}}async function VIt(e){try{let t=await up(e,"utf-8"),{data:n,content:r}=lbe(t,e),i=BIt(n),s=GIt(r),o=zIt(r),a=qZ(o),c=VZ(e,".md"),u=c.match(/^unit-(\d+)/),l=u?Number.parseInt(u[1],10):0;return{slug:c,number:l,frontmatter:i,title:s,sections:a,rawContent:t}}catch(t){return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${e}:`,t),null}}async function WZ(e){let t=[];try{let n=wi(e,"stages"),r=await Yu(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=wi(n,i.name,"units"),a=(await Yu(s)).filter(c=>/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/.test(c)).sort();for(let c of a){let u=await VIt(wi(s,c));u&&(u.frontmatter.stage||(u.frontmatter.stage=i.name),t.push(u))}}catch{}}catch{}return t.sort((n,r)=>n.number-r.number)}async function KZ(e){let t={};try{let n=wi(e,"stages"),r=await Yu(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=i.name,o=await per(n,s);t[s]={stage:s,status:o.status,phase:o.phase,started_at:void 0,completed_at:void 0,gate_entered_at:void 0,gate_outcome:void 0}}}catch{}return t}async function per(e,t){let n=wi(e,t),r=wi(n,"units"),i=[];try{let l=(await Yu(r)).filter(d=>d.endsWith(".md"));i=await Promise.all(l.map(async d=>{try{let f=await up(wi(r,d),"utf-8");return(0,ZE.default)(f).data}catch{return{}}}))}catch{}if(i.length===0)return{status:"pending",phase:"elaborate"};if(!i.every(l=>{let d=l.reviews;return d&&typeof d=="object"&&Object.values(d).every(f=>!!f)}))return{status:"in_progress",phase:"review"};let o=i.some(l=>!l.started_at||l.started_at===null),a=i.some(l=>{let d=Array.isArray(l.iterations)?l.iterations:[];return d.length===0?!1:!d[d.length-1]?.result});return o||a?{status:"in_progress",phase:"execute"}:i.every(l=>{let d=l.approvals;return d&&typeof d=="object"&&!!d.user})?{status:"in_progress",phase:"complete"}:i.every(l=>{let d=l.approvals;return d&&typeof d=="object"&&Object.values(d).every(f=>!!f)})?{status:"completed",phase:""}:{status:"in_progress",phase:"approve"}}async function YZ(e){let t=[];try{let n=wi(e,"knowledge"),r=await Yu(n);for(let i of r.sort())if(i.endsWith(".md"))try{let s=await up(wi(n,i),"utf-8"),{content:o}=(0,ZE.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function ZZ(e){let t=[];try{let n=wi(e,"stages"),r=await Yu(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=wi(n,i.name),o=await Yu(s);for(let a of o.sort())if(a.endsWith(".md"))try{let c=await up(wi(s,a),"utf-8"),{content:u}=(0,ZE.default)(c);t.push({stage:i.name,name:a.replace(/\.md$/,""),content:u})}catch{}for(let a of["knowledge","discovery"])try{let c=wi(s,a),u=await Yu(c,{withFileTypes:!0,encoding:"utf8"});for(let l of u.sort((d,f)=>d.name.localeCompare(f.name)))if(!(!l.isFile()||!l.name.endsWith(".md")))try{let d=await up(wi(c,l.name),"utf-8"),{content:f}=(0,ZE.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function WIt(e){let t=[],n;try{n=await Yu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let r of n){let i=wi(e,r.name);r.isDirectory()?t.push(...await WIt(i)):t.push(i)}return t}async function zZ(e,t,n,r){let i=VZ(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await up(e,"utf-8"),{content:a}=(0,ZE.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(mer.includes(s))try{let o=await up(e,"utf-8"),a=await q5(o,e,Ubt(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(her.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if(ger.includes(s))return{stage:t,name:n,type:"video",relativePath:r};if(Ser.includes(s))try{let o=await up(e,"utf-8");return{stage:t,name:n,type:"code",language:yer[s],content:o,relativePath:r}}catch{}try{let o=await up(e);if(Eer(o))return{stage:t,name:n,type:"code",content:o.toString("utf-8"),relativePath:r}}catch{}return{stage:t,name:n,type:"file",relativePath:r}}function Eer(e){let t=e.subarray(0,8192);if(t.length===0)return!0;let n=0;for(let r of t){if(r===0)return!1;(r<9||r>13&&r<32)&&(n+=1)}return n/t.length<.1}function rU(e,t){let r=`.haiku/intents/${VZ(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function ber(e){let t=[],n=GZ(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):GZ(n,"..","..",".."),o=`${s}/`,a;try{a=await Yu(wi(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let c of a){if(!c.isDirectory())continue;let u=c.name,l=wi(e,"stages",u,"units"),d;try{d=(await Yu(l,{withFileTypes:!0,encoding:"utf8"})).filter(f=>f.isFile()&&_er.test(f.name)).map(f=>f.name).sort()}catch{continue}for(let f of d){let p=wi(l,f),h;try{let m=await up(p,"utf-8"),y=lbe(m,p).data.outputs;h=Array.isArray(y)?y.filter(E=>typeof E=="string"):[]}catch{continue}for(let m of h){let g=rU(m,e),y=GZ(n,g),E=y!==n&&y.startsWith(r),S=y,_=qIt(n,y),b=_;if(!(E&&fer(y))){let A=GZ(s,m);if(A!==s&&A.startsWith(o))S=A,_=m,b=void 0;else if(!E)continue}let T=await zZ(S,u,_,b??_);T&&(b===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function KIt(e,t=""){let n=[],r;try{r=await Yu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&FIt.has(i.name)||t===""&&i.name==="artifacts"||t===""&&(i.name==="knowledge"||i.name==="discovery"))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await KIt(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function JZ(e){let t=[],n=[],r=new Set,i=[];try{let s=wi(e,"stages");i=(await Yu(s,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(a=>a.name);for(let a of i){let c=wi(s,a,"artifacts"),u=(await WIt(c)).sort();for(let l of u){let d=qIt(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await zZ(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await ber(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await KIt(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||Ter.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await zZ(c,s,l,d);if(f){let p=u.indexOf("/");p>0&&(f.directory=u.slice(0,p)),n.push(f),r.add(c)}}}return{outputs:t,other:n}}async function XZ(e){let t=[],n=await YIt(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await zZ(r,"",i,i);if(!s)continue;let o=i.indexOf("/");o>0&&(s.directory=i.slice(0,o)),t.push(s)}return t}async function YIt(e,t=""){let n=[],r;try{r=await Yu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&jIt.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await YIt(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var ZE,her,mer,ger,yer,Ser,_er,Ter,QZ=v(()=>{"use strict";yD();ZE=Se(Kt(),1);dEe();ube();HIt();her=[".png",".jpg",".jpeg",".svg",".webp",".gif"],mer=[".html",".htm"],ger=[".mp4",".webm",".mov",".m4v",".ogv"],yer={".ts":"typescript",".tsx":"tsx",".js":"javascript",".jsx":"jsx",".mjs":"javascript",".cjs":"javascript",".py":"python",".rb":"ruby",".go":"go",".rs":"rust",".java":"java",".kt":"kotlin",".swift":"swift",".c":"c",".h":"c",".cpp":"cpp",".cs":"csharp",".css":"css",".scss":"scss",".sh":"bash",".bash":"bash",".zsh":"bash",".sql":"sql",".graphql":"graphql",".gql":"graphql",".yaml":"yaml",".yml":"yaml",".json":"json",".toml":"ini",".ini":"ini",".env":"bash",".tf":"terraform",".hcl":"terraform",".cue":"go",".feature":"gherkin",".gherkin":"gherkin"},Ser=[".feature",".gherkin",".txt",".yaml",".yml",".json",".toml",".ini",".env",".sql",".graphql",".gql",".sh",".bash",".zsh",".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".rb",".go",".rs",".java",".kt",".swift",".c",".h",".cpp",".cs",".css",".scss",".cue",".tf",".hcl"];_er=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;Ter=new Set(["BRIEF.md","elaboration.md","observations.md"])});var ZIt=v(()=>{"use strict";Zpe();ube();QZ()});function iU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var dbe=v(()=>{"use strict"});import{readFile as JIt,stat as ver}from"node:fs/promises";import{basename as $It,relative as Aer,resolve as XIt}from"node:path";function fbe(e){let t=$It(e);return!!(t.startsWith(".")||xer.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function t0t(e,t,n){if(!n||n.length===0)return[];let r=XIt(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||fbe(o))continue;let a=rU(o,e),c=XIt(r,a);if(c!==r&&!c.startsWith(i))continue;let u=Aer(r,c),l=$It(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=iU(t,u),m=!0,g;try{let E=await ver(c);g=E.size,E.isFile()||(m=!1)}catch{m=!1}let y={path:u,name:p,url:h,exists:m,...g!==void 0?{sizeBytes:g}:{}};if(f===".md"){let E;if(m)try{let S=await JIt(c,"utf-8"),{content:_}=(0,e0t.default)(S);E=QIt(_,Rer)}catch{}s.push({...y,type:"markdown",...E!==void 0?{previewBody:E}:{}});continue}if(Ier.has(f)){let E;if(m)try{let S=await JIt(c,"utf-8");E=QIt(S,wer)}catch{}s.push({...y,type:"html",...E!==void 0?{previewBody:E}:{}});continue}if(ker.has(f)){s.push({...y,type:"image"});continue}s.push({...y,type:"file"})}return s}function QIt(e,t){let n=e.trim();return n.length<=t?n:`${n.slice(0,t).trimEnd()} -\u2026`}var cIt,jQn,FQn,HQn,qQn,lIt=v(()=>{"use strict";cIt=_e(sn(),1);D6();jEe();jQn=2e3,FQn=2e3,HQn=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),qQn=new Set([".html",".htm"])});import{spawn as BQn}from"node:child_process";import{appendFileSync as GQn,existsSync as FEe,mkdirSync as pIt,writeFileSync as hIt}from"node:fs";import{readFile as z1}from"node:fs/promises";import{dirname as HEe,join as Yh,resolve as U6}from"node:path";async function gIt(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await uIt(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await rIt(e);return{unitOutputs:i,outputDeclaredBy:s}}function sp(e,t){console.error(`[haiku] ${t} ready \u2192 ${e} - Share this URL with the reviewer if the browser didn't auto-open.`);let n=process.platform==="darwin"?["open",e]:process.platform==="win32"?["powershell","-NoProfile","-NonInteractive","-Command",`Start-Process '${e.replace(/'/g,"''")}'`]:["xdg-open",e];try{let r=BQn(n[0],n.slice(1),{stdio:"ignore",detached:!0});r.unref(),r.on("error",i=>{console.error(`[haiku] Browser launcher ${n[0]} failed: ${i.message}. Paste ${e} into a browser to continue.`)}),r.on("exit",(i,s)=>{i!==null&&i!==0&&console.error(`[haiku] Browser launcher ${n[0]} exited with code ${i}. Paste ${e} into a browser to continue.`),s&&console.error(`[haiku] Browser launcher ${n[0]} terminated by signal ${s}. Paste ${e} into a browser to continue.`)})}catch(r){console.error(`[haiku] Browser launcher threw synchronously: ${r instanceof Error?r.message:String(r)}. Paste ${e} into a browser to continue.`)}}function L6(e){try{GQn(WQn,`${new Date().toISOString()} ${e} +\u2026`}var e0t,Rer,wer,ker,Ier,xer,pbe=v(()=>{"use strict";e0t=Se(Kt(),1);QZ();dbe();Rer=2e3,wer=2e3,ker=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),Ier=new Set([".html",".htm"]),xer=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as n0t,readFile as Oer}from"node:fs/promises";import{basename as Per,join as hbe,relative as Ner,resolve as r0t}from"node:path";async function s0t(e){let t=r0t(e),n=`${t}/`,r={},i;try{i=await n0t(hbe(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=hbe(e,"stages",s.name,"units"),a;try{a=(await n0t(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&Cer.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=hbe(o,c),l=Per(c,".md"),d;try{let f=await Oer(u,"utf-8"),p=(0,i0t.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(fbe(f))continue;let p=rU(f,e),h=r0t(t,p);if(h!==t&&!h.startsWith(n))continue;let m=Ner(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var i0t,Cer,o0t=v(()=>{"use strict";i0t=Se(Kt(),1);QZ();pbe();Cer=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as Mer}from"node:child_process";import{appendFileSync as Der,existsSync as mbe,mkdirSync as u0t,writeFileSync as l0t}from"node:fs";import{readFile as sU}from"node:fs/promises";import{dirname as gbe,join as em,resolve as e6}from"node:path";async function f0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await t0t(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await s0t(e);return{unitOutputs:i,outputDeclaredBy:s}}function lp(e,t,n){if(console.error(`[haiku] ${t} ready \u2192 ${e} + Share this URL with the reviewer if the browser didn't auto-open.`),Xbt(e,n?{sessionId:n}:{}))return;let r=process.platform==="darwin"?["open",e]:process.platform==="win32"?["powershell","-NoProfile","-NonInteractive","-Command",`Start-Process '${e.replace(/'/g,"''")}'`]:["xdg-open",e];try{let i=Mer(r[0],r.slice(1),{stdio:"ignore",detached:!0});i.unref(),i.on("error",s=>{console.error(`[haiku] Browser launcher ${r[0]} failed: ${s.message}. Paste ${e} into a browser to continue.`)}),i.on("exit",(s,o)=>{s!==null&&s!==0&&console.error(`[haiku] Browser launcher ${r[0]} exited with code ${s}. Paste ${e} into a browser to continue.`),o&&console.error(`[haiku] Browser launcher ${r[0]} terminated by signal ${o}. Paste ${e} into a browser to continue.`)})}catch(i){console.error(`[haiku] Browser launcher threw synchronously: ${i instanceof Error?i.message:String(i)}. Paste ${e} into a browser to continue.`)}}function $Z(e){try{Der(Fer,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function KQn(e,t){if(!t){L6(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(L6(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){L6(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),vv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{L6(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),vv(e,"tool call cancelled")},{once:!0})}async function yIt(e,t){let{name:n,arguments:r}=e.params;if(V1.has(n))return GEe(n,r??{},t);if(n==="haiku_report"){let i=r??{},s=i.message;if(!s)return{content:[{type:"text",text:"Error: message is required"}],isError:!0};let o=i.contact_email,a=i.name,c=i._session_context;if(!Sne())try{let u=Yh(we(),"reports");pIt(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=Yh(u,`${l}.json`);return hIt(d,`${JSON.stringify({recorded_at:new Date().toISOString(),message:s,contact_email:o??null,name:a??null,session_context:c??null},null,2)} -`),{content:[{type:"text",text:`Sentry is not configured in this installation; report written locally to ${d}.`}]}}catch(u){return{content:[{type:"text",text:`Sentry is not configured and the local report sink failed: ${u instanceof Error?u.message:String(u)}`}],isError:!0}}return yne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=qe(i,Yme,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let B=fv();if(B)o=B.slug;else{let G=we(),X=Yh(G,"intents"),q=Mg(X).filter(C=>C.data.status!=="completed");if(q.length===1)o=q[0].slug;else return q.length===0?{content:[{type:"text",text:"No active intents found. Start one with /haiku:haiku-start, or pass `intent` explicitly."}],isError:!0}:{content:[{type:"text",text:`Multiple active intents (${q.map(C=>C.slug).join(", ")}). Pass \`intent\` explicitly, or checkout an intent branch so the tool can auto-resolve.`}],isError:!0}}}let a=fe(o),c=await q1(a);if(!c)return{content:[{type:"text",text:`Could not parse intent "${o}" \u2014 .haiku/intents/${o}/intent.md missing or malformed.`}],isError:!0};let u=i.stage||"",d=c.frontmatter.studio??"",{findCurrentStage:f}=await Promise.resolve().then(()=>(hc(),T0)),h=u||(d?f(o,d)??"":""),m=await O6(a),y=t3(m),g=r3(y,m),E=c.sections.find(B=>B.heading?.toLowerCase().includes("completion criteria")||B.heading?.toLowerCase().includes("success criteria")),S=E?I6(E.content):[],_=yZ({intent_dir:a,intent_slug:o,target:""});_.ad_hoc=!0,_.stage=h||void 0;let{unitOutputs:b,outputDeclaredBy:T}=await gIt(a,_.session_id,m);Object.assign(_,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:g,unitOutputs:b,outputDeclaredBy:T});let A=await N6(a),R=await P6(a),k=await C6(a),{outputs:x,other:N}=await M6(a);for(let B of[...x,...N])B.relativePath&&(B.intentRelativePath=B.relativePath,B.relativePath=G1(_.session_id,B.relativePath));Object.assign(_,{stageStates:A,knowledgeFiles:R,stageArtifacts:k,outputArtifacts:x,otherFiles:N});let P=await H_(),D=ji()?_v(_.session_id,await Lg(P),"intent"):`http://127.0.0.1:${P}/review/${_.session_id}`,j=h?`/stages/${h}`:"",V=`${D}${j}`;KQn(_.session_id,t);let Z=i.gate_kind||"";return Z==="spec"||Z==="approval"?(_.ad_hoc=!1,sp(V,"User gate review"),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${V} +`)}function jer(e,t){if(!t){$Z(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if($Z(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){$Z(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Iv(e,"tool call cancelled");return}t.addEventListener("abort",()=>{$Z(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Iv(e,"tool call cancelled")},{once:!0})}async function p0t(e,t){let{name:n,arguments:r}=e.params;if(oU.has(n))return Ebe(n,r??{},t);if(n==="haiku_report"){let i=r??{},s=i.message;if(!s)return{content:[{type:"text",text:"Error: message is required"}],isError:!0};let o=i.contact_email,a=i.name,c=i._session_context;if(!Lne())try{let u=em(ve(),"reports");u0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=em(u,`${l}.json`);return l0t(d,`${JSON.stringify({recorded_at:new Date().toISOString(),message:s,contact_email:o??null,name:a??null,session_context:c??null},null,2)} +`),{content:[{type:"text",text:`Sentry is not configured in this installation; report written locally to ${d}.`}]}}catch(u){return{content:[{type:"text",text:`Sentry is not configured and the local report sink failed: ${u instanceof Error?u.message:String(u)}`}],isError:!0}}return Dne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,pge,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let B=gv();if(B)o=B.slug;else{let X=ve(),G=em(X,"intents"),M=Ug(G).filter(q=>q.data.status!=="completed");if(M.length===1)o=M[0].slug;else return M.length===0?{content:[{type:"text",text:"No active intents found. Start one with /haiku:haiku-start, or pass `intent` explicitly."}],isError:!0}:{content:[{type:"text",text:`Multiple active intents (${M.map(q=>q.slug).join(", ")}). Pass \`intent\` explicitly, or checkout an intent branch so the tool can auto-resolve.`}],isError:!0}}}let a=pe(o),c=await nU(a);if(!c)return{content:[{type:"text",text:`Could not parse intent "${o}" \u2014 .haiku/intents/${o}/intent.md missing or malformed.`}],isError:!0};let u=i.stage||"",d=c.frontmatter.studio??"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),k0)),h=u||(d?f(o,d)??"":""),m=await WZ(a),g=y9(m),y=E9(g,m),E=c.sections.find(B=>B.heading?.toLowerCase().includes("completion criteria")||B.heading?.toLowerCase().includes("success criteria")),S=E?BZ(E.content):[],_=MY({intent_dir:a,intent_slug:o,target:""});_.ad_hoc=!0,_.stage=h||void 0;let{unitOutputs:b,outputDeclaredBy:T}=await f0t(a,_.session_id,m);Object.assign(_,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:y,unitOutputs:b,outputDeclaredBy:T});let A=await KZ(a),R=await YZ(a),x=await ZZ(a),{outputs:k,other:P}=await JZ(a),N=await XZ(a);for(let B of[...k,...P,...N])B.relativePath&&(B.intentRelativePath=B.relativePath,B.relativePath=iU(_.session_id,B.relativePath));Object.assign(_,{stageStates:A,knowledgeFiles:R,stageArtifacts:x,outputArtifacts:k,otherFiles:P,intentOtherFiles:N});let C=await VE(),F=Bi()?vv(_.session_id,await jg(C),"intent"):`http://127.0.0.1:${C}/review/${_.session_id}`,V=h?`/stages/${h}`:"",K=`${F}${V}`;jer(_.session_id,t);let $=i.gate_kind||"";return $==="spec"||$==="approval"?(_.ad_hoc=!1,lp(K,"User gate review",_.session_id),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${K} -Now call haiku_await_gate { intent: "${o}" } to block on the user's decision. On approve, the engine stamps ${Z==="spec"?"reviews.user":"approvals.user"} on each unit and the cursor advances on the next tick.`}]}):(sp(V,"Ad-hoc review"),{content:[{type:"text",text:`Ad-hoc review pane open at ${V} (stage "${h||"(unspecified)"}"). Non-blocking \u2014 keep working. The user browses and closes the pane with Done when finished; any feedback they leave persists to disk and the next \`haiku_run_next\` routes it through the normal fix-loop. No workflow action is required here.`}]})}if(n.startsWith("haiku_")&&!ZQn.has(n))return Gye(n,r??{});if(n==="open_review")return{content:[{type:"text",text:"Error: open_review cannot be called directly. Use haiku_run_next to advance \u2014 it validates units and opens the review automatically when ready."}],isError:!0};if(n==="ask_user_visual_question"){let i=zQn.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>HEe(U6(h))),l=$ge({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await H_(),p;if(ji()){let h=await Lg(f);p=_v(l.session_id,h,"question")}else p=`http://127.0.0.1:${f}/question/${l.session_id}`;return sp(p,"Question session"),await fIt(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=qe(i,tge,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let A=fv();if(A)c=A.slug;else{let R=we(),k=Yh(R,"intents"),x=Mg(k).filter(N=>N.data.status!=="completed");if(x.length===1)c=x[0].slug;else return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_intent_unresolved",message:x.length===0?"No active intents found. Pass `intent` explicitly.":`Multiple active intents (${x.map(N=>N.slug).join(", ")}). Pass \`intent\` explicitly.`})}],isError:!0}}}let u=fe(c);if(!FEe(u))return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_intent_not_found",message:`Intent "${c}" not found at ${u}.`})}],isError:!0};let l=a==="boot"||a==="auto",d=o.cwd?Yh(u,o.cwd):u,f=null,p=null;if(l&&o.processes&&o.processes.length>0){if(o.command&&o.command.length>0)return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_input_invalid",message:"`command` and `processes` are mutually exclusive. Use `command` for a one-process boot and `processes` for a stack."})}],isError:!0};f=o.processes.map(k=>({name:k.name,command:k.command,cwd:k.cwd?Yh(u,k.cwd):u,port_env:k.port_env,ready_url:k.ready_url,depends_on:k.depends_on,no_port:k.no_port}));let A=f.filter(k=>!k.no_port);if(o.primary)p=o.primary;else if(A.length===1)p=A[0].name;else return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_primary_required",message:`\`processes\` has ${A.length} port-bound entries (${A.map(k=>k.name).join(", ")}). Set \`primary: ""\` to tell the engine which one's URL Playwright should drive.`})}],isError:!0};let R=new Set(f.map(k=>k.name));if(!R.has(p))return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_primary_not_in_group",message:`\`primary: "${p}"\` does not match any process name in the group (${[...R].join(", ")}).`})}],isError:!0}}if(l&&!f&&!(o.command&&o.command.length>0)){let A=null;try{A=sye(HEe(we()))}catch(R){return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_boot_recipe_invalid",message:R instanceof Error?R.message:String(R)})}],isError:!0}}A&&(f=A.processes,p=A.primary)}let h=null;if(l&&!f&&(o.command&&o.command.length>0?h=wyt(o.command,d):h=kyt(d)),a==="boot"&&!f&&!h)return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_no_boot_target",message:`No boot target supplied, no \`.haiku/boot.md\` recipe, and no package.json dev/start script found in ${d}. Either: (a) retry haiku_view with \`command: [...]\` for a one-process app (e.g. \`["uvicorn", "app:main"]\`, \`["bin/dev"]\`, \`["go", "run", "./cmd/server"]\`) or \`processes: [...]\` with \`primary: ""\` for a stack; or (b) commit a \`.haiku/boot.md\` recipe so every agent on every harness boots this app the same way without rediscovering it (frontmatter: \`command:\`/\`processes:\`, \`cwd:\`, \`env:\`, \`ready_url:\`). The engine sets PORT + HOST env vars before spawning each process and exposes \`_PORT\` + \`_URL\` for service discovery between dependents.`})}],isError:!0};let m;try{let R=(await q1(u))?.frontmatter;R&&typeof R.studio=="string"&&R.studio&&(m=R.studio)}catch{}let y=f||h?"boot":"viewer",g=nye({intent_dir:u,intent_slug:c,studio:m,stage:o.stage,artifact:o.artifact,mode:y});if(y==="boot"&&(f||h))try{let A,R,k,x;if(f&&p){let P=await oye(g.session_id,f,p);if(P.primary.port===null)throw new Error(`primary process "${p}" has no port \u2014 cannot return URL`);A=P.primary.port,R=P.primary.command,k=P.primary.pid,x=P.processes}else if(h){let P=await xyt(g.session_id,h);if(P.port===null)throw new Error("single-process boot returned null port");A=P.port,R=P.command,k=P.pid}else throw new Error("boot mode reached without group or detection");rye(g.session_id,{boot_port:A,boot_pid:k,boot_command:R});let N=`http://127.0.0.1:${A}/`;return{content:[{type:"text",text:JSON.stringify({session_id:g.session_id,url:N,mode:"boot",intent:c,stage:o.stage??null,artifact:o.artifact??null,boot_command:R,processes:x,note:"Hand the `url` to the bundled `haiku-playwright` MCP. The dev process(es) stay up until `haiku_view_close` (or the 30min TTL). Call `haiku_view_close` with the `session_id` when done \u2014 the engine kills the whole group."})}]}}catch(A){return I0(g.session_id),{content:[{type:"text",text:JSON.stringify({error:"haiku_view_boot_failed",message:A instanceof Error?A.message:String(A),boot_command:f?f.map(R=>`${R.name}: ${R.command.join(" ")}`).join("; "):h?.description})}],isError:!0}}let E=await H_(),S=ji()?_v(g.session_id,await Lg(E),"view"):`http://127.0.0.1:${E}/view/${g.session_id}`,_=new URLSearchParams;o.stage&&_.set("stage",o.stage),o.artifact&&_.set("artifact",o.artifact);let b=_.toString(),T=b?`${S}${S.includes("?")?"&":"?"}${b}`:S;return{content:[{type:"text",text:JSON.stringify({session_id:g.session_id,url:T,mode:"viewer",intent:c,stage:o.stage??null,artifact:o.artifact??null,note:"Hand the `url` to the bundled `haiku-playwright` MCP. When done, call `haiku_view_close` with the `session_id`."})}]}}if(n==="haiku_view_close"){let i=r??{},s=qe(i,nge,"haiku_view_close");if(s)return s;let o=i,a=on(o.session_id),c=a?.session_type==="view",l=c&&a.mode==="boot"?O0(o.session_id):!1,d=I0(o.session_id);return{content:[{type:"text",text:JSON.stringify({closed:d,session_id:o.session_id,was_view_session:c,killed_boot_process:l})}]}}if(n==="haiku_await_visual_answer"){let i=r??{},s=qe(i,bme,"haiku_await_visual_answer");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=on(a);return!l||l.session_type!=="question"?{content:[{type:"text",text:`Question session ${a} not found or wrong type \u2014 call ask_user_visual_question to create a new one.`}],isError:!0}:(c&&u&&sp(u,"Question session"),await fIt(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=VQn.parse(r),s=i.title??"Design Direction";try{let l=Yh(we(),"intents",i.intent_slug,"intent.md");if(FEe(l)){let d=await z1(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await EIt(i.intent_slug);if(!p)return{content:[{type:"text",text:`Autopilot short-circuit for pick_design_direction failed: no discovery template with tool=pick_design_direction found for intent '${i.intent_slug}'. The cursor's discovery gate will not clear automatically \u2014 file a bug or fall back to manual handling.`}],isError:!0};let h=[];if(i.archetypes)h=i.archetypes;else if(i.archetypes_file){let g=await z1(U6(i.archetypes_file),"utf-8");h=O.array(qEe).parse(JSON.parse(g))}let m=h[0];BEe({absPath:p.absPath,stage:p.stage,mode:m?"select":"auto",archetype:m?.name,comments:m?`Autopilot auto-selected the first archetype ("${m.name}") \u2014 no SPA picker shown because intent.mode === "autopilot".`:"Autopilot proceeded with no archetype \u2014 intake mode with no candidates. The agent will drive the rest of the design phase from the unit specs.",source:"autopilot"});let y=m?`Autopilot auto-selected the **${m.name}** direction (intent.mode === "autopilot" \u2014 no SPA picker shown). Manifest written at \`${p.absPath}\`.`:`Autopilot proceeded with no archetype selection (intent.mode === "autopilot", no candidates supplied). Manifest written at \`${p.absPath}\`.`;return{content:[{type:"text",text:Xn(y,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await z1(U6(i.archetypes_file),"utf-8");o=O.array(qEe).parse(JSON.parse(l))}let a=eye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await H_(),u;if(ji()){let l=await Lg(c);u=_v(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return sp(u,"Direction session"),await dIt(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=qe(i,Tme,"haiku_await_design_direction");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=on(a);if(!l||l.session_type!=="design_direction")return{content:[{type:"text",text:`Design-direction session ${a} not found or wrong type \u2014 call pick_design_direction to create a new one.`}],isError:!0};let d=o.intent_slug??l.intent_slug??"";return c&&u&&sp(u,"Direction session"),await dIt(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function SIt(e,t,n){let r=U6(process.cwd(),e),i=await q1(r);if(!i)throw new Error("Could not parse intent");let s=await O6(r),o=t3(s),a=r3(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?I6(c.content):[],l=NL(i.slug),d=l??yZ({intent_dir:r,intent_slug:i.slug,gate_type:t,target:""});t!==void 0&&(d.gate_type=t),n?.gateContext&&(d.gate_context=n.gateContext),n?.stage&&(d.stage=n.stage),n?.nextStage!==void 0&&(d.next_stage=n.nextStage),n?.nextPhase!==void 0&&(d.next_phase=n.nextPhase),l&&d.pending_decision&&(d.pending_decision=null);let{unitOutputs:f,outputDeclaredBy:p}=await gIt(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=Qge(r);h&&(d.previousReview=h);let m=await N6(r),y=await P6(r),g=await C6(r),{outputs:E,other:S}=await M6(r);for(let k of[...E,...S])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=G1(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:y,stageArtifacts:g,outputArtifacts:E,otherFiles:S});let _=await H_(),b=ji(),T=b?_v(d.session_id,await Lg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,A=l!==void 0,R=A&&ov(d.session_id);return Bd(i.slug,{type:"gate_prepared",session_id:d.session_id,stage:n?.stage??d.stage??"",gate_context:n?.gateContext??d.gate_context??"stage_gate",review_url:T,browser_attached:R}),{session_id:d.session_id,review_url:T,use_remote:b,reused:A,browser_attached:R}}function YQn(e,t,n,r){return!(!e||!t||ov(n)||r&&PL(r))}async function _It(e,t={}){let{autoOpen:n=!0,signal:r,reviewUrl:i,timeoutMs:s=1800*1e3}=t,o=on(e);if(!o||o.session_type!=="review")throw new Error(`Gate review session ${e} not found or wrong type \u2014 call haiku_run_next to recreate.`);if(YQn(n,i,e,o.intent_slug)&&sp(i,"Review gate"),o.pending_decision){let u=o.pending_decision;return xl(e,{pending_decision:null,last_await_started_at:new Date().toISOString(),last_await_ended_at:new Date().toISOString(),await_count:(o.await_count??0)+1}),Bd(o.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!1}),{decision:u.decision,feedback:u.feedback,annotations:u.annotations}}let a=new Date().toISOString(),c=o.await_count??0;xl(e,{await_active:!0,await_count:c+1,last_await_started_at:a}),Bd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),Yge(e);try{for(;;){let u=!1;try{await sv(e,s,r)}catch(d){if(r?.aborted)throw d;u=!0}let l=on(e);if(l&&l.session_type==="review"&&l.pending_decision){let d=l.pending_decision;return xl(e,{pending_decision:null}),{decision:d.decision,feedback:d.feedback,annotations:d.annotations}}if(u)break;if(Xge(e))throw new Error(`Review session ${e} lost presence \u2014 the SPA never opened or the tab disconnected (no heartbeat). Re-open the URL and call haiku_await_gate when ready.`)}throw new Error("Review timeout after 30 minutes")}finally{Jge(e),xl(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Bd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function EIt(e){let t=Yh(we(),"intents",e,"intent.md");if(!FEe(t))return null;let n=await z1(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(hc(),T0)),s=i(e,r);if(!s)return null;let a=Qs(r,s).find(l=>l.kind==="discovery"&&l.tool==="pick_design_direction");if(!a?.location)return null;let c=a.location.replace(/\{intent-slug\}/g,e);return{absPath:Yh(we(),"..",c),stage:s,templateBody:a.body}}function BEe(e){pIt(HEe(e.absPath),{recursive:!0});let t={mode:e.mode,stage:e.stage,source:e.source,recorded_at:new Date().toISOString()};e.archetype&&(t.archetype=e.archetype),e.files&&e.files.length>0&&(t.files=e.files),e.comments&&(t.comments=e.comments),e.annotations&&(t.annotations=e.annotations);let n=[];if(e.source==="autopilot"?n.push("# Design Direction (autopilot)","",'Auto-selected by the workflow engine because `intent.mode === "autopilot"`. No SPA picker was shown; the agent drives the rest of the design phase from this anchor.'):n.push("# Design Direction",""),e.mode==="select"&&e.archetype&&n.push("",`**Chosen archetype:** ${e.archetype}`),e.mode==="upload"&&e.files&&e.files.length>0){n.push("",`**Uploaded ${e.files.length} reference file(s):**`);for(let r of e.files)n.push(`- \`${r.path}\`${r.caption?` \u2014 ${r.caption}`:""}`)}e.comments&&n.push("",`**Comments:** ${e.comments}`),hIt(e.absPath,mIt.default.stringify(`${n.join(` +Now call haiku_await_gate { intent: "${o}" } to block on the user's decision. On approve, the engine stamps ${$==="spec"?"reviews.user":"approvals.user"} on each unit and the cursor advances on the next tick.`}]}):(lp(K,"Ad-hoc review",_.session_id),{content:[{type:"text",text:`Ad-hoc review pane open at ${K} (stage "${h||"(unspecified)"}"). Non-blocking \u2014 keep working. The user browses and closes the pane with Done when finished; any feedback they leave persists to disk and the next \`haiku_run_next\` routes it through the normal fix-loop. No workflow action is required here.`}]})}if(n.startsWith("haiku_")&&!Her.has(n))return lSe(n,r??{});if(n==="open_review")return{content:[{type:"text",text:"Error: open_review cannot be called directly. Use haiku_run_next to advance \u2014 it validates units and opens the review automatically when ready."}],isError:!0};if(n==="ask_user_visual_question"){let i=Ler.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>gbe(e6(h))),l=Sye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await VE(),p;if(Bi()){let h=await jg(f);p=vv(l.session_id,h,"question")}else p=`http://127.0.0.1:${f}/question/${l.session_id}`;return lp(p,"Question session",l.session_id),await c0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,Ege,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let A=gv();if(A)c=A.slug;else{let R=ve(),x=em(R,"intents"),k=Ug(x).filter(P=>P.data.status!=="completed");if(k.length===1)c=k[0].slug;else return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_intent_unresolved",message:k.length===0?"No active intents found. Pass `intent` explicitly.":`Multiple active intents (${k.map(P=>P.slug).join(", ")}). Pass \`intent\` explicitly.`})}],isError:!0}}}let u=pe(c);if(!mbe(u))return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_intent_not_found",message:`Intent "${c}" not found at ${u}.`})}],isError:!0};let l=a==="boot"||a==="auto",d=o.cwd?em(u,o.cwd):u,f=null,p=null;if(l&&o.processes&&o.processes.length>0){if(o.command&&o.command.length>0)return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_input_invalid",message:"`command` and `processes` are mutually exclusive. Use `command` for a one-process boot and `processes` for a stack."})}],isError:!0};f=o.processes.map(x=>({name:x.name,command:x.command,cwd:x.cwd?em(u,x.cwd):u,port_env:x.port_env,ready_url:x.ready_url,depends_on:x.depends_on,no_port:x.no_port}));let A=f.filter(x=>!x.no_port);if(o.primary)p=o.primary;else if(A.length===1)p=A[0].name;else return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_primary_required",message:`\`processes\` has ${A.length} port-bound entries (${A.map(x=>x.name).join(", ")}). Set \`primary: ""\` to tell the engine which one's URL Playwright should drive.`})}],isError:!0};let R=new Set(f.map(x=>x.name));if(!R.has(p))return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_primary_not_in_group",message:`\`primary: "${p}"\` does not match any process name in the group (${[...R].join(", ")}).`})}],isError:!0}}if(l&&!f&&!(o.command&&o.command.length>0)){let A=null;try{A=Aye(gbe(ve()))}catch(R){return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_boot_recipe_invalid",message:R instanceof Error?R.message:String(R)})}],isError:!0}}A&&(f=A.processes,p=A.primary)}let h=null;if(l&&!f&&(o.command&&o.command.length>0?h=iSt(o.command,d):h=sSt(d)),a==="boot"&&!f&&!h)return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_no_boot_target",message:`No boot target supplied, no \`.haiku/boot.md\` recipe, and no package.json dev/start script found in ${d}. Either: (a) retry haiku_view with \`command: [...]\` for a one-process app (e.g. \`["uvicorn", "app:main"]\`, \`["bin/dev"]\`, \`["go", "run", "./cmd/server"]\`) or \`processes: [...]\` with \`primary: ""\` for a stack; or (b) commit a \`.haiku/boot.md\` recipe so every agent on every harness boots this app the same way without rediscovering it (frontmatter: \`command:\`/\`processes:\`, \`cwd:\`, \`env:\`, \`ready_url:\`). The engine sets PORT + HOST env vars before spawning each process and exposes \`_PORT\` + \`_URL\` for service discovery between dependents.`})}],isError:!0};let m;try{let R=(await nU(u))?.frontmatter;R&&typeof R.studio=="string"&&R.studio&&(m=R.studio)}catch{}let g=f||h?"boot":"viewer",y=bye({intent_dir:u,intent_slug:c,studio:m,stage:o.stage,artifact:o.artifact,mode:g});if(g==="boot"&&(f||h))try{let A,R,x,k;if(f&&p){let N=await Rye(y.session_id,f,p);if(N.primary.port===null)throw new Error(`primary process "${p}" has no port \u2014 cannot return URL`);A=N.primary.port,R=N.primary.command,x=N.primary.pid,k=N.processes}else if(h){let N=await aSt(y.session_id,h);if(N.port===null)throw new Error("single-process boot returned null port");A=N.port,R=N.command,x=N.pid}else throw new Error("boot mode reached without group or detection");Tye(y.session_id,{boot_port:A,boot_pid:x,boot_command:R});let P=`http://127.0.0.1:${A}/`;return{content:[{type:"text",text:JSON.stringify({session_id:y.session_id,url:P,mode:"boot",intent:c,stage:o.stage??null,artifact:o.artifact??null,boot_command:R,processes:k,note:"Hand the `url` to the bundled `haiku-playwright` MCP. The dev process(es) stay up until `haiku_view_close` (or the 30min TTL). Call `haiku_view_close` with the `session_id` when done \u2014 the engine kills the whole group."})}]}}catch(A){return C0(y.session_id),{content:[{type:"text",text:JSON.stringify({error:"haiku_view_boot_failed",message:A instanceof Error?A.message:String(A),boot_command:f?f.map(R=>`${R.name}: ${R.command.join(" ")}`).join("; "):h?.description})}],isError:!0}}let E=await VE(),S=Bi()?vv(y.session_id,await jg(E),"view"):`http://127.0.0.1:${E}/view/${y.session_id}`,_=new URLSearchParams;o.stage&&_.set("stage",o.stage),o.artifact&&_.set("artifact",o.artifact);let b=_.toString(),T=b?`${S}${S.includes("?")?"&":"?"}${b}`:S;return{content:[{type:"text",text:JSON.stringify({session_id:y.session_id,url:T,mode:"viewer",intent:c,stage:o.stage??null,artifact:o.artifact??null,note:"Hand the `url` to the bundled `haiku-playwright` MCP. When done, call `haiku_view_close` with the `session_id`."})}]}}if(n==="haiku_view_close"){let i=r??{},s=Be(i,_ge,"haiku_view_close");if(s)return s;let o=i,a=$t(o.session_id),c=a?.session_type==="view",l=c&&a.mode==="boot"?D0(o.session_id):!1,d=C0(o.session_id);return{content:[{type:"text",text:JSON.stringify({closed:d,session_id:o.session_id,was_view_session:c,killed_boot_process:l})}]}}if(n==="haiku_await_visual_answer"){let i=r??{},s=Be(i,jme,"haiku_await_visual_answer");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=$t(a);return!l||l.session_type!=="question"?{content:[{type:"text",text:`Question session ${a} not found or wrong type \u2014 call ask_user_visual_question to create a new one.`}],isError:!0}:(c&&u&&lp(u,"Question session"),await c0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=Uer.parse(r),s=i.title??"Design Direction";try{let l=em(ve(),"intents",i.intent_slug,"intent.md");if(mbe(l)){let d=await sU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await g0t(i.intent_slug);if(!p)return{content:[{type:"text",text:`Autopilot short-circuit for pick_design_direction failed: no discovery template with tool=pick_design_direction found for intent '${i.intent_slug}'. The cursor's discovery gate will not clear automatically \u2014 file a bug or fall back to manual handling.`}],isError:!0};let h=[];if(i.archetypes)h=i.archetypes;else if(i.archetypes_file){let y=await sU(e6(i.archetypes_file),"utf-8");h=O.array(ybe).parse(JSON.parse(y))}let m=h[0];Sbe({absPath:p.absPath,stage:p.stage,mode:m?"select":"auto",archetype:m?.name,comments:m?`Autopilot auto-selected the first archetype ("${m.name}") \u2014 no SPA picker shown because intent.mode === "autopilot".`:"Autopilot proceeded with no archetype \u2014 intake mode with no candidates. The agent will drive the rest of the design phase from the unit specs.",source:"autopilot"});let g=m?`Autopilot auto-selected the **${m.name}** direction (intent.mode === "autopilot" \u2014 no SPA picker shown). Manifest written at \`${p.absPath}\`.`:`Autopilot proceeded with no archetype selection (intent.mode === "autopilot", no candidates supplied). Manifest written at \`${p.absPath}\`.`;return{content:[{type:"text",text:zn(g,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await sU(e6(i.archetypes_file),"utf-8");o=O.array(ybe).parse(JSON.parse(l))}let a=Eye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await VE(),u;if(Bi()){let l=await jg(c);u=vv(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return lp(u,"Direction session"),await a0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,Hme,"haiku_await_design_direction");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=$t(a);if(!l||l.session_type!=="design_direction")return{content:[{type:"text",text:`Design-direction session ${a} not found or wrong type \u2014 call pick_design_direction to create a new one.`}],isError:!0};let d=o.intent_slug??l.intent_slug??"";return c&&u&&lp(u,"Direction session"),await a0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function h0t(e,t,n){let r=e6(process.cwd(),e),i=await nU(r);if(!i)throw new Error("Could not parse intent");let s=await WZ(r),o=y9(s),a=E9(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?BZ(c.content):[],l=BL(i.slug),d=l??MY({intent_dir:r,intent_slug:i.slug,gate_type:t,target:""});t!==void 0&&(d.gate_type=t),n?.gateContext&&(d.gate_context=n.gateContext),n?.stage&&(d.stage=n.stage),n?.nextStage!==void 0&&(d.next_stage=n.nextStage),n?.nextPhase!==void 0&&(d.next_phase=n.nextPhase),l&&d.pending_decision&&(d.pending_decision=null);let{unitOutputs:f,outputDeclaredBy:p}=await f0t(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=yye(r);h&&(d.previousReview=h);let m=await KZ(r),g=await YZ(r),y=await ZZ(r),{outputs:E,other:S}=await JZ(r),_=await XZ(r);for(let k of[...E,...S,..._])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=iU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:g,stageArtifacts:y,outputArtifacts:E,otherFiles:S,intentOtherFiles:_});let b=await VE(),T=Bi(),A=T?vv(d.session_id,await jg(b),"intent"):`http://127.0.0.1:${b}/review/${d.session_id}`,R=l!==void 0,x=R&&lv(d.session_id);return zd(i.slug,{type:"gate_prepared",session_id:d.session_id,stage:n?.stage??d.stage??"",gate_context:n?.gateContext??d.gate_context??"stage_gate",review_url:A,browser_attached:x}),{session_id:d.session_id,review_url:A,use_remote:T,reused:R,browser_attached:x}}function qer(e,t,n,r){return!(!e||!t||lv(n)||r&&GL(r))}async function m0t(e,t={}){let{autoOpen:n=!0,signal:r,reviewUrl:i,timeoutMs:s=1800*1e3}=t,o=$t(e);if(!o||o.session_type!=="review")throw new Error(`Gate review session ${e} not found or wrong type \u2014 call haiku_run_next to recreate.`);if(qer(n,i,e,o.intent_slug)&&lp(i,"Review gate"),o.pending_decision){let u=o.pending_decision;return Cl(e,{pending_decision:null,last_await_started_at:new Date().toISOString(),last_await_ended_at:new Date().toISOString(),await_count:(o.await_count??0)+1}),zd(o.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!1}),{decision:u.decision,feedback:u.feedback,annotations:u.annotations}}let a=new Date().toISOString(),c=o.await_count??0;Cl(e,{await_active:!0,await_count:c+1,last_await_started_at:a}),zd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),hye(e);try{for(;;){let u=!1;try{await uv(e,s,r)}catch(d){if(r?.aborted)throw d;u=!0}let l=$t(e);if(l&&l.session_type==="review"&&l.pending_decision){let d=l.pending_decision;return Cl(e,{pending_decision:null}),{decision:d.decision,feedback:d.feedback,annotations:d.annotations}}if(u)break;if(gye(e))throw new Error(`Review session ${e} lost presence \u2014 the SPA never opened or the tab disconnected (no heartbeat). Re-open the URL and call haiku_await_gate when ready.`)}throw new Error("Review timeout after 30 minutes")}finally{mye(e),Cl(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),zd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function g0t(e){let t=em(ve(),"intents",e,"intent.md");if(!mbe(t))return null;let n=await sU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),k0)),s=i(e,r);if(!s)return null;let a=no(r,s).find(l=>l.kind==="discovery"&&l.tool==="pick_design_direction");if(!a?.location)return null;let c=a.location.replace(/\{intent-slug\}/g,e);return{absPath:em(ve(),"..",c),stage:s,templateBody:a.body}}function Sbe(e){u0t(gbe(e.absPath),{recursive:!0});let t={mode:e.mode,stage:e.stage,source:e.source,recorded_at:new Date().toISOString()};e.archetype&&(t.archetype=e.archetype),e.files&&e.files.length>0&&(t.files=e.files),e.comments&&(t.comments=e.comments),e.annotations&&(t.annotations=e.annotations);let n=[];if(e.source==="autopilot"?n.push("# Design Direction (autopilot)","",'Auto-selected by the workflow engine because `intent.mode === "autopilot"`. No SPA picker was shown; the agent drives the rest of the design phase from this anchor.'):n.push("# Design Direction",""),e.mode==="select"&&e.archetype&&n.push("",`**Chosen archetype:** ${e.archetype}`),e.mode==="upload"&&e.files&&e.files.length>0){n.push("",`**Uploaded ${e.files.length} reference file(s):**`);for(let r of e.files)n.push(`- \`${r.path}\`${r.caption?` \u2014 ${r.caption}`:""}`)}e.comments&&n.push("",`**Comments:** ${e.comments}`),l0t(e.absPath,d0t.default.stringify(`${n.join(` `)} -`,t))}async function dIt(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await sv(e,s,i)}catch(l){if(i?.aborted)throw l;return{content:[{type:"text",text:JSON.stringify({status:"timeout",url:n,session_id:e,message:"User did not respond within 30 minutes. Call haiku_await_design_direction to keep waiting, or haiku_run_next to advance from durable state if a selection landed."},null,2)}]}}let o=on(e);if(!o||o.session_type!=="design_direction"||o.status!=="answered"||!o.selection)return{content:[{type:"text",text:"The user did not select a design direction within the time limit. Ask them how they'd like to proceed."}]};let a=o.selection;if(a.mode==="regenerate"){let l=o.archetypes?.length??0,d=Math.max(l-a.keep.length,0),f=a.keep.length>0?`The user wants more variants. They'd like to keep: **${a.keep.join("**, **")}**.${a.comments?` Steering notes: ${a.comments}`:""}`:`The user wants more variants. None of the current archetypes are keepers.${a.comments?` Steering notes: ${a.comments}`:""}`,p=d>0?`Generate ${d} replacement archetype${d===1?"":"s"} for the dropped slot${d===1?"":"s"} and call \`pick_design_direction\` again with the merged set.`:"Generate replacement archetype(s) for the dropped slot(s) and call `pick_design_direction` again with the merged set.";return{content:[{type:"text",text:Xn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:Xn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await z1(Yh(we(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(hc(),T0)),p=d?f(r,d)??"":"";if(p){let h=mr(r,p);h.ok||console.warn(`[awaitDesignDirectionSession] stage-branch enforcement failed: ${h.message}`)}}catch(l){console.warn(`[awaitDesignDirectionSession] post-wait branch reconciliation skipped: ${l instanceof Error?l.message:String(l)}`)}let c=r&&(a.mode==="upload"||a.mode==="select")?await EIt(r):null;if(a.mode==="upload"){let l=a.files.map((f,p)=>` ${p+1}. \`${f.path}\`${f.caption?` \u2014 ${f.caption}`:""}`).join(` -`);if(c)try{BEe({absPath:c.absPath,stage:c.stage,mode:"upload",files:a.files,comments:a.comments,source:"spa-picker"})}catch(f){console.error(`[awaitDesignDirectionSession] manifest write failed (upload): ${f instanceof Error?f.message:String(f)}. The discovery gate will NOT clear \u2014 file a bug.`)}let d=[`The user uploaded ${a.files.length} design file${a.files.length===1?"":"s"} as the chosen direction (no archetype generation needed):`,l];return a.comments&&d.push(`Comments: ${a.comments}`),{content:[{type:"text",text:Xn(d.join(` -`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{BEe({absPath:c.absPath,stage:c.stage,mode:"select",archetype:a.archetype,comments:a.comments,annotations:a.annotations,source:"spa-picker"})}catch(l){console.error(`[awaitDesignDirectionSession] manifest write failed (select): ${l instanceof Error?l.message:String(l)}. The discovery gate will NOT clear \u2014 file a bug.`)}let u=[`The user selected the **${a.archetype}** direction.`];if(a.comments&&u.push(`Comments: ${a.comments}`),a.annotations?.pins?.length){u.push(`Pin annotations (${a.annotations.pins.length}):`);for(let l of a.annotations.pins)u.push(` - [${l.x.toFixed(1)}%, ${l.y.toFixed(1)}%]: ${l.text||"(no text)"}`)}return{content:[{type:"text",text:Xn(u.join(` -`),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function fIt(e,t={}){let{url:n="",signal:r,timeoutMs:i=1800*1e3}=t,s=()=>{let u=on(e);if(!u||u.session_type!=="question"||u.status!=="answered"||!u.answers)return null;let l={},d=u.annotations;d?.comments?.length&&(l.comments=d.comments),d?.pins?.length&&(l.pins=d.pins),d?.screenshots?.length&&(l.screenshot_count=d.screenshots.length);let f={status:"answered",url:n,answers:u.answers,message:Xn("The user answered your visual question \u2014 see the `answers` field below.","Acknowledge their answer in chat and continue with whatever the answer enables.")};u.feedback&&(f.feedback=u.feedback),Object.keys(l).length>0&&(f.annotations=l);let p=[{type:"text",text:JSON.stringify(f,null,2)}],h=d?.screenshots??[];if(h.length>0){p.push({type:"text",text:` -${h.length} screenshot annotation${h.length===1?"":"s"} attached below \u2014 each pair is the reviewer's note + the captured surface they were drawing on.`});for(let m=0;m{"use strict";mIt=_e(sn(),1);ml();Tr();Q5();$kt();X0();Gd();iIt();$p();Hu();jEe();es();vo();ze();Zn();dx();W1();zh();lIt();UL();zQn=O.object({questions:O.array(O.object({question:O.string().describe("The question text"),header:O.string().optional().describe("Optional header/subtitle for the question"),options:O.array(O.string()).describe("Answer options to choose from"),multiSelect:O.boolean().optional().describe("Allow multiple selections (default: single)")})).describe("Array of questions to present"),context:O.string().optional().describe("Optional markdown context to display above questions"),title:O.string().optional().describe("Optional page title (default: 'Question')"),image_paths:O.array(O.string()).optional().describe("Optional array of local image file paths to display alongside the questions. Images are displayed in pairs (ref on left, built on right) for visual comparison.")}),qEe=O.object({name:O.string().describe("Archetype name"),description:O.string().describe("Brief description of this archetype"),preview_html:O.string().describe("HTML snippet to render as a preview")}),VQn=O.object({intent_slug:O.string().describe("The intent slug this direction applies to"),context:O.string().optional().describe("Optional markdown preamble shown above the archetype cards. Use it to give the user the context they need to choose well \u2014 what this direction governs, what's already been decided, what tradeoffs each option leans into. Mirrors `context` on ask_user_visual_question."),archetypes:O.array(qEe).optional().describe('Inline array of design archetypes to choose from. Omit (or pass an empty array) on the FIRST call to enter intake mode \u2014 the picker asks whether the user has designs to upload before any generation work happens. Pass archetypes only after the user responds with `mode: "generate"`.'),archetypes_file:O.string().optional().describe("Path to a JSON file containing the archetypes array (alternative to inline archetypes)"),title:O.string().optional().describe("Optional page title (default: 'Design Direction')")});WQn="/tmp/haiku-session-cancel.log";ZQn=new Set(["haiku_view","haiku_view_close","haiku_await_visual_answer","haiku_await_design_direction"])});async function Gu(e){if(e.options.length===0)throw new Error("runPicker called with empty options array");let t=process.env.HAIKU_TEST_PICKER_AUTO_SELECT;if(t){let a=e.options.find(c=>c.id===t);if(a)return{sessionId:"test-auto",url:"",selection:{id:a.id},timedOut:!1}}let n=tye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await H_(),i;if(ji()){let a=await Lg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(zh(),wEt));i=c(n.session_id,a,"picker")}else i=`http://127.0.0.1:${r}/picker/${n.session_id}`;e.autoOpen!==!1&&sp(i,`${e.kind} picker`);let s=e.timeoutMs??JQn,o=on(n.session_id);if(o&&o.session_type==="picker"&&o.status==="answered"&&o.selection)return{sessionId:n.session_id,url:i,selection:o.selection,timedOut:!1};for(;;){let a=!1;try{await sv(n.session_id,s,e.signal)}catch(u){if(e.signal?.aborted)throw u;a=!0}let c=on(n.session_id);if(c&&c.session_type==="picker"&&c.status==="answered"&&c.selection)return{sessionId:n.session_id,url:i,selection:c.selection,timedOut:!1};if(a)return{sessionId:n.session_id,url:i,selection:null,timedOut:!0}}}var JQn,V_=v(()=>{"use strict";Q5();Hu();zh();j6();JQn=1800*1e3});function W_(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function XQn(e,t){switch(e){case"force_stage_complete":return`Sign every review + approval + intent_quality_gates for every unit in stages up to and including '${t.stage}'. Refuses units that haven't reached terminal hat advance.`;case"set_intent_field":return t.fields&&typeof t.fields=="object"?`Set ${Object.keys(t.fields).length} intent.md frontmatter fields in one call: ${JSON.stringify(t.fields)}.`:`Set intent.md frontmatter field '${t.field}' to ${JSON.stringify(t.value)}.`;case"reset_drift":return"Re-stamp every witnessed slot (reviews + approvals on every unit) with the CURRENT on-disk SHA. Drift sweep will stop firing on the same SHA mismatch.";case"set_unit_iterations":return Array.isArray(t.iterations)&&t.iterations.length>0?`Hand-write iterations[] on unit '${t.unit}' in stage '${t.stage}' (${t.iterations.length} entries). This is the FSM-driven field agents normally cannot touch \u2014 the debug op bypasses the schema gate.`:`Synthesize iterations[] on unit '${t.unit}' in stage '${t.stage}' \u2014 one 'advance' entry per hat in the stage's hats sequence. Use to mark a legacy/partial unit as "moved through every hat" so force_stage_complete will sign it.`;case"mutate_feedback":return Array.isArray(t.feedback_ids)&&t.feedback_ids.length>0?`Apply FM patch to ${t.feedback_ids.length} feedback records (${t.feedback_ids.join(", ")}): ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`:`Apply FM patch to feedback ${t.feedback_id}: ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`;default:return e}}var bIt,TIt=v(()=>{"use strict";jSe();V_();es();vo();ns();Ls();bIt={name:"haiku_debug",description:"ADMIN: bypass-the-FSM tools to unstick corrupt intents. Force a stage complete (signs all reviews/approvals/QGs for units that have moved through every hat), set an intent field (mode, etc.), reset drift (re-stamp witnesses), mutate any feedback frontmatter, or preview the next cursor head after edits. Every mutation requires SPA-picker confirmation \u2014 the agent cannot act unilaterally. Use only when the normal workflow can't recover (corrupt FM, stuck loop, lost stamps).",inputSchema:s0,async handle(e,t){let n=qe(e,vme,"haiku_debug");if(n)return n;let r=Bg({intent:e.intent,stage:e.stage,feedback_id:e.feedback_id,unit:e.unit});if(r)return r;if(Array.isArray(e.feedback_ids))for(let l of e.feedback_ids){let d=Bg({feedback_id:l});if(d)return d}let i=e.intent,s=e.op;if(!_L.includes(s))return W_({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${_L.join(", ")}.`});if(s==="preview_cursor")try{let l=b5({slug:i});return be(JSON.stringify(l))}catch(l){return W_({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=XQn(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} +`,t))}async function a0t(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await uv(e,s,i)}catch(l){if(i?.aborted)throw l;return{content:[{type:"text",text:JSON.stringify({status:"timeout",url:n,session_id:e,message:"User did not respond within 30 minutes. Call haiku_await_design_direction to keep waiting, or haiku_run_next to advance from durable state if a selection landed."},null,2)}]}}let o=$t(e);if(!o||o.session_type!=="design_direction"||o.status!=="answered"||!o.selection)return{content:[{type:"text",text:"The user did not select a design direction within the time limit. Ask them how they'd like to proceed."}]};let a=o.selection;if(a.mode==="regenerate"){let l=o.archetypes?.length??0,d=Math.max(l-a.keep.length,0),f=a.keep.length>0?`The user wants more variants. They'd like to keep: **${a.keep.join("**, **")}**.${a.comments?` Steering notes: ${a.comments}`:""}`:`The user wants more variants. None of the current archetypes are keepers.${a.comments?` Steering notes: ${a.comments}`:""}`,p=d>0?`Generate ${d} replacement archetype${d===1?"":"s"} for the dropped slot${d===1?"":"s"} and call \`pick_design_direction\` again with the merged set.`:"Generate replacement archetype(s) for the dropped slot(s) and call `pick_design_direction` again with the merged set.";return{content:[{type:"text",text:zn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:zn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await sU(em(ve(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),k0)),p=d?f(r,d)??"":"";if(p){let h=gr(r,p);h.ok||console.warn(`[awaitDesignDirectionSession] stage-branch enforcement failed: ${h.message}`)}}catch(l){console.warn(`[awaitDesignDirectionSession] post-wait branch reconciliation skipped: ${l instanceof Error?l.message:String(l)}`)}let c=r&&(a.mode==="upload"||a.mode==="select")?await g0t(r):null;if(a.mode==="upload"){let l=a.files.map((f,p)=>` ${p+1}. \`${f.path}\`${f.caption?` \u2014 ${f.caption}`:""}`).join(` +`);if(c)try{Sbe({absPath:c.absPath,stage:c.stage,mode:"upload",files:a.files,comments:a.comments,source:"spa-picker"})}catch(f){console.error(`[awaitDesignDirectionSession] manifest write failed (upload): ${f instanceof Error?f.message:String(f)}. The discovery gate will NOT clear \u2014 file a bug.`)}let d=[`The user uploaded ${a.files.length} design file${a.files.length===1?"":"s"} as the chosen direction (no archetype generation needed):`,l];return a.comments&&d.push(`Comments: ${a.comments}`),{content:[{type:"text",text:zn(d.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{Sbe({absPath:c.absPath,stage:c.stage,mode:"select",archetype:a.archetype,comments:a.comments,annotations:a.annotations,source:"spa-picker"})}catch(l){console.error(`[awaitDesignDirectionSession] manifest write failed (select): ${l instanceof Error?l.message:String(l)}. The discovery gate will NOT clear \u2014 file a bug.`)}let u=[`The user selected the **${a.archetype}** direction.`];if(a.comments&&u.push(`Comments: ${a.comments}`),a.annotations?.pins?.length){u.push(`Pin annotations (${a.annotations.pins.length}):`);for(let l of a.annotations.pins)u.push(` - [${l.x.toFixed(1)}%, ${l.y.toFixed(1)}%]: ${l.text||"(no text)"}`)}return{content:[{type:"text",text:zn(u.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function c0t(e,t={}){let{url:n="",signal:r,timeoutMs:i=1800*1e3}=t,s=()=>{let u=$t(e);if(!u||u.session_type!=="question"||u.status!=="answered"||!u.answers)return null;let l={},d=u.annotations;d?.comments?.length&&(l.comments=d.comments),d?.pins?.length&&(l.pins=d.pins),d?.screenshots?.length&&(l.screenshot_count=d.screenshots.length);let f={status:"answered",url:n,answers:u.answers,message:zn("The user answered your visual question \u2014 see the `answers` field below.","Acknowledge their answer in chat and continue with whatever the answer enables.")};u.feedback&&(f.feedback=u.feedback),Object.keys(l).length>0&&(f.annotations=l);let p=[{type:"text",text:JSON.stringify(f,null,2)}],h=d?.screenshots??[];if(h.length>0){p.push({type:"text",text:` +${h.length} screenshot annotation${h.length===1?"":"s"} attached below \u2014 each pair is the reviewer's note + the captured surface they were drawing on.`});for(let m=0;m{"use strict";d0t=Se(Kt(),1);_l();yr();dZ();ZIt();rx();I1();Vd();o0t();ih();Qc();dbe();ji();uo();ze();Kn();Fv();aU();Jh();pbe();YL();Ler=O.object({questions:O.array(O.object({question:O.string().describe("The question text"),header:O.string().optional().describe("Optional header/subtitle for the question"),options:O.array(O.string()).describe("Answer options to choose from"),multiSelect:O.boolean().optional().describe("Allow multiple selections (default: single)")})).describe("Array of questions to present"),context:O.string().optional().describe("Optional markdown context to display above questions"),title:O.string().optional().describe("Optional page title (default: 'Question')"),image_paths:O.array(O.string()).optional().describe("Optional array of local image file paths to display alongside the questions. Images are displayed in pairs (ref on left, built on right) for visual comparison.")}),ybe=O.object({name:O.string().describe("Archetype name"),description:O.string().describe("Brief description of this archetype"),preview_html:O.string().describe("HTML snippet to render as a preview")}),Uer=O.object({intent_slug:O.string().describe("The intent slug this direction applies to"),context:O.string().optional().describe("Optional markdown preamble shown above the archetype cards. Use it to give the user the context they need to choose well \u2014 what this direction governs, what's already been decided, what tradeoffs each option leans into. Mirrors `context` on ask_user_visual_question."),archetypes:O.array(ybe).optional().describe('Inline array of design archetypes to choose from. Omit (or pass an empty array) on the FIRST call to enter intake mode \u2014 the picker asks whether the user has designs to upload before any generation work happens. Pass archetypes only after the user responds with `mode: "generate"`.'),archetypes_file:O.string().optional().describe("Path to a JSON file containing the archetypes array (alternative to inline archetypes)"),title:O.string().optional().describe("Optional page title (default: 'Design Direction')")});Fer="/tmp/haiku-session-cancel.log";Her=new Set(["haiku_view","haiku_view_close","haiku_await_visual_answer","haiku_await_design_direction"])});async function Zu(e){if(e.options.length===0)throw new Error("runPicker called with empty options array");let t=process.env.HAIKU_TEST_PICKER_AUTO_SELECT;if(t){let a=e.options.find(c=>c.id===t);if(a)return{sessionId:"test-auto",url:"",selection:{id:a.id},timedOut:!1}}let n=_ye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await VE(),i;if(Bi()){let a=await jg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Jh(),sbt));i=c(n.session_id,a,"picker")}else i=`http://127.0.0.1:${r}/picker/${n.session_id}`;e.autoOpen!==!1&&lp(i,`${e.kind} picker`);let s=e.timeoutMs??Ber,o=$t(n.session_id);if(o&&o.session_type==="picker"&&o.status==="answered"&&o.selection)return{sessionId:n.session_id,url:i,selection:o.selection,timedOut:!1};for(;;){let a=!1;try{await uv(n.session_id,s,e.signal)}catch(u){if(e.signal?.aborted)throw u;a=!0}let c=$t(n.session_id);if(c&&c.session_type==="picker"&&c.status==="answered"&&c.selection)return{sessionId:n.session_id,url:i,selection:c.selection,timedOut:!1};if(a)return{sessionId:n.session_id,url:i,selection:null,timedOut:!0}}}var Ber,JE=v(()=>{"use strict";dZ();Qc();Jh();t6();Ber=1800*1e3});function XE(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function Ger(e,t){switch(e){case"force_stage_complete":return`Sign every review + approval + intent_quality_gates for every unit in stages up to and including '${t.stage}'. Refuses units that haven't reached terminal hat advance.`;case"set_intent_field":return t.fields&&typeof t.fields=="object"?`Set ${Object.keys(t.fields).length} intent.md frontmatter fields in one call: ${JSON.stringify(t.fields)}.`:`Set intent.md frontmatter field '${t.field}' to ${JSON.stringify(t.value)}.`;case"reset_drift":return"Re-stamp every witnessed slot (reviews + approvals on every unit) with the CURRENT on-disk SHA. Drift sweep will stop firing on the same SHA mismatch.";case"set_unit_iterations":return Array.isArray(t.iterations)&&t.iterations.length>0?`Hand-write iterations[] on unit '${t.unit}' in stage '${t.stage}' (${t.iterations.length} entries). This is the FSM-driven field agents normally cannot touch \u2014 the debug op bypasses the schema gate.`:`Synthesize iterations[] on unit '${t.unit}' in stage '${t.stage}' \u2014 one 'advance' entry per hat in the stage's hats sequence. Use to mark a legacy/partial unit as "moved through every hat" so force_stage_complete will sign it.`;case"mutate_feedback":return Array.isArray(t.feedback_ids)&&t.feedback_ids.length>0?`Apply FM patch to ${t.feedback_ids.length} feedback records (${t.feedback_ids.join(", ")}): ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`:`Apply FM patch to feedback ${t.feedback_id}: ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`;default:return e}}var y0t,S0t=v(()=>{"use strict";sEe();JE();ji();uo();Gi();vs();y0t={name:"haiku_debug",description:"ADMIN: bypass-the-FSM tools to unstick corrupt intents. Force a stage complete (signs all reviews/approvals/QGs for units that have moved through every hat), set an intent field (mode, etc.), reset drift (re-stamp witnesses), mutate any feedback frontmatter, or preview the next cursor head after edits. Every mutation requires SPA-picker confirmation \u2014 the agent cannot act unilaterally. Use only when the normal workflow can't recover (corrupt FM, stuck loop, lost stamps).",inputSchema:u0,async handle(e,t){let n=Be(e,qme,"haiku_debug");if(n)return n;let r=Vg({intent:e.intent,stage:e.stage,feedback_id:e.feedback_id,unit:e.unit});if(r)return r;if(Array.isArray(e.feedback_ids))for(let l of e.feedback_ids){let d=Vg({feedback_id:l});if(d)return d}let i=e.intent,s=e.op;if(!OL.includes(s))return XE({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${OL.join(", ")}.`});if(s==="preview_cursor")try{let l=U5({slug:i});return ye(JSON.stringify(l))}catch(l){return XE({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=Ger(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} -`:"",u=await Gu({intentSlug:i,kind:"confirm",title:`DEBUG: ${s} on ${i}`,prompt:`${c}${o} +`:"",u=await Zu({intentSlug:i,kind:"confirm",title:`DEBUG: ${s} on ${i}`,prompt:`${c}${o} -This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return be(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return W_({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=S5({slug:i,targetStage:l,closeOpenFeedback:e.close_open_feedback===!0});return be(JSON.stringify(d))}case"set_intent_field":{if(e.fields&&typeof e.fields=="object"){let p=e.fields,h=[];for(let[m,y]of Object.entries(p))h.push({field:m,result:Z0({slug:i,field:m,value:y})});return be(JSON.stringify({batch:!0,count:h.length,results:h}))}let l=e.field,d=e.value;if(!l)return W_({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=Z0({slug:i,field:l,value:d});return be(JSON.stringify(f))}case"reset_drift":{let l=_5({slug:i});return be(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return W_({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=E5({slug:i,stage:l,unit:d,iterations:f});return be(JSON.stringify(p))}case"mutate_feedback":{let l=e.patch??{},d=e.stage||null;if(Array.isArray(e.feedback_ids)&&e.feedback_ids.length>0){let h=e.feedback_ids,m=[];for(let y of h)m.push({feedback_id:y,result:Y0({slug:i,stage:d,feedbackId:y,patch:l})});return be(JSON.stringify({batch:!0,count:m.length,results:m}))}let f=e.feedback_id;if(!f)return W_({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=Y0({slug:i,stage:d,feedbackId:f,patch:l});return be(JSON.stringify(p))}default:return W_({error:"unhandled_op",op:s})}}catch(l){return W_({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as zEe,readFileSync as QQn}from"node:fs";import{join as F6}from"node:path";function $Qn(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?F6(e,r):r.startsWith("/")?r:F6(e,".haiku","intents",t,r)}var vIt,AIt=v(()=>{"use strict";Tr();M0();es();vo();ze();Zn();Ko();ns();Ls();vIt={name:"haiku_discovery_complete",description:"Discovery subagent's completion hand-off. Merges the discovery worktree's branch back into its stage branch under a per-stage lock. Call AFTER committing your artifact inside the isolation worktree. Returns `{ ok: true }` on clean merge, `discovery_artifact_missing` with `expected_path` when the template's `location:` file isn't present in the worktree (you skipped or misplaced the write), `discovery_merge_conflict` with conflict_files on real conflict, `discovery_merge_failed` with the git error on other failures, `intent_not_found` when the intent dir is missing, `worktree_not_found` when the discovery worktree doesn't exist (already merged or never created).",inputSchema:o0,async handle(e){let t=qe(e,Ame,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=we(),a=F6(o,"intents",r);if(!zEe(a))return be(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=bI(r,i,s);if(!zEe(c))return be(JSON.stringify({ok:!1,error:"worktree_not_found",message:`No discovery worktree at ${c}. The worktree may have been merged or never created \u2014 re-tick haiku_run_next; if the cursor still requests this discovery, redispatch the subagent.`}));try{let u=re(QQn(F6(a,"intent.md"),"utf8")).data,l=typeof u.studio=="string"?u.studio:"";if(l){let d=s.toLowerCase(),f=Qs(l,i).filter(p=>p.kind==="discovery").find(p=>p.name.toLowerCase()===d);if(f){let p=$Qn(c,r,f.location);if(p&&!zEe(p)){let h=p.startsWith(c)?p.slice(c.length+1):p;return be(JSON.stringify({ok:!1,error:"discovery_artifact_missing",intent:r,stage:i,template:s,expected_path:p,location:f.location,message:[`Discovery template '${s}' declares location '${f.location}', but no file exists at the expected path inside your isolation worktree.`,"",`Expected (absolute): ${p}`,`Expected (worktree-relative): ${h}`,"","Before calling haiku_discovery_complete you MUST:"," 1. Write the populated discovery artifact to the path above.",` 2. \`git -C "${c}" add -A && git -C "${c}" commit -m "..."\``,` 3. Re-call \`haiku_discovery_complete { intent: "${r}", stage: "${i}", template: "${s}" }\`.`,"","If you wrote the file somewhere else (intent main, the stage branch directly, or another path), move it into the worktree at the expected path and commit there \u2014 haiku_discovery_complete only merges from the isolation worktree."].join(` -`)}))}}}}catch{}try{let u=P_(r,i,()=>tpe(r,i,s));return u.success?(Qe("haiku.discovery.merged",{intent:r,stage:i,template:s}),be(JSON.stringify({ok:!0,intent:r,stage:i,template:s,message:u.message}))):u.isConflict?be(JSON.stringify({ok:!1,error:"discovery_merge_conflict",intent:r,stage:i,template:s,conflict_files:u.conflictFiles??[],message:u.message})):be(JSON.stringify({ok:!1,error:"discovery_merge_failed",intent:r,stage:i,template:s,message:u.message}))}catch(u){return be(JSON.stringify({ok:!1,error:"discovery_merge_threw",intent:r,stage:i,template:s,message:u instanceof Error?u.message:String(u)}))}}}});import{execSync as RIt}from"node:child_process";import{existsSync as Lv,readdirSync as VEe,readFileSync as Gg,statSync as e$n,writeFileSync as mx}from"node:fs";import{join as op,resolve as t$n}from"node:path";function r$n(e,t,n){try{let r=(0,_c.default)(Gg(e,"utf8")),i=r.data,s=i.quality_gates_env_blocked??void 0,o=(typeof s?.attempts=="number"?s.attempts:0)+1;return i.quality_gates_env_blocked={at:new Date().toISOString(),reason:t,requires_tool:n??null,attempts:o},mx(e,_c.default.stringify(r.content,i)),o}catch{return 1}}function kIt(){let e=[];try{e=LL(Wr())}catch{e=[]}let t=e.map(r=>({name:r.name,command:r.command.join(" "),requires_tool:r.requires_tool,tool_live:r.requires_tool?SD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function H6(e,t,n){let r=Array.isArray(n)?n:[n],i=t?op(fe(e),"stages",t,"feedback"):op(fe(e),"feedback");if(!Lv(i))return[];let s=[];for(let o of VEe(i).filter(a=>a.endsWith(".md")))try{let a=op(i,o),c=(0,_c.default)(Gg(a,"utf8")).data;c.author==="engine"&&r.includes(c.source_ref)&&s.push({path:a,data:c})}catch{}return s}function IIt(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function xIt(e,t){try{let n=(0,_c.default)(Gg(e,"utf8")),r=n.data,i=new Date().toISOString();r.status="closed",r.closed_at=i,r.closed_by="engine:gate-deferred-to-ci",r.resolution="deferred",r.closure_reply={text:t,at:i},mx(e,_c.default.stringify(n.content,r))}catch{}}function i$n(e,t){try{let n=(0,_c.default)(Gg(e,"utf8")),r=n.data,i=new Date().toISOString(),s=r.approvals??{};s.quality_gates={at:i,deferred_to_ci:!0,deferred_count:t.length},r.approvals=s;let o=Array.isArray(r.deferred_gates)?r.deferred_gates:[];r.deferred_gates=[...o,...t.map(a=>({name:a.name,command:a.command,exit_code:a.exit_code,output:a.output.slice(0,300),deferred_at:i}))],mx(e,_c.default.stringify(n.content,r))}catch{}}function s$n(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=op(fe(e),"stages",t,"units",`${c}.md`);if(!Lv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=Iye(e,u);if(l===null)u$n(u,"quality_gates"),r.push(c);else if(l.environment){let d=r$n(u,l.env_reason??"a runtime dependency was unreachable",l.requires_tool);o.push({unit:c,reason:l.env_reason??"a runtime dependency was unreachable",requires_tool:l.requires_tool,attempts:d,failures:l.failures})}else{let d=`unit:${c}`,f=[],p=[];for(let h of l.failures){let m=`${d}:${h.name}`;H6(e,t,[m,d]).length>=WEe?f.push(h):p.push(h)}if(f.length>0){let h=f.map(g=>g.name),m=`quality_gates on \`${c}\` (${h.join(", ")}) stayed red across ${WEe}+ local fix-loop attempt(s). Deferred to CI \u2014 CI runs them in a clean tree and is authoritative. A real defect surfaces as red CI on the PR; an environment-only failure (no local API, dep/codegen mismatch in the worktree) passes there.`;i$n(u,f);let y=[d,...h.map(g=>`${d}:${g}`)];for(let g of H6(e,t,y))IIt(g.data)&&xIt(g.path,m);s.push({unit:c,gates:h,reason:m})}if(p.length>0){i.push({unit:c,failures:p});for(let h of p){let m=`${d}:${h.name}`;fc(e,t,{title:`quality_gates failure on ${c} (${h.name})`,body:`Declared quality_gate \`${h.name}\` failed on unit \`${c}\`: +This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return ye(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return XE({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=M5({slug:i,targetStage:l,closeOpenFeedback:e.close_open_feedback===!0});return ye(JSON.stringify(d))}case"set_intent_field":{if(e.fields&&typeof e.fields=="object"){let p=e.fields,h=[];for(let[m,g]of Object.entries(p))h.push({field:m,result:ex({slug:i,field:m,value:g})});return ye(JSON.stringify({batch:!0,count:h.length,results:h}))}let l=e.field,d=e.value;if(!l)return XE({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=ex({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=D5({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return XE({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=L5({slug:i,stage:l,unit:d,iterations:f});return ye(JSON.stringify(p))}case"mutate_feedback":{let l=e.patch??{},d=e.stage||null;if(Array.isArray(e.feedback_ids)&&e.feedback_ids.length>0){let h=e.feedback_ids,m=[];for(let g of h)m.push({feedback_id:g,result:tx({slug:i,stage:d,feedbackId:g,patch:l})});return ye(JSON.stringify({batch:!0,count:m.length,results:m}))}let f=e.feedback_id;if(!f)return XE({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=tx({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return XE({error:"unhandled_op",op:s})}}catch(l){return XE({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as _be,readFileSync as zer}from"node:fs";import{join as n6}from"node:path";function Ver(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?n6(e,r):r.startsWith("/")?r:n6(e,".haiku","intents",t,r)}var E0t,_0t=v(()=>{"use strict";yr();j0();ji();uo();ze();Kn();vo();Gi();vs();E0t={name:"haiku_discovery_complete",description:"Discovery subagent's completion hand-off. Merges the discovery worktree's branch back into its stage branch under a per-stage lock. Call AFTER committing your artifact inside the isolation worktree. Returns `{ ok: true }` on clean merge, `discovery_artifact_missing` with `expected_path` when the template's `location:` file isn't present in the worktree (you skipped or misplaced the write), `discovery_merge_conflict` with conflict_files on real conflict, `discovery_merge_failed` with the git error on other failures, `intent_not_found` when the intent dir is missing, `worktree_not_found` when the discovery worktree doesn't exist (already merged or never created).",inputSchema:l0,async handle(e){let t=Be(e,Bme,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=ve(),a=n6(o,"intents",r);if(!_be(a))return ye(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=wI(r,i,s);if(!_be(c))return ye(JSON.stringify({ok:!1,error:"worktree_not_found",message:`No discovery worktree at ${c}. The worktree may have been merged or never created \u2014 re-tick haiku_run_next; if the cursor still requests this discovery, redispatch the subagent.`}));try{let u=re(zer(n6(a,"intent.md"),"utf8")).data,l=typeof u.studio=="string"?u.studio:"";if(l){let d=s.toLowerCase(),f=no(l,i).filter(p=>p.kind==="discovery").find(p=>p.name.toLowerCase()===d);if(f){let p=Ver(c,r,f.location);if(p&&!_be(p)){let h=p.startsWith(c)?p.slice(c.length+1):p;return ye(JSON.stringify({ok:!1,error:"discovery_artifact_missing",intent:r,stage:i,template:s,expected_path:p,location:f.location,message:[`Discovery template '${s}' declares location '${f.location}', but no file exists at the expected path inside your isolation worktree.`,"",`Expected (absolute): ${p}`,`Expected (worktree-relative): ${h}`,"","Before calling haiku_discovery_complete you MUST:"," 1. Write the populated discovery artifact to the path above.",` 2. \`git -C "${c}" add -A && git -C "${c}" commit -m "..."\``,` 3. Re-call \`haiku_discovery_complete { intent: "${r}", stage: "${i}", template: "${s}" }\`.`,"","If you wrote the file somewhere else (intent main, the stage branch directly, or another path), move it into the worktree at the expected path and commit there \u2014 haiku_discovery_complete only merges from the isolation worktree."].join(` +`)}))}}}}catch{}try{let u=FE(r,i,()=>Epe(r,i,s));return u.success?(Ke("haiku.discovery.merged",{intent:r,stage:i,template:s}),ye(JSON.stringify({ok:!0,intent:r,stage:i,template:s,message:u.message}))):u.isConflict?ye(JSON.stringify({ok:!1,error:"discovery_merge_conflict",intent:r,stage:i,template:s,conflict_files:u.conflictFiles??[],message:u.message})):ye(JSON.stringify({ok:!1,error:"discovery_merge_failed",intent:r,stage:i,template:s,message:u.message}))}catch(u){return ye(JSON.stringify({ok:!1,error:"discovery_merge_threw",intent:r,stage:i,template:s,message:u instanceof Error?u.message:String(u)}))}}}});import{execSync as b0t}from"node:child_process";import{existsSync as Bv,readdirSync as bbe,readFileSync as Wg,statSync as Wer,writeFileSync as Tx}from"node:fs";import{join as dp,resolve as Ker}from"node:path";function Zer(e,t,n){try{let r=(0,bc.default)(Wg(e,"utf8")),i=r.data,s=i.quality_gates_env_blocked??void 0,o=(typeof s?.attempts=="number"?s.attempts:0)+1;return i.quality_gates_env_blocked={at:new Date().toISOString(),reason:t,requires_tool:n??null,attempts:o},Tx(e,bc.default.stringify(r.content,i)),o}catch{return 1}}function v0t(){let e=[];try{e=KL(Br())}catch{e=[]}let t=e.map(r=>({name:r.name,command:r.command.join(" "),requires_tool:r.requires_tool,tool_live:r.requires_tool?wD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function r6(e,t,n){let r=Array.isArray(n)?n:[n],i=t?dp(pe(e),"stages",t,"feedback"):dp(pe(e),"feedback");if(!Bv(i))return[];let s=[];for(let o of bbe(i).filter(a=>a.endsWith(".md")))try{let a=dp(i,o),c=(0,bc.default)(Wg(a,"utf8")).data;c.author==="engine"&&r.includes(c.source_ref)&&s.push({path:a,data:c})}catch{}return s}function A0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function R0t(e,t){try{let n=(0,bc.default)(Wg(e,"utf8")),r=n.data,i=new Date().toISOString();r.status="closed",r.closed_at=i,r.closed_by="engine:gate-deferred-to-ci",r.resolution="deferred",r.closure_reply={text:t,at:i},Tx(e,bc.default.stringify(n.content,r))}catch{}}function Jer(e,t){try{let n=(0,bc.default)(Wg(e,"utf8")),r=n.data,i=new Date().toISOString(),s=r.approvals??{};s.quality_gates={at:i,deferred_to_ci:!0,deferred_count:t.length},r.approvals=s;let o=Array.isArray(r.deferred_gates)?r.deferred_gates:[];r.deferred_gates=[...o,...t.map(a=>({name:a.name,command:a.command,exit_code:a.exit_code,output:a.output.slice(0,300),deferred_at:i}))],Tx(e,bc.default.stringify(n.content,r))}catch{}}function Xer(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=dp(pe(e),"stages",t,"units",`${c}.md`);if(!Bv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=Zye(e,u);if(l===null)ttr(u,"quality_gates"),r.push(c);else if(l.environment){let d=Zer(u,l.env_reason??"a runtime dependency was unreachable",l.requires_tool);o.push({unit:c,reason:l.env_reason??"a runtime dependency was unreachable",requires_tool:l.requires_tool,attempts:d,failures:l.failures})}else{let d=`unit:${c}`,f=[],p=[];for(let h of l.failures){let m=`${d}:${h.name}`;r6(e,t,[m,d]).length>=Tbe?f.push(h):p.push(h)}if(f.length>0){let h=f.map(y=>y.name),m=`quality_gates on \`${c}\` (${h.join(", ")}) stayed red across ${Tbe}+ local fix-loop attempt(s). Deferred to CI \u2014 CI runs them in a clean tree and is authoritative. A real defect surfaces as red CI on the PR; an environment-only failure (no local API, dep/codegen mismatch in the worktree) passes there.`;Jer(u,f);let g=[d,...h.map(y=>`${d}:${y}`)];for(let y of r6(e,t,g))A0t(y.data)&&R0t(y.path,m);s.push({unit:c,gates:h,reason:m})}if(p.length>0){i.push({unit:c,failures:p});for(let h of p){let m=`${d}:${h.name}`;Qo(e,t,{title:`quality_gates failure on ${c} (${h.name})`,body:`Declared quality_gate \`${h.name}\` failed on unit \`${c}\`: - ${h.name}: \`${h.command}\` exited ${h.exit_code} -The fix loop should resolve the failure, then quality_gates re-runs on the next tick. If this gate keeps failing across attempts, the engine defers it to CI (environmental / non-source-convergent).`,origin:"agent",severity:"blocker",author:"engine",source_ref:m,targetUnit:c,targetInvalidates:["quality_gates"]})}}}}if(o.length>0){let c=kIt(),u=o.every(h=>h.attempts>n$n),l=c.bootable&&!u?"best_effort_boot":"escalate_to_user",d=c.services.length>0?c.services.map(h=>` - ${h.name}: \`${h.command}\`${h.requires_tool?` (needs ${h.requires_tool}: ${h.tool_live?"LIVE":"NOT AVAILABLE"})`:""}`).join(` -`):" (no services declared in .haiku/boot.md)",f=lfe(),p=l==="best_effort_boot"?`Quality gates can't reach a live environment on: ${o.map(h=>h.unit).join(", ")}. +The fix loop should resolve the failure, then quality_gates re-runs on the next tick. If this gate keeps failing across attempts, the engine defers it to CI (environmental / non-source-convergent).`,origin:"agent",severity:"blocker",author:"engine",source_ref:m,targetUnit:c,targetInvalidates:["quality_gates"]})}}}}if(o.length>0){let c=v0t(),u=o.every(h=>h.attempts>Yer),l=c.bootable&&!u?"best_effort_boot":"escalate_to_user",d=c.services.length>0?c.services.map(h=>` - ${h.name}: \`${h.command}\`${h.requires_tool?` (needs ${h.requires_tool}: ${h.tool_live?"LIVE":"NOT AVAILABLE"})`:""}`).join(` +`):" (no services declared in .haiku/boot.md)",f=xfe(),p=l==="best_effort_boot"?`Quality gates can't reach a live environment on: ${o.map(h=>h.unit).join(", ")}. ${o.map(h=>` \u2022 ${h.unit}: ${h.reason}`).join(` `)} @@ -1285,73 +1288,73 @@ ${o.map(h=>` \u2022 ${h.unit}: ${h.reason}`).join(` ESCALATE TO THE USER. Tell them exactly what's unavailable and what to do \u2014 e.g. "start the database, then tell me to retry." Recommend a \`.haiku/boot.md\` service recipe if none exists: ${d} -Then WAIT for the user. Do NOT advance, do NOT call \`haiku_run_next\` in a loop, do NOT mark the gate passed. The stage holds until the dependency is live and the gate actually runs.`;return be(JSON.stringify({action:"quality_gate_environment_blocked",scope:"stage",mode:l,env_blocked:o.map(h=>({unit:h.unit,reason:h.reason,requires_tool:h.requires_tool??null,attempts:h.attempts})),services:c.services,available_tools:f,passed:r,message:p},null,2))}let a=s.length>0?` ${s.length} unit(s) had non-convergent gates DEFERRED to CI: ${s.map(c=>`${c.unit} (${c.gates.join(", ")})`).join("; ")}.`:"";return be(JSON.stringify({scope:"stage",passed:r,failures:i,deferred:s,message:i.length===0&&s.length===0?`All ${r.length} unit(s) passed quality_gates. Approvals stamped.`:`${i.length} unit(s) had quality_gate failures \u2014 FBs filed. ${r.length} passed.${a}`},null,2))}function o$n(e){let t=fe(e),n=op(t,"stages"),r=a$n(t),i=c$n(n,r);if(i.length===0)return wIt(e,"intent_quality_gates"),be(JSON.stringify({scope:"intent",ran:0,failures:[],message:"No quality_gates declared on any unit across this intent. Approvals stamped (vacuously true)."},null,2));let s=process.cwd();try{s=RIt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?t$n(s,u.dir):s;try{RIt(u.command,{stdio:"pipe",cwd:l,shell:"/bin/bash",timeout:3e5})}catch(d){let f=d;o.push({name:u.name,command:u.command,exit_code:typeof f.status=="number"?f.status:1,output:[f.stdout?f.stdout.toString().trim():"",f.stderr?f.stderr.toString().trim():""].filter(Boolean).join(` -`),contributors:u.contributors})}}if(o.length===0)return wIt(e,"intent_quality_gates"),be(JSON.stringify({scope:"intent",ran:i.length,failures:[],message:`All ${i.length} distinct quality_gates command(s) passed at intent scope. approvals.intent_quality_gates stamped on intent.md.`},null,2));{let u=[];try{u=[...new Set(LL(Wr()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=EK(o,{requiredTools:u});if(l.environment){let d=kIt(),f=d.services.length>0?d.services.map(h=>` - ${h.name}: \`${h.command}\`${h.requires_tool?` (needs ${h.requires_tool}: ${h.tool_live?"LIVE":"NOT AVAILABLE"})`:""}`).join(` -`):" (no services declared in .haiku/boot.md)",p=lfe();return be(JSON.stringify({action:"quality_gate_environment_blocked",scope:"intent",mode:d.bootable?"best_effort_boot":"escalate_to_user",reason:l.reason,requires_tool:l.requiresTool??null,services:d.services,available_tools:p,message:`Intent-scope quality gates can't reach a live environment: ${l.reason}. +Then WAIT for the user. Do NOT advance, do NOT call \`haiku_run_next\` in a loop, do NOT mark the gate passed. The stage holds until the dependency is live and the gate actually runs.`;return ye(JSON.stringify({action:"quality_gate_environment_blocked",scope:"stage",mode:l,env_blocked:o.map(h=>({unit:h.unit,reason:h.reason,requires_tool:h.requires_tool??null,attempts:h.attempts})),services:c.services,available_tools:f,passed:r,message:p},null,2))}let a=s.length>0?` ${s.length} unit(s) had non-convergent gates DEFERRED to CI: ${s.map(c=>`${c.unit} (${c.gates.join(", ")})`).join("; ")}.`:"";return ye(JSON.stringify({scope:"stage",passed:r,failures:i,deferred:s,message:i.length===0&&s.length===0?`All ${r.length} unit(s) passed quality_gates. Approvals stamped.`:`${i.length} unit(s) had quality_gate failures \u2014 FBs filed. ${r.length} passed.${a}`},null,2))}function Qer(e){let t=pe(e),n=dp(t,"stages"),r=$er(t),i=etr(n,r);if(i.length===0)return T0t(e,"intent_quality_gates"),ye(JSON.stringify({scope:"intent",ran:0,failures:[],message:"No quality_gates declared on any unit across this intent. Approvals stamped (vacuously true)."},null,2));let s=process.cwd();try{s=b0t("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?Ker(s,u.dir):s;try{b0t(u.command,{stdio:"pipe",cwd:l,shell:"/bin/bash",timeout:3e5})}catch(d){let f=d;o.push({name:u.name,command:u.command,exit_code:typeof f.status=="number"?f.status:1,output:[f.stdout?f.stdout.toString().trim():"",f.stderr?f.stderr.toString().trim():""].filter(Boolean).join(` +`),contributors:u.contributors})}}if(o.length===0)return T0t(e,"intent_quality_gates"),ye(JSON.stringify({scope:"intent",ran:i.length,failures:[],message:`All ${i.length} distinct quality_gates command(s) passed at intent scope. approvals.intent_quality_gates stamped on intent.md.`},null,2));{let u=[];try{u=[...new Set(KL(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=MK(o,{requiredTools:u});if(l.environment){let d=v0t(),f=d.services.length>0?d.services.map(h=>` - ${h.name}: \`${h.command}\`${h.requires_tool?` (needs ${h.requires_tool}: ${h.tool_live?"LIVE":"NOT AVAILABLE"})`:""}`).join(` +`):" (no services declared in .haiku/boot.md)",p=xfe();return ye(JSON.stringify({action:"quality_gate_environment_blocked",scope:"intent",mode:d.bootable?"best_effort_boot":"escalate_to_user",reason:l.reason,requires_tool:l.requiresTool??null,services:d.services,available_tools:p,message:`Intent-scope quality gates can't reach a live environment: ${l.reason}. `+(d.bootable?'BEST-EFFORT BOOT: bring the declared service(s) up, then re-run `haiku_dispatch_quality_gates { intent, scope: "intent" }`. ':"The engine can't bring it up here. ESCALATE TO THE USER: tell them what's unavailable and to start it, then retry. ")+`Do NOT seal the intent \u2014 a gate that didn't run verified nothing. Declared services: ${f} -Available tools: ${p.length>0?p.join(", "):"(none live)"}.`},null,2))}}let a=H6(e,"","intent_quality_gates").length;if(a>=WEe){let u=o.map(d=>d.name),l=`intent_quality_gates (${u.join(", ")}) stayed red across ${a} fix-loop attempt(s). Deferred to CI \u2014 it runs them in a clean tree and is authoritative.`;l$n(e,o);for(let d of H6(e,"","intent_quality_gates"))IIt(d.data)&&xIt(d.path,l);return be(JSON.stringify({scope:"intent",ran:i.length,failures:o,deferred:{gates:u,reason:l},message:`${o.length} of ${i.length} intent-scope quality_gates stayed red across ${a} fix-loop attempt(s) \u2014 DEFERRED to CI. approvals.intent_quality_gates stamped deferred; intent can seal.`},null,2))}let c=o.map(u=>`- **${u.name}**: \`${u.command}\` exited ${u.exit_code} (declared by: ${u.contributors.join(", ")}) +Available tools: ${p.length>0?p.join(", "):"(none live)"}.`},null,2))}}let a=r6(e,"","intent_quality_gates").length;if(a>=Tbe){let u=o.map(d=>d.name),l=`intent_quality_gates (${u.join(", ")}) stayed red across ${a} fix-loop attempt(s). Deferred to CI \u2014 it runs them in a clean tree and is authoritative.`;ntr(e,o);for(let d of r6(e,"","intent_quality_gates"))A0t(d.data)&&R0t(d.path,l);return ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,deferred:{gates:u,reason:l},message:`${o.length} of ${i.length} intent-scope quality_gates stayed red across ${a} fix-loop attempt(s) \u2014 DEFERRED to CI. approvals.intent_quality_gates stamped deferred; intent can seal.`},null,2))}let c=o.map(u=>`- **${u.name}**: \`${u.command}\` exited ${u.exit_code} (declared by: ${u.contributors.join(", ")}) ${u.output.slice(0,400).split(` `).join(` `)}`).join(` -`);return fc(e,"",{title:`intent_quality_gates: ${o.length} failing command(s)`,body:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope. The studio fix-hat loop should resolve each failure; on close, the cursor's intent walk will re-dispatch dispatch_quality_gates because approvals.intent_quality_gates is still unset. If the gates keep failing across attempts, the engine defers them to CI (environmental / non-source-convergent). +`);return Qo(e,"",{title:`intent_quality_gates: ${o.length} failing command(s)`,body:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope. The studio fix-hat loop should resolve each failure; on close, the cursor's intent walk will re-dispatch dispatch_quality_gates because approvals.intent_quality_gates is still unset. If the gates keep failing across attempts, the engine defers them to CI (environmental / non-source-convergent). -${c}`,origin:"agent",severity:"blocker",author:"engine",source_ref:"intent_quality_gates"}),be(JSON.stringify({scope:"intent",ran:i.length,failures:o,message:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope \u2014 intent-scope FB filed.`},null,2))}function a$n(e){let t=op(e,"intent.md");if(!Lv(t))return new Set;try{let r=(0,_c.default)(Gg(t,"utf8")).data.skip_gates;return Array.isArray(r)?new Set(r.filter(i=>typeof i=="string")):new Set}catch{return new Set}}function c$n(e,t=new Set){if(!Lv(e))return[];let n=new Map,r=VEe(e).filter(i=>{try{return e$n(op(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=op(e,i,"units");if(!Lv(s))continue;let o=VEe(s).filter(a=>a.startsWith("unit-")&&a.endsWith(".md"));for(let a of o){let c=op(s,a),u;try{u=Gg(c,"utf8")}catch{continue}let l;try{l=(0,_c.default)(u).data}catch{continue}let d=l.quality_gates;if(Array.isArray(d))for(let f of d){if(!f||typeof f!="object")continue;let p=f;if(p.superseded===!0)continue;let h=typeof p.name=="string"?p.name:"",m=typeof p.command=="string"?p.command:"";if(!m)continue;let y=typeof p.dir=="string"&&p.dir.length>0?p.dir:void 0,g=`${y??""}::${m}`;if(h&&t.has(h)||t.has(g))continue;let E=n.get(g),S=`${i}/${a.replace(/\.md$/,"")}`;E?E.contributors.includes(S)||E.contributors.push(S):n.set(g,{name:h||`gate-${n.size+1}`,command:m,dir:y,contributors:[S]})}}}return[...n.values()]}function u$n(e,t){let n=Gg(e,"utf8"),r=(0,_c.default)(n),i=r.data,s=i.approvals??{},o=Array.isArray(i.outputs)?i.outputs:[],a=e.split("/stages/")[0];s[t]=jd(a,o),i.approvals=s;let c=_c.default.stringify(r.content,i);mx(e,c)}function l$n(e,t){let n=op(fe(e),"intent.md");if(Lv(n))try{let r=(0,_c.default)(Gg(n,"utf8")),i=r.data,s=new Date().toISOString(),o=i.approvals??{};o.intent_quality_gates={at:s,deferred_to_ci:!0,deferred_count:t.length},i.approvals=o;let a=Array.isArray(i.deferred_gates)?i.deferred_gates:[];i.deferred_gates=[...a,...t.map(c=>({name:c.name,command:c.command,exit_code:c.exit_code,output:c.output.slice(0,300),deferred_at:s}))],mx(n,_c.default.stringify(r.content,i))}catch{}}function wIt(e,t){let n=op(fe(e),"intent.md");if(!Lv(n))return;let r=Gg(n,"utf8"),i=(0,_c.default)(r),s=i.data,o=s.approvals??{};o[t]={at:new Date().toISOString()},s.approvals=o,mx(n,_c.default.stringify(i.content,s))}var _c,n$n,WEe,OIt,NIt=v(()=>{"use strict";_c=_e(sn(),1);dfe();ffe();Wf();ze();UL();ns();Ls();n$n=1;WEe=2;OIt={name:"haiku_dispatch_quality_gates",description:"Run the declared `quality_gates` at stage scope (per-unit, with fix-loop on failure) or at intent scope (union of all units' gates, deduped by command, stamped on intent.md). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string"},stage:{type:"string"},units:{type:"array",items:{type:"string"}},scope:{type:"string",enum:["intent","stage"]}},required:["intent"]},async handle(e){let t=e.intent,n=e.stage||"",r=e.units||[];return(e.scope??(n===""?"intent":"stage"))==="intent"?o$n(t):s$n(t,n,r)}}});import{createHash as d$n,randomBytes as f$n}from"node:crypto";import{existsSync as Uv,readFileSync as YEe,realpathSync as PIt,unlinkSync as p$n}from"node:fs";import{writeFile as h$n}from"node:fs/promises";import{dirname as ZEe,isAbsolute as m$n,join as jv,relative as K1,resolve as KEe}from"node:path";function g$n(e){let t=jv(e,"settings.yml");if(!Uv(t))return!1;try{let n=YEe(t,"utf8"),{data:r}=(0,CIt.default)(`--- +${c}`,origin:"agent",severity:"blocker",author:"engine",source_ref:"intent_quality_gates"}),ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,message:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope \u2014 intent-scope FB filed.`},null,2))}function $er(e){let t=dp(e,"intent.md");if(!Bv(t))return new Set;try{let r=(0,bc.default)(Wg(t,"utf8")).data.skip_gates;return Array.isArray(r)?new Set(r.filter(i=>typeof i=="string")):new Set}catch{return new Set}}function etr(e,t=new Set){if(!Bv(e))return[];let n=new Map,r=bbe(e).filter(i=>{try{return Wer(dp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=dp(e,i,"units");if(!Bv(s))continue;let o=bbe(s).filter(a=>a.startsWith("unit-")&&a.endsWith(".md"));for(let a of o){let c=dp(s,a),u;try{u=Wg(c,"utf8")}catch{continue}let l;try{l=(0,bc.default)(u).data}catch{continue}let d=l.quality_gates;if(Array.isArray(d))for(let f of d){if(!f||typeof f!="object")continue;let p=f;if(p.superseded===!0)continue;let h=typeof p.name=="string"?p.name:"",m=typeof p.command=="string"?p.command:"";if(!m)continue;let g=typeof p.dir=="string"&&p.dir.length>0?p.dir:void 0,y=`${g??""}::${m}`;if(h&&t.has(h)||t.has(y))continue;let E=n.get(y),S=`${i}/${a.replace(/\.md$/,"")}`;E?E.contributors.includes(S)||E.contributors.push(S):n.set(y,{name:h||`gate-${n.size+1}`,command:m,dir:g,contributors:[S]})}}}return[...n.values()]}function ttr(e,t){let n=Wg(e,"utf8"),r=(0,bc.default)(n),i=r.data,s=i.approvals??{},o=Array.isArray(i.outputs)?i.outputs:[],a=e.split("/stages/")[0];s[t]=Hd(a,o),i.approvals=s;let c=bc.default.stringify(r.content,i);Tx(e,c)}function ntr(e,t){let n=dp(pe(e),"intent.md");if(Bv(n))try{let r=(0,bc.default)(Wg(n,"utf8")),i=r.data,s=new Date().toISOString(),o=i.approvals??{};o.intent_quality_gates={at:s,deferred_to_ci:!0,deferred_count:t.length},i.approvals=o;let a=Array.isArray(i.deferred_gates)?i.deferred_gates:[];i.deferred_gates=[...a,...t.map(c=>({name:c.name,command:c.command,exit_code:c.exit_code,output:c.output.slice(0,300),deferred_at:s}))],Tx(n,bc.default.stringify(r.content,i))}catch{}}function T0t(e,t){let n=dp(pe(e),"intent.md");if(!Bv(n))return;let r=Wg(n,"utf8"),i=(0,bc.default)(r),s=i.data,o=s.approvals??{};o[t]={at:new Date().toISOString()},s.approvals=o,Tx(n,bc.default.stringify(i.content,s))}var bc,Yer,Tbe,w0t,k0t=v(()=>{"use strict";bc=Se(Kt(),1);Ofe();Pfe();Zf();ze();YL();Gi();vs();Yer=1;Tbe=2;w0t={name:"haiku_dispatch_quality_gates",description:"Run the declared `quality_gates` at stage scope (per-unit, with fix-loop on failure) or at intent scope (union of all units' gates, deduped by command, stamped on intent.md). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string"},stage:{type:"string"},units:{type:"array",items:{type:"string"}},scope:{type:"string",enum:["intent","stage"]}},required:["intent"]},async handle(e){let t=e.intent,n=e.stage||"",r=e.units||[];return(e.scope??(n===""?"intent":"stage"))==="intent"?Qer(t):Xer(t,n,r)}}});import{existsSync as I0t,readFileSync as rtr}from"node:fs";import{join as i6}from"node:path";var x0t,O0t=v(()=>{"use strict";ns();Oa();ji();uo();ze();vo();Gi();Fv();vs();x0t={name:"haiku_drop_stage",description:"Drop an OPTIONAL stage from an intent's plan. Use when the elaborate-loop offered a keep-or-drop decision for an optional stage (e.g. design / product / operations / release) and this intent doesn't need it. Removes the stage from the intent's plan; the next haiku_run_next advances to the following stage. Only the ACTIVE, not-yet-started stage can be dropped \u2014 refuses a non-active stage (drop_stage_not_active), a non-optional stage (drop_stage_not_optional), or a started stage (drop_stage_already_started).",inputSchema:g0,async handle(e){let t=Be(e,Rge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=ve(),s=i6(i,"intents",n),o=i6(s,"intent.md");if(!I0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(rtr(o,"utf8")).data,c=a.studio||"";if(!c)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${n}' has no studio selected.`}));let u=ai(n,c,s)??"";if(r!==u)return ye(JSON.stringify({error:"drop_stage_not_active",message:`Stage '${r}' is not the active stage of intent '${n}' (active: '${u||"(none)"}'). An optional stage can only be dropped when the cursor is on it \u2014 the decision is made at arrival, not for a future or past stage.`}));if(!JD(c,r))return ye(JSON.stringify({error:"drop_stage_not_optional",message:`Stage '${r}' is not optional (no \`optional: true\` in its STAGE.md). Mandatory stages cannot be dropped.`}));let l=i6(s,"stages",r);if(I0t(i6(l,"elaboration.md"))||ov(l).length>0)return ye(JSON.stringify({error:"drop_stage_already_started",message:`Stage '${r}' has already started (elaboration recorded or units drafted). Dropping only applies before any work \u2014 use a stage reset if you need to discard started work.`}));let f=wn(a,c),p=f.indexOf(r),h=f[p+1],m=f.filter(g=>g!==r);return De(o,"stages",m),wt(`haiku: drop optional stage ${r} from ${n}`),Ke("haiku.stage.dropped",{intent:n,stage:r,studio:c}),ye(JSON.stringify({action:"stage_dropped",intent:n,stage:r,stages:m,message:zn(`Dropped the optional **${r}** stage from intent "${n}".`,`Call haiku_run_next { intent: "${n}" } to advance${h?` to the next stage (\`${h}\`)`:""}.`)}))}}});import{createHash as itr,randomBytes as otr}from"node:crypto";import{existsSync as Gv,readFileSync as Rbe,realpathSync as P0t,unlinkSync as atr}from"node:fs";import{writeFile as ctr}from"node:fs/promises";import{dirname as Abe,isAbsolute as utr,join as zv,relative as cU,resolve as vbe}from"node:path";function ltr(e){let t=zv(e,"settings.yml");if(!Gv(t))return!1;try{let n=Rbe(t,"utf8"),{data:r}=(0,N0t.default)(`--- ${n} --- -`);return r.human_write_require_rationale===!0}catch{return!1}}function y$n(e){let t=jv(e,"write-audit.jsonl");if(!Uv(t))return 1;try{return YEe(t,"utf8").split(` -`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function _$n(e){if(/^knowledge\//.test(e))return{allowed:!0,stageSegment:null};let t=e.match(/^stages\/([^/]+)\/(.+)$/);if(t){let n=t[1],r=t[2];if(/^knowledge\//.test(r)||/^discovery\//.test(r)||/^artifacts\//.test(r)||/^outputs\//.test(r))return{allowed:!0,stageSegment:n}}return{allowed:!1}}function E$n(e,t,n){let r=$T(e),i=KEe(t);if(m$n(r)){let l=KEe(r);if(!l.startsWith(`${i}/`)&&l!==i)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' resolves outside the intent directory.`};r=K1(i,l)}let s=KEe(jv(t,r));if(!s.startsWith(`${i}/`)&&s!==i)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' resolves outside the intent directory (path escape detected).`};let o=K1(i,s),a=ZEe(s);if(Uv(a))try{let l=PIt(a),d=PIt(i);if(!l.startsWith(`${d}/`)&&l!==d)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' parent directory resolves outside the intent directory via symlink.`}}catch{return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}': could not resolve parent directory. Rejecting for safety.`}}let c=$T(o);for(let l of S$n)if(l.pattern.test(c))return{ok:!1,code:"path_outside_tracked_surface",reason:"deny_list_match",deny_rule:l.rule,path:c,message:`Cannot write to '${c}': ${l.message}`};let u=_$n(c);if(!u.allowed)return{ok:!1,code:"path_outside_tracked_surface",reason:"no_allow_match",path:c,message:`Path '${c}' does not match any allowed tracked-surface pattern (knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/).`};if(u.stageSegment!==null){let l=u.stageSegment;if(!n.includes(l))return{ok:!1,code:"path_outside_tracked_surface",reason:"invalid_stage",path:c,message:`Path '${c}' references stage '${l}' which does not exist in this intent.`}}return{ok:!0,canonicalPath:c}}var CIt,S$n,MIt,DIt=v(()=>{"use strict";CIt=_e(sn(),1);J5();_0();Y5();bZ();ze();ns();Ls();S$n=[{pattern:/(?:^|\/)units\/[^/]+\.md$/,rule:"stages/{stage}/units/*.md",message:"Unit files are lifecycle-managed. Use haiku_unit_write or haiku_unit_set."},{pattern:/(?:^|\/)feedback\/[^/]+\.md$/,rule:"stages/{stage}/feedback/*.md",message:"Feedback files are lifecycle-managed. Use haiku_feedback or haiku_feedback_write."},{pattern:/(?:^|\/)intent\.md$/,rule:"intent.md",message:"intent.md is workflow-engine-managed. Use haiku_intent_get or haiku_run_next."},{pattern:/(?:^|\/)state\.json$/,rule:"stages/{stage}/state.json",message:"state.json is workflow engine-internal. Use haiku_run_next or a dedicated MCP tool."},{pattern:/(?:^|\/)baseline\.json$/,rule:"stages/{stage}/baseline.json",message:"baseline.json is managed by the drift-detection gate. Direct writes desync SHA tracking."},{pattern:/(?:^|\/)drift-markers\.json$/,rule:"drift-markers.json",message:"drift-markers.json is an internal workflow-engine artifact. Do not write directly."},{pattern:/(?:^|\/)\.baseline-ack$/,rule:"stages/{stage}/.baseline-ack",message:".baseline-ack is the operator-only baseline-reset acknowledgement marker. Only /haiku:haiku-repair --confirm-baseline-reset can write it; the agent has no path. This is the V-11 defence against silent baseline laundering."},{pattern:/(?:^|\/)baseline-thrash\.json$/,rule:"stages/{stage}/baseline-thrash.json",message:"baseline-thrash.json is the V-11 baseline-corruption circuit breaker. Managed exclusively by the drift-detection gate."},{pattern:/(?:^|\/)write-audit\.jsonl$/,rule:"write-audit.jsonl",message:"write-audit.jsonl is append-only and managed exclusively by the haiku_human_write tool."},{pattern:/(?:^|\/)drift-assessments\//,rule:"drift-assessments/*",message:"drift-assessments/ entries are managed by the workflow engine's assessment pipeline."}];MIt={name:"haiku_human_write",description:"Write a file to the intent's tracked surface as a human-attributed write. Use when a user explicitly instructs the agent to write a file on their behalf (e.g. 'save this config to knowledge/'). The file is written atomically, attributed to the human via an action-log entry, and appended to the write-audit log. The baseline is NOT updated \u2014 the next drift-gate tick detects the change and dispatches manual_change_assessment. Allowed destinations: knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/ (or outputs/ alias). Workflow-managed files (units, feedback, intent.md, state.json) are refused.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The slug of the active intent."},path:{type:"string",description:"Destination file path \u2014 intent-relative (e.g. knowledge/brand-guide.md) or absolute within the intent directory. Path is canonicalised (outputs/ \u2192 artifacts/) before validation."},content:{type:"string",description:"File content. UTF-8 string by default. Pass base64-encoded bytes and set content_encoding: 'base64' for binary files."},content_encoding:{type:"string",enum:["utf-8","base64"],description:"Encoding of the content field. Default: 'utf-8'."},claimed_author_id:{type:"string",description:"Self-reported identifier (username, email, UUID) of who the agent BELIEVES gave the instruction. Captured in the audit log as a CLAIM, not an authoritative identity \u2014 the server does not cross-check against any session or OS identity. Reviewers reading audit logs MUST treat this as 'what the agent said' rather than 'who did it'. (V-03 mitigation: renamed from `human_author_id` so consumers stop treating it as authoritative.)"},human_author_id:{type:"string",description:"DEPRECATED legacy alias for `claimed_author_id`. Accepted for backwards compatibility; the value is mirrored to `claimed_author_id` on persistence. New callers MUST use `claimed_author_id`."},rationale:{type:"string",description:"Short free-text explanation of why the human requested this write. Strongly recommended. Required when the plugin setting human_write_require_rationale is true."},user_instruction_excerpt:{type:"string",description:"The user's instruction as it appeared in chat (first 200 chars). Captured in the audit log for security review. Self-reported by the agent."},overwrite:{type:"boolean",description:"Whether to overwrite the file if it already exists. Default: true. When false, returns path_already_exists if the destination exists."},create_dirs:{type:"boolean",description:"Whether to create intermediate directories if they do not exist. Default: true. When false, returns parent_dir_missing if the parent directory is absent."}},required:["intent_slug","path","content"]},async handle(e){let t=e.intent_slug,n=e.path,r=e.content,i=e.content_encoding??"utf-8",s=e.claimed_author_id??e.human_author_id??null,o=e.rationale??null,a=e.user_instruction_excerpt??null,c=e.overwrite??!0,u=e.create_dirs??!0,l=Bg({intent:t});if(l)return l;let d=we(),f=jv(d,"intents",t),p=jv(f,"intent.md");if(!Uv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if($L(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_active",message:`Intent '${t}' is archived. Unarchive it first with haiku_intent_unarchive.`},null,2)}],isError:!0};if(QL(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_locked",message:`Intent '${t}' is locked. Unlock it before issuing human-attributed writes.`},null,2)}],isError:!0};if(i!=="utf-8"&&i!=="base64")return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"invalid_content_encoding",message:`Unrecognized content_encoding '${i}'. Valid values: 'utf-8', 'base64'.`},null,2)}],isError:!0};let h;if(i==="base64"?h=Buffer.from(r,"base64"):h=Buffer.from(r,"utf8"),h.length===0)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"empty_content",message:"Empty content is not permitted. The file must have at least one byte."},null,2)}],isError:!0};if(g$n(d)&&(!o||o.trim()===""))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"rationale_required",message:"Plugin settings require a rationale for human-attributed writes. Provide a short explanation of why the human requested this write in the 'rationale' field.",config_key:"human_write_require_rationale"},null,2)}],isError:!0};let m=Jgt(f),y=E$n(n,f,m);if(!y.ok)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:y.code,path:y.path,reason:y.reason,...y.reason==="deny_list_match"&&y.deny_rule?{deny_rule:y.deny_rule}:{},message:y.message},null,2)}],isError:!0};let{canonicalPath:g}=y,E=jv(f,g),S=ZEe(E);if(!c&&Uv(E)){let C="";try{let{createHash:z}=await import("node:crypto"),U=YEe(E);C=z("sha256").update(U).digest("hex")}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"path_already_exists",path:g,existing_sha:C,message:`Path '${g}' already exists and overwrite is false. Set overwrite: true to replace it.`},null,2)}],isError:!0}}if(!u&&!Uv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:g,missing_dir:K1(f,S),message:`Parent directory '${K1(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let _=[];if(u){let C=S,z=[];for(;!Uv(C);){z.unshift(C);let U=ZEe(C);if(U===C)break;C=U}for(let U of z)_.push(K1(f,U))}let b=d$n("sha256").update(h).digest("hex"),T=process.pid,A=f$n(6).toString("hex"),R=jv(f,`.hwm-tmp-${T}-${A}.tmp`);try{await h$n(R,h)}catch(C){return P0(R),{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:g,message:`Failed to write tempfile for '${g}': ${String(C)}`},null,2)}],isError:!0}}let k=cv(f,S,R,E);if(!k.ok){P0(R);let C=k.code==="parent_chain_contains_symlink"||k.code==="parent_chain_escape";return{content:[{type:"text",text:JSON.stringify({ok:!1,error:C?"path_outside_tracked_surface":"disk_write_failed",path:g,reason:C?k.code:void 0,message:C?`Refused to write '${g}': parent directory chain failed symlink-safety check (${k.code}).`:`Failed to write '${g}': ${k.detail}`},null,2)}],isError:!0}}let x=g.match(/^stages\/([^/]+)\//),N=x===null,P;try{P=N?e1(f):x_(f,x[1])}catch(C){if(C instanceof Hd){try{p$n(E)}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:g,reason:"tick_persist_failed",message:`Failed to persist tick counter for '${g}': ${C.message}`},null,2)}],isError:!0}}throw C}let D=N?"intent":"stage",j=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),V=y$n(f),Z=w1(P,V),B=cZ(d);await kv(f,P,{entry_type:"human_write",path:g,sha:b,author_class:"human-via-mcp",timestamp:j,claimed_author_id:s,human_author_id:s,entry_id:Z,tick_counter:P,tick_scope:D});let G=!1,X;if(B)X="drift_detection_disabled";else{let C=a?uvt(a):null;G=(await k1(f,{timestamp:j,entry_id:Z,path:g,sha:b,author_class:"human-via-mcp",claimed_author_id:s,human_author_id:s,rationale:o,user_instruction_excerpt:C,tick_counter:P,session_id:null,overwrite:c,dirs_created:_,audit_log_appended:!0,tick_scope:D})).ok}let q={ok:!0,path:g,sha:b,author_class:"human-via-mcp",timestamp:j,claimed_author_id:s,human_author_id:s,dirs_created:_,action_log_entry_id:Z,audit_log_appended:G};return X&&(q.reason=X),be(JSON.stringify(q,null,2))}}});import{existsSync as b$n,readFileSync as T$n}from"node:fs";import{join as v$n}from"node:path";var LIt,UIt=v(()=>{"use strict";Tr();ze();ns();Ls();LIt={name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]},handle(e){let t=e.intent,n=we(),r=v$n(n,"intents",t,"intent.md");if(!b$n(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re(T$n(r,"utf8"));if(i.archived===!0)return be(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is already archived.`},null,2));let s=mr(t,void 0);return s.ok?(je(r,"archived",!0),Dt(`haiku: archive intent ${t}`),be(JSON.stringify({action:"intent_archived",slug:t,path:r,message:`Intent '${t}' has been archived. Call haiku_intent_unarchive to restore it.`},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed for intent archive '${t}' \u2014 ${s.message}. Resolve manually and retry.`}],isError:!0}}}});import{execFileSync as q6}from"node:child_process";import{existsSync as A$n,mkdirSync as JEe,writeFileSync as XEe}from"node:fs";import{join as Jh}from"node:path";function jIt(e){let t=e.trim();if(!t)return null;let n="quick|continuous|discrete|hybrid|autopilot",r="inception|design|product|development|operations|security",i=[{re:new RegExp(`\\b(?:in|using|use|with|the|a)\\s+(?:${n})\\s+mode\\b`,"i"),label:"mode reference"},{re:new RegExp(`\\b(?:${n})-mode\\b`,"i"),label:"mode reference"},{re:new RegExp(`\\bonly\\s+(?:in|with|the|a)?\\s*(?:${r})\\s+(?:stage|phase)\\b`,"i"),label:"stage / phase restriction"},{re:new RegExp(`\\bonly\\s+(?:run|use|do|in|with)\\s+(?:the\\s+)?(?:${r})\\s+(?:stage|phase)?\\b`,"i"),label:"stage / phase restriction"},{re:new RegExp(`\\bin\\s+(?:the\\s+)?(?:${r})\\s+(?:stage|phase)\\b(?!\\s+of\\b)`,"i"),label:"stage / phase reference"},{re:/\b(?:use|using)\s+(?:the\s+)?\w+\s+studio\b/i,label:"studio reference"},{re:/\b(?:studio|mode|stages?)\s*:\s*\w+/i,label:"raw frontmatter in description"}];for(let{re:s,label:o}of i){let a=t.match(s);if(a)return`${o}: "${a[0]}"`}return null}var FIt,HIt=v(()=>{"use strict";Tr();pfe();zL();es();vo();ze();Zn();Ko();ab();ns();Ls();FIt={name:"haiku_intent_create",description:"Create a new intent. Returns the slug + path. Title is required (crisp 3\u20138 word summary, \u226480 chars, single line). If the user started the intent from a referenced file (a spec, a doc, a screenshot, a path like `~/Downloads/spec.pdf`, or a dragged-in attachment), READ it and synthesize its relevant substance directly into `description` and `context` \u2014 NEVER pass the file path in any field. An absolute path leaks the user's machine layout and the external file won't travel with the intent; the intent must stand on its own from its own text (capture what the file says, not where it lives). Studio, mode, and (for quick) stage are selected by the engine on the next haiku_run_next call \u2014 the tick blocks on the SPA picker until the user chooses, then continues to real workflow actions. The agent does NOT call select_* tools directly; just call haiku_run_next after creating the intent. **`studio_candidates` is REQUIRED** \u2014 the 2\u20134 studios from `haiku_studio_list` that best fit what you just described. You have the description in context right now; this is the moment to narrow the picker so the user isn't scrolling the whole registry. The picker presents your shortlist first and tucks the rest behind a 'Show all studios\u2026' expansion, so narrowing is never lossy. If you call without it, the tool tells you to fetch `haiku_studio_list` and retry. Always creates a fresh intent \u2014 `/haiku:haiku-start` does not resume; use `/haiku:haiku-pickup` for that.",inputSchema:EL,handle(e){let t=e.description,n=e.title,r=e.slug;if(!n||typeof n!="string")return be(JSON.stringify({error:"missing_title",message:'haiku_intent_create requires a `title` parameter \u2014 a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Write it deliberately; do NOT pass a truncated description. Example: title: "Add archivable intents".'}));if(/[\r\n]/.test(n))return be(JSON.stringify({error:"invalid_title",message:"`title` must be a single line \u2014 got newlines. Rewrite as a crisp 3\u20138 word summary (\u226480 chars) and call again."}));let i=n.trim().replace(/\s+/g," ");if(XL(i))return be(JSON.stringify({error:"invalid_title",message:`\`title\` must be non-empty and \u226480 chars after trimming. Got ${i.length} chars. Rewrite as a 3\u20138 word summary and call again.`}));let s=jIt(i),o=jIt(t||"");if(s||o){let g=s&&o?"title and description":s?"title":"description",E=s||o;return be(JSON.stringify({error:"intent_create_meta_pollution",where:g,match:E,message:`The ${g} contains workflow configuration phrasing (${E}). Studio, mode, and stage are engine-managed \u2014 the next haiku_run_next call will run the SPA picker to let the user choose them. The intent's title and description should describe the substance of what to build or accomplish, not the workflow shape. Re-ask the user what they want to BUILD (not how to configure the workflow), then call haiku_intent_create again with that as the description.`}))}let a=e.studio_candidates;if(!Array.isArray(a)||a.length===0)return be(JSON.stringify({error:"studio_candidates_required",message:'haiku_intent_create requires `studio_candidates`: the 2\u20134 studios that best fit what you\'re building. You have the description in context now \u2014 this is the moment to narrow the picker so the user isn\'t scrolling the whole registry. To recover: call `haiku_studio_list` (it returns every studio with its name + description), pick the 2\u20134 closest matches, then call haiku_intent_create again with `studio_candidates: ["", \u2026]` using the canonical `name` from that list. The picker still shows the rest behind a "Show all studios\u2026" expansion, so narrowing is never lossy.'}));let c=[];for(let g of a){if(typeof g!="string")continue;let E=_i(g);E&&!c.includes(E.name)&&c.push(E.name)}if(c.length===0)return be(JSON.stringify({error:"studio_candidates_unresolved",received:a,message:"None of the `studio_candidates` you passed resolve to a real studio. Call `haiku_studio_list` to see the valid studios, then retry with the canonical `name`, slug, or a known alias for the 2\u20134 that best fit."}));r||(r=i.toLowerCase().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,50).replace(/-$/,"")),r=nr(r,"intent slug");let u=e.state_file,l=we(),d=Jh(l,"intents",r),f=`haiku/${r}/main`;if(Ae())try{let g=Cfe();Ft(f)||EI(r,g||void 0);let E="";try{E=q6("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}E!==f&&q6("git",["checkout",f],{encoding:"utf8",stdio:"pipe"})}catch(g){let E=g instanceof Error?g.message:String(g);return{content:[{type:"text",text:`Error: failed to switch to intent branch '${f}'. Stash or commit uncommitted changes, or remove the worktree holding '${f}' if it's checked out elsewhere, then retry. Raw git error: ${E}`}],isError:!0}}if(A$n(Jh(d,"intent.md")))return be(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));JEe(Jh(d,"knowledge"),{recursive:!0}),JEe(Jh(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${yS()}"`,"status: active",`created_at: ${En()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` -`);if(XEe(Jh(d,"intent.md"),m),je(Jh(d,"intent.md"),"studio_candidates",c),XEe(Jh(d,".gitattributes"),["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution.","action-log.jsonl merge=union","write-audit.jsonl merge=union",""].join(` -`)),Ae())try{let g=`.haiku/intents/${r}/.gitattributes`;q6("git",["add","--",g],{stdio:"pipe"}),q6("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",g],{stdio:"pipe"})}catch{}if(p){let g=Jh(d,"knowledge");JEe(g,{recursive:!0}),XEe(Jh(g,"CONVERSATION-CONTEXT.md"),`# Conversation Context +`);return r.human_write_require_rationale===!0}catch{return!1}}function dtr(e){let t=zv(e,"write-audit.jsonl");if(!Gv(t))return 1;try{return Rbe(t,"utf8").split(` +`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function ptr(e){if(/^knowledge\//.test(e))return{allowed:!0,stageSegment:null};let t=e.match(/^stages\/([^/]+)\/(.+)$/);if(t){let n=t[1],r=t[2];if(/^knowledge\//.test(r)||/^discovery\//.test(r)||/^artifacts\//.test(r)||/^outputs\//.test(r))return{allowed:!0,stageSegment:n}}return{allowed:!1}}function htr(e,t,n){let r=nv(e),i=vbe(t);if(utr(r)){let l=vbe(r);if(!l.startsWith(`${i}/`)&&l!==i)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' resolves outside the intent directory.`};r=cU(i,l)}let s=vbe(zv(t,r));if(!s.startsWith(`${i}/`)&&s!==i)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' resolves outside the intent directory (path escape detected).`};let o=cU(i,s),a=Abe(s);if(Gv(a))try{let l=P0t(a),d=P0t(i);if(!l.startsWith(`${d}/`)&&l!==d)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' parent directory resolves outside the intent directory via symlink.`}}catch{return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}': could not resolve parent directory. Rejecting for safety.`}}let c=nv(o);for(let l of ftr)if(l.pattern.test(c))return{ok:!1,code:"path_outside_tracked_surface",reason:"deny_list_match",deny_rule:l.rule,path:c,message:`Cannot write to '${c}': ${l.message}`};let u=ptr(c);if(!u.allowed)return{ok:!1,code:"path_outside_tracked_surface",reason:"no_allow_match",path:c,message:`Path '${c}' does not match any allowed tracked-surface pattern (knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/).`};if(u.stageSegment!==null){let l=u.stageSegment;if(!n.includes(l))return{ok:!1,code:"path_outside_tracked_surface",reason:"invalid_stage",path:c,message:`Path '${c}' references stage '${l}' which does not exist in this intent.`}}return{ok:!0,canonicalPath:c}}var N0t,ftr,C0t,M0t=v(()=>{"use strict";N0t=Se(Kt(),1);uZ();A0();cZ();FY();ze();Gi();vs();ftr=[{pattern:/(?:^|\/)units\/[^/]+\.md$/,rule:"stages/{stage}/units/*.md",message:"Unit files are lifecycle-managed. Use haiku_unit_write or haiku_unit_set."},{pattern:/(?:^|\/)feedback\/[^/]+\.md$/,rule:"stages/{stage}/feedback/*.md",message:"Feedback files are lifecycle-managed. Use haiku_feedback or haiku_feedback_write."},{pattern:/(?:^|\/)intent\.md$/,rule:"intent.md",message:"intent.md is workflow-engine-managed. Use haiku_intent_get or haiku_run_next."},{pattern:/(?:^|\/)state\.json$/,rule:"stages/{stage}/state.json",message:"state.json is workflow engine-internal. Use haiku_run_next or a dedicated MCP tool."},{pattern:/(?:^|\/)baseline\.json$/,rule:"stages/{stage}/baseline.json",message:"baseline.json is managed by the drift-detection gate. Direct writes desync SHA tracking."},{pattern:/(?:^|\/)drift-markers\.json$/,rule:"drift-markers.json",message:"drift-markers.json is an internal workflow-engine artifact. Do not write directly."},{pattern:/(?:^|\/)\.baseline-ack$/,rule:"stages/{stage}/.baseline-ack",message:".baseline-ack is the operator-only baseline-reset acknowledgement marker. Only /haiku:haiku-repair --confirm-baseline-reset can write it; the agent has no path. This is the V-11 defence against silent baseline laundering."},{pattern:/(?:^|\/)baseline-thrash\.json$/,rule:"stages/{stage}/baseline-thrash.json",message:"baseline-thrash.json is the V-11 baseline-corruption circuit breaker. Managed exclusively by the drift-detection gate."},{pattern:/(?:^|\/)write-audit\.jsonl$/,rule:"write-audit.jsonl",message:"write-audit.jsonl is append-only and managed exclusively by the haiku_human_write tool."},{pattern:/(?:^|\/)drift-assessments\//,rule:"drift-assessments/*",message:"drift-assessments/ entries are managed by the workflow engine's assessment pipeline."}];C0t={name:"haiku_human_write",description:"Write a file to the intent's tracked surface as a human-attributed write. Use when a user explicitly instructs the agent to write a file on their behalf (e.g. 'save this config to knowledge/'). The file is written atomically, attributed to the human via an action-log entry, and appended to the write-audit log. The baseline is NOT updated \u2014 the next drift-gate tick detects the change and dispatches manual_change_assessment. Allowed destinations: knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/ (or outputs/ alias). Workflow-managed files (units, feedback, intent.md, state.json) are refused.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The slug of the active intent."},path:{type:"string",description:"Destination file path \u2014 intent-relative (e.g. knowledge/brand-guide.md) or absolute within the intent directory. Path is canonicalised (outputs/ \u2192 artifacts/) before validation."},content:{type:"string",description:"File content. UTF-8 string by default. Pass base64-encoded bytes and set content_encoding: 'base64' for binary files."},content_encoding:{type:"string",enum:["utf-8","base64"],description:"Encoding of the content field. Default: 'utf-8'."},claimed_author_id:{type:"string",description:"Self-reported identifier (username, email, UUID) of who the agent BELIEVES gave the instruction. Captured in the audit log as a CLAIM, not an authoritative identity \u2014 the server does not cross-check against any session or OS identity. Reviewers reading audit logs MUST treat this as 'what the agent said' rather than 'who did it'. (V-03 mitigation: renamed from `human_author_id` so consumers stop treating it as authoritative.)"},human_author_id:{type:"string",description:"DEPRECATED legacy alias for `claimed_author_id`. Accepted for backwards compatibility; the value is mirrored to `claimed_author_id` on persistence. New callers MUST use `claimed_author_id`."},rationale:{type:"string",description:"Short free-text explanation of why the human requested this write. Strongly recommended. Required when the plugin setting human_write_require_rationale is true."},user_instruction_excerpt:{type:"string",description:"The user's instruction as it appeared in chat (first 200 chars). Captured in the audit log for security review. Self-reported by the agent."},overwrite:{type:"boolean",description:"Whether to overwrite the file if it already exists. Default: true. When false, returns path_already_exists if the destination exists."},create_dirs:{type:"boolean",description:"Whether to create intermediate directories if they do not exist. Default: true. When false, returns parent_dir_missing if the parent directory is absent."}},required:["intent_slug","path","content"]},async handle(e){let t=e.intent_slug,n=e.path,r=e.content,i=e.content_encoding??"utf-8",s=e.claimed_author_id??e.human_author_id??null,o=e.rationale??null,a=e.user_instruction_excerpt??null,c=e.overwrite??!0,u=e.create_dirs??!0,l=Vg({intent:t});if(l)return l;let d=ve(),f=zv(d,"intents",t),p=zv(f,"intent.md");if(!Gv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if(u1(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_active",message:`Intent '${t}' is archived. Unarchive it first with haiku_intent_unarchive.`},null,2)}],isError:!0};if(c1(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_locked",message:`Intent '${t}' is locked. Unlock it before issuing human-attributed writes.`},null,2)}],isError:!0};if(i!=="utf-8"&&i!=="base64")return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"invalid_content_encoding",message:`Unrecognized content_encoding '${i}'. Valid values: 'utf-8', 'base64'.`},null,2)}],isError:!0};let h;if(i==="base64"?h=Buffer.from(r,"base64"):h=Buffer.from(r,"utf8"),h.length===0)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"empty_content",message:"Empty content is not permitted. The file must have at least one byte."},null,2)}],isError:!0};if(ltr(d)&&(!o||o.trim()===""))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"rationale_required",message:"Plugin settings require a rationale for human-attributed writes. Provide a short explanation of why the human requested this write in the 'rationale' field.",config_key:"human_write_require_rationale"},null,2)}],isError:!0};let m=Iyt(f),g=htr(n,f,m);if(!g.ok)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:g.code,path:g.path,reason:g.reason,...g.reason==="deny_list_match"&&g.deny_rule?{deny_rule:g.deny_rule}:{},message:g.message},null,2)}],isError:!0};let{canonicalPath:y}=g,E=zv(f,y),S=Abe(E);if(!c&&Gv(E)){let M="";try{let{createHash:q}=await import("node:crypto"),U=Rbe(E);M=q("sha256").update(U).digest("hex")}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"path_already_exists",path:y,existing_sha:M,message:`Path '${y}' already exists and overwrite is false. Set overwrite: true to replace it.`},null,2)}],isError:!0}}if(!u&&!Gv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:y,missing_dir:cU(f,S),message:`Parent directory '${cU(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let _=[];if(u){let M=S,q=[];for(;!Gv(M);){q.unshift(M);let U=Abe(M);if(U===M)break;M=U}for(let U of q)_.push(cU(f,U))}let b=itr("sha256").update(h).digest("hex"),T=process.pid,A=otr(6).toString("hex"),R=zv(f,`.hwm-tmp-${T}-${A}.tmp`);try{await ctr(R,h)}catch(M){return U0(R),{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:y,message:`Failed to write tempfile for '${y}': ${String(M)}`},null,2)}],isError:!0}}let x=fv(f,S,R,E);if(!x.ok){U0(R);let M=x.code==="parent_chain_contains_symlink"||x.code==="parent_chain_escape";return{content:[{type:"text",text:JSON.stringify({ok:!1,error:M?"path_outside_tracked_surface":"disk_write_failed",path:y,reason:M?x.code:void 0,message:M?`Refused to write '${y}': parent directory chain failed symlink-safety check (${x.code}).`:`Failed to write '${y}': ${x.detail}`},null,2)}],isError:!0}}let k=y.match(/^stages\/([^/]+)\//),P=k===null,N;try{N=P?l1(f):DE(f,k[1])}catch(M){if(M instanceof Bd){try{atr(E)}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:y,reason:"tick_persist_failed",message:`Failed to persist tick counter for '${y}': ${M.message}`},null,2)}],isError:!0}}throw M}let C=P?"intent":"stage",F=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),V=dtr(f),K=H1(N,V),$=RY(d);await Nv(f,N,{entry_type:"human_write",path:y,sha:b,author_class:"human-via-mcp",timestamp:F,claimed_author_id:s,human_author_id:s,entry_id:K,tick_counter:N,tick_scope:C});let B=!1,X;if($)X="drift_detection_disabled";else{let M=a?Kvt(a):null;B=(await q1(f,{timestamp:F,entry_id:K,path:y,sha:b,author_class:"human-via-mcp",claimed_author_id:s,human_author_id:s,rationale:o,user_instruction_excerpt:M,tick_counter:N,session_id:null,overwrite:c,dirs_created:_,audit_log_appended:!0,tick_scope:C})).ok}let G={ok:!0,path:y,sha:b,author_class:"human-via-mcp",timestamp:F,claimed_author_id:s,human_author_id:s,dirs_created:_,action_log_entry_id:K,audit_log_appended:B};return X&&(G.reason=X),ye(JSON.stringify(G,null,2))}}});import{existsSync as mtr,readFileSync as gtr}from"node:fs";import{join as ytr}from"node:path";var D0t,L0t=v(()=>{"use strict";yr();ze();Gi();vs();D0t={name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]},handle(e){let t=e.intent,n=ve(),r=ytr(n,"intents",t,"intent.md");if(!mtr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re(gtr(r,"utf8"));if(i.archived===!0)return ye(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is already archived.`},null,2));let s=gr(t,void 0);return s.ok?(De(r,"archived",!0),wt(`haiku: archive intent ${t}`),ye(JSON.stringify({action:"intent_archived",slug:t,path:r,message:`Intent '${t}' has been archived. Call haiku_intent_unarchive to restore it.`},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed for intent archive '${t}' \u2014 ${s.message}. Resolve manually and retry.`}],isError:!0}}}});import{execFileSync as s6}from"node:child_process";import{existsSync as Str,mkdirSync as wbe,writeFileSync as kbe}from"node:fs";import{join as tm}from"node:path";function U0t(e){let t=e.trim();if(!t)return null;let n="quick|continuous|discrete|hybrid|autopilot",r="inception|design|product|development|operations|security",i=[{re:new RegExp(`\\b(?:in|using|use|with|the|a)\\s+(?:${n})\\s+mode\\b`,"i"),label:"mode reference"},{re:new RegExp(`\\b(?:${n})-mode\\b`,"i"),label:"mode reference"},{re:new RegExp(`\\bonly\\s+(?:in|with|the|a)?\\s*(?:${r})\\s+(?:stage|phase)\\b`,"i"),label:"stage / phase restriction"},{re:new RegExp(`\\bonly\\s+(?:run|use|do|in|with)\\s+(?:the\\s+)?(?:${r})\\s+(?:stage|phase)?\\b`,"i"),label:"stage / phase restriction"},{re:new RegExp(`\\bin\\s+(?:the\\s+)?(?:${r})\\s+(?:stage|phase)\\b(?!\\s+of\\b)`,"i"),label:"stage / phase reference"},{re:/\b(?:use|using)\s+(?:the\s+)?\w+\s+studio\b/i,label:"studio reference"},{re:/\b(?:studio|mode|stages?)\s*:\s*\w+/i,label:"raw frontmatter in description"}];for(let{re:s,label:o}of i){let a=t.match(s);if(a)return`${o}: "${a[0]}"`}return null}var F0t,j0t=v(()=>{"use strict";yr();Nfe();t1();ji();uo();ze();Kn();vo();db();Gi();vs();F0t={name:"haiku_intent_create",description:"Create a new intent. Returns the slug + path. Title is required (crisp 3\u20138 word summary, \u226480 chars, single line). If the user started the intent from a referenced file (a spec, a doc, a screenshot, a path like `~/Downloads/spec.pdf`, or a dragged-in attachment), READ it and synthesize its relevant substance directly into `description` and `context` \u2014 NEVER pass the file path in any field. An absolute path leaks the user's machine layout and the external file won't travel with the intent; the intent must stand on its own from its own text (capture what the file says, not where it lives). Studio, mode, and (for quick) stage are selected by the engine on the next haiku_run_next call \u2014 the tick blocks on the SPA picker until the user chooses, then continues to real workflow actions. The agent does NOT call select_* tools directly; just call haiku_run_next after creating the intent. **`studio_candidates` is REQUIRED** \u2014 the 2\u20134 studios from `haiku_studio_list` that best fit what you just described. You have the description in context right now; this is the moment to narrow the picker so the user isn't scrolling the whole registry. The picker presents your shortlist first and tucks the rest behind a 'Show all studios\u2026' expansion, so narrowing is never lossy. If you call without it, the tool tells you to fetch `haiku_studio_list` and retry. Always creates a fresh intent \u2014 `/haiku:haiku-start` does not resume; use `/haiku:haiku-pickup` for that.",inputSchema:PL,handle(e){let t=e.description,n=e.title,r=e.slug;if(!n||typeof n!="string")return ye(JSON.stringify({error:"missing_title",message:'haiku_intent_create requires a `title` parameter \u2014 a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Write it deliberately; do NOT pass a truncated description. Example: title: "Add archivable intents".'}));if(/[\r\n]/.test(n))return ye(JSON.stringify({error:"invalid_title",message:"`title` must be a single line \u2014 got newlines. Rewrite as a crisp 3\u20138 word summary (\u226480 chars) and call again."}));let i=n.trim().replace(/\s+/g," ");if(a1(i))return ye(JSON.stringify({error:"invalid_title",message:`\`title\` must be non-empty and \u226480 chars after trimming. Got ${i.length} chars. Rewrite as a 3\u20138 word summary and call again.`}));let s=U0t(i),o=U0t(t||"");if(s||o){let y=s&&o?"title and description":s?"title":"description",E=s||o;return ye(JSON.stringify({error:"intent_create_meta_pollution",where:y,match:E,message:`The ${y} contains workflow configuration phrasing (${E}). Studio, mode, and stage are engine-managed \u2014 the next haiku_run_next call will run the SPA picker to let the user choose them. The intent's title and description should describe the substance of what to build or accomplish, not the workflow shape. Re-ask the user what they want to BUILD (not how to configure the workflow), then call haiku_intent_create again with that as the description.`}))}let a=e.studio_candidates;if(!Array.isArray(a)||a.length===0)return ye(JSON.stringify({error:"studio_candidates_required",message:'haiku_intent_create requires `studio_candidates`: the 2\u20134 studios that best fit what you\'re building. You have the description in context now \u2014 this is the moment to narrow the picker so the user isn\'t scrolling the whole registry. To recover: call `haiku_studio_list` (it returns every studio with its name + description), pick the 2\u20134 closest matches, then call haiku_intent_create again with `studio_candidates: ["", \u2026]` using the canonical `name` from that list. The picker still shows the rest behind a "Show all studios\u2026" expansion, so narrowing is never lossy.'}));let c=[];for(let y of a){if(typeof y!="string")continue;let E=si(y);E&&!c.includes(E.name)&&c.push(E.name)}if(c.length===0)return ye(JSON.stringify({error:"studio_candidates_unresolved",received:a,message:"None of the `studio_candidates` you passed resolve to a real studio. Call `haiku_studio_list` to see the valid studios, then retry with the canonical `name`, slug, or a known alias for the 2\u20134 that best fit."}));r||(r=i.toLowerCase().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,50).replace(/-$/,"")),r=rr(r,"intent slug");let u=e.state_file,l=ve(),d=tm(l,"intents",r),f=`haiku/${r}/main`;if(Ae())try{let y=Xfe();Pt(f)||RI(r,y||void 0);let E="";try{E=s6("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}E!==f&&s6("git",["checkout",f],{encoding:"utf8",stdio:"pipe"})}catch(y){let E=y instanceof Error?y.message:String(y);return{content:[{type:"text",text:`Error: failed to switch to intent branch '${f}'. Stash or commit uncommitted changes, or remove the worktree holding '${f}' if it's checked out elsewhere, then retry. Raw git error: ${E}`}],isError:!0}}if(Str(tm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));wbe(tm(d,"knowledge"),{recursive:!0}),wbe(tm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${bS()}"`,"status: active",`created_at: ${_n()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` +`);if(kbe(tm(d,"intent.md"),m),De(tm(d,"intent.md"),"studio_candidates",c),kbe(tm(d,".gitattributes"),["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution.","action-log.jsonl merge=union","write-audit.jsonl merge=union",""].join(` +`)),Ae())try{let y=`.haiku/intents/${r}/.gitattributes`;s6("git",["add","--",y],{stdio:"pipe"}),s6("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",y],{stdio:"pipe"})}catch{}if(p){let y=tm(d,"knowledge");wbe(y,{recursive:!0}),kbe(tm(y,"CONVERSATION-CONTEXT.md"),`# Conversation Context ${p} -`)}Dt(`haiku: create intent ${r}`);let y="";if(Ae()&&wD()!==null)try{let g=Jh(d,"intent.md"),E=Hfe({slug:r,title:i?`H\xB7AI\xB7K\xB7U: ${i}`:`H\xB7AI\xB7K\xB7U: ${r}`,body:t?`${t} +`)}wt(`haiku: create intent ${r}`);let g="";if(Ae()&&DD()!==null)try{let y=tm(d,"intent.md"),E=ipe({slug:r,title:i?`H\xB7AI\xB7K\xB7U: ${i}`:`H\xB7AI\xB7K\xB7U: ${r}`,body:t?`${t} --- -Intent slug: \`${r}\`. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the work can be watched as stages land. The engine will mark it ready when the intent completes.`:void 0});E.createdUrl?(je(g,"draft_pr_url",E.createdUrl),je(g,"draft_pr_status","draft"),y=` +Intent slug: \`${r}\`. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the work can be watched as stages land. The engine will mark it ready when the intent completes.`:void 0});E.createdUrl?(De(y,"draft_pr_url",E.createdUrl),De(y,"draft_pr_status","draft"),g=` -Draft PR opened: ${E.createdUrl}`):E.compareUrl?(je(g,"draft_pr_status","failed"),y=` +Draft PR opened: ${E.createdUrl}`):E.compareUrl?(De(y,"draft_pr_status","failed"),g=` -The engine couldn't open the draft PR via the CLI (${E.prError??E.pushError??"unknown"}). Open one manually: ${E.compareUrl}`):(je(g,"draft_pr_status","failed"),y=` +The engine couldn't open the draft PR via the CLI (${E.prError??E.pushError??"unknown"}). Open one manually: ${E.compareUrl}`):(De(y,"draft_pr_status","failed"),g=` -The engine couldn't open a draft PR: ${E.message}`),Dt(`haiku: stamp draft PR status for ${r}`);try{let S=fg(f);!S.ok&&S.error&&console.error(`[haiku_intent_create] push of ${f} after draft-PR stamp failed: ${S.error}`)}catch(S){console.error(`[haiku_intent_create] push after stamp threw: ${S instanceof Error?S.message:String(S)}`)}}catch(g){console.error(`[haiku_intent_create] draft-PR open threw: ${g instanceof Error?g.message:String(g)}`)}return Qe("haiku.intent.created",{intent:r}),u&&ts(u,{event:"intent_created",intent:r}),be(JSON.stringify({action:"intent_created",slug:r,path:`.haiku/intents/${r}`,message:`Intent '${r}' created. Call haiku_run_next { intent: "${r}" } to begin.${y}`},null,2))}}});import{execFileSync as QEe}from"node:child_process";import{existsSync as qIt,readFileSync as BIt,rmSync as R$n}from"node:fs";import{join as $Ee}from"node:path";var GIt,zIt=v(()=>{"use strict";Tr();Gd();V_();ze();ns();Ls();GIt={name:"haiku_intent_reset",description:"Reset an intent \u2014 destructively delete all stage branches, the intent main branch, and the intent directory, then return instructions to recreate the intent with the same title/description/context. Requires user confirmation via the SPA picker.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to reset"}},required:["intent"]},async handle(e,t){let n=e.intent,r=we(),i=$Ee(r,"intents",n),s=$Ee(i,"intent.md");if(!qIt(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=BIt(s,"utf8"),{data:a,body:c}=re(o),u=a.title||"",l=c.replace(/^#\s+.*\n+/,"").trim()||u,d=await Gu({intentSlug:n,kind:"confirm",title:`Reset intent "${n}"?`,prompt:`This will DELETE all state (stages, units, knowledge) and recreate the intent with the same description: "${l}". This cannot be undone.`,options:[{id:"reset",label:"Yes, reset",description:"Wipe state and recreate the intent"},{id:"cancel",label:"Cancel",description:"Keep the intent as-is"}],signal:t});if(d.timedOut||!d.selection||d.selection.id!=="reset")return be(JSON.stringify({action:"cancelled",message:"Reset cancelled."}));let f="",p=$Ee(i,"knowledge","CONVERSATION-CONTEXT.md");qIt(p)&&(f=BIt(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Ae()){try{let g=ac(),E="";try{E=QEe("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(g&&E!==g)try{QEe("git",["checkout",g],{encoding:"utf8",stdio:"pipe"})}catch(S){try{QEe("git",["checkout",`${g}^0`],{encoding:"utf8",stdio:"pipe"})}catch(_){let b=S instanceof Error?S.message:String(S),T=_ instanceof Error?_.message:String(_);throw new Error(`could not move HEAD off the haiku branches: \`git checkout ${g}\` failed (${b.split(` -`)[0]}) AND detached fallback \`git checkout ${g}^0\` also failed (${T.split(` -`)[0]}). Commit / stash / clean any uncommitted changes here and retry.`)}}}catch(g){let E=g instanceof Error?g.message:String(g);return{content:[{type:"text",text:`Error: failed to move HEAD off the haiku branches before resetting intent '${n}'. ${E}`}],isError:!0}}if(ND(n),m){let g=So(m);for(let E of g){let S=`haiku/${n}/${E}`;Ft(S)&&f_(n,E)}}let y=`haiku/${n}/main`;Ft(y)&&PD(y)}return R$n(i,{recursive:!0,force:!0}),Dt(`haiku: reset intent ${n} (deleted)`),be(JSON.stringify({action:"intent_reset",slug:n,title:u,description:l,context:f,message:`Intent '${n}' has been reset. Call haiku_intent_create { title: "${u.replace(/"/g,'\\"')}", description: "${l.replace(/"/g,'\\"').replace(/\n/g,"\\n")}", slug: "${n}"${f?', context: ""':""}, studio_candidates: ["", \u2026] } to recreate it. \`studio_candidates\` is required \u2014 the 2\u20134 studios that best fit, from \`haiku_studio_list\`; if you omit it the recreate call is rejected with instructions to fetch the list and retry.`},null,2))}}});import{existsSync as w$n,readFileSync as k$n,writeFileSync as I$n}from"node:fs";import{join as x$n}from"node:path";var ebe,VIt,WIt=v(()=>{"use strict";ebe=_e(sn(),1);Tr();lx();es();vo();ze();ns();Ls();VIt={name:"haiku_intent_seal",description:"Stamp `verified_at` on intent.md frontmatter after the pre-intent substance verifier passes. Verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past the pre-intent `elaborate_review` gate. Idempotent (no-op when already verified).",inputSchema:m0,handle(e){let t=qe(e,fge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=ux({kind:"intent_elaborate",slug:n},r);if(!s.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_intent_seal",reason:s.reason,message:s.reason==="missing"?`No pending intent-elaboration verifier nonce for '${n}'. The cursor only mints a nonce when emitting the pre-intent elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Intent-elaboration verifier nonce for '${n}' does not match the cursor's pending value.`},null,2)}],isError:!0};let o=we(),a=x$n(o,"intents",n,"intent.md");if(!w$n(a))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_intent_seal",message:`Intent '${n}' not found at ${a}.`},null,2)}],isError:!0};let c=mr(n,void 0);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for intent seal '${n}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};let u=k$n(a,"utf8"),l=(0,ebe.default)(u),d=l.data;if(typeof d.verified_at=="string"&&d.verified_at)return be(JSON.stringify({action:"noop",slug:n,path:a,verified_at:d.verified_at,message:`Intent '${n}' is already verified.`},null,2));let f=new Date().toISOString(),p={...d,verified_at:f};return i.trim()&&(p.verified_notes=i.trim()),I$n(a,ebe.default.stringify(l.content,p)),Dt(`haiku: seal pre-intent elaboration for ${n}`),be(JSON.stringify({action:"intent_sealed",slug:n,path:a,verified_at:f,...i.trim()?{verified_notes:i.trim()}:{},message:`Sealed pre-intent elaboration for '${n}'. The cursor will walk into the first stage's elaborate gate on the next tick.`},null,2))}}});import{existsSync as O$n,readFileSync as N$n,writeFileSync as P$n}from"node:fs";import{join as C$n}from"node:path";var tbe,KIt,ZIt=v(()=>{"use strict";tbe=_e(sn(),1);Tr();ze();ns();Ls();KIt={name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]},handle(e){let t=e.intent,n=we(),r=C$n(n,"intents",t,"intent.md");if(!O$n(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=N$n(r,"utf8"),s=(0,tbe.default)(i);if(s.data.archived!==!0)return be(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is not archived.`},null,2));let o=mr(t,void 0);if(!o.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for intent unarchive '${t}' \u2014 ${o.message}. Resolve manually and retry.`}],isError:!0};let{archived:a,...c}=s.data;return P$n(r,tbe.default.stringify(s.content,c)),Dt(`haiku: unarchive intent ${t}`),be(JSON.stringify({action:"intent_unarchived",slug:t,path:r,message:`Intent '${t}' has been unarchived.`},null,2))}}});import{createHash as M$n}from"node:crypto";import{existsSync as YIt,readFileSync as JIt}from"node:fs";function D$n(e){let t=e.match(/^(.*\/\.haiku\/intents\/[^/]+)\/(.+)$/);if(!t)return null;let n=t[2],r=n.match(/^stages\/([^/]+)\//);return{intentDir:t[1],pathRel:n,stageOwner:r?r[1]:null}}function L$n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function U$n(e){let t=C_e(e);if(!YIt(t))return 1;try{return JIt(t,"utf8").split(` -`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function B6(e){let t=D$n(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!L$n(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!YIt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=M$n("sha256").update(JIt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?x_(t.intentDir,t.stageOwner):x_(t.intentDir),i=U$n(t.intentDir),s=String(i).padStart(2,"0"),o=`AGW-${r}-${s}`,a=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),c=t.stageOwner?"stage":"intent",u=$T(t.pathRel);return await kv(t.intentDir,r,{entry_type:"agent_write",path:u,sha:n,author_class:"agent",timestamp:a,claimed_author_id:null,human_author_id:null,entry_id:o,tick_counter:r,tick_scope:c}),{stamped:!0,pathRel:u,sha:n,tickCounter:r,tickScope:c}}var nbe=v(()=>{"use strict";J5();_0()});import{realpathSync as XIt}from"node:fs";import{isAbsolute as j$n,join as QIt}from"node:path";function rbe(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var $It,e0t=v(()=>{"use strict";nbe();ze();ns();$It={name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: `stages//{artifacts,outputs,knowledge,discovery}/...` and intent-root `knowledge/...`. Workflow-managed paths (`units/`, `feedback/`, `state.json`, `intent.md`) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. `stages/design/artifacts/spec.md`) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]},async handle(e){let t=e.intent_slug,n=e.path;if(typeof t!="string"||t.trim()==="")return rbe("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return rbe("missing_path","`path` is required and must be a non-empty string.");let r=Bg({intent:t});if(r)return r;let i=we(),s=QIt(i,"intents",t),o=j$n(n)?n:QIt(s,n),a=(()=>{try{return XIt(s)}catch{return s}})(),c=(()=>{try{return XIt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return rbe("path_outside_intent",`Absolute path '${n}' resolves outside the intent dir for slug '${t}'. Either pass an intent-relative path or an absolute path inside ${a}/.`);let u=await B6(o);if(!u.stamped){let l={not_in_intent_dir:`Path is not inside an intent directory (resolved: ${o}). Only writes inside .haiku/intents// get tracked.`,not_in_tracked_surface:`Path is inside the intent dir but not in the drift-tracked surface (resolved: ${o}). Tracked locations are stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/...`,file_missing:`File does not exist on disk (resolved: ${o}). Did the write succeed?`,read_failed:`Could not read file to compute SHA (resolved: ${o}).`};return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!1,reason:u.reason,message:l[u.reason??""]??"Stamp skipped for unknown reason."},null,2)}]}}return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!0,path:u.pathRel,sha:u.sha,tick_counter:u.tickCounter,tick_scope:u.tickScope,next_step:"The next `haiku_run_next` tick will see the agent_write entry and silently update the baseline \u2014 no manual_change_assessment finding for this path."},null,2)}]}}}});var t0t,n0t,r0t=v(()=>{"use strict";uv();es();vo();Ko();ns();Ls();t0t="Your work here is done \u2014 terminate with your one-line findings summary. Do NOT call haiku_run_next; your parent ticks the workflow when the whole review wave closes.",n0t={name:"haiku_review_stamp",description:"Review/approval subagent CLOSURE. Records your own `reviews.` / `approvals.` witness and returns a terminal ack \u2014 call this INSTEAD of `haiku_run_next` when you finish reviewing. `kind: review|approval` both require `stage`. Returns `{ ok: true, stamped: [...], skipped: [...] }` (skipped = units you flagged with an open finding; they stay un-stamped so the cursor reroutes through them on close), or `{ ok: true, found: false }` when nothing was pending for your role (already stamped \u2014 clean no-op). Never walks the cursor and never returns a fix dispatch, so it can't trip the inter-tick loop guard. NOTE: intent-completion review agents (`intent_review` actions) do NOT call this tool \u2014 they terminate directly; the parent drain handles their stamp.",inputSchema:c0,async handle(e){let t=qe(e,rge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=cye(n,r,s,i);return Qe("haiku.review.stamped",{intent:n,kind:r,role:i,stage:s,found:String(o.found),stamped_count:String(o.stamped.length),skipped_count:String(o.skipped.length)}),be(JSON.stringify({ok:!0,intent:n,kind:r,role:i,stage:s,found:o.found,stamped:o.stamped,skipped:o.skipped,message:o.found?`Recorded ${r} witness for '${i}' on stage '${s}': ${o.stamped.length} unit(s) stamped${o.skipped.length>0?`, ${o.skipped.length} skipped (you filed open findings against them \u2014 they re-review after close)`:""}. ${t0t}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${t0t}`}))}}});import{appendFileSync as F$n}from"node:fs";function G6(e){return Date.now()-e>i0t}function z6(e,t,n,r){let i=Date.now()-n;return Xh(`${e} (wall-deadline ${i0t}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function gx(e){let t=e;return JSON.stringify({action:t.action??null,stage:t.stage??null,unit:t.unit??null,feedback_id:t.feedback_id??null,role:t.role??null})}function H$n(e){let t=`[${new Date().toISOString()}] ${e} -`;try{let n=Vdt("loop-guards.log");return F$n(n,t),n}catch{return null}}function Xh(e,t,n,r){let i=n,s=`loop=${e} reason=${r} iterations=${t} action=${String(i.action??"?")}`+(i.stage?` stage=${String(i.stage)}`:"")+(i.unit?` unit=${String(i.unit)}`:"")+(i.feedback_id?` fb=${String(i.feedback_id)}`:"");console.error(`[haiku_run_next] loop guard fired: ${s}`);let o=H$n(`loop guard fired: ${s}`),a=o?` +The engine couldn't open a draft PR: ${E.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=gg(f);!S.ok&&S.error&&console.error(`[haiku_intent_create] push of ${f} after draft-PR stamp failed: ${S.error}`)}catch(S){console.error(`[haiku_intent_create] push after stamp threw: ${S instanceof Error?S.message:String(S)}`)}}catch(y){console.error(`[haiku_intent_create] draft-PR open threw: ${y instanceof Error?y.message:String(y)}`)}return Ke("haiku.intent.created",{intent:r}),u&&qi(u,{event:"intent_created",intent:r}),ye(JSON.stringify({action:"intent_created",slug:r,path:`.haiku/intents/${r}`,message:`Intent '${r}' created. Call haiku_run_next { intent: "${r}" } to begin.${g}`},null,2))}}});import{execFileSync as Ibe}from"node:child_process";import{existsSync as H0t,readFileSync as q0t,rmSync as Etr}from"node:fs";import{join as xbe}from"node:path";var B0t,G0t=v(()=>{"use strict";yr();Vd();JE();ze();Gi();vs();B0t={name:"haiku_intent_reset",description:"Reset an intent \u2014 destructively delete all stage branches, the intent main branch, and the intent directory, then return instructions to recreate the intent with the same title/description/context. Requires user confirmation via the SPA picker.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to reset"}},required:["intent"]},async handle(e,t){let n=e.intent,r=ve(),i=xbe(r,"intents",n),s=xbe(i,"intent.md");if(!H0t(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=q0t(s,"utf8"),{data:a,body:c}=re(o),u=a.title||"",l=c.replace(/^#\s+.*\n+/,"").trim()||u,d=await Zu({intentSlug:n,kind:"confirm",title:`Reset intent "${n}"?`,prompt:`This will DELETE all state (stages, units, knowledge) and recreate the intent with the same description: "${l}". This cannot be undone.`,options:[{id:"reset",label:"Yes, reset",description:"Wipe state and recreate the intent"},{id:"cancel",label:"Cancel",description:"Keep the intent as-is"}],signal:t});if(d.timedOut||!d.selection||d.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:"Reset cancelled."}));let f="",p=xbe(i,"knowledge","CONVERSATION-CONTEXT.md");H0t(p)&&(f=q0t(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(Ae()){try{let y=Zo(),E="";try{E=Ibe("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(y&&E!==y)try{Ibe("git",["checkout",y],{encoding:"utf8",stdio:"pipe"})}catch(S){try{Ibe("git",["checkout",`${y}^0`],{encoding:"utf8",stdio:"pipe"})}catch(_){let b=S instanceof Error?S.message:String(S),T=_ instanceof Error?_.message:String(_);throw new Error(`could not move HEAD off the haiku branches: \`git checkout ${y}\` failed (${b.split(` +`)[0]}) AND detached fallback \`git checkout ${y}^0\` also failed (${T.split(` +`)[0]}). Commit / stash / clean any uncommitted changes here and retry.`)}}}catch(y){let E=y instanceof Error?y.message:String(y);return{content:[{type:"text",text:`Error: failed to move HEAD off the haiku branches before resetting intent '${n}'. ${E}`}],isError:!0}}if(HD(n),m){let y=Fs(m);for(let E of y){let S=`haiku/${n}/${E}`;Pt(S)&&yE(n,E)}}let g=`haiku/${n}/main`;Pt(g)&&qD(g)}return Etr(i,{recursive:!0,force:!0}),wt(`haiku: reset intent ${n} (deleted)`),ye(JSON.stringify({action:"intent_reset",slug:n,title:u,description:l,context:f,message:`Intent '${n}' has been reset. Call haiku_intent_create { title: "${u.replace(/"/g,'\\"')}", description: "${l.replace(/"/g,'\\"').replace(/\n/g,"\\n")}", slug: "${n}"${f?', context: ""':""}, studio_candidates: ["", \u2026] } to recreate it. \`studio_candidates\` is required \u2014 the 2\u20134 studios that best fit, from \`haiku_studio_list\`; if you omit it the recreate call is rejected with instructions to fetch the list and retry.`},null,2))}}});import{existsSync as _tr,readFileSync as btr,writeFileSync as Ttr}from"node:fs";import{join as vtr}from"node:path";var Obe,z0t,V0t=v(()=>{"use strict";Obe=Se(Kt(),1);yr();Sx();ji();uo();ze();Gi();vs();z0t={name:"haiku_intent_seal",description:"Stamp `verified_at` on intent.md frontmatter after the pre-intent substance verifier passes. Verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past the pre-intent `elaborate_review` gate. Idempotent (no-op when already verified).",inputSchema:_0,handle(e){let t=Be(e,Pge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=yx({kind:"intent_elaborate",slug:n},r);if(!s.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_intent_seal",reason:s.reason,message:s.reason==="missing"?`No pending intent-elaboration verifier nonce for '${n}'. The cursor only mints a nonce when emitting the pre-intent elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Intent-elaboration verifier nonce for '${n}' does not match the cursor's pending value.`},null,2)}],isError:!0};let o=ve(),a=vtr(o,"intents",n,"intent.md");if(!_tr(a))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_intent_seal",message:`Intent '${n}' not found at ${a}.`},null,2)}],isError:!0};let c=gr(n,void 0);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for intent seal '${n}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};let u=btr(a,"utf8"),l=(0,Obe.default)(u),d=l.data;if(typeof d.verified_at=="string"&&d.verified_at)return ye(JSON.stringify({action:"noop",slug:n,path:a,verified_at:d.verified_at,message:`Intent '${n}' is already verified.`},null,2));let f=new Date().toISOString(),p={...d,verified_at:f};return i.trim()&&(p.verified_notes=i.trim()),Ttr(a,Obe.default.stringify(l.content,p)),wt(`haiku: seal pre-intent elaboration for ${n}`),ye(JSON.stringify({action:"intent_sealed",slug:n,path:a,verified_at:f,...i.trim()?{verified_notes:i.trim()}:{},message:`Sealed pre-intent elaboration for '${n}'. The cursor will walk into the first stage's elaborate gate on the next tick.`},null,2))}}});import{existsSync as Atr,readFileSync as Rtr,writeFileSync as wtr}from"node:fs";import{join as ktr}from"node:path";var Pbe,W0t,K0t=v(()=>{"use strict";Pbe=Se(Kt(),1);yr();ze();Gi();vs();W0t={name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]},handle(e){let t=e.intent,n=ve(),r=ktr(n,"intents",t,"intent.md");if(!Atr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=Rtr(r,"utf8"),s=(0,Pbe.default)(i);if(s.data.archived!==!0)return ye(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is not archived.`},null,2));let o=gr(t,void 0);if(!o.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for intent unarchive '${t}' \u2014 ${o.message}. Resolve manually and retry.`}],isError:!0};let{archived:a,...c}=s.data;return wtr(r,Pbe.default.stringify(s.content,c)),wt(`haiku: unarchive intent ${t}`),ye(JSON.stringify({action:"intent_unarchived",slug:t,path:r,message:`Intent '${t}' has been unarchived.`},null,2))}}});import{createHash as Itr}from"node:crypto";import{existsSync as Y0t,readFileSync as Z0t}from"node:fs";function xtr(e){let t=e.match(/^(.*\/\.haiku\/intents\/[^/]+)\/(.+)$/);if(!t)return null;let n=t[2],r=n.match(/^stages\/([^/]+)\//);return{intentDir:t[1],pathRel:n,stageOwner:r?r[1]:null}}function Otr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function Ptr(e){let t=r_e(e);if(!Y0t(t))return 1;try{return Z0t(t,"utf8").split(` +`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function o6(e){let t=xtr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!Otr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!Y0t(e))return{stamped:!1,reason:"file_missing"};let n;try{n=Itr("sha256").update(Z0t(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?DE(t.intentDir,t.stageOwner):DE(t.intentDir),i=Ptr(t.intentDir),s=String(i).padStart(2,"0"),o=`AGW-${r}-${s}`,a=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),c=t.stageOwner?"stage":"intent",u=nv(t.pathRel);return await Nv(t.intentDir,r,{entry_type:"agent_write",path:u,sha:n,author_class:"agent",timestamp:a,claimed_author_id:null,human_author_id:null,entry_id:o,tick_counter:r,tick_scope:c}),{stamped:!0,pathRel:u,sha:n,tickCounter:r,tickScope:c}}var Nbe=v(()=>{"use strict";uZ();A0()});import{realpathSync as J0t}from"node:fs";import{isAbsolute as Ntr,join as X0t}from"node:path";function Cbe(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var Q0t,$0t=v(()=>{"use strict";Nbe();ze();Gi();Q0t={name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: `stages//{artifacts,outputs,knowledge,discovery}/...` and intent-root `knowledge/...`. Workflow-managed paths (`units/`, `feedback/`, `state.json`, `intent.md`) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. `stages/design/artifacts/spec.md`) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]},async handle(e){let t=e.intent_slug,n=e.path;if(typeof t!="string"||t.trim()==="")return Cbe("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return Cbe("missing_path","`path` is required and must be a non-empty string.");let r=Vg({intent:t});if(r)return r;let i=ve(),s=X0t(i,"intents",t),o=Ntr(n)?n:X0t(s,n),a=(()=>{try{return J0t(s)}catch{return s}})(),c=(()=>{try{return J0t(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return Cbe("path_outside_intent",`Absolute path '${n}' resolves outside the intent dir for slug '${t}'. Either pass an intent-relative path or an absolute path inside ${a}/.`);let u=await o6(o);if(!u.stamped){let l={not_in_intent_dir:`Path is not inside an intent directory (resolved: ${o}). Only writes inside .haiku/intents// get tracked.`,not_in_tracked_surface:`Path is inside the intent dir but not in the drift-tracked surface (resolved: ${o}). Tracked locations are stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/...`,file_missing:`File does not exist on disk (resolved: ${o}). Did the write succeed?`,read_failed:`Could not read file to compute SHA (resolved: ${o}).`};return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!1,reason:u.reason,message:l[u.reason??""]??"Stamp skipped for unknown reason."},null,2)}]}}return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!0,path:u.pathRel,sha:u.sha,tick_counter:u.tickCounter,tick_scope:u.tickScope,next_step:"The next `haiku_run_next` tick will see the agent_write entry and silently update the baseline \u2014 no manual_change_assessment finding for this path."},null,2)}]}}}});var ext,txt,nxt=v(()=>{"use strict";pv();ji();uo();vo();Gi();vs();ext="Your work here is done \u2014 terminate with your one-line findings summary. Do NOT call haiku_run_next; your parent ticks the workflow when the whole review wave closes.",txt={name:"haiku_review_stamp",description:"Review/approval subagent CLOSURE. Records your own `reviews.` / `approvals.` witness and returns a terminal ack \u2014 call this INSTEAD of `haiku_run_next` when you finish reviewing. `kind: review|approval` both require `stage`. Returns `{ ok: true, stamped: [...], skipped: [...] }` (skipped = units you flagged with an open finding; they stay un-stamped so the cursor reroutes through them on close), or `{ ok: true, found: false }` when nothing was pending for your role (already stamped \u2014 clean no-op). Never walks the cursor and never returns a fix dispatch, so it can't trip the inter-tick loop guard. NOTE: intent-completion review agents (`intent_review` actions) do NOT call this tool \u2014 they terminate directly; the parent drain handles their stamp.",inputSchema:f0,async handle(e){let t=Be(e,bge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=kye(n,r,s,i);return Ke("haiku.review.stamped",{intent:n,kind:r,role:i,stage:s,found:String(o.found),stamped_count:String(o.stamped.length),skipped_count:String(o.skipped.length)}),ye(JSON.stringify({ok:!0,intent:n,kind:r,role:i,stage:s,found:o.found,stamped:o.stamped,skipped:o.skipped,message:o.found?`Recorded ${r} witness for '${i}' on stage '${s}': ${o.stamped.length} unit(s) stamped${o.skipped.length>0?`, ${o.skipped.length} skipped (you filed open findings against them \u2014 they re-review after close)`:""}. ${ext}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${ext}`}))}}});import{appendFileSync as Ctr}from"node:fs";function a6(e){return Date.now()-e>rxt}function c6(e,t,n,r){let i=Date.now()-n;return nm(`${e} (wall-deadline ${rxt}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function vx(e){let t=e;return JSON.stringify({action:t.action??null,stage:t.stage??null,unit:t.unit??null,feedback_id:t.feedback_id??null,role:t.role??null})}function Mtr(e){let t=`[${new Date().toISOString()}] ${e} +`;try{let n=bft("loop-guards.log");return Ctr(n,t),n}catch{return null}}function nm(e,t,n,r){let i=n,s=`loop=${e} reason=${r} iterations=${t} action=${String(i.action??"?")}`+(i.stage?` stage=${String(i.stage)}`:"")+(i.unit?` unit=${String(i.unit)}`:"")+(i.feedback_id?` fb=${String(i.feedback_id)}`:"");console.error(`[haiku_run_next] loop guard fired: ${s}`);let o=Mtr(`loop guard fired: ${s}`),a=o?` log: ${o} (this session's full loop-guard history)`:` log: (write failed \u2014 diagnostic above and on MCP stderr only)`;return{content:[{type:"text",text:`The engine couldn't make progress on this tick (internal loop). Re-run \`haiku_run_next\` to retry. If the same call keeps failing, file an issue with the diagnostic line below and the contents of the per-session log file (same dir as the subagent prompts). -diagnostic: ${s}${a}`}],isError:!0}}var Z1,i0t,s0t=v(()=>{"use strict";Sl();Z1=16,i0t=9e4});var a0t={};Rr(a0t,{invalidateDownstreamApprovals:()=>z$n});import{existsSync as q$n,readdirSync as B$n,readFileSync as G$n}from"node:fs";import{join as o0t}from"node:path";function z$n(e){let t=or(e.intentFm,e.studio),n=t.indexOf(e.completedStage);if(n<0)return{stages_cleared:[],units_cleared:0};let r=t.slice(n+1);if(r.length===0)return{stages_cleared:[],units_cleared:0};let i=[],s=0;for(let o of r){let a=o0t(e.intentDir,"stages",o,"units");if(!q$n(a))continue;let c=B$n(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=o0t(a,l);try{let f=G$n(d,"utf8"),p=re(f).data,h=p.reviews&&typeof p.reviews=="object"&&Object.keys(p.reviews).length>0,m=p.approvals&&typeof p.approvals=="object"&&Object.keys(p.approvals).length>0;if(!h&&!m)continue;let y=[];h&&y.push("reviews"),m&&y.push("approvals"),qh(d,y),s++,u=!0}catch(f){console.error(`[invalidate-downstream] skipping ${d}: ${f instanceof Error?f.message:String(f)}`)}}u&&i.push(o)}return{stages_cleared:i,units_cleared:s}}var c0t=v(()=>{"use strict";ze();_o()});var VOt={};Rr(VOt,{AbortError:()=>Y_,EXIT_REASONS:()=>hrr,HOOK_EVENTS:()=>prr,createSdkMcpServer:()=>Olr,query:()=>Nlr,tool:()=>xlr,unstable_v2_createSession:()=>Plr,unstable_v2_prompt:()=>Mlr,unstable_v2_resumeSession:()=>Clr});import{join as l0t}from"path";import{fileURLToPath as Jer}from"url";import{setMaxListeners as Xer}from"events";import{spawn as $er}from"child_process";import{createInterface as etr}from"readline";import*as Zt from"fs";import{stat as ttr}from"fs/promises";import{join as Wnr}from"path";import{homedir as Knr}from"os";import{dirname as hbe,join as hxt}from"path";import{cwd as Znr}from"process";import{realpathSync as Ynr}from"fs";import{randomUUID as Jnr}from"crypto";import{randomUUID as mrr}from"crypto";import{appendFileSync as grr,existsSync as yrr,mkdirSync as Srr}from"fs";import{join as y0t}from"path";import{randomUUID as Trr}from"crypto";import{join as _0t}from"path";import{fileURLToPath as vrr}from"url";function Zbe(e=Qer){let t=new AbortController;return Xer(e,t.signal),t}function ltr(e){var t=ctr.call(e,Y1),n=e[Y1];try{e[Y1]=void 0;var r=!0}catch{}var i=utr.call(e);return r&&(t?e[Y1]=n:delete e[Y1]),i}function htr(e){return ptr.call(e)}function Str(e){return e==null?e===void 0?ytr:gtr:d0t&&d0t in Object(e)?dtr(e):mtr(e)}function Etr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Rtr(e){if(!lxt(e))return!1;var t=_tr(e);return t==Ttr||t==vtr||t==btr||t==Atr}function Itr(e){return!!f0t&&f0t in e}function Ptr(e){if(e!=null){try{return Ntr.call(e)}catch{}try{return e+""}catch{}}return""}function qtr(e){if(!lxt(e)||xtr(e))return!1;var t=wtr(e)?Htr:Dtr;return t.test(Ctr(e))}function Gtr(e,t){return e?.[t]}function Vtr(e,t){var n=ztr(e,t);return Btr(n)?n:void 0}function Ktr(){this.__data__=rU?rU(null):{},this.size=0}function Ytr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function enr(e){var t=this.__data__;if(rU){var n=t[e];return n===Xtr?void 0:n}return $tr.call(t,e)?t[e]:void 0}function inr(e){var t=this.__data__;return rU?t[e]!==void 0:rnr.call(t,e)}function anr(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=rU&&t===void 0?onr:t,this}function Mx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function Tnr(e,t){var n=this.__data__,r=_Y(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Dx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tt.exclude.includes(n)):e.some(n=>t.include.includes(n)):!0}function Vnr(e,t){if(!t)return!0;let n=Gnr(e);return znr(n,t)}function pxt(){return process.env.CLAUDE_CONFIG_DIR??Wnr(Knr(),".claude")}function m0t(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function mxt(e){return{name:e,default:V6,validate:t=>{if(!t)return{effective:V6,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:V6,status:"invalid",message:`Invalid value "${t}" (using default: ${V6})`}:n>sbe?{effective:sbe,status:"capped",message:`Capped from ${n} to ${sbe}`}:{effective:n,status:"valid"}}}}function $nr(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=Ynr(Znr())),{originalCwd:e,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:e,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:Jnr(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[Xnr,Qnr],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0}}function trr(){return err.sessionId}function nrr({writeFn:e,flushIntervalMs:t=1e3,maxBufferSize:n=100,immediateMode:r=!1}){let i=[],s=null;function o(){s&&(clearTimeout(s),s=null)}function a(){i.length!==0&&(e(i.join("")),i=[],o())}function c(){s||(s=setTimeout(a,t))}return{write(u){if(r){e(u);return}i.push(u),c(),i.length>=n&&a()},flush:a,dispose(){a()}}}function rrr(e){return g0t.add(e),()=>g0t.delete(e)}function irr(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array[${e.length}]`:typeof e=="object"?`Object{${Object.keys(e).length} keys}`:typeof e=="string"?`string(${e.length} chars)`:typeof e}function yxt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>gxt&&(Vg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function Qh(e,t,n){let r=irr(e);return yxt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function arr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=orr();return Vnr(e,t)}function urr(){return W6||(W6=nrr({writeFn:e=>{let t=Ext();Kg().existsSync(hbe(t))||Kg().mkdirSync(hbe(t)),Kg().appendFileSync(t,e),lrr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:srr()}),rrr(async()=>W6?.dispose())),W6}function Vg(e,{level:t}={level:"debug"}){if(!arr(e))return;crr&&e.includes(` -`)&&(e=Qh(e));let r=`${new Date().toISOString()} [${t.toUpperCase()}] ${e.trim()} -`;if(_xt()){qnr(r);return}urr().write(r)}function Ext(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??hxt(pxt(),"debug",`${trr()}.txt`)}function oo(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>gxt&&(Vg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Kg(){return frr}function Xbe(){return process.versions.bun!==void 0}function _rr(){if(S0t)return K6;if(S0t=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=y0t(pxt(),"debug");return K6=y0t(e,`sdk-${mrr()}.txt`),yrr(e)||Srr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${K6} -`),K6}function Fv(e){let t=_rr();if(!t)return;let r=`${new Date().toISOString()} ${e} -`;grr(t,r)}function Err(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...Sxt(n.settings),sandbox:t}}catch{}n.settings=Qh(r)}return n}function brr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function bxt(e){return new rY(e)}function Arr(e,t){return new rY({...t,resume:e})}function gbe(){return wrr}function Ke(e,t){let n=gbe(),r=ybe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===iU?void 0:iU].filter(i=>!!i)});e.common.issues.push(r)}function ln(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function vxt(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Grr(e){return new RegExp(`^${vxt(e)}$`)}function zrr(e){let t=`${Txt}T${vxt(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Vrr(e,t){return!!((t==="v4"||!t)&&Lrr.test(e)||(t==="v6"||!t)&&jrr.test(e))}function Wrr(e,t){if(!Prr.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Krr(e,t){return!!((t==="v4"||!t)&&Urr.test(e)||(t==="v6"||!t)&&Frr.test(e))}function Zrr(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function yx(e){if(e instanceof Cl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=up.create(yx(r))}return new Cl({...e._def,shape:()=>t})}else return e instanceof Q_?new Q_({...e._def,type:yx(e.element)}):e instanceof up?up.create(yx(e.unwrap())):e instanceof Yg?Yg.create(yx(e.unwrap())):e instanceof Zg?Zg.create(e.items.map(t=>yx(t))):e}function _be(e,t){let n=Z_(e),r=Z_(t);if(e===t)return{valid:!0,data:e};if(n===nt.object&&r===nt.object){let i=rr.objectKeys(t),s=rr.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=_be(e[a],t[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===nt.array&&r===nt.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let s=0;sn?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function Jg(e){return e&&Object.assign(Tbe,e),Tbe}function Jrr(e){return e}function Xrr(e){return e}function Qrr(e){}function $rr(e){throw new Error}function eir(e){}function Qbe(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function vbe(e,t="|"){return e.map(n=>tTe(n)).join(t)}function Rxt(e,t){return typeof t=="bigint"?t.toString():t}function bY(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function TY(e){return e==null}function vY(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function wxt(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function Ai(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function $be(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function tir(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function nir(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function air(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function tTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function xxt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function uir(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return Qg(e,{...e._zod.def,shape:n,checks:[]})}function lir(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return Qg(e,{...e._zod.def,shape:n,checks:[]})}function dir(e,t){if(!gU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return $be(this,"shape",r),r},checks:[]};return Qg(e,n)}function fir(e,t){return Qg(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return $be(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function pir(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return Qg(t,{...t._zod.def,shape:i,checks:[]})}function hir(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return Qg(t,{...t._zod.def,shape:i,checks:[]})}function _x(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function $1(e){return typeof e=="string"?e:e?.message}function Xg(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=$1(e.inst?._zod.def?.error?.(e))??$1(t?.error?.(e))??$1(n.customError?.(e))??$1(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function mir(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function AY(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Nxt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function gir(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function yir(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Sir(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cr==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return zxt(n)}function Nsr(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function R0t(e,t,n){e.issues.length&&t.issues.push(...J_(n,e.issues)),t.value[n]=e.value}function Z6(e,t,n){e.issues.length&&t.issues.push(...J_(n,e.issues)),t.value[n]=e.value}function w0t(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...J_(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function k0t(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>Xg(s,r,Jg())))}),t}function wbe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(gU(e)&&gU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=wbe(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;rt.normalize(e))}function zor(){return SU(e=>e.trim())}function Vor(){return SU(e=>e.toLowerCase())}function Wor(){return SU(e=>e.toUpperCase())}function Kor(e,t,n){return new e({type:"array",element:t,...qt(n)})}function Zor(e,t,n){let r=qt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function Yor(e,t,n){return new e({type:"custom",check:"custom",fn:t,...qt(n)})}function Jor(e,t){if(e instanceof aY){let r=new uY(t),i={};for(let a of e._idmap.entries()){let[c,u]=a;r.process(u)}let s={},o={registry:e,uri:t?.uri||(a=>a),defs:i};for(let a of e._idmap.entries()){let[c,u]=a;s[c]=r.emit(u,{...t,external:o})}if(Object.keys(i).length>0){let a=r.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[a]:i}}return{schemas:s}}let n=new uY(t);return n.process(e),n.emit(e,t)}function Ro(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let i=e._zod.def;switch(i.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return Ro(i.element,n);case"object":{for(let s in i.shape)if(Ro(i.shape[s],n))return!0;return!1}case"union":{for(let s of i.options)if(Ro(s,n))return!0;return!1}case"intersection":return Ro(i.left,n)||Ro(i.right,n);case"tuple":{for(let s of i.items)if(Ro(s,n))return!0;return!!(i.rest&&Ro(i.rest,n))}case"record":return Ro(i.keyType,n)||Ro(i.valueType,n);case"map":return Ro(i.keyType,n)||Ro(i.valueType,n);case"set":return Ro(i.valueType,n);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return Ro(i.innerType,n);case"lazy":return Ro(i.getter(),n);case"default":return Ro(i.innerType,n);case"prefault":return Ro(i.innerType,n);case"custom":return!1;case"transform":return!0;case"pipe":return Ro(i.in,n)||Ro(i.out,n);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${i.type}`)}function j0t(e,t){let n={type:"object",get shape(){return Br.assignProp(this,"shape",{...e}),this.shape},...Br.normalizeParams(t)};return new Qor(n)}function dp(e){return!!e._zod}function tU(e){let t=Object.values(e);if(t.length===0)return j0t({});let n=t.every(dp),r=t.every(i=>!dp(i));if(n)return j0t(e);if(r)return Yrr(e);throw new Error("Mixed Zod versions detected in object shape.")}function nU(e,t){return dp(e)?nTe(e,t):e.safeParse(t)}async function ube(e,t){return dp(e)?await rTe(e,t):await e.safeParseAsync(t)}function _U(e){var t,n;if(!e)return;let r;if(dp(e)?r=(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.shape:r=e.shape,!!r){if(typeof r=="function")try{return r()}catch{return}return r}}function J1(e){var t;if(e){if(typeof e=="object"){let n=e,r=e;if(!n._def&&!r._zod){let i=Object.values(e);if(i.length>0&&i.every(s=>typeof s=="object"&&s!==null&&(s._def!==void 0||s._zod!==void 0||typeof s.parse=="function")))return tU(e)}}if(dp(e)){let r=(t=e._zod)===null||t===void 0?void 0:t.def;if(r&&(r.type==="object"||r.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function lbe(e){if(e&&typeof e=="object"){if("message"in e&&typeof e.message=="string")return e.message;if("issues"in e&&Array.isArray(e.issues)&&e.issues.length>0){let t=e.issues[0];if(t&&typeof t=="object"&&"message"in t)return String(t.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function $or(e){var t,n,r,i;if(dp(e))return(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.description;let s=e;return(r=e.description)!==null&&r!==void 0?r:(i=s._def)===null||i===void 0?void 0:i.description}function ear(e){var t,n,r;if(dp(e))return((n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.type)==="optional";let i=e;return typeof e.isOptional=="function"?e.isOptional():((r=i._def)===null||r===void 0?void 0:r.typeName)==="ZodOptional"}function Jxt(e){var t;if(dp(e)){let o=(t=e._zod)===null||t===void 0?void 0:t.def;if(o){if(o.value!==void 0)return o.value;if(Array.isArray(o.values)&&o.values.length>0)return o.values[0]}}let r=e._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let i=e.value;if(i!==void 0)return i}function $xt(e){return kor(Qxt,e)}function tOt(e){return Ior(eOt,e)}function rOt(e){return xor(nOt,e)}function sOt(e){return Oor(iOt,e)}function pe(e){return ior(sar,e)}function oi(e){return Nor(cOt,e)}function H0t(e){return Por(Aar,e)}function Ec(e){return Cor(Rar,e)}function uOt(e){return Mor(war,e)}function wo(){return Dor(kar)}function xar(e){return Lor(Iar,e)}function $n(e,t){return Kor(Oar,e,t)}function Ge(e,t){let n={type:"object",get shape(){return Br.assignProp(this,"shape",{...e}),this.shape},...Br.normalizeParams(t)};return new lOt(n)}function fp(e,t){return new lOt({type:"object",get shape(){return Br.assignProp(this,"shape",{...e}),this.shape},catchall:wo(),...Br.normalizeParams(t)})}function qi(e,t){return new dOt({type:"union",options:e,...Br.normalizeParams(t)})}function fOt(e,t,n){return new Nar({type:"union",options:t,discriminator:e,...Br.normalizeParams(n)})}function sTe(e,t){return new Par({type:"intersection",left:e,right:t})}function ko(e,t,n){return new Car({type:"record",keyType:e,valueType:t,...Br.normalizeParams(n)})}function bc(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new kbe({type:"enum",entries:n,...Br.normalizeParams(t)})}function yt(e,t){return new Mar({type:"literal",values:Array.isArray(e)?e:[e],...Br.normalizeParams(t)})}function pOt(e){return new Dar({type:"transform",transform:e})}function gt(e){return new hOt({type:"optional",innerType:e})}function q0t(e){return new Lar({type:"nullable",innerType:e})}function jar(e,t){return new Uar({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Har(e,t){return new Far({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function qar(e,t){return new mOt({type:"nonoptional",innerType:e,...Br.normalizeParams(t)})}function Gar(e,t){return new Bar({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Ibe(e,t){return new zar({type:"pipe",in:e,out:t})}function War(e){return new Var({type:"readonly",innerType:e})}function Kar(e,t){let n=new Wu({check:"custom",...Br.normalizeParams(t)});return n._zod.check=e,n}function Zar(e,t){return Zor(gOt,e??(()=>!0),t)}function Yar(e,t={}){return Yor(gOt,e,t)}function Jar(e,t){let n=Kar(r=>(r.addIssue=i=>{if(typeof i=="string")r.issues.push(Br.issue(i,r.value,n._zod.def));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=n),s.continue??(s.continue=!n._zod.def.abort),r.issues.push(Br.issue(s))}},e(r.value,r)),t);return n}function yOt(e,t){return Ibe(pOt(e),t)}function vur(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function Aur(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function Hv(e){return e==="completed"||e==="failed"||e==="cancelled"}function UOt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,UOt(e,t,r,i)}function Vu(e){if(e.target!=="openAi")return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?jOt(t,e.currentPath):t.join("/")}}function Pur(e,t){let n={type:"array"};return e.type?._def&&e.type?._def?.typeName!==De.ZodAny&&(n.items=Sr(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&Cr(n,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&Cr(n,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(Cr(n,"minItems",e.exactLength.value,e.exactLength.message,t),Cr(n,"maxItems",e.exactLength.value,e.exactLength.message,t)),n}function Cur(e,t){let n={type:"integer",format:"int64"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function Mur(){return{type:"boolean"}}function FOt(e,t){return Sr(e.type._def,t)}function HOt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>HOt(e,t,i))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return Lur(e,t)}}function Uur(e,t){return{...Sr(e.innerType._def,t),default:e.defaultValue()}}function jur(e,t){return t.effectStrategy==="input"?Sr(e.schema._def,t):Vu(t)}function Fur(e){return{type:"string",enum:Array.from(e.values)}}function qur(e,t){let n=[Sr(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),Sr(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(s=>!!s),r=t.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(s=>{if(Hur(s))i.push(...s.allOf),s.unevaluatedProperties===void 0&&(r=void 0);else{let o=s;if("additionalProperties"in s&&s.additionalProperties===!1){let{additionalProperties:a,...c}=s;o=c}else r=void 0;i.push(o)}}),i.length?{allOf:i,...r}:void 0}function Bur(e,t){let n=typeof e.value;return n!=="bigint"&&n!=="number"&&n!=="boolean"&&n!=="string"?{type:Array.isArray(e.value)?"array":"object"}:t.target==="openApi3"?{type:n==="bigint"?"integer":n,enum:[e.value]}:{type:n==="bigint"?"integer":n,const:e.value}}function qOt(e,t){let n={type:"string"};if(e.checks)for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t);break;case"max":Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"email":switch(t.emailStrategy){case"format:email":cp(n,"email",r.message,t);break;case"format:idn-email":cp(n,"idn-email",r.message,t);break;case"pattern:zod":Xc(n,ap.email,r.message,t);break}break;case"url":cp(n,"uri",r.message,t);break;case"uuid":cp(n,"uuid",r.message,t);break;case"regex":Xc(n,r.regex,r.message,t);break;case"cuid":Xc(n,ap.cuid,r.message,t);break;case"cuid2":Xc(n,ap.cuid2,r.message,t);break;case"startsWith":Xc(n,RegExp(`^${fbe(r.value,t)}`),r.message,t);break;case"endsWith":Xc(n,RegExp(`${fbe(r.value,t)}$`),r.message,t);break;case"datetime":cp(n,"date-time",r.message,t);break;case"date":cp(n,"date",r.message,t);break;case"time":cp(n,"time",r.message,t);break;case"duration":cp(n,"duration",r.message,t);break;case"length":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t),Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"includes":{Xc(n,RegExp(fbe(r.value,t)),r.message,t);break}case"ip":{r.version!=="v6"&&cp(n,"ipv4",r.message,t),r.version!=="v4"&&cp(n,"ipv6",r.message,t);break}case"base64url":Xc(n,ap.base64url,r.message,t);break;case"jwt":Xc(n,ap.jwt,r.message,t);break;case"cidr":{r.version!=="v6"&&Xc(n,ap.ipv4Cidr,r.message,t),r.version!=="v4"&&Xc(n,ap.ipv6Cidr,r.message,t);break}case"emoji":Xc(n,ap.emoji(),r.message,t);break;case"ulid":{Xc(n,ap.ulid,r.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{cp(n,"binary",r.message,t);break}case"contentEncoding:base64":{Cr(n,"contentEncoding","base64",r.message,t);break}case"pattern:zod":{Xc(n,ap.base64,r.message,t);break}}break}case"nanoid":Xc(n,ap.nanoid,r.message,t);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return n}function fbe(e,t){return t.patternStrategy==="escape"?zur(e):e}function zur(e){let t="";for(let n=0;ni.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):Cr(e,"format",t,n,r)}function Xc(e,t,n,r){e.pattern||e.allOf?.some(i=>i.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:z0t(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",z0t(t,r),n,r)}function z0t(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},r=n.i?e.source.toLowerCase():e.source,i="",s=!1,o=!1,a=!1;for(let c=0;c{"use strict";Tl();uU=16,rxt=9e4});var oxt={};Rr(oxt,{invalidateDownstreamApprovals:()=>Ftr});import{existsSync as Dtr,readdirSync as Ltr,readFileSync as Utr}from"node:fs";import{join as sxt}from"node:path";function Ftr(e){let t=wn(e.intentFm,e.studio),n=t.indexOf(e.completedStage);if(n<0)return{stages_cleared:[],units_cleared:0};let r=t.slice(n+1);if(r.length===0)return{stages_cleared:[],units_cleared:0};let i=[],s=0;for(let o of r){let a=sxt(e.intentDir,"stages",o,"units");if(!Dtr(a))continue;let c=Ltr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=sxt(a,l);try{let f=Utr(d,"utf8"),p=re(f).data,h=p.reviews&&typeof p.reviews=="object"&&Object.keys(p.reviews).length>0,m=p.approvals&&typeof p.approvals=="object"&&Object.keys(p.approvals).length>0;if(!h&&!m)continue;let g=[];h&&g.push("reviews"),m&&g.push("approvals"),Kh(d,g),s++,u=!0}catch(f){console.error(`[invalidate-downstream] skipping ${d}: ${f instanceof Error?f.message:String(f)}`)}}u&&i.push(o)}return{stages_cleared:i,units_cleared:s}}var axt=v(()=>{"use strict";ze();ns()});var zPt={};Rr(zPt,{AbortError:()=>e_,EXIT_REASONS:()=>asr,HOOK_EVENTS:()=>osr,createSdkMcpServer:()=>vfr,query:()=>Afr,tool:()=>Tfr,unstable_v2_createSession:()=>Rfr,unstable_v2_prompt:()=>kfr,unstable_v2_resumeSession:()=>wfr});import{join as uxt}from"path";import{fileURLToPath as znr}from"url";import{setMaxListeners as Vnr}from"events";import{spawn as Knr}from"child_process";import{createInterface as Ynr}from"readline";import*as Zt from"fs";import{stat as Znr}from"fs/promises";import{join as jir}from"path";import{homedir as Hir}from"os";import{dirname as zbe,join as pOt}from"path";import{cwd as qir}from"process";import{realpathSync as Bir}from"fs";import{randomUUID as Gir}from"crypto";import{randomUUID as csr}from"crypto";import{appendFileSync as usr,existsSync as lsr,mkdirSync as dsr}from"fs";import{join as gxt}from"path";import{randomUUID as msr}from"crypto";import{join as Sxt}from"path";import{fileURLToPath as gsr}from"url";function ATe(e=Wnr){let t=new AbortController;return Vnr(e,t.signal),t}function rrr(e){var t=trr.call(e,lU),n=e[lU];try{e[lU]=void 0;var r=!0}catch{}var i=nrr.call(e);return r&&(t?e[lU]=n:delete e[lU]),i}function arr(e){return orr.call(e)}function drr(e){return e==null?e===void 0?lrr:urr:lxt&&lxt in Object(e)?irr(e):crr(e)}function prr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Srr(e){if(!uOt(e))return!1;var t=frr(e);return t==mrr||t==grr||t==hrr||t==yrr}function brr(e){return!!dxt&&dxt in e}function Rrr(e){if(e!=null){try{return Arr.call(e)}catch{}try{return e+""}catch{}}return""}function Mrr(e){if(!uOt(e)||Trr(e))return!1;var t=Err(e)?Crr:Irr;return t.test(wrr(e))}function Lrr(e,t){return e?.[t]}function Frr(e,t){var n=Urr(e,t);return Drr(n)?n:void 0}function Hrr(){this.__data__=SU?SU(null):{},this.size=0}function Brr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Krr(e){var t=this.__data__;if(SU){var n=t[e];return n===zrr?void 0:n}return Wrr.call(t,e)?t[e]:void 0}function Xrr(e){var t=this.__data__;return SU?t[e]!==void 0:Jrr.call(t,e)}function eir(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=SU&&t===void 0?$rr:t,this}function qx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function mir(e,t){var n=this.__data__,r=U6(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Bx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tt.exclude.includes(n)):e.some(n=>t.include.includes(n)):!0}function Fir(e,t){if(!t)return!0;let n=Lir(e);return Uir(n,t)}function fOt(){return process.env.CLAUDE_CONFIG_DIR??jir(Hir(),".claude")}function hxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function hOt(e){return{name:e,default:u6,validate:t=>{if(!t)return{effective:u6,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:u6,status:"invalid",message:`Invalid value "${t}" (using default: ${u6})`}:n>Dbe?{effective:Dbe,status:"capped",message:`Capped from ${n} to ${Dbe}`}:{effective:n,status:"valid"}}}}function Wir(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=Bir(qir())),{originalCwd:e,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:e,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:Gir(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[zir,Vir],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0}}function Yir(){return Kir.sessionId}function Zir({writeFn:e,flushIntervalMs:t=1e3,maxBufferSize:n=100,immediateMode:r=!1}){let i=[],s=null;function o(){s&&(clearTimeout(s),s=null)}function a(){i.length!==0&&(e(i.join("")),i=[],o())}function c(){s||(s=setTimeout(a,t))}return{write(u){if(r){e(u);return}i.push(u),c(),i.length>=n&&a()},flush:a,dispose(){a()}}}function Jir(e){return mxt.add(e),()=>mxt.delete(e)}function Xir(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array[${e.length}]`:typeof e=="object"?`Object{${Object.keys(e).length} keys}`:typeof e=="string"?`string(${e.length} chars)`:typeof e}function gOt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>mOt&&(Yg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function rm(e,t,n){let r=Xir(e);return gOt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function esr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=$ir();return Fir(e,t)}function nsr(){return l6||(l6=Zir({writeFn:e=>{let t=EOt();Jg().existsSync(zbe(t))||Jg().mkdirSync(zbe(t)),Jg().appendFileSync(t,e),rsr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:Qir()}),Jir(async()=>l6?.dispose())),l6}function Yg(e,{level:t}={level:"debug"}){if(!esr(e))return;tsr&&e.includes(` +`)&&(e=rm(e));let r=`${new Date().toISOString()} [${t.toUpperCase()}] ${e.trim()} +`;if(SOt()){Mir(r);return}nsr().write(r)}function EOt(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??pOt(fOt(),"debug",`${Yir()}.txt`)}function fo(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>mOt&&(Yg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Jg(){return ssr}function kTe(){return process.versions.bun!==void 0}function fsr(){if(yxt)return d6;if(yxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=gxt(fOt(),"debug");return d6=gxt(e,`sdk-${csr()}.txt`),lsr(e)||dsr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${d6} +`),d6}function Vv(e){let t=fsr();if(!t)return;let r=`${new Date().toISOString()} ${e} +`;usr(t,r)}function psr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...yOt(n.settings),sandbox:t}}catch{}n.settings=rm(r)}return n}function hsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function _Ot(e){return new b6(e)}function ysr(e,t){return new b6({...t,resume:e})}function Wbe(){return Esr}function Ye(e,t){let n=Wbe(),r=Kbe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===EU?void 0:EU].filter(i=>!!i)});e.common.issues.push(r)}function ln(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function TOt(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Lsr(e){return new RegExp(`^${TOt(e)}$`)}function Usr(e){let t=`${bOt}T${TOt(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Fsr(e,t){return!!((t==="v4"||!t)&&xsr.test(e)||(t==="v6"||!t)&&Psr.test(e))}function jsr(e,t){if(!Rsr.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Hsr(e,t){return!!((t==="v4"||!t)&&Osr.test(e)||(t==="v6"||!t)&&Nsr.test(e))}function qsr(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function Ax(e){if(e instanceof Ll){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=hp.create(Ax(r))}return new Ll({...e._def,shape:()=>t})}else return e instanceof r_?new r_({...e._def,type:Ax(e.element)}):e instanceof hp?hp.create(Ax(e.unwrap())):e instanceof Qg?Qg.create(Ax(e.unwrap())):e instanceof Xg?Xg.create(e.items.map(t=>Ax(t))):e}function Zbe(e,t){let n=$E(e),r=$E(t);if(e===t)return{valid:!0,data:e};if(n===nt.object&&r===nt.object){let i=ir.objectKeys(t),s=ir.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=Zbe(e[a],t[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===nt.array&&r===nt.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let s=0;sn?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function $g(e){return e&&Object.assign(Qbe,e),Qbe}function Gsr(e){return e}function zsr(e){return e}function Vsr(e){}function Wsr(e){throw new Error}function Ksr(e){}function ITe(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function $be(e,t="|"){return e.map(n=>PTe(n)).join(t)}function AOt(e,t){return typeof t=="bigint"?t.toString():t}function j6(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function H6(e){return e==null}function q6(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ROt(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function ki(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function xTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Ysr(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Zsr(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function eor(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function PTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function IOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function nor(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return ty(e,{...e._zod.def,shape:n,checks:[]})}function ror(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return ty(e,{...e._zod.def,shape:n,checks:[]})}function ior(e,t){if(!PU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return xTe(this,"shape",r),r},checks:[]};return ty(e,n)}function sor(e,t){return ty(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return xTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function oor(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return ty(t,{...t._zod.def,shape:i,checks:[]})}function aor(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return ty(t,{...t._zod.def,shape:i,checks:[]})}function wx(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function hU(e){return typeof e=="string"?e:e?.message}function ey(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=hU(e.inst?._zod.def?.error?.(e))??hU(t?.error?.(e))??hU(n.customError?.(e))??hU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function cor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function B6(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function OOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function uor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function lor(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function dor(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cr==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return GOt(n)}function war(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function Axt(e,t,n){e.issues.length&&t.issues.push(...t_(n,e.issues)),t.value[n]=e.value}function f6(e,t,n){e.issues.length&&t.issues.push(...t_(n,e.issues)),t.value[n]=e.value}function Rxt(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...t_(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function wxt(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>ey(s,r,$g())))}),t}function nTe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(PU(e)&&PU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=nTe(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;rt.normalize(e))}function Fcr(){return CU(e=>e.trim())}function jcr(){return CU(e=>e.toLowerCase())}function Hcr(){return CU(e=>e.toUpperCase())}function qcr(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function Bcr(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function Gcr(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function zcr(e,t){if(e instanceof R6){let r=new k6(t),i={};for(let a of e._idmap.entries()){let[c,u]=a;r.process(u)}let s={},o={registry:e,uri:t?.uri||(a=>a),defs:i};for(let a of e._idmap.entries()){let[c,u]=a;s[c]=r.emit(u,{...t,external:o})}if(Object.keys(i).length>0){let a=r.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[a]:i}}return{schemas:s}}let n=new k6(t);return n.process(e),n.emit(e,t)}function Io(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let i=e._zod.def;switch(i.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return Io(i.element,n);case"object":{for(let s in i.shape)if(Io(i.shape[s],n))return!0;return!1}case"union":{for(let s of i.options)if(Io(s,n))return!0;return!1}case"intersection":return Io(i.left,n)||Io(i.right,n);case"tuple":{for(let s of i.items)if(Io(s,n))return!0;return!!(i.rest&&Io(i.rest,n))}case"record":return Io(i.keyType,n)||Io(i.valueType,n);case"map":return Io(i.keyType,n)||Io(i.valueType,n);case"set":return Io(i.valueType,n);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return Io(i.innerType,n);case"lazy":return Io(i.getter(),n);case"default":return Io(i.innerType,n);case"prefault":return Io(i.innerType,n);case"custom":return!1;case"transform":return!0;case"pipe":return Io(i.in,n)||Io(i.out,n);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${i.type}`)}function Uxt(e,t){let n={type:"object",get shape(){return zr.assignProp(this,"shape",{...e}),this.shape},...zr.normalizeParams(t)};return new Wcr(n)}function gp(e){return!!e._zod}function gU(e){let t=Object.values(e);if(t.length===0)return Uxt({});let n=t.every(gp),r=t.every(i=>!gp(i));if(n)return Uxt(e);if(r)return Bsr(e);throw new Error("Mixed Zod versions detected in object shape.")}function yU(e,t){return gp(e)?NTe(e,t):e.safeParse(t)}async function jbe(e,t){return gp(e)?await CTe(e,t):await e.safeParseAsync(t)}function MU(e){var t,n;if(!e)return;let r;if(gp(e)?r=(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.shape:r=e.shape,!!r){if(typeof r=="function")try{return r()}catch{return}return r}}function dU(e){var t;if(e){if(typeof e=="object"){let n=e,r=e;if(!n._def&&!r._zod){let i=Object.values(e);if(i.length>0&&i.every(s=>typeof s=="object"&&s!==null&&(s._def!==void 0||s._zod!==void 0||typeof s.parse=="function")))return gU(e)}}if(gp(e)){let r=(t=e._zod)===null||t===void 0?void 0:t.def;if(r&&(r.type==="object"||r.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function Hbe(e){if(e&&typeof e=="object"){if("message"in e&&typeof e.message=="string")return e.message;if("issues"in e&&Array.isArray(e.issues)&&e.issues.length>0){let t=e.issues[0];if(t&&typeof t=="object"&&"message"in t)return String(t.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function Kcr(e){var t,n,r,i;if(gp(e))return(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.description;let s=e;return(r=e.description)!==null&&r!==void 0?r:(i=s._def)===null||i===void 0?void 0:i.description}function Ycr(e){var t,n,r;if(gp(e))return((n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.type)==="optional";let i=e;return typeof e.isOptional=="function"?e.isOptional():((r=i._def)===null||r===void 0?void 0:r.typeName)==="ZodOptional"}function ZOt(e){var t;if(gp(e)){let o=(t=e._zod)===null||t===void 0?void 0:t.def;if(o){if(o.value!==void 0)return o.value;if(Array.isArray(o.values)&&o.values.length>0)return o.values[0]}}let r=e._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let i=e.value;if(i!==void 0)return i}function QOt(e){return bcr(XOt,e)}function ePt(e){return Tcr($Ot,e)}function nPt(e){return vcr(tPt,e)}function iPt(e){return Acr(rPt,e)}function he(e){return $ar($cr,e)}function ui(e){return Rcr(aPt,e)}function jxt(e){return wcr(yur,e)}function Tc(e){return kcr(Sur,e)}function cPt(e){return Icr(Eur,e)}function xo(){return xcr(_ur)}function Tur(e){return Ocr(bur,e)}function er(e,t){return qcr(vur,e,t)}function Ge(e,t){let n={type:"object",get shape(){return zr.assignProp(this,"shape",{...e}),this.shape},...zr.normalizeParams(t)};return new uPt(n)}function yp(e,t){return new uPt({type:"object",get shape(){return zr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...zr.normalizeParams(t)})}function Vi(e,t){return new lPt({type:"union",options:e,...zr.normalizeParams(t)})}function dPt(e,t,n){return new Aur({type:"union",options:t,discriminator:e,...zr.normalizeParams(n)})}function DTe(e,t){return new Rur({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new wur({type:"record",keyType:e,valueType:t,...zr.normalizeParams(n)})}function vc(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new rTe({type:"enum",entries:n,...zr.normalizeParams(t)})}function St(e,t){return new kur({type:"literal",values:Array.isArray(e)?e:[e],...zr.normalizeParams(t)})}function fPt(e){return new Iur({type:"transform",transform:e})}function yt(e){return new pPt({type:"optional",innerType:e})}function Hxt(e){return new xur({type:"nullable",innerType:e})}function Pur(e,t){return new Our({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Cur(e,t){return new Nur({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Mur(e,t){return new hPt({type:"nonoptional",innerType:e,...zr.normalizeParams(t)})}function Lur(e,t){return new Dur({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function iTe(e,t){return new Uur({type:"pipe",in:e,out:t})}function jur(e){return new Fur({type:"readonly",innerType:e})}function Hur(e,t){let n=new Qu({check:"custom",...zr.normalizeParams(t)});return n._zod.check=e,n}function qur(e,t){return Bcr(mPt,e??(()=>!0),t)}function Bur(e,t={}){return Gcr(mPt,e,t)}function Gur(e,t){let n=Hur(r=>(r.addIssue=i=>{if(typeof i=="string")r.issues.push(zr.issue(i,r.value,n._zod.def));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=n),s.continue??(s.continue=!n._zod.def.abort),r.issues.push(zr.issue(s))}},e(r.value,r)),t);return n}function gPt(e,t){return iTe(fPt(e),t)}function gdr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function ydr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function Wv(e){return e==="completed"||e==="failed"||e==="cancelled"}function LPt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,LPt(e,t,r,i)}function Xu(e){if(e.target!=="openAi")return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?UPt(t,e.currentPath):t.join("/")}}function Rdr(e,t){let n={type:"array"};return e.type?._def&&e.type?._def?.typeName!==Le.ZodAny&&(n.items=_r(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&Cr(n,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&Cr(n,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(Cr(n,"minItems",e.exactLength.value,e.exactLength.message,t),Cr(n,"maxItems",e.exactLength.value,e.exactLength.message,t)),n}function wdr(e,t){let n={type:"integer",format:"int64"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function kdr(){return{type:"boolean"}}function FPt(e,t){return _r(e.type._def,t)}function jPt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>jPt(e,t,i))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return xdr(e,t)}}function Odr(e,t){return{..._r(e.innerType._def,t),default:e.defaultValue()}}function Pdr(e,t){return t.effectStrategy==="input"?_r(e.schema._def,t):Xu(t)}function Ndr(e){return{type:"string",enum:Array.from(e.values)}}function Mdr(e,t){let n=[_r(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),_r(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(s=>!!s),r=t.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(s=>{if(Cdr(s))i.push(...s.allOf),s.unevaluatedProperties===void 0&&(r=void 0);else{let o=s;if("additionalProperties"in s&&s.additionalProperties===!1){let{additionalProperties:a,...c}=s;o=c}else r=void 0;i.push(o)}}),i.length?{allOf:i,...r}:void 0}function Ddr(e,t){let n=typeof e.value;return n!=="bigint"&&n!=="number"&&n!=="boolean"&&n!=="string"?{type:Array.isArray(e.value)?"array":"object"}:t.target==="openApi3"?{type:n==="bigint"?"integer":n,enum:[e.value]}:{type:n==="bigint"?"integer":n,const:e.value}}function HPt(e,t){let n={type:"string"};if(e.checks)for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t);break;case"max":Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"email":switch(t.emailStrategy){case"format:email":pp(n,"email",r.message,t);break;case"format:idn-email":pp(n,"idn-email",r.message,t);break;case"pattern:zod":nu(n,fp.email,r.message,t);break}break;case"url":pp(n,"uri",r.message,t);break;case"uuid":pp(n,"uuid",r.message,t);break;case"regex":nu(n,r.regex,r.message,t);break;case"cuid":nu(n,fp.cuid,r.message,t);break;case"cuid2":nu(n,fp.cuid2,r.message,t);break;case"startsWith":nu(n,RegExp(`^${Bbe(r.value,t)}`),r.message,t);break;case"endsWith":nu(n,RegExp(`${Bbe(r.value,t)}$`),r.message,t);break;case"datetime":pp(n,"date-time",r.message,t);break;case"date":pp(n,"date",r.message,t);break;case"time":pp(n,"time",r.message,t);break;case"duration":pp(n,"duration",r.message,t);break;case"length":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t),Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"includes":{nu(n,RegExp(Bbe(r.value,t)),r.message,t);break}case"ip":{r.version!=="v6"&&pp(n,"ipv4",r.message,t),r.version!=="v4"&&pp(n,"ipv6",r.message,t);break}case"base64url":nu(n,fp.base64url,r.message,t);break;case"jwt":nu(n,fp.jwt,r.message,t);break;case"cidr":{r.version!=="v6"&&nu(n,fp.ipv4Cidr,r.message,t),r.version!=="v4"&&nu(n,fp.ipv6Cidr,r.message,t);break}case"emoji":nu(n,fp.emoji(),r.message,t);break;case"ulid":{nu(n,fp.ulid,r.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{pp(n,"binary",r.message,t);break}case"contentEncoding:base64":{Cr(n,"contentEncoding","base64",r.message,t);break}case"pattern:zod":{nu(n,fp.base64,r.message,t);break}}break}case"nanoid":nu(n,fp.nanoid,r.message,t);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return n}function Bbe(e,t){return t.patternStrategy==="escape"?Udr(e):e}function Udr(e){let t="";for(let n=0;ni.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):Cr(e,"format",t,n,r)}function nu(e,t,n,r){e.pattern||e.allOf?.some(i=>i.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:Gxt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",Gxt(t,r),n,r)}function Gxt(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},r=n.i?e.source.toLowerCase():e.source,i="",s=!1,o=!1,a=!1;for(let c=0;c({...r,[i]:Sr(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??Vu(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:Sr(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return n;if(e.keyType?._def.typeName===De.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=qOt(e.keyType._def,t);return{...n,propertyNames:i}}else{if(e.keyType?._def.typeName===De.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===De.ZodBranded&&e.keyType._def.type._def.typeName===De.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=FOt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function Vur(e,t){if(t.mapStrategy==="record")return BOt(e,t);let n=Sr(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Vu(t),r=Sr(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Vu(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function Wur(e){let t=e.values,r=Object.keys(e.values).filter(s=>typeof t[t[s]]!="number").map(s=>t[s]),i=Array.from(new Set(r.map(s=>typeof s)));return{type:i.length===1?i[0]==="string"?"string":"number":["string","number"],enum:r}}function Kur(e){return e.target==="openAi"?void 0:{not:Vu({...e,currentPath:[...e.currentPath,"not"]})}}function Zur(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function Yur(e,t){if(t.target==="openApi3")return V0t(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in hY&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=hY[s._def.typeName];return o&&!i.includes(o)?[...i,o]:i},[]);return{type:r.length>1?r:r[0]}}else if(n.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=n.reduce((i,s)=>{let o=typeof s._def.value;switch(o){case"string":case"number":case"boolean":return[...i,o];case"bigint":return[...i,"integer"];case"object":if(s._def.value===null)return[...i,"null"];default:return i}},[]);if(r.length===n.length){let i=r.filter((s,o,a)=>a.indexOf(s)===o);return{type:i.length>1?i:i[0],enum:n.reduce((s,o)=>s.includes(o._def.value)?s:[...s,o._def.value],[])}}}else if(n.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((r,i)=>[...r,...i._def.values.filter(s=>!r.includes(s))],[])};return V0t(e,t)}function Jur(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:hY[e.innerType._def.typeName],nullable:!0}:{type:[hY[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let r=Sr(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let n=Sr(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function Xur(e,t){let n={type:"number"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"int":n.type="integer",UOt(n,"type",r.message,t);break;case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function Qur(e,t){let n=t.target==="openAi",r={type:"object",properties:{}},i=[],s=e.shape();for(let a in s){let c=s[a];if(c===void 0||c._def===void 0)continue;let u=elr(c);u&&n&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),u=!1);let l=Sr(c._def,{...t,currentPath:[...t.currentPath,"properties",a],propertyPath:[...t.currentPath,"properties",a]});l!==void 0&&(r.properties[a]=l,u||i.push(a))}i.length&&(r.required=i);let o=$ur(e,t);return o!==void 0&&(r.additionalProperties=o),r}function $ur(e,t){if(e.catchall._def.typeName!=="ZodNever")return Sr(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function elr(e){try{return e.isOptional()}catch{return!0}}function rlr(e,t){return Sr(e.type._def,t)}function ilr(e,t){let r={type:"array",uniqueItems:!0,items:Sr(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&Cr(r,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&Cr(r,"maxItems",e.maxSize.value,e.maxSize.message,t),r}function slr(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((n,r)=>Sr(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:Sr(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,r)=>Sr(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[])}}function olr(e){return{not:Vu(e)}}function alr(e){return Vu(e)}function Sr(e,t,n=!1){let r=t.seen.get(e);if(t.override){let a=t.override?.(e,t,r,n);if(a!==xur)return a}if(r&&!n){let a=llr(r,t);if(a!==void 0)return a}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let s=ulr(e,e.typeName,t),o=typeof s=="function"?Sr(s(),t):s;if(o&&dlr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function plr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function W0t(e,t){var n,r,i;return dp(e)?Jor(e,{target:plr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):flr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function K0t(e){let t=_U(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=Jxt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Z0t(e,t){let n=nU(e,t);if(!n.success)throw n.error;return n.data}function Y0t(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function mlr(e,t){let n={...e};for(let r in t){let i=r,s=t[i];if(s===void 0)continue;let o=n[i];Y0t(o)&&Y0t(s)?n[i]={...o,...s}:n[i]=s}return n}function Slr(){let e=new glr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=ylr.default;return t(e),e}function _lr(e,t,n){var r;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!(!((r=e.tools)===null||r===void 0)&&r.call))throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function Elr(e,t,n){var r,i;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!(!((r=e.sampling)===null||r===void 0)&&r.createMessage))throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!(!((i=e.elicitation)===null||i===void 0)&&i.create))throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}function blr(e){return!!e&&typeof e=="object"&&GOt in e}function Tlr(e){let t=e[GOt];return t?.complete}function Alr(e){let t=[];if(e.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(" ")&&t.push("Tool name contains spaces, which may cause parsing issues"),e.includes(",")&&t.push("Tool name contains commas, which may cause parsing issues"),(e.startsWith("-")||e.endsWith("-"))&&t.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(e.startsWith(".")||e.endsWith("."))&&t.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!vlr.test(e)){let n=e.split("").filter(r=>!/[A-Za-z0-9._-]/.test(r)).filter((r,i,s)=>s.indexOf(r)===i);return t.push(`Tool name contains invalid characters: ${n.map(r=>`"${r}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function Rlr(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let n of t)console.warn(` - ${n}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function X0t(e){let t=Alr(e);return Rlr(e,t.warnings),t.isValid}function zOt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function klr(e){return"_def"in e||"_zod"in e||zOt(e)}function zbe(e){return typeof e!="object"||e===null||klr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(zOt)}function Q0t(e){if(e)return zbe(e)?tU(e):e}function Ilr(e){let t=_U(e);return t?Object.entries(t).map(([n,r])=>{let i=$or(r),s=ear(r);return{name:n,description:i,required:!s}}):[]}function K_(e){let t=_U(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=Jxt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function $0t(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function xlr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function Olr(e){let t=new Gbe({name:e.name,version:e.version??"1.0.0"},{capabilities:{tools:e.tools?{}:void 0}});return e.tools&&e.tools.forEach(n=>{t.tool(n.name,n.description,n.inputSchema,n.handler)}),{type:"sdk",name:e.name,instance:t}}function Nlr({prompt:e,options:t}){let{systemPrompt:n,settingSources:r,sandbox:i,...s}=t??{},o,a;n===void 0?o="":typeof n=="string"?o=n:n.type==="preset"&&(a=n.append);let c=s.pathToClaudeCodeExecutable;if(!c){let ge=Jer(import.meta.url),Se=l0t(ge,"..");c=l0t(Se,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=Zbe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:y,disallowedTools:g=[],tools:E,env:S,executable:_=Xbe()?"bun":"node",executableArgs:b=[],extraArgs:T={},fallbackModel:A,enableFileCheckpointing:R,forkSession:k,hooks:x,includePartialMessages:N,persistSession:P,maxThinkingTokens:D,maxTurns:j,maxBudgetUsd:V,mcpServers:Z,model:B,outputFormat:G,permissionMode:X="default",allowDangerouslySkipPermissions:q=!1,permissionPromptToolName:C,plugins:z,resume:U,resumeSessionAt:M,stderr:H,strictMcpConfig:F}=s,W=G?.type==="json_schema"?G.schema:void 0,$=S;if($||($={...process.env}),$.CLAUDE_CODE_ENTRYPOINT||($.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),R&&($.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let ie={},Re=new Map;if(Z)for(let[ge,Se]of Object.entries(Z))Se.type==="sdk"&&"instance"in Se?(Re.set(ge,Se.instance),ie[ge]={type:"sdk",name:ge}):ie[ge]=Se;let Te=typeof e=="string",K=new eY({abortController:u,additionalDirectories:l,betas:p,cwd:y,executable:_,executableArgs:b,extraArgs:T,pathToClaudeCodeExecutable:c,env:$,forkSession:k,stderr:H,maxThinkingTokens:D,maxTurns:j,maxBudgetUsd:V,model:B,fallbackModel:A,jsonSchema:W,permissionMode:X,allowDangerouslySkipPermissions:q,permissionPromptToolName:C,continueConversation:m,resume:U,resumeSessionAt:M,settingSources:r??[],allowedTools:f,disallowedTools:g,tools:E,mcpServers:ie,strictMcpConfig:F,canUseTool:!!h,hooks:!!x,includePartialMessages:N,persistSession:P,plugins:z,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),Q={systemPrompt:o,appendSystemPrompt:a,agents:d},ae=new nY(K,Te,h,x,u,Re,W,Q);return typeof e=="string"?K.write(Qh({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` -`):ae.streamInput(e),ae}function Plr(e){return bxt(e)}function Clr(e,t){return Arr(e,t)}async function Mlr(e,t){let n=[];try{let o=X$n(n,bxt(t),1);await o.send(e);for await(let a of o.stream())if(a.type==="result")return a;throw new Error("Session ended without result message")}catch(o){var r=o,i=1}finally{var s=Q$n(n,r,i);s&&await s}}var V$n,W$n,pbe,K$n,Z$n,ext,Je,txt,Y$n,J$n,X$n,Q$n,X6,u0t,bn,cr,$_,mY,$$n,nxt,rxt,Q6,eer,pp,ter,ner,ixt,rer,gY,yY,Vbe,SY,Wbe,ier,ser,oer,aer,cer,uer,ler,der,fer,per,her,mer,ger,yer,Ser,_er,Eer,ber,Kbe,Ter,ver,Aer,Rer,sxt,oxt,wer,ker,Ier,xer,Oer,axt,Ner,Per,Cer,Mer,Der,Ler,Uer,jer,Fer,Her,qer,Ber,Ger,zer,Ver,Wer,cxt,Ker,Zer,Yer,Qer,ntr,rtr,itr,otr,Ybe,atr,$6,uxt,ctr,utr,Y1,dtr,ftr,ptr,mtr,gtr,ytr,d0t,_tr,lxt,btr,Ttr,vtr,Atr,wtr,ktr,ibe,f0t,xtr,Otr,Ntr,Ctr,Mtr,Dtr,Ltr,Utr,jtr,Ftr,Htr,Btr,ztr,dxt,Wtr,rU,Ztr,Jtr,Xtr,Qtr,$tr,tnr,nnr,rnr,snr,onr,cnr,p0t,lnr,fnr,_Y,hnr,mnr,ynr,_nr,bnr,vnr,Anr,Rnr,wnr,Inr,Onr,EY,Cnr,Dnr,Unr,Fnr,fxt,Hnr,yU,h0t,Bnr,sbe,V6,Xnr,m0i,Qnr,err,g0t,gxt,Sxt,srr,orr,_xt,crr,W6,lrr,drr,frr,prr,hrr,Y_,K6,S0t,eY,tY,mbe,nY,rY,rr,E0t,nt,Z_,Oe,Vd,Rrr,iU,wrr,ybe,Qc,Vt,Q1,zu,b0t,T0t,Ex,iY,lt,Wd,v0t,Tn,krr,Irr,xrr,Orr,Nrr,Prr,Crr,Mrr,Drr,obe,Lrr,Urr,jrr,Frr,Hrr,qrr,Txt,Brr,bx,sU,oU,aU,cU,uU,Tx,vx,lU,X_,em,dU,Q_,Cl,Ax,zg,Sbe,Rx,Zg,Ebe,fU,pU,bbe,wx,kx,Ix,xx,qv,lp,up,Yg,Ox,Nx,hU,sY,oY,Px,T0i,De,v0i,A0i,R0i,w0i,k0i,I0i,x0i,O0i,N0i,P0i,C0i,M0i,D0i,L0i,Yrr,U0i,j0i,F0i,H0i,q0i,B0i,G0i,z0i,V0i,W0i,K0i,Z0i,Y0i,J0i,X0i,Q0i,$0i,exi,txi,nxi,Bv,Tbe,Br,eTe,kxt,sir,Ixt,oir,Oxt,cir,Abe,Pxt,Cxt,RY,Mxt,_ir,Dxt,Eir,Lxt,nTe,Uxt,rTe,bir,Tir,vir,Air,Rir,wir,kir,Iir,A0t,xir,Oir,Pir,Cir,Mir,Dir,Lir,jxt,Uir,jir,Fxt,Fir,Bir,Gir,zir,Vir,Wir,Kir,Zir,Wu,qxt,Bxt,Gxt,Yir,Jir,Xir,Qir,$ir,wY,esr,tsr,nsr,rsr,isr,ssr,osr,Rbe,asr,ai,iTe,Hi,csr,usr,lsr,dsr,fsr,psr,hsr,msr,gsr,ysr,Ssr,_sr,Esr,bsr,Tsr,vsr,Asr,Rsr,wsr,ksr,xsr,Osr,Psr,Vxt,Csr,Msr,Dsr,Lsr,Usr,jsr,Wxt,Kxt,Fsr,Hsr,qsr,Bsr,Gsr,zsr,Vsr,Wsr,Ksr,Zsr,Ysr,Jsr,Xsr,Qsr,$sr,eor,tor,aY,eU,uY,Xor,Qor,Xxt,Qxt,eOt,nOt,iOt,oOt,rxi,kY,tar,nar,rar,iar,rs,aOt,sar,is,oar,F0t,Y6,aar,car,uar,lar,dar,far,par,har,mar,gar,yar,Sar,_ar,Ear,bar,Tar,cOt,Aar,Rar,war,kar,Iar,Oar,lOt,dOt,Nar,Par,Car,kbe,Mar,Dar,hOt,Lar,Uar,Far,mOt,Bar,zar,Var,gOt,SOt,Xar,Wg,IY,$h,_Ot,EOt,Qar,oTe,$ar,Ku,Pa,Gv,Kd,Tc,xY,bOt,B0t,TOt,ecr,vOt,J6,Lt,AOt,tcr,ixi,aTe,ncr,cTe,rcr,EU,Cx,ROt,icr,scr,ocr,acr,ccr,ucr,wOt,lcr,dcr,kOt,uTe,fcr,pcr,lTe,hcr,bU,TU,vU,OY,mcr,lY,dTe,fTe,pTe,hTe,mTe,gcr,ycr,IOt,xOt,gTe,OOt,jx,NOt,Scr,xbe,_cr,Obe,Ecr,yTe,bcr,Nbe,Tcr,vcr,Acr,Rcr,wcr,kcr,Icr,xcr,Ocr,Ncr,Pbe,Pcr,Ccr,Cbe,STe,_Te,ETe,Mcr,Dcr,Lcr,bTe,Ucr,jcr,Fcr,Hcr,qcr,POt,Mbe,Bcr,TTe,sxi,Gcr,dY,zcr,fY,Vcr,COt,Wcr,Kcr,Zcr,Ycr,Jcr,Xcr,Qcr,pY,$cr,eur,tur,MOt,DOt,nur,rur,iur,sur,our,aur,cur,uur,lur,dur,fur,pur,hur,mur,gur,yur,Sur,_ur,Dbe,Eur,bur,Tur,Lbe,Rur,wur,kur,LOt,Iur,oxi,axi,cxi,uxi,lxi,dxi,Et,Ube,xur,G0t,Our,Nur,jOt,Dur,Lur,Hur,dbe,ap,Gur,hY,V0t,tlr,nlr,clr,ulr,llr,dlr,flr,hlr,jbe,glr,ylr,Fbe,Hbe,qbe,GOt,J0t,vlr,Bbe,Gbe,wlr,X1,WOt=v(()=>{V$n=Object.create,W$n=Object.getPrototypeOf,pbe=Object.defineProperty,K$n=Object.getOwnPropertyNames,Z$n=Object.prototype.hasOwnProperty,ext=(e,t,n)=>{n=e!=null?V$n(W$n(e)):{};let r=t||!e||!e.__esModule?pbe(n,"default",{value:e,enumerable:!0}):n;for(let i of K$n(e))Z$n.call(r,i)||pbe(r,i,{get:()=>e[i],enumerable:!0});return r},Je=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),txt=(e,t)=>{for(var n in t)pbe(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},Y$n=Symbol.dispose||Symbol.for("Symbol.dispose"),J$n=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),X$n=(e,t,n)=>{if(t!=null){if(typeof t!="object"&&typeof t!="function")throw TypeError('Object expected to be assigned to "using" declaration');var r;if(n&&(r=t[J$n]),r===void 0&&(r=t[Y$n]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},Q$n=(e,t,n)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(o,a,c,u){return u=Error(c),u.name="SuppressedError",u.error=o,u.suppressed=a,u},i=o=>t=n?new r(o,t,"An error was suppressed during disposal"):(n=!0,o),s=o=>{for(;o=e.pop();)try{var a=o[1]&&o[1].call(o[2]);if(o[0])return Promise.resolve(a).then(s,c=>(i(c),s()))}catch(c){i(c)}if(n)throw t};return s()},X6=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class n extends t{constructor(E){if(super(),!e.IDENTIFIER.test(E))throw new Error("CodeGen: name must be a valid identifier");this.str=E}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=n;class r extends t{constructor(E){super(),this._items=typeof E=="string"?[E]:E}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let E=this._items[0];return E===""||E==='""'}get str(){var E;return(E=this._str)!==null&&E!==void 0?E:this._str=this._items.reduce((S,_)=>`${S}${_}`,"")}get names(){var E;return(E=this._names)!==null&&E!==void 0?E:this._names=this._items.reduce((S,_)=>(_ instanceof n&&(S[_.str]=(S[_.str]||0)+1),S),{})}}e._Code=r,e.nil=new r("");function i(g,...E){let S=[g[0]],_=0;for(;_{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=X6();class n extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var r;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};class i{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof t.Name?u:this.name(u)}name(u){return new t.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}e.Scope=i;class s extends t.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,t._)`.${new t.Name(l)}[${d}]`}}e.ValueScopeName=s;var o=(0,t._)`\n`;class a extends i{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?o:t.nil}}get(){return this._scope}name(u){return new s(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let f=this.toName(u),{prefix:p}=f,h=(d=l.key)!==null&&d!==void 0?d:l.ref,m=this._values[p];if(m){let E=m.get(h);if(E)return E}else m=this._values[p]=new Map;m.set(h,f);let y=this._scope[p]||(this._scope[p]=[]),g=y.length;return y[g]=l.ref,f.setValue(l,{property:p,itemIndex:g}),f}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,t._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,f=>{if(f.value===void 0)throw new Error(`CodeGen: name "${f}" has no value`);return f.value.code},l,d)}_reduceValues(u,l,d={},f){let p=t.nil;for(let h in u){let m=u[h];if(!m)continue;let y=d[h]=d[h]||new Map;m.forEach(g=>{if(y.has(g))return;y.set(g,r.Started);let E=l(g);if(E){let S=this.opts.es5?e.varKinds.var:e.varKinds.const;p=(0,t._)`${p}${S} ${g} = ${E};${this.opts._n}`}else if(E=f?.(g))p=(0,t._)`${p}${E}${this.opts._n}`;else throw new n(g);y.set(g,r.Completed)})}return p}}e.ValueScope=a}),bn=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;var t=X6(),n=u0t(),r=X6();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var i=u0t();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class s{optimizeNodes(){return this}optimizeNames(M,H){return this}}class o extends s{constructor(M,H,F){super(),this.varKind=M,this.name=H,this.rhs=F}render({es5:M,_n:H}){let F=M?n.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${F} ${this.name}${W};`+H}optimizeNames(M,H){if(M[this.name.str])return this.rhs&&(this.rhs=j(this.rhs,M,H)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(M,H,F){super(),this.lhs=M,this.rhs=H,this.sideEffects=F}render({_n:M}){return`${this.lhs} = ${this.rhs};`+M}optimizeNames(M,H){if(!(this.lhs instanceof t.Name&&!M[this.lhs.str]&&!this.sideEffects))return this.rhs=j(this.rhs,M,H),this}get names(){let M=this.lhs instanceof t.Name?{}:{...this.lhs.names};return D(M,this.rhs)}}class c extends a{constructor(M,H,F,W){super(M,F,W),this.op=H}render({_n:M}){return`${this.lhs} ${this.op}= ${this.rhs};`+M}}class u extends s{constructor(M){super(),this.label=M,this.names={}}render({_n:M}){return`${this.label}:`+M}}class l extends s{constructor(M){super(),this.label=M,this.names={}}render({_n:M}){return`break${this.label?` ${this.label}`:""};`+M}}class d extends s{constructor(M){super(),this.error=M}render({_n:M}){return`throw ${this.error};`+M}get names(){return this.error.names}}class f extends s{constructor(M){super(),this.code=M}render({_n:M}){return`${this.code};`+M}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(M,H){return this.code=j(this.code,M,H),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class p extends s{constructor(M=[]){super(),this.nodes=M}render(M){return this.nodes.reduce((H,F)=>H+F.render(M),"")}optimizeNodes(){let{nodes:M}=this,H=M.length;for(;H--;){let F=M[H].optimizeNodes();Array.isArray(F)?M.splice(H,1,...F):F?M[H]=F:M.splice(H,1)}return M.length>0?this:void 0}optimizeNames(M,H){let{nodes:F}=this,W=F.length;for(;W--;){let $=F[W];$.optimizeNames(M,H)||(V(M,$.names),F.splice(W,1))}return F.length>0?this:void 0}get names(){return this.nodes.reduce((M,H)=>P(M,H.names),{})}}class h extends p{render(M){return"{"+M._n+super.render(M)+"}"+M._n}}class m extends p{}class y extends h{}y.kind="else";class g extends h{constructor(M,H){super(H),this.condition=M}render(M){let H=`if(${this.condition})`+super.render(M);return this.else&&(H+="else "+this.else.render(M)),H}optimizeNodes(){super.optimizeNodes();let M=this.condition;if(M===!0)return this.nodes;let H=this.else;if(H){let F=H.optimizeNodes();H=this.else=Array.isArray(F)?new y(F):F}if(H)return M===!1?H instanceof g?H:H.nodes:this.nodes.length?this:new g(Z(M),H instanceof g?[H]:H.nodes);if(!(M===!1||!this.nodes.length))return this}optimizeNames(M,H){var F;if(this.else=(F=this.else)===null||F===void 0?void 0:F.optimizeNames(M,H),!!(super.optimizeNames(M,H)||this.else))return this.condition=j(this.condition,M,H),this}get names(){let M=super.names;return D(M,this.condition),this.else&&P(M,this.else.names),M}}g.kind="if";class E extends h{}E.kind="for";class S extends E{constructor(M){super(),this.iteration=M}render(M){return`for(${this.iteration})`+super.render(M)}optimizeNames(M,H){if(super.optimizeNames(M,H))return this.iteration=j(this.iteration,M,H),this}get names(){return P(super.names,this.iteration.names)}}class _ extends E{constructor(M,H,F,W){super(),this.varKind=M,this.name=H,this.from=F,this.to=W}render(M){let H=M.es5?n.varKinds.var:this.varKind,{name:F,from:W,to:$}=this;return`for(${H} ${F}=${W}; ${F}<${$}; ${F}++)`+super.render(M)}get names(){let M=D(super.names,this.from);return D(M,this.to)}}class b extends E{constructor(M,H,F,W){super(),this.loop=M,this.varKind=H,this.name=F,this.iterable=W}render(M){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(M)}optimizeNames(M,H){if(super.optimizeNames(M,H))return this.iterable=j(this.iterable,M,H),this}get names(){return P(super.names,this.iterable.names)}}class T extends h{constructor(M,H,F){super(),this.name=M,this.args=H,this.async=F}render(M){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(M)}}T.kind="func";class A extends p{render(M){return"return "+super.render(M)}}A.kind="return";class R extends h{render(M){let H="try"+super.render(M);return this.catch&&(H+=this.catch.render(M)),this.finally&&(H+=this.finally.render(M)),H}optimizeNodes(){var M,H;return super.optimizeNodes(),(M=this.catch)===null||M===void 0||M.optimizeNodes(),(H=this.finally)===null||H===void 0||H.optimizeNodes(),this}optimizeNames(M,H){var F,W;return super.optimizeNames(M,H),(F=this.catch)===null||F===void 0||F.optimizeNames(M,H),(W=this.finally)===null||W===void 0||W.optimizeNames(M,H),this}get names(){let M=super.names;return this.catch&&P(M,this.catch.names),this.finally&&P(M,this.finally.names),M}}class k extends h{constructor(M){super(),this.error=M}render(M){return`catch(${this.error})`+super.render(M)}}k.kind="catch";class x extends h{render(M){return"finally"+super.render(M)}}x.kind="finally";class N{constructor(M,H={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...H,_n:H.lines?` -`:""},this._extScope=M,this._scope=new n.Scope({parent:M}),this._nodes=[new m]}toString(){return this._root.render(this.opts)}name(M){return this._scope.name(M)}scopeName(M){return this._extScope.name(M)}scopeValue(M,H){let F=this._extScope.value(M,H);return(this._values[F.prefix]||(this._values[F.prefix]=new Set)).add(F),F}getScopeValue(M,H){return this._extScope.getValue(M,H)}scopeRefs(M){return this._extScope.scopeRefs(M,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(M,H,F,W){let $=this._scope.toName(H);return F!==void 0&&W&&(this._constants[$.str]=F),this._leafNode(new o(M,$,F)),$}const(M,H,F){return this._def(n.varKinds.const,M,H,F)}let(M,H,F){return this._def(n.varKinds.let,M,H,F)}var(M,H,F){return this._def(n.varKinds.var,M,H,F)}assign(M,H,F){return this._leafNode(new a(M,H,F))}add(M,H){return this._leafNode(new c(M,e.operators.ADD,H))}code(M){return typeof M=="function"?M():M!==t.nil&&this._leafNode(new f(M)),this}object(...M){let H=["{"];for(let[F,W]of M)H.length>1&&H.push(","),H.push(F),(F!==W||this.opts.es5)&&(H.push(":"),(0,t.addCodeArg)(H,W));return H.push("}"),new t._Code(H)}if(M,H,F){if(this._blockNode(new g(M)),H&&F)this.code(H).else().code(F).endIf();else if(H)this.code(H).endIf();else if(F)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(M){return this._elseNode(new g(M))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(g,y)}_for(M,H){return this._blockNode(M),H&&this.code(H).endFor(),this}for(M,H){return this._for(new S(M),H)}forRange(M,H,F,W,$=this.opts.es5?n.varKinds.var:n.varKinds.let){let ie=this._scope.toName(M);return this._for(new _($,ie,H,F),()=>W(ie))}forOf(M,H,F,W=n.varKinds.const){let $=this._scope.toName(M);if(this.opts.es5){let ie=H instanceof t.Name?H:this.var("_arr",H);return this.forRange("_i",0,(0,t._)`${ie}.length`,Re=>{this.var($,(0,t._)`${ie}[${Re}]`),F($)})}return this._for(new b("of",W,$,H),()=>F($))}forIn(M,H,F,W=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(M,(0,t._)`Object.keys(${H})`,F);let $=this._scope.toName(M);return this._for(new b("in",W,$,H),()=>F($))}endFor(){return this._endBlockNode(E)}label(M){return this._leafNode(new u(M))}break(M){return this._leafNode(new l(M))}return(M){let H=new A;if(this._blockNode(H),this.code(M),H.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(A)}try(M,H,F){if(!H&&!F)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new R;if(this._blockNode(W),this.code(M),H){let $=this.name("e");this._currNode=W.catch=new k($),H($)}return F&&(this._currNode=W.finally=new x,this.code(F)),this._endBlockNode(k,x)}throw(M){return this._leafNode(new d(M))}block(M,H){return this._blockStarts.push(this._nodes.length),M&&this.code(M).endBlock(H),this}endBlock(M){let H=this._blockStarts.pop();if(H===void 0)throw new Error("CodeGen: not in self-balancing block");let F=this._nodes.length-H;if(F<0||M!==void 0&&F!==M)throw new Error(`CodeGen: wrong number of nodes: ${F} vs ${M} expected`);return this._nodes.length=H,this}func(M,H=t.nil,F,W){return this._blockNode(new T(M,H,F)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(T)}optimize(M=1){for(;M-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(M){return this._currNode.nodes.push(M),this}_blockNode(M){this._currNode.nodes.push(M),this._nodes.push(M)}_endBlockNode(M,H){let F=this._currNode;if(F instanceof M||H&&F instanceof H)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${H?`${M.kind}/${H.kind}`:M.kind}"`)}_elseNode(M){let H=this._currNode;if(!(H instanceof g))throw new Error('CodeGen: "else" without "if"');return this._currNode=H.else=M,this}get _root(){return this._nodes[0]}get _currNode(){let M=this._nodes;return M[M.length-1]}set _currNode(M){let H=this._nodes;H[H.length-1]=M}}e.CodeGen=N;function P(U,M){for(let H in M)U[H]=(U[H]||0)+(M[H]||0);return U}function D(U,M){return M instanceof t._CodeOrName?P(U,M.names):U}function j(U,M,H){if(U instanceof t.Name)return F(U);if(!W(U))return U;return new t._Code(U._items.reduce(($,ie)=>(ie instanceof t.Name&&(ie=F(ie)),ie instanceof t._Code?$.push(...ie._items):$.push(ie),$),[]));function F($){let ie=H[$.str];return ie===void 0||M[$.str]!==1?$:(delete M[$.str],ie)}function W($){return $ instanceof t._Code&&$._items.some(ie=>ie instanceof t.Name&&M[ie.str]===1&&H[ie.str]!==void 0)}}function V(U,M){for(let H in M)U[H]=(U[H]||0)-(M[H]||0)}function Z(U){return typeof U=="boolean"||typeof U=="number"||U===null?!U:(0,t._)`!${z(U)}`}e.not=Z;var B=C(e.operators.AND);function G(...U){return U.reduce(B)}e.and=G;var X=C(e.operators.OR);function q(...U){return U.reduce(X)}e.or=q;function C(U){return(M,H)=>M===t.nil?H:H===t.nil?M:(0,t._)`${z(M)} ${U} ${z(H)}`}function z(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),cr=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;var t=bn(),n=X6();function r(T){let A={};for(let R of T)A[R]=!0;return A}e.toHash=r;function i(T,A){return typeof A=="boolean"?A:Object.keys(A).length===0?!0:(s(T,A),!o(A,T.self.RULES.all))}e.alwaysValidSchema=i;function s(T,A=T.schema){let{opts:R,self:k}=T;if(!R.strictSchema||typeof A=="boolean")return;let x=k.RULES.keywords;for(let N in A)x[N]||b(T,`unknown keyword: "${N}"`)}e.checkUnknownRules=s;function o(T,A){if(typeof T=="boolean")return!T;for(let R in T)if(A[R])return!0;return!1}e.schemaHasRules=o;function a(T,A){if(typeof T=="boolean")return!T;for(let R in T)if(R!=="$ref"&&A.all[R])return!0;return!1}e.schemaHasRulesButRef=a;function c({topSchemaRef:T,schemaPath:A},R,k,x){if(!x){if(typeof R=="number"||typeof R=="boolean")return R;if(typeof R=="string")return(0,t._)`${R}`}return(0,t._)`${T}${A}${(0,t.getProperty)(k)}`}e.schemaRefOrVal=c;function u(T){return f(decodeURIComponent(T))}e.unescapeFragment=u;function l(T){return encodeURIComponent(d(T))}e.escapeFragment=l;function d(T){return typeof T=="number"?`${T}`:T.replace(/~/g,"~0").replace(/\//g,"~1")}e.escapeJsonPointer=d;function f(T){return T.replace(/~1/g,"/").replace(/~0/g,"~")}e.unescapeJsonPointer=f;function p(T,A){if(Array.isArray(T))for(let R of T)A(R);else A(T)}e.eachItem=p;function h({mergeNames:T,mergeToName:A,mergeValues:R,resultToName:k}){return(x,N,P,D)=>{let j=P===void 0?N:P instanceof t.Name?(N instanceof t.Name?T(x,N,P):A(x,N,P),P):N instanceof t.Name?(A(x,P,N),N):R(N,P);return D===t.Name&&!(j instanceof t.Name)?k(x,j):j}}e.mergeEvaluated={props:h({mergeNames:(T,A,R)=>T.if((0,t._)`${R} !== true && ${A} !== undefined`,()=>{T.if((0,t._)`${A} === true`,()=>T.assign(R,!0),()=>T.assign(R,(0,t._)`${R} || {}`).code((0,t._)`Object.assign(${R}, ${A})`))}),mergeToName:(T,A,R)=>T.if((0,t._)`${R} !== true`,()=>{A===!0?T.assign(R,!0):(T.assign(R,(0,t._)`${R} || {}`),y(T,R,A))}),mergeValues:(T,A)=>T===!0?!0:{...T,...A},resultToName:m}),items:h({mergeNames:(T,A,R)=>T.if((0,t._)`${R} !== true && ${A} !== undefined`,()=>T.assign(R,(0,t._)`${A} === true ? true : ${R} > ${A} ? ${R} : ${A}`)),mergeToName:(T,A,R)=>T.if((0,t._)`${R} !== true`,()=>T.assign(R,A===!0?!0:(0,t._)`${R} > ${A} ? ${R} : ${A}`)),mergeValues:(T,A)=>T===!0?!0:Math.max(T,A),resultToName:(T,A)=>T.var("items",A)})};function m(T,A){if(A===!0)return T.var("props",!0);let R=T.var("props",(0,t._)`{}`);return A!==void 0&&y(T,R,A),R}e.evaluatedPropsToName=m;function y(T,A,R){Object.keys(R).forEach(k=>T.assign((0,t._)`${A}${(0,t.getProperty)(k)}`,!0))}e.setEvaluated=y;var g={};function E(T,A){return T.scopeValue("func",{ref:A,code:g[A.code]||(g[A.code]=new n._Code(A.code))})}e.useFunc=E;var S;(function(T){T[T.Num=0]="Num",T[T.Str=1]="Str"})(S||(e.Type=S={}));function _(T,A,R){if(T instanceof t.Name){let k=A===S.Num;return R?k?(0,t._)`"[" + ${T} + "]"`:(0,t._)`"['" + ${T} + "']"`:k?(0,t._)`"/" + ${T}`:(0,t._)`"/" + ${T}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return R?(0,t.getProperty)(T).toString():"/"+d(T)}e.getErrorPath=_;function b(T,A,R=T.opts.strictSchema){if(R){if(A=`strict mode: ${A}`,R===!0)throw new Error(A);T.self.logger.warn(A)}}e.checkStrictMode=b}),$_=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={data:new t.Name("data"),valCxt:new t.Name("valCxt"),instancePath:new t.Name("instancePath"),parentData:new t.Name("parentData"),parentDataProperty:new t.Name("parentDataProperty"),rootData:new t.Name("rootData"),dynamicAnchors:new t.Name("dynamicAnchors"),vErrors:new t.Name("vErrors"),errors:new t.Name("errors"),this:new t.Name("this"),self:new t.Name("self"),scope:new t.Name("scope"),json:new t.Name("json"),jsonPos:new t.Name("jsonPos"),jsonLen:new t.Name("jsonLen"),jsonPart:new t.Name("jsonPart")};e.default=n}),mY=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;var t=bn(),n=cr(),r=$_();e.keywordError={message:({keyword:y})=>(0,t.str)`must pass "${y}" keyword validation`},e.keyword$DataError={message:({keyword:y,schemaType:g})=>g?(0,t.str)`"${y}" keyword must be ${g} ($data)`:(0,t.str)`"${y}" keyword is invalid ($data)`};function i(y,g=e.keywordError,E,S){let{it:_}=y,{gen:b,compositeRule:T,allErrors:A}=_,R=d(y,g,E);S??(T||A)?c(b,R):u(_,(0,t._)`[${R}]`)}e.reportError=i;function s(y,g=e.keywordError,E){let{it:S}=y,{gen:_,compositeRule:b,allErrors:T}=S,A=d(y,g,E);c(_,A),b||T||u(S,r.default.vErrors)}e.reportExtraError=s;function o(y,g){y.assign(r.default.errors,g),y.if((0,t._)`${r.default.vErrors} !== null`,()=>y.if(g,()=>y.assign((0,t._)`${r.default.vErrors}.length`,g),()=>y.assign(r.default.vErrors,null)))}e.resetErrorsCount=o;function a({gen:y,keyword:g,schemaValue:E,data:S,errsCount:_,it:b}){if(_===void 0)throw new Error("ajv implementation error");let T=y.name("err");y.forRange("i",_,r.default.errors,A=>{y.const(T,(0,t._)`${r.default.vErrors}[${A}]`),y.if((0,t._)`${T}.instancePath === undefined`,()=>y.assign((0,t._)`${T}.instancePath`,(0,t.strConcat)(r.default.instancePath,b.errorPath))),y.assign((0,t._)`${T}.schemaPath`,(0,t.str)`${b.errSchemaPath}/${g}`),b.opts.verbose&&(y.assign((0,t._)`${T}.schema`,E),y.assign((0,t._)`${T}.data`,S))})}e.extendErrors=a;function c(y,g){let E=y.const("err",g);y.if((0,t._)`${r.default.vErrors} === null`,()=>y.assign(r.default.vErrors,(0,t._)`[${E}]`),(0,t._)`${r.default.vErrors}.push(${E})`),y.code((0,t._)`${r.default.errors}++`)}function u(y,g){let{gen:E,validateName:S,schemaEnv:_}=y;_.$async?E.throw((0,t._)`new ${y.ValidationError}(${g})`):(E.assign((0,t._)`${S}.errors`,g),E.return(!1))}var l={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function d(y,g,E){let{createErrors:S}=y.it;return S===!1?(0,t._)`{}`:f(y,g,E)}function f(y,g,E={}){let{gen:S,it:_}=y,b=[p(_,E),h(y,E)];return m(y,g,b),S.object(...b)}function p({errorPath:y},{instancePath:g}){let E=g?(0,t.str)`${y}${(0,n.getErrorPath)(g,n.Type.Str)}`:y;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,E)]}function h({keyword:y,it:{errSchemaPath:g}},{schemaPath:E,parentSchema:S}){let _=S?g:(0,t.str)`${g}/${y}`;return E&&(_=(0,t.str)`${_}${(0,n.getErrorPath)(E,n.Type.Str)}`),[l.schemaPath,_]}function m(y,{params:g,message:E},S){let{keyword:_,data:b,schemaValue:T,it:A}=y,{opts:R,propertyName:k,topSchemaRef:x,schemaPath:N}=A;S.push([l.keyword,_],[l.params,typeof g=="function"?g(y):g||(0,t._)`{}`]),R.messages&&S.push([l.message,typeof E=="function"?E(y):E]),R.verbose&&S.push([l.schema,T],[l.parentSchema,(0,t._)`${x}${N}`],[r.default.data,b]),k&&S.push([l.propertyName,k])}}),$$n=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=mY(),n=bn(),r=$_(),i={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?a(c,!1):typeof l=="object"&&l.$async===!0?u.return(r.default.data):(u.assign((0,n._)`${d}.errors`,null),u.return(!0))}e.topBoolOrEmptySchema=s;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),a(c)):l.var(u,!0)}e.boolOrEmptySchema=o;function a(c,u){let{gen:l,data:d}=c,f={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,t.reportError)(f,i,void 0,u)}}),nxt=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getRules=e.isJSONType=void 0;var t=["string","number","integer","boolean","null","object","array"],n=new Set(t);function r(s){return typeof s=="string"&&n.has(s)}e.isJSONType=r;function i(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=i}),rxt=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:i,self:s},o){let a=s.RULES.types[o];return a&&a!==!0&&n(i,a)}e.schemaHasRulesForType=t;function n(i,s){return s.rules.some(o=>r(i,o))}e.shouldUseGroup=n;function r(i,s){var o;return i[s.keyword]!==void 0||((o=s.definition.implements)===null||o===void 0?void 0:o.some(a=>i[a]!==void 0))}e.shouldUseRule=r}),Q6=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;var t=nxt(),n=rxt(),r=mY(),i=bn(),s=cr(),o;(function(S){S[S.Correct=0]="Correct",S[S.Wrong=1]="Wrong"})(o||(e.DataType=o={}));function a(S){let _=c(S.type);if(_.includes("null")){if(S.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!_.length&&S.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');S.nullable===!0&&_.push("null")}return _}e.getSchemaTypes=a;function c(S){let _=Array.isArray(S)?S:S?[S]:[];if(_.every(t.isJSONType))return _;throw new Error("type must be JSONType or JSONType[]: "+_.join(","))}e.getJSONTypes=c;function u(S,_){let{gen:b,data:T,opts:A}=S,R=d(_,A.coerceTypes),k=_.length>0&&!(R.length===0&&_.length===1&&(0,n.schemaHasRulesForType)(S,_[0]));if(k){let x=m(_,T,A.strictNumbers,o.Wrong);b.if(x,()=>{R.length?f(S,_,R):g(S)})}return k}e.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(S,_){return _?S.filter(b=>l.has(b)||_==="array"&&b==="array"):[]}function f(S,_,b){let{gen:T,data:A,opts:R}=S,k=T.let("dataType",(0,i._)`typeof ${A}`),x=T.let("coerced",(0,i._)`undefined`);R.coerceTypes==="array"&&T.if((0,i._)`${k} == 'object' && Array.isArray(${A}) && ${A}.length == 1`,()=>T.assign(A,(0,i._)`${A}[0]`).assign(k,(0,i._)`typeof ${A}`).if(m(_,A,R.strictNumbers),()=>T.assign(x,A))),T.if((0,i._)`${x} !== undefined`);for(let P of b)(l.has(P)||P==="array"&&R.coerceTypes==="array")&&N(P);T.else(),g(S),T.endIf(),T.if((0,i._)`${x} !== undefined`,()=>{T.assign(A,x),p(S,x)});function N(P){switch(P){case"string":T.elseIf((0,i._)`${k} == "number" || ${k} == "boolean"`).assign(x,(0,i._)`"" + ${A}`).elseIf((0,i._)`${A} === null`).assign(x,(0,i._)`""`);return;case"number":T.elseIf((0,i._)`${k} == "boolean" || ${A} === null - || (${k} == "string" && ${A} && ${A} == +${A})`).assign(x,(0,i._)`+${A}`);return;case"integer":T.elseIf((0,i._)`${k} === "boolean" || ${A} === null - || (${k} === "string" && ${A} && ${A} == +${A} && !(${A} % 1))`).assign(x,(0,i._)`+${A}`);return;case"boolean":T.elseIf((0,i._)`${A} === "false" || ${A} === 0 || ${A} === null`).assign(x,!1).elseIf((0,i._)`${A} === "true" || ${A} === 1`).assign(x,!0);return;case"null":T.elseIf((0,i._)`${A} === "" || ${A} === 0 || ${A} === false`),T.assign(x,null);return;case"array":T.elseIf((0,i._)`${k} === "string" || ${k} === "number" - || ${k} === "boolean" || ${A} === null`).assign(x,(0,i._)`[${A}]`)}}}function p({gen:S,parentData:_,parentDataProperty:b},T){S.if((0,i._)`${_} !== undefined`,()=>S.assign((0,i._)`${_}[${b}]`,T))}function h(S,_,b,T=o.Correct){let A=T===o.Correct?i.operators.EQ:i.operators.NEQ,R;switch(S){case"null":return(0,i._)`${_} ${A} null`;case"array":R=(0,i._)`Array.isArray(${_})`;break;case"object":R=(0,i._)`${_} && typeof ${_} == "object" && !Array.isArray(${_})`;break;case"integer":R=k((0,i._)`!(${_} % 1) && !isNaN(${_})`);break;case"number":R=k();break;default:return(0,i._)`typeof ${_} ${A} ${S}`}return T===o.Correct?R:(0,i.not)(R);function k(x=i.nil){return(0,i.and)((0,i._)`typeof ${_} == "number"`,x,b?(0,i._)`isFinite(${_})`:i.nil)}}e.checkDataType=h;function m(S,_,b,T){if(S.length===1)return h(S[0],_,b,T);let A,R=(0,s.toHash)(S);if(R.array&&R.object){let k=(0,i._)`typeof ${_} != "object"`;A=R.null?k:(0,i._)`!${_} || ${k}`,delete R.null,delete R.array,delete R.object}else A=i.nil;R.number&&delete R.integer;for(let k in R)A=(0,i.and)(A,h(k,_,b,T));return A}e.checkDataTypes=m;var y={message:({schema:S})=>`must be ${S}`,params:({schema:S,schemaValue:_})=>typeof S=="string"?(0,i._)`{type: ${S}}`:(0,i._)`{type: ${_}}`};function g(S){let _=E(S);(0,r.reportError)(_,y)}e.reportTypeError=g;function E(S){let{gen:_,data:b,schema:T}=S,A=(0,s.schemaRefOrVal)(S,T,"type");return{gen:_,keyword:"type",data:b,schema:T.type,schemaCode:A,schemaValue:A,parentSchema:T,params:{},it:S}}}),eer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=bn(),n=cr();function r(s,o){let{properties:a,items:c}=s.schema;if(o==="object"&&a)for(let u in a)i(s,u,a[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(s,l,u.default))}e.assignDefaults=r;function i(s,o,a){let{gen:c,compositeRule:u,data:l,opts:d}=s;if(a===void 0)return;let f=(0,t._)`${l}${(0,t.getProperty)(o)}`;if(u){(0,n.checkStrictMode)(s,`default is ignored for: ${f}`);return}let p=(0,t._)`${f} === undefined`;d.useDefaults==="empty"&&(p=(0,t._)`${p} || ${f} === null || ${f} === ""`),c.if(p,(0,t._)`${f} = ${(0,t.stringify)(a)}`)}}),pp=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateUnion=e.validateArray=e.usePattern=e.callValidateCode=e.schemaProperties=e.allSchemaProperties=e.noPropertyInData=e.propertyInData=e.isOwnProperty=e.hasPropFunc=e.reportMissingProp=e.checkMissingProp=e.checkReportMissingProp=void 0;var t=bn(),n=cr(),r=$_(),i=cr();function s(S,_){let{gen:b,data:T,it:A}=S;b.if(d(b,T,_,A.opts.ownProperties),()=>{S.setParams({missingProperty:(0,t._)`${_}`},!0),S.error()})}e.checkReportMissingProp=s;function o({gen:S,data:_,it:{opts:b}},T,A){return(0,t.or)(...T.map(R=>(0,t.and)(d(S,_,R,b.ownProperties),(0,t._)`${A} = ${R}`)))}e.checkMissingProp=o;function a(S,_){S.setParams({missingProperty:_},!0),S.error()}e.reportMissingProp=a;function c(S){return S.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,t._)`Object.prototype.hasOwnProperty`})}e.hasPropFunc=c;function u(S,_,b){return(0,t._)`${c(S)}.call(${_}, ${b})`}e.isOwnProperty=u;function l(S,_,b,T){let A=(0,t._)`${_}${(0,t.getProperty)(b)} !== undefined`;return T?(0,t._)`${A} && ${u(S,_,b)}`:A}e.propertyInData=l;function d(S,_,b,T){let A=(0,t._)`${_}${(0,t.getProperty)(b)} === undefined`;return T?(0,t.or)(A,(0,t.not)(u(S,_,b))):A}e.noPropertyInData=d;function f(S){return S?Object.keys(S).filter(_=>_!=="__proto__"):[]}e.allSchemaProperties=f;function p(S,_){return f(_).filter(b=>!(0,n.alwaysValidSchema)(S,_[b]))}e.schemaProperties=p;function h({schemaCode:S,data:_,it:{gen:b,topSchemaRef:T,schemaPath:A,errorPath:R},it:k},x,N,P){let D=P?(0,t._)`${S}, ${_}, ${T}${A}`:_,j=[[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,R)],[r.default.parentData,k.parentData],[r.default.parentDataProperty,k.parentDataProperty],[r.default.rootData,r.default.rootData]];k.opts.dynamicRef&&j.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);let V=(0,t._)`${D}, ${b.object(...j)}`;return N!==t.nil?(0,t._)`${x}.call(${N}, ${V})`:(0,t._)`${x}(${V})`}e.callValidateCode=h;var m=(0,t._)`new RegExp`;function y({gen:S,it:{opts:_}},b){let T=_.unicodeRegExp?"u":"",{regExp:A}=_.code,R=A(b,T);return S.scopeValue("pattern",{key:R.toString(),ref:R,code:(0,t._)`${A.code==="new RegExp"?m:(0,i.useFunc)(S,A)}(${b}, ${T})`})}e.usePattern=y;function g(S){let{gen:_,data:b,keyword:T,it:A}=S,R=_.name("valid");if(A.allErrors){let x=_.let("valid",!0);return k(()=>_.assign(x,!1)),x}return _.var(R,!0),k(()=>_.break()),R;function k(x){let N=_.const("len",(0,t._)`${b}.length`);_.forRange("i",0,N,P=>{S.subschema({keyword:T,dataProp:P,dataPropType:n.Type.Num},R),_.if((0,t.not)(R),x)})}}e.validateArray=g;function E(S){let{gen:_,schema:b,keyword:T,it:A}=S;if(!Array.isArray(b))throw new Error("ajv implementation error");if(b.some(N=>(0,n.alwaysValidSchema)(A,N))&&!A.opts.unevaluated)return;let k=_.let("valid",!1),x=_.name("_valid");_.block(()=>b.forEach((N,P)=>{let D=S.subschema({keyword:T,schemaProp:P,compositeRule:!0},x);_.assign(k,(0,t._)`${k} || ${x}`),S.mergeValidEvaluated(D,x)||_.if((0,t.not)(k))})),S.result(k,()=>S.reset(),()=>S.error(!0))}e.validateUnion=E}),ter=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=bn(),n=$_(),r=pp(),i=mY();function s(p,h){let{gen:m,keyword:y,schema:g,parentSchema:E,it:S}=p,_=h.macro.call(S.self,g,E,S),b=l(m,y,_);S.opts.validateSchema!==!1&&S.self.validateSchema(_,!0);let T=m.name("valid");p.subschema({schema:_,schemaPath:t.nil,errSchemaPath:`${S.errSchemaPath}/${y}`,topSchemaRef:b,compositeRule:!0},T),p.pass(T,()=>p.error(!0))}e.macroKeywordCode=s;function o(p,h){var m;let{gen:y,keyword:g,schema:E,parentSchema:S,$data:_,it:b}=p;u(b,h);let T=!_&&h.compile?h.compile.call(b.self,E,S,b):h.validate,A=l(y,g,T),R=y.let("valid");p.block$data(R,k),p.ok((m=h.valid)!==null&&m!==void 0?m:R);function k(){if(h.errors===!1)P(),h.modifying&&a(p),D(()=>p.error());else{let j=h.async?x():N();h.modifying&&a(p),D(()=>c(p,j))}}function x(){let j=y.let("ruleErrs",null);return y.try(()=>P((0,t._)`await `),V=>y.assign(R,!1).if((0,t._)`${V} instanceof ${b.ValidationError}`,()=>y.assign(j,(0,t._)`${V}.errors`),()=>y.throw(V))),j}function N(){let j=(0,t._)`${A}.errors`;return y.assign(j,null),P(t.nil),j}function P(j=h.async?(0,t._)`await `:t.nil){let V=b.opts.passContext?n.default.this:n.default.self,Z=!("compile"in h&&!_||h.schema===!1);y.assign(R,(0,t._)`${j}${(0,r.callValidateCode)(p,A,V,Z)}`,h.modifying)}function D(j){var V;y.if((0,t.not)((V=h.valid)!==null&&V!==void 0?V:R),j)}}e.funcKeywordCode=o;function a(p){let{gen:h,data:m,it:y}=p;h.if(y.parentData,()=>h.assign(m,(0,t._)`${y.parentData}[${y.parentDataProperty}]`))}function c(p,h){let{gen:m}=p;m.if((0,t._)`Array.isArray(${h})`,()=>{m.assign(n.default.vErrors,(0,t._)`${n.default.vErrors} === null ? ${h} : ${n.default.vErrors}.concat(${h})`).assign(n.default.errors,(0,t._)`${n.default.vErrors}.length`),(0,i.extendErrors)(p)},()=>p.error())}function u({schemaEnv:p},h){if(h.async&&!p.$async)throw new Error("async keyword in sync schema")}function l(p,h,m){if(m===void 0)throw new Error(`keyword "${h}" failed to compile`);return p.scopeValue("keyword",typeof m=="function"?{ref:m}:{ref:m,code:(0,t.stringify)(m)})}function d(p,h,m=!1){return!h.length||h.some(y=>y==="array"?Array.isArray(p):y==="object"?p&&typeof p=="object"&&!Array.isArray(p):typeof p==y||m&&typeof p>"u")}e.validSchemaType=d;function f({schema:p,opts:h,self:m,errSchemaPath:y},g,E){if(Array.isArray(g.keyword)?!g.keyword.includes(E):g.keyword!==E)throw new Error("ajv implementation error");let S=g.dependencies;if(S?.some(_=>!Object.prototype.hasOwnProperty.call(p,_)))throw new Error(`parent schema must have dependencies of ${E}: ${S.join(",")}`);if(g.validateSchema&&!g.validateSchema(p[E])){let b=`keyword "${E}" value is invalid at path "${y}": `+m.errorsText(g.validateSchema.errors);if(h.validateSchema==="log")m.logger.error(b);else throw new Error(b)}}e.validateKeywordUsage=f}),ner=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=bn(),n=cr();function r(o,{keyword:a,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:f}){if(a!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){let p=o.schema[a];return c===void 0?{schema:p,schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(a)}`,errSchemaPath:`${o.errSchemaPath}/${a}`}:{schema:p[c],schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(a)}${(0,t.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${a}/${(0,n.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||f===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:f,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}e.getSubschema=r;function i(o,a,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:f}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:p}=a;if(c!==void 0){let{errorPath:m,dataPathArr:y,opts:g}=a,E=p.let("data",(0,t._)`${a.data}${(0,t.getProperty)(c)}`,!0);h(E),o.errorPath=(0,t.str)`${m}${(0,n.getErrorPath)(c,u,g.jsPropertySyntax)}`,o.parentDataProperty=(0,t._)`${c}`,o.dataPathArr=[...y,o.parentDataProperty]}if(l!==void 0){let m=l instanceof t.Name?l:p.let("data",l,!0);h(m),f!==void 0&&(o.propertyName=f)}d&&(o.dataTypes=d);function h(m){o.data=m,o.dataLevel=a.dataLevel+1,o.dataTypes=[],a.definedProperties=new Set,o.parentData=a.data,o.dataNames=[...a.dataNames,m]}}e.extendSubschemaData=i;function s(o,{jtdDiscriminator:a,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(o.compositeRule=u),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=a,o.jtdMetadata=c}e.extendSubschemaMode=s}),ixt=Je((e,t)=>{t.exports=function n(r,i){if(r===i)return!0;if(r&&i&&typeof r=="object"&&typeof i=="object"){if(r.constructor!==i.constructor)return!1;var s,o,a;if(Array.isArray(r)){if(s=r.length,s!=i.length)return!1;for(o=s;o--!==0;)if(!n(r[o],i[o]))return!1;return!0}if(r.constructor===RegExp)return r.source===i.source&&r.flags===i.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===i.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===i.toString();if(a=Object.keys(r),s=a.length,s!==Object.keys(i).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,a[o]))return!1;for(o=s;o--!==0;){var c=a[o];if(!n(r[c],i[c]))return!1}return!0}return r!==r&&i!==i}}),rer=Je((e,t)=>{var n=t.exports=function(s,o,a){typeof o=="function"&&(a=o,o={}),a=o.cb||a;var c=typeof a=="function"?a:a.pre||function(){},u=a.post||function(){};r(o,c,u,s,"",s)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function r(s,o,a,c,u,l,d,f,p,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,f,p,h);for(var m in c){var y=c[m];if(Array.isArray(y)){if(m in n.arrayKeywords)for(var g=0;g{Object.defineProperty(e,"__esModule",{value:!0}),e.getSchemaRefs=e.resolveUrl=e.normalizeId=e._getFullPath=e.getFullPath=e.inlineRef=void 0;var t=cr(),n=ixt(),r=rer(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(y,g=!0){return typeof y=="boolean"?!0:g===!0?!a(y):g?c(y)<=g:!1}e.inlineRef=s;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function a(y){for(let g in y){if(o.has(g))return!0;let E=y[g];if(Array.isArray(E)&&E.some(a)||typeof E=="object"&&a(E))return!0}return!1}function c(y){let g=0;for(let E in y){if(E==="$ref")return 1/0;if(g++,!i.has(E)&&(typeof y[E]=="object"&&(0,t.eachItem)(y[E],S=>g+=c(S)),g===1/0))return 1/0}return g}function u(y,g="",E){E!==!1&&(g=f(g));let S=y.parse(g);return l(y,S)}e.getFullPath=u;function l(y,g){return y.serialize(g).split("#")[0]+"#"}e._getFullPath=l;var d=/#\/?$/;function f(y){return y?y.replace(d,""):""}e.normalizeId=f;function p(y,g,E){return E=f(E),y.resolve(g,E)}e.resolveUrl=p;var h=/^[a-z_][-a-z0-9._]*$/i;function m(y,g){if(typeof y=="boolean")return{};let{schemaId:E,uriResolver:S}=this.opts,_=f(y[E]||g),b={"":_},T=u(S,_,!1),A={},R=new Set;return r(y,{allKeys:!0},(N,P,D,j)=>{if(j===void 0)return;let V=T+P,Z=b[j];typeof N[E]=="string"&&(Z=B.call(this,N[E])),G.call(this,N.$anchor),G.call(this,N.$dynamicAnchor),b[P]=Z;function B(X){let q=this.opts.uriResolver.resolve;if(X=f(Z?q(Z,X):X),R.has(X))throw x(X);R.add(X);let C=this.refs[X];return typeof C=="string"&&(C=this.refs[C]),typeof C=="object"?k(N,C.schema,X):X!==f(V)&&(X[0]==="#"?(k(N,A[X],X),A[X]=N):this.refs[X]=V),X}function G(X){if(typeof X=="string"){if(!h.test(X))throw new Error(`invalid anchor "${X}"`);B.call(this,`#${X}`)}}}),A;function k(N,P,D){if(P!==void 0&&!n(N,P))throw x(D)}function x(N){return new Error(`reference "${N}" resolves to more than one schema`)}}e.getSchemaRefs=m}),yY=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=$$n(),n=Q6(),r=rxt(),i=Q6(),s=eer(),o=ter(),a=ner(),c=bn(),u=$_(),l=gY(),d=cr(),f=mY();function p(K){if(T(K)&&(R(K),b(K))){g(K);return}h(K,()=>(0,t.topBoolOrEmptySchema)(K))}e.validateFunctionCode=p;function h({gen:K,validateName:Q,schema:ae,schemaEnv:ge,opts:Se},Ot){Se.code.es5?K.func(Q,(0,c._)`${u.default.data}, ${u.default.valCxt}`,ge.$async,()=>{K.code((0,c._)`"use strict"; ${S(ae,Se)}`),y(K,Se),K.code(Ot)}):K.func(Q,(0,c._)`${u.default.data}, ${m(Se)}`,ge.$async,()=>K.code(S(ae,Se)).code(Ot))}function m(K){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${K.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function y(K,Q){K.if(u.default.valCxt,()=>{K.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),K.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),K.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),K.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),Q.dynamicRef&&K.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{K.var(u.default.instancePath,(0,c._)`""`),K.var(u.default.parentData,(0,c._)`undefined`),K.var(u.default.parentDataProperty,(0,c._)`undefined`),K.var(u.default.rootData,u.default.data),Q.dynamicRef&&K.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function g(K){let{schema:Q,opts:ae,gen:ge}=K;h(K,()=>{ae.$comment&&Q.$comment&&j(K),N(K),ge.let(u.default.vErrors,null),ge.let(u.default.errors,0),ae.unevaluated&&E(K),k(K),V(K)})}function E(K){let{gen:Q,validateName:ae}=K;K.evaluated=Q.const("evaluated",(0,c._)`${ae}.evaluated`),Q.if((0,c._)`${K.evaluated}.dynamicProps`,()=>Q.assign((0,c._)`${K.evaluated}.props`,(0,c._)`undefined`)),Q.if((0,c._)`${K.evaluated}.dynamicItems`,()=>Q.assign((0,c._)`${K.evaluated}.items`,(0,c._)`undefined`))}function S(K,Q){let ae=typeof K=="object"&&K[Q.schemaId];return ae&&(Q.code.source||Q.code.process)?(0,c._)`/*# sourceURL=${ae} */`:c.nil}function _(K,Q){if(T(K)&&(R(K),b(K))){A(K,Q);return}(0,t.boolOrEmptySchema)(K,Q)}function b({schema:K,self:Q}){if(typeof K=="boolean")return!K;for(let ae in K)if(Q.RULES.all[ae])return!0;return!1}function T(K){return typeof K.schema!="boolean"}function A(K,Q){let{schema:ae,gen:ge,opts:Se}=K;Se.$comment&&ae.$comment&&j(K),P(K),D(K);let Ot=ge.const("_errs",u.default.errors);k(K,Ot),ge.var(Q,(0,c._)`${Ot} === ${u.default.errors}`)}function R(K){(0,d.checkUnknownRules)(K),x(K)}function k(K,Q){if(K.opts.jtd)return B(K,[],!1,Q);let ae=(0,n.getSchemaTypes)(K.schema),ge=(0,n.coerceAndCheckDataType)(K,ae);B(K,ae,!ge,Q)}function x(K){let{schema:Q,errSchemaPath:ae,opts:ge,self:Se}=K;Q.$ref&&ge.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(Q,Se.RULES)&&Se.logger.warn(`$ref: keywords ignored in schema at path "${ae}"`)}function N(K){let{schema:Q,opts:ae}=K;Q.default!==void 0&&ae.useDefaults&&ae.strictSchema&&(0,d.checkStrictMode)(K,"default is ignored in the schema root")}function P(K){let Q=K.schema[K.opts.schemaId];Q&&(K.baseId=(0,l.resolveUrl)(K.opts.uriResolver,K.baseId,Q))}function D(K){if(K.schema.$async&&!K.schemaEnv.$async)throw new Error("async schema in sync schema")}function j({gen:K,schemaEnv:Q,schema:ae,errSchemaPath:ge,opts:Se}){let Ot=ae.$comment;if(Se.$comment===!0)K.code((0,c._)`${u.default.self}.logger.log(${Ot})`);else if(typeof Se.$comment=="function"){let Be=(0,c.str)`${ge}/$comment`,Dn=K.scopeValue("root",{ref:Q.root});K.code((0,c._)`${u.default.self}.opts.$comment(${Ot}, ${Be}, ${Dn}.schema)`)}}function V(K){let{gen:Q,schemaEnv:ae,validateName:ge,ValidationError:Se,opts:Ot}=K;ae.$async?Q.if((0,c._)`${u.default.errors} === 0`,()=>Q.return(u.default.data),()=>Q.throw((0,c._)`new ${Se}(${u.default.vErrors})`)):(Q.assign((0,c._)`${ge}.errors`,u.default.vErrors),Ot.unevaluated&&Z(K),Q.return((0,c._)`${u.default.errors} === 0`))}function Z({gen:K,evaluated:Q,props:ae,items:ge}){ae instanceof c.Name&&K.assign((0,c._)`${Q}.props`,ae),ge instanceof c.Name&&K.assign((0,c._)`${Q}.items`,ge)}function B(K,Q,ae,ge){let{gen:Se,schema:Ot,data:Be,allErrors:Dn,opts:ur,self:tn}=K,{RULES:lr}=tn;if(Ot.$ref&&(ur.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(Ot,lr))){Se.block(()=>$(K,"$ref",lr.all.$ref.definition));return}ur.jtd||X(K,Q),Se.block(()=>{for(let bs of lr.rules)Ju(bs);Ju(lr.post)});function Ju(bs){(0,r.shouldUseGroup)(Ot,bs)&&(bs.type?(Se.if((0,i.checkDataType)(bs.type,Be,ur.strictNumbers)),G(K,bs),Q.length===1&&Q[0]===bs.type&&ae&&(Se.else(),(0,i.reportTypeError)(K)),Se.endIf()):G(K,bs),Dn||Se.if((0,c._)`${u.default.errors} === ${ge||0}`))}}function G(K,Q){let{gen:ae,schema:ge,opts:{useDefaults:Se}}=K;Se&&(0,s.assignDefaults)(K,Q.type),ae.block(()=>{for(let Ot of Q.rules)(0,r.shouldUseRule)(ge,Ot)&&$(K,Ot.keyword,Ot.definition,Q.type)})}function X(K,Q){K.schemaEnv.meta||!K.opts.strictTypes||(q(K,Q),K.opts.allowUnionTypes||C(K,Q),z(K,K.dataTypes))}function q(K,Q){if(Q.length){if(!K.dataTypes.length){K.dataTypes=Q;return}Q.forEach(ae=>{M(K.dataTypes,ae)||F(K,`type "${ae}" not allowed by context "${K.dataTypes.join(",")}"`)}),H(K,Q)}}function C(K,Q){Q.length>1&&!(Q.length===2&&Q.includes("null"))&&F(K,"use allowUnionTypes to allow union type keyword")}function z(K,Q){let ae=K.self.RULES.all;for(let ge in ae){let Se=ae[ge];if(typeof Se=="object"&&(0,r.shouldUseRule)(K.schema,Se)){let{type:Ot}=Se.definition;Ot.length&&!Ot.some(Be=>U(Q,Be))&&F(K,`missing type "${Ot.join(",")}" for keyword "${ge}"`)}}}function U(K,Q){return K.includes(Q)||Q==="number"&&K.includes("integer")}function M(K,Q){return K.includes(Q)||Q==="integer"&&K.includes("number")}function H(K,Q){let ae=[];for(let ge of K.dataTypes)M(Q,ge)?ae.push(ge):Q.includes("integer")&&ge==="number"&&ae.push("integer");K.dataTypes=ae}function F(K,Q){let ae=K.schemaEnv.baseId+K.errSchemaPath;Q+=` at "${ae}" (strictTypes)`,(0,d.checkStrictMode)(K,Q,K.opts.strictTypes)}class W{constructor(Q,ae,ge){if((0,o.validateKeywordUsage)(Q,ae,ge),this.gen=Q.gen,this.allErrors=Q.allErrors,this.keyword=ge,this.data=Q.data,this.schema=Q.schema[ge],this.$data=ae.$data&&Q.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(Q,this.schema,ge,this.$data),this.schemaType=ae.schemaType,this.parentSchema=Q.schema,this.params={},this.it=Q,this.def=ae,this.$data)this.schemaCode=Q.gen.const("vSchema",Te(this.$data,Q));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,ae.schemaType,ae.allowUndefined))throw new Error(`${ge} value must be ${JSON.stringify(ae.schemaType)}`);("code"in ae?ae.trackErrors:ae.errors!==!1)&&(this.errsCount=Q.gen.const("_errs",u.default.errors))}result(Q,ae,ge){this.failResult((0,c.not)(Q),ae,ge)}failResult(Q,ae,ge){this.gen.if(Q),ge?ge():this.error(),ae?(this.gen.else(),ae(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(Q,ae){this.failResult((0,c.not)(Q),void 0,ae)}fail(Q){if(Q===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(Q),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(Q){if(!this.$data)return this.fail(Q);let{schemaCode:ae}=this;this.fail((0,c._)`${ae} !== undefined && (${(0,c.or)(this.invalid$data(),Q)})`)}error(Q,ae,ge){if(ae){this.setParams(ae),this._error(Q,ge),this.setParams({});return}this._error(Q,ge)}_error(Q,ae){(Q?f.reportExtraError:f.reportError)(this,this.def.error,ae)}$dataError(){(0,f.reportError)(this,this.def.$dataError||f.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f.resetErrorsCount)(this.gen,this.errsCount)}ok(Q){this.allErrors||this.gen.if(Q)}setParams(Q,ae){ae?Object.assign(this.params,Q):this.params=Q}block$data(Q,ae,ge=c.nil){this.gen.block(()=>{this.check$data(Q,ge),ae()})}check$data(Q=c.nil,ae=c.nil){if(!this.$data)return;let{gen:ge,schemaCode:Se,schemaType:Ot,def:Be}=this;ge.if((0,c.or)((0,c._)`${Se} === undefined`,ae)),Q!==c.nil&&ge.assign(Q,!0),(Ot.length||Be.validateSchema)&&(ge.elseIf(this.invalid$data()),this.$dataError(),Q!==c.nil&&ge.assign(Q,!1)),ge.else()}invalid$data(){let{gen:Q,schemaCode:ae,schemaType:ge,def:Se,it:Ot}=this;return(0,c.or)(Be(),Dn());function Be(){if(ge.length){if(!(ae instanceof c.Name))throw new Error("ajv implementation error");let ur=Array.isArray(ge)?ge:[ge];return(0,c._)`${(0,i.checkDataTypes)(ur,ae,Ot.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Dn(){if(Se.validateSchema){let ur=Q.scopeValue("validate$data",{ref:Se.validateSchema});return(0,c._)`!${ur}(${ae})`}return c.nil}}subschema(Q,ae){let ge=(0,a.getSubschema)(this.it,Q);(0,a.extendSubschemaData)(ge,this.it,Q),(0,a.extendSubschemaMode)(ge,Q);let Se={...this.it,...ge,items:void 0,props:void 0};return _(Se,ae),Se}mergeEvaluated(Q,ae){let{it:ge,gen:Se}=this;ge.opts.unevaluated&&(ge.props!==!0&&Q.props!==void 0&&(ge.props=d.mergeEvaluated.props(Se,Q.props,ge.props,ae)),ge.items!==!0&&Q.items!==void 0&&(ge.items=d.mergeEvaluated.items(Se,Q.items,ge.items,ae)))}mergeValidEvaluated(Q,ae){let{it:ge,gen:Se}=this;if(ge.opts.unevaluated&&(ge.props!==!0||ge.items!==!0))return Se.if(ae,()=>this.mergeEvaluated(Q,c.Name)),!0}}e.KeywordCxt=W;function $(K,Q,ae,ge){let Se=new W(K,ae,Q);"code"in ae?ae.code(Se,ge):Se.$data&&ae.validate?(0,o.funcKeywordCode)(Se,ae):"macro"in ae?(0,o.macroKeywordCode)(Se,ae):(ae.compile||ae.validate)&&(0,o.funcKeywordCode)(Se,ae)}var ie=/^\/(?:[^~]|~0|~1)*$/,Re=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Te(K,{dataLevel:Q,dataNames:ae,dataPathArr:ge}){let Se,Ot;if(K==="")return u.default.rootData;if(K[0]==="/"){if(!ie.test(K))throw new Error(`Invalid JSON-pointer: ${K}`);Se=K,Ot=u.default.rootData}else{let tn=Re.exec(K);if(!tn)throw new Error(`Invalid JSON-pointer: ${K}`);let lr=+tn[1];if(Se=tn[2],Se==="#"){if(lr>=Q)throw new Error(ur("property/index",lr));return ge[Q-lr]}if(lr>Q)throw new Error(ur("data",lr));if(Ot=ae[Q-lr],!Se)return Ot}let Be=Ot,Dn=Se.split("/");for(let tn of Dn)tn&&(Ot=(0,c._)`${Ot}${(0,c.getProperty)((0,d.unescapeJsonPointer)(tn))}`,Be=(0,c._)`${Be} && ${Ot}`);return Be;function ur(tn,lr){return`Cannot access ${tn} ${lr} levels up, current level is ${Q}`}}e.getData=Te}),Vbe=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});class t extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}}e.default=t}),SY=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=gY();class n extends Error{constructor(i,s,o,a){super(a||`can't resolve reference ${o} from id ${s}`),this.missingRef=(0,t.resolveUrl)(i,s,o),this.missingSchema=(0,t.normalizeId)((0,t.getFullPath)(i,this.missingRef))}}e.default=n}),Wbe=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=bn(),n=Vbe(),r=$_(),i=gY(),s=cr(),o=yY();class a{constructor(E){var S;this.refs={},this.dynamicAnchors={};let _;typeof E.schema=="object"&&(_=E.schema),this.schema=E.schema,this.schemaId=E.schemaId,this.root=E.root||this,this.baseId=(S=E.baseId)!==null&&S!==void 0?S:(0,i.normalizeId)(_?.[E.schemaId||"$id"]),this.schemaPath=E.schemaPath,this.localRefs=E.localRefs,this.meta=E.meta,this.$async=_?.$async,this.refs={}}}e.SchemaEnv=a;function c(g){let E=d.call(this,g);if(E)return E;let S=(0,i.getFullPath)(this.opts.uriResolver,g.root.baseId),{es5:_,lines:b}=this.opts.code,{ownProperties:T}=this.opts,A=new t.CodeGen(this.scope,{es5:_,lines:b,ownProperties:T}),R;g.$async&&(R=A.scopeValue("Error",{ref:n.default,code:(0,t._)`require("ajv/dist/runtime/validation_error").default`}));let k=A.scopeName("validate");g.validateName=k;let x={gen:A,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:A.scopeValue("schema",this.opts.code.source===!0?{ref:g.schema,code:(0,t.stringify)(g.schema)}:{ref:g.schema}),validateName:k,ValidationError:R,schema:g.schema,schemaEnv:g,rootId:S,baseId:g.baseId||S,schemaPath:t.nil,errSchemaPath:g.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,t._)`""`,opts:this.opts,self:this},N;try{this._compilations.add(g),(0,o.validateFunctionCode)(x),A.optimize(this.opts.code.optimize);let P=A.toString();N=`${A.scopeRefs(r.default.scope)}return ${P}`,this.opts.code.process&&(N=this.opts.code.process(N,g));let j=new Function(`${r.default.self}`,`${r.default.scope}`,N)(this,this.scope.get());if(this.scope.value(k,{ref:j}),j.errors=null,j.schema=g.schema,j.schemaEnv=g,g.$async&&(j.$async=!0),this.opts.code.source===!0&&(j.source={validateName:k,validateCode:P,scopeValues:A._values}),this.opts.unevaluated){let{props:V,items:Z}=x;j.evaluated={props:V instanceof t.Name?void 0:V,items:Z instanceof t.Name?void 0:Z,dynamicProps:V instanceof t.Name,dynamicItems:Z instanceof t.Name},j.source&&(j.source.evaluated=(0,t.stringify)(j.evaluated))}return g.validate=j,g}catch(P){throw delete g.validate,delete g.validateName,N&&this.logger.error("Error compiling schema, function code:",N),P}finally{this._compilations.delete(g)}}e.compileSchema=c;function u(g,E,S){var _;S=(0,i.resolveUrl)(this.opts.uriResolver,E,S);let b=g.refs[S];if(b)return b;let T=p.call(this,g,S);if(T===void 0){let A=(_=g.localRefs)===null||_===void 0?void 0:_[S],{schemaId:R}=this.opts;A&&(T=new a({schema:A,schemaId:R,root:g,baseId:E}))}if(T!==void 0)return g.refs[S]=l.call(this,T)}e.resolveRef=u;function l(g){return(0,i.inlineRef)(g.schema,this.opts.inlineRefs)?g.schema:g.validate?g:c.call(this,g)}function d(g){for(let E of this._compilations)if(f(E,g))return E}e.getCompilingSchema=d;function f(g,E){return g.schema===E.schema&&g.root===E.root&&g.baseId===E.baseId}function p(g,E){let S;for(;typeof(S=this.refs[E])=="string";)E=S;return S||this.schemas[E]||h.call(this,g,E)}function h(g,E){let S=this.opts.uriResolver.parse(E),_=(0,i._getFullPath)(this.opts.uriResolver,S),b=(0,i.getFullPath)(this.opts.uriResolver,g.baseId,void 0);if(Object.keys(g.schema).length>0&&_===b)return y.call(this,S,g);let T=(0,i.normalizeId)(_),A=this.refs[T]||this.schemas[T];if(typeof A=="string"){let R=h.call(this,g,A);return typeof R?.schema!="object"?void 0:y.call(this,S,R)}if(typeof A?.schema=="object"){if(A.validate||c.call(this,A),T===(0,i.normalizeId)(E)){let{schema:R}=A,{schemaId:k}=this.opts,x=R[k];return x&&(b=(0,i.resolveUrl)(this.opts.uriResolver,b,x)),new a({schema:R,schemaId:k,root:g,baseId:b})}return y.call(this,S,A)}}e.resolveSchema=h;var m=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function y(g,{baseId:E,schema:S,root:_}){var b;if(((b=g.fragment)===null||b===void 0?void 0:b[0])!=="/")return;for(let R of g.fragment.slice(1).split("/")){if(typeof S=="boolean")return;let k=S[(0,s.unescapeFragment)(R)];if(k===void 0)return;S=k;let x=typeof S=="object"&&S[this.opts.schemaId];!m.has(R)&&x&&(E=(0,i.resolveUrl)(this.opts.uriResolver,E,x))}let T;if(typeof S!="boolean"&&S.$ref&&!(0,s.schemaHasRulesButRef)(S,this.RULES)){let R=(0,i.resolveUrl)(this.opts.uriResolver,E,S.$ref);T=h.call(this,_,R)}let{schemaId:A}=this.opts;if(T=T||new a({schema:S,schemaId:A,root:_,baseId:E}),T.schema!==T.root.schema)return T}}),ier=Je((e,t)=>{t.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),ser=Je((e,t)=>{var n={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};t.exports={HEX:n}}),oer=Je((e,t)=>{var{HEX:n}=ser(),r=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function i(g){if(u(g,".")<3)return{host:g,isIPV4:!1};let E=g.match(r)||[],[S]=E;return S?{host:c(S,"."),isIPV4:!0}:{host:g,isIPV4:!1}}function s(g,E=!1){let S="",_=!0;for(let b of g){if(n[b]===void 0)return;b!=="0"&&_===!0&&(_=!1),_||(S+=b)}return E&&S.length===0&&(S="0"),S}function o(g){let E=0,S={error:!1,address:"",zone:""},_=[],b=[],T=!1,A=!1,R=!1;function k(){if(b.length){if(T===!1){let x=s(b);if(x!==void 0)_.push(x);else return S.error=!0,!1}b.length=0}return!0}for(let x=0;x7){S.error=!0;break}x-1>=0&&g[x-1]===":"&&(A=!0);continue}else if(N==="%"){if(!k())break;T=!0}else{b.push(N);continue}}return b.length&&(T?S.zone=b.join(""):R?_.push(b.join("")):_.push(s(b))),S.address=_.join(""),S}function a(g){if(u(g,":")<2)return{host:g,isIPV6:!1};let E=o(g);if(E.error)return{host:g,isIPV6:!1};{let S=E.address,_=E.address;return E.zone&&(S+="%"+E.zone,_+="%25"+E.zone),{host:S,escapedHost:_,isIPV6:!0}}}function c(g,E){let S="",_=!0,b=g.length;for(let T=0;T{var n=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function i(_){return typeof _.secure=="boolean"?_.secure:String(_.scheme).toLowerCase()==="wss"}function s(_){return _.host||(_.error=_.error||"HTTP URIs must have a host."),_}function o(_){let b=String(_.scheme).toLowerCase()==="https";return(_.port===(b?443:80)||_.port==="")&&(_.port=void 0),_.path||(_.path="/"),_}function a(_){return _.secure=i(_),_.resourceName=(_.path||"/")+(_.query?"?"+_.query:""),_.path=void 0,_.query=void 0,_}function c(_){if((_.port===(i(_)?443:80)||_.port==="")&&(_.port=void 0),typeof _.secure=="boolean"&&(_.scheme=_.secure?"wss":"ws",_.secure=void 0),_.resourceName){let[b,T]=_.resourceName.split("?");_.path=b&&b!=="/"?b:void 0,_.query=T,_.resourceName=void 0}return _.fragment=void 0,_}function u(_,b){if(!_.path)return _.error="URN can not be parsed",_;let T=_.path.match(r);if(T){let A=b.scheme||_.scheme||"urn";_.nid=T[1].toLowerCase(),_.nss=T[2];let R=`${A}:${b.nid||_.nid}`,k=S[R];_.path=void 0,k&&(_=k.parse(_,b))}else _.error=_.error||"URN can not be parsed.";return _}function l(_,b){let T=b.scheme||_.scheme||"urn",A=_.nid.toLowerCase(),R=`${T}:${b.nid||A}`,k=S[R];k&&(_=k.serialize(_,b));let x=_,N=_.nss;return x.path=`${A||b.nid}:${N}`,b.skipEscape=!0,x}function d(_,b){let T=_;return T.uuid=T.nss,T.nss=void 0,!b.tolerant&&(!T.uuid||!n.test(T.uuid))&&(T.error=T.error||"UUID is not valid."),T}function f(_){let b=_;return b.nss=(_.uuid||"").toLowerCase(),b}var p={scheme:"http",domainHost:!0,parse:s,serialize:o},h={scheme:"https",domainHost:p.domainHost,parse:s,serialize:o},m={scheme:"ws",domainHost:!0,parse:a,serialize:c},y={scheme:"wss",domainHost:m.domainHost,parse:m.parse,serialize:m.serialize},g={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},E={scheme:"urn:uuid",parse:d,serialize:f,skipNormalize:!0},S={http:p,https:h,ws:m,wss:y,urn:g,"urn:uuid":E};t.exports=S}),cer=Je((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=oer(),a=aer();function c(E,S){return typeof E=="string"?E=f(y(E,S),S):typeof E=="object"&&(E=y(f(E,S),S)),E}function u(E,S,_){let b=Object.assign({scheme:"null"},_),T=l(y(E,b),y(S,b),b,!0);return f(T,{...b,skipEscape:!0})}function l(E,S,_,b){let T={};return b||(E=y(f(E,_),_),S=y(f(S,_),_)),_=_||{},!_.tolerant&&S.scheme?(T.scheme=S.scheme,T.userinfo=S.userinfo,T.host=S.host,T.port=S.port,T.path=i(S.path||""),T.query=S.query):(S.userinfo!==void 0||S.host!==void 0||S.port!==void 0?(T.userinfo=S.userinfo,T.host=S.host,T.port=S.port,T.path=i(S.path||""),T.query=S.query):(S.path?(S.path.charAt(0)==="/"?T.path=i(S.path):((E.userinfo!==void 0||E.host!==void 0||E.port!==void 0)&&!E.path?T.path="/"+S.path:E.path?T.path=E.path.slice(0,E.path.lastIndexOf("/")+1)+S.path:T.path=S.path,T.path=i(T.path)),T.query=S.query):(T.path=E.path,S.query!==void 0?T.query=S.query:T.query=E.query),T.userinfo=E.userinfo,T.host=E.host,T.port=E.port),T.scheme=E.scheme),T.fragment=S.fragment,T}function d(E,S,_){return typeof E=="string"?(E=unescape(E),E=f(o(y(E,_),!0),{..._,skipEscape:!0})):typeof E=="object"&&(E=f(o(E,!0),{..._,skipEscape:!0})),typeof S=="string"?(S=unescape(S),S=f(o(y(S,_),!0),{..._,skipEscape:!0})):typeof S=="object"&&(S=f(o(S,!0),{..._,skipEscape:!0})),E.toLowerCase()===S.toLowerCase()}function f(E,S){let _={host:E.host,scheme:E.scheme,userinfo:E.userinfo,port:E.port,path:E.path,query:E.query,nid:E.nid,nss:E.nss,uuid:E.uuid,fragment:E.fragment,reference:E.reference,resourceName:E.resourceName,secure:E.secure,error:""},b=Object.assign({},S),T=[],A=a[(b.scheme||_.scheme||"").toLowerCase()];A&&A.serialize&&A.serialize(_,b),_.path!==void 0&&(b.skipEscape?_.path=unescape(_.path):(_.path=escape(_.path),_.scheme!==void 0&&(_.path=_.path.split("%3A").join(":")))),b.reference!=="suffix"&&_.scheme&&T.push(_.scheme,":");let R=s(_);if(R!==void 0&&(b.reference!=="suffix"&&T.push("//"),T.push(R),_.path&&_.path.charAt(0)!=="/"&&T.push("/")),_.path!==void 0){let k=_.path;!b.absolutePath&&(!A||!A.absolutePath)&&(k=i(k)),R===void 0&&(k=k.replace(/^\/\//u,"/%2F")),T.push(k)}return _.query!==void 0&&T.push("?",_.query),_.fragment!==void 0&&T.push("#",_.fragment),T.join("")}var p=Array.from({length:127},(E,S)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(S)));function h(E){let S=0;for(let _=0,b=E.length;_126||p[S])return!0;return!1}var m=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function y(E,S){let _=Object.assign({},S),b={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},T=E.indexOf("%")!==-1,A=!1;_.reference==="suffix"&&(E=(_.scheme?_.scheme+":":"")+"//"+E);let R=E.match(m);if(R){if(b.scheme=R[1],b.userinfo=R[3],b.host=R[4],b.port=parseInt(R[5],10),b.path=R[6]||"",b.query=R[7],b.fragment=R[8],isNaN(b.port)&&(b.port=R[5]),b.host){let x=r(b.host);if(x.isIPV4===!1){let N=n(x.host);b.host=N.host.toLowerCase(),A=N.isIPV6}else b.host=x.host,A=!0}b.scheme===void 0&&b.userinfo===void 0&&b.host===void 0&&b.port===void 0&&b.query===void 0&&!b.path?b.reference="same-document":b.scheme===void 0?b.reference="relative":b.fragment===void 0?b.reference="absolute":b.reference="uri",_.reference&&_.reference!=="suffix"&&_.reference!==b.reference&&(b.error=b.error||"URI is not a "+_.reference+" reference.");let k=a[(_.scheme||b.scheme||"").toLowerCase()];if(!_.unicodeSupport&&(!k||!k.unicodeSupport)&&b.host&&(_.domainHost||k&&k.domainHost)&&A===!1&&h(b.host))try{b.host=URL.domainToASCII(b.host.toLowerCase())}catch(x){b.error=b.error||"Host's domain name can not be converted to ASCII: "+x}(!k||k&&!k.skipNormalize)&&(T&&b.scheme!==void 0&&(b.scheme=unescape(b.scheme)),T&&b.host!==void 0&&(b.host=unescape(b.host)),b.path&&(b.path=escape(unescape(b.path))),b.fragment&&(b.fragment=encodeURI(decodeURIComponent(b.fragment)))),k&&k.parse&&k.parse(b,_)}else b.error=b.error||"URI can not be parsed.";return b}var g={SCHEMES:a,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:f,parse:y};t.exports=g,t.exports.default=g,t.exports.fastUri=g}),uer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cer();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),ler=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=yY();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=bn();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});var r=Vbe(),i=SY(),s=nxt(),o=Wbe(),a=bn(),c=gY(),u=Q6(),l=cr(),d=ier(),f=uer(),p=(q,C)=>new RegExp(q,C);p.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),y={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},g={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},E=200;function S(q){var C,z,U,M,H,F,W,$,ie,Re,Te,K,Q,ae,ge,Se,Ot,Be,Dn,ur,tn,lr,Ju,bs,iE;let ry=q.strict,Ri=(C=q.code)===null||C===void 0?void 0:C.optimize,mp=Ri===!0||Ri===void 0?1:Ri||0,iy=(U=(z=q.code)===null||z===void 0?void 0:z.regExp)!==null&&U!==void 0?U:p,Ar=(M=q.uriResolver)!==null&&M!==void 0?M:f.default;return{strictSchema:(F=(H=q.strictSchema)!==null&&H!==void 0?H:ry)!==null&&F!==void 0?F:!0,strictNumbers:($=(W=q.strictNumbers)!==null&&W!==void 0?W:ry)!==null&&$!==void 0?$:!0,strictTypes:(Re=(ie=q.strictTypes)!==null&&ie!==void 0?ie:ry)!==null&&Re!==void 0?Re:"log",strictTuples:(K=(Te=q.strictTuples)!==null&&Te!==void 0?Te:ry)!==null&&K!==void 0?K:"log",strictRequired:(ae=(Q=q.strictRequired)!==null&&Q!==void 0?Q:ry)!==null&&ae!==void 0?ae:!1,code:q.code?{...q.code,optimize:mp,regExp:iy}:{optimize:mp,regExp:iy},loopRequired:(ge=q.loopRequired)!==null&&ge!==void 0?ge:E,loopEnum:(Se=q.loopEnum)!==null&&Se!==void 0?Se:E,meta:(Ot=q.meta)!==null&&Ot!==void 0?Ot:!0,messages:(Be=q.messages)!==null&&Be!==void 0?Be:!0,inlineRefs:(Dn=q.inlineRefs)!==null&&Dn!==void 0?Dn:!0,schemaId:(ur=q.schemaId)!==null&&ur!==void 0?ur:"$id",addUsedSchema:(tn=q.addUsedSchema)!==null&&tn!==void 0?tn:!0,validateSchema:(lr=q.validateSchema)!==null&&lr!==void 0?lr:!0,validateFormats:(Ju=q.validateFormats)!==null&&Ju!==void 0?Ju:!0,unicodeRegExp:(bs=q.unicodeRegExp)!==null&&bs!==void 0?bs:!0,int32range:(iE=q.int32range)!==null&&iE!==void 0?iE:!0,uriResolver:Ar}}class _{constructor(C={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,C=this.opts={...C,...S(C)};let{es5:z,lines:U}=this.opts.code;this.scope=new a.ValueScope({scope:{},prefixes:m,es5:z,lines:U}),this.logger=P(C.logger);let M=C.validateFormats;C.validateFormats=!1,this.RULES=(0,s.getRules)(),b.call(this,y,C,"NOT SUPPORTED"),b.call(this,g,C,"DEPRECATED","warn"),this._metaOpts=x.call(this),C.formats&&R.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),C.keywords&&k.call(this,C.keywords),typeof C.meta=="object"&&this.addMetaSchema(C.meta),A.call(this),C.validateFormats=M}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:C,meta:z,schemaId:U}=this.opts,M=d;U==="id"&&(M={...d},M.id=M.$id,delete M.$id),z&&C&&this.addMetaSchema(M,M[U],!1)}defaultMeta(){let{meta:C,schemaId:z}=this.opts;return this.opts.defaultMeta=typeof C=="object"?C[z]||C:void 0}validate(C,z){let U;if(typeof C=="string"){if(U=this.getSchema(C),!U)throw new Error(`no schema with key or ref "${C}"`)}else U=this.compile(C);let M=U(z);return"$async"in U||(this.errors=U.errors),M}compile(C,z){let U=this._addSchema(C,z);return U.validate||this._compileSchemaEnv(U)}compileAsync(C,z){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:U}=this.opts;return M.call(this,C,z);async function M(Re,Te){await H.call(this,Re.$schema);let K=this._addSchema(Re,Te);return K.validate||F.call(this,K)}async function H(Re){Re&&!this.getSchema(Re)&&await M.call(this,{$ref:Re},!0)}async function F(Re){try{return this._compileSchemaEnv(Re)}catch(Te){if(!(Te instanceof i.default))throw Te;return W.call(this,Te),await $.call(this,Te.missingSchema),F.call(this,Re)}}function W({missingSchema:Re,missingRef:Te}){if(this.refs[Re])throw new Error(`AnySchema ${Re} is loaded but ${Te} cannot be resolved`)}async function $(Re){let Te=await ie.call(this,Re);this.refs[Re]||await H.call(this,Te.$schema),this.refs[Re]||this.addSchema(Te,Re,z)}async function ie(Re){let Te=this._loading[Re];if(Te)return Te;try{return await(this._loading[Re]=U(Re))}finally{delete this._loading[Re]}}}addSchema(C,z,U,M=this.opts.validateSchema){if(Array.isArray(C)){for(let F of C)this.addSchema(F,void 0,U,M);return this}let H;if(typeof C=="object"){let{schemaId:F}=this.opts;if(H=C[F],H!==void 0&&typeof H!="string")throw new Error(`schema ${F} must be string`)}return z=(0,c.normalizeId)(z||H),this._checkUnique(z),this.schemas[z]=this._addSchema(C,U,z,M,!0),this}addMetaSchema(C,z,U=this.opts.validateSchema){return this.addSchema(C,z,!0,U),this}validateSchema(C,z){if(typeof C=="boolean")return!0;let U;if(U=C.$schema,U!==void 0&&typeof U!="string")throw new Error("$schema must be a string");if(U=U||this.opts.defaultMeta||this.defaultMeta(),!U)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let M=this.validate(U,C);if(!M&&z){let H="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(H);else throw new Error(H)}return M}getSchema(C){let z;for(;typeof(z=T.call(this,C))=="string";)C=z;if(z===void 0){let{schemaId:U}=this.opts,M=new o.SchemaEnv({schema:{},schemaId:U});if(z=o.resolveSchema.call(this,M,C),!z)return;this.refs[C]=z}return z.validate||this._compileSchemaEnv(z)}removeSchema(C){if(C instanceof RegExp)return this._removeAllSchemas(this.schemas,C),this._removeAllSchemas(this.refs,C),this;switch(typeof C){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let z=T.call(this,C);return typeof z=="object"&&this._cache.delete(z.schema),delete this.schemas[C],delete this.refs[C],this}case"object":{let z=C;this._cache.delete(z);let U=C[this.opts.schemaId];return U&&(U=(0,c.normalizeId)(U),delete this.schemas[U],delete this.refs[U]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(C){for(let z of C)this.addKeyword(z);return this}addKeyword(C,z){let U;if(typeof C=="string")U=C,typeof z=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),z.keyword=U);else if(typeof C=="object"&&z===void 0){if(z=C,U=z.keyword,Array.isArray(U)&&!U.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(j.call(this,U,z),!z)return(0,l.eachItem)(U,H=>V.call(this,H)),this;B.call(this,z);let M={...z,type:(0,u.getJSONTypes)(z.type),schemaType:(0,u.getJSONTypes)(z.schemaType)};return(0,l.eachItem)(U,M.type.length===0?H=>V.call(this,H,M):H=>M.type.forEach(F=>V.call(this,H,M,F))),this}getKeyword(C){let z=this.RULES.all[C];return typeof z=="object"?z.definition:!!z}removeKeyword(C){let{RULES:z}=this;delete z.keywords[C],delete z.all[C];for(let U of z.rules){let M=U.rules.findIndex(H=>H.keyword===C);M>=0&&U.rules.splice(M,1)}return this}addFormat(C,z){return typeof z=="string"&&(z=new RegExp(z)),this.formats[C]=z,this}errorsText(C=this.errors,{separator:z=", ",dataVar:U="data"}={}){return!C||C.length===0?"No errors":C.map(M=>`${U}${M.instancePath} ${M.message}`).reduce((M,H)=>M+z+H)}$dataMetaSchema(C,z){let U=this.RULES.all;C=JSON.parse(JSON.stringify(C));for(let M of z){let H=M.split("/").slice(1),F=C;for(let W of H)F=F[W];for(let W in U){let $=U[W];if(typeof $!="object")continue;let{$data:ie}=$.definition,Re=F[W];ie&&Re&&(F[W]=X(Re))}}return C}_removeAllSchemas(C,z){for(let U in C){let M=C[U];(!z||z.test(U))&&(typeof M=="string"?delete C[U]:M&&!M.meta&&(this._cache.delete(M.schema),delete C[U]))}}_addSchema(C,z,U,M=this.opts.validateSchema,H=this.opts.addUsedSchema){let F,{schemaId:W}=this.opts;if(typeof C=="object")F=C[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof C!="boolean")throw new Error("schema must be object or boolean")}let $=this._cache.get(C);if($!==void 0)return $;U=(0,c.normalizeId)(F||U);let ie=c.getSchemaRefs.call(this,C,U);return $=new o.SchemaEnv({schema:C,schemaId:W,meta:z,baseId:U,localRefs:ie}),this._cache.set($.schema,$),H&&!U.startsWith("#")&&(U&&this._checkUnique(U),this.refs[U]=$),M&&this.validateSchema(C,!0),$}_checkUnique(C){if(this.schemas[C]||this.refs[C])throw new Error(`schema with key or id "${C}" already exists`)}_compileSchemaEnv(C){if(C.meta?this._compileMetaSchema(C):o.compileSchema.call(this,C),!C.validate)throw new Error("ajv implementation error");return C.validate}_compileMetaSchema(C){let z=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,C)}finally{this.opts=z}}}_.ValidationError=r.default,_.MissingRefError=i.default,e.default=_;function b(q,C,z,U="error"){for(let M in q){let H=M;H in C&&this.logger[U](`${z}: option ${M}. ${q[H]}`)}}function T(q){return q=(0,c.normalizeId)(q),this.schemas[q]||this.refs[q]}function A(){let q=this.opts.schemas;if(q)if(Array.isArray(q))this.addSchema(q);else for(let C in q)this.addSchema(q[C],C)}function R(){for(let q in this.opts.formats){let C=this.opts.formats[q];C&&this.addFormat(q,C)}}function k(q){if(Array.isArray(q)){this.addVocabulary(q);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let C in q){let z=q[C];z.keyword||(z.keyword=C),this.addKeyword(z)}}function x(){let q={...this.opts};for(let C of h)delete q[C];return q}var N={log(){},warn(){},error(){}};function P(q){if(q===!1)return N;if(q===void 0)return console;if(q.log&&q.warn&&q.error)return q;throw new Error("logger must implement log, warn and error methods")}var D=/^[a-z_$][a-z0-9_$:-]*$/i;function j(q,C){let{RULES:z}=this;if((0,l.eachItem)(q,U=>{if(z.keywords[U])throw new Error(`Keyword ${U} is already defined`);if(!D.test(U))throw new Error(`Keyword ${U} has invalid name`)}),!!C&&C.$data&&!("code"in C||"validate"in C))throw new Error('$data keyword must have "code" or "validate" function')}function V(q,C,z){var U;let M=C?.post;if(z&&M)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:H}=this,F=M?H.post:H.rules.find(({type:$})=>$===z);if(F||(F={type:z,rules:[]},H.rules.push(F)),H.keywords[q]=!0,!C)return;let W={keyword:q,definition:{...C,type:(0,u.getJSONTypes)(C.type),schemaType:(0,u.getJSONTypes)(C.schemaType)}};C.before?Z.call(this,F,W,C.before):F.rules.push(W),H.all[q]=W,(U=C.implements)===null||U===void 0||U.forEach($=>this.addKeyword($))}function Z(q,C,z){let U=q.rules.findIndex(M=>M.keyword===z);U>=0?q.rules.splice(U,0,C):(q.rules.push(C),this.logger.warn(`rule ${z} is not defined`))}function B(q){let{metaSchema:C}=q;C!==void 0&&(q.$data&&this.opts.$data&&(C=X(C)),q.validateSchema=this.compile(C,!0))}var G={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function X(q){return{anyOf:[q,G]}}}),der=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};e.default=t}),fer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=SY(),n=pp(),r=bn(),i=$_(),s=Wbe(),o=cr(),a={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:f,it:p}=l,{baseId:h,schemaEnv:m,validateName:y,opts:g,self:E}=p,{root:S}=m;if((f==="#"||f==="#/")&&h===S.baseId)return b();let _=s.resolveRef.call(E,S,h,f);if(_===void 0)throw new t.default(p.opts.uriResolver,h,f);if(_ instanceof s.SchemaEnv)return T(_);return A(_);function b(){if(m===S)return u(l,y,m,m.$async);let R=d.scopeValue("root",{ref:S});return u(l,(0,r._)`${R}.validate`,S,S.$async)}function T(R){let k=c(l,R);u(l,k,R,R.$async)}function A(R){let k=d.scopeValue("schema",g.code.source===!0?{ref:R,code:(0,r.stringify)(R)}:{ref:R}),x=d.name("valid"),N=l.subschema({schema:R,dataTypes:[],schemaPath:r.nil,topSchemaRef:k,errSchemaPath:f},x);l.mergeEvaluated(N),l.ok(x)}}};function c(l,d){let{gen:f}=l;return d.validate?f.scopeValue("validate",{ref:d.validate}):(0,r._)`${f.scopeValue("wrapper",{ref:d})}.validate`}e.getValidate=c;function u(l,d,f,p){let{gen:h,it:m}=l,{allErrors:y,schemaEnv:g,opts:E}=m,S=E.passContext?i.default.this:r.nil;p?_():b();function _(){if(!g.$async)throw new Error("async schema referenced by sync schema");let R=h.let("valid");h.try(()=>{h.code((0,r._)`await ${(0,n.callValidateCode)(l,d,S)}`),A(d),y||h.assign(R,!0)},k=>{h.if((0,r._)`!(${k} instanceof ${m.ValidationError})`,()=>h.throw(k)),T(k),y||h.assign(R,!1)}),l.ok(R)}function b(){l.result((0,n.callValidateCode)(l,d,S),()=>A(d),()=>T(d))}function T(R){let k=(0,r._)`${R}.errors`;h.assign(i.default.vErrors,(0,r._)`${i.default.vErrors} === null ? ${k} : ${i.default.vErrors}.concat(${k})`),h.assign(i.default.errors,(0,r._)`${i.default.vErrors}.length`)}function A(R){var k;if(!m.opts.unevaluated)return;let x=(k=f?.validate)===null||k===void 0?void 0:k.evaluated;if(m.props!==!0)if(x&&!x.dynamicProps)x.props!==void 0&&(m.props=o.mergeEvaluated.props(h,x.props,m.props));else{let N=h.var("props",(0,r._)`${R}.evaluated.props`);m.props=o.mergeEvaluated.props(h,N,m.props,r.Name)}if(m.items!==!0)if(x&&!x.dynamicItems)x.items!==void 0&&(m.items=o.mergeEvaluated.items(h,x.items,m.items));else{let N=h.var("items",(0,r._)`${R}.evaluated.items`);m.items=o.mergeEvaluated.items(h,N,m.items,r.Name)}}}e.callRef=u,e.default=a}),per=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=der(),n=fer(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),her=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=t.operators,r={maximum:{okStr:"<=",ok:n.LTE,fail:n.GT},minimum:{okStr:">=",ok:n.GTE,fail:n.LT},exclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},exclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:a})=>(0,t.str)`must be ${r[o].okStr} ${a}`,params:({keyword:o,schemaCode:a})=>(0,t._)`{comparison: ${r[o].okStr}, limit: ${a}}`},s={keyword:Object.keys(r),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u}=o;o.fail$data((0,t._)`${c} ${r[a].fail} ${u} || isNaN(${c})`)}};e.default=s}),mer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={message:({schemaCode:i})=>(0,t.str)`must be multiple of ${i}`,params:({schemaCode:i})=>(0,t._)`{multipleOf: ${i}}`},r={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:n,code(i){let{gen:s,data:o,schemaCode:a,it:c}=i,u=c.opts.multipleOfPrecision,l=s.let("res"),d=u?(0,t._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,t._)`${l} !== parseInt(${l})`;i.fail$data((0,t._)`(${a} === 0 || (${l} = ${o}/${a}, ${d}))`)}};e.default=r}),ger=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(n){let r=n.length,i=0,s=0,o;for(;s=55296&&o<=56319&&s{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=cr(),r=ger(),i={message({keyword:o,schemaCode:a}){let c=o==="maxLength"?"more":"fewer";return(0,t.str)`must NOT have ${c} than ${a} characters`},params:({schemaCode:o})=>(0,t._)`{limit: ${o}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u,it:l}=o,d=a==="maxLength"?t.operators.GT:t.operators.LT,f=l.opts.unicode===!1?(0,t._)`${c}.length`:(0,t._)`${(0,n.useFunc)(o.gen,r.default)}(${c})`;o.fail$data((0,t._)`${f} ${d} ${u}`)}};e.default=s}),Ser=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=pp(),n=bn(),r={message:({schemaCode:s})=>(0,n.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,n._)`{pattern: ${s}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:r,code(s){let{data:o,$data:a,schema:c,schemaCode:u,it:l}=s,d=l.opts.unicodeRegExp?"u":"",f=a?(0,n._)`(new RegExp(${u}, ${d}))`:(0,t.usePattern)(s,c);s.fail$data((0,n._)`!${f}.test(${o})`)}};e.default=i}),_er=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={message({keyword:i,schemaCode:s}){let o=i==="maxProperties"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} properties`},params:({schemaCode:i})=>(0,t._)`{limit: ${i}}`},r={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:n,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxProperties"?t.operators.GT:t.operators.LT;i.fail$data((0,t._)`Object.keys(${o}).length ${c} ${a}`)}};e.default=r}),Eer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=pp(),n=bn(),r=cr(),i={message:({params:{missingProperty:o}})=>(0,n.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,n._)`{missingProperty: ${o}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,schema:c,schemaCode:u,data:l,$data:d,it:f}=o,{opts:p}=f;if(!d&&c.length===0)return;let h=c.length>=p.loopRequired;if(f.allErrors?m():y(),p.strictRequired){let S=o.parentSchema.properties,{definedProperties:_}=o.it;for(let b of c)if(S?.[b]===void 0&&!_.has(b)){let T=f.schemaEnv.baseId+f.errSchemaPath,A=`required property "${b}" is not defined at "${T}" (strictRequired)`;(0,r.checkStrictMode)(f,A,f.opts.strictRequired)}}function m(){if(h||d)o.block$data(n.nil,g);else for(let S of c)(0,t.checkReportMissingProp)(o,S)}function y(){let S=a.let("missing");if(h||d){let _=a.let("valid",!0);o.block$data(_,()=>E(S,_)),o.ok(_)}else a.if((0,t.checkMissingProp)(o,c,S)),(0,t.reportMissingProp)(o,S),a.else()}function g(){a.forOf("prop",u,S=>{o.setParams({missingProperty:S}),a.if((0,t.noPropertyInData)(a,l,S,p.ownProperties),()=>o.error())})}function E(S,_){o.setParams({missingProperty:S}),a.forOf(S,u,()=>{a.assign(_,(0,t.propertyInData)(a,l,S,p.ownProperties)),a.if((0,n.not)(_),()=>{o.error(),a.break()})},n.nil)}}};e.default=s}),ber=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={message({keyword:i,schemaCode:s}){let o=i==="maxItems"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} items`},params:({schemaCode:i})=>(0,t._)`{limit: ${i}}`},r={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:n,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxItems"?t.operators.GT:t.operators.LT;i.fail$data((0,t._)`${o}.length ${c} ${a}`)}};e.default=r}),Kbe=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ixt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),Ter=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Q6(),n=bn(),r=cr(),i=Kbe(),s={message:({params:{i:a,j:c}})=>(0,n.str)`must NOT have duplicate items (items ## ${c} and ${a} are identical)`,params:({params:{i:a,j:c}})=>(0,n._)`{i: ${a}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(a){let{gen:c,data:u,$data:l,schema:d,parentSchema:f,schemaCode:p,it:h}=a;if(!l&&!d)return;let m=c.let("valid"),y=f.items?(0,t.getSchemaTypes)(f.items):[];a.block$data(m,g,(0,n._)`${p} === false`),a.ok(m);function g(){let b=c.let("i",(0,n._)`${u}.length`),T=c.let("j");a.setParams({i:b,j:T}),c.assign(m,!0),c.if((0,n._)`${b} > 1`,()=>(E()?S:_)(b,T))}function E(){return y.length>0&&!y.some(b=>b==="object"||b==="array")}function S(b,T){let A=c.name("item"),R=(0,t.checkDataTypes)(y,A,h.opts.strictNumbers,t.DataType.Wrong),k=c.const("indices",(0,n._)`{}`);c.for((0,n._)`;${b}--;`,()=>{c.let(A,(0,n._)`${u}[${b}]`),c.if(R,(0,n._)`continue`),y.length>1&&c.if((0,n._)`typeof ${A} == "string"`,(0,n._)`${A} += "_"`),c.if((0,n._)`typeof ${k}[${A}] == "number"`,()=>{c.assign(T,(0,n._)`${k}[${A}]`),a.error(),c.assign(m,!1).break()}).code((0,n._)`${k}[${A}] = ${b}`)})}function _(b,T){let A=(0,r.useFunc)(c,i.default),R=c.name("outer");c.label(R).for((0,n._)`;${b}--;`,()=>c.for((0,n._)`${T} = ${b}; ${T}--;`,()=>c.if((0,n._)`${A}(${u}[${b}], ${u}[${T}])`,()=>{a.error(),c.assign(m,!1).break(R)})))}}};e.default=o}),ver=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=cr(),r=Kbe(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,t._)`{allowedValue: ${o}}`},s={keyword:"const",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,t._)`!${(0,n.useFunc)(a,r.default)}(${c}, ${l})`):o.fail((0,t._)`${d} !== ${c}`)}};e.default=s}),Aer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=cr(),r=Kbe(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,t._)`{allowedValues: ${o}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schema:l,schemaCode:d,it:f}=o;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let p=l.length>=f.opts.loopEnum,h,m=()=>h??(h=(0,n.useFunc)(a,r.default)),y;if(p||u)y=a.let("valid"),o.block$data(y,g);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let S=a.const("vSchema",d);y=(0,t.or)(...l.map((_,b)=>E(S,b)))}o.pass(y);function g(){a.assign(y,!1),a.forOf("v",d,S=>a.if((0,t._)`${m()}(${c}, ${S})`,()=>a.assign(y,!0).break()))}function E(S,_){let b=l[_];return typeof b=="object"&&b!==null?(0,t._)`${m()}(${c}, ${S}[${_}])`:(0,t._)`${c} === ${b}`}}};e.default=s}),Rer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=her(),n=mer(),r=yer(),i=Ser(),s=_er(),o=Eer(),a=ber(),c=Ter(),u=ver(),l=Aer(),d=[t.default,n.default,r.default,i.default,s.default,o.default,a.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];e.default=d}),sxt=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=bn(),n=cr(),r={message:({params:{len:o}})=>(0,t.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,t._)`{limit: ${o}}`},i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:r,code(o){let{parentSchema:a,it:c}=o,{items:u}=a;if(!Array.isArray(u)){(0,n.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(o,u)}};function s(o,a){let{gen:c,schema:u,data:l,keyword:d,it:f}=o;f.items=!0;let p=c.const("len",(0,t._)`${l}.length`);if(u===!1)o.setParams({len:a.length}),o.pass((0,t._)`${p} <= ${a.length}`);else if(typeof u=="object"&&!(0,n.alwaysValidSchema)(f,u)){let m=c.var("valid",(0,t._)`${p} <= ${a.length}`);c.if((0,t.not)(m),()=>h(m)),o.ok(m)}function h(m){c.forRange("i",a.length,p,y=>{o.subschema({keyword:d,dataProp:y,dataPropType:n.Type.Num},m),f.allErrors||c.if((0,t.not)(m),()=>c.break())})}}e.validateAdditionalItems=s,e.default=i}),oxt=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=bn(),n=cr(),r=pp(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:a,it:c}=o;if(Array.isArray(a))return s(o,"additionalItems",a);c.items=!0,!(0,n.alwaysValidSchema)(c,a)&&o.ok((0,r.validateArray)(o))}};function s(o,a,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:f,it:p}=o;y(l),p.opts.unevaluated&&c.length&&p.items!==!0&&(p.items=n.mergeEvaluated.items(u,c.length,p.items));let h=u.name("valid"),m=u.const("len",(0,t._)`${d}.length`);c.forEach((g,E)=>{(0,n.alwaysValidSchema)(p,g)||(u.if((0,t._)`${m} > ${E}`,()=>o.subschema({keyword:f,schemaProp:E,dataProp:E},h)),o.ok(h))});function y(g){let{opts:E,errSchemaPath:S}=p,_=c.length,b=_===g.minItems&&(_===g.maxItems||g[a]===!1);if(E.strictTuples&&!b){let T=`"${f}" is ${_}-tuple, but minItems or maxItems/${a} are not specified or different at path "${S}"`;(0,n.checkStrictMode)(p,T,E.strictTuples)}}}e.validateTuple=s,e.default=i}),wer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=oxt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),ker=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=cr(),r=pp(),i=sxt(),s={message:({params:{len:a}})=>(0,t.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,t._)`{limit: ${a}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(a){let{schema:c,parentSchema:u,it:l}=a,{prefixItems:d}=u;l.items=!0,!(0,n.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(a,d):a.ok((0,r.validateArray)(a)))}};e.default=o}),Ier=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=cr(),r={message:({params:{min:s,max:o}})=>o===void 0?(0,t.str)`must contain at least ${s} valid item(s)`:(0,t.str)`must contain at least ${s} and no more than ${o} valid item(s)`,params:({params:{min:s,max:o}})=>o===void 0?(0,t._)`{minContains: ${s}}`:(0,t._)`{minContains: ${s}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:r,code(s){let{gen:o,schema:a,parentSchema:c,data:u,it:l}=s,d,f,{minContains:p,maxContains:h}=c;l.opts.next?(d=p===void 0?1:p,f=h):d=1;let m=o.const("len",(0,t._)`${u}.length`);if(s.setParams({min:d,max:f}),f===void 0&&d===0){(0,n.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(f!==void 0&&d>f){(0,n.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,n.alwaysValidSchema)(l,a)){let _=(0,t._)`${m} >= ${d}`;f!==void 0&&(_=(0,t._)`${_} && ${m} <= ${f}`),s.pass(_);return}l.items=!0;let y=o.name("valid");f===void 0&&d===1?E(y,()=>o.if(y,()=>o.break())):d===0?(o.let(y,!0),f!==void 0&&o.if((0,t._)`${u}.length > 0`,g)):(o.let(y,!1),g()),s.result(y,()=>s.reset());function g(){let _=o.name("_valid"),b=o.let("count",0);E(_,()=>o.if(_,()=>S(b)))}function E(_,b){o.forRange("i",0,m,T=>{s.subschema({keyword:"contains",dataProp:T,dataPropType:n.Type.Num,compositeRule:!0},_),b()})}function S(_){o.code((0,t._)`${_}++`),f===void 0?o.if((0,t._)`${_} >= ${d}`,()=>o.assign(y,!0).break()):(o.if((0,t._)`${_} > ${f}`,()=>o.assign(y,!1).break()),d===1?o.assign(y,!0):o.if((0,t._)`${_} >= ${d}`,()=>o.assign(y,!0)))}}};e.default=i}),xer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=bn(),n=cr(),r=pp();e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,t._)`{property: ${c}, +]`;continue}i+=r[c],r[c]==="\\"?s=!0:o&&r[c]==="]"?o=!1:!o&&r[c]==="["&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function qPt(e,t){if(t.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),t.target==="openApi3"&&e.keyType?._def.typeName===Le.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((r,i)=>({...r,[i]:_r(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??Xu(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:_r(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return n;if(e.keyType?._def.typeName===Le.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=HPt(e.keyType._def,t);return{...n,propertyNames:i}}else{if(e.keyType?._def.typeName===Le.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===Le.ZodBranded&&e.keyType._def.type._def.typeName===Le.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=FPt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function Fdr(e,t){if(t.mapStrategy==="record")return qPt(e,t);let n=_r(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Xu(t),r=_r(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Xu(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function jdr(e){let t=e.values,r=Object.keys(e.values).filter(s=>typeof t[t[s]]!="number").map(s=>t[s]),i=Array.from(new Set(r.map(s=>typeof s)));return{type:i.length===1?i[0]==="string"?"string":"number":["string","number"],enum:r}}function Hdr(e){return e.target==="openAi"?void 0:{not:Xu({...e,currentPath:[...e.currentPath,"not"]})}}function qdr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function Bdr(e,t){if(t.target==="openApi3")return zxt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in N6&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=N6[s._def.typeName];return o&&!i.includes(o)?[...i,o]:i},[]);return{type:r.length>1?r:r[0]}}else if(n.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=n.reduce((i,s)=>{let o=typeof s._def.value;switch(o){case"string":case"number":case"boolean":return[...i,o];case"bigint":return[...i,"integer"];case"object":if(s._def.value===null)return[...i,"null"];default:return i}},[]);if(r.length===n.length){let i=r.filter((s,o,a)=>a.indexOf(s)===o);return{type:i.length>1?i:i[0],enum:n.reduce((s,o)=>s.includes(o._def.value)?s:[...s,o._def.value],[])}}}else if(n.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((r,i)=>[...r,...i._def.values.filter(s=>!r.includes(s))],[])};return zxt(e,t)}function Gdr(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:N6[e.innerType._def.typeName],nullable:!0}:{type:[N6[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let r=_r(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let n=_r(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function zdr(e,t){let n={type:"number"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"int":n.type="integer",LPt(n,"type",r.message,t);break;case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function Vdr(e,t){let n=t.target==="openAi",r={type:"object",properties:{}},i=[],s=e.shape();for(let a in s){let c=s[a];if(c===void 0||c._def===void 0)continue;let u=Kdr(c);u&&n&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),u=!1);let l=_r(c._def,{...t,currentPath:[...t.currentPath,"properties",a],propertyPath:[...t.currentPath,"properties",a]});l!==void 0&&(r.properties[a]=l,u||i.push(a))}i.length&&(r.required=i);let o=Wdr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function Wdr(e,t){if(e.catchall._def.typeName!=="ZodNever")return _r(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function Kdr(e){try{return e.isOptional()}catch{return!0}}function Jdr(e,t){return _r(e.type._def,t)}function Xdr(e,t){let r={type:"array",uniqueItems:!0,items:_r(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&Cr(r,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&Cr(r,"maxItems",e.maxSize.value,e.maxSize.message,t),r}function Qdr(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((n,r)=>_r(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:_r(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,r)=>_r(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[])}}function $dr(e){return{not:Xu(e)}}function efr(e){return Xu(e)}function _r(e,t,n=!1){let r=t.seen.get(e);if(t.override){let a=t.override?.(e,t,r,n);if(a!==Tdr)return a}if(r&&!n){let a=rfr(r,t);if(a!==void 0)return a}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let s=nfr(e,e.typeName,t),o=typeof s=="function"?_r(s(),t):s;if(o&&ifr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function ofr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function Vxt(e,t){var n,r,i;return gp(e)?zcr(e,{target:ofr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):sfr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function Wxt(e){let t=MU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=ZOt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Kxt(e,t){let n=yU(e,t);if(!n.success)throw n.error;return n.data}function Yxt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function cfr(e,t){let n={...e};for(let r in t){let i=r,s=t[i];if(s===void 0)continue;let o=n[i];Yxt(o)&&Yxt(s)?n[i]={...o,...s}:n[i]=s}return n}function dfr(){let e=new ufr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=lfr.default;return t(e),e}function ffr(e,t,n){var r;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!(!((r=e.tools)===null||r===void 0)&&r.call))throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function pfr(e,t,n){var r,i;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!(!((r=e.sampling)===null||r===void 0)&&r.createMessage))throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!(!((i=e.elicitation)===null||i===void 0)&&i.create))throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}function hfr(e){return!!e&&typeof e=="object"&&BPt in e}function mfr(e){let t=e[BPt];return t?.complete}function yfr(e){let t=[];if(e.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(" ")&&t.push("Tool name contains spaces, which may cause parsing issues"),e.includes(",")&&t.push("Tool name contains commas, which may cause parsing issues"),(e.startsWith("-")||e.endsWith("-"))&&t.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(e.startsWith(".")||e.endsWith("."))&&t.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!gfr.test(e)){let n=e.split("").filter(r=>!/[A-Za-z0-9._-]/.test(r)).filter((r,i,s)=>s.indexOf(r)===i);return t.push(`Tool name contains invalid characters: ${n.map(r=>`"${r}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function Sfr(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let n of t)console.warn(` - ${n}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function Jxt(e){let t=yfr(e);return Sfr(e,t.warnings),t.isValid}function GPt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function _fr(e){return"_def"in e||"_zod"in e||GPt(e)}function _Te(e){return typeof e!="object"||e===null||_fr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some(GPt)}function Xxt(e){if(e)return _Te(e)?gU(e):e}function bfr(e){let t=MU(e);return t?Object.entries(t).map(([n,r])=>{let i=Kcr(r),s=Ycr(r);return{name:n,description:i,required:!s}}):[]}function QE(e){let t=MU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=ZOt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function Qxt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function Tfr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function vfr(e){let t=new ETe({name:e.name,version:e.version??"1.0.0"},{capabilities:{tools:e.tools?{}:void 0}});return e.tools&&e.tools.forEach(n=>{t.tool(n.name,n.description,n.inputSchema,n.handler)}),{type:"sdk",name:e.name,instance:t}}function Afr({prompt:e,options:t}){let{systemPrompt:n,settingSources:r,sandbox:i,...s}=t??{},o,a;n===void 0?o="":typeof n=="string"?o=n:n.type==="preset"&&(a=n.append);let c=s.pathToClaudeCodeExecutable;if(!c){let le=znr(import.meta.url),be=uxt(le,"..");c=uxt(be,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=ATe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:g,disallowedTools:y=[],tools:E,env:S,executable:_=kTe()?"bun":"node",executableArgs:b=[],extraArgs:T={},fallbackModel:A,enableFileCheckpointing:R,forkSession:x,hooks:k,includePartialMessages:P,persistSession:N,maxThinkingTokens:C,maxTurns:F,maxBudgetUsd:V,mcpServers:K,model:$,outputFormat:B,permissionMode:X="default",allowDangerouslySkipPermissions:G=!1,permissionPromptToolName:M,plugins:q,resume:U,resumeSessionAt:D,stderr:H,strictMcpConfig:j}=s,W=B?.type==="json_schema"?B.schema:void 0,ee=S;if(ee||(ee={...process.env}),ee.CLAUDE_CODE_ENTRYPOINT||(ee.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),R&&(ee.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let se={},Me=new Map;if(K)for(let[le,be]of Object.entries(K))be.type==="sdk"&&"instance"in be?(Me.set(le,be.instance),se[le]={type:"sdk",name:le}):se[le]=be;let Re=typeof e=="string",z=new S6({abortController:u,additionalDirectories:l,betas:p,cwd:g,executable:_,executableArgs:b,extraArgs:T,pathToClaudeCodeExecutable:c,env:ee,forkSession:x,stderr:H,maxThinkingTokens:C,maxTurns:F,maxBudgetUsd:V,model:$,fallbackModel:A,jsonSchema:W,permissionMode:X,allowDangerouslySkipPermissions:G,permissionPromptToolName:M,continueConversation:m,resume:U,resumeSessionAt:D,settingSources:r??[],allowedTools:f,disallowedTools:y,tools:E,mcpServers:se,strictMcpConfig:j,canUseTool:!!h,hooks:!!k,includePartialMessages:P,persistSession:N,plugins:q,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new _6(z,Re,h,k,u,Me,W,J);return typeof e=="string"?z.write(rm({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` +`):oe.streamInput(e),oe}function Rfr(e){return _Ot(e)}function wfr(e,t){return ysr(e,t)}async function kfr(e,t){let n=[];try{let o=Vtr(n,_Ot(t),1);await o.send(e);for await(let a of o.stream())if(a.type==="result")return a;throw new Error("Session ended without result message")}catch(o){var r=o,i=1}finally{var s=Wtr(n,r,i);s&&await s}}var jtr,Htr,Gbe,qtr,Btr,$xt,Xe,eOt,Gtr,ztr,Vtr,Wtr,m6,cxt,bn,ur,i_,C6,Ktr,tOt,nOt,g6,Ytr,Sp,Ztr,Jtr,rOt,Xtr,M6,D6,bTe,L6,TTe,Qtr,$tr,enr,tnr,nnr,rnr,inr,snr,onr,anr,cnr,unr,lnr,dnr,fnr,pnr,hnr,mnr,vTe,gnr,ynr,Snr,Enr,iOt,sOt,_nr,bnr,Tnr,vnr,Anr,oOt,Rnr,wnr,knr,Inr,xnr,Onr,Pnr,Nnr,Cnr,Mnr,Dnr,Lnr,Unr,Fnr,jnr,Hnr,aOt,qnr,Bnr,Gnr,Wnr,Jnr,Xnr,Qnr,$nr,RTe,err,y6,cOt,trr,nrr,lU,irr,srr,orr,crr,urr,lrr,lxt,frr,uOt,hrr,mrr,grr,yrr,Err,_rr,Mbe,dxt,Trr,vrr,Arr,wrr,krr,Irr,xrr,Orr,Prr,Nrr,Crr,Drr,Urr,lOt,jrr,SU,qrr,Grr,zrr,Vrr,Wrr,Yrr,Zrr,Jrr,Qrr,$rr,tir,fxt,rir,sir,U6,air,cir,lir,fir,hir,gir,yir,Sir,Eir,bir,vir,F6,wir,Iir,Oir,Nir,dOt,Cir,NU,pxt,Dir,Dbe,u6,zir,lPi,Vir,Kir,mxt,mOt,yOt,Qir,$ir,SOt,tsr,l6,rsr,isr,ssr,osr,asr,e_,d6,yxt,S6,E6,Vbe,_6,b6,ir,Ext,nt,$E,xe,Kd,Ssr,EU,Esr,Kbe,ru,Vt,pU,Ju,_xt,bxt,kx,T6,lt,Yd,Txt,Tn,_sr,bsr,Tsr,vsr,Asr,Rsr,wsr,ksr,Isr,Lbe,xsr,Osr,Psr,Nsr,Csr,Msr,bOt,Dsr,Ix,_U,bU,TU,vU,AU,xx,Ox,RU,n_,sm,wU,r_,Ll,Px,Kg,Ybe,Nx,Xg,Jbe,kU,IU,Xbe,Cx,Mx,Dx,Lx,Kv,mp,hp,Qg,Ux,Fx,xU,v6,A6,jx,yPi,Le,SPi,EPi,_Pi,bPi,TPi,vPi,APi,RPi,wPi,kPi,IPi,xPi,OPi,PPi,Bsr,NPi,CPi,MPi,DPi,LPi,UPi,FPi,jPi,HPi,qPi,BPi,GPi,zPi,VPi,WPi,KPi,YPi,ZPi,JPi,XPi,Yv,Qbe,zr,OTe,wOt,Qsr,kOt,$sr,xOt,tor,eTe,POt,NOt,G6,COt,por,MOt,hor,DOt,NTe,LOt,CTe,mor,gor,yor,Sor,Eor,_or,bor,Tor,vxt,vor,Aor,wor,kor,Ior,xor,Oor,UOt,Por,Nor,FOt,Cor,Lor,Uor,For,jor,Hor,qor,Bor,Qu,HOt,qOt,BOt,Gor,zor,Vor,Wor,Kor,z6,Yor,Zor,Jor,Xor,Qor,$or,ear,tTe,tar,li,MTe,zi,nar,rar,iar,sar,oar,aar,car,uar,lar,dar,far,par,har,mar,gar,yar,Sar,Ear,_ar,bar,Aar,Rar,kar,zOt,Iar,xar,Oar,Par,Nar,Car,VOt,WOt,Mar,Dar,Lar,Uar,Far,jar,Har,qar,Bar,Gar,zar,Var,War,Kar,Yar,Zar,Jar,R6,mU,k6,Vcr,Wcr,JOt,XOt,$Ot,tPt,rPt,sPt,QPi,V6,Zcr,Jcr,Xcr,Qcr,ss,oPt,$cr,os,eur,Fxt,p6,tur,nur,rur,iur,sur,our,aur,cur,uur,lur,dur,fur,pur,hur,mur,gur,aPt,yur,Sur,Eur,_ur,bur,vur,uPt,lPt,Aur,Rur,wur,rTe,kur,Iur,pPt,xur,Our,Nur,hPt,Dur,Uur,Fur,mPt,yPt,zur,Zg,W6,im,SPt,EPt,Vur,LTe,Wur,$u,Fa,Zv,Zd,Ac,K6,_Pt,qxt,bPt,Kur,TPt,h6,Ft,vPt,Yur,$Pi,UTe,Zur,FTe,Jur,DU,Hx,APt,Xur,Qur,$ur,elr,tlr,nlr,RPt,rlr,ilr,wPt,jTe,slr,olr,HTe,alr,LU,UU,FU,Y6,clr,I6,qTe,BTe,GTe,zTe,VTe,ulr,llr,kPt,IPt,WTe,xPt,Vx,OPt,dlr,sTe,flr,oTe,plr,KTe,hlr,aTe,mlr,glr,ylr,Slr,Elr,_lr,blr,Tlr,vlr,Alr,cTe,Rlr,wlr,uTe,YTe,ZTe,JTe,klr,Ilr,xlr,XTe,Olr,Plr,Nlr,Clr,Mlr,PPt,lTe,Dlr,QTe,eNi,Llr,x6,Ulr,O6,Flr,NPt,jlr,Hlr,qlr,Blr,Glr,zlr,Vlr,P6,Wlr,Klr,Ylr,CPt,MPt,Zlr,Jlr,Xlr,Qlr,$lr,edr,tdr,ndr,rdr,idr,sdr,odr,adr,cdr,udr,ldr,ddr,fdr,dTe,pdr,hdr,mdr,fTe,Sdr,Edr,_dr,DPt,bdr,tNi,nNi,rNi,iNi,sNi,oNi,_t,pTe,Tdr,Bxt,vdr,Adr,UPt,Idr,xdr,Cdr,qbe,fp,Ldr,N6,zxt,Ydr,Zdr,tfr,nfr,rfr,ifr,sfr,afr,hTe,ufr,lfr,mTe,gTe,yTe,BPt,Zxt,gfr,STe,ETe,Efr,fU,VPt=v(()=>{jtr=Object.create,Htr=Object.getPrototypeOf,Gbe=Object.defineProperty,qtr=Object.getOwnPropertyNames,Btr=Object.prototype.hasOwnProperty,$xt=(e,t,n)=>{n=e!=null?jtr(Htr(e)):{};let r=t||!e||!e.__esModule?Gbe(n,"default",{value:e,enumerable:!0}):n;for(let i of qtr(e))Btr.call(r,i)||Gbe(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),eOt=(e,t)=>{for(var n in t)Gbe(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},Gtr=Symbol.dispose||Symbol.for("Symbol.dispose"),ztr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Vtr=(e,t,n)=>{if(t!=null){if(typeof t!="object"&&typeof t!="function")throw TypeError('Object expected to be assigned to "using" declaration');var r;if(n&&(r=t[ztr]),r===void 0&&(r=t[Gtr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},Wtr=(e,t,n)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(o,a,c,u){return u=Error(c),u.name="SuppressedError",u.error=o,u.suppressed=a,u},i=o=>t=n?new r(o,t,"An error was suppressed during disposal"):(n=!0,o),s=o=>{for(;o=e.pop();)try{var a=o[1]&&o[1].call(o[2]);if(o[0])return Promise.resolve(a).then(s,c=>(i(c),s()))}catch(c){i(c)}if(n)throw t};return s()},m6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class n extends t{constructor(E){if(super(),!e.IDENTIFIER.test(E))throw new Error("CodeGen: name must be a valid identifier");this.str=E}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=n;class r extends t{constructor(E){super(),this._items=typeof E=="string"?[E]:E}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let E=this._items[0];return E===""||E==='""'}get str(){var E;return(E=this._str)!==null&&E!==void 0?E:this._str=this._items.reduce((S,_)=>`${S}${_}`,"")}get names(){var E;return(E=this._names)!==null&&E!==void 0?E:this._names=this._items.reduce((S,_)=>(_ instanceof n&&(S[_.str]=(S[_.str]||0)+1),S),{})}}e._Code=r,e.nil=new r("");function i(y,...E){let S=[y[0]],_=0;for(;_{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=m6();class n extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var r;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};class i{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof t.Name?u:this.name(u)}name(u){return new t.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}e.Scope=i;class s extends t.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,t._)`.${new t.Name(l)}[${d}]`}}e.ValueScopeName=s;var o=(0,t._)`\n`;class a extends i{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?o:t.nil}}get(){return this._scope}name(u){return new s(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let f=this.toName(u),{prefix:p}=f,h=(d=l.key)!==null&&d!==void 0?d:l.ref,m=this._values[p];if(m){let E=m.get(h);if(E)return E}else m=this._values[p]=new Map;m.set(h,f);let g=this._scope[p]||(this._scope[p]=[]),y=g.length;return g[y]=l.ref,f.setValue(l,{property:p,itemIndex:y}),f}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,t._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,f=>{if(f.value===void 0)throw new Error(`CodeGen: name "${f}" has no value`);return f.value.code},l,d)}_reduceValues(u,l,d={},f){let p=t.nil;for(let h in u){let m=u[h];if(!m)continue;let g=d[h]=d[h]||new Map;m.forEach(y=>{if(g.has(y))return;g.set(y,r.Started);let E=l(y);if(E){let S=this.opts.es5?e.varKinds.var:e.varKinds.const;p=(0,t._)`${p}${S} ${y} = ${E};${this.opts._n}`}else if(E=f?.(y))p=(0,t._)`${p}${E}${this.opts._n}`;else throw new n(y);g.set(y,r.Completed)})}return p}}e.ValueScope=a}),bn=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;var t=m6(),n=cxt(),r=m6();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var i=cxt();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class s{optimizeNodes(){return this}optimizeNames(D,H){return this}}class o extends s{constructor(D,H,j){super(),this.varKind=D,this.name=H,this.rhs=j}render({es5:D,_n:H}){let j=D?n.varKinds.var:this.varKind,W=this.rhs===void 0?"":` = ${this.rhs}`;return`${j} ${this.name}${W};`+H}optimizeNames(D,H){if(D[this.name.str])return this.rhs&&(this.rhs=F(this.rhs,D,H)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(D,H,j){super(),this.lhs=D,this.rhs=H,this.sideEffects=j}render({_n:D}){return`${this.lhs} = ${this.rhs};`+D}optimizeNames(D,H){if(!(this.lhs instanceof t.Name&&!D[this.lhs.str]&&!this.sideEffects))return this.rhs=F(this.rhs,D,H),this}get names(){let D=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(D,this.rhs)}}class c extends a{constructor(D,H,j,W){super(D,j,W),this.op=H}render({_n:D}){return`${this.lhs} ${this.op}= ${this.rhs};`+D}}class u extends s{constructor(D){super(),this.label=D,this.names={}}render({_n:D}){return`${this.label}:`+D}}class l extends s{constructor(D){super(),this.label=D,this.names={}}render({_n:D}){return`break${this.label?` ${this.label}`:""};`+D}}class d extends s{constructor(D){super(),this.error=D}render({_n:D}){return`throw ${this.error};`+D}get names(){return this.error.names}}class f extends s{constructor(D){super(),this.code=D}render({_n:D}){return`${this.code};`+D}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(D,H){return this.code=F(this.code,D,H),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class p extends s{constructor(D=[]){super(),this.nodes=D}render(D){return this.nodes.reduce((H,j)=>H+j.render(D),"")}optimizeNodes(){let{nodes:D}=this,H=D.length;for(;H--;){let j=D[H].optimizeNodes();Array.isArray(j)?D.splice(H,1,...j):j?D[H]=j:D.splice(H,1)}return D.length>0?this:void 0}optimizeNames(D,H){let{nodes:j}=this,W=j.length;for(;W--;){let ee=j[W];ee.optimizeNames(D,H)||(V(D,ee.names),j.splice(W,1))}return j.length>0?this:void 0}get names(){return this.nodes.reduce((D,H)=>N(D,H.names),{})}}class h extends p{render(D){return"{"+D._n+super.render(D)+"}"+D._n}}class m extends p{}class g extends h{}g.kind="else";class y extends h{constructor(D,H){super(H),this.condition=D}render(D){let H=`if(${this.condition})`+super.render(D);return this.else&&(H+="else "+this.else.render(D)),H}optimizeNodes(){super.optimizeNodes();let D=this.condition;if(D===!0)return this.nodes;let H=this.else;if(H){let j=H.optimizeNodes();H=this.else=Array.isArray(j)?new g(j):j}if(H)return D===!1?H instanceof y?H:H.nodes:this.nodes.length?this:new y(K(D),H instanceof y?[H]:H.nodes);if(!(D===!1||!this.nodes.length))return this}optimizeNames(D,H){var j;if(this.else=(j=this.else)===null||j===void 0?void 0:j.optimizeNames(D,H),!!(super.optimizeNames(D,H)||this.else))return this.condition=F(this.condition,D,H),this}get names(){let D=super.names;return C(D,this.condition),this.else&&N(D,this.else.names),D}}y.kind="if";class E extends h{}E.kind="for";class S extends E{constructor(D){super(),this.iteration=D}render(D){return`for(${this.iteration})`+super.render(D)}optimizeNames(D,H){if(super.optimizeNames(D,H))return this.iteration=F(this.iteration,D,H),this}get names(){return N(super.names,this.iteration.names)}}class _ extends E{constructor(D,H,j,W){super(),this.varKind=D,this.name=H,this.from=j,this.to=W}render(D){let H=D.es5?n.varKinds.var:this.varKind,{name:j,from:W,to:ee}=this;return`for(${H} ${j}=${W}; ${j}<${ee}; ${j}++)`+super.render(D)}get names(){let D=C(super.names,this.from);return C(D,this.to)}}class b extends E{constructor(D,H,j,W){super(),this.loop=D,this.varKind=H,this.name=j,this.iterable=W}render(D){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(D)}optimizeNames(D,H){if(super.optimizeNames(D,H))return this.iterable=F(this.iterable,D,H),this}get names(){return N(super.names,this.iterable.names)}}class T extends h{constructor(D,H,j){super(),this.name=D,this.args=H,this.async=j}render(D){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(D)}}T.kind="func";class A extends p{render(D){return"return "+super.render(D)}}A.kind="return";class R extends h{render(D){let H="try"+super.render(D);return this.catch&&(H+=this.catch.render(D)),this.finally&&(H+=this.finally.render(D)),H}optimizeNodes(){var D,H;return super.optimizeNodes(),(D=this.catch)===null||D===void 0||D.optimizeNodes(),(H=this.finally)===null||H===void 0||H.optimizeNodes(),this}optimizeNames(D,H){var j,W;return super.optimizeNames(D,H),(j=this.catch)===null||j===void 0||j.optimizeNames(D,H),(W=this.finally)===null||W===void 0||W.optimizeNames(D,H),this}get names(){let D=super.names;return this.catch&&N(D,this.catch.names),this.finally&&N(D,this.finally.names),D}}class x extends h{constructor(D){super(),this.error=D}render(D){return`catch(${this.error})`+super.render(D)}}x.kind="catch";class k extends h{render(D){return"finally"+super.render(D)}}k.kind="finally";class P{constructor(D,H={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...H,_n:H.lines?` +`:""},this._extScope=D,this._scope=new n.Scope({parent:D}),this._nodes=[new m]}toString(){return this._root.render(this.opts)}name(D){return this._scope.name(D)}scopeName(D){return this._extScope.name(D)}scopeValue(D,H){let j=this._extScope.value(D,H);return(this._values[j.prefix]||(this._values[j.prefix]=new Set)).add(j),j}getScopeValue(D,H){return this._extScope.getValue(D,H)}scopeRefs(D){return this._extScope.scopeRefs(D,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(D,H,j,W){let ee=this._scope.toName(H);return j!==void 0&&W&&(this._constants[ee.str]=j),this._leafNode(new o(D,ee,j)),ee}const(D,H,j){return this._def(n.varKinds.const,D,H,j)}let(D,H,j){return this._def(n.varKinds.let,D,H,j)}var(D,H,j){return this._def(n.varKinds.var,D,H,j)}assign(D,H,j){return this._leafNode(new a(D,H,j))}add(D,H){return this._leafNode(new c(D,e.operators.ADD,H))}code(D){return typeof D=="function"?D():D!==t.nil&&this._leafNode(new f(D)),this}object(...D){let H=["{"];for(let[j,W]of D)H.length>1&&H.push(","),H.push(j),(j!==W||this.opts.es5)&&(H.push(":"),(0,t.addCodeArg)(H,W));return H.push("}"),new t._Code(H)}if(D,H,j){if(this._blockNode(new y(D)),H&&j)this.code(H).else().code(j).endIf();else if(H)this.code(H).endIf();else if(j)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(D){return this._elseNode(new y(D))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(y,g)}_for(D,H){return this._blockNode(D),H&&this.code(H).endFor(),this}for(D,H){return this._for(new S(D),H)}forRange(D,H,j,W,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(D);return this._for(new _(ee,se,H,j),()=>W(se))}forOf(D,H,j,W=n.varKinds.const){let ee=this._scope.toName(D);if(this.opts.es5){let se=H instanceof t.Name?H:this.var("_arr",H);return this.forRange("_i",0,(0,t._)`${se}.length`,Me=>{this.var(ee,(0,t._)`${se}[${Me}]`),j(ee)})}return this._for(new b("of",W,ee,H),()=>j(ee))}forIn(D,H,j,W=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(D,(0,t._)`Object.keys(${H})`,j);let ee=this._scope.toName(D);return this._for(new b("in",W,ee,H),()=>j(ee))}endFor(){return this._endBlockNode(E)}label(D){return this._leafNode(new u(D))}break(D){return this._leafNode(new l(D))}return(D){let H=new A;if(this._blockNode(H),this.code(D),H.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(A)}try(D,H,j){if(!H&&!j)throw new Error('CodeGen: "try" without "catch" and "finally"');let W=new R;if(this._blockNode(W),this.code(D),H){let ee=this.name("e");this._currNode=W.catch=new x(ee),H(ee)}return j&&(this._currNode=W.finally=new k,this.code(j)),this._endBlockNode(x,k)}throw(D){return this._leafNode(new d(D))}block(D,H){return this._blockStarts.push(this._nodes.length),D&&this.code(D).endBlock(H),this}endBlock(D){let H=this._blockStarts.pop();if(H===void 0)throw new Error("CodeGen: not in self-balancing block");let j=this._nodes.length-H;if(j<0||D!==void 0&&j!==D)throw new Error(`CodeGen: wrong number of nodes: ${j} vs ${D} expected`);return this._nodes.length=H,this}func(D,H=t.nil,j,W){return this._blockNode(new T(D,H,j)),W&&this.code(W).endFunc(),this}endFunc(){return this._endBlockNode(T)}optimize(D=1){for(;D-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(D){return this._currNode.nodes.push(D),this}_blockNode(D){this._currNode.nodes.push(D),this._nodes.push(D)}_endBlockNode(D,H){let j=this._currNode;if(j instanceof D||H&&j instanceof H)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${H?`${D.kind}/${H.kind}`:D.kind}"`)}_elseNode(D){let H=this._currNode;if(!(H instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=H.else=D,this}get _root(){return this._nodes[0]}get _currNode(){let D=this._nodes;return D[D.length-1]}set _currNode(D){let H=this._nodes;H[H.length-1]=D}}e.CodeGen=P;function N(U,D){for(let H in D)U[H]=(U[H]||0)+(D[H]||0);return U}function C(U,D){return D instanceof t._CodeOrName?N(U,D.names):U}function F(U,D,H){if(U instanceof t.Name)return j(U);if(!W(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=j(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function j(ee){let se=H[ee.str];return se===void 0||D[ee.str]!==1?ee:(delete D[ee.str],se)}function W(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&D[se.str]===1&&H[se.str]!==void 0)}}function V(U,D){for(let H in D)U[H]=(U[H]||0)-(D[H]||0)}function K(U){return typeof U=="boolean"||typeof U=="number"||U===null?!U:(0,t._)`!${q(U)}`}e.not=K;var $=M(e.operators.AND);function B(...U){return U.reduce($)}e.and=B;var X=M(e.operators.OR);function G(...U){return U.reduce(X)}e.or=G;function M(U){return(D,H)=>D===t.nil?H:H===t.nil?D:(0,t._)`${q(D)} ${U} ${q(H)}`}function q(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),ur=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;var t=bn(),n=m6();function r(T){let A={};for(let R of T)A[R]=!0;return A}e.toHash=r;function i(T,A){return typeof A=="boolean"?A:Object.keys(A).length===0?!0:(s(T,A),!o(A,T.self.RULES.all))}e.alwaysValidSchema=i;function s(T,A=T.schema){let{opts:R,self:x}=T;if(!R.strictSchema||typeof A=="boolean")return;let k=x.RULES.keywords;for(let P in A)k[P]||b(T,`unknown keyword: "${P}"`)}e.checkUnknownRules=s;function o(T,A){if(typeof T=="boolean")return!T;for(let R in T)if(A[R])return!0;return!1}e.schemaHasRules=o;function a(T,A){if(typeof T=="boolean")return!T;for(let R in T)if(R!=="$ref"&&A.all[R])return!0;return!1}e.schemaHasRulesButRef=a;function c({topSchemaRef:T,schemaPath:A},R,x,k){if(!k){if(typeof R=="number"||typeof R=="boolean")return R;if(typeof R=="string")return(0,t._)`${R}`}return(0,t._)`${T}${A}${(0,t.getProperty)(x)}`}e.schemaRefOrVal=c;function u(T){return f(decodeURIComponent(T))}e.unescapeFragment=u;function l(T){return encodeURIComponent(d(T))}e.escapeFragment=l;function d(T){return typeof T=="number"?`${T}`:T.replace(/~/g,"~0").replace(/\//g,"~1")}e.escapeJsonPointer=d;function f(T){return T.replace(/~1/g,"/").replace(/~0/g,"~")}e.unescapeJsonPointer=f;function p(T,A){if(Array.isArray(T))for(let R of T)A(R);else A(T)}e.eachItem=p;function h({mergeNames:T,mergeToName:A,mergeValues:R,resultToName:x}){return(k,P,N,C)=>{let F=N===void 0?P:N instanceof t.Name?(P instanceof t.Name?T(k,P,N):A(k,P,N),N):P instanceof t.Name?(A(k,N,P),P):R(P,N);return C===t.Name&&!(F instanceof t.Name)?x(k,F):F}}e.mergeEvaluated={props:h({mergeNames:(T,A,R)=>T.if((0,t._)`${R} !== true && ${A} !== undefined`,()=>{T.if((0,t._)`${A} === true`,()=>T.assign(R,!0),()=>T.assign(R,(0,t._)`${R} || {}`).code((0,t._)`Object.assign(${R}, ${A})`))}),mergeToName:(T,A,R)=>T.if((0,t._)`${R} !== true`,()=>{A===!0?T.assign(R,!0):(T.assign(R,(0,t._)`${R} || {}`),g(T,R,A))}),mergeValues:(T,A)=>T===!0?!0:{...T,...A},resultToName:m}),items:h({mergeNames:(T,A,R)=>T.if((0,t._)`${R} !== true && ${A} !== undefined`,()=>T.assign(R,(0,t._)`${A} === true ? true : ${R} > ${A} ? ${R} : ${A}`)),mergeToName:(T,A,R)=>T.if((0,t._)`${R} !== true`,()=>T.assign(R,A===!0?!0:(0,t._)`${R} > ${A} ? ${R} : ${A}`)),mergeValues:(T,A)=>T===!0?!0:Math.max(T,A),resultToName:(T,A)=>T.var("items",A)})};function m(T,A){if(A===!0)return T.var("props",!0);let R=T.var("props",(0,t._)`{}`);return A!==void 0&&g(T,R,A),R}e.evaluatedPropsToName=m;function g(T,A,R){Object.keys(R).forEach(x=>T.assign((0,t._)`${A}${(0,t.getProperty)(x)}`,!0))}e.setEvaluated=g;var y={};function E(T,A){return T.scopeValue("func",{ref:A,code:y[A.code]||(y[A.code]=new n._Code(A.code))})}e.useFunc=E;var S;(function(T){T[T.Num=0]="Num",T[T.Str=1]="Str"})(S||(e.Type=S={}));function _(T,A,R){if(T instanceof t.Name){let x=A===S.Num;return R?x?(0,t._)`"[" + ${T} + "]"`:(0,t._)`"['" + ${T} + "']"`:x?(0,t._)`"/" + ${T}`:(0,t._)`"/" + ${T}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return R?(0,t.getProperty)(T).toString():"/"+d(T)}e.getErrorPath=_;function b(T,A,R=T.opts.strictSchema){if(R){if(A=`strict mode: ${A}`,R===!0)throw new Error(A);T.self.logger.warn(A)}}e.checkStrictMode=b}),i_=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={data:new t.Name("data"),valCxt:new t.Name("valCxt"),instancePath:new t.Name("instancePath"),parentData:new t.Name("parentData"),parentDataProperty:new t.Name("parentDataProperty"),rootData:new t.Name("rootData"),dynamicAnchors:new t.Name("dynamicAnchors"),vErrors:new t.Name("vErrors"),errors:new t.Name("errors"),this:new t.Name("this"),self:new t.Name("self"),scope:new t.Name("scope"),json:new t.Name("json"),jsonPos:new t.Name("jsonPos"),jsonLen:new t.Name("jsonLen"),jsonPart:new t.Name("jsonPart")};e.default=n}),C6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;var t=bn(),n=ur(),r=i_();e.keywordError={message:({keyword:g})=>(0,t.str)`must pass "${g}" keyword validation`},e.keyword$DataError={message:({keyword:g,schemaType:y})=>y?(0,t.str)`"${g}" keyword must be ${y} ($data)`:(0,t.str)`"${g}" keyword is invalid ($data)`};function i(g,y=e.keywordError,E,S){let{it:_}=g,{gen:b,compositeRule:T,allErrors:A}=_,R=d(g,y,E);S??(T||A)?c(b,R):u(_,(0,t._)`[${R}]`)}e.reportError=i;function s(g,y=e.keywordError,E){let{it:S}=g,{gen:_,compositeRule:b,allErrors:T}=S,A=d(g,y,E);c(_,A),b||T||u(S,r.default.vErrors)}e.reportExtraError=s;function o(g,y){g.assign(r.default.errors,y),g.if((0,t._)`${r.default.vErrors} !== null`,()=>g.if(y,()=>g.assign((0,t._)`${r.default.vErrors}.length`,y),()=>g.assign(r.default.vErrors,null)))}e.resetErrorsCount=o;function a({gen:g,keyword:y,schemaValue:E,data:S,errsCount:_,it:b}){if(_===void 0)throw new Error("ajv implementation error");let T=g.name("err");g.forRange("i",_,r.default.errors,A=>{g.const(T,(0,t._)`${r.default.vErrors}[${A}]`),g.if((0,t._)`${T}.instancePath === undefined`,()=>g.assign((0,t._)`${T}.instancePath`,(0,t.strConcat)(r.default.instancePath,b.errorPath))),g.assign((0,t._)`${T}.schemaPath`,(0,t.str)`${b.errSchemaPath}/${y}`),b.opts.verbose&&(g.assign((0,t._)`${T}.schema`,E),g.assign((0,t._)`${T}.data`,S))})}e.extendErrors=a;function c(g,y){let E=g.const("err",y);g.if((0,t._)`${r.default.vErrors} === null`,()=>g.assign(r.default.vErrors,(0,t._)`[${E}]`),(0,t._)`${r.default.vErrors}.push(${E})`),g.code((0,t._)`${r.default.errors}++`)}function u(g,y){let{gen:E,validateName:S,schemaEnv:_}=g;_.$async?E.throw((0,t._)`new ${g.ValidationError}(${y})`):(E.assign((0,t._)`${S}.errors`,y),E.return(!1))}var l={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function d(g,y,E){let{createErrors:S}=g.it;return S===!1?(0,t._)`{}`:f(g,y,E)}function f(g,y,E={}){let{gen:S,it:_}=g,b=[p(_,E),h(g,E)];return m(g,y,b),S.object(...b)}function p({errorPath:g},{instancePath:y}){let E=y?(0,t.str)`${g}${(0,n.getErrorPath)(y,n.Type.Str)}`:g;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,E)]}function h({keyword:g,it:{errSchemaPath:y}},{schemaPath:E,parentSchema:S}){let _=S?y:(0,t.str)`${y}/${g}`;return E&&(_=(0,t.str)`${_}${(0,n.getErrorPath)(E,n.Type.Str)}`),[l.schemaPath,_]}function m(g,{params:y,message:E},S){let{keyword:_,data:b,schemaValue:T,it:A}=g,{opts:R,propertyName:x,topSchemaRef:k,schemaPath:P}=A;S.push([l.keyword,_],[l.params,typeof y=="function"?y(g):y||(0,t._)`{}`]),R.messages&&S.push([l.message,typeof E=="function"?E(g):E]),R.verbose&&S.push([l.schema,T],[l.parentSchema,(0,t._)`${k}${P}`],[r.default.data,b]),x&&S.push([l.propertyName,x])}}),Ktr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=C6(),n=bn(),r=i_(),i={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?a(c,!1):typeof l=="object"&&l.$async===!0?u.return(r.default.data):(u.assign((0,n._)`${d}.errors`,null),u.return(!0))}e.topBoolOrEmptySchema=s;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),a(c)):l.var(u,!0)}e.boolOrEmptySchema=o;function a(c,u){let{gen:l,data:d}=c,f={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,t.reportError)(f,i,void 0,u)}}),tOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getRules=e.isJSONType=void 0;var t=["string","number","integer","boolean","null","object","array"],n=new Set(t);function r(s){return typeof s=="string"&&n.has(s)}e.isJSONType=r;function i(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=i}),nOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:i,self:s},o){let a=s.RULES.types[o];return a&&a!==!0&&n(i,a)}e.schemaHasRulesForType=t;function n(i,s){return s.rules.some(o=>r(i,o))}e.shouldUseGroup=n;function r(i,s){var o;return i[s.keyword]!==void 0||((o=s.definition.implements)===null||o===void 0?void 0:o.some(a=>i[a]!==void 0))}e.shouldUseRule=r}),g6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;var t=tOt(),n=nOt(),r=C6(),i=bn(),s=ur(),o;(function(S){S[S.Correct=0]="Correct",S[S.Wrong=1]="Wrong"})(o||(e.DataType=o={}));function a(S){let _=c(S.type);if(_.includes("null")){if(S.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!_.length&&S.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');S.nullable===!0&&_.push("null")}return _}e.getSchemaTypes=a;function c(S){let _=Array.isArray(S)?S:S?[S]:[];if(_.every(t.isJSONType))return _;throw new Error("type must be JSONType or JSONType[]: "+_.join(","))}e.getJSONTypes=c;function u(S,_){let{gen:b,data:T,opts:A}=S,R=d(_,A.coerceTypes),x=_.length>0&&!(R.length===0&&_.length===1&&(0,n.schemaHasRulesForType)(S,_[0]));if(x){let k=m(_,T,A.strictNumbers,o.Wrong);b.if(k,()=>{R.length?f(S,_,R):y(S)})}return x}e.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(S,_){return _?S.filter(b=>l.has(b)||_==="array"&&b==="array"):[]}function f(S,_,b){let{gen:T,data:A,opts:R}=S,x=T.let("dataType",(0,i._)`typeof ${A}`),k=T.let("coerced",(0,i._)`undefined`);R.coerceTypes==="array"&&T.if((0,i._)`${x} == 'object' && Array.isArray(${A}) && ${A}.length == 1`,()=>T.assign(A,(0,i._)`${A}[0]`).assign(x,(0,i._)`typeof ${A}`).if(m(_,A,R.strictNumbers),()=>T.assign(k,A))),T.if((0,i._)`${k} !== undefined`);for(let N of b)(l.has(N)||N==="array"&&R.coerceTypes==="array")&&P(N);T.else(),y(S),T.endIf(),T.if((0,i._)`${k} !== undefined`,()=>{T.assign(A,k),p(S,k)});function P(N){switch(N){case"string":T.elseIf((0,i._)`${x} == "number" || ${x} == "boolean"`).assign(k,(0,i._)`"" + ${A}`).elseIf((0,i._)`${A} === null`).assign(k,(0,i._)`""`);return;case"number":T.elseIf((0,i._)`${x} == "boolean" || ${A} === null + || (${x} == "string" && ${A} && ${A} == +${A})`).assign(k,(0,i._)`+${A}`);return;case"integer":T.elseIf((0,i._)`${x} === "boolean" || ${A} === null + || (${x} === "string" && ${A} && ${A} == +${A} && !(${A} % 1))`).assign(k,(0,i._)`+${A}`);return;case"boolean":T.elseIf((0,i._)`${A} === "false" || ${A} === 0 || ${A} === null`).assign(k,!1).elseIf((0,i._)`${A} === "true" || ${A} === 1`).assign(k,!0);return;case"null":T.elseIf((0,i._)`${A} === "" || ${A} === 0 || ${A} === false`),T.assign(k,null);return;case"array":T.elseIf((0,i._)`${x} === "string" || ${x} === "number" + || ${x} === "boolean" || ${A} === null`).assign(k,(0,i._)`[${A}]`)}}}function p({gen:S,parentData:_,parentDataProperty:b},T){S.if((0,i._)`${_} !== undefined`,()=>S.assign((0,i._)`${_}[${b}]`,T))}function h(S,_,b,T=o.Correct){let A=T===o.Correct?i.operators.EQ:i.operators.NEQ,R;switch(S){case"null":return(0,i._)`${_} ${A} null`;case"array":R=(0,i._)`Array.isArray(${_})`;break;case"object":R=(0,i._)`${_} && typeof ${_} == "object" && !Array.isArray(${_})`;break;case"integer":R=x((0,i._)`!(${_} % 1) && !isNaN(${_})`);break;case"number":R=x();break;default:return(0,i._)`typeof ${_} ${A} ${S}`}return T===o.Correct?R:(0,i.not)(R);function x(k=i.nil){return(0,i.and)((0,i._)`typeof ${_} == "number"`,k,b?(0,i._)`isFinite(${_})`:i.nil)}}e.checkDataType=h;function m(S,_,b,T){if(S.length===1)return h(S[0],_,b,T);let A,R=(0,s.toHash)(S);if(R.array&&R.object){let x=(0,i._)`typeof ${_} != "object"`;A=R.null?x:(0,i._)`!${_} || ${x}`,delete R.null,delete R.array,delete R.object}else A=i.nil;R.number&&delete R.integer;for(let x in R)A=(0,i.and)(A,h(x,_,b,T));return A}e.checkDataTypes=m;var g={message:({schema:S})=>`must be ${S}`,params:({schema:S,schemaValue:_})=>typeof S=="string"?(0,i._)`{type: ${S}}`:(0,i._)`{type: ${_}}`};function y(S){let _=E(S);(0,r.reportError)(_,g)}e.reportTypeError=y;function E(S){let{gen:_,data:b,schema:T}=S,A=(0,s.schemaRefOrVal)(S,T,"type");return{gen:_,keyword:"type",data:b,schema:T.type,schemaCode:A,schemaValue:A,parentSchema:T,params:{},it:S}}}),Ytr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=bn(),n=ur();function r(s,o){let{properties:a,items:c}=s.schema;if(o==="object"&&a)for(let u in a)i(s,u,a[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(s,l,u.default))}e.assignDefaults=r;function i(s,o,a){let{gen:c,compositeRule:u,data:l,opts:d}=s;if(a===void 0)return;let f=(0,t._)`${l}${(0,t.getProperty)(o)}`;if(u){(0,n.checkStrictMode)(s,`default is ignored for: ${f}`);return}let p=(0,t._)`${f} === undefined`;d.useDefaults==="empty"&&(p=(0,t._)`${p} || ${f} === null || ${f} === ""`),c.if(p,(0,t._)`${f} = ${(0,t.stringify)(a)}`)}}),Sp=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateUnion=e.validateArray=e.usePattern=e.callValidateCode=e.schemaProperties=e.allSchemaProperties=e.noPropertyInData=e.propertyInData=e.isOwnProperty=e.hasPropFunc=e.reportMissingProp=e.checkMissingProp=e.checkReportMissingProp=void 0;var t=bn(),n=ur(),r=i_(),i=ur();function s(S,_){let{gen:b,data:T,it:A}=S;b.if(d(b,T,_,A.opts.ownProperties),()=>{S.setParams({missingProperty:(0,t._)`${_}`},!0),S.error()})}e.checkReportMissingProp=s;function o({gen:S,data:_,it:{opts:b}},T,A){return(0,t.or)(...T.map(R=>(0,t.and)(d(S,_,R,b.ownProperties),(0,t._)`${A} = ${R}`)))}e.checkMissingProp=o;function a(S,_){S.setParams({missingProperty:_},!0),S.error()}e.reportMissingProp=a;function c(S){return S.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,t._)`Object.prototype.hasOwnProperty`})}e.hasPropFunc=c;function u(S,_,b){return(0,t._)`${c(S)}.call(${_}, ${b})`}e.isOwnProperty=u;function l(S,_,b,T){let A=(0,t._)`${_}${(0,t.getProperty)(b)} !== undefined`;return T?(0,t._)`${A} && ${u(S,_,b)}`:A}e.propertyInData=l;function d(S,_,b,T){let A=(0,t._)`${_}${(0,t.getProperty)(b)} === undefined`;return T?(0,t.or)(A,(0,t.not)(u(S,_,b))):A}e.noPropertyInData=d;function f(S){return S?Object.keys(S).filter(_=>_!=="__proto__"):[]}e.allSchemaProperties=f;function p(S,_){return f(_).filter(b=>!(0,n.alwaysValidSchema)(S,_[b]))}e.schemaProperties=p;function h({schemaCode:S,data:_,it:{gen:b,topSchemaRef:T,schemaPath:A,errorPath:R},it:x},k,P,N){let C=N?(0,t._)`${S}, ${_}, ${T}${A}`:_,F=[[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,R)],[r.default.parentData,x.parentData],[r.default.parentDataProperty,x.parentDataProperty],[r.default.rootData,r.default.rootData]];x.opts.dynamicRef&&F.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);let V=(0,t._)`${C}, ${b.object(...F)}`;return P!==t.nil?(0,t._)`${k}.call(${P}, ${V})`:(0,t._)`${k}(${V})`}e.callValidateCode=h;var m=(0,t._)`new RegExp`;function g({gen:S,it:{opts:_}},b){let T=_.unicodeRegExp?"u":"",{regExp:A}=_.code,R=A(b,T);return S.scopeValue("pattern",{key:R.toString(),ref:R,code:(0,t._)`${A.code==="new RegExp"?m:(0,i.useFunc)(S,A)}(${b}, ${T})`})}e.usePattern=g;function y(S){let{gen:_,data:b,keyword:T,it:A}=S,R=_.name("valid");if(A.allErrors){let k=_.let("valid",!0);return x(()=>_.assign(k,!1)),k}return _.var(R,!0),x(()=>_.break()),R;function x(k){let P=_.const("len",(0,t._)`${b}.length`);_.forRange("i",0,P,N=>{S.subschema({keyword:T,dataProp:N,dataPropType:n.Type.Num},R),_.if((0,t.not)(R),k)})}}e.validateArray=y;function E(S){let{gen:_,schema:b,keyword:T,it:A}=S;if(!Array.isArray(b))throw new Error("ajv implementation error");if(b.some(P=>(0,n.alwaysValidSchema)(A,P))&&!A.opts.unevaluated)return;let x=_.let("valid",!1),k=_.name("_valid");_.block(()=>b.forEach((P,N)=>{let C=S.subschema({keyword:T,schemaProp:N,compositeRule:!0},k);_.assign(x,(0,t._)`${x} || ${k}`),S.mergeValidEvaluated(C,k)||_.if((0,t.not)(x))})),S.result(x,()=>S.reset(),()=>S.error(!0))}e.validateUnion=E}),Ztr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=bn(),n=i_(),r=Sp(),i=C6();function s(p,h){let{gen:m,keyword:g,schema:y,parentSchema:E,it:S}=p,_=h.macro.call(S.self,y,E,S),b=l(m,g,_);S.opts.validateSchema!==!1&&S.self.validateSchema(_,!0);let T=m.name("valid");p.subschema({schema:_,schemaPath:t.nil,errSchemaPath:`${S.errSchemaPath}/${g}`,topSchemaRef:b,compositeRule:!0},T),p.pass(T,()=>p.error(!0))}e.macroKeywordCode=s;function o(p,h){var m;let{gen:g,keyword:y,schema:E,parentSchema:S,$data:_,it:b}=p;u(b,h);let T=!_&&h.compile?h.compile.call(b.self,E,S,b):h.validate,A=l(g,y,T),R=g.let("valid");p.block$data(R,x),p.ok((m=h.valid)!==null&&m!==void 0?m:R);function x(){if(h.errors===!1)N(),h.modifying&&a(p),C(()=>p.error());else{let F=h.async?k():P();h.modifying&&a(p),C(()=>c(p,F))}}function k(){let F=g.let("ruleErrs",null);return g.try(()=>N((0,t._)`await `),V=>g.assign(R,!1).if((0,t._)`${V} instanceof ${b.ValidationError}`,()=>g.assign(F,(0,t._)`${V}.errors`),()=>g.throw(V))),F}function P(){let F=(0,t._)`${A}.errors`;return g.assign(F,null),N(t.nil),F}function N(F=h.async?(0,t._)`await `:t.nil){let V=b.opts.passContext?n.default.this:n.default.self,K=!("compile"in h&&!_||h.schema===!1);g.assign(R,(0,t._)`${F}${(0,r.callValidateCode)(p,A,V,K)}`,h.modifying)}function C(F){var V;g.if((0,t.not)((V=h.valid)!==null&&V!==void 0?V:R),F)}}e.funcKeywordCode=o;function a(p){let{gen:h,data:m,it:g}=p;h.if(g.parentData,()=>h.assign(m,(0,t._)`${g.parentData}[${g.parentDataProperty}]`))}function c(p,h){let{gen:m}=p;m.if((0,t._)`Array.isArray(${h})`,()=>{m.assign(n.default.vErrors,(0,t._)`${n.default.vErrors} === null ? ${h} : ${n.default.vErrors}.concat(${h})`).assign(n.default.errors,(0,t._)`${n.default.vErrors}.length`),(0,i.extendErrors)(p)},()=>p.error())}function u({schemaEnv:p},h){if(h.async&&!p.$async)throw new Error("async keyword in sync schema")}function l(p,h,m){if(m===void 0)throw new Error(`keyword "${h}" failed to compile`);return p.scopeValue("keyword",typeof m=="function"?{ref:m}:{ref:m,code:(0,t.stringify)(m)})}function d(p,h,m=!1){return!h.length||h.some(g=>g==="array"?Array.isArray(p):g==="object"?p&&typeof p=="object"&&!Array.isArray(p):typeof p==g||m&&typeof p>"u")}e.validSchemaType=d;function f({schema:p,opts:h,self:m,errSchemaPath:g},y,E){if(Array.isArray(y.keyword)?!y.keyword.includes(E):y.keyword!==E)throw new Error("ajv implementation error");let S=y.dependencies;if(S?.some(_=>!Object.prototype.hasOwnProperty.call(p,_)))throw new Error(`parent schema must have dependencies of ${E}: ${S.join(",")}`);if(y.validateSchema&&!y.validateSchema(p[E])){let b=`keyword "${E}" value is invalid at path "${g}": `+m.errorsText(y.validateSchema.errors);if(h.validateSchema==="log")m.logger.error(b);else throw new Error(b)}}e.validateKeywordUsage=f}),Jtr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=bn(),n=ur();function r(o,{keyword:a,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:f}){if(a!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){let p=o.schema[a];return c===void 0?{schema:p,schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(a)}`,errSchemaPath:`${o.errSchemaPath}/${a}`}:{schema:p[c],schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(a)}${(0,t.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${a}/${(0,n.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||f===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:f,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}e.getSubschema=r;function i(o,a,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:f}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:p}=a;if(c!==void 0){let{errorPath:m,dataPathArr:g,opts:y}=a,E=p.let("data",(0,t._)`${a.data}${(0,t.getProperty)(c)}`,!0);h(E),o.errorPath=(0,t.str)`${m}${(0,n.getErrorPath)(c,u,y.jsPropertySyntax)}`,o.parentDataProperty=(0,t._)`${c}`,o.dataPathArr=[...g,o.parentDataProperty]}if(l!==void 0){let m=l instanceof t.Name?l:p.let("data",l,!0);h(m),f!==void 0&&(o.propertyName=f)}d&&(o.dataTypes=d);function h(m){o.data=m,o.dataLevel=a.dataLevel+1,o.dataTypes=[],a.definedProperties=new Set,o.parentData=a.data,o.dataNames=[...a.dataNames,m]}}e.extendSubschemaData=i;function s(o,{jtdDiscriminator:a,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(o.compositeRule=u),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=a,o.jtdMetadata=c}e.extendSubschemaMode=s}),rOt=Xe((e,t)=>{t.exports=function n(r,i){if(r===i)return!0;if(r&&i&&typeof r=="object"&&typeof i=="object"){if(r.constructor!==i.constructor)return!1;var s,o,a;if(Array.isArray(r)){if(s=r.length,s!=i.length)return!1;for(o=s;o--!==0;)if(!n(r[o],i[o]))return!1;return!0}if(r.constructor===RegExp)return r.source===i.source&&r.flags===i.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===i.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===i.toString();if(a=Object.keys(r),s=a.length,s!==Object.keys(i).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,a[o]))return!1;for(o=s;o--!==0;){var c=a[o];if(!n(r[c],i[c]))return!1}return!0}return r!==r&&i!==i}}),Xtr=Xe((e,t)=>{var n=t.exports=function(s,o,a){typeof o=="function"&&(a=o,o={}),a=o.cb||a;var c=typeof a=="function"?a:a.pre||function(){},u=a.post||function(){};r(o,c,u,s,"",s)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function r(s,o,a,c,u,l,d,f,p,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,f,p,h);for(var m in c){var g=c[m];if(Array.isArray(g)){if(m in n.arrayKeywords)for(var y=0;y{Object.defineProperty(e,"__esModule",{value:!0}),e.getSchemaRefs=e.resolveUrl=e.normalizeId=e._getFullPath=e.getFullPath=e.inlineRef=void 0;var t=ur(),n=rOt(),r=Xtr(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(g,y=!0){return typeof g=="boolean"?!0:y===!0?!a(g):y?c(g)<=y:!1}e.inlineRef=s;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function a(g){for(let y in g){if(o.has(y))return!0;let E=g[y];if(Array.isArray(E)&&E.some(a)||typeof E=="object"&&a(E))return!0}return!1}function c(g){let y=0;for(let E in g){if(E==="$ref")return 1/0;if(y++,!i.has(E)&&(typeof g[E]=="object"&&(0,t.eachItem)(g[E],S=>y+=c(S)),y===1/0))return 1/0}return y}function u(g,y="",E){E!==!1&&(y=f(y));let S=g.parse(y);return l(g,S)}e.getFullPath=u;function l(g,y){return g.serialize(y).split("#")[0]+"#"}e._getFullPath=l;var d=/#\/?$/;function f(g){return g?g.replace(d,""):""}e.normalizeId=f;function p(g,y,E){return E=f(E),g.resolve(y,E)}e.resolveUrl=p;var h=/^[a-z_][-a-z0-9._]*$/i;function m(g,y){if(typeof g=="boolean")return{};let{schemaId:E,uriResolver:S}=this.opts,_=f(g[E]||y),b={"":_},T=u(S,_,!1),A={},R=new Set;return r(g,{allKeys:!0},(P,N,C,F)=>{if(F===void 0)return;let V=T+N,K=b[F];typeof P[E]=="string"&&(K=$.call(this,P[E])),B.call(this,P.$anchor),B.call(this,P.$dynamicAnchor),b[N]=K;function $(X){let G=this.opts.uriResolver.resolve;if(X=f(K?G(K,X):X),R.has(X))throw k(X);R.add(X);let M=this.refs[X];return typeof M=="string"&&(M=this.refs[M]),typeof M=="object"?x(P,M.schema,X):X!==f(V)&&(X[0]==="#"?(x(P,A[X],X),A[X]=P):this.refs[X]=V),X}function B(X){if(typeof X=="string"){if(!h.test(X))throw new Error(`invalid anchor "${X}"`);$.call(this,`#${X}`)}}}),A;function x(P,N,C){if(N!==void 0&&!n(P,N))throw k(C)}function k(P){return new Error(`reference "${P}" resolves to more than one schema`)}}e.getSchemaRefs=m}),D6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=Ktr(),n=g6(),r=nOt(),i=g6(),s=Ytr(),o=Ztr(),a=Jtr(),c=bn(),u=i_(),l=M6(),d=ur(),f=C6();function p(z){if(T(z)&&(R(z),b(z))){y(z);return}h(z,()=>(0,t.topBoolOrEmptySchema)(z))}e.validateFunctionCode=p;function h({gen:z,validateName:J,schema:oe,schemaEnv:le,opts:be},kt){be.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,le.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,be)}`),g(z,be),z.code(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(be)}`,le.$async,()=>z.code(S(oe,be)).code(kt))}function m(z){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${z.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function g(z,J){z.if(u.default.valCxt,()=>{z.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),z.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),z.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),z.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),J.dynamicRef&&z.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{z.var(u.default.instancePath,(0,c._)`""`),z.var(u.default.parentData,(0,c._)`undefined`),z.var(u.default.parentDataProperty,(0,c._)`undefined`),z.var(u.default.rootData,u.default.data),J.dynamicRef&&z.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function y(z){let{schema:J,opts:oe,gen:le}=z;h(z,()=>{oe.$comment&&J.$comment&&F(z),P(z),le.let(u.default.vErrors,null),le.let(u.default.errors,0),oe.unevaluated&&E(z),x(z),V(z)})}function E(z){let{gen:J,validateName:oe}=z;z.evaluated=J.const("evaluated",(0,c._)`${oe}.evaluated`),J.if((0,c._)`${z.evaluated}.dynamicProps`,()=>J.assign((0,c._)`${z.evaluated}.props`,(0,c._)`undefined`)),J.if((0,c._)`${z.evaluated}.dynamicItems`,()=>J.assign((0,c._)`${z.evaluated}.items`,(0,c._)`undefined`))}function S(z,J){let oe=typeof z=="object"&&z[J.schemaId];return oe&&(J.code.source||J.code.process)?(0,c._)`/*# sourceURL=${oe} */`:c.nil}function _(z,J){if(T(z)&&(R(z),b(z))){A(z,J);return}(0,t.boolOrEmptySchema)(z,J)}function b({schema:z,self:J}){if(typeof z=="boolean")return!z;for(let oe in z)if(J.RULES.all[oe])return!0;return!1}function T(z){return typeof z.schema!="boolean"}function A(z,J){let{schema:oe,gen:le,opts:be}=z;be.$comment&&oe.$comment&&F(z),N(z),C(z);let kt=le.const("_errs",u.default.errors);x(z,kt),le.var(J,(0,c._)`${kt} === ${u.default.errors}`)}function R(z){(0,d.checkUnknownRules)(z),k(z)}function x(z,J){if(z.opts.jtd)return $(z,[],!1,J);let oe=(0,n.getSchemaTypes)(z.schema),le=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!le,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:le,self:be}=z;J.$ref&&le.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,be.RULES)&&be.logger.warn(`$ref: keywords ignored in schema at path "${oe}"`)}function P(z){let{schema:J,opts:oe}=z;J.default!==void 0&&oe.useDefaults&&oe.strictSchema&&(0,d.checkStrictMode)(z,"default is ignored in the schema root")}function N(z){let J=z.schema[z.opts.schemaId];J&&(z.baseId=(0,l.resolveUrl)(z.opts.uriResolver,z.baseId,J))}function C(z){if(z.schema.$async&&!z.schemaEnv.$async)throw new Error("async schema in sync schema")}function F({gen:z,schemaEnv:J,schema:oe,errSchemaPath:le,opts:be}){let kt=oe.$comment;if(be.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof be.$comment=="function"){let Ue=(0,c.str)`${le}/$comment`,Ln=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Ln}.schema)`)}}function V(z){let{gen:J,schemaEnv:oe,validateName:le,ValidationError:be,opts:kt}=z;oe.$async?J.if((0,c._)`${u.default.errors} === 0`,()=>J.return(u.default.data),()=>J.throw((0,c._)`new ${be}(${u.default.vErrors})`)):(J.assign((0,c._)`${le}.errors`,u.default.vErrors),kt.unevaluated&&K(z),J.return((0,c._)`${u.default.errors} === 0`))}function K({gen:z,evaluated:J,props:oe,items:le}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),le instanceof c.Name&&z.assign((0,c._)`${J}.items`,le)}function $(z,J,oe,le){let{gen:be,schema:kt,data:Ue,allErrors:Ln,opts:lr,self:sn}=z,{RULES:dr}=sn;if(kt.$ref&&(lr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,dr))){be.block(()=>ee(z,"$ref",dr.all.$ref.definition));return}lr.jtd||X(z,J),be.block(()=>{for(let Rs of dr.rules)tl(Rs);tl(dr.post)});function tl(Rs){(0,r.shouldUseGroup)(kt,Rs)&&(Rs.type?(be.if((0,i.checkDataType)(Rs.type,Ue,lr.strictNumbers)),B(z,Rs),J.length===1&&J[0]===Rs.type&&oe&&(be.else(),(0,i.reportTypeError)(z)),be.endIf()):B(z,Rs),Ln||be.if((0,c._)`${u.default.errors} === ${le||0}`))}}function B(z,J){let{gen:oe,schema:le,opts:{useDefaults:be}}=z;be&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let kt of J.rules)(0,r.shouldUseRule)(le,kt)&&ee(z,kt.keyword,kt.definition,J.type)})}function X(z,J){z.schemaEnv.meta||!z.opts.strictTypes||(G(z,J),z.opts.allowUnionTypes||M(z,J),q(z,z.dataTypes))}function G(z,J){if(J.length){if(!z.dataTypes.length){z.dataTypes=J;return}J.forEach(oe=>{D(z.dataTypes,oe)||j(z,`type "${oe}" not allowed by context "${z.dataTypes.join(",")}"`)}),H(z,J)}}function M(z,J){J.length>1&&!(J.length===2&&J.includes("null"))&&j(z,"use allowUnionTypes to allow union type keyword")}function q(z,J){let oe=z.self.RULES.all;for(let le in oe){let be=oe[le];if(typeof be=="object"&&(0,r.shouldUseRule)(z.schema,be)){let{type:kt}=be.definition;kt.length&&!kt.some(Ue=>U(J,Ue))&&j(z,`missing type "${kt.join(",")}" for keyword "${le}"`)}}}function U(z,J){return z.includes(J)||J==="number"&&z.includes("integer")}function D(z,J){return z.includes(J)||J==="integer"&&z.includes("number")}function H(z,J){let oe=[];for(let le of z.dataTypes)D(J,le)?oe.push(le):J.includes("integer")&&le==="number"&&oe.push("integer");z.dataTypes=oe}function j(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class W{constructor(J,oe,le){if((0,o.validateKeywordUsage)(J,oe,le),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=le,this.data=J.data,this.schema=J.schema[le],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,le,this.$data),this.schemaType=oe.schemaType,this.parentSchema=J.schema,this.params={},this.it=J,this.def=oe,this.$data)this.schemaCode=J.gen.const("vSchema",Re(this.$data,J));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,oe.schemaType,oe.allowUndefined))throw new Error(`${le} value must be ${JSON.stringify(oe.schemaType)}`);("code"in oe?oe.trackErrors:oe.errors!==!1)&&(this.errsCount=J.gen.const("_errs",u.default.errors))}result(J,oe,le){this.failResult((0,c.not)(J),oe,le)}failResult(J,oe,le){this.gen.if(J),le?le():this.error(),oe?(this.gen.else(),oe(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(J,oe){this.failResult((0,c.not)(J),void 0,oe)}fail(J){if(J===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(J),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(J){if(!this.$data)return this.fail(J);let{schemaCode:oe}=this;this.fail((0,c._)`${oe} !== undefined && (${(0,c.or)(this.invalid$data(),J)})`)}error(J,oe,le){if(oe){this.setParams(oe),this._error(J,le),this.setParams({});return}this._error(J,le)}_error(J,oe){(J?f.reportExtraError:f.reportError)(this,this.def.error,oe)}$dataError(){(0,f.reportError)(this,this.def.$dataError||f.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f.resetErrorsCount)(this.gen,this.errsCount)}ok(J){this.allErrors||this.gen.if(J)}setParams(J,oe){oe?Object.assign(this.params,J):this.params=J}block$data(J,oe,le=c.nil){this.gen.block(()=>{this.check$data(J,le),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:le,schemaCode:be,schemaType:kt,def:Ue}=this;le.if((0,c.or)((0,c._)`${be} === undefined`,oe)),J!==c.nil&&le.assign(J,!0),(kt.length||Ue.validateSchema)&&(le.elseIf(this.invalid$data()),this.$dataError(),J!==c.nil&&le.assign(J,!1)),le.else()}invalid$data(){let{gen:J,schemaCode:oe,schemaType:le,def:be,it:kt}=this;return(0,c.or)(Ue(),Ln());function Ue(){if(le.length){if(!(oe instanceof c.Name))throw new Error("ajv implementation error");let lr=Array.isArray(le)?le:[le];return(0,c._)`${(0,i.checkDataTypes)(lr,oe,kt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Ln(){if(be.validateSchema){let lr=J.scopeValue("validate$data",{ref:be.validateSchema});return(0,c._)`!${lr}(${oe})`}return c.nil}}subschema(J,oe){let le=(0,a.getSubschema)(this.it,J);(0,a.extendSubschemaData)(le,this.it,J),(0,a.extendSubschemaMode)(le,J);let be={...this.it,...le,items:void 0,props:void 0};return _(be,oe),be}mergeEvaluated(J,oe){let{it:le,gen:be}=this;le.opts.unevaluated&&(le.props!==!0&&J.props!==void 0&&(le.props=d.mergeEvaluated.props(be,J.props,le.props,oe)),le.items!==!0&&J.items!==void 0&&(le.items=d.mergeEvaluated.items(be,J.items,le.items,oe)))}mergeValidEvaluated(J,oe){let{it:le,gen:be}=this;if(le.opts.unevaluated&&(le.props!==!0||le.items!==!0))return be.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=W;function ee(z,J,oe,le){let be=new W(z,oe,J);"code"in oe?oe.code(be,le):be.$data&&oe.validate?(0,o.funcKeywordCode)(be,oe):"macro"in oe?(0,o.macroKeywordCode)(be,oe):(oe.compile||oe.validate)&&(0,o.funcKeywordCode)(be,oe)}var se=/^\/(?:[^~]|~0|~1)*$/,Me=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Re(z,{dataLevel:J,dataNames:oe,dataPathArr:le}){let be,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);be=z,kt=u.default.rootData}else{let sn=Me.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let dr=+sn[1];if(be=sn[2],be==="#"){if(dr>=J)throw new Error(lr("property/index",dr));return le[J-dr]}if(dr>J)throw new Error(lr("data",dr));if(kt=oe[J-dr],!be)return kt}let Ue=kt,Ln=be.split("/");for(let sn of Ln)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function lr(sn,dr){return`Cannot access ${sn} ${dr} levels up, current level is ${J}`}}e.getData=Re}),bTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});class t extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}}e.default=t}),L6=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=M6();class n extends Error{constructor(i,s,o,a){super(a||`can't resolve reference ${o} from id ${s}`),this.missingRef=(0,t.resolveUrl)(i,s,o),this.missingSchema=(0,t.normalizeId)((0,t.getFullPath)(i,this.missingRef))}}e.default=n}),TTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=bn(),n=bTe(),r=i_(),i=M6(),s=ur(),o=D6();class a{constructor(E){var S;this.refs={},this.dynamicAnchors={};let _;typeof E.schema=="object"&&(_=E.schema),this.schema=E.schema,this.schemaId=E.schemaId,this.root=E.root||this,this.baseId=(S=E.baseId)!==null&&S!==void 0?S:(0,i.normalizeId)(_?.[E.schemaId||"$id"]),this.schemaPath=E.schemaPath,this.localRefs=E.localRefs,this.meta=E.meta,this.$async=_?.$async,this.refs={}}}e.SchemaEnv=a;function c(y){let E=d.call(this,y);if(E)return E;let S=(0,i.getFullPath)(this.opts.uriResolver,y.root.baseId),{es5:_,lines:b}=this.opts.code,{ownProperties:T}=this.opts,A=new t.CodeGen(this.scope,{es5:_,lines:b,ownProperties:T}),R;y.$async&&(R=A.scopeValue("Error",{ref:n.default,code:(0,t._)`require("ajv/dist/runtime/validation_error").default`}));let x=A.scopeName("validate");y.validateName=x;let k={gen:A,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:A.scopeValue("schema",this.opts.code.source===!0?{ref:y.schema,code:(0,t.stringify)(y.schema)}:{ref:y.schema}),validateName:x,ValidationError:R,schema:y.schema,schemaEnv:y,rootId:S,baseId:y.baseId||S,schemaPath:t.nil,errSchemaPath:y.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,t._)`""`,opts:this.opts,self:this},P;try{this._compilations.add(y),(0,o.validateFunctionCode)(k),A.optimize(this.opts.code.optimize);let N=A.toString();P=`${A.scopeRefs(r.default.scope)}return ${N}`,this.opts.code.process&&(P=this.opts.code.process(P,y));let F=new Function(`${r.default.self}`,`${r.default.scope}`,P)(this,this.scope.get());if(this.scope.value(x,{ref:F}),F.errors=null,F.schema=y.schema,F.schemaEnv=y,y.$async&&(F.$async=!0),this.opts.code.source===!0&&(F.source={validateName:x,validateCode:N,scopeValues:A._values}),this.opts.unevaluated){let{props:V,items:K}=k;F.evaluated={props:V instanceof t.Name?void 0:V,items:K instanceof t.Name?void 0:K,dynamicProps:V instanceof t.Name,dynamicItems:K instanceof t.Name},F.source&&(F.source.evaluated=(0,t.stringify)(F.evaluated))}return y.validate=F,y}catch(N){throw delete y.validate,delete y.validateName,P&&this.logger.error("Error compiling schema, function code:",P),N}finally{this._compilations.delete(y)}}e.compileSchema=c;function u(y,E,S){var _;S=(0,i.resolveUrl)(this.opts.uriResolver,E,S);let b=y.refs[S];if(b)return b;let T=p.call(this,y,S);if(T===void 0){let A=(_=y.localRefs)===null||_===void 0?void 0:_[S],{schemaId:R}=this.opts;A&&(T=new a({schema:A,schemaId:R,root:y,baseId:E}))}if(T!==void 0)return y.refs[S]=l.call(this,T)}e.resolveRef=u;function l(y){return(0,i.inlineRef)(y.schema,this.opts.inlineRefs)?y.schema:y.validate?y:c.call(this,y)}function d(y){for(let E of this._compilations)if(f(E,y))return E}e.getCompilingSchema=d;function f(y,E){return y.schema===E.schema&&y.root===E.root&&y.baseId===E.baseId}function p(y,E){let S;for(;typeof(S=this.refs[E])=="string";)E=S;return S||this.schemas[E]||h.call(this,y,E)}function h(y,E){let S=this.opts.uriResolver.parse(E),_=(0,i._getFullPath)(this.opts.uriResolver,S),b=(0,i.getFullPath)(this.opts.uriResolver,y.baseId,void 0);if(Object.keys(y.schema).length>0&&_===b)return g.call(this,S,y);let T=(0,i.normalizeId)(_),A=this.refs[T]||this.schemas[T];if(typeof A=="string"){let R=h.call(this,y,A);return typeof R?.schema!="object"?void 0:g.call(this,S,R)}if(typeof A?.schema=="object"){if(A.validate||c.call(this,A),T===(0,i.normalizeId)(E)){let{schema:R}=A,{schemaId:x}=this.opts,k=R[x];return k&&(b=(0,i.resolveUrl)(this.opts.uriResolver,b,k)),new a({schema:R,schemaId:x,root:y,baseId:b})}return g.call(this,S,A)}}e.resolveSchema=h;var m=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function g(y,{baseId:E,schema:S,root:_}){var b;if(((b=y.fragment)===null||b===void 0?void 0:b[0])!=="/")return;for(let R of y.fragment.slice(1).split("/")){if(typeof S=="boolean")return;let x=S[(0,s.unescapeFragment)(R)];if(x===void 0)return;S=x;let k=typeof S=="object"&&S[this.opts.schemaId];!m.has(R)&&k&&(E=(0,i.resolveUrl)(this.opts.uriResolver,E,k))}let T;if(typeof S!="boolean"&&S.$ref&&!(0,s.schemaHasRulesButRef)(S,this.RULES)){let R=(0,i.resolveUrl)(this.opts.uriResolver,E,S.$ref);T=h.call(this,_,R)}let{schemaId:A}=this.opts;if(T=T||new a({schema:S,schemaId:A,root:_,baseId:E}),T.schema!==T.root.schema)return T}}),Qtr=Xe((e,t)=>{t.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),$tr=Xe((e,t)=>{var n={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};t.exports={HEX:n}}),enr=Xe((e,t)=>{var{HEX:n}=$tr(),r=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function i(y){if(u(y,".")<3)return{host:y,isIPV4:!1};let E=y.match(r)||[],[S]=E;return S?{host:c(S,"."),isIPV4:!0}:{host:y,isIPV4:!1}}function s(y,E=!1){let S="",_=!0;for(let b of y){if(n[b]===void 0)return;b!=="0"&&_===!0&&(_=!1),_||(S+=b)}return E&&S.length===0&&(S="0"),S}function o(y){let E=0,S={error:!1,address:"",zone:""},_=[],b=[],T=!1,A=!1,R=!1;function x(){if(b.length){if(T===!1){let k=s(b);if(k!==void 0)_.push(k);else return S.error=!0,!1}b.length=0}return!0}for(let k=0;k7){S.error=!0;break}k-1>=0&&y[k-1]===":"&&(A=!0);continue}else if(P==="%"){if(!x())break;T=!0}else{b.push(P);continue}}return b.length&&(T?S.zone=b.join(""):R?_.push(b.join("")):_.push(s(b))),S.address=_.join(""),S}function a(y){if(u(y,":")<2)return{host:y,isIPV6:!1};let E=o(y);if(E.error)return{host:y,isIPV6:!1};{let S=E.address,_=E.address;return E.zone&&(S+="%"+E.zone,_+="%25"+E.zone),{host:S,escapedHost:_,isIPV6:!0}}}function c(y,E){let S="",_=!0,b=y.length;for(let T=0;T{var n=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function i(_){return typeof _.secure=="boolean"?_.secure:String(_.scheme).toLowerCase()==="wss"}function s(_){return _.host||(_.error=_.error||"HTTP URIs must have a host."),_}function o(_){let b=String(_.scheme).toLowerCase()==="https";return(_.port===(b?443:80)||_.port==="")&&(_.port=void 0),_.path||(_.path="/"),_}function a(_){return _.secure=i(_),_.resourceName=(_.path||"/")+(_.query?"?"+_.query:""),_.path=void 0,_.query=void 0,_}function c(_){if((_.port===(i(_)?443:80)||_.port==="")&&(_.port=void 0),typeof _.secure=="boolean"&&(_.scheme=_.secure?"wss":"ws",_.secure=void 0),_.resourceName){let[b,T]=_.resourceName.split("?");_.path=b&&b!=="/"?b:void 0,_.query=T,_.resourceName=void 0}return _.fragment=void 0,_}function u(_,b){if(!_.path)return _.error="URN can not be parsed",_;let T=_.path.match(r);if(T){let A=b.scheme||_.scheme||"urn";_.nid=T[1].toLowerCase(),_.nss=T[2];let R=`${A}:${b.nid||_.nid}`,x=S[R];_.path=void 0,x&&(_=x.parse(_,b))}else _.error=_.error||"URN can not be parsed.";return _}function l(_,b){let T=b.scheme||_.scheme||"urn",A=_.nid.toLowerCase(),R=`${T}:${b.nid||A}`,x=S[R];x&&(_=x.serialize(_,b));let k=_,P=_.nss;return k.path=`${A||b.nid}:${P}`,b.skipEscape=!0,k}function d(_,b){let T=_;return T.uuid=T.nss,T.nss=void 0,!b.tolerant&&(!T.uuid||!n.test(T.uuid))&&(T.error=T.error||"UUID is not valid."),T}function f(_){let b=_;return b.nss=(_.uuid||"").toLowerCase(),b}var p={scheme:"http",domainHost:!0,parse:s,serialize:o},h={scheme:"https",domainHost:p.domainHost,parse:s,serialize:o},m={scheme:"ws",domainHost:!0,parse:a,serialize:c},g={scheme:"wss",domainHost:m.domainHost,parse:m.parse,serialize:m.serialize},y={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},E={scheme:"urn:uuid",parse:d,serialize:f,skipNormalize:!0},S={http:p,https:h,ws:m,wss:g,urn:y,"urn:uuid":E};t.exports=S}),nnr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=enr(),a=tnr();function c(E,S){return typeof E=="string"?E=f(g(E,S),S):typeof E=="object"&&(E=g(f(E,S),S)),E}function u(E,S,_){let b=Object.assign({scheme:"null"},_),T=l(g(E,b),g(S,b),b,!0);return f(T,{...b,skipEscape:!0})}function l(E,S,_,b){let T={};return b||(E=g(f(E,_),_),S=g(f(S,_),_)),_=_||{},!_.tolerant&&S.scheme?(T.scheme=S.scheme,T.userinfo=S.userinfo,T.host=S.host,T.port=S.port,T.path=i(S.path||""),T.query=S.query):(S.userinfo!==void 0||S.host!==void 0||S.port!==void 0?(T.userinfo=S.userinfo,T.host=S.host,T.port=S.port,T.path=i(S.path||""),T.query=S.query):(S.path?(S.path.charAt(0)==="/"?T.path=i(S.path):((E.userinfo!==void 0||E.host!==void 0||E.port!==void 0)&&!E.path?T.path="/"+S.path:E.path?T.path=E.path.slice(0,E.path.lastIndexOf("/")+1)+S.path:T.path=S.path,T.path=i(T.path)),T.query=S.query):(T.path=E.path,S.query!==void 0?T.query=S.query:T.query=E.query),T.userinfo=E.userinfo,T.host=E.host,T.port=E.port),T.scheme=E.scheme),T.fragment=S.fragment,T}function d(E,S,_){return typeof E=="string"?(E=unescape(E),E=f(o(g(E,_),!0),{..._,skipEscape:!0})):typeof E=="object"&&(E=f(o(E,!0),{..._,skipEscape:!0})),typeof S=="string"?(S=unescape(S),S=f(o(g(S,_),!0),{..._,skipEscape:!0})):typeof S=="object"&&(S=f(o(S,!0),{..._,skipEscape:!0})),E.toLowerCase()===S.toLowerCase()}function f(E,S){let _={host:E.host,scheme:E.scheme,userinfo:E.userinfo,port:E.port,path:E.path,query:E.query,nid:E.nid,nss:E.nss,uuid:E.uuid,fragment:E.fragment,reference:E.reference,resourceName:E.resourceName,secure:E.secure,error:""},b=Object.assign({},S),T=[],A=a[(b.scheme||_.scheme||"").toLowerCase()];A&&A.serialize&&A.serialize(_,b),_.path!==void 0&&(b.skipEscape?_.path=unescape(_.path):(_.path=escape(_.path),_.scheme!==void 0&&(_.path=_.path.split("%3A").join(":")))),b.reference!=="suffix"&&_.scheme&&T.push(_.scheme,":");let R=s(_);if(R!==void 0&&(b.reference!=="suffix"&&T.push("//"),T.push(R),_.path&&_.path.charAt(0)!=="/"&&T.push("/")),_.path!==void 0){let x=_.path;!b.absolutePath&&(!A||!A.absolutePath)&&(x=i(x)),R===void 0&&(x=x.replace(/^\/\//u,"/%2F")),T.push(x)}return _.query!==void 0&&T.push("?",_.query),_.fragment!==void 0&&T.push("#",_.fragment),T.join("")}var p=Array.from({length:127},(E,S)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(S)));function h(E){let S=0;for(let _=0,b=E.length;_126||p[S])return!0;return!1}var m=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(E,S){let _=Object.assign({},S),b={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},T=E.indexOf("%")!==-1,A=!1;_.reference==="suffix"&&(E=(_.scheme?_.scheme+":":"")+"//"+E);let R=E.match(m);if(R){if(b.scheme=R[1],b.userinfo=R[3],b.host=R[4],b.port=parseInt(R[5],10),b.path=R[6]||"",b.query=R[7],b.fragment=R[8],isNaN(b.port)&&(b.port=R[5]),b.host){let k=r(b.host);if(k.isIPV4===!1){let P=n(k.host);b.host=P.host.toLowerCase(),A=P.isIPV6}else b.host=k.host,A=!0}b.scheme===void 0&&b.userinfo===void 0&&b.host===void 0&&b.port===void 0&&b.query===void 0&&!b.path?b.reference="same-document":b.scheme===void 0?b.reference="relative":b.fragment===void 0?b.reference="absolute":b.reference="uri",_.reference&&_.reference!=="suffix"&&_.reference!==b.reference&&(b.error=b.error||"URI is not a "+_.reference+" reference.");let x=a[(_.scheme||b.scheme||"").toLowerCase()];if(!_.unicodeSupport&&(!x||!x.unicodeSupport)&&b.host&&(_.domainHost||x&&x.domainHost)&&A===!1&&h(b.host))try{b.host=URL.domainToASCII(b.host.toLowerCase())}catch(k){b.error=b.error||"Host's domain name can not be converted to ASCII: "+k}(!x||x&&!x.skipNormalize)&&(T&&b.scheme!==void 0&&(b.scheme=unescape(b.scheme)),T&&b.host!==void 0&&(b.host=unescape(b.host)),b.path&&(b.path=escape(unescape(b.path))),b.fragment&&(b.fragment=encodeURI(decodeURIComponent(b.fragment)))),x&&x.parse&&x.parse(b,_)}else b.error=b.error||"URI can not be parsed.";return b}var y={SCHEMES:a,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:f,parse:g};t.exports=y,t.exports.default=y,t.exports.fastUri=y}),rnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=nnr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),inr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=D6();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=bn();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});var r=bTe(),i=L6(),s=tOt(),o=TTe(),a=bn(),c=M6(),u=g6(),l=ur(),d=Qtr(),f=rnr(),p=(G,M)=>new RegExp(G,M);p.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},E=200;function S(G){var M,q,U,D,H,j,W,ee,se,Me,Re,z,J,oe,le,be,kt,Ue,Ln,lr,sn,dr,tl,Rs,c_;let ay=G.strict,Ii=(M=G.code)===null||M===void 0?void 0:M.optimize,_p=Ii===!0||Ii===void 0?1:Ii||0,cy=(U=(q=G.code)===null||q===void 0?void 0:q.regExp)!==null&&U!==void 0?U:p,Ar=(D=G.uriResolver)!==null&&D!==void 0?D:f.default;return{strictSchema:(j=(H=G.strictSchema)!==null&&H!==void 0?H:ay)!==null&&j!==void 0?j:!0,strictNumbers:(ee=(W=G.strictNumbers)!==null&&W!==void 0?W:ay)!==null&&ee!==void 0?ee:!0,strictTypes:(Me=(se=G.strictTypes)!==null&&se!==void 0?se:ay)!==null&&Me!==void 0?Me:"log",strictTuples:(z=(Re=G.strictTuples)!==null&&Re!==void 0?Re:ay)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=G.strictRequired)!==null&&J!==void 0?J:ay)!==null&&oe!==void 0?oe:!1,code:G.code?{...G.code,optimize:_p,regExp:cy}:{optimize:_p,regExp:cy},loopRequired:(le=G.loopRequired)!==null&&le!==void 0?le:E,loopEnum:(be=G.loopEnum)!==null&&be!==void 0?be:E,meta:(kt=G.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=G.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Ln=G.inlineRefs)!==null&&Ln!==void 0?Ln:!0,schemaId:(lr=G.schemaId)!==null&&lr!==void 0?lr:"$id",addUsedSchema:(sn=G.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(dr=G.validateSchema)!==null&&dr!==void 0?dr:!0,validateFormats:(tl=G.validateFormats)!==null&&tl!==void 0?tl:!0,unicodeRegExp:(Rs=G.unicodeRegExp)!==null&&Rs!==void 0?Rs:!0,int32range:(c_=G.int32range)!==null&&c_!==void 0?c_:!0,uriResolver:Ar}}class _{constructor(M={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,M=this.opts={...M,...S(M)};let{es5:q,lines:U}=this.opts.code;this.scope=new a.ValueScope({scope:{},prefixes:m,es5:q,lines:U}),this.logger=N(M.logger);let D=M.validateFormats;M.validateFormats=!1,this.RULES=(0,s.getRules)(),b.call(this,g,M,"NOT SUPPORTED"),b.call(this,y,M,"DEPRECATED","warn"),this._metaOpts=k.call(this),M.formats&&R.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),M.keywords&&x.call(this,M.keywords),typeof M.meta=="object"&&this.addMetaSchema(M.meta),A.call(this),M.validateFormats=D}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:M,meta:q,schemaId:U}=this.opts,D=d;U==="id"&&(D={...d},D.id=D.$id,delete D.$id),q&&M&&this.addMetaSchema(D,D[U],!1)}defaultMeta(){let{meta:M,schemaId:q}=this.opts;return this.opts.defaultMeta=typeof M=="object"?M[q]||M:void 0}validate(M,q){let U;if(typeof M=="string"){if(U=this.getSchema(M),!U)throw new Error(`no schema with key or ref "${M}"`)}else U=this.compile(M);let D=U(q);return"$async"in U||(this.errors=U.errors),D}compile(M,q){let U=this._addSchema(M,q);return U.validate||this._compileSchemaEnv(U)}compileAsync(M,q){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:U}=this.opts;return D.call(this,M,q);async function D(Me,Re){await H.call(this,Me.$schema);let z=this._addSchema(Me,Re);return z.validate||j.call(this,z)}async function H(Me){Me&&!this.getSchema(Me)&&await D.call(this,{$ref:Me},!0)}async function j(Me){try{return this._compileSchemaEnv(Me)}catch(Re){if(!(Re instanceof i.default))throw Re;return W.call(this,Re),await ee.call(this,Re.missingSchema),j.call(this,Me)}}function W({missingSchema:Me,missingRef:Re}){if(this.refs[Me])throw new Error(`AnySchema ${Me} is loaded but ${Re} cannot be resolved`)}async function ee(Me){let Re=await se.call(this,Me);this.refs[Me]||await H.call(this,Re.$schema),this.refs[Me]||this.addSchema(Re,Me,q)}async function se(Me){let Re=this._loading[Me];if(Re)return Re;try{return await(this._loading[Me]=U(Me))}finally{delete this._loading[Me]}}}addSchema(M,q,U,D=this.opts.validateSchema){if(Array.isArray(M)){for(let j of M)this.addSchema(j,void 0,U,D);return this}let H;if(typeof M=="object"){let{schemaId:j}=this.opts;if(H=M[j],H!==void 0&&typeof H!="string")throw new Error(`schema ${j} must be string`)}return q=(0,c.normalizeId)(q||H),this._checkUnique(q),this.schemas[q]=this._addSchema(M,U,q,D,!0),this}addMetaSchema(M,q,U=this.opts.validateSchema){return this.addSchema(M,q,!0,U),this}validateSchema(M,q){if(typeof M=="boolean")return!0;let U;if(U=M.$schema,U!==void 0&&typeof U!="string")throw new Error("$schema must be a string");if(U=U||this.opts.defaultMeta||this.defaultMeta(),!U)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let D=this.validate(U,M);if(!D&&q){let H="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(H);else throw new Error(H)}return D}getSchema(M){let q;for(;typeof(q=T.call(this,M))=="string";)M=q;if(q===void 0){let{schemaId:U}=this.opts,D=new o.SchemaEnv({schema:{},schemaId:U});if(q=o.resolveSchema.call(this,D,M),!q)return;this.refs[M]=q}return q.validate||this._compileSchemaEnv(q)}removeSchema(M){if(M instanceof RegExp)return this._removeAllSchemas(this.schemas,M),this._removeAllSchemas(this.refs,M),this;switch(typeof M){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let q=T.call(this,M);return typeof q=="object"&&this._cache.delete(q.schema),delete this.schemas[M],delete this.refs[M],this}case"object":{let q=M;this._cache.delete(q);let U=M[this.opts.schemaId];return U&&(U=(0,c.normalizeId)(U),delete this.schemas[U],delete this.refs[U]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(M){for(let q of M)this.addKeyword(q);return this}addKeyword(M,q){let U;if(typeof M=="string")U=M,typeof q=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),q.keyword=U);else if(typeof M=="object"&&q===void 0){if(q=M,U=q.keyword,Array.isArray(U)&&!U.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(F.call(this,U,q),!q)return(0,l.eachItem)(U,H=>V.call(this,H)),this;$.call(this,q);let D={...q,type:(0,u.getJSONTypes)(q.type),schemaType:(0,u.getJSONTypes)(q.schemaType)};return(0,l.eachItem)(U,D.type.length===0?H=>V.call(this,H,D):H=>D.type.forEach(j=>V.call(this,H,D,j))),this}getKeyword(M){let q=this.RULES.all[M];return typeof q=="object"?q.definition:!!q}removeKeyword(M){let{RULES:q}=this;delete q.keywords[M],delete q.all[M];for(let U of q.rules){let D=U.rules.findIndex(H=>H.keyword===M);D>=0&&U.rules.splice(D,1)}return this}addFormat(M,q){return typeof q=="string"&&(q=new RegExp(q)),this.formats[M]=q,this}errorsText(M=this.errors,{separator:q=", ",dataVar:U="data"}={}){return!M||M.length===0?"No errors":M.map(D=>`${U}${D.instancePath} ${D.message}`).reduce((D,H)=>D+q+H)}$dataMetaSchema(M,q){let U=this.RULES.all;M=JSON.parse(JSON.stringify(M));for(let D of q){let H=D.split("/").slice(1),j=M;for(let W of H)j=j[W];for(let W in U){let ee=U[W];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Me=j[W];se&&Me&&(j[W]=X(Me))}}return M}_removeAllSchemas(M,q){for(let U in M){let D=M[U];(!q||q.test(U))&&(typeof D=="string"?delete M[U]:D&&!D.meta&&(this._cache.delete(D.schema),delete M[U]))}}_addSchema(M,q,U,D=this.opts.validateSchema,H=this.opts.addUsedSchema){let j,{schemaId:W}=this.opts;if(typeof M=="object")j=M[W];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof M!="boolean")throw new Error("schema must be object or boolean")}let ee=this._cache.get(M);if(ee!==void 0)return ee;U=(0,c.normalizeId)(j||U);let se=c.getSchemaRefs.call(this,M,U);return ee=new o.SchemaEnv({schema:M,schemaId:W,meta:q,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),H&&!U.startsWith("#")&&(U&&this._checkUnique(U),this.refs[U]=ee),D&&this.validateSchema(M,!0),ee}_checkUnique(M){if(this.schemas[M]||this.refs[M])throw new Error(`schema with key or id "${M}" already exists`)}_compileSchemaEnv(M){if(M.meta?this._compileMetaSchema(M):o.compileSchema.call(this,M),!M.validate)throw new Error("ajv implementation error");return M.validate}_compileMetaSchema(M){let q=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,M)}finally{this.opts=q}}}_.ValidationError=r.default,_.MissingRefError=i.default,e.default=_;function b(G,M,q,U="error"){for(let D in G){let H=D;H in M&&this.logger[U](`${q}: option ${D}. ${G[H]}`)}}function T(G){return G=(0,c.normalizeId)(G),this.schemas[G]||this.refs[G]}function A(){let G=this.opts.schemas;if(G)if(Array.isArray(G))this.addSchema(G);else for(let M in G)this.addSchema(G[M],M)}function R(){for(let G in this.opts.formats){let M=this.opts.formats[G];M&&this.addFormat(G,M)}}function x(G){if(Array.isArray(G)){this.addVocabulary(G);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let M in G){let q=G[M];q.keyword||(q.keyword=M),this.addKeyword(q)}}function k(){let G={...this.opts};for(let M of h)delete G[M];return G}var P={log(){},warn(){},error(){}};function N(G){if(G===!1)return P;if(G===void 0)return console;if(G.log&&G.warn&&G.error)return G;throw new Error("logger must implement log, warn and error methods")}var C=/^[a-z_$][a-z0-9_$:-]*$/i;function F(G,M){let{RULES:q}=this;if((0,l.eachItem)(G,U=>{if(q.keywords[U])throw new Error(`Keyword ${U} is already defined`);if(!C.test(U))throw new Error(`Keyword ${U} has invalid name`)}),!!M&&M.$data&&!("code"in M||"validate"in M))throw new Error('$data keyword must have "code" or "validate" function')}function V(G,M,q){var U;let D=M?.post;if(q&&D)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:H}=this,j=D?H.post:H.rules.find(({type:ee})=>ee===q);if(j||(j={type:q,rules:[]},H.rules.push(j)),H.keywords[G]=!0,!M)return;let W={keyword:G,definition:{...M,type:(0,u.getJSONTypes)(M.type),schemaType:(0,u.getJSONTypes)(M.schemaType)}};M.before?K.call(this,j,W,M.before):j.rules.push(W),H.all[G]=W,(U=M.implements)===null||U===void 0||U.forEach(ee=>this.addKeyword(ee))}function K(G,M,q){let U=G.rules.findIndex(D=>D.keyword===q);U>=0?G.rules.splice(U,0,M):(G.rules.push(M),this.logger.warn(`rule ${q} is not defined`))}function $(G){let{metaSchema:M}=G;M!==void 0&&(G.$data&&this.opts.$data&&(M=X(M)),G.validateSchema=this.compile(M,!0))}var B={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function X(G){return{anyOf:[G,B]}}}),snr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};e.default=t}),onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=L6(),n=Sp(),r=bn(),i=i_(),s=TTe(),o=ur(),a={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:f,it:p}=l,{baseId:h,schemaEnv:m,validateName:g,opts:y,self:E}=p,{root:S}=m;if((f==="#"||f==="#/")&&h===S.baseId)return b();let _=s.resolveRef.call(E,S,h,f);if(_===void 0)throw new t.default(p.opts.uriResolver,h,f);if(_ instanceof s.SchemaEnv)return T(_);return A(_);function b(){if(m===S)return u(l,g,m,m.$async);let R=d.scopeValue("root",{ref:S});return u(l,(0,r._)`${R}.validate`,S,S.$async)}function T(R){let x=c(l,R);u(l,x,R,R.$async)}function A(R){let x=d.scopeValue("schema",y.code.source===!0?{ref:R,code:(0,r.stringify)(R)}:{ref:R}),k=d.name("valid"),P=l.subschema({schema:R,dataTypes:[],schemaPath:r.nil,topSchemaRef:x,errSchemaPath:f},k);l.mergeEvaluated(P),l.ok(k)}}};function c(l,d){let{gen:f}=l;return d.validate?f.scopeValue("validate",{ref:d.validate}):(0,r._)`${f.scopeValue("wrapper",{ref:d})}.validate`}e.getValidate=c;function u(l,d,f,p){let{gen:h,it:m}=l,{allErrors:g,schemaEnv:y,opts:E}=m,S=E.passContext?i.default.this:r.nil;p?_():b();function _(){if(!y.$async)throw new Error("async schema referenced by sync schema");let R=h.let("valid");h.try(()=>{h.code((0,r._)`await ${(0,n.callValidateCode)(l,d,S)}`),A(d),g||h.assign(R,!0)},x=>{h.if((0,r._)`!(${x} instanceof ${m.ValidationError})`,()=>h.throw(x)),T(x),g||h.assign(R,!1)}),l.ok(R)}function b(){l.result((0,n.callValidateCode)(l,d,S),()=>A(d),()=>T(d))}function T(R){let x=(0,r._)`${R}.errors`;h.assign(i.default.vErrors,(0,r._)`${i.default.vErrors} === null ? ${x} : ${i.default.vErrors}.concat(${x})`),h.assign(i.default.errors,(0,r._)`${i.default.vErrors}.length`)}function A(R){var x;if(!m.opts.unevaluated)return;let k=(x=f?.validate)===null||x===void 0?void 0:x.evaluated;if(m.props!==!0)if(k&&!k.dynamicProps)k.props!==void 0&&(m.props=o.mergeEvaluated.props(h,k.props,m.props));else{let P=h.var("props",(0,r._)`${R}.evaluated.props`);m.props=o.mergeEvaluated.props(h,P,m.props,r.Name)}if(m.items!==!0)if(k&&!k.dynamicItems)k.items!==void 0&&(m.items=o.mergeEvaluated.items(h,k.items,m.items));else{let P=h.var("items",(0,r._)`${R}.evaluated.items`);m.items=o.mergeEvaluated.items(h,P,m.items,r.Name)}}}e.callRef=u,e.default=a}),anr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=snr(),n=onr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=t.operators,r={maximum:{okStr:"<=",ok:n.LTE,fail:n.GT},minimum:{okStr:">=",ok:n.GTE,fail:n.LT},exclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},exclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:a})=>(0,t.str)`must be ${r[o].okStr} ${a}`,params:({keyword:o,schemaCode:a})=>(0,t._)`{comparison: ${r[o].okStr}, limit: ${a}}`},s={keyword:Object.keys(r),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u}=o;o.fail$data((0,t._)`${c} ${r[a].fail} ${u} || isNaN(${c})`)}};e.default=s}),unr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={message:({schemaCode:i})=>(0,t.str)`must be multiple of ${i}`,params:({schemaCode:i})=>(0,t._)`{multipleOf: ${i}}`},r={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:n,code(i){let{gen:s,data:o,schemaCode:a,it:c}=i,u=c.opts.multipleOfPrecision,l=s.let("res"),d=u?(0,t._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,t._)`${l} !== parseInt(${l})`;i.fail$data((0,t._)`(${a} === 0 || (${l} = ${o}/${a}, ${d}))`)}};e.default=r}),lnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(n){let r=n.length,i=0,s=0,o;for(;s=55296&&o<=56319&&s{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=ur(),r=lnr(),i={message({keyword:o,schemaCode:a}){let c=o==="maxLength"?"more":"fewer";return(0,t.str)`must NOT have ${c} than ${a} characters`},params:({schemaCode:o})=>(0,t._)`{limit: ${o}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u,it:l}=o,d=a==="maxLength"?t.operators.GT:t.operators.LT,f=l.opts.unicode===!1?(0,t._)`${c}.length`:(0,t._)`${(0,n.useFunc)(o.gen,r.default)}(${c})`;o.fail$data((0,t._)`${f} ${d} ${u}`)}};e.default=s}),fnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n=bn(),r={message:({schemaCode:s})=>(0,n.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,n._)`{pattern: ${s}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:r,code(s){let{data:o,$data:a,schema:c,schemaCode:u,it:l}=s,d=l.opts.unicodeRegExp?"u":"",f=a?(0,n._)`(new RegExp(${u}, ${d}))`:(0,t.usePattern)(s,c);s.fail$data((0,n._)`!${f}.test(${o})`)}};e.default=i}),pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={message({keyword:i,schemaCode:s}){let o=i==="maxProperties"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} properties`},params:({schemaCode:i})=>(0,t._)`{limit: ${i}}`},r={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:n,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxProperties"?t.operators.GT:t.operators.LT;i.fail$data((0,t._)`Object.keys(${o}).length ${c} ${a}`)}};e.default=r}),hnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n=bn(),r=ur(),i={message:({params:{missingProperty:o}})=>(0,n.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,n._)`{missingProperty: ${o}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,schema:c,schemaCode:u,data:l,$data:d,it:f}=o,{opts:p}=f;if(!d&&c.length===0)return;let h=c.length>=p.loopRequired;if(f.allErrors?m():g(),p.strictRequired){let S=o.parentSchema.properties,{definedProperties:_}=o.it;for(let b of c)if(S?.[b]===void 0&&!_.has(b)){let T=f.schemaEnv.baseId+f.errSchemaPath,A=`required property "${b}" is not defined at "${T}" (strictRequired)`;(0,r.checkStrictMode)(f,A,f.opts.strictRequired)}}function m(){if(h||d)o.block$data(n.nil,y);else for(let S of c)(0,t.checkReportMissingProp)(o,S)}function g(){let S=a.let("missing");if(h||d){let _=a.let("valid",!0);o.block$data(_,()=>E(S,_)),o.ok(_)}else a.if((0,t.checkMissingProp)(o,c,S)),(0,t.reportMissingProp)(o,S),a.else()}function y(){a.forOf("prop",u,S=>{o.setParams({missingProperty:S}),a.if((0,t.noPropertyInData)(a,l,S,p.ownProperties),()=>o.error())})}function E(S,_){o.setParams({missingProperty:S}),a.forOf(S,u,()=>{a.assign(_,(0,t.propertyInData)(a,l,S,p.ownProperties)),a.if((0,n.not)(_),()=>{o.error(),a.break()})},n.nil)}}};e.default=s}),mnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={message({keyword:i,schemaCode:s}){let o=i==="maxItems"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} items`},params:({schemaCode:i})=>(0,t._)`{limit: ${i}}`},r={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:n,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxItems"?t.operators.GT:t.operators.LT;i.fail$data((0,t._)`${o}.length ${c} ${a}`)}};e.default=r}),vTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=rOt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),gnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=g6(),n=bn(),r=ur(),i=vTe(),s={message:({params:{i:a,j:c}})=>(0,n.str)`must NOT have duplicate items (items ## ${c} and ${a} are identical)`,params:({params:{i:a,j:c}})=>(0,n._)`{i: ${a}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(a){let{gen:c,data:u,$data:l,schema:d,parentSchema:f,schemaCode:p,it:h}=a;if(!l&&!d)return;let m=c.let("valid"),g=f.items?(0,t.getSchemaTypes)(f.items):[];a.block$data(m,y,(0,n._)`${p} === false`),a.ok(m);function y(){let b=c.let("i",(0,n._)`${u}.length`),T=c.let("j");a.setParams({i:b,j:T}),c.assign(m,!0),c.if((0,n._)`${b} > 1`,()=>(E()?S:_)(b,T))}function E(){return g.length>0&&!g.some(b=>b==="object"||b==="array")}function S(b,T){let A=c.name("item"),R=(0,t.checkDataTypes)(g,A,h.opts.strictNumbers,t.DataType.Wrong),x=c.const("indices",(0,n._)`{}`);c.for((0,n._)`;${b}--;`,()=>{c.let(A,(0,n._)`${u}[${b}]`),c.if(R,(0,n._)`continue`),g.length>1&&c.if((0,n._)`typeof ${A} == "string"`,(0,n._)`${A} += "_"`),c.if((0,n._)`typeof ${x}[${A}] == "number"`,()=>{c.assign(T,(0,n._)`${x}[${A}]`),a.error(),c.assign(m,!1).break()}).code((0,n._)`${x}[${A}] = ${b}`)})}function _(b,T){let A=(0,r.useFunc)(c,i.default),R=c.name("outer");c.label(R).for((0,n._)`;${b}--;`,()=>c.for((0,n._)`${T} = ${b}; ${T}--;`,()=>c.if((0,n._)`${A}(${u}[${b}], ${u}[${T}])`,()=>{a.error(),c.assign(m,!1).break(R)})))}}};e.default=o}),ynr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=ur(),r=vTe(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,t._)`{allowedValue: ${o}}`},s={keyword:"const",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,t._)`!${(0,n.useFunc)(a,r.default)}(${c}, ${l})`):o.fail((0,t._)`${d} !== ${c}`)}};e.default=s}),Snr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=ur(),r=vTe(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,t._)`{allowedValues: ${o}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schema:l,schemaCode:d,it:f}=o;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let p=l.length>=f.opts.loopEnum,h,m=()=>h??(h=(0,n.useFunc)(a,r.default)),g;if(p||u)g=a.let("valid"),o.block$data(g,y);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let S=a.const("vSchema",d);g=(0,t.or)(...l.map((_,b)=>E(S,b)))}o.pass(g);function y(){a.assign(g,!1),a.forOf("v",d,S=>a.if((0,t._)`${m()}(${c}, ${S})`,()=>a.assign(g,!0).break()))}function E(S,_){let b=l[_];return typeof b=="object"&&b!==null?(0,t._)`${m()}(${c}, ${S}[${_}])`:(0,t._)`${c} === ${b}`}}};e.default=s}),Enr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cnr(),n=unr(),r=dnr(),i=fnr(),s=pnr(),o=hnr(),a=mnr(),c=gnr(),u=ynr(),l=Snr(),d=[t.default,n.default,r.default,i.default,s.default,o.default,a.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];e.default=d}),iOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=bn(),n=ur(),r={message:({params:{len:o}})=>(0,t.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,t._)`{limit: ${o}}`},i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:r,code(o){let{parentSchema:a,it:c}=o,{items:u}=a;if(!Array.isArray(u)){(0,n.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(o,u)}};function s(o,a){let{gen:c,schema:u,data:l,keyword:d,it:f}=o;f.items=!0;let p=c.const("len",(0,t._)`${l}.length`);if(u===!1)o.setParams({len:a.length}),o.pass((0,t._)`${p} <= ${a.length}`);else if(typeof u=="object"&&!(0,n.alwaysValidSchema)(f,u)){let m=c.var("valid",(0,t._)`${p} <= ${a.length}`);c.if((0,t.not)(m),()=>h(m)),o.ok(m)}function h(m){c.forRange("i",a.length,p,g=>{o.subschema({keyword:d,dataProp:g,dataPropType:n.Type.Num},m),f.allErrors||c.if((0,t.not)(m),()=>c.break())})}}e.validateAdditionalItems=s,e.default=i}),sOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=bn(),n=ur(),r=Sp(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:a,it:c}=o;if(Array.isArray(a))return s(o,"additionalItems",a);c.items=!0,!(0,n.alwaysValidSchema)(c,a)&&o.ok((0,r.validateArray)(o))}};function s(o,a,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:f,it:p}=o;g(l),p.opts.unevaluated&&c.length&&p.items!==!0&&(p.items=n.mergeEvaluated.items(u,c.length,p.items));let h=u.name("valid"),m=u.const("len",(0,t._)`${d}.length`);c.forEach((y,E)=>{(0,n.alwaysValidSchema)(p,y)||(u.if((0,t._)`${m} > ${E}`,()=>o.subschema({keyword:f,schemaProp:E,dataProp:E},h)),o.ok(h))});function g(y){let{opts:E,errSchemaPath:S}=p,_=c.length,b=_===y.minItems&&(_===y.maxItems||y[a]===!1);if(E.strictTuples&&!b){let T=`"${f}" is ${_}-tuple, but minItems or maxItems/${a} are not specified or different at path "${S}"`;(0,n.checkStrictMode)(p,T,E.strictTuples)}}}e.validateTuple=s,e.default=i}),_nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=sOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=ur(),r=Sp(),i=iOt(),s={message:({params:{len:a}})=>(0,t.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,t._)`{limit: ${a}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(a){let{schema:c,parentSchema:u,it:l}=a,{prefixItems:d}=u;l.items=!0,!(0,n.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(a,d):a.ok((0,r.validateArray)(a)))}};e.default=o}),Tnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=ur(),r={message:({params:{min:s,max:o}})=>o===void 0?(0,t.str)`must contain at least ${s} valid item(s)`:(0,t.str)`must contain at least ${s} and no more than ${o} valid item(s)`,params:({params:{min:s,max:o}})=>o===void 0?(0,t._)`{minContains: ${s}}`:(0,t._)`{minContains: ${s}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:r,code(s){let{gen:o,schema:a,parentSchema:c,data:u,it:l}=s,d,f,{minContains:p,maxContains:h}=c;l.opts.next?(d=p===void 0?1:p,f=h):d=1;let m=o.const("len",(0,t._)`${u}.length`);if(s.setParams({min:d,max:f}),f===void 0&&d===0){(0,n.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(f!==void 0&&d>f){(0,n.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,n.alwaysValidSchema)(l,a)){let _=(0,t._)`${m} >= ${d}`;f!==void 0&&(_=(0,t._)`${_} && ${m} <= ${f}`),s.pass(_);return}l.items=!0;let g=o.name("valid");f===void 0&&d===1?E(g,()=>o.if(g,()=>o.break())):d===0?(o.let(g,!0),f!==void 0&&o.if((0,t._)`${u}.length > 0`,y)):(o.let(g,!1),y()),s.result(g,()=>s.reset());function y(){let _=o.name("_valid"),b=o.let("count",0);E(_,()=>o.if(_,()=>S(b)))}function E(_,b){o.forRange("i",0,m,T=>{s.subschema({keyword:"contains",dataProp:T,dataPropType:n.Type.Num,compositeRule:!0},_),b()})}function S(_){o.code((0,t._)`${_}++`),f===void 0?o.if((0,t._)`${_} >= ${d}`,()=>o.assign(g,!0).break()):(o.if((0,t._)`${_} > ${f}`,()=>o.assign(g,!1).break()),d===1?o.assign(g,!0):o.if((0,t._)`${_} >= ${d}`,()=>o.assign(g,!0)))}}};e.default=i}),vnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=bn(),n=ur(),r=Sp();e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,t._)`{property: ${c}, missingProperty: ${d}, depsCount: ${u}, - deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let f=Array.isArray(c[d])?u:l;f[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:f}=c;if(Object.keys(u).length===0)return;let p=l.let("missing");for(let h in u){let m=u[h];if(m.length===0)continue;let y=(0,r.propertyInData)(l,d,h,f.opts.ownProperties);c.setParams({property:h,depsCount:m.length,deps:m.join(", ")}),f.allErrors?l.if(y,()=>{for(let g of m)(0,r.checkReportMissingProp)(c,g)}):(l.if((0,t._)`${y} && (${(0,r.checkMissingProp)(c,m,p)})`),(0,r.reportMissingProp)(c,p),l.else())}}e.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:f,it:p}=c,h=l.name("valid");for(let m in u)(0,n.alwaysValidSchema)(p,u[m])||(l.if((0,r.propertyInData)(l,d,m,p.opts.ownProperties),()=>{let y=c.subschema({keyword:f,schemaProp:m},h);c.mergeValidEvaluated(y,h)},()=>l.var(h,!0)),c.ok(h))}e.validateSchemaDeps=a,e.default=i}),Oer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=cr(),r={message:"property name must be valid",params:({params:s})=>(0,t._)`{propertyName: ${s.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:r,code(s){let{gen:o,schema:a,data:c,it:u}=s;if((0,n.alwaysValidSchema)(u,a))return;let l=o.name("valid");o.forIn("key",c,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,t.not)(l),()=>{s.error(!0),u.allErrors||o.break()})}),s.ok(l)}};e.default=i}),axt=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=pp(),n=bn(),r=$_(),i=cr(),s={message:"must NOT have additional properties",params:({params:a})=>(0,n._)`{additionalProperty: ${a.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(a){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:f,it:p}=a;if(!f)throw new Error("ajv implementation error");let{allErrors:h,opts:m}=p;if(p.props=!0,m.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(p,u))return;let y=(0,t.allSchemaProperties)(l.properties),g=(0,t.allSchemaProperties)(l.patternProperties);E(),a.ok((0,n._)`${f} === ${r.default.errors}`);function E(){c.forIn("key",d,A=>{!y.length&&!g.length?b(A):c.if(S(A),()=>b(A))})}function S(A){let R;if(y.length>8){let k=(0,i.schemaRefOrVal)(p,l.properties,"properties");R=(0,t.isOwnProperty)(c,k,A)}else y.length?R=(0,n.or)(...y.map(k=>(0,n._)`${A} === ${k}`)):R=n.nil;return g.length&&(R=(0,n.or)(R,...g.map(k=>(0,n._)`${(0,t.usePattern)(a,k)}.test(${A})`))),(0,n.not)(R)}function _(A){c.code((0,n._)`delete ${d}[${A}]`)}function b(A){if(m.removeAdditional==="all"||m.removeAdditional&&u===!1){_(A);return}if(u===!1){a.setParams({additionalProperty:A}),a.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(p,u)){let R=c.name("valid");m.removeAdditional==="failing"?(T(A,R,!1),c.if((0,n.not)(R),()=>{a.reset(),_(A)})):(T(A,R),h||c.if((0,n.not)(R),()=>c.break()))}}function T(A,R,k){let x={keyword:"additionalProperties",dataProp:A,dataPropType:i.Type.Str};k===!1&&Object.assign(x,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema(x,R)}}};e.default=o}),Ner=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=yY(),n=pp(),r=cr(),i=axt(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(d,i.default,"additionalProperties"));let f=(0,n.allSchemaProperties)(c);for(let g of f)d.definedProperties.add(g);d.opts.unevaluated&&f.length&&d.props!==!0&&(d.props=r.mergeEvaluated.props(a,(0,r.toHash)(f),d.props));let p=f.filter(g=>!(0,r.alwaysValidSchema)(d,c[g]));if(p.length===0)return;let h=a.name("valid");for(let g of p)m(g)?y(g):(a.if((0,n.propertyInData)(a,l,g,d.opts.ownProperties)),y(g),d.allErrors||a.else().var(h,!0),a.endIf()),o.it.definedProperties.add(g),o.ok(h);function m(g){return d.opts.useDefaults&&!d.compositeRule&&c[g].default!==void 0}function y(g){o.subschema({keyword:"properties",schemaProp:g,dataProp:g},h)}}};e.default=s}),Per=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=pp(),n=bn(),r=cr(),i=cr(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,data:u,parentSchema:l,it:d}=o,{opts:f}=d,p=(0,t.allSchemaProperties)(c),h=p.filter(b=>(0,r.alwaysValidSchema)(d,c[b]));if(p.length===0||h.length===p.length&&(!d.opts.unevaluated||d.props===!0))return;let m=f.strictSchema&&!f.allowMatchingProperties&&l.properties,y=a.name("valid");d.props!==!0&&!(d.props instanceof n.Name)&&(d.props=(0,i.evaluatedPropsToName)(a,d.props));let{props:g}=d;E();function E(){for(let b of p)m&&S(b),d.allErrors?_(b):(a.var(y,!0),_(b),a.if(y))}function S(b){for(let T in m)new RegExp(b).test(T)&&(0,r.checkStrictMode)(d,`property ${T} matches pattern ${b} (use allowMatchingProperties)`)}function _(b){a.forIn("key",u,T=>{a.if((0,n._)`${(0,t.usePattern)(o,b)}.test(${T})`,()=>{let A=h.includes(b);A||o.subschema({keyword:"patternProperties",schemaProp:b,dataProp:T,dataPropType:i.Type.Str},y),d.opts.unevaluated&&g!==!0?a.assign((0,n._)`${g}[${T}]`,!0):!A&&!d.allErrors&&a.if((0,n.not)(y),()=>a.break())})})}}};e.default=s}),Cer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cr(),n={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){let{gen:i,schema:s,it:o}=r;if((0,t.alwaysValidSchema)(o,s)){r.fail();return}let a=i.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};e.default=n}),Mer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=pp(),n={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:t.validateUnion,error:{message:"must match a schema in anyOf"}};e.default=n}),Der=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=cr(),r={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,t._)`{passingSchemas: ${s.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:r,code(s){let{gen:o,schema:a,parentSchema:c,it:u}=s;if(!Array.isArray(a))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=a,d=o.let("valid",!1),f=o.let("passing",null),p=o.name("_valid");s.setParams({passing:f}),o.block(h),s.result(d,()=>s.reset(),()=>s.error(!0));function h(){l.forEach((m,y)=>{let g;(0,n.alwaysValidSchema)(u,m)?o.var(p,!0):g=s.subschema({keyword:"oneOf",schemaProp:y,compositeRule:!0},p),y>0&&o.if((0,t._)`${p} && ${d}`).assign(d,!1).assign(f,(0,t._)`[${f}, ${y}]`).else(),o.if(p,()=>{o.assign(d,!0),o.assign(f,y),g&&s.mergeEvaluated(g,t.Name)})})}}};e.default=i}),Ler=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cr(),n={keyword:"allOf",schemaType:"array",code(r){let{gen:i,schema:s,it:o}=r;if(!Array.isArray(s))throw new Error("ajv implementation error");let a=i.name("valid");s.forEach((c,u)=>{if((0,t.alwaysValidSchema)(o,c))return;let l=r.subschema({keyword:"allOf",schemaProp:u},a);r.ok(a),r.mergeEvaluated(l)})}};e.default=n}),Uer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=cr(),r={message:({params:o})=>(0,t.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,t._)`{failingKeyword: ${o.ifClause}}`},i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:r,code(o){let{gen:a,parentSchema:c,it:u}=o;c.then===void 0&&c.else===void 0&&(0,n.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=s(u,"then"),d=s(u,"else");if(!l&&!d)return;let f=a.let("valid",!0),p=a.name("_valid");if(h(),o.reset(),l&&d){let y=a.let("ifClause");o.setParams({ifClause:y}),a.if(p,m("then",y),m("else",y))}else l?a.if(p,m("then")):a.if((0,t.not)(p),m("else"));o.pass(f,()=>o.error(!0));function h(){let y=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},p);o.mergeEvaluated(y)}function m(y,g){return()=>{let E=o.subschema({keyword:y},p);a.assign(f,p),o.mergeValidEvaluated(E,f),g?a.assign(g,(0,t._)`${y}`):o.setParams({ifClause:y})}}}};function s(o,a){let c=o.schema[a];return c!==void 0&&!(0,n.alwaysValidSchema)(o,c)}e.default=i}),jer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=cr(),n={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:i,it:s}){i.if===void 0&&(0,t.checkStrictMode)(s,`"${r}" without "if" is ignored`)}};e.default=n}),Fer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=sxt(),n=wer(),r=oxt(),i=ker(),s=Ier(),o=xer(),a=Oer(),c=axt(),u=Ner(),l=Per(),d=Cer(),f=Mer(),p=Der(),h=Ler(),m=Uer(),y=jer();function g(E=!1){let S=[d.default,f.default,p.default,h.default,m.default,y.default,a.default,c.default,o.default,u.default,l.default];return E?S.push(n.default,i.default):S.push(t.default,r.default),S.push(s.default),S}e.default=g}),Her=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={message:({schemaCode:i})=>(0,t.str)`must match format "${i}"`,params:({schemaCode:i})=>(0,t._)`{format: ${i}}`},r={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:n,code(i,s){let{gen:o,data:a,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:f,errSchemaPath:p,schemaEnv:h,self:m}=d;if(!f.validateFormats)return;c?y():g();function y(){let E=o.scopeValue("formats",{ref:m.formats,code:f.code.formats}),S=o.const("fDef",(0,t._)`${E}[${l}]`),_=o.let("fType"),b=o.let("format");o.if((0,t._)`typeof ${S} == "object" && !(${S} instanceof RegExp)`,()=>o.assign(_,(0,t._)`${S}.type || "string"`).assign(b,(0,t._)`${S}.validate`),()=>o.assign(_,(0,t._)`"string"`).assign(b,S)),i.fail$data((0,t.or)(T(),A()));function T(){return f.strictSchema===!1?t.nil:(0,t._)`${l} && !${b}`}function A(){let R=h.$async?(0,t._)`(${S}.async ? await ${b}(${a}) : ${b}(${a}))`:(0,t._)`${b}(${a})`,k=(0,t._)`(typeof ${b} == "function" ? ${R} : ${b}.test(${a}))`;return(0,t._)`${b} && ${b} !== true && ${_} === ${s} && !${k}`}}function g(){let E=m.formats[u];if(!E){T();return}if(E===!0)return;let[S,_,b]=A(E);S===s&&i.pass(R());function T(){if(f.strictSchema===!1){m.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${u}" ignored in schema at path "${p}"`}}function A(k){let x=k instanceof RegExp?(0,t.regexpCode)(k):f.code.formats?(0,t._)`${f.code.formats}${(0,t.getProperty)(u)}`:void 0,N=o.scopeValue("formats",{key:u,ref:k,code:x});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,t._)`${N}.validate`]:["string",k,N]}function R(){if(typeof E=="object"&&!(E instanceof RegExp)&&E.async){if(!h.$async)throw new Error("async format in sync schema");return(0,t._)`await ${b}(${a})`}return typeof _=="function"?(0,t._)`${b}(${a})`:(0,t._)`${b}.test(${a})`}}}};e.default=r}),qer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Her(),n=[t.default];e.default=n}),Ber=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],e.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),Ger=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=per(),n=Rer(),r=Fer(),i=qer(),s=Ber(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),zer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(n){n.Tag="tag",n.Mapping="mapping"})(t||(e.DiscrError=t={}))}),Ver=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=zer(),r=Wbe(),i=SY(),s=cr(),o={message:({params:{discrError:c,tagName:u}})=>c===n.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,t._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},a={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:f,it:p}=c,{oneOf:h}=f;if(!p.opts.discriminator)throw new Error("discriminator: requires discriminator option");let m=d.propertyName;if(typeof m!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let y=u.let("valid",!1),g=u.const("tag",(0,t._)`${l}${(0,t.getProperty)(m)}`);u.if((0,t._)`typeof ${g} == "string"`,()=>E(),()=>c.error(!1,{discrError:n.DiscrError.Tag,tag:g,tagName:m})),c.ok(y);function E(){let b=_();u.if(!1);for(let T in b)u.elseIf((0,t._)`${g} === ${T}`),u.assign(y,S(b[T]));u.else(),c.error(!1,{discrError:n.DiscrError.Mapping,tag:g,tagName:m}),u.endIf()}function S(b){let T=u.name("valid"),A=c.subschema({keyword:"oneOf",schemaProp:b},T);return c.mergeEvaluated(A,t.Name),T}function _(){var b;let T={},A=k(f),R=!0;for(let P=0;P{t.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),cxt=Je((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var n=ler(),r=Ger(),i=Ver(),s=Wer(),o=["/properties"],a="http://json-schema.org/draft-07/schema";class c extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(h,a,!1),this.refs["http://json-schema.org/schema"]=a}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(a)?a:void 0)}}e.Ajv=c,t.exports=e=c,t.exports.Ajv=c,Object.defineProperty(e,"__esModule",{value:!0}),e.default=c;var u=yY();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=bn();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=Vbe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=SY();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),Ker=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(N,P){return{validate:N,compare:P}}e.fullFormats={date:t(s,o),time:t(c(!0),u),"date-time":t(f(!0),p),"iso-time":t(c(),l),"iso-date-time":t(f(),h),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:g,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:x,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:S,int32:{type:"number",validate:T},int64:{type:"number",validate:A},float:{type:"number",validate:R},double:{type:"number",validate:R},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,u),"date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,p),"iso-time":t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"iso-date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,h),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},e.formatNames=Object.keys(e.fullFormats);function n(N){return N%4===0&&(N%100!==0||N%400===0)}var r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s(N){let P=r.exec(N);if(!P)return!1;let D=+P[1],j=+P[2],V=+P[3];return j>=1&&j<=12&&V>=1&&V<=(j===2&&n(D)?29:i[j])}function o(N,P){if(N&&P)return N>P?1:N23||C>59||N&&!G)return!1;if(V<=23&&Z<=59&&B<60)return!0;let z=Z-C*X,U=V-q*X-(z<0?1:0);return(U===23||U===-1)&&(z===59||z===-1)&&B<61}}function u(N,P){if(!(N&&P))return;let D=new Date("2020-01-01T"+N).valueOf(),j=new Date("2020-01-01T"+P).valueOf();if(D&&j)return D-j}function l(N,P){if(!(N&&P))return;let D=a.exec(N),j=a.exec(P);if(D&&j)return N=D[1]+D[2]+D[3],P=j[1]+j[2]+j[3],N>P?1:N=_}function A(N){return Number.isInteger(N)}function R(){return!0}var k=/[^\\]\\Z/;function x(N){if(k.test(N))return!1;try{return new RegExp(N),!0}catch{return!1}}}),Zer=Je(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=cxt(),n=bn(),r=n.operators,i={formatMaximum:{okStr:"<=",ok:r.LTE,fail:r.GT},formatMinimum:{okStr:">=",ok:r.GTE,fail:r.LT},formatExclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},formatExclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},s={message:({keyword:a,schemaCode:c})=>(0,n.str)`should be ${i[a].okStr} ${c}`,params:({keyword:a,schemaCode:c})=>(0,n._)`{comparison: ${i[a].okStr}, limit: ${c}}`};e.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:c,data:u,schemaCode:l,keyword:d,it:f}=a,{opts:p,self:h}=f;if(!p.validateFormats)return;let m=new t.KeywordCxt(f,h.RULES.all.format.definition,"format");m.$data?y():g();function y(){let S=c.scopeValue("formats",{ref:h.formats,code:p.code.formats}),_=c.const("fmt",(0,n._)`${S}[${m.schemaCode}]`);a.fail$data((0,n.or)((0,n._)`typeof ${_} != "object"`,(0,n._)`${_} instanceof RegExp`,(0,n._)`typeof ${_}.compare != "function"`,E(_)))}function g(){let S=m.schema,_=h.formats[S];if(!_||_===!0)return;if(typeof _!="object"||_ instanceof RegExp||typeof _.compare!="function")throw new Error(`"${d}": format "${S}" does not define "compare" function`);let b=c.scopeValue("formats",{key:S,ref:_,code:p.code.formats?(0,n._)`${p.code.formats}${(0,n.getProperty)(S)}`:void 0});a.fail$data(E(b))}function E(S){return(0,n._)`${S}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=a=>(a.addKeyword(e.formatLimitDefinition),a);e.default=o}),Yer=Je((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=Ker(),r=Zer(),i=bn(),s=new i.Name("fullFormats"),o=new i.Name("fastFormats"),a=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,n.fullFormats,s),u;let[d,f]=l.mode==="fast"?[n.fastFormats,o]:[n.fullFormats,s],p=l.formats||n.formatNames;return c(u,p,d,f),l.keywords&&(0,r.default)(u),u};a.get=(u,l="full")=>{let f=(l==="fast"?n.fastFormats:n.fullFormats)[u];if(!f)throw new Error(`Unknown format "${u}"`);return f};function c(u,l,d,f){var p,h;(p=(h=u.opts.code).formats)!==null&&p!==void 0||(h.formats=(0,i._)`require("ajv-formats/dist/formats").${f}`);for(let m of l)u.addFormat(m,d[m])}t.exports=e=a,Object.defineProperty(e,"__esModule",{value:!0}),e.default=a}),Qer=50;ntr=typeof global=="object"&&global&&global.Object===Object&&global,rtr=ntr,itr=typeof self=="object"&&self&&self.Object===Object&&self,otr=rtr||itr||Function("return this")(),Ybe=otr,atr=Ybe.Symbol,$6=atr,uxt=Object.prototype,ctr=uxt.hasOwnProperty,utr=uxt.toString,Y1=$6?$6.toStringTag:void 0;dtr=ltr,ftr=Object.prototype,ptr=ftr.toString;mtr=htr,gtr="[object Null]",ytr="[object Undefined]",d0t=$6?$6.toStringTag:void 0;_tr=Str;lxt=Etr,btr="[object AsyncFunction]",Ttr="[object Function]",vtr="[object GeneratorFunction]",Atr="[object Proxy]";wtr=Rtr,ktr=Ybe["__core-js_shared__"],ibe=ktr,f0t=(function(){var e=/[^.]+$/.exec(ibe&&ibe.keys&&ibe.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();xtr=Itr,Otr=Function.prototype,Ntr=Otr.toString;Ctr=Ptr,Mtr=/[\\^$.*+?()[\]{}|]/g,Dtr=/^\[object .+?Constructor\]$/,Ltr=Function.prototype,Utr=Object.prototype,jtr=Ltr.toString,Ftr=Utr.hasOwnProperty,Htr=RegExp("^"+jtr.call(Ftr).replace(Mtr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Btr=qtr;ztr=Gtr;dxt=Vtr,Wtr=dxt(Object,"create"),rU=Wtr;Ztr=Ktr;Jtr=Ytr,Xtr="__lodash_hash_undefined__",Qtr=Object.prototype,$tr=Qtr.hasOwnProperty;tnr=enr,nnr=Object.prototype,rnr=nnr.hasOwnProperty;snr=inr,onr="__lodash_hash_undefined__";cnr=anr;Mx.prototype.clear=Ztr;Mx.prototype.delete=Jtr;Mx.prototype.get=tnr;Mx.prototype.has=snr;Mx.prototype.set=cnr;p0t=Mx;lnr=unr;fnr=dnr;_Y=pnr,hnr=Array.prototype,mnr=hnr.splice;ynr=gnr;_nr=Snr;bnr=Enr;vnr=Tnr;Dx.prototype.clear=lnr;Dx.prototype.delete=ynr;Dx.prototype.get=_nr;Dx.prototype.has=bnr;Dx.prototype.set=vnr;Anr=Dx,Rnr=dxt(Ybe,"Map"),wnr=Rnr;Inr=knr;Onr=xnr;EY=Nnr;Cnr=Pnr;Dnr=Mnr;Unr=Lnr;Fnr=jnr;Lx.prototype.clear=Inr;Lx.prototype.delete=Cnr;Lx.prototype.get=Dnr;Lx.prototype.has=Unr;Lx.prototype.set=Fnr;fxt=Lx,Hnr="Expected a function";Jbe.Cache=fxt;yU=Jbe,h0t=2e3;Bnr=yU(e=>{if(!e||e.trim()==="")return null;let t=e.split(",").map(s=>s.trim()).filter(Boolean);if(t.length===0)return null;let n=t.some(s=>s.startsWith("!")),r=t.some(s=>!s.startsWith("!"));if(n&&r)return null;let i=t.map(s=>s.replace(/^!/,"").toLowerCase());return{include:n?[]:i,exclude:n?i:[],isExclusive:n}});sbe=15e4,V6=3e4;Xnr=mxt("BASH_MAX_OUTPUT_LENGTH"),m0i=mxt("TASK_MAX_OUTPUT_LENGTH"),Qnr={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:e=>{if(!e)return{effective:32e3,status:"valid"};let r=parseInt(e,10);return isNaN(r)||r<=0?{effective:32e3,status:"invalid",message:`Invalid value "${e}" (using default: 32000)`}:r>64e3?{effective:64e3,status:"capped",message:`Capped from ${r} to 64000`}:{effective:r,status:"valid"}}};err=$nr();g0t=new Set;gxt=1/0;Sxt=(e,t)=>{let n=typeof e=="string"?e.length:0;return yxt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},srr=yU(()=>m0t(process.env.DEBUG)||m0t(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||_xt()||process.argv.some(e=>e.startsWith("--debug="))),orr=yU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return Bnr(t)}),_xt=yU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));crr=!1,W6=null;lrr=yU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=Ext(),t=hbe(e),n=hxt(t,"latest");if(Kg().existsSync(t)||Kg().mkdirSync(t),Kg().existsSync(n))try{Kg().unlinkSync(n)}catch{}Kg().symlinkSync(e,n)}catch{}});drr={cwd(){return process.cwd()},existsSync(e){return oo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return ttr(e)},statSync(e){return oo(`statSync(${e})`,()=>Zt.statSync(e))},lstatSync(e){return oo(`lstatSync(${e})`,()=>Zt.lstatSync(e))},readFileSync(e,t){return oo(`readFileSync(${e})`,()=>Zt.readFileSync(e,{encoding:t.encoding}))},readFileBytesSync(e){return oo(`readFileBytesSync(${e})`,()=>Zt.readFileSync(e))},readSync(e,t){return oo(`readSync(${e}, ${t.length} bytes)`,()=>{let n;try{n=Zt.openSync(e,"r");let r=Buffer.alloc(t.length),i=Zt.readSync(n,r,0,t.length,0);return{buffer:r,bytesRead:i}}finally{n&&Zt.closeSync(n)}})},appendFileSync(e,t,n){return oo(`appendFileSync(${e}, ${t.length} chars)`,()=>{if(!Zt.existsSync(e)&&n?.mode!==void 0){let r=Zt.openSync(e,"a",n.mode);try{Zt.appendFileSync(r,t)}finally{Zt.closeSync(r)}}else Zt.appendFileSync(e,t)})},copyFileSync(e,t){return oo(`copyFileSync(${e} \u2192 ${t})`,()=>Zt.copyFileSync(e,t))},unlinkSync(e){return oo(`unlinkSync(${e})`,()=>Zt.unlinkSync(e))},renameSync(e,t){return oo(`renameSync(${e} \u2192 ${t})`,()=>Zt.renameSync(e,t))},linkSync(e,t){return oo(`linkSync(${e} \u2192 ${t})`,()=>Zt.linkSync(e,t))},symlinkSync(e,t){return oo(`symlinkSync(${e} \u2192 ${t})`,()=>Zt.symlinkSync(e,t))},readlinkSync(e){return oo(`readlinkSync(${e})`,()=>Zt.readlinkSync(e))},realpathSync(e){return oo(`realpathSync(${e})`,()=>Zt.realpathSync(e))},mkdirSync(e,t){return oo(`mkdirSync(${e})`,()=>{if(!Zt.existsSync(e)){let n={recursive:!0};t?.mode!==void 0&&(n.mode=t.mode),Zt.mkdirSync(e,n)}})},readdirSync(e){return oo(`readdirSync(${e})`,()=>Zt.readdirSync(e,{withFileTypes:!0}))},readdirStringSync(e){return oo(`readdirStringSync(${e})`,()=>Zt.readdirSync(e))},isDirEmptySync(e){return oo(`isDirEmptySync(${e})`,()=>this.readdirSync(e).length===0)},rmdirSync(e){return oo(`rmdirSync(${e})`,()=>Zt.rmdirSync(e))},rmSync(e,t){return oo(`rmSync(${e})`,()=>Zt.rmSync(e,t))},createWriteStream(e){return Zt.createWriteStream(e)}},frr=drr;prr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],hrr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],Y_=class extends Error{};K6=null,S0t=!1;eY=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||Zbe(),this.initialize()}getDefaultExecutable(){return Xbe()?"bun":"node"}spawnLocalProcess(t){let{command:n,args:r,cwd:i,env:s,signal:o}=t,a=s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=$er(n,r,{cwd:i,stdio:["pipe","pipe",a],signal:o,env:s,windowsHide:!0});return(s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();Fv(d),this.options.stderr&&this.options.stderr(d)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:t=[],betas:n,cwd:r,executable:i=this.getDefaultExecutable(),executableArgs:s=[],extraArgs:o={},pathToClaudeCodeExecutable:a,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:f,fallbackModel:p,jsonSchema:h,permissionMode:m,allowDangerouslySkipPermissions:y,permissionPromptToolName:g,continueConversation:E,resume:S,settingSources:_,allowedTools:b=[],disallowedTools:T=[],tools:A,mcpServers:R,strictMcpConfig:k,canUseTool:x,includePartialMessages:N,plugins:P,sandbox:D}=this.options,j=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&j.push("--max-thinking-tokens",u.toString()),l&&j.push("--max-turns",l.toString()),d!==void 0&&j.push("--max-budget-usd",d.toString()),f&&j.push("--model",f),n&&n.length>0&&j.push("--betas",n.join(",")),h&&j.push("--json-schema",Qh(h)),c.DEBUG_CLAUDE_AGENT_SDK&&j.push("--debug-to-stderr"),x){if(g)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");j.push("--permission-prompt-tool","stdio")}else g&&j.push("--permission-prompt-tool",g);if(E&&j.push("--continue"),S&&j.push("--resume",S),b.length>0&&j.push("--allowedTools",b.join(",")),T.length>0&&j.push("--disallowedTools",T.join(",")),A!==void 0&&(Array.isArray(A)?A.length===0?j.push("--tools",""):j.push("--tools",A.join(",")):j.push("--tools","default")),R&&Object.keys(R).length>0&&j.push("--mcp-config",Qh({mcpServers:R})),_&&j.push("--setting-sources",_.join(",")),k&&j.push("--strict-mcp-config"),m&&j.push("--permission-mode",m),y&&j.push("--allow-dangerously-skip-permissions"),p){if(f&&p===f)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");j.push("--fallback-model",p)}N&&j.push("--include-partial-messages");for(let C of t)j.push("--add-dir",C);if(P&&P.length>0)for(let C of P)if(C.type==="local")j.push("--plugin-dir",C.path);else throw new Error(`Unsupported plugin type: ${C.type}`);this.options.forkSession&&j.push("--fork-session"),this.options.resumeSessionAt&&j.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&j.push("--no-session-persistence");let V=Err(o??{},D);for(let[C,z]of Object.entries(V))z===null?j.push(`--${C}`):j.push(`--${C}`,z);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let Z=brr(a),B=Z?a:i,G=Z?[...s,...j]:[...s,a,...j],X={command:B,args:G,cwd:r,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)Fv(`Spawning Claude Code (custom): ${B} ${G.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(X);else{if(!Kg().existsSync(a)){let z=Z?`Claude Code native binary not found at ${a}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${a}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(z)}Fv(`Spawning Claude Code: ${B} ${G.join(" ")}`),this.process=this.spawnLocalProcess(X)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let q=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=q,this.abortHandler=q,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",C=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new Y_("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${C.message}`),Fv(this.exitError.message))}),this.process.on("exit",(C,z)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Y_("Claude Code process aborted by user");else{let U=this.getProcessExitError(C,z);U&&(this.exitError=U,Fv(U.message))}}),this.ready=!0}catch(t){throw this.ready=!1,t}}getProcessExitError(t,n){if(t!==0&&t!==null)return new Error(`Claude Code process exited with code ${t}`);if(n)return new Error(`Claude Code process terminated by signal ${n}`)}write(t){if(this.abortController.signal.aborted)throw new Y_("Operation aborted");if(!this.ready||!this.processStdin)throw new Error("ProcessTransport is not ready for writing");if(this.process?.killed||this.process?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Fv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Fv("[ProcessTransport] Write buffer full, data queued")}catch(n){throw this.ready=!1,new Error(`Failed to write to process stdin: ${n.message}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:t}of this.exitListeners)this.process?.off("exit",t);this.exitListeners=[],this.process&&!this.process.killed&&(this.process.kill("SIGTERM"),setTimeout(()=>{this.process&&!this.process.killed&&this.process.kill("SIGKILL")},5e3)),this.ready=!1,this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw new Error("ProcessTransport output stream not available");let t=etr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield Sxt(n));await this.waitForExit()}catch(n){throw n}finally{t.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(t){if(!this.process)return()=>{};let n=(r,i)=>{let s=this.getProcessExitError(r,i);t(s)};return this.process.on("exit",n),this.exitListeners.push({callback:t,handler:n}),()=>{this.process&&this.process.off("exit",n);let r=this.exitListeners.findIndex(i=>i.handler===n);r!==-1&&this.exitListeners.splice(r,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((t,n)=>{let r=(s,o)=>{if(this.abortController.signal.aborted){n(new Y_("Operation aborted"));return}let a=this.getProcessExitError(s,o);a?n(a):t()};this.process.once("exit",r);let i=s=>{this.process.off("exit",r),n(s)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};tY=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(t){this.returned=t}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((t,n)=>{this.readResolve=t,this.readReject=n})}enqueue(t){if(this.readResolve){let n=this.readResolve;this.readResolve=void 0,this.readReject=void 0,n({done:!1,value:t})}else this.queue.push(t)}done(){if(this.isDone=!0,this.readResolve){let t=this.readResolve;this.readResolve=void 0,this.readReject=void 0,t({done:!0,value:void 0})}}error(t){if(this.hasError=t,this.readReject){let n=this.readReject;this.readResolve=void 0,this.readReject=void 0,n(t)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},mbe=class{sendMcpMessage;isClosed=!1;constructor(t){this.sendMcpMessage=t}onclose;onerror;onmessage;async start(){}async send(t){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(t)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},nY=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new tY;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(t,n,r,i,s,o=new Map,a,c){this.transport=t,this.isSingleUserTurn=n,this.canUseTool=r,this.hooks=i,this.abortController=s,this.jsonSchema=a,this.initConfig=c;for(let[u,l]of o)this.connectSdkMcpServer(u,l);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(t){this.inputStream.error(t)}cleanup(t){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let n of this.sdkMcpTransports.values())try{n.close()}catch{}this.sdkMcpTransports.clear(),t?this.inputStream.error(t):this.inputStream.done()}catch{}}}next(...[t]){return this.sdkMessages.next(t)}return(t){return this.sdkMessages.return(t)}throw(t){return this.sdkMessages.throw(t)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let t of this.transport.readMessages()){if(t.type==="control_response"){let n=this.pendingControlResponses.get(t.response.request_id);n&&n(t.response);continue}else if(t.type==="control_request"){this.handleControlRequest(t);continue}else if(t.type==="control_cancel_request"){this.handleControlCancelRequest(t);continue}else if(t.type==="keep_alive")continue;t.type==="result"&&(this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Vg("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())),this.inputStream.enqueue(t)}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(t){this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.error(t),this.cleanup(t)}}async handleControlRequest(t){let n=new AbortController;this.cancelControllers.set(t.request_id,n);try{let r=await this.processControlRequest(t,n.signal),i={type:"control_response",response:{subtype:"success",request_id:t.request_id,response:r}};await Promise.resolve(this.transport.write(Qh(i)+` -`))}catch(r){let i={type:"control_response",response:{subtype:"error",request_id:t.request_id,error:r.message||String(r)}};await Promise.resolve(this.transport.write(Qh(i)+` -`))}finally{this.cancelControllers.delete(t.request_id)}}handleControlCancelRequest(t){let n=this.cancelControllers.get(t.request_id);n&&(n.abort(),this.cancelControllers.delete(t.request_id))}async processControlRequest(t,n){if(t.request.subtype==="can_use_tool"){if(!this.canUseTool)throw new Error("canUseTool callback is not provided.");return{...await this.canUseTool(t.request.tool_name,t.request.input,{signal:n,suggestions:t.request.permission_suggestions,blockedPath:t.request.blocked_path,decisionReason:t.request.decision_reason,toolUseID:t.request.tool_use_id,agentID:t.request.agent_id}),toolUseID:t.request.tool_use_id}}else{if(t.request.subtype==="hook_callback")return await this.handleHookCallbacks(t.request.callback_id,t.request.input,t.request.tool_use_id,n);if(t.request.subtype==="mcp_message"){let r=t.request,i=this.sdkMcpTransports.get(r.server_name);if(!i)throw new Error(`SDK MCP server not found: ${r.server_name}`);return"method"in r.message&&"id"in r.message&&r.message.id!==null?{mcp_response:await this.handleMcpControlRequest(r.server_name,r,i)}:(i.onmessage&&i.onmessage(r.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}}throw new Error("Unsupported control request subtype: "+t.request.subtype)}async*readSdkMessages(){for await(let t of this.inputStream)yield t}async initialize(){let t;if(this.hooks){t={};for(let[s,o]of Object.entries(this.hooks))o.length>0&&(t[s]=o.map(a=>{let c=[];for(let u of a.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,u),c.push(l)}return{matcher:a.matcher,hookCallbackIds:c,timeout:a.timeout}}))}let n=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,r={subtype:"initialize",hooks:t,sdkMcpServers:n,jsonSchema:this.jsonSchema,systemPrompt:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,agents:this.initConfig?.agents};return(await this.request(r)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(t){await this.request({subtype:"set_permission_mode",mode:t})}async setModel(t){await this.request({subtype:"set_model",model:t})}async setMaxThinkingTokens(t){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:t})}async rewindFiles(t,n){return(await this.request({subtype:"rewind_files",user_message_id:t,dry_run:n?.dryRun})).response}async processPendingPermissionRequests(t){for(let n of t)n.request.subtype==="can_use_tool"&&this.handleControlRequest(n).catch(()=>{})}request(t){let n=Math.random().toString(36).substring(2,15),r={request_id:n,type:"control_request",request:t};return new Promise((i,s)=>{this.pendingControlResponses.set(n,o=>{o.subtype==="success"?i(o):(s(new Error(o.error)),o.pending_permission_requests&&this.processPendingPermissionRequests(o.pending_permission_requests))}),Promise.resolve(this.transport.write(Qh(r)+` -`))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async setMcpServers(t){let n={},r={};for(let[c,u]of Object.entries(t))u.type==="sdk"&&"instance"in u?n[c]=u.instance:r[c]=u;let i=new Set(this.sdkMcpServerInstances.keys()),s=new Set(Object.keys(n));for(let c of i)s.has(c)||await this.disconnectSdkMcpServer(c);for(let[c,u]of Object.entries(n))i.has(c)||this.connectSdkMcpServer(c,u);let o={};for(let c of Object.keys(n))o[c]={type:"sdk",name:c};return(await this.request({subtype:"mcp_set_servers",servers:{...r,...o}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(t){Vg("[Query.streamInput] Starting to process input stream");try{let n=0;for await(let r of t){if(n++,Vg(`[Query.streamInput] Processing message ${n}: ${r.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(Qh(r)+` -`))}Vg(`[Query.streamInput] Finished processing ${n} messages from input stream`),n>0&&this.hasBidirectionalNeeds()&&(Vg("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Vg("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(n){if(!(n instanceof Y_))throw n}}waitForFirstResult(){return this.firstResultReceived?(Vg("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(t=>{if(this.abortController?.signal.aborted){t();return}this.abortController?.signal.addEventListener("abort",()=>t(),{once:!0}),this.firstResultReceivedResolve=t})}handleHookCallbacks(t,n,r,i){let s=this.hookCallbacks.get(t);if(!s)throw new Error(`No hook callback found for ID: ${t}`);return s(n,r,{signal:i})}connectSdkMcpServer(t,n){let r=new mbe(i=>this.sendMcpServerMessageToCli(t,i));this.sdkMcpTransports.set(t,r),this.sdkMcpServerInstances.set(t,n),n.connect(r)}async disconnectSdkMcpServer(t){let n=this.sdkMcpTransports.get(t);n&&(await n.close(),this.sdkMcpTransports.delete(t)),this.sdkMcpServerInstances.delete(t)}sendMcpServerMessageToCli(t,n){if("id"in n&&n.id!==null&&n.id!==void 0){let i=`${t}:${n.id}`,s=this.pendingMcpResponses.get(i);if(s){s.resolve(n),this.pendingMcpResponses.delete(i);return}}let r={type:"control_request",request_id:Trr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(Qh(r)+` -`)}handleMcpControlRequest(t,n,r){let i="id"in n.message?n.message.id:null,s=`${t}:${i}`;return new Promise((o,a)=>{let c=()=>{this.pendingMcpResponses.delete(s)},u=d=>{c(),o(d)},l=d=>{c(),a(d)};if(this.pendingMcpResponses.set(s,{resolve:u,reject:l}),r.onmessage)r.onmessage(n.message);else{c(),a(new Error("No message handler registered"));return}})}},rY=class{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw new Error("Session ID not available until after receiving messages");return this._sessionId}constructor(t){t.resume&&(this._sessionId=t.resume),this.inputStream=new tY;let n=t.pathToClaudeCodeExecutable;if(!n){let s=vrr(import.meta.url),o=_0t(s,"..");n=_0t(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=Zbe();let i=new eY({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(Xbe()?"bun":"node"),executableArgs:t.executableArgs??[],extraArgs:{},maxThinkingTokens:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:t.model,fallbackModel:void 0,permissionMode:"default",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:t.resume,settingSources:[],allowedTools:[],disallowedTools:[],mcpServers:{},strictMcpConfig:!1,canUseTool:!1,hooks:!1,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new nY(i,!1,void 0,void 0,this.abortController,new Map),this.query.streamInput(this.inputStream)}async send(t){if(this.closed)throw new Error("Cannot send to closed session");let n=typeof t=="string"?{type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null}:t;this.inputStream.enqueue(n)}async*stream(){for(this.queryIterator||(this.queryIterator=this.query[Symbol.asyncIterator]());;){let{value:t,done:n}=await this.queryIterator.next();if(n||(t.type==="system"&&t.subtype==="init"&&(this._sessionId=t.session_id),yield t,t.type==="result"))return}}close(){this.closed||(this.closed=!0,this.inputStream.done(),this.abortController.abort())}async[Symbol.asyncDispose](){this.close()}};(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},e.getValidEnumValues=i=>{let s=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},e.find=(i,s)=>{for(let o of i)if(s(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(rr||(rr={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(E0t||(E0t={}));nt=rr.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Z_=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},Oe=rr.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Vd=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Vd.create=e=>new Vd(e);Rrr=(e,t)=>{let n;switch(e.code){case Oe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Oe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,rr.jsonStringifyReplacer)}`;break;case Oe.unrecognized_keys:n=`Unrecognized key(s) in object: ${rr.joinValues(e.keys,", ")}`;break;case Oe.invalid_union:n="Invalid input";break;case Oe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${rr.joinValues(e.options)}`;break;case Oe.invalid_enum_value:n=`Invalid enum value. Expected ${rr.joinValues(e.options)}, received '${e.received}'`;break;case Oe.invalid_arguments:n="Invalid function arguments";break;case Oe.invalid_return_type:n="Invalid function return type";break;case Oe.invalid_date:n="Invalid date";break;case Oe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:rr.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Oe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Oe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Oe.custom:n="Invalid input";break;case Oe.invalid_intersection_types:n="Intersection results could not be merged";break;case Oe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Oe.not_finite:n="Number must be finite";break;default:n=t.defaultError,rr.assertNever(e)}return{message:n}},iU=Rrr,wrr=iU;ybe=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}};Qc=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Vt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Vt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Vt=Object.freeze({status:"aborted"}),Q1=e=>({status:"dirty",value:e}),zu=e=>({status:"valid",value:e}),b0t=e=>e.status==="aborted",T0t=e=>e.status==="dirty",Ex=e=>e.status==="valid",iY=e=>typeof Promise<"u"&&e instanceof Promise;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(lt||(lt={}));Wd=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},v0t=(e,t)=>{if(Ex(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Vd(e.common.issues);return this._error=n,this._error}}};Tn=class{get description(){return this._def.description}_getType(t){return Z_(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Z_(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Qc,ctx:{common:t.parent.common,data:t.data,parsedType:Z_(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(iY(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Z_(t)},i=this._parseSync({data:t,path:r.path,parent:r});return v0t(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Z_(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Ex(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>Ex(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Z_(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(iY(i)?i:Promise.resolve(i));return v0t(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Oe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new lp({schema:this,typeName:De.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return up.create(this,this._def)}nullable(){return Yg.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Q_.create(this)}promise(){return qv.create(this,this._def)}or(t){return Ax.create([this,t],this._def)}and(t){return Rx.create(this,t,this._def)}transform(t){return new lp({...ln(this._def),schema:this,typeName:De.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Ox({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new sY({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Nx({...ln(this._def),innerType:this,catchValue:n,typeName:De.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return oY.create(this,t)}readonly(){return Px.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},krr=/^c[^\s-]{8,}$/i,Irr=/^[0-9a-z]+$/,xrr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Orr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Nrr=/^[a-z0-9_-]{21}$/i,Prr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Crr=/^[-+]?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)?)??$/,Mrr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Drr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Lrr=/^(?:(?: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])$/,Urr=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,jrr=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Frr=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Hrr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,qrr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Txt="((\\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])))",Brr=new RegExp(`^${Txt}$`);bx=class e extends Tn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==nt.string){let s=this._getOrReturnCtx(t);return Ke(s,{code:Oe.invalid_type,expected:nt.string,received:s.parsedType}),Vt}let r=new Qc,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),Ke(i,{code:Oe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Oe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew bx({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});sU=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==nt.number){let s=this._getOrReturnCtx(t);return Ke(s,{code:Oe.invalid_type,expected:nt.number,received:s.parsedType}),Vt}let r,i=new Qc;for(let s of this._def.checks)s.kind==="int"?rr.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Ke(r,{code:Oe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ke(r,{code:Oe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Zrr(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ke(r,{code:Oe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ke(r,{code:Oe.not_finite,message:s.message}),i.dirty()):rr.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:lt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:lt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:lt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:lt.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&rr.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew sU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});oU=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==nt.bigint)return this._getInvalidInput(t);let r,i=new Qc;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ke(r,{code:Oe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ke(r,{code:Oe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):rr.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return Ke(n,{code:Oe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew oU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});aU=class extends Tn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==nt.boolean){let r=this._getOrReturnCtx(t);return Ke(r,{code:Oe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return zu(t.data)}};aU.create=e=>new aU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});cU=class e extends Tn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==nt.date){let s=this._getOrReturnCtx(t);return Ke(s,{code:Oe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ke(s,{code:Oe.invalid_date}),Vt}let r=new Qc,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),Ke(i,{code:Oe.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):rr.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:lt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:lt.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew cU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});uU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ke(r,{code:Oe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return zu(t.data)}};uU.create=e=>new uU({typeName:De.ZodSymbol,...ln(e)});Tx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ke(r,{code:Oe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return zu(t.data)}};Tx.create=e=>new Tx({typeName:De.ZodUndefined,...ln(e)});vx=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ke(r,{code:Oe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return zu(t.data)}};vx.create=e=>new vx({typeName:De.ZodNull,...ln(e)});lU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return zu(t.data)}};lU.create=e=>new lU({typeName:De.ZodAny,...ln(e)});X_=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return zu(t.data)}};X_.create=e=>new X_({typeName:De.ZodUnknown,...ln(e)});em=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ke(n,{code:Oe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};em.create=e=>new em({typeName:De.ZodNever,...ln(e)});dU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ke(r,{code:Oe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return zu(t.data)}};dU.create=e=>new dU({typeName:De.ZodVoid,...ln(e)});Q_=class e extends Tn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==nt.array)return Ke(n,{code:Oe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ke(n,{code:Oe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new Wd(n,o,n.path,a)))).then(o=>Qc.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new Wd(n,o,n.path,a)));return Qc.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:lt.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:lt.toString(n)}})}nonempty(t){return this.min(1,t)}};Q_.create=(e,t)=>new Q_({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.ZodArray,...ln(t)});Cl=class e extends Tn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=rr.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==nt.object){let u=this._getOrReturnCtx(t);return Ke(u,{code:Oe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof em&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Wd(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof em){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(Ke(i,{code:Oe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Wd(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>Qc.mergeObjectSync(r,u)):Qc.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return lt.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:lt.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:De.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of rr.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of rr.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return yx(this)}partial(t){let n={};for(let r of rr.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of rr.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof up;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return Axt(rr.objectKeys(this.shape))}};Cl.create=(e,t)=>new Cl({shape:()=>e,unknownKeys:"strip",catchall:em.create(),typeName:De.ZodObject,...ln(t)});Cl.strictCreate=(e,t)=>new Cl({shape:()=>e,unknownKeys:"strict",catchall:em.create(),typeName:De.ZodObject,...ln(t)});Cl.lazycreate=(e,t)=>new Cl({shape:e,unknownKeys:"strip",catchall:em.create(),typeName:De.ZodObject,...ln(t)});Ax=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Vd(a.ctx.common.issues));return Ke(n,{code:Oe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Vd(c));return Ke(n,{code:Oe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Ax.create=(e,t)=>new Ax({options:e,typeName:De.ZodUnion,...ln(t)});zg=e=>e instanceof wx?zg(e.schema):e instanceof lp?zg(e.innerType()):e instanceof kx?[e.value]:e instanceof Ix?e.options:e instanceof xx?rr.objectValues(e.enum):e instanceof Ox?zg(e._def.innerType):e instanceof Tx?[void 0]:e instanceof vx?[null]:e instanceof up?[void 0,...zg(e.unwrap())]:e instanceof Yg?[null,...zg(e.unwrap())]:e instanceof sY||e instanceof Px?zg(e.unwrap()):e instanceof Nx?zg(e._def.innerType):[],Sbe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ke(n,{code:Oe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ke(n,{code:Oe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=zg(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:De.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...ln(r)})}};Rx=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(b0t(s)||b0t(o))return Vt;let a=_be(s.value,o.value);return a.valid?((T0t(s)||T0t(o))&&n.dirty(),{status:n.value,value:a.data}):(Ke(r,{code:Oe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Rx.create=(e,t,n)=>new Rx({left:e,right:t,typeName:De.ZodIntersection,...ln(n)});Zg=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.array)return Ke(r,{code:Oe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ke(r,{code:Oe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Wd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>Qc.mergeArray(n,o)):Qc.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Zg.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Zg({items:e,typeName:De.ZodTuple,rest:null,...ln(t)})};Ebe=class e extends Tn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.object)return Ke(r,{code:Oe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new Wd(r,a,r.path,a)),value:o._parse(new Wd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?Qc.mergeObjectAsync(n,i):Qc.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Tn?new e({keyType:t,valueType:n,typeName:De.ZodRecord,...ln(r)}):new e({keyType:bx.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},fU=class extends Tn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.map)return Ke(r,{code:Oe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new Wd(r,a,r.path,[u,"key"])),value:s._parse(new Wd(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Vt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Vt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};fU.create=(e,t,n)=>new fU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});pU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ke(r,{code:Oe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ke(r,{code:Oe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new Wd(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:lt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};pU.create=(e,t)=>new pU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});bbe=class e extends Tn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.function)return Ke(n,{code:Oe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return ybe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,gbe(),iU].filter(u=>!!u),issueData:{code:Oe.invalid_arguments,argumentsError:c}})}function i(a,c){return ybe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,gbe(),iU].filter(u=>!!u),issueData:{code:Oe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof qv){let a=this;return zu(async function(...c){let u=new Vd([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return zu(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Vd([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Vd([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Zg.create(t).rest(X_.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Zg.create([]).rest(X_.create()),returns:n||X_.create(),typeName:De.ZodFunction,...ln(r)})}},wx=class extends Tn{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};wx.create=(e,t)=>new wx({getter:e,typeName:De.ZodLazy,...ln(t)});kx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ke(n,{received:n.data,code:Oe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};kx.create=(e,t)=>new kx({value:e,typeName:De.ZodLiteral,...ln(t)});Ix=class e extends Tn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return Ke(n,{expected:rr.joinValues(r),received:n.parsedType,code:Oe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ke(n,{received:n.data,code:Oe.invalid_enum_value,options:r}),Vt}return zu(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};Ix.create=Axt;xx=class extends Tn{_parse(t){let n=rr.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==nt.string&&r.parsedType!==nt.number){let i=rr.objectValues(n);return Ke(r,{expected:rr.joinValues(i),received:r.parsedType,code:Oe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(rr.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=rr.objectValues(n);return Ke(r,{received:r.data,code:Oe.invalid_enum_value,options:i}),Vt}return zu(t.data)}get enum(){return this._def.values}};xx.create=(e,t)=>new xx({values:e,typeName:De.ZodNativeEnum,...ln(t)});qv=class extends Tn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.promise&&n.common.async===!1)return Ke(n,{code:Oe.invalid_type,expected:nt.promise,received:n.parsedType}),Vt;let r=n.parsedType===nt.promise?n.data:Promise.resolve(n.data);return zu(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};qv.create=(e,t)=>new qv({type:e,typeName:De.ZodPromise,...ln(t)});lp=class extends Tn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===De.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{Ke(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Vt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Vt:c.status==="dirty"||n.value==="dirty"?Q1(c.value):c});{if(n.value==="aborted")return Vt;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Vt:a.status==="dirty"||n.value==="dirty"?Q1(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Vt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Vt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Ex(o))return Vt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>Ex(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Vt);rr.assertNever(i)}};lp.create=(e,t,n)=>new lp({schema:e,typeName:De.ZodEffects,effect:t,...ln(n)});lp.createWithPreprocess=(e,t,n)=>new lp({schema:t,effect:{type:"preprocess",transform:e},typeName:De.ZodEffects,...ln(n)});up=class extends Tn{_parse(t){return this._getType(t)===nt.undefined?zu(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};up.create=(e,t)=>new up({innerType:e,typeName:De.ZodOptional,...ln(t)});Yg=class extends Tn{_parse(t){return this._getType(t)===nt.null?zu(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Yg.create=(e,t)=>new Yg({innerType:e,typeName:De.ZodNullable,...ln(t)});Ox=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===nt.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Ox.create=(e,t)=>new Ox({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});Nx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return iY(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Vd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Vd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Nx.create=(e,t)=>new Nx({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});hU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ke(r,{code:Oe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};hU.create=e=>new hU({typeName:De.ZodNaN,...ln(e)});sY=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},oY=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Vt:s.status==="dirty"?(n.dirty(),Q1(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Vt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:De.ZodPipeline})}},Px=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Ex(i)&&(i.value=Object.freeze(i.value)),i);return iY(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Px.create=(e,t)=>new Px({innerType:e,typeName:De.ZodReadonly,...ln(t)});T0i={object:Cl.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(De||(De={}));v0i=bx.create,A0i=sU.create,R0i=hU.create,w0i=oU.create,k0i=aU.create,I0i=cU.create,x0i=uU.create,O0i=Tx.create,N0i=vx.create,P0i=lU.create,C0i=X_.create,M0i=em.create,D0i=dU.create,L0i=Q_.create,Yrr=Cl.create,U0i=Cl.strictCreate,j0i=Ax.create,F0i=Sbe.create,H0i=Rx.create,q0i=Zg.create,B0i=Ebe.create,G0i=fU.create,z0i=pU.create,V0i=bbe.create,W0i=wx.create,K0i=kx.create,Z0i=Ix.create,Y0i=xx.create,J0i=qv.create,X0i=lp.create,Q0i=up.create,$0i=Yg.create,exi=lp.createWithPreprocess,txi=oY.create,nxi=Object.freeze({status:"aborted"});Bv=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Tbe={};Br={};txt(Br,{unwrapMessage:()=>$1,stringifyPrimitive:()=>tTe,required:()=>hir,randomString:()=>rir,propertyKeyTypes:()=>Ixt,promiseAllObject:()=>nir,primitiveTypes:()=>oir,prefixIssues:()=>J_,pick:()=>uir,partial:()=>pir,optionalKeys:()=>xxt,omit:()=>lir,numKeys:()=>iir,nullish:()=>TY,normalizeParams:()=>qt,merge:()=>fir,jsonStringifyReplacer:()=>Rxt,joinValues:()=>vbe,issue:()=>Nxt,isPlainObject:()=>gU,isObject:()=>mU,getSizableOrigin:()=>mir,getParsedType:()=>sir,getLengthableOrigin:()=>AY,getEnumValues:()=>Qbe,getElementAtPath:()=>tir,floatSafeRemainder:()=>wxt,finalizeIssue:()=>Xg,extend:()=>dir,escapeRegex:()=>Ux,esc:()=>Sx,defineLazy:()=>Ai,createTransparentProxy:()=>air,clone:()=>Qg,cleanRegex:()=>vY,cleanEnum:()=>gir,captureStackTrace:()=>eTe,cached:()=>bY,assignProp:()=>$be,assertNotEqual:()=>Xrr,assertNever:()=>$rr,assertIs:()=>Qrr,assertEqual:()=>Jrr,assert:()=>eir,allowsEval:()=>kxt,aborted:()=>_x,NUMBER_FORMAT_RANGES:()=>Oxt,Class:()=>Abe,BIGINT_FORMAT_RANGES:()=>cir});eTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};kxt=bY(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});sir=e=>{let t=typeof e;switch(t){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":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},Ixt=new Set(["string","number","symbol"]),oir=new Set(["string","number","bigint","boolean","symbol","undefined"]);Oxt={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},cir={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};Abe=class{constructor(...t){}},Pxt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,Rxt,2)},enumerable:!0})},Cxt=me("$ZodError",Pxt),RY=me("$ZodError",Pxt,{Parent:Error});Mxt=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new Bv;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>Xg(c,s,Jg())));throw eTe(a,i?.callee),a}return o.value},_ir=Mxt(RY),Dxt=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>Xg(c,s,Jg())));throw eTe(a,i?.callee),a}return o.value},Eir=Dxt(RY),Lxt=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Bv;return s.issues.length?{success:!1,error:new(e??Cxt)(s.issues.map(o=>Xg(o,i,Jg())))}:{success:!0,data:s.value}},nTe=Lxt(RY),Uxt=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>Xg(o,i,Jg())))}:{success:!0,data:s.value}},rTe=Uxt(RY),bir=/^[cC][^\s-]{8,}$/,Tir=/^[0-9a-z]+$/,vir=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Air=/^[0-9a-vA-V]{20}$/,Rir=/^[A-Za-z0-9]{27}$/,wir=/^[a-zA-Z0-9_-]{21}$/,kir=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Iir=/^([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})$/,A0t=e=>e?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})$`):/^([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)$/,xir=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Oir="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";Pir=/^(?:(?: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])$/,Cir=/^(([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})$/,Mir=/^((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])$/,Dir=/^(([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])$/,Lir=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,jxt=/^[A-Za-z0-9_-]*$/,Uir=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,jir=/^\+(?:[0-9]){6,14}[0-9]$/,Fxt="(?:(?:\\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])))",Fir=new RegExp(`^${Fxt}$`);Bir=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Gir=/^\d+$/,zir=/^-?\d+(?:\.\d+)?/i,Vir=/true|false/i,Wir=/null/i,Kir=/^[^A-Z]*$/,Zir=/^[^a-z]*$/,Wu=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),qxt={number:"number",bigint:"bigint",object:"date"},Bxt=me("$ZodCheckLessThan",(e,t)=>{Wu.init(e,t);let n=qxt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{Wu.init(e,t);let n=qxt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Yir=me("$ZodCheckMultipleOf",(e,t)=>{Wu.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):wxt(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Jir=me("$ZodCheckNumberFormat",(e,t)=>{Wu.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=Oxt[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=Gir)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),Xir=me("$ZodCheckMaxLength",(e,t)=>{Wu.init(e,t),e._zod.when=n=>{let r=n.value;return!TY(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let r=n.value;if(r.length<=t.maximum)return;let s=AY(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Qir=me("$ZodCheckMinLength",(e,t)=>{Wu.init(e,t),e._zod.when=n=>{let r=n.value;return!TY(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let s=AY(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),$ir=me("$ZodCheckLengthEquals",(e,t)=>{Wu.init(e,t),e._zod.when=n=>{let r=n.value;return!TY(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let s=AY(r),o=i>t.length;n.issues.push({origin:s,...o?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),wY=me("$ZodCheckStringFormat",(e,t)=>{var n,r;Wu.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),esr=me("$ZodCheckRegex",(e,t)=>{wY.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tsr=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Kir),wY.init(e,t)}),nsr=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Zir),wY.init(e,t)}),rsr=me("$ZodCheckIncludes",(e,t)=>{Wu.init(e,t);let n=Ux(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),isr=me("$ZodCheckStartsWith",(e,t)=>{Wu.init(e,t);let n=new RegExp(`^${Ux(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),ssr=me("$ZodCheckEndsWith",(e,t)=>{Wu.init(e,t);let n=new RegExp(`.*${Ux(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),osr=me("$ZodCheckOverwrite",(e,t)=>{Wu.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),Rbe=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let f=Array.isArray(c[d])?u:l;f[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:f}=c;if(Object.keys(u).length===0)return;let p=l.let("missing");for(let h in u){let m=u[h];if(m.length===0)continue;let g=(0,r.propertyInData)(l,d,h,f.opts.ownProperties);c.setParams({property:h,depsCount:m.length,deps:m.join(", ")}),f.allErrors?l.if(g,()=>{for(let y of m)(0,r.checkReportMissingProp)(c,y)}):(l.if((0,t._)`${g} && (${(0,r.checkMissingProp)(c,m,p)})`),(0,r.reportMissingProp)(c,p),l.else())}}e.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:f,it:p}=c,h=l.name("valid");for(let m in u)(0,n.alwaysValidSchema)(p,u[m])||(l.if((0,r.propertyInData)(l,d,m,p.opts.ownProperties),()=>{let g=c.subschema({keyword:f,schemaProp:m},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}e.validateSchemaDeps=a,e.default=i}),Anr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=ur(),r={message:"property name must be valid",params:({params:s})=>(0,t._)`{propertyName: ${s.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:r,code(s){let{gen:o,schema:a,data:c,it:u}=s;if((0,n.alwaysValidSchema)(u,a))return;let l=o.name("valid");o.forIn("key",c,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,t.not)(l),()=>{s.error(!0),u.allErrors||o.break()})}),s.ok(l)}};e.default=i}),oOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n=bn(),r=i_(),i=ur(),s={message:"must NOT have additional properties",params:({params:a})=>(0,n._)`{additionalProperty: ${a.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(a){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:f,it:p}=a;if(!f)throw new Error("ajv implementation error");let{allErrors:h,opts:m}=p;if(p.props=!0,m.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(p,u))return;let g=(0,t.allSchemaProperties)(l.properties),y=(0,t.allSchemaProperties)(l.patternProperties);E(),a.ok((0,n._)`${f} === ${r.default.errors}`);function E(){c.forIn("key",d,A=>{!g.length&&!y.length?b(A):c.if(S(A),()=>b(A))})}function S(A){let R;if(g.length>8){let x=(0,i.schemaRefOrVal)(p,l.properties,"properties");R=(0,t.isOwnProperty)(c,x,A)}else g.length?R=(0,n.or)(...g.map(x=>(0,n._)`${A} === ${x}`)):R=n.nil;return y.length&&(R=(0,n.or)(R,...y.map(x=>(0,n._)`${(0,t.usePattern)(a,x)}.test(${A})`))),(0,n.not)(R)}function _(A){c.code((0,n._)`delete ${d}[${A}]`)}function b(A){if(m.removeAdditional==="all"||m.removeAdditional&&u===!1){_(A);return}if(u===!1){a.setParams({additionalProperty:A}),a.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(p,u)){let R=c.name("valid");m.removeAdditional==="failing"?(T(A,R,!1),c.if((0,n.not)(R),()=>{a.reset(),_(A)})):(T(A,R),h||c.if((0,n.not)(R),()=>c.break()))}}function T(A,R,x){let k={keyword:"additionalProperties",dataProp:A,dataPropType:i.Type.Str};x===!1&&Object.assign(k,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema(k,R)}}};e.default=o}),Rnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=D6(),n=Sp(),r=ur(),i=oOt(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(d,i.default,"additionalProperties"));let f=(0,n.allSchemaProperties)(c);for(let y of f)d.definedProperties.add(y);d.opts.unevaluated&&f.length&&d.props!==!0&&(d.props=r.mergeEvaluated.props(a,(0,r.toHash)(f),d.props));let p=f.filter(y=>!(0,r.alwaysValidSchema)(d,c[y]));if(p.length===0)return;let h=a.name("valid");for(let y of p)m(y)?g(y):(a.if((0,n.propertyInData)(a,l,y,d.opts.ownProperties)),g(y),d.allErrors||a.else().var(h,!0),a.endIf()),o.it.definedProperties.add(y),o.ok(h);function m(y){return d.opts.useDefaults&&!d.compositeRule&&c[y].default!==void 0}function g(y){o.subschema({keyword:"properties",schemaProp:y,dataProp:y},h)}}};e.default=s}),wnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n=bn(),r=ur(),i=ur(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,data:u,parentSchema:l,it:d}=o,{opts:f}=d,p=(0,t.allSchemaProperties)(c),h=p.filter(b=>(0,r.alwaysValidSchema)(d,c[b]));if(p.length===0||h.length===p.length&&(!d.opts.unevaluated||d.props===!0))return;let m=f.strictSchema&&!f.allowMatchingProperties&&l.properties,g=a.name("valid");d.props!==!0&&!(d.props instanceof n.Name)&&(d.props=(0,i.evaluatedPropsToName)(a,d.props));let{props:y}=d;E();function E(){for(let b of p)m&&S(b),d.allErrors?_(b):(a.var(g,!0),_(b),a.if(g))}function S(b){for(let T in m)new RegExp(b).test(T)&&(0,r.checkStrictMode)(d,`property ${T} matches pattern ${b} (use allowMatchingProperties)`)}function _(b){a.forIn("key",u,T=>{a.if((0,n._)`${(0,t.usePattern)(o,b)}.test(${T})`,()=>{let A=h.includes(b);A||o.subschema({keyword:"patternProperties",schemaProp:b,dataProp:T,dataPropType:i.Type.Str},g),d.opts.unevaluated&&y!==!0?a.assign((0,n._)`${y}[${T}]`,!0):!A&&!d.allErrors&&a.if((0,n.not)(g),()=>a.break())})})}}};e.default=s}),knr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){let{gen:i,schema:s,it:o}=r;if((0,t.alwaysValidSchema)(o,s)){r.fail();return}let a=i.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};e.default=n}),Inr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Sp(),n={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:t.validateUnion,error:{message:"must match a schema in anyOf"}};e.default=n}),xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=ur(),r={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,t._)`{passingSchemas: ${s.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:r,code(s){let{gen:o,schema:a,parentSchema:c,it:u}=s;if(!Array.isArray(a))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=a,d=o.let("valid",!1),f=o.let("passing",null),p=o.name("_valid");s.setParams({passing:f}),o.block(h),s.result(d,()=>s.reset(),()=>s.error(!0));function h(){l.forEach((m,g)=>{let y;(0,n.alwaysValidSchema)(u,m)?o.var(p,!0):y=s.subschema({keyword:"oneOf",schemaProp:g,compositeRule:!0},p),g>0&&o.if((0,t._)`${p} && ${d}`).assign(d,!1).assign(f,(0,t._)`[${f}, ${g}]`).else(),o.if(p,()=>{o.assign(d,!0),o.assign(f,g),y&&s.mergeEvaluated(y,t.Name)})})}}};e.default=i}),Onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:"allOf",schemaType:"array",code(r){let{gen:i,schema:s,it:o}=r;if(!Array.isArray(s))throw new Error("ajv implementation error");let a=i.name("valid");s.forEach((c,u)=>{if((0,t.alwaysValidSchema)(o,c))return;let l=r.subschema({keyword:"allOf",schemaProp:u},a);r.ok(a),r.mergeEvaluated(l)})}};e.default=n}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=ur(),r={message:({params:o})=>(0,t.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,t._)`{failingKeyword: ${o.ifClause}}`},i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:r,code(o){let{gen:a,parentSchema:c,it:u}=o;c.then===void 0&&c.else===void 0&&(0,n.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=s(u,"then"),d=s(u,"else");if(!l&&!d)return;let f=a.let("valid",!0),p=a.name("_valid");if(h(),o.reset(),l&&d){let g=a.let("ifClause");o.setParams({ifClause:g}),a.if(p,m("then",g),m("else",g))}else l?a.if(p,m("then")):a.if((0,t.not)(p),m("else"));o.pass(f,()=>o.error(!0));function h(){let g=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},p);o.mergeEvaluated(g)}function m(g,y){return()=>{let E=o.subschema({keyword:g},p);a.assign(f,p),o.mergeValidEvaluated(E,f),y?a.assign(y,(0,t._)`${g}`):o.setParams({ifClause:g})}}}};function s(o,a){let c=o.schema[a];return c!==void 0&&!(0,n.alwaysValidSchema)(o,c)}e.default=i}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:i,it:s}){i.if===void 0&&(0,t.checkStrictMode)(s,`"${r}" without "if" is ignored`)}};e.default=n}),Cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=iOt(),n=_nr(),r=sOt(),i=bnr(),s=Tnr(),o=vnr(),a=Anr(),c=oOt(),u=Rnr(),l=wnr(),d=knr(),f=Inr(),p=xnr(),h=Onr(),m=Pnr(),g=Nnr();function y(E=!1){let S=[d.default,f.default,p.default,h.default,m.default,g.default,a.default,c.default,o.default,u.default,l.default];return E?S.push(n.default,i.default):S.push(t.default,r.default),S.push(s.default),S}e.default=y}),Mnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n={message:({schemaCode:i})=>(0,t.str)`must match format "${i}"`,params:({schemaCode:i})=>(0,t._)`{format: ${i}}`},r={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:n,code(i,s){let{gen:o,data:a,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:f,errSchemaPath:p,schemaEnv:h,self:m}=d;if(!f.validateFormats)return;c?g():y();function g(){let E=o.scopeValue("formats",{ref:m.formats,code:f.code.formats}),S=o.const("fDef",(0,t._)`${E}[${l}]`),_=o.let("fType"),b=o.let("format");o.if((0,t._)`typeof ${S} == "object" && !(${S} instanceof RegExp)`,()=>o.assign(_,(0,t._)`${S}.type || "string"`).assign(b,(0,t._)`${S}.validate`),()=>o.assign(_,(0,t._)`"string"`).assign(b,S)),i.fail$data((0,t.or)(T(),A()));function T(){return f.strictSchema===!1?t.nil:(0,t._)`${l} && !${b}`}function A(){let R=h.$async?(0,t._)`(${S}.async ? await ${b}(${a}) : ${b}(${a}))`:(0,t._)`${b}(${a})`,x=(0,t._)`(typeof ${b} == "function" ? ${R} : ${b}.test(${a}))`;return(0,t._)`${b} && ${b} !== true && ${_} === ${s} && !${x}`}}function y(){let E=m.formats[u];if(!E){T();return}if(E===!0)return;let[S,_,b]=A(E);S===s&&i.pass(R());function T(){if(f.strictSchema===!1){m.logger.warn(x());return}throw new Error(x());function x(){return`unknown format "${u}" ignored in schema at path "${p}"`}}function A(x){let k=x instanceof RegExp?(0,t.regexpCode)(x):f.code.formats?(0,t._)`${f.code.formats}${(0,t.getProperty)(u)}`:void 0,P=o.scopeValue("formats",{key:u,ref:x,code:k});return typeof x=="object"&&!(x instanceof RegExp)?[x.type||"string",x.validate,(0,t._)`${P}.validate`]:["string",x,P]}function R(){if(typeof E=="object"&&!(E instanceof RegExp)&&E.async){if(!h.$async)throw new Error("async format in sync schema");return(0,t._)`await ${b}(${a})`}return typeof _=="function"?(0,t._)`${b}(${a})`:(0,t._)`${b}.test(${a})`}}}};e.default=r}),Dnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Mnr(),n=[t.default];e.default=n}),Lnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],e.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),Unr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=anr(),n=Enr(),r=Cnr(),i=Dnr(),s=Lnr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),Fnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(n){n.Tag="tag",n.Mapping="mapping"})(t||(e.DiscrError=t={}))}),jnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bn(),n=Fnr(),r=TTe(),i=L6(),s=ur(),o={message:({params:{discrError:c,tagName:u}})=>c===n.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,t._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},a={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:f,it:p}=c,{oneOf:h}=f;if(!p.opts.discriminator)throw new Error("discriminator: requires discriminator option");let m=d.propertyName;if(typeof m!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let g=u.let("valid",!1),y=u.const("tag",(0,t._)`${l}${(0,t.getProperty)(m)}`);u.if((0,t._)`typeof ${y} == "string"`,()=>E(),()=>c.error(!1,{discrError:n.DiscrError.Tag,tag:y,tagName:m})),c.ok(g);function E(){let b=_();u.if(!1);for(let T in b)u.elseIf((0,t._)`${y} === ${T}`),u.assign(g,S(b[T]));u.else(),c.error(!1,{discrError:n.DiscrError.Mapping,tag:y,tagName:m}),u.endIf()}function S(b){let T=u.name("valid"),A=c.subschema({keyword:"oneOf",schemaProp:b},T);return c.mergeEvaluated(A,t.Name),T}function _(){var b;let T={},A=x(f),R=!0;for(let N=0;N{t.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),aOt=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var n=inr(),r=Unr(),i=jnr(),s=Hnr(),o=["/properties"],a="http://json-schema.org/draft-07/schema";class c extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(h,a,!1),this.refs["http://json-schema.org/schema"]=a}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(a)?a:void 0)}}e.Ajv=c,t.exports=e=c,t.exports.Ajv=c,Object.defineProperty(e,"__esModule",{value:!0}),e.default=c;var u=D6();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=bn();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=bTe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=L6();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(P,N){return{validate:P,compare:N}}e.fullFormats={date:t(s,o),time:t(c(!0),u),"date-time":t(f(!0),p),"iso-time":t(c(),l),"iso-date-time":t(f(),h),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:y,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:k,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:S,int32:{type:"number",validate:T},int64:{type:"number",validate:A},float:{type:"number",validate:R},double:{type:"number",validate:R},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,u),"date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,p),"iso-time":t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"iso-date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,h),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},e.formatNames=Object.keys(e.fullFormats);function n(P){return P%4===0&&(P%100!==0||P%400===0)}var r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s(P){let N=r.exec(P);if(!N)return!1;let C=+N[1],F=+N[2],V=+N[3];return F>=1&&F<=12&&V>=1&&V<=(F===2&&n(C)?29:i[F])}function o(P,N){if(P&&N)return P>N?1:P23||M>59||P&&!B)return!1;if(V<=23&&K<=59&&$<60)return!0;let q=K-M*X,U=V-G*X-(q<0?1:0);return(U===23||U===-1)&&(q===59||q===-1)&&$<61}}function u(P,N){if(!(P&&N))return;let C=new Date("2020-01-01T"+P).valueOf(),F=new Date("2020-01-01T"+N).valueOf();if(C&&F)return C-F}function l(P,N){if(!(P&&N))return;let C=a.exec(P),F=a.exec(N);if(C&&F)return P=C[1]+C[2]+C[3],N=F[1]+F[2]+F[3],P>N?1:P=_}function A(P){return Number.isInteger(P)}function R(){return!0}var x=/[^\\]\\Z/;function k(P){if(x.test(P))return!1;try{return new RegExp(P),!0}catch{return!1}}}),Bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=aOt(),n=bn(),r=n.operators,i={formatMaximum:{okStr:"<=",ok:r.LTE,fail:r.GT},formatMinimum:{okStr:">=",ok:r.GTE,fail:r.LT},formatExclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},formatExclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},s={message:({keyword:a,schemaCode:c})=>(0,n.str)`should be ${i[a].okStr} ${c}`,params:({keyword:a,schemaCode:c})=>(0,n._)`{comparison: ${i[a].okStr}, limit: ${c}}`};e.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:c,data:u,schemaCode:l,keyword:d,it:f}=a,{opts:p,self:h}=f;if(!p.validateFormats)return;let m=new t.KeywordCxt(f,h.RULES.all.format.definition,"format");m.$data?g():y();function g(){let S=c.scopeValue("formats",{ref:h.formats,code:p.code.formats}),_=c.const("fmt",(0,n._)`${S}[${m.schemaCode}]`);a.fail$data((0,n.or)((0,n._)`typeof ${_} != "object"`,(0,n._)`${_} instanceof RegExp`,(0,n._)`typeof ${_}.compare != "function"`,E(_)))}function y(){let S=m.schema,_=h.formats[S];if(!_||_===!0)return;if(typeof _!="object"||_ instanceof RegExp||typeof _.compare!="function")throw new Error(`"${d}": format "${S}" does not define "compare" function`);let b=c.scopeValue("formats",{key:S,ref:_,code:p.code.formats?(0,n._)`${p.code.formats}${(0,n.getProperty)(S)}`:void 0});a.fail$data(E(b))}function E(S){return(0,n._)`${S}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=a=>(a.addKeyword(e.formatLimitDefinition),a);e.default=o}),Gnr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=qnr(),r=Bnr(),i=bn(),s=new i.Name("fullFormats"),o=new i.Name("fastFormats"),a=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,n.fullFormats,s),u;let[d,f]=l.mode==="fast"?[n.fastFormats,o]:[n.fullFormats,s],p=l.formats||n.formatNames;return c(u,p,d,f),l.keywords&&(0,r.default)(u),u};a.get=(u,l="full")=>{let f=(l==="fast"?n.fastFormats:n.fullFormats)[u];if(!f)throw new Error(`Unknown format "${u}"`);return f};function c(u,l,d,f){var p,h;(p=(h=u.opts.code).formats)!==null&&p!==void 0||(h.formats=(0,i._)`require("ajv-formats/dist/formats").${f}`);for(let m of l)u.addFormat(m,d[m])}t.exports=e=a,Object.defineProperty(e,"__esModule",{value:!0}),e.default=a}),Wnr=50;Jnr=typeof global=="object"&&global&&global.Object===Object&&global,Xnr=Jnr,Qnr=typeof self=="object"&&self&&self.Object===Object&&self,$nr=Xnr||Qnr||Function("return this")(),RTe=$nr,err=RTe.Symbol,y6=err,cOt=Object.prototype,trr=cOt.hasOwnProperty,nrr=cOt.toString,lU=y6?y6.toStringTag:void 0;irr=rrr,srr=Object.prototype,orr=srr.toString;crr=arr,urr="[object Null]",lrr="[object Undefined]",lxt=y6?y6.toStringTag:void 0;frr=drr;uOt=prr,hrr="[object AsyncFunction]",mrr="[object Function]",grr="[object GeneratorFunction]",yrr="[object Proxy]";Err=Srr,_rr=RTe["__core-js_shared__"],Mbe=_rr,dxt=(function(){var e=/[^.]+$/.exec(Mbe&&Mbe.keys&&Mbe.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();Trr=brr,vrr=Function.prototype,Arr=vrr.toString;wrr=Rrr,krr=/[\\^$.*+?()[\]{}|]/g,Irr=/^\[object .+?Constructor\]$/,xrr=Function.prototype,Orr=Object.prototype,Prr=xrr.toString,Nrr=Orr.hasOwnProperty,Crr=RegExp("^"+Prr.call(Nrr).replace(krr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Drr=Mrr;Urr=Lrr;lOt=Frr,jrr=lOt(Object,"create"),SU=jrr;qrr=Hrr;Grr=Brr,zrr="__lodash_hash_undefined__",Vrr=Object.prototype,Wrr=Vrr.hasOwnProperty;Yrr=Krr,Zrr=Object.prototype,Jrr=Zrr.hasOwnProperty;Qrr=Xrr,$rr="__lodash_hash_undefined__";tir=eir;qx.prototype.clear=qrr;qx.prototype.delete=Grr;qx.prototype.get=Yrr;qx.prototype.has=Qrr;qx.prototype.set=tir;fxt=qx;rir=nir;sir=iir;U6=oir,air=Array.prototype,cir=air.splice;lir=uir;fir=dir;hir=pir;gir=mir;Bx.prototype.clear=rir;Bx.prototype.delete=lir;Bx.prototype.get=fir;Bx.prototype.has=hir;Bx.prototype.set=gir;yir=Bx,Sir=lOt(RTe,"Map"),Eir=Sir;bir=_ir;vir=Tir;F6=Air;wir=Rir;Iir=kir;Oir=xir;Nir=Pir;Gx.prototype.clear=bir;Gx.prototype.delete=wir;Gx.prototype.get=Iir;Gx.prototype.has=Oir;Gx.prototype.set=Nir;dOt=Gx,Cir="Expected a function";wTe.Cache=dOt;NU=wTe,pxt=2e3;Dir=NU(e=>{if(!e||e.trim()==="")return null;let t=e.split(",").map(s=>s.trim()).filter(Boolean);if(t.length===0)return null;let n=t.some(s=>s.startsWith("!")),r=t.some(s=>!s.startsWith("!"));if(n&&r)return null;let i=t.map(s=>s.replace(/^!/,"").toLowerCase());return{include:n?[]:i,exclude:n?i:[],isExclusive:n}});Dbe=15e4,u6=3e4;zir=hOt("BASH_MAX_OUTPUT_LENGTH"),lPi=hOt("TASK_MAX_OUTPUT_LENGTH"),Vir={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:e=>{if(!e)return{effective:32e3,status:"valid"};let r=parseInt(e,10);return isNaN(r)||r<=0?{effective:32e3,status:"invalid",message:`Invalid value "${e}" (using default: 32000)`}:r>64e3?{effective:64e3,status:"capped",message:`Capped from ${r} to 64000`}:{effective:r,status:"valid"}}};Kir=Wir();mxt=new Set;mOt=1/0;yOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return gOt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},Qir=NU(()=>hxt(process.env.DEBUG)||hxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||SOt()||process.argv.some(e=>e.startsWith("--debug="))),$ir=NU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return Dir(t)}),SOt=NU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));tsr=!1,l6=null;rsr=NU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=EOt(),t=zbe(e),n=pOt(t,"latest");if(Jg().existsSync(t)||Jg().mkdirSync(t),Jg().existsSync(n))try{Jg().unlinkSync(n)}catch{}Jg().symlinkSync(e,n)}catch{}});isr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Znr(e)},statSync(e){return fo(`statSync(${e})`,()=>Zt.statSync(e))},lstatSync(e){return fo(`lstatSync(${e})`,()=>Zt.lstatSync(e))},readFileSync(e,t){return fo(`readFileSync(${e})`,()=>Zt.readFileSync(e,{encoding:t.encoding}))},readFileBytesSync(e){return fo(`readFileBytesSync(${e})`,()=>Zt.readFileSync(e))},readSync(e,t){return fo(`readSync(${e}, ${t.length} bytes)`,()=>{let n;try{n=Zt.openSync(e,"r");let r=Buffer.alloc(t.length),i=Zt.readSync(n,r,0,t.length,0);return{buffer:r,bytesRead:i}}finally{n&&Zt.closeSync(n)}})},appendFileSync(e,t,n){return fo(`appendFileSync(${e}, ${t.length} chars)`,()=>{if(!Zt.existsSync(e)&&n?.mode!==void 0){let r=Zt.openSync(e,"a",n.mode);try{Zt.appendFileSync(r,t)}finally{Zt.closeSync(r)}}else Zt.appendFileSync(e,t)})},copyFileSync(e,t){return fo(`copyFileSync(${e} \u2192 ${t})`,()=>Zt.copyFileSync(e,t))},unlinkSync(e){return fo(`unlinkSync(${e})`,()=>Zt.unlinkSync(e))},renameSync(e,t){return fo(`renameSync(${e} \u2192 ${t})`,()=>Zt.renameSync(e,t))},linkSync(e,t){return fo(`linkSync(${e} \u2192 ${t})`,()=>Zt.linkSync(e,t))},symlinkSync(e,t){return fo(`symlinkSync(${e} \u2192 ${t})`,()=>Zt.symlinkSync(e,t))},readlinkSync(e){return fo(`readlinkSync(${e})`,()=>Zt.readlinkSync(e))},realpathSync(e){return fo(`realpathSync(${e})`,()=>Zt.realpathSync(e))},mkdirSync(e,t){return fo(`mkdirSync(${e})`,()=>{if(!Zt.existsSync(e)){let n={recursive:!0};t?.mode!==void 0&&(n.mode=t.mode),Zt.mkdirSync(e,n)}})},readdirSync(e){return fo(`readdirSync(${e})`,()=>Zt.readdirSync(e,{withFileTypes:!0}))},readdirStringSync(e){return fo(`readdirStringSync(${e})`,()=>Zt.readdirSync(e))},isDirEmptySync(e){return fo(`isDirEmptySync(${e})`,()=>this.readdirSync(e).length===0)},rmdirSync(e){return fo(`rmdirSync(${e})`,()=>Zt.rmdirSync(e))},rmSync(e,t){return fo(`rmSync(${e})`,()=>Zt.rmSync(e,t))},createWriteStream(e){return Zt.createWriteStream(e)}},ssr=isr;osr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],asr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],e_=class extends Error{};d6=null,yxt=!1;S6=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||ATe(),this.initialize()}getDefaultExecutable(){return kTe()?"bun":"node"}spawnLocalProcess(t){let{command:n,args:r,cwd:i,env:s,signal:o}=t,a=s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=Knr(n,r,{cwd:i,stdio:["pipe","pipe",a],signal:o,env:s,windowsHide:!0});return(s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();Vv(d),this.options.stderr&&this.options.stderr(d)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:t=[],betas:n,cwd:r,executable:i=this.getDefaultExecutable(),executableArgs:s=[],extraArgs:o={},pathToClaudeCodeExecutable:a,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:f,fallbackModel:p,jsonSchema:h,permissionMode:m,allowDangerouslySkipPermissions:g,permissionPromptToolName:y,continueConversation:E,resume:S,settingSources:_,allowedTools:b=[],disallowedTools:T=[],tools:A,mcpServers:R,strictMcpConfig:x,canUseTool:k,includePartialMessages:P,plugins:N,sandbox:C}=this.options,F=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&F.push("--max-thinking-tokens",u.toString()),l&&F.push("--max-turns",l.toString()),d!==void 0&&F.push("--max-budget-usd",d.toString()),f&&F.push("--model",f),n&&n.length>0&&F.push("--betas",n.join(",")),h&&F.push("--json-schema",rm(h)),c.DEBUG_CLAUDE_AGENT_SDK&&F.push("--debug-to-stderr"),k){if(y)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");F.push("--permission-prompt-tool","stdio")}else y&&F.push("--permission-prompt-tool",y);if(E&&F.push("--continue"),S&&F.push("--resume",S),b.length>0&&F.push("--allowedTools",b.join(",")),T.length>0&&F.push("--disallowedTools",T.join(",")),A!==void 0&&(Array.isArray(A)?A.length===0?F.push("--tools",""):F.push("--tools",A.join(",")):F.push("--tools","default")),R&&Object.keys(R).length>0&&F.push("--mcp-config",rm({mcpServers:R})),_&&F.push("--setting-sources",_.join(",")),x&&F.push("--strict-mcp-config"),m&&F.push("--permission-mode",m),g&&F.push("--allow-dangerously-skip-permissions"),p){if(f&&p===f)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");F.push("--fallback-model",p)}P&&F.push("--include-partial-messages");for(let M of t)F.push("--add-dir",M);if(N&&N.length>0)for(let M of N)if(M.type==="local")F.push("--plugin-dir",M.path);else throw new Error(`Unsupported plugin type: ${M.type}`);this.options.forkSession&&F.push("--fork-session"),this.options.resumeSessionAt&&F.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&F.push("--no-session-persistence");let V=psr(o??{},C);for(let[M,q]of Object.entries(V))q===null?F.push(`--${M}`):F.push(`--${M}`,q);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let K=hsr(a),$=K?a:i,B=K?[...s,...F]:[...s,a,...F],X={command:$,args:B,cwd:r,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)Vv(`Spawning Claude Code (custom): ${$} ${B.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(X);else{if(!Jg().existsSync(a)){let q=K?`Claude Code native binary not found at ${a}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${a}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(q)}Vv(`Spawning Claude Code: ${$} ${B.join(" ")}`),this.process=this.spawnLocalProcess(X)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let G=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=G,this.abortHandler=G,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",M=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new e_("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${M.message}`),Vv(this.exitError.message))}),this.process.on("exit",(M,q)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new e_("Claude Code process aborted by user");else{let U=this.getProcessExitError(M,q);U&&(this.exitError=U,Vv(U.message))}}),this.ready=!0}catch(t){throw this.ready=!1,t}}getProcessExitError(t,n){if(t!==0&&t!==null)return new Error(`Claude Code process exited with code ${t}`);if(n)return new Error(`Claude Code process terminated by signal ${n}`)}write(t){if(this.abortController.signal.aborted)throw new e_("Operation aborted");if(!this.ready||!this.processStdin)throw new Error("ProcessTransport is not ready for writing");if(this.process?.killed||this.process?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Vv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Vv("[ProcessTransport] Write buffer full, data queued")}catch(n){throw this.ready=!1,new Error(`Failed to write to process stdin: ${n.message}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:t}of this.exitListeners)this.process?.off("exit",t);this.exitListeners=[],this.process&&!this.process.killed&&(this.process.kill("SIGTERM"),setTimeout(()=>{this.process&&!this.process.killed&&this.process.kill("SIGKILL")},5e3)),this.ready=!1,this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw new Error("ProcessTransport output stream not available");let t=Ynr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield yOt(n));await this.waitForExit()}catch(n){throw n}finally{t.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(t){if(!this.process)return()=>{};let n=(r,i)=>{let s=this.getProcessExitError(r,i);t(s)};return this.process.on("exit",n),this.exitListeners.push({callback:t,handler:n}),()=>{this.process&&this.process.off("exit",n);let r=this.exitListeners.findIndex(i=>i.handler===n);r!==-1&&this.exitListeners.splice(r,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((t,n)=>{let r=(s,o)=>{if(this.abortController.signal.aborted){n(new e_("Operation aborted"));return}let a=this.getProcessExitError(s,o);a?n(a):t()};this.process.once("exit",r);let i=s=>{this.process.off("exit",r),n(s)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};E6=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(t){this.returned=t}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((t,n)=>{this.readResolve=t,this.readReject=n})}enqueue(t){if(this.readResolve){let n=this.readResolve;this.readResolve=void 0,this.readReject=void 0,n({done:!1,value:t})}else this.queue.push(t)}done(){if(this.isDone=!0,this.readResolve){let t=this.readResolve;this.readResolve=void 0,this.readReject=void 0,t({done:!0,value:void 0})}}error(t){if(this.hasError=t,this.readReject){let n=this.readReject;this.readResolve=void 0,this.readReject=void 0,n(t)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},Vbe=class{sendMcpMessage;isClosed=!1;constructor(t){this.sendMcpMessage=t}onclose;onerror;onmessage;async start(){}async send(t){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(t)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},_6=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new E6;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(t,n,r,i,s,o=new Map,a,c){this.transport=t,this.isSingleUserTurn=n,this.canUseTool=r,this.hooks=i,this.abortController=s,this.jsonSchema=a,this.initConfig=c;for(let[u,l]of o)this.connectSdkMcpServer(u,l);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(t){this.inputStream.error(t)}cleanup(t){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let n of this.sdkMcpTransports.values())try{n.close()}catch{}this.sdkMcpTransports.clear(),t?this.inputStream.error(t):this.inputStream.done()}catch{}}}next(...[t]){return this.sdkMessages.next(t)}return(t){return this.sdkMessages.return(t)}throw(t){return this.sdkMessages.throw(t)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let t of this.transport.readMessages()){if(t.type==="control_response"){let n=this.pendingControlResponses.get(t.response.request_id);n&&n(t.response);continue}else if(t.type==="control_request"){this.handleControlRequest(t);continue}else if(t.type==="control_cancel_request"){this.handleControlCancelRequest(t);continue}else if(t.type==="keep_alive")continue;t.type==="result"&&(this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Yg("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())),this.inputStream.enqueue(t)}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(t){this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.error(t),this.cleanup(t)}}async handleControlRequest(t){let n=new AbortController;this.cancelControllers.set(t.request_id,n);try{let r=await this.processControlRequest(t,n.signal),i={type:"control_response",response:{subtype:"success",request_id:t.request_id,response:r}};await Promise.resolve(this.transport.write(rm(i)+` +`))}catch(r){let i={type:"control_response",response:{subtype:"error",request_id:t.request_id,error:r.message||String(r)}};await Promise.resolve(this.transport.write(rm(i)+` +`))}finally{this.cancelControllers.delete(t.request_id)}}handleControlCancelRequest(t){let n=this.cancelControllers.get(t.request_id);n&&(n.abort(),this.cancelControllers.delete(t.request_id))}async processControlRequest(t,n){if(t.request.subtype==="can_use_tool"){if(!this.canUseTool)throw new Error("canUseTool callback is not provided.");return{...await this.canUseTool(t.request.tool_name,t.request.input,{signal:n,suggestions:t.request.permission_suggestions,blockedPath:t.request.blocked_path,decisionReason:t.request.decision_reason,toolUseID:t.request.tool_use_id,agentID:t.request.agent_id}),toolUseID:t.request.tool_use_id}}else{if(t.request.subtype==="hook_callback")return await this.handleHookCallbacks(t.request.callback_id,t.request.input,t.request.tool_use_id,n);if(t.request.subtype==="mcp_message"){let r=t.request,i=this.sdkMcpTransports.get(r.server_name);if(!i)throw new Error(`SDK MCP server not found: ${r.server_name}`);return"method"in r.message&&"id"in r.message&&r.message.id!==null?{mcp_response:await this.handleMcpControlRequest(r.server_name,r,i)}:(i.onmessage&&i.onmessage(r.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}}throw new Error("Unsupported control request subtype: "+t.request.subtype)}async*readSdkMessages(){for await(let t of this.inputStream)yield t}async initialize(){let t;if(this.hooks){t={};for(let[s,o]of Object.entries(this.hooks))o.length>0&&(t[s]=o.map(a=>{let c=[];for(let u of a.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,u),c.push(l)}return{matcher:a.matcher,hookCallbackIds:c,timeout:a.timeout}}))}let n=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,r={subtype:"initialize",hooks:t,sdkMcpServers:n,jsonSchema:this.jsonSchema,systemPrompt:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,agents:this.initConfig?.agents};return(await this.request(r)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(t){await this.request({subtype:"set_permission_mode",mode:t})}async setModel(t){await this.request({subtype:"set_model",model:t})}async setMaxThinkingTokens(t){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:t})}async rewindFiles(t,n){return(await this.request({subtype:"rewind_files",user_message_id:t,dry_run:n?.dryRun})).response}async processPendingPermissionRequests(t){for(let n of t)n.request.subtype==="can_use_tool"&&this.handleControlRequest(n).catch(()=>{})}request(t){let n=Math.random().toString(36).substring(2,15),r={request_id:n,type:"control_request",request:t};return new Promise((i,s)=>{this.pendingControlResponses.set(n,o=>{o.subtype==="success"?i(o):(s(new Error(o.error)),o.pending_permission_requests&&this.processPendingPermissionRequests(o.pending_permission_requests))}),Promise.resolve(this.transport.write(rm(r)+` +`))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async setMcpServers(t){let n={},r={};for(let[c,u]of Object.entries(t))u.type==="sdk"&&"instance"in u?n[c]=u.instance:r[c]=u;let i=new Set(this.sdkMcpServerInstances.keys()),s=new Set(Object.keys(n));for(let c of i)s.has(c)||await this.disconnectSdkMcpServer(c);for(let[c,u]of Object.entries(n))i.has(c)||this.connectSdkMcpServer(c,u);let o={};for(let c of Object.keys(n))o[c]={type:"sdk",name:c};return(await this.request({subtype:"mcp_set_servers",servers:{...r,...o}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(t){Yg("[Query.streamInput] Starting to process input stream");try{let n=0;for await(let r of t){if(n++,Yg(`[Query.streamInput] Processing message ${n}: ${r.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(rm(r)+` +`))}Yg(`[Query.streamInput] Finished processing ${n} messages from input stream`),n>0&&this.hasBidirectionalNeeds()&&(Yg("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Yg("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(n){if(!(n instanceof e_))throw n}}waitForFirstResult(){return this.firstResultReceived?(Yg("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(t=>{if(this.abortController?.signal.aborted){t();return}this.abortController?.signal.addEventListener("abort",()=>t(),{once:!0}),this.firstResultReceivedResolve=t})}handleHookCallbacks(t,n,r,i){let s=this.hookCallbacks.get(t);if(!s)throw new Error(`No hook callback found for ID: ${t}`);return s(n,r,{signal:i})}connectSdkMcpServer(t,n){let r=new Vbe(i=>this.sendMcpServerMessageToCli(t,i));this.sdkMcpTransports.set(t,r),this.sdkMcpServerInstances.set(t,n),n.connect(r)}async disconnectSdkMcpServer(t){let n=this.sdkMcpTransports.get(t);n&&(await n.close(),this.sdkMcpTransports.delete(t)),this.sdkMcpServerInstances.delete(t)}sendMcpServerMessageToCli(t,n){if("id"in n&&n.id!==null&&n.id!==void 0){let i=`${t}:${n.id}`,s=this.pendingMcpResponses.get(i);if(s){s.resolve(n),this.pendingMcpResponses.delete(i);return}}let r={type:"control_request",request_id:msr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(rm(r)+` +`)}handleMcpControlRequest(t,n,r){let i="id"in n.message?n.message.id:null,s=`${t}:${i}`;return new Promise((o,a)=>{let c=()=>{this.pendingMcpResponses.delete(s)},u=d=>{c(),o(d)},l=d=>{c(),a(d)};if(this.pendingMcpResponses.set(s,{resolve:u,reject:l}),r.onmessage)r.onmessage(n.message);else{c(),a(new Error("No message handler registered"));return}})}},b6=class{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw new Error("Session ID not available until after receiving messages");return this._sessionId}constructor(t){t.resume&&(this._sessionId=t.resume),this.inputStream=new E6;let n=t.pathToClaudeCodeExecutable;if(!n){let s=gsr(import.meta.url),o=Sxt(s,"..");n=Sxt(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=ATe();let i=new S6({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(kTe()?"bun":"node"),executableArgs:t.executableArgs??[],extraArgs:{},maxThinkingTokens:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:t.model,fallbackModel:void 0,permissionMode:"default",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:t.resume,settingSources:[],allowedTools:[],disallowedTools:[],mcpServers:{},strictMcpConfig:!1,canUseTool:!1,hooks:!1,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new _6(i,!1,void 0,void 0,this.abortController,new Map),this.query.streamInput(this.inputStream)}async send(t){if(this.closed)throw new Error("Cannot send to closed session");let n=typeof t=="string"?{type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null}:t;this.inputStream.enqueue(n)}async*stream(){for(this.queryIterator||(this.queryIterator=this.query[Symbol.asyncIterator]());;){let{value:t,done:n}=await this.queryIterator.next();if(n||(t.type==="system"&&t.subtype==="init"&&(this._sessionId=t.session_id),yield t,t.type==="result"))return}}close(){this.closed||(this.closed=!0,this.inputStream.done(),this.abortController.abort())}async[Symbol.asyncDispose](){this.close()}};(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},e.getValidEnumValues=i=>{let s=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},e.find=(i,s)=>{for(let o of i)if(s(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ir||(ir={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Ext||(Ext={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),$E=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},xe=ir.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Kd=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Kd.create=e=>new Kd(e);Ssr=(e,t)=>{let n;switch(e.code){case xe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case xe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case xe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case xe.invalid_union:n="Invalid input";break;case xe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case xe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case xe.invalid_arguments:n="Invalid function arguments";break;case xe.invalid_return_type:n="Invalid function return type";break;case xe.invalid_date:n="Invalid date";break;case xe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case xe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case xe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case xe.custom:n="Invalid input";break;case xe.invalid_intersection_types:n="Intersection results could not be merged";break;case xe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case xe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},EU=Ssr,Esr=EU;Kbe=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}};ru=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Vt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Vt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Vt=Object.freeze({status:"aborted"}),pU=e=>({status:"dirty",value:e}),Ju=e=>({status:"valid",value:e}),_xt=e=>e.status==="aborted",bxt=e=>e.status==="dirty",kx=e=>e.status==="valid",T6=e=>typeof Promise<"u"&&e instanceof Promise;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(lt||(lt={}));Yd=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Txt=(e,t)=>{if(kx(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Kd(e.common.issues);return this._error=n,this._error}}};Tn=class{get description(){return this._def.description}_getType(t){return $E(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:$E(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new ru,ctx:{common:t.parent.common,data:t.data,parsedType:$E(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(T6(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$E(t)},i=this._parseSync({data:t,path:r.path,parent:r});return Txt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$E(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return kx(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>kx(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$E(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(T6(i)?i:Promise.resolve(i));return Txt(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:xe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new mp({schema:this,typeName:Le.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return hp.create(this,this._def)}nullable(){return Qg.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return r_.create(this)}promise(){return Kv.create(this,this._def)}or(t){return Px.create([this,t],this._def)}and(t){return Nx.create(this,t,this._def)}transform(t){return new mp({...ln(this._def),schema:this,typeName:Le.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Ux({...ln(this._def),innerType:this,defaultValue:n,typeName:Le.ZodDefault})}brand(){return new v6({typeName:Le.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Fx({...ln(this._def),innerType:this,catchValue:n,typeName:Le.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return A6.create(this,t)}readonly(){return jx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},_sr=/^c[^\s-]{8,}$/i,bsr=/^[0-9a-z]+$/,Tsr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,vsr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Asr=/^[a-z0-9_-]{21}$/i,Rsr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,wsr=/^[-+]?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)?)??$/,ksr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Isr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",xsr=/^(?:(?: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])$/,Osr=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,Psr=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Nsr=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Csr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Msr=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,bOt="((\\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])))",Dsr=new RegExp(`^${bOt}$`);Ix=class e extends Tn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==nt.string){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.string,received:s.parsedType}),Vt}let r=new ru,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),Ye(i,{code:xe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:xe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Ix({checks:[],typeName:Le.ZodString,coerce:e?.coerce??!1,...ln(e)});_U=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==nt.number){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.number,received:s.parsedType}),Vt}let r,i=new ru;for(let s of this._def.checks)s.kind==="int"?ir.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?qsr(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_finite,message:s.message}),i.dirty()):ir.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:lt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:lt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:lt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:lt.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&ir.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew _U({checks:[],typeName:Le.ZodNumber,coerce:e?.coerce||!1,...ln(e)});bU=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==nt.bigint)return this._getInvalidInput(t);let r,i=new ru;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ir.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:xe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew bU({checks:[],typeName:Le.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});TU=class extends Tn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==nt.boolean){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Ju(t.data)}};TU.create=e=>new TU({typeName:Le.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});vU=class e extends Tn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==nt.date){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_date}),Vt}let r=new ru,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),Ye(i,{code:xe.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):ir.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:lt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:lt.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew vU({checks:[],coerce:e?.coerce||!1,typeName:Le.ZodDate,...ln(e)});AU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Ju(t.data)}};AU.create=e=>new AU({typeName:Le.ZodSymbol,...ln(e)});xx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Ju(t.data)}};xx.create=e=>new xx({typeName:Le.ZodUndefined,...ln(e)});Ox=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Ju(t.data)}};Ox.create=e=>new Ox({typeName:Le.ZodNull,...ln(e)});RU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Ju(t.data)}};RU.create=e=>new RU({typeName:Le.ZodAny,...ln(e)});n_=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Ju(t.data)}};n_.create=e=>new n_({typeName:Le.ZodUnknown,...ln(e)});sm=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:xe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};sm.create=e=>new sm({typeName:Le.ZodNever,...ln(e)});wU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Ju(t.data)}};wU.create=e=>new wU({typeName:Le.ZodVoid,...ln(e)});r_=class e extends Tn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==nt.array)return Ye(n,{code:xe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ye(n,{code:xe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new Yd(n,o,n.path,a)))).then(o=>ru.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new Yd(n,o,n.path,a)));return ru.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:lt.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:lt.toString(n)}})}nonempty(t){return this.min(1,t)}};r_.create=(e,t)=>new r_({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Le.ZodArray,...ln(t)});Ll=class e extends Tn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=ir.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==nt.object){let u=this._getOrReturnCtx(t);return Ye(u,{code:xe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof sm&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Yd(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof sm){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(Ye(i,{code:xe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Yd(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>ru.mergeObjectSync(r,u)):ru.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return lt.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:lt.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Le.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of ir.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of ir.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Ax(this)}partial(t){let n={};for(let r of ir.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of ir.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof hp;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return vOt(ir.objectKeys(this.shape))}};Ll.create=(e,t)=>new Ll({shape:()=>e,unknownKeys:"strip",catchall:sm.create(),typeName:Le.ZodObject,...ln(t)});Ll.strictCreate=(e,t)=>new Ll({shape:()=>e,unknownKeys:"strict",catchall:sm.create(),typeName:Le.ZodObject,...ln(t)});Ll.lazycreate=(e,t)=>new Ll({shape:e,unknownKeys:"strip",catchall:sm.create(),typeName:Le.ZodObject,...ln(t)});Px=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Kd(a.ctx.common.issues));return Ye(n,{code:xe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Kd(c));return Ye(n,{code:xe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Px.create=(e,t)=>new Px({options:e,typeName:Le.ZodUnion,...ln(t)});Kg=e=>e instanceof Cx?Kg(e.schema):e instanceof mp?Kg(e.innerType()):e instanceof Mx?[e.value]:e instanceof Dx?e.options:e instanceof Lx?ir.objectValues(e.enum):e instanceof Ux?Kg(e._def.innerType):e instanceof xx?[void 0]:e instanceof Ox?[null]:e instanceof hp?[void 0,...Kg(e.unwrap())]:e instanceof Qg?[null,...Kg(e.unwrap())]:e instanceof v6||e instanceof jx?Kg(e.unwrap()):e instanceof Fx?Kg(e._def.innerType):[],Ybe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ye(n,{code:xe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ye(n,{code:xe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=Kg(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:Le.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...ln(r)})}};Nx=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(_xt(s)||_xt(o))return Vt;let a=Zbe(s.value,o.value);return a.valid?((bxt(s)||bxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ye(r,{code:xe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Nx.create=(e,t,n)=>new Nx({left:e,right:t,typeName:Le.ZodIntersection,...ln(n)});Xg=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.array)return Ye(r,{code:xe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ye(r,{code:xe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Yd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>ru.mergeArray(n,o)):ru.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Xg.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Xg({items:e,typeName:Le.ZodTuple,rest:null,...ln(t)})};Jbe=class e extends Tn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.object)return Ye(r,{code:xe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new Yd(r,a,r.path,a)),value:o._parse(new Yd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?ru.mergeObjectAsync(n,i):ru.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Tn?new e({keyType:t,valueType:n,typeName:Le.ZodRecord,...ln(r)}):new e({keyType:Ix.create(),valueType:t,typeName:Le.ZodRecord,...ln(n)})}},kU=class extends Tn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.map)return Ye(r,{code:xe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new Yd(r,a,r.path,[u,"key"])),value:s._parse(new Yd(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Vt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Vt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};kU.create=(e,t,n)=>new kU({valueType:t,keyType:e,typeName:Le.ZodMap,...ln(n)});IU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ye(r,{code:xe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ye(r,{code:xe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new Yd(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:lt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};IU.create=(e,t)=>new IU({valueType:e,minSize:null,maxSize:null,typeName:Le.ZodSet,...ln(t)});Xbe=class e extends Tn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.function)return Ye(n,{code:xe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return Kbe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Wbe(),EU].filter(u=>!!u),issueData:{code:xe.invalid_arguments,argumentsError:c}})}function i(a,c){return Kbe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Wbe(),EU].filter(u=>!!u),issueData:{code:xe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof Kv){let a=this;return Ju(async function(...c){let u=new Kd([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return Ju(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Kd([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Kd([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Xg.create(t).rest(n_.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Xg.create([]).rest(n_.create()),returns:n||n_.create(),typeName:Le.ZodFunction,...ln(r)})}},Cx=class extends Tn{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Cx.create=(e,t)=>new Cx({getter:e,typeName:Le.ZodLazy,...ln(t)});Mx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ye(n,{received:n.data,code:xe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Mx.create=(e,t)=>new Mx({value:e,typeName:Le.ZodLiteral,...ln(t)});Dx=class e extends Tn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{expected:ir.joinValues(r),received:n.parsedType,code:xe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{received:n.data,code:xe.invalid_enum_value,options:r}),Vt}return Ju(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};Dx.create=vOt;Lx=class extends Tn{_parse(t){let n=ir.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==nt.string&&r.parsedType!==nt.number){let i=ir.objectValues(n);return Ye(r,{expected:ir.joinValues(i),received:r.parsedType,code:xe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(ir.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=ir.objectValues(n);return Ye(r,{received:r.data,code:xe.invalid_enum_value,options:i}),Vt}return Ju(t.data)}get enum(){return this._def.values}};Lx.create=(e,t)=>new Lx({values:e,typeName:Le.ZodNativeEnum,...ln(t)});Kv=class extends Tn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.promise&&n.common.async===!1)return Ye(n,{code:xe.invalid_type,expected:nt.promise,received:n.parsedType}),Vt;let r=n.parsedType===nt.promise?n.data:Promise.resolve(n.data);return Ju(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Kv.create=(e,t)=>new Kv({type:e,typeName:Le.ZodPromise,...ln(t)});mp=class extends Tn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Le.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{Ye(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Vt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Vt:c.status==="dirty"||n.value==="dirty"?pU(c.value):c});{if(n.value==="aborted")return Vt;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Vt:a.status==="dirty"||n.value==="dirty"?pU(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Vt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Vt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!kx(o))return Vt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>kx(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Vt);ir.assertNever(i)}};mp.create=(e,t,n)=>new mp({schema:e,typeName:Le.ZodEffects,effect:t,...ln(n)});mp.createWithPreprocess=(e,t,n)=>new mp({schema:t,effect:{type:"preprocess",transform:e},typeName:Le.ZodEffects,...ln(n)});hp=class extends Tn{_parse(t){return this._getType(t)===nt.undefined?Ju(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};hp.create=(e,t)=>new hp({innerType:e,typeName:Le.ZodOptional,...ln(t)});Qg=class extends Tn{_parse(t){return this._getType(t)===nt.null?Ju(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Qg.create=(e,t)=>new Qg({innerType:e,typeName:Le.ZodNullable,...ln(t)});Ux=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===nt.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Ux.create=(e,t)=>new Ux({innerType:e,typeName:Le.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});Fx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return T6(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Kd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Kd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Fx.create=(e,t)=>new Fx({innerType:e,typeName:Le.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});xU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};xU.create=e=>new xU({typeName:Le.ZodNaN,...ln(e)});v6=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},A6=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Vt:s.status==="dirty"?(n.dirty(),pU(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Vt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:Le.ZodPipeline})}},jx=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(kx(i)&&(i.value=Object.freeze(i.value)),i);return T6(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};jx.create=(e,t)=>new jx({innerType:e,typeName:Le.ZodReadonly,...ln(t)});yPi={object:Ll.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Le||(Le={}));SPi=Ix.create,EPi=_U.create,_Pi=xU.create,bPi=bU.create,TPi=TU.create,vPi=vU.create,APi=AU.create,RPi=xx.create,wPi=Ox.create,kPi=RU.create,IPi=n_.create,xPi=sm.create,OPi=wU.create,PPi=r_.create,Bsr=Ll.create,NPi=Ll.strictCreate,CPi=Px.create,MPi=Ybe.create,DPi=Nx.create,LPi=Xg.create,UPi=Jbe.create,FPi=kU.create,jPi=IU.create,HPi=Xbe.create,qPi=Cx.create,BPi=Mx.create,GPi=Dx.create,zPi=Lx.create,VPi=Kv.create,WPi=mp.create,KPi=hp.create,YPi=Qg.create,ZPi=mp.createWithPreprocess,JPi=A6.create,XPi=Object.freeze({status:"aborted"});Yv=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Qbe={};zr={};eOt(zr,{unwrapMessage:()=>hU,stringifyPrimitive:()=>PTe,required:()=>aor,randomString:()=>Jsr,propertyKeyTypes:()=>kOt,promiseAllObject:()=>Zsr,primitiveTypes:()=>$sr,prefixIssues:()=>t_,pick:()=>nor,partial:()=>oor,optionalKeys:()=>IOt,omit:()=>ror,numKeys:()=>Xsr,nullish:()=>H6,normalizeParams:()=>Ht,merge:()=>sor,jsonStringifyReplacer:()=>AOt,joinValues:()=>$be,issue:()=>OOt,isPlainObject:()=>PU,isObject:()=>OU,getSizableOrigin:()=>cor,getParsedType:()=>Qsr,getLengthableOrigin:()=>B6,getEnumValues:()=>ITe,getElementAtPath:()=>Ysr,floatSafeRemainder:()=>ROt,finalizeIssue:()=>ey,extend:()=>ior,escapeRegex:()=>zx,esc:()=>Rx,defineLazy:()=>ki,createTransparentProxy:()=>eor,clone:()=>ty,cleanRegex:()=>q6,cleanEnum:()=>uor,captureStackTrace:()=>OTe,cached:()=>j6,assignProp:()=>xTe,assertNotEqual:()=>zsr,assertNever:()=>Wsr,assertIs:()=>Vsr,assertEqual:()=>Gsr,assert:()=>Ksr,allowsEval:()=>wOt,aborted:()=>wx,NUMBER_FORMAT_RANGES:()=>xOt,Class:()=>eTe,BIGINT_FORMAT_RANGES:()=>tor});OTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};wOt=j6(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Qsr=e=>{let t=typeof e;switch(t){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":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},kOt=new Set(["string","number","symbol"]),$sr=new Set(["string","number","bigint","boolean","symbol","undefined"]);xOt={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},tor={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};eTe=class{constructor(...t){}},POt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,AOt,2)},enumerable:!0})},NOt=ge("$ZodError",POt),G6=ge("$ZodError",POt,{Parent:Error});COt=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new Yv;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ey(c,s,$g())));throw OTe(a,i?.callee),a}return o.value},por=COt(G6),MOt=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ey(c,s,$g())));throw OTe(a,i?.callee),a}return o.value},hor=MOt(G6),DOt=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Yv;return s.issues.length?{success:!1,error:new(e??NOt)(s.issues.map(o=>ey(o,i,$g())))}:{success:!0,data:s.value}},NTe=DOt(G6),LOt=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>ey(o,i,$g())))}:{success:!0,data:s.value}},CTe=LOt(G6),mor=/^[cC][^\s-]{8,}$/,gor=/^[0-9a-z]+$/,yor=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Sor=/^[0-9a-vA-V]{20}$/,Eor=/^[A-Za-z0-9]{27}$/,_or=/^[a-zA-Z0-9_-]{21}$/,bor=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Tor=/^([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})$/,vxt=e=>e?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})$`):/^([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)$/,vor=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Aor="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";wor=/^(?:(?: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])$/,kor=/^(([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})$/,Ior=/^((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])$/,xor=/^(([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])$/,Oor=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,UOt=/^[A-Za-z0-9_-]*$/,Por=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,Nor=/^\+(?:[0-9]){6,14}[0-9]$/,FOt="(?:(?:\\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])))",Cor=new RegExp(`^${FOt}$`);Lor=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Uor=/^\d+$/,For=/^-?\d+(?:\.\d+)?/i,jor=/true|false/i,Hor=/null/i,qor=/^[^A-Z]*$/,Bor=/^[^a-z]*$/,Qu=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),HOt={number:"number",bigint:"bigint",object:"date"},qOt=ge("$ZodCheckLessThan",(e,t)=>{Qu.init(e,t);let n=HOt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{Qu.init(e,t);let n=HOt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Gor=ge("$ZodCheckMultipleOf",(e,t)=>{Qu.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):ROt(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),zor=ge("$ZodCheckNumberFormat",(e,t)=>{Qu.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=xOt[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=Uor)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),Vor=ge("$ZodCheckMaxLength",(e,t)=>{Qu.init(e,t),e._zod.when=n=>{let r=n.value;return!H6(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let r=n.value;if(r.length<=t.maximum)return;let s=B6(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Wor=ge("$ZodCheckMinLength",(e,t)=>{Qu.init(e,t),e._zod.when=n=>{let r=n.value;return!H6(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let s=B6(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Kor=ge("$ZodCheckLengthEquals",(e,t)=>{Qu.init(e,t),e._zod.when=n=>{let r=n.value;return!H6(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let s=B6(r),o=i>t.length;n.issues.push({origin:s,...o?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),z6=ge("$ZodCheckStringFormat",(e,t)=>{var n,r;Qu.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Yor=ge("$ZodCheckRegex",(e,t)=>{z6.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Zor=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=qor),z6.init(e,t)}),Jor=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Bor),z6.init(e,t)}),Xor=ge("$ZodCheckIncludes",(e,t)=>{Qu.init(e,t);let n=zx(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),Qor=ge("$ZodCheckStartsWith",(e,t)=>{Qu.init(e,t);let n=new RegExp(`^${zx(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),$or=ge("$ZodCheckEndsWith",(e,t)=>{Qu.init(e,t);let n=new RegExp(`.*${zx(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),ear=ge("$ZodCheckOverwrite",(e,t)=>{Qu.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),tTe=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` `).filter(o=>o),i=Math.min(...r.map(o=>o.length-o.trimStart().length)),s=r.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of s)this.content.push(o)}compile(){let t=Function,n=this?.args,i=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...n,i.join(` -`))}},asr={major:4,minor:0,patch:0},ai=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=asr;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=_x(s),u;for(let l of o){if(l._zod.when){if(!l._zod.when(s))continue}else if(c)continue;let d=s.issues.length,f=l._zod.check(s);if(f instanceof Promise&&a?.async===!1)throw new Bv;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=_x(s,d)))});else{if(s.issues.length===d)continue;c||(c=_x(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Bv;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=nTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return rTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),iTe=me("$ZodString",(e,t)=>{ai.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Bir(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Hi=me("$ZodStringFormat",(e,t)=>{wY.init(e,t),iTe.init(e,t)}),csr=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Iir),Hi.init(e,t)}),usr=me("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=A0t(r))}else t.pattern??(t.pattern=A0t());Hi.init(e,t)}),lsr=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=xir),Hi.init(e,t)}),dsr=me("$ZodURL",(e,t)=>{Hi.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:Uir.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),fsr=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Nir()),Hi.init(e,t)}),psr=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=wir),Hi.init(e,t)}),hsr=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=bir),Hi.init(e,t)}),msr=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Tir),Hi.init(e,t)}),gsr=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=vir),Hi.init(e,t)}),ysr=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Air),Hi.init(e,t)}),Ssr=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Rir),Hi.init(e,t)}),_sr=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=qir(t)),Hi.init(e,t)}),Esr=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Fir),Hi.init(e,t)}),bsr=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Hir(t)),Hi.init(e,t)}),Tsr=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=kir),Hi.init(e,t)}),vsr=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Pir),Hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),Asr=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Cir),Hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.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:!t.abort})}}}),Rsr=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Mir),Hi.init(e,t)}),wsr=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Dir),Hi.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});ksr=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Lir),Hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{zxt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});xsr=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=jxt),Hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Isr(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Osr=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=jir),Hi.init(e,t)});Psr=me("$ZodJWT",(e,t)=>{Hi.init(e,t),e._zod.check=n=>{Nsr(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Vxt=me("$ZodNumber",(e,t)=>{ai.init(e,t),e._zod.pattern=e._zod.bag.pattern??zir,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),Csr=me("$ZodNumber",(e,t)=>{Jir.init(e,t),Vxt.init(e,t)}),Msr=me("$ZodBoolean",(e,t)=>{ai.init(e,t),e._zod.pattern=Vir,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Dsr=me("$ZodNull",(e,t)=>{ai.init(e,t),e._zod.pattern=Wir,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),Lsr=me("$ZodUnknown",(e,t)=>{ai.init(e,t),e._zod.parse=n=>n}),Usr=me("$ZodNever",(e,t)=>{ai.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});jsr=me("$ZodArray",(e,t)=>{ai.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oR0t(u,n,o))):R0t(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});Wxt=me("$ZodObject",(e,t)=>{ai.init(e,t);let n=bY(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof ai))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=xxt(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});Ai(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new Rbe(["shape","payload","ctx"]),p=n.value,h=E=>{let S=Sx(E);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let m=Object.create(null),y=0;for(let E of p.keys)m[E]=`key_${y++}`;f.write("const newResult = {}");for(let E of p.keys)if(p.optionalKeys.has(E)){let S=m[E];f.write(`const ${S} = ${h(E)};`);let _=Sx(E);f.write(` +`))}},tar={major:4,minor:0,patch:0},li=ge("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=tar;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=wx(s),u;for(let l of o){if(l._zod.when){if(!l._zod.when(s))continue}else if(c)continue;let d=s.issues.length,f=l._zod.check(s);if(f instanceof Promise&&a?.async===!1)throw new Yv;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=wx(s,d)))});else{if(s.issues.length===d)continue;c||(c=wx(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Yv;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=NTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return CTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),MTe=ge("$ZodString",(e,t)=>{li.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Lor(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),zi=ge("$ZodStringFormat",(e,t)=>{z6.init(e,t),MTe.init(e,t)}),nar=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Tor),zi.init(e,t)}),rar=ge("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=vxt(r))}else t.pattern??(t.pattern=vxt());zi.init(e,t)}),iar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vor),zi.init(e,t)}),sar=ge("$ZodURL",(e,t)=>{zi.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:Por.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),oar=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Ror()),zi.init(e,t)}),aar=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=_or),zi.init(e,t)}),car=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=mor),zi.init(e,t)}),uar=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=gor),zi.init(e,t)}),lar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=yor),zi.init(e,t)}),dar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Sor),zi.init(e,t)}),far=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Eor),zi.init(e,t)}),par=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Dor(t)),zi.init(e,t)}),har=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Cor),zi.init(e,t)}),mar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Mor(t)),zi.init(e,t)}),gar=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=bor),zi.init(e,t)}),yar=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=wor),zi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),Sar=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=kor),zi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.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:!t.abort})}}}),Ear=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ior),zi.init(e,t)}),_ar=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=xor),zi.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});bar=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Oor),zi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{GOt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});Aar=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=UOt),zi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Tar(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Rar=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Nor),zi.init(e,t)});kar=ge("$ZodJWT",(e,t)=>{zi.init(e,t),e._zod.check=n=>{war(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),zOt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??For,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),Iar=ge("$ZodNumber",(e,t)=>{zor.init(e,t),zOt.init(e,t)}),xar=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=jor,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Oar=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=Hor,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),Par=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),Nar=ge("$ZodNever",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});Car=ge("$ZodArray",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oAxt(u,n,o))):Axt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});VOt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=j6(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof li))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=IOt(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ki(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new tTe(["shape","payload","ctx"]),p=n.value,h=E=>{let S=Rx(E);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let m=Object.create(null),g=0;for(let E of p.keys)m[E]=`key_${g++}`;f.write("const newResult = {}");for(let E of p.keys)if(p.optionalKeys.has(E)){let S=m[E];f.write(`const ${S} = ${h(E)};`);let _=Rx(E);f.write(` if (${S}.issues.length) { if (input[${_}] === undefined) { if (${_} in input) { @@ -1373,10 +1376,10 @@ diagnostic: ${s}${a}`}],isError:!0}}var Z1,i0t,s0t=v(()=>{"use strict";Sl();Z1=1 `)}else{let S=m[E];f.write(`const ${S} = ${h(E)};`),f.write(` if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ ...iss, - path: iss.path ? [${Sx(E)}, ...iss.path] : [${Sx(E)}] - })));`),f.write(`newResult[${Sx(E)}] = ${S}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");let g=f.compile();return(E,S)=>g(d,E,S)},i,s=mU,o=!Tbe.jitless,c=o&&kxt.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let _ of l.keys){let b=S[_],T=b._zod.run({value:p[_],issues:[]},f),A=b._zod.optin==="optional"&&b._zod.optout==="optional";T instanceof Promise?h.push(T.then(R=>A?w0t(R,d,_,p):Z6(R,d,_))):A?w0t(T,d,_,p):Z6(T,d,_)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let m=[],y=l.keySet,g=u._zod,E=g.def.type;for(let S of Object.keys(p)){if(y.has(S))continue;if(E==="never"){m.push(S);continue}let _=g.run({value:p[S],issues:[]},f);_ instanceof Promise?h.push(_.then(b=>Z6(b,d,S))):Z6(_,d,S)}return m.length&&d.issues.push({code:"unrecognized_keys",keys:m,input:p,inst:e}),h.length?Promise.all(h).then(()=>d):d}});Kxt=me("$ZodUnion",(e,t)=>{ai.init(e,t),Ai(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),Ai(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),Ai(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),Ai(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>vY(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>k0t(o,n,e,r)):k0t(s,n,e,r)}}),Fsr=me("$ZodDiscriminatedUnion",(e,t)=>{Kxt.init(e,t);let n=e._zod.parse;Ai(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=bY(()=>{let i=t.options,s=new Map;for(let o of i){let a=o._zod.propValues[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});e._zod.parse=(i,s)=>{let o=i.value;if(!mU(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;let a=r.value.get(o?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[t.discriminator],inst:e}),i)}}),Hsr=me("$ZodIntersection",(e,t)=>{ai.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>I0t(n,c,u)):I0t(n,s,o)}});qsr=me("$ZodRecord",(e,t)=>{ai.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!gU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...J_(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...J_(c,u.issues)),n.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=t.keyType._zod.run({value:o,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>Xg(u,r,Jg())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...J_(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...J_(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),Bsr=me("$ZodEnum",(e,t)=>{ai.init(e,t);let n=Qbe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>Ixt.has(typeof r)).map(r=>typeof r=="string"?Ux(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),Gsr=me("$ZodLiteral",(e,t)=>{ai.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?Ux(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),zsr=me("$ZodTransform",(e,t)=>{ai.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new Bv;return n.value=i,n}}),Vsr=me("$ZodOptional",(e,t)=>{ai.init(e,t),e._zod.optin="optional",e._zod.optout="optional",Ai(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Ai(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${vY(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),Wsr=me("$ZodNullable",(e,t)=>{ai.init(e,t),Ai(e._zod,"optin",()=>t.innerType._zod.optin),Ai(e._zod,"optout",()=>t.innerType._zod.optout),Ai(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${vY(n.source)}|null)$`):void 0}),Ai(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),Ksr=me("$ZodDefault",(e,t)=>{ai.init(e,t),e._zod.optin="optional",Ai(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>x0t(s,t)):x0t(i,t)}});Zsr=me("$ZodPrefault",(e,t)=>{ai.init(e,t),e._zod.optin="optional",Ai(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),Ysr=me("$ZodNonOptional",(e,t)=>{ai.init(e,t),Ai(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>O0t(s,e)):O0t(i,e)}});Jsr=me("$ZodCatch",(e,t)=>{ai.init(e,t),e._zod.optin="optional",Ai(e._zod,"optout",()=>t.innerType._zod.optout),Ai(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>Xg(o,r,Jg()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>Xg(s,r,Jg()))},input:n.value}),n.issues=[]),n)}}),Xsr=me("$ZodPipe",(e,t)=>{ai.init(e,t),Ai(e._zod,"values",()=>t.in._zod.values),Ai(e._zod,"optin",()=>t.in._zod.optin),Ai(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>N0t(s,t,r)):N0t(i,t,r)}});Qsr=me("$ZodReadonly",(e,t)=>{ai.init(e,t),Ai(e._zod,"propValues",()=>t.innerType._zod.propValues),Ai(e._zod,"values",()=>t.innerType._zod.values),Ai(e._zod,"optin",()=>t.innerType._zod.optin),Ai(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(P0t):P0t(i)}});$sr=me("$ZodCustom",(e,t)=>{Wu.init(e,t),ai.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>C0t(s,n,r,e));C0t(i,n,r,e)}});eor=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},tor=()=>{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"}};function t(r){return e[r]??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"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${eor(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${tTe(r.values[0])}`:`Invalid option: expected one of ${vbe(r.values,"|")}`;case"too_big":{let i=r.inclusive?"<=":"<",s=t(r.origin);return s?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{let i=r.inclusive?">=":">",s=t(r.origin);return s?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${s.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{let i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${vbe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};aY=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}remove(t){return this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};eU=ror();uY=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??eU,this.target=t?.target??"draft-2020-12",this.unrepresentable=t?.unrepresentable??"throw",this.override=t?.override??(()=>{}),this.io=t?.io??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var r;let i=t._zod.def,s={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},o=this.seen.get(t);if(o)return o.count++,n.schemaPath.includes(t)&&(o.cycle=n.path),o.schema;let a={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,a);let c=t._zod.toJSONSchema?.();if(c)a.schema=c;else{let d={...n,schemaPath:[...n.schemaPath,t],path:n.path},f=t._zod.parent;if(f)a.ref=f,this.process(f,d),this.seen.get(f).isParent=!0;else{let p=a.schema;switch(i.type){case"string":{let h=p;h.type="string";let{minimum:m,maximum:y,format:g,patterns:E,contentEncoding:S}=t._zod.bag;if(typeof m=="number"&&(h.minLength=m),typeof y=="number"&&(h.maxLength=y),g&&(h.format=s[g]??g,h.format===""&&delete h.format),S&&(h.contentEncoding=S),E&&E.size>0){let _=[...E];_.length===1?h.pattern=_[0].source:_.length>1&&(a.schema.allOf=[..._.map(b=>({...this.target==="draft-7"?{type:"string"}:{},pattern:b.source}))])}break}case"number":{let h=p,{minimum:m,maximum:y,format:g,multipleOf:E,exclusiveMaximum:S,exclusiveMinimum:_}=t._zod.bag;typeof g=="string"&&g.includes("int")?h.type="integer":h.type="number",typeof _=="number"&&(h.exclusiveMinimum=_),typeof m=="number"&&(h.minimum=m,typeof _=="number"&&(_>=m?delete h.minimum:delete h.exclusiveMinimum)),typeof S=="number"&&(h.exclusiveMaximum=S),typeof y=="number"&&(h.maximum=y,typeof S=="number"&&(S<=y?delete h.maximum:delete h.exclusiveMaximum)),typeof E=="number"&&(h.multipleOf=E);break}case"boolean":{let h=p;h.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{p.type="null";break}case"any":break;case"unknown":break;case"undefined":case"never":{p.not={};break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{let h=p,{minimum:m,maximum:y}=t._zod.bag;typeof m=="number"&&(h.minItems=m),typeof y=="number"&&(h.maxItems=y),h.type="array",h.items=this.process(i.element,{...d,path:[...d.path,"items"]});break}case"object":{let h=p;h.type="object",h.properties={};let m=i.shape;for(let E in m)h.properties[E]=this.process(m[E],{...d,path:[...d.path,"properties",E]});let y=new Set(Object.keys(m)),g=new Set([...y].filter(E=>{let S=i.shape[E]._zod;return this.io==="input"?S.optin===void 0:S.optout===void 0}));g.size>0&&(h.required=Array.from(g)),i.catchall?._zod.def.type==="never"?h.additionalProperties=!1:i.catchall?i.catchall&&(h.additionalProperties=this.process(i.catchall,{...d,path:[...d.path,"additionalProperties"]})):this.io==="output"&&(h.additionalProperties=!1);break}case"union":{let h=p;h.anyOf=i.options.map((m,y)=>this.process(m,{...d,path:[...d.path,"anyOf",y]}));break}case"intersection":{let h=p,m=this.process(i.left,{...d,path:[...d.path,"allOf",0]}),y=this.process(i.right,{...d,path:[...d.path,"allOf",1]}),g=S=>"allOf"in S&&Object.keys(S).length===1,E=[...g(m)?m.allOf:[m],...g(y)?y.allOf:[y]];h.allOf=E;break}case"tuple":{let h=p;h.type="array";let m=i.items.map((E,S)=>this.process(E,{...d,path:[...d.path,"prefixItems",S]}));if(this.target==="draft-2020-12"?h.prefixItems=m:h.items=m,i.rest){let E=this.process(i.rest,{...d,path:[...d.path,"items"]});this.target==="draft-2020-12"?h.items=E:h.additionalItems=E}i.rest&&(h.items=this.process(i.rest,{...d,path:[...d.path,"items"]}));let{minimum:y,maximum:g}=t._zod.bag;typeof y=="number"&&(h.minItems=y),typeof g=="number"&&(h.maxItems=g);break}case"record":{let h=p;h.type="object",h.propertyNames=this.process(i.keyType,{...d,path:[...d.path,"propertyNames"]}),h.additionalProperties=this.process(i.valueType,{...d,path:[...d.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{let h=p,m=Qbe(i.entries);m.every(y=>typeof y=="number")&&(h.type="number"),m.every(y=>typeof y=="string")&&(h.type="string"),h.enum=m;break}case"literal":{let h=p,m=[];for(let y of i.values)if(y===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof y=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");m.push(Number(y))}else m.push(y);if(m.length!==0)if(m.length===1){let y=m[0];h.type=y===null?"null":typeof y,h.const=y}else m.every(y=>typeof y=="number")&&(h.type="number"),m.every(y=>typeof y=="string")&&(h.type="string"),m.every(y=>typeof y=="boolean")&&(h.type="string"),m.every(y=>y===null)&&(h.type="null"),h.enum=m;break}case"file":{let h=p,m={type:"string",format:"binary",contentEncoding:"binary"},{minimum:y,maximum:g,mime:E}=t._zod.bag;y!==void 0&&(m.minLength=y),g!==void 0&&(m.maxLength=g),E?E.length===1?(m.contentMediaType=E[0],Object.assign(h,m)):h.anyOf=E.map(S=>({...m,contentMediaType:S})):Object.assign(h,m);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let h=this.process(i.innerType,d);p.anyOf=[h,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"success":{let h=p;h.type="boolean";break}case"default":{this.process(i.innerType,d),a.ref=i.innerType,p.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,d),a.ref=i.innerType,this.io==="input"&&(p._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,d),a.ref=i.innerType;let h;try{h=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}p.default=h;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let h=p,m=t._zod.pattern;if(!m)throw new Error("Pattern not found in template literal");h.type="string",h.pattern=m.source;break}case"pipe":{let h=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(h,d),a.ref=h;break}case"readonly":{this.process(i.innerType,d),a.ref=i.innerType,p.readOnly=!0;break}case"promise":{this.process(i.innerType,d),a.ref=i.innerType;break}case"optional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"lazy":{let h=t._zod.innerType;this.process(h,d),a.ref=h;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let u=this.metadataRegistry.get(t);return u&&Object.assign(a.schema,u),this.io==="input"&&Ro(t)&&(delete a.schema.examples,delete a.schema.default),this.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,this.seen.get(t).schema}emit(t,n){let r={cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let s=l=>{let d=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){let m=r.external.registry.get(l[0])?.id;if(m)return{ref:r.external.uri(m)};let y=l[1].defId??l[1].schema.id??`schema${this.counter++}`;return l[1].defId=y,{defId:y,ref:`${r.external.uri("__shared")}#/${d}/${y}`}}if(l[1]===i)return{ref:"#"};let p=`#/${d}/`,h=l[1].schema.id??`__schema${this.counter++}`;return{defId:h,ref:p+h}},o=l=>{if(l[1].schema.$ref)return;let d=l[1],{ref:f,defId:p}=s(l);d.def={...d.schema},p&&(d.defId=p);let h=d.schema;for(let m in h)delete h[m];h.$ref=f};for(let l of this.seen.entries()){let d=l[1];if(t===l[0]){o(l);continue}if(r.external){let p=r.external.registry.get(l[0])?.id;if(t!==l[0]&&p){o(l);continue}}if(this.metadataRegistry.get(l[0])?.id){o(l);continue}if(d.cycle){if(r.cycles==="throw")throw new Error(`Cycle detected: #/${d.cycle?.join("/")}/ + path: iss.path ? [${Rx(E)}, ...iss.path] : [${Rx(E)}] + })));`),f.write(`newResult[${Rx(E)}] = ${S}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");let y=f.compile();return(E,S)=>y(d,E,S)},i,s=OU,o=!Qbe.jitless,c=o&&wOt.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let _ of l.keys){let b=S[_],T=b._zod.run({value:p[_],issues:[]},f),A=b._zod.optin==="optional"&&b._zod.optout==="optional";T instanceof Promise?h.push(T.then(R=>A?Rxt(R,d,_,p):f6(R,d,_))):A?Rxt(T,d,_,p):f6(T,d,_)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let m=[],g=l.keySet,y=u._zod,E=y.def.type;for(let S of Object.keys(p)){if(g.has(S))continue;if(E==="never"){m.push(S);continue}let _=y.run({value:p[S],issues:[]},f);_ instanceof Promise?h.push(_.then(b=>f6(b,d,S))):f6(_,d,S)}return m.length&&d.issues.push({code:"unrecognized_keys",keys:m,input:p,inst:e}),h.length?Promise.all(h).then(()=>d):d}});WOt=ge("$ZodUnion",(e,t)=>{li.init(e,t),ki(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ki(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ki(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ki(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>q6(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>wxt(o,n,e,r)):wxt(s,n,e,r)}}),Mar=ge("$ZodDiscriminatedUnion",(e,t)=>{WOt.init(e,t);let n=e._zod.parse;ki(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=j6(()=>{let i=t.options,s=new Map;for(let o of i){let a=o._zod.propValues[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});e._zod.parse=(i,s)=>{let o=i.value;if(!OU(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;let a=r.value.get(o?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[t.discriminator],inst:e}),i)}}),Dar=ge("$ZodIntersection",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>kxt(n,c,u)):kxt(n,s,o)}});Lar=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!PU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...t_(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...t_(c,u.issues)),n.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=t.keyType._zod.run({value:o,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>ey(u,r,$g())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...t_(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...t_(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),Uar=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=ITe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>kOt.has(typeof r)).map(r=>typeof r=="string"?zx(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),Far=ge("$ZodLiteral",(e,t)=>{li.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?zx(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),jar=ge("$ZodTransform",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new Yv;return n.value=i,n}}),Har=ge("$ZodOptional",(e,t)=>{li.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ki(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ki(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${q6(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),qar=ge("$ZodNullable",(e,t)=>{li.init(e,t),ki(e._zod,"optin",()=>t.innerType._zod.optin),ki(e._zod,"optout",()=>t.innerType._zod.optout),ki(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${q6(n.source)}|null)$`):void 0}),ki(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),Bar=ge("$ZodDefault",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Ixt(s,t)):Ixt(i,t)}});Gar=ge("$ZodPrefault",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),zar=ge("$ZodNonOptional",(e,t)=>{li.init(e,t),ki(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>xxt(s,e)):xxt(i,e)}});Var=ge("$ZodCatch",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"optout",()=>t.innerType._zod.optout),ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>ey(o,r,$g()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>ey(s,r,$g()))},input:n.value}),n.issues=[]),n)}}),War=ge("$ZodPipe",(e,t)=>{li.init(e,t),ki(e._zod,"values",()=>t.in._zod.values),ki(e._zod,"optin",()=>t.in._zod.optin),ki(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>Oxt(s,t,r)):Oxt(i,t,r)}});Kar=ge("$ZodReadonly",(e,t)=>{li.init(e,t),ki(e._zod,"propValues",()=>t.innerType._zod.propValues),ki(e._zod,"values",()=>t.innerType._zod.values),ki(e._zod,"optin",()=>t.innerType._zod.optin),ki(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(Pxt):Pxt(i)}});Yar=ge("$ZodCustom",(e,t)=>{Qu.init(e,t),li.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>Nxt(s,n,r,e));Nxt(i,n,r,e)}});Zar=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},Jar=()=>{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"}};function t(r){return e[r]??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"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${Zar(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${PTe(r.values[0])}`:`Invalid option: expected one of ${$be(r.values,"|")}`;case"too_big":{let i=r.inclusive?"<=":"<",s=t(r.origin);return s?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{let i=r.inclusive?">=":">",s=t(r.origin);return s?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${s.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{let i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${$be(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};R6=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}remove(t){return this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};mU=Qar();k6=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??mU,this.target=t?.target??"draft-2020-12",this.unrepresentable=t?.unrepresentable??"throw",this.override=t?.override??(()=>{}),this.io=t?.io??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var r;let i=t._zod.def,s={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},o=this.seen.get(t);if(o)return o.count++,n.schemaPath.includes(t)&&(o.cycle=n.path),o.schema;let a={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,a);let c=t._zod.toJSONSchema?.();if(c)a.schema=c;else{let d={...n,schemaPath:[...n.schemaPath,t],path:n.path},f=t._zod.parent;if(f)a.ref=f,this.process(f,d),this.seen.get(f).isParent=!0;else{let p=a.schema;switch(i.type){case"string":{let h=p;h.type="string";let{minimum:m,maximum:g,format:y,patterns:E,contentEncoding:S}=t._zod.bag;if(typeof m=="number"&&(h.minLength=m),typeof g=="number"&&(h.maxLength=g),y&&(h.format=s[y]??y,h.format===""&&delete h.format),S&&(h.contentEncoding=S),E&&E.size>0){let _=[...E];_.length===1?h.pattern=_[0].source:_.length>1&&(a.schema.allOf=[..._.map(b=>({...this.target==="draft-7"?{type:"string"}:{},pattern:b.source}))])}break}case"number":{let h=p,{minimum:m,maximum:g,format:y,multipleOf:E,exclusiveMaximum:S,exclusiveMinimum:_}=t._zod.bag;typeof y=="string"&&y.includes("int")?h.type="integer":h.type="number",typeof _=="number"&&(h.exclusiveMinimum=_),typeof m=="number"&&(h.minimum=m,typeof _=="number"&&(_>=m?delete h.minimum:delete h.exclusiveMinimum)),typeof S=="number"&&(h.exclusiveMaximum=S),typeof g=="number"&&(h.maximum=g,typeof S=="number"&&(S<=g?delete h.maximum:delete h.exclusiveMaximum)),typeof E=="number"&&(h.multipleOf=E);break}case"boolean":{let h=p;h.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{p.type="null";break}case"any":break;case"unknown":break;case"undefined":case"never":{p.not={};break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{let h=p,{minimum:m,maximum:g}=t._zod.bag;typeof m=="number"&&(h.minItems=m),typeof g=="number"&&(h.maxItems=g),h.type="array",h.items=this.process(i.element,{...d,path:[...d.path,"items"]});break}case"object":{let h=p;h.type="object",h.properties={};let m=i.shape;for(let E in m)h.properties[E]=this.process(m[E],{...d,path:[...d.path,"properties",E]});let g=new Set(Object.keys(m)),y=new Set([...g].filter(E=>{let S=i.shape[E]._zod;return this.io==="input"?S.optin===void 0:S.optout===void 0}));y.size>0&&(h.required=Array.from(y)),i.catchall?._zod.def.type==="never"?h.additionalProperties=!1:i.catchall?i.catchall&&(h.additionalProperties=this.process(i.catchall,{...d,path:[...d.path,"additionalProperties"]})):this.io==="output"&&(h.additionalProperties=!1);break}case"union":{let h=p;h.anyOf=i.options.map((m,g)=>this.process(m,{...d,path:[...d.path,"anyOf",g]}));break}case"intersection":{let h=p,m=this.process(i.left,{...d,path:[...d.path,"allOf",0]}),g=this.process(i.right,{...d,path:[...d.path,"allOf",1]}),y=S=>"allOf"in S&&Object.keys(S).length===1,E=[...y(m)?m.allOf:[m],...y(g)?g.allOf:[g]];h.allOf=E;break}case"tuple":{let h=p;h.type="array";let m=i.items.map((E,S)=>this.process(E,{...d,path:[...d.path,"prefixItems",S]}));if(this.target==="draft-2020-12"?h.prefixItems=m:h.items=m,i.rest){let E=this.process(i.rest,{...d,path:[...d.path,"items"]});this.target==="draft-2020-12"?h.items=E:h.additionalItems=E}i.rest&&(h.items=this.process(i.rest,{...d,path:[...d.path,"items"]}));let{minimum:g,maximum:y}=t._zod.bag;typeof g=="number"&&(h.minItems=g),typeof y=="number"&&(h.maxItems=y);break}case"record":{let h=p;h.type="object",h.propertyNames=this.process(i.keyType,{...d,path:[...d.path,"propertyNames"]}),h.additionalProperties=this.process(i.valueType,{...d,path:[...d.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{let h=p,m=ITe(i.entries);m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),h.enum=m;break}case"literal":{let h=p,m=[];for(let g of i.values)if(g===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");m.push(Number(g))}else m.push(g);if(m.length!==0)if(m.length===1){let g=m[0];h.type=g===null?"null":typeof g,h.const=g}else m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),m.every(g=>typeof g=="boolean")&&(h.type="string"),m.every(g=>g===null)&&(h.type="null"),h.enum=m;break}case"file":{let h=p,m={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:y,mime:E}=t._zod.bag;g!==void 0&&(m.minLength=g),y!==void 0&&(m.maxLength=y),E?E.length===1?(m.contentMediaType=E[0],Object.assign(h,m)):h.anyOf=E.map(S=>({...m,contentMediaType:S})):Object.assign(h,m);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let h=this.process(i.innerType,d);p.anyOf=[h,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"success":{let h=p;h.type="boolean";break}case"default":{this.process(i.innerType,d),a.ref=i.innerType,p.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,d),a.ref=i.innerType,this.io==="input"&&(p._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,d),a.ref=i.innerType;let h;try{h=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}p.default=h;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let h=p,m=t._zod.pattern;if(!m)throw new Error("Pattern not found in template literal");h.type="string",h.pattern=m.source;break}case"pipe":{let h=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(h,d),a.ref=h;break}case"readonly":{this.process(i.innerType,d),a.ref=i.innerType,p.readOnly=!0;break}case"promise":{this.process(i.innerType,d),a.ref=i.innerType;break}case"optional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"lazy":{let h=t._zod.innerType;this.process(h,d),a.ref=h;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let u=this.metadataRegistry.get(t);return u&&Object.assign(a.schema,u),this.io==="input"&&Io(t)&&(delete a.schema.examples,delete a.schema.default),this.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,this.seen.get(t).schema}emit(t,n){let r={cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let s=l=>{let d=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){let m=r.external.registry.get(l[0])?.id;if(m)return{ref:r.external.uri(m)};let g=l[1].defId??l[1].schema.id??`schema${this.counter++}`;return l[1].defId=g,{defId:g,ref:`${r.external.uri("__shared")}#/${d}/${g}`}}if(l[1]===i)return{ref:"#"};let p=`#/${d}/`,h=l[1].schema.id??`__schema${this.counter++}`;return{defId:h,ref:p+h}},o=l=>{if(l[1].schema.$ref)return;let d=l[1],{ref:f,defId:p}=s(l);d.def={...d.schema},p&&(d.defId=p);let h=d.schema;for(let m in h)delete h[m];h.$ref=f};for(let l of this.seen.entries()){let d=l[1];if(t===l[0]){o(l);continue}if(r.external){let p=r.external.registry.get(l[0])?.id;if(t!==l[0]&&p){o(l);continue}}if(this.metadataRegistry.get(l[0])?.id){o(l);continue}if(d.cycle){if(r.cycles==="throw")throw new Error(`Cycle detected: #/${d.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);r.cycles==="ref"&&o(l);continue}if(d.count>1&&r.reused==="ref"){o(l);continue}}let a=(l,d)=>{let f=this.seen.get(l),p=f.def??f.schema,h={...p};if(f.ref===null)return;let m=f.ref;if(f.ref=null,m){a(m,d);let y=this.seen.get(m).schema;y.$ref&&d.target==="draft-7"?(p.allOf=p.allOf??[],p.allOf.push(y)):(Object.assign(p,y),Object.assign(p,h))}f.isParent||this.override({zodSchema:l,jsonSchema:p,path:f.path??[]})};for(let l of[...this.seen.entries()].reverse())a(l[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,i.def);let u=r.external?.defs??{};for(let l of this.seen.entries()){let d=l[1];d.def&&d.defId&&(u[d.defId]=d.def)}!r.external&&Object.keys(u).length>0&&(this.target==="draft-2020-12"?c.$defs=u:c.definitions=u);try{return JSON.parse(JSON.stringify(c))}catch{throw new Error("Error converting schema to JSON.")}}};Xor=me("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");ai.init(e,t),e.def=t,e.parse=(n,r)=>_ir(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>nTe(e,n,r),e.parseAsync=async(n,r)=>Eir(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>rTe(e,n,r),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>Qg(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e)}),Qor=me("ZodMiniObject",(e,t)=>{Wxt.init(e,t),Xor.init(e,t),Br.defineLazy(e,"shape",()=>t.shape)});Xxt={};txt(Xxt,{time:()=>rOt,duration:()=>sOt,datetime:()=>$xt,date:()=>tOt,ZodISOTime:()=>nOt,ZodISODuration:()=>iOt,ZodISODateTime:()=>Qxt,ZodISODate:()=>eOt});Qxt=me("ZodISODateTime",(e,t)=>{_sr.init(e,t),is.init(e,t)});eOt=me("ZodISODate",(e,t)=>{Esr.init(e,t),is.init(e,t)});nOt=me("ZodISOTime",(e,t)=>{bsr.init(e,t),is.init(e,t)});iOt=me("ZodISODuration",(e,t)=>{Tsr.init(e,t),is.init(e,t)});oOt=(e,t)=>{Cxt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Sir(e,n)},flatten:{value:n=>yir(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},rxi=me("ZodError",oOt),kY=me("ZodError",oOt,{Parent:Error}),tar=Mxt(kY),nar=Dxt(kY),rar=Lxt(kY),iar=Uxt(kY),rs=me("ZodType",(e,t)=>(ai.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>Qg(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>tar(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>rar(e,n,r),e.parseAsync=async(n,r)=>nar(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>iar(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Yar(n,r)),e.superRefine=n=>e.check(Jar(n)),e.overwrite=n=>e.check(SU(n)),e.optional=()=>gt(e),e.nullable=()=>q0t(e),e.nullish=()=>gt(q0t(e)),e.nonoptional=n=>qar(e,n),e.array=()=>$n(e),e.or=n=>qi([e,n]),e.and=n=>sTe(e,n),e.transform=n=>Ibe(e,pOt(n)),e.default=n=>jar(e,n),e.prefault=n=>Har(e,n),e.catch=n=>Gar(e,n),e.pipe=n=>Ibe(e,n),e.readonly=()=>War(e),e.describe=n=>{let r=e.clone();return eU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return eU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return eU.get(e);let r=e.clone();return eU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),aOt=me("_ZodString",(e,t)=>{iTe.init(e,t),rs.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Uor(...r)),e.includes=(...r)=>e.check(Hor(...r)),e.startsWith=(...r)=>e.check(qor(...r)),e.endsWith=(...r)=>e.check(Bor(...r)),e.min=(...r)=>e.check(cY(...r)),e.max=(...r)=>e.check(Zxt(...r)),e.length=(...r)=>e.check(Yxt(...r)),e.nonempty=(...r)=>e.check(cY(1,...r)),e.lowercase=r=>e.check(jor(r)),e.uppercase=r=>e.check(For(r)),e.trim=()=>e.check(zor()),e.normalize=(...r)=>e.check(Gor(...r)),e.toLowerCase=()=>e.check(Vor()),e.toUpperCase=()=>e.check(Wor())}),sar=me("ZodString",(e,t)=>{iTe.init(e,t),aOt.init(e,t),e.email=n=>e.check(sor(oar,n)),e.url=n=>e.check(lor(aar,n)),e.jwt=n=>e.check(wor(Tar,n)),e.emoji=n=>e.check(dor(car,n)),e.guid=n=>e.check(M0t(F0t,n)),e.uuid=n=>e.check(oor(Y6,n)),e.uuidv4=n=>e.check(aor(Y6,n)),e.uuidv6=n=>e.check(cor(Y6,n)),e.uuidv7=n=>e.check(uor(Y6,n)),e.nanoid=n=>e.check(por(uar,n)),e.guid=n=>e.check(M0t(F0t,n)),e.cuid=n=>e.check(hor(lar,n)),e.cuid2=n=>e.check(mor(dar,n)),e.ulid=n=>e.check(gor(far,n)),e.base64=n=>e.check(vor(_ar,n)),e.base64url=n=>e.check(Aor(Ear,n)),e.xid=n=>e.check(yor(par,n)),e.ksuid=n=>e.check(Sor(har,n)),e.ipv4=n=>e.check(_or(mar,n)),e.ipv6=n=>e.check(Eor(gar,n)),e.cidrv4=n=>e.check(bor(yar,n)),e.cidrv6=n=>e.check(Tor(Sar,n)),e.e164=n=>e.check(Ror(bar,n)),e.datetime=n=>e.check($xt(n)),e.date=n=>e.check(tOt(n)),e.time=n=>e.check(rOt(n)),e.duration=n=>e.check(sOt(n))});is=me("ZodStringFormat",(e,t)=>{Hi.init(e,t),aOt.init(e,t)}),oar=me("ZodEmail",(e,t)=>{lsr.init(e,t),is.init(e,t)}),F0t=me("ZodGUID",(e,t)=>{csr.init(e,t),is.init(e,t)}),Y6=me("ZodUUID",(e,t)=>{usr.init(e,t),is.init(e,t)}),aar=me("ZodURL",(e,t)=>{dsr.init(e,t),is.init(e,t)}),car=me("ZodEmoji",(e,t)=>{fsr.init(e,t),is.init(e,t)}),uar=me("ZodNanoID",(e,t)=>{psr.init(e,t),is.init(e,t)}),lar=me("ZodCUID",(e,t)=>{hsr.init(e,t),is.init(e,t)}),dar=me("ZodCUID2",(e,t)=>{msr.init(e,t),is.init(e,t)}),far=me("ZodULID",(e,t)=>{gsr.init(e,t),is.init(e,t)}),par=me("ZodXID",(e,t)=>{ysr.init(e,t),is.init(e,t)}),har=me("ZodKSUID",(e,t)=>{Ssr.init(e,t),is.init(e,t)}),mar=me("ZodIPv4",(e,t)=>{vsr.init(e,t),is.init(e,t)}),gar=me("ZodIPv6",(e,t)=>{Asr.init(e,t),is.init(e,t)}),yar=me("ZodCIDRv4",(e,t)=>{Rsr.init(e,t),is.init(e,t)}),Sar=me("ZodCIDRv6",(e,t)=>{wsr.init(e,t),is.init(e,t)}),_ar=me("ZodBase64",(e,t)=>{ksr.init(e,t),is.init(e,t)}),Ear=me("ZodBase64URL",(e,t)=>{xsr.init(e,t),is.init(e,t)}),bar=me("ZodE164",(e,t)=>{Osr.init(e,t),is.init(e,t)}),Tar=me("ZodJWT",(e,t)=>{Psr.init(e,t),is.init(e,t)}),cOt=me("ZodNumber",(e,t)=>{Vxt.init(e,t),rs.init(e,t),e.gt=(r,i)=>e.check(L0t(r,i)),e.gte=(r,i)=>e.check(cbe(r,i)),e.min=(r,i)=>e.check(cbe(r,i)),e.lt=(r,i)=>e.check(D0t(r,i)),e.lte=(r,i)=>e.check(abe(r,i)),e.max=(r,i)=>e.check(abe(r,i)),e.int=r=>e.check(H0t(r)),e.safe=r=>e.check(H0t(r)),e.positive=r=>e.check(L0t(0,r)),e.nonnegative=r=>e.check(cbe(0,r)),e.negative=r=>e.check(D0t(0,r)),e.nonpositive=r=>e.check(abe(0,r)),e.multipleOf=(r,i)=>e.check(U0t(r,i)),e.step=(r,i)=>e.check(U0t(r,i)),e.finite=()=>e;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??.5),e.isFinite=!0,e.format=n.format??null});Aar=me("ZodNumberFormat",(e,t)=>{Csr.init(e,t),cOt.init(e,t)});Rar=me("ZodBoolean",(e,t)=>{Msr.init(e,t),rs.init(e,t)});war=me("ZodNull",(e,t)=>{Dsr.init(e,t),rs.init(e,t)});kar=me("ZodUnknown",(e,t)=>{Lsr.init(e,t),rs.init(e,t)});Iar=me("ZodNever",(e,t)=>{Usr.init(e,t),rs.init(e,t)});Oar=me("ZodArray",(e,t)=>{jsr.init(e,t),rs.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(cY(n,r)),e.nonempty=n=>e.check(cY(1,n)),e.max=(n,r)=>e.check(Zxt(n,r)),e.length=(n,r)=>e.check(Yxt(n,r)),e.unwrap=()=>e.element});lOt=me("ZodObject",(e,t)=>{Wxt.init(e,t),rs.init(e,t),Br.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>bc(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:wo()}),e.loose=()=>e.clone({...e._zod.def,catchall:wo()}),e.strict=()=>e.clone({...e._zod.def,catchall:xar()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>Br.extend(e,n),e.merge=n=>Br.merge(e,n),e.pick=n=>Br.pick(e,n),e.omit=n=>Br.omit(e,n),e.partial=(...n)=>Br.partial(hOt,e,n[0]),e.required=(...n)=>Br.required(mOt,e,n[0])});dOt=me("ZodUnion",(e,t)=>{Kxt.init(e,t),rs.init(e,t),e.options=t.options});Nar=me("ZodDiscriminatedUnion",(e,t)=>{dOt.init(e,t),Fsr.init(e,t)});Par=me("ZodIntersection",(e,t)=>{Hsr.init(e,t),rs.init(e,t)});Car=me("ZodRecord",(e,t)=>{qsr.init(e,t),rs.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});kbe=me("ZodEnum",(e,t)=>{Bsr.init(e,t),rs.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new kbe({...t,checks:[],...Br.normalizeParams(i),entries:s})},e.exclude=(r,i)=>{let s={...t.entries};for(let o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new kbe({...t,checks:[],...Br.normalizeParams(i),entries:s})}});Mar=me("ZodLiteral",(e,t)=>{Gsr.init(e,t),rs.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});Dar=me("ZodTransform",(e,t)=>{zsr.init(e,t),rs.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(Br.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(Br.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});hOt=me("ZodOptional",(e,t)=>{Vsr.init(e,t),rs.init(e,t),e.unwrap=()=>e._zod.def.innerType});Lar=me("ZodNullable",(e,t)=>{Wsr.init(e,t),rs.init(e,t),e.unwrap=()=>e._zod.def.innerType});Uar=me("ZodDefault",(e,t)=>{Ksr.init(e,t),rs.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Far=me("ZodPrefault",(e,t)=>{Zsr.init(e,t),rs.init(e,t),e.unwrap=()=>e._zod.def.innerType});mOt=me("ZodNonOptional",(e,t)=>{Ysr.init(e,t),rs.init(e,t),e.unwrap=()=>e._zod.def.innerType});Bar=me("ZodCatch",(e,t)=>{Jsr.init(e,t),rs.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});zar=me("ZodPipe",(e,t)=>{Xsr.init(e,t),rs.init(e,t),e.in=t.in,e.out=t.out});Var=me("ZodReadonly",(e,t)=>{Qsr.init(e,t),rs.init(e,t)});gOt=me("ZodCustom",(e,t)=>{$sr.init(e,t),rs.init(e,t)});Jg(nor());SOt="2025-11-25",Xar=[SOt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Wg="io.modelcontextprotocol/related-task",IY="2.0",$h=Zar(e=>e!==null&&(typeof e=="object"||typeof e=="function")),_Ot=qi([pe(),oi().int()]),EOt=pe(),Qar=fp({ttl:qi([oi(),uOt()]).optional(),pollInterval:oi().optional()}),oTe=fp({taskId:pe()}),$ar=fp({progressToken:_Ot.optional(),[Wg]:oTe.optional()}),Ku=fp({task:Qar.optional(),_meta:$ar.optional()}),Pa=Ge({method:pe(),params:Ku.optional()}),Gv=fp({_meta:Ge({[Wg]:gt(oTe)}).passthrough().optional()}),Kd=Ge({method:pe(),params:Gv.optional()}),Tc=fp({_meta:fp({[Wg]:oTe.optional()}).optional()}),xY=qi([pe(),oi().int()]),bOt=Ge({jsonrpc:yt(IY),id:xY,...Pa.shape}).strict(),B0t=e=>bOt.safeParse(e).success,TOt=Ge({jsonrpc:yt(IY),...Kd.shape}).strict(),ecr=e=>TOt.safeParse(e).success,vOt=Ge({jsonrpc:yt(IY),id:xY,result:Tc}).strict(),J6=e=>vOt.safeParse(e).success;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Lt||(Lt={}));AOt=Ge({jsonrpc:yt(IY),id:xY,error:Ge({code:oi().int(),message:pe(),data:gt(wo())})}).strict(),tcr=e=>AOt.safeParse(e).success,ixi=qi([bOt,TOt,vOt,AOt]),aTe=Tc.strict(),ncr=Gv.extend({requestId:xY,reason:pe().optional()}),cTe=Kd.extend({method:yt("notifications/cancelled"),params:ncr}),rcr=Ge({src:pe(),mimeType:pe().optional(),sizes:$n(pe()).optional()}),EU=Ge({icons:$n(rcr).optional()}),Cx=Ge({name:pe(),title:pe().optional()}),ROt=Cx.extend({...Cx.shape,...EU.shape,version:pe(),websiteUrl:pe().optional()}),icr=sTe(Ge({applyDefaults:Ec().optional()}),ko(pe(),wo())),scr=yOt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,sTe(Ge({form:icr.optional(),url:$h.optional()}),ko(pe(),wo()).optional())),ocr=Ge({list:gt(Ge({}).passthrough()),cancel:gt(Ge({}).passthrough()),requests:gt(Ge({sampling:gt(Ge({createMessage:gt(Ge({}).passthrough())}).passthrough()),elicitation:gt(Ge({create:gt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),acr=Ge({list:gt(Ge({}).passthrough()),cancel:gt(Ge({}).passthrough()),requests:gt(Ge({tools:gt(Ge({call:gt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),ccr=Ge({experimental:ko(pe(),$h).optional(),sampling:Ge({context:$h.optional(),tools:$h.optional()}).optional(),elicitation:scr.optional(),roots:Ge({listChanged:Ec().optional()}).optional(),tasks:gt(ocr)}),ucr=Ku.extend({protocolVersion:pe(),capabilities:ccr,clientInfo:ROt}),wOt=Pa.extend({method:yt("initialize"),params:ucr}),lcr=Ge({experimental:ko(pe(),$h).optional(),logging:$h.optional(),completions:$h.optional(),prompts:gt(Ge({listChanged:gt(Ec())})),resources:Ge({subscribe:Ec().optional(),listChanged:Ec().optional()}).optional(),tools:Ge({listChanged:Ec().optional()}).optional(),tasks:gt(acr)}).passthrough(),dcr=Tc.extend({protocolVersion:pe(),capabilities:lcr,serverInfo:ROt,instructions:pe().optional()}),kOt=Kd.extend({method:yt("notifications/initialized")}),uTe=Pa.extend({method:yt("ping")}),fcr=Ge({progress:oi(),total:gt(oi()),message:gt(pe())}),pcr=Ge({...Gv.shape,...fcr.shape,progressToken:_Ot}),lTe=Kd.extend({method:yt("notifications/progress"),params:pcr}),hcr=Ku.extend({cursor:EOt.optional()}),bU=Pa.extend({params:hcr.optional()}),TU=Tc.extend({nextCursor:gt(EOt)}),vU=Ge({taskId:pe(),status:bc(["working","input_required","completed","failed","cancelled"]),ttl:qi([oi(),uOt()]),createdAt:pe(),lastUpdatedAt:pe(),pollInterval:gt(oi()),statusMessage:gt(pe())}),OY=Tc.extend({task:vU}),mcr=Gv.merge(vU),lY=Kd.extend({method:yt("notifications/tasks/status"),params:mcr}),dTe=Pa.extend({method:yt("tasks/get"),params:Ku.extend({taskId:pe()})}),fTe=Tc.merge(vU),pTe=Pa.extend({method:yt("tasks/result"),params:Ku.extend({taskId:pe()})}),hTe=bU.extend({method:yt("tasks/list")}),mTe=TU.extend({tasks:$n(vU)}),gcr=Pa.extend({method:yt("tasks/cancel"),params:Ku.extend({taskId:pe()})}),ycr=Tc.merge(vU),IOt=Ge({uri:pe(),mimeType:gt(pe()),_meta:ko(pe(),wo()).optional()}),xOt=IOt.extend({text:pe()}),gTe=pe().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),OOt=IOt.extend({blob:gTe}),jx=Ge({audience:$n(bc(["user","assistant"])).optional(),priority:oi().min(0).max(1).optional(),lastModified:Xxt.datetime({offset:!0}).optional()}),NOt=Ge({...Cx.shape,...EU.shape,uri:pe(),description:gt(pe()),mimeType:gt(pe()),annotations:jx.optional(),_meta:gt(fp({}))}),Scr=Ge({...Cx.shape,...EU.shape,uriTemplate:pe(),description:gt(pe()),mimeType:gt(pe()),annotations:jx.optional(),_meta:gt(fp({}))}),xbe=bU.extend({method:yt("resources/list")}),_cr=TU.extend({resources:$n(NOt)}),Obe=bU.extend({method:yt("resources/templates/list")}),Ecr=TU.extend({resourceTemplates:$n(Scr)}),yTe=Ku.extend({uri:pe()}),bcr=yTe,Nbe=Pa.extend({method:yt("resources/read"),params:bcr}),Tcr=Tc.extend({contents:$n(qi([xOt,OOt]))}),vcr=Kd.extend({method:yt("notifications/resources/list_changed")}),Acr=yTe,Rcr=Pa.extend({method:yt("resources/subscribe"),params:Acr}),wcr=yTe,kcr=Pa.extend({method:yt("resources/unsubscribe"),params:wcr}),Icr=Gv.extend({uri:pe()}),xcr=Kd.extend({method:yt("notifications/resources/updated"),params:Icr}),Ocr=Ge({name:pe(),description:gt(pe()),required:gt(Ec())}),Ncr=Ge({...Cx.shape,...EU.shape,description:gt(pe()),arguments:gt($n(Ocr)),_meta:gt(fp({}))}),Pbe=bU.extend({method:yt("prompts/list")}),Pcr=TU.extend({prompts:$n(Ncr)}),Ccr=Ku.extend({name:pe(),arguments:ko(pe(),pe()).optional()}),Cbe=Pa.extend({method:yt("prompts/get"),params:Ccr}),STe=Ge({type:yt("text"),text:pe(),annotations:jx.optional(),_meta:ko(pe(),wo()).optional()}),_Te=Ge({type:yt("image"),data:gTe,mimeType:pe(),annotations:jx.optional(),_meta:ko(pe(),wo()).optional()}),ETe=Ge({type:yt("audio"),data:gTe,mimeType:pe(),annotations:jx.optional(),_meta:ko(pe(),wo()).optional()}),Mcr=Ge({type:yt("tool_use"),name:pe(),id:pe(),input:Ge({}).passthrough(),_meta:gt(Ge({}).passthrough())}).passthrough(),Dcr=Ge({type:yt("resource"),resource:qi([xOt,OOt]),annotations:jx.optional(),_meta:ko(pe(),wo()).optional()}),Lcr=NOt.extend({type:yt("resource_link")}),bTe=qi([STe,_Te,ETe,Lcr,Dcr]),Ucr=Ge({role:bc(["user","assistant"]),content:bTe}),jcr=Tc.extend({description:gt(pe()),messages:$n(Ucr)}),Fcr=Kd.extend({method:yt("notifications/prompts/list_changed")}),Hcr=Ge({title:pe().optional(),readOnlyHint:Ec().optional(),destructiveHint:Ec().optional(),idempotentHint:Ec().optional(),openWorldHint:Ec().optional()}),qcr=Ge({taskSupport:bc(["required","optional","forbidden"]).optional()}),POt=Ge({...Cx.shape,...EU.shape,description:pe().optional(),inputSchema:Ge({type:yt("object"),properties:ko(pe(),$h).optional(),required:$n(pe()).optional()}).catchall(wo()),outputSchema:Ge({type:yt("object"),properties:ko(pe(),$h).optional(),required:$n(pe()).optional()}).catchall(wo()).optional(),annotations:gt(Hcr),execution:gt(qcr),_meta:ko(pe(),wo()).optional()}),Mbe=bU.extend({method:yt("tools/list")}),Bcr=TU.extend({tools:$n(POt)}),TTe=Tc.extend({content:$n(bTe).default([]),structuredContent:ko(pe(),wo()).optional(),isError:gt(Ec())}),sxi=TTe.or(Tc.extend({toolResult:wo()})),Gcr=Ku.extend({name:pe(),arguments:gt(ko(pe(),wo()))}),dY=Pa.extend({method:yt("tools/call"),params:Gcr}),zcr=Kd.extend({method:yt("notifications/tools/list_changed")}),fY=bc(["debug","info","notice","warning","error","critical","alert","emergency"]),Vcr=Ku.extend({level:fY}),COt=Pa.extend({method:yt("logging/setLevel"),params:Vcr}),Wcr=Gv.extend({level:fY,logger:pe().optional(),data:wo()}),Kcr=Kd.extend({method:yt("notifications/message"),params:Wcr}),Zcr=Ge({name:pe().optional()}),Ycr=Ge({hints:gt($n(Zcr)),costPriority:gt(oi().min(0).max(1)),speedPriority:gt(oi().min(0).max(1)),intelligencePriority:gt(oi().min(0).max(1))}),Jcr=Ge({mode:gt(bc(["auto","required","none"]))}),Xcr=Ge({type:yt("tool_result"),toolUseId:pe().describe("The unique identifier for the corresponding tool call."),content:$n(bTe).default([]),structuredContent:Ge({}).passthrough().optional(),isError:gt(Ec()),_meta:gt(Ge({}).passthrough())}).passthrough(),Qcr=fOt("type",[STe,_Te,ETe]),pY=fOt("type",[STe,_Te,ETe,Mcr,Xcr]),$cr=Ge({role:bc(["user","assistant"]),content:qi([pY,$n(pY)]),_meta:gt(Ge({}).passthrough())}).passthrough(),eur=Ku.extend({messages:$n($cr),modelPreferences:Ycr.optional(),systemPrompt:pe().optional(),includeContext:bc(["none","thisServer","allServers"]).optional(),temperature:oi().optional(),maxTokens:oi().int(),stopSequences:$n(pe()).optional(),metadata:$h.optional(),tools:gt($n(POt)),toolChoice:gt(Jcr)}),tur=Pa.extend({method:yt("sampling/createMessage"),params:eur}),MOt=Tc.extend({model:pe(),stopReason:gt(bc(["endTurn","stopSequence","maxTokens"]).or(pe())),role:bc(["user","assistant"]),content:Qcr}),DOt=Tc.extend({model:pe(),stopReason:gt(bc(["endTurn","stopSequence","maxTokens","toolUse"]).or(pe())),role:bc(["user","assistant"]),content:qi([pY,$n(pY)])}),nur=Ge({type:yt("boolean"),title:pe().optional(),description:pe().optional(),default:Ec().optional()}),rur=Ge({type:yt("string"),title:pe().optional(),description:pe().optional(),minLength:oi().optional(),maxLength:oi().optional(),format:bc(["email","uri","date","date-time"]).optional(),default:pe().optional()}),iur=Ge({type:bc(["number","integer"]),title:pe().optional(),description:pe().optional(),minimum:oi().optional(),maximum:oi().optional(),default:oi().optional()}),sur=Ge({type:yt("string"),title:pe().optional(),description:pe().optional(),enum:$n(pe()),default:pe().optional()}),our=Ge({type:yt("string"),title:pe().optional(),description:pe().optional(),oneOf:$n(Ge({const:pe(),title:pe()})),default:pe().optional()}),aur=Ge({type:yt("string"),title:pe().optional(),description:pe().optional(),enum:$n(pe()),enumNames:$n(pe()).optional(),default:pe().optional()}),cur=qi([sur,our]),uur=Ge({type:yt("array"),title:pe().optional(),description:pe().optional(),minItems:oi().optional(),maxItems:oi().optional(),items:Ge({type:yt("string"),enum:$n(pe())}),default:$n(pe()).optional()}),lur=Ge({type:yt("array"),title:pe().optional(),description:pe().optional(),minItems:oi().optional(),maxItems:oi().optional(),items:Ge({anyOf:$n(Ge({const:pe(),title:pe()}))}),default:$n(pe()).optional()}),dur=qi([uur,lur]),fur=qi([aur,cur,dur]),pur=qi([fur,nur,rur,iur]),hur=Ku.extend({mode:yt("form").optional(),message:pe(),requestedSchema:Ge({type:yt("object"),properties:ko(pe(),pur),required:$n(pe()).optional()})}),mur=Ku.extend({mode:yt("url"),message:pe(),elicitationId:pe(),url:pe().url()}),gur=qi([hur,mur]),yur=Pa.extend({method:yt("elicitation/create"),params:gur}),Sur=Gv.extend({elicitationId:pe()}),_ur=Kd.extend({method:yt("notifications/elicitation/complete"),params:Sur}),Dbe=Tc.extend({action:bc(["accept","decline","cancel"]),content:yOt(e=>e===null?void 0:e,ko(pe(),qi([pe(),oi(),Ec(),$n(pe())])).optional())}),Eur=Ge({type:yt("ref/resource"),uri:pe()}),bur=Ge({type:yt("ref/prompt"),name:pe()}),Tur=Ku.extend({ref:qi([bur,Eur]),argument:Ge({name:pe(),value:pe()}),context:Ge({arguments:ko(pe(),pe()).optional()}).optional()}),Lbe=Pa.extend({method:yt("completion/complete"),params:Tur});Rur=Tc.extend({completion:fp({values:$n(pe()).max(100),total:gt(oi().int()),hasMore:gt(Ec())})}),wur=Ge({uri:pe().startsWith("file://"),name:pe().optional(),_meta:ko(pe(),wo()).optional()}),kur=Pa.extend({method:yt("roots/list")}),LOt=Tc.extend({roots:$n(wur)}),Iur=Kd.extend({method:yt("notifications/roots/list_changed")}),oxi=qi([uTe,wOt,Lbe,COt,Cbe,Pbe,xbe,Obe,Nbe,Rcr,kcr,dY,Mbe,dTe,pTe,hTe]),axi=qi([cTe,lTe,kOt,Iur,lY]),cxi=qi([aTe,MOt,DOt,Dbe,LOt,fTe,mTe,OY]),uxi=qi([uTe,tur,yur,kur,dTe,pTe,hTe]),lxi=qi([cTe,lTe,Kcr,xcr,vcr,zcr,Fcr,lY,_ur]),dxi=qi([aTe,dcr,Rur,jcr,Pcr,_cr,Ecr,Tcr,TTe,Bcr,fTe,mTe,OY]),Et=class e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===Lt.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new Ube(i.elicitations,n)}return new e(t,n,r)}},Ube=class extends Et{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Lt.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){var t,n;return(n=(t=this.data)===null||t===void 0?void 0:t.elicitations)!==null&&n!==void 0?n:[]}};xur=Symbol("Let zodToJsonSchema decide on which parser to use"),G0t={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},Our=e=>typeof e=="string"?{...G0t,name:e}:{...G0t,...e},Nur=e=>{let t=Our(e),n=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([r,i])=>[i._def,{def:i._def,path:[...t.basePath,t.definitionPath,r],jsonSchema:void 0}]))}};jOt=(e,t)=>{let n=0;for(;nSr(e.innerType._def,t);Lur=(e,t)=>{let n={type:"integer",format:"unix-time"};if(t.target==="openApi3")return n;for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minimum",r.value,r.message,t);break;case"max":Cr(n,"maximum",r.value,r.message,t);break}return n};Hur=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;dbe=void 0,ap={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(dbe===void 0&&(dbe=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),dbe),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Gur=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");hY={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};V0t=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((r,i)=>Sr(r._def,{...t,currentPath:[...t.currentPath,"anyOf",`${i}`]})).filter(r=>!!r&&(!t.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return n.length?{anyOf:n}:void 0};tlr=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return Sr(e.innerType._def,t);let n=Sr(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:Vu(t)},n]}:Vu(t)},nlr=(e,t)=>{if(t.pipeStrategy==="input")return Sr(e.in._def,t);if(t.pipeStrategy==="output")return Sr(e.out._def,t);let n=Sr(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),r=Sr(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,r].filter(i=>i!==void 0)}};clr=(e,t)=>Sr(e.innerType._def,t),ulr=(e,t,n)=>{switch(t){case De.ZodString:return qOt(e,n);case De.ZodNumber:return Xur(e,n);case De.ZodObject:return Qur(e,n);case De.ZodBigInt:return Cur(e,n);case De.ZodBoolean:return Mur();case De.ZodDate:return HOt(e,n);case De.ZodUndefined:return olr(n);case De.ZodNull:return Zur(n);case De.ZodArray:return Pur(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return Yur(e,n);case De.ZodIntersection:return qur(e,n);case De.ZodTuple:return slr(e,n);case De.ZodRecord:return BOt(e,n);case De.ZodLiteral:return Bur(e,n);case De.ZodEnum:return Fur(e);case De.ZodNativeEnum:return Wur(e);case De.ZodNullable:return Jur(e,n);case De.ZodOptional:return tlr(e,n);case De.ZodMap:return Vur(e,n);case De.ZodSet:return ilr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return rlr(e,n);case De.ZodNaN:case De.ZodNever:return Kur(n);case De.ZodEffects:return jur(e,n);case De.ZodAny:return Vu(n);case De.ZodUnknown:return alr(n);case De.ZodDefault:return Uur(e,n);case De.ZodBranded:return FOt(e,n);case De.ZodReadonly:return clr(e,n);case De.ZodCatch:return Dur(e,n);case De.ZodPipeline:return nlr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};llr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:jOt(t.currentPath,e.path)};case"none":case"seen":return e.path.lengtht.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Vu(t)):t.$refStrategy==="seen"?Vu(t):void 0}},dlr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),flr=(e,t)=>{let n=Nur(t),r=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((c,[u,l])=>({...c,[u]:Sr(l._def,{...n,currentPath:[...n.basePath,n.definitionPath,u]},!0)??Vu(n)}),{}):void 0,i=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,s=Sr(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??Vu(n),o=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;o!==void 0&&(s.title=o),n.flags.hasReferencedOpenAiAnyType&&(r||(r={}),r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:n.$refStrategy==="relative"?"1":[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join("/")}}));let a=i===void 0?r?{...s,[n.definitionPath]:r}:s:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,i].join("/"),[n.definitionPath]:{...r,[i]:s}};return n.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in a||"oneOf"in a||"allOf"in a||"type"in a&&Array.isArray(a.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),a};hlr=6e4,jbe=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(cTe,n=>{this._oncancel(n)}),this.setNotificationHandler(lTe,n=>{this._onprogress(n)}),this.setRequestHandler(uTe,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(dTe,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new Et(Lt.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(pTe,async(n,r)=>{let i=async()=>{var s;let o=n.params.taskId;if(this._taskMessageQueue){let c;for(;c=await this._taskMessageQueue.dequeue(o,r.sessionId);){if(c.type==="response"||c.type==="error"){let u=c.message,l=u.id,d=this._requestResolvers.get(l);if(d)if(this._requestResolvers.delete(l),c.type==="response")d(u);else{let f=u,p=new Et(f.error.code,f.error.message,f.error.data);d(p)}else{let f=c.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${l}`))}continue}await((s=this._transport)===null||s===void 0?void 0:s.send(c.message,{relatedRequestId:r.requestId}))}}let a=await this._taskStore.getTask(o,r.sessionId);if(!a)throw new Et(Lt.InvalidParams,`Task not found: ${o}`);if(!Hv(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if(Hv(a.status)){let c=await this._taskStore.getTaskResult(o,r.sessionId);return this._clearTaskQueue(o),{...c,_meta:{...c._meta,[Wg]:{taskId:o}}}}return await i()};return await i()}),this.setRequestHandler(hTe,async(n,r)=>{var i;try{let{tasks:s,nextCursor:o}=await this._taskStore.listTasks((i=n.params)===null||i===void 0?void 0:i.cursor,r.sessionId);return{tasks:s,nextCursor:o,_meta:{}}}catch(s){throw new Et(Lt.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(gcr,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new Et(Lt.InvalidParams,`Task not found: ${n.params.taskId}`);if(Hv(i.status))throw new Et(Lt.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new Et(Lt.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof Et?i:new Et(Lt.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){let n=this._requestHandlerAbortControllers.get(t.params.requestId);n?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),Et.fromError(Lt.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){var n,r,i;this._transport=t;let s=(n=this.transport)===null||n===void 0?void 0:n.onclose;this._transport.onclose=()=>{s?.(),this._onclose()};let o=(r=this.transport)===null||r===void 0?void 0:r.onerror;this._transport.onerror=c=>{o?.(c),this._onerror(c)};let a=(i=this._transport)===null||i===void 0?void 0:i.onmessage;this._transport.onmessage=(c,u)=>{a?.(c,u),J6(c)||tcr(c)?this._onresponse(c):B0t(c)?this._onrequest(c,u):ecr(c)?this._onnotification(c):this._onerror(new Error(`Unknown message type: ${JSON.stringify(c)}`))},await this._transport.start()}_onclose(){var t;let n=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=Et.fromError(Lt.ConnectionClosed,"Connection closed");this._transport=void 0,(t=this.onclose)===null||t===void 0||t.call(this);for(let i of n.values())i(r)}_onerror(t){var n;(n=this.onerror)===null||n===void 0||n.call(this,t)}_onnotification(t){var n;let r=(n=this._notificationHandlers.get(t.method))!==null&&n!==void 0?n:this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(i=>this._onerror(new Error(`Uncaught error in notification handler: ${i}`)))}_onrequest(t,n){var r,i,s,o,a,c;let u=(r=this._requestHandlers.get(t.method))!==null&&r!==void 0?r:this.fallbackRequestHandler,l=this._transport,d=(o=(s=(i=t.params)===null||i===void 0?void 0:i._meta)===null||s===void 0?void 0:s[Wg])===null||o===void 0?void 0:o.taskId;if(u===void 0){let y={jsonrpc:"2.0",id:t.id,error:{code:Lt.MethodNotFound,message:"Method not found"}};d&&this._taskMessageQueue?this._enqueueTaskMessage(d,{type:"error",message:y,timestamp:Date.now()},l?.sessionId).catch(g=>this._onerror(new Error(`Failed to enqueue error response: ${g}`))):l?.send(y).catch(g=>this._onerror(new Error(`Failed to send an error response: ${g}`)));return}let f=new AbortController;this._requestHandlerAbortControllers.set(t.id,f);let p=(a=t.params)===null||a===void 0?void 0:a.task,h=this._taskStore?this.requestTaskStore(t,l?.sessionId):void 0,m={signal:f.signal,sessionId:l?.sessionId,_meta:(c=t.params)===null||c===void 0?void 0:c._meta,sendNotification:async y=>{let g={relatedRequestId:t.id};d&&(g.relatedTask={taskId:d}),await this.notification(y,g)},sendRequest:async(y,g,E)=>{var S,_;let b={...E,relatedRequestId:t.id};d&&!b.relatedTask&&(b.relatedTask={taskId:d});let T=(_=(S=b.relatedTask)===null||S===void 0?void 0:S.taskId)!==null&&_!==void 0?_:d;return T&&h&&await h.updateTaskStatus(T,"input_required"),await this.request(y,g,b)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:d,taskStore:h,taskRequestedTtl:p?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{p&&this.assertTaskHandlerCapability(t.method)}).then(()=>u(t,m)).then(async y=>{if(f.signal.aborted)return;let g={result:y,jsonrpc:"2.0",id:t.id};d&&this._taskMessageQueue?await this._enqueueTaskMessage(d,{type:"response",message:g,timestamp:Date.now()},l?.sessionId):await l?.send(g)},async y=>{var g;if(f.signal.aborted)return;let E={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(y.code)?y.code:Lt.InternalError,message:(g=y.message)!==null&&g!==void 0?g:"Internal error",...y.data!==void 0&&{data:y.data}}};d&&this._taskMessageQueue?await this._enqueueTaskMessage(d,{type:"error",message:E,timestamp:Date.now()},l?.sessionId):await l?.send(E)}).catch(y=>this._onerror(new Error(`Failed to send response: ${y}`))).finally(()=>{this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...r}=t.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(r)}_onresponse(t){let n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),J6(t))r(t);else{let o=new Et(t.error.code,t.error.message,t.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(J6(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),J6(t))i(t);else{let o=Et.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){var t;await((t=this._transport)===null||t===void 0?void 0:t.close())}async*requestStream(t,n,r){var i,s,o,a;let{task:c}=r??{};if(!c){try{yield{type:"result",result:await this.request(t,n,r)}}catch(l){yield{type:"error",error:l instanceof Et?l:new Et(Lt.InternalError,String(l))}}return}let u;try{let l=await this.request(t,OY,r);if(l.task)u=l.task.taskId,yield{type:"taskCreated",task:l.task};else throw new Et(Lt.InternalError,"Task creation did not return a task");for(;;){let d=await this.getTask({taskId:u},r);if(yield{type:"taskStatus",task:d},Hv(d.status)){d.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)}:d.status==="failed"?yield{type:"error",error:new Et(Lt.InternalError,`Task ${u} failed`)}:d.status==="cancelled"&&(yield{type:"error",error:new Et(Lt.InternalError,`Task ${u} was cancelled`)});return}if(d.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)};return}let f=(o=(i=d.pollInterval)!==null&&i!==void 0?i:(s=this._options)===null||s===void 0?void 0:s.defaultTaskPollInterval)!==null&&o!==void 0?o:1e3;await new Promise(p=>setTimeout(p,f)),(a=r?.signal)===null||a===void 0||a.throwIfAborted()}}catch(l){yield{type:"error",error:l instanceof Et?l:new Et(Lt.InternalError,String(l))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{var d,f,p,h,m,y,g;let E=k=>{l(k)};if(!this._transport){E(new Error("Not connected"));return}if(((d=this._options)===null||d===void 0?void 0:d.enforceStrictCapabilities)===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(k){E(k);return}(f=r?.signal)===null||f===void 0||f.throwIfAborted();let S=this._requestMessageId++,_={...t,jsonrpc:"2.0",id:S};r?.onprogress&&(this._progressHandlers.set(S,r.onprogress),_.params={...t.params,_meta:{...((p=t.params)===null||p===void 0?void 0:p._meta)||{},progressToken:S}}),a&&(_.params={..._.params,task:a}),c&&(_.params={..._.params,_meta:{...((h=_.params)===null||h===void 0?void 0:h._meta)||{},[Wg]:c}});let b=k=>{var x;this._responseHandlers.delete(S),this._progressHandlers.delete(S),this._cleanupTimeout(S),(x=this._transport)===null||x===void 0||x.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:S,reason:String(k)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(P=>this._onerror(new Error(`Failed to send cancellation: ${P}`)));let N=k instanceof Et?k:new Et(Lt.RequestTimeout,String(k));l(N)};this._responseHandlers.set(S,k=>{var x;if(!(!((x=r?.signal)===null||x===void 0)&&x.aborted)){if(k instanceof Error)return l(k);try{let N=nU(n,k.result);N.success?u(N.data):l(N.error)}catch(N){l(N)}}}),(m=r?.signal)===null||m===void 0||m.addEventListener("abort",()=>{var k;b((k=r?.signal)===null||k===void 0?void 0:k.reason)});let T=(y=r?.timeout)!==null&&y!==void 0?y:hlr,A=()=>b(Et.fromError(Lt.RequestTimeout,"Request timed out",{timeout:T}));this._setupTimeout(S,T,r?.maxTotalTimeout,A,(g=r?.resetTimeoutOnProgress)!==null&&g!==void 0?g:!1);let R=c?.taskId;if(R){let k=x=>{let N=this._responseHandlers.get(S);N?N(x):this._onerror(new Error(`Response handler missing for side-channeled request ${S}`))};this._requestResolvers.set(S,k),this._enqueueTaskMessage(R,{type:"request",message:_,timestamp:Date.now()}).catch(x=>{this._cleanupTimeout(S),l(x)})}else this._transport.send(_,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(k=>{this._cleanupTimeout(S),l(k)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},fTe,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},mTe,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},ycr,n)}async notification(t,n){var r,i,s,o,a;if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let c=(r=n?.relatedTask)===null||r===void 0?void 0:r.taskId;if(c){let f={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...((i=t.params)===null||i===void 0?void 0:i._meta)||{},[Wg]:n.relatedTask}}};await this._enqueueTaskMessage(c,{type:"notification",message:f,timestamp:Date.now()});return}if(((o=(s=this._options)===null||s===void 0?void 0:s.debouncedNotificationMethods)!==null&&o!==void 0?o:[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{var f,p;if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let h={...t,jsonrpc:"2.0"};n?.relatedTask&&(h={...h,params:{...h.params,_meta:{...((f=h.params)===null||f===void 0?void 0:f._meta)||{},[Wg]:n.relatedTask}}}),(p=this._transport)===null||p===void 0||p.send(h,n).catch(m=>this._onerror(m))});return}let d={...t,jsonrpc:"2.0"};n?.relatedTask&&(d={...d,params:{...d.params,_meta:{...((a=d.params)===null||a===void 0?void 0:a._meta)||{},[Wg]:n.relatedTask}}}),await this._transport.send(d,n)}setRequestHandler(t,n){let r=K0t(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Z0t(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=K0t(t);this._notificationHandlers.set(r,i=>{let s=Z0t(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){var i;if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let s=(i=this._options)===null||i===void 0?void 0:i.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,s)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&B0t(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new Et(Lt.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){var r,i,s;let o=(i=(r=this._options)===null||r===void 0?void 0:r.defaultTaskPollInterval)!==null&&i!==void 0?i:1e3;try{let a=await((s=this._taskStore)===null||s===void 0?void 0:s.getTask(t));a?.pollInterval&&(o=a.pollInterval)}catch{}return new Promise((a,c)=>{if(n.aborted){c(new Et(Lt.InvalidRequest,"Request cancelled"));return}let u=setTimeout(a,o);n.addEventListener("abort",()=>{clearTimeout(u),c(new Et(Lt.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{let s=await r.getTask(i,n);if(!s)throw new Et(Lt.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await r.storeTaskResult(i,s,o,n);let a=await r.getTask(i,n);if(a){let c=lY.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Hv(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new Et(Lt.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Hv(a.status))throw new Et(Lt.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=lY.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Hv(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};glr=ext(cxt(),1),ylr=ext(Yer(),1);Fbe=class{constructor(t){this._ajv=t??Slr()}getValidator(t){var n;let r="$id"in t&&typeof t.$id=="string"?(n=this._ajv.getSchema(t.$id))!==null&&n!==void 0?n:this._ajv.compile(t):this._ajv.compile(t);return i=>r(i)?{valid:!0,data:i,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}},Hbe=class{constructor(t){this._server=t}requestStream(t,n,r){return this._server.requestStream(t,n,r)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,r){return this._server.getTaskResult({taskId:t},n,r)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}};qbe=class extends jbe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(fY.options.map((s,o)=>[s,o])),this.isMessageIgnored=(s,o)=>{let a=this._loggingLevels.get(o);return a?this.LOG_LEVEL_SEVERITY.get(s)this._oninitialize(s)),this.setNotificationHandler(kOt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(COt,async(s,o)=>{var a;let c=o.sessionId||((a=o.requestInfo)===null||a===void 0?void 0:a.headers["mcp-session-id"])||void 0,{level:u}=s.params,l=fY.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Hbe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=mlr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=_U(t),a=o?.method;if(!a)throw new Error("Schema is missing a method literal");let c;if(dp(a)){let l=a,d=(r=l._zod)===null||r===void 0?void 0:r.def;c=(i=d?.value)!==null&&i!==void 0?i:l.value}else{let l=a,d=l._def;c=(s=d?.value)!==null&&s!==void 0?s:l.value}if(typeof c!="string")throw new Error("Schema method literal must be a string");if(c==="tools/call"){let l=async(d,f)=>{let p=nU(dY,d);if(!p.success){let g=p.error instanceof Error?p.error.message:String(p.error);throw new Et(Lt.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:h}=p.data,m=await Promise.resolve(n(d,f));if(h.task){let g=nU(OY,m);if(!g.success){let E=g.error instanceof Error?g.error.message:String(g.error);throw new Et(Lt.InvalidParams,`Invalid task creation result: ${E}`)}return g.data}let y=nU(TTe,m);if(!y.success){let g=y.error instanceof Error?y.error.message:String(y.error);throw new Et(Lt.InvalidParams,`Invalid tools/call result: ${g}`)}return y.data};return super.setRequestHandler(t,l)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){var n,r,i;switch(t){case"sampling/createMessage":if(!(!((n=this._clientCapabilities)===null||n===void 0)&&n.sampling))throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!(!((r=this._clientCapabilities)===null||r===void 0)&&r.elicitation))throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!(!((i=this._clientCapabilities)===null||i===void 0)&&i.roots))throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){var n,r;switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!(!((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.elicitation)===null||r===void 0)&&r.url))throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){var n,r;Elr((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.tasks)===null||r===void 0?void 0:r.requests,t,"Client")}assertTaskHandlerCapability(t){var n;this._capabilities&&_lr((n=this._capabilities.tasks)===null||n===void 0?void 0:n.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:Xar.includes(n)?n:SOt,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},aTe)}async createMessage(t,n){var r,i;if((t.tools||t.toolChoice)&&!(!((i=(r=this._clientCapabilities)===null||r===void 0?void 0:r.sampling)===null||i===void 0)&&i.tools))throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let s=t.messages[t.messages.length-1],o=Array.isArray(s.content)?s.content:[s.content],a=o.some(d=>d.type==="tool_result"),c=t.messages.length>1?t.messages[t.messages.length-2]:void 0,u=c?Array.isArray(c.content)?c.content:[c.content]:[],l=u.some(d=>d.type==="tool_use");if(a){if(o.some(d=>d.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let d=new Set(u.filter(p=>p.type==="tool_use").map(p=>p.id)),f=new Set(o.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(d.size!==f.size||![...d].every(p=>f.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},DOt,n):this.request({method:"sampling/createMessage",params:t},MOt,n)}async elicitInput(t,n){var r,i,s,o,a;switch((r=t.mode)!==null&&r!==void 0?r:"form"){case"url":{if(!(!((s=(i=this._clientCapabilities)===null||i===void 0?void 0:i.elicitation)===null||s===void 0)&&s.url))throw new Error("Client does not support url elicitation.");let u=t;return this.request({method:"elicitation/create",params:u},Dbe,n)}case"form":{if(!(!((a=(o=this._clientCapabilities)===null||o===void 0?void 0:o.elicitation)===null||a===void 0)&&a.form))throw new Error("Client does not support form elicitation.");let u=t.mode==="form"?t:{...t,mode:"form"},l=await this.request({method:"elicitation/create",params:u},Dbe,n);if(l.action==="accept"&&l.content&&u.requestedSchema)try{let f=this._jsonSchemaValidator.getValidator(u.requestedSchema)(l.content);if(!f.valid)throw new Et(Lt.InvalidParams,`Elicitation response content does not match requested schema: ${f.errorMessage}`)}catch(d){throw d instanceof Et?d:new Et(Lt.InternalError,`Error validating elicitation response: ${d instanceof Error?d.message:String(d)}`)}return l}}}createElicitationCompletionNotifier(t,n){var r,i;if(!(!((i=(r=this._clientCapabilities)===null||r===void 0?void 0:r.elicitation)===null||i===void 0)&&i.url))throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},LOt,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}},GOt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(J0t||(J0t={}));vlr=/^[A-Za-z0-9._-]{1,128}$/;Bbe=class{constructor(t){this._mcpServer=t}registerToolTask(t,n,r){let i={taskSupport:"required",...n.execution};if(i.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${t}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(t,n.title,n.description,n.inputSchema,n.outputSchema,n.annotations,i,n._meta,r)}},Gbe=class{constructor(t,n){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new qbe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new Bbe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(K_(Mbe)),this.server.assertCanSetRequestHandler(K_(dY)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(Mbe,()=>({tools:Object.entries(this._registeredTools).filter(([,t])=>t.enabled).map(([t,n])=>{let r={name:t,title:n.title,description:n.description,inputSchema:(()=>{let i=J1(n.inputSchema);return i?W0t(i,{strictUnions:!0,pipeStrategy:"input"}):wlr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=J1(n.outputSchema);i&&(r.outputSchema=W0t(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(dY,async(t,n)=>{var r;try{let i=this._registeredTools[t.params.name];if(!i)throw new Et(Lt.InvalidParams,`Tool ${t.params.name} not found`);if(!i.enabled)throw new Et(Lt.InvalidParams,`Tool ${t.params.name} disabled`);let s=!!t.params.task,o=(r=i.execution)===null||r===void 0?void 0:r.taskSupport,a="createTask"in i.handler;if((o==="required"||o==="optional")&&!a)throw new Et(Lt.InternalError,`Tool ${t.params.name} has taskSupport '${o}' but was not registered with registerToolTask`);if(o==="required"&&!s)throw new Et(Lt.MethodNotFound,`Tool ${t.params.name} requires task augmentation (taskSupport: 'required')`);if(o==="optional"&&!s&&a)return await this.handleAutomaticTaskPolling(i,t,n);let c=await this.validateToolInput(i,t.params.arguments,t.params.name),u=await this.executeToolHandler(i,c,n);return s||await this.validateToolOutput(i,u,t.params.name),u}catch(i){if(i instanceof Et&&i.code===Lt.UrlElicitationRequired)throw i;return this.createToolError(i instanceof Error?i.message:String(i))}}),this._toolHandlersInitialized=!0)}createToolError(t){return{content:[{type:"text",text:t}],isError:!0}}async validateToolInput(t,n,r){if(!t.inputSchema)return;let i=J1(t.inputSchema),s=i??t.inputSchema,o=await ube(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=lbe(a);throw new Et(Lt.InvalidParams,`Input validation error: Invalid arguments for tool ${r}: ${c}`)}return o.data}async validateToolOutput(t,n,r){if(!t.outputSchema||!("content"in n)||n.isError)return;if(!n.structuredContent)throw new Et(Lt.InvalidParams,`Output validation error: Tool ${r} has an output schema but no structured content was provided`);let i=J1(t.outputSchema),s=await ube(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=lbe(o);throw new Et(Lt.InvalidParams,`Output validation error: Invalid structured content for tool ${r}: ${a}`)}}async executeToolHandler(t,n,r){let i=t.handler;if("createTask"in i){if(!r.taskStore)throw new Error("No task store provided.");let o={...r,taskStore:r.taskStore};if(t.inputSchema){let a=i;return await Promise.resolve(a.createTask(n,o))}else{let a=i;return await Promise.resolve(a.createTask(o))}}if(t.inputSchema){let o=i;return await Promise.resolve(o(n,r))}else{let o=i;return await Promise.resolve(o(r))}}async handleAutomaticTaskPolling(t,n,r){var i;if(!r.taskStore)throw new Error("No task store provided for task-capable tool.");let s=await this.validateToolInput(t,n.params.arguments,n.params.name),o=t.handler,a={...r,taskStore:r.taskStore},c=s?await Promise.resolve(o.createTask(s,a)):await Promise.resolve(o.createTask(a)),u=c.task.taskId,l=c.task,d=(i=l.pollInterval)!==null&&i!==void 0?i:5e3;for(;l.status!=="completed"&&l.status!=="failed"&&l.status!=="cancelled";){await new Promise(p=>setTimeout(p,d));let f=await r.taskStore.getTask(u);if(!f)throw new Et(Lt.InternalError,`Task ${u} not found during polling`);l=f}return await r.taskStore.getTaskResult(u)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(K_(Lbe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(Lbe,async t=>{switch(t.params.ref.type){case"ref/prompt":return vur(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return Aur(t),this.handleResourceCompletion(t,t.params.ref);default:throw new Et(Lt.InvalidParams,`Invalid completion reference: ${t.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(t,n){let r=this._registeredPrompts[n.name];if(!r)throw new Et(Lt.InvalidParams,`Prompt ${n.name} not found`);if(!r.enabled)throw new Et(Lt.InvalidParams,`Prompt ${n.name} disabled`);if(!r.argsSchema)return X1;let i=_U(r.argsSchema),s=i?.[t.params.argument.name];if(!blr(s))return X1;let o=Tlr(s);if(!o)return X1;let a=await o(t.params.argument.value,t.params.context);return $0t(a)}async handleResourceCompletion(t,n){let r=Object.values(this._registeredResourceTemplates).find(o=>o.resourceTemplate.uriTemplate.toString()===n.uri);if(!r){if(this._registeredResources[n.uri])return X1;throw new Et(Lt.InvalidParams,`Resource template ${t.params.ref.uri} not found`)}let i=r.resourceTemplate.completeCallback(t.params.argument.name);if(!i)return X1;let s=await i(t.params.argument.value,t.params.context);return $0t(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(K_(xbe)),this.server.assertCanSetRequestHandler(K_(Obe)),this.server.assertCanSetRequestHandler(K_(Nbe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(xbe,async(t,n)=>{let r=Object.entries(this._registeredResources).filter(([s,o])=>o.enabled).map(([s,o])=>({uri:s,name:o.name,...o.metadata})),i=[];for(let s of Object.values(this._registeredResourceTemplates)){if(!s.resourceTemplate.listCallback)continue;let o=await s.resourceTemplate.listCallback(n);for(let a of o.resources)i.push({...s.metadata,...a})}return{resources:[...r,...i]}}),this.server.setRequestHandler(Obe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(Nbe,async(t,n)=>{let r=new URL(t.params.uri),i=this._registeredResources[r.toString()];if(i){if(!i.enabled)throw new Et(Lt.InvalidParams,`Resource ${r} disabled`);return i.readCallback(r,n)}for(let s of Object.values(this._registeredResourceTemplates)){let o=s.resourceTemplate.uriTemplate.match(r.toString());if(o)return s.readCallback(r,o,n)}throw new Et(Lt.InvalidParams,`Resource ${r} not found`)}),this.setCompletionRequestHandler(),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(K_(Pbe)),this.server.assertCanSetRequestHandler(K_(Cbe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(Pbe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?Ilr(n.argsSchema):void 0}))})),this.server.setRequestHandler(Cbe,async(t,n)=>{let r=this._registeredPrompts[t.params.name];if(!r)throw new Et(Lt.InvalidParams,`Prompt ${t.params.name} not found`);if(!r.enabled)throw new Et(Lt.InvalidParams,`Prompt ${t.params.name} disabled`);if(r.argsSchema){let i=J1(r.argsSchema),s=await ube(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=lbe(c);throw new Et(Lt.InvalidParams,`Invalid arguments for prompt ${t.params.name}: ${u}`)}let o=s.data,a=r.callback;return await Promise.resolve(a(o,n))}else{let i=r.callback;return await Promise.resolve(i(n))}}),this.setCompletionRequestHandler(),this._promptHandlersInitialized=!0)}resource(t,n,...r){let i;typeof r[0]=="object"&&(i=r.shift());let s=r[0];if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let o=this._createRegisteredResource(t,void 0,n,i,s);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let o=this._createRegisteredResourceTemplate(t,void 0,n,i,s);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}}registerResource(t,n,r,i){if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let s=this._createRegisteredResource(t,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let s=this._createRegisteredResourceTemplate(t,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}}_createRegisteredResource(t,n,r,i,s){let o={name:t,title:n,metadata:i,readCallback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({uri:null}),update:a=>{typeof a.uri<"u"&&a.uri!==r&&(delete this._registeredResources[r],a.uri&&(this._registeredResources[a.uri]=o)),typeof a.name<"u"&&(o.name=a.name),typeof a.title<"u"&&(o.title=a.title),typeof a.metadata<"u"&&(o.metadata=a.metadata),typeof a.callback<"u"&&(o.readCallback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResources[r]=o,o}_createRegisteredResourceTemplate(t,n,r,i,s){let o={resourceTemplate:r,title:n,metadata:i,readCallback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredResourceTemplates[t],a.name&&(this._registeredResourceTemplates[a.name]=o)),typeof a.title<"u"&&(o.title=a.title),typeof a.template<"u"&&(o.resourceTemplate=a.template),typeof a.metadata<"u"&&(o.metadata=a.metadata),typeof a.callback<"u"&&(o.readCallback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResourceTemplates[t]=o,o}_createRegisteredPrompt(t,n,r,i,s){let o={title:n,description:r,argsSchema:i===void 0?void 0:tU(i),callback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredPrompts[t],a.name&&(this._registeredPrompts[a.name]=o)),typeof a.title<"u"&&(o.title=a.title),typeof a.description<"u"&&(o.description=a.description),typeof a.argsSchema<"u"&&(o.argsSchema=tU(a.argsSchema)),typeof a.callback<"u"&&(o.callback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[t]=o,o}_createRegisteredTool(t,n,r,i,s,o,a,c,u){X0t(t);let l={title:n,description:r,inputSchema:Q0t(i),outputSchema:Q0t(s),annotations:o,execution:a,_meta:c,handler:u,enabled:!0,disable:()=>l.update({enabled:!1}),enable:()=>l.update({enabled:!0}),remove:()=>l.update({name:null}),update:d=>{typeof d.name<"u"&&d.name!==t&&(typeof d.name=="string"&&X0t(d.name),delete this._registeredTools[t],d.name&&(this._registeredTools[d.name]=l)),typeof d.title<"u"&&(l.title=d.title),typeof d.description<"u"&&(l.description=d.description),typeof d.paramsSchema<"u"&&(l.inputSchema=tU(d.paramsSchema)),typeof d.callback<"u"&&(l.handler=d.callback),typeof d.annotations<"u"&&(l.annotations=d.annotations),typeof d._meta<"u"&&(l._meta=d._meta),typeof d.enabled<"u"&&(l.enabled=d.enabled),this.sendToolListChanged()}};return this._registeredTools[t]=l,this.setToolRequestHandlers(),this.sendToolListChanged(),l}tool(t,...n){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let r,i,s,o;if(typeof n[0]=="string"&&(r=n.shift()),n.length>1){let c=n[0];zbe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!zbe(n[0])&&(o=n.shift())):typeof c=="object"&&c!==null&&(o=n.shift())}let a=n[0];return this._createRegisteredTool(t,void 0,r,i,s,o,{taskSupport:"forbidden"},void 0,a)}registerTool(t,n,r){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let{title:i,description:s,inputSchema:o,outputSchema:a,annotations:c,_meta:u}=n;return this._createRegisteredTool(t,i,s,o,a,c,{taskSupport:"forbidden"},u,r)}prompt(t,...n){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let r;typeof n[0]=="string"&&(r=n.shift());let i;n.length>1&&(i=n.shift());let s=n[0],o=this._createRegisteredPrompt(t,void 0,r,i,s);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}registerPrompt(t,n,r){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let{title:i,description:s,argsSchema:o}=n,a=this._createRegisteredPrompt(t,i,s,o,r);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),a}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(t,n){return this.server.sendLoggingMessage(t,n)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},wlr={type:"object",properties:{}};X1={completion:{values:[],hasMore:!1}}});var KOt={};Rr(KOt,{runRepairAgent:()=>Dlr});import{existsSync as zv,readdirSync as vTe,readFileSync as ATe}from"node:fs";import{join as $g}from"node:path";async function Dlr(e){let t;try{t=(await Promise.resolve().then(()=>(WOt(),VOt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=Llr(e),r=Ulr(e),i=12e4;try{let s=(async()=>{let c="";for await(let u of t({prompt:r,options:{model:"claude-haiku-4-5-20251001",cwd:e.intentDir,additionalDirectories:[e.studioDir],allowedTools:["Read","Write","Glob","Grep"],disallowedTools:["Bash","Agent","WebSearch","WebFetch","Edit"],permissionMode:"dontAsk",maxTurns:25,systemPrompt:n}}))u.type==="result"&&(c=u.result||"");return c})(),o=new Promise((c,u)=>setTimeout(()=>u(new Error("repair agent timed out")),i)),a=await Promise.race([s,o]);return{success:a.trim().length>0,summary:a||"Repair agent completed but produced no output",fallbackUsed:!1}}catch(s){return{success:!1,summary:`Repair agent failed: ${s instanceof Error?s.message:String(s)}`,fallbackUsed:!0}}}function Llr(e){let t=jlr(e.studioDir);return`You are a H\xB7AI\xB7K\xB7U intent repair agent. Your single purpose is to fix metadata and state in H\xB7AI\xB7K\xB7U intent files that are in an inconsistent state after migration from a legacy system. +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);r.cycles==="ref"&&o(l);continue}if(d.count>1&&r.reused==="ref"){o(l);continue}}let a=(l,d)=>{let f=this.seen.get(l),p=f.def??f.schema,h={...p};if(f.ref===null)return;let m=f.ref;if(f.ref=null,m){a(m,d);let g=this.seen.get(m).schema;g.$ref&&d.target==="draft-7"?(p.allOf=p.allOf??[],p.allOf.push(g)):(Object.assign(p,g),Object.assign(p,h))}f.isParent||this.override({zodSchema:l,jsonSchema:p,path:f.path??[]})};for(let l of[...this.seen.entries()].reverse())a(l[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,i.def);let u=r.external?.defs??{};for(let l of this.seen.entries()){let d=l[1];d.def&&d.defId&&(u[d.defId]=d.def)}!r.external&&Object.keys(u).length>0&&(this.target==="draft-2020-12"?c.$defs=u:c.definitions=u);try{return JSON.parse(JSON.stringify(c))}catch{throw new Error("Error converting schema to JSON.")}}};Vcr=ge("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");li.init(e,t),e.def=t,e.parse=(n,r)=>por(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>NTe(e,n,r),e.parseAsync=async(n,r)=>hor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>CTe(e,n,r),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>ty(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e)}),Wcr=ge("ZodMiniObject",(e,t)=>{VOt.init(e,t),Vcr.init(e,t),zr.defineLazy(e,"shape",()=>t.shape)});JOt={};eOt(JOt,{time:()=>nPt,duration:()=>iPt,datetime:()=>QOt,date:()=>ePt,ZodISOTime:()=>tPt,ZodISODuration:()=>rPt,ZodISODateTime:()=>XOt,ZodISODate:()=>$Ot});XOt=ge("ZodISODateTime",(e,t)=>{par.init(e,t),os.init(e,t)});$Ot=ge("ZodISODate",(e,t)=>{har.init(e,t),os.init(e,t)});tPt=ge("ZodISOTime",(e,t)=>{mar.init(e,t),os.init(e,t)});rPt=ge("ZodISODuration",(e,t)=>{gar.init(e,t),os.init(e,t)});sPt=(e,t)=>{NOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>dor(e,n)},flatten:{value:n=>lor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},QPi=ge("ZodError",sPt),V6=ge("ZodError",sPt,{Parent:Error}),Zcr=COt(V6),Jcr=MOt(V6),Xcr=DOt(V6),Qcr=LOt(V6),ss=ge("ZodType",(e,t)=>(li.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>ty(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>Zcr(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Xcr(e,n,r),e.parseAsync=async(n,r)=>Jcr(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Qcr(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Bur(n,r)),e.superRefine=n=>e.check(Gur(n)),e.overwrite=n=>e.check(CU(n)),e.optional=()=>yt(e),e.nullable=()=>Hxt(e),e.nullish=()=>yt(Hxt(e)),e.nonoptional=n=>Mur(e,n),e.array=()=>er(e),e.or=n=>Vi([e,n]),e.and=n=>DTe(e,n),e.transform=n=>iTe(e,fPt(n)),e.default=n=>Pur(e,n),e.prefault=n=>Cur(e,n),e.catch=n=>Lur(e,n),e.pipe=n=>iTe(e,n),e.readonly=()=>jur(e),e.describe=n=>{let r=e.clone();return mU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return mU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return mU.get(e);let r=e.clone();return mU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),oPt=ge("_ZodString",(e,t)=>{MTe.init(e,t),ss.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Pcr(...r)),e.includes=(...r)=>e.check(Mcr(...r)),e.startsWith=(...r)=>e.check(Dcr(...r)),e.endsWith=(...r)=>e.check(Lcr(...r)),e.min=(...r)=>e.check(w6(...r)),e.max=(...r)=>e.check(KOt(...r)),e.length=(...r)=>e.check(YOt(...r)),e.nonempty=(...r)=>e.check(w6(1,...r)),e.lowercase=r=>e.check(Ncr(r)),e.uppercase=r=>e.check(Ccr(r)),e.trim=()=>e.check(Fcr()),e.normalize=(...r)=>e.check(Ucr(...r)),e.toLowerCase=()=>e.check(jcr()),e.toUpperCase=()=>e.check(Hcr())}),$cr=ge("ZodString",(e,t)=>{MTe.init(e,t),oPt.init(e,t),e.email=n=>e.check(ecr(eur,n)),e.url=n=>e.check(scr(tur,n)),e.jwt=n=>e.check(_cr(gur,n)),e.emoji=n=>e.check(ocr(nur,n)),e.guid=n=>e.check(Cxt(Fxt,n)),e.uuid=n=>e.check(tcr(p6,n)),e.uuidv4=n=>e.check(ncr(p6,n)),e.uuidv6=n=>e.check(rcr(p6,n)),e.uuidv7=n=>e.check(icr(p6,n)),e.nanoid=n=>e.check(acr(rur,n)),e.guid=n=>e.check(Cxt(Fxt,n)),e.cuid=n=>e.check(ccr(iur,n)),e.cuid2=n=>e.check(ucr(sur,n)),e.ulid=n=>e.check(lcr(our,n)),e.base64=n=>e.check(ycr(pur,n)),e.base64url=n=>e.check(Scr(hur,n)),e.xid=n=>e.check(dcr(aur,n)),e.ksuid=n=>e.check(fcr(cur,n)),e.ipv4=n=>e.check(pcr(uur,n)),e.ipv6=n=>e.check(hcr(lur,n)),e.cidrv4=n=>e.check(mcr(dur,n)),e.cidrv6=n=>e.check(gcr(fur,n)),e.e164=n=>e.check(Ecr(mur,n)),e.datetime=n=>e.check(QOt(n)),e.date=n=>e.check(ePt(n)),e.time=n=>e.check(nPt(n)),e.duration=n=>e.check(iPt(n))});os=ge("ZodStringFormat",(e,t)=>{zi.init(e,t),oPt.init(e,t)}),eur=ge("ZodEmail",(e,t)=>{iar.init(e,t),os.init(e,t)}),Fxt=ge("ZodGUID",(e,t)=>{nar.init(e,t),os.init(e,t)}),p6=ge("ZodUUID",(e,t)=>{rar.init(e,t),os.init(e,t)}),tur=ge("ZodURL",(e,t)=>{sar.init(e,t),os.init(e,t)}),nur=ge("ZodEmoji",(e,t)=>{oar.init(e,t),os.init(e,t)}),rur=ge("ZodNanoID",(e,t)=>{aar.init(e,t),os.init(e,t)}),iur=ge("ZodCUID",(e,t)=>{car.init(e,t),os.init(e,t)}),sur=ge("ZodCUID2",(e,t)=>{uar.init(e,t),os.init(e,t)}),our=ge("ZodULID",(e,t)=>{lar.init(e,t),os.init(e,t)}),aur=ge("ZodXID",(e,t)=>{dar.init(e,t),os.init(e,t)}),cur=ge("ZodKSUID",(e,t)=>{far.init(e,t),os.init(e,t)}),uur=ge("ZodIPv4",(e,t)=>{yar.init(e,t),os.init(e,t)}),lur=ge("ZodIPv6",(e,t)=>{Sar.init(e,t),os.init(e,t)}),dur=ge("ZodCIDRv4",(e,t)=>{Ear.init(e,t),os.init(e,t)}),fur=ge("ZodCIDRv6",(e,t)=>{_ar.init(e,t),os.init(e,t)}),pur=ge("ZodBase64",(e,t)=>{bar.init(e,t),os.init(e,t)}),hur=ge("ZodBase64URL",(e,t)=>{Aar.init(e,t),os.init(e,t)}),mur=ge("ZodE164",(e,t)=>{Rar.init(e,t),os.init(e,t)}),gur=ge("ZodJWT",(e,t)=>{kar.init(e,t),os.init(e,t)}),aPt=ge("ZodNumber",(e,t)=>{zOt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check(Dxt(r,i)),e.gte=(r,i)=>e.check(Fbe(r,i)),e.min=(r,i)=>e.check(Fbe(r,i)),e.lt=(r,i)=>e.check(Mxt(r,i)),e.lte=(r,i)=>e.check(Ube(r,i)),e.max=(r,i)=>e.check(Ube(r,i)),e.int=r=>e.check(jxt(r)),e.safe=r=>e.check(jxt(r)),e.positive=r=>e.check(Dxt(0,r)),e.nonnegative=r=>e.check(Fbe(0,r)),e.negative=r=>e.check(Mxt(0,r)),e.nonpositive=r=>e.check(Ube(0,r)),e.multipleOf=(r,i)=>e.check(Lxt(r,i)),e.step=(r,i)=>e.check(Lxt(r,i)),e.finite=()=>e;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??.5),e.isFinite=!0,e.format=n.format??null});yur=ge("ZodNumberFormat",(e,t)=>{Iar.init(e,t),aPt.init(e,t)});Sur=ge("ZodBoolean",(e,t)=>{xar.init(e,t),ss.init(e,t)});Eur=ge("ZodNull",(e,t)=>{Oar.init(e,t),ss.init(e,t)});_ur=ge("ZodUnknown",(e,t)=>{Par.init(e,t),ss.init(e,t)});bur=ge("ZodNever",(e,t)=>{Nar.init(e,t),ss.init(e,t)});vur=ge("ZodArray",(e,t)=>{Car.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(w6(n,r)),e.nonempty=n=>e.check(w6(1,n)),e.max=(n,r)=>e.check(KOt(n,r)),e.length=(n,r)=>e.check(YOt(n,r)),e.unwrap=()=>e.element});uPt=ge("ZodObject",(e,t)=>{VOt.init(e,t),ss.init(e,t),zr.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>vc(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:xo()}),e.loose=()=>e.clone({...e._zod.def,catchall:xo()}),e.strict=()=>e.clone({...e._zod.def,catchall:Tur()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>zr.extend(e,n),e.merge=n=>zr.merge(e,n),e.pick=n=>zr.pick(e,n),e.omit=n=>zr.omit(e,n),e.partial=(...n)=>zr.partial(pPt,e,n[0]),e.required=(...n)=>zr.required(hPt,e,n[0])});lPt=ge("ZodUnion",(e,t)=>{WOt.init(e,t),ss.init(e,t),e.options=t.options});Aur=ge("ZodDiscriminatedUnion",(e,t)=>{lPt.init(e,t),Mar.init(e,t)});Rur=ge("ZodIntersection",(e,t)=>{Dar.init(e,t),ss.init(e,t)});wur=ge("ZodRecord",(e,t)=>{Lar.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});rTe=ge("ZodEnum",(e,t)=>{Uar.init(e,t),ss.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new rTe({...t,checks:[],...zr.normalizeParams(i),entries:s})},e.exclude=(r,i)=>{let s={...t.entries};for(let o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new rTe({...t,checks:[],...zr.normalizeParams(i),entries:s})}});kur=ge("ZodLiteral",(e,t)=>{Far.init(e,t),ss.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});Iur=ge("ZodTransform",(e,t)=>{jar.init(e,t),ss.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(zr.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(zr.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});pPt=ge("ZodOptional",(e,t)=>{Har.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});xur=ge("ZodNullable",(e,t)=>{qar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Our=ge("ZodDefault",(e,t)=>{Bar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Nur=ge("ZodPrefault",(e,t)=>{Gar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});hPt=ge("ZodNonOptional",(e,t)=>{zar.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});Dur=ge("ZodCatch",(e,t)=>{Var.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});Uur=ge("ZodPipe",(e,t)=>{War.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});Fur=ge("ZodReadonly",(e,t)=>{Kar.init(e,t),ss.init(e,t)});mPt=ge("ZodCustom",(e,t)=>{Yar.init(e,t),ss.init(e,t)});$g(Xar());yPt="2025-11-25",zur=[yPt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Zg="io.modelcontextprotocol/related-task",W6="2.0",im=qur(e=>e!==null&&(typeof e=="object"||typeof e=="function")),SPt=Vi([he(),ui().int()]),EPt=he(),Vur=yp({ttl:Vi([ui(),cPt()]).optional(),pollInterval:ui().optional()}),LTe=yp({taskId:he()}),Wur=yp({progressToken:SPt.optional(),[Zg]:LTe.optional()}),$u=yp({task:Vur.optional(),_meta:Wur.optional()}),Fa=Ge({method:he(),params:$u.optional()}),Zv=yp({_meta:Ge({[Zg]:yt(LTe)}).passthrough().optional()}),Zd=Ge({method:he(),params:Zv.optional()}),Ac=yp({_meta:yp({[Zg]:LTe.optional()}).optional()}),K6=Vi([he(),ui().int()]),_Pt=Ge({jsonrpc:St(W6),id:K6,...Fa.shape}).strict(),qxt=e=>_Pt.safeParse(e).success,bPt=Ge({jsonrpc:St(W6),...Zd.shape}).strict(),Kur=e=>bPt.safeParse(e).success,TPt=Ge({jsonrpc:St(W6),id:K6,result:Ac}).strict(),h6=e=>TPt.safeParse(e).success;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Ft||(Ft={}));vPt=Ge({jsonrpc:St(W6),id:K6,error:Ge({code:ui().int(),message:he(),data:yt(xo())})}).strict(),Yur=e=>vPt.safeParse(e).success,$Pi=Vi([_Pt,bPt,TPt,vPt]),UTe=Ac.strict(),Zur=Zv.extend({requestId:K6,reason:he().optional()}),FTe=Zd.extend({method:St("notifications/cancelled"),params:Zur}),Jur=Ge({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),DU=Ge({icons:er(Jur).optional()}),Hx=Ge({name:he(),title:he().optional()}),APt=Hx.extend({...Hx.shape,...DU.shape,version:he(),websiteUrl:he().optional()}),Xur=DTe(Ge({applyDefaults:Tc().optional()}),Oo(he(),xo())),Qur=gPt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,DTe(Ge({form:Xur.optional(),url:im.optional()}),Oo(he(),xo()).optional())),$ur=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({sampling:yt(Ge({createMessage:yt(Ge({}).passthrough())}).passthrough()),elicitation:yt(Ge({create:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),elr=Ge({list:yt(Ge({}).passthrough()),cancel:yt(Ge({}).passthrough()),requests:yt(Ge({tools:yt(Ge({call:yt(Ge({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),tlr=Ge({experimental:Oo(he(),im).optional(),sampling:Ge({context:im.optional(),tools:im.optional()}).optional(),elicitation:Qur.optional(),roots:Ge({listChanged:Tc().optional()}).optional(),tasks:yt($ur)}),nlr=$u.extend({protocolVersion:he(),capabilities:tlr,clientInfo:APt}),RPt=Fa.extend({method:St("initialize"),params:nlr}),rlr=Ge({experimental:Oo(he(),im).optional(),logging:im.optional(),completions:im.optional(),prompts:yt(Ge({listChanged:yt(Tc())})),resources:Ge({subscribe:Tc().optional(),listChanged:Tc().optional()}).optional(),tools:Ge({listChanged:Tc().optional()}).optional(),tasks:yt(elr)}).passthrough(),ilr=Ac.extend({protocolVersion:he(),capabilities:rlr,serverInfo:APt,instructions:he().optional()}),wPt=Zd.extend({method:St("notifications/initialized")}),jTe=Fa.extend({method:St("ping")}),slr=Ge({progress:ui(),total:yt(ui()),message:yt(he())}),olr=Ge({...Zv.shape,...slr.shape,progressToken:SPt}),HTe=Zd.extend({method:St("notifications/progress"),params:olr}),alr=$u.extend({cursor:EPt.optional()}),LU=Fa.extend({params:alr.optional()}),UU=Ac.extend({nextCursor:yt(EPt)}),FU=Ge({taskId:he(),status:vc(["working","input_required","completed","failed","cancelled"]),ttl:Vi([ui(),cPt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),Y6=Ac.extend({task:FU}),clr=Zv.merge(FU),I6=Zd.extend({method:St("notifications/tasks/status"),params:clr}),qTe=Fa.extend({method:St("tasks/get"),params:$u.extend({taskId:he()})}),BTe=Ac.merge(FU),GTe=Fa.extend({method:St("tasks/result"),params:$u.extend({taskId:he()})}),zTe=LU.extend({method:St("tasks/list")}),VTe=UU.extend({tasks:er(FU)}),ulr=Fa.extend({method:St("tasks/cancel"),params:$u.extend({taskId:he()})}),llr=Ac.merge(FU),kPt=Ge({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),IPt=kPt.extend({text:he()}),WTe=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),xPt=kPt.extend({blob:WTe}),Vx=Ge({audience:er(vc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:JOt.datetime({offset:!0}).optional()}),OPt=Ge({...Hx.shape,...DU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:Vx.optional(),_meta:yt(yp({}))}),dlr=Ge({...Hx.shape,...DU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:Vx.optional(),_meta:yt(yp({}))}),sTe=LU.extend({method:St("resources/list")}),flr=UU.extend({resources:er(OPt)}),oTe=LU.extend({method:St("resources/templates/list")}),plr=UU.extend({resourceTemplates:er(dlr)}),KTe=$u.extend({uri:he()}),hlr=KTe,aTe=Fa.extend({method:St("resources/read"),params:hlr}),mlr=Ac.extend({contents:er(Vi([IPt,xPt]))}),glr=Zd.extend({method:St("notifications/resources/list_changed")}),ylr=KTe,Slr=Fa.extend({method:St("resources/subscribe"),params:ylr}),Elr=KTe,_lr=Fa.extend({method:St("resources/unsubscribe"),params:Elr}),blr=Zv.extend({uri:he()}),Tlr=Zd.extend({method:St("notifications/resources/updated"),params:blr}),vlr=Ge({name:he(),description:yt(he()),required:yt(Tc())}),Alr=Ge({...Hx.shape,...DU.shape,description:yt(he()),arguments:yt(er(vlr)),_meta:yt(yp({}))}),cTe=LU.extend({method:St("prompts/list")}),Rlr=UU.extend({prompts:er(Alr)}),wlr=$u.extend({name:he(),arguments:Oo(he(),he()).optional()}),uTe=Fa.extend({method:St("prompts/get"),params:wlr}),YTe=Ge({type:St("text"),text:he(),annotations:Vx.optional(),_meta:Oo(he(),xo()).optional()}),ZTe=Ge({type:St("image"),data:WTe,mimeType:he(),annotations:Vx.optional(),_meta:Oo(he(),xo()).optional()}),JTe=Ge({type:St("audio"),data:WTe,mimeType:he(),annotations:Vx.optional(),_meta:Oo(he(),xo()).optional()}),klr=Ge({type:St("tool_use"),name:he(),id:he(),input:Ge({}).passthrough(),_meta:yt(Ge({}).passthrough())}).passthrough(),Ilr=Ge({type:St("resource"),resource:Vi([IPt,xPt]),annotations:Vx.optional(),_meta:Oo(he(),xo()).optional()}),xlr=OPt.extend({type:St("resource_link")}),XTe=Vi([YTe,ZTe,JTe,xlr,Ilr]),Olr=Ge({role:vc(["user","assistant"]),content:XTe}),Plr=Ac.extend({description:yt(he()),messages:er(Olr)}),Nlr=Zd.extend({method:St("notifications/prompts/list_changed")}),Clr=Ge({title:he().optional(),readOnlyHint:Tc().optional(),destructiveHint:Tc().optional(),idempotentHint:Tc().optional(),openWorldHint:Tc().optional()}),Mlr=Ge({taskSupport:vc(["required","optional","forbidden"]).optional()}),PPt=Ge({...Hx.shape,...DU.shape,description:he().optional(),inputSchema:Ge({type:St("object"),properties:Oo(he(),im).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:Ge({type:St("object"),properties:Oo(he(),im).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(Clr),execution:yt(Mlr),_meta:Oo(he(),xo()).optional()}),lTe=LU.extend({method:St("tools/list")}),Dlr=UU.extend({tools:er(PPt)}),QTe=Ac.extend({content:er(XTe).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(Tc())}),eNi=QTe.or(Ac.extend({toolResult:xo()})),Llr=$u.extend({name:he(),arguments:yt(Oo(he(),xo()))}),x6=Fa.extend({method:St("tools/call"),params:Llr}),Ulr=Zd.extend({method:St("notifications/tools/list_changed")}),O6=vc(["debug","info","notice","warning","error","critical","alert","emergency"]),Flr=$u.extend({level:O6}),NPt=Fa.extend({method:St("logging/setLevel"),params:Flr}),jlr=Zv.extend({level:O6,logger:he().optional(),data:xo()}),Hlr=Zd.extend({method:St("notifications/message"),params:jlr}),qlr=Ge({name:he().optional()}),Blr=Ge({hints:yt(er(qlr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),Glr=Ge({mode:yt(vc(["auto","required","none"]))}),zlr=Ge({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(XTe).default([]),structuredContent:Ge({}).passthrough().optional(),isError:yt(Tc()),_meta:yt(Ge({}).passthrough())}).passthrough(),Vlr=dPt("type",[YTe,ZTe,JTe]),P6=dPt("type",[YTe,ZTe,JTe,klr,zlr]),Wlr=Ge({role:vc(["user","assistant"]),content:Vi([P6,er(P6)]),_meta:yt(Ge({}).passthrough())}).passthrough(),Klr=$u.extend({messages:er(Wlr),modelPreferences:Blr.optional(),systemPrompt:he().optional(),includeContext:vc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:im.optional(),tools:yt(er(PPt)),toolChoice:yt(Glr)}),Ylr=Fa.extend({method:St("sampling/createMessage"),params:Klr}),CPt=Ac.extend({model:he(),stopReason:yt(vc(["endTurn","stopSequence","maxTokens"]).or(he())),role:vc(["user","assistant"]),content:Vlr}),MPt=Ac.extend({model:he(),stopReason:yt(vc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:vc(["user","assistant"]),content:Vi([P6,er(P6)])}),Zlr=Ge({type:St("boolean"),title:he().optional(),description:he().optional(),default:Tc().optional()}),Jlr=Ge({type:St("string"),title:he().optional(),description:he().optional(),minLength:ui().optional(),maxLength:ui().optional(),format:vc(["email","uri","date","date-time"]).optional(),default:he().optional()}),Xlr=Ge({type:vc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),Qlr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),$lr=Ge({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(Ge({const:he(),title:he()})),default:he().optional()}),edr=Ge({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),tdr=Vi([Qlr,$lr]),ndr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({type:St("string"),enum:er(he())}),default:er(he()).optional()}),rdr=Ge({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:Ge({anyOf:er(Ge({const:he(),title:he()}))}),default:er(he()).optional()}),idr=Vi([ndr,rdr]),sdr=Vi([edr,tdr,idr]),odr=Vi([sdr,Zlr,Jlr,Xlr]),adr=$u.extend({mode:St("form").optional(),message:he(),requestedSchema:Ge({type:St("object"),properties:Oo(he(),odr),required:er(he()).optional()})}),cdr=$u.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),udr=Vi([adr,cdr]),ldr=Fa.extend({method:St("elicitation/create"),params:udr}),ddr=Zv.extend({elicitationId:he()}),fdr=Zd.extend({method:St("notifications/elicitation/complete"),params:ddr}),dTe=Ac.extend({action:vc(["accept","decline","cancel"]),content:gPt(e=>e===null?void 0:e,Oo(he(),Vi([he(),ui(),Tc(),er(he())])).optional())}),pdr=Ge({type:St("ref/resource"),uri:he()}),hdr=Ge({type:St("ref/prompt"),name:he()}),mdr=$u.extend({ref:Vi([hdr,pdr]),argument:Ge({name:he(),value:he()}),context:Ge({arguments:Oo(he(),he()).optional()}).optional()}),fTe=Fa.extend({method:St("completion/complete"),params:mdr});Sdr=Ac.extend({completion:yp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(Tc())})}),Edr=Ge({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),_dr=Fa.extend({method:St("roots/list")}),DPt=Ac.extend({roots:er(Edr)}),bdr=Zd.extend({method:St("notifications/roots/list_changed")}),tNi=Vi([jTe,RPt,fTe,NPt,uTe,cTe,sTe,oTe,aTe,Slr,_lr,x6,lTe,qTe,GTe,zTe]),nNi=Vi([FTe,HTe,wPt,bdr,I6]),rNi=Vi([UTe,CPt,MPt,dTe,DPt,BTe,VTe,Y6]),iNi=Vi([jTe,Ylr,ldr,_dr,qTe,GTe,zTe]),sNi=Vi([FTe,HTe,Hlr,Tlr,glr,Ulr,Nlr,I6,fdr]),oNi=Vi([UTe,ilr,Sdr,Plr,Rlr,flr,plr,mlr,QTe,Dlr,BTe,VTe,Y6]),_t=class e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===Ft.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new pTe(i.elicitations,n)}return new e(t,n,r)}},pTe=class extends _t{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Ft.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){var t,n;return(n=(t=this.data)===null||t===void 0?void 0:t.elicitations)!==null&&n!==void 0?n:[]}};Tdr=Symbol("Let zodToJsonSchema decide on which parser to use"),Bxt={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},vdr=e=>typeof e=="string"?{...Bxt,name:e}:{...Bxt,...e},Adr=e=>{let t=vdr(e),n=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([r,i])=>[i._def,{def:i._def,path:[...t.basePath,t.definitionPath,r],jsonSchema:void 0}]))}};UPt=(e,t)=>{let n=0;for(;n_r(e.innerType._def,t);xdr=(e,t)=>{let n={type:"integer",format:"unix-time"};if(t.target==="openApi3")return n;for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minimum",r.value,r.message,t);break;case"max":Cr(n,"maximum",r.value,r.message,t);break}return n};Cdr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;qbe=void 0,fp={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(qbe===void 0&&(qbe=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),qbe),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Ldr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");N6={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};zxt=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((r,i)=>_r(r._def,{...t,currentPath:[...t.currentPath,"anyOf",`${i}`]})).filter(r=>!!r&&(!t.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return n.length?{anyOf:n}:void 0};Ydr=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return _r(e.innerType._def,t);let n=_r(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:Xu(t)},n]}:Xu(t)},Zdr=(e,t)=>{if(t.pipeStrategy==="input")return _r(e.in._def,t);if(t.pipeStrategy==="output")return _r(e.out._def,t);let n=_r(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),r=_r(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,r].filter(i=>i!==void 0)}};tfr=(e,t)=>_r(e.innerType._def,t),nfr=(e,t,n)=>{switch(t){case Le.ZodString:return HPt(e,n);case Le.ZodNumber:return zdr(e,n);case Le.ZodObject:return Vdr(e,n);case Le.ZodBigInt:return wdr(e,n);case Le.ZodBoolean:return kdr();case Le.ZodDate:return jPt(e,n);case Le.ZodUndefined:return $dr(n);case Le.ZodNull:return qdr(n);case Le.ZodArray:return Rdr(e,n);case Le.ZodUnion:case Le.ZodDiscriminatedUnion:return Bdr(e,n);case Le.ZodIntersection:return Mdr(e,n);case Le.ZodTuple:return Qdr(e,n);case Le.ZodRecord:return qPt(e,n);case Le.ZodLiteral:return Ddr(e,n);case Le.ZodEnum:return Ndr(e);case Le.ZodNativeEnum:return jdr(e);case Le.ZodNullable:return Gdr(e,n);case Le.ZodOptional:return Ydr(e,n);case Le.ZodMap:return Fdr(e,n);case Le.ZodSet:return Xdr(e,n);case Le.ZodLazy:return()=>e.getter()._def;case Le.ZodPromise:return Jdr(e,n);case Le.ZodNaN:case Le.ZodNever:return Hdr(n);case Le.ZodEffects:return Pdr(e,n);case Le.ZodAny:return Xu(n);case Le.ZodUnknown:return efr(n);case Le.ZodDefault:return Odr(e,n);case Le.ZodBranded:return FPt(e,n);case Le.ZodReadonly:return tfr(e,n);case Le.ZodCatch:return Idr(e,n);case Le.ZodPipeline:return Zdr(e,n);case Le.ZodFunction:case Le.ZodVoid:case Le.ZodSymbol:return;default:return(r=>{})(t)}};rfr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:UPt(t.currentPath,e.path)};case"none":case"seen":return e.path.lengtht.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Xu(t)):t.$refStrategy==="seen"?Xu(t):void 0}},ifr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),sfr=(e,t)=>{let n=Adr(t),r=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((c,[u,l])=>({...c,[u]:_r(l._def,{...n,currentPath:[...n.basePath,n.definitionPath,u]},!0)??Xu(n)}),{}):void 0,i=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,s=_r(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??Xu(n),o=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;o!==void 0&&(s.title=o),n.flags.hasReferencedOpenAiAnyType&&(r||(r={}),r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:n.$refStrategy==="relative"?"1":[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join("/")}}));let a=i===void 0?r?{...s,[n.definitionPath]:r}:s:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,i].join("/"),[n.definitionPath]:{...r,[i]:s}};return n.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in a||"oneOf"in a||"allOf"in a||"type"in a&&Array.isArray(a.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),a};afr=6e4,hTe=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(FTe,n=>{this._oncancel(n)}),this.setNotificationHandler(HTe,n=>{this._onprogress(n)}),this.setRequestHandler(jTe,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(qTe,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new _t(Ft.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(GTe,async(n,r)=>{let i=async()=>{var s;let o=n.params.taskId;if(this._taskMessageQueue){let c;for(;c=await this._taskMessageQueue.dequeue(o,r.sessionId);){if(c.type==="response"||c.type==="error"){let u=c.message,l=u.id,d=this._requestResolvers.get(l);if(d)if(this._requestResolvers.delete(l),c.type==="response")d(u);else{let f=u,p=new _t(f.error.code,f.error.message,f.error.data);d(p)}else{let f=c.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${l}`))}continue}await((s=this._transport)===null||s===void 0?void 0:s.send(c.message,{relatedRequestId:r.requestId}))}}let a=await this._taskStore.getTask(o,r.sessionId);if(!a)throw new _t(Ft.InvalidParams,`Task not found: ${o}`);if(!Wv(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if(Wv(a.status)){let c=await this._taskStore.getTaskResult(o,r.sessionId);return this._clearTaskQueue(o),{...c,_meta:{...c._meta,[Zg]:{taskId:o}}}}return await i()};return await i()}),this.setRequestHandler(zTe,async(n,r)=>{var i;try{let{tasks:s,nextCursor:o}=await this._taskStore.listTasks((i=n.params)===null||i===void 0?void 0:i.cursor,r.sessionId);return{tasks:s,nextCursor:o,_meta:{}}}catch(s){throw new _t(Ft.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(ulr,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new _t(Ft.InvalidParams,`Task not found: ${n.params.taskId}`);if(Wv(i.status))throw new _t(Ft.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new _t(Ft.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof _t?i:new _t(Ft.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){let n=this._requestHandlerAbortControllers.get(t.params.requestId);n?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),_t.fromError(Ft.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){var n,r,i;this._transport=t;let s=(n=this.transport)===null||n===void 0?void 0:n.onclose;this._transport.onclose=()=>{s?.(),this._onclose()};let o=(r=this.transport)===null||r===void 0?void 0:r.onerror;this._transport.onerror=c=>{o?.(c),this._onerror(c)};let a=(i=this._transport)===null||i===void 0?void 0:i.onmessage;this._transport.onmessage=(c,u)=>{a?.(c,u),h6(c)||Yur(c)?this._onresponse(c):qxt(c)?this._onrequest(c,u):Kur(c)?this._onnotification(c):this._onerror(new Error(`Unknown message type: ${JSON.stringify(c)}`))},await this._transport.start()}_onclose(){var t;let n=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=_t.fromError(Ft.ConnectionClosed,"Connection closed");this._transport=void 0,(t=this.onclose)===null||t===void 0||t.call(this);for(let i of n.values())i(r)}_onerror(t){var n;(n=this.onerror)===null||n===void 0||n.call(this,t)}_onnotification(t){var n;let r=(n=this._notificationHandlers.get(t.method))!==null&&n!==void 0?n:this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(i=>this._onerror(new Error(`Uncaught error in notification handler: ${i}`)))}_onrequest(t,n){var r,i,s,o,a,c;let u=(r=this._requestHandlers.get(t.method))!==null&&r!==void 0?r:this.fallbackRequestHandler,l=this._transport,d=(o=(s=(i=t.params)===null||i===void 0?void 0:i._meta)===null||s===void 0?void 0:s[Zg])===null||o===void 0?void 0:o.taskId;if(u===void 0){let g={jsonrpc:"2.0",id:t.id,error:{code:Ft.MethodNotFound,message:"Method not found"}};d&&this._taskMessageQueue?this._enqueueTaskMessage(d,{type:"error",message:g,timestamp:Date.now()},l?.sessionId).catch(y=>this._onerror(new Error(`Failed to enqueue error response: ${y}`))):l?.send(g).catch(y=>this._onerror(new Error(`Failed to send an error response: ${y}`)));return}let f=new AbortController;this._requestHandlerAbortControllers.set(t.id,f);let p=(a=t.params)===null||a===void 0?void 0:a.task,h=this._taskStore?this.requestTaskStore(t,l?.sessionId):void 0,m={signal:f.signal,sessionId:l?.sessionId,_meta:(c=t.params)===null||c===void 0?void 0:c._meta,sendNotification:async g=>{let y={relatedRequestId:t.id};d&&(y.relatedTask={taskId:d}),await this.notification(g,y)},sendRequest:async(g,y,E)=>{var S,_;let b={...E,relatedRequestId:t.id};d&&!b.relatedTask&&(b.relatedTask={taskId:d});let T=(_=(S=b.relatedTask)===null||S===void 0?void 0:S.taskId)!==null&&_!==void 0?_:d;return T&&h&&await h.updateTaskStatus(T,"input_required"),await this.request(g,y,b)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:d,taskStore:h,taskRequestedTtl:p?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{p&&this.assertTaskHandlerCapability(t.method)}).then(()=>u(t,m)).then(async g=>{if(f.signal.aborted)return;let y={result:g,jsonrpc:"2.0",id:t.id};d&&this._taskMessageQueue?await this._enqueueTaskMessage(d,{type:"response",message:y,timestamp:Date.now()},l?.sessionId):await l?.send(y)},async g=>{var y;if(f.signal.aborted)return;let E={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(g.code)?g.code:Ft.InternalError,message:(y=g.message)!==null&&y!==void 0?y:"Internal error",...g.data!==void 0&&{data:g.data}}};d&&this._taskMessageQueue?await this._enqueueTaskMessage(d,{type:"error",message:E,timestamp:Date.now()},l?.sessionId):await l?.send(E)}).catch(g=>this._onerror(new Error(`Failed to send response: ${g}`))).finally(()=>{this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...r}=t.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(r)}_onresponse(t){let n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),h6(t))r(t);else{let o=new _t(t.error.code,t.error.message,t.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(h6(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),h6(t))i(t);else{let o=_t.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){var t;await((t=this._transport)===null||t===void 0?void 0:t.close())}async*requestStream(t,n,r){var i,s,o,a;let{task:c}=r??{};if(!c){try{yield{type:"result",result:await this.request(t,n,r)}}catch(l){yield{type:"error",error:l instanceof _t?l:new _t(Ft.InternalError,String(l))}}return}let u;try{let l=await this.request(t,Y6,r);if(l.task)u=l.task.taskId,yield{type:"taskCreated",task:l.task};else throw new _t(Ft.InternalError,"Task creation did not return a task");for(;;){let d=await this.getTask({taskId:u},r);if(yield{type:"taskStatus",task:d},Wv(d.status)){d.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)}:d.status==="failed"?yield{type:"error",error:new _t(Ft.InternalError,`Task ${u} failed`)}:d.status==="cancelled"&&(yield{type:"error",error:new _t(Ft.InternalError,`Task ${u} was cancelled`)});return}if(d.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)};return}let f=(o=(i=d.pollInterval)!==null&&i!==void 0?i:(s=this._options)===null||s===void 0?void 0:s.defaultTaskPollInterval)!==null&&o!==void 0?o:1e3;await new Promise(p=>setTimeout(p,f)),(a=r?.signal)===null||a===void 0||a.throwIfAborted()}}catch(l){yield{type:"error",error:l instanceof _t?l:new _t(Ft.InternalError,String(l))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{var d,f,p,h,m,g,y;let E=x=>{l(x)};if(!this._transport){E(new Error("Not connected"));return}if(((d=this._options)===null||d===void 0?void 0:d.enforceStrictCapabilities)===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(x){E(x);return}(f=r?.signal)===null||f===void 0||f.throwIfAborted();let S=this._requestMessageId++,_={...t,jsonrpc:"2.0",id:S};r?.onprogress&&(this._progressHandlers.set(S,r.onprogress),_.params={...t.params,_meta:{...((p=t.params)===null||p===void 0?void 0:p._meta)||{},progressToken:S}}),a&&(_.params={..._.params,task:a}),c&&(_.params={..._.params,_meta:{...((h=_.params)===null||h===void 0?void 0:h._meta)||{},[Zg]:c}});let b=x=>{var k;this._responseHandlers.delete(S),this._progressHandlers.delete(S),this._cleanupTimeout(S),(k=this._transport)===null||k===void 0||k.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:S,reason:String(x)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(N=>this._onerror(new Error(`Failed to send cancellation: ${N}`)));let P=x instanceof _t?x:new _t(Ft.RequestTimeout,String(x));l(P)};this._responseHandlers.set(S,x=>{var k;if(!(!((k=r?.signal)===null||k===void 0)&&k.aborted)){if(x instanceof Error)return l(x);try{let P=yU(n,x.result);P.success?u(P.data):l(P.error)}catch(P){l(P)}}}),(m=r?.signal)===null||m===void 0||m.addEventListener("abort",()=>{var x;b((x=r?.signal)===null||x===void 0?void 0:x.reason)});let T=(g=r?.timeout)!==null&&g!==void 0?g:afr,A=()=>b(_t.fromError(Ft.RequestTimeout,"Request timed out",{timeout:T}));this._setupTimeout(S,T,r?.maxTotalTimeout,A,(y=r?.resetTimeoutOnProgress)!==null&&y!==void 0?y:!1);let R=c?.taskId;if(R){let x=k=>{let P=this._responseHandlers.get(S);P?P(k):this._onerror(new Error(`Response handler missing for side-channeled request ${S}`))};this._requestResolvers.set(S,x),this._enqueueTaskMessage(R,{type:"request",message:_,timestamp:Date.now()}).catch(k=>{this._cleanupTimeout(S),l(k)})}else this._transport.send(_,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(x=>{this._cleanupTimeout(S),l(x)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},BTe,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},VTe,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},llr,n)}async notification(t,n){var r,i,s,o,a;if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let c=(r=n?.relatedTask)===null||r===void 0?void 0:r.taskId;if(c){let f={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...((i=t.params)===null||i===void 0?void 0:i._meta)||{},[Zg]:n.relatedTask}}};await this._enqueueTaskMessage(c,{type:"notification",message:f,timestamp:Date.now()});return}if(((o=(s=this._options)===null||s===void 0?void 0:s.debouncedNotificationMethods)!==null&&o!==void 0?o:[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{var f,p;if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let h={...t,jsonrpc:"2.0"};n?.relatedTask&&(h={...h,params:{...h.params,_meta:{...((f=h.params)===null||f===void 0?void 0:f._meta)||{},[Zg]:n.relatedTask}}}),(p=this._transport)===null||p===void 0||p.send(h,n).catch(m=>this._onerror(m))});return}let d={...t,jsonrpc:"2.0"};n?.relatedTask&&(d={...d,params:{...d.params,_meta:{...((a=d.params)===null||a===void 0?void 0:a._meta)||{},[Zg]:n.relatedTask}}}),await this._transport.send(d,n)}setRequestHandler(t,n){let r=Wxt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Kxt(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=Wxt(t);this._notificationHandlers.set(r,i=>{let s=Kxt(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){var i;if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let s=(i=this._options)===null||i===void 0?void 0:i.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,s)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&qxt(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new _t(Ft.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){var r,i,s;let o=(i=(r=this._options)===null||r===void 0?void 0:r.defaultTaskPollInterval)!==null&&i!==void 0?i:1e3;try{let a=await((s=this._taskStore)===null||s===void 0?void 0:s.getTask(t));a?.pollInterval&&(o=a.pollInterval)}catch{}return new Promise((a,c)=>{if(n.aborted){c(new _t(Ft.InvalidRequest,"Request cancelled"));return}let u=setTimeout(a,o);n.addEventListener("abort",()=>{clearTimeout(u),c(new _t(Ft.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{let s=await r.getTask(i,n);if(!s)throw new _t(Ft.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await r.storeTaskResult(i,s,o,n);let a=await r.getTask(i,n);if(a){let c=I6.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Wv(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new _t(Ft.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Wv(a.status))throw new _t(Ft.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=I6.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Wv(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};ufr=$xt(aOt(),1),lfr=$xt(Gnr(),1);mTe=class{constructor(t){this._ajv=t??dfr()}getValidator(t){var n;let r="$id"in t&&typeof t.$id=="string"?(n=this._ajv.getSchema(t.$id))!==null&&n!==void 0?n:this._ajv.compile(t):this._ajv.compile(t);return i=>r(i)?{valid:!0,data:i,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}},gTe=class{constructor(t){this._server=t}requestStream(t,n,r){return this._server.requestStream(t,n,r)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,r){return this._server.getTaskResult({taskId:t},n,r)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}};yTe=class extends hTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(O6.options.map((s,o)=>[s,o])),this.isMessageIgnored=(s,o)=>{let a=this._loggingLevels.get(o);return a?this.LOG_LEVEL_SEVERITY.get(s)this._oninitialize(s)),this.setNotificationHandler(wPt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(NPt,async(s,o)=>{var a;let c=o.sessionId||((a=o.requestInfo)===null||a===void 0?void 0:a.headers["mcp-session-id"])||void 0,{level:u}=s.params,l=O6.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new gTe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=cfr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=MU(t),a=o?.method;if(!a)throw new Error("Schema is missing a method literal");let c;if(gp(a)){let l=a,d=(r=l._zod)===null||r===void 0?void 0:r.def;c=(i=d?.value)!==null&&i!==void 0?i:l.value}else{let l=a,d=l._def;c=(s=d?.value)!==null&&s!==void 0?s:l.value}if(typeof c!="string")throw new Error("Schema method literal must be a string");if(c==="tools/call"){let l=async(d,f)=>{let p=yU(x6,d);if(!p.success){let y=p.error instanceof Error?p.error.message:String(p.error);throw new _t(Ft.InvalidParams,`Invalid tools/call request: ${y}`)}let{params:h}=p.data,m=await Promise.resolve(n(d,f));if(h.task){let y=yU(Y6,m);if(!y.success){let E=y.error instanceof Error?y.error.message:String(y.error);throw new _t(Ft.InvalidParams,`Invalid task creation result: ${E}`)}return y.data}let g=yU(QTe,m);if(!g.success){let y=g.error instanceof Error?g.error.message:String(g.error);throw new _t(Ft.InvalidParams,`Invalid tools/call result: ${y}`)}return g.data};return super.setRequestHandler(t,l)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){var n,r,i;switch(t){case"sampling/createMessage":if(!(!((n=this._clientCapabilities)===null||n===void 0)&&n.sampling))throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!(!((r=this._clientCapabilities)===null||r===void 0)&&r.elicitation))throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!(!((i=this._clientCapabilities)===null||i===void 0)&&i.roots))throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){var n,r;switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!(!((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.elicitation)===null||r===void 0)&&r.url))throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){var n,r;pfr((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.tasks)===null||r===void 0?void 0:r.requests,t,"Client")}assertTaskHandlerCapability(t){var n;this._capabilities&&ffr((n=this._capabilities.tasks)===null||n===void 0?void 0:n.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:zur.includes(n)?n:yPt,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},UTe)}async createMessage(t,n){var r,i;if((t.tools||t.toolChoice)&&!(!((i=(r=this._clientCapabilities)===null||r===void 0?void 0:r.sampling)===null||i===void 0)&&i.tools))throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let s=t.messages[t.messages.length-1],o=Array.isArray(s.content)?s.content:[s.content],a=o.some(d=>d.type==="tool_result"),c=t.messages.length>1?t.messages[t.messages.length-2]:void 0,u=c?Array.isArray(c.content)?c.content:[c.content]:[],l=u.some(d=>d.type==="tool_use");if(a){if(o.some(d=>d.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let d=new Set(u.filter(p=>p.type==="tool_use").map(p=>p.id)),f=new Set(o.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(d.size!==f.size||![...d].every(p=>f.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},MPt,n):this.request({method:"sampling/createMessage",params:t},CPt,n)}async elicitInput(t,n){var r,i,s,o,a;switch((r=t.mode)!==null&&r!==void 0?r:"form"){case"url":{if(!(!((s=(i=this._clientCapabilities)===null||i===void 0?void 0:i.elicitation)===null||s===void 0)&&s.url))throw new Error("Client does not support url elicitation.");let u=t;return this.request({method:"elicitation/create",params:u},dTe,n)}case"form":{if(!(!((a=(o=this._clientCapabilities)===null||o===void 0?void 0:o.elicitation)===null||a===void 0)&&a.form))throw new Error("Client does not support form elicitation.");let u=t.mode==="form"?t:{...t,mode:"form"},l=await this.request({method:"elicitation/create",params:u},dTe,n);if(l.action==="accept"&&l.content&&u.requestedSchema)try{let f=this._jsonSchemaValidator.getValidator(u.requestedSchema)(l.content);if(!f.valid)throw new _t(Ft.InvalidParams,`Elicitation response content does not match requested schema: ${f.errorMessage}`)}catch(d){throw d instanceof _t?d:new _t(Ft.InternalError,`Error validating elicitation response: ${d instanceof Error?d.message:String(d)}`)}return l}}}createElicitationCompletionNotifier(t,n){var r,i;if(!(!((i=(r=this._clientCapabilities)===null||r===void 0?void 0:r.elicitation)===null||i===void 0)&&i.url))throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},DPt,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}},BPt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(Zxt||(Zxt={}));gfr=/^[A-Za-z0-9._-]{1,128}$/;STe=class{constructor(t){this._mcpServer=t}registerToolTask(t,n,r){let i={taskSupport:"required",...n.execution};if(i.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${t}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(t,n.title,n.description,n.inputSchema,n.outputSchema,n.annotations,i,n._meta,r)}},ETe=class{constructor(t,n){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new yTe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new STe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler(QE(lTe)),this.server.assertCanSetRequestHandler(QE(x6)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(lTe,()=>({tools:Object.entries(this._registeredTools).filter(([,t])=>t.enabled).map(([t,n])=>{let r={name:t,title:n.title,description:n.description,inputSchema:(()=>{let i=dU(n.inputSchema);return i?Vxt(i,{strictUnions:!0,pipeStrategy:"input"}):Efr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=dU(n.outputSchema);i&&(r.outputSchema=Vxt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(x6,async(t,n)=>{var r;try{let i=this._registeredTools[t.params.name];if(!i)throw new _t(Ft.InvalidParams,`Tool ${t.params.name} not found`);if(!i.enabled)throw new _t(Ft.InvalidParams,`Tool ${t.params.name} disabled`);let s=!!t.params.task,o=(r=i.execution)===null||r===void 0?void 0:r.taskSupport,a="createTask"in i.handler;if((o==="required"||o==="optional")&&!a)throw new _t(Ft.InternalError,`Tool ${t.params.name} has taskSupport '${o}' but was not registered with registerToolTask`);if(o==="required"&&!s)throw new _t(Ft.MethodNotFound,`Tool ${t.params.name} requires task augmentation (taskSupport: 'required')`);if(o==="optional"&&!s&&a)return await this.handleAutomaticTaskPolling(i,t,n);let c=await this.validateToolInput(i,t.params.arguments,t.params.name),u=await this.executeToolHandler(i,c,n);return s||await this.validateToolOutput(i,u,t.params.name),u}catch(i){if(i instanceof _t&&i.code===Ft.UrlElicitationRequired)throw i;return this.createToolError(i instanceof Error?i.message:String(i))}}),this._toolHandlersInitialized=!0)}createToolError(t){return{content:[{type:"text",text:t}],isError:!0}}async validateToolInput(t,n,r){if(!t.inputSchema)return;let i=dU(t.inputSchema),s=i??t.inputSchema,o=await jbe(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=Hbe(a);throw new _t(Ft.InvalidParams,`Input validation error: Invalid arguments for tool ${r}: ${c}`)}return o.data}async validateToolOutput(t,n,r){if(!t.outputSchema||!("content"in n)||n.isError)return;if(!n.structuredContent)throw new _t(Ft.InvalidParams,`Output validation error: Tool ${r} has an output schema but no structured content was provided`);let i=dU(t.outputSchema),s=await jbe(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=Hbe(o);throw new _t(Ft.InvalidParams,`Output validation error: Invalid structured content for tool ${r}: ${a}`)}}async executeToolHandler(t,n,r){let i=t.handler;if("createTask"in i){if(!r.taskStore)throw new Error("No task store provided.");let o={...r,taskStore:r.taskStore};if(t.inputSchema){let a=i;return await Promise.resolve(a.createTask(n,o))}else{let a=i;return await Promise.resolve(a.createTask(o))}}if(t.inputSchema){let o=i;return await Promise.resolve(o(n,r))}else{let o=i;return await Promise.resolve(o(r))}}async handleAutomaticTaskPolling(t,n,r){var i;if(!r.taskStore)throw new Error("No task store provided for task-capable tool.");let s=await this.validateToolInput(t,n.params.arguments,n.params.name),o=t.handler,a={...r,taskStore:r.taskStore},c=s?await Promise.resolve(o.createTask(s,a)):await Promise.resolve(o.createTask(a)),u=c.task.taskId,l=c.task,d=(i=l.pollInterval)!==null&&i!==void 0?i:5e3;for(;l.status!=="completed"&&l.status!=="failed"&&l.status!=="cancelled";){await new Promise(p=>setTimeout(p,d));let f=await r.taskStore.getTask(u);if(!f)throw new _t(Ft.InternalError,`Task ${u} not found during polling`);l=f}return await r.taskStore.getTaskResult(u)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler(QE(fTe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(fTe,async t=>{switch(t.params.ref.type){case"ref/prompt":return gdr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return ydr(t),this.handleResourceCompletion(t,t.params.ref);default:throw new _t(Ft.InvalidParams,`Invalid completion reference: ${t.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(t,n){let r=this._registeredPrompts[n.name];if(!r)throw new _t(Ft.InvalidParams,`Prompt ${n.name} not found`);if(!r.enabled)throw new _t(Ft.InvalidParams,`Prompt ${n.name} disabled`);if(!r.argsSchema)return fU;let i=MU(r.argsSchema),s=i?.[t.params.argument.name];if(!hfr(s))return fU;let o=mfr(s);if(!o)return fU;let a=await o(t.params.argument.value,t.params.context);return Qxt(a)}async handleResourceCompletion(t,n){let r=Object.values(this._registeredResourceTemplates).find(o=>o.resourceTemplate.uriTemplate.toString()===n.uri);if(!r){if(this._registeredResources[n.uri])return fU;throw new _t(Ft.InvalidParams,`Resource template ${t.params.ref.uri} not found`)}let i=r.resourceTemplate.completeCallback(t.params.argument.name);if(!i)return fU;let s=await i(t.params.argument.value,t.params.context);return Qxt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler(QE(sTe)),this.server.assertCanSetRequestHandler(QE(oTe)),this.server.assertCanSetRequestHandler(QE(aTe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(sTe,async(t,n)=>{let r=Object.entries(this._registeredResources).filter(([s,o])=>o.enabled).map(([s,o])=>({uri:s,name:o.name,...o.metadata})),i=[];for(let s of Object.values(this._registeredResourceTemplates)){if(!s.resourceTemplate.listCallback)continue;let o=await s.resourceTemplate.listCallback(n);for(let a of o.resources)i.push({...s.metadata,...a})}return{resources:[...r,...i]}}),this.server.setRequestHandler(oTe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(aTe,async(t,n)=>{let r=new URL(t.params.uri),i=this._registeredResources[r.toString()];if(i){if(!i.enabled)throw new _t(Ft.InvalidParams,`Resource ${r} disabled`);return i.readCallback(r,n)}for(let s of Object.values(this._registeredResourceTemplates)){let o=s.resourceTemplate.uriTemplate.match(r.toString());if(o)return s.readCallback(r,o,n)}throw new _t(Ft.InvalidParams,`Resource ${r} not found`)}),this.setCompletionRequestHandler(),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler(QE(cTe)),this.server.assertCanSetRequestHandler(QE(uTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(cTe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?bfr(n.argsSchema):void 0}))})),this.server.setRequestHandler(uTe,async(t,n)=>{let r=this._registeredPrompts[t.params.name];if(!r)throw new _t(Ft.InvalidParams,`Prompt ${t.params.name} not found`);if(!r.enabled)throw new _t(Ft.InvalidParams,`Prompt ${t.params.name} disabled`);if(r.argsSchema){let i=dU(r.argsSchema),s=await jbe(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=Hbe(c);throw new _t(Ft.InvalidParams,`Invalid arguments for prompt ${t.params.name}: ${u}`)}let o=s.data,a=r.callback;return await Promise.resolve(a(o,n))}else{let i=r.callback;return await Promise.resolve(i(n))}}),this.setCompletionRequestHandler(),this._promptHandlersInitialized=!0)}resource(t,n,...r){let i;typeof r[0]=="object"&&(i=r.shift());let s=r[0];if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let o=this._createRegisteredResource(t,void 0,n,i,s);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let o=this._createRegisteredResourceTemplate(t,void 0,n,i,s);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}}registerResource(t,n,r,i){if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let s=this._createRegisteredResource(t,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let s=this._createRegisteredResourceTemplate(t,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}}_createRegisteredResource(t,n,r,i,s){let o={name:t,title:n,metadata:i,readCallback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({uri:null}),update:a=>{typeof a.uri<"u"&&a.uri!==r&&(delete this._registeredResources[r],a.uri&&(this._registeredResources[a.uri]=o)),typeof a.name<"u"&&(o.name=a.name),typeof a.title<"u"&&(o.title=a.title),typeof a.metadata<"u"&&(o.metadata=a.metadata),typeof a.callback<"u"&&(o.readCallback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResources[r]=o,o}_createRegisteredResourceTemplate(t,n,r,i,s){let o={resourceTemplate:r,title:n,metadata:i,readCallback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredResourceTemplates[t],a.name&&(this._registeredResourceTemplates[a.name]=o)),typeof a.title<"u"&&(o.title=a.title),typeof a.template<"u"&&(o.resourceTemplate=a.template),typeof a.metadata<"u"&&(o.metadata=a.metadata),typeof a.callback<"u"&&(o.readCallback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResourceTemplates[t]=o,o}_createRegisteredPrompt(t,n,r,i,s){let o={title:n,description:r,argsSchema:i===void 0?void 0:gU(i),callback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredPrompts[t],a.name&&(this._registeredPrompts[a.name]=o)),typeof a.title<"u"&&(o.title=a.title),typeof a.description<"u"&&(o.description=a.description),typeof a.argsSchema<"u"&&(o.argsSchema=gU(a.argsSchema)),typeof a.callback<"u"&&(o.callback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[t]=o,o}_createRegisteredTool(t,n,r,i,s,o,a,c,u){Jxt(t);let l={title:n,description:r,inputSchema:Xxt(i),outputSchema:Xxt(s),annotations:o,execution:a,_meta:c,handler:u,enabled:!0,disable:()=>l.update({enabled:!1}),enable:()=>l.update({enabled:!0}),remove:()=>l.update({name:null}),update:d=>{typeof d.name<"u"&&d.name!==t&&(typeof d.name=="string"&&Jxt(d.name),delete this._registeredTools[t],d.name&&(this._registeredTools[d.name]=l)),typeof d.title<"u"&&(l.title=d.title),typeof d.description<"u"&&(l.description=d.description),typeof d.paramsSchema<"u"&&(l.inputSchema=gU(d.paramsSchema)),typeof d.callback<"u"&&(l.handler=d.callback),typeof d.annotations<"u"&&(l.annotations=d.annotations),typeof d._meta<"u"&&(l._meta=d._meta),typeof d.enabled<"u"&&(l.enabled=d.enabled),this.sendToolListChanged()}};return this._registeredTools[t]=l,this.setToolRequestHandlers(),this.sendToolListChanged(),l}tool(t,...n){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let r,i,s,o;if(typeof n[0]=="string"&&(r=n.shift()),n.length>1){let c=n[0];_Te(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!_Te(n[0])&&(o=n.shift())):typeof c=="object"&&c!==null&&(o=n.shift())}let a=n[0];return this._createRegisteredTool(t,void 0,r,i,s,o,{taskSupport:"forbidden"},void 0,a)}registerTool(t,n,r){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let{title:i,description:s,inputSchema:o,outputSchema:a,annotations:c,_meta:u}=n;return this._createRegisteredTool(t,i,s,o,a,c,{taskSupport:"forbidden"},u,r)}prompt(t,...n){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let r;typeof n[0]=="string"&&(r=n.shift());let i;n.length>1&&(i=n.shift());let s=n[0],o=this._createRegisteredPrompt(t,void 0,r,i,s);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}registerPrompt(t,n,r){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let{title:i,description:s,argsSchema:o}=n,a=this._createRegisteredPrompt(t,i,s,o,r);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),a}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(t,n){return this.server.sendLoggingMessage(t,n)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},Efr={type:"object",properties:{}};fU={completion:{values:[],hasMore:!1}}});var WPt={};Rr(WPt,{runRepairAgent:()=>Ifr});import{existsSync as Jv,readdirSync as $Te,readFileSync as eve}from"node:fs";import{join as ny}from"node:path";async function Ifr(e){let t;try{t=(await Promise.resolve().then(()=>(VPt(),zPt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=xfr(e),r=Ofr(e),i=12e4;try{let s=(async()=>{let c="";for await(let u of t({prompt:r,options:{model:"claude-haiku-4-5-20251001",cwd:e.intentDir,additionalDirectories:[e.studioDir],allowedTools:["Read","Write","Glob","Grep"],disallowedTools:["Bash","Agent","WebSearch","WebFetch","Edit"],permissionMode:"dontAsk",maxTurns:25,systemPrompt:n}}))u.type==="result"&&(c=u.result||"");return c})(),o=new Promise((c,u)=>setTimeout(()=>u(new Error("repair agent timed out")),i)),a=await Promise.race([s,o]);return{success:a.trim().length>0,summary:a||"Repair agent completed but produced no output",fallbackUsed:!1}}catch(s){return{success:!1,summary:`Repair agent failed: ${s instanceof Error?s.message:String(s)}`,fallbackUsed:!0}}}function xfr(e){let t=Pfr(e.studioDir);return`You are a H\xB7AI\xB7K\xB7U intent repair agent. Your single purpose is to fix metadata and state in H\xB7AI\xB7K\xB7U intent files that are in an inconsistent state after migration from a legacy system. ## Constraints (CRITICAL \u2014 non-negotiable) @@ -1462,7 +1465,7 @@ If a stage looks "stuck" you suspect should be marked complete: the per-unit FM You are running from the intent directory: \`${e.intentDir}\` You also have read access to the studio definition at: \`${e.studioDir}\` -All file paths you read/write should be relative to the intent directory unless reading studio definitions.`}function Ulr(e){let t=[];t.push(`Repair intent "${e.slug}" (studio: ${e.studio}, active stage: ${e.activeStage}).`),e.synthesizedStages.length>0&&t.push(`## Already Fixed (Mechanical Synthesis) +All file paths you read/write should be relative to the intent directory unless reading studio definitions.`}function Ofr(e){let t=[];t.push(`Repair intent "${e.slug}" (studio: ${e.studio}, active stage: ${e.activeStage}).`),e.synthesizedStages.length>0&&t.push(`## Already Fixed (Mechanical Synthesis) The following stages had no units and were skipped \u2014 the v4 cursor will treat them as already-merged when intent main carries no units for them: ${e.synthesizedStages.map(r=>`- **${r}**`).join(` @@ -1487,7 +1490,7 @@ The mechanical pre-tick repair tried to populate \`inputs:\` on these units (usi ${e.unitsMissingInputs.map(r=>`- \`stages/${e.activeStage}/units/${r}\``).join(` `)} -**Do NOT edit these files.** Surface them in your end-of-run summary as needing human attention. The workflow engine will refuse to advance until inputs are present, so the user will see the issue and resolve it manually.`);let n=Flr(e);return n.length>0&&t.push(`## Missing Discovery Artifact Stubs +**Do NOT edit these files.** Surface them in your end-of-run summary as needing human attention. The workflow engine will refuse to advance until inputs are present, so the user will see the issue and resolve it manually.`);let n=Nfr(e);return n.length>0&&t.push(`## Missing Discovery Artifact Stubs The following discovery artifacts are expected by downstream stages but don't exist in the intent directory. Create stub files with frontmatter only (no body content \u2014 the elaboration phase will fill them in): @@ -1508,35 +1511,35 @@ After making all repairs, summarize: 2. Which stages are stuck and why (read-only observations only \u2014 do not write state.json) 3. Any issues that could not be automatically resolved and need human attention (residual unit \`inputs:\` problems, unit content concerns, anything you spotted but cannot touch)`),t.join(` -`)}function jlr(e){let t=$g(e,"stages");if(!zv(t))return"(no stages directory found)";let n=[],r;try{r=vTe(t).filter(i=>zv($g(t,i,"STAGE.md")))}catch{return"(could not read stages directory)"}for(let i of r){let s=$g(t,i,"STAGE.md");try{let o=ATe(s,"utf8"),{data:a}=(0,NY.default)(o),c=Object.keys(a).length>0?Object.entries(a).map(([u,l])=>`${u}: ${JSON.stringify(l)}`).join(` +`)}function Pfr(e){let t=ny(e,"stages");if(!Jv(t))return"(no stages directory found)";let n=[],r;try{r=$Te(t).filter(i=>Jv(ny(t,i,"STAGE.md")))}catch{return"(could not read stages directory)"}for(let i of r){let s=ny(t,i,"STAGE.md");try{let o=eve(s,"utf8"),{data:a}=(0,Z6.default)(o),c=Object.keys(a).length>0?Object.entries(a).map(([u,l])=>`${u}: ${JSON.stringify(l)}`).join(` `):"(no frontmatter)";n.push(`### ${i} \`\`\`yaml ${c} \`\`\``)}catch{n.push(`### ${i} (could not read STAGE.md)`)}}return n.join(` -`)}function Flr(e){let t=[],n=$g(e.studioDir,"stages");if(!zv(n))return t;let r={},i;try{i=vTe(n).filter(o=>zv($g(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=$g(n,o,"discovery");if(zv(a))try{for(let c of vTe(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,NY.default)(ATe($g(a,c),"utf8")),l=u.name||c.replace(/\.md$/,"").toLowerCase(),d=u.location||"";d&&(r[l]=d.replace(/\{intent-slug\}/g,"").replace(/^\.haiku\/intents\/\//,""))}}catch{}}let s=$g(n,e.activeStage,"STAGE.md");if(!zv(s))return t;try{let o=ATe(s,"utf8"),{data:a}=(0,NY.default)(o),c=a.inputs||[];for(let u of c)if(u.discovery){let l=r[u.discovery];if(l){let d=$g(e.intentDir,l);zv(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var NY,ZOt=v(()=>{"use strict";NY=_e(sn(),1)});import{execFileSync as tE}from"node:child_process";import{existsSync as Zu,mkdirSync as Hlr,readFileSync as RU,writeFileSync as qlr}from"node:fs";import{join as Io}from"node:path";function eE(e){let t=yEe(e);return t?.action?t.action:t?{action:"error",message:`runWorkflowTick produced no action for intent '${e}' (track: ${t.position.track}). The cursor is mid-wave or sealed \u2014 wait for outstanding subagents and retick.`}:{action:"error",message:`Intent '${e}' not found`}}function YOt(){try{return tE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function Blr(e){for(let t of e.content??[]){if(t.type!=="text"||typeof t.text!="string")continue;let n=t.text.indexOf(` +`)}function Nfr(e){let t=[],n=ny(e.studioDir,"stages");if(!Jv(n))return t;let r={},i;try{i=$Te(n).filter(o=>Jv(ny(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=ny(n,o,"discovery");if(Jv(a))try{for(let c of $Te(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,Z6.default)(eve(ny(a,c),"utf8")),l=u.name||c.replace(/\.md$/,"").toLowerCase(),d=u.location||"";d&&(r[l]=d.replace(/\{intent-slug\}/g,"").replace(/^\.haiku\/intents\/\//,""))}}catch{}}let s=ny(n,e.activeStage,"STAGE.md");if(!Jv(s))return t;try{let o=eve(s,"utf8"),{data:a}=(0,Z6.default)(o),c=a.inputs||[];for(let u of c)if(u.discovery){let l=r[u.discovery];if(l){let d=ny(e.intentDir,l);Jv(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var Z6,KPt=v(()=>{"use strict";Z6=Se(Kt(),1)});import{execFileSync as s_}from"node:child_process";import{existsSync as iu,mkdirSync as Cfr,readFileSync as Wx,writeFileSync as Mfr}from"node:fs";import{join as po}from"node:path";function ry(e){let t=W_e(e);return t?.action?t.action:t?{action:"error",message:`runWorkflowTick produced no action for intent '${e}' (track: ${t.position.track}). The cursor is mid-wave or sealed \u2014 wait for outstanding subagents and retick.`}:{action:"error",message:`Intent '${e}' not found`}}function YPt(){try{return s_("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function Dfr(e){for(let t of e.content??[]){if(t.type!=="text"||typeof t.text!="string")continue;let n=t.text.indexOf(` ----`),i=(n>=0?t.text.slice(0,n):t.text).trim();if(i.startsWith("{"))try{let s=JSON.parse(i);if(typeof s.action=="string")return s.action}catch{}}return null}async function Glr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(W1(),RTe)),i=`haiku_${e}`,s=r.get(i);if(!s)return{ok:!1,message:`Engine bug: no handler registered for selection action '${e}' (looked up as '${i}').`};try{let o=await s.handle({intent:t},n);if(o.isError)return{ok:!1,message:o.content?.map(u=>u.type==="text"?u.text:"").join(` +---`),i=(n>=0?t.text.slice(0,n):t.text).trim();if(i.startsWith("{"))try{let s=JSON.parse(i);if(typeof s.action=="string")return s.action}catch{}}return null}async function Lfr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(aU(),tve)),i=`haiku_${e}`,s=r.get(i);if(!s)return{ok:!1,message:`Engine bug: no handler registered for selection action '${e}' (looked up as '${i}').`};try{let o=await s.handle({intent:t},n);if(o.isError)return{ok:!1,message:o.content?.map(u=>u.type==="text"?u.text:"").join(` `).trim()||`Picker failed for ${e}.`};let a=o.content?.map(c=>c.type==="text"?c.text:"").join(` -`).trim();if(a)try{if(JSON.parse(a)?.action==="cancelled")return{ok:!1,message:`Picker for ${e} was cancelled or timed out without a selection. Re-run \`haiku_run_next\` to surface the picker again.`}}catch{}return{ok:!0}}catch(o){return{ok:!1,message:`Picker for ${e} threw: ${o instanceof Error?o.message:String(o)}`}}}function AU(e){if(!Zu(e))return{};let t=RU(e,"utf8"),{data:n}=re(t);return n}var JOt,XOt=v(()=>{"use strict";Tr();_Ee();hc();SEe();Gd();s0t();$p();j6();zL();Hu();ze();Zn();Ko();ns();Ls();JOt={name:"haiku_run_next",description:"Advance the workflow. Returns the next action for the agent to take, with rendered instructions appended. Auto-resolves `intent` from the current branch when omitted; if multiple intents are active, requires explicit `intent`. Pass `external_review_url` when a stage is blocked on external review to record the URL for approval polling.",inputSchema:{type:"object",properties:{intent:{type:"string"},external_review_url:{type:"string"},state_file:{type:"string"},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}},async handle(e,t){let n=Date.now(),r=e.intent||"";if(!r){let S=fv();if(S)r=S.slug;else{if(Ae())return{content:[{type:"text",text:"No intent specified and the current branch isn't an intent branch (`haiku//main` or `haiku//`). Pass `intent` explicitly, or `git switch haiku//main` to scope the engine to a specific intent. The engine refuses to auto-target an intent the user isn't actively on \u2014 that's how stray intent dirs end up touched and polluting `git status`."}],isError:!0};{let _=we(),b=Io(_,"intents"),T=Zu(b)?Mg(b).filter(A=>A.data.status!=="completed"):[];if(T.length===1)r=T[0].slug;else return T.length===0?{content:[{type:"text",text:"No active intents found. Start one with /haiku:haiku-start."}],isError:!0}:{content:[{type:"text",text:`Multiple active intents (${T.map(A=>A.slug).join(", ")}). Pass \`intent\` explicitly.`}],isError:!0}}}}let i=e.state_file,s=Mye(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Ae())try{let S=tE("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),_=["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"].find(b=>Zu(Io(S,b)));if(_){let b=tE("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).filter(Boolean),T=tE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),A=b.length>0?`Conflicted files: ${b.join(", ")}.`:`(No conflict files reported \u2014 try \`git status\` to inspect, or \`git ${_==="MERGE_HEAD"?"merge":"rebase"} --abort\` to bail out.)`;return be(JSON.stringify({action:"error",intent:r,error:"mid_merge_blocking_tick",marker:_,branch:T,conflict_files:b,message:`The working tree on '${T}' is mid-merge (${_} present) \u2014 most likely from the previous tick's pre-cursor sync hitting a real conflict. Resolve the conflicted files in place (the workflow-fields guard's mid-merge bypass permits Edit/Write during a merge), run \`git add \` and \`git commit\`, then re-run \`haiku_run_next\`. `+A},null,2))}}catch{}let o=Yfe();if(o.length>0){let S=o.slice(0,50).join(` +`).trim();if(a)try{if(JSON.parse(a)?.action==="cancelled")return{ok:!1,message:`Picker for ${e} was cancelled or timed out without a selection. Re-run \`haiku_run_next\` to surface the picker again.`}}catch{}return{ok:!0}}catch(o){return{ok:!1,message:`Picker for ${e} threw: ${o instanceof Error?o.message:String(o)}`}}}function jU(e){if(!iu(e))return{};let t=Wx(e,"utf8"),{data:n}=re(t);return n}var ZPt,JPt=v(()=>{"use strict";yr();Y_e();Oa();d9();K_e();Vd();ixt();ih();t6();t1();Qc();ze();Kn();vo();Gi();vs();ZPt={name:"haiku_run_next",description:"Advance the workflow. Returns the next action for the agent to take, with rendered instructions appended. Auto-resolves `intent` from the current branch when omitted; if multiple intents are active, requires explicit `intent`. Pass `external_review_url` when a stage is blocked on external review to record the URL for approval polling.",inputSchema:{type:"object",properties:{intent:{type:"string"},external_review_url:{type:"string"},state_file:{type:"string"},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}},async handle(e,t){let n=Date.now(),r=e.intent||"";if(!r){let S=gv();if(S)r=S.slug;else{if(Ae())return{content:[{type:"text",text:"No intent specified and the current branch isn't an intent branch (`haiku//main` or `haiku//`). Pass `intent` explicitly, or `git switch haiku//main` to scope the engine to a specific intent. The engine refuses to auto-target an intent the user isn't actively on \u2014 that's how stray intent dirs end up touched and polluting `git status`."}],isError:!0};{let _=ve(),b=po(_,"intents"),T=iu(b)?Ug(b).filter(A=>A.data.status!=="completed"):[];if(T.length===1)r=T[0].slug;else return T.length===0?{content:[{type:"text",text:"No active intents found. Start one with /haiku:haiku-start."}],isError:!0}:{content:[{type:"text",text:`Multiple active intents (${T.map(A=>A.slug).join(", ")}). Pass \`intent\` explicitly.`}],isError:!0}}}}let i=e.state_file,s=tSe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(Ae())try{let S=s_("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),_=["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"].find(b=>iu(po(S,b)));if(_){let b=s_("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).filter(Boolean),T=s_("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),A=b.length>0?`Conflicted files: ${b.join(", ")}.`:`(No conflict files reported \u2014 try \`git status\` to inspect, or \`git ${_==="MERGE_HEAD"?"merge":"rebase"} --abort\` to bail out.)`;return ye(JSON.stringify({action:"error",intent:r,error:"mid_merge_blocking_tick",marker:_,branch:T,conflict_files:b,message:`The working tree on '${T}' is mid-merge (${_} present) \u2014 most likely from the previous tick's pre-cursor sync hitting a real conflict. Resolve the conflicted files in place (the workflow-fields guard's mid-merge bypass permits Edit/Write during a merge), run \`git add \` and \`git commit\`, then re-run \`haiku_run_next\`. `+A},null,2))}}catch{}let o=ppe();if(o.length>0){let S=o.slice(0,50).join(` `),_=o.length>50?` - \u2026and ${o.length-50} more`:"";return be(JSON.stringify({action:"error",intent:r,error:"dirty_tree_blocking_tick",dirty_files:o,message:`I can't advance the workflow with uncommitted work in the tree. Commit everything first \u2014 you author these commits, not the engine, because you know what you just did and can tell the story of the work. Keep the commit messages logical: group related changes into separate, coherent commits (one logical step each), and write messages that explain the WHY of the change \u2014 not a single catch-all 'wip' dump. Then re-run \`haiku_run_next\` to continue. + \u2026and ${o.length-50} more`:"";return ye(JSON.stringify({action:"error",intent:r,error:"dirty_tree_blocking_tick",dirty_files:o,message:`I can't advance the workflow with uncommitted work in the tree. Commit everything first \u2014 you author these commits, not the engine, because you know what you just did and can tell the story of the work. Keep the commit messages logical: group related changes into separate, coherent commits (one logical step each), and write messages that explain the WHY of the change \u2014 not a single catch-all 'wip' dump. Then re-run \`haiku_run_next\` to continue. Uncommitted: - `+S+_},null,2))}try{let S=Io(we(),"intents",r,"intent.md");if(Zu(S)){let _=AU(S),b=_.studio||"",T=typeof _.external_review_url=="string"&&_.external_review_url.length>0;if(b&&T){let{isGitRepo:A}=await Promise.resolve().then(()=>(ze(),JZ));if(A()){wT();let{resolveStudioStages:R}=await Promise.resolve().then(()=>(Gd(),QOt)),{reconcileMisroutedStageMerges:k}=await Promise.resolve().then(()=>(Tr(),CD)),x=R(b),P=k(r,x).filter(D=>D.misrouted&&!D.reconciled&&D.error);if(P.length>0)return{content:[{type:"text",text:`Stage merge routed to the wrong branch \u2014 manual reconciliation needed: + `+S+_},null,2))}try{let S=po(ve(),"intents",r,"intent.md");if(iu(S)){let _=jU(S),b=_.studio||"",T=typeof _.external_review_url=="string"&&_.external_review_url.length>0;if(b&&T){let{isGitRepo:A}=await Promise.resolve().then(()=>(ze(),f5));if(A()){OT();let{resolveStudioStages:R}=await Promise.resolve().then(()=>(Vd(),XPt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(yr(),BD)),k=R(b),N=x(r,k).filter(C=>C.misrouted&&!C.reconciled&&C.error);if(N.length>0)return{content:[{type:"text",text:`Stage merge routed to the wrong branch \u2014 manual reconciliation needed: -${P.map(D=>`- **Stage ${D.stage}**: ${D.error}`).join(` +${N.map(C=>`- **Stage ${C.stage}**: ${C.error}`).join(` `)} -When reconciled, re-run \`haiku_run_next\` to continue.`}],isError:!0}}}}}catch(S){console.error(`[haiku_run_next] pre-cursor reconciliation failed: ${S instanceof Error?S.message:String(S)}`)}let a="";if(e.pickup===!0&&Ae())try{wT();let S=Io(we(),"intents",r,"intent.md");if(Zu(S)){let b=AU(S).studio||"";if(b){let T=_s(r,b);if(T){let A=`haiku/${r}/${T}`;try{tE("git",["fetch","origin",`${A}:${A}`],{encoding:"utf8",stdio:"pipe"}),a=`Active stage branch \`${A}\` was fetched from origin. Run \`git switch ${A}\` to inspect in-flight unit work; the engine drives the workflow from intent main and doesn't need you on the stage branch.`}catch{}}}}}catch(S){console.error(`[haiku_run_next] pickup auto-fetch threw: ${S instanceof Error?S.message:String(S)}`)}{let S=Bfe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=Io(we(),"intents",r,"intent.md");if(Zu(S)){let _=AU(S),b=_.studio||"",T=_.mode||"";if(!b||!T){if(!hr().startsWith(`haiku/${r}/`)){let k=mr(r,void 0);if(!k.ok)return G_(r,void 0,k,"run_next entry \u2014 intent main (pre-selection)")}}else{let A=Nfe(r);if(!A.ok){let R=A.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:hr()||`haiku/${r}/main`,k=A.conflictBranch??R,x=A.conflictBranch??null;if(!((A.conflictFiles??[]).length>0)){let j=A.conflictAt==="mainline_to_intent_main"?`To recover: \`git checkout ${k}\`, merge the mainline ref into it manually, resolve any conflicts and commit, then \`git checkout\` back to your original branch and re-run \`haiku_run_next\`.`:`To recover: \`git merge haiku/${r}/main\` on this branch (you're already on '${k}'), resolve any conflicts and commit, then re-run \`haiku_run_next\`.`;return be(JSON.stringify({action:"error",intent:r,error:"pre_cursor_sync_failed",conflict_at:A.conflictAt,conflict_branch:x,underlying_error:A.message,message:`Pre-cursor downstream sync FAILED on branch '${k}' (${A.conflictAt}). The merge couldn't start \u2014 there are NO conflict markers to resolve. Likely cause: the target branch is checked out elsewhere with dirty tracked changes, the worktree is locked, or git refused for another non-conflict reason. ${j} Underlying error: ${A.message??"(none reported)"}.`},null,2))}let P=(A.conflictFiles??[]).join(", "),D=A.conflictAt==="mainline_to_intent_main"?`The conflict happened in a temp worktree that's already been cleaned up \u2014 there are NO conflict markers in your working tree. To resolve: \`git checkout ${k}\`, merge the mainline ref manually (\`git merge \`), resolve the listed files, \`git add\` + \`git commit\`, then \`git checkout\` back to your original branch and re-run \`haiku_run_next\`.`:"Resolve the conflict on the listed files in place, run `git add ` and `git commit`, then re-run `haiku_run_next`.";return be(JSON.stringify({action:"error",intent:r,error:"pre_cursor_sync_conflict",conflict_at:A.conflictAt,conflict_branch:x,conflict_files:A.conflictFiles,message:`Pre-cursor downstream sync hit a conflict on branch '${k}' (${A.conflictAt}). ${D} Conflicted files: ${P}.`},null,2))}}}}if(e.external_review_url)try{let S=we(),_=Io(S,"intents",r,"intent.md");Zu(_)&&je(_,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(uv(),qL));S(r)}catch(S){console.error(`[haiku_run_next] drainPendingDispatches failed: ${S instanceof Error?S.message:String(S)}`)}let c=eE(r);try{let S=YOt(),_=`haiku/${r}/`,b=S.startsWith(_)&&S!==`${_}main`?S.slice(_.length):null;if(b&&!(typeof c.stage=="string"&&c.stage===b)){let T=fe(r),A=Io(T,"intent.md");if(Zu(A)){let R=AU(A),k=R.studio||"",x=R.mode||"continuous";if(k&&E0(T,k,b,x)){let N=`haiku/${r}/${b}`,P=`haiku/${r}/main`;RD(N,P)||(c={action:"complete_stage",intent:r,stage:b})}}}}catch{}{let S=0;for(;c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage";){let _=gx(c);if(++S>Z1)return Xh("select_*",S,c,"cap");if(G6(n))return z6("select_*",S,n,c);let b=await Glr(c.action,r,t);if(!b.ok)return{content:[{type:"text",text:b.message}],isError:!0};if(c=eE(r),(c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage")&&gx(c)===_)return Xh("select_*",S,c,"no_progress")}}if((c.action==="dispatch_review"||c.action==="dispatch_approval")&&typeof c.stage=="string")try{let{stashPendingDispatch:S}=await Promise.resolve().then(()=>(uv(),qL)),_=c.action==="dispatch_review"?"review":"approval",b=Array.isArray(c.dispatches)?c.dispatches:typeof c.role=="string"&&Array.isArray(c.units)?[{role:c.role,units:c.units}]:[];for(let T of b)S(r,_,c.stage,T.role,T.units)}catch(S){console.error(`[haiku_run_next] stashPendingDispatch failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="start_unit_hat"&&typeof c.stage=="string"&&typeof c.hat=="string"&&Array.isArray(c.units))try{let{stampUnitHatLease:S}=await Promise.resolve().then(()=>(ze(),JZ));for(let _ of c.units)typeof _=="string"&&S({slug:r,stage:c.stage,unit:_,hat:c.hat})}catch(S){console.error(`[haiku_run_next] stampUnitHatLease failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="intent_review"){let _=(Array.isArray(c.dispatches)?c.dispatches.map(b=>typeof b?.role=="string"?b.role:"").filter(b=>b.length>0):typeof c.role=="string"?[c.role]:[]).filter(b=>b!=="user");if(_.length>0)try{let{stashPendingIntentReview:b}=await Promise.resolve().then(()=>(uv(),qL));for(let T of _)b(r,T)}catch(b){console.error(`[haiku_run_next] stashPendingIntentReview failed: ${b instanceof Error?b.message:String(b)}`)}}let u=0,l=null;for(;c.action==="close_feedback"&&typeof c.stage=="string"&&typeof c.feedback_id=="string";){let S=gx(c);if(++u>Z1)return Xh("close_feedback",u,c,"cap");if(G6(n))return z6("close_feedback",u,n,c);if(S===l)return Xh("close_feedback",u,c,"no_progress");l=S;try{let _=c.stage,b=c.feedback_id,T=mc(r,_,b);if(!T)break;let A=T.path,R=T.data,k=new Date().toISOString();je(A,"closed_at",k);let x=R.targets??{},N=x.unit,P=Array.isArray(x.invalidates)?x.invalidates:[];if(N&&P.length>0){let{applyFeedbackInvalidations:D}=await Promise.resolve().then(()=>(uv(),qL));D({slug:r,stage:_,targetUnit:N,invalidates:P})}if(R.origin==="drift"&&N){let D=Io(we(),"intents",r,"stages",_,"units",`${N}.md`);if(Zu(D)){let j=Io(we(),"intents",r),{buildReviewRecord:V}=await Promise.resolve().then(()=>(Wf(),Fgt)),Z=RU(D,"utf8"),G=re(Z).data,X=G.reviews&&typeof G.reviews=="object"?{...G.reviews}:{},q=Array.isArray(G.inputs)?G.inputs:[],C=!1;for(let[z,U]of Object.entries(X)){if(!U||typeof U!="object"||Array.isArray(U))continue;let M=U;if(typeof M.at!="string")continue;let H=V(D,{intentDir:j,unitInputs:q});X[z]={...M,body_sha256:H.body_sha256,input_witnesses:H.input_witnesses},C=!0}C&&je(D,"reviews",X)}}c=eE(r)}catch(_){console.error(`[haiku_run_next] close_feedback execution failed: ${_ instanceof Error?_.message:String(_)}`);break}}if(c.action==="seal_intent")try{let S=Io(we(),"intents",r,"intent.md");Zu(S)&&(je(S,"sealed_at",new Date().toISOString()),Dt(`haiku: seal intent ${r}`),c=eE(r))}catch(S){console.error(`[haiku_run_next] merge_intent execution failed: ${S instanceof Error?S.message:String(S)}`)}let d=0,f=null;for(;c.action==="complete_stage"&&typeof c.stage=="string";){let S=gx(c);if(++d>Z1)return Xh("complete_stage",d,c,"cap");if(G6(n))return z6("complete_stage",d,n,c);if(S===f)return Xh("complete_stage",d,c,"no_progress");f=S;let _=c.stage;if(Vge(fe(r),_)){c={action:"record_observations",intent:r,stage:_};break}try{let{isGitRepo:b}=await Promise.resolve().then(()=>(ze(),JZ));if(!b()){c=eE(r);continue}try{let k=`haiku/${r}/${_}`;if(YOt()===k){let x=`.haiku/intents/${r}/stages/${_}/observations.md`;tE("git",["status","--porcelain","--",x],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(tE("git",["add","--",x],{stdio:"ignore"}),tE("git",["commit","-m",`haiku: observations for stage ${_}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(Tr(),CD)),{withIntentMainLock:A}=await Promise.resolve().then(()=>(M0(),Vyt)),R=A(r,()=>T(r,_));if(!R.success)return R.isConflict?{content:[{type:"text",text:`Stage '${_}' completion blocked by conflict: ${R.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${_}' completion blocked: its branch could not be merged into intent-main: ${R.message} +When reconciled, re-run \`haiku_run_next\` to continue.`}],isError:!0}}}}}catch(S){console.error(`[haiku_run_next] pre-cursor reconciliation failed: ${S instanceof Error?S.message:String(S)}`)}let a="";if(e.pickup===!0&&Ae())try{OT();let S=po(ve(),"intents",r,"intent.md");if(iu(S)){let b=jU(S).studio||"";if(b){let T=ai(r,b);if(T){let A=`haiku/${r}/${T}`;try{s_("git",["fetch","origin",`${A}:${A}`],{encoding:"utf8",stdio:"pipe"}),a=`Active stage branch \`${A}\` was fetched from origin. Run \`git switch ${A}\` to inspect in-flight unit work; the engine drives the workflow from intent main and doesn't need you on the stage branch.`}catch{}}}}}catch(S){console.error(`[haiku_run_next] pickup auto-fetch threw: ${S instanceof Error?S.message:String(S)}`)}{let S=ope(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(ve(),"intents",r,"intent.md");if(iu(S)){let _=jU(S),b=_.studio||"",T=_.mode||"";if(!b||!T){if(!mr().startsWith(`haiku/${r}/`)){let x=gr(r,void 0);if(!x.ok)return YE(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let A=Jfe(r);if(!A.ok){let R=A.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:mr()||`haiku/${r}/main`,x=A.conflictBranch??R,k=A.conflictBranch??null;if(!((A.conflictFiles??[]).length>0)){let F=A.conflictAt==="mainline_to_intent_main"?`To recover: \`git checkout ${x}\`, merge the mainline ref into it manually, resolve any conflicts and commit, then \`git checkout\` back to your original branch and re-run \`haiku_run_next\`.`:`To recover: \`git merge haiku/${r}/main\` on this branch (you're already on '${x}'), resolve any conflicts and commit, then re-run \`haiku_run_next\`.`;return ye(JSON.stringify({action:"error",intent:r,error:"pre_cursor_sync_failed",conflict_at:A.conflictAt,conflict_branch:k,underlying_error:A.message,message:`Pre-cursor downstream sync FAILED on branch '${x}' (${A.conflictAt}). The merge couldn't start \u2014 there are NO conflict markers to resolve. Likely cause: the target branch is checked out elsewhere with dirty tracked changes, the worktree is locked, or git refused for another non-conflict reason. ${F} Underlying error: ${A.message??"(none reported)"}.`},null,2))}let N=(A.conflictFiles??[]).join(", "),C=A.conflictAt==="mainline_to_intent_main"?`The conflict happened in a temp worktree that's already been cleaned up \u2014 there are NO conflict markers in your working tree. To resolve: \`git checkout ${x}\`, merge the mainline ref manually (\`git merge \`), resolve the listed files, \`git add\` + \`git commit\`, then \`git checkout\` back to your original branch and re-run \`haiku_run_next\`.`:"Resolve the conflict on the listed files in place, run `git add ` and `git commit`, then re-run `haiku_run_next`.";return ye(JSON.stringify({action:"error",intent:r,error:"pre_cursor_sync_conflict",conflict_at:A.conflictAt,conflict_branch:k,conflict_files:A.conflictFiles,message:`Pre-cursor downstream sync hit a conflict on branch '${x}' (${A.conflictAt}). ${C} Conflicted files: ${N}.`},null,2))}}}}if(e.external_review_url)try{let S=ve(),_=po(S,"intents",r,"intent.md");iu(_)&&De(_,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(pv(),QL));S(r)}catch(S){console.error(`[haiku_run_next] drainPendingDispatches failed: ${S instanceof Error?S.message:String(S)}`)}let c=ry(r);try{let S=YPt(),_=`haiku/${r}/`,b=S.startsWith(_)&&S!==`${_}main`?S.slice(_.length):null;if(b&&!(typeof c.stage=="string"&&c.stage===b)){let T=pe(r),A=po(T,"intent.md");if(iu(A)){let R=jU(A),x=R.studio||"",k=R.mode||"continuous";if(x&&R0(T,x,b,k)){let P=`haiku/${r}/${b}`,N=`haiku/${r}/main`;MD(P,N)||(c={action:"complete_stage",intent:r,stage:b})}}}}catch{}{let S=0;for(;c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage";){let _=vx(c);if(++S>uU)return nm("select_*",S,c,"cap");if(a6(n))return c6("select_*",S,n,c);let b=await Lfr(c.action,r,t);if(!b.ok)return{content:[{type:"text",text:b.message}],isError:!0};if(c=ry(r),(c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage")&&vx(c)===_)return nm("select_*",S,c,"no_progress")}}if((c.action==="dispatch_review"||c.action==="dispatch_approval")&&typeof c.stage=="string")try{let{stashPendingDispatch:S}=await Promise.resolve().then(()=>(pv(),QL)),_=c.action==="dispatch_review"?"review":"approval",b=Array.isArray(c.dispatches)?c.dispatches:typeof c.role=="string"&&Array.isArray(c.units)?[{role:c.role,units:c.units}]:[];for(let T of b)S(r,_,c.stage,T.role,T.units)}catch(S){console.error(`[haiku_run_next] stashPendingDispatch failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="start_unit_hat"&&typeof c.stage=="string"&&typeof c.hat=="string"&&Array.isArray(c.units))try{let{stampUnitHatLease:S}=await Promise.resolve().then(()=>(ze(),f5));for(let _ of c.units)typeof _=="string"&&S({slug:r,stage:c.stage,unit:_,hat:c.hat})}catch(S){console.error(`[haiku_run_next] stampUnitHatLease failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="intent_review"){let _=(Array.isArray(c.dispatches)?c.dispatches.map(b=>typeof b?.role=="string"?b.role:"").filter(b=>b.length>0):typeof c.role=="string"?[c.role]:[]).filter(b=>b!=="user");if(_.length>0)try{let{stashPendingIntentReview:b}=await Promise.resolve().then(()=>(pv(),QL));for(let T of _)b(r,T)}catch(b){console.error(`[haiku_run_next] stashPendingIntentReview failed: ${b instanceof Error?b.message:String(b)}`)}}let u=0,l=null;for(;c.action==="close_feedback"&&typeof c.stage=="string"&&typeof c.feedback_id=="string";){let S=vx(c);if(++u>uU)return nm("close_feedback",u,c,"cap");if(a6(n))return c6("close_feedback",u,n,c);if(S===l)return nm("close_feedback",u,c,"no_progress");l=S;try{let _=c.stage,b=c.feedback_id,T=Sc(r,_,b);if(!T)break;let A=T.path,R=T.data,x=new Date().toISOString();De(A,"closed_at",x);let k=R.targets??{},P=k.unit,N=Array.isArray(k.invalidates)?k.invalidates:[];if(P&&N.length>0){let{applyFeedbackInvalidations:C}=await Promise.resolve().then(()=>(pv(),QL));C({slug:r,stage:_,targetUnit:P,invalidates:N})}if(R.origin==="drift"&&P){let C=po(ve(),"intents",r,"stages",_,"units",`${P}.md`);if(iu(C)){let F=po(ve(),"intents",r),{buildReviewRecord:V}=await Promise.resolve().then(()=>(Zf(),gyt)),K=Wx(C,"utf8"),B=re(K).data,X=B.reviews&&typeof B.reviews=="object"?{...B.reviews}:{},G=Array.isArray(B.inputs)?B.inputs:[],M=!1;for(let[q,U]of Object.entries(X)){if(!U||typeof U!="object"||Array.isArray(U))continue;let D=U;if(typeof D.at!="string")continue;let H=V(C,{intentDir:F,unitInputs:G});X[q]={...D,body_sha256:H.body_sha256,input_witnesses:H.input_witnesses},M=!0}M&&De(C,"reviews",X)}}c=ry(r)}catch(_){console.error(`[haiku_run_next] close_feedback execution failed: ${_ instanceof Error?_.message:String(_)}`);break}}if(c.action==="seal_intent")try{let S=po(ve(),"intents",r,"intent.md");iu(S)&&(De(S,"sealed_at",new Date().toISOString()),wt(`haiku: seal intent ${r}`),c=ry(r))}catch(S){console.error(`[haiku_run_next] merge_intent execution failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="pending_seal"&&e.pickup===!0)try{let S=po(ve(),"intents",r,"intent.md");if(iu(S)){let{data:_}=re(Wx(S,"utf8")),b=_.approvals&&typeof _.approvals=="object"?{..._.approvals}:{},T=!1;for(let A of Object.keys(b))KD.has(A)&&b[A]!=null&&(b[A]=null,T=!0);T&&(De(S,"approvals",b),wt(`haiku: re-open delivery review on pickup for ${r}`),c=ry(r))}}catch(S){console.error(`[haiku_run_next] pending-seal pickup re-open failed: ${S instanceof Error?S.message:String(S)}`)}let d=0,f=null;for(;c.action==="complete_stage"&&typeof c.stage=="string";){let S=vx(c);if(++d>uU)return nm("complete_stage",d,c,"cap");if(a6(n))return c6("complete_stage",d,n,c);if(S===f)return nm("complete_stage",d,c,"no_progress");f=S;let _=c.stage;if(lye(pe(r),_)){c={action:"record_observations",intent:r,stage:_};break}try{let{isGitRepo:b}=await Promise.resolve().then(()=>(ze(),f5));if(!b()){c=ry(r);continue}try{let x=`haiku/${r}/${_}`;if(YPt()===x){let k=`.haiku/intents/${r}/stages/${_}/observations.md`;s_("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(s_("git",["add","--",k],{stdio:"ignore"}),s_("git",["commit","-m",`haiku: observations for stage ${_}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(yr(),BD)),{withIntentMainLock:A}=await Promise.resolve().then(()=>(j0(),vSt)),R=A(r,()=>T(r,_));if(!R.success)return R.isConflict?{content:[{type:"text",text:`Stage '${_}' completion blocked by conflict: ${R.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${_}' completion blocked: its branch could not be merged into intent-main: ${R.message} -The stage branch \`haiku/${r}/${_}\` is intact (not deleted) \u2014 no work is lost. Resolve the merge on \`haiku/${r}/main\` (commit/stash any blocking untracked files, then \`git merge haiku/${r}/${_}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:k}=await Promise.resolve().then(()=>(c0t(),a0t)),x=fe(r),N=Io(x,"intent.md");if(Zu(N)){let P=AU(N),D=P.studio||"";if(D){let j=k({intentDir:x,intentFm:P,studio:D,completedStage:_});j.units_cleared>0&&Qe("haiku.revisit.downstream_invalidated",{intent:r,completed_stage:_,stages_cleared:j.stages_cleared.join(","),units_cleared:String(j.units_cleared)})}}}catch(k){console.error(`[haiku_run_next] downstream invalidation failed (non-fatal): ${k instanceof Error?k.message:String(k)}`)}c=eE(r)}catch(b){console.error(`[haiku_run_next] complete_stage execution failed: ${b instanceof Error?b.message:String(b)}`);break}}if(typeof c.stage=="string"&&c.stage.length>0)try{let S=Io(we(),"intents",r,"intent.md");if(Zu(S)){let _=mr(r,c.stage);if(!_.ok)return G_(r,c.stage,_,"run_next post-cursor revisit alignment")}}catch{}Qe("haiku.orchestrator.action",{intent:r,action:c.action}),i&&ts(i,{event:"run_next",intent:r,action:c.action,stage:c.stage,unit:c.unit,hat:c.hat,wave:c.wave}),i&&c.action==="outputs_missing"&&ts(i,{event:"outputs_missing",intent:r,stage:c.stage,missing:c.missing}),i&&c.action==="discovery_missing"&&ts(i,{event:"discovery_missing",intent:r,stage:c.stage,missing:c.missing});let p={};try{let S=fe(r),_=RU(Io(S,"intent.md"),"utf8");p=re(_).data}catch{}let h=p.studio||"",m=S=>{fx(S);let _=p.drift_cascade_alarm;_&&typeof _=="object"&&!Array.isArray(_)&&Object.keys(_).length>0&&(S.drift_cascade_alarm={stages:Object.keys(_),recommendation:"Drift cascade detected \u2014 the engine is suppressing new drift FBs while the queue drains. If this recurs after the queue clears, run `/haiku:haiku-repair` to refresh the witness baseline; this typically happens after a plugin version migration."});let b=P1(r,h,S,fe(r)),T=y6(b),{tell_user:A,next_step:R,...k}=S;return`${JSON.stringify(k,null,2)} +The stage branch \`haiku/${r}/${_}\` is intact (not deleted) \u2014 no work is lost. Resolve the merge on \`haiku/${r}/main\` (commit/stash any blocking untracked files, then \`git merge haiku/${r}/${_}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:x}=await Promise.resolve().then(()=>(axt(),oxt)),k=pe(r),P=po(k,"intent.md");if(iu(P)){let N=jU(P),C=N.studio||"";if(C){let F=x({intentDir:k,intentFm:N,studio:C,completedStage:_});F.units_cleared>0&&Ke("haiku.revisit.downstream_invalidated",{intent:r,completed_stage:_,stages_cleared:F.stages_cleared.join(","),units_cleared:String(F.units_cleared)})}}}catch(x){console.error(`[haiku_run_next] downstream invalidation failed (non-fatal): ${x instanceof Error?x.message:String(x)}`)}c=ry(r)}catch(b){console.error(`[haiku_run_next] complete_stage execution failed: ${b instanceof Error?b.message:String(b)}`);break}}if(typeof c.stage=="string"&&c.stage.length>0)try{let S=po(ve(),"intents",r,"intent.md");if(iu(S)){let _=gr(r,c.stage);if(!_.ok)return YE(r,c.stage,_,"run_next post-cursor revisit alignment")}}catch{}Ke("haiku.orchestrator.action",{intent:r,action:c.action}),i&&qi(i,{event:"run_next",intent:r,action:c.action,stage:c.stage,unit:c.unit,hat:c.hat,wave:c.wave}),i&&c.action==="outputs_missing"&&qi(i,{event:"outputs_missing",intent:r,stage:c.stage,missing:c.missing}),i&&c.action==="discovery_missing"&&qi(i,{event:"discovery_missing",intent:r,stage:c.stage,missing:c.missing});let p={};try{let S=pe(r),_=Wx(po(S,"intent.md"),"utf8");p=re(_).data}catch{}let h=p.studio||"",m=S=>{Ex(S);let _=p.drift_cascade_alarm;_&&typeof _=="object"&&!Array.isArray(_)&&Object.keys(_).length>0&&(S.drift_cascade_alarm={stages:Object.keys(_),recommendation:"Drift cascade detected \u2014 the engine is suppressing new drift FBs while the queue drains. If this recurs after the queue clears, run `/haiku:haiku-repair` to refresh the witness baseline; this typically happens after a plugin version migration."});let b=K1(r,h,S,pe(r)),T=PZ(b),{tell_user:A,next_step:R,...x}=S;return`${JSON.stringify(x,null,2)} --- -${T}`};if(c.action==="external_review_requested"&&!e.external_review_url&&!p.external_review_url&&typeof c.stage=="string"&&c.stage.length>0)try{let{openStagePullRequest:S}=await Promise.resolve().then(()=>(Tr(),CD)),_=S({slug:r,stage:c.stage});if(_.createdUrl){try{let b=Io(we(),"intents",r,"intent.md");je(b,"external_review_url",_.createdUrl)}catch{}c.message=`${c.message||""} +${T}`};if(c.action==="external_review_requested"&&!e.external_review_url&&!p.external_review_url&&typeof c.stage=="string"&&c.stage.length>0)try{let{openStagePullRequest:S}=await Promise.resolve().then(()=>(yr(),BD)),_=S({slug:r,stage:c.stage});if(_.createdUrl){try{let b=po(ve(),"intents",r,"intent.md");De(b,"external_review_url",_.createdUrl)}catch{}c.message=`${c.message||""} The engine opened the MR for you: ${_.createdUrl} \u2014 base is \`haiku/${r}/main\` so the workflow engine can detect the merge. Tell the user; they review and merge when ready, then run /haiku:haiku-pickup.`}else _.compareUrl?c.message=`${c.message||""} @@ -1544,30 +1547,30 @@ Engine couldn't open the MR via gh/glab (${_.prError??_.pushError??"no CLI found ${_.message} Open ONE merge request from branch \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default branch \u2014 the engine detects merges via intent main, not the repo default). Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}catch(S){c.message=`${c.message||""} -IMPORTANT: Open the change request from \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default). Try \`gh pr create --base haiku/${r}/main\` for GitHub or \`glab mr create --target-branch haiku/${r}/main\` for GitLab. (Engine helper threw: ${S instanceof Error?S.message:String(S)}.) Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}let y=0,g=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=gx(c);if(++y>Z1)return Xh("gate_review",y,c,"cap");if(S===g)return Xh("gate_review",y,c,"no_progress");g=S;let _=c.stage??"",b=c.action==="user_gate",T=b?c.gate_kind:"",A=b?null:c.next_stage??null;if(b&&T==="approval"&&_)try{let{resolveStudioStages:D}=await Promise.resolve().then(()=>(_o(),yft)),j=Io(we(),"intents",r,"intent.md"),Z=(Zu(j)?re(RU(j,"utf8")).data:{}).studio||"";if(Z){let B=D(Z)??[],G=B.indexOf(_);G>=0&&Gov(D.session_id)||PL(r);!D.browser_attached&&!Z()&&sp(D.review_url,"Gate review");let{orchestratorToolHandlers:B}=await Promise.resolve().then(()=>(W1(),RTe)),G=B.get("haiku_await_gate");if(!G)return be("haiku_await_gate handler not registered \u2014 server.ts wiring is broken. File a bug.");let X=await G.handle({intent:r,session_id:D.session_id,review_url:D.review_url,auto_open:!1,gate_context:k,next_stage:A,next_phase:R,...i?{state_file:i}:{}},t);if(X.isError)return X;let q=Blr(X);if(q&&new Set(["advance_phase","advance_stage","intent_approved","advance"]).has(q)){c=eE(r);continue}return X}catch(D){let j=D instanceof Error?D.message:String(D),V=D instanceof Error?D.stack:"",Z=j.includes("lost presence"),B=j==="aborted"||t?.aborted,G=B?"abort":Z?"await":"prepare";console.error(`[haiku] gate_review ${G} failed: ${j}`),B||ps(D,{intent:r,stage:_});try{let X=Io(process.cwd(),".haiku","logs");Hlr(X,{recursive:!0}),qlr(Io(X,"gate-review-error.log"),`${new Date().toISOString()} +IMPORTANT: Open the change request from \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default). Try \`gh pr create --base haiku/${r}/main\` for GitHub or \`glab mr create --target-branch haiku/${r}/main\` for GitLab. (Engine helper threw: ${S instanceof Error?S.message:String(S)}.) Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}let g=0,y=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=vx(c);if(++g>uU)return nm("gate_review",g,c,"cap");if(S===y)return nm("gate_review",g,c,"no_progress");y=S;let _=c.stage??"",b=c.action==="user_gate",T=b?c.gate_kind:"",A=b?null:c.next_stage??null;if(b&&T==="approval"&&_)try{let{resolveIntentStages:C}=await Promise.resolve().then(()=>(ns(),Yft)),F=po(ve(),"intents",r,"intent.md"),V=iu(F)?re(Wx(F,"utf8")).data:{},K=V.studio||"";if(K){let $=C(V,K),B=$.indexOf(_);B>=0&&B<$.length-1&&(A=$[B+1])}}catch{}let R=b?null:c.next_phase??null;b&&T==="spec"&&(R="execute");let x=b?T==="spec"?"elaborate_to_execute":"stage_gate":c.gate_context||"stage_gate",k=b?"ask":c.gate_type,P=`.haiku/intents/${r}`;i&&qi(i,{event:"gate_review_prepared",intent:r,stage:_,gate_type:k});let N=nve();if(!N){if(b)break;return ye("Gate-review prepare handler not registered \u2014 server.ts wiring is broken. File a bug.")}try{let C=await N(P,k,{gateContext:x,stage:_,nextStage:A,nextPhase:R});Xr(r,e.state_file);let F=$t(C.session_id);if(!(F?.session_type==="review"&&!!F.announced_at))try{Cl(C.session_id,{announced_at:new Date().toISOString()})}catch{}let K=()=>lv(C.session_id)||GL(r);!C.browser_attached&&!K()&&lp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(aU(),tve)),B=$.get("haiku_await_gate");if(!B)return ye("haiku_await_gate handler not registered \u2014 server.ts wiring is broken. File a bug.");let X=await B.handle({intent:r,session_id:C.session_id,review_url:C.review_url,auto_open:!1,gate_context:x,next_stage:A,next_phase:R,...i?{state_file:i}:{}},t);if(X.isError)return X;let G=Dfr(X);if(G&&new Set(["advance_phase","advance_stage","intent_approved","advance"]).has(G)){c=ry(r);continue}return X}catch(C){let F=C instanceof Error?C.message:String(C),V=C instanceof Error?C.stack:"",K=F.includes("lost presence"),$=F==="aborted"||t?.aborted,B=$?"abort":K?"await":"prepare";console.error(`[haiku] gate_review ${B} failed: ${F}`),$||ms(C,{intent:r,stage:_});try{let X=po(process.cwd(),".haiku","logs");Cfr(X,{recursive:!0}),Mfr(po(X,"gate-review-error.log"),`${new Date().toISOString()} intent: ${r} stage: ${_} -phase: ${G} -error: ${j} +phase: ${B} +error: ${F} ${V} --- -`,{flag:"a"})}catch{}return Yr(r,e.state_file),G==="abort"?{content:[{type:"text",text:`GATE ABORTED: the tool call was cancelled while waiting for the browser. Call haiku_run_next { intent: "${r}" } to retry.`}],isError:!0}:G==="await"?{content:[{type:"text",text:`GATE DISCONNECTED: ${j}`}],isError:!0}:{content:[{type:"text",text:`GATE PREPARE FAILED: ${j}. Logged to .haiku/logs/gate-review-error.log. Call haiku_run_next { intent: "${r}" } to retry.`}],isError:!0}}}if(c.action==="safe_intent_repair")try{let{runRepairAgent:S}=await Promise.resolve().then(()=>(ZOt(),KOt)),_=we(),b=Io(_,"intents",r),A=_i(h)?.path;if(!A)return Yr(r,e.state_file),be(m(c));let R=c.stage||"",k={slug:r,intentDir:b,studio:h,studioDir:A,activeStage:R,synthesizedStages:c.synthesized_stages||[],needsManualReview:c.needs_manual_review||[],phaseRegressed:c.phase_regressed,unitsMissingInputs:c.units_missing_inputs||[]},x=await S(k);{let N=mr(r,c.stage||void 0);if(!N.ok)return G_(r,c.stage||void 0,N,"after repair-agent run")}if(x.success&&!x.fallbackUsed){let N=eE(r);if(N.action!=="safe_intent_repair")return Qe("haiku.orchestrator.action",{intent:r,action:N.action}),i&&ts(i,{event:"run_next",intent:r,action:N.action,stage:N.stage,unit:N.unit,hat:N.hat,wave:N.wave}),Yr(r,e.state_file),{content:[{type:"text",text:`**Intent repaired automatically:** ${x.summary} +`,{flag:"a"})}catch{}return Xr(r,e.state_file),B==="abort"?{content:[{type:"text",text:`GATE ABORTED: the tool call was cancelled while waiting for the browser. Call haiku_run_next { intent: "${r}" } to retry.`}],isError:!0}:B==="await"?{content:[{type:"text",text:`GATE DISCONNECTED: ${F}`}],isError:!0}:{content:[{type:"text",text:`GATE PREPARE FAILED: ${F}. Logged to .haiku/logs/gate-review-error.log. Call haiku_run_next { intent: "${r}" } to retry.`}],isError:!0}}}if(c.action==="safe_intent_repair")try{let{runRepairAgent:S}=await Promise.resolve().then(()=>(KPt(),WPt)),_=ve(),b=po(_,"intents",r),A=si(h)?.path;if(!A)return Xr(r,e.state_file),ye(m(c));let R=c.stage||"",x={slug:r,intentDir:b,studio:h,studioDir:A,activeStage:R,synthesizedStages:c.synthesized_stages||[],needsManualReview:c.needs_manual_review||[],phaseRegressed:c.phase_regressed,unitsMissingInputs:c.units_missing_inputs||[]},k=await S(x);{let P=gr(r,c.stage||void 0);if(!P.ok)return YE(r,c.stage||void 0,P,"after repair-agent run")}if(k.success&&!k.fallbackUsed){let P=ry(r);if(P.action!=="safe_intent_repair")return Ke("haiku.orchestrator.action",{intent:r,action:P.action}),i&&qi(i,{event:"run_next",intent:r,action:P.action,stage:P.stage,unit:P.unit,hat:P.hat,wave:P.wave}),Xr(r,e.state_file),{content:[{type:"text",text:`**Intent repaired automatically:** ${k.summary} --- -`+m(N)}]}}}catch{}try{let S=fe(r),_=Io(S,"intent.md");if(Zu(_)){let b=RU(_,"utf8"),{data:T}=re(b),A=T.studio||"";if(A){let R=_s(r,A);if(R){let k=`haiku/${r}/${R}`,x=kD(r,R);!x.ok&&x.error&&console.error(`[haiku] auto-push of ${k} failed: ${x.error}`)}else{let k=`haiku/${r}/main`;if(Ft(k)&&DK(k)){let x=fg(k);!x.ok&&x.error&&console.error(`[haiku] auto-push of ${k} failed: ${x.error}`)}}}}}catch(S){console.error(`[haiku] auto-push end-of-tick check threw: ${S instanceof Error?S.message:String(S)}`)}Yr(r,e.state_file);let E=m(c);return be(a?`${a} +`+m(P)}]}}}catch{}try{let S=pe(r),_=po(S,"intent.md");if(iu(_)){let b=Wx(_,"utf8"),{data:T}=re(b),A=T.studio||"";if(A){let R=ai(r,A);if(R){let x=`haiku/${r}/${R}`,k=LD(r,R);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}else{let x=`haiku/${r}/main`;if(Pt(x)&&JK(x)){let k=gg(x);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}}}}}catch(S){console.error(`[haiku] auto-push end-of-tick check threw: ${S instanceof Error?S.message:String(S)}`)}Xr(r,e.state_file);let E=m(c);return ye(a?`${a} -${E}`:E)}}});import{existsSync as eNt,readFileSync as zlr}from"node:fs";import{join as $Ot}from"node:path";function Vlr(e){if(!eNt(e))return{};let t=zlr(e,"utf8"),{data:n}=re(t);return n}var Wlr,tNt,nNt=v(()=>{"use strict";Tr();Gd();V_();es();vo();Pge();ze();Ko();ns();dx();Ls();Wlr={continuous:"You're in chat for every stage gate. Best for first-time use or work you want to steer.",discrete:"Each stage opens a real GitHub PR / GitLab MR. Merging the PR is your approval signal.",autopilot:"Agent runs the whole pipeline. Only the pre-intent review and the final delivery PR require human attention.","discrete-hybrid":"Continuous within most stages, but specific stages declared with external review still pop a per-stage PR.",quick:"Single stage only. Operates like continuous but the workflow runs exactly one studio stage and stops. Not changeable mid-flight."},tNt={name:"haiku_select_mode",description:"Select an execution mode for an intent. Pass the intent slug and optionally a list of mode names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:l0,async handle(e,t){let n=qe(e,sge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=we(),o=$Ot(s,"intents",i),a=$Ot(o,"intent.md");if(!eNt(a))return be(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Vlr(a),u=c.studio||"";if(!u)return be(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase(),{findCurrentStage:d}=await Promise.resolve().then(()=>(hc(),T0)),p=!!(d(i,u)??""),m=$9.filter(_=>_!=="discrete-hybrid").filter(_=>_==="quick"?!p:!(l==="quick"&&p));if(m.length===0)return be(JSON.stringify({error:"no_modes_available",message:`Intent '${i}' is in mode '${l}' and has started \u2014 no other mode is reachable from here without resetting.`}));let g=(r.options??[]).map(_=>_.toLowerCase());if(g.length>0){let _=g.filter(b=>!m.includes(b));if(_.length>0)return be(JSON.stringify({error:"invalid_mode_options",message:`Mode option(s) [${_.join(", ")}] are not available for intent '${i}'. Available: ${m.join(", ")}.`}))}let E="";if(g.length===1)E=g[0];else{let b=(g.length===0?[...m]:g).map(A=>({id:A,label:A,description:Wlr[A]??A})),T=await Gu({intentSlug:i,kind:"mode",title:p?`Change mode for "${i}"`:`Pick a mode for "${i}"`,prompt:p?"You can adjust the mode mid-flight; in-flight stages keep their current shape until the next gate.":"Modes change how often the engine pauses for you. You can adjust this later, but the studio stays locked.",options:b,signal:t});if(T.timedOut||!T.selection)return be(JSON.stringify({action:"cancelled",message:Xn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));E=T.selection.id}if(E=E.toLowerCase(),!m.includes(E))return{content:[{type:"text",text:`Selected mode '${E}' is not available for intent '${i}'. Available: ${m.join(", ")}.`}],isError:!0};let S=mr(i,void 0);if(!S.ok)return{content:[{type:"text",text:`Error: branch enforcement failed after mode selection for intent '${i}' \u2014 ${S.message}. Resolve manually and retry.`}],isError:!0};if(je(a,"mode",E),E==="quick")qh(a,["stages"]);else{let _=So(u);je(a,"stages",_)}return Dt(`haiku: select mode ${E} for intent ${i}`),Qe("haiku.mode.selected",{intent:i,mode:E,previous_mode:l||"(none)",intent_started:String(p)}),be(JSON.stringify({action:"mode_selected",intent:i,mode:E,previous_mode:l||null,message:E==="quick"?Xn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):Xn(`The user picked **${E}** mode for "${i}"${l&&l!==E?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as iNt,readFileSync as Klr}from"node:fs";import{join as rNt}from"node:path";function Zlr(e){if(!iNt(e))return{};let t=Klr(e,"utf8"),{data:n}=re(t);return n}var sNt,oNt=v(()=>{"use strict";Tr();Gd();V_();es();vo();ze();Ko();ns();dx();Ls();sNt={name:"haiku_select_stage",description:"Select the single stage for a quick-mode intent. Pass the intent slug and optionally a list with one stage name to auto-select. Otherwise opens a SPA picker and blocks on the user's choice. Refuses if the intent's mode is not 'quick' or if a stage is already set.",inputSchema:d0,async handle(e,t){let n=qe(e,oge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=we(),o=rNt(s,"intents",i),a=rNt(o,"intent.md");if(!iNt(a))return be(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Zlr(a),u=c.studio||"";if(!u)return be(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase();if(l!=="quick")return be(JSON.stringify({error:"mode_not_quick",message:`haiku_select_stage only applies to quick-mode intents (intent '${i}' is in '${l||"(none)"}' mode). Non-quick modes get the studio's full stage list set automatically by haiku_select_mode.`}));let d=c.stages||[];if(Array.isArray(d)&&d.length>0)return be(JSON.stringify({error:"stage_already_set",message:`Intent '${i}' already has stages set (${JSON.stringify(d)}). Reset the intent if you need to pick a different stage.`}));let f=So(u);if(f.length===0)return{content:[{type:"text",text:`Studio '${u}' has no stages.`}],isError:!0};let h=(r.options??[]).map(g=>f.find(E=>E.toLowerCase()===g.toLowerCase())).filter(g=>!!g);if(h.length>1)return be(JSON.stringify({error:"single_stage_required",message:`haiku_select_stage requires zero or one option (quick mode is single-stage). Got ${h.length}: [${h.join(", ")}].`}));let m="";if(h.length===1)m=h[0];else{let g=await Gu({intentSlug:i,kind:"stage",title:`Pick the single stage for "${i}"`,prompt:`Quick mode runs exactly one stage from the ${u} studio.`,options:f.map(E=>({id:E,label:E})),signal:t});if(g.timedOut||!g.selection)return be(JSON.stringify({action:"cancelled",message:Xn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=g.selection.id}if(!f.includes(m))return{content:[{type:"text",text:`Stage '${m}' is not in studio '${u}'. Available: ${f.join(", ")}.`}],isError:!0};let y=mr(i,void 0);return y.ok?(je(a,"stages",[m]),Dt(`haiku: select stage ${m} for quick intent ${i}`),Qe("haiku.stage.selected",{intent:i,stage:m,studio:u}),be(JSON.stringify({action:"stage_selected",intent:i,stage:m,stages:[m],message:Xn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${y.message}. Resolve manually and retry.`}],isError:!0}}}});function aNt(e,t){let n=new Map(e.map(a=>[a.name,a])),r=new Set(t),i=[];for(let a of t){let c=n.get(a);c&&!i.includes(c)&&i.push(c)}let s=[...i,...e.filter(a=>!r.has(a.name))],o=i.length>0;return s.map(a=>({id:a.dir,label:a.name,description:a.description??"",...o&&!r.has(a.name)?{secondary:!0}:{}}))}var cNt=v(()=>{"use strict"});import{existsSync as kTe,readdirSync as Ylr,readFileSync as Jlr}from"node:fs";import{join as PY}from"node:path";var uNt,lNt=v(()=>{"use strict";Tr();Gd();V_();es();vo();ze();Zn();Ko();ns();dx();Ls();cNt();uNt={name:"haiku_select_studio",description:"Select a studio for an intent. Pass the intent slug and optionally a list of studio names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Refuses if the intent has already entered a stage. The studio is locked once written \u2014 it cannot be changed later.",inputSchema:u0,async handle(e,t){let n=qe(e,ige,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=we(),o=PY(s,"intents",i),a=PY(o,"intent.md");if(!kTe(a))return be(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=PY(o,"stages");if(kTe(c))for(let h of Ylr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=PY(c,h.name,"state.json");if(kTe(m)){let y=C_(m);if(y.status&&y.status!=="pending")return{content:[{type:"text",text:"Cannot change studio after intent has entered a stage. Studio is locked at start."}],isError:!0}}}let u=mI();if(u.length===0)return{content:[{type:"text",text:"No studios available."}],isError:!0};let l=r.options??[],d="";if(l.length===1){let h=_i(l[0]);if(!h)return{content:[{type:"text",text:`Studio '${l[0]}' not found. Available: ${u.map(m=>m.name).join(", ")}`}],isError:!0};d=h.dir}else{let m=l.map(E=>_i(E)).filter(E=>E!==null).map(E=>E.name);if(m.length===0){let E=[];try{let{data:S}=re(Jlr(a,"utf8"));E=S.studio_candidates}catch{}Array.isArray(E)&&(m=E.filter(S=>typeof S=="string").map(S=>_i(S)).filter(S=>S!==null).map(S=>S.name))}let y=aNt(u,m),g=await Gu({intentSlug:i,kind:"studio",title:`Pick a studio for "${i}"`,prompt:"Studios are locked once chosen \u2014 pick the lifecycle that matches the work. You can adjust the mode mid-flight, but not the studio.",options:y,signal:t});if(g.timedOut||!g.selection)return be(JSON.stringify({action:"cancelled",message:Xn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=g.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=mr(i,void 0);if(!f.ok)return{content:[{type:"text",text:`Error: branch enforcement failed after studio selection for intent '${i}' \u2014 ${f.message}. Resolve manually and retry.`}],isError:!0};let p=So(d);return je(a,"studio",d),Dt(`haiku: select studio ${d} for intent ${i}`),Qe("haiku.studio.selected",{intent:i,studio:d}),be(JSON.stringify({action:"studio_selected",intent:i,studio:d,all_studio_stages:p,message:Xn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as dNt,readFileSync as Xlr,writeFileSync as Qlr}from"node:fs";import{join as fNt}from"node:path";var ITe,pNt,hNt=v(()=>{"use strict";ITe=_e(sn(),1);Tr();lx();es();vo();ze();ns();Ls();pNt={name:"haiku_stage_decompose_seal",description:"Stamp `decompose_verified_at` on the per-stage elaboration artifact's frontmatter. The decompose-verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `decompose_review`. Idempotent (no-op when already verified).",inputSchema:h0,handle(e){let t=qe(e,uge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=ux({kind:"stage_decompose",slug:n,stage:r},i);if(!o.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_stage_decompose_seal",reason:o.reason,message:o.reason==="missing"?`No pending decompose-verifier nonce for '${n}/${r}'. The cursor only mints a nonce when emitting the decompose_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Decompose-verifier nonce for '${n}/${r}' does not match the cursor's pending value. If the elaboration was re-recorded since the verifier was dispatched, the nonce was rotated \u2014 re-tick to get the new value.`},null,2)}],isError:!0};let a=we(),c=fNt(a,"intents",n);if(!dNt(c))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_decompose_seal",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let u=fNt(c,"stages",r,"elaboration.md");if(!dNt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_decompose_seal",message:`No elaboration artifact at ${u}. The conversation-elaborate gate must pass before decompose-verify can stamp it.`},null,2)}],isError:!0};let l=mr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for decompose seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=Xlr(u,"utf8"),f=(0,ITe.default)(d),p=f.data;if(typeof p.decompose_verified_at=="string"&&p.decompose_verified_at)return be(JSON.stringify({action:"noop",slug:n,stage:r,path:u,decompose_verified_at:p.decompose_verified_at,message:`Decompose for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,decompose_verified_at:h};return s.trim()&&(m.decompose_verified_notes=s.trim()),Qlr(u,ITe.default.stringify(f.content,m)),Dt(`haiku: seal decompose for ${n}/${r}`),be(JSON.stringify({action:"decompose_sealed",slug:n,stage:r,path:u,decompose_verified_at:h,...s.trim()?{decompose_verified_notes:s.trim()}:{},message:`Sealed decompose for '${n}/${r}'. The cursor will advance past decompose_review on the next tick.`},null,2))}}});import{existsSync as $lr,mkdirSync as edr,writeFileSync as tdr}from"node:fs";import{join as xTe}from"node:path";var mNt,gNt,yNt=v(()=>{"use strict";mNt=_e(sn(),1);Tr();lx();es();vo();ze();ns();Ls();gNt={name:"haiku_stage_elaboration_record",description:"Capture the per-stage human-conversation outcome at `stages//elaboration.md`. Call this when the conversation with the user has reached alignment for the active stage's `elaborate` action. The artifact's frontmatter records `recorded_at`; `verified_at` is stamped separately by the verifier subagent. Overwrites any prior artifact (clearing a stale `verified_at`). Cursor stays at `elaborate_review` until the verifier seals the artifact.",inputSchema:f0,handle(e){let t=qe(e,age,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=we(),o=xTe(s,"intents",n);if(!$lr(o))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_record",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let a=xTe(o,"stages",r),c=mr(n,r);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration record on '${n}/${r}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};edr(a,{recursive:!0});let u=xTe(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return tdr(u,mNt.default.stringify(i,d)),mEe({kind:"stage_elaborate",slug:n,stage:r}),mEe({kind:"stage_decompose",slug:n,stage:r}),Dt(`haiku: record elaboration for ${n}/${r}`),be(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as SNt,readFileSync as ndr,writeFileSync as rdr}from"node:fs";import{join as _Nt}from"node:path";var OTe,ENt,bNt=v(()=>{"use strict";OTe=_e(sn(),1);Tr();lx();es();vo();ze();ns();Ls();ENt={name:"haiku_stage_elaboration_seal",description:"Stamp `verified_at` on the per-stage elaboration artifact's frontmatter. The verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `elaborate_review`. Idempotent (no-op when already verified).",inputSchema:p0,handle(e){let t=qe(e,cge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=ux({kind:"stage_elaborate",slug:n,stage:r},i);if(!o.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_stage_elaboration_seal",reason:o.reason,message:o.reason==="missing"?`No pending verifier nonce for '${n}/${r}'. The cursor only mints a nonce when emitting the elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Verifier nonce for '${n}/${r}' does not match the cursor's pending value. If the elaboration was re-recorded since the verifier was dispatched, the nonce was rotated \u2014 re-tick to get the new value.`},null,2)}],isError:!0};let a=we(),c=_Nt(a,"intents",n);if(!SNt(c))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_seal",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let u=_Nt(c,"stages",r,"elaboration.md");if(!SNt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_elaboration_seal",message:`No elaboration artifact at ${u}. The agent must call \`haiku_stage_elaboration_record\` before the verifier can seal it.`},null,2)}],isError:!0};let l=mr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=ndr(u,"utf8"),f=(0,OTe.default)(d),p=f.data;if(typeof p.verified_at=="string"&&p.verified_at)return be(JSON.stringify({action:"noop",slug:n,stage:r,path:u,verified_at:p.verified_at,message:`Elaboration for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,verified_at:h};return s.trim()&&(m.verified_notes=s.trim()),rdr(u,OTe.default.stringify(f.content,m)),Dt(`haiku: seal elaboration for ${n}/${r}`),be(JSON.stringify({action:"elaboration_sealed",slug:n,stage:r,path:u,verified_at:h,...s.trim()?{verified_notes:s.trim()}:{},message:`Sealed elaboration for '${n}/${r}'. The cursor will advance past elaborate on the next tick.`},null,2))}}});import{execFileSync as NTe}from"node:child_process";import{existsSync as wU,readdirSync as TNt,readFileSync as idr,rmSync as vNt,statSync as ANt}from"node:fs";import{join as nE}from"node:path";var RNt,wNt=v(()=>{"use strict";Tr();V_();es();vo();ze();ns();Ls();RNt={name:"haiku_stage_reset",description:"Reset ONE stage of an intent: wipe its units, outputs, artifacts, elaboration, feedback, and stage branch. The intent's other stages are untouched. Use after fixing the stage's hat instructions or studio config when the user wants the agent to re-run that stage cleanly. Requires user confirmation via the SPA picker.",inputSchema:a0,async handle(e,t){let n=qe(e,$me,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=we(),o=nE(s,"intents",r),a=nE(o,"intent.md");if(!wU(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=nE(o,"stages",i);if(!wU(c))return{content:[{type:"text",text:`Stage '${i}' not found on intent '${r}' (no \`stages/${i}/\` directory).`}],isError:!0};let u=[];for(let m of["units","outputs","artifacts","feedback","elaboration.md","decisions.jsonl"]){let y=nE(c,m);wU(y)&&u.push(m)}let l=nE(c,"discovery"),d=(()=>{if(!wU(l))return!1;try{return TNt(l).some(m=>{let y=nE(l,m);try{return ANt(y).isFile()&&m.endsWith(".md")}catch{return!1}})}catch{return!1}})();d&&u.push("discovery (outputs only, templates preserved)");let f=`haiku/${r}/${i}`,p=Ae()&&Ft(f);if(p&&u.push(`git branch \`${f}\``),u.length===0)return be(JSON.stringify({action:"noop",message:`Stage '${i}' has no resettable state \u2014 already clean.`}));let h=await Gu({intentSlug:r,kind:"confirm",title:`Reset stage "${i}" on intent "${r}"?`,prompt:`This will DELETE the following from stage '${i}': +${E}`:E)}}});import{existsSync as $Pt,readFileSync as Ufr}from"node:fs";import{join as QPt}from"node:path";function Ffr(e){if(!$Pt(e))return{};let t=Ufr(e,"utf8"),{data:n}=re(t);return n}var jfr,eNt,tNt=v(()=>{"use strict";yr();Vd();JE();ji();uo();Xge();ze();vo();Gi();Fv();vs();jfr={continuous:"You're in chat for every stage gate. Best for first-time use or work you want to steer.",discrete:"Each stage opens a real GitHub PR / GitLab MR. Merging the PR is your approval signal.",autopilot:"Agent runs the whole pipeline. Only the pre-intent review and the final delivery PR require human attention.","discrete-hybrid":"Continuous within most stages, but specific stages declared with external review still pop a per-stage PR.",quick:"Single stage only. Operates like continuous but the workflow runs exactly one studio stage and stops. Not changeable mid-flight."},eNt={name:"haiku_select_mode",description:"Select an execution mode for an intent. Pass the intent slug and optionally a list of mode names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:h0,async handle(e,t){let n=Be(e,vge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=ve(),o=QPt(s,"intents",i),a=QPt(o,"intent.md");if(!$Pt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=Ffr(a),u=c.studio||"";if(!u)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase(),{findCurrentStage:d}=await Promise.resolve().then(()=>(Oa(),k0)),p=!!(d(i,u)??""),m=mY.filter(_=>_!=="discrete-hybrid").filter(_=>_==="quick"?!p:!(l==="quick"&&p));if(m.length===0)return ye(JSON.stringify({error:"no_modes_available",message:`Intent '${i}' is in mode '${l}' and has started \u2014 no other mode is reachable from here without resetting.`}));let y=(r.options??[]).map(_=>_.toLowerCase());if(y.length>0){let _=y.filter(b=>!m.includes(b));if(_.length>0)return ye(JSON.stringify({error:"invalid_mode_options",message:`Mode option(s) [${_.join(", ")}] are not available for intent '${i}'. Available: ${m.join(", ")}.`}))}let E="";if(y.length===1)E=y[0];else{let b=(y.length===0?[...m]:y).map(A=>({id:A,label:A,description:jfr[A]??A})),T=await Zu({intentSlug:i,kind:"mode",title:p?`Change mode for "${i}"`:`Pick a mode for "${i}"`,prompt:p?"You can adjust the mode mid-flight; in-flight stages keep their current shape until the next gate.":"Modes change how often the engine pauses for you. You can adjust this later, but the studio stays locked.",options:b,signal:t});if(T.timedOut||!T.selection)return ye(JSON.stringify({action:"cancelled",message:zn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));E=T.selection.id}if(E=E.toLowerCase(),!m.includes(E))return{content:[{type:"text",text:`Selected mode '${E}' is not available for intent '${i}'. Available: ${m.join(", ")}.`}],isError:!0};let S=gr(i,void 0);if(!S.ok)return{content:[{type:"text",text:`Error: branch enforcement failed after mode selection for intent '${i}' \u2014 ${S.message}. Resolve manually and retry.`}],isError:!0};if(De(a,"mode",E),E==="quick")Kh(a,["stages"]);else{let _=Fs(u);De(a,"stages",_)}return wt(`haiku: select mode ${E} for intent ${i}`),Ke("haiku.mode.selected",{intent:i,mode:E,previous_mode:l||"(none)",intent_started:String(p)}),ye(JSON.stringify({action:"mode_selected",intent:i,mode:E,previous_mode:l||null,message:E==="quick"?zn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):zn(`The user picked **${E}** mode for "${i}"${l&&l!==E?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as rNt,readFileSync as Hfr}from"node:fs";import{join as nNt}from"node:path";function qfr(e){if(!rNt(e))return{};let t=Hfr(e,"utf8"),{data:n}=re(t);return n}var iNt,sNt=v(()=>{"use strict";yr();Vd();JE();ji();uo();ze();vo();Gi();Fv();vs();iNt={name:"haiku_select_stage",description:"Select the single stage for a quick-mode intent. Pass the intent slug and optionally a list with one stage name to auto-select. Otherwise opens a SPA picker and blocks on the user's choice. Refuses if the intent's mode is not 'quick' or if a stage is already set.",inputSchema:m0,async handle(e,t){let n=Be(e,Age,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=ve(),o=nNt(s,"intents",i),a=nNt(o,"intent.md");if(!rNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=qfr(a),u=c.studio||"";if(!u)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase();if(l!=="quick")return ye(JSON.stringify({error:"mode_not_quick",message:`haiku_select_stage only applies to quick-mode intents (intent '${i}' is in '${l||"(none)"}' mode). Non-quick modes get the studio's full stage list set automatically by haiku_select_mode.`}));let d=c.stages||[];if(Array.isArray(d)&&d.length>0)return ye(JSON.stringify({error:"stage_already_set",message:`Intent '${i}' already has stages set (${JSON.stringify(d)}). Reset the intent if you need to pick a different stage.`}));let f=Fs(u);if(f.length===0)return{content:[{type:"text",text:`Studio '${u}' has no stages.`}],isError:!0};let h=(r.options??[]).map(y=>f.find(E=>E.toLowerCase()===y.toLowerCase())).filter(y=>!!y);if(h.length>1)return ye(JSON.stringify({error:"single_stage_required",message:`haiku_select_stage requires zero or one option (quick mode is single-stage). Got ${h.length}: [${h.join(", ")}].`}));let m="";if(h.length===1)m=h[0];else{let y=await Zu({intentSlug:i,kind:"stage",title:`Pick the single stage for "${i}"`,prompt:`Quick mode runs exactly one stage from the ${u} studio.`,options:f.map(E=>({id:E,label:E})),signal:t});if(y.timedOut||!y.selection)return ye(JSON.stringify({action:"cancelled",message:zn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=y.selection.id}if(!f.includes(m))return{content:[{type:"text",text:`Stage '${m}' is not in studio '${u}'. Available: ${f.join(", ")}.`}],isError:!0};let g=gr(i,void 0);return g.ok?(De(a,"stages",[m]),wt(`haiku: select stage ${m} for quick intent ${i}`),Ke("haiku.stage.selected",{intent:i,stage:m,studio:u}),ye(JSON.stringify({action:"stage_selected",intent:i,stage:m,stages:[m],message:zn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${g.message}. Resolve manually and retry.`}],isError:!0}}}});function oNt(e,t){let n=new Map(e.map(a=>[a.name,a])),r=new Set(t),i=[];for(let a of t){let c=n.get(a);c&&!i.includes(c)&&i.push(c)}let s=[...i,...e.filter(a=>!r.has(a.name))],o=i.length>0;return s.map(a=>({id:a.dir,label:a.name,description:a.description??"",...o&&!r.has(a.name)?{secondary:!0}:{}}))}var aNt=v(()=>{"use strict"});import{existsSync as rve,readdirSync as Bfr,readFileSync as Gfr}from"node:fs";import{join as J6}from"node:path";var cNt,uNt=v(()=>{"use strict";yr();Vd();JE();ji();uo();ze();Kn();vo();Gi();Fv();vs();aNt();cNt={name:"haiku_select_studio",description:"Select a studio for an intent. Pass the intent slug and optionally a list of studio names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Refuses if the intent has already entered a stage. The studio is locked once written \u2014 it cannot be changed later.",inputSchema:p0,async handle(e,t){let n=Be(e,Tge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=ve(),o=J6(s,"intents",i),a=J6(o,"intent.md");if(!rve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=J6(o,"stages");if(rve(c))for(let h of Bfr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=J6(c,h.name,"state.json");if(rve(m)){let g=jE(m);if(g.status&&g.status!=="pending")return{content:[{type:"text",text:"Cannot change studio after intent has entered a stage. Studio is locked at start."}],isError:!0}}}let u=_I().filter(h=>h.data.deprecated!==!0);if(u.length===0)return{content:[{type:"text",text:"No studios available."}],isError:!0};let l=r.options??[],d="";if(l.length===1){let h=si(l[0]);if(!h)return{content:[{type:"text",text:`Studio '${l[0]}' not found. Available: ${u.map(m=>m.name).join(", ")}`}],isError:!0};d=h.dir}else{let m=l.map(E=>si(E)).filter(E=>E!==null).map(E=>E.name);if(m.length===0){let E=[];try{let{data:S}=re(Gfr(a,"utf8"));E=S.studio_candidates}catch{}Array.isArray(E)&&(m=E.filter(S=>typeof S=="string").map(S=>si(S)).filter(S=>S!==null).map(S=>S.name))}let g=oNt(u,m),y=await Zu({intentSlug:i,kind:"studio",title:`Pick a studio for "${i}"`,prompt:"Studios are locked once chosen \u2014 pick the lifecycle that matches the work. You can adjust the mode mid-flight, but not the studio.",options:g,signal:t});if(y.timedOut||!y.selection)return ye(JSON.stringify({action:"cancelled",message:zn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=y.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=gr(i,void 0);if(!f.ok)return{content:[{type:"text",text:`Error: branch enforcement failed after studio selection for intent '${i}' \u2014 ${f.message}. Resolve manually and retry.`}],isError:!0};let p=Fs(d);return De(a,"studio",d),wt(`haiku: select studio ${d} for intent ${i}`),Ke("haiku.studio.selected",{intent:i,studio:d}),ye(JSON.stringify({action:"studio_selected",intent:i,studio:d,all_studio_stages:p,message:zn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as lNt,readFileSync as zfr,writeFileSync as Vfr}from"node:fs";import{join as dNt}from"node:path";var ive,fNt,pNt=v(()=>{"use strict";ive=Se(Kt(),1);yr();Sx();ji();uo();ze();Gi();vs();fNt={name:"haiku_stage_decompose_seal",description:"Stamp `decompose_verified_at` on the per-stage elaboration artifact's frontmatter. The decompose-verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `decompose_review`. Idempotent (no-op when already verified).",inputSchema:E0,handle(e){let t=Be(e,Ige,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=yx({kind:"stage_decompose",slug:n,stage:r},i);if(!o.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_stage_decompose_seal",reason:o.reason,message:o.reason==="missing"?`No pending decompose-verifier nonce for '${n}/${r}'. The cursor only mints a nonce when emitting the decompose_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Decompose-verifier nonce for '${n}/${r}' does not match the cursor's pending value. If the elaboration was re-recorded since the verifier was dispatched, the nonce was rotated \u2014 re-tick to get the new value.`},null,2)}],isError:!0};let a=ve(),c=dNt(a,"intents",n);if(!lNt(c))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_decompose_seal",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let u=dNt(c,"stages",r,"elaboration.md");if(!lNt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_decompose_seal",message:`No elaboration artifact at ${u}. The conversation-elaborate gate must pass before decompose-verify can stamp it.`},null,2)}],isError:!0};let l=gr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for decompose seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=zfr(u,"utf8"),f=(0,ive.default)(d),p=f.data;if(typeof p.decompose_verified_at=="string"&&p.decompose_verified_at)return ye(JSON.stringify({action:"noop",slug:n,stage:r,path:u,decompose_verified_at:p.decompose_verified_at,message:`Decompose for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,decompose_verified_at:h};return s.trim()&&(m.decompose_verified_notes=s.trim()),Vfr(u,ive.default.stringify(f.content,m)),wt(`haiku: seal decompose for ${n}/${r}`),ye(JSON.stringify({action:"decompose_sealed",slug:n,stage:r,path:u,decompose_verified_at:h,...s.trim()?{decompose_verified_notes:s.trim()}:{},message:`Sealed decompose for '${n}/${r}'. The cursor will advance past decompose_review on the next tick.`},null,2))}}});import{existsSync as Wfr,mkdirSync as Kfr,writeFileSync as Yfr}from"node:fs";import{join as sve}from"node:path";var hNt,mNt,gNt=v(()=>{"use strict";hNt=Se(Kt(),1);yr();Sx();ji();uo();ze();Gi();vs();mNt={name:"haiku_stage_elaboration_record",description:"Capture the per-stage human-conversation outcome at `stages//elaboration.md`. Call this when the conversation with the user has reached alignment for the active stage's `elaborate` action. The artifact's frontmatter records `recorded_at`; `verified_at` is stamped separately by the verifier subagent. Overwrites any prior artifact (clearing a stale `verified_at`). Cursor stays at `elaborate_review` until the verifier seals the artifact.",inputSchema:y0,handle(e){let t=Be(e,wge,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=ve(),o=sve(s,"intents",n);if(!Wfr(o))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_record",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let a=sve(o,"stages",r),c=gr(n,r);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration record on '${n}/${r}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};Kfr(a,{recursive:!0});let u=sve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return Yfr(u,hNt.default.stringify(i,d)),z_e({kind:"stage_elaborate",slug:n,stage:r}),z_e({kind:"stage_decompose",slug:n,stage:r}),wt(`haiku: record elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as yNt,readFileSync as Zfr,writeFileSync as Jfr}from"node:fs";import{join as SNt}from"node:path";var ove,ENt,_Nt=v(()=>{"use strict";ove=Se(Kt(),1);yr();Sx();ji();uo();ze();Gi();vs();ENt={name:"haiku_stage_elaboration_seal",description:"Stamp `verified_at` on the per-stage elaboration artifact's frontmatter. The verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `elaborate_review`. Idempotent (no-op when already verified).",inputSchema:S0,handle(e){let t=Be(e,kge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=yx({kind:"stage_elaborate",slug:n,stage:r},i);if(!o.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_stage_elaboration_seal",reason:o.reason,message:o.reason==="missing"?`No pending verifier nonce for '${n}/${r}'. The cursor only mints a nonce when emitting the elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Verifier nonce for '${n}/${r}' does not match the cursor's pending value. If the elaboration was re-recorded since the verifier was dispatched, the nonce was rotated \u2014 re-tick to get the new value.`},null,2)}],isError:!0};let a=ve(),c=SNt(a,"intents",n);if(!yNt(c))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_seal",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let u=SNt(c,"stages",r,"elaboration.md");if(!yNt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_elaboration_seal",message:`No elaboration artifact at ${u}. The agent must call \`haiku_stage_elaboration_record\` before the verifier can seal it.`},null,2)}],isError:!0};let l=gr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=Zfr(u,"utf8"),f=(0,ove.default)(d),p=f.data;if(typeof p.verified_at=="string"&&p.verified_at)return ye(JSON.stringify({action:"noop",slug:n,stage:r,path:u,verified_at:p.verified_at,message:`Elaboration for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,verified_at:h};return s.trim()&&(m.verified_notes=s.trim()),Jfr(u,ove.default.stringify(f.content,m)),wt(`haiku: seal elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_sealed",slug:n,stage:r,path:u,verified_at:h,...s.trim()?{verified_notes:s.trim()}:{},message:`Sealed elaboration for '${n}/${r}'. The cursor will advance past elaborate on the next tick.`},null,2))}}});import{execFileSync as ave}from"node:child_process";import{existsSync as HU,readdirSync as bNt,readFileSync as Xfr,rmSync as TNt,statSync as vNt}from"node:fs";import{join as o_}from"node:path";var ANt,RNt=v(()=>{"use strict";yr();JE();ji();uo();ze();Gi();vs();ANt={name:"haiku_stage_reset",description:"Reset ONE stage of an intent: wipe its units, outputs, artifacts, elaboration, feedback, and stage branch. The intent's other stages are untouched. Use after fixing the stage's hat instructions or studio config when the user wants the agent to re-run that stage cleanly. Requires user confirmation via the SPA picker.",inputSchema:d0,async handle(e,t){let n=Be(e,yge,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=ve(),o=o_(s,"intents",r),a=o_(o,"intent.md");if(!HU(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=o_(o,"stages",i);if(!HU(c))return{content:[{type:"text",text:`Stage '${i}' not found on intent '${r}' (no \`stages/${i}/\` directory).`}],isError:!0};let u=[];for(let m of["units","outputs","artifacts","feedback","elaboration.md","decisions.jsonl"]){let g=o_(c,m);HU(g)&&u.push(m)}let l=o_(c,"discovery"),d=(()=>{if(!HU(l))return!1;try{return bNt(l).some(m=>{let g=o_(l,m);try{return vNt(g).isFile()&&m.endsWith(".md")}catch{return!1}})}catch{return!1}})();d&&u.push("discovery (outputs only, templates preserved)");let f=`haiku/${r}/${i}`,p=Ae()&&Pt(f);if(p&&u.push(`git branch \`${f}\``),u.length===0)return ye(JSON.stringify({action:"noop",message:`Stage '${i}' has no resettable state \u2014 already clean.`}));let h=await Zu({intentSlug:r,kind:"confirm",title:`Reset stage "${i}" on intent "${r}"?`,prompt:`This will DELETE the following from stage '${i}': - ${u.join(` - `)} -Other stages of '${r}' will NOT be touched. Intent main's git history (including any prior merge of this stage) stays put. The next \`haiku_run_next\` will re-enter '${i}' at its elaborate phase. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset stage ${i}`,description:"Wipe the stage and let the engine re-run it"},{id:"cancel",label:"Cancel",description:"Keep the stage as-is"}],signal:t});if(h.timedOut||!h.selection||h.selection.id!=="reset")return be(JSON.stringify({action:"cancelled",message:`Reset of stage '${i}' cancelled.`}));if(Ae())try{let m="";try{m=NTe("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(m===f){let y=`haiku/${r}/main`,g=ac(),E=Ft(y)?y:g;try{NTe("git",["checkout",E],{encoding:"utf8",stdio:"pipe"})}catch{NTe("git",["checkout",`${E}^0`],{encoding:"utf8",stdio:"pipe"})}}}catch(m){return{content:[{type:"text",text:`Could not move HEAD off '${f}' for the delete. ${m instanceof Error?m.message:String(m)}`}],isError:!0}}for(let m of["units","outputs","artifacts","feedback","elaboration.md","decisions.jsonl"]){let y=nE(c,m);wU(y)&&vNt(y,{recursive:!0,force:!0})}if(d)try{for(let m of TNt(l)){if(!m.endsWith(".md"))continue;let y=nE(l,m);try{ANt(y).isFile()&&vNt(y,{force:!0})}catch{}}}catch{}try{let m=idr(a,"utf8"),{data:y}=re(m),g=[];if(`gate_review_session_${i}`in y&&g.push(`gate_review_session_${i}`),`gate_review_url_${i}`in y&&g.push(`gate_review_url_${i}`),g.length>0){for(let E of["gate_review_context","gate_review_next_stage","gate_review_next_phase"])E in y&&g.push(E);qh(a,g)}}catch{}if(p)try{f_(r,i)}catch(m){return be(JSON.stringify({action:"stage_reset_partial",slug:r,stage:i,message:`Stage '${i}' state wiped but \`${f}\` branch could not be deleted: ${m instanceof Error?m.message:String(m)}. Delete it manually with \`git branch -D ${f}\` then run \`haiku_run_next\`.`}))}return Dt(`haiku: reset stage ${i} on ${r}`),be(JSON.stringify({action:"stage_reset",slug:r,stage:i,wiped:u,message:`Stage '${i}' has been reset. Call \`haiku_run_next { intent: "${r}" }\` to re-enter the stage at its elaborate phase.`},null,2))}}});import{existsSync as sdr,readFileSync as odr,writeFileSync as adr}from"node:fs";var PTe,cdr,kNt,INt=v(()=>{"use strict";PTe=_e(sn(),1);Tr();V_();es();vo();ze();ns();Ls();cdr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],kNt={name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:g0,async handle(e,t){let n=qe(e,Oge,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Qo(r,i,s);if(!sdr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=odr(o,"utf8"),{data:c,content:u}=(0,PTe.default)(a),l=U0(c);if(l==="pending")return be(JSON.stringify({action:"noop",slug:r,stage:i,unit:s,message:`Unit '${s}' is already pending \u2014 nothing to reset. Edit it with haiku_unit_write or let the engine run it.`}));if(l==="completed")return{content:[{type:"text",text:JSON.stringify({error:"unit_completed_not_resettable",slug:r,stage:i,unit:s,message:`Unit '${s}' is completed \u2014 its work is already merged into the stage branch. Reset cannot un-merge it and would only desync engine state from the code on disk. Reset is for wedged in-flight units only. To change completed work, file feedback against the stage (fix-loop) or revisit the stage.`})}],isError:!0};let d=await Gu({intentSlug:r,kind:"confirm",title:`Reset unit "${s}" (currently ${l}) on "${r}"?`,prompt:`This will return unit '${s}' in stage '${i}' to **pending**: +Other stages of '${r}' will NOT be touched. Intent main's git history (including any prior merge of this stage) stays put. The next \`haiku_run_next\` will re-enter '${i}' at its elaborate phase. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset stage ${i}`,description:"Wipe the stage and let the engine re-run it"},{id:"cancel",label:"Cancel",description:"Keep the stage as-is"}],signal:t});if(h.timedOut||!h.selection||h.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:`Reset of stage '${i}' cancelled.`}));if(Ae())try{let m="";try{m=ave("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(m===f){let g=`haiku/${r}/main`,y=Zo(),E=Pt(g)?g:y;try{ave("git",["checkout",E],{encoding:"utf8",stdio:"pipe"})}catch{ave("git",["checkout",`${E}^0`],{encoding:"utf8",stdio:"pipe"})}}}catch(m){return{content:[{type:"text",text:`Could not move HEAD off '${f}' for the delete. ${m instanceof Error?m.message:String(m)}`}],isError:!0}}for(let m of["units","outputs","artifacts","feedback","elaboration.md","decisions.jsonl"]){let g=o_(c,m);HU(g)&&TNt(g,{recursive:!0,force:!0})}if(d)try{for(let m of bNt(l)){if(!m.endsWith(".md"))continue;let g=o_(l,m);try{vNt(g).isFile()&&TNt(g,{force:!0})}catch{}}}catch{}try{let m=Xfr(a,"utf8"),{data:g}=re(m),y=[];if(`gate_review_session_${i}`in g&&y.push(`gate_review_session_${i}`),`gate_review_url_${i}`in g&&y.push(`gate_review_url_${i}`),y.length>0){for(let E of["gate_review_context","gate_review_next_stage","gate_review_next_phase"])E in g&&y.push(E);Kh(a,y)}}catch{}if(p)try{yE(r,i)}catch(m){return ye(JSON.stringify({action:"stage_reset_partial",slug:r,stage:i,message:`Stage '${i}' state wiped but \`${f}\` branch could not be deleted: ${m instanceof Error?m.message:String(m)}. Delete it manually with \`git branch -D ${f}\` then run \`haiku_run_next\`.`}))}return wt(`haiku: reset stage ${i} on ${r}`),ye(JSON.stringify({action:"stage_reset",slug:r,stage:i,wiped:u,message:`Stage '${i}' has been reset. Call \`haiku_run_next { intent: "${r}" }\` to re-enter the stage at its elaborate phase.`},null,2))}}});import{existsSync as Qfr,readFileSync as $fr,writeFileSync as epr}from"node:fs";var cve,tpr,wNt,kNt=v(()=>{"use strict";cve=Se(Kt(),1);yr();JE();ji();uo();ze();Gi();vs();tpr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],wNt={name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:b0,async handle(e,t){let n=Be(e,Zge,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Pa(r,i,s);if(!Qfr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=$fr(o,"utf8"),{data:c,content:u}=(0,cve.default)(a),l=B0(c);if(l==="pending")return ye(JSON.stringify({action:"noop",slug:r,stage:i,unit:s,message:`Unit '${s}' is already pending \u2014 nothing to reset. Edit it with haiku_unit_write or let the engine run it.`}));if(l==="completed")return{content:[{type:"text",text:JSON.stringify({error:"unit_completed_not_resettable",slug:r,stage:i,unit:s,message:`Unit '${s}' is completed \u2014 its work is already merged into the stage branch. Reset cannot un-merge it and would only desync engine state from the code on disk. Reset is for wedged in-flight units only. To change completed work, file feedback against the stage (fix-loop) or revisit the stage.`})}],isError:!0};let d=await Zu({intentSlug:r,kind:"confirm",title:`Reset unit "${s}" (currently ${l}) on "${r}"?`,prompt:`This will return unit '${s}' in stage '${i}' to **pending**: - Clear its iterations / reviews / approvals (and the model escalation) - Discard its worktree + branch \`haiku/${r}/${s}\` (local + remote) \u2014 its in-progress code rolls back to the stage baseline -The unit's SPEC file stays (rewrite it with haiku_unit_write if the premise was wrong, or re-run as-is). Sibling units and the stage branch are NOT touched. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset ${s}`,description:"Return the unit to pending and discard its worktree"},{id:"cancel",label:"Cancel",description:"Keep the unit as-is"}],signal:t});if(d.timedOut||!d.selection||d.selection.id!=="reset")return be(JSON.stringify({action:"cancelled",message:`Reset of unit '${s}' cancelled \u2014 no state mutated.`}));let f=structuredClone(c);typeof f.model_original=="string"&&f.model_original.length>0&&(f.model=f.model_original),delete f.model_original;for(let h of cdr)delete f[h];adr(o,PTe.default.stringify(u,f));let p=rpe(r,s);return Dt(`haiku: reset unit ${s} on ${r} (was ${l})`),be(JSON.stringify({action:"unit_reset",slug:r,stage:i,unit:s,previous_status:l,worktree:p.message,message:`Unit '${s}' reset to pending. Rewrite its spec with haiku_unit_write if its premise was wrong, then call haiku_run_next to re-run it. Siblings and the stage branch were untouched.`},null,2))}}});var RTe={};Rr(RTe,{orchestratorToolHandlers:()=>V1});var V1,W1=v(()=>{"use strict";Ekt();Rkt();TIt();AIt();NIt();DIt();UIt();HIt();zIt();WIt();ZIt();e0t();r0t();XOt();nNt();oNt();lNt();hNt();yNt();bNt();wNt();INt();V1=new Map([_kt,Akt,bIt,vIt,OIt,MIt,LIt,FIt,GIt,VIt,KIt,$It,n0t,JOt,tNt,sNt,uNt,pNt,gNt,ENt,RNt,kNt].map(e=>[e.name,e]))});function xNt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function G_(e,t,n,r){let i=t||"(none)",s=n.target_branch||"the target branch",o=n.dirty_files||[];if(n.block==="dirty_tree"){let a=o.length>0?` +The unit's SPEC file stays (rewrite it with haiku_unit_write if the premise was wrong, or re-run as-is). Sibling units and the stage branch are NOT touched. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset ${s}`,description:"Return the unit to pending and discard its worktree"},{id:"cancel",label:"Cancel",description:"Keep the unit as-is"}],signal:t});if(d.timedOut||!d.selection||d.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:`Reset of unit '${s}' cancelled \u2014 no state mutated.`}));let f=structuredClone(c);typeof f.model_original=="string"&&f.model_original.length>0&&(f.model=f.model_original),delete f.model_original;for(let h of tpr)delete f[h];epr(o,cve.default.stringify(u,f));let p=bpe(r,s);return wt(`haiku: reset unit ${s} on ${r} (was ${l})`),ye(JSON.stringify({action:"unit_reset",slug:r,stage:i,unit:s,previous_status:l,worktree:p.message,message:`Unit '${s}' reset to pending. Rewrite its spec with haiku_unit_write if its premise was wrong, then call haiku_run_next to re-run it. Siblings and the stage branch were untouched.`},null,2))}}});var tve={};Rr(tve,{orchestratorToolHandlers:()=>oU});var oU,aU=v(()=>{"use strict";mIt();_It();S0t();_0t();k0t();O0t();M0t();L0t();j0t();G0t();V0t();K0t();$0t();nxt();JPt();tNt();sNt();uNt();pNt();gNt();_Nt();RNt();kNt();oU=new Map([hIt,EIt,y0t,E0t,w0t,x0t,C0t,D0t,F0t,B0t,z0t,W0t,Q0t,txt,ZPt,eNt,iNt,cNt,fNt,mNt,ENt,ANt,wNt].map(e=>[e.name,e]))});function INt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function YE(e,t,n,r){let i=t||"(none)",s=n.target_branch||"the target branch",o=n.dirty_files||[];if(n.block==="dirty_tree"){let a=o.length>0?` Files to commit: ${o.map(u=>` - ${u}`).join(` @@ -1576,15 +1579,15 @@ ${o.map(u=>` - ${u}`).join(` No human intervention needed \u2014 just: 1. \`git add ${o.length>0?o.join(" "):""}\` 2. \`git commit -m "haiku: wip on ${n.branch}"\` - 3. Call \`haiku_run_next\` to retry.`};return{content:[{type:"text",text:JSON.stringify(c,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${i}' (${r}) \u2014 ${n.message}`}],isError:!0}}function ONt(e,t,n,r,i=[]){if(!(n.exceeded||n.loopDetected))return null;let s=n.exceeded?"iteration_limit":"loop_detected",o=n.exceeded?`Stage '${t}' has exceeded ${Pf} agent-invoked iterations (now at ${n.count}). The autonomous loop has stopped \u2014 a human must decide whether to keep pushing, reject feedback items, split the work, or terminate the intent. To force another cycle (user-invoked, uncapped), file feedback at the target stage via \`haiku_feedback({ intent, stage: "", resolution: "stage_revisit", severity: "blocker", title, body })\` and call \`haiku_run_next\` \u2014 the pre-tick feedback walk reroutes through that stage. Or use \`haiku_feedback_reject\` to dismiss specific items, or mark the stage complete manually.`:`Stage '${t}' is in a loop: iteration ${n.count}'s feedback set is the same as the previous iteration's. The agent keeps regenerating identical findings, which usually means the spec is wrong or the criteria are unreachable. A human must intervene \u2014 adjust the feedback items, relax the criteria, or terminate the intent.`;return Qe("haiku.stage.escalate",{intent:e,stage:t,reason:s,iteration:String(n.count),trigger:r,signature:n.signature}),{action:"escalate",intent:e,stage:t,reason:s,trigger:r,iteration:n.count,max_iterations:Pf,signature:n.signature,pending_items:i,message:o}}function NNt(e){let{visits:t,pendingFeedbackCount:n,stage:r,situation:i}=e,s=t>0?`Revisit elaborate (visit ${t}) for stage '${r}'. ${n} pending feedback item(s) must be addressed with new units.`:`Elaborate stage '${r}' into units with completion criteria.`,o=["","Inputs (read each file directly \u2014 do not trust titles alone):","- every `pending_feedback[].file` in this action's payload","- `stage_metadata` (STAGE.md body + review agents)","- `completed_units` (the stage's prior units, read-only reference)","- the intent's `intent.md` for overall goals","","Responsibilities:","- Read every `pending_feedback[].file` COMPLETELY. The title is only a handle; the body carries requirements, tests, and acceptance criteria.","- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.","- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).","- When drafting is complete, call `haiku_run_next` to advance. The workflow engine opens a review gate where the user inspects and approves the drafted units via the review UI \u2014 that is the ONLY approval path.","","## Turn discipline","","Elaboration is COLLABORATIVE and DETAILED. Take as many turns as you need to draft a thorough, well-scoped unit set \u2014 but every turn must earn its place.","","- **Each turn MUST ask a meaningful question.** A meaningful question is one whose answer changes what you draft \u2014 trade-offs, scope boundaries, acceptance criteria, architectural choices with two-plus viable options, priorities between conflicting requirements, or requirement ambiguities that can't be resolved from the intent body alone. Use `AskUserQuestion` with a pre-populated `options[]` array.","- **NEVER ask about things covered elsewhere in the flow.** The following are handled by other parts of the system \u2014 asking about them here duplicates work:",' - Unit-set approval ("how do these units look", "does this scope work", "are these acceptable", "should I proceed", "do you approve") \u2014 handled by the review gate UI after drafting completes'," - Per-unit feedback (reject / request-changes on specific units) \u2014 handled by the review gate's annotation + changes-requested path",' - Feedback closure verification ("did my unit address FB-N") \u2014 handled by the feedback-assessor hat during execution',' - Gate decisions ("should we advance the stage") \u2014 handled by the gate itself',' - Quality-gate results ("did tests pass") \u2014 handled by advance_hat',"- **Use `AskUserQuestion` with `questions[]` when several decisions are related** so the user answers them in one UI exchange. Independent questions can still be separate turns \u2014 collaboration is the point.","- **When information is genuinely absent from the intent and there are no viable defaults, ask.** When you have reasonable inference based on intent goals + stage scope + prior units, draft it and let the review gate surface disagreements."].join(` + 3. Call \`haiku_run_next\` to retry.`};return{content:[{type:"text",text:JSON.stringify(c,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${i}' (${r}) \u2014 ${n.message}`}],isError:!0}}function xNt(e,t,n,r,i=[]){if(!(n.exceeded||n.loopDetected))return null;let s=n.exceeded?"iteration_limit":"loop_detected",o=n.exceeded?`Stage '${t}' has exceeded ${Cf} agent-invoked iterations (now at ${n.count}). The autonomous loop has stopped \u2014 a human must decide whether to keep pushing, reject feedback items, split the work, or terminate the intent. To force another cycle (user-invoked, uncapped), file feedback at the target stage via \`haiku_feedback({ intent, stage: "", resolution: "stage_revisit", severity: "blocker", title, body })\` and call \`haiku_run_next\` \u2014 the pre-tick feedback walk reroutes through that stage. Or use \`haiku_feedback_reject\` to dismiss specific items, or mark the stage complete manually.`:`Stage '${t}' is in a loop: iteration ${n.count}'s feedback set is the same as the previous iteration's. The agent keeps regenerating identical findings, which usually means the spec is wrong or the criteria are unreachable. A human must intervene \u2014 adjust the feedback items, relax the criteria, or terminate the intent.`;return Ke("haiku.stage.escalate",{intent:e,stage:t,reason:s,iteration:String(n.count),trigger:r,signature:n.signature}),{action:"escalate",intent:e,stage:t,reason:s,trigger:r,iteration:n.count,max_iterations:Cf,signature:n.signature,pending_items:i,message:o}}function ONt(e){let{visits:t,pendingFeedbackCount:n,stage:r,situation:i}=e,s=t>0?`Revisit elaborate (visit ${t}) for stage '${r}'. ${n} pending feedback item(s) must be addressed with new units.`:`Elaborate stage '${r}' into units with completion criteria.`,o=["","Inputs (read each file directly \u2014 do not trust titles alone):","- every `pending_feedback[].file` in this action's payload","- `stage_metadata` (STAGE.md body + review agents)","- `completed_units` (the stage's prior units, read-only reference)","- the intent's `intent.md` for overall goals","","Responsibilities:","- Read every `pending_feedback[].file` COMPLETELY. The title is only a handle; the body carries requirements, tests, and acceptance criteria.","- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.","- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).","- When drafting is complete, call `haiku_run_next` to advance. The workflow engine opens a review gate where the user inspects and approves the drafted units via the review UI \u2014 that is the ONLY approval path.","","## Turn discipline","","Elaboration is COLLABORATIVE and DETAILED. Take as many turns as you need to draft a thorough, well-scoped unit set \u2014 but every turn must earn its place.","","- **Each turn MUST ask a meaningful question.** A meaningful question is one whose answer changes what you draft \u2014 trade-offs, scope boundaries, acceptance criteria, architectural choices with two-plus viable options, priorities between conflicting requirements, or requirement ambiguities that can't be resolved from the intent body alone. Use `AskUserQuestion` with a pre-populated `options[]` array.","- **NEVER ask about things covered elsewhere in the flow.** The following are handled by other parts of the system \u2014 asking about them here duplicates work:",' - Unit-set approval ("how do these units look", "does this scope work", "are these acceptable", "should I proceed", "do you approve") \u2014 handled by the review gate UI after drafting completes'," - Per-unit feedback (reject / request-changes on specific units) \u2014 handled by the review gate's annotation + changes-requested path",' - Feedback closure verification ("did my unit address FB-N") \u2014 handled by the feedback-assessor hat during execution',' - Gate decisions ("should we advance the stage") \u2014 handled by the gate itself',' - Quality-gate results ("did tests pass") \u2014 handled by advance_hat',"- **Use `AskUserQuestion` with `questions[]` when several decisions are related** so the user answers them in one UI exchange. Independent questions can still be separate turns \u2014 collaboration is the point.","- **When information is genuinely absent from the intent and there are no viable defaults, ask.** When you have reasonable inference based on intent goals + stage scope + prior units, draft it and let the review gate surface disagreements."].join(` `);return i?`${s} -${i}${o}`:`${s}${o}`}var PNt=v(()=>{"use strict";ze();Ko()});function fx(e){let t=e.stage||"",n=e.unit||"",r=e.hat||e.first_hat||"",i=e.next_stage||"",s="",o="";switch(e.action){case"select_studio":s="I need to select a lifecycle studio for this intent before we can begin.",o="After studio selection, the first stage will start with elaboration.";break;case"start_stage":s=`Starting stage '${t}' \u2014 I'll elaborate the work into units with completion criteria.`,o="Next I'll break the work down into units, then validate them and open a review gate for your approval.";break;case"elaborate":t?(s=`Starting the conversation about stage '${t}' before any unit decomposition.`,o="I'll read the intent + STAGE.md, surface informed questions, and capture our agreement via haiku_stage_elaboration_record. A verifier will then grade the conversation for substance before the cursor advances to decompose."):(s="Pre-intent verifier \u2014 grading whether intent.md reflects a meaningful conversation about what you want.",o="I'll dispatch a verifier subagent. Pass stamps `verified_at` on intent.md via haiku_intent_seal; fail returns gaps so we re-engage and update the intent.");break;case"elaborate_review":t?(s=`Dispatching the substance verifier on the captured elaboration for stage '${t}'.`,o="On pass, the verifier seals the artifact and the cursor advances to decompose. On fail, the verifier returns specific gaps and we re-engage you with the missing questions."):(s="Dispatching the substance verifier on intent.md.",o="On pass, the cursor walks into the first stage's elaborate gate. On fail, we update the intent body and re-verify.");break;case"decompose_review":s=`Dispatching the decompose-verifier on the drafted units for stage '${t}'.`,o='The verifier audits whether the units collectively cover the captured conversation transcript \u2014 nothing scoped is missing a unit, no unit is out of scope. On pass, it stamps `decompose_verified_at` on elaboration.md and the cursor advances to execute. On fail, it files feedback with `targets.invalidates: ["decompose_complete"]` and the fix loop reruns decomposition.';break;case"decompose":{let a=e.iteration||e.visits||0,c=e.pending_feedback?.length||0,u=e.validation_error;a>1?(s=u?`Revisiting stage '${t}' (iteration ${a}) \u2014 fixing validation on in-flight units before advancing.`:`Revisiting stage '${t}' (iteration ${a}) \u2014 ${c} pending feedback item(s) to address with new units.`,o="I'll draft units that close each pending feedback item, then advance to execution once validated."):(s=`Decomposing stage '${t}' into unit specs \u2014 informed by the captured elaboration + any discovery output.`,o="After units are defined, the orchestrator validates them and opens a review gate for your approval before execution begins.");break}case"elaboration_insufficient":s=`I need to engage you more on the plan for stage '${t}' before finalizing.`,o="After sufficient collaboration, I'll finalize units and open the review gate.";break;case"gate_review":{let a=e.gate_context||"stage_gate";a==="intent_review"?(s="The intent specs are ready \u2014 opening the review gate for your approval.",o="After approval, execution begins. If changes are requested, I'll revise and re-submit."):a==="elaborate_to_execute"?(s="Unit specs are validated \u2014 opening the review gate for your approval before execution.",o="After approval, I'll begin executing units in wave order. If changes are requested, I'll revise the specs."):(s=`Stage '${t}' is complete \u2014 opening the review gate.`,o=i?`After approval, I'll advance to stage '${i}'. If changes are requested, I'll address the feedback.`:"After approval, the intent is complete.");break}case"intent_approved":s="Intent approved \u2014 moving to execution.",o="I'll begin executing units in wave order.";break;case"advance_phase":{let a=e.to_phase||"";a==="execute"?(s=`Specs approved for stage '${t}' \u2014 beginning execution.`,o="I'll execute units in wave order, one hat at a time."):a==="review"?(s=`All units complete in stage '${t}' \u2014 moving to review.`,o="I'll run quality gates and adversarial review agents, then open the stage gate."):a==="gate"?(s=`Review complete for stage '${t}' \u2014 moving to the gate.`,o="The stage gate will determine whether to advance, request changes, or send for external review."):(s=`Advancing stage '${t}' to ${a} phase.`,o="");break}case"start_unit":s=`Starting unit '${n}' with hat '${r}' in stage '${t}'.`,o="I'll execute the unit work per the hat definition, then advance to the next hat or next unit.";break;case"start_units":{let a=e.units||[];s=`Starting ${a.length} units in parallel: ${a.join(", ")}.`,o=Ae()?"Each unit runs in its own worktree. After all complete, the next wave starts or we advance to review.":"After all units complete, the next wave starts or we advance to review.";break}case"continue_unit":s=`Continuing unit '${n}' \u2014 hat: ${r}, bolt: ${e.bolt||1}.`,o="I'll continue the work, then advance to the next hat or complete the unit.";break;case"continue_units":{let a=e.units||[];s=`Continuing ${a.length} units in parallel: ${a.map(c=>`${c.name}(${c.hat}#${c.bolt})`).join(", ")}.`,o="Each active unit resumes in its own worktree. After all subagents return, the workflow engine advances.";break}case"escalate":{let a=e.reason||"unknown",c=e.iteration||0,u=e.max_iterations||Pf;s=a==="loop_detected"?`Stage '${t}' is stuck in a loop \u2014 iteration ${c} regenerated the same feedback set as iteration ${c-1}.`:`Stage '${t}' hit the ${u}-iteration ceiling (now at ${c}) \u2014 stopping the autonomous loop.`,o='STOP. Surface this to the human: the autonomous loop is halted. Do NOT call haiku_run_next again until the human makes a decision (reject feedback items, file a stage_revisit feedback via `haiku_feedback({ resolution: "stage_revisit", severity: "blocker" })` to force another cycle, or terminate the intent).';break}case"review":s=`Quality gates passed \u2014 running adversarial review agents for stage '${t}'.`,o="After review agents pass, the stage gate opens for approval.";break;case"fix_quality_gates":s=`Quality gates failed in stage '${t}' \u2014 I need to fix the issues before review.`,o="After fixing, I'll retry the quality gates and then proceed to adversarial review.";break;case"advance_stage":s=`Stage '${t}' complete \u2014 advancing to '${i}'.`,o=i?`I'll start stage '${i}' with elaboration.`:"The intent is complete.";break;case"intent_complete":s="All stages are complete \u2014 the intent is done.",o="";break;case"integrate_fix_chains":{let a=e.items||[],c=e.scope||"intent";s=`${a.length} fix-chain merge${a.length===1?"":"s"} conflicted when landing on ${c==="intent"?"intent main":`stage '${c}'`} \u2014 dispatching the integrator to resolve.`,o="After integrators return, I'll call run_next to complete the merges.";break}case"changes_requested":s="Changes were requested on the review \u2014 I'll address the feedback.",o="After revisions, I'll re-submit for review.";break;case"external_review_requested":s=`Stage '${t}' needs external review \u2014 submit the work through your project's review process.`,o="After external approval, run /haiku:haiku-pickup to continue.";break;case"awaiting_external_review":s=`Stage '${t}' is waiting on external review.`,o="Run /haiku:haiku-pickup after the review is approved.";break;case"blocked":s=`Some units in stage '${t}' are blocked \u2014 dependencies not met.`,o="Unblock the dependencies, then retry.";break;case"outputs_missing":s=`Stage '${t}' is missing required output artifacts.`,o="Create the missing artifacts, then retry.";break;case"discovery_missing":s=`Stage '${t}' is missing required discovery artifacts.`,o="Create the missing artifacts, then retry.";break;case"unresolved_dependencies":s="Some unit dependencies reference units that don't exist \u2014 I need to fix the references.",o="After fixing, I'll retry advancement.";break;case"dag_cycle_detected":s="A dependency cycle was detected in the unit graph \u2014 I need to break the cycle.",o="After fixing, I'll retry advancement.";break;case"unit_naming_invalid":s="Some unit files don't follow the required naming convention \u2014 I need to rename them.",o="After fixing, I'll retry advancement.";break;case"gate_blocked":s="Gate review couldn't be completed \u2014 the review UI and elicitation both failed.",o="Run haiku_run_next again to retry the gate review.";break;case"complete":s="Intent is already completed.",o="";break;case"composite_run_stage":s=`Running composite stage '${t}'.`,o="The composite orchestrator will advance through sub-stages.";break;case"error":s=e.message||"An error occurred.",o="";break;default:break}s&&(e.tell_user=s),o&&(e.next_step=o)}var CNt=v(()=>{"use strict";ze()});import{execFileSync as MNt}from"node:child_process";import{existsSync as Vv,readFileSync as udr}from"node:fs";import{join as rE}from"node:path";function CTe(e,t){if(t)try{let n=kD(e,t);!n.ok&&n.error&&console.error(`[haiku] auto-push of haiku/${e}/${t} failed: ${n.error}`)}catch(n){console.error(`[haiku] auto-push of haiku/${e}/${t} threw: ${n instanceof Error?n.message:String(n)}`)}}function kU(e){if(!Vv(e))return{};let t=udr(e,"utf8"),{data:n}=re(t);return n}function ldr(e,t){let n=rE(fe(e),"intent.md"),r=kU(n),i=r.studio||"",s=or(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function MTe(e,t){EI(e),LK(e),Dt(`haiku: pre-stage cleanup for ${e}/${t}`),CTe(e,t);let n=ldr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Ft(r)&&!yl(r,`haiku/${e}/main`)){let i=xZ(e,()=>ID(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Ft(r)){f_(e,n);try{MNt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Ta,env:va})}catch{}}if(!zfe(e,t)){let i=`haiku/${e}/${t}`;if(Ft(i)&&n){let s=Wfe(e,"main",t);if(!s.success)throw new Error(`Merge forward from main to '${t}' failed: ${s.message}. Resolve conflicts on branch '${i}' manually, then retry.`)}else Vfe(e,t)}Nye(e,t,{trigger:"initial"}),LK(e),Qe("haiku.stage.started",{intent:e,stage:t}),Dt(`haiku: start stage ${t}`),CTe(e,t),si(e)}function D1(e,t,n){Qe("haiku.stage.phase",{intent:e,stage:t,phase:n}),si(e)}function px(e,t,n){Pye(e,t,n==="advanced"?"advanced":"rejected"),Qe("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),Dt(`haiku: complete stage ${t}`),CTe(e,t),si(e)}function S6(e,t,n){px(e,t,"advanced"),MTe(e,n),si(e)}function DNt(e,t){Qe("haiku.gate.entered",{intent:e,stage:t}),si(e)}function ddr(e){let t=rE(fe(e),"intent.md");Vv(t)&&(je(t,"completion_review_entered_at",En()),Qe("haiku.intent.completion_review_entered",{intent:e}),si(e))}function fdr(e,t){if(!Ae()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Ft(n)&&!yl(n,r)){let i=xZ(e,()=>ID(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. +${i}${o}`:`${s}${o}`}var PNt=v(()=>{"use strict";ze();vo()});function Ex(e){let t=e.stage||"",n=e.unit||"",r=e.hat||e.first_hat||"",i=e.next_stage||"",s="",o="";switch(e.action){case"select_studio":s="I need to select a lifecycle studio for this intent before we can begin.",o="After studio selection, the first stage will start with elaboration.";break;case"start_stage":s=`Starting stage '${t}' \u2014 I'll elaborate the work into units with completion criteria.`,o="Next I'll break the work down into units, then validate them and open a review gate for your approval.";break;case"elaborate":t?(s=`Starting the conversation about stage '${t}' before any unit decomposition.`,o="I'll read the intent + STAGE.md, surface informed questions, and capture our agreement via haiku_stage_elaboration_record. A verifier will then grade the conversation for substance before the cursor advances to decompose."):(s="Pre-intent verifier \u2014 grading whether intent.md reflects a meaningful conversation about what you want.",o="I'll dispatch a verifier subagent. Pass stamps `verified_at` on intent.md via haiku_intent_seal; fail returns gaps so we re-engage and update the intent.");break;case"elaborate_review":t?(s=`Dispatching the substance verifier on the captured elaboration for stage '${t}'.`,o="On pass, the verifier seals the artifact and the cursor advances to decompose. On fail, the verifier returns specific gaps and we re-engage you with the missing questions."):(s="Dispatching the substance verifier on intent.md.",o="On pass, the cursor walks into the first stage's elaborate gate. On fail, we update the intent body and re-verify.");break;case"decompose_review":s=`Dispatching the decompose-verifier on the drafted units for stage '${t}'.`,o='The verifier audits whether the units collectively cover the captured conversation transcript \u2014 nothing scoped is missing a unit, no unit is out of scope. On pass, it stamps `decompose_verified_at` on elaboration.md and the cursor advances to execute. On fail, it files feedback with `targets.invalidates: ["decompose_complete"]` and the fix loop reruns decomposition.';break;case"decompose":{let a=e.iteration||e.visits||0,c=e.pending_feedback?.length||0,u=e.validation_error;a>1?(s=u?`Revisiting stage '${t}' (iteration ${a}) \u2014 fixing validation on in-flight units before advancing.`:`Revisiting stage '${t}' (iteration ${a}) \u2014 ${c} pending feedback item(s) to address with new units.`,o="I'll draft units that close each pending feedback item, then advance to execution once validated."):(s=`Decomposing stage '${t}' into unit specs \u2014 informed by the captured elaboration + any discovery output.`,o="After units are defined, the orchestrator validates them and opens a review gate for your approval before execution begins.");break}case"elaboration_insufficient":s=`I need to engage you more on the plan for stage '${t}' before finalizing.`,o="After sufficient collaboration, I'll finalize units and open the review gate.";break;case"gate_review":{let a=e.gate_context||"stage_gate";a==="intent_review"?(s="The intent specs are ready \u2014 opening the review gate for your approval.",o="After approval, execution begins. If changes are requested, I'll revise and re-submit."):a==="elaborate_to_execute"?(s="Unit specs are validated \u2014 opening the review gate for your approval before execution.",o="After approval, I'll begin executing units in wave order. If changes are requested, I'll revise the specs."):(s=`Stage '${t}' is complete \u2014 opening the review gate.`,o=i?`After approval, I'll advance to stage '${i}'. If changes are requested, I'll address the feedback.`:"After approval, the intent is complete.");break}case"intent_approved":s="Intent approved \u2014 moving to execution.",o="I'll begin executing units in wave order.";break;case"advance_phase":{let a=e.to_phase||"";a==="execute"?(s=`Specs approved for stage '${t}' \u2014 beginning execution.`,o="I'll execute units in wave order, one hat at a time."):a==="review"?(s=`All units complete in stage '${t}' \u2014 moving to review.`,o="I'll run quality gates and adversarial review agents, then open the stage gate."):a==="gate"?(s=`Review complete for stage '${t}' \u2014 moving to the gate.`,o="The stage gate will determine whether to advance, request changes, or send for external review."):(s=`Advancing stage '${t}' to ${a} phase.`,o="");break}case"start_unit":s=`Starting unit '${n}' with hat '${r}' in stage '${t}'.`,o="I'll execute the unit work per the hat definition, then advance to the next hat or next unit.";break;case"start_units":{let a=e.units||[];s=`Starting ${a.length} units in parallel: ${a.join(", ")}.`,o=Ae()?"Each unit runs in its own worktree. After all complete, the next wave starts or we advance to review.":"After all units complete, the next wave starts or we advance to review.";break}case"continue_unit":s=`Continuing unit '${n}' \u2014 hat: ${r}, bolt: ${e.bolt||1}.`,o="I'll continue the work, then advance to the next hat or complete the unit.";break;case"continue_units":{let a=e.units||[];s=`Continuing ${a.length} units in parallel: ${a.map(c=>`${c.name}(${c.hat}#${c.bolt})`).join(", ")}.`,o="Each active unit resumes in its own worktree. After all subagents return, the workflow engine advances.";break}case"escalate":{let a=e.reason||"unknown",c=e.iteration||0,u=e.max_iterations||Cf;s=a==="loop_detected"?`Stage '${t}' is stuck in a loop \u2014 iteration ${c} regenerated the same feedback set as iteration ${c-1}.`:`Stage '${t}' hit the ${u}-iteration ceiling (now at ${c}) \u2014 stopping the autonomous loop.`,o='STOP. Surface this to the human: the autonomous loop is halted. Do NOT call haiku_run_next again until the human makes a decision (reject feedback items, file a stage_revisit feedback via `haiku_feedback({ resolution: "stage_revisit", severity: "blocker" })` to force another cycle, or terminate the intent).';break}case"review":s=`Quality gates passed \u2014 running adversarial review agents for stage '${t}'.`,o="After review agents pass, the stage gate opens for approval.";break;case"fix_quality_gates":s=`Quality gates failed in stage '${t}' \u2014 I need to fix the issues before review.`,o="After fixing, I'll retry the quality gates and then proceed to adversarial review.";break;case"advance_stage":s=`Stage '${t}' complete \u2014 advancing to '${i}'.`,o=i?`I'll start stage '${i}' with elaboration.`:"The intent is complete.";break;case"intent_complete":s="All stages are complete \u2014 the intent is done.",o="";break;case"integrate_fix_chains":{let a=e.items||[],c=e.scope||"intent";s=`${a.length} fix-chain merge${a.length===1?"":"s"} conflicted when landing on ${c==="intent"?"intent main":`stage '${c}'`} \u2014 dispatching the integrator to resolve.`,o="After integrators return, I'll call run_next to complete the merges.";break}case"changes_requested":s="Changes were requested on the review \u2014 I'll address the feedback.",o="After revisions, I'll re-submit for review.";break;case"external_review_requested":s=`Stage '${t}' needs external review \u2014 submit the work through your project's review process.`,o="After external approval, run /haiku:haiku-pickup to continue.";break;case"awaiting_external_review":s=`Stage '${t}' is waiting on external review.`,o="Run /haiku:haiku-pickup after the review is approved.";break;case"blocked":s=`Some units in stage '${t}' are blocked \u2014 dependencies not met.`,o="Unblock the dependencies, then retry.";break;case"outputs_missing":s=`Stage '${t}' is missing required output artifacts.`,o="Create the missing artifacts, then retry.";break;case"discovery_missing":s=`Stage '${t}' is missing required discovery artifacts.`,o="Create the missing artifacts, then retry.";break;case"unresolved_dependencies":s="Some unit dependencies reference units that don't exist \u2014 I need to fix the references.",o="After fixing, I'll retry advancement.";break;case"dag_cycle_detected":s="A dependency cycle was detected in the unit graph \u2014 I need to break the cycle.",o="After fixing, I'll retry advancement.";break;case"unit_naming_invalid":s="Some unit files don't follow the required naming convention \u2014 I need to rename them.",o="After fixing, I'll retry advancement.";break;case"gate_blocked":s="Gate review couldn't be completed \u2014 the review UI and elicitation both failed.",o="Run haiku_run_next again to retry the gate review.";break;case"complete":s="Intent is already completed.",o="";break;case"composite_run_stage":s=`Running composite stage '${t}'.`,o="The composite orchestrator will advance through sub-stages.";break;case"error":s=e.message||"An error occurred.",o="";break;default:break}s&&(e.tell_user=s),o&&(e.next_step=o)}var NNt=v(()=>{"use strict";ze()});import{execFileSync as CNt}from"node:child_process";import{existsSync as Xv,readFileSync as npr}from"node:fs";import{join as a_}from"node:path";function uve(e,t){if(t)try{let n=LD(e,t);!n.ok&&n.error&&console.error(`[haiku] auto-push of haiku/${e}/${t} failed: ${n.error}`)}catch(n){console.error(`[haiku] auto-push of haiku/${e}/${t} threw: ${n instanceof Error?n.message:String(n)}`)}}function qU(e){if(!Xv(e))return{};let t=npr(e,"utf8"),{data:n}=re(t);return n}function rpr(e,t){let n=a_(pe(e),"intent.md"),r=qU(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function lve(e,t){RI(e),XK(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),uve(e,t);let n=rpr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Pt(r)&&!Yc(r,`haiku/${e}/main`)){let i=WY(e,()=>UD(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Pt(r)){yE(e,n);try{CNt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Aa,env:Ra})}catch{}}if(!cpe(e,t)){let i=`haiku/${e}/${t}`;if(Pt(i)&&n){let s=lpe(e,"main",t);if(!s.success)throw new Error(`Merge forward from main to '${t}' failed: ${s.message}. Resolve conflicts on branch '${i}' manually, then retry.`)}else upe(e,t)}Qye(e,t,{trigger:"initial"}),XK(e),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),uve(e,t),ci(e)}function J1(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function _x(e,t,n){$ye(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),uve(e,t),ci(e)}function NZ(e,t,n){_x(e,t,"advanced"),lve(e,n),ci(e)}function MNt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function ipr(e){let t=a_(pe(e),"intent.md");Xv(t)&&(De(t,"completion_review_entered_at",_n()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function spr(e,t){if(!Ae()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Pt(n)&&!Yc(n,r)){let i=WY(e,()=>UD(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. Intent-completion review will still open; resolve the merge manually before approving the final gate. Recovery paths for the stage branch if the reap below loses it before you can merge: - \`git reflog show ${n}\` \u2014 the branch's tip is still in reflog until gc runs (default 90 days). - \`origin/${n}\` \u2014 if the branch was pushed, the remote tracking ref still has the tip. - - \`git fsck --lost-found\` \u2014 catches dangling commits even after the branch ref is deleted.`)}if(Ft(n)&&yl(n,r)){f_(e,t);try{MNt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Ta,env:va})}catch{}}mr(e,void 0)}function L1(e,t,n){let r=n?rE(n,"intents",e):fe(e),i=rE(r,"intent.md"),s=Vv(i)?kU(i):{},o=or(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)lv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function pdr(e,t){let n=t?rE(t,"intents",e):fe(e),r=rE(n,"intent.md");Vv(r)&&(je(r,"completion_review_entered_at",""),je(r,"completion_review_dispatched",!1),je(r,"completion_review_skipped",!1),je(r,"completion_review_dispatched_at",""),si(e))}function _6(e,t,n){let r=L1(e,t);if(r.length>0)return pdr(e),Qe("haiku.intent.completion_guard_failed",{intent:e,studio:t,incomplete_stages:r.join(",")}),{action:"error",intent:e,message:`Cannot complete intent '${e}': ${r.length} stage(s) are not yet completed: [${r.join(", ")}]. Cleared completion-review markers; next tick will route to '${r[0]}' (derived from disk). Call \`haiku_run_next { intent: "${e}" }\` to resume.`};let i=rE(fe(e),"intent.md"),s=Vv(i)?kU(i):{},a=or(s,t).at(-1)??"";return a&&fdr(e,a),ddr(e),{action:"advance_phase",intent:e,stage:null,from_phase:s.phase||"active",to_phase:"awaiting_completion_review",message:`${n} All stages passed \u2014 entering intent-completion review phase. Call \`haiku_run_next { intent: "${e}" }\` to dispatch studio-level review agents (if any) and the final gate.`}}function E6(e){let t=rE(fe(e),"intent.md");if(Vv(t)){let s=kU(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=qfe(o);c.ok?(je(t,"draft_pr_status","ready"),je(t,"draft_pr_ready_at",En())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),je(t,"draft_pr_status","failed"))}}Qe("haiku.intent.completed",{intent:e}),Dt(`haiku: complete intent ${e}`);let n=Vv(t)?kU(t):{},r=n.studio||"",i=r?or(n,r):[];if(i.length>0){let s=ipe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}ND(e),si(e),Gfe(e)}var LNt=v(()=>{"use strict";Tr();M0();Gd();CZ();ze();Ko();GL()});var QOt={};Rr(QOt,{buildElaboratorInstruction:()=>NNt,buildGuardResponse:()=>G_,buildOutputRequirements:()=>ix,buildRunInstructions:()=>P1,cleanupPreExecuteFeedback:()=>vft,completeOrReviewIntent:()=>_6,computeUnitWaves:()=>LI,currentWaveNumber:()=>UI,enrichActionWithPreview:()=>fx,findIncompleteStages:()=>L1,getAwaitGateReviewSession:()=>EEe,getPrepareGateReview:()=>wTe,handleOrchestratorTool:()=>GEe,isStagePreExecute:()=>HD,listUnits:()=>mg,maybeEscalate:()=>ONt,orchestratorToolDefs:()=>c6,resolveIntentStages:()=>or,resolveStageHats:()=>to,resolveStageMetadata:()=>wpe,resolveStageReview:()=>Rpe,resolveStudioFilePath:()=>Mf,resolveStudioStages:()=>So,resolveUnitHatsInStudio:()=>Ape,runNext:()=>hdr,runQualityGates:()=>XAt,setGateReviewHandlers:()=>DTe,summarizeFeedback:()=>xNt,validateCumulativeInputCoverage:()=>YAt,validateDiscoveryArtifacts:()=>VAt,validateOutputLiveness:()=>JAt,validateStageOutputs:()=>zAt,validateUnitInputs:()=>KAt,validateUnitNaming:()=>WAt,workflowAdvancePhase:()=>D1,workflowAdvanceStage:()=>S6,workflowCompleteStage:()=>px,workflowGateAsk:()=>DNt,workflowIntentComplete:()=>E6,workflowStartStage:()=>MTe,writeReviewFeedbackFiles:()=>i6});function gdr(e){let t=e.stage||"",n=Array.isArray(e.items)?`n${e.items.length}`:"",r=e.iteration??e.bolt;return`${t}-${n}-${r??""}-${Date.now()}`}function P1(e,t,n,r){let i=owt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!mdr.has(n.action)&&!n.prompt_file)try{let{path:d}=Kdt({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:gdr(n)});n.prompt_file=d,n.message=`Read \`${d}\` and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt for this tick.`,s=[`## ${n.action} Prompt (file-based)`,"","The full prompt for this tick is at:","",` ${d}`,"",`Read that file with the Read tool and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt \u2014 do not paraphrase, summarize, or skip any of it.`].join(` + - \`git fsck --lost-found\` \u2014 catches dangling commits even after the branch ref is deleted.`)}if(Pt(n)&&Yc(n,r)){yE(e,t);try{CNt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Aa,env:Ra})}catch{}}gr(e,void 0)}function X1(e,t,n){let r=n?a_(n,"intents",e):pe(e),i=a_(r,"intent.md"),s=Xv(i)?qU(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)hv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function opr(e,t){let n=t?a_(t,"intents",e):pe(e),r=a_(n,"intent.md");Xv(r)&&(De(r,"completion_review_entered_at",""),De(r,"completion_review_dispatched",!1),De(r,"completion_review_skipped",!1),De(r,"completion_review_dispatched_at",""),ci(e))}function CZ(e,t,n){let r=X1(e,t);if(r.length>0)return opr(e),Ke("haiku.intent.completion_guard_failed",{intent:e,studio:t,incomplete_stages:r.join(",")}),{action:"error",intent:e,message:`Cannot complete intent '${e}': ${r.length} stage(s) are not yet completed: [${r.join(", ")}]. Cleared completion-review markers; next tick will route to '${r[0]}' (derived from disk). Call \`haiku_run_next { intent: "${e}" }\` to resume.`};let i=a_(pe(e),"intent.md"),s=Xv(i)?qU(i):{},a=wn(s,t).at(-1)??"";return a&&spr(e,a),ipr(e),{action:"advance_phase",intent:e,stage:null,from_phase:s.phase||"active",to_phase:"awaiting_completion_review",message:`${n} All stages passed \u2014 entering intent-completion review phase. Call \`haiku_run_next { intent: "${e}" }\` to dispatch studio-level review agents (if any) and the final gate.`}}function MZ(e){let t=a_(pe(e),"intent.md");if(Xv(t)){let s=qU(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=spe(o);c.ok?(De(t,"draft_pr_status","ready"),De(t,"draft_pr_ready_at",_n())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),De(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=Xv(t)?qU(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Tpe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}HD(e),ci(e),ape(e)}var DNt=v(()=>{"use strict";yr();j0();Vd();JY();ze();vo();e1()});var XPt={};Rr(XPt,{buildElaboratorInstruction:()=>ONt,buildGuardResponse:()=>YE,buildOutputRequirements:()=>dx,buildRunInstructions:()=>K1,cleanupPreExecuteFeedback:()=>ept,completeOrReviewIntent:()=>CZ,computeUnitWaves:()=>HI,currentWaveNumber:()=>qI,enrichActionWithPreview:()=>Ex,findIncompleteStages:()=>X1,getAwaitGateReviewSession:()=>Z_e,getPrepareGateReview:()=>nve,handleOrchestratorTool:()=>Ebe,isStagePreExecute:()=>XD,listUnits:()=>Eg,maybeEscalate:()=>xNt,orchestratorToolDefs:()=>bZ,resolveIntentStages:()=>wn,resolveStageHats:()=>_s,resolveStageMetadata:()=>zpe,resolveStageReview:()=>Gpe,resolveStudioFilePath:()=>Lf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>Bpe,runNext:()=>apr,runQualityGates:()=>FRt,setGateReviewHandlers:()=>dve,summarizeFeedback:()=>INt,validateCumulativeInputCoverage:()=>LRt,validateDiscoveryArtifacts:()=>NRt,validateOutputLiveness:()=>URt,validateStageOutputs:()=>PRt,validateUnitInputs:()=>MRt,validateUnitNaming:()=>CRt,workflowAdvancePhase:()=>J1,workflowAdvanceStage:()=>NZ,workflowCompleteStage:()=>_x,workflowGateAsk:()=>MNt,workflowIntentComplete:()=>MZ,workflowStartStage:()=>lve,writeReviewFeedbackFiles:()=>yZ});function upr(e){let t=e.stage||"",n=Array.isArray(e.items)?`n${e.items.length}`:"",r=e.iteration??e.bolt;return`${t}-${n}-${r??""}-${Date.now()}`}function K1(e,t,n,r){let i=Kwt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!cpr.has(n.action)&&!n.prompt_file)try{let{path:d}=vft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:upr(n)});n.prompt_file=d,n.message=`Read \`${d}\` and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt for this tick.`,s=[`## ${n.action} Prompt (file-based)`,"","The full prompt for this tick is at:","",` ${d}`,"",`Read that file with the Read tool and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt \u2014 do not paraphrase, summarize, or skip any of it.`].join(` `)}catch(d){console.error(`[haiku] action prompt-file write failed for ${n.action}/${e}: ${d instanceof Error?d.message:String(d)}. Falling back to inline rendering.`)}let{tell_user:o,next_step:a,...c}=n,u=JSON.stringify(c,null,2),l=[];if(o||a){let d=[`## Announce to User (MANDATORY) `,"**Before doing ANY work**, tell the user what you're about to do:"];o&&d.push(`> ${o}`),a&&d.push(` _${a}_`),d.push(` @@ -1599,29 +1602,29 @@ ${u} ${JSON.stringify(n,null,2)}`),l.join(` -`))}function DTe(e){UNt=e.prepare,jNt=e.await}function wTe(){return UNt}function EEe(){return jNt}async function GEe(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=_D(t);if(i)return i;let s=V1.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var hdr,mdr,UNt,jNt,Gd=v(()=>{"use strict";awt();cwt();SEe();ze();Sl();W1();PNt();CNt();_o();o3();s6();LNt();hdr=lkt,mdr=new Set(["noop","sealed","error"]);UNt=null,jNt=null});function LTe(e){CY.set(e.name,e)}function FNt(){return Array.from(CY.values()).map(e=>({name:e.name,title:e.title,description:e.description,arguments:e.arguments.length>0?e.arguments.map(t=>({name:t.name,description:t.description,required:t.required})):void 0}))}async function HNt(e,t){let n=CY.get(e);if(!n)throw new en(yn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new en(yn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function qNt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=CY.get(n);if(!r)return t;let i=r.arguments.find(s=>s.name===e.argument.name);if(!i?.completer)return t;try{let s=await i.completer(e.argument.value,e.context?.arguments);return{completion:{values:s.slice(0,100),total:s.length,hasMore:s.length>100}}}catch{return t}}var CY,UTe=v(()=>{"use strict";kb();CY=new Map});import{existsSync as BNt,readdirSync as ydr,readFileSync as Sdr}from"node:fs";import{join as GNt}from"node:path";function zNt(){let e=0;LTe({name:"haiku:status",title:"H\xB7AI\xB7K\xB7U: Check active work",description:"Check for active H\xB7AI\xB7K\xB7U intents and get your current action. Call this at the start of every session to resume in-progress work.",arguments:[],handler:async()=>({description:"Check for active H\xB7AI\xB7K\xB7U work",messages:[{role:"user",content:{type:"text",text:'Check if there is active H\xB7AI\xB7K\xB7U work in this project.\n\n1. Call `haiku_intent_list` to see all intents and their status\n2. If there is an active intent, call `haiku_run_next { intent: "" }` to get your current action\n3. If no active intents exist, let me know \u2014 I can start one with `haiku:start`\n\nDo this silently \u2014 just check and report what you find.'}}]})}),e++;let t=nn();if(!t)return console.error(`[haiku] Registered ${e} prompt(s) (plugin root not found \u2014 skills not bridged)`),e;let n=GNt(t,"skills");if(!BNt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=ydr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=GNt(n,i.name,"SKILL.md");if(!BNt(s))continue;let o=Sdr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;LTe({name:d,title:`H\xB7AI\xB7K\xB7U: ${u}`,description:l||`Run the H\xB7AI\xB7K\xB7U ${u} workflow`,arguments:[{name:"args",description:"Optional arguments to pass to the skill (e.g., intent slug, unit name)",required:!1}],handler:async f=>{let p=f.args||"",h=p?`${c} +`))}function dve(e){LNt=e.prepare,UNt=e.await}function nve(){return LNt}function Z_e(){return UNt}async function Ebe(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=kD(t);if(i)return i;let s=oU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var apr,cpr,LNt,UNt,Vd=v(()=>{"use strict";Ywt();Zwt();K_e();ze();Tl();aU();PNt();NNt();ns();T9();SZ();DNt();apr=sIt,cpr=new Set(["noop","sealed","error"]);LNt=null,UNt=null});function fve(e){X6.set(e.name,e)}function FNt(){return Array.from(X6.values()).map(e=>({name:e.name,title:e.title,description:e.description,arguments:e.arguments.length>0?e.arguments.map(t=>({name:t.name,description:t.description,required:t.required})):void 0}))}async function jNt(e,t){let n=X6.get(e);if(!n)throw new rn(yn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new rn(yn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function HNt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=X6.get(n);if(!r)return t;let i=r.arguments.find(s=>s.name===e.argument.name);if(!i?.completer)return t;try{let s=await i.completer(e.argument.value,e.context?.arguments);return{completion:{values:s.slice(0,100),total:s.length,hasMore:s.length>100}}}catch{return t}}var X6,pve=v(()=>{"use strict";Pb();X6=new Map});import{existsSync as qNt,readdirSync as lpr,readFileSync as dpr}from"node:fs";import{join as BNt}from"node:path";function GNt(){let e=0;fve({name:"haiku:status",title:"H\xB7AI\xB7K\xB7U: Check active work",description:"Check for active H\xB7AI\xB7K\xB7U intents and get your current action. Call this at the start of every session to resume in-progress work.",arguments:[],handler:async()=>({description:"Check for active H\xB7AI\xB7K\xB7U work",messages:[{role:"user",content:{type:"text",text:'Check if there is active H\xB7AI\xB7K\xB7U work in this project.\n\n1. Call `haiku_intent_list` to see all intents and their status\n2. If there is an active intent, call `haiku_run_next { intent: "" }` to get your current action\n3. If no active intents exist, let me know \u2014 I can start one with `haiku:start`\n\nDo this silently \u2014 just check and report what you find.'}}]})}),e++;let t=nn();if(!t)return console.error(`[haiku] Registered ${e} prompt(s) (plugin root not found \u2014 skills not bridged)`),e;let n=BNt(t,"skills");if(!qNt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=lpr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=BNt(n,i.name,"SKILL.md");if(!qNt(s))continue;let o=dpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;fve({name:d,title:`H\xB7AI\xB7K\xB7U: ${u}`,description:l||`Run the H\xB7AI\xB7K\xB7U ${u} workflow`,arguments:[{name:"args",description:"Optional arguments to pass to the skill (e.g., intent slug, unit name)",required:!1}],handler:async f=>{let p=f.args||"",h=p?`${c} --- -**User arguments:** ${p}`:c;return{description:`H\xB7AI\xB7K\xB7U ${u} workflow`,messages:[{role:"user",content:{type:"text",text:h}}]}}}),e++}return e>0&&console.error(`[haiku] Registered ${e} prompt(s) as MCP prompts (harness lacks native skill support)`),e}var VNt=v(()=>{"use strict";Oi();ze();UTe()});var Edr={};async function _dr(){mne();let e=new eV;await Wv.connect(e);let t=eh()?"":` (harness: ${Ni().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function ZNt(e){if(KNt)return;KNt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${WNt}ms \u2014 forcing exit`),process.exit(1)},WNt);t.unref();try{await Wv.close(),await Cvt(),await gf()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var Wv,WNt,KNt,YNt=v(()=>{"use strict";BYe();WYe();kb();Oi();Q5();Uvt();$p();yf();Gd();UTe();VNt();j6();es();vo();ze();Wv=new Q2({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});eh()||Ni().mcpPrompts&&zNt();Wv.setRequestHandler(Mre,async()=>({prompts:FNt()}));Wv.setRequestHandler(Dre,async e=>HNt(e.params.name,e.params.arguments));Wv.setRequestHandler(Gre,async e=>qNt(e.params));Wv.setRequestHandler(Hre,async()=>{let e=Ni(),n=[...c6,...Bye,{name:"ask_user_visual_question",description:"Ask the user one or more questions via a rich HTML page in the browser. Renders questions with selectable options (radio or checkbox) and an optional 'Other' field. ALWAYS provide concrete options[] for each question \u2014 never leave the user to type freeform when you know the alternatives. Use this instead of AskUserQuestion when: (1) questions involve visual artifacts or image_paths, (2) you need rich markdown context above the questions, or (3) you have multiple related questions that benefit from being presented together (each as a separate entry in the questions[] array). For unrelated questions, make separate tool calls instead of bundling them.",inputSchema:{type:"object",properties:{questions:{type:"array",items:{type:"object",properties:{question:{type:"string",description:"The question text"},header:{type:"string",description:"Optional header/subtitle"},options:{type:"array",items:{type:"string"},description:"Answer options"},multiSelect:{type:"boolean",description:"Allow multiple selections"}},required:["question","options"]},description:"Questions to present to the user"},context:{type:"string",description:"Optional markdown context above questions"},title:{type:"string",description:"Optional page title"},image_paths:{type:"array",items:{type:"string"},description:"Optional local image file paths to display alongside questions"}},required:["questions"]}},{name:"pick_design_direction",description:"Open a browser-based visual picker for choosing a design direction. Presents archetype cards with preview HTML \u2014 the user picks one, marks some to keep and asks for new variants for the rest, or rejects them all and asks for a fresh batch. Visual annotations (pins) can be attached to the selected direction for pointed feedback. Archetypes can be provided inline or as a path to a JSON file on disk.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The intent slug this direction applies to"},context:{type:"string",description:"Optional markdown preamble shown above the archetype cards (what this direction governs, what's already decided, the tradeoffs each option leans into)"},archetypes:{type:"array",items:{type:"object",properties:{name:{type:"string",description:"Archetype name"},description:{type:"string",description:"Brief description"},preview_html:{type:"string",description:"HTML preview snippet"}},required:["name","description","preview_html"]},description:"Inline design archetypes to choose from"},archetypes_file:{type:"string",description:"Path to a JSON file containing the archetypes array (alternative to inline archetypes)"},title:{type:"string",description:"Optional page title"}},required:["intent_slug"]}},{name:"haiku_await_visual_answer",description:"Resume entry point for a pending visual-question session. Under v4 the canonical flow blocks INSIDE ask_user_visual_question \u2014 the engine creates the session, opens the browser, and waits for the user's answer all in one tool call. Use haiku_await_visual_answer only when the original blocking call timed out, the MCP host disconnected, or the agent restart lost the in-memory wait. Returns the same answer + screenshot annotations as the canonical path.",inputSchema:e9},{name:"haiku_await_design_direction",description:"Resume entry point for a pending design-direction session. Under v4 the canonical flow blocks INSIDE pick_design_direction \u2014 the engine creates the session, opens the browser, and waits for the user's submission (select / regenerate / generate / upload) all in one tool call. Use haiku_await_design_direction only when the original blocking call timed out or was lost. Returns the same announcement + next-step shape.",inputSchema:t9},{name:"haiku_report",description:"Submit a bug report or feedback to the H\xB7AI\xB7K\xB7U team via Sentry. Use this when a user wants to report an issue, suggest an improvement, or share feedback.",inputSchema:{type:"object",properties:{message:{type:"string",description:"The feedback message or bug report"},contact_email:{type:"string",description:"Optional contact email for follow-up"},name:{type:"string",description:"Optional name of the person submitting feedback"}},required:["message"]}}];if(!eh()){let r=new Set(["ask_user_visual_question","haiku_await_visual_answer","pick_design_direction","haiku_await_design_direction"]);n=n.filter(i=>!r.has(i.name))}return e.maxTools!==null&&n.length>e.maxTools&&(console.error(`[haiku] Harness tool limit (${e.maxTools}) exceeded \u2014 exposing ${e.maxTools} of ${n.length} tools`),n=n.slice(0,e.maxTools)),{tools:n}});Wv.setRequestHandler(XP,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=Lvt(r);if(!i.ok)return{content:[{type:"text",text:`Haiku plugin dir was wiped from under the running MCP server and self-repair failed (${i.result?`${i.result.method}${i.result.reason?`:${i.result.reason}`:""}${i.result.error?` \u2014 ${i.result.error}`:""}`:"no-result"}). Run \`/plugin install haiku@haiku\` (or \`/plugin update haiku\`) to restore it manually.`}],isError:!0};let s;try{s=await yIt(e,t?.signal)}catch(o){if(t?.signal?.aborted)throw o;let a=e.params?.name??"",u=(e.params?.arguments??{})._session_context;try{let{appendFileSync:l}=await import("node:fs"),d=new Date().toISOString(),f=o instanceof Error?o.stack||o.message:String(o);l("/tmp/haiku-mcp-crashes.log",` +**User arguments:** ${p}`:c;return{description:`H\xB7AI\xB7K\xB7U ${u} workflow`,messages:[{role:"user",content:{type:"text",text:h}}]}}}),e++}return e>0&&console.error(`[haiku] Registered ${e} prompt(s) as MCP prompts (harness lacks native skill support)`),e}var zNt=v(()=>{"use strict";Ci();ze();pve()});var ppr={};async function fpr(){Cne();let e=new h2;await Qv.connect(e);let t=sh()?"":` (harness: ${Mi().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function KNt(e){if(WNt)return;WNt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${VNt}ms \u2014 forcing exit`),process.exit(1)},VNt);t.unref();try{await Qv.close(),await yAt(),await Sf()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var Qv,VNt,WNt,YNt=v(()=>{"use strict";E8e();v8e();Pb();Ci();dZ();bAt();ih();Ef();Vd();pve();zNt();t6();ji();uo();ze();Qv=new f2({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});sh()||Mi().mcpPrompts&&GNt();Qv.setRequestHandler(Qre,async()=>({prompts:FNt()}));Qv.setRequestHandler($re,async e=>jNt(e.params.name,e.params.arguments));Qv.setRequestHandler(aie,async e=>HNt(e.params));Qv.setRequestHandler(iie,async()=>{let e=Mi(),n=[...bZ,...uSe,{name:"ask_user_visual_question",description:"Ask the user one or more questions via a rich HTML page in the browser. Renders questions with selectable options (radio or checkbox) and an optional 'Other' field. ALWAYS provide concrete options[] for each question \u2014 never leave the user to type freeform when you know the alternatives. Use this instead of AskUserQuestion when: (1) questions involve visual artifacts or image_paths, (2) you need rich markdown context above the questions, or (3) you have multiple related questions that benefit from being presented together (each as a separate entry in the questions[] array). For unrelated questions, make separate tool calls instead of bundling them.",inputSchema:{type:"object",properties:{questions:{type:"array",items:{type:"object",properties:{question:{type:"string",description:"The question text"},header:{type:"string",description:"Optional header/subtitle"},options:{type:"array",items:{type:"string"},description:"Answer options"},multiSelect:{type:"boolean",description:"Allow multiple selections"}},required:["question","options"]},description:"Questions to present to the user"},context:{type:"string",description:"Optional markdown context above questions"},title:{type:"string",description:"Optional page title"},image_paths:{type:"array",items:{type:"string"},description:"Optional local image file paths to display alongside questions"}},required:["questions"]}},{name:"pick_design_direction",description:"Open a browser-based visual picker for choosing a design direction. Presents archetype cards with preview HTML \u2014 the user picks one, marks some to keep and asks for new variants for the rest, or rejects them all and asks for a fresh batch. Visual annotations (pins) can be attached to the selected direction for pointed feedback. Archetypes can be provided inline or as a path to a JSON file on disk.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The intent slug this direction applies to"},context:{type:"string",description:"Optional markdown preamble shown above the archetype cards (what this direction governs, what's already decided, the tradeoffs each option leans into)"},archetypes:{type:"array",items:{type:"object",properties:{name:{type:"string",description:"Archetype name"},description:{type:"string",description:"Brief description"},preview_html:{type:"string",description:"HTML preview snippet"}},required:["name","description","preview_html"]},description:"Inline design archetypes to choose from"},archetypes_file:{type:"string",description:"Path to a JSON file containing the archetypes array (alternative to inline archetypes)"},title:{type:"string",description:"Optional page title"}},required:["intent_slug"]}},{name:"haiku_await_visual_answer",description:"Resume entry point for a pending visual-question session. Under v4 the canonical flow blocks INSIDE ask_user_visual_question \u2014 the engine creates the session, opens the browser, and waits for the user's answer all in one tool call. Use haiku_await_visual_answer only when the original blocking call timed out, the MCP host disconnected, or the agent restart lost the in-memory wait. Returns the same answer + screenshot annotations as the canonical path.",inputSchema:g3},{name:"haiku_await_design_direction",description:"Resume entry point for a pending design-direction session. Under v4 the canonical flow blocks INSIDE pick_design_direction \u2014 the engine creates the session, opens the browser, and waits for the user's submission (select / regenerate / generate / upload) all in one tool call. Use haiku_await_design_direction only when the original blocking call timed out or was lost. Returns the same announcement + next-step shape.",inputSchema:y3},{name:"haiku_report",description:"Submit a bug report or feedback to the H\xB7AI\xB7K\xB7U team via Sentry. Use this when a user wants to report an issue, suggest an improvement, or share feedback.",inputSchema:{type:"object",properties:{message:{type:"string",description:"The feedback message or bug report"},contact_email:{type:"string",description:"Optional contact email for follow-up"},name:{type:"string",description:"Optional name of the person submitting feedback"}},required:["message"]}}];if(!sh()){let r=new Set(["ask_user_visual_question","haiku_await_visual_answer","pick_design_direction","haiku_await_design_direction"]);n=n.filter(i=>!r.has(i.name))}return e.maxTools!==null&&n.length>e.maxTools&&(console.error(`[haiku] Harness tool limit (${e.maxTools}) exceeded \u2014 exposing ${e.maxTools} of ${n.length} tools`),n=n.slice(0,e.maxTools)),{tools:n}});Qv.setRequestHandler(sC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=_At(r);if(!i.ok)return{content:[{type:"text",text:`Haiku plugin dir was wiped from under the running MCP server and self-repair failed (${i.result?`${i.result.method}${i.result.reason?`:${i.result.reason}`:""}${i.result.error?` \u2014 ${i.result.error}`:""}`:"no-result"}). Run \`/plugin install haiku@haiku\` (or \`/plugin update haiku\`) to restore it manually.`}],isError:!0};let s;try{s=await p0t(e,t?.signal)}catch(o){if(t?.signal?.aborted)throw o;let a=e.params?.name??"",u=(e.params?.arguments??{})._session_context;try{let{appendFileSync:l}=await import("node:fs"),d=new Date().toISOString(),f=o instanceof Error?o.stack||o.message:String(o);l("/tmp/haiku-mcp-crashes.log",` --- ${d} tool=${a} --- ${f} -`)}catch{}ps(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>($p(),z4e));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});DTe({prepare:SIt,await:_It});WNt=1e4,KNt=!1;process.on("SIGINT",()=>{ZNt("SIGINT")});process.on("SIGTERM",()=>{ZNt("SIGTERM")});_dr().catch(e=>{ps(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var ey=v(()=>{"use strict"});import{execSync as bdr}from"node:child_process";import{existsSync as IU,mkdirSync as HPi,readdirSync as Tdr,readFileSync as JNt,statSync as qPi,writeFileSync as BPi}from"node:fs";import{dirname as zPi,join as MY}from"node:path";function jTe(e,t){if(!IU(e))return"";let r=JNt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function XNt(e){if(!IU(e))return{};try{return JSON.parse(JNt(e,"utf8"))}catch{return{}}}function Fx(){return IU(MY(DY(),".haiku"))}function Hx(){let e=DY(),t=MY(e,".haiku","intents");if(!IU(t))return null;let n=Tdr(t);for(let r of n){let i=MY(t,r,"intent.md");if(!IU(i))continue;if(jTe(i,"status")==="active")return MY(t,r)}return null}function DY(){try{return bdr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var Kv=v(()=>{"use strict"});import{appendFileSync as QNt,existsSync as vdr,readFileSync as Adr}from"node:fs";import{join as FTe}from"node:path";function Rdr(e){let t=FTe(e,"intent.md"),n=jTe(t,"active_stage");if(!n)return null;let r=FTe(e,"stages",n,"state.json"),i=XNt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function wdr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=Hx();if(!i||Rdr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=FTe("/tmp",`context-monitor-${o}`),c="";vdr(a)&&(c=Adr(a,"utf8")),s<=25?c.includes("25")||(QNt(a,`25 -`),process.stderr.write("\u26A0\uFE0F CONTEXT LOW (\u226425% remaining) \u2014 elaboration in progress\n\nYou're partway through elaboration with a tight context window. Run `/clear` to start with a fresh session \u2014 elaboration state is already on disk (`intent.md`, unit files, stage `state.json`), so the next tick will pick up exactly where you left off.\n"),process.exit(2)):s<=35&&(c.includes("35")||(QNt(a,`35 +`)}catch{}ms(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>(ih(),bKe));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});dve({prepare:h0t,await:m0t});VNt=1e4,WNt=!1;process.on("SIGINT",()=>{KNt("SIGINT")});process.on("SIGTERM",()=>{KNt("SIGTERM")});fpr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var iy=v(()=>{"use strict"});import{execSync as hpr}from"node:child_process";import{existsSync as BU,mkdirSync as UDi,readdirSync as mpr,readFileSync as ZNt,statSync as FDi,writeFileSync as jDi}from"node:fs";import{dirname as qDi,join as Q6}from"node:path";function hve(e,t){if(!BU(e))return"";let r=ZNt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function JNt(e){if(!BU(e))return{};try{return JSON.parse(ZNt(e,"utf8"))}catch{return{}}}function Kx(){return BU(Q6($6(),".haiku"))}function Yx(){let e=$6(),t=Q6(e,".haiku","intents");if(!BU(t))return null;let n=mpr(t);for(let r of n){let i=Q6(t,r,"intent.md");if(!BU(i))continue;if(hve(i,"status")==="active")return Q6(t,r)}return null}function $6(){try{return hpr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var $v=v(()=>{"use strict"});import{appendFileSync as XNt,existsSync as gpr,readFileSync as ypr}from"node:fs";import{join as mve}from"node:path";function Spr(e){let t=mve(e,"intent.md"),n=hve(t,"active_stage");if(!n)return null;let r=mve(e,"stages",n,"state.json"),i=JNt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function Epr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=Yx();if(!i||Spr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=mve("/tmp",`context-monitor-${o}`),c="";gpr(a)&&(c=ypr(a,"utf8")),s<=25?c.includes("25")||(XNt(a,`25 +`),process.stderr.write("\u26A0\uFE0F CONTEXT LOW (\u226425% remaining) \u2014 elaboration in progress\n\nYou're partway through elaboration with a tight context window. Run `/clear` to start with a fresh session \u2014 elaboration state is already on disk (`intent.md`, unit files, stage `state.json`), so the next tick will pick up exactly where you left off.\n"),process.exit(2)):s<=35&&(c.includes("35")||(XNt(a,`35 `),process.stderr.write(`\u26A0\uFE0F CONTEXT NOTE (\u226435% remaining) \u2014 elaboration in progress Context is getting tight while elaborating. Consider \`/clear\` to give elaboration a fresh window \u2014 your unit/intent files on disk are the source of truth, so the next tick resumes cleanly. -`),process.exit(2)))}var $Nt,ePt=v(()=>{"use strict";ey();Kv();$Nt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await wdr(e,t.pluginRoot)}}});function kdr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return HTe.some(r=>n.includes(r))}if(typeof e!="object")return!1;let t=e;if(t.isError!==!0)return!1;if(Array.isArray(t.content)){for(let n of t.content)if(n&&typeof n=="object"){let r=n.text;if(typeof r=="string"){let i=r.toLowerCase();if(HTe.some(s=>i.includes(s)))return!0}}}for(let n of["error","message"]){let r=t[n];if(typeof r=="string"){let i=r.toLowerCase();if(HTe.some(s=>i.includes(s)))return!0}}return!1}var HTe,tPt,nPt=v(()=>{"use strict";ey();Kv();HTe=["file has not been read yet","file has not been read in this session","read it first before writing to it"];tPt={name:"edit-auto-read-hint",description:"PostToolUse: when Edit/MultiEdit fails with 'file not read yet', surface a Read-first hint so the agent recovers in one turn instead of retrying blindly.",async handle(e,t){if(!Fx())return;let n=e??{};if(!kdr(n.tool_response))return;let i=n.tool_input?.file_path??"";process.stderr.write(`Read \`${i}\` first, then retry the Edit. -`),process.exit(2)}}});import{execFileSync as Idr}from"node:child_process";import{existsSync as xdr}from"node:fs";import{join as rPt,resolve as Odr}from"node:path";function Ndr(e){process.stderr.write(e)}function Pdr(e){try{let t=Idr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:rPt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(xdr(rPt(n,r)))return!0;return!1}catch{return!1}}function Cdr(e){let t=e.match(/\.haiku\/intents\/([^/]+)\/stages\/([^/]+)\/units\/([^/]+)\.md$/);if(t)return{kind:"unit",intent:t[1],stage:t[2],name:t[3]};let n=e.match(/\.haiku\/intents\/([^/]+)\/(?:stages\/([^/]+)\/)?feedback\/([^/]+)\.md$/);return n?{kind:"feedback",intent:n[1],stage:n[2]||void 0,name:n[3]}:/\.haiku\/intents\/[^/]+\/intent\.md$/.test(e)?{kind:"intent"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/state\.json$/.test(e)?{kind:"stage_state"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/BRIEF\.md$/.test(e)?{kind:"brief"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/\.baseline-ack$/.test(e)?{kind:"baseline_ack"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/baseline-thrash\.json$/.test(e)?{kind:"baseline_thrash"}:/(?:^|\/)\.haiku\/settings\.yml$/.test(e)?{kind:"settings"}:{kind:null}}function Mdr(e,t){let n=e==="Read"?"read":e==="Write"?"create or overwrite":"edit",r=t.intent??"",i=t.stage??"",s=t.name??"";if(t.kind==="unit"){let o=n==="read"?`haiku_unit_read { intent: "${r}", stage: "${i}", unit: "${s}" }`:n==="create or overwrite"?`haiku_unit_write { intent: "${r}", stage: "${i}", unit: "${s}", body: "...", frontmatter: { ... } }`:`haiku_unit_set { intent: "${r}", stage: "${i}", unit: "${s}", field: "...", value: "..." }`;return`BLOCKED: Cannot ${n} unit file '${s}.md' via generic ${e}. Unit files are workflow-managed \u2014 use the MCP tool instead: +`),process.exit(2)))}var QNt,$Nt=v(()=>{"use strict";iy();$v();QNt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await Epr(e,t.pluginRoot)}}});function _pr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return gve.some(r=>n.includes(r))}if(typeof e!="object")return!1;let t=e;if(t.isError!==!0)return!1;if(Array.isArray(t.content)){for(let n of t.content)if(n&&typeof n=="object"){let r=n.text;if(typeof r=="string"){let i=r.toLowerCase();if(gve.some(s=>i.includes(s)))return!0}}}for(let n of["error","message"]){let r=t[n];if(typeof r=="string"){let i=r.toLowerCase();if(gve.some(s=>i.includes(s)))return!0}}return!1}var gve,eCt,tCt=v(()=>{"use strict";iy();$v();gve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];eCt={name:"edit-auto-read-hint",description:"PostToolUse: when Edit/MultiEdit fails with 'file not read yet', surface a Read-first hint so the agent recovers in one turn instead of retrying blindly.",async handle(e,t){if(!Kx())return;let n=e??{};if(!_pr(n.tool_response))return;let i=n.tool_input?.file_path??"";process.stderr.write(`Read \`${i}\` first, then retry the Edit. +`),process.exit(2)}}});import{execFileSync as bpr}from"node:child_process";import{existsSync as Tpr}from"node:fs";import{join as nCt,resolve as vpr}from"node:path";function Apr(e){process.stderr.write(e)}function Rpr(e){try{let t=bpr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:nCt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(Tpr(nCt(n,r)))return!0;return!1}catch{return!1}}function wpr(e){let t=e.match(/\.haiku\/intents\/([^/]+)\/stages\/([^/]+)\/units\/([^/]+)\.md$/);if(t)return{kind:"unit",intent:t[1],stage:t[2],name:t[3]};let n=e.match(/\.haiku\/intents\/([^/]+)\/(?:stages\/([^/]+)\/)?feedback\/([^/]+)\.md$/);return n?{kind:"feedback",intent:n[1],stage:n[2]||void 0,name:n[3]}:/\.haiku\/intents\/[^/]+\/intent\.md$/.test(e)?{kind:"intent"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/state\.json$/.test(e)?{kind:"stage_state"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/BRIEF\.md$/.test(e)?{kind:"brief"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/\.baseline-ack$/.test(e)?{kind:"baseline_ack"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/baseline-thrash\.json$/.test(e)?{kind:"baseline_thrash"}:/(?:^|\/)\.haiku\/settings\.yml$/.test(e)?{kind:"settings"}:{kind:null}}function kpr(e,t){let n=e==="Read"?"read":e==="Write"?"create or overwrite":"edit",r=t.intent??"",i=t.stage??"",s=t.name??"";if(t.kind==="unit"){let o=n==="read"?`haiku_unit_read { intent: "${r}", stage: "${i}", unit: "${s}" }`:n==="create or overwrite"?`haiku_unit_write { intent: "${r}", stage: "${i}", unit: "${s}", body: "...", frontmatter: { ... } }`:`haiku_unit_set { intent: "${r}", stage: "${i}", unit: "${s}", field: "...", value: "..." }`;return`BLOCKED: Cannot ${n} unit file '${s}.md' via generic ${e}. Unit files are workflow-managed \u2014 use the MCP tool instead: ${o} Generic file access bypasses lifecycle enforcement (pending \u2192 active \u2192 completed), frontmatter validation (DAG, schema, cross-references), and integrity sealing.`}if(t.kind==="feedback"){let o=t.stage?`stage: "${i}", `:"",a=n==="read"?`haiku_feedback_read { intent: "${r}", ${o}feedback_id: "${s}" }`:n==="create or overwrite"?`haiku_feedback_write { intent: "${r}", ${o}feedback_id: "${s}", body: "..." } (or haiku_feedback { intent: "${r}", ${o}title: "...", body: "...", origin: "...", author: "..." } if you're creating a brand-new finding)`:`haiku_feedback_write { intent: "${r}", ${o}feedback_id: "${s}", body: "..." }`;return`BLOCKED: Cannot ${n} feedback file '${s}.md' via generic ${e}. Feedback files are workflow-managed and act as the unit-of-work for fix-loop hats \u2014 use the MCP tool instead: ${a} Generic file access bypasses fix-loop lifecycle and worktree isolation.`}return t.kind==="intent"?`BLOCKED: Cannot ${n} intent.md via generic ${e}. Intent files are workflow-managed \u2014 use haiku_intent_get to read fields, haiku_run_next to drive the lifecycle, or call /haiku:haiku-repair if state is genuinely corrupted. Direct edits skip the integrity checksum and the workflow engine's invariants.`:t.kind==="stage_state"?`BLOCKED: Cannot ${n} stage state.json via generic ${e}. Stage state is workflow engine-internal \u2014 every legitimate write happens via haiku_run_next or a dedicated MCP tool. Hand-editing breaks the integrity checksum and the forward-only lifecycle invariants.`:t.kind==="brief"?`BLOCKED: Cannot ${n} BRIEF.md. The stage brief is USER-FACING only \u2014 it's written by the briefer subagent for the human reviewing the plan at the gate, and you should never read it. Stay focused on your own mandate (your unit spec, your hat's job); the brief is not an input to your work.`:t.kind==="baseline_ack"?`BLOCKED: Cannot ${n} .baseline-ack via generic ${e}. This is the V-11 operator-only baseline-corrupt acknowledgement marker. Only /haiku:haiku-repair --confirm-baseline-reset --diff-shown --confirm-diff-hash (operator-driven) may write it; the agent has no path here. Reads are also blocked because the diff hash leaking to an attacker chain would let them forge a valid-looking ack.`:t.kind==="baseline_thrash"?`BLOCKED: Cannot ${n} baseline-thrash.json via generic ${e}. This is the V-11 baseline-corruption circuit-breaker counter \u2014 workflow-engine-managed. Letting the agent reset it would let an attacker zero out the thrash detector right before each corruption attempt.`:t.kind==="settings"?`BLOCKED: Cannot ${n} .haiku/settings.yml via generic ${e}. Settings are schema-managed against plugin/schemas/settings.schema.json \u2014 use the MCP tool instead: ${n==="read"?'haiku_settings_get { field: "..." }':'haiku_settings_set { field: "...", value: ... }'} -Generic file access skips schema validation and can drop settings into a shape the engine refuses to load.`:""}async function Ddr(e){if(!Fx())return;let t=e.tool_name||"";if(t!=="Read"&&t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let r=(e.tool_input||{}).file_path||"";if(!r)return;let i=Odr(process.cwd(),r),s=Cdr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||Pdr(process.cwd())||(Ndr(Mdr(t,s)),process.exit(2)))}var iPt,sPt=v(()=>{"use strict";Kv();ey();iPt={name:"guard-workflow-fields",description:"PreToolUse Read/Write/Edit/MultiEdit: enforce workflow-ownership boundary on .haiku state files (units, feedback, intent.md, stage state.json) \u2014 agents must use the corresponding MCP tools.",async handle(e,t){await Ddr(e)}}});import{join as oPt}from"node:path";function Ldr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function Udr(){let e={},t=["CLAUDE_SESSION_ID","CLAUDE_CODE_IS_COWORK","CLAUDE_MODEL","CLAUDE_CODE_VERSION","CLAUDE_CODE_ENTRYPOINT","USER"];for(let n of t){let r=process.env[n];r&&(e[n]=r)}return e.platform=process.platform,e.node_version=process.version,e.cwd=process.cwd(),e}async function jdr(e){if(!(e.tool_name||"").startsWith("haiku_"))return;let n={},r=e.session_id||process.env.CLAUDE_SESSION_ID;if(r){let i=process.env.CLAUDE_CONFIG_DIR||oPt(process.env.HOME||"",".claude"),s=Ldr(process.cwd());n.state_file=oPt(i,"projects",s,r,"haiku.json")}n._session_context=Udr(),process.stdout.write(JSON.stringify(n))}var aPt,cPt=v(()=>{"use strict";ey();aPt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await jdr(e)}}});async function Hdr(e,t){if(!Fx())return;let n=e.tool_name;if(n!=="Write"&&n!=="Edit")return;let r=e.tool_input||{},i=r.file_path||"";if(!i.includes("/.haiku/"))return;let s=r.content||r.new_string||"";Fdr.test(s)&&process.stdout.write(`\u26A0\uFE0F PROMPT GUARD: Potential injection pattern detected in spec file write to ${i} +Generic file access skips schema validation and can drop settings into a shape the engine refuses to load.`:""}async function Ipr(e){if(!Kx())return;let t=e.tool_name||"";if(t!=="Read"&&t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let r=(e.tool_input||{}).file_path||"";if(!r)return;let i=vpr(process.cwd(),r),s=wpr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||Rpr(process.cwd())||(Apr(kpr(t,s)),process.exit(2)))}var rCt,iCt=v(()=>{"use strict";$v();iy();rCt={name:"guard-workflow-fields",description:"PreToolUse Read/Write/Edit/MultiEdit: enforce workflow-ownership boundary on .haiku state files (units, feedback, intent.md, stage state.json) \u2014 agents must use the corresponding MCP tools.",async handle(e,t){await Ipr(e)}}});import{join as sCt}from"node:path";function xpr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function Opr(){let e={},t=["CLAUDE_SESSION_ID","CLAUDE_CODE_IS_COWORK","CLAUDE_MODEL","CLAUDE_CODE_VERSION","CLAUDE_CODE_ENTRYPOINT","USER"];for(let n of t){let r=process.env[n];r&&(e[n]=r)}return e.platform=process.platform,e.node_version=process.version,e.cwd=process.cwd(),e}async function Ppr(e){if(!(e.tool_name||"").startsWith("haiku_"))return;let n={},r=e.session_id||process.env.CLAUDE_SESSION_ID;if(r){let i=process.env.CLAUDE_CONFIG_DIR||sCt(process.env.HOME||"",".claude"),s=xpr(process.cwd());n.state_file=sCt(i,"projects",s,r,"haiku.json")}n._session_context=Opr(),process.stdout.write(JSON.stringify(n))}var oCt,aCt=v(()=>{"use strict";iy();oCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await Ppr(e)}}});async function Cpr(e,t){if(!Kx())return;let n=e.tool_name;if(n!=="Write"&&n!=="Edit")return;let r=e.tool_input||{},i=r.file_path||"";if(!i.includes("/.haiku/"))return;let s=r.content||r.new_string||"";Npr.test(s)&&process.stdout.write(`\u26A0\uFE0F PROMPT GUARD: Potential injection pattern detected in spec file write to ${i} Review the content before proceeding. -`)}var Fdr,uPt,lPt=v(()=>{"use strict";ey();Kv();Fdr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;uPt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await Hdr(e,t.pluginRoot)}}});import{existsSync as qdr}from"node:fs";import{join as Bdr}from"node:path";function Gdr(){let e=process.env.HAIKU_REDIRECT_PLAN_MODE;if(!e)return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}async function zdr(e,t){if(e.tool_name!=="EnterPlanMode"||!Gdr()||!eh()||Hx())return;let n=DY();if(!qdr(Bdr(n,".haiku")))return;let r=wP("start"),i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`H\xB7AI\xB7K\xB7U: Use ${r} instead of plan mode. +`)}var Npr,cCt,uCt=v(()=>{"use strict";iy();$v();Npr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;cCt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await Cpr(e,t.pluginRoot)}}});import{existsSync as Mpr}from"node:fs";import{join as Dpr}from"node:path";function Lpr(){let e=process.env.HAIKU_REDIRECT_PLAN_MODE;if(!e)return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}async function Upr(e,t){if(e.tool_name!=="EnterPlanMode"||!Lpr()||!sh()||Yx())return;let n=$6();if(!Mpr(Dpr(n,".haiku")))return;let r=MN("start"),i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`H\xB7AI\xB7K\xB7U: Use ${r} instead of plan mode. The H\xB7AI\xB7K\xB7U plugin replaces Claude Code's built-in plan mode with a more comprehensive workflow: @@ -1633,9 +1636,9 @@ The H\xB7AI\xB7K\xB7U plugin replaces Claude Code's built-in plan mode with a mo **To start:** Run \`${r}\` with a description of what you want to build. -(To disable this redirect, unset \`HAIKU_REDIRECT_PLAN_MODE\` in your environment.)`}};process.stdout.write(JSON.stringify(i))}var dPt,fPt=v(()=>{"use strict";yf();ey();Kv();dPt={name:"redirect-plan-mode",description:"PreToolUse: when HAIKU_REDIRECT_PLAN_MODE is set and no intent is active, intercept EnterPlanMode (Claude Code) and redirect to /haiku:haiku-start.",async handle(e,t){await zdr(e,t.pluginRoot)}}});import{resolve as Vdr}from"node:path";async function Wdr(e){if(!Hx())return;let t=e.tool_name||"";if(t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let n=e.tool_response??{};if(n.error||n.is_error===!0)return;let i=(e.tool_input||{}).file_path||"";i&&await B6(Vdr(process.cwd(),i))}var pPt,hPt=v(()=>{"use strict";nbe();ey();Kv();pPt={name:"stamp-agent-write",description:"PostToolUse Write/Edit/MultiEdit: append an `agent_write` action-log entry when the agent writes inside an intent's tracked drift surface, so the next drift-gate tick attributes the change to the agent and updates the baseline silently.",async handle(e,t){try{await Wdr(e)}catch{}}}});import{existsSync as mPt,readdirSync as Kdr}from"node:fs";import{join as qTe}from"node:path";function Zdr(){let e=qTe(process.cwd(),".haiku","intents");if(!mPt(e))return null;let t=Kdr(e).filter(n=>mPt(qTe(e,n,"intent.md")));return t.length===1?qTe(e,t[0]):null}async function Ydr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!Zdr())return;let s=(e.tool_input||{}).file_path||"";s.includes("/.haiku/")||process.stdout.write(`\u26A0\uFE0F WORKFLOW GUARD: Editing ${s} \u2014 ensure this is within an active hat's scope. -`)}var gPt,yPt=v(()=>{"use strict";ey();gPt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await Ydr(e,t.pluginRoot)}}});var _Pt={};Rr(_Pt,{__HOOK_REGISTRY:()=>tfr,runHook:()=>efr});import{readFileSync as Jdr}from"node:fs";function $dr(){try{return Jdr(0,"utf8")}catch{return""}}async function efr(e,t){if(Qdr.has(e))return;let n=Xdr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=$dr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Oi(),B4e)),o=s();await n.handle(i,{pluginRoot:o})}var SPt,Xdr,Qdr,tfr,EPt=v(()=>{"use strict";ePt();nPt();sPt();cPt();lPt();fPt();hPt();yPt();SPt=[$Nt,tPt,iPt,aPt,uPt,dPt,pPt,gPt],Xdr=new Map(SPt.map(e=>[e.name,e])),Qdr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);tfr=SPt});var vPt={};Rr(vPt,{runMigrate:()=>ofr});import{execSync as nfr}from"node:child_process";import{cpSync as xU,existsSync as ty,mkdirSync as qx,readdirSync as bPt,readFileSync as rfr,writeFileSync as Bx}from"node:fs";import{basename as BTe,join as kn}from"node:path";function TPt(e){let t=rfr(e,"utf8"),n=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!n)return{data:{},body:t};let r={};for(let i of n[1].split(` -`)){let s=i.match(/^([\w][\w-]*):\s*(.*)$/);if(s){let[,o,a]=s;a==="null"?r[o]=null:a==="true"?r[o]=!0:a==="false"?r[o]=!1:/^-?\d+$/.test(a)?r[o]=Number.parseInt(a,10):a.startsWith("[")&&a.endsWith("]")?r[o]=a.slice(1,-1).split(",").map(c=>c.trim().replace(/^["']|["']$/g,"")).filter(Boolean):r[o]=a.replace(/^["']|["']$/g,"")}}return{data:r,body:n[2].trim()}}function ifr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function GTe(e){try{let{execSync:t}=Y("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function sfr(e){try{let{execSync:t}=Y("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function ofr(e){let t=new Set,n=[];for(let b of e)b.startsWith("--")?t.add(b):n.push(b);let i=!t.has("--apply")||t.has("--dry-run"),s=t.has("--all"),o=t.has("--allow-dirty"),a=t.has("--force"),c=process.cwd(),u=kn(c,".ai-dlc"),l=kn(c,".haiku","intents");if(!ty(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=bPt(u).filter(b=>{let T=kn(u,b);return ty(kn(T,"intent.md"))});if(d.length===0){console.log("No intents found in .ai-dlc/. Nothing to migrate.");return}if(n.length===0&&!s){let b=d.map(T=>` ${T}`).join(` +(To disable this redirect, unset \`HAIKU_REDIRECT_PLAN_MODE\` in your environment.)`}};process.stdout.write(JSON.stringify(i))}var lCt,dCt=v(()=>{"use strict";Ef();iy();$v();lCt={name:"redirect-plan-mode",description:"PreToolUse: when HAIKU_REDIRECT_PLAN_MODE is set and no intent is active, intercept EnterPlanMode (Claude Code) and redirect to /haiku:haiku-start.",async handle(e,t){await Upr(e,t.pluginRoot)}}});import{resolve as Fpr}from"node:path";async function jpr(e){if(!Yx())return;let t=e.tool_name||"";if(t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let n=e.tool_response??{};if(n.error||n.is_error===!0)return;let i=(e.tool_input||{}).file_path||"";i&&await o6(Fpr(process.cwd(),i))}var fCt,pCt=v(()=>{"use strict";Nbe();iy();$v();fCt={name:"stamp-agent-write",description:"PostToolUse Write/Edit/MultiEdit: append an `agent_write` action-log entry when the agent writes inside an intent's tracked drift surface, so the next drift-gate tick attributes the change to the agent and updates the baseline silently.",async handle(e,t){try{await jpr(e)}catch{}}}});import{existsSync as hCt,readdirSync as Hpr}from"node:fs";import{join as yve}from"node:path";function qpr(){let e=yve(process.cwd(),".haiku","intents");if(!hCt(e))return null;let t=Hpr(e).filter(n=>hCt(yve(e,n,"intent.md")));return t.length===1?yve(e,t[0]):null}async function Bpr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!qpr())return;let s=(e.tool_input||{}).file_path||"";s.includes("/.haiku/")||process.stdout.write(`\u26A0\uFE0F WORKFLOW GUARD: Editing ${s} \u2014 ensure this is within an active hat's scope. +`)}var mCt,gCt=v(()=>{"use strict";iy();mCt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await Bpr(e,t.pluginRoot)}}});var SCt={};Rr(SCt,{__HOOK_REGISTRY:()=>Ypr,runHook:()=>Kpr});import{readFileSync as Gpr}from"node:fs";function Wpr(){try{return Gpr(0,"utf8")}catch{return""}}async function Kpr(e,t){if(Vpr.has(e))return;let n=zpr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=Wpr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),EKe)),o=s();await n.handle(i,{pluginRoot:o})}var yCt,zpr,Vpr,Ypr,ECt=v(()=>{"use strict";$Nt();tCt();iCt();aCt();uCt();dCt();pCt();gCt();yCt=[QNt,eCt,rCt,oCt,cCt,lCt,fCt,mCt],zpr=new Map(yCt.map(e=>[e.name,e])),Vpr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);Ypr=yCt});var TCt={};Rr(TCt,{runMigrate:()=>$pr});import{execSync as Zpr}from"node:child_process";import{cpSync as GU,existsSync as sy,mkdirSync as Zx,readdirSync as _Ct,readFileSync as Jpr,writeFileSync as Jx}from"node:fs";import{basename as Sve,join as xn}from"node:path";function bCt(e){let t=Jpr(e,"utf8"),n=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!n)return{data:{},body:t};let r={};for(let i of n[1].split(` +`)){let s=i.match(/^([\w][\w-]*):\s*(.*)$/);if(s){let[,o,a]=s;a==="null"?r[o]=null:a==="true"?r[o]=!0:a==="false"?r[o]=!1:/^-?\d+$/.test(a)?r[o]=Number.parseInt(a,10):a.startsWith("[")&&a.endsWith("]")?r[o]=a.slice(1,-1).split(",").map(c=>c.trim().replace(/^["']|["']$/g,"")).filter(Boolean):r[o]=a.replace(/^["']|["']$/g,"")}}return{data:r,body:n[2].trim()}}function Xpr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Eve(e){try{let{execSync:t}=Y("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function Qpr(e){try{let{execSync:t}=Y("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function $pr(e){let t=new Set,n=[];for(let b of e)b.startsWith("--")?t.add(b):n.push(b);let i=!t.has("--apply")||t.has("--dry-run"),s=t.has("--all"),o=t.has("--allow-dirty"),a=t.has("--force"),c=process.cwd(),u=xn(c,".ai-dlc"),l=xn(c,".haiku","intents");if(!sy(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=_Ct(u).filter(b=>{let T=xn(u,b);return sy(xn(T,"intent.md"))});if(d.length===0){console.log("No intents found in .ai-dlc/. Nothing to migrate.");return}if(n.length===0&&!s){let b=d.map(T=>` ${T}`).join(` `);throw new Error(`refusing to run without a slug or --all. Found ${d.length} intent(s) in .ai-dlc/: @@ -1651,87 +1654,87 @@ Pick one: name slugs OR pass --all.`);if(n.length>0){let b=n.filter(T=>!d.includ `);throw new Error(`unknown intent slug(s): ${b.join(", ")} Available in .ai-dlc/: -${T}`)}}let f=["-dev","-product","-design","-tests"],p=new Map,h=new Set,m=["-followup","-v2","-phase2"],y=new Map;for(let b of d)for(let T of f)if(b.endsWith(T)){let A=b.slice(0,-T.length);d.includes(A)&&(p.has(A)||p.set(A,[]),p.get(A)?.push(b),h.add(b))}for(let b of d)if(!h.has(b)){for(let T of m)if(b.endsWith(T)){let A=b.slice(0,-T.length);d.includes(A)&&y.set(b,A)}}if(p.size>0){console.log(`Detected ${p.size} multi-pass intent group(s):`);for(let[b,T]of p)console.log(` ${b} \u2190 [${T.join(", ")}]`);console.log()}if(y.size>0){console.log(`Detected ${y.size} follow-up intent(s):`);for(let[b,T]of y)console.log(` ${b} follows ${T}`);console.log()}let g=d.filter(b=>!h.has(b));if(n.length>0){let b=n.filter(T=>h.has(T));if(b.length>0){let T=b.map(A=>{for(let[R,k]of p)if(k.includes(A))return`${A} \u2192 ${R}`;return A});throw new Error(`merged sub-intent(s) cannot be migrated directly: ${b.join(", ")} +${T}`)}}let f=["-dev","-product","-design","-tests"],p=new Map,h=new Set,m=["-followup","-v2","-phase2"],g=new Map;for(let b of d)for(let T of f)if(b.endsWith(T)){let A=b.slice(0,-T.length);d.includes(A)&&(p.has(A)||p.set(A,[]),p.get(A)?.push(b),h.add(b))}for(let b of d)if(!h.has(b)){for(let T of m)if(b.endsWith(T)){let A=b.slice(0,-T.length);d.includes(A)&&g.set(b,A)}}if(p.size>0){console.log(`Detected ${p.size} multi-pass intent group(s):`);for(let[b,T]of p)console.log(` ${b} \u2190 [${T.join(", ")}]`);console.log()}if(g.size>0){console.log(`Detected ${g.size} follow-up intent(s):`);for(let[b,T]of g)console.log(` ${b} follows ${T}`);console.log()}let y=d.filter(b=>!h.has(b));if(n.length>0){let b=n.filter(T=>h.has(T));if(b.length>0){let T=b.map(A=>{for(let[R,x]of p)if(x.includes(A))return`${A} \u2192 ${R}`;return A});throw new Error(`merged sub-intent(s) cannot be migrated directly: ${b.join(", ")} Migrate the base intent instead \u2014 sub-intents fold in automatically: ${T.join(` - `)}`)}}let E=n.length>0?g.filter(b=>n.includes(b)):g;if(!i&&!o){let b=null;try{b=nfr("git status --porcelain",{encoding:"utf8",cwd:c,timeout:5e3}).trim()}catch{}if(b)throw new Error(`refusing to apply with uncommitted changes in the working tree. + `)}`)}}let E=n.length>0?y.filter(b=>n.includes(b)):y;if(!i&&!o){let b=null;try{b=Zpr("git status --porcelain",{encoding:"utf8",cwd:c,timeout:5e3}).trim()}catch{}if(b)throw new Error(`refusing to apply with uncommitted changes in the working tree. Commit or stash first, or pass --allow-dirty. -${b}`)}console.log(`Found ${d.length} intent(s) in .ai-dlc/ (${g.length} primary, ${h.size} merged). +${b}`)}console.log(`Found ${d.length} intent(s) in .ai-dlc/ (${y.length} primary, ${h.size} merged). Migrating ${E.length} primary intent(s)${i?" (DRY RUN \u2014 pass --apply to write)":""}. -`);let S=0,_=0;for(let b of E){let T=kn(u,b),A=kn(l,b);if(ty(A)){let $=ty(kn(A,"stages"));if($&&!a){console.log(` SKIP: ${b} (already migrated with stages)`),_++;continue}$||console.log(` RE-MIGRATE: ${b} (missing stages \u2014 upgrading)`)}let{data:R,body:k}=TPt(kn(T,"intent.md")),x=R.status||"active",N=k.match(/^# (.+)$/m)?.[1]||b,P=y.get(b)||"",D=GTe(kn(T,"intent.md")),j=sfr(T),V=R.created||"",Z=D||(V?`${V}T00:00:00Z`:ifr()),B=x==="completed"||x==="complete"?j||Z:null;if(i){console.log(` DRY RUN: ${b} (status: ${x})`),S++;continue}qx(kn(A,"knowledge"),{recursive:!0});let G=["inception","design","product","development","operations","security"],X={design:"design",dev:"development",product:"product",ops:"operations",security:"security"},q=[{dir:T,defaultStage:""}],C=p.get(b)||[],z={"-dev":"development","-product":"product","-design":"design","-tests":"development"};for(let $ of C){let ie=kn(u,$),Re=f.find(Te=>$.endsWith(Te))||"";q.push({dir:ie,defaultStage:z[Re]||"development"})}let U=new Map,M=0;for(let{dir:$,defaultStage:ie}of q){let Re=bPt($).filter(Te=>Te.startsWith("unit-")&&Te.endsWith(".md"));for(let Te of Re){let{data:K,body:Q}=TPt(kn($,Te)),ae=K.pass||"",ge=ae?X[ae]||"development":ie||"development";U.has(ge)||U.set(ge,[]),U.get(ge)?.push({file:Te,fm:K,body:Q}),M++}if($!==T){if(ty(kn($,"discovery.md"))){let Te=BTe($);i||xU(kn($,"discovery.md"),kn(A,"knowledge",`${Te}-discovery.md`))}if(ty(kn($,"mockups"))&&!i){let Te=kn(A,"stages","design","artifacts");qx(Te,{recursive:!0});try{xU(kn($,"mockups"),Te,{recursive:!0})}catch{}}}}let H=R.active_pass||"",F=H&&X[H]||"",W=R.epic||"";if(x==="completed"||x==="complete"){Bx(kn(A,"intent.md"),`--- -title: "${N}" +`);let S=0,_=0;for(let b of E){let T=xn(u,b),A=xn(l,b);if(sy(A)){let ee=sy(xn(A,"stages"));if(ee&&!a){console.log(` SKIP: ${b} (already migrated with stages)`),_++;continue}ee||console.log(` RE-MIGRATE: ${b} (missing stages \u2014 upgrading)`)}let{data:R,body:x}=bCt(xn(T,"intent.md")),k=R.status||"active",P=x.match(/^# (.+)$/m)?.[1]||b,N=g.get(b)||"",C=Eve(xn(T,"intent.md")),F=Qpr(T),V=R.created||"",K=C||(V?`${V}T00:00:00Z`:Xpr()),$=k==="completed"||k==="complete"?F||K:null;if(i){console.log(` DRY RUN: ${b} (status: ${k})`),S++;continue}Zx(xn(A,"knowledge"),{recursive:!0});let B=["inception","design","product","development","operations","security"],X={design:"design",dev:"development",product:"product",ops:"operations",security:"security"},G=[{dir:T,defaultStage:""}],M=p.get(b)||[],q={"-dev":"development","-product":"product","-design":"design","-tests":"development"};for(let ee of M){let se=xn(u,ee),Me=f.find(Re=>ee.endsWith(Re))||"";G.push({dir:se,defaultStage:q[Me]||"development"})}let U=new Map,D=0;for(let{dir:ee,defaultStage:se}of G){let Me=_Ct(ee).filter(Re=>Re.startsWith("unit-")&&Re.endsWith(".md"));for(let Re of Me){let{data:z,body:J}=bCt(xn(ee,Re)),oe=z.pass||"",le=oe?X[oe]||"development":se||"development";U.has(le)||U.set(le,[]),U.get(le)?.push({file:Re,fm:z,body:J}),D++}if(ee!==T){if(sy(xn(ee,"discovery.md"))){let Re=Sve(ee);i||GU(xn(ee,"discovery.md"),xn(A,"knowledge",`${Re}-discovery.md`))}if(sy(xn(ee,"mockups"))&&!i){let Re=xn(A,"stages","design","artifacts");Zx(Re,{recursive:!0});try{GU(xn(ee,"mockups"),Re,{recursive:!0})}catch{}}}}let H=R.active_pass||"",j=H&&X[H]||"",W=R.epic||"";if(k==="completed"||k==="complete"){Jx(xn(A,"intent.md"),`--- +title: "${P}" studio: software stages: [inception, design, product, development, operations, security] mode: continuous active_stage: security status: completed -started_at: ${Z} -completed_at: ${B}${W?` -epic: ${W}`:""}${P?` -follows: ${P}`:""} +started_at: ${K} +completed_at: ${$}${W?` +epic: ${W}`:""}${N?` +follows: ${N}`:""} --- -${k} -`);for(let ie of G)qx(kn(A,"stages",ie,"units"),{recursive:!0}),Bx(kn(A,"stages",ie,"state.json"),`${JSON.stringify({stage:ie,status:"completed",phase:"gate",started_at:`${Z}`,completed_at:`${B}`,gate_entered_at:null,gate_outcome:"advanced"},null,2)} -`);for(let[ie,Re]of U){qx(kn(A,"stages",ie,"units"),{recursive:!0});for(let{file:Te,fm:K,body:Q}of Re){let ae=K.status||"pending",ge=K.depends_on||[],Se=K.discipline||"fullstack",Ot=K.last_updated||GTe(kn(T,Te))||null,Be=K.ticket||"",Dn=K.branch||"";Bx(kn(A,"stages",ie,"units",Te),`--- -name: ${BTe(Te,".md")} -type: ${Se} -status: ${ae} -depends_on: [${ge.join(", ")}] +${x} +`);for(let se of B)Zx(xn(A,"stages",se,"units"),{recursive:!0}),Jx(xn(A,"stages",se,"state.json"),`${JSON.stringify({stage:se,status:"completed",phase:"gate",started_at:`${K}`,completed_at:`${$}`,gate_entered_at:null,gate_outcome:"advanced"},null,2)} +`);for(let[se,Me]of U){Zx(xn(A,"stages",se,"units"),{recursive:!0});for(let{file:Re,fm:z,body:J}of Me){let oe=z.status||"pending",le=z.depends_on||[],be=z.discipline||"fullstack",kt=z.last_updated||Eve(xn(T,Re))||null,Ue=z.ticket||"",Ln=z.branch||"";Jx(xn(A,"stages",se,"units",Re),`--- +name: ${Sve(Re,".md")} +type: ${be} +status: ${oe} +depends_on: [${le.join(", ")}] bolt: 0 -hat: ""${Be?` -ticket: ${Be}`:""}${Dn?` -branch: ${Dn}`:""} -started_at: ${Ot||"null"} -completed_at: ${ae==="completed"&&Ot||"null"} +hat: ""${Ue?` +ticket: ${Ue}`:""}${Ln?` +branch: ${Ln}`:""} +started_at: ${kt||"null"} +completed_at: ${oe==="completed"&&kt||"null"} --- -${Q} -`)}}let $=C.length>0?` [merged: ${C.join(", ")}]`:"";console.log(` MIGRATED: ${b} (completed, ${M} units across ${U.size} stage(s))${$}`)}else{let $=G.filter(Te=>(!U.has(Te)&&Te!==F,!1)),ie=G.find(Te=>U.has(Te))||"";Bx(kn(A,"intent.md"),`--- -title: "${N}" +${J} +`)}}let ee=M.length>0?` [merged: ${M.join(", ")}]`:"";console.log(` MIGRATED: ${b} (completed, ${D} units across ${U.size} stage(s))${ee}`)}else{let ee=B.filter(Re=>(!U.has(Re)&&Re!==j,!1)),se=B.find(Re=>U.has(Re))||"";Jx(xn(A,"intent.md"),`--- +title: "${P}" studio: software stages: [inception, design, product, development, operations, security] mode: continuous -active_stage: ${ie||'""'} +active_stage: ${se||'""'} status: active -started_at: ${Z} +started_at: ${K} completed_at: null${W?` -epic: ${W}`:""}${P?` -follows: ${P}`:""} +epic: ${W}`:""}${N?` +follows: ${N}`:""} --- -${k} -`);for(let Te of G)qx(kn(A,"stages",Te,"units"),{recursive:!0}),U.has(Te)&&Bx(kn(A,"stages",Te,"state.json"),`${JSON.stringify({stage:Te,status:Te===ie?"active":"pending",phase:Te===ie?"execute":"",started_at:Z,completed_at:null,gate_entered_at:null,gate_outcome:null},null,2)} -`);for(let[Te,K]of U)for(let{file:Q,fm:ae,body:ge}of K){let Se=ae.status||"pending",Ot=ae.depends_on||[],Be=ae.discipline||"fullstack",Dn=ae.last_updated||GTe(kn(T,Q))||null,ur=ae.ticket||"",tn=ae.branch||"";Bx(kn(A,"stages",Te,"units",Q),`--- -name: ${BTe(Q,".md")} -type: ${Be} -status: ${Se} -depends_on: [${Ot.join(", ")}] +${x} +`);for(let Re of B)Zx(xn(A,"stages",Re,"units"),{recursive:!0}),U.has(Re)&&Jx(xn(A,"stages",Re,"state.json"),`${JSON.stringify({stage:Re,status:Re===se?"active":"pending",phase:Re===se?"execute":"",started_at:K,completed_at:null,gate_entered_at:null,gate_outcome:null},null,2)} +`);for(let[Re,z]of U)for(let{file:J,fm:oe,body:le}of z){let be=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Ln=oe.last_updated||Eve(xn(T,J))||null,lr=oe.ticket||"",sn=oe.branch||"";Jx(xn(A,"stages",Re,"units",J),`--- +name: ${Sve(J,".md")} +type: ${Ue} +status: ${be} +depends_on: [${kt.join(", ")}] bolt: 0 -hat: ""${ur?` -ticket: ${ur}`:""}${tn?` -branch: ${tn}`:""} -started_at: ${Dn||"null"} -completed_at: ${Se==="completed"&&Dn||"null"} +hat: ""${lr?` +ticket: ${lr}`:""}${sn?` +branch: ${sn}`:""} +started_at: ${Ln||"null"} +completed_at: ${be==="completed"&&Ln||"null"} --- -${ge} -`)}let Re=C.length>0?` [merged: ${C.join(", ")}]`:"";console.log(` MIGRATED: ${b} (active, stage: ${F||"inception"}, ${M} units across ${U.size} stage(s))${Re}`)}if(ty(kn(T,"discovery.md"))&&xU(kn(T,"discovery.md"),kn(A,"knowledge","DISCOVERY.md")),ty(kn(T,"knowledge")))try{xU(kn(T,"knowledge"),kn(A,"knowledge"),{recursive:!0})}catch{}if(ty(kn(T,"mockups"))){let $=kn(A,"stages","design","artifacts");qx($,{recursive:!0});try{xU(kn(T,"mockups"),$,{recursive:!0})}catch{}}S++}console.log(` +${le} +`)}let Me=M.length>0?` [merged: ${M.join(", ")}]`:"";console.log(` MIGRATED: ${b} (active, stage: ${j||"inception"}, ${D} units across ${U.size} stage(s))${Me}`)}if(sy(xn(T,"discovery.md"))&&GU(xn(T,"discovery.md"),xn(A,"knowledge","DISCOVERY.md")),sy(xn(T,"knowledge")))try{GU(xn(T,"knowledge"),xn(A,"knowledge"),{recursive:!0})}catch{}if(sy(xn(T,"mockups"))){let ee=xn(A,"stages","design","artifacts");Zx(ee,{recursive:!0});try{GU(xn(T,"mockups"),ee,{recursive:!0})}catch{}}S++}console.log(` Migration complete: ${S} migrated, ${_} skipped.`),i?console.log("(Dry run \u2014 no files were written. Re-run with --apply to migrate.)"):(console.log(` -Next steps:`),console.log(" git add .haiku/intents/ && git commit -m 'haiku: migrate intents from .ai-dlc/'"),console.log(" For active intents: run /haiku:haiku-pickup to start from inception"))}var APt=v(()=>{"use strict"});function dfr(e,t){return t?Jr.gate:Jr[e]??Jr.execute}function kPt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(x,N)=>n?`${x}${N}${Jr.reset}`:N,i=r(Jr.brand,afr),s=r(Jr.brand,"\u2B22"),o=r(Jr.intent,e.intent),a=e.studio?r(Jr.dim,e.studio):"",c=dfr(e.phaseKind,e.gated),u=e.phaseTrack===null?"":Array.from({length:e.phaseTrack.total},(x,N)=>{let P=e.phaseTrack.index;return Nx.status==="done"?r(Jr.done,"\u2B22"):x.status==="active"?r(c,"\u2B23"):r(Jr.pending,"\u2B21")).join(""),d=e.activeStage?r(Jr.stage,e.activeStage):r(Jr.stage,"intent"),f=e.gated?"\u03A0":"\u276F",p=r(e.gated?Jr.gate:Jr.dim,f),h=r(c,e.phaseLabel),m=e.phaseKind==="fixloop"&&e.actualPhase?n?`${Jr.dim}${Jr.strike}${e.actualPhase}${Jr.reset}`:lfr(e.actualPhase):"",y=m?`${m} ${h}`:h,g=[l,d,u,p,y].filter(Boolean).join(" "),E=e.aggregate?r(e.phaseKind==="blocked"?Jr.blocked:Jr.dim,e.aggregate):"",S=r(Jr.dim,"\xB7"),_=[`${i} ${s} ${o}`];a&&_.push(a),_.push(g),E&&_.push(E);let b=_.join(` ${S} `),T=x=>{let N=x.severity===void 0?null:x.severity?cfr[x.severity]:ufr,P=N?N.pips:wPt;if(!n){let V=x.segments.map(B=>B==="pending"?"\u25B1":"\u25B0").join("");return`${N?`${N.mark} `:""}${x.id} ${V}`}let D=x.segments.map(V=>`${P[V]}${V==="pending"?"\u25B1":"\u25B0"}`).join("");return`${N?N.bg:Jr.chipBg} ${Jr.chipLabel}${x.id} ${D} ${Jr.reset}`},A=x=>{let N=RPt[x.status]??RPt.pending;return n?`${N.bg}${N.fg} ${x.id}${N.mark} ${Jr.reset}`:`${x.id}${N.mark}`},R=n?" ":" ",k="";return e.itemBars&&e.itemBars.length>0?k=e.itemBars.map(T).join(R):e.agentChips&&e.agentChips.length>0&&(k=e.agentChips.map(A).join(R)),k?`${b} -${r(Jr.dim,"\u21B3")} ${k}`:b}var afr,OU,wPt,LY,RPt,cfr,ufr,lfr,Jr,IPt=v(()=>{"use strict";afr="H\xB7AI\xB7K\xB7U",OU="\x1B[1;38;2;255;255;0m",wPt={done:"\x1B[38;5;71m",active:OU,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},LY="\x1B[38;5;240m",RPt={done:{bg:"\x1B[48;5;151m",fg:"\x1B[1;38;5;22m",mark:" \u2713"},active:{bg:"\x1B[48;5;254m",fg:"\x1B[1;38;5;238m",mark:" \u25B8"},pending:{bg:"\x1B[48;5;248m",fg:"\x1B[38;5;240m",mark:""},failed:{bg:"\x1B[48;5;217m",fg:"\x1B[1;38;5;124m",mark:" \u2717"}},cfr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:OU,rejected:"\x1B[1;38;5;52m",pending:LY}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:OU,rejected:"\x1B[1;38;5;88m",pending:LY}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:OU,rejected:"\x1B[1;38;5;88m",pending:LY}},low:{bg:"\x1B[48;5;254m",mark:".",pips:wPt}},ufr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:OU,rejected:"\x1B[1;38;5;124m",pending:LY}},lfr=e=>Array.from(e).map(t=>`${t}\u0336`).join(""),Jr={reset:"\x1B[0m",bold:"\x1B[1m",strike:"\x1B[9m",brand:"\x1B[38;5;43m",intent:"\x1B[1;38;5;255m",done:"\x1B[38;5;71m",active:"\x1B[38;5;214m",pending:"\x1B[38;5;243m",dim:"\x1B[38;5;240m",pipDone:"\x1B[38;5;255m",stage:"\x1B[38;5;38m",elaborate:"\x1B[38;5;245m",execute:"\x1B[38;5;39m",review:"\x1B[38;5;220m",approve:"\x1B[38;5;220m",fixloop:"\x1B[38;5;208m",gate:"\x1B[38;5;170m",complete:"\x1B[38;5;71m",sealed:"\x1B[38;5;71m",blocked:"\x1B[38;5;203m",recovering:"\x1B[38;5;44m",setup:"\x1B[38;5;245m",chipBg:"\x1B[48;5;254m",chipLabel:"\x1B[1;38;5;238m",chipPending:"\x1B[38;5;250m"}});import{execFileSync as ffr}from"node:child_process";import{existsSync as ny,readdirSync as Gx,readFileSync as pfr,statSync as hfr}from"node:fs";import{join as vc}from"node:path";function zx(e){if(!ny(e))return null;try{return re(pfr(e,"utf8")).data}catch{return null}}function mfr(){try{return ffr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function gfr(e){let t=vc(e,"intents");if(!ny(t))return null;let r=mfr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(ny(vc(t,o,"intent.md")))return o}let i;try{i=Gx(t).filter(o=>{try{return hfr(vc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=zx(vc(t,o,"intent.md"));return!(!a||a.archived===!0||typeof a.sealed_at=="string"&&a.sealed_at.length>0)});return s.length===1?s[0]:null}function VTe(e){if(!e)return"";let t=e;if(typeof t.stage=="string"&&t.stage.length>0)return t.stage;if(Array.isArray(t.dispatches)&&t.dispatches.length>0){let n=t.dispatches[0]?.stage;if(typeof n=="string"&&n.length>0)return n}return""}function Sfr(e){return!!e&&VTe(e)===""&&yfr.has(e.kind)}function zTe(e){return e==="cross-stage-consistency"?"cross-stage":e}function _fr(e){if(!e)return{kind:"execute",label:"working",gated:!1};switch(e.kind){case"integrate_fix_chains":return{kind:"recovering",label:"resolving conflicts",gated:!1};case"safe_intent_repair":return{kind:"recovering",label:"recovering",gated:!1};case"upstream_reconciliation_required":return{kind:"recovering",label:"merging upstream",gated:!1}}switch(e.kind){case"elaborate_loop":return{kind:"elaborate",label:"elaborate",gated:!1};case"start_unit_hat":return{kind:"execute",label:"execute",gated:!1};case"start_feedback_hat":case"close_feedback":return{kind:"fixloop",label:"fix-loop",gated:!1};case"feedback_question":return{kind:"fixloop",label:"question",gated:!0};case"dispatch_review":{let t=e.dispatches;return{kind:"review",label:t&&t.length>1?"adversarial review":`${zTe(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${zTe(e.role)} approval`,gated:!1}}case"write_brief":return{kind:"review",label:"writing brief",gated:!1};case"dispatch_quality_gates":return{kind:"approve",label:"quality gates",gated:!1};case"user_gate":return{kind:"gate",label:`${e.gate_kind} gate`,gated:!0};case"complete_stage":return{kind:"complete",label:"complete",gated:!1};case"record_observations":return{kind:"complete",label:"observations",gated:!1};case"intent_review":{if(e.role==="user")return{kind:"gate",label:"intent gate",gated:!0};let t=e.dispatches;return{kind:"review",label:Array.isArray(t)&&t.length>1?"adversarial review":`${zTe(e.role)} review`,gated:!1}}case"record_reflection":return{kind:"complete",label:"reflection",gated:!1};case"seal_intent":case"sealed":return{kind:"sealed",label:"sealed",gated:!1};case"unit_inputs_not_declared":case"unit_outputs_empty_iterations":return{kind:"blocked",label:"spec error",gated:!0};default:return{kind:"execute",label:"working",gated:!1}}}function xPt(e,t,n,r){let i=vc(r,"stages",n,"units");if(!ny(i))return{done:0,total:0};let s=to(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of Gx(i).filter(l=>l.endsWith(".md"))){let l=zx(vc(i,u));if(!l)continue;c++;let d=Array.isArray(l.iterations)?l.iterations:[],f=d[d.length-1];f&&f.result==="advance"&&f.hat===o&&a++}return{done:a,total:c}}function OPt(e,t){let n=t?vc(e,"stages",t,"feedback"):vc(e,"feedback");if(!ny(n))return{closed:0,total:0};let r=0,i=0;for(let s of Gx(n).filter(o=>o.endsWith(".md"))){let o=zx(vc(n,s));if(!o)continue;i++;let a=typeof o.closed_at=="string"&&o.closed_at.length>0||typeof o.status=="string"&&o.status==="closed",c=typeof o.rejected_at=="string"&&o.rejected_at.length>0||typeof o.status=="string"&&o.status==="rejected";(a||c)&&r++}return{closed:r,total:i}}function CPt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function Efr(e){let t=e.includes(":")?e.slice(e.indexOf(":")+1):e;return t==="cross-stage-consistency"?"cross-stage":e==="intent-quality-gates"||t==="quality_gates"?"quality":t==="user"?"gate":t}function MPt(e,t,n=!0){let r=new Map;for(let a of e)typeof a.hat=="string"&&r.set(a.hat,a.result);let i=t.map(a=>{let c=r.get(a);return c===void 0?"pending":typeof c=="string"&&NPt.has(c)?"done":typeof c=="string"&&bfr.has(c)?"rejected":"pending"});if(t.length===0||!n)return i;if(e.length===0)return i[0]="active",i;let s=e[e.length-1],o=typeof s.hat=="string"?t.indexOf(s.hat):-1;if(s.result===null||s.result===void 0)o>=0&&(i[o]="active");else if(typeof s.result=="string"&&NPt.has(s.result)){let a=o+1;a>=0&&a(c.get(d.name)??0)===l).map(d=>d.name))}catch{return[]}if(s.size===0)return[];let o=[];for(let a of Gx(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=zx(vc(r,a));if(!c)continue;let u=Array.isArray(c.iterations)?c.iterations:[],l=typeof c.started_at=="string"&&c.started_at.length>0||u.length>0;o.push({id:`U-${CPt(a)}`,segments:MPt(u,i,l)})}return o}function PPt(e,t){if(!ny(e)||t.length===0)return[];let n=[];for(let r of Gx(e).filter(i=>i.endsWith(".md")).sort()){let i=zx(vc(e,r));if(!i)continue;let s=typeof i.closed_at=="string"&&i.closed_at.length>0||i.status==="closed",o=typeof i.rejected_at=="string"&&i.rejected_at.length>0||i.status==="rejected";if(s||o)continue;let a=Array.isArray(i.iterations)?i.iterations:[],c=typeof i.severity=="string"?i.severity:null;n.push({id:`FB-${CPt(r)}`,segments:MPt(a,t,a.length>0),severity:c})}return n}function DPt(){let e;try{e=we()}catch{return null}let t=gfr(e);if(!t)return null;let n=fe(t),r=zx(vc(n,"intent.md"));if(!r||r.composite)return null;let i=typeof r.studio=="string"?r.studio:"",s=(N,P)=>({intent:t,studio:i,stages:[],activeStage:"",phaseLabel:N,phaseKind:"setup",gated:!1,aggregate:"",phaseTrack:{index:P,total:4}});if(!i)return s("select studio",0);let o=typeof r.mode=="string"&&r.mode.length>0?r.mode:"";if(!o)return s("select mode",1);let a=o,c=or(r,i);if(c.length===0)return a==="quick"?s("select stage",2):null;if(typeof r.sealed_at=="string"&&r.sealed_at.length>0)return{intent:t,studio:i,stages:c.map(N=>({name:N,status:"done"})),activeStage:"",phaseLabel:"sealed",phaseKind:"sealed",gated:!1,aggregate:"",phaseTrack:null,itemBars:null,agentChips:null};let u=null,l=_wt(t);if(l?.action)u=l.action;else try{u=Zf({slug:t,intentDir:n,studio:i}).action}catch{u=null}if(u&&u.kind==="elaborate_loop"&&!VTe(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=_fr(u),h=Sfr(u),m=h?"":VTe(u)||_s(t,i,n)||"",y;if(h)y=c.map(N=>({name:N,status:"done"}));else{let N=!1;y=c.map(P=>m&&P===m?(N=!0,{name:P,status:"active"}):!N&&E0(n,i,P,a)?{name:P,status:"done"}:{name:P,status:"pending"})}let g=m,E="";if(d==="execute"&&g){let{done:N,total:P}=xPt(t,i,g,n);P>0&&(E=`${N}/${P} units`);try{let D=mg(n,g);if(D.length>0){let{unitWave:j,totalWaves:V}=LI(D);if(V>1){let Z=UI(D,j,V);E=`${E||`${P} units`} \xB7 wave ${Z+1}/${V}`}}}catch{}}else if(d==="fixloop"){let N=g?OPt(n,g):{closed:0,total:0},P=OPt(n,""),D=N.total+P.total,j=N.closed+P.closed,V=D-j;V>0?E=`${V} open`:D>0&&(E="closing")}else if((d==="review"||d==="approve"||d==="gate")&&g){let{total:N}=xPt(t,i,g,n);N>0&&(E=`${N} units`)}else d==="elaborate"&&(E="decomposing");let S=null,_="",b=null;try{if(b=L5({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),b.total>0){let N;if(d==="fixloop"){let P=-1;for(let D=b.steps.length-1;D>=0;D--)if(b.steps[D].status!=="pending"){P=D;break}N=P>=0?P:b.index}else{let P=D5(u,b.steps);N=P>=0?P:b.index}S={index:N,total:b.total},d==="fixloop"&&(_=b.steps[N]?.label??"")}}catch{S=null,b=null}let T=null;if(d==="execute"&&g){let N=Tfr(i,g,n);N.length>0&&(T=N)}else if(d==="fixloop"){let N=[];g&&N.push(...PPt(vc(n,"stages",g,"feedback"),PT(i,g))),N.push(...PPt(vc(n,"feedback"),hg(i))),N.sort((P,D)=>Kc(P.severity)-Kc(D.severity)),N.length>0&&(T=N.slice(0,rv))}let A=null;if(b&&(d==="review"||d==="approve")&&u_e(u)){let N=eTt({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),P=h?"intent-review:":d==="review"?"review:":"approve:",D=N.filter(j=>j.key.startsWith(P)&&!c_e.has(Xbt(j.key))).map(j=>({id:Efr(j.key),status:j.status==="done"?"done":"active"}));D.length>0&&(A=D)}let R=u?u.signals_unmet:void 0,x=(Array.isArray(R)?R:[]).some(N=>N.signal==="conversation"||N.signal==="verify_conversation");if(!A&&u&&u.kind==="elaborate_loop"&&!x&&g&&i)try{let P=Qs(i,g).filter(D=>D.kind==="discovery"&&D.required).map(D=>{let j=(D.location??"").replace(/\{intent-slug\}/g,t),V=!1;if(j){let Z=vc(process.cwd(),j);V=j.endsWith("/")?ny(Z)&&Gx(Z).filter(B=>B!==".gitkeep").length>0:ny(Z)}return{id:D.name,status:V?"done":"active"}});P.length>0&&P.some(D=>D.status==="active")&&(A=P)}catch{}return{intent:t,studio:i,stages:y,activeStage:g,phaseLabel:f,phaseKind:d,gated:p,aggregate:E,phaseTrack:S,actualPhase:_,itemBars:T,agentChips:A}}var yfr,NPt,bfr,LPt=v(()=>{"use strict";_o();o3();hc();d_e();es();ze();Zn();cEe();yfr=new Set(["intent_review","record_reflection","seal_intent","sealed"]);NPt=new Set(["advance","advanced","closed"]),bfr=new Set(["reject","rejected"])});var BPt={};Rr(BPt,{resolveFallbackCommand:()=>HPt,runStatusline:()=>Dfr});import{execFileSync as vfr}from"node:child_process";import{existsSync as Yv,mkdirSync as UPt,readFileSync as NU,writeFileSync as KTe}from"node:fs";import{homedir as UY}from"node:os";import{dirname as ZTe,join as Yu}from"node:path";function Afr(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>e(t)),process.stdin.on("error",()=>e(t))})}function jPt(e){let t=e;for(let n=0;n<30;n++){let r=Yu(t,".haiku");if(Yv(r))return r;let i=ZTe(t);if(i===t)break;t=i}return null}function Rfr(e,t=UY()){let n=[],r=jPt(e);r&&n.push(Yu(r,PU)),n.push(Yu(t,".haiku",PU));for(let i of n)if(Yv(i))try{return JSON.parse(NU(i,"utf8"))}catch{}return null}function wfr(e){return e?FPt(e.statusLine):null}function FPt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function WTe(e){return e.includes("statusline")&&e.includes("haiku")}function kfr(e){if(!Yv(e))return null;try{let t=JSON.parse(NU(e,"utf8"));return FPt(t.statusLine)}catch{return null}}function Ifr(e){let t=jPt(e);return t?ZTe(t):e}function HPt(e,t=UY()){let n=wfr(Rfr(e,t)),r=Ifr(e),i=[Yu(r,".claude","settings.local.json"),Yu(r,".claude","settings.json"),Yu(t,".claude","settings.json")];for(let s of i){let o=kfr(s);if(o){if(WTe(o)){if(n&&!WTe(n))return n;continue}return o}}return n&&!WTe(n)?n:null}async function xfr(){let e=await Afr(),t=process.cwd();try{let s=e?JSON.parse(e):{};t=s?.workspace?.current_dir??s?.cwd??s?.workspace?.project_dir??t}catch{}try{process.chdir(t)}catch{}let n=!!process.env.HAIKU_STATUSLINE_DEBUG,r=null;try{r=DPt()}catch(s){n&&process.stderr.write(`[haiku statusline] resolveStatuslineState threw: ${s instanceof Error?`${s.message} +Next steps:`),console.log(" git add .haiku/intents/ && git commit -m 'haiku: migrate intents from .ai-dlc/'"),console.log(" For active intents: run /haiku:haiku-pickup to start from inception"))}var vCt=v(()=>{"use strict"});function ihr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function wCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,P)=>n?`${k}${P}${Qr.reset}`:P,i=r(Qr.brand,ehr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=ihr(e.phaseKind,e.gated),u=e.phaseTrack===null?"":Array.from({length:e.phaseTrack.total},(k,P)=>{let N=e.phaseTrack.index;return Pk.status==="done"?r(Qr.done,"\u2B22"):k.status==="active"?r(c,"\u2B23"):r(Qr.pending,"\u2B21")).join(""),d=e.activeStage?r(Qr.stage,e.activeStage):r(Qr.stage,"intent"),f=e.gated?"\u03A0":"\u276F",p=r(e.gated?Qr.gate:Qr.dim,f),h=r(c,e.phaseLabel),m=e.phaseKind==="fixloop"&&e.actualPhase?n?`${Qr.dim}${Qr.strike}${e.actualPhase}${Qr.reset}`:rhr(e.actualPhase):"",g=m?`${m} ${h}`:h,y=[l,d,u,p,g].filter(Boolean).join(" "),E=e.aggregate?r(e.phaseKind==="blocked"?Qr.blocked:Qr.dim,e.aggregate):"",S=r(Qr.dim,"\xB7"),_=[`${i} ${s} ${o}`];a&&_.push(a),_.push(y),E&&_.push(E);let b=_.join(` ${S} `),T=k=>{let P=k.severity===void 0?null:k.severity?thr[k.severity]:nhr,N=P?P.pips:RCt;if(!n){let V=k.segments.map($=>$==="pending"?"\u25B1":"\u25B0").join("");return`${P?`${P.mark} `:""}${k.id} ${V}`}let C=k.segments.map(V=>`${N[V]}${V==="pending"?"\u25B1":"\u25B0"}`).join("");return`${P?P.bg:Qr.chipBg} ${Qr.chipLabel}${k.id} ${C} ${Qr.reset}`},A=k=>{let P=ACt[k.status]??ACt.pending;return n?`${P.bg}${P.fg} ${k.id}${P.mark} ${Qr.reset}`:`${k.id}${P.mark}`},R=n?" ":" ",x="";return e.itemBars&&e.itemBars.length>0?x=e.itemBars.map(T).join(R):e.agentChips&&e.agentChips.length>0&&(x=e.agentChips.map(A).join(R)),x?`${b} +${r(Qr.dim,"\u21B3")} ${x}`:b}var ehr,zU,RCt,e8,ACt,thr,nhr,rhr,Qr,kCt=v(()=>{"use strict";ehr="H\xB7AI\xB7K\xB7U",zU="\x1B[1;38;2;255;255;0m",RCt={done:"\x1B[38;5;71m",active:zU,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},e8="\x1B[38;5;240m",ACt={done:{bg:"\x1B[48;5;151m",fg:"\x1B[1;38;5;22m",mark:" \u2713"},active:{bg:"\x1B[48;5;254m",fg:"\x1B[1;38;5;238m",mark:" \u25B8"},pending:{bg:"\x1B[48;5;248m",fg:"\x1B[38;5;240m",mark:""},failed:{bg:"\x1B[48;5;217m",fg:"\x1B[1;38;5;124m",mark:" \u2717"}},thr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:zU,rejected:"\x1B[1;38;5;52m",pending:e8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:zU,rejected:"\x1B[1;38;5;88m",pending:e8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:zU,rejected:"\x1B[1;38;5;88m",pending:e8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:RCt}},nhr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:zU,rejected:"\x1B[1;38;5;124m",pending:e8}},rhr=e=>Array.from(e).map(t=>`${t}\u0336`).join(""),Qr={reset:"\x1B[0m",bold:"\x1B[1m",strike:"\x1B[9m",brand:"\x1B[38;5;43m",intent:"\x1B[1;38;5;255m",done:"\x1B[38;5;71m",active:"\x1B[38;5;214m",pending:"\x1B[38;5;243m",dim:"\x1B[38;5;240m",pipDone:"\x1B[38;5;255m",stage:"\x1B[38;5;38m",elaborate:"\x1B[38;5;245m",execute:"\x1B[38;5;39m",review:"\x1B[38;5;220m",approve:"\x1B[38;5;220m",fixloop:"\x1B[38;5;208m",gate:"\x1B[38;5;170m",complete:"\x1B[38;5;71m",sealed:"\x1B[38;5;71m",pending_seal:"\x1B[38;5;177m",blocked:"\x1B[38;5;203m",recovering:"\x1B[38;5;44m",setup:"\x1B[38;5;245m",chipBg:"\x1B[48;5;254m",chipLabel:"\x1B[1;38;5;238m",chipPending:"\x1B[38;5;250m"}});import{execFileSync as shr}from"node:child_process";import{existsSync as oy,readdirSync as Xx,readFileSync as ohr,statSync as ahr}from"node:fs";import{join as Rc}from"node:path";function Qx(e){if(!oy(e))return null;try{return re(ohr(e,"utf8")).data}catch{return null}}function chr(){try{return shr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function uhr(e){let t=Rc(e,"intents");if(!oy(t))return null;let r=chr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(oy(Rc(t,o,"intent.md")))return o}let i;try{i=Xx(t).filter(o=>{try{return ahr(Rc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=Qx(Rc(t,o,"intent.md"));return!(!a||a.archived===!0||typeof a.sealed_at=="string"&&a.sealed_at.length>0)});return s.length===1?s[0]:null}function bve(e){if(!e)return"";let t=e;if(typeof t.stage=="string"&&t.stage.length>0)return t.stage;if(Array.isArray(t.dispatches)&&t.dispatches.length>0){let n=t.dispatches[0]?.stage;if(typeof n=="string"&&n.length>0)return n}return""}function dhr(e){return!!e&&bve(e)===""&&lhr.has(e.kind)}function _ve(e){return e==="cross-stage-consistency"?"cross-stage":e}function fhr(e){if(!e)return{kind:"execute",label:"working",gated:!1};switch(e.kind){case"integrate_fix_chains":return{kind:"recovering",label:"resolving conflicts",gated:!1};case"safe_intent_repair":return{kind:"recovering",label:"recovering",gated:!1};case"upstream_reconciliation_required":return{kind:"recovering",label:"merging upstream",gated:!1}}switch(e.kind){case"elaborate_loop":return{kind:"elaborate",label:"elaborate",gated:!1};case"start_unit_hat":return{kind:"execute",label:"execute",gated:!1};case"start_feedback_hat":case"close_feedback":return{kind:"fixloop",label:"fix-loop",gated:!1};case"feedback_question":return{kind:"fixloop",label:"question",gated:!0};case"dispatch_review":{let t=e.dispatches;return{kind:"review",label:t&&t.length>1?"adversarial review":`${_ve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${_ve(e.role)} approval`,gated:!1}}case"write_brief":return{kind:"review",label:"writing brief",gated:!1};case"dispatch_quality_gates":return{kind:"approve",label:"quality gates",gated:!1};case"user_gate":return{kind:"gate",label:`${e.gate_kind} gate`,gated:!0};case"complete_stage":return{kind:"complete",label:"complete",gated:!1};case"record_observations":return{kind:"complete",label:"observations",gated:!1};case"intent_review":{if(e.role==="user")return{kind:"gate",label:"intent gate",gated:!0};let t=e.dispatches;return{kind:"review",label:Array.isArray(t)&&t.length>1?"adversarial review":`${_ve(e.role)} review`,gated:!1}}case"record_reflection":return{kind:"complete",label:"reflection",gated:!1};case"seal_intent":case"sealed":return{kind:"sealed",label:"sealed",gated:!1};case"pending_seal":return{kind:"pending_seal",label:"pending seal",gated:!0};case"unit_inputs_not_declared":case"unit_outputs_empty_iterations":return{kind:"blocked",label:"spec error",gated:!0};default:return{kind:"execute",label:"working",gated:!1}}}function ICt(e,t,n,r){let i=Rc(r,"stages",n,"units");if(!oy(i))return{done:0,total:0};let s=_s(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of Xx(i).filter(l=>l.endsWith(".md"))){let l=Qx(Rc(i,u));if(!l)continue;c++;let d=Array.isArray(l.iterations)?l.iterations:[],f=d[d.length-1];f&&f.result==="advance"&&f.hat===o&&a++}return{done:a,total:c}}function xCt(e,t){let n=t?Rc(e,"stages",t,"feedback"):Rc(e,"feedback");if(!oy(n))return{closed:0,total:0};let r=0,i=0;for(let s of Xx(n).filter(o=>o.endsWith(".md"))){let o=Qx(Rc(n,s));if(!o)continue;i++;let a=typeof o.closed_at=="string"&&o.closed_at.length>0||typeof o.status=="string"&&o.status==="closed",c=typeof o.rejected_at=="string"&&o.rejected_at.length>0||typeof o.status=="string"&&o.status==="rejected";(a||c)&&r++}return{closed:r,total:i}}function NCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function phr(e){let t=e.includes(":")?e.slice(e.indexOf(":")+1):e;return t==="cross-stage-consistency"?"cross-stage":e==="intent-quality-gates"||t==="quality_gates"?"quality":t==="user"?"gate":t}function CCt(e,t,n=!0){let r=new Map;for(let a of e)typeof a.hat=="string"&&r.set(a.hat,a.result);let i=t.map(a=>{let c=r.get(a);return c===void 0?"pending":typeof c=="string"&&OCt.has(c)?"done":typeof c=="string"&&hhr.has(c)?"rejected":"pending"});if(t.length===0||!n)return i;if(e.length===0)return i[0]="active",i;let s=e[e.length-1],o=typeof s.hat=="string"?t.indexOf(s.hat):-1;if(s.result===null||s.result===void 0)o>=0&&(i[o]="active");else if(typeof s.result=="string"&&OCt.has(s.result)){let a=o+1;a>=0&&a(c.get(d.name)??0)===l).map(d=>d.name))}catch{return[]}if(s.size===0)return[];let o=[];for(let a of Xx(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=Qx(Rc(r,a));if(!c)continue;let u=Array.isArray(c.iterations)?c.iterations:[],l=typeof c.started_at=="string"&&c.started_at.length>0||u.length>0;o.push({id:`U-${NCt(a)}`,segments:CCt(u,i,l)})}return o}function PCt(e,t){if(!oy(e)||t.length===0)return[];let n=[];for(let r of Xx(e).filter(i=>i.endsWith(".md")).sort()){let i=Qx(Rc(e,r));if(!i)continue;let s=typeof i.closed_at=="string"&&i.closed_at.length>0||i.status==="closed",o=typeof i.rejected_at=="string"&&i.rejected_at.length>0||i.status==="rejected";if(s||o)continue;let a=Array.isArray(i.iterations)?i.iterations:[],c=typeof i.severity=="string"?i.severity:null;n.push({id:`FB-${NCt(r)}`,segments:CCt(a,t,a.length>0),severity:c})}return n}function MCt(){let e;try{e=ve()}catch{return null}let t=uhr(e);if(!t)return null;let n=pe(t),r=Qx(Rc(n,"intent.md"));if(!r||r.composite)return null;let i=typeof r.studio=="string"?r.studio:"",s=(P,N)=>({intent:t,studio:i,stages:[],activeStage:"",phaseLabel:P,phaseKind:"setup",gated:!1,aggregate:"",phaseTrack:{index:N,total:4}});if(!i)return s("select studio",0);let o=typeof r.mode=="string"&&r.mode.length>0?r.mode:"";if(!o)return s("select mode",1);let a=o,c=wn(r,i);if(c.length===0)return a==="quick"?s("select stage",2):null;if(typeof r.sealed_at=="string"&&r.sealed_at.length>0)return{intent:t,studio:i,stages:c.map(P=>({name:P,status:"done"})),activeStage:"",phaseLabel:"sealed",phaseKind:"sealed",gated:!1,aggregate:"",phaseTrack:null,itemBars:null,agentChips:null};let u=null,l=akt(t);if(l?.action)u=l.action;else try{u=Xf({slug:t,intentDir:n,studio:i}).action}catch{u=null}if(u&&u.kind==="elaborate_loop"&&!bve(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=fhr(u),h=dhr(u),m=h?"":bve(u)||ai(t,i,n)||"",g;if(h)g=c.map(P=>({name:P,status:"done"}));else{let P=!1;g=c.map(N=>m&&N===m?(P=!0,{name:N,status:"active"}):!P&&R0(n,i,N,a)?{name:N,status:"done"}:{name:N,status:"pending"})}let y=m,E="";if(d==="execute"&&y){let{done:P,total:N}=ICt(t,i,y,n);N>0&&(E=`${P}/${N} units`);try{let C=Eg(n,y);if(C.length>0){let{unitWave:F,totalWaves:V}=HI(C);if(V>1){let K=qI(C,F,V);E=`${E||`${N} units`} \xB7 wave ${K+1}/${V}`}}}catch{}}else if(d==="fixloop"){let P=y?xCt(n,y):{closed:0,total:0},N=xCt(n,""),C=P.total+N.total,F=P.closed+N.closed,V=C-F;V>0?E=`${V} open`:C>0&&(E="closing")}else if((d==="review"||d==="approve"||d==="gate")&&y){let{total:P}=ICt(t,i,y,n);P>0&&(E=`${P} units`)}else d==="elaborate"&&(E="decomposing");let S=null,_="",b=null;try{if(b=Q5({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),b.total>0){let P;if(d==="fixloop"){let N=-1;for(let C=b.steps.length-1;C>=0;C--)if(b.steps[C].status!=="pending"){N=C;break}P=N>=0?N:b.index}else{let N=X5(u,b.steps);P=N>=0?N:b.index}S={index:P,total:b.total},d==="fixloop"&&(_=b.steps[P]?.label??"")}}catch{S=null,b=null}let T=null;if(d==="execute"&&y){let P=mhr(i,y,n);P.length>0&&(T=P)}else if(d==="fixloop"){let P=[];y&&P.push(...PCt(Rc(n,"stages",y,"feedback"),Sg(i,y))),P.push(...PCt(Rc(n,"feedback"),Uf(i))),P.sort((N,C)=>Jc(N.severity)-Jc(C.severity)),P.length>0&&(T=P.slice(0,av))}let A=null;if(b&&(d==="review"||d==="approve")&&CEe(u)){let P=FTt({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),N=h?"intent-review:":d==="review"?"review:":"approve:",C=P.filter(F=>F.key.startsWith(N)&&!NEe.has(DTt(F.key))).map(F=>({id:phr(F.key),status:F.status==="done"?"done":"active"}));C.length>0&&(A=C)}let R=u?u.signals_unmet:void 0,x=Array.isArray(R)?R:[],k=x.some(P=>P.signal==="conversation"||P.signal==="verify_conversation");if(!A&&u&&u.kind==="elaborate_loop"&&!k&&y&&i)try{let N=no(i,y).filter(C=>C.kind==="discovery"&&C.required).map(C=>{let F=(C.location??"").replace(/\{intent-slug\}/g,t),V=!1;if(F){let K=Rc(process.cwd(),F);V=F.endsWith("/")?oy(K)&&Xx(K).filter($=>$!==".gitkeep").length>0:oy(K)}return{id:C.name,status:V?"done":"active"}});N.length>0&&N.some(C=>C.status==="active")&&(A=N)}catch{}if(!A&&u&&u.kind==="elaborate_loop"&&!k){let P=new Set(x.map(F=>F.signal).filter(F=>!!F)),N=[{signal:"decompose",label:"decompose"},{signal:"verify_decompose",label:"verify"}],C=N.findIndex(F=>P.has(F.signal));C!==-1&&(A=N.map((F,V)=>({id:F.label,status:V{"use strict";ns();T9();Oa();DEe();ji();ze();Kn();M_e();lhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);OCt=new Set(["advance","advanced","closed"]),hhr=new Set(["reject","rejected"])});var qCt={};Rr(qCt,{resolveFallbackCommand:()=>jCt,runStatusline:()=>Ihr});import{execFileSync as ghr}from"node:child_process";import{existsSync as tA,mkdirSync as LCt,readFileSync as VU,writeFileSync as vve}from"node:fs";import{homedir as t8}from"node:os";import{dirname as Ave,join as el}from"node:path";function yhr(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>e(t)),process.stdin.on("error",()=>e(t))})}function UCt(e){let t=e;for(let n=0;n<30;n++){let r=el(t,".haiku");if(tA(r))return r;let i=Ave(t);if(i===t)break;t=i}return null}function Shr(e,t=t8()){let n=[],r=UCt(e);r&&n.push(el(r,WU)),n.push(el(t,".haiku",WU));for(let i of n)if(tA(i))try{return JSON.parse(VU(i,"utf8"))}catch{}return null}function Ehr(e){return e?FCt(e.statusLine):null}function FCt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function Tve(e){return e.includes("statusline")&&e.includes("haiku")}function _hr(e){if(!tA(e))return null;try{let t=JSON.parse(VU(e,"utf8"));return FCt(t.statusLine)}catch{return null}}function bhr(e){let t=UCt(e);return t?Ave(t):e}function jCt(e,t=t8()){let n=Ehr(Shr(e,t)),r=bhr(e),i=[el(r,".claude","settings.local.json"),el(r,".claude","settings.json"),el(t,".claude","settings.json")];for(let s of i){let o=_hr(s);if(o){if(Tve(o)){if(n&&!Tve(n))return n;continue}return o}}return n&&!Tve(n)?n:null}async function Thr(){let e=await yhr(),t=process.cwd();try{let s=e?JSON.parse(e):{};t=s?.workspace?.current_dir??s?.cwd??s?.workspace?.project_dir??t}catch{}try{process.chdir(t)}catch{}let n=!!process.env.HAIKU_STATUSLINE_DEBUG,r=null;try{r=MCt()}catch(s){n&&process.stderr.write(`[haiku statusline] resolveStatuslineState threw: ${s instanceof Error?`${s.message} ${s.stack}`:String(s)} `)}if(n&&!r&&process.stderr.write(`[haiku statusline] no state (cwd=${process.cwd()}) -`),r){process.stdout.write(kPt(r));return}let i=HPt(t);if(i)try{let s=vfr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function Nfr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function Pfr(){let e=nn();if(e&&Nfr(e))return`npx -y ${Ofr} statusline`;if(e){let t=Yu(e,"bin","haiku");if(Yv(t))return`${t} statusline`}return"haiku statusline"}function qPt(e,t){return e?{settingsPath:Yu(UY(),".claude","settings.json"),haikuDir:Yu(UY(),".haiku")}:{settingsPath:Yu(t,".claude","settings.json"),haikuDir:Yu(t,".haiku")}}function Cfr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=qPt(t,n),s={};if(Yv(r))try{s=JSON.parse(NU(r,"utf8"))}catch{console.error(`haiku statusline install: ${r} is not valid JSON \u2014 fix or remove it first.`),process.exit(1)}let o=s.statusLine,a=Pfr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(UPt(i,{recursive:!0}),KTe(Yu(i,PU),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},UPt(ZTe(r),{recursive:!0}),KTe(r,`${JSON.stringify(s,null,2)} +`),r){process.stdout.write(wCt(r));return}let i=jCt(t);if(i)try{let s=ghr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function Ahr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function Rhr(){let e=nn();if(e&&Ahr(e))return`npx -y ${vhr} statusline`;if(e){let t=el(e,"bin","haiku");if(tA(t))return`${t} statusline`}return"haiku statusline"}function HCt(e,t){return e?{settingsPath:el(t8(),".claude","settings.json"),haikuDir:el(t8(),".haiku")}:{settingsPath:el(t,".claude","settings.json"),haikuDir:el(t,".haiku")}}function whr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=HCt(t,n),s={};if(tA(r))try{s=JSON.parse(VU(r,"utf8"))}catch{console.error(`haiku statusline install: ${r} is not valid JSON \u2014 fix or remove it first.`),process.exit(1)}let o=s.statusLine,a=Rhr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(LCt(i,{recursive:!0}),vve(el(i,WU),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},LCt(Ave(r),{recursive:!0}),vve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline installed \u2192 ${r} command: ${a} - fallback saved: ${c?"(unchanged)":Yu(i,PU)}`)}function Mfr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=qPt(t,n);if(!Yv(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(NU(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=Yu(i,PU),a=null;if(Yv(o))try{a=JSON.parse(NU(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,KTe(r,`${JSON.stringify(s,null,2)} + fallback saved: ${c?"(unchanged)":el(i,WU)}`)}function khr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=HCt(t,n);if(!tA(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(VU(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=el(i,WU),a=null;if(tA(o))try{a=JSON.parse(VU(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,vve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline uninstalled \u2192 ${r} - restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function Dfr(e){let t=e[0];return t==="install"?Cfr(e.slice(1)):t==="uninstall"?Mfr(e.slice(1)):xfr()}var PU,Ofr,GPt=v(()=>{"use strict";Oi();IPt();LPt();PU="statusline-fallback.json";Ofr="@haiku/haiku"});$p();process.on("uncaughtException",e=>{ps(e,{context:"uncaughtException"}),console.error("uncaughtException:",e),gf().finally(()=>process.exit(1))});process.on("unhandledRejection",e=>{let t=e instanceof Error?e:new Error(String(e));ps(t,{context:"unhandledRejection"}),console.error("unhandledRejection:",e),gf().finally(()=>process.exit(1))});var[jY,...hp]=process.argv.slice(2);if(jY==="mcp"){let e=Promise.resolve().then(()=>(K4e(),W4e)).then(i=>{i.maybeRebuildSpaForDev(import.meta.url)}).catch(i=>(ps(i instanceof Error?i:new Error(String(i)),{context:"dev-spa-rebuild"}),console.error(`haiku mcp: SPA dev-rebuild failed: ${i instanceof Error?i.message:String(i)}`),gf().finally(()=>process.exit(1)))),t="",n=[];for(let i=0;i(yf(),Z4e)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(YNt(),Edr))).catch(i=>{ps(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),gf().finally(()=>process.exit(1))})}else if(jY==="hook"){let e=hp[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(EPt(),_Pt)).then(t=>t.runHook(e,hp.slice(1))).catch(t=>{ps(t,{context:`hook:${e}`}),console.error(`haiku hook ${e}: ${t.message}`),gf().finally(()=>process.exit(1))})}else jY==="migrate"?Promise.resolve().then(()=>(APt(),vPt)).then(e=>e.runMigrate(hp)).catch(e=>{ps(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),gf().finally(()=>process.exit(1))}):jY==="statusline"?Promise.resolve().then(()=>(GPt(),BPt)).then(e=>e.runStatusline(hp)).catch(e=>{ps(e,{context:"statusline"}),process.env.HAIKU_STATUSLINE_DEBUG&&console.error(`[haiku statusline] handler error: ${e instanceof Error?`${e.message} -${e.stack}`:String(e)}`),gf().finally(()=>process.exit(0))}):(console.error("Usage: haiku [args...]"),process.exit(1)); + restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function Ihr(e){let t=e[0];return t==="install"?whr(e.slice(1)):t==="uninstall"?khr(e.slice(1)):Thr()}var WU,vhr,BCt=v(()=>{"use strict";Ci();kCt();DCt();WU="statusline-fallback.json";vhr="@haiku/haiku"});ih();process.on("uncaughtException",e=>{ms(e,{context:"uncaughtException"}),console.error("uncaughtException:",e),Sf().finally(()=>process.exit(1))});process.on("unhandledRejection",e=>{let t=e instanceof Error?e:new Error(String(e));ms(t,{context:"unhandledRejection"}),console.error("unhandledRejection:",e),Sf().finally(()=>process.exit(1))});var[n8,...Ep]=process.argv.slice(2);if(n8==="mcp"){let e=Promise.resolve().then(()=>(AKe(),vKe)).then(i=>{i.maybeRebuildSpaForDev(import.meta.url)}).catch(i=>(ms(i instanceof Error?i:new Error(String(i)),{context:"dev-spa-rebuild"}),console.error(`haiku mcp: SPA dev-rebuild failed: ${i instanceof Error?i.message:String(i)}`),Sf().finally(()=>process.exit(1)))),t="",n=[];for(let i=0;i(Ef(),RKe)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(YNt(),ppr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Sf().finally(()=>process.exit(1))})}else if(n8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(ECt(),SCt)).then(t=>t.runHook(e,Ep.slice(1))).catch(t=>{ms(t,{context:`hook:${e}`}),console.error(`haiku hook ${e}: ${t.message}`),Sf().finally(()=>process.exit(1))})}else n8==="migrate"?Promise.resolve().then(()=>(vCt(),TCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Sf().finally(()=>process.exit(1))}):n8==="statusline"?Promise.resolve().then(()=>(BCt(),qCt)).then(e=>e.runStatusline(Ep)).catch(e=>{ms(e,{context:"statusline"}),process.env.HAIKU_STATUSLINE_DEBUG&&console.error(`[haiku statusline] handler error: ${e instanceof Error?`${e.message} +${e.stack}`:String(e)}`),Sf().finally(()=>process.exit(0))}):(console.error("Usage: haiku [args...]"),process.exit(1)); /*! Bundled license information: toad-cache/dist/toad-cache.cjs: diff --git a/plugin/prompts/intent/seal/pending_seal/template.eta.md b/plugin/prompts/intent/seal/pending_seal/template.eta.md new file mode 100644 index 000000000..d875463ae --- /dev/null +++ b/plugin/prompts/intent/seal/pending_seal/template.eta.md @@ -0,0 +1,13 @@ +# Intent `<%= slug %>` — pending seal + +Every stage on **<%= slug %>** is built, every required approval is signed, and the reflection is recorded. The work is delivered to the change request on `<%= intentMain %>`. + +It is **not sealed yet.** An intent only seals once its work has landed on `<%= defaultBranch %>`. Right now `<%= intentMain %>` is still ahead of `<%= defaultBranch %>` — the change request hasn't merged. + +## What to do + +Tell the user the intent is ready to merge<% if (prUrl) { %> — the delivery change request is <%= prUrl %><% } %>. The engine will **not** merge it for you; merging into `<%= defaultBranch %>` is the user's call (or the host's branch-protection automation). + +Nothing further is required from you on this tick. The intent seals automatically the next time the engine runs after `<%= intentMain %>` lands on `<%= defaultBranch %>` — a local merge or a merged change request both count. + +When the user comes back later with `/haiku:haiku-pickup`, the engine re-audits the open change request: any open feedback is addressed, and new review comments on the change request become fresh feedback items to resolve before it seals. diff --git a/website/app/studios/[slug]/architecture/_components/ArchitectureMap.tsx b/website/app/studios/[slug]/architecture/_components/ArchitectureMap.tsx index ac4b83b4b..51a941c40 100644 --- a/website/app/studios/[slug]/architecture/_components/ArchitectureMap.tsx +++ b/website/app/studios/[slug]/architecture/_components/ArchitectureMap.tsx @@ -1673,13 +1673,29 @@ export function ArchitectureMap({ initialStudioDir }: ArchitectureMapProps) {
+
+
⏳ pending_seal (held)
+
+ every approval signed + reflection done, but{" "} + haiku/{"{slug}"}/main hasn't landed on the repo's + default branch yet → cursor emits pending_seal and + HOLDS (no sealed_at). The engine never merges + (honors "never merge unless asked"). On{" "} + /haiku:haiku-pickup the{" "} + delivery-verifier re-audits the open change request + and files feedback for new review comments. Inapplicable in + filesystem mode / when already merged → skips straight to seal. +
+
+
✅ seal_intent → sealed
- every intent-scope approval signed → cursor emits{" "} - seal_intent; engine performs final rebase under{" "} - withIntentMainLock, stamps sealed_at; - next tick emits sealed. + once haiku/{"{slug}"}/main is an ancestor of the + default branch (merged locally or via a merged PR/MR) the cursor + emits seal_intent; engine performs final rebase + under withIntentMainLock, stamps{" "} + sealed_at; next tick emits sealed.
diff --git a/website/app/studios/[slug]/architecture/_data/actors.ts b/website/app/studios/[slug]/architecture/_data/actors.ts index 29b097ea3..ce28af245 100644 --- a/website/app/studios/[slug]/architecture/_data/actors.ts +++ b/website/app/studios/[slug]/architecture/_data/actors.ts @@ -81,7 +81,7 @@ export const ACTORS: Record = { "v0→v4 migrator, run once on first tick of any pre-v4 intent", ], notes: - "**The cursor model — v4's reconciliation point.** `derivePosition(slug)` reads disk and walks three tracks in priority order:\n\n1. **Track C — drift sweep.** Re-hashes each unit's body / declared outputs and compares against the FM witness (`reviews..body_sha256`, `approvals..witnesses[]`). Discovery is NOT a witnessed surface — its signal is artifact existence at the studio template's `location:`, so there's no stamp to drift against. Mismatch → `drift_detected { events }`. Dedup'd against open drift FBs by `source_ref` so a fired FB suppresses re-emission until it closes. Pre-v4 baseline artifacts (`baseline.json`, `drift-markers.json`, `baseline-content/`) are deleted by the v0→v4 migrator.\n\n2. **Track B — feedback.** Walks every stage from index 0 through the active stage, then intent-scope. Open FB → `start_feedback_hat` (next fix-hat dispatch) or `close_feedback` (terminal advance landed). Cross-stage routing is purely by file location: an FB in `stages//feedback/` rewinds the cursor to that stage's fix loop on the next tick. There is no `upstream_stage:` field and no pre-tick triage gate — classification is the first hat in the stage's `fix_hats:` chain (calls `haiku_feedback_set_targets`).\n\n3. **Track A — intent.** Pre-stage walk fires `elaborate_loop` (no `stage` field, `signals_unmet: [{signal: \"verify_conversation\"}]`) when `intent.md` lacks `verified_at` on a fresh non-autopilot intent (grandfathered when stage work has already shipped). On the active stage (first stage whose branch is not merged into intent main), the cursor walks the per-stage state machine in lifecycle order: `elaborate_loop` (single state carrying every unmet completion signal — `conversation` / `verify_conversation` / `discovery` / `decompose` / `verify_decompose`) → **`dispatch_review` / `user_gate { gate_kind: \"spec\" }` (PRE-execute — audits the SPEC before any code lands)** → `start_unit_hat` (wave logic; while `decompose_verified_at` is absent the loop keeps emitting `verify_decompose` and blocks wave dispatch) → `dispatch_quality_gates` → **`dispatch_approval` / `user_gate { gate_kind: \"approval\" }` (POST-execute — audits the WORK against the already-approved spec)** → `complete_stage`. The pre/post split landed 2026-05-17: `dispatch_review` moved from post-execute to pre-execute; `dispatch_approval` stayed post-execute; engine-built roles fire in BOTH walks with phase-appropriate mandate bodies.\n\n**Elaborate loop — single state, multi-signal payload (GAPS § 1a → Option A, 2026-05-14).** The cursor emits ONE `elaborate_loop` action per tick whose `signals_unmet[]` enumerates every currently-unmet completion signal. The agent may make progress on any subset in the same response — the loop is concurrent at the action shape, not just at the prompt level. The cursor recomputes on the next tick and either returns the still-unmet subset or falls through past the loop. Signals: `conversation` (elaboration.md missing on a fresh stage) / `verify_conversation` (recorded but unverified — carries the verifier nonce at `verifier_nonces.verify_conversation`) / `discovery` (one entry per missing discovery template, carries `agent` + representative `units`) / `decompose` (units.length === 0) / `verify_decompose` (units exist + `decompose_verified_at` missing — carries `verifier_nonces.verify_decompose`). Discovery subagents file `origin: discovery, resolution: question` FBs when surfacing user-decisions; the next tick routes these as `feedback_question` via Track B before the loop continues.\n\n**Verifier nonces (GAPS § 3, 2026-05-14).** The seal tools (`haiku_intent_seal`, `haiku_stage_elaboration_seal`, `haiku_stage_decompose_seal`) require the per-signal `nonce` from `verifier_nonces.`. Nonces are minted by the cursor's wire layer when the matching signal is emitted, persisted at `.haiku/intents//.verifier-nonces.json`, and consumed (deleted) on a successful seal. A confused or main-agent caller that invokes a seal tool without the dispatched verifier's nonce gets `verifier_nonce_invalid` back. Re-recording the elaboration artifact clears the stage-scoped nonces so a stale verifier dispatched against the old body can't seal the new one.\n\nAfter every stage merges, the cursor walks intent-scope approvals (`spec`, `continuity`, `cross-stage-consistency`, studio intent-completion review agents from `intent-review-agents/`, `user`) and emits `intent_review` per missing role, then `seal_intent`, then `sealed`.\n\n**Pre-cursor selection gates** — `run-tick.ts` (between migrator and `derivePosition`) emits `select_studio` / `select_mode` / `select_stage` when `intent.studio` / `intent.mode` is unset, or when mode is `quick` and `intent.stages[]` is empty. `haiku_run_next` blocks on the picker UI inline; the agent never sees a \"call haiku_select_*\" instruction.\n\n**Pre-cursor worktree gates (git-layer; the cursor reads none of it, Rule 1).** Also in `run-tick.ts` before `derivePosition`: `resetLostUnits` clears a unit's iterations when its isolation worktree AND branch are gone everywhere (cross-machine pickup with no recoverable ref — gated on `hasGitRemote()`), so the cursor re-dispatches the first hat into a fresh worktree. `completePendingFixChainMerges` re-attempts a fix-chain's terminal merge (via `mergeFixChainWorktree`'s `MERGE_HEAD` re-entry) for advance-closed chains whose worktree survived a conflict, completing it before a stage can advance over stranded code — or returning `integrate_fix_chains` while conflicts remain. Both no-op in filesystem mode and for the common in-flight / clean-merge paths.\n\n**No state.json.** v4 derives stage position from FM. The cursor is straight TypeScript, deterministic given the same disk state, with no LLM in the workflow-position decision. The agent does not hold workflow state in their context — anything they think they remember about waves or hats is incidental; the next tick tells them what's actually next.\n\n**Engine-built review roles (fire in BOTH walks, 2026-05-17):** `spec` (cross-unit acceptance criteria coverage, scope creep, cross-unit drift), `continuity` (handoff fidelity between hats / waves / stages), `cross-stage-consistency` (alignment with what earlier stages produced). No per-studio mandate file for any of these — `dispatch_review` renders pre-execute prose from `prompts/stage/review/dispatch_review/engine-bodies/.eta.md`, and `dispatch_approval` renders post-execute prose from `prompts/stage/approve/dispatch_approval/engine-bodies/.eta.md`.\n\n**Studio review-agent / hat / fix-hat cascade (three-tier, 2026-05-17):** the resolver walks `project/.haiku/studios//stages//review-agents/.md` → `plugin/studios//stages//review-agents/.md` → `plugin/studios//review-agents/.md` → `plugin/review-agents/.md`. First hit wins. Same cascade for `hats/` and `fix-hats/`. Studio-level intent-completion review agents now live at `plugin/studios//intent-review-agents/` (renamed from `review-agents/` to free the studio tier for stage-scope agents).\n\n**Mode shaping (read from `intent.mode`):**\n• `continuous` — full role lists `[spec, continuity, cross-stage-consistency, , user]` (reviews) and `[spec, continuity, cross-stage-consistency, quality_gates, , user]` (approvals). Runtime-observation roles (`RUNTIME_OBSERVATION_ROLES` in `orchestrator/review-role-classes.ts` — currently `runtime-verifier`) are EXCLUDED from the PRE-execute reviews list (`stageRoleLists` filters them — there's no built work to drive before execution); they fire only in approvals + intent-completion.\n• `discrete` — same role lists; the `user` gate dispatches via PR/MR open and waits for merge into intent main as the approval signal.\n• `discrete-hybrid` — discrete up to a chosen pivot stage, then continuous; per-stage gate type drives the dispatch choice.\n• `autopilot` — trimmed: reviews `[spec, continuity, cross-stage-consistency]`, approvals `[spec, continuity, cross-stage-consistency, quality_gates]`, no user gate, no studio agents, `complete_stage` auto-fires once the post-execute walk completes.\n• `quick` — single-stage intent (`intent.stages[]` length 1 after `select_stage`).\n\n**Stage→main merge serialization.** Every `complete_stage` runs under `withIntentMainLock` so concurrent stages can't race the merge into intent main. Stages are NEVER sealed — only intents are; a previously-merged stage that gains a new unit (via fix-loop corrective work) becomes ahead-of-main and `firstUnmergedStage` rewinds the cursor to it automatically.\n\n**MCP tool surface** lives in `packages/haiku/src/orchestrator.ts`, `state-tools.ts`, and `server.ts` — including `haiku_run_next` (the tick + blocking shell for every interactive UI), the unit/feedback CRUDL family with TypeBox + AJV input gates, `haiku_intent_*`, `haiku_select_*` (resume entry points; canonical path is engine-side blocking via run_next), `haiku_await_gate`, `haiku_record_agent_write`, `haiku_review_stamp` (stage review/approval subagent closure — stamps `reviews.`/`approvals.` without a cursor walk, so parallel review siblings don't trip the loop guard), `haiku_feedback_advance_hat` / `_reject_hat` / `_set_targets` / `_set_severity` / `_move`, `haiku_unit_advance_hat` / `_reject_hat`, `haiku_settings_get/set`, `haiku_studio_*`, `haiku_capacity`, `haiku_repair`. Numeric `feedback_id` at the wire (display label `FB-001`); the parser accepts both 2-digit and 3-digit filename forms.\n\n**Runtime-verifier surface (2026-05-18).** Bundled `@playwright/mcp@latest --headless` ships in `plugin/.mcp.json` alongside two new state tools: `haiku_view` opens a view session and returns a URL the agent hands to Playwright (boot mode auto-detects the project's `npm run dev` / `bun run dev` / equivalent and spawns it on an ephemeral port; viewer mode tunnels to the SPA's `/view/?artifact=&stage=` artifact-browser route with mime dispatch covering markdown / image / PDF / SVG / source highlight / HTML and specialized web-component viewers for KiCanvas (`.kicad_sch` / `.kicad_pcb`), Tracespace (`.gbr` / `.drl`), `` (`.glb` / `.gltf`), and tscircuit (circuit `.tsx`)). `haiku_view_close` shuts the session + kills any spawned dev server. Lifecycle is layered: explicit close → 30min TTL → tick-scoped orphan sweep via `killAllOrphanedBootSessions` in `run-tick.ts` → process-exit SIGTERM. Runtime-verifier review-agents (`runtime-verifier.md` mandates at stage-tier `review-agents/` and studio-tier `intent-review-agents/`) call `haiku_view`, drive the URL through the Playwright MCP, screenshot every step, and save proof PNGs to `.haiku/intents//[stages//]proof/*.png` so humans can audit the chain after the fact. `ViewSession` lives in `sessions.ts`; the file-serve route accepts view sessions through the same `/stage-artifacts/:sessionId/*` path-safety chain reviews use.\n\n**Reflection surface (2026-05-19).** Engine prompt bodies live at `plugin/prompts//` (single source of truth, shipped with the plugin) with a two-tier cascade — project override at `.haiku/prompts/` beats plugin default at `/`. `loadTemplate` is mtime-cached; the build-time `canonicalize-prompt-templates` esbuild plugin rewrites every `loadTemplate(import.meta.url, …)` call site in the TS builders under `packages/haiku/src/orchestrator/prompts/` to a `\"@canon:\"` sentinel form, no copy step needed since `plugin/prompts/` ships directly. On top of that, two cursor actions fire per intent when reflection is enabled (default-on; opt-out via `reflection: false` on intent.md FM, with `autotune: false` honored for backward compatibility): `record_observations` fires once per stage right before `complete_stage` so the agent writes a free-form `stages//observations.md` capturing the out-of-band churn that FBs / outputs / iterations don't already show. `record_reflection` fires once at intent close right before `seal_intent` so the agent reads every observations.md + the full FB stream + unit iterations/outputs and (a) writes a synthesized `reflection.md` at intent root, (b) lands override-class findings as project overlays directly under `.haiku/...` (cascade picks them up next tick, no rebuild needed), (c) reports engine-class findings via the existing `haiku_report` tool with the message prefixed `[autotune engine-class]` (existing Sentry pipeline scrubs the payload). All edits commit with an `autotune:` prefixed message so PR review surfaces provenance — no FB queue, no tune dashboard, no per-file frontmatter stamps.", + "**The cursor model — v4's reconciliation point.** `derivePosition(slug)` reads disk and walks three tracks in priority order:\n\n1. **Track C — drift sweep.** Re-hashes each unit's body / declared outputs and compares against the FM witness (`reviews..body_sha256`, `approvals..witnesses[]`). Discovery is NOT a witnessed surface — its signal is artifact existence at the studio template's `location:`, so there's no stamp to drift against. Mismatch → `drift_detected { events }`. Dedup'd against open drift FBs by `source_ref` so a fired FB suppresses re-emission until it closes. Pre-v4 baseline artifacts (`baseline.json`, `drift-markers.json`, `baseline-content/`) are deleted by the v0→v4 migrator.\n\n2. **Track B — feedback.** Walks every stage from index 0 through the active stage, then intent-scope. Open FB → `start_feedback_hat` (next fix-hat dispatch) or `close_feedback` (terminal advance landed). Cross-stage routing is purely by file location: an FB in `stages//feedback/` rewinds the cursor to that stage's fix loop on the next tick. There is no `upstream_stage:` field and no pre-tick triage gate — classification is the first hat in the stage's `fix_hats:` chain (calls `haiku_feedback_set_targets`).\n\n3. **Track A — intent.** Pre-stage walk fires `elaborate_loop` (no `stage` field, `signals_unmet: [{signal: \"verify_conversation\"}]`) when `intent.md` lacks `verified_at` on a fresh non-autopilot intent (grandfathered when stage work has already shipped). On the active stage (first stage whose branch is not merged into intent main), the cursor walks the per-stage state machine in lifecycle order: `elaborate_loop` (single state carrying every unmet completion signal — `conversation` / `verify_conversation` / `discovery` / `decompose` / `verify_decompose`) → **`dispatch_review` / `user_gate { gate_kind: \"spec\" }` (PRE-execute — audits the SPEC before any code lands)** → `start_unit_hat` (wave logic; while `decompose_verified_at` is absent the loop keeps emitting `verify_decompose` and blocks wave dispatch) → `dispatch_quality_gates` → **`dispatch_approval` / `user_gate { gate_kind: \"approval\" }` (POST-execute — audits the WORK against the already-approved spec)** → `complete_stage`. The pre/post split landed 2026-05-17: `dispatch_review` moved from post-execute to pre-execute; `dispatch_approval` stayed post-execute; engine-built roles fire in BOTH walks with phase-appropriate mandate bodies.\n\n**Elaborate loop — single state, multi-signal payload (GAPS § 1a → Option A, 2026-05-14).** The cursor emits ONE `elaborate_loop` action per tick whose `signals_unmet[]` enumerates every currently-unmet completion signal. The agent may make progress on any subset in the same response — the loop is concurrent at the action shape, not just at the prompt level. The cursor recomputes on the next tick and either returns the still-unmet subset or falls through past the loop. Signals: `conversation` (elaboration.md missing on a fresh stage) / `verify_conversation` (recorded but unverified — carries the verifier nonce at `verifier_nonces.verify_conversation`) / `discovery` (one entry per missing discovery template, carries `agent` + representative `units`) / `decompose` (units.length === 0) / `verify_decompose` (units exist + `decompose_verified_at` missing — carries `verifier_nonces.verify_decompose`). Discovery subagents file `origin: discovery, resolution: question` FBs when surfacing user-decisions; the next tick routes these as `feedback_question` via Track B before the loop continues.\n\n**Verifier nonces (GAPS § 3, 2026-05-14).** The seal tools (`haiku_intent_seal`, `haiku_stage_elaboration_seal`, `haiku_stage_decompose_seal`) require the per-signal `nonce` from `verifier_nonces.`. Nonces are minted by the cursor's wire layer when the matching signal is emitted, persisted at `.haiku/intents//.verifier-nonces.json`, and consumed (deleted) on a successful seal. A confused or main-agent caller that invokes a seal tool without the dispatched verifier's nonce gets `verifier_nonce_invalid` back. Re-recording the elaboration artifact clears the stage-scoped nonces so a stale verifier dispatched against the old body can't seal the new one.\n\nAfter every stage merges, the cursor walks intent-scope approvals (`spec`, `continuity`, `cross-stage-consistency`, studio intent-completion review agents from `intent-review-agents/`, `user`) and emits `intent_review` per missing role. Once every approval is signed and reflection is done, the cursor checks delivery (`intent-delivery.ts`): if `haiku//main` has NOT landed on the repo's default branch it emits `pending_seal` and HOLDS — `sealed_at` stays unwritten and the engine never merges (honors \"never merge unless asked\"). On `/haiku:haiku-pickup` the delivery PR-interaction approval (`delivery-verifier`) is re-opened so it re-audits the open change request and files feedback for new review comments. Once the hub branch is an ancestor of the default branch (merged locally or via a merged PR/MR) the cursor emits `seal_intent`, then `sealed`. Filesystem mode / no resolvable default branch → the gate is inapplicable and it seals straight away.\n\n**Pre-cursor selection gates** — `run-tick.ts` (between migrator and `derivePosition`) emits `select_studio` / `select_mode` / `select_stage` when `intent.studio` / `intent.mode` is unset, or when mode is `quick` and `intent.stages[]` is empty. `haiku_run_next` blocks on the picker UI inline; the agent never sees a \"call haiku_select_*\" instruction.\n\n**Pre-cursor worktree gates (git-layer; the cursor reads none of it, Rule 1).** Also in `run-tick.ts` before `derivePosition`: `resetLostUnits` clears a unit's iterations when its isolation worktree AND branch are gone everywhere (cross-machine pickup with no recoverable ref — gated on `hasGitRemote()`), so the cursor re-dispatches the first hat into a fresh worktree. `completePendingFixChainMerges` re-attempts a fix-chain's terminal merge (via `mergeFixChainWorktree`'s `MERGE_HEAD` re-entry) for advance-closed chains whose worktree survived a conflict, completing it before a stage can advance over stranded code — or returning `integrate_fix_chains` while conflicts remain. Both no-op in filesystem mode and for the common in-flight / clean-merge paths.\n\n**No state.json.** v4 derives stage position from FM. The cursor is straight TypeScript, deterministic given the same disk state, with no LLM in the workflow-position decision. The agent does not hold workflow state in their context — anything they think they remember about waves or hats is incidental; the next tick tells them what's actually next.\n\n**Engine-built review roles (fire in BOTH walks, 2026-05-17):** `spec` (cross-unit acceptance criteria coverage, scope creep, cross-unit drift), `continuity` (handoff fidelity between hats / waves / stages), `cross-stage-consistency` (alignment with what earlier stages produced). No per-studio mandate file for any of these — `dispatch_review` renders pre-execute prose from `prompts/stage/review/dispatch_review/engine-bodies/.eta.md`, and `dispatch_approval` renders post-execute prose from `prompts/stage/approve/dispatch_approval/engine-bodies/.eta.md`.\n\n**Studio review-agent / hat / fix-hat cascade (three-tier, 2026-05-17):** the resolver walks `project/.haiku/studios//stages//review-agents/.md` → `plugin/studios//stages//review-agents/.md` → `plugin/studios//review-agents/.md` → `plugin/review-agents/.md`. First hit wins. Same cascade for `hats/` and `fix-hats/`. Studio-level intent-completion review agents now live at `plugin/studios//intent-review-agents/` (renamed from `review-agents/` to free the studio tier for stage-scope agents).\n\n**Mode shaping (read from `intent.mode`):**\n• `continuous` — full role lists `[spec, continuity, cross-stage-consistency, , user]` (reviews) and `[spec, continuity, cross-stage-consistency, quality_gates, , user]` (approvals). Runtime-observation roles (`RUNTIME_OBSERVATION_ROLES` in `orchestrator/review-role-classes.ts` — currently `runtime-verifier`) are EXCLUDED from the PRE-execute reviews list (`stageRoleLists` filters them — there's no built work to drive before execution); they fire only in approvals + intent-completion.\n• `discrete` — same role lists; the `user` gate dispatches via PR/MR open and waits for merge into intent main as the approval signal.\n• `discrete-hybrid` — discrete up to a chosen pivot stage, then continuous; per-stage gate type drives the dispatch choice.\n• `autopilot` — trimmed: reviews `[spec, continuity, cross-stage-consistency]`, approvals `[spec, continuity, cross-stage-consistency, quality_gates]`, no user gate, no studio agents, `complete_stage` auto-fires once the post-execute walk completes.\n• `quick` — single-stage intent (`intent.stages[]` length 1 after `select_stage`).\n\n**Stage→main merge serialization.** Every `complete_stage` runs under `withIntentMainLock` so concurrent stages can't race the merge into intent main. Stages are NEVER sealed — only intents are; a previously-merged stage that gains a new unit (via fix-loop corrective work) becomes ahead-of-main and `firstUnmergedStage` rewinds the cursor to it automatically.\n\n**MCP tool surface** lives in `packages/haiku/src/orchestrator.ts`, `state-tools.ts`, and `server.ts` — including `haiku_run_next` (the tick + blocking shell for every interactive UI), the unit/feedback CRUDL family with TypeBox + AJV input gates, `haiku_intent_*`, `haiku_select_*` (resume entry points; canonical path is engine-side blocking via run_next), `haiku_await_gate`, `haiku_record_agent_write`, `haiku_review_stamp` (stage review/approval subagent closure — stamps `reviews.`/`approvals.` without a cursor walk, so parallel review siblings don't trip the loop guard), `haiku_feedback_advance_hat` / `_reject_hat` / `_set_targets` / `_set_severity` / `_move`, `haiku_unit_advance_hat` / `_reject_hat`, `haiku_settings_get/set`, `haiku_studio_*`, `haiku_capacity`, `haiku_repair`. Numeric `feedback_id` at the wire (display label `FB-001`); the parser accepts both 2-digit and 3-digit filename forms.\n\n**Runtime-verifier surface (2026-05-18).** Bundled `@playwright/mcp@latest --headless` ships in `plugin/.mcp.json` alongside two new state tools: `haiku_view` opens a view session and returns a URL the agent hands to Playwright (boot mode auto-detects the project's `npm run dev` / `bun run dev` / equivalent and spawns it on an ephemeral port; viewer mode tunnels to the SPA's `/view/?artifact=&stage=` artifact-browser route with mime dispatch covering markdown / image / PDF / SVG / source highlight / HTML and specialized web-component viewers for KiCanvas (`.kicad_sch` / `.kicad_pcb`), Tracespace (`.gbr` / `.drl`), `` (`.glb` / `.gltf`), and tscircuit (circuit `.tsx`)). `haiku_view_close` shuts the session + kills any spawned dev server. Lifecycle is layered: explicit close → 30min TTL → tick-scoped orphan sweep via `killAllOrphanedBootSessions` in `run-tick.ts` → process-exit SIGTERM. Runtime-verifier review-agents (`runtime-verifier.md` mandates at stage-tier `review-agents/` and studio-tier `intent-review-agents/`) call `haiku_view`, drive the URL through the Playwright MCP, screenshot every step, and save proof PNGs to `.haiku/intents//[stages//]proof/*.png` so humans can audit the chain after the fact. `ViewSession` lives in `sessions.ts`; the file-serve route accepts view sessions through the same `/stage-artifacts/:sessionId/*` path-safety chain reviews use.\n\n**Reflection surface (2026-05-19).** Engine prompt bodies live at `plugin/prompts//` (single source of truth, shipped with the plugin) with a two-tier cascade — project override at `.haiku/prompts/` beats plugin default at `/`. `loadTemplate` is mtime-cached; the build-time `canonicalize-prompt-templates` esbuild plugin rewrites every `loadTemplate(import.meta.url, …)` call site in the TS builders under `packages/haiku/src/orchestrator/prompts/` to a `\"@canon:\"` sentinel form, no copy step needed since `plugin/prompts/` ships directly. On top of that, two cursor actions fire per intent when reflection is enabled (default-on; opt-out via `reflection: false` on intent.md FM, with `autotune: false` honored for backward compatibility): `record_observations` fires once per stage right before `complete_stage` so the agent writes a free-form `stages//observations.md` capturing the out-of-band churn that FBs / outputs / iterations don't already show. `record_reflection` fires once at intent close right before `seal_intent` so the agent reads every observations.md + the full FB stream + unit iterations/outputs and (a) writes a synthesized `reflection.md` at intent root, (b) lands override-class findings as project overlays directly under `.haiku/...` (cascade picks them up next tick, no rebuild needed), (c) reports engine-class findings via the existing `haiku_report` tool with the message prefixed `[autotune engine-class]` (existing Sentry pipeline scrubs the payload). All edits commit with an `autotune:` prefixed message so PR review surfaces provenance — no FB queue, no tune dashboard, no per-file frontmatter stamps.", }, webui: { icon: "🌐", diff --git a/website/app/studios/[slug]/architecture/_data/payload-for.ts b/website/app/studios/[slug]/architecture/_data/payload-for.ts index 83d0b70be..96f4c213f 100644 --- a/website/app/studios/[slug]/architecture/_data/payload-for.ts +++ b/website/app/studios/[slug]/architecture/_data/payload-for.ts @@ -577,7 +577,7 @@ export function payloadFor( hook: "MCP tool result", target: "agent's `tool_use_result`", what: opts.isLast - ? "every stage merged → cursor walks intent-scope approvals (`spec`, `continuity`, `cross-stage-consistency`, then each studio `intent-review-agents/` role — software: `runtime-verifier`, `delivery-verifier` — then `user`) and emits `intent_review { role }` per missing role, then `seal_intent`, then `sealed`." + ? "every stage merged → cursor walks intent-scope approvals (`spec`, `continuity`, `cross-stage-consistency`, then each studio `intent-review-agents/` role — software: `runtime-verifier`, `delivery-verifier` — then `user`) and emits `intent_review { role }` per missing role. All signed → if `haiku/{slug}/main` hasn't landed on the default branch, `pending_seal` HOLDS (engine never merges); once merged, `seal_intent` → `sealed`." : "stage merged into intent main; cursor's next tick walks the next stage (the new `firstUnmergedStage`).", }, { @@ -588,7 +588,7 @@ export function payloadFor( ], action: opts.isLast ? "seal_intent" : "complete_stage", summary: opts.isLast - ? "final stage merged → walk intent-scope approvals → seal_intent → sealed" + ? "final stage merged → walk intent-scope approvals → pending_seal (held until merged to default) → seal_intent → sealed" : `merge stage \`${stageLower}\` into intent main → next stage (${opts.nextStageName ?? "?"})`, payload: opts.isLast ? { From fe40bc57d43903d4d7ebbe3938e03c9d90867fa8 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 09:06:24 -0600 Subject: [PATCH 06/24] =?UTF-8?q?fix(browse):=20GitLab=20list=20=E2=80=94?= =?UTF-8?q?=20surface=20raw-GraphQL=20errors=20+=20fall=20back=20so=20inte?= =?UTF-8?q?nts=20never=20vanish?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A main-only intent (haiku//main not yet on the default branch) disappeared from the list view: the new raw aliased batch returned no intent.md for it and the loader skipped it silently. Two fixes: - rawGraphql now console.warns GraphQL `errors[]` (they come back HTTP 200 with null data) + HTTP/transport failures — a dropped intent was otherwise indistinguishable from "no such intent". - batchMainBranchData falls back PER BRANCH to the proven single-ref reads (readFileFromRef for intent.md + a stages-dir tree query) whenever the batch yields no intent.md — correctness first; the batch stays the fast path. The console warning will show why the batch missed so the fast path can be fixed definitively. Co-Authored-By: Claude Opus 4.7 --- website/lib/browse/gitlab-provider.ts | 65 ++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/website/lib/browse/gitlab-provider.ts b/website/lib/browse/gitlab-provider.ts index fbaec25e3..3f0c594a8 100644 --- a/website/lib/browse/gitlab-provider.ts +++ b/website/lib/browse/gitlab-provider.ts @@ -143,10 +143,28 @@ export class GitLabProvider implements BrowseProvider { }, body: JSON.stringify({ query, variables: variables ?? {} }), }) - if (!res.ok) return undefined - const json = (await res.json()) as { data?: T } + if (!res.ok) { + console.warn( + `[haiku-browse] raw GraphQL HTTP ${res.status} ${res.statusText}`, + ) + return undefined + } + const json = (await res.json()) as { + data?: T + errors?: Array<{ message: string }> + } + // GraphQL errors come back 200 with `errors[]` + (often) null data. + // Surface them — a silently-dropped intent in the list view is + // otherwise indistinguishable from "no such intent". + if (json.errors?.length) { + console.warn( + "[haiku-browse] raw GraphQL errors:", + json.errors.map((e) => e.message).join("; "), + ) + } return json.data - } catch { + } catch (err) { + console.warn("[haiku-browse] raw GraphQL fetch failed:", err) return undefined } } @@ -189,13 +207,40 @@ export class GitLabProvider implements BrowseProvider { project?: { repository?: RepoFields } }>(query, { fp: this.projectPath }) const repo = data?.project?.repository - chunk.forEach((m, j) => { - const rawText = repo?.[`a${j}_md`]?.nodes?.[0]?.rawTextBlob ?? null - const stageDirs = (repo?.[`a${j}_st`]?.trees?.nodes ?? []) - .map((n) => n?.name) - .filter((n): n is string => typeof n === "string" && n.length > 0) - out.set(m.slug, { rawText, stageDirs }) - }) + // Per-branch fallback: if the aliased batch yielded no intent.md for + // a branch (transport error, a per-alias field error, or an empty + // node), fall back to the proven single-ref reads so the intent + // still surfaces. Correctness first; the batch is the fast path. + await Promise.all( + chunk.map(async (m, j) => { + let rawText = repo?.[`a${j}_md`]?.nodes?.[0]?.rawTextBlob ?? null + let stageDirs = (repo?.[`a${j}_st`]?.trees?.nodes ?? []) + .map((n) => n?.name) + .filter((n): n is string => typeof n === "string" && n.length > 0) + if (!rawText) { + rawText = await this.readFileFromRef( + m.branch, + `.haiku/intents/${m.slug}/intent.md`, + ) + const treeData = + await this.cachedQuery( + ListIntentsTreeQuery, + { + fullPath: this.projectPath, + path: `.haiku/intents/${m.slug}/stages`, + ref: m.branch, + }, + `gl:${this.host}:${this.projectPath}:stagesDirs:${m.slug}:${m.branch}`, + ) + stageDirs = ( + treeData?.project?.repository?.tree?.trees?.nodes ?? [] + ) + .map((n) => n?.name) + .filter((n): n is string => typeof n === "string" && n.length > 0) + } + out.set(m.slug, { rawText, stageDirs }) + }), + ) } return out } From 5aca1fc545399fd55f2e184a66d4a8209601b365 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 09:24:25 -0600 Subject: [PATCH 07/24] fix(browse): paginate the GitLab intent-branch query (intents past branch #100 were dropped) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `branchNames(searchPattern:"haiku/*", limit:100)` returned a single 100-branch page. A busy monorepo has far more than 100 `haiku/*` branches (every unit branch counts — 168 here), so any intent whose `*/main` branch sorted past the cutoff silently vanished from the list (worker-new-badge: branch #100+ → missing). Two changes: - Narrow the glob to `haiku/*/main` — the lean list only needs the per-intent main branches, not unit/stage branches. 168 → 53 results here. - Paginate: loop `offset` by 100 until a short page signals the end, so it scales past any single-page cap. Verified live (Playwright, real GitLab monorepo): list went 88 → 98 intents and the worker-new-badge card renders correctly — "Add \"New\" badge to recent workers", completed, Security, 6/6 stages. Co-Authored-By: Claude Opus 4.7 --- website/lib/browse/gitlab-provider.ts | 48 +++++++++++++-------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/website/lib/browse/gitlab-provider.ts b/website/lib/browse/gitlab-provider.ts index 3f0c594a8..df0752f15 100644 --- a/website/lib/browse/gitlab-provider.ts +++ b/website/lib/browse/gitlab-provider.ts @@ -429,30 +429,34 @@ export class GitLabProvider implements BrowseProvider { // Scan mode: discover intents across all haiku/* branches + default branch const intentsBySlug = new Map() - // Step 1: List haiku/* branches via GraphQL - const branchesCacheKey = `gl:${this.host}:${this.projectPath}:listHaikuBranches` - const branchesData = - await this.cachedQuery( + // Step 1: List the intent branches via GraphQL — PAGINATED. `branchNames` + // caps at `limit` per call (100), and a busy monorepo has far more than + // 100 `haiku/*` branches (every unit branch counts), so a single page + // silently dropped intents whose `*/main` branch sorted past the cutoff + // (worker-new-badge, 2026-05-28). The lean list only needs the `*/main` + // branches, so narrow the glob to `haiku/*/main` (far fewer results) AND + // page through until a short page signals the end. + const PAGE = 100 + const mainBranches: string[] = [] + for (let offset = 0; ; offset += PAGE) { + const page = await this.cachedQuery( ListBranchNamesQuery, { fullPath: this.projectPath, - searchPattern: "haiku/*", - offset: 0, - limit: 100, + searchPattern: "haiku/*/main", + offset, + limit: PAGE, }, - branchesCacheKey, - ) - - const branchNames = branchesData?.project?.repository?.branchNames ?? [] - if (branchNames.length > 0) { - console.log( - `[haiku-browse] Found ${branchNames.length} haiku branches:`, - branchNames, - ) - } else { - console.log( - `[haiku-browse] No haiku branches found via branchNames query`, + `gl:${this.host}:${this.projectPath}:listMainBranches:${offset}`, ) + const names = page?.project?.repository?.branchNames ?? [] + for (const name of names) { + const parts = name.split("/") + if (parts.length >= 2 && parts[parts.length - 1] === "main") { + mainBranches.push(name) + } + } + if (names.length < PAGE) break } // LEAN list-view load: NO per-stage-branch MR fan-out and NO per-stage @@ -460,12 +464,6 @@ export class GitLabProvider implements BrowseProvider { // detail load lazily in the detail view. The list needs only: // title/studio/mode/status + branch + stage-dir-count over total stages. - // haiku//main branches → the "current" (in-flight) intents. - const mainBranches = branchNames.filter((name: string) => { - const parts = name.split("/") - return parts.length >= 2 && parts[parts.length - 1] === "main" - }) - // Step 2: Load ALL intents from default branch — the canonical catalog const defaultIntents = await this.listIntentsFromRef(null) for (const intent of defaultIntents) { From 15adfef633546fcf8c8d5261065120ba3f87c569 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 09:28:31 -0600 Subject: [PATCH 08/24] fix(browse): paginate the GitHub haiku-branch query (parity with GitLab fix) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `refs(refPrefix: "refs/heads/haiku/", first: 100)` capped at a single page, so on a repo with >100 `haiku/*` branches any intent whose `*/main` ref sorted past #100 dropped off the list — same bug just fixed for GitLab. GitHub's `refs` is cursor-paginated (not offset), so loop on `pageInfo.hasNextPage`/`endCursor` until exhausted. Done via raw GraphQL rather than the static Relay artifact so `after:` can be threaded without regenerating compiled queries; the artifact + its import stay for the single-slug detail path (scoped to one intent's branches, no cap risk). Trimmed the per-node selection to the fields actually consumed (name + PR number/url/state). Co-Authored-By: Claude Opus 4.7 --- website/lib/browse/github-provider.ts | 63 +++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/website/lib/browse/github-provider.ts b/website/lib/browse/github-provider.ts index 421bf4d88..cb4b1b44c 100644 --- a/website/lib/browse/github-provider.ts +++ b/website/lib/browse/github-provider.ts @@ -329,16 +329,61 @@ export class GitHubProvider implements BrowseProvider { // merge it over the HEAD baseline. const intentsBySlug = new Map() - // Step 1: List haiku/* branches with PR data - const branchesCacheKey = `gh:${this.owner}/${this.repo}:listHaikuBranches` - const branchesData = - await this.cachedQuery( - ListHaikuBranchesQuery, - { owner: this.owner, name: this.repo, refPrefix: "refs/heads/haiku/" }, - branchesCacheKey, + // Step 1: List ALL haiku/* branches with PR data, PAGINATED. + // GitHub's `refs(first: 100)` caps at one page; a busy repo has far more + // than 100 `haiku/*` branches (every unit/stage branch counts), so any + // intent whose `*/main` ref sorted past #100 silently vanished from the + // list. Cursor-paginate until `hasNextPage` is false so it scales past + // the single-page cap. Raw GraphQL (not the static Relay artifact) so we + // can thread `after:` without regenerating compiled queries. + type BranchNode = { + name: string + associatedPullRequests: { + nodes: Array<{ + number: number + url: string + state: string + } | null> | null + } + } + type RefsConn = { + nodes?: Array | null + pageInfo?: { hasNextPage: boolean; endCursor: string | null } + } + type RefsPage = { + repository?: { refs?: RefsConn | null } + } + const branchNodes: BranchNode[] = [] + let refsCursor: string | null = null + for (;;) { + const page: RefsPage | undefined = await this.rawGraphql( + `query($owner: String!, $name: String!, $refPrefix: String!, $after: String) { + repository(owner: $owner, name: $name) { + refs(refPrefix: $refPrefix, first: 100, after: $after) { + nodes { + name + associatedPullRequests(first: 1, states: [OPEN, CLOSED, MERGED], orderBy: { field: UPDATED_AT, direction: DESC }) { + nodes { number url state } + } + } + pageInfo { hasNextPage endCursor } + } + } + }`, + { + owner: this.owner, + name: this.repo, + refPrefix: "refs/heads/haiku/", + after: refsCursor, + }, ) - - const branchNodes = branchesData?.repository?.refs?.nodes ?? [] + const refs: RefsConn | null | undefined = page?.repository?.refs + for (const node of refs?.nodes ?? []) { + if (node) branchNodes.push(node) + } + if (!refs?.pageInfo?.hasNextPage || !refs.pageInfo.endCursor) break + refsCursor = refs.pageInfo.endCursor + } // Capture stage-level branches (haiku/{slug}/{stageName}, where stageName != "main") for (const node of branchNodes) { From bf39c212ab12072656c43de2e123d5f9a2c2355b Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 09:45:31 -0600 Subject: [PATCH 09/24] fix(pending-seal): reinterpret a sealed stamp against merge state at the display layer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A sealed_at stamp written before the merge gate landed (or any premature seal) shouldn't read as "done" while the work is still ahead of the default branch. The write-gate stops NEW premature seals, but the display surfaces still trusted sealed_at blindly, so a legacy sealed-but-unmerged intent kept showing "sealed". Now the status surfaces re-check the merge locally and show pending-seal when the hub branch hasn't landed — honoring the original ask: "while the cursor signal may say sealed, if the branch isn't merged its status should be pending seal." - statusline: the sealed render block flips to the `pending_seal` phase ("pending seal", gated) when `isAwaitingMerge` (local-only); pickActiveIntent keeps a sealed-but-unmerged intent in the live set so it still shows. - current-state (SPA wire): `seal_status`/`awaiting_merge_into` derive pending_seal for a sealed-but-unmerged intent, not just an unsealed one. - haiku_intent_list: a sealed stamp resolves to "pending_seal" when the hub branch isn't merged, else "completed". All local probes (no gh/glab) so the per-prompt status line stays fast. Full suites green: haiku 2071, statusline 43, intent-list 127. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/haiku/src/current-state.ts | 16 +++++++++------- packages/haiku/src/state-tools.ts | 13 ++++++------- packages/haiku/src/statusline/state.ts | 23 ++++++++++++++++++----- 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/packages/haiku/src/current-state.ts b/packages/haiku/src/current-state.ts index 89f42b713..3046d8b98 100644 --- a/packages/haiku/src/current-state.ts +++ b/packages/haiku/src/current-state.ts @@ -163,14 +163,16 @@ export function getCurrentState( if (cursorStage === null) { const sealedAt = typeof intent.sealed_at === "string" && intent.sealed_at.length > 0 - if (sealedAt) { + const delivery = intentDeliveryState(slug, { localOnly: true }) + if (delivery.applicable && !delivery.merged) { + // Held: the work hasn't landed on the default branch — whether or + // not a sealed stamp was already written. The merge gate reading + // at the display layer ("while the cursor signal may say sealed, + // if the branch isn't merged the status is pending seal"). + seal_status = "pending_seal" + awaiting_merge_into = delivery.defaultBranch + } else if (sealedAt) { seal_status = "sealed" - } else { - const delivery = intentDeliveryState(slug, { localOnly: true }) - if (delivery.applicable && !delivery.merged) { - seal_status = "pending_seal" - awaiting_merge_into = delivery.defaultBranch - } } } diff --git a/packages/haiku/src/state-tools.ts b/packages/haiku/src/state-tools.ts index ec49983c9..1c7ab1a14 100644 --- a/packages/haiku/src/state-tools.ts +++ b/packages/haiku/src/state-tools.ts @@ -9215,16 +9215,15 @@ export function handleStateTool( const sealedAt = typeof data.sealed_at === "string" && data.sealed_at.length > 0 const activeStage = studio ? findCurrentStage(slug, studio) : null - // `sealed_at` set → "completed". Every stage merged but NOT - // sealed → either "pending_seal" (git-backed, the hub branch - // hasn't landed on the default branch — held awaiting merge) or - // "completed" (filesystem mode / already merged → it seals on the - // next tick). LOCAL-only merge probe here (no gh/glab) — this is + // A sealed stamp is only "completed" once the work has landed on + // the default branch — otherwise it's "pending_seal" (held). Same + // for an all-stages-merged-but-unsealed intent: "pending_seal" if + // the hub branch hasn't merged, else "completed". A stage still + // active → "active". LOCAL-only merge probe (no gh/glab) — this is // a per-intent list display; a transient pending_seal on a // squash-merged-not-yet-ticked intent is acceptable. let derivedStatus: string - if (sealedAt) derivedStatus = "completed" - else if (activeStage === null) + if (sealedAt || activeStage === null) derivedStatus = isAwaitingMerge(slug, { localOnly: true }) ? "pending_seal" : "completed" diff --git a/packages/haiku/src/statusline/state.ts b/packages/haiku/src/statusline/state.ts index 5c4c105bd..d401a20fa 100644 --- a/packages/haiku/src/statusline/state.ts +++ b/packages/haiku/src/statusline/state.ts @@ -29,6 +29,7 @@ import { findCurrentStage, isStageComplete, } from "../orchestrator/workflow/cursor.js" +import { isAwaitingMerge } from "../orchestrator/workflow/intent-delivery.js" import { actionIsFanOut, deriveProgressRoleSteps, @@ -124,8 +125,13 @@ function pickActiveIntent(haikuRoot: string): string | null { const fm = readFm(join(intentsDir, slug, "intent.md")) if (!fm) return false if (fm.archived === true) return false - if (typeof fm.sealed_at === "string" && fm.sealed_at.length > 0) - return false + if (typeof fm.sealed_at === "string" && fm.sealed_at.length > 0) { + // A sealed stamp isn't "done" until the work has landed on the + // default branch. A sealed-but-unmerged intent is still live + // (held in pending-seal) — keep showing it. LOCAL-only probe so + // the status line stays fast. + return isAwaitingMerge(slug, { localOnly: true }) + } return true }) if (live.length === 1) return live[0] @@ -584,14 +590,21 @@ export function resolveStatuslineState(): StatuslineState | null { typeof intentFm.sealed_at === "string" && (intentFm.sealed_at as string).length > 0 ) { + // A sealed stamp is only truly "sealed" once the work has landed on + // the default branch. If the hub branch is still ahead (unmerged), + // the intent is HELD in pending-seal — render that, not "sealed", + // even though the cursor stamped sealed_at (the merge gate reading at + // the display layer; the engine never merges). LOCAL-only probe to + // keep the status line fast. + const awaitingMerge = isAwaitingMerge(slug, { localOnly: true }) return { intent: slug, studio, stages: stageList.map((name) => ({ name, status: "done" as const })), activeStage: "", - phaseLabel: "sealed", - phaseKind: "sealed", - gated: false, + phaseLabel: awaitingMerge ? "pending seal" : "sealed", + phaseKind: awaitingMerge ? "pending_seal" : "sealed", + gated: awaitingMerge, aggregate: "", phaseTrack: null, itemBars: null, From 35b93b2a5f394760c3747aea2754f11ed20d4537 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 09:49:01 -0600 Subject: [PATCH 10/24] fix(browse): resolve unmerged-intent artifacts + make code inputs/outputs viewable The detail view loaded an intent's metadata from its haiku//main branch but then read each artifact's bytes from the DEFAULT branch (provider.readFile used this.branch, which is empty on a slug-only URL). An unmerged intent's deliverables don't exist on the default branch, so every output/input rendered "no file is on disk" (website) / "(empty)" (SPA) even though the files were right there on the intent branch. - Add an optional `ref` to BrowseProvider.readFile / resolveAssetUrl (GitLab + GitHub honor it; local ignores it). The detail views pass the intent's branch so artifacts resolve from where they actually live. - Thread intent.branch through IntentDetailView -> StageDetail/UnitOutputsSection (stage UNIT OUTPUTS) and -> UnitDetailView -> Artifacts/Refs sections (unit view). - Unit view: a declared output is either repo-root code (web/.../X.tsx) or intent-relative (stages/.../plan.md). It only ever tried the intent-relative shape; add the same as-is-then-intent-relative candidate resolution the stage view already used, so code outputs resolve too. - Code-type inputs/outputs are now clickable + syntax-highlighted: the unit view had its own narrow text allowlist that classified .tsx/.ts/.js as binary -> a dead download link. Switch to the shared FilePreview/isTextFile (CODE_LANG map -> hljs), so code opens in the doc modal highlighted like the stage view. Verified live (Playwright, GitLab monorepo, worker-new-badge intent): both the stage UNIT OUTPUTS rows and the unit-detail inputs/outputs resolve real content from the branch (no "no file on disk"), and WorkerDates.test.tsx opens with full TSX syntax highlighting (252 hljs tokens) on the unit view, 50 on the stage view. Co-Authored-By: Claude Opus 4.7 --- .../browse/components/IntentDetailView.tsx | 32 ++-- .../app/browse/components/UnitDetailView.tsx | 142 +++++++++++++----- website/lib/browse/github-provider.ts | 13 +- website/lib/browse/gitlab-provider.ts | 13 +- website/lib/browse/types.ts | 13 +- 5 files changed, 147 insertions(+), 66 deletions(-) diff --git a/website/app/browse/components/IntentDetailView.tsx b/website/app/browse/components/IntentDetailView.tsx index f84f6bccc..390b6e570 100644 --- a/website/app/browse/components/IntentDetailView.tsx +++ b/website/app/browse/components/IntentDetailView.tsx @@ -235,6 +235,7 @@ export function IntentDetailView({ intentMode={intent.mode} schemaIsV4={isV4Intent(intent.raw)} provider={provider} + intentBranch={intent.branch} assets={intent.assets} host={host || undefined} feedback={unitFeedback} @@ -517,6 +518,7 @@ export function IntentDetailView({ provider={provider} providerName={provider.name} slug={intent.slug} + intentBranch={intent.branch} studio={intent.studio} host={host || undefined} project={location?.project || ""} @@ -1171,7 +1173,6 @@ function ArtifactThumbnail({ return null } - /** Group a stage's artifacts by their top-level directory (`proof`, `artifacts`, * …). Files that sit directly at the stage root (no slash in the name) land in * the `(other)` group. Groups are sorted by name with `(other)` last so the @@ -1321,11 +1322,13 @@ function UnitOutputsSection({ host, provider, slug, + intentBranch, }: { units: HaikuUnit[] host?: string provider?: BrowseProvider slug: string + intentBranch?: string }) { // path → set of unit names that declare it const byOutput = new Map() @@ -1366,6 +1369,7 @@ function UnitOutputsSection({ host={host} provider={provider} slug={slug} + intentBranch={intentBranch} /> ))} @@ -1383,12 +1387,14 @@ function LazyOutputPreview({ host, provider, slug, + intentBranch, }: { path: string unitNames: string[] host?: string provider?: BrowseProvider slug: string + intentBranch?: string }) { const [open, setOpen] = useState(false) const [state, setState] = useState<{ @@ -1421,7 +1427,7 @@ function LazyOutputPreview({ if (isTextFile(path)) { let text: string | null = null for (const c of candidates) { - text = await provider.readFile(c) + text = await provider.readFile(c, intentBranch) if (text != null) break } setState({ @@ -1437,7 +1443,7 @@ function LazyOutputPreview({ let url: string | null = null if (provider.resolveAssetUrl) { for (const c of candidates) { - url = await provider.resolveAssetUrl(c) + url = await provider.resolveAssetUrl(c, intentBranch) if (url != null) break } } @@ -1460,7 +1466,7 @@ function LazyOutputPreview({ }) } })() - }, [open, provider, path, slug]) + }, [open, provider, path, slug, intentBranch]) return (
@@ -1483,9 +1489,7 @@ function LazyOutputPreview({ {open && (
- {state.loading && ( -

Loading…

- )} + {state.loading &&

Loading…

} {!state.loading && state.error && (

{state.error}

)} @@ -1642,6 +1646,7 @@ function StageDetail({ provider, providerName, slug, + intentBranch, studio, host, project, @@ -1652,6 +1657,9 @@ function StageDetail({ provider: BrowseProvider providerName: string slug: string + /** Branch the intent lives on (`haiku//main`); lazy output reads + * target it so an unmerged intent's deliverables resolve. */ + intentBranch?: string /** Studio slug — links the stage to its definition in the studio browser. */ studio: string host?: string @@ -1667,7 +1675,9 @@ function StageDetail({ const stageRoot = `.haiku/intents/${slug}/stages/${stage.name}` const artifactBaseDir = (name: string): string => { const slash = name.lastIndexOf("/") - return slash >= 0 ? `${stageRoot}/${name.slice(0, slash + 1)}` : `${stageRoot}/` + return slash >= 0 + ? `${stageRoot}/${name.slice(0, slash + 1)}` + : `${stageRoot}/` } const hasUnits = stage.units.length > 0 const hasArtifacts = (stage.artifacts?.length ?? 0) > 0 @@ -1932,6 +1942,7 @@ function StageDetail({ host={host} provider={provider} slug={slug} + intentBranch={intentBranch} /> {/* Per-stage OBSERVATIONS — the agent's free-form reflection written at stage close. Shown last; it's a retrospective. */} @@ -2342,7 +2353,10 @@ function FeedbackList({ "low", ] const sevCounts = Object.fromEntries( - SEVERITIES.map((s) => [s, statusVisible.filter((f) => f.severity === s).length]), + SEVERITIES.map((s) => [ + s, + statusVisible.filter((f) => f.severity === s).length, + ]), ) as Record<"blocker" | "high" | "medium" | "low", number> const hasSeverities = SEVERITIES.some((s) => sevCounts[s] > 0) return ( diff --git a/website/app/browse/components/UnitDetailView.tsx b/website/app/browse/components/UnitDetailView.tsx index bba403a3c..77ca61075 100644 --- a/website/app/browse/components/UnitDetailView.tsx +++ b/website/app/browse/components/UnitDetailView.tsx @@ -18,6 +18,7 @@ import type { import { formatDate, formatDuration } from "@/lib/browse/types" import { AssetLightbox } from "./AssetLightbox" import { AuthenticatedMedia } from "./AuthenticatedMedia" +import { FilePreview, isTextFile } from "./FilePreview" import { RESOLUTION_BADGES } from "./feedback-badges" import { FixHistory, HatHistory } from "./IterationHistory" import { RenderedHtmlFrame } from "./RenderedHtmlFrame" @@ -59,6 +60,10 @@ interface Props { * rather than fabricating a matrix of never-signed gates. */ schemaIsV4: boolean provider: BrowseProvider + /** Branch the intent lives on (`haiku//main`); artifact reads target + * it so an unmerged intent's inputs/outputs resolve from where they live, + * not the default branch. */ + intentBranch?: string assets?: HaikuAsset[] host?: string feedback?: HaikuFeedback[] @@ -74,6 +79,7 @@ export function UnitDetailView({ intentSlug, intentMode, provider, + intentBranch, assets = [], host, feedback = [], @@ -306,6 +312,7 @@ export function UnitDetailView({ paths={unit.inputs} intentSlug={intentSlug} provider={provider} + intentBranch={intentBranch} /> )} @@ -316,6 +323,7 @@ export function UnitDetailView({ paths={unit.outputs} intentSlug={intentSlug} provider={provider} + intentBranch={intentBranch} /> )} @@ -325,6 +333,7 @@ export function UnitDetailView({ refs={unit.refs} intentSlug={intentSlug} provider={provider} + intentBranch={intentBranch} assets={assets} host={host} /> @@ -508,34 +517,18 @@ function UnitFeedbackCard({ fb }: { fb: HaikuFeedback }) { ) } -const TEXT_EXTENSIONS = new Set([ - "md", - "json", - "yaml", - "yml", - "txt", - "toml", - "csv", - "xml", - "html", - "feature", -]) - -function isTextFile(path: string): boolean { - const ext = path.split(".").pop()?.toLowerCase() || "" - return TEXT_EXTENSIONS.has(ext) -} - function RefsSection({ refs, intentSlug, provider, + intentBranch, assets, host, }: { refs: string[] intentSlug: string provider: BrowseProvider + intentBranch?: string assets: HaikuAsset[] host?: string }) { @@ -573,6 +566,7 @@ function RefsSection({ ref_={ref} intentSlug={intentSlug} provider={provider} + intentBranch={intentBranch} /> ) } @@ -637,10 +631,12 @@ function TextRefItem({ ref_, intentSlug, provider, + intentBranch, }: { ref_: string intentSlug: string provider: BrowseProvider + intentBranch?: string }) { const [content, setContent] = useState(null) const [showModal, setShowModal] = useState(false) @@ -655,6 +651,7 @@ function TextRefItem({ if (content === null) { const raw = await provider.readFile( `.haiku/intents/${intentSlug}/${ref_}`, + intentBranch, ) setContent(raw || "(empty)") } @@ -774,9 +771,10 @@ function DocModal({ ) : filePath.endsWith(".feature") ? ( ) : ( -
-							{content}
-						
+ // Source / config / text — FilePreview syntax-highlights code + // (its CODE_LANG map drives hljs) and falls back to a plain + // block for anything unmapped. + )}
@@ -1118,6 +1116,46 @@ function dirOf(path: string): string { return path.includes("/") ? path.substring(0, path.lastIndexOf("/")) : "" } +/** A unit's declared input/output path is EITHER repo-root-relative (a code + * file the unit produced, e.g. `web/.../X.tsx`) OR intent-relative (a knowledge + * artifact, e.g. `stages//artifacts/plan.md`). Try as-is first (repo + * root), then resolved under the intent dir — same resolution the stage view's + * LazyOutputPreview uses, so both surfaces resolve both shapes. */ +function artifactCandidates(path: string, intentSlug: string): string[] { + if (path.startsWith(".haiku/")) return [path] + return [path, `.haiku/intents/${intentSlug}/${path}`] +} + +/** Read the first candidate that resolves, from the intent's branch. */ +async function readArtifact( + provider: BrowseProvider, + path: string, + intentSlug: string, + ref?: string, +): Promise { + for (const c of artifactCandidates(path, intentSlug)) { + const text = await provider.readFile(c, ref) + if (text != null) return text + } + return null +} + +/** Resolve the first candidate that yields a usable asset URL, from the + * intent's branch. */ +async function resolveArtifactUrl( + provider: BrowseProvider, + path: string, + intentSlug: string, + ref?: string, +): Promise { + if (!provider.resolveAssetUrl) return null + for (const c of artifactCandidates(path, intentSlug)) { + const url = await provider.resolveAssetUrl(c, ref) + if (url != null) return url + } + return null +} + /** * A unit's intent-relative artifact paths (`.haiku/intents//`), * made viewable — used for both `inputs` (consumed) and `outputs` (produced). @@ -1132,12 +1170,14 @@ function ArtifactsSection({ paths, intentSlug, provider, + intentBranch, }: { /** Singular section noun, e.g. "Output" / "Input". */ noun: string paths: string[] intentSlug: string provider: BrowseProvider + intentBranch?: string }) { const intentPrefix = `.haiku/intents/${intentSlug}/` const classified = paths.map((path) => ({ @@ -1164,16 +1204,18 @@ function ArtifactsSection({ ) : ( ), )} @@ -1191,15 +1233,17 @@ function ArtifactsSection({ ) : ( ), )} @@ -1214,24 +1258,26 @@ function ArtifactsSection({ * private git repo) and previews it; click to view fullscreen. */ function OutputImageCard({ path, - repoPath, + intentSlug, provider, + intentBranch, }: { path: string - repoPath: string + intentSlug: string provider: BrowseProvider + intentBranch?: string }) { const [url, setUrl] = useState(null) const [full, setFull] = useState(false) useEffect(() => { let cancelled = false - provider.resolveAssetUrl?.(repoPath).then((u) => { + resolveArtifactUrl(provider, path, intentSlug, intentBranch).then((u) => { if (!cancelled) setUrl(u) }) return () => { cancelled = true } - }, [repoPath, provider]) + }, [path, intentSlug, provider, intentBranch]) return ( <> + ) : ( + + {roleLabel(role)} + + )} {signedAt ? formatDate(signedAt) : signed ? "signed" : "pending"} @@ -1168,6 +1165,15 @@ function SignOffGroup({ ))} + {def && ( + setDef(null)} + /> + )} ) } diff --git a/website/app/browse/components/studio-defs.ts b/website/app/browse/components/studio-defs.ts new file mode 100644 index 000000000..d8e8c34c7 --- /dev/null +++ b/website/app/browse/components/studio-defs.ts @@ -0,0 +1,63 @@ +// Lazy client loader for bundled studio definitions (review-agent + hat +// mandate bodies). They're built from plugin/studios into the static +// /prototype-stage-content.json (the same file the architecture map reads), so +// the browse detail view can open an agent's mandate in a modal without a +// round-trip to the studio stage page. Static-export friendly: a plain fetch +// of a public asset, cached module-level. + +interface AgentDef { + body?: string + content?: string + path?: string +} +interface StageContent { + reviewAgents?: Record +} +interface StudioContent { + stages?: Record +} +interface StageContentRoot { + studios?: Record +} + +let cache: Promise | null = null + +function loadStageContent(): Promise { + if (!cache) { + cache = fetch("/prototype-stage-content.json") + .then((r) => (r.ok ? (r.json() as Promise) : null)) + .catch(() => null) + } + return cache +} + +export interface ReviewAgentDef { + body: string + path: string | null +} + +/** Resolve a review/approval agent's mandate body for (studio, stage, role). + * Tries the named stage first, then any stage in the studio (a borrowed + * agent's def lives on its home stage). Returns null when the role ships no + * def — engine roles (spec/continuity/…) and the user/quality-gate slots. */ +export async function loadReviewAgentDef( + studio: string, + stage: string, + role: string, +): Promise { + const content = await loadStageContent() + const stages = content?.studios?.[studio]?.stages + if (!stages) return null + const pick = (sc?: StageContent): ReviewAgentDef | null => { + const def = sc?.reviewAgents?.[role] + const body = def?.body ?? def?.content + return body ? { body, path: def?.path ?? null } : null + } + const direct = pick(stages[stage]) + if (direct) return direct + for (const sc of Object.values(stages)) { + const hit = pick(sc) + if (hit) return hit + } + return null +} From 5e6eca4f2e455c04eae05404196971f62b4b8067 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 10:11:19 -0600 Subject: [PATCH 15/24] chore(pending-seal): note branch-sync in the prompt + rebuild the bundle The engine already merges the default branch into the hub branch every tick/pickup and surfaces genuine conflicts as pre_cursor_sync_conflict, so no new conflict-resolve mechanics are needed (confirmed). The pending_seal prompt now says the branch was kept current and to resolve any surfaced conflict. Also rebuilds plugin/bin/haiku.mjs (v10) so the committed bundle matches the Part 1 engine changes. Co-Authored-By: Claude Opus 4.7 (1M context) --- plugin/bin/haiku.mjs | 698 +++++++++--------- .../intent/seal/pending_seal/template.eta.md | 4 +- 2 files changed, 352 insertions(+), 350 deletions(-) diff --git a/plugin/bin/haiku.mjs b/plugin/bin/haiku.mjs index bcb0a6190..8db793422 100755 --- a/plugin/bin/haiku.mjs +++ b/plugin/bin/haiku.mjs @@ -1,45 +1,45 @@ #!/usr/bin/env node import{createRequire}from"module";const require=createRequire(import.meta.url); -var eMt=Object.create;var nF=Object.defineProperty;var tMt=Object.getOwnPropertyDescriptor;var nMt=Object.getOwnPropertyNames;var rMt=Object.getPrototypeOf,iMt=Object.prototype.hasOwnProperty;var K=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ar=(e,t)=>{for(var n in t)nF(e,n,{get:t[n],enumerable:!0})},Cve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of nMt(t))!iMt.call(e,i)&&i!==n&&nF(e,i,{get:()=>t[i],enumerable:!(r=tMt(t,i))||r.enumerable});return e};var Re=(e,t,n)=>(n=e!=null?eMt(rMt(e)):{},Cve(t||!e||!e.__esModule?nF(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Cve(nF({},"__esModule",{value:!0}),e);var am,p8=v(()=>{am="1.9.1"});function sMt(e){let t=new Set([e]),n=new Set,r=e.match(Mve);if(!r)return()=>!1;let i={major:+r[1],minor:+r[2],patch:+r[3],prerelease:r[4]};if(i.prerelease!=null)return function(c){return c===e};function s(a){return n.add(a),!1}function o(a){return t.add(a),!0}return function(c){if(t.has(c))return!0;if(n.has(c))return!1;let u=c.match(Mve);if(!u)return s(c);let l={major:+u[1],minor:+u[2],patch:+u[3],prerelease:u[4]};return l.prerelease!=null||i.major!==l.major?s(c):i.major===0?i.minor===l.minor&&i.patch<=l.patch?o(c):s(c):i.minor<=l.minor?o(c):s(c)}}var Mve,Dve,Lve=v(()=>{p8();Mve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Dve=sMt(am)});function Ap(e,t,n,r=!1){var i;let s=oO[sO]=(i=oO[sO])!==null&&i!==void 0?i:{version:am};if(!r&&s[e]){let o=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return n.error(o.stack||o.message),!1}if(s.version!==am){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${am}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${am}.`),!0}function rl(e){var t,n;let r=(t=oO[sO])===null||t===void 0?void 0:t.version;if(!(!r||!Dve(r)))return(n=oO[sO])===null||n===void 0?void 0:n[e]}function wp(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${am}.`);let n=oO[sO];n&&delete n[e]}var oMt,sO,oO,dE=v(()=>{p8();Lve();oMt=am.split(".")[0],sO=Symbol.for(`opentelemetry.js.api.${oMt}`),oO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function aO(e,t,n){let r=rl("diag");if(r)return r[e](t,...n)}var rF,Uve=v(()=>{dE();rF=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return aO("debug",this._namespace,t)}error(...t){return aO("error",this._namespace,t)}info(...t){return aO("info",this._namespace,t)}warn(...t){return aO("warn",this._namespace,t)}verbose(...t){return aO("verbose",this._namespace,t)}}});var ho,iF=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(ho||(ho={}))});function Fve(e,t){eho.ALL&&(e=ho.ALL),t=t||{};function n(r,i){let s=t[r];return typeof s=="function"&&e>=i?s.bind(t):function(){}}return{error:n("error",ho.ERROR),warn:n("warn",ho.WARN),info:n("info",ho.INFO),debug:n("debug",ho.DEBUG),verbose:n("verbose",ho.VERBOSE)}}var jve=v(()=>{iF()});var aMt,Po,fE=v(()=>{Uve();jve();iF();dE();aMt="diag",Po=class e{static instance(){return this._instance||(this._instance=new e),this._instance}constructor(){function t(i){return function(...s){let o=rl("diag");if(o)return o[i](...s)}}let n=this,r=(i,s={logLevel:ho.INFO})=>{var o,a,c;if(i===n){let d=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return n.error((o=d.stack)!==null&&o!==void 0?o:d.message),!1}typeof s=="number"&&(s={logLevel:s});let u=rl("diag"),l=Fve((a=s.logLevel)!==null&&a!==void 0?a:ho.INFO,i);if(u&&!s.suppressOverrideMessage){let d=(c=new Error().stack)!==null&&c!==void 0?c:"";u.warn(`Current logger will be overwritten from ${d}`),l.warn(`Current logger will overwrite one already registered from ${d}`)}return Ap("diag",l,n,!0)};n.setLogger=r,n.disable=()=>{wp(aMt,n)},n.createComponentLogger=i=>new rF(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var sF,Hve=v(()=>{sF=class e{constructor(t){this._entries=t?new Map(t):new Map}getEntry(t){let n=this._entries.get(t);if(n)return Object.assign({},n)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(t,n){let r=new e(this._entries);return r._entries.set(t,n),r}removeEntry(t){let n=new e(this._entries);return n._entries.delete(t),n}removeEntries(...t){let n=new e(this._entries);for(let r of t)n._entries.delete(r);return n}clear(){return new e}}});var qve,Bve=v(()=>{qve=Symbol("BaggageEntryMetadata")});function zve(e={}){return new sF(new Map(Object.entries(e)))}function Gve(e){return typeof e!="string"&&(cMt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:qve,toString(){return e}}}var cMt,h8=v(()=>{fE();Hve();Bve();cMt=Po.instance()});function il(e){return Symbol.for(e)}var m8,sR,cO=v(()=>{m8=class e{constructor(t){let n=this;n._currentContext=t?new Map(t):new Map,n.getValue=r=>n._currentContext.get(r),n.setValue=(r,i)=>{let s=new e(n._currentContext);return s._currentContext.set(r,i),s},n.deleteValue=r=>{let i=new e(n._currentContext);return i._currentContext.delete(r),i}}},sR=new m8});var g8,y8,oF,Vve=v(()=>{g8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],y8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(y8[t]=console[t])}oF=class{constructor(){function t(n){return function(...r){let i=y8[n];if(typeof i!="function"&&(i=y8.log),typeof i!="function"&&console&&(i=console[n],typeof i!="function"&&(i=console.log)),typeof i=="function")return i.apply(console,r)}}for(let n=0;n{S8=class{constructor(){}createGauge(t,n){return lMt}createHistogram(t,n){return dMt}createCounter(t,n){return uMt}createUpDownCounter(t,n){return fMt}createObservableGauge(t,n){return hMt}createObservableCounter(t,n){return pMt}createObservableUpDownCounter(t,n){return mMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},oR=class{},b8=class extends oR{add(t,n){}},E8=class extends oR{add(t,n){}},_8=class extends oR{record(t,n){}},T8=class extends oR{record(t,n){}},uO=class{addCallback(t){}removeCallback(t){}},v8=class extends uO{},R8=class extends uO{},A8=class extends uO{},w8=new S8,uMt=new b8,lMt=new _8,dMt=new T8,fMt=new E8,pMt=new v8,hMt=new R8,mMt=new A8});var aF,Kve=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(aF||(aF={}))});var cF,uF,I8=v(()=>{cF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},uF={set(e,t,n){e!=null&&(e[t]=n)}}});var lF,Yve=v(()=>{cO();lF=class{active(){return sR}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var x8,gMt,kp,lO=v(()=>{Yve();dE();fE();x8="context",gMt=new lF,kp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(x8,t,Po.instance())}active(){return this._getContextManager().active()}with(t,n,r,...i){return this._getContextManager().with(t,n,r,...i)}bind(t,n){return this._getContextManager().bind(t,n)}_getContextManager(){return rl(x8)||gMt}disable(){this._getContextManager().disable(),wp(x8,Po.instance())}}});var qa,O8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(qa||(qa={}))});var dO,pE,dF,fF=v(()=>{O8();dO="0000000000000000",pE="00000000000000000000000000000000",dF={traceId:pE,spanId:dO,traceFlags:qa.NONE}});var Ip,pF=v(()=>{fF();Ip=class{constructor(t=dF){this._spanContext=t}spanContext(){return this._spanContext}setAttribute(t,n){return this}setAttributes(t){return this}addEvent(t,n){return this}addLink(t){return this}addLinks(t){return this}setStatus(t){return this}updateName(t){return this}end(t){}isRecording(){return!1}recordException(t,n){}}});function hF(e){return e.getValue(P8)||void 0}function Zve(){return hF(kp.getInstance().active())}function fO(e,t){return e.setValue(P8,t)}function Jve(e){return e.deleteValue(P8)}function Xve(e,t){return fO(e,new Ip(t))}function mF(e){var t;return(t=hF(e))===null||t===void 0?void 0:t.spanContext()}var P8,N8=v(()=>{cO();pF();lO();P8=il("OpenTelemetry Context Key SPAN")});function Qve(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{fF();pF();gF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1])});function yMt(e){return e!==null&&typeof e=="object"&&"spanId"in e&&typeof e.spanId=="string"&&"traceId"in e&&typeof e.traceId=="string"&&"traceFlags"in e&&typeof e.traceFlags=="number"}var D8,aR,L8=v(()=>{lO();N8();pF();yF();D8=kp.getInstance(),aR=class{startSpan(t,n,r=D8.active()){if(!!n?.root)return new Ip;let s=r&&mF(r);return yMt(s)&&cm(s)?new Ip(s):new Ip}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??D8.active(),u=this.startSpan(t,s,c),l=fO(c,u);return D8.with(l,a,void 0,u)}}});var SMt,cR,U8=v(()=>{L8();SMt=new aR,cR=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}startSpan(t,n,r){return this._getTracer().startSpan(t,n,r)}startActiveSpan(t,n,r,i){let s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)}_getTracer(){if(this._delegate)return this._delegate;let t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):SMt}}});var SF,eRe=v(()=>{L8();SF=class{getTracer(t,n,r){return new aR}}});var bMt,hE,F8=v(()=>{U8();eRe();bMt=new SF,hE=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new cR(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:bMt}setDelegate(t){this._delegate=t}getDelegateTracer(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getTracer(t,n,r)}}});var bF,tRe=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(bF||(bF={}))});var $r,nRe=v(()=>{(function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"})($r||($r={}))});var as,rRe=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function iRe(e){return TMt.test(e)}function sRe(e){return vMt.test(e)&&!RMt.test(e)}var j8,EMt,_Mt,TMt,vMt,RMt,oRe=v(()=>{j8="[_0-9a-z-*/]",EMt=`[a-z]${j8}{0,255}`,_Mt=`[a-z0-9]${j8}{0,240}@[a-z]${j8}{0,13}`,TMt=new RegExp(`^(?:${EMt}|${_Mt})$`),vMt=/^[ -~]{0,255}[!-~]$/,RMt=/,|=/});var aRe,AMt,cRe,uRe,EF,lRe=v(()=>{oRe();aRe=32,AMt=512,cRe=",",uRe="=",EF=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,n){let r=this._clone();return r._internalState.has(t)&&r._internalState.delete(t),r._internalState.set(t,n),r}unset(t){let n=this._clone();return n._internalState.delete(t),n}get(t){return this._internalState.get(t)}serialize(){return Array.from(this._internalState.keys()).reduceRight((t,n)=>(t.push(n+uRe+this.get(n)),t),[]).join(cRe)}_parse(t){t.length>AMt||(this._internalState=t.split(cRe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(uRe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);iRe(o)&&sRe(a)&&n.set(o,a)}return n},new Map),this._internalState.size>aRe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,aRe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function dRe(e){return new EF(e)}var fRe=v(()=>{lRe()});var Ve,pRe=v(()=>{lO();Ve=kp.getInstance()});var sl,hRe=v(()=>{fE();sl=Po.instance()});var H8,mRe,gRe=v(()=>{k8();H8=class{getMeter(t,n,r){return w8}},mRe=new H8});var q8,_F,yRe=v(()=>{gRe();dE();fE();q8="metrics",_F=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(q8,t,Po.instance())}getMeterProvider(){return rl(q8)||mRe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){wp(q8,Po.instance())}}});var B8,SRe=v(()=>{yRe();B8=_F.getInstance()});var TF,bRe=v(()=>{TF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function G8(e){return e.getValue(z8)||void 0}function ERe(){return G8(kp.getInstance().active())}function _Re(e,t){return e.setValue(z8,t)}function TRe(e){return e.deleteValue(z8)}var z8,vRe=v(()=>{lO();cO();z8=il("OpenTelemetry Baggage Key")});var V8,wMt,vF,RRe=v(()=>{dE();bRe();I8();vRe();h8();fE();V8="propagation",wMt=new TF,vF=class e{constructor(){this.createBaggage=zve,this.getBaggage=G8,this.getActiveBaggage=ERe,this.setBaggage=_Re,this.deleteBaggage=TRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(V8,t,Po.instance())}inject(t,n,r=uF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=cF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){wp(V8,Po.instance())}_getGlobalPropagator(){return rl(V8)||wMt}}});var Qd,ARe=v(()=>{RRe();Qd=vF.getInstance()});var W8,RF,wRe=v(()=>{dE();F8();yF();N8();fE();W8="trace",RF=class e{constructor(){this._proxyTracerProvider=new hE,this.wrapSpanContext=$ve,this.isSpanContextValid=cm,this.deleteSpan=Jve,this.getSpan=hF,this.getActiveSpan=Zve,this.getSpanContext=mF,this.setSpan=fO,this.setSpanContext=Xve}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(W8,this._proxyTracerProvider,Po.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return rl(W8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){wp(W8,Po.instance()),this._proxyTracerProvider=new hE}}});var jt,kRe=v(()=>{wRe();jt=RF.getInstance()});var Ze={};Ar(Ze,{DiagConsoleLogger:()=>oF,DiagLogLevel:()=>ho,INVALID_SPANID:()=>dO,INVALID_SPAN_CONTEXT:()=>dF,INVALID_TRACEID:()=>pE,ProxyTracer:()=>cR,ProxyTracerProvider:()=>hE,ROOT_CONTEXT:()=>sR,SamplingDecision:()=>bF,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>qa,ValueType:()=>aF,baggageEntryMetadataFromString:()=>Gve,context:()=>Ve,createContextKey:()=>il,createNoopMeter:()=>Wve,createTraceState:()=>dRe,default:()=>kMt,defaultTextMapGetter:()=>cF,defaultTextMapSetter:()=>uF,diag:()=>sl,isSpanContextValid:()=>cm,isValidSpanId:()=>M8,isValidTraceId:()=>C8,metrics:()=>B8,propagation:()=>Qd,trace:()=>jt});var kMt,Ce=v(()=>{h8();cO();Vve();iF();k8();Kve();I8();U8();F8();tRe();nRe();rRe();O8();fRe();yF();fF();pRe();hRe();SRe();ARe();kRe();kMt={context:Ve,diag:sl,metrics:B8,propagation:Qd,trace:jt}});var pO=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.isTracingSuppressed=ly.unsuppressTracing=ly.suppressTracing=void 0;var IMt=(Ce(),ke(Ze)),K8=(0,IMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function xMt(e){return e.setValue(K8,!0)}ly.suppressTracing=xMt;function OMt(e){return e.deleteValue(K8)}ly.unsuppressTracing=OMt;function PMt(e){return e.getValue(K8)===!0}ly.isTracingSuppressed=PMt});var Y8=w(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.BAGGAGE_MAX_TOTAL_LENGTH=Ba.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=Ba.BAGGAGE_MAX_NAME_VALUE_PAIRS=Ba.BAGGAGE_HEADER=Ba.BAGGAGE_ITEMS_SEPARATOR=Ba.BAGGAGE_PROPERTIES_SEPARATOR=Ba.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;Ba.BAGGAGE_KEY_PAIR_SEPARATOR="=";Ba.BAGGAGE_PROPERTIES_SEPARATOR=";";Ba.BAGGAGE_ITEMS_SEPARATOR=",";Ba.BAGGAGE_HEADER="baggage";Ba.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;Ba.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;Ba.BAGGAGE_MAX_TOTAL_LENGTH=8192});var Z8=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.parseKeyPairsIntoRecord=xp.parsePairKeyValue=xp.getKeyPairs=xp.serializeKeyPairs=void 0;var NMt=(Ce(),ke(Ze)),uR=Y8();function CMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?uR.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>uR.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}xp.serializeKeyPairs=CMt;function MMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=uR.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}xp.getKeyPairs=MMt;function IRe(e){if(!e)return;let t=e.indexOf(uR.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(uR.BAGGAGE_KEY_PAIR_SEPARATOR);if(r<=0)return;let i=n.substring(0,r).trim(),s=n.substring(r+1).trim();if(!i||!s)return;let o,a;try{o=decodeURIComponent(i),a=decodeURIComponent(s)}catch{return}let c;if(t!==-1&&t0&&e.split(uR.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=IRe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}xp.parseKeyPairsIntoRecord=DMt});var xRe=w(AF=>{"use strict";Object.defineProperty(AF,"__esModule",{value:!0});AF.W3CBaggagePropagator=void 0;var J8=(Ce(),ke(Ze)),LMt=pO(),mE=Y8(),X8=Z8(),Q8=class{inject(t,n,r){let i=J8.propagation.getBaggage(t);if(!i||(0,LMt.isTracingSuppressed)(t))return;let s=(0,X8.getKeyPairs)(i).filter(a=>a.length<=mE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,mE.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,X8.serializeKeyPairs)(s);o.length>0&&r.set(n,mE.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,mE.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(mE.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(mE.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,X8.parsePairKeyValue)(c);if(u){let l={value:u.value};u.metadata&&(l.metadata=u.metadata),o[u.key]=l}}),Object.entries(o).length===0)?t:J8.propagation.setBaggage(t,J8.propagation.createBaggage(o))}fields(){return[mE.BAGGAGE_HEADER]}};AF.W3CBaggagePropagator=Q8});var ORe=w(wF=>{"use strict";Object.defineProperty(wF,"__esModule",{value:!0});wF.AnchoredClock=void 0;var $8=class{_monotonicClock;_epochMillis;_performanceMillis;constructor(t,n){this._monotonicClock=n,this._epochMillis=t.now(),this._performanceMillis=n.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};wF.AnchoredClock=$8});var DRe=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.isAttributeValue=dy.isAttributeKey=dy.sanitizeAttributes=void 0;var PRe=(Ce(),ke(Ze));function UMt(e){let t={};if(typeof e!="object"||e==null)return t;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if(!NRe(n)){PRe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!CRe(r)){PRe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}dy.sanitizeAttributes=UMt;function NRe(e){return typeof e=="string"&&e!==""}dy.isAttributeKey=NRe;function CRe(e){return e==null?!0:Array.isArray(e)?FMt(e):MRe(typeof e)}dy.isAttributeValue=CRe;function FMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(MRe(r)){t=r;continue}return!1}return!1}}return!0}function MRe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var e7=w(kF=>{"use strict";Object.defineProperty(kF,"__esModule",{value:!0});kF.loggingErrorHandler=void 0;var jMt=(Ce(),ke(Ze));function HMt(){return e=>{jMt.diag.error(qMt(e))}}kF.loggingErrorHandler=HMt;function qMt(e){return typeof e=="string"?e:JSON.stringify(BMt(e))}function BMt(e){let t={},n=e;for(;n!==null;)Object.getOwnPropertyNames(n).forEach(r=>{if(t[r])return;let i=n[r];i&&(t[r]=String(i))}),n=Object.getPrototypeOf(n);return t}});var URe=w(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});lR.globalErrorHandler=lR.setGlobalErrorHandler=void 0;var zMt=e7(),LRe=(0,zMt.loggingErrorHandler)();function GMt(e){LRe=e}lR.setGlobalErrorHandler=GMt;function VMt(e){try{LRe(e)}catch{}}lR.globalErrorHandler=VMt});var qRe=w(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.getStringListFromEnv=Op.getBooleanFromEnv=Op.getStringFromEnv=Op.getNumberFromEnv=void 0;var FRe=(Ce(),ke(Ze)),jRe=K("util");function WMt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){FRe.diag.warn(`Unknown value ${(0,jRe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}Op.getNumberFromEnv=WMt;function HRe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}Op.getStringFromEnv=HRe;function KMt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||FRe.diag.warn(`Unknown value ${(0,jRe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}Op.getBooleanFromEnv=KMt;function YMt(e){return HRe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}Op.getStringListFromEnv=YMt});var BRe=w(IF=>{"use strict";Object.defineProperty(IF,"__esModule",{value:!0});IF._globalThis=void 0;IF._globalThis=globalThis});var zRe=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.VERSION=void 0;xF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var GRe,VRe,WRe,KRe,YRe,ZRe,JRe,XRe,QRe,$Re,eAe,tAe,nAe,rAe,iAe,sAe,oAe,aAe,cAe,uAe,lAe,dAe,fAe,pAe,hAe,mAe,gAe,yAe,SAe,bAe,EAe,_Ae,TAe,vAe,RAe,AAe,wAe,kAe,IAe,xAe,OAe,PAe,NAe,CAe,MAe,DAe,LAe,UAe,FAe,jAe,HAe,qAe,BAe,zAe,GAe,VAe,WAe,KAe,YAe,ZAe,JAe,XAe,QAe,$Ae,ewe,twe,nwe,rwe,iwe,swe,owe,awe,cwe,uwe,lwe,dwe,fwe,pwe,hwe,mwe,gwe,ywe,Swe,bwe,Ewe,_we,Twe,vwe,Rwe,Awe,wwe,kwe,Iwe,xwe,Owe,Pwe,Nwe,Cwe,Mwe,Dwe,Lwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,zwe,Gwe,Vwe,Wwe,Kwe,Ywe,Zwe,Jwe,Xwe,Qwe,$we,eke,tke,nke,rke,ike,ske,oke,ake,cke,uke,ZMt,n7,JMt,XMt,QMt,$Mt,r7,eDt,tDt,nDt,rDt,iDt,sDt,oDt,aDt,cDt,uDt,lDt,dDt,fDt,pDt,hDt,mDt,gDt,yDt,i7,SDt,bDt,EDt,_Dt,TDt,vDt,RDt,ADt,wDt,kDt,IDt,xDt,s7,ODt,PDt,o7,a7,NDt,CDt,MDt,DDt,LDt,UDt,FDt,jDt,HDt,qDt,BDt,zDt,GDt,VDt,WDt,KDt,YDt,hO,dR,c7,ZDt,JDt,gE,XDt,QDt,$Dt,eLt,u7,l7,tLt,d7,nLt,rLt,iLt,sLt,oLt,aLt,cLt,uLt,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,bLt,ELt,_Lt,TLt,vLt,RLt,f7,ALt,wLt,kLt,ILt,xLt,OLt,PLt,NLt,CLt,MLt,DLt,LLt,ULt,FLt,jLt,HLt,qLt,BLt,zLt,p7,GLt,h7,VLt,WLt,KLt,YLt,ZLt,JLt,XLt,QLt,$Lt,lke,dke,fke,pke,hke,mke,gke,yke,Ske,bke,Eke,_ke,Tke,vke,Rke,Ake,wke,kke,Ike,xke,Oke,Pke,Nke,Cke,Mke,Dke,Lke,Uke,Fke,jke,Hke,qke,Bke,zke,Gke,Vke,Wke,Kke,Yke,Zke,Jke,Xke,Qke,$ke,eIe,tIe,nIe,e1t,t1t,n1t,r1t,i1t,s1t,o1t,a1t,c1t,u1t,l1t,d1t,f1t,p1t,h1t,m1t,g1t,y1t,S1t,b1t,E1t,_1t,T1t,v1t,R1t,A1t,w1t,k1t,I1t,x1t,O1t,P1t,N1t,C1t,M1t,D1t,L1t,U1t,F1t,j1t,H1t,q1t,B1t,z1t,G1t,V1t,W1t,K1t,rIe,iIe,sIe,oIe,aIe,cIe,uIe,lIe,dIe,fIe,pIe,Y1t,Z1t,J1t,X1t,Q1t,$1t,eUt,tUt,nUt,rUt,iUt,sUt,hIe,mIe,gIe,yIe,SIe,oUt,aUt,cUt,uUt,lUt,dUt,bIe,EIe,_Ie,fUt,pUt,hUt,mUt,TIe,vIe,RIe,AIe,gUt,yUt,SUt,bUt,EUt,wIe,kIe,IIe,xIe,OIe,PIe,NIe,_Ut,TUt,vUt,RUt,AUt,wUt,kUt,IUt,CIe,MIe,DIe,LIe,UIe,xUt,OUt,PUt,NUt,CUt,MUt,FIe,jIe,HIe,qIe,BIe,zIe,GIe,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,DUt,LUt,UUt,FUt,jUt,HUt,qUt,BUt,zUt,GUt,VUt,WUt,KUt,YUt,ZUt,JUt,XUt,QUt,$Ut,eFt,tFt,nFt,s0e,o0e,a0e,c0e,u0e,rFt,iFt,sFt,oFt,aFt,cFt,l0e,d0e,uFt,lFt,dFt,f0e,p0e,fFt,pFt,hFt,h0e,m0e,g0e,y0e,S0e,b0e,E0e,_0e,T0e,v0e,R0e,A0e,w0e,k0e,I0e,x0e,O0e,mFt,gFt,yFt,SFt,bFt,EFt,_Ft,TFt,vFt,RFt,AFt,wFt,kFt,IFt,xFt,OFt,PFt,NFt,P0e,N0e,CFt,MFt,DFt,C0e=v(()=>{t7();GRe="aws.lambda.invoked_arn",VRe="db.system",WRe="db.connection_string",KRe="db.user",YRe="db.jdbc.driver_classname",ZRe="db.name",JRe="db.statement",XRe="db.operation",QRe="db.mssql.instance_name",$Re="db.cassandra.keyspace",eAe="db.cassandra.page_size",tAe="db.cassandra.consistency_level",nAe="db.cassandra.table",rAe="db.cassandra.idempotence",iAe="db.cassandra.speculative_execution_count",sAe="db.cassandra.coordinator.id",oAe="db.cassandra.coordinator.dc",aAe="db.hbase.namespace",cAe="db.redis.database_index",uAe="db.mongodb.collection",lAe="db.sql.table",dAe="exception.type",fAe="exception.message",pAe="exception.stacktrace",hAe="exception.escaped",mAe="faas.trigger",gAe="faas.execution",yAe="faas.document.collection",SAe="faas.document.operation",bAe="faas.document.time",EAe="faas.document.name",_Ae="faas.time",TAe="faas.cron",vAe="faas.coldstart",RAe="faas.invoked_name",AAe="faas.invoked_provider",wAe="faas.invoked_region",kAe="net.transport",IAe="net.peer.ip",xAe="net.peer.port",OAe="net.peer.name",PAe="net.host.ip",NAe="net.host.port",CAe="net.host.name",MAe="net.host.connection.type",DAe="net.host.connection.subtype",LAe="net.host.carrier.name",UAe="net.host.carrier.mcc",FAe="net.host.carrier.mnc",jAe="net.host.carrier.icc",HAe="peer.service",qAe="enduser.id",BAe="enduser.role",zAe="enduser.scope",GAe="thread.id",VAe="thread.name",WAe="code.function",KAe="code.namespace",YAe="code.filepath",ZAe="code.lineno",JAe="http.method",XAe="http.url",QAe="http.target",$Ae="http.host",ewe="http.scheme",twe="http.status_code",nwe="http.flavor",rwe="http.user_agent",iwe="http.request_content_length",swe="http.request_content_length_uncompressed",owe="http.response_content_length",awe="http.response_content_length_uncompressed",cwe="http.server_name",uwe="http.route",lwe="http.client_ip",dwe="aws.dynamodb.table_names",fwe="aws.dynamodb.consumed_capacity",pwe="aws.dynamodb.item_collection_metrics",hwe="aws.dynamodb.provisioned_read_capacity",mwe="aws.dynamodb.provisioned_write_capacity",gwe="aws.dynamodb.consistent_read",ywe="aws.dynamodb.projection",Swe="aws.dynamodb.limit",bwe="aws.dynamodb.attributes_to_get",Ewe="aws.dynamodb.index_name",_we="aws.dynamodb.select",Twe="aws.dynamodb.global_secondary_indexes",vwe="aws.dynamodb.local_secondary_indexes",Rwe="aws.dynamodb.exclusive_start_table",Awe="aws.dynamodb.table_count",wwe="aws.dynamodb.scan_forward",kwe="aws.dynamodb.segment",Iwe="aws.dynamodb.total_segments",xwe="aws.dynamodb.count",Owe="aws.dynamodb.scanned_count",Pwe="aws.dynamodb.attribute_definitions",Nwe="aws.dynamodb.global_secondary_index_updates",Cwe="messaging.system",Mwe="messaging.destination",Dwe="messaging.destination_kind",Lwe="messaging.temp_destination",Uwe="messaging.protocol",Fwe="messaging.protocol_version",jwe="messaging.url",Hwe="messaging.message_id",qwe="messaging.conversation_id",Bwe="messaging.message_payload_size_bytes",zwe="messaging.message_payload_compressed_size_bytes",Gwe="messaging.operation",Vwe="messaging.consumer_id",Wwe="messaging.rabbitmq.routing_key",Kwe="messaging.kafka.message_key",Ywe="messaging.kafka.consumer_group",Zwe="messaging.kafka.client_id",Jwe="messaging.kafka.partition",Xwe="messaging.kafka.tombstone",Qwe="rpc.system",$we="rpc.service",eke="rpc.method",tke="rpc.grpc.status_code",nke="rpc.jsonrpc.version",rke="rpc.jsonrpc.request_id",ike="rpc.jsonrpc.error_code",ske="rpc.jsonrpc.error_message",oke="message.type",ake="message.id",cke="message.compressed_size",uke="message.uncompressed_size",ZMt=GRe,n7=VRe,JMt=WRe,XMt=KRe,QMt=YRe,$Mt=ZRe,r7=JRe,eDt=XRe,tDt=QRe,nDt=$Re,rDt=eAe,iDt=tAe,sDt=nAe,oDt=rAe,aDt=iAe,cDt=sAe,uDt=oAe,lDt=aAe,dDt=cAe,fDt=uAe,pDt=lAe,hDt=dAe,mDt=fAe,gDt=pAe,yDt=hAe,i7=mAe,SDt=gAe,bDt=yAe,EDt=SAe,_Dt=bAe,TDt=EAe,vDt=_Ae,RDt=TAe,ADt=vAe,wDt=RAe,kDt=AAe,IDt=wAe,xDt=kAe,s7=IAe,ODt=xAe,PDt=OAe,o7=PAe,a7=NAe,NDt=CAe,CDt=MAe,MDt=DAe,DDt=LAe,LDt=UAe,UDt=FAe,FDt=jAe,jDt=HAe,HDt=qAe,qDt=BAe,BDt=zAe,zDt=GAe,GDt=VAe,VDt=WAe,WDt=KAe,KDt=YAe,YDt=ZAe,hO=JAe,dR=XAe,c7=QAe,ZDt=$Ae,JDt=ewe,gE=twe,XDt=nwe,QDt=rwe,$Dt=iwe,eLt=swe,u7=owe,l7=awe,tLt=cwe,d7=uwe,nLt=lwe,rLt=dwe,iLt=fwe,sLt=pwe,oLt=hwe,aLt=mwe,cLt=gwe,uLt=ywe,lLt=Swe,dLt=bwe,fLt=Ewe,pLt=_we,hLt=Twe,mLt=vwe,gLt=Rwe,yLt=Awe,SLt=wwe,bLt=kwe,ELt=Iwe,_Lt=xwe,TLt=Owe,vLt=Pwe,RLt=Nwe,f7=Cwe,ALt=Mwe,wLt=Dwe,kLt=Lwe,ILt=Uwe,xLt=Fwe,OLt=jwe,PLt=Hwe,NLt=qwe,CLt=Bwe,MLt=zwe,DLt=Gwe,LLt=Vwe,ULt=Wwe,FLt=Kwe,jLt=Ywe,HLt=Zwe,qLt=Jwe,BLt=Xwe,zLt=Qwe,p7=$we,GLt=eke,h7=tke,VLt=nke,WLt=rke,KLt=ike,YLt=ske,ZLt=oke,JLt=ake,XLt=cke,QLt=uke,$Lt=ws([GRe,VRe,WRe,KRe,YRe,ZRe,JRe,XRe,QRe,$Re,eAe,tAe,nAe,rAe,iAe,sAe,oAe,aAe,cAe,uAe,lAe,dAe,fAe,pAe,hAe,mAe,gAe,yAe,SAe,bAe,EAe,_Ae,TAe,vAe,RAe,AAe,wAe,kAe,IAe,xAe,OAe,PAe,NAe,CAe,MAe,DAe,LAe,UAe,FAe,jAe,HAe,qAe,BAe,zAe,GAe,VAe,WAe,KAe,YAe,ZAe,JAe,XAe,QAe,$Ae,ewe,twe,nwe,rwe,iwe,swe,owe,awe,cwe,uwe,lwe,dwe,fwe,pwe,hwe,mwe,gwe,ywe,Swe,bwe,Ewe,_we,Twe,vwe,Rwe,Awe,wwe,kwe,Iwe,xwe,Owe,Pwe,Nwe,Cwe,Mwe,Dwe,Lwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,zwe,Gwe,Vwe,Wwe,Kwe,Ywe,Zwe,Jwe,Xwe,Qwe,$we,eke,tke,nke,rke,ike,ske,oke,ake,cke,uke]),lke="other_sql",dke="mssql",fke="mysql",pke="oracle",hke="db2",mke="postgresql",gke="redshift",yke="hive",Ske="cloudscape",bke="hsqldb",Eke="progress",_ke="maxdb",Tke="hanadb",vke="ingres",Rke="firstsql",Ake="edb",wke="cache",kke="adabas",Ike="firebird",xke="derby",Oke="filemaker",Pke="informix",Nke="instantdb",Cke="interbase",Mke="mariadb",Dke="netezza",Lke="pervasive",Uke="pointbase",Fke="sqlite",jke="sybase",Hke="teradata",qke="vertica",Bke="h2",zke="coldfusion",Gke="cassandra",Vke="hbase",Wke="mongodb",Kke="redis",Yke="couchbase",Zke="couchdb",Jke="cosmosdb",Xke="dynamodb",Qke="neo4j",$ke="geode",eIe="elasticsearch",tIe="memcached",nIe="cockroachdb",e1t=lke,t1t=dke,n1t=fke,r1t=pke,i1t=hke,s1t=mke,o1t=gke,a1t=yke,c1t=Ske,u1t=bke,l1t=Eke,d1t=_ke,f1t=Tke,p1t=vke,h1t=Rke,m1t=Ake,g1t=wke,y1t=kke,S1t=Ike,b1t=xke,E1t=Oke,_1t=Pke,T1t=Nke,v1t=Cke,R1t=Mke,A1t=Dke,w1t=Lke,k1t=Uke,I1t=Fke,x1t=jke,O1t=Hke,P1t=qke,N1t=Bke,C1t=zke,M1t=Gke,D1t=Vke,L1t=Wke,U1t=Kke,F1t=Yke,j1t=Zke,H1t=Jke,q1t=Xke,B1t=Qke,z1t=$ke,G1t=eIe,V1t=tIe,W1t=nIe,K1t=ws([lke,dke,fke,pke,hke,mke,gke,yke,Ske,bke,Eke,_ke,Tke,vke,Rke,Ake,wke,kke,Ike,xke,Oke,Pke,Nke,Cke,Mke,Dke,Lke,Uke,Fke,jke,Hke,qke,Bke,zke,Gke,Vke,Wke,Kke,Yke,Zke,Jke,Xke,Qke,$ke,eIe,tIe,nIe]),rIe="all",iIe="each_quorum",sIe="quorum",oIe="local_quorum",aIe="one",cIe="two",uIe="three",lIe="local_one",dIe="any",fIe="serial",pIe="local_serial",Y1t=rIe,Z1t=iIe,J1t=sIe,X1t=oIe,Q1t=aIe,$1t=cIe,eUt=uIe,tUt=lIe,nUt=dIe,rUt=fIe,iUt=pIe,sUt=ws([rIe,iIe,sIe,oIe,aIe,cIe,uIe,lIe,dIe,fIe,pIe]),hIe="datasource",mIe="http",gIe="pubsub",yIe="timer",SIe="other",oUt=hIe,aUt=mIe,cUt=gIe,uUt=yIe,lUt=SIe,dUt=ws([hIe,mIe,gIe,yIe,SIe]),bIe="insert",EIe="edit",_Ie="delete",fUt=bIe,pUt=EIe,hUt=_Ie,mUt=ws([bIe,EIe,_Ie]),TIe="alibaba_cloud",vIe="aws",RIe="azure",AIe="gcp",gUt=TIe,yUt=vIe,SUt=RIe,bUt=AIe,EUt=ws([TIe,vIe,RIe,AIe]),wIe="ip_tcp",kIe="ip_udp",IIe="ip",xIe="unix",OIe="pipe",PIe="inproc",NIe="other",_Ut=wIe,TUt=kIe,vUt=IIe,RUt=xIe,AUt=OIe,wUt=PIe,kUt=NIe,IUt=ws([wIe,kIe,IIe,xIe,OIe,PIe,NIe]),CIe="wifi",MIe="wired",DIe="cell",LIe="unavailable",UIe="unknown",xUt=CIe,OUt=MIe,PUt=DIe,NUt=LIe,CUt=UIe,MUt=ws([CIe,MIe,DIe,LIe,UIe]),FIe="gprs",jIe="edge",HIe="umts",qIe="cdma",BIe="evdo_0",zIe="evdo_a",GIe="cdma2000_1xrtt",VIe="hsdpa",WIe="hsupa",KIe="hspa",YIe="iden",ZIe="evdo_b",JIe="lte",XIe="ehrpd",QIe="hspap",$Ie="gsm",e0e="td_scdma",t0e="iwlan",n0e="nr",r0e="nrnsa",i0e="lte_ca",DUt=FIe,LUt=jIe,UUt=HIe,FUt=qIe,jUt=BIe,HUt=zIe,qUt=GIe,BUt=VIe,zUt=WIe,GUt=KIe,VUt=YIe,WUt=ZIe,KUt=JIe,YUt=XIe,ZUt=QIe,JUt=$Ie,XUt=e0e,QUt=t0e,$Ut=n0e,eFt=r0e,tFt=i0e,nFt=ws([FIe,jIe,HIe,qIe,BIe,zIe,GIe,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e]),s0e="1.0",o0e="1.1",a0e="2.0",c0e="SPDY",u0e="QUIC",rFt=s0e,iFt=o0e,sFt=a0e,oFt=c0e,aFt=u0e,cFt={HTTP_1_0:s0e,HTTP_1_1:o0e,HTTP_2_0:a0e,SPDY:c0e,QUIC:u0e},l0e="queue",d0e="topic",uFt=l0e,lFt=d0e,dFt=ws([l0e,d0e]),f0e="receive",p0e="process",fFt=f0e,pFt=p0e,hFt=ws([f0e,p0e]),h0e=0,m0e=1,g0e=2,y0e=3,S0e=4,b0e=5,E0e=6,_0e=7,T0e=8,v0e=9,R0e=10,A0e=11,w0e=12,k0e=13,I0e=14,x0e=15,O0e=16,mFt=h0e,gFt=m0e,yFt=g0e,SFt=y0e,bFt=S0e,EFt=b0e,_Ft=E0e,TFt=_0e,vFt=T0e,RFt=v0e,AFt=R0e,wFt=A0e,kFt=w0e,IFt=k0e,xFt=I0e,OFt=x0e,PFt=O0e,NFt={OK:h0e,CANCELLED:m0e,UNKNOWN:g0e,INVALID_ARGUMENT:y0e,DEADLINE_EXCEEDED:S0e,NOT_FOUND:b0e,ALREADY_EXISTS:E0e,PERMISSION_DENIED:_0e,RESOURCE_EXHAUSTED:T0e,FAILED_PRECONDITION:v0e,ABORTED:R0e,OUT_OF_RANGE:A0e,UNIMPLEMENTED:w0e,INTERNAL:k0e,UNAVAILABLE:I0e,DATA_LOSS:x0e,UNAUTHENTICATED:O0e},P0e="SENT",N0e="RECEIVED",CFt=P0e,MFt=N0e,DFt=ws([P0e,N0e])});var M0e=v(()=>{C0e()});var D0e,L0e,U0e,F0e,j0e,H0e,q0e,B0e,z0e,G0e,V0e,W0e,K0e,Y0e,Z0e,J0e,X0e,Q0e,$0e,exe,txe,nxe,rxe,ixe,sxe,oxe,axe,cxe,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,bxe,Exe,_xe,Txe,vxe,Rxe,Axe,wxe,kxe,Ixe,xxe,Oxe,Pxe,Nxe,Cxe,Mxe,Dxe,Lxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,zxe,Gxe,Vxe,Wxe,Kxe,Yxe,Zxe,Jxe,Xxe,Qxe,$xe,eOe,tOe,nOe,rOe,iOe,sOe,oOe,aOe,LFt,UFt,FFt,jFt,HFt,qFt,BFt,zFt,GFt,VFt,WFt,KFt,YFt,ZFt,JFt,XFt,QFt,$Ft,ejt,tjt,njt,rjt,ijt,sjt,ojt,ajt,cjt,ujt,ljt,djt,fjt,pjt,hjt,mjt,gjt,yjt,Sjt,bjt,Ejt,_jt,Tjt,vjt,Rjt,Ajt,wjt,kjt,Ijt,xjt,Ojt,Pjt,Njt,Cjt,Mjt,Djt,Ljt,Ujt,Fjt,jjt,Hjt,qjt,Bjt,zjt,Gjt,Vjt,Wjt,Kjt,Yjt,Zjt,Jjt,Xjt,Qjt,m7,$jt,eHt,tHt,nHt,rHt,iHt,sHt,oHt,aHt,cHt,cOe,uOe,lOe,dOe,uHt,lHt,dHt,fHt,pHt,fOe,pOe,hOe,mOe,gOe,yOe,SOe,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,hHt,mHt,gHt,yHt,SHt,bHt,EHt,_Ht,THt,vHt,RHt,AHt,wHt,kHt,IHt,xHt,OHt,PHt,xOe,OOe,NHt,CHt,MHt,POe,NOe,COe,MOe,DOe,LOe,UOe,DHt,LHt,UHt,FHt,jHt,HHt,qHt,BHt,FOe,jOe,HOe,qOe,BOe,zOe,GOe,VOe,WOe,KOe,YOe,zHt,GHt,VHt,WHt,KHt,YHt,ZHt,JHt,XHt,QHt,$Ht,eqt,ZOe,JOe,XOe,QOe,$Oe,ePe,tPe,nPe,rPe,iPe,tqt,nqt,rqt,iqt,sqt,oqt,aqt,cqt,uqt,lqt,dqt,sPe=v(()=>{t7();D0e="cloud.provider",L0e="cloud.account.id",U0e="cloud.region",F0e="cloud.availability_zone",j0e="cloud.platform",H0e="aws.ecs.container.arn",q0e="aws.ecs.cluster.arn",B0e="aws.ecs.launchtype",z0e="aws.ecs.task.arn",G0e="aws.ecs.task.family",V0e="aws.ecs.task.revision",W0e="aws.eks.cluster.arn",K0e="aws.log.group.names",Y0e="aws.log.group.arns",Z0e="aws.log.stream.names",J0e="aws.log.stream.arns",X0e="container.name",Q0e="container.id",$0e="container.runtime",exe="container.image.name",txe="container.image.tag",nxe="deployment.environment",rxe="device.id",ixe="device.model.identifier",sxe="device.model.name",oxe="faas.name",axe="faas.id",cxe="faas.version",uxe="faas.instance",lxe="faas.max_memory",dxe="host.id",fxe="host.name",pxe="host.type",hxe="host.arch",mxe="host.image.name",gxe="host.image.id",yxe="host.image.version",Sxe="k8s.cluster.name",bxe="k8s.node.name",Exe="k8s.node.uid",_xe="k8s.namespace.name",Txe="k8s.pod.uid",vxe="k8s.pod.name",Rxe="k8s.container.name",Axe="k8s.replicaset.uid",wxe="k8s.replicaset.name",kxe="k8s.deployment.uid",Ixe="k8s.deployment.name",xxe="k8s.statefulset.uid",Oxe="k8s.statefulset.name",Pxe="k8s.daemonset.uid",Nxe="k8s.daemonset.name",Cxe="k8s.job.uid",Mxe="k8s.job.name",Dxe="k8s.cronjob.uid",Lxe="k8s.cronjob.name",Uxe="os.type",Fxe="os.description",jxe="os.name",Hxe="os.version",qxe="process.pid",Bxe="process.executable.name",zxe="process.executable.path",Gxe="process.command",Vxe="process.command_line",Wxe="process.command_args",Kxe="process.owner",Yxe="process.runtime.name",Zxe="process.runtime.version",Jxe="process.runtime.description",Xxe="service.name",Qxe="service.namespace",$xe="service.instance.id",eOe="service.version",tOe="telemetry.sdk.name",nOe="telemetry.sdk.language",rOe="telemetry.sdk.version",iOe="telemetry.auto.version",sOe="webengine.name",oOe="webengine.version",aOe="webengine.description",LFt=D0e,UFt=L0e,FFt=U0e,jFt=F0e,HFt=j0e,qFt=H0e,BFt=q0e,zFt=B0e,GFt=z0e,VFt=G0e,WFt=V0e,KFt=W0e,YFt=K0e,ZFt=Y0e,JFt=Z0e,XFt=J0e,QFt=X0e,$Ft=Q0e,ejt=$0e,tjt=exe,njt=txe,rjt=nxe,ijt=rxe,sjt=ixe,ojt=sxe,ajt=oxe,cjt=axe,ujt=cxe,ljt=uxe,djt=lxe,fjt=dxe,pjt=fxe,hjt=pxe,mjt=hxe,gjt=mxe,yjt=gxe,Sjt=yxe,bjt=Sxe,Ejt=bxe,_jt=Exe,Tjt=_xe,vjt=Txe,Rjt=vxe,Ajt=Rxe,wjt=Axe,kjt=wxe,Ijt=kxe,xjt=Ixe,Ojt=xxe,Pjt=Oxe,Njt=Pxe,Cjt=Nxe,Mjt=Cxe,Djt=Mxe,Ljt=Dxe,Ujt=Lxe,Fjt=Uxe,jjt=Fxe,Hjt=jxe,qjt=Hxe,Bjt=qxe,zjt=Bxe,Gjt=zxe,Vjt=Gxe,Wjt=Vxe,Kjt=Wxe,Yjt=Kxe,Zjt=Yxe,Jjt=Zxe,Xjt=Jxe,Qjt=Xxe,m7=Qxe,$jt=$xe,eHt=eOe,tHt=tOe,nHt=nOe,rHt=rOe,iHt=iOe,sHt=sOe,oHt=oOe,aHt=aOe,cHt=ws([D0e,L0e,U0e,F0e,j0e,H0e,q0e,B0e,z0e,G0e,V0e,W0e,K0e,Y0e,Z0e,J0e,X0e,Q0e,$0e,exe,txe,nxe,rxe,ixe,sxe,oxe,axe,cxe,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,bxe,Exe,_xe,Txe,vxe,Rxe,Axe,wxe,kxe,Ixe,xxe,Oxe,Pxe,Nxe,Cxe,Mxe,Dxe,Lxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,zxe,Gxe,Vxe,Wxe,Kxe,Yxe,Zxe,Jxe,Xxe,Qxe,$xe,eOe,tOe,nOe,rOe,iOe,sOe,oOe,aOe]),cOe="alibaba_cloud",uOe="aws",lOe="azure",dOe="gcp",uHt=cOe,lHt=uOe,dHt=lOe,fHt=dOe,pHt=ws([cOe,uOe,lOe,dOe]),fOe="alibaba_cloud_ecs",pOe="alibaba_cloud_fc",hOe="aws_ec2",mOe="aws_ecs",gOe="aws_eks",yOe="aws_lambda",SOe="aws_elastic_beanstalk",bOe="azure_vm",EOe="azure_container_instances",_Oe="azure_aks",TOe="azure_functions",vOe="azure_app_service",ROe="gcp_compute_engine",AOe="gcp_cloud_run",wOe="gcp_kubernetes_engine",kOe="gcp_cloud_functions",IOe="gcp_app_engine",hHt=fOe,mHt=pOe,gHt=hOe,yHt=mOe,SHt=gOe,bHt=yOe,EHt=SOe,_Ht=bOe,THt=EOe,vHt=_Oe,RHt=TOe,AHt=vOe,wHt=ROe,kHt=AOe,IHt=wOe,xHt=kOe,OHt=IOe,PHt=ws([fOe,pOe,hOe,mOe,gOe,yOe,SOe,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe]),xOe="ec2",OOe="fargate",NHt=xOe,CHt=OOe,MHt=ws([xOe,OOe]),POe="amd64",NOe="arm32",COe="arm64",MOe="ia64",DOe="ppc32",LOe="ppc64",UOe="x86",DHt=POe,LHt=NOe,UHt=COe,FHt=MOe,jHt=DOe,HHt=LOe,qHt=UOe,BHt=ws([POe,NOe,COe,MOe,DOe,LOe,UOe]),FOe="windows",jOe="linux",HOe="darwin",qOe="freebsd",BOe="netbsd",zOe="openbsd",GOe="dragonflybsd",VOe="hpux",WOe="aix",KOe="solaris",YOe="z_os",zHt=FOe,GHt=jOe,VHt=HOe,WHt=qOe,KHt=BOe,YHt=zOe,ZHt=GOe,JHt=VOe,XHt=WOe,QHt=KOe,$Ht=YOe,eqt=ws([FOe,jOe,HOe,qOe,BOe,zOe,GOe,VOe,WOe,KOe,YOe]),ZOe="cpp",JOe="dotnet",XOe="erlang",QOe="go",$Oe="java",ePe="nodejs",tPe="php",nPe="python",rPe="ruby",iPe="webjs",tqt=ZOe,nqt=JOe,rqt=XOe,iqt=QOe,sqt=$Oe,oqt=ePe,aqt=tPe,cqt=nPe,uqt=rPe,lqt=iPe,dqt=ws([ZOe,JOe,XOe,QOe,$Oe,ePe,tPe,nPe,rPe,iPe])});var oPe=v(()=>{sPe()});var fqt,pqt,hqt,mqt,gqt,yqt,Sqt,bqt,Eqt,_qt,Tqt,vqt,Rqt,Aqt,wqt,kqt,Iqt,xqt,Oqt,Pqt,Nqt,Cqt,Mqt,Dqt,Lqt,g7,y7,Uqt,fR,Fqt,S7,b7,jqt,yE,Hqt,qqt,Bqt,zqt,Gqt,Vqt,Wqt,Kqt,Nyr,Cyr,E7,Yqt,Zqt,Jqt,Xqt,Qqt,$qt,SE,eBt,tBt,nBt,Myr,rBt,iBt,sBt,oBt,Dyr,aBt,cBt,uBt,lBt,um,lm,dBt,fBt,pBt,hBt,mBt,gBt,yBt,SBt,bBt,Lyr,EBt,_Bt,TBt,vBt,RBt,ABt,_7,T7,wBt,v7,R7,kBt,IBt,Uyr,Fyr,xBt,OBt,PBt,NBt,CBt,MBt,DBt,LBt,jyr,UBt,A7,w7,FBt,k7,jBt,I7,HBt,qBt,BBt,zBt,GBt,VBt,WBt,KBt,YBt,Hyr,ZBt,JBt,qyr,XBt,QBt,Byr,$Bt,ezt,tzt,nzt,rzt,izt,szt,ozt,fy,azt,czt,uzt,x7,aPe=v(()=>{fqt="aspnetcore.diagnostics.exception.result",pqt="aborted",hqt="handled",mqt="skipped",gqt="unhandled",yqt="aspnetcore.diagnostics.handler.type",Sqt="aspnetcore.rate_limiting.policy",bqt="aspnetcore.rate_limiting.result",Eqt="acquired",_qt="endpoint_limiter",Tqt="global_limiter",vqt="request_canceled",Rqt="aspnetcore.request.is_unhandled",Aqt="aspnetcore.routing.is_fallback",wqt="aspnetcore.routing.match_status",kqt="failure",Iqt="success",xqt="aspnetcore.user.is_authenticated",Oqt="client.address",Pqt="client.port",Nqt="code.column.number",Cqt="code.file.path",Mqt="code.function.name",Dqt="code.line.number",Lqt="code.stacktrace",g7="db.collection.name",y7="db.namespace",Uqt="db.operation.batch.size",fR="db.operation.name",Fqt="db.query.summary",S7="db.query.text",b7="db.response.status_code",jqt="db.stored_procedure.name",yE="db.system.name",Hqt="mariadb",qqt="microsoft.sql_server",Bqt="mysql",zqt="postgresql",Gqt="dotnet.gc.heap.generation",Vqt="gen0",Wqt="gen1",Kqt="gen2",Nyr="loh",Cyr="poh",E7="error.type",Yqt="_OTHER",Zqt="exception.escaped",Jqt="exception.message",Xqt="exception.stacktrace",Qqt="exception.type",$qt=e=>`http.request.header.${e}`,SE="http.request.method",eBt="_OTHER",tBt="CONNECT",nBt="DELETE",Myr="GET",rBt="HEAD",iBt="OPTIONS",sBt="PATCH",oBt="POST",Dyr="PUT",aBt="TRACE",cBt="http.request.method_original",uBt="http.request.resend_count",lBt=e=>`http.response.header.${e}`,um="http.response.status_code",lm="http.route",dBt="jvm.gc.action",fBt="jvm.gc.name",pBt="jvm.memory.pool.name",hBt="jvm.memory.type",mBt="heap",gBt="non_heap",yBt="jvm.thread.daemon",SBt="jvm.thread.state",bBt="blocked",Lyr="new",EBt="runnable",_Bt="terminated",TBt="timed_waiting",vBt="waiting",RBt="network.local.address",ABt="network.local.port",_7="network.peer.address",T7="network.peer.port",wBt="network.protocol.name",v7="network.protocol.version",R7="network.transport",kBt="pipe",IBt="quic",Uyr="tcp",Fyr="udp",xBt="unix",OBt="network.type",PBt="ipv4",NBt="ipv6",CBt="otel.scope.name",MBt="otel.scope.version",DBt="otel.status_code",LBt="ERROR",jyr="OK",UBt="otel.status_description",A7="server.address",w7="server.port",FBt="service.instance.id",k7="service.name",jBt="service.namespace",I7="service.version",HBt="signalr.connection.status",qBt="app_shutdown",BBt="normal_closure",zBt="timeout",GBt="signalr.transport",VBt="long_polling",WBt="server_sent_events",KBt="web_sockets",YBt="telemetry.sdk.language",Hyr="cpp",ZBt="dotnet",JBt="erlang",qyr="go",XBt="java",QBt="nodejs",Byr="php",$Bt="python",ezt="ruby",tzt="rust",nzt="swift",rzt="webjs",izt="telemetry.sdk.name",szt="telemetry.sdk.version",ozt="url.fragment",fy="url.full",azt="url.path",czt="url.query",uzt="url.scheme",x7="user_agent.original"});var lzt,dzt,fzt,pzt,hzt,mzt,gzt,yzt,Szt,bzt,Ezt,_zt,Tzt,vzt,Rzt,Azt,wzt,kzt,Izt,xzt,Ozt,Pzt,Nzt,Czt,Mzt,Dzt,Lzt,Uzt,Fzt,jzt,Hzt,qzt,Bzt,zzt,Gzt,Vzt,Wzt,Kzt,Yzt,Zzt,Jzt,Xzt,Qzt,$zt,eGt,tGt,nGt,rGt,iGt,sGt,oGt,cPe=v(()=>{lzt="aspnetcore.diagnostics.exceptions",dzt="aspnetcore.rate_limiting.active_request_leases",fzt="aspnetcore.rate_limiting.queued_requests",pzt="aspnetcore.rate_limiting.request.time_in_queue",hzt="aspnetcore.rate_limiting.request_lease.duration",mzt="aspnetcore.rate_limiting.requests",gzt="aspnetcore.routing.match_attempts",yzt="db.client.operation.duration",Szt="dotnet.assembly.count",bzt="dotnet.exceptions",Ezt="dotnet.gc.collections",_zt="dotnet.gc.heap.total_allocated",Tzt="dotnet.gc.last_collection.heap.fragmentation.size",vzt="dotnet.gc.last_collection.heap.size",Rzt="dotnet.gc.last_collection.memory.committed_size",Azt="dotnet.gc.pause.time",wzt="dotnet.jit.compilation.time",kzt="dotnet.jit.compiled_il.size",Izt="dotnet.jit.compiled_methods",xzt="dotnet.monitor.lock_contentions",Ozt="dotnet.process.cpu.count",Pzt="dotnet.process.cpu.time",Nzt="dotnet.process.memory.working_set",Czt="dotnet.thread_pool.queue.length",Mzt="dotnet.thread_pool.thread.count",Dzt="dotnet.thread_pool.work_item.count",Lzt="dotnet.timer.count",Uzt="http.client.request.duration",Fzt="http.server.request.duration",jzt="jvm.class.count",Hzt="jvm.class.loaded",qzt="jvm.class.unloaded",Bzt="jvm.cpu.count",zzt="jvm.cpu.recent_utilization",Gzt="jvm.cpu.time",Vzt="jvm.gc.duration",Wzt="jvm.memory.committed",Kzt="jvm.memory.limit",Yzt="jvm.memory.used",Zzt="jvm.memory.used_after_last_gc",Jzt="jvm.thread.count",Xzt="kestrel.active_connections",Qzt="kestrel.active_tls_handshakes",$zt="kestrel.connection.duration",eGt="kestrel.queued_connections",tGt="kestrel.queued_requests",nGt="kestrel.rejected_connections",rGt="kestrel.tls_handshake.duration",iGt="kestrel.upgraded_connections",sGt="signalr.server.active_connections",oGt="signalr.server.connection.duration"});var aGt,uPe=v(()=>{aGt="exception"});var Mr={};Ar(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>pqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>hqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>mqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>gqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>Eqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>_qt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>Tqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>vqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>kqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Iqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>fqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>yqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>Sqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>bqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>Rqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>Aqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>wqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>xqt,ATTR_CLIENT_ADDRESS:()=>Oqt,ATTR_CLIENT_PORT:()=>Pqt,ATTR_CODE_COLUMN_NUMBER:()=>Nqt,ATTR_CODE_FILE_PATH:()=>Cqt,ATTR_CODE_FUNCTION_NAME:()=>Mqt,ATTR_CODE_LINE_NUMBER:()=>Dqt,ATTR_CODE_STACKTRACE:()=>Lqt,ATTR_DB_COLLECTION_NAME:()=>g7,ATTR_DB_NAMESPACE:()=>y7,ATTR_DB_OPERATION_BATCH_SIZE:()=>Uqt,ATTR_DB_OPERATION_NAME:()=>fR,ATTR_DB_QUERY_SUMMARY:()=>Fqt,ATTR_DB_QUERY_TEXT:()=>S7,ATTR_DB_RESPONSE_STATUS_CODE:()=>b7,ATTR_DB_STORED_PROCEDURE_NAME:()=>jqt,ATTR_DB_SYSTEM_NAME:()=>yE,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Gqt,ATTR_ERROR_TYPE:()=>E7,ATTR_EXCEPTION_ESCAPED:()=>Zqt,ATTR_EXCEPTION_MESSAGE:()=>Jqt,ATTR_EXCEPTION_STACKTRACE:()=>Xqt,ATTR_EXCEPTION_TYPE:()=>Qqt,ATTR_HTTP_REQUEST_HEADER:()=>$qt,ATTR_HTTP_REQUEST_METHOD:()=>SE,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>cBt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>uBt,ATTR_HTTP_RESPONSE_HEADER:()=>lBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>um,ATTR_HTTP_ROUTE:()=>lm,ATTR_JVM_GC_ACTION:()=>dBt,ATTR_JVM_GC_NAME:()=>fBt,ATTR_JVM_MEMORY_POOL_NAME:()=>pBt,ATTR_JVM_MEMORY_TYPE:()=>hBt,ATTR_JVM_THREAD_DAEMON:()=>yBt,ATTR_JVM_THREAD_STATE:()=>SBt,ATTR_NETWORK_LOCAL_ADDRESS:()=>RBt,ATTR_NETWORK_LOCAL_PORT:()=>ABt,ATTR_NETWORK_PEER_ADDRESS:()=>_7,ATTR_NETWORK_PEER_PORT:()=>T7,ATTR_NETWORK_PROTOCOL_NAME:()=>wBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>v7,ATTR_NETWORK_TRANSPORT:()=>R7,ATTR_NETWORK_TYPE:()=>OBt,ATTR_OTEL_SCOPE_NAME:()=>CBt,ATTR_OTEL_SCOPE_VERSION:()=>MBt,ATTR_OTEL_STATUS_CODE:()=>DBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>UBt,ATTR_SERVER_ADDRESS:()=>A7,ATTR_SERVER_PORT:()=>w7,ATTR_SERVICE_INSTANCE_ID:()=>FBt,ATTR_SERVICE_NAME:()=>k7,ATTR_SERVICE_NAMESPACE:()=>jBt,ATTR_SERVICE_VERSION:()=>I7,ATTR_SIGNALR_CONNECTION_STATUS:()=>HBt,ATTR_SIGNALR_TRANSPORT:()=>GBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>YBt,ATTR_TELEMETRY_SDK_NAME:()=>izt,ATTR_TELEMETRY_SDK_VERSION:()=>szt,ATTR_URL_FRAGMENT:()=>ozt,ATTR_URL_FULL:()=>fy,ATTR_URL_PATH:()=>azt,ATTR_URL_QUERY:()=>czt,ATTR_URL_SCHEME:()=>uzt,ATTR_USER_AGENT_ORIGINAL:()=>x7,AWSECSLAUNCHTYPEVALUES_EC2:()=>NHt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>CHt,AwsEcsLaunchtypeValues:()=>MHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>hHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>mHt,CLOUDPLATFORMVALUES_AWS_EC2:()=>gHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>yHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>SHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>EHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>bHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>vHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>AHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>THt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>RHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>_Ht,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>OHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>xHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>kHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>wHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>IHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>uHt,CLOUDPROVIDERVALUES_AWS:()=>lHt,CLOUDPROVIDERVALUES_AZURE:()=>dHt,CLOUDPROVIDERVALUES_GCP:()=>fHt,CloudPlatformValues:()=>PHt,CloudProviderValues:()=>pHt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>Y1t,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>nUt,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>Z1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>tUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>X1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>iUt,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>Q1t,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>J1t,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>rUt,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>eUt,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>$1t,DBSYSTEMVALUES_ADABAS:()=>y1t,DBSYSTEMVALUES_CACHE:()=>g1t,DBSYSTEMVALUES_CASSANDRA:()=>M1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>c1t,DBSYSTEMVALUES_COCKROACHDB:()=>W1t,DBSYSTEMVALUES_COLDFUSION:()=>C1t,DBSYSTEMVALUES_COSMOSDB:()=>H1t,DBSYSTEMVALUES_COUCHBASE:()=>F1t,DBSYSTEMVALUES_COUCHDB:()=>j1t,DBSYSTEMVALUES_DB2:()=>i1t,DBSYSTEMVALUES_DERBY:()=>b1t,DBSYSTEMVALUES_DYNAMODB:()=>q1t,DBSYSTEMVALUES_EDB:()=>m1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>G1t,DBSYSTEMVALUES_FILEMAKER:()=>E1t,DBSYSTEMVALUES_FIREBIRD:()=>S1t,DBSYSTEMVALUES_FIRSTSQL:()=>h1t,DBSYSTEMVALUES_GEODE:()=>z1t,DBSYSTEMVALUES_H2:()=>N1t,DBSYSTEMVALUES_HANADB:()=>f1t,DBSYSTEMVALUES_HBASE:()=>D1t,DBSYSTEMVALUES_HIVE:()=>a1t,DBSYSTEMVALUES_HSQLDB:()=>u1t,DBSYSTEMVALUES_INFORMIX:()=>_1t,DBSYSTEMVALUES_INGRES:()=>p1t,DBSYSTEMVALUES_INSTANTDB:()=>T1t,DBSYSTEMVALUES_INTERBASE:()=>v1t,DBSYSTEMVALUES_MARIADB:()=>R1t,DBSYSTEMVALUES_MAXDB:()=>d1t,DBSYSTEMVALUES_MEMCACHED:()=>V1t,DBSYSTEMVALUES_MONGODB:()=>L1t,DBSYSTEMVALUES_MSSQL:()=>t1t,DBSYSTEMVALUES_MYSQL:()=>n1t,DBSYSTEMVALUES_NEO4J:()=>B1t,DBSYSTEMVALUES_NETEZZA:()=>A1t,DBSYSTEMVALUES_ORACLE:()=>r1t,DBSYSTEMVALUES_OTHER_SQL:()=>e1t,DBSYSTEMVALUES_PERVASIVE:()=>w1t,DBSYSTEMVALUES_POINTBASE:()=>k1t,DBSYSTEMVALUES_POSTGRESQL:()=>s1t,DBSYSTEMVALUES_PROGRESS:()=>l1t,DBSYSTEMVALUES_REDIS:()=>U1t,DBSYSTEMVALUES_REDSHIFT:()=>o1t,DBSYSTEMVALUES_SQLITE:()=>I1t,DBSYSTEMVALUES_SYBASE:()=>x1t,DBSYSTEMVALUES_TERADATA:()=>O1t,DBSYSTEMVALUES_VERTICA:()=>P1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Hqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>qqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Bqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>zqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>Vqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>Wqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>Kqt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>Nyr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>Cyr,DbCassandraConsistencyLevelValues:()=>sUt,DbSystemValues:()=>K1t,ERROR_TYPE_VALUE_OTHER:()=>Yqt,EVENT_EXCEPTION:()=>aGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>hUt,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>pUt,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>fUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>gUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>yUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>SUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>bUt,FAASTRIGGERVALUES_DATASOURCE:()=>oUt,FAASTRIGGERVALUES_HTTP:()=>aUt,FAASTRIGGERVALUES_OTHER:()=>lUt,FAASTRIGGERVALUES_PUBSUB:()=>cUt,FAASTRIGGERVALUES_TIMER:()=>uUt,FaasDocumentOperationValues:()=>mUt,FaasInvokedProviderValues:()=>EUt,FaasTriggerValues:()=>dUt,HOSTARCHVALUES_AMD64:()=>DHt,HOSTARCHVALUES_ARM32:()=>LHt,HOSTARCHVALUES_ARM64:()=>UHt,HOSTARCHVALUES_IA64:()=>FHt,HOSTARCHVALUES_PPC32:()=>jHt,HOSTARCHVALUES_PPC64:()=>HHt,HOSTARCHVALUES_X86:()=>qHt,HTTPFLAVORVALUES_HTTP_1_0:()=>rFt,HTTPFLAVORVALUES_HTTP_1_1:()=>iFt,HTTPFLAVORVALUES_HTTP_2_0:()=>sFt,HTTPFLAVORVALUES_QUIC:()=>aFt,HTTPFLAVORVALUES_SPDY:()=>oFt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>tBt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>nBt,HTTP_REQUEST_METHOD_VALUE_GET:()=>Myr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>rBt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>iBt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>eBt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>sBt,HTTP_REQUEST_METHOD_VALUE_POST:()=>oBt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>Dyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>aBt,HostArchValues:()=>BHt,HttpFlavorValues:()=>cFt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>mBt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>gBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>bBt,JVM_THREAD_STATE_VALUE_NEW:()=>Lyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>EBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>_Bt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>TBt,JVM_THREAD_STATE_VALUE_WAITING:()=>vBt,MESSAGETYPEVALUES_RECEIVED:()=>MFt,MESSAGETYPEVALUES_SENT:()=>CFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>uFt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>lFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>pFt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>fFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>lzt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>dzt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>fzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>mzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>hzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>pzt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>gzt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>yzt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>Szt,METRIC_DOTNET_EXCEPTIONS:()=>bzt,METRIC_DOTNET_GC_COLLECTIONS:()=>Ezt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>_zt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>Tzt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>vzt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>Rzt,METRIC_DOTNET_GC_PAUSE_TIME:()=>Azt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>wzt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>kzt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>Izt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>xzt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>Ozt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>Pzt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>Nzt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>Czt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>Mzt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>Dzt,METRIC_DOTNET_TIMER_COUNT:()=>Lzt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>Uzt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>Fzt,METRIC_JVM_CLASS_COUNT:()=>jzt,METRIC_JVM_CLASS_LOADED:()=>Hzt,METRIC_JVM_CLASS_UNLOADED:()=>qzt,METRIC_JVM_CPU_COUNT:()=>Bzt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>zzt,METRIC_JVM_CPU_TIME:()=>Gzt,METRIC_JVM_GC_DURATION:()=>Vzt,METRIC_JVM_MEMORY_COMMITTED:()=>Wzt,METRIC_JVM_MEMORY_LIMIT:()=>Kzt,METRIC_JVM_MEMORY_USED:()=>Yzt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>Zzt,METRIC_JVM_THREAD_COUNT:()=>Jzt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>Xzt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>Qzt,METRIC_KESTREL_CONNECTION_DURATION:()=>$zt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>eGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>tGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>nGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>rGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>iGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>sGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>oGt,MessageTypeValues:()=>DFt,MessagingDestinationKindValues:()=>dFt,MessagingOperationValues:()=>hFt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>FUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>qUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>LUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>YUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>jUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>HUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>WUt,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>DUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>JUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>BUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>GUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>ZUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>zUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>VUt,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>QUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>KUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>tFt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>$Ut,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>eFt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>XUt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>UUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>PUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>NUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>CUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>xUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>OUt,NETTRANSPORTVALUES_INPROC:()=>wUt,NETTRANSPORTVALUES_IP:()=>vUt,NETTRANSPORTVALUES_IP_TCP:()=>_Ut,NETTRANSPORTVALUES_IP_UDP:()=>TUt,NETTRANSPORTVALUES_OTHER:()=>kUt,NETTRANSPORTVALUES_PIPE:()=>AUt,NETTRANSPORTVALUES_UNIX:()=>RUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>kBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>IBt,NETWORK_TRANSPORT_VALUE_TCP:()=>Uyr,NETWORK_TRANSPORT_VALUE_UDP:()=>Fyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>xBt,NETWORK_TYPE_VALUE_IPV4:()=>PBt,NETWORK_TYPE_VALUE_IPV6:()=>NBt,NetHostConnectionSubtypeValues:()=>nFt,NetHostConnectionTypeValues:()=>MUt,NetTransportValues:()=>IUt,OSTYPEVALUES_AIX:()=>XHt,OSTYPEVALUES_DARWIN:()=>VHt,OSTYPEVALUES_DRAGONFLYBSD:()=>ZHt,OSTYPEVALUES_FREEBSD:()=>WHt,OSTYPEVALUES_HPUX:()=>JHt,OSTYPEVALUES_LINUX:()=>GHt,OSTYPEVALUES_NETBSD:()=>KHt,OSTYPEVALUES_OPENBSD:()=>YHt,OSTYPEVALUES_SOLARIS:()=>QHt,OSTYPEVALUES_WINDOWS:()=>zHt,OSTYPEVALUES_Z_OS:()=>$Ht,OTEL_STATUS_CODE_VALUE_ERROR:()=>LBt,OTEL_STATUS_CODE_VALUE_OK:()=>jyr,OsTypeValues:()=>eqt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>AFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>_Ft,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>gFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>OFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>bFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>RFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>IFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>SFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>EFt,RPCGRPCSTATUSCODEVALUES_OK:()=>mFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>wFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>TFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>vFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>PFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>xFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>kFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>yFt,RpcGrpcStatusCodeValues:()=>NFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>dLt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>vLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>cLt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>iLt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>_Lt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>gLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>hLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>RLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>fLt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>sLt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>lLt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>mLt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>uLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>oLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>aLt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>TLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>SLt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>bLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>pLt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>yLt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>rLt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>ELt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>ZMt,SEMATTRS_CODE_FILEPATH:()=>KDt,SEMATTRS_CODE_FUNCTION:()=>VDt,SEMATTRS_CODE_LINENO:()=>YDt,SEMATTRS_CODE_NAMESPACE:()=>WDt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>iDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>uDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>cDt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>oDt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>nDt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>rDt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>aDt,SEMATTRS_DB_CASSANDRA_TABLE:()=>sDt,SEMATTRS_DB_CONNECTION_STRING:()=>JMt,SEMATTRS_DB_HBASE_NAMESPACE:()=>lDt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>QMt,SEMATTRS_DB_MONGODB_COLLECTION:()=>fDt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>tDt,SEMATTRS_DB_NAME:()=>$Mt,SEMATTRS_DB_OPERATION:()=>eDt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>dDt,SEMATTRS_DB_SQL_TABLE:()=>pDt,SEMATTRS_DB_STATEMENT:()=>r7,SEMATTRS_DB_SYSTEM:()=>n7,SEMATTRS_DB_USER:()=>XMt,SEMATTRS_ENDUSER_ID:()=>HDt,SEMATTRS_ENDUSER_ROLE:()=>qDt,SEMATTRS_ENDUSER_SCOPE:()=>BDt,SEMATTRS_EXCEPTION_ESCAPED:()=>yDt,SEMATTRS_EXCEPTION_MESSAGE:()=>mDt,SEMATTRS_EXCEPTION_STACKTRACE:()=>gDt,SEMATTRS_EXCEPTION_TYPE:()=>hDt,SEMATTRS_FAAS_COLDSTART:()=>ADt,SEMATTRS_FAAS_CRON:()=>RDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>bDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>TDt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>EDt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>_Dt,SEMATTRS_FAAS_EXECUTION:()=>SDt,SEMATTRS_FAAS_INVOKED_NAME:()=>wDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>kDt,SEMATTRS_FAAS_INVOKED_REGION:()=>IDt,SEMATTRS_FAAS_TIME:()=>vDt,SEMATTRS_FAAS_TRIGGER:()=>i7,SEMATTRS_HTTP_CLIENT_IP:()=>nLt,SEMATTRS_HTTP_FLAVOR:()=>XDt,SEMATTRS_HTTP_HOST:()=>ZDt,SEMATTRS_HTTP_METHOD:()=>hO,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>$Dt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>eLt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>u7,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>l7,SEMATTRS_HTTP_ROUTE:()=>d7,SEMATTRS_HTTP_SCHEME:()=>JDt,SEMATTRS_HTTP_SERVER_NAME:()=>tLt,SEMATTRS_HTTP_STATUS_CODE:()=>gE,SEMATTRS_HTTP_TARGET:()=>c7,SEMATTRS_HTTP_URL:()=>dR,SEMATTRS_HTTP_USER_AGENT:()=>QDt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>XLt,SEMATTRS_MESSAGE_ID:()=>JLt,SEMATTRS_MESSAGE_TYPE:()=>ZLt,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>QLt,SEMATTRS_MESSAGING_CONSUMER_ID:()=>LLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>NLt,SEMATTRS_MESSAGING_DESTINATION:()=>ALt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>wLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>HLt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>jLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>FLt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>qLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>BLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>PLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>MLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>CLt,SEMATTRS_MESSAGING_OPERATION:()=>DLt,SEMATTRS_MESSAGING_PROTOCOL:()=>ILt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>xLt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>ULt,SEMATTRS_MESSAGING_SYSTEM:()=>f7,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>kLt,SEMATTRS_MESSAGING_URL:()=>OLt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>FDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>LDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>UDt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>DDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>MDt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>CDt,SEMATTRS_NET_HOST_IP:()=>o7,SEMATTRS_NET_HOST_NAME:()=>NDt,SEMATTRS_NET_HOST_PORT:()=>a7,SEMATTRS_NET_PEER_IP:()=>s7,SEMATTRS_NET_PEER_NAME:()=>PDt,SEMATTRS_NET_PEER_PORT:()=>ODt,SEMATTRS_NET_TRANSPORT:()=>xDt,SEMATTRS_PEER_SERVICE:()=>jDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>h7,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>KLt,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>YLt,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>WLt,SEMATTRS_RPC_JSONRPC_VERSION:()=>VLt,SEMATTRS_RPC_METHOD:()=>GLt,SEMATTRS_RPC_SERVICE:()=>p7,SEMATTRS_RPC_SYSTEM:()=>zLt,SEMATTRS_THREAD_ID:()=>zDt,SEMATTRS_THREAD_NAME:()=>GDt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>BFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>qFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>zFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>GFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>VFt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>WFt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>KFt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>ZFt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>YFt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>XFt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>JFt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>UFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>jFt,SEMRESATTRS_CLOUD_PLATFORM:()=>HFt,SEMRESATTRS_CLOUD_PROVIDER:()=>LFt,SEMRESATTRS_CLOUD_REGION:()=>FFt,SEMRESATTRS_CONTAINER_ID:()=>$Ft,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>tjt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>njt,SEMRESATTRS_CONTAINER_NAME:()=>QFt,SEMRESATTRS_CONTAINER_RUNTIME:()=>ejt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>rjt,SEMRESATTRS_DEVICE_ID:()=>ijt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>sjt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>ojt,SEMRESATTRS_FAAS_ID:()=>cjt,SEMRESATTRS_FAAS_INSTANCE:()=>ljt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>djt,SEMRESATTRS_FAAS_NAME:()=>ajt,SEMRESATTRS_FAAS_VERSION:()=>ujt,SEMRESATTRS_HOST_ARCH:()=>mjt,SEMRESATTRS_HOST_ID:()=>fjt,SEMRESATTRS_HOST_IMAGE_ID:()=>yjt,SEMRESATTRS_HOST_IMAGE_NAME:()=>gjt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>Sjt,SEMRESATTRS_HOST_NAME:()=>pjt,SEMRESATTRS_HOST_TYPE:()=>hjt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>bjt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>Ajt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>Ujt,SEMRESATTRS_K8S_CRONJOB_UID:()=>Ljt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>Cjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>Njt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>xjt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Ijt,SEMRESATTRS_K8S_JOB_NAME:()=>Djt,SEMRESATTRS_K8S_JOB_UID:()=>Mjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>Tjt,SEMRESATTRS_K8S_NODE_NAME:()=>Ejt,SEMRESATTRS_K8S_NODE_UID:()=>_jt,SEMRESATTRS_K8S_POD_NAME:()=>Rjt,SEMRESATTRS_K8S_POD_UID:()=>vjt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>kjt,SEMRESATTRS_K8S_REPLICASET_UID:()=>wjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>Pjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>Ojt,SEMRESATTRS_OS_DESCRIPTION:()=>jjt,SEMRESATTRS_OS_NAME:()=>Hjt,SEMRESATTRS_OS_TYPE:()=>Fjt,SEMRESATTRS_OS_VERSION:()=>qjt,SEMRESATTRS_PROCESS_COMMAND:()=>Vjt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>Kjt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>Wjt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>zjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Gjt,SEMRESATTRS_PROCESS_OWNER:()=>Yjt,SEMRESATTRS_PROCESS_PID:()=>Bjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>Xjt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>Zjt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>Jjt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>$jt,SEMRESATTRS_SERVICE_NAME:()=>Qjt,SEMRESATTRS_SERVICE_NAMESPACE:()=>m7,SEMRESATTRS_SERVICE_VERSION:()=>eHt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>iHt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>nHt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>tHt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>rHt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>aHt,SEMRESATTRS_WEBENGINE_NAME:()=>sHt,SEMRESATTRS_WEBENGINE_VERSION:()=>oHt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>qBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>BBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>zBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>VBt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>WBt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>KBt,SemanticAttributes:()=>$Lt,SemanticResourceAttributes:()=>cHt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>tqt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>nqt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>rqt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>iqt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>sqt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>oqt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>aqt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>cqt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>uqt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>lqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>Hyr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>ZBt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>JBt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>qyr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>XBt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>QBt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>Byr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>$Bt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>ezt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>tzt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>nzt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>rzt,TelemetrySdkLanguageValues:()=>dqt});var Pn=v(()=>{M0e();oPe();aPe();cPe();uPe()});var lPe=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF.ATTR_PROCESS_RUNTIME_NAME=void 0;OF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var dPe=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF.SDK_INFO=void 0;var cGt=zRe(),PF=(Pn(),ke(Mr)),uGt=lPe();NF.SDK_INFO={[PF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[uGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[PF.ATTR_TELEMETRY_SDK_LANGUAGE]:PF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[PF.ATTR_TELEMETRY_SDK_VERSION]:cGt.VERSION}});var fPe=w(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.otperformance=za.SDK_INFO=za._globalThis=za.getStringListFromEnv=za.getNumberFromEnv=za.getBooleanFromEnv=za.getStringFromEnv=void 0;var CF=qRe();Object.defineProperty(za,"getStringFromEnv",{enumerable:!0,get:function(){return CF.getStringFromEnv}});Object.defineProperty(za,"getBooleanFromEnv",{enumerable:!0,get:function(){return CF.getBooleanFromEnv}});Object.defineProperty(za,"getNumberFromEnv",{enumerable:!0,get:function(){return CF.getNumberFromEnv}});Object.defineProperty(za,"getStringListFromEnv",{enumerable:!0,get:function(){return CF.getStringListFromEnv}});var lGt=BRe();Object.defineProperty(za,"_globalThis",{enumerable:!0,get:function(){return lGt._globalThis}});var dGt=dPe();Object.defineProperty(za,"SDK_INFO",{enumerable:!0,get:function(){return dGt.SDK_INFO}});za.otperformance=performance});var O7=w(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.getStringListFromEnv=Ga.getNumberFromEnv=Ga.getStringFromEnv=Ga.getBooleanFromEnv=Ga.otperformance=Ga._globalThis=Ga.SDK_INFO=void 0;var bE=fPe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return bE.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return bE._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return bE.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return bE.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return bE.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return bE.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return bE.getStringListFromEnv}})});var gPe=w(ei=>{"use strict";Object.defineProperty(ei,"__esModule",{value:!0});ei.addHrTimes=ei.isTimeInput=ei.isTimeInputHrTime=ei.hrTimeToMicroseconds=ei.hrTimeToMilliseconds=ei.hrTimeToNanoseconds=ei.hrTimeToTimeStamp=ei.hrTimeDuration=ei.timeInputToHrTime=ei.hrTime=ei.getTimeOrigin=ei.millisToHrTime=void 0;var MF=O7(),pPe=9,fGt=6,pGt=Math.pow(10,fGt),DF=Math.pow(10,pPe);function mO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*pGt);return[n,r]}ei.millisToHrTime=mO;function hGt(){return MF.otperformance.timeOrigin}ei.getTimeOrigin=hGt;function hPe(e){let t=mO(MF.otperformance.timeOrigin),n=mO(typeof e=="number"?e:MF.otperformance.now());return mPe(t,n)}ei.hrTime=hPe;function mGt(e){if(P7(e))return e;if(typeof e=="number")return e=DF&&(n[1]-=DF,n[0]+=1),n}ei.addHrTimes=mPe});var yPe=w(LF=>{"use strict";Object.defineProperty(LF,"__esModule",{value:!0});LF.unrefTimer=void 0;function TGt(e){typeof e!="number"&&e.unref()}LF.unrefTimer=TGt});var SPe=w(gO=>{"use strict";Object.defineProperty(gO,"__esModule",{value:!0});gO.ExportResultCode=void 0;var vGt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(vGt=gO.ExportResultCode||(gO.ExportResultCode={}))});var EPe=w(UF=>{"use strict";Object.defineProperty(UF,"__esModule",{value:!0});UF.CompositePropagator=void 0;var bPe=(Ce(),ke(Ze)),N7=class{_propagators;_fields;constructor(t={}){this._propagators=t.propagators??[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,r)=>n.concat(r),[])))}inject(t,n,r){for(let i of this._propagators)try{i.inject(t,n,r)}catch(s){bPe.diag.warn(`Failed to inject with ${i.constructor.name}. Err: ${s.message}`)}}extract(t,n,r){return this._propagators.reduce((i,s)=>{try{return s.extract(i,n,r)}catch(o){bPe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};UF.CompositePropagator=N7});var _Pe=w(pR=>{"use strict";Object.defineProperty(pR,"__esModule",{value:!0});pR.validateValue=pR.validateKey=void 0;var C7="[_0-9a-z-*/]",RGt=`[a-z]${C7}{0,255}`,AGt=`[a-z0-9]${C7}{0,240}@[a-z]${C7}{0,13}`,wGt=new RegExp(`^(?:${RGt}|${AGt})$`),kGt=/^[ -~]{0,255}[!-~]$/,IGt=/,|=/;function xGt(e){return wGt.test(e)}pR.validateKey=xGt;function OGt(e){return kGt.test(e)&&!IGt.test(e)}pR.validateValue=OGt});var D7=w(FF=>{"use strict";Object.defineProperty(FF,"__esModule",{value:!0});FF.TraceState=void 0;var TPe=_Pe(),vPe=32,PGt=512,RPe=",",APe="=",M7=class e{_internalState=new Map;constructor(t){t&&this._parse(t)}set(t,n){let r=this._clone();return r._internalState.has(t)&&r._internalState.delete(t),r._internalState.set(t,n),r}unset(t){let n=this._clone();return n._internalState.delete(t),n}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,n)=>(t.push(n+APe+this.get(n)),t),[]).join(RPe)}_parse(t){t.length>PGt||(this._internalState=t.split(RPe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(APe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,TPe.validateKey)(o)&&(0,TPe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>vPe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,vPe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};FF.TraceState=M7});var kPe=w(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.W3CTraceContextPropagator=Va.parseTraceParent=Va.TRACE_STATE_HEADER=Va.TRACE_PARENT_HEADER=void 0;var jF=(Ce(),ke(Ze)),NGt=pO(),CGt=D7();Va.TRACE_PARENT_HEADER="traceparent";Va.TRACE_STATE_HEADER="tracestate";var MGt="00",DGt="(?!ff)[\\da-f]{2}",LGt="(?![0]{32})[\\da-f]{32}",UGt="(?![0]{16})[\\da-f]{16}",FGt="[\\da-f]{2}",jGt=new RegExp(`^\\s?(${DGt})-(${LGt})-(${UGt})-(${FGt})(-.*)?\\s?$`);function wPe(e){let t=jGt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}Va.parseTraceParent=wPe;var L7=class{inject(t,n,r){let i=jF.trace.getSpanContext(t);if(!i||(0,NGt.isTracingSuppressed)(t)||!(0,jF.isSpanContextValid)(i))return;let s=`${MGt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||jF.TraceFlags.NONE).toString(16)}`;r.set(n,Va.TRACE_PARENT_HEADER,s),i.traceState&&r.set(n,Va.TRACE_STATE_HEADER,i.traceState.serialize())}extract(t,n,r){let i=r.get(n,Va.TRACE_PARENT_HEADER);if(!i)return t;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return t;let o=wPe(s);if(!o)return t;o.isRemote=!0;let a=r.get(n,Va.TRACE_STATE_HEADER);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new CGt.TraceState(typeof c=="string"?c:void 0)}return jF.trace.setSpanContext(t,o)}fields(){return[Va.TRACE_PARENT_HEADER,Va.TRACE_STATE_HEADER]}};Va.W3CTraceContextPropagator=L7});var IPe=w($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.getRPCMetadata=$d.deleteRPCMetadata=$d.setRPCMetadata=$d.RPCType=void 0;var HGt=(Ce(),ke(Ze)),U7=(0,HGt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),qGt;(function(e){e.HTTP="http"})(qGt=$d.RPCType||($d.RPCType={}));function BGt(e,t){return e.setValue(U7,t)}$d.setRPCMetadata=BGt;function zGt(e){return e.deleteValue(U7)}$d.deleteRPCMetadata=zGt;function GGt(e){return e.getValue(U7)}$d.getRPCMetadata=GGt});var CPe=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.isPlainObject=void 0;var VGt="[object Object]",WGt="[object Null]",KGt="[object Undefined]",YGt=Function.prototype,xPe=YGt.toString,ZGt=xPe.call(Object),JGt=Object.getPrototypeOf,OPe=Object.prototype,PPe=OPe.hasOwnProperty,EE=Symbol?Symbol.toStringTag:void 0,NPe=OPe.toString;function XGt(e){if(!QGt(e)||$Gt(e)!==VGt)return!1;let t=JGt(e);if(t===null)return!0;let n=PPe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&xPe.call(n)===ZGt}HF.isPlainObject=XGt;function QGt(e){return e!=null&&typeof e=="object"}function $Gt(e){return e==null?e===void 0?KGt:WGt:EE&&EE in Object(e)?e2t(e):t2t(e)}function e2t(e){let t=PPe.call(e,EE),n=e[EE],r=!1;try{e[EE]=void 0,r=!0}catch{}let i=NPe.call(e);return r&&(t?e[EE]=n:delete e[EE]),i}function t2t(e){return NPe.call(e)}});var FPe=w(zF=>{"use strict";Object.defineProperty(zF,"__esModule",{value:!0});zF.merge=void 0;var MPe=CPe(),n2t=20;function r2t(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=LPe(t,e.shift(),0,n);return t}zF.merge=r2t;function F7(e){return BF(e)?e.slice():e}function LPe(e,t,n=0,r){let i;if(!(n>n2t)){if(n++,qF(e)||qF(t)||UPe(t))i=F7(t);else if(BF(e)){if(i=e.slice(),BF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(DPe(e,c,r)||DPe(t,c,r))delete i[c];else{if(yO(l)&&yO(d)){let f=r.get(l)||[],p=r.get(d)||[];f.push({obj:e,key:c}),p.push({obj:t,key:c}),r.set(l,f),r.set(d,p)}i[c]=LPe(i[c],u,n,r)}}}}else i=t;return i}}function DPe(e,t,n){let r=n.get(e[t])||[];for(let i=0,s=r.length;i"u"||e instanceof Date||e instanceof RegExp||e===null}function i2t(e,t){return!(!(0,MPe.isPlainObject)(e)||!(0,MPe.isPlainObject)(t))}});var jPe=w(hR=>{"use strict";Object.defineProperty(hR,"__esModule",{value:!0});hR.callWithTimeout=hR.TimeoutError=void 0;var GF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};hR.TimeoutError=GF;function s2t(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new GF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}hR.callWithTimeout=s2t});var qPe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.isUrlIgnored=mR.urlMatches=void 0;function HPe(e,t){return typeof t=="string"?e===t:!!e.match(t)}mR.urlMatches=HPe;function o2t(e,t){if(!t)return!1;for(let n of t)if(HPe(e,n))return!0;return!1}mR.isUrlIgnored=o2t});var BPe=w(VF=>{"use strict";Object.defineProperty(VF,"__esModule",{value:!0});VF.Deferred=void 0;var j7=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((t,n)=>{this._resolve=t,this._reject=n})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};VF.Deferred=j7});var zPe=w(WF=>{"use strict";Object.defineProperty(WF,"__esModule",{value:!0});WF.BindOnceFuture=void 0;var a2t=BPe(),H7=class{_isCalled=!1;_deferred=new a2t.Deferred;_callback;_that;constructor(t,n){this._callback=t,this._that=n}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(n=>this._deferred.resolve(n),n=>this._deferred.reject(n))}catch(n){this._deferred.reject(n)}}return this._deferred.promise}};WF.BindOnceFuture=H7});var VPe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.diagLogLevelFromString=void 0;var dm=(Ce(),ke(Ze)),GPe={ALL:dm.DiagLogLevel.ALL,VERBOSE:dm.DiagLogLevel.VERBOSE,DEBUG:dm.DiagLogLevel.DEBUG,INFO:dm.DiagLogLevel.INFO,WARN:dm.DiagLogLevel.WARN,ERROR:dm.DiagLogLevel.ERROR,NONE:dm.DiagLogLevel.NONE};function c2t(e){if(e==null)return;let t=GPe[e.toUpperCase()];return t??(dm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(GPe)}, using default`),dm.DiagLogLevel.INFO)}KF.diagLogLevelFromString=c2t});var KPe=w(YF=>{"use strict";Object.defineProperty(YF,"__esModule",{value:!0});YF._export=void 0;var WPe=(Ce(),ke(Ze)),u2t=pO();function l2t(e,t){return new Promise(n=>{WPe.context.with((0,u2t.suppressTracing)(WPe.context.active()),()=>{e.export(t,n)})})}YF._export=l2t});var fr=w(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.internal=we.diagLogLevelFromString=we.BindOnceFuture=we.urlMatches=we.isUrlIgnored=we.callWithTimeout=we.TimeoutError=we.merge=we.TraceState=we.unsuppressTracing=we.suppressTracing=we.isTracingSuppressed=we.setRPCMetadata=we.getRPCMetadata=we.deleteRPCMetadata=we.RPCType=we.parseTraceParent=we.W3CTraceContextPropagator=we.TRACE_STATE_HEADER=we.TRACE_PARENT_HEADER=we.CompositePropagator=we.otperformance=we.getStringListFromEnv=we.getNumberFromEnv=we.getBooleanFromEnv=we.getStringFromEnv=we._globalThis=we.SDK_INFO=we.parseKeyPairsIntoRecord=we.ExportResultCode=we.unrefTimer=we.timeInputToHrTime=we.millisToHrTime=we.isTimeInputHrTime=we.isTimeInput=we.hrTimeToTimeStamp=we.hrTimeToNanoseconds=we.hrTimeToMilliseconds=we.hrTimeToMicroseconds=we.hrTimeDuration=we.hrTime=we.getTimeOrigin=we.addHrTimes=we.loggingErrorHandler=we.setGlobalErrorHandler=we.globalErrorHandler=we.sanitizeAttributes=we.isAttributeValue=we.AnchoredClock=we.W3CBaggagePropagator=void 0;var d2t=xRe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return d2t.W3CBaggagePropagator}});var f2t=ORe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return f2t.AnchoredClock}});var YPe=DRe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return YPe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return YPe.sanitizeAttributes}});var ZPe=URe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return ZPe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return ZPe.setGlobalErrorHandler}});var p2t=e7();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return p2t.loggingErrorHandler}});var Hl=gPe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return Hl.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return Hl.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return Hl.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return Hl.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return Hl.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return Hl.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return Hl.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return Hl.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return Hl.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return Hl.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return Hl.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return Hl.timeInputToHrTime}});var h2t=yPe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return h2t.unrefTimer}});var m2t=SPe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return m2t.ExportResultCode}});var g2t=Z8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return g2t.parseKeyPairsIntoRecord}});var _E=O7();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return _E.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return _E._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return _E.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return _E.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return _E.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return _E.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return _E.otperformance}});var y2t=EPe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return y2t.CompositePropagator}});var ZF=kPe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return ZF.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return ZF.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return ZF.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return ZF.parseTraceParent}});var JF=IPe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return JF.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return JF.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return JF.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return JF.setRPCMetadata}});var q7=pO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return q7.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return q7.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return q7.unsuppressTracing}});var S2t=D7();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return S2t.TraceState}});var b2t=FPe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return b2t.merge}});var JPe=jPe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return JPe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return JPe.callWithTimeout}});var XPe=qPe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return XPe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return XPe.urlMatches}});var E2t=zPe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return E2t.BindOnceFuture}});var _2t=VPe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return _2t.diagLogLevelFromString}});var T2t=KPe();we.internal={_export:T2t._export}});var QPe=w(XF=>{"use strict";Object.defineProperty(XF,"__esModule",{value:!0});XF.VERSION=void 0;XF.VERSION="0.214.0"});var $Pe=w(SO=>{"use strict";Object.defineProperty(SO,"__esModule",{value:!0});SO.SeverityNumber=void 0;var v2t;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(v2t=SO.SeverityNumber||(SO.SeverityNumber={}))});var $F=w(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});gR.NOOP_LOGGER=gR.NoopLogger=void 0;var QF=class{emit(t){}};gR.NoopLogger=QF;gR.NOOP_LOGGER=new QF});var eNe=w(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});Pp.API_BACKWARDS_COMPATIBILITY_VERSION=Pp.makeGetter=Pp._global=Pp.GLOBAL_LOGS_API_KEY=void 0;Pp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Pp._global=globalThis;function R2t(e,t,n){return r=>r===e?t:n}Pp.makeGetter=R2t;Pp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var B7=w(yR=>{"use strict";Object.defineProperty(yR,"__esModule",{value:!0});yR.NOOP_LOGGER_PROVIDER=yR.NoopLoggerProvider=void 0;var A2t=$F(),ej=class{getLogger(t,n,r){return new A2t.NoopLogger}};yR.NoopLoggerProvider=ej;yR.NOOP_LOGGER_PROVIDER=new ej});var tNe=w(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});tj.ProxyLogger=void 0;var w2t=$F(),z7=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):w2t.NOOP_LOGGER}};tj.ProxyLogger=z7});var nNe=w(nj=>{"use strict";Object.defineProperty(nj,"__esModule",{value:!0});nj.ProxyLoggerProvider=void 0;var k2t=B7(),I2t=tNe(),G7=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new I2t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:k2t.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};nj.ProxyLoggerProvider=G7});var iNe=w(rj=>{"use strict";Object.defineProperty(rj,"__esModule",{value:!0});rj.LogsAPI=void 0;var ql=eNe(),x2t=B7(),rNe=nNe(),V7=class e{constructor(){this._proxyLoggerProvider=new rNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return ql._global[ql.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(ql._global[ql.GLOBAL_LOGS_API_KEY]=(0,ql.makeGetter)(ql.API_BACKWARDS_COMPATIBILITY_VERSION,t,x2t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=ql._global[ql.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(ql._global,ql.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete ql._global[ql.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new rNe.ProxyLoggerProvider}};rj.LogsAPI=V7});var W7=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var O2t=$Pe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return O2t.SeverityNumber}});var sNe=$F();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return sNe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return sNe.NoopLogger}});var P2t=iNe();Np.logs=P2t.LogsAPI.getInstance()});var oNe=w(SR=>{"use strict";Object.defineProperty(SR,"__esModule",{value:!0});SR.disableInstrumentations=SR.enableInstrumentations=void 0;function N2t(e,t,n,r){for(let i=0,s=e.length;it.disable())}SR.disableInstrumentations=C2t});var uNe=w(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});ij.registerInstrumentations=void 0;var aNe=(Ce(),ke(Ze)),M2t=W7(),cNe=oNe();function D2t(e){let t=e.tracerProvider||aNe.trace.getTracerProvider(),n=e.meterProvider||aNe.metrics.getMeterProvider(),r=e.loggerProvider||M2t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,cNe.enableInstrumentations)(i,t,n,r),()=>{(0,cNe.disableInstrumentations)(i)}}ij.registerInstrumentations=D2t});var SNe=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.satisfies=void 0;var J7=(Ce(),ke(Ze)),hNe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,L2t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,U2t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function F2t(e,t,n){if(!j2t(e))return J7.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=z2t(e);if(!r)return!1;let i=[],s=mNe(r,t,i,n);return s&&!n?.includePrerelease?q2t(r,i):s}sj.satisfies=F2t;function j2t(e){return typeof e=="string"&&hNe.test(e)}function mNe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(K7(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=lVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!K7(e,s,n,r))return!1;return!0}return K7(e,t,n,r)}function K7(e,t,n,r){if(t=B2t(t,r),t.includes(" "))return mNe(e,t,n,r);{let i=G2t(t);return n.push(i),H2t(e,i)}}function H2t(e,t){if(t.invalid)return!1;if(!t.version||Z7(t.version))return!0;let n=dNe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=dNe(r,i)}return U2t[t.op]?.includes(n)}function q2t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function B2t(e,t){return e=e.trim(),e=cVt(e,t),e=aVt(e),e=uVt(e,t),e=e.trim(),e}function kc(e){return!e||e.toLowerCase()==="x"||e==="*"}function z2t(e){let t=e.match(hNe);if(!t){J7.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function G2t(e){if(!e)return{};let t=e.match(L2t);if(!t)return J7.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Z7(e){return e==="*"||e==="x"||e==="X"}function lNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function V2t(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function W2t(e,t){if(Z7(e)||Z7(t))return 0;let[n,r]=V2t(lNe(e),lNe(t));return n>r?1:n)?=?)",fNe=`(?:${yNe}|${K2t})`,Z2t=`(?:-(${fNe}(?:\\.${fNe})*))`,pNe=`${gNe}+`,J2t=`(?:\\+(${pNe}(?:\\.${pNe})*))`,Y7=`${yNe}|x|X|\\*`,bO=`[v=\\s]*(${Y7})(?:\\.(${Y7})(?:\\.(${Y7})(?:${Z2t})?${J2t}?)?)?`,X2t=`^${Y2t}\\s*${bO}$`,Q2t=new RegExp(X2t),$2t=`^\\s*(${bO})\\s+-\\s+(${bO})\\s*$`,eVt=new RegExp($2t),tVt="(?:~>?)",nVt=`^${tVt}${bO}$`,rVt=new RegExp(nVt),iVt="(?:\\^)",sVt=`^${iVt}${bO}$`,oVt=new RegExp(sVt);function aVt(e){let t=rVt;return e.replace(t,(n,r,i,s,o)=>{let a;return kc(r)?a="":kc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:kc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function cVt(e,t){let n=oVt,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return kc(s)?u="":kc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:kc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function uVt(e,t){let n=Q2t;return e.replace(n,(r,i,s,o,a,c)=>{let u=kc(s),l=u||kc(o),d=l||kc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function lVt(e,t){let n=eVt;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(kc(s)?i="":kc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:kc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,kc(d)?l="":kc(f)?l=`<${+d+1}.0.0-0`:kc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var X7=w(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.massUnwrap=ia.unwrap=ia.massWrap=ia.wrap=void 0;var Ic=console.error.bind(console);function EO(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var dVt=(e,t,n)=>{if(!e||!e[t]){Ic("no original function "+String(t)+" to wrap");return}if(!n){Ic("no wrapper function"),Ic(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Ic("original object and wrapper must be functions");return}let i=n(r,t);return EO(i,"__original",r),EO(i,"__unwrap",()=>{e[t]===i&&EO(e,t,r)}),EO(i,"__wrapped",!0),EO(e,t,i),i};ia.wrap=dVt;var fVt=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Ic("must provide one or more modules to patch"),Ic(new Error().stack);return}if(!(t&&Array.isArray(t))){Ic("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,ia.wrap)(r,i,n)})})};ia.massWrap=fVt;var pVt=(e,t)=>{if(!e||!e[t]){Ic("no function to unwrap."),Ic(new Error().stack);return}let n=e[t];if(!n.__unwrap)Ic("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};ia.unwrap=pVt;var hVt=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Ic("must provide one or more modules to patch"),Ic(new Error().stack);return}if(!(t&&Array.isArray(t))){Ic("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,ia.unwrap)(n,r)})})};ia.massUnwrap=hVt;function _O(e){e&&e.logger&&(typeof e.logger!="function"?Ic("new logger isn't a function, not replacing"):Ic=e.logger)}ia.default=_O;_O.wrap=ia.wrap;_O.massWrap=ia.massWrap;_O.unwrap=ia.unwrap;_O.massUnwrap=ia.massUnwrap});var bNe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.InstrumentationAbstract=void 0;var Q7=(Ce(),ke(Ze)),mVt=W7(),oj=X7(),$7=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Q7.diag.createComponentLogger({namespace:t}),this._tracer=Q7.trace.getTracer(t,n),this._meter=Q7.metrics.getMeter(t,n),this._logger=mVt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=oj.wrap;_unwrap=oj.unwrap;_massWrap=oj.massWrap;_massUnwrap=oj.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};aj.InstrumentationAbstract=$7});var _Ne=w((NSr,ENe)=>{var bR=1e3,ER=bR*60,_R=ER*60,TE=_R*24,gVt=TE*7,yVt=TE*365.25;ENe.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return SVt(e);if(n==="number"&&isFinite(e))return t.long?EVt(e):bVt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function SVt(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*yVt;case"weeks":case"week":case"w":return n*gVt;case"days":case"day":case"d":return n*TE;case"hours":case"hour":case"hrs":case"hr":case"h":return n*_R;case"minutes":case"minute":case"mins":case"min":case"m":return n*ER;case"seconds":case"second":case"secs":case"sec":case"s":return n*bR;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function bVt(e){var t=Math.abs(e);return t>=TE?Math.round(e/TE)+"d":t>=_R?Math.round(e/_R)+"h":t>=ER?Math.round(e/ER)+"m":t>=bR?Math.round(e/bR)+"s":e+"ms"}function EVt(e){var t=Math.abs(e);return t>=TE?cj(e,t,TE,"day"):t>=_R?cj(e,t,_R,"hour"):t>=ER?cj(e,t,ER,"minute"):t>=bR?cj(e,t,bR,"second"):e+" ms"}function cj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var eJ=w((CSr,TNe)=>{function _Vt(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=_Ne(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";E++;let A=n.formatters[R];if(typeof A=="function"){let x=g[E];T=A.call(y,x),g.splice(E,1),E--}return T}),n.formatArgs.call(y,g),(y.log||n.log).apply(y,g)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:g=>{f=g}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d=(typeof l=="string"?l:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of d)f[0]==="-"?n.skips.push(f.slice(1)):n.names.push(f)}function s(l,d){let f=0,p=0,h=-1,m=0;for(;f"-"+d)].join(",");return n.enable(""),l}function a(l){for(let d of n.skips)if(s(l,d))return!1;for(let d of n.names)if(s(l,d))return!0;return!1}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}TNe.exports=_Vt});var vNe=w((cu,uj)=>{cu.formatArgs=vVt;cu.save=RVt;cu.load=AVt;cu.useColors=TVt;cu.storage=wVt();cu.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();cu.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function TVt(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function vVt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+uj.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}cu.log=console.debug||console.log||(()=>{});function RVt(e){try{e?cu.storage.setItem("debug",e):cu.storage.removeItem("debug")}catch{}}function AVt(){let e;try{e=cu.storage.getItem("debug")||cu.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function wVt(){try{return localStorage}catch{}}uj.exports=eJ()(cu);var{formatters:kVt}=uj.exports;kVt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var ANe=w((MSr,RNe)=>{"use strict";RNe.exports=(e,t=process.argv)=>{let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return r!==-1&&(i===-1||r{"use strict";var IVt=K("os"),wNe=K("tty"),Bl=ANe(),{env:No}=process,lj;Bl("no-color")||Bl("no-colors")||Bl("color=false")||Bl("color=never")?lj=0:(Bl("color")||Bl("colors")||Bl("color=true")||Bl("color=always"))&&(lj=1);function xVt(){if("FORCE_COLOR"in No)return No.FORCE_COLOR==="true"?1:No.FORCE_COLOR==="false"?0:No.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(No.FORCE_COLOR,10),3)}function OVt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function PVt(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=xVt();r!==void 0&&(lj=r);let i=n?lj:r;if(i===0)return 0;if(n){if(Bl("color=16m")||Bl("color=full")||Bl("color=truecolor"))return 3;if(Bl("color=256"))return 2}if(e&&!t&&i===void 0)return 0;let s=i||0;if(No.TERM==="dumb")return s;if(process.platform==="win32"){let o=IVt.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in No)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(o=>o in No)||No.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in No)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(No.TEAMCITY_VERSION)?1:0;if(No.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in No){let o=Number.parseInt((No.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(No.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(No.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(No.TERM)||"COLORTERM"in No?1:s}function tJ(e,t={}){let n=PVt(e,{streamIsTTY:e&&e.isTTY,...t});return OVt(n)}kNe.exports={supportsColor:tJ,stdout:tJ({isTTY:wNe.isatty(1)}),stderr:tJ({isTTY:wNe.isatty(2)})}});var xNe=w((Co,pj)=>{var NVt=K("tty"),fj=K("util");Co.init=jVt;Co.log=LVt;Co.formatArgs=MVt;Co.save=UVt;Co.load=FVt;Co.useColors=CVt;Co.destroy=fj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Co.colors=[6,2,3,4,5,1];try{let e=dj();e&&(e.stderr||e).level>=2&&(Co.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Co.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function CVt(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:NVt.isatty(process.stderr.fd)}function MVt(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` +var eMt=Object.create;var iF=Object.defineProperty;var tMt=Object.getOwnPropertyDescriptor;var nMt=Object.getOwnPropertyNames;var rMt=Object.getPrototypeOf,iMt=Object.prototype.hasOwnProperty;var K=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ar=(e,t)=>{for(var n in t)iF(e,n,{get:t[n],enumerable:!0})},Mve=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of nMt(t))!iMt.call(e,i)&&i!==n&&iF(e,i,{get:()=>t[i],enumerable:!(r=tMt(t,i))||r.enumerable});return e};var Re=(e,t,n)=>(n=e!=null?eMt(rMt(e)):{},Mve(t||!e||!e.__esModule?iF(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>Mve(iF({},"__esModule",{value:!0}),e);var am,h8=v(()=>{am="1.9.1"});function sMt(e){let t=new Set([e]),n=new Set,r=e.match(Dve);if(!r)return()=>!1;let i={major:+r[1],minor:+r[2],patch:+r[3],prerelease:r[4]};if(i.prerelease!=null)return function(c){return c===e};function s(a){return n.add(a),!1}function o(a){return t.add(a),!0}return function(c){if(t.has(c))return!0;if(n.has(c))return!1;let u=c.match(Dve);if(!u)return s(c);let l={major:+u[1],minor:+u[2],patch:+u[3],prerelease:u[4]};return l.prerelease!=null||i.major!==l.major?s(c):i.major===0?i.minor===l.minor&&i.patch<=l.patch?o(c):s(c):i.minor<=l.minor?o(c):s(c)}}var Dve,Lve,Uve=v(()=>{h8();Dve=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;Lve=sMt(am)});function Ap(e,t,n,r=!1){var i;let s=aO[oO]=(i=aO[oO])!==null&&i!==void 0?i:{version:am};if(!r&&s[e]){let o=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);return n.error(o.stack||o.message),!1}if(s.version!==am){let o=new Error(`@opentelemetry/api: Registration of version v${s.version} for ${e} does not match previously registered API v${am}`);return n.error(o.stack||o.message),!1}return s[e]=t,n.debug(`@opentelemetry/api: Registered a global for ${e} v${am}.`),!0}function rl(e){var t,n;let r=(t=aO[oO])===null||t===void 0?void 0:t.version;if(!(!r||!Lve(r)))return(n=aO[oO])===null||n===void 0?void 0:n[e]}function wp(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${am}.`);let n=aO[oO];n&&delete n[e]}var oMt,oO,aO,dE=v(()=>{h8();Uve();oMt=am.split(".")[0],oO=Symbol.for(`opentelemetry.js.api.${oMt}`),aO=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});function cO(e,t,n){let r=rl("diag");if(r)return r[e](t,...n)}var sF,Fve=v(()=>{dE();sF=class{constructor(t){this._namespace=t.namespace||"DiagComponentLogger"}debug(...t){return cO("debug",this._namespace,t)}error(...t){return cO("error",this._namespace,t)}info(...t){return cO("info",this._namespace,t)}warn(...t){return cO("warn",this._namespace,t)}verbose(...t){return cO("verbose",this._namespace,t)}}});var ho,oF=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(ho||(ho={}))});function jve(e,t){eho.ALL&&(e=ho.ALL),t=t||{};function n(r,i){let s=t[r];return typeof s=="function"&&e>=i?s.bind(t):function(){}}return{error:n("error",ho.ERROR),warn:n("warn",ho.WARN),info:n("info",ho.INFO),debug:n("debug",ho.DEBUG),verbose:n("verbose",ho.VERBOSE)}}var Hve=v(()=>{oF()});var aMt,Po,fE=v(()=>{Fve();Hve();oF();dE();aMt="diag",Po=class e{static instance(){return this._instance||(this._instance=new e),this._instance}constructor(){function t(i){return function(...s){let o=rl("diag");if(o)return o[i](...s)}}let n=this,r=(i,s={logLevel:ho.INFO})=>{var o,a,c;if(i===n){let d=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return n.error((o=d.stack)!==null&&o!==void 0?o:d.message),!1}typeof s=="number"&&(s={logLevel:s});let u=rl("diag"),l=jve((a=s.logLevel)!==null&&a!==void 0?a:ho.INFO,i);if(u&&!s.suppressOverrideMessage){let d=(c=new Error().stack)!==null&&c!==void 0?c:"";u.warn(`Current logger will be overwritten from ${d}`),l.warn(`Current logger will overwrite one already registered from ${d}`)}return Ap("diag",l,n,!0)};n.setLogger=r,n.disable=()=>{wp(aMt,n)},n.createComponentLogger=i=>new sF(i),n.verbose=t("verbose"),n.debug=t("debug"),n.info=t("info"),n.warn=t("warn"),n.error=t("error")}}});var aF,qve=v(()=>{aF=class e{constructor(t){this._entries=t?new Map(t):new Map}getEntry(t){let n=this._entries.get(t);if(n)return Object.assign({},n)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(t,n){let r=new e(this._entries);return r._entries.set(t,n),r}removeEntry(t){let n=new e(this._entries);return n._entries.delete(t),n}removeEntries(...t){let n=new e(this._entries);for(let r of t)n._entries.delete(r);return n}clear(){return new e}}});var Bve,zve=v(()=>{Bve=Symbol("BaggageEntryMetadata")});function Gve(e={}){return new aF(new Map(Object.entries(e)))}function Vve(e){return typeof e!="string"&&(cMt.error(`Cannot create baggage metadata from unknown type: ${typeof e}`),e=""),{__TYPE__:Bve,toString(){return e}}}var cMt,m8=v(()=>{fE();qve();zve();cMt=Po.instance()});function il(e){return Symbol.for(e)}var g8,sR,uO=v(()=>{g8=class e{constructor(t){let n=this;n._currentContext=t?new Map(t):new Map,n.getValue=r=>n._currentContext.get(r),n.setValue=(r,i)=>{let s=new e(n._currentContext);return s._currentContext.set(r,i),s},n.deleteValue=r=>{let i=new e(n._currentContext);return i._currentContext.delete(r),i}}},sR=new g8});var y8,S8,cF,Wve=v(()=>{y8=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],S8={};if(typeof console<"u"){let e=["error","warn","info","debug","trace","log"];for(let t of e)typeof console[t]=="function"&&(S8[t]=console[t])}cF=class{constructor(){function t(n){return function(...r){let i=S8[n];if(typeof i!="function"&&(i=S8.log),typeof i!="function"&&console&&(i=console[n],typeof i!="function"&&(i=console.log)),typeof i=="function")return i.apply(console,r)}}for(let n=0;n{b8=class{constructor(){}createGauge(t,n){return lMt}createHistogram(t,n){return dMt}createCounter(t,n){return uMt}createUpDownCounter(t,n){return fMt}createObservableGauge(t,n){return hMt}createObservableCounter(t,n){return pMt}createObservableUpDownCounter(t,n){return mMt}addBatchObservableCallback(t,n){}removeBatchObservableCallback(t){}},oR=class{},E8=class extends oR{add(t,n){}},_8=class extends oR{add(t,n){}},T8=class extends oR{record(t,n){}},v8=class extends oR{record(t,n){}},lO=class{addCallback(t){}removeCallback(t){}},R8=class extends lO{},A8=class extends lO{},w8=class extends lO{},k8=new b8,uMt=new E8,lMt=new T8,dMt=new v8,fMt=new _8,pMt=new R8,hMt=new A8,mMt=new w8});var uF,Yve=v(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(uF||(uF={}))});var lF,dF,x8=v(()=>{lF={get(e,t){if(e!=null)return e[t]},keys(e){return e==null?[]:Object.keys(e)}},dF={set(e,t,n){e!=null&&(e[t]=n)}}});var fF,Zve=v(()=>{uO();fF=class{active(){return sR}with(t,n,r,...i){return n.call(r,...i)}bind(t,n){return n}enable(){return this}disable(){return this}}});var O8,gMt,kp,dO=v(()=>{Zve();dE();fE();O8="context",gMt=new fF,kp=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalContextManager(t){return Ap(O8,t,Po.instance())}active(){return this._getContextManager().active()}with(t,n,r,...i){return this._getContextManager().with(t,n,r,...i)}bind(t,n){return this._getContextManager().bind(t,n)}_getContextManager(){return rl(O8)||gMt}disable(){this._getContextManager().disable(),wp(O8,Po.instance())}}});var qa,P8=v(()=>{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(qa||(qa={}))});var fO,pE,pF,hF=v(()=>{P8();fO="0000000000000000",pE="00000000000000000000000000000000",pF={traceId:pE,spanId:fO,traceFlags:qa.NONE}});var Ip,mF=v(()=>{hF();Ip=class{constructor(t=pF){this._spanContext=t}spanContext(){return this._spanContext}setAttribute(t,n){return this}setAttributes(t){return this}addEvent(t,n){return this}addLink(t){return this}addLinks(t){return this}setStatus(t){return this}updateName(t){return this}end(t){}isRecording(){return!1}recordException(t,n){}}});function gF(e){return e.getValue(N8)||void 0}function Jve(){return gF(kp.getInstance().active())}function pO(e,t){return e.setValue(N8,t)}function Xve(e){return e.deleteValue(N8)}function Qve(e,t){return pO(e,new Ip(t))}function yF(e){var t;return(t=gF(e))===null||t===void 0?void 0:t.spanContext()}var N8,C8=v(()=>{uO();mF();dO();N8=il("OpenTelemetry Context Key SPAN")});function $ve(e,t){if(typeof e!="string"||e.length!==t)return!1;let n=0;for(let r=0;r{hF();mF();SF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1])});function yMt(e){return e!==null&&typeof e=="object"&&"spanId"in e&&typeof e.spanId=="string"&&"traceId"in e&&typeof e.traceId=="string"&&"traceFlags"in e&&typeof e.traceFlags=="number"}var L8,aR,U8=v(()=>{dO();C8();mF();bF();L8=kp.getInstance(),aR=class{startSpan(t,n,r=L8.active()){if(!!n?.root)return new Ip;let s=r&&yF(r);return yMt(s)&&cm(s)?new Ip(s):new Ip}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??L8.active(),u=this.startSpan(t,s,c),l=pO(c,u);return L8.with(l,a,void 0,u)}}});var SMt,cR,F8=v(()=>{U8();SMt=new aR,cR=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}startSpan(t,n,r){return this._getTracer().startSpan(t,n,r)}startActiveSpan(t,n,r,i){let s=this._getTracer();return Reflect.apply(s.startActiveSpan,s,arguments)}_getTracer(){if(this._delegate)return this._delegate;let t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):SMt}}});var EF,tRe=v(()=>{U8();EF=class{getTracer(t,n,r){return new aR}}});var bMt,hE,j8=v(()=>{F8();tRe();bMt=new EF,hE=class{getTracer(t,n,r){var i;return(i=this.getDelegateTracer(t,n,r))!==null&&i!==void 0?i:new cR(this,t,n,r)}getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:bMt}setDelegate(t){this._delegate=t}getDelegateTracer(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getTracer(t,n,r)}}});var _F,nRe=v(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(_F||(_F={}))});var $r,rRe=v(()=>{(function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"})($r||($r={}))});var as,iRe=v(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(as||(as={}))});function sRe(e){return TMt.test(e)}function oRe(e){return vMt.test(e)&&!RMt.test(e)}var H8,EMt,_Mt,TMt,vMt,RMt,aRe=v(()=>{H8="[_0-9a-z-*/]",EMt=`[a-z]${H8}{0,255}`,_Mt=`[a-z0-9]${H8}{0,240}@[a-z]${H8}{0,13}`,TMt=new RegExp(`^(?:${EMt}|${_Mt})$`),vMt=/^[ -~]{0,255}[!-~]$/,RMt=/,|=/});var cRe,AMt,uRe,lRe,TF,dRe=v(()=>{aRe();cRe=32,AMt=512,uRe=",",lRe="=",TF=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,n){let r=this._clone();return r._internalState.has(t)&&r._internalState.delete(t),r._internalState.set(t,n),r}unset(t){let n=this._clone();return n._internalState.delete(t),n}get(t){return this._internalState.get(t)}serialize(){return Array.from(this._internalState.keys()).reduceRight((t,n)=>(t.push(n+lRe+this.get(n)),t),[]).join(uRe)}_parse(t){t.length>AMt||(this._internalState=t.split(uRe).reduceRight((n,r)=>{let i=r.trim(),s=i.indexOf(lRe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);sRe(o)&&oRe(a)&&n.set(o,a)}return n},new Map),this._internalState.size>cRe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,cRe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}}});function fRe(e){return new TF(e)}var pRe=v(()=>{dRe()});var Ve,hRe=v(()=>{dO();Ve=kp.getInstance()});var sl,mRe=v(()=>{fE();sl=Po.instance()});var q8,gRe,yRe=v(()=>{I8();q8=class{getMeter(t,n,r){return k8}},gRe=new q8});var B8,vF,SRe=v(()=>{yRe();dE();fE();B8="metrics",vF=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalMeterProvider(t){return Ap(B8,t,Po.instance())}getMeterProvider(){return rl(B8)||gRe}getMeter(t,n,r){return this.getMeterProvider().getMeter(t,n,r)}disable(){wp(B8,Po.instance())}}});var z8,bRe=v(()=>{SRe();z8=vF.getInstance()});var RF,ERe=v(()=>{RF=class{inject(t,n){}extract(t,n){return t}fields(){return[]}}});function V8(e){return e.getValue(G8)||void 0}function _Re(){return V8(kp.getInstance().active())}function TRe(e,t){return e.setValue(G8,t)}function vRe(e){return e.deleteValue(G8)}var G8,RRe=v(()=>{dO();uO();G8=il("OpenTelemetry Baggage Key")});var W8,wMt,AF,ARe=v(()=>{dE();ERe();x8();RRe();m8();fE();W8="propagation",wMt=new RF,AF=class e{constructor(){this.createBaggage=Gve,this.getBaggage=V8,this.getActiveBaggage=_Re,this.setBaggage=TRe,this.deleteBaggage=vRe}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalPropagator(t){return Ap(W8,t,Po.instance())}inject(t,n,r=dF){return this._getGlobalPropagator().inject(t,n,r)}extract(t,n,r=lF){return this._getGlobalPropagator().extract(t,n,r)}fields(){return this._getGlobalPropagator().fields()}disable(){wp(W8,Po.instance())}_getGlobalPropagator(){return rl(W8)||wMt}}});var Qd,wRe=v(()=>{ARe();Qd=AF.getInstance()});var K8,wF,kRe=v(()=>{dE();j8();bF();C8();fE();K8="trace",wF=class e{constructor(){this._proxyTracerProvider=new hE,this.wrapSpanContext=eRe,this.isSpanContextValid=cm,this.deleteSpan=Xve,this.getSpan=gF,this.getActiveSpan=Jve,this.getSpanContext=yF,this.setSpan=pO,this.setSpanContext=Qve}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalTracerProvider(t){let n=Ap(K8,this._proxyTracerProvider,Po.instance());return n&&this._proxyTracerProvider.setDelegate(t),n}getTracerProvider(){return rl(K8)||this._proxyTracerProvider}getTracer(t,n){return this.getTracerProvider().getTracer(t,n)}disable(){wp(K8,Po.instance()),this._proxyTracerProvider=new hE}}});var jt,IRe=v(()=>{kRe();jt=wF.getInstance()});var Ze={};Ar(Ze,{DiagConsoleLogger:()=>cF,DiagLogLevel:()=>ho,INVALID_SPANID:()=>fO,INVALID_SPAN_CONTEXT:()=>pF,INVALID_TRACEID:()=>pE,ProxyTracer:()=>cR,ProxyTracerProvider:()=>hE,ROOT_CONTEXT:()=>sR,SamplingDecision:()=>_F,SpanKind:()=>$r,SpanStatusCode:()=>as,TraceFlags:()=>qa,ValueType:()=>uF,baggageEntryMetadataFromString:()=>Vve,context:()=>Ve,createContextKey:()=>il,createNoopMeter:()=>Kve,createTraceState:()=>fRe,default:()=>kMt,defaultTextMapGetter:()=>lF,defaultTextMapSetter:()=>dF,diag:()=>sl,isSpanContextValid:()=>cm,isValidSpanId:()=>D8,isValidTraceId:()=>M8,metrics:()=>z8,propagation:()=>Qd,trace:()=>jt});var kMt,Ce=v(()=>{m8();uO();Wve();oF();I8();Yve();x8();F8();j8();nRe();rRe();iRe();P8();pRe();bF();hF();hRe();mRe();bRe();wRe();IRe();kMt={context:Ve,diag:sl,metrics:z8,propagation:Qd,trace:jt}});var hO=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.isTracingSuppressed=ly.unsuppressTracing=ly.suppressTracing=void 0;var IMt=(Ce(),ke(Ze)),Y8=(0,IMt.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function xMt(e){return e.setValue(Y8,!0)}ly.suppressTracing=xMt;function OMt(e){return e.deleteValue(Y8)}ly.unsuppressTracing=OMt;function PMt(e){return e.getValue(Y8)===!0}ly.isTracingSuppressed=PMt});var Z8=w(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.BAGGAGE_MAX_TOTAL_LENGTH=Ba.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=Ba.BAGGAGE_MAX_NAME_VALUE_PAIRS=Ba.BAGGAGE_HEADER=Ba.BAGGAGE_ITEMS_SEPARATOR=Ba.BAGGAGE_PROPERTIES_SEPARATOR=Ba.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;Ba.BAGGAGE_KEY_PAIR_SEPARATOR="=";Ba.BAGGAGE_PROPERTIES_SEPARATOR=";";Ba.BAGGAGE_ITEMS_SEPARATOR=",";Ba.BAGGAGE_HEADER="baggage";Ba.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;Ba.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;Ba.BAGGAGE_MAX_TOTAL_LENGTH=8192});var J8=w(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.parseKeyPairsIntoRecord=xp.parsePairKeyValue=xp.getKeyPairs=xp.serializeKeyPairs=void 0;var NMt=(Ce(),ke(Ze)),uR=Z8();function CMt(e){return e.reduce((t,n)=>{let r=`${t}${t!==""?uR.BAGGAGE_ITEMS_SEPARATOR:""}${n}`;return r.length>uR.BAGGAGE_MAX_TOTAL_LENGTH?t:r},"")}xp.serializeKeyPairs=CMt;function MMt(e){return e.getAllEntries().map(([t,n])=>{let r=`${encodeURIComponent(t)}=${encodeURIComponent(n.value)}`;return n.metadata!==void 0&&(r+=uR.BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),r})}xp.getKeyPairs=MMt;function xRe(e){if(!e)return;let t=e.indexOf(uR.BAGGAGE_PROPERTIES_SEPARATOR),n=t===-1?e:e.substring(0,t),r=n.indexOf(uR.BAGGAGE_KEY_PAIR_SEPARATOR);if(r<=0)return;let i=n.substring(0,r).trim(),s=n.substring(r+1).trim();if(!i||!s)return;let o,a;try{o=decodeURIComponent(i),a=decodeURIComponent(s)}catch{return}let c;if(t!==-1&&t0&&e.split(uR.BAGGAGE_ITEMS_SEPARATOR).forEach(n=>{let r=xRe(n);r!==void 0&&r.value.length>0&&(t[r.key]=r.value)}),t}xp.parseKeyPairsIntoRecord=DMt});var ORe=w(kF=>{"use strict";Object.defineProperty(kF,"__esModule",{value:!0});kF.W3CBaggagePropagator=void 0;var X8=(Ce(),ke(Ze)),LMt=hO(),mE=Z8(),Q8=J8(),$8=class{inject(t,n,r){let i=X8.propagation.getBaggage(t);if(!i||(0,LMt.isTracingSuppressed)(t))return;let s=(0,Q8.getKeyPairs)(i).filter(a=>a.length<=mE.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,mE.BAGGAGE_MAX_NAME_VALUE_PAIRS),o=(0,Q8.serializeKeyPairs)(s);o.length>0&&r.set(n,mE.BAGGAGE_HEADER,o)}extract(t,n,r){let i=r.get(n,mE.BAGGAGE_HEADER),s=Array.isArray(i)?i.join(mE.BAGGAGE_ITEMS_SEPARATOR):i;if(!s)return t;let o={};return s.length===0||(s.split(mE.BAGGAGE_ITEMS_SEPARATOR).forEach(c=>{let u=(0,Q8.parsePairKeyValue)(c);if(u){let l={value:u.value};u.metadata&&(l.metadata=u.metadata),o[u.key]=l}}),Object.entries(o).length===0)?t:X8.propagation.setBaggage(t,X8.propagation.createBaggage(o))}fields(){return[mE.BAGGAGE_HEADER]}};kF.W3CBaggagePropagator=$8});var PRe=w(IF=>{"use strict";Object.defineProperty(IF,"__esModule",{value:!0});IF.AnchoredClock=void 0;var e7=class{_monotonicClock;_epochMillis;_performanceMillis;constructor(t,n){this._monotonicClock=n,this._epochMillis=t.now(),this._performanceMillis=n.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};IF.AnchoredClock=e7});var LRe=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.isAttributeValue=dy.isAttributeKey=dy.sanitizeAttributes=void 0;var NRe=(Ce(),ke(Ze));function UMt(e){let t={};if(typeof e!="object"||e==null)return t;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if(!CRe(n)){NRe.diag.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!MRe(r)){NRe.diag.warn(`Invalid attribute value set for key: ${n}`);continue}Array.isArray(r)?t[n]=r.slice():t[n]=r}return t}dy.sanitizeAttributes=UMt;function CRe(e){return typeof e=="string"&&e!==""}dy.isAttributeKey=CRe;function MRe(e){return e==null?!0:Array.isArray(e)?FMt(e):DRe(typeof e)}dy.isAttributeValue=MRe;function FMt(e){let t;for(let n of e){if(n==null)continue;let r=typeof n;if(r!==t){if(!t){if(DRe(r)){t=r;continue}return!1}return!1}}return!0}function DRe(e){switch(e){case"number":case"boolean":case"string":return!0}return!1}});var t7=w(xF=>{"use strict";Object.defineProperty(xF,"__esModule",{value:!0});xF.loggingErrorHandler=void 0;var jMt=(Ce(),ke(Ze));function HMt(){return e=>{jMt.diag.error(qMt(e))}}xF.loggingErrorHandler=HMt;function qMt(e){return typeof e=="string"?e:JSON.stringify(BMt(e))}function BMt(e){let t={},n=e;for(;n!==null;)Object.getOwnPropertyNames(n).forEach(r=>{if(t[r])return;let i=n[r];i&&(t[r]=String(i))}),n=Object.getPrototypeOf(n);return t}});var FRe=w(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});lR.globalErrorHandler=lR.setGlobalErrorHandler=void 0;var zMt=t7(),URe=(0,zMt.loggingErrorHandler)();function GMt(e){URe=e}lR.setGlobalErrorHandler=GMt;function VMt(e){try{URe(e)}catch{}}lR.globalErrorHandler=VMt});var BRe=w(Op=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});Op.getStringListFromEnv=Op.getBooleanFromEnv=Op.getStringFromEnv=Op.getNumberFromEnv=void 0;var jRe=(Ce(),ke(Ze)),HRe=K("util");function WMt(e){let t=process.env[e];if(t==null||t.trim()==="")return;let n=Number(t);if(isNaN(n)){jRe.diag.warn(`Unknown value ${(0,HRe.inspect)(t)} for ${e}, expected a number, using defaults`);return}return n}Op.getNumberFromEnv=WMt;function qRe(e){let t=process.env[e];if(!(t==null||t.trim()===""))return t}Op.getStringFromEnv=qRe;function KMt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===""?!1:t==="true"?!0:(t==="false"||jRe.diag.warn(`Unknown value ${(0,HRe.inspect)(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}Op.getBooleanFromEnv=KMt;function YMt(e){return qRe(e)?.split(",").map(t=>t.trim()).filter(t=>t!=="")}Op.getStringListFromEnv=YMt});var zRe=w(OF=>{"use strict";Object.defineProperty(OF,"__esModule",{value:!0});OF._globalThis=void 0;OF._globalThis=globalThis});var GRe=w(PF=>{"use strict";Object.defineProperty(PF,"__esModule",{value:!0});PF.VERSION=void 0;PF.VERSION="2.6.1"});function ws(e){let t={},n=e.length;for(let r=0;r{});var VRe,WRe,KRe,YRe,ZRe,JRe,XRe,QRe,$Re,eAe,tAe,nAe,rAe,iAe,sAe,oAe,aAe,cAe,uAe,lAe,dAe,fAe,pAe,hAe,mAe,gAe,yAe,SAe,bAe,EAe,_Ae,TAe,vAe,RAe,AAe,wAe,kAe,IAe,xAe,OAe,PAe,NAe,CAe,MAe,DAe,LAe,UAe,FAe,jAe,HAe,qAe,BAe,zAe,GAe,VAe,WAe,KAe,YAe,ZAe,JAe,XAe,QAe,$Ae,ewe,twe,nwe,rwe,iwe,swe,owe,awe,cwe,uwe,lwe,dwe,fwe,pwe,hwe,mwe,gwe,ywe,Swe,bwe,Ewe,_we,Twe,vwe,Rwe,Awe,wwe,kwe,Iwe,xwe,Owe,Pwe,Nwe,Cwe,Mwe,Dwe,Lwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,zwe,Gwe,Vwe,Wwe,Kwe,Ywe,Zwe,Jwe,Xwe,Qwe,$we,eke,tke,nke,rke,ike,ske,oke,ake,cke,uke,lke,ZMt,r7,JMt,XMt,QMt,$Mt,i7,eDt,tDt,nDt,rDt,iDt,sDt,oDt,aDt,cDt,uDt,lDt,dDt,fDt,pDt,hDt,mDt,gDt,yDt,s7,SDt,bDt,EDt,_Dt,TDt,vDt,RDt,ADt,wDt,kDt,IDt,xDt,o7,ODt,PDt,a7,c7,NDt,CDt,MDt,DDt,LDt,UDt,FDt,jDt,HDt,qDt,BDt,zDt,GDt,VDt,WDt,KDt,YDt,mO,dR,u7,ZDt,JDt,gE,XDt,QDt,$Dt,eLt,l7,d7,tLt,f7,nLt,rLt,iLt,sLt,oLt,aLt,cLt,uLt,lLt,dLt,fLt,pLt,hLt,mLt,gLt,yLt,SLt,bLt,ELt,_Lt,TLt,vLt,RLt,p7,ALt,wLt,kLt,ILt,xLt,OLt,PLt,NLt,CLt,MLt,DLt,LLt,ULt,FLt,jLt,HLt,qLt,BLt,zLt,h7,GLt,m7,VLt,WLt,KLt,YLt,ZLt,JLt,XLt,QLt,$Lt,dke,fke,pke,hke,mke,gke,yke,Ske,bke,Eke,_ke,Tke,vke,Rke,Ake,wke,kke,Ike,xke,Oke,Pke,Nke,Cke,Mke,Dke,Lke,Uke,Fke,jke,Hke,qke,Bke,zke,Gke,Vke,Wke,Kke,Yke,Zke,Jke,Xke,Qke,$ke,eIe,tIe,nIe,rIe,e1t,t1t,n1t,r1t,i1t,s1t,o1t,a1t,c1t,u1t,l1t,d1t,f1t,p1t,h1t,m1t,g1t,y1t,S1t,b1t,E1t,_1t,T1t,v1t,R1t,A1t,w1t,k1t,I1t,x1t,O1t,P1t,N1t,C1t,M1t,D1t,L1t,U1t,F1t,j1t,H1t,q1t,B1t,z1t,G1t,V1t,W1t,K1t,iIe,sIe,oIe,aIe,cIe,uIe,lIe,dIe,fIe,pIe,hIe,Y1t,Z1t,J1t,X1t,Q1t,$1t,eUt,tUt,nUt,rUt,iUt,sUt,mIe,gIe,yIe,SIe,bIe,oUt,aUt,cUt,uUt,lUt,dUt,EIe,_Ie,TIe,fUt,pUt,hUt,mUt,vIe,RIe,AIe,wIe,gUt,yUt,SUt,bUt,EUt,kIe,IIe,xIe,OIe,PIe,NIe,CIe,_Ut,TUt,vUt,RUt,AUt,wUt,kUt,IUt,MIe,DIe,LIe,UIe,FIe,xUt,OUt,PUt,NUt,CUt,MUt,jIe,HIe,qIe,BIe,zIe,GIe,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e,DUt,LUt,UUt,FUt,jUt,HUt,qUt,BUt,zUt,GUt,VUt,WUt,KUt,YUt,ZUt,JUt,XUt,QUt,$Ut,eFt,tFt,nFt,o0e,a0e,c0e,u0e,l0e,rFt,iFt,sFt,oFt,aFt,cFt,d0e,f0e,uFt,lFt,dFt,p0e,h0e,fFt,pFt,hFt,m0e,g0e,y0e,S0e,b0e,E0e,_0e,T0e,v0e,R0e,A0e,w0e,k0e,I0e,x0e,O0e,P0e,mFt,gFt,yFt,SFt,bFt,EFt,_Ft,TFt,vFt,RFt,AFt,wFt,kFt,IFt,xFt,OFt,PFt,NFt,N0e,C0e,CFt,MFt,DFt,M0e=v(()=>{n7();VRe="aws.lambda.invoked_arn",WRe="db.system",KRe="db.connection_string",YRe="db.user",ZRe="db.jdbc.driver_classname",JRe="db.name",XRe="db.statement",QRe="db.operation",$Re="db.mssql.instance_name",eAe="db.cassandra.keyspace",tAe="db.cassandra.page_size",nAe="db.cassandra.consistency_level",rAe="db.cassandra.table",iAe="db.cassandra.idempotence",sAe="db.cassandra.speculative_execution_count",oAe="db.cassandra.coordinator.id",aAe="db.cassandra.coordinator.dc",cAe="db.hbase.namespace",uAe="db.redis.database_index",lAe="db.mongodb.collection",dAe="db.sql.table",fAe="exception.type",pAe="exception.message",hAe="exception.stacktrace",mAe="exception.escaped",gAe="faas.trigger",yAe="faas.execution",SAe="faas.document.collection",bAe="faas.document.operation",EAe="faas.document.time",_Ae="faas.document.name",TAe="faas.time",vAe="faas.cron",RAe="faas.coldstart",AAe="faas.invoked_name",wAe="faas.invoked_provider",kAe="faas.invoked_region",IAe="net.transport",xAe="net.peer.ip",OAe="net.peer.port",PAe="net.peer.name",NAe="net.host.ip",CAe="net.host.port",MAe="net.host.name",DAe="net.host.connection.type",LAe="net.host.connection.subtype",UAe="net.host.carrier.name",FAe="net.host.carrier.mcc",jAe="net.host.carrier.mnc",HAe="net.host.carrier.icc",qAe="peer.service",BAe="enduser.id",zAe="enduser.role",GAe="enduser.scope",VAe="thread.id",WAe="thread.name",KAe="code.function",YAe="code.namespace",ZAe="code.filepath",JAe="code.lineno",XAe="http.method",QAe="http.url",$Ae="http.target",ewe="http.host",twe="http.scheme",nwe="http.status_code",rwe="http.flavor",iwe="http.user_agent",swe="http.request_content_length",owe="http.request_content_length_uncompressed",awe="http.response_content_length",cwe="http.response_content_length_uncompressed",uwe="http.server_name",lwe="http.route",dwe="http.client_ip",fwe="aws.dynamodb.table_names",pwe="aws.dynamodb.consumed_capacity",hwe="aws.dynamodb.item_collection_metrics",mwe="aws.dynamodb.provisioned_read_capacity",gwe="aws.dynamodb.provisioned_write_capacity",ywe="aws.dynamodb.consistent_read",Swe="aws.dynamodb.projection",bwe="aws.dynamodb.limit",Ewe="aws.dynamodb.attributes_to_get",_we="aws.dynamodb.index_name",Twe="aws.dynamodb.select",vwe="aws.dynamodb.global_secondary_indexes",Rwe="aws.dynamodb.local_secondary_indexes",Awe="aws.dynamodb.exclusive_start_table",wwe="aws.dynamodb.table_count",kwe="aws.dynamodb.scan_forward",Iwe="aws.dynamodb.segment",xwe="aws.dynamodb.total_segments",Owe="aws.dynamodb.count",Pwe="aws.dynamodb.scanned_count",Nwe="aws.dynamodb.attribute_definitions",Cwe="aws.dynamodb.global_secondary_index_updates",Mwe="messaging.system",Dwe="messaging.destination",Lwe="messaging.destination_kind",Uwe="messaging.temp_destination",Fwe="messaging.protocol",jwe="messaging.protocol_version",Hwe="messaging.url",qwe="messaging.message_id",Bwe="messaging.conversation_id",zwe="messaging.message_payload_size_bytes",Gwe="messaging.message_payload_compressed_size_bytes",Vwe="messaging.operation",Wwe="messaging.consumer_id",Kwe="messaging.rabbitmq.routing_key",Ywe="messaging.kafka.message_key",Zwe="messaging.kafka.consumer_group",Jwe="messaging.kafka.client_id",Xwe="messaging.kafka.partition",Qwe="messaging.kafka.tombstone",$we="rpc.system",eke="rpc.service",tke="rpc.method",nke="rpc.grpc.status_code",rke="rpc.jsonrpc.version",ike="rpc.jsonrpc.request_id",ske="rpc.jsonrpc.error_code",oke="rpc.jsonrpc.error_message",ake="message.type",cke="message.id",uke="message.compressed_size",lke="message.uncompressed_size",ZMt=VRe,r7=WRe,JMt=KRe,XMt=YRe,QMt=ZRe,$Mt=JRe,i7=XRe,eDt=QRe,tDt=$Re,nDt=eAe,rDt=tAe,iDt=nAe,sDt=rAe,oDt=iAe,aDt=sAe,cDt=oAe,uDt=aAe,lDt=cAe,dDt=uAe,fDt=lAe,pDt=dAe,hDt=fAe,mDt=pAe,gDt=hAe,yDt=mAe,s7=gAe,SDt=yAe,bDt=SAe,EDt=bAe,_Dt=EAe,TDt=_Ae,vDt=TAe,RDt=vAe,ADt=RAe,wDt=AAe,kDt=wAe,IDt=kAe,xDt=IAe,o7=xAe,ODt=OAe,PDt=PAe,a7=NAe,c7=CAe,NDt=MAe,CDt=DAe,MDt=LAe,DDt=UAe,LDt=FAe,UDt=jAe,FDt=HAe,jDt=qAe,HDt=BAe,qDt=zAe,BDt=GAe,zDt=VAe,GDt=WAe,VDt=KAe,WDt=YAe,KDt=ZAe,YDt=JAe,mO=XAe,dR=QAe,u7=$Ae,ZDt=ewe,JDt=twe,gE=nwe,XDt=rwe,QDt=iwe,$Dt=swe,eLt=owe,l7=awe,d7=cwe,tLt=uwe,f7=lwe,nLt=dwe,rLt=fwe,iLt=pwe,sLt=hwe,oLt=mwe,aLt=gwe,cLt=ywe,uLt=Swe,lLt=bwe,dLt=Ewe,fLt=_we,pLt=Twe,hLt=vwe,mLt=Rwe,gLt=Awe,yLt=wwe,SLt=kwe,bLt=Iwe,ELt=xwe,_Lt=Owe,TLt=Pwe,vLt=Nwe,RLt=Cwe,p7=Mwe,ALt=Dwe,wLt=Lwe,kLt=Uwe,ILt=Fwe,xLt=jwe,OLt=Hwe,PLt=qwe,NLt=Bwe,CLt=zwe,MLt=Gwe,DLt=Vwe,LLt=Wwe,ULt=Kwe,FLt=Ywe,jLt=Zwe,HLt=Jwe,qLt=Xwe,BLt=Qwe,zLt=$we,h7=eke,GLt=tke,m7=nke,VLt=rke,WLt=ike,KLt=ske,YLt=oke,ZLt=ake,JLt=cke,XLt=uke,QLt=lke,$Lt=ws([VRe,WRe,KRe,YRe,ZRe,JRe,XRe,QRe,$Re,eAe,tAe,nAe,rAe,iAe,sAe,oAe,aAe,cAe,uAe,lAe,dAe,fAe,pAe,hAe,mAe,gAe,yAe,SAe,bAe,EAe,_Ae,TAe,vAe,RAe,AAe,wAe,kAe,IAe,xAe,OAe,PAe,NAe,CAe,MAe,DAe,LAe,UAe,FAe,jAe,HAe,qAe,BAe,zAe,GAe,VAe,WAe,KAe,YAe,ZAe,JAe,XAe,QAe,$Ae,ewe,twe,nwe,rwe,iwe,swe,owe,awe,cwe,uwe,lwe,dwe,fwe,pwe,hwe,mwe,gwe,ywe,Swe,bwe,Ewe,_we,Twe,vwe,Rwe,Awe,wwe,kwe,Iwe,xwe,Owe,Pwe,Nwe,Cwe,Mwe,Dwe,Lwe,Uwe,Fwe,jwe,Hwe,qwe,Bwe,zwe,Gwe,Vwe,Wwe,Kwe,Ywe,Zwe,Jwe,Xwe,Qwe,$we,eke,tke,nke,rke,ike,ske,oke,ake,cke,uke,lke]),dke="other_sql",fke="mssql",pke="mysql",hke="oracle",mke="db2",gke="postgresql",yke="redshift",Ske="hive",bke="cloudscape",Eke="hsqldb",_ke="progress",Tke="maxdb",vke="hanadb",Rke="ingres",Ake="firstsql",wke="edb",kke="cache",Ike="adabas",xke="firebird",Oke="derby",Pke="filemaker",Nke="informix",Cke="instantdb",Mke="interbase",Dke="mariadb",Lke="netezza",Uke="pervasive",Fke="pointbase",jke="sqlite",Hke="sybase",qke="teradata",Bke="vertica",zke="h2",Gke="coldfusion",Vke="cassandra",Wke="hbase",Kke="mongodb",Yke="redis",Zke="couchbase",Jke="couchdb",Xke="cosmosdb",Qke="dynamodb",$ke="neo4j",eIe="geode",tIe="elasticsearch",nIe="memcached",rIe="cockroachdb",e1t=dke,t1t=fke,n1t=pke,r1t=hke,i1t=mke,s1t=gke,o1t=yke,a1t=Ske,c1t=bke,u1t=Eke,l1t=_ke,d1t=Tke,f1t=vke,p1t=Rke,h1t=Ake,m1t=wke,g1t=kke,y1t=Ike,S1t=xke,b1t=Oke,E1t=Pke,_1t=Nke,T1t=Cke,v1t=Mke,R1t=Dke,A1t=Lke,w1t=Uke,k1t=Fke,I1t=jke,x1t=Hke,O1t=qke,P1t=Bke,N1t=zke,C1t=Gke,M1t=Vke,D1t=Wke,L1t=Kke,U1t=Yke,F1t=Zke,j1t=Jke,H1t=Xke,q1t=Qke,B1t=$ke,z1t=eIe,G1t=tIe,V1t=nIe,W1t=rIe,K1t=ws([dke,fke,pke,hke,mke,gke,yke,Ske,bke,Eke,_ke,Tke,vke,Rke,Ake,wke,kke,Ike,xke,Oke,Pke,Nke,Cke,Mke,Dke,Lke,Uke,Fke,jke,Hke,qke,Bke,zke,Gke,Vke,Wke,Kke,Yke,Zke,Jke,Xke,Qke,$ke,eIe,tIe,nIe,rIe]),iIe="all",sIe="each_quorum",oIe="quorum",aIe="local_quorum",cIe="one",uIe="two",lIe="three",dIe="local_one",fIe="any",pIe="serial",hIe="local_serial",Y1t=iIe,Z1t=sIe,J1t=oIe,X1t=aIe,Q1t=cIe,$1t=uIe,eUt=lIe,tUt=dIe,nUt=fIe,rUt=pIe,iUt=hIe,sUt=ws([iIe,sIe,oIe,aIe,cIe,uIe,lIe,dIe,fIe,pIe,hIe]),mIe="datasource",gIe="http",yIe="pubsub",SIe="timer",bIe="other",oUt=mIe,aUt=gIe,cUt=yIe,uUt=SIe,lUt=bIe,dUt=ws([mIe,gIe,yIe,SIe,bIe]),EIe="insert",_Ie="edit",TIe="delete",fUt=EIe,pUt=_Ie,hUt=TIe,mUt=ws([EIe,_Ie,TIe]),vIe="alibaba_cloud",RIe="aws",AIe="azure",wIe="gcp",gUt=vIe,yUt=RIe,SUt=AIe,bUt=wIe,EUt=ws([vIe,RIe,AIe,wIe]),kIe="ip_tcp",IIe="ip_udp",xIe="ip",OIe="unix",PIe="pipe",NIe="inproc",CIe="other",_Ut=kIe,TUt=IIe,vUt=xIe,RUt=OIe,AUt=PIe,wUt=NIe,kUt=CIe,IUt=ws([kIe,IIe,xIe,OIe,PIe,NIe,CIe]),MIe="wifi",DIe="wired",LIe="cell",UIe="unavailable",FIe="unknown",xUt=MIe,OUt=DIe,PUt=LIe,NUt=UIe,CUt=FIe,MUt=ws([MIe,DIe,LIe,UIe,FIe]),jIe="gprs",HIe="edge",qIe="umts",BIe="cdma",zIe="evdo_0",GIe="evdo_a",VIe="cdma2000_1xrtt",WIe="hsdpa",KIe="hsupa",YIe="hspa",ZIe="iden",JIe="evdo_b",XIe="lte",QIe="ehrpd",$Ie="hspap",e0e="gsm",t0e="td_scdma",n0e="iwlan",r0e="nr",i0e="nrnsa",s0e="lte_ca",DUt=jIe,LUt=HIe,UUt=qIe,FUt=BIe,jUt=zIe,HUt=GIe,qUt=VIe,BUt=WIe,zUt=KIe,GUt=YIe,VUt=ZIe,WUt=JIe,KUt=XIe,YUt=QIe,ZUt=$Ie,JUt=e0e,XUt=t0e,QUt=n0e,$Ut=r0e,eFt=i0e,tFt=s0e,nFt=ws([jIe,HIe,qIe,BIe,zIe,GIe,VIe,WIe,KIe,YIe,ZIe,JIe,XIe,QIe,$Ie,e0e,t0e,n0e,r0e,i0e,s0e]),o0e="1.0",a0e="1.1",c0e="2.0",u0e="SPDY",l0e="QUIC",rFt=o0e,iFt=a0e,sFt=c0e,oFt=u0e,aFt=l0e,cFt={HTTP_1_0:o0e,HTTP_1_1:a0e,HTTP_2_0:c0e,SPDY:u0e,QUIC:l0e},d0e="queue",f0e="topic",uFt=d0e,lFt=f0e,dFt=ws([d0e,f0e]),p0e="receive",h0e="process",fFt=p0e,pFt=h0e,hFt=ws([p0e,h0e]),m0e=0,g0e=1,y0e=2,S0e=3,b0e=4,E0e=5,_0e=6,T0e=7,v0e=8,R0e=9,A0e=10,w0e=11,k0e=12,I0e=13,x0e=14,O0e=15,P0e=16,mFt=m0e,gFt=g0e,yFt=y0e,SFt=S0e,bFt=b0e,EFt=E0e,_Ft=_0e,TFt=T0e,vFt=v0e,RFt=R0e,AFt=A0e,wFt=w0e,kFt=k0e,IFt=I0e,xFt=x0e,OFt=O0e,PFt=P0e,NFt={OK:m0e,CANCELLED:g0e,UNKNOWN:y0e,INVALID_ARGUMENT:S0e,DEADLINE_EXCEEDED:b0e,NOT_FOUND:E0e,ALREADY_EXISTS:_0e,PERMISSION_DENIED:T0e,RESOURCE_EXHAUSTED:v0e,FAILED_PRECONDITION:R0e,ABORTED:A0e,OUT_OF_RANGE:w0e,UNIMPLEMENTED:k0e,INTERNAL:I0e,UNAVAILABLE:x0e,DATA_LOSS:O0e,UNAUTHENTICATED:P0e},N0e="SENT",C0e="RECEIVED",CFt=N0e,MFt=C0e,DFt=ws([N0e,C0e])});var D0e=v(()=>{M0e()});var L0e,U0e,F0e,j0e,H0e,q0e,B0e,z0e,G0e,V0e,W0e,K0e,Y0e,Z0e,J0e,X0e,Q0e,$0e,exe,txe,nxe,rxe,ixe,sxe,oxe,axe,cxe,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,bxe,Exe,_xe,Txe,vxe,Rxe,Axe,wxe,kxe,Ixe,xxe,Oxe,Pxe,Nxe,Cxe,Mxe,Dxe,Lxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,zxe,Gxe,Vxe,Wxe,Kxe,Yxe,Zxe,Jxe,Xxe,Qxe,$xe,eOe,tOe,nOe,rOe,iOe,sOe,oOe,aOe,cOe,LFt,UFt,FFt,jFt,HFt,qFt,BFt,zFt,GFt,VFt,WFt,KFt,YFt,ZFt,JFt,XFt,QFt,$Ft,ejt,tjt,njt,rjt,ijt,sjt,ojt,ajt,cjt,ujt,ljt,djt,fjt,pjt,hjt,mjt,gjt,yjt,Sjt,bjt,Ejt,_jt,Tjt,vjt,Rjt,Ajt,wjt,kjt,Ijt,xjt,Ojt,Pjt,Njt,Cjt,Mjt,Djt,Ljt,Ujt,Fjt,jjt,Hjt,qjt,Bjt,zjt,Gjt,Vjt,Wjt,Kjt,Yjt,Zjt,Jjt,Xjt,Qjt,g7,$jt,eHt,tHt,nHt,rHt,iHt,sHt,oHt,aHt,cHt,uOe,lOe,dOe,fOe,uHt,lHt,dHt,fHt,pHt,pOe,hOe,mOe,gOe,yOe,SOe,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe,hHt,mHt,gHt,yHt,SHt,bHt,EHt,_Ht,THt,vHt,RHt,AHt,wHt,kHt,IHt,xHt,OHt,PHt,OOe,POe,NHt,CHt,MHt,NOe,COe,MOe,DOe,LOe,UOe,FOe,DHt,LHt,UHt,FHt,jHt,HHt,qHt,BHt,jOe,HOe,qOe,BOe,zOe,GOe,VOe,WOe,KOe,YOe,ZOe,zHt,GHt,VHt,WHt,KHt,YHt,ZHt,JHt,XHt,QHt,$Ht,eqt,JOe,XOe,QOe,$Oe,ePe,tPe,nPe,rPe,iPe,sPe,tqt,nqt,rqt,iqt,sqt,oqt,aqt,cqt,uqt,lqt,dqt,oPe=v(()=>{n7();L0e="cloud.provider",U0e="cloud.account.id",F0e="cloud.region",j0e="cloud.availability_zone",H0e="cloud.platform",q0e="aws.ecs.container.arn",B0e="aws.ecs.cluster.arn",z0e="aws.ecs.launchtype",G0e="aws.ecs.task.arn",V0e="aws.ecs.task.family",W0e="aws.ecs.task.revision",K0e="aws.eks.cluster.arn",Y0e="aws.log.group.names",Z0e="aws.log.group.arns",J0e="aws.log.stream.names",X0e="aws.log.stream.arns",Q0e="container.name",$0e="container.id",exe="container.runtime",txe="container.image.name",nxe="container.image.tag",rxe="deployment.environment",ixe="device.id",sxe="device.model.identifier",oxe="device.model.name",axe="faas.name",cxe="faas.id",uxe="faas.version",lxe="faas.instance",dxe="faas.max_memory",fxe="host.id",pxe="host.name",hxe="host.type",mxe="host.arch",gxe="host.image.name",yxe="host.image.id",Sxe="host.image.version",bxe="k8s.cluster.name",Exe="k8s.node.name",_xe="k8s.node.uid",Txe="k8s.namespace.name",vxe="k8s.pod.uid",Rxe="k8s.pod.name",Axe="k8s.container.name",wxe="k8s.replicaset.uid",kxe="k8s.replicaset.name",Ixe="k8s.deployment.uid",xxe="k8s.deployment.name",Oxe="k8s.statefulset.uid",Pxe="k8s.statefulset.name",Nxe="k8s.daemonset.uid",Cxe="k8s.daemonset.name",Mxe="k8s.job.uid",Dxe="k8s.job.name",Lxe="k8s.cronjob.uid",Uxe="k8s.cronjob.name",Fxe="os.type",jxe="os.description",Hxe="os.name",qxe="os.version",Bxe="process.pid",zxe="process.executable.name",Gxe="process.executable.path",Vxe="process.command",Wxe="process.command_line",Kxe="process.command_args",Yxe="process.owner",Zxe="process.runtime.name",Jxe="process.runtime.version",Xxe="process.runtime.description",Qxe="service.name",$xe="service.namespace",eOe="service.instance.id",tOe="service.version",nOe="telemetry.sdk.name",rOe="telemetry.sdk.language",iOe="telemetry.sdk.version",sOe="telemetry.auto.version",oOe="webengine.name",aOe="webengine.version",cOe="webengine.description",LFt=L0e,UFt=U0e,FFt=F0e,jFt=j0e,HFt=H0e,qFt=q0e,BFt=B0e,zFt=z0e,GFt=G0e,VFt=V0e,WFt=W0e,KFt=K0e,YFt=Y0e,ZFt=Z0e,JFt=J0e,XFt=X0e,QFt=Q0e,$Ft=$0e,ejt=exe,tjt=txe,njt=nxe,rjt=rxe,ijt=ixe,sjt=sxe,ojt=oxe,ajt=axe,cjt=cxe,ujt=uxe,ljt=lxe,djt=dxe,fjt=fxe,pjt=pxe,hjt=hxe,mjt=mxe,gjt=gxe,yjt=yxe,Sjt=Sxe,bjt=bxe,Ejt=Exe,_jt=_xe,Tjt=Txe,vjt=vxe,Rjt=Rxe,Ajt=Axe,wjt=wxe,kjt=kxe,Ijt=Ixe,xjt=xxe,Ojt=Oxe,Pjt=Pxe,Njt=Nxe,Cjt=Cxe,Mjt=Mxe,Djt=Dxe,Ljt=Lxe,Ujt=Uxe,Fjt=Fxe,jjt=jxe,Hjt=Hxe,qjt=qxe,Bjt=Bxe,zjt=zxe,Gjt=Gxe,Vjt=Vxe,Wjt=Wxe,Kjt=Kxe,Yjt=Yxe,Zjt=Zxe,Jjt=Jxe,Xjt=Xxe,Qjt=Qxe,g7=$xe,$jt=eOe,eHt=tOe,tHt=nOe,nHt=rOe,rHt=iOe,iHt=sOe,sHt=oOe,oHt=aOe,aHt=cOe,cHt=ws([L0e,U0e,F0e,j0e,H0e,q0e,B0e,z0e,G0e,V0e,W0e,K0e,Y0e,Z0e,J0e,X0e,Q0e,$0e,exe,txe,nxe,rxe,ixe,sxe,oxe,axe,cxe,uxe,lxe,dxe,fxe,pxe,hxe,mxe,gxe,yxe,Sxe,bxe,Exe,_xe,Txe,vxe,Rxe,Axe,wxe,kxe,Ixe,xxe,Oxe,Pxe,Nxe,Cxe,Mxe,Dxe,Lxe,Uxe,Fxe,jxe,Hxe,qxe,Bxe,zxe,Gxe,Vxe,Wxe,Kxe,Yxe,Zxe,Jxe,Xxe,Qxe,$xe,eOe,tOe,nOe,rOe,iOe,sOe,oOe,aOe,cOe]),uOe="alibaba_cloud",lOe="aws",dOe="azure",fOe="gcp",uHt=uOe,lHt=lOe,dHt=dOe,fHt=fOe,pHt=ws([uOe,lOe,dOe,fOe]),pOe="alibaba_cloud_ecs",hOe="alibaba_cloud_fc",mOe="aws_ec2",gOe="aws_ecs",yOe="aws_eks",SOe="aws_lambda",bOe="aws_elastic_beanstalk",EOe="azure_vm",_Oe="azure_container_instances",TOe="azure_aks",vOe="azure_functions",ROe="azure_app_service",AOe="gcp_compute_engine",wOe="gcp_cloud_run",kOe="gcp_kubernetes_engine",IOe="gcp_cloud_functions",xOe="gcp_app_engine",hHt=pOe,mHt=hOe,gHt=mOe,yHt=gOe,SHt=yOe,bHt=SOe,EHt=bOe,_Ht=EOe,THt=_Oe,vHt=TOe,RHt=vOe,AHt=ROe,wHt=AOe,kHt=wOe,IHt=kOe,xHt=IOe,OHt=xOe,PHt=ws([pOe,hOe,mOe,gOe,yOe,SOe,bOe,EOe,_Oe,TOe,vOe,ROe,AOe,wOe,kOe,IOe,xOe]),OOe="ec2",POe="fargate",NHt=OOe,CHt=POe,MHt=ws([OOe,POe]),NOe="amd64",COe="arm32",MOe="arm64",DOe="ia64",LOe="ppc32",UOe="ppc64",FOe="x86",DHt=NOe,LHt=COe,UHt=MOe,FHt=DOe,jHt=LOe,HHt=UOe,qHt=FOe,BHt=ws([NOe,COe,MOe,DOe,LOe,UOe,FOe]),jOe="windows",HOe="linux",qOe="darwin",BOe="freebsd",zOe="netbsd",GOe="openbsd",VOe="dragonflybsd",WOe="hpux",KOe="aix",YOe="solaris",ZOe="z_os",zHt=jOe,GHt=HOe,VHt=qOe,WHt=BOe,KHt=zOe,YHt=GOe,ZHt=VOe,JHt=WOe,XHt=KOe,QHt=YOe,$Ht=ZOe,eqt=ws([jOe,HOe,qOe,BOe,zOe,GOe,VOe,WOe,KOe,YOe,ZOe]),JOe="cpp",XOe="dotnet",QOe="erlang",$Oe="go",ePe="java",tPe="nodejs",nPe="php",rPe="python",iPe="ruby",sPe="webjs",tqt=JOe,nqt=XOe,rqt=QOe,iqt=$Oe,sqt=ePe,oqt=tPe,aqt=nPe,cqt=rPe,uqt=iPe,lqt=sPe,dqt=ws([JOe,XOe,QOe,$Oe,ePe,tPe,nPe,rPe,iPe,sPe])});var aPe=v(()=>{oPe()});var fqt,pqt,hqt,mqt,gqt,yqt,Sqt,bqt,Eqt,_qt,Tqt,vqt,Rqt,Aqt,wqt,kqt,Iqt,xqt,Oqt,Pqt,Nqt,Cqt,Mqt,Dqt,Lqt,y7,S7,Uqt,fR,Fqt,b7,E7,jqt,yE,Hqt,qqt,Bqt,zqt,Gqt,Vqt,Wqt,Kqt,Nyr,Cyr,_7,Yqt,Zqt,Jqt,Xqt,Qqt,$qt,SE,eBt,tBt,nBt,Myr,rBt,iBt,sBt,oBt,Dyr,aBt,cBt,uBt,lBt,um,lm,dBt,fBt,pBt,hBt,mBt,gBt,yBt,SBt,bBt,Lyr,EBt,_Bt,TBt,vBt,RBt,ABt,T7,v7,wBt,R7,A7,kBt,IBt,Uyr,Fyr,xBt,OBt,PBt,NBt,CBt,MBt,DBt,LBt,jyr,UBt,w7,k7,FBt,I7,jBt,x7,HBt,qBt,BBt,zBt,GBt,VBt,WBt,KBt,YBt,Hyr,ZBt,JBt,qyr,XBt,QBt,Byr,$Bt,ezt,tzt,nzt,rzt,izt,szt,ozt,fy,azt,czt,uzt,O7,cPe=v(()=>{fqt="aspnetcore.diagnostics.exception.result",pqt="aborted",hqt="handled",mqt="skipped",gqt="unhandled",yqt="aspnetcore.diagnostics.handler.type",Sqt="aspnetcore.rate_limiting.policy",bqt="aspnetcore.rate_limiting.result",Eqt="acquired",_qt="endpoint_limiter",Tqt="global_limiter",vqt="request_canceled",Rqt="aspnetcore.request.is_unhandled",Aqt="aspnetcore.routing.is_fallback",wqt="aspnetcore.routing.match_status",kqt="failure",Iqt="success",xqt="aspnetcore.user.is_authenticated",Oqt="client.address",Pqt="client.port",Nqt="code.column.number",Cqt="code.file.path",Mqt="code.function.name",Dqt="code.line.number",Lqt="code.stacktrace",y7="db.collection.name",S7="db.namespace",Uqt="db.operation.batch.size",fR="db.operation.name",Fqt="db.query.summary",b7="db.query.text",E7="db.response.status_code",jqt="db.stored_procedure.name",yE="db.system.name",Hqt="mariadb",qqt="microsoft.sql_server",Bqt="mysql",zqt="postgresql",Gqt="dotnet.gc.heap.generation",Vqt="gen0",Wqt="gen1",Kqt="gen2",Nyr="loh",Cyr="poh",_7="error.type",Yqt="_OTHER",Zqt="exception.escaped",Jqt="exception.message",Xqt="exception.stacktrace",Qqt="exception.type",$qt=e=>`http.request.header.${e}`,SE="http.request.method",eBt="_OTHER",tBt="CONNECT",nBt="DELETE",Myr="GET",rBt="HEAD",iBt="OPTIONS",sBt="PATCH",oBt="POST",Dyr="PUT",aBt="TRACE",cBt="http.request.method_original",uBt="http.request.resend_count",lBt=e=>`http.response.header.${e}`,um="http.response.status_code",lm="http.route",dBt="jvm.gc.action",fBt="jvm.gc.name",pBt="jvm.memory.pool.name",hBt="jvm.memory.type",mBt="heap",gBt="non_heap",yBt="jvm.thread.daemon",SBt="jvm.thread.state",bBt="blocked",Lyr="new",EBt="runnable",_Bt="terminated",TBt="timed_waiting",vBt="waiting",RBt="network.local.address",ABt="network.local.port",T7="network.peer.address",v7="network.peer.port",wBt="network.protocol.name",R7="network.protocol.version",A7="network.transport",kBt="pipe",IBt="quic",Uyr="tcp",Fyr="udp",xBt="unix",OBt="network.type",PBt="ipv4",NBt="ipv6",CBt="otel.scope.name",MBt="otel.scope.version",DBt="otel.status_code",LBt="ERROR",jyr="OK",UBt="otel.status_description",w7="server.address",k7="server.port",FBt="service.instance.id",I7="service.name",jBt="service.namespace",x7="service.version",HBt="signalr.connection.status",qBt="app_shutdown",BBt="normal_closure",zBt="timeout",GBt="signalr.transport",VBt="long_polling",WBt="server_sent_events",KBt="web_sockets",YBt="telemetry.sdk.language",Hyr="cpp",ZBt="dotnet",JBt="erlang",qyr="go",XBt="java",QBt="nodejs",Byr="php",$Bt="python",ezt="ruby",tzt="rust",nzt="swift",rzt="webjs",izt="telemetry.sdk.name",szt="telemetry.sdk.version",ozt="url.fragment",fy="url.full",azt="url.path",czt="url.query",uzt="url.scheme",O7="user_agent.original"});var lzt,dzt,fzt,pzt,hzt,mzt,gzt,yzt,Szt,bzt,Ezt,_zt,Tzt,vzt,Rzt,Azt,wzt,kzt,Izt,xzt,Ozt,Pzt,Nzt,Czt,Mzt,Dzt,Lzt,Uzt,Fzt,jzt,Hzt,qzt,Bzt,zzt,Gzt,Vzt,Wzt,Kzt,Yzt,Zzt,Jzt,Xzt,Qzt,$zt,eGt,tGt,nGt,rGt,iGt,sGt,oGt,uPe=v(()=>{lzt="aspnetcore.diagnostics.exceptions",dzt="aspnetcore.rate_limiting.active_request_leases",fzt="aspnetcore.rate_limiting.queued_requests",pzt="aspnetcore.rate_limiting.request.time_in_queue",hzt="aspnetcore.rate_limiting.request_lease.duration",mzt="aspnetcore.rate_limiting.requests",gzt="aspnetcore.routing.match_attempts",yzt="db.client.operation.duration",Szt="dotnet.assembly.count",bzt="dotnet.exceptions",Ezt="dotnet.gc.collections",_zt="dotnet.gc.heap.total_allocated",Tzt="dotnet.gc.last_collection.heap.fragmentation.size",vzt="dotnet.gc.last_collection.heap.size",Rzt="dotnet.gc.last_collection.memory.committed_size",Azt="dotnet.gc.pause.time",wzt="dotnet.jit.compilation.time",kzt="dotnet.jit.compiled_il.size",Izt="dotnet.jit.compiled_methods",xzt="dotnet.monitor.lock_contentions",Ozt="dotnet.process.cpu.count",Pzt="dotnet.process.cpu.time",Nzt="dotnet.process.memory.working_set",Czt="dotnet.thread_pool.queue.length",Mzt="dotnet.thread_pool.thread.count",Dzt="dotnet.thread_pool.work_item.count",Lzt="dotnet.timer.count",Uzt="http.client.request.duration",Fzt="http.server.request.duration",jzt="jvm.class.count",Hzt="jvm.class.loaded",qzt="jvm.class.unloaded",Bzt="jvm.cpu.count",zzt="jvm.cpu.recent_utilization",Gzt="jvm.cpu.time",Vzt="jvm.gc.duration",Wzt="jvm.memory.committed",Kzt="jvm.memory.limit",Yzt="jvm.memory.used",Zzt="jvm.memory.used_after_last_gc",Jzt="jvm.thread.count",Xzt="kestrel.active_connections",Qzt="kestrel.active_tls_handshakes",$zt="kestrel.connection.duration",eGt="kestrel.queued_connections",tGt="kestrel.queued_requests",nGt="kestrel.rejected_connections",rGt="kestrel.tls_handshake.duration",iGt="kestrel.upgraded_connections",sGt="signalr.server.active_connections",oGt="signalr.server.connection.duration"});var aGt,lPe=v(()=>{aGt="exception"});var Mr={};Ar(Mr,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>pqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>hqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>mqt,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>gqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>Eqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>_qt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>Tqt,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>vqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>kqt,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>Iqt,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>fqt,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>yqt,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>Sqt,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>bqt,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>Rqt,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>Aqt,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>wqt,ATTR_ASPNETCORE_USER_IS_AUTHENTICATED:()=>xqt,ATTR_CLIENT_ADDRESS:()=>Oqt,ATTR_CLIENT_PORT:()=>Pqt,ATTR_CODE_COLUMN_NUMBER:()=>Nqt,ATTR_CODE_FILE_PATH:()=>Cqt,ATTR_CODE_FUNCTION_NAME:()=>Mqt,ATTR_CODE_LINE_NUMBER:()=>Dqt,ATTR_CODE_STACKTRACE:()=>Lqt,ATTR_DB_COLLECTION_NAME:()=>y7,ATTR_DB_NAMESPACE:()=>S7,ATTR_DB_OPERATION_BATCH_SIZE:()=>Uqt,ATTR_DB_OPERATION_NAME:()=>fR,ATTR_DB_QUERY_SUMMARY:()=>Fqt,ATTR_DB_QUERY_TEXT:()=>b7,ATTR_DB_RESPONSE_STATUS_CODE:()=>E7,ATTR_DB_STORED_PROCEDURE_NAME:()=>jqt,ATTR_DB_SYSTEM_NAME:()=>yE,ATTR_DOTNET_GC_HEAP_GENERATION:()=>Gqt,ATTR_ERROR_TYPE:()=>_7,ATTR_EXCEPTION_ESCAPED:()=>Zqt,ATTR_EXCEPTION_MESSAGE:()=>Jqt,ATTR_EXCEPTION_STACKTRACE:()=>Xqt,ATTR_EXCEPTION_TYPE:()=>Qqt,ATTR_HTTP_REQUEST_HEADER:()=>$qt,ATTR_HTTP_REQUEST_METHOD:()=>SE,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>cBt,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>uBt,ATTR_HTTP_RESPONSE_HEADER:()=>lBt,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>um,ATTR_HTTP_ROUTE:()=>lm,ATTR_JVM_GC_ACTION:()=>dBt,ATTR_JVM_GC_NAME:()=>fBt,ATTR_JVM_MEMORY_POOL_NAME:()=>pBt,ATTR_JVM_MEMORY_TYPE:()=>hBt,ATTR_JVM_THREAD_DAEMON:()=>yBt,ATTR_JVM_THREAD_STATE:()=>SBt,ATTR_NETWORK_LOCAL_ADDRESS:()=>RBt,ATTR_NETWORK_LOCAL_PORT:()=>ABt,ATTR_NETWORK_PEER_ADDRESS:()=>T7,ATTR_NETWORK_PEER_PORT:()=>v7,ATTR_NETWORK_PROTOCOL_NAME:()=>wBt,ATTR_NETWORK_PROTOCOL_VERSION:()=>R7,ATTR_NETWORK_TRANSPORT:()=>A7,ATTR_NETWORK_TYPE:()=>OBt,ATTR_OTEL_SCOPE_NAME:()=>CBt,ATTR_OTEL_SCOPE_VERSION:()=>MBt,ATTR_OTEL_STATUS_CODE:()=>DBt,ATTR_OTEL_STATUS_DESCRIPTION:()=>UBt,ATTR_SERVER_ADDRESS:()=>w7,ATTR_SERVER_PORT:()=>k7,ATTR_SERVICE_INSTANCE_ID:()=>FBt,ATTR_SERVICE_NAME:()=>I7,ATTR_SERVICE_NAMESPACE:()=>jBt,ATTR_SERVICE_VERSION:()=>x7,ATTR_SIGNALR_CONNECTION_STATUS:()=>HBt,ATTR_SIGNALR_TRANSPORT:()=>GBt,ATTR_TELEMETRY_SDK_LANGUAGE:()=>YBt,ATTR_TELEMETRY_SDK_NAME:()=>izt,ATTR_TELEMETRY_SDK_VERSION:()=>szt,ATTR_URL_FRAGMENT:()=>ozt,ATTR_URL_FULL:()=>fy,ATTR_URL_PATH:()=>azt,ATTR_URL_QUERY:()=>czt,ATTR_URL_SCHEME:()=>uzt,ATTR_USER_AGENT_ORIGINAL:()=>O7,AWSECSLAUNCHTYPEVALUES_EC2:()=>NHt,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>CHt,AwsEcsLaunchtypeValues:()=>MHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>hHt,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>mHt,CLOUDPLATFORMVALUES_AWS_EC2:()=>gHt,CLOUDPLATFORMVALUES_AWS_ECS:()=>yHt,CLOUDPLATFORMVALUES_AWS_EKS:()=>SHt,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>EHt,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>bHt,CLOUDPLATFORMVALUES_AZURE_AKS:()=>vHt,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>AHt,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>THt,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>RHt,CLOUDPLATFORMVALUES_AZURE_VM:()=>_Ht,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>OHt,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>xHt,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>kHt,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>wHt,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>IHt,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>uHt,CLOUDPROVIDERVALUES_AWS:()=>lHt,CLOUDPROVIDERVALUES_AZURE:()=>dHt,CLOUDPROVIDERVALUES_GCP:()=>fHt,CloudPlatformValues:()=>PHt,CloudProviderValues:()=>pHt,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>Y1t,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>nUt,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>Z1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>tUt,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>X1t,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>iUt,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>Q1t,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>J1t,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>rUt,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>eUt,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>$1t,DBSYSTEMVALUES_ADABAS:()=>y1t,DBSYSTEMVALUES_CACHE:()=>g1t,DBSYSTEMVALUES_CASSANDRA:()=>M1t,DBSYSTEMVALUES_CLOUDSCAPE:()=>c1t,DBSYSTEMVALUES_COCKROACHDB:()=>W1t,DBSYSTEMVALUES_COLDFUSION:()=>C1t,DBSYSTEMVALUES_COSMOSDB:()=>H1t,DBSYSTEMVALUES_COUCHBASE:()=>F1t,DBSYSTEMVALUES_COUCHDB:()=>j1t,DBSYSTEMVALUES_DB2:()=>i1t,DBSYSTEMVALUES_DERBY:()=>b1t,DBSYSTEMVALUES_DYNAMODB:()=>q1t,DBSYSTEMVALUES_EDB:()=>m1t,DBSYSTEMVALUES_ELASTICSEARCH:()=>G1t,DBSYSTEMVALUES_FILEMAKER:()=>E1t,DBSYSTEMVALUES_FIREBIRD:()=>S1t,DBSYSTEMVALUES_FIRSTSQL:()=>h1t,DBSYSTEMVALUES_GEODE:()=>z1t,DBSYSTEMVALUES_H2:()=>N1t,DBSYSTEMVALUES_HANADB:()=>f1t,DBSYSTEMVALUES_HBASE:()=>D1t,DBSYSTEMVALUES_HIVE:()=>a1t,DBSYSTEMVALUES_HSQLDB:()=>u1t,DBSYSTEMVALUES_INFORMIX:()=>_1t,DBSYSTEMVALUES_INGRES:()=>p1t,DBSYSTEMVALUES_INSTANTDB:()=>T1t,DBSYSTEMVALUES_INTERBASE:()=>v1t,DBSYSTEMVALUES_MARIADB:()=>R1t,DBSYSTEMVALUES_MAXDB:()=>d1t,DBSYSTEMVALUES_MEMCACHED:()=>V1t,DBSYSTEMVALUES_MONGODB:()=>L1t,DBSYSTEMVALUES_MSSQL:()=>t1t,DBSYSTEMVALUES_MYSQL:()=>n1t,DBSYSTEMVALUES_NEO4J:()=>B1t,DBSYSTEMVALUES_NETEZZA:()=>A1t,DBSYSTEMVALUES_ORACLE:()=>r1t,DBSYSTEMVALUES_OTHER_SQL:()=>e1t,DBSYSTEMVALUES_PERVASIVE:()=>w1t,DBSYSTEMVALUES_POINTBASE:()=>k1t,DBSYSTEMVALUES_POSTGRESQL:()=>s1t,DBSYSTEMVALUES_PROGRESS:()=>l1t,DBSYSTEMVALUES_REDIS:()=>U1t,DBSYSTEMVALUES_REDSHIFT:()=>o1t,DBSYSTEMVALUES_SQLITE:()=>I1t,DBSYSTEMVALUES_SYBASE:()=>x1t,DBSYSTEMVALUES_TERADATA:()=>O1t,DBSYSTEMVALUES_VERTICA:()=>P1t,DB_SYSTEM_NAME_VALUE_MARIADB:()=>Hqt,DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER:()=>qqt,DB_SYSTEM_NAME_VALUE_MYSQL:()=>Bqt,DB_SYSTEM_NAME_VALUE_POSTGRESQL:()=>zqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN0:()=>Vqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN1:()=>Wqt,DOTNET_GC_HEAP_GENERATION_VALUE_GEN2:()=>Kqt,DOTNET_GC_HEAP_GENERATION_VALUE_LOH:()=>Nyr,DOTNET_GC_HEAP_GENERATION_VALUE_POH:()=>Cyr,DbCassandraConsistencyLevelValues:()=>sUt,DbSystemValues:()=>K1t,ERROR_TYPE_VALUE_OTHER:()=>Yqt,EVENT_EXCEPTION:()=>aGt,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>hUt,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>pUt,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>fUt,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>gUt,FAASINVOKEDPROVIDERVALUES_AWS:()=>yUt,FAASINVOKEDPROVIDERVALUES_AZURE:()=>SUt,FAASINVOKEDPROVIDERVALUES_GCP:()=>bUt,FAASTRIGGERVALUES_DATASOURCE:()=>oUt,FAASTRIGGERVALUES_HTTP:()=>aUt,FAASTRIGGERVALUES_OTHER:()=>lUt,FAASTRIGGERVALUES_PUBSUB:()=>cUt,FAASTRIGGERVALUES_TIMER:()=>uUt,FaasDocumentOperationValues:()=>mUt,FaasInvokedProviderValues:()=>EUt,FaasTriggerValues:()=>dUt,HOSTARCHVALUES_AMD64:()=>DHt,HOSTARCHVALUES_ARM32:()=>LHt,HOSTARCHVALUES_ARM64:()=>UHt,HOSTARCHVALUES_IA64:()=>FHt,HOSTARCHVALUES_PPC32:()=>jHt,HOSTARCHVALUES_PPC64:()=>HHt,HOSTARCHVALUES_X86:()=>qHt,HTTPFLAVORVALUES_HTTP_1_0:()=>rFt,HTTPFLAVORVALUES_HTTP_1_1:()=>iFt,HTTPFLAVORVALUES_HTTP_2_0:()=>sFt,HTTPFLAVORVALUES_QUIC:()=>aFt,HTTPFLAVORVALUES_SPDY:()=>oFt,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>tBt,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>nBt,HTTP_REQUEST_METHOD_VALUE_GET:()=>Myr,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>rBt,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>iBt,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>eBt,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>sBt,HTTP_REQUEST_METHOD_VALUE_POST:()=>oBt,HTTP_REQUEST_METHOD_VALUE_PUT:()=>Dyr,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>aBt,HostArchValues:()=>BHt,HttpFlavorValues:()=>cFt,JVM_MEMORY_TYPE_VALUE_HEAP:()=>mBt,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>gBt,JVM_THREAD_STATE_VALUE_BLOCKED:()=>bBt,JVM_THREAD_STATE_VALUE_NEW:()=>Lyr,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>EBt,JVM_THREAD_STATE_VALUE_TERMINATED:()=>_Bt,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>TBt,JVM_THREAD_STATE_VALUE_WAITING:()=>vBt,MESSAGETYPEVALUES_RECEIVED:()=>MFt,MESSAGETYPEVALUES_SENT:()=>CFt,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>uFt,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>lFt,MESSAGINGOPERATIONVALUES_PROCESS:()=>pFt,MESSAGINGOPERATIONVALUES_RECEIVE:()=>fFt,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>lzt,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>dzt,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>fzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>mzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>hzt,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>pzt,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>gzt,METRIC_DB_CLIENT_OPERATION_DURATION:()=>yzt,METRIC_DOTNET_ASSEMBLY_COUNT:()=>Szt,METRIC_DOTNET_EXCEPTIONS:()=>bzt,METRIC_DOTNET_GC_COLLECTIONS:()=>Ezt,METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED:()=>_zt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE:()=>Tzt,METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE:()=>vzt,METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE:()=>Rzt,METRIC_DOTNET_GC_PAUSE_TIME:()=>Azt,METRIC_DOTNET_JIT_COMPILATION_TIME:()=>wzt,METRIC_DOTNET_JIT_COMPILED_IL_SIZE:()=>kzt,METRIC_DOTNET_JIT_COMPILED_METHODS:()=>Izt,METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS:()=>xzt,METRIC_DOTNET_PROCESS_CPU_COUNT:()=>Ozt,METRIC_DOTNET_PROCESS_CPU_TIME:()=>Pzt,METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET:()=>Nzt,METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH:()=>Czt,METRIC_DOTNET_THREAD_POOL_THREAD_COUNT:()=>Mzt,METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT:()=>Dzt,METRIC_DOTNET_TIMER_COUNT:()=>Lzt,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>Uzt,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>Fzt,METRIC_JVM_CLASS_COUNT:()=>jzt,METRIC_JVM_CLASS_LOADED:()=>Hzt,METRIC_JVM_CLASS_UNLOADED:()=>qzt,METRIC_JVM_CPU_COUNT:()=>Bzt,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>zzt,METRIC_JVM_CPU_TIME:()=>Gzt,METRIC_JVM_GC_DURATION:()=>Vzt,METRIC_JVM_MEMORY_COMMITTED:()=>Wzt,METRIC_JVM_MEMORY_LIMIT:()=>Kzt,METRIC_JVM_MEMORY_USED:()=>Yzt,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>Zzt,METRIC_JVM_THREAD_COUNT:()=>Jzt,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>Xzt,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>Qzt,METRIC_KESTREL_CONNECTION_DURATION:()=>$zt,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>eGt,METRIC_KESTREL_QUEUED_REQUESTS:()=>tGt,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>nGt,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>rGt,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>iGt,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>sGt,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>oGt,MessageTypeValues:()=>DFt,MessagingDestinationKindValues:()=>dFt,MessagingOperationValues:()=>hFt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>FUt,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>qUt,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>LUt,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>YUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>jUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>HUt,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>WUt,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>DUt,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>JUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>BUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>GUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>ZUt,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>zUt,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>VUt,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>QUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>KUt,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>tFt,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>$Ut,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>eFt,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>XUt,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>UUt,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>PUt,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>NUt,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>CUt,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>xUt,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>OUt,NETTRANSPORTVALUES_INPROC:()=>wUt,NETTRANSPORTVALUES_IP:()=>vUt,NETTRANSPORTVALUES_IP_TCP:()=>_Ut,NETTRANSPORTVALUES_IP_UDP:()=>TUt,NETTRANSPORTVALUES_OTHER:()=>kUt,NETTRANSPORTVALUES_PIPE:()=>AUt,NETTRANSPORTVALUES_UNIX:()=>RUt,NETWORK_TRANSPORT_VALUE_PIPE:()=>kBt,NETWORK_TRANSPORT_VALUE_QUIC:()=>IBt,NETWORK_TRANSPORT_VALUE_TCP:()=>Uyr,NETWORK_TRANSPORT_VALUE_UDP:()=>Fyr,NETWORK_TRANSPORT_VALUE_UNIX:()=>xBt,NETWORK_TYPE_VALUE_IPV4:()=>PBt,NETWORK_TYPE_VALUE_IPV6:()=>NBt,NetHostConnectionSubtypeValues:()=>nFt,NetHostConnectionTypeValues:()=>MUt,NetTransportValues:()=>IUt,OSTYPEVALUES_AIX:()=>XHt,OSTYPEVALUES_DARWIN:()=>VHt,OSTYPEVALUES_DRAGONFLYBSD:()=>ZHt,OSTYPEVALUES_FREEBSD:()=>WHt,OSTYPEVALUES_HPUX:()=>JHt,OSTYPEVALUES_LINUX:()=>GHt,OSTYPEVALUES_NETBSD:()=>KHt,OSTYPEVALUES_OPENBSD:()=>YHt,OSTYPEVALUES_SOLARIS:()=>QHt,OSTYPEVALUES_WINDOWS:()=>zHt,OSTYPEVALUES_Z_OS:()=>$Ht,OTEL_STATUS_CODE_VALUE_ERROR:()=>LBt,OTEL_STATUS_CODE_VALUE_OK:()=>jyr,OsTypeValues:()=>eqt,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>AFt,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>_Ft,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>gFt,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>OFt,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>bFt,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>RFt,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>IFt,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>SFt,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>EFt,RPCGRPCSTATUSCODEVALUES_OK:()=>mFt,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>wFt,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>TFt,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>vFt,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>PFt,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>xFt,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>kFt,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>yFt,RpcGrpcStatusCodeValues:()=>NFt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>dLt,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>vLt,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>cLt,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>iLt,SEMATTRS_AWS_DYNAMODB_COUNT:()=>_Lt,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>gLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>hLt,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>RLt,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>fLt,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>sLt,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>lLt,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>mLt,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>uLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>oLt,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>aLt,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>TLt,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>SLt,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>bLt,SEMATTRS_AWS_DYNAMODB_SELECT:()=>pLt,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>yLt,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>rLt,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>ELt,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>ZMt,SEMATTRS_CODE_FILEPATH:()=>KDt,SEMATTRS_CODE_FUNCTION:()=>VDt,SEMATTRS_CODE_LINENO:()=>YDt,SEMATTRS_CODE_NAMESPACE:()=>WDt,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>iDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>uDt,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>cDt,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>oDt,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>nDt,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>rDt,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>aDt,SEMATTRS_DB_CASSANDRA_TABLE:()=>sDt,SEMATTRS_DB_CONNECTION_STRING:()=>JMt,SEMATTRS_DB_HBASE_NAMESPACE:()=>lDt,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>QMt,SEMATTRS_DB_MONGODB_COLLECTION:()=>fDt,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>tDt,SEMATTRS_DB_NAME:()=>$Mt,SEMATTRS_DB_OPERATION:()=>eDt,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>dDt,SEMATTRS_DB_SQL_TABLE:()=>pDt,SEMATTRS_DB_STATEMENT:()=>i7,SEMATTRS_DB_SYSTEM:()=>r7,SEMATTRS_DB_USER:()=>XMt,SEMATTRS_ENDUSER_ID:()=>HDt,SEMATTRS_ENDUSER_ROLE:()=>qDt,SEMATTRS_ENDUSER_SCOPE:()=>BDt,SEMATTRS_EXCEPTION_ESCAPED:()=>yDt,SEMATTRS_EXCEPTION_MESSAGE:()=>mDt,SEMATTRS_EXCEPTION_STACKTRACE:()=>gDt,SEMATTRS_EXCEPTION_TYPE:()=>hDt,SEMATTRS_FAAS_COLDSTART:()=>ADt,SEMATTRS_FAAS_CRON:()=>RDt,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>bDt,SEMATTRS_FAAS_DOCUMENT_NAME:()=>TDt,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>EDt,SEMATTRS_FAAS_DOCUMENT_TIME:()=>_Dt,SEMATTRS_FAAS_EXECUTION:()=>SDt,SEMATTRS_FAAS_INVOKED_NAME:()=>wDt,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>kDt,SEMATTRS_FAAS_INVOKED_REGION:()=>IDt,SEMATTRS_FAAS_TIME:()=>vDt,SEMATTRS_FAAS_TRIGGER:()=>s7,SEMATTRS_HTTP_CLIENT_IP:()=>nLt,SEMATTRS_HTTP_FLAVOR:()=>XDt,SEMATTRS_HTTP_HOST:()=>ZDt,SEMATTRS_HTTP_METHOD:()=>mO,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>$Dt,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>eLt,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>l7,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>d7,SEMATTRS_HTTP_ROUTE:()=>f7,SEMATTRS_HTTP_SCHEME:()=>JDt,SEMATTRS_HTTP_SERVER_NAME:()=>tLt,SEMATTRS_HTTP_STATUS_CODE:()=>gE,SEMATTRS_HTTP_TARGET:()=>u7,SEMATTRS_HTTP_URL:()=>dR,SEMATTRS_HTTP_USER_AGENT:()=>QDt,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>XLt,SEMATTRS_MESSAGE_ID:()=>JLt,SEMATTRS_MESSAGE_TYPE:()=>ZLt,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>QLt,SEMATTRS_MESSAGING_CONSUMER_ID:()=>LLt,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>NLt,SEMATTRS_MESSAGING_DESTINATION:()=>ALt,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>wLt,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>HLt,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>jLt,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>FLt,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>qLt,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>BLt,SEMATTRS_MESSAGING_MESSAGE_ID:()=>PLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>MLt,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>CLt,SEMATTRS_MESSAGING_OPERATION:()=>DLt,SEMATTRS_MESSAGING_PROTOCOL:()=>ILt,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>xLt,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>ULt,SEMATTRS_MESSAGING_SYSTEM:()=>p7,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>kLt,SEMATTRS_MESSAGING_URL:()=>OLt,SEMATTRS_NET_HOST_CARRIER_ICC:()=>FDt,SEMATTRS_NET_HOST_CARRIER_MCC:()=>LDt,SEMATTRS_NET_HOST_CARRIER_MNC:()=>UDt,SEMATTRS_NET_HOST_CARRIER_NAME:()=>DDt,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>MDt,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>CDt,SEMATTRS_NET_HOST_IP:()=>a7,SEMATTRS_NET_HOST_NAME:()=>NDt,SEMATTRS_NET_HOST_PORT:()=>c7,SEMATTRS_NET_PEER_IP:()=>o7,SEMATTRS_NET_PEER_NAME:()=>PDt,SEMATTRS_NET_PEER_PORT:()=>ODt,SEMATTRS_NET_TRANSPORT:()=>xDt,SEMATTRS_PEER_SERVICE:()=>jDt,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>m7,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>KLt,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>YLt,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>WLt,SEMATTRS_RPC_JSONRPC_VERSION:()=>VLt,SEMATTRS_RPC_METHOD:()=>GLt,SEMATTRS_RPC_SERVICE:()=>h7,SEMATTRS_RPC_SYSTEM:()=>zLt,SEMATTRS_THREAD_ID:()=>zDt,SEMATTRS_THREAD_NAME:()=>GDt,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>BFt,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>qFt,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>zFt,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>GFt,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>VFt,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>WFt,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>KFt,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>ZFt,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>YFt,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>XFt,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>JFt,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>UFt,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>jFt,SEMRESATTRS_CLOUD_PLATFORM:()=>HFt,SEMRESATTRS_CLOUD_PROVIDER:()=>LFt,SEMRESATTRS_CLOUD_REGION:()=>FFt,SEMRESATTRS_CONTAINER_ID:()=>$Ft,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>tjt,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>njt,SEMRESATTRS_CONTAINER_NAME:()=>QFt,SEMRESATTRS_CONTAINER_RUNTIME:()=>ejt,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>rjt,SEMRESATTRS_DEVICE_ID:()=>ijt,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>sjt,SEMRESATTRS_DEVICE_MODEL_NAME:()=>ojt,SEMRESATTRS_FAAS_ID:()=>cjt,SEMRESATTRS_FAAS_INSTANCE:()=>ljt,SEMRESATTRS_FAAS_MAX_MEMORY:()=>djt,SEMRESATTRS_FAAS_NAME:()=>ajt,SEMRESATTRS_FAAS_VERSION:()=>ujt,SEMRESATTRS_HOST_ARCH:()=>mjt,SEMRESATTRS_HOST_ID:()=>fjt,SEMRESATTRS_HOST_IMAGE_ID:()=>yjt,SEMRESATTRS_HOST_IMAGE_NAME:()=>gjt,SEMRESATTRS_HOST_IMAGE_VERSION:()=>Sjt,SEMRESATTRS_HOST_NAME:()=>pjt,SEMRESATTRS_HOST_TYPE:()=>hjt,SEMRESATTRS_K8S_CLUSTER_NAME:()=>bjt,SEMRESATTRS_K8S_CONTAINER_NAME:()=>Ajt,SEMRESATTRS_K8S_CRONJOB_NAME:()=>Ujt,SEMRESATTRS_K8S_CRONJOB_UID:()=>Ljt,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>Cjt,SEMRESATTRS_K8S_DAEMONSET_UID:()=>Njt,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>xjt,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>Ijt,SEMRESATTRS_K8S_JOB_NAME:()=>Djt,SEMRESATTRS_K8S_JOB_UID:()=>Mjt,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>Tjt,SEMRESATTRS_K8S_NODE_NAME:()=>Ejt,SEMRESATTRS_K8S_NODE_UID:()=>_jt,SEMRESATTRS_K8S_POD_NAME:()=>Rjt,SEMRESATTRS_K8S_POD_UID:()=>vjt,SEMRESATTRS_K8S_REPLICASET_NAME:()=>kjt,SEMRESATTRS_K8S_REPLICASET_UID:()=>wjt,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>Pjt,SEMRESATTRS_K8S_STATEFULSET_UID:()=>Ojt,SEMRESATTRS_OS_DESCRIPTION:()=>jjt,SEMRESATTRS_OS_NAME:()=>Hjt,SEMRESATTRS_OS_TYPE:()=>Fjt,SEMRESATTRS_OS_VERSION:()=>qjt,SEMRESATTRS_PROCESS_COMMAND:()=>Vjt,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>Kjt,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>Wjt,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>zjt,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>Gjt,SEMRESATTRS_PROCESS_OWNER:()=>Yjt,SEMRESATTRS_PROCESS_PID:()=>Bjt,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>Xjt,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>Zjt,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>Jjt,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>$jt,SEMRESATTRS_SERVICE_NAME:()=>Qjt,SEMRESATTRS_SERVICE_NAMESPACE:()=>g7,SEMRESATTRS_SERVICE_VERSION:()=>eHt,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>iHt,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>nHt,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>tHt,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>rHt,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>aHt,SEMRESATTRS_WEBENGINE_NAME:()=>sHt,SEMRESATTRS_WEBENGINE_VERSION:()=>oHt,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>qBt,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>BBt,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>zBt,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>VBt,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>WBt,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>KBt,SemanticAttributes:()=>$Lt,SemanticResourceAttributes:()=>cHt,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>tqt,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>nqt,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>rqt,TELEMETRYSDKLANGUAGEVALUES_GO:()=>iqt,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>sqt,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>oqt,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>aqt,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>cqt,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>uqt,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>lqt,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>Hyr,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>ZBt,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>JBt,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>qyr,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>XBt,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>QBt,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>Byr,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>$Bt,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>ezt,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>tzt,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>nzt,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>rzt,TelemetrySdkLanguageValues:()=>dqt});var Pn=v(()=>{D0e();aPe();cPe();uPe();lPe()});var dPe=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF.ATTR_PROCESS_RUNTIME_NAME=void 0;NF.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name"});var fPe=w(MF=>{"use strict";Object.defineProperty(MF,"__esModule",{value:!0});MF.SDK_INFO=void 0;var cGt=GRe(),CF=(Pn(),ke(Mr)),uGt=dPe();MF.SDK_INFO={[CF.ATTR_TELEMETRY_SDK_NAME]:"opentelemetry",[uGt.ATTR_PROCESS_RUNTIME_NAME]:"node",[CF.ATTR_TELEMETRY_SDK_LANGUAGE]:CF.TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,[CF.ATTR_TELEMETRY_SDK_VERSION]:cGt.VERSION}});var pPe=w(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.otperformance=za.SDK_INFO=za._globalThis=za.getStringListFromEnv=za.getNumberFromEnv=za.getBooleanFromEnv=za.getStringFromEnv=void 0;var DF=BRe();Object.defineProperty(za,"getStringFromEnv",{enumerable:!0,get:function(){return DF.getStringFromEnv}});Object.defineProperty(za,"getBooleanFromEnv",{enumerable:!0,get:function(){return DF.getBooleanFromEnv}});Object.defineProperty(za,"getNumberFromEnv",{enumerable:!0,get:function(){return DF.getNumberFromEnv}});Object.defineProperty(za,"getStringListFromEnv",{enumerable:!0,get:function(){return DF.getStringListFromEnv}});var lGt=zRe();Object.defineProperty(za,"_globalThis",{enumerable:!0,get:function(){return lGt._globalThis}});var dGt=fPe();Object.defineProperty(za,"SDK_INFO",{enumerable:!0,get:function(){return dGt.SDK_INFO}});za.otperformance=performance});var P7=w(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.getStringListFromEnv=Ga.getNumberFromEnv=Ga.getStringFromEnv=Ga.getBooleanFromEnv=Ga.otperformance=Ga._globalThis=Ga.SDK_INFO=void 0;var bE=pPe();Object.defineProperty(Ga,"SDK_INFO",{enumerable:!0,get:function(){return bE.SDK_INFO}});Object.defineProperty(Ga,"_globalThis",{enumerable:!0,get:function(){return bE._globalThis}});Object.defineProperty(Ga,"otperformance",{enumerable:!0,get:function(){return bE.otperformance}});Object.defineProperty(Ga,"getBooleanFromEnv",{enumerable:!0,get:function(){return bE.getBooleanFromEnv}});Object.defineProperty(Ga,"getStringFromEnv",{enumerable:!0,get:function(){return bE.getStringFromEnv}});Object.defineProperty(Ga,"getNumberFromEnv",{enumerable:!0,get:function(){return bE.getNumberFromEnv}});Object.defineProperty(Ga,"getStringListFromEnv",{enumerable:!0,get:function(){return bE.getStringListFromEnv}})});var yPe=w(ei=>{"use strict";Object.defineProperty(ei,"__esModule",{value:!0});ei.addHrTimes=ei.isTimeInput=ei.isTimeInputHrTime=ei.hrTimeToMicroseconds=ei.hrTimeToMilliseconds=ei.hrTimeToNanoseconds=ei.hrTimeToTimeStamp=ei.hrTimeDuration=ei.timeInputToHrTime=ei.hrTime=ei.getTimeOrigin=ei.millisToHrTime=void 0;var LF=P7(),hPe=9,fGt=6,pGt=Math.pow(10,fGt),UF=Math.pow(10,hPe);function gO(e){let t=e/1e3,n=Math.trunc(t),r=Math.round(e%1e3*pGt);return[n,r]}ei.millisToHrTime=gO;function hGt(){return LF.otperformance.timeOrigin}ei.getTimeOrigin=hGt;function mPe(e){let t=gO(LF.otperformance.timeOrigin),n=gO(typeof e=="number"?e:LF.otperformance.now());return gPe(t,n)}ei.hrTime=mPe;function mGt(e){if(N7(e))return e;if(typeof e=="number")return e=UF&&(n[1]-=UF,n[0]+=1),n}ei.addHrTimes=gPe});var SPe=w(FF=>{"use strict";Object.defineProperty(FF,"__esModule",{value:!0});FF.unrefTimer=void 0;function TGt(e){typeof e!="number"&&e.unref()}FF.unrefTimer=TGt});var bPe=w(yO=>{"use strict";Object.defineProperty(yO,"__esModule",{value:!0});yO.ExportResultCode=void 0;var vGt;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(vGt=yO.ExportResultCode||(yO.ExportResultCode={}))});var _Pe=w(jF=>{"use strict";Object.defineProperty(jF,"__esModule",{value:!0});jF.CompositePropagator=void 0;var EPe=(Ce(),ke(Ze)),C7=class{_propagators;_fields;constructor(t={}){this._propagators=t.propagators??[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,r)=>n.concat(r),[])))}inject(t,n,r){for(let i of this._propagators)try{i.inject(t,n,r)}catch(s){EPe.diag.warn(`Failed to inject with ${i.constructor.name}. Err: ${s.message}`)}}extract(t,n,r){return this._propagators.reduce((i,s)=>{try{return s.extract(i,n,r)}catch(o){EPe.diag.warn(`Failed to extract with ${s.constructor.name}. Err: ${o.message}`)}return i},t)}fields(){return this._fields.slice()}};jF.CompositePropagator=C7});var TPe=w(pR=>{"use strict";Object.defineProperty(pR,"__esModule",{value:!0});pR.validateValue=pR.validateKey=void 0;var M7="[_0-9a-z-*/]",RGt=`[a-z]${M7}{0,255}`,AGt=`[a-z0-9]${M7}{0,240}@[a-z]${M7}{0,13}`,wGt=new RegExp(`^(?:${RGt}|${AGt})$`),kGt=/^[ -~]{0,255}[!-~]$/,IGt=/,|=/;function xGt(e){return wGt.test(e)}pR.validateKey=xGt;function OGt(e){return kGt.test(e)&&!IGt.test(e)}pR.validateValue=OGt});var L7=w(HF=>{"use strict";Object.defineProperty(HF,"__esModule",{value:!0});HF.TraceState=void 0;var vPe=TPe(),RPe=32,PGt=512,APe=",",wPe="=",D7=class e{_internalState=new Map;constructor(t){t&&this._parse(t)}set(t,n){let r=this._clone();return r._internalState.has(t)&&r._internalState.delete(t),r._internalState.set(t,n),r}unset(t){let n=this._clone();return n._internalState.delete(t),n}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,n)=>(t.push(n+wPe+this.get(n)),t),[]).join(APe)}_parse(t){t.length>PGt||(this._internalState=t.split(APe).reverse().reduce((n,r)=>{let i=r.trim(),s=i.indexOf(wPe);if(s!==-1){let o=i.slice(0,s),a=i.slice(s+1,r.length);(0,vPe.validateKey)(o)&&(0,vPe.validateValue)(a)&&n.set(o,a)}return n},new Map),this._internalState.size>RPe&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,RPe))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};HF.TraceState=D7});var IPe=w(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.W3CTraceContextPropagator=Va.parseTraceParent=Va.TRACE_STATE_HEADER=Va.TRACE_PARENT_HEADER=void 0;var qF=(Ce(),ke(Ze)),NGt=hO(),CGt=L7();Va.TRACE_PARENT_HEADER="traceparent";Va.TRACE_STATE_HEADER="tracestate";var MGt="00",DGt="(?!ff)[\\da-f]{2}",LGt="(?![0]{32})[\\da-f]{32}",UGt="(?![0]{16})[\\da-f]{16}",FGt="[\\da-f]{2}",jGt=new RegExp(`^\\s?(${DGt})-(${LGt})-(${UGt})-(${FGt})(-.*)?\\s?$`);function kPe(e){let t=jGt.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}Va.parseTraceParent=kPe;var U7=class{inject(t,n,r){let i=qF.trace.getSpanContext(t);if(!i||(0,NGt.isTracingSuppressed)(t)||!(0,qF.isSpanContextValid)(i))return;let s=`${MGt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||qF.TraceFlags.NONE).toString(16)}`;r.set(n,Va.TRACE_PARENT_HEADER,s),i.traceState&&r.set(n,Va.TRACE_STATE_HEADER,i.traceState.serialize())}extract(t,n,r){let i=r.get(n,Va.TRACE_PARENT_HEADER);if(!i)return t;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return t;let o=kPe(s);if(!o)return t;o.isRemote=!0;let a=r.get(n,Va.TRACE_STATE_HEADER);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new CGt.TraceState(typeof c=="string"?c:void 0)}return qF.trace.setSpanContext(t,o)}fields(){return[Va.TRACE_PARENT_HEADER,Va.TRACE_STATE_HEADER]}};Va.W3CTraceContextPropagator=U7});var xPe=w($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.getRPCMetadata=$d.deleteRPCMetadata=$d.setRPCMetadata=$d.RPCType=void 0;var HGt=(Ce(),ke(Ze)),F7=(0,HGt.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),qGt;(function(e){e.HTTP="http"})(qGt=$d.RPCType||($d.RPCType={}));function BGt(e,t){return e.setValue(F7,t)}$d.setRPCMetadata=BGt;function zGt(e){return e.deleteValue(F7)}$d.deleteRPCMetadata=zGt;function GGt(e){return e.getValue(F7)}$d.getRPCMetadata=GGt});var MPe=w(BF=>{"use strict";Object.defineProperty(BF,"__esModule",{value:!0});BF.isPlainObject=void 0;var VGt="[object Object]",WGt="[object Null]",KGt="[object Undefined]",YGt=Function.prototype,OPe=YGt.toString,ZGt=OPe.call(Object),JGt=Object.getPrototypeOf,PPe=Object.prototype,NPe=PPe.hasOwnProperty,EE=Symbol?Symbol.toStringTag:void 0,CPe=PPe.toString;function XGt(e){if(!QGt(e)||$Gt(e)!==VGt)return!1;let t=JGt(e);if(t===null)return!0;let n=NPe.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&OPe.call(n)===ZGt}BF.isPlainObject=XGt;function QGt(e){return e!=null&&typeof e=="object"}function $Gt(e){return e==null?e===void 0?KGt:WGt:EE&&EE in Object(e)?e2t(e):t2t(e)}function e2t(e){let t=NPe.call(e,EE),n=e[EE],r=!1;try{e[EE]=void 0,r=!0}catch{}let i=CPe.call(e);return r&&(t?e[EE]=n:delete e[EE]),i}function t2t(e){return CPe.call(e)}});var jPe=w(VF=>{"use strict";Object.defineProperty(VF,"__esModule",{value:!0});VF.merge=void 0;var DPe=MPe(),n2t=20;function r2t(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=UPe(t,e.shift(),0,n);return t}VF.merge=r2t;function j7(e){return GF(e)?e.slice():e}function UPe(e,t,n=0,r){let i;if(!(n>n2t)){if(n++,zF(e)||zF(t)||FPe(t))i=j7(t);else if(GF(e)){if(i=e.slice(),GF(t))for(let s=0,o=t.length;s"u"?delete i[c]:i[c]=u;else{let l=i[c],d=u;if(LPe(e,c,r)||LPe(t,c,r))delete i[c];else{if(SO(l)&&SO(d)){let f=r.get(l)||[],p=r.get(d)||[];f.push({obj:e,key:c}),p.push({obj:t,key:c}),r.set(l,f),r.set(d,p)}i[c]=UPe(i[c],u,n,r)}}}}else i=t;return i}}function LPe(e,t,n){let r=n.get(e[t])||[];for(let i=0,s=r.length;i"u"||e instanceof Date||e instanceof RegExp||e===null}function i2t(e,t){return!(!(0,DPe.isPlainObject)(e)||!(0,DPe.isPlainObject)(t))}});var HPe=w(hR=>{"use strict";Object.defineProperty(hR,"__esModule",{value:!0});hR.callWithTimeout=hR.TimeoutError=void 0;var WF=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};hR.TimeoutError=WF;function s2t(e,t){let n,r=new Promise(function(s,o){n=setTimeout(function(){o(new WF("Operation timed out."))},t)});return Promise.race([e,r]).then(i=>(clearTimeout(n),i),i=>{throw clearTimeout(n),i})}hR.callWithTimeout=s2t});var BPe=w(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});mR.isUrlIgnored=mR.urlMatches=void 0;function qPe(e,t){return typeof t=="string"?e===t:!!e.match(t)}mR.urlMatches=qPe;function o2t(e,t){if(!t)return!1;for(let n of t)if(qPe(e,n))return!0;return!1}mR.isUrlIgnored=o2t});var zPe=w(KF=>{"use strict";Object.defineProperty(KF,"__esModule",{value:!0});KF.Deferred=void 0;var H7=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((t,n)=>{this._resolve=t,this._reject=n})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};KF.Deferred=H7});var GPe=w(YF=>{"use strict";Object.defineProperty(YF,"__esModule",{value:!0});YF.BindOnceFuture=void 0;var a2t=zPe(),q7=class{_isCalled=!1;_deferred=new a2t.Deferred;_callback;_that;constructor(t,n){this._callback=t,this._that=n}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(n=>this._deferred.resolve(n),n=>this._deferred.reject(n))}catch(n){this._deferred.reject(n)}}return this._deferred.promise}};YF.BindOnceFuture=q7});var WPe=w(ZF=>{"use strict";Object.defineProperty(ZF,"__esModule",{value:!0});ZF.diagLogLevelFromString=void 0;var dm=(Ce(),ke(Ze)),VPe={ALL:dm.DiagLogLevel.ALL,VERBOSE:dm.DiagLogLevel.VERBOSE,DEBUG:dm.DiagLogLevel.DEBUG,INFO:dm.DiagLogLevel.INFO,WARN:dm.DiagLogLevel.WARN,ERROR:dm.DiagLogLevel.ERROR,NONE:dm.DiagLogLevel.NONE};function c2t(e){if(e==null)return;let t=VPe[e.toUpperCase()];return t??(dm.diag.warn(`Unknown log level "${e}", expected one of ${Object.keys(VPe)}, using default`),dm.DiagLogLevel.INFO)}ZF.diagLogLevelFromString=c2t});var YPe=w(JF=>{"use strict";Object.defineProperty(JF,"__esModule",{value:!0});JF._export=void 0;var KPe=(Ce(),ke(Ze)),u2t=hO();function l2t(e,t){return new Promise(n=>{KPe.context.with((0,u2t.suppressTracing)(KPe.context.active()),()=>{e.export(t,n)})})}JF._export=l2t});var fr=w(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.internal=we.diagLogLevelFromString=we.BindOnceFuture=we.urlMatches=we.isUrlIgnored=we.callWithTimeout=we.TimeoutError=we.merge=we.TraceState=we.unsuppressTracing=we.suppressTracing=we.isTracingSuppressed=we.setRPCMetadata=we.getRPCMetadata=we.deleteRPCMetadata=we.RPCType=we.parseTraceParent=we.W3CTraceContextPropagator=we.TRACE_STATE_HEADER=we.TRACE_PARENT_HEADER=we.CompositePropagator=we.otperformance=we.getStringListFromEnv=we.getNumberFromEnv=we.getBooleanFromEnv=we.getStringFromEnv=we._globalThis=we.SDK_INFO=we.parseKeyPairsIntoRecord=we.ExportResultCode=we.unrefTimer=we.timeInputToHrTime=we.millisToHrTime=we.isTimeInputHrTime=we.isTimeInput=we.hrTimeToTimeStamp=we.hrTimeToNanoseconds=we.hrTimeToMilliseconds=we.hrTimeToMicroseconds=we.hrTimeDuration=we.hrTime=we.getTimeOrigin=we.addHrTimes=we.loggingErrorHandler=we.setGlobalErrorHandler=we.globalErrorHandler=we.sanitizeAttributes=we.isAttributeValue=we.AnchoredClock=we.W3CBaggagePropagator=void 0;var d2t=ORe();Object.defineProperty(we,"W3CBaggagePropagator",{enumerable:!0,get:function(){return d2t.W3CBaggagePropagator}});var f2t=PRe();Object.defineProperty(we,"AnchoredClock",{enumerable:!0,get:function(){return f2t.AnchoredClock}});var ZPe=LRe();Object.defineProperty(we,"isAttributeValue",{enumerable:!0,get:function(){return ZPe.isAttributeValue}});Object.defineProperty(we,"sanitizeAttributes",{enumerable:!0,get:function(){return ZPe.sanitizeAttributes}});var JPe=FRe();Object.defineProperty(we,"globalErrorHandler",{enumerable:!0,get:function(){return JPe.globalErrorHandler}});Object.defineProperty(we,"setGlobalErrorHandler",{enumerable:!0,get:function(){return JPe.setGlobalErrorHandler}});var p2t=t7();Object.defineProperty(we,"loggingErrorHandler",{enumerable:!0,get:function(){return p2t.loggingErrorHandler}});var Hl=yPe();Object.defineProperty(we,"addHrTimes",{enumerable:!0,get:function(){return Hl.addHrTimes}});Object.defineProperty(we,"getTimeOrigin",{enumerable:!0,get:function(){return Hl.getTimeOrigin}});Object.defineProperty(we,"hrTime",{enumerable:!0,get:function(){return Hl.hrTime}});Object.defineProperty(we,"hrTimeDuration",{enumerable:!0,get:function(){return Hl.hrTimeDuration}});Object.defineProperty(we,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return Hl.hrTimeToMicroseconds}});Object.defineProperty(we,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return Hl.hrTimeToMilliseconds}});Object.defineProperty(we,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return Hl.hrTimeToNanoseconds}});Object.defineProperty(we,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return Hl.hrTimeToTimeStamp}});Object.defineProperty(we,"isTimeInput",{enumerable:!0,get:function(){return Hl.isTimeInput}});Object.defineProperty(we,"isTimeInputHrTime",{enumerable:!0,get:function(){return Hl.isTimeInputHrTime}});Object.defineProperty(we,"millisToHrTime",{enumerable:!0,get:function(){return Hl.millisToHrTime}});Object.defineProperty(we,"timeInputToHrTime",{enumerable:!0,get:function(){return Hl.timeInputToHrTime}});var h2t=SPe();Object.defineProperty(we,"unrefTimer",{enumerable:!0,get:function(){return h2t.unrefTimer}});var m2t=bPe();Object.defineProperty(we,"ExportResultCode",{enumerable:!0,get:function(){return m2t.ExportResultCode}});var g2t=J8();Object.defineProperty(we,"parseKeyPairsIntoRecord",{enumerable:!0,get:function(){return g2t.parseKeyPairsIntoRecord}});var _E=P7();Object.defineProperty(we,"SDK_INFO",{enumerable:!0,get:function(){return _E.SDK_INFO}});Object.defineProperty(we,"_globalThis",{enumerable:!0,get:function(){return _E._globalThis}});Object.defineProperty(we,"getStringFromEnv",{enumerable:!0,get:function(){return _E.getStringFromEnv}});Object.defineProperty(we,"getBooleanFromEnv",{enumerable:!0,get:function(){return _E.getBooleanFromEnv}});Object.defineProperty(we,"getNumberFromEnv",{enumerable:!0,get:function(){return _E.getNumberFromEnv}});Object.defineProperty(we,"getStringListFromEnv",{enumerable:!0,get:function(){return _E.getStringListFromEnv}});Object.defineProperty(we,"otperformance",{enumerable:!0,get:function(){return _E.otperformance}});var y2t=_Pe();Object.defineProperty(we,"CompositePropagator",{enumerable:!0,get:function(){return y2t.CompositePropagator}});var XF=IPe();Object.defineProperty(we,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return XF.TRACE_PARENT_HEADER}});Object.defineProperty(we,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return XF.TRACE_STATE_HEADER}});Object.defineProperty(we,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return XF.W3CTraceContextPropagator}});Object.defineProperty(we,"parseTraceParent",{enumerable:!0,get:function(){return XF.parseTraceParent}});var QF=xPe();Object.defineProperty(we,"RPCType",{enumerable:!0,get:function(){return QF.RPCType}});Object.defineProperty(we,"deleteRPCMetadata",{enumerable:!0,get:function(){return QF.deleteRPCMetadata}});Object.defineProperty(we,"getRPCMetadata",{enumerable:!0,get:function(){return QF.getRPCMetadata}});Object.defineProperty(we,"setRPCMetadata",{enumerable:!0,get:function(){return QF.setRPCMetadata}});var B7=hO();Object.defineProperty(we,"isTracingSuppressed",{enumerable:!0,get:function(){return B7.isTracingSuppressed}});Object.defineProperty(we,"suppressTracing",{enumerable:!0,get:function(){return B7.suppressTracing}});Object.defineProperty(we,"unsuppressTracing",{enumerable:!0,get:function(){return B7.unsuppressTracing}});var S2t=L7();Object.defineProperty(we,"TraceState",{enumerable:!0,get:function(){return S2t.TraceState}});var b2t=jPe();Object.defineProperty(we,"merge",{enumerable:!0,get:function(){return b2t.merge}});var XPe=HPe();Object.defineProperty(we,"TimeoutError",{enumerable:!0,get:function(){return XPe.TimeoutError}});Object.defineProperty(we,"callWithTimeout",{enumerable:!0,get:function(){return XPe.callWithTimeout}});var QPe=BPe();Object.defineProperty(we,"isUrlIgnored",{enumerable:!0,get:function(){return QPe.isUrlIgnored}});Object.defineProperty(we,"urlMatches",{enumerable:!0,get:function(){return QPe.urlMatches}});var E2t=GPe();Object.defineProperty(we,"BindOnceFuture",{enumerable:!0,get:function(){return E2t.BindOnceFuture}});var _2t=WPe();Object.defineProperty(we,"diagLogLevelFromString",{enumerable:!0,get:function(){return _2t.diagLogLevelFromString}});var T2t=YPe();we.internal={_export:T2t._export}});var $Pe=w($F=>{"use strict";Object.defineProperty($F,"__esModule",{value:!0});$F.VERSION=void 0;$F.VERSION="0.214.0"});var eNe=w(bO=>{"use strict";Object.defineProperty(bO,"__esModule",{value:!0});bO.SeverityNumber=void 0;var v2t;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(v2t=bO.SeverityNumber||(bO.SeverityNumber={}))});var tj=w(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});gR.NOOP_LOGGER=gR.NoopLogger=void 0;var ej=class{emit(t){}};gR.NoopLogger=ej;gR.NOOP_LOGGER=new ej});var tNe=w(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});Pp.API_BACKWARDS_COMPATIBILITY_VERSION=Pp.makeGetter=Pp._global=Pp.GLOBAL_LOGS_API_KEY=void 0;Pp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Pp._global=globalThis;function R2t(e,t,n){return r=>r===e?t:n}Pp.makeGetter=R2t;Pp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var z7=w(yR=>{"use strict";Object.defineProperty(yR,"__esModule",{value:!0});yR.NOOP_LOGGER_PROVIDER=yR.NoopLoggerProvider=void 0;var A2t=tj(),nj=class{getLogger(t,n,r){return new A2t.NoopLogger}};yR.NoopLoggerProvider=nj;yR.NOOP_LOGGER_PROVIDER=new nj});var nNe=w(rj=>{"use strict";Object.defineProperty(rj,"__esModule",{value:!0});rj.ProxyLogger=void 0;var w2t=tj(),G7=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):w2t.NOOP_LOGGER}};rj.ProxyLogger=G7});var rNe=w(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});ij.ProxyLoggerProvider=void 0;var k2t=z7(),I2t=nNe(),V7=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new I2t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:k2t.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};ij.ProxyLoggerProvider=V7});var sNe=w(sj=>{"use strict";Object.defineProperty(sj,"__esModule",{value:!0});sj.LogsAPI=void 0;var ql=tNe(),x2t=z7(),iNe=rNe(),W7=class e{constructor(){this._proxyLoggerProvider=new iNe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return ql._global[ql.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(ql._global[ql.GLOBAL_LOGS_API_KEY]=(0,ql.makeGetter)(ql.API_BACKWARDS_COMPATIBILITY_VERSION,t,x2t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=ql._global[ql.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(ql._global,ql.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete ql._global[ql.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new iNe.ProxyLoggerProvider}};sj.LogsAPI=W7});var K7=w(Np=>{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.logs=Np.NoopLogger=Np.NOOP_LOGGER=Np.SeverityNumber=void 0;var O2t=eNe();Object.defineProperty(Np,"SeverityNumber",{enumerable:!0,get:function(){return O2t.SeverityNumber}});var oNe=tj();Object.defineProperty(Np,"NOOP_LOGGER",{enumerable:!0,get:function(){return oNe.NOOP_LOGGER}});Object.defineProperty(Np,"NoopLogger",{enumerable:!0,get:function(){return oNe.NoopLogger}});var P2t=sNe();Np.logs=P2t.LogsAPI.getInstance()});var aNe=w(SR=>{"use strict";Object.defineProperty(SR,"__esModule",{value:!0});SR.disableInstrumentations=SR.enableInstrumentations=void 0;function N2t(e,t,n,r){for(let i=0,s=e.length;it.disable())}SR.disableInstrumentations=C2t});var lNe=w(oj=>{"use strict";Object.defineProperty(oj,"__esModule",{value:!0});oj.registerInstrumentations=void 0;var cNe=(Ce(),ke(Ze)),M2t=K7(),uNe=aNe();function D2t(e){let t=e.tracerProvider||cNe.trace.getTracerProvider(),n=e.meterProvider||cNe.metrics.getMeterProvider(),r=e.loggerProvider||M2t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,uNe.enableInstrumentations)(i,t,n,r),()=>{(0,uNe.disableInstrumentations)(i)}}oj.registerInstrumentations=D2t});var bNe=w(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});aj.satisfies=void 0;var X7=(Ce(),ke(Ze)),mNe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,L2t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,U2t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function F2t(e,t,n){if(!j2t(e))return X7.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=z2t(e);if(!r)return!1;let i=[],s=gNe(r,t,i,n);return s&&!n?.includePrerelease?q2t(r,i):s}aj.satisfies=F2t;function j2t(e){return typeof e=="string"&&mNe.test(e)}function gNe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Y7(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=lVt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Y7(e,s,n,r))return!1;return!0}return Y7(e,t,n,r)}function Y7(e,t,n,r){if(t=B2t(t,r),t.includes(" "))return gNe(e,t,n,r);{let i=G2t(t);return n.push(i),H2t(e,i)}}function H2t(e,t){if(t.invalid)return!1;if(!t.version||J7(t.version))return!0;let n=fNe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=fNe(r,i)}return U2t[t.op]?.includes(n)}function q2t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function B2t(e,t){return e=e.trim(),e=cVt(e,t),e=aVt(e),e=uVt(e,t),e=e.trim(),e}function kc(e){return!e||e.toLowerCase()==="x"||e==="*"}function z2t(e){let t=e.match(mNe);if(!t){X7.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function G2t(e){if(!e)return{};let t=e.match(L2t);if(!t)return X7.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function J7(e){return e==="*"||e==="x"||e==="X"}function dNe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function V2t(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function W2t(e,t){if(J7(e)||J7(t))return 0;let[n,r]=V2t(dNe(e),dNe(t));return n>r?1:n)?=?)",pNe=`(?:${SNe}|${K2t})`,Z2t=`(?:-(${pNe}(?:\\.${pNe})*))`,hNe=`${yNe}+`,J2t=`(?:\\+(${hNe}(?:\\.${hNe})*))`,Z7=`${SNe}|x|X|\\*`,EO=`[v=\\s]*(${Z7})(?:\\.(${Z7})(?:\\.(${Z7})(?:${Z2t})?${J2t}?)?)?`,X2t=`^${Y2t}\\s*${EO}$`,Q2t=new RegExp(X2t),$2t=`^\\s*(${EO})\\s+-\\s+(${EO})\\s*$`,eVt=new RegExp($2t),tVt="(?:~>?)",nVt=`^${tVt}${EO}$`,rVt=new RegExp(nVt),iVt="(?:\\^)",sVt=`^${iVt}${EO}$`,oVt=new RegExp(sVt);function aVt(e){let t=rVt;return e.replace(t,(n,r,i,s,o)=>{let a;return kc(r)?a="":kc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:kc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function cVt(e,t){let n=oVt,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return kc(s)?u="":kc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:kc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function uVt(e,t){let n=Q2t;return e.replace(n,(r,i,s,o,a,c)=>{let u=kc(s),l=u||kc(o),d=l||kc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function lVt(e,t){let n=eVt;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(kc(s)?i="":kc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:kc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,kc(d)?l="":kc(f)?l=`<${+d+1}.0.0-0`:kc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var Q7=w(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.massUnwrap=ia.unwrap=ia.massWrap=ia.wrap=void 0;var Ic=console.error.bind(console);function _O(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var dVt=(e,t,n)=>{if(!e||!e[t]){Ic("no original function "+String(t)+" to wrap");return}if(!n){Ic("no wrapper function"),Ic(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Ic("original object and wrapper must be functions");return}let i=n(r,t);return _O(i,"__original",r),_O(i,"__unwrap",()=>{e[t]===i&&_O(e,t,r)}),_O(i,"__wrapped",!0),_O(e,t,i),i};ia.wrap=dVt;var fVt=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Ic("must provide one or more modules to patch"),Ic(new Error().stack);return}if(!(t&&Array.isArray(t))){Ic("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,ia.wrap)(r,i,n)})})};ia.massWrap=fVt;var pVt=(e,t)=>{if(!e||!e[t]){Ic("no function to unwrap."),Ic(new Error().stack);return}let n=e[t];if(!n.__unwrap)Ic("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};ia.unwrap=pVt;var hVt=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Ic("must provide one or more modules to patch"),Ic(new Error().stack);return}if(!(t&&Array.isArray(t))){Ic("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,ia.unwrap)(n,r)})})};ia.massUnwrap=hVt;function TO(e){e&&e.logger&&(typeof e.logger!="function"?Ic("new logger isn't a function, not replacing"):Ic=e.logger)}ia.default=TO;TO.wrap=ia.wrap;TO.massWrap=ia.massWrap;TO.unwrap=ia.unwrap;TO.massUnwrap=ia.massUnwrap});var ENe=w(uj=>{"use strict";Object.defineProperty(uj,"__esModule",{value:!0});uj.InstrumentationAbstract=void 0;var $7=(Ce(),ke(Ze)),mVt=K7(),cj=Q7(),eJ=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=$7.diag.createComponentLogger({namespace:t}),this._tracer=$7.trace.getTracer(t,n),this._meter=$7.metrics.getMeter(t,n),this._logger=mVt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=cj.wrap;_unwrap=cj.unwrap;_massWrap=cj.massWrap;_massUnwrap=cj.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};uj.InstrumentationAbstract=eJ});var TNe=w((NSr,_Ne)=>{var bR=1e3,ER=bR*60,_R=ER*60,TE=_R*24,gVt=TE*7,yVt=TE*365.25;_Ne.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return SVt(e);if(n==="number"&&isFinite(e))return t.long?EVt(e):bVt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function SVt(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*yVt;case"weeks":case"week":case"w":return n*gVt;case"days":case"day":case"d":return n*TE;case"hours":case"hour":case"hrs":case"hr":case"h":return n*_R;case"minutes":case"minute":case"mins":case"min":case"m":return n*ER;case"seconds":case"second":case"secs":case"sec":case"s":return n*bR;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function bVt(e){var t=Math.abs(e);return t>=TE?Math.round(e/TE)+"d":t>=_R?Math.round(e/_R)+"h":t>=ER?Math.round(e/ER)+"m":t>=bR?Math.round(e/bR)+"s":e+"ms"}function EVt(e){var t=Math.abs(e);return t>=TE?lj(e,t,TE,"day"):t>=_R?lj(e,t,_R,"hour"):t>=ER?lj(e,t,ER,"minute"):t>=bR?lj(e,t,bR,"second"):e+" ms"}function lj(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var tJ=w((CSr,vNe)=>{function _Vt(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=a,n.humanize=TNe(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";E++;let A=n.formatters[R];if(typeof A=="function"){let x=g[E];T=A.call(y,x),g.splice(E,1),E--}return T}),n.formatArgs.call(y,g),(y.log||n.log).apply(y,g)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:g=>{f=g}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d=(typeof l=="string"?l:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of d)f[0]==="-"?n.skips.push(f.slice(1)):n.names.push(f)}function s(l,d){let f=0,p=0,h=-1,m=0;for(;f"-"+d)].join(",");return n.enable(""),l}function a(l){for(let d of n.skips)if(s(l,d))return!1;for(let d of n.names)if(s(l,d))return!0;return!1}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}vNe.exports=_Vt});var RNe=w((cu,dj)=>{cu.formatArgs=vVt;cu.save=RVt;cu.load=AVt;cu.useColors=TVt;cu.storage=wVt();cu.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();cu.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function TVt(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function vVt(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+dj.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}cu.log=console.debug||console.log||(()=>{});function RVt(e){try{e?cu.storage.setItem("debug",e):cu.storage.removeItem("debug")}catch{}}function AVt(){let e;try{e=cu.storage.getItem("debug")||cu.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function wVt(){try{return localStorage}catch{}}dj.exports=tJ()(cu);var{formatters:kVt}=dj.exports;kVt.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var wNe=w((MSr,ANe)=>{"use strict";ANe.exports=(e,t=process.argv)=>{let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return r!==-1&&(i===-1||r{"use strict";var IVt=K("os"),kNe=K("tty"),Bl=wNe(),{env:No}=process,fj;Bl("no-color")||Bl("no-colors")||Bl("color=false")||Bl("color=never")?fj=0:(Bl("color")||Bl("colors")||Bl("color=true")||Bl("color=always"))&&(fj=1);function xVt(){if("FORCE_COLOR"in No)return No.FORCE_COLOR==="true"?1:No.FORCE_COLOR==="false"?0:No.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(No.FORCE_COLOR,10),3)}function OVt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function PVt(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=xVt();r!==void 0&&(fj=r);let i=n?fj:r;if(i===0)return 0;if(n){if(Bl("color=16m")||Bl("color=full")||Bl("color=truecolor"))return 3;if(Bl("color=256"))return 2}if(e&&!t&&i===void 0)return 0;let s=i||0;if(No.TERM==="dumb")return s;if(process.platform==="win32"){let o=IVt.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in No)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(o=>o in No)||No.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in No)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(No.TEAMCITY_VERSION)?1:0;if(No.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in No){let o=Number.parseInt((No.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(No.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(No.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(No.TERM)||"COLORTERM"in No?1:s}function nJ(e,t={}){let n=PVt(e,{streamIsTTY:e&&e.isTTY,...t});return OVt(n)}INe.exports={supportsColor:nJ,stdout:nJ({isTTY:kNe.isatty(1)}),stderr:nJ({isTTY:kNe.isatty(2)})}});var ONe=w((Co,mj)=>{var NVt=K("tty"),hj=K("util");Co.init=jVt;Co.log=LVt;Co.formatArgs=MVt;Co.save=UVt;Co.load=FVt;Co.useColors=CVt;Co.destroy=hj.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Co.colors=[6,2,3,4,5,1];try{let e=pj();e&&(e.stderr||e).level>=2&&(Co.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Co.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function CVt(){return"colors"in Co.inspectOpts?!!Co.inspectOpts.colors:NVt.isatty(process.stderr.fd)}function MVt(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` `).join(` -`+s),e.push(i+"m+"+pj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=DVt()+t+" "+e[0]}function DVt(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function LVt(...e){return process.stderr.write(fj.formatWithOptions(Co.inspectOpts,...e)+` -`)}function UVt(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function FVt(){return process.env.DEBUG}function jVt(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};INe.O=function(e){return this.inspectOpts.colors=this.useColors,fj.inspect(e,this.inspectOpts)}});var ONe=w((LSr,nJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?nJ.exports=vNe():nJ.exports=xNe()});var TO=w((USr,PNe)=>{"use strict";var rJ=K("path").sep;PNe.exports=function(e){var t=e.split(rJ),n=t.lastIndexOf("node_modules");if(n!==-1&&t[n+1]){for(var r=t[n+1][0]==="@",i=r?t[n+1]+"/"+t[n+2]:t[n+1],s=r?3:2,o="",a=n+s-1,c=0;c<=a;c++)c===a?o+=t[c]:o+=t[c]+rJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+rJ;return{name:i,basedir:o,path:u}}}});var vE=w((FSr,oJ)=>{"use strict";var TR=K("path"),ef=K("module"),ks=ONe()("require-in-the-middle"),HVt=TO();oJ.exports=vO;oJ.exports.Hook=vO;var iJ,hj;if(ef.isBuiltin)hj=ef.isBuiltin;else if(ef.builtinModules)hj=e=>e.startsWith("node:")?!0:(iJ===void 0&&(iJ=new Set(ef.builtinModules)),iJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var qVt=/([/\\]index)?(\.js)?$/,sJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=K.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=K.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in K.cache?K.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function vO(e,t,n){if(!(this instanceof vO))return new vO(e,t,n);if(typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),typeof ef._resolveFilename!="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof ef._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new sJ,this._unhooked=!1,this._origRequire=ef.prototype.require;let r=this,i=new Set,s=t?t.internals===!0:!1,o=Array.isArray(e);ks("registering require hook"),this._require=ef.prototype.require=function(c){return r._unhooked===!0?(ks("ignoring require call - module is soft-unhooked"),r._origRequire.apply(this,arguments)):a.call(this,arguments,!1)},typeof process.getBuiltinModule=="function"&&(this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(c){return r._unhooked===!0?(ks("ignoring process.getBuiltinModule call - module is soft-unhooked"),r._origGetBuiltinModule.apply(this,arguments)):a.call(this,arguments,!0)});function a(c,u){let l=c[0],d=hj(l),f;if(d){if(f=l,l.startsWith("node:")){let b=l.slice(5);hj(b)&&(f=b)}}else{if(u)return ks("call to process.getBuiltinModule with unknown built-in id"),r._origGetBuiltinModule.apply(this,c);try{f=ef._resolveFilename(l,this)}catch(b){return ks('Module._resolveFilename("%s") threw %j, calling original Module.require',l,b.message),r._origRequire.apply(this,c)}}let p,h;if(ks("processing %s module require('%s'): %s",d===!0?"core":"non-core",l,f),r._cache.has(f,d)===!0)return ks("returning already patched cached module: %s",f),r._cache.get(f,d);let m=i.has(f);m===!1&&i.add(f);let g=u?r._origGetBuiltinModule.apply(this,c):r._origRequire.apply(this,c);if(m===!0)return ks("module is in the process of being patched already - ignoring: %s",f),g;if(i.delete(f),d===!0){if(o===!0&&e.includes(f)===!1)return ks("ignoring core module not on whitelist: %s",f),g;p=f}else if(o===!0&&e.includes(f)){let b=TR.parse(f);p=b.name,h=b.dir}else{let b=HVt(f);if(b===void 0)return ks("could not parse filename: %s",f),g;p=b.name,h=b.basedir;let S=BVt(b);ks("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",p,l,S,h);let E=!1;if(o){if(!l.startsWith(".")&&e.includes(l)&&(p=l,E=!0),!e.includes(p)&&!e.includes(S))return g;e.includes(S)&&S!==p&&(p=S,E=!0)}if(!E){let _;try{_=K.resolve(p,{paths:[h]})}catch{return ks("could not resolve module: %s",p),r._cache.set(f,g,d),g}if(_!==f)if(s===!0)p=p+TR.sep+TR.relative(h,f),ks("preparing to process require of internal file: %s",p);else return ks("ignoring require of non-main module file: %s",_),r._cache.set(f,g,d),g}}r._cache.set(f,g,d),ks("calling require hook: %s",p);let y=n(g,p,h);return r._cache.set(f,y,d),ks("returning module: %s",p),y}}vO.prototype.unhook=function(){this._unhooked=!0,this._require===ef.prototype.require?(ef.prototype.require=this._origRequire,ks("require unhook successful")):ks("require unhook unsuccessful"),process.getBuiltinModule!==void 0&&(this._getBuiltinModule===process.getBuiltinModule?(process.getBuiltinModule=this._origGetBuiltinModule,ks("process.getBuiltinModule unhook successful")):ks("process.getBuiltinModule unhook unsuccessful"))};function BVt(e){let t=TR.sep!=="/"?e.path.split(TR.sep).join("/"):e.path;return TR.posix.join(e.name,t).replace(qVt,"")}});var NNe=w(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.ModuleNameTrie=py.ModuleNameSeparator=void 0;py.ModuleNameSeparator="/";var mj=class{hooks=[];children=new Map},aJ=class{_trie=new mj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(py.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new mj,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(py.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};py.ModuleNameTrie=aJ});var MNe=w(gj=>{"use strict";Object.defineProperty(gj,"__esModule",{value:!0});gj.RequireInTheMiddleSingleton=void 0;var zVt=vE(),CNe=K("path"),cJ=NNe(),GVt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),uJ=class e{_moduleNameTrie=new cJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new zVt.Hook(null,{internals:!0},(t,n,r)=>{let i=VVt(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return GVt?new e:this._instance=this._instance??new e}};gj.RequireInTheMiddleSingleton=uJ;function VVt(e){return CNe.sep!==cJ.ModuleNameSeparator?e.split(CNe.sep).join(cJ.ModuleNameSeparator):e}});var jNe=w(RO=>{var DNe=[],lJ=new WeakMap,LNe=new WeakMap,UNe=new Map,FNe=[],WVt={set(e,t,n){let r=lJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=LNe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=lJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function KVt(e,t,n,r,i){UNe.set(e,i),lJ.set(t,n),LNe.set(t,r);let s=new Proxy(t,WVt);DNe.forEach(o=>o(e,s,i)),FNe.push([e,s,i])}RO.register=KVt;RO.importHooks=DNe;RO.specifiers=UNe;RO.toHook=FNe});var hJ=w((zSr,RR)=>{var HNe=K("path"),YVt=TO(),{fileURLToPath:ZVt}=K("url"),{MessageChannel:JVt}=K("worker_threads"),{isBuiltin:dJ}=K("module");dJ||(dJ=()=>!0);var{importHooks:fJ,specifiers:qNe,toHook:XVt}=jNe();function QVt(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function BNe(e){fJ.push(e),XVt.forEach(([t,n,r])=>e(t,n,r))}function zNe(e){let t=fJ.indexOf(e);t>-1&&fJ.splice(t,1)}function vR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var pJ;function $Vt(){let{port1:e,port2:t}=new JVt,n=0,r;pJ=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function AO(e,t,n){if(!(this instanceof AO))return new AO(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;pJ&&Array.isArray(e)&&pJ(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);dJ(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=ZVt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=YVt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)vR(n,s,u,void 0);else if(d===i){if(!l)vR(n,s,i,l);else if(l.endsWith(qNe.get(a))||QVt(qNe.get(a),l))vR(n,s,i,l);else if(r){let f=i+HNe.sep+HNe.relative(l,u);vR(n,s,f,l)}}else d===o&&vR(n,s,o,l);else vR(n,s,i,l)},BNe(this._iitmHook)}AO.prototype.unhook=function(){zNe(this._iitmHook)};RR.exports=AO;RR.exports.Hook=AO;RR.exports.addHook=BNe;RR.exports.removeHook=zNe;RR.exports.createAddHookMessageChannel=$Vt});var mJ=w(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.isWrapped=hy.safeExecuteInTheMiddleAsync=hy.safeExecuteInTheMiddle=void 0;function eWt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}hy.safeExecuteInTheMiddle=eWt;async function tWt(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}hy.safeExecuteInTheMiddleAsync=tWt;function nWt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}hy.isWrapped=nWt});var WNe=w(yj=>{"use strict";Object.defineProperty(yj,"__esModule",{value:!0});yj.InstrumentationBase=void 0;var wO=K("path"),GNe=K("util"),rWt=SNe(),gJ=X7(),iWt=bNe(),sWt=MNe(),oWt=hJ(),kO=(Ce(),ke(Ze)),aWt=vE(),cWt=K("fs"),uWt=mJ(),yJ=class extends iWt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=sWt.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,uWt.isWrapped)(t[n])&&this._unwrap(t,n),GNe.types.isProxy(t)){let i=(0,gJ.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,gJ.wrap)(t,n,r)};_unwrap=(t,n)=>GNe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,gJ.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{kO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){kO.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{kO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){kO.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){let t=globalThis.require;!t?.resolve||!t?.cache||this._modules.forEach(n=>{let{name:r}=n;try{let i=t.resolve(r);t.cache[i]?.loaded&&this._diag.warn(`Module ${r} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${r}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,cWt.readFileSync)(wO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{kO.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return VNe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=wO.normalize(r);return o.filter(u=>u.name===a&&VNe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&wO.isAbsolute(a)){let u=wO.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=wO.isAbsolute(t.name)?new aWt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new oWt.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};yj.InstrumentationBase=yJ;function VNe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,rWt.satisfies)(t,r,{includePrerelease:n}))}});var KNe=w(Sj=>{"use strict";Object.defineProperty(Sj,"__esModule",{value:!0});Sj.normalize=void 0;var lWt=K("path");Object.defineProperty(Sj,"normalize",{enumerable:!0,get:function(){return lWt.normalize}})});var YNe=w(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});AR.normalize=AR.InstrumentationBase=void 0;var dWt=WNe();Object.defineProperty(AR,"InstrumentationBase",{enumerable:!0,get:function(){return dWt.InstrumentationBase}});var fWt=KNe();Object.defineProperty(AR,"normalize",{enumerable:!0,get:function(){return fWt.normalize}})});var SJ=w(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});wR.normalize=wR.InstrumentationBase=void 0;var ZNe=YNe();Object.defineProperty(wR,"InstrumentationBase",{enumerable:!0,get:function(){return ZNe.InstrumentationBase}});Object.defineProperty(wR,"normalize",{enumerable:!0,get:function(){return ZNe.normalize}})});var JNe=w(bj=>{"use strict";Object.defineProperty(bj,"__esModule",{value:!0});bj.InstrumentationNodeModuleDefinition=void 0;var bJ=class{files;name;supportedVersions;patch;unpatch;constructor(t,n,r,i,s){this.files=s||[],this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i}};bj.InstrumentationNodeModuleDefinition=bJ});var XNe=w(Ej=>{"use strict";Object.defineProperty(Ej,"__esModule",{value:!0});Ej.InstrumentationNodeModuleFile=void 0;var pWt=SJ(),EJ=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,pWt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};Ej.InstrumentationNodeModuleFile=EJ});var QNe=w(RE=>{"use strict";Object.defineProperty(RE,"__esModule",{value:!0});RE.semconvStabilityFromStr=RE.SemconvStability=void 0;var _j;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(_j=RE.SemconvStability||(RE.SemconvStability={}));function hWt(e,t){let n=_j.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=_j.DUPLICATE;break}else i.toLowerCase()===e&&(n=_j.STABLE);return n}RE.semconvStabilityFromStr=hWt});var Jt=w(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});Bs.semconvStabilityFromStr=Bs.SemconvStability=Bs.safeExecuteInTheMiddleAsync=Bs.safeExecuteInTheMiddle=Bs.isWrapped=Bs.InstrumentationNodeModuleFile=Bs.InstrumentationNodeModuleDefinition=Bs.InstrumentationBase=Bs.registerInstrumentations=void 0;var mWt=uNe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return mWt.registerInstrumentations}});var gWt=SJ();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return gWt.InstrumentationBase}});var yWt=JNe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return yWt.InstrumentationNodeModuleDefinition}});var SWt=XNe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return SWt.InstrumentationNodeModuleFile}});var _J=mJ();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return _J.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return _J.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return _J.safeExecuteInTheMiddleAsync}});var $Ne=QNe();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return $Ne.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return $Ne.semconvStabilityFromStr}})});var eCe=w(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.HTTP_FLAVOR_VALUE_HTTP_1_1=bt.NET_TRANSPORT_VALUE_IP_UDP=bt.NET_TRANSPORT_VALUE_IP_TCP=bt.ATTR_NET_TRANSPORT=bt.ATTR_NET_PEER_PORT=bt.ATTR_NET_PEER_NAME=bt.ATTR_NET_PEER_IP=bt.ATTR_NET_HOST_PORT=bt.ATTR_NET_HOST_NAME=bt.ATTR_NET_HOST_IP=bt.ATTR_HTTP_USER_AGENT=bt.ATTR_HTTP_URL=bt.ATTR_HTTP_TARGET=bt.ATTR_HTTP_STATUS_CODE=bt.ATTR_HTTP_SERVER_NAME=bt.ATTR_HTTP_SCHEME=bt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=bt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH=bt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=bt.ATTR_HTTP_REQUEST_CONTENT_LENGTH=bt.ATTR_HTTP_METHOD=bt.ATTR_HTTP_HOST=bt.ATTR_HTTP_FLAVOR=bt.ATTR_HTTP_CLIENT_IP=bt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST=bt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT=bt.ATTR_USER_AGENT_SYNTHETIC_TYPE=void 0;bt.ATTR_USER_AGENT_SYNTHETIC_TYPE="user_agent.synthetic.type";bt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT="bot";bt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST="test";bt.ATTR_HTTP_CLIENT_IP="http.client_ip";bt.ATTR_HTTP_FLAVOR="http.flavor";bt.ATTR_HTTP_HOST="http.host";bt.ATTR_HTTP_METHOD="http.method";bt.ATTR_HTTP_REQUEST_CONTENT_LENGTH="http.request_content_length";bt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED="http.request_content_length_uncompressed";bt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH="http.response_content_length";bt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED="http.response_content_length_uncompressed";bt.ATTR_HTTP_SCHEME="http.scheme";bt.ATTR_HTTP_SERVER_NAME="http.server_name";bt.ATTR_HTTP_STATUS_CODE="http.status_code";bt.ATTR_HTTP_TARGET="http.target";bt.ATTR_HTTP_URL="http.url";bt.ATTR_HTTP_USER_AGENT="http.user_agent";bt.ATTR_NET_HOST_IP="net.host.ip";bt.ATTR_NET_HOST_NAME="net.host.name";bt.ATTR_NET_HOST_PORT="net.host.port";bt.ATTR_NET_PEER_IP="net.peer.ip";bt.ATTR_NET_PEER_NAME="net.peer.name";bt.ATTR_NET_PEER_PORT="net.peer.port";bt.ATTR_NET_TRANSPORT="net.transport";bt.NET_TRANSPORT_VALUE_IP_TCP="ip_tcp";bt.NET_TRANSPORT_VALUE_IP_UDP="ip_udp";bt.HTTP_FLAVOR_VALUE_HTTP_1_1="1.1"});var tCe=w(IO=>{"use strict";Object.defineProperty(IO,"__esModule",{value:!0});IO.AttributeNames=void 0;var bWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(bWt=IO.AttributeNames||(IO.AttributeNames={}))});var TJ=w(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});Cp.DEFAULT_QUERY_STRINGS_TO_REDACT=Cp.STR_REDACTED=Cp.SYNTHETIC_BOT_NAMES=Cp.SYNTHETIC_TEST_NAMES=void 0;Cp.SYNTHETIC_TEST_NAMES=["alwayson"];Cp.SYNTHETIC_BOT_NAMES=["googlebot","bingbot"];Cp.STR_REDACTED="REDACTED";Cp.DEFAULT_QUERY_STRINGS_TO_REDACT=["sig","Signature","AWSAccessKeyId","X-Goog-Signature"]});var rCe=w((nbr,nCe)=>{"use strict";var EWt=K("util");function vJ(e,t){Error.captureStackTrace(this,vJ),this.name=this.constructor.name,this.message=e,this.input=t}EWt.inherits(vJ,Error);nCe.exports=vJ});var sCe=w((rbr,iCe)=>{"use strict";function _Wt(e){return e===34||e===40||e===41||e===44||e===47||e>=58&&e<=64||e>=91&&e<=93||e===123||e===125}function TWt(e){return e===33||e>=35&&e<=39||e===42||e===43||e===45||e===46||e>=48&&e<=57||e>=65&&e<=90||e>=94&&e<=122||e===124||e===126}function vWt(e){return e>=32&&e<=126}function RWt(e){return e>=128&&e<=255}iCe.exports={isDelimiter:_Wt,isTokenChar:TWt,isExtended:RWt,isPrint:vWt}});var lCe=w((ibr,uCe)=>{"use strict";var AWt=K("util"),kR=rCe(),Tj=sCe(),wWt=Tj.isDelimiter,oCe=Tj.isTokenChar,aCe=Tj.isExtended,kWt=Tj.isPrint;function cCe(e){return e.replace(/\\(.)/g,"$1")}function xO(e,t){return AWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function IWt(e){for(var t=!1,n=!1,r=!1,i={},s=[],o=-1,a=-1,c,u,l=0;l{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.headerCapture=Tt.getIncomingStableRequestMetricAttributesOnResponse=Tt.getIncomingRequestMetricAttributesOnResponse=Tt.getIncomingRequestAttributesOnResponse=Tt.getIncomingRequestMetricAttributes=Tt.getIncomingRequestAttributes=Tt.getRemoteClientAddress=Tt.getOutgoingStableRequestMetricAttributesOnResponse=Tt.getOutgoingRequestMetricAttributesOnResponse=Tt.getOutgoingRequestAttributesOnResponse=Tt.setAttributesFromHttpKind=Tt.getOutgoingRequestMetricAttributes=Tt.getOutgoingRequestAttributes=Tt.extractHostnameAndPort=Tt.isValidOptionsType=Tt.getRequestInfo=Tt.isCompressed=Tt.setResponseContentLengthAttribute=Tt.setRequestContentLengthAttribute=Tt.setSpanWithError=Tt.satisfiesPattern=Tt.parseResponseStatus=Tt.getAbsoluteUrl=void 0;var OO=(Ce(),ke(Ze)),fn=(Pn(),ke(Mr)),dt=eCe(),dCe=fr(),ol=Jt(),xWt=K("url"),Rj=tCe(),fCe=TJ(),vj=TJ(),OWt=lCe(),PWt=(e,t,n="http:",r=Array.from(vj.DEFAULT_QUERY_STRINGS_TO_REDACT))=>{let i=e||{},s=i.protocol||n,o=(i.port||"").toString(),a=i.path||"/",c=i.host||i.hostname||t.host||"localhost";if(c.indexOf(":")===-1&&o&&o!=="80"&&o!=="443"&&(c+=`:${o}`),a.includes("?"))try{let l=new URL(a,"http://localhost"),d=r||[];for(let f of d)l.searchParams.get(f)&&l.searchParams.set(f,vj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${vj.STR_REDACTED}:${vj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=PWt;var NWt=(e,t)=>{let n=e===OO.SpanKind.CLIENT?400:500;return t&&t>=100&&t{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")};Tt.satisfiesPattern=CWt;var MWt=(e,t,n)=>{let r=t.message;n&ol.SemconvStability.OLD&&(e.setAttribute(Rj.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(Rj.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&ol.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:OO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=MWt;var DWt=(e,t)=>{let n=hCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setRequestContentLengthAttribute=DWt;var LWt=(e,t)=>{let n=hCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setResponseContentLengthAttribute=LWt;function hCe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var UWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=UWt;function FWt(e){let{hostname:t,pathname:n,port:r,username:i,password:s,search:o,protocol:a,hash:c,href:u,origin:l,host:d}=new URL(e),f={protocol:a,hostname:t&&t[0]==="["?t.slice(1,-1):t,hash:c,search:o,pathname:n,path:`${n||""}${o||""}`,href:u,origin:l,host:d};return r!==""&&(f.port=Number(r)),(i||s)&&(f.auth=`${decodeURIComponent(i)}:${decodeURIComponent(s)}`),f}var jWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=FWt(t);s=c,r=c.pathname||"/"}catch(c){o=!0,e.verbose("Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:",c),s={path:t},r=s.path||"/"}i=`${s.protocol||"http:"}//${s.host}`,n!==void 0&&Object.assign(s,n)}else if(t instanceof xWt.URL)s={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,path:`${t.pathname||""}${t.search||""}`},t.port!==""&&(s.port=Number(t.port)),(t.username||t.password)&&(s.auth=`${t.username}:${t.password}`),r=t.pathname,i=t.origin,n!==void 0&&Object.assign(s,n);else{s=Object.assign({protocol:t.host?"http:":void 0},t);let c=s.host||(s.port!=null?`${s.hostname}${s.port}`:s.hostname);if(i=`${s.protocol||"http:"}//${c}`,r=t.pathname,!r&&s.path)try{r=new URL(s.path,i).pathname||"/"}catch{r="/"}}let a=s.method?s.method.toUpperCase():"GET";return{origin:i,pathname:r,method:a,optionsParsed:s,invalidUrl:o}};Tt.getRequestInfo=jWt;var HWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=HWt;var qWt=e=>{if(e.hostname&&e.port)return{hostname:e.hostname,port:e.port};let t=e.host?.match(/^([^:/ ]+)(:\d{1,5})?/)||null,n=e.hostname||(t===null?"localhost":t[1]),r=e.port;return r||(t&&t[2]?r=t[2].substring(1):r=e.protocol==="https:"?"443":"80"),{hostname:n,port:r}};Tt.extractHostnameAndPort=qWt;var BWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=yCe(o),c=e.headers||{},u=c["user-agent"],l=(0,Tt.getAbsoluteUrl)(e,c,`${t.component}:`,t.redactedQueryParams),d={[dt.ATTR_HTTP_URL]:l,[dt.ATTR_HTTP_METHOD]:o,[dt.ATTR_HTTP_TARGET]:e.path||"/",[dt.ATTR_NET_PEER_NAME]:i,[dt.ATTR_HTTP_HOST]:c.host??`${i}:${s}`},f={[fn.ATTR_HTTP_REQUEST_METHOD]:a,[fn.ATTR_SERVER_ADDRESS]:i,[fn.ATTR_SERVER_PORT]:Number(s),[fn.ATTR_URL_FULL]:l,[fn.ATTR_USER_AGENT_ORIGINAL]:u};switch(o!==a&&(f[fn.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=o),r&&u&&(f[dt.ATTR_USER_AGENT_SYNTHETIC_TYPE]=mCe(u)),u!==void 0&&(d[dt.ATTR_HTTP_USER_AGENT]=u),n){case ol.SemconvStability.STABLE:return Object.assign(f,t.hookAttributes);case ol.SemconvStability.OLD:return Object.assign(d,t.hookAttributes)}return Object.assign(d,f,t.hookAttributes)};Tt.getOutgoingRequestAttributes=BWt;var zWt=e=>{let t={};return t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_PEER_NAME]=e[dt.ATTR_NET_PEER_NAME],t};Tt.getOutgoingRequestMetricAttributes=zWt;var GWt=(e,t)=>{e&&(t[dt.ATTR_HTTP_FLAVOR]=e,e.toUpperCase()!=="QUIC"?t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_TCP:t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_UDP)};Tt.setAttributesFromHttpKind=GWt;var mCe=e=>{let t=String(e).toLowerCase();for(let n of fCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of fCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},VWt=(e,t)=>{let{statusCode:n,statusMessage:r,httpVersion:i,socket:s}=e,o={},a={};if(n!=null&&(a[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=n),s){let{remoteAddress:c,remotePort:u}=s;o[dt.ATTR_NET_PEER_IP]=c,o[dt.ATTR_NET_PEER_PORT]=u,a[fn.ATTR_NETWORK_PEER_ADDRESS]=c,a[fn.ATTR_NETWORK_PEER_PORT]=u,a[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e.httpVersion}switch((0,Tt.setResponseContentLengthAttribute)(e,o),n&&(o[dt.ATTR_HTTP_STATUS_CODE]=n,o[Rj.AttributeNames.HTTP_STATUS_TEXT]=(r||"").toUpperCase()),(0,Tt.setAttributesFromHttpKind)(i,o),t){case ol.SemconvStability.STABLE:return a;case ol.SemconvStability.OLD:return o}return Object.assign(o,a)};Tt.getOutgoingRequestAttributesOnResponse=VWt;var WWt=e=>{let t={};return t[dt.ATTR_NET_PEER_PORT]=e[dt.ATTR_NET_PEER_PORT],t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getOutgoingRequestMetricAttributesOnResponse=WWt;var KWt=e=>{let t={};return e[fn.ATTR_NETWORK_PROTOCOL_VERSION]&&(t[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e[fn.ATTR_NETWORK_PROTOCOL_VERSION]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getOutgoingStableRequestMetricAttributesOnResponse=KWt;function my(e,t){let n=e.split(":");if(n.length===1)return t==="http"?{host:n[0],port:"80"}:t==="https"?{host:n[0],port:"443"}:{host:n[0]};if(n.length===2)return{host:n[0],port:n[1]};if(n[0].startsWith("[")){if(n[n.length-1].endsWith("]")){if(t==="http")return{host:e,port:"80"};if(t==="https")return{host:e,port:"443"}}else if(n[n.length-2].endsWith("]"))return{host:n.slice(0,-1).join(":"),port:n[n.length-1]}}return{host:e}}function YWt(e,t){let n=e.headers.forwarded;if(n){for(let s of SCe(n))if(s.host)return my(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?my(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?my(r,e.headers["x-forwarded-proto"][0]):my(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?my(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?my(r[0],e.headers["x-forwarded-proto"][0]):my(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?my(i,t):null}function gCe(e){let t=e.headers.forwarded;if(t){for(let i of SCe(t))if(i.for)return pCe(i.for)}let n=e.headers["x-forwarded-for"];if(n){let i;if(typeof n=="string"?i=n:Array.isArray(n)&&(i=n[0]),typeof i=="string")return i=i.split(",")[0].trim(),pCe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=gCe;function pCe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function ZWt(e,t,n){try{if(t.headers.host)return new URL(t.url??"/",`${e}://${t.headers.host}`);{let r=new URL(t.url??"/",`${e}://localhost`);return{pathname:r.pathname,search:r.search,toString:function(){return r.pathname+r.search}}}}catch(r){return n.verbose("Unable to get URL from request",r),{}}}var JWt=(e,t,n)=>{let{component:r,enableSyntheticSourceDetection:i,hookAttributes:s,semconvStability:o,serverName:a}=t,{headers:c,httpVersion:u,method:l}=e,{host:d,"user-agent":f,"x-forwarded-for":p}=c,h=ZWt(r,e,n),m,g;if(o!==ol.SemconvStability.OLD){let y=yCe(l),b=YWt(e,r),S=gCe(e);m={[fn.ATTR_HTTP_REQUEST_METHOD]:y,[fn.ATTR_URL_SCHEME]:r,[fn.ATTR_SERVER_ADDRESS]:b?.host,[fn.ATTR_NETWORK_PEER_ADDRESS]:e.socket.remoteAddress,[fn.ATTR_NETWORK_PEER_PORT]:e.socket.remotePort,[fn.ATTR_NETWORK_PROTOCOL_VERSION]:e.httpVersion,[fn.ATTR_USER_AGENT_ORIGINAL]:f},h.pathname!=null&&(m[fn.ATTR_URL_PATH]=h.pathname),h.search&&(m[fn.ATTR_URL_QUERY]=h.search.slice(1)),S!=null&&(m[fn.ATTR_CLIENT_ADDRESS]=S),b?.port!=null&&(m[fn.ATTR_SERVER_PORT]=Number(b.port)),l!==y&&(m[fn.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=l),i&&f&&(m[dt.ATTR_USER_AGENT_SYNTHETIC_TYPE]=mCe(f))}if(o!==ol.SemconvStability.STABLE){let y=d?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost";g={[dt.ATTR_HTTP_URL]:h.toString(),[dt.ATTR_HTTP_HOST]:d,[dt.ATTR_NET_HOST_NAME]:y,[dt.ATTR_HTTP_METHOD]:l,[dt.ATTR_HTTP_SCHEME]:r},typeof p=="string"&&(g[dt.ATTR_HTTP_CLIENT_IP]=p.split(",")[0]),typeof a=="string"&&(g[dt.ATTR_HTTP_SERVER_NAME]=a),h.pathname&&(g[dt.ATTR_HTTP_TARGET]=h.pathname+h.search||"/"),f!==void 0&&(g[dt.ATTR_HTTP_USER_AGENT]=f),(0,Tt.setRequestContentLengthAttribute)(e,g),(0,Tt.setAttributesFromHttpKind)(u,g)}switch(o){case ol.SemconvStability.STABLE:return Object.assign(m,s);case ol.SemconvStability.OLD:return Object.assign(g,s);default:return Object.assign(g,m,s)}};Tt.getIncomingRequestAttributes=JWt;var XWt=e=>{let t={};return t[dt.ATTR_HTTP_SCHEME]=e[dt.ATTR_HTTP_SCHEME],t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_HOST_NAME]=e[dt.ATTR_NET_HOST_NAME],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getIncomingRequestMetricAttributes=XWt;var QWt=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,dCe.getRPCMetadata)(OO.context.active()),c={};if(r){let{localAddress:u,localPort:l,remoteAddress:d,remotePort:f}=r;c[dt.ATTR_NET_HOST_IP]=u,c[dt.ATTR_NET_HOST_PORT]=l,c[dt.ATTR_NET_PEER_IP]=d,c[dt.ATTR_NET_PEER_PORT]=f}switch(c[dt.ATTR_HTTP_STATUS_CODE]=i,c[Rj.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===dCe.RPCType.HTTP&&a.route!==void 0&&(c[fn.ATTR_HTTP_ROUTE]=a.route,o[fn.ATTR_HTTP_ROUTE]=a.route),n){case ol.SemconvStability.STABLE:return o;case ol.SemconvStability.OLD:return c}return Object.assign(c,o)};Tt.getIncomingRequestAttributesOnResponse=QWt;var $Wt=e=>{let t={};return t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_NET_HOST_PORT]=e[dt.ATTR_NET_HOST_PORT],e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),t};Tt.getIncomingRequestMetricAttributesOnResponse=$Wt;var e4t=e=>{let t={};return e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getIncomingStableRequestMetricAttributesOnResponse=e4t;function t4t(e,t,n){let r=new Map;for(let i=0,s=t.length;i{let s={};for(let o of r.keys()){let a=i(o);if(a===void 0)continue;let c=r.get(o),u=`http.${e}.header.${c}`;typeof a=="string"?s[u]=[a]:Array.isArray(a)?s[u]=a:s[u]=[a]}return s}}Tt.headerCapture=t4t;var n4t=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function yCe(e){if(e==null)return"GET";let t=e.toUpperCase();return n4t.has(t)?t:"_OTHER"}function SCe(e){try{return OWt(e)}catch{return[]}}});var ECe=w(Aj=>{"use strict";Object.defineProperty(Aj,"__esModule",{value:!0});Aj.HttpInstrumentation=void 0;var tn=(Ce(),ke(Ze)),gy=fr(),r4t=K("url"),i4t=QPe(),Mo=Jt(),RJ=K("events"),Oi=(Pn(),ke(Mr)),Is=bCe(),AJ=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",i4t.VERSION,t),this._semconvStability=(0,Mo.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._headerCapture=this._createHeaderCapture(this._semconvStability)}_updateMetricInstruments(){this._oldHttpServerDurationHistogram=this.meter.createHistogram("http.server.duration",{description:"Measures the duration of inbound HTTP requests.",unit:"ms",valueType:tn.ValueType.DOUBLE}),this._oldHttpClientDurationHistogram=this.meter.createHistogram("http.client.duration",{description:"Measures the duration of outbound HTTP requests.",unit:"ms",valueType:tn.ValueType.DOUBLE}),this._stableHttpServerDurationHistogram=this.meter.createHistogram(Oi.METRIC_HTTP_SERVER_REQUEST_DURATION,{description:"Duration of HTTP server requests.",unit:"s",valueType:tn.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}}),this._stableHttpClientDurationHistogram=this.meter.createHistogram(Oi.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Duration of HTTP client requests.",unit:"s",valueType:tn.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}_recordServerDuration(t,n,r){this._semconvStability&Mo.SemconvStability.OLD&&this._oldHttpServerDurationHistogram.record(t,n),this._semconvStability&Mo.SemconvStability.STABLE&&this._stableHttpServerDurationHistogram.record(t/1e3,r)}_recordClientDuration(t,n,r){this._semconvStability&Mo.SemconvStability.OLD&&this._oldHttpClientDurationHistogram.record(t,n),this._semconvStability&Mo.SemconvStability.STABLE&&this._stableHttpClientDurationHistogram.record(t/1e3,r)}setConfig(t={}){super.setConfig(t),this._headerCapture=this._createHeaderCapture(this._semconvStability)}init(){return[this._getHttpsInstrumentation(),this._getHttpInstrumentation()]}_getHttpInstrumentation(){return new Mo.InstrumentationNodeModuleDefinition("http",["*"],t=>{if(this._httpPatched)return t;this._httpPatched=!0;let n=t[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let r=this._wrap(t,"request",this._getPatchOutgoingRequestFunction("http")),i=this._wrap(t,"get",this._getPatchOutgoingGetFunction(r));n&&(t.default.request=r,t.default.get=i)}return this.getConfig().disableIncomingRequestInstrumentation||this._wrap(t.Server.prototype,"emit",this._getPatchIncomingRequestFunction("http")),t},t=>{this._httpPatched=!1,t!==void 0&&(this.getConfig().disableOutgoingRequestInstrumentation||(this._unwrap(t,"request"),this._unwrap(t,"get")),this.getConfig().disableIncomingRequestInstrumentation||this._unwrap(t.Server.prototype,"emit"))})}_getHttpsInstrumentation(){return new Mo.InstrumentationNodeModuleDefinition("https",["*"],t=>{if(this._httpsPatched)return t;this._httpsPatched=!0;let n=t[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let r=this._wrap(t,"request",this._getPatchHttpsOutgoingRequestFunction("https")),i=this._wrap(t,"get",this._getPatchHttpsOutgoingGetFunction(r));n&&(t.default.request=r,t.default.get=i)}return this.getConfig().disableIncomingRequestInstrumentation||this._wrap(t.Server.prototype,"emit",this._getPatchIncomingRequestFunction("https")),t},t=>{this._httpsPatched=!1,t!==void 0&&(this.getConfig().disableOutgoingRequestInstrumentation||(this._unwrap(t,"request"),this._unwrap(t,"get")),this.getConfig().disableIncomingRequestInstrumentation||this._unwrap(t.Server.prototype,"emit"))})}_getPatchIncomingRequestFunction(t){return n=>this._incomingRequestFunction(t,n)}_getPatchOutgoingRequestFunction(t){return n=>this._outgoingRequestFunction(t,n)}_getPatchOutgoingGetFunction(t){return n=>function(i,...s){let o=t(i,...s);return o.end(),o}}_getPatchHttpsOutgoingRequestFunction(t){return n=>{let r=this;return function(s,...o){return t==="https"&&typeof s=="object"&&s?.constructor?.name!=="URL"&&(s=Object.assign({},s),r._setDefaultOptions(s)),r._getPatchOutgoingRequestFunction(t)(n)(s,...o)}}}_setDefaultOptions(t){t.protocol=t.protocol||"https:",t.port=t.port||443}_getPatchHttpsOutgoingGetFunction(t){return n=>{let r=this;return function(s,...o){return r._getPatchOutgoingGetFunction(t)(n)(s,...o)}}}_traceClientRequest(t,n,r,i,s){this.getConfig().requestHook&&this._callRequestHook(n,t);let o=!1;return t.prependListener("response",a=>{this._diag.debug("outgoingRequest on response()"),t.listenerCount("response")<=1&&a.resume();let c=(0,Is.getOutgoingRequestAttributesOnResponse)(a,this._semconvStability);n.setAttributes(c),i=Object.assign(i,(0,Is.getOutgoingRequestMetricAttributesOnResponse)(c)),s=Object.assign(s,(0,Is.getOutgoingStableRequestMetricAttributesOnResponse)(c)),this.getConfig().responseHook&&this._callResponseHook(n,a),n.setAttributes(this._headerCapture.client.captureRequestHeaders(l=>t.getHeader(l))),n.setAttributes(this._headerCapture.client.captureResponseHeaders(l=>a.headers[l])),tn.context.bind(tn.context.active(),a);let u=()=>{if(this._diag.debug("outgoingRequest on end()"),o)return;o=!0;let l;a.aborted&&!a.complete?l={code:tn.SpanStatusCode.ERROR}:l={code:(0,Is.parseResponseStatus)(tn.SpanKind.CLIENT,a.statusCode)},n.setStatus(l),this.getConfig().applyCustomAttributesOnSpan&&(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(n,t,a),()=>{},!0),this._closeHttpSpan(n,tn.SpanKind.CLIENT,r,i,s)};a.on("end",u),a.on(RJ.errorMonitor,l=>{this._diag.debug("outgoingRequest on error()",l),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,l))})}),t.on("close",()=>{this._diag.debug("outgoingRequest on request close()"),!(t.aborted||o)&&(o=!0,this._closeHttpSpan(n,tn.SpanKind.CLIENT,r,i,s))}),t.on(RJ.errorMonitor,a=>{this._diag.debug("outgoingRequest on request error()",a),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,a))}),this._diag.debug("http.ClientRequest return request"),t}_incomingRequestFunction(t,n){let r=this;return function(s,...o){if(s!=="request")return n.apply(this,[s,...o]);let a=o[0],c=o[1],u=a.method||"GET";if(r._diag.debug(`${t} instrumentation incomingRequest`),(0,Mo.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreIncomingRequestHook?.(a),S=>{S!=null&&r._diag.error("caught ignoreIncomingRequestHook error: ",S)},!0))return tn.context.with((0,gy.suppressTracing)(tn.context.active()),()=>(tn.context.bind(tn.context.active(),a),tn.context.bind(tn.context.active(),c),n.apply(this,[s,...o])));let l=a.headers,d=(0,Is.getIncomingRequestAttributes)(a,{component:t,serverName:r.getConfig().serverName,hookAttributes:r._callStartSpanHook(a,r.getConfig().startIncomingSpanHook),semconvStability:r._semconvStability,enableSyntheticSourceDetection:r.getConfig().enableSyntheticSourceDetection||!1},r._diag);Object.assign(d,r._headerCapture.server.captureRequestHeaders(S=>a.headers[S]));let f={kind:tn.SpanKind.SERVER,attributes:d},p=(0,gy.hrTime)(),h=(0,Is.getIncomingRequestMetricAttributes)(d),m={[Oi.ATTR_HTTP_REQUEST_METHOD]:d[Oi.ATTR_HTTP_REQUEST_METHOD],[Oi.ATTR_URL_SCHEME]:d[Oi.ATTR_URL_SCHEME]};d[Oi.ATTR_NETWORK_PROTOCOL_VERSION]&&(m[Oi.ATTR_NETWORK_PROTOCOL_VERSION]=d[Oi.ATTR_NETWORK_PROTOCOL_VERSION]);let g=tn.propagation.extract(tn.ROOT_CONTEXT,l),y=r._startHttpSpan(u,f,g),b={type:gy.RPCType.HTTP,span:y};return tn.context.with((0,gy.setRPCMetadata)(tn.trace.setSpan(g,y),b),()=>{tn.context.bind(tn.context.active(),a),tn.context.bind(tn.context.active(),c),r.getConfig().requestHook&&r._callRequestHook(y,a),r.getConfig().responseHook&&r._callResponseHook(y,c);let S=!1;return c.on("close",()=>{S||r._onServerResponseFinish(a,c,y,h,m,p)}),c.on(RJ.errorMonitor,E=>{S=!0,r._onServerResponseError(y,h,m,p,E)}),(0,Mo.safeExecuteInTheMiddle)(()=>n.apply(this,[s,...o]),E=>{if(E)throw r._onServerResponseError(y,h,m,p,E),E})})}}_outgoingRequestFunction(t,n){let r=this;return function(s,...o){if(!(0,Is.isValidOptionsType)(s))return n.apply(this,[s,...o]);let a=typeof o[0]=="object"&&(typeof s=="string"||s instanceof r4t.URL)?o.shift():void 0,{method:c,invalidUrl:u,optionsParsed:l}=(0,Is.getRequestInfo)(r._diag,s,a);if((0,Mo.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreOutgoingRequestHook?.(l),_=>{_!=null&&r._diag.error("caught ignoreOutgoingRequestHook error: ",_)},!0))return n.apply(this,[l,...o]);let{hostname:d,port:f}=(0,Is.extractHostnameAndPort)(l),p=(0,Is.getOutgoingRequestAttributes)(l,{component:t,port:f,hostname:d,hookAttributes:r._callStartSpanHook(l,r.getConfig().startOutgoingSpanHook),redactedQueryParams:r.getConfig().redactedQueryParams},r._semconvStability,r.getConfig().enableSyntheticSourceDetection||!1),h=(0,gy.hrTime)(),m=(0,Is.getOutgoingRequestMetricAttributes)(p),g={[Oi.ATTR_HTTP_REQUEST_METHOD]:p[Oi.ATTR_HTTP_REQUEST_METHOD],[Oi.ATTR_SERVER_ADDRESS]:p[Oi.ATTR_SERVER_ADDRESS],[Oi.ATTR_SERVER_PORT]:p[Oi.ATTR_SERVER_PORT]};p[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(g[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]=p[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]),p[Oi.ATTR_NETWORK_PROTOCOL_VERSION]&&(g[Oi.ATTR_NETWORK_PROTOCOL_VERSION]=p[Oi.ATTR_NETWORK_PROTOCOL_VERSION]);let y={kind:tn.SpanKind.CLIENT,attributes:p},b=r._startHttpSpan(c,y),S=tn.context.active(),E=tn.trace.setSpan(S,b);return l.headers?l.headers=Object.assign({},l.headers):l.headers={},tn.propagation.inject(E,l.headers),tn.context.with(E,()=>{let _=o[o.length-1];typeof _=="function"&&(o[o.length-1]=tn.context.bind(S,_));let T=(0,Mo.safeExecuteInTheMiddle)(()=>u?n.apply(this,[s,...o]):n.apply(this,[l,...o]),R=>{if(R)throw r._onOutgoingRequestError(b,m,g,h,R),R});return r._diag.debug(`${t} instrumentation outgoingRequest`),tn.context.bind(S,T),r._traceClientRequest(T,b,h,m,g)})}}_onServerResponseFinish(t,n,r,i,s,o){let a=(0,Is.getIncomingRequestAttributesOnResponse)(t,n,this._semconvStability);i=Object.assign(i,(0,Is.getIncomingRequestMetricAttributesOnResponse)(a)),s=Object.assign(s,(0,Is.getIncomingStableRequestMetricAttributesOnResponse)(a)),r.setAttributes(this._headerCapture.server.captureResponseHeaders(u=>n.getHeader(u))),r.setAttributes(a).setStatus({code:(0,Is.parseResponseStatus)(tn.SpanKind.SERVER,n.statusCode)});let c=a[Oi.ATTR_HTTP_ROUTE];c&&r.updateName(`${t.method||"GET"} ${c}`),this.getConfig().applyCustomAttributesOnSpan&&(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(r,t,n),()=>{},!0),this._closeHttpSpan(r,tn.SpanKind.SERVER,o,i,s)}_onOutgoingRequestError(t,n,r,i,s){(0,Is.setSpanWithError)(t,s,this._semconvStability),r[Oi.ATTR_ERROR_TYPE]=s.name,this._closeHttpSpan(t,tn.SpanKind.CLIENT,i,n,r)}_onServerResponseError(t,n,r,i,s){(0,Is.setSpanWithError)(t,s,this._semconvStability),r[Oi.ATTR_ERROR_TYPE]=s.name,this._closeHttpSpan(t,tn.SpanKind.SERVER,i,n,r)}_startHttpSpan(t,n,r=tn.context.active()){let i=n.kind===tn.SpanKind.CLIENT?this.getConfig().requireParentforOutgoingSpans:this.getConfig().requireParentforIncomingSpans,s,o=tn.trace.getSpan(r);return i===!0&&(!o||!tn.trace.isSpanContextValid(o.spanContext()))?s=tn.trace.wrapSpanContext(tn.INVALID_SPAN_CONTEXT):i===!0&&o?.spanContext().isRemote?s=o:s=this.tracer.startSpan(t,n,r),this._spanNotEnded.add(s),s}_closeHttpSpan(t,n,r,i,s){if(!this._spanNotEnded.has(t))return;t.end(),this._spanNotEnded.delete(t);let o=(0,gy.hrTimeToMilliseconds)((0,gy.hrTimeDuration)(r,(0,gy.hrTime)()));n===tn.SpanKind.SERVER?this._recordServerDuration(o,i,s):n===tn.SpanKind.CLIENT&&this._recordClientDuration(o,i,s)}_callResponseHook(t,n){(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().responseHook(t,n),()=>{},!0)}_callRequestHook(t,n){(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().requestHook(t,n),()=>{},!0)}_callStartSpanHook(t,n){if(typeof n=="function")return(0,Mo.safeExecuteInTheMiddle)(()=>n(t),()=>{},!0)}_createHeaderCapture(t){let n=this.getConfig();return{client:{captureRequestHeaders:(0,Is.headerCapture)("request",n.headersToSpanAttributes?.client?.requestHeaders??[],t),captureResponseHeaders:(0,Is.headerCapture)("response",n.headersToSpanAttributes?.client?.responseHeaders??[],t)},server:{captureRequestHeaders:(0,Is.headerCapture)("request",n.headersToSpanAttributes?.server?.requestHeaders??[],t),captureResponseHeaders:(0,Is.headerCapture)("response",n.headersToSpanAttributes?.server?.responseHeaders??[],t)}}}};Aj.HttpInstrumentation=AJ});var _Ce=w(wj=>{"use strict";Object.defineProperty(wj,"__esModule",{value:!0});wj.HttpInstrumentation=void 0;var s4t=ECe();Object.defineProperty(wj,"HttpInstrumentation",{enumerable:!0,get:function(){return s4t.HttpInstrumentation}})});var Fe,Pi=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Wa=v(()=>{qt=globalThis});var Nn,kj=v(()=>{Nn="10.47.0"});function xc(){return yy(qt),qt}function yy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Nn,t[Nn]=t[Nn]||{}}function tf(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Nn]=r[Nn]||{};return i[e]||(i[e]=t())}var zl=v(()=>{kj();Wa()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(IR);r.forEach(i=>{let s=IR[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function a4t(){kJ().enabled=!0}function c4t(){kJ().enabled=!1}function TCe(){return kJ().enabled}function u4t(...e){wJ("log",...e)}function l4t(...e){wJ("warn",...e)}function d4t(...e){wJ("error",...e)}function wJ(e,...t){Fe&&TCe()&&xs(()=>{qt.console[e](`${o4t}[${e}]:`,...t)})}function kJ(){return Fe?tf("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var PO,o4t,IR,Z,_r=v(()=>{zl();Pi();Wa();PO=["debug","info","warn","error","log","assert","trace"],o4t="Sentry Logger ",IR={};Z={enable:a4t,disable:c4t,isEnabled:TCe,log:u4t,warn:l4t,error:d4t}});function xj(...e){let t=e.sort((n,r)=>n[0]-r[0]).map(n=>n[1]);return(n,r=0,i=0)=>{let s=[],o=n.split(` -`);for(let a=r;a1024&&(c=c.slice(0,1024));let u=vCe.test(c)?c.replace(vCe,"$1"):c;if(!u.match(/\S*Error: /)){for(let l of t){let d=l(u);if(d){s.push(d);break}}if(s.length>=50+i)break}}return ACe(s.slice(i))}}function xJ(e){return Array.isArray(e)?xj(...e):e}function ACe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Ij(t).function||"")&&t.pop(),t.reverse(),RCe.test(Ij(t).function||"")&&(t.pop(),RCe.test(Ij(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Ij(t).filename,function:n.function||"?"}))}function Ij(e){return e[e.length-1]||{}}function NO(e){try{return!e||typeof e!="function"?IJ:e.name||IJ}catch{return IJ}}function Oj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function wCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var vCe,RCe,IJ,xR=v(()=>{vCe=/\(error: (.*)\)/,RCe=/captureMessage|captureException/;IJ=""});function OR(e,t){Pj[e]=Pj[e]||[],Pj[e].push(t)}function PR(e,t){if(!kCe[e]){kCe[e]=!0;try{t()}catch(n){Fe&&Z.error(`Error while instrumenting ${e}`,n)}}}function NR(e,t){let n=e&&Pj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Z.error(`Error while triggering instrumentation handler. +`+s),e.push(i+"m+"+mj.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=DVt()+t+" "+e[0]}function DVt(){return Co.inspectOpts.hideDate?"":new Date().toISOString()+" "}function LVt(...e){return process.stderr.write(hj.formatWithOptions(Co.inspectOpts,...e)+` +`)}function UVt(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function FVt(){return process.env.DEBUG}function jVt(e){e.inspectOpts={};let t=Object.keys(Co.inspectOpts);for(let n=0;nt.trim()).join(" ")};xNe.O=function(e){return this.inspectOpts.colors=this.useColors,hj.inspect(e,this.inspectOpts)}});var PNe=w((LSr,rJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?rJ.exports=RNe():rJ.exports=ONe()});var vO=w((USr,NNe)=>{"use strict";var iJ=K("path").sep;NNe.exports=function(e){var t=e.split(iJ),n=t.lastIndexOf("node_modules");if(n!==-1&&t[n+1]){for(var r=t[n+1][0]==="@",i=r?t[n+1]+"/"+t[n+2]:t[n+1],s=r?3:2,o="",a=n+s-1,c=0;c<=a;c++)c===a?o+=t[c]:o+=t[c]+iJ;for(var u="",l=t.length-1,d=n+s;d<=l;d++)d===l?u+=t[d]:u+=t[d]+iJ;return{name:i,basedir:o,path:u}}}});var vE=w((FSr,aJ)=>{"use strict";var TR=K("path"),ef=K("module"),ks=PNe()("require-in-the-middle"),HVt=vO();aJ.exports=RO;aJ.exports.Hook=RO;var sJ,gj;if(ef.isBuiltin)gj=ef.isBuiltin;else if(ef.builtinModules)gj=e=>e.startsWith("node:")?!0:(sJ===void 0&&(sJ=new Set(ef.builtinModules)),sJ.has(e));else throw new Error("'require-in-the-middle' requires Node.js >=v9.3.0 or >=v8.10.0");var qVt=/([/\\]index)?(\.js)?$/,oJ=class{constructor(){this._localCache=new Map,this._kRitmExports=Symbol("RitmExports")}has(t,n){if(this._localCache.has(t))return!0;if(n)return!1;{let r=K.cache[t];return!!(r&&this._kRitmExports in r)}}get(t,n){let r=this._localCache.get(t);if(r!==void 0)return r;if(!n){let i=K.cache[t];return i&&i[this._kRitmExports]}}set(t,n,r){r?this._localCache.set(t,n):t in K.cache?K.cache[t][this._kRitmExports]=n:(ks('non-core module is unexpectedly not in require.cache: "%s"',t),this._localCache.set(t,n))}};function RO(e,t,n){if(!(this instanceof RO))return new RO(e,t,n);if(typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),typeof ef._resolveFilename!="function"){console.error("Error: Expected Module._resolveFilename to be a function (was: %s) - aborting!",typeof ef._resolveFilename),console.error("Please report this error as an issue related to Node.js %s at https://github.com/nodejs/require-in-the-middle/issues",process.version);return}this._cache=new oJ,this._unhooked=!1,this._origRequire=ef.prototype.require;let r=this,i=new Set,s=t?t.internals===!0:!1,o=Array.isArray(e);ks("registering require hook"),this._require=ef.prototype.require=function(c){return r._unhooked===!0?(ks("ignoring require call - module is soft-unhooked"),r._origRequire.apply(this,arguments)):a.call(this,arguments,!1)},typeof process.getBuiltinModule=="function"&&(this._origGetBuiltinModule=process.getBuiltinModule,this._getBuiltinModule=process.getBuiltinModule=function(c){return r._unhooked===!0?(ks("ignoring process.getBuiltinModule call - module is soft-unhooked"),r._origGetBuiltinModule.apply(this,arguments)):a.call(this,arguments,!0)});function a(c,u){let l=c[0],d=gj(l),f;if(d){if(f=l,l.startsWith("node:")){let b=l.slice(5);gj(b)&&(f=b)}}else{if(u)return ks("call to process.getBuiltinModule with unknown built-in id"),r._origGetBuiltinModule.apply(this,c);try{f=ef._resolveFilename(l,this)}catch(b){return ks('Module._resolveFilename("%s") threw %j, calling original Module.require',l,b.message),r._origRequire.apply(this,c)}}let p,h;if(ks("processing %s module require('%s'): %s",d===!0?"core":"non-core",l,f),r._cache.has(f,d)===!0)return ks("returning already patched cached module: %s",f),r._cache.get(f,d);let m=i.has(f);m===!1&&i.add(f);let g=u?r._origGetBuiltinModule.apply(this,c):r._origRequire.apply(this,c);if(m===!0)return ks("module is in the process of being patched already - ignoring: %s",f),g;if(i.delete(f),d===!0){if(o===!0&&e.includes(f)===!1)return ks("ignoring core module not on whitelist: %s",f),g;p=f}else if(o===!0&&e.includes(f)){let b=TR.parse(f);p=b.name,h=b.dir}else{let b=HVt(f);if(b===void 0)return ks("could not parse filename: %s",f),g;p=b.name,h=b.basedir;let S=BVt(b);ks("resolved filename to module: %s (id: %s, resolved: %s, basedir: %s)",p,l,S,h);let E=!1;if(o){if(!l.startsWith(".")&&e.includes(l)&&(p=l,E=!0),!e.includes(p)&&!e.includes(S))return g;e.includes(S)&&S!==p&&(p=S,E=!0)}if(!E){let _;try{_=K.resolve(p,{paths:[h]})}catch{return ks("could not resolve module: %s",p),r._cache.set(f,g,d),g}if(_!==f)if(s===!0)p=p+TR.sep+TR.relative(h,f),ks("preparing to process require of internal file: %s",p);else return ks("ignoring require of non-main module file: %s",_),r._cache.set(f,g,d),g}}r._cache.set(f,g,d),ks("calling require hook: %s",p);let y=n(g,p,h);return r._cache.set(f,y,d),ks("returning module: %s",p),y}}RO.prototype.unhook=function(){this._unhooked=!0,this._require===ef.prototype.require?(ef.prototype.require=this._origRequire,ks("require unhook successful")):ks("require unhook unsuccessful"),process.getBuiltinModule!==void 0&&(this._getBuiltinModule===process.getBuiltinModule?(process.getBuiltinModule=this._origGetBuiltinModule,ks("process.getBuiltinModule unhook successful")):ks("process.getBuiltinModule unhook unsuccessful"))};function BVt(e){let t=TR.sep!=="/"?e.path.split(TR.sep).join("/"):e.path;return TR.posix.join(e.name,t).replace(qVt,"")}});var CNe=w(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.ModuleNameTrie=py.ModuleNameSeparator=void 0;py.ModuleNameSeparator="/";var yj=class{hooks=[];children=new Map},cJ=class{_trie=new yj;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(py.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new yj,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(py.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};py.ModuleNameTrie=cJ});var DNe=w(Sj=>{"use strict";Object.defineProperty(Sj,"__esModule",{value:!0});Sj.RequireInTheMiddleSingleton=void 0;var zVt=vE(),MNe=K("path"),uJ=CNe(),GVt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),lJ=class e{_moduleNameTrie=new uJ.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new zVt.Hook(null,{internals:!0},(t,n,r)=>{let i=VVt(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return GVt?new e:this._instance=this._instance??new e}};Sj.RequireInTheMiddleSingleton=lJ;function VVt(e){return MNe.sep!==uJ.ModuleNameSeparator?e.split(MNe.sep).join(uJ.ModuleNameSeparator):e}});var HNe=w(AO=>{var LNe=[],dJ=new WeakMap,UNe=new WeakMap,FNe=new Map,jNe=[],WVt={set(e,t,n){let r=dJ.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=UNe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=dJ.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function KVt(e,t,n,r,i){FNe.set(e,i),dJ.set(t,n),UNe.set(t,r);let s=new Proxy(t,WVt);LNe.forEach(o=>o(e,s,i)),jNe.push([e,s,i])}AO.register=KVt;AO.importHooks=LNe;AO.specifiers=FNe;AO.toHook=jNe});var mJ=w((zSr,RR)=>{var qNe=K("path"),YVt=vO(),{fileURLToPath:ZVt}=K("url"),{MessageChannel:JVt}=K("worker_threads"),{isBuiltin:fJ}=K("module");fJ||(fJ=()=>!0);var{importHooks:pJ,specifiers:BNe,toHook:XVt}=HNe();function QVt(e,t){if(!(process.env.TURBOPACK??process.argv.includes("--turbo")))return!1;let r=e.slice(0,e.lastIndexOf("-"));return t.endsWith(r)}function zNe(e){pJ.push(e),XVt.forEach(([t,n,r])=>e(t,n,r))}function GNe(e){let t=pJ.indexOf(e);t>-1&&pJ.splice(t,1)}function vR(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var hJ;function $Vt(){let{port1:e,port2:t}=new JVt,n=0,r;hJ=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function wO(e,t,n){if(!(this instanceof wO))return new wO(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;hJ&&Array.isArray(e)&&hJ(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);fJ(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=ZVt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=YVt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)vR(n,s,u,void 0);else if(d===i){if(!l)vR(n,s,i,l);else if(l.endsWith(BNe.get(a))||QVt(BNe.get(a),l))vR(n,s,i,l);else if(r){let f=i+qNe.sep+qNe.relative(l,u);vR(n,s,f,l)}}else d===o&&vR(n,s,o,l);else vR(n,s,i,l)},zNe(this._iitmHook)}wO.prototype.unhook=function(){GNe(this._iitmHook)};RR.exports=wO;RR.exports.Hook=wO;RR.exports.addHook=zNe;RR.exports.removeHook=GNe;RR.exports.createAddHookMessageChannel=$Vt});var gJ=w(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.isWrapped=hy.safeExecuteInTheMiddleAsync=hy.safeExecuteInTheMiddle=void 0;function eWt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}hy.safeExecuteInTheMiddle=eWt;async function tWt(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}hy.safeExecuteInTheMiddleAsync=tWt;function nWt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}hy.isWrapped=nWt});var KNe=w(bj=>{"use strict";Object.defineProperty(bj,"__esModule",{value:!0});bj.InstrumentationBase=void 0;var kO=K("path"),VNe=K("util"),rWt=bNe(),yJ=Q7(),iWt=ENe(),sWt=DNe(),oWt=mJ(),IO=(Ce(),ke(Ze)),aWt=vE(),cWt=K("fs"),uWt=gJ(),SJ=class extends iWt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=sWt.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,uWt.isWrapped)(t[n])&&this._unwrap(t,n),VNe.types.isProxy(t)){let i=(0,yJ.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,yJ.wrap)(t,n,r)};_unwrap=(t,n)=>VNe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,yJ.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{IO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){IO.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{IO.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){IO.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){let t=globalThis.require;!t?.resolve||!t?.cache||this._modules.forEach(n=>{let{name:r}=n;try{let i=t.resolve(r);t.cache[i]?.loaded&&this._diag.warn(`Module ${r} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${r}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,cWt.readFileSync)(kO.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{IO.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return WNe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=kO.normalize(r);return o.filter(u=>u.name===a&&WNe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&kO.isAbsolute(a)){let u=kO.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=kO.isAbsolute(t.name)?new aWt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new oWt.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};bj.InstrumentationBase=SJ;function WNe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,rWt.satisfies)(t,r,{includePrerelease:n}))}});var YNe=w(Ej=>{"use strict";Object.defineProperty(Ej,"__esModule",{value:!0});Ej.normalize=void 0;var lWt=K("path");Object.defineProperty(Ej,"normalize",{enumerable:!0,get:function(){return lWt.normalize}})});var ZNe=w(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});AR.normalize=AR.InstrumentationBase=void 0;var dWt=KNe();Object.defineProperty(AR,"InstrumentationBase",{enumerable:!0,get:function(){return dWt.InstrumentationBase}});var fWt=YNe();Object.defineProperty(AR,"normalize",{enumerable:!0,get:function(){return fWt.normalize}})});var bJ=w(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});wR.normalize=wR.InstrumentationBase=void 0;var JNe=ZNe();Object.defineProperty(wR,"InstrumentationBase",{enumerable:!0,get:function(){return JNe.InstrumentationBase}});Object.defineProperty(wR,"normalize",{enumerable:!0,get:function(){return JNe.normalize}})});var XNe=w(_j=>{"use strict";Object.defineProperty(_j,"__esModule",{value:!0});_j.InstrumentationNodeModuleDefinition=void 0;var EJ=class{files;name;supportedVersions;patch;unpatch;constructor(t,n,r,i,s){this.files=s||[],this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i}};_j.InstrumentationNodeModuleDefinition=EJ});var QNe=w(Tj=>{"use strict";Object.defineProperty(Tj,"__esModule",{value:!0});Tj.InstrumentationNodeModuleFile=void 0;var pWt=bJ(),_J=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,pWt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};Tj.InstrumentationNodeModuleFile=_J});var $Ne=w(RE=>{"use strict";Object.defineProperty(RE,"__esModule",{value:!0});RE.semconvStabilityFromStr=RE.SemconvStability=void 0;var vj;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(vj=RE.SemconvStability||(RE.SemconvStability={}));function hWt(e,t){let n=vj.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=vj.DUPLICATE;break}else i.toLowerCase()===e&&(n=vj.STABLE);return n}RE.semconvStabilityFromStr=hWt});var Jt=w(Bs=>{"use strict";Object.defineProperty(Bs,"__esModule",{value:!0});Bs.semconvStabilityFromStr=Bs.SemconvStability=Bs.safeExecuteInTheMiddleAsync=Bs.safeExecuteInTheMiddle=Bs.isWrapped=Bs.InstrumentationNodeModuleFile=Bs.InstrumentationNodeModuleDefinition=Bs.InstrumentationBase=Bs.registerInstrumentations=void 0;var mWt=lNe();Object.defineProperty(Bs,"registerInstrumentations",{enumerable:!0,get:function(){return mWt.registerInstrumentations}});var gWt=bJ();Object.defineProperty(Bs,"InstrumentationBase",{enumerable:!0,get:function(){return gWt.InstrumentationBase}});var yWt=XNe();Object.defineProperty(Bs,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return yWt.InstrumentationNodeModuleDefinition}});var SWt=QNe();Object.defineProperty(Bs,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return SWt.InstrumentationNodeModuleFile}});var TJ=gJ();Object.defineProperty(Bs,"isWrapped",{enumerable:!0,get:function(){return TJ.isWrapped}});Object.defineProperty(Bs,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return TJ.safeExecuteInTheMiddle}});Object.defineProperty(Bs,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return TJ.safeExecuteInTheMiddleAsync}});var eCe=$Ne();Object.defineProperty(Bs,"SemconvStability",{enumerable:!0,get:function(){return eCe.SemconvStability}});Object.defineProperty(Bs,"semconvStabilityFromStr",{enumerable:!0,get:function(){return eCe.semconvStabilityFromStr}})});var tCe=w(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.HTTP_FLAVOR_VALUE_HTTP_1_1=bt.NET_TRANSPORT_VALUE_IP_UDP=bt.NET_TRANSPORT_VALUE_IP_TCP=bt.ATTR_NET_TRANSPORT=bt.ATTR_NET_PEER_PORT=bt.ATTR_NET_PEER_NAME=bt.ATTR_NET_PEER_IP=bt.ATTR_NET_HOST_PORT=bt.ATTR_NET_HOST_NAME=bt.ATTR_NET_HOST_IP=bt.ATTR_HTTP_USER_AGENT=bt.ATTR_HTTP_URL=bt.ATTR_HTTP_TARGET=bt.ATTR_HTTP_STATUS_CODE=bt.ATTR_HTTP_SERVER_NAME=bt.ATTR_HTTP_SCHEME=bt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=bt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH=bt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=bt.ATTR_HTTP_REQUEST_CONTENT_LENGTH=bt.ATTR_HTTP_METHOD=bt.ATTR_HTTP_HOST=bt.ATTR_HTTP_FLAVOR=bt.ATTR_HTTP_CLIENT_IP=bt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST=bt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT=bt.ATTR_USER_AGENT_SYNTHETIC_TYPE=void 0;bt.ATTR_USER_AGENT_SYNTHETIC_TYPE="user_agent.synthetic.type";bt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT="bot";bt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST="test";bt.ATTR_HTTP_CLIENT_IP="http.client_ip";bt.ATTR_HTTP_FLAVOR="http.flavor";bt.ATTR_HTTP_HOST="http.host";bt.ATTR_HTTP_METHOD="http.method";bt.ATTR_HTTP_REQUEST_CONTENT_LENGTH="http.request_content_length";bt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED="http.request_content_length_uncompressed";bt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH="http.response_content_length";bt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED="http.response_content_length_uncompressed";bt.ATTR_HTTP_SCHEME="http.scheme";bt.ATTR_HTTP_SERVER_NAME="http.server_name";bt.ATTR_HTTP_STATUS_CODE="http.status_code";bt.ATTR_HTTP_TARGET="http.target";bt.ATTR_HTTP_URL="http.url";bt.ATTR_HTTP_USER_AGENT="http.user_agent";bt.ATTR_NET_HOST_IP="net.host.ip";bt.ATTR_NET_HOST_NAME="net.host.name";bt.ATTR_NET_HOST_PORT="net.host.port";bt.ATTR_NET_PEER_IP="net.peer.ip";bt.ATTR_NET_PEER_NAME="net.peer.name";bt.ATTR_NET_PEER_PORT="net.peer.port";bt.ATTR_NET_TRANSPORT="net.transport";bt.NET_TRANSPORT_VALUE_IP_TCP="ip_tcp";bt.NET_TRANSPORT_VALUE_IP_UDP="ip_udp";bt.HTTP_FLAVOR_VALUE_HTTP_1_1="1.1"});var nCe=w(xO=>{"use strict";Object.defineProperty(xO,"__esModule",{value:!0});xO.AttributeNames=void 0;var bWt;(function(e){e.HTTP_ERROR_NAME="http.error_name",e.HTTP_ERROR_MESSAGE="http.error_message",e.HTTP_STATUS_TEXT="http.status_text"})(bWt=xO.AttributeNames||(xO.AttributeNames={}))});var vJ=w(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});Cp.DEFAULT_QUERY_STRINGS_TO_REDACT=Cp.STR_REDACTED=Cp.SYNTHETIC_BOT_NAMES=Cp.SYNTHETIC_TEST_NAMES=void 0;Cp.SYNTHETIC_TEST_NAMES=["alwayson"];Cp.SYNTHETIC_BOT_NAMES=["googlebot","bingbot"];Cp.STR_REDACTED="REDACTED";Cp.DEFAULT_QUERY_STRINGS_TO_REDACT=["sig","Signature","AWSAccessKeyId","X-Goog-Signature"]});var iCe=w((nbr,rCe)=>{"use strict";var EWt=K("util");function RJ(e,t){Error.captureStackTrace(this,RJ),this.name=this.constructor.name,this.message=e,this.input=t}EWt.inherits(RJ,Error);rCe.exports=RJ});var oCe=w((rbr,sCe)=>{"use strict";function _Wt(e){return e===34||e===40||e===41||e===44||e===47||e>=58&&e<=64||e>=91&&e<=93||e===123||e===125}function TWt(e){return e===33||e>=35&&e<=39||e===42||e===43||e===45||e===46||e>=48&&e<=57||e>=65&&e<=90||e>=94&&e<=122||e===124||e===126}function vWt(e){return e>=32&&e<=126}function RWt(e){return e>=128&&e<=255}sCe.exports={isDelimiter:_Wt,isTokenChar:TWt,isExtended:RWt,isPrint:vWt}});var dCe=w((ibr,lCe)=>{"use strict";var AWt=K("util"),kR=iCe(),Rj=oCe(),wWt=Rj.isDelimiter,aCe=Rj.isTokenChar,cCe=Rj.isExtended,kWt=Rj.isPrint;function uCe(e){return e.replace(/\\(.)/g,"$1")}function OO(e,t){return AWt.format("Unexpected character '%s' at index %d",e.charAt(t),t)}function IWt(e){for(var t=!1,n=!1,r=!1,i={},s=[],o=-1,a=-1,c,u,l=0;l{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.headerCapture=Tt.getIncomingStableRequestMetricAttributesOnResponse=Tt.getIncomingRequestMetricAttributesOnResponse=Tt.getIncomingRequestAttributesOnResponse=Tt.getIncomingRequestMetricAttributes=Tt.getIncomingRequestAttributes=Tt.getRemoteClientAddress=Tt.getOutgoingStableRequestMetricAttributesOnResponse=Tt.getOutgoingRequestMetricAttributesOnResponse=Tt.getOutgoingRequestAttributesOnResponse=Tt.setAttributesFromHttpKind=Tt.getOutgoingRequestMetricAttributes=Tt.getOutgoingRequestAttributes=Tt.extractHostnameAndPort=Tt.isValidOptionsType=Tt.getRequestInfo=Tt.isCompressed=Tt.setResponseContentLengthAttribute=Tt.setRequestContentLengthAttribute=Tt.setSpanWithError=Tt.satisfiesPattern=Tt.parseResponseStatus=Tt.getAbsoluteUrl=void 0;var PO=(Ce(),ke(Ze)),fn=(Pn(),ke(Mr)),dt=tCe(),fCe=fr(),ol=Jt(),xWt=K("url"),wj=nCe(),pCe=vJ(),Aj=vJ(),OWt=dCe(),PWt=(e,t,n="http:",r=Array.from(Aj.DEFAULT_QUERY_STRINGS_TO_REDACT))=>{let i=e||{},s=i.protocol||n,o=(i.port||"").toString(),a=i.path||"/",c=i.host||i.hostname||t.host||"localhost";if(c.indexOf(":")===-1&&o&&o!=="80"&&o!=="443"&&(c+=`:${o}`),a.includes("?"))try{let l=new URL(a,"http://localhost"),d=r||[];for(let f of d)l.searchParams.get(f)&&l.searchParams.set(f,Aj.STR_REDACTED);a=`${l.pathname}${l.search}`}catch{}let u=i.auth?`${Aj.STR_REDACTED}:${Aj.STR_REDACTED}@`:"";return`${s}//${u}${c}${a}`};Tt.getAbsoluteUrl=PWt;var NWt=(e,t)=>{let n=e===PO.SpanKind.CLIENT?400:500;return t&&t>=100&&t{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")};Tt.satisfiesPattern=CWt;var MWt=(e,t,n)=>{let r=t.message;n&ol.SemconvStability.OLD&&(e.setAttribute(wj.AttributeNames.HTTP_ERROR_NAME,t.name),e.setAttribute(wj.AttributeNames.HTTP_ERROR_MESSAGE,r)),n&ol.SemconvStability.STABLE&&e.setAttribute(fn.ATTR_ERROR_TYPE,t.name),e.setStatus({code:PO.SpanStatusCode.ERROR,message:r}),e.recordException(t)};Tt.setSpanWithError=MWt;var DWt=(e,t)=>{let n=mCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setRequestContentLengthAttribute=DWt;var LWt=(e,t)=>{let n=mCe(e.headers);n!==null&&((0,Tt.isCompressed)(e.headers)?t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH]=n:t[dt.ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]=n)};Tt.setResponseContentLengthAttribute=LWt;function mCe(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}var UWt=e=>{let t=e["content-encoding"];return!!t&&t!=="identity"};Tt.isCompressed=UWt;function FWt(e){let{hostname:t,pathname:n,port:r,username:i,password:s,search:o,protocol:a,hash:c,href:u,origin:l,host:d}=new URL(e),f={protocol:a,hostname:t&&t[0]==="["?t.slice(1,-1):t,hash:c,search:o,pathname:n,path:`${n||""}${o||""}`,href:u,origin:l,host:d};return r!==""&&(f.port=Number(r)),(i||s)&&(f.auth=`${decodeURIComponent(i)}:${decodeURIComponent(s)}`),f}var jWt=(e,t,n)=>{let r,i,s,o=!1;if(typeof t=="string"){try{let c=FWt(t);s=c,r=c.pathname||"/"}catch(c){o=!0,e.verbose("Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:",c),s={path:t},r=s.path||"/"}i=`${s.protocol||"http:"}//${s.host}`,n!==void 0&&Object.assign(s,n)}else if(t instanceof xWt.URL)s={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,path:`${t.pathname||""}${t.search||""}`},t.port!==""&&(s.port=Number(t.port)),(t.username||t.password)&&(s.auth=`${t.username}:${t.password}`),r=t.pathname,i=t.origin,n!==void 0&&Object.assign(s,n);else{s=Object.assign({protocol:t.host?"http:":void 0},t);let c=s.host||(s.port!=null?`${s.hostname}${s.port}`:s.hostname);if(i=`${s.protocol||"http:"}//${c}`,r=t.pathname,!r&&s.path)try{r=new URL(s.path,i).pathname||"/"}catch{r="/"}}let a=s.method?s.method.toUpperCase():"GET";return{origin:i,pathname:r,method:a,optionsParsed:s,invalidUrl:o}};Tt.getRequestInfo=jWt;var HWt=e=>{if(!e)return!1;let t=typeof e;return t==="string"||t==="object"&&!Array.isArray(e)};Tt.isValidOptionsType=HWt;var qWt=e=>{if(e.hostname&&e.port)return{hostname:e.hostname,port:e.port};let t=e.host?.match(/^([^:/ ]+)(:\d{1,5})?/)||null,n=e.hostname||(t===null?"localhost":t[1]),r=e.port;return r||(t&&t[2]?r=t[2].substring(1):r=e.protocol==="https:"?"443":"80"),{hostname:n,port:r}};Tt.extractHostnameAndPort=qWt;var BWt=(e,t,n,r)=>{let i=t.hostname,s=t.port,o=e.method??"GET",a=SCe(o),c=e.headers||{},u=c["user-agent"],l=(0,Tt.getAbsoluteUrl)(e,c,`${t.component}:`,t.redactedQueryParams),d={[dt.ATTR_HTTP_URL]:l,[dt.ATTR_HTTP_METHOD]:o,[dt.ATTR_HTTP_TARGET]:e.path||"/",[dt.ATTR_NET_PEER_NAME]:i,[dt.ATTR_HTTP_HOST]:c.host??`${i}:${s}`},f={[fn.ATTR_HTTP_REQUEST_METHOD]:a,[fn.ATTR_SERVER_ADDRESS]:i,[fn.ATTR_SERVER_PORT]:Number(s),[fn.ATTR_URL_FULL]:l,[fn.ATTR_USER_AGENT_ORIGINAL]:u};switch(o!==a&&(f[fn.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=o),r&&u&&(f[dt.ATTR_USER_AGENT_SYNTHETIC_TYPE]=gCe(u)),u!==void 0&&(d[dt.ATTR_HTTP_USER_AGENT]=u),n){case ol.SemconvStability.STABLE:return Object.assign(f,t.hookAttributes);case ol.SemconvStability.OLD:return Object.assign(d,t.hookAttributes)}return Object.assign(d,f,t.hookAttributes)};Tt.getOutgoingRequestAttributes=BWt;var zWt=e=>{let t={};return t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_PEER_NAME]=e[dt.ATTR_NET_PEER_NAME],t};Tt.getOutgoingRequestMetricAttributes=zWt;var GWt=(e,t)=>{e&&(t[dt.ATTR_HTTP_FLAVOR]=e,e.toUpperCase()!=="QUIC"?t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_TCP:t[dt.ATTR_NET_TRANSPORT]=dt.NET_TRANSPORT_VALUE_IP_UDP)};Tt.setAttributesFromHttpKind=GWt;var gCe=e=>{let t=String(e).toLowerCase();for(let n of pCe.SYNTHETIC_TEST_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;for(let n of pCe.SYNTHETIC_BOT_NAMES)if(t.includes(n))return dt.USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT},VWt=(e,t)=>{let{statusCode:n,statusMessage:r,httpVersion:i,socket:s}=e,o={},a={};if(n!=null&&(a[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=n),s){let{remoteAddress:c,remotePort:u}=s;o[dt.ATTR_NET_PEER_IP]=c,o[dt.ATTR_NET_PEER_PORT]=u,a[fn.ATTR_NETWORK_PEER_ADDRESS]=c,a[fn.ATTR_NETWORK_PEER_PORT]=u,a[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e.httpVersion}switch((0,Tt.setResponseContentLengthAttribute)(e,o),n&&(o[dt.ATTR_HTTP_STATUS_CODE]=n,o[wj.AttributeNames.HTTP_STATUS_TEXT]=(r||"").toUpperCase()),(0,Tt.setAttributesFromHttpKind)(i,o),t){case ol.SemconvStability.STABLE:return a;case ol.SemconvStability.OLD:return o}return Object.assign(o,a)};Tt.getOutgoingRequestAttributesOnResponse=VWt;var WWt=e=>{let t={};return t[dt.ATTR_NET_PEER_PORT]=e[dt.ATTR_NET_PEER_PORT],t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getOutgoingRequestMetricAttributesOnResponse=WWt;var KWt=e=>{let t={};return e[fn.ATTR_NETWORK_PROTOCOL_VERSION]&&(t[fn.ATTR_NETWORK_PROTOCOL_VERSION]=e[fn.ATTR_NETWORK_PROTOCOL_VERSION]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getOutgoingStableRequestMetricAttributesOnResponse=KWt;function my(e,t){let n=e.split(":");if(n.length===1)return t==="http"?{host:n[0],port:"80"}:t==="https"?{host:n[0],port:"443"}:{host:n[0]};if(n.length===2)return{host:n[0],port:n[1]};if(n[0].startsWith("[")){if(n[n.length-1].endsWith("]")){if(t==="http")return{host:e,port:"80"};if(t==="https")return{host:e,port:"443"}}else if(n[n.length-2].endsWith("]"))return{host:n.slice(0,-1).join(":"),port:n[n.length-1]}}return{host:e}}function YWt(e,t){let n=e.headers.forwarded;if(n){for(let s of bCe(n))if(s.host)return my(s.host,s.proto)}let r=e.headers["x-forwarded-host"];if(typeof r=="string")return typeof e.headers["x-forwarded-proto"]=="string"?my(r,e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?my(r,e.headers["x-forwarded-proto"][0]):my(r);if(Array.isArray(r)&&typeof r[0]=="string"&&r[0].length>0)return typeof e.headers["x-forwarded-proto"]=="string"?my(r[0],e.headers["x-forwarded-proto"]):Array.isArray(e.headers["x-forwarded-proto"])?my(r[0],e.headers["x-forwarded-proto"][0]):my(r[0]);let i=e.headers.host;return typeof i=="string"&&i.length>0?my(i,t):null}function yCe(e){let t=e.headers.forwarded;if(t){for(let i of bCe(t))if(i.for)return hCe(i.for)}let n=e.headers["x-forwarded-for"];if(n){let i;if(typeof n=="string"?i=n:Array.isArray(n)&&(i=n[0]),typeof i=="string")return i=i.split(",")[0].trim(),hCe(i)}let r=e.socket.remoteAddress;return r||null}Tt.getRemoteClientAddress=yCe;function hCe(e){try{let{hostname:t}=new URL(`http://${e}`);return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}catch{return e}}function ZWt(e,t,n){try{if(t.headers.host)return new URL(t.url??"/",`${e}://${t.headers.host}`);{let r=new URL(t.url??"/",`${e}://localhost`);return{pathname:r.pathname,search:r.search,toString:function(){return r.pathname+r.search}}}}catch(r){return n.verbose("Unable to get URL from request",r),{}}}var JWt=(e,t,n)=>{let{component:r,enableSyntheticSourceDetection:i,hookAttributes:s,semconvStability:o,serverName:a}=t,{headers:c,httpVersion:u,method:l}=e,{host:d,"user-agent":f,"x-forwarded-for":p}=c,h=ZWt(r,e,n),m,g;if(o!==ol.SemconvStability.OLD){let y=SCe(l),b=YWt(e,r),S=yCe(e);m={[fn.ATTR_HTTP_REQUEST_METHOD]:y,[fn.ATTR_URL_SCHEME]:r,[fn.ATTR_SERVER_ADDRESS]:b?.host,[fn.ATTR_NETWORK_PEER_ADDRESS]:e.socket.remoteAddress,[fn.ATTR_NETWORK_PEER_PORT]:e.socket.remotePort,[fn.ATTR_NETWORK_PROTOCOL_VERSION]:e.httpVersion,[fn.ATTR_USER_AGENT_ORIGINAL]:f},h.pathname!=null&&(m[fn.ATTR_URL_PATH]=h.pathname),h.search&&(m[fn.ATTR_URL_QUERY]=h.search.slice(1)),S!=null&&(m[fn.ATTR_CLIENT_ADDRESS]=S),b?.port!=null&&(m[fn.ATTR_SERVER_PORT]=Number(b.port)),l!==y&&(m[fn.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]=l),i&&f&&(m[dt.ATTR_USER_AGENT_SYNTHETIC_TYPE]=gCe(f))}if(o!==ol.SemconvStability.STABLE){let y=d?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost";g={[dt.ATTR_HTTP_URL]:h.toString(),[dt.ATTR_HTTP_HOST]:d,[dt.ATTR_NET_HOST_NAME]:y,[dt.ATTR_HTTP_METHOD]:l,[dt.ATTR_HTTP_SCHEME]:r},typeof p=="string"&&(g[dt.ATTR_HTTP_CLIENT_IP]=p.split(",")[0]),typeof a=="string"&&(g[dt.ATTR_HTTP_SERVER_NAME]=a),h.pathname&&(g[dt.ATTR_HTTP_TARGET]=h.pathname+h.search||"/"),f!==void 0&&(g[dt.ATTR_HTTP_USER_AGENT]=f),(0,Tt.setRequestContentLengthAttribute)(e,g),(0,Tt.setAttributesFromHttpKind)(u,g)}switch(o){case ol.SemconvStability.STABLE:return Object.assign(m,s);case ol.SemconvStability.OLD:return Object.assign(g,s);default:return Object.assign(g,m,s)}};Tt.getIncomingRequestAttributes=JWt;var XWt=e=>{let t={};return t[dt.ATTR_HTTP_SCHEME]=e[dt.ATTR_HTTP_SCHEME],t[dt.ATTR_HTTP_METHOD]=e[dt.ATTR_HTTP_METHOD],t[dt.ATTR_NET_HOST_NAME]=e[dt.ATTR_NET_HOST_NAME],t[dt.ATTR_HTTP_FLAVOR]=e[dt.ATTR_HTTP_FLAVOR],t};Tt.getIncomingRequestMetricAttributes=XWt;var QWt=(e,t,n)=>{let{socket:r}=e,{statusCode:i,statusMessage:s}=t,o={[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]:i},a=(0,fCe.getRPCMetadata)(PO.context.active()),c={};if(r){let{localAddress:u,localPort:l,remoteAddress:d,remotePort:f}=r;c[dt.ATTR_NET_HOST_IP]=u,c[dt.ATTR_NET_HOST_PORT]=l,c[dt.ATTR_NET_PEER_IP]=d,c[dt.ATTR_NET_PEER_PORT]=f}switch(c[dt.ATTR_HTTP_STATUS_CODE]=i,c[wj.AttributeNames.HTTP_STATUS_TEXT]=(s||"").toUpperCase(),a?.type===fCe.RPCType.HTTP&&a.route!==void 0&&(c[fn.ATTR_HTTP_ROUTE]=a.route,o[fn.ATTR_HTTP_ROUTE]=a.route),n){case ol.SemconvStability.STABLE:return o;case ol.SemconvStability.OLD:return c}return Object.assign(c,o)};Tt.getIncomingRequestAttributesOnResponse=QWt;var $Wt=e=>{let t={};return t[dt.ATTR_HTTP_STATUS_CODE]=e[dt.ATTR_HTTP_STATUS_CODE],t[dt.ATTR_NET_HOST_PORT]=e[dt.ATTR_NET_HOST_PORT],e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),t};Tt.getIncomingRequestMetricAttributesOnResponse=$Wt;var e4t=e=>{let t={};return e[fn.ATTR_HTTP_ROUTE]!==void 0&&(t[fn.ATTR_HTTP_ROUTE]=e[fn.ATTR_HTTP_ROUTE]),e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(t[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]=e[fn.ATTR_HTTP_RESPONSE_STATUS_CODE]),t};Tt.getIncomingStableRequestMetricAttributesOnResponse=e4t;function t4t(e,t,n){let r=new Map;for(let i=0,s=t.length;i{let s={};for(let o of r.keys()){let a=i(o);if(a===void 0)continue;let c=r.get(o),u=`http.${e}.header.${c}`;typeof a=="string"?s[u]=[a]:Array.isArray(a)?s[u]=a:s[u]=[a]}return s}}Tt.headerCapture=t4t;var n4t=new Set(["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","QUERY"]);function SCe(e){if(e==null)return"GET";let t=e.toUpperCase();return n4t.has(t)?t:"_OTHER"}function bCe(e){try{return OWt(e)}catch{return[]}}});var _Ce=w(kj=>{"use strict";Object.defineProperty(kj,"__esModule",{value:!0});kj.HttpInstrumentation=void 0;var tn=(Ce(),ke(Ze)),gy=fr(),r4t=K("url"),i4t=$Pe(),Mo=Jt(),AJ=K("events"),Oi=(Pn(),ke(Mr)),Is=ECe(),wJ=class extends Mo.InstrumentationBase{_spanNotEnded=new WeakSet;_headerCapture;_httpPatched=!1;_httpsPatched=!1;_semconvStability=Mo.SemconvStability.OLD;constructor(t={}){super("@opentelemetry/instrumentation-http",i4t.VERSION,t),this._semconvStability=(0,Mo.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._headerCapture=this._createHeaderCapture(this._semconvStability)}_updateMetricInstruments(){this._oldHttpServerDurationHistogram=this.meter.createHistogram("http.server.duration",{description:"Measures the duration of inbound HTTP requests.",unit:"ms",valueType:tn.ValueType.DOUBLE}),this._oldHttpClientDurationHistogram=this.meter.createHistogram("http.client.duration",{description:"Measures the duration of outbound HTTP requests.",unit:"ms",valueType:tn.ValueType.DOUBLE}),this._stableHttpServerDurationHistogram=this.meter.createHistogram(Oi.METRIC_HTTP_SERVER_REQUEST_DURATION,{description:"Duration of HTTP server requests.",unit:"s",valueType:tn.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}}),this._stableHttpClientDurationHistogram=this.meter.createHistogram(Oi.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Duration of HTTP client requests.",unit:"s",valueType:tn.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}_recordServerDuration(t,n,r){this._semconvStability&Mo.SemconvStability.OLD&&this._oldHttpServerDurationHistogram.record(t,n),this._semconvStability&Mo.SemconvStability.STABLE&&this._stableHttpServerDurationHistogram.record(t/1e3,r)}_recordClientDuration(t,n,r){this._semconvStability&Mo.SemconvStability.OLD&&this._oldHttpClientDurationHistogram.record(t,n),this._semconvStability&Mo.SemconvStability.STABLE&&this._stableHttpClientDurationHistogram.record(t/1e3,r)}setConfig(t={}){super.setConfig(t),this._headerCapture=this._createHeaderCapture(this._semconvStability)}init(){return[this._getHttpsInstrumentation(),this._getHttpInstrumentation()]}_getHttpInstrumentation(){return new Mo.InstrumentationNodeModuleDefinition("http",["*"],t=>{if(this._httpPatched)return t;this._httpPatched=!0;let n=t[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let r=this._wrap(t,"request",this._getPatchOutgoingRequestFunction("http")),i=this._wrap(t,"get",this._getPatchOutgoingGetFunction(r));n&&(t.default.request=r,t.default.get=i)}return this.getConfig().disableIncomingRequestInstrumentation||this._wrap(t.Server.prototype,"emit",this._getPatchIncomingRequestFunction("http")),t},t=>{this._httpPatched=!1,t!==void 0&&(this.getConfig().disableOutgoingRequestInstrumentation||(this._unwrap(t,"request"),this._unwrap(t,"get")),this.getConfig().disableIncomingRequestInstrumentation||this._unwrap(t.Server.prototype,"emit"))})}_getHttpsInstrumentation(){return new Mo.InstrumentationNodeModuleDefinition("https",["*"],t=>{if(this._httpsPatched)return t;this._httpsPatched=!0;let n=t[Symbol.toStringTag]==="Module";if(!this.getConfig().disableOutgoingRequestInstrumentation){let r=this._wrap(t,"request",this._getPatchHttpsOutgoingRequestFunction("https")),i=this._wrap(t,"get",this._getPatchHttpsOutgoingGetFunction(r));n&&(t.default.request=r,t.default.get=i)}return this.getConfig().disableIncomingRequestInstrumentation||this._wrap(t.Server.prototype,"emit",this._getPatchIncomingRequestFunction("https")),t},t=>{this._httpsPatched=!1,t!==void 0&&(this.getConfig().disableOutgoingRequestInstrumentation||(this._unwrap(t,"request"),this._unwrap(t,"get")),this.getConfig().disableIncomingRequestInstrumentation||this._unwrap(t.Server.prototype,"emit"))})}_getPatchIncomingRequestFunction(t){return n=>this._incomingRequestFunction(t,n)}_getPatchOutgoingRequestFunction(t){return n=>this._outgoingRequestFunction(t,n)}_getPatchOutgoingGetFunction(t){return n=>function(i,...s){let o=t(i,...s);return o.end(),o}}_getPatchHttpsOutgoingRequestFunction(t){return n=>{let r=this;return function(s,...o){return t==="https"&&typeof s=="object"&&s?.constructor?.name!=="URL"&&(s=Object.assign({},s),r._setDefaultOptions(s)),r._getPatchOutgoingRequestFunction(t)(n)(s,...o)}}}_setDefaultOptions(t){t.protocol=t.protocol||"https:",t.port=t.port||443}_getPatchHttpsOutgoingGetFunction(t){return n=>{let r=this;return function(s,...o){return r._getPatchOutgoingGetFunction(t)(n)(s,...o)}}}_traceClientRequest(t,n,r,i,s){this.getConfig().requestHook&&this._callRequestHook(n,t);let o=!1;return t.prependListener("response",a=>{this._diag.debug("outgoingRequest on response()"),t.listenerCount("response")<=1&&a.resume();let c=(0,Is.getOutgoingRequestAttributesOnResponse)(a,this._semconvStability);n.setAttributes(c),i=Object.assign(i,(0,Is.getOutgoingRequestMetricAttributesOnResponse)(c)),s=Object.assign(s,(0,Is.getOutgoingStableRequestMetricAttributesOnResponse)(c)),this.getConfig().responseHook&&this._callResponseHook(n,a),n.setAttributes(this._headerCapture.client.captureRequestHeaders(l=>t.getHeader(l))),n.setAttributes(this._headerCapture.client.captureResponseHeaders(l=>a.headers[l])),tn.context.bind(tn.context.active(),a);let u=()=>{if(this._diag.debug("outgoingRequest on end()"),o)return;o=!0;let l;a.aborted&&!a.complete?l={code:tn.SpanStatusCode.ERROR}:l={code:(0,Is.parseResponseStatus)(tn.SpanKind.CLIENT,a.statusCode)},n.setStatus(l),this.getConfig().applyCustomAttributesOnSpan&&(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(n,t,a),()=>{},!0),this._closeHttpSpan(n,tn.SpanKind.CLIENT,r,i,s)};a.on("end",u),a.on(AJ.errorMonitor,l=>{this._diag.debug("outgoingRequest on error()",l),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,l))})}),t.on("close",()=>{this._diag.debug("outgoingRequest on request close()"),!(t.aborted||o)&&(o=!0,this._closeHttpSpan(n,tn.SpanKind.CLIENT,r,i,s))}),t.on(AJ.errorMonitor,a=>{this._diag.debug("outgoingRequest on request error()",a),!o&&(o=!0,this._onOutgoingRequestError(n,i,s,r,a))}),this._diag.debug("http.ClientRequest return request"),t}_incomingRequestFunction(t,n){let r=this;return function(s,...o){if(s!=="request")return n.apply(this,[s,...o]);let a=o[0],c=o[1],u=a.method||"GET";if(r._diag.debug(`${t} instrumentation incomingRequest`),(0,Mo.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreIncomingRequestHook?.(a),S=>{S!=null&&r._diag.error("caught ignoreIncomingRequestHook error: ",S)},!0))return tn.context.with((0,gy.suppressTracing)(tn.context.active()),()=>(tn.context.bind(tn.context.active(),a),tn.context.bind(tn.context.active(),c),n.apply(this,[s,...o])));let l=a.headers,d=(0,Is.getIncomingRequestAttributes)(a,{component:t,serverName:r.getConfig().serverName,hookAttributes:r._callStartSpanHook(a,r.getConfig().startIncomingSpanHook),semconvStability:r._semconvStability,enableSyntheticSourceDetection:r.getConfig().enableSyntheticSourceDetection||!1},r._diag);Object.assign(d,r._headerCapture.server.captureRequestHeaders(S=>a.headers[S]));let f={kind:tn.SpanKind.SERVER,attributes:d},p=(0,gy.hrTime)(),h=(0,Is.getIncomingRequestMetricAttributes)(d),m={[Oi.ATTR_HTTP_REQUEST_METHOD]:d[Oi.ATTR_HTTP_REQUEST_METHOD],[Oi.ATTR_URL_SCHEME]:d[Oi.ATTR_URL_SCHEME]};d[Oi.ATTR_NETWORK_PROTOCOL_VERSION]&&(m[Oi.ATTR_NETWORK_PROTOCOL_VERSION]=d[Oi.ATTR_NETWORK_PROTOCOL_VERSION]);let g=tn.propagation.extract(tn.ROOT_CONTEXT,l),y=r._startHttpSpan(u,f,g),b={type:gy.RPCType.HTTP,span:y};return tn.context.with((0,gy.setRPCMetadata)(tn.trace.setSpan(g,y),b),()=>{tn.context.bind(tn.context.active(),a),tn.context.bind(tn.context.active(),c),r.getConfig().requestHook&&r._callRequestHook(y,a),r.getConfig().responseHook&&r._callResponseHook(y,c);let S=!1;return c.on("close",()=>{S||r._onServerResponseFinish(a,c,y,h,m,p)}),c.on(AJ.errorMonitor,E=>{S=!0,r._onServerResponseError(y,h,m,p,E)}),(0,Mo.safeExecuteInTheMiddle)(()=>n.apply(this,[s,...o]),E=>{if(E)throw r._onServerResponseError(y,h,m,p,E),E})})}}_outgoingRequestFunction(t,n){let r=this;return function(s,...o){if(!(0,Is.isValidOptionsType)(s))return n.apply(this,[s,...o]);let a=typeof o[0]=="object"&&(typeof s=="string"||s instanceof r4t.URL)?o.shift():void 0,{method:c,invalidUrl:u,optionsParsed:l}=(0,Is.getRequestInfo)(r._diag,s,a);if((0,Mo.safeExecuteInTheMiddle)(()=>r.getConfig().ignoreOutgoingRequestHook?.(l),_=>{_!=null&&r._diag.error("caught ignoreOutgoingRequestHook error: ",_)},!0))return n.apply(this,[l,...o]);let{hostname:d,port:f}=(0,Is.extractHostnameAndPort)(l),p=(0,Is.getOutgoingRequestAttributes)(l,{component:t,port:f,hostname:d,hookAttributes:r._callStartSpanHook(l,r.getConfig().startOutgoingSpanHook),redactedQueryParams:r.getConfig().redactedQueryParams},r._semconvStability,r.getConfig().enableSyntheticSourceDetection||!1),h=(0,gy.hrTime)(),m=(0,Is.getOutgoingRequestMetricAttributes)(p),g={[Oi.ATTR_HTTP_REQUEST_METHOD]:p[Oi.ATTR_HTTP_REQUEST_METHOD],[Oi.ATTR_SERVER_ADDRESS]:p[Oi.ATTR_SERVER_ADDRESS],[Oi.ATTR_SERVER_PORT]:p[Oi.ATTR_SERVER_PORT]};p[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]&&(g[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]=p[Oi.ATTR_HTTP_RESPONSE_STATUS_CODE]),p[Oi.ATTR_NETWORK_PROTOCOL_VERSION]&&(g[Oi.ATTR_NETWORK_PROTOCOL_VERSION]=p[Oi.ATTR_NETWORK_PROTOCOL_VERSION]);let y={kind:tn.SpanKind.CLIENT,attributes:p},b=r._startHttpSpan(c,y),S=tn.context.active(),E=tn.trace.setSpan(S,b);return l.headers?l.headers=Object.assign({},l.headers):l.headers={},tn.propagation.inject(E,l.headers),tn.context.with(E,()=>{let _=o[o.length-1];typeof _=="function"&&(o[o.length-1]=tn.context.bind(S,_));let T=(0,Mo.safeExecuteInTheMiddle)(()=>u?n.apply(this,[s,...o]):n.apply(this,[l,...o]),R=>{if(R)throw r._onOutgoingRequestError(b,m,g,h,R),R});return r._diag.debug(`${t} instrumentation outgoingRequest`),tn.context.bind(S,T),r._traceClientRequest(T,b,h,m,g)})}}_onServerResponseFinish(t,n,r,i,s,o){let a=(0,Is.getIncomingRequestAttributesOnResponse)(t,n,this._semconvStability);i=Object.assign(i,(0,Is.getIncomingRequestMetricAttributesOnResponse)(a)),s=Object.assign(s,(0,Is.getIncomingStableRequestMetricAttributesOnResponse)(a)),r.setAttributes(this._headerCapture.server.captureResponseHeaders(u=>n.getHeader(u))),r.setAttributes(a).setStatus({code:(0,Is.parseResponseStatus)(tn.SpanKind.SERVER,n.statusCode)});let c=a[Oi.ATTR_HTTP_ROUTE];c&&r.updateName(`${t.method||"GET"} ${c}`),this.getConfig().applyCustomAttributesOnSpan&&(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().applyCustomAttributesOnSpan(r,t,n),()=>{},!0),this._closeHttpSpan(r,tn.SpanKind.SERVER,o,i,s)}_onOutgoingRequestError(t,n,r,i,s){(0,Is.setSpanWithError)(t,s,this._semconvStability),r[Oi.ATTR_ERROR_TYPE]=s.name,this._closeHttpSpan(t,tn.SpanKind.CLIENT,i,n,r)}_onServerResponseError(t,n,r,i,s){(0,Is.setSpanWithError)(t,s,this._semconvStability),r[Oi.ATTR_ERROR_TYPE]=s.name,this._closeHttpSpan(t,tn.SpanKind.SERVER,i,n,r)}_startHttpSpan(t,n,r=tn.context.active()){let i=n.kind===tn.SpanKind.CLIENT?this.getConfig().requireParentforOutgoingSpans:this.getConfig().requireParentforIncomingSpans,s,o=tn.trace.getSpan(r);return i===!0&&(!o||!tn.trace.isSpanContextValid(o.spanContext()))?s=tn.trace.wrapSpanContext(tn.INVALID_SPAN_CONTEXT):i===!0&&o?.spanContext().isRemote?s=o:s=this.tracer.startSpan(t,n,r),this._spanNotEnded.add(s),s}_closeHttpSpan(t,n,r,i,s){if(!this._spanNotEnded.has(t))return;t.end(),this._spanNotEnded.delete(t);let o=(0,gy.hrTimeToMilliseconds)((0,gy.hrTimeDuration)(r,(0,gy.hrTime)()));n===tn.SpanKind.SERVER?this._recordServerDuration(o,i,s):n===tn.SpanKind.CLIENT&&this._recordClientDuration(o,i,s)}_callResponseHook(t,n){(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().responseHook(t,n),()=>{},!0)}_callRequestHook(t,n){(0,Mo.safeExecuteInTheMiddle)(()=>this.getConfig().requestHook(t,n),()=>{},!0)}_callStartSpanHook(t,n){if(typeof n=="function")return(0,Mo.safeExecuteInTheMiddle)(()=>n(t),()=>{},!0)}_createHeaderCapture(t){let n=this.getConfig();return{client:{captureRequestHeaders:(0,Is.headerCapture)("request",n.headersToSpanAttributes?.client?.requestHeaders??[],t),captureResponseHeaders:(0,Is.headerCapture)("response",n.headersToSpanAttributes?.client?.responseHeaders??[],t)},server:{captureRequestHeaders:(0,Is.headerCapture)("request",n.headersToSpanAttributes?.server?.requestHeaders??[],t),captureResponseHeaders:(0,Is.headerCapture)("response",n.headersToSpanAttributes?.server?.responseHeaders??[],t)}}}};kj.HttpInstrumentation=wJ});var TCe=w(Ij=>{"use strict";Object.defineProperty(Ij,"__esModule",{value:!0});Ij.HttpInstrumentation=void 0;var s4t=_Ce();Object.defineProperty(Ij,"HttpInstrumentation",{enumerable:!0,get:function(){return s4t.HttpInstrumentation}})});var Fe,Pi=v(()=>{Fe=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var qt,Wa=v(()=>{qt=globalThis});var Nn,xj=v(()=>{Nn="10.47.0"});function xc(){return yy(qt),qt}function yy(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Nn,t[Nn]=t[Nn]||{}}function tf(e,t,n=qt){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Nn]=r[Nn]||{};return i[e]||(i[e]=t())}var zl=v(()=>{xj();Wa()});function xs(e){if(!("console"in qt))return e();let t=qt.console,n={},r=Object.keys(IR);r.forEach(i=>{let s=IR[i];n[i]=t[i],t[i]=s});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function a4t(){IJ().enabled=!0}function c4t(){IJ().enabled=!1}function vCe(){return IJ().enabled}function u4t(...e){kJ("log",...e)}function l4t(...e){kJ("warn",...e)}function d4t(...e){kJ("error",...e)}function kJ(e,...t){Fe&&vCe()&&xs(()=>{qt.console[e](`${o4t}[${e}]:`,...t)})}function IJ(){return Fe?tf("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var NO,o4t,IR,Z,_r=v(()=>{zl();Pi();Wa();NO=["debug","info","warn","error","log","assert","trace"],o4t="Sentry Logger ",IR={};Z={enable:a4t,disable:c4t,isEnabled:vCe,log:u4t,warn:l4t,error:d4t}});function Pj(...e){let t=e.sort((n,r)=>n[0]-r[0]).map(n=>n[1]);return(n,r=0,i=0)=>{let s=[],o=n.split(` +`);for(let a=r;a1024&&(c=c.slice(0,1024));let u=RCe.test(c)?c.replace(RCe,"$1"):c;if(!u.match(/\S*Error: /)){for(let l of t){let d=l(u);if(d){s.push(d);break}}if(s.length>=50+i)break}}return wCe(s.slice(i))}}function OJ(e){return Array.isArray(e)?Pj(...e):e}function wCe(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Oj(t).function||"")&&t.pop(),t.reverse(),ACe.test(Oj(t).function||"")&&(t.pop(),ACe.test(Oj(t).function||"")&&t.pop()),t.slice(0,50).map(n=>({...n,filename:n.filename||Oj(t).filename,function:n.function||"?"}))}function Oj(e){return e[e.length-1]||{}}function CO(e){try{return!e||typeof e!="function"?xJ:e.name||xJ}catch{return xJ}}function Nj(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function kCe(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}var RCe,ACe,xJ,xR=v(()=>{RCe=/\(error: (.*)\)/,ACe=/captureMessage|captureException/;xJ=""});function OR(e,t){Cj[e]=Cj[e]||[],Cj[e].push(t)}function PR(e,t){if(!ICe[e]){ICe[e]=!0;try{t()}catch(n){Fe&&Z.error(`Error while instrumenting ${e}`,n)}}}function NR(e,t){let n=e&&Cj[e];if(n)for(let r of n)try{r(t)}catch(i){Fe&&Z.error(`Error while triggering instrumentation handler. Type: ${e} -Name: ${NO(r)} -Error:`,i)}}var Pj,kCe,Nj=v(()=>{Pi();_r();xR();Pj={},kCe={}});function ICe(e){let t="error";OR(t,e),PR(t,f4t)}function f4t(){OJ=qt.onerror,qt.onerror=function(e,t,n,r,i){return NR("error",{column:r,error:i,line:n,msg:e,url:t}),OJ?OJ.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var OJ,xCe=v(()=>{Wa();Nj();OJ=null});function OCe(e){let t="unhandledrejection";OR(t,e),PR(t,p4t)}function p4t(){PJ=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return NR("unhandledrejection",e),PJ?PJ.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var PJ,PCe=v(()=>{Wa();Nj();PJ=null});function Mp(e){switch(NCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Dp(e,Error)}}function Cj(e,t){return NCe.call(e)===`[object ${t}]`}function NJ(e){return Cj(e,"ErrorEvent")}function Sy(e){return Cj(e,"String")}function CR(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function CO(e){return e===null||CR(e)||typeof e!="object"&&typeof e!="function"}function fm(e){return Cj(e,"Object")}function CJ(e){return typeof Event<"u"&&Dp(e,Event)}function MJ(e){return typeof Element<"u"&&Dp(e,Element)}function DJ(e){return Cj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function LJ(e){return fm(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Dp(e,t){try{return e instanceof t}catch{return!1}}function MO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var NCe,Ka=v(()=>{NCe=Object.prototype.toString});function CCe(e,t={}){if(!e)return"";try{let n=e,r=5,i=[],s=0,o=0,a=" > ",c=a.length,u,l=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||m4t;for(;n&&s++1&&o+i.length*c+u.length>=d));)i.push(u),o+=u.length,n=n.parentNode;return i.reverse().join(a)}catch{return""}}function g4t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(h4t.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());let i=t?.length?t.filter(s=>n.getAttribute(s)).map(s=>[s,n.getAttribute(s)]):null;if(i?.length)i.forEach(s=>{r.push(`[${s[0]}="${s[1]}"]`)});else{n.id&&r.push(`#${n.id}`);let s=n.className;if(s&&Sy(s)){let o=s.split(/\s+/);for(let a of o)r.push(`.${a}`)}}for(let s of["aria-label","type","name","title","alt"]){let o=n.getAttribute(s);o&&r.push(`[${s}="${o}"]`)}return r.join("")}var h4t,m4t,MCe=v(()=>{Ka();Wa();h4t=qt,m4t=80});function UJ(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&UCe(i,r);try{e[t]=i}catch{Fe&&Z.log(`Failed to replace method "${t}" in object`,e)}}function zs(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{Fe&&Z.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function UCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,zs(e,"__sentry_original__",t)}catch{}}function FJ(e){return e.__sentry_original__}function Mj(e){if(Mp(e))return{message:e.message,name:e.name,stack:e.stack,...LCe(e)};if(CJ(e)){let t={type:e.type,target:DCe(e.target),currentTarget:DCe(e.currentTarget),...LCe(e)};return typeof CustomEvent<"u"&&Dp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function DCe(e){try{return MJ(e)?CCe(e):Object.prototype.toString.call(e)}catch{return""}}function LCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function jJ(e){let t=Object.keys(Mj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var nf=v(()=>{Pi();MCe();_r();Ka()});function AE(e){if(MR!==void 0)return MR?MR(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(MR=n[t],MR(e)):(MR=null,e())}function Do(){return AE(()=>Math.random())}function Gl(){return AE(()=>Date.now())}var MR,by=v(()=>{Wa()});function Ey(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function HJ(e,t){let n=e,r=n.length;if(r<=150)return n;t>r&&(t=r);let i=Math.max(t-60,0);i<5&&(i=0);let s=Math.min(i+140,r);return s>r-5&&(s=r),s===r&&(i=Math.max(s-140,0)),n=n.slice(i,s),i>0&&(n=`'{snip} ${n}`),spm(e,r,n))}var Ty=v(()=>{Ka();xR()});function y4t(){let e=qt;return e.crypto||e.msCrypto}function S4t(){return Do()*16}function mo(e=y4t()){try{if(e?.randomUUID)return AE(()=>e.randomUUID()).replace(/-/g,"")}catch{}return BJ||(BJ="10000000100040008000"+1e11),BJ.replace(/[018]/g,t=>(t^(S4t()&15)>>t/4).toString(16))}function FCe(e){return e.exception?.values?.[0]}function vy(e){let{message:t,event_id:n}=e;if(t)return t;let r=FCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function GJ(e,t,n){let r=e.exception=e.exception||{},i=r.values=r.values||[],s=i[0]=i[0]||{};s.value||(s.value=t||""),s.type||(s.type=n||"Error")}function DR(e,t){let n=FCe(e);if(!n)return;let r={type:"generic",handled:!0},i=n.mechanism;if(n.mechanism={...r,...i,...t},t&&"data"in t){let s={...i?.data,...t.data};n.mechanism.data=s}}function zJ(e){return parseInt(e||"",10)}function VJ(e){let t=e.match(b4t)||[],n=zJ(t[1]),r=zJ(t[2]),i=zJ(t[3]);return{buildmetadata:t[5],major:isNaN(n)?void 0:n,minor:isNaN(r)?void 0:r,patch:isNaN(i)?void 0:i,prerelease:t[4]}}function Dj(e){if(jCe(e))return!0;try{zs(e,"__sentry_captured__",!0)}catch{}return!1}function jCe(e){try{return e.__sentry_captured__}catch{}}var BJ,b4t,Lp=v(()=>{nf();by();Wa();b4t=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/});function hm(){return Gl()/qCe}function E4t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return hm;let t=e.timeOrigin;return()=>(t+AE(()=>e.now()))/qCe}function Ry(){return(HCe??(HCe=E4t()))()}var qCe,HCe,Ay=v(()=>{by();Wa();qCe=1e3});function BCe(e){let t=Ry(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>_4t(n)};return e&&mm(n,e),n}function mm(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||Ry(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:mo()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started=="number"&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration=="number")e.duration=t.duration;else{let n=e.timestamp-e.started;e.duration=n>=0?n:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors=="number"&&(e.errors=t.errors),t.status&&(e.status=t.status)}function zCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),mm(e,n)}function _4t(e){return{sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did=="number"||typeof e.did=="string"?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}var Lj=v(()=>{Lp();Ay()});function wy(e,t,n=2){if(!t||typeof t!="object"||n<=0)return t;if(e&&Object.keys(t).length===0)return e;let r={...e};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=wy(r[i],t[i],n-1));return r}var Uj=v(()=>{});function Ya(){return mo()}function Za(){return mo().substring(16)}var ky=v(()=>{Lp()});function wE(e,t){t?zs(e,WJ,t):delete e[WJ]}function kE(e){return e[WJ]}var WJ,Fj=v(()=>{nf();WJ="_sentrySpan"});var T4t,uu,DO=v(()=>{Pi();Lj();_r();Ka();Uj();Lp();ky();by();Fj();Ty();Ay();T4t=100,uu=class e{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:Ya(),sampleRand:Do()}}clone(){let t=new e;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._attributes={...this._attributes},t._extra={...this._extra},t._contexts={...this._contexts},this._contexts.flags&&(t._contexts.flags={values:[...this._contexts.flags.values]}),t._user=this._user,t._level=this._level,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t._lastEventId=this._lastEventId,t._conversationId=this._conversationId,wE(t,kE(this)),t}setClient(t){this._client=t}setLastEventId(t){this._lastEventId=t}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&mm(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(t){return this._conversationId=t||void 0,this._notifyScopeListeners(),this}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,n){return this.setTags({[t]:n})}setAttributes(t){return this._attributes={...this._attributes,...t},this._notifyScopeListeners(),this}setAttribute(t,n){return this.setAttributes({[t]:n})}removeAttribute(t){return t in this._attributes&&(delete this._attributes[t],this._notifyScopeListeners()),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,n){return this._extra={...this._extra,[t]:n},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,n){return n===null?delete this._contexts[t]:this._contexts[t]=n,this._notifyScopeListeners(),this}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;let n=typeof t=="function"?t(this):t,r=n instanceof e?n.getScopeData():fm(n)?t:void 0,{tags:i,attributes:s,extra:o,user:a,contexts:c,level:u,fingerprint:l=[],propagationContext:d,conversationId:f}=r||{};return this._tags={...this._tags,...i},this._attributes={...this._attributes,...s},this._extra={...this._extra,...o},this._contexts={...this._contexts,...c},a&&Object.keys(a).length&&(this._user=a),u&&(this._level=u),l.length&&(this._fingerprint=l),d&&(this._propagationContext=d),f&&(this._conversationId=f),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,wE(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ya(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:T4t;if(r<=0)return this;let i={timestamp:hm(),...t,message:t.message?Ey(t.message,2048):t.message};return this._breadcrumbs.push(i),this._breadcrumbs.length>r&&(this._breadcrumbs=this._breadcrumbs.slice(-r),this._client?.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:kE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=wy(this._sdkProcessingMetadata,t,2),this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){let r=n?.event_id||mo();if(!this._client)return Fe&&Z.warn("No client configured on scope - will not capture exception!"),r;let i=new Error("Sentry syntheticException");return this._client.captureException(t,{originalException:t,syntheticException:i,...n,event_id:r},this),r}captureMessage(t,n,r){let i=r?.event_id||mo();if(!this._client)return Fe&&Z.warn("No client configured on scope - will not capture message!"),i;let s=r?.syntheticException??new Error(t);return this._client.captureMessage(t,n,{originalException:t,syntheticException:s,...r,event_id:i},this),i}captureEvent(t,n){let r=t.event_id||n?.event_id||mo();return this._client?(this._client.captureEvent(t,{...n,event_id:r},this),r):(Fe&&Z.warn("No client configured on scope - will not capture event!"),r)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(t=>{t(this)}),this._notifyingListeners=!1)}}});function LR(){return tf("defaultCurrentScope",()=>new uu)}function Vl(){return tf("defaultIsolationScope",()=>new uu)}var KJ=v(()=>{zl();DO()});var GCe,VCe,jj,v4t,YJ=v(()=>{GCe=e=>e instanceof Promise&&!e[VCe],VCe=Symbol("chained PromiseLike"),jj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return GCe(r)&&GCe(e)?r:v4t(e,r)},v4t=(e,t)=>{let n=!1;for(let r in e){if(r in t)continue;n=!0;let i=e[r];typeof i=="function"?Object.defineProperty(t,r,{value:(...s)=>i.apply(e,s),enumerable:!0,configurable:!0,writable:!0}):t[r]=i}return n&&Object.assign(t,{[VCe]:!0}),t}});function UR(){let e=xc(),t=yy(e);return t.stack=t.stack||new ZJ(LR(),Vl())}function R4t(e){return UR().withScope(e)}function A4t(e,t){let n=UR();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function WCe(e){return UR().withScope(()=>e(UR().getIsolationScope()))}function KCe(){return{withIsolationScope:WCe,withScope:R4t,withSetScope:A4t,withSetIsolationScope:(e,t)=>WCe(t),getCurrentScope:()=>UR().getScope(),getIsolationScope:()=>UR().getIsolationScope()}}var ZJ,YCe=v(()=>{KJ();DO();YJ();Ka();zl();ZJ=class{constructor(t,n){let r;t?r=t:r=new uu;let i;n?i=n:i=new uu,this._stack=[{scope:r}],this._isolationScope=i}withScope(t){let n=this._pushScope(),r;try{r=t(n)}catch(i){throw this._popScope(),i}return sa(r)?jj(r,()=>this._popScope(),()=>this._popScope()):(this._popScope(),r)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let t=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:t}),t}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}});function JJ(e){let t=xc(),n=yy(t);n.acs=e}function rf(e){let t=yy(e);return t.acs?t.acs:KCe()}var FR=v(()=>{zl();YCe()});function JCe(){return ZCe?.()}function XJ(){return ZCe!==void 0}function Un(){let e=xc();return rf(e).getCurrentScope()}function vn(){let e=xc();return rf(e).getIsolationScope()}function Hj(){return tf("globalScope",()=>new uu)}function Ja(...e){let t=xc(),n=rf(t);if(e.length===2){let[r,i]=e;return r?n.withSetScope(r,i):n.withScope(i)}return n.withScope(e[0])}function LO(...e){let t=xc(),n=rf(t);if(e.length===2){let[r,i]=e;return r?n.withSetIsolationScope(r,i):n.withIsolationScope(i)}return n.withIsolationScope(e[0])}function ct(){return Un().getClient()}function IE(e){let t=JCe();if(t)return{trace_id:t.traceId,span_id:t.spanId};let n=e.getPropagationContext(),{traceId:r,parentSpanId:i,propagationSpanId:s}=n,o={trace_id:r,span_id:s||Za()};return i&&(o.parent_span_id=i),o}var ZCe,go=v(()=>{FR();zl();DO();ky()});var Wi,sf,QJ,zt,At,$J,eX,Wl,jR,HR,tX,nX,rX,iX,Iy,sX,Lo=v(()=>{Wi="sentry.source",sf="sentry.sample_rate",QJ="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",$J="sentry.measurement_unit",eX="sentry.measurement_value",Wl="sentry.custom_span_name",jR="sentry.profile_id",HR="sentry.exclusive_time",tX="cache.hit",nX="cache.key",rX="cache.item_size",iX="http.request.method",Iy="url.full",sX="gen_ai.conversation.id"});function gm(e){if(e<400&&e>=100)return{code:1};if(e>=400&&e<500)switch(e){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(e>=500&&e<600)switch(e){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"internal_error"}}var XCe=v(()=>{});function w4t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function k4t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function UO(e,t,n){e&&(zs(e,$Ce,w4t(n)),zs(e,QCe,t))}function of(e){let t=e;return{scope:t[QCe],isolationScope:k4t(t[$Ce])}}var QCe,$Ce,qR=v(()=>{nf();Wa();QCe="_sentryScope",$Ce="_sentryIsolationScope"});function ym(e){let t=OE(e);if(!t)return;let n=Object.entries(t).reduce((r,[i,s])=>{if(i.startsWith(Up)){let o=i.slice(Up.length);r[o]=s}return r},{});if(Object.keys(n).length>0)return n}function xE(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Up}${r}`]=i),n),{});return qj(t)}function OE(e){if(!(!e||!Sy(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=eMe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):eMe(e)}function eMe(e){return e.split(",").map(t=>{let n=t.indexOf("=");if(n===-1)return[];let r=t.slice(0,n),i=t.slice(n+1);return[r,i].map(s=>{try{return decodeURIComponent(s.trim())}catch{return}})}).reduce((t,[n,r])=>(n&&r&&(t[n]=r),t),{})}function qj(e){if(Object.keys(e).length!==0)return Object.entries(e).reduce((t,[n,r],i)=>{let s=`${encodeURIComponent(n)}=${encodeURIComponent(r)}`,o=i===0?s:`${t},${s}`;return o.length>tMe?(Fe&&Z.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Up,tMe,FO=v(()=>{Pi();_r();Ka();Up="sentry-",tMe=8192});function O4t(e){return e==="http"||e==="https"}function al(e,t=!1){let{host:n,path:r,pass:i,port:s,projectId:o,protocol:a,publicKey:c}=e;return`${a}://${c}${t&&i?`:${i}`:""}@${n}${s?`:${s}`:""}/${r&&`${r}/`}${o}`}function P4t(e){let t=x4t.exec(e);if(!t){xs(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});return}let[n,r,i="",s="",o="",a=""]=t.slice(1),c="",u=a,l=u.split("/");if(l.length>1&&(c=l.slice(0,-1).join("/"),u=l.pop()),u){let d=u.match(/^\d+/);d&&(u=d[0])}return nMe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function nMe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function N4t(e){if(!Fe)return!0;let{port:t,projectId:n,protocol:r}=e;return["protocol","publicKey","host","projectId"].find(o=>e[o]?!1:(Z.error(`Invalid Sentry Dsn: ${o} missing`),!0))?!1:n.match(/^\d+$/)?O4t(r)?t&&isNaN(parseInt(t,10))?(Z.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(Z.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(Z.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function C4t(e){return e.match(I4t)?.[1]}function Bj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=C4t(n)),r}function rMe(e){let t=typeof e=="string"?P4t(e):nMe(e);if(!(!t||!N4t(t)))return t}var I4t,x4t,Sm=v(()=>{Pi();_r();I4t=/^o(\d+)\./,x4t=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/});function cl(e){if(typeof e=="boolean")return Number(e);let t=typeof e=="string"?parseFloat(e):e;if(!(typeof t!="number"||isNaN(t)||t<0||t>1))return t}var BR=v(()=>{});function iMe(e){if(!e)return;let t=e.match(zj);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function jO(e,t){let n=iMe(e),r=ym(t);if(!n?.traceId)return{traceId:Ya(),sampleRand:Do()};let i=M4t(n,r);r&&(r.sample_rand=i.toString());let{traceId:s,parentSpanId:o,parentSampled:a}=n;return{traceId:s,parentSpanId:o,sampled:a,dsc:r||{},sampleRand:i}}function xy(e=Ya(),t=Za(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Oy(e=Ya(),t=Za(),n){return`00-${e}-${t}-${n?"01":"00"}`}function M4t(e,t){let n=cl(t?.sample_rand);if(n!==void 0)return n;let r=cl(t?.sample_rate);return r&&e?.parentSampled!==void 0?e.parentSampled?Do()*r:r+Do()*(1-r):Do()}function oX(e,t){let n=Bj(e);return t&&n&&t!==n?(Z.log(`Won't continue trace because org IDs don't match (incoming baggage: ${t}, SDK options: ${n})`),!1):(e.getOptions().strictTraceContinuation||!1)&&(t&&!n||!t&&n)?(Z.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${t}, Sentry client: ${n})`),!1):!0}var zj,Gj=v(()=>{_r();FO();Sm();BR();ky();by();zj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function aMe(e){let{spanId:t,traceId:n}=e.spanContext(),{data:r,op:i,parent_span_id:s,status:o,origin:a,links:c}=vt(e);return{parent_span_id:s,span_id:t,trace_id:n,data:r,op:i,status:o,origin:a,links:c}}function Py(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:vt(e).parent_span_id,s=of(e).scope,o=r?s?.getPropagationContext().propagationSpanId||Za():t;return{parent_span_id:i,span_id:o,trace_id:n}}function Yj(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return xy(t,n,r)}function cMe(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Oy(t,n,r)}function PE(e){if(e&&e.length>0)return e.map(({context:{spanId:t,traceId:n,traceFlags:r,...i},attributes:s})=>({span_id:t,trace_id:n,sampled:r===Kj,attributes:s,...i}))}function lu(e){return typeof e=="number"?oMe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?oMe(e.getTime()):Ry()}function oMe(e){return e>9999999999?e/1e3:e}function vt(e){if(U4t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(L4t(e)){let{attributes:r,startTime:i,name:s,endTime:o,status:a,links:c}=e,u="parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?e.parentSpanContext?.spanId:void 0;return{span_id:t,trace_id:n,data:r,description:s,parent_span_id:u,start_timestamp:lu(i),timestamp:lu(o)||void 0,status:NE(a),op:r[zt],origin:r[At],links:PE(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function L4t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function U4t(e){return typeof e.getSpanJSON=="function"}function af(e){let{traceFlags:t}=e.spanContext();return t===Kj}function NE(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function zR(e,t){let n=e[aX]||e;zs(t,aX,n),e[HO]?e[HO].add(t):zs(e,HO,new Set([t]))}function Zj(e){let t=new Set;function n(r){if(!t.has(r)&&af(r)){t.add(r);let i=r[HO]?Array.from(r[HO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[aX]||e}function Kl(){let e=xc(),t=rf(e);return t.getActiveSpan?t.getActiveSpan():kE(Un())}function qO(){sMe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),sMe=!0)}var Wj,Kj,sMe,HO,aX,Oc=v(()=>{FR();zl();go();Lo();qR();nf();ky();Ay();Gj();_r();Fj();Wj=0,Kj=1,sMe=!1;HO="_sentryChildSpans",aX="_sentryRootSpan"});function lMe(){if(uMe)return;function e(){let t=Kl(),n=t&&cs(t);if(n){let r="internal_error";Fe&&Z.log(`[Tracing] Root span: ${r} -> Global error occurred`),n.setStatus({code:2,message:r})}}e.tag="sentry_tracingErrorCallback",uMe=!0,ICe(e),OCe(e)}var uMe,dMe=v(()=>{Pi();xCe();PCe();_r();Oc();uMe=!1});function Os(e){if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;let t=e||ct()?.getOptions();return!!t&&(t.tracesSampleRate!=null||!!t.tracesSampler)}var BO=v(()=>{go()});function fMe(e){Z.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function zO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(F4t(n)){if(pm(e.description,n))return Fe&&fMe(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?pm(e.description,n.name):!0,i=n.op?e.op&&pm(e.op,n.op):!0;if(r&&i)return Fe&&fMe(e),!0}return!1}function pMe(e,t){let n=t.parent_span_id,r=t.span_id;if(n)for(let i of e)i.parent_span_id===r&&(i.parent_span_id=n)}function F4t(e){return typeof e=="string"||e instanceof RegExp}var cX=v(()=>{Pi();_r();Ty()});var GR,Jj=v(()=>{GR="production"});function Xj(e,t){zs(e,hMe,t)}function uX(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||GR,release:n.release,public_key:r,trace_id:e,org_id:Bj(t)};return t.emit("createDsc",i),i}function Fp(e,t){let n=t.getPropagationContext();return n.dsc||uX(n.traceId,e)}function Ps(e){let t=ct();if(!t)return{};let n=cs(e),r=vt(n),i=r.data,s=n.spanContext().traceState,o=s?.get("sentry.sample_rate")??i[sf]??i[QJ];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[hMe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&ym(u);if(l)return a(l);let d=uX(e.spanContext().traceId,t),f=i[Wi],p=r.description;return f!=="url"&&p&&(d.transaction=p),Os()&&(d.sampled=String(af(n)),d.sample_rand=s?.get("sentry.sample_rand")??of(n).scope?.getPropagationContext().sampleRand.toString()),a(d),t.emit("createDsc",d,n),d}var hMe,bm=v(()=>{Jj();go();Lo();FO();Sm();BO();nf();Oc();qR();hMe="_frozenDsc"});var Ny,mMe=v(()=>{ky();Oc();Ny=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Wj}}end(t){}setAttribute(t,n){return this}setAttributes(t){return this}setStatus(t){return this}updateName(t){return this}isRecording(){return!1}addEvent(t,n,r){return this}addLink(t){return this}addLinks(t){return this}recordException(t,n){}}});function cf(e,t=100,n=1/0){try{return lX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function dX(e,t=3,n=100*1024){let r=cf(e,t);return B4t(r)>n?dX(e,t-1,n):r}function lX(e,t,n=1/0,r=1/0,i=z4t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=j4t(e,t);if(!a.startsWith("[object "))return a;if(t.__sentry_skip_normalization__)return t;let c=typeof t.__sentry_override_normalization_depth__=="number"?t.__sentry_override_normalization_depth__:n;if(c===0)return a.replace("object ","");if(s(t))return"[Circular ~]";let u=t;if(u&&typeof u.toJSON=="function")try{let p=u.toJSON();return lX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Mj(t);for(let p in f){if(!Object.prototype.hasOwnProperty.call(f,p))continue;if(d>=r){l[p]="[MaxProperties ~]";break}let h=f[p];l[p]=lX(p,h,c-1,r,i),d++}return o(t),l}function j4t(e,t){try{if(e==="domain"&&t&&typeof t=="object"&&t._events)return"[Domain]";if(e==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&t===global)return"[Global]";if(typeof window<"u"&&t===window)return"[Window]";if(typeof document<"u"&&t===document)return"[Document]";if(MO(t))return Oj(t);if(LJ(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${NO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=H4t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function H4t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function q4t(e){return~-encodeURI(e).split(/%..|./).length}function B4t(e){return q4t(JSON.stringify(e))}function z4t(){let e=new WeakSet;function t(r){return e.has(r)?!0:(e.add(r),!1)}function n(r){e.delete(r)}return[t,n]}var Qj=v(()=>{Ka();nf();xR()});function Pc(e,t=[]){return[e,t]}function pX(e,t){let[n,r]=e;return[n,[...r,t]]}function GO(e,t){let n=e[1];for(let r of n){let i=r[0].type;if(t(r,i))return!0}return!1}function hX(e,t){return GO(e,(n,r)=>t.includes(r))}function fX(e){let t=yy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function VO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[fX(r),s]:r.push(typeof s=="string"?fX(s):s)}for(let s of n){let[o,a]=s;if(i(` +Name: ${CO(r)} +Error:`,i)}}var Cj,ICe,Mj=v(()=>{Pi();_r();xR();Cj={},ICe={}});function xCe(e){let t="error";OR(t,e),PR(t,f4t)}function f4t(){PJ=qt.onerror,qt.onerror=function(e,t,n,r,i){return NR("error",{column:r,error:i,line:n,msg:e,url:t}),PJ?PJ.apply(this,arguments):!1},qt.onerror.__SENTRY_INSTRUMENTED__=!0}var PJ,OCe=v(()=>{Wa();Mj();PJ=null});function PCe(e){let t="unhandledrejection";OR(t,e),PR(t,p4t)}function p4t(){NJ=qt.onunhandledrejection,qt.onunhandledrejection=function(e){return NR("unhandledrejection",e),NJ?NJ.apply(this,arguments):!0},qt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}var NJ,NCe=v(()=>{Wa();Mj();NJ=null});function Mp(e){switch(CCe.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Dp(e,Error)}}function Dj(e,t){return CCe.call(e)===`[object ${t}]`}function CJ(e){return Dj(e,"ErrorEvent")}function Sy(e){return Dj(e,"String")}function CR(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function MO(e){return e===null||CR(e)||typeof e!="object"&&typeof e!="function"}function fm(e){return Dj(e,"Object")}function MJ(e){return typeof Event<"u"&&Dp(e,Event)}function DJ(e){return typeof Element<"u"&&Dp(e,Element)}function LJ(e){return Dj(e,"RegExp")}function sa(e){return!!(e?.then&&typeof e.then=="function")}function UJ(e){return fm(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Dp(e,t){try{return e instanceof t}catch{return!1}}function DO(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue||e.__v_isVNode))}var CCe,Ka=v(()=>{CCe=Object.prototype.toString});function MCe(e,t={}){if(!e)return"";try{let n=e,r=5,i=[],s=0,o=0,a=" > ",c=a.length,u,l=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||m4t;for(;n&&s++1&&o+i.length*c+u.length>=d));)i.push(u),o+=u.length,n=n.parentNode;return i.reverse().join(a)}catch{return""}}function g4t(e,t){let n=e,r=[];if(!n?.tagName)return"";if(h4t.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());let i=t?.length?t.filter(s=>n.getAttribute(s)).map(s=>[s,n.getAttribute(s)]):null;if(i?.length)i.forEach(s=>{r.push(`[${s[0]}="${s[1]}"]`)});else{n.id&&r.push(`#${n.id}`);let s=n.className;if(s&&Sy(s)){let o=s.split(/\s+/);for(let a of o)r.push(`.${a}`)}}for(let s of["aria-label","type","name","title","alt"]){let o=n.getAttribute(s);o&&r.push(`[${s}="${o}"]`)}return r.join("")}var h4t,m4t,DCe=v(()=>{Ka();Wa();h4t=qt,m4t=80});function FJ(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!="function")return;let i=n(r);typeof i=="function"&&FCe(i,r);try{e[t]=i}catch{Fe&&Z.log(`Failed to replace method "${t}" in object`,e)}}function zs(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{Fe&&Z.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function FCe(e,t){try{let n=t.prototype||{};e.prototype=t.prototype=n,zs(e,"__sentry_original__",t)}catch{}}function jJ(e){return e.__sentry_original__}function Lj(e){if(Mp(e))return{message:e.message,name:e.name,stack:e.stack,...UCe(e)};if(MJ(e)){let t={type:e.type,target:LCe(e.target),currentTarget:LCe(e.currentTarget),...UCe(e)};return typeof CustomEvent<"u"&&Dp(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function LCe(e){try{return DJ(e)?MCe(e):Object.prototype.toString.call(e)}catch{return""}}function UCe(e){return typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e)):{}}function HJ(e){let t=Object.keys(Lj(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}var nf=v(()=>{Pi();DCe();_r();Ka()});function AE(e){if(MR!==void 0)return MR?MR(e):e();let t=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),n=qt;return t in n&&typeof n[t]=="function"?(MR=n[t],MR(e)):(MR=null,e())}function Do(){return AE(()=>Math.random())}function Gl(){return AE(()=>Date.now())}var MR,by=v(()=>{Wa()});function Ey(e,t=0){return typeof e!="string"||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function qJ(e,t){let n=e,r=n.length;if(r<=150)return n;t>r&&(t=r);let i=Math.max(t-60,0);i<5&&(i=0);let s=Math.min(i+140,r);return s>r-5&&(s=r),s===r&&(i=Math.max(s-140,0)),n=n.slice(i,s),i>0&&(n=`'{snip} ${n}`),spm(e,r,n))}var Ty=v(()=>{Ka();xR()});function y4t(){let e=qt;return e.crypto||e.msCrypto}function S4t(){return Do()*16}function mo(e=y4t()){try{if(e?.randomUUID)return AE(()=>e.randomUUID()).replace(/-/g,"")}catch{}return zJ||(zJ="10000000100040008000"+1e11),zJ.replace(/[018]/g,t=>(t^(S4t()&15)>>t/4).toString(16))}function jCe(e){return e.exception?.values?.[0]}function vy(e){let{message:t,event_id:n}=e;if(t)return t;let r=jCe(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function VJ(e,t,n){let r=e.exception=e.exception||{},i=r.values=r.values||[],s=i[0]=i[0]||{};s.value||(s.value=t||""),s.type||(s.type=n||"Error")}function DR(e,t){let n=jCe(e);if(!n)return;let r={type:"generic",handled:!0},i=n.mechanism;if(n.mechanism={...r,...i,...t},t&&"data"in t){let s={...i?.data,...t.data};n.mechanism.data=s}}function GJ(e){return parseInt(e||"",10)}function WJ(e){let t=e.match(b4t)||[],n=GJ(t[1]),r=GJ(t[2]),i=GJ(t[3]);return{buildmetadata:t[5],major:isNaN(n)?void 0:n,minor:isNaN(r)?void 0:r,patch:isNaN(i)?void 0:i,prerelease:t[4]}}function Uj(e){if(HCe(e))return!0;try{zs(e,"__sentry_captured__",!0)}catch{}return!1}function HCe(e){try{return e.__sentry_captured__}catch{}}var zJ,b4t,Lp=v(()=>{nf();by();Wa();b4t=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/});function hm(){return Gl()/BCe}function E4t(){let{performance:e}=qt;if(!e?.now||!e.timeOrigin)return hm;let t=e.timeOrigin;return()=>(t+AE(()=>e.now()))/BCe}function Ry(){return(qCe??(qCe=E4t()))()}var BCe,qCe,Ay=v(()=>{by();Wa();BCe=1e3});function zCe(e){let t=Ry(),n={sid:mo(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>_4t(n)};return e&&mm(n,e),n}function mm(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||Ry(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:mo()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started=="number"&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration=="number")e.duration=t.duration;else{let n=e.timestamp-e.started;e.duration=n>=0?n:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors=="number"&&(e.errors=t.errors),t.status&&(e.status=t.status)}function GCe(e,t){let n={};t?n={status:t}:e.status==="ok"&&(n={status:"exited"}),mm(e,n)}function _4t(e){return{sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did=="number"||typeof e.did=="string"?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}var Fj=v(()=>{Lp();Ay()});function wy(e,t,n=2){if(!t||typeof t!="object"||n<=0)return t;if(e&&Object.keys(t).length===0)return e;let r={...e};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=wy(r[i],t[i],n-1));return r}var jj=v(()=>{});function Ya(){return mo()}function Za(){return mo().substring(16)}var ky=v(()=>{Lp()});function wE(e,t){t?zs(e,KJ,t):delete e[KJ]}function kE(e){return e[KJ]}var KJ,Hj=v(()=>{nf();KJ="_sentrySpan"});var T4t,uu,LO=v(()=>{Pi();Fj();_r();Ka();jj();Lp();ky();by();Hj();Ty();Ay();T4t=100,uu=class e{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:Ya(),sampleRand:Do()}}clone(){let t=new e;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._attributes={...this._attributes},t._extra={...this._extra},t._contexts={...this._contexts},this._contexts.flags&&(t._contexts.flags={values:[...this._contexts.flags.values]}),t._user=this._user,t._level=this._level,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t._lastEventId=this._lastEventId,t._conversationId=this._conversationId,wE(t,kE(this)),t}setClient(t){this._client=t}setLastEventId(t){this._lastEventId=t}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&mm(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(t){return this._conversationId=t||void 0,this._notifyScopeListeners(),this}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,n){return this.setTags({[t]:n})}setAttributes(t){return this._attributes={...this._attributes,...t},this._notifyScopeListeners(),this}setAttribute(t,n){return this.setAttributes({[t]:n})}removeAttribute(t){return t in this._attributes&&(delete this._attributes[t],this._notifyScopeListeners()),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,n){return this._extra={...this._extra,[t]:n},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,n){return n===null?delete this._contexts[t]:this._contexts[t]=n,this._notifyScopeListeners(),this}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;let n=typeof t=="function"?t(this):t,r=n instanceof e?n.getScopeData():fm(n)?t:void 0,{tags:i,attributes:s,extra:o,user:a,contexts:c,level:u,fingerprint:l=[],propagationContext:d,conversationId:f}=r||{};return this._tags={...this._tags,...i},this._attributes={...this._attributes,...s},this._extra={...this._extra,...o},this._contexts={...this._contexts,...c},a&&Object.keys(a).length&&(this._user=a),u&&(this._level=u),l.length&&(this._fingerprint=l),d&&(this._propagationContext=d),f&&(this._conversationId=f),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,wE(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ya(),sampleRand:Do()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){let r=typeof n=="number"?n:T4t;if(r<=0)return this;let i={timestamp:hm(),...t,message:t.message?Ey(t.message,2048):t.message};return this._breadcrumbs.push(i),this._breadcrumbs.length>r&&(this._breadcrumbs=this._breadcrumbs.slice(-r),this._client?.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:kE(this),conversationId:this._conversationId}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=wy(this._sdkProcessingMetadata,t,2),this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){let r=n?.event_id||mo();if(!this._client)return Fe&&Z.warn("No client configured on scope - will not capture exception!"),r;let i=new Error("Sentry syntheticException");return this._client.captureException(t,{originalException:t,syntheticException:i,...n,event_id:r},this),r}captureMessage(t,n,r){let i=r?.event_id||mo();if(!this._client)return Fe&&Z.warn("No client configured on scope - will not capture message!"),i;let s=r?.syntheticException??new Error(t);return this._client.captureMessage(t,n,{originalException:t,syntheticException:s,...r,event_id:i},this),i}captureEvent(t,n){let r=t.event_id||n?.event_id||mo();return this._client?(this._client.captureEvent(t,{...n,event_id:r},this),r):(Fe&&Z.warn("No client configured on scope - will not capture event!"),r)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(t=>{t(this)}),this._notifyingListeners=!1)}}});function LR(){return tf("defaultCurrentScope",()=>new uu)}function Vl(){return tf("defaultIsolationScope",()=>new uu)}var YJ=v(()=>{zl();LO()});var VCe,WCe,qj,v4t,ZJ=v(()=>{VCe=e=>e instanceof Promise&&!e[WCe],WCe=Symbol("chained PromiseLike"),qj=(e,t,n)=>{let r=e.then(i=>(t(i),i),i=>{throw n(i),i});return VCe(r)&&VCe(e)?r:v4t(e,r)},v4t=(e,t)=>{let n=!1;for(let r in e){if(r in t)continue;n=!0;let i=e[r];typeof i=="function"?Object.defineProperty(t,r,{value:(...s)=>i.apply(e,s),enumerable:!0,configurable:!0,writable:!0}):t[r]=i}return n&&Object.assign(t,{[WCe]:!0}),t}});function UR(){let e=xc(),t=yy(e);return t.stack=t.stack||new JJ(LR(),Vl())}function R4t(e){return UR().withScope(e)}function A4t(e,t){let n=UR();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function KCe(e){return UR().withScope(()=>e(UR().getIsolationScope()))}function YCe(){return{withIsolationScope:KCe,withScope:R4t,withSetScope:A4t,withSetIsolationScope:(e,t)=>KCe(t),getCurrentScope:()=>UR().getScope(),getIsolationScope:()=>UR().getIsolationScope()}}var JJ,ZCe=v(()=>{YJ();LO();ZJ();Ka();zl();JJ=class{constructor(t,n){let r;t?r=t:r=new uu;let i;n?i=n:i=new uu,this._stack=[{scope:r}],this._isolationScope=i}withScope(t){let n=this._pushScope(),r;try{r=t(n)}catch(i){throw this._popScope(),i}return sa(r)?qj(r,()=>this._popScope(),()=>this._popScope()):(this._popScope(),r)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let t=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:t}),t}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}});function XJ(e){let t=xc(),n=yy(t);n.acs=e}function rf(e){let t=yy(e);return t.acs?t.acs:YCe()}var FR=v(()=>{zl();ZCe()});function XCe(){return JCe?.()}function QJ(){return JCe!==void 0}function Un(){let e=xc();return rf(e).getCurrentScope()}function vn(){let e=xc();return rf(e).getIsolationScope()}function Bj(){return tf("globalScope",()=>new uu)}function Ja(...e){let t=xc(),n=rf(t);if(e.length===2){let[r,i]=e;return r?n.withSetScope(r,i):n.withScope(i)}return n.withScope(e[0])}function UO(...e){let t=xc(),n=rf(t);if(e.length===2){let[r,i]=e;return r?n.withSetIsolationScope(r,i):n.withIsolationScope(i)}return n.withIsolationScope(e[0])}function ct(){return Un().getClient()}function IE(e){let t=XCe();if(t)return{trace_id:t.traceId,span_id:t.spanId};let n=e.getPropagationContext(),{traceId:r,parentSpanId:i,propagationSpanId:s}=n,o={trace_id:r,span_id:s||Za()};return i&&(o.parent_span_id=i),o}var JCe,go=v(()=>{FR();zl();LO();ky()});var Wi,sf,$J,zt,At,eX,tX,Wl,jR,HR,nX,rX,iX,sX,Iy,oX,Lo=v(()=>{Wi="sentry.source",sf="sentry.sample_rate",$J="sentry.previous_trace_sample_rate",zt="sentry.op",At="sentry.origin",eX="sentry.measurement_unit",tX="sentry.measurement_value",Wl="sentry.custom_span_name",jR="sentry.profile_id",HR="sentry.exclusive_time",nX="cache.hit",rX="cache.key",iX="cache.item_size",sX="http.request.method",Iy="url.full",oX="gen_ai.conversation.id"});function gm(e){if(e<400&&e>=100)return{code:1};if(e>=400&&e<500)switch(e){case 401:return{code:2,message:"unauthenticated"};case 403:return{code:2,message:"permission_denied"};case 404:return{code:2,message:"not_found"};case 409:return{code:2,message:"already_exists"};case 413:return{code:2,message:"failed_precondition"};case 429:return{code:2,message:"resource_exhausted"};case 499:return{code:2,message:"cancelled"};default:return{code:2,message:"invalid_argument"}}if(e>=500&&e<600)switch(e){case 501:return{code:2,message:"unimplemented"};case 503:return{code:2,message:"unavailable"};case 504:return{code:2,message:"deadline_exceeded"};default:return{code:2,message:"internal_error"}}return{code:2,message:"internal_error"}}var QCe=v(()=>{});function w4t(e){try{let t=qt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function k4t(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function FO(e,t,n){e&&(zs(e,eMe,w4t(n)),zs(e,$Ce,t))}function of(e){let t=e;return{scope:t[$Ce],isolationScope:k4t(t[eMe])}}var $Ce,eMe,qR=v(()=>{nf();Wa();$Ce="_sentryScope",eMe="_sentryIsolationScope"});function ym(e){let t=OE(e);if(!t)return;let n=Object.entries(t).reduce((r,[i,s])=>{if(i.startsWith(Up)){let o=i.slice(Up.length);r[o]=s}return r},{});if(Object.keys(n).length>0)return n}function xE(e){if(!e)return;let t=Object.entries(e).reduce((n,[r,i])=>(i&&(n[`${Up}${r}`]=i),n),{});return zj(t)}function OE(e){if(!(!e||!Sy(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{let r=tMe(n);return Object.entries(r).forEach(([i,s])=>{t[i]=s}),t},{}):tMe(e)}function tMe(e){return e.split(",").map(t=>{let n=t.indexOf("=");if(n===-1)return[];let r=t.slice(0,n),i=t.slice(n+1);return[r,i].map(s=>{try{return decodeURIComponent(s.trim())}catch{return}})}).reduce((t,[n,r])=>(n&&r&&(t[n]=r),t),{})}function zj(e){if(Object.keys(e).length!==0)return Object.entries(e).reduce((t,[n,r],i)=>{let s=`${encodeURIComponent(n)}=${encodeURIComponent(r)}`,o=i===0?s:`${t},${s}`;return o.length>nMe?(Fe&&Z.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):o},"")}var Up,nMe,jO=v(()=>{Pi();_r();Ka();Up="sentry-",nMe=8192});function O4t(e){return e==="http"||e==="https"}function al(e,t=!1){let{host:n,path:r,pass:i,port:s,projectId:o,protocol:a,publicKey:c}=e;return`${a}://${c}${t&&i?`:${i}`:""}@${n}${s?`:${s}`:""}/${r&&`${r}/`}${o}`}function P4t(e){let t=x4t.exec(e);if(!t){xs(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});return}let[n,r,i="",s="",o="",a=""]=t.slice(1),c="",u=a,l=u.split("/");if(l.length>1&&(c=l.slice(0,-1).join("/"),u=l.pop()),u){let d=u.match(/^\d+/);d&&(u=d[0])}return rMe({host:s,pass:i,path:c,projectId:u,port:o,protocol:n,publicKey:r})}function rMe(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function N4t(e){if(!Fe)return!0;let{port:t,projectId:n,protocol:r}=e;return["protocol","publicKey","host","projectId"].find(o=>e[o]?!1:(Z.error(`Invalid Sentry Dsn: ${o} missing`),!0))?!1:n.match(/^\d+$/)?O4t(r)?t&&isNaN(parseInt(t,10))?(Z.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(Z.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(Z.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function C4t(e){return e.match(I4t)?.[1]}function Gj(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=C4t(n)),r}function iMe(e){let t=typeof e=="string"?P4t(e):rMe(e);if(!(!t||!N4t(t)))return t}var I4t,x4t,Sm=v(()=>{Pi();_r();I4t=/^o(\d+)\./,x4t=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/});function cl(e){if(typeof e=="boolean")return Number(e);let t=typeof e=="string"?parseFloat(e):e;if(!(typeof t!="number"||isNaN(t)||t<0||t>1))return t}var BR=v(()=>{});function sMe(e){if(!e)return;let t=e.match(Vj);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function HO(e,t){let n=sMe(e),r=ym(t);if(!n?.traceId)return{traceId:Ya(),sampleRand:Do()};let i=M4t(n,r);r&&(r.sample_rand=i.toString());let{traceId:s,parentSpanId:o,parentSampled:a}=n;return{traceId:s,parentSpanId:o,sampled:a,dsc:r||{},sampleRand:i}}function xy(e=Ya(),t=Za(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Oy(e=Ya(),t=Za(),n){return`00-${e}-${t}-${n?"01":"00"}`}function M4t(e,t){let n=cl(t?.sample_rand);if(n!==void 0)return n;let r=cl(t?.sample_rate);return r&&e?.parentSampled!==void 0?e.parentSampled?Do()*r:r+Do()*(1-r):Do()}function aX(e,t){let n=Gj(e);return t&&n&&t!==n?(Z.log(`Won't continue trace because org IDs don't match (incoming baggage: ${t}, SDK options: ${n})`),!1):(e.getOptions().strictTraceContinuation||!1)&&(t&&!n||!t&&n)?(Z.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${t}, Sentry client: ${n})`),!1):!0}var Vj,Wj=v(()=>{_r();jO();Sm();BR();ky();by();Vj=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$")});function cMe(e){let{spanId:t,traceId:n}=e.spanContext(),{data:r,op:i,parent_span_id:s,status:o,origin:a,links:c}=vt(e);return{parent_span_id:s,span_id:t,trace_id:n,data:r,op:i,status:o,origin:a,links:c}}function Py(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:vt(e).parent_span_id,s=of(e).scope,o=r?s?.getPropagationContext().propagationSpanId||Za():t;return{parent_span_id:i,span_id:o,trace_id:n}}function Jj(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return xy(t,n,r)}function uMe(e){let{traceId:t,spanId:n}=e.spanContext(),r=af(e);return Oy(t,n,r)}function PE(e){if(e&&e.length>0)return e.map(({context:{spanId:t,traceId:n,traceFlags:r,...i},attributes:s})=>({span_id:t,trace_id:n,sampled:r===Zj,attributes:s,...i}))}function lu(e){return typeof e=="number"?aMe(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?aMe(e.getTime()):Ry()}function aMe(e){return e>9999999999?e/1e3:e}function vt(e){if(U4t(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(L4t(e)){let{attributes:r,startTime:i,name:s,endTime:o,status:a,links:c}=e,u="parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?e.parentSpanContext?.spanId:void 0;return{span_id:t,trace_id:n,data:r,description:s,parent_span_id:u,start_timestamp:lu(i),timestamp:lu(o)||void 0,status:NE(a),op:r[zt],origin:r[At],links:PE(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function L4t(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function U4t(e){return typeof e.getSpanJSON=="function"}function af(e){let{traceFlags:t}=e.spanContext();return t===Zj}function NE(e){if(!(!e||e.code===0))return e.code===1?"ok":e.message||"internal_error"}function zR(e,t){let n=e[cX]||e;zs(t,cX,n),e[qO]?e[qO].add(t):zs(e,qO,new Set([t]))}function Xj(e){let t=new Set;function n(r){if(!t.has(r)&&af(r)){t.add(r);let i=r[qO]?Array.from(r[qO]):[];for(let s of i)n(s)}}return n(e),Array.from(t)}function cs(e){return e[cX]||e}function Kl(){let e=xc(),t=rf(e);return t.getActiveSpan?t.getActiveSpan():kE(Un())}function BO(){oMe||(xs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),oMe=!0)}var Yj,Zj,oMe,qO,cX,Oc=v(()=>{FR();zl();go();Lo();qR();nf();ky();Ay();Wj();_r();Hj();Yj=0,Zj=1,oMe=!1;qO="_sentryChildSpans",cX="_sentryRootSpan"});function dMe(){if(lMe)return;function e(){let t=Kl(),n=t&&cs(t);if(n){let r="internal_error";Fe&&Z.log(`[Tracing] Root span: ${r} -> Global error occurred`),n.setStatus({code:2,message:r})}}e.tag="sentry_tracingErrorCallback",lMe=!0,xCe(e),PCe(e)}var lMe,fMe=v(()=>{Pi();OCe();NCe();_r();Oc();lMe=!1});function Os(e){if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;let t=e||ct()?.getOptions();return!!t&&(t.tracesSampleRate!=null||!!t.tracesSampler)}var zO=v(()=>{go()});function pMe(e){Z.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function GO(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(F4t(n)){if(pm(e.description,n))return Fe&&pMe(e),!0;continue}if(!n.name&&!n.op)continue;let r=n.name?pm(e.description,n.name):!0,i=n.op?e.op&&pm(e.op,n.op):!0;if(r&&i)return Fe&&pMe(e),!0}return!1}function hMe(e,t){let n=t.parent_span_id,r=t.span_id;if(n)for(let i of e)i.parent_span_id===r&&(i.parent_span_id=n)}function F4t(e){return typeof e=="string"||e instanceof RegExp}var uX=v(()=>{Pi();_r();Ty()});var GR,Qj=v(()=>{GR="production"});function $j(e,t){zs(e,mMe,t)}function lX(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||GR,release:n.release,public_key:r,trace_id:e,org_id:Gj(t)};return t.emit("createDsc",i),i}function Fp(e,t){let n=t.getPropagationContext();return n.dsc||lX(n.traceId,e)}function Ps(e){let t=ct();if(!t)return{};let n=cs(e),r=vt(n),i=r.data,s=n.spanContext().traceState,o=s?.get("sentry.sample_rate")??i[sf]??i[$J];function a(h){return(typeof o=="number"||typeof o=="string")&&(h.sample_rate=`${o}`),h}let c=n[mMe];if(c)return a(c);let u=s?.get("sentry.dsc"),l=u&&ym(u);if(l)return a(l);let d=lX(e.spanContext().traceId,t),f=i[Wi],p=r.description;return f!=="url"&&p&&(d.transaction=p),Os()&&(d.sampled=String(af(n)),d.sample_rand=s?.get("sentry.sample_rand")??of(n).scope?.getPropagationContext().sampleRand.toString()),a(d),t.emit("createDsc",d,n),d}var mMe,bm=v(()=>{Qj();go();Lo();jO();Sm();zO();nf();Oc();qR();mMe="_frozenDsc"});var Ny,gMe=v(()=>{ky();Oc();Ny=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Yj}}end(t){}setAttribute(t,n){return this}setAttributes(t){return this}setStatus(t){return this}updateName(t){return this}isRecording(){return!1}addEvent(t,n,r){return this}addLink(t){return this}addLinks(t){return this}recordException(t,n){}}});function cf(e,t=100,n=1/0){try{return dX("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function fX(e,t=3,n=100*1024){let r=cf(e,t);return B4t(r)>n?fX(e,t-1,n):r}function dX(e,t,n=1/0,r=1/0,i=z4t()){let[s,o]=i;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;let a=j4t(e,t);if(!a.startsWith("[object "))return a;if(t.__sentry_skip_normalization__)return t;let c=typeof t.__sentry_override_normalization_depth__=="number"?t.__sentry_override_normalization_depth__:n;if(c===0)return a.replace("object ","");if(s(t))return"[Circular ~]";let u=t;if(u&&typeof u.toJSON=="function")try{let p=u.toJSON();return dX("",p,c-1,r,i)}catch{}let l=Array.isArray(t)?[]:{},d=0,f=Lj(t);for(let p in f){if(!Object.prototype.hasOwnProperty.call(f,p))continue;if(d>=r){l[p]="[MaxProperties ~]";break}let h=f[p];l[p]=dX(p,h,c-1,r,i),d++}return o(t),l}function j4t(e,t){try{if(e==="domain"&&t&&typeof t=="object"&&t._events)return"[Domain]";if(e==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&t===global)return"[Global]";if(typeof window<"u"&&t===window)return"[Window]";if(typeof document<"u"&&t===document)return"[Document]";if(DO(t))return Nj(t);if(UJ(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${CO(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;let n=H4t(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function H4t(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}function q4t(e){return~-encodeURI(e).split(/%..|./).length}function B4t(e){return q4t(JSON.stringify(e))}function z4t(){let e=new WeakSet;function t(r){return e.has(r)?!0:(e.add(r),!1)}function n(r){e.delete(r)}return[t,n]}var eH=v(()=>{Ka();nf();xR()});function Pc(e,t=[]){return[e,t]}function hX(e,t){let[n,r]=e;return[n,[...r,t]]}function VO(e,t){let n=e[1];for(let r of n){let i=r[0].type;if(t(r,i))return!0}return!1}function mX(e,t){return VO(e,(n,r)=>t.includes(r))}function pX(e){let t=yy(qt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function WO(e){let[t,n]=e,r=JSON.stringify(t);function i(s){typeof r=="string"?r=typeof s=="string"?r+s:[pX(r),s]:r.push(typeof s=="string"?pX(s):s)}for(let s of n){let[o,a]=s;if(i(` ${JSON.stringify(o)} -`),typeof a=="string"||a instanceof Uint8Array)i(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(cf(a))}i(c)}}return typeof r=="string"?r:G4t(r)}function G4t(e){let t=e.reduce((i,s)=>i+s.length,0),n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.length;return n}function mX(e){return[{type:"span"},e]}function gX(e){let t=typeof e.data=="string"?fX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function V4t(e){return e in gMe}function $j(e){return V4t(e)?gMe[e]:e}function eH(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function yX(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:al(r)},...i&&{trace:i}}}var gMe,Em=v(()=>{zl();Sm();Qj();Wa();gMe={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"}});function W4t(e,t){if(!t)return e;let n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0},e}function yMe(e,t,n,r){let i=eH(n),s={sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:al(t)}},o="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return Pc(s,[o])}function SMe(e,t,n,r){let i=eH(n),s=e.type&&e.type!=="replay_event"?e.type:"event";W4t(e,n?.sdk);let o=yX(e,i,r,t);return delete e.sdkProcessingMetadata,Pc(o,[[{type:s},e]])}function bMe(e,t){function n(p){return!!p.trace_id&&!!p.public_key}let r=Ps(e[0]),i=t?.getDsn(),s=t?.getOptions().tunnel,o={sent_at:new Date().toISOString(),...n(r)&&{trace:r},...!!s&&i&&{dsn:al(i)}},{beforeSendSpan:a,ignoreSpans:c}=t?.getOptions()||{},u=c?.length?e.filter(p=>!zO(vt(p),c)):e,l=e.length-u.length;l&&t?.recordDroppedEvent("before_send","span",l);let d=a?p=>{let h=vt(p),m=a(h);return m||(qO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(mX(h))}return Pc(o,f)}var SX=v(()=>{bm();Sm();Em();cX();Oc()});function WO(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=vt(e),{spanId:i}=e.spanContext(),s=af(e),o=cs(e),a=o===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${a?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${i}`];if(r&&u.push(`parent ID: ${r}`),!a){let{op:l,description:d}=vt(o);u.push(`root ID: ${o.spanContext().spanId}`),l&&u.push(`root op: ${l}`),d&&u.push(`root description: ${d}`)}Z.log(`${c} +`),typeof a=="string"||a instanceof Uint8Array)i(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(cf(a))}i(c)}}return typeof r=="string"?r:G4t(r)}function G4t(e){let t=e.reduce((i,s)=>i+s.length,0),n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.length;return n}function gX(e){return[{type:"span"},e]}function yX(e){let t=typeof e.data=="string"?pX(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}function V4t(e){return e in yMe}function tH(e){return V4t(e)?yMe[e]:e}function nH(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function SX(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:al(r)},...i&&{trace:i}}}var yMe,Em=v(()=>{zl();Sm();eH();Wa();yMe={sessions:"session",event:"error",client_report:"internal",user_report:"default",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",raw_security:"security",log:"log_item",trace_metric:"metric"}});function W4t(e,t){if(!t)return e;let n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0},e}function SMe(e,t,n,r){let i=nH(n),s={sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:al(t)}},o="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return Pc(s,[o])}function bMe(e,t,n,r){let i=nH(n),s=e.type&&e.type!=="replay_event"?e.type:"event";W4t(e,n?.sdk);let o=SX(e,i,r,t);return delete e.sdkProcessingMetadata,Pc(o,[[{type:s},e]])}function EMe(e,t){function n(p){return!!p.trace_id&&!!p.public_key}let r=Ps(e[0]),i=t?.getDsn(),s=t?.getOptions().tunnel,o={sent_at:new Date().toISOString(),...n(r)&&{trace:r},...!!s&&i&&{dsn:al(i)}},{beforeSendSpan:a,ignoreSpans:c}=t?.getOptions()||{},u=c?.length?e.filter(p=>!GO(vt(p),c)):e,l=e.length-u.length;l&&t?.recordDroppedEvent("before_send","span",l);let d=a?p=>{let h=vt(p),m=a(h);return m||(BO(),h)}:vt,f=[];for(let p of u){let h=d(p);h&&f.push(gX(h))}return Pc(o,f)}var bX=v(()=>{bm();Sm();Em();uX();Oc()});function KO(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=vt(e),{spanId:i}=e.spanContext(),s=af(e),o=cs(e),a=o===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${a?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${i}`];if(r&&u.push(`parent ID: ${r}`),!a){let{op:l,description:d}=vt(o);u.push(`root ID: ${o.spanContext().spanId}`),l&&u.push(`root op: ${l}`),d&&u.push(`root description: ${d}`)}Z.log(`${c} ${u.join(` - `)}`)}function KO(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >"}=vt(e),{spanId:r}=e.spanContext(),s=cs(e)===e,o=`[Tracing] Finishing "${n}" ${s?"root ":""}span "${t}" with ID ${r}`;Z.log(o)}var tH=v(()=>{Pi();_r();Oc()});function CE(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[$J],s=r[eX];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var bX=v(()=>{Lo()});function _Me(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function TMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function K4t(e){return e instanceof VR&&e.isStandaloneSpan()}function Y4t(e){let t=ct();if(!t)return;let n=e[1];if(!n||n.length===0){t.recordDroppedEvent("before_send","span");return}t.sendEnvelope(e)}var EMe,VR,vMe=v(()=>{go();Pi();SX();Lo();_r();ky();Oc();Ay();bm();tH();bX();qR();EMe=1e3,VR=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za(),this._startTime=t.startTimestamp||Ry(),this._links=t.links,this._attributes={},this.setAttributes({[At]:"manual",[zt]:t.op,...t.attributes}),this._name=t.name,t.parentSpanId&&(this._parentSpanId=t.parentSpanId),"sampled"in t&&(this._sampled=t.sampled),t.endTimestamp&&(this._endTime=t.endTimestamp),this._events=[],this._isStandaloneSpan=t.isStandalone,this._endTime&&this._onSpanEnded()}addLink(t){return this._links?this._links.push(t):this._links=[t],this}addLinks(t){return this._links?this._links.push(...t):this._links=t,this}recordException(t,n){}spanContext(){let{_spanId:t,_traceId:n,_sampled:r}=this;return{spanId:t,traceId:n,traceFlags:r?Kj:Wj}}setAttribute(t,n){return n===void 0?delete this._attributes[t]:this._attributes[t]=n,this}setAttributes(t){return Object.keys(t).forEach(n=>this.setAttribute(n,t[n])),this}updateStartTime(t){this._startTime=lu(t)}setStatus(t){return this._status=t,this}updateName(t){return this._name=t,this.setAttribute(Wi,"custom"),this}end(t){this._endTime||(this._endTime=lu(t),KO(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[zt],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:NE(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[jR],exclusive_time:this._attributes[HR],measurements:CE(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:PE(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Z.log("[Tracing] Adding an event to span:",t);let i=_Me(n)?n:r||Ry(),s=_Me(n)?{}:n||{},o={name:t,time:lu(i),attributes:s};return this._events.push(o),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let t=ct();if(t&&t.emit("spanEnd",this),!(this._isStandaloneSpan||this===cs(this)))return;if(this._isStandaloneSpan){this._sampled?Y4t(bMe([this],t)):(Fe&&Z.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),t&&t.recordDroppedEvent("sample_rate","span"));return}let r=this._convertSpanToTransaction();r&&(of(this).scope||Un()).captureEvent(r)}_convertSpanToTransaction(){if(!TMe(vt(this)))return;this._name||(Fe&&Z.warn("Transaction has no name, falling back to ``."),this._name="");let{scope:t,isolationScope:n}=of(this),r=t?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let s=Zj(this).filter(l=>l!==this&&!K4t(l)).map(l=>vt(l)).filter(TMe),o=this._attributes[Wi];delete this._attributes[Wl],s.forEach(l=>{delete l.data[Wl]});let a={contexts:{trace:aMe(this)},spans:s.length>EMe?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,EMe):s,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:t,capturedSpanIsolationScope:n,dynamicSamplingContext:Ps(this)},request:r,...o&&{transaction_info:{source:o}}},c=CE(this._events);return c&&Object.keys(c).length&&(Fe&&Z.log("[Measurements] Adding measurements to transaction event",JSON.stringify(c,void 0,2)),a.measurements=c),a}}});function uf(e,t,n=()=>{},r=()=>{}){let i;try{i=e()}catch(s){throw t(s),n(),s}return Z4t(i,t,n,r)}function Z4t(e,t,n,r){return sa(e)?jj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var nH=v(()=>{YJ();Ka()});function YO(e,t,n){if(!Os(e))return[!1];let r,i;typeof e.tracesSampler=="function"?(i=e.tracesSampler({...t,inheritOrSampleWith:a=>typeof t.parentSampleRate=="number"?t.parentSampleRate:typeof t.parentSampled=="boolean"?Number(t.parentSampled):a}),r=!0):t.parentSampled!==void 0?i=t.parentSampled:typeof e.tracesSampleRate<"u"&&(i=e.tracesSampleRate,r=!0);let s=cl(i);if(s===void 0)return Fe&&Z.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(i)} of type ${JSON.stringify(typeof i)}.`),[!1];if(!s)return Fe&&Z.log(`[Tracing] Discarding transaction because ${typeof e.tracesSampler=="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,s,r];let o=n{Pi();_r();BO();BR()});function lf(e,t){let n=ZO();if(n.startSpan)return n.startSpan(e,t);let r=TX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>AMe(s)(()=>{let u=Un(),l=vX(u,s),f=e.onlyIfParent&&!l?new Ny:_X({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return wE(u,f),uf(()=>t(f),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})},()=>{f.end()})}))}function Uo(e,t){let n=ZO();if(n.startSpanManual)return n.startSpanManual(e,t);let r=TX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>AMe(s)(()=>{let u=Un(),l=vX(u,s),f=e.onlyIfParent&&!l?new Ny:_X({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return wE(u,f),uf(()=>t(f,()=>f.end()),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})})}))}function iH(e){let t=ZO();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=TX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ja(e.scope,o):i!==void 0?o=>WR(i,o):o=>o())(()=>{let o=Un(),a=vX(o,i);return e.onlyIfParent&&!a?new Ny:_X({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function WR(e,t){let n=ZO();return n.withActiveSpan?n.withActiveSpan(e,t):Ja(r=>(wE(r,e||void 0),t(r)))}function KR(e){let t=ZO();return t.suppressTracing?t.suppressTracing(e):Ja(n=>{n.setSDKProcessingMetadata({[rH]:!0});let r=e();return n.setSDKProcessingMetadata({[rH]:void 0}),r})}function _X({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Ny;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ps(o)};Xj(o,a)}return o}let i=vn(),s;if(e&&!n)s=J4t(e,r,t),zR(e,s);else if(e){let o=Ps(e),{traceId:a,spanId:c}=e.spanContext(),u=af(e);s=RMe({traceId:a,parentSpanId:c,...t},r,u),Xj(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=RMe({traceId:o,parentSpanId:c,...t},r,u),a&&Xj(s,a)}return WO(s),UO(s,r,i),s}function TX(e){let n={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){let r={...n};return r.startTimestamp=lu(e.startTime),delete r.startTime,r}return n}function ZO(){let e=xc();return rf(e)}function RMe(e,t,n){let r=ct(),i=r?.getOptions()||{},{name:s=""}=e,o={spanAttributes:{...e.attributes},spanName:s,parentSampled:n};r?.emit("beforeSampling",o,{decision:!1});let a=o.parentSampled??n,c=o.spanAttributes,u=t.getPropagationContext(),[l,d,f]=t.getScopeData().sdkProcessingMetadata[rH]?[!1]:YO(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:cl(u.dsc?.sample_rate)},u.sampleRand),p=new VR({...e,attributes:{[Wi]:"custom",[sf]:d!==void 0&&f?d:void 0,...c},sampled:l});return!l&&r&&(Fe&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),r.recordDroppedEvent("sample_rate","transaction")),r&&r.emit("spanStart",p),p}function J4t(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[rH]?!1:af(e),o=s?new VR({...n,parentSpanId:r,traceId:i,sampled:s}):new Ny({traceId:i});zR(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function vX(e,t){if(t)return t;if(t===null)return;let n=kE(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function AMe(e){return e!==void 0?t=>WR(e,t):t=>t()}var rH,Cy=v(()=>{FR();zl();go();Pi();Lo();_r();nH();BO();BR();Fj();Oc();bm();tH();EX();mMe();vMe();qR();rH="__SENTRY_SUPPRESS_TRACING__"});function _m(e){return new sH(t=>{t(e)})}function YR(e){return new sH((t,n)=>{n(e)})}var RX,wMe,kMe,sH,ZR=v(()=>{Ka();RX=0,wMe=1,kMe=2;sH=class e{constructor(t){this._state=RX,this._handlers=[],this._runExecutor(t)}then(t,n){return new e((r,i)=>{this._handlers.push([!1,s=>{if(!t)r(s);else try{r(t(s))}catch(o){i(o)}},s=>{if(!n)i(s);else try{r(n(s))}catch(o){i(o)}}]),this._executeHandlers()})}catch(t){return this.then(n=>n,t)}finally(t){return new e((n,r)=>{let i,s;return this.then(o=>{s=!1,i=o,t&&t()},o=>{s=!0,i=o,t&&t()}).then(()=>{if(s){r(i);return}n(i)})})}_executeHandlers(){if(this._state===RX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===wMe&&n[1](this._value),this._state===kMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===RX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(wMe,s)},i=s=>{n(kMe,s)};try{t(r,i)}catch(s){i(s)}}}});function IMe(e,t,n,r=0){try{let i=AX(t,n,e,r);return sa(i)?i:_m(i)}catch(i){return YR(i)}}function AX(e,t,n,r){let i=n[r];if(!e||!i)return e;let s=i({...e},t);return Fe&&s===null&&Z.log(`Event processor "${i.id||"?"}" dropped event`),sa(s)?s.then(o=>AX(o,t,n,r+1)):AX(s,t,n,r+1)}var xMe=v(()=>{Pi();_r();Ka();ZR()});function NMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(My&&r.length===OMe&&i.length===PMe)return My;OMe=r.length,PMe=i.length,My={},ME||(ME={});let s=(o,a)=>{for(let c of o){let u=a[c],l=ME?.[c];if(l&&My&&u)My[l[0]]=u,ME&&(ME[c]=[l[0],u]);else if(u){let d=e(c);for(let f=d.length-1;f>=0;f--){let h=d[f]?.filename;if(h&&My&&ME){My[h]=u,ME[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),My}var ME,OMe,PMe,My,CMe=v(()=>{Wa()});function DMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;X4t(e,t),r&&eKt(e,r),tKt(e,n),Q4t(e,i),$4t(e,s)}function MMe(e,t){let{extra:n,tags:r,attributes:i,user:s,contexts:o,level:a,sdkProcessingMetadata:c,breadcrumbs:u,fingerprint:l,eventProcessors:d,attachments:f,propagationContext:p,transactionName:h,span:m}=t;JO(e,"extra",n),JO(e,"tags",r),JO(e,"attributes",i),JO(e,"user",s),JO(e,"contexts",o),e.sdkProcessingMetadata=wy(e.sdkProcessingMetadata,c,2),a&&(e.level=a),h&&(e.transactionName=h),m&&(e.span=m),u.length&&(e.breadcrumbs=[...e.breadcrumbs,...u]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),f.length&&(e.attachments=[...e.attachments,...f]),e.propagationContext={...e.propagationContext,...p}}function JO(e,t,n){e[t]=wy(e[t],n,1)}function oH(e,t){let n=Hj().getScopeData();return e&&MMe(n,e.getScopeData()),t&&MMe(n,t.getScopeData()),n}function X4t(e,t){let{extra:n,tags:r,user:i,contexts:s,level:o,transactionName:a}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(r).length&&(e.tags={...r,...e.tags}),Object.keys(i).length&&(e.user={...i,...e.user}),Object.keys(s).length&&(e.contexts={...s,...e.contexts}),o&&(e.level=o),a&&e.type!=="transaction"&&(e.transaction=a)}function Q4t(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function $4t(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function eKt(e,t){e.contexts={trace:Py(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Ps(t),...e.sdkProcessingMetadata};let n=cs(t),r=vt(n).description;r&&!e.transaction&&e.type==="transaction"&&(e.transaction=r)}function tKt(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}var wX=v(()=>{go();bm();Uj();Oc()});function LMe(e,t,n,r,i,s){let{normalizeDepth:o=3,normalizeMaxBreadth:a=1e3}=e,c={...t,event_id:t.event_id||n.event_id||mo(),timestamp:t.timestamp||hm()},u=n.integrations||e.integrations.map(y=>y.name);nKt(c,e),sKt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&rKt(c,e.stackParser);let l=aKt(r,n.captureContext);n.mechanism&&DR(c,n.mechanism);let d=i?i.getEventProcessors():[],f=oH(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),DMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?_m(c):IMe(h,c,n)).then(y=>(y&&iKt(y),typeof o=="number"&&o>0?oKt(y,o,a):y))}function nKt(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||GR,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=Ey(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=Ey(a.value,s))})}function rKt(e,t){let n=NMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function iKt(e){let t={};if(e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.debug_id&&(i.abs_path?t[i.abs_path]=i.debug_id:i.filename&&(t[i.filename]=i.debug_id),delete i.debug_id)})}),Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];let n=e.debug_meta.images;Object.entries(t).forEach(([r,i])=>{n.push({type:"sourcemap",code_file:r,debug_id:i})})}function sKt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function oKt(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(i=>({...i,...i.data&&{data:cf(i.data,t,n)}}))},...e.user&&{user:cf(e.user,t,n)},...e.contexts&&{contexts:cf(e.contexts,t,n)},...e.extra&&{extra:cf(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=cf(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(i=>({...i,...i.data&&{data:cf(i.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=cf(e.contexts.flags,3,n)),r}function aKt(e,t){if(!t)return e;let n=e?e.clone():new uu;return n.update(t),n}function UMe(e){if(e)return cKt(e)?{captureContext:e}:lKt(e)?{captureContext:e}:e}function cKt(e){return e instanceof uu||typeof e=="function"}function lKt(e){return Object.keys(e).some(t=>uKt.includes(t))}var uKt,kX=v(()=>{Jj();xMe();DO();CMe();Lp();Qj();wX();Ty();ZR();Ay();uKt=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Un().captureException(e,UMe(t))}function aH(e,t){return Un().captureEvent(e,t)}async function JR(e){let t=ct();return t?t.flush(e):(Fe&&Z.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function cH(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function uH(e){let t=vn(),{user:n}=oH(t,Un()),{userAgent:r}=qt.navigator||{},i=BCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&mm(s,{status:"exited"}),XO(),t.setSession(i),i}function XO(){let e=vn(),n=Un().getSession()||e.getSession();n&&zCe(n),dKt(),e.setSession()}function dKt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var ul=v(()=>{go();Pi();Lj();_r();kX();wX();Wa()});function pKt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function hKt(e){return`${pKt(e)}${e.projectId}/envelope/`}function mKt(e,t){let n={sentry_version:fKt};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function FMe(e,t,n){return t||`${hKt(e)}?${mKt(e,n)}`}var fKt,jMe=v(()=>{fKt="7"});function gKt(e){let t={};return e.forEach(n=>{let{name:r}=n,i=t[r];i&&!i.isDefaultInstance&&n.isDefaultInstance||(t[r]=n)}),Object.values(t)}function xX(e){let t=e.defaultIntegrations||[],n=e.integrations;t.forEach(i=>{i.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...t,...n];else if(typeof n=="function"){let i=n(t);r=Array.isArray(i)?i:[i]}else r=t;return gKt(r)}function HMe(e,t){let n={};return t.forEach(r=>{r&&PX(e,r,n)}),n}function OX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function PX(e,t,n){if(n[t.name]){Fe&&Z.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,!IX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),IX.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){let r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(i,s)=>r(i,s,e))}if(typeof t.processEvent=="function"){let r=t.processEvent.bind(t),i=Object.assign((s,o)=>r(s,o,e),{id:t.name});e.addEventProcessor(i)}Fe&&Z.log(`Integration installed: ${t.name}`)}var IX,NX=v(()=>{Pi();_r();IX=[]});function qMe(e,t){return t?Ja(t,()=>{let n=Kl(),r=n?Py(n):IE(t);return[n?Ps(n):Fp(e,t),r]}):[void 0,void 0]}var BMe=v(()=>{go();bm();Oc()});function yKt(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function zMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=al(r)),Pc(i,[yKt(e)])}var GMe=v(()=>{Sm();Em()});function XR(e,t){let n=t??SKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=zMe(n,r._metadata,r.tunnel,e.getDsn());VMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function SKt(e){return VMe().get(e)}function VMe(){return tf("clientToLogBufferMap",()=>new WeakMap)}var CX=v(()=>{zl();GMe()});function bKt(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function WMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=al(r)),Pc(i,[bKt(e)])}var KMe=v(()=>{Sm();Em()});function YMe(e,t){let n=t??EKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=WMe(n,r._metadata,r.tunnel,e.getDsn());ZMe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function EKt(e){return ZMe().get(e)}function ZMe(){return tf("clientToMetricBufferMap",()=>new WeakMap)}var JMe=v(()=>{zl();KMe()});function lH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var MX=v(()=>{});function QR(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return _m(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>lH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var QO,dH=v(()=>{ZR();MX();QO=Symbol.for("SentryBufferFullError")});function TKt(e,t=Gl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?_Kt:r-t}function vKt(e,t){return e[t]||e.all||0}function XMe(e,t,n=Gl()){return vKt(e,t)>n}function QMe(e,{statusCode:t,headers:n},r=Gl()){let i={...e},s=n?.["x-sentry-rate-limits"],o=n?.["retry-after"];if(s)for(let a of s.trim().split(",")){let[c,u,,,l]=a.split(":",5),d=parseInt(c,10),f=(isNaN(d)?60:d)*1e3;if(!u)i.all=r+f;else for(let p of u.split(";"))p==="metric_bucket"?(!l||l.split(";").includes("custom"))&&(i[p]=r+f):i[p]=r+f}else o?i.all=r+TKt(o,r):t===429&&(i.all=r+60*1e3);return i}var _Kt,$Me=v(()=>{by();_Kt=60*1e3});function eP(e,t,n=QR(e.bufferSize||$O)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(GO(o,(d,f)=>{let p=$j(f);XMe(r,p)?e.recordDroppedEvent("ratelimit_backoff",p):a.push(d)}),a.length===0)return Promise.resolve({});let c=Pc(o[0],a),u=d=>{if(hX(c,["client_report"])){Fe&&Z.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}GO(c,(f,p)=>{e.recordDroppedEvent(d,$j(p))})},l=()=>t({body:VO(c)}).then(d=>d.statusCode===413?(Fe&&Z.error("Sentry responded with status code 413. Envelope was discarded due to exceeding size limits."),u("send_error"),d):(Fe&&d.statusCode!==void 0&&(d.statusCode<200||d.statusCode>=300)&&Z.warn(`Sentry responded with status code ${d.statusCode} to sent event.`),r=QMe(r,d),d),d=>{throw u("network_error"),Fe&&Z.error("Encountered error running transport request:",d),d});return n.add(l).then(d=>d,d=>{if(d===QO)return Fe&&Z.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var $O,fH=v(()=>{Pi();_r();Em();dH();$Me();$O=64});function eDe(e,t,n){let r=[{type:"client_report"},{timestamp:n||hm(),discarded_events:e}];return Pc(t?{dsn:t}:{},[r])}var tDe=v(()=>{Em();Ay()});function pH(e){let t=[];e.message&&t.push(e.message);try{let n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}var DX=v(()=>{});function nDe(e){let{trace_id:t,parent_span_id:n,span_id:r,status:i,origin:s,data:o,op:a}=e.contexts?.trace??{};return{data:o??{},description:e.transaction,op:a,parent_span_id:n,span_id:r??"",start_timestamp:e.start_timestamp??0,status:i,timestamp:e.timestamp,trace_id:t??"",origin:s,profile_id:o?.[jR],exclusive_time:o?.[HR],measurements:e.measurements,is_segment:!0}}function rDe(e){return{type:"transaction",timestamp:e.timestamp,start_timestamp:e.start_timestamp,transaction:e.description,contexts:{trace:{trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,op:e.op,status:e.status,origin:e.origin,data:{...e.data,...e.profile_id&&{[jR]:e.profile_id},...e.exclusive_time&&{[HR]:e.exclusive_time}}}},measurements:e.measurements}}var iDe=v(()=>{Lo()});function hH(e){return{message:e,[fDe]:!0}}function LX(e){return{message:e,[pDe]:!0}}function aDe(e){return!!e&&typeof e=="object"&&fDe in e}function cDe(e){return!!e&&typeof e=="object"&&pDe in e}function uDe(e,t,n,r,i){let s=0,o,a=!1;e.on(n,()=>{s=0,clearTimeout(o),a=!1}),e.on(t,c=>{s+=r(c),s>=8e5?i(e):a||(a=!0,o=lH(setTimeout(()=>{i(e)},RKt)))}),e.on("flush",()=>{i(e)})}function lDe(e){return e==="replay_event"?"replay":e||"error"}function AKt(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!fm(r)&&r!==null)throw hH(n);return r},r=>{throw hH(`${t} rejected with ${r}`)});if(!fm(e)&&e!==null)throw hH(n);return e}function wKt(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(UX(c)&&i)return i(c,r);if(hDe(c)){if(o||a){let u=nDe(c);if(a?.length&&zO(u,a))return null;if(o){let l=o(u);l?c=wy(n,rDe(l)):qO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&zO(p,a)){pMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(qO(),l.push(p))}else l.push(p)}let f=c.spans.length-l.length;f&&e.recordDroppedEvent("before_send","span",f),c.spans=l}}if(s){if(c.spans){let u=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:u}}return s(c,r)}}return c}function UX(e){return e.type===void 0}function hDe(e){return e.type==="transaction"}function kKt(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+mDe(e.attributes)}function IKt(e){let t=0;return e.message&&(t+=e.message.length*2),t+mDe(e.attributes)}function mDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*dDe(n[0]):CO(n)?t+=dDe(n):t+=100}),t}function dDe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var sDe,oDe,fDe,pDe,RKt,mH,gDe=v(()=>{jMe();Jj();go();Pi();SX();NX();CX();JMe();Lj();bm();fH();tDe();_r();Sm();Em();DX();Ka();Uj();Lp();BR();kX();dH();by();cX();Oc();ZR();MX();iDe();sDe="Not capturing exception because it's already been captured.",oDe="Discarded session because of missing or non-string release",fDe=Symbol.for("SentryInternalError"),pDe=Symbol.for("SentryDoNotSendEventError"),RKt=5e3;mH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=QR(t.transportOptions?.bufferSize??$O),t.dsn?this._dsn=rMe(t.dsn):Fe&&Z.warn("No DSN provided, client will not send events."),this._dsn){let r=FMe(this._dsn,t.tunnel,t._metadata?t._metadata.sdk:void 0);this._transport=t.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...t.transportOptions,url:r})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&uDe(this,"afterCaptureLog","flushLogs",IKt,XR),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&uDe(this,"afterCaptureMetric","flushMetrics",kKt,YMe)}captureException(t,n,r){let i=mo();if(Dj(t))return Fe&&Z.log(sDe),i;let s={event_id:i,...n};return this._process(()=>this.eventFromException(t,s).then(o=>this._captureEvent(o,s,r)).then(o=>o),"error"),s.event_id}captureMessage(t,n,r,i){let s={event_id:mo(),...r},o=CR(t)?t:String(t),a=CO(t),c=a?this.eventFromMessage(o,n,s):this.eventFromException(t,s);return this._process(()=>c.then(u=>this._captureEvent(u,s,i)),a?"unknown":"error"),s.event_id}captureEvent(t,n,r){let i=mo();if(n?.originalException&&Dj(n.originalException))return Fe&&Z.log(sDe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=lDe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),mm(t,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(t){let n=this._transport;if(!n)return!0;this.emit("flush");let r=await this._isClientDoneProcessing(t),i=await n.flush(t);return r&&i}async close(t){XR(this);let n=await this.flush(t);return this.getOptions().enabled=!1,this.emit("close"),n}getEventProcessors(){return this._eventProcessors}addEventProcessor(t){this._eventProcessors.push(t)}init(){(this._isEnabled()||this._options.integrations.some(({name:t})=>t.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(t){return this._integrations[t]}addIntegration(t){let n=this._integrations[t.name];PX(this,t,this._integrations),n||OX(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=SMe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=pX(r,gX(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=GR}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Fe&&Z.warn(oDe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Z.warn(oDe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=yMe(t,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(i)}recordDroppedEvent(t,n,r=1){if(this._options.sendClientReports){let i=`${t}:${n}`;Fe&&Z.log(`Recording outcome: "${i}"${r>1?` (${r} times)`:""}`),this._outcomes[i]=(this._outcomes[i]||0)+r}}on(t,n){let r=this._hooks[t]=this._hooks[t]||new Set,i=(...s)=>n(...s);return r.add(i),()=>{r.delete(i)}}emit(t,...n){let r=this._hooks[t];r&&r.forEach(i=>i(...n))}async sendEnvelope(t){if(this.emit("beforeEnvelope",t),this._isEnabled()&&this._transport)try{return await this._transport.send(t)}catch(n){return Fe&&Z.error("Error while sending envelope:",n),{}}return Fe&&Z.error("Transport disabled"),{}}dispose(){}_setupIntegrations(){let{integrations:t}=this._options;this._integrations=HMe(this,t),OX(this,t)}_updateSessionFromEvent(t,n){let r=n.level==="fatal",i=!1,s=n.exception?.values;if(s){i=!0,r=!1;for(let c of s)if(c.mechanism?.handled===!1){r=!0;break}}let o=t.status==="ok";(o&&t.errors===0||o&&r)&&(mm(t,{...r&&{status:"crashed"},errors:t.errors||Number(i||r)}),this.captureSession(t))}async _isClientDoneProcessing(t){let n=0;for(;!t||nsetTimeout(r,1)),!this._numProcessing)return!0;n++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(t,n,r,i){let s=this.getOptions(),o=Object.keys(this._integrations);return!n.integrations&&o?.length&&(n.integrations=o),this.emit("preprocessEvent",t,n),t.type||i.setLastEventId(t.event_id||n.event_id),LMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...IE(r)},...a.contexts};let c=Fp(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Un(),i=vn()){return Fe&&UX(t)&&Z.log(`Captured error event \`${pH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(cDe(s)?Z.log(s.message):aDe(s)?Z.warn(s.message):Z.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=hDe(t),c=UX(t),l=`before send for type \`${t.type||"error"}\``,d=typeof o>"u"?void 0:cl(o);if(c&&typeof d=="number"&&Do()>d)return this.recordDroppedEvent("sample_rate","error"),YR(LX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=lDe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),LX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=wKt(this,s,p,n);return AKt(m,l)}).then(p=>{if(p===null){if(this.recordDroppedEvent("before_send",f),a){let y=1+(t.spans||[]).length;this.recordDroppedEvent("before_send","span",y)}throw LX(`${l} returned \`null\`, will not send event.`)}let h=r.getSession()||i.getSession();if(c&&h&&this._updateSessionFromEvent(h,p),a){let g=p.sdkProcessingMetadata?.spanCountBeforeProcessing||0,y=p.spans?p.spans.length:0,b=g-y;b>0&&this.recordDroppedEvent("before_send","span",b)}let m=p.transaction_info;if(a&&m&&p.transaction!==t.transaction){let g="custom";p.transaction_info={...m,source:g}}return this.sendEvent(p,n),p}).then(null,p=>{throw cDe(p)||aDe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),hH(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===QO&&this.recordDroppedEvent("queue_overflow",n),r))}_clearOutcomes(){let t=this._outcomes;return this._outcomes={},Object.entries(t).map(([n,r])=>{let[i,s]=n.split(":");return{reason:i,category:s,quantity:r}})}_flushOutcomes(){Fe&&Z.log("Flushing outcomes...");let t=this._clearOutcomes();if(t.length===0){Fe&&Z.log("No outcomes to send");return}if(!this._dsn){Fe&&Z.log("No dsn provided, will not send outcomes");return}Fe&&Z.log("Sending outcomes:",t);let n=eDe(t,this._options.tunnel&&al(this._dsn));this.sendEnvelope(n)}}});function yDe(e,t,n,r,i){let s={sent_at:new Date().toISOString()};n?.sdk&&(s.sdk={name:n.sdk.name,version:n.sdk.version}),r&&i&&(s.dsn=al(i)),t&&(s.trace=t);let o=xKt(e);return Pc(s,[o])}function xKt(e){return[{type:"check_in"},e]}var SDe=v(()=>{Sm();Em()});function bDe(e){let t=e._metadata?.sdk,n=t?.name&&t?.version?`${t?.name}/${t?.version}`:void 0;e.transportOptions={...e.transportOptions,headers:{...n&&{"user-agent":n},...e.transportOptions?.headers}}}var EDe=v(()=>{});function _De(e,t){return e(t.stack||"",1)}function OKt(e){return Mp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function PKt(e){return OKt(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function FX(e,t){let n={type:t.name||t.constructor.name,value:PKt(t)},r=_De(e,t);return r.length&&(n.stacktrace={frames:r}),n}function NKt(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function CKt(e){if("name"in e&&typeof e.name=="string"){let r=`'${e.name}' captured as exception`;return"message"in e&&typeof e.message=="string"&&(r+=` with message '${e.message}'`),r}else if("message"in e&&typeof e.message=="string")return e.message;let t=jJ(e);if(NJ(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=MKt(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function MKt(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function DKt(e,t,n,r){if(Mp(n))return[n,void 0];if(t.synthetic=!0,fm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:dX(n,s)},a=NKt(n);if(a)return[a,o];let c=CKt(n),u=r?.syntheticException||new Error(c);return u.message=c,[u,o]}let i=r?.syntheticException||new Error(n);return i.message=`${n}`,[i,void 0]}function TDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=DKt(e,s,n,r),c={exception:{values:[FX(t,o)]}};return a&&(c.extra=a),GJ(c,void 0,void 0),DR(c,s),{...c,event_id:r?.event_id}}function vDe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=_De(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},DR(s,{synthetic:!0}))}if(CR(t)){let{__sentry_template_string__:o,__sentry_template_values__:a}=t;return s.logentry={message:o,params:a},s}return s.message=t,s}var jX=v(()=>{Ka();Lp();Qj();nf()});function RDe(e){let t=vn().getScopeData().sdkProcessingMetadata.requestSession;if(t){let n=e?.mechanism?.handled??!0;n&&t.status!=="crashed"?t.status="errored":n||(t.status="crashed")}}var tP,ADe=v(()=>{SDe();gDe();go();Pi();dMe();_r();Lp();fH();EDe();jX();dH();ZR();BMe();tP=class extends mH{constructor(t){lMe(),bDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=TDe(this,this._options.stackParser,t,n);return r.level="error",_m(r)}eventFromMessage(t,n="info",r){return _m(vDe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return RDe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&RDe(n),super.captureEvent(t,n,r)}captureCheckIn(t,n,r){let i="checkInId"in t&&t.checkInId?t.checkInId:mo();if(!this._isEnabled())return Fe&&Z.warn("SDK not enabled, will not capture check-in."),i;let s=this.getOptions(),{release:o,environment:a,tunnel:c}=s,u={check_in_id:i,monitor_slug:t.monitorSlug,status:t.status,release:o,environment:a};"duration"in t&&(u.duration=t.duration),n&&(u.monitor_config={schedule:n.schedule,checkin_margin:n.checkinMargin,max_runtime:n.maxRuntime,timezone:n.timezone,failure_issue_threshold:n.failureIssueThreshold,recovery_threshold:n.recoveryThreshold});let[l,d]=qMe(this,r);d&&(u.contexts={trace:d});let f=yDe(u,l,this.getSdkMetadata(),c,this.getDsn());return Fe&&Z.log("Sending checkin:",t.monitorSlug,t.status),this.sendEnvelope(f),i}dispose(){Fe&&Z.log("Disposing client...");for(let t of Object.keys(this._hooks))this._hooks[t]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=QR($O)}_prepareEvent(t,n,r,i){return this._options.platform&&(t.platform=t.platform||this._options.platform),this._options.runtime&&(t.contexts={...t.contexts,runtime:t.contexts?.runtime||this._options.runtime}),this._options.serverName&&(t.server_name=t.server_name||this._options.serverName),super._prepareEvent(t,n,r,i)}_setUpMetricsProcessing(){this.on("processMetric",t=>{this._options.serverName&&(t.attributes={"server.address":this._options.serverName,...t.attributes})})}}});function qX(e){e.forEach(t=>{HX.add(t),Fe&&Z.log(`AI provider "${t}" wrapping will be skipped`)})}function DE(e){return HX.has(e)}function BX(){HX.clear(),Fe&&Z.log("Cleared AI provider skip registrations")}var HX,wDe=v(()=>{Pi();_r();HX=new Set});function $R(e,t){let n=String(e).toLowerCase();return LKt.has(n)?!1:UKt.has(n)?!0:t?.strict?null:!!e}var LKt,UKt,kDe=v(()=>{LKt=new Set(["false","f","n","no","off","0"]),UKt=new Set(["true","t","y","yes","on","1"])});function zX(e){return"isRelative"in e}function nP(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?FKt:void 0);try{if("canParse"in URL&&!URL.canParse(e,r))return;let i=new URL(e,r);return n?{isRelative:n,pathname:i.pathname,search:i.search,hash:i.hash}:i}catch{}}function IDe(e){if(zX(e))return e.pathname;let t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}function jKt(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?IDe(e):e.pathname:"/");return`${i} ${s}`}function GX(e,t,n,r,i){let s={[At]:n,[Wi]:"url"};return i&&(s[t==="server"?"http.route":"url.template"]=i,s[Wi]="route"),r?.method&&(s[iX]=r.method.toUpperCase()),e&&(e.search&&(s["url.query"]=e.search),e.hash&&(s["url.fragment"]=e.hash),e.pathname&&(s["url.path"]=e.pathname,e.pathname==="/"&&(s[Wi]="route")),zX(e)||(s[Iy]=e.href,e.port&&(s["url.port"]=e.port),e.protocol&&(s["url.scheme"]=e.protocol),e.hostname&&(s[t==="server"?"server.address":"url.domain"]=e.hostname))),[jKt(e,t,r,i),s]}function Dy(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function Tm(e){return e.split(/[?#]/,1)[0]}function Ly(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function eA(e,t=!0){if(e.startsWith("data:")){let n=e.match(/^data:([^;,]+)/),r=n?n[1]:"text/plain",i=e.includes(";base64,"),s=e.indexOf(","),o="";if(t&&s!==-1){let a=e.slice(s+1);o=a.length>10?`${a.slice(0,10)}... [truncated]`:a}return`data:${r}${i?",base64":""}${o?`,${o}`:""}`}return e}var FKt,xDe=v(()=>{Lo();FKt="thismessage:/"});function LE(e,t,n=[t],r="npm"){let i=(e._metadata=e._metadata||{}).sdk=e._metadata.sdk||{};i.name||(i.name=`sentry.javascript.${t}`,i.packages=n.map(s=>({name:`${r}:@sentry/${s}`,version:Nn})),i.version=Nn)}var ODe=v(()=>{kj()});function tA(e={}){let t=e.client||ct();if(!cH()||!t)return{};let n=xc(),r=rf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Un(),s=e.span||Kl();if(!s&&XJ())return{};let o=s?Yj(s):HKt(i),a=s?Ps(s):Fp(t,i),c=xE(a);if(!zj.test(o))return Z.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let l={"sentry-trace":o,baggage:c};return e.propagateTraceparent&&(l.traceparent=s?cMe(s):qKt(i)),l}function HKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return xy(t,r,n)}function qKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Oy(t,r,n)}var PDe=v(()=>{FR();zl();go();ul();_r();Oc();bm();FO();Gj()});function UE(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Z.log(NDe,e),r;let i=_y(e,t);return n?.set(e,i),Fe&&!i&&Z.log(NDe,e),i}var NDe,CDe=v(()=>{Pi();_r();Ty();NDe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function VX(e,t,n){let r,i,s,o=n?.maxWait?Math.max(n.maxWait,t):0,a=n?.setTimeoutImpl||setTimeout;function c(){return u(),r=e(),r}function u(){i!==void 0&&clearTimeout(i),s!==void 0&&clearTimeout(s),i=s=void 0}function l(){return i!==void 0||s!==void 0?c():r}function d(){return i&&clearTimeout(i),i=a(c,t),o&&s===void 0&&(s=a(c,o)),r}return d.cancel=u,d.flush=l,d}var MDe=v(()=>{});function FDe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function rP(e){let t=e.headers||{},r=(typeof t["x-forwarded-host"]=="string"?t["x-forwarded-host"]:void 0)||(typeof t.host=="string"?t.host:void 0),s=(typeof t["x-forwarded-proto"]=="string"?t["x-forwarded-proto"]:void 0)||e.protocol||(e.socket?.encrypted?"https":"http"),o=e.url||"",a=BKt({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:jDe(o),headers:FDe(t),cookies:u,data:c}}function BKt({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function gH(e,t=!1,n="request"){let r={};try{Object.entries(e).forEach(([i,s])=>{if(s==null)return;let o=i.toLowerCase();if((o==="cookie"||o==="set-cookie")&&typeof s=="string"&&s!==""){let c=o==="set-cookie",u=s.indexOf(";"),l=c&&u!==-1?s.substring(0,u):s,d=c?[l]:l.split("; ");for(let f of d){let p=f.indexOf("="),h=p!==-1?f.substring(0,p):f,m=p!==-1?f.substring(p+1):"",g=h.toLowerCase();UDe(r,o,g,m,t,n)}}else UDe(r,o,"",s,t,n)})}catch{}return r}function LDe(e){return e.replace(/-/g,"_")}function UDe(e,t,n,r,i,s){let o=GKt(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${LDe(t)}${n?`.${LDe(n)}`:""}`;e[a]=o}function GKt(e,t,n){if(n?DDe.some(i=>e.includes(i)):[...zKt,...DDe].some(i=>e.includes(i)))return"[Filtered]";if(Array.isArray(t))return t.map(i=>i!=null?String(i):i).join(";");if(typeof t=="string")return t}function jDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var DDe,zKt,HDe=v(()=>{DDe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],zKt=["x-forwarded-","-user"]});function Yl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=VKt}=n.getOptions();if(s<=0)return;let a={timestamp:hm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var VKt,WX=v(()=>{go();_r();Ay();VKt=100});var qDe,WKt,BDe,KKt,yH,zDe=v(()=>{go();nf();WKt="FunctionToString",BDe=new WeakMap,KKt=(()=>({name:WKt,setupOnce(){qDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=FJ(this),n=BDe.has(ct())&&t!==void 0?t:this;return qDe.apply(n,e)}}catch{}},setup(e){BDe.set(e,!0)}})),yH=KKt});function GDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:YKt],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function JKt(e,t){if(e.type){if(e.type==="transaction"&&QKt(e,t.ignoreTransactions))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. + `)}`)}function YO(e){if(!Fe)return;let{description:t="< unknown name >",op:n="< unknown op >"}=vt(e),{spanId:r}=e.spanContext(),s=cs(e)===e,o=`[Tracing] Finishing "${n}" ${s?"root ":""}span "${t}" with ID ${r}`;Z.log(o)}var rH=v(()=>{Pi();_r();Oc()});function CE(e){if(!e||e.length===0)return;let t={};return e.forEach(n=>{let r=n.attributes||{},i=r[eX],s=r[tX];typeof i=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:i})}),t}var EX=v(()=>{Lo()});function TMe(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function vMe(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function K4t(e){return e instanceof VR&&e.isStandaloneSpan()}function Y4t(e){let t=ct();if(!t)return;let n=e[1];if(!n||n.length===0){t.recordDroppedEvent("before_send","span");return}t.sendEnvelope(e)}var _Me,VR,RMe=v(()=>{go();Pi();bX();Lo();_r();ky();Oc();Ay();bm();rH();EX();qR();_Me=1e3,VR=class{constructor(t={}){this._traceId=t.traceId||Ya(),this._spanId=t.spanId||Za(),this._startTime=t.startTimestamp||Ry(),this._links=t.links,this._attributes={},this.setAttributes({[At]:"manual",[zt]:t.op,...t.attributes}),this._name=t.name,t.parentSpanId&&(this._parentSpanId=t.parentSpanId),"sampled"in t&&(this._sampled=t.sampled),t.endTimestamp&&(this._endTime=t.endTimestamp),this._events=[],this._isStandaloneSpan=t.isStandalone,this._endTime&&this._onSpanEnded()}addLink(t){return this._links?this._links.push(t):this._links=[t],this}addLinks(t){return this._links?this._links.push(...t):this._links=t,this}recordException(t,n){}spanContext(){let{_spanId:t,_traceId:n,_sampled:r}=this;return{spanId:t,traceId:n,traceFlags:r?Zj:Yj}}setAttribute(t,n){return n===void 0?delete this._attributes[t]:this._attributes[t]=n,this}setAttributes(t){return Object.keys(t).forEach(n=>this.setAttribute(n,t[n])),this}updateStartTime(t){this._startTime=lu(t)}setStatus(t){return this._status=t,this}updateName(t){return this._name=t,this.setAttribute(Wi,"custom"),this}end(t){this._endTime||(this._endTime=lu(t),YO(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[zt],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:NE(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[At],profile_id:this._attributes[jR],exclusive_time:this._attributes[HR],measurements:CE(this._events),is_segment:this._isStandaloneSpan&&cs(this)===this||void 0,segment_id:this._isStandaloneSpan?cs(this).spanContext().spanId:void 0,links:PE(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Fe&&Z.log("[Tracing] Adding an event to span:",t);let i=TMe(n)?n:r||Ry(),s=TMe(n)?{}:n||{},o={name:t,time:lu(i),attributes:s};return this._events.push(o),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){let t=ct();if(t&&t.emit("spanEnd",this),!(this._isStandaloneSpan||this===cs(this)))return;if(this._isStandaloneSpan){this._sampled?Y4t(EMe([this],t)):(Fe&&Z.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),t&&t.recordDroppedEvent("sample_rate","span"));return}let r=this._convertSpanToTransaction();r&&(of(this).scope||Un()).captureEvent(r)}_convertSpanToTransaction(){if(!vMe(vt(this)))return;this._name||(Fe&&Z.warn("Transaction has no name, falling back to ``."),this._name="");let{scope:t,isolationScope:n}=of(this),r=t?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(this._sampled!==!0)return;let s=Xj(this).filter(l=>l!==this&&!K4t(l)).map(l=>vt(l)).filter(vMe),o=this._attributes[Wi];delete this._attributes[Wl],s.forEach(l=>{delete l.data[Wl]});let a={contexts:{trace:cMe(this)},spans:s.length>_Me?s.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,_Me):s,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:t,capturedSpanIsolationScope:n,dynamicSamplingContext:Ps(this)},request:r,...o&&{transaction_info:{source:o}}},c=CE(this._events);return c&&Object.keys(c).length&&(Fe&&Z.log("[Measurements] Adding measurements to transaction event",JSON.stringify(c,void 0,2)),a.measurements=c),a}}});function uf(e,t,n=()=>{},r=()=>{}){let i;try{i=e()}catch(s){throw t(s),n(),s}return Z4t(i,t,n,r)}function Z4t(e,t,n,r){return sa(e)?qj(e,i=>{n(),r(i)},i=>{t(i),n()}):(n(),r(e),e)}var iH=v(()=>{ZJ();Ka()});function ZO(e,t,n){if(!Os(e))return[!1];let r,i;typeof e.tracesSampler=="function"?(i=e.tracesSampler({...t,inheritOrSampleWith:a=>typeof t.parentSampleRate=="number"?t.parentSampleRate:typeof t.parentSampled=="boolean"?Number(t.parentSampled):a}),r=!0):t.parentSampled!==void 0?i=t.parentSampled:typeof e.tracesSampleRate<"u"&&(i=e.tracesSampleRate,r=!0);let s=cl(i);if(s===void 0)return Fe&&Z.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(i)} of type ${JSON.stringify(typeof i)}.`),[!1];if(!s)return Fe&&Z.log(`[Tracing] Discarding transaction because ${typeof e.tracesSampler=="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,s,r];let o=n{Pi();_r();zO();BR()});function lf(e,t){let n=JO();if(n.startSpan)return n.startSpan(e,t);let r=vX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>wMe(s)(()=>{let u=Un(),l=RX(u,s),f=e.onlyIfParent&&!l?new Ny:TX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return wE(u,f),uf(()=>t(f),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})},()=>{f.end()})}))}function Uo(e,t){let n=JO();if(n.startSpanManual)return n.startSpanManual(e,t);let r=vX(e),{forceTransaction:i,parentSpan:s,scope:o}=e,a=o?.clone();return Ja(a,()=>wMe(s)(()=>{let u=Un(),l=RX(u,s),f=e.onlyIfParent&&!l?new Ny:TX({parentSpan:l,spanArguments:r,forceTransaction:i,scope:u});return wE(u,f),uf(()=>t(f,()=>f.end()),()=>{let{status:p}=vt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:2,message:"internal_error"})})}))}function oH(e){let t=JO();if(t.startInactiveSpan)return t.startInactiveSpan(e);let n=vX(e),{forceTransaction:r,parentSpan:i}=e;return(e.scope?o=>Ja(e.scope,o):i!==void 0?o=>WR(i,o):o=>o())(()=>{let o=Un(),a=RX(o,i);return e.onlyIfParent&&!a?new Ny:TX({parentSpan:a,spanArguments:n,forceTransaction:r,scope:o})})}function WR(e,t){let n=JO();return n.withActiveSpan?n.withActiveSpan(e,t):Ja(r=>(wE(r,e||void 0),t(r)))}function KR(e){let t=JO();return t.suppressTracing?t.suppressTracing(e):Ja(n=>{n.setSDKProcessingMetadata({[sH]:!0});let r=e();return n.setSDKProcessingMetadata({[sH]:void 0}),r})}function TX({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!Os()){let o=new Ny;if(n||!e){let a={sampled:"false",sample_rate:"0",transaction:t.name,...Ps(o)};$j(o,a)}return o}let i=vn(),s;if(e&&!n)s=J4t(e,r,t),zR(e,s);else if(e){let o=Ps(e),{traceId:a,spanId:c}=e.spanContext(),u=af(e);s=AMe({traceId:a,parentSpanId:c,...t},r,u),$j(s,o)}else{let{traceId:o,dsc:a,parentSpanId:c,sampled:u}={...i.getPropagationContext(),...r.getPropagationContext()};s=AMe({traceId:o,parentSpanId:c,...t},r,u),a&&$j(s,a)}return KO(s),FO(s,r,i),s}function vX(e){let n={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){let r={...n};return r.startTimestamp=lu(e.startTime),delete r.startTime,r}return n}function JO(){let e=xc();return rf(e)}function AMe(e,t,n){let r=ct(),i=r?.getOptions()||{},{name:s=""}=e,o={spanAttributes:{...e.attributes},spanName:s,parentSampled:n};r?.emit("beforeSampling",o,{decision:!1});let a=o.parentSampled??n,c=o.spanAttributes,u=t.getPropagationContext(),[l,d,f]=t.getScopeData().sdkProcessingMetadata[sH]?[!1]:ZO(i,{name:s,parentSampled:a,attributes:c,parentSampleRate:cl(u.dsc?.sample_rate)},u.sampleRand),p=new VR({...e,attributes:{[Wi]:"custom",[sf]:d!==void 0&&f?d:void 0,...c},sampled:l});return!l&&r&&(Fe&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),r.recordDroppedEvent("sample_rate","transaction")),r&&r.emit("spanStart",p),p}function J4t(e,t,n){let{spanId:r,traceId:i}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[sH]?!1:af(e),o=s?new VR({...n,parentSpanId:r,traceId:i,sampled:s}):new Ny({traceId:i});zR(e,o);let a=ct();return a&&(a.emit("spanStart",o),n.endTimestamp&&a.emit("spanEnd",o)),o}function RX(e,t){if(t)return t;if(t===null)return;let n=kE(e);if(!n)return;let r=ct();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?cs(n):n}function wMe(e){return e!==void 0?t=>WR(e,t):t=>t()}var sH,Cy=v(()=>{FR();zl();go();Pi();Lo();_r();iH();zO();BR();Hj();Oc();bm();rH();_X();gMe();RMe();qR();sH="__SENTRY_SUPPRESS_TRACING__"});function _m(e){return new aH(t=>{t(e)})}function YR(e){return new aH((t,n)=>{n(e)})}var AX,kMe,IMe,aH,ZR=v(()=>{Ka();AX=0,kMe=1,IMe=2;aH=class e{constructor(t){this._state=AX,this._handlers=[],this._runExecutor(t)}then(t,n){return new e((r,i)=>{this._handlers.push([!1,s=>{if(!t)r(s);else try{r(t(s))}catch(o){i(o)}},s=>{if(!n)i(s);else try{r(n(s))}catch(o){i(o)}}]),this._executeHandlers()})}catch(t){return this.then(n=>n,t)}finally(t){return new e((n,r)=>{let i,s;return this.then(o=>{s=!1,i=o,t&&t()},o=>{s=!0,i=o,t&&t()}).then(()=>{if(s){r(i);return}n(i)})})}_executeHandlers(){if(this._state===AX)return;let t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===kMe&&n[1](this._value),this._state===IMe&&n[2](this._value),n[0]=!0)})}_runExecutor(t){let n=(s,o)=>{if(this._state===AX){if(sa(o)){o.then(r,i);return}this._state=s,this._value=o,this._executeHandlers()}},r=s=>{n(kMe,s)},i=s=>{n(IMe,s)};try{t(r,i)}catch(s){i(s)}}}});function xMe(e,t,n,r=0){try{let i=wX(t,n,e,r);return sa(i)?i:_m(i)}catch(i){return YR(i)}}function wX(e,t,n,r){let i=n[r];if(!e||!i)return e;let s=i({...e},t);return Fe&&s===null&&Z.log(`Event processor "${i.id||"?"}" dropped event`),sa(s)?s.then(o=>wX(o,t,n,r+1)):wX(s,t,n,r+1)}var OMe=v(()=>{Pi();_r();Ka();ZR()});function CMe(e){let t=qt._sentryDebugIds,n=qt._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(My&&r.length===PMe&&i.length===NMe)return My;PMe=r.length,NMe=i.length,My={},ME||(ME={});let s=(o,a)=>{for(let c of o){let u=a[c],l=ME?.[c];if(l&&My&&u)My[l[0]]=u,ME&&(ME[c]=[l[0],u]);else if(u){let d=e(c);for(let f=d.length-1;f>=0;f--){let h=d[f]?.filename;if(h&&My&&ME){My[h]=u,ME[c]=[h,u];break}}}}};return t&&s(r,t),n&&s(i,n),My}var ME,PMe,NMe,My,MMe=v(()=>{Wa()});function LMe(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:s}=t;X4t(e,t),r&&eKt(e,r),tKt(e,n),Q4t(e,i),$4t(e,s)}function DMe(e,t){let{extra:n,tags:r,attributes:i,user:s,contexts:o,level:a,sdkProcessingMetadata:c,breadcrumbs:u,fingerprint:l,eventProcessors:d,attachments:f,propagationContext:p,transactionName:h,span:m}=t;XO(e,"extra",n),XO(e,"tags",r),XO(e,"attributes",i),XO(e,"user",s),XO(e,"contexts",o),e.sdkProcessingMetadata=wy(e.sdkProcessingMetadata,c,2),a&&(e.level=a),h&&(e.transactionName=h),m&&(e.span=m),u.length&&(e.breadcrumbs=[...e.breadcrumbs,...u]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),f.length&&(e.attachments=[...e.attachments,...f]),e.propagationContext={...e.propagationContext,...p}}function XO(e,t,n){e[t]=wy(e[t],n,1)}function cH(e,t){let n=Bj().getScopeData();return e&&DMe(n,e.getScopeData()),t&&DMe(n,t.getScopeData()),n}function X4t(e,t){let{extra:n,tags:r,user:i,contexts:s,level:o,transactionName:a}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(r).length&&(e.tags={...r,...e.tags}),Object.keys(i).length&&(e.user={...i,...e.user}),Object.keys(s).length&&(e.contexts={...s,...e.contexts}),o&&(e.level=o),a&&e.type!=="transaction"&&(e.transaction=a)}function Q4t(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function $4t(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function eKt(e,t){e.contexts={trace:Py(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Ps(t),...e.sdkProcessingMetadata};let n=cs(t),r=vt(n).description;r&&!e.transaction&&e.type==="transaction"&&(e.transaction=r)}function tKt(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}var kX=v(()=>{go();bm();jj();Oc()});function UMe(e,t,n,r,i,s){let{normalizeDepth:o=3,normalizeMaxBreadth:a=1e3}=e,c={...t,event_id:t.event_id||n.event_id||mo(),timestamp:t.timestamp||hm()},u=n.integrations||e.integrations.map(y=>y.name);nKt(c,e),sKt(c,u),i&&i.emit("applyFrameMetadata",t),t.type===void 0&&rKt(c,e.stackParser);let l=aKt(r,n.captureContext);n.mechanism&&DR(c,n.mechanism);let d=i?i.getEventProcessors():[],f=cH(s,l),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),LMe(c,f);let h=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?_m(c):xMe(h,c,n)).then(y=>(y&&iKt(y),typeof o=="number"&&o>0?oKt(y,o,a):y))}function nKt(e,t){let{environment:n,release:r,dist:i,maxValueLength:s}=t;e.environment=e.environment||n||GR,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&s&&(o.url=Ey(o.url,s)),s&&e.exception?.values?.forEach(a=>{a.value&&(a.value=Ey(a.value,s))})}function rKt(e,t){let n=CMe(t);e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.filename&&(i.debug_id=n[i.filename])})})}function iKt(e){let t={};if(e.exception?.values?.forEach(r=>{r.stacktrace?.frames?.forEach(i=>{i.debug_id&&(i.abs_path?t[i.abs_path]=i.debug_id:i.filename&&(t[i.filename]=i.debug_id),delete i.debug_id)})}),Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];let n=e.debug_meta.images;Object.entries(t).forEach(([r,i])=>{n.push({type:"sourcemap",code_file:r,debug_id:i})})}function sKt(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function oKt(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(i=>({...i,...i.data&&{data:cf(i.data,t,n)}}))},...e.user&&{user:cf(e.user,t,n)},...e.contexts&&{contexts:cf(e.contexts,t,n)},...e.extra&&{extra:cf(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=cf(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(i=>({...i,...i.data&&{data:cf(i.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=cf(e.contexts.flags,3,n)),r}function aKt(e,t){if(!t)return e;let n=e?e.clone():new uu;return n.update(t),n}function FMe(e){if(e)return cKt(e)?{captureContext:e}:lKt(e)?{captureContext:e}:e}function cKt(e){return e instanceof uu||typeof e=="function"}function lKt(e){return Object.keys(e).some(t=>uKt.includes(t))}var uKt,IX=v(()=>{Qj();OMe();LO();MMe();Lp();eH();kX();Ty();ZR();Ay();uKt=["user","level","extra","contexts","tags","fingerprint","propagationContext"]});function Wt(e,t){return Un().captureException(e,FMe(t))}function uH(e,t){return Un().captureEvent(e,t)}async function JR(e){let t=ct();return t?t.flush(e):(Fe&&Z.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}function lH(){let e=ct();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function dH(e){let t=vn(),{user:n}=cH(t,Un()),{userAgent:r}=qt.navigator||{},i=zCe({user:n,...r&&{userAgent:r},...e}),s=t.getSession();return s?.status==="ok"&&mm(s,{status:"exited"}),QO(),t.setSession(i),i}function QO(){let e=vn(),n=Un().getSession()||e.getSession();n&&GCe(n),dKt(),e.setSession()}function dKt(){let e=vn(),t=ct(),n=e.getSession();n&&t&&t.captureSession(n)}var ul=v(()=>{go();Pi();Fj();_r();IX();kX();Wa()});function pKt(e){let t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function hKt(e){return`${pKt(e)}${e.projectId}/envelope/`}function mKt(e,t){let n={sentry_version:fKt};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function jMe(e,t,n){return t||`${hKt(e)}?${mKt(e,n)}`}var fKt,HMe=v(()=>{fKt="7"});function gKt(e){let t={};return e.forEach(n=>{let{name:r}=n,i=t[r];i&&!i.isDefaultInstance&&n.isDefaultInstance||(t[r]=n)}),Object.values(t)}function OX(e){let t=e.defaultIntegrations||[],n=e.integrations;t.forEach(i=>{i.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...t,...n];else if(typeof n=="function"){let i=n(t);r=Array.isArray(i)?i:[i]}else r=t;return gKt(r)}function qMe(e,t){let n={};return t.forEach(r=>{r&&NX(e,r,n)}),n}function PX(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function NX(e,t,n){if(n[t.name]){Fe&&Z.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,!xX.includes(t.name)&&typeof t.setupOnce=="function"&&(t.setupOnce(),xX.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){let r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(i,s)=>r(i,s,e))}if(typeof t.processEvent=="function"){let r=t.processEvent.bind(t),i=Object.assign((s,o)=>r(s,o,e),{id:t.name});e.addEventProcessor(i)}Fe&&Z.log(`Integration installed: ${t.name}`)}var xX,CX=v(()=>{Pi();_r();xX=[]});function BMe(e,t){return t?Ja(t,()=>{let n=Kl(),r=n?Py(n):IE(t);return[n?Ps(n):Fp(e,t),r]}):[void 0,void 0]}var zMe=v(()=>{go();bm();Oc()});function yKt(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function GMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=al(r)),Pc(i,[yKt(e)])}var VMe=v(()=>{Sm();Em()});function XR(e,t){let n=t??SKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=GMe(n,r._metadata,r.tunnel,e.getDsn());WMe().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(i)}function SKt(e){return WMe().get(e)}function WMe(){return tf("clientToLogBufferMap",()=>new WeakMap)}var MX=v(()=>{zl();VMe()});function bKt(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function KMe(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=al(r)),Pc(i,[bKt(e)])}var YMe=v(()=>{Sm();Em()});function ZMe(e,t){let n=t??EKt(e)??[];if(n.length===0)return;let r=e.getOptions(),i=KMe(n,r._metadata,r.tunnel,e.getDsn());JMe().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(i)}function EKt(e){return JMe().get(e)}function JMe(){return tf("clientToMetricBufferMap",()=>new WeakMap)}var XMe=v(()=>{zl();YMe()});function fH(e){return typeof e=="object"&&typeof e.unref=="function"&&e.unref(),e}var DX=v(()=>{});function QR(e=100){let t=new Set;function n(){return t.sizer(a),()=>r(a)),a}function s(o){if(!t.size)return _m(!0);let a=Promise.allSettled(Array.from(t)).then(()=>!0);if(!o)return a;let c=[a,new Promise(u=>fH(setTimeout(()=>u(!1),o)))];return Promise.race(c)}return{get $(){return Array.from(t)},add:i,drain:s}}var $O,pH=v(()=>{ZR();DX();$O=Symbol.for("SentryBufferFullError")});function TKt(e,t=Gl()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?_Kt:r-t}function vKt(e,t){return e[t]||e.all||0}function QMe(e,t,n=Gl()){return vKt(e,t)>n}function $Me(e,{statusCode:t,headers:n},r=Gl()){let i={...e},s=n?.["x-sentry-rate-limits"],o=n?.["retry-after"];if(s)for(let a of s.trim().split(",")){let[c,u,,,l]=a.split(":",5),d=parseInt(c,10),f=(isNaN(d)?60:d)*1e3;if(!u)i.all=r+f;else for(let p of u.split(";"))p==="metric_bucket"?(!l||l.split(";").includes("custom"))&&(i[p]=r+f):i[p]=r+f}else o?i.all=r+TKt(o,r):t===429&&(i.all=r+60*1e3);return i}var _Kt,eDe=v(()=>{by();_Kt=60*1e3});function tP(e,t,n=QR(e.bufferSize||eP)){let r={},i=o=>n.drain(o);function s(o){let a=[];if(VO(o,(d,f)=>{let p=tH(f);QMe(r,p)?e.recordDroppedEvent("ratelimit_backoff",p):a.push(d)}),a.length===0)return Promise.resolve({});let c=Pc(o[0],a),u=d=>{if(mX(c,["client_report"])){Fe&&Z.warn(`Dropping client report. Will not send outcomes (reason: ${d}).`);return}VO(c,(f,p)=>{e.recordDroppedEvent(d,tH(p))})},l=()=>t({body:WO(c)}).then(d=>d.statusCode===413?(Fe&&Z.error("Sentry responded with status code 413. Envelope was discarded due to exceeding size limits."),u("send_error"),d):(Fe&&d.statusCode!==void 0&&(d.statusCode<200||d.statusCode>=300)&&Z.warn(`Sentry responded with status code ${d.statusCode} to sent event.`),r=$Me(r,d),d),d=>{throw u("network_error"),Fe&&Z.error("Encountered error running transport request:",d),d});return n.add(l).then(d=>d,d=>{if(d===$O)return Fe&&Z.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:i}}var eP,hH=v(()=>{Pi();_r();Em();pH();eDe();eP=64});function tDe(e,t,n){let r=[{type:"client_report"},{timestamp:n||hm(),discarded_events:e}];return Pc(t?{dsn:t}:{},[r])}var nDe=v(()=>{Em();Ay()});function mH(e){let t=[];e.message&&t.push(e.message);try{let n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}var LX=v(()=>{});function rDe(e){let{trace_id:t,parent_span_id:n,span_id:r,status:i,origin:s,data:o,op:a}=e.contexts?.trace??{};return{data:o??{},description:e.transaction,op:a,parent_span_id:n,span_id:r??"",start_timestamp:e.start_timestamp??0,status:i,timestamp:e.timestamp,trace_id:t??"",origin:s,profile_id:o?.[jR],exclusive_time:o?.[HR],measurements:e.measurements,is_segment:!0}}function iDe(e){return{type:"transaction",timestamp:e.timestamp,start_timestamp:e.start_timestamp,transaction:e.description,contexts:{trace:{trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,op:e.op,status:e.status,origin:e.origin,data:{...e.data,...e.profile_id&&{[jR]:e.profile_id},...e.exclusive_time&&{[HR]:e.exclusive_time}}}},measurements:e.measurements}}var sDe=v(()=>{Lo()});function gH(e){return{message:e,[pDe]:!0}}function UX(e){return{message:e,[hDe]:!0}}function cDe(e){return!!e&&typeof e=="object"&&pDe in e}function uDe(e){return!!e&&typeof e=="object"&&hDe in e}function lDe(e,t,n,r,i){let s=0,o,a=!1;e.on(n,()=>{s=0,clearTimeout(o),a=!1}),e.on(t,c=>{s+=r(c),s>=8e5?i(e):a||(a=!0,o=fH(setTimeout(()=>{i(e)},RKt)))}),e.on("flush",()=>{i(e)})}function dDe(e){return e==="replay_event"?"replay":e||"error"}function AKt(e,t){let n=`${t} must return \`null\` or a valid event.`;if(sa(e))return e.then(r=>{if(!fm(r)&&r!==null)throw gH(n);return r},r=>{throw gH(`${t} rejected with ${r}`)});if(!fm(e)&&e!==null)throw gH(n);return e}function wKt(e,t,n,r){let{beforeSend:i,beforeSendTransaction:s,beforeSendSpan:o,ignoreSpans:a}=t,c=n;if(FX(c)&&i)return i(c,r);if(mDe(c)){if(o||a){let u=rDe(c);if(a?.length&&GO(u,a))return null;if(o){let l=o(u);l?c=wy(n,iDe(l)):BO()}if(c.spans){let l=[],d=c.spans;for(let p of d){if(a?.length&&GO(p,a)){hMe(d,p);continue}if(o){let h=o(p);h?l.push(h):(BO(),l.push(p))}else l.push(p)}let f=c.spans.length-l.length;f&&e.recordDroppedEvent("before_send","span",f),c.spans=l}}if(s){if(c.spans){let u=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:u}}return s(c,r)}}return c}function FX(e){return e.type===void 0}function mDe(e){return e.type==="transaction"}function kKt(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+gDe(e.attributes)}function IKt(e){let t=0;return e.message&&(t+=e.message.length*2),t+gDe(e.attributes)}function gDe(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*fDe(n[0]):MO(n)?t+=fDe(n):t+=100}),t}function fDe(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}var oDe,aDe,pDe,hDe,RKt,yH,yDe=v(()=>{HMe();Qj();go();Pi();bX();CX();MX();XMe();Fj();bm();hH();nDe();_r();Sm();Em();LX();Ka();jj();Lp();BR();IX();pH();by();uX();Oc();ZR();DX();sDe();oDe="Not capturing exception because it's already been captured.",aDe="Discarded session because of missing or non-string release",pDe=Symbol.for("SentryInternalError"),hDe=Symbol.for("SentryDoNotSendEventError"),RKt=5e3;yH=class{constructor(t){if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=QR(t.transportOptions?.bufferSize??eP),t.dsn?this._dsn=iMe(t.dsn):Fe&&Z.warn("No DSN provided, client will not send events."),this._dsn){let r=jMe(this._dsn,t.tunnel,t._metadata?t._metadata.sdk:void 0);this._transport=t.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...t.transportOptions,url:r})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&lDe(this,"afterCaptureLog","flushLogs",IKt,XR),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&lDe(this,"afterCaptureMetric","flushMetrics",kKt,ZMe)}captureException(t,n,r){let i=mo();if(Uj(t))return Fe&&Z.log(oDe),i;let s={event_id:i,...n};return this._process(()=>this.eventFromException(t,s).then(o=>this._captureEvent(o,s,r)).then(o=>o),"error"),s.event_id}captureMessage(t,n,r,i){let s={event_id:mo(),...r},o=CR(t)?t:String(t),a=MO(t),c=a?this.eventFromMessage(o,n,s):this.eventFromException(t,s);return this._process(()=>c.then(u=>this._captureEvent(u,s,i)),a?"unknown":"error"),s.event_id}captureEvent(t,n,r){let i=mo();if(n?.originalException&&Uj(n.originalException))return Fe&&Z.log(oDe),i;let s={event_id:i,...n},o=t.sdkProcessingMetadata||{},a=o.capturedSpanScope,c=o.capturedSpanIsolationScope,u=dDe(t.type);return this._process(()=>this._captureEvent(t,s,a||r,c),u),s.event_id}captureSession(t){this.sendSession(t),mm(t,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(t){let n=this._transport;if(!n)return!0;this.emit("flush");let r=await this._isClientDoneProcessing(t),i=await n.flush(t);return r&&i}async close(t){XR(this);let n=await this.flush(t);return this.getOptions().enabled=!1,this.emit("close"),n}getEventProcessors(){return this._eventProcessors}addEventProcessor(t){this._eventProcessors.push(t)}init(){(this._isEnabled()||this._options.integrations.some(({name:t})=>t.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(t){return this._integrations[t]}addIntegration(t){let n=this._integrations[t.name];NX(this,t,this._integrations),n||PX(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=bMe(t,this._dsn,this._options._metadata,this._options.tunnel);for(let i of n.attachments||[])r=hX(r,yX(i));this.sendEnvelope(r).then(i=>this.emit("afterSendEvent",t,i))}sendSession(t){let{release:n,environment:r=GR}=this._options;if("aggregates"in t){let s=t.attrs||{};if(!s.release&&!n){Fe&&Z.warn(aDe);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Fe&&Z.warn(aDe);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);let i=SMe(t,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(i)}recordDroppedEvent(t,n,r=1){if(this._options.sendClientReports){let i=`${t}:${n}`;Fe&&Z.log(`Recording outcome: "${i}"${r>1?` (${r} times)`:""}`),this._outcomes[i]=(this._outcomes[i]||0)+r}}on(t,n){let r=this._hooks[t]=this._hooks[t]||new Set,i=(...s)=>n(...s);return r.add(i),()=>{r.delete(i)}}emit(t,...n){let r=this._hooks[t];r&&r.forEach(i=>i(...n))}async sendEnvelope(t){if(this.emit("beforeEnvelope",t),this._isEnabled()&&this._transport)try{return await this._transport.send(t)}catch(n){return Fe&&Z.error("Error while sending envelope:",n),{}}return Fe&&Z.error("Transport disabled"),{}}dispose(){}_setupIntegrations(){let{integrations:t}=this._options;this._integrations=qMe(this,t),PX(this,t)}_updateSessionFromEvent(t,n){let r=n.level==="fatal",i=!1,s=n.exception?.values;if(s){i=!0,r=!1;for(let c of s)if(c.mechanism?.handled===!1){r=!0;break}}let o=t.status==="ok";(o&&t.errors===0||o&&r)&&(mm(t,{...r&&{status:"crashed"},errors:t.errors||Number(i||r)}),this.captureSession(t))}async _isClientDoneProcessing(t){let n=0;for(;!t||nsetTimeout(r,1)),!this._numProcessing)return!0;n++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(t,n,r,i){let s=this.getOptions(),o=Object.keys(this._integrations);return!n.integrations&&o?.length&&(n.integrations=o),this.emit("preprocessEvent",t,n),t.type||i.setLastEventId(t.event_id||n.event_id),UMe(s,t,n,r,this,i).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,n),a.contexts={trace:{...a.contexts?.trace,...IE(r)},...a.contexts};let c=Fp(this,r);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(t,n={},r=Un(),i=vn()){return Fe&&FX(t)&&Z.log(`Captured error event \`${mH(t)[0]||""}\``),this._processEvent(t,n,r,i).then(s=>s.event_id,s=>{Fe&&(uDe(s)?Z.log(s.message):cDe(s)?Z.warn(s.message):Z.warn(s))})}_processEvent(t,n,r,i){let s=this.getOptions(),{sampleRate:o}=s,a=mDe(t),c=FX(t),l=`before send for type \`${t.type||"error"}\``,d=typeof o>"u"?void 0:cl(o);if(c&&typeof d=="number"&&Do()>d)return this.recordDroppedEvent("sample_rate","error"),YR(UX(`Discarding event because it's not included in the random sample (sampling rate = ${o})`));let f=dDe(t.type);return this._prepareEvent(t,n,r,i).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),UX("An event processor returned `null`, will not send event.");if(n.data?.__sentry__===!0)return p;let m=wKt(this,s,p,n);return AKt(m,l)}).then(p=>{if(p===null){if(this.recordDroppedEvent("before_send",f),a){let y=1+(t.spans||[]).length;this.recordDroppedEvent("before_send","span",y)}throw UX(`${l} returned \`null\`, will not send event.`)}let h=r.getSession()||i.getSession();if(c&&h&&this._updateSessionFromEvent(h,p),a){let g=p.sdkProcessingMetadata?.spanCountBeforeProcessing||0,y=p.spans?p.spans.length:0,b=g-y;b>0&&this.recordDroppedEvent("before_send","span",b)}let m=p.transaction_info;if(a&&m&&p.transaction!==t.transaction){let g="custom";p.transaction_info={...m,source:g}}return this.sendEvent(p,n),p}).then(null,p=>{throw uDe(p)||cDe(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),gH(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${p}`))})}_process(t,n){this._numProcessing++,this._promiseBuffer.add(t).then(r=>(this._numProcessing--,r),r=>(this._numProcessing--,r===$O&&this.recordDroppedEvent("queue_overflow",n),r))}_clearOutcomes(){let t=this._outcomes;return this._outcomes={},Object.entries(t).map(([n,r])=>{let[i,s]=n.split(":");return{reason:i,category:s,quantity:r}})}_flushOutcomes(){Fe&&Z.log("Flushing outcomes...");let t=this._clearOutcomes();if(t.length===0){Fe&&Z.log("No outcomes to send");return}if(!this._dsn){Fe&&Z.log("No dsn provided, will not send outcomes");return}Fe&&Z.log("Sending outcomes:",t);let n=tDe(t,this._options.tunnel&&al(this._dsn));this.sendEnvelope(n)}}});function SDe(e,t,n,r,i){let s={sent_at:new Date().toISOString()};n?.sdk&&(s.sdk={name:n.sdk.name,version:n.sdk.version}),r&&i&&(s.dsn=al(i)),t&&(s.trace=t);let o=xKt(e);return Pc(s,[o])}function xKt(e){return[{type:"check_in"},e]}var bDe=v(()=>{Sm();Em()});function EDe(e){let t=e._metadata?.sdk,n=t?.name&&t?.version?`${t?.name}/${t?.version}`:void 0;e.transportOptions={...e.transportOptions,headers:{...n&&{"user-agent":n},...e.transportOptions?.headers}}}var _De=v(()=>{});function TDe(e,t){return e(t.stack||"",1)}function OKt(e){return Mp(e)&&"__sentry_fetch_url_host__"in e&&typeof e.__sentry_fetch_url_host__=="string"}function PKt(e){return OKt(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function jX(e,t){let n={type:t.name||t.constructor.name,value:PKt(t)},r=TDe(e,t);return r.length&&(n.stacktrace={frames:r}),n}function NKt(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function CKt(e){if("name"in e&&typeof e.name=="string"){let r=`'${e.name}' captured as exception`;return"message"in e&&typeof e.message=="string"&&(r+=` with message '${e.message}'`),r}else if("message"in e&&typeof e.message=="string")return e.message;let t=HJ(e);if(CJ(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=MKt(e);return`${n&&n!=="Object"?`'${n}'`:"Object"} captured as exception with keys: ${t}`}function MKt(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function DKt(e,t,n,r){if(Mp(n))return[n,void 0];if(t.synthetic=!0,fm(n)){let s=e?.getOptions().normalizeDepth,o={__serialized__:fX(n,s)},a=NKt(n);if(a)return[a,o];let c=CKt(n),u=r?.syntheticException||new Error(c);return u.message=c,[u,o]}let i=r?.syntheticException||new Error(n);return i.message=`${n}`,[i,void 0]}function vDe(e,t,n,r){let s=r?.data&&r.data.mechanism||{handled:!0,type:"generic"},[o,a]=DKt(e,s,n,r),c={exception:{values:[jX(t,o)]}};return a&&(c.extra=a),VJ(c,void 0,void 0),DR(c,s),{...c,event_id:r?.event_id}}function RDe(e,t,n="info",r,i){let s={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let o=TDe(e,r.syntheticException);o.length&&(s.exception={values:[{value:t,stacktrace:{frames:o}}]},DR(s,{synthetic:!0}))}if(CR(t)){let{__sentry_template_string__:o,__sentry_template_values__:a}=t;return s.logentry={message:o,params:a},s}return s.message=t,s}var HX=v(()=>{Ka();Lp();eH();nf()});function ADe(e){let t=vn().getScopeData().sdkProcessingMetadata.requestSession;if(t){let n=e?.mechanism?.handled??!0;n&&t.status!=="crashed"?t.status="errored":n||(t.status="crashed")}}var nP,wDe=v(()=>{bDe();yDe();go();Pi();fMe();_r();Lp();hH();_De();HX();pH();ZR();zMe();nP=class extends yH{constructor(t){dMe(),EDe(t),super(t),this._setUpMetricsProcessing()}eventFromException(t,n){let r=vDe(this,this._options.stackParser,t,n);return r.level="error",_m(r)}eventFromMessage(t,n="info",r){return _m(RDe(this._options.stackParser,t,n,r,this._options.attachStacktrace))}captureException(t,n,r){return ADe(n),super.captureException(t,n,r)}captureEvent(t,n,r){return!t.type&&t.exception?.values&&t.exception.values.length>0&&ADe(n),super.captureEvent(t,n,r)}captureCheckIn(t,n,r){let i="checkInId"in t&&t.checkInId?t.checkInId:mo();if(!this._isEnabled())return Fe&&Z.warn("SDK not enabled, will not capture check-in."),i;let s=this.getOptions(),{release:o,environment:a,tunnel:c}=s,u={check_in_id:i,monitor_slug:t.monitorSlug,status:t.status,release:o,environment:a};"duration"in t&&(u.duration=t.duration),n&&(u.monitor_config={schedule:n.schedule,checkin_margin:n.checkinMargin,max_runtime:n.maxRuntime,timezone:n.timezone,failure_issue_threshold:n.failureIssueThreshold,recovery_threshold:n.recoveryThreshold});let[l,d]=BMe(this,r);d&&(u.contexts={trace:d});let f=SDe(u,l,this.getSdkMetadata(),c,this.getDsn());return Fe&&Z.log("Sending checkin:",t.monitorSlug,t.status),this.sendEnvelope(f),i}dispose(){Fe&&Z.log("Disposing client...");for(let t of Object.keys(this._hooks))this._hooks[t]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=QR(eP)}_prepareEvent(t,n,r,i){return this._options.platform&&(t.platform=t.platform||this._options.platform),this._options.runtime&&(t.contexts={...t.contexts,runtime:t.contexts?.runtime||this._options.runtime}),this._options.serverName&&(t.server_name=t.server_name||this._options.serverName),super._prepareEvent(t,n,r,i)}_setUpMetricsProcessing(){this.on("processMetric",t=>{this._options.serverName&&(t.attributes={"server.address":this._options.serverName,...t.attributes})})}}});function BX(e){e.forEach(t=>{qX.add(t),Fe&&Z.log(`AI provider "${t}" wrapping will be skipped`)})}function DE(e){return qX.has(e)}function zX(){qX.clear(),Fe&&Z.log("Cleared AI provider skip registrations")}var qX,kDe=v(()=>{Pi();_r();qX=new Set});function $R(e,t){let n=String(e).toLowerCase();return LKt.has(n)?!1:UKt.has(n)?!0:t?.strict?null:!!e}var LKt,UKt,IDe=v(()=>{LKt=new Set(["false","f","n","no","off","0"]),UKt=new Set(["true","t","y","yes","on","1"])});function GX(e){return"isRelative"in e}function rP(e,t){let n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=t??(n?FKt:void 0);try{if("canParse"in URL&&!URL.canParse(e,r))return;let i=new URL(e,r);return n?{isRelative:n,pathname:i.pathname,search:i.search,hash:i.hash}:i}catch{}}function xDe(e){if(GX(e))return e.pathname;let t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}function jKt(e,t,n,r){let i=n?.method?.toUpperCase()??"GET",s=r||(e?t==="client"?xDe(e):e.pathname:"/");return`${i} ${s}`}function VX(e,t,n,r,i){let s={[At]:n,[Wi]:"url"};return i&&(s[t==="server"?"http.route":"url.template"]=i,s[Wi]="route"),r?.method&&(s[sX]=r.method.toUpperCase()),e&&(e.search&&(s["url.query"]=e.search),e.hash&&(s["url.fragment"]=e.hash),e.pathname&&(s["url.path"]=e.pathname,e.pathname==="/"&&(s[Wi]="route")),GX(e)||(s[Iy]=e.href,e.port&&(s["url.port"]=e.port),e.protocol&&(s["url.scheme"]=e.protocol),e.hostname&&(s[t==="server"?"server.address":"url.domain"]=e.hostname))),[jKt(e,t,r,i),s]}function Dy(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function Tm(e){return e.split(/[?#]/,1)[0]}function Ly(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,"[filtered]:[filtered]@").replace(/(:80)$/,"").replace(/(:443)$/,"")||"";return`${t?`${t}://`:""}${i}${r}`}function eA(e,t=!0){if(e.startsWith("data:")){let n=e.match(/^data:([^;,]+)/),r=n?n[1]:"text/plain",i=e.includes(";base64,"),s=e.indexOf(","),o="";if(t&&s!==-1){let a=e.slice(s+1);o=a.length>10?`${a.slice(0,10)}... [truncated]`:a}return`data:${r}${i?",base64":""}${o?`,${o}`:""}`}return e}var FKt,ODe=v(()=>{Lo();FKt="thismessage:/"});function LE(e,t,n=[t],r="npm"){let i=(e._metadata=e._metadata||{}).sdk=e._metadata.sdk||{};i.name||(i.name=`sentry.javascript.${t}`,i.packages=n.map(s=>({name:`${r}:@sentry/${s}`,version:Nn})),i.version=Nn)}var PDe=v(()=>{xj()});function tA(e={}){let t=e.client||ct();if(!lH()||!t)return{};let n=xc(),r=rf(n);if(r.getTraceData)return r.getTraceData(e);let i=e.scope||Un(),s=e.span||Kl();if(!s&&QJ())return{};let o=s?Jj(s):HKt(i),a=s?Ps(s):Fp(t,i),c=xE(a);if(!Vj.test(o))return Z.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let l={"sentry-trace":o,baggage:c};return e.propagateTraceparent&&(l.traceparent=s?uMe(s):qKt(i)),l}function HKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return xy(t,r,n)}function qKt(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Oy(t,r,n)}var NDe=v(()=>{FR();zl();go();ul();_r();Oc();bm();jO();Wj()});function UE(e,t,n){if(typeof e!="string"||!t)return!0;let r=n?.get(e);if(r!==void 0)return Fe&&!r&&Z.log(CDe,e),r;let i=_y(e,t);return n?.set(e,i),Fe&&!i&&Z.log(CDe,e),i}var CDe,MDe=v(()=>{Pi();_r();Ty();CDe="[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:"});function WX(e,t,n){let r,i,s,o=n?.maxWait?Math.max(n.maxWait,t):0,a=n?.setTimeoutImpl||setTimeout;function c(){return u(),r=e(),r}function u(){i!==void 0&&clearTimeout(i),s!==void 0&&clearTimeout(s),i=s=void 0}function l(){return i!==void 0||s!==void 0?c():r}function d(){return i&&clearTimeout(i),i=a(c,t),o&&s===void 0&&(s=a(c,o)),r}return d.cancel=u,d.flush=l,d}var DDe=v(()=>{});function jDe(e){let t=Object.create(null);try{Object.entries(e).forEach(([n,r])=>{typeof r=="string"&&(t[n]=r)})}catch{}return t}function iP(e){let t=e.headers||{},r=(typeof t["x-forwarded-host"]=="string"?t["x-forwarded-host"]:void 0)||(typeof t.host=="string"?t.host:void 0),s=(typeof t["x-forwarded-proto"]=="string"?t["x-forwarded-proto"]:void 0)||e.protocol||(e.socket?.encrypted?"https":"http"),o=e.url||"",a=BKt({url:o,host:r,protocol:s}),c=e.body||void 0,u=e.cookies;return{url:a,method:e.method,query_string:HDe(o),headers:jDe(t),cookies:u,data:c}}function BKt({url:e,protocol:t,host:n}){if(e?.startsWith("http"))return e;if(e&&n)return`${t}://${n}${e}`}function SH(e,t=!1,n="request"){let r={};try{Object.entries(e).forEach(([i,s])=>{if(s==null)return;let o=i.toLowerCase();if((o==="cookie"||o==="set-cookie")&&typeof s=="string"&&s!==""){let c=o==="set-cookie",u=s.indexOf(";"),l=c&&u!==-1?s.substring(0,u):s,d=c?[l]:l.split("; ");for(let f of d){let p=f.indexOf("="),h=p!==-1?f.substring(0,p):f,m=p!==-1?f.substring(p+1):"",g=h.toLowerCase();FDe(r,o,g,m,t,n)}}else FDe(r,o,"",s,t,n)})}catch{}return r}function UDe(e){return e.replace(/-/g,"_")}function FDe(e,t,n,r,i,s){let o=GKt(n||t,r,i);if(o==null)return;let a=`http.${s}.header.${UDe(t)}${n?`.${UDe(n)}`:""}`;e[a]=o}function GKt(e,t,n){if(n?LDe.some(i=>e.includes(i)):[...zKt,...LDe].some(i=>e.includes(i)))return"[Filtered]";if(Array.isArray(t))return t.map(i=>i!=null?String(i):i).join(";");if(typeof t=="string")return t}function HDe(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}var LDe,zKt,qDe=v(()=>{LDe=["auth","token","secret","session","password","passwd","pwd","key","jwt","bearer","sso","saml","csrf","xsrf","credentials","set-cookie","cookie"],zKt=["x-forwarded-","-user"]});function Yl(e,t){let n=ct(),r=vn();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:s=VKt}=n.getOptions();if(s<=0)return;let a={timestamp:hm(),...e},c=i?xs(()=>i(a,t)):a;c!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",c,t),r.addBreadcrumb(c,s))}var VKt,KX=v(()=>{go();_r();Ay();VKt=100});var BDe,WKt,zDe,KKt,bH,GDe=v(()=>{go();nf();WKt="FunctionToString",zDe=new WeakMap,KKt=(()=>({name:WKt,setupOnce(){BDe=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=jJ(this),n=zDe.has(ct())&&t!==void 0?t:this;return BDe.apply(n,e)}}catch{}},setup(e){zDe.set(e,!0)}})),bH=KKt});function VDe(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:YKt],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function JKt(e,t){if(e.type){if(e.type==="transaction"&&QKt(e,t.ignoreTransactions))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. Event: ${vy(e)}`),!0}else{if(XKt(e,t.ignoreErrors))return Fe&&Z.warn(`Event dropped due to being matched by \`ignoreErrors\` option. Event: ${vy(e)}`),!0;if(n3t(e))return Fe&&Z.warn(`Event dropped due to not having an error message, error type or stacktrace. Event: ${vy(e)}`),!0;if($Kt(e,t.denyUrls))return Fe&&Z.warn(`Event dropped due to being matched by \`denyUrls\` option. Event: ${vy(e)}. -Url: ${SH(e)}`),!0;if(!e3t(e,t.allowUrls))return Fe&&Z.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Url: ${EH(e)}`),!0;if(!e3t(e,t.allowUrls))return Fe&&Z.warn(`Event dropped due to not being matched by \`allowUrls\` option. Event: ${vy(e)}. -Url: ${SH(e)}`),!0}return!1}function XKt(e,t){return t?.length?pH(e).some(n=>_y(n,t)):!1}function QKt(e,t){if(!t?.length)return!1;let n=e.transaction;return n?_y(n,t):!1}function $Kt(e,t){if(!t?.length)return!1;let n=SH(e);return n?_y(n,t):!1}function e3t(e,t){if(!t?.length)return!0;let n=SH(e);return n?_y(n,t):!0}function t3t(e=[]){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n&&n.filename!==""&&n.filename!=="[native code]")return n.filename||null}return null}function SH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?t3t(n):null}catch{return Fe&&Z.error(`Cannot extract url for event ${vy(e)}`),null}}function n3t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var YKt,ZKt,KX,bH,VDe=v(()=>{Pi();_r();DX();Lp();Ty();YKt=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],ZKt="EventFilters",KX=(e={})=>{let t;return{name:ZKt,setup(n){let r=n.getOptions();t=GDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=GDe(e,s)}return JKt(n,t)?null:n}}},bH=((e={})=>({...KX(e),name:"InboundFilters"}))});function YDe(e,t,n,r,i,s){if(!i.exception?.values||!s||!Dp(s.originalException,Error))return;let o=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;o&&(i.exception.values=YX(e,t,r,s.originalException,n,i.exception.values,o,0))}function YX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Dp(r[i],Error)){WDe(o,a,r);let u=e(t,r[i]),l=c.length;KDe(u,i,l,a),c=YX(e,t,n,r[i],i,[u,...c],u,l)}return ZDe(r)&&r.errors.forEach((u,l)=>{if(Dp(u,Error)){WDe(o,a,r);let d=e(t,u),f=c.length;KDe(d,`errors[${l}]`,f,a),c=YX(e,t,n,u,i,[d,...c],d,f)}}),c}function ZDe(e){return Array.isArray(e.errors)}function WDe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...ZDe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function KDe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var JDe=v(()=>{Ka()});var r3t,i3t,s3t,o3t,EH,XDe=v(()=>{JDe();jX();r3t="cause",i3t=5,s3t="LinkedErrors",o3t=((e={})=>{let t=e.limit||i3t,n=e.key||r3t;return{name:s3t,preprocessEvent(r,i,s){let o=s.getOptions();YDe(FX,o.stackParser,n,t,r,i)}}}),EH=o3t});function QDe(e){let t={},n=0;for(;n{});function eLe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return ZX.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?a3t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&c3t(s))||null}function a3t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function c3t(e){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(e)}var ZX,tLe=v(()=>{ZX=["X-Client-IP","X-Forwarded-For","Fly-Client-IP","CF-Connecting-IP","Fastly-Client-Ip","True-Client-Ip","X-Real-IP","X-Cluster-Client-IP","X-Forwarded","Forwarded-For","Forwarded","X-Vercel-Forwarded-For"]});function f3t(e,t,n,r){if(e.request={...e.request,...p3t(t,r)},r.ip){let i=t.headers&&eLe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function p3t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||ZX.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?QDe(r.cookie):void 0);n.cookies=i||{}}return t.query_string&&(n.query_string=e.query_string),t.data&&(n.data=e.data),n}var u3t,l3t,d3t,_H,nLe=v(()=>{$De();tLe();u3t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},l3t="RequestData",d3t=((e={})=>{let t={...u3t,...e.include};return{name:l3t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&f3t(n,o,{ipAddress:a},c),n}}}),_H=d3t});function rLe(e){let t="console";OR(t,e),PR(t,h3t)}function h3t(){"console"in qt&&PO.forEach(function(e){e in qt.console&&UJ(qt.console,e,function(t){return IR[e]=t,function(...n){NR("console",{args:n,level:e}),IR[e]?.apply(qt.console,n)}})})}var iLe=v(()=>{_r();nf();Wa();Nj()});function sLe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var oLe=v(()=>{});function g3t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=m3t.exec(t);return n?n.slice(1):[]}function JX(e){let t=g3t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var m3t,aLe=v(()=>{m3t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function $X(e,t){return!e||typeof e!="function"?(Fe&&Z.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):QX(e,{requireParentSpan:!0,...t})}function QX(e,t,n){if(e[XX])return e;let r=new Proxy(e,{apply(i,s,o){let a=Reflect.apply(i,s,o);return a&&typeof a=="object"&&"handle"in a&&uLe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?b3t(o,i,r,t):s==="begin"||s==="reserve"?E3t(o,i,r,t):o}});return n?r[TH]=n:A3t(e,r),e[XX]=!0,r[XX]=!0,r}function b3t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&uLe(s,n,r),s}}function E3t(e,t,n,r){return function(...i){let s=n[TH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>QX(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=QX(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function uLe(e,t,n){if(e.handle?.__sentryWrapped)return;e[S3t]=!0;let r=e.handle,i=async function(...s){if(!_3t(n))return r.apply(this,s);let o=T3t(e.strings),a=v3t(o);return Uo({name:a||"postgresjs.query",op:"db"},c=>{c.setAttribute(At,"auto.db.postgresjs"),c.setAttributes({"db.system.name":"postgres","db.query.text":a});let u=t?t[TH]:void 0;if(R3t(c,u),n.requestHook)try{n.requestHook(c,a,u)}catch(d){c.setAttribute("sentry.hook.error","requestHook failed"),Fe&&Z.error("Error in requestHook for PostgresJs instrumentation:",d)}let l=this;l.resolve=new Proxy(l.resolve,{apply:(d,f,p)=>{try{cLe(c,a,p?.[0]?.command),c.end()}catch(h){Fe&&Z.error("Error ending span in resolve callback:",h)}return Reflect.apply(d,f,p)}}),l.reject=new Proxy(l.reject,{apply:(d,f,p)=>{try{c.setStatus({code:2,message:p?.[0]?.message||"unknown_error"}),c.setAttribute("db.response.status_code",p?.[0]?.code||"unknown"),c.setAttribute("error.type",p?.[0]?.name||"unknown"),cLe(c,a),c.end()}catch(h){Fe&&Z.error("Error ending span in reject callback:",h)}return Reflect.apply(d,f,p)}});try{return r.apply(this,s)}catch(d){throw c.setStatus({code:2,message:d instanceof Error?d.message:"unknown_error"}),c.end(),d}})};i.__sentryWrapped=!0,e.handle=i}function _3t(e){return Kl()!==void 0||!e.requireParentSpan}function T3t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function v3t(e){return e?e.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Pi();Lo();_r();Oc();Cy();y3t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,TH=Symbol("sentryPostgresConnectionContext"),XX=Symbol.for("sentry.instrumented.postgresjs"),S3t=Symbol.for("sentry.query.from.instrumented.sql")});function k3t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:sLe(e),message:dLe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${dLe(r)}`:"Assertion failed",n.data.arguments=r}else return;Yl(n,{input:t,level:e})}function dLe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):qJ(e," ")}var w3t,vH,fLe=v(()=>{WX();go();iLe();_r();oLe();Ty();Wa();w3t="Console",vH=(e={})=>{let t=new Set(e.levels||PO);return{name:w3t,setup(n){rLe(({args:r,level:i})=>{ct()!==n||!t.has(i)||k3t(i,r)})}}}});var I3t,x3t,eQ,pLe=v(()=>{go();Lo();I3t="ConversationId",x3t=(()=>({name:I3t,setup(e){e.on("spanStart",t=>{let n=Un().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(sX,i)})}})),eQ=x3t});function RH(e,t={},n=Un()){let{message:r,name:i,email:s,url:o,source:a,associatedEventId:c,tags:u}=e,l={contexts:{feedback:{contact_email:s,name:i,message:r,url:o,source:a,associated_event_id:c}},type:"feedback",level:"info",tags:u},d=n?.getClient()||ct();return d&&d.emit("beforeSendFeedback",l,t),n.captureEvent(l,t)}var hLe=v(()=>{go()});var mLe,Uy,us,nA,Fy,rA,jy,iA,Hy,AH,gLe,yLe,du,yo,Zl,SLe,di,Ns,Nc,oa,Cc,aa,bLe,ll,Gs,jp,FE,Fo,tQ,ELe,iP,_Le,TLe,nQ,qy,wH,vLe,RLe,ALe,wLe,sA,kLe,ILe,xLe,OLe,jE,rQ,iQ,kH,IH,PLe,sQ,oQ,aQ,NLe,CLe,cQ,Xa=v(()=>{mLe="gen_ai.prompt",Uy="gen_ai.system",us="gen_ai.request.model",nA="gen_ai.request.stream",Fy="gen_ai.request.temperature",rA="gen_ai.request.max_tokens",jy="gen_ai.request.frequency_penalty",iA="gen_ai.request.presence_penalty",Hy="gen_ai.request.top_p",AH="gen_ai.request.top_k",gLe="gen_ai.request.encoding_format",yLe="gen_ai.request.dimensions",du="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Zl="gen_ai.response.id",SLe="gen_ai.response.stop_reason",di="gen_ai.usage.input_tokens",Ns="gen_ai.usage.output_tokens",Nc="gen_ai.usage.total_tokens",oa="gen_ai.operation.name",Cc="sentry.sdk_meta.gen_ai.input.messages.original_length",aa="gen_ai.input.messages",bLe="gen_ai.output.messages",ll="gen_ai.system_instructions",Gs="gen_ai.response.text",jp="gen_ai.request.available_tools",FE="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",tQ="gen_ai.agent.name",ELe="gen_ai.pipeline.name",iP="gen_ai.conversation.id",_Le="gen_ai.usage.cache_creation_input_tokens",TLe="gen_ai.usage.cache_read_input_tokens",nQ="gen_ai.usage.input_tokens.cache_write",qy="gen_ai.usage.input_tokens.cached",wH="gen_ai.invoke_agent",vLe="gen_ai.generate_text",RLe="gen_ai.stream_text",ALe="gen_ai.generate_object",wLe="gen_ai.stream_object",sA="gen_ai.embeddings.input",kLe="gen_ai.embeddings",ILe="gen_ai.embeddings",xLe="gen_ai.rerank",OLe="gen_ai.execute_tool",jE="gen_ai.tool.name",rQ="gen_ai.tool.call.id",iQ="gen_ai.tool.type",kH="gen_ai.tool.input",IH="gen_ai.tool.output",PLe="gen_ai.tool.description",sQ="openai.response.id",oQ="openai.response.model",aQ="openai.response.timestamp",NLe="openai.usage.completion_tokens",CLe="openai.usage.prompt_tokens",cQ="anthropic.response.timestamp"});var sP,uQ,lQ,MLe,DLe,LLe,dQ=v(()=>{sP=new Map,uQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),lQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),MLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),DLe=new Set(["ai.rerank.doRerank"]),LLe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function By(e){return!e||typeof e!="object"?!1:P3t(e)||FLe(e)||O3t(e)||jLe(e)||HLe(e)||N3t(e)||C3t(e)||M3t(e)||D3t(e)||L3t(e)||U3t(e)||F3t(e)}function O3t(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):ULe(e):!1}function ULe(e){return"image_url"in e&&!!e.image_url&&typeof e.image_url=="object"&&"url"in e.image_url&&typeof e.image_url.url=="string"&&e.image_url.url.startsWith("data:")}function P3t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&By(e.source)}function FLe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function jLe(e){return"type"in e&&e.type==="input_audio"&&"input_audio"in e&&!!e.input_audio&&typeof e.input_audio=="object"&&"data"in e.input_audio&&typeof e.input_audio.data=="string"}function HLe(e){return"type"in e&&e.type==="file"&&"file"in e&&!!e.file&&typeof e.file=="object"&&"file_data"in e.file&&typeof e.file.file_data=="string"}function N3t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function C3t(e){return"type"in e&&e.type==="file"&&"mediaType"in e&&typeof e.mediaType=="string"&&"data"in e&&typeof e.data=="string"&&!e.data.startsWith("http://")&&!e.data.startsWith("https://")}function M3t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function D3t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function L3t(e){return"b64_json"in e}function U3t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function F3t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function HE(e){let t={...e};By(t.source)&&(t.source=HE(t.source)),FLe(e)&&(t.inlineData={...e.inlineData,data:oP}),ULe(e)&&(t.image_url={...e.image_url,url:oP}),jLe(e)&&(t.input_audio={...e.input_audio,data:oP}),HLe(e)&&(t.file={...e.file,file_data:oP});for(let n of j3t)typeof t[n]=="string"&&(t[n]=oP);return t}var oP,j3t,fQ=v(()=>{oP="[Blob substitute]",j3t=["image_url","data","content","b64_json","result","uri","image"]});function OH(e,t){if(xH(e)<=t)return e;let n=0,r=e.length,i="";for(;n<=r;){let s=Math.floor((n+r)/2),o=e.slice(0,s);xH(o)<=t?(i=o,n=s+1):r=s-1}return i}function H3t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function qLe(e,t){return typeof e=="string"?t:{...e,text:t}}function q3t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function zLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function GLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function B3t(e,t){let n={...e,content:""},r=hQ(n),i=t-r;if(i<=0)return[];let s=OH(e.content,i);return[{...e,content:s}]}function z3t(e){return"parts"in e&&Array.isArray(e.parts)?{key:"parts",items:e.parts}:"content"in e&&Array.isArray(e.content)?{key:"content",items:e.content}:{key:null,items:[]}}function G3t(e,t){let{key:n,items:r}=z3t(e);if(n===null||r.length===0)return[];let i=r.map(c=>qLe(c,"")),s=hQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=H3t(c),l=xH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=OH(u,o);d&&a.push(qLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function V3t(e,t){if(!e)return[];if(typeof e=="string"){let n=OH(e,t);return n?[n]:[]}return typeof e!="object"?[]:q3t(e)?B3t(e,t):zLe(e)||GLe(e)?G3t(e,t):[]}function pQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(zLe(n)?r={...n,content:pQ(n.content)}:"content"in n&&By(n.content)&&(r={...n,content:HE(n.content)}),GLe(n)&&(r={...r??n,parts:pQ(n.parts)}),By(r)?r=HE(r):By(n)&&(r=HE(n))),r??n})}function W3t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=pQ([r]),s=i[0];return hQ(s)<=n?i:V3t(s,n)}function zy(e){return W3t(e,BLe)}function VLe(e){return OH(e,BLe)}var BLe,xH,hQ,aP=v(()=>{fQ();BLe=2e4,xH=e=>new TextEncoder().encode(e).length,hQ=e=>xH(JSON.stringify(e))});function Hp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function oA(e,t){return e?`${e}.${t}`:t}function cP(e,t,n,r,i){if(t!==void 0&&e.setAttributes({[di]:t}),n!==void 0&&e.setAttributes({[Ns]:n}),t!==void 0||n!==void 0||r!==void 0||i!==void 0){let s=(t??0)+(n??0)+(r??0)+(i??0);e.setAttributes({[Nc]:s})}}function qE(e){if(typeof e=="string")return VLe(e);if(Array.isArray(e)){let t=zy(e);return JSON.stringify(t)}return JSON.stringify(e)}function dl(e){if(!Array.isArray(e))return{systemInstructions:void 0,filteredMessages:e};let t=e.findIndex(o=>o&&typeof o=="object"&&"role"in o&&o.role==="system");if(t===-1)return{systemInstructions:void 0,filteredMessages:e};let n=e[t],r=typeof n.content=="string"?n.content:n.content!==void 0?JSON.stringify(n.content):void 0;if(!r)return{systemInstructions:void 0,filteredMessages:e};let i=JSON.stringify([{type:"text",content:r}]),s=[...e.slice(0,t),...e.slice(t+1)];return{systemInstructions:i,filteredMessages:s}}async function K3t(e,t,n){let r=e.catch(o=>{throw Wt(o,{mechanism:{handled:!1,type:n}}),o}),i=await t,s=await r;return s&&typeof s=="object"&&"data"in s?{...s,data:i}:i}function aA(e,t,n){return sa(e)?new Proxy(e,{get(r,i){let o=i in Promise.prototype||i===Symbol.toStringTag?t:r,a=Reflect.get(o,i);return i==="withResponse"&&typeof a=="function"?function(){let u=a.call(r);return K3t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var qp=v(()=>{ul();go();Ka();Xa();aP()});var PH,WLe,NH,KLe,YLe,mQ,gQ,yQ,ZLe,BE,cA,uP,JLe,XLe,QLe,$Le,e1e,t1e,SQ,bQ,n1e,r1e,EQ=v(()=>{PH="operation.name",WLe="ai.operationId",NH="ai.prompt",KLe="ai.schema",YLe="ai.response.object",mQ="ai.values",gQ="ai.response.text",yQ="ai.response.toolCalls",ZLe="ai.response.finishReason",BE="ai.prompt.messages",cA="ai.prompt.tools",uP="ai.model.id",JLe="ai.response.providerMetadata",XLe="ai.usage.cachedInputTokens",QLe="ai.telemetry.functionId",$Le="ai.usage.completionTokens",e1e="ai.usage.promptTokens",t1e="ai.usage.tokens",SQ="ai.toolCall.name",bQ="ai.toolCall.id",n1e="ai.toolCall.args",r1e="ai.toolCall.result"});function s1e(e,t){let n=e.parent_span_id;if(!n)return;let r=e.data[di],i=e.data[Ns];if(typeof r=="number"||typeof i=="number"){let s=t.get(n)||{inputTokens:0,outputTokens:0};typeof r=="number"&&(s.inputTokens+=r),typeof i=="number"&&(s.outputTokens+=i),t.set(n,s)}}function _Q(e,t){let n=t.get(e.span_id);!n||!e.data||(n.inputTokens>0&&(e.data[di]=n.inputTokens),n.outputTokens>0&&(e.data[Ns]=n.outputTokens),(n.inputTokens>0||n.outputTokens>0)&&(e.data["gen_ai.usage.total_tokens"]=n.inputTokens+n.outputTokens))}function Y3t(e){let t=new Map;for(let n of e){let r=n.data[jp];if(typeof r=="string")try{let i=JSON.parse(r);for(let s of i)s.name&&s.description&&!t.has(s.name)&&t.set(s.name,s.description)}catch{}}return t}function o1e(e,t){let n=Y3t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[jE];if(typeof i=="string"){let s=n.get(i);s&&(r.data[PLe]=s)}}r.op==="gen_ai.invoke_agent"&&_Q(r,t)}}function TQ(e){return sP.get(e)}function vQ(e){sP.delete(e)}function a1e(e){let t=e.map(n=>{if(typeof n=="string")try{return JSON.parse(n)}catch{return n}return n});return JSON.stringify(t)}function i1e(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function Z3t(e){try{let t=JSON.parse(e);if(t&&typeof t=="object"){let{messages:n}=t,{prompt:r,system:i}=t,s=[];if(typeof i=="string"&&s.push({role:"system",content:i}),typeof n=="string")try{n=JSON.parse(n)}catch{}if(Array.isArray(n))return s.push(...i1e(n)),s;if(Array.isArray(r))return s.push(...i1e(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function c1e(e,t){if(typeof t[NH]=="string"&&!t[aa]&&!t[BE]){let n=t[NH],r=Z3t(n);if(r.length){let{systemInstructions:i,filteredMessages:s}=dl(r);i&&e.setAttribute(ll,i);let o=Array.isArray(s)?s.length:0,a=qE(s);e.setAttributes({[NH]:a,[aa]:a,[Cc]:o})}}else if(typeof t[BE]=="string")try{let n=JSON.parse(t[BE]);if(Array.isArray(n)){let{systemInstructions:r,filteredMessages:i}=dl(n);r&&e.setAttribute(ll,r);let s=Array.isArray(i)?i.length:0,o=qE(i);e.setAttributes({[BE]:o,[aa]:o,[Cc]:s})}}catch{}}function u1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return wH;case"ai.generateText.doGenerate":return vLe;case"ai.streamText.doStream":return RLe;case"ai.generateObject.doGenerate":return ALe;case"ai.streamObject.doStream":return wLe;case"ai.embed.doEmbed":return kLe;case"ai.embedMany.doEmbed":return ILe;case"ai.rerank.doRerank":return xLe;case"ai.toolCall":return OLe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var RQ=v(()=>{Xa();qp();dQ();EQ()});function J3t(e){return uQ.has(e)?"invoke_agent":lQ.has(e)?"generate_content":MLe.has(e)?"embeddings":DLe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function X3t(e){let{data:t,description:n}=vt(e);if(n){if(t[SQ]&&t[bQ]&&n==="ai.toolCall"){n9t(e,t);return}!t[WLe]&&!n.startsWith("ai.")||r9t(e,n,t)}}function Q3t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)t9t(r),s1e(r,t);o1e(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&_Q(n,t)}return e}function $3t(e){if(typeof e!="string")return"stop";switch(e){case"tool-calls":return"tool_call";case"stop":case"length":case"content_filter":case"error":return e;default:return e}}function e9t(e){let t=e[gQ],n=e[yQ],r=e[ZLe];if(t==null&&n==null)return;let i=[];if(typeof t=="string"&&t.length>0&&i.push({type:"text",content:t}),n!=null)try{let s=typeof n=="string"?JSON.parse(n):n;if(Array.isArray(s)){for(let o of s){let a=o.input??o.args;i.push({type:"tool_call",id:o.toolCallId,name:o.toolName,arguments:typeof a=="string"?a:JSON.stringify(a??{})})}delete e[yQ]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:$3t(r)};e[bLe]=JSON.stringify([s]),delete e[gQ]}}function t9t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,$Le,Ns),ca(t,e1e,di),ca(t,XLe,qy),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ns),ca(t,t1e,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[qy]=="number"&&(t[di]=t[di]+t[qy]),typeof t[di]=="number"){let r=typeof t[Ns]=="number"?t[Ns]:0;t[Nc]=r+t[di]}if(t[cA]&&Array.isArray(t[cA])&&(t[cA]=a1e(t[cA])),t[PH]){let r=J3t(t[PH]);t[oa]=r,delete t[PH]}if(ca(t,BE,aa),e9t(t),ca(t,YLe,"gen_ai.response.object"),ca(t,cA,"gen_ai.request.available_tools"),ca(t,n1e,kH),ca(t,r1e,IH),ca(t,KLe,"gen_ai.request.schema"),ca(t,uP,us),Array.isArray(t[mQ])){let r=t[mQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[sA]=r.length===1?r[0]:JSON.stringify(r)}i9t(t);for(let r of Object.keys(t))r.startsWith("ai.")&&ca(t,r,`vercel.${r}`)}}function ca(e,t,n){e[t]!=null&&(e[n]=e[t],delete e[t])}function n9t(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,SQ,jE),ca(t,bQ,rQ);let n=t[rQ];typeof n=="string"&&sP.set(n,e.spanContext()),t[iQ]||e.setAttribute(iQ,"function");let r=t[jE];r&&e.updateName(`execute_tool ${r}`)}function r9t(e,t,n){e.setAttribute(At,"auto.vercelai.otel");let r=t.replace("ai.","");e.setAttribute("ai.pipeline.name",r),e.updateName(r);let i=n[QLe];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),c1e(e,n),n[uP]&&!n[yo]&&e.setAttribute(yo,n[uP]),e.setAttribute("ai.streaming",t.includes("stream"));let s=u1e(t);if(s&&e.setAttribute(zt,s),uQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[uP];if(o){let a=lQ.has(t)?"generate_content":LLe[t];a&&e.updateName(`${a} ${o}`)}}function CH(e){e.on("spanStart",X3t),e.addEventProcessor(Object.assign(Q3t,{id:"VercelAiEventProcessor"}))}function i9t(e){let t=e[JLe];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(df(e,qy,r.cachedPromptTokens),df(e,"gen_ai.usage.output_tokens.reasoning",r.reasoningTokens),df(e,"gen_ai.usage.output_tokens.prediction_accepted",r.acceptedPredictionTokens),df(e,"gen_ai.usage.output_tokens.prediction_rejected",r.rejectedPredictionTokens),e["gen_ai.conversation.id"]||df(e,"gen_ai.conversation.id",r.responseId)),n.anthropic){let i=n.anthropic.usage?.cache_read_input_tokens??n.anthropic.cacheReadInputTokens;df(e,qy,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;df(e,nQ,s)}n.bedrock?.usage&&(df(e,qy,n.bedrock.usage.cacheReadInputTokens),df(e,nQ,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(df(e,qy,n.deepseek.promptCacheHitTokens),df(e,"gen_ai.usage.input_tokens.cache_miss",n.deepseek.promptCacheMissTokens))}catch{}}function df(e,t,n){n!=null&&(e[t]=n)}var l1e=v(()=>{Lo();Oc();Xa();dQ();RQ();EQ()});var Gy,d1e,s9t,f1e,MH=v(()=>{Gy="OpenAI",d1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},s9t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],f1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...s9t]});function p1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function h1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function m1e(e){if(e===null||typeof e!="object"||!("object"in e))return!1;let t=e;return t.object==="list"&&typeof t.model=="string"&&t.model.toLowerCase().includes("embedding")}function g1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function y1e(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function S1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function b1e(e,t,n){if(DH(e,t.id,t.model,t.created),t.usage&&lP(e,t.usage.prompt_tokens,t.usage.completion_tokens,t.usage.total_tokens),Array.isArray(t.choices)){let r=t.choices.map(i=>i.finish_reason).filter(i=>i!==null);if(r.length>0&&e.setAttributes({[du]:JSON.stringify(r)}),n){let i=t.choices.map(s=>s.message?.tool_calls).filter(s=>Array.isArray(s)&&s.length>0).flat();i.length>0&&e.setAttributes({[Fo]:JSON.stringify(i)})}}}function E1e(e,t,n){if(DH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[du]:JSON.stringify([t.status])}),t.usage&&lP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.total_tokens),n){let r=t;if(Array.isArray(r.output)&&r.output.length>0){let i=r.output.filter(s=>typeof s=="object"&&s!==null&&s.type==="function_call");i.length>0&&e.setAttributes({[Fo]:JSON.stringify(i)})}}}function _1e(e,t){e.setAttributes({[oQ]:t.model,[yo]:t.model}),t.usage&&lP(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function T1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[sQ]:n,[Zl]:n,[iP]:n}),r&&e.setAttributes({[aQ]:new Date(r*1e3).toISOString()})}function lP(e,t,n,r){t!==void 0&&e.setAttributes({[CLe]:t,[di]:t}),n!==void 0&&e.setAttributes({[NLe]:n,[Ns]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function DH(e,t,n,r){e.setAttributes({[sQ]:t,[Zl]:t}),e.setAttributes({[oQ]:n,[yo]:n}),e.setAttributes({[aQ]:new Date(r*1e3).toISOString()})}function o9t(e){if("conversation"in e&&typeof e.conversation=="string")return e.conversation;if("previous_response_id"in e&&typeof e.previous_response_id=="string")return e.previous_response_id}function v1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[Fy]=e.temperature),"top_p"in e&&(t[Hy]=e.top_p),"frequency_penalty"in e&&(t[jy]=e.frequency_penalty),"presence_penalty"in e&&(t[iA]=e.presence_penalty),"stream"in e&&(t[nA]=e.stream),"encoding_format"in e&&(t[gLe]=e.encoding_format),"dimensions"in e&&(t[yLe]=e.dimensions);let n=o9t(e);return n&&(t[iP]=n),t}var AQ=v(()=>{Xa()});function a9t(e,t){for(let n of e){let r=n.index;if(!(r===void 0||!n.function))if(!(r in t.chatCompletionToolCalls))t.chatCompletionToolCalls[r]={...n,function:{name:n.function.name,arguments:n.function.arguments||""}};else{let i=t.chatCompletionToolCalls[r];n.function.arguments&&i?.function&&(i.function.arguments+=n.function.arguments)}}}function c9t(e,t,n){t.responseId=e.id??t.responseId,t.responseModel=e.model??t.responseModel,t.responseTimestamp=e.created??t.responseTimestamp,e.usage&&(t.promptTokens=e.usage.prompt_tokens,t.completionTokens=e.usage.completion_tokens,t.totalTokens=e.usage.total_tokens);for(let r of e.choices??[])n&&(r.delta?.content&&t.responseTexts.push(r.delta.content),r.delta?.tool_calls&&a9t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function u9t(e,t,n,r){if(!(e&&typeof e=="object")){t.eventTypes.push("unknown:non-object");return}if(e instanceof Error){r.setStatus({code:2,message:"internal_error"}),Wt(e,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});return}if(!("type"in e))return;let i=e;if(!f1e.includes(i.type)){t.eventTypes.push(i.type);return}if(n&&(i.type==="response.output_item.done"&&"item"in i&&t.responsesApiToolCalls.push(i.item),i.type==="response.output_text.delta"&&"delta"in i&&i.delta)){t.responseTexts.push(i.delta);return}if("response"in i){let{response:s}=i;t.responseId=s.id??t.responseId,t.responseModel=s.model??t.responseModel,t.responseTimestamp=s.created_at??t.responseTimestamp,s.usage&&(t.promptTokens=s.usage.input_tokens,t.completionTokens=s.usage.output_tokens,t.totalTokens=s.usage.total_tokens),s.status&&t.finishReasons.push(s.status),n&&s.output_text&&t.responseTexts.push(s.output_text)}}async function*R1e(e,t,n){let r={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",responseTimestamp:0,promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(let i of e)S1e(i)?c9t(i,r,n):y1e(i)&&u9t(i,r,n,t),yield i}finally{DH(t,r.responseId,r.responseModel,r.responseTimestamp),lP(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[FE]:!0}),r.finishReasons.length&&t.setAttributes({[du]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length&&t.setAttributes({[Gs]:r.responseTexts.join("")});let s=[...Object.values(r.chatCompletionToolCalls),...r.responsesApiToolCalls];s.length>0&&t.setAttributes({[Fo]:JSON.stringify(s)}),t.end()}}var A1e=v(()=>{ul();Xa();MH();AQ()});function l9t(e){let t=Array.isArray(e.tools)?e.tools:[],r=e.web_search_options&&typeof e.web_search_options=="object"?[{type:"web_search_options",...e.web_search_options}]:[],i=[...t,...r];if(i.length!==0)try{return JSON.stringify(i)}catch(s){Fe&&Z.error("Failed to serialize OpenAI tools:",s);return}}function d9t(e,t){let n={[Uy]:"openai",[oa]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=l9t(r);i&&(n[jp]=i),Object.assign(n,v1e(r))}else n[us]="unknown";return n}function f9t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(p1e(r)){if(b1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[Gs]:JSON.stringify(i)})}}else h1e(r)?(E1e(e,r,n),n&&r.output_text&&e.setAttributes({[Gs]:r.output_text})):m1e(r)?_1e(e,r):g1e(r)&&T1e(e,r)}function w1e(e,t,n){if(n==="embeddings"&&"input"in t){let a=t.input;if(a==null||typeof a=="string"&&a.length===0||Array.isArray(a)&&a.length===0)return;e.setAttribute(sA,typeof a=="string"?a:JSON.stringify(a));return}let r="input"in t?t.input:"messages"in t?t.messages:void 0;if(!r||Array.isArray(r)&&r.length===0)return;let{systemInstructions:i,filteredMessages:s}=dl(r);i&&e.setAttribute(ll,i);let o=qE(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Cc,s.length):e.setAttribute(Cc,1)}function p9t(e,t,n,r,i){return function(...o){let a=n.operation,c=d9t(o,a),u=c[us]||"unknown",l=o[0],d=l&&typeof l=="object"&&l.stream===!0,f={name:`${a} ${u}`,op:`gen_ai.${a}`,attributes:c};if(d){let m,g=Uo(f,y=>(m=e.apply(r,o),i.recordInputs&&l&&w1e(y,l,a),(async()=>{try{let b=await m;return R1e(b,y,i.recordOutputs??!1)}catch(b){throw y.setStatus({code:2,message:"internal_error"}),Wt(b,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:t}}}),y.end(),b}})()));return aA(m,g,"auto.ai.openai")}let p,h=lf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&w1e(m,l,a),p.then(g=>(f9t(m,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),g})));return aA(p,h,"auto.ai.openai")}}function k1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=oA(t,String(i)),a=d1e[o];return typeof s=="function"&&a?p9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?k1e(s,o,n):s}})}function LH(e,t){return k1e(e,"",Hp(t))}var I1e=v(()=>{Pi();ul();Lo();_r();Cy();Xa();qp();MH();A1e();AQ()});var Vy,x1e,wQ=v(()=>{Vy="Anthropic_AI",x1e={"messages.create":{operation:"chat"},"messages.stream":{operation:"chat",streaming:!0},"messages.countTokens":{operation:"chat"},"models.get":{operation:"models"},"completions.create":{operation:"chat"},"models.retrieve":{operation:"models"},"beta.messages.create":{operation:"chat"}}});function O1e(e,t){if(Array.isArray(t)&&t.length===0)return;let{systemInstructions:n,filteredMessages:r}=dl(t);n&&e.setAttributes({[ll]:n});let i=Array.isArray(r)?r.length:1;e.setAttributes({[aa]:qE(r),[Cc]:i})}function kQ(e){return e&&h9t[e]||"internal_error"}function P1e(e,t){t.error&&(e.setStatus({code:2,message:kQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function N1e(e){let{system:t,messages:n,input:r}=e,i=typeof t=="string"?[{role:"system",content:e.system}]:[],s=Array.isArray(r)?r:r!=null?[r]:void 0,o=Array.isArray(n)?n:n!=null?[n]:[],a=s??o;return[...i,...a]}var h9t,IQ=v(()=>{ul();Xa();qp();h9t={invalid_request_error:"invalid_argument",authentication_error:"unauthenticated",permission_error:"permission_denied",not_found_error:"not_found",request_too_large:"failed_precondition",rate_limit_error:"resource_exhausted",api_error:"internal_error",overloaded_error:"unavailable"}});function m9t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:kQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function g9t(e,t){if(e.type==="message_delta"&&e.usage&&"output_tokens"in e.usage&&typeof e.usage.output_tokens=="number"&&(t.completionTokens=e.usage.output_tokens),e.message){let n=e.message;n.id&&(t.responseId=n.id),n.model&&(t.responseModel=n.model),n.stop_reason&&t.finishReasons.push(n.stop_reason),n.usage&&(typeof n.usage.input_tokens=="number"&&(t.promptTokens=n.usage.input_tokens),typeof n.usage.cache_creation_input_tokens=="number"&&(t.cacheCreationInputTokens=n.usage.cache_creation_input_tokens),typeof n.usage.cache_read_input_tokens=="number"&&(t.cacheReadInputTokens=n.usage.cache_read_input_tokens))}}function y9t(e,t){e.type!=="content_block_start"||typeof e.index!="number"||!e.content_block||(e.content_block.type==="tool_use"||e.content_block.type==="server_tool_use")&&(t.activeToolBlocks[e.index]={id:e.content_block.id,name:e.content_block.name,inputJsonParts:[]})}function S9t(e,t,n){if(!(e.type!=="content_block_delta"||!e.delta)){if(typeof e.index=="number"&&"partial_json"in e.delta&&typeof e.delta.partial_json=="string"){let r=t.activeToolBlocks[e.index];r&&r.inputJsonParts.push(e.delta.partial_json)}n&&typeof e.delta.text=="string"&&t.responseTexts.push(e.delta.text)}}function b9t(e,t){if(e.type!=="content_block_stop"||typeof e.index!="number")return;let n=t.activeToolBlocks[e.index];if(!n)return;let r=n.inputJsonParts.join(""),i;try{i=r?JSON.parse(r):{}}catch{i={__unparsed:r}}t.toolCalls.push({type:"tool_use",id:n.id,name:n.name,input:i}),delete t.activeToolBlocks[e.index]}function C1e(e,t,n,r){!(e&&typeof e=="object")||m9t(e,r)||(g9t(e,t),y9t(e,t),S9t(e,t,n),b9t(e,t))}function E9t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Zl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),cP(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[FE]:!0}),e.finishReasons.length>0&&t.setAttributes({[du]:JSON.stringify(e.finishReasons)}),n&&e.responseTexts.length>0&&t.setAttributes({[Gs]:e.responseTexts.join("")}),n&&e.toolCalls.length>0&&t.setAttributes({[Fo]:JSON.stringify(e.toolCalls)}),t.end())}async function*M1e(e,t,n){let r={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(let i of e)C1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Zl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),cP(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[FE]:!0}),r.finishReasons.length>0&&t.setAttributes({[du]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length>0&&t.setAttributes({[Gs]:r.responseTexts.join("")}),n&&r.toolCalls.length>0&&t.setAttributes({[Fo]:JSON.stringify(r.toolCalls)}),t.end()}}function D1e(e,t,n){let r={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return e.on("streamEvent",i=>{C1e(i,r,n,t)}),e.on("message",()=>{E9t(r,t,n)}),e.on("error",i=>{Wt(i,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),t.isRecording()&&(t.setStatus({code:2,message:"internal_error"}),t.end())}),e}var L1e=v(()=>{ul();Xa();qp();IQ()});function _9t(e,t,n){let r={[Uy]:"anthropic",[oa]:n,[At]:"auto.ai.anthropic"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let i=e[0];i.tools&&Array.isArray(i.tools)&&(r[jp]=JSON.stringify(i.tools)),r[us]=i.model??"unknown","temperature"in i&&(r[Fy]=i.temperature),"top_p"in i&&(r[Hy]=i.top_p),"stream"in i&&(r[nA]=i.stream),"top_k"in i&&(r[AH]=i.top_k),"frequency_penalty"in i&&(r[jy]=i.frequency_penalty),"max_tokens"in i&&(r[rA]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function xQ(e,t){let n=N1e(t);O1e(e,n),"prompt"in t&&e.setAttributes({[mLe]:JSON.stringify(t.prompt)})}function T9t(e,t){if("content"in t&&Array.isArray(t.content)){e.setAttributes({[Gs]:t.content.map(r=>r.text).filter(r=>!!r).join("")});let n=[];for(let r of t.content)(r.type==="tool_use"||r.type==="server_tool_use")&&n.push(r);n.length>0&&e.setAttributes({[Fo]:JSON.stringify(n)})}"completion"in t&&e.setAttributes({[Gs]:t.completion}),"input_tokens"in t&&e.setAttributes({[Gs]:JSON.stringify(t.input_tokens)})}function v9t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Zl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[cQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[cQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&cP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function R9t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){P1e(e,t);return}n&&T9t(e,t),v9t(e,t)}}function U1e(e,t,n){throw Wt(e,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:n}}}),t.isRecording()&&(t.setStatus({code:2,message:"internal_error"}),t.end()),e}function A9t(e,t,n,r,i,s,o,a,c,u,l){let d=i[us]??"unknown",f={name:`${s} ${d}`,op:`gen_ai.${s}`,attributes:i};if(u&&!l){let p,h=Uo(f,m=>(p=e.apply(n,r),c.recordInputs&&a&&xQ(m,a),(async()=>{try{let g=await p;return M1e(g,m,c.recordOutputs??!1)}catch(g){return U1e(g,m,o)}})()));return aA(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&xQ(p,a);let h=t.apply(n,r);return D1e(h,p,c.recordOutputs??!1)}catch(h){return U1e(h,p,o)}})}function w9t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=_9t(a,t,c),l=u[us]??"unknown",d=typeof a[0]=="object"?a[0]:void 0,f=!!d?.stream,p=n.streaming===!0;if(f||p)return A9t(e,s,r,a,u,c,t,d,i,f,p);let h,m=lf({name:`${c} ${l}`,op:`gen_ai.${c}`,attributes:u},g=>(h=s.apply(r,a),i.recordInputs&&d&&xQ(g,d),h.then(y=>(R9t(g,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),y})));return aA(h,m,"auto.ai.anthropic")}})}function F1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=oA(t,String(i)),a=x1e[o];return typeof s=="function"&&a?w9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?F1e(s,o,n):s}})}function UH(e,t){return F1e(e,"",Hp(t))}var j1e=v(()=>{ul();Lo();Cy();Xa();qp();wQ();L1e();IQ()});var Wy,H1e,q1e,OQ,B1e,PQ=v(()=>{Wy="Google_GenAI",H1e={"models.generateContent":{operation:"generate_content"},"models.generateContentStream":{operation:"generate_content",streaming:!0},"models.embedContent":{operation:"embeddings"},"chats.create":{operation:"chat"},"chat.sendMessage":{operation:"chat"},"chat.sendMessageStream":{operation:"chat",streaming:!0}},q1e="google_genai",OQ="chats.create",B1e="chat"});function k9t(e,t){let n=e?.promptFeedback;if(n?.blockReason){let r=n.blockReasonMessage??n.blockReason;return t.setStatus({code:2,message:"internal_error"}),Wt(`Content blocked: ${r}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}function I9t(e,t){typeof e.responseId=="string"&&(t.responseId=e.responseId),typeof e.modelVersion=="string"&&(t.responseModel=e.modelVersion);let n=e.usageMetadata;n&&(typeof n.promptTokenCount=="number"&&(t.promptTokens=n.promptTokenCount),typeof n.candidatesTokenCount=="number"&&(t.completionTokens=n.candidatesTokenCount),typeof n.totalTokenCount=="number"&&(t.totalTokens=n.totalTokenCount))}function x9t(e,t,n){Array.isArray(e.functionCalls)&&t.toolCalls.push(...e.functionCalls);for(let r of e.candidates??[]){r?.finishReason&&!t.finishReasons.includes(r.finishReason)&&t.finishReasons.push(r.finishReason);for(let i of r?.content?.parts??[])n&&i.text&&t.responseTexts.push(i.text),i.functionCall&&t.toolCalls.push({type:"function",id:i.functionCall.id,name:i.functionCall.name,arguments:i.functionCall.args})}}function O9t(e,t,n,r){!e||k9t(e,r)||(I9t(e,t),x9t(e,t,n))}async function*z1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)O9t(i,r,n,t),yield i}finally{let i={[FE]:!0};r.responseId&&(i[Zl]=r.responseId),r.responseModel&&(i[yo]=r.responseModel),r.promptTokens!==void 0&&(i[di]=r.promptTokens),r.completionTokens!==void 0&&(i[Ns]=r.completionTokens),r.totalTokens!==void 0&&(i[Nc]=r.totalTokens),r.finishReasons.length&&(i[du]=JSON.stringify(r.finishReasons)),n&&r.responseTexts.length&&(i[Gs]=r.responseTexts.join("")),n&&r.toolCalls.length&&(i[Fo]=JSON.stringify(r.toolCalls)),t.setAttributes(i),t.end()}}var G1e=v(()=>{ul();Xa()});function uA(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>uA(n,t)):typeof e!="object"||!e?[]:"role"in e&&typeof e.role=="string"?[e]:"parts"in e?[{...e,role:t}]:[{role:t,content:e}]}var V1e=v(()=>{});function W1e(e,t){if("model"in e&&typeof e.model=="string")return e.model;if(t&&typeof t=="object"){let n=t;if("model"in n&&typeof n.model=="string")return n.model;if("modelVersion"in n&&typeof n.modelVersion=="string")return n.modelVersion}return"unknown"}function P9t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[Fy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[Hy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[AH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[rA]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[jy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[iA]=e.presencePenalty),t}function N9t(e,t,n){let r={[Uy]:q1e,[oa]:e,[At]:"auto.ai.google_genai"};if(t){if(r[us]=W1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,P9t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[jp]=JSON.stringify(s)}}}else r[us]=W1e({},n);return r}function K1e(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(sA,typeof i=="string"?i:JSON.stringify(i));return}let r=[];if("config"in t&&t.config&&typeof t.config=="object"&&"systemInstruction"in t.config&&t.config.systemInstruction&&r.push(...uA(t.config.systemInstruction,"system")),"history"in t&&r.push(...uA(t.history,"user")),"contents"in t&&r.push(...uA(t.contents,"user")),"message"in t&&r.push(...uA(t.message,"user")),Array.isArray(r)&&r.length){let{systemInstructions:i,filteredMessages:s}=dl(r);i&&e.setAttribute(ll,i);let o=Array.isArray(s)?s.length:0;e.setAttributes({[Cc]:o,[aa]:JSON.stringify(zy(s))})}}function C9t(e,t,n){if(!(!t||typeof t!="object")){if(t.modelVersion&&e.setAttribute(yo,t.modelVersion),t.usageMetadata&&typeof t.usageMetadata=="object"){let r=t.usageMetadata;typeof r.promptTokenCount=="number"&&e.setAttributes({[di]:r.promptTokenCount}),typeof r.candidatesTokenCount=="number"&&e.setAttributes({[Ns]:r.candidatesTokenCount}),typeof r.totalTokenCount=="number"&&e.setAttributes({[Nc]:r.totalTokenCount})}if(n&&Array.isArray(t.candidates)&&t.candidates.length>0){let r=t.candidates.map(i=>i.content?.parts&&Array.isArray(i.content.parts)?i.content.parts.map(s=>typeof s.text=="string"?s.text:"").filter(s=>s.length>0).join(""):"").filter(i=>i.length>0);r.length>0&&e.setAttributes({[Gs]:r.join("")})}if(n&&t.functionCalls){let r=t.functionCalls;Array.isArray(r)&&r.length>0&&e.setAttributes({[Fo]:JSON.stringify(r)})}}}function Y1e(e,t,n,r,i){let s=t===OQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=N9t(l,d,r),p=f[us]??"unknown";return n.streaming?Uo({name:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},async h=>{try{i.recordInputs&&d&&K1e(h,d,o);let m=await a.apply(r,u);return z1e(m,h,!!i.recordOutputs)}catch(m){throw h.setStatus({code:2,message:"internal_error"}),Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}}),h.end(),m}}):lf({name:s?`${l} ${p} create`:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},h=>(i.recordInputs&&d&&K1e(h,d,o),uf(()=>a.apply(r,u),m=>{Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}})},()=>{},m=>{!s&&!o&&C9t(h,m,i.recordOutputs)})))}})}function NQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=oA(t,String(i)),c=H1e[a];if(typeof o=="function"&&c){if(a===OQ){let u=Y1e(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?NQ(f,B1e,n):f}}return Y1e(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?NQ(o,a,n):o}})}function FH(e,t){return NQ(e,"",Hp(t))}var Z1e=v(()=>{ul();Lo();Cy();nH();Xa();aP();qp();PQ();G1e();V1e()});var jH,zE,J1e,HH=v(()=>{jH="LangChain",zE="auto.ai.langchain",J1e={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function vm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function lA(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&By(n)?HE(n):n);return JSON.stringify(t)}catch{return String(e)}return vm(e)}function dP(e){let t=e.toLowerCase();return J1e[t]??t}function X1e(e){return e.includes("System")?"system":e.includes("Human")?"user":e.includes("AI")||e.includes("Assistant")?"assistant":e.includes("Function")?"function":e.includes("Tool")?"tool":"user"}function CQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function fP(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:dP(i),content:lA(t.content)}}if(t.lc===1&&t.kwargs){let i=t.id,s=Array.isArray(i)&&i.length>0?i[i.length-1]:"",o=typeof s=="string"?X1e(s):"user";return{role:dP(o),content:lA(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:dP(i),content:lA(t.content)}}if(t.role)return{role:dP(String(t.role)),content:lA(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:dP(X1e(r)),content:lA(t.content)}:{role:"user",content:lA(t.content)}})}function M9t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;fl(r,Fy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;fl(r,rA,o);let a=t?.top_p??i?.top_p;fl(r,Hy,a);let c=t?.frequency_penalty;fl(r,jy,c);let u=t?.presence_penalty;return fl(r,iA,u),t&&"stream"in t&&Jl(r,nA,!!t.stream),r}function Q1e(e,t,n,r,i){return{[Uy]:vm(e??"langchain"),[oa]:"chat",[us]:vm(t),[At]:zE,...M9t(n,r,i)}}function $1e(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=Q1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Jl(a,Cc,t.length);let c=t.map(u=>({role:"user",content:u}));Jl(a,aa,vm(c))}return a}function eUe(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=Q1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=fP(t.flat()),{systemInstructions:u,filteredMessages:l}=dl(c);u&&Jl(a,ll,u);let d=Array.isArray(l)?l.length:0;Jl(a,Cc,d);let f=zy(l);Jl(a,aa,vm(f))}return a}function D9t(e,t){let n=[],r=e.flat();for(let i of r){let s=i.message?.content;if(Array.isArray(s))for(let o of s){let a=o;a.type==="tool_use"&&n.push(a)}}n.length>0&&Jl(t,Fo,vm(n))}function L9t(e,t){if(!e)return;let n=e.tokenUsage,r=e.usage;if(n)fl(t,di,n.promptTokens),fl(t,Ns,n.completionTokens),fl(t,Nc,n.totalTokens);else if(r){fl(t,di,r.input_tokens),fl(t,Ns,r.output_tokens);let i=Number(r.input_tokens),s=Number(r.output_tokens),o=(Number.isNaN(i)?0:i)+(Number.isNaN(s)?0:s);o>0&&fl(t,Nc,o),r.cache_creation_input_tokens!==void 0&&fl(t,_Le,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&fl(t,TLe,r.cache_read_input_tokens)}}function tUe(e,t){if(!e)return;let n={};if(Array.isArray(e.generations)){let u=e.generations.flat().map(l=>l.generationInfo?.finish_reason?l.generationInfo.finish_reason:l.generation_info?.finish_reason?l.generation_info.finish_reason:null).filter(l=>typeof l=="string");if(u.length>0&&Jl(n,du,vm(u)),D9t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Jl(n,Gs,vm(l))}}L9t(e.llmOutput,n);let r=e.llmOutput,s=e.generations?.[0]?.[0]?.message,o=r?.model_name??r?.model??s?.response_metadata?.model_name;o&&Jl(n,yo,o);let a=r?.id??s?.id;a&&Jl(n,Zl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Jl(n,SLe,vm(c)),n}var Jl,fl,qH=v(()=>{Lo();Xa();fQ();aP();qp();HH();Jl=(e,t,n)=>{n!=null&&(e[t]=n)},fl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function BH(e={}){let{recordInputs:t,recordOutputs:n}=Hp(e),r=new Map,i=o=>{let a=r.get(o);a?.isRecording()&&(a.end(),r.delete(o))},s={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(o,a,c,u,l,d,f,p){let h=CQ(d),m=$1e(o,a,t,h,f),g=m[us],y=m[oa];Uo({name:`${y} ${g}`,op:"gen_ai.chat",attributes:{...m,[zt]:"gen_ai.chat"}},b=>(r.set(c,b),b))},handleChatModelStart(o,a,c,u,l,d,f,p){let h=CQ(d),m=eUe(o,a,t,h,f),g=m[us],y=m[oa];Uo({name:`${y} ${g}`,op:"gen_ai.chat",attributes:{...m,[zt]:"gen_ai.chat"}},b=>(r.set(c,b),b))},handleLLMEnd(o,a,c,u,l){let d=r.get(a);if(d?.isRecording()){let f=tUe(o,n);f&&d.setAttributes(f),i(a)}},handleLLMError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${zE}.llm_error_handler`}})},handleChainStart(o,a,c,u,l,d,f,p){let h=p||o.name||"unknown_chain",m={[At]:"auto.ai.langchain","langchain.chain.name":h};t&&(m["langchain.chain.inputs"]=JSON.stringify(a)),Uo({name:`chain ${h}`,op:"gen_ai.invoke_agent",attributes:{...m,[zt]:"gen_ai.invoke_agent"}},g=>(r.set(c,g),g))},handleChainEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({"langchain.chain.outputs":JSON.stringify(o)}),i(a))},handleChainError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${zE}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:zE,[jE]:l};t&&(d[kH]=a),Uo({name:`execute_tool ${l}`,op:"gen_ai.execute_tool",attributes:{...d,[zt]:"gen_ai.execute_tool"}},f=>(r.set(c,f),f))},handleToolEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({[IH]:JSON.stringify(o)}),i(a))},handleToolError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${zE}.tool_error_handler`}})},copy(){return s},toJSON(){return{lc:1,type:"not_implemented",id:s.lc_id}},toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:s.lc_id}}};return s}var nUe=v(()=>{ul();Lo();Cy();Xa();qp();HH();qH()});var zH,MQ,DQ=v(()=>{zH="LangGraph",MQ="auto.ai.langgraph"});function U9t(e){if(!e||e.length===0)return null;let t=[];for(let n of e)if(n&&typeof n=="object"){let r=n.tool_calls;r&&Array.isArray(r)&&t.push(...r)}return t.length>0?t:null}function F9t(e){let t=e,n=0,r=0,i=0;if(t.usage_metadata&&typeof t.usage_metadata=="object"){let s=t.usage_metadata;return typeof s.input_tokens=="number"&&(n=s.input_tokens),typeof s.output_tokens=="number"&&(r=s.output_tokens),typeof s.total_tokens=="number"&&(i=s.total_tokens),{inputTokens:n,outputTokens:r,totalTokens:i}}if(t.response_metadata&&typeof t.response_metadata=="object"){let s=t.response_metadata;if(s.tokenUsage&&typeof s.tokenUsage=="object"){let o=s.tokenUsage;typeof o.promptTokens=="number"&&(n=o.promptTokens),typeof o.completionTokens=="number"&&(r=o.completionTokens),typeof o.totalTokens=="number"&&(i=o.totalTokens)}}return{inputTokens:n,outputTokens:r,totalTokens:i}}function j9t(e,t){let n=t;if(n.response_metadata&&typeof n.response_metadata=="object"){let r=n.response_metadata;r.model_name&&typeof r.model_name=="string"&&e.setAttribute(yo,r.model_name),r.finish_reason&&typeof r.finish_reason=="string"&&e.setAttribute(du,[r.finish_reason])}}function rUe(e){if(!e.builder?.nodes?.tools?.runnable?.tools)return null;let t=e.builder?.nodes?.tools?.runnable?.tools;return!t||!Array.isArray(t)||t.length===0?null:t.map(n=>({name:n.lc_kwargs?.name,description:n.lc_kwargs?.description,schema:n.lc_kwargs?.schema}))}function iUe(e,t,n){let i=n?.messages;if(!i||!Array.isArray(i))return;let s=t?.length??0,o=i.length>s?i.slice(s):[];if(o.length===0)return;let a=U9t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=fP(o);e.setAttribute(Gs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=F9t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,j9t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ns,l),d>0&&e.setAttribute(Nc,d)}var sUe=v(()=>{Xa();qH()});function LQ(e,t){return new Proxy(e,{apply(n,r,i){return lf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:MQ,[zt]:"gen_ai.create_agent",[oa]:"create_agent"}},s=>{try{let o=Reflect.apply(n,r,i),a=i.length>0?i[0]:{};a?.name&&typeof a.name=="string"&&(s.setAttribute(tQ,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=H9t(c.bind(o),o,a,t)),o}catch(o){throw s.setStatus({code:2,message:"internal_error"}),Wt(o,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),o}})}})}function H9t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return lf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:MQ,[zt]:wH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(ELe,c),a.setAttribute(tQ,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(iP,d);let f=rUe(t);f&&a.setAttribute(jp,JSON.stringify(f));let p=r.recordInputs,h=r.recordOutputs,m=o.length>0?o[0]?.messages??[]:[];if(m&&p){let y=fP(m),{systemInstructions:b,filteredMessages:S}=dl(y);b&&a.setAttribute(ll,b);let E=zy(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(E),[Cc]:_})}let g=await Reflect.apply(i,s,o);return h&&iUe(a,m??null,g),g}catch(c){throw a.setStatus({code:2,message:"internal_error"}),Wt(c,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),c}})}})}function GH(e,t){return e.compile=LQ(e.compile,Hp(t)),e}var oUe=v(()=>{ul();Lo();Cy();Xa();aP();qp();qH();DQ();sUe()});function pP(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var aUe=v(()=>{});function hP(e,t,n){let r=e[t];if(typeof r=="function"){try{e[t]=n}catch{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0,enumerable:!0})}if(e.default===r)try{e.default=n}catch{Object.defineProperty(e,"default",{value:n,writable:!0,configurable:!0,enumerable:!0})}}}var cUe=v(()=>{});function dUe(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes("node_modules/")}function fUe(e){let t=/^\s*[-]{4,}$/,n=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,r=/at (?:async )?(.+?) \(data:(.*?),/;return i=>{let s=i.match(r);if(s)return{filename:``,function:s[1]};let o=i.match(n);if(o){let a,c,u,l,d;if(o[1]){u=o[1];let m=u.lastIndexOf(".");if(u[m-1]==="."&&m--,m>0){a=u.slice(0,m),c=u.slice(m+1);let g=a.indexOf(".Module");g>0&&(u=u.slice(g+1),a=a.slice(0,g))}l=void 0}c&&(l=a,d=c),c===""&&(d=void 0,u=void 0),u===void 0&&(d=d||"?",u=l?`${l}.${d}`:d);let f=wCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?q9t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:uUe(o[3]),colno:uUe(o[4]),in_app:dUe(f||"",p)}}if(i.match(t))return{filename:i}}}function UQ(e){return[90,fUe(e)]}function uUe(e){return parseInt(e||"",10)||void 0}function q9t(e){try{return decodeURI(e)}catch{return}}var pUe=v(()=>{xR()});var fu,hUe=v(()=>{fu=class{constructor(t){this._maxSize=t,this._cache=new Map}get size(){return this._cache.size}get(t){let n=this._cache.get(t);if(n!==void 0)return this._cache.delete(t),this._cache.set(t,n),n}set(t,n){if(this._cache.size>=this._maxSize){let r=this._cache.keys().next().value;this._cache.delete(r)}this._cache.set(t,n)}remove(t){let n=this._cache.get(t);return n&&this._cache.delete(t),n}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let t=[];return this._cache.forEach(n=>t.push(n)),t}}});var st=v(()=>{qR();XCe();Cy();bm();bX();EX();tH();Lo();ul();go();KJ();FR();ADe();fH();NX();wDe();kDe();BO();nH();Oc();BR();ODe();PDe();CDe();MDe();HDe();WX();zDe();VDe();XDe();nLe();lLe();fLe();pLe();hLe();CX();l1e();RQ();I1e();MH();j1e();wQ();Z1e();PQ();nUe();HH();oUe();DQ();aUe();Wa();Ka();_r();Lp();nf();aLe();cUe();xR();pUe();Ty();Gj();Em();FO();xDe();hUe();ky();kj();by()});function rt(e,t,n){return n?fYt(e,t,n):dYt(e,t)}function dYt(e,t){return Object.assign(n=>{let r=mP[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return mP[e]=i,(0,FQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function fYt(e,t,n){return Object.assign(r=>{let i=n(r),s=mP[e];if(s)return s.setConfig(i),s;let o=new t(i);return mP[e]=o,(0,FQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function gP(e){let t=!1,n=[];if(!pYt(e))t=!0;else{let i=e._wrap;e._wrap=(...s)=>(t=!0,n.forEach(o=>o()),n=[],i(...s))}return i=>{t?i():n.push(i)}}function pYt(e){return typeof e._wrap=="function"}var FQ,mP,VH=v(()=>{FQ=Re(Jt(),1),mP={}});var Qt,ff=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var WH,mUe=v(()=>{WH="@sentry/instrumentation-http"});function gUe(e,t,n,r){let i=0,s=[];Qt&&Z.log(r,"Patching request.on");let o=new WeakMap,a=n==="small"?1e3:n==="medium"?1e4:1048576;try{e.on=new Proxy(e.on,{apply:(c,u,l)=>{let[d,f,...p]=l;if(d==="data"){Qt&&Z.log(r,`Handling request.on("data") with maximum body size of ${a}b`);let h=new Proxy(f,{apply:(m,g,y)=>{try{let b=y[0],S=Buffer.from(b);i{let[,d]=l,f=o.get(d);if(f){o.delete(d);let p=l.slice();return p[1]=f,Reflect.apply(c,u,p)}return Reflect.apply(c,u,l)}}),e.on("end",()=>{try{let c=Buffer.concat(s).toString("utf-8");if(c){let l=Buffer.byteLength(c,"utf-8")>a?`${Buffer.from(c).subarray(0,a-3).toString("utf-8")}...`:c;t.setSDKProcessingMetadata({normalizedRequest:{data:l}})}}catch(c){Qt&&Z.error(r,"Error building captured request body",c)}})}catch(c){Qt&&Z.error(r,"Error patching request to capture body",c)}}var yUe=v(()=>{st();ff()});import{subscribe as hYt}from"node:diagnostics_channel";function EUe(e,t){zs(e,"_startSpanCallback",new WeakRef(t))}function gYt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(bUe.has(s))return;let o=new Proxy(s,{apply(a,c,u){if(u[0]!=="request")return a.apply(c,u);let l=ct();if(Ve.active().getValue(SUe)||!l)return a.apply(c,u);Qt&&Z.log(HQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=rP(f),m=f.ip||f.socket?.remoteAddress,g=f.url||"/";n!=="none"&&!t?.(g,f)&&gUe(f,d,n,HQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let y=(f.method||"GET").toUpperCase(),b=Tm(g),S=`${y} ${b}`;return d.setTransactionName(S),r&&l&&yYt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),LO(d,()=>{let E={traceId:Ya(),sampleRand:Do(),propagationSpanId:Za()};Un().setPropagationContext({...E}),d.setPropagationContext({...E});let _=Qd.extract(Ve.active(),h.headers).setValue(SUe,!0);return Ve.with(_,()=>{l.emit("httpServerRequest",f,p,h);let T=f._startSpanCallback?.deref();return T?T(()=>a.apply(c,u)):a.apply(c,u)})})}});bUe.add(o),e.emit=o}function yYt(e,{requestIsolationScope:t,response:n,sessionFlushingDelayMS:r}){t.setSDKProcessingMetadata({requestSession:{status:"ok"}}),n.once("close",()=>{let i=t.getScopeData().sdkProcessingMetadata.requestSession;if(e&&i){Qt&&Z.log(`Recorded request session with status: ${i.status}`);let s=new Date;s.setSeconds(0,0);let o=s.toISOString(),a=jQ.get(e),c=a?.[o]||{exited:0,crashed:0,errored:0};if(c[{ok:"exited",crashed:"crashed",errored:"errored"}[i.status]]++,a)a[o]=c;else{Qt&&Z.log("Opened new request session aggregate.");let u={[o]:c};jQ.set(e,u);let l=()=>{clearTimeout(f),d(),jQ.delete(e);let p=Object.entries(u).map(([h,m])=>({started:h,exited:m.exited,errored:m.errored,crashed:m.crashed}));e.sendSession({aggregates:p})},d=e.on("flush",()=>{Qt&&Z.log("Sending request session aggregate due to client flush"),l()}),f=setTimeout(()=>{Qt&&Z.log("Sending request session aggregate due to flushing schedule"),l()},r).unref()}}})}var SUe,HQ,jQ,bUe,mYt,yP,KH=v(()=>{Ce();st();ff();yUe();SUe=il("sentry_http_server_instrumented"),HQ="Http.Server",jQ=new Map,bUe=new WeakSet;mYt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:HQ,setupOnce(){hYt("http.server.request.start",(r=>{gYt(r.server,t)}))},afterAllSetup(n){Qt&&n.getIntegrationByName("Http")&&Z.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}}),yP=mYt});import{errorMonitor as SYt}from"node:events";function EYt(e){return e.headers["next-router-prefetch"]==="1"}function _Yt(e){let t=Tm(e);return!!(t.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)||t.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))}function TYt(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,Rm.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&_Yt(r)||n?.(r,e))}function vYt(e){let t=RYt(e.headers);return t==null?{}:AYt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function RYt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function AYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function wYt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[um]:r,[gE]:r,"http.status_text":i?.toUpperCase()},o=(0,Rm.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[o7]=a,s[a7]=c,s[s7]=u,s["net.peer.port"]=l}if(s[gE]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===Rm.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[lm]=a}return s}function kYt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var Rm,_Ue,bYt,SP,qQ=v(()=>{Ce();Rm=Re(fr(),1);Pn();st();ff();KH();_Ue="Http.ServerSpans",bYt=((e={})=>{let t=e.ignoreStaticAssets??!0,n=e.ignoreIncomingRequests,r=e.ignoreStatusCodes??[[401,404],[301,303],[305,399]],{onSpanCreated:i}=e,{requestHook:s,responseHook:o,applyCustomAttributesOnSpan:a}=e.instrumentation??{};return{name:_Ue,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;EUe(f,m=>{if(TYt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Z.log(_Ue,"Skipping span creation for incoming request",f.url),m();let g=d.url||f.url||"/",y=nP(g),b=f.headers,S=b["user-agent"],E=b["x-forwarded-for"],_=f.httpVersion,T=b.host,R=T?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",A=c.tracer,x=g.startsWith("https")?"https":"http",k=d.method||f.method?.toUpperCase()||"GET",P=y?y.pathname:Tm(g),N=`${k} ${P}`,C=A.startSpan(N,{kind:$r.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":EYt(f)||void 0,"http.url":g,"http.method":d.method,"http.target":y?`${y.pathname}${y.search}`:P,"http.host":T,"net.host.name":R,"http.client_ip":typeof E=="string"?E.split(",")[0]:void 0,"http.user_agent":S,"http.scheme":x,"http.flavor":_,"net.transport":_?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...vYt(f),...gH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let L={type:Rm.RPCType.HTTP,span:C};return Ve.with((0,Rm.setRPCMetadata)(jt.setSpan(Ve.active(),C),L),()=>{Ve.bind(Ve.active(),f),Ve.bind(Ve.active(),p);let G=!1;function W($){if(G)return;G=!0;let q=wYt(f,p);C.setAttributes(q),C.setStatus($),C.end();let Q=q["http.route"];Q&&vn().setTransactionName(`${f.method?.toUpperCase()||"GET"} ${Q}`)}return p.on("close",()=>{W(gm(p.statusCode))}),p.on(SYt,()=>{let $=gm(p.statusCode);W($.code===2?$:{code:2})}),m()})})})},processEvent(c){if(c.type==="transaction"){let u=c.contexts?.trace?.data?.["http.response.status_code"];if(typeof u=="number"&&kYt(u,r))return Qt&&Z.log("Dropping transaction due to status code",u),null}return c},afterAllSetup(c){Qt&&(c.getIntegrationByName("Http")&&Z.warn("It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`."),c.getIntegrationByName("Http.Server")||Z.error("It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration."))}}}),SP=bYt});function bP(e,t){if(!e)return t;let n=OE(e),r=OE(t);if(!r)return e;let i={},s={};for(let[c,u]of Object.entries(r))c.startsWith(Up)?i[c]=u:s[c]=u;let o=Object.keys(i).length>0,a={};if(n)for(let[c,u]of Object.entries(n))o&&c.startsWith(Up)||(a[c]=u);Object.assign(a,i);for(let[c,u]of Object.entries(s))a[c]||(a[c]=u);return qj(a)}var BQ=v(()=>{st()});function TUe(e,t){let n=IYt(e),r=t?.statusCode,i=pP(r);Yl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function YH(e,t){let n=ZH(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=UE(n,r,t)?tA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s;if(!e.getHeader("sentry-trace")){if(o)try{e.setHeader("sentry-trace",o),Qt&&Z.log(dA,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Z.error(dA,"Failed to add sentry-trace header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(c&&!e.getHeader("traceparent"))try{e.setHeader("traceparent",c),Qt&&Z.log(dA,"Added traceparent header to outgoing request")}catch(l){Qt&&Z.error(dA,"Failed to add traceparent header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=bP(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Z.log(dA,"Added baggage header to outgoing request")}catch(f){Qt&&Z.error(dA,"Failed to add baggage header to outgoing request:",Mp(f)?f.message:"Unknown error")}}}}function IYt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Dy(n.toString()),i={url:Ly(r),"http.method":e.method||"GET"};return r.search&&(i["http.query"]=r.search),r.hash&&(i["http.fragment"]=r.hash),i}catch{return{}}}function vUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function ZH(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var dA,RUe=v(()=>{st();ff();BQ();dA="@sentry/instrumentation-http"});import{subscribe as zQ,unsubscribe as GQ}from"node:diagnostics_channel";import{errorMonitor as AUe}from"node:events";function xYt(e){let t=ZH(e),[n,r]=GX(nP(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[x7]:i,[fy]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function OYt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[um]:t,[v7]:r,"http.flavor":r,[R7]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...PYt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[_7]=a,o[T7]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function PYt(e){let t=NYt(e.headers);return t==null?{}:CYt(e.headers)?{[u7]:t}:{[l7]:t}}function NYt(e){let t=e["content-length"];if(typeof t=="number")return t;if(typeof t!="string")return;let n=parseInt(t,10);if(!isNaN(n))return n}function CYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var wUe,EP,GE,VQ=v(()=>{Ce();wUe=Re(fr(),1),EP=Re(Jt(),1);Pn();st();ff();mUe();RUe();GE=class extends EP.InstrumentationBase{constructor(t={}){super(WH,Nn,t),this._propagationDecisionMap=new fu(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){let t=!1,n=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,c.response)}),r=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,void 0)}),i=(a=>{let c=a;this._onOutgoingRequestCreated(c.request)}),s=a=>(t||(t=!0,zQ("http.client.response.finish",n),zQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&zQ("http.client.request.created",i)),a),o=()=>{GQ("http.client.response.finish",n),GQ("http.client.request.error",r),GQ("http.client.request.created",i)};return[new EP.InstrumentationNodeModuleDefinition("http",["*"],s,o),new EP.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=xYt(t),s=iH({name:r,attributes:i,onlyIfParent:!0});this.getConfig().outgoingRequestHook?.(s,t);let o=new Proxy(n,{apply(u,l,d){let[f]=d;if(f!=="response")return u.apply(l,d);let p=Ve.active(),h=jt.setSpan(p,s);return Ve.with(h,()=>u.apply(l,d))}});t.once=o;let a=!1,c=u=>{a||(a=!0,s.setStatus(u),s.end())};return t.prependListener("response",u=>{t.listenerCount("response")<=1&&u.resume(),Ve.bind(Ve.active(),u);let l=OYt(u);s.setAttributes(l),this.getConfig().outgoingResponseHook?.(s,u),this.getConfig().outgoingRequestApplyCustomAttributes?.(s,t,u);let d=(f=!1)=>{this._diag.debug("outgoingRequest on end()");let p=f||typeof u.statusCode!="number"||u.aborted&&!u.complete?{code:as.ERROR}:gm(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(AUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(AUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Z.log(WH,"Handling finished outgoing request");let r=this.getConfig().breadcrumbs,i=typeof r>"u"?!0:r,s=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,s),i&&!s&&TUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Z.log(WH,"Handling outgoing request created");let n=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);if(this._ignoreOutgoingRequestsMap.set(t,n),n)return;let r=this.getConfig().createSpansForOutgoingRequests&&(this.getConfig().spans??!0),i=this.getConfig().propagateTraceInOutgoingRequests;if(r){let s=this._startSpanForOutgoingRequest(t);if(i&&s.isRecording()){let o=jt.setSpan(Ve.active(),s);Ve.with(o,()=>{YH(t,this._propagationDecisionMap)})}else i&&YH(t,this._propagationDecisionMap)}else i&&YH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,wUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=vUe(t),i=ZH(t);return n(i,r)}}});var kUe,MYt,IUe,xUe=v(()=>{VH();KH();qQ();VQ();kUe="Http",MYt=rt(`${kUe}.sentry`,e=>new GE(e)),IUe=(e={})=>{let t={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},n={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes},r={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:e.tracePropagation??!0,ignoreOutgoingRequests:e.ignoreOutgoingRequests},i=yP(t),s=SP(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:kUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),MYt(r)},processEvent(u){return s.processEvent(u)}}}});var pf,Am,_P,fA=v(()=>{st();pf=VJ(process.versions.node),Am=pf.major,_P=pf.minor});function OUe(e,t){let n=XH(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=UE(n,r,t)?tA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:LYt(e.headers);if(KQ(u,WQ),KQ(u,JH),i&&KQ(u,DYt),!(YQ(u,WQ)!==-1)){o&&u.push(WQ,o),c&&YQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=YQ(u,JH);if(a&&d===-1)u.push(JH,a);else if(a){let f=u[d+1],p=bP(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=UYt(u))}function LYt(e){let t=e.split(`\r +Url: ${EH(e)}`),!0}return!1}function XKt(e,t){return t?.length?mH(e).some(n=>_y(n,t)):!1}function QKt(e,t){if(!t?.length)return!1;let n=e.transaction;return n?_y(n,t):!1}function $Kt(e,t){if(!t?.length)return!1;let n=EH(e);return n?_y(n,t):!1}function e3t(e,t){if(!t?.length)return!0;let n=EH(e);return n?_y(n,t):!0}function t3t(e=[]){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n&&n.filename!==""&&n.filename!=="[native code]")return n.filename||null}return null}function EH(e){try{let n=[...e.exception?.values??[]].reverse().find(r=>r.mechanism?.parent_id===void 0&&r.stacktrace?.frames?.length)?.stacktrace?.frames;return n?t3t(n):null}catch{return Fe&&Z.error(`Cannot extract url for event ${vy(e)}`),null}}function n3t(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(t=>t.stacktrace||t.type&&t.type!=="Error"||t.value):!1}var YKt,ZKt,YX,_H,WDe=v(()=>{Pi();_r();LX();Lp();Ty();YKt=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,/can't redefine non-configurable property "solana"/,/vv\(\)\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/],ZKt="EventFilters",YX=(e={})=>{let t;return{name:ZKt,setup(n){let r=n.getOptions();t=VDe(e,r)},processEvent(n,r,i){if(!t){let s=i.getOptions();t=VDe(e,s)}return JKt(n,t)?null:n}}},_H=((e={})=>({...YX(e),name:"InboundFilters"}))});function ZDe(e,t,n,r,i,s){if(!i.exception?.values||!s||!Dp(s.originalException,Error))return;let o=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;o&&(i.exception.values=ZX(e,t,r,s.originalException,n,i.exception.values,o,0))}function ZX(e,t,n,r,i,s,o,a){if(s.length>=n+1)return s;let c=[...s];if(Dp(r[i],Error)){KDe(o,a,r);let u=e(t,r[i]),l=c.length;YDe(u,i,l,a),c=ZX(e,t,n,r[i],i,[u,...c],u,l)}return JDe(r)&&r.errors.forEach((u,l)=>{if(Dp(u,Error)){KDe(o,a,r);let d=e(t,u),f=c.length;YDe(d,`errors[${l}]`,f,a),c=ZX(e,t,n,u,i,[d,...c],d,f)}}),c}function JDe(e){return Array.isArray(e.errors)}function KDe(e,t,n){e.mechanism={handled:!0,type:"auto.core.linked_errors",...JDe(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function YDe(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}var XDe=v(()=>{Ka()});var r3t,i3t,s3t,o3t,TH,QDe=v(()=>{XDe();HX();r3t="cause",i3t=5,s3t="LinkedErrors",o3t=((e={})=>{let t=e.limit||i3t,n=e.key||r3t;return{name:s3t,preprocessEvent(r,i,s){let o=s.getOptions();ZDe(jX,o.stackParser,n,t,r,i)}}}),TH=o3t});function $De(e){let t={},n=0;for(;n{});function tLe(e){let t={};for(let s of Object.keys(e))t[s.toLowerCase()]=e[s];return JX.map(s=>{let o=t[s.toLowerCase()],a=Array.isArray(o)?o.join(";"):o;return s==="Forwarded"?a3t(a):a?.split(",").map(c=>c.trim())}).reduce((s,o)=>o?s.concat(o):s,[]).find(s=>s!==null&&c3t(s))||null}function a3t(e){if(!e)return null;for(let t of e.split(";"))if(t.startsWith("for="))return t.slice(4);return null}function c3t(e){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(e)}var JX,nLe=v(()=>{JX=["X-Client-IP","X-Forwarded-For","Fly-Client-IP","CF-Connecting-IP","Fastly-Client-Ip","True-Client-Ip","X-Real-IP","X-Cluster-Client-IP","X-Forwarded","Forwarded-For","Forwarded","X-Vercel-Forwarded-For"]});function f3t(e,t,n,r){if(e.request={...e.request,...p3t(t,r)},r.ip){let i=t.headers&&tLe(t.headers)||n.ipAddress;i&&(e.user={...e.user,ip_address:i})}}function p3t(e,t){let n={},r={...e.headers};if(t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||JX.forEach(i=>{delete r[i]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies){let i=e.cookies||(r?.cookie?$De(r.cookie):void 0);n.cookies=i||{}}return t.query_string&&(n.query_string=e.query_string),t.data&&(n.data=e.data),n}var u3t,l3t,d3t,vH,rLe=v(()=>{eLe();nLe();u3t={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},l3t="RequestData",d3t=((e={})=>{let t={...u3t,...e.include};return{name:l3t,processEvent(n,r,i){let{sdkProcessingMetadata:s={}}=n,{normalizedRequest:o,ipAddress:a}=s,c={...t,ip:t.ip??i.getOptions().sendDefaultPii};return o&&f3t(n,o,{ipAddress:a},c),n}}}),vH=d3t});function iLe(e){let t="console";OR(t,e),PR(t,h3t)}function h3t(){"console"in qt&&NO.forEach(function(e){e in qt.console&&FJ(qt.console,e,function(t){return IR[e]=t,function(...n){NR("console",{args:n,level:e}),IR[e]?.apply(qt.console,n)}})})}var sLe=v(()=>{_r();nf();Wa();Mj()});function oLe(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}var aLe=v(()=>{});function g3t(e){let t=e.length>1024?`${e.slice(-1024)}`:e,n=m3t.exec(t);return n?n.slice(1):[]}function XX(e){let t=g3t(e),n=t[0]||"",r=t[1];return!n&&!r?".":(r&&(r=r.slice(0,r.length-1)),n+r)}var m3t,cLe=v(()=>{m3t=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/});function eQ(e,t){return!e||typeof e!="function"?(Fe&&Z.warn("instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance"),e):$X(e,{requireParentSpan:!0,...t})}function $X(e,t,n){if(e[QX])return e;let r=new Proxy(e,{apply(i,s,o){let a=Reflect.apply(i,s,o);return a&&typeof a=="object"&&"handle"in a&&lLe(a,r,t),a},get(i,s){let o=i[s];return typeof s!="string"||typeof o!="function"?o:s==="unsafe"||s==="file"?b3t(o,i,r,t):s==="begin"||s==="reserve"?E3t(o,i,r,t):o}});return n?r[RH]=n:A3t(e,r),e[QX]=!0,r[QX]=!0,r}function b3t(e,t,n,r){return function(...i){let s=Reflect.apply(e,t,i);return s&&typeof s=="object"&&"handle"in s&&lLe(s,n,r),s}}function E3t(e,t,n,r){return function(...i){let s=n[RH];if(!(typeof i[i.length-1]=="function")){let l=Reflect.apply(e,t,i);return l&&typeof l.then=="function"?l.then(d=>$X(d,r,s)):l}let a=i.length===1?i[0]:i[1],c=function(l){let d=$X(l,r,s);return a(d)},u=i.length===1?[c]:[i[0],c];return Reflect.apply(e,t,u)}}function lLe(e,t,n){if(e.handle?.__sentryWrapped)return;e[S3t]=!0;let r=e.handle,i=async function(...s){if(!_3t(n))return r.apply(this,s);let o=T3t(e.strings),a=v3t(o);return Uo({name:a||"postgresjs.query",op:"db"},c=>{c.setAttribute(At,"auto.db.postgresjs"),c.setAttributes({"db.system.name":"postgres","db.query.text":a});let u=t?t[RH]:void 0;if(R3t(c,u),n.requestHook)try{n.requestHook(c,a,u)}catch(d){c.setAttribute("sentry.hook.error","requestHook failed"),Fe&&Z.error("Error in requestHook for PostgresJs instrumentation:",d)}let l=this;l.resolve=new Proxy(l.resolve,{apply:(d,f,p)=>{try{uLe(c,a,p?.[0]?.command),c.end()}catch(h){Fe&&Z.error("Error ending span in resolve callback:",h)}return Reflect.apply(d,f,p)}}),l.reject=new Proxy(l.reject,{apply:(d,f,p)=>{try{c.setStatus({code:2,message:p?.[0]?.message||"unknown_error"}),c.setAttribute("db.response.status_code",p?.[0]?.code||"unknown"),c.setAttribute("error.type",p?.[0]?.name||"unknown"),uLe(c,a),c.end()}catch(h){Fe&&Z.error("Error ending span in reject callback:",h)}return Reflect.apply(d,f,p)}});try{return r.apply(this,s)}catch(d){throw c.setStatus({code:2,message:d instanceof Error?d.message:"unknown_error"}),c.end(),d}})};i.__sentryWrapped=!0,e.handle=i}function _3t(e){return Kl()!==void 0||!e.requireParentSpan}function T3t(e){if(e?.length)return e.length===1?e[0]||void 0:e.reduce((t,n,r)=>r===0?n:`${t}$${r}${n}`,"")}function v3t(e){return e?e.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Pi();Lo();_r();Oc();Cy();y3t=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,RH=Symbol("sentryPostgresConnectionContext"),QX=Symbol.for("sentry.instrumented.postgresjs"),S3t=Symbol.for("sentry.query.from.instrumented.sql")});function k3t(e,t){let n={category:"console",data:{arguments:t,logger:"console"},level:oLe(e),message:fLe(t)};if(e==="assert")if(t[0]===!1){let r=t.slice(1);n.message=r.length>0?`Assertion failed: ${fLe(r)}`:"Assertion failed",n.data.arguments=r}else return;Yl(n,{input:t,level:e})}function fLe(e){return"util"in qt&&typeof qt.util.format=="function"?qt.util.format(...e):BJ(e," ")}var w3t,AH,pLe=v(()=>{KX();go();sLe();_r();aLe();Ty();Wa();w3t="Console",AH=(e={})=>{let t=new Set(e.levels||NO);return{name:w3t,setup(n){iLe(({args:r,level:i})=>{ct()!==n||!t.has(i)||k3t(i,r)})}}}});var I3t,x3t,tQ,hLe=v(()=>{go();Lo();I3t="ConversationId",x3t=(()=>({name:I3t,setup(e){e.on("spanStart",t=>{let n=Un().getScopeData(),r=vn().getScopeData(),i=n.conversationId||r.conversationId;i&&t.setAttribute(oX,i)})}})),tQ=x3t});function wH(e,t={},n=Un()){let{message:r,name:i,email:s,url:o,source:a,associatedEventId:c,tags:u}=e,l={contexts:{feedback:{contact_email:s,name:i,message:r,url:o,source:a,associated_event_id:c}},type:"feedback",level:"info",tags:u},d=n?.getClient()||ct();return d&&d.emit("beforeSendFeedback",l,t),n.captureEvent(l,t)}var mLe=v(()=>{go()});var gLe,Uy,us,nA,Fy,rA,jy,iA,Hy,kH,yLe,SLe,du,yo,Zl,bLe,di,Ns,Nc,oa,Cc,aa,ELe,ll,Gs,jp,FE,Fo,nQ,_Le,sP,TLe,vLe,rQ,qy,IH,RLe,ALe,wLe,kLe,sA,ILe,xLe,OLe,PLe,jE,iQ,sQ,xH,OH,NLe,oQ,aQ,cQ,CLe,MLe,uQ,Xa=v(()=>{gLe="gen_ai.prompt",Uy="gen_ai.system",us="gen_ai.request.model",nA="gen_ai.request.stream",Fy="gen_ai.request.temperature",rA="gen_ai.request.max_tokens",jy="gen_ai.request.frequency_penalty",iA="gen_ai.request.presence_penalty",Hy="gen_ai.request.top_p",kH="gen_ai.request.top_k",yLe="gen_ai.request.encoding_format",SLe="gen_ai.request.dimensions",du="gen_ai.response.finish_reasons",yo="gen_ai.response.model",Zl="gen_ai.response.id",bLe="gen_ai.response.stop_reason",di="gen_ai.usage.input_tokens",Ns="gen_ai.usage.output_tokens",Nc="gen_ai.usage.total_tokens",oa="gen_ai.operation.name",Cc="sentry.sdk_meta.gen_ai.input.messages.original_length",aa="gen_ai.input.messages",ELe="gen_ai.output.messages",ll="gen_ai.system_instructions",Gs="gen_ai.response.text",jp="gen_ai.request.available_tools",FE="gen_ai.response.streaming",Fo="gen_ai.response.tool_calls",nQ="gen_ai.agent.name",_Le="gen_ai.pipeline.name",sP="gen_ai.conversation.id",TLe="gen_ai.usage.cache_creation_input_tokens",vLe="gen_ai.usage.cache_read_input_tokens",rQ="gen_ai.usage.input_tokens.cache_write",qy="gen_ai.usage.input_tokens.cached",IH="gen_ai.invoke_agent",RLe="gen_ai.generate_text",ALe="gen_ai.stream_text",wLe="gen_ai.generate_object",kLe="gen_ai.stream_object",sA="gen_ai.embeddings.input",ILe="gen_ai.embeddings",xLe="gen_ai.embeddings",OLe="gen_ai.rerank",PLe="gen_ai.execute_tool",jE="gen_ai.tool.name",iQ="gen_ai.tool.call.id",sQ="gen_ai.tool.type",xH="gen_ai.tool.input",OH="gen_ai.tool.output",NLe="gen_ai.tool.description",oQ="openai.response.id",aQ="openai.response.model",cQ="openai.response.timestamp",CLe="openai.usage.completion_tokens",MLe="openai.usage.prompt_tokens",uQ="anthropic.response.timestamp"});var oP,lQ,dQ,DLe,LLe,ULe,fQ=v(()=>{oP=new Map,lQ=new Set(["ai.generateText","ai.streamText","ai.generateObject","ai.streamObject"]),dQ=new Set(["ai.generateText.doGenerate","ai.streamText.doStream","ai.generateObject.doGenerate","ai.streamObject.doStream"]),DLe=new Set(["ai.embed.doEmbed","ai.embedMany.doEmbed"]),LLe=new Set(["ai.rerank.doRerank"]),ULe={"ai.embed.doEmbed":"embeddings","ai.embedMany.doEmbed":"embeddings","ai.rerank.doRerank":"rerank"}});function By(e){return!e||typeof e!="object"?!1:P3t(e)||jLe(e)||O3t(e)||HLe(e)||qLe(e)||N3t(e)||C3t(e)||M3t(e)||D3t(e)||L3t(e)||U3t(e)||F3t(e)}function O3t(e){return"image_url"in e?typeof e.image_url=="string"?e.image_url.startsWith("data:"):FLe(e):!1}function FLe(e){return"image_url"in e&&!!e.image_url&&typeof e.image_url=="object"&&"url"in e.image_url&&typeof e.image_url.url=="string"&&e.image_url.url.startsWith("data:")}function P3t(e){return"type"in e&&typeof e.type=="string"&&"source"in e&&By(e.source)}function jLe(e){return"inlineData"in e&&!!e.inlineData&&typeof e.inlineData=="object"&&"data"in e.inlineData&&typeof e.inlineData.data=="string"}function HLe(e){return"type"in e&&e.type==="input_audio"&&"input_audio"in e&&!!e.input_audio&&typeof e.input_audio=="object"&&"data"in e.input_audio&&typeof e.input_audio.data=="string"}function qLe(e){return"type"in e&&e.type==="file"&&"file"in e&&!!e.file&&typeof e.file=="object"&&"file_data"in e.file&&typeof e.file.file_data=="string"}function N3t(e){return"media_type"in e&&typeof e.media_type=="string"&&"data"in e}function C3t(e){return"type"in e&&e.type==="file"&&"mediaType"in e&&typeof e.mediaType=="string"&&"data"in e&&typeof e.data=="string"&&!e.data.startsWith("http://")&&!e.data.startsWith("https://")}function M3t(e){return"type"in e&&e.type==="image"&&"image"in e&&typeof e.image=="string"&&!e.image.startsWith("http://")&&!e.image.startsWith("https://")}function D3t(e){return"type"in e&&(e.type==="blob"||e.type==="base64")}function L3t(e){return"b64_json"in e}function U3t(e){return"type"in e&&"result"in e&&e.type==="image_generation"}function F3t(e){return"uri"in e&&typeof e.uri=="string"&&e.uri.startsWith("data:")}function HE(e){let t={...e};By(t.source)&&(t.source=HE(t.source)),jLe(e)&&(t.inlineData={...e.inlineData,data:aP}),FLe(e)&&(t.image_url={...e.image_url,url:aP}),HLe(e)&&(t.input_audio={...e.input_audio,data:aP}),qLe(e)&&(t.file={...e.file,file_data:aP});for(let n of j3t)typeof t[n]=="string"&&(t[n]=aP);return t}var aP,j3t,pQ=v(()=>{aP="[Blob substitute]",j3t=["image_url","data","content","b64_json","result","uri","image"]});function NH(e,t){if(PH(e)<=t)return e;let n=0,r=e.length,i="";for(;n<=r;){let s=Math.floor((n+r)/2),o=e.slice(0,s);PH(o)<=t?(i=o,n=s+1):r=s-1}return i}function H3t(e){return typeof e=="string"?e:"text"in e&&typeof e.text=="string"?e.text:""}function BLe(e,t){return typeof e=="string"?t:{...e,text:t}}function q3t(e){return e!==null&&typeof e=="object"&&"content"in e&&typeof e.content=="string"}function GLe(e){return e!==null&&typeof e=="object"&&"content"in e&&Array.isArray(e.content)}function VLe(e){return e!==null&&typeof e=="object"&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}function B3t(e,t){let n={...e,content:""},r=mQ(n),i=t-r;if(i<=0)return[];let s=NH(e.content,i);return[{...e,content:s}]}function z3t(e){return"parts"in e&&Array.isArray(e.parts)?{key:"parts",items:e.parts}:"content"in e&&Array.isArray(e.content)?{key:"content",items:e.content}:{key:null,items:[]}}function G3t(e,t){let{key:n,items:r}=z3t(e);if(n===null||r.length===0)return[];let i=r.map(c=>BLe(c,"")),s=mQ({...e,[n]:i}),o=t-s;if(o<=0)return[];let a=[];for(let c of r){let u=H3t(c),l=PH(u);if(l<=o)a.push(c),o-=l;else if(a.length===0){let d=NH(u,o);d&&a.push(BLe(c,d));break}else break}return a.length<=0?[]:[{...e,[n]:a}]}function V3t(e,t){if(!e)return[];if(typeof e=="string"){let n=NH(e,t);return n?[n]:[]}return typeof e!="object"?[]:q3t(e)?B3t(e,t):GLe(e)||VLe(e)?G3t(e,t):[]}function hQ(e){return e.map(n=>{let r;return n&&typeof n=="object"&&(GLe(n)?r={...n,content:hQ(n.content)}:"content"in n&&By(n.content)&&(r={...n,content:HE(n.content)}),VLe(n)&&(r={...r??n,parts:hQ(n.parts)}),By(r)?r=HE(r):By(n)&&(r=HE(n))),r??n})}function W3t(e,t){if(!Array.isArray(e)||e.length===0)return e;let n=t-2,r=e[e.length-1],i=hQ([r]),s=i[0];return mQ(s)<=n?i:V3t(s,n)}function zy(e){return W3t(e,zLe)}function WLe(e){return NH(e,zLe)}var zLe,PH,mQ,cP=v(()=>{pQ();zLe=2e4,PH=e=>new TextEncoder().encode(e).length,mQ=e=>PH(JSON.stringify(e))});function Hp(e){let t=!!ct()?.getOptions().sendDefaultPii;return{...e,recordInputs:e?.recordInputs??t,recordOutputs:e?.recordOutputs??t}}function oA(e,t){return e?`${e}.${t}`:t}function uP(e,t,n,r,i){if(t!==void 0&&e.setAttributes({[di]:t}),n!==void 0&&e.setAttributes({[Ns]:n}),t!==void 0||n!==void 0||r!==void 0||i!==void 0){let s=(t??0)+(n??0)+(r??0)+(i??0);e.setAttributes({[Nc]:s})}}function qE(e){if(typeof e=="string")return WLe(e);if(Array.isArray(e)){let t=zy(e);return JSON.stringify(t)}return JSON.stringify(e)}function dl(e){if(!Array.isArray(e))return{systemInstructions:void 0,filteredMessages:e};let t=e.findIndex(o=>o&&typeof o=="object"&&"role"in o&&o.role==="system");if(t===-1)return{systemInstructions:void 0,filteredMessages:e};let n=e[t],r=typeof n.content=="string"?n.content:n.content!==void 0?JSON.stringify(n.content):void 0;if(!r)return{systemInstructions:void 0,filteredMessages:e};let i=JSON.stringify([{type:"text",content:r}]),s=[...e.slice(0,t),...e.slice(t+1)];return{systemInstructions:i,filteredMessages:s}}async function K3t(e,t,n){let r=e.catch(o=>{throw Wt(o,{mechanism:{handled:!1,type:n}}),o}),i=await t,s=await r;return s&&typeof s=="object"&&"data"in s?{...s,data:i}:i}function aA(e,t,n){return sa(e)?new Proxy(e,{get(r,i){let o=i in Promise.prototype||i===Symbol.toStringTag?t:r,a=Reflect.get(o,i);return i==="withResponse"&&typeof a=="function"?function(){let u=a.call(r);return K3t(u,t,n)}:typeof a=="function"?a.bind(o):a}}):t}var qp=v(()=>{ul();go();Ka();Xa();cP()});var CH,KLe,MH,YLe,ZLe,gQ,yQ,SQ,JLe,BE,cA,lP,XLe,QLe,$Le,e1e,t1e,n1e,bQ,EQ,r1e,i1e,_Q=v(()=>{CH="operation.name",KLe="ai.operationId",MH="ai.prompt",YLe="ai.schema",ZLe="ai.response.object",gQ="ai.values",yQ="ai.response.text",SQ="ai.response.toolCalls",JLe="ai.response.finishReason",BE="ai.prompt.messages",cA="ai.prompt.tools",lP="ai.model.id",XLe="ai.response.providerMetadata",QLe="ai.usage.cachedInputTokens",$Le="ai.telemetry.functionId",e1e="ai.usage.completionTokens",t1e="ai.usage.promptTokens",n1e="ai.usage.tokens",bQ="ai.toolCall.name",EQ="ai.toolCall.id",r1e="ai.toolCall.args",i1e="ai.toolCall.result"});function o1e(e,t){let n=e.parent_span_id;if(!n)return;let r=e.data[di],i=e.data[Ns];if(typeof r=="number"||typeof i=="number"){let s=t.get(n)||{inputTokens:0,outputTokens:0};typeof r=="number"&&(s.inputTokens+=r),typeof i=="number"&&(s.outputTokens+=i),t.set(n,s)}}function TQ(e,t){let n=t.get(e.span_id);!n||!e.data||(n.inputTokens>0&&(e.data[di]=n.inputTokens),n.outputTokens>0&&(e.data[Ns]=n.outputTokens),(n.inputTokens>0||n.outputTokens>0)&&(e.data["gen_ai.usage.total_tokens"]=n.inputTokens+n.outputTokens))}function Y3t(e){let t=new Map;for(let n of e){let r=n.data[jp];if(typeof r=="string")try{let i=JSON.parse(r);for(let s of i)s.name&&s.description&&!t.has(s.name)&&t.set(s.name,s.description)}catch{}}return t}function a1e(e,t){let n=Y3t(e);for(let r of e){if(r.op==="gen_ai.execute_tool"){let i=r.data[jE];if(typeof i=="string"){let s=n.get(i);s&&(r.data[NLe]=s)}}r.op==="gen_ai.invoke_agent"&&TQ(r,t)}}function vQ(e){return oP.get(e)}function RQ(e){oP.delete(e)}function c1e(e){let t=e.map(n=>{if(typeof n=="string")try{return JSON.parse(n)}catch{return n}return n});return JSON.stringify(t)}function s1e(e){return e.filter(t=>!!t&&typeof t=="object"&&"role"in t&&"content"in t)}function Z3t(e){try{let t=JSON.parse(e);if(t&&typeof t=="object"){let{messages:n}=t,{prompt:r,system:i}=t,s=[];if(typeof i=="string"&&s.push({role:"system",content:i}),typeof n=="string")try{n=JSON.parse(n)}catch{}if(Array.isArray(n))return s.push(...s1e(n)),s;if(Array.isArray(r))return s.push(...s1e(r)),s;if(typeof r=="string"&&s.push({role:"user",content:r}),s.length>0)return s}}catch{}return[]}function u1e(e,t){if(typeof t[MH]=="string"&&!t[aa]&&!t[BE]){let n=t[MH],r=Z3t(n);if(r.length){let{systemInstructions:i,filteredMessages:s}=dl(r);i&&e.setAttribute(ll,i);let o=Array.isArray(s)?s.length:0,a=qE(s);e.setAttributes({[MH]:a,[aa]:a,[Cc]:o})}}else if(typeof t[BE]=="string")try{let n=JSON.parse(t[BE]);if(Array.isArray(n)){let{systemInstructions:r,filteredMessages:i}=dl(n);r&&e.setAttribute(ll,r);let s=Array.isArray(i)?i.length:0,o=qE(i);e.setAttributes({[BE]:o,[aa]:o,[Cc]:s})}}catch{}}function l1e(e){switch(e){case"ai.generateText":case"ai.streamText":case"ai.generateObject":case"ai.streamObject":return IH;case"ai.generateText.doGenerate":return RLe;case"ai.streamText.doStream":return ALe;case"ai.generateObject.doGenerate":return wLe;case"ai.streamObject.doStream":return kLe;case"ai.embed.doEmbed":return ILe;case"ai.embedMany.doEmbed":return xLe;case"ai.rerank.doRerank":return OLe;case"ai.toolCall":return PLe;default:return e.startsWith("ai.stream")?"ai.run":void 0}}var AQ=v(()=>{Xa();qp();fQ();_Q()});function J3t(e){return lQ.has(e)?"invoke_agent":dQ.has(e)?"generate_content":DLe.has(e)?"embeddings":LLe.has(e)?"rerank":e==="ai.toolCall"?"execute_tool":e}function X3t(e){let{data:t,description:n}=vt(e);if(n){if(t[bQ]&&t[EQ]&&n==="ai.toolCall"){n9t(e,t);return}!t[KLe]&&!n.startsWith("ai.")||r9t(e,n,t)}}function Q3t(e){if(e.type==="transaction"&&e.spans){let t=new Map;for(let r of e.spans)t9t(r),o1e(r,t);a1e(e.spans,t);let n=e.contexts?.trace;n?.op==="gen_ai.invoke_agent"&&TQ(n,t)}return e}function $3t(e){if(typeof e!="string")return"stop";switch(e){case"tool-calls":return"tool_call";case"stop":case"length":case"content_filter":case"error":return e;default:return e}}function e9t(e){let t=e[yQ],n=e[SQ],r=e[JLe];if(t==null&&n==null)return;let i=[];if(typeof t=="string"&&t.length>0&&i.push({type:"text",content:t}),n!=null)try{let s=typeof n=="string"?JSON.parse(n):n;if(Array.isArray(s)){for(let o of s){let a=o.input??o.args;i.push({type:"tool_call",id:o.toolCallId,name:o.toolName,arguments:typeof a=="string"?a:JSON.stringify(a??{})})}delete e[SQ]}}catch{}if(i.length>0){let s={role:"assistant",parts:i,finish_reason:$3t(r)};e[ELe]=JSON.stringify([s]),delete e[yQ]}}function t9t(e){let{data:t,origin:n}=e;if(n==="auto.vercelai.otel"){if(e.status&&e.status!=="ok"&&(e.status="internal_error"),ca(t,e1e,Ns),ca(t,t1e,di),ca(t,QLe,qy),ca(t,"ai.usage.inputTokens",di),ca(t,"ai.usage.outputTokens",Ns),ca(t,n1e,di),ca(t,"ai.response.avgOutputTokensPerSecond","ai.response.avgCompletionTokensPerSecond"),typeof t[di]=="number"&&typeof t[qy]=="number"&&(t[di]=t[di]+t[qy]),typeof t[di]=="number"){let r=typeof t[Ns]=="number"?t[Ns]:0;t[Nc]=r+t[di]}if(t[cA]&&Array.isArray(t[cA])&&(t[cA]=c1e(t[cA])),t[CH]){let r=J3t(t[CH]);t[oa]=r,delete t[CH]}if(ca(t,BE,aa),e9t(t),ca(t,ZLe,"gen_ai.response.object"),ca(t,cA,"gen_ai.request.available_tools"),ca(t,r1e,xH),ca(t,i1e,OH),ca(t,YLe,"gen_ai.request.schema"),ca(t,lP,us),Array.isArray(t[gQ])){let r=t[gQ].map(i=>{try{return JSON.parse(i)}catch{return i}});t[sA]=r.length===1?r[0]:JSON.stringify(r)}i9t(t);for(let r of Object.keys(t))r.startsWith("ai.")&&ca(t,r,`vercel.${r}`)}}function ca(e,t,n){e[t]!=null&&(e[n]=e[t],delete e[t])}function n9t(e,t){e.setAttribute(At,"auto.vercelai.otel"),e.setAttribute(zt,"gen_ai.execute_tool"),e.setAttribute(oa,"execute_tool"),ca(t,bQ,jE),ca(t,EQ,iQ);let n=t[iQ];typeof n=="string"&&oP.set(n,e.spanContext()),t[sQ]||e.setAttribute(sQ,"function");let r=t[jE];r&&e.updateName(`execute_tool ${r}`)}function r9t(e,t,n){e.setAttribute(At,"auto.vercelai.otel");let r=t.replace("ai.","");e.setAttribute("ai.pipeline.name",r),e.updateName(r);let i=n[$Le];i&&typeof i=="string"&&e.setAttribute("gen_ai.function_id",i),u1e(e,n),n[lP]&&!n[yo]&&e.setAttribute(yo,n[lP]),e.setAttribute("ai.streaming",t.includes("stream"));let s=l1e(t);if(s&&e.setAttribute(zt,s),lQ.has(t)){i&&typeof i=="string"?e.updateName(`invoke_agent ${i}`):e.updateName("invoke_agent");return}let o=n[lP];if(o){let a=dQ.has(t)?"generate_content":ULe[t];a&&e.updateName(`${a} ${o}`)}}function DH(e){e.on("spanStart",X3t),e.addEventProcessor(Object.assign(Q3t,{id:"VercelAiEventProcessor"}))}function i9t(e){let t=e[XLe];if(t)try{let n=JSON.parse(t),r=n.openai??n.azure;if(r&&(df(e,qy,r.cachedPromptTokens),df(e,"gen_ai.usage.output_tokens.reasoning",r.reasoningTokens),df(e,"gen_ai.usage.output_tokens.prediction_accepted",r.acceptedPredictionTokens),df(e,"gen_ai.usage.output_tokens.prediction_rejected",r.rejectedPredictionTokens),e["gen_ai.conversation.id"]||df(e,"gen_ai.conversation.id",r.responseId)),n.anthropic){let i=n.anthropic.usage?.cache_read_input_tokens??n.anthropic.cacheReadInputTokens;df(e,qy,i);let s=n.anthropic.usage?.cache_creation_input_tokens??n.anthropic.cacheCreationInputTokens;df(e,rQ,s)}n.bedrock?.usage&&(df(e,qy,n.bedrock.usage.cacheReadInputTokens),df(e,rQ,n.bedrock.usage.cacheWriteInputTokens)),n.deepseek&&(df(e,qy,n.deepseek.promptCacheHitTokens),df(e,"gen_ai.usage.input_tokens.cache_miss",n.deepseek.promptCacheMissTokens))}catch{}}function df(e,t,n){n!=null&&(e[t]=n)}var d1e=v(()=>{Lo();Oc();Xa();fQ();AQ();_Q()});var Gy,f1e,s9t,p1e,LH=v(()=>{Gy="OpenAI",f1e={"responses.create":{operation:"chat"},"chat.completions.create":{operation:"chat"},"embeddings.create":{operation:"embeddings"},"conversations.create":{operation:"chat"}},s9t=["response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"],p1e=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta",...s9t]});function h1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion"}function m1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="response"}function g1e(e){if(e===null||typeof e!="object"||!("object"in e))return!1;let t=e;return t.object==="list"&&typeof t.model=="string"&&t.model.toLowerCase().includes("embedding")}function y1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="conversation"}function S1e(e){return e!==null&&typeof e=="object"&&"type"in e&&typeof e.type=="string"&&e.type.startsWith("response.")}function b1e(e){return e!==null&&typeof e=="object"&&"object"in e&&e.object==="chat.completion.chunk"}function E1e(e,t,n){if(UH(e,t.id,t.model,t.created),t.usage&&dP(e,t.usage.prompt_tokens,t.usage.completion_tokens,t.usage.total_tokens),Array.isArray(t.choices)){let r=t.choices.map(i=>i.finish_reason).filter(i=>i!==null);if(r.length>0&&e.setAttributes({[du]:JSON.stringify(r)}),n){let i=t.choices.map(s=>s.message?.tool_calls).filter(s=>Array.isArray(s)&&s.length>0).flat();i.length>0&&e.setAttributes({[Fo]:JSON.stringify(i)})}}}function _1e(e,t,n){if(UH(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[du]:JSON.stringify([t.status])}),t.usage&&dP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.total_tokens),n){let r=t;if(Array.isArray(r.output)&&r.output.length>0){let i=r.output.filter(s=>typeof s=="object"&&s!==null&&s.type==="function_call");i.length>0&&e.setAttributes({[Fo]:JSON.stringify(i)})}}}function T1e(e,t){e.setAttributes({[aQ]:t.model,[yo]:t.model}),t.usage&&dP(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}function v1e(e,t){let{id:n,created_at:r}=t;e.setAttributes({[oQ]:n,[Zl]:n,[sP]:n}),r&&e.setAttributes({[cQ]:new Date(r*1e3).toISOString()})}function dP(e,t,n,r){t!==void 0&&e.setAttributes({[MLe]:t,[di]:t}),n!==void 0&&e.setAttributes({[CLe]:n,[Ns]:n}),r!==void 0&&e.setAttributes({[Nc]:r})}function UH(e,t,n,r){e.setAttributes({[oQ]:t,[Zl]:t}),e.setAttributes({[aQ]:n,[yo]:n}),e.setAttributes({[cQ]:new Date(r*1e3).toISOString()})}function o9t(e){if("conversation"in e&&typeof e.conversation=="string")return e.conversation;if("previous_response_id"in e&&typeof e.previous_response_id=="string")return e.previous_response_id}function R1e(e){let t={[us]:e.model??"unknown"};"temperature"in e&&(t[Fy]=e.temperature),"top_p"in e&&(t[Hy]=e.top_p),"frequency_penalty"in e&&(t[jy]=e.frequency_penalty),"presence_penalty"in e&&(t[iA]=e.presence_penalty),"stream"in e&&(t[nA]=e.stream),"encoding_format"in e&&(t[yLe]=e.encoding_format),"dimensions"in e&&(t[SLe]=e.dimensions);let n=o9t(e);return n&&(t[sP]=n),t}var wQ=v(()=>{Xa()});function a9t(e,t){for(let n of e){let r=n.index;if(!(r===void 0||!n.function))if(!(r in t.chatCompletionToolCalls))t.chatCompletionToolCalls[r]={...n,function:{name:n.function.name,arguments:n.function.arguments||""}};else{let i=t.chatCompletionToolCalls[r];n.function.arguments&&i?.function&&(i.function.arguments+=n.function.arguments)}}}function c9t(e,t,n){t.responseId=e.id??t.responseId,t.responseModel=e.model??t.responseModel,t.responseTimestamp=e.created??t.responseTimestamp,e.usage&&(t.promptTokens=e.usage.prompt_tokens,t.completionTokens=e.usage.completion_tokens,t.totalTokens=e.usage.total_tokens);for(let r of e.choices??[])n&&(r.delta?.content&&t.responseTexts.push(r.delta.content),r.delta?.tool_calls&&a9t(r.delta.tool_calls,t)),r.finish_reason&&t.finishReasons.push(r.finish_reason)}function u9t(e,t,n,r){if(!(e&&typeof e=="object")){t.eventTypes.push("unknown:non-object");return}if(e instanceof Error){r.setStatus({code:2,message:"internal_error"}),Wt(e,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});return}if(!("type"in e))return;let i=e;if(!p1e.includes(i.type)){t.eventTypes.push(i.type);return}if(n&&(i.type==="response.output_item.done"&&"item"in i&&t.responsesApiToolCalls.push(i.item),i.type==="response.output_text.delta"&&"delta"in i&&i.delta)){t.responseTexts.push(i.delta);return}if("response"in i){let{response:s}=i;t.responseId=s.id??t.responseId,t.responseModel=s.model??t.responseModel,t.responseTimestamp=s.created_at??t.responseTimestamp,s.usage&&(t.promptTokens=s.usage.input_tokens,t.completionTokens=s.usage.output_tokens,t.totalTokens=s.usage.total_tokens),s.status&&t.finishReasons.push(s.status),n&&s.output_text&&t.responseTexts.push(s.output_text)}}async function*A1e(e,t,n){let r={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",responseTimestamp:0,promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(let i of e)b1e(i)?c9t(i,r,n):S1e(i)&&u9t(i,r,n,t),yield i}finally{UH(t,r.responseId,r.responseModel,r.responseTimestamp),dP(t,r.promptTokens,r.completionTokens,r.totalTokens),t.setAttributes({[FE]:!0}),r.finishReasons.length&&t.setAttributes({[du]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length&&t.setAttributes({[Gs]:r.responseTexts.join("")});let s=[...Object.values(r.chatCompletionToolCalls),...r.responsesApiToolCalls];s.length>0&&t.setAttributes({[Fo]:JSON.stringify(s)}),t.end()}}var w1e=v(()=>{ul();Xa();LH();wQ()});function l9t(e){let t=Array.isArray(e.tools)?e.tools:[],r=e.web_search_options&&typeof e.web_search_options=="object"?[{type:"web_search_options",...e.web_search_options}]:[],i=[...t,...r];if(i.length!==0)try{return JSON.stringify(i)}catch(s){Fe&&Z.error("Failed to serialize OpenAI tools:",s);return}}function d9t(e,t){let n={[Uy]:"openai",[oa]:t,[At]:"auto.ai.openai"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let r=e[0],i=l9t(r);i&&(n[jp]=i),Object.assign(n,R1e(r))}else n[us]="unknown";return n}function f9t(e,t,n){if(!t||typeof t!="object")return;let r=t;if(h1e(r)){if(E1e(e,r,n),n&&r.choices?.length){let i=r.choices.map(s=>s.message?.content||"");e.setAttributes({[Gs]:JSON.stringify(i)})}}else m1e(r)?(_1e(e,r,n),n&&r.output_text&&e.setAttributes({[Gs]:r.output_text})):g1e(r)?T1e(e,r):y1e(r)&&v1e(e,r)}function k1e(e,t,n){if(n==="embeddings"&&"input"in t){let a=t.input;if(a==null||typeof a=="string"&&a.length===0||Array.isArray(a)&&a.length===0)return;e.setAttribute(sA,typeof a=="string"?a:JSON.stringify(a));return}let r="input"in t?t.input:"messages"in t?t.messages:void 0;if(!r||Array.isArray(r)&&r.length===0)return;let{systemInstructions:i,filteredMessages:s}=dl(r);i&&e.setAttribute(ll,i);let o=qE(s);e.setAttribute(aa,o),Array.isArray(s)?e.setAttribute(Cc,s.length):e.setAttribute(Cc,1)}function p9t(e,t,n,r,i){return function(...o){let a=n.operation,c=d9t(o,a),u=c[us]||"unknown",l=o[0],d=l&&typeof l=="object"&&l.stream===!0,f={name:`${a} ${u}`,op:`gen_ai.${a}`,attributes:c};if(d){let m,g=Uo(f,y=>(m=e.apply(r,o),i.recordInputs&&l&&k1e(y,l,a),(async()=>{try{let b=await m;return A1e(b,y,i.recordOutputs??!1)}catch(b){throw y.setStatus({code:2,message:"internal_error"}),Wt(b,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:t}}}),y.end(),b}})()));return aA(m,g,"auto.ai.openai")}let p,h=lf(f,m=>(p=e.apply(r,o),i.recordInputs&&l&&k1e(m,l,a),p.then(g=>(f9t(m,g,i.recordOutputs),g),g=>{throw Wt(g,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),g})));return aA(p,h,"auto.ai.openai")}}function I1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=oA(t,String(i)),a=f1e[o];return typeof s=="function"&&a?p9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?I1e(s,o,n):s}})}function FH(e,t){return I1e(e,"",Hp(t))}var x1e=v(()=>{Pi();ul();Lo();_r();Cy();Xa();qp();LH();w1e();wQ()});var Vy,O1e,kQ=v(()=>{Vy="Anthropic_AI",O1e={"messages.create":{operation:"chat"},"messages.stream":{operation:"chat",streaming:!0},"messages.countTokens":{operation:"chat"},"models.get":{operation:"models"},"completions.create":{operation:"chat"},"models.retrieve":{operation:"models"},"beta.messages.create":{operation:"chat"}}});function P1e(e,t){if(Array.isArray(t)&&t.length===0)return;let{systemInstructions:n,filteredMessages:r}=dl(t);n&&e.setAttributes({[ll]:n});let i=Array.isArray(r)?r.length:1;e.setAttributes({[aa]:qE(r),[Cc]:i})}function IQ(e){return e&&h9t[e]||"internal_error"}function N1e(e,t){t.error&&(e.setStatus({code:2,message:IQ(t.error.type)}),Wt(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}function C1e(e){let{system:t,messages:n,input:r}=e,i=typeof t=="string"?[{role:"system",content:e.system}]:[],s=Array.isArray(r)?r:r!=null?[r]:void 0,o=Array.isArray(n)?n:n!=null?[n]:[],a=s??o;return[...i,...a]}var h9t,xQ=v(()=>{ul();Xa();qp();h9t={invalid_request_error:"invalid_argument",authentication_error:"unauthenticated",permission_error:"permission_denied",not_found_error:"not_found",request_too_large:"failed_precondition",rate_limit_error:"resource_exhausted",api_error:"internal_error",overloaded_error:"unavailable"}});function m9t(e,t){return"type"in e&&typeof e.type=="string"&&e.type==="error"?(t.setStatus({code:2,message:IQ(e.error?.type)}),Wt(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0):!1}function g9t(e,t){if(e.type==="message_delta"&&e.usage&&"output_tokens"in e.usage&&typeof e.usage.output_tokens=="number"&&(t.completionTokens=e.usage.output_tokens),e.message){let n=e.message;n.id&&(t.responseId=n.id),n.model&&(t.responseModel=n.model),n.stop_reason&&t.finishReasons.push(n.stop_reason),n.usage&&(typeof n.usage.input_tokens=="number"&&(t.promptTokens=n.usage.input_tokens),typeof n.usage.cache_creation_input_tokens=="number"&&(t.cacheCreationInputTokens=n.usage.cache_creation_input_tokens),typeof n.usage.cache_read_input_tokens=="number"&&(t.cacheReadInputTokens=n.usage.cache_read_input_tokens))}}function y9t(e,t){e.type!=="content_block_start"||typeof e.index!="number"||!e.content_block||(e.content_block.type==="tool_use"||e.content_block.type==="server_tool_use")&&(t.activeToolBlocks[e.index]={id:e.content_block.id,name:e.content_block.name,inputJsonParts:[]})}function S9t(e,t,n){if(!(e.type!=="content_block_delta"||!e.delta)){if(typeof e.index=="number"&&"partial_json"in e.delta&&typeof e.delta.partial_json=="string"){let r=t.activeToolBlocks[e.index];r&&r.inputJsonParts.push(e.delta.partial_json)}n&&typeof e.delta.text=="string"&&t.responseTexts.push(e.delta.text)}}function b9t(e,t){if(e.type!=="content_block_stop"||typeof e.index!="number")return;let n=t.activeToolBlocks[e.index];if(!n)return;let r=n.inputJsonParts.join(""),i;try{i=r?JSON.parse(r):{}}catch{i={__unparsed:r}}t.toolCalls.push({type:"tool_use",id:n.id,name:n.name,input:i}),delete t.activeToolBlocks[e.index]}function M1e(e,t,n,r){!(e&&typeof e=="object")||m9t(e,r)||(g9t(e,t),y9t(e,t),S9t(e,t,n),b9t(e,t))}function E9t(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[Zl]:e.responseId}),e.responseModel&&t.setAttributes({[yo]:e.responseModel}),uP(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[FE]:!0}),e.finishReasons.length>0&&t.setAttributes({[du]:JSON.stringify(e.finishReasons)}),n&&e.responseTexts.length>0&&t.setAttributes({[Gs]:e.responseTexts.join("")}),n&&e.toolCalls.length>0&&t.setAttributes({[Fo]:JSON.stringify(e.toolCalls)}),t.end())}async function*D1e(e,t,n){let r={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(let i of e)M1e(i,r,n,t),yield i}finally{r.responseId&&t.setAttributes({[Zl]:r.responseId}),r.responseModel&&t.setAttributes({[yo]:r.responseModel}),uP(t,r.promptTokens,r.completionTokens,r.cacheCreationInputTokens,r.cacheReadInputTokens),t.setAttributes({[FE]:!0}),r.finishReasons.length>0&&t.setAttributes({[du]:JSON.stringify(r.finishReasons)}),n&&r.responseTexts.length>0&&t.setAttributes({[Gs]:r.responseTexts.join("")}),n&&r.toolCalls.length>0&&t.setAttributes({[Fo]:JSON.stringify(r.toolCalls)}),t.end()}}function L1e(e,t,n){let r={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return e.on("streamEvent",i=>{M1e(i,r,n,t)}),e.on("message",()=>{E9t(r,t,n)}),e.on("error",i=>{Wt(i,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),t.isRecording()&&(t.setStatus({code:2,message:"internal_error"}),t.end())}),e}var U1e=v(()=>{ul();Xa();qp();xQ()});function _9t(e,t,n){let r={[Uy]:"anthropic",[oa]:n,[At]:"auto.ai.anthropic"};if(e.length>0&&typeof e[0]=="object"&&e[0]!==null){let i=e[0];i.tools&&Array.isArray(i.tools)&&(r[jp]=JSON.stringify(i.tools)),r[us]=i.model??"unknown","temperature"in i&&(r[Fy]=i.temperature),"top_p"in i&&(r[Hy]=i.top_p),"stream"in i&&(r[nA]=i.stream),"top_k"in i&&(r[kH]=i.top_k),"frequency_penalty"in i&&(r[jy]=i.frequency_penalty),"max_tokens"in i&&(r[rA]=i.max_tokens)}else t==="models.retrieve"||t==="models.get"?r[us]=e[0]:r[us]="unknown";return r}function OQ(e,t){let n=C1e(t);P1e(e,n),"prompt"in t&&e.setAttributes({[gLe]:JSON.stringify(t.prompt)})}function T9t(e,t){if("content"in t&&Array.isArray(t.content)){e.setAttributes({[Gs]:t.content.map(r=>r.text).filter(r=>!!r).join("")});let n=[];for(let r of t.content)(r.type==="tool_use"||r.type==="server_tool_use")&&n.push(r);n.length>0&&e.setAttributes({[Fo]:JSON.stringify(n)})}"completion"in t&&e.setAttributes({[Gs]:t.completion}),"input_tokens"in t&&e.setAttributes({[Gs]:JSON.stringify(t.input_tokens)})}function v9t(e,t){"id"in t&&"model"in t&&(e.setAttributes({[Zl]:t.id,[yo]:t.model}),"created"in t&&typeof t.created=="number"&&e.setAttributes({[uQ]:new Date(t.created*1e3).toISOString()}),"created_at"in t&&typeof t.created_at=="number"&&e.setAttributes({[uQ]:new Date(t.created_at*1e3).toISOString()}),"usage"in t&&t.usage&&uP(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}function R9t(e,t,n){if(!(!t||typeof t!="object")){if("type"in t&&t.type==="error"){N1e(e,t);return}n&&T9t(e,t),v9t(e,t)}}function F1e(e,t,n){throw Wt(e,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:n}}}),t.isRecording()&&(t.setStatus({code:2,message:"internal_error"}),t.end()),e}function A9t(e,t,n,r,i,s,o,a,c,u,l){let d=i[us]??"unknown",f={name:`${s} ${d}`,op:`gen_ai.${s}`,attributes:i};if(u&&!l){let p,h=Uo(f,m=>(p=e.apply(n,r),c.recordInputs&&a&&OQ(m,a),(async()=>{try{let g=await p;return D1e(g,m,c.recordOutputs??!1)}catch(g){return F1e(g,m,o)}})()));return aA(p,h,"auto.ai.anthropic")}else return Uo(f,p=>{try{c.recordInputs&&a&&OQ(p,a);let h=t.apply(n,r);return L1e(h,p,c.recordOutputs??!1)}catch(h){return F1e(h,p,o)}})}function w9t(e,t,n,r,i){return new Proxy(e,{apply(s,o,a){let c=n.operation,u=_9t(a,t,c),l=u[us]??"unknown",d=typeof a[0]=="object"?a[0]:void 0,f=!!d?.stream,p=n.streaming===!0;if(f||p)return A9t(e,s,r,a,u,c,t,d,i,f,p);let h,m=lf({name:`${c} ${l}`,op:`gen_ai.${c}`,attributes:u},g=>(h=s.apply(r,a),i.recordInputs&&d&&OQ(g,d),h.then(y=>(R9t(g,y,i.recordOutputs),y),y=>{throw Wt(y,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}}),y})));return aA(h,m,"auto.ai.anthropic")}})}function j1e(e,t="",n){return new Proxy(e,{get(r,i){let s=r[i],o=oA(t,String(i)),a=O1e[o];return typeof s=="function"&&a?w9t(s,o,a,r,n):typeof s=="function"?s.bind(r):s&&typeof s=="object"?j1e(s,o,n):s}})}function jH(e,t){return j1e(e,"",Hp(t))}var H1e=v(()=>{ul();Lo();Cy();Xa();qp();kQ();U1e();xQ()});var Wy,q1e,B1e,PQ,z1e,NQ=v(()=>{Wy="Google_GenAI",q1e={"models.generateContent":{operation:"generate_content"},"models.generateContentStream":{operation:"generate_content",streaming:!0},"models.embedContent":{operation:"embeddings"},"chats.create":{operation:"chat"},"chat.sendMessage":{operation:"chat"},"chat.sendMessageStream":{operation:"chat",streaming:!0}},B1e="google_genai",PQ="chats.create",z1e="chat"});function k9t(e,t){let n=e?.promptFeedback;if(n?.blockReason){let r=n.blockReasonMessage??n.blockReason;return t.setStatus({code:2,message:"internal_error"}),Wt(`Content blocked: ${r}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}function I9t(e,t){typeof e.responseId=="string"&&(t.responseId=e.responseId),typeof e.modelVersion=="string"&&(t.responseModel=e.modelVersion);let n=e.usageMetadata;n&&(typeof n.promptTokenCount=="number"&&(t.promptTokens=n.promptTokenCount),typeof n.candidatesTokenCount=="number"&&(t.completionTokens=n.candidatesTokenCount),typeof n.totalTokenCount=="number"&&(t.totalTokens=n.totalTokenCount))}function x9t(e,t,n){Array.isArray(e.functionCalls)&&t.toolCalls.push(...e.functionCalls);for(let r of e.candidates??[]){r?.finishReason&&!t.finishReasons.includes(r.finishReason)&&t.finishReasons.push(r.finishReason);for(let i of r?.content?.parts??[])n&&i.text&&t.responseTexts.push(i.text),i.functionCall&&t.toolCalls.push({type:"function",id:i.functionCall.id,name:i.functionCall.name,arguments:i.functionCall.args})}}function O9t(e,t,n,r){!e||k9t(e,r)||(I9t(e,t),x9t(e,t,n))}async function*G1e(e,t,n){let r={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(let i of e)O9t(i,r,n,t),yield i}finally{let i={[FE]:!0};r.responseId&&(i[Zl]=r.responseId),r.responseModel&&(i[yo]=r.responseModel),r.promptTokens!==void 0&&(i[di]=r.promptTokens),r.completionTokens!==void 0&&(i[Ns]=r.completionTokens),r.totalTokens!==void 0&&(i[Nc]=r.totalTokens),r.finishReasons.length&&(i[du]=JSON.stringify(r.finishReasons)),n&&r.responseTexts.length&&(i[Gs]=r.responseTexts.join("")),n&&r.toolCalls.length&&(i[Fo]=JSON.stringify(r.toolCalls)),t.setAttributes(i),t.end()}}var V1e=v(()=>{ul();Xa()});function uA(e,t="user"){return typeof e=="string"?[{role:t,content:e}]:Array.isArray(e)?e.flatMap(n=>uA(n,t)):typeof e!="object"||!e?[]:"role"in e&&typeof e.role=="string"?[e]:"parts"in e?[{...e,role:t}]:[{role:t,content:e}]}var W1e=v(()=>{});function K1e(e,t){if("model"in e&&typeof e.model=="string")return e.model;if(t&&typeof t=="object"){let n=t;if("model"in n&&typeof n.model=="string")return n.model;if("modelVersion"in n&&typeof n.modelVersion=="string")return n.modelVersion}return"unknown"}function P9t(e){let t={};return"temperature"in e&&typeof e.temperature=="number"&&(t[Fy]=e.temperature),"topP"in e&&typeof e.topP=="number"&&(t[Hy]=e.topP),"topK"in e&&typeof e.topK=="number"&&(t[kH]=e.topK),"maxOutputTokens"in e&&typeof e.maxOutputTokens=="number"&&(t[rA]=e.maxOutputTokens),"frequencyPenalty"in e&&typeof e.frequencyPenalty=="number"&&(t[jy]=e.frequencyPenalty),"presencePenalty"in e&&typeof e.presencePenalty=="number"&&(t[iA]=e.presencePenalty),t}function N9t(e,t,n){let r={[Uy]:B1e,[oa]:e,[At]:"auto.ai.google_genai"};if(t){if(r[us]=K1e(t,n),"config"in t&&typeof t.config=="object"&&t.config){let i=t.config;if(Object.assign(r,P9t(i)),"tools"in i&&Array.isArray(i.tools)){let s=i.tools.flatMap(o=>o.functionDeclarations);r[jp]=JSON.stringify(s)}}}else r[us]=K1e({},n);return r}function Y1e(e,t,n){if(n){let i=t.contents;i!=null&&e.setAttribute(sA,typeof i=="string"?i:JSON.stringify(i));return}let r=[];if("config"in t&&t.config&&typeof t.config=="object"&&"systemInstruction"in t.config&&t.config.systemInstruction&&r.push(...uA(t.config.systemInstruction,"system")),"history"in t&&r.push(...uA(t.history,"user")),"contents"in t&&r.push(...uA(t.contents,"user")),"message"in t&&r.push(...uA(t.message,"user")),Array.isArray(r)&&r.length){let{systemInstructions:i,filteredMessages:s}=dl(r);i&&e.setAttribute(ll,i);let o=Array.isArray(s)?s.length:0;e.setAttributes({[Cc]:o,[aa]:JSON.stringify(zy(s))})}}function C9t(e,t,n){if(!(!t||typeof t!="object")){if(t.modelVersion&&e.setAttribute(yo,t.modelVersion),t.usageMetadata&&typeof t.usageMetadata=="object"){let r=t.usageMetadata;typeof r.promptTokenCount=="number"&&e.setAttributes({[di]:r.promptTokenCount}),typeof r.candidatesTokenCount=="number"&&e.setAttributes({[Ns]:r.candidatesTokenCount}),typeof r.totalTokenCount=="number"&&e.setAttributes({[Nc]:r.totalTokenCount})}if(n&&Array.isArray(t.candidates)&&t.candidates.length>0){let r=t.candidates.map(i=>i.content?.parts&&Array.isArray(i.content.parts)?i.content.parts.map(s=>typeof s.text=="string"?s.text:"").filter(s=>s.length>0).join(""):"").filter(i=>i.length>0);r.length>0&&e.setAttributes({[Gs]:r.join("")})}if(n&&t.functionCalls){let r=t.functionCalls;Array.isArray(r)&&r.length>0&&e.setAttributes({[Fo]:JSON.stringify(r)})}}}function Z1e(e,t,n,r,i){let s=t===PQ,o=n.operation==="embeddings";return new Proxy(e,{apply(a,c,u){let l=n.operation,d=u[0],f=N9t(l,d,r),p=f[us]??"unknown";return n.streaming?Uo({name:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},async h=>{try{i.recordInputs&&d&&Y1e(h,d,o);let m=await a.apply(r,u);return G1e(m,h,!!i.recordOutputs)}catch(m){throw h.setStatus({code:2,message:"internal_error"}),Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}}),h.end(),m}}):lf({name:s?`${l} ${p} create`:`${l} ${p}`,op:`gen_ai.${l}`,attributes:f},h=>(i.recordInputs&&d&&Y1e(h,d,o),uf(()=>a.apply(r,u),m=>{Wt(m,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}})},()=>{},m=>{!s&&!o&&C9t(h,m,i.recordOutputs)})))}})}function CQ(e,t="",n){return new Proxy(e,{get:(r,i,s)=>{let o=Reflect.get(r,i,s),a=oA(t,String(i)),c=q1e[a];if(typeof o=="function"&&c){if(a===PQ){let u=Z1e(o,a,c,r,n);return function(...d){let f=u(...d);return f&&typeof f=="object"?CQ(f,z1e,n):f}}return Z1e(o,a,c,r,n)}return typeof o=="function"?o.bind(r):o&&typeof o=="object"?CQ(o,a,n):o}})}function HH(e,t){return CQ(e,"",Hp(t))}var J1e=v(()=>{ul();Lo();Cy();iH();Xa();cP();qp();NQ();V1e();W1e()});var qH,zE,X1e,BH=v(()=>{qH="LangChain",zE="auto.ai.langchain",X1e={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"}});function vm(e){if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function lA(e){if(Array.isArray(e))try{let t=e.map(n=>n&&typeof n=="object"&&By(n)?HE(n):n);return JSON.stringify(t)}catch{return String(e)}return vm(e)}function fP(e){let t=e.toLowerCase();return X1e[t]??t}function Q1e(e){return e.includes("System")?"system":e.includes("Human")?"user":e.includes("AI")||e.includes("Assistant")?"assistant":e.includes("Function")?"function":e.includes("Tool")?"tool":"user"}function MQ(e){if(!(!e||Array.isArray(e)))return e.invocation_params}function pP(e){return e.map(t=>{let n=t._getType;if(typeof n=="function"){let i=n.call(t);return{role:fP(i),content:lA(t.content)}}if(t.lc===1&&t.kwargs){let i=t.id,s=Array.isArray(i)&&i.length>0?i[i.length-1]:"",o=typeof s=="string"?Q1e(s):"user";return{role:fP(o),content:lA(t.kwargs?.content)}}if(t.type){let i=String(t.type).toLowerCase();return{role:fP(i),content:lA(t.content)}}if(t.role)return{role:fP(String(t.role)),content:lA(t.content)};let r=t.constructor?.name;return r&&r!=="Object"?{role:fP(Q1e(r)),content:lA(t.content)}:{role:"user",content:lA(t.content)}})}function M9t(e,t,n){let r={},i="kwargs"in e?e.kwargs:void 0,s=t?.temperature??n?.ls_temperature??i?.temperature;fl(r,Fy,s);let o=t?.max_tokens??n?.ls_max_tokens??i?.max_tokens;fl(r,rA,o);let a=t?.top_p??i?.top_p;fl(r,Hy,a);let c=t?.frequency_penalty;fl(r,jy,c);let u=t?.presence_penalty;return fl(r,iA,u),t&&"stream"in t&&Jl(r,nA,!!t.stream),r}function $1e(e,t,n,r,i){return{[Uy]:vm(e??"langchain"),[oa]:"chat",[us]:vm(t),[At]:zE,...M9t(n,r,i)}}function eUe(e,t,n,r,i){let s=i?.ls_provider,o=r?.model??i?.ls_model_name??"unknown",a=$1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){Jl(a,Cc,t.length);let c=t.map(u=>({role:"user",content:u}));Jl(a,aa,vm(c))}return a}function tUe(e,t,n,r,i){let s=i?.ls_provider??e.id?.[2],o=r?.model??i?.ls_model_name??"unknown",a=$1e(s,o,e,r,i);if(n&&Array.isArray(t)&&t.length>0){let c=pP(t.flat()),{systemInstructions:u,filteredMessages:l}=dl(c);u&&Jl(a,ll,u);let d=Array.isArray(l)?l.length:0;Jl(a,Cc,d);let f=zy(l);Jl(a,aa,vm(f))}return a}function D9t(e,t){let n=[],r=e.flat();for(let i of r){let s=i.message?.content;if(Array.isArray(s))for(let o of s){let a=o;a.type==="tool_use"&&n.push(a)}}n.length>0&&Jl(t,Fo,vm(n))}function L9t(e,t){if(!e)return;let n=e.tokenUsage,r=e.usage;if(n)fl(t,di,n.promptTokens),fl(t,Ns,n.completionTokens),fl(t,Nc,n.totalTokens);else if(r){fl(t,di,r.input_tokens),fl(t,Ns,r.output_tokens);let i=Number(r.input_tokens),s=Number(r.output_tokens),o=(Number.isNaN(i)?0:i)+(Number.isNaN(s)?0:s);o>0&&fl(t,Nc,o),r.cache_creation_input_tokens!==void 0&&fl(t,TLe,r.cache_creation_input_tokens),r.cache_read_input_tokens!==void 0&&fl(t,vLe,r.cache_read_input_tokens)}}function nUe(e,t){if(!e)return;let n={};if(Array.isArray(e.generations)){let u=e.generations.flat().map(l=>l.generationInfo?.finish_reason?l.generationInfo.finish_reason:l.generation_info?.finish_reason?l.generation_info.finish_reason:null).filter(l=>typeof l=="string");if(u.length>0&&Jl(n,du,vm(u)),D9t(e.generations,n),t){let l=e.generations.flat().map(d=>d.text??d.message?.content).filter(d=>typeof d=="string");l.length>0&&Jl(n,Gs,vm(l))}}L9t(e.llmOutput,n);let r=e.llmOutput,s=e.generations?.[0]?.[0]?.message,o=r?.model_name??r?.model??s?.response_metadata?.model_name;o&&Jl(n,yo,o);let a=r?.id??s?.id;a&&Jl(n,Zl,a);let c=r?.stop_reason??s?.response_metadata?.finish_reason;return c&&Jl(n,bLe,vm(c)),n}var Jl,fl,zH=v(()=>{Lo();Xa();pQ();cP();qp();BH();Jl=(e,t,n)=>{n!=null&&(e[t]=n)},fl=(e,t,n)=>{let r=Number(n);Number.isNaN(r)||(e[t]=r)}});function GH(e={}){let{recordInputs:t,recordOutputs:n}=Hp(e),r=new Map,i=o=>{let a=r.get(o);a?.isRecording()&&(a.end(),r.delete(o))},s={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(o,a,c,u,l,d,f,p){let h=MQ(d),m=eUe(o,a,t,h,f),g=m[us],y=m[oa];Uo({name:`${y} ${g}`,op:"gen_ai.chat",attributes:{...m,[zt]:"gen_ai.chat"}},b=>(r.set(c,b),b))},handleChatModelStart(o,a,c,u,l,d,f,p){let h=MQ(d),m=tUe(o,a,t,h,f),g=m[us],y=m[oa];Uo({name:`${y} ${g}`,op:"gen_ai.chat",attributes:{...m,[zt]:"gen_ai.chat"}},b=>(r.set(c,b),b))},handleLLMEnd(o,a,c,u,l){let d=r.get(a);if(d?.isRecording()){let f=nUe(o,n);f&&d.setAttributes(f),i(a)}},handleLLMError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${zE}.llm_error_handler`}})},handleChainStart(o,a,c,u,l,d,f,p){let h=p||o.name||"unknown_chain",m={[At]:"auto.ai.langchain","langchain.chain.name":h};t&&(m["langchain.chain.inputs"]=JSON.stringify(a)),Uo({name:`chain ${h}`,op:"gen_ai.invoke_agent",attributes:{...m,[zt]:"gen_ai.invoke_agent"}},g=>(r.set(c,g),g))},handleChainEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({"langchain.chain.outputs":JSON.stringify(o)}),i(a))},handleChainError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${zE}.chain_error_handler`}})},handleToolStart(o,a,c,u){let l=o.name||"unknown_tool",d={[At]:zE,[jE]:l};t&&(d[xH]=a),Uo({name:`execute_tool ${l}`,op:"gen_ai.execute_tool",attributes:{...d,[zt]:"gen_ai.execute_tool"}},f=>(r.set(c,f),f))},handleToolEnd(o,a){let c=r.get(a);c?.isRecording()&&(n&&c.setAttributes({[OH]:JSON.stringify(o)}),i(a))},handleToolError(o,a){let c=r.get(a);c?.isRecording()&&(c.setStatus({code:2,message:"internal_error"}),i(a)),Wt(o,{mechanism:{handled:!1,type:`${zE}.tool_error_handler`}})},copy(){return s},toJSON(){return{lc:1,type:"not_implemented",id:s.lc_id}},toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:s.lc_id}}};return s}var rUe=v(()=>{ul();Lo();Cy();Xa();qp();BH();zH()});var VH,DQ,LQ=v(()=>{VH="LangGraph",DQ="auto.ai.langgraph"});function U9t(e){if(!e||e.length===0)return null;let t=[];for(let n of e)if(n&&typeof n=="object"){let r=n.tool_calls;r&&Array.isArray(r)&&t.push(...r)}return t.length>0?t:null}function F9t(e){let t=e,n=0,r=0,i=0;if(t.usage_metadata&&typeof t.usage_metadata=="object"){let s=t.usage_metadata;return typeof s.input_tokens=="number"&&(n=s.input_tokens),typeof s.output_tokens=="number"&&(r=s.output_tokens),typeof s.total_tokens=="number"&&(i=s.total_tokens),{inputTokens:n,outputTokens:r,totalTokens:i}}if(t.response_metadata&&typeof t.response_metadata=="object"){let s=t.response_metadata;if(s.tokenUsage&&typeof s.tokenUsage=="object"){let o=s.tokenUsage;typeof o.promptTokens=="number"&&(n=o.promptTokens),typeof o.completionTokens=="number"&&(r=o.completionTokens),typeof o.totalTokens=="number"&&(i=o.totalTokens)}}return{inputTokens:n,outputTokens:r,totalTokens:i}}function j9t(e,t){let n=t;if(n.response_metadata&&typeof n.response_metadata=="object"){let r=n.response_metadata;r.model_name&&typeof r.model_name=="string"&&e.setAttribute(yo,r.model_name),r.finish_reason&&typeof r.finish_reason=="string"&&e.setAttribute(du,[r.finish_reason])}}function iUe(e){if(!e.builder?.nodes?.tools?.runnable?.tools)return null;let t=e.builder?.nodes?.tools?.runnable?.tools;return!t||!Array.isArray(t)||t.length===0?null:t.map(n=>({name:n.lc_kwargs?.name,description:n.lc_kwargs?.description,schema:n.lc_kwargs?.schema}))}function sUe(e,t,n){let i=n?.messages;if(!i||!Array.isArray(i))return;let s=t?.length??0,o=i.length>s?i.slice(s):[];if(o.length===0)return;let a=U9t(o);a&&e.setAttribute(Fo,JSON.stringify(a));let c=pP(o);e.setAttribute(Gs,JSON.stringify(c));let u=0,l=0,d=0;for(let f of o){let p=F9t(f);u+=p.inputTokens,l+=p.outputTokens,d+=p.totalTokens,j9t(e,f)}u>0&&e.setAttribute(di,u),l>0&&e.setAttribute(Ns,l),d>0&&e.setAttribute(Nc,d)}var oUe=v(()=>{Xa();zH()});function UQ(e,t){return new Proxy(e,{apply(n,r,i){return lf({op:"gen_ai.create_agent",name:"create_agent",attributes:{[At]:DQ,[zt]:"gen_ai.create_agent",[oa]:"create_agent"}},s=>{try{let o=Reflect.apply(n,r,i),a=i.length>0?i[0]:{};a?.name&&typeof a.name=="string"&&(s.setAttribute(nQ,a.name),s.updateName(`create_agent ${a.name}`));let c=o.invoke;return c&&typeof c=="function"&&(o.invoke=H9t(c.bind(o),o,a,t)),o}catch(o){throw s.setStatus({code:2,message:"internal_error"}),Wt(o,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),o}})}})}function H9t(e,t,n,r){return new Proxy(e,{apply(i,s,o){return lf({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[At]:DQ,[zt]:IH,[oa]:"invoke_agent"}},async a=>{try{let c=n?.name;c&&typeof c=="string"&&(a.setAttribute(_Le,c),a.setAttribute(nQ,c),a.updateName(`invoke_agent ${c}`));let d=(o.length>1?o[1]:void 0)?.configurable?.thread_id;d&&typeof d=="string"&&a.setAttribute(sP,d);let f=iUe(t);f&&a.setAttribute(jp,JSON.stringify(f));let p=r.recordInputs,h=r.recordOutputs,m=o.length>0?o[0]?.messages??[]:[];if(m&&p){let y=pP(m),{systemInstructions:b,filteredMessages:S}=dl(y);b&&a.setAttribute(ll,b);let E=zy(S),_=Array.isArray(S)?S.length:0;a.setAttributes({[aa]:JSON.stringify(E),[Cc]:_})}let g=await Reflect.apply(i,s,o);return h&&sUe(a,m??null,g),g}catch(c){throw a.setStatus({code:2,message:"internal_error"}),Wt(c,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),c}})}})}function WH(e,t){return e.compile=UQ(e.compile,Hp(t)),e}var aUe=v(()=>{ul();Lo();Cy();Xa();cP();qp();zH();LQ();oUe()});function hP(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}var cUe=v(()=>{});function mP(e,t,n){let r=e[t];if(typeof r=="function"){try{e[t]=n}catch{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0,enumerable:!0})}if(e.default===r)try{e.default=n}catch{Object.defineProperty(e,"default",{value:n,writable:!0,configurable:!0,enumerable:!0})}}}var uUe=v(()=>{});function fUe(e,t=!1){return!(t||e&&!e.startsWith("/")&&!e.match(/^[A-Z]:/)&&!e.startsWith(".")&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes("node_modules/")}function pUe(e){let t=/^\s*[-]{4,}$/,n=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,r=/at (?:async )?(.+?) \(data:(.*?),/;return i=>{let s=i.match(r);if(s)return{filename:``,function:s[1]};let o=i.match(n);if(o){let a,c,u,l,d;if(o[1]){u=o[1];let m=u.lastIndexOf(".");if(u[m-1]==="."&&m--,m>0){a=u.slice(0,m),c=u.slice(m+1);let g=a.indexOf(".Module");g>0&&(u=u.slice(g+1),a=a.slice(0,g))}l=void 0}c&&(l=a,d=c),c===""&&(d=void 0,u=void 0),u===void 0&&(d=d||"?",u=l?`${l}.${d}`:d);let f=kCe(o[2]),p=o[5]==="native";!f&&o[5]&&!p&&(f=o[5]);let h=f?q9t(f):void 0;return{filename:h??f,module:h&&e?.(h),function:u,lineno:lUe(o[3]),colno:lUe(o[4]),in_app:fUe(f||"",p)}}if(i.match(t))return{filename:i}}}function FQ(e){return[90,pUe(e)]}function lUe(e){return parseInt(e||"",10)||void 0}function q9t(e){try{return decodeURI(e)}catch{return}}var hUe=v(()=>{xR()});var fu,mUe=v(()=>{fu=class{constructor(t){this._maxSize=t,this._cache=new Map}get size(){return this._cache.size}get(t){let n=this._cache.get(t);if(n!==void 0)return this._cache.delete(t),this._cache.set(t,n),n}set(t,n){if(this._cache.size>=this._maxSize){let r=this._cache.keys().next().value;this._cache.delete(r)}this._cache.set(t,n)}remove(t){let n=this._cache.get(t);return n&&this._cache.delete(t),n}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let t=[];return this._cache.forEach(n=>t.push(n)),t}}});var st=v(()=>{qR();QCe();Cy();bm();EX();_X();rH();Lo();ul();go();YJ();FR();wDe();hH();CX();kDe();IDe();zO();iH();Oc();BR();PDe();NDe();MDe();DDe();qDe();KX();GDe();WDe();QDe();rLe();dLe();pLe();hLe();mLe();MX();d1e();AQ();x1e();LH();H1e();kQ();J1e();NQ();rUe();BH();aUe();LQ();cUe();Wa();Ka();_r();Lp();nf();cLe();uUe();xR();hUe();Ty();Wj();Em();jO();ODe();mUe();ky();xj();by()});function rt(e,t,n){return n?fYt(e,t,n):dYt(e,t)}function dYt(e,t){return Object.assign(n=>{let r=gP[e];if(r)return n&&r.setConfig(n),r;let i=t(n);return gP[e]=i,(0,jQ.registerInstrumentations)({instrumentations:[i]}),i},{id:e})}function fYt(e,t,n){return Object.assign(r=>{let i=n(r),s=gP[e];if(s)return s.setConfig(i),s;let o=new t(i);return gP[e]=o,(0,jQ.registerInstrumentations)({instrumentations:[o]}),o},{id:e})}function yP(e){let t=!1,n=[];if(!pYt(e))t=!0;else{let i=e._wrap;e._wrap=(...s)=>(t=!0,n.forEach(o=>o()),n=[],i(...s))}return i=>{t?i():n.push(i)}}function pYt(e){return typeof e._wrap=="function"}var jQ,gP,KH=v(()=>{jQ=Re(Jt(),1),gP={}});var Qt,ff=v(()=>{Qt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});var YH,gUe=v(()=>{YH="@sentry/instrumentation-http"});function yUe(e,t,n,r){let i=0,s=[];Qt&&Z.log(r,"Patching request.on");let o=new WeakMap,a=n==="small"?1e3:n==="medium"?1e4:1048576;try{e.on=new Proxy(e.on,{apply:(c,u,l)=>{let[d,f,...p]=l;if(d==="data"){Qt&&Z.log(r,`Handling request.on("data") with maximum body size of ${a}b`);let h=new Proxy(f,{apply:(m,g,y)=>{try{let b=y[0],S=Buffer.from(b);i{let[,d]=l,f=o.get(d);if(f){o.delete(d);let p=l.slice();return p[1]=f,Reflect.apply(c,u,p)}return Reflect.apply(c,u,l)}}),e.on("end",()=>{try{let c=Buffer.concat(s).toString("utf-8");if(c){let l=Buffer.byteLength(c,"utf-8")>a?`${Buffer.from(c).subarray(0,a-3).toString("utf-8")}...`:c;t.setSDKProcessingMetadata({normalizedRequest:{data:l}})}}catch(c){Qt&&Z.error(r,"Error building captured request body",c)}})}catch(c){Qt&&Z.error(r,"Error patching request to capture body",c)}}var SUe=v(()=>{st();ff()});import{subscribe as hYt}from"node:diagnostics_channel";function _Ue(e,t){zs(e,"_startSpanCallback",new WeakRef(t))}function gYt(e,{ignoreRequestBody:t,maxRequestBodySize:n,sessions:r,sessionFlushingDelayMS:i}){let s=e.emit;if(EUe.has(s))return;let o=new Proxy(s,{apply(a,c,u){if(u[0]!=="request")return a.apply(c,u);let l=ct();if(Ve.active().getValue(bUe)||!l)return a.apply(c,u);Qt&&Z.log(qQ,"Handling incoming request");let d=vn().clone(),f=u[1],p=u[2],h=iP(f),m=f.ip||f.socket?.remoteAddress,g=f.url||"/";n!=="none"&&!t?.(g,f)&&yUe(f,d,n,qQ),d.setSDKProcessingMetadata({normalizedRequest:h,ipAddress:m});let y=(f.method||"GET").toUpperCase(),b=Tm(g),S=`${y} ${b}`;return d.setTransactionName(S),r&&l&&yYt(l,{requestIsolationScope:d,response:p,sessionFlushingDelayMS:i??6e4}),UO(d,()=>{let E={traceId:Ya(),sampleRand:Do(),propagationSpanId:Za()};Un().setPropagationContext({...E}),d.setPropagationContext({...E});let _=Qd.extract(Ve.active(),h.headers).setValue(bUe,!0);return Ve.with(_,()=>{l.emit("httpServerRequest",f,p,h);let T=f._startSpanCallback?.deref();return T?T(()=>a.apply(c,u)):a.apply(c,u)})})}});EUe.add(o),e.emit=o}function yYt(e,{requestIsolationScope:t,response:n,sessionFlushingDelayMS:r}){t.setSDKProcessingMetadata({requestSession:{status:"ok"}}),n.once("close",()=>{let i=t.getScopeData().sdkProcessingMetadata.requestSession;if(e&&i){Qt&&Z.log(`Recorded request session with status: ${i.status}`);let s=new Date;s.setSeconds(0,0);let o=s.toISOString(),a=HQ.get(e),c=a?.[o]||{exited:0,crashed:0,errored:0};if(c[{ok:"exited",crashed:"crashed",errored:"errored"}[i.status]]++,a)a[o]=c;else{Qt&&Z.log("Opened new request session aggregate.");let u={[o]:c};HQ.set(e,u);let l=()=>{clearTimeout(f),d(),HQ.delete(e);let p=Object.entries(u).map(([h,m])=>({started:h,exited:m.exited,errored:m.errored,crashed:m.crashed}));e.sendSession({aggregates:p})},d=e.on("flush",()=>{Qt&&Z.log("Sending request session aggregate due to client flush"),l()}),f=setTimeout(()=>{Qt&&Z.log("Sending request session aggregate due to flushing schedule"),l()},r).unref()}}})}var bUe,qQ,HQ,EUe,mYt,SP,ZH=v(()=>{Ce();st();ff();SUe();bUe=il("sentry_http_server_instrumented"),qQ="Http.Server",HQ=new Map,EUe=new WeakSet;mYt=((e={})=>{let t={sessions:e.sessions??!0,sessionFlushingDelayMS:e.sessionFlushingDelayMS??6e4,maxRequestBodySize:e.maxRequestBodySize??"medium",ignoreRequestBody:e.ignoreRequestBody};return{name:qQ,setupOnce(){hYt("http.server.request.start",(r=>{gYt(r.server,t)}))},afterAllSetup(n){Qt&&n.getIntegrationByName("Http")&&Z.warn("It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.")}}}),SP=mYt});import{errorMonitor as SYt}from"node:events";function EYt(e){return e.headers["next-router-prefetch"]==="1"}function _Yt(e){let t=Tm(e);return!!(t.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)||t.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/))}function TYt(e,{ignoreStaticAssets:t,ignoreIncomingRequests:n}){if((0,Rm.isTracingSuppressed)(Ve.active()))return!0;let r=e.url,i=e.method?.toUpperCase();return!!(i==="OPTIONS"||i==="HEAD"||!r||t&&i==="GET"&&_Yt(r)||n?.(r,e))}function vYt(e){let t=RYt(e.headers);return t==null?{}:AYt(e.headers)?{"http.request_content_length":t}:{"http.request_content_length_uncompressed":t}}function RYt(e){let t=e["content-length"];if(t===void 0)return null;let n=parseInt(t,10);return isNaN(n)?null:n}function AYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}function wYt(e,t){let{socket:n}=e,{statusCode:r,statusMessage:i}=t,s={[um]:r,[gE]:r,"http.status_text":i?.toUpperCase()},o=(0,Rm.getRPCMetadata)(Ve.active());if(n){let{localAddress:a,localPort:c,remoteAddress:u,remotePort:l}=n;s[a7]=a,s[c7]=c,s[o7]=u,s["net.peer.port"]=l}if(s[gE]=r,s["http.status_text"]=(i||"").toUpperCase(),o?.type===Rm.RPCType.HTTP&&o.route!==void 0){let a=o.route;s[lm]=a}return s}function kYt(e,t){return t.some(n=>{if(typeof n=="number")return n===e;let[r,i]=n;return e>=r&&e<=i})}var Rm,TUe,bYt,bP,BQ=v(()=>{Ce();Rm=Re(fr(),1);Pn();st();ff();ZH();TUe="Http.ServerSpans",bYt=((e={})=>{let t=e.ignoreStaticAssets??!0,n=e.ignoreIncomingRequests,r=e.ignoreStatusCodes??[[401,404],[301,303],[305,399]],{onSpanCreated:i}=e,{requestHook:s,responseHook:o,applyCustomAttributesOnSpan:a}=e.instrumentation??{};return{name:TUe,setup(c){typeof __SENTRY_TRACING__<"u"&&!__SENTRY_TRACING__||c.on("httpServerRequest",(u,l,d)=>{let f=u,p=l;_Ue(f,m=>{if(TYt(f,{ignoreStaticAssets:t,ignoreIncomingRequests:n}))return Qt&&Z.log(TUe,"Skipping span creation for incoming request",f.url),m();let g=d.url||f.url||"/",y=rP(g),b=f.headers,S=b["user-agent"],E=b["x-forwarded-for"],_=f.httpVersion,T=b.host,R=T?.replace(/^(.*)(:[0-9]{1,5})/,"$1")||"localhost",A=c.tracer,x=g.startsWith("https")?"https":"http",k=d.method||f.method?.toUpperCase()||"GET",P=y?y.pathname:Tm(g),N=`${k} ${P}`,C=A.startSpan(N,{kind:$r.SERVER,attributes:{[zt]:"http.server",[At]:"auto.http.otel.http","sentry.http.prefetch":EYt(f)||void 0,"http.url":g,"http.method":d.method,"http.target":y?`${y.pathname}${y.search}`:P,"http.host":T,"net.host.name":R,"http.client_ip":typeof E=="string"?E.split(",")[0]:void 0,"http.user_agent":S,"http.scheme":x,"http.flavor":_,"net.transport":_?.toUpperCase()==="QUIC"?"ip_udp":"ip_tcp",...vYt(f),...SH(d.headers||{},c.getOptions().sendDefaultPii??!1)}});s?.(C,f),o?.(C,p),a?.(C,f,p),i?.(C,f,p);let L={type:Rm.RPCType.HTTP,span:C};return Ve.with((0,Rm.setRPCMetadata)(jt.setSpan(Ve.active(),C),L),()=>{Ve.bind(Ve.active(),f),Ve.bind(Ve.active(),p);let G=!1;function W($){if(G)return;G=!0;let q=wYt(f,p);C.setAttributes(q),C.setStatus($),C.end();let Q=q["http.route"];Q&&vn().setTransactionName(`${f.method?.toUpperCase()||"GET"} ${Q}`)}return p.on("close",()=>{W(gm(p.statusCode))}),p.on(SYt,()=>{let $=gm(p.statusCode);W($.code===2?$:{code:2})}),m()})})})},processEvent(c){if(c.type==="transaction"){let u=c.contexts?.trace?.data?.["http.response.status_code"];if(typeof u=="number"&&kYt(u,r))return Qt&&Z.log("Dropping transaction due to status code",u),null}return c},afterAllSetup(c){Qt&&(c.getIntegrationByName("Http")&&Z.warn("It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`."),c.getIntegrationByName("Http.Server")||Z.error("It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration."))}}}),bP=bYt});function EP(e,t){if(!e)return t;let n=OE(e),r=OE(t);if(!r)return e;let i={},s={};for(let[c,u]of Object.entries(r))c.startsWith(Up)?i[c]=u:s[c]=u;let o=Object.keys(i).length>0,a={};if(n)for(let[c,u]of Object.entries(n))o&&c.startsWith(Up)||(a[c]=u);Object.assign(a,i);for(let[c,u]of Object.entries(s))a[c]||(a[c]=u);return zj(a)}var zQ=v(()=>{st()});function vUe(e,t){let n=IYt(e),r=t?.statusCode,i=hP(r);Yl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function JH(e,t){let n=XH(e),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=UE(n,r,t)?tA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s;if(!e.getHeader("sentry-trace")){if(o)try{e.setHeader("sentry-trace",o),Qt&&Z.log(dA,"Added sentry-trace header to outgoing request")}catch(l){Qt&&Z.error(dA,"Failed to add sentry-trace header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(c&&!e.getHeader("traceparent"))try{e.setHeader("traceparent",c),Qt&&Z.log(dA,"Added traceparent header to outgoing request")}catch(l){Qt&&Z.error(dA,"Failed to add traceparent header to outgoing request:",Mp(l)?l.message:"Unknown error")}if(a){let l=e.getHeader("baggage"),d=EP(l,a);if(d)try{e.setHeader("baggage",d),Qt&&Z.log(dA,"Added baggage header to outgoing request")}catch(f){Qt&&Z.error(dA,"Failed to add baggage header to outgoing request:",Mp(f)?f.message:"Unknown error")}}}}function IYt(e){try{let t=e.getHeader("host")||e.host,n=new URL(e.path,`${e.protocol}//${t}`),r=Dy(n.toString()),i={url:Ly(r),"http.method":e.method||"GET"};return r.search&&(i["http.query"]=r.search),r.hash&&(i["http.fragment"]=r.hash),i}catch{return{}}}function RUe(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function XH(e){let t=e.getHeader("host")||e.host,n=e.protocol,r=e.path;return`${n}//${t}${r}`}var dA,AUe=v(()=>{st();ff();zQ();dA="@sentry/instrumentation-http"});import{subscribe as GQ,unsubscribe as VQ}from"node:diagnostics_channel";import{errorMonitor as wUe}from"node:events";function xYt(e){let t=XH(e),[n,r]=VX(rP(t),"client","auto.http.otel.http",e),i=e.getHeader("user-agent");return[n,{[zt]:"http.client","otel.kind":"CLIENT",[O7]:i,[fy]:t,"http.url":t,"http.method":e.method,"http.target":e.path||"/","net.peer.name":e.host,"http.host":e.getHeader("host"),...r}]}function OYt(e){let{statusCode:t,statusMessage:n,httpVersion:r,socket:i}=e,s=r.toUpperCase()!=="QUIC"?"ip_tcp":"ip_udp",o={[um]:t,[R7]:r,"http.flavor":r,[A7]:s,"net.transport":s,"http.status_text":n?.toUpperCase(),"http.status_code":t,...PYt(e)};if(i){let{remoteAddress:a,remotePort:c}=i;o[T7]=a,o[v7]=c,o["net.peer.ip"]=a,o["net.peer.port"]=c}return o}function PYt(e){let t=NYt(e.headers);return t==null?{}:CYt(e.headers)?{[l7]:t}:{[d7]:t}}function NYt(e){let t=e["content-length"];if(typeof t=="number")return t;if(typeof t!="string")return;let n=parseInt(t,10);if(!isNaN(n))return n}function CYt(e){let t=e["content-encoding"];return!!t&&t!=="identity"}var kUe,_P,GE,WQ=v(()=>{Ce();kUe=Re(fr(),1),_P=Re(Jt(),1);Pn();st();ff();gUe();AUe();GE=class extends _P.InstrumentationBase{constructor(t={}){super(YH,Nn,t),this._propagationDecisionMap=new fu(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){let t=!1,n=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,c.response)}),r=(a=>{let c=a;this._onOutgoingRequestFinish(c.request,void 0)}),i=(a=>{let c=a;this._onOutgoingRequestCreated(c.request)}),s=a=>(t||(t=!0,GQ("http.client.response.finish",n),GQ("http.client.request.error",r),(this.getConfig().propagateTraceInOutgoingRequests||this.getConfig().createSpansForOutgoingRequests)&&GQ("http.client.request.created",i)),a),o=()=>{VQ("http.client.response.finish",n),VQ("http.client.request.error",r),VQ("http.client.request.created",i)};return[new _P.InstrumentationNodeModuleDefinition("http",["*"],s,o),new _P.InstrumentationNodeModuleDefinition("https",["*"],s,o)]}_startSpanForOutgoingRequest(t){let n=t.once,[r,i]=xYt(t),s=oH({name:r,attributes:i,onlyIfParent:!0});this.getConfig().outgoingRequestHook?.(s,t);let o=new Proxy(n,{apply(u,l,d){let[f]=d;if(f!=="response")return u.apply(l,d);let p=Ve.active(),h=jt.setSpan(p,s);return Ve.with(h,()=>u.apply(l,d))}});t.once=o;let a=!1,c=u=>{a||(a=!0,s.setStatus(u),s.end())};return t.prependListener("response",u=>{t.listenerCount("response")<=1&&u.resume(),Ve.bind(Ve.active(),u);let l=OYt(u);s.setAttributes(l),this.getConfig().outgoingResponseHook?.(s,u),this.getConfig().outgoingRequestApplyCustomAttributes?.(s,t,u);let d=(f=!1)=>{this._diag.debug("outgoingRequest on end()");let p=f||typeof u.statusCode!="number"||u.aborted&&!u.complete?{code:as.ERROR}:gm(u.statusCode);c(p)};u.on("end",()=>{d()}),u.on(wUe,f=>{this._diag.debug("outgoingRequest on response error()",f),d(!0)})}),t.on("close",()=>{c({code:as.UNSET})}),t.on(wUe,u=>{this._diag.debug("outgoingRequest on request error()",u),c({code:as.ERROR})}),s}_onOutgoingRequestFinish(t,n){Qt&&Z.log(YH,"Handling finished outgoing request");let r=this.getConfig().breadcrumbs,i=typeof r>"u"?!0:r,s=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,s),i&&!s&&vUe(t,n)}_onOutgoingRequestCreated(t){Qt&&Z.log(YH,"Handling outgoing request created");let n=this._ignoreOutgoingRequestsMap.get(t)??this._shouldIgnoreOutgoingRequest(t);if(this._ignoreOutgoingRequestsMap.set(t,n),n)return;let r=this.getConfig().createSpansForOutgoingRequests&&(this.getConfig().spans??!0),i=this.getConfig().propagateTraceInOutgoingRequests;if(r){let s=this._startSpanForOutgoingRequest(t);if(i&&s.isRecording()){let o=jt.setSpan(Ve.active(),s);Ve.with(o,()=>{JH(t,this._propagationDecisionMap)})}else i&&JH(t,this._propagationDecisionMap)}else i&&JH(t,this._propagationDecisionMap)}_shouldIgnoreOutgoingRequest(t){if((0,kUe.isTracingSuppressed)(Ve.active()))return!0;let n=this.getConfig().ignoreOutgoingRequests;if(!n)return!1;let r=RUe(t),i=XH(t);return n(i,r)}}});var IUe,MYt,xUe,OUe=v(()=>{KH();ZH();BQ();WQ();IUe="Http",MYt=rt(`${IUe}.sentry`,e=>new GE(e)),xUe=(e={})=>{let t={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},n={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes},r={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:e.tracePropagation??!0,ignoreOutgoingRequests:e.ignoreOutgoingRequests},i=SP(t),s=bP(n),o=e.spans??!1,a=e.disableIncomingRequestSpans??!1,c=o&&!a;return{name:IUe,setup(u){c&&s.setup(u)},setupOnce(){i.setupOnce(),MYt(r)},processEvent(u){return s.processEvent(u)}}}});var pf,Am,TP,fA=v(()=>{st();pf=WJ(process.versions.node),Am=pf.major,TP=pf.minor});function PUe(e,t){let n=$H(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=ct()?.getOptions()||{},s=UE(n,r,t)?tA({propagateTraceparent:i}):void 0;if(!s)return;let{"sentry-trace":o,baggage:a,traceparent:c}=s,u=Array.isArray(e.headers)?e.headers:LYt(e.headers);if(YQ(u,KQ),YQ(u,QH),i&&YQ(u,DYt),!(ZQ(u,KQ)!==-1)){o&&u.push(KQ,o),c&&ZQ(u,"traceparent")===-1&&u.push("traceparent",c);let d=ZQ(u,QH);if(a&&d===-1)u.push(QH,a);else if(a){let f=u[d+1],p=EP(f,a);p&&(u[d+1]=p)}}Array.isArray(e.headers)||(e.headers=UYt(u))}function LYt(e){let t=e.split(`\r `),n=[];for(let r of t)try{let i=r.indexOf(":");if(i===-1)continue;let s=r.slice(0,i).trim(),o=r.slice(i+1).trim();s&&n.push(s,o)}catch{Z.warn(`Failed to convert string request header to array header: ${r}`)}return n}function UYt(e){let t=[];for(let n=0;nr%2===0&&n===t)}function PUe(e,t){let n=FYt(e),r=t.statusCode,i=pP(r);Yl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function FYt(e){try{let t=XH(e.origin,e.path),n=Dy(t),r={url:Ly(n),"http.method":e.method||"GET"};return n.search&&(r["http.query"]=n.search),n.hash&&(r["http.fragment"]=n.hash),r}catch{return{}}}function XH(e,t="/"){try{return new URL(t,e).toString()}catch{let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}}var WQ,JH,DYt,NUe=v(()=>{st();BQ();WQ="sentry-trace",JH="baggage",DYt="traceparent"});import*as pA from"diagnostics_channel";var CUe,MUe,VE,ZQ=v(()=>{Ce();CUe=Re(fr(),1),MUe=Re(Jt(),1);st();fA();NUe();VE=class extends MUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Nn,t),this._channelSubs=[],this._propagationDecisionMap=new fu(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs=[]}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this)))}_onRequestCreated({request:t}){let n=this.getConfig();if(!(n.enabled!==!1))return;let i=this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,i),!i&&n.tracePropagation!==!1&&OUe(t,this._propagationDecisionMap)}_onResponseHeaders({request:t,response:n}){let r=this.getConfig();if(!(r.enabled!==!1))return;let s=r.breadcrumbs,o=typeof s>"u"?!0:s,a=this._ignoreOutgoingRequestsMap.get(t);o&&!a&&PUe(t,n)}_subscribeToChannel(t,n){let r=Am>18||Am===18&&_P>=19,i;if(r)pA.subscribe?.(t,n),i=()=>pA.unsubscribe?.(t,n);else{let s=pA.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,CUe.isTracingSuppressed)(Ve.active()))return!0;let n=XH(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var jYt,HYt,qYt,DUe,LUe=v(()=>{VH();ZQ();jYt="NodeFetch",HYt=rt(`${jYt}.sentry`,VE,e=>e),qYt=((e={})=>({name:"NodeFetch",setupOnce(){HYt(e)}})),DUe=qYt});var XQ=w(QH=>{"use strict";Object.defineProperty(QH,"__esModule",{value:!0});QH.AbstractAsyncHooksContextManager=void 0;var BYt=K("events"),zYt=["addListener","on","once","prependListener","prependOnceListener"],JQ=class{bind(t,n){return n instanceof BYt.EventEmitter?this._bindEventEmitter(t,n):typeof n=="function"?this._bindFunction(t,n):n}_bindFunction(t,n){let r=this,i=function(...s){return r.with(t,()=>n.apply(this,s))};return Object.defineProperty(i,"length",{enumerable:!1,configurable:!0,writable:!1,value:n.length}),i}_bindEventEmitter(t,n){return this._getPatchMap(n)!==void 0||(this._createPatchMap(n),zYt.forEach(i=>{n[i]!==void 0&&(n[i]=this._patchAddListener(n,n[i],t))}),typeof n.removeListener=="function"&&(n.removeListener=this._patchRemoveListener(n,n.removeListener)),typeof n.off=="function"&&(n.off=this._patchRemoveListener(n,n.off)),typeof n.removeAllListeners=="function"&&(n.removeAllListeners=this._patchRemoveAllListeners(n,n.removeAllListeners))),n}_patchRemoveListener(t,n){let r=this;return function(i,s){let o=r._getPatchMap(t)?.[i];if(o===void 0)return n.call(this,i,s);let a=o.get(s);return n.call(this,i,a||s)}}_patchRemoveAllListeners(t,n){let r=this;return function(i){let s=r._getPatchMap(t);return s!==void 0&&(arguments.length===0?r._createPatchMap(t):s[i]!==void 0&&delete s[i]),n.apply(this,arguments)}}_patchAddListener(t,n,r){let i=this;return function(s,o){if(i._wrapped)return n.call(this,s,o);let a=i._getPatchMap(t);a===void 0&&(a=i._createPatchMap(t));let c=a[s];c===void 0&&(c=new WeakMap,a[s]=c);let u=i.bind(r,o);c.set(o,u),i._wrapped=!0;try{return n.call(this,s,u)}finally{i._wrapped=!1}}}_createPatchMap(t){let n=Object.create(null);return t[this._kOtListeners]=n,n}_getPatchMap(t){return t[this._kOtListeners]}_kOtListeners=Symbol("OtListeners");_wrapped=!1};QH.AbstractAsyncHooksContextManager=JQ});var UUe=w($H=>{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.AsyncHooksContextManager=void 0;var GYt=(Ce(),ke(Ze)),VYt=K("async_hooks"),WYt=XQ(),QQ=class extends WYt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=VYt.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){return this._stack[this._stack.length-1]??GYt.ROOT_CONTEXT}with(t,n,r,...i){this._enterContext(t);try{return n.call(r,...i)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(t,n){if(n==="TIMERWRAP")return;let r=this._stack[this._stack.length-1];r!==void 0&&this._contexts.set(t,r)}_destroy(t){this._contexts.delete(t)}_before(t){let n=this._contexts.get(t);n!==void 0&&this._enterContext(n)}_after(){this._exitContext()}_enterContext(t){this._stack.push(t)}_exitContext(){this._stack.pop()}};$H.AsyncHooksContextManager=QQ});var FUe=w(eq=>{"use strict";Object.defineProperty(eq,"__esModule",{value:!0});eq.AsyncLocalStorageContextManager=void 0;var KYt=(Ce(),ke(Ze)),YYt=K("async_hooks"),ZYt=XQ(),$Q=class extends ZYt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new YYt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??KYt.ROOT_CONTEXT}with(t,n,r,...i){let s=r==null?n:n.bind(r);return this._asyncLocalStorage.run(t,s,...i)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}};eq.AsyncLocalStorageContextManager=$Q});var jUe=w(hA=>{"use strict";Object.defineProperty(hA,"__esModule",{value:!0});hA.AsyncLocalStorageContextManager=hA.AsyncHooksContextManager=void 0;var JYt=UUe();Object.defineProperty(hA,"AsyncHooksContextManager",{enumerable:!0,get:function(){return JYt.AsyncHooksContextManager}});var XYt=FUe();Object.defineProperty(hA,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return XYt.AsyncLocalStorageContextManager}})});var e$=w(mA=>{"use strict";Object.defineProperty(mA,"__esModule",{value:!0});mA._clearDefaultServiceNameCache=mA.defaultServiceName=void 0;var TP;function QYt(){if(TP===void 0)try{let e=globalThis.process.argv0;TP=e?`unknown_service:${e}`:"unknown_service"}catch{TP="unknown_service"}return TP}mA.defaultServiceName=QYt;function $Yt(){TP=void 0}mA._clearDefaultServiceNameCache=$Yt});var HUe=w(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});tq.isPromiseLike=void 0;var eZt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";tq.isPromiseLike=eZt});var r$=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.defaultResource=Bp.emptyResource=Bp.resourceFromDetectedResource=Bp.resourceFromAttributes=void 0;var RP=(Ce(),ke(Ze)),t$=fr(),WE=(Pn(),ke(Mr)),tZt=e$(),vP=HUe(),nq=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=qUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,vP.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,vP.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=qUe(this._rawAttributes),this._schemaUrl=sZt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,vP.isPromiseLike)(n)?[t,n.catch(r=>{RP.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function sZt(e){if(typeof e=="string"||e===void 0)return e;RP.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function oZt(e,t){let n=e?.schemaUrl,r=t?.schemaUrl,i=n===void 0||n==="",s=r===void 0||r==="";if(i)return r;if(s||n===r)return n;RP.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var zUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.detectResources=void 0;var BUe=(Ce(),ke(Ze)),i$=r$(),aZt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,i$.resourceFromDetectedResource)(n.detect(e));return BUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return BUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,i$.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,i$.emptyResource)());rq.detectResources=aZt});var VUe=w(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.envDetector=void 0;var cZt=(Ce(),ke(Ze)),uZt=(Pn(),ke(Mr)),GUe=fr(),s$=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,GUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,GUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){cZt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[uZt.ATTR_SERVICE_NAME]=i),{attributes:n}}_parseResourceAttributes(t){if(!t)return{};let n={},r=t.split(this._COMMA_SEPARATOR);for(let i of r){let s=i.split(this._LABEL_KEY_VALUE_SPLITTER);if(s.length!==2)throw new Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${i}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[o,a]=s,c=o.trim(),u=a.trim();if(c.length===0)throw new Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${i}".`);let l,d;try{l=decodeURIComponent(c),d=decodeURIComponent(u)}catch(f){throw new Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${i}": ${f instanceof Error?f.message:f}`)}if(l.length>this._MAX_LENGTH)throw new Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${l}".`);if(d.length>this._MAX_LENGTH)throw new Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${l}".`);n[l]=d}return n}};iq.envDetector=new s$});var AP=w(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.ATTR_WEBENGINE_VERSION=Je.ATTR_WEBENGINE_NAME=Je.ATTR_WEBENGINE_DESCRIPTION=Je.ATTR_SERVICE_NAMESPACE=Je.ATTR_SERVICE_INSTANCE_ID=Je.ATTR_PROCESS_RUNTIME_VERSION=Je.ATTR_PROCESS_RUNTIME_NAME=Je.ATTR_PROCESS_RUNTIME_DESCRIPTION=Je.ATTR_PROCESS_PID=Je.ATTR_PROCESS_OWNER=Je.ATTR_PROCESS_EXECUTABLE_PATH=Je.ATTR_PROCESS_EXECUTABLE_NAME=Je.ATTR_PROCESS_COMMAND_ARGS=Je.ATTR_PROCESS_COMMAND=Je.ATTR_OS_VERSION=Je.ATTR_OS_TYPE=Je.ATTR_K8S_POD_NAME=Je.ATTR_K8S_NAMESPACE_NAME=Je.ATTR_K8S_DEPLOYMENT_NAME=Je.ATTR_K8S_CLUSTER_NAME=Je.ATTR_HOST_TYPE=Je.ATTR_HOST_NAME=Je.ATTR_HOST_IMAGE_VERSION=Je.ATTR_HOST_IMAGE_NAME=Je.ATTR_HOST_IMAGE_ID=Je.ATTR_HOST_ID=Je.ATTR_HOST_ARCH=Je.ATTR_CONTAINER_NAME=Je.ATTR_CONTAINER_IMAGE_TAGS=Je.ATTR_CONTAINER_IMAGE_NAME=Je.ATTR_CONTAINER_ID=Je.ATTR_CLOUD_REGION=Je.ATTR_CLOUD_PROVIDER=Je.ATTR_CLOUD_AVAILABILITY_ZONE=Je.ATTR_CLOUD_ACCOUNT_ID=void 0;Je.ATTR_CLOUD_ACCOUNT_ID="cloud.account.id";Je.ATTR_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone";Je.ATTR_CLOUD_PROVIDER="cloud.provider";Je.ATTR_CLOUD_REGION="cloud.region";Je.ATTR_CONTAINER_ID="container.id";Je.ATTR_CONTAINER_IMAGE_NAME="container.image.name";Je.ATTR_CONTAINER_IMAGE_TAGS="container.image.tags";Je.ATTR_CONTAINER_NAME="container.name";Je.ATTR_HOST_ARCH="host.arch";Je.ATTR_HOST_ID="host.id";Je.ATTR_HOST_IMAGE_ID="host.image.id";Je.ATTR_HOST_IMAGE_NAME="host.image.name";Je.ATTR_HOST_IMAGE_VERSION="host.image.version";Je.ATTR_HOST_NAME="host.name";Je.ATTR_HOST_TYPE="host.type";Je.ATTR_K8S_CLUSTER_NAME="k8s.cluster.name";Je.ATTR_K8S_DEPLOYMENT_NAME="k8s.deployment.name";Je.ATTR_K8S_NAMESPACE_NAME="k8s.namespace.name";Je.ATTR_K8S_POD_NAME="k8s.pod.name";Je.ATTR_OS_TYPE="os.type";Je.ATTR_OS_VERSION="os.version";Je.ATTR_PROCESS_COMMAND="process.command";Je.ATTR_PROCESS_COMMAND_ARGS="process.command_args";Je.ATTR_PROCESS_EXECUTABLE_NAME="process.executable.name";Je.ATTR_PROCESS_EXECUTABLE_PATH="process.executable.path";Je.ATTR_PROCESS_OWNER="process.owner";Je.ATTR_PROCESS_PID="process.pid";Je.ATTR_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description";Je.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name";Je.ATTR_PROCESS_RUNTIME_VERSION="process.runtime.version";Je.ATTR_SERVICE_INSTANCE_ID="service.instance.id";Je.ATTR_SERVICE_NAMESPACE="service.namespace";Je.ATTR_WEBENGINE_DESCRIPTION="webengine.description";Je.ATTR_WEBENGINE_NAME="webengine.name";Je.ATTR_WEBENGINE_VERSION="webengine.version"});var oq=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.execAsync=void 0;var lZt=K("child_process"),dZt=K("util");sq.execAsync=dZt.promisify(lZt.exec)});var WUe=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.getMachineId=void 0;var fZt=oq(),pZt=(Ce(),ke(Ze));async function hZt(){try{let t=(await(0,fZt.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` -`).find(r=>r.includes("IOPlatformUUID"));if(!t)return;let n=t.split('" = "');if(n.length===2)return n[1].slice(0,-1)}catch(e){pZt.diag.debug(`error reading machine id: ${e}`)}}aq.getMachineId=hZt});var KUe=w(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});cq.getMachineId=void 0;var mZt=K("fs"),gZt=(Ce(),ke(Ze));async function yZt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await mZt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){gZt.diag.debug(`error reading machine id: ${n}`)}}cq.getMachineId=yZt});var ZUe=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.getMachineId=void 0;var SZt=K("fs"),bZt=oq(),YUe=(Ce(),ke(Ze));async function EZt(){try{return(await SZt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){YUe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,bZt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){YUe.diag.debug(`error reading machine id: ${e}`)}}uq.getMachineId=EZt});var XUe=w(lq=>{"use strict";Object.defineProperty(lq,"__esModule",{value:!0});lq.getMachineId=void 0;var JUe=K("process"),_Zt=oq(),TZt=(Ce(),ke(Ze));async function vZt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";JUe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in JUe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,_Zt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){TZt.diag.debug(`error reading machine id: ${n}`)}}lq.getMachineId=vZt});var QUe=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.getMachineId=void 0;var RZt=(Ce(),ke(Ze));async function AZt(){RZt.diag.debug("could not read machine-id: unsupported platform")}dq.getMachineId=AZt});var $Ue=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.getMachineId=void 0;var wZt=K("process"),KE;async function kZt(){if(!KE)switch(wZt.platform){case"darwin":KE=(await Promise.resolve().then(()=>Re(WUe()))).getMachineId;break;case"linux":KE=(await Promise.resolve().then(()=>Re(KUe()))).getMachineId;break;case"freebsd":KE=(await Promise.resolve().then(()=>Re(ZUe()))).getMachineId;break;case"win32":KE=(await Promise.resolve().then(()=>Re(XUe()))).getMachineId;break;default:KE=(await Promise.resolve().then(()=>Re(QUe()))).getMachineId;break}return KE()}fq.getMachineId=kZt});var o$=w(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.normalizeType=gA.normalizeArch=void 0;var IZt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};gA.normalizeArch=IZt;var xZt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};gA.normalizeType=xZt});var tFe=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.hostDetector=void 0;var a$=AP(),eFe=K("os"),OZt=$Ue(),PZt=o$(),c$=class{detect(t){return{attributes:{[a$.ATTR_HOST_NAME]:(0,eFe.hostname)(),[a$.ATTR_HOST_ARCH]:(0,PZt.normalizeArch)((0,eFe.arch)()),[a$.ATTR_HOST_ID]:(0,OZt.getMachineId)()}}}};pq.hostDetector=new c$});var iFe=w(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});hq.osDetector=void 0;var nFe=AP(),rFe=K("os"),NZt=o$(),u$=class{detect(t){return{attributes:{[nFe.ATTR_OS_TYPE]:(0,NZt.normalizeType)((0,rFe.platform)()),[nFe.ATTR_OS_VERSION]:(0,rFe.release)()}}}};hq.osDetector=new u$});var sFe=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.processDetector=void 0;var CZt=(Ce(),ke(Ze)),wm=AP(),MZt=K("os"),l$=class{detect(t){let n={[wm.ATTR_PROCESS_PID]:process.pid,[wm.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[wm.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[wm.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[wm.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[wm.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[wm.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[wm.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=MZt.userInfo();n[wm.ATTR_PROCESS_OWNER]=r.username}catch(r){CZt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};mq.processDetector=new l$});var oFe=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.serviceInstanceIdDetector=void 0;var DZt=AP(),LZt=K("crypto"),d$=class{detect(t){return{attributes:{[DZt.ATTR_SERVICE_INSTANCE_ID]:(0,LZt.randomUUID)()}}}};gq.serviceInstanceIdDetector=new d$});var aFe=w(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.serviceInstanceIdDetector=zp.processDetector=zp.osDetector=zp.hostDetector=void 0;var UZt=tFe();Object.defineProperty(zp,"hostDetector",{enumerable:!0,get:function(){return UZt.hostDetector}});var FZt=iFe();Object.defineProperty(zp,"osDetector",{enumerable:!0,get:function(){return FZt.osDetector}});var jZt=sFe();Object.defineProperty(zp,"processDetector",{enumerable:!0,get:function(){return jZt.processDetector}});var HZt=oFe();Object.defineProperty(zp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return HZt.serviceInstanceIdDetector}})});var cFe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var yq=aFe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return yq.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return yq.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return yq.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return yq.serviceInstanceIdDetector}})});var uFe=w(yA=>{"use strict";Object.defineProperty(yA,"__esModule",{value:!0});yA.noopDetector=yA.NoopDetector=void 0;var Sq=class{detect(){return{attributes:{}}}};yA.NoopDetector=Sq;yA.noopDetector=new Sq});var lFe=w(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.noopDetector=pu.serviceInstanceIdDetector=pu.processDetector=pu.osDetector=pu.hostDetector=pu.envDetector=void 0;var qZt=VUe();Object.defineProperty(pu,"envDetector",{enumerable:!0,get:function(){return qZt.envDetector}});var bq=cFe();Object.defineProperty(pu,"hostDetector",{enumerable:!0,get:function(){return bq.hostDetector}});Object.defineProperty(pu,"osDetector",{enumerable:!0,get:function(){return bq.osDetector}});Object.defineProperty(pu,"processDetector",{enumerable:!0,get:function(){return bq.processDetector}});Object.defineProperty(pu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return bq.serviceInstanceIdDetector}});var BZt=uFe();Object.defineProperty(pu,"noopDetector",{enumerable:!0,get:function(){return BZt.noopDetector}})});var p$=w(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.defaultServiceName=ls.emptyResource=ls.defaultResource=ls.resourceFromAttributes=ls.serviceInstanceIdDetector=ls.processDetector=ls.osDetector=ls.hostDetector=ls.envDetector=ls.detectResources=void 0;var zZt=zUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return zZt.detectResources}});var wP=lFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return wP.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return wP.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return wP.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return wP.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return wP.serviceInstanceIdDetector}});var f$=r$();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return f$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return f$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return f$.emptyResource}});var GZt=e$();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return GZt.defaultServiceName}})});var dFe=w(Eq=>{"use strict";Object.defineProperty(Eq,"__esModule",{value:!0});Eq.ExceptionEventName=void 0;Eq.ExceptionEventName="exception"});var fFe=w(_q=>{"use strict";Object.defineProperty(_q,"__esModule",{value:!0});_q.SpanImpl=void 0;var ua=(Ce(),ke(Ze)),la=fr(),YE=(Pn(),ke(Mr)),VZt=dFe(),h$=class{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:ua.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_recordEndMetrics;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(t){let n=Date.now();if(this._spanContext=t.spanContext,this._performanceStartTime=la.otperformance.now(),this._performanceOffset=n-(this._performanceStartTime+la.otperformance.timeOrigin),this._startTimeProvided=t.startTime!=null,this._spanLimits=t.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit??0,this._spanProcessor=t.spanProcessor,this.name=t.name,this.parentSpanContext=t.parentSpanContext,this.kind=t.kind,t.links)for(let r of t.links)this.addLink(r);this.startTime=this._getTime(t.startTime??n),this.resource=t.resource,this.instrumentationScope=t.scope,this._recordEndMetrics=t.recordEndMetrics,t.attributes!=null&&this.setAttributes(t.attributes),this._spanProcessor.onStart(this,t.context)}spanContext(){return this._spanContext}setAttribute(t,n){if(n==null||this._isSpanEnded())return this;if(t.length===0)return ua.diag.warn(`Invalid attribute key: ${t}`),this;if(!(0,la.isAttributeValue)(n))return ua.diag.warn(`Invalid attribute value set for key: ${t}`),this;let{attributeCountLimit:r}=this._spanLimits,i=!Object.prototype.hasOwnProperty.call(this.attributes,t);return r!==void 0&&this._attributesCount>=r&&i?(this._droppedAttributesCount++,this):(this.attributes[t]=this._truncateToSize(n),i&&this._attributesCount++,this)}setAttributes(t){for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&this.setAttribute(n,t[n]);return this}addEvent(t,n,r){if(this._isSpanEnded())return this;let{eventCountLimit:i}=this._spanLimits;if(i===0)return ua.diag.warn("No events allowed."),this._droppedEventsCount++,this;i!==void 0&&this.events.length>=i&&(this._droppedEventsCount===0&&ua.diag.debug("Dropping extra events."),this.events.shift(),this._droppedEventsCount++),(0,la.isTimeInput)(n)&&((0,la.isTimeInput)(r)||(r=n),n=void 0);let s=(0,la.sanitizeAttributes)(n),{attributePerEventCountLimit:o}=this._spanLimits,a={},c=0,u=0;for(let l in s){if(!Object.prototype.hasOwnProperty.call(s,l))continue;let d=s[l];if(o!==void 0&&u>=o){c++;continue}a[l]=this._truncateToSize(d),u++}return this.events.push({name:t,attributes:a,time:this._getTime(r),droppedAttributesCount:c}),this}addLink(t){if(this._isSpanEnded())return this;let{linkCountLimit:n}=this._spanLimits;if(n===0)return this._droppedLinksCount++,this;n!==void 0&&this.links.length>=n&&(this._droppedLinksCount===0&&ua.diag.debug("Dropping extra links."),this.links.shift(),this._droppedLinksCount++);let{attributePerLinkCountLimit:r}=this._spanLimits,i=(0,la.sanitizeAttributes)(t.attributes),s={},o=0,a=0;for(let u in i){if(!Object.prototype.hasOwnProperty.call(i,u))continue;let l=i[u];if(r!==void 0&&a>=r){o++;continue}s[u]=this._truncateToSize(l),a++}let c={context:t.context};return a>0&&(c.attributes=s),o>0&&(c.droppedAttributesCount=o),this.links.push(c),this}addLinks(t){for(let n of t)this.addLink(n);return this}setStatus(t){if(this._isSpanEnded())return this;if(t.code===ua.SpanStatusCode.UNSET)return this;if(this.status.code===ua.SpanStatusCode.OK)return this;let n={code:t.code};return t.code===ua.SpanStatusCode.ERROR&&(typeof t.message=="string"?n.message=t.message:t.message!=null&&ua.diag.warn(`Dropping invalid status.message of type '${typeof t.message}', expected 'string'`)),this.status=n,this}updateName(t){return this._isSpanEnded()?this:(this.name=t,this)}end(t){if(this._isSpanEnded()){ua.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}this.endTime=this._getTime(t),this._duration=(0,la.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0&&(ua.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0]),this._droppedEventsCount>0&&ua.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`),this._droppedLinksCount>0&&ua.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`),this._spanProcessor.onEnding&&this._spanProcessor.onEnding(this),this._recordEndMetrics?.(),this._ended=!0,this._spanProcessor.onEnd(this)}_getTime(t){if(typeof t=="number"&&t<=la.otperformance.now())return(0,la.hrTime)(t+this._performanceOffset);if(typeof t=="number")return(0,la.millisToHrTime)(t);if(t instanceof Date)return(0,la.millisToHrTime)(t.getTime());if((0,la.isTimeInputHrTime)(t))return t;if(this._startTimeProvided)return(0,la.millisToHrTime)(Date.now());let n=la.otperformance.now()-this._performanceStartTime;return(0,la.addHrTimes)(this.startTime,(0,la.millisToHrTime)(n))}isRecording(){return this._ended===!1}recordException(t,n){let r={};typeof t=="string"?r[YE.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[YE.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[YE.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[YE.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[YE.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[YE.ATTR_EXCEPTION_TYPE]||r[YE.ATTR_EXCEPTION_MESSAGE]?this.addEvent(VZt.ExceptionEventName,r,n):ua.diag.warn(`Failed to record an exception ${t}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let t=new Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);ua.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,t)}return this._ended}_truncateToLimitUtil(t,n){return t.length<=n?t:t.substring(0,n)}_truncateToSize(t){let n=this._attributeValueLengthLimit;return n<=0?(ua.diag.warn(`Attribute value limit must be positive, got ${n}`),t):typeof t=="string"?this._truncateToLimitUtil(t,n):Array.isArray(t)?t.map(r=>typeof r=="string"?this._truncateToLimitUtil(r,n):r):t}};_q.SpanImpl=h$});var SA=w(kP=>{"use strict";Object.defineProperty(kP,"__esModule",{value:!0});kP.SamplingDecision=void 0;var WZt;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(WZt=kP.SamplingDecision||(kP.SamplingDecision={}))});var vq=w(Tq=>{"use strict";Object.defineProperty(Tq,"__esModule",{value:!0});Tq.AlwaysOffSampler=void 0;var KZt=SA(),m$=class{shouldSample(){return{decision:KZt.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};Tq.AlwaysOffSampler=m$});var Aq=w(Rq=>{"use strict";Object.defineProperty(Rq,"__esModule",{value:!0});Rq.AlwaysOnSampler=void 0;var YZt=SA(),g$=class{shouldSample(){return{decision:YZt.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};Rq.AlwaysOnSampler=g$});var b$=w(kq=>{"use strict";Object.defineProperty(kq,"__esModule",{value:!0});kq.ParentBasedSampler=void 0;var wq=(Ce(),ke(Ze)),ZZt=fr(),pFe=vq(),y$=Aq(),S$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,ZZt.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new y$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new y$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new pFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new y$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new pFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=wq.trace.getSpanContext(t);return!a||!(0,wq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&wq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&wq.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,n,r,i,s,o):this._localParentNotSampled.shouldSample(t,n,r,i,s,o)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};kq.ParentBasedSampler=S$});var _$=w(Iq=>{"use strict";Object.defineProperty(Iq,"__esModule",{value:!0});Iq.TraceIdRatioBasedSampler=void 0;var JZt=(Ce(),ke(Ze)),hFe=SA(),E$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,JZt.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Iq.TraceIdRatioBasedSampler=E$});var R$=w(bA=>{"use strict";Object.defineProperty(bA,"__esModule",{value:!0});bA.buildSamplerFromEnv=bA.loadDefaultConfig=void 0;var v$=(Ce(),ke(Ze)),Vp=fr(),mFe=vq(),T$=Aq(),xq=b$(),gFe=_$(),Wp;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(Wp||(Wp={}));var Oq=1;function XZt(){return{sampler:SFe(),forceFlushTimeoutMillis:3e4,generalLimits:{attributeValueLengthLimit:(0,Vp.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,Vp.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??128},spanLimits:{attributeValueLengthLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??128,linkCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT")??128,eventCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT")??128,attributePerEventCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT")??128,attributePerLinkCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT")??128}}}bA.loadDefaultConfig=XZt;function SFe(){let e=(0,Vp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Wp.ParentBasedAlwaysOn;switch(e){case Wp.AlwaysOn:return new T$.AlwaysOnSampler;case Wp.AlwaysOff:return new mFe.AlwaysOffSampler;case Wp.ParentBasedAlwaysOn:return new xq.ParentBasedSampler({root:new T$.AlwaysOnSampler});case Wp.ParentBasedAlwaysOff:return new xq.ParentBasedSampler({root:new mFe.AlwaysOffSampler});case Wp.TraceIdRatio:return new gFe.TraceIdRatioBasedSampler(yFe());case Wp.ParentBasedTraceIdRatio:return new xq.ParentBasedSampler({root:new gFe.TraceIdRatioBasedSampler(yFe())});default:return v$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Wp.ParentBasedAlwaysOn}".`),new xq.ParentBasedSampler({root:new T$.AlwaysOnSampler})}}bA.buildSamplerFromEnv=SFe;function yFe(){let e=(0,Vp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(v$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${Oq}.`),Oq):e<0||e>1?(v$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${Oq}.`),Oq):e}});var A$=w(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.reconfigureLimits=Xl.mergeConfig=Xl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Xl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var bFe=R$(),Pq=fr();Xl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Xl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function QZt(e){let t={sampler:(0,bFe.buildSamplerFromEnv)()},n=(0,bFe.loadDefaultConfig)(),r=Object.assign({},n,t,e);return r.generalLimits=Object.assign({},n.generalLimits,e.generalLimits||{}),r.spanLimits=Object.assign({},n.spanLimits,e.spanLimits||{}),r}Xl.mergeConfig=QZt;function $Zt(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,Pq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,Pq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Xl.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,Pq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,Pq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Xl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Xl.reconfigureLimits=$Zt});var EFe=w(Nq=>{"use strict";Object.defineProperty(Nq,"__esModule",{value:!0});Nq.BatchSpanProcessorBase=void 0;var EA=(Ce(),ke(Ze)),km=fr(),w$=class{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(t,n){this._exporter=t,this._maxExportBatchSize=typeof n?.maxExportBatchSize=="number"?n.maxExportBatchSize:(0,km.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,km.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,km.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,km.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new km.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(EA.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}onStart(t,n){}onEnd(t){this._shutdownOnce.isCalled||(t.spanContext().traceFlags&EA.TraceFlags.SAMPLED)!==0&&this._addToBuffer(t)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>this.onShutdown()).then(()=>this._flushAll()).then(()=>this._exporter.shutdown())}_addToBuffer(t){if(this._finishedSpans.length>=this._maxQueueSize){this._droppedSpansCount===0&&EA.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(EA.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0),this._finishedSpans.push(t),this._maybeStartTimer()}_flushAll(){return new Promise((t,n)=>{let r=[],i=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let s=0,o=i;s{t()}).catch(n)})}_flushOneBatch(){return this._clearTimer(),this._finishedSpans.length===0?Promise.resolve():new Promise((t,n)=>{let r=setTimeout(()=>{n(new Error("Timeout"))},this._exportTimeoutMillis);EA.context.with((0,km.suppressTracing)(EA.context.active()),()=>{let i;this._finishedSpans.length<=this._maxExportBatchSize?(i=this._finishedSpans,this._finishedSpans=[]):i=this._finishedSpans.splice(0,this._maxExportBatchSize);let s=()=>this._exporter.export(i,a=>{clearTimeout(r),a.code===km.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,km.globalErrorHandler)(a),n(a)})})})}_maybeStartTimer(){if(this._isExporting)return;let t=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{this._isExporting=!1,this._finishedSpans.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(n=>{this._isExporting=!1,(0,km.globalErrorHandler)(n)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return t();this._timer===void 0&&(this._timer=setTimeout(()=>t(),this._scheduledDelayMillis),typeof this._timer!="number"&&this._timer.unref())}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}};Nq.BatchSpanProcessorBase=w$});var _Fe=w(Cq=>{"use strict";Object.defineProperty(Cq,"__esModule",{value:!0});Cq.BatchSpanProcessor=void 0;var e6t=EFe(),k$=class extends e6t.BatchSpanProcessorBase{onShutdown(){}};Cq.BatchSpanProcessor=k$});var RFe=w(Dq=>{"use strict";Object.defineProperty(Dq,"__esModule",{value:!0});Dq.RandomIdGenerator=void 0;var t6t=8,vFe=16,I$=class{generateTraceId=TFe(vFe);generateSpanId=TFe(t6t)};Dq.RandomIdGenerator=I$;var Mq=Buffer.allocUnsafe(vFe);function TFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Mq[e-1]=1);return Mq.toString("hex",0,e)}}});var AFe=w(_A=>{"use strict";Object.defineProperty(_A,"__esModule",{value:!0});_A.RandomIdGenerator=_A.BatchSpanProcessor=void 0;var n6t=_Fe();Object.defineProperty(_A,"BatchSpanProcessor",{enumerable:!0,get:function(){return n6t.BatchSpanProcessor}});var r6t=RFe();Object.defineProperty(_A,"RandomIdGenerator",{enumerable:!0,get:function(){return r6t.RandomIdGenerator}})});var x$=w(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.RandomIdGenerator=TA.BatchSpanProcessor=void 0;var wFe=AFe();Object.defineProperty(TA,"BatchSpanProcessor",{enumerable:!0,get:function(){return wFe.BatchSpanProcessor}});Object.defineProperty(TA,"RandomIdGenerator",{enumerable:!0,get:function(){return wFe.RandomIdGenerator}})});var kFe=w(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});Kp.METRIC_OTEL_SDK_SPAN_STARTED=Kp.METRIC_OTEL_SDK_SPAN_LIVE=Kp.ATTR_OTEL_SPAN_SAMPLING_RESULT=Kp.ATTR_OTEL_SPAN_PARENT_ORIGIN=void 0;Kp.ATTR_OTEL_SPAN_PARENT_ORIGIN="otel.span.parent.origin";Kp.ATTR_OTEL_SPAN_SAMPLING_RESULT="otel.span.sampling_result";Kp.METRIC_OTEL_SDK_SPAN_LIVE="otel.sdk.span.live";Kp.METRIC_OTEL_SDK_SPAN_STARTED="otel.sdk.span.started"});var IFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.TracerMetrics=void 0;var Lq=SA(),IP=kFe(),O$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(IP.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(IP.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=s6t(n);if(this.startedSpans.add(1,{[IP.ATTR_OTEL_SPAN_PARENT_ORIGIN]:i6t(t),[IP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Lq.SamplingDecision.NOT_RECORD)return()=>{};let i={[IP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};Uq.TracerMetrics=O$;function i6t(e){return e?e.isRemote?"remote":"local":"none"}function s6t(e){switch(e){case Lq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Lq.SamplingDecision.RECORD:return"RECORD_ONLY";case Lq.SamplingDecision.NOT_RECORD:return"DROP"}}});var xFe=w(Fq=>{"use strict";Object.defineProperty(Fq,"__esModule",{value:!0});Fq.VERSION=void 0;Fq.VERSION="2.6.1"});var OFe=w(Hq=>{"use strict";Object.defineProperty(Hq,"__esModule",{value:!0});Hq.Tracer=void 0;var jo=(Ce(),ke(Ze)),jq=fr(),o6t=fFe(),a6t=A$(),c6t=x$(),u6t=IFe(),l6t=xFe(),P$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,a6t.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new c6t.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",l6t.VERSION):jo.createNoopMeter();this._tracerMetrics=new u6t.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,jq.isTracingSuppressed)(r))return jo.diag.debug("Instrumentation suppressed, returning Noop Span"),jo.trace.wrapSpanContext(jo.INVALID_SPAN_CONTEXT);let s=i?.spanContext(),o=this._idGenerator.generateSpanId(),a,c,u;!s||!jo.trace.isSpanContextValid(s)?c=this._idGenerator.generateTraceId():(c=s.traceId,u=s.traceState,a=s);let l=n.kind??jo.SpanKind.INTERNAL,d=(n.links??[]).map(S=>({context:S.context,attributes:(0,jq.sanitizeAttributes)(S.attributes)})),f=(0,jq.sanitizeAttributes)(n.attributes),p=this._sampler.shouldSample(r,c,t,l,f,d),h=this._tracerMetrics.startSpan(s,p.decision);u=p.traceState??u;let m=p.decision===jo.SamplingDecision.RECORD_AND_SAMPLED?jo.TraceFlags.SAMPLED:jo.TraceFlags.NONE,g={traceId:c,spanId:o,traceFlags:m,traceState:u};if(p.decision===jo.SamplingDecision.NOT_RECORD)return jo.diag.debug("Recording is off, propagating context in a non-recording span"),jo.trace.wrapSpanContext(g);let y=(0,jq.sanitizeAttributes)(Object.assign(f,p.attributes));return new o6t.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:r,spanContext:g,name:t,kind:l,links:d,parentSpanContext:a,attributes:y,startTime:n.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits,recordEndMetrics:h})}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??jo.context.active(),u=this.startSpan(t,s,c),l=jo.trace.setSpan(c,u);return jo.context.with(l,a,void 0,u)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}};Hq.Tracer=P$});var PFe=w(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});qq.MultiSpanProcessor=void 0;var d6t=fr(),N$=class{_spanProcessors;constructor(t){this._spanProcessors=t}forceFlush(){let t=[];for(let n of this._spanProcessors)t.push(n.forceFlush());return new Promise(n=>{Promise.all(t).then(()=>{n()}).catch(r=>{(0,d6t.globalErrorHandler)(r||new Error("MultiSpanProcessor: forceFlush failed")),n()})})}onStart(t,n){for(let r of this._spanProcessors)r.onStart(t,n)}onEnding(t){for(let n of this._spanProcessors)n.onEnding&&n.onEnding(t)}onEnd(t){for(let n of this._spanProcessors)n.onEnd(t)}shutdown(){let t=[];for(let n of this._spanProcessors)t.push(n.shutdown());return new Promise((n,r)=>{Promise.all(t).then(()=>{n()},r)})}};qq.MultiSpanProcessor=N$});var NFe=w(ZE=>{"use strict";Object.defineProperty(ZE,"__esModule",{value:!0});ZE.BasicTracerProvider=ZE.ForceFlushState=void 0;var f6t=fr(),p6t=p$(),h6t=OFe(),m6t=R$(),g6t=PFe(),y6t=A$(),vA;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(vA=ZE.ForceFlushState||(ZE.ForceFlushState={}));var C$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,f6t.merge)({},(0,m6t.loadDefaultConfig)(),(0,y6t.reconfigureLimits)(t));this._resource=n.resource??(0,p6t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new g6t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new h6t.Tracer({name:t,version:n,schemaUrl:r?.schemaUrl},this._config,this._resource,this._activeSpanProcessor)),this._tracers.get(i)}forceFlush(){let t=this._config.forceFlushTimeoutMillis,n=this._activeSpanProcessor._spanProcessors.map(r=>new Promise(i=>{let s,o=setTimeout(()=>{i(new Error(`Span processor did not completed within timeout period of ${t} ms`)),s=vA.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==vA.timeout&&(s=vA.resolved,i(s))}).catch(a=>{clearTimeout(o),s=vA.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==vA.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};ZE.BasicTracerProvider=C$});var CFe=w(Bq=>{"use strict";Object.defineProperty(Bq,"__esModule",{value:!0});Bq.ConsoleSpanExporter=void 0;var M$=fr(),D$=class{export(t,n){return this._sendSpans(t,n)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(t){return{resource:{attributes:t.resource.attributes},instrumentationScope:t.instrumentationScope,traceId:t.spanContext().traceId,parentSpanContext:t.parentSpanContext,traceState:t.spanContext().traceState?.serialize(),name:t.name,id:t.spanContext().spanId,kind:t.kind,timestamp:(0,M$.hrTimeToMicroseconds)(t.startTime),duration:(0,M$.hrTimeToMicroseconds)(t.duration),attributes:t.attributes,status:t.status,events:t.events,links:t.links}}_sendSpans(t,n){for(let r of t)console.dir(this._exportInfo(r),{depth:3});if(n)return n({code:M$.ExportResultCode.SUCCESS})}};Bq.ConsoleSpanExporter=D$});var DFe=w(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});zq.InMemorySpanExporter=void 0;var MFe=fr(),L$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:MFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:MFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};zq.InMemorySpanExporter=L$});var LFe=w(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});Vq.SimpleSpanProcessor=void 0;var S6t=(Ce(),ke(Ze)),Gq=fr(),U$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Gq.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush&&await this._exporter.forceFlush()}onStart(t,n){}onEnd(t){if(this._shutdownOnce.isCalled||(t.spanContext().traceFlags&S6t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Gq.globalErrorHandler)(r));this._pendingExports.add(n),n.finally(()=>this._pendingExports.delete(n))}async _doExport(t){t.resource.asyncAttributesPending&&await t.resource.waitForAsyncAttributes?.();let n=await Gq.internal._export(this._exporter,[t]);if(n.code!==Gq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Vq.SimpleSpanProcessor=U$});var UFe=w(Wq=>{"use strict";Object.defineProperty(Wq,"__esModule",{value:!0});Wq.NoopSpanProcessor=void 0;var F$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Wq.NoopSpanProcessor=F$});var j$=w(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});ti.SamplingDecision=ti.TraceIdRatioBasedSampler=ti.ParentBasedSampler=ti.AlwaysOnSampler=ti.AlwaysOffSampler=ti.NoopSpanProcessor=ti.SimpleSpanProcessor=ti.InMemorySpanExporter=ti.ConsoleSpanExporter=ti.RandomIdGenerator=ti.BatchSpanProcessor=ti.BasicTracerProvider=void 0;var b6t=NFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return b6t.BasicTracerProvider}});var FFe=x$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return FFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return FFe.RandomIdGenerator}});var E6t=CFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return E6t.ConsoleSpanExporter}});var _6t=DFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return _6t.InMemorySpanExporter}});var T6t=LFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return T6t.SimpleSpanProcessor}});var v6t=UFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return v6t.NoopSpanProcessor}});var R6t=vq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return R6t.AlwaysOffSampler}});var A6t=Aq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return A6t.AlwaysOnSampler}});var w6t=b$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return w6t.ParentBasedSampler}});var k6t=_$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return k6t.TraceIdRatioBasedSampler}});var I6t=SA();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return I6t.SamplingDecision}})});function Z$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function J$(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function x6t(e){return typeof e.kind=="number"}function O6t(e){return!!e.status}function BFe(e){return!!e.name}function P6t(e){if(!J$(e))return{};let t=e.attributes[fy]||e.attributes[dR],n={url:t,"http.method":e.attributes[SE]||e.attributes[hO]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Dy(t);n.url=Ly(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function N6t(e){return x6t(e)?e.kind:$r.INTERNAL}function kA(e){return e.getValue($$)}function VFe(e,t){return e.setValue($$,t)}function D6t(e,t){zs(e,GFe,t)}function OP(e){return e[GFe]}function AA(e){let{traceFlags:t,traceState:n}=e,r=n?n.get(Q$)==="1":!1;if(t===qa.SAMPLED)return!0;if(r)return!1;let i=n?n.get(X$):void 0,s=i?ym(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function WFe(e,t,n){let r=t[SE]||t[hO];if(r)return U6t({attributes:t,name:e,kind:n},r);let i=t[yE]||t[n7],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return L6t({attributes:t,name:e});let o=t[Wi]==="custom"?"custom":"route";if(t[p7])return{...xP(e,t,"route"),op:"rpc"};if(t[f7])return{...xP(e,t,o),op:"message"};let u=t[i7];return u?{...xP(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function KFe(e){let t=J$(e)?e.attributes:{},n=BFe(e)?e.name:"",r=N6t(e);return WFe(n,t,r)}function L6t({attributes:e,name:t}){let n=e[Wl];if(typeof n=="string")return{op:"db",description:n,source:e[Wi]||"custom"};if(e[Wi]==="custom")return{op:"db",description:t,source:"custom"};let r=e[r7];return{op:"db",description:r?r.toString():t,source:"task"}}function U6t({name:e,kind:t,attributes:n},r){let i=["http"];switch(t){case $r.CLIENT:i.push("client");break;case $r.SERVER:i.push("server");break}n["sentry.http.prefetch"]&&i.push("prefetch");let{urlPath:s,url:o,query:a,fragment:c,hasRoute:u}=j6t(n,t);if(!s)return{...xP(e,n),op:i.join(".")};let l=n[wA],d=`${r} ${s}`,f=l?`${d} (${F6t(l)})`:d,p=u||s==="/"?"route":"url",h={};o&&(h.url=o),a&&(h["http.query"]=a),c&&(h["http.fragment"]=c);let m=t===$r.CLIENT||t===$r.SERVER,y=!`${n[At]||"manual"}`.startsWith("auto"),b=n[Wi]==="custom",S=n[Wl],E=!b&&S==null&&(m||!y),{description:_,source:T}=E?{description:f,source:p}:xP(e,n);return{op:i.join("."),description:_,source:T,data:h}}function F6t(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}function j6t(e,t){let n=e[c7],r=e[dR]||e[fy],i=e[lm],s=typeof r=="string"?Dy(r):void 0,o=s?Ly(s):void 0,a=s?.search||void 0,c=s?.hash||void 0;return typeof i=="string"?{urlPath:i,url:o,query:a,fragment:c,hasRoute:!0}:t===$r.SERVER&&typeof n=="string"?{urlPath:Tm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:Tm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function xP(e,t,n="custom"){let r=t[Wi]||n,i=t[Wl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function YFe(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Wi],{description:o}=BFe(n)?KFe(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),Os()){let a=AA(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function ZFe(){return jt.getActiveSpan()}function JFe({dsc:e,sampled:t}){let n=e?xE(e):void 0,r=new Mc.TraceState,i=n?r.set(X$,n):r;return t===!1?i.set(Q$,"1"):i}function QFe(){return Array.from(XFe)}function Xq(e){XFe.add(e)}function $Fe(e,t={}){let n=jt.getSpan(e);if(n?.spanContext().isRemote){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:void 0,sampled:AA(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:a.spanId,sampled:AA(a)}}let r=t.scope||kA(e)?.scope||Un(),i=t.client||ct(),s=r.getPropagationContext();return{dynamicSamplingContext:i?Fp(i,r):void 0,traceId:s.traceId,spanId:s.propagationSpanId,sampled:s.sampled}}function eje(e,{sentryTrace:t,baggage:n}){let r=jO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=ym(n);if(!s||c&&!oX(c,u?.org_id))return e;let l=G6t({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function H6t(e,t,n){let r=tje(eje(e,t));return Ve.with(r,n)}function tje(e){let t=kA(e),n={scope:t?t.scope:Un().clone(),isolationScope:t?t.isolationScope:vn()};return VFe(e,n)}function q6t(e){try{let t=e[H$];return Array.isArray(t)?t.join(","):t}catch{return}}function B6t(e){try{return e[Kq]}catch{return}}function z6t(e){let t=vt(e).data,n=t[dR]||t[fy];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(zFe);if(r)return r}function G6t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=JFe({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?qa.SAMPLED:qa.NONE,traceState:i}}function nje(e,t,n){let r=ije(),{name:i,parentSpan:s}=e;return uje(s)(()=>{let a=aje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Mc.suppressTracing)(a):a,l=sje(e);if(!Os()){let d=(0,Mc.isTracingSuppressed)(u)?u:(0,Mc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(G$(f),Ve.with(a,()=>uf(()=>t(f),()=>{vt(f).status===void 0&&f.setStatus({code:as.ERROR})},n?()=>f.end():void 0)))))}return r.startActiveSpan(i,l,u,d=>(G$(d),uf(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function V6t(e,t){return nje(e,t,!0)}function W6t(e,t){return nje(e,n=>t(n,()=>n.end()),!1)}function K6t(e){let t=ije(),{name:n,parentSpan:r}=e;return uje(r)(()=>{let s=aje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Mc.suppressTracing)(s):s,c=sje(e);Os()||(a=(0,Mc.isTracingSuppressed)(a)?a:(0,Mc.suppressTracing)(a));let u=t.startSpan(n,c,a);return G$(u),u})}function rje(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Un()))}function ije(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Nn)}function sje(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?oje(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function oje(e){return e<9999999999?e*1e3:e}function G$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?oje(n):n)}function aje(e,t){let n=Y6t(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=AA(r.spanContext()),c=cs(r),u=Ps(c),l=JFe({dsc:u,sampled:a}),d={traceId:o,spanId:s,isRemote:!0,traceFlags:a?qa.SAMPLED:qa.NONE,traceState:l};return jt.setSpanContext(i,d)}function Y6t(e){if(e){let t=OP(e);if(t)return t}return Ve.active()}function Z6t(e,t){return H6t(Ve.active(),e,t)}function J6t(e){let t=Ya(),n=Za(),r={traceId:t,spanId:n,isRemote:!0,traceFlags:qa.NONE},i=jt.setSpanContext(Ve.active(),r);return Ve.with(i,()=>(Un().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function cje(e,t){let n=OP(t),r=n&&jt.getSpan(n),i=r?Py(r):IE(t);return[r?Ps(r):Fp(e,t),i]}function uje(e){return e!==void 0?t=>rje(e,t):t=>t()}function X6t(e){let t=(0,Mc.suppressTracing)(Ve.active());return Ve.with(t,e)}function lje(e){e.on("preprocessEvent",t=>{let n=ZFe();if(!n||t.type==="transaction")return;t.contexts={trace:Py(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ps(r),...t.sdkProcessingMetadata},t})}function Q6t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&OP(t))??Ve.active();if(e){let{scope:l}=of(e);i=l&&OP(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=$Fe(i,{scope:t,client:n}),u={"sentry-trace":xy(s,o,a),baggage:xE(c)};return r&&(u.traceparent=Oy(s,o,a)),u}function dje(){function e(){let a=Ve.active(),c=kA(a);return c||{scope:LR(),isolationScope:Vl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=OP(a)||Ve.active();return Ve.with(u.setValue(B$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(q$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(z$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}JJ({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:V6t,startSpanManual:W6t,startInactiveSpan:K6t,getActiveSpan:ZFe,suppressTracing:X6t,getTraceData:Q6t,continueTrace:Z6t,startNewTrace:J6t,withActiveSpan:rje})}function fje(e){class t extends e{constructor(...r){super(...r),Xq("SentryContextManager")}with(r,i,s,...o){let a=kA(r),c=a?.scope||Un(),u=a?.isolationScope||vn(),l=r.getValue(q$)===!0,d=r.getValue(B$),f=r.getValue(z$),p=d||c.clone(),h=f||(l?u.clone():u),y=VFe(r,{scope:p,isolationScope:h}).deleteValue(q$).deleteValue(B$).deleteValue(z$);return D6t(p,y),super.with(y,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:$$}}}return t}function $6t(e){let t=new Map;for(let n of e)e5t(t,n);return Array.from(t,function([n,r]){return r})}function pje(e){return e.attributes[Y$]===!0?void 0:Z$(e)}function e5t(e,t){let n=t.spanContext().spanId,r=pje(t);if(!r){V$(e,{id:n,span:t,children:[]});return}let i=t5t(e,r),s=V$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function t5t(e,t){let n=e.get(t);return n||V$(e,{id:t,children:[]})}function V$(e,t){let n=e.get(t.id);return n?.span?n:n&&!n.span?(n.span=t.span,n.parentNode=t.parentNode,n):(e.set(t.id,t),t)}function mje(e){let t=J$(e)?e.attributes:{},n=O6t(e)?e.status:void 0;if(n){if(n.code===as.OK)return{code:1};if(n.code===as.ERROR){if(typeof n.message>"u"){let i=jFe(t);if(i)return i}return n.message&&n5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=jFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function jFe(e){let t=e[um]||e[gE],n=e[h7],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return gm(r);if(typeof n=="string")return{code:2,message:hje[n]||"unknown_error"}}function r5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Wi];return{origin:n,op:r,source:i}}function i5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=gje(e),o=of(e),a=e.attributes[sf],c={[Wi]:s,[sf]:a,[zt]:t,[At]:i,...r,...yje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=Z$(e),p=mje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:NE(p),links:PE(u)},m=c[um],g=typeof m=="number"?{response:{status_code:m}}:void 0;return{contexts:{trace:h,otel:{resource:e.resource.attributes},...g},spans:[],start_timestamp:lu(e.startTime),timestamp:lu(e.endTime),transaction:n,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:o.scope,capturedSpanIsolationScope:o.isolationScope,sampleRate:a,dynamicSamplingContext:Ps(e)},...s&&{transaction_info:{source:s}}}}function K$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{K$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=Z$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=gje(r),g={[At]:m,[zt]:f,...yje(c),...h},y=mje(r),b={span_id:s,trace_id:o,data:g,description:p,parent_span_id:a,start_timestamp:lu(u),timestamp:lu(l)||void 0,status:NE(y),op:f,origin:m,measurements:CE(r.events),links:PE(d)};t.push(b),e.children.forEach(S=>{K$(S,t,n)})}function gje(e){let{op:t,source:n,origin:r}=r5t(e),{op:i,description:s,source:o,data:a}=KFe(e),c=t||i,u=n||o,l={...a,...s5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function yje(e){let t={...e};return delete t[sf],delete t[Y$],delete t[Wl],t}function s5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[gE];r&&(n[um]=r);let i=P6t(e);return i.url&&(n.url=i.url),i["http.query"]&&(n["http.query"]=i["http.query"].slice(1)),i["http.fragment"]&&(n["http.fragment"]=i["http.fragment"].slice(1)),n}function o5t(e,t){let n=jt.getSpan(t),r=kA(t);n&&!n.spanContext().isRemote&&zR(n,e),n?.spanContext().isRemote&&e.setAttribute(Y$,!0),t===sR&&(r={scope:LR(),isolationScope:Vl()}),r&&UO(e,r.scope,r.isolationScope),WO(e),ct()?.emit("spanStart",e)}function a5t(e){KO(e),ct()?.emit("spanEnd",e)}function c5t(e,t,n){let r=e.spanContext();if(cm(r)&&r.traceId===t){if(r.isRemote){let s=AA(e.spanContext());return Yy&&Z.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=AA(r);return Yy&&Z.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function RA({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=u5t(t,n);return i!==void 0&&(s=s.set(M6t,`${i}`)),r!==void 0&&(s=s.set(C6t,`${r}`)),e==null?{decision:Ky.SamplingDecision.NOT_RECORD,traceState:s}:e===Ky.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set(Q$,"1")}:{decision:e,traceState:s}}function u5t(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Mc.TraceState,s=t[dR]||t[fy];return s&&typeof s=="string"&&(i=i.set(zFe,s)),i}function l5t(e){let t=jt.getSpan(e);return t&&cm(t.spanContext())?t:void 0}var Mc,Ky,Y$,wA,Kq,H$,X$,Q$,zFe,C6t,M6t,$$,q$,B$,z$,GFe,Yy,XFe,Yq,hje,n5t,HFe,qFe,W$,Zq,Jq,IA=v(()=>{Pn();st();Ce();Ce();Mc=Re(fr(),1),Ky=Re(j$(),1),Y$="sentry.parentIsRemote",wA="sentry.graphql.operation";Kq="sentry-trace",H$="baggage",X$="sentry.dsc",Q$="sentry.sampled_not_recording",zFe="sentry.url",C6t="sentry.sample_rand",M6t="sentry.sample_rate",$$=il("sentry_scopes"),q$=il("sentry_fork_isolation_scope"),B$=il("sentry_fork_set_scope"),z$=il("sentry_fork_set_isolation_scope"),GFe="_scopeContext";Yy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;XFe=new Set;Yq=class extends Mc.W3CBaggagePropagator{constructor(){super(),Xq("SentryPropagator"),this._urlMatchesTargetsMap=new fu(100)}inject(t,n,r){if((0,Mc.isTracingSuppressed)(t)){Yy&&Z.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&z6t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!UE(s,o,this._urlMatchesTargetsMap)){Yy&&Z.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=q6t(n),u=B6t(n),l=Qd.getBaggage(t)||Qd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=$Fe(t);if(c){let m=OE(c);m&&Object.entries(m).forEach(([g,y])=>{!u&&g.startsWith(Up)||(l=l.setEntry(g,{value:y}))})}!u&&d&&(l=Object.entries(d).reduce((m,[g,y])=>y?m.setEntry(`${Up}${g}`,{value:y}):m,l)),!u&&f&&f!==pE&&(r.set(n,Kq,xy(f,p,h)),a&&r.set(n,"traceparent",Oy(f,p,h))),super.inject(Qd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Kq),s=r.get(n,H$),o=i?Array.isArray(i)?i[0]:i:void 0;return tje(eje(t,{sentryTrace:o,baggage:s}))}fields(){return[Kq,H$,"traceparent"]}};hje={1:"cancelled",2:"unknown_error",3:"invalid_argument",4:"deadline_exceeded",5:"not_found",6:"already_exists",7:"permission_denied",8:"resource_exhausted",9:"failed_precondition",10:"aborted",11:"out_of_range",12:"unimplemented",13:"internal_error",14:"unavailable",15:"data_loss",16:"unauthenticated"},n5t=e=>Object.values(hje).includes(e);HFe=1e3,qFe=300,W$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||qFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Gl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=VX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Gl()/1e3);if(this._lastCleanupTimestampInS!==n){let o=0;this._finishedSpanBuckets.forEach((a,c)=>{a&&a.timestampInS<=n-this._finishedSpanBucketSize&&(o+=a.spans.size,this._finishedSpanBuckets[c]=void 0)}),o>0&&Yy&&Z.log(`SpanExporter dropped ${o} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`),this._lastCleanupTimestampInS=n}let r=n%this._finishedSpanBucketSize,i=this._finishedSpanBuckets[r]||{timestampInS:n,spans:new Set};this._finishedSpanBuckets[r]=i,i.spans.add(t),this._spansToBucketEntry.set(t,i);let s=pje(t);(!s||this._sentSpans.has(s))&&this._debouncedFlush()}flush(){let t=this._finishedSpanBuckets.flatMap(o=>o?Array.from(o.spans):[]);this._flushSentSpanCache();let n=this._maybeSend(t),r=n.size,i=t.length-r;Yy&&Z.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Gl()+qFe*1e3;for(let o of n){this._sentSpans.set(o.spanContext().spanId,s);let a=this._spansToBucketEntry.get(o);a&&a.spans.delete(o)}this._debouncedFlush.cancel()}clear(){this._finishedSpanBuckets=this._finishedSpanBuckets.fill(void 0),this._sentSpans.clear(),this._debouncedFlush.cancel()}_maybeSend(t){let n=$6t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=i5t(o);if(s.parentNode&&this._sentSpans.has(s.parentNode.id)){let l=a.contexts?.trace?.data;l&&(l["sentry.parent_span_already_sent"]=!0)}let c=a.spans||[];for(let l of s.children)K$(l,c,r);a.spans=c.length>HFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,HFe):c;let u=CE(o.events);u&&(a.measurements=u),aH(a)}return r}_flushSentSpanCache(){let t=Gl();for(let[n,r]of this._sentSpans.entries())r<=t&&this._sentSpans.delete(n)}_nodeIsCompletedRootNodeOrHasSentParent(t){return!!t.span&&(!t.parentNode||this._sentSpans.has(t.parentNode.id))}_getCompletedRootNodes(t){return t.filter(n=>this._nodeIsCompletedRootNodeOrHasSentParent(n))}};Zq=class{constructor(t){Xq("SentrySpanProcessor"),this._exporter=new W$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){o5t(t,n)}onEnd(t){a5t(t),this._exporter.export(t)}},Jq=class{constructor(t){this._client=t,Xq("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=l5t(t),u=c?.spanContext();if(!Os(a))return RA({decision:void 0,context:t,spanAttributes:s});let l=s[hO]||s[SE];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return RA({decision:void 0,context:t,spanAttributes:s});let d=c?c5t(c,n,r):void 0;if(!(!c||u?.isRemote))return RA({decision:d?Ky.SamplingDecision.RECORD_AND_SAMPLED:Ky.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=WFe(r,s,i),g={...h,...s};m&&(g[zt]=m);let y={decision:!0};if(this._client.emit("beforeSampling",{spanAttributes:g,spanName:p,parentSampled:d,parentContext:u},y),!y.decision)return RA({decision:void 0,context:t,spanAttributes:s});let{isolationScope:b}=kA(t)??{},S=u?.traceState?u.traceState.get(X$):void 0,E=S?ym(S):void 0,_=cl(E?.sample_rand)??Do(),[T,R,A]=YO(a,{name:p,attributes:g,normalizedRequest:b?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:d,parentSampleRate:cl(E?.sample_rate)},_),x=`${l}`.toUpperCase();return x==="OPTIONS"||x==="HEAD"?(Yy&&Z.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),RA({decision:Ky.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Yy&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...RA({decision:T?Ky.SamplingDecision.RECORD_AND_SAMPLED:Ky.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:A?R:void 0}),attributes:{[sf]:A?R:void 0}})}toString(){return"SentrySampler"}}});var Sje,eee,bje=v(()=>{Sje=Re(jUe(),1);IA();eee=fje(Sje.AsyncLocalStorageContextManager)});function tee(){sl.disable(),sl.setLogger({error:Z.error,warn:Z.warn,info:Z.log,debug:Z.log,verbose:Z.log},ho.DEBUG)}var Eje=v(()=>{Ce();st()});import*as nee from"node:diagnostics_channel";function f5t(e,t){let n=!1,r;e.on("spawn",()=>{if(e.spawnfile==="/usr/bin/sw_vers"){n=!0;return}r={spawnfile:e.spawnfile},t.includeChildProcessArgs&&(r.spawnargs=e.spawnargs)}).on("exit",i=>{n||(n=!0,i!==null&&i!==0&&Yl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Yl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function p5t(e,t){let n;e.on("online",()=>{n=e.threadId}).on("error",r=>{t.captureWorkerErrors!==!1?Wt(r,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(n)}}}):Yl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var d5t,_je,Tje=v(()=>{st();d5t="ChildProcess",_je=(e={})=>({name:d5t,setup(){nee.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&f5t(t.process,e)}),nee.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&p5t(t.worker,e)})}})});import{execFile as h5t}from"node:child_process";import{readFile as m5t,readdir as g5t}from"node:fs";import*as Ho from"node:os";import{join as y5t}from"node:path";import{promisify as Rje}from"node:util";function T5t(e){if(e.app?.app_memory&&(e.app.app_memory=process.memoryUsage().rss),e.app?.free_memory&&typeof process.availableMemory=="function"){let t=process.availableMemory?.();t!=null&&(e.app.free_memory=t)}return e.device?.free_memory&&(e.device.free_memory=Ho.freemem()),e}async function v5t(){let e=Ho.platform();switch(e){case"darwin":return O5t();case"linux":return P5t();default:return{name:k5t[e]||e,version:Ho.release()}}}function R5t(){try{if(typeof process.versions.icu!="string")return;let e=new Date(9e8);if(new Intl.DateTimeFormat("es",{month:"long"}).format(e)==="enero"){let n=Intl.DateTimeFormat().resolvedOptions();return{locale:n.locale,timezone:n.timeZone}}}catch{}}function A5t(){let e=process.memoryUsage().rss,n={app_start_time:new Date(Date.now()-process.uptime()*1e3).toISOString(),app_memory:e};if(typeof process.availableMemory=="function"){let r=process.availableMemory?.();r!=null&&(n.free_memory=r)}return n}function w5t(e){let t={},n;try{n=Ho.uptime()}catch{}if(typeof n=="number"&&(t.boot_time=new Date(Date.now()-n*1e3).toISOString()),t.arch=Ho.arch(),(e===!0||e.memory)&&(t.memory_size=Ho.totalmem(),t.free_memory=Ho.freemem()),e===!0||e.cpu){let r=Ho.cpus(),i=r?.[0];i&&(t.processor_count=r.length,t.cpu_description=i.model,t.processor_frequency=i.speed)}return t}function Yp(e,t){let n=e.exec(t);return n?n[1]:void 0}async function O5t(){let e={kernel_version:Ho.release(),name:"Mac OS X",version:`10.${Number(Ho.release().split(".")[0])-4}`};try{let t=await new Promise((n,r)=>{h5t("/usr/bin/sw_vers",(i,s)=>{if(i){r(i);return}n(s)})});e.name=Yp(/^ProductName:\s+(.*)$/m,t),e.version=Yp(/^ProductVersion:\s+(.*)$/m,t),e.build=Yp(/^BuildVersion:\s+(.*)$/m,t)}catch{}return e}function vje(e){return e.split(" ")[0].toLowerCase()}async function P5t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await b5t("/etc"),n=I5t.find(a=>t.includes(a.name));if(!n)return e;let r=y5t("/etc",n.name),i=(await S5t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(vje(a))>=0)||s[0];let o=vje(e.name);e.version=x5t[o]?.(i)}catch{}return e}function N5t(){return process.env.VERCEL?{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION}:process.env.AWS_REGION?{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV}:process.env.GCP_PROJECT?{"cloud.provider":"gcp"}:process.env.ALIYUN_REGION_ID?{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID}:process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME?{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME}:process.env.IBM_CLOUD_REGION?{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION}:process.env.TENCENTCLOUD_REGION?{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE}:process.env.NETLIFY?{"cloud.provider":"netlify"}:process.env.FLY_REGION?{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION}:process.env.DYNO?{"cloud.provider":"heroku"}:void 0}var S5t,b5t,E5t,_5t,Aje,k5t,I5t,x5t,wje=v(()=>{S5t=Rje(m5t),b5t=Rje(g5t),E5t="Context",_5t=((e={})=>{let t,n={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...e};async function r(s){t===void 0&&(t=i());let o=T5t(await t);return s.contexts={...s.contexts,app:{...o.app,...s.contexts?.app},os:{...o.os,...s.contexts?.os},device:{...o.device,...s.contexts?.device},culture:{...o.culture,...s.contexts?.culture},cloud_resource:{...o.cloud_resource,...s.contexts?.cloud_resource}},s}async function i(){let s={};if(n.os&&(s.os=await v5t()),n.app&&(s.app=A5t()),n.device&&(s.device=w5t(n.device)),n.culture){let o=R5t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=N5t()),s}return{name:E5t,processEvent(s){return r(s)}}}),Aje=_5t;k5t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},I5t=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],x5t={alpine:e=>e,arch:e=>Yp(/distrib_release=(.*)/,e),centos:e=>Yp(/release ([^ ]+)/,e),debian:e=>e,fedora:e=>Yp(/release (..)/,e),mint:e=>Yp(/distrib_release=(.*)/,e),red:e=>Yp(/release ([^ ]+)/,e),suse:e=>Yp(/VERSION = (.*)\n/,e),ubuntu:e=>Yp(/distrib_release=(.*)/,e)}});import{createReadStream as C5t}from"node:fs";import{createInterface as M5t}from"node:readline";function j5t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function H5t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function q5t(e){return e.lineno!==void 0&&e.lineno>F5t||e.colno!==void 0&&e.colno>U5t}function B5t(e,t){let n=ree.get(e);if(n===void 0)return!1;for(let r=t[0];r<=t[1];r++)if(n[r]===void 0)return!1;return!0}function z5t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=Ije(r,t),s=[];for(;;){if(n===e.length-1){s.push(i);break}let o=e[n+1];if(typeof o!="number")break;o<=i[1]?i[1]=o+t:(s.push(i),i=Ije(o,t)),n++}return s}function G5t(e,t,n){return new Promise((r,i)=>{let s=C5t(e),o=M5t({input:s});function a(){s.destroy(),r()}let c=0,u=0,l=t[u];if(l===void 0){a();return}let d=l[0],f=l[1];function p(h){xje.set(e,1),Qt&&Z.error(`Failed to read file: ${e}. Error: ${h}`),o.close(),o.removeAllListeners(),a()}s.on("error",p),o.on("error",p),o.on("close",a),o.on("line",h=>{if(c++,!(c=f)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}d=m[0],f=m[1]}})})}async function V5t(e,t){let n={};if(t>0&&e.exception?.values){for(let s of e.exception.values)if(s.stacktrace?.frames?.length)for(let o=s.stacktrace.frames.length-1;o>=0;o--){let a=s.stacktrace.frames[o],c=a?.filename;if(!a||typeof c!="string"||typeof a.lineno!="number"||H5t(c)||q5t(a))continue;n[c]||(n[c]=[]),n[c].push(a.lineno)}}let r=Object.keys(n);if(r.length==0)return e;let i=[];for(let s of r){if(xje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=z5t(o,t);if(a.every(u=>B5t(s,u)))continue;let c=j5t(ree,s,{});i.push(G5t(s,a,c))}if(await Promise.all(i).catch(()=>{Qt&&Z.log("Failed to read one or more source files and resolve context lines")}),t>0&&e.exception?.values)for(let s of e.exception.values)s.stacktrace?.frames&&s.stacktrace.frames.length>0&&W5t(s.stacktrace.frames,t,ree);return e}function W5t(e,t,n){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let i=n.get(r.filename);if(i===void 0)continue;K5t(r.lineno,r,t,i)}}function kje(e){delete e.pre_context,delete e.context_line,delete e.post_context}function K5t(e,t,n,r){if(t.lineno===void 0||r===void 0){Qt&&Z.error("Cannot resolve context for frame with no lineno or file contents");return}t.pre_context=[];for(let s=Oje(e,n);s{st();ff();ree=new fu(10),xje=new fu(20),D5t=7,L5t="ContextLines",U5t=1e3,F5t=1e4;Y5t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:D5t;return{name:L5t,processEvent(n){return V5t(n,t)}}}),Nje=Y5t});async function $q(){if(Qq===void 0)try{Qq=!!(await import("node:inspector")).url()}catch{Qq=!1}return Qq}var Qq,iee=v(()=>{});function Dje(e,t,n){let r=0,i=5,s=0;return setInterval(()=>{s===0?r>e&&(i*=2,n(i),i>86400&&(i=86400),s=i):(s-=1,s===0&&t()),r=0},1e3).unref(),()=>{r+=1}}function Mje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function eB(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||Mje(e)&&Mje(t)}var PP,see=v(()=>{PP="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as Z5t}from"node:worker_threads";function Lje(...e){Z.log("[LocalVariables]",...e)}var J5t,Uje,Fje=v(()=>{st();iee();see();J5t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Uje=((e={})=>{function t(s,o){let a=(s.stacktrace?.frames||[]).filter(c=>c.function!=="new Promise");for(let c=0;c{o.terminate()}),o.once("error",a=>{Lje("Worker error",a)}),o.once("exit",a=>{Lje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await $q()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}let a={...e,debug:Z.isEnabled()};r().then(()=>{try{i(a)}catch(c){Z.error("Failed to start worker",c)}},c=>{Z.error("Failed to start inspector",c)})},processEvent(s,o){return n(s,o)}}})});function jje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function X5t(e,t){if(t!==void 0)return jje(e(t,1))}function Hje(e){let t=[],n=!1;function r(o){t=[],!n&&(n=!0,e(o))}t.push(r);function i(o){t.push(o)}function s(o){let a=t.pop()||r;try{a(o)}catch{r(o)}}return{add:i,next:s}}var oee,Q5t,$5t,qje,Bje=v(()=>{st();fA();iee();see();oee=class e{constructor(t){this._session=t}static async create(t){if(t)return t;let n=await import("node:inspector");return new e(new n.Session)}configureAndConnect(t,n){this._session.connect(),this._session.on("Debugger.paused",r=>{t(r,()=>{this._session.post("Debugger.resume")})}),this._session.post("Debugger.enable"),this._session.post("Debugger.setPauseOnExceptions",{state:n?"all":"uncaught"})}setPauseOnExceptions(t){this._session.post("Debugger.setPauseOnExceptions",{state:t?"all":"uncaught"})}getLocalVariables(t,n){this._getProperties(t,r=>{let{add:i,next:s}=Hje(n);for(let o of r)if(o.value?.objectId&&o.value.className==="Array"){let a=o.value.objectId;i(c=>this._unrollArray(a,o.name,c,s))}else if(o.value?.objectId&&o.value.className==="Object"){let a=o.value.objectId;i(c=>this._unrollObject(a,o.name,c,s))}else o.value&&i(a=>this._unrollOther(o,a,s));s({})})}_getProperties(t,n){this._session.post("Runtime.getProperties",{objectId:t,ownProperties:!0},(r,i)=>{n(r?[]:i.result)})}_unrollArray(t,n,r,i){this._getProperties(t,s=>{r[n]=s.filter(o=>o.name!=="length"&&!isNaN(parseInt(o.name,10))).sort((o,a)=>parseInt(o.name,10)-parseInt(a.name,10)).map(o=>o.value?.value),i(r)})}_unrollObject(t,n,r,i){this._getProperties(t,s=>{r[n]=s.map(o=>[o.name,o.value?.value]).reduce((o,[a,c])=>(o[a]=c,o),{}),i(r)})}_unrollOther(t,n,r){t.value&&("value"in t.value?t.value.value===void 0||t.value.value===null?n[t.name]=`<${t.value.value}>`:n[t.name]=t.value.value:"description"in t.value&&t.value.type!=="function"?n[t.name]=`<${t.value.description}>`:t.value.type==="undefined"&&(n[t.name]="")),r(n)}},Q5t="LocalVariables",$5t=((e={},t)=>{let n=new fu(20),r,i=!1;function s(u){let l=jje(u.stacktrace?.frames);if(l===void 0)return;let d=n.remove(l);if(d===void 0)return;let f=(u.stacktrace?.frames||[]).filter(p=>p.function!=="new Promise");for(let p=0;p= v18.");return}if(await $q()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await oee.create(t),p=(m,{params:{reason:g,data:y,callFrames:b}},S)=>{if(g!=="exception"&&g!=="promiseRejection"){S();return}r?.();let E=X5t(m,y.description);if(E==null){S();return}let{add:_,next:T}=Hje(R=>{n.set(E,R),S()});for(let R=0;RC.type==="local"),N=k.className==="global"||!k.className?x:`${k.className}.${x}`;if(P?.object.objectId===void 0)_(C=>{C[R]={function:N},T(C)});else{let C=P.object.objectId;_(L=>f.getLocalVariables(C,G=>{L[R]={function:N,vars:G},T(L)}))}}T([])},h=e.captureAllExceptions!==!1;if(f.configureAndConnect((m,g)=>p(l.stackParser,m,g),h),h){let m=e.maxExceptionsPerSecond||50;r=Dje(m,()=>{Z.log("Local variables rate-limit lifted."),f.setPauseOnExceptions(!0)},g=>{Z.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${g} seconds.`),f.setPauseOnExceptions(!1)})}i=!0}catch(f){Z.log("The `LocalVariables` integration failed to start.",f)}}return{name:Q5t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),qje=$5t});var zje,Gje=v(()=>{fA();Fje();Bje();zje=(e={})=>pf.major<19?qje(e):Uje(e)});function NP(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function Wje(){return NP()?!1:Am>=21||Am===20&&_P>=6||Am===18&&_P>=19?!0:(Vje||(Vje=!0,xs(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)})),!1)}var Vje,tB=v(()=>{st();fA()});import{existsSync as e8t,readFileSync as Yje}from"node:fs";import{dirname as t8t,join as Zje}from"node:path";function s8t(){try{return K.cache?Object.keys(K.cache):[]}catch{return[]}}function o8t(){return{...r8t,...u8t(),...NP()?a8t():{}}}function a8t(){let e=K.main?.paths||[],t=s8t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=t8t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=Zje(a,"package.json");if(r.add(a),!e8t(c))return o();try{let u=JSON.parse(Yje(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function Kje(){return aee||(aee=o8t()),aee}function c8t(){try{let e=Zje(process.cwd(),"package.json");return JSON.parse(Yje(e,"utf8"))}catch{return{}}}function u8t(){let e=c8t();return{...e.dependencies,...e.devDependencies}}var aee,n8t,r8t,i8t,Jje,Xje=v(()=>{tB();n8t="Modules",r8t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,i8t=(()=>({name:n8t,processEvent(e){return e.modules={...e.modules,...Kje()},e},getModules:Kje})),Jje=i8t});function CP(e){xs(()=>{console.error(e)});let t=ct();if(t===void 0){Qt&&Z.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let n=t.getOptions(),r=n?.shutdownTimeout&&n.shutdownTimeout>0?n.shutdownTimeout:l8t;t.close(r).then(i=>{i||Qt&&Z.warn("We reached the timeout for emptying the request buffer, still exiting now!"),global.process.exit(1)},i=>{Qt&&Z.error(i)})}var l8t,cee=v(()=>{st();ff();l8t=2e3});import{isMainThread as d8t}from"worker_threads";function p8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=CP;t.onFatalError?u=t.onFatalError:a.onFatalError&&(u=a.onFatalError);let d=global.process.listeners("uncaughtException").filter(p=>p.name!=="domainUncaughtExceptionClear"&&p.tag!=="sentry_tracingErrorCallback"&&p._errorHandler!==!0).length===0,f=t.exitEvenIfOtherHandlersAreRegistered||d;r?f&&(s?(Qt&&Z.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),CP(c)):i||(i=!0,setTimeout(()=>{s||(s=!0,u(o,c))},2e3))):(o=c,r=!0,ct()===e&&Wt(c,{originalException:c,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}}),!s&&f&&(s=!0,u(c)))},{_errorHandler:!0})}var f8t,Qje,$je=v(()=>{st();ff();cee();f8t="OnUncaughtException",Qje=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:f8t,setup(n){d8t&&global.process.on("uncaughtException",p8t(n,t))}}}});function y8t(e){if(typeof e!="object"||e===null)return{name:"",message:String(e??"")};let t=e,n=typeof t.name=="string"?t.name:"",r=typeof t.message=="string"?t.message:String(e);return{name:n,message:r}}function S8t(e,t){let n=e.name===void 0||pm(t.name,e.name,!0),r=e.message===void 0||pm(t.message,e.message);return n&&r}function b8t(e,t){let n=y8t(t);return e.some(r=>S8t(r,n))}function E8t(e,t){return function(r,i){if(ct()!==e||b8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>WR(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),_8t(r,t.mode)}}function _8t(e,t){let n="This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:";t==="warn"?xs(()=>{console.warn(n),console.error(e&&typeof e=="object"&&"stack"in e?e.stack:e)}):t==="strict"&&(xs(()=>{console.warn(n)}),CP(e))}var h8t,m8t,g8t,eHe,tHe=v(()=>{st();cee();h8t="OnUnhandledRejection",m8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],g8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...m8t,...e.ignore??[]]};return{name:h8t,setup(n){global.process.on("unhandledRejection",E8t(n,t))}}}),eHe=g8t});var T8t,nHe,rHe=v(()=>{st();T8t="ProcessSession",nHe=()=>({name:T8t,setupOnce(){uH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&XO()})}})});import*as iHe from"node:http";function R8t(e,t){let n=A8t(t.sidecarUrl);if(!n)return;let r=0;e.on("beforeEnvelope",i=>{if(r>3){Z.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let s=VO(i);KR(()=>{let o=iHe.request({method:"POST",path:n.pathname,hostname:n.hostname,port:n.port,headers:{"Content-Type":"application/x-sentry-envelope"}},a=>{a.statusCode&&a.statusCode>=200&&a.statusCode<400&&(r=0),a.on("data",()=>{}),a.on("end",()=>{}),a.setEncoding("utf8")});o.on("error",()=>{r++,Z.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),o.write(s),o.end()})})}function A8t(e){try{return new URL(`${e}`)}catch{Z.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var uee,v8t,sHe,oHe=v(()=>{st();uee="Spotlight",v8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:uee,setup(n){try{process.env.NODE_ENV&&process.env.NODE_ENV!=="development"&&Z.warn("[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?")}catch{}R8t(n,t)}}}),sHe=v8t});import*as aHe from"node:util";function k8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:aHe.getSystemErrorMap().has(e.errno)}var w8t,cHe,uHe=v(()=>{w8t="NodeSystemError";cHe=(e={})=>({name:w8t,processEvent:(t,n,r)=>{if(!k8t(n.originalException))return t;let i=n.originalException,s={...i};!r.getOptions().sendDefaultPii&&e.includePaths!==!0&&(delete s.path,delete s.dest),t.contexts={...t.contexts,node_system_error:s};for(let o of t.exception?.values||[])o.value&&(i.path&&o.value.includes(i.path)&&(o.value=o.value.replace(`'${i.path}'`,"").trim()),i.dest&&o.value.includes(i.dest)&&(o.value=o.value.replace(`'${i.dest}'`,"").trim()));return t}})});import*as lee from"node:http";var Zp,nB,lHe=v(()=>{Zp=Symbol("AgentBaseInternalState"),nB=class extends lee.Agent{constructor(t){super(t),this[Zp]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:n}=new Error;return typeof n!="string"?!1:n.split(` -`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}createSocket(t,n,r){let i={...n,secureEndpoint:this.isSecureEndpoint(n)};Promise.resolve().then(()=>this.connect(t,i)).then(s=>{if(s instanceof lee.Agent)return s.addRequest(t,i);this[Zp].currentSocket=s,super.createSocket(t,n,r)},r)}createConnection(){let t=this[Zp].currentSocket;if(this[Zp].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Zp].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Zp]&&(this[Zp].defaultPort=t)}get protocol(){return this[Zp].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Zp]&&(this[Zp].protocol=t)}}});function rB(...e){Z.log("[https-proxy-agent:parse-proxy-response]",...e)}function dHe(e){return new Promise((t,n)=>{let r=0,i=[];function s(){let l=e.read();l?u(l):e.once("readable",s)}function o(){e.removeListener("end",a),e.removeListener("error",c),e.removeListener("readable",s)}function a(){o(),rB("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),rB("onerror %o",l),n(l)}function u(l){i.push(l),r+=l.length;let d=Buffer.concat(i,r),f=d.indexOf(`\r +`):""}function YQ(e,t){let n=-1;for(let r=0;rr%2===0&&n===t)}function NUe(e,t){let n=FYt(e),r=t.statusCode,i=hP(r);Yl({category:"http",data:{status_code:r,...n},type:"http",level:i},{event:"response",request:e,response:t})}function FYt(e){try{let t=$H(e.origin,e.path),n=Dy(t),r={url:Ly(n),"http.method":e.method||"GET"};return n.search&&(r["http.query"]=n.search),n.hash&&(r["http.fragment"]=n.hash),r}catch{return{}}}function $H(e,t="/"){try{return new URL(t,e).toString()}catch{let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}}var KQ,QH,DYt,CUe=v(()=>{st();zQ();KQ="sentry-trace",QH="baggage",DYt="traceparent"});import*as pA from"diagnostics_channel";var MUe,DUe,VE,JQ=v(()=>{Ce();MUe=Re(fr(),1),DUe=Re(Jt(),1);st();fA();CUe();VE=class extends DUe.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-node-fetch",Nn,t),this._channelSubs=[],this._propagationDecisionMap=new fu(100),this._ignoreOutgoingRequestsMap=new WeakMap}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs=[]}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this._subscribeToChannel("undici:request:create",this._onRequestCreated.bind(this)),this._subscribeToChannel("undici:request:headers",this._onResponseHeaders.bind(this)))}_onRequestCreated({request:t}){let n=this.getConfig();if(!(n.enabled!==!1))return;let i=this._shouldIgnoreOutgoingRequest(t);this._ignoreOutgoingRequestsMap.set(t,i),!i&&n.tracePropagation!==!1&&PUe(t,this._propagationDecisionMap)}_onResponseHeaders({request:t,response:n}){let r=this.getConfig();if(!(r.enabled!==!1))return;let s=r.breadcrumbs,o=typeof s>"u"?!0:s,a=this._ignoreOutgoingRequestsMap.get(t);o&&!a&&NUe(t,n)}_subscribeToChannel(t,n){let r=Am>18||Am===18&&TP>=19,i;if(r)pA.subscribe?.(t,n),i=()=>pA.unsubscribe?.(t,n);else{let s=pA.channel(t);s.subscribe(n),i=()=>s.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:i})}_shouldIgnoreOutgoingRequest(t){if((0,MUe.isTracingSuppressed)(Ve.active()))return!0;let n=$H(t.origin,t.path),r=this.getConfig().ignoreOutgoingRequests;return typeof r!="function"||!n?!1:r(n)}}});var jYt,HYt,qYt,LUe,UUe=v(()=>{KH();JQ();jYt="NodeFetch",HYt=rt(`${jYt}.sentry`,VE,e=>e),qYt=((e={})=>({name:"NodeFetch",setupOnce(){HYt(e)}})),LUe=qYt});var QQ=w(eq=>{"use strict";Object.defineProperty(eq,"__esModule",{value:!0});eq.AbstractAsyncHooksContextManager=void 0;var BYt=K("events"),zYt=["addListener","on","once","prependListener","prependOnceListener"],XQ=class{bind(t,n){return n instanceof BYt.EventEmitter?this._bindEventEmitter(t,n):typeof n=="function"?this._bindFunction(t,n):n}_bindFunction(t,n){let r=this,i=function(...s){return r.with(t,()=>n.apply(this,s))};return Object.defineProperty(i,"length",{enumerable:!1,configurable:!0,writable:!1,value:n.length}),i}_bindEventEmitter(t,n){return this._getPatchMap(n)!==void 0||(this._createPatchMap(n),zYt.forEach(i=>{n[i]!==void 0&&(n[i]=this._patchAddListener(n,n[i],t))}),typeof n.removeListener=="function"&&(n.removeListener=this._patchRemoveListener(n,n.removeListener)),typeof n.off=="function"&&(n.off=this._patchRemoveListener(n,n.off)),typeof n.removeAllListeners=="function"&&(n.removeAllListeners=this._patchRemoveAllListeners(n,n.removeAllListeners))),n}_patchRemoveListener(t,n){let r=this;return function(i,s){let o=r._getPatchMap(t)?.[i];if(o===void 0)return n.call(this,i,s);let a=o.get(s);return n.call(this,i,a||s)}}_patchRemoveAllListeners(t,n){let r=this;return function(i){let s=r._getPatchMap(t);return s!==void 0&&(arguments.length===0?r._createPatchMap(t):s[i]!==void 0&&delete s[i]),n.apply(this,arguments)}}_patchAddListener(t,n,r){let i=this;return function(s,o){if(i._wrapped)return n.call(this,s,o);let a=i._getPatchMap(t);a===void 0&&(a=i._createPatchMap(t));let c=a[s];c===void 0&&(c=new WeakMap,a[s]=c);let u=i.bind(r,o);c.set(o,u),i._wrapped=!0;try{return n.call(this,s,u)}finally{i._wrapped=!1}}}_createPatchMap(t){let n=Object.create(null);return t[this._kOtListeners]=n,n}_getPatchMap(t){return t[this._kOtListeners]}_kOtListeners=Symbol("OtListeners");_wrapped=!1};eq.AbstractAsyncHooksContextManager=XQ});var FUe=w(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});tq.AsyncHooksContextManager=void 0;var GYt=(Ce(),ke(Ze)),VYt=K("async_hooks"),WYt=QQ(),$Q=class extends WYt.AbstractAsyncHooksContextManager{_asyncHook;_contexts=new Map;_stack=[];constructor(){super(),this._asyncHook=VYt.createHook({init:this._init.bind(this),before:this._before.bind(this),after:this._after.bind(this),destroy:this._destroy.bind(this),promiseResolve:this._destroy.bind(this)})}active(){return this._stack[this._stack.length-1]??GYt.ROOT_CONTEXT}with(t,n,r,...i){this._enterContext(t);try{return n.call(r,...i)}finally{this._exitContext()}}enable(){return this._asyncHook.enable(),this}disable(){return this._asyncHook.disable(),this._contexts.clear(),this._stack=[],this}_init(t,n){if(n==="TIMERWRAP")return;let r=this._stack[this._stack.length-1];r!==void 0&&this._contexts.set(t,r)}_destroy(t){this._contexts.delete(t)}_before(t){let n=this._contexts.get(t);n!==void 0&&this._enterContext(n)}_after(){this._exitContext()}_enterContext(t){this._stack.push(t)}_exitContext(){this._stack.pop()}};tq.AsyncHooksContextManager=$Q});var jUe=w(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});nq.AsyncLocalStorageContextManager=void 0;var KYt=(Ce(),ke(Ze)),YYt=K("async_hooks"),ZYt=QQ(),e$=class extends ZYt.AbstractAsyncHooksContextManager{_asyncLocalStorage;constructor(){super(),this._asyncLocalStorage=new YYt.AsyncLocalStorage}active(){return this._asyncLocalStorage.getStore()??KYt.ROOT_CONTEXT}with(t,n,r,...i){let s=r==null?n:n.bind(r);return this._asyncLocalStorage.run(t,s,...i)}enable(){return this}disable(){return this._asyncLocalStorage.disable(),this}};nq.AsyncLocalStorageContextManager=e$});var HUe=w(hA=>{"use strict";Object.defineProperty(hA,"__esModule",{value:!0});hA.AsyncLocalStorageContextManager=hA.AsyncHooksContextManager=void 0;var JYt=FUe();Object.defineProperty(hA,"AsyncHooksContextManager",{enumerable:!0,get:function(){return JYt.AsyncHooksContextManager}});var XYt=jUe();Object.defineProperty(hA,"AsyncLocalStorageContextManager",{enumerable:!0,get:function(){return XYt.AsyncLocalStorageContextManager}})});var t$=w(mA=>{"use strict";Object.defineProperty(mA,"__esModule",{value:!0});mA._clearDefaultServiceNameCache=mA.defaultServiceName=void 0;var vP;function QYt(){if(vP===void 0)try{let e=globalThis.process.argv0;vP=e?`unknown_service:${e}`:"unknown_service"}catch{vP="unknown_service"}return vP}mA.defaultServiceName=QYt;function $Yt(){vP=void 0}mA._clearDefaultServiceNameCache=$Yt});var qUe=w(rq=>{"use strict";Object.defineProperty(rq,"__esModule",{value:!0});rq.isPromiseLike=void 0;var eZt=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";rq.isPromiseLike=eZt});var i$=w(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.defaultResource=Bp.emptyResource=Bp.resourceFromDetectedResource=Bp.resourceFromAttributes=void 0;var AP=(Ce(),ke(Ze)),n$=fr(),WE=(Pn(),ke(Mr)),tZt=t$(),RP=qUe(),iq=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=BUe(t),r._asyncAttributesPending=t.filter(([i,s])=>(0,RP.isPromiseLike)(s)).length>0,r}constructor(t,n){let r=t.attributes??{};this._rawAttributes=Object.entries(r).map(([i,s])=>((0,RP.isPromiseLike)(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=BUe(this._rawAttributes),this._schemaUrl=sZt(n?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let t=0;t(0,RP.isPromiseLike)(n)?[t,n.catch(r=>{AP.diag.debug("promise rejection for resource attribute: %s - %s",t,r)})]:[t,n])}function sZt(e){if(typeof e=="string"||e===void 0)return e;AP.diag.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",e)}function oZt(e,t){let n=e?.schemaUrl,r=t?.schemaUrl,i=n===void 0||n==="",s=r===void 0||r==="";if(i)return r;if(s||n===r)return n;AP.diag.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',n,r)}});var GUe=w(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});sq.detectResources=void 0;var zUe=(Ce(),ke(Ze)),s$=i$(),aZt=(e={})=>(e.detectors||[]).map(n=>{try{let r=(0,s$.resourceFromDetectedResource)(n.detect(e));return zUe.diag.debug(`${n.constructor.name} found resource.`,r),r}catch(r){return zUe.diag.debug(`${n.constructor.name} failed: ${r.message}`),(0,s$.emptyResource)()}}).reduce((n,r)=>n.merge(r),(0,s$.emptyResource)());sq.detectResources=aZt});var WUe=w(oq=>{"use strict";Object.defineProperty(oq,"__esModule",{value:!0});oq.envDetector=void 0;var cZt=(Ce(),ke(Ze)),uZt=(Pn(),ke(Mr)),VUe=fr(),o$=class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(t){let n={},r=(0,VUe.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),i=(0,VUe.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let s=this._parseResourceAttributes(r);Object.assign(n,s)}catch(s){cZt.diag.debug(`EnvDetector failed: ${s instanceof Error?s.message:s}`)}return i&&(n[uZt.ATTR_SERVICE_NAME]=i),{attributes:n}}_parseResourceAttributes(t){if(!t)return{};let n={},r=t.split(this._COMMA_SEPARATOR);for(let i of r){let s=i.split(this._LABEL_KEY_VALUE_SPLITTER);if(s.length!==2)throw new Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${i}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[o,a]=s,c=o.trim(),u=a.trim();if(c.length===0)throw new Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${i}".`);let l,d;try{l=decodeURIComponent(c),d=decodeURIComponent(u)}catch(f){throw new Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${i}": ${f instanceof Error?f.message:f}`)}if(l.length>this._MAX_LENGTH)throw new Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${l}".`);if(d.length>this._MAX_LENGTH)throw new Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${l}".`);n[l]=d}return n}};oq.envDetector=new o$});var wP=w(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.ATTR_WEBENGINE_VERSION=Je.ATTR_WEBENGINE_NAME=Je.ATTR_WEBENGINE_DESCRIPTION=Je.ATTR_SERVICE_NAMESPACE=Je.ATTR_SERVICE_INSTANCE_ID=Je.ATTR_PROCESS_RUNTIME_VERSION=Je.ATTR_PROCESS_RUNTIME_NAME=Je.ATTR_PROCESS_RUNTIME_DESCRIPTION=Je.ATTR_PROCESS_PID=Je.ATTR_PROCESS_OWNER=Je.ATTR_PROCESS_EXECUTABLE_PATH=Je.ATTR_PROCESS_EXECUTABLE_NAME=Je.ATTR_PROCESS_COMMAND_ARGS=Je.ATTR_PROCESS_COMMAND=Je.ATTR_OS_VERSION=Je.ATTR_OS_TYPE=Je.ATTR_K8S_POD_NAME=Je.ATTR_K8S_NAMESPACE_NAME=Je.ATTR_K8S_DEPLOYMENT_NAME=Je.ATTR_K8S_CLUSTER_NAME=Je.ATTR_HOST_TYPE=Je.ATTR_HOST_NAME=Je.ATTR_HOST_IMAGE_VERSION=Je.ATTR_HOST_IMAGE_NAME=Je.ATTR_HOST_IMAGE_ID=Je.ATTR_HOST_ID=Je.ATTR_HOST_ARCH=Je.ATTR_CONTAINER_NAME=Je.ATTR_CONTAINER_IMAGE_TAGS=Je.ATTR_CONTAINER_IMAGE_NAME=Je.ATTR_CONTAINER_ID=Je.ATTR_CLOUD_REGION=Je.ATTR_CLOUD_PROVIDER=Je.ATTR_CLOUD_AVAILABILITY_ZONE=Je.ATTR_CLOUD_ACCOUNT_ID=void 0;Je.ATTR_CLOUD_ACCOUNT_ID="cloud.account.id";Je.ATTR_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone";Je.ATTR_CLOUD_PROVIDER="cloud.provider";Je.ATTR_CLOUD_REGION="cloud.region";Je.ATTR_CONTAINER_ID="container.id";Je.ATTR_CONTAINER_IMAGE_NAME="container.image.name";Je.ATTR_CONTAINER_IMAGE_TAGS="container.image.tags";Je.ATTR_CONTAINER_NAME="container.name";Je.ATTR_HOST_ARCH="host.arch";Je.ATTR_HOST_ID="host.id";Je.ATTR_HOST_IMAGE_ID="host.image.id";Je.ATTR_HOST_IMAGE_NAME="host.image.name";Je.ATTR_HOST_IMAGE_VERSION="host.image.version";Je.ATTR_HOST_NAME="host.name";Je.ATTR_HOST_TYPE="host.type";Je.ATTR_K8S_CLUSTER_NAME="k8s.cluster.name";Je.ATTR_K8S_DEPLOYMENT_NAME="k8s.deployment.name";Je.ATTR_K8S_NAMESPACE_NAME="k8s.namespace.name";Je.ATTR_K8S_POD_NAME="k8s.pod.name";Je.ATTR_OS_TYPE="os.type";Je.ATTR_OS_VERSION="os.version";Je.ATTR_PROCESS_COMMAND="process.command";Je.ATTR_PROCESS_COMMAND_ARGS="process.command_args";Je.ATTR_PROCESS_EXECUTABLE_NAME="process.executable.name";Je.ATTR_PROCESS_EXECUTABLE_PATH="process.executable.path";Je.ATTR_PROCESS_OWNER="process.owner";Je.ATTR_PROCESS_PID="process.pid";Je.ATTR_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description";Je.ATTR_PROCESS_RUNTIME_NAME="process.runtime.name";Je.ATTR_PROCESS_RUNTIME_VERSION="process.runtime.version";Je.ATTR_SERVICE_INSTANCE_ID="service.instance.id";Je.ATTR_SERVICE_NAMESPACE="service.namespace";Je.ATTR_WEBENGINE_DESCRIPTION="webengine.description";Je.ATTR_WEBENGINE_NAME="webengine.name";Je.ATTR_WEBENGINE_VERSION="webengine.version"});var cq=w(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});aq.execAsync=void 0;var lZt=K("child_process"),dZt=K("util");aq.execAsync=dZt.promisify(lZt.exec)});var KUe=w(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});uq.getMachineId=void 0;var fZt=cq(),pZt=(Ce(),ke(Ze));async function hZt(){try{let t=(await(0,fZt.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` +`).find(r=>r.includes("IOPlatformUUID"));if(!t)return;let n=t.split('" = "');if(n.length===2)return n[1].slice(0,-1)}catch(e){pZt.diag.debug(`error reading machine id: ${e}`)}}uq.getMachineId=hZt});var YUe=w(lq=>{"use strict";Object.defineProperty(lq,"__esModule",{value:!0});lq.getMachineId=void 0;var mZt=K("fs"),gZt=(Ce(),ke(Ze));async function yZt(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await mZt.promises.readFile(t,{encoding:"utf8"})).trim()}catch(n){gZt.diag.debug(`error reading machine id: ${n}`)}}lq.getMachineId=yZt});var JUe=w(dq=>{"use strict";Object.defineProperty(dq,"__esModule",{value:!0});dq.getMachineId=void 0;var SZt=K("fs"),bZt=cq(),ZUe=(Ce(),ke(Ze));async function EZt(){try{return(await SZt.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){ZUe.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,bZt.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){ZUe.diag.debug(`error reading machine id: ${e}`)}}dq.getMachineId=EZt});var QUe=w(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});fq.getMachineId=void 0;var XUe=K("process"),_Zt=cq(),TZt=(Ce(),ke(Ze));async function vZt(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";XUe.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in XUe.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let r=(await(0,_Zt.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(r.length===2)return r[1].trim()}catch(n){TZt.diag.debug(`error reading machine id: ${n}`)}}fq.getMachineId=vZt});var $Ue=w(pq=>{"use strict";Object.defineProperty(pq,"__esModule",{value:!0});pq.getMachineId=void 0;var RZt=(Ce(),ke(Ze));async function AZt(){RZt.diag.debug("could not read machine-id: unsupported platform")}pq.getMachineId=AZt});var eFe=w(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});hq.getMachineId=void 0;var wZt=K("process"),KE;async function kZt(){if(!KE)switch(wZt.platform){case"darwin":KE=(await Promise.resolve().then(()=>Re(KUe()))).getMachineId;break;case"linux":KE=(await Promise.resolve().then(()=>Re(YUe()))).getMachineId;break;case"freebsd":KE=(await Promise.resolve().then(()=>Re(JUe()))).getMachineId;break;case"win32":KE=(await Promise.resolve().then(()=>Re(QUe()))).getMachineId;break;default:KE=(await Promise.resolve().then(()=>Re($Ue()))).getMachineId;break}return KE()}hq.getMachineId=kZt});var a$=w(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.normalizeType=gA.normalizeArch=void 0;var IZt=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};gA.normalizeArch=IZt;var xZt=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};gA.normalizeType=xZt});var nFe=w(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.hostDetector=void 0;var c$=wP(),tFe=K("os"),OZt=eFe(),PZt=a$(),u$=class{detect(t){return{attributes:{[c$.ATTR_HOST_NAME]:(0,tFe.hostname)(),[c$.ATTR_HOST_ARCH]:(0,PZt.normalizeArch)((0,tFe.arch)()),[c$.ATTR_HOST_ID]:(0,OZt.getMachineId)()}}}};mq.hostDetector=new u$});var sFe=w(gq=>{"use strict";Object.defineProperty(gq,"__esModule",{value:!0});gq.osDetector=void 0;var rFe=wP(),iFe=K("os"),NZt=a$(),l$=class{detect(t){return{attributes:{[rFe.ATTR_OS_TYPE]:(0,NZt.normalizeType)((0,iFe.platform)()),[rFe.ATTR_OS_VERSION]:(0,iFe.release)()}}}};gq.osDetector=new l$});var oFe=w(yq=>{"use strict";Object.defineProperty(yq,"__esModule",{value:!0});yq.processDetector=void 0;var CZt=(Ce(),ke(Ze)),wm=wP(),MZt=K("os"),d$=class{detect(t){let n={[wm.ATTR_PROCESS_PID]:process.pid,[wm.ATTR_PROCESS_EXECUTABLE_NAME]:process.title,[wm.ATTR_PROCESS_EXECUTABLE_PATH]:process.execPath,[wm.ATTR_PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[wm.ATTR_PROCESS_RUNTIME_VERSION]:process.versions.node,[wm.ATTR_PROCESS_RUNTIME_NAME]:"nodejs",[wm.ATTR_PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(n[wm.ATTR_PROCESS_COMMAND]=process.argv[1]);try{let r=MZt.userInfo();n[wm.ATTR_PROCESS_OWNER]=r.username}catch(r){CZt.diag.debug(`error obtaining process owner: ${r}`)}return{attributes:n}}};yq.processDetector=new d$});var aFe=w(Sq=>{"use strict";Object.defineProperty(Sq,"__esModule",{value:!0});Sq.serviceInstanceIdDetector=void 0;var DZt=wP(),LZt=K("crypto"),f$=class{detect(t){return{attributes:{[DZt.ATTR_SERVICE_INSTANCE_ID]:(0,LZt.randomUUID)()}}}};Sq.serviceInstanceIdDetector=new f$});var cFe=w(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.serviceInstanceIdDetector=zp.processDetector=zp.osDetector=zp.hostDetector=void 0;var UZt=nFe();Object.defineProperty(zp,"hostDetector",{enumerable:!0,get:function(){return UZt.hostDetector}});var FZt=sFe();Object.defineProperty(zp,"osDetector",{enumerable:!0,get:function(){return FZt.osDetector}});var jZt=oFe();Object.defineProperty(zp,"processDetector",{enumerable:!0,get:function(){return jZt.processDetector}});var HZt=aFe();Object.defineProperty(zp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return HZt.serviceInstanceIdDetector}})});var uFe=w(Gp=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});Gp.serviceInstanceIdDetector=Gp.processDetector=Gp.osDetector=Gp.hostDetector=void 0;var bq=cFe();Object.defineProperty(Gp,"hostDetector",{enumerable:!0,get:function(){return bq.hostDetector}});Object.defineProperty(Gp,"osDetector",{enumerable:!0,get:function(){return bq.osDetector}});Object.defineProperty(Gp,"processDetector",{enumerable:!0,get:function(){return bq.processDetector}});Object.defineProperty(Gp,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return bq.serviceInstanceIdDetector}})});var lFe=w(yA=>{"use strict";Object.defineProperty(yA,"__esModule",{value:!0});yA.noopDetector=yA.NoopDetector=void 0;var Eq=class{detect(){return{attributes:{}}}};yA.NoopDetector=Eq;yA.noopDetector=new Eq});var dFe=w(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.noopDetector=pu.serviceInstanceIdDetector=pu.processDetector=pu.osDetector=pu.hostDetector=pu.envDetector=void 0;var qZt=WUe();Object.defineProperty(pu,"envDetector",{enumerable:!0,get:function(){return qZt.envDetector}});var _q=uFe();Object.defineProperty(pu,"hostDetector",{enumerable:!0,get:function(){return _q.hostDetector}});Object.defineProperty(pu,"osDetector",{enumerable:!0,get:function(){return _q.osDetector}});Object.defineProperty(pu,"processDetector",{enumerable:!0,get:function(){return _q.processDetector}});Object.defineProperty(pu,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return _q.serviceInstanceIdDetector}});var BZt=lFe();Object.defineProperty(pu,"noopDetector",{enumerable:!0,get:function(){return BZt.noopDetector}})});var h$=w(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.defaultServiceName=ls.emptyResource=ls.defaultResource=ls.resourceFromAttributes=ls.serviceInstanceIdDetector=ls.processDetector=ls.osDetector=ls.hostDetector=ls.envDetector=ls.detectResources=void 0;var zZt=GUe();Object.defineProperty(ls,"detectResources",{enumerable:!0,get:function(){return zZt.detectResources}});var kP=dFe();Object.defineProperty(ls,"envDetector",{enumerable:!0,get:function(){return kP.envDetector}});Object.defineProperty(ls,"hostDetector",{enumerable:!0,get:function(){return kP.hostDetector}});Object.defineProperty(ls,"osDetector",{enumerable:!0,get:function(){return kP.osDetector}});Object.defineProperty(ls,"processDetector",{enumerable:!0,get:function(){return kP.processDetector}});Object.defineProperty(ls,"serviceInstanceIdDetector",{enumerable:!0,get:function(){return kP.serviceInstanceIdDetector}});var p$=i$();Object.defineProperty(ls,"resourceFromAttributes",{enumerable:!0,get:function(){return p$.resourceFromAttributes}});Object.defineProperty(ls,"defaultResource",{enumerable:!0,get:function(){return p$.defaultResource}});Object.defineProperty(ls,"emptyResource",{enumerable:!0,get:function(){return p$.emptyResource}});var GZt=t$();Object.defineProperty(ls,"defaultServiceName",{enumerable:!0,get:function(){return GZt.defaultServiceName}})});var fFe=w(Tq=>{"use strict";Object.defineProperty(Tq,"__esModule",{value:!0});Tq.ExceptionEventName=void 0;Tq.ExceptionEventName="exception"});var pFe=w(vq=>{"use strict";Object.defineProperty(vq,"__esModule",{value:!0});vq.SpanImpl=void 0;var ua=(Ce(),ke(Ze)),la=fr(),YE=(Pn(),ke(Mr)),VZt=fFe(),m$=class{_spanContext;kind;parentSpanContext;attributes={};links=[];events=[];startTime;resource;instrumentationScope;_droppedAttributesCount=0;_droppedEventsCount=0;_droppedLinksCount=0;_attributesCount=0;name;status={code:ua.SpanStatusCode.UNSET};endTime=[0,0];_ended=!1;_duration=[-1,-1];_spanProcessor;_spanLimits;_attributeValueLengthLimit;_recordEndMetrics;_performanceStartTime;_performanceOffset;_startTimeProvided;constructor(t){let n=Date.now();if(this._spanContext=t.spanContext,this._performanceStartTime=la.otperformance.now(),this._performanceOffset=n-(this._performanceStartTime+la.otperformance.timeOrigin),this._startTimeProvided=t.startTime!=null,this._spanLimits=t.spanLimits,this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit??0,this._spanProcessor=t.spanProcessor,this.name=t.name,this.parentSpanContext=t.parentSpanContext,this.kind=t.kind,t.links)for(let r of t.links)this.addLink(r);this.startTime=this._getTime(t.startTime??n),this.resource=t.resource,this.instrumentationScope=t.scope,this._recordEndMetrics=t.recordEndMetrics,t.attributes!=null&&this.setAttributes(t.attributes),this._spanProcessor.onStart(this,t.context)}spanContext(){return this._spanContext}setAttribute(t,n){if(n==null||this._isSpanEnded())return this;if(t.length===0)return ua.diag.warn(`Invalid attribute key: ${t}`),this;if(!(0,la.isAttributeValue)(n))return ua.diag.warn(`Invalid attribute value set for key: ${t}`),this;let{attributeCountLimit:r}=this._spanLimits,i=!Object.prototype.hasOwnProperty.call(this.attributes,t);return r!==void 0&&this._attributesCount>=r&&i?(this._droppedAttributesCount++,this):(this.attributes[t]=this._truncateToSize(n),i&&this._attributesCount++,this)}setAttributes(t){for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&this.setAttribute(n,t[n]);return this}addEvent(t,n,r){if(this._isSpanEnded())return this;let{eventCountLimit:i}=this._spanLimits;if(i===0)return ua.diag.warn("No events allowed."),this._droppedEventsCount++,this;i!==void 0&&this.events.length>=i&&(this._droppedEventsCount===0&&ua.diag.debug("Dropping extra events."),this.events.shift(),this._droppedEventsCount++),(0,la.isTimeInput)(n)&&((0,la.isTimeInput)(r)||(r=n),n=void 0);let s=(0,la.sanitizeAttributes)(n),{attributePerEventCountLimit:o}=this._spanLimits,a={},c=0,u=0;for(let l in s){if(!Object.prototype.hasOwnProperty.call(s,l))continue;let d=s[l];if(o!==void 0&&u>=o){c++;continue}a[l]=this._truncateToSize(d),u++}return this.events.push({name:t,attributes:a,time:this._getTime(r),droppedAttributesCount:c}),this}addLink(t){if(this._isSpanEnded())return this;let{linkCountLimit:n}=this._spanLimits;if(n===0)return this._droppedLinksCount++,this;n!==void 0&&this.links.length>=n&&(this._droppedLinksCount===0&&ua.diag.debug("Dropping extra links."),this.links.shift(),this._droppedLinksCount++);let{attributePerLinkCountLimit:r}=this._spanLimits,i=(0,la.sanitizeAttributes)(t.attributes),s={},o=0,a=0;for(let u in i){if(!Object.prototype.hasOwnProperty.call(i,u))continue;let l=i[u];if(r!==void 0&&a>=r){o++;continue}s[u]=this._truncateToSize(l),a++}let c={context:t.context};return a>0&&(c.attributes=s),o>0&&(c.droppedAttributesCount=o),this.links.push(c),this}addLinks(t){for(let n of t)this.addLink(n);return this}setStatus(t){if(this._isSpanEnded())return this;if(t.code===ua.SpanStatusCode.UNSET)return this;if(this.status.code===ua.SpanStatusCode.OK)return this;let n={code:t.code};return t.code===ua.SpanStatusCode.ERROR&&(typeof t.message=="string"?n.message=t.message:t.message!=null&&ua.diag.warn(`Dropping invalid status.message of type '${typeof t.message}', expected 'string'`)),this.status=n,this}updateName(t){return this._isSpanEnded()?this:(this.name=t,this)}end(t){if(this._isSpanEnded()){ua.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);return}this.endTime=this._getTime(t),this._duration=(0,la.hrTimeDuration)(this.startTime,this.endTime),this._duration[0]<0&&(ua.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0]),this._droppedEventsCount>0&&ua.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`),this._droppedLinksCount>0&&ua.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`),this._spanProcessor.onEnding&&this._spanProcessor.onEnding(this),this._recordEndMetrics?.(),this._ended=!0,this._spanProcessor.onEnd(this)}_getTime(t){if(typeof t=="number"&&t<=la.otperformance.now())return(0,la.hrTime)(t+this._performanceOffset);if(typeof t=="number")return(0,la.millisToHrTime)(t);if(t instanceof Date)return(0,la.millisToHrTime)(t.getTime());if((0,la.isTimeInputHrTime)(t))return t;if(this._startTimeProvided)return(0,la.millisToHrTime)(Date.now());let n=la.otperformance.now()-this._performanceStartTime;return(0,la.addHrTimes)(this.startTime,(0,la.millisToHrTime)(n))}isRecording(){return this._ended===!1}recordException(t,n){let r={};typeof t=="string"?r[YE.ATTR_EXCEPTION_MESSAGE]=t:t&&(t.code?r[YE.ATTR_EXCEPTION_TYPE]=t.code.toString():t.name&&(r[YE.ATTR_EXCEPTION_TYPE]=t.name),t.message&&(r[YE.ATTR_EXCEPTION_MESSAGE]=t.message),t.stack&&(r[YE.ATTR_EXCEPTION_STACKTRACE]=t.stack)),r[YE.ATTR_EXCEPTION_TYPE]||r[YE.ATTR_EXCEPTION_MESSAGE]?this.addEvent(VZt.ExceptionEventName,r,n):ua.diag.warn(`Failed to record an exception ${t}`)}get duration(){return this._duration}get ended(){return this._ended}get droppedAttributesCount(){return this._droppedAttributesCount}get droppedEventsCount(){return this._droppedEventsCount}get droppedLinksCount(){return this._droppedLinksCount}_isSpanEnded(){if(this._ended){let t=new Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);ua.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,t)}return this._ended}_truncateToLimitUtil(t,n){return t.length<=n?t:t.substring(0,n)}_truncateToSize(t){let n=this._attributeValueLengthLimit;return n<=0?(ua.diag.warn(`Attribute value limit must be positive, got ${n}`),t):typeof t=="string"?this._truncateToLimitUtil(t,n):Array.isArray(t)?t.map(r=>typeof r=="string"?this._truncateToLimitUtil(r,n):r):t}};vq.SpanImpl=m$});var SA=w(IP=>{"use strict";Object.defineProperty(IP,"__esModule",{value:!0});IP.SamplingDecision=void 0;var WZt;(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(WZt=IP.SamplingDecision||(IP.SamplingDecision={}))});var Aq=w(Rq=>{"use strict";Object.defineProperty(Rq,"__esModule",{value:!0});Rq.AlwaysOffSampler=void 0;var KZt=SA(),g$=class{shouldSample(){return{decision:KZt.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};Rq.AlwaysOffSampler=g$});var kq=w(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.AlwaysOnSampler=void 0;var YZt=SA(),y$=class{shouldSample(){return{decision:YZt.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};wq.AlwaysOnSampler=y$});var E$=w(xq=>{"use strict";Object.defineProperty(xq,"__esModule",{value:!0});xq.ParentBasedSampler=void 0;var Iq=(Ce(),ke(Ze)),ZZt=fr(),hFe=Aq(),S$=kq(),b$=class{_root;_remoteParentSampled;_remoteParentNotSampled;_localParentSampled;_localParentNotSampled;constructor(t){this._root=t.root,this._root||((0,ZZt.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new S$.AlwaysOnSampler),this._remoteParentSampled=t.remoteParentSampled??new S$.AlwaysOnSampler,this._remoteParentNotSampled=t.remoteParentNotSampled??new hFe.AlwaysOffSampler,this._localParentSampled=t.localParentSampled??new S$.AlwaysOnSampler,this._localParentNotSampled=t.localParentNotSampled??new hFe.AlwaysOffSampler}shouldSample(t,n,r,i,s,o){let a=Iq.trace.getSpanContext(t);return!a||!(0,Iq.isSpanContextValid)(a)?this._root.shouldSample(t,n,r,i,s,o):a.isRemote?a.traceFlags&Iq.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,n,r,i,s,o):this._remoteParentNotSampled.shouldSample(t,n,r,i,s,o):a.traceFlags&Iq.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,n,r,i,s,o):this._localParentNotSampled.shouldSample(t,n,r,i,s,o)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};xq.ParentBasedSampler=b$});var T$=w(Oq=>{"use strict";Object.defineProperty(Oq,"__esModule",{value:!0});Oq.TraceIdRatioBasedSampler=void 0;var JZt=(Ce(),ke(Ze)),mFe=SA(),_$=class{_ratio;_upperBound;constructor(t=0){this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,n){return{decision:(0,JZt.isValidTraceId)(n)&&this._accumulate(n)=1?1:t<=0?0:t}_accumulate(t){let n=0;for(let r=0;r>>0}return n}};Oq.TraceIdRatioBasedSampler=_$});var A$=w(bA=>{"use strict";Object.defineProperty(bA,"__esModule",{value:!0});bA.buildSamplerFromEnv=bA.loadDefaultConfig=void 0;var R$=(Ce(),ke(Ze)),Vp=fr(),gFe=Aq(),v$=kq(),Pq=E$(),yFe=T$(),Wp;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(Wp||(Wp={}));var Nq=1;function XZt(){return{sampler:bFe(),forceFlushTimeoutMillis:3e4,generalLimits:{attributeValueLengthLimit:(0,Vp.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,Vp.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??128},spanLimits:{attributeValueLengthLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??1/0,attributeCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??128,linkCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_LINK_COUNT_LIMIT")??128,eventCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_EVENT_COUNT_LIMIT")??128,attributePerEventCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT")??128,attributePerLinkCountLimit:(0,Vp.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT")??128}}}bA.loadDefaultConfig=XZt;function bFe(){let e=(0,Vp.getStringFromEnv)("OTEL_TRACES_SAMPLER")??Wp.ParentBasedAlwaysOn;switch(e){case Wp.AlwaysOn:return new v$.AlwaysOnSampler;case Wp.AlwaysOff:return new gFe.AlwaysOffSampler;case Wp.ParentBasedAlwaysOn:return new Pq.ParentBasedSampler({root:new v$.AlwaysOnSampler});case Wp.ParentBasedAlwaysOff:return new Pq.ParentBasedSampler({root:new gFe.AlwaysOffSampler});case Wp.TraceIdRatio:return new yFe.TraceIdRatioBasedSampler(SFe());case Wp.ParentBasedTraceIdRatio:return new Pq.ParentBasedSampler({root:new yFe.TraceIdRatioBasedSampler(SFe())});default:return R$.diag.error(`OTEL_TRACES_SAMPLER value "${e}" invalid, defaulting to "${Wp.ParentBasedAlwaysOn}".`),new Pq.ParentBasedSampler({root:new v$.AlwaysOnSampler})}}bA.buildSamplerFromEnv=bFe;function SFe(){let e=(0,Vp.getNumberFromEnv)("OTEL_TRACES_SAMPLER_ARG");return e==null?(R$.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${Nq}.`),Nq):e<0||e>1?(R$.diag.error(`OTEL_TRACES_SAMPLER_ARG=${e} was given, but it is out of range ([0..1]), defaulting to ${Nq}.`),Nq):e}});var w$=w(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.reconfigureLimits=Xl.mergeConfig=Xl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Xl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=void 0;var EFe=A$(),Cq=fr();Xl.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Xl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;function QZt(e){let t={sampler:(0,EFe.buildSamplerFromEnv)()},n=(0,EFe.loadDefaultConfig)(),r=Object.assign({},n,t,e);return r.generalLimits=Object.assign({},n.generalLimits,e.generalLimits||{}),r.spanLimits=Object.assign({},n.spanLimits,e.spanLimits||{}),r}Xl.mergeConfig=QZt;function $Zt(e){let t=Object.assign({},e.spanLimits);return t.attributeCountLimit=e.spanLimits?.attributeCountLimit??e.generalLimits?.attributeCountLimit??(0,Cq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT")??(0,Cq.getNumberFromEnv)("OTEL_ATTRIBUTE_COUNT_LIMIT")??Xl.DEFAULT_ATTRIBUTE_COUNT_LIMIT,t.attributeValueLengthLimit=e.spanLimits?.attributeValueLengthLimit??e.generalLimits?.attributeValueLengthLimit??(0,Cq.getNumberFromEnv)("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT")??(0,Cq.getNumberFromEnv)("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT")??Xl.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:t})}Xl.reconfigureLimits=$Zt});var _Fe=w(Mq=>{"use strict";Object.defineProperty(Mq,"__esModule",{value:!0});Mq.BatchSpanProcessorBase=void 0;var EA=(Ce(),ke(Ze)),km=fr(),k$=class{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_isExporting=!1;_finishedSpans=[];_timer;_shutdownOnce;_droppedSpansCount=0;constructor(t,n){this._exporter=t,this._maxExportBatchSize=typeof n?.maxExportBatchSize=="number"?n.maxExportBatchSize:(0,km.getNumberFromEnv)("OTEL_BSP_MAX_EXPORT_BATCH_SIZE")??512,this._maxQueueSize=typeof n?.maxQueueSize=="number"?n.maxQueueSize:(0,km.getNumberFromEnv)("OTEL_BSP_MAX_QUEUE_SIZE")??2048,this._scheduledDelayMillis=typeof n?.scheduledDelayMillis=="number"?n.scheduledDelayMillis:(0,km.getNumberFromEnv)("OTEL_BSP_SCHEDULE_DELAY")??5e3,this._exportTimeoutMillis=typeof n?.exportTimeoutMillis=="number"?n.exportTimeoutMillis:(0,km.getNumberFromEnv)("OTEL_BSP_EXPORT_TIMEOUT")??3e4,this._shutdownOnce=new km.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(EA.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}onStart(t,n){}onEnd(t){this._shutdownOnce.isCalled||(t.spanContext().traceFlags&EA.TraceFlags.SAMPLED)!==0&&this._addToBuffer(t)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return Promise.resolve().then(()=>this.onShutdown()).then(()=>this._flushAll()).then(()=>this._exporter.shutdown())}_addToBuffer(t){if(this._finishedSpans.length>=this._maxQueueSize){this._droppedSpansCount===0&&EA.diag.debug("maxQueueSize reached, dropping spans"),this._droppedSpansCount++;return}this._droppedSpansCount>0&&(EA.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`),this._droppedSpansCount=0),this._finishedSpans.push(t),this._maybeStartTimer()}_flushAll(){return new Promise((t,n)=>{let r=[],i=Math.ceil(this._finishedSpans.length/this._maxExportBatchSize);for(let s=0,o=i;s{t()}).catch(n)})}_flushOneBatch(){return this._clearTimer(),this._finishedSpans.length===0?Promise.resolve():new Promise((t,n)=>{let r=setTimeout(()=>{n(new Error("Timeout"))},this._exportTimeoutMillis);EA.context.with((0,km.suppressTracing)(EA.context.active()),()=>{let i;this._finishedSpans.length<=this._maxExportBatchSize?(i=this._finishedSpans,this._finishedSpans=[]):i=this._finishedSpans.splice(0,this._maxExportBatchSize);let s=()=>this._exporter.export(i,a=>{clearTimeout(r),a.code===km.ExportResultCode.SUCCESS?t():n(a.error??new Error("BatchSpanProcessor: span export failed"))}),o=null;for(let a=0,c=i.length;a{(0,km.globalErrorHandler)(a),n(a)})})})}_maybeStartTimer(){if(this._isExporting)return;let t=()=>{this._isExporting=!0,this._flushOneBatch().finally(()=>{this._isExporting=!1,this._finishedSpans.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(n=>{this._isExporting=!1,(0,km.globalErrorHandler)(n)})};if(this._finishedSpans.length>=this._maxExportBatchSize)return t();this._timer===void 0&&(this._timer=setTimeout(()=>t(),this._scheduledDelayMillis),typeof this._timer!="number"&&this._timer.unref())}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}};Mq.BatchSpanProcessorBase=k$});var TFe=w(Dq=>{"use strict";Object.defineProperty(Dq,"__esModule",{value:!0});Dq.BatchSpanProcessor=void 0;var e6t=_Fe(),I$=class extends e6t.BatchSpanProcessorBase{onShutdown(){}};Dq.BatchSpanProcessor=I$});var AFe=w(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});Uq.RandomIdGenerator=void 0;var t6t=8,RFe=16,x$=class{generateTraceId=vFe(RFe);generateSpanId=vFe(t6t)};Uq.RandomIdGenerator=x$;var Lq=Buffer.allocUnsafe(RFe);function vFe(e){return function(){for(let n=0;n>>0,n*4);for(let n=0;n0);n++)n===e-1&&(Lq[e-1]=1);return Lq.toString("hex",0,e)}}});var wFe=w(_A=>{"use strict";Object.defineProperty(_A,"__esModule",{value:!0});_A.RandomIdGenerator=_A.BatchSpanProcessor=void 0;var n6t=TFe();Object.defineProperty(_A,"BatchSpanProcessor",{enumerable:!0,get:function(){return n6t.BatchSpanProcessor}});var r6t=AFe();Object.defineProperty(_A,"RandomIdGenerator",{enumerable:!0,get:function(){return r6t.RandomIdGenerator}})});var O$=w(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});TA.RandomIdGenerator=TA.BatchSpanProcessor=void 0;var kFe=wFe();Object.defineProperty(TA,"BatchSpanProcessor",{enumerable:!0,get:function(){return kFe.BatchSpanProcessor}});Object.defineProperty(TA,"RandomIdGenerator",{enumerable:!0,get:function(){return kFe.RandomIdGenerator}})});var IFe=w(Kp=>{"use strict";Object.defineProperty(Kp,"__esModule",{value:!0});Kp.METRIC_OTEL_SDK_SPAN_STARTED=Kp.METRIC_OTEL_SDK_SPAN_LIVE=Kp.ATTR_OTEL_SPAN_SAMPLING_RESULT=Kp.ATTR_OTEL_SPAN_PARENT_ORIGIN=void 0;Kp.ATTR_OTEL_SPAN_PARENT_ORIGIN="otel.span.parent.origin";Kp.ATTR_OTEL_SPAN_SAMPLING_RESULT="otel.span.sampling_result";Kp.METRIC_OTEL_SDK_SPAN_LIVE="otel.sdk.span.live";Kp.METRIC_OTEL_SDK_SPAN_STARTED="otel.sdk.span.started"});var xFe=w(jq=>{"use strict";Object.defineProperty(jq,"__esModule",{value:!0});jq.TracerMetrics=void 0;var Fq=SA(),xP=IFe(),P$=class{startedSpans;liveSpans;constructor(t){this.startedSpans=t.createCounter(xP.METRIC_OTEL_SDK_SPAN_STARTED,{unit:"{span}",description:"The number of created spans."}),this.liveSpans=t.createUpDownCounter(xP.METRIC_OTEL_SDK_SPAN_LIVE,{unit:"{span}",description:"The number of currently live spans."})}startSpan(t,n){let r=s6t(n);if(this.startedSpans.add(1,{[xP.ATTR_OTEL_SPAN_PARENT_ORIGIN]:i6t(t),[xP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r}),n===Fq.SamplingDecision.NOT_RECORD)return()=>{};let i={[xP.ATTR_OTEL_SPAN_SAMPLING_RESULT]:r};return this.liveSpans.add(1,i),()=>{this.liveSpans.add(-1,i)}}};jq.TracerMetrics=P$;function i6t(e){return e?e.isRemote?"remote":"local":"none"}function s6t(e){switch(e){case Fq.SamplingDecision.RECORD_AND_SAMPLED:return"RECORD_AND_SAMPLE";case Fq.SamplingDecision.RECORD:return"RECORD_ONLY";case Fq.SamplingDecision.NOT_RECORD:return"DROP"}}});var OFe=w(Hq=>{"use strict";Object.defineProperty(Hq,"__esModule",{value:!0});Hq.VERSION=void 0;Hq.VERSION="2.6.1"});var PFe=w(Bq=>{"use strict";Object.defineProperty(Bq,"__esModule",{value:!0});Bq.Tracer=void 0;var jo=(Ce(),ke(Ze)),qq=fr(),o6t=pFe(),a6t=w$(),c6t=O$(),u6t=xFe(),l6t=OFe(),N$=class{_sampler;_generalLimits;_spanLimits;_idGenerator;instrumentationScope;_resource;_spanProcessor;_tracerMetrics;constructor(t,n,r,i){let s=(0,a6t.mergeConfig)(n);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=n.idGenerator||new c6t.RandomIdGenerator,this._resource=r,this._spanProcessor=i,this.instrumentationScope=t;let o=s.meterProvider?s.meterProvider.getMeter("@opentelemetry/sdk-trace",l6t.VERSION):jo.createNoopMeter();this._tracerMetrics=new u6t.TracerMetrics(o)}startSpan(t,n={},r=jo.context.active()){n.root&&(r=jo.trace.deleteSpan(r));let i=jo.trace.getSpan(r);if((0,qq.isTracingSuppressed)(r))return jo.diag.debug("Instrumentation suppressed, returning Noop Span"),jo.trace.wrapSpanContext(jo.INVALID_SPAN_CONTEXT);let s=i?.spanContext(),o=this._idGenerator.generateSpanId(),a,c,u;!s||!jo.trace.isSpanContextValid(s)?c=this._idGenerator.generateTraceId():(c=s.traceId,u=s.traceState,a=s);let l=n.kind??jo.SpanKind.INTERNAL,d=(n.links??[]).map(S=>({context:S.context,attributes:(0,qq.sanitizeAttributes)(S.attributes)})),f=(0,qq.sanitizeAttributes)(n.attributes),p=this._sampler.shouldSample(r,c,t,l,f,d),h=this._tracerMetrics.startSpan(s,p.decision);u=p.traceState??u;let m=p.decision===jo.SamplingDecision.RECORD_AND_SAMPLED?jo.TraceFlags.SAMPLED:jo.TraceFlags.NONE,g={traceId:c,spanId:o,traceFlags:m,traceState:u};if(p.decision===jo.SamplingDecision.NOT_RECORD)return jo.diag.debug("Recording is off, propagating context in a non-recording span"),jo.trace.wrapSpanContext(g);let y=(0,qq.sanitizeAttributes)(Object.assign(f,p.attributes));return new o6t.SpanImpl({resource:this._resource,scope:this.instrumentationScope,context:r,spanContext:g,name:t,kind:l,links:d,parentSpanContext:a,attributes:y,startTime:n.startTime,spanProcessor:this._spanProcessor,spanLimits:this._spanLimits,recordEndMetrics:h})}startActiveSpan(t,n,r,i){let s,o,a;if(arguments.length<2)return;arguments.length===2?a=n:arguments.length===3?(s=n,a=r):(s=n,o=r,a=i);let c=o??jo.context.active(),u=this.startSpan(t,s,c),l=jo.trace.setSpan(c,u);return jo.context.with(l,a,void 0,u)}getGeneralLimits(){return this._generalLimits}getSpanLimits(){return this._spanLimits}};Bq.Tracer=N$});var NFe=w(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});zq.MultiSpanProcessor=void 0;var d6t=fr(),C$=class{_spanProcessors;constructor(t){this._spanProcessors=t}forceFlush(){let t=[];for(let n of this._spanProcessors)t.push(n.forceFlush());return new Promise(n=>{Promise.all(t).then(()=>{n()}).catch(r=>{(0,d6t.globalErrorHandler)(r||new Error("MultiSpanProcessor: forceFlush failed")),n()})})}onStart(t,n){for(let r of this._spanProcessors)r.onStart(t,n)}onEnding(t){for(let n of this._spanProcessors)n.onEnding&&n.onEnding(t)}onEnd(t){for(let n of this._spanProcessors)n.onEnd(t)}shutdown(){let t=[];for(let n of this._spanProcessors)t.push(n.shutdown());return new Promise((n,r)=>{Promise.all(t).then(()=>{n()},r)})}};zq.MultiSpanProcessor=C$});var CFe=w(ZE=>{"use strict";Object.defineProperty(ZE,"__esModule",{value:!0});ZE.BasicTracerProvider=ZE.ForceFlushState=void 0;var f6t=fr(),p6t=h$(),h6t=PFe(),m6t=A$(),g6t=NFe(),y6t=w$(),vA;(function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"})(vA=ZE.ForceFlushState||(ZE.ForceFlushState={}));var M$=class{_config;_tracers=new Map;_resource;_activeSpanProcessor;constructor(t={}){let n=(0,f6t.merge)({},(0,m6t.loadDefaultConfig)(),(0,y6t.reconfigureLimits)(t));this._resource=n.resource??(0,p6t.defaultResource)(),this._config=Object.assign({},n,{resource:this._resource});let r=[];t.spanProcessors?.length&&r.push(...t.spanProcessors),this._activeSpanProcessor=new g6t.MultiSpanProcessor(r)}getTracer(t,n,r){let i=`${t}@${n||""}:${r?.schemaUrl||""}`;return this._tracers.has(i)||this._tracers.set(i,new h6t.Tracer({name:t,version:n,schemaUrl:r?.schemaUrl},this._config,this._resource,this._activeSpanProcessor)),this._tracers.get(i)}forceFlush(){let t=this._config.forceFlushTimeoutMillis,n=this._activeSpanProcessor._spanProcessors.map(r=>new Promise(i=>{let s,o=setTimeout(()=>{i(new Error(`Span processor did not completed within timeout period of ${t} ms`)),s=vA.timeout},t);r.forceFlush().then(()=>{clearTimeout(o),s!==vA.timeout&&(s=vA.resolved,i(s))}).catch(a=>{clearTimeout(o),s=vA.error,i(a)})}));return new Promise((r,i)=>{Promise.all(n).then(s=>{let o=s.filter(a=>a!==vA.resolved);o.length>0?i(o):r()}).catch(s=>i([s]))})}shutdown(){return this._activeSpanProcessor.shutdown()}};ZE.BasicTracerProvider=M$});var MFe=w(Gq=>{"use strict";Object.defineProperty(Gq,"__esModule",{value:!0});Gq.ConsoleSpanExporter=void 0;var D$=fr(),L$=class{export(t,n){return this._sendSpans(t,n)}shutdown(){return this._sendSpans([]),this.forceFlush()}forceFlush(){return Promise.resolve()}_exportInfo(t){return{resource:{attributes:t.resource.attributes},instrumentationScope:t.instrumentationScope,traceId:t.spanContext().traceId,parentSpanContext:t.parentSpanContext,traceState:t.spanContext().traceState?.serialize(),name:t.name,id:t.spanContext().spanId,kind:t.kind,timestamp:(0,D$.hrTimeToMicroseconds)(t.startTime),duration:(0,D$.hrTimeToMicroseconds)(t.duration),attributes:t.attributes,status:t.status,events:t.events,links:t.links}}_sendSpans(t,n){for(let r of t)console.dir(this._exportInfo(r),{depth:3});if(n)return n({code:D$.ExportResultCode.SUCCESS})}};Gq.ConsoleSpanExporter=L$});var LFe=w(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});Vq.InMemorySpanExporter=void 0;var DFe=fr(),U$=class{_finishedSpans=[];_stopped=!1;export(t,n){if(this._stopped)return n({code:DFe.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedSpans.push(...t),setTimeout(()=>n({code:DFe.ExportResultCode.SUCCESS}),0)}shutdown(){return this._stopped=!0,this._finishedSpans=[],this.forceFlush()}forceFlush(){return Promise.resolve()}reset(){this._finishedSpans=[]}getFinishedSpans(){return this._finishedSpans}};Vq.InMemorySpanExporter=U$});var UFe=w(Kq=>{"use strict";Object.defineProperty(Kq,"__esModule",{value:!0});Kq.SimpleSpanProcessor=void 0;var S6t=(Ce(),ke(Ze)),Wq=fr(),F$=class{_exporter;_shutdownOnce;_pendingExports;constructor(t){this._exporter=t,this._shutdownOnce=new Wq.BindOnceFuture(this._shutdown,this),this._pendingExports=new Set}async forceFlush(){await Promise.all(Array.from(this._pendingExports)),this._exporter.forceFlush&&await this._exporter.forceFlush()}onStart(t,n){}onEnd(t){if(this._shutdownOnce.isCalled||(t.spanContext().traceFlags&S6t.TraceFlags.SAMPLED)===0)return;let n=this._doExport(t).catch(r=>(0,Wq.globalErrorHandler)(r));this._pendingExports.add(n),n.finally(()=>this._pendingExports.delete(n))}async _doExport(t){t.resource.asyncAttributesPending&&await t.resource.waitForAsyncAttributes?.();let n=await Wq.internal._export(this._exporter,[t]);if(n.code!==Wq.ExportResultCode.SUCCESS)throw n.error??new Error(`SimpleSpanProcessor: span export failed (status ${n})`)}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};Kq.SimpleSpanProcessor=F$});var FFe=w(Yq=>{"use strict";Object.defineProperty(Yq,"__esModule",{value:!0});Yq.NoopSpanProcessor=void 0;var j$=class{onStart(t,n){}onEnd(t){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}};Yq.NoopSpanProcessor=j$});var H$=w(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});ti.SamplingDecision=ti.TraceIdRatioBasedSampler=ti.ParentBasedSampler=ti.AlwaysOnSampler=ti.AlwaysOffSampler=ti.NoopSpanProcessor=ti.SimpleSpanProcessor=ti.InMemorySpanExporter=ti.ConsoleSpanExporter=ti.RandomIdGenerator=ti.BatchSpanProcessor=ti.BasicTracerProvider=void 0;var b6t=CFe();Object.defineProperty(ti,"BasicTracerProvider",{enumerable:!0,get:function(){return b6t.BasicTracerProvider}});var jFe=O$();Object.defineProperty(ti,"BatchSpanProcessor",{enumerable:!0,get:function(){return jFe.BatchSpanProcessor}});Object.defineProperty(ti,"RandomIdGenerator",{enumerable:!0,get:function(){return jFe.RandomIdGenerator}});var E6t=MFe();Object.defineProperty(ti,"ConsoleSpanExporter",{enumerable:!0,get:function(){return E6t.ConsoleSpanExporter}});var _6t=LFe();Object.defineProperty(ti,"InMemorySpanExporter",{enumerable:!0,get:function(){return _6t.InMemorySpanExporter}});var T6t=UFe();Object.defineProperty(ti,"SimpleSpanProcessor",{enumerable:!0,get:function(){return T6t.SimpleSpanProcessor}});var v6t=FFe();Object.defineProperty(ti,"NoopSpanProcessor",{enumerable:!0,get:function(){return v6t.NoopSpanProcessor}});var R6t=Aq();Object.defineProperty(ti,"AlwaysOffSampler",{enumerable:!0,get:function(){return R6t.AlwaysOffSampler}});var A6t=kq();Object.defineProperty(ti,"AlwaysOnSampler",{enumerable:!0,get:function(){return A6t.AlwaysOnSampler}});var w6t=E$();Object.defineProperty(ti,"ParentBasedSampler",{enumerable:!0,get:function(){return w6t.ParentBasedSampler}});var k6t=T$();Object.defineProperty(ti,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return k6t.TraceIdRatioBasedSampler}});var I6t=SA();Object.defineProperty(ti,"SamplingDecision",{enumerable:!0,get:function(){return I6t.SamplingDecision}})});function J$(e){if("parentSpanId"in e)return e.parentSpanId;if("parentSpanContext"in e)return e.parentSpanContext?.spanId}function X$(e){let t=e;return!!t.attributes&&typeof t.attributes=="object"}function x6t(e){return typeof e.kind=="number"}function O6t(e){return!!e.status}function zFe(e){return!!e.name}function P6t(e){if(!X$(e))return{};let t=e.attributes[fy]||e.attributes[dR],n={url:t,"http.method":e.attributes[SE]||e.attributes[mO]};!n["http.method"]&&n.url&&(n["http.method"]="GET");try{if(typeof t=="string"){let r=Dy(t);n.url=Ly(r),r.search&&(n["http.query"]=r.search),r.hash&&(n["http.fragment"]=r.hash)}}catch{}return n}function N6t(e){return x6t(e)?e.kind:$r.INTERNAL}function kA(e){return e.getValue(eee)}function WFe(e,t){return e.setValue(eee,t)}function D6t(e,t){zs(e,VFe,t)}function PP(e){return e[VFe]}function AA(e){let{traceFlags:t,traceState:n}=e,r=n?n.get($$)==="1":!1;if(t===qa.SAMPLED)return!0;if(r)return!1;let i=n?n.get(Q$):void 0,s=i?ym(i):void 0;if(s?.sampled==="true")return!0;if(s?.sampled==="false")return!1}function KFe(e,t,n){let r=t[SE]||t[mO];if(r)return U6t({attributes:t,name:e,kind:n},r);let i=t[yE]||t[r7],s=typeof t[zt]=="string"&&t[zt].startsWith("cache.");if(i&&!s)return L6t({attributes:t,name:e});let o=t[Wi]==="custom"?"custom":"route";if(t[h7])return{...OP(e,t,"route"),op:"rpc"};if(t[p7])return{...OP(e,t,o),op:"message"};let u=t[s7];return u?{...OP(e,t,o),op:u.toString()}:{op:void 0,description:e,source:"custom"}}function YFe(e){let t=X$(e)?e.attributes:{},n=zFe(e)?e.name:"",r=N6t(e);return KFe(n,t,r)}function L6t({attributes:e,name:t}){let n=e[Wl];if(typeof n=="string")return{op:"db",description:n,source:e[Wi]||"custom"};if(e[Wi]==="custom")return{op:"db",description:t,source:"custom"};let r=e[i7];return{op:"db",description:r?r.toString():t,source:"task"}}function U6t({name:e,kind:t,attributes:n},r){let i=["http"];switch(t){case $r.CLIENT:i.push("client");break;case $r.SERVER:i.push("server");break}n["sentry.http.prefetch"]&&i.push("prefetch");let{urlPath:s,url:o,query:a,fragment:c,hasRoute:u}=j6t(n,t);if(!s)return{...OP(e,n),op:i.join(".")};let l=n[wA],d=`${r} ${s}`,f=l?`${d} (${F6t(l)})`:d,p=u||s==="/"?"route":"url",h={};o&&(h.url=o),a&&(h["http.query"]=a),c&&(h["http.fragment"]=c);let m=t===$r.CLIENT||t===$r.SERVER,y=!`${n[At]||"manual"}`.startsWith("auto"),b=n[Wi]==="custom",S=n[Wl],E=!b&&S==null&&(m||!y),{description:_,source:T}=E?{description:f,source:p}:OP(e,n);return{op:i.join("."),description:_,source:T,data:h}}function F6t(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}function j6t(e,t){let n=e[u7],r=e[dR]||e[fy],i=e[lm],s=typeof r=="string"?Dy(r):void 0,o=s?Ly(s):void 0,a=s?.search||void 0,c=s?.hash||void 0;return typeof i=="string"?{urlPath:i,url:o,query:a,fragment:c,hasRoute:!0}:t===$r.SERVER&&typeof n=="string"?{urlPath:Tm(n),url:o,query:a,fragment:c,hasRoute:!1}:s?{urlPath:o,url:o,query:a,fragment:c,hasRoute:!1}:typeof n=="string"?{urlPath:Tm(n),url:o,query:a,fragment:c,hasRoute:!1}:{urlPath:void 0,url:o,query:a,fragment:c,hasRoute:!1}}function OP(e,t,n="custom"){let r=t[Wi]||n,i=t[Wl];return i&&typeof i=="string"?{description:i,source:r}:{description:e,source:r}}function ZFe(e){e.on("createDsc",(t,n)=>{if(!n)return;let s=vt(n).data[Wi],{description:o}=zFe(n)?YFe(n):{description:void 0};if(s!=="url"&&o&&(t.transaction=o),Os()){let a=AA(n.spanContext());t.sampled=a==null?void 0:String(a)}})}function JFe(){return jt.getActiveSpan()}function XFe({dsc:e,sampled:t}){let n=e?xE(e):void 0,r=new Mc.TraceState,i=n?r.set(Q$,n):r;return t===!1?i.set($$,"1"):i}function $Fe(){return Array.from(QFe)}function $q(e){QFe.add(e)}function eje(e,t={}){let n=jt.getSpan(e);if(n?.spanContext().isRemote){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:void 0,sampled:AA(a)}}if(n){let a=n.spanContext();return{dynamicSamplingContext:Ps(n),traceId:a.traceId,spanId:a.spanId,sampled:AA(a)}}let r=t.scope||kA(e)?.scope||Un(),i=t.client||ct(),s=r.getPropagationContext();return{dynamicSamplingContext:i?Fp(i,r):void 0,traceId:s.traceId,spanId:s.propagationSpanId,sampled:s.sampled}}function tje(e,{sentryTrace:t,baggage:n}){let r=HO(t,n),{traceId:i,parentSpanId:s,sampled:o,dsc:a}=r,c=ct(),u=ym(n);if(!s||c&&!aX(c,u?.org_id))return e;let l=G6t({traceId:i,spanId:s,sampled:o,dsc:a});return jt.setSpanContext(e,l)}function H6t(e,t,n){let r=nje(tje(e,t));return Ve.with(r,n)}function nje(e){let t=kA(e),n={scope:t?t.scope:Un().clone(),isolationScope:t?t.isolationScope:vn()};return WFe(e,n)}function q6t(e){try{let t=e[q$];return Array.isArray(t)?t.join(","):t}catch{return}}function B6t(e){try{return e[Zq]}catch{return}}function z6t(e){let t=vt(e).data,n=t[dR]||t[fy];if(typeof n=="string")return n;let r=e.spanContext().traceState?.get(GFe);if(r)return r}function G6t({spanId:e,traceId:t,sampled:n,dsc:r}){let i=XFe({dsc:r,sampled:n});return{traceId:t,spanId:e,isRemote:!0,traceFlags:n?qa.SAMPLED:qa.NONE,traceState:i}}function rje(e,t,n){let r=sje(),{name:i,parentSpan:s}=e;return lje(s)(()=>{let a=cje(e.scope,e.forceTransaction),u=e.onlyIfParent&&!jt.getSpan(a)?(0,Mc.suppressTracing)(a):a,l=oje(e);if(!Os()){let d=(0,Mc.isTracingSuppressed)(u)?u:(0,Mc.suppressTracing)(u);return Ve.with(d,()=>r.startActiveSpan(i,l,d,f=>(V$(f),Ve.with(a,()=>uf(()=>t(f),()=>{vt(f).status===void 0&&f.setStatus({code:as.ERROR})},n?()=>f.end():void 0)))))}return r.startActiveSpan(i,l,u,d=>(V$(d),uf(()=>t(d),()=>{vt(d).status===void 0&&d.setStatus({code:as.ERROR})},n?()=>d.end():void 0)))})}function V6t(e,t){return rje(e,t,!0)}function W6t(e,t){return rje(e,n=>t(n,()=>n.end()),!1)}function K6t(e){let t=sje(),{name:n,parentSpan:r}=e;return lje(r)(()=>{let s=cje(e.scope,e.forceTransaction),a=e.onlyIfParent&&!jt.getSpan(s)?(0,Mc.suppressTracing)(s):s,c=oje(e);Os()||(a=(0,Mc.isTracingSuppressed)(a)?a:(0,Mc.suppressTracing)(a));let u=t.startSpan(n,c,a);return V$(u),u})}function ije(e,t){let n=e?jt.setSpan(Ve.active(),e):jt.deleteSpan(Ve.active());return Ve.with(n,()=>t(Un()))}function sje(){return ct()?.tracer||jt.getTracer("@sentry/opentelemetry",Nn)}function oje(e){let{startTime:t,attributes:n,kind:r,op:i,links:s}=e,o=typeof t=="number"?aje(t):t;return{attributes:i?{[zt]:i,...n}:n,kind:r,links:s,startTime:o}}function aje(e){return e<9999999999?e*1e3:e}function V$(e){let t=e.end.bind(e);e.end=n=>t(typeof n=="number"?aje(n):n)}function cje(e,t){let n=Y6t(e),r=jt.getSpan(n);if(!r||!t)return n;let i=jt.deleteSpan(n),{spanId:s,traceId:o}=r.spanContext(),a=AA(r.spanContext()),c=cs(r),u=Ps(c),l=XFe({dsc:u,sampled:a}),d={traceId:o,spanId:s,isRemote:!0,traceFlags:a?qa.SAMPLED:qa.NONE,traceState:l};return jt.setSpanContext(i,d)}function Y6t(e){if(e){let t=PP(e);if(t)return t}return Ve.active()}function Z6t(e,t){return H6t(Ve.active(),e,t)}function J6t(e){let t=Ya(),n=Za(),r={traceId:t,spanId:n,isRemote:!0,traceFlags:qa.NONE},i=jt.setSpanContext(Ve.active(),r);return Ve.with(i,()=>(Un().setPropagationContext({traceId:t,sampleRand:Do()}),e()))}function uje(e,t){let n=PP(t),r=n&&jt.getSpan(n),i=r?Py(r):IE(t);return[r?Ps(r):Fp(e,t),i]}function lje(e){return e!==void 0?t=>ije(e,t):t=>t()}function X6t(e){let t=(0,Mc.suppressTracing)(Ve.active());return Ve.with(t,e)}function dje(e){e.on("preprocessEvent",t=>{let n=JFe();if(!n||t.type==="transaction")return;t.contexts={trace:Py(n),...t.contexts};let r=cs(n);return t.sdkProcessingMetadata={dynamicSamplingContext:Ps(r),...t.sdkProcessingMetadata},t})}function Q6t({span:e,scope:t,client:n,propagateTraceparent:r}={}){let i=(t&&PP(t))??Ve.active();if(e){let{scope:l}=of(e);i=l&&PP(l)||jt.setSpan(Ve.active(),e)}let{traceId:s,spanId:o,sampled:a,dynamicSamplingContext:c}=eje(i,{scope:t,client:n}),u={"sentry-trace":xy(s,o,a),baggage:xE(c)};return r&&(u.traceparent=Oy(s,o,a)),u}function fje(){function e(){let a=Ve.active(),c=kA(a);return c||{scope:LR(),isolationScope:Vl()}}function t(a){let c=Ve.active();return Ve.with(c,()=>a(s()))}function n(a,c){let u=PP(a)||Ve.active();return Ve.with(u.setValue(z$,a),()=>c(a))}function r(a){let c=Ve.active();return Ve.with(c.setValue(B$,!0),()=>a(o()))}function i(a,c){let u=Ve.active();return Ve.with(u.setValue(G$,a),()=>c(o()))}function s(){return e().scope}function o(){return e().isolationScope}XJ({withScope:t,withSetScope:n,withSetIsolationScope:i,withIsolationScope:r,getCurrentScope:s,getIsolationScope:o,startSpan:V6t,startSpanManual:W6t,startInactiveSpan:K6t,getActiveSpan:JFe,suppressTracing:X6t,getTraceData:Q6t,continueTrace:Z6t,startNewTrace:J6t,withActiveSpan:ije})}function pje(e){class t extends e{constructor(...r){super(...r),$q("SentryContextManager")}with(r,i,s,...o){let a=kA(r),c=a?.scope||Un(),u=a?.isolationScope||vn(),l=r.getValue(B$)===!0,d=r.getValue(z$),f=r.getValue(G$),p=d||c.clone(),h=f||(l?u.clone():u),y=WFe(r,{scope:p,isolationScope:h}).deleteValue(B$).deleteValue(z$).deleteValue(G$);return D6t(p,y),super.with(y,i,s,...o)}getAsyncLocalStorageLookup(){return{asyncLocalStorage:this._asyncLocalStorage,contextSymbol:eee}}}return t}function $6t(e){let t=new Map;for(let n of e)e5t(t,n);return Array.from(t,function([n,r]){return r})}function hje(e){return e.attributes[Z$]===!0?void 0:J$(e)}function e5t(e,t){let n=t.spanContext().spanId,r=hje(t);if(!r){W$(e,{id:n,span:t,children:[]});return}let i=t5t(e,r),s=W$(e,{id:n,span:t,parentNode:i,children:[]});i.children.push(s)}function t5t(e,t){let n=e.get(t);return n||W$(e,{id:t,children:[]})}function W$(e,t){let n=e.get(t.id);return n?.span?n:n&&!n.span?(n.span=t.span,n.parentNode=t.parentNode,n):(e.set(t.id,t),t)}function gje(e){let t=X$(e)?e.attributes:{},n=O6t(e)?e.status:void 0;if(n){if(n.code===as.OK)return{code:1};if(n.code===as.ERROR){if(typeof n.message>"u"){let i=HFe(t);if(i)return i}return n.message&&n5t(n.message)?{code:2,message:n.message}:{code:2,message:"internal_error"}}}let r=HFe(t);return r||(n?.code===as.UNSET?{code:1}:{code:2,message:"unknown_error"})}function HFe(e){let t=e[um]||e[gE],n=e[m7],r=typeof t=="number"?t:typeof t=="string"?parseInt(t):void 0;if(typeof r=="number")return gm(r);if(typeof n=="string")return{code:2,message:mje[n]||"unknown_error"}}function r5t(e){let t=e.attributes,n=t[At],r=t[zt],i=t[Wi];return{origin:n,op:r,source:i}}function i5t(e){let{op:t,description:n,data:r,origin:i="manual",source:s}=yje(e),o=of(e),a=e.attributes[sf],c={[Wi]:s,[sf]:a,[zt]:t,[At]:i,...r,...Sje(e.attributes)},{links:u}=e,{traceId:l,spanId:d}=e.spanContext(),f=J$(e),p=gje(e),h={parent_span_id:f,span_id:d,trace_id:l,data:c,origin:i,op:t,status:NE(p),links:PE(u)},m=c[um],g=typeof m=="number"?{response:{status_code:m}}:void 0;return{contexts:{trace:h,otel:{resource:e.resource.attributes},...g},spans:[],start_timestamp:lu(e.startTime),timestamp:lu(e.endTime),transaction:n,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:o.scope,capturedSpanIsolationScope:o.isolationScope,sampleRate:a,dynamicSamplingContext:Ps(e)},...s&&{transaction_info:{source:s}}}}function Y$(e,t,n){let r=e.span;if(r&&n.add(r),!r){e.children.forEach(S=>{Y$(S,t,n)});return}let s=r.spanContext().spanId,o=r.spanContext().traceId,a=J$(r),{attributes:c,startTime:u,endTime:l,links:d}=r,{op:f,description:p,data:h,origin:m="manual"}=yje(r),g={[At]:m,[zt]:f,...Sje(c),...h},y=gje(r),b={span_id:s,trace_id:o,data:g,description:p,parent_span_id:a,start_timestamp:lu(u),timestamp:lu(l)||void 0,status:NE(y),op:f,origin:m,measurements:CE(r.events),links:PE(d)};t.push(b),e.children.forEach(S=>{Y$(S,t,n)})}function yje(e){let{op:t,source:n,origin:r}=r5t(e),{op:i,description:s,source:o,data:a}=YFe(e),c=t||i,u=n||o,l={...a,...s5t(e)};return{op:c,description:s,source:u,origin:r,data:l}}function Sje(e){let t={...e};return delete t[sf],delete t[Z$],delete t[Wl],t}function s5t(e){let t=e.attributes,n={};e.kind!==$r.INTERNAL&&(n["otel.kind"]=$r[e.kind]);let r=t[gE];r&&(n[um]=r);let i=P6t(e);return i.url&&(n.url=i.url),i["http.query"]&&(n["http.query"]=i["http.query"].slice(1)),i["http.fragment"]&&(n["http.fragment"]=i["http.fragment"].slice(1)),n}function o5t(e,t){let n=jt.getSpan(t),r=kA(t);n&&!n.spanContext().isRemote&&zR(n,e),n?.spanContext().isRemote&&e.setAttribute(Z$,!0),t===sR&&(r={scope:LR(),isolationScope:Vl()}),r&&FO(e,r.scope,r.isolationScope),KO(e),ct()?.emit("spanStart",e)}function a5t(e){YO(e),ct()?.emit("spanEnd",e)}function c5t(e,t,n){let r=e.spanContext();if(cm(r)&&r.traceId===t){if(r.isRemote){let s=AA(e.spanContext());return Yy&&Z.log(`[Tracing] Inheriting remote parent's sampled decision for ${n}: ${s}`),s}let i=AA(r);return Yy&&Z.log(`[Tracing] Inheriting parent's sampled decision for ${n}: ${i}`),i}}function RA({decision:e,context:t,spanAttributes:n,sampleRand:r,downstreamTraceSampleRate:i}){let s=u5t(t,n);return i!==void 0&&(s=s.set(M6t,`${i}`)),r!==void 0&&(s=s.set(C6t,`${r}`)),e==null?{decision:Ky.SamplingDecision.NOT_RECORD,traceState:s}:e===Ky.SamplingDecision.NOT_RECORD?{decision:e,traceState:s.set($$,"1")}:{decision:e,traceState:s}}function u5t(e,t){let i=jt.getSpan(e)?.spanContext()?.traceState||new Mc.TraceState,s=t[dR]||t[fy];return s&&typeof s=="string"&&(i=i.set(GFe,s)),i}function l5t(e){let t=jt.getSpan(e);return t&&cm(t.spanContext())?t:void 0}var Mc,Ky,Z$,wA,Zq,q$,Q$,$$,GFe,C6t,M6t,eee,B$,z$,G$,VFe,Yy,QFe,Jq,mje,n5t,qFe,BFe,K$,Xq,Qq,IA=v(()=>{Pn();st();Ce();Ce();Mc=Re(fr(),1),Ky=Re(H$(),1),Z$="sentry.parentIsRemote",wA="sentry.graphql.operation";Zq="sentry-trace",q$="baggage",Q$="sentry.dsc",$$="sentry.sampled_not_recording",GFe="sentry.url",C6t="sentry.sample_rand",M6t="sentry.sample_rate",eee=il("sentry_scopes"),B$=il("sentry_fork_isolation_scope"),z$=il("sentry_fork_set_scope"),G$=il("sentry_fork_set_isolation_scope"),VFe="_scopeContext";Yy=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;QFe=new Set;Jq=class extends Mc.W3CBaggagePropagator{constructor(){super(),$q("SentryPropagator"),this._urlMatchesTargetsMap=new fu(100)}inject(t,n,r){if((0,Mc.isTracingSuppressed)(t)){Yy&&Z.log("[Tracing] Not injecting trace data for url because tracing is suppressed.");return}let i=jt.getSpan(t),s=i&&z6t(i),{tracePropagationTargets:o,propagateTraceparent:a}=ct()?.getOptions()||{};if(!UE(s,o,this._urlMatchesTargetsMap)){Yy&&Z.log("[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:",s);return}let c=q6t(n),u=B6t(n),l=Qd.getBaggage(t)||Qd.createBaggage({}),{dynamicSamplingContext:d,traceId:f,spanId:p,sampled:h}=eje(t);if(c){let m=OE(c);m&&Object.entries(m).forEach(([g,y])=>{!u&&g.startsWith(Up)||(l=l.setEntry(g,{value:y}))})}!u&&d&&(l=Object.entries(d).reduce((m,[g,y])=>y?m.setEntry(`${Up}${g}`,{value:y}):m,l)),!u&&f&&f!==pE&&(r.set(n,Zq,xy(f,p,h)),a&&r.set(n,"traceparent",Oy(f,p,h))),super.inject(Qd.setBaggage(t,l),n,r)}extract(t,n,r){let i=r.get(n,Zq),s=r.get(n,q$),o=i?Array.isArray(i)?i[0]:i:void 0;return nje(tje(t,{sentryTrace:o,baggage:s}))}fields(){return[Zq,q$,"traceparent"]}};mje={1:"cancelled",2:"unknown_error",3:"invalid_argument",4:"deadline_exceeded",5:"not_found",6:"already_exists",7:"permission_denied",8:"resource_exhausted",9:"failed_precondition",10:"aborted",11:"out_of_range",12:"unimplemented",13:"internal_error",14:"unavailable",15:"data_loss",16:"unauthenticated"},n5t=e=>Object.values(mje).includes(e);qFe=1e3,BFe=300,K$=class{constructor(t){this._finishedSpanBucketSize=t?.timeout||BFe,this._finishedSpanBuckets=new Array(this._finishedSpanBucketSize).fill(void 0),this._lastCleanupTimestampInS=Math.floor(Gl()/1e3),this._spansToBucketEntry=new WeakMap,this._sentSpans=new Map,this._debouncedFlush=WX(this.flush.bind(this),1,{maxWait:100})}export(t){let n=Math.floor(Gl()/1e3);if(this._lastCleanupTimestampInS!==n){let o=0;this._finishedSpanBuckets.forEach((a,c)=>{a&&a.timestampInS<=n-this._finishedSpanBucketSize&&(o+=a.spans.size,this._finishedSpanBuckets[c]=void 0)}),o>0&&Yy&&Z.log(`SpanExporter dropped ${o} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`),this._lastCleanupTimestampInS=n}let r=n%this._finishedSpanBucketSize,i=this._finishedSpanBuckets[r]||{timestampInS:n,spans:new Set};this._finishedSpanBuckets[r]=i,i.spans.add(t),this._spansToBucketEntry.set(t,i);let s=hje(t);(!s||this._sentSpans.has(s))&&this._debouncedFlush()}flush(){let t=this._finishedSpanBuckets.flatMap(o=>o?Array.from(o.spans):[]);this._flushSentSpanCache();let n=this._maybeSend(t),r=n.size,i=t.length-r;Yy&&Z.log(`SpanExporter exported ${r} spans, ${i} spans are waiting for their parent spans to finish`);let s=Gl()+BFe*1e3;for(let o of n){this._sentSpans.set(o.spanContext().spanId,s);let a=this._spansToBucketEntry.get(o);a&&a.spans.delete(o)}this._debouncedFlush.cancel()}clear(){this._finishedSpanBuckets=this._finishedSpanBuckets.fill(void 0),this._sentSpans.clear(),this._debouncedFlush.cancel()}_maybeSend(t){let n=$6t(t),r=new Set,i=this._getCompletedRootNodes(n);for(let s of i){let o=s.span;r.add(o);let a=i5t(o);if(s.parentNode&&this._sentSpans.has(s.parentNode.id)){let l=a.contexts?.trace?.data;l&&(l["sentry.parent_span_already_sent"]=!0)}let c=a.spans||[];for(let l of s.children)Y$(l,c,r);a.spans=c.length>qFe?c.sort((l,d)=>l.start_timestamp-d.start_timestamp).slice(0,qFe):c;let u=CE(o.events);u&&(a.measurements=u),uH(a)}return r}_flushSentSpanCache(){let t=Gl();for(let[n,r]of this._sentSpans.entries())r<=t&&this._sentSpans.delete(n)}_nodeIsCompletedRootNodeOrHasSentParent(t){return!!t.span&&(!t.parentNode||this._sentSpans.has(t.parentNode.id))}_getCompletedRootNodes(t){return t.filter(n=>this._nodeIsCompletedRootNodeOrHasSentParent(n))}};Xq=class{constructor(t){$q("SentrySpanProcessor"),this._exporter=new K$(t)}async forceFlush(){this._exporter.flush()}async shutdown(){this._exporter.clear()}onStart(t,n){o5t(t,n)}onEnd(t){a5t(t),this._exporter.export(t)}},Qq=class{constructor(t){this._client=t,$q("SentrySampler")}shouldSample(t,n,r,i,s,o){let a=this._client.getOptions(),c=l5t(t),u=c?.spanContext();if(!Os(a))return RA({decision:void 0,context:t,spanAttributes:s});let l=s[mO]||s[SE];if(i===$r.CLIENT&&l&&(!c||u?.isRemote))return RA({decision:void 0,context:t,spanAttributes:s});let d=c?c5t(c,n,r):void 0;if(!(!c||u?.isRemote))return RA({decision:d?Ky.SamplingDecision.RECORD_AND_SAMPLED:Ky.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s});let{description:p,data:h,op:m}=KFe(r,s,i),g={...h,...s};m&&(g[zt]=m);let y={decision:!0};if(this._client.emit("beforeSampling",{spanAttributes:g,spanName:p,parentSampled:d,parentContext:u},y),!y.decision)return RA({decision:void 0,context:t,spanAttributes:s});let{isolationScope:b}=kA(t)??{},S=u?.traceState?u.traceState.get(Q$):void 0,E=S?ym(S):void 0,_=cl(E?.sample_rand)??Do(),[T,R,A]=ZO(a,{name:p,attributes:g,normalizedRequest:b?.getScopeData().sdkProcessingMetadata.normalizedRequest,parentSampled:d,parentSampleRate:cl(E?.sample_rate)},_),x=`${l}`.toUpperCase();return x==="OPTIONS"||x==="HEAD"?(Yy&&Z.log(`[Tracing] Not sampling span because HTTP method is '${x}' for ${r}`),RA({decision:Ky.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:0})):(!T&&d===void 0&&(Yy&&Z.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),this._client.recordDroppedEvent("sample_rate","transaction")),{...RA({decision:T?Ky.SamplingDecision.RECORD_AND_SAMPLED:Ky.SamplingDecision.NOT_RECORD,context:t,spanAttributes:s,sampleRand:_,downstreamTraceSampleRate:A?R:void 0}),attributes:{[sf]:A?R:void 0}})}toString(){return"SentrySampler"}}});var bje,tee,Eje=v(()=>{bje=Re(HUe(),1);IA();tee=pje(bje.AsyncLocalStorageContextManager)});function nee(){sl.disable(),sl.setLogger({error:Z.error,warn:Z.warn,info:Z.log,debug:Z.log,verbose:Z.log},ho.DEBUG)}var _je=v(()=>{Ce();st()});import*as ree from"node:diagnostics_channel";function f5t(e,t){let n=!1,r;e.on("spawn",()=>{if(e.spawnfile==="/usr/bin/sw_vers"){n=!0;return}r={spawnfile:e.spawnfile},t.includeChildProcessArgs&&(r.spawnargs=e.spawnargs)}).on("exit",i=>{n||(n=!0,i!==null&&i!==0&&Yl({category:"child_process",message:`Child process exited with code '${i}'`,level:i===0?"info":"warning",data:r}))}).on("error",i=>{n||(n=!0,Yl({category:"child_process",message:`Child process errored with '${i.message}'`,level:"error",data:r}))})}function p5t(e,t){let n;e.on("online",()=>{n=e.threadId}).on("error",r=>{t.captureWorkerErrors!==!1?Wt(r,{mechanism:{type:"auto.child_process.worker_thread",handled:!1,data:{threadId:String(n)}}}):Yl({category:"worker_thread",message:`Worker thread errored with '${r.message}'`,level:"error",data:{threadId:n}})})}var d5t,Tje,vje=v(()=>{st();d5t="ChildProcess",Tje=(e={})=>({name:d5t,setup(){ree.channel("child_process").subscribe(t=>{t&&typeof t=="object"&&"process"in t&&f5t(t.process,e)}),ree.channel("worker_threads").subscribe(t=>{t&&typeof t=="object"&&"worker"in t&&p5t(t.worker,e)})}})});import{execFile as h5t}from"node:child_process";import{readFile as m5t,readdir as g5t}from"node:fs";import*as Ho from"node:os";import{join as y5t}from"node:path";import{promisify as Aje}from"node:util";function T5t(e){if(e.app?.app_memory&&(e.app.app_memory=process.memoryUsage().rss),e.app?.free_memory&&typeof process.availableMemory=="function"){let t=process.availableMemory?.();t!=null&&(e.app.free_memory=t)}return e.device?.free_memory&&(e.device.free_memory=Ho.freemem()),e}async function v5t(){let e=Ho.platform();switch(e){case"darwin":return O5t();case"linux":return P5t();default:return{name:k5t[e]||e,version:Ho.release()}}}function R5t(){try{if(typeof process.versions.icu!="string")return;let e=new Date(9e8);if(new Intl.DateTimeFormat("es",{month:"long"}).format(e)==="enero"){let n=Intl.DateTimeFormat().resolvedOptions();return{locale:n.locale,timezone:n.timeZone}}}catch{}}function A5t(){let e=process.memoryUsage().rss,n={app_start_time:new Date(Date.now()-process.uptime()*1e3).toISOString(),app_memory:e};if(typeof process.availableMemory=="function"){let r=process.availableMemory?.();r!=null&&(n.free_memory=r)}return n}function w5t(e){let t={},n;try{n=Ho.uptime()}catch{}if(typeof n=="number"&&(t.boot_time=new Date(Date.now()-n*1e3).toISOString()),t.arch=Ho.arch(),(e===!0||e.memory)&&(t.memory_size=Ho.totalmem(),t.free_memory=Ho.freemem()),e===!0||e.cpu){let r=Ho.cpus(),i=r?.[0];i&&(t.processor_count=r.length,t.cpu_description=i.model,t.processor_frequency=i.speed)}return t}function Yp(e,t){let n=e.exec(t);return n?n[1]:void 0}async function O5t(){let e={kernel_version:Ho.release(),name:"Mac OS X",version:`10.${Number(Ho.release().split(".")[0])-4}`};try{let t=await new Promise((n,r)=>{h5t("/usr/bin/sw_vers",(i,s)=>{if(i){r(i);return}n(s)})});e.name=Yp(/^ProductName:\s+(.*)$/m,t),e.version=Yp(/^ProductVersion:\s+(.*)$/m,t),e.build=Yp(/^BuildVersion:\s+(.*)$/m,t)}catch{}return e}function Rje(e){return e.split(" ")[0].toLowerCase()}async function P5t(){let e={kernel_version:Ho.release(),name:"Linux"};try{let t=await b5t("/etc"),n=I5t.find(a=>t.includes(a.name));if(!n)return e;let r=y5t("/etc",n.name),i=(await S5t(r,{encoding:"utf-8"})).toLowerCase(),{distros:s}=n;e.name=s.find(a=>i.indexOf(Rje(a))>=0)||s[0];let o=Rje(e.name);e.version=x5t[o]?.(i)}catch{}return e}function N5t(){return process.env.VERCEL?{"cloud.provider":"vercel","cloud.region":process.env.VERCEL_REGION}:process.env.AWS_REGION?{"cloud.provider":"aws","cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV}:process.env.GCP_PROJECT?{"cloud.provider":"gcp"}:process.env.ALIYUN_REGION_ID?{"cloud.provider":"alibaba_cloud","cloud.region":process.env.ALIYUN_REGION_ID}:process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME?{"cloud.provider":"azure","cloud.region":process.env.REGION_NAME}:process.env.IBM_CLOUD_REGION?{"cloud.provider":"ibm_cloud","cloud.region":process.env.IBM_CLOUD_REGION}:process.env.TENCENTCLOUD_REGION?{"cloud.provider":"tencent_cloud","cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE}:process.env.NETLIFY?{"cloud.provider":"netlify"}:process.env.FLY_REGION?{"cloud.provider":"fly.io","cloud.region":process.env.FLY_REGION}:process.env.DYNO?{"cloud.provider":"heroku"}:void 0}var S5t,b5t,E5t,_5t,wje,k5t,I5t,x5t,kje=v(()=>{S5t=Aje(m5t),b5t=Aje(g5t),E5t="Context",_5t=((e={})=>{let t,n={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...e};async function r(s){t===void 0&&(t=i());let o=T5t(await t);return s.contexts={...s.contexts,app:{...o.app,...s.contexts?.app},os:{...o.os,...s.contexts?.os},device:{...o.device,...s.contexts?.device},culture:{...o.culture,...s.contexts?.culture},cloud_resource:{...o.cloud_resource,...s.contexts?.cloud_resource}},s}async function i(){let s={};if(n.os&&(s.os=await v5t()),n.app&&(s.app=A5t()),n.device&&(s.device=w5t(n.device)),n.culture){let o=R5t();o&&(s.culture=o)}return n.cloudResource&&(s.cloud_resource=N5t()),s}return{name:E5t,processEvent(s){return r(s)}}}),wje=_5t;k5t={aix:"IBM AIX",freebsd:"FreeBSD",openbsd:"OpenBSD",sunos:"SunOS",win32:"Windows",ohos:"OpenHarmony",android:"Android"},I5t=[{name:"fedora-release",distros:["Fedora"]},{name:"redhat-release",distros:["Red Hat Linux","Centos"]},{name:"redhat_version",distros:["Red Hat Linux"]},{name:"SuSE-release",distros:["SUSE Linux"]},{name:"lsb-release",distros:["Ubuntu Linux","Arch Linux"]},{name:"debian_version",distros:["Debian"]},{name:"debian_release",distros:["Debian"]},{name:"arch-release",distros:["Arch Linux"]},{name:"gentoo-release",distros:["Gentoo Linux"]},{name:"novell-release",distros:["SUSE Linux"]},{name:"alpine-release",distros:["Alpine Linux"]}],x5t={alpine:e=>e,arch:e=>Yp(/distrib_release=(.*)/,e),centos:e=>Yp(/release ([^ ]+)/,e),debian:e=>e,fedora:e=>Yp(/release (..)/,e),mint:e=>Yp(/distrib_release=(.*)/,e),red:e=>Yp(/release ([^ ]+)/,e),suse:e=>Yp(/VERSION = (.*)\n/,e),ubuntu:e=>Yp(/distrib_release=(.*)/,e)}});import{createReadStream as C5t}from"node:fs";import{createInterface as M5t}from"node:readline";function j5t(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function H5t(e){return!!(e.startsWith("node:")||e.endsWith(".min.js")||e.endsWith(".min.cjs")||e.endsWith(".min.mjs")||e.startsWith("data:"))}function q5t(e){return e.lineno!==void 0&&e.lineno>F5t||e.colno!==void 0&&e.colno>U5t}function B5t(e,t){let n=iee.get(e);if(n===void 0)return!1;for(let r=t[0];r<=t[1];r++)if(n[r]===void 0)return!1;return!0}function z5t(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!="number")return[];let i=xje(r,t),s=[];for(;;){if(n===e.length-1){s.push(i);break}let o=e[n+1];if(typeof o!="number")break;o<=i[1]?i[1]=o+t:(s.push(i),i=xje(o,t)),n++}return s}function G5t(e,t,n){return new Promise((r,i)=>{let s=C5t(e),o=M5t({input:s});function a(){s.destroy(),r()}let c=0,u=0,l=t[u];if(l===void 0){a();return}let d=l[0],f=l[1];function p(h){Oje.set(e,1),Qt&&Z.error(`Failed to read file: ${e}. Error: ${h}`),o.close(),o.removeAllListeners(),a()}s.on("error",p),o.on("error",p),o.on("close",a),o.on("line",h=>{if(c++,!(c=f)){if(u===t.length-1){o.close(),o.removeAllListeners();return}u++;let m=t[u];if(m===void 0){o.close(),o.removeAllListeners();return}d=m[0],f=m[1]}})})}async function V5t(e,t){let n={};if(t>0&&e.exception?.values){for(let s of e.exception.values)if(s.stacktrace?.frames?.length)for(let o=s.stacktrace.frames.length-1;o>=0;o--){let a=s.stacktrace.frames[o],c=a?.filename;if(!a||typeof c!="string"||typeof a.lineno!="number"||H5t(c)||q5t(a))continue;n[c]||(n[c]=[]),n[c].push(a.lineno)}}let r=Object.keys(n);if(r.length==0)return e;let i=[];for(let s of r){if(Oje.get(s))continue;let o=n[s];if(!o)continue;o.sort((u,l)=>u-l);let a=z5t(o,t);if(a.every(u=>B5t(s,u)))continue;let c=j5t(iee,s,{});i.push(G5t(s,a,c))}if(await Promise.all(i).catch(()=>{Qt&&Z.log("Failed to read one or more source files and resolve context lines")}),t>0&&e.exception?.values)for(let s of e.exception.values)s.stacktrace?.frames&&s.stacktrace.frames.length>0&&W5t(s.stacktrace.frames,t,iee);return e}function W5t(e,t,n){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno=="number"){let i=n.get(r.filename);if(i===void 0)continue;K5t(r.lineno,r,t,i)}}function Ije(e){delete e.pre_context,delete e.context_line,delete e.post_context}function K5t(e,t,n,r){if(t.lineno===void 0||r===void 0){Qt&&Z.error("Cannot resolve context for frame with no lineno or file contents");return}t.pre_context=[];for(let s=Pje(e,n);s{st();ff();iee=new fu(10),Oje=new fu(20),D5t=7,L5t="ContextLines",U5t=1e3,F5t=1e4;Y5t=((e={})=>{let t=e.frameContextLines!==void 0?e.frameContextLines:D5t;return{name:L5t,processEvent(n){return V5t(n,t)}}}),Cje=Y5t});async function tB(){if(eB===void 0)try{eB=!!(await import("node:inspector")).url()}catch{eB=!1}return eB}var eB,see=v(()=>{});function Lje(e,t,n){let r=0,i=5,s=0;return setInterval(()=>{s===0?r>e&&(i*=2,n(i),i>86400&&(i=86400),s=i):(s-=1,s===0&&t()),r=0},1e3).unref(),()=>{r+=1}}function Dje(e){return e!==void 0&&(e.length===0||e==="?"||e==="")}function nB(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||Dje(e)&&Dje(t)}var NP,oee=v(()=>{NP="__SENTRY_ERROR_LOCAL_VARIABLES__"});import{Worker as Z5t}from"node:worker_threads";function Uje(...e){Z.log("[LocalVariables]",...e)}var J5t,Fje,jje=v(()=>{st();see();oee();J5t="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=";Fje=((e={})=>{function t(s,o){let a=(s.stacktrace?.frames||[]).filter(c=>c.function!=="new Promise");for(let c=0;c{o.terminate()}),o.once("error",a=>{Uje("Worker error",a)}),o.once("exit",a=>{Uje("Worker exit",a)}),o.unref()}return{name:"LocalVariablesAsync",async setup(s){if(!s.getOptions().includeLocalVariables)return;if(await tB()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}let a={...e,debug:Z.isEnabled()};r().then(()=>{try{i(a)}catch(c){Z.error("Failed to start worker",c)}},c=>{Z.error("Failed to start inspector",c)})},processEvent(s,o){return n(s,o)}}})});function Hje(e){if(e!==void 0)return e.slice(-10).reduce((t,n)=>`${t},${n.function},${n.lineno},${n.colno}`,"")}function X5t(e,t){if(t!==void 0)return Hje(e(t,1))}function qje(e){let t=[],n=!1;function r(o){t=[],!n&&(n=!0,e(o))}t.push(r);function i(o){t.push(o)}function s(o){let a=t.pop()||r;try{a(o)}catch{r(o)}}return{add:i,next:s}}var aee,Q5t,$5t,Bje,zje=v(()=>{st();fA();see();oee();aee=class e{constructor(t){this._session=t}static async create(t){if(t)return t;let n=await import("node:inspector");return new e(new n.Session)}configureAndConnect(t,n){this._session.connect(),this._session.on("Debugger.paused",r=>{t(r,()=>{this._session.post("Debugger.resume")})}),this._session.post("Debugger.enable"),this._session.post("Debugger.setPauseOnExceptions",{state:n?"all":"uncaught"})}setPauseOnExceptions(t){this._session.post("Debugger.setPauseOnExceptions",{state:t?"all":"uncaught"})}getLocalVariables(t,n){this._getProperties(t,r=>{let{add:i,next:s}=qje(n);for(let o of r)if(o.value?.objectId&&o.value.className==="Array"){let a=o.value.objectId;i(c=>this._unrollArray(a,o.name,c,s))}else if(o.value?.objectId&&o.value.className==="Object"){let a=o.value.objectId;i(c=>this._unrollObject(a,o.name,c,s))}else o.value&&i(a=>this._unrollOther(o,a,s));s({})})}_getProperties(t,n){this._session.post("Runtime.getProperties",{objectId:t,ownProperties:!0},(r,i)=>{n(r?[]:i.result)})}_unrollArray(t,n,r,i){this._getProperties(t,s=>{r[n]=s.filter(o=>o.name!=="length"&&!isNaN(parseInt(o.name,10))).sort((o,a)=>parseInt(o.name,10)-parseInt(a.name,10)).map(o=>o.value?.value),i(r)})}_unrollObject(t,n,r,i){this._getProperties(t,s=>{r[n]=s.map(o=>[o.name,o.value?.value]).reduce((o,[a,c])=>(o[a]=c,o),{}),i(r)})}_unrollOther(t,n,r){t.value&&("value"in t.value?t.value.value===void 0||t.value.value===null?n[t.name]=`<${t.value.value}>`:n[t.name]=t.value.value:"description"in t.value&&t.value.type!=="function"?n[t.name]=`<${t.value.description}>`:t.value.type==="undefined"&&(n[t.name]="")),r(n)}},Q5t="LocalVariables",$5t=((e={},t)=>{let n=new fu(20),r,i=!1;function s(u){let l=Hje(u.stacktrace?.frames);if(l===void 0)return;let d=n.remove(l);if(d===void 0)return;let f=(u.stacktrace?.frames||[]).filter(p=>p.function!=="new Promise");for(let p=0;p= v18.");return}if(await tB()){Z.warn("Local variables capture has been disabled because the debugger was already enabled");return}try{let f=await aee.create(t),p=(m,{params:{reason:g,data:y,callFrames:b}},S)=>{if(g!=="exception"&&g!=="promiseRejection"){S();return}r?.();let E=X5t(m,y.description);if(E==null){S();return}let{add:_,next:T}=qje(R=>{n.set(E,R),S()});for(let R=0;RC.type==="local"),N=k.className==="global"||!k.className?x:`${k.className}.${x}`;if(P?.object.objectId===void 0)_(C=>{C[R]={function:N},T(C)});else{let C=P.object.objectId;_(L=>f.getLocalVariables(C,G=>{L[R]={function:N,vars:G},T(L)}))}}T([])},h=e.captureAllExceptions!==!1;if(f.configureAndConnect((m,g)=>p(l.stackParser,m,g),h),h){let m=e.maxExceptionsPerSecond||50;r=Lje(m,()=>{Z.log("Local variables rate-limit lifted."),f.setPauseOnExceptions(!0)},g=>{Z.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${g} seconds.`),f.setPauseOnExceptions(!1)})}i=!0}catch(f){Z.log("The `LocalVariables` integration failed to start.",f)}}return{name:Q5t,setupOnce(){a=c()},async processEvent(u){return await a,i?o(u):u},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}}),Bje=$5t});var Gje,Vje=v(()=>{fA();jje();zje();Gje=(e={})=>pf.major<19?Bje(e):Fje(e)});function CP(){try{return typeof module<"u"&&typeof module.exports<"u"}catch{return!1}}function Kje(){return CP()?!1:Am>=21||Am===20&&TP>=6||Am===18&&TP>=19?!0:(Wje||(Wje=!0,xs(()=>{console.warn(`[Sentry] You are using Node.js v${process.versions.node} in ESM mode ("import syntax"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS ("require() syntax"), or upgrade your Node.js version.`)})),!1)}var Wje,rB=v(()=>{st();fA()});import{existsSync as e8t,readFileSync as Zje}from"node:fs";import{dirname as t8t,join as Jje}from"node:path";function s8t(){try{return K.cache?Object.keys(K.cache):[]}catch{return[]}}function o8t(){return{...r8t,...u8t(),...CP()?a8t():{}}}function a8t(){let e=K.main?.paths||[],t=s8t(),n={},r=new Set;return t.forEach(i=>{let s=i,o=()=>{let a=s;if(s=t8t(a),!s||a===s||r.has(a))return;if(e.indexOf(s)<0)return o();let c=Jje(a,"package.json");if(r.add(a),!e8t(c))return o();try{let u=JSON.parse(Zje(c,"utf8"));n[u.name]=u.version}catch{}};o()}),n}function Yje(){return cee||(cee=o8t()),cee}function c8t(){try{let e=Jje(process.cwd(),"package.json");return JSON.parse(Zje(e,"utf8"))}catch{return{}}}function u8t(){let e=c8t();return{...e.dependencies,...e.devDependencies}}var cee,n8t,r8t,i8t,Xje,Qje=v(()=>{rB();n8t="Modules",r8t=typeof __SENTRY_SERVER_MODULES__>"u"?{}:__SENTRY_SERVER_MODULES__,i8t=(()=>({name:n8t,processEvent(e){return e.modules={...e.modules,...Yje()},e},getModules:Yje})),Xje=i8t});function MP(e){xs(()=>{console.error(e)});let t=ct();if(t===void 0){Qt&&Z.warn("No NodeClient was defined, we are exiting the process now."),global.process.exit(1);return}let n=t.getOptions(),r=n?.shutdownTimeout&&n.shutdownTimeout>0?n.shutdownTimeout:l8t;t.close(r).then(i=>{i||Qt&&Z.warn("We reached the timeout for emptying the request buffer, still exiting now!"),global.process.exit(1)},i=>{Qt&&Z.error(i)})}var l8t,uee=v(()=>{st();ff();l8t=2e3});import{isMainThread as d8t}from"worker_threads";function p8t(e,t){let r=!1,i=!1,s=!1,o,a=e.getOptions();return Object.assign(c=>{let u=MP;t.onFatalError?u=t.onFatalError:a.onFatalError&&(u=a.onFatalError);let d=global.process.listeners("uncaughtException").filter(p=>p.name!=="domainUncaughtExceptionClear"&&p.tag!=="sentry_tracingErrorCallback"&&p._errorHandler!==!0).length===0,f=t.exitEvenIfOtherHandlersAreRegistered||d;r?f&&(s?(Qt&&Z.warn("uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown"),MP(c)):i||(i=!0,setTimeout(()=>{s||(s=!0,u(o,c))},2e3))):(o=c,r=!0,ct()===e&&Wt(c,{originalException:c,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"auto.node.onuncaughtexception"}}),!s&&f&&(s=!0,u(c)))},{_errorHandler:!0})}var f8t,$je,eHe=v(()=>{st();ff();uee();f8t="OnUncaughtException",$je=(e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:f8t,setup(n){d8t&&global.process.on("uncaughtException",p8t(n,t))}}}});function y8t(e){if(typeof e!="object"||e===null)return{name:"",message:String(e??"")};let t=e,n=typeof t.name=="string"?t.name:"",r=typeof t.message=="string"?t.message:String(e);return{name:n,message:r}}function S8t(e,t){let n=e.name===void 0||pm(t.name,e.name,!0),r=e.message===void 0||pm(t.message,e.message);return n&&r}function b8t(e,t){let n=y8t(t);return e.some(r=>S8t(r,n))}function E8t(e,t){return function(r,i){if(ct()!==e||b8t(t.ignore??[],r))return;let s=t.mode==="strict"?"fatal":"error",o=r&&typeof r=="object"?r._sentry_active_span:void 0;(o?c=>WR(o,c):c=>c())(()=>{Wt(r,{originalException:i,captureContext:{extra:{unhandledPromiseRejection:!0},level:s},mechanism:{handled:!1,type:"auto.node.onunhandledrejection"}})}),_8t(r,t.mode)}}function _8t(e,t){let n="This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:";t==="warn"?xs(()=>{console.warn(n),console.error(e&&typeof e=="object"&&"stack"in e?e.stack:e)}):t==="strict"&&(xs(()=>{console.warn(n)}),MP(e))}var h8t,m8t,g8t,tHe,nHe=v(()=>{st();uee();h8t="OnUnhandledRejection",m8t=[{name:"AI_NoOutputGeneratedError"},{name:"AbortError"}],g8t=((e={})=>{let t={mode:e.mode??"warn",ignore:[...m8t,...e.ignore??[]]};return{name:h8t,setup(n){global.process.on("unhandledRejection",E8t(n,t))}}}),tHe=g8t});var T8t,rHe,iHe=v(()=>{st();T8t="ProcessSession",rHe=()=>({name:T8t,setupOnce(){dH(),process.on("beforeExit",()=>{vn().getSession()?.status!=="ok"&&QO()})}})});import*as sHe from"node:http";function R8t(e,t){let n=A8t(t.sidecarUrl);if(!n)return;let r=0;e.on("beforeEnvelope",i=>{if(r>3){Z.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests");return}let s=WO(i);KR(()=>{let o=sHe.request({method:"POST",path:n.pathname,hostname:n.hostname,port:n.port,headers:{"Content-Type":"application/x-sentry-envelope"}},a=>{a.statusCode&&a.statusCode>=200&&a.statusCode<400&&(r=0),a.on("data",()=>{}),a.on("end",()=>{}),a.setEncoding("utf8")});o.on("error",()=>{r++,Z.warn("[Spotlight] Failed to send envelope to Spotlight Sidecar")}),o.write(s),o.end()})})}function A8t(e){try{return new URL(`${e}`)}catch{Z.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}var lee,v8t,oHe,aHe=v(()=>{st();lee="Spotlight",v8t=((e={})=>{let t={sidecarUrl:e.sidecarUrl||"http://localhost:8969/stream"};return{name:lee,setup(n){try{process.env.NODE_ENV&&process.env.NODE_ENV!=="development"&&Z.warn("[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?")}catch{}R8t(n,t)}}}),oHe=v8t});import*as cHe from"node:util";function k8t(e){return!(e instanceof Error)||!("errno"in e)||typeof e.errno!="number"?!1:cHe.getSystemErrorMap().has(e.errno)}var w8t,uHe,lHe=v(()=>{w8t="NodeSystemError";uHe=(e={})=>({name:w8t,processEvent:(t,n,r)=>{if(!k8t(n.originalException))return t;let i=n.originalException,s={...i};!r.getOptions().sendDefaultPii&&e.includePaths!==!0&&(delete s.path,delete s.dest),t.contexts={...t.contexts,node_system_error:s};for(let o of t.exception?.values||[])o.value&&(i.path&&o.value.includes(i.path)&&(o.value=o.value.replace(`'${i.path}'`,"").trim()),i.dest&&o.value.includes(i.dest)&&(o.value=o.value.replace(`'${i.dest}'`,"").trim()));return t}})});import*as dee from"node:http";var Zp,iB,dHe=v(()=>{Zp=Symbol("AgentBaseInternalState"),iB=class extends dee.Agent{constructor(t){super(t),this[Zp]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:n}=new Error;return typeof n!="string"?!1:n.split(` +`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}createSocket(t,n,r){let i={...n,secureEndpoint:this.isSecureEndpoint(n)};Promise.resolve().then(()=>this.connect(t,i)).then(s=>{if(s instanceof dee.Agent)return s.addRequest(t,i);this[Zp].currentSocket=s,super.createSocket(t,n,r)},r)}createConnection(){let t=this[Zp].currentSocket;if(this[Zp].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Zp].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Zp]&&(this[Zp].defaultPort=t)}get protocol(){return this[Zp].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Zp]&&(this[Zp].protocol=t)}}});function sB(...e){Z.log("[https-proxy-agent:parse-proxy-response]",...e)}function fHe(e){return new Promise((t,n)=>{let r=0,i=[];function s(){let l=e.read();l?u(l):e.once("readable",s)}function o(){e.removeListener("end",a),e.removeListener("error",c),e.removeListener("readable",s)}function a(){o(),sB("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function c(l){o(),sB("onerror %o",l),n(l)}function u(l){i.push(l),r+=l.length;let d=Buffer.concat(i,r),f=d.indexOf(`\r \r -`);if(f===-1){rB("have not received end of HTTP headers yet..."),s();return}let p=d.subarray(0,f).toString("ascii").split(`\r -`),h=p.shift();if(!h)return e.destroy(),n(new Error("No header received from proxy CONNECT response"));let m=h.split(" "),g=+(m[1]||0),y=m.slice(2).join(" "),b={};for(let S of p){if(!S)continue;let E=S.indexOf(":");if(E===-1)return e.destroy(),n(new Error(`Invalid header from proxy CONNECT response: "${S}"`));let _=S.slice(0,E).toLowerCase(),T=S.slice(E+1).trimStart(),R=b[_];typeof R=="string"?b[_]=[R,T]:Array.isArray(R)?R.push(T):b[_]=T}rB("got proxy server response: %o %o",h,b),o(),t({connect:{statusCode:g,statusText:y,headers:b},buffered:d})}e.on("error",c),e.on("end",a),s()})}var fHe=v(()=>{st()});import*as Im from"node:net";import*as dee from"node:tls";function MP(...e){Z.log("[https-proxy-agent]",...e)}function I8t(e){e.resume()}function pHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var DP,hHe=v(()=>{st();lHe();fHe();DP=class extends nB{static __initStatic(){this.protocols=["http","https"]}constructor(t,n){super(n),this.options={},this.proxy=typeof t=="string"?new URL(t):t,this.proxyHeaders=n?.headers??{},MP("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let r=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),i=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...n?pHe(n,"headers"):null,host:r,port:i}}async connect(t,n){let{proxy:r}=this;if(!n.host)throw new TypeError('No "host" provided');let i;if(r.protocol==="https:"){MP("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=dee.connect({...this.connectOpts,servername:f&&Im.isIP(f)?void 0:f})}else MP("Creating `net.Socket`: %o",this.connectOpts),i=Im.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=Im.isIPv6(n.host)?`[${n.host}]`:n.host,a=`CONNECT ${o}:${n.port} HTTP/1.1\r +`);if(f===-1){sB("have not received end of HTTP headers yet..."),s();return}let p=d.subarray(0,f).toString("ascii").split(`\r +`),h=p.shift();if(!h)return e.destroy(),n(new Error("No header received from proxy CONNECT response"));let m=h.split(" "),g=+(m[1]||0),y=m.slice(2).join(" "),b={};for(let S of p){if(!S)continue;let E=S.indexOf(":");if(E===-1)return e.destroy(),n(new Error(`Invalid header from proxy CONNECT response: "${S}"`));let _=S.slice(0,E).toLowerCase(),T=S.slice(E+1).trimStart(),R=b[_];typeof R=="string"?b[_]=[R,T]:Array.isArray(R)?R.push(T):b[_]=T}sB("got proxy server response: %o %o",h,b),o(),t({connect:{statusCode:g,statusText:y,headers:b},buffered:d})}e.on("error",c),e.on("end",a),s()})}var pHe=v(()=>{st()});import*as Im from"node:net";import*as fee from"node:tls";function DP(...e){Z.log("[https-proxy-agent]",...e)}function I8t(e){e.resume()}function hHe(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}var LP,mHe=v(()=>{st();dHe();pHe();LP=class extends iB{static __initStatic(){this.protocols=["http","https"]}constructor(t,n){super(n),this.options={},this.proxy=typeof t=="string"?new URL(t):t,this.proxyHeaders=n?.headers??{},DP("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let r=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),i=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...n?hHe(n,"headers"):null,host:r,port:i}}async connect(t,n){let{proxy:r}=this;if(!n.host)throw new TypeError('No "host" provided');let i;if(r.protocol==="https:"){DP("Creating `tls.Socket`: %o",this.connectOpts);let f=this.connectOpts.servername||this.connectOpts.host;i=fee.connect({...this.connectOpts,servername:f&&Im.isIP(f)?void 0:f})}else DP("Creating `net.Socket`: %o",this.connectOpts),i=Im.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=Im.isIPv6(n.host)?`[${n.host}]`:n.host,a=`CONNECT ${o}:${n.port} HTTP/1.1\r `;if(r.username||r.password){let f=`${decodeURIComponent(r.username)}:${decodeURIComponent(r.password)}`;s["Proxy-Authorization"]=`Basic ${Buffer.from(f).toString("base64")}`}s.Host=`${o}:${n.port}`,s["Proxy-Connection"]||(s["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let f of Object.keys(s))a+=`${f}: ${s[f]}\r -`;let c=dHe(i);i.write(`${a}\r -`);let{connect:u,buffered:l}=await c;if(t.emit("proxyConnect",u),this.emit("proxyConnect",u,t),u.statusCode===200){if(t.once("socket",I8t),n.secureEndpoint){MP("Upgrading socket connection to TLS");let f=n.servername||n.host;return dee.connect({...pHe(n,"host","path","port"),socket:i,servername:Im.isIP(f)?void 0:f})}return i}i.destroy();let d=new Im.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{MP("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};DP.__initStatic()});import*as x8t from"node:http";import*as O8t from"node:https";import{Readable as P8t}from"node:stream";import{createGzip as N8t}from"node:zlib";function M8t(e){return new P8t({read(){this.push(e),this.push(null)}})}function mHe(e){let t;try{t=new URL(e.url)}catch{return xs(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),eP(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=D8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?O8t:x8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new DP(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=L8t(e,e.httpModule??i,o);return eP(e,a)}function D8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function L8t(e,t,n){let{hostname:r,pathname:i,port:s,protocol:o,search:a}=new URL(e.url);return function(u){return new Promise((l,d)=>{KR(()=>{let f=M8t(u.body),p={...e.headers};u.body.length>C8t&&(p["content-encoding"]="gzip",f=f.pipe(N8t()));let h=r.startsWith("["),m=t.request({method:"POST",agent:n,headers:p,hostname:h?r.slice(1,-1):r,path:`${i}${a}`,port:s,protocol:o,ca:e.caCerts},g=>{g.on("data",()=>{}),g.on("end",()=>{}),g.setEncoding("utf8");let y=g.headers["retry-after"]??null,b=g.headers["x-sentry-rate-limits"]??null;l({statusCode:g.statusCode,headers:{"retry-after":y,"x-sentry-rate-limits":Array.isArray(b)?b[0]||null:b}})});m.on("error",d),f.pipe(m)})})}}var C8t,gHe=v(()=>{st();hHe();C8t=1024*32});function yHe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=$R(process.env.SENTRY_SPOTLIGHT,{strict:!0}),n=t===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return e===!0?n??!0:t??n}var SHe=v(()=>{st()});import{posix as U8t,sep as F8t}from"node:path";function bHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function EHe(e=process.argv[1]?JX(process.argv[1]):process.cwd(),t=F8t==="\\"){let n=t?bHe(e):e;return r=>{if(!r)return;let i=t?bHe(r):r,{dir:s,base:o,ext:a}=U8t.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(o=o.slice(0,a.length*-1));let c=decodeURIComponent(o);s||(s=".");let u=s.lastIndexOf("/node_modules");if(u>-1)return`${s.slice(u+14).replace(/\//g,".")}:${c}`;if(s.startsWith(n)){let l=s.slice(n.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}var _He=v(()=>{st()});function THe(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(qt.SENTRY_RELEASE?.id)return qt.SENTRY_RELEASE.id;let t=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,n=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,r=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return t||n||r||e}var vHe,RHe=v(()=>{st();_He();vHe=xj(UQ(EHe()))});import*as AHe from"node:os";import{threadId as j8t,isMainThread as H8t}from"worker_threads";var wHe,q8t,iB,kHe=v(()=>{Ce();wHe=Re(Jt(),1);st();IA();ff();q8t=6e4,iB=class extends tP{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||AHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,wHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),LE(r,"node"),Z.log(`Initializing Sentry: process: ${process.pid}, thread: ${H8t?"main":`worker-${j8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{XR(this)},n&&this.on("beforeCaptureLog",i=>{i.attributes={...i.attributes,"server.address":n}}),process.on("beforeExit",this._logOnExitFlushListener))}get tracer(){if(this._tracer)return this._tracer;let t="@sentry/node",n=Nn,r=jt.getTracer(t,n);return this._tracer=r,r}async flush(t){return await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports&&this._flushOutcomes(),super.flush(t)}async close(t){this._clientReportInterval&&clearInterval(this._clientReportInterval),this._clientReportOnExitFlushListener&&process.off("beforeExit",this._clientReportOnExitFlushListener),this._logOnExitFlushListener&&process.off("beforeExit",this._logOnExitFlushListener);let n=await super.close(t);return this.traceProvider&&await this.traceProvider.shutdown(),n}startClientReportTracking(){let t=this.getOptions();t.sendClientReports&&(this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{Qt&&Z.log("Flushing client reports based on interval."),this._flushOutcomes()},t.clientReportFlushInterval??q8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){BX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?cje(this,t):[void 0,void 0]}}});import*as xHe from"module";function fee(){if(Wje()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,IHe.createAddHookMessageChannel)();xHe.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:e,include:[]},transferList:[e]})}catch(e){Z.warn("Failed to register 'import-in-the-middle' hook",e)}}}var IHe,OHe=v(()=>{st();IHe=Re(hJ(),1);tB()});function sB(){return[bH(),yH(),EH(),_H(),cHe(),eQ(),vH(),IUe(),DUe(),Qje(),eHe(),Nje(),zje(),Aje(),_je(),nHe(),Jje()]}function pee(e={}){return B8t(e,sB)}function B8t(e={},t){let n=z8t(e,t);n.debug===!0&&(Qt?Z.enable():xs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),n.registerEsmLoaderHooks!==!1&&fee(),dje(),Un().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===uee)&&n.integrations.push(sHe({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),LE(n,"node-core");let i=new iB(n);return Un().setClient(i),i.init(),Z.log(`SDK initialized from ${NP()?"CommonJS":"ESM"}`),i.startClientReportTracking(),W8t(),YFe(i),lje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function hee(){if(!Qt)return;let e=QFe(),t=["SentryContextManager","SentryPropagator"];Os()&&t.push("SentrySpanProcessor");for(let n of t)e.includes(n)||Z.error(`You have to set up the ${n}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);e.includes("SentrySampler")||Z.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function z8t(e,t){let n=G8t(e.release),r=yHe(e.spotlight),i=V8t(e.tracesSampleRate),s={...e,dsn:e.dsn??process.env.SENTRY_DSN,environment:e.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:e.sendClientReports??!0,transport:e.transport??mHe,stackParser:xJ(e.stackParser||vHe),release:n,tracesSampleRate:i,spotlight:r,debug:$R(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:xX({defaultIntegrations:a,integrations:o})}}function G8t(e){if(e!==void 0)return e;let t=THe();if(t!==void 0)return t}function V8t(e){if(e!==void 0)return e;let t=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!t)return;let n=parseFloat(t);return isFinite(n)?n:void 0}function W8t(){if($R(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=jO(e,t);Un().setPropagationContext(n)}}var PHe=v(()=>{st();IA();ff();Tje();wje();Cje();xUe();Gje();Xje();LUe();$je();tHe();rHe();oHe();uHe();gHe();tB();SHe();RHe();kHe();OHe()});function Dr(e,t){e.setAttribute(At,t)}var NHe=v(()=>{st()});function LP(e){let t=e.protocol||"",n=e.hostname||e.host||"",r=!e.port||e.port===80||e.port===443||/^(.*):(\d+)$/.test(n)?"":`:${e.port}`,i=e.path?e.path:"/";return`${t}//${n}${r}${i}`}var CHe=v(()=>{});var sr=v(()=>{qQ();KH();VQ();ZQ();bje();Eje();VH();PHe();NHe();CHe();fA()});function Z8t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&oB)}function J8t(e={}){return{disableOutgoingRequestInstrumentation:oB,ignoreOutgoingRequestHook:n=>{let r=LP(n);if(!r)return!1;let i=e.ignoreOutgoingRequests;return!!i?.(r,n)},requireParentforOutgoingSpans:!1,requestHook:(n,r)=>{Dr(n,"auto.http.otel.http");let i=LP(r);if(i.startsWith("data:")){let s=eA(i);n.setAttribute("http.url",s),n.setAttribute(Iy,s),n.updateName(`${r.method||"GET"} ${s}`)}e.instrumentation?.requestHook?.(n,r)},responseHook:(n,r)=>{e.instrumentation?.responseHook?.(n,r)},applyCustomAttributesOnSpan:(n,r,i)=>{e.instrumentation?.applyCustomAttributesOnSpan?.(n,r,i)}}}var DHe,mee,MHe,oB,K8t,Y8t,LHe,UHe=v(()=>{Ce();DHe=Re(_Ce(),1);st();sr();mee="Http",MHe="@opentelemetry_sentry-patched/instrumentation-http",oB=pf.major===22&&pf.minor>=12||pf.major===23&&pf.minor>=2||pf.major>=24,K8t=rt(`${mee}.sentry`,e=>new GE(e)),Y8t=rt(mee,e=>{let t=new DHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=sl.createComponentLogger({namespace:MHe}),t.instrumentationName=MHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});LHe=(e={})=>{let t=e.spans??!0,n=e.disableIncomingRequestSpans,r={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},i={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes,instrumentation:e.instrumentation,onSpanCreated:e.incomingRequestSpanHook},s=yP(r),o=SP(i),a=t&&!n;return{name:mee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=Z8t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:oB||!u,createSpansForOutgoingRequests:oB,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=LP(f);if(p.startsWith("data:")){let h=eA(p);d.setAttribute("http.url",h),d.setAttribute(Iy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(K8t(l),u){let d=J8t(e);Y8t(d)}},processEvent(c){return o.processEvent(c)}}}});var FHe=w(xA=>{"use strict";Object.defineProperty(xA,"__esModule",{value:!0});xA.PACKAGE_NAME=xA.PACKAGE_VERSION=void 0;xA.PACKAGE_VERSION="0.24.0";xA.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var HHe=w(cB=>{"use strict";Object.defineProperty(cB,"__esModule",{value:!0});cB.UndiciInstrumentation=void 0;var gee=K("diagnostics_channel"),X8t=K("url"),UP=Jt(),pl=(Ce(),ke(Ze)),aB=fr(),Vs=(Pn(),ke(Mr)),jHe=FHe(),yee=class extends UP.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(jHe.PACKAGE_NAME,jHe.PACKAGE_VERSION,t)}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs.length=0}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this.subscribeToChannel("undici:request:create",this.onRequestCreated.bind(this)),this.subscribeToChannel("undici:client:sendHeaders",this.onRequestHeaders.bind(this)),this.subscribeToChannel("undici:request:headers",this.onResponseHeaders.bind(this)),this.subscribeToChannel("undici:request:trailers",this.onDone.bind(this)),this.subscribeToChannel("undici:request:error",this.onError.bind(this)))}_updateMetricInstruments(){this._httpClientDurationHistogram=this.meter.createHistogram(Vs.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Measures the duration of outbound HTTP requests.",unit:"s",valueType:pl.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}subscribeToChannel(t,n){let[r,i]=process.version.replace("v","").split(".").map(a=>Number(a)),s=r>18||r===18&&i>=19,o;if(s)gee.subscribe?.(t,n),o=()=>gee.unsubscribe?.(t,n);else{let a=gee.channel(t);a.subscribe(n),o=()=>a.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:o})}parseRequestHeaders(t){let n=new Map;if(Array.isArray(t.headers))for(let r=0;r!r||t.method==="CONNECT"||n.ignoreRequestHook?.(t),T=>T&&this._diag.error("caught ignoreRequestHook error: ",T),!0))return;let s=(0,aB.hrTime)(),o;try{o=new X8t.URL(t.path,t.origin)}catch(T){this._diag.warn("could not determine url.full:",T);return}let a=o.protocol.replace(":",""),c=this.getRequestMethod(t.method),u={[Vs.ATTR_HTTP_REQUEST_METHOD]:c,[Vs.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]:t.method,[Vs.ATTR_URL_FULL]:o.toString(),[Vs.ATTR_URL_PATH]:o.pathname,[Vs.ATTR_URL_QUERY]:o.search,[Vs.ATTR_URL_SCHEME]:a},l={https:"443",http:"80"},d=o.hostname,f=o.port||l[a];u[Vs.ATTR_SERVER_ADDRESS]=d,f&&!isNaN(Number(f))&&(u[Vs.ATTR_SERVER_PORT]=Number(f));let h=this.parseRequestHeaders(t).get("user-agent");if(h){let T=Array.isArray(h)?h[h.length-1]:h;u[Vs.ATTR_USER_AGENT_ORIGINAL]=T}let m=(0,UP.safeExecuteInTheMiddle)(()=>n.startSpanHook?.(t),T=>T&&this._diag.error("caught startSpanHook error: ",T),!0);m&&Object.entries(m).forEach(([T,R])=>{u[T]=R});let g=pl.context.active(),y=pl.trace.getSpan(g),b;n.requireParentforSpans&&(!y||!pl.trace.isSpanContextValid(y.spanContext()))?b=pl.trace.wrapSpanContext(pl.INVALID_SPAN_CONTEXT):b=this.tracer.startSpan(c==="_OTHER"?"HTTP":c,{kind:pl.SpanKind.CLIENT,attributes:u},g),(0,UP.safeExecuteInTheMiddle)(()=>n.requestHook?.(b,t),T=>T&&this._diag.error("caught requestHook error: ",T),!0);let S=pl.trace.setSpan(pl.context.active(),b),E={};pl.propagation.inject(S,E);let _=Object.entries(E);for(let T=0;T<_.length;T++){let[R,A]=_[T];typeof t.addHeader=="function"?t.addHeader(R,A):typeof t.headers=="string"?t.headers+=`${R}: ${A}\r -`:Array.isArray(t.headers)&&t.headers.push(R,A)}this._recordFromReq.set(t,{span:b,attributes:u,startTime:s})}onRequestHeaders({request:t,socket:n}){let r=this._recordFromReq.get(t);if(!r)return;let i=this.getConfig(),{span:s}=r,{remoteAddress:o,remotePort:a}=n,c={[Vs.ATTR_NETWORK_PEER_ADDRESS]:o,[Vs.ATTR_NETWORK_PEER_PORT]:a};if(i.headersToSpanAttributes?.requestHeaders){let u=new Set(i.headersToSpanAttributes.requestHeaders.map(d=>d.toLowerCase())),l=this.parseRequestHeaders(t);for(let[d,f]of l.entries())if(u.has(d)){let p=Array.isArray(f)?f:[f];c[`http.request.header.${d}`]=p}}s.setAttributes(c)}onResponseHeaders({request:t,response:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s}=r,o={[Vs.ATTR_HTTP_RESPONSE_STATUS_CODE]:n.statusCode},a=this.getConfig();if((0,UP.safeExecuteInTheMiddle)(()=>a.responseHook?.(i,{request:t,response:n}),c=>c&&this._diag.error("caught responseHook error: ",c),!0),a.headersToSpanAttributes?.responseHeaders){let c=new Set;a.headersToSpanAttributes?.responseHeaders.forEach(u=>c.add(u.toLowerCase()));for(let u=0;u=400?pl.SpanStatusCode.ERROR:pl.SpanStatusCode.UNSET}),r.attributes=Object.assign(s,o)}onDone({request:t}){let n=this._recordFromReq.get(t);if(!n)return;let{span:r,attributes:i,startTime:s}=n;r.end(),this._recordFromReq.delete(t),this.recordRequestDuration(i,s)}onError({request:t,error:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s,startTime:o}=r;i.recordException(n),i.setStatus({code:pl.SpanStatusCode.ERROR,message:n.message}),i.end(),this._recordFromReq.delete(t),s[Vs.ATTR_ERROR_TYPE]=n.message,this.recordRequestDuration(s,o)}recordRequestDuration(t,n){let r={};[Vs.ATTR_HTTP_RESPONSE_STATUS_CODE,Vs.ATTR_HTTP_REQUEST_METHOD,Vs.ATTR_SERVER_ADDRESS,Vs.ATTR_SERVER_PORT,Vs.ATTR_URL_SCHEME,Vs.ATTR_ERROR_TYPE].forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,aB.hrTimeToMilliseconds)((0,aB.hrTimeDuration)(n,(0,aB.hrTime)()))/1e3;this._httpClientDurationHistogram.record(s,r)}getRequestMethod(t){let n={CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0};return t.toUpperCase()in n?t.toUpperCase():"_OTHER"}};cB.UndiciInstrumentation=yee});var qHe=w(uB=>{"use strict";Object.defineProperty(uB,"__esModule",{value:!0});uB.UndiciInstrumentation=void 0;var Q8t=HHe();Object.defineProperty(uB,"UndiciInstrumentation",{enumerable:!0,get:function(){return Q8t.UndiciInstrumentation}})});function BHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function n7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function r7t(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=BHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=BHe(n.origin,n.path);if(r.startsWith("data:")){let i=eA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[Iy]:i,[Wl]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var zHe,GHe,$8t,e7t,t7t,VHe,WHe=v(()=>{zHe=Re(qHe(),1);st();sr();GHe="NodeFetch",$8t=rt(GHe,zHe.UndiciInstrumentation,e=>r7t(e)),e7t=rt(`${GHe}.sentry`,VE,e=>e),t7t=((e={})=>({name:"NodeFetch",setupOnce(){n7t(e,ct()?.getOptions())&&$8t(e),e7t(e)}})),VHe=t7t});var lB=w(FP=>{"use strict";Object.defineProperty(FP,"__esModule",{value:!0});FP.ExpressLayerType=void 0;var i7t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(i7t=FP.ExpressLayerType||(FP.ExpressLayerType={}))});var dB=w(jP=>{"use strict";Object.defineProperty(jP,"__esModule",{value:!0});jP.AttributeNames=void 0;var s7t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(s7t=jP.AttributeNames||(jP.AttributeNames={}))});var See=w(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA._LAYERS_STORE_PROPERTY=OA.kLayerPatched=void 0;OA.kLayerPatched=Symbol("express-layer-patched");OA._LAYERS_STORE_PROPERTY="__ot_middlewares"});var ZHe=w(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});Ws.getActualMatchedRoute=Ws.getConstructedRoute=Ws.getLayerPath=Ws.asErrorAndMessage=Ws.isLayerIgnored=Ws.getLayerMetadata=Ws.getRouterPath=Ws.storeLayerPath=void 0;var bee=lB(),PA=dB(),JE=See(),o7t=(e,t)=>(Array.isArray(e[JE._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,JE._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[JE._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=o7t;var a7t=(e,t)=>{let n=t.handle?.stack?.[0];return n?.route?.path?`${e}${n.route.path}`:n?.handle?.stack?(0,Ws.getRouterPath)(e,n):e};Ws.getRouterPath=a7t;var c7t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[PA.AttributeNames.EXPRESS_NAME]:i,[PA.AttributeNames.EXPRESS_TYPE]:bee.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[PA.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[PA.AttributeNames.EXPRESS_TYPE]:bee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[PA.AttributeNames.EXPRESS_NAME]:t.name,[PA.AttributeNames.EXPRESS_TYPE]:bee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=c7t;var u7t=(e,t)=>{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")},l7t=(e,t,n)=>{if(Array.isArray(n?.ignoreLayersType)&&n?.ignoreLayersType?.includes(t))return!0;if(Array.isArray(n?.ignoreLayers)===!1)return!1;try{for(let r of n.ignoreLayers)if(u7t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=l7t;var d7t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=d7t;var f7t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>KHe(n)||"").join(","):KHe(t)};Ws.getLayerPath=f7t;var KHe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function YHe(e){let n=(Array.isArray(e[JE._LAYERS_STORE_PROPERTY])?e[JE._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=YHe;function p7t(e){let t=Array.isArray(e[JE._LAYERS_STORE_PROPERTY])?e[JE._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=YHe(e);if(n==="*"||n.includes("/")&&(n.includes(",")||n.includes("\\")||n.includes("*")||n.includes("[")))return n;let r=n.startsWith("/")?n:`/${n}`;return r.length>0&&(e.originalUrl===r||e.originalUrl.startsWith(r)||h7t(r))?r:void 0}Ws.getActualMatchedRoute=p7t;function h7t(e){return e.includes(":")||e.includes("*")}});var JHe=w(NA=>{"use strict";Object.defineProperty(NA,"__esModule",{value:!0});NA.PACKAGE_NAME=NA.PACKAGE_VERSION=void 0;NA.PACKAGE_VERSION="0.62.0";NA.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var tqe=w(pB=>{"use strict";Object.defineProperty(pB,"__esModule",{value:!0});pB.ExpressInstrumentation=void 0;var XHe=fr(),hu=(Ce(),ke(Ze)),QHe=lB(),$He=dB(),Jp=ZHe(),eqe=JHe(),CA=Jt(),m7t=(Pn(),ke(Mr)),fB=See(),Eee=class extends CA.InstrumentationBase{constructor(t={}){super(eqe.PACKAGE_NAME,eqe.PACKAGE_VERSION,t)}init(){return[new CA.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,CA.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,CA.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,CA.isWrapped)(t.application.use)&&this._unwrap(t.application,"use"),this._wrap(t.application,"use",this._getAppUsePatch(n)),t},t=>{if(t===void 0)return;let r=typeof t?.Router?.prototype?.route=="function"?t.Router.prototype:t.Router;this._unwrap(r,"route"),this._unwrap(r,"use"),this._unwrap(t.application,"use")})]}_getRoutePatch(){let t=this;return function(n){return function(...i){let s=n.apply(this,i),o=this.stack[this.stack.length-1];return t._applyPatch(o,(0,Jp.getLayerPath)(i)),s}}}_getRouterUsePatch(){let t=this;return function(n){return function(...i){let s=n.apply(this,i),o=this.stack[this.stack.length-1];return t._applyPatch(o,(0,Jp.getLayerPath)(i)),s}}}_getAppUsePatch(t){let n=this;return function(r){return function(...s){let o=t?this.router:this._router,a=r.apply(this,s);if(o){let c=o.stack[o.stack.length-1];n._applyPatch(c,(0,Jp.getLayerPath)(s))}return a}}}_applyPatch(t,n){let r=this;t[fB.kLayerPatched]!==!0&&(t[fB.kLayerPatched]=!0,this._wrap(t,"handle",i=>{if(i.length===4)return i;let s=function(o,a){let{isLayerPathStored:c}=(0,Jp.storeLayerPath)(o,n),u=(0,Jp.getConstructedRoute)(o),l=(0,Jp.getActualMatchedRoute)(o),d={[m7t.ATTR_HTTP_ROUTE]:l},f=(0,Jp.getLayerMetadata)(u,t,n),p=f.attributes[$He.AttributeNames.EXPRESS_TYPE],h=(0,XHe.getRPCMetadata)(hu.context.active());if(h?.type===XHe.RPCType.HTTP&&(h.route=l),(0,Jp.isLayerIgnored)(f.name,p,r.getConfig()))return p===QHe.ExpressLayerType.MIDDLEWARE&&o[fB._LAYERS_STORE_PROPERTY].pop(),i.apply(this,arguments);if(hu.trace.getSpan(hu.context.active())===void 0)return i.apply(this,arguments);let m=r._getSpanName({request:o,layerType:p,route:u},f.name),g=r.tracer.startSpan(m,{attributes:Object.assign(d,f.attributes)}),y=hu.context.active(),b=hu.trace.setSpan(y,g),{requestHook:S}=r.getConfig();S&&(0,CA.safeExecuteInTheMiddle)(()=>S(g,{request:o,layerType:p,route:u}),A=>{A&&hu.diag.error("express instrumentation: request hook failed",A)},!0);let E=!1;f.attributes[$He.AttributeNames.EXPRESS_TYPE]===QHe.ExpressLayerType.ROUTER&&(g.end(),E=!0,b=y);let _=()=>{E===!1&&(E=!0,g.end())},T=Array.from(arguments),R=T.findIndex(A=>typeof A=="function");R>=0&&(arguments[R]=function(){let A=arguments[0],x=![void 0,null,"route","router"].includes(A);if(!E&&x){let[L,G]=(0,Jp.asErrorAndMessage)(A);g.recordException(L),g.setStatus({code:hu.SpanStatusCode.ERROR,message:G})}E===!1&&(E=!0,o.res?.removeListener("finish",_),g.end()),!(o.route&&x)&&c&&o[fB._LAYERS_STORE_PROPERTY].pop();let k=T[R],P=hu.context.active(),N=hu.trace.getSpan(y),C=N?hu.trace.setSpan(P,N):P;return hu.context.bind(C,k).apply(this,arguments)});try{return hu.context.bind(b,i).apply(this,arguments)}catch(A){let[x,k]=(0,Jp.asErrorAndMessage)(A);throw g.recordException(x),g.setStatus({code:hu.SpanStatusCode.ERROR,message:k}),A}finally{E||a.once("finish",_)}};for(let o in i)Object.defineProperty(s,o,{get(){return i[o]},set(a){i[o]=a}});return s}))}_getSpanName(t,n){let{spanNameHook:r}=this.getConfig();if(!(r instanceof Function))return n;try{return r(t,n)??n}catch(i){return hu.diag.error("express instrumentation: error calling span name rewrite hook",i),n}}};pB.ExpressInstrumentation=Eee});var nqe=w(Zy=>{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});Zy.AttributeNames=Zy.ExpressLayerType=Zy.ExpressInstrumentation=void 0;var g7t=tqe();Object.defineProperty(Zy,"ExpressInstrumentation",{enumerable:!0,get:function(){return g7t.ExpressInstrumentation}});var y7t=lB();Object.defineProperty(Zy,"ExpressLayerType",{enumerable:!0,get:function(){return y7t.ExpressLayerType}});var S7t=dB();Object.defineProperty(Zy,"AttributeNames",{enumerable:!0,get:function(){return S7t.AttributeNames}})});var So,XE=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function b7t(e){Dr(e,"auto.http.otel.express");let t=vt(e).data,n=t["express.type"];n&&e.setAttribute(zt,`${n}.express`);let r=t["express.name"];typeof r=="string"&&e.updateName(r)}function E7t(e,t){if(vn()===Vl())return So&&Z.warn("Isolation scope is still default isolation scope - skipping setting transactionName"),t;if(e.layerType==="request_handler"){let n=e.request,r=n.method?n.method.toUpperCase():"GET";vn().setTransactionName(`${r} ${e.route}`)}return t}var rqe,iqe,sqe,_7t,oqe,aqe=v(()=>{rqe=Re(nqe(),1);st();sr();XE();iqe="Express";sqe=rt(iqe,()=>new rqe.ExpressInstrumentation({requestHook:e=>b7t(e),spanNameHook:(e,t)=>E7t(e,t)})),_7t=(()=>({name:iqe,setupOnce(){sqe()}})),oqe=_7t});var cqe=w(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});HP.SeverityNumber=void 0;var T7t;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(T7t=HP.SeverityNumber||(HP.SeverityNumber={}))});var gB=w(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.NOOP_LOGGER=MA.NoopLogger=void 0;var mB=class{emit(t){}};MA.NoopLogger=mB;MA.NOOP_LOGGER=new mB});var uqe=w(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.API_BACKWARDS_COMPATIBILITY_VERSION=Xp.makeGetter=Xp._global=Xp.GLOBAL_LOGS_API_KEY=void 0;Xp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Xp._global=globalThis;function v7t(e,t,n){return r=>r===e?t:n}Xp.makeGetter=v7t;Xp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var _ee=w(DA=>{"use strict";Object.defineProperty(DA,"__esModule",{value:!0});DA.NOOP_LOGGER_PROVIDER=DA.NoopLoggerProvider=void 0;var R7t=gB(),yB=class{getLogger(t,n,r){return new R7t.NoopLogger}};DA.NoopLoggerProvider=yB;DA.NOOP_LOGGER_PROVIDER=new yB});var lqe=w(SB=>{"use strict";Object.defineProperty(SB,"__esModule",{value:!0});SB.ProxyLogger=void 0;var A7t=gB(),Tee=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):A7t.NOOP_LOGGER}};SB.ProxyLogger=Tee});var dqe=w(bB=>{"use strict";Object.defineProperty(bB,"__esModule",{value:!0});bB.ProxyLoggerProvider=void 0;var w7t=_ee(),k7t=lqe(),vee=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new k7t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:w7t.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};bB.ProxyLoggerProvider=vee});var pqe=w(EB=>{"use strict";Object.defineProperty(EB,"__esModule",{value:!0});EB.LogsAPI=void 0;var Ql=uqe(),I7t=_ee(),fqe=dqe(),Ree=class e{constructor(){this._proxyLoggerProvider=new fqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Ql._global[Ql.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Ql._global[Ql.GLOBAL_LOGS_API_KEY]=(0,Ql.makeGetter)(Ql.API_BACKWARDS_COMPATIBILITY_VERSION,t,I7t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Ql._global[Ql.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Ql._global,Ql.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Ql._global[Ql.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new fqe.ProxyLoggerProvider}};EB.LogsAPI=Ree});var Aee=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.logs=Qp.NoopLogger=Qp.NOOP_LOGGER=Qp.SeverityNumber=void 0;var x7t=cqe();Object.defineProperty(Qp,"SeverityNumber",{enumerable:!0,get:function(){return x7t.SeverityNumber}});var hqe=gB();Object.defineProperty(Qp,"NOOP_LOGGER",{enumerable:!0,get:function(){return hqe.NOOP_LOGGER}});Object.defineProperty(Qp,"NoopLogger",{enumerable:!0,get:function(){return hqe.NoopLogger}});var O7t=pqe();Qp.logs=O7t.LogsAPI.getInstance()});var mqe=w(LA=>{"use strict";Object.defineProperty(LA,"__esModule",{value:!0});LA.disableInstrumentations=LA.enableInstrumentations=void 0;function P7t(e,t,n,r){for(let i=0,s=e.length;it.disable())}LA.disableInstrumentations=N7t});var Sqe=w(_B=>{"use strict";Object.defineProperty(_B,"__esModule",{value:!0});_B.registerInstrumentations=void 0;var gqe=(Ce(),ke(Ze)),C7t=Aee(),yqe=mqe();function M7t(e){let t=e.tracerProvider||gqe.trace.getTracerProvider(),n=e.meterProvider||gqe.metrics.getMeterProvider(),r=e.loggerProvider||C7t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,yqe.enableInstrumentations)(i,t,n,r),()=>{(0,yqe.disableInstrumentations)(i)}}_B.registerInstrumentations=M7t});var kqe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.satisfies=void 0;var xee=(Ce(),ke(Ze)),vqe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,D7t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,L7t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function U7t(e,t,n){if(!F7t(e))return xee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=B7t(e);if(!r)return!1;let i=[],s=Rqe(r,t,i,n);return s&&!n?.includePrerelease?H7t(r,i):s}TB.satisfies=U7t;function F7t(e){return typeof e=="string"&&vqe.test(e)}function Rqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(wee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=uJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!wee(e,s,n,r))return!1;return!0}return wee(e,t,n,r)}function wee(e,t,n,r){if(t=q7t(t,r),t.includes(" "))return Rqe(e,t,n,r);{let i=z7t(t);return n.push(i),j7t(e,i)}}function j7t(e,t){if(t.invalid)return!1;if(!t.version||Iee(t.version))return!0;let n=Eqe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=Eqe(r,i)}return L7t[t.op]?.includes(n)}function H7t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function q7t(e,t){return e=e.trim(),e=aJt(e,t),e=oJt(e),e=cJt(e,t),e=e.trim(),e}function Dc(e){return!e||e.toLowerCase()==="x"||e==="*"}function B7t(e){let t=e.match(vqe);if(!t){xee.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function z7t(e){if(!e)return{};let t=e.match(D7t);if(!t)return xee.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Iee(e){return e==="*"||e==="x"||e==="X"}function bqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function G7t(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function V7t(e,t){if(Iee(e)||Iee(t))return 0;let[n,r]=G7t(bqe(e),bqe(t));return n>r?1:n)?=?)",_qe=`(?:${wqe}|${W7t})`,Y7t=`(?:-(${_qe}(?:\\.${_qe})*))`,Tqe=`${Aqe}+`,Z7t=`(?:\\+(${Tqe}(?:\\.${Tqe})*))`,kee=`${wqe}|x|X|\\*`,qP=`[v=\\s]*(${kee})(?:\\.(${kee})(?:\\.(${kee})(?:${Y7t})?${Z7t}?)?)?`,J7t=`^${K7t}\\s*${qP}$`,X7t=new RegExp(J7t),Q7t=`^\\s*(${qP})\\s+-\\s+(${qP})\\s*$`,$7t=new RegExp(Q7t),eJt="(?:~>?)",tJt=`^${eJt}${qP}$`,nJt=new RegExp(tJt),rJt="(?:\\^)",iJt=`^${rJt}${qP}$`,sJt=new RegExp(iJt);function oJt(e){let t=nJt;return e.replace(t,(n,r,i,s,o)=>{let a;return Dc(r)?a="":Dc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Dc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function aJt(e,t){let n=sJt,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Dc(s)?u="":Dc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Dc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function cJt(e,t){let n=X7t;return e.replace(n,(r,i,s,o,a,c)=>{let u=Dc(s),l=u||Dc(o),d=l||Dc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function uJt(e,t){let n=$7t;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Dc(s)?i="":Dc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Dc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Dc(d)?l="":Dc(f)?l=`<${+d+1}.0.0-0`:Dc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var Oee=w(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.massUnwrap=da.unwrap=da.massWrap=da.wrap=void 0;var Lc=console.error.bind(console);function BP(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var lJt=(e,t,n)=>{if(!e||!e[t]){Lc("no original function "+String(t)+" to wrap");return}if(!n){Lc("no wrapper function"),Lc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Lc("original object and wrapper must be functions");return}let i=n(r,t);return BP(i,"__original",r),BP(i,"__unwrap",()=>{e[t]===i&&BP(e,t,r)}),BP(i,"__wrapped",!0),BP(e,t,i),i};da.wrap=lJt;var dJt=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Lc("must provide one or more modules to patch"),Lc(new Error().stack);return}if(!(t&&Array.isArray(t))){Lc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,da.wrap)(r,i,n)})})};da.massWrap=dJt;var fJt=(e,t)=>{if(!e||!e[t]){Lc("no function to unwrap."),Lc(new Error().stack);return}let n=e[t];if(!n.__unwrap)Lc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};da.unwrap=fJt;var pJt=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Lc("must provide one or more modules to patch"),Lc(new Error().stack);return}if(!(t&&Array.isArray(t))){Lc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,da.unwrap)(n,r)})})};da.massUnwrap=pJt;function zP(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=zP;zP.wrap=da.wrap;zP.massWrap=da.massWrap;zP.unwrap=da.unwrap;zP.massUnwrap=da.massUnwrap});var Iqe=w(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.InstrumentationAbstract=void 0;var Pee=(Ce(),ke(Ze)),hJt=Aee(),vB=Oee(),Nee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Pee.diag.createComponentLogger({namespace:t}),this._tracer=Pee.trace.getTracer(t,n),this._meter=Pee.metrics.getMeter(t,n),this._logger=hJt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=vB.wrap;_unwrap=vB.unwrap;_massWrap=vB.massWrap;_massUnwrap=vB.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};RB.InstrumentationAbstract=Nee});var xqe=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.ModuleNameTrie=Jy.ModuleNameSeparator=void 0;Jy.ModuleNameSeparator="/";var AB=class{hooks=[];children=new Map},Cee=class{_trie=new AB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Jy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new AB,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(Jy.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};Jy.ModuleNameTrie=Cee});var Pqe=w(wB=>{"use strict";Object.defineProperty(wB,"__esModule",{value:!0});wB.RequireInTheMiddleSingleton=void 0;var mJt=vE(),Oqe=K("path"),Mee=xqe(),gJt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),Dee=class e{_moduleNameTrie=new Mee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new mJt.Hook(null,{internals:!0},(t,n,r)=>{let i=yJt(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return gJt?new e:this._instance=this._instance??new e}};wB.RequireInTheMiddleSingleton=Dee;function yJt(e){return Oqe.sep!==Mee.ModuleNameSeparator?e.split(Oqe.sep).join(Mee.ModuleNameSeparator):e}});var Lqe=w(GP=>{var Nqe=[],Lee=new WeakMap,Cqe=new WeakMap,Mqe=new Map,Dqe=[],SJt={set(e,t,n){let r=Lee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Cqe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=Lee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function bJt(e,t,n,r,i){Mqe.set(e,i),Lee.set(t,n),Cqe.set(t,r);let s=new Proxy(t,SJt);Nqe.forEach(o=>o(e,s,i)),Dqe.push([e,s,i])}GP.register=bJt;GP.importHooks=Nqe;GP.specifiers=Mqe;GP.toHook=Dqe});var Hqe=w((dMr,FA)=>{var Uqe=K("path"),EJt=TO(),{fileURLToPath:_Jt}=K("url"),{MessageChannel:TJt}=K("worker_threads"),{isBuiltin:Uee}=K("module");Uee||(Uee=()=>!0);var{importHooks:Fee,specifiers:vJt,toHook:RJt}=Lqe();function Fqe(e){Fee.push(e),RJt.forEach(([t,n,r])=>e(t,n,r))}function jqe(e){let t=Fee.indexOf(e);t>-1&&Fee.splice(t,1)}function UA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var jee;function AJt(){let{port1:e,port2:t}=new TJt,n=0,r;jee=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function VP(e,t,n){if(!(this instanceof VP))return new VP(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;jee&&Array.isArray(e)&&jee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);Uee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=_Jt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=EJt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)UA(n,s,u,void 0);else if(d===i){if(!l)UA(n,s,i,l);else if(l.endsWith(vJt.get(a)))UA(n,s,i,l);else if(r){let f=i+Uqe.sep+Uqe.relative(l,u);UA(n,s,f,l)}}else d===o&&UA(n,s,o,l);else UA(n,s,i,l)},Fqe(this._iitmHook)}VP.prototype.unhook=function(){jqe(this._iitmHook)};FA.exports=VP;FA.exports.Hook=VP;FA.exports.addHook=Fqe;FA.exports.removeHook=jqe;FA.exports.createAddHookMessageChannel=AJt});var Hee=w(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.isWrapped=Xy.safeExecuteInTheMiddleAsync=Xy.safeExecuteInTheMiddle=void 0;function wJt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Xy.safeExecuteInTheMiddle=wJt;async function kJt(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}Xy.safeExecuteInTheMiddleAsync=kJt;function IJt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Xy.isWrapped=IJt});var zqe=w(kB=>{"use strict";Object.defineProperty(kB,"__esModule",{value:!0});kB.InstrumentationBase=void 0;var WP=K("path"),qqe=K("util"),xJt=kqe(),qee=Oee(),OJt=Iqe(),PJt=Pqe(),NJt=Hqe(),KP=(Ce(),ke(Ze)),CJt=vE(),MJt=K("fs"),DJt=Hee(),Bee=class extends OJt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=PJt.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,DJt.isWrapped)(t[n])&&this._unwrap(t,n),qqe.types.isProxy(t)){let i=(0,qee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,qee.wrap)(t,n,r)};_unwrap=(t,n)=>qqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,qee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{KP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){KP.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{KP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){KP.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=K.resolve(n);K.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,MJt.readFileSync)(WP.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{KP.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return Bqe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=WP.normalize(r);return o.filter(u=>u.name===a&&Bqe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&WP.isAbsolute(a)){let u=WP.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=WP.isAbsolute(t.name)?new CJt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new NJt.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};kB.InstrumentationBase=Bee;function Bqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,xJt.satisfies)(t,r,{includePrerelease:n}))}});var Gqe=w(IB=>{"use strict";Object.defineProperty(IB,"__esModule",{value:!0});IB.normalize=void 0;var LJt=K("path");Object.defineProperty(IB,"normalize",{enumerable:!0,get:function(){return LJt.normalize}})});var Vqe=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.normalize=jA.InstrumentationBase=void 0;var UJt=zqe();Object.defineProperty(jA,"InstrumentationBase",{enumerable:!0,get:function(){return UJt.InstrumentationBase}});var FJt=Gqe();Object.defineProperty(jA,"normalize",{enumerable:!0,get:function(){return FJt.normalize}})});var zee=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.normalize=HA.InstrumentationBase=void 0;var Wqe=Vqe();Object.defineProperty(HA,"InstrumentationBase",{enumerable:!0,get:function(){return Wqe.InstrumentationBase}});Object.defineProperty(HA,"normalize",{enumerable:!0,get:function(){return Wqe.normalize}})});var Kqe=w(xB=>{"use strict";Object.defineProperty(xB,"__esModule",{value:!0});xB.InstrumentationNodeModuleDefinition=void 0;var Gee=class{files;name;supportedVersions;patch;unpatch;constructor(t,n,r,i,s){this.files=s||[],this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i}};xB.InstrumentationNodeModuleDefinition=Gee});var Yqe=w(OB=>{"use strict";Object.defineProperty(OB,"__esModule",{value:!0});OB.InstrumentationNodeModuleFile=void 0;var jJt=zee(),Vee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,jJt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};OB.InstrumentationNodeModuleFile=Vee});var Zqe=w(QE=>{"use strict";Object.defineProperty(QE,"__esModule",{value:!0});QE.semconvStabilityFromStr=QE.SemconvStability=void 0;var PB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(PB=QE.SemconvStability||(QE.SemconvStability={}));function HJt(e,t){let n=PB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=PB.DUPLICATE;break}else i.toLowerCase()===e&&(n=PB.STABLE);return n}QE.semconvStabilityFromStr=HJt});var Xqe=w(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.semconvStabilityFromStr=Ks.SemconvStability=Ks.safeExecuteInTheMiddleAsync=Ks.safeExecuteInTheMiddle=Ks.isWrapped=Ks.InstrumentationNodeModuleFile=Ks.InstrumentationNodeModuleDefinition=Ks.InstrumentationBase=Ks.registerInstrumentations=void 0;var qJt=Sqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return qJt.registerInstrumentations}});var BJt=zee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return BJt.InstrumentationBase}});var zJt=Kqe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return zJt.InstrumentationNodeModuleDefinition}});var GJt=Yqe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return GJt.InstrumentationNodeModuleFile}});var Wee=Hee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Wee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Wee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Wee.safeExecuteInTheMiddleAsync}});var Jqe=Zqe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return Jqe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return Jqe.semconvStabilityFromStr}})});var Qqe=w((TMr,VJt)=>{VJt.exports={name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}}});var eBe=w($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.range=$E.balanced=void 0;var WJt=(e,t,n)=>{let r=e instanceof RegExp?$qe(e,n):e,i=t instanceof RegExp?$qe(t,n):t,s=r!==null&&i!=null&&(0,$E.range)(r,i,n);return s&&{start:s[0],end:s[1],pre:n.slice(0,s[0]),body:n.slice(s[0]+r.length,s[1]),post:n.slice(s[1]+i.length)}};$E.balanced=WJt;var $qe=(e,t)=>{let n=t.match(e);return n?n[0]:null},KJt=(e,t,n)=>{let r,i,s,o,a,c=n.indexOf(e),u=n.indexOf(t,c+1),l=c;if(c>=0&&u>0){if(e===t)return[c,u];for(r=[],s=n.length;l>=0&&!a;){if(l===c)r.push(l),c=n.indexOf(e,l+1);else if(r.length===1){let d=r.pop();d!==void 0&&(a=[d,u])}else i=r.pop(),i!==void 0&&i=0?c:u}r.length&&o!==void 0&&(a=[s,o])}return a};$E.range=KJt});var aBe=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.EXPANSION_MAX=void 0;qA.expand=oXt;var tBe=eBe(),nBe="\0SLASH"+Math.random()+"\0",rBe="\0OPEN"+Math.random()+"\0",Yee="\0CLOSE"+Math.random()+"\0",iBe="\0COMMA"+Math.random()+"\0",sBe="\0PERIOD"+Math.random()+"\0",YJt=new RegExp(nBe,"g"),ZJt=new RegExp(rBe,"g"),JJt=new RegExp(Yee,"g"),XJt=new RegExp(iBe,"g"),QJt=new RegExp(sBe,"g"),$Jt=/\\\\/g,eXt=/\\{/g,tXt=/\\}/g,nXt=/\\,/g,rXt=/\\\./g;qA.EXPANSION_MAX=1e5;function Kee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function iXt(e){return e.replace($Jt,nBe).replace(eXt,rBe).replace(tXt,Yee).replace(nXt,iBe).replace(rXt,sBe)}function sXt(e){return e.replace(YJt,"\\").replace(ZJt,"{").replace(JJt,"}").replace(XJt,",").replace(QJt,".")}function oBe(e){if(!e)return[""];let t=[],n=(0,tBe.balanced)("{","}",e);if(!n)return e.split(",");let{pre:r,body:i,post:s}=n,o=r.split(",");o[o.length-1]+="{"+i+"}";let a=oBe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function oXt(e,t={}){if(!e)return[];let{max:n=qA.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),YP(iXt(e),n,!0).map(sXt)}function aXt(e){return"{"+e+"}"}function cXt(e){return/^-?0\d/.test(e)}function uXt(e,t){return e<=t}function lXt(e,t){return e>=t}function YP(e,t,n){let r=[],i=(0,tBe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?YP(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a=0;if(!u&&!l)return i.post.match(/,(?!,).*\}/)?(e=i.pre+"{"+i.body+Yee+i.post,YP(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=oBe(i.body),d.length===1&&d[0]!==void 0&&(d=YP(d[0],t,!1).map(aXt),d.length===1))return o.map(p=>i.pre+d[0]+p);let f;if(u&&d[0]!==void 0&&d[1]!==void 0){let p=Kee(d[0]),h=Kee(d[1]),m=Math.max(d[0].length,d[1].length),g=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Kee(d[2])),1):1,y=uXt;h0){let R=new Array(T+1).join("0");E<0?_="-"+R+_.slice(1):_=R+_}}f.push(_)}}else{f=[];for(let p=0;p{"use strict";Object.defineProperty(NB,"__esModule",{value:!0});NB.assertValidPattern=void 0;var dXt=1024*64,fXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>dXt)throw new TypeError("pattern is too long")};NB.assertValidPattern=fXt});var lBe=w(CB=>{"use strict";Object.defineProperty(CB,"__esModule",{value:!0});CB.parseClass=void 0;var pXt={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},ZP=e=>e.replace(/[[\]\\-]/g,"\\$&"),hXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),uBe=e=>e.join(""),mXt=(e,t)=>{let n=t;if(e.charAt(n)!=="[")throw new Error("not in a brace expression");let r=[],i=[],s=n+1,o=!1,a=!1,c=!1,u=!1,l=n,d="";e:for(;sd?r.push(ZP(d)+"-"+ZP(m)):m===d&&r.push(ZP(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(ZP(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(ZP(m)),s++}if(l{"use strict";Object.defineProperty(MB,"__esModule",{value:!0});MB.unescape=void 0;var gXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");MB.unescape=gXt});var Xee=w(jB=>{"use strict";var mu;Object.defineProperty(jB,"__esModule",{value:!0});jB.AST=void 0;var yXt=lBe(),LB=DB(),SXt=new Set(["!","?","+","*","@"]),Zee=e=>SXt.has(e),dBe=e=>Zee(e.type),bXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),EXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),_Xt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),fBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),TXt="(?!(?:^|/)\\.\\.?(?:$|/))",UB="(?!\\.)",vXt=new Set(["[","."]),RXt=new Set(["..","."]),AXt=new Set("().*{}+?[]^$\\!"),wXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Jee="[^/]",pBe=Jee+"*?",hBe=Jee+"+?",kXt=0,FB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++kXt;get depth(){return(this.#r?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#t.id,parent:this.#r?.id,depth:this.depth,partsLength:this.#e.length,parts:this.#e}}constructor(t,n,r={}){this.type=t,t&&(this.#n=!0),this.#r=n,this.#t=this.#r?this.#r.#t:this,this.#o=this.#t===this?r:this.#t.#o,this.#c=this.#t===this?[]:this.#t.#c,t==="!"&&!this.#t.#u&&this.#c.push(this),this.#s=this.#r?this.#r.#e.length:0}get hasMagic(){if(this.#n!==void 0)return this.#n;for(let t of this.#e)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#n=!0;return this.#n}toString(){return this.#a!==void 0?this.#a:this.type?this.#a=this.type+"("+this.#e.map(t=>String(t)).join("|")+")":this.#a=this.#e.map(t=>String(t)).join("")}#d(){if(this!==this.#t)throw new Error("should only call on root");if(this.#u)return this;this.toString(),this.#u=!0;let t;for(;t=this.#c.pop();){if(t.type!=="!")continue;let n=t,r=n.#r;for(;r;){for(let i=n.#s+1;!r.type&&itypeof n=="string"?n:n.toJSON()):[this.type,...this.#e.map(n=>n.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#u&&this.#r?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#r?.isStart())return!1;if(this.#s===0)return!0;let t=this.#r;for(let n=0;ntypeof p!="string"),u=this.#e.map(p=>{let[h,m,g,y]=typeof p=="string"?mu.#v(p,this.#n,c):p.toRegExpSource(t);return this.#n=this.#n||g,this.#i=this.#i||y,h}).join(""),l="";if(this.isStart()&&typeof this.#e[0]=="string"&&!(this.#e.length===1&&RXt.has(this.#e[0]))){let h=vXt,m=n&&h.has(u.charAt(0))||u.startsWith("\\.")&&h.has(u.charAt(2))||u.startsWith("\\.\\.")&&h.has(u.charAt(4)),g=!n&&!t&&h.has(u.charAt(0));l=m?TXt:g?UB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,LB.unescape)(u),this.#n=!!this.#n,this.#i]}let r=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",s=this.#y(n);if(this.isStart()&&this.isEnd()&&!s&&this.type!=="!"){let c=this.toString(),u=this;return u.#e=[c],u.type=null,u.#n=void 0,[c,(0,LB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!UB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?UB:"")+hBe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?UB:"")+pBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,LB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(dBe(this)){let t=0,n=!1;do{n=!0;for(let r=0;r{if(typeof n=="string")throw new Error("string type in extglob ast??");let[r,i,s,o]=n.toRegExpSource(t);return this.#i=this.#i||o,r}).filter(n=>!(this.isStart()&&this.isEnd())||!!n).join("|")}static#v(t,n,r=!1){let i=!1,s="",o=!1,a=!1;for(let c=0;c{"use strict";Object.defineProperty(HB,"__esModule",{value:!0});HB.escape=void 0;var IXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");HB.escape=IXt});var _Be=w(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.unescape=it.escape=it.AST=it.Minimatch=it.match=it.makeRe=it.braceExpand=it.defaults=it.filter=it.GLOBSTAR=it.sep=it.minimatch=void 0;var xXt=aBe(),qB=cBe(),yBe=Xee(),OXt=Qee(),PXt=DB(),NXt=(e,t,n={})=>((0,qB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new e_(t,n).match(e));it.minimatch=NXt;var CXt=/^\*+([^+@!?*[(]*)$/,MXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),DXt=e=>t=>t.endsWith(e),LXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),UXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),FXt=/^\*+\.\*+$/,jXt=e=>!e.startsWith(".")&&e.includes("."),HXt=e=>e!=="."&&e!==".."&&e.includes("."),qXt=/^\.\*+$/,BXt=e=>e!=="."&&e!==".."&&e.startsWith("."),zXt=/^\*+$/,GXt=e=>e.length!==0&&!e.startsWith("."),VXt=e=>e.length!==0&&e!=="."&&e!=="..",WXt=/^\?+([^+@!?*[(]*)?$/,KXt=([e,t=""])=>{let n=SBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},YXt=([e,t=""])=>{let n=bBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},ZXt=([e,t=""])=>{let n=bBe([e]);return t?r=>n(r)&&r.endsWith(t):n},JXt=([e,t=""])=>{let n=SBe([e]);return t?r=>n(r)&&r.endsWith(t):n},SBe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},bBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},EBe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",mBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=EBe==="win32"?mBe.win32.sep:mBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var XXt="[^/]",QXt=XXt+"*?",$Xt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",eQt="(?:(?!(?:\\/|^)\\.).)*?",tQt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=tQt;it.minimatch.filter=it.filter;var $l=(e,t={})=>Object.assign({},e,t),nQt=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return it.minimatch;let t=it.minimatch;return Object.assign((r,i,s={})=>t(r,i,$l(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,$l(e,s))}static defaults(i){return t.defaults($l(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,$l(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,$l(e,s))}},unescape:(r,i={})=>t.unescape(r,$l(e,i)),escape:(r,i={})=>t.escape(r,$l(e,i)),filter:(r,i={})=>t.filter(r,$l(e,i)),defaults:r=>t.defaults($l(e,r)),makeRe:(r,i={})=>t.makeRe(r,$l(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,$l(e,i)),match:(r,i,s={})=>t.match(r,i,$l(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=nQt;it.minimatch.defaults=it.defaults;var rQt=(e,t={})=>((0,qB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,xXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=rQt;it.minimatch.braceExpand=it.braceExpand;var iQt=(e,t={})=>new e_(e,t).makeRe();it.makeRe=iQt;it.minimatch.makeRe=it.makeRe;var sQt=(e,t,n={})=>{let r=new e_(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=sQt;it.minimatch.match=it.match;var gBe=/[?*]|[+@!]\(.*?\)|\[|\]/,oQt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),e_=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,qB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||EBe,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!n.windowsPathsNoEscape||n[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!n.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!n.nonegate,this.comment=!1,this.empty=!1,this.partial=!!n.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=n.windowsNoMagicRoot!==void 0?n.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let n of t)if(typeof n!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,n=this.options;if(!n.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],n.debug&&(this.debug=(...s)=>console.error(...s)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(s=>this.slashSplit(s));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let i=this.globParts.map((s,o,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let c=s[0]===""&&s[1]===""&&(s[2]==="?"||!gBe.test(s[2]))&&!gBe.test(s[3]),u=/^[a-z]:/i.test(s[0]);if(c)return[...s.slice(0,4),...s.slice(4).map(l=>this.parse(l))];if(u)return[s[0],...s.slice(1).map(l=>this.parse(l))]}return s.map(c=>this.parse(c))});if(this.debug(this.pattern,i),this.set=i.filter(s=>s.indexOf(!1)===-1),this.isWindows)for(let s=0;s=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):n>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(n=>{let r=-1;for(;(r=n.indexOf("**",r+1))!==-1;){let i=r;for(;n[i+1]==="**";)i++;i!==r&&n.splice(r,i-r)}return n})}levelOneOptimize(t){return t.map(n=>(n=n.reduce((r,i)=>{let s=r[r.length-1];return i==="**"&&s==="**"?r:i===".."&&s&&s!==".."&&s!=="."&&s!=="**"?(r.pop(),r):(r.push(i),r)},[]),n.length===0?[""]:n))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let n=!1;do{if(n=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&r.splice(i+1,o-i);let a=r[i+1],c=r[i+2],u=r[i+3];if(a!==".."||!c||c==="."||c===".."||!u||u==="."||u==="..")continue;n=!0,r.splice(i,1);let l=r.slice(0);l[i]="**",t.push(l),i--}if(!this.preserveMultipleSlashes){for(let o=1;on.length)}partsMatch(t,n,r=!1){let i=0,s=0,o=[],a="";for(;i=2&&(t=this.levelTwoFileOptimize(t)),n.includes(it.GLOBSTAR)?this.#t(t,n,r,i,s):this.#i(t,n,r,i,s)}#t(t,n,r,i,s){let o=n.indexOf(it.GLOBSTAR,s),a=n.lastIndexOf(it.GLOBSTAR),[c,u,l]=r?[n.slice(s,o),n.slice(o+1),[]]:[n.slice(s,o),n.slice(o+1,a),n.slice(a+1)];if(c.length){let b=t.slice(i,i+c.length);if(!this.#i(b,c,r,0,0))return!1;i+=c.length,s+=c.length}let d=0;if(l.length){if(l.length+i>t.length)return!1;let b=t.length-l.length;if(this.#i(t,l,r,b,0))d=l.length;else{if(t[t.length-1]!==""||i+l.length===t.length||(b--,!this.#i(t,l,r,b,0)))return!1;d=l.length+1}}if(!u.length){let b=!!d;for(let S=i;S{let u=c.map(d=>{if(d instanceof RegExp)for(let f of d.flags.split(""))i.add(f);return typeof d=="string"?oQt(d):d===it.GLOBSTAR?it.GLOBSTAR:d._src});u.forEach((d,f)=>{let p=u[f+1],h=u[f-1];d!==it.GLOBSTAR||h===it.GLOBSTAR||(h===void 0?p!==void 0&&p!==it.GLOBSTAR?u[f+1]="(?:\\/|"+r+"\\/)?"+p:u[f]=r:p===void 0?u[f-1]=h+"(?:\\/|\\/"+r+")?":p!==it.GLOBSTAR&&(u[f-1]=h+"(?:\\/|\\/"+r+"\\/)"+p,u[f+1]=it.GLOBSTAR))});let l=u.filter(d=>d!==it.GLOBSTAR);if(this.partial&&l.length>=1){let d=[];for(let f=1;f<=l.length;f++)d.push(l.slice(0,f).join("/"));return"(?:"+d.join("|")+")"}return l.join("/")}).join("|"),[o,a]=t.length>1?["(?:",")"]:["",""];s="^"+o+s+a+"$",this.partial&&(s="^(?:\\/|"+o+s.slice(1,-1)+a+")$"),this.negate&&(s="^(?!"+s+").+$");try{this.regexp=new RegExp(s,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,n=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&n)return!0;let r=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let s=this.set;this.debug(this.pattern,"set",s);let o=i[i.length-1];if(!o)for(let a=i.length-2;!o&&a>=0;a--)o=i[a];for(let a of s){let c=i;if(r.matchBase&&a.length===1&&(c=[o]),this.matchOne(c,a,n))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(t){return it.minimatch.defaults(t).Minimatch}};it.Minimatch=e_;var aQt=Xee();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return aQt.AST}});var cQt=Qee();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return cQt.escape}});var uQt=DB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return uQt.unescape}});it.minimatch.AST=yBe.AST;it.minimatch.Minimatch=e_;it.minimatch.escape=OXt.escape;it.minimatch.unescape=PXt.unescape});var IBe=w((CMr,tte)=>{"use strict";var TBe=K("node:diagnostics_channel"),{context:BB,trace:$ee,SpanStatusCode:zB,propagation:ete,diag:lQt}=(Ce(),ke(Ze)),{getRPCMetadata:dQt,RPCType:fQt}=fr(),{ATTR_HTTP_ROUTE:GB,ATTR_HTTP_RESPONSE_STATUS_CODE:vBe,ATTR_HTTP_REQUEST_METHOD:pQt,ATTR_URL_PATH:hQt}=(Pn(),ke(Mr)),{InstrumentationBase:mQt}=Xqe(),{version:gQt,name:RBe}=Qqe(),yQt=">=4.0.0 <6",ABe=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],fi={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},Qy={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},xm="anonymous",$y=Symbol("fastify otel instance"),eS=Symbol("fastify otel request spans"),JP=Symbol("fastify otel request context"),wBe=Symbol("fastify otel addhook original"),kBe=Symbol("fastify otel setnotfound original"),XP=Symbol("fastify otel ignore path"),QP=Symbol("fastify otel record exceptions"),VB=class extends mQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(RBe,gQt,t),this.logger=lQt.createComponentLogger({namespace:RBe}),this[XP]=null,this[QP]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[QP]=t.recordExceptions}if(typeof t?.requestHook=="function"&&(this._requestHook=t.requestHook),typeof t?.lifecycleHook=="function"&&(this._lifecycleHook=t.lifecycleHook),t?.ignorePaths!=null||process.env.OTEL_FASTIFY_IGNORE_PATHS!=null){let n=t?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if((typeof n!="string"||n.length===0)&&typeof n!="function")throw new TypeError("ignorePaths must be a string or a function");let r=null;this[XP]=i=>typeof n=="function"?n(i):(r==null&&(r=_Be().minimatch),r(i.url,n))}}enable(){return this._handleInitialization===void 0&&this.getConfig().registerOnInitialization&&(this._handleInitialization=t=>{this.plugin()(t.fastify,void 0,()=>{});let n=(r,i,s)=>{s()};n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",t.fastify.register(n)},TBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(TBe.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let t=this;return n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",n[Symbol.for("plugin-meta")]={fastify:yQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate($y,t),r.decorate(wBe,r.addHook),r.decorate(kBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[JP],h=this[eS];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,g)=>ete.inject(p,m,g),extract:(m,g)=>ete.extract(p,m,g)}}),r.decorateRequest(eS,null),r.decorateRequest(JP,null),r.addHook("onRoute",function(p){if(t[XP]?.(p)===!0){t.logger.debug(`Ignoring route instrumentation ${p.method} ${p.url} because it matches the ignore path`);return}if(p.config?.otel===!1){t.logger.debug(`Ignoring route instrumentation ${p.method} ${p.url} because it is disabled`);return}for(let h of ABe)if(p[h]!=null){let m=p[h];if(typeof m=="function")p[h]=d(m,h,{[fi.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[fi.FASTIFY_TYPE]:Qy.ROUTE,[GB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:xm});else if(Array.isArray(m)){let g=[];for(let y of m)g.push(d(y,h,{[fi.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[fi.FASTIFY_TYPE]:Qy.ROUTE,[GB]:p.url,[fi.HOOK_CALLBACK_NAME]:y.name?.length>0?y.name:xm}));p[h]=g}}p.onSend!=null?p.onSend=Array.isArray(p.onSend)?[...p.onSend,o]:[p.onSend,o]:p.onSend=o,p.onError!=null?p.onError=Array.isArray(p.onError)?[...p.onError,a]:[p.onError,a]:p.onError=a,p.handler=d(p.handler,"handler",{[fi.HOOK_NAME]:`${this.pluginName} - route-handler`,[fi.FASTIFY_TYPE]:Qy.HANDLER,[GB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:xm})}),r.addHook("onRequest",function(p,h,m){if(this[$y].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[$y][XP]?.({url:p.url,method:p.method})===!0)return this[$y].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let g=BB.active();$ee.getSpan(g)==null&&(g=ete.extract(g,p.headers));let y=dQt(g);p.routeOptions.url!=null&&y?.type===fQt.HTTP&&(y.route=p.routeOptions.url);let b={[fi.ROOT]:"@fastify/otel",[pQt]:p.method,[hQt]:p.url};p.routeOptions.url!=null&&(b[GB]=p.routeOptions.url);let S=this[$y].tracer.startSpan("request",{attributes:b},g);try{this[$y]._requestHook?.(S,p)}catch(E){this[$y].logger.error({err:E},"requestHook threw")}p[JP]=$ee.setSpan(g,S),p[eS]=S,BB.with(p[JP],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let g=p[eS];g!=null&&(g.setAttributes({[vBe]:h.statusCode}),g.end()),p[eS]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let g=f[eS];g!=null&&(p.statusCode>=500&&g.setStatus({code:zB.ERROR}),g.setAttributes({[vBe]:p.statusCode}),g.end()),f[eS]=null,m(null,h)}function a(f,p,h,m){let g=f[eS];g!=null&&(g.setStatus({code:zB.ERROR,message:h.message}),t[QP]!==!1&&g.recordException(h)),m()}function c(f,p){let h=this[wBe];return ABe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:xm})):h.call(this,f,p)}function u(f,p){let h=this[kBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:xm}),h.call(this,p)):(f.preValidation!=null&&(f.preValidation=d(f.preValidation,"notFoundHandler - preValidation",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:xm})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:xm})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:xm}),h.call(this,f,p))}function l(f){for(let p of f)if(p?.routeOptions&&p.url&&p.method)return p;return null}function d(f,p,h={}){return function(...g){let y=this[$y],b=l(g);if(b===null)return y.logger.debug(`Ignoring route instrumentation because ${p} was called without a Fastify request argument`),f.call(this,...g);if(y.isEnabled()===!1||b.routeOptions.config?.otel===!1)return y.logger.debug(`Ignoring route instrumentation ${b.routeOptions.method} ${b.routeOptions.url} because it is disabled`),f.call(this,...g);if(y[XP]?.({url:b.url,method:b.method})===!0)return y.logger.debug(`Ignoring route instrumentation ${b.routeOptions.method} ${b.routeOptions.url} because it matches the ignore path`),f.call(this,...g);let S=b[JP]??BB.active(),E=f.name?.length>0?f.name:this.pluginName??xm,_=y.tracer.startSpan(`${p} - ${E}`,{attributes:h},S);if(y._lifecycleHook!=null)try{y._lifecycleHook(_,{hookName:p,request:b,handler:E})}catch(T){y.logger.error({err:T},"Execution of lifecycleHook failed")}return BB.with($ee.setSpan(S,_),function(){try{let T=f.call(this,...g);return typeof T?.then=="function"?T.then(R=>(_.end(),R),R=>(_.setStatus({code:zB.ERROR,message:R.message}),y[QP]!==!1&&_.recordException(R),_.end(),Promise.reject(R))):(_.end(),T)}catch(T){throw _.setStatus({code:zB.ERROR,message:T.message}),y[QP]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};tte.exports=VB;tte.exports.FastifyOtelInstrumentation=VB});var Om,$P,eN,xBe=v(()=>{(function(e){let t="fastify.name";e.FASTIFY_NAME=t;let n="fastify.type";e.FASTIFY_TYPE=n;let r="hook.name";e.HOOK_NAME=r;let i="plugin.name";e.PLUGIN_NAME=i})(Om||(Om={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})($P||($P={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(eN||(eN={}))});var tN,OBe=v(()=>{tN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function nte(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[tN]||[];return s.push(i),Object.defineProperty(e,tN,{enumerable:!1,configurable:!0,value:s}),i}function WB(e,t){let n=e[tN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[tN])}function NBe(e,t,n){let r,i;try{i=e(),PBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!PBe(i)&&(t(r,i),r))throw r;return i}}function PBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var CBe=v(()=>{Ce();OBe()});function _Qt(){let e=ct();e&&e.on("spanStart",t=>{DBe(t)})}function DBe(e){let t=vt(e).data,n=t["fastify.type"];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.fastify",[zt]:`${n}.fastify`});let r=t["fastify.name"]||t["plugin.name"]||t["hook.name"];if(typeof r=="string"){let i=r.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(i)}}var YB,t_,SQt,bQt,MBe,EQt,KB,LBe=v(()=>{Ce();YB=Re(fr(),1),t_=Re(Jt(),1);Pn();st();xBe();CBe();SQt="0.1.0",bQt="@sentry/instrumentation-fastify-v3",MBe="anonymous",EQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),KB=class extends t_.InstrumentationBase{constructor(t={}){super(bQt,SQt,t)}init(){return[new t_.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_hookOnRequest(){let t=this;return function(r,i,s){if(!t.isEnabled())return s();t._wrap(i,"send",t._patchSend());let o=r,a=(0,YB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===YB.RPCType.HTTP&&(a.route=c);let u=r.method||"GET";vn().setTransactionName(`${u} ${c}`),s()}}_wrapHandler(t,n,r,i){let s=this;return this._diag.debug("Patching fastify route.handler function"),function(...o){if(!s.isEnabled())return r.apply(this,o);let a=r.name||t||MBe,c=`${eN.MIDDLEWARE} - ${a}`,u=o[1],l=nte(u,s.tracer,c,{[Om.FASTIFY_TYPE]:$P.MIDDLEWARE,[Om.PLUGIN_NAME]:t,[Om.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){WB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>NBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||WB(u)}))}}_wrapAddHook(){let t=this;return this._diag.debug("Patching fastify server.addHook function"),function(n){return function(...i){let s=i[0],o=i[1],a=this.pluginName;if(!EQt.has(s))return n.apply(this,i);let c=typeof i[i.length-1]=="function"&&o.constructor.name!=="AsyncFunction";return n.apply(this,[s,t._wrapHandler(a,s,o,c)])}}}_patchConstructor(t){let n=this;function r(...i){let s=t.fastify.apply(this,i);return s.addHook("onRequest",n._hookOnRequest()),s.addHook("preHandler",n._hookPreHandler()),_Qt(),n._wrap(s,"addHook",n._wrapAddHook()),s}return t.errorCodes!==void 0&&(r.errorCodes=t.errorCodes),r.fastify=r,r.default=r,r}_patchSend(){let t=this;return this._diag.debug("Patching fastify reply.send function"),function(r){return function(...s){let o=s[0];return t.isEnabled()?(0,t_.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),WB(this,a)}):r.apply(this,s)}}}_hookPreHandler(){let t=this;return this._diag.debug("Patching fastify preHandler function"),function(r,i,s){if(!t.isEnabled())return s();let o=r,a=o.routeOptions?.handler||o.context?.handler,c=a?.name.startsWith("bound ")?a.name.substring(6):a?.name,u=`${eN.REQUEST_HANDLER} - ${c||this.pluginName||MBe}`,l={[Om.PLUGIN_NAME]:this.pluginName,[Om.FASTIFY_TYPE]:$P.REQUEST_HANDLER,[d7]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[Om.FASTIFY_NAME]=c);let d=nte(i,t.tracer,u,l);DBe(d);let{requestHook:f}=t.getConfig();return f&&(0,t_.safeExecuteInTheMiddle)(()=>f(d,{request:r}),p=>{p&&t._diag.error("request hook failed",p)},!0),Ve.with(jt.setSpan(Ve.active(),d),()=>{s()})}}}});import*as rte from"node:diagnostics_channel";function TQt(){let e=ct();if(e)return e.getIntegrationByName(ZB)}function UBe(e,t,n,r){let i=TQt()?.getShouldHandleError()||BBe;if(r==="diagnostics-channel"&&(this.diagnosticsChannelExists=!0),this.diagnosticsChannelExists&&r==="onError-hook"){So&&Z.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}i(e,t,n)&&Wt(e,{mechanism:{handled:!1,type:"auto.function.fastify"}})}function BBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function zBe(e){let t=vt(e),n=t.description,r=t.data,i=r["fastify.type"],s=i==="hook",o=i===n?.startsWith("handler -"),a=n==="request"||i==="request-handler";if(r[zt]||!o&&!a&&!s)return;let c=s?"hook":o?"middleware":a?"request_handler":"";e.setAttributes({[At]:"auto.http.otel.fastify",[zt]:`${c}.fastify`});let u=r["fastify.name"]||r["plugin.name"]||r["hook.name"];if(typeof u=="string"){let l=u.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(l)}}function RQt(){let e=ct();e&&e.on("spanStart",t=>{zBe(t)})}function AQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&zBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var FBe,ZB,jBe,HBe,vQt,qBe,GBe=v(()=>{FBe=Re(IBe(),1);st();sr();XE();LBe();ZB="Fastify",jBe=rt(`${ZB}.v3`,()=>new KB);HBe=rt(`${ZB}.v5`,()=>{let e=new FBe.FastifyOtelInstrumentation,t=e.plugin();return rte.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Z.error("Failed to setup Fastify instrumentation",i):(RQt(),r&&AQt(r))})}),rte.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;UBe.call(UBe,r,i,s,"diagnostics-channel")}),e}),vQt=(({shouldHandleError:e})=>{let t;return{name:ZB,setupOnce(){t=e||BBe,jBe(),HBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),qBe=(e={})=>vQt(e)});var ite=w(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.SpanNames=hf.TokenKind=hf.AllowedOperationTypes=void 0;var wQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(wQt=hf.AllowedOperationTypes||(hf.AllowedOperationTypes={}));var kQt;(function(e){e.SOF="",e.EOF="",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(kQt=hf.TokenKind||(hf.TokenKind={}));var IQt;(function(e){e.EXECUTE="graphql.execute",e.PARSE="graphql.parse",e.RESOLVE="graphql.resolve",e.VALIDATE="graphql.validate",e.SCHEMA_VALIDATE="graphql.validateSchema",e.SCHEMA_PARSE="graphql.parseSchema"})(IQt=hf.SpanNames||(hf.SpanNames={}))});var ste=w(nN=>{"use strict";Object.defineProperty(nN,"__esModule",{value:!0});nN.AttributeNames=void 0;var xQt;(function(e){e.SOURCE="graphql.source",e.FIELD_NAME="graphql.field.name",e.FIELD_PATH="graphql.field.path",e.FIELD_TYPE="graphql.field.type",e.PARENT_NAME="graphql.parent.name",e.OPERATION_TYPE="graphql.operation.type",e.OPERATION_NAME="graphql.operation.name",e.VARIABLES="graphql.variables.",e.ERROR_VALIDATION_NAME="graphql.validation.error"})(xQt=nN.AttributeNames||(nN.AttributeNames={}))});var JB=w(BA=>{"use strict";Object.defineProperty(BA,"__esModule",{value:!0});BA.OTEL_GRAPHQL_DATA_SYMBOL=BA.OTEL_PATCHED_SYMBOL=void 0;BA.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");BA.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var VBe=w(XB=>{"use strict";Object.defineProperty(XB,"__esModule",{value:!0});XB.OPERATION_NOT_SUPPORTED=void 0;var $Mr=JB();XB.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var sze=w(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.wrapFieldResolver=bo.wrapFields=bo.getSourceFromLocation=bo.getOperation=bo.endSpan=bo.addSpanSource=bo.addInputVariableAttributes=bo.isPromise=void 0;var zA=(Ce(),ke(Ze)),tS=ite(),n_=ste(),Pm=JB(),WBe=Object.values(tS.AllowedOperationTypes),OQt=e=>typeof e?.then=="function";bo.isPromise=OQt;var PQt=e=>typeof e=="object"&&e!==null;function ote(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{ote(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{ote(e,`${t}.${r}`,i)}):e.setAttribute(`${n_.AttributeNames.VARIABLES}${String(t)}`,n)}function NQt(e,t){Object.entries(t).forEach(([n,r])=>{ote(e,n,r)})}bo.addInputVariableAttributes=NQt;function JBe(e,t,n,r,i){let s=tze(t,n,r,i);e.setAttribute(n_.AttributeNames.SOURCE,s)}bo.addSpanSource=JBe;function CQt(e,t,n,r,i){let s=XBe(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?$Be(n):QBe(n,i);return s={span:MQt(e,t,n,r,i,a)},UQt(n,i,s),{field:s,spanAdded:!0}}function MQt(e,t,n,r,i,s){let o={[n_.AttributeNames.FIELD_NAME]:r.fieldName,[n_.AttributeNames.FIELD_PATH]:i.join("."),[n_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[n_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${tS.SpanNames.RESOLVE} ${o[n_.AttributeNames.FIELD_PATH]}`,{attributes:o},s?zA.trace.setSpan(zA.context.active(),s):void 0),c=n[Pm.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&JBe(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function DQt(e,t){t&&e.recordException(t),e.end()}bo.endSpan=DQt;function LQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>WBe.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>WBe.indexOf(n?.operation)!==-1)}bo.getOperation=LQt;function UQt(e,t,n){return e[Pm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function XBe(e,t){return e[Pm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function QBe(e,t){for(let n=t.length-1;n>0;n--){let r=XBe(e,t.slice(0,n));if(r)return r.span}return $Be(e)}function $Be(e){return e[Pm.OTEL_GRAPHQL_DATA_SYMBOL].span}function FQt(e,t){let n=[],r=t;for(;r;){let i=r.key;e&&typeof i=="number"&&(i="*"),n.push(String(i)),r=r.prev}return n.reverse()}function jQt(e){return eze(` -`,e)}function KBe(e){return eze(" ",e)}function eze(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&HQt.indexOf(a.kind)>=0&&(u="*"),a.kind===tS.TokenKind.STRING&&(u=`"${u}"`),a.kind===tS.TokenKind.EOF&&(u=""),a.line>c?(i+=jQt(a.line-c),c=a.line,l=KBe(a.column-1)):a.line===a.prev?.line&&(l=KBe(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}bo.getSourceFromLocation=tze;function nze(e,t,n){if(!e||e[Pm.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Pm.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=ize(t,n,s.resolve)),s.type)){let o=rze(s.type);for(let a of o)nze(a,t,n)}})}bo.wrapFields=nze;function rze(e){return"ofType"in e?rze(e.ofType):qQt(e)?e.getTypes():BQt(e)?[e]:[]}function qQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function BQt(e){return"getFields"in e&&typeof e.getFields=="function"}var YBe=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:zA.SpanStatusCode.ERROR,message:t.message}),e.end())},ZBe=(e,t)=>{t&&e.end()};function ize(e,t,n,r=!1){if(i[Pm.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(PQt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Pm.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=FQt(u.mergeItems,c&&c.path),d=l.filter(h=>typeof h=="string").length,f,p=!1;if(u.depth>=0&&u.depth{try{let h=n.call(this,s,o,a,c);return(0,bo.isPromise)(h)?h.then(m=>(ZBe(f,p),m),m=>{throw YBe(f,m,p),m}):(ZBe(f,p),h)}catch(h){throw YBe(f,h,p),h}})}return i[Pm.OTEL_PATCHED_SYMBOL]=!0,i}bo.wrapFieldResolver=ize});var oze=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.PACKAGE_NAME=GA.PACKAGE_VERSION=void 0;GA.PACKAGE_VERSION="0.62.0";GA.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var uze=w(ez=>{"use strict";Object.defineProperty(ez,"__esModule",{value:!0});ez.GraphQLInstrumentation=void 0;var Nm=(Ce(),ke(Ze)),ed=Jt(),rN=ite(),QB=ste(),ate=JB(),zQt=VBe(),Qa=sze(),aze=oze(),cze={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},$B=[">=14.0.0 <17"],cte=class extends ed.InstrumentationBase{constructor(t={}){super(aze.PACKAGE_NAME,aze.PACKAGE_VERSION,{...cze,...t})}setConfig(t={}){super.setConfig({...cze,...t})}init(){let t=new ed.InstrumentationNodeModuleDefinition("graphql",$B);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new ed.InstrumentationNodeModuleFile("graphql/execution/execute.js",$B,t=>((0,ed.isWrapped)(t.execute)&&this._unwrap(t,"execute"),this._wrap(t,"execute",this._patchExecute(t.defaultFieldResolver)),t),t=>{t&&this._unwrap(t,"execute")})}_addPatchingParser(){return new ed.InstrumentationNodeModuleFile("graphql/language/parser.js",$B,t=>((0,ed.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new ed.InstrumentationNodeModuleFile("graphql/validation/validate.js",$B,t=>((0,ed.isWrapped)(t.validate)&&this._unwrap(t,"validate"),this._wrap(t,"validate",this._patchValidate()),t),t=>{t&&this._unwrap(t,"validate")})}_patchExecute(t){let n=this;return function(i){return function(){let o;if(arguments.length>=2){let u=arguments;o=n._wrapExecuteArgs(u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],t)}else{let u=arguments[0];o=n._wrapExecuteArgs(u.schema,u.document,u.rootValue,u.contextValue,u.variableValues,u.operationName,u.fieldResolver,u.typeResolver,t)}let a=(0,Qa.getOperation)(o.document,o.operationName),c=n._createExecuteSpan(a,o);return o.contextValue[ate.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[ate.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Nm.context.with(Nm.trace.setSpan(Nm.context.active(),c),()=>(0,ed.safeExecuteInTheMiddle)(()=>i.apply(this,[o]),(u,l)=>{n._handleExecutionResult(c,u,l)}))}}}_handleExecutionResult(t,n,r){let i=this.getConfig();if(r===void 0||n){(0,Qa.endSpan)(t,n);return}if((0,Qa.isPromise)(r))r.then(s=>{if(typeof i.responseHook!="function"){(0,Qa.endSpan)(t);return}this._executeResponseHook(t,s)},s=>{(0,Qa.endSpan)(t,s)});else{if(typeof i.responseHook!="function"){(0,Qa.endSpan)(t);return}this._executeResponseHook(t,r)}}_executeResponseHook(t,n){let{responseHook:r}=this.getConfig();r&&(0,ed.safeExecuteInTheMiddle)(()=>{r(t,n)},i=>{i&&this._diag.error("Error running response hook",i),(0,Qa.endSpan)(t,void 0)},!0)}_patchParse(){let t=this;return function(r){return function(s,o){return t._parse(this,r,s,o)}}}_patchValidate(){let t=this;return function(r){return function(s,o,a,c,u){return t._validate(this,r,s,o,a,u,c)}}}_parse(t,n,r,i){let s=this.getConfig(),o=this.tracer.startSpan(rN.SpanNames.PARSE);return Nm.context.with(Nm.trace.setSpan(Nm.context.active(),o),()=>(0,ed.safeExecuteInTheMiddle)(()=>n.call(t,r,i),(a,c)=>{c&&((0,Qa.getOperation)(c)?c.loc&&(0,Qa.addSpanSource)(o,c.loc,s.allowValues):o.updateName(rN.SpanNames.SCHEMA_PARSE)),(0,Qa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(rN.SpanNames.VALIDATE,{});return Nm.context.with(Nm.trace.setSpan(Nm.context.active(),c),()=>(0,ed.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(rN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:QB.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Qa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(rN.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(QB.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(QB.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=zQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(QB.AttributeNames.OPERATION_NAME,s)}return n.document?.loc&&(0,Qa.addSpanSource)(i,n.document.loc,r.allowValues),n.variableValues&&r.allowValues&&(0,Qa.addInputVariableAttributes)(i,n.variableValues),i}_wrapExecuteArgs(t,n,r,i,s,o,a,c,u){if(i||(i={}),i[ate.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c};let l=a==null,d=a??u;return a=(0,Qa.wrapFieldResolver)(this.tracer,()=>this.getConfig(),d,l),t&&((0,Qa.wrapFields)(t.getQueryType(),this.tracer,()=>this.getConfig()),(0,Qa.wrapFields)(t.getMutationType(),this.tracer,()=>this.getConfig())),{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c}}};ez.GraphQLInstrumentation=cte});var lze=w(tz=>{"use strict";Object.defineProperty(tz,"__esModule",{value:!0});tz.GraphQLInstrumentation=void 0;var GQt=uze();Object.defineProperty(tz,"GraphQLInstrumentation",{enumerable:!0,get:function(){return GQt.GraphQLInstrumentation}})});function mze(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function WQt(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}var dze,fze,pze,VQt,hze,gze=v(()=>{Ce();dze=Re(lze(),1);st();sr();IA();fze="Graphql",pze=rt(fze,dze.GraphQLInstrumentation,e=>{let t=mze(e);return{...t,responseHook(n,r){Dr(n,"auto.graphql.otel.graphql"),r.errors?.length&&!vt(n).status&&n.setStatus({code:as.ERROR});let s=vt(n).data,o=s["graphql.operation.type"],a=s["graphql.operation.name"];if(t.useOperationNameForRootSpan&&o){let c=cs(n),l=vt(c).data[wA]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(wA,l)):typeof l=="string"?c.setAttribute(wA,[l,d]):c.setAttribute(wA,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${WQt(l)})`)}}}}),VQt=((e={})=>({name:fze,setupOnce(){pze(mze(e))}})),hze=VQt});var yze=w(nz=>{"use strict";Object.defineProperty(nz,"__esModule",{value:!0});nz.EVENT_LISTENERS_SET=void 0;nz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var Sze=w(rz=>{"use strict";Object.defineProperty(rz,"__esModule",{value:!0});rz.bufferTextMapGetter=void 0;rz.bufferTextMapGetter={get(e,t){if(!e)return;let n=Object.keys(e);for(let r of n)if(r===t||r.toLowerCase()===t)return e[r]?.toString()},keys(e){return e?Object.keys(e):[]}}});var bze=w(Fn=>{"use strict";Object.defineProperty(Fn,"__esModule",{value:!0});Fn.METRIC_MESSAGING_PROCESS_DURATION=Fn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=Fn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=Fn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=Fn.MESSAGING_SYSTEM_VALUE_KAFKA=Fn.MESSAGING_OPERATION_TYPE_VALUE_SEND=Fn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=Fn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=Fn.ATTR_MESSAGING_SYSTEM=Fn.ATTR_MESSAGING_OPERATION_TYPE=Fn.ATTR_MESSAGING_OPERATION_NAME=Fn.ATTR_MESSAGING_KAFKA_OFFSET=Fn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=Fn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=Fn.ATTR_MESSAGING_DESTINATION_PARTITION_ID=Fn.ATTR_MESSAGING_DESTINATION_NAME=Fn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;Fn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";Fn.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";Fn.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";Fn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";Fn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";Fn.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";Fn.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";Fn.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";Fn.ATTR_MESSAGING_SYSTEM="messaging.system";Fn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";Fn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";Fn.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";Fn.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";Fn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";Fn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";Fn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";Fn.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var Eze=w(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.PACKAGE_NAME=VA.PACKAGE_VERSION=void 0;VA.PACKAGE_VERSION="0.23.0";VA.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var wze=w(sz=>{"use strict";Object.defineProperty(sz,"__esModule",{value:!0});sz.KafkaJsInstrumentation=void 0;var Lr=(Ce(),ke(Ze)),td=Jt(),WA=(Pn(),ke(Mr)),_ze=yze(),Tze=Sze(),ot=bze(),vze=Eze();function iz(e,t,n){return r=>{e.add(t,{...n,...r?{[WA.ATTR_ERROR_TYPE]:r}:{}})}}function Rze(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[WA.ATTR_ERROR_TYPE]:r}:{}})}}var Aze=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],ute=class extends td.InstrumentationBase{constructor(t={}){super(vze.PACKAGE_NAME,vze.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:Aze}}),this._sentMessages=this.meter.createCounter(ot.METRIC_MESSAGING_CLIENT_SENT_MESSAGES),this._consumedMessages=this.meter.createCounter(ot.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES),this._processDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_PROCESS_DURATION,{advice:{explicitBucketBoundaries:Aze}})}init(){let t=r=>{(0,td.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,td.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new td.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],r=>(t(r),this._wrap(r?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(r?.Kafka?.prototype,"consumer",this._getConsumerPatch()),r),t)}_getConsumerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,td.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[_ze.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[_ze.EVENT_LISTENERS_SET]=!0)}_recordClientDurationMetric(t){let[n,r]=t.payload.broker.split(":");this._clientDuration.record(t.payload.duration/1e3,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:`${t.payload.apiName}`,[WA.ATTR_SERVER_ADDRESS]:n,[WA.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,td.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,td.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,td.isWrapped)(s.transaction)&&t._unwrap(s,"transaction"),t._wrap(s,"transaction",t._getProducerTransactionPatch()),t._setKafkaEventListeners(s),s}}_getConsumerRunPatch(){let t=this;return n=>function(...i){let s=i[0];return s?.eachMessage&&((0,td.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,td.isWrapped)(s.eachBatch)&&t._unwrap(s,"eachBatch"),t._wrap(s,"eachBatch",t._getConsumerEachBatchPatch())),n.call(this,s)}}_getConsumerEachMessagePatch(){let t=this;return n=>function(...i){let s=i[0],o=Lr.propagation.extract(Lr.ROOT_CONTEXT,s.message.headers,Tze.bufferTextMapGetter),a=t._startConsumerSpan({topic:s.topic,message:s.message,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,ctx:o,attributes:{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)}}),c=[Rze(t._processDuration,Date.now(),{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)}),iz(t._consumedMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)})],u=Lr.context.with(Lr.trace.setSpan(o,a),()=>n.apply(this,i));return t._endSpansOnPromise([a],c,u)}}_getConsumerEachBatchPatch(){return t=>{let n=this;return function(...i){let s=i[0],o=n._startConsumerSpan({topic:s.batch.topic,message:void 0,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,ctx:Lr.ROOT_CONTEXT,attributes:{[ot.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]:s.batch.messages.length,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}});return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),o),()=>{let a=Date.now(),c=[],u=[iz(n._consumedMessages,s.batch.messages.length,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.batch.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)})];s.batch.messages.forEach(d=>{let f=Lr.propagation.extract(Lr.ROOT_CONTEXT,d.headers,Tze.bufferTextMapGetter),p=Lr.trace.getSpan(f)?.spanContext(),h;p&&(h={context:p}),c.push(n._startConsumerSpan({topic:s.batch.topic,message:d,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,link:h,attributes:{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}})),u.push(Rze(n._processDuration,a,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.batch.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}))});let l=t.apply(this,i);return c.unshift(o),n._endSpansOnPromise(c,u,l)})}}}_getProducerTransactionPatch(){let t=this;return n=>function(...i){let s=t.tracer.startSpan("transaction"),o=n.apply(this,i);return o.then(a=>{let c=a.send;a.send=function(...p){return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),s),()=>t._getSendPatch()(c).apply(this,p).catch(m=>{throw s.setStatus({code:Lr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let u=a.sendBatch;a.sendBatch=function(...p){return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),s),()=>t._getSendBatchPatch()(u).apply(this,p).catch(m=>{throw s.setStatus({code:Lr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let l=a.commit;a.commit=function(...p){let h=l.apply(this,p).then(()=>{s.setStatus({code:Lr.SpanStatusCode.OK})});return t._endSpansOnPromise([s],[],h)};let d=a.abort;a.abort=function(...p){let h=d.apply(this,p);return t._endSpansOnPromise([s],[],h)}}).catch(a=>{s.setStatus({code:Lr.SpanStatusCode.ERROR,message:a?.message}),s.recordException(a),s.end()}),o}}_getSendBatchPatch(){let t=this;return n=>function(...i){let o=i[0].topicMessages||[],a=[],c=[];o.forEach(l=>{l.messages.forEach(d=>{a.push(t._startProducerSpan(l.topic,d)),c.push(iz(t._sentMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_DESTINATION_NAME]:l.topic,...d.partition!==void 0?{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(d.partition)}:{}}))})});let u=n.apply(this,i);return t._endSpansOnPromise(a,c,u)}}_getSendPatch(){let t=this;return n=>function(...i){let s=i[0],o=s.messages.map(u=>t._startProducerSpan(s.topic,u)),a=s.messages.map(u=>iz(t._sentMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,...u.partition!==void 0?{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(u.partition)}:{}})),c=n.apply(this,i);return t._endSpansOnPromise(o,a,c)}}_endSpansOnPromise(t,n,r){return Promise.resolve(r).then(i=>(n.forEach(s=>s()),i)).catch(i=>{let s,o=WA.ERROR_TYPE_VALUE_OTHER;throw typeof i=="string"||i===void 0?s=i:typeof i=="object"&&Object.prototype.hasOwnProperty.call(i,"message")&&(s=i.message,o=i.constructor.name),n.forEach(a=>a(o)),t.forEach(a=>{a.setAttribute(WA.ATTR_ERROR_TYPE,o),a.setStatus({code:Lr.SpanStatusCode.ERROR,message:s})}),i}).finally(()=>{t.forEach(i=>i.end())})}_startConsumerSpan({topic:t,message:n,operationType:r,ctx:i,link:s,attributes:o}){let a=r===ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?"poll":r,c=this.tracer.startSpan(`${a} ${t}`,{kind:r===ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?Lr.SpanKind.CLIENT:Lr.SpanKind.CONSUMER,attributes:{...o,[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_OPERATION_TYPE]:r,[ot.ATTR_MESSAGING_OPERATION_NAME]:a,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n?.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n?.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_KAFKA_OFFSET]:n?.offset},links:s?[s]:[]},i),{consumerHook:u}=this.getConfig();return u&&n&&(0,td.safeExecuteInTheMiddle)(()=>u(c,{topic:t,message:n}),l=>{l&&this._diag.error("consumerHook error",l)},!0),c}_startProducerSpan(t,n){let r=this.tracer.startSpan(`send ${t}`,{kind:Lr.SpanKind.PRODUCER,attributes:{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:n.partition!==void 0?String(n.partition):void 0,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_OPERATION_TYPE]:ot.MESSAGING_OPERATION_TYPE_VALUE_SEND}});n.headers=n.headers??{},Lr.propagation.inject(Lr.trace.setSpan(Lr.context.active(),r),n.headers);let{producerHook:i}=this.getConfig();return i&&(0,td.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};sz.KafkaJsInstrumentation=ute});var kze=w(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});oz.KafkaJsInstrumentation=void 0;var KQt=wze();Object.defineProperty(oz,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return KQt.KafkaJsInstrumentation}})});var Ize,xze,Oze,YQt,Pze,Nze=v(()=>{Ize=Re(kze(),1);sr();xze="Kafka",Oze=rt(xze,()=>new Ize.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),YQt=(()=>({name:xze,setupOnce(){Oze()}})),Pze=YQt});var Cze=w(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.PACKAGE_NAME=KA.PACKAGE_VERSION=void 0;KA.PACKAGE_VERSION="0.58.0";KA.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var Uze=w(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});az.LruMemoizerInstrumentation=void 0;var Mze=(Ce(),ke(Ze)),Dze=Jt(),Lze=Cze(),lte=class extends Dze.InstrumentationBase{constructor(t={}){super(Lze.PACKAGE_NAME,Lze.PACKAGE_VERSION,t)}init(){return[new Dze.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <4"],t=>{let n=function(){let r=t.apply(this,arguments);return function(){let i=[...arguments],s=i.pop(),o=typeof s=="function"?Mze.context.bind(Mze.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};az.LruMemoizerInstrumentation=lte});var Fze=w(cz=>{"use strict";Object.defineProperty(cz,"__esModule",{value:!0});cz.LruMemoizerInstrumentation=void 0;var ZQt=Uze();Object.defineProperty(cz,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return ZQt.LruMemoizerInstrumentation}})});var jze,Hze,qze,JQt,Bze,zze=v(()=>{jze=Re(Fze(),1);sr();Hze="LruMemoizer",qze=rt(Hze,()=>new jze.LruMemoizerInstrumentation),JQt=(()=>({name:Hze,setupOnce(){qze()}})),Bze=JQt});var Gze=w(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Ni.DB_SYSTEM_VALUE_MONGODB=Ni.DB_SYSTEM_NAME_VALUE_MONGODB=Ni.ATTR_NET_PEER_PORT=Ni.ATTR_NET_PEER_NAME=Ni.ATTR_DB_SYSTEM=Ni.ATTR_DB_STATEMENT=Ni.ATTR_DB_OPERATION=Ni.ATTR_DB_NAME=Ni.ATTR_DB_MONGODB_COLLECTION=Ni.ATTR_DB_CONNECTION_STRING=void 0;Ni.ATTR_DB_CONNECTION_STRING="db.connection_string";Ni.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Ni.ATTR_DB_NAME="db.name";Ni.ATTR_DB_OPERATION="db.operation";Ni.ATTR_DB_STATEMENT="db.statement";Ni.ATTR_DB_SYSTEM="db.system";Ni.ATTR_NET_PEER_NAME="net.peer.name";Ni.ATTR_NET_PEER_PORT="net.peer.port";Ni.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb";Ni.DB_SYSTEM_VALUE_MONGODB="mongodb";Ni.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var Vze=w(iN=>{"use strict";Object.defineProperty(iN,"__esModule",{value:!0});iN.MongodbCommandType=void 0;var XQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(XQt=iN.MongodbCommandType||(iN.MongodbCommandType={}))});var Wze=w(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.PACKAGE_NAME=YA.PACKAGE_VERSION=void 0;YA.PACKAGE_VERSION="0.67.0";YA.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var Zze=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.MongoDBInstrumentation=void 0;var Ki=(Ce(),ke(Ze)),jn=Jt(),Cm=(Pn(),ke(Mr)),hl=Gze(),r_=Vze(),Kze=Wze(),Yze={requireParentSpan:!0},dte=class e extends jn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Kze.PACKAGE_NAME,Kze.PACKAGE_VERSION,{...Yze,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,jn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,jn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Yze,...t})}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter(hl.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsage?.add(t,{"pool.name":n,state:r})}init(){let{v3PatchConnection:t,v3UnpatchConnection:n}=this._getV3ConnectionPatches(),{v4PatchConnect:r,v4UnpatchConnect:i}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:s,v4PatchConnectionPromise:o,v4UnpatchConnection:a}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:c,v4UnpatchConnectionPool:u}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:l,v4UnpatchSessions:d}=this._getV4SessionsPatches();return[new jn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new jn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new jn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,jn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,jn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,jn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,jn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,jn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,jn.isWrapped)(t.getMore)&&this._unwrap(t,"getMore"),this._wrap(t,"getMore",this._getV3PatchCursor()),t),v3UnpatchConnection:t=>{t!==void 0&&(this._unwrap(t,"insert"),this._unwrap(t,"remove"),this._unwrap(t,"update"),this._unwrap(t,"command"),this._unwrap(t,"query"),this._unwrap(t,"getMore"))}}}_getV4SessionsPatches(){return{v4PatchSessions:t=>((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"))}}}_getV4AcquireCommand(){let t=this;return n=>function(){let i=this.sessions.length,s=n.call(this),o=this.sessions.length;return i===o?t._connCountAdd(1,t._poolName,"used"):i-1===o&&(t._connCountAdd(-1,t._poolName,"idle"),t._connCountAdd(1,t._poolName,"used")),s}}_getV4ReleaseCommand(){let t=this;return n=>function(i){let s=n.call(this,i);return t._connCountAdd(-1,t._poolName,"used"),t._connCountAdd(1,t._poolName,"idle"),s}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:t=>{let n=t.ConnectionPool.prototype;return(0,jn.isWrapped)(n.checkOut)&&this._unwrap(n,"checkOut"),this._wrap(n,"checkOut",this._getV4ConnectionPoolCheckOut()),t},v4UnpatchConnectionPool:t=>{t!==void 0&&this._unwrap(t.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:t=>((0,jn.isWrapped)(t.connect)&&this._unwrap(t,"connect"),this._wrap(t,"connect",this._getV4ConnectCommand()),t),v4UnpatchConnect:t=>{t!==void 0&&this._unwrap(t,"connect")}}}_getV4ConnectionPoolCheckOut(){return t=>function(r){let i=Ki.context.bind(Ki.context.active(),r);return t.call(this,i)}}_getV4ConnectCommand(){let t=this;return n=>function(i,s){if(n.length===1){let a=n.call(this,i);return a&&typeof a.then=="function"&&a.then(()=>t.setPoolName(i),()=>{}),a}let o=function(a,c){if(a||!c){s(a,c);return}t.setPoolName(i),s(a,c)};return n.call(this,i,o)}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandPromise()),t),v4UnpatchConnection:t=>{t!==void 0&&this._unwrap(t.Connection.prototype,"command")}}}_getV3PatchOperation(t){let n=this;return r=>function(s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=n._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof a!="object")return typeof c=="function"?r.call(this,s,o,a,c):r.call(this,s,o,a,c,u);let p=n._getV3SpanAttributes(o,s,a[0],t),h=n._spanNameFromAttrs(p),m=n.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=n._patchEnd(m,f);return typeof c=="function"?r.call(this,s,o,a,g):r.call(this,s,o,a,c,g)}}_getV3PatchCommand(){let t=this;return n=>function(i,s,o,a,c){let u=Ki.trace.getSpan(Ki.context.active()),l=t._checkSkipInstrumentation(u),d=typeof a=="function"?a:c;if(l||typeof d!="function"||typeof o!="object")return typeof a=="function"?n.call(this,i,s,o,a):n.call(this,i,s,o,a,c);let f=e._getCommandType(o),p=f===r_.MongodbCommandType.UNKNOWN?void 0:f,h=t._getV3SpanAttributes(s,i,o,p),m=t._spanNameFromAttrs(h),g=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h}),y=t._patchEnd(g,d);return typeof a=="function"?n.call(this,i,s,o,y):n.call(this,i,s,o,a,y)}}_getV4PatchCommandCallback(){let t=this;return n=>function(i,s,o,a){let c=Ki.trace.getSpan(Ki.context.active()),u=t._checkSkipInstrumentation(c),l=a,d=Object.keys(s)[0];if(typeof s!="object"||s.ismaster||s.hello)return n.call(this,i,s,o,a);let f;if(!u){let h=t._getV4SpanAttributes(this,i,s,d),m=t._spanNameFromAttrs(h);f=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h})}let p=t._patchEnd(f,l,this.id,d);return n.call(this,i,s,o,p)}}_getV4PatchCommandPromise(){let t=this;return n=>function(...i){let[s,o]=i,a=Ki.trace.getSpan(Ki.context.active()),c=t._checkSkipInstrumentation(a),u=Object.keys(o)[0],l=()=>{};if(typeof o!="object"||o.ismaster||o.hello)return n.apply(this,i);let d;if(!c){let h=t._getV4SpanAttributes(this,s,o,u),m=t._spanNameFromAttrs(h);d=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h})}let f=t._patchEnd(d,l,this.id,u),p=n.apply(this,i);return p.then(h=>f(null,h),h=>f(h)),p}}_getV3PatchFind(){let t=this;return n=>function(i,s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=t._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof o!="object")return typeof c=="function"?n.call(this,i,s,o,a,c):n.call(this,i,s,o,a,c,u);let p=t._getV3SpanAttributes(s,i,o,"find"),h=t._spanNameFromAttrs(p),m=t.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=t._patchEnd(m,f);return typeof c=="function"?n.call(this,i,s,o,a,g):n.call(this,i,s,o,a,c,g)}}_getV3PatchCursor(){let t=this;return n=>function(i,s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=t._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function")return typeof c=="function"?n.call(this,i,s,o,a,c):n.call(this,i,s,o,a,c,u);let p=t._getV3SpanAttributes(s,i,o.cmd,"getMore"),h=t._spanNameFromAttrs(p),m=t.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=t._patchEnd(m,f);return typeof c=="function"?n.call(this,i,s,o,a,g):n.call(this,i,s,o,a,c,g)}}static _getCommandType(t){return t.createIndexes!==void 0?r_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?r_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?r_.MongodbCommandType.IS_MASTER:t.count!==void 0?r_.MongodbCommandType.COUNT:t.aggregate!==void 0?r_.MongodbCommandType.AGGREGATE:r_.MongodbCommandType.UNKNOWN}_getV4SpanAttributes(t,n,r,i){let s,o;if(t){let c=typeof t.address=="string"?t.address.split(":"):"";c.length===2&&(s=c[0],o=c[1])}let a;return r?.documents&&r.documents[0]?a=r.documents[0]:r?.cursors?a=r.cursors:a=r,this._getSpanAttributes(n.db,n.collection,s,o,a,i)}_getV3SpanAttributes(t,n,r,i){let s,o;if(n&&n.s&&(s=n.s.options?.host??n.s.host,o=(n.s.options?.port??n.s.port)?.toString(),s==null||o==null)){let l=n.description?.address;if(l){let d=l.split(":");s=d[0],o=d[1]}}let[a,c]=t.toString().split("."),u=r?.query??r?.q??r;return this._getSpanAttributes(a,c,s,o,u,i)}_getSpanAttributes(t,n,r,i,s,o){let a={};if(this._dbSemconvStability&jn.SemconvStability.OLD&&(a[hl.ATTR_DB_SYSTEM]=hl.DB_SYSTEM_VALUE_MONGODB,a[hl.ATTR_DB_NAME]=t,a[hl.ATTR_DB_MONGODB_COLLECTION]=n,a[hl.ATTR_DB_OPERATION]=o,a[hl.ATTR_DB_CONNECTION_STRING]=`mongodb://${r}:${i}/${t}`),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Cm.ATTR_DB_SYSTEM_NAME]=hl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Cm.ATTR_DB_NAMESPACE]=t,a[Cm.ATTR_DB_OPERATION_NAME]=o,a[Cm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&jn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[Cm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&jn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[Cm.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,jn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&jn.SemconvStability.OLD&&(a[hl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Cm.ATTR_DB_QUERY_TEXT]=l)},l=>{l&&this._diag.error("Error running dbStatementSerializer hook",l)},!0)}return a}_spanNameFromAttrs(t){let n;return this._dbSemconvStability&jn.SemconvStability.STABLE?n=[t[Cm.ATTR_DB_OPERATION_NAME],t[Cm.ATTR_DB_COLLECTION_NAME]].filter(r=>r).join(" ")||hl.DB_SYSTEM_NAME_VALUE_MONGODB:n=`mongodb.${t[hl.ATTR_DB_OPERATION]||"command"}`,n}_getDefaultDbStatementReplacer(){let t=new WeakSet;return(n,r)=>typeof r!="object"||!r?"?":t.has(r)?"[Circular]":(t.add(r),r)}_defaultDbStatementSerializer(t){let{enhancedDatabaseReporting:n}=this.getConfig();return n?JSON.stringify(t):JSON.stringify(t,this._getDefaultDbStatementReplacer())}_handleExecutionResult(t,n){let{responseHook:r}=this.getConfig();typeof r=="function"&&(0,jn.safeExecuteInTheMiddle)(()=>{r(t,{data:n})},i=>{i&&this._diag.error("Error running response hook",i)},!0)}_patchEnd(t,n,r,i){let s=Ki.context.active(),o=this,a=!1;return function(...u){if(!a){a=!0;let l=u[0];if(t){if(l instanceof Error)t.setStatus({code:Ki.SpanStatusCode.ERROR,message:l.message});else{let d=u[1];o._handleExecutionResult(t,d)}t.end()}i==="endSessions"&&o._connCountAdd(-1,o._poolName,"idle")}return Ki.context.with(s,()=>n.apply(this,u))}}setPoolName(t){let n=t.hostAddress?.host,r=t.hostAddress?.port,i=t.dbName,s=`mongodb://${n}:${r}/${i}`;this._poolName=s}_checkSkipInstrumentation(t){return this.getConfig().requireParentSpan===!0&&t===void 0}};uz.MongoDBInstrumentation=dte});var Jze=w(sN=>{"use strict";Object.defineProperty(sN,"__esModule",{value:!0});sN.MongodbCommandType=void 0;var QQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(QQt=sN.MongodbCommandType||(sN.MongodbCommandType={}))});var Xze=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.MongodbCommandType=ZA.MongoDBInstrumentation=void 0;var $Qt=Zze();Object.defineProperty(ZA,"MongoDBInstrumentation",{enumerable:!0,get:function(){return $Qt.MongoDBInstrumentation}});var e$t=Jze();Object.defineProperty(ZA,"MongodbCommandType",{enumerable:!0,get:function(){return e$t.MongodbCommandType}})});function t$t(e){let t=fte(e);return JSON.stringify(t)}function fte(e){if(Array.isArray(e))return e.map(t=>fte(t));if(n$t(e)){let t={};return Object.entries(e).map(([n,r])=>[n,fte(r)]).reduce((n,r)=>(i$t(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function n$t(e){return typeof e=="object"&&e!==null&&!r$t(e)}function r$t(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function i$t(e){return Array.isArray(e)}var Qze,$ze,eGe,s$t,tGe,nGe=v(()=>{Qze=Re(Xze(),1);sr();$ze="Mongo",eGe=rt($ze,()=>new Qze.MongoDBInstrumentation({dbStatementSerializer:t$t,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));s$t=(()=>({name:$ze,setupOnce(){eGe()}})),tGe=s$t});var pte=w(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.DB_SYSTEM_NAME_VALUE_MONGODB=Ys.ATTR_NET_PEER_PORT=Ys.ATTR_NET_PEER_NAME=Ys.ATTR_DB_USER=Ys.ATTR_DB_SYSTEM=Ys.ATTR_DB_STATEMENT=Ys.ATTR_DB_OPERATION=Ys.ATTR_DB_NAME=Ys.ATTR_DB_MONGODB_COLLECTION=void 0;Ys.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Ys.ATTR_DB_NAME="db.name";Ys.ATTR_DB_OPERATION="db.operation";Ys.ATTR_DB_STATEMENT="db.statement";Ys.ATTR_DB_SYSTEM="db.system";Ys.ATTR_DB_USER="db.user";Ys.ATTR_NET_PEER_NAME="net.peer.name";Ys.ATTR_NET_PEER_PORT="net.peer.port";Ys.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb"});var sGe=w(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0});nS.handleCallbackResponse=nS.handlePromiseResponse=nS.getAttributesFromCollection=void 0;var rGe=(Ce(),ke(Ze)),aN=Jt(),oN=pte(),lz=(Pn(),ke(Mr));function o$t(e,t,n){let r={};return t&aN.SemconvStability.OLD&&(r[oN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[oN.ATTR_DB_NAME]=e.conn.name,r[oN.ATTR_DB_USER]=e.conn.user),t&aN.SemconvStability.STABLE&&(r[lz.ATTR_DB_COLLECTION_NAME]=e.name,r[lz.ATTR_DB_NAMESPACE]=e.conn.name),n&aN.SemconvStability.OLD&&(r[oN.ATTR_NET_PEER_NAME]=e.conn.host,r[oN.ATTR_NET_PEER_PORT]=e.conn.port),n&aN.SemconvStability.STABLE&&(r[lz.ATTR_SERVER_ADDRESS]=e.conn.host,r[lz.ATTR_SERVER_PORT]=e.conn.port),r}nS.getAttributesFromCollection=o$t;function iGe(e,t={}){e.recordException(t),e.setStatus({code:rGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` -Mongoose Error Code: ${t.code}`:""}`})}function hte(e,t,n,r=void 0){n&&(0,aN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&rGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function a$t(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(hte(t,i,n,r),i)).catch(i=>{throw iGe(t,i),i}).finally(()=>t.end()):(hte(t,e,n,r),t.end(),e)}nS.handlePromiseResponse=a$t;function c$t(e,t,n,r,i,s,o=void 0){let a=0;return i.length===2?a=1:i.length===3&&(a=2),i[a]=(c,u)=>(c?iGe(r,c):hte(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}nS.handleCallbackResponse=c$t});var oGe=w(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.PACKAGE_NAME=JA.PACKAGE_VERSION=void 0;JA.PACKAGE_VERSION="0.60.0";JA.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var dGe=w(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.MongooseInstrumentation=gu._ALREADY_INSTRUMENTED=gu._STORED_PARENT_SPAN=void 0;var Eo=(Ce(),ke(Ze)),u$t=fr(),mte=sGe(),fa=Jt(),aGe=oGe(),rS=pte(),i_=(Pn(),ke(Mr)),dz=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],l$t=["remove","count","findOneAndRemove",...dz],d$t=["count","findOneAndRemove",...dz],f$t=[...dz];function cGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?l$t:e.startsWith("7.")?d$t:f$t:dz}function uGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function lGe(e){return!e||!e.startsWith("8.")?!1:parseInt(e.split(".")[1],10)>=21}gu._STORED_PARENT_SPAN=Symbol("stored-parent-span");gu._ALREADY_INSTRUMENTED=Symbol("already-instrumented");var gte=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(aGe.PACKAGE_NAME,aGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,fa.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,fa.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new fa.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(t,n){let r=t[Symbol.toStringTag]==="Module"?t.default:t;return this._wrap(r.Model.prototype,"save",this.patchOnModelMethods("save",n)),r.Model.prototype.$save=r.Model.prototype.save,uGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),lGe(n)&&(this._wrap(r.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne",n)),this._wrap(r.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne",n))),this._wrap(r.Query.prototype,"exec",this.patchQueryExec(n)),this._wrap(r.Aggregate.prototype,"exec",this.patchAggregateExec(n)),cGe(n).forEach(s=>{this._wrap(r.Query.prototype,s,this.patchAndCaptureSpanContext(s))}),this._wrap(r.Model,"aggregate",this.patchModelAggregate()),this._wrap(r.Model,"insertMany",this.patchModelStatic("insertMany",n)),this._wrap(r.Model,"bulkWrite",this.patchModelStatic("bulkWrite",n)),r}unpatch(t,n){let r=t[Symbol.toStringTag]==="Module"?t.default:t,i=cGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,uGe(n)&&this._unwrap(r.Model.prototype,"remove"),lGe(n)&&(this._unwrap(r.Model.prototype,"updateOne"),this._unwrap(r.Model.prototype,"deleteOne")),this._unwrap(r.Query.prototype,"exec"),this._unwrap(r.Aggregate.prototype,"exec"),i.forEach(s=>{this._unwrap(r.Query.prototype,s)}),this._unwrap(r.Model,"aggregate"),this._unwrap(r.Model,"insertMany"),this._unwrap(r.Model,"bulkWrite")}patchAggregateExec(t){let n=this;return r=>function(s){if(n.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return r.apply(this,arguments);let o=this[gu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c("aggregate",{options:this.options,aggregatePipeline:this._pipeline});n._dbSemconvStability&fa.SemconvStability.OLD&&(a[rS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[i_.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this._model.collection,this._model?.modelName,"aggregate",a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchQueryExec(t){let n=this;return r=>function(s){if(this[gu._ALREADY_INSTRUMENTED])return r.apply(this,arguments);if(n.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return r.apply(this,arguments);let o=this[gu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});n._dbSemconvStability&fa.SemconvStability.OLD&&(a[rS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[i_.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this.mongooseCollection,this.model.modelName,this.op,a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchOnModelMethods(t,n){let r=this;return i=>function(o,a){if(r.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return i.apply(this,arguments);let c={document:this};o&&!(o instanceof Function)&&(c.options=o);let u={},{dbStatementSerializer:l}=r.getConfig();if(l){let f=l(t,c);r._dbSemconvStability&fa.SemconvStability.OLD&&(u[rS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[i_.ATTR_DB_QUERY_TEXT]=f)}let d=r._startSpan(this.constructor.collection,this.constructor.modelName,t,u);return o instanceof Function&&(a=o,o=void 0),r._handleResponse(d,i,this,arguments,a,n)}}_patchDocumentUpdateMethods(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return i.apply(this,arguments);let u=c,l=o,d=a;typeof o=="function"?(u=o,l=void 0,d=void 0):typeof a=="function"&&(u=a,d=void 0);let f={},p=r.getConfig().dbStatementSerializer;if(p){let g=p(t,{condition:{_id:this._id},updates:l,options:d});r._dbSemconvStability&fa.SemconvStability.OLD&&(f[rS.ATTR_DB_STATEMENT]=g),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[i_.ATTR_DB_QUERY_TEXT]=g)}let h=r._startSpan(this.constructor.collection,this.constructor.modelName,t,f),m=r._handleResponse(h,i,this,arguments,u,n);return m&&typeof m=="object"&&(m[gu._ALREADY_INSTRUMENTED]=!0),m}}patchModelStatic(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return i.apply(this,arguments);typeof a=="function"&&(c=a,a=void 0);let u={};switch(t){case"insertMany":u.documents=o;break;case"bulkWrite":u.operations=o;break;default:u.document=o;break}a!==void 0&&(u.options=a);let l={},{dbStatementSerializer:d}=r.getConfig();if(d){let p=d(t,u);r._dbSemconvStability&fa.SemconvStability.OLD&&(l[rS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[i_.ATTR_DB_QUERY_TEXT]=p)}let f=r._startSpan(this.collection,this.modelName,t,l);return r._handleResponse(f,i,this,arguments,c,n)}}patchModelAggregate(){let t=this;return n=>function(){let i=Eo.trace.getSpan(Eo.context.active()),s=t._callOriginalFunction(()=>n.apply(this,arguments));return s&&(s[gu._STORED_PARENT_SPAN]=i),s}}patchAndCaptureSpanContext(t){let n=this;return r=>function(){return this[gu._STORED_PARENT_SPAN]=Eo.trace.getSpan(Eo.context.active()),n._callOriginalFunction(()=>r.apply(this,arguments))}}_startSpan(t,n,r,i,s){let o={...i,...(0,mte.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[rS.ATTR_DB_OPERATION]=r,o[rS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[i_.ATTR_DB_OPERATION_NAME]=r,o[i_.ATTR_DB_SYSTEM_NAME]=rS.DB_SYSTEM_NAME_VALUE_MONGODB);let a=this._dbSemconvStability&fa.SemconvStability.STABLE?`${r} ${t.name}`:`mongoose.${n}.${r}`;return this.tracer.startSpan(a,{kind:Eo.SpanKind.CLIENT,attributes:o},s?Eo.trace.setSpan(Eo.context.active(),s):void 0)}_handleResponse(t,n,r,i,s,o=void 0){let a=this;if(s instanceof Function)return a._callOriginalFunction(()=>(0,mte.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,mte.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?Eo.context.with((0,u$t.suppressTracing)(Eo.context.active()),t):t()}};gu.MongooseInstrumentation=gte});var fGe=w(fz=>{"use strict";Object.defineProperty(fz,"__esModule",{value:!0});fz.MongooseInstrumentation=void 0;var p$t=dGe();Object.defineProperty(fz,"MongooseInstrumentation",{enumerable:!0,get:function(){return p$t.MongooseInstrumentation}})});var pGe,hGe,mGe,h$t,gGe,yGe=v(()=>{pGe=Re(fGe(),1);sr();hGe="Mongoose",mGe=rt(hGe,()=>new pGe.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),h$t=(()=>({name:hGe,setupOnce(){mGe()}})),gGe=h$t});var SGe=w(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Zs.DB_SYSTEM_VALUE_MYSQL=Zs.ATTR_NET_PEER_PORT=Zs.ATTR_NET_PEER_NAME=Zs.ATTR_DB_USER=Zs.ATTR_DB_SYSTEM=Zs.ATTR_DB_STATEMENT=Zs.ATTR_DB_NAME=Zs.ATTR_DB_CONNECTION_STRING=void 0;Zs.ATTR_DB_CONNECTION_STRING="db.connection_string";Zs.ATTR_DB_NAME="db.name";Zs.ATTR_DB_STATEMENT="db.statement";Zs.ATTR_DB_SYSTEM="db.system";Zs.ATTR_DB_USER="db.user";Zs.ATTR_NET_PEER_NAME="net.peer.name";Zs.ATTR_NET_PEER_PORT="net.peer.port";Zs.DB_SYSTEM_VALUE_MYSQL="mysql";Zs.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var bGe=w(cN=>{"use strict";Object.defineProperty(cN,"__esModule",{value:!0});cN.AttributeNames=void 0;var m$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(m$t=cN.AttributeNames||(cN.AttributeNames={}))});var EGe=w($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.getPoolNameOld=$a.arrayStringifyHelper=$a.getSpanName=$a.getDbValues=$a.getDbQueryText=$a.getJDBCString=$a.getConfig=void 0;function g$t(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}$a.getConfig=g$t;function y$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}$a.getJDBCString=y$t;function S$t(e){return typeof e=="string"?e:e.sql}$a.getDbQueryText=S$t;function b$t(e,t){return yte(typeof e=="string"?t:t||e.values)}$a.getDbValues=b$t;function E$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}$a.getSpanName=E$t;function yte(e){return e?`[${e.toString()}]`:""}$a.arrayStringifyHelper=yte;function _$t(e){let t=e.config.connectionConfig,n="";return n+=t.host?`host: '${t.host}', `:"",n+=t.port?`port: ${t.port}, `:"",n+=t.database?`database: '${t.database}', `:"",n+=t.user?`user: '${t.user}'`:"",t.user||(n=n.substring(0,n.length-2)),n.trim()}$a.getPoolNameOld=_$t});var _Ge=w(XA=>{"use strict";Object.defineProperty(XA,"__esModule",{value:!0});XA.PACKAGE_NAME=XA.PACKAGE_VERSION=void 0;XA.PACKAGE_VERSION="0.60.0";XA.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var vGe=w(pz=>{"use strict";Object.defineProperty(pz,"__esModule",{value:!0});pz.MySQLInstrumentation=void 0;var yu=(Ce(),ke(Ze)),nd=Jt(),QA=(Pn(),ke(Mr)),Mm=SGe(),T$t=bGe(),s_=EGe(),TGe=_Ge(),Ste=class extends nd.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(TGe.PACKAGE_NAME,TGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,nd.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,nd.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Mm.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsageOld?.add(t,{state:r,name:n})}init(){return[new nd.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,nd.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,nd.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,nd.isWrapped)(t.createPoolCluster)&&this._unwrap(t,"createPoolCluster"),this._wrap(t,"createPoolCluster",this._patchCreatePoolCluster()),t),t=>{t!==void 0&&(this._unwrap(t,"createConnection"),this._unwrap(t,"createPool"),this._unwrap(t,"createPoolCluster"))})]}_patchCreateConnection(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),s}}}_patchCreatePool(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"end",n._patchPoolEnd(s)),n._setPoolCallbacks(s,""),s}}}_patchPoolEnd(t){return n=>{let r=this;return function(s){let o=t._allConnections.length,a=t._freeConnections.length,c=o-a,u=(0,s_.getPoolNameOld)(t);r._connCountAdd(-c,u,"used"),r._connCountAdd(-a,u,"idle"),n.apply(t,arguments)}}}_patchCreatePoolCluster(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"add",n._patchAdd(s)),s}}}_patchAdd(t){return n=>{let r=this;return function(s,o){if(!r._enabled)return r._unwrap(t,"add"),n.apply(t,arguments);n.apply(t,arguments);let a=t._nodes;if(a){let c=typeof s=="object"?"CLUSTER::"+t._lastId:String(s),u=a[c].pool;r._setPoolCallbacks(u,s)}}}}_patchGetConnection(t){return n=>{let r=this;return function(s,o,a){if(!r._enabled)return r._unwrap(t,"getConnection"),n.apply(t,arguments);if(arguments.length===1&&typeof s=="function"){let c=r._getConnectionCallbackPatchFn(s);return n.call(t,c)}if(arguments.length===2&&typeof o=="function"){let c=r._getConnectionCallbackPatchFn(o);return n.call(t,s,c)}if(arguments.length===3&&typeof a=="function"){let c=r._getConnectionCallbackPatchFn(a);return n.call(t,s,o,c)}return n.apply(t,arguments)}}}_getConnectionCallbackPatchFn(t){let n=this,r=yu.context.active();return function(i,s){s&&((0,nd.isWrapped)(s.query)||n._wrap(s,"query",n._patchQuery(s))),typeof t=="function"&&yu.context.with(r,t,this,i,s)}}_patchQuery(t){return n=>{let r=this;return function(i,s,o){if(!r._enabled)return r._unwrap(t,"query"),n.apply(t,arguments);let a={},{host:c,port:u,database:l,user:d}=(0,s_.getConfig)(t.config),f=parseInt(u,10),p=(0,s_.getDbQueryText)(i);r._dbSemconvStability&nd.SemconvStability.OLD&&(a[Mm.ATTR_DB_SYSTEM]=Mm.DB_SYSTEM_VALUE_MYSQL,a[Mm.ATTR_DB_CONNECTION_STRING]=(0,s_.getJDBCString)(c,u,l),a[Mm.ATTR_DB_NAME]=l,a[Mm.ATTR_DB_USER]=d,a[Mm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&nd.SemconvStability.STABLE&&(a[QA.ATTR_DB_SYSTEM_NAME]=QA.DB_SYSTEM_NAME_VALUE_MYSQL,a[QA.ATTR_DB_NAMESPACE]=l,a[QA.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&nd.SemconvStability.OLD&&(a[Mm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Mm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&nd.SemconvStability.STABLE&&(a[QA.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[QA.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,s_.getSpanName)(i),{kind:yu.SpanKind.CLIENT,attributes:a});if(r.getConfig().enhancedDatabaseReporting){let y;Array.isArray(s)?y=s:arguments[2]&&(y=[s]),h.setAttribute(T$t.AttributeNames.MYSQL_VALUES,(0,s_.getDbValues)(i,y))}let m=Array.from(arguments).findIndex(y=>typeof y=="function"),g=yu.context.active();if(m===-1){let y=yu.context.with(yu.trace.setSpan(yu.context.active(),h),()=>n.apply(t,arguments));return yu.context.bind(g,y),y.on("error",b=>h.setStatus({code:yu.SpanStatusCode.ERROR,message:b.message})).on("end",()=>{h.end()})}else return r._wrap(arguments,m,r._patchCallbackQuery(h,g)),yu.context.with(yu.trace.setSpan(yu.context.active(),h),()=>n.apply(t,arguments))}}}_patchCallbackQuery(t,n){return r=>function(i,s,o){return i&&t.setStatus({code:yu.SpanStatusCode.ERROR,message:i.message}),t.end(),yu.context.with(n,()=>r(...arguments))}}_setPoolCallbacks(t,n){let r=n||(0,s_.getPoolNameOld)(t);t.on("connection",i=>{this._connCountAdd(1,r,"idle")}),t.on("acquire",i=>{this._connCountAdd(-1,r,"idle"),this._connCountAdd(1,r,"used")}),t.on("release",i=>{this._connCountAdd(1,r,"idle"),this._connCountAdd(-1,r,"used")})}};pz.MySQLInstrumentation=Ste});var RGe=w(hz=>{"use strict";Object.defineProperty(hz,"__esModule",{value:!0});hz.MySQLInstrumentation=void 0;var v$t=vGe();Object.defineProperty(hz,"MySQLInstrumentation",{enumerable:!0,get:function(){return v$t.MySQLInstrumentation}})});var AGe,wGe,kGe,R$t,IGe,xGe=v(()=>{AGe=Re(RGe(),1);sr();wGe="Mysql",kGe=rt(wGe,()=>new AGe.MySQLInstrumentation({})),R$t=(()=>({name:wGe,setupOnce(){kGe()}})),IGe=R$t});var bte=w(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.DB_SYSTEM_VALUE_MYSQL=qo.ATTR_NET_PEER_PORT=qo.ATTR_NET_PEER_NAME=qo.ATTR_DB_USER=qo.ATTR_DB_SYSTEM=qo.ATTR_DB_STATEMENT=qo.ATTR_DB_NAME=qo.ATTR_DB_CONNECTION_STRING=void 0;qo.ATTR_DB_CONNECTION_STRING="db.connection_string";qo.ATTR_DB_NAME="db.name";qo.ATTR_DB_STATEMENT="db.statement";qo.ATTR_DB_SYSTEM="db.system";qo.ATTR_DB_USER="db.user";qo.ATTR_NET_PEER_NAME="net.peer.name";qo.ATTR_NET_PEER_PORT="net.peer.port";qo.DB_SYSTEM_VALUE_MYSQL="mysql"});var _te=w(mz=>{"use strict";Object.defineProperty(mz,"__esModule",{value:!0});mz.addSqlCommenterComment=void 0;var Ete=(Ce(),ke(Ze)),A$t=fr();function w$t(e){let t=e.indexOf("--");if(t>=0)return!0;if(e.indexOf("/*")<0)return!1;let r=e.indexOf("*/");return t`%${t.charCodeAt(0).toString(16).toUpperCase()}`)}function I$t(e,t){if(typeof t!="string"||t.length===0||w$t(t))return t;let n=new A$t.W3CTraceContextPropagator,r={};n.inject(Ete.trace.setSpan(Ete.ROOT_CONTEXT,e),r,Ete.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=k$t(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}mz.addSqlCommenterComment=I$t});var OGe=w(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.getConnectionPrototypeToInstrument=rd.once=rd.getSpanName=rd.getQueryText=rd.getConnectionAttributes=void 0;var uN=bte(),gz=Jt(),Tte=(Pn(),ke(Mr));function x$t(e,t,n){let{host:r,port:i,database:s,user:o}=O$t(e),a={};t&gz.SemconvStability.OLD&&(a[uN.ATTR_DB_CONNECTION_STRING]=P$t(r,i,s),a[uN.ATTR_DB_NAME]=s,a[uN.ATTR_DB_USER]=o),t&gz.SemconvStability.STABLE&&(a[Tte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&gz.SemconvStability.OLD&&(a[uN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[uN.ATTR_NET_PEER_PORT]=c)),n&gz.SemconvStability.STABLE&&(a[Tte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[Tte.ATTR_SERVER_PORT]=c)),a}rd.getConnectionAttributes=x$t;function O$t(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}function P$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function N$t(e,t,n,r=!1,i=C$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,M$t(e)?n||e.values:n];try{return r?i(s):t&&o?t(s,o):s}catch{return"Could not determine the query due to an error in masking or formatting"}}rd.getQueryText=N$t;function C$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function M$t(e){return"values"in e}function D$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}rd.getSpanName=D$t;var L$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};rd.once=L$t;function U$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}rd.getConnectionPrototypeToInstrument=U$t});var PGe=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.PACKAGE_NAME=$A.PACKAGE_VERSION=void 0;$A.PACKAGE_VERSION="0.60.0";$A.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var DGe=w(yz=>{"use strict";Object.defineProperty(yz,"__esModule",{value:!0});yz.MySQL2Instrumentation=void 0;var NGe=(Ce(),ke(Ze)),mf=Jt(),vte=bte(),CGe=_te(),ew=OGe(),MGe=PGe(),Rte=(Pn(),ke(Mr)),Ate=[">=1.4.2 <4"],wte=class extends mf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(MGe.PACKAGE_NAME,MGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,mf.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,mf.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let t;function n(s){!t&&s.format&&(t=s.format)}let r=s=>{(0,mf.isWrapped)(s.query)&&this._unwrap(s,"query"),this._wrap(s,"query",this._patchQuery(t,!1)),(0,mf.isWrapped)(s.execute)&&this._unwrap(s,"execute"),this._wrap(s,"execute",this._patchQuery(t,!0))},i=s=>{this._unwrap(s,"query"),this._unwrap(s,"execute")};return[new mf.InstrumentationNodeModuleDefinition("mysql2",Ate,s=>(n(s),s),()=>{},[new mf.InstrumentationNodeModuleFile("mysql2/promise.js",Ate,s=>(n(s),s),()=>{}),new mf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",Ate,s=>{let o=(0,ew.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,ew.getConnectionPrototypeToInstrument)(s);i(o)})])]}_patchQuery(t,n){return r=>{let i=this;return function(s,o,a){let c;Array.isArray(o)?c=o:arguments[2]&&(c=[o]);let{maskStatement:u,maskStatementHook:l,responseHook:d}=i.getConfig(),f=(0,ew.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,ew.getQueryText)(s,t,c,u,l);i._dbSemconvStability&mf.SemconvStability.OLD&&(f[vte.ATTR_DB_SYSTEM]=vte.DB_SYSTEM_VALUE_MYSQL,f[vte.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&mf.SemconvStability.STABLE&&(f[Rte.ATTR_DB_SYSTEM_NAME]=Rte.DB_SYSTEM_NAME_VALUE_MYSQL,f[Rte.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,ew.getSpanName)(s),{kind:NGe.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,CGe.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,CGe.addSqlCommenterComment)(h,s.sql)}));let m=(0,ew.once)((g,y)=>{g?h.setStatus({code:NGe.SpanStatusCode.ERROR,message:g.message}):typeof d=="function"&&(0,mf.safeExecuteInTheMiddle)(()=>{d(h,{queryResults:y})},b=>{b&&i._diag.warn("Failed executing responseHook",b)},!0),h.end()});if(arguments.length===1){typeof s.onResult=="function"&&i._wrap(s,"onResult",i._patchCallbackQuery(m));let g=r.apply(this,arguments);return g.once("error",y=>{m(y)}).once("result",y=>{m(void 0,y)}),g}return typeof arguments[1]=="function"?i._wrap(arguments,1,i._patchCallbackQuery(m)):typeof arguments[2]=="function"&&i._wrap(arguments,2,i._patchCallbackQuery(m)),r.apply(this,arguments)}}}_patchCallbackQuery(t){return n=>function(r,i,s){return t(r,i),n(...arguments)}}};yz.MySQL2Instrumentation=wte});var LGe=w(Sz=>{"use strict";Object.defineProperty(Sz,"__esModule",{value:!0});Sz.MySQL2Instrumentation=void 0;var F$t=DGe();Object.defineProperty(Sz,"MySQL2Instrumentation",{enumerable:!0,get:function(){return F$t.MySQL2Instrumentation}})});var UGe,FGe,jGe,j$t,HGe,qGe=v(()=>{UGe=Re(LGe(),1);sr();FGe="Mysql2",jGe=rt(FGe,()=>new UGe.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),j$t=(()=>({name:FGe,setupOnce(){jGe()}})),HGe=j$t});var BGe=w(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});ec.DB_SYSTEM_VALUE_REDIS=ec.DB_SYSTEM_NAME_VALUE_REDIS=ec.ATTR_NET_PEER_PORT=ec.ATTR_NET_PEER_NAME=ec.ATTR_DB_SYSTEM=ec.ATTR_DB_STATEMENT=ec.ATTR_DB_CONNECTION_STRING=void 0;ec.ATTR_DB_CONNECTION_STRING="db.connection_string";ec.ATTR_DB_STATEMENT="db.statement";ec.ATTR_DB_SYSTEM="db.system";ec.ATTR_NET_PEER_NAME="net.peer.name";ec.ATTR_NET_PEER_PORT="net.peer.port";ec.DB_SYSTEM_NAME_VALUE_REDIS="redis";ec.DB_SYSTEM_VALUE_REDIS="redis"});var zGe=w(bz=>{"use strict";Object.defineProperty(bz,"__esModule",{value:!0});bz.endSpan=void 0;var H$t=(Ce(),ke(Ze)),q$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:H$t.SpanStatusCode.ERROR,message:t.message})),e.end()};bz.endSpan=q$t});var _z=w(Ez=>{"use strict";Object.defineProperty(Ez,"__esModule",{value:!0});Ez.defaultDbStatementSerializer=void 0;var B$t=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],z$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=B$t.find(({regex:i})=>i.test(e))?.args??0,r=n>=0?t.slice(0,n):t;return t.length>r.length&&r.push(`[${t.length-n} other arguments]`),`${e} ${r.join(" ")}`}return e};Ez.defaultDbStatementSerializer=z$t});var GGe=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.PACKAGE_NAME=tw.PACKAGE_VERSION=void 0;tw.PACKAGE_VERSION="0.62.0";tw.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var YGe=w(Tz=>{"use strict";Object.defineProperty(Tz,"__esModule",{value:!0});Tz.IORedisInstrumentation=void 0;var iS=(Ce(),ke(Ze)),Su=Jt(),sS=(Pn(),ke(Mr)),bu=BGe(),VGe=Jt(),lN=zGe(),G$t=_z(),WGe=GGe(),KGe={requireParentSpan:!0},kte=class extends Su.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(WGe.PACKAGE_NAME,WGe.PACKAGE_VERSION,{...KGe,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Su.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Su.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...KGe,...t})}init(){return[new Su.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(t,n)=>{let r=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,Su.isWrapped)(r.prototype.sendCommand)&&this._unwrap(r.prototype,"sendCommand"),this._wrap(r.prototype,"sendCommand",this._patchSendCommand(n)),(0,Su.isWrapped)(r.prototype.connect)&&this._unwrap(r.prototype,"connect"),this._wrap(r.prototype,"connect",this._patchConnection()),t},t=>{if(t===void 0)return;let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._unwrap(n.prototype,"sendCommand"),this._unwrap(n.prototype,"connect")})]}_patchSendCommand(t){return n=>this._traceSendCommand(n,t)}_patchConnection(){return t=>this._traceConnection(t)}_traceSendCommand(t,n){let r=this;return function(i){if(arguments.length<1||typeof i!="object")return t.apply(this,arguments);let s=r.getConfig(),o=s.dbStatementSerializer||G$t.defaultDbStatementSerializer,a=iS.trace.getSpan(iS.context.active())===void 0;if(s.requireParentSpan===!0&&a)return t.apply(this,arguments);let c={},{host:u,port:l}=this.options,d=o(i.name,i.args);r._dbSemconvStability&Su.SemconvStability.OLD&&(c[bu.ATTR_DB_SYSTEM]=bu.DB_SYSTEM_VALUE_REDIS,c[bu.ATTR_DB_STATEMENT]=d,c[bu.ATTR_DB_CONNECTION_STRING]=`redis://${u}:${l}`),r._dbSemconvStability&Su.SemconvStability.STABLE&&(c[sS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,c[sS.ATTR_DB_QUERY_TEXT]=d),r._netSemconvStability&Su.SemconvStability.OLD&&(c[bu.ATTR_NET_PEER_NAME]=u,c[bu.ATTR_NET_PEER_PORT]=l),r._netSemconvStability&Su.SemconvStability.STABLE&&(c[sS.ATTR_SERVER_ADDRESS]=u,c[sS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:iS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,VGe.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&iS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(y){(0,VGe.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,y),b=>{b&&iS.diag.error("ioredis instrumentation: response hook failed",b)},!0),(0,lN.endSpan)(f,null),m(y)};let g=i.reject;return i.reject=function(y){(0,lN.endSpan)(f,y),g(y)},h}catch(h){throw(0,lN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=iS.trace.getSpan(iS.context.active())===void 0;if(n.getConfig().requireParentSpan===!0&&r)return t.apply(this,arguments);let i={},{host:s,port:o}=this.options;n._dbSemconvStability&Su.SemconvStability.OLD&&(i[bu.ATTR_DB_SYSTEM]=bu.DB_SYSTEM_VALUE_REDIS,i[bu.ATTR_DB_STATEMENT]="connect",i[bu.ATTR_DB_CONNECTION_STRING]=`redis://${s}:${o}`),n._dbSemconvStability&Su.SemconvStability.STABLE&&(i[sS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,i[sS.ATTR_DB_QUERY_TEXT]="connect"),n._netSemconvStability&Su.SemconvStability.OLD&&(i[bu.ATTR_NET_PEER_NAME]=s,i[bu.ATTR_NET_PEER_PORT]=o),n._netSemconvStability&Su.SemconvStability.STABLE&&(i[sS.ATTR_SERVER_ADDRESS]=s,i[sS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:iS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,lN.endSpan)(a,null),c}catch(c){throw(0,lN.endSpan)(a,c),c}}}};Tz.IORedisInstrumentation=kte});var ZGe=w(vz=>{"use strict";Object.defineProperty(vz,"__esModule",{value:!0});vz.IORedisInstrumentation=void 0;var V$t=YGe();Object.defineProperty(vz,"IORedisInstrumentation",{enumerable:!0,get:function(){return V$t.IORedisInstrumentation}})});var Rz=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.PACKAGE_NAME=nw.PACKAGE_VERSION=void 0;nw.PACKAGE_VERSION="0.62.0";nw.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var JGe=w(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0});oS.getTracedCreateStreamTrace=oS.getTracedCreateClient=oS.endSpan=void 0;var dN=(Ce(),ke(Ze)),W$t=(e,t)=>{t&&e.setStatus({code:dN.SpanStatusCode.ERROR,message:t.message}),e.end()};oS.endSpan=W$t;var K$t=e=>function(){let n=e.apply(this,arguments);return dN.context.bind(dN.context.active(),n)};oS.getTracedCreateClient=K$t;var Y$t=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){dN.context.bind(dN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};oS.getTracedCreateStreamTrace=Y$t});var Az=w(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});tc.DB_SYSTEM_VALUE_REDIS=tc.DB_SYSTEM_NAME_VALUE_REDIS=tc.ATTR_NET_PEER_PORT=tc.ATTR_NET_PEER_NAME=tc.ATTR_DB_SYSTEM=tc.ATTR_DB_STATEMENT=tc.ATTR_DB_CONNECTION_STRING=void 0;tc.ATTR_DB_CONNECTION_STRING="db.connection_string";tc.ATTR_DB_STATEMENT="db.statement";tc.ATTR_DB_SYSTEM="db.system";tc.ATTR_NET_PEER_NAME="net.peer.name";tc.ATTR_NET_PEER_PORT="net.peer.port";tc.DB_SYSTEM_NAME_VALUE_REDIS="redis";tc.DB_SYSTEM_VALUE_REDIS="redis"});var QGe=w(kz=>{"use strict";Object.defineProperty(kz,"__esModule",{value:!0});kz.RedisInstrumentationV2_V3=void 0;var ml=Jt(),wz=JGe(),XGe=Rz(),fN=(Ce(),ke(Ze)),pN=(Pn(),ke(Mr)),o_=Az(),Z$t=_z(),Ite=class e extends ml.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(XGe.PACKAGE_NAME,XGe.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,ml.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,ml.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new ml.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],t=>((0,ml.isWrapped)(t.RedisClient.prototype.internal_send_command)&&this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._wrap(t.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,ml.isWrapped)(t.RedisClient.prototype.create_stream)&&this._unwrap(t.RedisClient.prototype,"create_stream"),this._wrap(t.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,ml.isWrapped)(t.createClient)&&this._unwrap(t,"createClient"),this._wrap(t,"createClient",this._getPatchCreateClient()),t),t=>{t!==void 0&&(this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._unwrap(t.RedisClient.prototype,"create_stream"),this._unwrap(t,"createClient"))})]}_getPatchInternalSendCommand(){let t=this;return function(r){return function(s){if(arguments.length!==1||typeof s!="object")return r.apply(this,arguments);let o=t.getConfig(),a=fN.trace.getSpan(fN.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||Z$t.defaultDbStatementSerializer,u={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(u,{[o_.ATTR_DB_SYSTEM]:o_.DB_SYSTEM_VALUE_REDIS,[o_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(u,{[pN.ATTR_DB_SYSTEM_NAME]:o_.DB_SYSTEM_NAME_VALUE_REDIS,[pN.ATTR_DB_OPERATION_NAME]:s.command,[pN.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:fN.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(f,{[o_.ATTR_NET_PEER_NAME]:this.connection_options.host,[o_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(f,{[pN.ATTR_SERVER_ADDRESS]:this.connection_options.host,[pN.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&ml.SemconvStability.OLD&&l.setAttribute(o_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=fN.context.active();arguments[0].callback=function(h,m){if(o?.responseHook){let g=o.responseHook;(0,ml.safeExecuteInTheMiddle)(()=>{g(l,s.command,s.args,m)},y=>{y&&t._diag.error("Error executing responseHook",y)},!0)}return(0,wz.endSpan)(l,h),fN.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,wz.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,wz.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,wz.getTracedCreateStreamTrace)(n)}}};kz.RedisInstrumentationV2_V3=Ite});var e2e=w(Iz=>{"use strict";Object.defineProperty(Iz,"__esModule",{value:!0});Iz.getClientAttributes=void 0;var xte=(Pn(),ke(Mr)),rw=Az(),$Ge=Jt();function J$t(e,t,n){let r={};return n&$Ge.SemconvStability.OLD&&Object.assign(r,{[rw.ATTR_DB_SYSTEM]:rw.DB_SYSTEM_VALUE_REDIS,[rw.ATTR_NET_PEER_NAME]:t?.socket?.host,[rw.ATTR_NET_PEER_PORT]:t?.socket?.port,[rw.ATTR_DB_CONNECTION_STRING]:X$t(e,t?.url)}),n&$Ge.SemconvStability.STABLE&&Object.assign(r,{[xte.ATTR_DB_SYSTEM_NAME]:rw.DB_SYSTEM_NAME_VALUE_REDIS,[xte.ATTR_SERVER_ADDRESS]:t?.socket?.host,[xte.ATTR_SERVER_PORT]:t?.socket?.port}),r}Iz.getClientAttributes=J$t;function X$t(e,t){if(!(typeof t!="string"||!t))try{let n=new URL(t);return n.searchParams.delete("user_pwd"),n.username="",n.password="",n.href}catch(n){e.error("failed to sanitize redis connection url",n)}}});var i2e=w(xz=>{"use strict";Object.defineProperty(xz,"__esModule",{value:!0});xz.RedisInstrumentationV4_V5=void 0;var id=(Ce(),ke(Ze)),pi=Jt(),t2e=e2e(),Q$t=_z(),n2e=Rz(),Ote=(Pn(),ke(Mr)),$$t=Az(),hN=Symbol("opentelemetry.instrumentation.redis.open_spans"),r2e=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),Pte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(n2e.PACKAGE_NAME,n2e.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,pi.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,pi.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(t){let n=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/commander.js`,["^1.0.0"],(s,o)=>{let a=s.transformCommandArguments;if(!a)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),s;let c=o?.startsWith("1.0.")?"extendWithCommands":"attachCommands";return(0,pi.isWrapped)(s?.[c])&&this._unwrap(s,c),this._wrap(s,c,this._getPatchExtendWithCommands(a)),s},s=>{(0,pi.isWrapped)(s?.extendWithCommands)&&this._unwrap(s,"extendWithCommands"),(0,pi.isWrapped)(s?.attachCommands)&&this._unwrap(s,"attachCommands")}),r=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/client/multi-command.js`,["^1.0.0","^5.0.0"],s=>{let o=s?.default?.prototype;return(0,pi.isWrapped)(o?.exec)&&this._unwrap(o,"exec"),this._wrap(o,"exec",this._getPatchMultiCommandsExec(!1)),(0,pi.isWrapped)(o?.execAsPipeline)&&this._unwrap(o,"execAsPipeline"),this._wrap(o,"execAsPipeline",this._getPatchMultiCommandsExec(!0)),(0,pi.isWrapped)(o?.addCommand)&&this._unwrap(o,"addCommand"),this._wrap(o,"addCommand",this._getPatchMultiCommandsAddCommand()),s},s=>{let o=s?.default?.prototype;(0,pi.isWrapped)(o?.exec)&&this._unwrap(o,"exec"),(0,pi.isWrapped)(o?.addCommand)&&this._unwrap(o,"addCommand")}),i=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/client/index.js`,["^1.0.0","^5.0.0"],s=>{let o=s?.default?.prototype;return o?.multi&&((0,pi.isWrapped)(o?.multi)&&this._unwrap(o,"multi"),this._wrap(o,"multi",this._getPatchRedisClientMulti())),o?.MULTI&&((0,pi.isWrapped)(o?.MULTI)&&this._unwrap(o,"MULTI"),this._wrap(o,"MULTI",this._getPatchRedisClientMulti())),(0,pi.isWrapped)(o?.sendCommand)&&this._unwrap(o,"sendCommand"),this._wrap(o,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(o,"connect",this._getPatchedClientConnect()),s},s=>{let o=s?.default?.prototype;(0,pi.isWrapped)(o?.multi)&&this._unwrap(o,"multi"),(0,pi.isWrapped)(o?.MULTI)&&this._unwrap(o,"MULTI"),(0,pi.isWrapped)(o?.sendCommand)&&this._unwrap(o,"sendCommand")});return new pi.InstrumentationNodeModuleDefinition(t,["^1.0.0","^5.0.0"],s=>s,()=>{},[n,r,i])}_getPatchExtendWithCommands(t){let n=this;return function(i){return function(o){if(o?.BaseClass?.name!=="RedisClient")return i.apply(this,arguments);let a=o.executor;return o.executor=function(c,u){let l=t(c,u).args;return n._traceClientCommand(a,this,arguments,l)},i.apply(this,arguments)}}}_getPatchMultiCommandsExec(t){let n=this;return function(i){return function(){let o=i.apply(this,arguments);return typeof o?.then!="function"?(n._diag.error("non-promise result when patching exec/execAsPipeline"),o):o.then(a=>{let c=this[hN];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[hN];if(!c)n._diag.error("cannot find open spans to end for multi/pipeline");else{let u=a.constructor.name==="MultiErrorReply"?a.replies:new Array(c.length).fill(a);n._endSpansWithRedisReplies(c,u,t)}return Promise.reject(a)})}}}_getPatchMultiCommandsAddCommand(){let t=this;return function(r){return function(s){return t._traceClientCommand(r,this,arguments,s)}}}_getPatchRedisClientMulti(){return function(n){return function(){let i=n.apply(this,arguments);return i[r2e]=this.options,i}}}_getPatchRedisClientSendCommand(){let t=this;return function(r){return function(s){return t._traceClientCommand(r,this,arguments,s)}}}_getPatchedClientConnect(){let t=this;return function(r){return function(){let s=this.options,o=(0,t2e.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:id.SpanKind.CLIENT,attributes:o});return id.context.with(id.trace.setSpan(id.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:id.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(id.trace.getSpan(id.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[r2e],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||Q$t.defaultDbStatementSerializer,l=(0,t2e.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Ote.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[$$t.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Ote.ATTR_DB_QUERY_TEXT]=p))}catch(p){this._diag.error("dbStatementSerializer throw an exception",p,{commandName:a})}let d=this.tracer.startSpan(`${e.COMPONENT}-${a}`,{kind:id.SpanKind.CLIENT,attributes:l}),f=id.context.with(id.trace.setSpan(id.context.active(),d),()=>t.apply(n,r));if(typeof f?.then=="function")f.then(p=>{this._endSpanWithResponse(d,a,c,p,void 0)},p=>{this._endSpanWithResponse(d,a,c,null,p)});else{let p=f;p[hN]=p[hN]||[],p[hN].push({span:d,commandName:a,commandArgs:c})}return f}_endSpansWithRedisReplies(t,n,r=!1){if(!t)return this._diag.error("cannot find open spans to end for redis multi/pipeline");if(n.length!==t.length)return this._diag.error("number of multi command spans does not match response from redis");let i=t.map(a=>a.commandName),o=i.every(a=>a===i[0])?(r?"PIPELINE ":"MULTI ")+i[0]:r?"PIPELINE":"MULTI";for(let a=0;a{"use strict";Object.defineProperty(Oz,"__esModule",{value:!0});Oz.RedisInstrumentation=void 0;var een=Jt(),s2e=Rz(),ten=QGe(),nen=i2e(),o2e={requireParentSpan:!1},Nte=class extends een.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...o2e,...t};super(s2e.PACKAGE_NAME,s2e.PACKAGE_VERSION,n),this.instrumentationV2_V3=new ten.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new nen.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...o2e,...t};super.setConfig(n),this.initialized&&(this.instrumentationV2_V3.setConfig(n),this.instrumentationV4_V5.setConfig(n))}init(){}getModuleDefinitions(){return[...this.instrumentationV2_V3.getModuleDefinitions(),...this.instrumentationV4_V5.getModuleDefinitions()]}setTracerProvider(t){super.setTracerProvider(t),this.initialized&&(this.instrumentationV2_V3.setTracerProvider(t),this.instrumentationV4_V5.setTracerProvider(t))}enable(){super.enable(),this.initialized&&(this.instrumentationV2_V3.enable(),this.instrumentationV4_V5.enable())}disable(){super.disable(),this.initialized&&(this.instrumentationV2_V3.disable(),this.instrumentationV4_V5.disable())}};Oz.RedisInstrumentation=Nte});var c2e=w(Pz=>{"use strict";Object.defineProperty(Pz,"__esModule",{value:!0});Pz.RedisInstrumentation=void 0;var ren=a2e();Object.defineProperty(Pz,"RedisInstrumentation",{enumerable:!0,get:function(){return ren.RedisInstrumentation}})});function mN(e,t){return e.includes(t.toLowerCase())}function Mte(e){return mN(Cte,e)?"cache.get":mN(sen,e)?"cache.put":void 0}function oen(e,t){return t.some(n=>e.startsWith(n))}function l2e(e,t){try{if(t.length===0)return;let n=i=>typeof i=="string"||typeof i=="number"||Buffer.isBuffer(i)?[i.toString()]:Array.isArray(i)?u2e(i.map(s=>n(s))):[""],r=t[0];return mN(ien,e)&&r!=null?n(r):u2e(t.map(i=>n(i)))}catch{return}}function d2e(e,t,n){if(!Mte(e))return!1;for(let r of t)if(oen(r,n))return!0;return!1}function f2e(e){let t=n=>{try{return Buffer.isBuffer(n)?n.byteLength:typeof n=="string"?n.length:typeof n=="number"?n.toString().length:n==null?0:JSON.stringify(n).length}catch{return}};return Array.isArray(e)?e.reduce((n,r)=>{let i=t(r);return typeof i=="number"?n!==void 0?n+i:i:n},0):t(e)}function u2e(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var ien,Cte,sen,p2e=v(()=>{ien=["get","set","setex"],Cte=["get","mget"],sen=["set","setex"]});var h2e,m2e,Nz,gN,g2e,aen,cen,y2e,uen,S2e,b2e=v(()=>{h2e=Re(ZGe(),1),m2e=Re(c2e(),1);st();sr();p2e();Nz="Redis",gN={},g2e=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=l2e(t,n),s=Mte(t);if(!i||!s||!gN.cachePrefixes||!d2e(t,i,gN.cachePrefixes))return;let o=vt(e).data["net.peer.name"],a=vt(e).data["net.peer.port"];a&&o&&e.setAttributes({"network.peer.address":o,"network.peer.port":a});let c=f2e(r);c&&e.setAttribute(rX,c),mN(Cte,t)&&c!==void 0&&e.setAttribute(tX,c>0),e.setAttributes({[zt]:s,[nX]:i});let u=i.join(", ");e.updateName(gN.maxCacheKeyLength?Ey(u,gN.maxCacheKeyLength):u)},aen=rt(`${Nz}.IORedis`,()=>new h2e.IORedisInstrumentation({responseHook:g2e})),cen=rt(`${Nz}.Redis`,()=>new m2e.RedisInstrumentation({responseHook:g2e})),y2e=Object.assign(()=>{aen(),cen()},{id:Nz}),uen=((e={})=>({name:Nz,setupOnce(){gN=e,y2e()}})),S2e=uen});var E2e=w(Cz=>{"use strict";Object.defineProperty(Cz,"__esModule",{value:!0});Cz.EVENT_LISTENERS_SET=void 0;Cz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var Dte=w(yN=>{"use strict";Object.defineProperty(yN,"__esModule",{value:!0});yN.AttributeNames=void 0;var len;(function(e){e.PG_VALUES="db.postgresql.values",e.PG_PLAN="db.postgresql.plan",e.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",e.MAX_CLIENT="db.postgresql.max.client"})(len=yN.AttributeNames||(yN.AttributeNames={}))});var Lte=w(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=Tr.METRIC_DB_CLIENT_CONNECTION_COUNT=Tr.DB_SYSTEM_VALUE_POSTGRESQL=Tr.DB_CLIENT_CONNECTION_STATE_VALUE_USED=Tr.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=Tr.ATTR_NET_PEER_PORT=Tr.ATTR_NET_PEER_NAME=Tr.ATTR_DB_USER=Tr.ATTR_DB_SYSTEM=Tr.ATTR_DB_STATEMENT=Tr.ATTR_DB_NAME=Tr.ATTR_DB_CONNECTION_STRING=Tr.ATTR_DB_CLIENT_CONNECTION_STATE=Tr.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0;Tr.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name";Tr.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state";Tr.ATTR_DB_CONNECTION_STRING="db.connection_string";Tr.ATTR_DB_NAME="db.name";Tr.ATTR_DB_STATEMENT="db.statement";Tr.ATTR_DB_SYSTEM="db.system";Tr.ATTR_DB_USER="db.user";Tr.ATTR_NET_PEER_NAME="net.peer.name";Tr.ATTR_NET_PEER_PORT="net.peer.port";Tr.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle";Tr.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used";Tr.DB_SYSTEM_VALUE_POSTGRESQL="postgresql";Tr.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count";Tr.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"});var Ute=w(SN=>{"use strict";Object.defineProperty(SN,"__esModule",{value:!0});SN.SpanNames=void 0;var den;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(den=SN.SpanNames||(SN.SpanNames={}))});var k2e=w(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.sanitizedErrorMessage=Hn.isObjectWithTextString=Hn.getErrorMessage=Hn.patchClientConnectCallback=Hn.patchCallbackPGPool=Hn.updateCounter=Hn.getPoolName=Hn.patchCallback=Hn.handleExecutionResult=Hn.handleConfigQuery=Hn.shouldSkipInstrumentation=Hn.getSemanticAttributesFromPoolConnection=Hn.getSemanticAttributesFromConnection=Hn.getConnectionString=Hn.parseAndMaskConnectionString=Hn.parseNormalizedOperationName=Hn.getQuerySpanName=void 0;var aS=(Ce(),ke(Ze)),Mz=Dte(),sd=(Pn(),ke(Mr)),ds=Lte(),a_=Jt(),_2e=Ute();function T2e(e,t){if(!t)return _2e.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:v2e(t.text);return`${_2e.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}Hn.getQuerySpanName=T2e;function v2e(e){let t=e.trim(),n=t.indexOf(" "),r=n===-1?t:t.slice(0,n);return r=r.toUpperCase(),r.endsWith(";")?r.slice(0,-1):r}Hn.parseNormalizedOperationName=v2e;function R2e(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}Hn.parseAndMaskConnectionString=R2e;function Fte(e){if("connectionString"in e&&e.connectionString)return R2e(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}Hn.getConnectionString=Fte;function Dz(e){if(Number.isInteger(e))return e}function A2e(e,t){let n={};return t&a_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:Fte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:Dz(e.port)}),t&a_.SemconvStability.STABLE&&(n={...n,[sd.ATTR_DB_SYSTEM_NAME]:sd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[sd.ATTR_DB_NAMESPACE]:e.namespace,[sd.ATTR_SERVER_ADDRESS]:e.host,[sd.ATTR_SERVER_PORT]:Dz(e.port)}),n}Hn.getSemanticAttributesFromConnection=A2e;function fen(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[Mz.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[Mz.AttributeNames.MAX_CLIENT]:e.maxClient};return t&a_.SemconvStability.OLD&&(r={...r,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:n?.pathname.slice(1)??e.database,[ds.ATTR_DB_CONNECTION_STRING]:Fte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||Dz(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&a_.SemconvStability.STABLE&&(r={...r,[sd.ATTR_DB_SYSTEM_NAME]:sd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[sd.ATTR_DB_NAMESPACE]:e.namespace,[sd.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[sd.ATTR_SERVER_PORT]:Number(n?.port)||Dz(e.port)}),r}Hn.getSemanticAttributesFromPoolConnection=fen;function pen(e){return e.requireParentSpan===!0&&aS.trace.getSpan(aS.context.active())===void 0}Hn.shouldSkipInstrumentation=pen;function hen(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=T2e(s,r),a=e.startSpan(o,{kind:aS.SpanKind.CLIENT,attributes:A2e(i,n)});if(!r)return a;if(r.text&&(n&a_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&a_.SemconvStability.STABLE&&a.setAttribute(sd.ATTR_DB_QUERY_TEXT,r.text)),t.enhancedDatabaseReporting&&Array.isArray(r.values))try{let c=r.values.map(u=>u==null?"null":u instanceof Buffer?u.toString():typeof u=="object"?typeof u.toPostgres=="function"?u.toPostgres():JSON.stringify(u):u.toString());a.setAttribute(Mz.AttributeNames.PG_VALUES,c)}catch(c){aS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(Mz.AttributeNames.PG_PLAN,r.name),a}Hn.handleConfigQuery=hen;function w2e(e,t,n){typeof e.responseHook=="function"&&(0,a_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&aS.diag.error("Error running response hook",r)},!0)}Hn.handleExecutionResult=w2e;function men(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[sd.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(Lz(o)),t.setStatus({code:aS.SpanStatusCode.ERROR,message:o.message})):w2e(e,t,a),i(),t.end(),n.call(this,o,a)}}Hn.patchCallback=men;function gen(e){let t="";return t+=(e?.host?`${e.host}`:"unknown_host")+":",t+=(e?.port?`${e.port}`:"unknown_port")+"/",t+=e?.database?`${e.database}`:"unknown_database",t.trim()}Hn.getPoolName=gen;function yen(e,t,n,r,i){let s=t.totalCount,o=t.waitingCount,a=t.idleCount,c=s-a;return n.add(c-i.used,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(a-i.idle,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(o-i.pending,{[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:c,idle:a,pending:o}}Hn.updateCounter=yen;function Sen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(Lz(r)),e.setStatus({code:aS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}Hn.patchCallbackPGPool=Sen;function ben(e,t){return function(r){r&&(r instanceof Error&&e.recordException(Lz(r)),e.setStatus({code:aS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}Hn.patchClientConnectCallback=ben;function Een(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}Hn.getErrorMessage=Een;function _en(e){return typeof e=="object"&&typeof e?.text=="string"}Hn.isObjectWithTextString=_en;function Lz(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}Hn.sanitizedErrorMessage=Lz});var I2e=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.PACKAGE_NAME=iw.PACKAGE_VERSION=void 0;iw.PACKAGE_VERSION="0.66.0";iw.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var M2e=w(Fz=>{"use strict";Object.defineProperty(Fz,"__esModule",{value:!0});Fz.PgInstrumentation=void 0;var Uc=Jt(),Ur=(Ce(),ke(Ze)),x2e=E2e(),Yi=k2e(),O2e=_te(),P2e=I2e(),N2e=Ute(),Uz=fr(),gf=(Pn(),ke(Mr)),bN=Lte();function sw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var jte=class extends Uc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(P2e.PACKAGE_NAME,P2e.PACKAGE_VERSION,t),this._semconvStability=(0,Uc.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(gf.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:Ur.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.001,.005,.01,.05,.1,.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(bN.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(bN.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let t=[">=8.0.3 <9"],n=[">=2.0.0 <4"],r=new Uc.InstrumentationNodeModuleFile("pg/lib/native/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),i=new Uc.InstrumentationNodeModuleFile("pg/lib/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),s=new Uc.InstrumentationNodeModuleDefinition("pg",t,a=>{let c=sw(a);return this._patchPgClient(c.Client),a},a=>{let c=sw(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Uc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=sw(a);return(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=sw(a);(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=sw(t);return(0,Uc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Uc.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),this._wrap(n.prototype,"query",this._getClientQueryPatch()),this._wrap(n.prototype,"connect",this._getClientConnectPatch()),t}_unpatchPgClient(t){let n=sw(t);return(0,Uc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Uc.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),t}_getClientConnectPatch(){let t=this;return n=>function(i){let s=t.getConfig();if(Yi.shouldSkipInstrumentation(s)||s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(N2e.SpanNames.CONNECT,{kind:Ur.SpanKind.CLIENT,attributes:Yi.getSemanticAttributesFromConnection(this,t._semconvStability)});if(i){let c=Ur.trace.getSpan(Ur.context.active());i=Yi.patchClientConnectCallback(o,i),c&&(i=Ur.context.bind(Ur.context.active(),i))}let a=Ur.context.with(Ur.trace.setSpan(Ur.context.active(),o),()=>n.call(this,i));return C2e(o,a)}}recordOperationDuration(t,n){let r={},i=[gf.ATTR_DB_NAMESPACE,gf.ATTR_ERROR_TYPE,gf.ATTR_SERVER_PORT,gf.ATTR_SERVER_ADDRESS,gf.ATTR_DB_OPERATION_NAME];this._semconvStability&Uc.SemconvStability.OLD&&i.push(bN.ATTR_DB_SYSTEM),this._semconvStability&Uc.SemconvStability.STABLE&&i.push(gf.ATTR_DB_SYSTEM_NAME),i.forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,Uz.hrTimeToMilliseconds)((0,Uz.hrTimeDuration)(n,(0,Uz.hrTime)()))/1e3;this._operationDuration.record(s,r)}_getClientQueryPatch(){let t=this;return n=>(this._diag.debug("Patching pg.Client.prototype.query"),function(...i){if(Yi.shouldSkipInstrumentation(t.getConfig()))return n.apply(this,i);let s=(0,Uz.hrTime)(),o=i[0],a=typeof o=="string",c=Yi.isObjectWithTextString(o),u=a?{text:o,values:Array.isArray(i[1])?i[1]:void 0}:c?{...o,name:o.name,text:o.text,values:o.values??(Array.isArray(i[1])?i[1]:void 0)}:void 0,l={[bN.ATTR_DB_SYSTEM]:bN.DB_SYSTEM_VALUE_POSTGRESQL,[gf.ATTR_DB_NAMESPACE]:this.database,[gf.ATTR_SERVER_PORT]:this.connectionParameters.port,[gf.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};u?.text&&(l[gf.ATTR_DB_OPERATION_NAME]=Yi.parseNormalizedOperationName(u?.text));let d=()=>{t.recordOperationDuration(l,s)},f=t.getConfig(),p=Yi.handleConfigQuery.call(this,t.tracer,f,t._semconvStability,u);if(f.addSqlCommenterCommentToQueries&&(a?i[0]=(0,O2e.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,O2e.addSqlCommenterComment)(p,o.text)})),i.length>0){let g=Ur.trace.getSpan(Ur.context.active());if(typeof i[i.length-1]=="function")i[i.length-1]=Yi.patchCallback(f,p,i[i.length-1],l,d),g&&(i[i.length-1]=Ur.context.bind(Ur.context.active(),i[i.length-1]));else if(typeof u?.callback=="function"){let y=Yi.patchCallback(t.getConfig(),p,u.callback,l,d);g&&(y=Ur.context.bind(Ur.context.active(),y)),i[0].callback=y}}let{requestHook:h}=f;typeof h=="function"&&u&&(0,Uc.safeExecuteInTheMiddle)(()=>{let{database:g,host:y,port:b,user:S}=this.connectionParameters;h(p,{connection:{database:g,host:y,port:b,user:S},query:{text:u.text,values:u.values,name:u.name}})},g=>{g&&t._diag.error("Error running query hook",g)},!0);let m;try{m=n.apply(this,i)}catch(g){throw g instanceof Error&&p.recordException(Yi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:Yi.getErrorMessage(g)}),p.end(),g}return m instanceof Promise?m.then(g=>new Promise(y=>{Yi.handleExecutionResult(t.getConfig(),p,g),d(),p.end(),y(g)})).catch(g=>new Promise((y,b)=>{g instanceof Error&&p.recordException(Yi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:g.message}),d(),p.end(),b(g)})):m})}_setPoolConnectEventListeners(t){if(t[x2e.EVENT_LISTENERS_SET])return;let n=Yi.getPoolName(t.options);t.on("connect",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("acquire",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("remove",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("release",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t[x2e.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let t=this;return n=>function(i){let s=t.getConfig();if(Yi.shouldSkipInstrumentation(s))return n.call(this,i);if(t._setPoolConnectEventListeners(this),s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(N2e.SpanNames.POOL_CONNECT,{kind:Ur.SpanKind.CLIENT,attributes:Yi.getSemanticAttributesFromPoolConnection(this.options,t._semconvStability)});if(i){let c=Ur.trace.getSpan(Ur.context.active());i=Yi.patchCallbackPGPool(o,i),c&&(i=Ur.context.bind(Ur.context.active(),i))}let a=Ur.context.with(Ur.trace.setSpan(Ur.context.active(),o),()=>n.call(this,i));return C2e(o,a)}}};Fz.PgInstrumentation=jte;function C2e(e,t){if(!(t instanceof Promise))return t;let n=t;return Ur.context.bind(Ur.context.active(),n.then(r=>(e.end(),r)).catch(r=>(r instanceof Error&&e.recordException(Yi.sanitizedErrorMessage(r)),e.setStatus({code:Ur.SpanStatusCode.ERROR,message:Yi.getErrorMessage(r)}),e.end(),Promise.reject(r))))}});var D2e=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.AttributeNames=ow.PgInstrumentation=void 0;var Ten=M2e();Object.defineProperty(ow,"PgInstrumentation",{enumerable:!0,get:function(){return Ten.PgInstrumentation}});var ven=Dte();Object.defineProperty(ow,"AttributeNames",{enumerable:!0,get:function(){return ven.AttributeNames}})});var L2e,U2e,F2e,Ren,j2e,H2e=v(()=>{L2e=Re(D2e(),1);sr();U2e="Postgres",F2e=rt(U2e,L2e.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),Ren=(e=>({name:U2e,setupOnce(){F2e(e)}})),j2e=Ren});var cS,qte,q2e,Aen,wen,B2e,Hte,ken,z2e,G2e=v(()=>{Ce();cS=Re(Jt(),1);Pn();st();sr();XE();qte="PostgresJs",q2e=[">=3.0.0 <4"],Aen=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,wen=Symbol.for("sentry.query.from.instrumented.sql"),B2e=rt(qte,e=>new Hte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),Hte=class extends cS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Nn,t)}init(){let t=new cS.InstrumentationNodeModuleDefinition("postgres",q2e,n=>{try{return this._patchPostgres(n)}catch(r){return So&&Z.error("Failed to patch postgres module:",r),n}},n=>n);return["src","cf/src","cjs/src"].forEach(n=>{t.files.push(new cS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,q2e,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),t}_patchPostgres(t){let n=typeof t=="function",r=n?t:t.default;if(typeof r!="function")return So&&Z.warn("postgres module does not export a function. Skipping instrumentation."),t;let i=this,s=function(...o){let a=Reflect.construct(r,o);if(!a||typeof a!="function")return So&&Z.warn("postgres() did not return a valid instance"),a;let c=i.getConfig();return $X(a,{requireParentSpan:c.requireParentSpan,requestHook:c.requestHook})};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}return n?s:(hP(t,"default",s),t)}_shouldCreateSpans(){let t=this.getConfig();return jt.getSpan(Ve.active())!==void 0||!t.requireParentSpan}_setOperationName(t,n,r){if(r){t.setAttribute(fR,r);return}let i=n?.match(Aen);i?.[1]&&t.setAttribute(fR,i[1].toUpperCase())}_reconstructQuery(t){if(t?.length)return t.length===1?t[0]||void 0:t.reduce((n,r,i)=>i===0?r:`${n}$${i}${r}`,"")}_sanitizeSqlQuery(t){return t?t.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Dr(a,"auto.db.postgresjs"),a.setAttributes({[yE]:"postgres",[S7]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,cS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Z.error(`Error in requestHook for ${qte} integration:`,f))},!0);let l=this.resolve;this.resolve=new Proxy(l,{apply:(f,p,h)=>{try{n._setOperationName(a,o,h?.[0]?.command),a.end()}catch(m){So&&Z.error("Error ending span in resolve callback:",m)}return Reflect.apply(f,p,h)}});let d=this.reject;this.reject=new Proxy(d,{apply:(f,p,h)=>{try{a.setStatus({code:2,message:h?.[0]?.message||"unknown_error"}),a.setAttribute(b7,h?.[0]?.code||"unknown"),a.setAttribute(E7,h?.[0]?.name||"unknown"),n._setOperationName(a,o),a.end()}catch(m){So&&Z.error("Error ending span in reject callback:",m)}return Reflect.apply(f,p,h)}});try{return r.apply(this,i)}catch(f){throw a.setStatus({code:2,message:f instanceof Error?f.message:"unknown_error"}),a.end(),f}})},t.Query.prototype.handle.__sentry_original__=r,t}_unpatchQueryPrototype(t){return t.Query.prototype.handle.__sentry_original__&&(t.Query.prototype.handle=t.Query.prototype.handle.__sentry_original__),t}},ken=(e=>({name:qte,setupOnce(){B2e(e)}})),z2e=ken});var V2e=w(EN=>{"use strict";Object.defineProperty(EN,"__esModule",{value:!0});EN.SeverityNumber=void 0;var Ien;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(Ien=EN.SeverityNumber||(EN.SeverityNumber={}))});var Hz=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.NOOP_LOGGER=aw.NoopLogger=void 0;var jz=class{emit(t){}};aw.NoopLogger=jz;aw.NOOP_LOGGER=new jz});var Bz=w(cw=>{"use strict";Object.defineProperty(cw,"__esModule",{value:!0});cw.NOOP_LOGGER_PROVIDER=cw.NoopLoggerProvider=void 0;var xen=Hz(),qz=class{getLogger(t,n,r){return new xen.NoopLogger}};cw.NoopLoggerProvider=qz;cw.NOOP_LOGGER_PROVIDER=new qz});var zte=w(zz=>{"use strict";Object.defineProperty(zz,"__esModule",{value:!0});zz.ProxyLogger=void 0;var Oen=Hz(),Bte=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):Oen.NOOP_LOGGER}};zz.ProxyLogger=Bte});var Vte=w(Gz=>{"use strict";Object.defineProperty(Gz,"__esModule",{value:!0});Gz.ProxyLoggerProvider=void 0;var Pen=Bz(),Nen=zte(),Gte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new Nen.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:Pen.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};Gz.ProxyLoggerProvider=Gte});var W2e=w(Vz=>{"use strict";Object.defineProperty(Vz,"__esModule",{value:!0});Vz._globalThis=void 0;Vz._globalThis=typeof globalThis=="object"?globalThis:global});var K2e=w(Wz=>{"use strict";Object.defineProperty(Wz,"__esModule",{value:!0});Wz._globalThis=void 0;var Cen=W2e();Object.defineProperty(Wz,"_globalThis",{enumerable:!0,get:function(){return Cen._globalThis}})});var Y2e=w(Kz=>{"use strict";Object.defineProperty(Kz,"__esModule",{value:!0});Kz._globalThis=void 0;var Men=K2e();Object.defineProperty(Kz,"_globalThis",{enumerable:!0,get:function(){return Men._globalThis}})});var Z2e=w($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.API_BACKWARDS_COMPATIBILITY_VERSION=$p.makeGetter=$p._global=$p.GLOBAL_LOGS_API_KEY=void 0;var Den=Y2e();$p.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");$p._global=Den._globalThis;function Len(e,t,n){return r=>r===e?t:n}$p.makeGetter=Len;$p.API_BACKWARDS_COMPATIBILITY_VERSION=1});var X2e=w(Yz=>{"use strict";Object.defineProperty(Yz,"__esModule",{value:!0});Yz.LogsAPI=void 0;var od=Z2e(),Uen=Bz(),J2e=Vte(),Wte=class e{constructor(){this._proxyLoggerProvider=new J2e.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return od._global[od.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(od._global[od.GLOBAL_LOGS_API_KEY]=(0,od.makeGetter)(od.API_BACKWARDS_COMPATIBILITY_VERSION,t,Uen.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=od._global[od.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(od._global,od.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete od._global[od.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new J2e.ProxyLoggerProvider}};Yz.LogsAPI=Wte});var Kte=w(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.logs=Bo.ProxyLoggerProvider=Bo.ProxyLogger=Bo.NoopLoggerProvider=Bo.NOOP_LOGGER_PROVIDER=Bo.NoopLogger=Bo.NOOP_LOGGER=Bo.SeverityNumber=void 0;var Fen=V2e();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Fen.SeverityNumber}});var Q2e=Hz();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return Q2e.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return Q2e.NoopLogger}});var $2e=Bz();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return $2e.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return $2e.NoopLoggerProvider}});var jen=zte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return jen.ProxyLogger}});var Hen=Vte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Hen.ProxyLoggerProvider}});var qen=X2e();Bo.logs=qen.LogsAPI.getInstance()});var eVe=w(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.disableInstrumentations=uw.enableInstrumentations=void 0;function Ben(e,t,n,r){for(let i=0,s=e.length;it.disable())}uw.disableInstrumentations=zen});var rVe=w(Zz=>{"use strict";Object.defineProperty(Zz,"__esModule",{value:!0});Zz.registerInstrumentations=void 0;var tVe=(Ce(),ke(Ze)),Gen=Kte(),nVe=eVe();function Ven(e){let t=e.tracerProvider||tVe.trace.getTracerProvider(),n=e.meterProvider||tVe.metrics.getMeterProvider(),r=e.loggerProvider||Gen.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,nVe.enableInstrumentations)(i,t,n,r),()=>{(0,nVe.disableInstrumentations)(i)}}Zz.registerInstrumentations=Ven});var fVe=w(Jz=>{"use strict";Object.defineProperty(Jz,"__esModule",{value:!0});Jz.satisfies=void 0;var Xte=(Ce(),ke(Ze)),cVe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Wen=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Ken={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function Yen(e,t,n){if(!Zen(e))return Xte.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=$en(e);if(!r)return!1;let i=[],s=uVe(r,t,i,n);return s&&!n?.includePrerelease?Xen(r,i):s}Jz.satisfies=Yen;function Zen(e){return typeof e=="string"&&cVe.test(e)}function uVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Yte(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=Etn(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Yte(e,s,n,r))return!1;return!0}return Yte(e,t,n,r)}function Yte(e,t,n,r){if(t=Qen(t,r),t.includes(" "))return uVe(e,t,n,r);{let i=etn(t);return n.push(i),Jen(e,i)}}function Jen(e,t){if(t.invalid)return!1;if(!t.version||Jte(t.version))return!0;let n=sVe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=sVe(r,i)}return Ken[t.op]?.includes(n)}function Xen(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Qen(e,t){return e=e.trim(),e=Stn(e,t),e=ytn(e),e=btn(e,t),e=e.trim(),e}function Fc(e){return!e||e.toLowerCase()==="x"||e==="*"}function $en(e){let t=e.match(cVe);if(!t){Xte.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function etn(e){if(!e)return{};let t=e.match(Wen);if(!t)return Xte.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Jte(e){return e==="*"||e==="x"||e==="X"}function iVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function ttn(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function ntn(e,t){if(Jte(e)||Jte(t))return 0;let[n,r]=ttn(iVe(e),iVe(t));return n>r?1:n)?=?)",oVe=`(?:${dVe}|${rtn})`,stn=`(?:-(${oVe}(?:\\.${oVe})*))`,aVe=`${lVe}+`,otn=`(?:\\+(${aVe}(?:\\.${aVe})*))`,Zte=`${dVe}|x|X|\\*`,_N=`[v=\\s]*(${Zte})(?:\\.(${Zte})(?:\\.(${Zte})(?:${stn})?${otn}?)?)?`,atn=`^${itn}\\s*${_N}$`,ctn=new RegExp(atn),utn=`^\\s*(${_N})\\s+-\\s+(${_N})\\s*$`,ltn=new RegExp(utn),dtn="(?:~>?)",ftn=`^${dtn}${_N}$`,ptn=new RegExp(ftn),htn="(?:\\^)",mtn=`^${htn}${_N}$`,gtn=new RegExp(mtn);function ytn(e){let t=ptn;return e.replace(t,(n,r,i,s,o)=>{let a;return Fc(r)?a="":Fc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Fc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function Stn(e,t){let n=gtn,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Fc(s)?u="":Fc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Fc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function btn(e,t){let n=ctn;return e.replace(n,(r,i,s,o,a,c)=>{let u=Fc(s),l=u||Fc(o),d=l||Fc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function Etn(e,t){let n=ltn;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Fc(s)?i="":Fc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Fc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Fc(d)?l="":Fc(f)?l=`<${+d+1}.0.0-0`:Fc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var Qte=w(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.massUnwrap=pa.unwrap=pa.massWrap=pa.wrap=void 0;var jc=console.error.bind(console);function TN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var _tn=(e,t,n)=>{if(!e||!e[t]){jc("no original function "+String(t)+" to wrap");return}if(!n){jc("no wrapper function"),jc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){jc("original object and wrapper must be functions");return}let i=n(r,t);return TN(i,"__original",r),TN(i,"__unwrap",()=>{e[t]===i&&TN(e,t,r)}),TN(i,"__wrapped",!0),TN(e,t,i),i};pa.wrap=_tn;var Ttn=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{jc("must provide one or more modules to patch"),jc(new Error().stack);return}if(!(t&&Array.isArray(t))){jc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,pa.wrap)(r,i,n)})})};pa.massWrap=Ttn;var vtn=(e,t)=>{if(!e||!e[t]){jc("no function to unwrap."),jc(new Error().stack);return}let n=e[t];if(!n.__unwrap)jc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};pa.unwrap=vtn;var Rtn=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{jc("must provide one or more modules to patch"),jc(new Error().stack);return}if(!(t&&Array.isArray(t))){jc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,pa.unwrap)(n,r)})})};pa.massUnwrap=Rtn;function vN(e){e&&e.logger&&(typeof e.logger!="function"?jc("new logger isn't a function, not replacing"):jc=e.logger)}pa.default=vN;vN.wrap=pa.wrap;vN.massWrap=pa.massWrap;vN.unwrap=pa.unwrap;vN.massUnwrap=pa.massUnwrap});var pVe=w(Qz=>{"use strict";Object.defineProperty(Qz,"__esModule",{value:!0});Qz.InstrumentationAbstract=void 0;var $te=(Ce(),ke(Ze)),Atn=Kte(),Xz=Qte(),ene=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=$te.diag.createComponentLogger({namespace:t}),this._tracer=$te.trace.getTracer(t,n),this._meter=$te.metrics.getMeter(t,n),this._logger=Atn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=Xz.wrap;_unwrap=Xz.unwrap;_massWrap=Xz.massWrap;_massUnwrap=Xz.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};Qz.InstrumentationAbstract=ene});var hVe=w(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});uS.ModuleNameTrie=uS.ModuleNameSeparator=void 0;uS.ModuleNameSeparator="/";var $z=class{hooks=[];children=new Map},tne=class{_trie=new $z;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(uS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new $z,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(uS.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};uS.ModuleNameTrie=tne});var gVe=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.RequireInTheMiddleSingleton=void 0;var wtn=vE(),mVe=K("path"),nne=hVe(),ktn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),rne=class e{_moduleNameTrie=new nne.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new wtn.Hook(null,{internals:!0},(t,n,r)=>{let i=Itn(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return ktn?new e:this._instance=this._instance??new e}};eG.RequireInTheMiddleSingleton=rne;function Itn(e){return mVe.sep!==nne.ModuleNameSeparator?e.split(mVe.sep).join(nne.ModuleNameSeparator):e}});var _Ve=w(RN=>{var yVe=[],ine=new WeakMap,SVe=new WeakMap,bVe=new Map,EVe=[],xtn={set(e,t,n){let r=ine.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=SVe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=ine.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function Otn(e,t,n,r,i){bVe.set(e,i),ine.set(t,n),SVe.set(t,r);let s=new Proxy(t,xtn);yVe.forEach(o=>o(e,s,i)),EVe.push([e,s,i])}RN.register=Otn;RN.importHooks=yVe;RN.specifiers=bVe;RN.toHook=EVe});var AVe=w((e1r,dw)=>{var TVe=K("path"),Ptn=TO(),{fileURLToPath:Ntn}=K("url"),{MessageChannel:Ctn}=K("worker_threads"),{isBuiltin:sne}=K("module");sne||(sne=()=>!0);var{importHooks:one,specifiers:Mtn,toHook:Dtn}=_Ve();function vVe(e){one.push(e),Dtn.forEach(([t,n,r])=>e(t,n,r))}function RVe(e){let t=one.indexOf(e);t>-1&&one.splice(t,1)}function lw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var ane;function Ltn(){let{port1:e,port2:t}=new Ctn,n=0,r;ane=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function AN(e,t,n){if(!(this instanceof AN))return new AN(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;ane&&Array.isArray(e)&&ane(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);sne(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=Ntn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=Ptn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)lw(n,s,u,void 0);else if(d===i){if(!l)lw(n,s,i,l);else if(l.endsWith(Mtn.get(a)))lw(n,s,i,l);else if(r){let f=i+TVe.sep+TVe.relative(l,u);lw(n,s,f,l)}}else d===o&&lw(n,s,o,l);else lw(n,s,i,l)},vVe(this._iitmHook)}AN.prototype.unhook=function(){RVe(this._iitmHook)};dw.exports=AN;dw.exports.Hook=AN;dw.exports.addHook=vVe;dw.exports.removeHook=RVe;dw.exports.createAddHookMessageChannel=Ltn});var cne=w(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.isWrapped=lS.safeExecuteInTheMiddleAsync=lS.safeExecuteInTheMiddle=void 0;function Utn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}lS.safeExecuteInTheMiddle=Utn;async function Ftn(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}lS.safeExecuteInTheMiddleAsync=Ftn;function jtn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}lS.isWrapped=jtn});var IVe=w(tG=>{"use strict";Object.defineProperty(tG,"__esModule",{value:!0});tG.InstrumentationBase=void 0;var wN=K("path"),wVe=K("util"),Htn=fVe(),une=Qte(),qtn=pVe(),Btn=gVe(),ztn=AVe(),kN=(Ce(),ke(Ze)),Gtn=vE(),Vtn=K("fs"),Wtn=cne(),lne=class extends qtn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Btn.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,Wtn.isWrapped)(t[n])&&this._unwrap(t,n),wVe.types.isProxy(t)){let i=(0,une.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,une.wrap)(t,n,r)};_unwrap=(t,n)=>wVe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,une.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{kN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){kN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{kN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){kN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=K.resolve(n);K.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,Vtn.readFileSync)(wN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{kN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return kVe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=wN.normalize(r);return o.filter(u=>u.name===a).filter(u=>kVe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&wN.isAbsolute(a)){let u=wN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=wN.isAbsolute(t.name)?new Gtn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new ztn.Hook([t.name],{internals:!1},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};tG.InstrumentationBase=lne;function kVe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Htn.satisfies)(t,r,{includePrerelease:n}))}});var xVe=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.normalize=void 0;var Ktn=K("path");Object.defineProperty(nG,"normalize",{enumerable:!0,get:function(){return Ktn.normalize}})});var OVe=w(fw=>{"use strict";Object.defineProperty(fw,"__esModule",{value:!0});fw.normalize=fw.InstrumentationBase=void 0;var Ytn=IVe();Object.defineProperty(fw,"InstrumentationBase",{enumerable:!0,get:function(){return Ytn.InstrumentationBase}});var Ztn=xVe();Object.defineProperty(fw,"normalize",{enumerable:!0,get:function(){return Ztn.normalize}})});var dne=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.normalize=pw.InstrumentationBase=void 0;var PVe=OVe();Object.defineProperty(pw,"InstrumentationBase",{enumerable:!0,get:function(){return PVe.InstrumentationBase}});Object.defineProperty(pw,"normalize",{enumerable:!0,get:function(){return PVe.normalize}})});var NVe=w(rG=>{"use strict";Object.defineProperty(rG,"__esModule",{value:!0});rG.InstrumentationNodeModuleDefinition=void 0;var fne=class{name;supportedVersions;patch;unpatch;files;constructor(t,n,r,i,s){this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i,this.files=s||[]}};rG.InstrumentationNodeModuleDefinition=fne});var CVe=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.InstrumentationNodeModuleFile=void 0;var Jtn=dne(),pne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,Jtn.normalize)(t)}};iG.InstrumentationNodeModuleFile=pne});var MVe=w(c_=>{"use strict";Object.defineProperty(c_,"__esModule",{value:!0});c_.semconvStabilityFromStr=c_.SemconvStability=void 0;var sG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(sG=c_.SemconvStability||(c_.SemconvStability={}));function Xtn(e,t){let n=sG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=sG.DUPLICATE;break}else i.toLowerCase()===e&&(n=sG.STABLE);return n}c_.semconvStabilityFromStr=Xtn});var LVe=w(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.semconvStabilityFromStr=Js.SemconvStability=Js.safeExecuteInTheMiddleAsync=Js.safeExecuteInTheMiddle=Js.isWrapped=Js.InstrumentationNodeModuleFile=Js.InstrumentationNodeModuleDefinition=Js.InstrumentationBase=Js.registerInstrumentations=void 0;var Qtn=rVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return Qtn.registerInstrumentations}});var $tn=dne();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return $tn.InstrumentationBase}});var enn=NVe();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return enn.InstrumentationNodeModuleDefinition}});var tnn=CVe();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return tnn.InstrumentationNodeModuleFile}});var hne=cne();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return hne.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return hne.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return hne.safeExecuteInTheMiddleAsync}});var DVe=MVe();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return DVe.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return DVe.semconvStabilityFromStr}})});function inn(){let e=hw[gne];return e?.helper?e.helper:hw[mne]?.helper}function snn(e){let t={helper:e};hw[gne]=t,hw[mne]=t}function onn(){delete hw[gne],delete hw[mne]}function unn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function jVe(e,t,n,r,i){if(HVe(t.name,i))return;let s={attributes:t.attributes,kind:unn(t.kind),startTime:t.startTime};e.startActiveSpan(t.name,s,o=>{r.set(t.id,o.spanContext().spanId),t.links&&o.addLinks(t.links.flatMap(c=>{let u=r.get(c);return u?{context:{spanId:u,traceId:o.spanContext().traceId,traceFlags:o.spanContext().traceFlags}}:[]}));let a=n.filter(c=>c.parentId===t.id);for(let c of a)jVe(e,c,n,r,i);o.end(t.endTime)})}function UVe(e,t){return dnn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function dnn(e){return e!=null&&typeof e.then=="function"}function HVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var oG,nnn,rnn,mne,gne,hw,ann,cnn,lnn,qVe,FVe,fnn,pnn,BVe,zVe=v(()=>{Ce();oG=Re(LVe(),1);Ce();nnn={name:"@prisma/instrumentation-contract",version:"7.6.0",description:"Shared types and utilities for Prisma instrumentation",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.mts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation-contract"},bugs:"https://github.com/prisma/prisma/issues",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},files:["dist"],sideEffects:!1,devDependencies:{"@opentelemetry/api":"1.9.0"},peerDependencies:{"@opentelemetry/api":"^1.8"}},rnn=nnn.version.split(".")[0],mne="PRISMA_INSTRUMENTATION",gne=`V${rnn}_PRISMA_INSTRUMENTATION`,hw=globalThis;ann=process.env.PRISMA_SHOW_ALL_TRACES==="true",cnn="00-10-10-00";lnn=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=jt.getSpanContext(e??Ve.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:cnn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)jVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!ann)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(HVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return UVe(s,t(s,r))}return n.startActiveSpan(i,e,s=>UVe(s,t(s,r)))}};qVe={name:"@prisma/instrumentation",version:"7.6.0",description:"OpenTelemetry compliant instrumentation for Prisma Client",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.ts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation"},bugs:"https://github.com/prisma/prisma/issues",devDependencies:{"@opentelemetry/api":"1.9.0","@prisma/instrumentation-contract":"workspace:*","@types/node":"~20.19.24",typescript:"5.4.5"},dependencies:{"@opentelemetry/instrumentation":"^0.207.0"},peerDependencies:{"@opentelemetry/api":"^1.8"},files:["dist"],keywords:["prisma","instrumentation","opentelemetry","otel"],scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},sideEffects:!1},FVe=qVe.version,fnn=qVe.name,pnn="@prisma/client",BVe=class extends oG.InstrumentationBase{tracerProvider;constructor(e={}){super(fnn,FVe,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new oG.InstrumentationNodeModuleDefinition(pnn,[FVe])]}enable(){let e=this._config;snn(new lnn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){onn()}isEnabled(){return inn()!==void 0}}});function hnn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function VVe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function mnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var GVe,yne,gnn,WVe,KVe=v(()=>{Ce();zVe();st();sr();GVe="Prisma";yne=class extends BVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=VVe();hnn(t)&&(t.createEngineSpan=n=>{let r=jt.getTracer("prismaV5Compatibility"),i=r._idGenerator;if(!i){xs(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{n.spans.forEach(s=>{let o=mnn(s.kind),a=s.parent_span_id,c=s.span_id,u=s.trace_id,l=s.links?.map(f=>({context:{traceId:f.trace_id,spanId:f.span_id,traceFlags:qa.SAMPLED}})),d=jt.setSpanContext(Ve.active(),{traceId:u,spanId:a,traceFlags:qa.SAMPLED});Ve.with(d,()=>{let f={generateTraceId:()=>u,generateSpanId:()=>c};r._idGenerator=f,r.startSpan(s.name,{kind:o,links:l,startTime:s.start_time,attributes:s.attributes}).end(s.end_time),r._idGenerator=i})})}finally{r._idGenerator=i}})}};gnn=rt(GVe,e=>new yne(e)),WVe=e=>({name:GVe,setupOnce(){gnn(e)},setup(t){VVe()&&t.on("spanStart",n=>{let r=vt(n);r.description?.startsWith("prisma:")&&n.setAttribute(At,"auto.db.otel.prisma"),r.description==="prisma:engine:db_query"&&r.data["db.query.text"]&&n.updateName(r.data["db.query.text"]),r.description==="prisma:engine:db_query"&&!r.data["db.system"]&&n.setAttribute("db.system","prisma")})}})});var YVe=w(mw=>{"use strict";Object.defineProperty(mw,"__esModule",{value:!0});mw.PACKAGE_NAME=mw.PACKAGE_VERSION=void 0;mw.PACKAGE_VERSION="0.60.0";mw.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var Sne=w(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});eh.HapiLifecycleMethodNames=eh.HapiLayerType=eh.handlerPatched=eh.HapiComponentName=void 0;eh.HapiComponentName="@hapi/hapi";eh.handlerPatched=Symbol("hapi-handler-patched");eh.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"};eh.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])});var ZVe=w(aG=>{"use strict";Object.defineProperty(aG,"__esModule",{value:!0});aG.ATTR_HTTP_METHOD=void 0;aG.ATTR_HTTP_METHOD="http.method"});var bne=w(IN=>{"use strict";Object.defineProperty(IN,"__esModule",{value:!0});IN.AttributeNames=void 0;var ynn;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(ynn=IN.AttributeNames||(IN.AttributeNames={}))});var QVe=w(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.getPluginFromInput=Xs.getExtMetadata=Xs.getRouteMetadata=Xs.isPatchableExtMethod=Xs.isDirectExtInput=Xs.isLifecycleExtEventObj=Xs.isLifecycleExtType=Xs.getPluginName=void 0;var JVe=(Pn(),ke(Mr)),Snn=ZVe(),xN=Sne(),dS=bne(),XVe=Jt();function bnn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=bnn;var Enn=e=>typeof e=="string"&&xN.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=Enn;var _nn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=_nn;var Tnn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=Tnn;var vnn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=vnn;var Rnn=(e,t,n)=>{let r={[JVe.ATTR_HTTP_ROUTE]:e.path};t&XVe.SemconvStability.OLD&&(r[Snn.ATTR_HTTP_METHOD]=e.method),t&XVe.SemconvStability.STABLE&&(r[JVe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[dS.AttributeNames.HAPI_TYPE]=xN.HapiLayerType.PLUGIN,r[dS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[dS.AttributeNames.HAPI_TYPE]=xN.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=Rnn;var Ann=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[dS.AttributeNames.EXT_TYPE]:e,[dS.AttributeNames.HAPI_TYPE]:xN.HapiLayerType.EXT,[dS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[dS.AttributeNames.EXT_TYPE]:e,[dS.AttributeNames.HAPI_TYPE]:xN.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=Ann;var wnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=wnn});var tWe=w(cG=>{"use strict";Object.defineProperty(cG,"__esModule",{value:!0});cG.HapiInstrumentation=void 0;var gl=(Ce(),ke(Ze)),$Ve=fr(),ON=Jt(),eWe=YVe(),PN=Sne(),Dm=QVe(),Ene=class extends ON.InstrumentationBase{_semconvStability;constructor(t={}){super(eWe.PACKAGE_NAME,eWe.PACKAGE_VERSION,t),this._semconvStability=(0,ON.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new ON.InstrumentationNodeModuleDefinition(PN.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,ON.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,ON.isWrapped)(n.Server)||this._wrap(n,"Server",this._getServerPatch.bind(this)),n},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._massUnwrap([n],["server","Server"])})}_getServerPatch(t){let n=this,r=this;return function(s){let o=t.apply(this,[s]);return r._wrap(o,"route",a=>n._getServerRoutePatch.bind(n)(a)),r._wrap(o,"ext",a=>n._getServerExtPatch.bind(n)(a)),r._wrap(o,"register",n._getServerRegisterPatch.bind(n)),o}}_getServerRegisterPatch(t){let n=this;return function(i,s){if(Array.isArray(i))for(let o of i){let a=(0,Dm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Dm.getPluginFromInput)(i);n._wrapRegisterHandler(o)}return t.apply(this,[i,s])}}_getServerExtPatch(t,n){let r=this;return function(...s){if(Array.isArray(s[0])){let o=s[0];for(let a=0;an._getServerRoutePatch.bind(n)(u,r)),s._wrap(a,"ext",u=>n._getServerExtPatch.bind(n)(u,r)),i.call(this,a,c)};t.register=o}_wrapExtMethods(t,n,r){let i=this;if(t instanceof Array){for(let s=0;sasync function(...o){if(gl.trace.getSpan(gl.context.active())===void 0)return await s.call(this,...o);let a=(0,$Ve.getRPCMetadata)(gl.context.active());a?.type===$Ve.RPCType.HTTP&&(a.route=t.path);let c=(0,Dm.getRouteMetadata)(t,r._semconvStability,n),u=r.tracer.startSpan(c.name,{attributes:c.attributes});try{return await gl.context.with(gl.trace.setSpan(gl.context.active(),u),()=>s.call(this,...o))}catch(l){throw u.recordException(l),u.setStatus({code:gl.SpanStatusCode.ERROR,message:l.message}),l}finally{u.end()}};if(typeof t.handler=="function")t.handler=i(t.handler);else if(typeof t.options=="function"){let s=t.options;t.options=function(o){let a=s(o);return typeof a.handler=="function"&&(a.handler=i(a.handler)),a}}else typeof t.options?.handler=="function"&&(t.options.handler=i(t.options.handler));return t}};cG.HapiInstrumentation=Ene});var nWe=w(gw=>{"use strict";Object.defineProperty(gw,"__esModule",{value:!0});gw.AttributeNames=gw.HapiInstrumentation=void 0;var knn=tWe();Object.defineProperty(gw,"HapiInstrumentation",{enumerable:!0,get:function(){return knn.HapiInstrumentation}});var Inn=bne();Object.defineProperty(gw,"AttributeNames",{enumerable:!0,get:function(){return Inn.AttributeNames}})});var rWe,iWe,sWe,xnn,oWe,aWe=v(()=>{rWe=Re(nWe(),1);sr();iWe="Hapi",sWe=rt(iWe,()=>new rWe.HapiInstrumentation),xnn=(()=>({name:iWe,setupOnce(){sWe()}})),oWe=xnn});var fS,NN,_ne=v(()=>{fS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},NN={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var lG,Onn,Pnn,uG,cWe=v(()=>{Ce();lG=Re(Jt(),1);st();_ne();Onn="@sentry/instrumentation-hono",Pnn="0.0.1",uG=class extends lG.InstrumentationBase{constructor(t={}){super(Onn,Pnn,t)}init(){return[new lG.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],t=>this._patch(t))]}_patch(t){let n=this;class r extends t.Hono{constructor(...s){super(...s),n._wrap(this,"get",n._patchHandler()),n._wrap(this,"post",n._patchHandler()),n._wrap(this,"put",n._patchHandler()),n._wrap(this,"delete",n._patchHandler()),n._wrap(this,"options",n._patchHandler()),n._wrap(this,"patch",n._patchHandler()),n._wrap(this,"all",n._patchHandler()),n._wrap(this,"on",n._patchOnHandler()),n._wrap(this,"use",n._patchMiddlewareHandler())}}try{t.Hono=r}catch{return{...t,Hono:r}}return t}_patchHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_patchOnHandler(){let t=this;return function(n){return function(...i){let s=i.slice(2);return n.apply(this,[...i.slice(0,2),...s.map(o=>t._wrapHandler(o))])}}}_patchMiddlewareHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_wrapHandler(t){let n=this;return function(r,i){if(!n.isEnabled())return t.apply(this,[r,i]);let s=r.req.path,o=n.tracer.startSpan(s);return Ve.with(jt.setSpan(Ve.active(),o),()=>n._safeExecute(()=>{let a=t.apply(this,[r,i]);if(sa(a))return a.then(c=>{let u=n._determineHandlerType(c);return o.setAttributes({[fS.HONO_TYPE]:u,[fS.HONO_NAME]:u===NN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[fS.HONO_TYPE]:c,[fS.HONO_NAME]:c===NN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),a}},()=>o.end(),a=>{n._handleError(o,a),o.end()}))}}_safeExecute(t,n,r){try{let i=t();return sa(i)?i.then(()=>n(),s=>r(s)):n(),i}catch(i){throw r(i),i}}_determineHandlerType(t){return t===void 0?NN.MIDDLEWARE:NN.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function Nnn(e){let t=vt(e).data,n=t[fS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[fS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Vl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[lm],s=t[SE];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var uWe,lWe,Cnn,dWe,fWe=v(()=>{Pn();st();sr();XE();_ne();cWe();uWe="Hono";lWe=rt(uWe,()=>new uG({responseHook:e=>{Nnn(e)}})),Cnn=(()=>({name:uWe,setupOnce(){lWe()}})),dWe=Cnn});var dG=w(CN=>{"use strict";Object.defineProperty(CN,"__esModule",{value:!0});CN.KoaLayerType=void 0;var Mnn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Mnn=CN.KoaLayerType||(CN.KoaLayerType={}))});var pWe=w(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.PACKAGE_NAME=yw.PACKAGE_VERSION=void 0;yw.PACKAGE_VERSION="0.62.0";yw.PACKAGE_NAME="@opentelemetry/instrumentation-koa"});var Tne=w(MN=>{"use strict";Object.defineProperty(MN,"__esModule",{value:!0});MN.AttributeNames=void 0;var Dnn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(Dnn=MN.AttributeNames||(MN.AttributeNames={}))});var mWe=w(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.isLayerIgnored=Sw.getMiddlewareMetadata=void 0;var hWe=dG(),fG=Tne(),Lnn=(Pn(),ke(Mr)),Unn=(e,t,n,r)=>n?{attributes:{[fG.AttributeNames.KOA_NAME]:r?.toString(),[fG.AttributeNames.KOA_TYPE]:hWe.KoaLayerType.ROUTER,[Lnn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[fG.AttributeNames.KOA_NAME]:t.name??"middleware",[fG.AttributeNames.KOA_TYPE]:hWe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};Sw.getMiddlewareMetadata=Unn;var Fnn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));Sw.isLayerIgnored=Fnn});var gWe=w(pG=>{"use strict";Object.defineProperty(pG,"__esModule",{value:!0});pG.kLayerPatched=void 0;pG.kLayerPatched=Symbol("koa-layer-patched")});var TWe=w(hG=>{"use strict";Object.defineProperty(hG,"__esModule",{value:!0});hG.KoaInstrumentation=void 0;var th=(Ce(),ke(Ze)),DN=Jt(),yWe=dG(),SWe=pWe(),bWe=mWe(),EWe=fr(),_We=gWe(),vne=class extends DN.InstrumentationBase{constructor(t={}){super(SWe.PACKAGE_NAME,SWe.PACKAGE_VERSION,t)}init(){return new DN.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,DN.isWrapped)(n.prototype.use)&&this._unwrap(n.prototype,"use"),this._wrap(n.prototype,"use",this._getKoaUsePatch.bind(this)),t)},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;(0,DN.isWrapped)(n.prototype.use)&&this._unwrap(n.prototype,"use")})}_getKoaUsePatch(t){let n=this;return function(i){let s;return i.router?s=n._patchRouterDispatch(i):s=n._patchLayer(i,!1),t.apply(this,[s])}}_patchRouterDispatch(t){th.diag.debug("Patching @koa/router dispatch");let r=t.router?.stack??[];for(let i of r){let s=i.path,o=i.stack;for(let a=0;a{if(th.trace.getSpan(th.context.active())===void 0)return t(s,o);let c=(0,bWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,EWe.getRPCMetadata)(th.context.active());l?.type===EWe.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,DN.safeExecuteInTheMiddle)(()=>d(u,{context:s,middlewareLayer:t,layerType:i}),p=>{p&&th.diag.error("koa instrumentation: request hook failed",p)},!0);let f=th.trace.setSpan(th.context.active(),u);return th.context.with(f,async()=>{try{return await t(s,o)}catch(p){throw u.recordException(p),p}finally{u.end()}})})}};hG.KoaInstrumentation=vne});var vWe=w(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});pS.KoaLayerType=pS.AttributeNames=pS.KoaInstrumentation=void 0;var jnn=TWe();Object.defineProperty(pS,"KoaInstrumentation",{enumerable:!0,get:function(){return jnn.KoaInstrumentation}});var Hnn=Tne();Object.defineProperty(pS,"AttributeNames",{enumerable:!0,get:function(){return Hnn.AttributeNames}});var qnn=dG();Object.defineProperty(pS,"KoaLayerType",{enumerable:!0,get:function(){return qnn.KoaLayerType}})});var RWe,AWe,wWe,Bnn,kWe,IWe=v(()=>{RWe=Re(vWe(),1);Pn();st();sr();XE();AWe="Koa",wWe=rt(AWe,RWe.KoaInstrumentation,(e={})=>({ignoreLayersType:e.ignoreLayersType,requestHook(t,n){Dr(t,"auto.http.otel.koa");let r=vt(t).data,i=r["koa.type"];i&&t.setAttribute(zt,`${i}.koa`);let s=r["koa.name"];if(typeof s=="string"&&t.updateName(s||"< unknown >"),vn()===Vl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[lm],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Bnn=((e={})=>({name:AWe,setupOnce(){wWe(e)}})),kWe=Bnn});var Rne=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.ConnectNames=yf.ConnectTypes=yf.AttributeNames=void 0;var znn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(znn=yf.AttributeNames||(yf.AttributeNames={}));var Gnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Gnn=yf.ConnectTypes||(yf.ConnectTypes={}));var Vnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(Vnn=yf.ConnectNames||(yf.ConnectNames={}))});var xWe=w(bw=>{"use strict";Object.defineProperty(bw,"__esModule",{value:!0});bw.PACKAGE_NAME=bw.PACKAGE_VERSION=void 0;bw.PACKAGE_VERSION="0.57.0";bw.PACKAGE_NAME="@opentelemetry/instrumentation-connect"});var OWe=w(mG=>{"use strict";Object.defineProperty(mG,"__esModule",{value:!0});mG._LAYERS_STORE_PROPERTY=void 0;mG._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var PWe=w(mS=>{"use strict";Object.defineProperty(mS,"__esModule",{value:!0});mS.generateRoute=mS.replaceCurrentStackRoute=mS.addNewStackLayer=void 0;var Wnn=(Ce(),ke(Ze)),hS=OWe(),Knn=e=>{Array.isArray(e[hS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,hS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[hS._LAYERS_STORE_PROPERTY].push("/");let t=e[hS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[hS._LAYERS_STORE_PROPERTY].length?e[hS._LAYERS_STORE_PROPERTY].pop():Wnn.diag.warn("Connect: Trying to pop the stack multiple time")}};mS.addNewStackLayer=Knn;var Ynn=(e,t)=>{t&&e[hS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};mS.replaceCurrentStackRoute=Ynn;var Znn=e=>e[hS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);mS.generateRoute=Znn});var MWe=w(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.ConnectInstrumentation=gS.ANONYMOUS_NAME=void 0;var Jnn=(Ce(),ke(Ze)),NWe=fr(),Ew=Rne(),CWe=xWe(),gG=Jt(),Xnn=(Pn(),ke(Mr)),Ane=PWe();gS.ANONYMOUS_NAME="anonymous";var wne=class extends gG.InstrumentationBase{constructor(t={}){super(CWe.PACKAGE_NAME,CWe.PACKAGE_VERSION,t)}init(){return[new gG.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,gG.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,gG.isWrapped)(t.handle)||this._wrap(t,"handle",this._patchHandle.bind(this))}_patchConstructor(t){let n=this;return function(...r){let i=t.apply(this,r);return n._patchApp(i),i}}_patchNext(t,n){return function(i){let s=t.apply(this,[i]);return n(),s}}_startSpan(t,n){let r,i,s;t?(r=Ew.ConnectTypes.REQUEST_HANDLER,s=Ew.ConnectNames.REQUEST_HANDLER,i=t):(r=Ew.ConnectTypes.MIDDLEWARE,s=Ew.ConnectNames.MIDDLEWARE,i=n.name||gS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[Xnn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Ew.AttributeNames.CONNECT_TYPE]:r,[Ew.AttributeNames.CONNECT_NAME]:i}};return this.tracer.startSpan(o,a)}_patchMiddleware(t,n){let r=this,i=n.length===4;function s(){if(!r.isEnabled())return n.apply(this,arguments);let[o,a,c]=i?[1,2,3]:[0,1,2],u=arguments[o],l=arguments[a],d=arguments[c];(0,Ane.replaceCurrentStackRoute)(u,t);let f=(0,NWe.getRPCMetadata)(Jnn.context.active());t&&f?.type===NWe.RPCType.HTTP&&(f.route=(0,Ane.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||gS.ANONYMOUS_NAME}`;let h=r._startSpan(t,n);r._diag.debug("start span",p);let m=!1;function g(){m?r._diag.debug(`span ${h.name} - already finished`):(m=!0,r._diag.debug(`finishing span ${h.name}`),h.end()),l.removeListener("close",g)}return l.addListener("close",g),arguments[c]=r._patchNext(d,g),n.apply(this,arguments)}return Object.defineProperty(s,"length",{value:n.length,writable:!1,configurable:!0}),s}_patchUse(t){let n=this;return function(...r){let i=r[r.length-1],s=r[r.length-2]||"";return r[r.length-1]=n._patchMiddleware(s,i),t.apply(this,r)}}_patchHandle(t){let n=this;return function(){let[r,i]=[0,2],s=arguments[r],o=arguments[i],a=(0,Ane.addNewStackLayer)(s);return typeof o=="function"&&(arguments[i]=n._patchOut(o,a)),t.apply(this,arguments)}}_patchOut(t,n){return function(...i){return n(),Reflect.apply(t,this,i)}}};gS.ConnectInstrumentation=wne});var LWe=w(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.ConnectTypes=ad.ConnectNames=ad.AttributeNames=ad.ANONYMOUS_NAME=ad.ConnectInstrumentation=void 0;var DWe=MWe();Object.defineProperty(ad,"ConnectInstrumentation",{enumerable:!0,get:function(){return DWe.ConnectInstrumentation}});Object.defineProperty(ad,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return DWe.ANONYMOUS_NAME}});var kne=Rne();Object.defineProperty(ad,"AttributeNames",{enumerable:!0,get:function(){return kne.AttributeNames}});Object.defineProperty(ad,"ConnectNames",{enumerable:!0,get:function(){return kne.ConnectNames}});Object.defineProperty(ad,"ConnectTypes",{enumerable:!0,get:function(){return kne.ConnectTypes}})});var UWe,FWe,jWe,Qnn,HWe,qWe=v(()=>{UWe=Re(LWe(),1);sr();FWe="Connect",jWe=rt(FWe,()=>new UWe.ConnectInstrumentation),Qnn=(()=>({name:FWe,setupOnce(){jWe()}})),HWe=Qnn});var BWe=w(zo=>{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});zo.DB_SYSTEM_VALUE_MSSQL=zo.ATTR_NET_PEER_PORT=zo.ATTR_NET_PEER_NAME=zo.ATTR_DB_USER=zo.ATTR_DB_SYSTEM=zo.ATTR_DB_STATEMENT=zo.ATTR_DB_SQL_TABLE=zo.ATTR_DB_NAME=void 0;zo.ATTR_DB_NAME="db.name";zo.ATTR_DB_SQL_TABLE="db.sql.table";zo.ATTR_DB_STATEMENT="db.statement";zo.ATTR_DB_SYSTEM="db.system";zo.ATTR_DB_USER="db.user";zo.ATTR_NET_PEER_NAME="net.peer.name";zo.ATTR_NET_PEER_PORT="net.peer.port";zo.DB_SYSTEM_VALUE_MSSQL="mssql"});var zWe=w(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.once=_w.getSpanName=void 0;function $nn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}_w.getSpanName=$nn;var ern=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};_w.once=ern});var GWe=w(Tw=>{"use strict";Object.defineProperty(Tw,"__esModule",{value:!0});Tw.PACKAGE_NAME=Tw.PACKAGE_VERSION=void 0;Tw.PACKAGE_VERSION="0.33.0";Tw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var ZWe=w(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0});SS.TediousInstrumentation=SS.INJECTED_CTX=void 0;var vw=(Ce(),ke(Ze)),trn=K("events"),nh=Jt(),u_=(Pn(),ke(Mr)),yS=BWe(),VWe=zWe(),WWe=GWe(),YWe=Symbol("opentelemetry.instrumentation-tedious.current-database");SS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var KWe=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function yG(e){Object.defineProperty(this,YWe,{value:e,writable:!0})}var Ine=class e extends nh.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(WWe.PACKAGE_NAME,WWe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,nh.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,nh.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new nh.InstrumentationNodeModuleDefinition(e.COMPONENT,[">=1.11.0 <20"],t=>{let n=t.Connection.prototype;for(let r of KWe)(0,nh.isWrapped)(n[r])&&this._unwrap(n,r),this._wrap(n,r,this._patchQuery(r,t));return(0,nh.isWrapped)(n.connect)&&this._unwrap(n,"connect"),this._wrap(n,"connect",this._patchConnect),t},t=>{if(t===void 0)return;let n=t.Connection.prototype;for(let r of KWe)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return yG.call(this,this.config?.options?.database),this.removeListener("databaseChange",yG),this.on("databaseChange",yG),this.once("end",()=>{this.removeListener("databaseChange",yG)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||vw.TraceFlags.NONE).toString(16)}`}_injectContextInfo(t,n,r){return new Promise(i=>{try{let s="set context_info @opentelemetry_traceparent",o=new n.Request(s,c=>{i()});Object.defineProperty(o,SS.INJECTED_CTX,{value:!0});let a=Buffer.from(r,"utf8");o.addParameter("opentelemetry_traceparent",n.TYPES.VarBinary,a,{length:a.length}),t.execSql(o)}catch{i()}})}_shouldInjectFor(t){return t==="execSql"||t==="execSqlBatch"||t==="callProcedure"||t==="execute"}_patchQuery(t,n){return r=>{let i=this;function s(o){if(o?.[SS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof trn.EventEmitter))return i._diag.warn(`Unexpected invocation of patched ${t} method. Span not recorded`),r.apply(this,arguments);let a=0,c=0,u=()=>c++,l=()=>a++,d=this[YWe],f=(E=>E.sqlTextOrProcedure==="sp_prepare"&&E.parametersByName?.stmt?.value?E.parametersByName.stmt.value:E.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&nh.SemconvStability.OLD&&(p[yS.ATTR_DB_SYSTEM]=yS.DB_SYSTEM_VALUE_MSSQL,p[yS.ATTR_DB_NAME]=d,p[yS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[yS.ATTR_DB_STATEMENT]=f,p[yS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&nh.SemconvStability.STABLE&&(p[u_.ATTR_DB_NAMESPACE]=d,p[u_.ATTR_DB_SYSTEM_NAME]=u_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[u_.ATTR_DB_QUERY_TEXT]=f,p[u_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&nh.SemconvStability.OLD&&(p[yS.ATTR_NET_PEER_NAME]=this.config?.server,p[yS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&nh.SemconvStability.STABLE&&(p[u_.ATTR_SERVER_ADDRESS]=this.config?.server,p[u_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,VWe.getSpanName)(t,d,f,o.table),{kind:vw.SpanKind.CLIENT,attributes:p}),m=(0,VWe.once)(E=>{o.removeListener("done",u),o.removeListener("doneInProc",u),o.removeListener("doneProc",l),o.removeListener("error",m),this.removeListener("end",m),h.setAttribute("tedious.procedure_count",a),h.setAttribute("tedious.statement_count",c),E&&h.setStatus({code:vw.SpanStatusCode.ERROR,message:E.message}),h.end()});o.on("done",u),o.on("doneInProc",u),o.on("doneProc",l),o.once("error",m),this.on("end",m),typeof o.callback=="function"?i._wrap(o,"callback",i._patchCallbackQuery(m)):i._diag.error("Expected request.callback to be a function");let g=()=>vw.context.with(vw.trace.setSpan(vw.context.active(),h),r,this,...arguments);if(!(i.getConfig().enableTraceContextPropagation&&i._shouldInjectFor(t)))return g();let S=i._buildTraceparent(h);i._injectContextInfo(this,n,S).finally(g)}return Object.defineProperty(s,"length",{value:r.length,writable:!1}),s}}_patchCallbackQuery(t){return n=>function(r,i,s){return t(r),n.apply(this,arguments)}}};SS.TediousInstrumentation=Ine});var JWe=w(SG=>{"use strict";Object.defineProperty(SG,"__esModule",{value:!0});SG.TediousInstrumentation=void 0;var nrn=ZWe();Object.defineProperty(SG,"TediousInstrumentation",{enumerable:!0,get:function(){return nrn.TediousInstrumentation}})});var XWe,rrn,QWe,$We,irn,e4e,t4e=v(()=>{XWe=Re(JWe(),1);st();sr();rrn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),QWe="Tedious",$We=rt(QWe,()=>new XWe.TediousInstrumentation({})),irn=(()=>{let e;return{name:QWe,setupOnce(){let t=$We();e=gP(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let{description:r,data:i}=vt(n);if(!r||i["db.system"]!=="mssql")return;let s=r.split(" ")[0]||"";rrn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),e4e=irn});var n4e=w(Rw=>{"use strict";Object.defineProperty(Rw,"__esModule",{value:!0});Rw.PACKAGE_NAME=Rw.PACKAGE_VERSION=void 0;Rw.PACKAGE_VERSION="0.57.0";Rw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var i4e=w(bG=>{"use strict";Object.defineProperty(bG,"__esModule",{value:!0});bG.GenericPoolInstrumentation=void 0;var Aw=(Ce(),ke(Ze)),l_=Jt(),r4e=n4e(),xne="generic-pool",One=class extends l_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(r4e.PACKAGE_NAME,r4e.PACKAGE_VERSION,t)}init(){return[new l_.InstrumentationNodeModuleDefinition(xne,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,l_.isWrapped)(n.prototype.acquire)&&this._unwrap(n.prototype,"acquire"),this._wrap(n.prototype,"acquire",this._acquirePatcher.bind(this)),t},t=>{let n=t.Pool;return this._unwrap(n.prototype,"acquire"),t}),new l_.InstrumentationNodeModuleDefinition(xne,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,l_.isWrapped)(n.prototype.acquire)&&this._unwrap(n.prototype,"acquire"),this._wrap(n.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),t},t=>{let n=t.Pool;return this._unwrap(n.prototype,"acquire"),t}),new l_.InstrumentationNodeModuleDefinition(xne,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,l_.isWrapped)(t.Pool)&&this._unwrap(t,"Pool"),this._wrap(t,"Pool",this._poolWrapper.bind(this)),t),t=>(this._isDisabled=!0,t))]}_acquirePatcher(t){let n=this;return function(...i){let s=Aw.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return Aw.context.with(Aw.trace.setSpan(s,o),()=>t.call(this,...i).then(a=>(o.end(),a),a=>{throw o.recordException(a),o.end(),a}))}}_poolWrapper(t){let n=this;return function(){let i=t.apply(this,arguments);return n._wrap(i,"acquire",n._acquireWithCallbacksPatcher.bind(n)),i}}_acquireWithCallbacksPatcher(t){let n=this;return function(i,s){if(n._isDisabled)return t.call(this,i,s);let o=Aw.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return Aw.context.with(Aw.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};bG.GenericPoolInstrumentation=One});var s4e=w(EG=>{"use strict";Object.defineProperty(EG,"__esModule",{value:!0});EG.GenericPoolInstrumentation=void 0;var srn=i4e();Object.defineProperty(EG,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return srn.GenericPoolInstrumentation}})});var o4e,a4e,c4e,orn,u4e,l4e=v(()=>{o4e=Re(s4e(),1);st();sr();a4e="GenericPool",c4e=rt(a4e,()=>new o4e.GenericPoolInstrumentation({})),orn=(()=>{let e;return{name:a4e,setupOnce(){let t=c4e();e=gP(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let i=vt(n).description;(i==="generic-pool.aquire"||i==="generic-pool.acquire")&&n.setAttribute(At,"auto.db.otel.generic_pool")}))}}}),u4e=orn});var Pne=w(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});rh.ATTR_NET_PEER_PORT=rh.ATTR_NET_PEER_NAME=rh.ATTR_MESSAGING_SYSTEM=rh.ATTR_MESSAGING_OPERATION=void 0;rh.ATTR_MESSAGING_OPERATION="messaging.operation";rh.ATTR_MESSAGING_SYSTEM="messaging.system";rh.ATTR_NET_PEER_NAME="net.peer.name";rh.ATTR_NET_PEER_PORT="net.peer.port"});var Nne=w(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});fs.ATTR_MESSAGING_CONVERSATION_ID=fs.OLD_ATTR_MESSAGING_MESSAGE_ID=fs.MESSAGING_DESTINATION_KIND_VALUE_TOPIC=fs.ATTR_MESSAGING_URL=fs.ATTR_MESSAGING_PROTOCOL_VERSION=fs.ATTR_MESSAGING_PROTOCOL=fs.MESSAGING_OPERATION_VALUE_PROCESS=fs.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY=fs.ATTR_MESSAGING_DESTINATION_KIND=fs.ATTR_MESSAGING_DESTINATION=void 0;fs.ATTR_MESSAGING_DESTINATION="messaging.destination";fs.ATTR_MESSAGING_DESTINATION_KIND="messaging.destination_kind";fs.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key";fs.MESSAGING_OPERATION_VALUE_PROCESS="process";fs.ATTR_MESSAGING_PROTOCOL="messaging.protocol";fs.ATTR_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version";fs.ATTR_MESSAGING_URL="messaging.url";fs.MESSAGING_DESTINATION_KIND_VALUE_TOPIC="topic";fs.OLD_ATTR_MESSAGING_MESSAGE_ID="messaging.message_id";fs.ATTR_MESSAGING_CONVERSATION_ID="messaging.conversation_id"});var Cne=w(d_=>{"use strict";Object.defineProperty(d_,"__esModule",{value:!0});d_.DEFAULT_CONFIG=d_.EndOperation=void 0;var arn;(function(e){e.AutoAck="auto ack",e.Ack="ack",e.AckAll="ackAll",e.Reject="reject",e.Nack="nack",e.NackAll="nackAll",e.ChannelClosed="channel closed",e.ChannelError="channel error",e.InstrumentationTimeout="instrumentation timeout"})(arn=d_.EndOperation||(d_.EndOperation={}));d_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var h4e=w(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});ps.isConfirmChannelTracing=ps.unmarkConfirmChannelTracing=ps.markConfirmChannelTracing=ps.getConnectionAttributesFromUrl=ps.getConnectionAttributesFromServer=ps.normalizeExchange=ps.CONNECTION_ATTRIBUTES=ps.CHANNEL_CONSUME_TIMEOUT_TIMER=ps.CHANNEL_SPANS_NOT_ENDED=ps.MESSAGE_STORED_SPAN=void 0;var Mne=(Ce(),ke(Ze)),bS=Jt(),_G=(Pn(),ke(Mr)),LN=Pne(),TG=Nne();ps.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span");ps.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended");ps.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer");ps.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");var Dne=(0,Mne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),crn=e=>e!==""?e:"";ps.normalizeExchange=crn;var urn=e=>e.replace(/:[^:@/]*@/,":***@"),d4e=(e,t)=>e||(t==="AMQP"?5672:5671),f4e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},p4e=e=>e||"localhost",ih=(e,t,n,r)=>n?{[t]:n}:(Mne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),lrn=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[LN.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=lrn;var drn=(e,t)=>{let n={[TG.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=f4e(r?.protocol);Object.assign(n,{...ih(e,TG.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=p4e(r?.hostname);t&bS.SemconvStability.OLD&&Object.assign(n,{...ih(e,LN.ATTR_NET_PEER_NAME,s,"hostname")}),t&bS.SemconvStability.STABLE&&Object.assign(n,{...ih(e,_G.ATTR_SERVER_ADDRESS,s,"hostname")});let o=d4e(r.port,i);t&bS.SemconvStability.OLD&&Object.assign(n,ih(e,LN.ATTR_NET_PEER_PORT,o,"port")),t&bS.SemconvStability.STABLE&&Object.assign(n,ih(e,_G.ATTR_SERVER_PORT,o,"port"))}else{let r=urn(e);n[TG.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=f4e(i.protocol);Object.assign(n,{...ih(r,TG.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=p4e(i.hostname);t&bS.SemconvStability.OLD&&Object.assign(n,{...ih(r,LN.ATTR_NET_PEER_NAME,o,"hostname")}),t&bS.SemconvStability.STABLE&&Object.assign(n,{...ih(r,_G.ATTR_SERVER_ADDRESS,o,"hostname")});let a=d4e(i.port?parseInt(i.port):void 0,s);t&bS.SemconvStability.OLD&&Object.assign(n,ih(r,LN.ATTR_NET_PEER_PORT,a,"port")),t&bS.SemconvStability.STABLE&&Object.assign(n,ih(r,_G.ATTR_SERVER_PORT,a,"port"))}catch(i){Mne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=drn;var frn=e=>e.setValue(Dne,!0);ps.markConfirmChannelTracing=frn;var prn=e=>e.deleteValue(Dne);ps.unmarkConfirmChannelTracing=prn;var hrn=e=>e.getValue(Dne)===!0;ps.isConfirmChannelTracing=hrn});var m4e=w(ww=>{"use strict";Object.defineProperty(ww,"__esModule",{value:!0});ww.PACKAGE_NAME=ww.PACKAGE_VERSION=void 0;ww.PACKAGE_VERSION="0.61.0";ww.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var y4e=w(AG=>{"use strict";Object.defineProperty(AG,"__esModule",{value:!0});AG.AmqplibInstrumentation=void 0;var Zi=(Ce(),ke(Ze)),vG=fr(),pr=Jt(),mrn=Pne(),yl=Nne(),Hc=Cne(),hs=h4e(),g4e=m4e(),RG=[">=0.5.5 <1"],Lne=class extends pr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(g4e.PACKAGE_NAME,g4e.PACKAGE_VERSION,{...Hc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,pr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Hc.DEFAULT_CONFIG,...t})}init(){let t=new pr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",RG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new pr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",RG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new pr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",RG,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new pr.InstrumentationNodeModuleDefinition("amqplib",RG,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,pr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,pr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,pr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,pr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,pr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,Hc.EndOperation.Ack)),(0,pr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,Hc.EndOperation.Nack)),(0,pr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,Hc.EndOperation.Reject)),(0,pr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,Hc.EndOperation.AckAll)),(0,pr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,Hc.EndOperation.NackAll)),(0,pr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,pr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,pr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,pr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,pr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,pr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,pr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,pr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,pr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,pr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,pr.isWrapped)(t.ConfirmChannel.prototype.publish)&&this._unwrap(t.ConfirmChannel.prototype,"publish"),t}getConnectPatch(t){let n=this;return function(i,s,o){return t.call(this,i,s,function(a,c){if(a==null){let u=(0,hs.getConnectionAttributesFromUrl)(i,n._netSemconvStability),l=(0,hs.getConnectionAttributesFromServer)(c);c[hs.CONNECTION_ATTRIBUTES]={...u,...l}}o.apply(this,arguments)})}}getChannelEmitPatch(t){let n=this;return function(i){if(i==="close"){n.endAllSpansOnChannel(this,!0,Hc.EndOperation.ChannelClosed,void 0);let s=this[hs.CHANNEL_CONSUME_TIMEOUT_TIMER];s&&clearInterval(s),this[hs.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else i==="error"&&n.endAllSpansOnChannel(this,!0,Hc.EndOperation.ChannelError,void 0);return t.apply(this,arguments)}}getAckAllPatch(t,n,r){let i=this;return function(o){return i.endAllSpansOnChannel(this,t,n,o),r.apply(this,arguments)}}getAckPatch(t,n,r){let i=this;return function(o,a,c){let u=this,l=n===Hc.EndOperation.Reject?a:c,d=u[hs.CHANNEL_SPANS_NOT_ENDED]??[],f=d.findIndex(p=>p.msg===o);if(f<0)i.endConsumerSpan(o,t,n,l);else if(n!==Hc.EndOperation.Reject&&a){for(let p=0;p<=f;p++)i.endConsumerSpan(d[p].msg,t,n,l);d.splice(0,f+1)}else i.endConsumerSpan(o,t,n,l),d.splice(f,1);return r.apply(this,arguments)}}getConsumePatch(t,n){let r=this;return function(s,o,a){let c=this;if(!Object.prototype.hasOwnProperty.call(c,hs.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:l}=r.getConfig();if(l){let d=setInterval(()=>{r.checkConsumeTimeoutOnChannel(c)},l);d.unref(),c[hs.CHANNEL_CONSUME_TIMEOUT_TIMER]=d}c[hs.CHANNEL_SPANS_NOT_ENDED]=[]}let u=function(l){if(!l)return o.call(this,l);let d=l.properties.headers??{},f=Zi.propagation.extract(Zi.ROOT_CONTEXT,d),p=l.fields?.exchange,h;if(r._config.useLinksForConsume){let b=f?Zi.trace.getSpan(f)?.spanContext():void 0;f=void 0,b&&(h=[{context:b}])}let m=r.tracer.startSpan(`${s} process`,{kind:Zi.SpanKind.CONSUMER,attributes:{...c?.connection?.[hs.CONNECTION_ATTRIBUTES],[yl.ATTR_MESSAGING_DESTINATION]:p,[yl.ATTR_MESSAGING_DESTINATION_KIND]:yl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[yl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:l.fields?.routingKey,[mrn.ATTR_MESSAGING_OPERATION]:yl.MESSAGING_OPERATION_VALUE_PROCESS,[yl.OLD_ATTR_MESSAGING_MESSAGE_ID]:l?.properties.messageId,[yl.ATTR_MESSAGING_CONVERSATION_ID]:l?.properties.correlationId},links:h},f),{consumeHook:g}=r.getConfig();g&&(0,pr.safeExecuteInTheMiddle)(()=>g(m,{moduleVersion:t,msg:l}),b=>{b&&Zi.diag.error("amqplib instrumentation: consumerHook error",b)},!0),a?.noAck||(c[hs.CHANNEL_SPANS_NOT_ENDED].push({msg:l,timeOfConsume:(0,vG.hrTime)()}),l[hs.MESSAGE_STORED_SPAN]=m);let y=f||Zi.ROOT_CONTEXT;Zi.context.with(Zi.trace.setSpan(y,m),()=>{o.call(this,l)}),a?.noAck&&(r.callConsumeEndHook(m,l,!1,Hc.EndOperation.AutoAck),m.end())};return arguments[1]=u,n.apply(this,arguments)}}getConfirmedPublishPatch(t,n){let r=this;return function(s,o,a,c,u){let l=this,{span:d,modifiedOptions:f}=r.createPublishSpan(r,s,o,l,c),{publishHook:p}=r.getConfig();p&&(0,pr.safeExecuteInTheMiddle)(()=>p(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:f,isConfirmChannel:!0}),y=>{y&&Zi.diag.error("amqplib instrumentation: publishHook error",y)},!0);let h=function(y,b){try{u?.call(this,y,b)}finally{let{publishConfirmHook:S}=r.getConfig();S&&(0,pr.safeExecuteInTheMiddle)(()=>S(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:c,isConfirmChannel:!0,confirmError:y}),E=>{E&&Zi.diag.error("amqplib instrumentation: publishConfirmHook error",E)},!0),y&&d.setStatus({code:Zi.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),d.end()}},m=(0,hs.markConfirmChannelTracing)(Zi.context.active()),g=[...arguments];return g[3]=f,g[4]=Zi.context.bind((0,hs.unmarkConfirmChannelTracing)(Zi.trace.setSpan(m,d)),h),Zi.context.with(m,n.bind(this,...g))}}getPublishPatch(t,n){let r=this;return function(s,o,a,c){if((0,hs.isConfirmChannelTracing)(Zi.context.active()))return n.apply(this,arguments);{let u=this,{span:l,modifiedOptions:d}=r.createPublishSpan(r,s,o,u,c),{publishHook:f}=r.getConfig();f&&(0,pr.safeExecuteInTheMiddle)(()=>f(l,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:d,isConfirmChannel:!1}),m=>{m&&Zi.diag.error("amqplib instrumentation: publishHook error",m)},!0);let p=[...arguments];p[3]=d;let h=n.apply(this,p);return l.end(),h}}}createPublishSpan(t,n,r,i,s){let o=(0,hs.normalizeExchange)(n),a=t.tracer.startSpan(`publish ${o}`,{kind:Zi.SpanKind.PRODUCER,attributes:{...i.connection[hs.CONNECTION_ATTRIBUTES],[yl.ATTR_MESSAGING_DESTINATION]:n,[yl.ATTR_MESSAGING_DESTINATION_KIND]:yl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[yl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:r,[yl.OLD_ATTR_MESSAGING_MESSAGE_ID]:s?.messageId,[yl.ATTR_MESSAGING_CONVERSATION_ID]:s?.correlationId}}),c=s??{};return c.headers=c.headers??{},Zi.propagation.inject(Zi.trace.setSpan(Zi.context.active(),a),c.headers),{span:a,modifiedOptions:c}}endConsumerSpan(t,n,r,i){let s=t[hs.MESSAGE_STORED_SPAN];s&&(n!==!1&&s.setStatus({code:Zi.SpanStatusCode.ERROR,message:r!==Hc.EndOperation.ChannelClosed&&r!==Hc.EndOperation.ChannelError?`${r} called on message${i===!0?" with requeue":i===!1?" without requeue":""}`:r}),this.callConsumeEndHook(s,t,n,r),s.end(),t[hs.MESSAGE_STORED_SPAN]=void 0)}endAllSpansOnChannel(t,n,r,i){(t[hs.CHANNEL_SPANS_NOT_ENDED]??[]).forEach(o=>{this.endConsumerSpan(o.msg,n,r,i)}),t[hs.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(t,n,r,i){let{consumeEndHook:s}=this.getConfig();s&&(0,pr.safeExecuteInTheMiddle)(()=>s(t,{msg:n,rejected:r,endOperation:i}),o=>{o&&Zi.diag.error("amqplib instrumentation: consumerEndHook error",o)},!0)}checkConsumeTimeoutOnChannel(t){let n=(0,vG.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(ES,"__esModule",{value:!0});ES.EndOperation=ES.DEFAULT_CONFIG=ES.AmqplibInstrumentation=void 0;var grn=y4e();Object.defineProperty(ES,"AmqplibInstrumentation",{enumerable:!0,get:function(){return grn.AmqplibInstrumentation}});var S4e=Cne();Object.defineProperty(ES,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return S4e.DEFAULT_CONFIG}});Object.defineProperty(ES,"EndOperation",{enumerable:!0,get:function(){return S4e.EndOperation}})});var E4e,_4e,yrn,T4e,Srn,v4e,R4e=v(()=>{E4e=Re(b4e(),1);sr();_4e="Amqplib",yrn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},T4e=rt(_4e,()=>new E4e.AmqplibInstrumentation(yrn)),Srn=(()=>({name:_4e,setupOnce(){T4e()}})),v4e=Srn});var UN,Une=v(()=>{UN="VercelAI"});function Ern(e){if(typeof e!="object"||e===null)return!1;let t=e;return"type"in t&&"error"in t&&"toolName"in t&&"toolCallId"in t&&t.type==="tool-error"&&t.error instanceof Error}function _rn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(Trn(t.content),vrn(t.content))}function Trn(e){for(let t of e){if(!Ern(t))continue;let n=TQ(t.toolCallId);n?Ja(r=>{r.setContext("trace",{trace_id:n.traceId,span_id:n.spanId}),r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})}):Ja(r=>{r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function vrn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&vQ(t.toolCallId)}function Rrn(e,t,n,r){let i=e?.recordInputs!==void 0?e.recordInputs:t.recordInputs!==void 0?t.recordInputs:n===!0?!0:r,s=e?.recordOutputs!==void 0?e.recordOutputs:t.recordOutputs!==void 0?t.recordOutputs:n===!0?!0:r;return{recordInputs:i,recordOutputs:s}}var kG,brn,A4e,wG,w4e=v(()=>{kG=Re(Jt(),1);st();Une();brn=[">=3.0.0 <7"],A4e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];wG=class e extends kG.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Nn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new kG.InstrumentationNodeModuleDefinition("ai",brn,this._patch.bind(this))}callWhenPatched(t){this._isPatched?t():this._callbacks.push(t)}_patch(t){this._isPatched=!0,this._callbacks.forEach(r=>r()),this._callbacks=[];let n=r=>new Proxy(r,{apply:(i,s,o)=>{let a=o[0].experimental_telemetry||{},c=a.isEnabled,u=ct(),l=u?.getIntegrationByName(UN),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=Rrn(d,a,c,f);return o[0].experimental_telemetry={...a,isEnabled:c!==void 0?c:!0,recordInputs:p,recordOutputs:h},uf(()=>Reflect.apply(i,s,o),m=>{m&&typeof m=="object"&&zs(m,"_sentry_active_span",Kl())},()=>{},m=>{_rn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of A4e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=A4e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function Arn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var k4e,wrn,I4e,x4e=v(()=>{st();sr();Une();w4e();k4e=rt(UN,()=>new wG({}));wrn=((e={})=>{let t;return{name:UN,options:e,setupOnce(){t=k4e()},afterAllSetup(n){e.force??Arn(n)?CH(n):t?.callWhenPatched(()=>CH(n))}}}),I4e=wrn});var xG,krn,IG,O4e=v(()=>{xG=Re(Jt(),1);st();krn=[">=4.0.0 <7"],IG=class extends xG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Nn,t)}init(){return new xG.InstrumentationNodeModuleDefinition("openai",krn,this._patch.bind(this))}_patch(t){let n=t;return n=this._patchClient(n,"OpenAI"),n=this._patchClient(n,"AzureOpenAI"),n}_patchClient(t,n){let r=t[n];if(!r)return t;let i=this.getConfig(),s=function(...o){if(DE(Gy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return LH(a,i)};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}try{t[n]=s}catch{Object.defineProperty(t,n,{value:s,writable:!0,configurable:!0,enumerable:!0})}if(t.default===r)try{t.default=s}catch{Object.defineProperty(t,"default",{value:s,writable:!0,configurable:!0,enumerable:!0})}return t}}});var P4e,Irn,N4e,C4e=v(()=>{st();sr();O4e();P4e=rt(Gy,e=>new IG(e)),Irn=((e={})=>({name:Gy,setupOnce(){P4e(e)}})),N4e=Irn});var PG,xrn,OG,M4e=v(()=>{PG=Re(Jt(),1);st();xrn=[">=0.19.2 <1.0.0"],OG=class extends PG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Nn,t)}init(){return new PG.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",xrn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(DE(Vy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return UH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}try{t.Anthropic=i}catch{Object.defineProperty(t,"Anthropic",{value:i,writable:!0,configurable:!0,enumerable:!0})}if(t.default===n)try{t.default=i}catch{Object.defineProperty(t,"default",{value:i,writable:!0,configurable:!0,enumerable:!0})}return t}}});var D4e,Orn,L4e,U4e=v(()=>{st();sr();M4e();D4e=rt(Vy,e=>new OG(e)),Orn=((e={})=>({name:Vy,options:e,setupOnce(){D4e(e)}})),L4e=Orn});var kw,F4e,NG,j4e=v(()=>{kw=Re(Jt(),1);st();F4e=[">=0.10.0 <2"],NG=class extends kw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Nn,t)}init(){return new kw.InstrumentationNodeModuleDefinition("@google/genai",F4e,n=>this._patch(n),n=>n,[new kw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",F4e,n=>this._patch(n),n=>n)])}_patch(t){let n=t.GoogleGenAI,r=this.getConfig();if(typeof n!="function")return t;let i=function(...s){if(DE(Wy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return FH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}return hP(t,"GoogleGenAI",i),t}}});var H4e,Prn,q4e,B4e=v(()=>{st();sr();j4e();H4e=rt(Wy,e=>new NG(e)),Prn=((e={})=>({name:Wy,setupOnce(){H4e(e)}})),q4e=Prn});function Nrn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function Crn(e,t,n){return new Proxy(e,{apply(r,i,s){let a=s[1];(!a||typeof a!="object"||Array.isArray(a))&&(a={},s[1]=a);let c=a.callbacks,u=Nrn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var _S,CG,MG,z4e=v(()=>{_S=Re(Jt(),1);st();CG=[">=0.1.0 <2.0.0"];MG=class extends _S.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Nn,t)}init(){let t=[],n=["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"];for(let r of n)t.push(new _S.InstrumentationNodeModuleDefinition(r,CG,this._patch.bind(this),i=>i,[new _S.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,CG,this._patch.bind(this),i=>i)]));return t.push(new _S.InstrumentationNodeModuleDefinition("langchain",CG,this._patch.bind(this),r=>r,[new _S.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",CG,this._patch.bind(this),r=>r)])),t}_patch(t){qX([Gy,Vy,Wy]);let n=BH(this.getConfig());return this._patchRunnableMethods(t,n),t}_patchRunnableMethods(t,n){let r=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],i=t.universal_exports??t,s=Object.values(i).find(c=>typeof c=="function"&&r.includes(c.name));if(!s)return;let o=s.prototype;if(o.__sentry_patched__)return;o.__sentry_patched__=!0;let a=["invoke","stream","batch"];for(let c of a){let u=o[c];typeof u=="function"&&(o[c]=Crn(u,n))}}}});var G4e,Mrn,V4e,W4e=v(()=>{st();sr();z4e();G4e=rt(jH,e=>new MG(e)),Mrn=((e={})=>({name:jH,setupOnce(){G4e(e)}})),V4e=Mrn});var Iw,K4e,DG,Y4e=v(()=>{Iw=Re(Jt(),1);st();K4e=[">=0.0.0 <2.0.0"],DG=class extends Iw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Nn,t)}init(){return new Iw.InstrumentationNodeModuleDefinition("@langchain/langgraph",K4e,this._patch.bind(this),n=>n,[new Iw.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",K4e,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&GH(t.StateGraph.prototype,this.getConfig()),t}}});var Z4e,Drn,J4e,X4e=v(()=>{st();sr();Y4e();Z4e=rt(zH,e=>new DG(e)),Drn=((e={})=>({name:zH,setupOnce(){Z4e(e)}})),J4e=Drn});import*as $4e from"node:net";function eKe(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Lm.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&sl.error(d?.message)},!0)});let c=new Lm.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>Q4e(l,n,r,e,o)),u=["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"];for(let l of u)c.files.push(new Lm.InstrumentationNodeModuleFile(l,t,d=>Q4e(d,n,r,e,o),d=>tKe(d,r)));return c}function Q4e(e,t,n,r,i){return tKe(e,n),t(e,"addDoc",Lrn(r,i)),t(e,"getDocs",Frn(r,i)),t(e,"setDoc",jrn(r,i)),t(e,"deleteDoc",Urn(r,i)),e}function tKe(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Lm.isWrapped)(e[n])&&t(e,n);return e}function Lrn(e,t){return function(r){return function(i,s){let o=UG(e,"addDoc",i);return t(o),LG(o,()=>r(i,s))}}}function Urn(e,t){return function(r){return function(i){let s=UG(e,"deleteDoc",i.parent||i);return t(s),LG(s,()=>r(i))}}}function Frn(e,t){return function(r){return function(i){let s=UG(e,"getDocs",i);return t(s),LG(s,()=>r(i))}}}function jrn(e,t){return function(r){return function(i,s,o){let a=UG(e,"setDoc",i.parent||i);return t(a),LG(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function LG(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Lm.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function UG(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return qrn(r,n),r.setAttribute(fR,t),r}function Hrn(e){let t,n;if(typeof e.host=="string")if(e.host.startsWith("[")){if(e.host.endsWith("]"))t=e.host.replace(/^\[|\]$/g,"");else if(e.host.includes("]:")){let r=e.host.lastIndexOf(":");r!==-1&&(t=e.host.slice(1,r).replace(/^\[|\]$/g,""),n=e.host.slice(r+1))}}else if($4e.isIPv6(e.host))t=e.host;else{let r=e.host.lastIndexOf(":");r!==-1?(t=e.host.slice(0,r),n=e.host.slice(r+1)):t=e.host}return{address:t,port:n?parseInt(n,10):void 0}}function qrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[g7]:t.path,[y7]:n.name,[yE]:"firebase.firestore","firebase.firestore.type":t.type,"firebase.firestore.options.projectId":r.projectId,"firebase.firestore.options.appId":r.appId,"firebase.firestore.options.messagingSenderId":r.messagingSenderId,"firebase.firestore.options.storageBucket":r.storageBucket},{address:a,port:c}=Hrn(s);a&&(o[A7]=a),c&&(o[w7]=c),e.setAttributes(o)}var Lm,nKe=v(()=>{Ce();Lm=Re(Jt(),1);Pn()});function rKe(e,t,n,r,i){let s=()=>{},o=()=>{},a=i.functions?.errorHook,c=i.functions?.requestHook,u=i.functions?.responseHook;typeof u=="function"&&(o=(f,p)=>{(0,Um.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&sl.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Um.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&sl.error(p?.message)},!0)});let l=new Um.InstrumentationNodeModuleDefinition("firebase-functions",t);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:f,triggerType:p})=>{l.files.push(new Um.InstrumentationNodeModuleFile(f,t,h=>Brn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>iKe(h,r)))}),l}function qc(e,t,n){return function(i){return function(...s){let o=typeof s[0]=="function"?s[0]:s[1],a=typeof s[0]=="function"?void 0:s[0];if(!o)return i.call(this,...s);let c=async function(...u){let l=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",d=e.startSpan(`firebase.function.${n}`,{kind:$r.SERVER}),f={"faas.name":l,"faas.trigger":n,"faas.provider":"firebase"};return process.env.GCLOUD_PROJECT&&(f["cloud.project_id"]=process.env.GCLOUD_PROJECT),process.env.EVENTARC_CLOUD_EVENT_SOURCE&&(f["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE),d.setAttributes(f),t?.requestHook?.(d),Ve.with(jt.setSpan(Ve.active(),d),async()=>{let p,h;try{h=await o.apply(this,u)}catch(m){p=m}if(t?.responseHook?.(d,p),p&&d.recordException(p),d.end(),p)throw await t?.errorHook?.(d,p),p;return h})};return a?i.call(this,a,c):i.call(this,c)}}}function Brn(e,t,n,r,i,s){switch(iKe(e,n),s){case"function":t(e,"onRequest",qc(r,i,"http.request")),t(e,"onCall",qc(r,i,"http.call"));break;case"firestore":t(e,"onDocumentCreated",qc(r,i,"firestore.document.created")),t(e,"onDocumentUpdated",qc(r,i,"firestore.document.updated")),t(e,"onDocumentDeleted",qc(r,i,"firestore.document.deleted")),t(e,"onDocumentWritten",qc(r,i,"firestore.document.written")),t(e,"onDocumentCreatedWithAuthContext",qc(r,i,"firestore.document.created")),t(e,"onDocumentUpdatedWithAuthContext",qc(r,i,"firestore.document.updated")),t(e,"onDocumentDeletedWithAuthContext",qc(r,i,"firestore.document.deleted")),t(e,"onDocumentWrittenWithAuthContext",qc(r,i,"firestore.document.written"));break;case"scheduler":t(e,"onSchedule",qc(r,i,"scheduler.scheduled"));break;case"storage":t(e,"onObjectFinalized",qc(r,i,"storage.object.finalized")),t(e,"onObjectArchived",qc(r,i,"storage.object.archived")),t(e,"onObjectDeleted",qc(r,i,"storage.object.deleted")),t(e,"onObjectMetadataUpdated",qc(r,i,"storage.object.metadataUpdated"));break}return e}function iKe(e,t){let n=["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"];for(let r of n)(0,Um.isWrapped)(e[r])&&t(e,r);return e}var Um,sKe=v(()=>{Ce();Um=Re(Jt(),1)});var aKe,oKe,zrn,Grn,FG,cKe=v(()=>{aKe=Re(Jt(),1);st();nKe();sKe();oKe={},zrn=[">=3.0.0 <5"],Grn=[">=6.0.0 <7"],FG=class extends aKe.InstrumentationBase{constructor(t=oKe){super("@sentry/instrumentation-firebase",Nn,t)}setConfig(t={}){super.setConfig({...oKe,...t})}init(){let t=[];return t.push(eKe(this.tracer,zrn,this._wrap,this._unwrap,this.getConfig())),t.push(rKe(this.tracer,Grn,this._wrap,this._unwrap,this.getConfig())),t}}});var uKe,Vrn,lKe,Wrn,dKe,fKe=v(()=>{st();sr();cKe();uKe="Firebase",Vrn={firestoreSpanCreationHook:e=>{Dr(e,"auto.firebase.otel.firestore"),e.setAttribute(zt,"db.query")},functions:{requestHook:e=>{Dr(e,"auto.firebase.otel.functions"),e.setAttribute(zt,"http.request")},errorHook:async(e,t)=>{t&&(Wt(t,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await JR(2e3))}}},lKe=rt(uKe,()=>new FG(Vrn)),Wrn=(()=>({name:uKe,setupOnce(){lKe()}})),dKe=Wrn});function pKe(){return[oqe(),qBe(),hze(),dWe(),tGe(),gGe(),IGe(),HGe(),S2e(),j2e(),WVe(),oWe(),kWe(),HWe(),e4e(),u4e(),Pze(),v4e(),Bze(),V4e(),J4e(),I4e(),N4e(),L4e(),q4e(),z2e(),dKe()]}var hKe=v(()=>{R4e();U4e();qWe();aqe();GBe();fKe();l4e();B4e();gze();aWe();fWe();Nze();IWe();W4e();X4e();zze();nGe();yGe();xGe();qGe();C4e();H2e();G2e();KVe();b2e();t4e();x4e()});function gKe(e,t={}){e.getOptions().debug&&tee();let[n,r]=Krn(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function Krn(e,t={}){let n=new mKe.BasicTracerProvider({sampler:new Jq(e),resource:(0,jG.defaultResource)().merge((0,jG.resourceFromAttributes)({[k7]:"node",[m7]:"sentry",[I7]:Nn})),forceFlushTimeoutMillis:500,spanProcessors:[new Zq({timeout:Yrn(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Qd.setGlobalPropagator(new Yq);let r=new eee;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function Yrn(e){if(e!=null){if(e>Fne)return So&&Z.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${Fne}`),Fne;if(e<=0||Number.isNaN(e)){So&&Z.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var jG,mKe,Fne,yKe=v(()=>{Ce();jG=Re(p$(),1),mKe=Re(j$(),1);Pn();st();sr();IA();XE();Fne=1e6});function SKe(){return sB().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(LHe(),VHe())}function bKe(e){return[...SKe(),...Os(e)?pKe():[]]}function jne(e={}){return Zrn(e,bKe)}function Zrn(e={},t){LE(e,"node");let n=pee({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(gKe(n,{spanProcessors:e.openTelemetrySpanProcessors}),hee()),n}var EKe=v(()=>{st();sr();UHe();WHe();hKe();yKe()});var _Ke=v(()=>{EKe();st()});var IKe={};Ar(IKe,{_resetPluginRootForTests:()=>Qrn,features:()=>Go,observability:()=>Bne,resolvePluginRoot:()=>nn,review:()=>bf,stripWildcardAllowedOrigins:()=>qne});import{existsSync as TKe}from"node:fs";import{dirname as vKe,join as RKe}from"node:path";import{fileURLToPath as Xrn}from"node:url";function kKe(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function Hne(e,t){let n=kKe(e);if(n===void 0)return t;let r=n.trim().toLowerCase();return r==="1"||r==="true"||r==="yes"||r==="on"?!0:r==="0"||r==="false"||r==="no"||r==="off"||r===""?!1:t}function AKe(e,t){let n=kKe(e);return n===void 0||n===""?t:n}function Qrn(){Sf=null}function nn(){if(Sf!==null)return Sf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return Sf=e,Sf;let t=wKe(process.argv[1]);if(t)return Sf=t,process.env.CLAUDE_PLUGIN_ROOT=t,console.error(`[haiku] Self-resolved plugin root from argv: ${t}`),Sf;try{let n=Xrn(import.meta.url),r=wKe(n);if(r)return Sf=r,process.env.CLAUDE_PLUGIN_ROOT=r,console.error(`[haiku] Self-resolved plugin root from module: ${r}`),Sf}catch{}return Sf="",Sf}function wKe(e){if(!e)return null;let t=vKe(e);for(let n=0;n<6;n++){if(TKe(RKe(t,"studios"))||TKe(RKe(t,".claude-plugin","plugin.json")))return t;let r=vKe(t);if(r===t)return null;t=r}return null}function qne(){let e=bf.allowedOrigins.length,t=bf.allowedOrigins.filter(r=>r!=="*"),n=e-t.length;return n>0&&(console.warn(`[haiku] WARN: HAIKU_REVIEW_ALLOWED_ORIGINS contained "*". Ignoring \u2014 wildcard CORS is unsafe with this server's auth model. Set an explicit allow-list.`),bf.allowedOrigins.length=0,bf.allowedOrigins.push(...t)),n}var Sf,Go,bf,Bne,Ci=v(()=>{"use strict";Sf=null;Go={modelSelection:Hne("HAIKU_MODEL_SELECTION",!0),remoteReview:Hne("HAIKU_REMOTE_REVIEW",!1),telemetry:Hne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},bf={siteUrl:AKe("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:AKe("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};Bne={sentryDsn:""}});import{readFileSync as $rn}from"node:fs";import{join as ein}from"node:path";function TS(){try{let e=nn();if(e)return JSON.parse($rn(ein(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var cd,f_=v(()=>{"use strict";Ci();cd="10.0.0"});var OKe={};Ar(OKe,{flush:()=>Ef,isSentryConfigured:()=>Gne,reportError:()=>ms,reportFeedback:()=>zne});function xKe(e,t){!t||Object.keys(t).length===0||(e.setContext("session",t),t.CLAUDE_CODE_IS_COWORK&&e.setTag("cowork",t.CLAUDE_CODE_IS_COWORK),t.CLAUDE_MODEL&&e.setTag("model",t.CLAUDE_MODEL),t.CLAUDE_SESSION_ID&&e.setTag("session_id",t.CLAUDE_SESSION_ID),t.CLAUDE_CODE_ENTRYPOINT&&e.setTag("entrypoint",t.CLAUDE_CODE_ENTRYPOINT))}function ms(e,t,n){xw&&Ja(r=>{xKe(r,n),Wt(e,{extra:t})})}function zne(e,t,n,r){xw&&Ja(i=>{xKe(i,t),i.setTag("feedback","true"),RH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Gne(){return xw!==""}async function Ef(e=2e3){xw&&await JR(e)}var xw,sh=v(()=>{"use strict";_Ke();Ci();f_();xw=Bne.sentryDsn;xw&&jne({dsn:xw,release:`haiku-mcp@${cd}`,tracesSampleRate:0})});var NKe={};Ar(NKe,{maybeRebuildSpaForDev:()=>ain});import{execFileSync as tin}from"node:child_process";import{existsSync as qG,readdirSync as nin,statSync as PKe}from"node:fs";import{dirname as rin,join as HG,resolve as Vne}from"node:path";import{fileURLToPath as iin}from"node:url";function sin(e){if(!qG(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=nin(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=HG(r,s),a;try{a=PKe(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function oin(e){let t;try{t=rin(iin(e))}catch{t=process.cwd()}let n=Vne(t,".."),r=Vne(n,".."),i=HG(r,"haiku-ui","src"),s=HG(n,"scripts","bundle-haiku-ui.mjs"),o=HG(n,"src","haiku-ui-html.ts");return!qG(i)||!qG(s)?null:{repoRoot:Vne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function ain(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=oin(e);if(!t)return;let n=sin(t.uiSrcDir),r=qG(t.bundledHtml)?PKe(t.bundledHtml).mtimeMs:0;if(n<=r)return;console.error("[haiku] SPA sources newer than haiku-ui-html.ts \u2014 rebuilding (dev mode)\u2026");let i=Date.now();try{tin("node",[t.bundleScript],{cwd:t.repoRoot,stdio:["ignore","ignore","inherit"]})}catch(s){throw new Error(`[haiku] SPA rebuild failed: ${s instanceof Error?s.message:String(s)} - Run 'node packages/haiku/scripts/bundle-haiku-ui.mjs' manually to see full output, or set HAIKU_DEV_SPA_AUTO_REBUILD=0 to skip the check.`)}console.error(`[haiku] SPA rebuild complete in ${((Date.now()-i)/1e3).toFixed(1)}s.`)}var CKe=v(()=>{"use strict"});var MKe={};Ar(MKe,{askUserInstruction:()=>fin,getCapabilities:()=>Mi,getHarness:()=>uin,isClaudeCode:()=>oh,listHarnesses:()=>lin,mapModelTier:()=>pin,setHarness:()=>cin,skillReference:()=>jN,subagentInstruction:()=>din});function cin(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in FN?Ow=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(FN).join(", ")}`),Ow="claude-code"),console.error(`[haiku] Harness: ${FN[Ow].displayName}`)}function uin(){return Ow}function Mi(){return FN[Ow]}function oh(){return Ow==="claude-code"}function lin(){return Object.keys(FN)}function din(e){let t=Mi();if(!t.subagents.supported)return e.count&&e.count>1?`Execute ${e.count} tasks sequentially for: ${e.purpose}. Complete each task fully before starting the next.`:`Execute the following task directly: ${e.purpose}.`;let n=t.subagents.toolNames[0]||"subagent",r=[];if(e.count&&e.count>1&&t.subagents.parallelSpawn?r.push(`Spawn ${e.count} \`${n}\` calls in a single response (parallel) for: ${e.purpose}.`):e.count&&e.count>1?r.push(`Spawn ${e.count} \`${n}\` calls for: ${e.purpose}.`):r.push(`Spawn a \`${n}\` for: ${e.purpose}.`),e.agentType&&t.subagents.toolNames.includes("Agent")&&oh()&&r.push(`Agent type: \`${e.agentType}\``),e.model&&t.subagents.modelParam){let i=t.modelTierMap[e.model]||e.model;r.push(`Spawn with \`model: "${i}"\`.`)}return r.join(` -`)}function jN(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function fin(){let e=Mi();return e.nativeAskUser?"Use `AskUserQuestion` with an `options[]` array for every decision that has known alternatives \u2014 NEVER output option lists as plain text":e.elicitation?"When you have questions with known alternatives, present them as a numbered list and ask the user to pick. Use MCP elicitation when available for structured input.":"When you have questions with known alternatives, present them as a clear numbered list and ask the user to pick."}function pin(e){return Mi().modelTierMap[e]||e}var FN,Ow,_f=v(()=>{"use strict";FN={"claude-code":{displayName:"Claude Code",nativeSkills:!0,promptsAsSlashCommands:!0,hooks:!0,elicitation:!0,nativeAskUser:!0,planMode:!0,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"anthropic",subagents:{supported:!0,toolNames:["Agent","Task"],modelParam:!0,parallelSpawn:!0,backgroundSpawn:!0,isolation:!0},modelTiers:["haiku","sonnet","opus"],modelTierMap:{haiku:"haiku",sonnet:"sonnet",opus:"opus"}},cursor:{displayName:"Cursor",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!0,nativeAskUser:!1,planMode:!1,maxTools:40,mcpPrompts:!0,mcpResources:!0,modelProvider:"multi",subagents:{supported:!0,toolNames:["Agent"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!0},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},windsurf:{displayName:"Windsurf",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:100,mcpPrompts:!0,mcpResources:!0,modelProvider:"multi",subagents:{supported:!1,toolNames:[],modelParam:!1,parallelSpawn:!1,backgroundSpawn:!1,isolation:!1},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},"gemini-cli":{displayName:"Gemini CLI",nativeSkills:!1,promptsAsSlashCommands:!0,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"google",subagents:{supported:!0,toolNames:["@subagent"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!1},modelTiers:["flash","pro"],modelTierMap:{haiku:"flash",sonnet:"pro",opus:"pro"}},opencode:{displayName:"OpenCode",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!1,mcpResources:!1,modelProvider:"multi",subagents:{supported:!0,toolNames:["subagent"],modelParam:!0,parallelSpawn:!1,backgroundSpawn:!1,isolation:!1},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},kiro:{displayName:"Kiro",nativeSkills:!1,promptsAsSlashCommands:!0,hooks:!0,elicitation:!0,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"anthropic",subagents:{supported:!0,toolNames:["/spawn"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!0},modelTiers:["haiku","sonnet","opus"],modelTierMap:{haiku:"haiku",sonnet:"sonnet",opus:"opus"}}},Ow="claude-code"});var Cn,Wne,Qe,ah,HN=v(()=>{(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},e.getValidEnumValues=i=>{let s=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},e.find=(i,s)=>{for(let o of i)if(s(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(Cn||(Cn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Wne||(Wne={}));Qe=Cn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ah=e=>{switch(typeof e){case"undefined":return Qe.undefined;case"string":return Qe.string;case"number":return Number.isNaN(e)?Qe.nan:Qe.number;case"boolean":return Qe.boolean;case"function":return Qe.function;case"bigint":return Qe.bigint;case"symbol":return Qe.symbol;case"object":return Array.isArray(e)?Qe.array:e===null?Qe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Qe.promise:typeof Map<"u"&&e instanceof Map?Qe.map:typeof Set<"u"&&e instanceof Set?Qe.set:typeof Date<"u"&&e instanceof Date?Qe.date:Qe.object;default:return Qe.unknown}}});var Ie,hin,Eu,BG=v(()=>{HN();Ie=Cn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),hin=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Eu=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Eu.create=e=>new Eu(e)});var min,Fm,Kne=v(()=>{BG();HN();min=(e,t)=>{let n;switch(e.code){case Ie.invalid_type:e.received===Qe.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Ie.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Cn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Cn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Cn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Cn.joinValues(e.options)}, received '${e.received}'`;break;case Ie.invalid_arguments:n="Invalid function arguments";break;case Ie.invalid_return_type:n="Invalid function return type";break;case Ie.invalid_date:n="Invalid date";break;case Ie.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Cn.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Ie.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Ie.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Ie.custom:n="Invalid input";break;case Ie.invalid_intersection_types:n="Intersection results could not be merged";break;case Ie.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Ie.not_finite:n="Number must be finite";break;default:n=t.defaultError,Cn.assertNever(e)}return{message:n}},Fm=min});function gin(e){DKe=e}function Pw(){return DKe}var DKe,zG=v(()=>{Kne();DKe=Fm});function We(e,t){let n=Pw(),r=qN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Fm?void 0:Fm].filter(i=>!!i)});e.common.issues.push(r)}var qN,yin,ha,Mt,p_,nc,GG,VG,vS,Nw,Yne=v(()=>{zG();Kne();qN=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}},yin=[];ha=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Mt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Mt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Mt=Object.freeze({status:"aborted"}),p_=e=>({status:"dirty",value:e}),nc=e=>({status:"valid",value:e}),GG=e=>e.status==="aborted",VG=e=>e.status==="dirty",vS=e=>e.status==="valid",Nw=e=>typeof Promise<"u"&&e instanceof Promise});var LKe=v(()=>{});var ut,UKe=v(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(ut||(ut={}))});function un(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function qKe(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Min(e){return new RegExp(`^${qKe(e)}$`)}function BKe(e){let t=`${HKe}T${qKe(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Din(e,t){return!!((t==="v4"||!t)&&kin.test(e)||(t==="v6"||!t)&&xin.test(e))}function Lin(e,t){if(!vin.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Uin(e,t){return!!((t==="v4"||!t)&&Iin.test(e)||(t==="v6"||!t)&&Oin.test(e))}function Fin(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function Cw(e){if(e instanceof _u){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ud.create(Cw(r))}return new _u({...e._def,shape:()=>t})}else return e instanceof qm?new qm({...e._def,type:Cw(e.element)}):e instanceof ud?ud.create(Cw(e.unwrap())):e instanceof uh?uh.create(Cw(e.unwrap())):e instanceof ch?ch.create(e.items.map(t=>Cw(t))):e}function Jne(e,t){let n=ah(e),r=ah(t);if(e===t)return{valid:!0,data:e};if(n===Qe.object&&r===Qe.object){let i=Cn.objectKeys(t),s=Cn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=Jne(e[a],t[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===Qe.array&&r===Qe.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let s=0;s{let s=e(r);if(s instanceof Promise)return s.then(o=>{if(!o){let a=jKe(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=jKe(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):AS.create()}var ld,FKe,mn,Sin,bin,Ein,_in,Tin,vin,Rin,Ain,win,Zne,kin,Iin,xin,Oin,Pin,Nin,HKe,Cin,RS,h_,m_,g_,y_,Mw,S_,b_,AS,Hm,Tf,Dw,qm,_u,E_,jm,WG,__,ch,KG,Lw,Uw,YG,T_,v_,R_,A_,wS,dd,ud,uh,w_,k_,Fw,jin,BN,zN,I_,Hin,Bt,qin,VKe,WKe,Bin,zin,KKe,Gin,Vin,Win,Kin,Yin,Zin,Jin,Xin,Qin,$in,esn,tsn,nsn,rsn,isn,ssn,osn,asn,csn,usn,lsn,dsn,fsn,psn,hsn,msn,gsn,ysn,Ssn,bsn,Esn,_sn,Tsn,vsn,YKe=v(()=>{BG();zG();UKe();Yne();HN();ld=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},FKe=(e,t)=>{if(vS(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Eu(e.common.issues);return this._error=n,this._error}}};mn=class{get description(){return this._def.description}_getType(t){return ah(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ah(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new ha,ctx:{common:t.parent.common,data:t.data,parsedType:ah(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Nw(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ah(t)},i=this._parseSync({data:t,path:r.path,parent:r});return FKe(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ah(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return vS(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>vS(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ah(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(Nw(i)?i:Promise.resolve(i));return FKe(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Ie.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new dd({schema:this,typeName:Bt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return ud.create(this,this._def)}nullable(){return uh.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return qm.create(this)}promise(){return wS.create(this,this._def)}or(t){return E_.create([this,t],this._def)}and(t){return __.create(this,t,this._def)}transform(t){return new dd({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new w_({...un(this._def),innerType:this,defaultValue:n,typeName:Bt.ZodDefault})}brand(){return new BN({typeName:Bt.ZodBranded,type:this,...un(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new k_({...un(this._def),innerType:this,catchValue:n,typeName:Bt.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return zN.create(this,t)}readonly(){return I_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Sin=/^c[^\s-]{8,}$/i,bin=/^[0-9a-z]+$/,Ein=/^[0-9A-HJKMNP-TV-Z]{26}$/i,_in=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Tin=/^[a-z0-9_-]{21}$/i,vin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Rin=/^[-+]?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)?)??$/,Ain=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,win="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",kin=/^(?:(?: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])$/,Iin=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,xin=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Oin=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Pin=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Nin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,HKe="((\\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])))",Cin=new RegExp(`^${HKe}$`);RS=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Qe.string){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.string,received:s.parsedType}),Mt}let r=new ha,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:Ie.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Ie.invalid_string,...ut.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...ut.errToObj(t)})}url(t){return this._addCheck({kind:"url",...ut.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...ut.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...ut.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...ut.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...ut.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...ut.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...ut.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...ut.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...ut.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...ut.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...ut.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...ut.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...ut.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...ut.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...ut.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...ut.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...ut.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...ut.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...ut.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...ut.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...ut.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...ut.errToObj(n)})}nonempty(t){return this.min(1,ut.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew RS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});h_=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Qe.number){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.number,received:s.parsedType}),Mt}let r,i=new ha;for(let s of this._def.checks)s.kind==="int"?Cn.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Fin(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_finite,message:s.message}),i.dirty()):Cn.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:ut.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:ut.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ut.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ut.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&Cn.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew h_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});m_=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==Qe.bigint)return this._getInvalidInput(t);let r,i=new ha;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):Cn.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return We(n,{code:Ie.invalid_type,expected:Qe.bigint,received:n.parsedType}),Mt}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew m_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});g_=class extends mn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Qe.boolean){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.boolean,received:r.parsedType}),Mt}return nc(t.data)}};g_.create=e=>new g_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});y_=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Qe.date){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.date,received:s.parsedType}),Mt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_date}),Mt}let r=new ha,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:Ie.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):Cn.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:ut.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:ut.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew y_({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});Mw=class extends mn{_parse(t){if(this._getType(t)!==Qe.symbol){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.symbol,received:r.parsedType}),Mt}return nc(t.data)}};Mw.create=e=>new Mw({typeName:Bt.ZodSymbol,...un(e)});S_=class extends mn{_parse(t){if(this._getType(t)!==Qe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.undefined,received:r.parsedType}),Mt}return nc(t.data)}};S_.create=e=>new S_({typeName:Bt.ZodUndefined,...un(e)});b_=class extends mn{_parse(t){if(this._getType(t)!==Qe.null){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.null,received:r.parsedType}),Mt}return nc(t.data)}};b_.create=e=>new b_({typeName:Bt.ZodNull,...un(e)});AS=class extends mn{constructor(){super(...arguments),this._any=!0}_parse(t){return nc(t.data)}};AS.create=e=>new AS({typeName:Bt.ZodAny,...un(e)});Hm=class extends mn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return nc(t.data)}};Hm.create=e=>new Hm({typeName:Bt.ZodUnknown,...un(e)});Tf=class extends mn{_parse(t){let n=this._getOrReturnCtx(t);return We(n,{code:Ie.invalid_type,expected:Qe.never,received:n.parsedType}),Mt}};Tf.create=e=>new Tf({typeName:Bt.ZodNever,...un(e)});Dw=class extends mn{_parse(t){if(this._getType(t)!==Qe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.void,received:r.parsedType}),Mt}return nc(t.data)}};Dw.create=e=>new Dw({typeName:Bt.ZodVoid,...un(e)});qm=class e extends mn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==Qe.array)return We(n,{code:Ie.invalid_type,expected:Qe.array,received:n.parsedType}),Mt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(We(n,{code:Ie.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new ld(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new ld(n,o,n.path,a)));return ha.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:ut.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:ut.toString(n)}})}nonempty(t){return this.min(1,t)}};qm.create=(e,t)=>new qm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});_u=class e extends mn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=Cn.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==Qe.object){let u=this._getOrReturnCtx(t);return We(u,{code:Ie.invalid_type,expected:Qe.object,received:u.parsedType}),Mt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Tf&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new ld(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Tf){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(We(i,{code:Ie.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new ld(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>ha.mergeObjectSync(r,u)):ha.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return ut.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:ut.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Bt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of Cn.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of Cn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Cw(this)}partial(t){let n={};for(let r of Cn.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of Cn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof ud;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return zKe(Cn.objectKeys(this.shape))}};_u.create=(e,t)=>new _u({shape:()=>e,unknownKeys:"strip",catchall:Tf.create(),typeName:Bt.ZodObject,...un(t)});_u.strictCreate=(e,t)=>new _u({shape:()=>e,unknownKeys:"strict",catchall:Tf.create(),typeName:Bt.ZodObject,...un(t)});_u.lazycreate=(e,t)=>new _u({shape:e,unknownKeys:"strip",catchall:Tf.create(),typeName:Bt.ZodObject,...un(t)});E_=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Eu(a.ctx.common.issues));return We(n,{code:Ie.invalid_union,unionErrors:o}),Mt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Eu(c));return We(n,{code:Ie.invalid_union,unionErrors:a}),Mt}}get options(){return this._def.options}};E_.create=(e,t)=>new E_({options:e,typeName:Bt.ZodUnion,...un(t)});jm=e=>e instanceof T_?jm(e.schema):e instanceof dd?jm(e.innerType()):e instanceof v_?[e.value]:e instanceof R_?e.options:e instanceof A_?Cn.objectValues(e.enum):e instanceof w_?jm(e._def.innerType):e instanceof S_?[void 0]:e instanceof b_?[null]:e instanceof ud?[void 0,...jm(e.unwrap())]:e instanceof uh?[null,...jm(e.unwrap())]:e instanceof BN||e instanceof I_?jm(e.unwrap()):e instanceof k_?jm(e._def.innerType):[],WG=class e extends mn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.object)return We(n,{code:Ie.invalid_type,expected:Qe.object,received:n.parsedType}),Mt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(We(n,{code:Ie.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=jm(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:Bt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...un(r)})}};__=class extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(GG(s)||GG(o))return Mt;let a=Jne(s.value,o.value);return a.valid?((VG(s)||VG(o))&&n.dirty(),{status:n.value,value:a.data}):(We(r,{code:Ie.invalid_intersection_types}),Mt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};__.create=(e,t,n)=>new __({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ch=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.array)return We(r,{code:Ie.invalid_type,expected:Qe.array,received:r.parsedType}),Mt;if(r.data.lengththis._def.items.length&&(We(r,{code:Ie.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new ld(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>ha.mergeArray(n,o)):ha.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};ch.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ch({items:e,typeName:Bt.ZodTuple,rest:null,...un(t)})};KG=class e extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.object)return We(r,{code:Ie.invalid_type,expected:Qe.object,received:r.parsedType}),Mt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new ld(r,a,r.path,a)),value:o._parse(new ld(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?ha.mergeObjectAsync(n,i):ha.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof mn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:RS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},Lw=class extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.map)return We(r,{code:Ie.invalid_type,expected:Qe.map,received:r.parsedType}),Mt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new ld(r,a,r.path,[u,"key"])),value:s._parse(new ld(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Mt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Mt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};Lw.create=(e,t,n)=>new Lw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Uw=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.set)return We(r,{code:Ie.invalid_type,expected:Qe.set,received:r.parsedType}),Mt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(We(r,{code:Ie.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Mt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new ld(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:ut.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Uw.create=(e,t)=>new Uw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});YG=class e extends mn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.function)return We(n,{code:Ie.invalid_type,expected:Qe.function,received:n.parsedType}),Mt;function r(a,c){return qN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Pw(),Fm].filter(u=>!!u),issueData:{code:Ie.invalid_arguments,argumentsError:c}})}function i(a,c){return qN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Pw(),Fm].filter(u=>!!u),issueData:{code:Ie.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof wS){let a=this;return nc(async function(...c){let u=new Eu([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return nc(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Eu([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Eu([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:ch.create(t).rest(Hm.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||ch.create([]).rest(Hm.create()),returns:n||Hm.create(),typeName:Bt.ZodFunction,...un(r)})}},T_=class extends mn{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};T_.create=(e,t)=>new T_({getter:e,typeName:Bt.ZodLazy,...un(t)});v_=class extends mn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return We(n,{received:n.data,code:Ie.invalid_literal,expected:this._def.value}),Mt}return{status:"valid",value:t.data}}get value(){return this._def.value}};v_.create=(e,t)=>new v_({value:e,typeName:Bt.ZodLiteral,...un(t)});R_=class e extends mn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Cn.joinValues(r),received:n.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{received:n.data,code:Ie.invalid_enum_value,options:r}),Mt}return nc(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};R_.create=zKe;A_=class extends mn{_parse(t){let n=Cn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Qe.string&&r.parsedType!==Qe.number){let i=Cn.objectValues(n);return We(r,{expected:Cn.joinValues(i),received:r.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(Cn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Cn.objectValues(n);return We(r,{received:r.data,code:Ie.invalid_enum_value,options:i}),Mt}return nc(t.data)}get enum(){return this._def.values}};A_.create=(e,t)=>new A_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});wS=class extends mn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.promise&&n.common.async===!1)return We(n,{code:Ie.invalid_type,expected:Qe.promise,received:n.parsedType}),Mt;let r=n.parsedType===Qe.promise?n.data:Promise.resolve(n.data);return nc(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};wS.create=(e,t)=>new wS({type:e,typeName:Bt.ZodPromise,...un(t)});dd=class extends mn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Bt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{We(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Mt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Mt:c.status==="dirty"?p_(c.value):n.value==="dirty"?p_(c.value):c});{if(n.value==="aborted")return Mt;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Mt:a.status==="dirty"?p_(a.value):n.value==="dirty"?p_(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Mt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Mt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!vS(o))return Mt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>vS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Cn.assertNever(i)}};dd.create=(e,t,n)=>new dd({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});dd.createWithPreprocess=(e,t,n)=>new dd({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ud=class extends mn{_parse(t){return this._getType(t)===Qe.undefined?nc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ud.create=(e,t)=>new ud({innerType:e,typeName:Bt.ZodOptional,...un(t)});uh=class extends mn{_parse(t){return this._getType(t)===Qe.null?nc(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};uh.create=(e,t)=>new uh({innerType:e,typeName:Bt.ZodNullable,...un(t)});w_=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===Qe.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};w_.create=(e,t)=>new w_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});k_=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Nw(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Eu(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Eu(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};k_.create=(e,t)=>new k_({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});Fw=class extends mn{_parse(t){if(this._getType(t)!==Qe.nan){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.nan,received:r.parsedType}),Mt}return{status:"valid",value:t.data}}};Fw.create=e=>new Fw({typeName:Bt.ZodNaN,...un(e)});jin=Symbol("zod_brand"),BN=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},zN=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Mt:s.status==="dirty"?(n.dirty(),p_(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Mt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:Bt.ZodPipeline})}},I_=class extends mn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(vS(i)&&(i.value=Object.freeze(i.value)),i);return Nw(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};I_.create=(e,t)=>new I_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Hin={object:_u.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Bt||(Bt={}));qin=(e,t={message:`Input not instance of ${e.name}`})=>GKe(n=>n instanceof e,t),VKe=RS.create,WKe=h_.create,Bin=Fw.create,zin=m_.create,KKe=g_.create,Gin=y_.create,Vin=Mw.create,Win=S_.create,Kin=b_.create,Yin=AS.create,Zin=Hm.create,Jin=Tf.create,Xin=Dw.create,Qin=qm.create,$in=_u.create,esn=_u.strictCreate,tsn=E_.create,nsn=WG.create,rsn=__.create,isn=ch.create,ssn=KG.create,osn=Lw.create,asn=Uw.create,csn=YG.create,usn=T_.create,lsn=v_.create,dsn=R_.create,fsn=A_.create,psn=wS.create,hsn=dd.create,msn=ud.create,gsn=uh.create,ysn=dd.createWithPreprocess,Ssn=zN.create,bsn=()=>VKe().optional(),Esn=()=>WKe().optional(),_sn=()=>KKe().optional(),Tsn={string:(e=>RS.create({...e,coerce:!0})),number:(e=>h_.create({...e,coerce:!0})),boolean:(e=>g_.create({...e,coerce:!0})),bigint:(e=>m_.create({...e,coerce:!0})),date:(e=>y_.create({...e,coerce:!0}))},vsn=Mt});var O={};Ar(O,{BRAND:()=>jin,DIRTY:()=>p_,EMPTY_PATH:()=>yin,INVALID:()=>Mt,NEVER:()=>vsn,OK:()=>nc,ParseStatus:()=>ha,Schema:()=>mn,ZodAny:()=>AS,ZodArray:()=>qm,ZodBigInt:()=>m_,ZodBoolean:()=>g_,ZodBranded:()=>BN,ZodCatch:()=>k_,ZodDate:()=>y_,ZodDefault:()=>w_,ZodDiscriminatedUnion:()=>WG,ZodEffects:()=>dd,ZodEnum:()=>R_,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>YG,ZodIntersection:()=>__,ZodIssueCode:()=>Ie,ZodLazy:()=>T_,ZodLiteral:()=>v_,ZodMap:()=>Lw,ZodNaN:()=>Fw,ZodNativeEnum:()=>A_,ZodNever:()=>Tf,ZodNull:()=>b_,ZodNullable:()=>uh,ZodNumber:()=>h_,ZodObject:()=>_u,ZodOptional:()=>ud,ZodParsedType:()=>Qe,ZodPipeline:()=>zN,ZodPromise:()=>wS,ZodReadonly:()=>I_,ZodRecord:()=>KG,ZodSchema:()=>mn,ZodSet:()=>Uw,ZodString:()=>RS,ZodSymbol:()=>Mw,ZodTransformer:()=>dd,ZodTuple:()=>ch,ZodType:()=>mn,ZodUndefined:()=>S_,ZodUnion:()=>E_,ZodUnknown:()=>Hm,ZodVoid:()=>Dw,addIssueToContext:()=>We,any:()=>Yin,array:()=>Qin,bigint:()=>zin,boolean:()=>KKe,coerce:()=>Tsn,custom:()=>GKe,date:()=>Gin,datetimeRegex:()=>BKe,defaultErrorMap:()=>Fm,discriminatedUnion:()=>nsn,effect:()=>hsn,enum:()=>dsn,function:()=>csn,getErrorMap:()=>Pw,getParsedType:()=>ah,instanceof:()=>qin,intersection:()=>rsn,isAborted:()=>GG,isAsync:()=>Nw,isDirty:()=>VG,isValid:()=>vS,late:()=>Hin,lazy:()=>usn,literal:()=>lsn,makeIssue:()=>qN,map:()=>osn,nan:()=>Bin,nativeEnum:()=>fsn,never:()=>Jin,null:()=>Kin,nullable:()=>gsn,number:()=>WKe,object:()=>$in,objectUtil:()=>Wne,oboolean:()=>_sn,onumber:()=>Esn,optional:()=>msn,ostring:()=>bsn,pipeline:()=>Ssn,preprocess:()=>ysn,promise:()=>psn,quotelessJson:()=>hin,record:()=>ssn,set:()=>asn,setErrorMap:()=>gin,strictObject:()=>esn,string:()=>VKe,symbol:()=>Vin,transformer:()=>hsn,tuple:()=>isn,undefined:()=>Win,union:()=>tsn,unknown:()=>Zin,util:()=>Cn,void:()=>Xin});var Xne=v(()=>{zG();Yne();LKe();HN();YKe();BG()});function me(e,t,n){function r(a,c){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(e),t(a,c);for(let l in o.prototype)l in a||Object.defineProperty(a,l,{value:o.prototype[l].bind(a)});a._zod.constr=o,a._zod.def=c}let i=n?.Parent??Object;class s extends i{}Object.defineProperty(s,"name",{value:e});function o(a){var c;let u=n?.Parent?new s:this;r(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function fd(e){return e&&Object.assign(ZG,e),ZG}var bHr,Bm,ZG,jw=v(()=>{bHr=Object.freeze({status:"aborted"});Bm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},ZG={}});var or={};Ar(or,{BIGINT_FORMAT_RANGES:()=>JKe,Class:()=>$ne,NUMBER_FORMAT_RANGES:()=>are,aborted:()=>O_,allowsEval:()=>ire,assert:()=>Isn,assertEqual:()=>Rsn,assertIs:()=>wsn,assertNever:()=>ksn,assertNotEqual:()=>Asn,assignProp:()=>rre,cached:()=>VN,captureStackTrace:()=>XG,cleanEnum:()=>qsn,cleanRegex:()=>KN,clone:()=>lh,createTransparentProxy:()=>Msn,defineLazy:()=>ni,esc:()=>x_,escapeRegex:()=>kS,extend:()=>Usn,finalizeIssue:()=>vf,floatSafeRemainder:()=>nre,getElementAtPath:()=>xsn,getEnumValues:()=>ere,getLengthableOrigin:()=>YN,getParsedType:()=>Csn,getSizableOrigin:()=>XKe,isObject:()=>Hw,isPlainObject:()=>qw,issue:()=>cre,joinValues:()=>JG,jsonStringifyReplacer:()=>tre,merge:()=>Fsn,normalizeParams:()=>Dt,nullish:()=>WN,numKeys:()=>Nsn,omit:()=>Lsn,optionalKeys:()=>ore,partial:()=>jsn,pick:()=>Dsn,prefixIssues:()=>dh,primitiveTypes:()=>ZKe,promiseAllObject:()=>Osn,propertyKeyTypes:()=>sre,randomString:()=>Psn,required:()=>Hsn,stringifyPrimitive:()=>QG,unwrapMessage:()=>GN});function Rsn(e){return e}function Asn(e){return e}function wsn(e){}function ksn(e){throw new Error}function Isn(e){}function ere(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function JG(e,t="|"){return e.map(n=>QG(n)).join(t)}function tre(e,t){return typeof t=="bigint"?t.toString():t}function VN(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function WN(e){return e==null}function KN(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function nre(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function ni(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function rre(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function xsn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Osn(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Msn(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function QG(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function ore(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Dsn(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return lh(e,{...e._zod.def,shape:n,checks:[]})}function Lsn(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return lh(e,{...e._zod.def,shape:n,checks:[]})}function Usn(e,t){if(!qw(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return rre(this,"shape",r),r},checks:[]};return lh(e,n)}function Fsn(e,t){return lh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return rre(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function jsn(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return lh(t,{...t._zod.def,shape:i,checks:[]})}function Hsn(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return lh(t,{...t._zod.def,shape:i,checks:[]})}function O_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function GN(e){return typeof e=="string"?e:e?.message}function vf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=GN(e.inst?._zod.def?.error?.(e))??GN(t?.error?.(e))??GN(n.customError?.(e))??GN(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function XKe(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function YN(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function cre(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function qsn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var XG,ire,Csn,sre,ZKe,are,JKe,$ne,zm=v(()=>{XG=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};ire=VN(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Csn=e=>{let t=typeof e;switch(t){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":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},sre=new Set(["string","number","symbol"]),ZKe=new Set(["string","number","bigint","boolean","symbol","undefined"]);are={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},JKe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};$ne=class{constructor(...t){}}});function $Ke(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function e3e(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;c{jw();zm();QKe=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,tre,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},$G=me("$ZodError",QKe),ure=me("$ZodError",QKe,{Parent:Error})});var t3e,n3e,dre,ZN,fre,e2,pre=v(()=>{jw();lre();zm();t3e=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new Bm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,fd())));throw XG(a,i?.callee),a}return o.value},n3e=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,fd())));throw XG(a,i?.callee),a}return o.value},dre=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Bm;return s.issues.length?{success:!1,error:new(e??$G)(s.issues.map(o=>vf(o,i,fd())))}:{success:!0,data:s.value}},ZN=dre(ure),fre=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>vf(o,i,fd())))}:{success:!0,data:s.value}},e2=fre(ure)});function f3e(){return new RegExp(zsn,"u")}function T3e(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function v3e(e){return new RegExp(`^${T3e(e)}$`)}function R3e(e){let t=T3e({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-]\\d{2}:\\d{2})");let r=`${t}(?:${n.join("|")})`;return new RegExp(`^${E3e}T(?:${r})$`)}var r3e,i3e,s3e,o3e,a3e,c3e,u3e,l3e,hre,d3e,zsn,p3e,h3e,m3e,g3e,y3e,mre,S3e,b3e,E3e,_3e,A3e,w3e,k3e,I3e,x3e,O3e,P3e,t2=v(()=>{r3e=/^[cC][^\s-]{8,}$/,i3e=/^[0-9a-z]+$/,s3e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,o3e=/^[0-9a-vA-V]{20}$/,a3e=/^[A-Za-z0-9]{27}$/,c3e=/^[a-zA-Z0-9_-]{21}$/,u3e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,l3e=/^([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})$/,hre=e=>e?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})$`):/^([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)$/,d3e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,zsn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";p3e=/^(?:(?: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])$/,h3e=/^(([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})$/,m3e=/^((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])$/,g3e=/^(([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])$/,y3e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,mre=/^[A-Za-z0-9_-]*$/,S3e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,b3e=/^\+(?:[0-9]){6,14}[0-9]$/,E3e="(?:(?:\\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])))",_3e=new RegExp(`^${E3e}$`);A3e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},w3e=/^\d+$/,k3e=/^-?\d+(?:\.\d+)?/i,I3e=/true|false/i,x3e=/null/i,O3e=/^[^A-Z]*$/,P3e=/^[^a-z]*$/});var rc,N3e,yre,Sre,C3e,M3e,D3e,L3e,U3e,JN,F3e,j3e,H3e,q3e,B3e,z3e,G3e,n2=v(()=>{jw();t2();zm();rc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),N3e={number:"number",bigint:"bigint",object:"date"},yre=me("$ZodCheckLessThan",(e,t)=>{rc.init(e,t);let n=N3e[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{rc.init(e,t);let n=N3e[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),C3e=me("$ZodCheckMultipleOf",(e,t)=>{rc.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):nre(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),M3e=me("$ZodCheckNumberFormat",(e,t)=>{rc.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=are[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=w3e)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),D3e=me("$ZodCheckMaxLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!WN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let i=r.value;if(i.length<=t.maximum)return;let o=YN(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),L3e=me("$ZodCheckMinLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!WN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{let i=r.value;if(i.length>=t.minimum)return;let o=YN(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),U3e=me("$ZodCheckLengthEquals",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!WN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{let i=r.value,s=i.length;if(s===t.length)return;let o=YN(i),a=s>t.length;r.issues.push({origin:o,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),JN=me("$ZodCheckStringFormat",(e,t)=>{var n,r;rc.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),F3e=me("$ZodCheckRegex",(e,t)=>{JN.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),j3e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=O3e),JN.init(e,t)}),H3e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=P3e),JN.init(e,t)}),q3e=me("$ZodCheckIncludes",(e,t)=>{rc.init(e,t);let n=kS(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),B3e=me("$ZodCheckStartsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`^${kS(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),z3e=me("$ZodCheckEndsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`.*${kS(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),G3e=me("$ZodCheckOverwrite",(e,t)=>{rc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var r2,bre=v(()=>{r2=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` +`;let c=fHe(i);i.write(`${a}\r +`);let{connect:u,buffered:l}=await c;if(t.emit("proxyConnect",u),this.emit("proxyConnect",u,t),u.statusCode===200){if(t.once("socket",I8t),n.secureEndpoint){DP("Upgrading socket connection to TLS");let f=n.servername||n.host;return fee.connect({...hHe(n,"host","path","port"),socket:i,servername:Im.isIP(f)?void 0:f})}return i}i.destroy();let d=new Im.Socket({writable:!1});return d.readable=!0,t.once("socket",f=>{DP("Replaying proxy buffer for failed request"),f.push(l),f.push(null)}),d}};LP.__initStatic()});import*as x8t from"node:http";import*as O8t from"node:https";import{Readable as P8t}from"node:stream";import{createGzip as N8t}from"node:zlib";function M8t(e){return new P8t({read(){this.push(e),this.push(null)}})}function gHe(e){let t;try{t=new URL(e.url)}catch{return xs(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),tP(e,()=>Promise.resolve({}))}let n=t.protocol==="https:",r=D8t(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?O8t:x8t,s=e.keepAlive===void 0?!1:e.keepAlive,o=r?new LP(r):new i.Agent({keepAlive:s,maxSockets:30,timeout:2e3}),a=L8t(e,e.httpModule??i,o);return tP(e,a)}function D8t(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(i=>e.host.endsWith(i)||e.hostname.endsWith(i)))return t}function L8t(e,t,n){let{hostname:r,pathname:i,port:s,protocol:o,search:a}=new URL(e.url);return function(u){return new Promise((l,d)=>{KR(()=>{let f=M8t(u.body),p={...e.headers};u.body.length>C8t&&(p["content-encoding"]="gzip",f=f.pipe(N8t()));let h=r.startsWith("["),m=t.request({method:"POST",agent:n,headers:p,hostname:h?r.slice(1,-1):r,path:`${i}${a}`,port:s,protocol:o,ca:e.caCerts},g=>{g.on("data",()=>{}),g.on("end",()=>{}),g.setEncoding("utf8");let y=g.headers["retry-after"]??null,b=g.headers["x-sentry-rate-limits"]??null;l({statusCode:g.statusCode,headers:{"retry-after":y,"x-sentry-rate-limits":Array.isArray(b)?b[0]||null:b}})});m.on("error",d),f.pipe(m)})})}}var C8t,yHe=v(()=>{st();mHe();C8t=1024*32});function SHe(e){if(e===!1)return!1;if(typeof e=="string")return e;let t=$R(process.env.SENTRY_SPOTLIGHT,{strict:!0}),n=t===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return e===!0?n??!0:t??n}var bHe=v(()=>{st()});import{posix as U8t,sep as F8t}from"node:path";function EHe(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}function _He(e=process.argv[1]?XX(process.argv[1]):process.cwd(),t=F8t==="\\"){let n=t?EHe(e):e;return r=>{if(!r)return;let i=t?EHe(r):r,{dir:s,base:o,ext:a}=U8t.parse(i);(a===".js"||a===".mjs"||a===".cjs")&&(o=o.slice(0,a.length*-1));let c=decodeURIComponent(o);s||(s=".");let u=s.lastIndexOf("/node_modules");if(u>-1)return`${s.slice(u+14).replace(/\//g,".")}:${c}`;if(s.startsWith(n)){let l=s.slice(n.length+1).replace(/\//g,".");return l?`${l}:${c}`:c}return c}}var THe=v(()=>{st()});function vHe(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(qt.SENTRY_RELEASE?.id)return qt.SENTRY_RELEASE.id;let t=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,n=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,r=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return t||n||r||e}var RHe,AHe=v(()=>{st();THe();RHe=Pj(FQ(_He()))});import*as wHe from"node:os";import{threadId as j8t,isMainThread as H8t}from"worker_threads";var kHe,q8t,oB,IHe=v(()=>{Ce();kHe=Re(Jt(),1);st();IA();ff();q8t=6e4,oB=class extends nP{constructor(t){let n=t.includeServerName===!1?void 0:t.serverName||global.process.env.SENTRY_NAME||wHe.hostname(),r={...t,platform:"node",runtime:t.runtime||{name:"node",version:global.process.version},serverName:n};t.openTelemetryInstrumentations&&(0,kHe.registerInstrumentations)({instrumentations:t.openTelemetryInstrumentations}),LE(r,"node"),Z.log(`Initializing Sentry: process: ${process.pid}, thread: ${H8t?"main":`worker-${j8t}`}.`),super(r),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{XR(this)},n&&this.on("beforeCaptureLog",i=>{i.attributes={...i.attributes,"server.address":n}}),process.on("beforeExit",this._logOnExitFlushListener))}get tracer(){if(this._tracer)return this._tracer;let t="@sentry/node",n=Nn,r=jt.getTracer(t,n);return this._tracer=r,r}async flush(t){return await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports&&this._flushOutcomes(),super.flush(t)}async close(t){this._clientReportInterval&&clearInterval(this._clientReportInterval),this._clientReportOnExitFlushListener&&process.off("beforeExit",this._clientReportOnExitFlushListener),this._logOnExitFlushListener&&process.off("beforeExit",this._logOnExitFlushListener);let n=await super.close(t);return this.traceProvider&&await this.traceProvider.shutdown(),n}startClientReportTracking(){let t=this.getOptions();t.sendClientReports&&(this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{Qt&&Z.log("Flushing client reports based on interval."),this._flushOutcomes()},t.clientReportFlushInterval??q8t).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){zX(),super._setupIntegrations()}_getTraceInfoFromScope(t){return t?uje(this,t):[void 0,void 0]}}});import*as OHe from"module";function pee(){if(Kje()&&!qt._sentryEsmLoaderHookRegistered){qt._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:e}=(0,xHe.createAddHookMessageChannel)();OHe.register("import-in-the-middle/hook.mjs",import.meta.url,{data:{addHookMessagePort:e,include:[]},transferList:[e]})}catch(e){Z.warn("Failed to register 'import-in-the-middle' hook",e)}}}var xHe,PHe=v(()=>{st();xHe=Re(mJ(),1);rB()});function aB(){return[_H(),bH(),TH(),vH(),uHe(),tQ(),AH(),xUe(),LUe(),$je(),tHe(),Cje(),Gje(),wje(),Tje(),rHe(),Xje()]}function hee(e={}){return B8t(e,aB)}function B8t(e={},t){let n=z8t(e,t);n.debug===!0&&(Qt?Z.enable():xs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),n.registerEsmLoaderHooks!==!1&&pee(),fje(),Un().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:s})=>s===lee)&&n.integrations.push(oHe({sidecarUrl:typeof n.spotlight=="string"?n.spotlight:void 0})),LE(n,"node-core");let i=new oB(n);return Un().setClient(i),i.init(),Z.log(`SDK initialized from ${CP()?"CommonJS":"ESM"}`),i.startClientReportTracking(),W8t(),ZFe(i),dje(i),process.env.VERCEL&&process.on("SIGTERM",async()=>{await i.flush(200)}),i}function mee(){if(!Qt)return;let e=$Fe(),t=["SentryContextManager","SentryPropagator"];Os()&&t.push("SentrySpanProcessor");for(let n of t)e.includes(n)||Z.error(`You have to set up the ${n}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);e.includes("SentrySampler")||Z.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}function z8t(e,t){let n=G8t(e.release),r=SHe(e.spotlight),i=V8t(e.tracesSampleRate),s={...e,dsn:e.dsn??process.env.SENTRY_DSN,environment:e.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:e.sendClientReports??!0,transport:e.transport??gHe,stackParser:OJ(e.stackParser||RHe),release:n,tracesSampleRate:i,spotlight:r,debug:$R(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,a=e.defaultIntegrations??t(s);return{...s,integrations:OX({defaultIntegrations:a,integrations:o})}}function G8t(e){if(e!==void 0)return e;let t=vHe();if(t!==void 0)return t}function V8t(e){if(e!==void 0)return e;let t=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!t)return;let n=parseFloat(t);return isFinite(n)?n:void 0}function W8t(){if($R(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=HO(e,t);Un().setPropagationContext(n)}}var NHe=v(()=>{st();IA();ff();vje();kje();Mje();OUe();Vje();Qje();UUe();eHe();nHe();iHe();aHe();lHe();yHe();rB();bHe();AHe();IHe();PHe()});function Dr(e,t){e.setAttribute(At,t)}var CHe=v(()=>{st()});function UP(e){let t=e.protocol||"",n=e.hostname||e.host||"",r=!e.port||e.port===80||e.port===443||/^(.*):(\d+)$/.test(n)?"":`:${e.port}`,i=e.path?e.path:"/";return`${t}//${n}${r}${i}`}var MHe=v(()=>{});var sr=v(()=>{BQ();ZH();WQ();JQ();Eje();_je();KH();NHe();CHe();MHe();fA()});function Z8t(e,t={}){return typeof e.spans=="boolean"?e.spans:!(t.skipOpenTelemetrySetup||!Os(t)&&cB)}function J8t(e={}){return{disableOutgoingRequestInstrumentation:cB,ignoreOutgoingRequestHook:n=>{let r=UP(n);if(!r)return!1;let i=e.ignoreOutgoingRequests;return!!i?.(r,n)},requireParentforOutgoingSpans:!1,requestHook:(n,r)=>{Dr(n,"auto.http.otel.http");let i=UP(r);if(i.startsWith("data:")){let s=eA(i);n.setAttribute("http.url",s),n.setAttribute(Iy,s),n.updateName(`${r.method||"GET"} ${s}`)}e.instrumentation?.requestHook?.(n,r)},responseHook:(n,r)=>{e.instrumentation?.responseHook?.(n,r)},applyCustomAttributesOnSpan:(n,r,i)=>{e.instrumentation?.applyCustomAttributesOnSpan?.(n,r,i)}}}var LHe,gee,DHe,cB,K8t,Y8t,UHe,FHe=v(()=>{Ce();LHe=Re(TCe(),1);st();sr();gee="Http",DHe="@opentelemetry_sentry-patched/instrumentation-http",cB=pf.major===22&&pf.minor>=12||pf.major===23&&pf.minor>=2||pf.major>=24,K8t=rt(`${gee}.sentry`,e=>new GE(e)),Y8t=rt(gee,e=>{let t=new LHe.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=sl.createComponentLogger({namespace:DHe}),t.instrumentationName=DHe}catch{}try{let n={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",n),Object.defineProperty(t,"_httpsPatched",n)}catch{}return t});UHe=(e={})=>{let t=e.spans??!0,n=e.disableIncomingRequestSpans,r={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},i={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes,instrumentation:e.instrumentation,onSpanCreated:e.incomingRequestSpanHook},s=SP(r),o=bP(i),a=t&&!n;return{name:gee,setup(c){let u=c.getOptions();a&&Os(u)&&o.setup(c)},setupOnce(){let c=ct()?.getOptions()||{},u=Z8t(e,c);s.setupOnce();let l={breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:typeof e.tracePropagation=="boolean"?e.tracePropagation:cB||!u,createSpansForOutgoingRequests:cB,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(d,f)=>{let p=UP(f);if(p.startsWith("data:")){let h=eA(p);d.setAttribute("http.url",h),d.setAttribute(Iy,h),d.updateName(`${f.method||"GET"} ${h}`)}e.instrumentation?.requestHook?.(d,f)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan};if(K8t(l),u){let d=J8t(e);Y8t(d)}},processEvent(c){return o.processEvent(c)}}}});var jHe=w(xA=>{"use strict";Object.defineProperty(xA,"__esModule",{value:!0});xA.PACKAGE_NAME=xA.PACKAGE_VERSION=void 0;xA.PACKAGE_VERSION="0.24.0";xA.PACKAGE_NAME="@opentelemetry/instrumentation-undici"});var qHe=w(lB=>{"use strict";Object.defineProperty(lB,"__esModule",{value:!0});lB.UndiciInstrumentation=void 0;var yee=K("diagnostics_channel"),X8t=K("url"),FP=Jt(),pl=(Ce(),ke(Ze)),uB=fr(),Vs=(Pn(),ke(Mr)),HHe=jHe(),See=class extends FP.InstrumentationBase{_recordFromReq=new WeakMap;constructor(t={}){super(HHe.PACKAGE_NAME,HHe.PACKAGE_VERSION,t)}init(){}disable(){super.disable(),this._channelSubs.forEach(t=>t.unsubscribe()),this._channelSubs.length=0}enable(){super.enable(),this._channelSubs=this._channelSubs||[],!(this._channelSubs.length>0)&&(this.subscribeToChannel("undici:request:create",this.onRequestCreated.bind(this)),this.subscribeToChannel("undici:client:sendHeaders",this.onRequestHeaders.bind(this)),this.subscribeToChannel("undici:request:headers",this.onResponseHeaders.bind(this)),this.subscribeToChannel("undici:request:trailers",this.onDone.bind(this)),this.subscribeToChannel("undici:request:error",this.onError.bind(this)))}_updateMetricInstruments(){this._httpClientDurationHistogram=this.meter.createHistogram(Vs.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Measures the duration of outbound HTTP requests.",unit:"s",valueType:pl.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}subscribeToChannel(t,n){let[r,i]=process.version.replace("v","").split(".").map(a=>Number(a)),s=r>18||r===18&&i>=19,o;if(s)yee.subscribe?.(t,n),o=()=>yee.unsubscribe?.(t,n);else{let a=yee.channel(t);a.subscribe(n),o=()=>a.unsubscribe(n)}this._channelSubs.push({name:t,unsubscribe:o})}parseRequestHeaders(t){let n=new Map;if(Array.isArray(t.headers))for(let r=0;r!r||t.method==="CONNECT"||n.ignoreRequestHook?.(t),T=>T&&this._diag.error("caught ignoreRequestHook error: ",T),!0))return;let s=(0,uB.hrTime)(),o;try{o=new X8t.URL(t.path,t.origin)}catch(T){this._diag.warn("could not determine url.full:",T);return}let a=o.protocol.replace(":",""),c=this.getRequestMethod(t.method),u={[Vs.ATTR_HTTP_REQUEST_METHOD]:c,[Vs.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]:t.method,[Vs.ATTR_URL_FULL]:o.toString(),[Vs.ATTR_URL_PATH]:o.pathname,[Vs.ATTR_URL_QUERY]:o.search,[Vs.ATTR_URL_SCHEME]:a},l={https:"443",http:"80"},d=o.hostname,f=o.port||l[a];u[Vs.ATTR_SERVER_ADDRESS]=d,f&&!isNaN(Number(f))&&(u[Vs.ATTR_SERVER_PORT]=Number(f));let h=this.parseRequestHeaders(t).get("user-agent");if(h){let T=Array.isArray(h)?h[h.length-1]:h;u[Vs.ATTR_USER_AGENT_ORIGINAL]=T}let m=(0,FP.safeExecuteInTheMiddle)(()=>n.startSpanHook?.(t),T=>T&&this._diag.error("caught startSpanHook error: ",T),!0);m&&Object.entries(m).forEach(([T,R])=>{u[T]=R});let g=pl.context.active(),y=pl.trace.getSpan(g),b;n.requireParentforSpans&&(!y||!pl.trace.isSpanContextValid(y.spanContext()))?b=pl.trace.wrapSpanContext(pl.INVALID_SPAN_CONTEXT):b=this.tracer.startSpan(c==="_OTHER"?"HTTP":c,{kind:pl.SpanKind.CLIENT,attributes:u},g),(0,FP.safeExecuteInTheMiddle)(()=>n.requestHook?.(b,t),T=>T&&this._diag.error("caught requestHook error: ",T),!0);let S=pl.trace.setSpan(pl.context.active(),b),E={};pl.propagation.inject(S,E);let _=Object.entries(E);for(let T=0;T<_.length;T++){let[R,A]=_[T];typeof t.addHeader=="function"?t.addHeader(R,A):typeof t.headers=="string"?t.headers+=`${R}: ${A}\r +`:Array.isArray(t.headers)&&t.headers.push(R,A)}this._recordFromReq.set(t,{span:b,attributes:u,startTime:s})}onRequestHeaders({request:t,socket:n}){let r=this._recordFromReq.get(t);if(!r)return;let i=this.getConfig(),{span:s}=r,{remoteAddress:o,remotePort:a}=n,c={[Vs.ATTR_NETWORK_PEER_ADDRESS]:o,[Vs.ATTR_NETWORK_PEER_PORT]:a};if(i.headersToSpanAttributes?.requestHeaders){let u=new Set(i.headersToSpanAttributes.requestHeaders.map(d=>d.toLowerCase())),l=this.parseRequestHeaders(t);for(let[d,f]of l.entries())if(u.has(d)){let p=Array.isArray(f)?f:[f];c[`http.request.header.${d}`]=p}}s.setAttributes(c)}onResponseHeaders({request:t,response:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s}=r,o={[Vs.ATTR_HTTP_RESPONSE_STATUS_CODE]:n.statusCode},a=this.getConfig();if((0,FP.safeExecuteInTheMiddle)(()=>a.responseHook?.(i,{request:t,response:n}),c=>c&&this._diag.error("caught responseHook error: ",c),!0),a.headersToSpanAttributes?.responseHeaders){let c=new Set;a.headersToSpanAttributes?.responseHeaders.forEach(u=>c.add(u.toLowerCase()));for(let u=0;u=400?pl.SpanStatusCode.ERROR:pl.SpanStatusCode.UNSET}),r.attributes=Object.assign(s,o)}onDone({request:t}){let n=this._recordFromReq.get(t);if(!n)return;let{span:r,attributes:i,startTime:s}=n;r.end(),this._recordFromReq.delete(t),this.recordRequestDuration(i,s)}onError({request:t,error:n}){let r=this._recordFromReq.get(t);if(!r)return;let{span:i,attributes:s,startTime:o}=r;i.recordException(n),i.setStatus({code:pl.SpanStatusCode.ERROR,message:n.message}),i.end(),this._recordFromReq.delete(t),s[Vs.ATTR_ERROR_TYPE]=n.message,this.recordRequestDuration(s,o)}recordRequestDuration(t,n){let r={};[Vs.ATTR_HTTP_RESPONSE_STATUS_CODE,Vs.ATTR_HTTP_REQUEST_METHOD,Vs.ATTR_SERVER_ADDRESS,Vs.ATTR_SERVER_PORT,Vs.ATTR_URL_SCHEME,Vs.ATTR_ERROR_TYPE].forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,uB.hrTimeToMilliseconds)((0,uB.hrTimeDuration)(n,(0,uB.hrTime)()))/1e3;this._httpClientDurationHistogram.record(s,r)}getRequestMethod(t){let n={CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0};return t.toUpperCase()in n?t.toUpperCase():"_OTHER"}};lB.UndiciInstrumentation=See});var BHe=w(dB=>{"use strict";Object.defineProperty(dB,"__esModule",{value:!0});dB.UndiciInstrumentation=void 0;var Q8t=qHe();Object.defineProperty(dB,"UndiciInstrumentation",{enumerable:!0,get:function(){return Q8t.UndiciInstrumentation}})});function zHe(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:!n.endsWith("/")&&!t.startsWith("/")?`${n}/${t}`:`${n}${t}`}function n7t(e,t={}){return typeof e.spans=="boolean"?e.spans:!t.skipOpenTelemetrySetup&&Os(t)}function r7t(e={}){return{requireParentforSpans:!1,ignoreRequestHook:n=>{let r=zHe(n.origin,n.path),i=e.ignoreOutgoingRequests;return!!(i&&r&&i(r))},startSpanHook:n=>{let r=zHe(n.origin,n.path);if(r.startsWith("data:")){let i=eA(r);return{[At]:"auto.http.otel.node_fetch","http.url":i,[Iy]:i,[Wl]:`${n.method||"GET"} ${i}`}}return{[At]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}var GHe,VHe,$8t,e7t,t7t,WHe,KHe=v(()=>{GHe=Re(BHe(),1);st();sr();VHe="NodeFetch",$8t=rt(VHe,GHe.UndiciInstrumentation,e=>r7t(e)),e7t=rt(`${VHe}.sentry`,VE,e=>e),t7t=((e={})=>({name:"NodeFetch",setupOnce(){n7t(e,ct()?.getOptions())&&$8t(e),e7t(e)}})),WHe=t7t});var fB=w(jP=>{"use strict";Object.defineProperty(jP,"__esModule",{value:!0});jP.ExpressLayerType=void 0;var i7t;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(i7t=jP.ExpressLayerType||(jP.ExpressLayerType={}))});var pB=w(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});HP.AttributeNames=void 0;var s7t;(function(e){e.EXPRESS_TYPE="express.type",e.EXPRESS_NAME="express.name"})(s7t=HP.AttributeNames||(HP.AttributeNames={}))});var bee=w(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA._LAYERS_STORE_PROPERTY=OA.kLayerPatched=void 0;OA.kLayerPatched=Symbol("express-layer-patched");OA._LAYERS_STORE_PROPERTY="__ot_middlewares"});var JHe=w(Ws=>{"use strict";Object.defineProperty(Ws,"__esModule",{value:!0});Ws.getActualMatchedRoute=Ws.getConstructedRoute=Ws.getLayerPath=Ws.asErrorAndMessage=Ws.isLayerIgnored=Ws.getLayerMetadata=Ws.getRouterPath=Ws.storeLayerPath=void 0;var Eee=fB(),PA=pB(),JE=bee(),o7t=(e,t)=>(Array.isArray(e[JE._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,JE._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),t===void 0?{isLayerPathStored:!1}:(e[JE._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}));Ws.storeLayerPath=o7t;var a7t=(e,t)=>{let n=t.handle?.stack?.[0];return n?.route?.path?`${e}${n.route.path}`:n?.handle?.stack?(0,Ws.getRouterPath)(e,n):e};Ws.getRouterPath=a7t;var c7t=(e,t,n)=>{if(t.name==="router"){let r=(0,Ws.getRouterPath)("",t),i=r||n||e||"/";return{attributes:{[PA.AttributeNames.EXPRESS_NAME]:i,[PA.AttributeNames.EXPRESS_TYPE]:Eee.ExpressLayerType.ROUTER},name:`router - ${i}`}}else return t.name==="bound dispatch"||t.name==="handle"?{attributes:{[PA.AttributeNames.EXPRESS_NAME]:(e||n)??"request handler",[PA.AttributeNames.EXPRESS_TYPE]:Eee.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||n}`:""}`}:{attributes:{[PA.AttributeNames.EXPRESS_NAME]:t.name,[PA.AttributeNames.EXPRESS_TYPE]:Eee.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};Ws.getLayerMetadata=c7t;var u7t=(e,t)=>{if(typeof t=="string")return t===e;if(t instanceof RegExp)return t.test(e);if(typeof t=="function")return t(e);throw new TypeError("Pattern is in unsupported datatype")},l7t=(e,t,n)=>{if(Array.isArray(n?.ignoreLayersType)&&n?.ignoreLayersType?.includes(t))return!0;if(Array.isArray(n?.ignoreLayers)===!1)return!1;try{for(let r of n.ignoreLayers)if(u7t(e,r))return!0}catch{}return!1};Ws.isLayerIgnored=l7t;var d7t=e=>e instanceof Error?[e,e.message]:[String(e),String(e)];Ws.asErrorAndMessage=d7t;var f7t=e=>{let t=e[0];return Array.isArray(t)?t.map(n=>YHe(n)||"").join(","):YHe(t)};Ws.getLayerPath=f7t;var YHe=e=>{if(typeof e=="string")return e;if(e instanceof RegExp||typeof e=="number")return e.toString()};function ZHe(e){let n=(Array.isArray(e[JE._LAYERS_STORE_PROPERTY])?e[JE._LAYERS_STORE_PROPERTY]:[]).filter(r=>r!=="/"&&r!=="/*");return n.length===1&&n[0]==="*"?"*":n.join("").replace(/\/{2,}/g,"/")}Ws.getConstructedRoute=ZHe;function p7t(e){let t=Array.isArray(e[JE._LAYERS_STORE_PROPERTY])?e[JE._LAYERS_STORE_PROPERTY]:[];if(t.length===0)return;if(t.every(s=>s==="/"))return e.originalUrl==="/"?"/":void 0;let n=ZHe(e);if(n==="*"||n.includes("/")&&(n.includes(",")||n.includes("\\")||n.includes("*")||n.includes("[")))return n;let r=n.startsWith("/")?n:`/${n}`;return r.length>0&&(e.originalUrl===r||e.originalUrl.startsWith(r)||h7t(r))?r:void 0}Ws.getActualMatchedRoute=p7t;function h7t(e){return e.includes(":")||e.includes("*")}});var XHe=w(NA=>{"use strict";Object.defineProperty(NA,"__esModule",{value:!0});NA.PACKAGE_NAME=NA.PACKAGE_VERSION=void 0;NA.PACKAGE_VERSION="0.62.0";NA.PACKAGE_NAME="@opentelemetry/instrumentation-express"});var nqe=w(mB=>{"use strict";Object.defineProperty(mB,"__esModule",{value:!0});mB.ExpressInstrumentation=void 0;var QHe=fr(),hu=(Ce(),ke(Ze)),$He=fB(),eqe=pB(),Jp=JHe(),tqe=XHe(),CA=Jt(),m7t=(Pn(),ke(Mr)),hB=bee(),_ee=class extends CA.InstrumentationBase{constructor(t={}){super(tqe.PACKAGE_NAME,tqe.PACKAGE_VERSION,t)}init(){return[new CA.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],t=>{let n=typeof t?.Router?.prototype?.route=="function",r=n?t.Router.prototype:t.Router;return(0,CA.isWrapped)(r.route)&&this._unwrap(r,"route"),this._wrap(r,"route",this._getRoutePatch()),(0,CA.isWrapped)(r.use)&&this._unwrap(r,"use"),this._wrap(r,"use",this._getRouterUsePatch()),(0,CA.isWrapped)(t.application.use)&&this._unwrap(t.application,"use"),this._wrap(t.application,"use",this._getAppUsePatch(n)),t},t=>{if(t===void 0)return;let r=typeof t?.Router?.prototype?.route=="function"?t.Router.prototype:t.Router;this._unwrap(r,"route"),this._unwrap(r,"use"),this._unwrap(t.application,"use")})]}_getRoutePatch(){let t=this;return function(n){return function(...i){let s=n.apply(this,i),o=this.stack[this.stack.length-1];return t._applyPatch(o,(0,Jp.getLayerPath)(i)),s}}}_getRouterUsePatch(){let t=this;return function(n){return function(...i){let s=n.apply(this,i),o=this.stack[this.stack.length-1];return t._applyPatch(o,(0,Jp.getLayerPath)(i)),s}}}_getAppUsePatch(t){let n=this;return function(r){return function(...s){let o=t?this.router:this._router,a=r.apply(this,s);if(o){let c=o.stack[o.stack.length-1];n._applyPatch(c,(0,Jp.getLayerPath)(s))}return a}}}_applyPatch(t,n){let r=this;t[hB.kLayerPatched]!==!0&&(t[hB.kLayerPatched]=!0,this._wrap(t,"handle",i=>{if(i.length===4)return i;let s=function(o,a){let{isLayerPathStored:c}=(0,Jp.storeLayerPath)(o,n),u=(0,Jp.getConstructedRoute)(o),l=(0,Jp.getActualMatchedRoute)(o),d={[m7t.ATTR_HTTP_ROUTE]:l},f=(0,Jp.getLayerMetadata)(u,t,n),p=f.attributes[eqe.AttributeNames.EXPRESS_TYPE],h=(0,QHe.getRPCMetadata)(hu.context.active());if(h?.type===QHe.RPCType.HTTP&&(h.route=l),(0,Jp.isLayerIgnored)(f.name,p,r.getConfig()))return p===$He.ExpressLayerType.MIDDLEWARE&&o[hB._LAYERS_STORE_PROPERTY].pop(),i.apply(this,arguments);if(hu.trace.getSpan(hu.context.active())===void 0)return i.apply(this,arguments);let m=r._getSpanName({request:o,layerType:p,route:u},f.name),g=r.tracer.startSpan(m,{attributes:Object.assign(d,f.attributes)}),y=hu.context.active(),b=hu.trace.setSpan(y,g),{requestHook:S}=r.getConfig();S&&(0,CA.safeExecuteInTheMiddle)(()=>S(g,{request:o,layerType:p,route:u}),A=>{A&&hu.diag.error("express instrumentation: request hook failed",A)},!0);let E=!1;f.attributes[eqe.AttributeNames.EXPRESS_TYPE]===$He.ExpressLayerType.ROUTER&&(g.end(),E=!0,b=y);let _=()=>{E===!1&&(E=!0,g.end())},T=Array.from(arguments),R=T.findIndex(A=>typeof A=="function");R>=0&&(arguments[R]=function(){let A=arguments[0],x=![void 0,null,"route","router"].includes(A);if(!E&&x){let[L,G]=(0,Jp.asErrorAndMessage)(A);g.recordException(L),g.setStatus({code:hu.SpanStatusCode.ERROR,message:G})}E===!1&&(E=!0,o.res?.removeListener("finish",_),g.end()),!(o.route&&x)&&c&&o[hB._LAYERS_STORE_PROPERTY].pop();let k=T[R],P=hu.context.active(),N=hu.trace.getSpan(y),C=N?hu.trace.setSpan(P,N):P;return hu.context.bind(C,k).apply(this,arguments)});try{return hu.context.bind(b,i).apply(this,arguments)}catch(A){let[x,k]=(0,Jp.asErrorAndMessage)(A);throw g.recordException(x),g.setStatus({code:hu.SpanStatusCode.ERROR,message:k}),A}finally{E||a.once("finish",_)}};for(let o in i)Object.defineProperty(s,o,{get(){return i[o]},set(a){i[o]=a}});return s}))}_getSpanName(t,n){let{spanNameHook:r}=this.getConfig();if(!(r instanceof Function))return n;try{return r(t,n)??n}catch(i){return hu.diag.error("express instrumentation: error calling span name rewrite hook",i),n}}};mB.ExpressInstrumentation=_ee});var rqe=w(Zy=>{"use strict";Object.defineProperty(Zy,"__esModule",{value:!0});Zy.AttributeNames=Zy.ExpressLayerType=Zy.ExpressInstrumentation=void 0;var g7t=nqe();Object.defineProperty(Zy,"ExpressInstrumentation",{enumerable:!0,get:function(){return g7t.ExpressInstrumentation}});var y7t=fB();Object.defineProperty(Zy,"ExpressLayerType",{enumerable:!0,get:function(){return y7t.ExpressLayerType}});var S7t=pB();Object.defineProperty(Zy,"AttributeNames",{enumerable:!0,get:function(){return S7t.AttributeNames}})});var So,XE=v(()=>{So=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__});function b7t(e){Dr(e,"auto.http.otel.express");let t=vt(e).data,n=t["express.type"];n&&e.setAttribute(zt,`${n}.express`);let r=t["express.name"];typeof r=="string"&&e.updateName(r)}function E7t(e,t){if(vn()===Vl())return So&&Z.warn("Isolation scope is still default isolation scope - skipping setting transactionName"),t;if(e.layerType==="request_handler"){let n=e.request,r=n.method?n.method.toUpperCase():"GET";vn().setTransactionName(`${r} ${e.route}`)}return t}var iqe,sqe,oqe,_7t,aqe,cqe=v(()=>{iqe=Re(rqe(),1);st();sr();XE();sqe="Express";oqe=rt(sqe,()=>new iqe.ExpressInstrumentation({requestHook:e=>b7t(e),spanNameHook:(e,t)=>E7t(e,t)})),_7t=(()=>({name:sqe,setupOnce(){oqe()}})),aqe=_7t});var uqe=w(qP=>{"use strict";Object.defineProperty(qP,"__esModule",{value:!0});qP.SeverityNumber=void 0;var T7t;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(T7t=qP.SeverityNumber||(qP.SeverityNumber={}))});var SB=w(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.NOOP_LOGGER=MA.NoopLogger=void 0;var yB=class{emit(t){}};MA.NoopLogger=yB;MA.NOOP_LOGGER=new yB});var lqe=w(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.API_BACKWARDS_COMPATIBILITY_VERSION=Xp.makeGetter=Xp._global=Xp.GLOBAL_LOGS_API_KEY=void 0;Xp.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");Xp._global=globalThis;function v7t(e,t,n){return r=>r===e?t:n}Xp.makeGetter=v7t;Xp.API_BACKWARDS_COMPATIBILITY_VERSION=1});var Tee=w(DA=>{"use strict";Object.defineProperty(DA,"__esModule",{value:!0});DA.NOOP_LOGGER_PROVIDER=DA.NoopLoggerProvider=void 0;var R7t=SB(),bB=class{getLogger(t,n,r){return new R7t.NoopLogger}};DA.NoopLoggerProvider=bB;DA.NOOP_LOGGER_PROVIDER=new bB});var dqe=w(EB=>{"use strict";Object.defineProperty(EB,"__esModule",{value:!0});EB.ProxyLogger=void 0;var A7t=SB(),vee=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):A7t.NOOP_LOGGER}};EB.ProxyLogger=vee});var fqe=w(_B=>{"use strict";Object.defineProperty(_B,"__esModule",{value:!0});_B.ProxyLoggerProvider=void 0;var w7t=Tee(),k7t=dqe(),Ree=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new k7t.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:w7t.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};_B.ProxyLoggerProvider=Ree});var hqe=w(TB=>{"use strict";Object.defineProperty(TB,"__esModule",{value:!0});TB.LogsAPI=void 0;var Ql=lqe(),I7t=Tee(),pqe=fqe(),Aee=class e{constructor(){this._proxyLoggerProvider=new pqe.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return Ql._global[Ql.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(Ql._global[Ql.GLOBAL_LOGS_API_KEY]=(0,Ql.makeGetter)(Ql.API_BACKWARDS_COMPATIBILITY_VERSION,t,I7t.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=Ql._global[Ql.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(Ql._global,Ql.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete Ql._global[Ql.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new pqe.ProxyLoggerProvider}};TB.LogsAPI=Aee});var wee=w(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.logs=Qp.NoopLogger=Qp.NOOP_LOGGER=Qp.SeverityNumber=void 0;var x7t=uqe();Object.defineProperty(Qp,"SeverityNumber",{enumerable:!0,get:function(){return x7t.SeverityNumber}});var mqe=SB();Object.defineProperty(Qp,"NOOP_LOGGER",{enumerable:!0,get:function(){return mqe.NOOP_LOGGER}});Object.defineProperty(Qp,"NoopLogger",{enumerable:!0,get:function(){return mqe.NoopLogger}});var O7t=hqe();Qp.logs=O7t.LogsAPI.getInstance()});var gqe=w(LA=>{"use strict";Object.defineProperty(LA,"__esModule",{value:!0});LA.disableInstrumentations=LA.enableInstrumentations=void 0;function P7t(e,t,n,r){for(let i=0,s=e.length;it.disable())}LA.disableInstrumentations=N7t});var bqe=w(vB=>{"use strict";Object.defineProperty(vB,"__esModule",{value:!0});vB.registerInstrumentations=void 0;var yqe=(Ce(),ke(Ze)),C7t=wee(),Sqe=gqe();function M7t(e){let t=e.tracerProvider||yqe.trace.getTracerProvider(),n=e.meterProvider||yqe.metrics.getMeterProvider(),r=e.loggerProvider||C7t.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,Sqe.enableInstrumentations)(i,t,n,r),()=>{(0,Sqe.disableInstrumentations)(i)}}vB.registerInstrumentations=M7t});var Iqe=w(RB=>{"use strict";Object.defineProperty(RB,"__esModule",{value:!0});RB.satisfies=void 0;var Oee=(Ce(),ke(Ze)),Rqe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,D7t=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,L7t={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function U7t(e,t,n){if(!F7t(e))return Oee.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=B7t(e);if(!r)return!1;let i=[],s=Aqe(r,t,i,n);return s&&!n?.includePrerelease?H7t(r,i):s}RB.satisfies=U7t;function F7t(e){return typeof e=="string"&&Rqe.test(e)}function Aqe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(kee(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=uJt(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!kee(e,s,n,r))return!1;return!0}return kee(e,t,n,r)}function kee(e,t,n,r){if(t=q7t(t,r),t.includes(" "))return Aqe(e,t,n,r);{let i=z7t(t);return n.push(i),j7t(e,i)}}function j7t(e,t){if(t.invalid)return!1;if(!t.version||xee(t.version))return!0;let n=_qe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=_qe(r,i)}return L7t[t.op]?.includes(n)}function H7t(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function q7t(e,t){return e=e.trim(),e=aJt(e,t),e=oJt(e),e=cJt(e,t),e=e.trim(),e}function Dc(e){return!e||e.toLowerCase()==="x"||e==="*"}function B7t(e){let t=e.match(Rqe);if(!t){Oee.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function z7t(e){if(!e)return{};let t=e.match(D7t);if(!t)return Oee.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function xee(e){return e==="*"||e==="x"||e==="X"}function Eqe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function G7t(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function V7t(e,t){if(xee(e)||xee(t))return 0;let[n,r]=G7t(Eqe(e),Eqe(t));return n>r?1:n)?=?)",Tqe=`(?:${kqe}|${W7t})`,Y7t=`(?:-(${Tqe}(?:\\.${Tqe})*))`,vqe=`${wqe}+`,Z7t=`(?:\\+(${vqe}(?:\\.${vqe})*))`,Iee=`${kqe}|x|X|\\*`,BP=`[v=\\s]*(${Iee})(?:\\.(${Iee})(?:\\.(${Iee})(?:${Y7t})?${Z7t}?)?)?`,J7t=`^${K7t}\\s*${BP}$`,X7t=new RegExp(J7t),Q7t=`^\\s*(${BP})\\s+-\\s+(${BP})\\s*$`,$7t=new RegExp(Q7t),eJt="(?:~>?)",tJt=`^${eJt}${BP}$`,nJt=new RegExp(tJt),rJt="(?:\\^)",iJt=`^${rJt}${BP}$`,sJt=new RegExp(iJt);function oJt(e){let t=nJt;return e.replace(t,(n,r,i,s,o)=>{let a;return Dc(r)?a="":Dc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Dc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function aJt(e,t){let n=sJt,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Dc(s)?u="":Dc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Dc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function cJt(e,t){let n=X7t;return e.replace(n,(r,i,s,o,a,c)=>{let u=Dc(s),l=u||Dc(o),d=l||Dc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function uJt(e,t){let n=$7t;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Dc(s)?i="":Dc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Dc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Dc(d)?l="":Dc(f)?l=`<${+d+1}.0.0-0`:Dc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var Pee=w(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.massUnwrap=da.unwrap=da.massWrap=da.wrap=void 0;var Lc=console.error.bind(console);function zP(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var lJt=(e,t,n)=>{if(!e||!e[t]){Lc("no original function "+String(t)+" to wrap");return}if(!n){Lc("no wrapper function"),Lc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){Lc("original object and wrapper must be functions");return}let i=n(r,t);return zP(i,"__original",r),zP(i,"__unwrap",()=>{e[t]===i&&zP(e,t,r)}),zP(i,"__wrapped",!0),zP(e,t,i),i};da.wrap=lJt;var dJt=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{Lc("must provide one or more modules to patch"),Lc(new Error().stack);return}if(!(t&&Array.isArray(t))){Lc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,da.wrap)(r,i,n)})})};da.massWrap=dJt;var fJt=(e,t)=>{if(!e||!e[t]){Lc("no function to unwrap."),Lc(new Error().stack);return}let n=e[t];if(!n.__unwrap)Lc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};da.unwrap=fJt;var pJt=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{Lc("must provide one or more modules to patch"),Lc(new Error().stack);return}if(!(t&&Array.isArray(t))){Lc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,da.unwrap)(n,r)})})};da.massUnwrap=pJt;function GP(e){e&&e.logger&&(typeof e.logger!="function"?Lc("new logger isn't a function, not replacing"):Lc=e.logger)}da.default=GP;GP.wrap=da.wrap;GP.massWrap=da.massWrap;GP.unwrap=da.unwrap;GP.massUnwrap=da.massUnwrap});var xqe=w(wB=>{"use strict";Object.defineProperty(wB,"__esModule",{value:!0});wB.InstrumentationAbstract=void 0;var Nee=(Ce(),ke(Ze)),hJt=wee(),AB=Pee(),Cee=class{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=Nee.diag.createComponentLogger({namespace:t}),this._tracer=Nee.trace.getTracer(t,n),this._meter=Nee.metrics.getMeter(t,n),this._logger=hJt.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=AB.wrap;_unwrap=AB.unwrap;_massWrap=AB.massWrap;_massUnwrap=AB.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};wB.InstrumentationAbstract=Cee});var Oqe=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.ModuleNameTrie=Jy.ModuleNameSeparator=void 0;Jy.ModuleNameSeparator="/";var kB=class{hooks=[];children=new Map},Mee=class{_trie=new kB;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(Jy.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new kB,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(Jy.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};Jy.ModuleNameTrie=Mee});var Nqe=w(IB=>{"use strict";Object.defineProperty(IB,"__esModule",{value:!0});IB.RequireInTheMiddleSingleton=void 0;var mJt=vE(),Pqe=K("path"),Dee=Oqe(),gJt=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),Lee=class e{_moduleNameTrie=new Dee.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new mJt.Hook(null,{internals:!0},(t,n,r)=>{let i=yJt(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return gJt?new e:this._instance=this._instance??new e}};IB.RequireInTheMiddleSingleton=Lee;function yJt(e){return Pqe.sep!==Dee.ModuleNameSeparator?e.split(Pqe.sep).join(Dee.ModuleNameSeparator):e}});var Uqe=w(VP=>{var Cqe=[],Uee=new WeakMap,Mqe=new WeakMap,Dqe=new Map,Lqe=[],SJt={set(e,t,n){let r=Uee.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=Mqe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=Uee.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function bJt(e,t,n,r,i){Dqe.set(e,i),Uee.set(t,n),Mqe.set(t,r);let s=new Proxy(t,SJt);Cqe.forEach(o=>o(e,s,i)),Lqe.push([e,s,i])}VP.register=bJt;VP.importHooks=Cqe;VP.specifiers=Dqe;VP.toHook=Lqe});var qqe=w((dMr,FA)=>{var Fqe=K("path"),EJt=vO(),{fileURLToPath:_Jt}=K("url"),{MessageChannel:TJt}=K("worker_threads"),{isBuiltin:Fee}=K("module");Fee||(Fee=()=>!0);var{importHooks:jee,specifiers:vJt,toHook:RJt}=Uqe();function jqe(e){jee.push(e),RJt.forEach(([t,n,r])=>e(t,n,r))}function Hqe(e){let t=jee.indexOf(e);t>-1&&jee.splice(t,1)}function UA(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var Hee;function AJt(){let{port1:e,port2:t}=new TJt,n=0,r;Hee=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function WP(e,t,n){if(!(this instanceof WP))return new WP(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;Hee&&Array.isArray(e)&&Hee(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);Fee(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=_Jt(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=EJt(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)UA(n,s,u,void 0);else if(d===i){if(!l)UA(n,s,i,l);else if(l.endsWith(vJt.get(a)))UA(n,s,i,l);else if(r){let f=i+Fqe.sep+Fqe.relative(l,u);UA(n,s,f,l)}}else d===o&&UA(n,s,o,l);else UA(n,s,i,l)},jqe(this._iitmHook)}WP.prototype.unhook=function(){Hqe(this._iitmHook)};FA.exports=WP;FA.exports.Hook=WP;FA.exports.addHook=jqe;FA.exports.removeHook=Hqe;FA.exports.createAddHookMessageChannel=AJt});var qee=w(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.isWrapped=Xy.safeExecuteInTheMiddleAsync=Xy.safeExecuteInTheMiddle=void 0;function wJt(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}Xy.safeExecuteInTheMiddle=wJt;async function kJt(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(await t(r,i),r&&!n)throw r;return i}}Xy.safeExecuteInTheMiddleAsync=kJt;function IJt(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Xy.isWrapped=IJt});var Gqe=w(xB=>{"use strict";Object.defineProperty(xB,"__esModule",{value:!0});xB.InstrumentationBase=void 0;var KP=K("path"),Bqe=K("util"),xJt=Iqe(),Bee=Pee(),OJt=xqe(),PJt=Nqe(),NJt=qqe(),YP=(Ce(),ke(Ze)),CJt=vE(),MJt=K("fs"),DJt=qee(),zee=class extends OJt.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=PJt.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,DJt.isWrapped)(t[n])&&this._unwrap(t,n),Bqe.types.isProxy(t)){let i=(0,Bee.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,Bee.wrap)(t,n,r)};_unwrap=(t,n)=>Bqe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,Bee.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{YP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){YP.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{YP.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){YP.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=K.resolve(n);K.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,MJt.readFileSync)(KP.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{YP.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return zqe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=KP.normalize(r);return o.filter(u=>u.name===a&&zqe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&KP.isAbsolute(a)){let u=KP.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=KP.isAbsolute(t.name)?new CJt.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new NJt.Hook([t.name],{internals:!0},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};xB.InstrumentationBase=zee;function zqe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,xJt.satisfies)(t,r,{includePrerelease:n}))}});var Vqe=w(OB=>{"use strict";Object.defineProperty(OB,"__esModule",{value:!0});OB.normalize=void 0;var LJt=K("path");Object.defineProperty(OB,"normalize",{enumerable:!0,get:function(){return LJt.normalize}})});var Wqe=w(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.normalize=jA.InstrumentationBase=void 0;var UJt=Gqe();Object.defineProperty(jA,"InstrumentationBase",{enumerable:!0,get:function(){return UJt.InstrumentationBase}});var FJt=Vqe();Object.defineProperty(jA,"normalize",{enumerable:!0,get:function(){return FJt.normalize}})});var Gee=w(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.normalize=HA.InstrumentationBase=void 0;var Kqe=Wqe();Object.defineProperty(HA,"InstrumentationBase",{enumerable:!0,get:function(){return Kqe.InstrumentationBase}});Object.defineProperty(HA,"normalize",{enumerable:!0,get:function(){return Kqe.normalize}})});var Yqe=w(PB=>{"use strict";Object.defineProperty(PB,"__esModule",{value:!0});PB.InstrumentationNodeModuleDefinition=void 0;var Vee=class{files;name;supportedVersions;patch;unpatch;constructor(t,n,r,i,s){this.files=s||[],this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i}};PB.InstrumentationNodeModuleDefinition=Vee});var Zqe=w(NB=>{"use strict";Object.defineProperty(NB,"__esModule",{value:!0});NB.InstrumentationNodeModuleFile=void 0;var jJt=Gee(),Wee=class{name;supportedVersions;patch;unpatch;constructor(t,n,r,i){this.name=(0,jJt.normalize)(t),this.supportedVersions=n,this.patch=r,this.unpatch=i}};NB.InstrumentationNodeModuleFile=Wee});var Jqe=w(QE=>{"use strict";Object.defineProperty(QE,"__esModule",{value:!0});QE.semconvStabilityFromStr=QE.SemconvStability=void 0;var CB;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(CB=QE.SemconvStability||(QE.SemconvStability={}));function HJt(e,t){let n=CB.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=CB.DUPLICATE;break}else i.toLowerCase()===e&&(n=CB.STABLE);return n}QE.semconvStabilityFromStr=HJt});var Qqe=w(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.semconvStabilityFromStr=Ks.SemconvStability=Ks.safeExecuteInTheMiddleAsync=Ks.safeExecuteInTheMiddle=Ks.isWrapped=Ks.InstrumentationNodeModuleFile=Ks.InstrumentationNodeModuleDefinition=Ks.InstrumentationBase=Ks.registerInstrumentations=void 0;var qJt=bqe();Object.defineProperty(Ks,"registerInstrumentations",{enumerable:!0,get:function(){return qJt.registerInstrumentations}});var BJt=Gee();Object.defineProperty(Ks,"InstrumentationBase",{enumerable:!0,get:function(){return BJt.InstrumentationBase}});var zJt=Yqe();Object.defineProperty(Ks,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return zJt.InstrumentationNodeModuleDefinition}});var GJt=Zqe();Object.defineProperty(Ks,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return GJt.InstrumentationNodeModuleFile}});var Kee=qee();Object.defineProperty(Ks,"isWrapped",{enumerable:!0,get:function(){return Kee.isWrapped}});Object.defineProperty(Ks,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return Kee.safeExecuteInTheMiddle}});Object.defineProperty(Ks,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return Kee.safeExecuteInTheMiddleAsync}});var Xqe=Jqe();Object.defineProperty(Ks,"SemconvStability",{enumerable:!0,get:function(){return Xqe.SemconvStability}});Object.defineProperty(Ks,"semconvStabilityFromStr",{enumerable:!0,get:function(){return Xqe.semconvStabilityFromStr}})});var $qe=w((TMr,VJt)=>{VJt.exports={name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}}});var tBe=w($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.range=$E.balanced=void 0;var WJt=(e,t,n)=>{let r=e instanceof RegExp?eBe(e,n):e,i=t instanceof RegExp?eBe(t,n):t,s=r!==null&&i!=null&&(0,$E.range)(r,i,n);return s&&{start:s[0],end:s[1],pre:n.slice(0,s[0]),body:n.slice(s[0]+r.length,s[1]),post:n.slice(s[1]+i.length)}};$E.balanced=WJt;var eBe=(e,t)=>{let n=t.match(e);return n?n[0]:null},KJt=(e,t,n)=>{let r,i,s,o,a,c=n.indexOf(e),u=n.indexOf(t,c+1),l=c;if(c>=0&&u>0){if(e===t)return[c,u];for(r=[],s=n.length;l>=0&&!a;){if(l===c)r.push(l),c=n.indexOf(e,l+1);else if(r.length===1){let d=r.pop();d!==void 0&&(a=[d,u])}else i=r.pop(),i!==void 0&&i=0?c:u}r.length&&o!==void 0&&(a=[s,o])}return a};$E.range=KJt});var cBe=w(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});qA.EXPANSION_MAX=void 0;qA.expand=oXt;var nBe=tBe(),rBe="\0SLASH"+Math.random()+"\0",iBe="\0OPEN"+Math.random()+"\0",Zee="\0CLOSE"+Math.random()+"\0",sBe="\0COMMA"+Math.random()+"\0",oBe="\0PERIOD"+Math.random()+"\0",YJt=new RegExp(rBe,"g"),ZJt=new RegExp(iBe,"g"),JJt=new RegExp(Zee,"g"),XJt=new RegExp(sBe,"g"),QJt=new RegExp(oBe,"g"),$Jt=/\\\\/g,eXt=/\\{/g,tXt=/\\}/g,nXt=/\\,/g,rXt=/\\\./g;qA.EXPANSION_MAX=1e5;function Yee(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function iXt(e){return e.replace($Jt,rBe).replace(eXt,iBe).replace(tXt,Zee).replace(nXt,sBe).replace(rXt,oBe)}function sXt(e){return e.replace(YJt,"\\").replace(ZJt,"{").replace(JJt,"}").replace(XJt,",").replace(QJt,".")}function aBe(e){if(!e)return[""];let t=[],n=(0,nBe.balanced)("{","}",e);if(!n)return e.split(",");let{pre:r,body:i,post:s}=n,o=r.split(",");o[o.length-1]+="{"+i+"}";let a=aBe(s);return s.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function oXt(e,t={}){if(!e)return[];let{max:n=qA.EXPANSION_MAX}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),ZP(iXt(e),n,!0).map(sXt)}function aXt(e){return"{"+e+"}"}function cXt(e){return/^-?0\d/.test(e)}function uXt(e,t){return e<=t}function lXt(e,t){return e>=t}function ZP(e,t,n){let r=[],i=(0,nBe.balanced)("{","}",e);if(!i)return[e];let s=i.pre,o=i.post.length?ZP(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a=0;if(!u&&!l)return i.post.match(/,(?!,).*\}/)?(e=i.pre+"{"+i.body+Zee+i.post,ZP(e,t,!0)):[e];let d;if(u)d=i.body.split(/\.\./);else if(d=aBe(i.body),d.length===1&&d[0]!==void 0&&(d=ZP(d[0],t,!1).map(aXt),d.length===1))return o.map(p=>i.pre+d[0]+p);let f;if(u&&d[0]!==void 0&&d[1]!==void 0){let p=Yee(d[0]),h=Yee(d[1]),m=Math.max(d[0].length,d[1].length),g=d.length===3&&d[2]!==void 0?Math.max(Math.abs(Yee(d[2])),1):1,y=uXt;h0){let R=new Array(T+1).join("0");E<0?_="-"+R+_.slice(1):_=R+_}}f.push(_)}}else{f=[];for(let p=0;p{"use strict";Object.defineProperty(MB,"__esModule",{value:!0});MB.assertValidPattern=void 0;var dXt=1024*64,fXt=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>dXt)throw new TypeError("pattern is too long")};MB.assertValidPattern=fXt});var dBe=w(DB=>{"use strict";Object.defineProperty(DB,"__esModule",{value:!0});DB.parseClass=void 0;var pXt={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},JP=e=>e.replace(/[[\]\\-]/g,"\\$&"),hXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),lBe=e=>e.join(""),mXt=(e,t)=>{let n=t;if(e.charAt(n)!=="[")throw new Error("not in a brace expression");let r=[],i=[],s=n+1,o=!1,a=!1,c=!1,u=!1,l=n,d="";e:for(;sd?r.push(JP(d)+"-"+JP(m)):m===d&&r.push(JP(m)),d="",s++;continue}if(e.startsWith("-]",s+1)){r.push(JP(m+"-")),s+=2;continue}if(e.startsWith("-",s+1)){d=m,s+=2;continue}r.push(JP(m)),s++}if(l{"use strict";Object.defineProperty(LB,"__esModule",{value:!0});LB.unescape=void 0;var gXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");LB.unescape=gXt});var Qee=w(qB=>{"use strict";var mu;Object.defineProperty(qB,"__esModule",{value:!0});qB.AST=void 0;var yXt=dBe(),FB=UB(),SXt=new Set(["!","?","+","*","@"]),Jee=e=>SXt.has(e),fBe=e=>Jee(e.type),bXt=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),EXt=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),_Xt=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),pBe=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),TXt="(?!(?:^|/)\\.\\.?(?:$|/))",jB="(?!\\.)",vXt=new Set(["[","."]),RXt=new Set(["..","."]),AXt=new Set("().*{}+?[]^$\\!"),wXt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Xee="[^/]",hBe=Xee+"*?",mBe=Xee+"+?",kXt=0,HB=class{type;#t;#n;#i=!1;#e=[];#r;#s;#c;#u=!1;#o;#a;#l=!1;id=++kXt;get depth(){return(this.#r?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#t.id,parent:this.#r?.id,depth:this.depth,partsLength:this.#e.length,parts:this.#e}}constructor(t,n,r={}){this.type=t,t&&(this.#n=!0),this.#r=n,this.#t=this.#r?this.#r.#t:this,this.#o=this.#t===this?r:this.#t.#o,this.#c=this.#t===this?[]:this.#t.#c,t==="!"&&!this.#t.#u&&this.#c.push(this),this.#s=this.#r?this.#r.#e.length:0}get hasMagic(){if(this.#n!==void 0)return this.#n;for(let t of this.#e)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#n=!0;return this.#n}toString(){return this.#a!==void 0?this.#a:this.type?this.#a=this.type+"("+this.#e.map(t=>String(t)).join("|")+")":this.#a=this.#e.map(t=>String(t)).join("")}#d(){if(this!==this.#t)throw new Error("should only call on root");if(this.#u)return this;this.toString(),this.#u=!0;let t;for(;t=this.#c.pop();){if(t.type!=="!")continue;let n=t,r=n.#r;for(;r;){for(let i=n.#s+1;!r.type&&itypeof n=="string"?n:n.toJSON()):[this.type,...this.#e.map(n=>n.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#u&&this.#r?.type==="!")&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#r?.isStart())return!1;if(this.#s===0)return!0;let t=this.#r;for(let n=0;ntypeof p!="string"),u=this.#e.map(p=>{let[h,m,g,y]=typeof p=="string"?mu.#v(p,this.#n,c):p.toRegExpSource(t);return this.#n=this.#n||g,this.#i=this.#i||y,h}).join(""),l="";if(this.isStart()&&typeof this.#e[0]=="string"&&!(this.#e.length===1&&RXt.has(this.#e[0]))){let h=vXt,m=n&&h.has(u.charAt(0))||u.startsWith("\\.")&&h.has(u.charAt(2))||u.startsWith("\\.\\.")&&h.has(u.charAt(4)),g=!n&&!t&&h.has(u.charAt(0));l=m?TXt:g?jB:""}let d="";return this.isEnd()&&this.#t.#u&&this.#r?.type==="!"&&(d="(?:$|\\/)"),[l+u+d,(0,FB.unescape)(u),this.#n=!!this.#n,this.#i]}let r=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",s=this.#y(n);if(this.isStart()&&this.isEnd()&&!s&&this.type!=="!"){let c=this.toString(),u=this;return u.#e=[c],u.type=null,u.#n=void 0,[c,(0,FB.unescape)(this.toString()),!1,!1]}let o=!r||t||n||!jB?"":this.#y(!0);o===s&&(o=""),o&&(s=`(?:${s})(?:${o})*?`);let a="";if(this.type==="!"&&this.#l)a=(this.isStart()&&!n?jB:"")+mBe;else{let c=this.type==="!"?"))"+(this.isStart()&&!n&&!t?jB:"")+hBe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+s+c}return[a,(0,FB.unescape)(s),this.#n=!!this.#n,this.#i]}#h(){if(fBe(this)){let t=0,n=!1;do{n=!0;for(let r=0;r{if(typeof n=="string")throw new Error("string type in extglob ast??");let[r,i,s,o]=n.toRegExpSource(t);return this.#i=this.#i||o,r}).filter(n=>!(this.isStart()&&this.isEnd())||!!n).join("|")}static#v(t,n,r=!1){let i=!1,s="",o=!1,a=!1;for(let c=0;c{"use strict";Object.defineProperty(BB,"__esModule",{value:!0});BB.escape=void 0;var IXt=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");BB.escape=IXt});var TBe=w(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.unescape=it.escape=it.AST=it.Minimatch=it.match=it.makeRe=it.braceExpand=it.defaults=it.filter=it.GLOBSTAR=it.sep=it.minimatch=void 0;var xXt=cBe(),zB=uBe(),SBe=Qee(),OXt=$ee(),PXt=UB(),NXt=(e,t,n={})=>((0,zB.assertValidPattern)(t),!n.nocomment&&t.charAt(0)==="#"?!1:new e_(t,n).match(e));it.minimatch=NXt;var CXt=/^\*+([^+@!?*[(]*)$/,MXt=e=>t=>!t.startsWith(".")&&t.endsWith(e),DXt=e=>t=>t.endsWith(e),LXt=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),UXt=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),FXt=/^\*+\.\*+$/,jXt=e=>!e.startsWith(".")&&e.includes("."),HXt=e=>e!=="."&&e!==".."&&e.includes("."),qXt=/^\.\*+$/,BXt=e=>e!=="."&&e!==".."&&e.startsWith("."),zXt=/^\*+$/,GXt=e=>e.length!==0&&!e.startsWith("."),VXt=e=>e.length!==0&&e!=="."&&e!=="..",WXt=/^\?+([^+@!?*[(]*)?$/,KXt=([e,t=""])=>{let n=bBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},YXt=([e,t=""])=>{let n=EBe([e]);return t?(t=t.toLowerCase(),r=>n(r)&&r.toLowerCase().endsWith(t)):n},ZXt=([e,t=""])=>{let n=EBe([e]);return t?r=>n(r)&&r.endsWith(t):n},JXt=([e,t=""])=>{let n=bBe([e]);return t?r=>n(r)&&r.endsWith(t):n},bBe=([e])=>{let t=e.length;return n=>n.length===t&&!n.startsWith(".")},EBe=([e])=>{let t=e.length;return n=>n.length===t&&n!=="."&&n!==".."},_Be=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",gBe={win32:{sep:"\\"},posix:{sep:"/"}};it.sep=_Be==="win32"?gBe.win32.sep:gBe.posix.sep;it.minimatch.sep=it.sep;it.GLOBSTAR=Symbol("globstar **");it.minimatch.GLOBSTAR=it.GLOBSTAR;var XXt="[^/]",QXt=XXt+"*?",$Xt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",eQt="(?:(?!(?:\\/|^)\\.).)*?",tQt=(e,t={})=>n=>(0,it.minimatch)(n,e,t);it.filter=tQt;it.minimatch.filter=it.filter;var $l=(e,t={})=>Object.assign({},e,t),nQt=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return it.minimatch;let t=it.minimatch;return Object.assign((r,i,s={})=>t(r,i,$l(e,s)),{Minimatch:class extends t.Minimatch{constructor(i,s={}){super(i,$l(e,s))}static defaults(i){return t.defaults($l(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,s,o={}){super(i,s,$l(e,o))}static fromGlob(i,s={}){return t.AST.fromGlob(i,$l(e,s))}},unescape:(r,i={})=>t.unescape(r,$l(e,i)),escape:(r,i={})=>t.escape(r,$l(e,i)),filter:(r,i={})=>t.filter(r,$l(e,i)),defaults:r=>t.defaults($l(e,r)),makeRe:(r,i={})=>t.makeRe(r,$l(e,i)),braceExpand:(r,i={})=>t.braceExpand(r,$l(e,i)),match:(r,i,s={})=>t.match(r,i,$l(e,s)),sep:t.sep,GLOBSTAR:it.GLOBSTAR})};it.defaults=nQt;it.minimatch.defaults=it.defaults;var rQt=(e,t={})=>((0,zB.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,xXt.expand)(e,{max:t.braceExpandMax}));it.braceExpand=rQt;it.minimatch.braceExpand=it.braceExpand;var iQt=(e,t={})=>new e_(e,t).makeRe();it.makeRe=iQt;it.minimatch.makeRe=it.makeRe;var sQt=(e,t,n={})=>{let r=new e_(t,n);return e=e.filter(i=>r.match(i)),r.options.nonull&&!e.length&&e.push(t),e};it.match=sQt;it.minimatch.match=it.match;var yBe=/[?*]|[+@!]\(.*?\)|\[|\]/,oQt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),e_=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,n={}){(0,zB.assertValidPattern)(t),n=n||{},this.options=n,this.maxGlobstarRecursion=n.maxGlobstarRecursion??200,this.pattern=t,this.platform=n.platform||_Be,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!n.windowsPathsNoEscape||n[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!n.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!n.nonegate,this.comment=!1,this.empty=!1,this.partial=!!n.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=n.windowsNoMagicRoot!==void 0?n.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let n of t)if(typeof n!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,n=this.options;if(!n.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],n.debug&&(this.debug=(...s)=>console.error(...s)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(s=>this.slashSplit(s));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let i=this.globParts.map((s,o,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let c=s[0]===""&&s[1]===""&&(s[2]==="?"||!yBe.test(s[2]))&&!yBe.test(s[3]),u=/^[a-z]:/i.test(s[0]);if(c)return[...s.slice(0,4),...s.slice(4).map(l=>this.parse(l))];if(u)return[s[0],...s.slice(1).map(l=>this.parse(l))]}return s.map(c=>this.parse(c))});if(this.debug(this.pattern,i),this.set=i.filter(s=>s.indexOf(!1)===-1),this.isWindows)for(let s=0;s=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):n>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(n=>{let r=-1;for(;(r=n.indexOf("**",r+1))!==-1;){let i=r;for(;n[i+1]==="**";)i++;i!==r&&n.splice(r,i-r)}return n})}levelOneOptimize(t){return t.map(n=>(n=n.reduce((r,i)=>{let s=r[r.length-1];return i==="**"&&s==="**"?r:i===".."&&s&&s!==".."&&s!=="."&&s!=="**"?(r.pop(),r):(r.push(i),r)},[]),n.length===0?[""]:n))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let n=!1;do{if(n=!1,!this.preserveMultipleSlashes){for(let i=1;ii&&r.splice(i+1,o-i);let a=r[i+1],c=r[i+2],u=r[i+3];if(a!==".."||!c||c==="."||c===".."||!u||u==="."||u==="..")continue;n=!0,r.splice(i,1);let l=r.slice(0);l[i]="**",t.push(l),i--}if(!this.preserveMultipleSlashes){for(let o=1;on.length)}partsMatch(t,n,r=!1){let i=0,s=0,o=[],a="";for(;i=2&&(t=this.levelTwoFileOptimize(t)),n.includes(it.GLOBSTAR)?this.#t(t,n,r,i,s):this.#i(t,n,r,i,s)}#t(t,n,r,i,s){let o=n.indexOf(it.GLOBSTAR,s),a=n.lastIndexOf(it.GLOBSTAR),[c,u,l]=r?[n.slice(s,o),n.slice(o+1),[]]:[n.slice(s,o),n.slice(o+1,a),n.slice(a+1)];if(c.length){let b=t.slice(i,i+c.length);if(!this.#i(b,c,r,0,0))return!1;i+=c.length,s+=c.length}let d=0;if(l.length){if(l.length+i>t.length)return!1;let b=t.length-l.length;if(this.#i(t,l,r,b,0))d=l.length;else{if(t[t.length-1]!==""||i+l.length===t.length||(b--,!this.#i(t,l,r,b,0)))return!1;d=l.length+1}}if(!u.length){let b=!!d;for(let S=i;S{let u=c.map(d=>{if(d instanceof RegExp)for(let f of d.flags.split(""))i.add(f);return typeof d=="string"?oQt(d):d===it.GLOBSTAR?it.GLOBSTAR:d._src});u.forEach((d,f)=>{let p=u[f+1],h=u[f-1];d!==it.GLOBSTAR||h===it.GLOBSTAR||(h===void 0?p!==void 0&&p!==it.GLOBSTAR?u[f+1]="(?:\\/|"+r+"\\/)?"+p:u[f]=r:p===void 0?u[f-1]=h+"(?:\\/|\\/"+r+")?":p!==it.GLOBSTAR&&(u[f-1]=h+"(?:\\/|\\/"+r+"\\/)"+p,u[f+1]=it.GLOBSTAR))});let l=u.filter(d=>d!==it.GLOBSTAR);if(this.partial&&l.length>=1){let d=[];for(let f=1;f<=l.length;f++)d.push(l.slice(0,f).join("/"));return"(?:"+d.join("|")+")"}return l.join("/")}).join("|"),[o,a]=t.length>1?["(?:",")"]:["",""];s="^"+o+s+a+"$",this.partial&&(s="^(?:\\/|"+o+s.slice(1,-1)+a+")$"),this.negate&&(s="^(?!"+s+").+$");try{this.regexp=new RegExp(s,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,n=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&n)return!0;let r=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let s=this.set;this.debug(this.pattern,"set",s);let o=i[i.length-1];if(!o)for(let a=i.length-2;!o&&a>=0;a--)o=i[a];for(let a of s){let c=i;if(r.matchBase&&a.length===1&&(c=[o]),this.matchOne(c,a,n))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(t){return it.minimatch.defaults(t).Minimatch}};it.Minimatch=e_;var aQt=Qee();Object.defineProperty(it,"AST",{enumerable:!0,get:function(){return aQt.AST}});var cQt=$ee();Object.defineProperty(it,"escape",{enumerable:!0,get:function(){return cQt.escape}});var uQt=UB();Object.defineProperty(it,"unescape",{enumerable:!0,get:function(){return uQt.unescape}});it.minimatch.AST=SBe.AST;it.minimatch.Minimatch=e_;it.minimatch.escape=OXt.escape;it.minimatch.unescape=PXt.unescape});var xBe=w((CMr,nte)=>{"use strict";var vBe=K("node:diagnostics_channel"),{context:GB,trace:ete,SpanStatusCode:VB,propagation:tte,diag:lQt}=(Ce(),ke(Ze)),{getRPCMetadata:dQt,RPCType:fQt}=fr(),{ATTR_HTTP_ROUTE:WB,ATTR_HTTP_RESPONSE_STATUS_CODE:RBe,ATTR_HTTP_REQUEST_METHOD:pQt,ATTR_URL_PATH:hQt}=(Pn(),ke(Mr)),{InstrumentationBase:mQt}=Qqe(),{version:gQt,name:ABe}=$qe(),yQt=">=4.0.0 <6",wBe=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],fi={HOOK_NAME:"hook.name",FASTIFY_TYPE:"fastify.type",HOOK_CALLBACK_NAME:"hook.callback.name",ROOT:"fastify.root"},Qy={ROUTE:"route-hook",INSTANCE:"hook",HANDLER:"request-handler"},xm="anonymous",$y=Symbol("fastify otel instance"),eS=Symbol("fastify otel request spans"),XP=Symbol("fastify otel request context"),kBe=Symbol("fastify otel addhook original"),IBe=Symbol("fastify otel setnotfound original"),QP=Symbol("fastify otel ignore path"),$P=Symbol("fastify otel record exceptions"),KB=class extends mQt{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(ABe,gQt,t),this.logger=lQt.createComponentLogger({namespace:ABe}),this[QP]=null,this[$P]=!0,t?.recordExceptions!=null){if(typeof t.recordExceptions!="boolean")throw new TypeError("recordExceptions must be a boolean");this[$P]=t.recordExceptions}if(typeof t?.requestHook=="function"&&(this._requestHook=t.requestHook),typeof t?.lifecycleHook=="function"&&(this._lifecycleHook=t.lifecycleHook),t?.ignorePaths!=null||process.env.OTEL_FASTIFY_IGNORE_PATHS!=null){let n=t?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if((typeof n!="string"||n.length===0)&&typeof n!="function")throw new TypeError("ignorePaths must be a string or a function");let r=null;this[QP]=i=>typeof n=="function"?n(i):(r==null&&(r=TBe().minimatch),r(i.url,n))}}enable(){return this._handleInitialization===void 0&&this.getConfig().registerOnInitialization&&(this._handleInitialization=t=>{this.plugin()(t.fastify,void 0,()=>{});let n=(r,i,s)=>{s()};n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",t.fastify.register(n)},vBe.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(vBe.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let t=this;return n[Symbol.for("skip-override")]=!0,n[Symbol.for("fastify.display-name")]="@fastify/otel",n[Symbol.for("plugin-meta")]={fastify:yQt,name:"@fastify/otel"},n;function n(r,i,s){r.decorate($y,t),r.decorate(kBe,r.addHook),r.decorate(IBe,r.setNotFoundHandler),r.decorateRequest("opentelemetry",function(){let p=this[XP],h=this[eS];return{enabled:this.routeOptions.config?.otel!==!1,span:h,tracer:t.tracer,context:p,inject:(m,g)=>tte.inject(p,m,g),extract:(m,g)=>tte.extract(p,m,g)}}),r.decorateRequest(eS,null),r.decorateRequest(XP,null),r.addHook("onRoute",function(p){if(t[QP]?.(p)===!0){t.logger.debug(`Ignoring route instrumentation ${p.method} ${p.url} because it matches the ignore path`);return}if(p.config?.otel===!1){t.logger.debug(`Ignoring route instrumentation ${p.method} ${p.url} because it is disabled`);return}for(let h of wBe)if(p[h]!=null){let m=p[h];if(typeof m=="function")p[h]=d(m,h,{[fi.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[fi.FASTIFY_TYPE]:Qy.ROUTE,[WB]:p.url,[fi.HOOK_CALLBACK_NAME]:m.name?.length>0?m.name:xm});else if(Array.isArray(m)){let g=[];for(let y of m)g.push(d(y,h,{[fi.HOOK_NAME]:`${this.pluginName} - route -> ${h}`,[fi.FASTIFY_TYPE]:Qy.ROUTE,[WB]:p.url,[fi.HOOK_CALLBACK_NAME]:y.name?.length>0?y.name:xm}));p[h]=g}}p.onSend!=null?p.onSend=Array.isArray(p.onSend)?[...p.onSend,o]:[p.onSend,o]:p.onSend=o,p.onError!=null?p.onError=Array.isArray(p.onError)?[...p.onError,a]:[p.onError,a]:p.onError=a,p.handler=d(p.handler,"handler",{[fi.HOOK_NAME]:`${this.pluginName} - route-handler`,[fi.FASTIFY_TYPE]:Qy.HANDLER,[WB]:p.url,[fi.HOOK_CALLBACK_NAME]:p.handler.name.length>0?p.handler.name:xm})}),r.addHook("onRequest",function(p,h,m){if(this[$y].isEnabled()===!1||p.routeOptions.config?.otel===!1)return m();if(this[$y][QP]?.({url:p.url,method:p.method})===!0)return this[$y].logger.debug(`Ignoring request ${p.method} ${p.url} because it matches the ignore path`),m();let g=GB.active();ete.getSpan(g)==null&&(g=tte.extract(g,p.headers));let y=dQt(g);p.routeOptions.url!=null&&y?.type===fQt.HTTP&&(y.route=p.routeOptions.url);let b={[fi.ROOT]:"@fastify/otel",[pQt]:p.method,[hQt]:p.url};p.routeOptions.url!=null&&(b[WB]=p.routeOptions.url);let S=this[$y].tracer.startSpan("request",{attributes:b},g);try{this[$y]._requestHook?.(S,p)}catch(E){this[$y].logger.error({err:E},"requestHook threw")}p[XP]=ete.setSpan(g,S),p[eS]=S,GB.with(p[XP],()=>{m()})}),r.addHook("onResponse",function(p,h,m){let g=p[eS];g!=null&&(g.setAttributes({[RBe]:h.statusCode}),g.end()),p[eS]=null,m()}),r.addHook=c,r.setNotFoundHandler=u,s();function o(f,p,h,m){let g=f[eS];g!=null&&(p.statusCode>=500&&g.setStatus({code:VB.ERROR}),g.setAttributes({[RBe]:p.statusCode}),g.end()),f[eS]=null,m(null,h)}function a(f,p,h,m){let g=f[eS];g!=null&&(g.setStatus({code:VB.ERROR,message:h.message}),t[$P]!==!1&&g.recordException(h)),m()}function c(f,p){let h=this[kBe];return wBe.includes(f)?h.call(this,f,d(p,f,{[fi.HOOK_NAME]:`${this.pluginName} - ${f}`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:xm})):h.call(this,f,p)}function u(f,p){let h=this[IBe];typeof f=="function"?(p=d(f,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.name?.length>0?f.name:xm}),h.call(this,p)):(f.preValidation!=null&&(f.preValidation=d(f.preValidation,"notFoundHandler - preValidation",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preValidation`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preValidation.name?.length>0?f.preValidation.name:xm})),f.preHandler!=null&&(f.preHandler=d(f.preHandler,"notFoundHandler - preHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler - preHandler`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:f.preHandler.name?.length>0?f.preHandler.name:xm})),p=d(p,"notFoundHandler",{[fi.HOOK_NAME]:`${this.pluginName} - not-found-handler`,[fi.FASTIFY_TYPE]:Qy.INSTANCE,[fi.HOOK_CALLBACK_NAME]:p.name?.length>0?p.name:xm}),h.call(this,f,p))}function l(f){for(let p of f)if(p?.routeOptions&&p.url&&p.method)return p;return null}function d(f,p,h={}){return function(...g){let y=this[$y],b=l(g);if(b===null)return y.logger.debug(`Ignoring route instrumentation because ${p} was called without a Fastify request argument`),f.call(this,...g);if(y.isEnabled()===!1||b.routeOptions.config?.otel===!1)return y.logger.debug(`Ignoring route instrumentation ${b.routeOptions.method} ${b.routeOptions.url} because it is disabled`),f.call(this,...g);if(y[QP]?.({url:b.url,method:b.method})===!0)return y.logger.debug(`Ignoring route instrumentation ${b.routeOptions.method} ${b.routeOptions.url} because it matches the ignore path`),f.call(this,...g);let S=b[XP]??GB.active(),E=f.name?.length>0?f.name:this.pluginName??xm,_=y.tracer.startSpan(`${p} - ${E}`,{attributes:h},S);if(y._lifecycleHook!=null)try{y._lifecycleHook(_,{hookName:p,request:b,handler:E})}catch(T){y.logger.error({err:T},"Execution of lifecycleHook failed")}return GB.with(ete.setSpan(S,_),function(){try{let T=f.call(this,...g);return typeof T?.then=="function"?T.then(R=>(_.end(),R),R=>(_.setStatus({code:VB.ERROR,message:R.message}),y[$P]!==!1&&_.recordException(R),_.end(),Promise.reject(R))):(_.end(),T)}catch(T){throw _.setStatus({code:VB.ERROR,message:T.message}),y[$P]!==!1&&_.recordException(T),_.end(),T}},this)}}}}};nte.exports=KB;nte.exports.FastifyOtelInstrumentation=KB});var Om,eN,tN,OBe=v(()=>{(function(e){let t="fastify.name";e.FASTIFY_NAME=t;let n="fastify.type";e.FASTIFY_TYPE=n;let r="hook.name";e.HOOK_NAME=r;let i="plugin.name";e.PLUGIN_NAME=i})(Om||(Om={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request_handler";e.REQUEST_HANDLER=n})(eN||(eN={}));(function(e){let t="middleware";e.MIDDLEWARE=t;let n="request handler";e.REQUEST_HANDLER=n})(tN||(tN={}))});var nN,PBe=v(()=>{nN=Symbol("opentelemetry.instrumentation.fastify.request_active_span")});function rte(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),s=e[nN]||[];return s.push(i),Object.defineProperty(e,nN,{enumerable:!1,configurable:!0,value:s}),i}function YB(e,t){let n=e[nN]||[];n.length&&(n.forEach(r=>{t&&(r.setStatus({code:as.ERROR,message:t.message}),r.recordException(t)),r.end()}),delete e[nN])}function CBe(e,t,n){let r,i;try{i=e(),NBe(i)&&i.then(s=>t(void 0,s),s=>t(s))}catch(s){r=s}finally{if(!NBe(i)&&(t(r,i),r))throw r;return i}}function NBe(e){return typeof e=="object"&&e&&typeof Object.getOwnPropertyDescriptor(e,"then")?.value=="function"||!1}var MBe=v(()=>{Ce();PBe()});function _Qt(){let e=ct();e&&e.on("spanStart",t=>{LBe(t)})}function LBe(e){let t=vt(e).data,n=t["fastify.type"];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.fastify",[zt]:`${n}.fastify`});let r=t["fastify.name"]||t["plugin.name"]||t["hook.name"];if(typeof r=="string"){let i=r.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(i)}}var JB,t_,SQt,bQt,DBe,EQt,ZB,UBe=v(()=>{Ce();JB=Re(fr(),1),t_=Re(Jt(),1);Pn();st();OBe();MBe();SQt="0.1.0",bQt="@sentry/instrumentation-fastify-v3",DBe="anonymous",EQt=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]),ZB=class extends t_.InstrumentationBase{constructor(t={}){super(bQt,SQt,t)}init(){return[new t_.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_hookOnRequest(){let t=this;return function(r,i,s){if(!t.isEnabled())return s();t._wrap(i,"send",t._patchSend());let o=r,a=(0,JB.getRPCMetadata)(Ve.active()),c=o.routeOptions?o.routeOptions.url:r.routerPath;c&&a?.type===JB.RPCType.HTTP&&(a.route=c);let u=r.method||"GET";vn().setTransactionName(`${u} ${c}`),s()}}_wrapHandler(t,n,r,i){let s=this;return this._diag.debug("Patching fastify route.handler function"),function(...o){if(!s.isEnabled())return r.apply(this,o);let a=r.name||t||DBe,c=`${tN.MIDDLEWARE} - ${a}`,u=o[1],l=rte(u,s.tracer,c,{[Om.FASTIFY_TYPE]:eN.MIDDLEWARE,[Om.PLUGIN_NAME]:t,[Om.HOOK_NAME]:n}),d=i&&o[o.length-1];return d&&(o[o.length-1]=function(...f){YB(u),d.apply(this,f)}),Ve.with(jt.setSpan(Ve.active(),l),()=>CBe(()=>r.apply(this,o),f=>{f instanceof Error&&(l.setStatus({code:as.ERROR,message:f.message}),l.recordException(f)),i||YB(u)}))}}_wrapAddHook(){let t=this;return this._diag.debug("Patching fastify server.addHook function"),function(n){return function(...i){let s=i[0],o=i[1],a=this.pluginName;if(!EQt.has(s))return n.apply(this,i);let c=typeof i[i.length-1]=="function"&&o.constructor.name!=="AsyncFunction";return n.apply(this,[s,t._wrapHandler(a,s,o,c)])}}}_patchConstructor(t){let n=this;function r(...i){let s=t.fastify.apply(this,i);return s.addHook("onRequest",n._hookOnRequest()),s.addHook("preHandler",n._hookPreHandler()),_Qt(),n._wrap(s,"addHook",n._wrapAddHook()),s}return t.errorCodes!==void 0&&(r.errorCodes=t.errorCodes),r.fastify=r,r.default=r,r}_patchSend(){let t=this;return this._diag.debug("Patching fastify reply.send function"),function(r){return function(...s){let o=s[0];return t.isEnabled()?(0,t_.safeExecuteInTheMiddle)(()=>r.apply(this,s),a=>{!a&&o instanceof Error&&(a=o),YB(this,a)}):r.apply(this,s)}}}_hookPreHandler(){let t=this;return this._diag.debug("Patching fastify preHandler function"),function(r,i,s){if(!t.isEnabled())return s();let o=r,a=o.routeOptions?.handler||o.context?.handler,c=a?.name.startsWith("bound ")?a.name.substring(6):a?.name,u=`${tN.REQUEST_HANDLER} - ${c||this.pluginName||DBe}`,l={[Om.PLUGIN_NAME]:this.pluginName,[Om.FASTIFY_TYPE]:eN.REQUEST_HANDLER,[f7]:o.routeOptions?o.routeOptions.url:r.routerPath};c&&(l[Om.FASTIFY_NAME]=c);let d=rte(i,t.tracer,u,l);LBe(d);let{requestHook:f}=t.getConfig();return f&&(0,t_.safeExecuteInTheMiddle)(()=>f(d,{request:r}),p=>{p&&t._diag.error("request hook failed",p)},!0),Ve.with(jt.setSpan(Ve.active(),d),()=>{s()})}}}});import*as ite from"node:diagnostics_channel";function TQt(){let e=ct();if(e)return e.getIntegrationByName(XB)}function FBe(e,t,n,r){let i=TQt()?.getShouldHandleError()||zBe;if(r==="diagnostics-channel"&&(this.diagnosticsChannelExists=!0),this.diagnosticsChannelExists&&r==="onError-hook"){So&&Z.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}i(e,t,n)&&Wt(e,{mechanism:{handled:!1,type:"auto.function.fastify"}})}function zBe(e,t,n){let r=n.statusCode;return r>=500||r<=299}function GBe(e){let t=vt(e),n=t.description,r=t.data,i=r["fastify.type"],s=i==="hook",o=i===n?.startsWith("handler -"),a=n==="request"||i==="request-handler";if(r[zt]||!o&&!a&&!s)return;let c=s?"hook":o?"middleware":a?"request_handler":"";e.setAttributes({[At]:"auto.http.otel.fastify",[zt]:`${c}.fastify`});let u=r["fastify.name"]||r["plugin.name"]||r["hook.name"];if(typeof u=="string"){let l=u.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(l)}}function RQt(){let e=ct();e&&e.on("spanStart",t=>{GBe(t)})}function AQt(e){e.addHook("onRequest",async(t,n)=>{if(t.opentelemetry){let{span:s}=t.opentelemetry();s&&GBe(s)}let r=t.routeOptions?.url,i=t.method||"GET";vn().setTransactionName(`${i} ${r}`)})}var jBe,XB,HBe,qBe,vQt,BBe,VBe=v(()=>{jBe=Re(xBe(),1);st();sr();XE();UBe();XB="Fastify",HBe=rt(`${XB}.v3`,()=>new ZB);qBe=rt(`${XB}.v5`,()=>{let e=new jBe.FastifyOtelInstrumentation,t=e.plugin();return ite.subscribe("fastify.initialization",n=>{let r=n.fastify;r?.register(t).after(i=>{i?So&&Z.error("Failed to setup Fastify instrumentation",i):(RQt(),r&&AQt(r))})}),ite.subscribe("tracing:fastify.request.handler:error",n=>{let{error:r,request:i,reply:s}=n;FBe.call(FBe,r,i,s,"diagnostics-channel")}),e}),vQt=(({shouldHandleError:e})=>{let t;return{name:XB,setupOnce(){t=e||zBe,HBe(),qBe()},getShouldHandleError(){return t},setShouldHandleError(n){t=n}}}),BBe=(e={})=>vQt(e)});var ste=w(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.SpanNames=hf.TokenKind=hf.AllowedOperationTypes=void 0;var wQt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(wQt=hf.AllowedOperationTypes||(hf.AllowedOperationTypes={}));var kQt;(function(e){e.SOF="",e.EOF="",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(kQt=hf.TokenKind||(hf.TokenKind={}));var IQt;(function(e){e.EXECUTE="graphql.execute",e.PARSE="graphql.parse",e.RESOLVE="graphql.resolve",e.VALIDATE="graphql.validate",e.SCHEMA_VALIDATE="graphql.validateSchema",e.SCHEMA_PARSE="graphql.parseSchema"})(IQt=hf.SpanNames||(hf.SpanNames={}))});var ote=w(rN=>{"use strict";Object.defineProperty(rN,"__esModule",{value:!0});rN.AttributeNames=void 0;var xQt;(function(e){e.SOURCE="graphql.source",e.FIELD_NAME="graphql.field.name",e.FIELD_PATH="graphql.field.path",e.FIELD_TYPE="graphql.field.type",e.PARENT_NAME="graphql.parent.name",e.OPERATION_TYPE="graphql.operation.type",e.OPERATION_NAME="graphql.operation.name",e.VARIABLES="graphql.variables.",e.ERROR_VALIDATION_NAME="graphql.validation.error"})(xQt=rN.AttributeNames||(rN.AttributeNames={}))});var QB=w(BA=>{"use strict";Object.defineProperty(BA,"__esModule",{value:!0});BA.OTEL_GRAPHQL_DATA_SYMBOL=BA.OTEL_PATCHED_SYMBOL=void 0;BA.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched");BA.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")});var WBe=w($B=>{"use strict";Object.defineProperty($B,"__esModule",{value:!0});$B.OPERATION_NOT_SUPPORTED=void 0;var $Mr=QB();$B.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"});var oze=w(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.wrapFieldResolver=bo.wrapFields=bo.getSourceFromLocation=bo.getOperation=bo.endSpan=bo.addSpanSource=bo.addInputVariableAttributes=bo.isPromise=void 0;var zA=(Ce(),ke(Ze)),tS=ste(),n_=ote(),Pm=QB(),KBe=Object.values(tS.AllowedOperationTypes),OQt=e=>typeof e?.then=="function";bo.isPromise=OQt;var PQt=e=>typeof e=="object"&&e!==null;function ate(e,t,n){Array.isArray(n)?n.forEach((r,i)=>{ate(e,`${t}.${i}`,r)}):n instanceof Object?Object.entries(n).forEach(([r,i])=>{ate(e,`${t}.${r}`,i)}):e.setAttribute(`${n_.AttributeNames.VARIABLES}${String(t)}`,n)}function NQt(e,t){Object.entries(t).forEach(([n,r])=>{ate(e,n,r)})}bo.addInputVariableAttributes=NQt;function XBe(e,t,n,r,i){let s=nze(t,n,r,i);e.setAttribute(n_.AttributeNames.SOURCE,s)}bo.addSpanSource=XBe;function CQt(e,t,n,r,i){let s=QBe(n,i);if(s)return{field:s,spanAdded:!1};let a=t().flatResolveSpans?eze(n):$Be(n,i);return s={span:MQt(e,t,n,r,i,a)},UQt(n,i,s),{field:s,spanAdded:!0}}function MQt(e,t,n,r,i,s){let o={[n_.AttributeNames.FIELD_NAME]:r.fieldName,[n_.AttributeNames.FIELD_PATH]:i.join("."),[n_.AttributeNames.FIELD_TYPE]:r.returnType.toString(),[n_.AttributeNames.PARENT_NAME]:r.parentType.name},a=e.startSpan(`${tS.SpanNames.RESOLVE} ${o[n_.AttributeNames.FIELD_PATH]}`,{attributes:o},s?zA.trace.setSpan(zA.context.active(),s):void 0),c=n[Pm.OTEL_GRAPHQL_DATA_SYMBOL].source,u=r.fieldNodes.find(l=>l.kind==="Field");return u&&XBe(a,c.loc,t().allowValues,u.loc?.start,u.loc?.end),a}function DQt(e,t){t&&e.recordException(t),e.end()}bo.endSpan=DQt;function LQt(e,t){if(!(!e||!Array.isArray(e.definitions)))return t?e.definitions.filter(n=>KBe.indexOf(n?.operation)!==-1).find(n=>t===n?.name?.value):e.definitions.find(n=>KBe.indexOf(n?.operation)!==-1)}bo.getOperation=LQt;function UQt(e,t,n){return e[Pm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]=n}function QBe(e,t){return e[Pm.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function $Be(e,t){for(let n=t.length-1;n>0;n--){let r=QBe(e,t.slice(0,n));if(r)return r.span}return eze(e)}function eze(e){return e[Pm.OTEL_GRAPHQL_DATA_SYMBOL].span}function FQt(e,t){let n=[],r=t;for(;r;){let i=r.key;e&&typeof i=="number"&&(i="*"),n.push(String(i)),r=r.prev}return n.reverse()}function jQt(e){return tze(` +`,e)}function YBe(e){return tze(" ",e)}function tze(e,t){let n="";for(let r=0;ro){a=a.next,c=a?.line;continue}let u=a.value||a.kind,l="";!t&&HQt.indexOf(a.kind)>=0&&(u="*"),a.kind===tS.TokenKind.STRING&&(u=`"${u}"`),a.kind===tS.TokenKind.EOF&&(u=""),a.line>c?(i+=jQt(a.line-c),c=a.line,l=YBe(a.column-1)):a.line===a.prev?.line&&(l=YBe(a.start-(a.prev?.end||0))),i+=l+u,a&&(a=a.next)}}return i}bo.getSourceFromLocation=nze;function rze(e,t,n){if(!e||e[Pm.OTEL_PATCHED_SYMBOL])return;let r=e.getFields();e[Pm.OTEL_PATCHED_SYMBOL]=!0,Object.keys(r).forEach(i=>{let s=r[i];if(s&&(s.resolve&&(s.resolve=sze(t,n,s.resolve)),s.type)){let o=ize(s.type);for(let a of o)rze(a,t,n)}})}bo.wrapFields=rze;function ize(e){return"ofType"in e?ize(e.ofType):qQt(e)?e.getTypes():BQt(e)?[e]:[]}function qQt(e){return"getTypes"in e&&typeof e.getTypes=="function"}function BQt(e){return"getFields"in e&&typeof e.getFields=="function"}var ZBe=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:zA.SpanStatusCode.ERROR,message:t.message}),e.end())},JBe=(e,t)=>{t&&e.end()};function sze(e,t,n,r=!1){if(i[Pm.OTEL_PATCHED_SYMBOL]||typeof n!="function")return n;function i(s,o,a,c){if(!n)return;let u=t();if(u.ignoreTrivialResolveSpans&&r&&(PQt(s)||typeof s=="function")&&typeof s[c.fieldName]!="function")return n.call(this,s,o,a,c);if(!a[Pm.OTEL_GRAPHQL_DATA_SYMBOL])return n.call(this,s,o,a,c);let l=FQt(u.mergeItems,c&&c.path),d=l.filter(h=>typeof h=="string").length,f,p=!1;if(u.depth>=0&&u.depth{try{let h=n.call(this,s,o,a,c);return(0,bo.isPromise)(h)?h.then(m=>(JBe(f,p),m),m=>{throw ZBe(f,m,p),m}):(JBe(f,p),h)}catch(h){throw ZBe(f,h,p),h}})}return i[Pm.OTEL_PATCHED_SYMBOL]=!0,i}bo.wrapFieldResolver=sze});var aze=w(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.PACKAGE_NAME=GA.PACKAGE_VERSION=void 0;GA.PACKAGE_VERSION="0.62.0";GA.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"});var lze=w(nz=>{"use strict";Object.defineProperty(nz,"__esModule",{value:!0});nz.GraphQLInstrumentation=void 0;var Nm=(Ce(),ke(Ze)),ed=Jt(),iN=ste(),ez=ote(),cte=QB(),zQt=WBe(),Qa=oze(),cze=aze(),uze={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},tz=[">=14.0.0 <17"],ute=class extends ed.InstrumentationBase{constructor(t={}){super(cze.PACKAGE_NAME,cze.PACKAGE_VERSION,{...uze,...t})}setConfig(t={}){super.setConfig({...uze,...t})}init(){let t=new ed.InstrumentationNodeModuleDefinition("graphql",tz);return t.files.push(this._addPatchingExecute()),t.files.push(this._addPatchingParser()),t.files.push(this._addPatchingValidate()),t}_addPatchingExecute(){return new ed.InstrumentationNodeModuleFile("graphql/execution/execute.js",tz,t=>((0,ed.isWrapped)(t.execute)&&this._unwrap(t,"execute"),this._wrap(t,"execute",this._patchExecute(t.defaultFieldResolver)),t),t=>{t&&this._unwrap(t,"execute")})}_addPatchingParser(){return new ed.InstrumentationNodeModuleFile("graphql/language/parser.js",tz,t=>((0,ed.isWrapped)(t.parse)&&this._unwrap(t,"parse"),this._wrap(t,"parse",this._patchParse()),t),t=>{t&&this._unwrap(t,"parse")})}_addPatchingValidate(){return new ed.InstrumentationNodeModuleFile("graphql/validation/validate.js",tz,t=>((0,ed.isWrapped)(t.validate)&&this._unwrap(t,"validate"),this._wrap(t,"validate",this._patchValidate()),t),t=>{t&&this._unwrap(t,"validate")})}_patchExecute(t){let n=this;return function(i){return function(){let o;if(arguments.length>=2){let u=arguments;o=n._wrapExecuteArgs(u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],t)}else{let u=arguments[0];o=n._wrapExecuteArgs(u.schema,u.document,u.rootValue,u.contextValue,u.variableValues,u.operationName,u.fieldResolver,u.typeResolver,t)}let a=(0,Qa.getOperation)(o.document,o.operationName),c=n._createExecuteSpan(a,o);return o.contextValue[cte.OTEL_GRAPHQL_DATA_SYMBOL]={source:o.document?o.document||o.document[cte.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:c,fields:{}},Nm.context.with(Nm.trace.setSpan(Nm.context.active(),c),()=>(0,ed.safeExecuteInTheMiddle)(()=>i.apply(this,[o]),(u,l)=>{n._handleExecutionResult(c,u,l)}))}}}_handleExecutionResult(t,n,r){let i=this.getConfig();if(r===void 0||n){(0,Qa.endSpan)(t,n);return}if((0,Qa.isPromise)(r))r.then(s=>{if(typeof i.responseHook!="function"){(0,Qa.endSpan)(t);return}this._executeResponseHook(t,s)},s=>{(0,Qa.endSpan)(t,s)});else{if(typeof i.responseHook!="function"){(0,Qa.endSpan)(t);return}this._executeResponseHook(t,r)}}_executeResponseHook(t,n){let{responseHook:r}=this.getConfig();r&&(0,ed.safeExecuteInTheMiddle)(()=>{r(t,n)},i=>{i&&this._diag.error("Error running response hook",i),(0,Qa.endSpan)(t,void 0)},!0)}_patchParse(){let t=this;return function(r){return function(s,o){return t._parse(this,r,s,o)}}}_patchValidate(){let t=this;return function(r){return function(s,o,a,c,u){return t._validate(this,r,s,o,a,u,c)}}}_parse(t,n,r,i){let s=this.getConfig(),o=this.tracer.startSpan(iN.SpanNames.PARSE);return Nm.context.with(Nm.trace.setSpan(Nm.context.active(),o),()=>(0,ed.safeExecuteInTheMiddle)(()=>n.call(t,r,i),(a,c)=>{c&&((0,Qa.getOperation)(c)?c.loc&&(0,Qa.addSpanSource)(o,c.loc,s.allowValues):o.updateName(iN.SpanNames.SCHEMA_PARSE)),(0,Qa.endSpan)(o,a)}))}_validate(t,n,r,i,s,o,a){let c=this.tracer.startSpan(iN.SpanNames.VALIDATE,{});return Nm.context.with(Nm.trace.setSpan(Nm.context.active(),c),()=>(0,ed.safeExecuteInTheMiddle)(()=>n.call(t,r,i,s,a,o),(u,l)=>{i.loc||c.updateName(iN.SpanNames.SCHEMA_VALIDATE),l&&l.length&&c.recordException({name:ez.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(l)}),(0,Qa.endSpan)(c,u)}))}_createExecuteSpan(t,n){let r=this.getConfig(),i=this.tracer.startSpan(iN.SpanNames.EXECUTE,{});if(t){let{operation:s,name:o}=t;i.setAttribute(ez.AttributeNames.OPERATION_TYPE,s);let a=o?.value;a?(i.setAttribute(ez.AttributeNames.OPERATION_NAME,a),i.updateName(`${s} ${a}`)):i.updateName(s)}else{let s=" ";n.operationName&&(s=` "${n.operationName}" `),s=zQt.OPERATION_NOT_SUPPORTED.replace("$operationName$",s),i.setAttribute(ez.AttributeNames.OPERATION_NAME,s)}return n.document?.loc&&(0,Qa.addSpanSource)(i,n.document.loc,r.allowValues),n.variableValues&&r.allowValues&&(0,Qa.addInputVariableAttributes)(i,n.variableValues),i}_wrapExecuteArgs(t,n,r,i,s,o,a,c,u){if(i||(i={}),i[cte.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c};let l=a==null,d=a??u;return a=(0,Qa.wrapFieldResolver)(this.tracer,()=>this.getConfig(),d,l),t&&((0,Qa.wrapFields)(t.getQueryType(),this.tracer,()=>this.getConfig()),(0,Qa.wrapFields)(t.getMutationType(),this.tracer,()=>this.getConfig())),{schema:t,document:n,rootValue:r,contextValue:i,variableValues:s,operationName:o,fieldResolver:a,typeResolver:c}}};nz.GraphQLInstrumentation=ute});var dze=w(rz=>{"use strict";Object.defineProperty(rz,"__esModule",{value:!0});rz.GraphQLInstrumentation=void 0;var GQt=lze();Object.defineProperty(rz,"GraphQLInstrumentation",{enumerable:!0,get:function(){return GQt.GraphQLInstrumentation}})});function gze(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}function WQt(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}var fze,pze,hze,VQt,mze,yze=v(()=>{Ce();fze=Re(dze(),1);st();sr();IA();pze="Graphql",hze=rt(pze,fze.GraphQLInstrumentation,e=>{let t=gze(e);return{...t,responseHook(n,r){Dr(n,"auto.graphql.otel.graphql"),r.errors?.length&&!vt(n).status&&n.setStatus({code:as.ERROR});let s=vt(n).data,o=s["graphql.operation.type"],a=s["graphql.operation.name"];if(t.useOperationNameForRootSpan&&o){let c=cs(n),l=vt(c).data[wA]||[],d=a?`${o} ${a}`:`${o}`;Array.isArray(l)?(l.push(d),c.setAttribute(wA,l)):typeof l=="string"?c.setAttribute(wA,[l,d]):c.setAttribute(wA,d),vt(c).data["original-description"]||c.setAttribute("original-description",vt(c).description),c.updateName(`${vt(c).data["original-description"]} (${WQt(l)})`)}}}}),VQt=((e={})=>({name:pze,setupOnce(){hze(gze(e))}})),mze=VQt});var Sze=w(iz=>{"use strict";Object.defineProperty(iz,"__esModule",{value:!0});iz.EVENT_LISTENERS_SET=void 0;iz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")});var bze=w(sz=>{"use strict";Object.defineProperty(sz,"__esModule",{value:!0});sz.bufferTextMapGetter=void 0;sz.bufferTextMapGetter={get(e,t){if(!e)return;let n=Object.keys(e);for(let r of n)if(r===t||r.toLowerCase()===t)return e[r]?.toString()},keys(e){return e?Object.keys(e):[]}}});var Eze=w(Fn=>{"use strict";Object.defineProperty(Fn,"__esModule",{value:!0});Fn.METRIC_MESSAGING_PROCESS_DURATION=Fn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=Fn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=Fn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=Fn.MESSAGING_SYSTEM_VALUE_KAFKA=Fn.MESSAGING_OPERATION_TYPE_VALUE_SEND=Fn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=Fn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=Fn.ATTR_MESSAGING_SYSTEM=Fn.ATTR_MESSAGING_OPERATION_TYPE=Fn.ATTR_MESSAGING_OPERATION_NAME=Fn.ATTR_MESSAGING_KAFKA_OFFSET=Fn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=Fn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=Fn.ATTR_MESSAGING_DESTINATION_PARTITION_ID=Fn.ATTR_MESSAGING_DESTINATION_NAME=Fn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0;Fn.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count";Fn.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name";Fn.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id";Fn.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key";Fn.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone";Fn.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset";Fn.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name";Fn.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type";Fn.ATTR_MESSAGING_SYSTEM="messaging.system";Fn.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process";Fn.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive";Fn.MESSAGING_OPERATION_TYPE_VALUE_SEND="send";Fn.MESSAGING_SYSTEM_VALUE_KAFKA="kafka";Fn.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages";Fn.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration";Fn.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages";Fn.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"});var _ze=w(VA=>{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.PACKAGE_NAME=VA.PACKAGE_VERSION=void 0;VA.PACKAGE_VERSION="0.23.0";VA.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"});var kze=w(az=>{"use strict";Object.defineProperty(az,"__esModule",{value:!0});az.KafkaJsInstrumentation=void 0;var Lr=(Ce(),ke(Ze)),td=Jt(),WA=(Pn(),ke(Mr)),Tze=Sze(),vze=bze(),ot=Eze(),Rze=_ze();function oz(e,t,n){return r=>{e.add(t,{...n,...r?{[WA.ATTR_ERROR_TYPE]:r}:{}})}}function Aze(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[WA.ATTR_ERROR_TYPE]:r}:{}})}}var wze=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10],lte=class extends td.InstrumentationBase{constructor(t={}){super(Rze.PACKAGE_NAME,Rze.PACKAGE_VERSION,t)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:wze}}),this._sentMessages=this.meter.createCounter(ot.METRIC_MESSAGING_CLIENT_SENT_MESSAGES),this._consumedMessages=this.meter.createCounter(ot.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES),this._processDuration=this.meter.createHistogram(ot.METRIC_MESSAGING_PROCESS_DURATION,{advice:{explicitBucketBoundaries:wze}})}init(){let t=r=>{(0,td.isWrapped)(r?.Kafka?.prototype.producer)&&this._unwrap(r.Kafka.prototype,"producer"),(0,td.isWrapped)(r?.Kafka?.prototype.consumer)&&this._unwrap(r.Kafka.prototype,"consumer")};return new td.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],r=>(t(r),this._wrap(r?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(r?.Kafka?.prototype,"consumer",this._getConsumerPatch()),r),t)}_getConsumerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,td.isWrapped)(s.run)&&t._unwrap(s,"run"),t._wrap(s,"run",t._getConsumerRunPatch()),t._setKafkaEventListeners(s),s}}_setKafkaEventListeners(t){t[Tze.EVENT_LISTENERS_SET]||(t.events?.REQUEST&&t.on(t.events.REQUEST,this._recordClientDurationMetric.bind(this)),t[Tze.EVENT_LISTENERS_SET]=!0)}_recordClientDurationMetric(t){let[n,r]=t.payload.broker.split(":");this._clientDuration.record(t.payload.duration/1e3,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:`${t.payload.apiName}`,[WA.ATTR_SERVER_ADDRESS]:n,[WA.ATTR_SERVER_PORT]:Number.parseInt(r,10)})}_getProducerPatch(){let t=this;return n=>function(...i){let s=n.apply(this,i);return(0,td.isWrapped)(s.sendBatch)&&t._unwrap(s,"sendBatch"),t._wrap(s,"sendBatch",t._getSendBatchPatch()),(0,td.isWrapped)(s.send)&&t._unwrap(s,"send"),t._wrap(s,"send",t._getSendPatch()),(0,td.isWrapped)(s.transaction)&&t._unwrap(s,"transaction"),t._wrap(s,"transaction",t._getProducerTransactionPatch()),t._setKafkaEventListeners(s),s}}_getConsumerRunPatch(){let t=this;return n=>function(...i){let s=i[0];return s?.eachMessage&&((0,td.isWrapped)(s.eachMessage)&&t._unwrap(s,"eachMessage"),t._wrap(s,"eachMessage",t._getConsumerEachMessagePatch())),s?.eachBatch&&((0,td.isWrapped)(s.eachBatch)&&t._unwrap(s,"eachBatch"),t._wrap(s,"eachBatch",t._getConsumerEachBatchPatch())),n.call(this,s)}}_getConsumerEachMessagePatch(){let t=this;return n=>function(...i){let s=i[0],o=Lr.propagation.extract(Lr.ROOT_CONTEXT,s.message.headers,vze.bufferTextMapGetter),a=t._startConsumerSpan({topic:s.topic,message:s.message,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,ctx:o,attributes:{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)}}),c=[Aze(t._processDuration,Date.now(),{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)}),oz(t._consumedMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.partition)})],u=Lr.context.with(Lr.trace.setSpan(o,a),()=>n.apply(this,i));return t._endSpansOnPromise([a],c,u)}}_getConsumerEachBatchPatch(){return t=>{let n=this;return function(...i){let s=i[0],o=n._startConsumerSpan({topic:s.batch.topic,message:void 0,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,ctx:Lr.ROOT_CONTEXT,attributes:{[ot.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]:s.batch.messages.length,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}});return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),o),()=>{let a=Date.now(),c=[],u=[oz(n._consumedMessages,s.batch.messages.length,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.batch.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)})];s.batch.messages.forEach(d=>{let f=Lr.propagation.extract(Lr.ROOT_CONTEXT,d.headers,vze.bufferTextMapGetter),p=Lr.trace.getSpan(f)?.spanContext(),h;p&&(h={context:p}),c.push(n._startConsumerSpan({topic:s.batch.topic,message:d,operationType:ot.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,link:h,attributes:{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}})),u.push(Aze(n._processDuration,a,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"process",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.batch.topic,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(s.batch.partition)}))});let l=t.apply(this,i);return c.unshift(o),n._endSpansOnPromise(c,u,l)})}}}_getProducerTransactionPatch(){let t=this;return n=>function(...i){let s=t.tracer.startSpan("transaction"),o=n.apply(this,i);return o.then(a=>{let c=a.send;a.send=function(...p){return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),s),()=>t._getSendPatch()(c).apply(this,p).catch(m=>{throw s.setStatus({code:Lr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let u=a.sendBatch;a.sendBatch=function(...p){return Lr.context.with(Lr.trace.setSpan(Lr.context.active(),s),()=>t._getSendBatchPatch()(u).apply(this,p).catch(m=>{throw s.setStatus({code:Lr.SpanStatusCode.ERROR,message:m?.message}),s.recordException(m),m}))};let l=a.commit;a.commit=function(...p){let h=l.apply(this,p).then(()=>{s.setStatus({code:Lr.SpanStatusCode.OK})});return t._endSpansOnPromise([s],[],h)};let d=a.abort;a.abort=function(...p){let h=d.apply(this,p);return t._endSpansOnPromise([s],[],h)}}).catch(a=>{s.setStatus({code:Lr.SpanStatusCode.ERROR,message:a?.message}),s.recordException(a),s.end()}),o}}_getSendBatchPatch(){let t=this;return n=>function(...i){let o=i[0].topicMessages||[],a=[],c=[];o.forEach(l=>{l.messages.forEach(d=>{a.push(t._startProducerSpan(l.topic,d)),c.push(oz(t._sentMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_DESTINATION_NAME]:l.topic,...d.partition!==void 0?{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(d.partition)}:{}}))})});let u=n.apply(this,i);return t._endSpansOnPromise(a,c,u)}}_getSendPatch(){let t=this;return n=>function(...i){let s=i[0],o=s.messages.map(u=>t._startProducerSpan(s.topic,u)),a=s.messages.map(u=>oz(t._sentMessages,1,{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_DESTINATION_NAME]:s.topic,...u.partition!==void 0?{[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(u.partition)}:{}})),c=n.apply(this,i);return t._endSpansOnPromise(o,a,c)}}_endSpansOnPromise(t,n,r){return Promise.resolve(r).then(i=>(n.forEach(s=>s()),i)).catch(i=>{let s,o=WA.ERROR_TYPE_VALUE_OTHER;throw typeof i=="string"||i===void 0?s=i:typeof i=="object"&&Object.prototype.hasOwnProperty.call(i,"message")&&(s=i.message,o=i.constructor.name),n.forEach(a=>a(o)),t.forEach(a=>{a.setAttribute(WA.ATTR_ERROR_TYPE,o),a.setStatus({code:Lr.SpanStatusCode.ERROR,message:s})}),i}).finally(()=>{t.forEach(i=>i.end())})}_startConsumerSpan({topic:t,message:n,operationType:r,ctx:i,link:s,attributes:o}){let a=r===ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?"poll":r,c=this.tracer.startSpan(`${a} ${t}`,{kind:r===ot.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?Lr.SpanKind.CLIENT:Lr.SpanKind.CONSUMER,attributes:{...o,[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_OPERATION_TYPE]:r,[ot.ATTR_MESSAGING_OPERATION_NAME]:a,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n?.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n?.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_KAFKA_OFFSET]:n?.offset},links:s?[s]:[]},i),{consumerHook:u}=this.getConfig();return u&&n&&(0,td.safeExecuteInTheMiddle)(()=>u(c,{topic:t,message:n}),l=>{l&&this._diag.error("consumerHook error",l)},!0),c}_startProducerSpan(t,n){let r=this.tracer.startSpan(`send ${t}`,{kind:Lr.SpanKind.PRODUCER,attributes:{[ot.ATTR_MESSAGING_SYSTEM]:ot.MESSAGING_SYSTEM_VALUE_KAFKA,[ot.ATTR_MESSAGING_DESTINATION_NAME]:t,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:n.key?String(n.key):void 0,[ot.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:n.key&&n.value===null?!0:void 0,[ot.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:n.partition!==void 0?String(n.partition):void 0,[ot.ATTR_MESSAGING_OPERATION_NAME]:"send",[ot.ATTR_MESSAGING_OPERATION_TYPE]:ot.MESSAGING_OPERATION_TYPE_VALUE_SEND}});n.headers=n.headers??{},Lr.propagation.inject(Lr.trace.setSpan(Lr.context.active(),r),n.headers);let{producerHook:i}=this.getConfig();return i&&(0,td.safeExecuteInTheMiddle)(()=>i(r,{topic:t,message:n}),s=>{s&&this._diag.error("producerHook error",s)},!0),r}};az.KafkaJsInstrumentation=lte});var Ize=w(cz=>{"use strict";Object.defineProperty(cz,"__esModule",{value:!0});cz.KafkaJsInstrumentation=void 0;var KQt=kze();Object.defineProperty(cz,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return KQt.KafkaJsInstrumentation}})});var xze,Oze,Pze,YQt,Nze,Cze=v(()=>{xze=Re(Ize(),1);sr();Oze="Kafka",Pze=rt(Oze,()=>new xze.KafkaJsInstrumentation({consumerHook(e){Dr(e,"auto.kafkajs.otel.consumer")},producerHook(e){Dr(e,"auto.kafkajs.otel.producer")}})),YQt=(()=>({name:Oze,setupOnce(){Pze()}})),Nze=YQt});var Mze=w(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.PACKAGE_NAME=KA.PACKAGE_VERSION=void 0;KA.PACKAGE_VERSION="0.58.0";KA.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"});var Fze=w(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});uz.LruMemoizerInstrumentation=void 0;var Dze=(Ce(),ke(Ze)),Lze=Jt(),Uze=Mze(),dte=class extends Lze.InstrumentationBase{constructor(t={}){super(Uze.PACKAGE_NAME,Uze.PACKAGE_VERSION,t)}init(){return[new Lze.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <4"],t=>{let n=function(){let r=t.apply(this,arguments);return function(){let i=[...arguments],s=i.pop(),o=typeof s=="function"?Dze.context.bind(Dze.context.active(),s):s;return i.push(o),r.apply(this,i)}};return n.sync=t.sync,n},void 0)]}};uz.LruMemoizerInstrumentation=dte});var jze=w(lz=>{"use strict";Object.defineProperty(lz,"__esModule",{value:!0});lz.LruMemoizerInstrumentation=void 0;var ZQt=Fze();Object.defineProperty(lz,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return ZQt.LruMemoizerInstrumentation}})});var Hze,qze,Bze,JQt,zze,Gze=v(()=>{Hze=Re(jze(),1);sr();qze="LruMemoizer",Bze=rt(qze,()=>new Hze.LruMemoizerInstrumentation),JQt=(()=>({name:qze,setupOnce(){Bze()}})),zze=JQt});var Vze=w(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Ni.DB_SYSTEM_VALUE_MONGODB=Ni.DB_SYSTEM_NAME_VALUE_MONGODB=Ni.ATTR_NET_PEER_PORT=Ni.ATTR_NET_PEER_NAME=Ni.ATTR_DB_SYSTEM=Ni.ATTR_DB_STATEMENT=Ni.ATTR_DB_OPERATION=Ni.ATTR_DB_NAME=Ni.ATTR_DB_MONGODB_COLLECTION=Ni.ATTR_DB_CONNECTION_STRING=void 0;Ni.ATTR_DB_CONNECTION_STRING="db.connection_string";Ni.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Ni.ATTR_DB_NAME="db.name";Ni.ATTR_DB_OPERATION="db.operation";Ni.ATTR_DB_STATEMENT="db.statement";Ni.ATTR_DB_SYSTEM="db.system";Ni.ATTR_NET_PEER_NAME="net.peer.name";Ni.ATTR_NET_PEER_PORT="net.peer.port";Ni.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb";Ni.DB_SYSTEM_VALUE_MONGODB="mongodb";Ni.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var Wze=w(sN=>{"use strict";Object.defineProperty(sN,"__esModule",{value:!0});sN.MongodbCommandType=void 0;var XQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.AGGREGATE="aggregate",e.UNKNOWN="unknown"})(XQt=sN.MongodbCommandType||(sN.MongodbCommandType={}))});var Kze=w(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.PACKAGE_NAME=YA.PACKAGE_VERSION=void 0;YA.PACKAGE_VERSION="0.67.0";YA.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"});var Jze=w(dz=>{"use strict";Object.defineProperty(dz,"__esModule",{value:!0});dz.MongoDBInstrumentation=void 0;var Ki=(Ce(),ke(Ze)),jn=Jt(),Cm=(Pn(),ke(Mr)),hl=Vze(),r_=Wze(),Yze=Kze(),Zze={requireParentSpan:!0},fte=class e extends jn.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(Yze.PACKAGE_NAME,Yze.PACKAGE_VERSION,{...Zze,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,jn.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,jn.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Zze,...t})}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter(hl.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsage?.add(t,{"pool.name":n,state:r})}init(){let{v3PatchConnection:t,v3UnpatchConnection:n}=this._getV3ConnectionPatches(),{v4PatchConnect:r,v4UnpatchConnect:i}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:s,v4PatchConnectionPromise:o,v4UnpatchConnection:a}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:c,v4UnpatchConnectionPool:u}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:l,v4UnpatchSessions:d}=this._getV4SessionsPatches();return[new jn.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],t,n)]),new jn.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],s,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],o,a),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],c,u),new jn.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],r,i),new jn.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],l,d)])]}_getV3ConnectionPatches(){return{v3PatchConnection:t=>((0,jn.isWrapped)(t.insert)&&this._unwrap(t,"insert"),this._wrap(t,"insert",this._getV3PatchOperation("insert")),(0,jn.isWrapped)(t.remove)&&this._unwrap(t,"remove"),this._wrap(t,"remove",this._getV3PatchOperation("remove")),(0,jn.isWrapped)(t.update)&&this._unwrap(t,"update"),this._wrap(t,"update",this._getV3PatchOperation("update")),(0,jn.isWrapped)(t.command)&&this._unwrap(t,"command"),this._wrap(t,"command",this._getV3PatchCommand()),(0,jn.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._getV3PatchFind()),(0,jn.isWrapped)(t.getMore)&&this._unwrap(t,"getMore"),this._wrap(t,"getMore",this._getV3PatchCursor()),t),v3UnpatchConnection:t=>{t!==void 0&&(this._unwrap(t,"insert"),this._unwrap(t,"remove"),this._unwrap(t,"update"),this._unwrap(t,"command"),this._unwrap(t,"query"),this._unwrap(t,"getMore"))}}}_getV4SessionsPatches(){return{v4PatchSessions:t=>((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),this._wrap(t.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"),this._wrap(t.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),t),v4UnpatchSessions:t=>{t!==void 0&&((0,jn.isWrapped)(t.acquire)&&this._unwrap(t,"acquire"),(0,jn.isWrapped)(t.release)&&this._unwrap(t,"release"))}}}_getV4AcquireCommand(){let t=this;return n=>function(){let i=this.sessions.length,s=n.call(this),o=this.sessions.length;return i===o?t._connCountAdd(1,t._poolName,"used"):i-1===o&&(t._connCountAdd(-1,t._poolName,"idle"),t._connCountAdd(1,t._poolName,"used")),s}}_getV4ReleaseCommand(){let t=this;return n=>function(i){let s=n.call(this,i);return t._connCountAdd(-1,t._poolName,"used"),t._connCountAdd(1,t._poolName,"idle"),s}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:t=>{let n=t.ConnectionPool.prototype;return(0,jn.isWrapped)(n.checkOut)&&this._unwrap(n,"checkOut"),this._wrap(n,"checkOut",this._getV4ConnectionPoolCheckOut()),t},v4UnpatchConnectionPool:t=>{t!==void 0&&this._unwrap(t.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:t=>((0,jn.isWrapped)(t.connect)&&this._unwrap(t,"connect"),this._wrap(t,"connect",this._getV4ConnectCommand()),t),v4UnpatchConnect:t=>{t!==void 0&&this._unwrap(t,"connect")}}}_getV4ConnectionPoolCheckOut(){return t=>function(r){let i=Ki.context.bind(Ki.context.active(),r);return t.call(this,i)}}_getV4ConnectCommand(){let t=this;return n=>function(i,s){if(n.length===1){let a=n.call(this,i);return a&&typeof a.then=="function"&&a.then(()=>t.setPoolName(i),()=>{}),a}let o=function(a,c){if(a||!c){s(a,c);return}t.setPoolName(i),s(a,c)};return n.call(this,i,o)}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandCallback()),t),v4PatchConnectionPromise:t=>((0,jn.isWrapped)(t.Connection.prototype.command)&&this._unwrap(t.Connection.prototype,"command"),this._wrap(t.Connection.prototype,"command",this._getV4PatchCommandPromise()),t),v4UnpatchConnection:t=>{t!==void 0&&this._unwrap(t.Connection.prototype,"command")}}}_getV3PatchOperation(t){let n=this;return r=>function(s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=n._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof a!="object")return typeof c=="function"?r.call(this,s,o,a,c):r.call(this,s,o,a,c,u);let p=n._getV3SpanAttributes(o,s,a[0],t),h=n._spanNameFromAttrs(p),m=n.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=n._patchEnd(m,f);return typeof c=="function"?r.call(this,s,o,a,g):r.call(this,s,o,a,c,g)}}_getV3PatchCommand(){let t=this;return n=>function(i,s,o,a,c){let u=Ki.trace.getSpan(Ki.context.active()),l=t._checkSkipInstrumentation(u),d=typeof a=="function"?a:c;if(l||typeof d!="function"||typeof o!="object")return typeof a=="function"?n.call(this,i,s,o,a):n.call(this,i,s,o,a,c);let f=e._getCommandType(o),p=f===r_.MongodbCommandType.UNKNOWN?void 0:f,h=t._getV3SpanAttributes(s,i,o,p),m=t._spanNameFromAttrs(h),g=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h}),y=t._patchEnd(g,d);return typeof a=="function"?n.call(this,i,s,o,y):n.call(this,i,s,o,a,y)}}_getV4PatchCommandCallback(){let t=this;return n=>function(i,s,o,a){let c=Ki.trace.getSpan(Ki.context.active()),u=t._checkSkipInstrumentation(c),l=a,d=Object.keys(s)[0];if(typeof s!="object"||s.ismaster||s.hello)return n.call(this,i,s,o,a);let f;if(!u){let h=t._getV4SpanAttributes(this,i,s,d),m=t._spanNameFromAttrs(h);f=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h})}let p=t._patchEnd(f,l,this.id,d);return n.call(this,i,s,o,p)}}_getV4PatchCommandPromise(){let t=this;return n=>function(...i){let[s,o]=i,a=Ki.trace.getSpan(Ki.context.active()),c=t._checkSkipInstrumentation(a),u=Object.keys(o)[0],l=()=>{};if(typeof o!="object"||o.ismaster||o.hello)return n.apply(this,i);let d;if(!c){let h=t._getV4SpanAttributes(this,s,o,u),m=t._spanNameFromAttrs(h);d=t.tracer.startSpan(m,{kind:Ki.SpanKind.CLIENT,attributes:h})}let f=t._patchEnd(d,l,this.id,u),p=n.apply(this,i);return p.then(h=>f(null,h),h=>f(h)),p}}_getV3PatchFind(){let t=this;return n=>function(i,s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=t._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function"||typeof o!="object")return typeof c=="function"?n.call(this,i,s,o,a,c):n.call(this,i,s,o,a,c,u);let p=t._getV3SpanAttributes(s,i,o,"find"),h=t._spanNameFromAttrs(p),m=t.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=t._patchEnd(m,f);return typeof c=="function"?n.call(this,i,s,o,a,g):n.call(this,i,s,o,a,c,g)}}_getV3PatchCursor(){let t=this;return n=>function(i,s,o,a,c,u){let l=Ki.trace.getSpan(Ki.context.active()),d=t._checkSkipInstrumentation(l),f=typeof c=="function"?c:u;if(d||typeof f!="function")return typeof c=="function"?n.call(this,i,s,o,a,c):n.call(this,i,s,o,a,c,u);let p=t._getV3SpanAttributes(s,i,o.cmd,"getMore"),h=t._spanNameFromAttrs(p),m=t.tracer.startSpan(h,{kind:Ki.SpanKind.CLIENT,attributes:p}),g=t._patchEnd(m,f);return typeof c=="function"?n.call(this,i,s,o,a,g):n.call(this,i,s,o,a,c,g)}}static _getCommandType(t){return t.createIndexes!==void 0?r_.MongodbCommandType.CREATE_INDEXES:t.findandmodify!==void 0?r_.MongodbCommandType.FIND_AND_MODIFY:t.ismaster!==void 0?r_.MongodbCommandType.IS_MASTER:t.count!==void 0?r_.MongodbCommandType.COUNT:t.aggregate!==void 0?r_.MongodbCommandType.AGGREGATE:r_.MongodbCommandType.UNKNOWN}_getV4SpanAttributes(t,n,r,i){let s,o;if(t){let c=typeof t.address=="string"?t.address.split(":"):"";c.length===2&&(s=c[0],o=c[1])}let a;return r?.documents&&r.documents[0]?a=r.documents[0]:r?.cursors?a=r.cursors:a=r,this._getSpanAttributes(n.db,n.collection,s,o,a,i)}_getV3SpanAttributes(t,n,r,i){let s,o;if(n&&n.s&&(s=n.s.options?.host??n.s.host,o=(n.s.options?.port??n.s.port)?.toString(),s==null||o==null)){let l=n.description?.address;if(l){let d=l.split(":");s=d[0],o=d[1]}}let[a,c]=t.toString().split("."),u=r?.query??r?.q??r;return this._getSpanAttributes(a,c,s,o,u,i)}_getSpanAttributes(t,n,r,i,s,o){let a={};if(this._dbSemconvStability&jn.SemconvStability.OLD&&(a[hl.ATTR_DB_SYSTEM]=hl.DB_SYSTEM_VALUE_MONGODB,a[hl.ATTR_DB_NAME]=t,a[hl.ATTR_DB_MONGODB_COLLECTION]=n,a[hl.ATTR_DB_OPERATION]=o,a[hl.ATTR_DB_CONNECTION_STRING]=`mongodb://${r}:${i}/${t}`),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Cm.ATTR_DB_SYSTEM_NAME]=hl.DB_SYSTEM_NAME_VALUE_MONGODB,a[Cm.ATTR_DB_NAMESPACE]=t,a[Cm.ATTR_DB_OPERATION_NAME]=o,a[Cm.ATTR_DB_COLLECTION_NAME]=n),r&&i){this._netSemconvStability&jn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_NAME]=r),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[Cm.ATTR_SERVER_ADDRESS]=r);let c=parseInt(i,10);isNaN(c)||(this._netSemconvStability&jn.SemconvStability.OLD&&(a[hl.ATTR_NET_PEER_PORT]=c),this._netSemconvStability&jn.SemconvStability.STABLE&&(a[Cm.ATTR_SERVER_PORT]=c))}if(s){let{dbStatementSerializer:c}=this.getConfig(),u=typeof c=="function"?c:this._defaultDbStatementSerializer.bind(this);(0,jn.safeExecuteInTheMiddle)(()=>{let l=u(s);this._dbSemconvStability&jn.SemconvStability.OLD&&(a[hl.ATTR_DB_STATEMENT]=l),this._dbSemconvStability&jn.SemconvStability.STABLE&&(a[Cm.ATTR_DB_QUERY_TEXT]=l)},l=>{l&&this._diag.error("Error running dbStatementSerializer hook",l)},!0)}return a}_spanNameFromAttrs(t){let n;return this._dbSemconvStability&jn.SemconvStability.STABLE?n=[t[Cm.ATTR_DB_OPERATION_NAME],t[Cm.ATTR_DB_COLLECTION_NAME]].filter(r=>r).join(" ")||hl.DB_SYSTEM_NAME_VALUE_MONGODB:n=`mongodb.${t[hl.ATTR_DB_OPERATION]||"command"}`,n}_getDefaultDbStatementReplacer(){let t=new WeakSet;return(n,r)=>typeof r!="object"||!r?"?":t.has(r)?"[Circular]":(t.add(r),r)}_defaultDbStatementSerializer(t){let{enhancedDatabaseReporting:n}=this.getConfig();return n?JSON.stringify(t):JSON.stringify(t,this._getDefaultDbStatementReplacer())}_handleExecutionResult(t,n){let{responseHook:r}=this.getConfig();typeof r=="function"&&(0,jn.safeExecuteInTheMiddle)(()=>{r(t,{data:n})},i=>{i&&this._diag.error("Error running response hook",i)},!0)}_patchEnd(t,n,r,i){let s=Ki.context.active(),o=this,a=!1;return function(...u){if(!a){a=!0;let l=u[0];if(t){if(l instanceof Error)t.setStatus({code:Ki.SpanStatusCode.ERROR,message:l.message});else{let d=u[1];o._handleExecutionResult(t,d)}t.end()}i==="endSessions"&&o._connCountAdd(-1,o._poolName,"idle")}return Ki.context.with(s,()=>n.apply(this,u))}}setPoolName(t){let n=t.hostAddress?.host,r=t.hostAddress?.port,i=t.dbName,s=`mongodb://${n}:${r}/${i}`;this._poolName=s}_checkSkipInstrumentation(t){return this.getConfig().requireParentSpan===!0&&t===void 0}};dz.MongoDBInstrumentation=fte});var Xze=w(oN=>{"use strict";Object.defineProperty(oN,"__esModule",{value:!0});oN.MongodbCommandType=void 0;var QQt;(function(e){e.CREATE_INDEXES="createIndexes",e.FIND_AND_MODIFY="findAndModify",e.IS_MASTER="isMaster",e.COUNT="count",e.UNKNOWN="unknown"})(QQt=oN.MongodbCommandType||(oN.MongodbCommandType={}))});var Qze=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.MongodbCommandType=ZA.MongoDBInstrumentation=void 0;var $Qt=Jze();Object.defineProperty(ZA,"MongoDBInstrumentation",{enumerable:!0,get:function(){return $Qt.MongoDBInstrumentation}});var e$t=Xze();Object.defineProperty(ZA,"MongodbCommandType",{enumerable:!0,get:function(){return e$t.MongodbCommandType}})});function t$t(e){let t=pte(e);return JSON.stringify(t)}function pte(e){if(Array.isArray(e))return e.map(t=>pte(t));if(n$t(e)){let t={};return Object.entries(e).map(([n,r])=>[n,pte(r)]).reduce((n,r)=>(i$t(r)&&(n[r[0]]=r[1]),n),t)}return"?"}function n$t(e){return typeof e=="object"&&e!==null&&!r$t(e)}function r$t(e){let t=!1;return typeof Buffer<"u"&&(t=Buffer.isBuffer(e)),t}function i$t(e){return Array.isArray(e)}var $ze,eGe,tGe,s$t,nGe,rGe=v(()=>{$ze=Re(Qze(),1);sr();eGe="Mongo",tGe=rt(eGe,()=>new $ze.MongoDBInstrumentation({dbStatementSerializer:t$t,responseHook(e){Dr(e,"auto.db.otel.mongo")}}));s$t=(()=>({name:eGe,setupOnce(){tGe()}})),nGe=s$t});var hte=w(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.DB_SYSTEM_NAME_VALUE_MONGODB=Ys.ATTR_NET_PEER_PORT=Ys.ATTR_NET_PEER_NAME=Ys.ATTR_DB_USER=Ys.ATTR_DB_SYSTEM=Ys.ATTR_DB_STATEMENT=Ys.ATTR_DB_OPERATION=Ys.ATTR_DB_NAME=Ys.ATTR_DB_MONGODB_COLLECTION=void 0;Ys.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection";Ys.ATTR_DB_NAME="db.name";Ys.ATTR_DB_OPERATION="db.operation";Ys.ATTR_DB_STATEMENT="db.statement";Ys.ATTR_DB_SYSTEM="db.system";Ys.ATTR_DB_USER="db.user";Ys.ATTR_NET_PEER_NAME="net.peer.name";Ys.ATTR_NET_PEER_PORT="net.peer.port";Ys.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb"});var oGe=w(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0});nS.handleCallbackResponse=nS.handlePromiseResponse=nS.getAttributesFromCollection=void 0;var iGe=(Ce(),ke(Ze)),cN=Jt(),aN=hte(),fz=(Pn(),ke(Mr));function o$t(e,t,n){let r={};return t&cN.SemconvStability.OLD&&(r[aN.ATTR_DB_MONGODB_COLLECTION]=e.name,r[aN.ATTR_DB_NAME]=e.conn.name,r[aN.ATTR_DB_USER]=e.conn.user),t&cN.SemconvStability.STABLE&&(r[fz.ATTR_DB_COLLECTION_NAME]=e.name,r[fz.ATTR_DB_NAMESPACE]=e.conn.name),n&cN.SemconvStability.OLD&&(r[aN.ATTR_NET_PEER_NAME]=e.conn.host,r[aN.ATTR_NET_PEER_PORT]=e.conn.port),n&cN.SemconvStability.STABLE&&(r[fz.ATTR_SERVER_ADDRESS]=e.conn.host,r[fz.ATTR_SERVER_PORT]=e.conn.port),r}nS.getAttributesFromCollection=o$t;function sGe(e,t={}){e.recordException(t),e.setStatus({code:iGe.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` +Mongoose Error Code: ${t.code}`:""}`})}function mte(e,t,n,r=void 0){n&&(0,cN.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:r,response:t}),i=>{i&&iGe.diag.error("mongoose instrumentation: responseHook error",i)},!0)}function a$t(e,t,n,r=void 0){return e instanceof Promise?e.then(i=>(mte(t,i,n,r),i)).catch(i=>{throw sGe(t,i),i}).finally(()=>t.end()):(mte(t,e,n,r),t.end(),e)}nS.handlePromiseResponse=a$t;function c$t(e,t,n,r,i,s,o=void 0){let a=0;return i.length===2?a=1:i.length===3&&(a=2),i[a]=(c,u)=>(c?sGe(r,c):mte(r,u,s,o),r.end(),e(c,u)),t.apply(n,i)}nS.handleCallbackResponse=c$t});var aGe=w(JA=>{"use strict";Object.defineProperty(JA,"__esModule",{value:!0});JA.PACKAGE_NAME=JA.PACKAGE_VERSION=void 0;JA.PACKAGE_VERSION="0.60.0";JA.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"});var fGe=w(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.MongooseInstrumentation=gu._ALREADY_INSTRUMENTED=gu._STORED_PARENT_SPAN=void 0;var Eo=(Ce(),ke(Ze)),u$t=fr(),gte=oGe(),fa=Jt(),cGe=aGe(),rS=hte(),i_=(Pn(),ke(Mr)),pz=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],l$t=["remove","count","findOneAndRemove",...pz],d$t=["count","findOneAndRemove",...pz],f$t=[...pz];function uGe(e){return e?e.startsWith("6.")||e.startsWith("5.")?l$t:e.startsWith("7.")?d$t:f$t:pz}function lGe(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function dGe(e){return!e||!e.startsWith("8.")?!1:parseInt(e.split(".")[1],10)>=21}gu._STORED_PARENT_SPAN=Symbol("stored-parent-span");gu._ALREADY_INSTRUMENTED=Symbol("already-instrumented");var yte=class extends fa.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(cGe.PACKAGE_NAME,cGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,fa.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,fa.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new fa.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(t,n){let r=t[Symbol.toStringTag]==="Module"?t.default:t;return this._wrap(r.Model.prototype,"save",this.patchOnModelMethods("save",n)),r.Model.prototype.$save=r.Model.prototype.save,lGe(n)&&this._wrap(r.Model.prototype,"remove",this.patchOnModelMethods("remove",n)),dGe(n)&&(this._wrap(r.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne",n)),this._wrap(r.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne",n))),this._wrap(r.Query.prototype,"exec",this.patchQueryExec(n)),this._wrap(r.Aggregate.prototype,"exec",this.patchAggregateExec(n)),uGe(n).forEach(s=>{this._wrap(r.Query.prototype,s,this.patchAndCaptureSpanContext(s))}),this._wrap(r.Model,"aggregate",this.patchModelAggregate()),this._wrap(r.Model,"insertMany",this.patchModelStatic("insertMany",n)),this._wrap(r.Model,"bulkWrite",this.patchModelStatic("bulkWrite",n)),r}unpatch(t,n){let r=t[Symbol.toStringTag]==="Module"?t.default:t,i=uGe(n);this._unwrap(r.Model.prototype,"save"),r.Model.prototype.$save=r.Model.prototype.save,lGe(n)&&this._unwrap(r.Model.prototype,"remove"),dGe(n)&&(this._unwrap(r.Model.prototype,"updateOne"),this._unwrap(r.Model.prototype,"deleteOne")),this._unwrap(r.Query.prototype,"exec"),this._unwrap(r.Aggregate.prototype,"exec"),i.forEach(s=>{this._unwrap(r.Query.prototype,s)}),this._unwrap(r.Model,"aggregate"),this._unwrap(r.Model,"insertMany"),this._unwrap(r.Model,"bulkWrite")}patchAggregateExec(t){let n=this;return r=>function(s){if(n.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return r.apply(this,arguments);let o=this[gu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c("aggregate",{options:this.options,aggregatePipeline:this._pipeline});n._dbSemconvStability&fa.SemconvStability.OLD&&(a[rS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[i_.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this._model.collection,this._model?.modelName,"aggregate",a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchQueryExec(t){let n=this;return r=>function(s){if(this[gu._ALREADY_INSTRUMENTED])return r.apply(this,arguments);if(n.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return r.apply(this,arguments);let o=this[gu._STORED_PARENT_SPAN],a={},{dbStatementSerializer:c}=n.getConfig();if(c){let l=c(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});n._dbSemconvStability&fa.SemconvStability.OLD&&(a[rS.ATTR_DB_STATEMENT]=l),n._dbSemconvStability&fa.SemconvStability.STABLE&&(a[i_.ATTR_DB_QUERY_TEXT]=l)}let u=n._startSpan(this.mongooseCollection,this.model.modelName,this.op,a,o);return n._handleResponse(u,r,this,arguments,s,t)}}patchOnModelMethods(t,n){let r=this;return i=>function(o,a){if(r.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return i.apply(this,arguments);let c={document:this};o&&!(o instanceof Function)&&(c.options=o);let u={},{dbStatementSerializer:l}=r.getConfig();if(l){let f=l(t,c);r._dbSemconvStability&fa.SemconvStability.OLD&&(u[rS.ATTR_DB_STATEMENT]=f),r._dbSemconvStability&fa.SemconvStability.STABLE&&(u[i_.ATTR_DB_QUERY_TEXT]=f)}let d=r._startSpan(this.constructor.collection,this.constructor.modelName,t,u);return o instanceof Function&&(a=o,o=void 0),r._handleResponse(d,i,this,arguments,a,n)}}_patchDocumentUpdateMethods(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return i.apply(this,arguments);let u=c,l=o,d=a;typeof o=="function"?(u=o,l=void 0,d=void 0):typeof a=="function"&&(u=a,d=void 0);let f={},p=r.getConfig().dbStatementSerializer;if(p){let g=p(t,{condition:{_id:this._id},updates:l,options:d});r._dbSemconvStability&fa.SemconvStability.OLD&&(f[rS.ATTR_DB_STATEMENT]=g),r._dbSemconvStability&fa.SemconvStability.STABLE&&(f[i_.ATTR_DB_QUERY_TEXT]=g)}let h=r._startSpan(this.constructor.collection,this.constructor.modelName,t,f),m=r._handleResponse(h,i,this,arguments,u,n);return m&&typeof m=="object"&&(m[gu._ALREADY_INSTRUMENTED]=!0),m}}patchModelStatic(t,n){let r=this;return i=>function(o,a,c){if(r.getConfig().requireParentSpan&&Eo.trace.getSpan(Eo.context.active())===void 0)return i.apply(this,arguments);typeof a=="function"&&(c=a,a=void 0);let u={};switch(t){case"insertMany":u.documents=o;break;case"bulkWrite":u.operations=o;break;default:u.document=o;break}a!==void 0&&(u.options=a);let l={},{dbStatementSerializer:d}=r.getConfig();if(d){let p=d(t,u);r._dbSemconvStability&fa.SemconvStability.OLD&&(l[rS.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&fa.SemconvStability.STABLE&&(l[i_.ATTR_DB_QUERY_TEXT]=p)}let f=r._startSpan(this.collection,this.modelName,t,l);return r._handleResponse(f,i,this,arguments,c,n)}}patchModelAggregate(){let t=this;return n=>function(){let i=Eo.trace.getSpan(Eo.context.active()),s=t._callOriginalFunction(()=>n.apply(this,arguments));return s&&(s[gu._STORED_PARENT_SPAN]=i),s}}patchAndCaptureSpanContext(t){let n=this;return r=>function(){return this[gu._STORED_PARENT_SPAN]=Eo.trace.getSpan(Eo.context.active()),n._callOriginalFunction(()=>r.apply(this,arguments))}}_startSpan(t,n,r,i,s){let o={...i,...(0,gte.getAttributesFromCollection)(t,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&fa.SemconvStability.OLD&&(o[rS.ATTR_DB_OPERATION]=r,o[rS.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&fa.SemconvStability.STABLE&&(o[i_.ATTR_DB_OPERATION_NAME]=r,o[i_.ATTR_DB_SYSTEM_NAME]=rS.DB_SYSTEM_NAME_VALUE_MONGODB);let a=this._dbSemconvStability&fa.SemconvStability.STABLE?`${r} ${t.name}`:`mongoose.${n}.${r}`;return this.tracer.startSpan(a,{kind:Eo.SpanKind.CLIENT,attributes:o},s?Eo.trace.setSpan(Eo.context.active(),s):void 0)}_handleResponse(t,n,r,i,s,o=void 0){let a=this;if(s instanceof Function)return a._callOriginalFunction(()=>(0,gte.handleCallbackResponse)(s,n,r,t,i,a.getConfig().responseHook,o));{let c=a._callOriginalFunction(()=>n.apply(r,i));return(0,gte.handlePromiseResponse)(c,t,a.getConfig().responseHook,o)}}_callOriginalFunction(t){return this.getConfig().suppressInternalInstrumentation?Eo.context.with((0,u$t.suppressTracing)(Eo.context.active()),t):t()}};gu.MongooseInstrumentation=yte});var pGe=w(hz=>{"use strict";Object.defineProperty(hz,"__esModule",{value:!0});hz.MongooseInstrumentation=void 0;var p$t=fGe();Object.defineProperty(hz,"MongooseInstrumentation",{enumerable:!0,get:function(){return p$t.MongooseInstrumentation}})});var hGe,mGe,gGe,h$t,yGe,SGe=v(()=>{hGe=Re(pGe(),1);sr();mGe="Mongoose",gGe=rt(mGe,()=>new hGe.MongooseInstrumentation({responseHook(e){Dr(e,"auto.db.otel.mongoose")}})),h$t=(()=>({name:mGe,setupOnce(){gGe()}})),yGe=h$t});var bGe=w(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.METRIC_DB_CLIENT_CONNECTIONS_USAGE=Zs.DB_SYSTEM_VALUE_MYSQL=Zs.ATTR_NET_PEER_PORT=Zs.ATTR_NET_PEER_NAME=Zs.ATTR_DB_USER=Zs.ATTR_DB_SYSTEM=Zs.ATTR_DB_STATEMENT=Zs.ATTR_DB_NAME=Zs.ATTR_DB_CONNECTION_STRING=void 0;Zs.ATTR_DB_CONNECTION_STRING="db.connection_string";Zs.ATTR_DB_NAME="db.name";Zs.ATTR_DB_STATEMENT="db.statement";Zs.ATTR_DB_SYSTEM="db.system";Zs.ATTR_DB_USER="db.user";Zs.ATTR_NET_PEER_NAME="net.peer.name";Zs.ATTR_NET_PEER_PORT="net.peer.port";Zs.DB_SYSTEM_VALUE_MYSQL="mysql";Zs.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"});var EGe=w(uN=>{"use strict";Object.defineProperty(uN,"__esModule",{value:!0});uN.AttributeNames=void 0;var m$t;(function(e){e.MYSQL_VALUES="db.mysql.values"})(m$t=uN.AttributeNames||(uN.AttributeNames={}))});var _Ge=w($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.getPoolNameOld=$a.arrayStringifyHelper=$a.getSpanName=$a.getDbValues=$a.getDbQueryText=$a.getJDBCString=$a.getConfig=void 0;function g$t(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}$a.getConfig=g$t;function y$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}$a.getJDBCString=y$t;function S$t(e){return typeof e=="string"?e:e.sql}$a.getDbQueryText=S$t;function b$t(e,t){return Ste(typeof e=="string"?t:t||e.values)}$a.getDbValues=b$t;function E$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}$a.getSpanName=E$t;function Ste(e){return e?`[${e.toString()}]`:""}$a.arrayStringifyHelper=Ste;function _$t(e){let t=e.config.connectionConfig,n="";return n+=t.host?`host: '${t.host}', `:"",n+=t.port?`port: ${t.port}, `:"",n+=t.database?`database: '${t.database}', `:"",n+=t.user?`user: '${t.user}'`:"",t.user||(n=n.substring(0,n.length-2)),n.trim()}$a.getPoolNameOld=_$t});var TGe=w(XA=>{"use strict";Object.defineProperty(XA,"__esModule",{value:!0});XA.PACKAGE_NAME=XA.PACKAGE_VERSION=void 0;XA.PACKAGE_VERSION="0.60.0";XA.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"});var RGe=w(mz=>{"use strict";Object.defineProperty(mz,"__esModule",{value:!0});mz.MySQLInstrumentation=void 0;var yu=(Ce(),ke(Ze)),nd=Jt(),QA=(Pn(),ke(Mr)),Mm=bGe(),T$t=EGe(),s_=_Ge(),vGe=TGe(),bte=class extends nd.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(vGe.PACKAGE_NAME,vGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,nd.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,nd.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(Mm.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(t,n,r){this._connectionsUsageOld?.add(t,{state:r,name:n})}init(){return[new nd.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],t=>((0,nd.isWrapped)(t.createConnection)&&this._unwrap(t,"createConnection"),this._wrap(t,"createConnection",this._patchCreateConnection()),(0,nd.isWrapped)(t.createPool)&&this._unwrap(t,"createPool"),this._wrap(t,"createPool",this._patchCreatePool()),(0,nd.isWrapped)(t.createPoolCluster)&&this._unwrap(t,"createPoolCluster"),this._wrap(t,"createPoolCluster",this._patchCreatePoolCluster()),t),t=>{t!==void 0&&(this._unwrap(t,"createConnection"),this._unwrap(t,"createPool"),this._unwrap(t,"createPoolCluster"))})]}_patchCreateConnection(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),s}}}_patchCreatePool(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"query",n._patchQuery(s)),n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"end",n._patchPoolEnd(s)),n._setPoolCallbacks(s,""),s}}}_patchPoolEnd(t){return n=>{let r=this;return function(s){let o=t._allConnections.length,a=t._freeConnections.length,c=o-a,u=(0,s_.getPoolNameOld)(t);r._connCountAdd(-c,u,"used"),r._connCountAdd(-a,u,"idle"),n.apply(t,arguments)}}}_patchCreatePoolCluster(){return t=>{let n=this;return function(i){let s=t(...arguments);return n._wrap(s,"getConnection",n._patchGetConnection(s)),n._wrap(s,"add",n._patchAdd(s)),s}}}_patchAdd(t){return n=>{let r=this;return function(s,o){if(!r._enabled)return r._unwrap(t,"add"),n.apply(t,arguments);n.apply(t,arguments);let a=t._nodes;if(a){let c=typeof s=="object"?"CLUSTER::"+t._lastId:String(s),u=a[c].pool;r._setPoolCallbacks(u,s)}}}}_patchGetConnection(t){return n=>{let r=this;return function(s,o,a){if(!r._enabled)return r._unwrap(t,"getConnection"),n.apply(t,arguments);if(arguments.length===1&&typeof s=="function"){let c=r._getConnectionCallbackPatchFn(s);return n.call(t,c)}if(arguments.length===2&&typeof o=="function"){let c=r._getConnectionCallbackPatchFn(o);return n.call(t,s,c)}if(arguments.length===3&&typeof a=="function"){let c=r._getConnectionCallbackPatchFn(a);return n.call(t,s,o,c)}return n.apply(t,arguments)}}}_getConnectionCallbackPatchFn(t){let n=this,r=yu.context.active();return function(i,s){s&&((0,nd.isWrapped)(s.query)||n._wrap(s,"query",n._patchQuery(s))),typeof t=="function"&&yu.context.with(r,t,this,i,s)}}_patchQuery(t){return n=>{let r=this;return function(i,s,o){if(!r._enabled)return r._unwrap(t,"query"),n.apply(t,arguments);let a={},{host:c,port:u,database:l,user:d}=(0,s_.getConfig)(t.config),f=parseInt(u,10),p=(0,s_.getDbQueryText)(i);r._dbSemconvStability&nd.SemconvStability.OLD&&(a[Mm.ATTR_DB_SYSTEM]=Mm.DB_SYSTEM_VALUE_MYSQL,a[Mm.ATTR_DB_CONNECTION_STRING]=(0,s_.getJDBCString)(c,u,l),a[Mm.ATTR_DB_NAME]=l,a[Mm.ATTR_DB_USER]=d,a[Mm.ATTR_DB_STATEMENT]=p),r._dbSemconvStability&nd.SemconvStability.STABLE&&(a[QA.ATTR_DB_SYSTEM_NAME]=QA.DB_SYSTEM_NAME_VALUE_MYSQL,a[QA.ATTR_DB_NAMESPACE]=l,a[QA.ATTR_DB_QUERY_TEXT]=p),r._netSemconvStability&nd.SemconvStability.OLD&&(a[Mm.ATTR_NET_PEER_NAME]=c,isNaN(f)||(a[Mm.ATTR_NET_PEER_PORT]=f)),r._netSemconvStability&nd.SemconvStability.STABLE&&(a[QA.ATTR_SERVER_ADDRESS]=c,isNaN(f)||(a[QA.ATTR_SERVER_PORT]=f));let h=r.tracer.startSpan((0,s_.getSpanName)(i),{kind:yu.SpanKind.CLIENT,attributes:a});if(r.getConfig().enhancedDatabaseReporting){let y;Array.isArray(s)?y=s:arguments[2]&&(y=[s]),h.setAttribute(T$t.AttributeNames.MYSQL_VALUES,(0,s_.getDbValues)(i,y))}let m=Array.from(arguments).findIndex(y=>typeof y=="function"),g=yu.context.active();if(m===-1){let y=yu.context.with(yu.trace.setSpan(yu.context.active(),h),()=>n.apply(t,arguments));return yu.context.bind(g,y),y.on("error",b=>h.setStatus({code:yu.SpanStatusCode.ERROR,message:b.message})).on("end",()=>{h.end()})}else return r._wrap(arguments,m,r._patchCallbackQuery(h,g)),yu.context.with(yu.trace.setSpan(yu.context.active(),h),()=>n.apply(t,arguments))}}}_patchCallbackQuery(t,n){return r=>function(i,s,o){return i&&t.setStatus({code:yu.SpanStatusCode.ERROR,message:i.message}),t.end(),yu.context.with(n,()=>r(...arguments))}}_setPoolCallbacks(t,n){let r=n||(0,s_.getPoolNameOld)(t);t.on("connection",i=>{this._connCountAdd(1,r,"idle")}),t.on("acquire",i=>{this._connCountAdd(-1,r,"idle"),this._connCountAdd(1,r,"used")}),t.on("release",i=>{this._connCountAdd(1,r,"idle"),this._connCountAdd(-1,r,"used")})}};mz.MySQLInstrumentation=bte});var AGe=w(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});gz.MySQLInstrumentation=void 0;var v$t=RGe();Object.defineProperty(gz,"MySQLInstrumentation",{enumerable:!0,get:function(){return v$t.MySQLInstrumentation}})});var wGe,kGe,IGe,R$t,xGe,OGe=v(()=>{wGe=Re(AGe(),1);sr();kGe="Mysql",IGe=rt(kGe,()=>new wGe.MySQLInstrumentation({})),R$t=(()=>({name:kGe,setupOnce(){IGe()}})),xGe=R$t});var Ete=w(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.DB_SYSTEM_VALUE_MYSQL=qo.ATTR_NET_PEER_PORT=qo.ATTR_NET_PEER_NAME=qo.ATTR_DB_USER=qo.ATTR_DB_SYSTEM=qo.ATTR_DB_STATEMENT=qo.ATTR_DB_NAME=qo.ATTR_DB_CONNECTION_STRING=void 0;qo.ATTR_DB_CONNECTION_STRING="db.connection_string";qo.ATTR_DB_NAME="db.name";qo.ATTR_DB_STATEMENT="db.statement";qo.ATTR_DB_SYSTEM="db.system";qo.ATTR_DB_USER="db.user";qo.ATTR_NET_PEER_NAME="net.peer.name";qo.ATTR_NET_PEER_PORT="net.peer.port";qo.DB_SYSTEM_VALUE_MYSQL="mysql"});var Tte=w(yz=>{"use strict";Object.defineProperty(yz,"__esModule",{value:!0});yz.addSqlCommenterComment=void 0;var _te=(Ce(),ke(Ze)),A$t=fr();function w$t(e){let t=e.indexOf("--");if(t>=0)return!0;if(e.indexOf("/*")<0)return!1;let r=e.indexOf("*/");return t`%${t.charCodeAt(0).toString(16).toUpperCase()}`)}function I$t(e,t){if(typeof t!="string"||t.length===0||w$t(t))return t;let n=new A$t.W3CTraceContextPropagator,r={};n.inject(_te.trace.setSpan(_te.ROOT_CONTEXT,e),r,_te.defaultTextMapSetter);let i=Object.keys(r).sort();if(i.length===0)return t;let s=i.map(o=>{let a=k$t(r[o]);return`${o}='${a}'`}).join(",");return`${t} /*${s}*/`}yz.addSqlCommenterComment=I$t});var PGe=w(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.getConnectionPrototypeToInstrument=rd.once=rd.getSpanName=rd.getQueryText=rd.getConnectionAttributes=void 0;var lN=Ete(),Sz=Jt(),vte=(Pn(),ke(Mr));function x$t(e,t,n){let{host:r,port:i,database:s,user:o}=O$t(e),a={};t&Sz.SemconvStability.OLD&&(a[lN.ATTR_DB_CONNECTION_STRING]=P$t(r,i,s),a[lN.ATTR_DB_NAME]=s,a[lN.ATTR_DB_USER]=o),t&Sz.SemconvStability.STABLE&&(a[vte.ATTR_DB_NAMESPACE]=s);let c=parseInt(i,10);return n&Sz.SemconvStability.OLD&&(a[lN.ATTR_NET_PEER_NAME]=r,isNaN(c)||(a[lN.ATTR_NET_PEER_PORT]=c)),n&Sz.SemconvStability.STABLE&&(a[vte.ATTR_SERVER_ADDRESS]=r,isNaN(c)||(a[vte.ATTR_SERVER_PORT]=c)),a}rd.getConnectionAttributes=x$t;function O$t(e){let{host:t,port:n,database:r,user:i}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:i}}function P$t(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return typeof t=="number"&&(r+=`:${t}`),typeof n=="string"&&(r+=`/${n}`),r}function N$t(e,t,n,r=!1,i=C$t){let[s,o]=typeof e=="string"?[e,n]:[e.sql,M$t(e)?n||e.values:n];try{return r?i(s):t&&o?t(s,o):s}catch{return"Could not determine the query due to an error in masking or formatting"}}rd.getQueryText=N$t;function C$t(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}function M$t(e){return"values"in e}function D$t(e){let t=typeof e=="object"?e.sql:e,n=t?.indexOf(" ");return typeof n=="number"&&n!==-1?t?.substring(0,n):t}rd.getSpanName=D$t;var L$t=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};rd.once=L$t;function U$t(e){let t=e.prototype,n=Object.getPrototypeOf(t);return typeof n?.query=="function"&&typeof n?.execute=="function"?n:t}rd.getConnectionPrototypeToInstrument=U$t});var NGe=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.PACKAGE_NAME=$A.PACKAGE_VERSION=void 0;$A.PACKAGE_VERSION="0.60.0";$A.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"});var LGe=w(bz=>{"use strict";Object.defineProperty(bz,"__esModule",{value:!0});bz.MySQL2Instrumentation=void 0;var CGe=(Ce(),ke(Ze)),mf=Jt(),Rte=Ete(),MGe=Tte(),ew=PGe(),DGe=NGe(),Ate=(Pn(),ke(Mr)),wte=[">=1.4.2 <4"],kte=class extends mf.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(DGe.PACKAGE_NAME,DGe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,mf.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,mf.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let t;function n(s){!t&&s.format&&(t=s.format)}let r=s=>{(0,mf.isWrapped)(s.query)&&this._unwrap(s,"query"),this._wrap(s,"query",this._patchQuery(t,!1)),(0,mf.isWrapped)(s.execute)&&this._unwrap(s,"execute"),this._wrap(s,"execute",this._patchQuery(t,!0))},i=s=>{this._unwrap(s,"query"),this._unwrap(s,"execute")};return[new mf.InstrumentationNodeModuleDefinition("mysql2",wte,s=>(n(s),s),()=>{},[new mf.InstrumentationNodeModuleFile("mysql2/promise.js",wte,s=>(n(s),s),()=>{}),new mf.InstrumentationNodeModuleFile("mysql2/lib/connection.js",wte,s=>{let o=(0,ew.getConnectionPrototypeToInstrument)(s);return r(o),s},s=>{if(s===void 0)return;let o=(0,ew.getConnectionPrototypeToInstrument)(s);i(o)})])]}_patchQuery(t,n){return r=>{let i=this;return function(s,o,a){let c;Array.isArray(o)?c=o:arguments[2]&&(c=[o]);let{maskStatement:u,maskStatementHook:l,responseHook:d}=i.getConfig(),f=(0,ew.getConnectionAttributes)(this.config,i._dbSemconvStability,i._netSemconvStability),p=(0,ew.getQueryText)(s,t,c,u,l);i._dbSemconvStability&mf.SemconvStability.OLD&&(f[Rte.ATTR_DB_SYSTEM]=Rte.DB_SYSTEM_VALUE_MYSQL,f[Rte.ATTR_DB_STATEMENT]=p),i._dbSemconvStability&mf.SemconvStability.STABLE&&(f[Ate.ATTR_DB_SYSTEM_NAME]=Ate.DB_SYSTEM_NAME_VALUE_MYSQL,f[Ate.ATTR_DB_QUERY_TEXT]=p);let h=i.tracer.startSpan((0,ew.getSpanName)(s),{kind:CGe.SpanKind.CLIENT,attributes:f});!n&&i.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=s=typeof s=="string"?(0,MGe.addSqlCommenterComment)(h,s):Object.assign(s,{sql:(0,MGe.addSqlCommenterComment)(h,s.sql)}));let m=(0,ew.once)((g,y)=>{g?h.setStatus({code:CGe.SpanStatusCode.ERROR,message:g.message}):typeof d=="function"&&(0,mf.safeExecuteInTheMiddle)(()=>{d(h,{queryResults:y})},b=>{b&&i._diag.warn("Failed executing responseHook",b)},!0),h.end()});if(arguments.length===1){typeof s.onResult=="function"&&i._wrap(s,"onResult",i._patchCallbackQuery(m));let g=r.apply(this,arguments);return g.once("error",y=>{m(y)}).once("result",y=>{m(void 0,y)}),g}return typeof arguments[1]=="function"?i._wrap(arguments,1,i._patchCallbackQuery(m)):typeof arguments[2]=="function"&&i._wrap(arguments,2,i._patchCallbackQuery(m)),r.apply(this,arguments)}}}_patchCallbackQuery(t){return n=>function(r,i,s){return t(r,i),n(...arguments)}}};bz.MySQL2Instrumentation=kte});var UGe=w(Ez=>{"use strict";Object.defineProperty(Ez,"__esModule",{value:!0});Ez.MySQL2Instrumentation=void 0;var F$t=LGe();Object.defineProperty(Ez,"MySQL2Instrumentation",{enumerable:!0,get:function(){return F$t.MySQL2Instrumentation}})});var FGe,jGe,HGe,j$t,qGe,BGe=v(()=>{FGe=Re(UGe(),1);sr();jGe="Mysql2",HGe=rt(jGe,()=>new FGe.MySQL2Instrumentation({responseHook(e){Dr(e,"auto.db.otel.mysql2")}})),j$t=(()=>({name:jGe,setupOnce(){HGe()}})),qGe=j$t});var zGe=w(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});ec.DB_SYSTEM_VALUE_REDIS=ec.DB_SYSTEM_NAME_VALUE_REDIS=ec.ATTR_NET_PEER_PORT=ec.ATTR_NET_PEER_NAME=ec.ATTR_DB_SYSTEM=ec.ATTR_DB_STATEMENT=ec.ATTR_DB_CONNECTION_STRING=void 0;ec.ATTR_DB_CONNECTION_STRING="db.connection_string";ec.ATTR_DB_STATEMENT="db.statement";ec.ATTR_DB_SYSTEM="db.system";ec.ATTR_NET_PEER_NAME="net.peer.name";ec.ATTR_NET_PEER_PORT="net.peer.port";ec.DB_SYSTEM_NAME_VALUE_REDIS="redis";ec.DB_SYSTEM_VALUE_REDIS="redis"});var GGe=w(_z=>{"use strict";Object.defineProperty(_z,"__esModule",{value:!0});_z.endSpan=void 0;var H$t=(Ce(),ke(Ze)),q$t=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:H$t.SpanStatusCode.ERROR,message:t.message})),e.end()};_z.endSpan=q$t});var vz=w(Tz=>{"use strict";Object.defineProperty(Tz,"__esModule",{value:!0});Tz.defaultDbStatementSerializer=void 0;var B$t=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}],z$t=(e,t)=>{if(Array.isArray(t)&&t.length){let n=B$t.find(({regex:i})=>i.test(e))?.args??0,r=n>=0?t.slice(0,n):t;return t.length>r.length&&r.push(`[${t.length-n} other arguments]`),`${e} ${r.join(" ")}`}return e};Tz.defaultDbStatementSerializer=z$t});var VGe=w(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.PACKAGE_NAME=tw.PACKAGE_VERSION=void 0;tw.PACKAGE_VERSION="0.62.0";tw.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"});var ZGe=w(Rz=>{"use strict";Object.defineProperty(Rz,"__esModule",{value:!0});Rz.IORedisInstrumentation=void 0;var iS=(Ce(),ke(Ze)),Su=Jt(),sS=(Pn(),ke(Mr)),bu=zGe(),WGe=Jt(),dN=GGe(),G$t=vz(),KGe=VGe(),YGe={requireParentSpan:!0},Ite=class extends Su.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(t={}){super(KGe.PACKAGE_NAME,KGe.PACKAGE_VERSION,{...YGe,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,Su.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,Su.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...YGe,...t})}init(){return[new Su.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(t,n)=>{let r=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,Su.isWrapped)(r.prototype.sendCommand)&&this._unwrap(r.prototype,"sendCommand"),this._wrap(r.prototype,"sendCommand",this._patchSendCommand(n)),(0,Su.isWrapped)(r.prototype.connect)&&this._unwrap(r.prototype,"connect"),this._wrap(r.prototype,"connect",this._patchConnection()),t},t=>{if(t===void 0)return;let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._unwrap(n.prototype,"sendCommand"),this._unwrap(n.prototype,"connect")})]}_patchSendCommand(t){return n=>this._traceSendCommand(n,t)}_patchConnection(){return t=>this._traceConnection(t)}_traceSendCommand(t,n){let r=this;return function(i){if(arguments.length<1||typeof i!="object")return t.apply(this,arguments);let s=r.getConfig(),o=s.dbStatementSerializer||G$t.defaultDbStatementSerializer,a=iS.trace.getSpan(iS.context.active())===void 0;if(s.requireParentSpan===!0&&a)return t.apply(this,arguments);let c={},{host:u,port:l}=this.options,d=o(i.name,i.args);r._dbSemconvStability&Su.SemconvStability.OLD&&(c[bu.ATTR_DB_SYSTEM]=bu.DB_SYSTEM_VALUE_REDIS,c[bu.ATTR_DB_STATEMENT]=d,c[bu.ATTR_DB_CONNECTION_STRING]=`redis://${u}:${l}`),r._dbSemconvStability&Su.SemconvStability.STABLE&&(c[sS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,c[sS.ATTR_DB_QUERY_TEXT]=d),r._netSemconvStability&Su.SemconvStability.OLD&&(c[bu.ATTR_NET_PEER_NAME]=u,c[bu.ATTR_NET_PEER_PORT]=l),r._netSemconvStability&Su.SemconvStability.STABLE&&(c[sS.ATTR_SERVER_ADDRESS]=u,c[sS.ATTR_SERVER_PORT]=l);let f=r.tracer.startSpan(i.name,{kind:iS.SpanKind.CLIENT,attributes:c}),{requestHook:p}=s;p&&(0,WGe.safeExecuteInTheMiddle)(()=>p(f,{moduleVersion:n,cmdName:i.name,cmdArgs:i.args}),h=>{h&&iS.diag.error("ioredis instrumentation: request hook failed",h)},!0);try{let h=t.apply(this,arguments),m=i.resolve;i.resolve=function(y){(0,WGe.safeExecuteInTheMiddle)(()=>s.responseHook?.(f,i.name,i.args,y),b=>{b&&iS.diag.error("ioredis instrumentation: response hook failed",b)},!0),(0,dN.endSpan)(f,null),m(y)};let g=i.reject;return i.reject=function(y){(0,dN.endSpan)(f,y),g(y)},h}catch(h){throw(0,dN.endSpan)(f,h),h}}}_traceConnection(t){let n=this;return function(){let r=iS.trace.getSpan(iS.context.active())===void 0;if(n.getConfig().requireParentSpan===!0&&r)return t.apply(this,arguments);let i={},{host:s,port:o}=this.options;n._dbSemconvStability&Su.SemconvStability.OLD&&(i[bu.ATTR_DB_SYSTEM]=bu.DB_SYSTEM_VALUE_REDIS,i[bu.ATTR_DB_STATEMENT]="connect",i[bu.ATTR_DB_CONNECTION_STRING]=`redis://${s}:${o}`),n._dbSemconvStability&Su.SemconvStability.STABLE&&(i[sS.ATTR_DB_SYSTEM_NAME]=bu.DB_SYSTEM_NAME_VALUE_REDIS,i[sS.ATTR_DB_QUERY_TEXT]="connect"),n._netSemconvStability&Su.SemconvStability.OLD&&(i[bu.ATTR_NET_PEER_NAME]=s,i[bu.ATTR_NET_PEER_PORT]=o),n._netSemconvStability&Su.SemconvStability.STABLE&&(i[sS.ATTR_SERVER_ADDRESS]=s,i[sS.ATTR_SERVER_PORT]=o);let a=n.tracer.startSpan("connect",{kind:iS.SpanKind.CLIENT,attributes:i});try{let c=t.apply(this,arguments);return(0,dN.endSpan)(a,null),c}catch(c){throw(0,dN.endSpan)(a,c),c}}}};Rz.IORedisInstrumentation=Ite});var JGe=w(Az=>{"use strict";Object.defineProperty(Az,"__esModule",{value:!0});Az.IORedisInstrumentation=void 0;var V$t=ZGe();Object.defineProperty(Az,"IORedisInstrumentation",{enumerable:!0,get:function(){return V$t.IORedisInstrumentation}})});var wz=w(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.PACKAGE_NAME=nw.PACKAGE_VERSION=void 0;nw.PACKAGE_VERSION="0.62.0";nw.PACKAGE_NAME="@opentelemetry/instrumentation-redis"});var XGe=w(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0});oS.getTracedCreateStreamTrace=oS.getTracedCreateClient=oS.endSpan=void 0;var fN=(Ce(),ke(Ze)),W$t=(e,t)=>{t&&e.setStatus({code:fN.SpanStatusCode.ERROR,message:t.message}),e.end()};oS.endSpan=W$t;var K$t=e=>function(){let n=e.apply(this,arguments);return fN.context.bind(fN.context.active(),n)};oS.getTracedCreateClient=K$t;var Y$t=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(n){fN.context.bind(fN.context.active(),n),this._patched_redis_stream=n}}),e.apply(this,arguments)};oS.getTracedCreateStreamTrace=Y$t});var kz=w(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});tc.DB_SYSTEM_VALUE_REDIS=tc.DB_SYSTEM_NAME_VALUE_REDIS=tc.ATTR_NET_PEER_PORT=tc.ATTR_NET_PEER_NAME=tc.ATTR_DB_SYSTEM=tc.ATTR_DB_STATEMENT=tc.ATTR_DB_CONNECTION_STRING=void 0;tc.ATTR_DB_CONNECTION_STRING="db.connection_string";tc.ATTR_DB_STATEMENT="db.statement";tc.ATTR_DB_SYSTEM="db.system";tc.ATTR_NET_PEER_NAME="net.peer.name";tc.ATTR_NET_PEER_PORT="net.peer.port";tc.DB_SYSTEM_NAME_VALUE_REDIS="redis";tc.DB_SYSTEM_VALUE_REDIS="redis"});var $Ge=w(xz=>{"use strict";Object.defineProperty(xz,"__esModule",{value:!0});xz.RedisInstrumentationV2_V3=void 0;var ml=Jt(),Iz=XGe(),QGe=wz(),pN=(Ce(),ke(Ze)),hN=(Pn(),ke(Mr)),o_=kz(),Z$t=vz(),xte=class e extends ml.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(QGe.PACKAGE_NAME,QGe.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,ml.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,ml.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new ml.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],t=>((0,ml.isWrapped)(t.RedisClient.prototype.internal_send_command)&&this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._wrap(t.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,ml.isWrapped)(t.RedisClient.prototype.create_stream)&&this._unwrap(t.RedisClient.prototype,"create_stream"),this._wrap(t.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,ml.isWrapped)(t.createClient)&&this._unwrap(t,"createClient"),this._wrap(t,"createClient",this._getPatchCreateClient()),t),t=>{t!==void 0&&(this._unwrap(t.RedisClient.prototype,"internal_send_command"),this._unwrap(t.RedisClient.prototype,"create_stream"),this._unwrap(t,"createClient"))})]}_getPatchInternalSendCommand(){let t=this;return function(r){return function(s){if(arguments.length!==1||typeof s!="object")return r.apply(this,arguments);let o=t.getConfig(),a=pN.trace.getSpan(pN.context.active())===void 0;if(o.requireParentSpan===!0&&a)return r.apply(this,arguments);let c=o?.dbStatementSerializer||Z$t.defaultDbStatementSerializer,u={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(u,{[o_.ATTR_DB_SYSTEM]:o_.DB_SYSTEM_VALUE_REDIS,[o_.ATTR_DB_STATEMENT]:c(s.command,s.args)}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(u,{[hN.ATTR_DB_SYSTEM_NAME]:o_.DB_SYSTEM_NAME_VALUE_REDIS,[hN.ATTR_DB_OPERATION_NAME]:s.command,[hN.ATTR_DB_QUERY_TEXT]:c(s.command,s.args)});let l=t.tracer.startSpan(`${e.COMPONENT}-${s.command}`,{kind:pN.SpanKind.CLIENT,attributes:u});if(this.connection_options){let f={};t._semconvStability&ml.SemconvStability.OLD&&Object.assign(f,{[o_.ATTR_NET_PEER_NAME]:this.connection_options.host,[o_.ATTR_NET_PEER_PORT]:this.connection_options.port}),t._semconvStability&ml.SemconvStability.STABLE&&Object.assign(f,{[hN.ATTR_SERVER_ADDRESS]:this.connection_options.host,[hN.ATTR_SERVER_PORT]:this.connection_options.port}),l.setAttributes(f)}this.address&&t._semconvStability&ml.SemconvStability.OLD&&l.setAttribute(o_.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let d=arguments[0].callback;if(d){let f=pN.context.active();arguments[0].callback=function(h,m){if(o?.responseHook){let g=o.responseHook;(0,ml.safeExecuteInTheMiddle)(()=>{g(l,s.command,s.args,m)},y=>{y&&t._diag.error("Error executing responseHook",y)},!0)}return(0,Iz.endSpan)(l,h),pN.context.with(f,d,this,...arguments)}}try{return r.apply(this,arguments)}catch(f){throw(0,Iz.endSpan)(l,f),f}}}}_getPatchCreateClient(){return function(n){return(0,Iz.getTracedCreateClient)(n)}}_getPatchCreateStream(){return function(n){return(0,Iz.getTracedCreateStreamTrace)(n)}}};xz.RedisInstrumentationV2_V3=xte});var t2e=w(Oz=>{"use strict";Object.defineProperty(Oz,"__esModule",{value:!0});Oz.getClientAttributes=void 0;var Ote=(Pn(),ke(Mr)),rw=kz(),e2e=Jt();function J$t(e,t,n){let r={};return n&e2e.SemconvStability.OLD&&Object.assign(r,{[rw.ATTR_DB_SYSTEM]:rw.DB_SYSTEM_VALUE_REDIS,[rw.ATTR_NET_PEER_NAME]:t?.socket?.host,[rw.ATTR_NET_PEER_PORT]:t?.socket?.port,[rw.ATTR_DB_CONNECTION_STRING]:X$t(e,t?.url)}),n&e2e.SemconvStability.STABLE&&Object.assign(r,{[Ote.ATTR_DB_SYSTEM_NAME]:rw.DB_SYSTEM_NAME_VALUE_REDIS,[Ote.ATTR_SERVER_ADDRESS]:t?.socket?.host,[Ote.ATTR_SERVER_PORT]:t?.socket?.port}),r}Oz.getClientAttributes=J$t;function X$t(e,t){if(!(typeof t!="string"||!t))try{let n=new URL(t);return n.searchParams.delete("user_pwd"),n.username="",n.password="",n.href}catch(n){e.error("failed to sanitize redis connection url",n)}}});var s2e=w(Pz=>{"use strict";Object.defineProperty(Pz,"__esModule",{value:!0});Pz.RedisInstrumentationV4_V5=void 0;var id=(Ce(),ke(Ze)),pi=Jt(),n2e=t2e(),Q$t=vz(),r2e=wz(),Pte=(Pn(),ke(Mr)),$$t=kz(),mN=Symbol("opentelemetry.instrumentation.redis.open_spans"),i2e=Symbol("opentelemetry.instrumentation.redis.multi_command_options"),Nte=class e extends pi.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(t={}){super(r2e.PACKAGE_NAME,r2e.PACKAGE_VERSION,t),this._semconvStability=t.semconvStability?t.semconvStability:(0,pi.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig(t),this._semconvStability=t.semconvStability?t.semconvStability:(0,pi.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(t){let n=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/commander.js`,["^1.0.0"],(s,o)=>{let a=s.transformCommandArguments;if(!a)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),s;let c=o?.startsWith("1.0.")?"extendWithCommands":"attachCommands";return(0,pi.isWrapped)(s?.[c])&&this._unwrap(s,c),this._wrap(s,c,this._getPatchExtendWithCommands(a)),s},s=>{(0,pi.isWrapped)(s?.extendWithCommands)&&this._unwrap(s,"extendWithCommands"),(0,pi.isWrapped)(s?.attachCommands)&&this._unwrap(s,"attachCommands")}),r=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/client/multi-command.js`,["^1.0.0","^5.0.0"],s=>{let o=s?.default?.prototype;return(0,pi.isWrapped)(o?.exec)&&this._unwrap(o,"exec"),this._wrap(o,"exec",this._getPatchMultiCommandsExec(!1)),(0,pi.isWrapped)(o?.execAsPipeline)&&this._unwrap(o,"execAsPipeline"),this._wrap(o,"execAsPipeline",this._getPatchMultiCommandsExec(!0)),(0,pi.isWrapped)(o?.addCommand)&&this._unwrap(o,"addCommand"),this._wrap(o,"addCommand",this._getPatchMultiCommandsAddCommand()),s},s=>{let o=s?.default?.prototype;(0,pi.isWrapped)(o?.exec)&&this._unwrap(o,"exec"),(0,pi.isWrapped)(o?.addCommand)&&this._unwrap(o,"addCommand")}),i=new pi.InstrumentationNodeModuleFile(`${t}/dist/lib/client/index.js`,["^1.0.0","^5.0.0"],s=>{let o=s?.default?.prototype;return o?.multi&&((0,pi.isWrapped)(o?.multi)&&this._unwrap(o,"multi"),this._wrap(o,"multi",this._getPatchRedisClientMulti())),o?.MULTI&&((0,pi.isWrapped)(o?.MULTI)&&this._unwrap(o,"MULTI"),this._wrap(o,"MULTI",this._getPatchRedisClientMulti())),(0,pi.isWrapped)(o?.sendCommand)&&this._unwrap(o,"sendCommand"),this._wrap(o,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(o,"connect",this._getPatchedClientConnect()),s},s=>{let o=s?.default?.prototype;(0,pi.isWrapped)(o?.multi)&&this._unwrap(o,"multi"),(0,pi.isWrapped)(o?.MULTI)&&this._unwrap(o,"MULTI"),(0,pi.isWrapped)(o?.sendCommand)&&this._unwrap(o,"sendCommand")});return new pi.InstrumentationNodeModuleDefinition(t,["^1.0.0","^5.0.0"],s=>s,()=>{},[n,r,i])}_getPatchExtendWithCommands(t){let n=this;return function(i){return function(o){if(o?.BaseClass?.name!=="RedisClient")return i.apply(this,arguments);let a=o.executor;return o.executor=function(c,u){let l=t(c,u).args;return n._traceClientCommand(a,this,arguments,l)},i.apply(this,arguments)}}}_getPatchMultiCommandsExec(t){let n=this;return function(i){return function(){let o=i.apply(this,arguments);return typeof o?.then!="function"?(n._diag.error("non-promise result when patching exec/execAsPipeline"),o):o.then(a=>{let c=this[mN];return n._endSpansWithRedisReplies(c,a,t),a}).catch(a=>{let c=this[mN];if(!c)n._diag.error("cannot find open spans to end for multi/pipeline");else{let u=a.constructor.name==="MultiErrorReply"?a.replies:new Array(c.length).fill(a);n._endSpansWithRedisReplies(c,u,t)}return Promise.reject(a)})}}}_getPatchMultiCommandsAddCommand(){let t=this;return function(r){return function(s){return t._traceClientCommand(r,this,arguments,s)}}}_getPatchRedisClientMulti(){return function(n){return function(){let i=n.apply(this,arguments);return i[i2e]=this.options,i}}}_getPatchRedisClientSendCommand(){let t=this;return function(r){return function(s){return t._traceClientCommand(r,this,arguments,s)}}}_getPatchedClientConnect(){let t=this;return function(r){return function(){let s=this.options,o=(0,n2e.getClientAttributes)(t._diag,s,t._semconvStability),a=t.tracer.startSpan(`${e.COMPONENT}-connect`,{kind:id.SpanKind.CLIENT,attributes:o});return id.context.with(id.trace.setSpan(id.context.active(),a),()=>r.apply(this)).then(u=>(a.end(),u)).catch(u=>(a.recordException(u),a.setStatus({code:id.SpanStatusCode.ERROR,message:u.message}),a.end(),Promise.reject(u)))}}}_traceClientCommand(t,n,r,i){if(id.trace.getSpan(id.context.active())===void 0&&this.getConfig().requireParentSpan)return t.apply(n,r);let o=n.options||n[i2e],a=i[0],c=i.slice(1),u=this.getConfig().dbStatementSerializer||Q$t.defaultDbStatementSerializer,l=(0,n2e.getClientAttributes)(this._diag,o,this._semconvStability);this._semconvStability&pi.SemconvStability.STABLE&&(l[Pte.ATTR_DB_OPERATION_NAME]=a);try{let p=u(a,c);p!=null&&(this._semconvStability&pi.SemconvStability.OLD&&(l[$$t.ATTR_DB_STATEMENT]=p),this._semconvStability&pi.SemconvStability.STABLE&&(l[Pte.ATTR_DB_QUERY_TEXT]=p))}catch(p){this._diag.error("dbStatementSerializer throw an exception",p,{commandName:a})}let d=this.tracer.startSpan(`${e.COMPONENT}-${a}`,{kind:id.SpanKind.CLIENT,attributes:l}),f=id.context.with(id.trace.setSpan(id.context.active(),d),()=>t.apply(n,r));if(typeof f?.then=="function")f.then(p=>{this._endSpanWithResponse(d,a,c,p,void 0)},p=>{this._endSpanWithResponse(d,a,c,null,p)});else{let p=f;p[mN]=p[mN]||[],p[mN].push({span:d,commandName:a,commandArgs:c})}return f}_endSpansWithRedisReplies(t,n,r=!1){if(!t)return this._diag.error("cannot find open spans to end for redis multi/pipeline");if(n.length!==t.length)return this._diag.error("number of multi command spans does not match response from redis");let i=t.map(a=>a.commandName),o=i.every(a=>a===i[0])?(r?"PIPELINE ":"MULTI ")+i[0]:r?"PIPELINE":"MULTI";for(let a=0;a{"use strict";Object.defineProperty(Nz,"__esModule",{value:!0});Nz.RedisInstrumentation=void 0;var een=Jt(),o2e=wz(),ten=$Ge(),nen=s2e(),a2e={requireParentSpan:!1},Cte=class extends een.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(t={}){let n={...a2e,...t};super(o2e.PACKAGE_NAME,o2e.PACKAGE_VERSION,n),this.instrumentationV2_V3=new ten.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new nen.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(t={}){let n={...a2e,...t};super.setConfig(n),this.initialized&&(this.instrumentationV2_V3.setConfig(n),this.instrumentationV4_V5.setConfig(n))}init(){}getModuleDefinitions(){return[...this.instrumentationV2_V3.getModuleDefinitions(),...this.instrumentationV4_V5.getModuleDefinitions()]}setTracerProvider(t){super.setTracerProvider(t),this.initialized&&(this.instrumentationV2_V3.setTracerProvider(t),this.instrumentationV4_V5.setTracerProvider(t))}enable(){super.enable(),this.initialized&&(this.instrumentationV2_V3.enable(),this.instrumentationV4_V5.enable())}disable(){super.disable(),this.initialized&&(this.instrumentationV2_V3.disable(),this.instrumentationV4_V5.disable())}};Nz.RedisInstrumentation=Cte});var u2e=w(Cz=>{"use strict";Object.defineProperty(Cz,"__esModule",{value:!0});Cz.RedisInstrumentation=void 0;var ren=c2e();Object.defineProperty(Cz,"RedisInstrumentation",{enumerable:!0,get:function(){return ren.RedisInstrumentation}})});function gN(e,t){return e.includes(t.toLowerCase())}function Dte(e){return gN(Mte,e)?"cache.get":gN(sen,e)?"cache.put":void 0}function oen(e,t){return t.some(n=>e.startsWith(n))}function d2e(e,t){try{if(t.length===0)return;let n=i=>typeof i=="string"||typeof i=="number"||Buffer.isBuffer(i)?[i.toString()]:Array.isArray(i)?l2e(i.map(s=>n(s))):[""],r=t[0];return gN(ien,e)&&r!=null?n(r):l2e(t.map(i=>n(i)))}catch{return}}function f2e(e,t,n){if(!Dte(e))return!1;for(let r of t)if(oen(r,n))return!0;return!1}function p2e(e){let t=n=>{try{return Buffer.isBuffer(n)?n.byteLength:typeof n=="string"?n.length:typeof n=="number"?n.toString().length:n==null?0:JSON.stringify(n).length}catch{return}};return Array.isArray(e)?e.reduce((n,r)=>{let i=t(r);return typeof i=="number"?n!==void 0?n+i:i:n},0):t(e)}function l2e(e){let t=[],n=r=>{r.forEach(i=>{Array.isArray(i)?n(i):t.push(i)})};return n(e),t}var ien,Mte,sen,h2e=v(()=>{ien=["get","set","setex"],Mte=["get","mget"],sen=["set","setex"]});var m2e,g2e,Mz,yN,y2e,aen,cen,S2e,uen,b2e,E2e=v(()=>{m2e=Re(JGe(),1),g2e=Re(u2e(),1);st();sr();h2e();Mz="Redis",yN={},y2e=(e,t,n,r)=>{e.setAttribute(At,"auto.db.otel.redis");let i=d2e(t,n),s=Dte(t);if(!i||!s||!yN.cachePrefixes||!f2e(t,i,yN.cachePrefixes))return;let o=vt(e).data["net.peer.name"],a=vt(e).data["net.peer.port"];a&&o&&e.setAttributes({"network.peer.address":o,"network.peer.port":a});let c=p2e(r);c&&e.setAttribute(iX,c),gN(Mte,t)&&c!==void 0&&e.setAttribute(nX,c>0),e.setAttributes({[zt]:s,[rX]:i});let u=i.join(", ");e.updateName(yN.maxCacheKeyLength?Ey(u,yN.maxCacheKeyLength):u)},aen=rt(`${Mz}.IORedis`,()=>new m2e.IORedisInstrumentation({responseHook:y2e})),cen=rt(`${Mz}.Redis`,()=>new g2e.RedisInstrumentation({responseHook:y2e})),S2e=Object.assign(()=>{aen(),cen()},{id:Mz}),uen=((e={})=>({name:Mz,setupOnce(){yN=e,S2e()}})),b2e=uen});var _2e=w(Dz=>{"use strict";Object.defineProperty(Dz,"__esModule",{value:!0});Dz.EVENT_LISTENERS_SET=void 0;Dz.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")});var Lte=w(SN=>{"use strict";Object.defineProperty(SN,"__esModule",{value:!0});SN.AttributeNames=void 0;var len;(function(e){e.PG_VALUES="db.postgresql.values",e.PG_PLAN="db.postgresql.plan",e.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",e.MAX_CLIENT="db.postgresql.max.client"})(len=SN.AttributeNames||(SN.AttributeNames={}))});var Ute=w(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=Tr.METRIC_DB_CLIENT_CONNECTION_COUNT=Tr.DB_SYSTEM_VALUE_POSTGRESQL=Tr.DB_CLIENT_CONNECTION_STATE_VALUE_USED=Tr.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=Tr.ATTR_NET_PEER_PORT=Tr.ATTR_NET_PEER_NAME=Tr.ATTR_DB_USER=Tr.ATTR_DB_SYSTEM=Tr.ATTR_DB_STATEMENT=Tr.ATTR_DB_NAME=Tr.ATTR_DB_CONNECTION_STRING=Tr.ATTR_DB_CLIENT_CONNECTION_STATE=Tr.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0;Tr.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name";Tr.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state";Tr.ATTR_DB_CONNECTION_STRING="db.connection_string";Tr.ATTR_DB_NAME="db.name";Tr.ATTR_DB_STATEMENT="db.statement";Tr.ATTR_DB_SYSTEM="db.system";Tr.ATTR_DB_USER="db.user";Tr.ATTR_NET_PEER_NAME="net.peer.name";Tr.ATTR_NET_PEER_PORT="net.peer.port";Tr.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle";Tr.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used";Tr.DB_SYSTEM_VALUE_POSTGRESQL="postgresql";Tr.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count";Tr.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"});var Fte=w(bN=>{"use strict";Object.defineProperty(bN,"__esModule",{value:!0});bN.SpanNames=void 0;var den;(function(e){e.QUERY_PREFIX="pg.query",e.CONNECT="pg.connect",e.POOL_CONNECT="pg-pool.connect"})(den=bN.SpanNames||(bN.SpanNames={}))});var I2e=w(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.sanitizedErrorMessage=Hn.isObjectWithTextString=Hn.getErrorMessage=Hn.patchClientConnectCallback=Hn.patchCallbackPGPool=Hn.updateCounter=Hn.getPoolName=Hn.patchCallback=Hn.handleExecutionResult=Hn.handleConfigQuery=Hn.shouldSkipInstrumentation=Hn.getSemanticAttributesFromPoolConnection=Hn.getSemanticAttributesFromConnection=Hn.getConnectionString=Hn.parseAndMaskConnectionString=Hn.parseNormalizedOperationName=Hn.getQuerySpanName=void 0;var aS=(Ce(),ke(Ze)),Lz=Lte(),sd=(Pn(),ke(Mr)),ds=Ute(),a_=Jt(),T2e=Fte();function v2e(e,t){if(!t)return T2e.SpanNames.QUERY_PREFIX;let n=typeof t.name=="string"&&t.name?t.name:R2e(t.text);return`${T2e.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}Hn.getQuerySpanName=v2e;function R2e(e){let t=e.trim(),n=t.indexOf(" "),r=n===-1?t:t.slice(0,n);return r=r.toUpperCase(),r.endsWith(";")?r.slice(0,-1):r}Hn.parseNormalizedOperationName=R2e;function A2e(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch{return"postgresql://localhost:5432/"}}Hn.parseAndMaskConnectionString=A2e;function jte(e){if("connectionString"in e&&e.connectionString)return A2e(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}Hn.getConnectionString=jte;function Uz(e){if(Number.isInteger(e))return e}function w2e(e,t){let n={};return t&a_.SemconvStability.OLD&&(n={...n,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:e.database,[ds.ATTR_DB_CONNECTION_STRING]:jte(e),[ds.ATTR_DB_USER]:e.user,[ds.ATTR_NET_PEER_NAME]:e.host,[ds.ATTR_NET_PEER_PORT]:Uz(e.port)}),t&a_.SemconvStability.STABLE&&(n={...n,[sd.ATTR_DB_SYSTEM_NAME]:sd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[sd.ATTR_DB_NAMESPACE]:e.namespace,[sd.ATTR_SERVER_ADDRESS]:e.host,[sd.ATTR_SERVER_PORT]:Uz(e.port)}),n}Hn.getSemanticAttributesFromConnection=w2e;function fen(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch{n=void 0}let r={[Lz.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[Lz.AttributeNames.MAX_CLIENT]:e.maxClient};return t&a_.SemconvStability.OLD&&(r={...r,[ds.ATTR_DB_SYSTEM]:ds.DB_SYSTEM_VALUE_POSTGRESQL,[ds.ATTR_DB_NAME]:n?.pathname.slice(1)??e.database,[ds.ATTR_DB_CONNECTION_STRING]:jte(e),[ds.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[ds.ATTR_NET_PEER_PORT]:Number(n?.port)||Uz(e.port),[ds.ATTR_DB_USER]:n?.username??e.user}),t&a_.SemconvStability.STABLE&&(r={...r,[sd.ATTR_DB_SYSTEM_NAME]:sd.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[sd.ATTR_DB_NAMESPACE]:e.namespace,[sd.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[sd.ATTR_SERVER_PORT]:Number(n?.port)||Uz(e.port)}),r}Hn.getSemanticAttributesFromPoolConnection=fen;function pen(e){return e.requireParentSpan===!0&&aS.trace.getSpan(aS.context.active())===void 0}Hn.shouldSkipInstrumentation=pen;function hen(e,t,n,r){let{connectionParameters:i}=this,s=i.database,o=v2e(s,r),a=e.startSpan(o,{kind:aS.SpanKind.CLIENT,attributes:w2e(i,n)});if(!r)return a;if(r.text&&(n&a_.SemconvStability.OLD&&a.setAttribute(ds.ATTR_DB_STATEMENT,r.text),n&a_.SemconvStability.STABLE&&a.setAttribute(sd.ATTR_DB_QUERY_TEXT,r.text)),t.enhancedDatabaseReporting&&Array.isArray(r.values))try{let c=r.values.map(u=>u==null?"null":u instanceof Buffer?u.toString():typeof u=="object"?typeof u.toPostgres=="function"?u.toPostgres():JSON.stringify(u):u.toString());a.setAttribute(Lz.AttributeNames.PG_VALUES,c)}catch(c){aS.diag.error("failed to stringify ",r.values,c)}return typeof r.name=="string"&&a.setAttribute(Lz.AttributeNames.PG_PLAN,r.name),a}Hn.handleConfigQuery=hen;function k2e(e,t,n){typeof e.responseHook=="function"&&(0,a_.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},r=>{r&&aS.diag.error("Error running response hook",r)},!0)}Hn.handleExecutionResult=k2e;function men(e,t,n,r,i){return function(o,a){o?(Object.prototype.hasOwnProperty.call(o,"code")&&(r[sd.ATTR_ERROR_TYPE]=o.code),o instanceof Error&&t.recordException(Fz(o)),t.setStatus({code:aS.SpanStatusCode.ERROR,message:o.message})):k2e(e,t,a),i(),t.end(),n.call(this,o,a)}}Hn.patchCallback=men;function gen(e){let t="";return t+=(e?.host?`${e.host}`:"unknown_host")+":",t+=(e?.port?`${e.port}`:"unknown_port")+"/",t+=e?.database?`${e.database}`:"unknown_database",t.trim()}Hn.getPoolName=gen;function yen(e,t,n,r,i){let s=t.totalCount,o=t.waitingCount,a=t.idleCount,c=s-a;return n.add(c-i.used,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(a-i.idle,{[ds.ATTR_DB_CLIENT_CONNECTION_STATE]:ds.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(o-i.pending,{[ds.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:c,idle:a,pending:o}}Hn.updateCounter=yen;function Sen(e,t){return function(r,i,s){r&&(r instanceof Error&&e.recordException(Fz(r)),e.setStatus({code:aS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.call(this,r,i,s)}}Hn.patchCallbackPGPool=Sen;function ben(e,t){return function(r){r&&(r instanceof Error&&e.recordException(Fz(r)),e.setStatus({code:aS.SpanStatusCode.ERROR,message:r.message})),e.end(),t.apply(this,arguments)}}Hn.patchClientConnectCallback=ben;function Een(e){return typeof e=="object"&&e!==null&&"message"in e?String(e.message):void 0}Hn.getErrorMessage=Een;function _en(e){return typeof e=="object"&&typeof e?.text=="string"}Hn.isObjectWithTextString=_en;function Fz(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}Hn.sanitizedErrorMessage=Fz});var x2e=w(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.PACKAGE_NAME=iw.PACKAGE_VERSION=void 0;iw.PACKAGE_VERSION="0.66.0";iw.PACKAGE_NAME="@opentelemetry/instrumentation-pg"});var D2e=w(Hz=>{"use strict";Object.defineProperty(Hz,"__esModule",{value:!0});Hz.PgInstrumentation=void 0;var Uc=Jt(),Ur=(Ce(),ke(Ze)),O2e=_2e(),Yi=I2e(),P2e=Tte(),N2e=x2e(),C2e=Fte(),jz=fr(),gf=(Pn(),ke(Mr)),EN=Ute();function sw(e){return e[Symbol.toStringTag]==="Module"?e.default:e}var Hte=class extends Uc.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(t={}){super(N2e.PACKAGE_NAME,N2e.PACKAGE_VERSION,t),this._semconvStability=(0,Uc.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(gf.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:Ur.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.001,.005,.01,.05,.1,.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(EN.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(EN.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let t=[">=8.0.3 <9"],n=[">=2.0.0 <4"],r=new Uc.InstrumentationNodeModuleFile("pg/lib/native/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),i=new Uc.InstrumentationNodeModuleFile("pg/lib/client.js",t,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),s=new Uc.InstrumentationNodeModuleDefinition("pg",t,a=>{let c=sw(a);return this._patchPgClient(c.Client),a},a=>{let c=sw(a);return this._unpatchPgClient(c.Client),a},[i,r]),o=new Uc.InstrumentationNodeModuleDefinition("pg-pool",n,a=>{let c=sw(a);return(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect"),this._wrap(c.prototype,"connect",this._getPoolConnectPatch()),c},a=>{let c=sw(a);(0,Uc.isWrapped)(c.prototype.connect)&&this._unwrap(c.prototype,"connect")});return[s,o]}_patchPgClient(t){if(!t)return;let n=sw(t);return(0,Uc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Uc.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),this._wrap(n.prototype,"query",this._getClientQueryPatch()),this._wrap(n.prototype,"connect",this._getClientConnectPatch()),t}_unpatchPgClient(t){let n=sw(t);return(0,Uc.isWrapped)(n.prototype.query)&&this._unwrap(n.prototype,"query"),(0,Uc.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),t}_getClientConnectPatch(){let t=this;return n=>function(i){let s=t.getConfig();if(Yi.shouldSkipInstrumentation(s)||s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(C2e.SpanNames.CONNECT,{kind:Ur.SpanKind.CLIENT,attributes:Yi.getSemanticAttributesFromConnection(this,t._semconvStability)});if(i){let c=Ur.trace.getSpan(Ur.context.active());i=Yi.patchClientConnectCallback(o,i),c&&(i=Ur.context.bind(Ur.context.active(),i))}let a=Ur.context.with(Ur.trace.setSpan(Ur.context.active(),o),()=>n.call(this,i));return M2e(o,a)}}recordOperationDuration(t,n){let r={},i=[gf.ATTR_DB_NAMESPACE,gf.ATTR_ERROR_TYPE,gf.ATTR_SERVER_PORT,gf.ATTR_SERVER_ADDRESS,gf.ATTR_DB_OPERATION_NAME];this._semconvStability&Uc.SemconvStability.OLD&&i.push(EN.ATTR_DB_SYSTEM),this._semconvStability&Uc.SemconvStability.STABLE&&i.push(gf.ATTR_DB_SYSTEM_NAME),i.forEach(o=>{o in t&&(r[o]=t[o])});let s=(0,jz.hrTimeToMilliseconds)((0,jz.hrTimeDuration)(n,(0,jz.hrTime)()))/1e3;this._operationDuration.record(s,r)}_getClientQueryPatch(){let t=this;return n=>(this._diag.debug("Patching pg.Client.prototype.query"),function(...i){if(Yi.shouldSkipInstrumentation(t.getConfig()))return n.apply(this,i);let s=(0,jz.hrTime)(),o=i[0],a=typeof o=="string",c=Yi.isObjectWithTextString(o),u=a?{text:o,values:Array.isArray(i[1])?i[1]:void 0}:c?{...o,name:o.name,text:o.text,values:o.values??(Array.isArray(i[1])?i[1]:void 0)}:void 0,l={[EN.ATTR_DB_SYSTEM]:EN.DB_SYSTEM_VALUE_POSTGRESQL,[gf.ATTR_DB_NAMESPACE]:this.database,[gf.ATTR_SERVER_PORT]:this.connectionParameters.port,[gf.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};u?.text&&(l[gf.ATTR_DB_OPERATION_NAME]=Yi.parseNormalizedOperationName(u?.text));let d=()=>{t.recordOperationDuration(l,s)},f=t.getConfig(),p=Yi.handleConfigQuery.call(this,t.tracer,f,t._semconvStability,u);if(f.addSqlCommenterCommentToQueries&&(a?i[0]=(0,P2e.addSqlCommenterComment)(p,o):c&&!("name"in o)&&(i[0]={...o,text:(0,P2e.addSqlCommenterComment)(p,o.text)})),i.length>0){let g=Ur.trace.getSpan(Ur.context.active());if(typeof i[i.length-1]=="function")i[i.length-1]=Yi.patchCallback(f,p,i[i.length-1],l,d),g&&(i[i.length-1]=Ur.context.bind(Ur.context.active(),i[i.length-1]));else if(typeof u?.callback=="function"){let y=Yi.patchCallback(t.getConfig(),p,u.callback,l,d);g&&(y=Ur.context.bind(Ur.context.active(),y)),i[0].callback=y}}let{requestHook:h}=f;typeof h=="function"&&u&&(0,Uc.safeExecuteInTheMiddle)(()=>{let{database:g,host:y,port:b,user:S}=this.connectionParameters;h(p,{connection:{database:g,host:y,port:b,user:S},query:{text:u.text,values:u.values,name:u.name}})},g=>{g&&t._diag.error("Error running query hook",g)},!0);let m;try{m=n.apply(this,i)}catch(g){throw g instanceof Error&&p.recordException(Yi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:Yi.getErrorMessage(g)}),p.end(),g}return m instanceof Promise?m.then(g=>new Promise(y=>{Yi.handleExecutionResult(t.getConfig(),p,g),d(),p.end(),y(g)})).catch(g=>new Promise((y,b)=>{g instanceof Error&&p.recordException(Yi.sanitizedErrorMessage(g)),p.setStatus({code:Ur.SpanStatusCode.ERROR,message:g.message}),d(),p.end(),b(g)})):m})}_setPoolConnectEventListeners(t){if(t[O2e.EVENT_LISTENERS_SET])return;let n=Yi.getPoolName(t.options);t.on("connect",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("acquire",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("remove",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t.on("release",()=>{this._connectionsCounter=Yi.updateCounter(n,t,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),t[O2e.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let t=this;return n=>function(i){let s=t.getConfig();if(Yi.shouldSkipInstrumentation(s))return n.call(this,i);if(t._setPoolConnectEventListeners(this),s.ignoreConnectSpans)return n.call(this,i);let o=t.tracer.startSpan(C2e.SpanNames.POOL_CONNECT,{kind:Ur.SpanKind.CLIENT,attributes:Yi.getSemanticAttributesFromPoolConnection(this.options,t._semconvStability)});if(i){let c=Ur.trace.getSpan(Ur.context.active());i=Yi.patchCallbackPGPool(o,i),c&&(i=Ur.context.bind(Ur.context.active(),i))}let a=Ur.context.with(Ur.trace.setSpan(Ur.context.active(),o),()=>n.call(this,i));return M2e(o,a)}}};Hz.PgInstrumentation=Hte;function M2e(e,t){if(!(t instanceof Promise))return t;let n=t;return Ur.context.bind(Ur.context.active(),n.then(r=>(e.end(),r)).catch(r=>(r instanceof Error&&e.recordException(Yi.sanitizedErrorMessage(r)),e.setStatus({code:Ur.SpanStatusCode.ERROR,message:Yi.getErrorMessage(r)}),e.end(),Promise.reject(r))))}});var L2e=w(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.AttributeNames=ow.PgInstrumentation=void 0;var Ten=D2e();Object.defineProperty(ow,"PgInstrumentation",{enumerable:!0,get:function(){return Ten.PgInstrumentation}});var ven=Lte();Object.defineProperty(ow,"AttributeNames",{enumerable:!0,get:function(){return ven.AttributeNames}})});var U2e,F2e,j2e,Ren,H2e,q2e=v(()=>{U2e=Re(L2e(),1);sr();F2e="Postgres",j2e=rt(F2e,U2e.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(t){Dr(t,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),Ren=(e=>({name:F2e,setupOnce(){j2e(e)}})),H2e=Ren});var cS,Bte,B2e,Aen,wen,z2e,qte,ken,G2e,V2e=v(()=>{Ce();cS=Re(Jt(),1);Pn();st();sr();XE();Bte="PostgresJs",B2e=[">=3.0.0 <4"],Aen=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,wen=Symbol.for("sentry.query.from.instrumented.sql"),z2e=rt(Bte,e=>new qte({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook})),qte=class extends cS.InstrumentationBase{constructor(t){super("sentry-postgres-js",Nn,t)}init(){let t=new cS.InstrumentationNodeModuleDefinition("postgres",B2e,n=>{try{return this._patchPostgres(n)}catch(r){return So&&Z.error("Failed to patch postgres module:",r),n}},n=>n);return["src","cf/src","cjs/src"].forEach(n=>{t.files.push(new cS.InstrumentationNodeModuleFile(`postgres/${n}/query.js`,B2e,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),t}_patchPostgres(t){let n=typeof t=="function",r=n?t:t.default;if(typeof r!="function")return So&&Z.warn("postgres module does not export a function. Skipping instrumentation."),t;let i=this,s=function(...o){let a=Reflect.construct(r,o);if(!a||typeof a!="function")return So&&Z.warn("postgres() did not return a valid instance"),a;let c=i.getConfig();return eQ(a,{requireParentSpan:c.requireParentSpan,requestHook:c.requestHook})};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}return n?s:(mP(t,"default",s),t)}_shouldCreateSpans(){let t=this.getConfig();return jt.getSpan(Ve.active())!==void 0||!t.requireParentSpan}_setOperationName(t,n,r){if(r){t.setAttribute(fR,r);return}let i=n?.match(Aen);i?.[1]&&t.setAttribute(fR,i[1].toUpperCase())}_reconstructQuery(t){if(t?.length)return t.length===1?t[0]||void 0:t.reduce((n,r,i)=>i===0?r:`${n}$${i}${r}`,"")}_sanitizeSqlQuery(t){return t?t.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{Dr(a,"auto.db.postgresjs"),a.setAttributes({[yE]:"postgres",[b7]:o});let c=n.getConfig(),{requestHook:u}=c;u&&(0,cS.safeExecuteInTheMiddle)(()=>u(a,o,void 0),f=>{f&&(a.setAttribute("sentry.hook.error","requestHook failed"),So&&Z.error(`Error in requestHook for ${Bte} integration:`,f))},!0);let l=this.resolve;this.resolve=new Proxy(l,{apply:(f,p,h)=>{try{n._setOperationName(a,o,h?.[0]?.command),a.end()}catch(m){So&&Z.error("Error ending span in resolve callback:",m)}return Reflect.apply(f,p,h)}});let d=this.reject;this.reject=new Proxy(d,{apply:(f,p,h)=>{try{a.setStatus({code:2,message:h?.[0]?.message||"unknown_error"}),a.setAttribute(E7,h?.[0]?.code||"unknown"),a.setAttribute(_7,h?.[0]?.name||"unknown"),n._setOperationName(a,o),a.end()}catch(m){So&&Z.error("Error ending span in reject callback:",m)}return Reflect.apply(f,p,h)}});try{return r.apply(this,i)}catch(f){throw a.setStatus({code:2,message:f instanceof Error?f.message:"unknown_error"}),a.end(),f}})},t.Query.prototype.handle.__sentry_original__=r,t}_unpatchQueryPrototype(t){return t.Query.prototype.handle.__sentry_original__&&(t.Query.prototype.handle=t.Query.prototype.handle.__sentry_original__),t}},ken=(e=>({name:Bte,setupOnce(){z2e(e)}})),G2e=ken});var W2e=w(_N=>{"use strict";Object.defineProperty(_N,"__esModule",{value:!0});_N.SeverityNumber=void 0;var Ien;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(Ien=_N.SeverityNumber||(_N.SeverityNumber={}))});var Bz=w(aw=>{"use strict";Object.defineProperty(aw,"__esModule",{value:!0});aw.NOOP_LOGGER=aw.NoopLogger=void 0;var qz=class{emit(t){}};aw.NoopLogger=qz;aw.NOOP_LOGGER=new qz});var Gz=w(cw=>{"use strict";Object.defineProperty(cw,"__esModule",{value:!0});cw.NOOP_LOGGER_PROVIDER=cw.NoopLoggerProvider=void 0;var xen=Bz(),zz=class{getLogger(t,n,r){return new xen.NoopLogger}};cw.NoopLoggerProvider=zz;cw.NOOP_LOGGER_PROVIDER=new zz});var Gte=w(Vz=>{"use strict";Object.defineProperty(Vz,"__esModule",{value:!0});Vz.ProxyLogger=void 0;var Oen=Bz(),zte=class{constructor(t,n,r,i){this._provider=t,this.name=n,this.version=r,this.options=i}emit(t){this._getLogger().emit(t)}_getLogger(){if(this._delegate)return this._delegate;let t=this._provider._getDelegateLogger(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):Oen.NOOP_LOGGER}};Vz.ProxyLogger=zte});var Wte=w(Wz=>{"use strict";Object.defineProperty(Wz,"__esModule",{value:!0});Wz.ProxyLoggerProvider=void 0;var Pen=Gz(),Nen=Gte(),Vte=class{getLogger(t,n,r){var i;return(i=this._getDelegateLogger(t,n,r))!==null&&i!==void 0?i:new Nen.ProxyLogger(this,t,n,r)}_getDelegate(){var t;return(t=this._delegate)!==null&&t!==void 0?t:Pen.NOOP_LOGGER_PROVIDER}_setDelegate(t){this._delegate=t}_getDelegateLogger(t,n,r){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(t,n,r)}};Wz.ProxyLoggerProvider=Vte});var K2e=w(Kz=>{"use strict";Object.defineProperty(Kz,"__esModule",{value:!0});Kz._globalThis=void 0;Kz._globalThis=typeof globalThis=="object"?globalThis:global});var Y2e=w(Yz=>{"use strict";Object.defineProperty(Yz,"__esModule",{value:!0});Yz._globalThis=void 0;var Cen=K2e();Object.defineProperty(Yz,"_globalThis",{enumerable:!0,get:function(){return Cen._globalThis}})});var Z2e=w(Zz=>{"use strict";Object.defineProperty(Zz,"__esModule",{value:!0});Zz._globalThis=void 0;var Men=Y2e();Object.defineProperty(Zz,"_globalThis",{enumerable:!0,get:function(){return Men._globalThis}})});var J2e=w($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.API_BACKWARDS_COMPATIBILITY_VERSION=$p.makeGetter=$p._global=$p.GLOBAL_LOGS_API_KEY=void 0;var Den=Z2e();$p.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");$p._global=Den._globalThis;function Len(e,t,n){return r=>r===e?t:n}$p.makeGetter=Len;$p.API_BACKWARDS_COMPATIBILITY_VERSION=1});var Q2e=w(Jz=>{"use strict";Object.defineProperty(Jz,"__esModule",{value:!0});Jz.LogsAPI=void 0;var od=J2e(),Uen=Gz(),X2e=Wte(),Kte=class e{constructor(){this._proxyLoggerProvider=new X2e.ProxyLoggerProvider}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return od._global[od.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(od._global[od.GLOBAL_LOGS_API_KEY]=(0,od.makeGetter)(od.API_BACKWARDS_COMPATIBILITY_VERSION,t,Uen.NOOP_LOGGER_PROVIDER),this._proxyLoggerProvider._setDelegate(t),t)}getLoggerProvider(){var t,n;return(n=(t=od._global[od.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(od._global,od.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&n!==void 0?n:this._proxyLoggerProvider}getLogger(t,n,r){return this.getLoggerProvider().getLogger(t,n,r)}disable(){delete od._global[od.GLOBAL_LOGS_API_KEY],this._proxyLoggerProvider=new X2e.ProxyLoggerProvider}};Jz.LogsAPI=Kte});var Yte=w(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.logs=Bo.ProxyLoggerProvider=Bo.ProxyLogger=Bo.NoopLoggerProvider=Bo.NOOP_LOGGER_PROVIDER=Bo.NoopLogger=Bo.NOOP_LOGGER=Bo.SeverityNumber=void 0;var Fen=W2e();Object.defineProperty(Bo,"SeverityNumber",{enumerable:!0,get:function(){return Fen.SeverityNumber}});var $2e=Bz();Object.defineProperty(Bo,"NOOP_LOGGER",{enumerable:!0,get:function(){return $2e.NOOP_LOGGER}});Object.defineProperty(Bo,"NoopLogger",{enumerable:!0,get:function(){return $2e.NoopLogger}});var eVe=Gz();Object.defineProperty(Bo,"NOOP_LOGGER_PROVIDER",{enumerable:!0,get:function(){return eVe.NOOP_LOGGER_PROVIDER}});Object.defineProperty(Bo,"NoopLoggerProvider",{enumerable:!0,get:function(){return eVe.NoopLoggerProvider}});var jen=Gte();Object.defineProperty(Bo,"ProxyLogger",{enumerable:!0,get:function(){return jen.ProxyLogger}});var Hen=Wte();Object.defineProperty(Bo,"ProxyLoggerProvider",{enumerable:!0,get:function(){return Hen.ProxyLoggerProvider}});var qen=Q2e();Bo.logs=qen.LogsAPI.getInstance()});var tVe=w(uw=>{"use strict";Object.defineProperty(uw,"__esModule",{value:!0});uw.disableInstrumentations=uw.enableInstrumentations=void 0;function Ben(e,t,n,r){for(let i=0,s=e.length;it.disable())}uw.disableInstrumentations=zen});var iVe=w(Xz=>{"use strict";Object.defineProperty(Xz,"__esModule",{value:!0});Xz.registerInstrumentations=void 0;var nVe=(Ce(),ke(Ze)),Gen=Yte(),rVe=tVe();function Ven(e){let t=e.tracerProvider||nVe.trace.getTracerProvider(),n=e.meterProvider||nVe.metrics.getMeterProvider(),r=e.loggerProvider||Gen.logs.getLoggerProvider(),i=e.instrumentations?.flat()??[];return(0,rVe.enableInstrumentations)(i,t,n,r),()=>{(0,rVe.disableInstrumentations)(i)}}Xz.registerInstrumentations=Ven});var pVe=w(Qz=>{"use strict";Object.defineProperty(Qz,"__esModule",{value:!0});Qz.satisfies=void 0;var Qte=(Ce(),ke(Ze)),uVe=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Wen=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,Ken={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function Yen(e,t,n){if(!Zen(e))return Qte.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let r=$en(e);if(!r)return!1;let i=[],s=lVe(r,t,i,n);return s&&!n?.includePrerelease?Xen(r,i):s}Qz.satisfies=Yen;function Zen(e){return typeof e=="string"&&uVe.test(e)}function lVe(e,t,n,r){if(t.includes("||")){let i=t.trim().split("||");for(let s of i)if(Zte(e,s,n,r))return!0;return!1}else if(t.includes(" - "))t=Etn(t,r);else if(t.includes(" ")){let i=t.trim().replace(/\s{2,}/g," ").split(" ");for(let s of i)if(!Zte(e,s,n,r))return!1;return!0}return Zte(e,t,n,r)}function Zte(e,t,n,r){if(t=Qen(t,r),t.includes(" "))return lVe(e,t,n,r);{let i=etn(t);return n.push(i),Jen(e,i)}}function Jen(e,t){if(t.invalid)return!1;if(!t.version||Xte(t.version))return!0;let n=oVe(e.versionSegments||[],t.versionSegments||[]);if(n===0){let r=e.prereleaseSegments||[],i=t.prereleaseSegments||[];!r.length&&!i.length?n=0:!r.length&&i.length?n=1:r.length&&!i.length?n=-1:n=oVe(r,i)}return Ken[t.op]?.includes(n)}function Xen(e,t){return e.prerelease?t.some(n=>n.prerelease&&n.version===e.version):!0}function Qen(e,t){return e=e.trim(),e=Stn(e,t),e=ytn(e),e=btn(e,t),e=e.trim(),e}function Fc(e){return!e||e.toLowerCase()==="x"||e==="*"}function $en(e){let t=e.match(uVe);if(!t){Qte.diag.error(`Invalid version: ${e}`);return}let n=t.groups.version,r=t.groups.prerelease,i=t.groups.build,s=n.split("."),o=r?.split(".");return{op:void 0,version:n,versionSegments:s,versionSegmentCount:s.length,prerelease:r,prereleaseSegments:o,prereleaseSegmentCount:o?o.length:0,build:i}}function etn(e){if(!e)return{};let t=e.match(Wen);if(!t)return Qte.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,i=t.groups.prerelease,s=t.groups.build,o=r.split("."),a=i?.split(".");return n==="=="&&(n="="),{op:n||"=",version:r,versionSegments:o,versionSegmentCount:o.length,prerelease:i,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:s}}function Xte(e){return e==="*"||e==="x"||e==="X"}function sVe(e){let t=parseInt(e,10);return isNaN(t)?e:t}function ttn(e,t){if(typeof e==typeof t){if(typeof e=="number")return[e,t];if(typeof e=="string")return[e,t];throw new Error("Version segments can only be strings or numbers")}else return[String(e),String(t)]}function ntn(e,t){if(Xte(e)||Xte(t))return 0;let[n,r]=ttn(sVe(e),sVe(t));return n>r?1:n)?=?)",aVe=`(?:${fVe}|${rtn})`,stn=`(?:-(${aVe}(?:\\.${aVe})*))`,cVe=`${dVe}+`,otn=`(?:\\+(${cVe}(?:\\.${cVe})*))`,Jte=`${fVe}|x|X|\\*`,TN=`[v=\\s]*(${Jte})(?:\\.(${Jte})(?:\\.(${Jte})(?:${stn})?${otn}?)?)?`,atn=`^${itn}\\s*${TN}$`,ctn=new RegExp(atn),utn=`^\\s*(${TN})\\s+-\\s+(${TN})\\s*$`,ltn=new RegExp(utn),dtn="(?:~>?)",ftn=`^${dtn}${TN}$`,ptn=new RegExp(ftn),htn="(?:\\^)",mtn=`^${htn}${TN}$`,gtn=new RegExp(mtn);function ytn(e){let t=ptn;return e.replace(t,(n,r,i,s,o)=>{let a;return Fc(r)?a="":Fc(i)?a=`>=${r}.0.0 <${+r+1}.0.0-0`:Fc(s)?a=`>=${r}.${i}.0 <${r}.${+i+1}.0-0`:o?a=`>=${r}.${i}.${s}-${o} <${r}.${+i+1}.0-0`:a=`>=${r}.${i}.${s} <${r}.${+i+1}.0-0`,a})}function Stn(e,t){let n=gtn,r=t?.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{let u;return Fc(s)?u="":Fc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Fc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`:s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`,u})}function btn(e,t){let n=ctn;return e.replace(n,(r,i,s,o,a,c)=>{let u=Fc(s),l=u||Fc(o),d=l||Fc(a),f=d;return i==="="&&f&&(i=""),c=t?.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),r})}function Etn(e,t){let n=ltn;return e.replace(n,(r,i,s,o,a,c,u,l,d,f,p,h)=>(Fc(s)?i="":Fc(o)?i=`>=${s}.0.0${t?.includePrerelease?"-0":""}`:Fc(a)?i=`>=${s}.${o}.0${t?.includePrerelease?"-0":""}`:c?i=`>=${i}`:i=`>=${i}${t?.includePrerelease?"-0":""}`,Fc(d)?l="":Fc(f)?l=`<${+d+1}.0.0-0`:Fc(p)?l=`<${d}.${+f+1}.0-0`:h?l=`<=${d}.${f}.${p}-${h}`:t?.includePrerelease?l=`<${d}.${f}.${+p+1}-0`:l=`<=${l}`,`${i} ${l}`.trim()))}});var $te=w(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.massUnwrap=pa.unwrap=pa.massWrap=pa.wrap=void 0;var jc=console.error.bind(console);function vN(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}var _tn=(e,t,n)=>{if(!e||!e[t]){jc("no original function "+String(t)+" to wrap");return}if(!n){jc("no wrapper function"),jc(new Error().stack);return}let r=e[t];if(typeof r!="function"||typeof n!="function"){jc("original object and wrapper must be functions");return}let i=n(r,t);return vN(i,"__original",r),vN(i,"__unwrap",()=>{e[t]===i&&vN(e,t,r)}),vN(i,"__wrapped",!0),vN(e,t,i),i};pa.wrap=_tn;var Ttn=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{jc("must provide one or more modules to patch"),jc(new Error().stack);return}if(!(t&&Array.isArray(t))){jc("must provide one or more functions to wrap on modules");return}e.forEach(r=>{t.forEach(i=>{(0,pa.wrap)(r,i,n)})})};pa.massWrap=Ttn;var vtn=(e,t)=>{if(!e||!e[t]){jc("no function to unwrap."),jc(new Error().stack);return}let n=e[t];if(!n.__unwrap)jc("no original to unwrap to -- has "+String(t)+" already been unwrapped?");else{n.__unwrap();return}};pa.unwrap=vtn;var Rtn=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{jc("must provide one or more modules to patch"),jc(new Error().stack);return}if(!(t&&Array.isArray(t))){jc("must provide one or more functions to unwrap on modules");return}e.forEach(n=>{t.forEach(r=>{(0,pa.unwrap)(n,r)})})};pa.massUnwrap=Rtn;function RN(e){e&&e.logger&&(typeof e.logger!="function"?jc("new logger isn't a function, not replacing"):jc=e.logger)}pa.default=RN;RN.wrap=pa.wrap;RN.massWrap=pa.massWrap;RN.unwrap=pa.unwrap;RN.massUnwrap=pa.massUnwrap});var hVe=w(eG=>{"use strict";Object.defineProperty(eG,"__esModule",{value:!0});eG.InstrumentationAbstract=void 0;var ene=(Ce(),ke(Ze)),Atn=Yte(),$z=$te(),tne=class{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(t,n,r){this.instrumentationName=t,this.instrumentationVersion=n,this.setConfig(r),this._diag=ene.diag.createComponentLogger({namespace:t}),this._tracer=ene.trace.getTracer(t,n),this._meter=ene.metrics.getMeter(t,n),this._logger=Atn.logs.getLogger(t,n),this._updateMetricInstruments()}_wrap=$z.wrap;_unwrap=$z.unwrap;_massWrap=$z.massWrap;_massUnwrap=$z.massUnwrap;get meter(){return this._meter}setMeterProvider(t){this._meter=t.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(t){this._logger=t.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let t=this.init()??[];return Array.isArray(t)?t:[t]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(t){this._config={enabled:!0,...t}}setTracerProvider(t){this._tracer=t.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(t,n,r,i){if(t)try{t(r,i)}catch(s){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:n},s)}}};eG.InstrumentationAbstract=tne});var mVe=w(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0});uS.ModuleNameTrie=uS.ModuleNameSeparator=void 0;uS.ModuleNameSeparator="/";var tG=class{hooks=[];children=new Map},nne=class{_trie=new tG;_counter=0;insert(t){let n=this._trie;for(let r of t.moduleName.split(uS.ModuleNameSeparator)){let i=n.children.get(r);i||(i=new tG,n.children.set(r,i)),n=i}n.hooks.push({hook:t,insertedId:this._counter++})}search(t,{maintainInsertionOrder:n,fullOnly:r}={}){let i=this._trie,s=[],o=!0;for(let a of t.split(uS.ModuleNameSeparator)){let c=i.children.get(a);if(!c){o=!1;break}r||s.push(...c.hooks),i=c}return r&&o&&s.push(...i.hooks),s.length===0?[]:s.length===1?[s[0].hook]:(n&&s.sort((a,c)=>a.insertedId-c.insertedId),s.map(({hook:a})=>a))}};uS.ModuleNameTrie=nne});var yVe=w(nG=>{"use strict";Object.defineProperty(nG,"__esModule",{value:!0});nG.RequireInTheMiddleSingleton=void 0;var wtn=vE(),gVe=K("path"),rne=mVe(),ktn=["afterEach","after","beforeEach","before","describe","it"].every(e=>typeof global[e]=="function"),ine=class e{_moduleNameTrie=new rne.ModuleNameTrie;static _instance;constructor(){this._initialize()}_initialize(){new wtn.Hook(null,{internals:!0},(t,n,r)=>{let i=Itn(n),s=this._moduleNameTrie.search(i,{maintainInsertionOrder:!0,fullOnly:r===void 0});for(let{onRequire:o}of s)t=o(t,n,r);return t})}register(t,n){let r={moduleName:t,onRequire:n};return this._moduleNameTrie.insert(r),r}static getInstance(){return ktn?new e:this._instance=this._instance??new e}};nG.RequireInTheMiddleSingleton=ine;function Itn(e){return gVe.sep!==rne.ModuleNameSeparator?e.split(gVe.sep).join(rne.ModuleNameSeparator):e}});var TVe=w(AN=>{var SVe=[],sne=new WeakMap,bVe=new WeakMap,EVe=new Map,_Ve=[],xtn={set(e,t,n){let r=sne.get(e),i=r&&r[t];return typeof i=="function"?i(n):!0},get(e,t){if(t===Symbol.toStringTag)return"Module";let n=bVe.get(e)[t];if(typeof n=="function")return n()},defineProperty(e,t,n){if(!("value"in n))throw new Error("Getters/setters are not supported for exports property descriptors.");let r=sne.get(e),i=r&&r[t];return typeof i=="function"?i(n.value):!0}};function Otn(e,t,n,r,i){EVe.set(e,i),sne.set(t,n),bVe.set(t,r);let s=new Proxy(t,xtn);SVe.forEach(o=>o(e,s,i)),_Ve.push([e,s,i])}AN.register=Otn;AN.importHooks=SVe;AN.specifiers=EVe;AN.toHook=_Ve});var wVe=w((e1r,dw)=>{var vVe=K("path"),Ptn=vO(),{fileURLToPath:Ntn}=K("url"),{MessageChannel:Ctn}=K("worker_threads"),{isBuiltin:one}=K("module");one||(one=()=>!0);var{importHooks:ane,specifiers:Mtn,toHook:Dtn}=TVe();function RVe(e){ane.push(e),Dtn.forEach(([t,n,r])=>e(t,n,r))}function AVe(e){let t=ane.indexOf(e);t>-1&&ane.splice(t,1)}function lw(e,t,n,r){let i=e(t,n,r);i&&i!==t&&"default"in t&&(t.default=i)}var cne;function Ltn(){let{port1:e,port2:t}=new Ctn,n=0,r;cne=a=>{n++,e.postMessage(a)},e.on("message",()=>{n--,r&&n<=0&&r()}).unref();function i(){let a=setInterval(()=>{},1e3),c=new Promise(u=>{r=u}).then(()=>{clearInterval(a)});return n===0&&r(),c}let s=t;return{registerOptions:{data:{addHookMessagePort:s,include:[]},transferList:[s]},addHookMessagePort:s,waitForAllMessagesAcknowledged:i}}function wN(e,t,n){if(!(this instanceof wN))return new wN(e,t,n);typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null);let r=t?t.internals===!0:!1;cne&&Array.isArray(e)&&cne(e),this._iitmHook=(i,s,o)=>{let a=i,c=a.startsWith("node:"),u,l;if(c){let d=i.slice(5);one(d)&&(i=d)}else if(a.startsWith("file://")){let d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{u=Ntn(i),i=u}catch{}if(Error.stackTraceLimit=d,u){let f=Ptn(u);f&&(i=f.name,l=f.basedir)}}if(e)for(let d of e)if(u&&d===u)lw(n,s,u,void 0);else if(d===i){if(!l)lw(n,s,i,l);else if(l.endsWith(Mtn.get(a)))lw(n,s,i,l);else if(r){let f=i+vVe.sep+vVe.relative(l,u);lw(n,s,f,l)}}else d===o&&lw(n,s,o,l);else lw(n,s,i,l)},RVe(this._iitmHook)}wN.prototype.unhook=function(){AVe(this._iitmHook)};dw.exports=wN;dw.exports.Hook=wN;dw.exports.addHook=RVe;dw.exports.removeHook=AVe;dw.exports.createAddHookMessageChannel=Ltn});var une=w(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.isWrapped=lS.safeExecuteInTheMiddleAsync=lS.safeExecuteInTheMiddle=void 0;function Utn(e,t,n){let r,i;try{i=e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}lS.safeExecuteInTheMiddle=Utn;async function Ftn(e,t,n){let r,i;try{i=await e()}catch(s){r=s}finally{if(t(r,i),r&&!n)throw r;return i}}lS.safeExecuteInTheMiddleAsync=Ftn;function jtn(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}lS.isWrapped=jtn});var xVe=w(rG=>{"use strict";Object.defineProperty(rG,"__esModule",{value:!0});rG.InstrumentationBase=void 0;var kN=K("path"),kVe=K("util"),Htn=pVe(),lne=$te(),qtn=hVe(),Btn=yVe(),ztn=wVe(),IN=(Ce(),ke(Ze)),Gtn=vE(),Vtn=K("fs"),Wtn=une(),dne=class extends qtn.InstrumentationAbstract{_modules;_hooks=[];_requireInTheMiddleSingleton=Btn.RequireInTheMiddleSingleton.getInstance();_enabled=!1;constructor(t,n,r){super(t,n,r);let i=this.init();i&&!Array.isArray(i)&&(i=[i]),this._modules=i||[],this._config.enabled&&this.enable()}_wrap=(t,n,r)=>{if((0,Wtn.isWrapped)(t[n])&&this._unwrap(t,n),kVe.types.isProxy(t)){let i=(0,lne.wrap)(Object.assign({},t),n,r);return Object.defineProperty(t,n,{value:i}),i}else return(0,lne.wrap)(t,n,r)};_unwrap=(t,n)=>kVe.types.isProxy(t)?Object.defineProperty(t,n,{value:t[n]}):(0,lne.unwrap)(t,n);_massWrap=(t,n,r)=>{if(t)Array.isArray(t)||(t=[t]);else{IN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){IN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(i=>{n.forEach(s=>{this._wrap(i,s,r)})})};_massUnwrap=(t,n)=>{if(t)Array.isArray(t)||(t=[t]);else{IN.diag.error("must provide one or more modules to patch");return}if(!(n&&Array.isArray(n))){IN.diag.error("must provide one or more functions to wrap on modules");return}t.forEach(r=>{n.forEach(i=>{this._unwrap(r,i)})})};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let r=K.resolve(n);K.cache[r]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(t){try{let n=(0,Vtn.readFileSync)(kN.join(t,"package.json"),{encoding:"utf8"}),r=JSON.parse(n).version;return typeof r=="string"?r:void 0}catch{IN.diag.warn("Failed extracting version",t)}}_onRequire(t,n,r,i){if(!i)return typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:t.name}),t.patch(n)):n;let s=this._extractPackageVersion(i);if(t.moduleVersion=s,t.name===r)return IVe(t.supportedVersions,s,t.includePrerelease)&&typeof t.patch=="function"&&(t.moduleExports=n,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:t.name,version:t.moduleVersion,baseDir:i}),t.patch(n,t.moduleVersion)):n;let o=t.files??[],a=kN.normalize(r);return o.filter(u=>u.name===a).filter(u=>IVe(u.supportedVersions,s,t.includePrerelease)).reduce((u,l)=>(l.moduleExports=u,this._enabled?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:t.name,version:t.moduleVersion,fileName:l.name,baseDir:i}),l.patch(u,t.moduleVersion)):u),n)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let t of this._modules){typeof t.patch=="function"&&t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:t.name,version:t.moduleVersion}),t.patch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.patch(n.moduleExports,t.moduleVersion))}return}this._warnOnPreloadedModules();for(let t of this._modules){let n=(o,a,c)=>{if(!c&&kN.isAbsolute(a)){let u=kN.parse(a);a=u.name,c=u.dir}return this._onRequire(t,o,a,c)},r=(o,a,c)=>this._onRequire(t,o,a,c),i=kN.isAbsolute(t.name)?new Gtn.Hook([t.name],{internals:!0},r):this._requireInTheMiddleSingleton.register(t.name,r);this._hooks.push(i);let s=new ztn.Hook([t.name],{internals:!1},n);this._hooks.push(s)}}}disable(){if(this._enabled){this._enabled=!1;for(let t of this._modules){typeof t.unpatch=="function"&&t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:t.name,version:t.moduleVersion}),t.unpatch(t.moduleExports,t.moduleVersion));for(let n of t.files)n.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:t.name,version:t.moduleVersion,fileName:n.name}),n.unpatch(n.moduleExports,t.moduleVersion))}}}isEnabled(){return this._enabled}};rG.InstrumentationBase=dne;function IVe(e,t,n){return typeof t>"u"?e.includes("*"):e.some(r=>(0,Htn.satisfies)(t,r,{includePrerelease:n}))}});var OVe=w(iG=>{"use strict";Object.defineProperty(iG,"__esModule",{value:!0});iG.normalize=void 0;var Ktn=K("path");Object.defineProperty(iG,"normalize",{enumerable:!0,get:function(){return Ktn.normalize}})});var PVe=w(fw=>{"use strict";Object.defineProperty(fw,"__esModule",{value:!0});fw.normalize=fw.InstrumentationBase=void 0;var Ytn=xVe();Object.defineProperty(fw,"InstrumentationBase",{enumerable:!0,get:function(){return Ytn.InstrumentationBase}});var Ztn=OVe();Object.defineProperty(fw,"normalize",{enumerable:!0,get:function(){return Ztn.normalize}})});var fne=w(pw=>{"use strict";Object.defineProperty(pw,"__esModule",{value:!0});pw.normalize=pw.InstrumentationBase=void 0;var NVe=PVe();Object.defineProperty(pw,"InstrumentationBase",{enumerable:!0,get:function(){return NVe.InstrumentationBase}});Object.defineProperty(pw,"normalize",{enumerable:!0,get:function(){return NVe.normalize}})});var CVe=w(sG=>{"use strict";Object.defineProperty(sG,"__esModule",{value:!0});sG.InstrumentationNodeModuleDefinition=void 0;var pne=class{name;supportedVersions;patch;unpatch;files;constructor(t,n,r,i,s){this.name=t,this.supportedVersions=n,this.patch=r,this.unpatch=i,this.files=s||[]}};sG.InstrumentationNodeModuleDefinition=pne});var MVe=w(oG=>{"use strict";Object.defineProperty(oG,"__esModule",{value:!0});oG.InstrumentationNodeModuleFile=void 0;var Jtn=fne(),hne=class{supportedVersions;patch;unpatch;name;constructor(t,n,r,i){this.supportedVersions=n,this.patch=r,this.unpatch=i,this.name=(0,Jtn.normalize)(t)}};oG.InstrumentationNodeModuleFile=hne});var DVe=w(c_=>{"use strict";Object.defineProperty(c_,"__esModule",{value:!0});c_.semconvStabilityFromStr=c_.SemconvStability=void 0;var aG;(function(e){e[e.STABLE=1]="STABLE",e[e.OLD=2]="OLD",e[e.DUPLICATE=3]="DUPLICATE"})(aG=c_.SemconvStability||(c_.SemconvStability={}));function Xtn(e,t){let n=aG.OLD,r=t?.split(",").map(i=>i.trim()).filter(i=>i!=="");for(let i of r??[])if(i.toLowerCase()===e+"/dup"){n=aG.DUPLICATE;break}else i.toLowerCase()===e&&(n=aG.STABLE);return n}c_.semconvStabilityFromStr=Xtn});var UVe=w(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.semconvStabilityFromStr=Js.SemconvStability=Js.safeExecuteInTheMiddleAsync=Js.safeExecuteInTheMiddle=Js.isWrapped=Js.InstrumentationNodeModuleFile=Js.InstrumentationNodeModuleDefinition=Js.InstrumentationBase=Js.registerInstrumentations=void 0;var Qtn=iVe();Object.defineProperty(Js,"registerInstrumentations",{enumerable:!0,get:function(){return Qtn.registerInstrumentations}});var $tn=fne();Object.defineProperty(Js,"InstrumentationBase",{enumerable:!0,get:function(){return $tn.InstrumentationBase}});var enn=CVe();Object.defineProperty(Js,"InstrumentationNodeModuleDefinition",{enumerable:!0,get:function(){return enn.InstrumentationNodeModuleDefinition}});var tnn=MVe();Object.defineProperty(Js,"InstrumentationNodeModuleFile",{enumerable:!0,get:function(){return tnn.InstrumentationNodeModuleFile}});var mne=une();Object.defineProperty(Js,"isWrapped",{enumerable:!0,get:function(){return mne.isWrapped}});Object.defineProperty(Js,"safeExecuteInTheMiddle",{enumerable:!0,get:function(){return mne.safeExecuteInTheMiddle}});Object.defineProperty(Js,"safeExecuteInTheMiddleAsync",{enumerable:!0,get:function(){return mne.safeExecuteInTheMiddleAsync}});var LVe=DVe();Object.defineProperty(Js,"SemconvStability",{enumerable:!0,get:function(){return LVe.SemconvStability}});Object.defineProperty(Js,"semconvStabilityFromStr",{enumerable:!0,get:function(){return LVe.semconvStabilityFromStr}})});function inn(){let e=hw[yne];return e?.helper?e.helper:hw[gne]?.helper}function snn(e){let t={helper:e};hw[yne]=t,hw[gne]=t}function onn(){delete hw[yne],delete hw[gne]}function unn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}function HVe(e,t,n,r,i){if(qVe(t.name,i))return;let s={attributes:t.attributes,kind:unn(t.kind),startTime:t.startTime};e.startActiveSpan(t.name,s,o=>{r.set(t.id,o.spanContext().spanId),t.links&&o.addLinks(t.links.flatMap(c=>{let u=r.get(c);return u?{context:{spanId:u,traceId:o.spanContext().traceId,traceFlags:o.spanContext().traceFlags}}:[]}));let a=n.filter(c=>c.parentId===t.id);for(let c of a)HVe(e,c,n,r,i);o.end(t.endTime)})}function FVe(e,t){return dnn(t)?t.then(n=>(e.end(),n),n=>{throw e.end(),n}):(e.end(),t)}function dnn(e){return e!=null&&typeof e.then=="function"}function qVe(e,t){return t.some(n=>typeof n=="string"?n===e:n.test(e))}var cG,nnn,rnn,gne,yne,hw,ann,cnn,lnn,BVe,jVe,fnn,pnn,zVe,GVe=v(()=>{Ce();cG=Re(UVe(),1);Ce();nnn={name:"@prisma/instrumentation-contract",version:"7.6.0",description:"Shared types and utilities for Prisma instrumentation",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.mts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation-contract"},bugs:"https://github.com/prisma/prisma/issues",scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},files:["dist"],sideEffects:!1,devDependencies:{"@opentelemetry/api":"1.9.0"},peerDependencies:{"@opentelemetry/api":"^1.8"}},rnn=nnn.version.split(".")[0],gne="PRISMA_INSTRUMENTATION",yne=`V${rnn}_PRISMA_INSTRUMENTATION`,hw=globalThis;ann=process.env.PRISMA_SHOW_ALL_TRACES==="true",cnn="00-10-10-00";lnn=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=jt.getSpanContext(e??Ve.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:cnn}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map,r=e.filter(i=>i.parentId===null);for(let i of r)HVe(t,i,e,n,this.ignoreSpanTypes)}getActiveContext(){return Ve.active()}runInChildSpan(e,t){if(typeof e=="string"&&(e={name:e}),e.internal&&!ann)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),i=`prisma:client:${e.name}`;if(qVe(i,this.ignoreSpanTypes))return t();if(e.active===!1){let s=n.startSpan(i,e,r);return FVe(s,t(s,r))}return n.startActiveSpan(i,e,s=>FVe(s,t(s,r)))}};BVe={name:"@prisma/instrumentation",version:"7.6.0",description:"OpenTelemetry compliant instrumentation for Prisma Client",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",exports:{".":{require:{types:"./dist/index.d.ts",default:"./dist/index.js"},import:{types:"./dist/index.d.ts",default:"./dist/index.mjs"}}},license:"Apache-2.0",homepage:"https://www.prisma.io",repository:{type:"git",url:"https://github.com/prisma/prisma.git",directory:"packages/instrumentation"},bugs:"https://github.com/prisma/prisma/issues",devDependencies:{"@opentelemetry/api":"1.9.0","@prisma/instrumentation-contract":"workspace:*","@types/node":"~20.19.24",typescript:"5.4.5"},dependencies:{"@opentelemetry/instrumentation":"^0.207.0"},peerDependencies:{"@opentelemetry/api":"^1.8"},files:["dist"],keywords:["prisma","instrumentation","opentelemetry","otel"],scripts:{dev:"DEV=true tsx helpers/build.ts",build:"tsx helpers/build.ts",prepublishOnly:"pnpm run build",test:"vitest run"},sideEffects:!1},jVe=BVe.version,fnn=BVe.name,pnn="@prisma/client",zVe=class extends cG.InstrumentationBase{tracerProvider;constructor(e={}){super(fnn,jVe,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new cG.InstrumentationNodeModuleDefinition(pnn,[jVe])]}enable(){let e=this._config;snn(new lnn({tracerProvider:this.tracerProvider??jt.getTracerProvider(),ignoreSpanTypes:e.ignoreSpanTypes??[]}))}disable(){onn()}isEnabled(){return inn()!==void 0}}});function hnn(e){return!!e&&typeof e=="object"&&"dispatchEngineSpans"in e}function WVe(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&typeof e=="object"&&"helper"in e?e.helper:void 0}function mnn(e){return e==="client"?$r.CLIENT:$r.INTERNAL}var VVe,Sne,gnn,KVe,YVe=v(()=>{Ce();GVe();st();sr();VVe="Prisma";Sne=class extends zVe{constructor(t){super(t?.instrumentationConfig)}enable(){super.enable();let t=WVe();hnn(t)&&(t.createEngineSpan=n=>{let r=jt.getTracer("prismaV5Compatibility"),i=r._idGenerator;if(!i){xs(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});return}try{n.spans.forEach(s=>{let o=mnn(s.kind),a=s.parent_span_id,c=s.span_id,u=s.trace_id,l=s.links?.map(f=>({context:{traceId:f.trace_id,spanId:f.span_id,traceFlags:qa.SAMPLED}})),d=jt.setSpanContext(Ve.active(),{traceId:u,spanId:a,traceFlags:qa.SAMPLED});Ve.with(d,()=>{let f={generateTraceId:()=>u,generateSpanId:()=>c};r._idGenerator=f,r.startSpan(s.name,{kind:o,links:l,startTime:s.start_time,attributes:s.attributes}).end(s.end_time),r._idGenerator=i})})}finally{r._idGenerator=i}})}};gnn=rt(VVe,e=>new Sne(e)),KVe=e=>({name:VVe,setupOnce(){gnn(e)},setup(t){WVe()&&t.on("spanStart",n=>{let r=vt(n);r.description?.startsWith("prisma:")&&n.setAttribute(At,"auto.db.otel.prisma"),r.description==="prisma:engine:db_query"&&r.data["db.query.text"]&&n.updateName(r.data["db.query.text"]),r.description==="prisma:engine:db_query"&&!r.data["db.system"]&&n.setAttribute("db.system","prisma")})}})});var ZVe=w(mw=>{"use strict";Object.defineProperty(mw,"__esModule",{value:!0});mw.PACKAGE_NAME=mw.PACKAGE_VERSION=void 0;mw.PACKAGE_VERSION="0.60.0";mw.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"});var bne=w(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});eh.HapiLifecycleMethodNames=eh.HapiLayerType=eh.handlerPatched=eh.HapiComponentName=void 0;eh.HapiComponentName="@hapi/hapi";eh.handlerPatched=Symbol("hapi-handler-patched");eh.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"};eh.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])});var JVe=w(uG=>{"use strict";Object.defineProperty(uG,"__esModule",{value:!0});uG.ATTR_HTTP_METHOD=void 0;uG.ATTR_HTTP_METHOD="http.method"});var Ene=w(xN=>{"use strict";Object.defineProperty(xN,"__esModule",{value:!0});xN.AttributeNames=void 0;var ynn;(function(e){e.HAPI_TYPE="hapi.type",e.PLUGIN_NAME="hapi.plugin.name",e.EXT_TYPE="server.ext.type"})(ynn=xN.AttributeNames||(xN.AttributeNames={}))});var $Ve=w(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.getPluginFromInput=Xs.getExtMetadata=Xs.getRouteMetadata=Xs.isPatchableExtMethod=Xs.isDirectExtInput=Xs.isLifecycleExtEventObj=Xs.isLifecycleExtType=Xs.getPluginName=void 0;var XVe=(Pn(),ke(Mr)),Snn=JVe(),ON=bne(),dS=Ene(),QVe=Jt();function bnn(e){return e.name?e.name:e.pkg.name}Xs.getPluginName=bnn;var Enn=e=>typeof e=="string"&&ON.HapiLifecycleMethodNames.has(e);Xs.isLifecycleExtType=Enn;var _nn=e=>{let t=e?.type;return t!==void 0&&(0,Xs.isLifecycleExtType)(t)};Xs.isLifecycleExtEventObj=_nn;var Tnn=e=>Array.isArray(e)&&e.length<=3&&(0,Xs.isLifecycleExtType)(e[0])&&typeof e[1]=="function";Xs.isDirectExtInput=Tnn;var vnn=e=>!Array.isArray(e);Xs.isPatchableExtMethod=vnn;var Rnn=(e,t,n)=>{let r={[XVe.ATTR_HTTP_ROUTE]:e.path};t&QVe.SemconvStability.OLD&&(r[Snn.ATTR_HTTP_METHOD]=e.method),t&QVe.SemconvStability.STABLE&&(r[XVe.ATTR_HTTP_REQUEST_METHOD]=e.method);let i;return n?(r[dS.AttributeNames.HAPI_TYPE]=ON.HapiLayerType.PLUGIN,r[dS.AttributeNames.PLUGIN_NAME]=n,i=`${n}: route - ${e.path}`):(r[dS.AttributeNames.HAPI_TYPE]=ON.HapiLayerType.ROUTER,i=`route - ${e.path}`),{attributes:r,name:i}};Xs.getRouteMetadata=Rnn;var Ann=(e,t,n)=>{let r=`ext - ${e}`;return n&&n!=="method"&&(r=`ext - ${e} - ${n}`),t?{attributes:{[dS.AttributeNames.EXT_TYPE]:e,[dS.AttributeNames.HAPI_TYPE]:ON.HapiLayerType.EXT,[dS.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[dS.AttributeNames.EXT_TYPE]:e,[dS.AttributeNames.HAPI_TYPE]:ON.HapiLayerType.EXT},name:r}};Xs.getExtMetadata=Ann;var wnn=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e;Xs.getPluginFromInput=wnn});var nWe=w(lG=>{"use strict";Object.defineProperty(lG,"__esModule",{value:!0});lG.HapiInstrumentation=void 0;var gl=(Ce(),ke(Ze)),eWe=fr(),PN=Jt(),tWe=ZVe(),NN=bne(),Dm=$Ve(),_ne=class extends PN.InstrumentationBase{_semconvStability;constructor(t={}){super(tWe.PACKAGE_NAME,tWe.PACKAGE_VERSION,t),this._semconvStability=(0,PN.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new PN.InstrumentationNodeModuleDefinition(NN.HapiComponentName,[">=17.0.0 <22"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return(0,PN.isWrapped)(n.server)||this._wrap(n,"server",this._getServerPatch.bind(this)),(0,PN.isWrapped)(n.Server)||this._wrap(n,"Server",this._getServerPatch.bind(this)),n},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;this._massUnwrap([n],["server","Server"])})}_getServerPatch(t){let n=this,r=this;return function(s){let o=t.apply(this,[s]);return r._wrap(o,"route",a=>n._getServerRoutePatch.bind(n)(a)),r._wrap(o,"ext",a=>n._getServerExtPatch.bind(n)(a)),r._wrap(o,"register",n._getServerRegisterPatch.bind(n)),o}}_getServerRegisterPatch(t){let n=this;return function(i,s){if(Array.isArray(i))for(let o of i){let a=(0,Dm.getPluginFromInput)(o);n._wrapRegisterHandler(a)}else{let o=(0,Dm.getPluginFromInput)(i);n._wrapRegisterHandler(o)}return t.apply(this,[i,s])}}_getServerExtPatch(t,n){let r=this;return function(...s){if(Array.isArray(s[0])){let o=s[0];for(let a=0;an._getServerRoutePatch.bind(n)(u,r)),s._wrap(a,"ext",u=>n._getServerExtPatch.bind(n)(u,r)),i.call(this,a,c)};t.register=o}_wrapExtMethods(t,n,r){let i=this;if(t instanceof Array){for(let s=0;sasync function(...o){if(gl.trace.getSpan(gl.context.active())===void 0)return await s.call(this,...o);let a=(0,eWe.getRPCMetadata)(gl.context.active());a?.type===eWe.RPCType.HTTP&&(a.route=t.path);let c=(0,Dm.getRouteMetadata)(t,r._semconvStability,n),u=r.tracer.startSpan(c.name,{attributes:c.attributes});try{return await gl.context.with(gl.trace.setSpan(gl.context.active(),u),()=>s.call(this,...o))}catch(l){throw u.recordException(l),u.setStatus({code:gl.SpanStatusCode.ERROR,message:l.message}),l}finally{u.end()}};if(typeof t.handler=="function")t.handler=i(t.handler);else if(typeof t.options=="function"){let s=t.options;t.options=function(o){let a=s(o);return typeof a.handler=="function"&&(a.handler=i(a.handler)),a}}else typeof t.options?.handler=="function"&&(t.options.handler=i(t.options.handler));return t}};lG.HapiInstrumentation=_ne});var rWe=w(gw=>{"use strict";Object.defineProperty(gw,"__esModule",{value:!0});gw.AttributeNames=gw.HapiInstrumentation=void 0;var knn=nWe();Object.defineProperty(gw,"HapiInstrumentation",{enumerable:!0,get:function(){return knn.HapiInstrumentation}});var Inn=Ene();Object.defineProperty(gw,"AttributeNames",{enumerable:!0,get:function(){return Inn.AttributeNames}})});var iWe,sWe,oWe,xnn,aWe,cWe=v(()=>{iWe=Re(rWe(),1);sr();sWe="Hapi",oWe=rt(sWe,()=>new iWe.HapiInstrumentation),xnn=(()=>({name:sWe,setupOnce(){oWe()}})),aWe=xnn});var fS,CN,Tne=v(()=>{fS={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},CN={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}});var fG,Onn,Pnn,dG,uWe=v(()=>{Ce();fG=Re(Jt(),1);st();Tne();Onn="@sentry/instrumentation-hono",Pnn="0.0.1",dG=class extends fG.InstrumentationBase{constructor(t={}){super(Onn,Pnn,t)}init(){return[new fG.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],t=>this._patch(t))]}_patch(t){let n=this;class r extends t.Hono{constructor(...s){super(...s),n._wrap(this,"get",n._patchHandler()),n._wrap(this,"post",n._patchHandler()),n._wrap(this,"put",n._patchHandler()),n._wrap(this,"delete",n._patchHandler()),n._wrap(this,"options",n._patchHandler()),n._wrap(this,"patch",n._patchHandler()),n._wrap(this,"all",n._patchHandler()),n._wrap(this,"on",n._patchOnHandler()),n._wrap(this,"use",n._patchMiddlewareHandler())}}try{t.Hono=r}catch{return{...t,Hono:r}}return t}_patchHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_patchOnHandler(){let t=this;return function(n){return function(...i){let s=i.slice(2);return n.apply(this,[...i.slice(0,2),...s.map(o=>t._wrapHandler(o))])}}}_patchMiddlewareHandler(){let t=this;return function(n){return function(...i){if(typeof i[0]=="string"){let s=i[0];if(i.length===1)return n.apply(this,[s]);let o=i.slice(1);return n.apply(this,[s,...o.map(a=>t._wrapHandler(a))])}return n.apply(this,i.map(s=>t._wrapHandler(s)))}}}_wrapHandler(t){let n=this;return function(r,i){if(!n.isEnabled())return t.apply(this,[r,i]);let s=r.req.path,o=n.tracer.startSpan(s);return Ve.with(jt.setSpan(Ve.active(),o),()=>n._safeExecute(()=>{let a=t.apply(this,[r,i]);if(sa(a))return a.then(c=>{let u=n._determineHandlerType(c);return o.setAttributes({[fS.HONO_TYPE]:u,[fS.HONO_NAME]:u===CN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),c});{let c=n._determineHandlerType(a);return o.setAttributes({[fS.HONO_TYPE]:c,[fS.HONO_NAME]:c===CN.REQUEST_HANDLER?s:t.name||"anonymous"}),n.getConfig().responseHook?.(o),a}},()=>o.end(),a=>{n._handleError(o,a),o.end()}))}}_safeExecute(t,n,r){try{let i=t();return sa(i)?i.then(()=>n(),s=>r(s)):n(),i}catch(i){throw r(i),i}}_determineHandlerType(t){return t===void 0?CN.MIDDLEWARE:CN.REQUEST_HANDLER}_handleError(t,n){n instanceof Error&&(t.setStatus({code:as.ERROR,message:n.message}),t.recordException(n))}}});function Nnn(e){let t=vt(e).data,n=t[fS.HONO_TYPE];if(t[zt]||!n)return;e.setAttributes({[At]:"auto.http.otel.hono",[zt]:`${n}.hono`});let r=t[fS.HONO_NAME];if(typeof r=="string"&&e.updateName(r),vn()===Vl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let i=t[lm],s=t[SE];typeof i=="string"&&typeof s=="string"&&vn().setTransactionName(`${s} ${i}`)}var lWe,dWe,Cnn,fWe,pWe=v(()=>{Pn();st();sr();XE();Tne();uWe();lWe="Hono";dWe=rt(lWe,()=>new dG({responseHook:e=>{Nnn(e)}})),Cnn=(()=>({name:lWe,setupOnce(){dWe()}})),fWe=Cnn});var pG=w(MN=>{"use strict";Object.defineProperty(MN,"__esModule",{value:!0});MN.KoaLayerType=void 0;var Mnn;(function(e){e.ROUTER="router",e.MIDDLEWARE="middleware"})(Mnn=MN.KoaLayerType||(MN.KoaLayerType={}))});var hWe=w(yw=>{"use strict";Object.defineProperty(yw,"__esModule",{value:!0});yw.PACKAGE_NAME=yw.PACKAGE_VERSION=void 0;yw.PACKAGE_VERSION="0.62.0";yw.PACKAGE_NAME="@opentelemetry/instrumentation-koa"});var vne=w(DN=>{"use strict";Object.defineProperty(DN,"__esModule",{value:!0});DN.AttributeNames=void 0;var Dnn;(function(e){e.KOA_TYPE="koa.type",e.KOA_NAME="koa.name"})(Dnn=DN.AttributeNames||(DN.AttributeNames={}))});var gWe=w(Sw=>{"use strict";Object.defineProperty(Sw,"__esModule",{value:!0});Sw.isLayerIgnored=Sw.getMiddlewareMetadata=void 0;var mWe=pG(),hG=vne(),Lnn=(Pn(),ke(Mr)),Unn=(e,t,n,r)=>n?{attributes:{[hG.AttributeNames.KOA_NAME]:r?.toString(),[hG.AttributeNames.KOA_TYPE]:mWe.KoaLayerType.ROUTER,[Lnn.ATTR_HTTP_ROUTE]:r?.toString()},name:e._matchedRouteName||`router - ${r}`}:{attributes:{[hG.AttributeNames.KOA_NAME]:t.name??"middleware",[hG.AttributeNames.KOA_TYPE]:mWe.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`};Sw.getMiddlewareMetadata=Unn;var Fnn=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e));Sw.isLayerIgnored=Fnn});var yWe=w(mG=>{"use strict";Object.defineProperty(mG,"__esModule",{value:!0});mG.kLayerPatched=void 0;mG.kLayerPatched=Symbol("koa-layer-patched")});var vWe=w(gG=>{"use strict";Object.defineProperty(gG,"__esModule",{value:!0});gG.KoaInstrumentation=void 0;var th=(Ce(),ke(Ze)),LN=Jt(),SWe=pG(),bWe=hWe(),EWe=gWe(),_We=fr(),TWe=yWe(),Rne=class extends LN.InstrumentationBase{constructor(t={}){super(bWe.PACKAGE_NAME,bWe.PACKAGE_VERSION,t)}init(){return new LN.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;return n==null?n:((0,LN.isWrapped)(n.prototype.use)&&this._unwrap(n.prototype,"use"),this._wrap(n.prototype,"use",this._getKoaUsePatch.bind(this)),t)},t=>{let n=t[Symbol.toStringTag]==="Module"?t.default:t;(0,LN.isWrapped)(n.prototype.use)&&this._unwrap(n.prototype,"use")})}_getKoaUsePatch(t){let n=this;return function(i){let s;return i.router?s=n._patchRouterDispatch(i):s=n._patchLayer(i,!1),t.apply(this,[s])}}_patchRouterDispatch(t){th.diag.debug("Patching @koa/router dispatch");let r=t.router?.stack??[];for(let i of r){let s=i.path,o=i.stack;for(let a=0;a{if(th.trace.getSpan(th.context.active())===void 0)return t(s,o);let c=(0,EWe.getMiddlewareMetadata)(s,t,n,r),u=this.tracer.startSpan(c.name,{attributes:c.attributes}),l=(0,_We.getRPCMetadata)(th.context.active());l?.type===_We.RPCType.HTTP&&s._matchedRoute&&(l.route=s._matchedRoute.toString());let{requestHook:d}=this.getConfig();d&&(0,LN.safeExecuteInTheMiddle)(()=>d(u,{context:s,middlewareLayer:t,layerType:i}),p=>{p&&th.diag.error("koa instrumentation: request hook failed",p)},!0);let f=th.trace.setSpan(th.context.active(),u);return th.context.with(f,async()=>{try{return await t(s,o)}catch(p){throw u.recordException(p),p}finally{u.end()}})})}};gG.KoaInstrumentation=Rne});var RWe=w(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0});pS.KoaLayerType=pS.AttributeNames=pS.KoaInstrumentation=void 0;var jnn=vWe();Object.defineProperty(pS,"KoaInstrumentation",{enumerable:!0,get:function(){return jnn.KoaInstrumentation}});var Hnn=vne();Object.defineProperty(pS,"AttributeNames",{enumerable:!0,get:function(){return Hnn.AttributeNames}});var qnn=pG();Object.defineProperty(pS,"KoaLayerType",{enumerable:!0,get:function(){return qnn.KoaLayerType}})});var AWe,wWe,kWe,Bnn,IWe,xWe=v(()=>{AWe=Re(RWe(),1);Pn();st();sr();XE();wWe="Koa",kWe=rt(wWe,AWe.KoaInstrumentation,(e={})=>({ignoreLayersType:e.ignoreLayersType,requestHook(t,n){Dr(t,"auto.http.otel.koa");let r=vt(t).data,i=r["koa.type"];i&&t.setAttribute(zt,`${i}.koa`);let s=r["koa.name"];if(typeof s=="string"&&t.updateName(s||"< unknown >"),vn()===Vl()){So&&Z.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let o=r[lm],a=n.context?.request?.method?.toUpperCase()||"GET";o&&vn().setTransactionName(`${a} ${o}`)}})),Bnn=((e={})=>({name:wWe,setupOnce(){kWe(e)}})),IWe=Bnn});var Ane=w(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});yf.ConnectNames=yf.ConnectTypes=yf.AttributeNames=void 0;var znn;(function(e){e.CONNECT_TYPE="connect.type",e.CONNECT_NAME="connect.name"})(znn=yf.AttributeNames||(yf.AttributeNames={}));var Gnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request_handler"})(Gnn=yf.ConnectTypes||(yf.ConnectTypes={}));var Vnn;(function(e){e.MIDDLEWARE="middleware",e.REQUEST_HANDLER="request handler"})(Vnn=yf.ConnectNames||(yf.ConnectNames={}))});var OWe=w(bw=>{"use strict";Object.defineProperty(bw,"__esModule",{value:!0});bw.PACKAGE_NAME=bw.PACKAGE_VERSION=void 0;bw.PACKAGE_VERSION="0.57.0";bw.PACKAGE_NAME="@opentelemetry/instrumentation-connect"});var PWe=w(yG=>{"use strict";Object.defineProperty(yG,"__esModule",{value:!0});yG._LAYERS_STORE_PROPERTY=void 0;yG._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")});var NWe=w(mS=>{"use strict";Object.defineProperty(mS,"__esModule",{value:!0});mS.generateRoute=mS.replaceCurrentStackRoute=mS.addNewStackLayer=void 0;var Wnn=(Ce(),ke(Ze)),hS=PWe(),Knn=e=>{Array.isArray(e[hS._LAYERS_STORE_PROPERTY])===!1&&Object.defineProperty(e,hS._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[hS._LAYERS_STORE_PROPERTY].push("/");let t=e[hS._LAYERS_STORE_PROPERTY].length;return()=>{t===e[hS._LAYERS_STORE_PROPERTY].length?e[hS._LAYERS_STORE_PROPERTY].pop():Wnn.diag.warn("Connect: Trying to pop the stack multiple time")}};mS.addNewStackLayer=Knn;var Ynn=(e,t)=>{t&&e[hS._LAYERS_STORE_PROPERTY].splice(-1,1,t)};mS.replaceCurrentStackRoute=Ynn;var Znn=e=>e[hS._LAYERS_STORE_PROPERTY].reduce((t,n)=>t.replace(/\/+$/,"")+n);mS.generateRoute=Znn});var DWe=w(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0});gS.ConnectInstrumentation=gS.ANONYMOUS_NAME=void 0;var Jnn=(Ce(),ke(Ze)),CWe=fr(),Ew=Ane(),MWe=OWe(),SG=Jt(),Xnn=(Pn(),ke(Mr)),wne=NWe();gS.ANONYMOUS_NAME="anonymous";var kne=class extends SG.InstrumentationBase{constructor(t={}){super(MWe.PACKAGE_NAME,MWe.PACKAGE_VERSION,t)}init(){return[new SG.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],t=>this._patchConstructor(t))]}_patchApp(t){(0,SG.isWrapped)(t.use)||this._wrap(t,"use",this._patchUse.bind(this)),(0,SG.isWrapped)(t.handle)||this._wrap(t,"handle",this._patchHandle.bind(this))}_patchConstructor(t){let n=this;return function(...r){let i=t.apply(this,r);return n._patchApp(i),i}}_patchNext(t,n){return function(i){let s=t.apply(this,[i]);return n(),s}}_startSpan(t,n){let r,i,s;t?(r=Ew.ConnectTypes.REQUEST_HANDLER,s=Ew.ConnectNames.REQUEST_HANDLER,i=t):(r=Ew.ConnectTypes.MIDDLEWARE,s=Ew.ConnectNames.MIDDLEWARE,i=n.name||gS.ANONYMOUS_NAME);let o=`${s} - ${i}`,a={attributes:{[Xnn.ATTR_HTTP_ROUTE]:t.length>0?t:"/",[Ew.AttributeNames.CONNECT_TYPE]:r,[Ew.AttributeNames.CONNECT_NAME]:i}};return this.tracer.startSpan(o,a)}_patchMiddleware(t,n){let r=this,i=n.length===4;function s(){if(!r.isEnabled())return n.apply(this,arguments);let[o,a,c]=i?[1,2,3]:[0,1,2],u=arguments[o],l=arguments[a],d=arguments[c];(0,wne.replaceCurrentStackRoute)(u,t);let f=(0,CWe.getRPCMetadata)(Jnn.context.active());t&&f?.type===CWe.RPCType.HTTP&&(f.route=(0,wne.generateRoute)(u));let p="";t?p=`request handler - ${t}`:p=`middleware - ${n.name||gS.ANONYMOUS_NAME}`;let h=r._startSpan(t,n);r._diag.debug("start span",p);let m=!1;function g(){m?r._diag.debug(`span ${h.name} - already finished`):(m=!0,r._diag.debug(`finishing span ${h.name}`),h.end()),l.removeListener("close",g)}return l.addListener("close",g),arguments[c]=r._patchNext(d,g),n.apply(this,arguments)}return Object.defineProperty(s,"length",{value:n.length,writable:!1,configurable:!0}),s}_patchUse(t){let n=this;return function(...r){let i=r[r.length-1],s=r[r.length-2]||"";return r[r.length-1]=n._patchMiddleware(s,i),t.apply(this,r)}}_patchHandle(t){let n=this;return function(){let[r,i]=[0,2],s=arguments[r],o=arguments[i],a=(0,wne.addNewStackLayer)(s);return typeof o=="function"&&(arguments[i]=n._patchOut(o,a)),t.apply(this,arguments)}}_patchOut(t,n){return function(...i){return n(),Reflect.apply(t,this,i)}}};gS.ConnectInstrumentation=kne});var UWe=w(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.ConnectTypes=ad.ConnectNames=ad.AttributeNames=ad.ANONYMOUS_NAME=ad.ConnectInstrumentation=void 0;var LWe=DWe();Object.defineProperty(ad,"ConnectInstrumentation",{enumerable:!0,get:function(){return LWe.ConnectInstrumentation}});Object.defineProperty(ad,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return LWe.ANONYMOUS_NAME}});var Ine=Ane();Object.defineProperty(ad,"AttributeNames",{enumerable:!0,get:function(){return Ine.AttributeNames}});Object.defineProperty(ad,"ConnectNames",{enumerable:!0,get:function(){return Ine.ConnectNames}});Object.defineProperty(ad,"ConnectTypes",{enumerable:!0,get:function(){return Ine.ConnectTypes}})});var FWe,jWe,HWe,Qnn,qWe,BWe=v(()=>{FWe=Re(UWe(),1);sr();jWe="Connect",HWe=rt(jWe,()=>new FWe.ConnectInstrumentation),Qnn=(()=>({name:jWe,setupOnce(){HWe()}})),qWe=Qnn});var zWe=w(zo=>{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});zo.DB_SYSTEM_VALUE_MSSQL=zo.ATTR_NET_PEER_PORT=zo.ATTR_NET_PEER_NAME=zo.ATTR_DB_USER=zo.ATTR_DB_SYSTEM=zo.ATTR_DB_STATEMENT=zo.ATTR_DB_SQL_TABLE=zo.ATTR_DB_NAME=void 0;zo.ATTR_DB_NAME="db.name";zo.ATTR_DB_SQL_TABLE="db.sql.table";zo.ATTR_DB_STATEMENT="db.statement";zo.ATTR_DB_SYSTEM="db.system";zo.ATTR_DB_USER="db.user";zo.ATTR_NET_PEER_NAME="net.peer.name";zo.ATTR_NET_PEER_PORT="net.peer.port";zo.DB_SYSTEM_VALUE_MSSQL="mssql"});var GWe=w(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});_w.once=_w.getSpanName=void 0;function $nn(e,t,n,r){return e==="execBulkLoad"&&r&&t?`${e} ${r} ${t}`:e==="callProcedure"?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`}_w.getSpanName=$nn;var ern=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}};_w.once=ern});var VWe=w(Tw=>{"use strict";Object.defineProperty(Tw,"__esModule",{value:!0});Tw.PACKAGE_NAME=Tw.PACKAGE_VERSION=void 0;Tw.PACKAGE_VERSION="0.33.0";Tw.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"});var JWe=w(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0});SS.TediousInstrumentation=SS.INJECTED_CTX=void 0;var vw=(Ce(),ke(Ze)),trn=K("events"),nh=Jt(),u_=(Pn(),ke(Mr)),yS=zWe(),WWe=GWe(),KWe=VWe(),ZWe=Symbol("opentelemetry.instrumentation-tedious.current-database");SS.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");var YWe=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function bG(e){Object.defineProperty(this,ZWe,{value:e,writable:!0})}var xne=class e extends nh.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(t={}){super(KWe.PACKAGE_NAME,KWe.PACKAGE_VERSION,t),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,nh.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,nh.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new nh.InstrumentationNodeModuleDefinition(e.COMPONENT,[">=1.11.0 <20"],t=>{let n=t.Connection.prototype;for(let r of YWe)(0,nh.isWrapped)(n[r])&&this._unwrap(n,r),this._wrap(n,r,this._patchQuery(r,t));return(0,nh.isWrapped)(n.connect)&&this._unwrap(n,"connect"),this._wrap(n,"connect",this._patchConnect),t},t=>{if(t===void 0)return;let n=t.Connection.prototype;for(let r of YWe)this._unwrap(n,r);this._unwrap(n,"connect")})]}_patchConnect(t){return function(){return bG.call(this,this.config?.options?.database),this.removeListener("databaseChange",bG),this.on("databaseChange",bG),this.once("end",()=>{this.removeListener("databaseChange",bG)}),t.apply(this,arguments)}}_buildTraceparent(t){let n=t.spanContext();return`00-${n.traceId}-${n.spanId}-0${Number(n.traceFlags||vw.TraceFlags.NONE).toString(16)}`}_injectContextInfo(t,n,r){return new Promise(i=>{try{let s="set context_info @opentelemetry_traceparent",o=new n.Request(s,c=>{i()});Object.defineProperty(o,SS.INJECTED_CTX,{value:!0});let a=Buffer.from(r,"utf8");o.addParameter("opentelemetry_traceparent",n.TYPES.VarBinary,a,{length:a.length}),t.execSql(o)}catch{i()}})}_shouldInjectFor(t){return t==="execSql"||t==="execSqlBatch"||t==="callProcedure"||t==="execute"}_patchQuery(t,n){return r=>{let i=this;function s(o){if(o?.[SS.INJECTED_CTX])return r.apply(this,arguments);if(!(o instanceof trn.EventEmitter))return i._diag.warn(`Unexpected invocation of patched ${t} method. Span not recorded`),r.apply(this,arguments);let a=0,c=0,u=()=>c++,l=()=>a++,d=this[ZWe],f=(E=>E.sqlTextOrProcedure==="sp_prepare"&&E.parametersByName?.stmt?.value?E.parametersByName.stmt.value:E.sqlTextOrProcedure)(o),p={};i._dbSemconvStability&nh.SemconvStability.OLD&&(p[yS.ATTR_DB_SYSTEM]=yS.DB_SYSTEM_VALUE_MSSQL,p[yS.ATTR_DB_NAME]=d,p[yS.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,p[yS.ATTR_DB_STATEMENT]=f,p[yS.ATTR_DB_SQL_TABLE]=o.table),i._dbSemconvStability&nh.SemconvStability.STABLE&&(p[u_.ATTR_DB_NAMESPACE]=d,p[u_.ATTR_DB_SYSTEM_NAME]=u_.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,p[u_.ATTR_DB_QUERY_TEXT]=f,p[u_.ATTR_DB_COLLECTION_NAME]=o.table),i._netSemconvStability&nh.SemconvStability.OLD&&(p[yS.ATTR_NET_PEER_NAME]=this.config?.server,p[yS.ATTR_NET_PEER_PORT]=this.config?.options?.port),i._netSemconvStability&nh.SemconvStability.STABLE&&(p[u_.ATTR_SERVER_ADDRESS]=this.config?.server,p[u_.ATTR_SERVER_PORT]=this.config?.options?.port);let h=i.tracer.startSpan((0,WWe.getSpanName)(t,d,f,o.table),{kind:vw.SpanKind.CLIENT,attributes:p}),m=(0,WWe.once)(E=>{o.removeListener("done",u),o.removeListener("doneInProc",u),o.removeListener("doneProc",l),o.removeListener("error",m),this.removeListener("end",m),h.setAttribute("tedious.procedure_count",a),h.setAttribute("tedious.statement_count",c),E&&h.setStatus({code:vw.SpanStatusCode.ERROR,message:E.message}),h.end()});o.on("done",u),o.on("doneInProc",u),o.on("doneProc",l),o.once("error",m),this.on("end",m),typeof o.callback=="function"?i._wrap(o,"callback",i._patchCallbackQuery(m)):i._diag.error("Expected request.callback to be a function");let g=()=>vw.context.with(vw.trace.setSpan(vw.context.active(),h),r,this,...arguments);if(!(i.getConfig().enableTraceContextPropagation&&i._shouldInjectFor(t)))return g();let S=i._buildTraceparent(h);i._injectContextInfo(this,n,S).finally(g)}return Object.defineProperty(s,"length",{value:r.length,writable:!1}),s}}_patchCallbackQuery(t){return n=>function(r,i,s){return t(r),n.apply(this,arguments)}}};SS.TediousInstrumentation=xne});var XWe=w(EG=>{"use strict";Object.defineProperty(EG,"__esModule",{value:!0});EG.TediousInstrumentation=void 0;var nrn=JWe();Object.defineProperty(EG,"TediousInstrumentation",{enumerable:!0,get:function(){return nrn.TediousInstrumentation}})});var QWe,rrn,$We,e4e,irn,t4e,n4e=v(()=>{QWe=Re(XWe(),1);st();sr();rrn=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),$We="Tedious",e4e=rt($We,()=>new QWe.TediousInstrumentation({})),irn=(()=>{let e;return{name:$We,setupOnce(){let t=e4e();e=yP(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let{description:r,data:i}=vt(n);if(!r||i["db.system"]!=="mssql")return;let s=r.split(" ")[0]||"";rrn.has(s)&&n.setAttribute(At,"auto.db.otel.tedious")}))}}}),t4e=irn});var r4e=w(Rw=>{"use strict";Object.defineProperty(Rw,"__esModule",{value:!0});Rw.PACKAGE_NAME=Rw.PACKAGE_VERSION=void 0;Rw.PACKAGE_VERSION="0.57.0";Rw.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"});var s4e=w(_G=>{"use strict";Object.defineProperty(_G,"__esModule",{value:!0});_G.GenericPoolInstrumentation=void 0;var Aw=(Ce(),ke(Ze)),l_=Jt(),i4e=r4e(),One="generic-pool",Pne=class extends l_.InstrumentationBase{_isDisabled=!1;constructor(t={}){super(i4e.PACKAGE_NAME,i4e.PACKAGE_VERSION,t)}init(){return[new l_.InstrumentationNodeModuleDefinition(One,[">=3.0.0 <4"],t=>{let n=t.Pool;return(0,l_.isWrapped)(n.prototype.acquire)&&this._unwrap(n.prototype,"acquire"),this._wrap(n.prototype,"acquire",this._acquirePatcher.bind(this)),t},t=>{let n=t.Pool;return this._unwrap(n.prototype,"acquire"),t}),new l_.InstrumentationNodeModuleDefinition(One,[">=2.4.0 <3"],t=>{let n=t.Pool;return(0,l_.isWrapped)(n.prototype.acquire)&&this._unwrap(n.prototype,"acquire"),this._wrap(n.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),t},t=>{let n=t.Pool;return this._unwrap(n.prototype,"acquire"),t}),new l_.InstrumentationNodeModuleDefinition(One,[">=2.0.0 <2.4"],t=>(this._isDisabled=!1,(0,l_.isWrapped)(t.Pool)&&this._unwrap(t,"Pool"),this._wrap(t,"Pool",this._poolWrapper.bind(this)),t),t=>(this._isDisabled=!0,t))]}_acquirePatcher(t){let n=this;return function(...i){let s=Aw.context.active(),o=n.tracer.startSpan("generic-pool.acquire",{},s);return Aw.context.with(Aw.trace.setSpan(s,o),()=>t.call(this,...i).then(a=>(o.end(),a),a=>{throw o.recordException(a),o.end(),a}))}}_poolWrapper(t){let n=this;return function(){let i=t.apply(this,arguments);return n._wrap(i,"acquire",n._acquireWithCallbacksPatcher.bind(n)),i}}_acquireWithCallbacksPatcher(t){let n=this;return function(i,s){if(n._isDisabled)return t.call(this,i,s);let o=Aw.context.active(),a=n.tracer.startSpan("generic-pool.acquire",{},o);return Aw.context.with(Aw.trace.setSpan(o,a),()=>{t.call(this,(c,u)=>{if(a.end(),i)return i(c,u)},s)})}}};_G.GenericPoolInstrumentation=Pne});var o4e=w(TG=>{"use strict";Object.defineProperty(TG,"__esModule",{value:!0});TG.GenericPoolInstrumentation=void 0;var srn=s4e();Object.defineProperty(TG,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return srn.GenericPoolInstrumentation}})});var a4e,c4e,u4e,orn,l4e,d4e=v(()=>{a4e=Re(o4e(),1);st();sr();c4e="GenericPool",u4e=rt(c4e,()=>new a4e.GenericPoolInstrumentation({})),orn=(()=>{let e;return{name:c4e,setupOnce(){let t=u4e();e=yP(t)},setup(t){e?.(()=>t.on("spanStart",n=>{let i=vt(n).description;(i==="generic-pool.aquire"||i==="generic-pool.acquire")&&n.setAttribute(At,"auto.db.otel.generic_pool")}))}}}),l4e=orn});var Nne=w(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});rh.ATTR_NET_PEER_PORT=rh.ATTR_NET_PEER_NAME=rh.ATTR_MESSAGING_SYSTEM=rh.ATTR_MESSAGING_OPERATION=void 0;rh.ATTR_MESSAGING_OPERATION="messaging.operation";rh.ATTR_MESSAGING_SYSTEM="messaging.system";rh.ATTR_NET_PEER_NAME="net.peer.name";rh.ATTR_NET_PEER_PORT="net.peer.port"});var Cne=w(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});fs.ATTR_MESSAGING_CONVERSATION_ID=fs.OLD_ATTR_MESSAGING_MESSAGE_ID=fs.MESSAGING_DESTINATION_KIND_VALUE_TOPIC=fs.ATTR_MESSAGING_URL=fs.ATTR_MESSAGING_PROTOCOL_VERSION=fs.ATTR_MESSAGING_PROTOCOL=fs.MESSAGING_OPERATION_VALUE_PROCESS=fs.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY=fs.ATTR_MESSAGING_DESTINATION_KIND=fs.ATTR_MESSAGING_DESTINATION=void 0;fs.ATTR_MESSAGING_DESTINATION="messaging.destination";fs.ATTR_MESSAGING_DESTINATION_KIND="messaging.destination_kind";fs.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key";fs.MESSAGING_OPERATION_VALUE_PROCESS="process";fs.ATTR_MESSAGING_PROTOCOL="messaging.protocol";fs.ATTR_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version";fs.ATTR_MESSAGING_URL="messaging.url";fs.MESSAGING_DESTINATION_KIND_VALUE_TOPIC="topic";fs.OLD_ATTR_MESSAGING_MESSAGE_ID="messaging.message_id";fs.ATTR_MESSAGING_CONVERSATION_ID="messaging.conversation_id"});var Mne=w(d_=>{"use strict";Object.defineProperty(d_,"__esModule",{value:!0});d_.DEFAULT_CONFIG=d_.EndOperation=void 0;var arn;(function(e){e.AutoAck="auto ack",e.Ack="ack",e.AckAll="ackAll",e.Reject="reject",e.Nack="nack",e.NackAll="nackAll",e.ChannelClosed="channel closed",e.ChannelError="channel error",e.InstrumentationTimeout="instrumentation timeout"})(arn=d_.EndOperation||(d_.EndOperation={}));d_.DEFAULT_CONFIG={consumeTimeoutMs:1e3*60,useLinksForConsume:!1}});var m4e=w(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});ps.isConfirmChannelTracing=ps.unmarkConfirmChannelTracing=ps.markConfirmChannelTracing=ps.getConnectionAttributesFromUrl=ps.getConnectionAttributesFromServer=ps.normalizeExchange=ps.CONNECTION_ATTRIBUTES=ps.CHANNEL_CONSUME_TIMEOUT_TIMER=ps.CHANNEL_SPANS_NOT_ENDED=ps.MESSAGE_STORED_SPAN=void 0;var Dne=(Ce(),ke(Ze)),bS=Jt(),vG=(Pn(),ke(Mr)),UN=Nne(),RG=Cne();ps.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span");ps.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended");ps.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer");ps.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");var Lne=(0,Dne.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel"),crn=e=>e!==""?e:"";ps.normalizeExchange=crn;var urn=e=>e.replace(/:[^:@/]*@/,":***@"),f4e=(e,t)=>e||(t==="AMQP"?5672:5671),p4e=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},h4e=e=>e||"localhost",ih=(e,t,n,r)=>n?{[t]:n}:(Dne.diag.error(`amqplib instrumentation: could not extract connection attribute ${r} from user supplied url`,{url:e}),{}),lrn=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[UN.ATTR_MESSAGING_SYSTEM]:t}:{}};ps.getConnectionAttributesFromServer=lrn;var drn=(e,t)=>{let n={[RG.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if(e=e||"amqp://localhost",typeof e=="object"){let r=e,i=p4e(r?.protocol);Object.assign(n,{...ih(e,RG.ATTR_MESSAGING_PROTOCOL,i,"protocol")});let s=h4e(r?.hostname);t&bS.SemconvStability.OLD&&Object.assign(n,{...ih(e,UN.ATTR_NET_PEER_NAME,s,"hostname")}),t&bS.SemconvStability.STABLE&&Object.assign(n,{...ih(e,vG.ATTR_SERVER_ADDRESS,s,"hostname")});let o=f4e(r.port,i);t&bS.SemconvStability.OLD&&Object.assign(n,ih(e,UN.ATTR_NET_PEER_PORT,o,"port")),t&bS.SemconvStability.STABLE&&Object.assign(n,ih(e,vG.ATTR_SERVER_PORT,o,"port"))}else{let r=urn(e);n[RG.ATTR_MESSAGING_URL]=r;try{let i=new URL(r),s=p4e(i.protocol);Object.assign(n,{...ih(r,RG.ATTR_MESSAGING_PROTOCOL,s,"protocol")});let o=h4e(i.hostname);t&bS.SemconvStability.OLD&&Object.assign(n,{...ih(r,UN.ATTR_NET_PEER_NAME,o,"hostname")}),t&bS.SemconvStability.STABLE&&Object.assign(n,{...ih(r,vG.ATTR_SERVER_ADDRESS,o,"hostname")});let a=f4e(i.port?parseInt(i.port):void 0,s);t&bS.SemconvStability.OLD&&Object.assign(n,ih(r,UN.ATTR_NET_PEER_PORT,a,"port")),t&bS.SemconvStability.STABLE&&Object.assign(n,ih(r,vG.ATTR_SERVER_PORT,a,"port"))}catch(i){Dne.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:r,err:i})}}return n};ps.getConnectionAttributesFromUrl=drn;var frn=e=>e.setValue(Lne,!0);ps.markConfirmChannelTracing=frn;var prn=e=>e.deleteValue(Lne);ps.unmarkConfirmChannelTracing=prn;var hrn=e=>e.getValue(Lne)===!0;ps.isConfirmChannelTracing=hrn});var g4e=w(ww=>{"use strict";Object.defineProperty(ww,"__esModule",{value:!0});ww.PACKAGE_NAME=ww.PACKAGE_VERSION=void 0;ww.PACKAGE_VERSION="0.61.0";ww.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"});var S4e=w(kG=>{"use strict";Object.defineProperty(kG,"__esModule",{value:!0});kG.AmqplibInstrumentation=void 0;var Zi=(Ce(),ke(Ze)),AG=fr(),pr=Jt(),mrn=Nne(),yl=Cne(),Hc=Mne(),hs=m4e(),y4e=g4e(),wG=[">=0.5.5 <1"],Une=class extends pr.InstrumentationBase{_netSemconvStability;constructor(t={}){super(y4e.PACKAGE_NAME,y4e.PACKAGE_VERSION,{...Hc.DEFAULT_CONFIG,...t}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,pr.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(t={}){super.setConfig({...Hc.DEFAULT_CONFIG,...t})}init(){let t=new pr.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",wG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new pr.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",wG,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),r=new pr.InstrumentationNodeModuleFile("amqplib/lib/connect.js",wG,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new pr.InstrumentationNodeModuleDefinition("amqplib",wG,void 0,void 0,[t,r,n])}patchConnect(t){return t=this.unpatchConnect(t),(0,pr.isWrapped)(t.connect)||this._wrap(t,"connect",this.getConnectPatch.bind(this)),t}unpatchConnect(t){return(0,pr.isWrapped)(t.connect)&&this._unwrap(t,"connect"),t}patchChannelModel(t,n){return(0,pr.isWrapped)(t.Channel.prototype.publish)||this._wrap(t.Channel.prototype,"publish",this.getPublishPatch.bind(this,n)),(0,pr.isWrapped)(t.Channel.prototype.consume)||this._wrap(t.Channel.prototype,"consume",this.getConsumePatch.bind(this,n)),(0,pr.isWrapped)(t.Channel.prototype.ack)||this._wrap(t.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,Hc.EndOperation.Ack)),(0,pr.isWrapped)(t.Channel.prototype.nack)||this._wrap(t.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,Hc.EndOperation.Nack)),(0,pr.isWrapped)(t.Channel.prototype.reject)||this._wrap(t.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,Hc.EndOperation.Reject)),(0,pr.isWrapped)(t.Channel.prototype.ackAll)||this._wrap(t.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,Hc.EndOperation.AckAll)),(0,pr.isWrapped)(t.Channel.prototype.nackAll)||this._wrap(t.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,Hc.EndOperation.NackAll)),(0,pr.isWrapped)(t.Channel.prototype.emit)||this._wrap(t.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,pr.isWrapped)(t.ConfirmChannel.prototype.publish)||this._wrap(t.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,n)),t}unpatchChannelModel(t){return(0,pr.isWrapped)(t.Channel.prototype.publish)&&this._unwrap(t.Channel.prototype,"publish"),(0,pr.isWrapped)(t.Channel.prototype.consume)&&this._unwrap(t.Channel.prototype,"consume"),(0,pr.isWrapped)(t.Channel.prototype.ack)&&this._unwrap(t.Channel.prototype,"ack"),(0,pr.isWrapped)(t.Channel.prototype.nack)&&this._unwrap(t.Channel.prototype,"nack"),(0,pr.isWrapped)(t.Channel.prototype.reject)&&this._unwrap(t.Channel.prototype,"reject"),(0,pr.isWrapped)(t.Channel.prototype.ackAll)&&this._unwrap(t.Channel.prototype,"ackAll"),(0,pr.isWrapped)(t.Channel.prototype.nackAll)&&this._unwrap(t.Channel.prototype,"nackAll"),(0,pr.isWrapped)(t.Channel.prototype.emit)&&this._unwrap(t.Channel.prototype,"emit"),(0,pr.isWrapped)(t.ConfirmChannel.prototype.publish)&&this._unwrap(t.ConfirmChannel.prototype,"publish"),t}getConnectPatch(t){let n=this;return function(i,s,o){return t.call(this,i,s,function(a,c){if(a==null){let u=(0,hs.getConnectionAttributesFromUrl)(i,n._netSemconvStability),l=(0,hs.getConnectionAttributesFromServer)(c);c[hs.CONNECTION_ATTRIBUTES]={...u,...l}}o.apply(this,arguments)})}}getChannelEmitPatch(t){let n=this;return function(i){if(i==="close"){n.endAllSpansOnChannel(this,!0,Hc.EndOperation.ChannelClosed,void 0);let s=this[hs.CHANNEL_CONSUME_TIMEOUT_TIMER];s&&clearInterval(s),this[hs.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else i==="error"&&n.endAllSpansOnChannel(this,!0,Hc.EndOperation.ChannelError,void 0);return t.apply(this,arguments)}}getAckAllPatch(t,n,r){let i=this;return function(o){return i.endAllSpansOnChannel(this,t,n,o),r.apply(this,arguments)}}getAckPatch(t,n,r){let i=this;return function(o,a,c){let u=this,l=n===Hc.EndOperation.Reject?a:c,d=u[hs.CHANNEL_SPANS_NOT_ENDED]??[],f=d.findIndex(p=>p.msg===o);if(f<0)i.endConsumerSpan(o,t,n,l);else if(n!==Hc.EndOperation.Reject&&a){for(let p=0;p<=f;p++)i.endConsumerSpan(d[p].msg,t,n,l);d.splice(0,f+1)}else i.endConsumerSpan(o,t,n,l),d.splice(f,1);return r.apply(this,arguments)}}getConsumePatch(t,n){let r=this;return function(s,o,a){let c=this;if(!Object.prototype.hasOwnProperty.call(c,hs.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:l}=r.getConfig();if(l){let d=setInterval(()=>{r.checkConsumeTimeoutOnChannel(c)},l);d.unref(),c[hs.CHANNEL_CONSUME_TIMEOUT_TIMER]=d}c[hs.CHANNEL_SPANS_NOT_ENDED]=[]}let u=function(l){if(!l)return o.call(this,l);let d=l.properties.headers??{},f=Zi.propagation.extract(Zi.ROOT_CONTEXT,d),p=l.fields?.exchange,h;if(r._config.useLinksForConsume){let b=f?Zi.trace.getSpan(f)?.spanContext():void 0;f=void 0,b&&(h=[{context:b}])}let m=r.tracer.startSpan(`${s} process`,{kind:Zi.SpanKind.CONSUMER,attributes:{...c?.connection?.[hs.CONNECTION_ATTRIBUTES],[yl.ATTR_MESSAGING_DESTINATION]:p,[yl.ATTR_MESSAGING_DESTINATION_KIND]:yl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[yl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:l.fields?.routingKey,[mrn.ATTR_MESSAGING_OPERATION]:yl.MESSAGING_OPERATION_VALUE_PROCESS,[yl.OLD_ATTR_MESSAGING_MESSAGE_ID]:l?.properties.messageId,[yl.ATTR_MESSAGING_CONVERSATION_ID]:l?.properties.correlationId},links:h},f),{consumeHook:g}=r.getConfig();g&&(0,pr.safeExecuteInTheMiddle)(()=>g(m,{moduleVersion:t,msg:l}),b=>{b&&Zi.diag.error("amqplib instrumentation: consumerHook error",b)},!0),a?.noAck||(c[hs.CHANNEL_SPANS_NOT_ENDED].push({msg:l,timeOfConsume:(0,AG.hrTime)()}),l[hs.MESSAGE_STORED_SPAN]=m);let y=f||Zi.ROOT_CONTEXT;Zi.context.with(Zi.trace.setSpan(y,m),()=>{o.call(this,l)}),a?.noAck&&(r.callConsumeEndHook(m,l,!1,Hc.EndOperation.AutoAck),m.end())};return arguments[1]=u,n.apply(this,arguments)}}getConfirmedPublishPatch(t,n){let r=this;return function(s,o,a,c,u){let l=this,{span:d,modifiedOptions:f}=r.createPublishSpan(r,s,o,l,c),{publishHook:p}=r.getConfig();p&&(0,pr.safeExecuteInTheMiddle)(()=>p(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:f,isConfirmChannel:!0}),y=>{y&&Zi.diag.error("amqplib instrumentation: publishHook error",y)},!0);let h=function(y,b){try{u?.call(this,y,b)}finally{let{publishConfirmHook:S}=r.getConfig();S&&(0,pr.safeExecuteInTheMiddle)(()=>S(d,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:c,isConfirmChannel:!0,confirmError:y}),E=>{E&&Zi.diag.error("amqplib instrumentation: publishConfirmHook error",E)},!0),y&&d.setStatus({code:Zi.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),d.end()}},m=(0,hs.markConfirmChannelTracing)(Zi.context.active()),g=[...arguments];return g[3]=f,g[4]=Zi.context.bind((0,hs.unmarkConfirmChannelTracing)(Zi.trace.setSpan(m,d)),h),Zi.context.with(m,n.bind(this,...g))}}getPublishPatch(t,n){let r=this;return function(s,o,a,c){if((0,hs.isConfirmChannelTracing)(Zi.context.active()))return n.apply(this,arguments);{let u=this,{span:l,modifiedOptions:d}=r.createPublishSpan(r,s,o,u,c),{publishHook:f}=r.getConfig();f&&(0,pr.safeExecuteInTheMiddle)(()=>f(l,{moduleVersion:t,exchange:s,routingKey:o,content:a,options:d,isConfirmChannel:!1}),m=>{m&&Zi.diag.error("amqplib instrumentation: publishHook error",m)},!0);let p=[...arguments];p[3]=d;let h=n.apply(this,p);return l.end(),h}}}createPublishSpan(t,n,r,i,s){let o=(0,hs.normalizeExchange)(n),a=t.tracer.startSpan(`publish ${o}`,{kind:Zi.SpanKind.PRODUCER,attributes:{...i.connection[hs.CONNECTION_ATTRIBUTES],[yl.ATTR_MESSAGING_DESTINATION]:n,[yl.ATTR_MESSAGING_DESTINATION_KIND]:yl.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[yl.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:r,[yl.OLD_ATTR_MESSAGING_MESSAGE_ID]:s?.messageId,[yl.ATTR_MESSAGING_CONVERSATION_ID]:s?.correlationId}}),c=s??{};return c.headers=c.headers??{},Zi.propagation.inject(Zi.trace.setSpan(Zi.context.active(),a),c.headers),{span:a,modifiedOptions:c}}endConsumerSpan(t,n,r,i){let s=t[hs.MESSAGE_STORED_SPAN];s&&(n!==!1&&s.setStatus({code:Zi.SpanStatusCode.ERROR,message:r!==Hc.EndOperation.ChannelClosed&&r!==Hc.EndOperation.ChannelError?`${r} called on message${i===!0?" with requeue":i===!1?" without requeue":""}`:r}),this.callConsumeEndHook(s,t,n,r),s.end(),t[hs.MESSAGE_STORED_SPAN]=void 0)}endAllSpansOnChannel(t,n,r,i){(t[hs.CHANNEL_SPANS_NOT_ENDED]??[]).forEach(o=>{this.endConsumerSpan(o.msg,n,r,i)}),t[hs.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(t,n,r,i){let{consumeEndHook:s}=this.getConfig();s&&(0,pr.safeExecuteInTheMiddle)(()=>s(t,{msg:n,rejected:r,endOperation:i}),o=>{o&&Zi.diag.error("amqplib instrumentation: consumerEndHook error",o)},!0)}checkConsumeTimeoutOnChannel(t){let n=(0,AG.hrTime)(),r=t[hs.CHANNEL_SPANS_NOT_ENDED]??[],i,{consumeTimeoutMs:s}=this.getConfig();for(i=0;i{"use strict";Object.defineProperty(ES,"__esModule",{value:!0});ES.EndOperation=ES.DEFAULT_CONFIG=ES.AmqplibInstrumentation=void 0;var grn=S4e();Object.defineProperty(ES,"AmqplibInstrumentation",{enumerable:!0,get:function(){return grn.AmqplibInstrumentation}});var b4e=Mne();Object.defineProperty(ES,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return b4e.DEFAULT_CONFIG}});Object.defineProperty(ES,"EndOperation",{enumerable:!0,get:function(){return b4e.EndOperation}})});var _4e,T4e,yrn,v4e,Srn,R4e,A4e=v(()=>{_4e=Re(E4e(),1);sr();T4e="Amqplib",yrn={consumeEndHook:e=>{Dr(e,"auto.amqplib.otel.consumer")},publishHook:e=>{Dr(e,"auto.amqplib.otel.publisher")}},v4e=rt(T4e,()=>new _4e.AmqplibInstrumentation(yrn)),Srn=(()=>({name:T4e,setupOnce(){v4e()}})),R4e=Srn});var FN,Fne=v(()=>{FN="VercelAI"});function Ern(e){if(typeof e!="object"||e===null)return!1;let t=e;return"type"in t&&"error"in t&&"toolName"in t&&"toolCallId"in t&&t.type==="tool-error"&&t.error instanceof Error}function _rn(e){if(typeof e!="object"||e===null||!("content"in e))return;let t=e;Array.isArray(t.content)&&(Trn(t.content),vrn(t.content))}function Trn(e){for(let t of e){if(!Ern(t))continue;let n=vQ(t.toolCallId);n?Ja(r=>{r.setContext("trace",{trace_id:n.traceId,span_id:n.spanId}),r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})}):Ja(r=>{r.setTag("vercel.ai.tool.name",t.toolName),r.setTag("vercel.ai.tool.callId",t.toolCallId),r.setLevel("error"),Wt(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}function vrn(e){for(let t of e)typeof t=="object"&&t!==null&&"toolCallId"in t&&typeof t.toolCallId=="string"&&RQ(t.toolCallId)}function Rrn(e,t,n,r){let i=e?.recordInputs!==void 0?e.recordInputs:t.recordInputs!==void 0?t.recordInputs:n===!0?!0:r,s=e?.recordOutputs!==void 0?e.recordOutputs:t.recordOutputs!==void 0?t.recordOutputs:n===!0?!0:r;return{recordInputs:i,recordOutputs:s}}var xG,brn,w4e,IG,k4e=v(()=>{xG=Re(Jt(),1);st();Fne();brn=[">=3.0.0 <7"],w4e=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];IG=class e extends xG.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(t={}){super("@sentry/instrumentation-vercel-ai",Nn,t),e.prototype.__init.call(this),e.prototype.__init2.call(this)}init(){return new xG.InstrumentationNodeModuleDefinition("ai",brn,this._patch.bind(this))}callWhenPatched(t){this._isPatched?t():this._callbacks.push(t)}_patch(t){this._isPatched=!0,this._callbacks.forEach(r=>r()),this._callbacks=[];let n=r=>new Proxy(r,{apply:(i,s,o)=>{let a=o[0].experimental_telemetry||{},c=a.isEnabled,u=ct(),l=u?.getIntegrationByName(FN),d=l?.options,f=l?!!u?.getOptions().sendDefaultPii:!1,{recordInputs:p,recordOutputs:h}=Rrn(d,a,c,f);return o[0].experimental_telemetry={...a,isEnabled:c!==void 0?c:!0,recordInputs:p,recordOutputs:h},uf(()=>Reflect.apply(i,s,o),m=>{m&&typeof m=="object"&&zs(m,"_sentry_active_span",Kl())},()=>{},m=>{_rn(m)})}});if(Object.prototype.toString.call(t)==="[object Module]"){for(let r of w4e)t[r]!=null&&(t[r]=n(t[r]));return t}else{let r=w4e.reduce((i,s)=>(t[s]!=null&&(i[s]=n(t[s])),i),{});return{...t,...r}}}}});function Arn(e){return!!e.getIntegrationByName("Modules")?.getModules?.()?.ai}var I4e,wrn,x4e,O4e=v(()=>{st();sr();Fne();k4e();I4e=rt(FN,()=>new IG({}));wrn=((e={})=>{let t;return{name:FN,options:e,setupOnce(){t=I4e()},afterAllSetup(n){e.force??Arn(n)?DH(n):t?.callWhenPatched(()=>DH(n))}}}),x4e=wrn});var PG,krn,OG,P4e=v(()=>{PG=Re(Jt(),1);st();krn=[">=4.0.0 <7"],OG=class extends PG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-openai",Nn,t)}init(){return new PG.InstrumentationNodeModuleDefinition("openai",krn,this._patch.bind(this))}_patch(t){let n=t;return n=this._patchClient(n,"OpenAI"),n=this._patchClient(n,"AzureOpenAI"),n}_patchClient(t,n){let r=t[n];if(!r)return t;let i=this.getConfig(),s=function(...o){if(DE(Gy))return Reflect.construct(r,o);let a=Reflect.construct(r,o);return FH(a,i)};Object.setPrototypeOf(s,r),Object.setPrototypeOf(s.prototype,r.prototype);for(let o of Object.getOwnPropertyNames(r))if(!["length","name","prototype"].includes(o)){let a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(s,o,a)}try{t[n]=s}catch{Object.defineProperty(t,n,{value:s,writable:!0,configurable:!0,enumerable:!0})}if(t.default===r)try{t.default=s}catch{Object.defineProperty(t,"default",{value:s,writable:!0,configurable:!0,enumerable:!0})}return t}}});var N4e,Irn,C4e,M4e=v(()=>{st();sr();P4e();N4e=rt(Gy,e=>new OG(e)),Irn=((e={})=>({name:Gy,setupOnce(){N4e(e)}})),C4e=Irn});var CG,xrn,NG,D4e=v(()=>{CG=Re(Jt(),1);st();xrn=[">=0.19.2 <1.0.0"],NG=class extends CG.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-anthropic-ai",Nn,t)}init(){return new CG.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",xrn,this._patch.bind(this))}_patch(t){let n=t.Anthropic,r=this.getConfig(),i=function(...s){if(DE(Vy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return jH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}try{t.Anthropic=i}catch{Object.defineProperty(t,"Anthropic",{value:i,writable:!0,configurable:!0,enumerable:!0})}if(t.default===n)try{t.default=i}catch{Object.defineProperty(t,"default",{value:i,writable:!0,configurable:!0,enumerable:!0})}return t}}});var L4e,Orn,U4e,F4e=v(()=>{st();sr();D4e();L4e=rt(Vy,e=>new NG(e)),Orn=((e={})=>({name:Vy,options:e,setupOnce(){L4e(e)}})),U4e=Orn});var kw,j4e,MG,H4e=v(()=>{kw=Re(Jt(),1);st();j4e=[">=0.10.0 <2"],MG=class extends kw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-google-genai",Nn,t)}init(){return new kw.InstrumentationNodeModuleDefinition("@google/genai",j4e,n=>this._patch(n),n=>n,[new kw.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",j4e,n=>this._patch(n),n=>n)])}_patch(t){let n=t.GoogleGenAI,r=this.getConfig();if(typeof n!="function")return t;let i=function(...s){if(DE(Wy))return Reflect.construct(n,s);let o=Reflect.construct(n,s);return HH(o,r)};Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype);for(let s of Object.getOwnPropertyNames(n))if(!["length","name","prototype"].includes(s)){let o=Object.getOwnPropertyDescriptor(n,s);o&&Object.defineProperty(i,s,o)}return mP(t,"GoogleGenAI",i),t}}});var q4e,Prn,B4e,z4e=v(()=>{st();sr();H4e();q4e=rt(Wy,e=>new MG(e)),Prn=((e={})=>({name:Wy,setupOnce(){q4e(e)}})),B4e=Prn});function Nrn(e,t){return e?Array.isArray(e)?e.includes(t)?e:[...e,t]:typeof e=="object"?[e,t]:e:[t]}function Crn(e,t,n){return new Proxy(e,{apply(r,i,s){let a=s[1];(!a||typeof a!="object"||Array.isArray(a))&&(a={},s[1]=a);let c=a.callbacks,u=Nrn(c,t);return a.callbacks=u,Reflect.apply(r,i,s)}})}var _S,DG,LG,G4e=v(()=>{_S=Re(Jt(),1);st();DG=[">=0.1.0 <2.0.0"];LG=class extends _S.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langchain",Nn,t)}init(){let t=[],n=["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"];for(let r of n)t.push(new _S.InstrumentationNodeModuleDefinition(r,DG,this._patch.bind(this),i=>i,[new _S.InstrumentationNodeModuleFile(`${r}/dist/index.cjs`,DG,this._patch.bind(this),i=>i)]));return t.push(new _S.InstrumentationNodeModuleDefinition("langchain",DG,this._patch.bind(this),r=>r,[new _S.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",DG,this._patch.bind(this),r=>r)])),t}_patch(t){BX([Gy,Vy,Wy]);let n=GH(this.getConfig());return this._patchRunnableMethods(t,n),t}_patchRunnableMethods(t,n){let r=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],i=t.universal_exports??t,s=Object.values(i).find(c=>typeof c=="function"&&r.includes(c.name));if(!s)return;let o=s.prototype;if(o.__sentry_patched__)return;o.__sentry_patched__=!0;let a=["invoke","stream","batch"];for(let c of a){let u=o[c];typeof u=="function"&&(o[c]=Crn(u,n))}}}});var V4e,Mrn,W4e,K4e=v(()=>{st();sr();G4e();V4e=rt(qH,e=>new LG(e)),Mrn=((e={})=>({name:qH,setupOnce(){V4e(e)}})),W4e=Mrn});var Iw,Y4e,UG,Z4e=v(()=>{Iw=Re(Jt(),1);st();Y4e=[">=0.0.0 <2.0.0"],UG=class extends Iw.InstrumentationBase{constructor(t={}){super("@sentry/instrumentation-langgraph",Nn,t)}init(){return new Iw.InstrumentationNodeModuleDefinition("@langchain/langgraph",Y4e,this._patch.bind(this),n=>n,[new Iw.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",Y4e,this._patch.bind(this),n=>n)])}_patch(t){return t.StateGraph&&typeof t.StateGraph=="function"&&WH(t.StateGraph.prototype,this.getConfig()),t}}});var J4e,Drn,X4e,Q4e=v(()=>{st();sr();Z4e();J4e=rt(VH,e=>new UG(e)),Drn=((e={})=>({name:VH,setupOnce(){J4e(e)}})),X4e=Drn});import*as eKe from"node:net";function tKe(e,t,n,r,i){let o=()=>{},a=i.firestoreSpanCreationHook;typeof a=="function"&&(o=l=>{(0,Lm.safeExecuteInTheMiddle)(()=>a(l),d=>{d&&sl.error(d?.message)},!0)});let c=new Lm.InstrumentationNodeModuleDefinition("@firebase/firestore",t,l=>$4e(l,n,r,e,o)),u=["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"];for(let l of u)c.files.push(new Lm.InstrumentationNodeModuleFile(l,t,d=>$4e(d,n,r,e,o),d=>nKe(d,r)));return c}function $4e(e,t,n,r,i){return nKe(e,n),t(e,"addDoc",Lrn(r,i)),t(e,"getDocs",Frn(r,i)),t(e,"setDoc",jrn(r,i)),t(e,"deleteDoc",Urn(r,i)),e}function nKe(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])(0,Lm.isWrapped)(e[n])&&t(e,n);return e}function Lrn(e,t){return function(r){return function(i,s){let o=jG(e,"addDoc",i);return t(o),FG(o,()=>r(i,s))}}}function Urn(e,t){return function(r){return function(i){let s=jG(e,"deleteDoc",i.parent||i);return t(s),FG(s,()=>r(i))}}}function Frn(e,t){return function(r){return function(i){let s=jG(e,"getDocs",i);return t(s),FG(s,()=>r(i))}}}function jrn(e,t){return function(r){return function(i,s,o){let a=jG(e,"setDoc",i.parent||i);return t(a),FG(a,()=>typeof o<"u"?r(i,s,o):r(i,s))}}}function FG(e,t){return Ve.with(jt.setSpan(Ve.active(),e),()=>(0,Lm.safeExecuteInTheMiddle)(()=>t(),n=>{n&&e.recordException(n),e.end()},!0))}function jG(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:$r.CLIENT});return qrn(r,n),r.setAttribute(fR,t),r}function Hrn(e){let t,n;if(typeof e.host=="string")if(e.host.startsWith("[")){if(e.host.endsWith("]"))t=e.host.replace(/^\[|\]$/g,"");else if(e.host.includes("]:")){let r=e.host.lastIndexOf(":");r!==-1&&(t=e.host.slice(1,r).replace(/^\[|\]$/g,""),n=e.host.slice(r+1))}}else if(eKe.isIPv6(e.host))t=e.host;else{let r=e.host.lastIndexOf(":");r!==-1?(t=e.host.slice(0,r),n=e.host.slice(r+1)):t=e.host}return{address:t,port:n?parseInt(n,10):void 0}}function qrn(e,t){let n=t.firestore.app,r=n.options,s=(t.firestore.toJSON()||{}).settings||{},o={[y7]:t.path,[S7]:n.name,[yE]:"firebase.firestore","firebase.firestore.type":t.type,"firebase.firestore.options.projectId":r.projectId,"firebase.firestore.options.appId":r.appId,"firebase.firestore.options.messagingSenderId":r.messagingSenderId,"firebase.firestore.options.storageBucket":r.storageBucket},{address:a,port:c}=Hrn(s);a&&(o[w7]=a),c&&(o[k7]=c),e.setAttributes(o)}var Lm,rKe=v(()=>{Ce();Lm=Re(Jt(),1);Pn()});function iKe(e,t,n,r,i){let s=()=>{},o=()=>{},a=i.functions?.errorHook,c=i.functions?.requestHook,u=i.functions?.responseHook;typeof u=="function"&&(o=(f,p)=>{(0,Um.safeExecuteInTheMiddle)(()=>u(f,p),h=>{h&&sl.error(h?.message)},!0)}),typeof c=="function"&&(s=f=>{(0,Um.safeExecuteInTheMiddle)(()=>c(f),p=>{p&&sl.error(p?.message)},!0)});let l=new Um.InstrumentationNodeModuleDefinition("firebase-functions",t);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:f,triggerType:p})=>{l.files.push(new Um.InstrumentationNodeModuleFile(f,t,h=>Brn(h,n,r,e,{requestHook:s,responseHook:o,errorHook:a},p),h=>sKe(h,r)))}),l}function qc(e,t,n){return function(i){return function(...s){let o=typeof s[0]=="function"?s[0]:s[1],a=typeof s[0]=="function"?void 0:s[0];if(!o)return i.call(this,...s);let c=async function(...u){let l=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",d=e.startSpan(`firebase.function.${n}`,{kind:$r.SERVER}),f={"faas.name":l,"faas.trigger":n,"faas.provider":"firebase"};return process.env.GCLOUD_PROJECT&&(f["cloud.project_id"]=process.env.GCLOUD_PROJECT),process.env.EVENTARC_CLOUD_EVENT_SOURCE&&(f["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE),d.setAttributes(f),t?.requestHook?.(d),Ve.with(jt.setSpan(Ve.active(),d),async()=>{let p,h;try{h=await o.apply(this,u)}catch(m){p=m}if(t?.responseHook?.(d,p),p&&d.recordException(p),d.end(),p)throw await t?.errorHook?.(d,p),p;return h})};return a?i.call(this,a,c):i.call(this,c)}}}function Brn(e,t,n,r,i,s){switch(sKe(e,n),s){case"function":t(e,"onRequest",qc(r,i,"http.request")),t(e,"onCall",qc(r,i,"http.call"));break;case"firestore":t(e,"onDocumentCreated",qc(r,i,"firestore.document.created")),t(e,"onDocumentUpdated",qc(r,i,"firestore.document.updated")),t(e,"onDocumentDeleted",qc(r,i,"firestore.document.deleted")),t(e,"onDocumentWritten",qc(r,i,"firestore.document.written")),t(e,"onDocumentCreatedWithAuthContext",qc(r,i,"firestore.document.created")),t(e,"onDocumentUpdatedWithAuthContext",qc(r,i,"firestore.document.updated")),t(e,"onDocumentDeletedWithAuthContext",qc(r,i,"firestore.document.deleted")),t(e,"onDocumentWrittenWithAuthContext",qc(r,i,"firestore.document.written"));break;case"scheduler":t(e,"onSchedule",qc(r,i,"scheduler.scheduled"));break;case"storage":t(e,"onObjectFinalized",qc(r,i,"storage.object.finalized")),t(e,"onObjectArchived",qc(r,i,"storage.object.archived")),t(e,"onObjectDeleted",qc(r,i,"storage.object.deleted")),t(e,"onObjectMetadataUpdated",qc(r,i,"storage.object.metadataUpdated"));break}return e}function sKe(e,t){let n=["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"];for(let r of n)(0,Um.isWrapped)(e[r])&&t(e,r);return e}var Um,oKe=v(()=>{Ce();Um=Re(Jt(),1)});var cKe,aKe,zrn,Grn,HG,uKe=v(()=>{cKe=Re(Jt(),1);st();rKe();oKe();aKe={},zrn=[">=3.0.0 <5"],Grn=[">=6.0.0 <7"],HG=class extends cKe.InstrumentationBase{constructor(t=aKe){super("@sentry/instrumentation-firebase",Nn,t)}setConfig(t={}){super.setConfig({...aKe,...t})}init(){let t=[];return t.push(tKe(this.tracer,zrn,this._wrap,this._unwrap,this.getConfig())),t.push(iKe(this.tracer,Grn,this._wrap,this._unwrap,this.getConfig())),t}}});var lKe,Vrn,dKe,Wrn,fKe,pKe=v(()=>{st();sr();uKe();lKe="Firebase",Vrn={firestoreSpanCreationHook:e=>{Dr(e,"auto.firebase.otel.firestore"),e.setAttribute(zt,"db.query")},functions:{requestHook:e=>{Dr(e,"auto.firebase.otel.functions"),e.setAttribute(zt,"http.request")},errorHook:async(e,t)=>{t&&(Wt(t,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await JR(2e3))}}},dKe=rt(lKe,()=>new HG(Vrn)),Wrn=(()=>({name:lKe,setupOnce(){dKe()}})),fKe=Wrn});function hKe(){return[aqe(),BBe(),mze(),fWe(),nGe(),yGe(),xGe(),qGe(),b2e(),H2e(),KVe(),aWe(),IWe(),qWe(),t4e(),l4e(),Nze(),R4e(),zze(),W4e(),X4e(),x4e(),C4e(),U4e(),B4e(),G2e(),fKe()]}var mKe=v(()=>{A4e();F4e();BWe();cqe();VBe();pKe();d4e();z4e();yze();cWe();pWe();Cze();xWe();K4e();Q4e();Gze();rGe();SGe();OGe();BGe();M4e();q2e();V2e();YVe();E2e();n4e();O4e()});function yKe(e,t={}){e.getOptions().debug&&nee();let[n,r]=Krn(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r}function Krn(e,t={}){let n=new gKe.BasicTracerProvider({sampler:new Qq(e),resource:(0,qG.defaultResource)().merge((0,qG.resourceFromAttributes)({[I7]:"node",[g7]:"sentry",[x7]:Nn})),forceFlushTimeoutMillis:500,spanProcessors:[new Xq({timeout:Yrn(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});jt.setGlobalTracerProvider(n),Qd.setGlobalPropagator(new Jq);let r=new tee;return Ve.setGlobalContextManager(r),[n,r.getAsyncLocalStorageLookup()]}function Yrn(e){if(e!=null){if(e>jne)return So&&Z.warn(`\`maxSpanWaitDuration\` is too high, using the maximum value of ${jne}`),jne;if(e<=0||Number.isNaN(e)){So&&Z.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}var qG,gKe,jne,SKe=v(()=>{Ce();qG=Re(h$(),1),gKe=Re(H$(),1);Pn();st();sr();IA();XE();jne=1e6});function bKe(){return aB().filter(t=>t.name!=="Http"&&t.name!=="NodeFetch").concat(UHe(),WHe())}function EKe(e){return[...bKe(),...Os(e)?hKe():[]]}function Hne(e={}){return Zrn(e,EKe)}function Zrn(e={},t){LE(e,"node");let n=hee({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(yKe(n,{spanProcessors:e.openTelemetrySpanProcessors}),mee()),n}var _Ke=v(()=>{st();sr();FHe();KHe();mKe();SKe()});var TKe=v(()=>{_Ke();st()});var xKe={};Ar(xKe,{_resetPluginRootForTests:()=>Qrn,features:()=>Go,observability:()=>zne,resolvePluginRoot:()=>nn,review:()=>bf,stripWildcardAllowedOrigins:()=>Bne});import{existsSync as vKe}from"node:fs";import{dirname as RKe,join as AKe}from"node:path";import{fileURLToPath as Xrn}from"node:url";function IKe(e){if(!e.startsWith("HAIKU_")){let t=process.env[`HAIKU_${e}`];if(t!==void 0)return t}return process.env[e]}function qne(e,t){let n=IKe(e);if(n===void 0)return t;let r=n.trim().toLowerCase();return r==="1"||r==="true"||r==="yes"||r==="on"?!0:r==="0"||r==="false"||r==="no"||r==="off"||r===""?!1:t}function wKe(e,t){let n=IKe(e);return n===void 0||n===""?t:n}function Qrn(){Sf=null}function nn(){if(Sf!==null)return Sf;let e=process.env.CLAUDE_PLUGIN_ROOT;if(e)return Sf=e,Sf;let t=kKe(process.argv[1]);if(t)return Sf=t,process.env.CLAUDE_PLUGIN_ROOT=t,console.error(`[haiku] Self-resolved plugin root from argv: ${t}`),Sf;try{let n=Xrn(import.meta.url),r=kKe(n);if(r)return Sf=r,process.env.CLAUDE_PLUGIN_ROOT=r,console.error(`[haiku] Self-resolved plugin root from module: ${r}`),Sf}catch{}return Sf="",Sf}function kKe(e){if(!e)return null;let t=RKe(e);for(let n=0;n<6;n++){if(vKe(AKe(t,"studios"))||vKe(AKe(t,".claude-plugin","plugin.json")))return t;let r=RKe(t);if(r===t)return null;t=r}return null}function Bne(){let e=bf.allowedOrigins.length,t=bf.allowedOrigins.filter(r=>r!=="*"),n=e-t.length;return n>0&&(console.warn(`[haiku] WARN: HAIKU_REVIEW_ALLOWED_ORIGINS contained "*". Ignoring \u2014 wildcard CORS is unsafe with this server's auth model. Set an explicit allow-list.`),bf.allowedOrigins.length=0,bf.allowedOrigins.push(...t)),n}var Sf,Go,bf,zne,Ci=v(()=>{"use strict";Sf=null;Go={modelSelection:qne("HAIKU_MODEL_SELECTION",!0),remoteReview:qne("HAIKU_REMOTE_REVIEW",!1),telemetry:qne("CLAUDE_CODE_ENABLE_TELEMETRY",!1)},bf={siteUrl:wKe("HAIKU_REVIEW_SITE_URL","https://haikumethod.ai"),allowedOrigins:wKe("HAIKU_REVIEW_ALLOWED_ORIGINS","").split(",").map(e=>e.trim()).filter(Boolean)};zne={sentryDsn:""}});import{readFileSync as $rn}from"node:fs";import{join as ein}from"node:path";function TS(){try{let e=nn();if(e)return JSON.parse($rn(ein(e,".claude-plugin","plugin.json"),"utf8")).version??"unknown"}catch{}return"unknown"}var cd,f_=v(()=>{"use strict";Ci();cd="10.0.0"});var PKe={};Ar(PKe,{flush:()=>Ef,isSentryConfigured:()=>Vne,reportError:()=>ms,reportFeedback:()=>Gne});function OKe(e,t){!t||Object.keys(t).length===0||(e.setContext("session",t),t.CLAUDE_CODE_IS_COWORK&&e.setTag("cowork",t.CLAUDE_CODE_IS_COWORK),t.CLAUDE_MODEL&&e.setTag("model",t.CLAUDE_MODEL),t.CLAUDE_SESSION_ID&&e.setTag("session_id",t.CLAUDE_SESSION_ID),t.CLAUDE_CODE_ENTRYPOINT&&e.setTag("entrypoint",t.CLAUDE_CODE_ENTRYPOINT))}function ms(e,t,n){xw&&Ja(r=>{OKe(r,n),Wt(e,{extra:t})})}function Gne(e,t,n,r){xw&&Ja(i=>{OKe(i,t),i.setTag("feedback","true"),wH({message:e,email:n,name:r||"H\xB7AI\xB7K\xB7U User"})})}function Vne(){return xw!==""}async function Ef(e=2e3){xw&&await JR(e)}var xw,sh=v(()=>{"use strict";TKe();Ci();f_();xw=zne.sentryDsn;xw&&Hne({dsn:xw,release:`haiku-mcp@${cd}`,tracesSampleRate:0})});var CKe={};Ar(CKe,{maybeRebuildSpaForDev:()=>ain});import{execFileSync as tin}from"node:child_process";import{existsSync as zG,readdirSync as nin,statSync as NKe}from"node:fs";import{dirname as rin,join as BG,resolve as Wne}from"node:path";import{fileURLToPath as iin}from"node:url";function sin(e){if(!zG(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),i;try{i=nin(r)}catch{continue}for(let s of i){if(s==="node_modules"||s==="dist"||s==="__tests__")continue;let o=BG(r,s),a;try{a=NKe(o)}catch{continue}a.isDirectory()?n.push(o):a.isFile()&&a.mtimeMs>t&&(t=a.mtimeMs)}}return t}function oin(e){let t;try{t=rin(iin(e))}catch{t=process.cwd()}let n=Wne(t,".."),r=Wne(n,".."),i=BG(r,"haiku-ui","src"),s=BG(n,"scripts","bundle-haiku-ui.mjs"),o=BG(n,"src","haiku-ui-html.ts");return!zG(i)||!zG(s)?null:{repoRoot:Wne(r,".."),uiSrcDir:i,bundledHtml:o,bundleScript:s}}function ain(e){if(process.env.HAIKU_DEV_SPA_AUTO_REBUILD==="0")return;let t=oin(e);if(!t)return;let n=sin(t.uiSrcDir),r=zG(t.bundledHtml)?NKe(t.bundledHtml).mtimeMs:0;if(n<=r)return;console.error("[haiku] SPA sources newer than haiku-ui-html.ts \u2014 rebuilding (dev mode)\u2026");let i=Date.now();try{tin("node",[t.bundleScript],{cwd:t.repoRoot,stdio:["ignore","ignore","inherit"]})}catch(s){throw new Error(`[haiku] SPA rebuild failed: ${s instanceof Error?s.message:String(s)} + Run 'node packages/haiku/scripts/bundle-haiku-ui.mjs' manually to see full output, or set HAIKU_DEV_SPA_AUTO_REBUILD=0 to skip the check.`)}console.error(`[haiku] SPA rebuild complete in ${((Date.now()-i)/1e3).toFixed(1)}s.`)}var MKe=v(()=>{"use strict"});var DKe={};Ar(DKe,{askUserInstruction:()=>fin,getCapabilities:()=>Mi,getHarness:()=>uin,isClaudeCode:()=>oh,listHarnesses:()=>lin,mapModelTier:()=>pin,setHarness:()=>cin,skillReference:()=>HN,subagentInstruction:()=>din});function cin(e){let t=e.toLowerCase().replace(/[\s_]/g,"-");t in jN?Ow=t:(console.error(`[haiku] Unknown harness "${e}" \u2014 falling back to claude-code. Known: ${Object.keys(jN).join(", ")}`),Ow="claude-code"),console.error(`[haiku] Harness: ${jN[Ow].displayName}`)}function uin(){return Ow}function Mi(){return jN[Ow]}function oh(){return Ow==="claude-code"}function lin(){return Object.keys(jN)}function din(e){let t=Mi();if(!t.subagents.supported)return e.count&&e.count>1?`Execute ${e.count} tasks sequentially for: ${e.purpose}. Complete each task fully before starting the next.`:`Execute the following task directly: ${e.purpose}.`;let n=t.subagents.toolNames[0]||"subagent",r=[];if(e.count&&e.count>1&&t.subagents.parallelSpawn?r.push(`Spawn ${e.count} \`${n}\` calls in a single response (parallel) for: ${e.purpose}.`):e.count&&e.count>1?r.push(`Spawn ${e.count} \`${n}\` calls for: ${e.purpose}.`):r.push(`Spawn a \`${n}\` for: ${e.purpose}.`),e.agentType&&t.subagents.toolNames.includes("Agent")&&oh()&&r.push(`Agent type: \`${e.agentType}\``),e.model&&t.subagents.modelParam){let i=t.modelTierMap[e.model]||e.model;r.push(`Spawn with \`model: "${i}"\`.`)}return r.join(` +`)}function HN(e){let t=Mi();return t.promptsAsSlashCommands?`/haiku:${e}`:t.mcpPrompts?`the \`haiku:${e}\` prompt`:`the haiku ${e} workflow`}function fin(){let e=Mi();return e.nativeAskUser?"Use `AskUserQuestion` with an `options[]` array for every decision that has known alternatives \u2014 NEVER output option lists as plain text":e.elicitation?"When you have questions with known alternatives, present them as a numbered list and ask the user to pick. Use MCP elicitation when available for structured input.":"When you have questions with known alternatives, present them as a clear numbered list and ask the user to pick."}function pin(e){return Mi().modelTierMap[e]||e}var jN,Ow,_f=v(()=>{"use strict";jN={"claude-code":{displayName:"Claude Code",nativeSkills:!0,promptsAsSlashCommands:!0,hooks:!0,elicitation:!0,nativeAskUser:!0,planMode:!0,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"anthropic",subagents:{supported:!0,toolNames:["Agent","Task"],modelParam:!0,parallelSpawn:!0,backgroundSpawn:!0,isolation:!0},modelTiers:["haiku","sonnet","opus"],modelTierMap:{haiku:"haiku",sonnet:"sonnet",opus:"opus"}},cursor:{displayName:"Cursor",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!0,nativeAskUser:!1,planMode:!1,maxTools:40,mcpPrompts:!0,mcpResources:!0,modelProvider:"multi",subagents:{supported:!0,toolNames:["Agent"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!0},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},windsurf:{displayName:"Windsurf",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:100,mcpPrompts:!0,mcpResources:!0,modelProvider:"multi",subagents:{supported:!1,toolNames:[],modelParam:!1,parallelSpawn:!1,backgroundSpawn:!1,isolation:!1},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},"gemini-cli":{displayName:"Gemini CLI",nativeSkills:!1,promptsAsSlashCommands:!0,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"google",subagents:{supported:!0,toolNames:["@subagent"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!1},modelTiers:["flash","pro"],modelTierMap:{haiku:"flash",sonnet:"pro",opus:"pro"}},opencode:{displayName:"OpenCode",nativeSkills:!1,promptsAsSlashCommands:!1,hooks:!1,elicitation:!1,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!1,mcpResources:!1,modelProvider:"multi",subagents:{supported:!0,toolNames:["subagent"],modelParam:!0,parallelSpawn:!1,backgroundSpawn:!1,isolation:!1},modelTiers:["fast","balanced","powerful"],modelTierMap:{haiku:"fast",sonnet:"balanced",opus:"powerful"}},kiro:{displayName:"Kiro",nativeSkills:!1,promptsAsSlashCommands:!0,hooks:!0,elicitation:!0,nativeAskUser:!1,planMode:!1,maxTools:null,mcpPrompts:!0,mcpResources:!0,modelProvider:"anthropic",subagents:{supported:!0,toolNames:["/spawn"],modelParam:!1,parallelSpawn:!0,backgroundSpawn:!1,isolation:!0},modelTiers:["haiku","sonnet","opus"],modelTierMap:{haiku:"haiku",sonnet:"sonnet",opus:"opus"}}},Ow="claude-code"});var Cn,Kne,Qe,ah,qN=v(()=>{(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},e.getValidEnumValues=i=>{let s=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},e.find=(i,s)=>{for(let o of i)if(s(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(Cn||(Cn={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Kne||(Kne={}));Qe=Cn.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ah=e=>{switch(typeof e){case"undefined":return Qe.undefined;case"string":return Qe.string;case"number":return Number.isNaN(e)?Qe.nan:Qe.number;case"boolean":return Qe.boolean;case"function":return Qe.function;case"bigint":return Qe.bigint;case"symbol":return Qe.symbol;case"object":return Array.isArray(e)?Qe.array:e===null?Qe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Qe.promise:typeof Map<"u"&&e instanceof Map?Qe.map:typeof Set<"u"&&e instanceof Set?Qe.set:typeof Date<"u"&&e instanceof Date?Qe.date:Qe.object;default:return Qe.unknown}}});var Ie,hin,Eu,GG=v(()=>{qN();Ie=Cn.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),hin=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Eu=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Eu.create=e=>new Eu(e)});var min,Fm,Yne=v(()=>{GG();qN();min=(e,t)=>{let n;switch(e.code){case Ie.invalid_type:e.received===Qe.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case Ie.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,Cn.jsonStringifyReplacer)}`;break;case Ie.unrecognized_keys:n=`Unrecognized key(s) in object: ${Cn.joinValues(e.keys,", ")}`;break;case Ie.invalid_union:n="Invalid input";break;case Ie.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Cn.joinValues(e.options)}`;break;case Ie.invalid_enum_value:n=`Invalid enum value. Expected ${Cn.joinValues(e.options)}, received '${e.received}'`;break;case Ie.invalid_arguments:n="Invalid function arguments";break;case Ie.invalid_return_type:n="Invalid function return type";break;case Ie.invalid_date:n="Invalid date";break;case Ie.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:Cn.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case Ie.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case Ie.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case Ie.custom:n="Invalid input";break;case Ie.invalid_intersection_types:n="Intersection results could not be merged";break;case Ie.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case Ie.not_finite:n="Number must be finite";break;default:n=t.defaultError,Cn.assertNever(e)}return{message:n}},Fm=min});function gin(e){LKe=e}function Pw(){return LKe}var LKe,VG=v(()=>{Yne();LKe=Fm});function We(e,t){let n=Pw(),r=BN({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Fm?void 0:Fm].filter(i=>!!i)});e.common.issues.push(r)}var BN,yin,ha,Mt,p_,nc,WG,KG,vS,Nw,Zne=v(()=>{VG();Yne();BN=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}},yin=[];ha=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Mt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Mt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Mt=Object.freeze({status:"aborted"}),p_=e=>({status:"dirty",value:e}),nc=e=>({status:"valid",value:e}),WG=e=>e.status==="aborted",KG=e=>e.status==="dirty",vS=e=>e.status==="valid",Nw=e=>typeof Promise<"u"&&e instanceof Promise});var UKe=v(()=>{});var ut,FKe=v(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(ut||(ut={}))});function un(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function BKe(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Min(e){return new RegExp(`^${BKe(e)}$`)}function zKe(e){let t=`${qKe}T${BKe(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Din(e,t){return!!((t==="v4"||!t)&&kin.test(e)||(t==="v6"||!t)&&xin.test(e))}function Lin(e,t){if(!vin.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Uin(e,t){return!!((t==="v4"||!t)&&Iin.test(e)||(t==="v6"||!t)&&Oin.test(e))}function Fin(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function Cw(e){if(e instanceof _u){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ud.create(Cw(r))}return new _u({...e._def,shape:()=>t})}else return e instanceof qm?new qm({...e._def,type:Cw(e.element)}):e instanceof ud?ud.create(Cw(e.unwrap())):e instanceof uh?uh.create(Cw(e.unwrap())):e instanceof ch?ch.create(e.items.map(t=>Cw(t))):e}function Xne(e,t){let n=ah(e),r=ah(t);if(e===t)return{valid:!0,data:e};if(n===Qe.object&&r===Qe.object){let i=Cn.objectKeys(t),s=Cn.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=Xne(e[a],t[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===Qe.array&&r===Qe.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let s=0;s{let s=e(r);if(s instanceof Promise)return s.then(o=>{if(!o){let a=HKe(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}});if(!s){let o=HKe(t,r),a=o.fatal??n??!0;i.addIssue({code:"custom",...o,fatal:a})}}):AS.create()}var ld,jKe,mn,Sin,bin,Ein,_in,Tin,vin,Rin,Ain,win,Jne,kin,Iin,xin,Oin,Pin,Nin,qKe,Cin,RS,h_,m_,g_,y_,Mw,S_,b_,AS,Hm,Tf,Dw,qm,_u,E_,jm,YG,__,ch,ZG,Lw,Uw,JG,T_,v_,R_,A_,wS,dd,ud,uh,w_,k_,Fw,jin,zN,GN,I_,Hin,Bt,qin,WKe,KKe,Bin,zin,YKe,Gin,Vin,Win,Kin,Yin,Zin,Jin,Xin,Qin,$in,esn,tsn,nsn,rsn,isn,ssn,osn,asn,csn,usn,lsn,dsn,fsn,psn,hsn,msn,gsn,ysn,Ssn,bsn,Esn,_sn,Tsn,vsn,ZKe=v(()=>{GG();VG();FKe();Zne();qN();ld=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},jKe=(e,t)=>{if(vS(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Eu(e.common.issues);return this._error=n,this._error}}};mn=class{get description(){return this._def.description}_getType(t){return ah(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ah(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new ha,ctx:{common:t.parent.common,data:t.data,parsedType:ah(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Nw(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ah(t)},i=this._parseSync({data:t,path:r.path,parent:r});return jKe(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ah(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return vS(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>vS(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ah(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(Nw(i)?i:Promise.resolve(i));return jKe(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:Ie.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new dd({schema:this,typeName:Bt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return ud.create(this,this._def)}nullable(){return uh.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return qm.create(this)}promise(){return wS.create(this,this._def)}or(t){return E_.create([this,t],this._def)}and(t){return __.create(this,t,this._def)}transform(t){return new dd({...un(this._def),schema:this,typeName:Bt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new w_({...un(this._def),innerType:this,defaultValue:n,typeName:Bt.ZodDefault})}brand(){return new zN({typeName:Bt.ZodBranded,type:this,...un(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new k_({...un(this._def),innerType:this,catchValue:n,typeName:Bt.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return GN.create(this,t)}readonly(){return I_.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Sin=/^c[^\s-]{8,}$/i,bin=/^[0-9a-z]+$/,Ein=/^[0-9A-HJKMNP-TV-Z]{26}$/i,_in=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Tin=/^[a-z0-9_-]{21}$/i,vin=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Rin=/^[-+]?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)?)??$/,Ain=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,win="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",kin=/^(?:(?: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])$/,Iin=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,xin=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Oin=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Pin=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Nin=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,qKe="((\\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])))",Cin=new RegExp(`^${qKe}$`);RS=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Qe.string){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.string,received:s.parsedType}),Mt}let r=new ha,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:Ie.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:Ie.invalid_string,...ut.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...ut.errToObj(t)})}url(t){return this._addCheck({kind:"url",...ut.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...ut.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...ut.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...ut.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...ut.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...ut.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...ut.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...ut.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...ut.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...ut.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...ut.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...ut.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...ut.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...ut.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...ut.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...ut.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...ut.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...ut.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...ut.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...ut.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...ut.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...ut.errToObj(n)})}nonempty(t){return this.min(1,ut.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew RS({checks:[],typeName:Bt.ZodString,coerce:e?.coerce??!1,...un(e)});h_=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Qe.number){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.number,received:s.parsedType}),Mt}let r,i=new ha;for(let s of this._def.checks)s.kind==="int"?Cn.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?Fin(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_finite,message:s.message}),i.dirty()):Cn.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:ut.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:ut.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ut.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ut.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&Cn.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew h_({checks:[],typeName:Bt.ZodNumber,coerce:e?.coerce||!1,...un(e)});m_=class e extends mn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==Qe.bigint)return this._getInvalidInput(t);let r,i=new ha;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),We(r,{code:Ie.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):Cn.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return We(n,{code:Ie.invalid_type,expected:Qe.bigint,received:n.parsedType}),Mt}gte(t,n){return this.setLimit("min",t,!0,ut.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ut.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ut.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ut.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ut.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ut.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ut.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ut.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ut.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ut.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew m_({checks:[],typeName:Bt.ZodBigInt,coerce:e?.coerce??!1,...un(e)});g_=class extends mn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Qe.boolean){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.boolean,received:r.parsedType}),Mt}return nc(t.data)}};g_.create=e=>new g_({typeName:Bt.ZodBoolean,coerce:e?.coerce||!1,...un(e)});y_=class e extends mn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Qe.date){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_type,expected:Qe.date,received:s.parsedType}),Mt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return We(s,{code:Ie.invalid_date}),Mt}let r=new ha,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),We(i,{code:Ie.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):Cn.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:ut.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:ut.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew y_({checks:[],coerce:e?.coerce||!1,typeName:Bt.ZodDate,...un(e)});Mw=class extends mn{_parse(t){if(this._getType(t)!==Qe.symbol){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.symbol,received:r.parsedType}),Mt}return nc(t.data)}};Mw.create=e=>new Mw({typeName:Bt.ZodSymbol,...un(e)});S_=class extends mn{_parse(t){if(this._getType(t)!==Qe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.undefined,received:r.parsedType}),Mt}return nc(t.data)}};S_.create=e=>new S_({typeName:Bt.ZodUndefined,...un(e)});b_=class extends mn{_parse(t){if(this._getType(t)!==Qe.null){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.null,received:r.parsedType}),Mt}return nc(t.data)}};b_.create=e=>new b_({typeName:Bt.ZodNull,...un(e)});AS=class extends mn{constructor(){super(...arguments),this._any=!0}_parse(t){return nc(t.data)}};AS.create=e=>new AS({typeName:Bt.ZodAny,...un(e)});Hm=class extends mn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return nc(t.data)}};Hm.create=e=>new Hm({typeName:Bt.ZodUnknown,...un(e)});Tf=class extends mn{_parse(t){let n=this._getOrReturnCtx(t);return We(n,{code:Ie.invalid_type,expected:Qe.never,received:n.parsedType}),Mt}};Tf.create=e=>new Tf({typeName:Bt.ZodNever,...un(e)});Dw=class extends mn{_parse(t){if(this._getType(t)!==Qe.undefined){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.void,received:r.parsedType}),Mt}return nc(t.data)}};Dw.create=e=>new Dw({typeName:Bt.ZodVoid,...un(e)});qm=class e extends mn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==Qe.array)return We(n,{code:Ie.invalid_type,expected:Qe.array,received:n.parsedType}),Mt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(We(n,{code:Ie.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new ld(n,o,n.path,a)))).then(o=>ha.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new ld(n,o,n.path,a)));return ha.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:ut.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:ut.toString(n)}})}nonempty(t){return this.min(1,t)}};qm.create=(e,t)=>new qm({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Bt.ZodArray,...un(t)});_u=class e extends mn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=Cn.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==Qe.object){let u=this._getOrReturnCtx(t);return We(u,{code:Ie.invalid_type,expected:Qe.object,received:u.parsedType}),Mt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Tf&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new ld(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof Tf){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(We(i,{code:Ie.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new ld(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>ha.mergeObjectSync(r,u)):ha.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return ut.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:ut.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Bt.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of Cn.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of Cn.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Cw(this)}partial(t){let n={};for(let r of Cn.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of Cn.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof ud;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return GKe(Cn.objectKeys(this.shape))}};_u.create=(e,t)=>new _u({shape:()=>e,unknownKeys:"strip",catchall:Tf.create(),typeName:Bt.ZodObject,...un(t)});_u.strictCreate=(e,t)=>new _u({shape:()=>e,unknownKeys:"strict",catchall:Tf.create(),typeName:Bt.ZodObject,...un(t)});_u.lazycreate=(e,t)=>new _u({shape:e,unknownKeys:"strip",catchall:Tf.create(),typeName:Bt.ZodObject,...un(t)});E_=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Eu(a.ctx.common.issues));return We(n,{code:Ie.invalid_union,unionErrors:o}),Mt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Eu(c));return We(n,{code:Ie.invalid_union,unionErrors:a}),Mt}}get options(){return this._def.options}};E_.create=(e,t)=>new E_({options:e,typeName:Bt.ZodUnion,...un(t)});jm=e=>e instanceof T_?jm(e.schema):e instanceof dd?jm(e.innerType()):e instanceof v_?[e.value]:e instanceof R_?e.options:e instanceof A_?Cn.objectValues(e.enum):e instanceof w_?jm(e._def.innerType):e instanceof S_?[void 0]:e instanceof b_?[null]:e instanceof ud?[void 0,...jm(e.unwrap())]:e instanceof uh?[null,...jm(e.unwrap())]:e instanceof zN||e instanceof I_?jm(e.unwrap()):e instanceof k_?jm(e._def.innerType):[],YG=class e extends mn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.object)return We(n,{code:Ie.invalid_type,expected:Qe.object,received:n.parsedType}),Mt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(We(n,{code:Ie.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Mt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=jm(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:Bt.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...un(r)})}};__=class extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(WG(s)||WG(o))return Mt;let a=Xne(s.value,o.value);return a.valid?((KG(s)||KG(o))&&n.dirty(),{status:n.value,value:a.data}):(We(r,{code:Ie.invalid_intersection_types}),Mt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};__.create=(e,t,n)=>new __({left:e,right:t,typeName:Bt.ZodIntersection,...un(n)});ch=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.array)return We(r,{code:Ie.invalid_type,expected:Qe.array,received:r.parsedType}),Mt;if(r.data.lengththis._def.items.length&&(We(r,{code:Ie.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new ld(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>ha.mergeArray(n,o)):ha.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};ch.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ch({items:e,typeName:Bt.ZodTuple,rest:null,...un(t)})};ZG=class e extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.object)return We(r,{code:Ie.invalid_type,expected:Qe.object,received:r.parsedType}),Mt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new ld(r,a,r.path,a)),value:o._parse(new ld(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?ha.mergeObjectAsync(n,i):ha.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof mn?new e({keyType:t,valueType:n,typeName:Bt.ZodRecord,...un(r)}):new e({keyType:RS.create(),valueType:t,typeName:Bt.ZodRecord,...un(n)})}},Lw=class extends mn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.map)return We(r,{code:Ie.invalid_type,expected:Qe.map,received:r.parsedType}),Mt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new ld(r,a,r.path,[u,"key"])),value:s._parse(new ld(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Mt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Mt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};Lw.create=(e,t,n)=>new Lw({valueType:t,keyType:e,typeName:Bt.ZodMap,...un(n)});Uw=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Qe.set)return We(r,{code:Ie.invalid_type,expected:Qe.set,received:r.parsedType}),Mt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(We(r,{code:Ie.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Mt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new ld(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:ut.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:ut.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Uw.create=(e,t)=>new Uw({valueType:e,minSize:null,maxSize:null,typeName:Bt.ZodSet,...un(t)});JG=class e extends mn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.function)return We(n,{code:Ie.invalid_type,expected:Qe.function,received:n.parsedType}),Mt;function r(a,c){return BN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Pw(),Fm].filter(u=>!!u),issueData:{code:Ie.invalid_arguments,argumentsError:c}})}function i(a,c){return BN({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Pw(),Fm].filter(u=>!!u),issueData:{code:Ie.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof wS){let a=this;return nc(async function(...c){let u=new Eu([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return nc(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Eu([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Eu([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:ch.create(t).rest(Hm.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||ch.create([]).rest(Hm.create()),returns:n||Hm.create(),typeName:Bt.ZodFunction,...un(r)})}},T_=class extends mn{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};T_.create=(e,t)=>new T_({getter:e,typeName:Bt.ZodLazy,...un(t)});v_=class extends mn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return We(n,{received:n.data,code:Ie.invalid_literal,expected:this._def.value}),Mt}return{status:"valid",value:t.data}}get value(){return this._def.value}};v_.create=(e,t)=>new v_({value:e,typeName:Bt.ZodLiteral,...un(t)});R_=class e extends mn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{expected:Cn.joinValues(r),received:n.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return We(n,{received:n.data,code:Ie.invalid_enum_value,options:r}),Mt}return nc(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};R_.create=GKe;A_=class extends mn{_parse(t){let n=Cn.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Qe.string&&r.parsedType!==Qe.number){let i=Cn.objectValues(n);return We(r,{expected:Cn.joinValues(i),received:r.parsedType,code:Ie.invalid_type}),Mt}if(this._cache||(this._cache=new Set(Cn.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=Cn.objectValues(n);return We(r,{received:r.data,code:Ie.invalid_enum_value,options:i}),Mt}return nc(t.data)}get enum(){return this._def.values}};A_.create=(e,t)=>new A_({values:e,typeName:Bt.ZodNativeEnum,...un(t)});wS=class extends mn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==Qe.promise&&n.common.async===!1)return We(n,{code:Ie.invalid_type,expected:Qe.promise,received:n.parsedType}),Mt;let r=n.parsedType===Qe.promise?n.data:Promise.resolve(n.data);return nc(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};wS.create=(e,t)=>new wS({type:e,typeName:Bt.ZodPromise,...un(t)});dd=class extends mn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Bt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{We(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Mt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Mt:c.status==="dirty"?p_(c.value):n.value==="dirty"?p_(c.value):c});{if(n.value==="aborted")return Mt;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Mt:a.status==="dirty"?p_(a.value):n.value==="dirty"?p_(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Mt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Mt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!vS(o))return Mt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>vS(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Mt);Cn.assertNever(i)}};dd.create=(e,t,n)=>new dd({schema:e,typeName:Bt.ZodEffects,effect:t,...un(n)});dd.createWithPreprocess=(e,t,n)=>new dd({schema:t,effect:{type:"preprocess",transform:e},typeName:Bt.ZodEffects,...un(n)});ud=class extends mn{_parse(t){return this._getType(t)===Qe.undefined?nc(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ud.create=(e,t)=>new ud({innerType:e,typeName:Bt.ZodOptional,...un(t)});uh=class extends mn{_parse(t){return this._getType(t)===Qe.null?nc(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};uh.create=(e,t)=>new uh({innerType:e,typeName:Bt.ZodNullable,...un(t)});w_=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===Qe.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};w_.create=(e,t)=>new w_({innerType:e,typeName:Bt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...un(t)});k_=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Nw(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Eu(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Eu(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};k_.create=(e,t)=>new k_({innerType:e,typeName:Bt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...un(t)});Fw=class extends mn{_parse(t){if(this._getType(t)!==Qe.nan){let r=this._getOrReturnCtx(t);return We(r,{code:Ie.invalid_type,expected:Qe.nan,received:r.parsedType}),Mt}return{status:"valid",value:t.data}}};Fw.create=e=>new Fw({typeName:Bt.ZodNaN,...un(e)});jin=Symbol("zod_brand"),zN=class extends mn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},GN=class e extends mn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Mt:s.status==="dirty"?(n.dirty(),p_(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Mt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:Bt.ZodPipeline})}},I_=class extends mn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(vS(i)&&(i.value=Object.freeze(i.value)),i);return Nw(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};I_.create=(e,t)=>new I_({innerType:e,typeName:Bt.ZodReadonly,...un(t)});Hin={object:_u.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(Bt||(Bt={}));qin=(e,t={message:`Input not instance of ${e.name}`})=>VKe(n=>n instanceof e,t),WKe=RS.create,KKe=h_.create,Bin=Fw.create,zin=m_.create,YKe=g_.create,Gin=y_.create,Vin=Mw.create,Win=S_.create,Kin=b_.create,Yin=AS.create,Zin=Hm.create,Jin=Tf.create,Xin=Dw.create,Qin=qm.create,$in=_u.create,esn=_u.strictCreate,tsn=E_.create,nsn=YG.create,rsn=__.create,isn=ch.create,ssn=ZG.create,osn=Lw.create,asn=Uw.create,csn=JG.create,usn=T_.create,lsn=v_.create,dsn=R_.create,fsn=A_.create,psn=wS.create,hsn=dd.create,msn=ud.create,gsn=uh.create,ysn=dd.createWithPreprocess,Ssn=GN.create,bsn=()=>WKe().optional(),Esn=()=>KKe().optional(),_sn=()=>YKe().optional(),Tsn={string:(e=>RS.create({...e,coerce:!0})),number:(e=>h_.create({...e,coerce:!0})),boolean:(e=>g_.create({...e,coerce:!0})),bigint:(e=>m_.create({...e,coerce:!0})),date:(e=>y_.create({...e,coerce:!0}))},vsn=Mt});var O={};Ar(O,{BRAND:()=>jin,DIRTY:()=>p_,EMPTY_PATH:()=>yin,INVALID:()=>Mt,NEVER:()=>vsn,OK:()=>nc,ParseStatus:()=>ha,Schema:()=>mn,ZodAny:()=>AS,ZodArray:()=>qm,ZodBigInt:()=>m_,ZodBoolean:()=>g_,ZodBranded:()=>zN,ZodCatch:()=>k_,ZodDate:()=>y_,ZodDefault:()=>w_,ZodDiscriminatedUnion:()=>YG,ZodEffects:()=>dd,ZodEnum:()=>R_,ZodError:()=>Eu,ZodFirstPartyTypeKind:()=>Bt,ZodFunction:()=>JG,ZodIntersection:()=>__,ZodIssueCode:()=>Ie,ZodLazy:()=>T_,ZodLiteral:()=>v_,ZodMap:()=>Lw,ZodNaN:()=>Fw,ZodNativeEnum:()=>A_,ZodNever:()=>Tf,ZodNull:()=>b_,ZodNullable:()=>uh,ZodNumber:()=>h_,ZodObject:()=>_u,ZodOptional:()=>ud,ZodParsedType:()=>Qe,ZodPipeline:()=>GN,ZodPromise:()=>wS,ZodReadonly:()=>I_,ZodRecord:()=>ZG,ZodSchema:()=>mn,ZodSet:()=>Uw,ZodString:()=>RS,ZodSymbol:()=>Mw,ZodTransformer:()=>dd,ZodTuple:()=>ch,ZodType:()=>mn,ZodUndefined:()=>S_,ZodUnion:()=>E_,ZodUnknown:()=>Hm,ZodVoid:()=>Dw,addIssueToContext:()=>We,any:()=>Yin,array:()=>Qin,bigint:()=>zin,boolean:()=>YKe,coerce:()=>Tsn,custom:()=>VKe,date:()=>Gin,datetimeRegex:()=>zKe,defaultErrorMap:()=>Fm,discriminatedUnion:()=>nsn,effect:()=>hsn,enum:()=>dsn,function:()=>csn,getErrorMap:()=>Pw,getParsedType:()=>ah,instanceof:()=>qin,intersection:()=>rsn,isAborted:()=>WG,isAsync:()=>Nw,isDirty:()=>KG,isValid:()=>vS,late:()=>Hin,lazy:()=>usn,literal:()=>lsn,makeIssue:()=>BN,map:()=>osn,nan:()=>Bin,nativeEnum:()=>fsn,never:()=>Jin,null:()=>Kin,nullable:()=>gsn,number:()=>KKe,object:()=>$in,objectUtil:()=>Kne,oboolean:()=>_sn,onumber:()=>Esn,optional:()=>msn,ostring:()=>bsn,pipeline:()=>Ssn,preprocess:()=>ysn,promise:()=>psn,quotelessJson:()=>hin,record:()=>ssn,set:()=>asn,setErrorMap:()=>gin,strictObject:()=>esn,string:()=>WKe,symbol:()=>Vin,transformer:()=>hsn,tuple:()=>isn,undefined:()=>Win,union:()=>tsn,unknown:()=>Zin,util:()=>Cn,void:()=>Xin});var Qne=v(()=>{VG();Zne();UKe();qN();ZKe();GG()});function me(e,t,n){function r(a,c){var u;Object.defineProperty(a,"_zod",{value:a._zod??{},enumerable:!1}),(u=a._zod).traits??(u.traits=new Set),a._zod.traits.add(e),t(a,c);for(let l in o.prototype)l in a||Object.defineProperty(a,l,{value:o.prototype[l].bind(a)});a._zod.constr=o,a._zod.def=c}let i=n?.Parent??Object;class s extends i{}Object.defineProperty(s,"name",{value:e});function o(a){var c;let u=n?.Parent?new s:this;r(u,a),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function fd(e){return e&&Object.assign(XG,e),XG}var bHr,Bm,XG,jw=v(()=>{bHr=Object.freeze({status:"aborted"});Bm=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},XG={}});var or={};Ar(or,{BIGINT_FORMAT_RANGES:()=>XKe,Class:()=>ere,NUMBER_FORMAT_RANGES:()=>cre,aborted:()=>O_,allowsEval:()=>sre,assert:()=>Isn,assertEqual:()=>Rsn,assertIs:()=>wsn,assertNever:()=>ksn,assertNotEqual:()=>Asn,assignProp:()=>ire,cached:()=>WN,captureStackTrace:()=>$G,cleanEnum:()=>qsn,cleanRegex:()=>YN,clone:()=>lh,createTransparentProxy:()=>Msn,defineLazy:()=>ni,esc:()=>x_,escapeRegex:()=>kS,extend:()=>Usn,finalizeIssue:()=>vf,floatSafeRemainder:()=>rre,getElementAtPath:()=>xsn,getEnumValues:()=>tre,getLengthableOrigin:()=>ZN,getParsedType:()=>Csn,getSizableOrigin:()=>QKe,isObject:()=>Hw,isPlainObject:()=>qw,issue:()=>ure,joinValues:()=>QG,jsonStringifyReplacer:()=>nre,merge:()=>Fsn,normalizeParams:()=>Dt,nullish:()=>KN,numKeys:()=>Nsn,omit:()=>Lsn,optionalKeys:()=>are,partial:()=>jsn,pick:()=>Dsn,prefixIssues:()=>dh,primitiveTypes:()=>JKe,promiseAllObject:()=>Osn,propertyKeyTypes:()=>ore,randomString:()=>Psn,required:()=>Hsn,stringifyPrimitive:()=>e2,unwrapMessage:()=>VN});function Rsn(e){return e}function Asn(e){return e}function wsn(e){}function ksn(e){throw new Error}function Isn(e){}function tre(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function QG(e,t="|"){return e.map(n=>e2(n)).join(t)}function nre(e,t){return typeof t=="bigint"?t.toString():t}function WN(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function KN(e){return e==null}function YN(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function rre(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function ni(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function ire(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function xsn(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Osn(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Msn(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function e2(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function are(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Dsn(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return lh(e,{...e._zod.def,shape:n,checks:[]})}function Lsn(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return lh(e,{...e._zod.def,shape:n,checks:[]})}function Usn(e,t){if(!qw(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return ire(this,"shape",r),r},checks:[]};return lh(e,n)}function Fsn(e,t){return lh(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return ire(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function jsn(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return lh(t,{...t._zod.def,shape:i,checks:[]})}function Hsn(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return lh(t,{...t._zod.def,shape:i,checks:[]})}function O_(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function VN(e){return typeof e=="string"?e:e?.message}function vf(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=VN(e.inst?._zod.def?.error?.(e))??VN(t?.error?.(e))??VN(n.customError?.(e))??VN(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function QKe(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function ZN(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function ure(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function qsn(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var $G,sre,Csn,ore,JKe,cre,XKe,ere,zm=v(()=>{$G=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};sre=WN(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Csn=e=>{let t=typeof e;switch(t){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":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},ore=new Set(["string","number","symbol"]),JKe=new Set(["string","number","bigint","boolean","symbol","undefined"]);cre={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},XKe={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};ere=class{constructor(...t){}}});function e3e(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function t3e(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;c{jw();zm();$Ke=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,nre,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},t2=me("$ZodError",$Ke),lre=me("$ZodError",$Ke,{Parent:Error})});var n3e,r3e,fre,JN,pre,n2,hre=v(()=>{jw();dre();zm();n3e=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new Bm;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,fd())));throw $G(a,i?.callee),a}return o.value},r3e=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>vf(c,s,fd())));throw $G(a,i?.callee),a}return o.value},fre=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Bm;return s.issues.length?{success:!1,error:new(e??t2)(s.issues.map(o=>vf(o,i,fd())))}:{success:!0,data:s.value}},JN=fre(lre),pre=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>vf(o,i,fd())))}:{success:!0,data:s.value}},n2=pre(lre)});function p3e(){return new RegExp(zsn,"u")}function v3e(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function R3e(e){return new RegExp(`^${v3e(e)}$`)}function A3e(e){let t=v3e({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-]\\d{2}:\\d{2})");let r=`${t}(?:${n.join("|")})`;return new RegExp(`^${_3e}T(?:${r})$`)}var i3e,s3e,o3e,a3e,c3e,u3e,l3e,d3e,mre,f3e,zsn,h3e,m3e,g3e,y3e,S3e,gre,b3e,E3e,_3e,T3e,w3e,k3e,I3e,x3e,O3e,P3e,N3e,r2=v(()=>{i3e=/^[cC][^\s-]{8,}$/,s3e=/^[0-9a-z]+$/,o3e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,a3e=/^[0-9a-vA-V]{20}$/,c3e=/^[A-Za-z0-9]{27}$/,u3e=/^[a-zA-Z0-9_-]{21}$/,l3e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,d3e=/^([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})$/,mre=e=>e?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})$`):/^([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)$/,f3e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,zsn="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";h3e=/^(?:(?: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])$/,m3e=/^(([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})$/,g3e=/^((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])$/,y3e=/^(([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])$/,S3e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,gre=/^[A-Za-z0-9_-]*$/,b3e=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,E3e=/^\+(?:[0-9]){6,14}[0-9]$/,_3e="(?:(?:\\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])))",T3e=new RegExp(`^${_3e}$`);w3e=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},k3e=/^\d+$/,I3e=/^-?\d+(?:\.\d+)?/i,x3e=/true|false/i,O3e=/null/i,P3e=/^[^A-Z]*$/,N3e=/^[^a-z]*$/});var rc,C3e,Sre,bre,M3e,D3e,L3e,U3e,F3e,XN,j3e,H3e,q3e,B3e,z3e,G3e,V3e,i2=v(()=>{jw();r2();zm();rc=me("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),C3e={number:"number",bigint:"bigint",object:"date"},Sre=me("$ZodCheckLessThan",(e,t)=>{rc.init(e,t);let n=C3e[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{rc.init(e,t);let n=C3e[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),M3e=me("$ZodCheckMultipleOf",(e,t)=>{rc.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):rre(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),D3e=me("$ZodCheckNumberFormat",(e,t)=>{rc.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=cre[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=k3e)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),L3e=me("$ZodCheckMaxLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!KN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let i=r.value;if(i.length<=t.maximum)return;let o=ZN(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),U3e=me("$ZodCheckMinLength",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!KN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{let i=r.value;if(i.length>=t.minimum)return;let o=ZN(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),F3e=me("$ZodCheckLengthEquals",(e,t)=>{var n;rc.init(e,t),(n=e._zod.def).when??(n.when=r=>{let i=r.value;return!KN(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{let i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{let i=r.value,s=i.length;if(s===t.length)return;let o=ZN(i),a=s>t.length;r.issues.push({origin:o,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),XN=me("$ZodCheckStringFormat",(e,t)=>{var n,r;rc.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),j3e=me("$ZodCheckRegex",(e,t)=>{XN.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),H3e=me("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=P3e),XN.init(e,t)}),q3e=me("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=N3e),XN.init(e,t)}),B3e=me("$ZodCheckIncludes",(e,t)=>{rc.init(e,t);let n=kS(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),z3e=me("$ZodCheckStartsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`^${kS(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),G3e=me("$ZodCheckEndsWith",(e,t)=>{rc.init(e,t);let n=new RegExp(`.*${kS(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),V3e=me("$ZodCheckOverwrite",(e,t)=>{rc.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}})});var s2,Ere=v(()=>{s2=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` `).filter(o=>o),i=Math.min(...r.map(o=>o.length-o.trimStart().length)),s=r.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of s)this.content.push(o)}compile(){let t=Function,n=this?.args,i=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...n,i.join(` -`))}}});var W3e,Ere=v(()=>{W3e={major:4,minor:0,patch:0}});function _9e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Gsn(e){if(!mre.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return _9e(n)}function Vsn(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function K3e(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function i2(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function Y3e(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...dh(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Z3e(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>vf(s,r,fd())))}),t}function _re(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(qw(e)&&qw(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=_re(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r{n2();jw();bre();pre();t2();zm();Ere();zm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=W3e;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=O_(s),u;for(let l of o){if(l._zod.def.when){if(!l._zod.def.when(s))continue}else if(c)continue;let d=s.issues.length,f=l._zod.check(s);if(f instanceof Promise&&a?.async===!1)throw new Bm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=O_(s,d)))});else{if(s.issues.length===d)continue;c||(c=O_(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Bm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=ZN(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return e2(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),s2=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??A3e(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),hi=me("$ZodStringFormat",(e,t)=>{JN.init(e,t),s2.init(e,t)}),n9e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=l3e),hi.init(e,t)}),r9e=me("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=hre(r))}else t.pattern??(t.pattern=hre());hi.init(e,t)}),i9e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=d3e),hi.init(e,t)}),s9e=me("$ZodURL",(e,t)=>{hi.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:S3e.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),o9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=f3e()),hi.init(e,t)}),a9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=c3e),hi.init(e,t)}),c9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=r3e),hi.init(e,t)}),u9e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=i3e),hi.init(e,t)}),l9e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=s3e),hi.init(e,t)}),d9e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=o3e),hi.init(e,t)}),f9e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=a3e),hi.init(e,t)}),p9e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=R3e(t)),hi.init(e,t)}),h9e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=_3e),hi.init(e,t)}),m9e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=v3e(t)),hi.init(e,t)}),g9e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=u3e),hi.init(e,t)}),y9e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=p3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),S9e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=h3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.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:!t.abort})}}}),b9e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=m3e),hi.init(e,t)}),E9e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=g3e),hi.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});T9e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=y3e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{_9e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});v9e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=mre),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Gsn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),R9e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=b3e),hi.init(e,t)});A9e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{Vsn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Tre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??k3e,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),w9e=me("$ZodNumber",(e,t)=>{M3e.init(e,t),Tre.init(e,t)}),k9e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=I3e,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),I9e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=x3e,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),x9e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),O9e=me("$ZodNever",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});P9e=me("$ZodArray",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oK3e(u,n,o))):K3e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});N9e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=VN(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof ri))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=ore(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ni(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new r2(["shape","payload","ctx"]),p=n.value,h=b=>{let S=x_(b);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let m=Object.create(null),g=0;for(let b of p.keys)m[b]=`key_${g++}`;f.write("const newResult = {}");for(let b of p.keys)if(p.optionalKeys.has(b)){let S=m[b];f.write(`const ${S} = ${h(b)};`);let E=x_(b);f.write(` +`))}}});var K3e,_re=v(()=>{K3e={major:4,minor:0,patch:0}});function T9e(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Gsn(e){if(!gre.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return T9e(n)}function Vsn(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function Y3e(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function o2(e,t,n){e.issues.length&&t.issues.push(...dh(n,e.issues)),t.value[n]=e.value}function Z3e(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...dh(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function J3e(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>vf(s,r,fd())))}),t}function Tre(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(qw(e)&&qw(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=Tre(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r{i2();jw();Ere();hre();r2();zm();_re();zm();ri=me("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=K3e;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=O_(s),u;for(let l of o){if(l._zod.def.when){if(!l._zod.def.when(s))continue}else if(c)continue;let d=s.issues.length,f=l._zod.check(s);if(f instanceof Promise&&a?.async===!1)throw new Bm;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=O_(s,d)))});else{if(s.issues.length===d)continue;c||(c=O_(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Bm;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=JN(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return n2(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),a2=me("$ZodString",(e,t)=>{ri.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??w3e(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),hi=me("$ZodStringFormat",(e,t)=>{XN.init(e,t),a2.init(e,t)}),r9e=me("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=d3e),hi.init(e,t)}),i9e=me("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=mre(r))}else t.pattern??(t.pattern=mre());hi.init(e,t)}),s9e=me("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=f3e),hi.init(e,t)}),o9e=me("$ZodURL",(e,t)=>{hi.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:b3e.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),a9e=me("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=p3e()),hi.init(e,t)}),c9e=me("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=u3e),hi.init(e,t)}),u9e=me("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=i3e),hi.init(e,t)}),l9e=me("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=s3e),hi.init(e,t)}),d9e=me("$ZodULID",(e,t)=>{t.pattern??(t.pattern=o3e),hi.init(e,t)}),f9e=me("$ZodXID",(e,t)=>{t.pattern??(t.pattern=a3e),hi.init(e,t)}),p9e=me("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=c3e),hi.init(e,t)}),h9e=me("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=A3e(t)),hi.init(e,t)}),m9e=me("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=T3e),hi.init(e,t)}),g9e=me("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=R3e(t)),hi.init(e,t)}),y9e=me("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=l3e),hi.init(e,t)}),S9e=me("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=h3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),b9e=me("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=m3e),hi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.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:!t.abort})}}}),E9e=me("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=g3e),hi.init(e,t)}),_9e=me("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=y3e),hi.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});v9e=me("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=S3e),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{T9e(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});R9e=me("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=gre),hi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Gsn(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),A9e=me("$ZodE164",(e,t)=>{t.pattern??(t.pattern=E3e),hi.init(e,t)});w9e=me("$ZodJWT",(e,t)=>{hi.init(e,t),e._zod.check=n=>{Vsn(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),vre=me("$ZodNumber",(e,t)=>{ri.init(e,t),e._zod.pattern=e._zod.bag.pattern??I3e,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),k9e=me("$ZodNumber",(e,t)=>{D3e.init(e,t),vre.init(e,t)}),I9e=me("$ZodBoolean",(e,t)=>{ri.init(e,t),e._zod.pattern=x3e,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),x9e=me("$ZodNull",(e,t)=>{ri.init(e,t),e._zod.pattern=O3e,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),O9e=me("$ZodUnknown",(e,t)=>{ri.init(e,t),e._zod.parse=n=>n}),P9e=me("$ZodNever",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});N9e=me("$ZodArray",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oY3e(u,n,o))):Y3e(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});C9e=me("$ZodObject",(e,t)=>{ri.init(e,t);let n=WN(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof ri))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=are(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ni(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new s2(["shape","payload","ctx"]),p=n.value,h=b=>{let S=x_(b);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let m=Object.create(null),g=0;for(let b of p.keys)m[b]=`key_${g++}`;f.write("const newResult = {}");for(let b of p.keys)if(p.optionalKeys.has(b)){let S=m[b];f.write(`const ${S} = ${h(b)};`);let E=x_(b);f.write(` if (${S}.issues.length) { if (input[${E}] === undefined) { if (${E} in input) { @@ -62,16 +62,16 @@ Mongoose Error Code: ${t.code}`:""}`})}function hte(e,t,n,r=void 0){n&&(0,aN.saf if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ ...iss, path: iss.path ? [${x_(b)}, ...iss.path] : [${x_(b)}] - })));`),f.write(`newResult[${x_(b)}] = ${S}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");let y=f.compile();return(b,S)=>y(d,b,S)},i,s=Hw,o=!ZG.jitless,c=o&&ire.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let E of l.keys){let _=S[E],T=_._zod.run({value:p[E],issues:[]},f),R=_._zod.optin==="optional"&&_._zod.optout==="optional";T instanceof Promise?h.push(T.then(A=>R?Y3e(A,d,E,p):i2(A,d,E))):R?Y3e(T,d,E,p):i2(T,d,E)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let m=[],g=l.keySet,y=u._zod,b=y.def.type;for(let S of Object.keys(p)){if(g.has(S))continue;if(b==="never"){m.push(S);continue}let E=y.run({value:p[S],issues:[]},f);E instanceof Promise?h.push(E.then(_=>i2(_,d,S))):i2(E,d,S)}return m.length&&d.issues.push({code:"unrecognized_keys",keys:m,input:p,inst:e}),h.length?Promise.all(h).then(()=>d):d}});vre=me("$ZodUnion",(e,t)=>{ri.init(e,t),ni(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ni(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ni(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ni(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>KN(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>Z3e(o,n,e,r)):Z3e(s,n,e,r)}}),C9e=me("$ZodDiscriminatedUnion",(e,t)=>{vre.init(e,t);let n=e._zod.parse;ni(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=VN(()=>{let i=t.options,s=new Map;for(let o of i){let a=o._zod.propValues[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});e._zod.parse=(i,s)=>{let o=i.value;if(!Hw(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;let a=r.value.get(o?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[t.discriminator],inst:e}),i)}}),M9e=me("$ZodIntersection",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>J3e(n,c,u)):J3e(n,s,o)}});D9e=me("$ZodRecord",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!qw(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...dh(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...dh(c,u.issues)),n.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=t.keyType._zod.run({value:o,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>vf(u,r,fd())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...dh(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...dh(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),L9e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=ere(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>sre.has(typeof r)).map(r=>typeof r=="string"?kS(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),U9e=me("$ZodLiteral",(e,t)=>{ri.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?kS(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),F9e=me("$ZodTransform",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new Bm;return n.value=i,n}}),j9e=me("$ZodOptional",(e,t)=>{ri.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ni(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ni(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${KN(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),H9e=me("$ZodNullable",(e,t)=>{ri.init(e,t),ni(e._zod,"optin",()=>t.innerType._zod.optin),ni(e._zod,"optout",()=>t.innerType._zod.optout),ni(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${KN(n.source)}|null)$`):void 0}),ni(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),q9e=me("$ZodDefault",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>X3e(s,t)):X3e(i,t)}});B9e=me("$ZodPrefault",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),z9e=me("$ZodNonOptional",(e,t)=>{ri.init(e,t),ni(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Q3e(s,e)):Q3e(i,e)}});G9e=me("$ZodCatch",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"optout",()=>t.innerType._zod.optout),ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>vf(o,r,fd()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>vf(s,r,fd()))},input:n.value}),n.issues=[]),n)}}),V9e=me("$ZodPipe",(e,t)=>{ri.init(e,t),ni(e._zod,"values",()=>t.in._zod.values),ni(e._zod,"optin",()=>t.in._zod.optin),ni(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>$3e(s,t,r)):$3e(i,t,r)}});W9e=me("$ZodReadonly",(e,t)=>{ri.init(e,t),ni(e._zod,"propValues",()=>t.innerType._zod.propValues),ni(e._zod,"values",()=>t.innerType._zod.values),ni(e._zod,"optin",()=>t.innerType._zod.optin),ni(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(e9e):e9e(i)}});K9e=me("$ZodCustom",(e,t)=>{rc.init(e,t),ri.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>t9e(s,n,r,e));t9e(i,n,r,e)}})});function Z9e(){return{localeError:Ksn()}}var Wsn,Ksn,J9e=v(()=>{zm();Wsn=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},Ksn=()=>{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"}};function t(r){return e[r]??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"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${Wsn(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${QG(r.values[0])}`:`Invalid option: expected one of ${JG(r.values,"|")}`;case"too_big":{let i=r.inclusive?"<=":"<",s=t(r.origin);return s?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{let i=r.inclusive?">=":">",s=t(r.origin);return s?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${s.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{let i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${JG(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}}});var o2=v(()=>{});function Ysn(){return new Are}var Are,XN,X9e=v(()=>{Are=class{constructor(){this._map=new Map,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(t){let n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};XN=Ysn()});function Q9e(e,t){return new e({type:"string",...Dt(t)})}function $9e(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Dt(t)})}function wre(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(t)})}function eYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(t)})}function tYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(t)})}function nYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(t)})}function rYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(t)})}function iYe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Dt(t)})}function sYe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(t)})}function oYe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(t)})}function aYe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(t)})}function cYe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(t)})}function uYe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(t)})}function lYe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(t)})}function dYe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(t)})}function fYe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(t)})}function pYe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(t)})}function hYe(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(t)})}function mYe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(t)})}function gYe(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(t)})}function yYe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(t)})}function SYe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(t)})}function bYe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(t)})}function EYe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(t)})}function _Ye(e,t){return new e({type:"string",format:"date",check:"string_format",...Dt(t)})}function TYe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Dt(t)})}function vYe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Dt(t)})}function RYe(e,t){return new e({type:"number",checks:[],...Dt(t)})}function AYe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(t)})}function wYe(e,t){return new e({type:"boolean",...Dt(t)})}function kYe(e,t){return new e({type:"null",...Dt(t)})}function IYe(e){return new e({type:"unknown"})}function xYe(e,t){return new e({type:"never",...Dt(t)})}function a2(e,t){return new yre({check:"less_than",...Dt(t),value:e,inclusive:!1})}function QN(e,t){return new yre({check:"less_than",...Dt(t),value:e,inclusive:!0})}function c2(e,t){return new Sre({check:"greater_than",...Dt(t),value:e,inclusive:!1})}function $N(e,t){return new Sre({check:"greater_than",...Dt(t),value:e,inclusive:!0})}function u2(e,t){return new C3e({check:"multiple_of",...Dt(t),value:e})}function l2(e,t){return new D3e({check:"max_length",...Dt(t),maximum:e})}function Bw(e,t){return new L3e({check:"min_length",...Dt(t),minimum:e})}function d2(e,t){return new U3e({check:"length_equals",...Dt(t),length:e})}function kre(e,t){return new F3e({check:"string_format",format:"regex",...Dt(t),pattern:e})}function Ire(e){return new j3e({check:"string_format",format:"lowercase",...Dt(e)})}function xre(e){return new H3e({check:"string_format",format:"uppercase",...Dt(e)})}function Ore(e,t){return new q3e({check:"string_format",format:"includes",...Dt(t),includes:e})}function Pre(e,t){return new B3e({check:"string_format",format:"starts_with",...Dt(t),prefix:e})}function Nre(e,t){return new z3e({check:"string_format",format:"ends_with",...Dt(t),suffix:e})}function P_(e){return new G3e({check:"overwrite",tx:e})}function Cre(e){return P_(t=>t.normalize(e))}function Mre(){return P_(e=>e.trim())}function Dre(){return P_(e=>e.toLowerCase())}function Lre(){return P_(e=>e.toUpperCase())}function OYe(e,t,n){return new e({type:"array",element:t,...Dt(n)})}function PYe(e,t,n){let r=Dt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function NYe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Dt(n)})}var CYe=v(()=>{n2();zm()});var MYe=v(()=>{});var DYe=v(()=>{});var LYe=v(()=>{});var pd=v(()=>{jw();pre();lre();Y9e();n2();Ere();zm();t2();o2();X9e();bre();MYe();CYe();DYe();LYe()});var UYe=v(()=>{pd()});var FYe=v(()=>{});var jYe=v(()=>{});var HYe=v(()=>{});var qYe=v(()=>{});var BYe=v(()=>{pd();UYe();FYe();jYe();o2();HYe();qYe()});var zYe=v(()=>{BYe()});var GYe=v(()=>{zYe()});function Gw(e){return!!e._zod}function IS(e,t){return Gw(e)?ZN(e,t):e.safeParse(t)}function f2(e){if(!e)return;let t;if(Gw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function VYe(e){if(Gw(e)){let s=e._zod?.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}let n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}let r=e.value;if(r!==void 0)return r}var p2=v(()=>{GYe()});var Ure=v(()=>{pd()});var eC={};Ar(eC,{ZodISODate:()=>KYe,ZodISODateTime:()=>WYe,ZodISODuration:()=>ZYe,ZodISOTime:()=>YYe,date:()=>jre,datetime:()=>Fre,duration:()=>qre,time:()=>Hre});function Fre(e){return EYe(WYe,e)}function jre(e){return _Ye(KYe,e)}function Hre(e){return TYe(YYe,e)}function qre(e){return vYe(ZYe,e)}var WYe,KYe,YYe,ZYe,Bre=v(()=>{pd();zre();WYe=me("ZodISODateTime",(e,t)=>{p9e.init(e,t),Di.init(e,t)});KYe=me("ZodISODate",(e,t)=>{h9e.init(e,t),Di.init(e,t)});YYe=me("ZodISOTime",(e,t)=>{m9e.init(e,t),Di.init(e,t)});ZYe=me("ZodISODuration",(e,t)=>{g9e.init(e,t),Di.init(e,t)})});var JYe,Tqr,tC,Gre=v(()=>{pd();pd();JYe=(e,t)=>{$G.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>e3e(e,n)},flatten:{value:n=>$Ke(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Tqr=me("ZodError",JYe),tC=me("ZodError",JYe,{Parent:Error})});var XYe,QYe,$Ye,eZe,Vre=v(()=>{pd();Gre();XYe=t3e(tC),QYe=n3e(tC),$Ye=dre(tC),eZe=fre(tC)});function ce(e){return Q9e(son,e)}function vr(e){return RYe(sZe,e)}function nZe(e){return AYe(von,e)}function Vo(e){return wYe(Ron,e)}function oZe(e){return kYe(Aon,e)}function Li(){return IYe(won)}function Ion(e){return xYe(kon,e)}function Vn(e,t){return OYe(xon,e,t)}function $e(e,t){let n={type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},...or.normalizeParams(t)};return new aZe(n)}function Bc(e,t){return new aZe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new cZe({type:"union",options:e,...or.normalizeParams(t)})}function Yre(e,t,n){return new Oon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function m2(e,t){return new Pon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new Non({type:"record",keyType:e,valueType:t,...or.normalizeParams(n)})}function Tu(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Wre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new Con({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function uZe(e){return new Mon({type:"transform",transform:e})}function Ui(e){return new lZe({type:"optional",innerType:e})}function rZe(e){return new Don({type:"nullable",innerType:e})}function Uon(e,t){return new Lon({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function jon(e,t){return new Fon({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Hon(e,t){return new dZe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Bon(e,t){return new qon({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Kre(e,t){return new zon({type:"pipe",in:e,out:t})}function Von(e){return new Gon({type:"readonly",innerType:e})}function Won(e){let t=new rc({check:"custom"});return t._zod.check=e,t}function pZe(e,t){return PYe(fZe,e??(()=>!0),t)}function Kon(e,t={}){return NYe(fZe,e,t)}function Yon(e){let t=Won(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(or.issue(r,n.value,t._zod.def));else{let i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(or.issue(i))}},e(n.value,n)));return t}function Zre(e,t){return Kre(uZe(e),t)}var Ji,iZe,son,Di,oon,tZe,h2,aon,con,uon,lon,don,fon,pon,hon,mon,gon,yon,Son,bon,Eon,_on,Ton,sZe,von,Ron,Aon,won,kon,xon,aZe,cZe,Oon,Pon,Non,Wre,Con,Mon,lZe,Don,Lon,Fon,dZe,qon,zon,Gon,fZe,zre=v(()=>{pd();pd();Ure();Bre();Vre();Ji=me("ZodType",(e,t)=>(ri.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>lh(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>XYe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>$Ye(e,n,r),e.parseAsync=async(n,r)=>QYe(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>eZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Kon(n,r)),e.superRefine=n=>e.check(Yon(n)),e.overwrite=n=>e.check(P_(n)),e.optional=()=>Ui(e),e.nullable=()=>rZe(e),e.nullish=()=>Ui(rZe(e)),e.nonoptional=n=>Hon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>m2(e,n),e.transform=n=>Kre(e,uZe(n)),e.default=n=>Uon(e,n),e.prefault=n=>jon(e,n),e.catch=n=>Bon(e,n),e.pipe=n=>Kre(e,n),e.readonly=()=>Von(e),e.describe=n=>{let r=e.clone();return XN.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return XN.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return XN.get(e);let r=e.clone();return XN.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),iZe=me("_ZodString",(e,t)=>{s2.init(e,t),Ji.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(kre(...r)),e.includes=(...r)=>e.check(Ore(...r)),e.startsWith=(...r)=>e.check(Pre(...r)),e.endsWith=(...r)=>e.check(Nre(...r)),e.min=(...r)=>e.check(Bw(...r)),e.max=(...r)=>e.check(l2(...r)),e.length=(...r)=>e.check(d2(...r)),e.nonempty=(...r)=>e.check(Bw(1,...r)),e.lowercase=r=>e.check(Ire(r)),e.uppercase=r=>e.check(xre(r)),e.trim=()=>e.check(Mre()),e.normalize=(...r)=>e.check(Cre(...r)),e.toLowerCase=()=>e.check(Dre()),e.toUpperCase=()=>e.check(Lre())}),son=me("ZodString",(e,t)=>{s2.init(e,t),iZe.init(e,t),e.email=n=>e.check($9e(oon,n)),e.url=n=>e.check(iYe(aon,n)),e.jwt=n=>e.check(bYe(Ton,n)),e.emoji=n=>e.check(sYe(con,n)),e.guid=n=>e.check(wre(tZe,n)),e.uuid=n=>e.check(eYe(h2,n)),e.uuidv4=n=>e.check(tYe(h2,n)),e.uuidv6=n=>e.check(nYe(h2,n)),e.uuidv7=n=>e.check(rYe(h2,n)),e.nanoid=n=>e.check(oYe(uon,n)),e.guid=n=>e.check(wre(tZe,n)),e.cuid=n=>e.check(aYe(lon,n)),e.cuid2=n=>e.check(cYe(don,n)),e.ulid=n=>e.check(uYe(fon,n)),e.base64=n=>e.check(gYe(bon,n)),e.base64url=n=>e.check(yYe(Eon,n)),e.xid=n=>e.check(lYe(pon,n)),e.ksuid=n=>e.check(dYe(hon,n)),e.ipv4=n=>e.check(fYe(mon,n)),e.ipv6=n=>e.check(pYe(gon,n)),e.cidrv4=n=>e.check(hYe(yon,n)),e.cidrv6=n=>e.check(mYe(Son,n)),e.e164=n=>e.check(SYe(_on,n)),e.datetime=n=>e.check(Fre(n)),e.date=n=>e.check(jre(n)),e.time=n=>e.check(Hre(n)),e.duration=n=>e.check(qre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),iZe.init(e,t)}),oon=me("ZodEmail",(e,t)=>{i9e.init(e,t),Di.init(e,t)}),tZe=me("ZodGUID",(e,t)=>{n9e.init(e,t),Di.init(e,t)}),h2=me("ZodUUID",(e,t)=>{r9e.init(e,t),Di.init(e,t)}),aon=me("ZodURL",(e,t)=>{s9e.init(e,t),Di.init(e,t)}),con=me("ZodEmoji",(e,t)=>{o9e.init(e,t),Di.init(e,t)}),uon=me("ZodNanoID",(e,t)=>{a9e.init(e,t),Di.init(e,t)}),lon=me("ZodCUID",(e,t)=>{c9e.init(e,t),Di.init(e,t)}),don=me("ZodCUID2",(e,t)=>{u9e.init(e,t),Di.init(e,t)}),fon=me("ZodULID",(e,t)=>{l9e.init(e,t),Di.init(e,t)}),pon=me("ZodXID",(e,t)=>{d9e.init(e,t),Di.init(e,t)}),hon=me("ZodKSUID",(e,t)=>{f9e.init(e,t),Di.init(e,t)}),mon=me("ZodIPv4",(e,t)=>{y9e.init(e,t),Di.init(e,t)}),gon=me("ZodIPv6",(e,t)=>{S9e.init(e,t),Di.init(e,t)}),yon=me("ZodCIDRv4",(e,t)=>{b9e.init(e,t),Di.init(e,t)}),Son=me("ZodCIDRv6",(e,t)=>{E9e.init(e,t),Di.init(e,t)}),bon=me("ZodBase64",(e,t)=>{T9e.init(e,t),Di.init(e,t)}),Eon=me("ZodBase64URL",(e,t)=>{v9e.init(e,t),Di.init(e,t)}),_on=me("ZodE164",(e,t)=>{R9e.init(e,t),Di.init(e,t)}),Ton=me("ZodJWT",(e,t)=>{A9e.init(e,t),Di.init(e,t)}),sZe=me("ZodNumber",(e,t)=>{Tre.init(e,t),Ji.init(e,t),e.gt=(r,i)=>e.check(c2(r,i)),e.gte=(r,i)=>e.check($N(r,i)),e.min=(r,i)=>e.check($N(r,i)),e.lt=(r,i)=>e.check(a2(r,i)),e.lte=(r,i)=>e.check(QN(r,i)),e.max=(r,i)=>e.check(QN(r,i)),e.int=r=>e.check(nZe(r)),e.safe=r=>e.check(nZe(r)),e.positive=r=>e.check(c2(0,r)),e.nonnegative=r=>e.check($N(0,r)),e.negative=r=>e.check(a2(0,r)),e.nonpositive=r=>e.check(QN(0,r)),e.multipleOf=(r,i)=>e.check(u2(r,i)),e.step=(r,i)=>e.check(u2(r,i)),e.finite=()=>e;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??.5),e.isFinite=!0,e.format=n.format??null});von=me("ZodNumberFormat",(e,t)=>{w9e.init(e,t),sZe.init(e,t)});Ron=me("ZodBoolean",(e,t)=>{k9e.init(e,t),Ji.init(e,t)});Aon=me("ZodNull",(e,t)=>{I9e.init(e,t),Ji.init(e,t)});won=me("ZodUnknown",(e,t)=>{x9e.init(e,t),Ji.init(e,t)});kon=me("ZodNever",(e,t)=>{O9e.init(e,t),Ji.init(e,t)});xon=me("ZodArray",(e,t)=>{P9e.init(e,t),Ji.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Bw(n,r)),e.nonempty=n=>e.check(Bw(1,n)),e.max=(n,r)=>e.check(l2(n,r)),e.length=(n,r)=>e.check(d2(n,r)),e.unwrap=()=>e.element});aZe=me("ZodObject",(e,t)=>{N9e.init(e,t),Ji.init(e,t),or.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Tu(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Li()}),e.loose=()=>e.clone({...e._zod.def,catchall:Li()}),e.strict=()=>e.clone({...e._zod.def,catchall:Ion()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>or.extend(e,n),e.merge=n=>or.merge(e,n),e.pick=n=>or.pick(e,n),e.omit=n=>or.omit(e,n),e.partial=(...n)=>or.partial(lZe,e,n[0]),e.required=(...n)=>or.required(dZe,e,n[0])});cZe=me("ZodUnion",(e,t)=>{vre.init(e,t),Ji.init(e,t),e.options=t.options});Oon=me("ZodDiscriminatedUnion",(e,t)=>{cZe.init(e,t),C9e.init(e,t)});Pon=me("ZodIntersection",(e,t)=>{M9e.init(e,t),Ji.init(e,t)});Non=me("ZodRecord",(e,t)=>{D9e.init(e,t),Ji.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Wre=me("ZodEnum",(e,t)=>{L9e.init(e,t),Ji.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Wre({...t,checks:[],...or.normalizeParams(i),entries:s})},e.exclude=(r,i)=>{let s={...t.entries};for(let o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new Wre({...t,checks:[],...or.normalizeParams(i),entries:s})}});Con=me("ZodLiteral",(e,t)=>{U9e.init(e,t),Ji.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});Mon=me("ZodTransform",(e,t)=>{F9e.init(e,t),Ji.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(or.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(or.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});lZe=me("ZodOptional",(e,t)=>{j9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Don=me("ZodNullable",(e,t)=>{H9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Lon=me("ZodDefault",(e,t)=>{q9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Fon=me("ZodPrefault",(e,t)=>{B9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});dZe=me("ZodNonOptional",(e,t)=>{z9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});qon=me("ZodCatch",(e,t)=>{G9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});zon=me("ZodPipe",(e,t)=>{V9e.init(e,t),Ji.init(e,t),e.in=t.in,e.out=t.out});Gon=me("ZodReadonly",(e,t)=>{W9e.init(e,t),Ji.init(e,t)});fZe=me("ZodCustom",(e,t)=>{K9e.init(e,t),Ji.init(e,t)})});var hZe=v(()=>{});var mZe=v(()=>{});var gZe=v(()=>{pd();zre();Ure();Gre();Vre();hZe();pd();J9e();o2();Bre();mZe();fd(Z9e())});var yZe=v(()=>{gZe()});var SZe=v(()=>{yZe()});var Xre,bZe,xS,y2,_o,EZe,_Ze,yBr,Xon,Qon,Qre,Sl,nC,TZe,ma,hd,md,ga,S2,vZe,$re,RZe,AZe,eie,rC,yn,tie,wZe,kZe,SBr,b2,$on,E2,ean,iC,Vw,IZe,tan,nan,ran,ian,san,oan,nie,aan,can,rie,_2,uan,lan,T2,dan,sC,oC,fan,aC,Ww,pan,cC,v2,R2,A2,bBr,w2,k2,I2,xZe,OZe,PZe,iie,NZe,uC,Kw,CZe,han,man,gan,yan,San,sie,ban,Ean,_an,Tan,van,Ran,Aan,wan,kan,Ian,xan,Oan,oie,Pan,Nan,aie,cie,uie,lie,Can,Man,Dan,die,Lan,Uan,Fan,jan,Han,MZe,fie,qan,x2,EBr,Ban,lC,zan,_Br,dC,Gan,pie,Van,Wan,Kan,Yan,Zan,Jan,Xan,g2,Qan,$an,ecn,fC,hie,tcn,ncn,rcn,icn,scn,ocn,acn,ccn,ucn,lcn,dcn,fcn,pcn,hcn,mcn,gcn,ycn,Scn,Yw,bcn,Ecn,_cn,mie,Tcn,vcn,Rcn,gie,Acn,TBr,vBr,RBr,ABr,wBr,kBr,rn,Jre,N_=v(()=>{SZe();Xre="2025-11-25",bZe=[Xre,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],xS="io.modelcontextprotocol/related-task",y2="2.0",_o=pZe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),EZe=mi([ce(),vr().int()]),_Ze=ce(),yBr=Bc({ttl:vr().optional(),pollInterval:vr().optional()}),Xon=$e({ttl:vr().optional()}),Qon=$e({taskId:ce()}),Qre=Bc({progressToken:EZe.optional(),[xS]:Qon.optional()}),Sl=$e({_meta:Qre.optional()}),nC=Sl.extend({task:Xon.optional()}),TZe=e=>nC.safeParse(e).success,ma=$e({method:ce(),params:Sl.loose().optional()}),hd=$e({_meta:Qre.optional()}),md=$e({method:ce(),params:hd.loose().optional()}),ga=Bc({_meta:Qre.optional()}),S2=mi([ce(),vr().int()]),vZe=$e({jsonrpc:ft(y2),id:S2,...ma.shape}).strict(),$re=e=>vZe.safeParse(e).success,RZe=$e({jsonrpc:ft(y2),...md.shape}).strict(),AZe=e=>RZe.safeParse(e).success,eie=$e({jsonrpc:ft(y2),id:S2,result:ga}).strict(),rC=e=>eie.safeParse(e).success;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(yn||(yn={}));tie=$e({jsonrpc:ft(y2),id:S2.optional(),error:$e({code:vr().int(),message:ce(),data:Li().optional()})}).strict(),wZe=e=>tie.safeParse(e).success,kZe=mi([vZe,RZe,eie,tie]),SBr=mi([eie,tie]),b2=ga.strict(),$on=hd.extend({requestId:S2.optional(),reason:ce().optional()}),E2=md.extend({method:ft("notifications/cancelled"),params:$on}),ean=$e({src:ce(),mimeType:ce().optional(),sizes:Vn(ce()).optional(),theme:Tu(["light","dark"]).optional()}),iC=$e({icons:Vn(ean).optional()}),Vw=$e({name:ce(),title:ce().optional()}),IZe=Vw.extend({...Vw.shape,...iC.shape,version:ce(),websiteUrl:ce().optional(),description:ce().optional()}),tan=m2($e({applyDefaults:Vo().optional()}),ii(ce(),Li())),nan=Zre(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,m2($e({form:tan.optional(),url:_o.optional()}),ii(ce(),Li()).optional())),ran=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({sampling:Bc({createMessage:_o.optional()}).optional(),elicitation:Bc({create:_o.optional()}).optional()}).optional()}),ian=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({tools:Bc({call:_o.optional()}).optional()}).optional()}),san=$e({experimental:ii(ce(),_o).optional(),sampling:$e({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:nan.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:ran.optional(),extensions:ii(ce(),_o).optional()}),oan=Sl.extend({protocolVersion:ce(),capabilities:san,clientInfo:IZe}),nie=ma.extend({method:ft("initialize"),params:oan}),aan=$e({experimental:ii(ce(),_o).optional(),logging:_o.optional(),completions:_o.optional(),prompts:$e({listChanged:Vo().optional()}).optional(),resources:$e({subscribe:Vo().optional(),listChanged:Vo().optional()}).optional(),tools:$e({listChanged:Vo().optional()}).optional(),tasks:ian.optional(),extensions:ii(ce(),_o).optional()}),can=ga.extend({protocolVersion:ce(),capabilities:aan,serverInfo:IZe,instructions:ce().optional()}),rie=md.extend({method:ft("notifications/initialized"),params:hd.optional()}),_2=ma.extend({method:ft("ping"),params:Sl.optional()}),uan=$e({progress:vr(),total:Ui(vr()),message:Ui(ce())}),lan=$e({...hd.shape,...uan.shape,progressToken:EZe}),T2=md.extend({method:ft("notifications/progress"),params:lan}),dan=Sl.extend({cursor:_Ze.optional()}),sC=ma.extend({params:dan.optional()}),oC=ga.extend({nextCursor:_Ze.optional()}),fan=Tu(["working","input_required","completed","failed","cancelled"]),aC=$e({taskId:ce(),status:fan,ttl:mi([vr(),oZe()]),createdAt:ce(),lastUpdatedAt:ce(),pollInterval:Ui(vr()),statusMessage:Ui(ce())}),Ww=ga.extend({task:aC}),pan=hd.merge(aC),cC=md.extend({method:ft("notifications/tasks/status"),params:pan}),v2=ma.extend({method:ft("tasks/get"),params:Sl.extend({taskId:ce()})}),R2=ga.merge(aC),A2=ma.extend({method:ft("tasks/result"),params:Sl.extend({taskId:ce()})}),bBr=ga.loose(),w2=sC.extend({method:ft("tasks/list")}),k2=oC.extend({tasks:Vn(aC)}),I2=ma.extend({method:ft("tasks/cancel"),params:Sl.extend({taskId:ce()})}),xZe=ga.merge(aC),OZe=$e({uri:ce(),mimeType:Ui(ce()),_meta:ii(ce(),Li()).optional()}),PZe=OZe.extend({text:ce()}),iie=ce().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),NZe=OZe.extend({blob:iie}),uC=Tu(["user","assistant"]),Kw=$e({audience:Vn(uC).optional(),priority:vr().min(0).max(1).optional(),lastModified:eC.datetime({offset:!0}).optional()}),CZe=$e({...Vw.shape,...iC.shape,uri:ce(),description:Ui(ce()),mimeType:Ui(ce()),size:Ui(vr()),annotations:Kw.optional(),_meta:Ui(Bc({}))}),han=$e({...Vw.shape,...iC.shape,uriTemplate:ce(),description:Ui(ce()),mimeType:Ui(ce()),annotations:Kw.optional(),_meta:Ui(Bc({}))}),man=sC.extend({method:ft("resources/list")}),gan=oC.extend({resources:Vn(CZe)}),yan=sC.extend({method:ft("resources/templates/list")}),San=oC.extend({resourceTemplates:Vn(han)}),sie=Sl.extend({uri:ce()}),ban=sie,Ean=ma.extend({method:ft("resources/read"),params:ban}),_an=ga.extend({contents:Vn(mi([PZe,NZe]))}),Tan=md.extend({method:ft("notifications/resources/list_changed"),params:hd.optional()}),van=sie,Ran=ma.extend({method:ft("resources/subscribe"),params:van}),Aan=sie,wan=ma.extend({method:ft("resources/unsubscribe"),params:Aan}),kan=hd.extend({uri:ce()}),Ian=md.extend({method:ft("notifications/resources/updated"),params:kan}),xan=$e({name:ce(),description:Ui(ce()),required:Ui(Vo())}),Oan=$e({...Vw.shape,...iC.shape,description:Ui(ce()),arguments:Ui(Vn(xan)),_meta:Ui(Bc({}))}),oie=sC.extend({method:ft("prompts/list")}),Pan=oC.extend({prompts:Vn(Oan)}),Nan=Sl.extend({name:ce(),arguments:ii(ce(),ce()).optional()}),aie=ma.extend({method:ft("prompts/get"),params:Nan}),cie=$e({type:ft("text"),text:ce(),annotations:Kw.optional(),_meta:ii(ce(),Li()).optional()}),uie=$e({type:ft("image"),data:iie,mimeType:ce(),annotations:Kw.optional(),_meta:ii(ce(),Li()).optional()}),lie=$e({type:ft("audio"),data:iie,mimeType:ce(),annotations:Kw.optional(),_meta:ii(ce(),Li()).optional()}),Can=$e({type:ft("tool_use"),name:ce(),id:ce(),input:ii(ce(),Li()),_meta:ii(ce(),Li()).optional()}),Man=$e({type:ft("resource"),resource:mi([PZe,NZe]),annotations:Kw.optional(),_meta:ii(ce(),Li()).optional()}),Dan=CZe.extend({type:ft("resource_link")}),die=mi([cie,uie,lie,Dan,Man]),Lan=$e({role:uC,content:die}),Uan=ga.extend({description:ce().optional(),messages:Vn(Lan)}),Fan=md.extend({method:ft("notifications/prompts/list_changed"),params:hd.optional()}),jan=$e({title:ce().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Han=$e({taskSupport:Tu(["required","optional","forbidden"]).optional()}),MZe=$e({...Vw.shape,...iC.shape,description:ce().optional(),inputSchema:$e({type:ft("object"),properties:ii(ce(),_o).optional(),required:Vn(ce()).optional()}).catchall(Li()),outputSchema:$e({type:ft("object"),properties:ii(ce(),_o).optional(),required:Vn(ce()).optional()}).catchall(Li()).optional(),annotations:jan.optional(),execution:Han.optional(),_meta:ii(ce(),Li()).optional()}),fie=sC.extend({method:ft("tools/list")}),qan=oC.extend({tools:Vn(MZe)}),x2=ga.extend({content:Vn(die).default([]),structuredContent:ii(ce(),Li()).optional(),isError:Vo().optional()}),EBr=x2.or(ga.extend({toolResult:Li()})),Ban=nC.extend({name:ce(),arguments:ii(ce(),Li()).optional()}),lC=ma.extend({method:ft("tools/call"),params:Ban}),zan=md.extend({method:ft("notifications/tools/list_changed"),params:hd.optional()}),_Br=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),dC=Tu(["debug","info","notice","warning","error","critical","alert","emergency"]),Gan=Sl.extend({level:dC}),pie=ma.extend({method:ft("logging/setLevel"),params:Gan}),Van=hd.extend({level:dC,logger:ce().optional(),data:Li()}),Wan=md.extend({method:ft("notifications/message"),params:Van}),Kan=$e({name:ce().optional()}),Yan=$e({hints:Vn(Kan).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),Zan=$e({mode:Tu(["auto","required","none"]).optional()}),Jan=$e({type:ft("tool_result"),toolUseId:ce().describe("The unique identifier for the corresponding tool call."),content:Vn(die).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(ce(),Li()).optional()}),Xan=Yre("type",[cie,uie,lie]),g2=Yre("type",[cie,uie,lie,Can,Jan]),Qan=$e({role:uC,content:mi([g2,Vn(g2)]),_meta:ii(ce(),Li()).optional()}),$an=nC.extend({messages:Vn(Qan),modelPreferences:Yan.optional(),systemPrompt:ce().optional(),includeContext:Tu(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(ce()).optional(),metadata:_o.optional(),tools:Vn(MZe).optional(),toolChoice:Zan.optional()}),ecn=ma.extend({method:ft("sampling/createMessage"),params:$an}),fC=ga.extend({model:ce(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens"]).or(ce())),role:uC,content:Xan}),hie=ga.extend({model:ce(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens","toolUse"]).or(ce())),role:uC,content:mi([g2,Vn(g2)])}),tcn=$e({type:ft("boolean"),title:ce().optional(),description:ce().optional(),default:Vo().optional()}),ncn=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:Tu(["email","uri","date","date-time"]).optional(),default:ce().optional()}),rcn=$e({type:Tu(["number","integer"]),title:ce().optional(),description:ce().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),icn=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),default:ce().optional()}),scn=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),oneOf:Vn($e({const:ce(),title:ce()})),default:ce().optional()}),ocn=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),enumNames:Vn(ce()).optional(),default:ce().optional()}),acn=mi([icn,scn]),ccn=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(ce())}),default:Vn(ce()).optional()}),ucn=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:ce(),title:ce()}))}),default:Vn(ce()).optional()}),lcn=mi([ccn,ucn]),dcn=mi([ocn,acn,lcn]),fcn=mi([dcn,tcn,ncn,rcn]),pcn=nC.extend({mode:ft("form").optional(),message:ce(),requestedSchema:$e({type:ft("object"),properties:ii(ce(),fcn),required:Vn(ce()).optional()})}),hcn=nC.extend({mode:ft("url"),message:ce(),elicitationId:ce(),url:ce().url()}),mcn=mi([pcn,hcn]),gcn=ma.extend({method:ft("elicitation/create"),params:mcn}),ycn=hd.extend({elicitationId:ce()}),Scn=md.extend({method:ft("notifications/elicitation/complete"),params:ycn}),Yw=ga.extend({action:Tu(["accept","decline","cancel"]),content:Zre(e=>e===null?void 0:e,ii(ce(),mi([ce(),vr(),Vo(),Vn(ce())])).optional())}),bcn=$e({type:ft("ref/resource"),uri:ce()}),Ecn=$e({type:ft("ref/prompt"),name:ce()}),_cn=Sl.extend({ref:mi([Ecn,bcn]),argument:$e({name:ce(),value:ce()}),context:$e({arguments:ii(ce(),ce()).optional()}).optional()}),mie=ma.extend({method:ft("completion/complete"),params:_cn}),Tcn=ga.extend({completion:Bc({values:Vn(ce()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),vcn=$e({uri:ce().startsWith("file://"),name:ce().optional(),_meta:ii(ce(),Li()).optional()}),Rcn=ma.extend({method:ft("roots/list"),params:Sl.optional()}),gie=ga.extend({roots:Vn(vcn)}),Acn=md.extend({method:ft("notifications/roots/list_changed"),params:hd.optional()}),TBr=mi([_2,nie,mie,pie,aie,oie,man,yan,Ean,Ran,wan,lC,fie,v2,A2,w2,I2]),vBr=mi([E2,T2,rie,Acn,cC]),RBr=mi([b2,fC,hie,Yw,gie,R2,k2,Ww]),ABr=mi([_2,ecn,gcn,Rcn,v2,A2,w2,I2]),wBr=mi([E2,T2,Wan,Ian,Tan,zan,Fan,cC,Scn]),kBr=mi([b2,can,Tcn,Uan,Pan,gan,San,_an,x2,qan,R2,k2,Ww]),rn=class e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===yn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new Jre(i.elicitations,n)}return new e(t,n,r)}},Jre=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(yn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function OS(e){return e==="completed"||e==="failed"||e==="cancelled"}var DZe=v(()=>{});var O2=v(()=>{});var yie=v(()=>{O2()});var PS=v(()=>{});var P2=v(()=>{});var gd=v(()=>{P2()});var Sie=v(()=>{PS();Qs()});var bie=v(()=>{PS()});var Eie=v(()=>{});var N2=v(()=>{Qs()});var _ie=v(()=>{Qs()});var Tie=v(()=>{PS()});var vie=v(()=>{Qs()});var Rie=v(()=>{Qs();gd()});var Aie=v(()=>{});var wie=v(()=>{Qs()});var kie=v(()=>{});var ozr,C2=v(()=>{PS();ozr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var M2=v(()=>{Qs();C2();N2();gd()});var Iie=v(()=>{Qs();M2();gd()});var xie=v(()=>{});var Oie=v(()=>{gd()});var Pie=v(()=>{});var D2=v(()=>{Qs()});var Nie=v(()=>{Qs();D2()});var Cie=v(()=>{PS()});var Mie=v(()=>{Qs()});var Die=v(()=>{Qs();gd()});var Lie=v(()=>{Qs()});var Uie=v(()=>{Qs()});var Fie=v(()=>{PS();Qs()});var jie=v(()=>{Qs()});var Hie=v(()=>{gd()});var qie=v(()=>{gd()});var Bie=v(()=>{Qs()});var zie=v(()=>{gd();Sie();bie();Eie();N2();_ie();Tie();vie();Rie();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();M2();Fie();C2();jie();Hie();D2();qie();Bie()});var Qs=v(()=>{O2();zie();P2();gd()});var LZe=v(()=>{});var Gie=v(()=>{Qs();yie();gd()});var Vie=v(()=>{O2();yie();PS();P2();Qs();LZe();gd();Sie();bie();Eie();N2();_ie();Tie();vie();Rie();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Bie();M2();Fie();C2();jie();Hie();D2();qie();zie();Gie();Gie()});function Wie(e){let n=f2(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=VYe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Kie(e,t){let n=IS(e,t);if(!n.success)throw n.error;return n.data}var FZe=v(()=>{p2();Vie()});function jZe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function HZe(e,t){let n={...e};for(let r in t){let i=r,s=t[i];if(s===void 0)continue;let o=n[i];jZe(o)&&jZe(s)?n[i]={...o,...s}:n[i]=s}return n}var Ocn,L2,qZe=v(()=>{p2();N_();DZe();FZe();Ocn=6e4,L2=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(E2,n=>{this._oncancel(n)}),this.setNotificationHandler(T2,n=>{this._onprogress(n)}),this.setRequestHandler(_2,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(v2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(yn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(A2,async(n,r)=>{let i=async()=>{let s=n.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,r.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,f=new rn(d.error.code,d.error.message,d.error.data);l(f)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:r.requestId})}}let o=await this._taskStore.getTask(s,r.sessionId);if(!o)throw new rn(yn.InvalidParams,`Task not found: ${s}`);if(!OS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(OS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[xS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(w2,async(n,r)=>{try{let{tasks:i,nextCursor:s}=await this._taskStore.listTasks(n.params?.cursor,r.sessionId);return{tasks:i,nextCursor:s,_meta:{}}}catch(i){throw new rn(yn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(I2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(yn.InvalidParams,`Task not found: ${n.params.taskId}`);if(OS(i.status))throw new rn(yn.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new rn(yn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(yn.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),rn.fromError(yn.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let r=this.transport?.onerror;this._transport.onerror=s=>{r?.(s),this._onerror(s)};let i=this._transport?.onmessage;this._transport.onmessage=(s,o)=>{i?.(s,o),rC(s)||wZe(s)?this._onresponse(s):$re(s)?this._onrequest(s,o):AZe(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let r of this._timeoutInfo.values())clearTimeout(r.timeoutId);this._timeoutInfo.clear();for(let r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();let n=rn.fromError(yn.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let r of t.values())r(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){let n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(t,n){let r=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,i=this._transport,s=t.params?._meta?.[xS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:yn.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(t.id,o);let a=TZe(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{if(o.signal.aborted)return;let d={relatedRequestId:t.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,f)=>{if(o.signal.aborted)throw new rn(yn.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:t.id};s&&!p.relatedTask&&(p.relatedTask={taskId:s});let h=p.relatedTask?.taskId??s;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(l,d,p)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(t.method)}).then(()=>r(t,u)).then(async l=>{if(o.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:t.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)},async l=>{if(o.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:yn.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===o&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...r}=t.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(r)}_onresponse(t){let n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),rC(t))r(t);else{let o=new rn(t.error.code,t.error.message,t.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(rC(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),rC(t))i(t);else{let o=rn.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,r){let{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(t,n,r)}}catch(o){yield{type:"error",error:o instanceof rn?o:new rn(yn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,Ww,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(yn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},OS(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)}:a.status==="failed"?yield{type:"error",error:new rn(yn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(yn.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),r?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof rn?o:new rn(yn.InternalError,String(o))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{let d=b=>{l(b)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(b){d(b);return}r?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:f};r?.onprogress&&(this._progressHandlers.set(f,r.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[xS]:c}});let h=b=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(b)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(E=>this._onerror(new Error(`Failed to send cancellation: ${E}`)));let S=b instanceof rn?b:new rn(yn.RequestTimeout,String(b));l(S)};this._responseHandlers.set(f,b=>{if(!r?.signal?.aborted){if(b instanceof Error)return l(b);try{let S=IS(n,b.result);S.success?u(S.data):l(S.error)}catch(S){l(S)}}}),r?.signal?.addEventListener("abort",()=>{h(r?.signal?.reason)});let m=r?.timeout??Ocn,g=()=>h(rn.fromError(yn.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,r?.maxTotalTimeout,g,r?.resetTimeoutOnProgress??!1);let y=c?.taskId;if(y){let b=S=>{let E=this._responseHandlers.get(f);E?E(S):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,b),this._enqueueTaskMessage(y,{type:"request",message:p,timestamp:Date.now()}).catch(S=>{this._cleanupTimeout(f),l(S)})}else this._transport.send(p,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(b=>{this._cleanupTimeout(f),l(b)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},R2,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},k2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},xZe,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let r=n?.relatedTask?.taskId;if(r){let a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[xS]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[xS]:n.relatedTask}}}),this._transport?.send(a,n).catch(c=>this._onerror(c))});return}let o={...t,jsonrpc:"2.0"};n?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[xS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Wie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Kie(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=Wie(t);this._notificationHandlers.set(r,i=>{let s=Kie(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,i)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&$re(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new rn(yn.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){let r=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(t);i?.pollInterval&&(r=i.pollInterval)}catch{}return new Promise((i,s)=>{if(n.aborted){s(new rn(yn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new rn(yn.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{let s=await r.getTask(i,n);if(!s)throw new rn(yn.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await r.storeTaskResult(i,s,o,n);let a=await r.getTask(i,n);if(a){let c=cC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),OS(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new rn(yn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(OS(a.status))throw new rn(yn.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=cC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),OS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var Zw=w(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.regexpCode=tr.getEsmExportName=tr.getProperty=tr.safeStringify=tr.stringify=tr.strConcat=tr.addCodeArg=tr.str=tr._=tr.nil=tr._Code=tr.Name=tr.IDENTIFIER=tr._CodeOrName=void 0;var hC=class{};tr._CodeOrName=hC;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var C_=class extends hC{constructor(t){if(super(),!tr.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};tr.Name=C_;var yd=class extends hC{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((n,r)=>`${n}${r}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((n,r)=>(r instanceof C_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=yd;tr.nil=new yd("");function BZe(e,...t){let n=[e[0]],r=0;for(;r{"use strict";Object.defineProperty(Ru,"__esModule",{value:!0});Ru.ValueScope=Ru.ValueScopeName=Ru.Scope=Ru.varKinds=Ru.UsedValueState=void 0;var vu=Zw(),Jie=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},U2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(U2||(Ru.UsedValueState=U2={}));Ru.varKinds={const:new vu.Name("const"),let:new vu.Name("let"),var:new vu.Name("var")};var F2=class{constructor({prefixes:t,parent:n}={}){this._names={},this._prefixes=t,this._parent=n}toName(t){return t instanceof vu.Name?t:this.name(t)}name(t){return new vu.Name(this._newName(t))}_newName(t){let n=this._names[t]||this._nameGroup(t);return`${t}${n.index++}`}_nameGroup(t){var n,r;if(!((r=(n=this._parent)===null||n===void 0?void 0:n._prefixes)===null||r===void 0)&&r.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Ru.Scope=F2;var j2=class extends vu.Name{constructor(t,n){super(n),this.prefix=t}setValue(t,{property:n,itemIndex:r}){this.value=t,this.scopePath=(0,vu._)`.${new vu.Name(n)}[${r}]`}};Ru.ValueScopeName=j2;var jcn=(0,vu._)`\n`,Xie=class extends F2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?jcn:vu.nil}}get(){return this._scope}name(t){return new j2(t,this._newName(t))}value(t,n){var r;if(n.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:s}=i,o=(r=n.key)!==null&&r!==void 0?r:n.ref,a=this._values[s];if(a){let l=a.get(o);if(l)return l}else a=this._values[s]=new Map;a.set(o,i);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=n.ref,i.setValue(n,{property:s,itemIndex:u}),i}getValue(t,n){let r=this._values[t];if(r)return r.get(n)}scopeRefs(t,n=this._values){return this._reduceValues(n,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return(0,vu._)`${t}${r.scopePath}`})}scopeCode(t=this._values,n,r){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},n,r)}_reduceValues(t,n,r={},i){let s=vu.nil;for(let o in t){let a=t[o];if(!a)continue;let c=r[o]=r[o]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,U2.Started);let l=n(u);if(l){let d=this.opts.es5?Ru.varKinds.var:Ru.varKinds.const;s=(0,vu._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))s=(0,vu._)`${s}${l}${this.opts._n}`;else throw new Jie(u);c.set(u,U2.Completed)})}return s}};Ru.ValueScope=Xie});var Ot=w(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.or=Sn.and=Sn.not=Sn.CodeGen=Sn.operators=Sn.varKinds=Sn.ValueScopeName=Sn.ValueScope=Sn.Scope=Sn.Name=Sn.regexpCode=Sn.stringify=Sn.getProperty=Sn.nil=Sn.strConcat=Sn.str=Sn._=void 0;var Wn=Zw(),Rf=H2(),NS=Zw();Object.defineProperty(Sn,"_",{enumerable:!0,get:function(){return NS._}});Object.defineProperty(Sn,"str",{enumerable:!0,get:function(){return NS.str}});Object.defineProperty(Sn,"strConcat",{enumerable:!0,get:function(){return NS.strConcat}});Object.defineProperty(Sn,"nil",{enumerable:!0,get:function(){return NS.nil}});Object.defineProperty(Sn,"getProperty",{enumerable:!0,get:function(){return NS.getProperty}});Object.defineProperty(Sn,"stringify",{enumerable:!0,get:function(){return NS.stringify}});Object.defineProperty(Sn,"regexpCode",{enumerable:!0,get:function(){return NS.regexpCode}});Object.defineProperty(Sn,"Name",{enumerable:!0,get:function(){return NS.Name}});var G2=H2();Object.defineProperty(Sn,"Scope",{enumerable:!0,get:function(){return G2.Scope}});Object.defineProperty(Sn,"ValueScope",{enumerable:!0,get:function(){return G2.ValueScope}});Object.defineProperty(Sn,"ValueScopeName",{enumerable:!0,get:function(){return G2.ValueScopeName}});Object.defineProperty(Sn,"varKinds",{enumerable:!0,get:function(){return G2.varKinds}});Sn.operators={GT:new Wn._Code(">"),GTE:new Wn._Code(">="),LT:new Wn._Code("<"),LTE:new Wn._Code("<="),EQ:new Wn._Code("==="),NEQ:new Wn._Code("!=="),NOT:new Wn._Code("!"),OR:new Wn._Code("||"),AND:new Wn._Code("&&"),ADD:new Wn._Code("+")};var Vm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},Qie=class extends Vm{constructor(t,n,r){super(),this.varKind=t,this.name=n,this.rhs=r}render({es5:t,_n:n}){let r=t?Rf.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${r} ${this.name}${i};`+n}optimizeNames(t,n){if(t[this.name.str])return this.rhs&&(this.rhs=Xw(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},q2=class extends Vm{constructor(t,n,r){super(),this.lhs=t,this.rhs=n,this.sideEffects=r}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,n){if(!(this.lhs instanceof Wn.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Xw(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return z2(t,this.rhs)}},$ie=class extends q2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},ese=class extends Vm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},tse=class extends Vm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},nse=class extends Vm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},rse=class extends Vm{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,n){return this.code=Xw(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},gC=class extends Vm{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((n,r)=>n+r.render(t),"")}optimizeNodes(){let{nodes:t}=this,n=t.length;for(;n--;){let r=t[n].optimizeNodes();Array.isArray(r)?t.splice(n,1,...r):r?t[n]=r:t.splice(n,1)}return t.length>0?this:void 0}optimizeNames(t,n){let{nodes:r}=this,i=r.length;for(;i--;){let s=r[i];s.optimizeNames(t,n)||(Hcn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>L_(t,n.names),{})}},Wm=class extends gC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},ise=class extends gC{},Jw=class extends Wm{};Jw.kind="else";var M_=class e extends Wm{constructor(t,n){super(n),this.condition=t}render(t){let n=`if(${this.condition})`+super.render(t);return this.else&&(n+="else "+this.else.render(t)),n}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let r=n.optimizeNodes();n=this.else=Array.isArray(r)?new Jw(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(GZe(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,n){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,n),!!(super.optimizeNames(t,n)||this.else))return this.condition=Xw(this.condition,t,n),this}get names(){let t=super.names;return z2(t,this.condition),this.else&&L_(t,this.else.names),t}};M_.kind="if";var D_=class extends Wm{};D_.kind="for";var sse=class extends D_{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iteration=Xw(this.iteration,t,n),this}get names(){return L_(super.names,this.iteration.names)}},ose=class extends D_{constructor(t,n,r,i){super(),this.varKind=t,this.name=n,this.from=r,this.to=i}render(t){let n=t.es5?Rf.varKinds.var:this.varKind,{name:r,from:i,to:s}=this;return`for(${n} ${r}=${i}; ${r}<${s}; ${r}++)`+super.render(t)}get names(){let t=z2(super.names,this.from);return z2(t,this.to)}},B2=class extends D_{constructor(t,n,r,i){super(),this.loop=t,this.varKind=n,this.name=r,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iterable=Xw(this.iterable,t,n),this}get names(){return L_(super.names,this.iterable.names)}},yC=class extends Wm{constructor(t,n,r){super(),this.name=t,this.args=n,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};yC.kind="func";var SC=class extends gC{render(t){return"return "+super.render(t)}};SC.kind="return";var ase=class extends Wm{render(t){let n="try"+super.render(t);return this.catch&&(n+=this.catch.render(t)),this.finally&&(n+=this.finally.render(t)),n}optimizeNodes(){var t,n;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(n=this.finally)===null||n===void 0||n.optimizeNodes(),this}optimizeNames(t,n){var r,i;return super.optimizeNames(t,n),(r=this.catch)===null||r===void 0||r.optimizeNames(t,n),(i=this.finally)===null||i===void 0||i.optimizeNames(t,n),this}get names(){let t=super.names;return this.catch&&L_(t,this.catch.names),this.finally&&L_(t,this.finally.names),t}},bC=class extends Wm{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};bC.kind="catch";var EC=class extends Wm{render(t){return"finally"+super.render(t)}};EC.kind="finally";var cse=class{constructor(t,n={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...n,_n:n.lines?` -`:""},this._extScope=t,this._scope=new Rf.Scope({parent:t}),this._nodes=[new ise]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,n){let r=this._extScope.value(t,n);return(this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(t,n){return this._extScope.getValue(t,n)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,n,r,i){let s=this._scope.toName(n);return r!==void 0&&i&&(this._constants[s.str]=r),this._leafNode(new Qie(t,s,r)),s}const(t,n,r){return this._def(Rf.varKinds.const,t,n,r)}let(t,n,r){return this._def(Rf.varKinds.let,t,n,r)}var(t,n,r){return this._def(Rf.varKinds.var,t,n,r)}assign(t,n,r){return this._leafNode(new q2(t,n,r))}add(t,n){return this._leafNode(new $ie(t,Sn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new rse(t)),this}object(...t){let n=["{"];for(let[r,i]of t)n.length>1&&n.push(","),n.push(r),(r!==i||this.opts.es5)&&(n.push(":"),(0,Wn.addCodeArg)(n,i));return n.push("}"),new Wn._Code(n)}if(t,n,r){if(this._blockNode(new M_(t)),n&&r)this.code(n).else().code(r).endIf();else if(n)this.code(n).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new M_(t))}else(){return this._elseNode(new Jw)}endIf(){return this._endBlockNode(M_,Jw)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new sse(t),n)}forRange(t,n,r,i,s=this.opts.es5?Rf.varKinds.var:Rf.varKinds.let){let o=this._scope.toName(t);return this._for(new ose(s,o,n,r),()=>i(o))}forOf(t,n,r,i=Rf.varKinds.const){let s=this._scope.toName(t);if(this.opts.es5){let o=n instanceof Wn.Name?n:this.var("_arr",n);return this.forRange("_i",0,(0,Wn._)`${o}.length`,a=>{this.var(s,(0,Wn._)`${o}[${a}]`),r(s)})}return this._for(new B2("of",i,s,n),()=>r(s))}forIn(t,n,r,i=this.opts.es5?Rf.varKinds.var:Rf.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,Wn._)`Object.keys(${n})`,r);let s=this._scope.toName(t);return this._for(new B2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(D_)}label(t){return this._leafNode(new ese(t))}break(t){return this._leafNode(new tse(t))}return(t){let n=new SC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(SC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new ase;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new bC(s),n(s)}return r&&(this._currNode=i.finally=new EC,this.code(r)),this._endBlockNode(bC,EC)}throw(t){return this._leafNode(new nse(t))}block(t,n){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(n),this}endBlock(t){let n=this._blockStarts.pop();if(n===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-n;if(r<0||t!==void 0&&r!==t)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${t} expected`);return this._nodes.length=n,this}func(t,n=Wn.nil,r,i){return this._blockNode(new yC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(yC)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,n){let r=this._currNode;if(r instanceof t||n&&r instanceof n)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${n?`${t.kind}/${n.kind}`:t.kind}"`)}_elseNode(t){let n=this._currNode;if(!(n instanceof M_))throw new Error('CodeGen: "else" without "if"');return this._currNode=n.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let n=this._nodes;n[n.length-1]=t}};Sn.CodeGen=cse;function L_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function z2(e,t){return t instanceof Wn._CodeOrName?L_(e,t.names):e}function Xw(e,t,n){if(e instanceof Wn.Name)return r(e);if(!i(e))return e;return new Wn._Code(e._items.reduce((s,o)=>(o instanceof Wn.Name&&(o=r(o)),o instanceof Wn._Code?s.push(...o._items):s.push(o),s),[]));function r(s){let o=n[s.str];return o===void 0||t[s.str]!==1?s:(delete t[s.str],o)}function i(s){return s instanceof Wn._Code&&s._items.some(o=>o instanceof Wn.Name&&t[o.str]===1&&n[o.str]!==void 0)}}function Hcn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function GZe(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${use(e)}`}Sn.not=GZe;var qcn=VZe(Sn.operators.AND);function Bcn(...e){return e.reduce(qcn)}Sn.and=Bcn;var zcn=VZe(Sn.operators.OR);function Gcn(...e){return e.reduce(zcn)}Sn.or=Gcn;function VZe(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${use(t)} ${e} ${use(n)}`}function use(e){return e instanceof Wn.Name?e:(0,Wn._)`(${e})`}});var pn=w(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.checkStrictMode=Rn.getErrorPath=Rn.Type=Rn.useFunc=Rn.setEvaluated=Rn.evaluatedPropsToName=Rn.mergeEvaluated=Rn.eachItem=Rn.unescapeJsonPointer=Rn.escapeJsonPointer=Rn.escapeFragment=Rn.unescapeFragment=Rn.schemaRefOrVal=Rn.schemaHasRulesButRef=Rn.schemaHasRules=Rn.checkUnknownRules=Rn.alwaysValidSchema=Rn.toHash=void 0;var Wr=Ot(),Vcn=Zw();function Wcn(e){let t={};for(let n of e)t[n]=!0;return t}Rn.toHash=Wcn;function Kcn(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(YZe(e,t),!ZZe(t,e.self.RULES.all))}Rn.alwaysValidSchema=Kcn;function YZe(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t=="boolean")return;let i=r.RULES.keywords;for(let s in t)i[s]||QZe(e,`unknown keyword: "${s}"`)}Rn.checkUnknownRules=YZe;function ZZe(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}Rn.schemaHasRules=ZZe;function Ycn(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(n!=="$ref"&&t.all[n])return!0;return!1}Rn.schemaHasRulesButRef=Ycn;function Zcn({topSchemaRef:e,schemaPath:t},n,r,i){if(!i){if(typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="string")return(0,Wr._)`${n}`}return(0,Wr._)`${e}${t}${(0,Wr.getProperty)(r)}`}Rn.schemaRefOrVal=Zcn;function Jcn(e){return JZe(decodeURIComponent(e))}Rn.unescapeFragment=Jcn;function Xcn(e){return encodeURIComponent(dse(e))}Rn.escapeFragment=Xcn;function dse(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Rn.escapeJsonPointer=dse;function JZe(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Rn.unescapeJsonPointer=JZe;function Qcn(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}Rn.eachItem=Qcn;function WZe({mergeNames:e,mergeToName:t,mergeValues:n,resultToName:r}){return(i,s,o,a)=>{let c=o===void 0?s:o instanceof Wr.Name?(s instanceof Wr.Name?e(i,s,o):t(i,s,o),o):s instanceof Wr.Name?(t(i,o,s),s):n(s,o);return a===Wr.Name&&!(c instanceof Wr.Name)?r(i,c):c}}Rn.mergeEvaluated={props:WZe({mergeNames:(e,t,n)=>e.if((0,Wr._)`${n} !== true && ${t} !== undefined`,()=>{e.if((0,Wr._)`${t} === true`,()=>e.assign(n,!0),()=>e.assign(n,(0,Wr._)`${n} || {}`).code((0,Wr._)`Object.assign(${n}, ${t})`))}),mergeToName:(e,t,n)=>e.if((0,Wr._)`${n} !== true`,()=>{t===!0?e.assign(n,!0):(e.assign(n,(0,Wr._)`${n} || {}`),fse(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:XZe}),items:WZe({mergeNames:(e,t,n)=>e.if((0,Wr._)`${n} !== true && ${t} !== undefined`,()=>e.assign(n,(0,Wr._)`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`)),mergeToName:(e,t,n)=>e.if((0,Wr._)`${n} !== true`,()=>e.assign(n,t===!0?!0:(0,Wr._)`${n} > ${t} ? ${n} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function XZe(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&fse(e,n,t),n}Rn.evaluatedPropsToName=XZe;function fse(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}Rn.setEvaluated=fse;var KZe={};function $cn(e,t){return e.scopeValue("func",{ref:t,code:KZe[t.code]||(KZe[t.code]=new Vcn._Code(t.code))})}Rn.useFunc=$cn;var lse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(lse||(Rn.Type=lse={}));function eun(e,t,n){if(e instanceof Wr.Name){let r=t===lse.Num;return n?r?(0,Wr._)`"[" + ${e} + "]"`:(0,Wr._)`"['" + ${e} + "']"`:r?(0,Wr._)`"/" + ${e}`:(0,Wr._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return n?(0,Wr.getProperty)(e).toString():"/"+dse(e)}Rn.getErrorPath=eun;function QZe(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw new Error(t);e.self.logger.warn(t)}}Rn.checkStrictMode=QZe});var Sd=w(pse=>{"use strict";Object.defineProperty(pse,"__esModule",{value:!0});var ic=Ot(),tun={data:new ic.Name("data"),valCxt:new ic.Name("valCxt"),instancePath:new ic.Name("instancePath"),parentData:new ic.Name("parentData"),parentDataProperty:new ic.Name("parentDataProperty"),rootData:new ic.Name("rootData"),dynamicAnchors:new ic.Name("dynamicAnchors"),vErrors:new ic.Name("vErrors"),errors:new ic.Name("errors"),this:new ic.Name("this"),self:new ic.Name("self"),scope:new ic.Name("scope"),json:new ic.Name("json"),jsonPos:new ic.Name("jsonPos"),jsonLen:new ic.Name("jsonLen"),jsonPart:new ic.Name("jsonPart")};pse.default=tun});var _C=w(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.extendErrors=sc.resetErrorsCount=sc.reportExtraError=sc.reportError=sc.keyword$DataError=sc.keywordError=void 0;var Jn=Ot(),V2=pn(),zc=Sd();sc.keywordError={message:({keyword:e})=>(0,Jn.str)`must pass "${e}" keyword validation`};sc.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,Jn.str)`"${e}" keyword must be ${t} ($data)`:(0,Jn.str)`"${e}" keyword is invalid ($data)`};function nun(e,t=sc.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=t6e(e,t,n);r??(o||a)?$Ze(s,c):e6e(i,(0,Jn._)`[${c}]`)}sc.reportError=nun;function run(e,t=sc.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=t6e(e,t,n);$Ze(i,a),s||o||e6e(r,zc.default.vErrors)}sc.reportExtraError=run;function iun(e,t){e.assign(zc.default.errors,t),e.if((0,Jn._)`${zc.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,Jn._)`${zc.default.vErrors}.length`,t),()=>e.assign(zc.default.vErrors,null)))}sc.resetErrorsCount=iun;function sun({gen:e,keyword:t,schemaValue:n,data:r,errsCount:i,it:s}){if(i===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",i,zc.default.errors,a=>{e.const(o,(0,Jn._)`${zc.default.vErrors}[${a}]`),e.if((0,Jn._)`${o}.instancePath === undefined`,()=>e.assign((0,Jn._)`${o}.instancePath`,(0,Jn.strConcat)(zc.default.instancePath,s.errorPath))),e.assign((0,Jn._)`${o}.schemaPath`,(0,Jn.str)`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign((0,Jn._)`${o}.schema`,n),e.assign((0,Jn._)`${o}.data`,r))})}sc.extendErrors=sun;function $Ze(e,t){let n=e.const("err",t);e.if((0,Jn._)`${zc.default.vErrors} === null`,()=>e.assign(zc.default.vErrors,(0,Jn._)`[${n}]`),(0,Jn._)`${zc.default.vErrors}.push(${n})`),e.code((0,Jn._)`${zc.default.errors}++`)}function e6e(e,t){let{gen:n,validateName:r,schemaEnv:i}=e;i.$async?n.throw((0,Jn._)`new ${e.ValidationError}(${t})`):(n.assign((0,Jn._)`${r}.errors`,t),n.return(!1))}var U_={keyword:new Jn.Name("keyword"),schemaPath:new Jn.Name("schemaPath"),params:new Jn.Name("params"),propertyName:new Jn.Name("propertyName"),message:new Jn.Name("message"),schema:new Jn.Name("schema"),parentSchema:new Jn.Name("parentSchema")};function t6e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:oun(e,t,n)}function oun(e,t,n={}){let{gen:r,it:i}=e,s=[aun(i,n),cun(e,n)];return uun(e,t,s),r.object(...s)}function aun({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,V2.getErrorPath)(t,V2.Type.Str)}`:e;return[zc.default.instancePath,(0,Jn.strConcat)(zc.default.instancePath,n)]}function cun({keyword:e,it:{errSchemaPath:t}},{schemaPath:n,parentSchema:r}){let i=r?t:(0,Jn.str)`${t}/${e}`;return n&&(i=(0,Jn.str)`${i}${(0,V2.getErrorPath)(n,V2.Type.Str)}`),[U_.schemaPath,i]}function uun(e,{params:t,message:n},r){let{keyword:i,data:s,schemaValue:o,it:a}=e,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;r.push([U_.keyword,i],[U_.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([U_.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([U_.schema,o],[U_.parentSchema,(0,Jn._)`${l}${d}`],[zc.default.data,s]),u&&r.push([U_.propertyName,u])}});var r6e=w(Qw=>{"use strict";Object.defineProperty(Qw,"__esModule",{value:!0});Qw.boolOrEmptySchema=Qw.topBoolOrEmptySchema=void 0;var lun=_C(),dun=Ot(),fun=Sd(),pun={message:"boolean schema is false"};function hun(e){let{gen:t,schema:n,validateName:r}=e;n===!1?n6e(e,!1):typeof n=="object"&&n.$async===!0?t.return(fun.default.data):(t.assign((0,dun._)`${r}.errors`,null),t.return(!0))}Qw.topBoolOrEmptySchema=hun;function mun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),n6e(e)):n.var(t,!0)}Qw.boolOrEmptySchema=mun;function n6e(e,t){let{gen:n,data:r}=e,i={gen:n,keyword:"false schema",data:r,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,lun.reportError)(i,pun,void 0,t)}});var hse=w($w=>{"use strict";Object.defineProperty($w,"__esModule",{value:!0});$w.getRules=$w.isJSONType=void 0;var gun=["string","number","integer","boolean","null","object","array"],yun=new Set(gun);function Sun(e){return typeof e=="string"&&yun.has(e)}$w.isJSONType=Sun;function bun(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}$w.getRules=bun});var mse=w(CS=>{"use strict";Object.defineProperty(CS,"__esModule",{value:!0});CS.shouldUseRule=CS.shouldUseGroup=CS.schemaHasRulesForType=void 0;function Eun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&i6e(e,r)}CS.schemaHasRulesForType=Eun;function i6e(e,t){return t.rules.some(n=>s6e(e,n))}CS.shouldUseGroup=i6e;function s6e(e,t){var n;return e[t.keyword]!==void 0||((n=t.definition.implements)===null||n===void 0?void 0:n.some(r=>e[r]!==void 0))}CS.shouldUseRule=s6e});var TC=w(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});oc.reportTypeError=oc.checkDataTypes=oc.checkDataType=oc.coerceAndCheckDataType=oc.getJSONTypes=oc.getSchemaTypes=oc.DataType=void 0;var _un=hse(),Tun=mse(),vun=_C(),hn=Ot(),o6e=pn(),ek;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ek||(oc.DataType=ek={}));function Run(e){let t=a6e(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}oc.getSchemaTypes=Run;function a6e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(_un.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}oc.getJSONTypes=a6e;function Aun(e,t){let{gen:n,data:r,opts:i}=e,s=wun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,Tun.schemaHasRulesForType)(e,t[0]));if(o){let a=yse(t,r,i.strictNumbers,ek.Wrong);n.if(a,()=>{s.length?kun(e,t,s):Sse(e)})}return o}oc.coerceAndCheckDataType=Aun;var c6e=new Set(["string","number","integer","boolean","null"]);function wun(e,t){return t?e.filter(n=>c6e.has(n)||t==="array"&&n==="array"):[]}function kun(e,t,n){let{gen:r,data:i,opts:s}=e,o=r.let("dataType",(0,hn._)`typeof ${i}`),a=r.let("coerced",(0,hn._)`undefined`);s.coerceTypes==="array"&&r.if((0,hn._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0,hn._)`${i}[0]`).assign(o,(0,hn._)`typeof ${i}`).if(yse(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(c6e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),Sse(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),Iun(e,a)});function c(u){switch(u){case"string":r.elseIf((0,hn._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,hn._)`"" + ${i}`).elseIf((0,hn._)`${i} === null`).assign(a,(0,hn._)`""`);return;case"number":r.elseIf((0,hn._)`${o} == "boolean" || ${i} === null + })));`),f.write(`newResult[${x_(b)}] = ${S}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");let y=f.compile();return(b,S)=>y(d,b,S)},i,s=Hw,o=!XG.jitless,c=o&&sre.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let E of l.keys){let _=S[E],T=_._zod.run({value:p[E],issues:[]},f),R=_._zod.optin==="optional"&&_._zod.optout==="optional";T instanceof Promise?h.push(T.then(A=>R?Z3e(A,d,E,p):o2(A,d,E))):R?Z3e(T,d,E,p):o2(T,d,E)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let m=[],g=l.keySet,y=u._zod,b=y.def.type;for(let S of Object.keys(p)){if(g.has(S))continue;if(b==="never"){m.push(S);continue}let E=y.run({value:p[S],issues:[]},f);E instanceof Promise?h.push(E.then(_=>o2(_,d,S))):o2(E,d,S)}return m.length&&d.issues.push({code:"unrecognized_keys",keys:m,input:p,inst:e}),h.length?Promise.all(h).then(()=>d):d}});Rre=me("$ZodUnion",(e,t)=>{ri.init(e,t),ni(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ni(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ni(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ni(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>YN(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>J3e(o,n,e,r)):J3e(s,n,e,r)}}),M9e=me("$ZodDiscriminatedUnion",(e,t)=>{Rre.init(e,t);let n=e._zod.parse;ni(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=WN(()=>{let i=t.options,s=new Map;for(let o of i){let a=o._zod.propValues[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});e._zod.parse=(i,s)=>{let o=i.value;if(!Hw(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;let a=r.value.get(o?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[t.discriminator],inst:e}),i)}}),D9e=me("$ZodIntersection",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>X3e(n,c,u)):X3e(n,s,o)}});L9e=me("$ZodRecord",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!qw(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...dh(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...dh(c,u.issues)),n.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=t.keyType._zod.run({value:o,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>vf(u,r,fd())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...dh(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...dh(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),U9e=me("$ZodEnum",(e,t)=>{ri.init(e,t);let n=tre(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>ore.has(typeof r)).map(r=>typeof r=="string"?kS(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),F9e=me("$ZodLiteral",(e,t)=>{ri.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?kS(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),j9e=me("$ZodTransform",(e,t)=>{ri.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new Bm;return n.value=i,n}}),H9e=me("$ZodOptional",(e,t)=>{ri.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ni(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ni(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${YN(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),q9e=me("$ZodNullable",(e,t)=>{ri.init(e,t),ni(e._zod,"optin",()=>t.innerType._zod.optin),ni(e._zod,"optout",()=>t.innerType._zod.optout),ni(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${YN(n.source)}|null)$`):void 0}),ni(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),B9e=me("$ZodDefault",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Q3e(s,t)):Q3e(i,t)}});z9e=me("$ZodPrefault",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),G9e=me("$ZodNonOptional",(e,t)=>{ri.init(e,t),ni(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>$3e(s,e)):$3e(i,e)}});V9e=me("$ZodCatch",(e,t)=>{ri.init(e,t),e._zod.optin="optional",ni(e._zod,"optout",()=>t.innerType._zod.optout),ni(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>vf(o,r,fd()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>vf(s,r,fd()))},input:n.value}),n.issues=[]),n)}}),W9e=me("$ZodPipe",(e,t)=>{ri.init(e,t),ni(e._zod,"values",()=>t.in._zod.values),ni(e._zod,"optin",()=>t.in._zod.optin),ni(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>e9e(s,t,r)):e9e(i,t,r)}});K9e=me("$ZodReadonly",(e,t)=>{ri.init(e,t),ni(e._zod,"propValues",()=>t.innerType._zod.propValues),ni(e._zod,"values",()=>t.innerType._zod.values),ni(e._zod,"optin",()=>t.innerType._zod.optin),ni(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t9e):t9e(i)}});Y9e=me("$ZodCustom",(e,t)=>{rc.init(e,t),ri.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>n9e(s,n,r,e));n9e(i,n,r,e)}})});function J9e(){return{localeError:Ksn()}}var Wsn,Ksn,X9e=v(()=>{zm();Wsn=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},Ksn=()=>{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"}};function t(r){return e[r]??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"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${Wsn(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${e2(r.values[0])}`:`Invalid option: expected one of ${QG(r.values,"|")}`;case"too_big":{let i=r.inclusive?"<=":"<",s=t(r.origin);return s?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{let i=r.inclusive?">=":">",s=t(r.origin);return s?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${s.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{let i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${QG(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}}});var c2=v(()=>{});function Ysn(){return new wre}var wre,QN,Q9e=v(()=>{wre=class{constructor(){this._map=new Map,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(t){let n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};QN=Ysn()});function $9e(e,t){return new e({type:"string",...Dt(t)})}function eYe(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Dt(t)})}function kre(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Dt(t)})}function tYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Dt(t)})}function nYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Dt(t)})}function rYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Dt(t)})}function iYe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Dt(t)})}function sYe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Dt(t)})}function oYe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Dt(t)})}function aYe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Dt(t)})}function cYe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Dt(t)})}function uYe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Dt(t)})}function lYe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Dt(t)})}function dYe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Dt(t)})}function fYe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Dt(t)})}function pYe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Dt(t)})}function hYe(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Dt(t)})}function mYe(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Dt(t)})}function gYe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Dt(t)})}function yYe(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Dt(t)})}function SYe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Dt(t)})}function bYe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Dt(t)})}function EYe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Dt(t)})}function _Ye(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Dt(t)})}function TYe(e,t){return new e({type:"string",format:"date",check:"string_format",...Dt(t)})}function vYe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Dt(t)})}function RYe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Dt(t)})}function AYe(e,t){return new e({type:"number",checks:[],...Dt(t)})}function wYe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Dt(t)})}function kYe(e,t){return new e({type:"boolean",...Dt(t)})}function IYe(e,t){return new e({type:"null",...Dt(t)})}function xYe(e){return new e({type:"unknown"})}function OYe(e,t){return new e({type:"never",...Dt(t)})}function u2(e,t){return new Sre({check:"less_than",...Dt(t),value:e,inclusive:!1})}function $N(e,t){return new Sre({check:"less_than",...Dt(t),value:e,inclusive:!0})}function l2(e,t){return new bre({check:"greater_than",...Dt(t),value:e,inclusive:!1})}function eC(e,t){return new bre({check:"greater_than",...Dt(t),value:e,inclusive:!0})}function d2(e,t){return new M3e({check:"multiple_of",...Dt(t),value:e})}function f2(e,t){return new L3e({check:"max_length",...Dt(t),maximum:e})}function Bw(e,t){return new U3e({check:"min_length",...Dt(t),minimum:e})}function p2(e,t){return new F3e({check:"length_equals",...Dt(t),length:e})}function Ire(e,t){return new j3e({check:"string_format",format:"regex",...Dt(t),pattern:e})}function xre(e){return new H3e({check:"string_format",format:"lowercase",...Dt(e)})}function Ore(e){return new q3e({check:"string_format",format:"uppercase",...Dt(e)})}function Pre(e,t){return new B3e({check:"string_format",format:"includes",...Dt(t),includes:e})}function Nre(e,t){return new z3e({check:"string_format",format:"starts_with",...Dt(t),prefix:e})}function Cre(e,t){return new G3e({check:"string_format",format:"ends_with",...Dt(t),suffix:e})}function P_(e){return new V3e({check:"overwrite",tx:e})}function Mre(e){return P_(t=>t.normalize(e))}function Dre(){return P_(e=>e.trim())}function Lre(){return P_(e=>e.toLowerCase())}function Ure(){return P_(e=>e.toUpperCase())}function PYe(e,t,n){return new e({type:"array",element:t,...Dt(n)})}function NYe(e,t,n){let r=Dt(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function CYe(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Dt(n)})}var MYe=v(()=>{i2();zm()});var DYe=v(()=>{});var LYe=v(()=>{});var UYe=v(()=>{});var pd=v(()=>{jw();hre();dre();Z9e();i2();_re();zm();r2();c2();Q9e();Ere();DYe();MYe();LYe();UYe()});var FYe=v(()=>{pd()});var jYe=v(()=>{});var HYe=v(()=>{});var qYe=v(()=>{});var BYe=v(()=>{});var zYe=v(()=>{pd();FYe();jYe();HYe();c2();qYe();BYe()});var GYe=v(()=>{zYe()});var VYe=v(()=>{GYe()});function Gw(e){return!!e._zod}function IS(e,t){return Gw(e)?JN(e,t):e.safeParse(t)}function h2(e){if(!e)return;let t;if(Gw(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function WYe(e){if(Gw(e)){let s=e._zod?.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}let n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}let r=e.value;if(r!==void 0)return r}var m2=v(()=>{VYe()});var Fre=v(()=>{pd()});var tC={};Ar(tC,{ZodISODate:()=>YYe,ZodISODateTime:()=>KYe,ZodISODuration:()=>JYe,ZodISOTime:()=>ZYe,date:()=>Hre,datetime:()=>jre,duration:()=>Bre,time:()=>qre});function jre(e){return _Ye(KYe,e)}function Hre(e){return TYe(YYe,e)}function qre(e){return vYe(ZYe,e)}function Bre(e){return RYe(JYe,e)}var KYe,YYe,ZYe,JYe,zre=v(()=>{pd();Gre();KYe=me("ZodISODateTime",(e,t)=>{h9e.init(e,t),Di.init(e,t)});YYe=me("ZodISODate",(e,t)=>{m9e.init(e,t),Di.init(e,t)});ZYe=me("ZodISOTime",(e,t)=>{g9e.init(e,t),Di.init(e,t)});JYe=me("ZodISODuration",(e,t)=>{y9e.init(e,t),Di.init(e,t)})});var XYe,Tqr,nC,Vre=v(()=>{pd();pd();XYe=(e,t)=>{t2.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>t3e(e,n)},flatten:{value:n=>e3e(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Tqr=me("ZodError",XYe),nC=me("ZodError",XYe,{Parent:Error})});var QYe,$Ye,eZe,tZe,Wre=v(()=>{pd();Vre();QYe=n3e(nC),$Ye=r3e(nC),eZe=fre(nC),tZe=pre(nC)});function ce(e){return $9e(son,e)}function vr(e){return AYe(oZe,e)}function rZe(e){return wYe(von,e)}function Vo(e){return kYe(Ron,e)}function aZe(e){return IYe(Aon,e)}function Li(){return xYe(won)}function Ion(e){return OYe(kon,e)}function Vn(e,t){return PYe(xon,e,t)}function $e(e,t){let n={type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},...or.normalizeParams(t)};return new cZe(n)}function Bc(e,t){return new cZe({type:"object",get shape(){return or.assignProp(this,"shape",{...e}),this.shape},catchall:Li(),...or.normalizeParams(t)})}function mi(e,t){return new uZe({type:"union",options:e,...or.normalizeParams(t)})}function Zre(e,t,n){return new Oon({type:"union",options:t,discriminator:e,...or.normalizeParams(n)})}function y2(e,t){return new Pon({type:"intersection",left:e,right:t})}function ii(e,t,n){return new Non({type:"record",keyType:e,valueType:t,...or.normalizeParams(n)})}function Tu(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Kre({type:"enum",entries:n,...or.normalizeParams(t)})}function ft(e,t){return new Con({type:"literal",values:Array.isArray(e)?e:[e],...or.normalizeParams(t)})}function lZe(e){return new Mon({type:"transform",transform:e})}function Ui(e){return new dZe({type:"optional",innerType:e})}function iZe(e){return new Don({type:"nullable",innerType:e})}function Uon(e,t){return new Lon({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function jon(e,t){return new Fon({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function Hon(e,t){return new fZe({type:"nonoptional",innerType:e,...or.normalizeParams(t)})}function Bon(e,t){return new qon({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function Yre(e,t){return new zon({type:"pipe",in:e,out:t})}function Von(e){return new Gon({type:"readonly",innerType:e})}function Won(e){let t=new rc({check:"custom"});return t._zod.check=e,t}function hZe(e,t){return NYe(pZe,e??(()=>!0),t)}function Kon(e,t={}){return CYe(pZe,e,t)}function Yon(e){let t=Won(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(or.issue(r,n.value,t._zod.def));else{let i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(or.issue(i))}},e(n.value,n)));return t}function Jre(e,t){return Yre(lZe(e),t)}var Ji,sZe,son,Di,oon,nZe,g2,aon,con,uon,lon,don,fon,pon,hon,mon,gon,yon,Son,bon,Eon,_on,Ton,oZe,von,Ron,Aon,won,kon,xon,cZe,uZe,Oon,Pon,Non,Kre,Con,Mon,dZe,Don,Lon,Fon,fZe,qon,zon,Gon,pZe,Gre=v(()=>{pd();pd();Fre();zre();Wre();Ji=me("ZodType",(e,t)=>(ri.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>lh(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>QYe(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>eZe(e,n,r),e.parseAsync=async(n,r)=>$Ye(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>tZe(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Kon(n,r)),e.superRefine=n=>e.check(Yon(n)),e.overwrite=n=>e.check(P_(n)),e.optional=()=>Ui(e),e.nullable=()=>iZe(e),e.nullish=()=>Ui(iZe(e)),e.nonoptional=n=>Hon(e,n),e.array=()=>Vn(e),e.or=n=>mi([e,n]),e.and=n=>y2(e,n),e.transform=n=>Yre(e,lZe(n)),e.default=n=>Uon(e,n),e.prefault=n=>jon(e,n),e.catch=n=>Bon(e,n),e.pipe=n=>Yre(e,n),e.readonly=()=>Von(e),e.describe=n=>{let r=e.clone();return QN.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return QN.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return QN.get(e);let r=e.clone();return QN.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),sZe=me("_ZodString",(e,t)=>{a2.init(e,t),Ji.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Ire(...r)),e.includes=(...r)=>e.check(Pre(...r)),e.startsWith=(...r)=>e.check(Nre(...r)),e.endsWith=(...r)=>e.check(Cre(...r)),e.min=(...r)=>e.check(Bw(...r)),e.max=(...r)=>e.check(f2(...r)),e.length=(...r)=>e.check(p2(...r)),e.nonempty=(...r)=>e.check(Bw(1,...r)),e.lowercase=r=>e.check(xre(r)),e.uppercase=r=>e.check(Ore(r)),e.trim=()=>e.check(Dre()),e.normalize=(...r)=>e.check(Mre(...r)),e.toLowerCase=()=>e.check(Lre()),e.toUpperCase=()=>e.check(Ure())}),son=me("ZodString",(e,t)=>{a2.init(e,t),sZe.init(e,t),e.email=n=>e.check(eYe(oon,n)),e.url=n=>e.check(sYe(aon,n)),e.jwt=n=>e.check(EYe(Ton,n)),e.emoji=n=>e.check(oYe(con,n)),e.guid=n=>e.check(kre(nZe,n)),e.uuid=n=>e.check(tYe(g2,n)),e.uuidv4=n=>e.check(nYe(g2,n)),e.uuidv6=n=>e.check(rYe(g2,n)),e.uuidv7=n=>e.check(iYe(g2,n)),e.nanoid=n=>e.check(aYe(uon,n)),e.guid=n=>e.check(kre(nZe,n)),e.cuid=n=>e.check(cYe(lon,n)),e.cuid2=n=>e.check(uYe(don,n)),e.ulid=n=>e.check(lYe(fon,n)),e.base64=n=>e.check(yYe(bon,n)),e.base64url=n=>e.check(SYe(Eon,n)),e.xid=n=>e.check(dYe(pon,n)),e.ksuid=n=>e.check(fYe(hon,n)),e.ipv4=n=>e.check(pYe(mon,n)),e.ipv6=n=>e.check(hYe(gon,n)),e.cidrv4=n=>e.check(mYe(yon,n)),e.cidrv6=n=>e.check(gYe(Son,n)),e.e164=n=>e.check(bYe(_on,n)),e.datetime=n=>e.check(jre(n)),e.date=n=>e.check(Hre(n)),e.time=n=>e.check(qre(n)),e.duration=n=>e.check(Bre(n))});Di=me("ZodStringFormat",(e,t)=>{hi.init(e,t),sZe.init(e,t)}),oon=me("ZodEmail",(e,t)=>{s9e.init(e,t),Di.init(e,t)}),nZe=me("ZodGUID",(e,t)=>{r9e.init(e,t),Di.init(e,t)}),g2=me("ZodUUID",(e,t)=>{i9e.init(e,t),Di.init(e,t)}),aon=me("ZodURL",(e,t)=>{o9e.init(e,t),Di.init(e,t)}),con=me("ZodEmoji",(e,t)=>{a9e.init(e,t),Di.init(e,t)}),uon=me("ZodNanoID",(e,t)=>{c9e.init(e,t),Di.init(e,t)}),lon=me("ZodCUID",(e,t)=>{u9e.init(e,t),Di.init(e,t)}),don=me("ZodCUID2",(e,t)=>{l9e.init(e,t),Di.init(e,t)}),fon=me("ZodULID",(e,t)=>{d9e.init(e,t),Di.init(e,t)}),pon=me("ZodXID",(e,t)=>{f9e.init(e,t),Di.init(e,t)}),hon=me("ZodKSUID",(e,t)=>{p9e.init(e,t),Di.init(e,t)}),mon=me("ZodIPv4",(e,t)=>{S9e.init(e,t),Di.init(e,t)}),gon=me("ZodIPv6",(e,t)=>{b9e.init(e,t),Di.init(e,t)}),yon=me("ZodCIDRv4",(e,t)=>{E9e.init(e,t),Di.init(e,t)}),Son=me("ZodCIDRv6",(e,t)=>{_9e.init(e,t),Di.init(e,t)}),bon=me("ZodBase64",(e,t)=>{v9e.init(e,t),Di.init(e,t)}),Eon=me("ZodBase64URL",(e,t)=>{R9e.init(e,t),Di.init(e,t)}),_on=me("ZodE164",(e,t)=>{A9e.init(e,t),Di.init(e,t)}),Ton=me("ZodJWT",(e,t)=>{w9e.init(e,t),Di.init(e,t)}),oZe=me("ZodNumber",(e,t)=>{vre.init(e,t),Ji.init(e,t),e.gt=(r,i)=>e.check(l2(r,i)),e.gte=(r,i)=>e.check(eC(r,i)),e.min=(r,i)=>e.check(eC(r,i)),e.lt=(r,i)=>e.check(u2(r,i)),e.lte=(r,i)=>e.check($N(r,i)),e.max=(r,i)=>e.check($N(r,i)),e.int=r=>e.check(rZe(r)),e.safe=r=>e.check(rZe(r)),e.positive=r=>e.check(l2(0,r)),e.nonnegative=r=>e.check(eC(0,r)),e.negative=r=>e.check(u2(0,r)),e.nonpositive=r=>e.check($N(0,r)),e.multipleOf=(r,i)=>e.check(d2(r,i)),e.step=(r,i)=>e.check(d2(r,i)),e.finite=()=>e;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??.5),e.isFinite=!0,e.format=n.format??null});von=me("ZodNumberFormat",(e,t)=>{k9e.init(e,t),oZe.init(e,t)});Ron=me("ZodBoolean",(e,t)=>{I9e.init(e,t),Ji.init(e,t)});Aon=me("ZodNull",(e,t)=>{x9e.init(e,t),Ji.init(e,t)});won=me("ZodUnknown",(e,t)=>{O9e.init(e,t),Ji.init(e,t)});kon=me("ZodNever",(e,t)=>{P9e.init(e,t),Ji.init(e,t)});xon=me("ZodArray",(e,t)=>{N9e.init(e,t),Ji.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(Bw(n,r)),e.nonempty=n=>e.check(Bw(1,n)),e.max=(n,r)=>e.check(f2(n,r)),e.length=(n,r)=>e.check(p2(n,r)),e.unwrap=()=>e.element});cZe=me("ZodObject",(e,t)=>{C9e.init(e,t),Ji.init(e,t),or.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Tu(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Li()}),e.loose=()=>e.clone({...e._zod.def,catchall:Li()}),e.strict=()=>e.clone({...e._zod.def,catchall:Ion()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>or.extend(e,n),e.merge=n=>or.merge(e,n),e.pick=n=>or.pick(e,n),e.omit=n=>or.omit(e,n),e.partial=(...n)=>or.partial(dZe,e,n[0]),e.required=(...n)=>or.required(fZe,e,n[0])});uZe=me("ZodUnion",(e,t)=>{Rre.init(e,t),Ji.init(e,t),e.options=t.options});Oon=me("ZodDiscriminatedUnion",(e,t)=>{uZe.init(e,t),M9e.init(e,t)});Pon=me("ZodIntersection",(e,t)=>{D9e.init(e,t),Ji.init(e,t)});Non=me("ZodRecord",(e,t)=>{L9e.init(e,t),Ji.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});Kre=me("ZodEnum",(e,t)=>{U9e.init(e,t),Ji.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Kre({...t,checks:[],...or.normalizeParams(i),entries:s})},e.exclude=(r,i)=>{let s={...t.entries};for(let o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new Kre({...t,checks:[],...or.normalizeParams(i),entries:s})}});Con=me("ZodLiteral",(e,t)=>{F9e.init(e,t),Ji.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});Mon=me("ZodTransform",(e,t)=>{j9e.init(e,t),Ji.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(or.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(or.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});dZe=me("ZodOptional",(e,t)=>{H9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Don=me("ZodNullable",(e,t)=>{q9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});Lon=me("ZodDefault",(e,t)=>{B9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});Fon=me("ZodPrefault",(e,t)=>{z9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});fZe=me("ZodNonOptional",(e,t)=>{G9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType});qon=me("ZodCatch",(e,t)=>{V9e.init(e,t),Ji.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});zon=me("ZodPipe",(e,t)=>{W9e.init(e,t),Ji.init(e,t),e.in=t.in,e.out=t.out});Gon=me("ZodReadonly",(e,t)=>{K9e.init(e,t),Ji.init(e,t)});pZe=me("ZodCustom",(e,t)=>{Y9e.init(e,t),Ji.init(e,t)})});var mZe=v(()=>{});var gZe=v(()=>{});var yZe=v(()=>{pd();Gre();Fre();Vre();Wre();mZe();pd();X9e();c2();zre();gZe();fd(J9e())});var SZe=v(()=>{yZe()});var bZe=v(()=>{SZe()});var Qre,EZe,xS,b2,_o,_Ze,TZe,yBr,Xon,Qon,$re,Sl,rC,vZe,ma,hd,md,ga,E2,RZe,eie,AZe,wZe,tie,iC,yn,nie,kZe,IZe,SBr,_2,$on,T2,ean,sC,Vw,xZe,tan,nan,ran,ian,san,oan,rie,aan,can,iie,v2,uan,lan,R2,dan,oC,aC,fan,cC,Ww,pan,uC,A2,w2,k2,bBr,I2,x2,O2,OZe,PZe,NZe,sie,CZe,lC,Kw,MZe,han,man,gan,yan,San,oie,ban,Ean,_an,Tan,van,Ran,Aan,wan,kan,Ian,xan,Oan,aie,Pan,Nan,cie,uie,lie,die,Can,Man,Dan,fie,Lan,Uan,Fan,jan,Han,DZe,pie,qan,P2,EBr,Ban,dC,zan,_Br,fC,Gan,hie,Van,Wan,Kan,Yan,Zan,Jan,Xan,S2,Qan,$an,ecn,pC,mie,tcn,ncn,rcn,icn,scn,ocn,acn,ccn,ucn,lcn,dcn,fcn,pcn,hcn,mcn,gcn,ycn,Scn,Yw,bcn,Ecn,_cn,gie,Tcn,vcn,Rcn,yie,Acn,TBr,vBr,RBr,ABr,wBr,kBr,rn,Xre,N_=v(()=>{bZe();Qre="2025-11-25",EZe=[Qre,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],xS="io.modelcontextprotocol/related-task",b2="2.0",_o=hZe(e=>e!==null&&(typeof e=="object"||typeof e=="function")),_Ze=mi([ce(),vr().int()]),TZe=ce(),yBr=Bc({ttl:vr().optional(),pollInterval:vr().optional()}),Xon=$e({ttl:vr().optional()}),Qon=$e({taskId:ce()}),$re=Bc({progressToken:_Ze.optional(),[xS]:Qon.optional()}),Sl=$e({_meta:$re.optional()}),rC=Sl.extend({task:Xon.optional()}),vZe=e=>rC.safeParse(e).success,ma=$e({method:ce(),params:Sl.loose().optional()}),hd=$e({_meta:$re.optional()}),md=$e({method:ce(),params:hd.loose().optional()}),ga=Bc({_meta:$re.optional()}),E2=mi([ce(),vr().int()]),RZe=$e({jsonrpc:ft(b2),id:E2,...ma.shape}).strict(),eie=e=>RZe.safeParse(e).success,AZe=$e({jsonrpc:ft(b2),...md.shape}).strict(),wZe=e=>AZe.safeParse(e).success,tie=$e({jsonrpc:ft(b2),id:E2,result:ga}).strict(),iC=e=>tie.safeParse(e).success;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(yn||(yn={}));nie=$e({jsonrpc:ft(b2),id:E2.optional(),error:$e({code:vr().int(),message:ce(),data:Li().optional()})}).strict(),kZe=e=>nie.safeParse(e).success,IZe=mi([RZe,AZe,tie,nie]),SBr=mi([tie,nie]),_2=ga.strict(),$on=hd.extend({requestId:E2.optional(),reason:ce().optional()}),T2=md.extend({method:ft("notifications/cancelled"),params:$on}),ean=$e({src:ce(),mimeType:ce().optional(),sizes:Vn(ce()).optional(),theme:Tu(["light","dark"]).optional()}),sC=$e({icons:Vn(ean).optional()}),Vw=$e({name:ce(),title:ce().optional()}),xZe=Vw.extend({...Vw.shape,...sC.shape,version:ce(),websiteUrl:ce().optional(),description:ce().optional()}),tan=y2($e({applyDefaults:Vo().optional()}),ii(ce(),Li())),nan=Jre(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,y2($e({form:tan.optional(),url:_o.optional()}),ii(ce(),Li()).optional())),ran=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({sampling:Bc({createMessage:_o.optional()}).optional(),elicitation:Bc({create:_o.optional()}).optional()}).optional()}),ian=Bc({list:_o.optional(),cancel:_o.optional(),requests:Bc({tools:Bc({call:_o.optional()}).optional()}).optional()}),san=$e({experimental:ii(ce(),_o).optional(),sampling:$e({context:_o.optional(),tools:_o.optional()}).optional(),elicitation:nan.optional(),roots:$e({listChanged:Vo().optional()}).optional(),tasks:ran.optional(),extensions:ii(ce(),_o).optional()}),oan=Sl.extend({protocolVersion:ce(),capabilities:san,clientInfo:xZe}),rie=ma.extend({method:ft("initialize"),params:oan}),aan=$e({experimental:ii(ce(),_o).optional(),logging:_o.optional(),completions:_o.optional(),prompts:$e({listChanged:Vo().optional()}).optional(),resources:$e({subscribe:Vo().optional(),listChanged:Vo().optional()}).optional(),tools:$e({listChanged:Vo().optional()}).optional(),tasks:ian.optional(),extensions:ii(ce(),_o).optional()}),can=ga.extend({protocolVersion:ce(),capabilities:aan,serverInfo:xZe,instructions:ce().optional()}),iie=md.extend({method:ft("notifications/initialized"),params:hd.optional()}),v2=ma.extend({method:ft("ping"),params:Sl.optional()}),uan=$e({progress:vr(),total:Ui(vr()),message:Ui(ce())}),lan=$e({...hd.shape,...uan.shape,progressToken:_Ze}),R2=md.extend({method:ft("notifications/progress"),params:lan}),dan=Sl.extend({cursor:TZe.optional()}),oC=ma.extend({params:dan.optional()}),aC=ga.extend({nextCursor:TZe.optional()}),fan=Tu(["working","input_required","completed","failed","cancelled"]),cC=$e({taskId:ce(),status:fan,ttl:mi([vr(),aZe()]),createdAt:ce(),lastUpdatedAt:ce(),pollInterval:Ui(vr()),statusMessage:Ui(ce())}),Ww=ga.extend({task:cC}),pan=hd.merge(cC),uC=md.extend({method:ft("notifications/tasks/status"),params:pan}),A2=ma.extend({method:ft("tasks/get"),params:Sl.extend({taskId:ce()})}),w2=ga.merge(cC),k2=ma.extend({method:ft("tasks/result"),params:Sl.extend({taskId:ce()})}),bBr=ga.loose(),I2=oC.extend({method:ft("tasks/list")}),x2=aC.extend({tasks:Vn(cC)}),O2=ma.extend({method:ft("tasks/cancel"),params:Sl.extend({taskId:ce()})}),OZe=ga.merge(cC),PZe=$e({uri:ce(),mimeType:Ui(ce()),_meta:ii(ce(),Li()).optional()}),NZe=PZe.extend({text:ce()}),sie=ce().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),CZe=PZe.extend({blob:sie}),lC=Tu(["user","assistant"]),Kw=$e({audience:Vn(lC).optional(),priority:vr().min(0).max(1).optional(),lastModified:tC.datetime({offset:!0}).optional()}),MZe=$e({...Vw.shape,...sC.shape,uri:ce(),description:Ui(ce()),mimeType:Ui(ce()),size:Ui(vr()),annotations:Kw.optional(),_meta:Ui(Bc({}))}),han=$e({...Vw.shape,...sC.shape,uriTemplate:ce(),description:Ui(ce()),mimeType:Ui(ce()),annotations:Kw.optional(),_meta:Ui(Bc({}))}),man=oC.extend({method:ft("resources/list")}),gan=aC.extend({resources:Vn(MZe)}),yan=oC.extend({method:ft("resources/templates/list")}),San=aC.extend({resourceTemplates:Vn(han)}),oie=Sl.extend({uri:ce()}),ban=oie,Ean=ma.extend({method:ft("resources/read"),params:ban}),_an=ga.extend({contents:Vn(mi([NZe,CZe]))}),Tan=md.extend({method:ft("notifications/resources/list_changed"),params:hd.optional()}),van=oie,Ran=ma.extend({method:ft("resources/subscribe"),params:van}),Aan=oie,wan=ma.extend({method:ft("resources/unsubscribe"),params:Aan}),kan=hd.extend({uri:ce()}),Ian=md.extend({method:ft("notifications/resources/updated"),params:kan}),xan=$e({name:ce(),description:Ui(ce()),required:Ui(Vo())}),Oan=$e({...Vw.shape,...sC.shape,description:Ui(ce()),arguments:Ui(Vn(xan)),_meta:Ui(Bc({}))}),aie=oC.extend({method:ft("prompts/list")}),Pan=aC.extend({prompts:Vn(Oan)}),Nan=Sl.extend({name:ce(),arguments:ii(ce(),ce()).optional()}),cie=ma.extend({method:ft("prompts/get"),params:Nan}),uie=$e({type:ft("text"),text:ce(),annotations:Kw.optional(),_meta:ii(ce(),Li()).optional()}),lie=$e({type:ft("image"),data:sie,mimeType:ce(),annotations:Kw.optional(),_meta:ii(ce(),Li()).optional()}),die=$e({type:ft("audio"),data:sie,mimeType:ce(),annotations:Kw.optional(),_meta:ii(ce(),Li()).optional()}),Can=$e({type:ft("tool_use"),name:ce(),id:ce(),input:ii(ce(),Li()),_meta:ii(ce(),Li()).optional()}),Man=$e({type:ft("resource"),resource:mi([NZe,CZe]),annotations:Kw.optional(),_meta:ii(ce(),Li()).optional()}),Dan=MZe.extend({type:ft("resource_link")}),fie=mi([uie,lie,die,Dan,Man]),Lan=$e({role:lC,content:fie}),Uan=ga.extend({description:ce().optional(),messages:Vn(Lan)}),Fan=md.extend({method:ft("notifications/prompts/list_changed"),params:hd.optional()}),jan=$e({title:ce().optional(),readOnlyHint:Vo().optional(),destructiveHint:Vo().optional(),idempotentHint:Vo().optional(),openWorldHint:Vo().optional()}),Han=$e({taskSupport:Tu(["required","optional","forbidden"]).optional()}),DZe=$e({...Vw.shape,...sC.shape,description:ce().optional(),inputSchema:$e({type:ft("object"),properties:ii(ce(),_o).optional(),required:Vn(ce()).optional()}).catchall(Li()),outputSchema:$e({type:ft("object"),properties:ii(ce(),_o).optional(),required:Vn(ce()).optional()}).catchall(Li()).optional(),annotations:jan.optional(),execution:Han.optional(),_meta:ii(ce(),Li()).optional()}),pie=oC.extend({method:ft("tools/list")}),qan=aC.extend({tools:Vn(DZe)}),P2=ga.extend({content:Vn(fie).default([]),structuredContent:ii(ce(),Li()).optional(),isError:Vo().optional()}),EBr=P2.or(ga.extend({toolResult:Li()})),Ban=rC.extend({name:ce(),arguments:ii(ce(),Li()).optional()}),dC=ma.extend({method:ft("tools/call"),params:Ban}),zan=md.extend({method:ft("notifications/tools/list_changed"),params:hd.optional()}),_Br=$e({autoRefresh:Vo().default(!0),debounceMs:vr().int().nonnegative().default(300)}),fC=Tu(["debug","info","notice","warning","error","critical","alert","emergency"]),Gan=Sl.extend({level:fC}),hie=ma.extend({method:ft("logging/setLevel"),params:Gan}),Van=hd.extend({level:fC,logger:ce().optional(),data:Li()}),Wan=md.extend({method:ft("notifications/message"),params:Van}),Kan=$e({name:ce().optional()}),Yan=$e({hints:Vn(Kan).optional(),costPriority:vr().min(0).max(1).optional(),speedPriority:vr().min(0).max(1).optional(),intelligencePriority:vr().min(0).max(1).optional()}),Zan=$e({mode:Tu(["auto","required","none"]).optional()}),Jan=$e({type:ft("tool_result"),toolUseId:ce().describe("The unique identifier for the corresponding tool call."),content:Vn(fie).default([]),structuredContent:$e({}).loose().optional(),isError:Vo().optional(),_meta:ii(ce(),Li()).optional()}),Xan=Zre("type",[uie,lie,die]),S2=Zre("type",[uie,lie,die,Can,Jan]),Qan=$e({role:lC,content:mi([S2,Vn(S2)]),_meta:ii(ce(),Li()).optional()}),$an=rC.extend({messages:Vn(Qan),modelPreferences:Yan.optional(),systemPrompt:ce().optional(),includeContext:Tu(["none","thisServer","allServers"]).optional(),temperature:vr().optional(),maxTokens:vr().int(),stopSequences:Vn(ce()).optional(),metadata:_o.optional(),tools:Vn(DZe).optional(),toolChoice:Zan.optional()}),ecn=ma.extend({method:ft("sampling/createMessage"),params:$an}),pC=ga.extend({model:ce(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens"]).or(ce())),role:lC,content:Xan}),mie=ga.extend({model:ce(),stopReason:Ui(Tu(["endTurn","stopSequence","maxTokens","toolUse"]).or(ce())),role:lC,content:mi([S2,Vn(S2)])}),tcn=$e({type:ft("boolean"),title:ce().optional(),description:ce().optional(),default:Vo().optional()}),ncn=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),minLength:vr().optional(),maxLength:vr().optional(),format:Tu(["email","uri","date","date-time"]).optional(),default:ce().optional()}),rcn=$e({type:Tu(["number","integer"]),title:ce().optional(),description:ce().optional(),minimum:vr().optional(),maximum:vr().optional(),default:vr().optional()}),icn=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),default:ce().optional()}),scn=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),oneOf:Vn($e({const:ce(),title:ce()})),default:ce().optional()}),ocn=$e({type:ft("string"),title:ce().optional(),description:ce().optional(),enum:Vn(ce()),enumNames:Vn(ce()).optional(),default:ce().optional()}),acn=mi([icn,scn]),ccn=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({type:ft("string"),enum:Vn(ce())}),default:Vn(ce()).optional()}),ucn=$e({type:ft("array"),title:ce().optional(),description:ce().optional(),minItems:vr().optional(),maxItems:vr().optional(),items:$e({anyOf:Vn($e({const:ce(),title:ce()}))}),default:Vn(ce()).optional()}),lcn=mi([ccn,ucn]),dcn=mi([ocn,acn,lcn]),fcn=mi([dcn,tcn,ncn,rcn]),pcn=rC.extend({mode:ft("form").optional(),message:ce(),requestedSchema:$e({type:ft("object"),properties:ii(ce(),fcn),required:Vn(ce()).optional()})}),hcn=rC.extend({mode:ft("url"),message:ce(),elicitationId:ce(),url:ce().url()}),mcn=mi([pcn,hcn]),gcn=ma.extend({method:ft("elicitation/create"),params:mcn}),ycn=hd.extend({elicitationId:ce()}),Scn=md.extend({method:ft("notifications/elicitation/complete"),params:ycn}),Yw=ga.extend({action:Tu(["accept","decline","cancel"]),content:Jre(e=>e===null?void 0:e,ii(ce(),mi([ce(),vr(),Vo(),Vn(ce())])).optional())}),bcn=$e({type:ft("ref/resource"),uri:ce()}),Ecn=$e({type:ft("ref/prompt"),name:ce()}),_cn=Sl.extend({ref:mi([Ecn,bcn]),argument:$e({name:ce(),value:ce()}),context:$e({arguments:ii(ce(),ce()).optional()}).optional()}),gie=ma.extend({method:ft("completion/complete"),params:_cn}),Tcn=ga.extend({completion:Bc({values:Vn(ce()).max(100),total:Ui(vr().int()),hasMore:Ui(Vo())})}),vcn=$e({uri:ce().startsWith("file://"),name:ce().optional(),_meta:ii(ce(),Li()).optional()}),Rcn=ma.extend({method:ft("roots/list"),params:Sl.optional()}),yie=ga.extend({roots:Vn(vcn)}),Acn=md.extend({method:ft("notifications/roots/list_changed"),params:hd.optional()}),TBr=mi([v2,rie,gie,hie,cie,aie,man,yan,Ean,Ran,wan,dC,pie,A2,k2,I2,O2]),vBr=mi([T2,R2,iie,Acn,uC]),RBr=mi([_2,pC,mie,Yw,yie,w2,x2,Ww]),ABr=mi([v2,ecn,gcn,Rcn,A2,k2,I2,O2]),wBr=mi([T2,R2,Wan,Ian,Tan,zan,Fan,uC,Scn]),kBr=mi([_2,can,Tcn,Uan,Pan,gan,San,_an,P2,qan,w2,x2,Ww]),rn=class e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===yn.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new Xre(i.elicitations,n)}return new e(t,n,r)}},Xre=class extends rn{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(yn.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}}});function OS(e){return e==="completed"||e==="failed"||e==="cancelled"}var LZe=v(()=>{});var N2=v(()=>{});var Sie=v(()=>{N2()});var PS=v(()=>{});var C2=v(()=>{});var gd=v(()=>{C2()});var bie=v(()=>{PS();Qs()});var Eie=v(()=>{PS()});var _ie=v(()=>{});var M2=v(()=>{Qs()});var Tie=v(()=>{Qs()});var vie=v(()=>{PS()});var Rie=v(()=>{Qs()});var Aie=v(()=>{Qs();gd()});var wie=v(()=>{});var kie=v(()=>{Qs()});var Iie=v(()=>{});var ozr,D2=v(()=>{PS();ozr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});var L2=v(()=>{Qs();D2();M2();gd()});var xie=v(()=>{Qs();L2();gd()});var Oie=v(()=>{});var Pie=v(()=>{gd()});var Nie=v(()=>{});var U2=v(()=>{Qs()});var Cie=v(()=>{Qs();U2()});var Mie=v(()=>{PS()});var Die=v(()=>{Qs()});var Lie=v(()=>{Qs();gd()});var Uie=v(()=>{Qs()});var Fie=v(()=>{Qs()});var jie=v(()=>{PS();Qs()});var Hie=v(()=>{Qs()});var qie=v(()=>{gd()});var Bie=v(()=>{gd()});var zie=v(()=>{Qs()});var Gie=v(()=>{gd();bie();Eie();_ie();M2();Tie();vie();Rie();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();L2();jie();D2();Hie();qie();U2();Bie();zie()});var Qs=v(()=>{N2();Gie();C2();gd()});var UZe=v(()=>{});var Vie=v(()=>{Qs();Sie();gd()});var Wie=v(()=>{N2();Sie();PS();C2();Qs();UZe();gd();bie();Eie();_ie();M2();Tie();vie();Rie();Aie();wie();kie();Iie();xie();Oie();Pie();Nie();Cie();Mie();Die();Lie();Uie();Fie();zie();L2();jie();D2();Hie();qie();U2();Bie();Gie();Vie();Vie()});function Kie(e){let n=h2(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=WYe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function Yie(e,t){let n=IS(e,t);if(!n.success)throw n.error;return n.data}var jZe=v(()=>{m2();Wie()});function HZe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function qZe(e,t){let n={...e};for(let r in t){let i=r,s=t[i];if(s===void 0)continue;let o=n[i];HZe(o)&&HZe(s)?n[i]={...o,...s}:n[i]=s}return n}var Ocn,F2,BZe=v(()=>{m2();N_();LZe();jZe();Ocn=6e4,F2=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(T2,n=>{this._oncancel(n)}),this.setNotificationHandler(R2,n=>{this._onprogress(n)}),this.setRequestHandler(v2,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(A2,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(yn.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(k2,async(n,r)=>{let i=async()=>{let s=n.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,r.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,f=new rn(d.error.code,d.error.message,d.error.data);l(f)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:r.requestId})}}let o=await this._taskStore.getTask(s,r.sessionId);if(!o)throw new rn(yn.InvalidParams,`Task not found: ${s}`);if(!OS(o.status))return await this._waitForTaskUpdate(s,r.signal),await i();if(OS(o.status)){let a=await this._taskStore.getTaskResult(s,r.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[xS]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(I2,async(n,r)=>{try{let{tasks:i,nextCursor:s}=await this._taskStore.listTasks(n.params?.cursor,r.sessionId);return{tasks:i,nextCursor:s,_meta:{}}}catch(i){throw new rn(yn.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(O2,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new rn(yn.InvalidParams,`Task not found: ${n.params.taskId}`);if(OS(i.status))throw new rn(yn.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new rn(yn.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof rn?i:new rn(yn.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),rn.fromError(yn.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let r=this.transport?.onerror;this._transport.onerror=s=>{r?.(s),this._onerror(s)};let i=this._transport?.onmessage;this._transport.onmessage=(s,o)=>{i?.(s,o),iC(s)||kZe(s)?this._onresponse(s):eie(s)?this._onrequest(s,o):wZe(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let r of this._timeoutInfo.values())clearTimeout(r.timeoutId);this._timeoutInfo.clear();for(let r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();let n=rn.fromError(yn.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let r of t.values())r(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){let n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(t,n){let r=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,i=this._transport,s=t.params?._meta?.[xS]?.taskId;if(r===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:yn.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(t.id,o);let a=vZe(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{if(o.signal.aborted)return;let d={relatedRequestId:t.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,f)=>{if(o.signal.aborted)throw new rn(yn.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:t.id};s&&!p.relatedTask&&(p.relatedTask={taskId:s});let h=p.relatedTask?.taskId??s;return h&&c&&await c.updateTaskStatus(h,"input_required"),await this.request(l,d,p)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(t.method)}).then(()=>r(t,u)).then(async l=>{if(o.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:t.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)},async l=>{if(o.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:yn.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===o&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...r}=t.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(r)}_onresponse(t){let n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),iC(t))r(t);else{let o=new rn(t.error.code,t.error.message,t.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(iC(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),iC(t))i(t);else{let o=rn.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,r){let{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(t,n,r)}}catch(o){yield{type:"error",error:o instanceof rn?o:new rn(yn.InternalError,String(o))}}return}let s;try{let o=await this.request(t,Ww,r);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new rn(yn.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},r);if(yield{type:"taskStatus",task:a},OS(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)}:a.status==="failed"?yield{type:"error",error:new rn(yn.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new rn(yn.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},n,r)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),r?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof rn?o:new rn(yn.InternalError,String(o))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{let d=b=>{l(b)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(b){d(b);return}r?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:f};r?.onprogress&&(this._progressHandlers.set(f,r.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[xS]:c}});let h=b=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(b)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(E=>this._onerror(new Error(`Failed to send cancellation: ${E}`)));let S=b instanceof rn?b:new rn(yn.RequestTimeout,String(b));l(S)};this._responseHandlers.set(f,b=>{if(!r?.signal?.aborted){if(b instanceof Error)return l(b);try{let S=IS(n,b.result);S.success?u(S.data):l(S.error)}catch(S){l(S)}}}),r?.signal?.addEventListener("abort",()=>{h(r?.signal?.reason)});let m=r?.timeout??Ocn,g=()=>h(rn.fromError(yn.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,r?.maxTotalTimeout,g,r?.resetTimeoutOnProgress??!1);let y=c?.taskId;if(y){let b=S=>{let E=this._responseHandlers.get(f);E?E(S):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,b),this._enqueueTaskMessage(y,{type:"request",message:p,timestamp:Date.now()}).catch(S=>{this._cleanupTimeout(f),l(S)})}else this._transport.send(p,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(b=>{this._cleanupTimeout(f),l(b)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},w2,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},x2,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},OZe,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let r=n?.relatedTask?.taskId;if(r){let a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[xS]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[xS]:n.relatedTask}}}),this._transport?.send(a,n).catch(c=>this._onerror(c))});return}let o={...t,jsonrpc:"2.0"};n?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[xS]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(t,n){let r=Kie(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=Yie(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=Kie(t);this._notificationHandlers.set(r,i=>{let s=Yie(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,i)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&eie(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new rn(yn.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){let r=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(t);i?.pollInterval&&(r=i.pollInterval)}catch{}return new Promise((i,s)=>{if(n.aborted){s(new rn(yn.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),s(new rn(yn.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{let s=await r.getTask(i,n);if(!s)throw new rn(yn.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await r.storeTaskResult(i,s,o,n);let a=await r.getTask(i,n);if(a){let c=uC.parse({method:"notifications/tasks/status",params:a});await this.notification(c),OS(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new rn(yn.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(OS(a.status))throw new rn(yn.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=uC.parse({method:"notifications/tasks/status",params:c});await this.notification(u),OS(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}}});var Zw=w(tr=>{"use strict";Object.defineProperty(tr,"__esModule",{value:!0});tr.regexpCode=tr.getEsmExportName=tr.getProperty=tr.safeStringify=tr.stringify=tr.strConcat=tr.addCodeArg=tr.str=tr._=tr.nil=tr._Code=tr.Name=tr.IDENTIFIER=tr._CodeOrName=void 0;var mC=class{};tr._CodeOrName=mC;tr.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var C_=class extends mC{constructor(t){if(super(),!tr.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};tr.Name=C_;var yd=class extends mC{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((n,r)=>`${n}${r}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((n,r)=>(r instanceof C_&&(n[r.str]=(n[r.str]||0)+1),n),{})}};tr._Code=yd;tr.nil=new yd("");function zZe(e,...t){let n=[e[0]],r=0;for(;r{"use strict";Object.defineProperty(Ru,"__esModule",{value:!0});Ru.ValueScope=Ru.ValueScopeName=Ru.Scope=Ru.varKinds=Ru.UsedValueState=void 0;var vu=Zw(),Xie=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},j2;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(j2||(Ru.UsedValueState=j2={}));Ru.varKinds={const:new vu.Name("const"),let:new vu.Name("let"),var:new vu.Name("var")};var H2=class{constructor({prefixes:t,parent:n}={}){this._names={},this._prefixes=t,this._parent=n}toName(t){return t instanceof vu.Name?t:this.name(t)}name(t){return new vu.Name(this._newName(t))}_newName(t){let n=this._names[t]||this._nameGroup(t);return`${t}${n.index++}`}_nameGroup(t){var n,r;if(!((r=(n=this._parent)===null||n===void 0?void 0:n._prefixes)===null||r===void 0)&&r.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Ru.Scope=H2;var q2=class extends vu.Name{constructor(t,n){super(n),this.prefix=t}setValue(t,{property:n,itemIndex:r}){this.value=t,this.scopePath=(0,vu._)`.${new vu.Name(n)}[${r}]`}};Ru.ValueScopeName=q2;var jcn=(0,vu._)`\n`,Qie=class extends H2{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?jcn:vu.nil}}get(){return this._scope}name(t){return new q2(t,this._newName(t))}value(t,n){var r;if(n.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(t),{prefix:s}=i,o=(r=n.key)!==null&&r!==void 0?r:n.ref,a=this._values[s];if(a){let l=a.get(o);if(l)return l}else a=this._values[s]=new Map;a.set(o,i);let c=this._scope[s]||(this._scope[s]=[]),u=c.length;return c[u]=n.ref,i.setValue(n,{property:s,itemIndex:u}),i}getValue(t,n){let r=this._values[t];if(r)return r.get(n)}scopeRefs(t,n=this._values){return this._reduceValues(n,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return(0,vu._)`${t}${r.scopePath}`})}scopeCode(t=this._values,n,r){return this._reduceValues(t,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},n,r)}_reduceValues(t,n,r={},i){let s=vu.nil;for(let o in t){let a=t[o];if(!a)continue;let c=r[o]=r[o]||new Map;a.forEach(u=>{if(c.has(u))return;c.set(u,j2.Started);let l=n(u);if(l){let d=this.opts.es5?Ru.varKinds.var:Ru.varKinds.const;s=(0,vu._)`${s}${d} ${u} = ${l};${this.opts._n}`}else if(l=i?.(u))s=(0,vu._)`${s}${l}${this.opts._n}`;else throw new Xie(u);c.set(u,j2.Completed)})}return s}};Ru.ValueScope=Qie});var Ot=w(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.or=Sn.and=Sn.not=Sn.CodeGen=Sn.operators=Sn.varKinds=Sn.ValueScopeName=Sn.ValueScope=Sn.Scope=Sn.Name=Sn.regexpCode=Sn.stringify=Sn.getProperty=Sn.nil=Sn.strConcat=Sn.str=Sn._=void 0;var Wn=Zw(),Rf=B2(),NS=Zw();Object.defineProperty(Sn,"_",{enumerable:!0,get:function(){return NS._}});Object.defineProperty(Sn,"str",{enumerable:!0,get:function(){return NS.str}});Object.defineProperty(Sn,"strConcat",{enumerable:!0,get:function(){return NS.strConcat}});Object.defineProperty(Sn,"nil",{enumerable:!0,get:function(){return NS.nil}});Object.defineProperty(Sn,"getProperty",{enumerable:!0,get:function(){return NS.getProperty}});Object.defineProperty(Sn,"stringify",{enumerable:!0,get:function(){return NS.stringify}});Object.defineProperty(Sn,"regexpCode",{enumerable:!0,get:function(){return NS.regexpCode}});Object.defineProperty(Sn,"Name",{enumerable:!0,get:function(){return NS.Name}});var W2=B2();Object.defineProperty(Sn,"Scope",{enumerable:!0,get:function(){return W2.Scope}});Object.defineProperty(Sn,"ValueScope",{enumerable:!0,get:function(){return W2.ValueScope}});Object.defineProperty(Sn,"ValueScopeName",{enumerable:!0,get:function(){return W2.ValueScopeName}});Object.defineProperty(Sn,"varKinds",{enumerable:!0,get:function(){return W2.varKinds}});Sn.operators={GT:new Wn._Code(">"),GTE:new Wn._Code(">="),LT:new Wn._Code("<"),LTE:new Wn._Code("<="),EQ:new Wn._Code("==="),NEQ:new Wn._Code("!=="),NOT:new Wn._Code("!"),OR:new Wn._Code("||"),AND:new Wn._Code("&&"),ADD:new Wn._Code("+")};var Vm=class{optimizeNodes(){return this}optimizeNames(t,n){return this}},$ie=class extends Vm{constructor(t,n,r){super(),this.varKind=t,this.name=n,this.rhs=r}render({es5:t,_n:n}){let r=t?Rf.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return`${r} ${this.name}${i};`+n}optimizeNames(t,n){if(t[this.name.str])return this.rhs&&(this.rhs=Xw(this.rhs,t,n)),this}get names(){return this.rhs instanceof Wn._CodeOrName?this.rhs.names:{}}},z2=class extends Vm{constructor(t,n,r){super(),this.lhs=t,this.rhs=n,this.sideEffects=r}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,n){if(!(this.lhs instanceof Wn.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Xw(this.rhs,t,n),this}get names(){let t=this.lhs instanceof Wn.Name?{}:{...this.lhs.names};return V2(t,this.rhs)}},ese=class extends z2{constructor(t,n,r,i){super(t,r,i),this.op=n}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},tse=class extends Vm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},nse=class extends Vm{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},rse=class extends Vm{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},ise=class extends Vm{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,n){return this.code=Xw(this.code,t,n),this}get names(){return this.code instanceof Wn._CodeOrName?this.code.names:{}}},yC=class extends Vm{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((n,r)=>n+r.render(t),"")}optimizeNodes(){let{nodes:t}=this,n=t.length;for(;n--;){let r=t[n].optimizeNodes();Array.isArray(r)?t.splice(n,1,...r):r?t[n]=r:t.splice(n,1)}return t.length>0?this:void 0}optimizeNames(t,n){let{nodes:r}=this,i=r.length;for(;i--;){let s=r[i];s.optimizeNames(t,n)||(Hcn(t,s.names),r.splice(i,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce((t,n)=>L_(t,n.names),{})}},Wm=class extends yC{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},sse=class extends yC{},Jw=class extends Wm{};Jw.kind="else";var M_=class e extends Wm{constructor(t,n){super(n),this.condition=t}render(t){let n=`if(${this.condition})`+super.render(t);return this.else&&(n+="else "+this.else.render(t)),n}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let r=n.optimizeNodes();n=this.else=Array.isArray(r)?new Jw(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(VZe(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,n){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,n),!!(super.optimizeNames(t,n)||this.else))return this.condition=Xw(this.condition,t,n),this}get names(){let t=super.names;return V2(t,this.condition),this.else&&L_(t,this.else.names),t}};M_.kind="if";var D_=class extends Wm{};D_.kind="for";var ose=class extends D_{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iteration=Xw(this.iteration,t,n),this}get names(){return L_(super.names,this.iteration.names)}},ase=class extends D_{constructor(t,n,r,i){super(),this.varKind=t,this.name=n,this.from=r,this.to=i}render(t){let n=t.es5?Rf.varKinds.var:this.varKind,{name:r,from:i,to:s}=this;return`for(${n} ${r}=${i}; ${r}<${s}; ${r}++)`+super.render(t)}get names(){let t=V2(super.names,this.from);return V2(t,this.to)}},G2=class extends D_{constructor(t,n,r,i){super(),this.loop=t,this.varKind=n,this.name=r,this.iterable=i}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,n){if(super.optimizeNames(t,n))return this.iterable=Xw(this.iterable,t,n),this}get names(){return L_(super.names,this.iterable.names)}},SC=class extends Wm{constructor(t,n,r){super(),this.name=t,this.args=n,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};SC.kind="func";var bC=class extends yC{render(t){return"return "+super.render(t)}};bC.kind="return";var cse=class extends Wm{render(t){let n="try"+super.render(t);return this.catch&&(n+=this.catch.render(t)),this.finally&&(n+=this.finally.render(t)),n}optimizeNodes(){var t,n;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(n=this.finally)===null||n===void 0||n.optimizeNodes(),this}optimizeNames(t,n){var r,i;return super.optimizeNames(t,n),(r=this.catch)===null||r===void 0||r.optimizeNames(t,n),(i=this.finally)===null||i===void 0||i.optimizeNames(t,n),this}get names(){let t=super.names;return this.catch&&L_(t,this.catch.names),this.finally&&L_(t,this.finally.names),t}},EC=class extends Wm{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};EC.kind="catch";var _C=class extends Wm{render(t){return"finally"+super.render(t)}};_C.kind="finally";var use=class{constructor(t,n={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...n,_n:n.lines?` +`:""},this._extScope=t,this._scope=new Rf.Scope({parent:t}),this._nodes=[new sse]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,n){let r=this._extScope.value(t,n);return(this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(t,n){return this._extScope.getValue(t,n)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,n,r,i){let s=this._scope.toName(n);return r!==void 0&&i&&(this._constants[s.str]=r),this._leafNode(new $ie(t,s,r)),s}const(t,n,r){return this._def(Rf.varKinds.const,t,n,r)}let(t,n,r){return this._def(Rf.varKinds.let,t,n,r)}var(t,n,r){return this._def(Rf.varKinds.var,t,n,r)}assign(t,n,r){return this._leafNode(new z2(t,n,r))}add(t,n){return this._leafNode(new ese(t,Sn.operators.ADD,n))}code(t){return typeof t=="function"?t():t!==Wn.nil&&this._leafNode(new ise(t)),this}object(...t){let n=["{"];for(let[r,i]of t)n.length>1&&n.push(","),n.push(r),(r!==i||this.opts.es5)&&(n.push(":"),(0,Wn.addCodeArg)(n,i));return n.push("}"),new Wn._Code(n)}if(t,n,r){if(this._blockNode(new M_(t)),n&&r)this.code(n).else().code(r).endIf();else if(n)this.code(n).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new M_(t))}else(){return this._elseNode(new Jw)}endIf(){return this._endBlockNode(M_,Jw)}_for(t,n){return this._blockNode(t),n&&this.code(n).endFor(),this}for(t,n){return this._for(new ose(t),n)}forRange(t,n,r,i,s=this.opts.es5?Rf.varKinds.var:Rf.varKinds.let){let o=this._scope.toName(t);return this._for(new ase(s,o,n,r),()=>i(o))}forOf(t,n,r,i=Rf.varKinds.const){let s=this._scope.toName(t);if(this.opts.es5){let o=n instanceof Wn.Name?n:this.var("_arr",n);return this.forRange("_i",0,(0,Wn._)`${o}.length`,a=>{this.var(s,(0,Wn._)`${o}[${a}]`),r(s)})}return this._for(new G2("of",i,s,n),()=>r(s))}forIn(t,n,r,i=this.opts.es5?Rf.varKinds.var:Rf.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,Wn._)`Object.keys(${n})`,r);let s=this._scope.toName(t);return this._for(new G2("in",i,s,n),()=>r(s))}endFor(){return this._endBlockNode(D_)}label(t){return this._leafNode(new tse(t))}break(t){return this._leafNode(new nse(t))}return(t){let n=new bC;if(this._blockNode(n),this.code(t),n.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(bC)}try(t,n,r){if(!n&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new cse;if(this._blockNode(i),this.code(t),n){let s=this.name("e");this._currNode=i.catch=new EC(s),n(s)}return r&&(this._currNode=i.finally=new _C,this.code(r)),this._endBlockNode(EC,_C)}throw(t){return this._leafNode(new rse(t))}block(t,n){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(n),this}endBlock(t){let n=this._blockStarts.pop();if(n===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-n;if(r<0||t!==void 0&&r!==t)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${t} expected`);return this._nodes.length=n,this}func(t,n=Wn.nil,r,i){return this._blockNode(new SC(t,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(SC)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,n){let r=this._currNode;if(r instanceof t||n&&r instanceof n)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${n?`${t.kind}/${n.kind}`:t.kind}"`)}_elseNode(t){let n=this._currNode;if(!(n instanceof M_))throw new Error('CodeGen: "else" without "if"');return this._currNode=n.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let n=this._nodes;n[n.length-1]=t}};Sn.CodeGen=use;function L_(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function V2(e,t){return t instanceof Wn._CodeOrName?L_(e,t.names):e}function Xw(e,t,n){if(e instanceof Wn.Name)return r(e);if(!i(e))return e;return new Wn._Code(e._items.reduce((s,o)=>(o instanceof Wn.Name&&(o=r(o)),o instanceof Wn._Code?s.push(...o._items):s.push(o),s),[]));function r(s){let o=n[s.str];return o===void 0||t[s.str]!==1?s:(delete t[s.str],o)}function i(s){return s instanceof Wn._Code&&s._items.some(o=>o instanceof Wn.Name&&t[o.str]===1&&n[o.str]!==void 0)}}function Hcn(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function VZe(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,Wn._)`!${lse(e)}`}Sn.not=VZe;var qcn=WZe(Sn.operators.AND);function Bcn(...e){return e.reduce(qcn)}Sn.and=Bcn;var zcn=WZe(Sn.operators.OR);function Gcn(...e){return e.reduce(zcn)}Sn.or=Gcn;function WZe(e){return(t,n)=>t===Wn.nil?n:n===Wn.nil?t:(0,Wn._)`${lse(t)} ${e} ${lse(n)}`}function lse(e){return e instanceof Wn.Name?e:(0,Wn._)`(${e})`}});var pn=w(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.checkStrictMode=Rn.getErrorPath=Rn.Type=Rn.useFunc=Rn.setEvaluated=Rn.evaluatedPropsToName=Rn.mergeEvaluated=Rn.eachItem=Rn.unescapeJsonPointer=Rn.escapeJsonPointer=Rn.escapeFragment=Rn.unescapeFragment=Rn.schemaRefOrVal=Rn.schemaHasRulesButRef=Rn.schemaHasRules=Rn.checkUnknownRules=Rn.alwaysValidSchema=Rn.toHash=void 0;var Wr=Ot(),Vcn=Zw();function Wcn(e){let t={};for(let n of e)t[n]=!0;return t}Rn.toHash=Wcn;function Kcn(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(ZZe(e,t),!JZe(t,e.self.RULES.all))}Rn.alwaysValidSchema=Kcn;function ZZe(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t=="boolean")return;let i=r.RULES.keywords;for(let s in t)i[s]||$Ze(e,`unknown keyword: "${s}"`)}Rn.checkUnknownRules=ZZe;function JZe(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(t[n])return!0;return!1}Rn.schemaHasRules=JZe;function Ycn(e,t){if(typeof e=="boolean")return!e;for(let n in e)if(n!=="$ref"&&t.all[n])return!0;return!1}Rn.schemaHasRulesButRef=Ycn;function Zcn({topSchemaRef:e,schemaPath:t},n,r,i){if(!i){if(typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="string")return(0,Wr._)`${n}`}return(0,Wr._)`${e}${t}${(0,Wr.getProperty)(r)}`}Rn.schemaRefOrVal=Zcn;function Jcn(e){return XZe(decodeURIComponent(e))}Rn.unescapeFragment=Jcn;function Xcn(e){return encodeURIComponent(fse(e))}Rn.escapeFragment=Xcn;function fse(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Rn.escapeJsonPointer=fse;function XZe(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Rn.unescapeJsonPointer=XZe;function Qcn(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}Rn.eachItem=Qcn;function KZe({mergeNames:e,mergeToName:t,mergeValues:n,resultToName:r}){return(i,s,o,a)=>{let c=o===void 0?s:o instanceof Wr.Name?(s instanceof Wr.Name?e(i,s,o):t(i,s,o),o):s instanceof Wr.Name?(t(i,o,s),s):n(s,o);return a===Wr.Name&&!(c instanceof Wr.Name)?r(i,c):c}}Rn.mergeEvaluated={props:KZe({mergeNames:(e,t,n)=>e.if((0,Wr._)`${n} !== true && ${t} !== undefined`,()=>{e.if((0,Wr._)`${t} === true`,()=>e.assign(n,!0),()=>e.assign(n,(0,Wr._)`${n} || {}`).code((0,Wr._)`Object.assign(${n}, ${t})`))}),mergeToName:(e,t,n)=>e.if((0,Wr._)`${n} !== true`,()=>{t===!0?e.assign(n,!0):(e.assign(n,(0,Wr._)`${n} || {}`),pse(e,n,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:QZe}),items:KZe({mergeNames:(e,t,n)=>e.if((0,Wr._)`${n} !== true && ${t} !== undefined`,()=>e.assign(n,(0,Wr._)`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`)),mergeToName:(e,t,n)=>e.if((0,Wr._)`${n} !== true`,()=>e.assign(n,t===!0?!0:(0,Wr._)`${n} > ${t} ? ${n} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function QZe(e,t){if(t===!0)return e.var("props",!0);let n=e.var("props",(0,Wr._)`{}`);return t!==void 0&&pse(e,n,t),n}Rn.evaluatedPropsToName=QZe;function pse(e,t,n){Object.keys(n).forEach(r=>e.assign((0,Wr._)`${t}${(0,Wr.getProperty)(r)}`,!0))}Rn.setEvaluated=pse;var YZe={};function $cn(e,t){return e.scopeValue("func",{ref:t,code:YZe[t.code]||(YZe[t.code]=new Vcn._Code(t.code))})}Rn.useFunc=$cn;var dse;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(dse||(Rn.Type=dse={}));function eun(e,t,n){if(e instanceof Wr.Name){let r=t===dse.Num;return n?r?(0,Wr._)`"[" + ${e} + "]"`:(0,Wr._)`"['" + ${e} + "']"`:r?(0,Wr._)`"/" + ${e}`:(0,Wr._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return n?(0,Wr.getProperty)(e).toString():"/"+fse(e)}Rn.getErrorPath=eun;function $Ze(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw new Error(t);e.self.logger.warn(t)}}Rn.checkStrictMode=$Ze});var Sd=w(hse=>{"use strict";Object.defineProperty(hse,"__esModule",{value:!0});var ic=Ot(),tun={data:new ic.Name("data"),valCxt:new ic.Name("valCxt"),instancePath:new ic.Name("instancePath"),parentData:new ic.Name("parentData"),parentDataProperty:new ic.Name("parentDataProperty"),rootData:new ic.Name("rootData"),dynamicAnchors:new ic.Name("dynamicAnchors"),vErrors:new ic.Name("vErrors"),errors:new ic.Name("errors"),this:new ic.Name("this"),self:new ic.Name("self"),scope:new ic.Name("scope"),json:new ic.Name("json"),jsonPos:new ic.Name("jsonPos"),jsonLen:new ic.Name("jsonLen"),jsonPart:new ic.Name("jsonPart")};hse.default=tun});var TC=w(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});sc.extendErrors=sc.resetErrorsCount=sc.reportExtraError=sc.reportError=sc.keyword$DataError=sc.keywordError=void 0;var Jn=Ot(),K2=pn(),zc=Sd();sc.keywordError={message:({keyword:e})=>(0,Jn.str)`must pass "${e}" keyword validation`};sc.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,Jn.str)`"${e}" keyword must be ${t} ($data)`:(0,Jn.str)`"${e}" keyword is invalid ($data)`};function nun(e,t=sc.keywordError,n,r){let{it:i}=e,{gen:s,compositeRule:o,allErrors:a}=i,c=n6e(e,t,n);r??(o||a)?e6e(s,c):t6e(i,(0,Jn._)`[${c}]`)}sc.reportError=nun;function run(e,t=sc.keywordError,n){let{it:r}=e,{gen:i,compositeRule:s,allErrors:o}=r,a=n6e(e,t,n);e6e(i,a),s||o||t6e(r,zc.default.vErrors)}sc.reportExtraError=run;function iun(e,t){e.assign(zc.default.errors,t),e.if((0,Jn._)`${zc.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,Jn._)`${zc.default.vErrors}.length`,t),()=>e.assign(zc.default.vErrors,null)))}sc.resetErrorsCount=iun;function sun({gen:e,keyword:t,schemaValue:n,data:r,errsCount:i,it:s}){if(i===void 0)throw new Error("ajv implementation error");let o=e.name("err");e.forRange("i",i,zc.default.errors,a=>{e.const(o,(0,Jn._)`${zc.default.vErrors}[${a}]`),e.if((0,Jn._)`${o}.instancePath === undefined`,()=>e.assign((0,Jn._)`${o}.instancePath`,(0,Jn.strConcat)(zc.default.instancePath,s.errorPath))),e.assign((0,Jn._)`${o}.schemaPath`,(0,Jn.str)`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign((0,Jn._)`${o}.schema`,n),e.assign((0,Jn._)`${o}.data`,r))})}sc.extendErrors=sun;function e6e(e,t){let n=e.const("err",t);e.if((0,Jn._)`${zc.default.vErrors} === null`,()=>e.assign(zc.default.vErrors,(0,Jn._)`[${n}]`),(0,Jn._)`${zc.default.vErrors}.push(${n})`),e.code((0,Jn._)`${zc.default.errors}++`)}function t6e(e,t){let{gen:n,validateName:r,schemaEnv:i}=e;i.$async?n.throw((0,Jn._)`new ${e.ValidationError}(${t})`):(n.assign((0,Jn._)`${r}.errors`,t),n.return(!1))}var U_={keyword:new Jn.Name("keyword"),schemaPath:new Jn.Name("schemaPath"),params:new Jn.Name("params"),propertyName:new Jn.Name("propertyName"),message:new Jn.Name("message"),schema:new Jn.Name("schema"),parentSchema:new Jn.Name("parentSchema")};function n6e(e,t,n){let{createErrors:r}=e.it;return r===!1?(0,Jn._)`{}`:oun(e,t,n)}function oun(e,t,n={}){let{gen:r,it:i}=e,s=[aun(i,n),cun(e,n)];return uun(e,t,s),r.object(...s)}function aun({errorPath:e},{instancePath:t}){let n=t?(0,Jn.str)`${e}${(0,K2.getErrorPath)(t,K2.Type.Str)}`:e;return[zc.default.instancePath,(0,Jn.strConcat)(zc.default.instancePath,n)]}function cun({keyword:e,it:{errSchemaPath:t}},{schemaPath:n,parentSchema:r}){let i=r?t:(0,Jn.str)`${t}/${e}`;return n&&(i=(0,Jn.str)`${i}${(0,K2.getErrorPath)(n,K2.Type.Str)}`),[U_.schemaPath,i]}function uun(e,{params:t,message:n},r){let{keyword:i,data:s,schemaValue:o,it:a}=e,{opts:c,propertyName:u,topSchemaRef:l,schemaPath:d}=a;r.push([U_.keyword,i],[U_.params,typeof t=="function"?t(e):t||(0,Jn._)`{}`]),c.messages&&r.push([U_.message,typeof n=="function"?n(e):n]),c.verbose&&r.push([U_.schema,o],[U_.parentSchema,(0,Jn._)`${l}${d}`],[zc.default.data,s]),u&&r.push([U_.propertyName,u])}});var i6e=w(Qw=>{"use strict";Object.defineProperty(Qw,"__esModule",{value:!0});Qw.boolOrEmptySchema=Qw.topBoolOrEmptySchema=void 0;var lun=TC(),dun=Ot(),fun=Sd(),pun={message:"boolean schema is false"};function hun(e){let{gen:t,schema:n,validateName:r}=e;n===!1?r6e(e,!1):typeof n=="object"&&n.$async===!0?t.return(fun.default.data):(t.assign((0,dun._)`${r}.errors`,null),t.return(!0))}Qw.topBoolOrEmptySchema=hun;function mun(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),r6e(e)):n.var(t,!0)}Qw.boolOrEmptySchema=mun;function r6e(e,t){let{gen:n,data:r}=e,i={gen:n,keyword:"false schema",data:r,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,lun.reportError)(i,pun,void 0,t)}});var mse=w($w=>{"use strict";Object.defineProperty($w,"__esModule",{value:!0});$w.getRules=$w.isJSONType=void 0;var gun=["string","number","integer","boolean","null","object","array"],yun=new Set(gun);function Sun(e){return typeof e=="string"&&yun.has(e)}$w.isJSONType=Sun;function bun(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}$w.getRules=bun});var gse=w(CS=>{"use strict";Object.defineProperty(CS,"__esModule",{value:!0});CS.shouldUseRule=CS.shouldUseGroup=CS.schemaHasRulesForType=void 0;function Eun({schema:e,self:t},n){let r=t.RULES.types[n];return r&&r!==!0&&s6e(e,r)}CS.schemaHasRulesForType=Eun;function s6e(e,t){return t.rules.some(n=>o6e(e,n))}CS.shouldUseGroup=s6e;function o6e(e,t){var n;return e[t.keyword]!==void 0||((n=t.definition.implements)===null||n===void 0?void 0:n.some(r=>e[r]!==void 0))}CS.shouldUseRule=o6e});var vC=w(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});oc.reportTypeError=oc.checkDataTypes=oc.checkDataType=oc.coerceAndCheckDataType=oc.getJSONTypes=oc.getSchemaTypes=oc.DataType=void 0;var _un=mse(),Tun=gse(),vun=TC(),hn=Ot(),a6e=pn(),ek;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ek||(oc.DataType=ek={}));function Run(e){let t=c6e(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}oc.getSchemaTypes=Run;function c6e(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(_un.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}oc.getJSONTypes=c6e;function Aun(e,t){let{gen:n,data:r,opts:i}=e,s=wun(t,i.coerceTypes),o=t.length>0&&!(s.length===0&&t.length===1&&(0,Tun.schemaHasRulesForType)(e,t[0]));if(o){let a=Sse(t,r,i.strictNumbers,ek.Wrong);n.if(a,()=>{s.length?kun(e,t,s):bse(e)})}return o}oc.coerceAndCheckDataType=Aun;var u6e=new Set(["string","number","integer","boolean","null"]);function wun(e,t){return t?e.filter(n=>u6e.has(n)||t==="array"&&n==="array"):[]}function kun(e,t,n){let{gen:r,data:i,opts:s}=e,o=r.let("dataType",(0,hn._)`typeof ${i}`),a=r.let("coerced",(0,hn._)`undefined`);s.coerceTypes==="array"&&r.if((0,hn._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0,hn._)`${i}[0]`).assign(o,(0,hn._)`typeof ${i}`).if(Sse(t,i,s.strictNumbers),()=>r.assign(a,i))),r.if((0,hn._)`${a} !== undefined`);for(let u of n)(u6e.has(u)||u==="array"&&s.coerceTypes==="array")&&c(u);r.else(),bse(e),r.endIf(),r.if((0,hn._)`${a} !== undefined`,()=>{r.assign(i,a),Iun(e,a)});function c(u){switch(u){case"string":r.elseIf((0,hn._)`${o} == "number" || ${o} == "boolean"`).assign(a,(0,hn._)`"" + ${i}`).elseIf((0,hn._)`${i} === null`).assign(a,(0,hn._)`""`);return;case"number":r.elseIf((0,hn._)`${o} == "boolean" || ${i} === null || (${o} == "string" && ${i} && ${i} == +${i})`).assign(a,(0,hn._)`+${i}`);return;case"integer":r.elseIf((0,hn._)`${o} === "boolean" || ${i} === null || (${o} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(a,(0,hn._)`+${i}`);return;case"boolean":r.elseIf((0,hn._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(a,!1).elseIf((0,hn._)`${i} === "true" || ${i} === 1`).assign(a,!0);return;case"null":r.elseIf((0,hn._)`${i} === "" || ${i} === 0 || ${i} === false`),r.assign(a,null);return;case"array":r.elseIf((0,hn._)`${o} === "string" || ${o} === "number" - || ${o} === "boolean" || ${i} === null`).assign(a,(0,hn._)`[${i}]`)}}}function Iun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function gse(e,t,n,r=ek.Correct){let i=r===ek.Correct?hn.operators.EQ:hn.operators.NEQ,s;switch(e){case"null":return(0,hn._)`${t} ${i} null`;case"array":s=(0,hn._)`Array.isArray(${t})`;break;case"object":s=(0,hn._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":s=o((0,hn._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":s=o();break;default:return(0,hn._)`typeof ${t} ${i} ${e}`}return r===ek.Correct?s:(0,hn.not)(s);function o(a=hn.nil){return(0,hn.and)((0,hn._)`typeof ${t} == "number"`,a,n?(0,hn._)`isFinite(${t})`:hn.nil)}}oc.checkDataType=gse;function yse(e,t,n,r){if(e.length===1)return gse(e[0],t,n,r);let i,s=(0,o6e.toHash)(e);if(s.array&&s.object){let o=(0,hn._)`typeof ${t} != "object"`;i=s.null?o:(0,hn._)`!${t} || ${o}`,delete s.null,delete s.array,delete s.object}else i=hn.nil;s.number&&delete s.integer;for(let o in s)i=(0,hn.and)(i,gse(o,t,n,r));return i}oc.checkDataTypes=yse;var xun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function Sse(e){let t=Oun(e);(0,vun.reportError)(t,xun)}oc.reportTypeError=Sse;function Oun(e){let{gen:t,data:n,schema:r}=e,i=(0,o6e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var l6e=w(W2=>{"use strict";Object.defineProperty(W2,"__esModule",{value:!0});W2.assignDefaults=void 0;var tk=Ot(),Pun=pn();function Nun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)u6e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>u6e(e,s,i.default))}W2.assignDefaults=Nun;function u6e(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,tk._)`${s}${(0,tk.getProperty)(t)}`;if(i){(0,Pun.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,tk._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,tk._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,tk._)`${a} = ${(0,tk.stringify)(n)}`)}});var Sa=w(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});Fr.validateUnion=Fr.validateArray=Fr.usePattern=Fr.callValidateCode=Fr.schemaProperties=Fr.allSchemaProperties=Fr.noPropertyInData=Fr.propertyInData=Fr.isOwnProperty=Fr.hasPropFunc=Fr.reportMissingProp=Fr.checkMissingProp=Fr.checkReportMissingProp=void 0;var gi=Ot(),bse=pn(),MS=Sd(),Cun=pn();function Mun(e,t){let{gen:n,data:r,it:i}=e;n.if(_se(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=Mun;function Dun({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(_se(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=Dun;function Lun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=Lun;function d6e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=d6e;function Ese(e,t,n){return(0,gi._)`${d6e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=Ese;function Uun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${Ese(e,t,n)}`:i}Fr.propertyInData=Uun;function _se(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(Ese(e,t,n))):i}Fr.noPropertyInData=_se;function f6e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=f6e;function Fun(e,t){return f6e(t).filter(n=>!(0,bse.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Fun;function jun({schemaCode:e,data:t,it:{gen:n,topSchemaRef:r,schemaPath:i,errorPath:s},it:o},a,c,u){let l=u?(0,gi._)`${e}, ${t}, ${r}${i}`:t,d=[[MS.default.instancePath,(0,gi.strConcat)(MS.default.instancePath,s)],[MS.default.parentData,o.parentData],[MS.default.parentDataProperty,o.parentDataProperty],[MS.default.rootData,MS.default.rootData]];o.opts.dynamicRef&&d.push([MS.default.dynamicAnchors,MS.default.dynamicAnchors]);let f=(0,gi._)`${l}, ${n.object(...d)}`;return c!==gi.nil?(0,gi._)`${a}.call(${c}, ${f})`:(0,gi._)`${a}(${f})`}Fr.callValidateCode=jun;var Hun=(0,gi._)`new RegExp`;function qun({gen:e,it:{opts:t}},n){let r=t.unicodeRegExp?"u":"",{regExp:i}=t.code,s=i(n,r);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,gi._)`${i.code==="new RegExp"?Hun:(0,Cun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=qun;function Bun(e){let{gen:t,data:n,keyword:r,it:i}=e,s=t.name("valid");if(i.allErrors){let a=t.let("valid",!0);return o(()=>t.assign(a,!1)),a}return t.var(s,!0),o(()=>t.break()),s;function o(a){let c=t.const("len",(0,gi._)`${n}.length`);t.forRange("i",0,c,u=>{e.subschema({keyword:r,dataProp:u,dataPropType:bse.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Bun;function zun(e){let{gen:t,schema:n,keyword:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(c=>(0,bse.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=t.let("valid",!1),a=t.name("_valid");t.block(()=>n.forEach((c,u)=>{let l=e.subschema({keyword:r,schemaProp:u,compositeRule:!0},a);t.assign(o,(0,gi._)`${o} || ${a}`),e.mergeValidEvaluated(l,a)||t.if((0,gi.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}Fr.validateUnion=zun});var m6e=w(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.validateKeywordUsage=fh.validSchemaType=fh.funcKeywordCode=fh.macroKeywordCode=void 0;var Gc=Ot(),F_=Sd(),Gun=Sa(),Vun=_C();function Wun(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=h6e(n,r,a);o.opts.validateSchema!==!1&&o.self.validateSchema(a,!0);let u=n.name("valid");e.subschema({schema:a,schemaPath:Gc.nil,errSchemaPath:`${o.errSchemaPath}/${r}`,topSchemaRef:c,compositeRule:!0},u),e.pass(u,()=>e.error(!0))}fh.macroKeywordCode=Wun;function Kun(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;Zun(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=h6e(r,i,u),d=r.let("valid");e.block$data(d,f),e.ok((n=t.valid)!==null&&n!==void 0?n:d);function f(){if(t.errors===!1)m(),t.modifying&&p6e(e),g(()=>e.error());else{let y=t.async?p():h();t.modifying&&p6e(e),g(()=>Yun(e,y))}}function p(){let y=r.let("ruleErrs",null);return r.try(()=>m((0,Gc._)`await `),b=>r.assign(d,!1).if((0,Gc._)`${b} instanceof ${c.ValidationError}`,()=>r.assign(y,(0,Gc._)`${b}.errors`),()=>r.throw(b))),y}function h(){let y=(0,Gc._)`${l}.errors`;return r.assign(y,null),m(Gc.nil),y}function m(y=t.async?(0,Gc._)`await `:Gc.nil){let b=c.opts.passContext?F_.default.this:F_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${y}${(0,Gun.callValidateCode)(e,l,b,S)}`,t.modifying)}function g(y){var b;r.if((0,Gc.not)((b=t.valid)!==null&&b!==void 0?b:d),y)}}fh.funcKeywordCode=Kun;function p6e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function Yun(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(F_.default.vErrors,(0,Gc._)`${F_.default.vErrors} === null ? ${t} : ${F_.default.vErrors}.concat(${t})`).assign(F_.default.errors,(0,Gc._)`${F_.default.vErrors}.length`),(0,Vun.extendErrors)(e)},()=>e.error())}function Zun({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function h6e(e,t,n){if(n===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof n=="function"?{ref:n}:{ref:n,code:(0,Gc.stringify)(n)})}function Jun(e,t,n=!1){return!t.length||t.some(r=>r==="array"?Array.isArray(e):r==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==r||n&&typeof e>"u")}fh.validSchemaType=Jun;function Xun({schema:e,opts:t,self:n,errSchemaPath:r},i,s){if(Array.isArray(i.keyword)?!i.keyword.includes(s):i.keyword!==s)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(a=>!Object.prototype.hasOwnProperty.call(e,a)))throw new Error(`parent schema must have dependencies of ${s}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[s])){let c=`keyword "${s}" value is invalid at path "${r}": `+n.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")n.logger.error(c);else throw new Error(c)}}fh.validateKeywordUsage=Xun});var y6e=w(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0});DS.extendSubschemaMode=DS.extendSubschemaData=DS.getSubschema=void 0;var ph=Ot(),g6e=pn();function Qun(e,{keyword:t,schemaProp:n,schema:r,schemaPath:i,errSchemaPath:s,topSchemaRef:o}){if(t!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let a=e.schema[t];return n===void 0?{schema:a,schemaPath:(0,ph._)`${e.schemaPath}${(0,ph.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:a[n],schemaPath:(0,ph._)`${e.schemaPath}${(0,ph.getProperty)(t)}${(0,ph.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,g6e.escapeFragment)(n)}`}}if(r!==void 0){if(i===void 0||s===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:r,schemaPath:i,topSchemaRef:o,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}DS.getSubschema=Qun;function $un(e,t,{dataProp:n,dataPropType:r,data:i,dataTypes:s,propertyName:o}){if(i!==void 0&&n!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=t;if(n!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=t,f=a.let("data",(0,ph._)`${t.data}${(0,ph.getProperty)(n)}`,!0);c(f),e.errorPath=(0,ph.str)`${u}${(0,g6e.getErrorPath)(n,r,d.jsPropertySyntax)}`,e.parentDataProperty=(0,ph._)`${n}`,e.dataPathArr=[...l,e.parentDataProperty]}if(i!==void 0){let u=i instanceof ph.Name?i:a.let("data",i,!0);c(u),o!==void 0&&(e.propertyName=o)}s&&(e.dataTypes=s);function c(u){e.data=u,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,u]}}DS.extendSubschemaData=$un;function eln(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:i,allErrors:s}){r!==void 0&&(e.compositeRule=r),i!==void 0&&(e.createErrors=i),s!==void 0&&(e.allErrors=s),e.jtdDiscriminator=t,e.jtdMetadata=n}DS.extendSubschemaMode=eln});var vC=w((bVr,S6e)=>{"use strict";S6e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(s=Object.keys(t),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}});var E6e=w((EVr,b6e)=>{"use strict";var LS=b6e.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),n=t.cb||n;var r=typeof n=="function"?n:n.pre||function(){},i=n.post||function(){};K2(t,r,i,e,"",e)};LS.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};LS.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};LS.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};LS.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function K2(e,t,n,r,i,s,o,a,c,u){if(r&&typeof r=="object"&&!Array.isArray(r)){t(r,i,s,o,a,c,u);for(var l in r){var d=r[l];if(Array.isArray(d)){if(l in LS.arrayKeywords)for(var f=0;f{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.getSchemaRefs=Au.resolveUrl=Au.normalizeId=Au._getFullPath=Au.getFullPath=Au.inlineRef=void 0;var nln=pn(),rln=vC(),iln=E6e(),sln=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function oln(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Tse(e):t?_6e(e)<=t:!1}Au.inlineRef=oln;var aln=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Tse(e){for(let t in e){if(aln.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(Tse)||typeof n=="object"&&Tse(n))return!0}return!1}function _6e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!sln.has(n)&&(typeof e[n]=="object"&&(0,nln.eachItem)(e[n],r=>t+=_6e(r)),t===1/0))return 1/0}return t}function T6e(e,t="",n){n!==!1&&(t=nk(t));let r=e.parse(t);return v6e(e,r)}Au.getFullPath=T6e;function v6e(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=v6e;var cln=/#\/?$/;function nk(e){return e?e.replace(cln,""):""}Au.normalizeId=nk;function uln(e,t,n){return n=nk(n),e.resolve(t,n)}Au.resolveUrl=uln;var lln=/^[a-z_][-a-z0-9._]*$/i;function dln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=nk(e[n]||t),s={"":i},o=T6e(r,i,!1),a={},c=new Set;return iln(e,{allKeys:!0},(d,f,p,h)=>{if(h===void 0)return;let m=o+f,g=s[h];typeof d[n]=="string"&&(g=y.call(this,d[n])),b.call(this,d.$anchor),b.call(this,d.$dynamicAnchor),s[f]=g;function y(S){let E=this.opts.uriResolver.resolve;if(S=nk(g?E(g,S):S),c.has(S))throw l(S);c.add(S);let _=this.refs[S];return typeof _=="string"&&(_=this.refs[_]),typeof _=="object"?u(d,_.schema,S):S!==nk(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function b(S){if(typeof S=="string"){if(!lln.test(S))throw new Error(`invalid anchor "${S}"`);y.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!rln(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=dln});var rk=w(US=>{"use strict";Object.defineProperty(US,"__esModule",{value:!0});US.getData=US.KeywordCxt=US.validateFunctionCode=void 0;var I6e=r6e(),R6e=TC(),Rse=mse(),Y2=TC(),fln=l6e(),wC=m6e(),vse=y6e(),pt=Ot(),Xt=Sd(),pln=RC(),Km=pn(),AC=_C();function hln(e){if(P6e(e)&&(N6e(e),O6e(e))){yln(e);return}x6e(e,()=>(0,I6e.topBoolOrEmptySchema)(e))}US.validateFunctionCode=hln;function x6e({gen:e,validateName:t,schema:n,schemaEnv:r,opts:i},s){i.code.es5?e.func(t,(0,pt._)`${Xt.default.data}, ${Xt.default.valCxt}`,r.$async,()=>{e.code((0,pt._)`"use strict"; ${A6e(n,i)}`),gln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${mln(i)}`,r.$async,()=>e.code(A6e(n,i)).code(s))}function mln(e){return(0,pt._)`{${Xt.default.instancePath}="", ${Xt.default.parentData}, ${Xt.default.parentDataProperty}, ${Xt.default.rootData}=${Xt.default.data}${e.dynamicRef?(0,pt._)`, ${Xt.default.dynamicAnchors}={}`:pt.nil}}={}`}function gln(e,t){e.if(Xt.default.valCxt,()=>{e.var(Xt.default.instancePath,(0,pt._)`${Xt.default.valCxt}.${Xt.default.instancePath}`),e.var(Xt.default.parentData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentData}`),e.var(Xt.default.parentDataProperty,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentDataProperty}`),e.var(Xt.default.rootData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.rootData}`),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`${Xt.default.valCxt}.${Xt.default.dynamicAnchors}`)},()=>{e.var(Xt.default.instancePath,(0,pt._)`""`),e.var(Xt.default.parentData,(0,pt._)`undefined`),e.var(Xt.default.parentDataProperty,(0,pt._)`undefined`),e.var(Xt.default.rootData,Xt.default.data),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`{}`)})}function yln(e){let{schema:t,opts:n,gen:r}=e;x6e(e,()=>{n.$comment&&t.$comment&&M6e(e),Tln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&Sln(e),C6e(e),Aln(e)})}function Sln(e){let{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",(0,pt._)`${n}.evaluated`),t.if((0,pt._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,pt._)`${e.evaluated}.props`,(0,pt._)`undefined`)),t.if((0,pt._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,pt._)`${e.evaluated}.items`,(0,pt._)`undefined`))}function A6e(e,t){let n=typeof e=="object"&&e[t.schemaId];return n&&(t.code.source||t.code.process)?(0,pt._)`/*# sourceURL=${n} */`:pt.nil}function bln(e,t){if(P6e(e)&&(N6e(e),O6e(e))){Eln(e,t);return}(0,I6e.boolOrEmptySchema)(e,t)}function O6e({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let n in e)if(t.RULES.all[n])return!0;return!1}function P6e(e){return typeof e.schema!="boolean"}function Eln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&M6e(e),vln(e),Rln(e);let s=r.const("_errs",Xt.default.errors);C6e(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function N6e(e){(0,Km.checkUnknownRules)(e),_ln(e)}function C6e(e,t){if(e.opts.jtd)return w6e(e,[],!1,t);let n=(0,R6e.getSchemaTypes)(e.schema),r=(0,R6e.coerceAndCheckDataType)(e,n);w6e(e,n,!r,t)}function _ln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Km.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function Tln(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,Km.checkStrictMode)(e,"default is ignored in the schema root")}function vln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,pln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Rln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function M6e({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:i}){let s=n.$comment;if(i.$comment===!0)e.code((0,pt._)`${Xt.default.self}.logger.log(${s})`);else if(typeof i.$comment=="function"){let o=(0,pt.str)`${r}/$comment`,a=e.scopeValue("root",{ref:t.root});e.code((0,pt._)`${Xt.default.self}.opts.$comment(${s}, ${o}, ${a}.schema)`)}}function Aln(e){let{gen:t,schemaEnv:n,validateName:r,ValidationError:i,opts:s}=e;n.$async?t.if((0,pt._)`${Xt.default.errors} === 0`,()=>t.return(Xt.default.data),()=>t.throw((0,pt._)`new ${i}(${Xt.default.vErrors})`)):(t.assign((0,pt._)`${r}.errors`,Xt.default.vErrors),s.unevaluated&&wln(e),t.return((0,pt._)`${Xt.default.errors} === 0`))}function wln({gen:e,evaluated:t,props:n,items:r}){n instanceof pt.Name&&e.assign((0,pt._)`${t}.props`,n),r instanceof pt.Name&&e.assign((0,pt._)`${t}.items`,r)}function w6e(e,t,n,r){let{gen:i,schema:s,data:o,allErrors:a,opts:c,self:u}=e,{RULES:l}=u;if(s.$ref&&(c.ignoreKeywordsWithRef||!(0,Km.schemaHasRulesButRef)(s,l))){i.block(()=>L6e(e,"$ref",l.all.$ref.definition));return}c.jtd||kln(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,Rse.shouldUseGroup)(s,f)&&(f.type?(i.if((0,Y2.checkDataType)(f.type,o,c.strictNumbers)),k6e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,Y2.reportTypeError)(e)),i.endIf()):k6e(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function k6e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,fln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Rse.shouldUseRule)(r,s)&&L6e(e,s.keyword,s.definition,t.type)})}function kln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Iln(e,t),e.opts.allowUnionTypes||xln(e,t),Oln(e,e.dataTypes))}function Iln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{D6e(e.dataTypes,n)||Ase(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),Nln(e,t)}}function xln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ase(e,"use allowUnionTypes to allow union type keyword")}function Oln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,Rse.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>Pln(t,o))&&Ase(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function Pln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function D6e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Nln(e,t){let n=[];for(let r of e.dataTypes)D6e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function Ase(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Km.checkStrictMode)(e,t,e.opts.strictTypes)}var Z2=class{constructor(t,n,r){if((0,wC.validateKeywordUsage)(t,n,r),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=r,this.data=t.data,this.schema=t.schema[r],this.$data=n.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Km.schemaRefOrVal)(t,this.schema,r,this.$data),this.schemaType=n.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=n,this.$data)this.schemaCode=t.gen.const("vSchema",U6e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,wC.validSchemaType)(this.schema,n.schemaType,n.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(n.schemaType)}`);("code"in n?n.trackErrors:n.errors!==!1)&&(this.errsCount=t.gen.const("_errs",Xt.default.errors))}result(t,n,r){this.failResult((0,pt.not)(t),n,r)}failResult(t,n,r){this.gen.if(t),r?r():this.error(),n?(this.gen.else(),n(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,n){this.failResult((0,pt.not)(t),void 0,n)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:n}=this;this.fail((0,pt._)`${n} !== undefined && (${(0,pt.or)(this.invalid$data(),t)})`)}error(t,n,r){if(n){this.setParams(n),this._error(t,r),this.setParams({});return}this._error(t,r)}_error(t,n){(t?AC.reportExtraError:AC.reportError)(this,this.def.error,n)}$dataError(){(0,AC.reportError)(this,this.def.$dataError||AC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,AC.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,n){n?Object.assign(this.params,t):this.params=t}block$data(t,n,r=pt.nil){this.gen.block(()=>{this.check$data(t,r),n()})}check$data(t=pt.nil,n=pt.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:s,def:o}=this;r.if((0,pt.or)((0,pt._)`${i} === undefined`,n)),t!==pt.nil&&r.assign(t,!0),(s.length||o.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),t!==pt.nil&&r.assign(t,!1)),r.else()}invalid$data(){let{gen:t,schemaCode:n,schemaType:r,def:i,it:s}=this;return(0,pt.or)(o(),a());function o(){if(r.length){if(!(n instanceof pt.Name))throw new Error("ajv implementation error");let c=Array.isArray(r)?r:[r];return(0,pt._)`${(0,Y2.checkDataTypes)(c,n,s.opts.strictNumbers,Y2.DataType.Wrong)}`}return pt.nil}function a(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,pt._)`!${c}(${n})`}return pt.nil}}subschema(t,n){let r=(0,vse.getSubschema)(this.it,t);(0,vse.extendSubschemaData)(r,this.it,t),(0,vse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return bln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Km.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Km.mergeEvaluated.items(i,t.items,r.items,n)))}mergeValidEvaluated(t,n){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==!0||r.items!==!0))return i.if(n,()=>this.mergeEvaluated(t,pt.Name)),!0}};US.KeywordCxt=Z2;function L6e(e,t,n,r){let i=new Z2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,wC.funcKeywordCode)(i,n):"macro"in n?(0,wC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,wC.funcKeywordCode)(i,n)}var Cln=/^\/(?:[^~]|~0|~1)*$/,Mln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function U6e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!Cln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=Mln.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+u[1];if(i=u[2],i==="#"){if(l>=t)throw new Error(c("property/index",l));return r[t-l]}if(l>t)throw new Error(c("data",l));if(s=n[t-l],!i)return s}let o=s,a=i.split("/");for(let u of a)u&&(s=(0,pt._)`${s}${(0,pt.getProperty)((0,Km.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}US.getData=U6e});var kC=w(kse=>{"use strict";Object.defineProperty(kse,"__esModule",{value:!0});var wse=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};kse.default=wse});var Ym=w(Ose=>{"use strict";Object.defineProperty(Ose,"__esModule",{value:!0});var Ise=RC(),xse=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,Ise.resolveUrl)(t,n,r),this.missingSchema=(0,Ise.normalizeId)((0,Ise.getFullPath)(t,this.missingRef))}};Ose.default=xse});var H_=w(bd=>{"use strict";Object.defineProperty(bd,"__esModule",{value:!0});bd.resolveSchema=bd.getCompilingSchema=bd.resolveRef=bd.compileSchema=bd.SchemaEnv=void 0;var Af=Ot(),Dln=kC(),j_=Sd(),wf=RC(),F6e=pn(),Lln=rk(),ik=class{constructor(t){var n;this.refs={},this.dynamicAnchors={};let r;typeof t.schema=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,wf.normalizeId)(r?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r?.$async,this.refs={}}};bd.SchemaEnv=ik;function Nse(e){let t=j6e.call(this,e);if(t)return t;let n=(0,wf.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new Af.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a;e.$async&&(a=o.scopeValue("Error",{ref:Dln.default,code:(0,Af._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:j_.default.data,parentData:j_.default.parentData,parentDataProperty:j_.default.parentDataProperty,dataNames:[j_.default.data],dataPathArr:[Af.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,Af.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:Af.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Af._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,Lln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(j_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${j_.default.self}`,`${j_.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=e.schema,p.schemaEnv=e,e.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:d,scopeValues:o._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof Af.Name?void 0:h,items:m instanceof Af.Name?void 0:m,dynamicProps:h instanceof Af.Name,dynamicItems:m instanceof Af.Name},p.source&&(p.source.evaluated=(0,Af.stringify)(p.evaluated))}return e.validate=p,e}catch(d){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(e)}}bd.compileSchema=Nse;function Uln(e,t,n){var r;n=(0,wf.resolveUrl)(this.opts.uriResolver,t,n);let i=e.refs[n];if(i)return i;let s=Hln.call(this,e,n);if(s===void 0){let o=(r=e.localRefs)===null||r===void 0?void 0:r[n],{schemaId:a}=this.opts;o&&(s=new ik({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Fln.call(this,s)}bd.resolveRef=Uln;function Fln(e){return(0,wf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Nse.call(this,e)}function j6e(e){for(let t of this._compilations)if(jln(t,e))return t}bd.getCompilingSchema=j6e;function jln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Hln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||J2.call(this,e,t)}function J2(e,t){let n=this.opts.uriResolver.parse(t),r=(0,wf._getFullPath)(this.opts.uriResolver,n),i=(0,wf.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===i)return Pse.call(this,n,e);let s=(0,wf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=J2.call(this,e,o);return typeof a?.schema!="object"?void 0:Pse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||Nse.call(this,o),s===(0,wf.normalizeId)(t)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(i=(0,wf.resolveUrl)(this.opts.uriResolver,i,u)),new ik({schema:a,schemaId:c,root:e,baseId:i})}return Pse.call(this,n,o)}}bd.resolveSchema=J2;var qln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Pse(e,{baseId:t,schema:n,root:r}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let a of e.fragment.slice(1).split("/")){if(typeof n=="boolean")return;let c=n[(0,F6e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!qln.has(a)&&u&&(t=(0,wf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,F6e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,wf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=J2.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new ik({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var H6e=w((wVr,Bln)=>{Bln.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var Mse=w((kVr,G6e)=>{"use strict";var zln=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),B6e=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function Cse(e){let t="",n=0,r=0;for(r=0;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r];break}for(r+=1;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r]}return t}var Gln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function q6e(e){return e.length=0,!0}function Vln(e,t,n){if(e.length){let r=Cse(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function Wln(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=Vln;for(let c=0;c7){n.error=!0;break}c>0&&e[c-1]===":"&&(s=!0),r.push(":");continue}else if(u==="%"){if(!a(i,r,n))break;a=q6e}else{i.push(u);continue}}return i.length&&(a===q6e?n.zone=i.join(""):o?r.push(i.join("")):r.push(Cse(i))),n.address=r.join(""),n}function z6e(e){if(Kln(e,":")<2)return{host:e,isIPV6:!1};let t=Wln(e);if(t.error)return{host:e,isIPV6:!1};{let n=t.address,r=t.address;return t.zone&&(n+="%"+t.zone,r+="%25"+t.zone),{host:n,isIPV6:!0,escapedHost:r}}}function Kln(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:Xln}=Mse(),Qln=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,$ln=["http","https","ws","wss","urn","urn:uuid"];function edn(e){return $ln.indexOf(e)!==-1}function Dse(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function V6e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function W6e(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function tdn(e){return e.secure=Dse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function ndn(e){if((e.port===(Dse(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,n]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}function rdn(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(Qln);if(n){let r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];let i=`${r}:${t.nid||e.nid}`,s=Lse(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function idn(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let n=t.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),i=`${n}:${t.nid||r}`,s=Lse(i);s&&(e=s.serialize(e,t));let o=e,a=e.nss;return o.path=`${r||t.nid}:${a}`,t.skipEscape=!0,o}function sdn(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!Xln(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function odn(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var K6e={scheme:"http",domainHost:!0,parse:V6e,serialize:W6e},adn={scheme:"https",domainHost:K6e.domainHost,parse:V6e,serialize:W6e},X2={scheme:"ws",domainHost:!0,parse:tdn,serialize:ndn},cdn={scheme:"wss",domainHost:X2.domainHost,parse:X2.parse,serialize:X2.serialize},udn={scheme:"urn",parse:rdn,serialize:idn,skipNormalize:!0},ldn={scheme:"urn:uuid",parse:sdn,serialize:odn,skipNormalize:!0},Q2={http:K6e,https:adn,ws:X2,wss:cdn,urn:udn,"urn:uuid":ldn};Object.setPrototypeOf(Q2,null);function Lse(e){return e&&(Q2[e]||Q2[e.toLowerCase()])||void 0}Y6e.exports={wsIsSecure:Dse,SCHEMES:Q2,isValidSchemeName:edn,getSchemeHandler:Lse}});var tV=w((xVr,eV)=>{"use strict";var{normalizeIPv6:ddn,removeDotSegments:IC,recomposeAuthority:fdn,normalizeComponentEncoding:$2,isIPv4:pdn,nonSimpleDomain:hdn}=Mse(),{SCHEMES:mdn,getSchemeHandler:J6e}=Z6e();function gdn(e,t){return typeof e=="string"?e=hh(Zm(e,t),t):typeof e=="object"&&(e=Zm(hh(e,t),t)),e}function ydn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=X6e(Zm(e,r),Zm(t,r),r,!0);return r.skipEscape=!0,hh(i,r)}function X6e(e,t,n,r){let i={};return r||(e=Zm(hh(e,n),n),t=Zm(hh(t,n),n)),n=n||{},!n.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=IC(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=IC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=IC(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=IC(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Sdn(e,t,n){return typeof e=="string"?(e=unescape(e),e=hh($2(Zm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=hh($2(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=hh($2(Zm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=hh($2(t,!0),{...n,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function hh(e,t){let n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},t),i=[],s=J6e(r.scheme||n.scheme);s&&s.serialize&&s.serialize(n,r),n.path!==void 0&&(r.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),n.scheme!==void 0&&(n.path=n.path.split("%3A").join(":")))),r.reference!=="suffix"&&n.scheme&&i.push(n.scheme,":");let o=fdn(n);if(o!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(o),n.path&&n.path[0]!=="/"&&i.push("/")),n.path!==void 0){let a=n.path;!r.absolutePath&&(!s||!s.absolutePath)&&(a=IC(a)),o===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),i.push(a)}return n.query!==void 0&&i.push("?",n.query),n.fragment!==void 0&&i.push("#",n.fragment),i.join("")}var bdn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Zm(e,t){let n=Object.assign({},t),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1;n.reference==="suffix"&&(n.scheme?e=n.scheme+":"+e:e="//"+e);let s=e.match(bdn);if(s){if(r.scheme=s[1],r.userinfo=s[3],r.host=s[4],r.port=parseInt(s[5],10),r.path=s[6]||"",r.query=s[7],r.fragment=s[8],isNaN(r.port)&&(r.port=s[5]),r.host)if(pdn(r.host)===!1){let c=ddn(r.host);r.host=c.host.toLowerCase(),i=c.isIPV6}else i=!0;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",n.reference&&n.reference!=="suffix"&&n.reference!==r.reference&&(r.error=r.error||"URI is not a "+n.reference+" reference.");let o=J6e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&hdn(r.host))try{r.host=URL.domainToASCII(r.host.toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to ASCII: "+a}(!o||o&&!o.skipNormalize)&&(e.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=unescape(r.host))),r.path&&(r.path=escape(unescape(r.path))),r.fragment&&(r.fragment=encodeURI(decodeURIComponent(r.fragment)))),o&&o.parse&&o.parse(r,n)}else r.error=r.error||"URI can not be parsed.";return r}var Use={SCHEMES:mdn,normalize:gdn,resolve:ydn,resolveComponent:X6e,equal:Sdn,serialize:hh,parse:Zm};eV.exports=Use;eV.exports.default=Use;eV.exports.fastUri=Use});var $6e=w(Fse=>{"use strict";Object.defineProperty(Fse,"__esModule",{value:!0});var Q6e=tV();Q6e.code='require("ajv/dist/runtime/uri").default';Fse.default=Q6e});var qse=w(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.CodeGen=ba.Name=ba.nil=ba.stringify=ba.str=ba._=ba.KeywordCxt=void 0;var Edn=rk();Object.defineProperty(ba,"KeywordCxt",{enumerable:!0,get:function(){return Edn.KeywordCxt}});var sk=Ot();Object.defineProperty(ba,"_",{enumerable:!0,get:function(){return sk._}});Object.defineProperty(ba,"str",{enumerable:!0,get:function(){return sk.str}});Object.defineProperty(ba,"stringify",{enumerable:!0,get:function(){return sk.stringify}});Object.defineProperty(ba,"nil",{enumerable:!0,get:function(){return sk.nil}});Object.defineProperty(ba,"Name",{enumerable:!0,get:function(){return sk.Name}});Object.defineProperty(ba,"CodeGen",{enumerable:!0,get:function(){return sk.CodeGen}});var _dn=kC(),i5e=Ym(),Tdn=hse(),xC=H_(),vdn=Ot(),OC=RC(),nV=TC(),Hse=pn(),e5e=H6e(),Rdn=$6e(),s5e=(e,t)=>new RegExp(e,t);s5e.code="new RegExp";var Adn=["removeAdditional","useDefaults","coerceTypes"],wdn=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),kdn={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Idn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},t5e=200;function xdn(e){var t,n,r,i,s,o,a,c,u,l,d,f,p,h,m,g,y,b,S,E,_,T,R,A,x;let k=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,N=P===!0||P===void 0?1:P||0,C=(r=(n=e.code)===null||n===void 0?void 0:n.regExp)!==null&&r!==void 0?r:s5e,L=(i=e.uriResolver)!==null&&i!==void 0?i:Rdn.default;return{strictSchema:(o=(s=e.strictSchema)!==null&&s!==void 0?s:k)!==null&&o!==void 0?o:!0,strictNumbers:(c=(a=e.strictNumbers)!==null&&a!==void 0?a:k)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=e.strictTypes)!==null&&u!==void 0?u:k)!==null&&l!==void 0?l:"log",strictTuples:(f=(d=e.strictTuples)!==null&&d!==void 0?d:k)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=e.strictRequired)!==null&&p!==void 0?p:k)!==null&&h!==void 0?h:!1,code:e.code?{...e.code,optimize:N,regExp:C}:{optimize:N,regExp:C},loopRequired:(m=e.loopRequired)!==null&&m!==void 0?m:t5e,loopEnum:(g=e.loopEnum)!==null&&g!==void 0?g:t5e,meta:(y=e.meta)!==null&&y!==void 0?y:!0,messages:(b=e.messages)!==null&&b!==void 0?b:!0,inlineRefs:(S=e.inlineRefs)!==null&&S!==void 0?S:!0,schemaId:(E=e.schemaId)!==null&&E!==void 0?E:"$id",addUsedSchema:(_=e.addUsedSchema)!==null&&_!==void 0?_:!0,validateSchema:(T=e.validateSchema)!==null&&T!==void 0?T:!0,validateFormats:(R=e.validateFormats)!==null&&R!==void 0?R:!0,unicodeRegExp:(A=e.unicodeRegExp)!==null&&A!==void 0?A:!0,int32range:(x=e.int32range)!==null&&x!==void 0?x:!0,uriResolver:L}}var PC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...xdn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new vdn.ValueScope({scope:{},prefixes:wdn,es5:n,lines:r}),this.logger=Ddn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,Tdn.getRules)(),n5e.call(this,kdn,t,"NOT SUPPORTED"),n5e.call(this,Idn,t,"DEPRECATED","warn"),this._metaOpts=Cdn.call(this),t.formats&&Pdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Ndn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Odn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=e5e;r==="id"&&(i={...e5e},i.id=i.$id,delete i.$id),n&&t&&this.addMetaSchema(i,i[r],!1)}defaultMeta(){let{meta:t,schemaId:n}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[n]||t:void 0}validate(t,n){let r;if(typeof t=="string"){if(r=this.getSchema(t),!r)throw new Error(`no schema with key or ref "${t}"`)}else r=this.compile(t);let i=r(n);return"$async"in r||(this.errors=r.errors),i}compile(t,n){let r=this._addSchema(t,n);return r.validate||this._compileSchemaEnv(r)}compileAsync(t,n){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,t,n);async function i(l,d){await s.call(this,l.$schema);let f=this._addSchema(l,d);return f.validate||o.call(this,f)}async function s(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof i5e.default))throw d;return a.call(this,d),await c.call(this,d.missingSchema),o.call(this,l)}}function a({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await s.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,n)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=r(l))}finally{delete this._loading[l]}}}addSchema(t,n,r,i=this.opts.validateSchema){if(Array.isArray(t)){for(let o of t)this.addSchema(o,void 0,r,i);return this}let s;if(typeof t=="object"){let{schemaId:o}=this.opts;if(s=t[o],s!==void 0&&typeof s!="string")throw new Error(`schema ${o} must be string`)}return n=(0,OC.normalizeId)(n||s),this._checkUnique(n),this.schemas[n]=this._addSchema(t,r,n,i,!0),this}addMetaSchema(t,n,r=this.opts.validateSchema){return this.addSchema(t,n,!0,r),this}validateSchema(t,n){if(typeof t=="boolean")return!0;let r;if(r=t.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(r,t);if(!i&&n){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return i}getSchema(t){let n;for(;typeof(n=r5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new xC.SchemaEnv({schema:{},schemaId:r});if(n=xC.resolveSchema.call(this,i,t),!n)return;this.refs[t]=n}return n.validate||this._compileSchemaEnv(n)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let n=r5e.call(this,t);return typeof n=="object"&&this._cache.delete(n.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let n=t;this._cache.delete(n);let r=t[this.opts.schemaId];return r&&(r=(0,OC.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let n of t)this.addKeyword(n);return this}addKeyword(t,n){let r;if(typeof t=="string")r=t,typeof n=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),n.keyword=r);else if(typeof t=="object"&&n===void 0){if(n=t,r=n.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Udn.call(this,r,n),!n)return(0,Hse.eachItem)(r,s=>jse.call(this,s)),this;jdn.call(this,n);let i={...n,type:(0,nV.getJSONTypes)(n.type),schemaType:(0,nV.getJSONTypes)(n.schemaType)};return(0,Hse.eachItem)(r,i.type.length===0?s=>jse.call(this,s,i):s=>i.type.forEach(o=>jse.call(this,s,i,o))),this}getKeyword(t){let n=this.RULES.all[t];return typeof n=="object"?n.definition:!!n}removeKeyword(t){let{RULES:n}=this;delete n.keywords[t],delete n.all[t];for(let r of n.rules){let i=r.rules.findIndex(s=>s.keyword===t);i>=0&&r.rules.splice(i,1)}return this}addFormat(t,n){return typeof n=="string"&&(n=new RegExp(n)),this.formats[t]=n,this}errorsText(t=this.errors,{separator:n=", ",dataVar:r="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,s)=>i+n+s)}$dataMetaSchema(t,n){let r=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of n){let s=i.split("/").slice(1),o=t;for(let a of s)o=o[a];for(let a in r){let c=r[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[a];u&&l&&(o[a]=o5e(l))}}return t}_removeAllSchemas(t,n){for(let r in t){let i=t[r];(!n||n.test(r))&&(typeof i=="string"?delete t[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[r]))}}_addSchema(t,n,r,i=this.opts.validateSchema,s=this.opts.addUsedSchema){let o,{schemaId:a}=this.opts;if(typeof t=="object")o=t[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;r=(0,OC.normalizeId)(o||r);let u=OC.getSchemaRefs.call(this,t,r);return c=new xC.SchemaEnv({schema:t,schemaId:a,meta:n,baseId:r,localRefs:u}),this._cache.set(c.schema,c),s&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):xC.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let n=this.opts;this.opts=this._metaOpts;try{xC.compileSchema.call(this,t)}finally{this.opts=n}}};PC.ValidationError=_dn.default;PC.MissingRefError=i5e.default;ba.default=PC;function n5e(e,t,n,r="error"){for(let i in e){let s=i;s in t&&this.logger[r](`${n}: option ${i}. ${e[s]}`)}}function r5e(e){return e=(0,OC.normalizeId)(e),this.schemas[e]||this.refs[e]}function Odn(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function Pdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Ndn(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}function Cdn(){let e={...this.opts};for(let t of Adn)delete e[t];return e}var Mdn={log(){},warn(){},error(){}};function Ddn(e){if(e===!1)return Mdn;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Ldn=/^[a-z_$][a-z0-9_$:-]*$/i;function Udn(e,t){let{RULES:n}=this;if((0,Hse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!Ldn.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function jse(e,t,n){var r;let i=t?.post;if(n&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,o=i?s.post:s.rules.find(({type:c})=>c===n);if(o||(o={type:n,rules:[]},s.rules.push(o)),s.keywords[e]=!0,!t)return;let a={keyword:e,definition:{...t,type:(0,nV.getJSONTypes)(t.type),schemaType:(0,nV.getJSONTypes)(t.schemaType)}};t.before?Fdn.call(this,o,a,t.before):o.rules.push(a),s.all[e]=a,(r=t.implements)===null||r===void 0||r.forEach(c=>this.addKeyword(c))}function Fdn(e,t,n){let r=e.rules.findIndex(i=>i.keyword===n);r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function jdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=o5e(t)),e.validateSchema=this.compile(t,!0))}var Hdn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function o5e(e){return{anyOf:[e,Hdn]}}});var a5e=w(Bse=>{"use strict";Object.defineProperty(Bse,"__esModule",{value:!0});var qdn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Bse.default=qdn});var zse=w(q_=>{"use strict";Object.defineProperty(q_,"__esModule",{value:!0});q_.callRef=q_.getValidate=void 0;var Bdn=Ym(),c5e=Sa(),wu=Ot(),ok=Sd(),u5e=H_(),rV=pn(),zdn={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:n,it:r}=e,{baseId:i,schemaEnv:s,validateName:o,opts:a,self:c}=r,{root:u}=s;if((n==="#"||n==="#/")&&i===u.baseId)return d();let l=u5e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Bdn.default(r.opts.uriResolver,i,n);if(l instanceof u5e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return iV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return iV(e,(0,wu._)`${h}.validate`,u,u.$async)}function f(h){let m=l5e(e,h);iV(e,m,h,h.$async)}function p(h){let m=t.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,wu.stringify)(h)}:{ref:h}),g=t.name("valid"),y=e.subschema({schema:h,dataTypes:[],schemaPath:wu.nil,topSchemaRef:m,errSchemaPath:n},g);e.mergeEvaluated(y),e.ok(g)}}};function l5e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,wu._)`${n.scopeValue("wrapper",{ref:t})}.validate`}q_.getValidate=l5e;function iV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?ok.default.this:wu.nil;r?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=i.let("valid");i.try(()=>{i.code((0,wu._)`await ${(0,c5e.callValidateCode)(e,t,u)}`),p(t),o||i.assign(h,!0)},m=>{i.if((0,wu._)`!(${m} instanceof ${s.ValidationError})`,()=>i.throw(m)),f(m),o||i.assign(h,!1)}),e.ok(h)}function d(){e.result((0,c5e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,wu._)`${h}.errors`;i.assign(ok.default.vErrors,(0,wu._)`${ok.default.vErrors} === null ? ${m} : ${ok.default.vErrors}.concat(${m})`),i.assign(ok.default.errors,(0,wu._)`${ok.default.vErrors}.length`)}function p(h){var m;if(!s.opts.unevaluated)return;let g=(m=n?.validate)===null||m===void 0?void 0:m.evaluated;if(s.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(s.props=rV.mergeEvaluated.props(i,g.props,s.props));else{let y=i.var("props",(0,wu._)`${h}.evaluated.props`);s.props=rV.mergeEvaluated.props(i,y,s.props,wu.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=rV.mergeEvaluated.items(i,g.items,s.items));else{let y=i.var("items",(0,wu._)`${h}.evaluated.items`);s.items=rV.mergeEvaluated.items(i,y,s.items,wu.Name)}}}q_.callRef=iV;q_.default=zdn});var d5e=w(Gse=>{"use strict";Object.defineProperty(Gse,"__esModule",{value:!0});var Gdn=a5e(),Vdn=zse(),Wdn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Gdn.default,Vdn.default];Gse.default=Wdn});var f5e=w(Vse=>{"use strict";Object.defineProperty(Vse,"__esModule",{value:!0});var sV=Ot(),FS=sV.operators,oV={maximum:{okStr:"<=",ok:FS.LTE,fail:FS.GT},minimum:{okStr:">=",ok:FS.GTE,fail:FS.LT},exclusiveMaximum:{okStr:"<",ok:FS.LT,fail:FS.GTE},exclusiveMinimum:{okStr:">",ok:FS.GT,fail:FS.LTE}},Kdn={message:({keyword:e,schemaCode:t})=>(0,sV.str)`must be ${oV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,sV._)`{comparison: ${oV[e].okStr}, limit: ${t}}`},Ydn={keyword:Object.keys(oV),type:"number",schemaType:"number",$data:!0,error:Kdn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,sV._)`${n} ${oV[t].fail} ${r} || isNaN(${n})`)}};Vse.default=Ydn});var p5e=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var NC=Ot(),Zdn={message:({schemaCode:e})=>(0,NC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,NC._)`{multipleOf: ${e}}`},Jdn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Zdn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,NC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,NC._)`${o} !== parseInt(${o})`;e.fail$data((0,NC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Wse.default=Jdn});var m5e=w(Kse=>{"use strict";Object.defineProperty(Kse,"__esModule",{value:!0});function h5e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Yse,"__esModule",{value:!0});var B_=Ot(),Xdn=pn(),Qdn=m5e(),$dn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,B_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,B_._)`{limit: ${e}}`},efn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:$dn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?B_.operators.GT:B_.operators.LT,o=i.opts.unicode===!1?(0,B_._)`${n}.length`:(0,B_._)`${(0,Xdn.useFunc)(e.gen,Qdn.default)}(${n})`;e.fail$data((0,B_._)`${o} ${s} ${r}`)}};Yse.default=efn});var y5e=w(Zse=>{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var tfn=Sa(),nfn=pn(),ak=Ot(),rfn={message:({schemaCode:e})=>(0,ak.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,ak._)`{pattern: ${e}}`},ifn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:rfn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e,a=o.opts.unicodeRegExp?"u":"";if(r){let{regExp:c}=o.opts.code,u=c.code==="new RegExp"?(0,ak._)`new RegExp`:(0,nfn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,ak._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,ak._)`!${l}`)}else{let c=(0,tfn.usePattern)(e,i);e.fail$data((0,ak._)`!${c}.test(${n})`)}}};Zse.default=ifn});var S5e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var CC=Ot(),sfn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,CC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,CC._)`{limit: ${e}}`},ofn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:sfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?CC.operators.GT:CC.operators.LT;e.fail$data((0,CC._)`Object.keys(${n}).length ${i} ${r}`)}};Jse.default=ofn});var b5e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});var MC=Sa(),DC=Ot(),afn=pn(),cfn={message:({params:{missingProperty:e}})=>(0,DC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,DC._)`{missingProperty: ${e}}`},ufn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:cfn,code(e){let{gen:t,schema:n,schemaCode:r,data:i,$data:s,it:o}=e,{opts:a}=o;if(!s&&n.length===0)return;let c=n.length>=a.loopRequired;if(o.allErrors?u():l(),a.strictRequired){let p=e.parentSchema.properties,{definedProperties:h}=e.it;for(let m of n)if(p?.[m]===void 0&&!h.has(m)){let g=o.schemaEnv.baseId+o.errSchemaPath,y=`required property "${m}" is not defined at "${g}" (strictRequired)`;(0,afn.checkStrictMode)(o,y,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(DC.nil,d);else for(let p of n)(0,MC.checkReportMissingProp)(e,p)}function l(){let p=t.let("missing");if(c||s){let h=t.let("valid",!0);e.block$data(h,()=>f(p,h)),e.ok(h)}else t.if((0,MC.checkMissingProp)(e,n,p)),(0,MC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,MC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,MC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,DC.not)(h),()=>{e.error(),t.break()})},DC.nil)}}};Xse.default=ufn});var E5e=w(Qse=>{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var LC=Ot(),lfn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,LC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,LC._)`{limit: ${e}}`},dfn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:lfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?LC.operators.GT:LC.operators.LT;e.fail$data((0,LC._)`${n}.length ${i} ${r}`)}};Qse.default=dfn});var UC=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var _5e=vC();_5e.code='require("ajv/dist/runtime/equal").default';$se.default=_5e});var T5e=w(toe=>{"use strict";Object.defineProperty(toe,"__esModule",{value:!0});var eoe=TC(),Ea=Ot(),ffn=pn(),pfn=UC(),hfn={message:({params:{i:e,j:t}})=>(0,Ea.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ea._)`{i: ${e}, j: ${t}}`},mfn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:hfn,code(e){let{gen:t,data:n,$data:r,schema:i,parentSchema:s,schemaCode:o,it:a}=e;if(!r&&!i)return;let c=t.let("valid"),u=s.items?(0,eoe.getSchemaTypes)(s.items):[];e.block$data(c,l,(0,Ea._)`${o} === false`),e.ok(c);function l(){let h=t.let("i",(0,Ea._)`${n}.length`),m=t.let("j");e.setParams({i:h,j:m}),t.assign(c,!0),t.if((0,Ea._)`${h} > 1`,()=>(d()?f:p)(h,m))}function d(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function f(h,m){let g=t.name("item"),y=(0,eoe.checkDataTypes)(u,g,a.opts.strictNumbers,eoe.DataType.Wrong),b=t.const("indices",(0,Ea._)`{}`);t.for((0,Ea._)`;${h}--;`,()=>{t.let(g,(0,Ea._)`${n}[${h}]`),t.if(y,(0,Ea._)`continue`),u.length>1&&t.if((0,Ea._)`typeof ${g} == "string"`,(0,Ea._)`${g} += "_"`),t.if((0,Ea._)`typeof ${b}[${g}] == "number"`,()=>{t.assign(m,(0,Ea._)`${b}[${g}]`),e.error(),t.assign(c,!1).break()}).code((0,Ea._)`${b}[${g}] = ${h}`)})}function p(h,m){let g=(0,ffn.useFunc)(t,pfn.default),y=t.name("outer");t.label(y).for((0,Ea._)`;${h}--;`,()=>t.for((0,Ea._)`${m} = ${h}; ${m}--;`,()=>t.if((0,Ea._)`${g}(${n}[${h}], ${n}[${m}])`,()=>{e.error(),t.assign(c,!1).break(y)})))}}};toe.default=mfn});var v5e=w(roe=>{"use strict";Object.defineProperty(roe,"__esModule",{value:!0});var noe=Ot(),gfn=pn(),yfn=UC(),Sfn={message:"must be equal to constant",params:({schemaCode:e})=>(0,noe._)`{allowedValue: ${e}}`},bfn={keyword:"const",$data:!0,error:Sfn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,noe._)`!${(0,gfn.useFunc)(t,yfn.default)}(${n}, ${i})`):e.fail((0,noe._)`${s} !== ${n}`)}};roe.default=bfn});var R5e=w(ioe=>{"use strict";Object.defineProperty(ioe,"__esModule",{value:!0});var FC=Ot(),Efn=pn(),_fn=UC(),Tfn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,FC._)`{allowedValues: ${e}}`},vfn={keyword:"enum",schemaType:"array",$data:!0,error:Tfn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let a=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,Efn.useFunc)(t,_fn.default)),l;if(a||r)l=t.let("valid"),e.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let p=t.const("vSchema",s);l=(0,FC.or)(...i.map((h,m)=>f(p,m)))}e.pass(l);function d(){t.assign(l,!1),t.forOf("v",s,p=>t.if((0,FC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,FC._)`${u()}(${n}, ${p}[${h}])`:(0,FC._)`${n} === ${m}`}}};ioe.default=vfn});var A5e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var Rfn=f5e(),Afn=p5e(),wfn=g5e(),kfn=y5e(),Ifn=S5e(),xfn=b5e(),Ofn=E5e(),Pfn=T5e(),Nfn=v5e(),Cfn=R5e(),Mfn=[Rfn.default,Afn.default,wfn.default,kfn.default,Ifn.default,xfn.default,Ofn.default,Pfn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Nfn.default,Cfn.default];soe.default=Mfn});var aoe=w(jC=>{"use strict";Object.defineProperty(jC,"__esModule",{value:!0});jC.validateAdditionalItems=void 0;var z_=Ot(),ooe=pn(),Dfn={message:({params:{len:e}})=>(0,z_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,z_._)`{limit: ${e}}`},Lfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Dfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,ooe.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}w5e(e,r)}};function w5e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,z_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,z_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,ooe.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,z_._)`${a} <= ${t.length}`);n.if((0,z_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:ooe.Type.Num},u),o.allErrors||n.if((0,z_.not)(u),()=>n.break())})}}jC.validateAdditionalItems=w5e;jC.default=Lfn});var coe=w(HC=>{"use strict";Object.defineProperty(HC,"__esModule",{value:!0});HC.validateTuple=void 0;var k5e=Ot(),aV=pn(),Ufn=Sa(),Ffn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return I5e(e,"additionalItems",t);n.items=!0,!(0,aV.alwaysValidSchema)(n,t)&&e.ok((0,Ufn.validateArray)(e))}};function I5e(e,t,n=e.schema){let{gen:r,parentSchema:i,data:s,keyword:o,it:a}=e;l(i),a.opts.unevaluated&&n.length&&a.items!==!0&&(a.items=aV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,k5e._)`${s}.length`);n.forEach((d,f)=>{(0,aV.alwaysValidSchema)(a,d)||(r.if((0,k5e._)`${u} > ${f}`,()=>e.subschema({keyword:o,schemaProp:f,dataProp:f},c)),e.ok(c))});function l(d){let{opts:f,errSchemaPath:p}=a,h=n.length,m=h===d.minItems&&(h===d.maxItems||d[t]===!1);if(f.strictTuples&&!m){let g=`"${o}" is ${h}-tuple, but minItems or maxItems/${t} are not specified or different at path "${p}"`;(0,aV.checkStrictMode)(a,g,f.strictTuples)}}}HC.validateTuple=I5e;HC.default=Ffn});var x5e=w(uoe=>{"use strict";Object.defineProperty(uoe,"__esModule",{value:!0});var jfn=coe(),Hfn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,jfn.validateTuple)(e,"items")};uoe.default=Hfn});var P5e=w(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});var O5e=Ot(),qfn=pn(),Bfn=Sa(),zfn=aoe(),Gfn={message:({params:{len:e}})=>(0,O5e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,O5e._)`{limit: ${e}}`},Vfn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Gfn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,qfn.alwaysValidSchema)(r,t)&&(i?(0,zfn.validateAdditionalItems)(e,i):e.ok((0,Bfn.validateArray)(e)))}};loe.default=Vfn});var N5e=w(doe=>{"use strict";Object.defineProperty(doe,"__esModule",{value:!0});var Ed=Ot(),cV=pn(),Wfn={message:({params:{min:e,max:t}})=>t===void 0?(0,Ed.str)`must contain at least ${e} valid item(s)`:(0,Ed.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,Ed._)`{minContains: ${e}}`:(0,Ed._)`{minContains: ${e}, maxContains: ${t}}`},Kfn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Wfn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e,o,a,{minContains:c,maxContains:u}=r;s.opts.next?(o=c===void 0?1:c,a=u):o=1;let l=t.const("len",(0,Ed._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,cV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,cV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,cV.alwaysValidSchema)(s,n)){let m=(0,Ed._)`${l} >= ${o}`;a!==void 0&&(m=(0,Ed._)`${m} && ${l} <= ${a}`),e.pass(m);return}s.items=!0;let d=t.name("valid");a===void 0&&o===1?p(d,()=>t.if(d,()=>t.break())):o===0?(t.let(d,!0),a!==void 0&&t.if((0,Ed._)`${i}.length > 0`,f)):(t.let(d,!1),f()),e.result(d,()=>e.reset());function f(){let m=t.name("_valid"),g=t.let("count",0);p(m,()=>t.if(m,()=>h(g)))}function p(m,g){t.forRange("i",0,l,y=>{e.subschema({keyword:"contains",dataProp:y,dataPropType:cV.Type.Num,compositeRule:!0},m),g()})}function h(m){t.code((0,Ed._)`${m}++`),a===void 0?t.if((0,Ed._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,Ed._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,Ed._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};doe.default=Kfn});var D5e=w(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.validateSchemaDeps=mh.validatePropertyDeps=mh.error=void 0;var foe=Ot(),Yfn=pn(),qC=Sa();mh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,foe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,foe._)`{property: ${e}, + || ${o} === "boolean" || ${i} === null`).assign(a,(0,hn._)`[${i}]`)}}}function Iun({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,hn._)`${t} !== undefined`,()=>e.assign((0,hn._)`${t}[${n}]`,r))}function yse(e,t,n,r=ek.Correct){let i=r===ek.Correct?hn.operators.EQ:hn.operators.NEQ,s;switch(e){case"null":return(0,hn._)`${t} ${i} null`;case"array":s=(0,hn._)`Array.isArray(${t})`;break;case"object":s=(0,hn._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":s=o((0,hn._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":s=o();break;default:return(0,hn._)`typeof ${t} ${i} ${e}`}return r===ek.Correct?s:(0,hn.not)(s);function o(a=hn.nil){return(0,hn.and)((0,hn._)`typeof ${t} == "number"`,a,n?(0,hn._)`isFinite(${t})`:hn.nil)}}oc.checkDataType=yse;function Sse(e,t,n,r){if(e.length===1)return yse(e[0],t,n,r);let i,s=(0,a6e.toHash)(e);if(s.array&&s.object){let o=(0,hn._)`typeof ${t} != "object"`;i=s.null?o:(0,hn._)`!${t} || ${o}`,delete s.null,delete s.array,delete s.object}else i=hn.nil;s.number&&delete s.integer;for(let o in s)i=(0,hn.and)(i,yse(o,t,n,r));return i}oc.checkDataTypes=Sse;var xun={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,hn._)`{type: ${e}}`:(0,hn._)`{type: ${t}}`};function bse(e){let t=Oun(e);(0,vun.reportError)(t,xun)}oc.reportTypeError=bse;function Oun(e){let{gen:t,data:n,schema:r}=e,i=(0,a6e.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}});var d6e=w(Y2=>{"use strict";Object.defineProperty(Y2,"__esModule",{value:!0});Y2.assignDefaults=void 0;var tk=Ot(),Pun=pn();function Nun(e,t){let{properties:n,items:r}=e.schema;if(t==="object"&&n)for(let i in n)l6e(e,i,n[i].default);else t==="array"&&Array.isArray(r)&&r.forEach((i,s)=>l6e(e,s,i.default))}Y2.assignDefaults=Nun;function l6e(e,t,n){let{gen:r,compositeRule:i,data:s,opts:o}=e;if(n===void 0)return;let a=(0,tk._)`${s}${(0,tk.getProperty)(t)}`;if(i){(0,Pun.checkStrictMode)(e,`default is ignored for: ${a}`);return}let c=(0,tk._)`${a} === undefined`;o.useDefaults==="empty"&&(c=(0,tk._)`${c} || ${a} === null || ${a} === ""`),r.if(c,(0,tk._)`${a} = ${(0,tk.stringify)(n)}`)}});var Sa=w(Fr=>{"use strict";Object.defineProperty(Fr,"__esModule",{value:!0});Fr.validateUnion=Fr.validateArray=Fr.usePattern=Fr.callValidateCode=Fr.schemaProperties=Fr.allSchemaProperties=Fr.noPropertyInData=Fr.propertyInData=Fr.isOwnProperty=Fr.hasPropFunc=Fr.reportMissingProp=Fr.checkMissingProp=Fr.checkReportMissingProp=void 0;var gi=Ot(),Ese=pn(),MS=Sd(),Cun=pn();function Mun(e,t){let{gen:n,data:r,it:i}=e;n.if(Tse(n,r,t,i.opts.ownProperties),()=>{e.setParams({missingProperty:(0,gi._)`${t}`},!0),e.error()})}Fr.checkReportMissingProp=Mun;function Dun({gen:e,data:t,it:{opts:n}},r,i){return(0,gi.or)(...r.map(s=>(0,gi.and)(Tse(e,t,s,n.ownProperties),(0,gi._)`${i} = ${s}`)))}Fr.checkMissingProp=Dun;function Lun(e,t){e.setParams({missingProperty:t},!0),e.error()}Fr.reportMissingProp=Lun;function f6e(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,gi._)`Object.prototype.hasOwnProperty`})}Fr.hasPropFunc=f6e;function _se(e,t,n){return(0,gi._)`${f6e(e)}.call(${t}, ${n})`}Fr.isOwnProperty=_se;function Uun(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} !== undefined`;return r?(0,gi._)`${i} && ${_se(e,t,n)}`:i}Fr.propertyInData=Uun;function Tse(e,t,n,r){let i=(0,gi._)`${t}${(0,gi.getProperty)(n)} === undefined`;return r?(0,gi.or)(i,(0,gi.not)(_se(e,t,n))):i}Fr.noPropertyInData=Tse;function p6e(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}Fr.allSchemaProperties=p6e;function Fun(e,t){return p6e(t).filter(n=>!(0,Ese.alwaysValidSchema)(e,t[n]))}Fr.schemaProperties=Fun;function jun({schemaCode:e,data:t,it:{gen:n,topSchemaRef:r,schemaPath:i,errorPath:s},it:o},a,c,u){let l=u?(0,gi._)`${e}, ${t}, ${r}${i}`:t,d=[[MS.default.instancePath,(0,gi.strConcat)(MS.default.instancePath,s)],[MS.default.parentData,o.parentData],[MS.default.parentDataProperty,o.parentDataProperty],[MS.default.rootData,MS.default.rootData]];o.opts.dynamicRef&&d.push([MS.default.dynamicAnchors,MS.default.dynamicAnchors]);let f=(0,gi._)`${l}, ${n.object(...d)}`;return c!==gi.nil?(0,gi._)`${a}.call(${c}, ${f})`:(0,gi._)`${a}(${f})`}Fr.callValidateCode=jun;var Hun=(0,gi._)`new RegExp`;function qun({gen:e,it:{opts:t}},n){let r=t.unicodeRegExp?"u":"",{regExp:i}=t.code,s=i(n,r);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:(0,gi._)`${i.code==="new RegExp"?Hun:(0,Cun.useFunc)(e,i)}(${n}, ${r})`})}Fr.usePattern=qun;function Bun(e){let{gen:t,data:n,keyword:r,it:i}=e,s=t.name("valid");if(i.allErrors){let a=t.let("valid",!0);return o(()=>t.assign(a,!1)),a}return t.var(s,!0),o(()=>t.break()),s;function o(a){let c=t.const("len",(0,gi._)`${n}.length`);t.forRange("i",0,c,u=>{e.subschema({keyword:r,dataProp:u,dataPropType:Ese.Type.Num},s),t.if((0,gi.not)(s),a)})}}Fr.validateArray=Bun;function zun(e){let{gen:t,schema:n,keyword:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(c=>(0,Ese.alwaysValidSchema)(i,c))&&!i.opts.unevaluated)return;let o=t.let("valid",!1),a=t.name("_valid");t.block(()=>n.forEach((c,u)=>{let l=e.subschema({keyword:r,schemaProp:u,compositeRule:!0},a);t.assign(o,(0,gi._)`${o} || ${a}`),e.mergeValidEvaluated(l,a)||t.if((0,gi.not)(o))})),e.result(o,()=>e.reset(),()=>e.error(!0))}Fr.validateUnion=zun});var g6e=w(fh=>{"use strict";Object.defineProperty(fh,"__esModule",{value:!0});fh.validateKeywordUsage=fh.validSchemaType=fh.funcKeywordCode=fh.macroKeywordCode=void 0;var Gc=Ot(),F_=Sd(),Gun=Sa(),Vun=TC();function Wun(e,t){let{gen:n,keyword:r,schema:i,parentSchema:s,it:o}=e,a=t.macro.call(o.self,i,s,o),c=m6e(n,r,a);o.opts.validateSchema!==!1&&o.self.validateSchema(a,!0);let u=n.name("valid");e.subschema({schema:a,schemaPath:Gc.nil,errSchemaPath:`${o.errSchemaPath}/${r}`,topSchemaRef:c,compositeRule:!0},u),e.pass(u,()=>e.error(!0))}fh.macroKeywordCode=Wun;function Kun(e,t){var n;let{gen:r,keyword:i,schema:s,parentSchema:o,$data:a,it:c}=e;Zun(c,t);let u=!a&&t.compile?t.compile.call(c.self,s,o,c):t.validate,l=m6e(r,i,u),d=r.let("valid");e.block$data(d,f),e.ok((n=t.valid)!==null&&n!==void 0?n:d);function f(){if(t.errors===!1)m(),t.modifying&&h6e(e),g(()=>e.error());else{let y=t.async?p():h();t.modifying&&h6e(e),g(()=>Yun(e,y))}}function p(){let y=r.let("ruleErrs",null);return r.try(()=>m((0,Gc._)`await `),b=>r.assign(d,!1).if((0,Gc._)`${b} instanceof ${c.ValidationError}`,()=>r.assign(y,(0,Gc._)`${b}.errors`),()=>r.throw(b))),y}function h(){let y=(0,Gc._)`${l}.errors`;return r.assign(y,null),m(Gc.nil),y}function m(y=t.async?(0,Gc._)`await `:Gc.nil){let b=c.opts.passContext?F_.default.this:F_.default.self,S=!("compile"in t&&!a||t.schema===!1);r.assign(d,(0,Gc._)`${y}${(0,Gun.callValidateCode)(e,l,b,S)}`,t.modifying)}function g(y){var b;r.if((0,Gc.not)((b=t.valid)!==null&&b!==void 0?b:d),y)}}fh.funcKeywordCode=Kun;function h6e(e){let{gen:t,data:n,it:r}=e;t.if(r.parentData,()=>t.assign(n,(0,Gc._)`${r.parentData}[${r.parentDataProperty}]`))}function Yun(e,t){let{gen:n}=e;n.if((0,Gc._)`Array.isArray(${t})`,()=>{n.assign(F_.default.vErrors,(0,Gc._)`${F_.default.vErrors} === null ? ${t} : ${F_.default.vErrors}.concat(${t})`).assign(F_.default.errors,(0,Gc._)`${F_.default.vErrors}.length`),(0,Vun.extendErrors)(e)},()=>e.error())}function Zun({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function m6e(e,t,n){if(n===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof n=="function"?{ref:n}:{ref:n,code:(0,Gc.stringify)(n)})}function Jun(e,t,n=!1){return!t.length||t.some(r=>r==="array"?Array.isArray(e):r==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==r||n&&typeof e>"u")}fh.validSchemaType=Jun;function Xun({schema:e,opts:t,self:n,errSchemaPath:r},i,s){if(Array.isArray(i.keyword)?!i.keyword.includes(s):i.keyword!==s)throw new Error("ajv implementation error");let o=i.dependencies;if(o?.some(a=>!Object.prototype.hasOwnProperty.call(e,a)))throw new Error(`parent schema must have dependencies of ${s}: ${o.join(",")}`);if(i.validateSchema&&!i.validateSchema(e[s])){let c=`keyword "${s}" value is invalid at path "${r}": `+n.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")n.logger.error(c);else throw new Error(c)}}fh.validateKeywordUsage=Xun});var S6e=w(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0});DS.extendSubschemaMode=DS.extendSubschemaData=DS.getSubschema=void 0;var ph=Ot(),y6e=pn();function Qun(e,{keyword:t,schemaProp:n,schema:r,schemaPath:i,errSchemaPath:s,topSchemaRef:o}){if(t!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let a=e.schema[t];return n===void 0?{schema:a,schemaPath:(0,ph._)`${e.schemaPath}${(0,ph.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:a[n],schemaPath:(0,ph._)`${e.schemaPath}${(0,ph.getProperty)(t)}${(0,ph.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,y6e.escapeFragment)(n)}`}}if(r!==void 0){if(i===void 0||s===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:r,schemaPath:i,topSchemaRef:o,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}DS.getSubschema=Qun;function $un(e,t,{dataProp:n,dataPropType:r,data:i,dataTypes:s,propertyName:o}){if(i!==void 0&&n!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:a}=t;if(n!==void 0){let{errorPath:u,dataPathArr:l,opts:d}=t,f=a.let("data",(0,ph._)`${t.data}${(0,ph.getProperty)(n)}`,!0);c(f),e.errorPath=(0,ph.str)`${u}${(0,y6e.getErrorPath)(n,r,d.jsPropertySyntax)}`,e.parentDataProperty=(0,ph._)`${n}`,e.dataPathArr=[...l,e.parentDataProperty]}if(i!==void 0){let u=i instanceof ph.Name?i:a.let("data",i,!0);c(u),o!==void 0&&(e.propertyName=o)}s&&(e.dataTypes=s);function c(u){e.data=u,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,u]}}DS.extendSubschemaData=$un;function eln(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:i,allErrors:s}){r!==void 0&&(e.compositeRule=r),i!==void 0&&(e.createErrors=i),s!==void 0&&(e.allErrors=s),e.jtdDiscriminator=t,e.jtdMetadata=n}DS.extendSubschemaMode=eln});var RC=w((bVr,b6e)=>{"use strict";b6e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(s=Object.keys(t),r=s.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;i--!==0;){var o=s[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}});var _6e=w((EVr,E6e)=>{"use strict";var LS=E6e.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),n=t.cb||n;var r=typeof n=="function"?n:n.pre||function(){},i=n.post||function(){};Z2(t,r,i,e,"",e)};LS.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};LS.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};LS.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};LS.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Z2(e,t,n,r,i,s,o,a,c,u){if(r&&typeof r=="object"&&!Array.isArray(r)){t(r,i,s,o,a,c,u);for(var l in r){var d=r[l];if(Array.isArray(d)){if(l in LS.arrayKeywords)for(var f=0;f{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.getSchemaRefs=Au.resolveUrl=Au.normalizeId=Au._getFullPath=Au.getFullPath=Au.inlineRef=void 0;var nln=pn(),rln=RC(),iln=_6e(),sln=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function oln(e,t=!0){return typeof e=="boolean"?!0:t===!0?!vse(e):t?T6e(e)<=t:!1}Au.inlineRef=oln;var aln=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function vse(e){for(let t in e){if(aln.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(vse)||typeof n=="object"&&vse(n))return!0}return!1}function T6e(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!sln.has(n)&&(typeof e[n]=="object"&&(0,nln.eachItem)(e[n],r=>t+=T6e(r)),t===1/0))return 1/0}return t}function v6e(e,t="",n){n!==!1&&(t=nk(t));let r=e.parse(t);return R6e(e,r)}Au.getFullPath=v6e;function R6e(e,t){return e.serialize(t).split("#")[0]+"#"}Au._getFullPath=R6e;var cln=/#\/?$/;function nk(e){return e?e.replace(cln,""):""}Au.normalizeId=nk;function uln(e,t,n){return n=nk(n),e.resolve(t,n)}Au.resolveUrl=uln;var lln=/^[a-z_][-a-z0-9._]*$/i;function dln(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:r}=this.opts,i=nk(e[n]||t),s={"":i},o=v6e(r,i,!1),a={},c=new Set;return iln(e,{allKeys:!0},(d,f,p,h)=>{if(h===void 0)return;let m=o+f,g=s[h];typeof d[n]=="string"&&(g=y.call(this,d[n])),b.call(this,d.$anchor),b.call(this,d.$dynamicAnchor),s[f]=g;function y(S){let E=this.opts.uriResolver.resolve;if(S=nk(g?E(g,S):S),c.has(S))throw l(S);c.add(S);let _=this.refs[S];return typeof _=="string"&&(_=this.refs[_]),typeof _=="object"?u(d,_.schema,S):S!==nk(m)&&(S[0]==="#"?(u(d,a[S],S),a[S]=d):this.refs[S]=m),S}function b(S){if(typeof S=="string"){if(!lln.test(S))throw new Error(`invalid anchor "${S}"`);y.call(this,`#${S}`)}}}),a;function u(d,f,p){if(f!==void 0&&!rln(d,f))throw l(p)}function l(d){return new Error(`reference "${d}" resolves to more than one schema`)}}Au.getSchemaRefs=dln});var rk=w(US=>{"use strict";Object.defineProperty(US,"__esModule",{value:!0});US.getData=US.KeywordCxt=US.validateFunctionCode=void 0;var x6e=i6e(),A6e=vC(),Ase=gse(),J2=vC(),fln=d6e(),kC=g6e(),Rse=S6e(),pt=Ot(),Xt=Sd(),pln=AC(),Km=pn(),wC=TC();function hln(e){if(N6e(e)&&(C6e(e),P6e(e))){yln(e);return}O6e(e,()=>(0,x6e.topBoolOrEmptySchema)(e))}US.validateFunctionCode=hln;function O6e({gen:e,validateName:t,schema:n,schemaEnv:r,opts:i},s){i.code.es5?e.func(t,(0,pt._)`${Xt.default.data}, ${Xt.default.valCxt}`,r.$async,()=>{e.code((0,pt._)`"use strict"; ${w6e(n,i)}`),gln(e,i),e.code(s)}):e.func(t,(0,pt._)`${Xt.default.data}, ${mln(i)}`,r.$async,()=>e.code(w6e(n,i)).code(s))}function mln(e){return(0,pt._)`{${Xt.default.instancePath}="", ${Xt.default.parentData}, ${Xt.default.parentDataProperty}, ${Xt.default.rootData}=${Xt.default.data}${e.dynamicRef?(0,pt._)`, ${Xt.default.dynamicAnchors}={}`:pt.nil}}={}`}function gln(e,t){e.if(Xt.default.valCxt,()=>{e.var(Xt.default.instancePath,(0,pt._)`${Xt.default.valCxt}.${Xt.default.instancePath}`),e.var(Xt.default.parentData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentData}`),e.var(Xt.default.parentDataProperty,(0,pt._)`${Xt.default.valCxt}.${Xt.default.parentDataProperty}`),e.var(Xt.default.rootData,(0,pt._)`${Xt.default.valCxt}.${Xt.default.rootData}`),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`${Xt.default.valCxt}.${Xt.default.dynamicAnchors}`)},()=>{e.var(Xt.default.instancePath,(0,pt._)`""`),e.var(Xt.default.parentData,(0,pt._)`undefined`),e.var(Xt.default.parentDataProperty,(0,pt._)`undefined`),e.var(Xt.default.rootData,Xt.default.data),t.dynamicRef&&e.var(Xt.default.dynamicAnchors,(0,pt._)`{}`)})}function yln(e){let{schema:t,opts:n,gen:r}=e;O6e(e,()=>{n.$comment&&t.$comment&&D6e(e),Tln(e),r.let(Xt.default.vErrors,null),r.let(Xt.default.errors,0),n.unevaluated&&Sln(e),M6e(e),Aln(e)})}function Sln(e){let{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",(0,pt._)`${n}.evaluated`),t.if((0,pt._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,pt._)`${e.evaluated}.props`,(0,pt._)`undefined`)),t.if((0,pt._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,pt._)`${e.evaluated}.items`,(0,pt._)`undefined`))}function w6e(e,t){let n=typeof e=="object"&&e[t.schemaId];return n&&(t.code.source||t.code.process)?(0,pt._)`/*# sourceURL=${n} */`:pt.nil}function bln(e,t){if(N6e(e)&&(C6e(e),P6e(e))){Eln(e,t);return}(0,x6e.boolOrEmptySchema)(e,t)}function P6e({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let n in e)if(t.RULES.all[n])return!0;return!1}function N6e(e){return typeof e.schema!="boolean"}function Eln(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&D6e(e),vln(e),Rln(e);let s=r.const("_errs",Xt.default.errors);M6e(e,s),r.var(t,(0,pt._)`${s} === ${Xt.default.errors}`)}function C6e(e){(0,Km.checkUnknownRules)(e),_ln(e)}function M6e(e,t){if(e.opts.jtd)return k6e(e,[],!1,t);let n=(0,A6e.getSchemaTypes)(e.schema),r=(0,A6e.coerceAndCheckDataType)(e,n);k6e(e,n,!r,t)}function _ln(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,Km.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function Tln(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,Km.checkStrictMode)(e,"default is ignored in the schema root")}function vln(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,pln.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function Rln(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function D6e({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:i}){let s=n.$comment;if(i.$comment===!0)e.code((0,pt._)`${Xt.default.self}.logger.log(${s})`);else if(typeof i.$comment=="function"){let o=(0,pt.str)`${r}/$comment`,a=e.scopeValue("root",{ref:t.root});e.code((0,pt._)`${Xt.default.self}.opts.$comment(${s}, ${o}, ${a}.schema)`)}}function Aln(e){let{gen:t,schemaEnv:n,validateName:r,ValidationError:i,opts:s}=e;n.$async?t.if((0,pt._)`${Xt.default.errors} === 0`,()=>t.return(Xt.default.data),()=>t.throw((0,pt._)`new ${i}(${Xt.default.vErrors})`)):(t.assign((0,pt._)`${r}.errors`,Xt.default.vErrors),s.unevaluated&&wln(e),t.return((0,pt._)`${Xt.default.errors} === 0`))}function wln({gen:e,evaluated:t,props:n,items:r}){n instanceof pt.Name&&e.assign((0,pt._)`${t}.props`,n),r instanceof pt.Name&&e.assign((0,pt._)`${t}.items`,r)}function k6e(e,t,n,r){let{gen:i,schema:s,data:o,allErrors:a,opts:c,self:u}=e,{RULES:l}=u;if(s.$ref&&(c.ignoreKeywordsWithRef||!(0,Km.schemaHasRulesButRef)(s,l))){i.block(()=>U6e(e,"$ref",l.all.$ref.definition));return}c.jtd||kln(e,t),i.block(()=>{for(let f of l.rules)d(f);d(l.post)});function d(f){(0,Ase.shouldUseGroup)(s,f)&&(f.type?(i.if((0,J2.checkDataType)(f.type,o,c.strictNumbers)),I6e(e,f),t.length===1&&t[0]===f.type&&n&&(i.else(),(0,J2.reportTypeError)(e)),i.endIf()):I6e(e,f),a||i.if((0,pt._)`${Xt.default.errors} === ${r||0}`))}}function I6e(e,t){let{gen:n,schema:r,opts:{useDefaults:i}}=e;i&&(0,fln.assignDefaults)(e,t.type),n.block(()=>{for(let s of t.rules)(0,Ase.shouldUseRule)(r,s)&&U6e(e,s.keyword,s.definition,t.type)})}function kln(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(Iln(e,t),e.opts.allowUnionTypes||xln(e,t),Oln(e,e.dataTypes))}function Iln(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{L6e(e.dataTypes,n)||wse(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),Nln(e,t)}}function xln(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&wse(e,"use allowUnionTypes to allow union type keyword")}function Oln(e,t){let n=e.self.RULES.all;for(let r in n){let i=n[r];if(typeof i=="object"&&(0,Ase.shouldUseRule)(e.schema,i)){let{type:s}=i.definition;s.length&&!s.some(o=>Pln(t,o))&&wse(e,`missing type "${s.join(",")}" for keyword "${r}"`)}}}function Pln(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function L6e(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function Nln(e,t){let n=[];for(let r of e.dataTypes)L6e(t,r)?n.push(r):t.includes("integer")&&r==="number"&&n.push("integer");e.dataTypes=n}function wse(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Km.checkStrictMode)(e,t,e.opts.strictTypes)}var X2=class{constructor(t,n,r){if((0,kC.validateKeywordUsage)(t,n,r),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=r,this.data=t.data,this.schema=t.schema[r],this.$data=n.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Km.schemaRefOrVal)(t,this.schema,r,this.$data),this.schemaType=n.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=n,this.$data)this.schemaCode=t.gen.const("vSchema",F6e(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,kC.validSchemaType)(this.schema,n.schemaType,n.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(n.schemaType)}`);("code"in n?n.trackErrors:n.errors!==!1)&&(this.errsCount=t.gen.const("_errs",Xt.default.errors))}result(t,n,r){this.failResult((0,pt.not)(t),n,r)}failResult(t,n,r){this.gen.if(t),r?r():this.error(),n?(this.gen.else(),n(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,n){this.failResult((0,pt.not)(t),void 0,n)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:n}=this;this.fail((0,pt._)`${n} !== undefined && (${(0,pt.or)(this.invalid$data(),t)})`)}error(t,n,r){if(n){this.setParams(n),this._error(t,r),this.setParams({});return}this._error(t,r)}_error(t,n){(t?wC.reportExtraError:wC.reportError)(this,this.def.error,n)}$dataError(){(0,wC.reportError)(this,this.def.$dataError||wC.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,wC.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,n){n?Object.assign(this.params,t):this.params=t}block$data(t,n,r=pt.nil){this.gen.block(()=>{this.check$data(t,r),n()})}check$data(t=pt.nil,n=pt.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:s,def:o}=this;r.if((0,pt.or)((0,pt._)`${i} === undefined`,n)),t!==pt.nil&&r.assign(t,!0),(s.length||o.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),t!==pt.nil&&r.assign(t,!1)),r.else()}invalid$data(){let{gen:t,schemaCode:n,schemaType:r,def:i,it:s}=this;return(0,pt.or)(o(),a());function o(){if(r.length){if(!(n instanceof pt.Name))throw new Error("ajv implementation error");let c=Array.isArray(r)?r:[r];return(0,pt._)`${(0,J2.checkDataTypes)(c,n,s.opts.strictNumbers,J2.DataType.Wrong)}`}return pt.nil}function a(){if(i.validateSchema){let c=t.scopeValue("validate$data",{ref:i.validateSchema});return(0,pt._)`!${c}(${n})`}return pt.nil}}subschema(t,n){let r=(0,Rse.getSubschema)(this.it,t);(0,Rse.extendSubschemaData)(r,this.it,t),(0,Rse.extendSubschemaMode)(r,t);let i={...this.it,...r,items:void 0,props:void 0};return bln(i,n),i}mergeEvaluated(t,n){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==!0&&t.props!==void 0&&(r.props=Km.mergeEvaluated.props(i,t.props,r.props,n)),r.items!==!0&&t.items!==void 0&&(r.items=Km.mergeEvaluated.items(i,t.items,r.items,n)))}mergeValidEvaluated(t,n){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==!0||r.items!==!0))return i.if(n,()=>this.mergeEvaluated(t,pt.Name)),!0}};US.KeywordCxt=X2;function U6e(e,t,n,r){let i=new X2(e,n,t);"code"in n?n.code(i,r):i.$data&&n.validate?(0,kC.funcKeywordCode)(i,n):"macro"in n?(0,kC.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,kC.funcKeywordCode)(i,n)}var Cln=/^\/(?:[^~]|~0|~1)*$/,Mln=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function F6e(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,s;if(e==="")return Xt.default.rootData;if(e[0]==="/"){if(!Cln.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e,s=Xt.default.rootData}else{let u=Mln.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let l=+u[1];if(i=u[2],i==="#"){if(l>=t)throw new Error(c("property/index",l));return r[t-l]}if(l>t)throw new Error(c("data",l));if(s=n[t-l],!i)return s}let o=s,a=i.split("/");for(let u of a)u&&(s=(0,pt._)`${s}${(0,pt.getProperty)((0,Km.unescapeJsonPointer)(u))}`,o=(0,pt._)`${o} && ${s}`);return o;function c(u,l){return`Cannot access ${u} ${l} levels up, current level is ${t}`}}US.getData=F6e});var IC=w(Ise=>{"use strict";Object.defineProperty(Ise,"__esModule",{value:!0});var kse=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};Ise.default=kse});var Ym=w(Pse=>{"use strict";Object.defineProperty(Pse,"__esModule",{value:!0});var xse=AC(),Ose=class extends Error{constructor(t,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,xse.resolveUrl)(t,n,r),this.missingSchema=(0,xse.normalizeId)((0,xse.getFullPath)(t,this.missingRef))}};Pse.default=Ose});var H_=w(bd=>{"use strict";Object.defineProperty(bd,"__esModule",{value:!0});bd.resolveSchema=bd.getCompilingSchema=bd.resolveRef=bd.compileSchema=bd.SchemaEnv=void 0;var Af=Ot(),Dln=IC(),j_=Sd(),wf=AC(),j6e=pn(),Lln=rk(),ik=class{constructor(t){var n;this.refs={},this.dynamicAnchors={};let r;typeof t.schema=="object"&&(r=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,wf.normalizeId)(r?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=r?.$async,this.refs={}}};bd.SchemaEnv=ik;function Cse(e){let t=H6e.call(this,e);if(t)return t;let n=(0,wf.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new Af.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a;e.$async&&(a=o.scopeValue("Error",{ref:Dln.default,code:(0,Af._)`require("ajv/dist/runtime/validation_error").default`}));let c=o.scopeName("validate");e.validateName=c;let u={gen:o,allErrors:this.opts.allErrors,data:j_.default.data,parentData:j_.default.parentData,parentDataProperty:j_.default.parentDataProperty,dataNames:[j_.default.data],dataPathArr:[Af.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,Af.stringify)(e.schema)}:{ref:e.schema}),validateName:c,ValidationError:a,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:Af.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,Af._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(e),(0,Lln.validateFunctionCode)(u),o.optimize(this.opts.code.optimize);let d=o.toString();l=`${o.scopeRefs(j_.default.scope)}return ${d}`,this.opts.code.process&&(l=this.opts.code.process(l,e));let p=new Function(`${j_.default.self}`,`${j_.default.scope}`,l)(this,this.scope.get());if(this.scope.value(c,{ref:p}),p.errors=null,p.schema=e.schema,p.schemaEnv=e,e.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:c,validateCode:d,scopeValues:o._values}),this.opts.unevaluated){let{props:h,items:m}=u;p.evaluated={props:h instanceof Af.Name?void 0:h,items:m instanceof Af.Name?void 0:m,dynamicProps:h instanceof Af.Name,dynamicItems:m instanceof Af.Name},p.source&&(p.source.evaluated=(0,Af.stringify)(p.evaluated))}return e.validate=p,e}catch(d){throw delete e.validate,delete e.validateName,l&&this.logger.error("Error compiling schema, function code:",l),d}finally{this._compilations.delete(e)}}bd.compileSchema=Cse;function Uln(e,t,n){var r;n=(0,wf.resolveUrl)(this.opts.uriResolver,t,n);let i=e.refs[n];if(i)return i;let s=Hln.call(this,e,n);if(s===void 0){let o=(r=e.localRefs)===null||r===void 0?void 0:r[n],{schemaId:a}=this.opts;o&&(s=new ik({schema:o,schemaId:a,root:e,baseId:t}))}if(s!==void 0)return e.refs[n]=Fln.call(this,s)}bd.resolveRef=Uln;function Fln(e){return(0,wf.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:Cse.call(this,e)}function H6e(e){for(let t of this._compilations)if(jln(t,e))return t}bd.getCompilingSchema=H6e;function jln(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Hln(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||Q2.call(this,e,t)}function Q2(e,t){let n=this.opts.uriResolver.parse(t),r=(0,wf._getFullPath)(this.opts.uriResolver,n),i=(0,wf.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===i)return Nse.call(this,n,e);let s=(0,wf.normalizeId)(r),o=this.refs[s]||this.schemas[s];if(typeof o=="string"){let a=Q2.call(this,e,o);return typeof a?.schema!="object"?void 0:Nse.call(this,n,a)}if(typeof o?.schema=="object"){if(o.validate||Cse.call(this,o),s===(0,wf.normalizeId)(t)){let{schema:a}=o,{schemaId:c}=this.opts,u=a[c];return u&&(i=(0,wf.resolveUrl)(this.opts.uriResolver,i,u)),new ik({schema:a,schemaId:c,root:e,baseId:i})}return Nse.call(this,n,o)}}bd.resolveSchema=Q2;var qln=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Nse(e,{baseId:t,schema:n,root:r}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let a of e.fragment.slice(1).split("/")){if(typeof n=="boolean")return;let c=n[(0,j6e.unescapeFragment)(a)];if(c===void 0)return;n=c;let u=typeof n=="object"&&n[this.opts.schemaId];!qln.has(a)&&u&&(t=(0,wf.resolveUrl)(this.opts.uriResolver,t,u))}let s;if(typeof n!="boolean"&&n.$ref&&!(0,j6e.schemaHasRulesButRef)(n,this.RULES)){let a=(0,wf.resolveUrl)(this.opts.uriResolver,t,n.$ref);s=Q2.call(this,r,a)}let{schemaId:o}=this.opts;if(s=s||new ik({schema:n,schemaId:o,root:r,baseId:t}),s.schema!==s.root.schema)return s}});var q6e=w((wVr,Bln)=>{Bln.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var Dse=w((kVr,V6e)=>{"use strict";var zln=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),z6e=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function Mse(e){let t="",n=0,r=0;for(r=0;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r];break}for(r+=1;r=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[r]}return t}var Gln=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function B6e(e){return e.length=0,!0}function Vln(e,t,n){if(e.length){let r=Mse(e);if(r!=="")t.push(r);else return n.error=!0,!1;e.length=0}return!0}function Wln(e){let t=0,n={error:!1,address:"",zone:""},r=[],i=[],s=!1,o=!1,a=Vln;for(let c=0;c7){n.error=!0;break}c>0&&e[c-1]===":"&&(s=!0),r.push(":");continue}else if(u==="%"){if(!a(i,r,n))break;a=B6e}else{i.push(u);continue}}return i.length&&(a===B6e?n.zone=i.join(""):o?r.push(i.join("")):r.push(Mse(i))),n.address=r.join(""),n}function G6e(e){if(Kln(e,":")<2)return{host:e,isIPV6:!1};let t=Wln(e);if(t.error)return{host:e,isIPV6:!1};{let n=t.address,r=t.address;return t.zone&&(n+="%"+t.zone,r+="%25"+t.zone),{host:n,isIPV6:!0,escapedHost:r}}}function Kln(e,t){let n=0;for(let r=0;r{"use strict";var{isUUID:Xln}=Dse(),Qln=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,$ln=["http","https","ws","wss","urn","urn:uuid"];function edn(e){return $ln.indexOf(e)!==-1}function Lse(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function W6e(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function K6e(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function tdn(e){return e.secure=Lse(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function ndn(e){if((e.port===(Lse(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,n]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}function rdn(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(Qln);if(n){let r=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];let i=`${r}:${t.nid||e.nid}`,s=Use(i);e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function idn(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let n=t.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),i=`${n}:${t.nid||r}`,s=Use(i);s&&(e=s.serialize(e,t));let o=e,a=e.nss;return o.path=`${r||t.nid}:${a}`,t.skipEscape=!0,o}function sdn(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!Xln(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function odn(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var Y6e={scheme:"http",domainHost:!0,parse:W6e,serialize:K6e},adn={scheme:"https",domainHost:Y6e.domainHost,parse:W6e,serialize:K6e},$2={scheme:"ws",domainHost:!0,parse:tdn,serialize:ndn},cdn={scheme:"wss",domainHost:$2.domainHost,parse:$2.parse,serialize:$2.serialize},udn={scheme:"urn",parse:rdn,serialize:idn,skipNormalize:!0},ldn={scheme:"urn:uuid",parse:sdn,serialize:odn,skipNormalize:!0},eV={http:Y6e,https:adn,ws:$2,wss:cdn,urn:udn,"urn:uuid":ldn};Object.setPrototypeOf(eV,null);function Use(e){return e&&(eV[e]||eV[e.toLowerCase()])||void 0}Z6e.exports={wsIsSecure:Lse,SCHEMES:eV,isValidSchemeName:edn,getSchemeHandler:Use}});var rV=w((xVr,nV)=>{"use strict";var{normalizeIPv6:ddn,removeDotSegments:xC,recomposeAuthority:fdn,normalizeComponentEncoding:tV,isIPv4:pdn,nonSimpleDomain:hdn}=Dse(),{SCHEMES:mdn,getSchemeHandler:X6e}=J6e();function gdn(e,t){return typeof e=="string"?e=hh(Zm(e,t),t):typeof e=="object"&&(e=Zm(hh(e,t),t)),e}function ydn(e,t,n){let r=n?Object.assign({scheme:"null"},n):{scheme:"null"},i=Q6e(Zm(e,r),Zm(t,r),r,!0);return r.skipEscape=!0,hh(i,r)}function Q6e(e,t,n,r){let i={};return r||(e=Zm(hh(e,n),n),t=Zm(hh(t,n),n)),n=n||{},!n.tolerant&&t.scheme?(i.scheme=t.scheme,i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=xC(t.path||""),i.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(i.userinfo=t.userinfo,i.host=t.host,i.port=t.port,i.path=xC(t.path||""),i.query=t.query):(t.path?(t.path[0]==="/"?i.path=xC(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?i.path="/"+t.path:e.path?i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:i.path=t.path,i.path=xC(i.path)),i.query=t.query):(i.path=e.path,t.query!==void 0?i.query=t.query:i.query=e.query),i.userinfo=e.userinfo,i.host=e.host,i.port=e.port),i.scheme=e.scheme),i.fragment=t.fragment,i}function Sdn(e,t,n){return typeof e=="string"?(e=unescape(e),e=hh(tV(Zm(e,n),!0),{...n,skipEscape:!0})):typeof e=="object"&&(e=hh(tV(e,!0),{...n,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=hh(tV(Zm(t,n),!0),{...n,skipEscape:!0})):typeof t=="object"&&(t=hh(tV(t,!0),{...n,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function hh(e,t){let n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},t),i=[],s=X6e(r.scheme||n.scheme);s&&s.serialize&&s.serialize(n,r),n.path!==void 0&&(r.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),n.scheme!==void 0&&(n.path=n.path.split("%3A").join(":")))),r.reference!=="suffix"&&n.scheme&&i.push(n.scheme,":");let o=fdn(n);if(o!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(o),n.path&&n.path[0]!=="/"&&i.push("/")),n.path!==void 0){let a=n.path;!r.absolutePath&&(!s||!s.absolutePath)&&(a=xC(a)),o===void 0&&a[0]==="/"&&a[1]==="/"&&(a="/%2F"+a.slice(2)),i.push(a)}return n.query!==void 0&&i.push("?",n.query),n.fragment!==void 0&&i.push("#",n.fragment),i.join("")}var bdn=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Zm(e,t){let n=Object.assign({},t),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=!1;n.reference==="suffix"&&(n.scheme?e=n.scheme+":"+e:e="//"+e);let s=e.match(bdn);if(s){if(r.scheme=s[1],r.userinfo=s[3],r.host=s[4],r.port=parseInt(s[5],10),r.path=s[6]||"",r.query=s[7],r.fragment=s[8],isNaN(r.port)&&(r.port=s[5]),r.host)if(pdn(r.host)===!1){let c=ddn(r.host);r.host=c.host.toLowerCase(),i=c.isIPV6}else i=!0;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",n.reference&&n.reference!=="suffix"&&n.reference!==r.reference&&(r.error=r.error||"URI is not a "+n.reference+" reference.");let o=X6e(n.scheme||r.scheme);if(!n.unicodeSupport&&(!o||!o.unicodeSupport)&&r.host&&(n.domainHost||o&&o.domainHost)&&i===!1&&hdn(r.host))try{r.host=URL.domainToASCII(r.host.toLowerCase())}catch(a){r.error=r.error||"Host's domain name can not be converted to ASCII: "+a}(!o||o&&!o.skipNormalize)&&(e.indexOf("%")!==-1&&(r.scheme!==void 0&&(r.scheme=unescape(r.scheme)),r.host!==void 0&&(r.host=unescape(r.host))),r.path&&(r.path=escape(unescape(r.path))),r.fragment&&(r.fragment=encodeURI(decodeURIComponent(r.fragment)))),o&&o.parse&&o.parse(r,n)}else r.error=r.error||"URI can not be parsed.";return r}var Fse={SCHEMES:mdn,normalize:gdn,resolve:ydn,resolveComponent:Q6e,equal:Sdn,serialize:hh,parse:Zm};nV.exports=Fse;nV.exports.default=Fse;nV.exports.fastUri=Fse});var e5e=w(jse=>{"use strict";Object.defineProperty(jse,"__esModule",{value:!0});var $6e=rV();$6e.code='require("ajv/dist/runtime/uri").default';jse.default=$6e});var Bse=w(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.CodeGen=ba.Name=ba.nil=ba.stringify=ba.str=ba._=ba.KeywordCxt=void 0;var Edn=rk();Object.defineProperty(ba,"KeywordCxt",{enumerable:!0,get:function(){return Edn.KeywordCxt}});var sk=Ot();Object.defineProperty(ba,"_",{enumerable:!0,get:function(){return sk._}});Object.defineProperty(ba,"str",{enumerable:!0,get:function(){return sk.str}});Object.defineProperty(ba,"stringify",{enumerable:!0,get:function(){return sk.stringify}});Object.defineProperty(ba,"nil",{enumerable:!0,get:function(){return sk.nil}});Object.defineProperty(ba,"Name",{enumerable:!0,get:function(){return sk.Name}});Object.defineProperty(ba,"CodeGen",{enumerable:!0,get:function(){return sk.CodeGen}});var _dn=IC(),s5e=Ym(),Tdn=mse(),OC=H_(),vdn=Ot(),PC=AC(),iV=vC(),qse=pn(),t5e=q6e(),Rdn=e5e(),o5e=(e,t)=>new RegExp(e,t);o5e.code="new RegExp";var Adn=["removeAdditional","useDefaults","coerceTypes"],wdn=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),kdn={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Idn={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},n5e=200;function xdn(e){var t,n,r,i,s,o,a,c,u,l,d,f,p,h,m,g,y,b,S,E,_,T,R,A,x;let k=e.strict,P=(t=e.code)===null||t===void 0?void 0:t.optimize,N=P===!0||P===void 0?1:P||0,C=(r=(n=e.code)===null||n===void 0?void 0:n.regExp)!==null&&r!==void 0?r:o5e,L=(i=e.uriResolver)!==null&&i!==void 0?i:Rdn.default;return{strictSchema:(o=(s=e.strictSchema)!==null&&s!==void 0?s:k)!==null&&o!==void 0?o:!0,strictNumbers:(c=(a=e.strictNumbers)!==null&&a!==void 0?a:k)!==null&&c!==void 0?c:!0,strictTypes:(l=(u=e.strictTypes)!==null&&u!==void 0?u:k)!==null&&l!==void 0?l:"log",strictTuples:(f=(d=e.strictTuples)!==null&&d!==void 0?d:k)!==null&&f!==void 0?f:"log",strictRequired:(h=(p=e.strictRequired)!==null&&p!==void 0?p:k)!==null&&h!==void 0?h:!1,code:e.code?{...e.code,optimize:N,regExp:C}:{optimize:N,regExp:C},loopRequired:(m=e.loopRequired)!==null&&m!==void 0?m:n5e,loopEnum:(g=e.loopEnum)!==null&&g!==void 0?g:n5e,meta:(y=e.meta)!==null&&y!==void 0?y:!0,messages:(b=e.messages)!==null&&b!==void 0?b:!0,inlineRefs:(S=e.inlineRefs)!==null&&S!==void 0?S:!0,schemaId:(E=e.schemaId)!==null&&E!==void 0?E:"$id",addUsedSchema:(_=e.addUsedSchema)!==null&&_!==void 0?_:!0,validateSchema:(T=e.validateSchema)!==null&&T!==void 0?T:!0,validateFormats:(R=e.validateFormats)!==null&&R!==void 0?R:!0,unicodeRegExp:(A=e.unicodeRegExp)!==null&&A!==void 0?A:!0,int32range:(x=e.int32range)!==null&&x!==void 0?x:!0,uriResolver:L}}var NC=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...xdn(t)};let{es5:n,lines:r}=this.opts.code;this.scope=new vdn.ValueScope({scope:{},prefixes:wdn,es5:n,lines:r}),this.logger=Ddn(t.logger);let i=t.validateFormats;t.validateFormats=!1,this.RULES=(0,Tdn.getRules)(),r5e.call(this,kdn,t,"NOT SUPPORTED"),r5e.call(this,Idn,t,"DEPRECATED","warn"),this._metaOpts=Cdn.call(this),t.formats&&Pdn.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&Ndn.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),Odn.call(this),t.validateFormats=i}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:r}=this.opts,i=t5e;r==="id"&&(i={...t5e},i.id=i.$id,delete i.$id),n&&t&&this.addMetaSchema(i,i[r],!1)}defaultMeta(){let{meta:t,schemaId:n}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[n]||t:void 0}validate(t,n){let r;if(typeof t=="string"){if(r=this.getSchema(t),!r)throw new Error(`no schema with key or ref "${t}"`)}else r=this.compile(t);let i=r(n);return"$async"in r||(this.errors=r.errors),i}compile(t,n){let r=this._addSchema(t,n);return r.validate||this._compileSchemaEnv(r)}compileAsync(t,n){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,t,n);async function i(l,d){await s.call(this,l.$schema);let f=this._addSchema(l,d);return f.validate||o.call(this,f)}async function s(l){l&&!this.getSchema(l)&&await i.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(d){if(!(d instanceof s5e.default))throw d;return a.call(this,d),await c.call(this,d.missingSchema),o.call(this,l)}}function a({missingSchema:l,missingRef:d}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${d} cannot be resolved`)}async function c(l){let d=await u.call(this,l);this.refs[l]||await s.call(this,d.$schema),this.refs[l]||this.addSchema(d,l,n)}async function u(l){let d=this._loading[l];if(d)return d;try{return await(this._loading[l]=r(l))}finally{delete this._loading[l]}}}addSchema(t,n,r,i=this.opts.validateSchema){if(Array.isArray(t)){for(let o of t)this.addSchema(o,void 0,r,i);return this}let s;if(typeof t=="object"){let{schemaId:o}=this.opts;if(s=t[o],s!==void 0&&typeof s!="string")throw new Error(`schema ${o} must be string`)}return n=(0,PC.normalizeId)(n||s),this._checkUnique(n),this.schemas[n]=this._addSchema(t,r,n,i,!0),this}addMetaSchema(t,n,r=this.opts.validateSchema){return this.addSchema(t,n,!0,r),this}validateSchema(t,n){if(typeof t=="boolean")return!0;let r;if(r=t.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let i=this.validate(r,t);if(!i&&n){let s="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(s);else throw new Error(s)}return i}getSchema(t){let n;for(;typeof(n=i5e.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:r}=this.opts,i=new OC.SchemaEnv({schema:{},schemaId:r});if(n=OC.resolveSchema.call(this,i,t),!n)return;this.refs[t]=n}return n.validate||this._compileSchemaEnv(n)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let n=i5e.call(this,t);return typeof n=="object"&&this._cache.delete(n.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let n=t;this._cache.delete(n);let r=t[this.opts.schemaId];return r&&(r=(0,PC.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let n of t)this.addKeyword(n);return this}addKeyword(t,n){let r;if(typeof t=="string")r=t,typeof n=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),n.keyword=r);else if(typeof t=="object"&&n===void 0){if(n=t,r=n.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Udn.call(this,r,n),!n)return(0,qse.eachItem)(r,s=>Hse.call(this,s)),this;jdn.call(this,n);let i={...n,type:(0,iV.getJSONTypes)(n.type),schemaType:(0,iV.getJSONTypes)(n.schemaType)};return(0,qse.eachItem)(r,i.type.length===0?s=>Hse.call(this,s,i):s=>i.type.forEach(o=>Hse.call(this,s,i,o))),this}getKeyword(t){let n=this.RULES.all[t];return typeof n=="object"?n.definition:!!n}removeKeyword(t){let{RULES:n}=this;delete n.keywords[t],delete n.all[t];for(let r of n.rules){let i=r.rules.findIndex(s=>s.keyword===t);i>=0&&r.rules.splice(i,1)}return this}addFormat(t,n){return typeof n=="string"&&(n=new RegExp(n)),this.formats[t]=n,this}errorsText(t=this.errors,{separator:n=", ",dataVar:r="data"}={}){return!t||t.length===0?"No errors":t.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,s)=>i+n+s)}$dataMetaSchema(t,n){let r=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let i of n){let s=i.split("/").slice(1),o=t;for(let a of s)o=o[a];for(let a in r){let c=r[a];if(typeof c!="object")continue;let{$data:u}=c.definition,l=o[a];u&&l&&(o[a]=a5e(l))}}return t}_removeAllSchemas(t,n){for(let r in t){let i=t[r];(!n||n.test(r))&&(typeof i=="string"?delete t[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete t[r]))}}_addSchema(t,n,r,i=this.opts.validateSchema,s=this.opts.addUsedSchema){let o,{schemaId:a}=this.opts;if(typeof t=="object")o=t[a];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(t);if(c!==void 0)return c;r=(0,PC.normalizeId)(o||r);let u=PC.getSchemaRefs.call(this,t,r);return c=new OC.SchemaEnv({schema:t,schemaId:a,meta:n,baseId:r,localRefs:u}),this._cache.set(c.schema,c),s&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=c),i&&this.validateSchema(t,!0),c}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):OC.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let n=this.opts;this.opts=this._metaOpts;try{OC.compileSchema.call(this,t)}finally{this.opts=n}}};NC.ValidationError=_dn.default;NC.MissingRefError=s5e.default;ba.default=NC;function r5e(e,t,n,r="error"){for(let i in e){let s=i;s in t&&this.logger[r](`${n}: option ${i}. ${e[s]}`)}}function i5e(e){return e=(0,PC.normalizeId)(e),this.schemas[e]||this.refs[e]}function Odn(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function Pdn(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function Ndn(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}function Cdn(){let e={...this.opts};for(let t of Adn)delete e[t];return e}var Mdn={log(){},warn(){},error(){}};function Ddn(e){if(e===!1)return Mdn;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var Ldn=/^[a-z_$][a-z0-9_$:-]*$/i;function Udn(e,t){let{RULES:n}=this;if((0,qse.eachItem)(e,r=>{if(n.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!Ldn.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function Hse(e,t,n){var r;let i=t?.post;if(n&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:s}=this,o=i?s.post:s.rules.find(({type:c})=>c===n);if(o||(o={type:n,rules:[]},s.rules.push(o)),s.keywords[e]=!0,!t)return;let a={keyword:e,definition:{...t,type:(0,iV.getJSONTypes)(t.type),schemaType:(0,iV.getJSONTypes)(t.schemaType)}};t.before?Fdn.call(this,o,a,t.before):o.rules.push(a),s.all[e]=a,(r=t.implements)===null||r===void 0||r.forEach(c=>this.addKeyword(c))}function Fdn(e,t,n){let r=e.rules.findIndex(i=>i.keyword===n);r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function jdn(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=a5e(t)),e.validateSchema=this.compile(t,!0))}var Hdn={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function a5e(e){return{anyOf:[e,Hdn]}}});var c5e=w(zse=>{"use strict";Object.defineProperty(zse,"__esModule",{value:!0});var qdn={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};zse.default=qdn});var Gse=w(q_=>{"use strict";Object.defineProperty(q_,"__esModule",{value:!0});q_.callRef=q_.getValidate=void 0;var Bdn=Ym(),u5e=Sa(),wu=Ot(),ok=Sd(),l5e=H_(),sV=pn(),zdn={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:n,it:r}=e,{baseId:i,schemaEnv:s,validateName:o,opts:a,self:c}=r,{root:u}=s;if((n==="#"||n==="#/")&&i===u.baseId)return d();let l=l5e.resolveRef.call(c,u,i,n);if(l===void 0)throw new Bdn.default(r.opts.uriResolver,i,n);if(l instanceof l5e.SchemaEnv)return f(l);return p(l);function d(){if(s===u)return oV(e,o,s,s.$async);let h=t.scopeValue("root",{ref:u});return oV(e,(0,wu._)`${h}.validate`,u,u.$async)}function f(h){let m=d5e(e,h);oV(e,m,h,h.$async)}function p(h){let m=t.scopeValue("schema",a.code.source===!0?{ref:h,code:(0,wu.stringify)(h)}:{ref:h}),g=t.name("valid"),y=e.subschema({schema:h,dataTypes:[],schemaPath:wu.nil,topSchemaRef:m,errSchemaPath:n},g);e.mergeEvaluated(y),e.ok(g)}}};function d5e(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,wu._)`${n.scopeValue("wrapper",{ref:t})}.validate`}q_.getValidate=d5e;function oV(e,t,n,r){let{gen:i,it:s}=e,{allErrors:o,schemaEnv:a,opts:c}=s,u=c.passContext?ok.default.this:wu.nil;r?l():d();function l(){if(!a.$async)throw new Error("async schema referenced by sync schema");let h=i.let("valid");i.try(()=>{i.code((0,wu._)`await ${(0,u5e.callValidateCode)(e,t,u)}`),p(t),o||i.assign(h,!0)},m=>{i.if((0,wu._)`!(${m} instanceof ${s.ValidationError})`,()=>i.throw(m)),f(m),o||i.assign(h,!1)}),e.ok(h)}function d(){e.result((0,u5e.callValidateCode)(e,t,u),()=>p(t),()=>f(t))}function f(h){let m=(0,wu._)`${h}.errors`;i.assign(ok.default.vErrors,(0,wu._)`${ok.default.vErrors} === null ? ${m} : ${ok.default.vErrors}.concat(${m})`),i.assign(ok.default.errors,(0,wu._)`${ok.default.vErrors}.length`)}function p(h){var m;if(!s.opts.unevaluated)return;let g=(m=n?.validate)===null||m===void 0?void 0:m.evaluated;if(s.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(s.props=sV.mergeEvaluated.props(i,g.props,s.props));else{let y=i.var("props",(0,wu._)`${h}.evaluated.props`);s.props=sV.mergeEvaluated.props(i,y,s.props,wu.Name)}if(s.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(s.items=sV.mergeEvaluated.items(i,g.items,s.items));else{let y=i.var("items",(0,wu._)`${h}.evaluated.items`);s.items=sV.mergeEvaluated.items(i,y,s.items,wu.Name)}}}q_.callRef=oV;q_.default=zdn});var f5e=w(Vse=>{"use strict";Object.defineProperty(Vse,"__esModule",{value:!0});var Gdn=c5e(),Vdn=Gse(),Wdn=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Gdn.default,Vdn.default];Vse.default=Wdn});var p5e=w(Wse=>{"use strict";Object.defineProperty(Wse,"__esModule",{value:!0});var aV=Ot(),FS=aV.operators,cV={maximum:{okStr:"<=",ok:FS.LTE,fail:FS.GT},minimum:{okStr:">=",ok:FS.GTE,fail:FS.LT},exclusiveMaximum:{okStr:"<",ok:FS.LT,fail:FS.GTE},exclusiveMinimum:{okStr:">",ok:FS.GT,fail:FS.LTE}},Kdn={message:({keyword:e,schemaCode:t})=>(0,aV.str)`must be ${cV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,aV._)`{comparison: ${cV[e].okStr}, limit: ${t}}`},Ydn={keyword:Object.keys(cV),type:"number",schemaType:"number",$data:!0,error:Kdn,code(e){let{keyword:t,data:n,schemaCode:r}=e;e.fail$data((0,aV._)`${n} ${cV[t].fail} ${r} || isNaN(${n})`)}};Wse.default=Ydn});var h5e=w(Kse=>{"use strict";Object.defineProperty(Kse,"__esModule",{value:!0});var CC=Ot(),Zdn={message:({schemaCode:e})=>(0,CC.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,CC._)`{multipleOf: ${e}}`},Jdn={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Zdn,code(e){let{gen:t,data:n,schemaCode:r,it:i}=e,s=i.opts.multipleOfPrecision,o=t.let("res"),a=s?(0,CC._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,CC._)`${o} !== parseInt(${o})`;e.fail$data((0,CC._)`(${r} === 0 || (${o} = ${n}/${r}, ${a}))`)}};Kse.default=Jdn});var g5e=w(Yse=>{"use strict";Object.defineProperty(Yse,"__esModule",{value:!0});function m5e(e){let t=e.length,n=0,r=0,i;for(;r=55296&&i<=56319&&r{"use strict";Object.defineProperty(Zse,"__esModule",{value:!0});var B_=Ot(),Xdn=pn(),Qdn=g5e(),$dn={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,B_.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,B_._)`{limit: ${e}}`},efn={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:$dn,code(e){let{keyword:t,data:n,schemaCode:r,it:i}=e,s=t==="maxLength"?B_.operators.GT:B_.operators.LT,o=i.opts.unicode===!1?(0,B_._)`${n}.length`:(0,B_._)`${(0,Xdn.useFunc)(e.gen,Qdn.default)}(${n})`;e.fail$data((0,B_._)`${o} ${s} ${r}`)}};Zse.default=efn});var S5e=w(Jse=>{"use strict";Object.defineProperty(Jse,"__esModule",{value:!0});var tfn=Sa(),nfn=pn(),ak=Ot(),rfn={message:({schemaCode:e})=>(0,ak.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,ak._)`{pattern: ${e}}`},ifn={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:rfn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e,a=o.opts.unicodeRegExp?"u":"";if(r){let{regExp:c}=o.opts.code,u=c.code==="new RegExp"?(0,ak._)`new RegExp`:(0,nfn.useFunc)(t,c),l=t.let("valid");t.try(()=>t.assign(l,(0,ak._)`${u}(${s}, ${a}).test(${n})`),()=>t.assign(l,!1)),e.fail$data((0,ak._)`!${l}`)}else{let c=(0,tfn.usePattern)(e,i);e.fail$data((0,ak._)`!${c}.test(${n})`)}}};Jse.default=ifn});var b5e=w(Xse=>{"use strict";Object.defineProperty(Xse,"__esModule",{value:!0});var MC=Ot(),sfn={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,MC.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,MC._)`{limit: ${e}}`},ofn={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:sfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxProperties"?MC.operators.GT:MC.operators.LT;e.fail$data((0,MC._)`Object.keys(${n}).length ${i} ${r}`)}};Xse.default=ofn});var E5e=w(Qse=>{"use strict";Object.defineProperty(Qse,"__esModule",{value:!0});var DC=Sa(),LC=Ot(),afn=pn(),cfn={message:({params:{missingProperty:e}})=>(0,LC.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,LC._)`{missingProperty: ${e}}`},ufn={keyword:"required",type:"object",schemaType:"array",$data:!0,error:cfn,code(e){let{gen:t,schema:n,schemaCode:r,data:i,$data:s,it:o}=e,{opts:a}=o;if(!s&&n.length===0)return;let c=n.length>=a.loopRequired;if(o.allErrors?u():l(),a.strictRequired){let p=e.parentSchema.properties,{definedProperties:h}=e.it;for(let m of n)if(p?.[m]===void 0&&!h.has(m)){let g=o.schemaEnv.baseId+o.errSchemaPath,y=`required property "${m}" is not defined at "${g}" (strictRequired)`;(0,afn.checkStrictMode)(o,y,o.opts.strictRequired)}}function u(){if(c||s)e.block$data(LC.nil,d);else for(let p of n)(0,DC.checkReportMissingProp)(e,p)}function l(){let p=t.let("missing");if(c||s){let h=t.let("valid",!0);e.block$data(h,()=>f(p,h)),e.ok(h)}else t.if((0,DC.checkMissingProp)(e,n,p)),(0,DC.reportMissingProp)(e,p),t.else()}function d(){t.forOf("prop",r,p=>{e.setParams({missingProperty:p}),t.if((0,DC.noPropertyInData)(t,i,p,a.ownProperties),()=>e.error())})}function f(p,h){e.setParams({missingProperty:p}),t.forOf(p,r,()=>{t.assign(h,(0,DC.propertyInData)(t,i,p,a.ownProperties)),t.if((0,LC.not)(h),()=>{e.error(),t.break()})},LC.nil)}}};Qse.default=ufn});var _5e=w($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});var UC=Ot(),lfn={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,UC.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,UC._)`{limit: ${e}}`},dfn={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:lfn,code(e){let{keyword:t,data:n,schemaCode:r}=e,i=t==="maxItems"?UC.operators.GT:UC.operators.LT;e.fail$data((0,UC._)`${n}.length ${i} ${r}`)}};$se.default=dfn});var FC=w(eoe=>{"use strict";Object.defineProperty(eoe,"__esModule",{value:!0});var T5e=RC();T5e.code='require("ajv/dist/runtime/equal").default';eoe.default=T5e});var v5e=w(noe=>{"use strict";Object.defineProperty(noe,"__esModule",{value:!0});var toe=vC(),Ea=Ot(),ffn=pn(),pfn=FC(),hfn={message:({params:{i:e,j:t}})=>(0,Ea.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Ea._)`{i: ${e}, j: ${t}}`},mfn={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:hfn,code(e){let{gen:t,data:n,$data:r,schema:i,parentSchema:s,schemaCode:o,it:a}=e;if(!r&&!i)return;let c=t.let("valid"),u=s.items?(0,toe.getSchemaTypes)(s.items):[];e.block$data(c,l,(0,Ea._)`${o} === false`),e.ok(c);function l(){let h=t.let("i",(0,Ea._)`${n}.length`),m=t.let("j");e.setParams({i:h,j:m}),t.assign(c,!0),t.if((0,Ea._)`${h} > 1`,()=>(d()?f:p)(h,m))}function d(){return u.length>0&&!u.some(h=>h==="object"||h==="array")}function f(h,m){let g=t.name("item"),y=(0,toe.checkDataTypes)(u,g,a.opts.strictNumbers,toe.DataType.Wrong),b=t.const("indices",(0,Ea._)`{}`);t.for((0,Ea._)`;${h}--;`,()=>{t.let(g,(0,Ea._)`${n}[${h}]`),t.if(y,(0,Ea._)`continue`),u.length>1&&t.if((0,Ea._)`typeof ${g} == "string"`,(0,Ea._)`${g} += "_"`),t.if((0,Ea._)`typeof ${b}[${g}] == "number"`,()=>{t.assign(m,(0,Ea._)`${b}[${g}]`),e.error(),t.assign(c,!1).break()}).code((0,Ea._)`${b}[${g}] = ${h}`)})}function p(h,m){let g=(0,ffn.useFunc)(t,pfn.default),y=t.name("outer");t.label(y).for((0,Ea._)`;${h}--;`,()=>t.for((0,Ea._)`${m} = ${h}; ${m}--;`,()=>t.if((0,Ea._)`${g}(${n}[${h}], ${n}[${m}])`,()=>{e.error(),t.assign(c,!1).break(y)})))}}};noe.default=mfn});var R5e=w(ioe=>{"use strict";Object.defineProperty(ioe,"__esModule",{value:!0});var roe=Ot(),gfn=pn(),yfn=FC(),Sfn={message:"must be equal to constant",params:({schemaCode:e})=>(0,roe._)`{allowedValue: ${e}}`},bfn={keyword:"const",$data:!0,error:Sfn,code(e){let{gen:t,data:n,$data:r,schemaCode:i,schema:s}=e;r||s&&typeof s=="object"?e.fail$data((0,roe._)`!${(0,gfn.useFunc)(t,yfn.default)}(${n}, ${i})`):e.fail((0,roe._)`${s} !== ${n}`)}};ioe.default=bfn});var A5e=w(soe=>{"use strict";Object.defineProperty(soe,"__esModule",{value:!0});var jC=Ot(),Efn=pn(),_fn=FC(),Tfn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,jC._)`{allowedValues: ${e}}`},vfn={keyword:"enum",schemaType:"array",$data:!0,error:Tfn,code(e){let{gen:t,data:n,$data:r,schema:i,schemaCode:s,it:o}=e;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let a=i.length>=o.opts.loopEnum,c,u=()=>c??(c=(0,Efn.useFunc)(t,_fn.default)),l;if(a||r)l=t.let("valid"),e.block$data(l,d);else{if(!Array.isArray(i))throw new Error("ajv implementation error");let p=t.const("vSchema",s);l=(0,jC.or)(...i.map((h,m)=>f(p,m)))}e.pass(l);function d(){t.assign(l,!1),t.forOf("v",s,p=>t.if((0,jC._)`${u()}(${n}, ${p})`,()=>t.assign(l,!0).break()))}function f(p,h){let m=i[h];return typeof m=="object"&&m!==null?(0,jC._)`${u()}(${n}, ${p}[${h}])`:(0,jC._)`${n} === ${m}`}}};soe.default=vfn});var w5e=w(ooe=>{"use strict";Object.defineProperty(ooe,"__esModule",{value:!0});var Rfn=p5e(),Afn=h5e(),wfn=y5e(),kfn=S5e(),Ifn=b5e(),xfn=E5e(),Ofn=_5e(),Pfn=v5e(),Nfn=R5e(),Cfn=A5e(),Mfn=[Rfn.default,Afn.default,wfn.default,kfn.default,Ifn.default,xfn.default,Ofn.default,Pfn.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Nfn.default,Cfn.default];ooe.default=Mfn});var coe=w(HC=>{"use strict";Object.defineProperty(HC,"__esModule",{value:!0});HC.validateAdditionalItems=void 0;var z_=Ot(),aoe=pn(),Dfn={message:({params:{len:e}})=>(0,z_.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,z_._)`{limit: ${e}}`},Lfn={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Dfn,code(e){let{parentSchema:t,it:n}=e,{items:r}=t;if(!Array.isArray(r)){(0,aoe.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}k5e(e,r)}};function k5e(e,t){let{gen:n,schema:r,data:i,keyword:s,it:o}=e;o.items=!0;let a=n.const("len",(0,z_._)`${i}.length`);if(r===!1)e.setParams({len:t.length}),e.pass((0,z_._)`${a} <= ${t.length}`);else if(typeof r=="object"&&!(0,aoe.alwaysValidSchema)(o,r)){let u=n.var("valid",(0,z_._)`${a} <= ${t.length}`);n.if((0,z_.not)(u),()=>c(u)),e.ok(u)}function c(u){n.forRange("i",t.length,a,l=>{e.subschema({keyword:s,dataProp:l,dataPropType:aoe.Type.Num},u),o.allErrors||n.if((0,z_.not)(u),()=>n.break())})}}HC.validateAdditionalItems=k5e;HC.default=Lfn});var uoe=w(qC=>{"use strict";Object.defineProperty(qC,"__esModule",{value:!0});qC.validateTuple=void 0;var I5e=Ot(),uV=pn(),Ufn=Sa(),Ffn={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return x5e(e,"additionalItems",t);n.items=!0,!(0,uV.alwaysValidSchema)(n,t)&&e.ok((0,Ufn.validateArray)(e))}};function x5e(e,t,n=e.schema){let{gen:r,parentSchema:i,data:s,keyword:o,it:a}=e;l(i),a.opts.unevaluated&&n.length&&a.items!==!0&&(a.items=uV.mergeEvaluated.items(r,n.length,a.items));let c=r.name("valid"),u=r.const("len",(0,I5e._)`${s}.length`);n.forEach((d,f)=>{(0,uV.alwaysValidSchema)(a,d)||(r.if((0,I5e._)`${u} > ${f}`,()=>e.subschema({keyword:o,schemaProp:f,dataProp:f},c)),e.ok(c))});function l(d){let{opts:f,errSchemaPath:p}=a,h=n.length,m=h===d.minItems&&(h===d.maxItems||d[t]===!1);if(f.strictTuples&&!m){let g=`"${o}" is ${h}-tuple, but minItems or maxItems/${t} are not specified or different at path "${p}"`;(0,uV.checkStrictMode)(a,g,f.strictTuples)}}}qC.validateTuple=x5e;qC.default=Ffn});var O5e=w(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});var jfn=uoe(),Hfn={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,jfn.validateTuple)(e,"items")};loe.default=Hfn});var N5e=w(doe=>{"use strict";Object.defineProperty(doe,"__esModule",{value:!0});var P5e=Ot(),qfn=pn(),Bfn=Sa(),zfn=coe(),Gfn={message:({params:{len:e}})=>(0,P5e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,P5e._)`{limit: ${e}}`},Vfn={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Gfn,code(e){let{schema:t,parentSchema:n,it:r}=e,{prefixItems:i}=n;r.items=!0,!(0,qfn.alwaysValidSchema)(r,t)&&(i?(0,zfn.validateAdditionalItems)(e,i):e.ok((0,Bfn.validateArray)(e)))}};doe.default=Vfn});var C5e=w(foe=>{"use strict";Object.defineProperty(foe,"__esModule",{value:!0});var Ed=Ot(),lV=pn(),Wfn={message:({params:{min:e,max:t}})=>t===void 0?(0,Ed.str)`must contain at least ${e} valid item(s)`:(0,Ed.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,Ed._)`{minContains: ${e}}`:(0,Ed._)`{minContains: ${e}, maxContains: ${t}}`},Kfn={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Wfn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e,o,a,{minContains:c,maxContains:u}=r;s.opts.next?(o=c===void 0?1:c,a=u):o=1;let l=t.const("len",(0,Ed._)`${i}.length`);if(e.setParams({min:o,max:a}),a===void 0&&o===0){(0,lV.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(a!==void 0&&o>a){(0,lV.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,lV.alwaysValidSchema)(s,n)){let m=(0,Ed._)`${l} >= ${o}`;a!==void 0&&(m=(0,Ed._)`${m} && ${l} <= ${a}`),e.pass(m);return}s.items=!0;let d=t.name("valid");a===void 0&&o===1?p(d,()=>t.if(d,()=>t.break())):o===0?(t.let(d,!0),a!==void 0&&t.if((0,Ed._)`${i}.length > 0`,f)):(t.let(d,!1),f()),e.result(d,()=>e.reset());function f(){let m=t.name("_valid"),g=t.let("count",0);p(m,()=>t.if(m,()=>h(g)))}function p(m,g){t.forRange("i",0,l,y=>{e.subschema({keyword:"contains",dataProp:y,dataPropType:lV.Type.Num,compositeRule:!0},m),g()})}function h(m){t.code((0,Ed._)`${m}++`),a===void 0?t.if((0,Ed._)`${m} >= ${o}`,()=>t.assign(d,!0).break()):(t.if((0,Ed._)`${m} > ${a}`,()=>t.assign(d,!1).break()),o===1?t.assign(d,!0):t.if((0,Ed._)`${m} >= ${o}`,()=>t.assign(d,!0)))}}};foe.default=Kfn});var L5e=w(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.validateSchemaDeps=mh.validatePropertyDeps=mh.error=void 0;var poe=Ot(),Yfn=pn(),BC=Sa();mh.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let r=t===1?"property":"properties";return(0,poe.str)`must have ${r} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:r}})=>(0,poe._)`{property: ${e}, missingProperty: ${r}, depsCount: ${t}, - deps: ${n}}`};var Zfn={keyword:"dependencies",type:"object",schemaType:"object",error:mh.error,code(e){let[t,n]=Jfn(e);C5e(e,t),M5e(e,n)}};function Jfn({schema:e}){let t={},n={};for(let r in e){if(r==="__proto__")continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function C5e(e,t=e.schema){let{gen:n,data:r,it:i}=e;if(Object.keys(t).length===0)return;let s=n.let("missing");for(let o in t){let a=t[o];if(a.length===0)continue;let c=(0,qC.propertyInData)(n,r,o,i.opts.ownProperties);e.setParams({property:o,depsCount:a.length,deps:a.join(", ")}),i.allErrors?n.if(c,()=>{for(let u of a)(0,qC.checkReportMissingProp)(e,u)}):(n.if((0,foe._)`${c} && (${(0,qC.checkMissingProp)(e,a,s)})`),(0,qC.reportMissingProp)(e,s),n.else())}}mh.validatePropertyDeps=C5e;function M5e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,Yfn.alwaysValidSchema)(s,t[a])||(n.if((0,qC.propertyInData)(n,r,a,s.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:a},o);e.mergeValidEvaluated(c,o)},()=>n.var(o,!0)),e.ok(o))}mh.validateSchemaDeps=M5e;mh.default=Zfn});var U5e=w(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});var L5e=Ot(),Xfn=pn(),Qfn={message:"property name must be valid",params:({params:e})=>(0,L5e._)`{propertyName: ${e.propertyName}}`},$fn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Qfn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,Xfn.alwaysValidSchema)(i,n))return;let s=t.name("valid");t.forIn("key",r,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},s),t.if((0,L5e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};poe.default=$fn});var moe=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var uV=Sa(),kf=Ot(),epn=Sd(),lV=pn(),tpn={message:"must NOT have additional properties",params:({params:e})=>(0,kf._)`{additionalProperty: ${e.additionalProperty}}`},npn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:tpn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,errsCount:s,it:o}=e;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,lV.alwaysValidSchema)(o,n))return;let u=(0,uV.allSchemaProperties)(r.properties),l=(0,uV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,kf._)`${s} === ${epn.default.errors}`);function d(){t.forIn("key",i,g=>{!u.length&&!l.length?h(g):t.if(f(g),()=>h(g))})}function f(g){let y;if(u.length>8){let b=(0,lV.schemaRefOrVal)(o,r.properties,"properties");y=(0,uV.isOwnProperty)(t,b,g)}else u.length?y=(0,kf.or)(...u.map(b=>(0,kf._)`${g} === ${b}`)):y=kf.nil;return l.length&&(y=(0,kf.or)(y,...l.map(b=>(0,kf._)`${(0,uV.usePattern)(e,b)}.test(${g})`))),(0,kf.not)(y)}function p(g){t.code((0,kf._)`delete ${i}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&n===!1){p(g);return}if(n===!1){e.setParams({additionalProperty:g}),e.error(),a||t.break();return}if(typeof n=="object"&&!(0,lV.alwaysValidSchema)(o,n)){let y=t.name("valid");c.removeAdditional==="failing"?(m(g,y,!1),t.if((0,kf.not)(y),()=>{e.reset(),p(g)})):(m(g,y),a||t.if((0,kf.not)(y),()=>t.break()))}}function m(g,y,b){let S={keyword:"additionalProperties",dataProp:g,dataPropType:lV.Type.Str};b===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,y)}}};hoe.default=npn});var H5e=w(yoe=>{"use strict";Object.defineProperty(yoe,"__esModule",{value:!0});var rpn=rk(),F5e=Sa(),goe=pn(),j5e=moe(),ipn={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e;s.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&j5e.default.code(new rpn.KeywordCxt(s,j5e.default,"additionalProperties"));let o=(0,F5e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=goe.mergeEvaluated.props(t,(0,goe.toHash)(o),s.props));let a=o.filter(d=>!(0,goe.alwaysValidSchema)(s,n[d]));if(a.length===0)return;let c=t.name("valid");for(let d of a)u(d)?l(d):(t.if((0,F5e.propertyInData)(t,i,d,s.opts.ownProperties)),l(d),s.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function u(d){return s.opts.useDefaults&&!s.compositeRule&&n[d].default!==void 0}function l(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};yoe.default=ipn});var G5e=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var q5e=Sa(),dV=Ot(),B5e=pn(),z5e=pn(),spn={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,data:r,parentSchema:i,it:s}=e,{opts:o}=s,a=(0,q5e.allSchemaProperties)(n),c=a.filter(m=>(0,B5e.alwaysValidSchema)(s,n[m]));if(a.length===0||c.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=t.name("valid");s.props!==!0&&!(s.props instanceof dV.Name)&&(s.props=(0,z5e.evaluatedPropsToName)(t,s.props));let{props:d}=s;f();function f(){for(let m of a)u&&p(m),s.allErrors?h(m):(t.var(l,!0),h(m),t.if(l))}function p(m){for(let g in u)new RegExp(m).test(g)&&(0,B5e.checkStrictMode)(s,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,g=>{t.if((0,dV._)`${(0,q5e.usePattern)(e,m)}.test(${g})`,()=>{let y=c.includes(m);y||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:z5e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,dV._)`${d}[${g}]`,!0):!y&&!s.allErrors&&t.if((0,dV.not)(l),()=>t.break())})})}}};Soe.default=spn});var V5e=w(boe=>{"use strict";Object.defineProperty(boe,"__esModule",{value:!0});var opn=pn(),apn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,opn.alwaysValidSchema)(r,n)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};boe.default=apn});var W5e=w(Eoe=>{"use strict";Object.defineProperty(Eoe,"__esModule",{value:!0});var cpn=Sa(),upn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:cpn.validateUnion,error:{message:"must match a schema in anyOf"}};Eoe.default=upn});var K5e=w(_oe=>{"use strict";Object.defineProperty(_oe,"__esModule",{value:!0});var fV=Ot(),lpn=pn(),dpn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,fV._)`{passingSchemas: ${e.passing}}`},fpn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:dpn,code(e){let{gen:t,schema:n,parentSchema:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let s=n,o=t.let("valid",!1),a=t.let("passing",null),c=t.name("_valid");e.setParams({passing:a}),t.block(u),e.result(o,()=>e.reset(),()=>e.error(!0));function u(){s.forEach((l,d)=>{let f;(0,lpn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,fV._)`${c} && ${o}`).assign(o,!1).assign(a,(0,fV._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,fV.Name)})})}}};_oe.default=fpn});var Y5e=w(Toe=>{"use strict";Object.defineProperty(Toe,"__esModule",{value:!0});var ppn=pn(),hpn={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let i=t.name("valid");n.forEach((s,o)=>{if((0,ppn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};Toe.default=hpn});var X5e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var pV=Ot(),J5e=pn(),mpn={message:({params:e})=>(0,pV.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,pV._)`{failingKeyword: ${e.ifClause}}`},gpn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:mpn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,J5e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=Z5e(r,"then"),s=Z5e(r,"else");if(!i&&!s)return;let o=t.let("valid",!0),a=t.name("_valid");if(c(),e.reset(),i&&s){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(a,u("then",l),u("else",l))}else i?t.if(a,u("then")):t.if((0,pV.not)(a),u("else"));e.pass(o,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(l)}function u(l,d){return()=>{let f=e.subschema({keyword:l},a);t.assign(o,a),e.mergeValidEvaluated(f,o),d?t.assign(d,(0,pV._)`${l}`):e.setParams({ifClause:l})}}}};function Z5e(e,t){let n=e.schema[t];return n!==void 0&&!(0,J5e.alwaysValidSchema)(e,n)}voe.default=gpn});var Q5e=w(Roe=>{"use strict";Object.defineProperty(Roe,"__esModule",{value:!0});var ypn=pn(),Spn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,ypn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Roe.default=Spn});var $5e=w(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});var bpn=aoe(),Epn=x5e(),_pn=coe(),Tpn=P5e(),vpn=N5e(),Rpn=D5e(),Apn=U5e(),wpn=moe(),kpn=H5e(),Ipn=G5e(),xpn=V5e(),Opn=W5e(),Ppn=K5e(),Npn=Y5e(),Cpn=X5e(),Mpn=Q5e();function Dpn(e=!1){let t=[xpn.default,Opn.default,Ppn.default,Npn.default,Cpn.default,Mpn.default,Apn.default,wpn.default,Rpn.default,kpn.default,Ipn.default];return e?t.push(Epn.default,Tpn.default):t.push(bpn.default,_pn.default),t.push(vpn.default),t}Aoe.default=Dpn});var e8e=w(woe=>{"use strict";Object.defineProperty(woe,"__esModule",{value:!0});var Cs=Ot(),Lpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},Upn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Lpn,code(e,t){let{gen:n,data:r,$data:i,schema:s,schemaCode:o,it:a}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;i?f():p();function f(){let h=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),m=n.const("fDef",(0,Cs._)`${h}[${o}]`),g=n.let("fType"),y=n.let("format");n.if((0,Cs._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>n.assign(g,(0,Cs._)`${m}.type || "string"`).assign(y,(0,Cs._)`${m}.validate`),()=>n.assign(g,(0,Cs._)`"string"`).assign(y,m)),e.fail$data((0,Cs.or)(b(),S()));function b(){return c.strictSchema===!1?Cs.nil:(0,Cs._)`${o} && !${y}`}function S(){let E=l.$async?(0,Cs._)`(${m}.async ? await ${y}(${r}) : ${y}(${r}))`:(0,Cs._)`${y}(${r})`,_=(0,Cs._)`(typeof ${y} == "function" ? ${E} : ${y}.test(${r}))`;return(0,Cs._)`${y} && ${y} !== true && ${g} === ${t} && !${_}`}}function p(){let h=d.formats[s];if(!h){b();return}if(h===!0)return;let[m,g,y]=S(h);m===t&&e.pass(E());function b(){if(c.strictSchema===!1){d.logger.warn(_());return}throw new Error(_());function _(){return`unknown format "${s}" ignored in schema at path "${u}"`}}function S(_){let T=_ instanceof RegExp?(0,Cs.regexpCode)(_):c.code.formats?(0,Cs._)`${c.code.formats}${(0,Cs.getProperty)(s)}`:void 0,R=n.scopeValue("formats",{key:s,ref:_,code:T});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Cs._)`${R}.validate`]:["string",_,R]}function E(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Cs._)`await ${y}(${r})`}return typeof g=="function"?(0,Cs._)`${y}(${r})`:(0,Cs._)`${y}.test(${r})`}}}};woe.default=Upn});var t8e=w(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});var Fpn=e8e(),jpn=[Fpn.default];koe.default=jpn});var n8e=w(ck=>{"use strict";Object.defineProperty(ck,"__esModule",{value:!0});ck.contentVocabulary=ck.metadataVocabulary=void 0;ck.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ck.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var i8e=w(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});var Hpn=d5e(),qpn=A5e(),Bpn=$5e(),zpn=t8e(),r8e=n8e(),Gpn=[Hpn.default,qpn.default,(0,Bpn.default)(),zpn.default,r8e.metadataVocabulary,r8e.contentVocabulary];Ioe.default=Gpn});var xoe=w(hV=>{"use strict";Object.defineProperty(hV,"__esModule",{value:!0});hV.DiscrError=void 0;var s8e;(function(e){e.Tag="tag",e.Mapping="mapping"})(s8e||(hV.DiscrError=s8e={}))});var a8e=w(Poe=>{"use strict";Object.defineProperty(Poe,"__esModule",{value:!0});var uk=Ot(),Ooe=xoe(),o8e=H_(),Vpn=Ym(),Wpn=pn(),Kpn={message:({params:{discrError:e,tagName:t}})=>e===Ooe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,uk._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},Ypn={keyword:"discriminator",type:"object",schemaType:"object",error:Kpn,code(e){let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{oneOf:o}=i;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),u=t.const("tag",(0,uk._)`${n}${(0,uk.getProperty)(a)}`);t.if((0,uk._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Ooe.DiscrError.Tag,tag:u,tagName:a})),e.ok(c);function l(){let p=f();t.if(!1);for(let h in p)t.elseIf((0,uk._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:Ooe.DiscrError.Mapping,tag:u,tagName:a}),t.endIf()}function d(p){let h=t.name("valid"),m=e.subschema({keyword:"oneOf",schemaProp:p},h);return e.mergeEvaluated(m,uk.Name),h}function f(){var p;let h={},m=y(i),g=!0;for(let E=0;E{Zpn.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var G_=w((yi,Noe)=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.MissingRefError=yi.ValidationError=yi.CodeGen=yi.Name=yi.nil=yi.stringify=yi.str=yi._=yi.KeywordCxt=yi.Ajv=void 0;var Jpn=qse(),Xpn=i8e(),Qpn=a8e(),u8e=c8e(),$pn=["/properties"],mV="http://json-schema.org/draft-07/schema",lk=class extends Jpn.default{_addVocabularies(){super._addVocabularies(),Xpn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(Qpn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(u8e,$pn):u8e;this.addMetaSchema(t,mV,!1),this.refs["http://json-schema.org/schema"]=mV}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(mV)?mV:void 0)}};yi.Ajv=lk;Noe.exports=yi=lk;Noe.exports.Ajv=lk;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=lk;var ehn=rk();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return ehn.KeywordCxt}});var dk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return dk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return dk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return dk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return dk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return dk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return dk.CodeGen}});var thn=kC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return thn.default}});var nhn=Ym();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return nhn.default}})});var gV=w(yh=>{"use strict";Object.defineProperty(yh,"__esModule",{value:!0});yh.formatNames=yh.fastFormats=yh.fullFormats=void 0;function gh(e,t){return{validate:e,compare:t}}yh.fullFormats={date:gh(p8e,Loe),time:gh(Moe(!0),Uoe),"date-time":gh(l8e(!0),m8e),"iso-time":gh(Moe(),h8e),"iso-date-time":gh(l8e(),g8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:chn,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:mhn,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:uhn,int32:{type:"number",validate:fhn},int64:{type:"number",validate:phn},float:{type:"number",validate:f8e},double:{type:"number",validate:f8e},password:!0,binary:!0};yh.fastFormats={...yh.fullFormats,date:gh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Loe),time:gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Uoe),"date-time":gh(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,m8e),"iso-time":gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,h8e),"iso-date-time":gh(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,g8e),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};yh.formatNames=Object.keys(yh.fullFormats);function rhn(e){return e%4===0&&(e%100!==0||e%400===0)}var ihn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,shn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function p8e(e){let t=ihn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r===2&&rhn(n)?29:shn[r])}function Loe(e,t){if(e&&t)return e>t?1:e23||l>59||e&&!a)return!1;if(i<=23&&s<=59&&o<60)return!0;let d=s-l*c,f=i-u*c-(d<0?1:0);return(f===23||f===-1)&&(d===59||d===-1)&&o<61}}function Uoe(e,t){if(!(e&&t))return;let n=new Date("2020-01-01T"+e).valueOf(),r=new Date("2020-01-01T"+t).valueOf();if(n&&r)return n-r}function h8e(e,t){if(!(e&&t))return;let n=Coe.exec(e),r=Coe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=lhn}function phn(e){return Number.isInteger(e)}function f8e(){return!0}var hhn=/[^\\]\\Z/;function mhn(e){if(hhn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var y8e=w(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});fk.formatLimitDefinition=void 0;var ghn=G_(),If=Ot(),jS=If.operators,yV={formatMaximum:{okStr:"<=",ok:jS.LTE,fail:jS.GT},formatMinimum:{okStr:">=",ok:jS.GTE,fail:jS.LT},formatExclusiveMaximum:{okStr:"<",ok:jS.LT,fail:jS.GTE},formatExclusiveMinimum:{okStr:">",ok:jS.GT,fail:jS.LTE}},yhn={message:({keyword:e,schemaCode:t})=>(0,If.str)`should be ${yV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,If._)`{comparison: ${yV[e].okStr}, limit: ${t}}`};fk.formatLimitDefinition={keyword:Object.keys(yV),type:"string",schemaType:"string",$data:!0,error:yhn,code(e){let{gen:t,data:n,schemaCode:r,keyword:i,it:s}=e,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new ghn.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let f=t.scopeValue("formats",{ref:a.formats,code:o.code.formats}),p=t.const("fmt",(0,If._)`${f}[${c.schemaCode}]`);e.fail$data((0,If.or)((0,If._)`typeof ${p} != "object"`,(0,If._)`${p} instanceof RegExp`,(0,If._)`typeof ${p}.compare != "function"`,d(p)))}function l(){let f=c.schema,p=a.formats[f];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${i}": format "${f}" does not define "compare" function`);let h=t.scopeValue("formats",{key:f,ref:p,code:o.code.formats?(0,If._)`${o.code.formats}${(0,If.getProperty)(f)}`:void 0});e.fail$data(d(h))}function d(f){return(0,If._)`${f}.compare(${n}, ${r}) ${yV[i].fail} 0`}},dependencies:["format"]};var Shn=e=>(e.addKeyword(fk.formatLimitDefinition),e);fk.default=Shn});var SV=w((BC,E8e)=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});var pk=gV(),bhn=y8e(),Foe=Ot(),S8e=new Foe.Name("fullFormats"),Ehn=new Foe.Name("fastFormats"),joe=(e,t={keywords:!0})=>{if(Array.isArray(t))return b8e(e,t,pk.fullFormats,S8e),e;let[n,r]=t.mode==="fast"?[pk.fastFormats,Ehn]:[pk.fullFormats,S8e],i=t.formats||pk.formatNames;return b8e(e,i,n,r),t.keywords&&(0,bhn.default)(e),e};joe.get=(e,t="full")=>{let r=(t==="fast"?pk.fastFormats:pk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function b8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,Foe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}E8e.exports=BC=joe;Object.defineProperty(BC,"__esModule",{value:!0});BC.default=joe});function _hn(){let e=new _8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,T8e.default)(e),e}var _8e,T8e,bV,v8e=v(()=>{_8e=Re(G_(),1),T8e=Re(SV(),1);bV=class{constructor(t){this._ajv=t??_hn()}getValidator(t){let n="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return r=>n(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}}});var EV,R8e=v(()=>{N_();EV=class{constructor(t){this._server=t}requestStream(t,n,r){return this._server.requestStream(t,n,r)}createMessageStream(t,n){let r=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!r?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let i=t.messages[t.messages.length-1],s=Array.isArray(i.content)?i.content:[i.content],o=s.some(l=>l.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],u=c.some(l=>l.type==="tool_use");if(o){if(s.some(l=>l.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let l=new Set(c.filter(f=>f.type==="tool_use").map(f=>f.id)),d=new Set(s.filter(f=>f.type==="tool_result").map(f=>f.toolUseId));if(l.size!==d.size||![...l].every(f=>d.has(f)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:t},fC,n)}elicitInputStream(t,n){let r=this._server.getClientCapabilities(),i=t.mode??"form";switch(i){case"url":{if(!r?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!r?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let s=i==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:s},Yw,n)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,r){return this._server.getTaskResult({taskId:t},n,r)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}}});function A8e(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function w8e(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var k8e=v(()=>{});var _V,I8e=v(()=>{qZe();N_();v8e();p2();R8e();k8e();_V=class extends L2{constructor(t,n){super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(dC.options.map((r,i)=>[r,i])),this.isMessageIgnored=(r,i)=>{let s=this._loggingLevels.get(i);return s?this.LOG_LEVEL_SEVERITY.get(r)this._oninitialize(r)),this.setNotificationHandler(rie,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(pie,async(r,i)=>{let s=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,a=dC.safeParse(o);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new EV(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=HZe(this._capabilities,t)}setRequestHandler(t,n){let i=f2(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Gw(i)){let a=i;s=a._zod?.def?.value??a.value}else{let a=i;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");if(s==="tools/call"){let a=async(c,u)=>{let l=IS(lC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(yn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=IS(Ww,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(yn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=IS(x2,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new rn(yn.InvalidParams,`Invalid tools/call result: ${h}`)}return p.data};return super.setRequestHandler(t,a)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){w8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&A8e(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:bZe.includes(n)?n:Xre,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},b2)}async createMessage(t,n){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let r=t.messages[t.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],s=i.some(u=>u.type==="tool_result"),o=t.messages.length>1?t.messages[t.messages.length-2]:void 0,a=o?Array.isArray(o.content)?o.content:[o.content]:[],c=a.some(u=>u.type==="tool_use");if(s){if(i.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(a.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(i.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},hie,n):this.request({method:"sampling/createMessage",params:t},fC,n)}async elicitInput(t,n){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=t;return this.request({method:"elicitation/create",params:i},Yw,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=t.mode==="form"?t:{...t,mode:"form"},s=await this.request({method:"elicitation/create",params:i},Yw,n);if(s.action==="accept"&&s.content&&i.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(i.requestedSchema)(s.content);if(!a.valid)throw new rn(yn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof rn?o:new rn(yn.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return s}}}createElicitationCompletionNotifier(t,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},gie,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}});function Thn(e){return kZe.parse(JSON.parse(e))}function x8e(e){return JSON.stringify(e)+` -`}var TV,O8e=v(()=>{N_();TV=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(` -`);if(t===-1)return null;let n=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),Thn(n)}clear(){this._buffer=void 0}}});import P8e from"node:process";var vV,N8e=v(()=>{O8e();vV=class{constructor(t=P8e.stdin,n=P8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new TV,this._started=!1,this._ondata=r=>{this._readBuffer.append(r),this.processReadBuffer()},this._onerror=r=>{this.onerror?.(r)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(n=>{let r=x8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var M8e=w((LWr,Hoe)=>{"use strict";var vhn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,Rhn=/(\w*(\.\w*)*)\..*/;Hoe.exports=function(t){if(t.name.length>0)return t.name;let n=Error.stackTraceLimit;Error.stackTraceLimit=10;try{throw new Error("anonymous function")}catch(r){return Error.stackTraceLimit=n,C8e(r.stack)}};function C8e(e){let t=e.match(vhn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(Rhn)[1]:"anonymous"}Hoe.exports.extractPluginName=C8e});var L8e=w((UWr,D8e)=>{"use strict";D8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var zC=w((FWr,RV)=>{"use strict";var Ahn=M8e(),whn=L8e(),khn=0;function qoe(e,t={}){let n=!1;if(e.default!==void 0&&(e=e.default),typeof e!="function")throw new TypeError(`fastify-plugin expects a function, instead got a '${typeof e}'`);if(typeof t=="string"&&(t={fastify:t}),typeof t!="object"||Array.isArray(t)||t===null)throw new TypeError("The options object should be an object");if(t.fastify!==void 0&&typeof t.fastify!="string")throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof t.fastify}'`);t.name||(n=!0,t.name=Ahn(e)+"-auto-"+khn++),e[Symbol.for("skip-override")]=t.encapsulate!==!0,e[Symbol.for("fastify.display-name")]=t.name,e[Symbol.for("plugin-meta")]=t,e.default||(e.default=e);let r=whn(t.name);return!n&&!e[r]&&(e[r]=e),e}RV.exports=qoe;RV.exports.default=qoe;RV.exports.fastifyPlugin=qoe});var IV=w(Sh=>{"use strict";var Boe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},zoe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},GC=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=n}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];delete this.items[t],this.size--,n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items[t]=r,++this.size===1?this.first=r:this.last.next=r,this.last=r}},AV=class{constructor(){this.records={}}initForCache(t,n){this.records[t]={[n]:{cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,invalidateOne:0,invalidateAll:0,sets:0}}}resetForCache(t){for(let n of Object.keys(this.records[t]))this.records[t][n]={cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,invalidateOne:0,invalidateAll:0,sets:0}}getStatistics(){return this.records}};function U8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Goe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=U8e(this.collectionStart),this.records=r||new AV,this.records.initForCache(this.cacheId,this.currentTimeStamp)}get currentRecord(){return this.records.records[this.cacheId][this.currentTimeStamp]||(this.records.records[this.cacheId][this.currentTimeStamp]={cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,sets:0,invalidateOne:0,invalidateAll:0}),this.records.records[this.cacheId][this.currentTimeStamp]}hoursPassed(){return(Date.now()-this.collectionStart)/1e3/60/60}addHit(){this.archiveIfNeeded(),this.currentRecord.hits++}addFalsyHit(){this.archiveIfNeeded(),this.currentRecord.falsyHits++}addEmptyHit(){this.archiveIfNeeded(),this.currentRecord.emptyHits++}addMiss(){this.archiveIfNeeded(),this.currentRecord.misses++}addEviction(){this.archiveIfNeeded(),this.currentRecord.evictions++}setCacheSize(t){this.archiveIfNeeded(),this.currentRecord.cacheSize=t}addExpiration(){this.archiveIfNeeded(),this.currentRecord.expirations++}addSet(){this.archiveIfNeeded(),this.currentRecord.sets++}addInvalidateOne(){this.archiveIfNeeded(),this.currentRecord.invalidateOne++}addInvalidateAll(){this.archiveIfNeeded(),this.currentRecord.invalidateAll++}getStatistics(){return this.records.getStatistics()}archiveIfNeeded(){this.hoursPassed()>=this.statisticTtlInHours&&(this.collectionStart=new Date,this.currentTimeStamp=U8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},wV=class extends GC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Goe(r,s!==void 0?s:24,i)}getStatistics(){return this.hitStatistics.getStatistics()}set(t,n){super.set(t,n),this.hitStatistics.addSet(),this.hitStatistics.setCacheSize(this.size)}evict(){super.evict(),this.hitStatistics.addEviction(),this.hitStatistics.setCacheSize(this.size)}delete(t,n=!1){super.delete(t),n||this.hitStatistics.addInvalidateOne(),this.hitStatistics.setCacheSize(this.size)}clear(){super.clear(),this.hitStatistics.addInvalidateAll(),this.hitStatistics.setCacheSize(this.size)}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t,!0),this.hitStatistics.addExpiration();return}return this.bumpLru(n),n.value||this.hitStatistics.addFalsyHit(),(n.value===void 0||n.value===null||n.value==="")&&this.hitStatistics.addEmptyHit(),this.hitStatistics.addHit(),n.value}this.hitStatistics.addMiss()}},kV=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=n}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];delete this.items[t],this.size--,n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items[t]=r,++this.size===1?this.first=r:this.last.next=r,this.last=r}};Sh.Fifo=kV;Sh.FifoMap=Boe;Sh.FifoObject=kV;Sh.HitStatisticsRecord=AV;Sh.Lru=GC;Sh.LruHitStatistics=wV;Sh.LruMap=zoe;Sh.LruObject=GC;Sh.LruObjectHitStatistics=wV});var j8e=w((HWr,VC)=>{"use strict";var{FifoMap:Ihn}=IV(),xhn=/^[!#$%&'*+\-.^\w`|~]+$/u;function Ohn(e){if(xhn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function F8e(e){e=e.trim().toLowerCase();let t=[];if(e.length!==0)if(e.indexOf(",")===-1)t.push(e);else{let n=e.length,r=0,i=0,s;for(r;r{"use strict";var Phn=zC(),{addAccessControlRequestHeadersToVaryHeader:Nhn,addOriginToVaryHeader:Chn}=j8e(),Koe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Mhn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Woe=["preSerialization","preParsing","onSend"];function B8e(e,t){Mhn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function Dhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")H8e(t,e,{hook:Koe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;H8e(s,e,o,n)}else{let s=xV(t);B8e(s.hook,n),Woe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){WC(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){WC(e,s,a,c,u)})}t.logLevel!==void 0&&(i=t.logLevel),t.hideOptionsRoute!==void 0&&(r=t.hideOptionsRoute),e.options("*",{schema:{hide:r},logLevel:i},(s,o)=>{if(!s.corsPreflightEnabled){o.callNotFound();return}o.send()}),n()}function H8e(e,t,n,r){let i=n?.hook||Koe.hook;B8e(i,r),e.length===2?Woe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){q8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){q8e(e,t,o,a,c)}):Woe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>WC(t,xV(d,!0),o,a,u)).catch(u);return}u(new Error("Invalid CORS origin option"))}):t.addHook(i,function(o,a,c){let u=e(o);if(u&&typeof u.then=="function"){u.then(l=>WC(t,xV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function q8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):WC(t,xV(o,!0),n,r,i)})}function xV(e,t){let n={...Koe,...e};return Array.isArray(e.origin)&&e.origin.indexOf("*")!==-1&&(n.origin="*"),Number.isInteger(n.cacheControl)?n.cacheControl=`max-age=${n.cacheControl}`:typeof n.cacheControl!="string"&&(n.cacheControl=null),n.dynamic=t||!1,n}function WC(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&Chn(r),(typeof s.origin=="function"?Fhn(e,s.origin):(a,c)=>c(null,s.origin))(n,(a,c)=>{if(a!==null)return i(a);if(c===!1||n.routeOptions.config?.cors===!1)return i();if(!c)return i(new Error("Invalid CORS origin option"));if(Lhn(n,r,c,s),n.raw.method==="OPTIONS"&&s.preflight===!0){if(s.strictPreflight===!0&&(!n.headers.origin||!n.headers["access-control-request-method"])){r.status(400).type("text/plain").send("Invalid Preflight Request");return}if(n.corsPreflightEnabled=!0,Uhn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function Lhn(e,t,n,r){let i=jhn(e.headers.origin,n);i&&t.header("Access-Control-Allow-Origin",i),r.credentials&&t.header("Access-Control-Allow-Credentials","true"),r.exposedHeaders!==null&&t.header("Access-Control-Expose-Headers",Array.isArray(r.exposedHeaders)?r.exposedHeaders.join(", "):r.exposedHeaders)}function Uhn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){Nhn(t);let r=e.headers["access-control-request-headers"];r!==void 0&&t.header("Access-Control-Allow-Headers",r)}else t.header("Access-Control-Allow-Headers",Array.isArray(n.allowedHeaders)?n.allowedHeaders.join(", "):n.allowedHeaders);n.maxAge!==null&&t.header("Access-Control-Max-Age",String(n.maxAge)),n.cacheControl&&t.header("Cache-Control",n.cacheControl)}function Fhn(e,t){return function(n,r){let i=t.call(e,n.headers.origin,r);i&&typeof i.then=="function"&&i.then(s=>r(null,s),r)}}function jhn(e,t){return typeof t=="string"?t:z8e(e,t)?e:!1}function z8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Hhn=/^(-?(?:\d+)?\.?\d+) *(m(?:illiseconds?|s(?:ecs?)?))?(s(?:ec(?:onds?|s)?)?)?(m(?:in(?:utes?|s)?)?)?(h(?:ours?|rs?)?)?(d(?:ays?)?)?(w(?:eeks?|ks?)?)?(y(?:ears?|rs?)?)?$/,PV=1e3,NV=PV*60,CV=NV*60,YC=CV*24,Zoe=YC*365.25;function qhn(e){var t,n=e.toLowerCase().match(Hhn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*PV:n[4]!=null?t*NV:n[5]!=null?t*CV:n[6]!=null?t*YC:n[7]!=null?t*YC*7:n[8]!=null?t*Zoe:t}function KC(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Bhn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:zhn}=IV();function MV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new zhn(n)}MV.prototype.incr=function(e,t,n,r){let i=Date.now(),s=this.lru.get(e);if(!s)s={current:1,ttl:n,iterationStartMs:i};else if(s.iterationStartMs+n<=i)s.current=1,s.ttl=n,s.iterationStartMs=i;else if(++s.current,this.continueExceeding&&s.current>r)s.ttl=n,s.iterationStartMs=i;else if(this.exponentialBackoff&&s.current>r){let o=s.current-r-1,a=n*2**o;s.ttl=Number.isSafeInteger(a)?a:Number.MAX_SAFE_INTEGER,s.iterationStartMs=i}else s.ttl=n-(i-s.iterationStartMs);this.lru.set(e,s),t(null,s)};MV.prototype.child=function(e){return new MV(e.continueExceeding,e.exponentialBackoff,e.cache)};W8e.exports=MV});var Z8e=w((GWr,Y8e)=>{"use strict";var Ghn=` + deps: ${n}}`};var Zfn={keyword:"dependencies",type:"object",schemaType:"object",error:mh.error,code(e){let[t,n]=Jfn(e);M5e(e,t),D5e(e,n)}};function Jfn({schema:e}){let t={},n={};for(let r in e){if(r==="__proto__")continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function M5e(e,t=e.schema){let{gen:n,data:r,it:i}=e;if(Object.keys(t).length===0)return;let s=n.let("missing");for(let o in t){let a=t[o];if(a.length===0)continue;let c=(0,BC.propertyInData)(n,r,o,i.opts.ownProperties);e.setParams({property:o,depsCount:a.length,deps:a.join(", ")}),i.allErrors?n.if(c,()=>{for(let u of a)(0,BC.checkReportMissingProp)(e,u)}):(n.if((0,poe._)`${c} && (${(0,BC.checkMissingProp)(e,a,s)})`),(0,BC.reportMissingProp)(e,s),n.else())}}mh.validatePropertyDeps=M5e;function D5e(e,t=e.schema){let{gen:n,data:r,keyword:i,it:s}=e,o=n.name("valid");for(let a in t)(0,Yfn.alwaysValidSchema)(s,t[a])||(n.if((0,BC.propertyInData)(n,r,a,s.opts.ownProperties),()=>{let c=e.subschema({keyword:i,schemaProp:a},o);e.mergeValidEvaluated(c,o)},()=>n.var(o,!0)),e.ok(o))}mh.validateSchemaDeps=D5e;mh.default=Zfn});var F5e=w(hoe=>{"use strict";Object.defineProperty(hoe,"__esModule",{value:!0});var U5e=Ot(),Xfn=pn(),Qfn={message:"property name must be valid",params:({params:e})=>(0,U5e._)`{propertyName: ${e.propertyName}}`},$fn={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:Qfn,code(e){let{gen:t,schema:n,data:r,it:i}=e;if((0,Xfn.alwaysValidSchema)(i,n))return;let s=t.name("valid");t.forIn("key",r,o=>{e.setParams({propertyName:o}),e.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},s),t.if((0,U5e.not)(s),()=>{e.error(!0),i.allErrors||t.break()})}),e.ok(s)}};hoe.default=$fn});var goe=w(moe=>{"use strict";Object.defineProperty(moe,"__esModule",{value:!0});var dV=Sa(),kf=Ot(),epn=Sd(),fV=pn(),tpn={message:"must NOT have additional properties",params:({params:e})=>(0,kf._)`{additionalProperty: ${e.additionalProperty}}`},npn={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:tpn,code(e){let{gen:t,schema:n,parentSchema:r,data:i,errsCount:s,it:o}=e;if(!s)throw new Error("ajv implementation error");let{allErrors:a,opts:c}=o;if(o.props=!0,c.removeAdditional!=="all"&&(0,fV.alwaysValidSchema)(o,n))return;let u=(0,dV.allSchemaProperties)(r.properties),l=(0,dV.allSchemaProperties)(r.patternProperties);d(),e.ok((0,kf._)`${s} === ${epn.default.errors}`);function d(){t.forIn("key",i,g=>{!u.length&&!l.length?h(g):t.if(f(g),()=>h(g))})}function f(g){let y;if(u.length>8){let b=(0,fV.schemaRefOrVal)(o,r.properties,"properties");y=(0,dV.isOwnProperty)(t,b,g)}else u.length?y=(0,kf.or)(...u.map(b=>(0,kf._)`${g} === ${b}`)):y=kf.nil;return l.length&&(y=(0,kf.or)(y,...l.map(b=>(0,kf._)`${(0,dV.usePattern)(e,b)}.test(${g})`))),(0,kf.not)(y)}function p(g){t.code((0,kf._)`delete ${i}[${g}]`)}function h(g){if(c.removeAdditional==="all"||c.removeAdditional&&n===!1){p(g);return}if(n===!1){e.setParams({additionalProperty:g}),e.error(),a||t.break();return}if(typeof n=="object"&&!(0,fV.alwaysValidSchema)(o,n)){let y=t.name("valid");c.removeAdditional==="failing"?(m(g,y,!1),t.if((0,kf.not)(y),()=>{e.reset(),p(g)})):(m(g,y),a||t.if((0,kf.not)(y),()=>t.break()))}}function m(g,y,b){let S={keyword:"additionalProperties",dataProp:g,dataPropType:fV.Type.Str};b===!1&&Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(S,y)}}};moe.default=npn});var q5e=w(Soe=>{"use strict";Object.defineProperty(Soe,"__esModule",{value:!0});var rpn=rk(),j5e=Sa(),yoe=pn(),H5e=goe(),ipn={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,parentSchema:r,data:i,it:s}=e;s.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&H5e.default.code(new rpn.KeywordCxt(s,H5e.default,"additionalProperties"));let o=(0,j5e.allSchemaProperties)(n);for(let d of o)s.definedProperties.add(d);s.opts.unevaluated&&o.length&&s.props!==!0&&(s.props=yoe.mergeEvaluated.props(t,(0,yoe.toHash)(o),s.props));let a=o.filter(d=>!(0,yoe.alwaysValidSchema)(s,n[d]));if(a.length===0)return;let c=t.name("valid");for(let d of a)u(d)?l(d):(t.if((0,j5e.propertyInData)(t,i,d,s.opts.ownProperties)),l(d),s.allErrors||t.else().var(c,!0),t.endIf()),e.it.definedProperties.add(d),e.ok(c);function u(d){return s.opts.useDefaults&&!s.compositeRule&&n[d].default!==void 0}function l(d){e.subschema({keyword:"properties",schemaProp:d,dataProp:d},c)}}};Soe.default=ipn});var V5e=w(boe=>{"use strict";Object.defineProperty(boe,"__esModule",{value:!0});var B5e=Sa(),pV=Ot(),z5e=pn(),G5e=pn(),spn={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,data:r,parentSchema:i,it:s}=e,{opts:o}=s,a=(0,B5e.allSchemaProperties)(n),c=a.filter(m=>(0,z5e.alwaysValidSchema)(s,n[m]));if(a.length===0||c.length===a.length&&(!s.opts.unevaluated||s.props===!0))return;let u=o.strictSchema&&!o.allowMatchingProperties&&i.properties,l=t.name("valid");s.props!==!0&&!(s.props instanceof pV.Name)&&(s.props=(0,G5e.evaluatedPropsToName)(t,s.props));let{props:d}=s;f();function f(){for(let m of a)u&&p(m),s.allErrors?h(m):(t.var(l,!0),h(m),t.if(l))}function p(m){for(let g in u)new RegExp(m).test(g)&&(0,z5e.checkStrictMode)(s,`property ${g} matches pattern ${m} (use allowMatchingProperties)`)}function h(m){t.forIn("key",r,g=>{t.if((0,pV._)`${(0,B5e.usePattern)(e,m)}.test(${g})`,()=>{let y=c.includes(m);y||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:g,dataPropType:G5e.Type.Str},l),s.opts.unevaluated&&d!==!0?t.assign((0,pV._)`${d}[${g}]`,!0):!y&&!s.allErrors&&t.if((0,pV.not)(l),()=>t.break())})})}}};boe.default=spn});var W5e=w(Eoe=>{"use strict";Object.defineProperty(Eoe,"__esModule",{value:!0});var opn=pn(),apn={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:r}=e;if((0,opn.alwaysValidSchema)(r,n)){e.fail();return}let i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Eoe.default=apn});var K5e=w(_oe=>{"use strict";Object.defineProperty(_oe,"__esModule",{value:!0});var cpn=Sa(),upn={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:cpn.validateUnion,error:{message:"must match a schema in anyOf"}};_oe.default=upn});var Y5e=w(Toe=>{"use strict";Object.defineProperty(Toe,"__esModule",{value:!0});var hV=Ot(),lpn=pn(),dpn={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,hV._)`{passingSchemas: ${e.passing}}`},fpn={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:dpn,code(e){let{gen:t,schema:n,parentSchema:r,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let s=n,o=t.let("valid",!1),a=t.let("passing",null),c=t.name("_valid");e.setParams({passing:a}),t.block(u),e.result(o,()=>e.reset(),()=>e.error(!0));function u(){s.forEach((l,d)=>{let f;(0,lpn.alwaysValidSchema)(i,l)?t.var(c,!0):f=e.subschema({keyword:"oneOf",schemaProp:d,compositeRule:!0},c),d>0&&t.if((0,hV._)`${c} && ${o}`).assign(o,!1).assign(a,(0,hV._)`[${a}, ${d}]`).else(),t.if(c,()=>{t.assign(o,!0),t.assign(a,d),f&&e.mergeEvaluated(f,hV.Name)})})}}};Toe.default=fpn});var Z5e=w(voe=>{"use strict";Object.defineProperty(voe,"__esModule",{value:!0});var ppn=pn(),hpn={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let i=t.name("valid");n.forEach((s,o)=>{if((0,ppn.alwaysValidSchema)(r,s))return;let a=e.subschema({keyword:"allOf",schemaProp:o},i);e.ok(i),e.mergeEvaluated(a)})}};voe.default=hpn});var Q5e=w(Roe=>{"use strict";Object.defineProperty(Roe,"__esModule",{value:!0});var mV=Ot(),X5e=pn(),mpn={message:({params:e})=>(0,mV.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,mV._)`{failingKeyword: ${e.ifClause}}`},gpn={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:mpn,code(e){let{gen:t,parentSchema:n,it:r}=e;n.then===void 0&&n.else===void 0&&(0,X5e.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=J5e(r,"then"),s=J5e(r,"else");if(!i&&!s)return;let o=t.let("valid",!0),a=t.name("_valid");if(c(),e.reset(),i&&s){let l=t.let("ifClause");e.setParams({ifClause:l}),t.if(a,u("then",l),u("else",l))}else i?t.if(a,u("then")):t.if((0,mV.not)(a),u("else"));e.pass(o,()=>e.error(!0));function c(){let l=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},a);e.mergeEvaluated(l)}function u(l,d){return()=>{let f=e.subschema({keyword:l},a);t.assign(o,a),e.mergeValidEvaluated(f,o),d?t.assign(d,(0,mV._)`${l}`):e.setParams({ifClause:l})}}}};function J5e(e,t){let n=e.schema[t];return n!==void 0&&!(0,X5e.alwaysValidSchema)(e,n)}Roe.default=gpn});var $5e=w(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});var ypn=pn(),Spn={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,ypn.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Aoe.default=Spn});var e8e=w(woe=>{"use strict";Object.defineProperty(woe,"__esModule",{value:!0});var bpn=coe(),Epn=O5e(),_pn=uoe(),Tpn=N5e(),vpn=C5e(),Rpn=L5e(),Apn=F5e(),wpn=goe(),kpn=q5e(),Ipn=V5e(),xpn=W5e(),Opn=K5e(),Ppn=Y5e(),Npn=Z5e(),Cpn=Q5e(),Mpn=$5e();function Dpn(e=!1){let t=[xpn.default,Opn.default,Ppn.default,Npn.default,Cpn.default,Mpn.default,Apn.default,wpn.default,Rpn.default,kpn.default,Ipn.default];return e?t.push(Epn.default,Tpn.default):t.push(bpn.default,_pn.default),t.push(vpn.default),t}woe.default=Dpn});var t8e=w(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});var Cs=Ot(),Lpn={message:({schemaCode:e})=>(0,Cs.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,Cs._)`{format: ${e}}`},Upn={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Lpn,code(e,t){let{gen:n,data:r,$data:i,schema:s,schemaCode:o,it:a}=e,{opts:c,errSchemaPath:u,schemaEnv:l,self:d}=a;if(!c.validateFormats)return;i?f():p();function f(){let h=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),m=n.const("fDef",(0,Cs._)`${h}[${o}]`),g=n.let("fType"),y=n.let("format");n.if((0,Cs._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>n.assign(g,(0,Cs._)`${m}.type || "string"`).assign(y,(0,Cs._)`${m}.validate`),()=>n.assign(g,(0,Cs._)`"string"`).assign(y,m)),e.fail$data((0,Cs.or)(b(),S()));function b(){return c.strictSchema===!1?Cs.nil:(0,Cs._)`${o} && !${y}`}function S(){let E=l.$async?(0,Cs._)`(${m}.async ? await ${y}(${r}) : ${y}(${r}))`:(0,Cs._)`${y}(${r})`,_=(0,Cs._)`(typeof ${y} == "function" ? ${E} : ${y}.test(${r}))`;return(0,Cs._)`${y} && ${y} !== true && ${g} === ${t} && !${_}`}}function p(){let h=d.formats[s];if(!h){b();return}if(h===!0)return;let[m,g,y]=S(h);m===t&&e.pass(E());function b(){if(c.strictSchema===!1){d.logger.warn(_());return}throw new Error(_());function _(){return`unknown format "${s}" ignored in schema at path "${u}"`}}function S(_){let T=_ instanceof RegExp?(0,Cs.regexpCode)(_):c.code.formats?(0,Cs._)`${c.code.formats}${(0,Cs.getProperty)(s)}`:void 0,R=n.scopeValue("formats",{key:s,ref:_,code:T});return typeof _=="object"&&!(_ instanceof RegExp)?[_.type||"string",_.validate,(0,Cs._)`${R}.validate`]:["string",_,R]}function E(){if(typeof h=="object"&&!(h instanceof RegExp)&&h.async){if(!l.$async)throw new Error("async format in sync schema");return(0,Cs._)`await ${y}(${r})`}return typeof g=="function"?(0,Cs._)`${y}(${r})`:(0,Cs._)`${y}.test(${r})`}}}};koe.default=Upn});var n8e=w(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});var Fpn=t8e(),jpn=[Fpn.default];Ioe.default=jpn});var r8e=w(ck=>{"use strict";Object.defineProperty(ck,"__esModule",{value:!0});ck.contentVocabulary=ck.metadataVocabulary=void 0;ck.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ck.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var s8e=w(xoe=>{"use strict";Object.defineProperty(xoe,"__esModule",{value:!0});var Hpn=f5e(),qpn=w5e(),Bpn=e8e(),zpn=n8e(),i8e=r8e(),Gpn=[Hpn.default,qpn.default,(0,Bpn.default)(),zpn.default,i8e.metadataVocabulary,i8e.contentVocabulary];xoe.default=Gpn});var Ooe=w(gV=>{"use strict";Object.defineProperty(gV,"__esModule",{value:!0});gV.DiscrError=void 0;var o8e;(function(e){e.Tag="tag",e.Mapping="mapping"})(o8e||(gV.DiscrError=o8e={}))});var c8e=w(Noe=>{"use strict";Object.defineProperty(Noe,"__esModule",{value:!0});var uk=Ot(),Poe=Ooe(),a8e=H_(),Vpn=Ym(),Wpn=pn(),Kpn={message:({params:{discrError:e,tagName:t}})=>e===Poe.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,uk._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},Ypn={keyword:"discriminator",type:"object",schemaType:"object",error:Kpn,code(e){let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{oneOf:o}=i;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");let a=r.propertyName;if(typeof a!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let c=t.let("valid",!1),u=t.const("tag",(0,uk._)`${n}${(0,uk.getProperty)(a)}`);t.if((0,uk._)`typeof ${u} == "string"`,()=>l(),()=>e.error(!1,{discrError:Poe.DiscrError.Tag,tag:u,tagName:a})),e.ok(c);function l(){let p=f();t.if(!1);for(let h in p)t.elseIf((0,uk._)`${u} === ${h}`),t.assign(c,d(p[h]));t.else(),e.error(!1,{discrError:Poe.DiscrError.Mapping,tag:u,tagName:a}),t.endIf()}function d(p){let h=t.name("valid"),m=e.subschema({keyword:"oneOf",schemaProp:p},h);return e.mergeEvaluated(m,uk.Name),h}function f(){var p;let h={},m=y(i),g=!0;for(let E=0;E{Zpn.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var G_=w((yi,Coe)=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.MissingRefError=yi.ValidationError=yi.CodeGen=yi.Name=yi.nil=yi.stringify=yi.str=yi._=yi.KeywordCxt=yi.Ajv=void 0;var Jpn=Bse(),Xpn=s8e(),Qpn=c8e(),l8e=u8e(),$pn=["/properties"],yV="http://json-schema.org/draft-07/schema",lk=class extends Jpn.default{_addVocabularies(){super._addVocabularies(),Xpn.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(Qpn.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(l8e,$pn):l8e;this.addMetaSchema(t,yV,!1),this.refs["http://json-schema.org/schema"]=yV}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(yV)?yV:void 0)}};yi.Ajv=lk;Coe.exports=yi=lk;Coe.exports.Ajv=lk;Object.defineProperty(yi,"__esModule",{value:!0});yi.default=lk;var ehn=rk();Object.defineProperty(yi,"KeywordCxt",{enumerable:!0,get:function(){return ehn.KeywordCxt}});var dk=Ot();Object.defineProperty(yi,"_",{enumerable:!0,get:function(){return dk._}});Object.defineProperty(yi,"str",{enumerable:!0,get:function(){return dk.str}});Object.defineProperty(yi,"stringify",{enumerable:!0,get:function(){return dk.stringify}});Object.defineProperty(yi,"nil",{enumerable:!0,get:function(){return dk.nil}});Object.defineProperty(yi,"Name",{enumerable:!0,get:function(){return dk.Name}});Object.defineProperty(yi,"CodeGen",{enumerable:!0,get:function(){return dk.CodeGen}});var thn=IC();Object.defineProperty(yi,"ValidationError",{enumerable:!0,get:function(){return thn.default}});var nhn=Ym();Object.defineProperty(yi,"MissingRefError",{enumerable:!0,get:function(){return nhn.default}})});var SV=w(yh=>{"use strict";Object.defineProperty(yh,"__esModule",{value:!0});yh.formatNames=yh.fastFormats=yh.fullFormats=void 0;function gh(e,t){return{validate:e,compare:t}}yh.fullFormats={date:gh(h8e,Uoe),time:gh(Doe(!0),Foe),"date-time":gh(d8e(!0),g8e),"iso-time":gh(Doe(),m8e),"iso-date-time":gh(d8e(),y8e),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:chn,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:mhn,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:uhn,int32:{type:"number",validate:fhn},int64:{type:"number",validate:phn},float:{type:"number",validate:p8e},double:{type:"number",validate:p8e},password:!0,binary:!0};yh.fastFormats={...yh.fullFormats,date:gh(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Uoe),time:gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Foe),"date-time":gh(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,g8e),"iso-time":gh(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,m8e),"iso-date-time":gh(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,y8e),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};yh.formatNames=Object.keys(yh.fullFormats);function rhn(e){return e%4===0&&(e%100!==0||e%400===0)}var ihn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,shn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function h8e(e){let t=ihn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r===2&&rhn(n)?29:shn[r])}function Uoe(e,t){if(e&&t)return e>t?1:e23||l>59||e&&!a)return!1;if(i<=23&&s<=59&&o<60)return!0;let d=s-l*c,f=i-u*c-(d<0?1:0);return(f===23||f===-1)&&(d===59||d===-1)&&o<61}}function Foe(e,t){if(!(e&&t))return;let n=new Date("2020-01-01T"+e).valueOf(),r=new Date("2020-01-01T"+t).valueOf();if(n&&r)return n-r}function m8e(e,t){if(!(e&&t))return;let n=Moe.exec(e),r=Moe.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e=lhn}function phn(e){return Number.isInteger(e)}function p8e(){return!0}var hhn=/[^\\]\\Z/;function mhn(e){if(hhn.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var S8e=w(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});fk.formatLimitDefinition=void 0;var ghn=G_(),If=Ot(),jS=If.operators,bV={formatMaximum:{okStr:"<=",ok:jS.LTE,fail:jS.GT},formatMinimum:{okStr:">=",ok:jS.GTE,fail:jS.LT},formatExclusiveMaximum:{okStr:"<",ok:jS.LT,fail:jS.GTE},formatExclusiveMinimum:{okStr:">",ok:jS.GT,fail:jS.LTE}},yhn={message:({keyword:e,schemaCode:t})=>(0,If.str)`should be ${bV[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,If._)`{comparison: ${bV[e].okStr}, limit: ${t}}`};fk.formatLimitDefinition={keyword:Object.keys(bV),type:"string",schemaType:"string",$data:!0,error:yhn,code(e){let{gen:t,data:n,schemaCode:r,keyword:i,it:s}=e,{opts:o,self:a}=s;if(!o.validateFormats)return;let c=new ghn.KeywordCxt(s,a.RULES.all.format.definition,"format");c.$data?u():l();function u(){let f=t.scopeValue("formats",{ref:a.formats,code:o.code.formats}),p=t.const("fmt",(0,If._)`${f}[${c.schemaCode}]`);e.fail$data((0,If.or)((0,If._)`typeof ${p} != "object"`,(0,If._)`${p} instanceof RegExp`,(0,If._)`typeof ${p}.compare != "function"`,d(p)))}function l(){let f=c.schema,p=a.formats[f];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${i}": format "${f}" does not define "compare" function`);let h=t.scopeValue("formats",{key:f,ref:p,code:o.code.formats?(0,If._)`${o.code.formats}${(0,If.getProperty)(f)}`:void 0});e.fail$data(d(h))}function d(f){return(0,If._)`${f}.compare(${n}, ${r}) ${bV[i].fail} 0`}},dependencies:["format"]};var Shn=e=>(e.addKeyword(fk.formatLimitDefinition),e);fk.default=Shn});var EV=w((zC,_8e)=>{"use strict";Object.defineProperty(zC,"__esModule",{value:!0});var pk=SV(),bhn=S8e(),joe=Ot(),b8e=new joe.Name("fullFormats"),Ehn=new joe.Name("fastFormats"),Hoe=(e,t={keywords:!0})=>{if(Array.isArray(t))return E8e(e,t,pk.fullFormats,b8e),e;let[n,r]=t.mode==="fast"?[pk.fastFormats,Ehn]:[pk.fullFormats,b8e],i=t.formats||pk.formatNames;return E8e(e,i,n,r),t.keywords&&(0,bhn.default)(e),e};Hoe.get=(e,t="full")=>{let r=(t==="fast"?pk.fastFormats:pk.fullFormats)[e];if(!r)throw new Error(`Unknown format "${e}"`);return r};function E8e(e,t,n,r){var i,s;(i=(s=e.opts.code).formats)!==null&&i!==void 0||(s.formats=(0,joe._)`require("ajv-formats/dist/formats").${r}`);for(let o of t)e.addFormat(o,n[o])}_8e.exports=zC=Hoe;Object.defineProperty(zC,"__esModule",{value:!0});zC.default=Hoe});function _hn(){let e=new T8e.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,v8e.default)(e),e}var T8e,v8e,_V,R8e=v(()=>{T8e=Re(G_(),1),v8e=Re(EV(),1);_V=class{constructor(t){this._ajv=t??_hn()}getValidator(t){let n="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return r=>n(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}}});var TV,A8e=v(()=>{N_();TV=class{constructor(t){this._server=t}requestStream(t,n,r){return this._server.requestStream(t,n,r)}createMessageStream(t,n){let r=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!r?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let i=t.messages[t.messages.length-1],s=Array.isArray(i.content)?i.content:[i.content],o=s.some(l=>l.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],u=c.some(l=>l.type==="tool_use");if(o){if(s.some(l=>l.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let l=new Set(c.filter(f=>f.type==="tool_use").map(f=>f.id)),d=new Set(s.filter(f=>f.type==="tool_result").map(f=>f.toolUseId));if(l.size!==d.size||![...l].every(f=>d.has(f)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:t},pC,n)}elicitInputStream(t,n){let r=this._server.getClientCapabilities(),i=t.mode??"form";switch(i){case"url":{if(!r?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!r?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let s=i==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:s},Yw,n)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,r){return this._server.getTaskResult({taskId:t},n,r)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}}});function w8e(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function k8e(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var I8e=v(()=>{});var vV,x8e=v(()=>{BZe();N_();R8e();m2();A8e();I8e();vV=class extends F2{constructor(t,n){super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(fC.options.map((r,i)=>[r,i])),this.isMessageIgnored=(r,i)=>{let s=this._loggingLevels.get(i);return s?this.LOG_LEVEL_SEVERITY.get(r)this._oninitialize(r)),this.setNotificationHandler(iie,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(hie,async(r,i)=>{let s=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,a=fC.safeParse(o);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new TV(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=qZe(this._capabilities,t)}setRequestHandler(t,n){let i=h2(t)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(Gw(i)){let a=i;s=a._zod?.def?.value??a.value}else{let a=i;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");if(s==="tools/call"){let a=async(c,u)=>{let l=IS(dC,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new rn(yn.InvalidParams,`Invalid tools/call request: ${h}`)}let{params:d}=l.data,f=await Promise.resolve(n(c,u));if(d.task){let h=IS(Ww,f);if(!h.success){let m=h.error instanceof Error?h.error.message:String(h.error);throw new rn(yn.InvalidParams,`Invalid task creation result: ${m}`)}return h.data}let p=IS(P2,f);if(!p.success){let h=p.error instanceof Error?p.error.message:String(p.error);throw new rn(yn.InvalidParams,`Invalid tools/call result: ${h}`)}return p.data};return super.setRequestHandler(t,a)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){k8e(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&w8e(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:EZe.includes(n)?n:Qre,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},_2)}async createMessage(t,n){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let r=t.messages[t.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],s=i.some(u=>u.type==="tool_result"),o=t.messages.length>1?t.messages[t.messages.length-2]:void 0,a=o?Array.isArray(o.content)?o.content:[o.content]:[],c=a.some(u=>u.type==="tool_use");if(s){if(i.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(a.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(i.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},mie,n):this.request({method:"sampling/createMessage",params:t},pC,n)}async elicitInput(t,n){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=t;return this.request({method:"elicitation/create",params:i},Yw,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=t.mode==="form"?t:{...t,mode:"form"},s=await this.request({method:"elicitation/create",params:i},Yw,n);if(s.action==="accept"&&s.content&&i.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(i.requestedSchema)(s.content);if(!a.valid)throw new rn(yn.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(o){throw o instanceof rn?o:new rn(yn.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return s}}}createElicitationCompletionNotifier(t,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},yie,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}});function Thn(e){return IZe.parse(JSON.parse(e))}function O8e(e){return JSON.stringify(e)+` +`}var RV,P8e=v(()=>{N_();RV=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(` +`);if(t===-1)return null;let n=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),Thn(n)}clear(){this._buffer=void 0}}});import N8e from"node:process";var AV,C8e=v(()=>{P8e();AV=class{constructor(t=N8e.stdin,n=N8e.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new RV,this._started=!1,this._ondata=r=>{this._readBuffer.append(r),this.processReadBuffer()},this._onerror=r=>{this.onerror?.(r)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(n=>{let r=O8e(t);this._stdout.write(r)?n():this._stdout.once("drain",n)})}}});var D8e=w((LWr,qoe)=>{"use strict";var vhn=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,Rhn=/(\w*(\.\w*)*)\..*/;qoe.exports=function(t){if(t.name.length>0)return t.name;let n=Error.stackTraceLimit;Error.stackTraceLimit=10;try{throw new Error("anonymous function")}catch(r){return Error.stackTraceLimit=n,M8e(r.stack)}};function M8e(e){let t=e.match(vhn);return t?t[1].split(/[/\\]/).slice(-1)[0].match(Rhn)[1]:"anonymous"}qoe.exports.extractPluginName=M8e});var U8e=w((UWr,L8e)=>{"use strict";L8e.exports=function(t){return t[0]==="@"&&(t=t.slice(1).replace("/","-")),t.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var GC=w((FWr,wV)=>{"use strict";var Ahn=D8e(),whn=U8e(),khn=0;function Boe(e,t={}){let n=!1;if(e.default!==void 0&&(e=e.default),typeof e!="function")throw new TypeError(`fastify-plugin expects a function, instead got a '${typeof e}'`);if(typeof t=="string"&&(t={fastify:t}),typeof t!="object"||Array.isArray(t)||t===null)throw new TypeError("The options object should be an object");if(t.fastify!==void 0&&typeof t.fastify!="string")throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof t.fastify}'`);t.name||(n=!0,t.name=Ahn(e)+"-auto-"+khn++),e[Symbol.for("skip-override")]=t.encapsulate!==!0,e[Symbol.for("fastify.display-name")]=t.name,e[Symbol.for("plugin-meta")]=t,e.default||(e.default=e);let r=whn(t.name);return!n&&!e[r]&&(e[r]=e),e}wV.exports=Boe;wV.exports.default=Boe;wV.exports.fastifyPlugin=Boe});var OV=w(Sh=>{"use strict";var zoe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},Goe=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=new Map,this.last=null,this.max=t,this.ttl=n}get size(){return this.items.size}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=new Map,this.first=null,this.last=null}delete(t){if(this.items.has(t)){let n=this.items.get(t);this.items.delete(t),n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;this.items.delete(t.key),this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(this.items.has(t))return this.items.get(t).expiry}get(t){if(this.items.has(t)){let n=this.items.get(t);if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items.set(t,r),this.size===1?this.first=r:this.last.next=r,this.last=r}},VC=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=n}bumpLru(t){if(this.last===t)return;let n=this.last,r=t.next,i=t.prev;this.first===t&&(this.first=r),t.next=null,t.prev=n,n.next=t,i!==null&&(i.next=r),r!==null&&(r.prev=i),this.last=t}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];delete this.items[t],this.size--,n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return this.bumpLru(n),n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl,this.last!==i&&this.bumpLru(i);return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items[t]=r,++this.size===1?this.first=r:this.last.next=r,this.last=r}},kV=class{constructor(){this.records={}}initForCache(t,n){this.records[t]={[n]:{cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,invalidateOne:0,invalidateAll:0,sets:0}}}resetForCache(t){for(let n of Object.keys(this.records[t]))this.records[t][n]={cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,invalidateOne:0,invalidateAll:0,sets:0}}getStatistics(){return this.records}};function F8e(e){return`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`}var Voe=class{constructor(t,n,r){this.cacheId=t,this.statisticTtlInHours=n,this.collectionStart=new Date,this.currentTimeStamp=F8e(this.collectionStart),this.records=r||new kV,this.records.initForCache(this.cacheId,this.currentTimeStamp)}get currentRecord(){return this.records.records[this.cacheId][this.currentTimeStamp]||(this.records.records[this.cacheId][this.currentTimeStamp]={cacheSize:0,hits:0,falsyHits:0,emptyHits:0,misses:0,expirations:0,evictions:0,sets:0,invalidateOne:0,invalidateAll:0}),this.records.records[this.cacheId][this.currentTimeStamp]}hoursPassed(){return(Date.now()-this.collectionStart)/1e3/60/60}addHit(){this.archiveIfNeeded(),this.currentRecord.hits++}addFalsyHit(){this.archiveIfNeeded(),this.currentRecord.falsyHits++}addEmptyHit(){this.archiveIfNeeded(),this.currentRecord.emptyHits++}addMiss(){this.archiveIfNeeded(),this.currentRecord.misses++}addEviction(){this.archiveIfNeeded(),this.currentRecord.evictions++}setCacheSize(t){this.archiveIfNeeded(),this.currentRecord.cacheSize=t}addExpiration(){this.archiveIfNeeded(),this.currentRecord.expirations++}addSet(){this.archiveIfNeeded(),this.currentRecord.sets++}addInvalidateOne(){this.archiveIfNeeded(),this.currentRecord.invalidateOne++}addInvalidateAll(){this.archiveIfNeeded(),this.currentRecord.invalidateAll++}getStatistics(){return this.records.getStatistics()}archiveIfNeeded(){this.hoursPassed()>=this.statisticTtlInHours&&(this.collectionStart=new Date,this.currentTimeStamp=F8e(this.collectionStart),this.records.initForCache(this.cacheId,this.currentTimeStamp))}},IV=class extends VC{constructor(t,n,r,i,s){if(super(t||1e3,n||0),!r)throw new Error("Cache id is mandatory");this.hitStatistics=new Voe(r,s!==void 0?s:24,i)}getStatistics(){return this.hitStatistics.getStatistics()}set(t,n){super.set(t,n),this.hitStatistics.addSet(),this.hitStatistics.setCacheSize(this.size)}evict(){super.evict(),this.hitStatistics.addEviction(),this.hitStatistics.setCacheSize(this.size)}delete(t,n=!1){super.delete(t),n||this.hitStatistics.addInvalidateOne(),this.hitStatistics.setCacheSize(this.size)}clear(){super.clear(),this.hitStatistics.addInvalidateAll(),this.hitStatistics.setCacheSize(this.size)}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t,!0),this.hitStatistics.addExpiration();return}return this.bumpLru(n),n.value||this.hitStatistics.addFalsyHit(),(n.value===void 0||n.value===null||n.value==="")&&this.hitStatistics.addEmptyHit(),this.hitStatistics.addHit(),n.value}this.hitStatistics.addMiss()}},xV=class{constructor(t=1e3,n=0){if(isNaN(t)||t<0)throw new Error("Invalid max value");if(isNaN(n)||n<0)throw new Error("Invalid ttl value");this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this.max=t,this.ttl=n}clear(){this.items=Object.create(null),this.first=null,this.last=null,this.size=0}delete(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];delete this.items[t],this.size--,n.prev!==null&&(n.prev.next=n.next),n.next!==null&&(n.next.prev=n.prev),this.first===n&&(this.first=n.next),this.last===n&&(this.last=n.prev)}}deleteMany(t){for(var n=0;n0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}}expiresAt(t){if(Object.prototype.hasOwnProperty.call(this.items,t))return this.items[t].expiry}get(t){if(Object.prototype.hasOwnProperty.call(this.items,t)){let n=this.items[t];if(this.ttl>0&&n.expiry<=Date.now()){this.delete(t);return}return n.value}}getMany(t){let n=[];for(var r=0;r0?Date.now()+this.ttl:this.ttl;return}this.max>0&&this.size===this.max&&this.evict();let r={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:n};this.items[t]=r,++this.size===1?this.first=r:this.last.next=r,this.last=r}};Sh.Fifo=xV;Sh.FifoMap=zoe;Sh.FifoObject=xV;Sh.HitStatisticsRecord=kV;Sh.Lru=VC;Sh.LruHitStatistics=IV;Sh.LruMap=Goe;Sh.LruObject=VC;Sh.LruObjectHitStatistics=IV});var H8e=w((HWr,WC)=>{"use strict";var{FifoMap:Ihn}=OV(),xhn=/^[!#$%&'*+\-.^\w`|~]+$/u;function Ohn(e){if(xhn.test(e)===!1)throw new TypeError("Fieldname contains invalid characters.")}function j8e(e){e=e.trim().toLowerCase();let t=[];if(e.length!==0)if(e.indexOf(",")===-1)t.push(e);else{let n=e.length,r=0,i=0,s;for(r;r{"use strict";var Phn=GC(),{addAccessControlRequestHeadersToVaryHeader:Nhn,addOriginToVaryHeader:Chn}=H8e(),Yoe={origin:"*",methods:"GET,HEAD,POST",hook:"onRequest",preflightContinue:!1,optionsSuccessStatus:204,credentials:!1,exposedHeaders:null,allowedHeaders:null,maxAge:null,preflight:!0,strictPreflight:!0},Mhn=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend"],Koe=["preSerialization","preParsing","onSend"];function z8e(e,t){Mhn.indexOf(e)===-1&&t(new TypeError("@fastify/cors: Invalid hook option provided."))}function Dhn(e,t,n){e.decorateRequest("corsPreflightEnabled",!1);let r=!0,i;if(typeof t=="function")q8e(t,e,{hook:Yoe.hook},n);else if(t.delegator){let{delegator:s,...o}=t;q8e(s,e,o,n)}else{let s=PV(t);z8e(s.hook,n),Koe.indexOf(s.hook)!==-1?e.addHook(s.hook,function(a,c,u,l){KC(e,s,a,c,l)}):e.addHook(s.hook,function(a,c,u){KC(e,s,a,c,u)})}t.logLevel!==void 0&&(i=t.logLevel),t.hideOptionsRoute!==void 0&&(r=t.hideOptionsRoute),e.options("*",{schema:{hide:r},logLevel:i},(s,o)=>{if(!s.corsPreflightEnabled){o.callNotFound();return}o.send()}),n()}function q8e(e,t,n,r){let i=n?.hook||Yoe.hook;z8e(i,r),e.length===2?Koe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){B8e(e,t,o,a,u)}):t.addHook(i,function(o,a,c){B8e(e,t,o,a,c)}):Koe.indexOf(i)!==-1?t.addHook(i,function(o,a,c,u){let l=e(o);if(l&&typeof l.then=="function"){l.then(d=>KC(t,PV(d,!0),o,a,u)).catch(u);return}u(new Error("Invalid CORS origin option"))}):t.addHook(i,function(o,a,c){let u=e(o);if(u&&typeof u.then=="function"){u.then(l=>KC(t,PV(l,!0),o,a,c)).catch(c);return}c(new Error("Invalid CORS origin option"))})}function B8e(e,t,n,r,i){e(n,(s,o)=>{s?i(s):KC(t,PV(o,!0),n,r,i)})}function PV(e,t){let n={...Yoe,...e};return Array.isArray(e.origin)&&e.origin.indexOf("*")!==-1&&(n.origin="*"),Number.isInteger(n.cacheControl)?n.cacheControl=`max-age=${n.cacheControl}`:typeof n.cacheControl!="string"&&(n.cacheControl=null),n.dynamic=t||!1,n}function KC(e,t,n,r,i){let s={...t,...n.routeOptions.config?.cors};(typeof s.origin!="string"&&s.origin!==!1||s.dynamic)&&Chn(r),(typeof s.origin=="function"?Fhn(e,s.origin):(a,c)=>c(null,s.origin))(n,(a,c)=>{if(a!==null)return i(a);if(c===!1||n.routeOptions.config?.cors===!1)return i();if(!c)return i(new Error("Invalid CORS origin option"));if(Lhn(n,r,c,s),n.raw.method==="OPTIONS"&&s.preflight===!0){if(s.strictPreflight===!0&&(!n.headers.origin||!n.headers["access-control-request-method"])){r.status(400).type("text/plain").send("Invalid Preflight Request");return}if(n.corsPreflightEnabled=!0,Uhn(n,r,s),!s.preflightContinue){r.code(s.optionsSuccessStatus).header("Content-Length","0").send();return}}return i()})}function Lhn(e,t,n,r){let i=jhn(e.headers.origin,n);i&&t.header("Access-Control-Allow-Origin",i),r.credentials&&t.header("Access-Control-Allow-Credentials","true"),r.exposedHeaders!==null&&t.header("Access-Control-Expose-Headers",Array.isArray(r.exposedHeaders)?r.exposedHeaders.join(", "):r.exposedHeaders)}function Uhn(e,t,n){if(t.header("Access-Control-Allow-Methods",Array.isArray(n.methods)?n.methods.join(", "):n.methods),n.allowedHeaders===null){Nhn(t);let r=e.headers["access-control-request-headers"];r!==void 0&&t.header("Access-Control-Allow-Headers",r)}else t.header("Access-Control-Allow-Headers",Array.isArray(n.allowedHeaders)?n.allowedHeaders.join(", "):n.allowedHeaders);n.maxAge!==null&&t.header("Access-Control-Max-Age",String(n.maxAge)),n.cacheControl&&t.header("Cache-Control",n.cacheControl)}function Fhn(e,t){return function(n,r){let i=t.call(e,n.headers.origin,r);i&&typeof i.then=="function"&&i.then(s=>r(null,s),r)}}function jhn(e,t){return typeof t=="string"?t:G8e(e,t)?e:!1}function G8e(e,t){if(Array.isArray(t)){for(let n=0;n{var Hhn=/^(-?(?:\d+)?\.?\d+) *(m(?:illiseconds?|s(?:ecs?)?))?(s(?:ec(?:onds?|s)?)?)?(m(?:in(?:utes?|s)?)?)?(h(?:ours?|rs?)?)?(d(?:ays?)?)?(w(?:eeks?|ks?)?)?(y(?:ears?|rs?)?)?$/,CV=1e3,MV=CV*60,DV=MV*60,ZC=DV*24,Joe=ZC*365.25;function qhn(e){var t,n=e.toLowerCase().match(Hhn);if(n!=null&&(t=parseFloat(n[1])))return n[3]!=null?t*CV:n[4]!=null?t*MV:n[5]!=null?t*DV:n[6]!=null?t*ZC:n[7]!=null?t*ZC*7:n[8]!=null?t*Joe:t}function YC(e,t,n,r){var i=(e|0)===e?e:~~(e+.5);return t+i+(r?" "+n+(i!=1?"s":""):n[0])}function Bhn(e,t){var n=e<0?"-":"",r=e<0?-e:e;return r{"use strict";var{LruMap:zhn}=OV();function LV(e,t,n=5e3){this.continueExceeding=e,this.exponentialBackoff=t,this.lru=new zhn(n)}LV.prototype.incr=function(e,t,n,r){let i=Date.now(),s=this.lru.get(e);if(!s)s={current:1,ttl:n,iterationStartMs:i};else if(s.iterationStartMs+n<=i)s.current=1,s.ttl=n,s.iterationStartMs=i;else if(++s.current,this.continueExceeding&&s.current>r)s.ttl=n,s.iterationStartMs=i;else if(this.exponentialBackoff&&s.current>r){let o=s.current-r-1,a=n*2**o;s.ttl=Number.isSafeInteger(a)?a:Number.MAX_SAFE_INTEGER,s.iterationStartMs=i}else s.ttl=n-(i-s.iterationStartMs);this.lru.set(e,s),t(null,s)};LV.prototype.child=function(e){return new LV(e.continueExceeding,e.exponentialBackoff,e.cache)};K8e.exports=LV});var J8e=w((GWr,Z8e)=>{"use strict";var Ghn=` -- Key to operate on local key = KEYS[1] -- Time window for the TTL @@ -100,21 +100,21 @@ Mongoose Error Code: ${t.code}`:""}`})}function hte(e,t,n,r=void 0){n&&(0,aN.saf end return {current, timeWindow} -`;function DV(e,t,n,r="fastify-rate-limit-"){this.continueExceeding=e,this.exponentialBackoff=t,this.redis=n,this.key=r,this.redis.rateLimit||this.redis.defineCommand("rateLimit",{numberOfKeys:1,lua:Ghn})}DV.prototype.incr=function(e,t,n,r){this.redis.rateLimit(this.key+e,n,r,this.continueExceeding,this.exponentialBackoff,(i,s)=>{i?t(i,null):t(null,{current:s[0],ttl:s[1]})})};DV.prototype.child=function(e){return new DV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};Y8e.exports=DV});var i7e=w((VWr,LV)=>{"use strict";var Vhn=zC(),{parse:Q8e,format:Whn}=V8e(),Khn=K8e(),Yhn=Z8e(),$8e=1e3,e7e=6e4,Zhn="onRequest",Jhn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},Xhn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},Xoe=()=>{},Qhn=e=>e.ip,$hn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function Qoe(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=Xhn):(n.enableDraftSpec=!1,n.labels=Jhn),n.addHeaders=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0,[n.labels.retryAfter]:!0},t.addHeaders),n.addHeadersOnExceeding=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0},t.addHeadersOnExceeding),Number.isFinite(t.max)&&t.max>=0?n.max=Math.trunc(t.max):typeof t.max=="function"?n.max=t.max:n.max=$8e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=Q8e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=e7e,n.hook=t.hook||Zhn,n.allowList=t.allowList||t.whitelist||null,n.ban=Number.isFinite(t.ban)&&t.ban>=0?Math.trunc(t.ban):-1,n.onBanReach=typeof t.onBanReach=="function"?t.onBanReach:Xoe,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:Xoe,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:Xoe,n.continueExceeding=typeof t.continueExceeding=="boolean"?t.continueExceeding:!1,n.exponentialBackoff=typeof t.exponentialBackoff=="boolean"?t.exponentialBackoff:!1,n.keyGenerator=typeof t.keyGenerator=="function"?t.keyGenerator:Qhn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=$hn,n.isCustomErrorMessage=!1),n.skipOnError=typeof t.skipOnError=="boolean"?t.skipOnError:!1;let r={rateLimitRan:Symbol("fastify.request.rateLimitRan"),store:null};if(t.store){let i=t.store;r.store=new i(n)}else t.redis?r.store=new Yhn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new Khn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=J8e(r,n,i);return o=>n7e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=J8e(r,n,i);return r7e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=t7e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),X8e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&X8e(r,n,i)})}function t7e(...e){let t=Object.assign({},...e);if(Number.isFinite(t.timeWindow)&&t.timeWindow>=0?t.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?t.timeWindow=Q8e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=e7e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=$8e),Number.isFinite(t.ban)&&t.ban>=0?t.ban=Math.trunc(t.ban):t.ban=-1,t.groupId!==void 0&&typeof t.groupId!="string")throw new Error("groupId must be a string");return t}function J8e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=t7e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function X8e(e,t,n){let r=t.hook,i=r7e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function n7e(e,t,n){let{store:r}=e,i=await t.keyGenerator(n),s=n.routeOptions.config?.rateLimit?.groupId;if(s&&(i+=s),t.allowList){if(typeof t.allowList=="function"){if(await t.allowList(n,i))return{isAllowed:!0,key:i}}else if(t.allowList.indexOf(i)!==-1)return{isAllowed:!0,key:i}}let o=typeof t.max=="number"?t.max:await t.max(n,i),a=typeof t.timeWindow=="number"?t.timeWindow:await t.timeWindow(n,i),c=0,u=0,l=0;try{let d=await new Promise((f,p)=>{r.incr(i,(h,m)=>{h?p(h):f(m)},a,o)});c=d.current,u=d.ttl,l=Math.ceil(d.ttl/1e3)}catch(d){if(!t.skipOnError)throw d}return{isAllowed:!1,key:i,max:o,timeWindow:a,remaining:Math.max(0,o-c),ttl:u,ttlInSeconds:l,isExceeded:c>o,isBanned:t.ban!==-1&&c-o>t.ban}}function r7e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await n7e(e,t,r);if(s.isAllowed)return;let{key:o,max:a,remaining:c,ttl:u,ttlInSeconds:l,isExceeded:d,isBanned:f}=s;if(!d){t.addHeadersOnExceeding[t.labels.rateLimit]&&i.header(t.labels.rateLimit,a),t.addHeadersOnExceeding[t.labels.rateRemaining]&&i.header(t.labels.rateRemaining,c),t.addHeadersOnExceeding[t.labels.rateReset]&&i.header(t.labels.rateReset,l),t.onExceeding(r,o);return}t.onExceeded(r,o),t.addHeaders[t.labels.rateLimit]&&i.header(t.labels.rateLimit,a),t.addHeaders[t.labels.rateRemaining]&&i.header(t.labels.rateRemaining,0),t.addHeaders[t.labels.rateReset]&&i.header(t.labels.rateReset,l),t.addHeaders[t.labels.retryAfter]&&i.header(t.labels.retryAfter,l);let p={statusCode:429,ban:!1,max:a,ttl:u,after:Whn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}LV.exports=Vhn(Qoe,{fastify:"5.x",name:"@fastify/rate-limit"});LV.exports.default=Qoe;LV.exports.fastifyRateLimit=Qoe});var Jm=w((WWr,a7e)=>{"use strict";var s7e=["nodebuffer","arraybuffer","fragments"],o7e=typeof Blob<"u";o7e&&s7e.push("blob");a7e.exports={BINARY_TYPES:s7e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:o7e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var ZC=w((KWr,UV)=>{"use strict";var{EMPTY_BUFFER:emn}=Jm(),$oe=Buffer[Symbol.species];function tmn(e,t){if(e.length===0)return emn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var l7e=Symbol("kDone"),tae=Symbol("kRun"),nae=class{constructor(t){this[l7e]=()=>{this.pending--,this[tae]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[tae]()}[tae](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[l7e])}}};d7e.exports=nae});var gk=w((ZWr,g7e)=>{"use strict";var JC=K("zlib"),p7e=ZC(),rmn=f7e(),{kStatusCode:h7e}=Jm(),imn=Buffer[Symbol.species],smn=Buffer.from([0,0,255,255]),jV=Symbol("permessage-deflate"),Xm=Symbol("total-length"),hk=Symbol("callback"),HS=Symbol("buffers"),mk=Symbol("error"),FV,rae=class{constructor(t){if(this._options=t||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!FV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;FV=new rmn(n)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[hk];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let n=this._options,r=t.find(i=>!(n.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(n.serverMaxWindowBits===!1||typeof n.serverMaxWindowBits=="number"&&n.serverMaxWindowBits>i.server_max_window_bits)||typeof n.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return n.serverNoContextTakeover&&(r.server_no_context_takeover=!0),n.clientNoContextTakeover&&(r.client_no_context_takeover=!0),typeof n.serverMaxWindowBits=="number"&&(r.server_max_window_bits=n.serverMaxWindowBits),typeof n.clientMaxWindowBits=="number"?r.client_max_window_bits=n.clientMaxWindowBits:(r.client_max_window_bits===!0||n.clientMaxWindowBits===!1)&&delete r.client_max_window_bits,r}acceptAsClient(t){let n=t[0];if(this._options.clientNoContextTakeover===!1&&n.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!n.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(n.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&n.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return n}normalizeParams(t){return t.forEach(n=>{Object.keys(n).forEach(r=>{let i=n[r];if(i.length>1)throw new Error(`Parameter "${r}" must have only a single value`);if(i=i[0],r==="client_max_window_bits"){if(i!==!0){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else if(r==="server_max_window_bits"){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(r==="client_no_context_takeover"||r==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else throw new Error(`Unknown parameter "${r}"`);n[r]=i})}),t}decompress(t,n,r){FV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){FV.add(i=>{this._compress(t,n,(s,o)=>{i(),r(s,o)})})}_decompress(t,n,r){let i=this._isServer?"client":"server";if(!this._inflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?JC.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=JC.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[jV]=this,this._inflate[Xm]=0,this._inflate[HS]=[],this._inflate.on("error",amn),this._inflate.on("data",m7e)}this._inflate[hk]=r,this._inflate.write(t),n&&this._inflate.write(smn),this._inflate.flush(()=>{let s=this._inflate[mk];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=p7e.concat(this._inflate[HS],this._inflate[Xm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Xm]=0,this._inflate[HS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),r(null,o)})}_compress(t,n,r){let i=this._isServer?"server":"client";if(!this._deflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?JC.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=JC.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Xm]=0,this._deflate[HS]=[],this._deflate.on("data",omn)}this._deflate[hk]=r,this._deflate.write(t),this._deflate.flush(JC.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=p7e.concat(this._deflate[HS],this._deflate[Xm]);n&&(s=new imn(s.buffer,s.byteOffset,s.length-4)),this._deflate[hk]=null,this._deflate[Xm]=0,this._deflate[HS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};g7e.exports=rae;function omn(e){this[HS].push(e),this[Xm]+=e.length}function m7e(e){if(this[Xm]+=e.length,this[jV]._maxPayload<1||this[Xm]<=this[jV]._maxPayload){this[HS].push(e);return}this[mk]=new RangeError("Max payload size exceeded"),this[mk].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[mk][h7e]=1009,this.removeListener("data",m7e),this.reset()}function amn(e){if(this[jV]._inflate=null,this[mk]){this[hk](this[mk]);return}e[h7e]=1007,this[hk](e)}});var yk=w((JWr,HV)=>{"use strict";var{isUtf8:y7e}=K("buffer"),{hasBlob:cmn}=Jm(),umn=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function lmn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function iae(e){let t=e.length,n=0;for(;n=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||e[n]===224&&(e[n+1]&224)===128||e[n]===237&&(e[n+1]&224)===160)return!1;n+=3}else if((e[n]&248)===240){if(n+3>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||(e[n+3]&192)!==128||e[n]===240&&(e[n+1]&240)===128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function dmn(e){return cmn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}HV.exports={isBlob:dmn,isValidStatusCode:lmn,isValidUTF8:iae,tokenChars:umn};if(y7e)HV.exports.isValidUTF8=function(e){return e.length<24?iae(e):y7e(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=K("utf-8-validate");HV.exports.isValidUTF8=function(t){return t.length<32?iae(t):e(t)}}catch{}});var uae=w((XWr,R7e)=>{"use strict";var{Writable:fmn}=K("stream"),S7e=gk(),{BINARY_TYPES:pmn,EMPTY_BUFFER:b7e,kStatusCode:hmn,kWebSocket:mmn}=Jm(),{concat:sae,toArrayBuffer:gmn,unmask:ymn}=ZC(),{isValidStatusCode:Smn,isValidUTF8:E7e}=yk(),qV=Buffer[Symbol.species],_d=0,_7e=1,T7e=2,v7e=3,oae=4,aae=5,BV=6,cae=class extends fmn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||pmn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[mmn]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=_d}_write(t,n,r){if(this._opcode===8&&this._state==_d)return r();this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(r)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t=r.length?n.set(this._buffers.shift(),i):(n.set(new Uint8Array(r.buffer,r.byteOffset,t),i),this._buffers[0]=new qV(r.buffer,r.byteOffset+t,r.length-t)),t-=r.length}while(t>0);return n}startLoop(t){this._loop=!0;do switch(this._state){case _d:this.getInfo(t);break;case _7e:this.getPayloadLength16(t);break;case T7e:this.getPayloadLength64(t);break;case v7e:this.getMask();break;case oae:this.getData(t);break;case aae:case BV:this._loop=!1;return}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2){this._loop=!1;return}let n=this.consume(2);if((n[0]&48)!==0){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");t(i);return}let r=(n[0]&64)===64;if(r&&!this._extensions[S7e.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(this._fin=(n[0]&128)===128,this._opcode=n[0]&15,this._payloadLength=n[1]&127,this._opcode===0){if(r){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");t(i);return}if(r){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");t(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(n[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");t(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");t(i);return}this._payloadLength===126?this._state=_7e:this._payloadLength===127?this._state=T7e:this.haveLength(t)}getPayloadLength16(t){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t)}getPayloadLength64(t){if(this._bufferedBytes<8){this._loop=!1;return}let n=this.consume(8),r=n.readUInt32BE(0);if(r>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");t(i);return}this._payloadLength=r*Math.pow(2,32)+n.readUInt32BE(4),this.haveLength(t)}haveLength(t){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let n=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(n);return}this._masked?this._state=v7e:this._state=oae}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=oae}getData(t){let n=b7e;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=aae,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[S7e.extensionName].decompress(t,this._fin,(i,s)=>{if(i)return n(i);if(s.length){if(this._messageLength+=s.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");n(o);return}this._fragments.push(s)}this.dataMessage(n),this._state===_d&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=_d;return}let n=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=sae(r,n):this._binaryType==="arraybuffer"?i=gmn(sae(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=_d):(this._state=BV,setImmediate(()=>{this.emit("message",i,!0),this._state=_d,this.startLoop(t)}))}else{let i=sae(r,n);if(!this._skipUTF8Validation&&!E7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===aae||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=_d):(this._state=BV,setImmediate(()=>{this.emit("message",i,!1),this._state=_d,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,b7e),this.end();else{let r=t.readUInt16BE(0);if(!Smn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new qV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!E7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");n(s);return}this._loop=!1,this.emit("conclude",r,i),this.end()}this._state=_d;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=_d):(this._state=BV,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=_d,this.startLoop(n)}))}createError(t,n,r,i,s){this._loop=!1,this._errored=!0;let o=new t(r?`Invalid WebSocket frame: ${n}`:n);return Error.captureStackTrace(o,this.createError),o.code=s,o[hmn]=i,o}};R7e.exports=cae});var fae=w(($Wr,k7e)=>{"use strict";var{Duplex:QWr}=K("stream"),{randomFillSync:bmn}=K("crypto"),A7e=gk(),{EMPTY_BUFFER:Emn,kWebSocket:_mn,NOOP:Tmn}=Jm(),{isBlob:Sk,isValidStatusCode:vmn}=yk(),{mask:w7e,toBuffer:V_}=ZC(),Td=Symbol("kByteLength"),Rmn=Buffer.alloc(4),zV=8*1024,W_,bk=zV,xf=0,Amn=1,wmn=2,lae=class e{constructor(t,n,r){this._extensions=n||{},r&&(this._generateMask=r,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=xf,this.onerror=Tmn,this[_mn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||Rmn,n.generateMask?n.generateMask(r):(bk===zV&&(W_===void 0&&(W_=Buffer.alloc(zV)),bmn(W_,0,zV),bk=0),r[0]=W_[bk++],r[1]=W_[bk++],r[2]=W_[bk++],r[3]=W_[bk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[Td]!==void 0?a=n[Td]:(t=Buffer.from(t),a=t.length):(a=t.length,i=n.mask&&n.readOnly&&!o);let c=a;a>=65536?(s+=8,c=127):a>125&&(s+=2,c=126);let u=Buffer.allocUnsafe(i?a+s:s);return u[0]=n.fin?n.opcode|128:n.opcode,n.rsv1&&(u[0]|=64),u[1]=c,c===126?u.writeUInt16BE(a,2):c===127&&(u[2]=u[3]=0,u.writeUIntBE(a,4,6)),n.mask?(u[1]|=128,u[s-4]=r[0],u[s-3]=r[1],u[s-2]=r[2],u[s-1]=r[3],o?[u,t]:i?(w7e(t,r,u,s,a),[u]):(w7e(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=Emn;else{if(typeof t!="number"||!vmn(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0);else{let a=Buffer.byteLength(n);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+a),s.writeUInt16BE(t,0),typeof n=="string"?s.write(n,2):s.set(n,2)}}let o={[Td]:s.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==xf?this.enqueue([this.dispatch,s,!1,o,i]):this.sendFrame(e.frame(s,o),i)}ping(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):Sk(t)?(i=t.size,s=!1):(t=V_(t),i=t.length,s=V_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[Td]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};Sk(t)?this._state!==xf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==xf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}pong(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):Sk(t)?(i=t.size,s=!1):(t=V_(t),i=t.length,s=V_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[Td]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};Sk(t)?this._state!==xf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==xf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}send(t,n,r){let i=this._extensions[A7e.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):Sk(t)?(a=t.size,c=!1):(t=V_(t),a=t.length,c=V_.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=a>=i._threshold),this._compress=o):(o=!1,s=0),n.fin&&(this._firstFragment=!0);let u={[Td]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};Sk(t)?this._state!==xf?this.enqueue([this.getBlobData,t,this._compress,u,r]):this.getBlobData(t,this._compress,u,r):this._state!==xf?this.enqueue([this.dispatch,t,this._compress,u,r]):this.dispatch(t,this._compress,u,r)}getBlobData(t,n,r,i){this._bufferedBytes+=r[Td],this._state=wmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(dae,this,a,i);return}this._bufferedBytes-=r[Td];let o=V_(s);n?this.dispatch(o,n,r,i):(this._state=xf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(kmn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[A7e.extensionName];this._bufferedBytes+=r[Td],this._state=Amn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");dae(this,c,i);return}this._bufferedBytes-=r[Td],this._state=xf,r.readOnly=!1,this.sendFrame(e.frame(a,r),i),this.dequeue()})}dequeue(){for(;this._state===xf&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][Td],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][Td],this._queue.push(t)}sendFrame(t,n){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],n),this._socket.uncork()):this._socket.write(t[0],n)}};k7e.exports=lae;function dae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:XC,kListener:pae}=Jm(),I7e=Symbol("kCode"),x7e=Symbol("kData"),O7e=Symbol("kError"),P7e=Symbol("kMessage"),N7e=Symbol("kReason"),Ek=Symbol("kTarget"),C7e=Symbol("kType"),M7e=Symbol("kWasClean"),Qm=class{constructor(t){this[Ek]=null,this[C7e]=t}get target(){return this[Ek]}get type(){return this[C7e]}};Object.defineProperty(Qm.prototype,"target",{enumerable:!0});Object.defineProperty(Qm.prototype,"type",{enumerable:!0});var K_=class extends Qm{constructor(t,n={}){super(t),this[I7e]=n.code===void 0?0:n.code,this[N7e]=n.reason===void 0?"":n.reason,this[M7e]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[I7e]}get reason(){return this[N7e]}get wasClean(){return this[M7e]}};Object.defineProperty(K_.prototype,"code",{enumerable:!0});Object.defineProperty(K_.prototype,"reason",{enumerable:!0});Object.defineProperty(K_.prototype,"wasClean",{enumerable:!0});var _k=class extends Qm{constructor(t,n={}){super(t),this[O7e]=n.error===void 0?null:n.error,this[P7e]=n.message===void 0?"":n.message}get error(){return this[O7e]}get message(){return this[P7e]}};Object.defineProperty(_k.prototype,"error",{enumerable:!0});Object.defineProperty(_k.prototype,"message",{enumerable:!0});var QC=class extends Qm{constructor(t,n={}){super(t),this[x7e]=n.data===void 0?null:n.data}get data(){return this[x7e]}};Object.defineProperty(QC.prototype,"data",{enumerable:!0});var Imn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[XC]&&i[pae]===t&&!i[XC])return;let r;if(e==="message")r=function(s,o){let a=new QC("message",{data:o?s:s.toString()});a[Ek]=this,GV(t,this,a)};else if(e==="close")r=function(s,o){let a=new K_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Ek]=this,GV(t,this,a)};else if(e==="error")r=function(s){let o=new _k("error",{error:s,message:s.message});o[Ek]=this,GV(t,this,o)};else if(e==="open")r=function(){let s=new Qm("open");s[Ek]=this,GV(t,this,s)};else return;r[XC]=!!n[XC],r[pae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[pae]===t&&!n[XC]){this.removeListener(e,n);break}}};D7e.exports={CloseEvent:K_,ErrorEvent:_k,Event:Qm,EventTarget:Imn,MessageEvent:QC};function GV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var VV=w((t4r,U7e)=>{"use strict";var{tokenChars:$C}=yk();function bh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function xmn(e){let t=Object.create(null),n=Object.create(null),r=!1,i=!1,s=!1,o,a,c=-1,u=-1,l=-1,d=0;for(;d{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(r=>[t].concat(Object.keys(r).map(i=>{let s=r[i];return Array.isArray(s)||(s=[s]),s.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}U7e.exports={format:Omn,parse:xmn}});var ZV=w((i4r,Z7e)=>{"use strict";var Pmn=K("events"),Nmn=K("https"),Cmn=K("http"),H7e=K("net"),Mmn=K("tls"),{randomBytes:Dmn,createHash:Lmn}=K("crypto"),{Duplex:n4r,Readable:r4r}=K("stream"),{URL:hae}=K("url"),qS=gk(),Umn=uae(),Fmn=fae(),{isBlob:jmn}=yk(),{BINARY_TYPES:F7e,CLOSE_TIMEOUT:Hmn,EMPTY_BUFFER:WV,GUID:qmn,kForOnEventAttribute:mae,kListener:Bmn,kStatusCode:zmn,kWebSocket:Wo,NOOP:q7e}=Jm(),{EventTarget:{addEventListener:Gmn,removeEventListener:Vmn}}=L7e(),{format:Wmn,parse:Kmn}=VV(),{toBuffer:Ymn}=ZC(),B7e=Symbol("kAborted"),gae=[8,13],$m=["CONNECTING","OPEN","CLOSING","CLOSED"],Zmn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends Pmn{constructor(t,n,r){super(),this._binaryType=F7e[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=WV,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,n===void 0?n=[]:Array.isArray(n)||(typeof n=="object"&&n!==null?(r=n,n=[]):n=[n]),z7e(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){F7e.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,r){let i=new Umn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Fmn(t,this._extensions,r.generateMask);this._receiver=i,this._sender=s,this._socket=t,i[Wo]=this,s[Wo]=this,t[Wo]=this,i.on("conclude",Qmn),i.on("drain",$mn),i.on("error",egn),i.on("message",tgn),i.on("ping",ngn),i.on("pong",rgn),s.onerror=ign,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",W7e),t.on("data",YV),t.on("end",K7e),t.on("error",Y7e),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[qS.extensionName]&&this._extensions[qS.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){bl(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,r=>{r||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),V7e(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(r=t,t=n=void 0):typeof n=="function"&&(r=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){yae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||WV,n,r)}pong(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(r=t,t=n=void 0):typeof n=="function"&&(r=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){yae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||WV,n,r)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof n=="function"&&(r=n,n={}),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){yae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[qS.extensionName]||(i.compress=!1),this._sender.send(t||WV,i,r)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){bl(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(Fi,"CONNECTING",{enumerable:!0,value:$m.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:$m.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:$m.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:$m.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:$m.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:$m.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:$m.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:$m.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(Fi.prototype,e,{enumerable:!0})});["open","error","close","message"].forEach(e=>{Object.defineProperty(Fi.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[mae])return t[Bmn];return null},set(t){for(let n of this.listeners(e))if(n[mae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[mae]:!0})}})});Fi.prototype.addEventListener=Gmn;Fi.prototype.removeEventListener=Vmn;Z7e.exports=Fi;function z7e(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Hmn,protocolVersion:gae[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=i.autoPong,e._closeTimeout=i.closeTimeout,!gae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${gae.join(", ")})`);let s;if(t instanceof hae)s=t;else try{s=new hae(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}s.protocol==="http:"?s.protocol="ws:":s.protocol==="https:"&&(s.protocol="wss:"),e._url=s.href;let o=s.protocol==="wss:",a=s.protocol==="ws+unix:",c;if(s.protocol!=="ws:"&&!o&&!a?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!s.pathname?c="The URL's pathname is empty":s.hash&&(c="The URL contains a fragment identifier"),c){let m=new SyntaxError(c);if(e._redirects===0)throw m;KV(e,m);return}let u=o?443:80,l=Dmn(16).toString("base64"),d=o?Nmn.request:Cmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?Xmn:Jmn),i.defaultPort=i.defaultPort||u,i.port=s.port||u,i.host=s.hostname.startsWith("[")?s.hostname.slice(1,-1):s.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":l,Connection:"Upgrade",Upgrade:"websocket"},i.path=s.pathname+s.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(p=new qS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=Wmn({[qS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!Zmn.test(m)||f.has(m))throw new SyntaxError("An invalid or duplicated subprotocol was specified");f.add(m)}i.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(s.username||s.password)&&(i.auth=`${s.username}:${s.password}`),a){let m=i.path.split(":");i.socketPath=m[0],i.path=m[1]}let h;if(i.followRedirects){if(e._redirects===0){e._originalIpc=a,e._originalSecure=o,e._originalHostOrSocketPath=a?i.socketPath:s.host;let m=r&&r.headers;if(r={...r,headers:{}},m)for(let[g,y]of Object.entries(m))r.headers[g.toLowerCase()]=y}else if(e.listenerCount("redirect")===0){let m=a?e._originalIpc?i.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:s.host===e._originalHostOrSocketPath;(!m||e._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,m||delete i.headers.host,i.auth=void 0)}i.auth&&!r.headers.authorization&&(r.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),h=e._req=d(i),e._redirects&&e.emit("redirect",e.url,h)}else h=e._req=d(i);i.timeout&&h.on("timeout",()=>{bl(e,h,"Opening handshake has timed out")}),h.on("error",m=>{h===null||h[B7e]||(h=e._req=null,KV(e,m))}),h.on("response",m=>{let g=m.headers.location,y=m.statusCode;if(g&&i.followRedirects&&y>=300&&y<400){if(++e._redirects>i.maxRedirects){bl(e,h,"Maximum redirects exceeded");return}h.abort();let b;try{b=new hae(g,t)}catch{let E=new SyntaxError(`Invalid URL: ${g}`);KV(e,E);return}z7e(e,b,n,r)}else e.emit("unexpected-response",h,m)||bl(e,h,`Unexpected server response: ${m.statusCode}`)}),h.on("upgrade",(m,g,y)=>{if(e.emit("upgrade",m),e.readyState!==Fi.CONNECTING)return;h=e._req=null;let b=m.headers.upgrade;if(b===void 0||b.toLowerCase()!=="websocket"){bl(e,g,"Invalid Upgrade header");return}let S=Lmn("sha1").update(l+qmn).digest("base64");if(m.headers["sec-websocket-accept"]!==S){bl(e,g,"Invalid Sec-WebSocket-Accept header");return}let E=m.headers["sec-websocket-protocol"],_;if(E!==void 0?f.size?f.has(E)||(_="Server sent an invalid subprotocol"):_="Server sent a subprotocol but none was requested":f.size&&(_="Server sent no subprotocol"),_){bl(e,g,_);return}E&&(e._protocol=E);let T=m.headers["sec-websocket-extensions"];if(T!==void 0){if(!p){bl(e,g,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let R;try{R=Kmn(T)}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}let A=Object.keys(R);if(A.length!==1||A[0]!==qS.extensionName){bl(e,g,"Server indicated an extension that was not requested");return}try{p.accept(R[qS.extensionName])}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[qS.extensionName]=p}e.setSocket(g,y,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(h,e):h.end()}function KV(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function Jmn(e){return e.path=e.socketPath,H7e.connect(e)}function Xmn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=H7e.isIP(e.host)?"":e.host),Mmn.connect(e)}function bl(e,t,n){e._readyState=Fi.CLOSING;let r=new Error(n);Error.captureStackTrace(r,bl),t.setHeader?(t[B7e]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(KV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function yae(e,t,n){if(t){let r=jmn(t)?t.size:Ymn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${$m[e.readyState]})`);process.nextTick(n,r)}}function Qmn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",YV),process.nextTick(G7e,n._socket),e===1005?n.close():n.close(e,t))}function $mn(){let e=this[Wo];e.isPaused||e._socket.resume()}function egn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",YV),process.nextTick(G7e,t._socket),t.close(e[zmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function j7e(){this[Wo].emitClose()}function tgn(e,t){this[Wo].emit("message",e,t)}function ngn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,q7e),t.emit("ping",e)}function rgn(e){this[Wo].emit("pong",e)}function G7e(e){e.resume()}function ign(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,V7e(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function V7e(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function W7e(){let e=this[Wo];if(this.removeListener("close",W7e),this.removeListener("data",YV),this.removeListener("end",K7e),e._readyState=Fi.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[Wo]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",j7e),e._receiver.on("finish",j7e))}function YV(e){this[Wo]._receiver.write(e)||this.pause()}function K7e(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function Y7e(){let e=this[Wo];this.removeListener("error",Y7e),this.on("error",q7e),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var $7e=w((o4r,Q7e)=>{"use strict";var s4r=ZV(),{Duplex:sgn}=K("stream");function J7e(e){e.emit("close")}function ogn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function X7e(e){this.removeListener("error",X7e),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function agn(e,t){let n=!0,r=new sgn({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(s,o){let a=!o&&r._readableState.objectMode?s.toString():s;r.push(a)||e.pause()}),e.once("error",function(s){r.destroyed||(n=!1,r.destroy(s))}),e.once("close",function(){r.destroyed||r.push(null)}),r._destroy=function(i,s){if(e.readyState===e.CLOSED){s(i),process.nextTick(J7e,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(J7e,r)}),n&&e.terminate()},r._final=function(i){if(e.readyState===e.CONNECTING){e.once("open",function(){r._final(i)});return}e._socket!==null&&(e._socket._writableState.finished?(i(),r._readableState.endEmitted&&r.destroy()):(e._socket.once("finish",function(){i()}),e.close()))},r._read=function(){e.isPaused&&e.resume()},r._write=function(i,s,o){if(e.readyState===e.CONNECTING){e.once("open",function(){r._write(i,s,o)});return}e.send(i,o)},r.on("end",ogn),r.on("error",X7e),r}Q7e.exports=agn});var Sae=w((a4r,eJe)=>{"use strict";var{tokenChars:cgn}=yk();function ugn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var lgn=K("events"),JV=K("http"),{Duplex:c4r}=K("stream"),{createHash:dgn}=K("crypto"),tJe=VV(),Y_=gk(),fgn=Sae(),pgn=ZV(),{CLOSE_TIMEOUT:hgn,GUID:mgn,kWebSocket:ggn}=Jm(),ygn=/^[+/0-9A-Za-z]{22}==$/,nJe=0,rJe=1,sJe=2,bae=class extends lgn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:hgn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:pgn,...t},t.port==null&&!t.server&&!t.noServer||t.port!=null&&(t.server||t.noServer)||t.server&&t.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(t.port!=null?(this._server=JV.createServer((r,i)=>{let s=JV.STATUS_CODES[426];i.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"}),i.end(s)}),this._server.listen(t.port,t.host,t.backlog,n)):t.server&&(this._server=t.server),this._server){let r=this.emit.bind(this,"connection");this._removeListeners=Sgn(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,s,o)=>{this.handleUpgrade(i,s,o,r)}})}t.perMessageDeflate===!0&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=nJe}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(this._state===sJe){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(eM,this);return}if(t&&this.once("close",t),this._state!==rJe)if(this._state=rJe,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(eM,this):process.nextTick(eM,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{eM(this)})}}shouldHandle(t){if(this.options.path){let n=t.url.indexOf("?");if((n!==-1?t.url.slice(0,n):t.url)!==this.options.path)return!1}return!0}handleUpgrade(t,n,r,i){n.on("error",iJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){Z_(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){Z_(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!ygn.test(s)){Z_(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){Z_(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){tM(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=fgn.parse(c)}catch{Z_(this,t,n,400,"Invalid Sec-WebSocket-Protocol header");return}let l=t.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&l!==void 0){let f=new Y_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=tJe.parse(l);p[Y_.extensionName]&&(f.accept(p[Y_.extensionName]),d[Y_.extensionName]=f)}catch{Z_(this,t,n,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let f={origin:t.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(t.socket.authorized||t.socket.encrypted),req:t};if(this.options.verifyClient.length===2){this.options.verifyClient(f,(p,h,m,g)=>{if(!p)return tM(n,h||401,m,g);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return tM(n,401)}this.completeUpgrade(d,s,u,t,n,r,i)}completeUpgrade(t,n,r,i,s,o,a){if(!s.readable||!s.writable)return s.destroy();if(s[ggn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>nJe)return tM(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${dgn("sha1").update(n+mgn).digest("base64")}`],l=new this.options.WebSocket(null,void 0,this.options);if(r.size){let d=this.options.handleProtocols?this.options.handleProtocols(r,i):r.values().next().value;d&&(u.push(`Sec-WebSocket-Protocol: ${d}`),l._protocol=d)}if(t[Y_.extensionName]){let d=t[Y_.extensionName].params,f=tJe.format({[Y_.extensionName]:[d]});u.push(`Sec-WebSocket-Extensions: ${f}`),l._extensions=t}this.emit("headers",u,i),s.write(u.concat(`\r +`;function UV(e,t,n,r="fastify-rate-limit-"){this.continueExceeding=e,this.exponentialBackoff=t,this.redis=n,this.key=r,this.redis.rateLimit||this.redis.defineCommand("rateLimit",{numberOfKeys:1,lua:Ghn})}UV.prototype.incr=function(e,t,n,r){this.redis.rateLimit(this.key+e,n,r,this.continueExceeding,this.exponentialBackoff,(i,s)=>{i?t(i,null):t(null,{current:s[0],ttl:s[1]})})};UV.prototype.child=function(e){return new UV(e.continueExceeding,e.exponentialBackoff,this.redis,`${this.key}${e.routeInfo.method}${e.routeInfo.url}-`)};Z8e.exports=UV});var s7e=w((VWr,FV)=>{"use strict";var Vhn=GC(),{parse:$8e,format:Whn}=W8e(),Khn=Y8e(),Yhn=J8e(),e7e=1e3,t7e=6e4,Zhn="onRequest",Jhn={rateLimit:"x-ratelimit-limit",rateRemaining:"x-ratelimit-remaining",rateReset:"x-ratelimit-reset",retryAfter:"retry-after"},Xhn={rateLimit:"ratelimit-limit",rateRemaining:"ratelimit-remaining",rateReset:"ratelimit-reset",retryAfter:"retry-after"},Qoe=()=>{},Qhn=e=>e.ip,$hn=(e,t)=>{let n=new Error(`Rate limit exceeded, retry in ${t.after}`);return n.statusCode=t.statusCode,n};async function $oe(e,t){let n={global:typeof t.global=="boolean"?t.global:!0};typeof t.enableDraftSpec=="boolean"&&t.enableDraftSpec?(n.enableDraftSpec=!0,n.labels=Xhn):(n.enableDraftSpec=!1,n.labels=Jhn),n.addHeaders=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0,[n.labels.retryAfter]:!0},t.addHeaders),n.addHeadersOnExceeding=Object.assign({[n.labels.rateLimit]:!0,[n.labels.rateRemaining]:!0,[n.labels.rateReset]:!0},t.addHeadersOnExceeding),Number.isFinite(t.max)&&t.max>=0?n.max=Math.trunc(t.max):typeof t.max=="function"?n.max=t.max:n.max=e7e,Number.isFinite(t.timeWindow)&&t.timeWindow>=0?n.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?n.timeWindow=$8e(t.timeWindow):typeof t.timeWindow=="function"?n.timeWindow=t.timeWindow:n.timeWindow=t7e,n.hook=t.hook||Zhn,n.allowList=t.allowList||t.whitelist||null,n.ban=Number.isFinite(t.ban)&&t.ban>=0?Math.trunc(t.ban):-1,n.onBanReach=typeof t.onBanReach=="function"?t.onBanReach:Qoe,n.onExceeding=typeof t.onExceeding=="function"?t.onExceeding:Qoe,n.onExceeded=typeof t.onExceeded=="function"?t.onExceeded:Qoe,n.continueExceeding=typeof t.continueExceeding=="boolean"?t.continueExceeding:!1,n.exponentialBackoff=typeof t.exponentialBackoff=="boolean"?t.exponentialBackoff:!1,n.keyGenerator=typeof t.keyGenerator=="function"?t.keyGenerator:Qhn,typeof t.errorResponseBuilder=="function"?(n.errorResponseBuilder=t.errorResponseBuilder,n.isCustomErrorMessage=!0):(n.errorResponseBuilder=$hn,n.isCustomErrorMessage=!1),n.skipOnError=typeof t.skipOnError=="boolean"?t.skipOnError:!1;let r={rateLimitRan:Symbol("fastify.request.rateLimitRan"),store:null};if(t.store){let i=t.store;r.store=new i(n)}else t.redis?r.store=new Yhn(n.continueExceeding,n.exponentialBackoff,t.redis,t.nameSpace):r.store=new Khn(n.continueExceeding,n.exponentialBackoff,t.cache);e.decorateRequest(r.rateLimitRan,!1),e.hasDecorator("createRateLimit")||e.decorate("createRateLimit",i=>{let s=X8e(r,n,i);return o=>r7e.apply(this,s.concat(o))}),e.hasDecorator("rateLimit")||e.decorate("rateLimit",i=>{let s=X8e(r,n,i);return i7e(...s)}),e.addHook("onRoute",i=>{if(i.config?.rateLimit!=null){if(typeof i.config.rateLimit=="object"){let s=Object.create(r),o=n7e(n,i.config.rateLimit,{routeInfo:i});s.store=r.store.child(o),Q8e(s,o,i)}else if(i.config.rateLimit!==!1)throw new Error("Unknown value for route rate-limit configuration")}else n.global&&Q8e(r,n,i)})}function n7e(...e){let t=Object.assign({},...e);if(Number.isFinite(t.timeWindow)&&t.timeWindow>=0?t.timeWindow=Math.trunc(t.timeWindow):typeof t.timeWindow=="string"?t.timeWindow=$8e(t.timeWindow):typeof t.timeWindow!="function"&&(t.timeWindow=t7e),Number.isFinite(t.max)&&t.max>=0?t.max=Math.trunc(t.max):typeof t.max!="function"&&(t.max=e7e),Number.isFinite(t.ban)&&t.ban>=0?t.ban=Math.trunc(t.ban):t.ban=-1,t.groupId!==void 0&&typeof t.groupId!="string")throw new Error("groupId must be a string");return t}function X8e(e,t,n){if(typeof n=="object"){let r=Object.create(e),i=n7e(t,n,{routeInfo:{}});return r.store=r.store.child(i),[r,i]}return[e,t]}function Q8e(e,t,n){let r=t.hook,i=i7e(e,t);Array.isArray(n[r])?n[r].push(i):typeof n[r]=="function"?n[r]=[n[r],i]:n[r]=[i]}async function r7e(e,t,n){let{store:r}=e,i=await t.keyGenerator(n),s=n.routeOptions.config?.rateLimit?.groupId;if(s&&(i+=s),t.allowList){if(typeof t.allowList=="function"){if(await t.allowList(n,i))return{isAllowed:!0,key:i}}else if(t.allowList.indexOf(i)!==-1)return{isAllowed:!0,key:i}}let o=typeof t.max=="number"?t.max:await t.max(n,i),a=typeof t.timeWindow=="number"?t.timeWindow:await t.timeWindow(n,i),c=0,u=0,l=0;try{let d=await new Promise((f,p)=>{r.incr(i,(h,m)=>{h?p(h):f(m)},a,o)});c=d.current,u=d.ttl,l=Math.ceil(d.ttl/1e3)}catch(d){if(!t.skipOnError)throw d}return{isAllowed:!1,key:i,max:o,timeWindow:a,remaining:Math.max(0,o-c),ttl:u,ttlInSeconds:l,isExceeded:c>o,isBanned:t.ban!==-1&&c-o>t.ban}}function i7e(e,t){let{rateLimitRan:n}=e;return async(r,i)=>{if(r[n])return;r[n]=!0;let s=await r7e(e,t,r);if(s.isAllowed)return;let{key:o,max:a,remaining:c,ttl:u,ttlInSeconds:l,isExceeded:d,isBanned:f}=s;if(!d){t.addHeadersOnExceeding[t.labels.rateLimit]&&i.header(t.labels.rateLimit,a),t.addHeadersOnExceeding[t.labels.rateRemaining]&&i.header(t.labels.rateRemaining,c),t.addHeadersOnExceeding[t.labels.rateReset]&&i.header(t.labels.rateReset,l),t.onExceeding(r,o);return}t.onExceeded(r,o),t.addHeaders[t.labels.rateLimit]&&i.header(t.labels.rateLimit,a),t.addHeaders[t.labels.rateRemaining]&&i.header(t.labels.rateRemaining,0),t.addHeaders[t.labels.rateReset]&&i.header(t.labels.rateReset,l),t.addHeaders[t.labels.retryAfter]&&i.header(t.labels.retryAfter,l);let p={statusCode:429,ban:!1,max:a,ttl:u,after:Whn(l*1e3,!0)};throw f&&(p.statusCode=403,p.ban=!0,t.onBanReach(r,o)),t.errorResponseBuilder(r,p)}}FV.exports=Vhn($oe,{fastify:"5.x",name:"@fastify/rate-limit"});FV.exports.default=$oe;FV.exports.fastifyRateLimit=$oe});var Jm=w((WWr,c7e)=>{"use strict";var o7e=["nodebuffer","arraybuffer","fragments"],a7e=typeof Blob<"u";a7e&&o7e.push("blob");c7e.exports={BINARY_TYPES:o7e,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:a7e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var JC=w((KWr,jV)=>{"use strict";var{EMPTY_BUFFER:emn}=Jm(),eae=Buffer[Symbol.species];function tmn(e,t){if(e.length===0)return emn;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let i=0;i{"use strict";var d7e=Symbol("kDone"),nae=Symbol("kRun"),rae=class{constructor(t){this[d7e]=()=>{this.pending--,this[nae]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[nae]()}[nae](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[d7e])}}};f7e.exports=rae});var gk=w((ZWr,y7e)=>{"use strict";var XC=K("zlib"),h7e=JC(),rmn=p7e(),{kStatusCode:m7e}=Jm(),imn=Buffer[Symbol.species],smn=Buffer.from([0,0,255,255]),qV=Symbol("permessage-deflate"),Xm=Symbol("total-length"),hk=Symbol("callback"),HS=Symbol("buffers"),mk=Symbol("error"),HV,iae=class{constructor(t){if(this._options=t||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!HV){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;HV=new rmn(n)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[hk];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let n=this._options,r=t.find(i=>!(n.serverNoContextTakeover===!1&&i.server_no_context_takeover||i.server_max_window_bits&&(n.serverMaxWindowBits===!1||typeof n.serverMaxWindowBits=="number"&&n.serverMaxWindowBits>i.server_max_window_bits)||typeof n.clientMaxWindowBits=="number"&&!i.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return n.serverNoContextTakeover&&(r.server_no_context_takeover=!0),n.clientNoContextTakeover&&(r.client_no_context_takeover=!0),typeof n.serverMaxWindowBits=="number"&&(r.server_max_window_bits=n.serverMaxWindowBits),typeof n.clientMaxWindowBits=="number"?r.client_max_window_bits=n.clientMaxWindowBits:(r.client_max_window_bits===!0||n.clientMaxWindowBits===!1)&&delete r.client_max_window_bits,r}acceptAsClient(t){let n=t[0];if(this._options.clientNoContextTakeover===!1&&n.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!n.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(n.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&n.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return n}normalizeParams(t){return t.forEach(n=>{Object.keys(n).forEach(r=>{let i=n[r];if(i.length>1)throw new Error(`Parameter "${r}" must have only a single value`);if(i=i[0],r==="client_max_window_bits"){if(i!==!0){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else if(r==="server_max_window_bits"){let s=+i;if(!Number.isInteger(s)||s<8||s>15)throw new TypeError(`Invalid value for parameter "${r}": ${i}`);i=s}else if(r==="client_no_context_takeover"||r==="server_no_context_takeover"){if(i!==!0)throw new TypeError(`Invalid value for parameter "${r}": ${i}`)}else throw new Error(`Unknown parameter "${r}"`);n[r]=i})}),t}decompress(t,n,r){HV.add(i=>{this._decompress(t,n,(s,o)=>{i(),r(s,o)})})}compress(t,n,r){HV.add(i=>{this._compress(t,n,(s,o)=>{i(),r(s,o)})})}_decompress(t,n,r){let i=this._isServer?"client":"server";if(!this._inflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?XC.Z_DEFAULT_WINDOWBITS:this.params[s];this._inflate=XC.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[qV]=this,this._inflate[Xm]=0,this._inflate[HS]=[],this._inflate.on("error",amn),this._inflate.on("data",g7e)}this._inflate[hk]=r,this._inflate.write(t),n&&this._inflate.write(smn),this._inflate.flush(()=>{let s=this._inflate[mk];if(s){this._inflate.close(),this._inflate=null,r(s);return}let o=h7e.concat(this._inflate[HS],this._inflate[Xm]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Xm]=0,this._inflate[HS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._inflate.reset()),r(null,o)})}_compress(t,n,r){let i=this._isServer?"server":"client";if(!this._deflate){let s=`${i}_max_window_bits`,o=typeof this.params[s]!="number"?XC.Z_DEFAULT_WINDOWBITS:this.params[s];this._deflate=XC.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[Xm]=0,this._deflate[HS]=[],this._deflate.on("data",omn)}this._deflate[hk]=r,this._deflate.write(t),this._deflate.flush(XC.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let s=h7e.concat(this._deflate[HS],this._deflate[Xm]);n&&(s=new imn(s.buffer,s.byteOffset,s.length-4)),this._deflate[hk]=null,this._deflate[Xm]=0,this._deflate[HS]=[],n&&this.params[`${i}_no_context_takeover`]&&this._deflate.reset(),r(null,s)})}};y7e.exports=iae;function omn(e){this[HS].push(e),this[Xm]+=e.length}function g7e(e){if(this[Xm]+=e.length,this[qV]._maxPayload<1||this[Xm]<=this[qV]._maxPayload){this[HS].push(e);return}this[mk]=new RangeError("Max payload size exceeded"),this[mk].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[mk][m7e]=1009,this.removeListener("data",g7e),this.reset()}function amn(e){if(this[qV]._inflate=null,this[mk]){this[hk](this[mk]);return}e[m7e]=1007,this[hk](e)}});var yk=w((JWr,BV)=>{"use strict";var{isUtf8:S7e}=K("buffer"),{hasBlob:cmn}=Jm(),umn=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function lmn(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function sae(e){let t=e.length,n=0;for(;n=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||e[n]===224&&(e[n+1]&224)===128||e[n]===237&&(e[n+1]&224)===160)return!1;n+=3}else if((e[n]&248)===240){if(n+3>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||(e[n+3]&192)!==128||e[n]===240&&(e[n+1]&240)===128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function dmn(e){return cmn&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}BV.exports={isBlob:dmn,isValidStatusCode:lmn,isValidUTF8:sae,tokenChars:umn};if(S7e)BV.exports.isValidUTF8=function(e){return e.length<24?sae(e):S7e(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=K("utf-8-validate");BV.exports.isValidUTF8=function(t){return t.length<32?sae(t):e(t)}}catch{}});var lae=w((XWr,A7e)=>{"use strict";var{Writable:fmn}=K("stream"),b7e=gk(),{BINARY_TYPES:pmn,EMPTY_BUFFER:E7e,kStatusCode:hmn,kWebSocket:mmn}=Jm(),{concat:oae,toArrayBuffer:gmn,unmask:ymn}=JC(),{isValidStatusCode:Smn,isValidUTF8:_7e}=yk(),zV=Buffer[Symbol.species],_d=0,T7e=1,v7e=2,R7e=3,aae=4,cae=5,GV=6,uae=class extends fmn{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||pmn[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[mmn]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=_d}_write(t,n,r){if(this._opcode===8&&this._state==_d)return r();this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(r)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t=r.length?n.set(this._buffers.shift(),i):(n.set(new Uint8Array(r.buffer,r.byteOffset,t),i),this._buffers[0]=new zV(r.buffer,r.byteOffset+t,r.length-t)),t-=r.length}while(t>0);return n}startLoop(t){this._loop=!0;do switch(this._state){case _d:this.getInfo(t);break;case T7e:this.getPayloadLength16(t);break;case v7e:this.getPayloadLength64(t);break;case R7e:this.getMask();break;case aae:this.getData(t);break;case cae:case GV:this._loop=!1;return}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2){this._loop=!1;return}let n=this.consume(2);if((n[0]&48)!==0){let i=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");t(i);return}let r=(n[0]&64)===64;if(r&&!this._extensions[b7e.extensionName]){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(this._fin=(n[0]&128)===128,this._opcode=n[0]&15,this._payloadLength=n[1]&127,this._opcode===0){if(r){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(!this._fragmented){let i=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}this._compressed=r}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let i=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");t(i);return}if(r){let i=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(i);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let i=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");t(i);return}}else{let i=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(i);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(n[1]&128)===128,this._isServer){if(!this._masked){let i=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");t(i);return}}else if(this._masked){let i=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");t(i);return}this._payloadLength===126?this._state=T7e:this._payloadLength===127?this._state=v7e:this.haveLength(t)}getPayloadLength16(t){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t)}getPayloadLength64(t){if(this._bufferedBytes<8){this._loop=!1;return}let n=this.consume(8),r=n.readUInt32BE(0);if(r>Math.pow(2,21)-1){let i=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");t(i);return}this._payloadLength=r*Math.pow(2,32)+n.readUInt32BE(4),this.haveLength(t)}haveLength(t){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let n=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(n);return}this._masked?this._state=R7e:this._state=aae}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=aae}getData(t){let n=E7e;if(this._payloadLength){if(this._bufferedBytes7){this.controlMessage(n,t);return}if(this._compressed){this._state=cae,this.decompress(n,t);return}n.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(n)),this.dataMessage(t)}decompress(t,n){this._extensions[b7e.extensionName].decompress(t,this._fin,(i,s)=>{if(i)return n(i);if(s.length){if(this._messageLength+=s.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");n(o);return}this._fragments.push(s)}this.dataMessage(n),this._state===_d&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=_d;return}let n=this._messageLength,r=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let i;this._binaryType==="nodebuffer"?i=oae(r,n):this._binaryType==="arraybuffer"?i=gmn(oae(r,n)):this._binaryType==="blob"?i=new Blob(r):i=r,this._allowSynchronousEvents?(this.emit("message",i,!0),this._state=_d):(this._state=GV,setImmediate(()=>{this.emit("message",i,!0),this._state=_d,this.startLoop(t)}))}else{let i=oae(r,n);if(!this._skipUTF8Validation&&!_7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(s);return}this._state===cae||this._allowSynchronousEvents?(this.emit("message",i,!1),this._state=_d):(this._state=GV,setImmediate(()=>{this.emit("message",i,!1),this._state=_d,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,E7e),this.end();else{let r=t.readUInt16BE(0);if(!Smn(r)){let s=this.createError(RangeError,`invalid status code ${r}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(s);return}let i=new zV(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!_7e(i)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");n(s);return}this._loop=!1,this.emit("conclude",r,i),this.end()}this._state=_d;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=_d):(this._state=GV,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=_d,this.startLoop(n)}))}createError(t,n,r,i,s){this._loop=!1,this._errored=!0;let o=new t(r?`Invalid WebSocket frame: ${n}`:n);return Error.captureStackTrace(o,this.createError),o.code=s,o[hmn]=i,o}};A7e.exports=uae});var pae=w(($Wr,I7e)=>{"use strict";var{Duplex:QWr}=K("stream"),{randomFillSync:bmn}=K("crypto"),w7e=gk(),{EMPTY_BUFFER:Emn,kWebSocket:_mn,NOOP:Tmn}=Jm(),{isBlob:Sk,isValidStatusCode:vmn}=yk(),{mask:k7e,toBuffer:V_}=JC(),Td=Symbol("kByteLength"),Rmn=Buffer.alloc(4),VV=8*1024,W_,bk=VV,xf=0,Amn=1,wmn=2,dae=class e{constructor(t,n,r){this._extensions=n||{},r&&(this._generateMask=r,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=xf,this.onerror=Tmn,this[_mn]=void 0}static frame(t,n){let r,i=!1,s=2,o=!1;n.mask&&(r=n.maskBuffer||Rmn,n.generateMask?n.generateMask(r):(bk===VV&&(W_===void 0&&(W_=Buffer.alloc(VV)),bmn(W_,0,VV),bk=0),r[0]=W_[bk++],r[1]=W_[bk++],r[2]=W_[bk++],r[3]=W_[bk++]),o=(r[0]|r[1]|r[2]|r[3])===0,s=6);let a;typeof t=="string"?(!n.mask||o)&&n[Td]!==void 0?a=n[Td]:(t=Buffer.from(t),a=t.length):(a=t.length,i=n.mask&&n.readOnly&&!o);let c=a;a>=65536?(s+=8,c=127):a>125&&(s+=2,c=126);let u=Buffer.allocUnsafe(i?a+s:s);return u[0]=n.fin?n.opcode|128:n.opcode,n.rsv1&&(u[0]|=64),u[1]=c,c===126?u.writeUInt16BE(a,2):c===127&&(u[2]=u[3]=0,u.writeUIntBE(a,4,6)),n.mask?(u[1]|=128,u[s-4]=r[0],u[s-3]=r[1],u[s-2]=r[2],u[s-1]=r[3],o?[u,t]:i?(k7e(t,r,u,s,a),[u]):(k7e(t,r,t,0,a),[u,t])):[u,t]}close(t,n,r,i){let s;if(t===void 0)s=Emn;else{if(typeof t!="number"||!vmn(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)s=Buffer.allocUnsafe(2),s.writeUInt16BE(t,0);else{let a=Buffer.byteLength(n);if(a>123)throw new RangeError("The message must not be greater than 123 bytes");s=Buffer.allocUnsafe(2+a),s.writeUInt16BE(t,0),typeof n=="string"?s.write(n,2):s.set(n,2)}}let o={[Td]:s.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==xf?this.enqueue([this.dispatch,s,!1,o,i]):this.sendFrame(e.frame(s,o),i)}ping(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):Sk(t)?(i=t.size,s=!1):(t=V_(t),i=t.length,s=V_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[Td]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:s,rsv1:!1};Sk(t)?this._state!==xf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==xf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}pong(t,n,r){let i,s;if(typeof t=="string"?(i=Buffer.byteLength(t),s=!1):Sk(t)?(i=t.size,s=!1):(t=V_(t),i=t.length,s=V_.readOnly),i>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[Td]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:s,rsv1:!1};Sk(t)?this._state!==xf?this.enqueue([this.getBlobData,t,!1,o,r]):this.getBlobData(t,!1,o,r):this._state!==xf?this.enqueue([this.dispatch,t,!1,o,r]):this.sendFrame(e.frame(t,o),r)}send(t,n,r){let i=this._extensions[w7e.extensionName],s=n.binary?2:1,o=n.compress,a,c;typeof t=="string"?(a=Buffer.byteLength(t),c=!1):Sk(t)?(a=t.size,c=!1):(t=V_(t),a=t.length,c=V_.readOnly),this._firstFragment?(this._firstFragment=!1,o&&i&&i.params[i._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=a>=i._threshold),this._compress=o):(o=!1,s=0),n.fin&&(this._firstFragment=!0);let u={[Td]:a,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:s,readOnly:c,rsv1:o};Sk(t)?this._state!==xf?this.enqueue([this.getBlobData,t,this._compress,u,r]):this.getBlobData(t,this._compress,u,r):this._state!==xf?this.enqueue([this.dispatch,t,this._compress,u,r]):this.dispatch(t,this._compress,u,r)}getBlobData(t,n,r,i){this._bufferedBytes+=r[Td],this._state=wmn,t.arrayBuffer().then(s=>{if(this._socket.destroyed){let a=new Error("The socket was closed while the blob was being read");process.nextTick(fae,this,a,i);return}this._bufferedBytes-=r[Td];let o=V_(s);n?this.dispatch(o,n,r,i):(this._state=xf,this.sendFrame(e.frame(o,r),i),this.dequeue())}).catch(s=>{process.nextTick(kmn,this,s,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let s=this._extensions[w7e.extensionName];this._bufferedBytes+=r[Td],this._state=Amn,s.compress(t,r.fin,(o,a)=>{if(this._socket.destroyed){let c=new Error("The socket was closed while data was being compressed");fae(this,c,i);return}this._bufferedBytes-=r[Td],this._state=xf,r.readOnly=!1,this.sendFrame(e.frame(a,r),i),this.dequeue()})}dequeue(){for(;this._state===xf&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][Td],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][Td],this._queue.push(t)}sendFrame(t,n){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],n),this._socket.uncork()):this._socket.write(t[0],n)}};I7e.exports=dae;function fae(e,t,n){typeof n=="function"&&n(t);for(let r=0;r{"use strict";var{kForOnEventAttribute:QC,kListener:hae}=Jm(),x7e=Symbol("kCode"),O7e=Symbol("kData"),P7e=Symbol("kError"),N7e=Symbol("kMessage"),C7e=Symbol("kReason"),Ek=Symbol("kTarget"),M7e=Symbol("kType"),D7e=Symbol("kWasClean"),Qm=class{constructor(t){this[Ek]=null,this[M7e]=t}get target(){return this[Ek]}get type(){return this[M7e]}};Object.defineProperty(Qm.prototype,"target",{enumerable:!0});Object.defineProperty(Qm.prototype,"type",{enumerable:!0});var K_=class extends Qm{constructor(t,n={}){super(t),this[x7e]=n.code===void 0?0:n.code,this[C7e]=n.reason===void 0?"":n.reason,this[D7e]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[x7e]}get reason(){return this[C7e]}get wasClean(){return this[D7e]}};Object.defineProperty(K_.prototype,"code",{enumerable:!0});Object.defineProperty(K_.prototype,"reason",{enumerable:!0});Object.defineProperty(K_.prototype,"wasClean",{enumerable:!0});var _k=class extends Qm{constructor(t,n={}){super(t),this[P7e]=n.error===void 0?null:n.error,this[N7e]=n.message===void 0?"":n.message}get error(){return this[P7e]}get message(){return this[N7e]}};Object.defineProperty(_k.prototype,"error",{enumerable:!0});Object.defineProperty(_k.prototype,"message",{enumerable:!0});var $C=class extends Qm{constructor(t,n={}){super(t),this[O7e]=n.data===void 0?null:n.data}get data(){return this[O7e]}};Object.defineProperty($C.prototype,"data",{enumerable:!0});var Imn={addEventListener(e,t,n={}){for(let i of this.listeners(e))if(!n[QC]&&i[hae]===t&&!i[QC])return;let r;if(e==="message")r=function(s,o){let a=new $C("message",{data:o?s:s.toString()});a[Ek]=this,WV(t,this,a)};else if(e==="close")r=function(s,o){let a=new K_("close",{code:s,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});a[Ek]=this,WV(t,this,a)};else if(e==="error")r=function(s){let o=new _k("error",{error:s,message:s.message});o[Ek]=this,WV(t,this,o)};else if(e==="open")r=function(){let s=new Qm("open");s[Ek]=this,WV(t,this,s)};else return;r[QC]=!!n[QC],r[hae]=t,n.once?this.once(e,r):this.on(e,r)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[hae]===t&&!n[QC]){this.removeListener(e,n);break}}};L7e.exports={CloseEvent:K_,ErrorEvent:_k,Event:Qm,EventTarget:Imn,MessageEvent:$C};function WV(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var KV=w((t4r,F7e)=>{"use strict";var{tokenChars:eM}=yk();function bh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function xmn(e){let t=Object.create(null),n=Object.create(null),r=!1,i=!1,s=!1,o,a,c=-1,u=-1,l=-1,d=0;for(;d{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(r=>[t].concat(Object.keys(r).map(i=>{let s=r[i];return Array.isArray(s)||(s=[s]),s.map(o=>o===!0?i:`${i}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}F7e.exports={format:Omn,parse:xmn}});var XV=w((i4r,J7e)=>{"use strict";var Pmn=K("events"),Nmn=K("https"),Cmn=K("http"),q7e=K("net"),Mmn=K("tls"),{randomBytes:Dmn,createHash:Lmn}=K("crypto"),{Duplex:n4r,Readable:r4r}=K("stream"),{URL:mae}=K("url"),qS=gk(),Umn=lae(),Fmn=pae(),{isBlob:jmn}=yk(),{BINARY_TYPES:j7e,CLOSE_TIMEOUT:Hmn,EMPTY_BUFFER:YV,GUID:qmn,kForOnEventAttribute:gae,kListener:Bmn,kStatusCode:zmn,kWebSocket:Wo,NOOP:B7e}=Jm(),{EventTarget:{addEventListener:Gmn,removeEventListener:Vmn}}=U7e(),{format:Wmn,parse:Kmn}=KV(),{toBuffer:Ymn}=JC(),z7e=Symbol("kAborted"),yae=[8,13],$m=["CONNECTING","OPEN","CLOSING","CLOSED"],Zmn=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,Fi=class e extends Pmn{constructor(t,n,r){super(),this._binaryType=j7e[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=YV,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,n===void 0?n=[]:Array.isArray(n)||(typeof n=="object"&&n!==null?(r=n,n=[]):n=[n]),G7e(this,t,n,r)):(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){j7e.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,r){let i=new Umn({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),s=new Fmn(t,this._extensions,r.generateMask);this._receiver=i,this._sender=s,this._socket=t,i[Wo]=this,s[Wo]=this,t[Wo]=this,i.on("conclude",Qmn),i.on("drain",$mn),i.on("error",egn),i.on("message",tgn),i.on("ping",ngn),i.on("pong",rgn),s.onerror=ign,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",K7e),t.on("data",JV),t.on("end",Y7e),t.on("error",Z7e),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[qS.extensionName]&&this._extensions[qS.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){bl(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,r=>{r||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),W7e(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(r=t,t=n=void 0):typeof n=="function"&&(r=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Sae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||YV,n,r)}pong(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(r=t,t=n=void 0):typeof n=="function"&&(r=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Sae(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||YV,n,r)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,r){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof n=="function"&&(r=n,n={}),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Sae(this,t,r);return}let i={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[qS.extensionName]||(i.compress=!1),this._sender.send(t||YV,i,r)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){bl(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(Fi,"CONNECTING",{enumerable:!0,value:$m.indexOf("CONNECTING")});Object.defineProperty(Fi.prototype,"CONNECTING",{enumerable:!0,value:$m.indexOf("CONNECTING")});Object.defineProperty(Fi,"OPEN",{enumerable:!0,value:$m.indexOf("OPEN")});Object.defineProperty(Fi.prototype,"OPEN",{enumerable:!0,value:$m.indexOf("OPEN")});Object.defineProperty(Fi,"CLOSING",{enumerable:!0,value:$m.indexOf("CLOSING")});Object.defineProperty(Fi.prototype,"CLOSING",{enumerable:!0,value:$m.indexOf("CLOSING")});Object.defineProperty(Fi,"CLOSED",{enumerable:!0,value:$m.indexOf("CLOSED")});Object.defineProperty(Fi.prototype,"CLOSED",{enumerable:!0,value:$m.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(Fi.prototype,e,{enumerable:!0})});["open","error","close","message"].forEach(e=>{Object.defineProperty(Fi.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[gae])return t[Bmn];return null},set(t){for(let n of this.listeners(e))if(n[gae]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[gae]:!0})}})});Fi.prototype.addEventListener=Gmn;Fi.prototype.removeEventListener=Vmn;J7e.exports=Fi;function G7e(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Hmn,protocolVersion:yae[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=i.autoPong,e._closeTimeout=i.closeTimeout,!yae.includes(i.protocolVersion))throw new RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${yae.join(", ")})`);let s;if(t instanceof mae)s=t;else try{s=new mae(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}s.protocol==="http:"?s.protocol="ws:":s.protocol==="https:"&&(s.protocol="wss:"),e._url=s.href;let o=s.protocol==="wss:",a=s.protocol==="ws+unix:",c;if(s.protocol!=="ws:"&&!o&&!a?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:a&&!s.pathname?c="The URL's pathname is empty":s.hash&&(c="The URL contains a fragment identifier"),c){let m=new SyntaxError(c);if(e._redirects===0)throw m;ZV(e,m);return}let u=o?443:80,l=Dmn(16).toString("base64"),d=o?Nmn.request:Cmn.request,f=new Set,p;if(i.createConnection=i.createConnection||(o?Xmn:Jmn),i.defaultPort=i.defaultPort||u,i.port=s.port||u,i.host=s.hostname.startsWith("[")?s.hostname.slice(1,-1):s.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":l,Connection:"Upgrade",Upgrade:"websocket"},i.path=s.pathname+s.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(p=new qS({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers["Sec-WebSocket-Extensions"]=Wmn({[qS.extensionName]:p.offer()})),n.length){for(let m of n){if(typeof m!="string"||!Zmn.test(m)||f.has(m))throw new SyntaxError("An invalid or duplicated subprotocol was specified");f.add(m)}i.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(i.origin&&(i.protocolVersion<13?i.headers["Sec-WebSocket-Origin"]=i.origin:i.headers.Origin=i.origin),(s.username||s.password)&&(i.auth=`${s.username}:${s.password}`),a){let m=i.path.split(":");i.socketPath=m[0],i.path=m[1]}let h;if(i.followRedirects){if(e._redirects===0){e._originalIpc=a,e._originalSecure=o,e._originalHostOrSocketPath=a?i.socketPath:s.host;let m=r&&r.headers;if(r={...r,headers:{}},m)for(let[g,y]of Object.entries(m))r.headers[g.toLowerCase()]=y}else if(e.listenerCount("redirect")===0){let m=a?e._originalIpc?i.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:s.host===e._originalHostOrSocketPath;(!m||e._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,m||delete i.headers.host,i.auth=void 0)}i.auth&&!r.headers.authorization&&(r.headers.authorization="Basic "+Buffer.from(i.auth).toString("base64")),h=e._req=d(i),e._redirects&&e.emit("redirect",e.url,h)}else h=e._req=d(i);i.timeout&&h.on("timeout",()=>{bl(e,h,"Opening handshake has timed out")}),h.on("error",m=>{h===null||h[z7e]||(h=e._req=null,ZV(e,m))}),h.on("response",m=>{let g=m.headers.location,y=m.statusCode;if(g&&i.followRedirects&&y>=300&&y<400){if(++e._redirects>i.maxRedirects){bl(e,h,"Maximum redirects exceeded");return}h.abort();let b;try{b=new mae(g,t)}catch{let E=new SyntaxError(`Invalid URL: ${g}`);ZV(e,E);return}G7e(e,b,n,r)}else e.emit("unexpected-response",h,m)||bl(e,h,`Unexpected server response: ${m.statusCode}`)}),h.on("upgrade",(m,g,y)=>{if(e.emit("upgrade",m),e.readyState!==Fi.CONNECTING)return;h=e._req=null;let b=m.headers.upgrade;if(b===void 0||b.toLowerCase()!=="websocket"){bl(e,g,"Invalid Upgrade header");return}let S=Lmn("sha1").update(l+qmn).digest("base64");if(m.headers["sec-websocket-accept"]!==S){bl(e,g,"Invalid Sec-WebSocket-Accept header");return}let E=m.headers["sec-websocket-protocol"],_;if(E!==void 0?f.size?f.has(E)||(_="Server sent an invalid subprotocol"):_="Server sent a subprotocol but none was requested":f.size&&(_="Server sent no subprotocol"),_){bl(e,g,_);return}E&&(e._protocol=E);let T=m.headers["sec-websocket-extensions"];if(T!==void 0){if(!p){bl(e,g,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let R;try{R=Kmn(T)}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}let A=Object.keys(R);if(A.length!==1||A[0]!==qS.extensionName){bl(e,g,"Server indicated an extension that was not requested");return}try{p.accept(R[qS.extensionName])}catch{bl(e,g,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[qS.extensionName]=p}e.setSocket(g,y,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(h,e):h.end()}function ZV(e,t){e._readyState=Fi.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function Jmn(e){return e.path=e.socketPath,q7e.connect(e)}function Xmn(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=q7e.isIP(e.host)?"":e.host),Mmn.connect(e)}function bl(e,t,n){e._readyState=Fi.CLOSING;let r=new Error(n);Error.captureStackTrace(r,bl),t.setHeader?(t[z7e]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(ZV,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function Sae(e,t,n){if(t){let r=jmn(t)?t.size:Ymn(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(n){let r=new Error(`WebSocket is not open: readyState ${e.readyState} (${$m[e.readyState]})`);process.nextTick(n,r)}}function Qmn(e,t){let n=this[Wo];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Wo]!==void 0&&(n._socket.removeListener("data",JV),process.nextTick(V7e,n._socket),e===1005?n.close():n.close(e,t))}function $mn(){let e=this[Wo];e.isPaused||e._socket.resume()}function egn(e){let t=this[Wo];t._socket[Wo]!==void 0&&(t._socket.removeListener("data",JV),process.nextTick(V7e,t._socket),t.close(e[zmn])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function H7e(){this[Wo].emitClose()}function tgn(e,t){this[Wo].emit("message",e,t)}function ngn(e){let t=this[Wo];t._autoPong&&t.pong(e,!this._isServer,B7e),t.emit("ping",e)}function rgn(e){this[Wo].emit("pong",e)}function V7e(e){e.resume()}function ign(e){let t=this[Wo];t.readyState!==Fi.CLOSED&&(t.readyState===Fi.OPEN&&(t._readyState=Fi.CLOSING,W7e(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function W7e(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function K7e(){let e=this[Wo];if(this.removeListener("close",K7e),this.removeListener("data",JV),this.removeListener("end",Y7e),e._readyState=Fi.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[Wo]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",H7e),e._receiver.on("finish",H7e))}function JV(e){this[Wo]._receiver.write(e)||this.pause()}function Y7e(){let e=this[Wo];e._readyState=Fi.CLOSING,e._receiver.end(),this.end()}function Z7e(){let e=this[Wo];this.removeListener("error",Z7e),this.on("error",B7e),e&&(e._readyState=Fi.CLOSING,this.destroy())}});var eJe=w((o4r,$7e)=>{"use strict";var s4r=XV(),{Duplex:sgn}=K("stream");function X7e(e){e.emit("close")}function ogn(){!this.destroyed&&this._writableState.finished&&this.destroy()}function Q7e(e){this.removeListener("error",Q7e),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function agn(e,t){let n=!0,r=new sgn({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(s,o){let a=!o&&r._readableState.objectMode?s.toString():s;r.push(a)||e.pause()}),e.once("error",function(s){r.destroyed||(n=!1,r.destroy(s))}),e.once("close",function(){r.destroyed||r.push(null)}),r._destroy=function(i,s){if(e.readyState===e.CLOSED){s(i),process.nextTick(X7e,r);return}let o=!1;e.once("error",function(c){o=!0,s(c)}),e.once("close",function(){o||s(i),process.nextTick(X7e,r)}),n&&e.terminate()},r._final=function(i){if(e.readyState===e.CONNECTING){e.once("open",function(){r._final(i)});return}e._socket!==null&&(e._socket._writableState.finished?(i(),r._readableState.endEmitted&&r.destroy()):(e._socket.once("finish",function(){i()}),e.close()))},r._read=function(){e.isPaused&&e.resume()},r._write=function(i,s,o){if(e.readyState===e.CONNECTING){e.once("open",function(){r._write(i,s,o)});return}e.send(i,o)},r.on("end",ogn),r.on("error",Q7e),r}$7e.exports=agn});var bae=w((a4r,tJe)=>{"use strict";var{tokenChars:cgn}=yk();function ugn(e){let t=new Set,n=-1,r=-1,i=0;for(i;i{"use strict";var lgn=K("events"),QV=K("http"),{Duplex:c4r}=K("stream"),{createHash:dgn}=K("crypto"),nJe=KV(),Y_=gk(),fgn=bae(),pgn=XV(),{CLOSE_TIMEOUT:hgn,GUID:mgn,kWebSocket:ggn}=Jm(),ygn=/^[+/0-9A-Za-z]{22}==$/,rJe=0,iJe=1,oJe=2,Eae=class extends lgn{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:hgn,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:pgn,...t},t.port==null&&!t.server&&!t.noServer||t.port!=null&&(t.server||t.noServer)||t.server&&t.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(t.port!=null?(this._server=QV.createServer((r,i)=>{let s=QV.STATUS_CODES[426];i.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"}),i.end(s)}),this._server.listen(t.port,t.host,t.backlog,n)):t.server&&(this._server=t.server),this._server){let r=this.emit.bind(this,"connection");this._removeListeners=Sgn(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(i,s,o)=>{this.handleUpgrade(i,s,o,r)}})}t.perMessageDeflate===!0&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=rJe}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(this._state===oJe){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(tM,this);return}if(t&&this.once("close",t),this._state!==iJe)if(this._state=iJe,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(tM,this):process.nextTick(tM,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{tM(this)})}}shouldHandle(t){if(this.options.path){let n=t.url.indexOf("?");if((n!==-1?t.url.slice(0,n):t.url)!==this.options.path)return!1}return!0}handleUpgrade(t,n,r,i){n.on("error",sJe);let s=t.headers["sec-websocket-key"],o=t.headers.upgrade,a=+t.headers["sec-websocket-version"];if(t.method!=="GET"){Z_(this,t,n,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){Z_(this,t,n,400,"Invalid Upgrade header");return}if(s===void 0||!ygn.test(s)){Z_(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(a!==13&&a!==8){Z_(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){nM(n,400);return}let c=t.headers["sec-websocket-protocol"],u=new Set;if(c!==void 0)try{u=fgn.parse(c)}catch{Z_(this,t,n,400,"Invalid Sec-WebSocket-Protocol header");return}let l=t.headers["sec-websocket-extensions"],d={};if(this.options.perMessageDeflate&&l!==void 0){let f=new Y_({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let p=nJe.parse(l);p[Y_.extensionName]&&(f.accept(p[Y_.extensionName]),d[Y_.extensionName]=f)}catch{Z_(this,t,n,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let f={origin:t.headers[`${a===8?"sec-websocket-origin":"origin"}`],secure:!!(t.socket.authorized||t.socket.encrypted),req:t};if(this.options.verifyClient.length===2){this.options.verifyClient(f,(p,h,m,g)=>{if(!p)return nM(n,h||401,m,g);this.completeUpgrade(d,s,u,t,n,r,i)});return}if(!this.options.verifyClient(f))return nM(n,401)}this.completeUpgrade(d,s,u,t,n,r,i)}completeUpgrade(t,n,r,i,s,o,a){if(!s.readable||!s.writable)return s.destroy();if(s[ggn])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>rJe)return nM(s,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${dgn("sha1").update(n+mgn).digest("base64")}`],l=new this.options.WebSocket(null,void 0,this.options);if(r.size){let d=this.options.handleProtocols?this.options.handleProtocols(r,i):r.values().next().value;d&&(u.push(`Sec-WebSocket-Protocol: ${d}`),l._protocol=d)}if(t[Y_.extensionName]){let d=t[Y_.extensionName].params,f=nJe.format({[Y_.extensionName]:[d]});u.push(`Sec-WebSocket-Extensions: ${f}`),l._extensions=t}this.emit("headers",u,i),s.write(u.concat(`\r `).join(`\r -`)),s.removeListener("error",iJe),l.setSocket(s,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(l),l.on("close",()=>{this.clients.delete(l),this._shouldEmitClose&&!this.clients.size&&process.nextTick(eM,this)})),a(l,i)}};oJe.exports=bae;function Sgn(e,t){for(let n of Object.keys(t))e.on(n,t[n]);return function(){for(let r of Object.keys(t))e.removeListener(r,t[r])}}function eM(e){e._state=sJe,e.emit("close")}function iJe(){this.destroy()}function tM(e,t,n,r){n=n||JV.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(n),...r},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${JV.STATUS_CODES[t]}\r +`)),s.removeListener("error",sJe),l.setSocket(s,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(l),l.on("close",()=>{this.clients.delete(l),this._shouldEmitClose&&!this.clients.size&&process.nextTick(tM,this)})),a(l,i)}};aJe.exports=Eae;function Sgn(e,t){for(let n of Object.keys(t))e.on(n,t[n]);return function(){for(let r of Object.keys(t))e.removeListener(r,t[r])}}function tM(e){e._state=oJe,e.emit("close")}function sJe(){this.destroy()}function nM(e,t,n,r){n=n||QV.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(n),...r},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${QV.STATUS_CODES[t]}\r `+Object.keys(r).map(i=>`${i}: ${r[i]}`).join(`\r `)+`\r \r -`+n)}function Z_(e,t,n,r,i,s){if(e.listenerCount("wsClientError")){let o=new Error(i);Error.captureStackTrace(o,Z_),e.emit("wsClientError",o,n,t)}else tM(n,r,i,s)}});var lJe=w((l4r,uJe)=>{"use strict";var bgn=$7e(),Egn=VV(),_gn=gk(),Tgn=uae(),vgn=fae(),Rgn=Sae(),Of=ZV(),cJe=aJe();Of.createWebSocketStream=bgn;Of.extension=Egn;Of.PerMessageDeflate=_gn;Of.Receiver=Tgn;Of.Sender=vgn;Of.Server=cJe;Of.subprotocol=Rgn;Of.WebSocket=Of;Of.WebSocketServer=cJe;uJe.exports=Of});var Eae=w((d4r,dJe)=>{dJe.exports=K("stream")});var yJe=w((f4r,gJe)=>{"use strict";function fJe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function pJe(e){for(var t=1;t0?this.tail.next=r:this.head=r,this.tail=r,++this.length}},{key:"unshift",value:function(n){var r={data:n,next:this.head};this.length===0&&(this.tail=r),this.head=r,++this.length}},{key:"shift",value:function(){if(this.length!==0){var n=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,n}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(n){if(this.length===0)return"";for(var r=this.head,i=""+r.data;r=r.next;)i+=n+r.data;return i}},{key:"concat",value:function(n){if(this.length===0)return XV.alloc(0);for(var r=XV.allocUnsafe(n>>>0),i=this.head,s=0;i;)Ngn(i.data,r,s),s+=i.data.length,i=i.next;return r}},{key:"consume",value:function(n,r){var i;return no.length?o.length:n;if(a===o.length?s+=o:s+=o.slice(0,n),n-=a,n===0){a===o.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(a));break}++i}return this.length-=i,s}},{key:"_getBuffer",value:function(n){var r=XV.allocUnsafe(n),i=this.head,s=1;for(i.data.copy(r),n-=i.data.length;i=i.next;){var o=i.data,a=n>o.length?o.length:n;if(o.copy(r,r.length-n,0,a),n-=a,n===0){a===o.length?(++s,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++s}return this.length-=s,r}},{key:Pgn,value:function(n,r){return _ae(this,pJe(pJe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var vae=w((p4r,bJe)=>{"use strict";function Cgn(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Tae,this,e)):process.nextTick(Tae,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?n._writableState?n._writableState.errorEmitted?process.nextTick(QV,n):(n._writableState.errorEmitted=!0,process.nextTick(SJe,n,s)):process.nextTick(SJe,n,s):t?(process.nextTick(QV,n),t(s)):process.nextTick(QV,n)}),this)}function SJe(e,t){Tae(e,t),QV(e)}function QV(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Mgn(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Tae(e,t){e.emit("error",t)}function Dgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}bJe.exports={destroy:Cgn,undestroy:Mgn,errorOrDestroy:Dgn}});var BS=w((h4r,TJe)=>{"use strict";var _Je={};function vd(e,t,n){n||(n=Error);function r(s,o,a){return typeof t=="string"?t:t(s,o,a)}class i extends n{constructor(o,a,c){super(r(o,a,c))}}i.prototype.name=n.name,i.prototype.code=e,_Je[e]=i}function EJe(e,t){if(Array.isArray(e)){let n=e.length;return e=e.map(r=>String(r)),n>2?`one of ${t} ${e.slice(0,n-1).join(", ")}, or `+e[n-1]:n===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function Lgn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function Ugn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Fgn(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}vd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);vd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&Lgn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(Ugn(e," argument"))i=`The ${e} ${r} ${EJe(t,"type")}`;else{let s=Fgn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${EJe(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);vd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");vd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});vd("ERR_STREAM_PREMATURE_CLOSE","Premature close");vd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});vd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");vd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");vd("ERR_STREAM_WRITE_AFTER_END","write after end");vd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);vd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);vd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");TJe.exports.codes=_Je});var Rae=w((m4r,vJe)=>{"use strict";var jgn=BS().codes.ERR_INVALID_OPT_VALUE;function Hgn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function qgn(e,t,n,r){var i=Hgn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new jgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}vJe.exports={getHighWaterMark:qgn}});var RJe=w((g4r,Aae)=>{typeof Object.create=="function"?Aae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Aae.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}}});var J_=w((y4r,kae)=>{try{if(wae=K("util"),typeof wae.inherits!="function")throw"";kae.exports=wae.inherits}catch{kae.exports=RJe()}var wae});var wJe=w((S4r,AJe)=>{AJe.exports=K("util").deprecate});var Oae=w((b4r,NJe)=>{"use strict";NJe.exports=gs;function IJe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){hyn(t,e)}}var Tk;gs.WritableState=rM;var Bgn={deprecate:wJe()},xJe=Eae(),eW=K("buffer").Buffer,zgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Ggn(e){return eW.from(e)}function Vgn(e){return eW.isBuffer(e)||e instanceof zgn}var xae=vae(),Wgn=Rae(),Kgn=Wgn.getHighWaterMark,zS=BS().codes,Ygn=zS.ERR_INVALID_ARG_TYPE,Zgn=zS.ERR_METHOD_NOT_IMPLEMENTED,Jgn=zS.ERR_MULTIPLE_CALLBACK,Xgn=zS.ERR_STREAM_CANNOT_PIPE,Qgn=zS.ERR_STREAM_DESTROYED,$gn=zS.ERR_STREAM_NULL_VALUES,eyn=zS.ERR_STREAM_WRITE_AFTER_END,tyn=zS.ERR_UNKNOWN_ENCODING,vk=xae.errorOrDestroy;J_()(gs,xJe);function nyn(){}function rM(e,t,n){Tk=Tk||X_(),e=e||{},typeof n!="boolean"&&(n=t instanceof Tk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=Kgn(this,e,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var r=e.decodeStrings===!1;this.decodeStrings=!r,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(i){uyn(t,i)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new IJe(this)}rM.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(rM.prototype,"buffer",{get:Bgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var $V;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?($V=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return $V.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof rM}})):$V=function(t){return t instanceof this};function gs(e){Tk=Tk||X_();var t=this instanceof Tk;if(!t&&!$V.call(gs,this))return new gs(e);this._writableState=new rM(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),xJe.call(this)}gs.prototype.pipe=function(){vk(this,new Xgn)};function ryn(e,t){var n=new eyn;vk(e,n),process.nextTick(t,n)}function iyn(e,t,n,r){var i;return n===null?i=new $gn:typeof n!="string"&&!t.objectMode&&(i=new Ygn("chunk",["string","Buffer"],n)),i?(vk(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&Vgn(e);return s&&!eW.isBuffer(e)&&(e=Ggn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=nyn),r.ending?ryn(this,n):(s||iyn(this,r,e,n))&&(r.pendingcb++,i=oyn(this,r,s,e,t,n)),i};gs.prototype.cork=function(){this._writableState.corked++};gs.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&OJe(this,e))};gs.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new tyn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function syn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=eW.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function oyn(e,t,n,r,i,s){if(!n){var o=syn(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var a=t.objectMode?1:r.length;t.length+=a;var c=t.length{"use strict";var myn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};MJe.exports=Eh;var CJe=Cae(),Nae=Oae();J_()(Eh,CJe);for(Pae=myn(Nae.prototype),tW=0;tW{var rW=K("buffer"),_h=rW.Buffer;function DJe(e,t){for(var n in e)t[n]=e[n]}_h.from&&_h.alloc&&_h.allocUnsafe&&_h.allocUnsafeSlow?LJe.exports=rW:(DJe(rW,Mae),Mae.Buffer=Q_);function Q_(e,t,n){return _h(e,t,n)}Q_.prototype=Object.create(_h.prototype);DJe(_h,Q_);Q_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _h(e,t,n)};Q_.alloc=function(e,t,n){if(typeof e!="number")throw new TypeError("Argument must be a number");var r=_h(e);return t!==void 0?typeof n=="string"?r.fill(t,n):r.fill(t):r.fill(0),r};Q_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _h(e)};Q_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return rW.SlowBuffer(e)}});var Uae=w(jJe=>{"use strict";var Lae=UJe().Buffer,FJe=Lae.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Syn(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function byn(e){var t=Syn(e);if(typeof t!="string"&&(Lae.isEncoding===FJe||!FJe(e)))throw new Error("Unknown encoding: "+e);return t||e}jJe.StringDecoder=iM;function iM(e){this.encoding=byn(e);var t;switch(this.encoding){case"utf16le":this.text=Ayn,this.end=wyn,t=4;break;case"utf8":this.fillLast=Tyn,t=4;break;case"base64":this.text=kyn,this.end=Iyn,t=3;break;default:this.write=xyn,this.end=Oyn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Lae.allocUnsafe(t)}iM.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function Eyn(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function _yn(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function Tyn(e){var t=this.lastTotal-this.lastNeed,n=_yn(this,e,t);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function vyn(e,t){var n=Eyn(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function Ryn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Ayn(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function wyn(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function kyn(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function Iyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function xyn(e){return e.toString(this.encoding)}function Oyn(e){return e&&e.length?this.write(e):""}});var iW=w((T4r,BJe)=>{"use strict";var HJe=BS().codes.ERR_STREAM_PREMATURE_CLOSE;function Pyn(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i{"use strict";var sW;function GS(e,t,n){return t=Myn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Myn(e){var t=Dyn(e,"string");return typeof t=="symbol"?t:String(t)}function Dyn(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Lyn=iW(),VS=Symbol("lastResolve"),$_=Symbol("lastReject"),sM=Symbol("error"),oW=Symbol("ended"),eT=Symbol("lastPromise"),Fae=Symbol("handlePromise"),tT=Symbol("stream");function WS(e,t){return{value:e,done:t}}function Uyn(e){var t=e[VS];if(t!==null){var n=e[tT].read();n!==null&&(e[eT]=null,e[VS]=null,e[$_]=null,t(WS(n,!1)))}}function Fyn(e){process.nextTick(Uyn,e)}function jyn(e,t){return function(n,r){e.then(function(){if(t[oW]){n(WS(void 0,!0));return}t[Fae](n,r)},r)}}var Hyn=Object.getPrototypeOf(function(){}),qyn=Object.setPrototypeOf((sW={get stream(){return this[tT]},next:function(){var t=this,n=this[sM];if(n!==null)return Promise.reject(n);if(this[oW])return Promise.resolve(WS(void 0,!0));if(this[tT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[sM]?a(t[sM]):o(WS(void 0,!0))})});var r=this[eT],i;if(r)i=new Promise(jyn(r,this));else{var s=this[tT].read();if(s!==null)return Promise.resolve(WS(s,!1));i=new Promise(this[Fae])}return this[eT]=i,i}},GS(sW,Symbol.asyncIterator,function(){return this}),GS(sW,"return",function(){var t=this;return new Promise(function(n,r){t[tT].destroy(null,function(i){if(i){r(i);return}n(WS(void 0,!0))})})}),sW),Hyn),Byn=function(t){var n,r=Object.create(qyn,(n={},GS(n,tT,{value:t,writable:!0}),GS(n,VS,{value:null,writable:!0}),GS(n,$_,{value:null,writable:!0}),GS(n,sM,{value:null,writable:!0}),GS(n,oW,{value:t._readableState.endEmitted,writable:!0}),GS(n,Fae,{value:function(s,o){var a=r[tT].read();a?(r[eT]=null,r[VS]=null,r[$_]=null,s(WS(a,!1))):(r[VS]=s,r[$_]=o)},writable:!0}),n));return r[eT]=null,Lyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[$_];s!==null&&(r[eT]=null,r[VS]=null,r[$_]=null,s(i)),r[sM]=i;return}var o=r[VS];o!==null&&(r[eT]=null,r[VS]=null,r[$_]=null,o(WS(void 0,!0))),r[oW]=!0}),t.on("readable",Fyn.bind(null,r)),r};zJe.exports=Byn});var YJe=w((R4r,KJe)=>{"use strict";function VJe(e,t,n,r,i,s,o){try{var a=e[s](o),c=a.value}catch(u){n(u);return}a.done?t(c):Promise.resolve(c).then(r,i)}function zyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){VJe(s,r,i,o,a,"next",c)}function a(c){VJe(s,r,i,o,a,"throw",c)}o(void 0)})}}function WJe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Gyn(e){for(var t=1;t{"use strict";iXe.exports=nr;var Rk;nr.ReadableState=QJe;var A4r=K("events").EventEmitter,XJe=function(t,n){return t.listeners(n).length},aM=Eae(),aW=K("buffer").Buffer,Jyn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Xyn(e){return aW.from(e)}function Qyn(e){return aW.isBuffer(e)||e instanceof Jyn}var jae=K("util"),An;jae&&jae.debuglog?An=jae.debuglog("stream"):An=function(){};var $yn=yJe(),Wae=vae(),eSn=Rae(),tSn=eSn.getHighWaterMark,cW=BS().codes,nSn=cW.ERR_INVALID_ARG_TYPE,rSn=cW.ERR_STREAM_PUSH_AFTER_EOF,iSn=cW.ERR_METHOD_NOT_IMPLEMENTED,sSn=cW.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ak,Hae,qae;J_()(nr,aM);var oM=Wae.errorOrDestroy,Bae=["error","close","destroy","pause","resume"];function oSn(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function QJe(e,t,n){Rk=Rk||X_(),e=e||{},typeof n!="boolean"&&(n=t instanceof Rk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=tSn(this,e,"readableHighWaterMark",n),this.buffer=new $yn,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(Ak||(Ak=Uae().StringDecoder),this.decoder=new Ak(e.encoding),this.encoding=e.encoding)}function nr(e){if(Rk=Rk||X_(),!(this instanceof nr))return new nr(e);var t=this instanceof Rk;this._readableState=new QJe(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),aM.call(this)}Object.defineProperty(nr.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});nr.prototype.destroy=Wae.destroy;nr.prototype._undestroy=Wae.undestroy;nr.prototype._destroy=function(e,t){t(e)};nr.prototype.push=function(e,t){var n=this._readableState,r;return n.objectMode?r=!0:typeof e=="string"&&(t=t||n.defaultEncoding,t!==n.encoding&&(e=aW.from(e,t),t=""),r=!0),$Je(this,e,t,!1,r)};nr.prototype.unshift=function(e){return $Je(this,e,null,!0,!1)};function $Je(e,t,n,r,i){An("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,uSn(e,s);else{var o;if(i||(o=aSn(s,t)),o)oM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==aW.prototype&&(t=Xyn(t)),r)s.endEmitted?oM(e,new sSn):zae(e,s,t,!0);else if(s.ended)oM(e,new rSn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?zae(e,s,t,!1):Vae(e,s)):zae(e,s,t,!1)}else r||(s.reading=!1,Vae(e,s))}return!s.ended&&(s.length=ZJe?e=ZJe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function JJe(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=cSn(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}nr.prototype.read=function(e){An("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return An("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Gae(this):uW(this),null;if(e=JJe(e,t),e===0&&t.ended)return t.length===0&&Gae(this),null;var r=t.needReadable;An("need readable",r),(t.length===0||t.length-e0?i=nXe(e,t):i=null,i===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&Gae(this)),i!==null&&this.emit("data",i),i};function uSn(e,t){if(An("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?uW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,eXe(e)))}}function uW(e){var t=e._readableState;An("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(An("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(eXe,e))}function eXe(e){var t=e._readableState;An("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Kae(e)}function Vae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(lSn,e,t))}function lSn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&rXe(r.pipes,e)!==-1)&&!u&&(An("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function f(g){An("onerror",g),m(),e.removeListener("error",f),XJe(e,"error")===0&&oM(e,g)}oSn(e,"error",f);function p(){e.removeListener("finish",h),m()}e.once("close",p);function h(){An("onfinish"),e.removeListener("close",p),m()}e.once("finish",h);function m(){An("unpipe"),n.unpipe(e)}return e.emit("pipe",n),r.flowing||(An("pipe resume"),n.resume()),e};function dSn(e){return function(){var n=e._readableState;An("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&XJe(e,"data")&&(n.flowing=!0,Kae(e))}}nr.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s0,r.flowing!==!1&&this.resume()):e==="readable"&&!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,An("on readable",r.length,r.reading),r.length?uW(this):r.reading||process.nextTick(fSn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=aM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(tXe,this),n};nr.prototype.removeAllListeners=function(e){var t=aM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(tXe,this),t};function tXe(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function fSn(e){An("readable nexttick read 0"),e.read(0)}nr.prototype.resume=function(){var e=this._readableState;return e.flowing||(An("resume"),e.flowing=!e.readableListening,pSn(this,e)),e.paused=!1,this};function pSn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(hSn,e,t))}function hSn(e,t){An("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Kae(e),t.flowing&&!t.reading&&e.read(0)}nr.prototype.pause=function(){return An("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(An("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Kae(e){var t=e._readableState;for(An("flow",t.flowing);t.flowing&&e.read()!==null;);}nr.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;e.on("end",function(){if(An("wrapped end"),n.decoder&&!n.ended){var o=n.decoder.end();o&&o.length&&t.push(o)}t.push(null)}),e.on("data",function(o){if(An("wrapped data"),n.decoder&&(o=n.decoder.write(o)),!(n.objectMode&&o==null)&&!(!n.objectMode&&(!o||!o.length))){var a=t.push(o);a||(r=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=(function(a){return function(){return e[a].apply(e,arguments)}})(i));for(var s=0;s=t.length?(t.decoder?n=t.buffer.join(""):t.buffer.length===1?n=t.buffer.first():n=t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n}function Gae(e){var t=e._readableState;An("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(mSn,t,e))}function mSn(e,t){if(An("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}typeof Symbol=="function"&&(nr.from=function(e,t){return qae===void 0&&(qae=YJe()),qae(nr,e,t)});function rXe(e,t){for(var n=0,r=e.length;n{"use strict";oXe.exports=eg;var lW=BS().codes,gSn=lW.ERR_METHOD_NOT_IMPLEMENTED,ySn=lW.ERR_MULTIPLE_CALLBACK,SSn=lW.ERR_TRANSFORM_ALREADY_TRANSFORMING,bSn=lW.ERR_TRANSFORM_WITH_LENGTH_0,dW=X_();J_()(eg,dW);function ESn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new ySn);n.writechunk=null,n.writecb=null,t!=null&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";cXe.exports=cM;var aXe=Yae();J_()(cM,aXe);function cM(e){if(!(this instanceof cM))return new cM(e);aXe.call(this,e)}cM.prototype._transform=function(e,t,n){n(null,e)}});var hXe=w((x4r,pXe)=>{"use strict";var Zae;function TSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var fXe=BS().codes,vSn=fXe.ERR_MISSING_ARGS,RSn=fXe.ERR_STREAM_DESTROYED;function lXe(e){if(e)throw e}function ASn(e){return e.setHeader&&typeof e.abort=="function"}function wSn(e,t,n,r){r=TSn(r);var i=!1;e.on("close",function(){i=!0}),Zae===void 0&&(Zae=iW()),Zae(e,{readable:t,writable:n},function(o){if(o)return r(o);i=!0,r()});var s=!1;return function(o){if(!i&&!s){if(s=!0,ASn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new RSn("pipe"))}}}function dXe(e){e()}function kSn(e,t){return e.pipe(t)}function ISn(e){return!e.length||typeof e[e.length-1]!="function"?lXe:e.pop()}function xSn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return wSn(o,c,u,function(l){i||(i=l),l&&s.forEach(dXe),!c&&(s.forEach(dXe),r(i))})});return t.reduce(kSn)}pXe.exports=xSn});var mXe=w((Rd,lM)=>{var uM=K("stream");process.env.READABLE_STREAM==="disable"&&uM?(lM.exports=uM.Readable,Object.assign(lM.exports,uM),lM.exports.Stream=uM):(Rd=lM.exports=Cae(),Rd.Stream=uM||Rd,Rd.Readable=Rd,Rd.Writable=Oae(),Rd.Duplex=X_(),Rd.Transform=Yae(),Rd.PassThrough=uXe(),Rd.finished=iW(),Rd.pipeline=hXe())});var SXe=w((O4r,yXe)=>{yXe.exports=gXe;function gXe(e,t){if(e&&t)return gXe(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(r){n[r]=e[r]}),n;function n(){for(var r=new Array(arguments.length),i=0;i{var bXe=SXe();Jae.exports=bXe(fW);Jae.exports.strict=bXe(EXe);fW.proto=fW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return fW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return EXe(this)},configurable:!0})});function fW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function EXe(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},n=e.name||"Function wrapped with `once`";return t.onceError=n+" shouldn't be called more than once",t.called=!1,t}});var RXe=w((N4r,vXe)=>{var OSn=_Xe(),PSn=function(){},NSn=global.Bare?queueMicrotask:process.nextTick.bind(process),CSn=function(e){return e.setHeader&&typeof e.abort=="function"},MSn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},TXe=function(e,t,n){if(typeof t=="function")return TXe(e,null,t);t||(t={}),n=OSn(n||PSn);var r=e._writableState,i=e._readableState,s=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,a=!1,c=function(){e.writable||u()},u=function(){o=!1,s||n.call(e)},l=function(){s=!1,o||n.call(e)},d=function(g){n.call(e,g?new Error("exited with error code: "+g):null)},f=function(g){n.call(e,g)},p=function(){NSn(h)},h=function(){if(!a){if(s&&!(i&&i.ended&&!i.destroyed))return n.call(e,new Error("premature close"));if(o&&!(r&&r.ended&&!r.destroyed))return n.call(e,new Error("premature close"))}},m=function(){e.req.on("finish",u)};return CSn(e)?(e.on("complete",u),e.on("abort",p),e.req?m():e.on("request",m)):o&&!r&&(e.on("end",c),e.on("close",c)),MSn(e)&&e.on("exit",d),e.on("end",l),e.on("finish",u),t.error!==!1&&e.on("error",f),e.on("close",p),function(){a=!0,e.removeListener("complete",u),e.removeListener("abort",p),e.removeListener("request",m),e.req&&e.req.removeListener("finish",u),e.removeListener("end",c),e.removeListener("close",c),e.removeListener("finish",u),e.removeListener("exit",d),e.removeListener("end",l),e.removeListener("error",f),e.removeListener("close",p)}};vXe.exports=TXe});var wXe=w((C4r,AXe)=>{AXe.exports=DSn;function DSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(LSn(t)):null}function LSn(e){if(e.buffer.length){var t=e.bufferIndex||0;if(e.buffer.head)return e.buffer.head.data.length;if(e.buffer.length-t>0&&e.buffer[t])return e.buffer[t].length}return e.length}});var PXe=w((M4r,OXe)=>{var pW=mXe(),kXe=RXe(),USn=J_(),FSn=wXe(),IXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),Xae=function(e,t){e._corked?e.once("uncork",t):t()},jSn=function(e,t){e._autoDestroy&&e.destroy(t)},xXe=function(e,t){return function(n){n?jSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},HSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},qSn=function(){},BSn=function(e){return new pW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);pW.Duplex.call(this,n),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!n||n.autoDestroy!==!1,this._forwardDestroy=!n||n.destroy!==!1,this._forwardEnd=!n||n.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,e&&this.setWritable(e),t&&this.setReadable(t)};USn(_a,pW.Duplex);_a.obj=function(e,t,n){return n||(n={}),n.objectMode=!0,n.highWaterMark=16,new _a(e,t,n)};_a.prototype.cork=function(){++this._corked===1&&this.emit("cork")};_a.prototype.uncork=function(){this._corked&&--this._corked===0&&this.emit("uncork")};_a.prototype.setWritable=function(e){if(this._unwrite&&this._unwrite(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.end();return}var t=this,n=kXe(e,{writable:!0,readable:!1},xXe(this,this._forwardEnd)),r=function(){var s=t._ondrain;t._ondrain=null,s&&s()},i=function(){t._writable.removeListener("drain",r),n()};this._unwrite&&process.nextTick(r),this._writable=e,this._writable.on("drain",r),this._unwrite=i,this.uncork()};_a.prototype.setReadable=function(e){if(this._unread&&this._unread(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.push(null),this.resume();return}var t=this,n=kXe(e,{writable:!1,readable:!0},xXe(this)),r=function(){t._forward()},i=function(){t.push(null)},s=function(){t._readable2.removeListener("readable",r),t._readable2.removeListener("end",i),n()};this._drained=!0,this._readable=e,this._readable2=e._readableState?e:BSn(e),this._readable2.on("readable",r),this._readable2.on("end",i),this._unread=s,this._forward()};_a.prototype._read=function(){this._drained=!0,this._forward()};_a.prototype._forward=function(){if(!(this._forwarding||!this._readable2||!this._drained)){this._forwarding=!0;for(var e;this._drained&&(e=FSn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=qSn),this.destroyed)return t(null);this.destroyed=!0;var n=this;process.nextTick(function(){n._destroy(e),t(null)})};_a.prototype._destroy=function(e){if(e){var t=this._ondrain;this._ondrain=null,t?t(e):this.emit("error",e)}this._forwardDestroy&&(this._readable&&this._readable.destroy&&this._readable.destroy(),this._writable&&this._writable.destroy&&this._writable.destroy()),this.emit("close")};_a.prototype._write=function(e,t,n){if(!this.destroyed){if(this._corked)return Xae(this,this._write.bind(this,e,t,n));if(e===IXe)return this._finish(n);if(!this._writable)return n();this._writable.write(e)===!1?this._ondrain=n:this.destroyed||n()}};_a.prototype._finish=function(e){var t=this;this.emit("preend"),Xae(this,function(){HSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),Xae(t,e)})})};_a.prototype.end=function(e,t,n){return typeof e=="function"?this.end(null,null,e):typeof t=="function"?this.end(e,null,t):(this._ended=!0,e&&this.write(e),!this._writableState.ending&&!this._writableState.destroyed&&this.write(IXe),pW.Writable.prototype.end.call(this,n))};OXe.exports=_a});var DXe=w((D4r,mW)=>{"use strict";var{ServerResponse:zSn}=K("node:http"),{PassThrough:NXe}=K("node:stream"),{randomBytes:GSn}=K("node:crypto"),VSn=zC(),CXe=lJe(),MXe=PXe(),nT=Symbol("ws-socket"),hW=Symbol("ws-head"),WSn=/HTTP\/1.1 (\d+)/u;function Qae(e,t,n){e.decorateRequest("ws",null);let r=p;if(t.errorHandler){if(typeof t.errorHandler!="function")return n(new Error("invalid errorHandler function"));r=t.errorHandler}let i=d;if(t?.preClose){if(typeof t.preClose!="function")return n(new Error("invalid preClose function"));i=t.preClose}if(t.options?.noServer)return n(new Error("fastify-websocket doesn't support the ws noServer option. If you want to create a websocket server detatched from fastify, use the ws library directly."));let s=Object.assign({noServer:!0},t.options);s.path&&e.log.warn("ws server path option shouldn't be provided, use a route instead");let o=s.server||e.server;delete s.server;let a=new CXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},g={}){let y=new NXe,b=new NXe,S=new MXe(y,b),E=new MXe(b,y),_=new CXe(null,void 0,{isServer:!1}),T=Buffer.from([]),R,A,x=new Promise((N,C)=>{R=N,A=C});typeof g.onInit=="function"&&g.onInit(_),_.on("open",()=>{typeof g.onOpen=="function"&&g.onOpen(_),E.removeListener("data",k),R(_)});let k=N=>{if(N.toString().includes("HTTP/1.1 101 Switching Protocols"))_._isServer=!1,_.setSocket(E,T,{maxPayload:0});else{E.removeListener("data",k);let C=Number(WSn.exec(N.toString())[1]);A(new Error("Unexpected server response: "+C))}};E.on("data",k);let P={...m,method:"GET",headers:{...m.headers,connection:"upgrade",upgrade:"websocket","sec-websocket-version":13,"sec-websocket-key":GSn(16).toString("base64")},httpVersion:"1.1",url:h,[nT]:S,[hW]:T};return o.emit("upgrade",P,P[nT],P[hW]),x}e.decorate("injectWS",c);function u(h,m,g){h[nT]=m,h[hW]=g;let y=new zSn(h);try{y.assignSocket(m),e.routing(h,y)}catch(b){e.log.warn({err:b},"websocket upgrade failed")}}o.on("upgrade",u);let l=(h,m)=>{a.handleUpgrade(h,h[nT],h[hW],g=>{a.emit("connection",g,h),g.on("error",y=>{e.log.error(y)}),m(g)})};e.addHook("onRequest",(h,m,g)=>{h.raw[nT]?h.ws=!0:h.ws=!1,g()}),e.addHook("onResponse",(h,m,g)=>{h.ws&&h.raw[nT].destroy(),g()}),e.addHook("onRoute",h=>{let m=!1,g=h.wsHandler,y=h.handler;if(h.websocket||h.wsHandler){if(h.method==="HEAD")return;if(h.method!=="GET")throw new Error("websocket handler can only be declared in GET method");if(m=!0,h.websocket&&(h.schema||(h.schema={}),h.schema.hide=!0,g=h.handler,y=function(b,S){S.code(404).send()}),typeof g!="function")throw new TypeError("invalid wsHandler function")}h.handler=function(b,S){if(b.raw[nT])S.hijack(),l(b.raw,E=>{let _;try{m?_=g.call(this,E,b):_=f.call(this,E,b)}catch(T){return r.call(this,T,E,b,S)}_&&typeof _.catch=="function"&&_.catch(T=>r.call(this,T,E,b,S))});else return y.call(this,b,S)}}),e.addHook("preClose",i);function d(h){let m=this.websocketServer;if(m.clients)for(let g of m.clients)g.close();e.server.removeListener("upgrade",u),m.close(h),h()}function f(h,m){this.log.info({path:m.url},"closed incoming websocket connection for path with no websocket handler"),h.close()}function p(h,m,g){g.log.error(h),m.terminate()}n()}mW.exports=VSn(Qae,{fastify:"5.x",name:"@fastify/websocket"});mW.exports.default=Qae;mW.exports.fastifyWebsocket=Qae});var UXe=w((L4r,LXe)=>{"use strict";function KSn(e){var t=new e,n=t;function r(){var s=t;return s.next?t=s.next:(t=new e,n=t),s.next=null,s}function i(s){n.next=s,n=s}return{get:r,release:i}}LXe.exports=KSn});var jXe=w((U4r,$ae)=>{"use strict";var YSn=UXe();function FXe(e,t,n){if(typeof e=="function"&&(n=t,t=e,e=null),!(n>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var r=YSn(ZSn),i=null,s=null,o=0,a=null,c={push:m,drain:ku,saturated:ku,pause:l,paused:!1,get concurrency(){return n},set concurrency(T){if(!(T>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(n=T,!c.paused)for(;i&&o=n||c.paused?s?(s.next=A,s=A):(i=A,s=A,c.saturated()):(o++,t.call(e,A.value,A.worked))}function g(T,R){var A=r.get();A.context=e,A.release=y,A.value=T,A.callback=R||ku,A.errorHandler=a,o>=n||c.paused?i?(A.next=i,i=A):(i=A,s=A,c.saturated()):(o++,t.call(e,A.value,A.worked))}function y(T){T&&r.release(T);var R=i;R&&o<=n?c.paused?o--:(s===i&&(s=null),i=R.next,R.next=null,t.call(e,R.value,R.worked),s===null&&c.empty()):--o===0&&c.drain()}function b(){i=null,s=null,c.drain=ku}function S(){i=null,s=null,c.drain(),c.drain=ku}function E(){var T=i;for(i=null,s=null;T;){var R=T.next,A=T.callback,x=T.errorHandler,k=T.value,P=T.context;T.value=null,T.callback=ku,T.errorHandler=null,x&&x(new Error("abort"),k),A.call(P,new Error("abort")),T.release(T),T=R}c.drain=ku}function _(T){a=T}}function ku(){}function ZSn(){this.value=null,this.callback=ku,this.next=null,this.release=ku,this.context=null,this.errorHandler=null;var e=this;this.worked=function(n,r){var i=e.callback,s=e.errorHandler,o=e.value;e.value=null,e.callback=ku,e.errorHandler&&s(n,o),i.call(e.context,n,r),e.release(e)}}function JSn(e,t,n){typeof e=="function"&&(n=t,t=e,e=null);function r(l,d){t.call(this,l).then(function(f){d(null,f)},d)}var i=FXe(e,r,n),s=i.push,o=i.unshift;return i.push=a,i.unshift=c,i.drained=u,i;function a(l){var d=new Promise(function(f,p){s(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(ku),d}function c(l){var d=new Promise(function(f,p){o(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(ku),d}function u(){var l=new Promise(function(d){process.nextTick(function(){if(i.idle())d();else{var f=i.drain;i.drain=function(){typeof f=="function"&&f(),d(),i.drain=f}}})});return l}}$ae.exports=FXe;$ae.exports.promise=JSn});var yW=w((F4r,dM)=>{"use strict";var{format:XSn}=K("node:util");function QSn(){return`${this.name} [${this.code}]: ${this.message}`}var gW=Symbol.for("fastify-error-generic");function wk(e,t,n=500,r=Error,i=wk.captureStackTrace){let s=e===gW;if(s&&(e="FST_ERR"),!e)throw new Error("Fastify error code must not be empty");if(!t)throw new Error("Fastify error message must not be empty");e=e.toUpperCase(),!n&&(n=void 0);let o=Symbol.for(`fastify-error ${e}`);function a(...c){if(!new.target)return new a(...c);this.code=e,this.name="FastifyError",this.statusCode=n;let u=c.length-1;u!==-1&&c[u]&&typeof c[u]=="object"&&"cause"in c[u]&&(this.cause=c.pop().cause),this.message=XSn(t,...c),Error.stackTraceLimit&&i&&Error.captureStackTrace(this,a)}return a.prototype=Object.create(r.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0},[gW]:{value:!0,enumerable:!1,writable:!1,configurable:!1},[o]:{value:!0,enumerable:!1,writable:!1,configurable:!1}}),s?Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[gW]},configurable:!1,writable:!1,enumerable:!1}):Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[o]},configurable:!1,writable:!1,enumerable:!1}),a.prototype[Symbol.toStringTag]="Error",a.prototype.toString=QSn,a}wk.captureStackTrace=!0;var $Sn=wk(gW,"Fastify Error",500,Error);dM.exports=wk;dM.exports.FastifyError=$Sn;dM.exports.default=wk;dM.exports.createError=wk});var SW=w((j4r,HXe)=>{"use strict";var{createError:KS}=yW();HXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:KS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:KS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:KS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:KS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:KS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:KS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:KS("AVV_ERR_READY_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise"),AVV_ERR_PLUGIN_EXEC_TIMEOUT:KS("AVV_ERR_PLUGIN_EXEC_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise")}});var kk=w((H4r,qXe)=>{"use strict";var ebn=Symbol("avvio.Boot"),tbn=Symbol("isOnCloseHandler"),nbn=Symbol("avvio.ThenifyDoNotWrap"),rbn=Symbol("avvio.TimeTree.untrackNode"),ibn=Symbol("avvio.TimeTree.trackNode"),sbn=Symbol("avvio.TimeTree.getParent"),obn=Symbol("avvio.TimeTree.getNode"),abn=Symbol("avvio.TimeTree.addNode"),cbn=Symbol.for("plugin-meta");qXe.exports={kAvvio:ebn,kIsOnCloseHandler:tbn,kThenifyDoNotWrap:nbn,kUntrackNode:rbn,kTrackNode:ibn,kGetParent:sbn,kGetNode:obn,kAddNode:abn,kPluginMeta:cbn}});var YXe=w((q4r,KXe)=>{"use strict";var{kUntrackNode:BXe,kTrackNode:ece,kGetParent:zXe,kGetNode:GXe,kAddNode:VXe}=kk(),tce=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[ece](t){this.tableId.set(t.id,t),this.tableLabel.has(t.label)?this.tableLabel.get(t.label).push(t):this.tableLabel.set(t.label,[t])}[BXe](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[zXe](t){if(t===null)return null;if(this.tableLabel.has(t)){let n=this.tableLabel.get(t);return n[n.length-1]}else return null}[GXe](t){return this.tableId.get(t)}[VXe](t,n,r){let i=this[zXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[ece](this.root),this.root.id;let o=`${n}-${Math.random()}`,a={parent:t,id:o,label:n,nodes:[],start:r,stop:null,diff:-1};return i.nodes.push(a),this[ece](a),o}start(t,n,r=Date.now()){return this[VXe](t,n,r)}stop(t,n=Date.now()){let r=this[GXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[BXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return WXe(this.toJSON())}};function WXe(e,t=""){let n=t,r=e.nodes.length,i=r-1;n+=`${e.label} ${e.diff} ms -`;for(let s=0;s{"use strict";var{debuglog:ubn}=K("node:util"),lbn=ubn("avvio");ZXe.exports={debug:lbn}});var XXe=w((z4r,JXe)=>{"use strict";function dbn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}JXe.exports={createPromise:dbn}});var eQe=w((G4r,$Xe)=>{"use strict";var{kPluginMeta:QXe}=kk();function fbn(e,t){return e[QXe]?.name?e[QXe].name:t?.name?t.name:e.name?e.name:e.toString().split(` -`).slice(0,2).map(n=>n.trim()).join(" -- ")}$Xe.exports={getPluginName:fbn}});var EW=w((V4r,tQe)=>{"use strict";function pbn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}tQe.exports={isPromiseLike:pbn}});var rQe=w((W4r,nQe)=>{"use strict";var{EventEmitter:hbn}=K("node:events"),{inherits:mbn}=K("node:util"),{debug:Ta}=bW(),{createPromise:gbn}=XXe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:ybn}=SW(),{getPluginName:Sbn}=eQe(),{isPromiseLike:bbn}=EW();function Ik(e,t,n,r,i){this.queue=e,this.func=t,this.options=n,this.isAfter=r,this.timeout=i,this.started=!1,this.name=Sbn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}mbn(Ik,hbn);Ik.prototype.exec=function(e,t){Ta("exec",this.name),this.server=e;let n=this.func,r=this.name,i=!1;this.options=typeof this.options=="function"?this.options(this.server):this.options;let s=null,o=c=>{if(i){Ta("loading complete",r);return}this._error=c,Ta(c?"exec errored":"exec completed",r),i=!0,s&&clearTimeout(s),t(c)};this.timeout>0&&(Ta("setting up timeout",r,this.timeout),s=setTimeout(function(){Ta("timed out",r),s=null;let c=new ybn(r);c.fn=n,o(c)},this.timeout)),this.started=!0,this.startTime=Date.now(),this.emit("start",this.server?this.server.name:null,this.name,Date.now());let a=n(this.server,this.options,o);bbn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};Ik.prototype.loadedSoFar=function(){if(Ta("loadedSoFar",this.name),this.loaded)return Promise.resolve();let e=()=>{this.server.after((n,r)=>{this._error=n,this.queue.pause(),this._promise&&(n?(Ta("rejecting promise",this.name,n),this._promise.reject(n)):(Ta("resolving promise",this.name),this._promise.resolve()),this._promise=null),process.nextTick(r,n)}),this.queue.resume()},t;return this._promise?t=Promise.resolve():(this._promise=gbn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Ik.prototype.enqueue=function(e,t){Ta("enqueue",this.name,e.name),this.emit("enqueue",this.server?this.server.name:null,this.name,Date.now()),this.queue.push(e,t)};Ik.prototype.finish=function(e,t){Ta("finish",this.name,e);let n=()=>{this.loaded||(Ta("loaded",this.name),this.emit("loaded",this.server?this.server.name:null,this.name,Date.now()),this.loaded=!0,t(e))};if(e){this._promise&&(this._promise.reject(e),this._promise=null),n();return}let r=()=>{if(Ta("check",this.name,this.queue.length(),this.queue.running(),this._promise),this.queue.length()===0&&this.queue.running()===0)if(this._promise){let i=()=>{Ta("wrap"),queueMicrotask(r)};this._promise.resolve(),this._promise.promise.then(i,i),this._promise=null}else n();else Ta("delayed",this.name),this.queue.drain=()=>{Ta("drain",this.name),this.queue.drain=Ebn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function Ebn(){}nQe.exports={Plugin:Ik}});var sQe=w((K4r,iQe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:nce}=SW();function _bn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new nce("array"):e===null?new nce("null"):new nce(typeof e)}iQe.exports={validatePlugin:_bn}});var aQe=w((Y4r,oQe)=>{"use strict";function Tbn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}oQe.exports={isBundledOrTypescriptPlugin:Tbn}});var lQe=w((Z4r,uQe)=>{"use strict";var{debug:cQe}=bW(),{kThenifyDoNotWrap:rce}=kk();function vbn(){if(this.booted){cQe("thenify returning undefined because we are already booted");return}if(this[rce]){this[rce]=!1;return}return cQe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[rce]=!0,e(this._server)),t)}uQe.exports={thenify:vbn}});var fQe=w((J4r,dQe)=>{"use strict";var{isPromiseLike:Rbn}=EW(),{kAvvio:Abn}=kk();function wbn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}Rbn(r)&&!r[Abn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}dQe.exports={executeWithThenable:wbn}});var _Qe=w((X4r,EQe)=>{"use strict";var _W=jXe(),kbn=K("node:events").EventEmitter,Ibn=K("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:fM,AVV_ERR_CALLBACK_NOT_FN:xk,AVV_ERR_ROOT_PLG_BOOTED:xbn,AVV_ERR_READY_TIMEOUT:Obn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:Pbn}=SW(),{kAvvio:mQe,kIsOnCloseHandler:gQe}=kk(),{TimeTree:Nbn}=YXe(),{Plugin:yQe}=rQe(),{debug:Ok}=bW(),{validatePlugin:Cbn}=sQe(),{isBundledOrTypescriptPlugin:Mbn}=aQe(),{isPromiseLike:Dbn}=EW(),{thenify:SQe}=lQe(),{executeWithThenable:pQe}=fQe();function Ms(e,t,n){if(typeof e=="function"&&arguments.length===1&&(n=e,t={},e=null),typeof t=="function"&&(n=t,t={}),t=t||{},t.autostart=t.autostart!==!1,t.timeout=Number(t.timeout)||0,t.expose=t.expose||{},!new.target)return new Ms(e,t,n);this._server=e||this,this._opts=t,e&&this._expose(),this._current=[],this._error=null,this._lastUsed=null,this.setMaxListeners(0),n&&this.once("start",n),this.started=!1,this.booted=!1,this.pluginTree=new Nbn,this._readyQ=_W(this,bQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=hQe},this._closeQ=_W(this,Ubn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=hQe},this._doStart=null;let r=this;this._root=new yQe(_W(this,this._loadPluginNextTick,1),function(s,o,a){r._doStart=a,o.autostart&&r.start()},t,!1,0),this._trackPluginLoading(this._root),this._loadPlugin(this._root,i=>{Ok("root plugin ready");try{this.emit("preReady"),this._root=null}catch(s){i=i||this._error||s}if(i){if(this._error=i,this._readyQ.length()===0)throw i}else this.booted=!0;this._readyQ.resume()})}Ibn(Ms,kbn);"asyncDispose"in Symbol&&(Ms.prototype[Symbol.asyncDispose]=function(){return new Promise((e,t)=>{this.close(n=>{if(n)return t(n);e()})})});Ms.prototype.start=function(){return this.started=!0,process.nextTick(this._doStart),this};Ms.prototype.override=function(e,t,n){return e};Ms.prototype[mQe]=!0;Ms.prototype.use=function(e,t){return this._lastUsed=this._addPlugin(e,t,!1),this};Ms.prototype._loadRegistered=function(){let e=this._current[0];return!this.started&&!this.booted&&process.nextTick(()=>this._root.queue.resume()),e?e.loadedSoFar():Promise.resolve()};Object.defineProperty(Ms.prototype,"then",{get:SQe});Ms.prototype._addPlugin=function(e,t,n){if(Mbn(e)&&(e=e.default),Cbn(e),t=t||{},this.booted)throw new xbn;let r=this._current[0],i=this._opts.timeout;if(!r.loaded&&r.timeout>0){let o=Date.now()-r.startTime;i=r.timeout-(o+3)}let s=new yQe(_W(this,this._loadPluginNextTick,1),e,t,n,i);if(this._trackPluginLoading(s),r.loaded)throw new Error(s.name,r.name);return r.enqueue(s,o=>{o&&(this._error=o)}),s};Ms.prototype._expose=function(){let t=this,n=t._server,{use:r="use",after:i="after",ready:s="ready",onClose:o="onClose",close:a="close"}=this._opts.expose;if(n[r])throw new fM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new fM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(ice(c,this)),this)},n[s])throw new fM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new xk(s,typeof c);return t.ready(c?ice(c,this):void 0)},n[o])throw new fM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new xk(o,typeof c);return t.onClose(Fbn(c,this)),this},n[a])throw new fM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new xk(a,typeof c);return c?(t.close(ice(c,this)),this):t.close()},n.then)throw new Pbn("then");Object.defineProperty(n,"then",{get:SQe.bind(t)}),n[mQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){bQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new xk("onClose",typeof e);return e[gQe]=!0,this._closeQ.unshift(e,t=>{t&&(this._error=t)}),this};Ms.prototype.close=function(e){let t;if(e){if(typeof e!="function")throw new xk("close",typeof e)}else t=new Promise(function(n,r){e=function(i){if(i)return r(i);n()}});return this.ready(()=>{this._error=null,this._closeQ.push(e),process.nextTick(this._closeQ.resume.bind(this._closeQ))}),t};Ms.prototype.ready=function(e){if(e){if(typeof e!="function")throw new xk("ready",typeof e);this._readyQ.push(e),queueMicrotask(this.start.bind(this));return}return new Promise((t,n)=>{this._readyQ.push(i),this.start();let r=this._current[0].server;function i(s,o,a){s?n(s):t(r),process.nextTick(a)}})};Ms.prototype._trackPluginLoading=function(e){let t=this._current[0]?.name||null;e.once("start",(n,r,i)=>{let s=this.pluginTree.start(t||null,r,i);e.once("loaded",(o,a,c)=>{this.pluginTree.stop(s,c)})})};Ms.prototype.prettyPrint=function(){return this.pluginTree.prettyPrint()};Ms.prototype.toJSON=function(){return this.pluginTree.toJSON()};Ms.prototype._loadPlugin=function(e,t){let n=this;if(Dbn(e.func)){e.func.then(o=>{typeof o.default=="function"&&(o=o.default),e.func=o,this._loadPlugin(e,t)},t);return}let r=n._current[0];if(n._current.unshift(e),n._error&&!e.isAfter){Ok("skipping loading of plugin as instance errored and it is not an after",e.name),process.nextTick(s);return}let i=r?.server||n._server;if(!e.isAfter)try{i=n.override(i,e.func,e.options)}catch(o){return Ok("override errored",e.name),s(o)}e.exec(i,s);function s(o){e.finish(o,a=>{n._current.shift(),t(a)})}};Ms.prototype._loadPluginNextTick=function(e,t){process.nextTick(this._loadPlugin.bind(this),e,t)};function hQe(){}function bQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,pQe(e,[],t);else if(e.length===1)pQe(e,[r],t);else if(this._opts.timeout===0){let i=s=>{this._error=s,t(this._error)};e.length===2?e(r,i):e(r,n,i)}else Lbn.call(this,e,r,n,t)}function Lbn(e,t,n,r){let i=e.unwrappedName??e.name;Ok("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Ok("timed out",i),s=null;let a=new Obn(i);a.fn=e,this._error=a,r(a)},this._opts.timeout);e.length===2?e(t,o.bind(this)):e(t,n,o.bind(this));function o(a){s&&(clearTimeout(s),this._error=a,r(this._error))}}function Ubn(e,t){let n=this._server,r=e[gQe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Ok("resolving close/onClose promise"),i.then(()=>process.nextTick(t),s=>process.nextTick(t,s))):process.nextTick(t)}else e.length===2?e(r?n:this._error,t):r?e(n,t):e(this._error,n,t)}function Fbn(e,t){return n.bind(t);function n(r,i){let s;e.length===0?(s=e(),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e.length===1?(s=e(this),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e(this,i)}}function ice(e,t){let n=r.bind(t);return n.unwrappedName=e.name,n;function r(i,s){let o;e?e.length===0?(o=e(),o?.then?o.then(function(){process.nextTick(s,i)},s):process.nextTick(s,i)):e.length===1?(o=e(i),o?.then?o.then(function(){process.nextTick(s)},s):process.nextTick(s)):e.length===2?e(i,s):e(i,this,s):process.nextTick(s)}}EQe.exports=Ms});var $s=w((Q4r,TQe)=>{"use strict";var jbn={kAvvioBoot:Symbol("fastify.avvioBoot"),kChildren:Symbol("fastify.children"),kServerBindings:Symbol("fastify.serverBindings"),kBodyLimit:Symbol("fastify.bodyLimit"),kSupportedHTTPMethods:Symbol("fastify.acceptedHTTPMethods"),kRoutePrefix:Symbol("fastify.routePrefix"),kLogLevel:Symbol("fastify.logLevel"),kLogSerializers:Symbol("fastify.logSerializers"),kHooks:Symbol("fastify.hooks"),kContentTypeParser:Symbol("fastify.contentTypeParser"),kState:Symbol("fastify.state"),kOptions:Symbol("fastify.options"),kDisableRequestLogging:Symbol("fastify.disableRequestLogging"),kPluginNameChain:Symbol("fastify.pluginNameChain"),kRouteContext:Symbol("fastify.context"),kGenReqId:Symbol("fastify.genReqId"),kHttp2ServerSessions:Symbol("fastify.http2ServerSessions"),kSchemaController:Symbol("fastify.schemaController"),kSchemaHeaders:Symbol("headers-schema"),kSchemaParams:Symbol("params-schema"),kSchemaQuerystring:Symbol("querystring-schema"),kSchemaBody:Symbol("body-schema"),kSchemaResponse:Symbol("response-schema"),kSchemaErrorFormatter:Symbol("fastify.schemaErrorFormatter"),kSchemaVisited:Symbol("fastify.schemas.visited"),kRequest:Symbol("fastify.Request"),kRequestPayloadStream:Symbol("fastify.RequestPayloadStream"),kRequestAcceptVersion:Symbol("fastify.RequestAcceptVersion"),kRequestCacheValidateFns:Symbol("fastify.request.cache.validateFns"),kRequestOriginalUrl:Symbol("fastify.request.originalUrl"),kRequestSignal:Symbol("fastify.request.signal"),kHandlerTimeout:Symbol("fastify.handlerTimeout"),kTimeoutTimer:Symbol("fastify.request.timeoutTimer"),kOnAbort:Symbol("fastify.request.onAbort"),kFourOhFour:Symbol("fastify.404"),kCanSetNotFoundHandler:Symbol("fastify.canSetNotFoundHandler"),kFourOhFourLevelInstance:Symbol("fastify.404LogLevelInstance"),kFourOhFourContext:Symbol("fastify.404ContextKey"),kDefaultJsonParse:Symbol("fastify.defaultJSONParse"),kReply:Symbol("fastify.Reply"),kReplySerializer:Symbol("fastify.reply.serializer"),kReplyIsError:Symbol("fastify.reply.isError"),kReplyHeaders:Symbol("fastify.reply.headers"),kReplyTrailers:Symbol("fastify.reply.trailers"),kReplyHasStatusCode:Symbol("fastify.reply.hasStatusCode"),kReplyHijacked:Symbol("fastify.reply.hijacked"),kReplyStartTime:Symbol("fastify.reply.startTime"),kReplyNextErrorHandler:Symbol("fastify.reply.nextErrorHandler"),kReplyEndTime:Symbol("fastify.reply.endTime"),kReplyErrorHandlerCalled:Symbol("fastify.reply.errorHandlerCalled"),kReplyIsRunningOnErrorHook:Symbol("fastify.reply.isRunningOnErrorHook"),kReplySerializerDefault:Symbol("fastify.replySerializerDefault"),kReplyCacheSerializeFns:Symbol("fastify.reply.cache.serializeFns"),kTestInternals:Symbol("fastify.testInternals"),kErrorHandler:Symbol("fastify.errorHandler"),kErrorHandlerAlreadySet:Symbol("fastify.errorHandlerAlreadySet"),kChildLoggerFactory:Symbol("fastify.childLoggerFactory"),kHasBeenDecorated:Symbol("fastify.hasBeenDecorated"),kKeepAliveConnections:Symbol("fastify.keepAliveConnections"),kRouteByFastify:Symbol("fastify.routeByFastify")};TQe.exports=jbn});var RQe=w(($4r,TW)=>{"use strict";var{format:sce}=K("node:util");function Hbn(e){return vQe({...e,name:"DeprecationWarning"})}function vQe({name:e,code:t,message:n,unlimited:r=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!n)throw new Error("Warning message must not be empty");if(typeof r!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let i={[e]:function(o,a,c){s.emitted===!0&&s.unlimited!==!0||(s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code))}};r&&(i={[e]:function(o,a,c){s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code)}});let s=i[e];return s.emitted=!1,s.message=n,s.unlimited=r,s.code=t,s.format=function(o,a,c){let u;return o&&a&&c?u=sce(n,o,a,c):o&&a?u=sce(n,o,a):o?u=sce(n,o):u=n,u},s}var oce={createWarning:vQe,createDeprecation:Hbn};TW.exports=oce;TW.exports.default=oce;TW.exports.processWarning=oce});var Pk=w((eKr,AQe)=>{"use strict";var{createWarning:pM}=RQe(),qbn=pM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),Bbn=pM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),zbn=pM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),Gbn=pM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),Vbn=pM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});AQe.exports={FSTWRN001:qbn,FSTWRN003:Bbn,FSTWRN004:zbn,FSTSEC001:Gbn,FSTDEP022:Vbn}});var Ko=w((tKr,vW)=>{"use strict";var je=yW(),rT={FST_ERR_NOT_FOUND:je("FST_ERR_NOT_FOUND","Not Found",404),FST_ERR_OPTIONS_NOT_OBJ:je("FST_ERR_OPTIONS_NOT_OBJ","Options must be an object",500,TypeError),FST_ERR_QSP_NOT_FN:je("FST_ERR_QSP_NOT_FN","querystringParser option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:je("FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN","schemaController.bucket option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:je("FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN","schemaErrorFormatter option should be a non async function. Instead got '%s'.",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:je("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ","ajv.customOptions option should be an object, instead got '%s'",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:je("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR","ajv.plugins option should be an array, instead got '%s'",500,TypeError),FST_ERR_VALIDATION:je("FST_ERR_VALIDATION","%s",400),FST_ERR_LISTEN_OPTIONS_INVALID:je("FST_ERR_LISTEN_OPTIONS_INVALID","Invalid listen options: '%s'",500,TypeError),FST_ERR_ERROR_HANDLER_NOT_FN:je("FST_ERR_ERROR_HANDLER_NOT_FN","Error Handler must be a function",500,TypeError),FST_ERR_ERROR_HANDLER_ALREADY_SET:je("FST_ERR_ERROR_HANDLER_ALREADY_SET","Error Handler already set in this scope. Set 'allowErrorHandlerOverride: true' to allow overriding.",500,TypeError),FST_ERR_CTP_ALREADY_PRESENT:je("FST_ERR_CTP_ALREADY_PRESENT","Content type parser '%s' already present."),FST_ERR_CTP_INVALID_TYPE:je("FST_ERR_CTP_INVALID_TYPE","The content type should be a string or a RegExp",500,TypeError),FST_ERR_CTP_EMPTY_TYPE:je("FST_ERR_CTP_EMPTY_TYPE","The content type cannot be an empty string",500,TypeError),FST_ERR_CTP_INVALID_HANDLER:je("FST_ERR_CTP_INVALID_HANDLER","The content type handler should be a function",500,TypeError),FST_ERR_CTP_INVALID_PARSE_TYPE:je("FST_ERR_CTP_INVALID_PARSE_TYPE","The body parser can only parse your data as 'string' or 'buffer', you asked '%s' which is not supported.",500,TypeError),FST_ERR_CTP_BODY_TOO_LARGE:je("FST_ERR_CTP_BODY_TOO_LARGE","Request body is too large",413,RangeError),FST_ERR_CTP_INVALID_MEDIA_TYPE:je("FST_ERR_CTP_INVALID_MEDIA_TYPE","Unsupported Media Type",415),FST_ERR_CTP_INVALID_CONTENT_LENGTH:je("FST_ERR_CTP_INVALID_CONTENT_LENGTH","Request body size did not match Content-Length",400,RangeError),FST_ERR_CTP_EMPTY_JSON_BODY:je("FST_ERR_CTP_EMPTY_JSON_BODY","Body cannot be empty when content-type is set to 'application/json'",400),FST_ERR_CTP_INVALID_JSON_BODY:je("FST_ERR_CTP_INVALID_JSON_BODY","Body is not valid JSON but content-type is set to 'application/json'",400),FST_ERR_CTP_INSTANCE_ALREADY_STARTED:je("FST_ERR_CTP_INSTANCE_ALREADY_STARTED",'Cannot call "%s" when fastify instance is already started!',400),FST_ERR_DEC_ALREADY_PRESENT:je("FST_ERR_DEC_ALREADY_PRESENT","The decorator '%s' has already been added!"),FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:je("FST_ERR_DEC_DEPENDENCY_INVALID_TYPE","The dependencies of decorator '%s' must be of type Array.",500,TypeError),FST_ERR_DEC_MISSING_DEPENDENCY:je("FST_ERR_DEC_MISSING_DEPENDENCY","The decorator is missing dependency '%s'."),FST_ERR_DEC_AFTER_START:je("FST_ERR_DEC_AFTER_START","The decorator '%s' has been added after start!"),FST_ERR_DEC_REFERENCE_TYPE:je("FST_ERR_DEC_REFERENCE_TYPE","The decorator '%s' of type '%s' is a reference type. Use the { getter, setter } interface instead."),FST_ERR_DEC_UNDECLARED:je("FST_ERR_DEC_UNDECLARED","No decorator '%s' has been declared on %s."),FST_ERR_HOOK_INVALID_TYPE:je("FST_ERR_HOOK_INVALID_TYPE","The hook name must be a string",500,TypeError),FST_ERR_HOOK_INVALID_HANDLER:je("FST_ERR_HOOK_INVALID_HANDLER","%s hook should be a function, instead got %s",500,TypeError),FST_ERR_HOOK_INVALID_ASYNC_HANDLER:je("FST_ERR_HOOK_INVALID_ASYNC_HANDLER","Async function has too many arguments. Async hooks should not use the 'done' argument.",500,TypeError),FST_ERR_HOOK_NOT_SUPPORTED:je("FST_ERR_HOOK_NOT_SUPPORTED","%s hook not supported!",500,TypeError),FST_ERR_MISSING_MIDDLEWARE:je("FST_ERR_MISSING_MIDDLEWARE","You must register a plugin for handling middlewares, visit fastify.dev/docs/latest/Reference/Middleware/ for more info.",500),FST_ERR_HOOK_TIMEOUT:je("FST_ERR_HOOK_TIMEOUT","A callback for '%s' hook%s timed out. You may have forgotten to call 'done' function or to resolve a Promise"),FST_ERR_LOG_INVALID_DESTINATION:je("FST_ERR_LOG_INVALID_DESTINATION","Cannot specify both logger.stream and logger.file options"),FST_ERR_LOG_INVALID_LOGGER:je("FST_ERR_LOG_INVALID_LOGGER","Invalid logger object provided. The logger instance should have these functions(s): '%s'.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_INSTANCE:je("FST_ERR_LOG_INVALID_LOGGER_INSTANCE","loggerInstance only accepts a logger instance.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_CONFIG:je("FST_ERR_LOG_INVALID_LOGGER_CONFIG","logger options only accepts a configuration object.",500,TypeError),FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:je("FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED","You cannot provide both logger and loggerInstance. Please provide only one.",500,TypeError),FST_ERR_REP_INVALID_PAYLOAD_TYPE:je("FST_ERR_REP_INVALID_PAYLOAD_TYPE","Attempted to send payload of invalid type '%s'. Expected a string or Buffer.",500,TypeError),FST_ERR_REP_RESPONSE_BODY_CONSUMED:je("FST_ERR_REP_RESPONSE_BODY_CONSUMED","Response.body is already consumed."),FST_ERR_REP_READABLE_STREAM_LOCKED:je("FST_ERR_REP_READABLE_STREAM_LOCKED","ReadableStream was locked. You should call releaseLock() method on reader before sending."),FST_ERR_REP_ALREADY_SENT:je("FST_ERR_REP_ALREADY_SENT",'Reply was already sent, did you forget to "return reply" in "%s" (%s)?'),FST_ERR_REP_SENT_VALUE:je("FST_ERR_REP_SENT_VALUE","The only possible value for reply.sent is true.",500,TypeError),FST_ERR_SEND_INSIDE_ONERR:je("FST_ERR_SEND_INSIDE_ONERR","You cannot use `send` inside the `onError` hook"),FST_ERR_SEND_UNDEFINED_ERR:je("FST_ERR_SEND_UNDEFINED_ERR","Undefined error has occurred"),FST_ERR_BAD_STATUS_CODE:je("FST_ERR_BAD_STATUS_CODE","Called reply with an invalid status code: %s"),FST_ERR_BAD_TRAILER_NAME:je("FST_ERR_BAD_TRAILER_NAME","Called reply.trailer with an invalid header name: %s"),FST_ERR_BAD_TRAILER_VALUE:je("FST_ERR_BAD_TRAILER_VALUE","Called reply.trailer('%s', fn) with an invalid type: %s. Expected a function."),FST_ERR_FAILED_ERROR_SERIALIZATION:je("FST_ERR_FAILED_ERROR_SERIALIZATION","Failed to serialize an error. Error: %s. Original error: %s"),FST_ERR_MISSING_SERIALIZATION_FN:je("FST_ERR_MISSING_SERIALIZATION_FN",'Missing serialization function. Key "%s"'),FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:je("FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN",'Missing serialization function. Key "%s:%s"'),FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:je("FST_ERR_REQ_INVALID_VALIDATION_INVOCATION",'Invalid validation invocation. Missing validation function for HTTP part "%s" nor schema provided.'),FST_ERR_SCH_MISSING_ID:je("FST_ERR_SCH_MISSING_ID","Missing schema $id property"),FST_ERR_SCH_ALREADY_PRESENT:je("FST_ERR_SCH_ALREADY_PRESENT","Schema with id '%s' already declared!"),FST_ERR_SCH_CONTENT_MISSING_SCHEMA:je("FST_ERR_SCH_CONTENT_MISSING_SCHEMA","Schema is missing for the content type '%s'"),FST_ERR_SCH_DUPLICATE:je("FST_ERR_SCH_DUPLICATE","Schema with '%s' already present!"),FST_ERR_SCH_VALIDATION_BUILD:je("FST_ERR_SCH_VALIDATION_BUILD","Failed building the validation schema for %s: %s, due to error %s"),FST_ERR_SCH_SERIALIZATION_BUILD:je("FST_ERR_SCH_SERIALIZATION_BUILD","Failed building the serialization schema for %s: %s, due to error %s"),FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:je("FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX",'response schemas should be nested under a valid status code, e.g { 2xx: { type: "object" } }'),FST_ERR_INIT_OPTS_INVALID:je("FST_ERR_INIT_OPTS_INVALID","Invalid initialization options: '%s'"),FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:je("FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE","Cannot set forceCloseConnections to 'idle' as your HTTP server does not support closeIdleConnections method"),FST_ERR_DUPLICATED_ROUTE:je("FST_ERR_DUPLICATED_ROUTE","Method '%s' already declared for route '%s'"),FST_ERR_BAD_URL:je("FST_ERR_BAD_URL","'%s' is not a valid url component",400,URIError),FST_ERR_ASYNC_CONSTRAINT:je("FST_ERR_ASYNC_CONSTRAINT","Unexpected error from async constraint",500),FST_ERR_INVALID_URL:je("FST_ERR_INVALID_URL","URL must be a string. Received '%s'",400,TypeError),FST_ERR_ROUTE_OPTIONS_NOT_OBJ:je("FST_ERR_ROUTE_OPTIONS_NOT_OBJ",'Options for "%s:%s" route must be an object',500,TypeError),FST_ERR_ROUTE_DUPLICATED_HANDLER:je("FST_ERR_ROUTE_DUPLICATED_HANDLER",'Duplicate handler for "%s:%s" route is not allowed!',500),FST_ERR_ROUTE_HANDLER_NOT_FN:je("FST_ERR_ROUTE_HANDLER_NOT_FN","Error Handler for %s:%s route, if defined, must be a function",500,TypeError),FST_ERR_ROUTE_MISSING_HANDLER:je("FST_ERR_ROUTE_MISSING_HANDLER",'Missing handler function for "%s:%s" route.',500),FST_ERR_ROUTE_METHOD_INVALID:je("FST_ERR_ROUTE_METHOD_INVALID","Provided method is invalid!",500,TypeError),FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:je("FST_ERR_ROUTE_METHOD_NOT_SUPPORTED","%s method is not supported.",500),FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:je("FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED","Body validation schema for %s:%s route is not supported!",500),FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:je("FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT","'bodyLimit' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_HANDLER_TIMEOUT:je("FST_ERR_HANDLER_TIMEOUT","Request timed out after %s ms on route '%s'",503),FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:je("FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT","'handlerTimeout' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_ROUTE_REWRITE_NOT_STR:je("FST_ERR_ROUTE_REWRITE_NOT_STR",'Rewrite url for "%s" needs to be of type "string" but received "%s"',500,TypeError),FST_ERR_REOPENED_CLOSE_SERVER:je("FST_ERR_REOPENED_CLOSE_SERVER","Fastify has already been closed and cannot be reopened"),FST_ERR_REOPENED_SERVER:je("FST_ERR_REOPENED_SERVER","Fastify is already listening"),FST_ERR_INSTANCE_ALREADY_LISTENING:je("FST_ERR_INSTANCE_ALREADY_LISTENING","Fastify instance is already listening. %s"),FST_ERR_PLUGIN_VERSION_MISMATCH:je("FST_ERR_PLUGIN_VERSION_MISMATCH","fastify-plugin: %s - expected '%s' fastify version, '%s' is installed"),FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:je("FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE","The decorator '%s'%s is not present in %s"),FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:je("FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER","The %s plugin being registered mixes async and callback styles. Async plugin should not mix async and callback style.",500,TypeError),FST_ERR_PLUGIN_CALLBACK_NOT_FN:je("FST_ERR_PLUGIN_CALLBACK_NOT_FN","fastify-plugin: %s",500,TypeError),FST_ERR_PLUGIN_NOT_VALID:je("FST_ERR_PLUGIN_NOT_VALID","fastify-plugin: %s"),FST_ERR_ROOT_PLG_BOOTED:je("FST_ERR_ROOT_PLG_BOOTED","fastify-plugin: %s"),FST_ERR_PARENT_PLUGIN_BOOTED:je("FST_ERR_PARENT_PLUGIN_BOOTED","fastify-plugin: %s"),FST_ERR_PLUGIN_TIMEOUT:je("FST_ERR_PLUGIN_TIMEOUT","fastify-plugin: %s")};function Wbn(e,t){return t.cause=e,t}vW.exports=rT;vW.exports.appendStackTrace=Wbn;vW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:rT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:rT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:rT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:rT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:rT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:rT.FST_ERR_PLUGIN_TIMEOUT}});var YS=w((nKr,MQe)=>{"use strict";var Kbn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],xQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],Ybn=xQe.concat(Kbn),{FST_ERR_HOOK_INVALID_TYPE:Zbn,FST_ERR_HOOK_INVALID_HANDLER:Jbn,FST_ERR_SEND_UNDEFINED_ERR:RW,FST_ERR_HOOK_TIMEOUT:Xbn,FST_ERR_HOOK_NOT_SUPPORTED:Qbn,AVVIO_ERRORS_MAP:wQe,appendStackTrace:kQe}=Ko(),{kChildren:hM,kHooks:OQe,kRequestPayloadStream:IQe}=$s();function mM(){this.onRequest=[],this.preParsing=[],this.preValidation=[],this.preSerialization=[],this.preHandler=[],this.onResponse=[],this.onSend=[],this.onError=[],this.onRoute=[],this.onRegister=[],this.onReady=[],this.onListen=[],this.onTimeout=[],this.onRequestAbort=[],this.preClose=[]}mM.prototype=Object.create(null);mM.prototype.validate=function(e,t){if(typeof e!="string")throw new Zbn;if(Array.isArray(this[e])===!1)throw new Qbn(e);if(typeof t!="function")throw new Jbn(e,Object.prototype.toString.call(t))};mM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function $bn(e){let t=new mM;return t.onRequest=e.onRequest.slice(),t.preParsing=e.preParsing.slice(),t.preValidation=e.preValidation.slice(),t.preSerialization=e.preSerialization.slice(),t.preHandler=e.preHandler.slice(),t.onSend=e.onSend.slice(),t.onResponse=e.onResponse.slice(),t.onError=e.onError.slice(),t.onRoute=e.onRoute.slice(),t.onRegister=e.onRegister.slice(),t.onTimeout=e.onTimeout.slice(),t.onRequestAbort=e.onRequestAbort.slice(),t.onReady=[],t.onListen=[],t.preClose=[],t}function PQe(e,t,n,r){let i=n[OQe][e],s=0,o=0;c();function a(l){let d=i[s-1]?.name,f=d?` "${d}"`:"";if(l){l.code==="AVV_ERR_READY_TIMEOUT"?l=kQe(l,new Xbn(e,f)):l=wQe[l.code]!=null?kQe(l,new wQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[hM].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";DQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var ace=w((iKr,FQe)=>{"use strict";var{kTestInternals:uEn}=$s();function UQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}FQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):UQe,[uEn]:{withResolvers:UQe}}});var ZQe=w((sKr,YQe)=>{"use strict";var lEn=K("node:http"),dEn=K("node:https"),jQe=K("node:http2"),fEn=K("node:dns"),pEn=K("node:os"),{kState:Ds,kOptions:hEn,kServerBindings:mEn,kHttp2ServerSessions:iT}=$s(),{FSTWRN003:gEn}=Pk(),{onListenHookRunner:AW}=YS(),{FST_ERR_REOPENED_CLOSE_SERVER:qQe,FST_ERR_REOPENED_SERVER:BQe,FST_ERR_LISTEN_OPTIONS_INVALID:yEn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:SEn}=Ko(),bEn=LQe(),zQe=ace();YQe.exports.createServer=EEn;function GQe(e){return`Server listening at ${e}`}function EEn(e,t){let n=WQe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&gEn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new yEn("Invalid options.signal");if(this[Ds].aborted=u.signal.aborted,this[Ds].aborted)return this.close();{let f=()=>{this[Ds].aborted=!0,this.close()};u.signal.addEventListener("abort",f,{once:!0})}}let d;if(u.path==null?d=u.host??"localhost":d=u.host,(!Object.hasOwn(u,"host")||u.host==null)&&(u.host=d),d==="localhost"?u.cb=(f,p)=>{if(f){l(f,p);return}HQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),AW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),AW(this)},l===void 0)return _En.call(this,n,u).then(p=>{let{promise:h,resolve:m}=zQe.withResolvers();return d==="localhost"?HQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),AW(this)}):(m(p),AW(this)),h});this.ready(VQe.call(this,n,u))}let i=typeof n.closeAllConnections=="function",s=typeof n.closeIdleConnections=="function",o=typeof n.closeHttp2Sessions=="function",a=e.forceCloseConnections;if(a==="idle"&&!s)throw new SEn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:bEn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function HQe(e,t,n,r,i){this[Ds].listening=!1,fEn.lookup(r.host,{all:!0},(s,o)=>{if(s||this[Ds].aborted){i();return}let a=e.listening&&n.serverFactory,c=0,u=0;if(!a){let d=e.address();for(let f of o)if(f.address!==d.address){c++;let p=Object.assign({},r,{host:f.address,port:d.port,cb:g=>{u++,g||this[mEn].push(h),u===c&&i()}}),h=WQe(n,t),m=()=>{h.close(()=>{}),typeof h.closeAllConnections=="function"&&n.forceCloseConnections===!0&&h.closeAllConnections(),typeof h.closeHttp2Sessions=="function"&&h.closeHttp2Sessions()};h.on("upgrade",e.emit.bind(e,"upgrade")),e.on("unref",m),e.on("close",m),e.on("error",m),this[Ds].listening=!1,VQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function VQe(e,t){let n=r=>{if(e.removeListener("error",n),e.removeListener("listening",n),r)this[Ds].listening=!1,t.cb(r,null);else{let i=KQe.call(this,e,t.listenTextResolver||GQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new qQe,null);if(this[Ds].listening)return t.cb(new BQe,null);e.once("error",n),this[Ds].closing||(e.once("listening",n),e.listen(t),this[Ds].listening=!0)}}function _En(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new qQe):this[Ds].listening?Promise.reject(new BQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=zQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(KQe.call(this,e,t.listenTextResolver||GQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function WQe(e,t){if(e.serverFactory)return e.serverFactory(t,e);let n=e.https===!0?{}:e.https;if(e.http2){let i=typeof n=="object"?jQe.createSecureServer(n,t):jQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=vEn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?dEn.createServer(n,t):lEn.createServer(e.http,t);return r.keepAliveTimeout=e.keepAliveTimeout,r.requestTimeout=e.requestTimeout,r.setTimeout(e.connectionTimeout),e.maxRequestsPerSocket>0&&(r.maxRequestsPerSocket=e.maxRequestsPerSocket),r}function TEn(e){return e.address==="0.0.0.0"?Object.values(pEn.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function KQe(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=TEn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[hEn].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function vEn(e){return e[iT]=new Set,e.on("session",function(t){t.once("connect",function(){e[iT].add(t)}),t.once("close",function(){e[iT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[iT].delete(t)}),t.once("goaway",function(){e[iT].delete(t)})}),function(){if(e[iT].size!==0)for(let n of e[iT])n.close()}}});var lce=w((oKr,QQe)=>{"use strict";var cce=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,JQe=/^[\w!#$%&'*+.^`|~-]+$/,XQe=/^[\w!#$%&'*+.^`|~-]+\s*$/,uce=class{#t=!1;#n=!0;#i="";#e="";#r=new Map;#s;constructor(t){if(t==null||t===""||t==="undefined")return;let n=t.indexOf(";");if(n===-1){if(n=t.indexOf("/"),n===-1)return;let c=t.slice(0,n).trimStart().toLowerCase(),u=t.slice(n+1).trimEnd().toLowerCase();JQe.test(c)===!0&&XQe.test(u)===!0&&(this.#t=!0,this.#n=!1,this.#i=c,this.#e=u);return}let r=t.slice(0,n).toLowerCase(),i=t.slice(n+1).trim();if(n=r.indexOf("/"),n===-1)return;let s=r.slice(0,n).trimStart(),o=r.slice(n+1).trimEnd();if(JQe.test(s)===!1||XQe.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=cce.exec(i);for(;a;){let c=a[1],u=a[2];if(u[0]==='"'){if(u.at(-1)!=='"'){this.#r.set(c,"invalid quoted string"),a=cce.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=cce.exec(i)}}get[Symbol.toStringTag](){return"ContentType"}get isEmpty(){return this.#n}get isValid(){return this.#t}get mediaType(){return`${this.#i}/${this.#e}`}get type(){return this.#i}get subtype(){return this.#e}get parameters(){return this.#r}toString(){if(this.#s)return this.#s;let t=[];for(let[r,i]of this.#r.entries())t.push(`${r}="${i}"`);let n=[this.#i,"/",this.#e];return t.length>0&&(n.push("; "),n.push(t.join("; "))),this.#s=n.join(""),this.#s}};QQe.exports=uce});var wW=w((aKr,$Qe)=>{"use strict";var{kReplyHasStatusCode:REn}=$s();function AEn(e,t){if(!e[REn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}$Qe.exports={setErrorStatusCode:AEn}});var dce=w((cKr,t$e)=>{"use strict";var{kReplyIsError:e$e,kReplyHijacked:wEn}=$s(),{setErrorStatusCode:kEn}=wW(),IEn=K("node:diagnostics_channel"),yM=IEn.tracingChannel("fastify.request.handler");function xEn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[wEn]!==!0){n&&yM.asyncStart.publish(n);try{if(r!==void 0||t.sent===!1&&t.raw.headersSent===!1&&t.request.raw.aborted===!1&&t.request.socket&&!t.request.socket.destroyed)try{t.send(r)}catch(i){t[e$e]=!0,t.send(i)}}finally{n&&yM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,kEn(t,r),yM.error.publish(n),yM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[e$e]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&yM.asyncEnd.publish(n)}})}t$e.exports=xEn});var hce=w((uKr,r$e)=>{"use strict";var{kSchemaHeaders:xW,kSchemaParams:fce,kSchemaQuerystring:pce,kSchemaBody:sT,kSchemaResponse:n$e}=$s(),OEn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:PEn}=Ko(),{FSTWRN001:kW}=Pk();function NEn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[n$e]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!OEn.test(s))throw new PEn;if(o.content){let a={};for(let c of Object.keys(o.content)){let u=o.content[c].schema;a[c]=t({schema:u,url:r,method:n,httpStatus:s,contentType:c})}i[s]=a}else i[s]=t({schema:o,url:r,method:n,httpStatus:s});return i},{})}function CEn(e,t,n){let{schema:r}=e;if(!r)return;let{method:i,url:s}=e.config||{},o=r.headers;if(o&&(n||Object.getPrototypeOf(o)!==Object.prototype))e[xW]=t({schema:o,method:i,url:s,httpPart:"headers"});else if(o){let a={};Object.keys(o).forEach(c=>{a[c]=o[c]}),a.required instanceof Array&&(a.required=a.required.map(c=>c.toLowerCase())),o.properties&&(a.properties={},Object.keys(o.properties).forEach(c=>{a.properties[c.toLowerCase()]=o.properties[c]})),e[xW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&kW("headers",i,s);if(r.body){let a=r.body.content;if(a){let c={};for(let u of Object.keys(a)){let l=a[u].schema;c[u]=t({schema:l,method:i,url:s,httpPart:"body",contentType:u})}e[sT]=c}else e[sT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&kW("body",i,s);r.querystring?e[pce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&kW("querystring",i,s),r.params?e[fce]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&kW("params",i,s)}function IW(e,t,n){let r=t[n]===void 0,i;try{i=e?.(r?null:t[n])}catch(o){return o.statusCode=500,o}if(i&&typeof i.then=="function")return i.then(o=>s(o)).catch(o=>o);return s(i);function s(o){return o===!1?e.errors:o&&o.error?o.error:(o&&o.value&&(t[n]=o.value),!1)}}function OW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=IW(e[fce],t,"params");if(s)return typeof s.then!="function"?ZS(s,"params",e.schemaErrorFormatter):MEn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[sT]=="function")s=e[sT];else if(e[sT]){let a=FEn(t.headers["content-type"]),c=e[sT][a];c&&(s=c)}let o=IW(s,t,"body");if(o)return typeof o.then!="function"?ZS(o,"body",e.schemaErrorFormatter):DEn(o,e,t)}if(r||!n.skipQuery){let s=IW(e[pce],t,"query");if(s)return typeof s.then!="function"?ZS(s,"querystring",e.schemaErrorFormatter):LEn(s,e,t)}let i=IW(e[xW],t,"headers");return i?typeof i.then!="function"?ZS(i,"headers",e.schemaErrorFormatter):UEn(i,e,t):!1}function MEn(e,t,n){return e.then(r=>r?ZS(r,"params",t.schemaErrorFormatter):OW(t,n,{skipParams:!0}))}function DEn(e,t,n){return e.then(r=>r?ZS(r,"body",t.schemaErrorFormatter):OW(t,n,{skipParams:!0,skipBody:!0}))}function LEn(e,t,n){return e.then(r=>r?ZS(r,"querystring",t.schemaErrorFormatter):OW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function UEn(e,t,n){return e.then(r=>r?ZS(r,"headers",t.schemaErrorFormatter):!1)}function ZS(e,t,n){if(e instanceof Error)return e.statusCode=e.statusCode||400,e.code=e.code||"FST_ERR_VALIDATION",e.validationContext=e.validationContext||t,e;let r=n(e,t);return r.statusCode=r.statusCode||400,r.code=r.code||"FST_ERR_VALIDATION",r.validation=e,r.validationContext=t,r}function FEn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}r$e.exports={symbols:{bodySchema:sT,querystringSchema:pce,responseSchema:n$e,paramsSchema:fce,headersSchema:xW},compileSchemasForValidation:CEn,compileSchemasForSerialization:NEn,validate:OW}});var Sce=w((lKr,yce)=>{"use strict";var jEn=K("node:diagnostics_channel"),HEn=lce(),qEn=dce(),{validate:BEn}=hce(),{preValidationHookRunner:zEn,preHandlerHookRunner:GEn}=YS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:VEn}=Ko(),{setErrorStatusCode:i$e}=wW(),{kReplyIsError:bM,kRouteContext:Th,kFourOhFourContext:WEn,kSupportedHTTPMethods:s$e}=$s(),SM=jEn.tracingChannel("fastify.request.handler");function KEn(e,t,n){if(n.sent===!0)return;if(e!=null){n[bM]=!0,n.send(e);return}let r=t.method;if(this[s$e].bodyless.has(r)){Ck(t,n);return}if(this[s$e].bodywith.has(r)){let i=t.headers,s=i["content-type"];if(s===void 0){let a=i["content-length"];if(i["transfer-encoding"]===void 0&&(a===void 0||a==="0")){Ck(t,n);return}t[Th].contentTypeParser.run("",Ck,t,n);return}let o=new HEn(s);if(o.isValid===!1){n[bM]=!0,n.status(415).send(new VEn);return}t[Th].contentTypeParser.run(o.toString(),Ck,t,n);return}Ck(t,n)}function Ck(e,t){try{e[Th].preValidation!==null?zEn(e[Th].preValidation,e,t,mce):mce(null,e,t)}catch(n){mce(n,e,t)}}function mce(e,t,n){if(n.sent===!0)return;if(e!=null){n[bM]=!0,n.send(e);return}let r=BEn(n[Th],t);if(r&&typeof r.then=="function"||!1){let s=o$e.bind(null,t,n);r.then(s,s)}else o$e(t,n,r)}function o$e(e,t,n){if(n){if(t[Th].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[Th].preHandler!==null?GEn(e[Th].preHandler,e,t,gce):gce(null,e,t)}function gce(e,t,n){if(n.sent)return;let r=t[Th];if(!SM.hasSubscribers||r[WEn]===null)a$e(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};SM.start.runStores(i,a$e,void 0,e,t,n,i)}}function a$e(e,t,n,r){let i=t[Th];try{if(e!=null){n[bM]=!0,r&&(r.error=e,i$e(n,e),SM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,i$e(n,o),SM.error.publish(r)),n[bM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?qEn(s,n,r):n.send(s))}finally{r&&SM.end.publish(r)}}yce.exports=KEn;yce.exports[Symbol.for("internals")]={handler:Ck,preHandlerCallback:gce}});var u$e=w((dKr,c$e)=>{"use strict";function Mk(){}var YEn={fatal:Mk,error:Mk,warn:Mk,info:Mk,debug:Mk,trace:Mk};Object.defineProperty(c$e,"exports",{get(){return Object.create(YEn)}})});var Ece=w((fKr,f$e)=>{"use strict";var EM=e=>e&&typeof e.message=="string",bce=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return EM(n)?n:void 0}else return EM(t)?t:void 0},l$e=(e,t)=>{if(!EM(e))return"";let n=e.stack||"";if(t.has(e))return n+` -causes have become circular...`;let r=bce(e);return r?(t.add(e),n+` -caused by: `+l$e(r,t)):n},ZEn=e=>l$e(e,new Set),d$e=(e,t,n)=>{if(!EM(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=bce(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+d$e(i,t,s)}else return r},JEn=e=>d$e(e,new Set);f$e.exports={isErrorLike:EM,getErrorCause:bce,stackWithCauses:ZEn,messageWithCauses:JEn}});var _ce=w((pKr,h$e)=>{"use strict";var XEn=Symbol("circular-ref-tag"),PW=Symbol("pino-raw-err-ref"),p$e=Object.create({},{type:{enumerable:!0,writable:!0,value:void 0},message:{enumerable:!0,writable:!0,value:void 0},stack:{enumerable:!0,writable:!0,value:void 0},aggregateErrors:{enumerable:!0,writable:!0,value:void 0},raw:{enumerable:!1,get:function(){return this[PW]},set:function(e){this[PW]=e}}});Object.defineProperty(p$e,PW,{writable:!0,value:{}});h$e.exports={pinoErrProto:p$e,pinoErrorSymbols:{seen:XEn,rawSymbol:PW}}});var y$e=w((hKr,g$e)=>{"use strict";g$e.exports=vce;var{messageWithCauses:QEn,stackWithCauses:$En,isErrorLike:m$e}=Ece(),{pinoErrProto:e_n,pinoErrorSymbols:t_n}=_ce(),{seen:Tce}=t_n,{toString:n_n}=Object.prototype;function vce(e){if(!m$e(e))return e;e[Tce]=void 0;let t=Object.create(e_n);t.type=n_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=QEn(e),t.stack=$En(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>vce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];m$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,Tce)&&(t[n]=vce(r)):t[n]=r}return delete e[Tce],t.raw=e,t}});var b$e=w((mKr,S$e)=>{"use strict";S$e.exports=CW;var{isErrorLike:Rce}=Ece(),{pinoErrProto:r_n,pinoErrorSymbols:i_n}=_ce(),{seen:NW}=i_n,{toString:s_n}=Object.prototype;function CW(e){if(!Rce(e))return e;e[NW]=void 0;let t=Object.create(r_n);t.type=s_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=e.message,t.stack=e.stack,Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>CW(n))),Rce(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,NW)&&(t.cause=CW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];Rce(r)?Object.prototype.hasOwnProperty.call(r,NW)||(t[n]=CW(r)):t[n]=r}return delete e[NW],t.raw=e,t}});var v$e=w((gKr,T$e)=>{"use strict";T$e.exports={mapHttpRequest:o_n,reqSerializer:_$e};var Ace=Symbol("pino-raw-req-ref"),E$e=Object.create({},{id:{enumerable:!0,writable:!0,value:""},method:{enumerable:!0,writable:!0,value:""},url:{enumerable:!0,writable:!0,value:""},query:{enumerable:!0,writable:!0,value:""},params:{enumerable:!0,writable:!0,value:""},headers:{enumerable:!0,writable:!0,value:{}},remoteAddress:{enumerable:!0,writable:!0,value:""},remotePort:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Ace]},set:function(e){this[Ace]=e}}});Object.defineProperty(E$e,Ace,{writable:!0,value:{}});function _$e(e){let t=e.info||e.socket,n=Object.create(E$e);if(n.id=typeof e.id=="function"?e.id():e.id||(e.info?e.info.id:void 0),n.method=e.method,e.originalUrl)n.url=e.originalUrl;else{let r=e.path;n.url=typeof r=="string"?r:e.url?e.url.path||e.url:void 0}return e.query&&(n.query=e.query),e.params&&(n.params=e.params),n.headers=e.headers,n.remoteAddress=t&&t.remoteAddress,n.remotePort=t&&t.remotePort,n.raw=e.raw||e,n}function o_n(e){return{req:_$e(e)}}});var k$e=w((yKr,w$e)=>{"use strict";w$e.exports={mapHttpResponse:a_n,resSerializer:A$e};var wce=Symbol("pino-raw-res-ref"),R$e=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[wce]},set:function(e){this[wce]=e}}});Object.defineProperty(R$e,wce,{writable:!0,value:{}});function A$e(e){let t=Object.create(R$e);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function a_n(e){return{res:A$e(e)}}});var Ice=w((SKr,I$e)=>{"use strict";var kce=y$e(),c_n=b$e(),MW=v$e(),DW=k$e();I$e.exports={err:kce,errWithCause:c_n,mapHttpRequest:MW.mapHttpRequest,mapHttpResponse:DW.mapHttpResponse,req:MW.reqSerializer,res:DW.resSerializer,wrapErrorSerializer:function(t){return t===kce?t:function(r){return t(kce(r))}},wrapRequestSerializer:function(t){return t===MW.reqSerializer?t:function(r){return t(MW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===DW.resSerializer?t:function(r){return t(DW.resSerializer(r))}}}});var xce=w((bKr,x$e)=>{"use strict";function u_n(e,t){return t}x$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=u_n;let n=new Error().stack;if(Error.prepareStackTrace=t,!Array.isArray(n))return;let r=n.slice(2),i=[];for(let s of r)s&&i.push(s.getFileName());return i}});var D$e=w((EKr,M$e)=>{"use strict";function Oce(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Array){let t=[];for(let n=0;n{let m=[...c.slice(0,d),...h];return n(p,m)}:n,i,s);else if(s)N$e(l,a);else{let f=typeof n=="function"?n(d_n(l,a),[...c.slice(0,d),...a]):n;P$e(l,a,f)}}if(o.length===0)u(e,0);else{let l=e;for(let d=0;d0)n?s===r&&(n=!1,r=""):(n=!0,r=s);else if(s==="["&&!n)t++;else if(s==="]"&&!n&&(t--,t<0))throw new Error(`Invalid redaction path (${e})`)}if(t!==0)throw new Error(`Invalid redaction path (${e})`)}function y_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)g_n(t)}function S_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;y_n(t);let o=h_n(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=m_n(c,o),l=c,d=n;return typeof n=="function"&&(d=n),f_n(u,t,d,s),r===!1?(u.restore=function(){return Oce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}M$e.exports=S_n});var Dk=w((_Kr,L$e)=>{"use strict";var b_n=Symbol("pino.setLevel"),E_n=Symbol("pino.getLevel"),__n=Symbol("pino.levelVal"),T_n=Symbol("pino.levelComp"),v_n=Symbol("pino.useLevelLabels"),R_n=Symbol("pino.useOnlyCustomLevels"),A_n=Symbol("pino.mixin"),w_n=Symbol("pino.lsCache"),k_n=Symbol("pino.chindings"),I_n=Symbol("pino.asJson"),x_n=Symbol("pino.write"),O_n=Symbol("pino.redactFmt"),P_n=Symbol("pino.time"),N_n=Symbol("pino.timeSliceIndex"),C_n=Symbol("pino.stream"),M_n=Symbol("pino.stringify"),D_n=Symbol("pino.stringifySafe"),L_n=Symbol("pino.stringifiers"),U_n=Symbol("pino.end"),F_n=Symbol("pino.formatOpts"),j_n=Symbol("pino.messageKey"),H_n=Symbol("pino.errorKey"),q_n=Symbol("pino.nestedKey"),B_n=Symbol("pino.nestedKeyStr"),z_n=Symbol("pino.mixinMergeStrategy"),G_n=Symbol("pino.msgPrefix"),V_n=Symbol("pino.wildcardFirst"),W_n=Symbol.for("pino.serializers"),K_n=Symbol.for("pino.formatters"),Y_n=Symbol.for("pino.hooks"),Z_n=Symbol.for("pino.metadata");L$e.exports={setLevelSym:b_n,getLevelSym:E_n,levelValSym:__n,levelCompSym:T_n,useLevelLabelsSym:v_n,mixinSym:A_n,lsCacheSym:w_n,chindingsSym:k_n,asJsonSym:I_n,writeSym:x_n,serializersSym:W_n,redactFmtSym:O_n,timeSym:P_n,timeSliceIndexSym:N_n,streamSym:C_n,stringifySym:M_n,stringifySafeSym:D_n,stringifiersSym:L_n,endSym:U_n,formatOptsSym:F_n,messageKeySym:j_n,errorKeySym:H_n,nestedKeySym:q_n,wildcardFirstSym:V_n,needsMetadataGsym:Z_n,useOnlyCustomLevelsSym:R_n,formattersSym:K_n,hooksSym:Y_n,nestedKeyStrSym:B_n,mixinMergeStrategySym:z_n,msgPrefixSym:G_n}});var Nce=w((TKr,H$e)=>{"use strict";var U$e=D$e(),{redactFmtSym:J_n,wildcardFirstSym:UW}=Dk(),Pce=/[^.[\]]+|\[([^[\]]*?)\]/g,F$e="[Redacted]",j$e=!1;function X_n(e,t){let{paths:n,censor:r,remove:i}=Q_n(e),s=n.reduce((c,u)=>{Pce.lastIndex=0;let l=Pce.exec(u),d=Pce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=UW),d===null)return c[f]=null,c;if(c[f]===null)return c;let{index:p}=d,h=`${u.substr(p,u.length-1)}`;return c[f]=c[f]||[],f!==UW&&c[f].length===0&&c[f].push(...c[UW]||[]),f===UW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[J_n]:U$e({paths:n,censor:r,serialize:t,strict:j$e,remove:i})},a=(...c)=>t(typeof r=="function"?r(...c):r);return[...Object.keys(s),...Object.getOwnPropertySymbols(s)].reduce((c,u)=>{if(s[u]===null)c[u]=l=>a(l,[u]);else{let l=typeof r=="function"?(d,f)=>r(d,[u,...f]):r;c[u]=U$e({paths:s[u],censor:l,serialize:t,strict:j$e,remove:i})}return c},o)}function Q_n(e){if(Array.isArray(e))return e={paths:e,censor:F$e},e;let{paths:t,censor:n=F$e,remove:r}=e;if(Array.isArray(t)===!1)throw Error("pino \u2013 redact must contain an array of strings");return r===!0&&(n=void 0),{paths:t,censor:n,remove:r}}H$e.exports=X_n});var z$e=w((vKr,B$e)=>{"use strict";var $_n=()=>"",eTn=()=>`,"time":${Date.now()}`,tTn=()=>`,"time":${Math.round(Date.now()/1e3)}`,nTn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,rTn=1000000n,q$e=1000000000n,iTn=BigInt(Date.now())*rTn,sTn=process.hrtime.bigint(),oTn=()=>{let e=process.hrtime.bigint()-sTn,t=iTn+e,n=t/q$e,r=t%q$e,i=Number(n*1000n+r/1000000n),s=new Date(i),o=s.getUTCFullYear(),a=(s.getUTCMonth()+1).toString().padStart(2,"0"),c=s.getUTCDate().toString().padStart(2,"0"),u=s.getUTCHours().toString().padStart(2,"0"),l=s.getUTCMinutes().toString().padStart(2,"0"),d=s.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${o}-${a}-${c}T${u}:${l}:${d}.${r.toString().padStart(9,"0")}Z"`};B$e.exports={nullTime:$_n,epochTime:eTn,unixTime:tTn,isoTime:nTn,isoTimeNano:oTn}});var V$e=w((RKr,G$e)=>{"use strict";function aTn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}G$e.exports=cTn;function cTn(e,t,n){var r=n&&n.stringify||aTn,i=1;if(typeof e=="object"&&e!==null){var s=t.length+i;if(s===1)return e;var o=new Array(s);o[0]=r(e);for(var a=1;a-1?d:0,e.charCodeAt(p+1)){case 100:case 102:if(l>=c||t[l]==null)break;d=c||t[l]==null)break;d=c||t[l]===void 0)break;d",d=p+2,p++;break}u+=r(t[l]),d=p+2,p++;break;case 115:if(l>=c)break;d{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let t=function(n){if((n>0&&n<1/0)===!1)throw typeof n!="number"&&typeof n!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(e,0,0,Number(n))},e=new Int32Array(new SharedArrayBuffer(4));Cce.exports=t}else{let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let r=Date.now()+Number(t);for(;r>Date.now(););};Cce.exports=e}});var $$e=w((wKr,Q$e)=>{"use strict";var Si=K("fs"),uTn=K("events"),lTn=K("util").inherits,W$e=K("path"),Lce=Mce(),dTn=K("assert"),FW=100,jW=Buffer.allocUnsafe(0),fTn=16*1024,K$e="buffer",Y$e="utf8",[pTn,hTn]=(process.versions.node||"0.0").split(".").map(Number),mTn=pTn>=22&&hTn>=7;function Z$e(e,t){t._opening=!0,t._writing=!0,t._asyncDrainScheduled=!1;function n(s,o){if(s){t._reopening=!1,t._writing=!1,t._opening=!1,t.sync?process.nextTick(()=>{t.listenerCount("error")>0&&t.emit("error",s)}):t.emit("error",s);return}let a=t._reopening;t.fd=o,t.file=e,t._reopening=!1,t._opening=!1,t._writing=!1,t.sync?process.nextTick(()=>t.emit("ready")):t.emit("ready"),!t.destroyed&&(!t._writing&&t._len>t.minLength||t._flushPending?t._actualWrite():a&&process.nextTick(()=>t.emit("drain")))}let r=t.append?"a":"w",i=t.mode;if(t.sync)try{t.mkdir&&Si.mkdirSync(W$e.dirname(e),{recursive:!0});let s=Si.openSync(e,r,i);n(null,s)}catch(s){throw n(s),s}else t.mkdir?Si.mkdir(W$e.dirname(e),{recursive:!0},s=>{if(s)return n(s);Si.open(e,r,i,n)}):Si.open(e,r,i,n)}function Pf(e){if(!(this instanceof Pf))return new Pf(e);let{fd:t,dest:n,minLength:r,maxLength:i,maxWrite:s,periodicFlush:o,sync:a,append:c=!0,mkdir:u,retryEAGAIN:l,fsync:d,contentMode:f,mode:p}=e||{};t=t||n,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(r||0,16387),this.file=null,this.destroyed=!1,this.minLength=r||0,this.maxLength=i||0,this.maxWrite=s||fTn,this._periodicFlush=o||0,this._periodicFlushTimer=void 0,this.sync=a||!1,this.writable=!0,this._fsync=d||!1,this.append=c||!1,this.mode=p,this.retryEAGAIN=l||(()=>!0),this.mkdir=u||!1;let h,m;if(f===K$e)this._writingBuf=jW,this.write=STn,this.flush=ETn,this.flushSync=TTn,this._actualWrite=RTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===Y$e)this._writingBuf="",this.write=yTn,this.flush=bTn,this.flushSync=_Tn,this._actualWrite=vTn,h=()=>Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8"),m=()=>Buffer.isBuffer(this._writingBuf)?Si.write(this.fd,this._writingBuf,this.release):Si.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${Y$e}" and "${K$e}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")Z$e(t,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(g,y)=>{if(g){if((g.code==="EAGAIN"||g.code==="EBUSY")&&this.retryEAGAIN(g,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{Lce(FW),this.release(void 0,0)}catch(E){this.release(E)}else setTimeout(m,FW);else this._writing=!1,this.emit("error",g);return}this.emit("write",y);let b=Dce(this._writingBuf,this._len,y);if(this._len=b.len,this._writingBuf=b.writingBuf,this._writingBuf.length){if(!this.sync){m();return}try{do{let E=h(),_=Dce(this._writingBuf,this._len,E);this._len=_.len,this._writingBuf=_.writingBuf}while(this._writingBuf.length)}catch(E){this.release(E);return}}this._fsync&&Si.fsyncSync(this.fd);let S=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):S>this.minLength?this._actualWrite():this._ending?S>0?this._actualWrite():(this._writing=!1,HW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(gTn,this)):this.emit("drain"))},this.on("newListener",function(g){g==="drain"&&(this._asyncDrainScheduled=!1)}),this._periodicFlush!==0&&(this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref())}function Dce(e,t,n){return typeof e=="string"&&(e=Buffer.from(e)),t=Math.max(t-n,0),e=e.subarray(n),{writingBuf:e,len:t}}function gTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}lTn(Pf,uTn);function J$e(e,t){return e.length===0?jW:e.length===1?e[0]:Buffer.concat(e,t)}function yTn(e){if(this.destroyed)throw new Error("SonicBoom destroyed");e=""+e;let t=Buffer.byteLength(e),n=this._len+t,r=this._bufs;return this.maxLength&&n>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(e):r[r.length-1]+=e,this._len=n,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(n.push([e]),r.push(e.length)):(n[n.length-1].push(e),r[r.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{if(this._fsync)this._flushPending=!1,e();else try{Si.fsync(this.fd,r=>{this._flushPending=!1,e(r)})}catch(r){e(r)}this.off("error",n)},n=r=>{this._flushPending=!1,e(r),this.off("drain",t)};this.once("drain",t),this.once("error",n)}function bTn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&X$e.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function ETn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&X$e.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}Pf.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&Si.close(t,n=>{if(n)return this.emit("error",n)})}),Z$e(this.file,this)};Pf.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():HW(this)))};function _Tn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e.length;){e.length<=0&&(e=this._bufs[0]);try{let t=Buffer.isBuffer(e)?Si.writeSync(this.fd,e):Si.writeSync(this.fd,e,"utf8"),n=Dce(e,this._len,t);e=n.writingBuf,this._len=n.len,e.length<=0&&this._bufs.shift()}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;Lce(FW)}}try{Si.fsyncSync(this.fd)}catch{}}function TTn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=jW);let e=jW;for(;this._bufs.length||e.length;){e.length<=0&&(e=J$e(this._bufs[0],this._lens[0]));try{let t=Si.writeSync(this.fd,e);e=e.subarray(t),this._len=Math.max(this._len-t,0),e.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;Lce(FW)}}}Pf.prototype.destroy=function(){this.destroyed||HW(this)};function vTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let t=Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else Si.write(this.fd,this._writingBuf,e)}function RTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:J$e(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=Si.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else mTn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function HW(e){if(e.fd===-1){e.once("ready",HW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],dTn(typeof e.fd=="number",`sonic.fd must be a number, got ${typeof e.fd}`);try{Si.fsync(e.fd,t)}catch{}function t(){e.fd!==1&&e.fd!==2?Si.close(e.fd,n):n()}function n(r){if(r){e.emit("error",r);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}Pf.SonicBoom=Pf;Pf.default=Pf;Q$e.exports=Pf});var Uce=w((kKr,iet)=>{"use strict";var Nf={exit:[],beforeExit:[]},eet={exit:kTn,beforeExit:ITn},Lk;function ATn(){Lk===void 0&&(Lk=new FinalizationRegistry(xTn))}function wTn(e){Nf[e].length>0||process.on(e,eet[e])}function tet(e){Nf[e].length>0||(process.removeListener(e,eet[e]),Nf.exit.length===0&&Nf.beforeExit.length===0&&(Lk=void 0))}function kTn(){net("exit")}function ITn(){net("beforeExit")}function net(e){for(let t of Nf[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Nf[e]=[]}function xTn(e){for(let t of["exit","beforeExit"]){let n=Nf[t].indexOf(e);Nf[t].splice(n,n+1),tet(t)}}function ret(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");wTn(e);let r=new WeakRef(t);r.fn=n,ATn(),Lk.register(t,r),Nf[e].push(r)}function OTn(e,t){ret("exit",e,t)}function PTn(e,t){ret("beforeExit",e,t)}function NTn(e){if(Lk!==void 0){Lk.unregister(e);for(let t of["exit","beforeExit"])Nf[t]=Nf[t].filter(n=>{let r=n.deref();return r&&r!==e}),tet(t)}}iet.exports={register:OTn,registerBeforeExit:PTn,unregister:NTn}});var set=w((IKr,CTn)=>{CTn.exports={name:"thread-stream",version:"4.0.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^22.0.0","@yao-pkg/pkg":"^6.0.0",borp:"^0.21.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",husky:"^9.0.6",neostandard:"^0.12.2","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:"npm run lint && npm run build && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:ci":"npm run lint && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:yarn":"npm run transpile && borp --pattern 'test/*.test.js'",transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina ",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var aet=w((xKr,oet)=>{"use strict";function MTn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{let a=Atomics.load(e,t);if(a===n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,a,c);u.async?u.value.then(o):setImmediate(o)};o()}function DTn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{if(Atomics.load(e,t)!==n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,n,c);u.async?u.value.then(o):setImmediate(o)};o()}oet.exports={wait:MTn,waitDiff:DTn}});var uet=w((OKr,cet)=>{"use strict";cet.exports={WRITE_INDEX:4,READ_INDEX:8}});var met=w((PKr,het)=>{"use strict";var{version:LTn}=set(),{EventEmitter:UTn}=K("events"),{Worker:FTn}=K("worker_threads"),{join:jTn}=K("path"),{pathToFileURL:HTn}=K("url"),{wait:qTn}=aet(),{WRITE_INDEX:xu,READ_INDEX:Iu}=uet(),BTn=K("buffer"),zTn=K("assert"),be=Symbol("kImpl"),GTn=BTn.constants.MAX_STRING_LENGTH,_M=class{constructor(t){this._value=t}deref(){return this._value}},BW=class{register(){}unregister(){}},VTn=process.env.NODE_V8_COVERAGE?BW:global.FinalizationRegistry||BW,WTn=process.env.NODE_V8_COVERAGE?_M:global.WeakRef||_M,det=new VTn(e=>{e.exited||e.terminate()});function KTn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||jTn(__dirname,"lib","worker.js"),o=new FTn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:HTn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:LTn},...r}}});return o.stream=new _M(e),o.on("message",YTn),o.on("exit",pet),det.register(e,o),o}function fet(e){zTn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function qW(e){let t=Atomics.load(e[be].state,xu),n=e[be].data.length-t;if(n>0){if(e[be].buf.length===0){e[be].flushing=!1,e[be].ending?Bce(e):e[be].needDrain&&process.nextTick(fet,e);return}let r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[be].buf=e[be].buf.slice(n),zW(e,r,qW.bind(null,e))):e.flush(()=>{if(!e.destroyed){for(Atomics.store(e[be].state,Iu,0),Atomics.store(e[be].state,xu,0),Atomics.notify(e[be].state,Iu);i>e[be].data.length;)n=n/2,r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);e[be].buf=e[be].buf.slice(n),zW(e,r,qW.bind(null,e))}})}else if(n===0){if(t===0&&e[be].buf.length===0)return;e.flush(()=>{Atomics.store(e[be].state,Iu,0),Atomics.store(e[be].state,xu,0),Atomics.notify(e[be].state,Iu),qW(e)})}else vh(e,new Error("overwritten"))}function YTn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new WTn(t),t.flush(()=>{t[be].ready=!0,t.emit("ready")});break;case"ERROR":vh(t,e.err);break;case"EVENT":Array.isArray(e.args)?t.emit(e.name,...e.args):t.emit(e.name,e.args);break;case"WARNING":process.emitWarning(e.err);break;default:vh(t,new Error("this should not happen: "+e.code))}}function pet(e){let t=this.stream.deref();t!==void 0&&(det.unregister(t),t.worker.exited=!0,t.worker.off("exit",pet),vh(t,e!==0?new Error("the worker thread exited"):null))}var jce=class extends UTn{constructor(t={}){if(super(),t.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[be]={},this[be].stateBuf=new SharedArrayBuffer(128),this[be].state=new Int32Array(this[be].stateBuf),this[be].dataBuf=new SharedArrayBuffer(t.bufferSize||4*1024*1024),this[be].data=Buffer.from(this[be].dataBuf),this[be].sync=t.sync||!1,this[be].ending=!1,this[be].ended=!1,this[be].needDrain=!1,this[be].destroyed=!1,this[be].flushing=!1,this[be].ready=!1,this[be].finished=!1,this[be].errored=null,this[be].closed=!1,this[be].buf="",this.worker=KTn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return Hce(this,new Error("the worker has exited")),!1;if(this[be].ending)return Hce(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=GTn)try{Fce(this),this[be].flushing=!0}catch(n){return vh(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return Fce(this),!0}catch(n){return vh(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(qW,this)),this[be].needDrain=this[be].data.length-this[be].buf.length-Atomics.load(this[be].state,xu)<=0,!this[be].needDrain}end(){this[be].destroyed||(this[be].ending=!0,Bce(this))}flush(t){if(this[be].destroyed){typeof t=="function"&&process.nextTick(t,new Error("the worker has exited"));return}let n=Atomics.load(this[be].state,xu);qTn(this[be].state,Iu,n,1/0,(r,i)=>{if(r){vh(this,r),process.nextTick(t,r);return}if(i==="not-equal"){this.flush(t);return}process.nextTick(t)})}flushSync(){this[be].destroyed||(Fce(this),qce(this))}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[be].ready}get destroyed(){return this[be].destroyed}get closed(){return this[be].closed}get writable(){return!this[be].destroyed&&!this[be].ending}get writableEnded(){return this[be].ending}get writableFinished(){return this[be].finished}get writableNeedDrain(){return this[be].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[be].errored}};function Hce(e,t){setImmediate(()=>{e.emit("error",t)})}function vh(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,Hce(e,t)),e.worker.exited?setImmediate(()=>{e[be].closed=!0,e.emit("close")}):e.worker.terminate().catch(()=>{}).then(()=>{e[be].closed=!0,e.emit("close")}))}function zW(e,t,n){let r=Atomics.load(e[be].state,xu),i=Buffer.byteLength(t);return e[be].data.write(t,r),Atomics.store(e[be].state,xu,r+i),Atomics.notify(e[be].state,xu),n(),!0}function Bce(e){if(!(e[be].ended||!e[be].ending||e[be].flushing)){e[be].ended=!0;try{e.flushSync();let t=Atomics.load(e[be].state,Iu);Atomics.store(e[be].state,xu,-1),Atomics.notify(e[be].state,xu);let n=0;for(;t!==-1;){if(Atomics.wait(e[be].state,Iu,t,1e3),t=Atomics.load(e[be].state,Iu),t===-2){vh(e,new Error("end() failed"));return}if(++n===10){vh(e,new Error("end() took too long (10s)"));return}}process.nextTick(()=>{e[be].finished=!0,e.emit("finish")})}catch(t){vh(e,t)}}}function Fce(e){let t=()=>{e[be].ending?Bce(e):e[be].needDrain&&process.nextTick(fet,e)};for(e[be].flushing=!1;e[be].buf.length!==0;){let n=Atomics.load(e[be].state,xu),r=e[be].data.length-n;if(r===0){qce(e),Atomics.store(e[be].state,Iu,0),Atomics.store(e[be].state,xu,0),Atomics.notify(e[be].state,Iu);continue}else if(r<0)throw new Error("overwritten");let i=e[be].buf.slice(0,r),s=Buffer.byteLength(i);if(s<=r)e[be].buf=e[be].buf.slice(r),zW(e,i,t);else{for(qce(e),Atomics.store(e[be].state,Iu,0),Atomics.store(e[be].state,xu,0),Atomics.notify(e[be].state,Iu);s>e[be].buf.length;)r=r/2,i=e[be].buf.slice(0,r),s=Buffer.byteLength(i);e[be].buf=e[be].buf.slice(r),zW(e,i,t)}}}function qce(e){if(e[be].flushing)throw new Error("unable to flush while flushing");let t=Atomics.load(e[be].state,xu),n=0;for(;;){let r=Atomics.load(e[be].state,Iu);if(r===-2)throw Error("_flushSync failed");if(r!==t)Atomics.wait(e[be].state,Iu,r,1e3);else break;if(++n===10)throw new Error("_flushSync took too long (10s)")}}het.exports=jce});var Vce=w((NKr,bet)=>{"use strict";var{createRequire:ZTn}=K("module"),{existsSync:JTn}=K("node:fs"),XTn=xce(),{join:zce,isAbsolute:yet,sep:QTn}=K("node:path"),{fileURLToPath:$Tn}=K("node:url"),evn=Mce(),Gce=Uce(),tvn=met();function nvn(e){Gce.register(e,avn),Gce.registerBeforeExit(e,cvn),e.on("close",function(){Gce.unregister(e)})}function rvn(){let e=process.execArgv;for(let t=0;th.target).map(h=>({...h,target:p(h.target)})),c.pipelines=n.filter(h=>h.pipeline).map(h=>h.pipeline.map(m=>({...m,level:h.level,target:p(m.target)})))):t&&(d=l["pino-worker"]||zce(__dirname,"worker.js"),c.pipelines=[t.map(h=>({...h,target:p(h.target)}))]),r&&(c.levels=r),i&&(c.dedupe=i),c.pinoWillSendConfig=!0;let f=n||t?"pino.transport":d;return ovn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,yet(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return zce(__dirname,"..","file.js");let m;for(let g of u)try{let y=g==="node:repl"?process.cwd()+QTn:g;m=ZTn(y).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}bet.exports=uvn});var WW=w((MKr,Net)=>{"use strict";var lvn=K("node:diagnostics_channel"),Eet=V$e(),{mapHttpRequest:dvn,mapHttpResponse:fvn}=Ice(),Kce=$$e(),_et=Uce(),{lsCacheSym:pvn,chindingsSym:wet,writeSym:Tet,serializersSym:ket,formatOptsSym:vet,endSym:hvn,stringifiersSym:Iet,stringifySym:xet,stringifySafeSym:Yce,wildcardFirstSym:Oet,nestedKeySym:mvn,formattersSym:Pet,messageKeySym:gvn,errorKeySym:yvn,nestedKeyStrSym:Svn,msgPrefixSym:GW}=Dk(),{isMainThread:bvn}=K("worker_threads"),Evn=Vce(),[_vn]=process.versions.node.split(".").map(e=>Number(e)),Ret=lvn.tracingChannel("pino_asJson"),Wce=_vn>=25?e=>JSON.stringify(e):vvn;function Uk(){}function Tvn(e,t){if(!t)return n;return function(...i){t.call(this,i,n,e)};function n(r,...i){if(typeof r=="object"){let s=r;r!==null&&(r.method&&r.headers&&r.socket?r=dvn(r):typeof r.setHeader=="function"&&(r=fvn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[GW]=="string"&&s!==void 0&&s!==null&&(s=this[GW]+s),this[Tet](r,Eet(s,o,this[vet]),e)}else{let s=r===void 0?i.shift():r;typeof this[GW]=="string"&&s!==void 0&&s!==null&&(s=this[GW]+s),this[Tet](null,Eet(s,i,this[vet]),e)}}}function vvn(e){let t="",n=0,r=!1,i=255,s=e.length;if(s>100)return JSON.stringify(e);for(var o=0;o=32;o++)i=e.charCodeAt(o),(i===34||i===92)&&(t+=e.slice(n,o)+"\\",n=o,r=!0);return r?t+=e.slice(n):t=e,i<32?JSON.stringify(e):'"'+t+'"'}function Rvn(e,t,n,r){if(Ret.hasSubscribers===!1)return Aet.call(this,e,t,n,r);let i={instance:this,arguments};return Ret.traceSync(Aet,i,this,e,t,n,r)}function Aet(e,t,n,r){let i=this[xet],s=this[Yce],o=this[Iet],a=this[hvn],c=this[wet],u=this[ket],l=this[Pet],d=this[gvn],f=this[yvn],p=this[pvn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[Oet],g="";for(let b in e)if(h=e[b],Object.prototype.hasOwnProperty.call(e,b)&&h!==void 0){u[b]?h=u[b](h):b===f&&u.err&&(h=u.err(h));let S=o[b]||m;switch(typeof h){case"undefined":case"function":continue;case"number":Number.isFinite(h)===!1&&(h=null);case"boolean":S&&(h=S(h));break;case"string":h=(S||Wce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let E=Wce(b);g+=","+E+":"+h}let y="";if(t!==void 0){h=u[d]?u[d](t):t;let b=o[d]||m;switch(typeof h){case"function":break;case"number":Number.isFinite(h)===!1&&(h=null);case"boolean":b&&(h=b(h)),y=',"'+d+'":'+h;break;case"string":h=(b||Wce)(h),y=',"'+d+'":'+h;break;default:h=(b||i)(h,s),y=',"'+d+'":'+h}}return this[mvn]&&g?p+this[Svn]+g.slice(1)+"}"+y+a:p+g+y+a}function Avn(e,t){let n,r=e[wet],i=e[xet],s=e[Yce],o=e[Iet],a=o[Oet],c=e[ket],u=e[Pet].bindings;t=u(t);for(let l in t)if(n=t[l],((l.length<5||l!=="level"&&l!=="serializers"&&l!=="formatters"&&l!=="customLevels")&&t.hasOwnProperty(l)&&n!==void 0)===!0){if(n=c[l]?c[l](n):n,n=(o[l]||a||i)(n,s),n===void 0)continue;r+=',"'+l+'":'+n}return r}function wvn(e){return e.write!==e.constructor.prototype.write}function VW(e){let t=new Kce(e);return t.on("error",n),!e.sync&&bvn&&(_et.register(t,kvn),t.on("close",function(){_et.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Uk,t.end=Uk,t.flushSync=Uk,t.destroy=Uk;return}t.removeListener("error",n),t.emit("error",r)}}function kvn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function Ivn(e){return function(n,r,i={},s){if(typeof i=="string")s=VW({dest:i}),i={};else if(typeof s=="string"){if(i&&i.transport)throw Error("only one of option.transport or stream can be specified");s=VW({dest:s})}else if(i instanceof Kce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Kce||i.transport.writable||i.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(i.transport.targets&&i.transport.targets.length&&i.formatters&&typeof i.formatters.level=="function")throw Error("option.transport.targets do not allow custom level formatters");let c;i.customLevels&&(c=i.useOnlyCustomLevels?i.customLevels:Object.assign({},i.levels,i.customLevels)),s=Evn({caller:r,...i.transport,levels:c})}if(i=Object.assign({},e,i),i.serializers=Object.assign({},e.serializers,i.serializers),i.formatters=Object.assign({},e.formatters,i.formatters),i.prettyPrint)throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:o,onChild:a}=i;return o===!1&&(i.level="silent"),a||(i.onChild=Uk),s||(wvn(process.stdout)?s=process.stdout:s=VW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function xvn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Yce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Ovn(e,t,n){return{level:e,bindings:t,log:n}}function Pvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}Net.exports={noop:Uk,buildSafeSonicBoom:VW,asChindings:Avn,asJson:Rvn,genLog:Tvn,createArgsNormalizer:Ivn,stringify:xvn,buildFormatters:Ovn,normalizeDestFileDescriptor:Pvn}});var KW=w((DKr,Cet)=>{var Nvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},Cvn={ASC:"ASC",DESC:"DESC"};Cet.exports={DEFAULT_LEVELS:Nvn,SORTING_ORDER:Cvn}});var Xce=w((LKr,Uet)=>{"use strict";var{lsCacheSym:Mvn,levelValSym:Zce,useOnlyCustomLevelsSym:Dvn,streamSym:Lvn,formattersSym:Uvn,hooksSym:Fvn,levelCompSym:Met}=Dk(),{noop:jvn,genLog:oT}=WW(),{DEFAULT_LEVELS:Rh,SORTING_ORDER:Det}=KW(),Let={fatal:e=>{let t=oT(Rh.fatal,e);return function(...n){let r=this[Lvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>oT(Rh.error,e),warn:e=>oT(Rh.warn,e),info:e=>oT(Rh.info,e),debug:e=>oT(Rh.debug,e),trace:e=>oT(Rh.trace,e)},Jce=Object.keys(Rh).reduce((e,t)=>(e[Rh[t]]=t,e),{}),Hvn=Object.keys(Jce).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function qvn(e){let t=e[Uvn].level,{labels:n}=e.levels,r={};for(let i in n){let s=t(n[i],Number(i));r[i]=JSON.stringify(s).slice(0,-1)}return e[Mvn]=r,e}function Bvn(e,t){if(t)return!1;switch(e){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function zvn(e){let{labels:t,values:n}=this.levels;if(typeof e=="number"){if(t[e]===void 0)throw Error("unknown level value"+e);e=t[e]}if(n[e]===void 0)throw Error("unknown level "+e);let r=this[Zce],i=this[Zce]=n[e],s=this[Dvn],o=this[Met],a=this[Fvn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=jvn;continue}this[c]=Bvn(c,s)?Let[c](a):oT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Gvn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function Vvn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[Met](n,this[Zce])}function Wvn(e,t,n){return e===Det.DESC?t<=n:t>=n}function Kvn(e){return typeof e=="string"?Wvn.bind(null,e):e}function Yvn(e=null,t=!1){let n=e?Object.keys(e).reduce((s,o)=>(s[e[o]]=o,s),{}):null,r=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),t?null:Jce,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Rh,e);return{labels:r,values:i}}function Zvn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(Jce).map(s=>+s),1/0).includes(e))throw Error(`default level:${e} must be included in custom levels`);return}let r=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),n?null:Rh,t);if(!(e in r))throw Error(`default level:${e} must be included in custom levels`)}function Jvn(e,t){let{labels:n,values:r}=e;for(let i in t){if(i in r)throw Error("levels cannot be overridden");if(t[i]in n)throw Error("pre-existing level values cannot be used for new levels")}}function Xvn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(Det).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Uet.exports={initialLsCache:Hvn,genLsCache:qvn,levelMethods:Let,getLevel:Gvn,setLevel:zvn,isLevelEnabled:Vvn,mappings:Yvn,assertNoLevelCollisions:Jvn,assertDefaultLevelFound:Zvn,genLevelComparison:Kvn,assertLevelComparison:Xvn}});var Qce=w((UKr,Fet)=>{"use strict";Fet.exports={version:"10.3.1"}});var Wet=w((jKr,Vet)=>{"use strict";var{EventEmitter:Qvn}=K("node:events"),{lsCacheSym:$vn,levelValSym:eRn,setLevelSym:eue,getLevelSym:jet,chindingsSym:ZW,mixinSym:tRn,asJsonSym:qet,writeSym:nRn,mixinMergeStrategySym:rRn,timeSym:iRn,timeSliceIndexSym:sRn,streamSym:Bet,serializersSym:aT,formattersSym:TM,errorKeySym:oRn,messageKeySym:aRn,useOnlyCustomLevelsSym:cRn,needsMetadataGsym:uRn,redactFmtSym:lRn,stringifySym:dRn,formatOptsSym:fRn,stringifiersSym:pRn,msgPrefixSym:tue,hooksSym:hRn}=Dk(),{getLevel:mRn,setLevel:gRn,isLevelEnabled:yRn,mappings:SRn,initialLsCache:bRn,genLsCache:ERn,assertNoLevelCollisions:_Rn}=Xce(),{asChindings:nue,asJson:TRn,buildFormatters:$ce,stringify:Het,noop:zet}=WW(),{version:vRn}=Qce(),RRn=Nce(),ARn=class{},Get={constructor:ARn,child:wRn,bindings:kRn,setBindings:IRn,flush:PRn,isLevelEnabled:yRn,version:vRn,get level(){return this[jet]()},set level(e){this[eue](e)},get levelVal(){return this[eRn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[tue]},get[Symbol.toStringTag](){return"Pino"},[$vn]:bRn,[nRn]:ORn,[qet]:TRn,[jet]:mRn,[eue]:gRn};Object.setPrototypeOf(Get,Qvn.prototype);Vet.exports=function(){return Object.create(Get)};var YW=e=>e;function wRn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[aT],r=this[TM],i=Object.create(this);if(t==null)return i[TM].bindings!==YW&&(i[TM]=$ce(r.level,YW,r.log)),i[ZW]=nue(i,e),this.onChild!==zet&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[aT]=Object.create(null);for(let u in n)i[aT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:vM}=Object.prototype,uT=sue();uT.configure=sue;uT.stringify=uT;uT.default=uT;oue.stringify=uT;oue.configure=sue;Zet.exports=uT;var NRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function JS(e){return e.length<5e3&&!NRn.test(e)?`"${e}"`:JSON.stringify(e)}function rue(e,t){if(e.length>200||t)return e.sort(t);for(let n=1;nr;)e[i]=e[i-1],i--;e[i]=r}return e}var CRn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function iue(e){return CRn.call(e)!==void 0&&e.length!==0}function Ket(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function cT(e){return e===1?"1 item":`${e} items`}function URn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function FRn(e){if(vM.call(e,"strict")){let t=e.strict;if(typeof t!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(t)return n=>{let r=`Object can not safely be stringified. Received type ${typeof n}`;throw typeof n!="function"&&(r+=` (${n.toString()})`),new Error(r)}}}function sue(e){e={...e};let t=FRn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=MRn(e),r=LRn(e,"bigint"),i=DRn(e),s=typeof i=="function"?i:void 0,o=Yet(e,"maximumDepth"),a=Yet(e,"maximumBreadth");function c(p,h,m,g,y,b){let S=h[p];switch(typeof S=="object"&&S!==null&&typeof S.toJSON=="function"&&(S=S.toJSON(p)),S=g.call(h,p,S),typeof S){case"string":return JS(S);case"object":{if(S===null)return"null";if(m.indexOf(S)!==-1)return n;let E="",_=",",T=b;if(Array.isArray(S)){if(S.length===0)return"[]";if(o{"use strict";var bgn=eJe(),Egn=KV(),_gn=gk(),Tgn=lae(),vgn=pae(),Rgn=bae(),Of=XV(),uJe=cJe();Of.createWebSocketStream=bgn;Of.extension=Egn;Of.PerMessageDeflate=_gn;Of.Receiver=Tgn;Of.Sender=vgn;Of.Server=uJe;Of.subprotocol=Rgn;Of.WebSocket=Of;Of.WebSocketServer=uJe;lJe.exports=Of});var _ae=w((d4r,fJe)=>{fJe.exports=K("stream")});var SJe=w((f4r,yJe)=>{"use strict";function pJe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function hJe(e){for(var t=1;t0?this.tail.next=r:this.head=r,this.tail=r,++this.length}},{key:"unshift",value:function(n){var r={data:n,next:this.head};this.length===0&&(this.tail=r),this.head=r,++this.length}},{key:"shift",value:function(){if(this.length!==0){var n=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,n}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(n){if(this.length===0)return"";for(var r=this.head,i=""+r.data;r=r.next;)i+=n+r.data;return i}},{key:"concat",value:function(n){if(this.length===0)return $V.alloc(0);for(var r=$V.allocUnsafe(n>>>0),i=this.head,s=0;i;)Ngn(i.data,r,s),s+=i.data.length,i=i.next;return r}},{key:"consume",value:function(n,r){var i;return no.length?o.length:n;if(a===o.length?s+=o:s+=o.slice(0,n),n-=a,n===0){a===o.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(a));break}++i}return this.length-=i,s}},{key:"_getBuffer",value:function(n){var r=$V.allocUnsafe(n),i=this.head,s=1;for(i.data.copy(r),n-=i.data.length;i=i.next;){var o=i.data,a=n>o.length?o.length:n;if(o.copy(r,r.length-n,0,a),n-=a,n===0){a===o.length?(++s,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++s}return this.length-=s,r}},{key:Pgn,value:function(n,r){return Tae(this,hJe(hJe({},r),{},{depth:0,customInspect:!1}))}}]),e})()});var Rae=w((p4r,EJe)=>{"use strict";function Cgn(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(vae,this,e)):process.nextTick(vae,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?n._writableState?n._writableState.errorEmitted?process.nextTick(eW,n):(n._writableState.errorEmitted=!0,process.nextTick(bJe,n,s)):process.nextTick(bJe,n,s):t?(process.nextTick(eW,n),t(s)):process.nextTick(eW,n)}),this)}function bJe(e,t){vae(e,t),eW(e)}function eW(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function Mgn(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function vae(e,t){e.emit("error",t)}function Dgn(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}EJe.exports={destroy:Cgn,undestroy:Mgn,errorOrDestroy:Dgn}});var BS=w((h4r,vJe)=>{"use strict";var TJe={};function vd(e,t,n){n||(n=Error);function r(s,o,a){return typeof t=="string"?t:t(s,o,a)}class i extends n{constructor(o,a,c){super(r(o,a,c))}}i.prototype.name=n.name,i.prototype.code=e,TJe[e]=i}function _Je(e,t){if(Array.isArray(e)){let n=e.length;return e=e.map(r=>String(r)),n>2?`one of ${t} ${e.slice(0,n-1).join(", ")}, or `+e[n-1]:n===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function Lgn(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function Ugn(e,t,n){return(n===void 0||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function Fgn(e,t,n){return typeof n!="number"&&(n=0),n+t.length>e.length?!1:e.indexOf(t,n)!==-1}vd("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);vd("ERR_INVALID_ARG_TYPE",function(e,t,n){let r;typeof t=="string"&&Lgn(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be";let i;if(Ugn(e," argument"))i=`The ${e} ${r} ${_Je(t,"type")}`;else{let s=Fgn(e,".")?"property":"argument";i=`The "${e}" ${s} ${r} ${_Je(t,"type")}`}return i+=`. Received type ${typeof n}`,i},TypeError);vd("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");vd("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});vd("ERR_STREAM_PREMATURE_CLOSE","Premature close");vd("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});vd("ERR_MULTIPLE_CALLBACK","Callback called multiple times");vd("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");vd("ERR_STREAM_WRITE_AFTER_END","write after end");vd("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);vd("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);vd("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");vJe.exports.codes=TJe});var Aae=w((m4r,RJe)=>{"use strict";var jgn=BS().codes.ERR_INVALID_OPT_VALUE;function Hgn(e,t,n){return e.highWaterMark!=null?e.highWaterMark:t?e[n]:null}function qgn(e,t,n,r){var i=Hgn(t,r,n);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=r?n:"highWaterMark";throw new jgn(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}RJe.exports={getHighWaterMark:qgn}});var AJe=w((g4r,wae)=>{typeof Object.create=="function"?wae.exports=function(t,n){n&&(t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:wae.exports=function(t,n){if(n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}}});var J_=w((y4r,Iae)=>{try{if(kae=K("util"),typeof kae.inherits!="function")throw"";Iae.exports=kae.inherits}catch{Iae.exports=AJe()}var kae});var kJe=w((S4r,wJe)=>{wJe.exports=K("util").deprecate});var Pae=w((b4r,CJe)=>{"use strict";CJe.exports=gs;function xJe(e){var t=this;this.next=null,this.entry=null,this.finish=function(){hyn(t,e)}}var Tk;gs.WritableState=iM;var Bgn={deprecate:kJe()},OJe=_ae(),nW=K("buffer").Buffer,zgn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Ggn(e){return nW.from(e)}function Vgn(e){return nW.isBuffer(e)||e instanceof zgn}var Oae=Rae(),Wgn=Aae(),Kgn=Wgn.getHighWaterMark,zS=BS().codes,Ygn=zS.ERR_INVALID_ARG_TYPE,Zgn=zS.ERR_METHOD_NOT_IMPLEMENTED,Jgn=zS.ERR_MULTIPLE_CALLBACK,Xgn=zS.ERR_STREAM_CANNOT_PIPE,Qgn=zS.ERR_STREAM_DESTROYED,$gn=zS.ERR_STREAM_NULL_VALUES,eyn=zS.ERR_STREAM_WRITE_AFTER_END,tyn=zS.ERR_UNKNOWN_ENCODING,vk=Oae.errorOrDestroy;J_()(gs,OJe);function nyn(){}function iM(e,t,n){Tk=Tk||X_(),e=e||{},typeof n!="boolean"&&(n=t instanceof Tk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=Kgn(this,e,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var r=e.decodeStrings===!1;this.decodeStrings=!r,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(i){uyn(t,i)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new xJe(this)}iM.prototype.getBuffer=function(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};(function(){try{Object.defineProperty(iM.prototype,"buffer",{get:Bgn.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var tW;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(tW=Function.prototype[Symbol.hasInstance],Object.defineProperty(gs,Symbol.hasInstance,{value:function(t){return tW.call(this,t)?!0:this!==gs?!1:t&&t._writableState instanceof iM}})):tW=function(t){return t instanceof this};function gs(e){Tk=Tk||X_();var t=this instanceof Tk;if(!t&&!tW.call(gs,this))return new gs(e);this._writableState=new iM(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),OJe.call(this)}gs.prototype.pipe=function(){vk(this,new Xgn)};function ryn(e,t){var n=new eyn;vk(e,n),process.nextTick(t,n)}function iyn(e,t,n,r){var i;return n===null?i=new $gn:typeof n!="string"&&!t.objectMode&&(i=new Ygn("chunk",["string","Buffer"],n)),i?(vk(e,i),process.nextTick(r,i),!1):!0}gs.prototype.write=function(e,t,n){var r=this._writableState,i=!1,s=!r.objectMode&&Vgn(e);return s&&!nW.isBuffer(e)&&(e=Ggn(e)),typeof t=="function"&&(n=t,t=null),s?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=nyn),r.ending?ryn(this,n):(s||iyn(this,r,e,n))&&(r.pendingcb++,i=oyn(this,r,s,e,t,n)),i};gs.prototype.cork=function(){this._writableState.corked++};gs.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&PJe(this,e))};gs.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new tyn(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(gs.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function syn(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=nW.from(t,n)),t}Object.defineProperty(gs.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function oyn(e,t,n,r,i,s){if(!n){var o=syn(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var a=t.objectMode?1:r.length;t.length+=a;var c=t.length{"use strict";var myn=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};DJe.exports=Eh;var MJe=Mae(),Cae=Pae();J_()(Eh,MJe);for(Nae=myn(Cae.prototype),rW=0;rW{var sW=K("buffer"),_h=sW.Buffer;function LJe(e,t){for(var n in e)t[n]=e[n]}_h.from&&_h.alloc&&_h.allocUnsafe&&_h.allocUnsafeSlow?UJe.exports=sW:(LJe(sW,Dae),Dae.Buffer=Q_);function Q_(e,t,n){return _h(e,t,n)}Q_.prototype=Object.create(_h.prototype);LJe(_h,Q_);Q_.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return _h(e,t,n)};Q_.alloc=function(e,t,n){if(typeof e!="number")throw new TypeError("Argument must be a number");var r=_h(e);return t!==void 0?typeof n=="string"?r.fill(t,n):r.fill(t):r.fill(0),r};Q_.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return _h(e)};Q_.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return sW.SlowBuffer(e)}});var Fae=w(HJe=>{"use strict";var Uae=FJe().Buffer,jJe=Uae.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Syn(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function byn(e){var t=Syn(e);if(typeof t!="string"&&(Uae.isEncoding===jJe||!jJe(e)))throw new Error("Unknown encoding: "+e);return t||e}HJe.StringDecoder=sM;function sM(e){this.encoding=byn(e);var t;switch(this.encoding){case"utf16le":this.text=Ayn,this.end=wyn,t=4;break;case"utf8":this.fillLast=Tyn,t=4;break;case"base64":this.text=kyn,this.end=Iyn,t=3;break;default:this.write=xyn,this.end=Oyn;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Uae.allocUnsafe(t)}sM.prototype.write=function(e){if(e.length===0)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function Eyn(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function _yn(e,t,n){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function Tyn(e){var t=this.lastTotal-this.lastNeed,n=_yn(this,e,t);if(n!==void 0)return n;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function vyn(e,t){var n=Eyn(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function Ryn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Ayn(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function wyn(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function kyn(e,t){var n=(e.length-t)%3;return n===0?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function Iyn(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function xyn(e){return e.toString(this.encoding)}function Oyn(e){return e&&e.length?this.write(e):""}});var oW=w((T4r,zJe)=>{"use strict";var qJe=BS().codes.ERR_STREAM_PREMATURE_CLOSE;function Pyn(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i{"use strict";var aW;function GS(e,t,n){return t=Myn(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Myn(e){var t=Dyn(e,"string");return typeof t=="symbol"?t:String(t)}function Dyn(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Lyn=oW(),VS=Symbol("lastResolve"),$_=Symbol("lastReject"),oM=Symbol("error"),cW=Symbol("ended"),eT=Symbol("lastPromise"),jae=Symbol("handlePromise"),tT=Symbol("stream");function WS(e,t){return{value:e,done:t}}function Uyn(e){var t=e[VS];if(t!==null){var n=e[tT].read();n!==null&&(e[eT]=null,e[VS]=null,e[$_]=null,t(WS(n,!1)))}}function Fyn(e){process.nextTick(Uyn,e)}function jyn(e,t){return function(n,r){e.then(function(){if(t[cW]){n(WS(void 0,!0));return}t[jae](n,r)},r)}}var Hyn=Object.getPrototypeOf(function(){}),qyn=Object.setPrototypeOf((aW={get stream(){return this[tT]},next:function(){var t=this,n=this[oM];if(n!==null)return Promise.reject(n);if(this[cW])return Promise.resolve(WS(void 0,!0));if(this[tT].destroyed)return new Promise(function(o,a){process.nextTick(function(){t[oM]?a(t[oM]):o(WS(void 0,!0))})});var r=this[eT],i;if(r)i=new Promise(jyn(r,this));else{var s=this[tT].read();if(s!==null)return Promise.resolve(WS(s,!1));i=new Promise(this[jae])}return this[eT]=i,i}},GS(aW,Symbol.asyncIterator,function(){return this}),GS(aW,"return",function(){var t=this;return new Promise(function(n,r){t[tT].destroy(null,function(i){if(i){r(i);return}n(WS(void 0,!0))})})}),aW),Hyn),Byn=function(t){var n,r=Object.create(qyn,(n={},GS(n,tT,{value:t,writable:!0}),GS(n,VS,{value:null,writable:!0}),GS(n,$_,{value:null,writable:!0}),GS(n,oM,{value:null,writable:!0}),GS(n,cW,{value:t._readableState.endEmitted,writable:!0}),GS(n,jae,{value:function(s,o){var a=r[tT].read();a?(r[eT]=null,r[VS]=null,r[$_]=null,s(WS(a,!1))):(r[VS]=s,r[$_]=o)},writable:!0}),n));return r[eT]=null,Lyn(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=r[$_];s!==null&&(r[eT]=null,r[VS]=null,r[$_]=null,s(i)),r[oM]=i;return}var o=r[VS];o!==null&&(r[eT]=null,r[VS]=null,r[$_]=null,o(WS(void 0,!0))),r[cW]=!0}),t.on("readable",Fyn.bind(null,r)),r};GJe.exports=Byn});var ZJe=w((R4r,YJe)=>{"use strict";function WJe(e,t,n,r,i,s,o){try{var a=e[s](o),c=a.value}catch(u){n(u);return}a.done?t(c):Promise.resolve(c).then(r,i)}function zyn(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var s=e.apply(t,n);function o(c){WJe(s,r,i,o,a,"next",c)}function a(c){WJe(s,r,i,o,a,"throw",c)}o(void 0)})}}function KJe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Gyn(e){for(var t=1;t{"use strict";sXe.exports=nr;var Rk;nr.ReadableState=$Je;var A4r=K("events").EventEmitter,QJe=function(t,n){return t.listeners(n).length},cM=_ae(),uW=K("buffer").Buffer,Jyn=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function Xyn(e){return uW.from(e)}function Qyn(e){return uW.isBuffer(e)||e instanceof Jyn}var Hae=K("util"),An;Hae&&Hae.debuglog?An=Hae.debuglog("stream"):An=function(){};var $yn=SJe(),Kae=Rae(),eSn=Aae(),tSn=eSn.getHighWaterMark,lW=BS().codes,nSn=lW.ERR_INVALID_ARG_TYPE,rSn=lW.ERR_STREAM_PUSH_AFTER_EOF,iSn=lW.ERR_METHOD_NOT_IMPLEMENTED,sSn=lW.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Ak,qae,Bae;J_()(nr,cM);var aM=Kae.errorOrDestroy,zae=["error","close","destroy","pause","resume"];function oSn(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function $Je(e,t,n){Rk=Rk||X_(),e=e||{},typeof n!="boolean"&&(n=t instanceof Rk),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=tSn(this,e,"readableHighWaterMark",n),this.buffer=new $yn,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(Ak||(Ak=Fae().StringDecoder),this.decoder=new Ak(e.encoding),this.encoding=e.encoding)}function nr(e){if(Rk=Rk||X_(),!(this instanceof nr))return new nr(e);var t=this instanceof Rk;this._readableState=new $Je(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),cM.call(this)}Object.defineProperty(nr.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});nr.prototype.destroy=Kae.destroy;nr.prototype._undestroy=Kae.undestroy;nr.prototype._destroy=function(e,t){t(e)};nr.prototype.push=function(e,t){var n=this._readableState,r;return n.objectMode?r=!0:typeof e=="string"&&(t=t||n.defaultEncoding,t!==n.encoding&&(e=uW.from(e,t),t=""),r=!0),eXe(this,e,t,!1,r)};nr.prototype.unshift=function(e){return eXe(this,e,null,!0,!1)};function eXe(e,t,n,r,i){An("readableAddChunk",t);var s=e._readableState;if(t===null)s.reading=!1,uSn(e,s);else{var o;if(i||(o=aSn(s,t)),o)aM(e,o);else if(s.objectMode||t&&t.length>0)if(typeof t!="string"&&!s.objectMode&&Object.getPrototypeOf(t)!==uW.prototype&&(t=Xyn(t)),r)s.endEmitted?aM(e,new sSn):Gae(e,s,t,!0);else if(s.ended)aM(e,new rSn);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||t.length!==0?Gae(e,s,t,!1):Wae(e,s)):Gae(e,s,t,!1)}else r||(s.reading=!1,Wae(e,s))}return!s.ended&&(s.length=JJe?e=JJe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function XJe(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=cSn(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}nr.prototype.read=function(e){An("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return An("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Vae(this):dW(this),null;if(e=XJe(e,t),e===0&&t.ended)return t.length===0&&Vae(this),null;var r=t.needReadable;An("need readable",r),(t.length===0||t.length-e0?i=rXe(e,t):i=null,i===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&Vae(this)),i!==null&&this.emit("data",i),i};function uSn(e,t){if(An("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?dW(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,tXe(e)))}}function dW(e){var t=e._readableState;An("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(An("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(tXe,e))}function tXe(e){var t=e._readableState;An("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Yae(e)}function Wae(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(lSn,e,t))}function lSn(e,t){for(;!t.reading&&!t.ended&&(t.length1&&iXe(r.pipes,e)!==-1)&&!u&&(An("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function f(g){An("onerror",g),m(),e.removeListener("error",f),QJe(e,"error")===0&&aM(e,g)}oSn(e,"error",f);function p(){e.removeListener("finish",h),m()}e.once("close",p);function h(){An("onfinish"),e.removeListener("close",p),m()}e.once("finish",h);function m(){An("unpipe"),n.unpipe(e)}return e.emit("pipe",n),r.flowing||(An("pipe resume"),n.resume()),e};function dSn(e){return function(){var n=e._readableState;An("pipeOnDrain",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&QJe(e,"data")&&(n.flowing=!0,Yae(e))}}nr.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s0,r.flowing!==!1&&this.resume()):e==="readable"&&!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,An("on readable",r.length,r.reading),r.length?dW(this):r.reading||process.nextTick(fSn,this)),n};nr.prototype.addListener=nr.prototype.on;nr.prototype.removeListener=function(e,t){var n=cM.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(nXe,this),n};nr.prototype.removeAllListeners=function(e){var t=cM.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(nXe,this),t};function nXe(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function fSn(e){An("readable nexttick read 0"),e.read(0)}nr.prototype.resume=function(){var e=this._readableState;return e.flowing||(An("resume"),e.flowing=!e.readableListening,pSn(this,e)),e.paused=!1,this};function pSn(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(hSn,e,t))}function hSn(e,t){An("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Yae(e),t.flowing&&!t.reading&&e.read(0)}nr.prototype.pause=function(){return An("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(An("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Yae(e){var t=e._readableState;for(An("flow",t.flowing);t.flowing&&e.read()!==null;);}nr.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;e.on("end",function(){if(An("wrapped end"),n.decoder&&!n.ended){var o=n.decoder.end();o&&o.length&&t.push(o)}t.push(null)}),e.on("data",function(o){if(An("wrapped data"),n.decoder&&(o=n.decoder.write(o)),!(n.objectMode&&o==null)&&!(!n.objectMode&&(!o||!o.length))){var a=t.push(o);a||(r=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=(function(a){return function(){return e[a].apply(e,arguments)}})(i));for(var s=0;s=t.length?(t.decoder?n=t.buffer.join(""):t.buffer.length===1?n=t.buffer.first():n=t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n}function Vae(e){var t=e._readableState;An("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(mSn,t,e))}function mSn(e,t){if(An("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}typeof Symbol=="function"&&(nr.from=function(e,t){return Bae===void 0&&(Bae=ZJe()),Bae(nr,e,t)});function iXe(e,t){for(var n=0,r=e.length;n{"use strict";aXe.exports=eg;var fW=BS().codes,gSn=fW.ERR_METHOD_NOT_IMPLEMENTED,ySn=fW.ERR_MULTIPLE_CALLBACK,SSn=fW.ERR_TRANSFORM_ALREADY_TRANSFORMING,bSn=fW.ERR_TRANSFORM_WITH_LENGTH_0,pW=X_();J_()(eg,pW);function ESn(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit("error",new ySn);n.writechunk=null,n.writecb=null,t!=null&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";uXe.exports=uM;var cXe=Zae();J_()(uM,cXe);function uM(e){if(!(this instanceof uM))return new uM(e);cXe.call(this,e)}uM.prototype._transform=function(e,t,n){n(null,e)}});var mXe=w((x4r,hXe)=>{"use strict";var Jae;function TSn(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var pXe=BS().codes,vSn=pXe.ERR_MISSING_ARGS,RSn=pXe.ERR_STREAM_DESTROYED;function dXe(e){if(e)throw e}function ASn(e){return e.setHeader&&typeof e.abort=="function"}function wSn(e,t,n,r){r=TSn(r);var i=!1;e.on("close",function(){i=!0}),Jae===void 0&&(Jae=oW()),Jae(e,{readable:t,writable:n},function(o){if(o)return r(o);i=!0,r()});var s=!1;return function(o){if(!i&&!s){if(s=!0,ASn(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();r(o||new RSn("pipe"))}}}function fXe(e){e()}function kSn(e,t){return e.pipe(t)}function ISn(e){return!e.length||typeof e[e.length-1]!="function"?dXe:e.pop()}function xSn(){for(var e=arguments.length,t=new Array(e),n=0;n0;return wSn(o,c,u,function(l){i||(i=l),l&&s.forEach(fXe),!c&&(s.forEach(fXe),r(i))})});return t.reduce(kSn)}hXe.exports=xSn});var gXe=w((Rd,dM)=>{var lM=K("stream");process.env.READABLE_STREAM==="disable"&&lM?(dM.exports=lM.Readable,Object.assign(dM.exports,lM),dM.exports.Stream=lM):(Rd=dM.exports=Mae(),Rd.Stream=lM||Rd,Rd.Readable=Rd,Rd.Writable=Pae(),Rd.Duplex=X_(),Rd.Transform=Zae(),Rd.PassThrough=lXe(),Rd.finished=oW(),Rd.pipeline=mXe())});var bXe=w((O4r,SXe)=>{SXe.exports=yXe;function yXe(e,t){if(e&&t)return yXe(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(r){n[r]=e[r]}),n;function n(){for(var r=new Array(arguments.length),i=0;i{var EXe=bXe();Xae.exports=EXe(hW);Xae.exports.strict=EXe(_Xe);hW.proto=hW(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return hW(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return _Xe(this)},configurable:!0})});function hW(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function _Xe(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},n=e.name||"Function wrapped with `once`";return t.onceError=n+" shouldn't be called more than once",t.called=!1,t}});var AXe=w((N4r,RXe)=>{var OSn=TXe(),PSn=function(){},NSn=global.Bare?queueMicrotask:process.nextTick.bind(process),CSn=function(e){return e.setHeader&&typeof e.abort=="function"},MSn=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},vXe=function(e,t,n){if(typeof t=="function")return vXe(e,null,t);t||(t={}),n=OSn(n||PSn);var r=e._writableState,i=e._readableState,s=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,a=!1,c=function(){e.writable||u()},u=function(){o=!1,s||n.call(e)},l=function(){s=!1,o||n.call(e)},d=function(g){n.call(e,g?new Error("exited with error code: "+g):null)},f=function(g){n.call(e,g)},p=function(){NSn(h)},h=function(){if(!a){if(s&&!(i&&i.ended&&!i.destroyed))return n.call(e,new Error("premature close"));if(o&&!(r&&r.ended&&!r.destroyed))return n.call(e,new Error("premature close"))}},m=function(){e.req.on("finish",u)};return CSn(e)?(e.on("complete",u),e.on("abort",p),e.req?m():e.on("request",m)):o&&!r&&(e.on("end",c),e.on("close",c)),MSn(e)&&e.on("exit",d),e.on("end",l),e.on("finish",u),t.error!==!1&&e.on("error",f),e.on("close",p),function(){a=!0,e.removeListener("complete",u),e.removeListener("abort",p),e.removeListener("request",m),e.req&&e.req.removeListener("finish",u),e.removeListener("end",c),e.removeListener("close",c),e.removeListener("finish",u),e.removeListener("exit",d),e.removeListener("end",l),e.removeListener("error",f),e.removeListener("close",p)}};RXe.exports=vXe});var kXe=w((C4r,wXe)=>{wXe.exports=DSn;function DSn(e){var t=e._readableState;return t?t.objectMode||typeof e._duplexState=="number"?e.read():e.read(LSn(t)):null}function LSn(e){if(e.buffer.length){var t=e.bufferIndex||0;if(e.buffer.head)return e.buffer.head.data.length;if(e.buffer.length-t>0&&e.buffer[t])return e.buffer[t].length}return e.length}});var NXe=w((M4r,PXe)=>{var mW=gXe(),IXe=AXe(),USn=J_(),FSn=kXe(),xXe=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from([0]):new Buffer([0]),Qae=function(e,t){e._corked?e.once("uncork",t):t()},jSn=function(e,t){e._autoDestroy&&e.destroy(t)},OXe=function(e,t){return function(n){n?jSn(e,n.message==="premature close"?null:n):t&&!e._ended&&e.end()}},HSn=function(e,t){if(!e||e._writableState&&e._writableState.finished)return t();if(e._writableState)return e.end(t);e.end(),t()},qSn=function(){},BSn=function(e){return new mW.Readable({objectMode:!0,highWaterMark:16}).wrap(e)},_a=function(e,t,n){if(!(this instanceof _a))return new _a(e,t,n);mW.Duplex.call(this,n),this._writable=null,this._readable=null,this._readable2=null,this._autoDestroy=!n||n.autoDestroy!==!1,this._forwardDestroy=!n||n.destroy!==!1,this._forwardEnd=!n||n.end!==!1,this._corked=1,this._ondrain=null,this._drained=!1,this._forwarding=!1,this._unwrite=null,this._unread=null,this._ended=!1,this.destroyed=!1,e&&this.setWritable(e),t&&this.setReadable(t)};USn(_a,mW.Duplex);_a.obj=function(e,t,n){return n||(n={}),n.objectMode=!0,n.highWaterMark=16,new _a(e,t,n)};_a.prototype.cork=function(){++this._corked===1&&this.emit("cork")};_a.prototype.uncork=function(){this._corked&&--this._corked===0&&this.emit("uncork")};_a.prototype.setWritable=function(e){if(this._unwrite&&this._unwrite(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.end();return}var t=this,n=IXe(e,{writable:!0,readable:!1},OXe(this,this._forwardEnd)),r=function(){var s=t._ondrain;t._ondrain=null,s&&s()},i=function(){t._writable.removeListener("drain",r),n()};this._unwrite&&process.nextTick(r),this._writable=e,this._writable.on("drain",r),this._unwrite=i,this.uncork()};_a.prototype.setReadable=function(e){if(this._unread&&this._unread(),this.destroyed){e&&e.destroy&&e.destroy();return}if(e===null||e===!1){this.push(null),this.resume();return}var t=this,n=IXe(e,{writable:!1,readable:!0},OXe(this)),r=function(){t._forward()},i=function(){t.push(null)},s=function(){t._readable2.removeListener("readable",r),t._readable2.removeListener("end",i),n()};this._drained=!0,this._readable=e,this._readable2=e._readableState?e:BSn(e),this._readable2.on("readable",r),this._readable2.on("end",i),this._unread=s,this._forward()};_a.prototype._read=function(){this._drained=!0,this._forward()};_a.prototype._forward=function(){if(!(this._forwarding||!this._readable2||!this._drained)){this._forwarding=!0;for(var e;this._drained&&(e=FSn(this._readable2))!==null;)this.destroyed||(this._drained=this.push(e));this._forwarding=!1}};_a.prototype.destroy=function(e,t){if(t||(t=qSn),this.destroyed)return t(null);this.destroyed=!0;var n=this;process.nextTick(function(){n._destroy(e),t(null)})};_a.prototype._destroy=function(e){if(e){var t=this._ondrain;this._ondrain=null,t?t(e):this.emit("error",e)}this._forwardDestroy&&(this._readable&&this._readable.destroy&&this._readable.destroy(),this._writable&&this._writable.destroy&&this._writable.destroy()),this.emit("close")};_a.prototype._write=function(e,t,n){if(!this.destroyed){if(this._corked)return Qae(this,this._write.bind(this,e,t,n));if(e===xXe)return this._finish(n);if(!this._writable)return n();this._writable.write(e)===!1?this._ondrain=n:this.destroyed||n()}};_a.prototype._finish=function(e){var t=this;this.emit("preend"),Qae(this,function(){HSn(t._forwardEnd&&t._writable,function(){t._writableState.prefinished===!1&&(t._writableState.prefinished=!0),t.emit("prefinish"),Qae(t,e)})})};_a.prototype.end=function(e,t,n){return typeof e=="function"?this.end(null,null,e):typeof t=="function"?this.end(e,null,t):(this._ended=!0,e&&this.write(e),!this._writableState.ending&&!this._writableState.destroyed&&this.write(xXe),mW.Writable.prototype.end.call(this,n))};PXe.exports=_a});var LXe=w((D4r,yW)=>{"use strict";var{ServerResponse:zSn}=K("node:http"),{PassThrough:CXe}=K("node:stream"),{randomBytes:GSn}=K("node:crypto"),VSn=GC(),MXe=dJe(),DXe=NXe(),nT=Symbol("ws-socket"),gW=Symbol("ws-head"),WSn=/HTTP\/1.1 (\d+)/u;function $ae(e,t,n){e.decorateRequest("ws",null);let r=p;if(t.errorHandler){if(typeof t.errorHandler!="function")return n(new Error("invalid errorHandler function"));r=t.errorHandler}let i=d;if(t?.preClose){if(typeof t.preClose!="function")return n(new Error("invalid preClose function"));i=t.preClose}if(t.options?.noServer)return n(new Error("fastify-websocket doesn't support the ws noServer option. If you want to create a websocket server detatched from fastify, use the ws library directly."));let s=Object.assign({noServer:!0},t.options);s.path&&e.log.warn("ws server path option shouldn't be provided, use a route instead");let o=s.server||e.server;delete s.server;let a=new MXe.Server(s);e.decorate("websocketServer",a);async function c(h="/",m={},g={}){let y=new CXe,b=new CXe,S=new DXe(y,b),E=new DXe(b,y),_=new MXe(null,void 0,{isServer:!1}),T=Buffer.from([]),R,A,x=new Promise((N,C)=>{R=N,A=C});typeof g.onInit=="function"&&g.onInit(_),_.on("open",()=>{typeof g.onOpen=="function"&&g.onOpen(_),E.removeListener("data",k),R(_)});let k=N=>{if(N.toString().includes("HTTP/1.1 101 Switching Protocols"))_._isServer=!1,_.setSocket(E,T,{maxPayload:0});else{E.removeListener("data",k);let C=Number(WSn.exec(N.toString())[1]);A(new Error("Unexpected server response: "+C))}};E.on("data",k);let P={...m,method:"GET",headers:{...m.headers,connection:"upgrade",upgrade:"websocket","sec-websocket-version":13,"sec-websocket-key":GSn(16).toString("base64")},httpVersion:"1.1",url:h,[nT]:S,[gW]:T};return o.emit("upgrade",P,P[nT],P[gW]),x}e.decorate("injectWS",c);function u(h,m,g){h[nT]=m,h[gW]=g;let y=new zSn(h);try{y.assignSocket(m),e.routing(h,y)}catch(b){e.log.warn({err:b},"websocket upgrade failed")}}o.on("upgrade",u);let l=(h,m)=>{a.handleUpgrade(h,h[nT],h[gW],g=>{a.emit("connection",g,h),g.on("error",y=>{e.log.error(y)}),m(g)})};e.addHook("onRequest",(h,m,g)=>{h.raw[nT]?h.ws=!0:h.ws=!1,g()}),e.addHook("onResponse",(h,m,g)=>{h.ws&&h.raw[nT].destroy(),g()}),e.addHook("onRoute",h=>{let m=!1,g=h.wsHandler,y=h.handler;if(h.websocket||h.wsHandler){if(h.method==="HEAD")return;if(h.method!=="GET")throw new Error("websocket handler can only be declared in GET method");if(m=!0,h.websocket&&(h.schema||(h.schema={}),h.schema.hide=!0,g=h.handler,y=function(b,S){S.code(404).send()}),typeof g!="function")throw new TypeError("invalid wsHandler function")}h.handler=function(b,S){if(b.raw[nT])S.hijack(),l(b.raw,E=>{let _;try{m?_=g.call(this,E,b):_=f.call(this,E,b)}catch(T){return r.call(this,T,E,b,S)}_&&typeof _.catch=="function"&&_.catch(T=>r.call(this,T,E,b,S))});else return y.call(this,b,S)}}),e.addHook("preClose",i);function d(h){let m=this.websocketServer;if(m.clients)for(let g of m.clients)g.close();e.server.removeListener("upgrade",u),m.close(h),h()}function f(h,m){this.log.info({path:m.url},"closed incoming websocket connection for path with no websocket handler"),h.close()}function p(h,m,g){g.log.error(h),m.terminate()}n()}yW.exports=VSn($ae,{fastify:"5.x",name:"@fastify/websocket"});yW.exports.default=$ae;yW.exports.fastifyWebsocket=$ae});var FXe=w((L4r,UXe)=>{"use strict";function KSn(e){var t=new e,n=t;function r(){var s=t;return s.next?t=s.next:(t=new e,n=t),s.next=null,s}function i(s){n.next=s,n=s}return{get:r,release:i}}UXe.exports=KSn});var HXe=w((U4r,ece)=>{"use strict";var YSn=FXe();function jXe(e,t,n){if(typeof e=="function"&&(n=t,t=e,e=null),!(n>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var r=YSn(ZSn),i=null,s=null,o=0,a=null,c={push:m,drain:ku,saturated:ku,pause:l,paused:!1,get concurrency(){return n},set concurrency(T){if(!(T>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(n=T,!c.paused)for(;i&&o=n||c.paused?s?(s.next=A,s=A):(i=A,s=A,c.saturated()):(o++,t.call(e,A.value,A.worked))}function g(T,R){var A=r.get();A.context=e,A.release=y,A.value=T,A.callback=R||ku,A.errorHandler=a,o>=n||c.paused?i?(A.next=i,i=A):(i=A,s=A,c.saturated()):(o++,t.call(e,A.value,A.worked))}function y(T){T&&r.release(T);var R=i;R&&o<=n?c.paused?o--:(s===i&&(s=null),i=R.next,R.next=null,t.call(e,R.value,R.worked),s===null&&c.empty()):--o===0&&c.drain()}function b(){i=null,s=null,c.drain=ku}function S(){i=null,s=null,c.drain(),c.drain=ku}function E(){var T=i;for(i=null,s=null;T;){var R=T.next,A=T.callback,x=T.errorHandler,k=T.value,P=T.context;T.value=null,T.callback=ku,T.errorHandler=null,x&&x(new Error("abort"),k),A.call(P,new Error("abort")),T.release(T),T=R}c.drain=ku}function _(T){a=T}}function ku(){}function ZSn(){this.value=null,this.callback=ku,this.next=null,this.release=ku,this.context=null,this.errorHandler=null;var e=this;this.worked=function(n,r){var i=e.callback,s=e.errorHandler,o=e.value;e.value=null,e.callback=ku,e.errorHandler&&s(n,o),i.call(e.context,n,r),e.release(e)}}function JSn(e,t,n){typeof e=="function"&&(n=t,t=e,e=null);function r(l,d){t.call(this,l).then(function(f){d(null,f)},d)}var i=jXe(e,r,n),s=i.push,o=i.unshift;return i.push=a,i.unshift=c,i.drained=u,i;function a(l){var d=new Promise(function(f,p){s(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(ku),d}function c(l){var d=new Promise(function(f,p){o(l,function(h,m){if(h){p(h);return}f(m)})});return d.catch(ku),d}function u(){var l=new Promise(function(d){process.nextTick(function(){if(i.idle())d();else{var f=i.drain;i.drain=function(){typeof f=="function"&&f(),d(),i.drain=f}}})});return l}}ece.exports=jXe;ece.exports.promise=JSn});var bW=w((F4r,fM)=>{"use strict";var{format:XSn}=K("node:util");function QSn(){return`${this.name} [${this.code}]: ${this.message}`}var SW=Symbol.for("fastify-error-generic");function wk(e,t,n=500,r=Error,i=wk.captureStackTrace){let s=e===SW;if(s&&(e="FST_ERR"),!e)throw new Error("Fastify error code must not be empty");if(!t)throw new Error("Fastify error message must not be empty");e=e.toUpperCase(),!n&&(n=void 0);let o=Symbol.for(`fastify-error ${e}`);function a(...c){if(!new.target)return new a(...c);this.code=e,this.name="FastifyError",this.statusCode=n;let u=c.length-1;u!==-1&&c[u]&&typeof c[u]=="object"&&"cause"in c[u]&&(this.cause=c.pop().cause),this.message=XSn(t,...c),Error.stackTraceLimit&&i&&Error.captureStackTrace(this,a)}return a.prototype=Object.create(r.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0},[SW]:{value:!0,enumerable:!1,writable:!1,configurable:!1},[o]:{value:!0,enumerable:!1,writable:!1,configurable:!1}}),s?Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[SW]},configurable:!1,writable:!1,enumerable:!1}):Object.defineProperty(a,Symbol.hasInstance,{value(c){return c&&c[o]},configurable:!1,writable:!1,enumerable:!1}),a.prototype[Symbol.toStringTag]="Error",a.prototype.toString=QSn,a}wk.captureStackTrace=!0;var $Sn=wk(SW,"Fastify Error",500,Error);fM.exports=wk;fM.exports.FastifyError=$Sn;fM.exports.default=wk;fM.exports.createError=wk});var EW=w((j4r,qXe)=>{"use strict";var{createError:KS}=bW();qXe.exports={AVV_ERR_EXPOSE_ALREADY_DEFINED:KS("AVV_ERR_EXPOSE_ALREADY_DEFINED","'%s' is already defined, specify an expose option for '%s'"),AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:KS("AVV_ERR_ATTRIBUTE_ALREADY_DEFINED","'%s' is already defined"),AVV_ERR_CALLBACK_NOT_FN:KS("AVV_ERR_CALLBACK_NOT_FN","Callback for '%s' hook is not a function. Received: '%s'"),AVV_ERR_PLUGIN_NOT_VALID:KS("AVV_ERR_PLUGIN_NOT_VALID","Plugin must be a function or a promise. Received: '%s'"),AVV_ERR_ROOT_PLG_BOOTED:KS("AVV_ERR_ROOT_PLG_BOOTED","Root plugin has already booted"),AVV_ERR_PARENT_PLG_LOADED:KS("AVV_ERR_PARENT_PLG_LOADED","Impossible to load '%s' plugin because the parent '%s' was already loaded"),AVV_ERR_READY_TIMEOUT:KS("AVV_ERR_READY_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise"),AVV_ERR_PLUGIN_EXEC_TIMEOUT:KS("AVV_ERR_PLUGIN_EXEC_TIMEOUT","Plugin did not start in time: '%s'. You may have forgotten to call 'done' function or to resolve a Promise")}});var kk=w((H4r,BXe)=>{"use strict";var ebn=Symbol("avvio.Boot"),tbn=Symbol("isOnCloseHandler"),nbn=Symbol("avvio.ThenifyDoNotWrap"),rbn=Symbol("avvio.TimeTree.untrackNode"),ibn=Symbol("avvio.TimeTree.trackNode"),sbn=Symbol("avvio.TimeTree.getParent"),obn=Symbol("avvio.TimeTree.getNode"),abn=Symbol("avvio.TimeTree.addNode"),cbn=Symbol.for("plugin-meta");BXe.exports={kAvvio:ebn,kIsOnCloseHandler:tbn,kThenifyDoNotWrap:nbn,kUntrackNode:rbn,kTrackNode:ibn,kGetParent:sbn,kGetNode:obn,kAddNode:abn,kPluginMeta:cbn}});var ZXe=w((q4r,YXe)=>{"use strict";var{kUntrackNode:zXe,kTrackNode:tce,kGetParent:GXe,kGetNode:VXe,kAddNode:WXe}=kk(),nce=class{constructor(){this.root=null,this.tableId=new Map,this.tableLabel=new Map}[tce](t){this.tableId.set(t.id,t),this.tableLabel.has(t.label)?this.tableLabel.get(t.label).push(t):this.tableLabel.set(t.label,[t])}[zXe](t){this.tableId.delete(t.id);let n=this.tableLabel.get(t.label);n.pop(),n.length===0&&this.tableLabel.delete(t.label)}[GXe](t){if(t===null)return null;if(this.tableLabel.has(t)){let n=this.tableLabel.get(t);return n[n.length-1]}else return null}[VXe](t){return this.tableId.get(t)}[WXe](t,n,r){let i=this[GXe](t);if(i===null)return this.root={parent:null,id:"root",label:n,nodes:[],start:r,stop:null,diff:-1},this[tce](this.root),this.root.id;let o=`${n}-${Math.random()}`,a={parent:t,id:o,label:n,nodes:[],start:r,stop:null,diff:-1};return i.nodes.push(a),this[tce](a),o}start(t,n,r=Date.now()){return this[WXe](t,n,r)}stop(t,n=Date.now()){let r=this[VXe](t);r&&(r.stop=n,r.diff=r.stop-r.start||0,this[zXe](r))}toJSON(){return Object.assign({},this.root)}prettyPrint(){return KXe(this.toJSON())}};function KXe(e,t=""){let n=t,r=e.nodes.length,i=r-1;n+=`${e.label} ${e.diff} ms +`;for(let s=0;s{"use strict";var{debuglog:ubn}=K("node:util"),lbn=ubn("avvio");JXe.exports={debug:lbn}});var QXe=w((z4r,XXe)=>{"use strict";function dbn(){let e={resolve:null,reject:null,promise:null};return e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n}),e}XXe.exports={createPromise:dbn}});var tQe=w((G4r,eQe)=>{"use strict";var{kPluginMeta:$Xe}=kk();function fbn(e,t){return e[$Xe]?.name?e[$Xe].name:t?.name?t.name:e.name?e.name:e.toString().split(` +`).slice(0,2).map(n=>n.trim()).join(" -- ")}eQe.exports={getPluginName:fbn}});var TW=w((V4r,nQe)=>{"use strict";function pbn(e){return e!==null&&typeof e=="object"&&typeof e.then=="function"}nQe.exports={isPromiseLike:pbn}});var iQe=w((W4r,rQe)=>{"use strict";var{EventEmitter:hbn}=K("node:events"),{inherits:mbn}=K("node:util"),{debug:Ta}=_W(),{createPromise:gbn}=QXe(),{AVV_ERR_PLUGIN_EXEC_TIMEOUT:ybn}=EW(),{getPluginName:Sbn}=tQe(),{isPromiseLike:bbn}=TW();function Ik(e,t,n,r,i){this.queue=e,this.func=t,this.options=n,this.isAfter=r,this.timeout=i,this.started=!1,this.name=Sbn(t,n),this.queue.pause(),this._error=null,this.loaded=!1,this._promise=null,this.startTime=null}mbn(Ik,hbn);Ik.prototype.exec=function(e,t){Ta("exec",this.name),this.server=e;let n=this.func,r=this.name,i=!1;this.options=typeof this.options=="function"?this.options(this.server):this.options;let s=null,o=c=>{if(i){Ta("loading complete",r);return}this._error=c,Ta(c?"exec errored":"exec completed",r),i=!0,s&&clearTimeout(s),t(c)};this.timeout>0&&(Ta("setting up timeout",r,this.timeout),s=setTimeout(function(){Ta("timed out",r),s=null;let c=new ybn(r);c.fn=n,o(c)},this.timeout)),this.started=!0,this.startTime=Date.now(),this.emit("start",this.server?this.server.name:null,this.name,Date.now());let a=n(this.server,this.options,o);bbn(a)?(Ta("exec: resolving promise",r),a.then(()=>process.nextTick(o),c=>process.nextTick(o,c))):n.length<3&&o()};Ik.prototype.loadedSoFar=function(){if(Ta("loadedSoFar",this.name),this.loaded)return Promise.resolve();let e=()=>{this.server.after((n,r)=>{this._error=n,this.queue.pause(),this._promise&&(n?(Ta("rejecting promise",this.name,n),this._promise.reject(n)):(Ta("resolving promise",this.name),this._promise.resolve()),this._promise=null),process.nextTick(r,n)}),this.queue.resume()},t;return this._promise?t=Promise.resolve():(this._promise=gbn(),t=this._promise.promise,this.server?e():this.on("start",e)),t};Ik.prototype.enqueue=function(e,t){Ta("enqueue",this.name,e.name),this.emit("enqueue",this.server?this.server.name:null,this.name,Date.now()),this.queue.push(e,t)};Ik.prototype.finish=function(e,t){Ta("finish",this.name,e);let n=()=>{this.loaded||(Ta("loaded",this.name),this.emit("loaded",this.server?this.server.name:null,this.name,Date.now()),this.loaded=!0,t(e))};if(e){this._promise&&(this._promise.reject(e),this._promise=null),n();return}let r=()=>{if(Ta("check",this.name,this.queue.length(),this.queue.running(),this._promise),this.queue.length()===0&&this.queue.running()===0)if(this._promise){let i=()=>{Ta("wrap"),queueMicrotask(r)};this._promise.resolve(),this._promise.promise.then(i,i),this._promise=null}else n();else Ta("delayed",this.name),this.queue.drain=()=>{Ta("drain",this.name),this.queue.drain=Ebn,queueMicrotask(r)}};queueMicrotask(r),this.queue.resume()};function Ebn(){}rQe.exports={Plugin:Ik}});var oQe=w((K4r,sQe)=>{"use strict";var{AVV_ERR_PLUGIN_NOT_VALID:rce}=EW();function _bn(e){if(!(e&&(typeof e=="function"||typeof e.then=="function")))throw Array.isArray(e)?new rce("array"):e===null?new rce("null"):new rce(typeof e)}sQe.exports={validatePlugin:_bn}});var cQe=w((Y4r,aQe)=>{"use strict";function Tbn(e){return e!==null&&typeof e=="object"&&typeof e.default=="function"}aQe.exports={isBundledOrTypescriptPlugin:Tbn}});var dQe=w((Z4r,lQe)=>{"use strict";var{debug:uQe}=_W(),{kThenifyDoNotWrap:ice}=kk();function vbn(){if(this.booted){uQe("thenify returning undefined because we are already booted");return}if(this[ice]){this[ice]=!1;return}return uQe("thenify"),(e,t)=>this._loadRegistered().then(()=>(this[ice]=!0,e(this._server)),t)}lQe.exports={thenify:vbn}});var pQe=w((J4r,fQe)=>{"use strict";var{isPromiseLike:Rbn}=TW(),{kAvvio:Abn}=kk();function wbn(e,t,n){let r;try{r=e.apply(e,t)}catch(i){n&&process.nextTick(n,i);return}Rbn(r)&&!r[Abn]?r.then(()=>process.nextTick(n),i=>process.nextTick(n,i)):n&&process.nextTick(n)}fQe.exports={executeWithThenable:wbn}});var TQe=w((X4r,_Qe)=>{"use strict";var vW=HXe(),kbn=K("node:events").EventEmitter,Ibn=K("node:util").inherits,{AVV_ERR_EXPOSE_ALREADY_DEFINED:pM,AVV_ERR_CALLBACK_NOT_FN:xk,AVV_ERR_ROOT_PLG_BOOTED:xbn,AVV_ERR_READY_TIMEOUT:Obn,AVV_ERR_ATTRIBUTE_ALREADY_DEFINED:Pbn}=EW(),{kAvvio:gQe,kIsOnCloseHandler:yQe}=kk(),{TimeTree:Nbn}=ZXe(),{Plugin:SQe}=iQe(),{debug:Ok}=_W(),{validatePlugin:Cbn}=oQe(),{isBundledOrTypescriptPlugin:Mbn}=cQe(),{isPromiseLike:Dbn}=TW(),{thenify:bQe}=dQe(),{executeWithThenable:hQe}=pQe();function Ms(e,t,n){if(typeof e=="function"&&arguments.length===1&&(n=e,t={},e=null),typeof t=="function"&&(n=t,t={}),t=t||{},t.autostart=t.autostart!==!1,t.timeout=Number(t.timeout)||0,t.expose=t.expose||{},!new.target)return new Ms(e,t,n);this._server=e||this,this._opts=t,e&&this._expose(),this._current=[],this._error=null,this._lastUsed=null,this.setMaxListeners(0),n&&this.once("start",n),this.started=!1,this.booted=!1,this.pluginTree=new Nbn,this._readyQ=vW(this,EQe,1),this._readyQ.pause(),this._readyQ.drain=()=>{this.emit("start"),this._readyQ.drain=mQe},this._closeQ=vW(this,Ubn,1),this._closeQ.pause(),this._closeQ.drain=()=>{this.emit("close"),this._closeQ.drain=mQe},this._doStart=null;let r=this;this._root=new SQe(vW(this,this._loadPluginNextTick,1),function(s,o,a){r._doStart=a,o.autostart&&r.start()},t,!1,0),this._trackPluginLoading(this._root),this._loadPlugin(this._root,i=>{Ok("root plugin ready");try{this.emit("preReady"),this._root=null}catch(s){i=i||this._error||s}if(i){if(this._error=i,this._readyQ.length()===0)throw i}else this.booted=!0;this._readyQ.resume()})}Ibn(Ms,kbn);"asyncDispose"in Symbol&&(Ms.prototype[Symbol.asyncDispose]=function(){return new Promise((e,t)=>{this.close(n=>{if(n)return t(n);e()})})});Ms.prototype.start=function(){return this.started=!0,process.nextTick(this._doStart),this};Ms.prototype.override=function(e,t,n){return e};Ms.prototype[gQe]=!0;Ms.prototype.use=function(e,t){return this._lastUsed=this._addPlugin(e,t,!1),this};Ms.prototype._loadRegistered=function(){let e=this._current[0];return!this.started&&!this.booted&&process.nextTick(()=>this._root.queue.resume()),e?e.loadedSoFar():Promise.resolve()};Object.defineProperty(Ms.prototype,"then",{get:bQe});Ms.prototype._addPlugin=function(e,t,n){if(Mbn(e)&&(e=e.default),Cbn(e),t=t||{},this.booted)throw new xbn;let r=this._current[0],i=this._opts.timeout;if(!r.loaded&&r.timeout>0){let o=Date.now()-r.startTime;i=r.timeout-(o+3)}let s=new SQe(vW(this,this._loadPluginNextTick,1),e,t,n,i);if(this._trackPluginLoading(s),r.loaded)throw new Error(s.name,r.name);return r.enqueue(s,o=>{o&&(this._error=o)}),s};Ms.prototype._expose=function(){let t=this,n=t._server,{use:r="use",after:i="after",ready:s="ready",onClose:o="onClose",close:a="close"}=this._opts.expose;if(n[r])throw new pM(r,"use");if(n[r]=function(c,u){return t.use(c,u),this},n[i])throw new pM(i,"after");if(n[i]=function(c){return typeof c!="function"?t._loadRegistered():(t.after(sce(c,this)),this)},n[s])throw new pM(s,"ready");if(n[s]=function(c){if(c&&typeof c!="function")throw new xk(s,typeof c);return t.ready(c?sce(c,this):void 0)},n[o])throw new pM(o,"onClose");if(n[o]=function(c){if(typeof c!="function")throw new xk(o,typeof c);return t.onClose(Fbn(c,this)),this},n[a])throw new pM(a,"close");if(n[a]=function(c){if(c&&typeof c!="function")throw new xk(a,typeof c);return c?(t.close(sce(c,this)),this):t.close()},n.then)throw new Pbn("then");Object.defineProperty(n,"then",{get:bQe.bind(t)}),n[gQe]=!0};Ms.prototype.after=function(e){if(!e)return this._loadRegistered();this._addPlugin(t.bind(this),{},!0);function t(n,r,i){EQe.call(this,e,i)}return this};Ms.prototype.onClose=function(e){if(typeof e!="function")throw new xk("onClose",typeof e);return e[yQe]=!0,this._closeQ.unshift(e,t=>{t&&(this._error=t)}),this};Ms.prototype.close=function(e){let t;if(e){if(typeof e!="function")throw new xk("close",typeof e)}else t=new Promise(function(n,r){e=function(i){if(i)return r(i);n()}});return this.ready(()=>{this._error=null,this._closeQ.push(e),process.nextTick(this._closeQ.resume.bind(this._closeQ))}),t};Ms.prototype.ready=function(e){if(e){if(typeof e!="function")throw new xk("ready",typeof e);this._readyQ.push(e),queueMicrotask(this.start.bind(this));return}return new Promise((t,n)=>{this._readyQ.push(i),this.start();let r=this._current[0].server;function i(s,o,a){s?n(s):t(r),process.nextTick(a)}})};Ms.prototype._trackPluginLoading=function(e){let t=this._current[0]?.name||null;e.once("start",(n,r,i)=>{let s=this.pluginTree.start(t||null,r,i);e.once("loaded",(o,a,c)=>{this.pluginTree.stop(s,c)})})};Ms.prototype.prettyPrint=function(){return this.pluginTree.prettyPrint()};Ms.prototype.toJSON=function(){return this.pluginTree.toJSON()};Ms.prototype._loadPlugin=function(e,t){let n=this;if(Dbn(e.func)){e.func.then(o=>{typeof o.default=="function"&&(o=o.default),e.func=o,this._loadPlugin(e,t)},t);return}let r=n._current[0];if(n._current.unshift(e),n._error&&!e.isAfter){Ok("skipping loading of plugin as instance errored and it is not an after",e.name),process.nextTick(s);return}let i=r?.server||n._server;if(!e.isAfter)try{i=n.override(i,e.func,e.options)}catch(o){return Ok("override errored",e.name),s(o)}e.exec(i,s);function s(o){e.finish(o,a=>{n._current.shift(),t(a)})}};Ms.prototype._loadPluginNextTick=function(e,t){process.nextTick(this._loadPlugin.bind(this),e,t)};function mQe(){}function EQe(e,t){let n=this._server,r=this._error;if(this._error=null,e.length===0)this._error=r,hQe(e,[],t);else if(e.length===1)hQe(e,[r],t);else if(this._opts.timeout===0){let i=s=>{this._error=s,t(this._error)};e.length===2?e(r,i):e(r,n,i)}else Lbn.call(this,e,r,n,t)}function Lbn(e,t,n,r){let i=e.unwrappedName??e.name;Ok("setting up ready timeout",i,this._opts.timeout);let s=setTimeout(()=>{Ok("timed out",i),s=null;let a=new Obn(i);a.fn=e,this._error=a,r(a)},this._opts.timeout);e.length===2?e(t,o.bind(this)):e(t,n,o.bind(this));function o(a){s&&(clearTimeout(s),this._error=a,r(this._error))}}function Ubn(e,t){let n=this._server,r=e[yQe];if(e.length===0||e.length===1){let i;r?i=e(n):i=e(this._error),i&&typeof i.then=="function"?(Ok("resolving close/onClose promise"),i.then(()=>process.nextTick(t),s=>process.nextTick(t,s))):process.nextTick(t)}else e.length===2?e(r?n:this._error,t):r?e(n,t):e(this._error,n,t)}function Fbn(e,t){return n.bind(t);function n(r,i){let s;e.length===0?(s=e(),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e.length===1?(s=e(this),s?.then?s.then(function(){process.nextTick(i)},i):process.nextTick(i)):e(this,i)}}function sce(e,t){let n=r.bind(t);return n.unwrappedName=e.name,n;function r(i,s){let o;e?e.length===0?(o=e(),o?.then?o.then(function(){process.nextTick(s,i)},s):process.nextTick(s,i)):e.length===1?(o=e(i),o?.then?o.then(function(){process.nextTick(s)},s):process.nextTick(s)):e.length===2?e(i,s):e(i,this,s):process.nextTick(s)}}_Qe.exports=Ms});var $s=w((Q4r,vQe)=>{"use strict";var jbn={kAvvioBoot:Symbol("fastify.avvioBoot"),kChildren:Symbol("fastify.children"),kServerBindings:Symbol("fastify.serverBindings"),kBodyLimit:Symbol("fastify.bodyLimit"),kSupportedHTTPMethods:Symbol("fastify.acceptedHTTPMethods"),kRoutePrefix:Symbol("fastify.routePrefix"),kLogLevel:Symbol("fastify.logLevel"),kLogSerializers:Symbol("fastify.logSerializers"),kHooks:Symbol("fastify.hooks"),kContentTypeParser:Symbol("fastify.contentTypeParser"),kState:Symbol("fastify.state"),kOptions:Symbol("fastify.options"),kDisableRequestLogging:Symbol("fastify.disableRequestLogging"),kPluginNameChain:Symbol("fastify.pluginNameChain"),kRouteContext:Symbol("fastify.context"),kGenReqId:Symbol("fastify.genReqId"),kHttp2ServerSessions:Symbol("fastify.http2ServerSessions"),kSchemaController:Symbol("fastify.schemaController"),kSchemaHeaders:Symbol("headers-schema"),kSchemaParams:Symbol("params-schema"),kSchemaQuerystring:Symbol("querystring-schema"),kSchemaBody:Symbol("body-schema"),kSchemaResponse:Symbol("response-schema"),kSchemaErrorFormatter:Symbol("fastify.schemaErrorFormatter"),kSchemaVisited:Symbol("fastify.schemas.visited"),kRequest:Symbol("fastify.Request"),kRequestPayloadStream:Symbol("fastify.RequestPayloadStream"),kRequestAcceptVersion:Symbol("fastify.RequestAcceptVersion"),kRequestCacheValidateFns:Symbol("fastify.request.cache.validateFns"),kRequestOriginalUrl:Symbol("fastify.request.originalUrl"),kRequestSignal:Symbol("fastify.request.signal"),kHandlerTimeout:Symbol("fastify.handlerTimeout"),kTimeoutTimer:Symbol("fastify.request.timeoutTimer"),kOnAbort:Symbol("fastify.request.onAbort"),kFourOhFour:Symbol("fastify.404"),kCanSetNotFoundHandler:Symbol("fastify.canSetNotFoundHandler"),kFourOhFourLevelInstance:Symbol("fastify.404LogLevelInstance"),kFourOhFourContext:Symbol("fastify.404ContextKey"),kDefaultJsonParse:Symbol("fastify.defaultJSONParse"),kReply:Symbol("fastify.Reply"),kReplySerializer:Symbol("fastify.reply.serializer"),kReplyIsError:Symbol("fastify.reply.isError"),kReplyHeaders:Symbol("fastify.reply.headers"),kReplyTrailers:Symbol("fastify.reply.trailers"),kReplyHasStatusCode:Symbol("fastify.reply.hasStatusCode"),kReplyHijacked:Symbol("fastify.reply.hijacked"),kReplyStartTime:Symbol("fastify.reply.startTime"),kReplyNextErrorHandler:Symbol("fastify.reply.nextErrorHandler"),kReplyEndTime:Symbol("fastify.reply.endTime"),kReplyErrorHandlerCalled:Symbol("fastify.reply.errorHandlerCalled"),kReplyIsRunningOnErrorHook:Symbol("fastify.reply.isRunningOnErrorHook"),kReplySerializerDefault:Symbol("fastify.replySerializerDefault"),kReplyCacheSerializeFns:Symbol("fastify.reply.cache.serializeFns"),kTestInternals:Symbol("fastify.testInternals"),kErrorHandler:Symbol("fastify.errorHandler"),kErrorHandlerAlreadySet:Symbol("fastify.errorHandlerAlreadySet"),kChildLoggerFactory:Symbol("fastify.childLoggerFactory"),kHasBeenDecorated:Symbol("fastify.hasBeenDecorated"),kKeepAliveConnections:Symbol("fastify.keepAliveConnections"),kRouteByFastify:Symbol("fastify.routeByFastify")};vQe.exports=jbn});var AQe=w(($4r,RW)=>{"use strict";var{format:oce}=K("node:util");function Hbn(e){return RQe({...e,name:"DeprecationWarning"})}function RQe({name:e,code:t,message:n,unlimited:r=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!n)throw new Error("Warning message must not be empty");if(typeof r!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let i={[e]:function(o,a,c){s.emitted===!0&&s.unlimited!==!0||(s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code))}};r&&(i={[e]:function(o,a,c){s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code)}});let s=i[e];return s.emitted=!1,s.message=n,s.unlimited=r,s.code=t,s.format=function(o,a,c){let u;return o&&a&&c?u=oce(n,o,a,c):o&&a?u=oce(n,o,a):o?u=oce(n,o):u=n,u},s}var ace={createWarning:RQe,createDeprecation:Hbn};RW.exports=ace;RW.exports.default=ace;RW.exports.processWarning=ace});var Pk=w((eKr,wQe)=>{"use strict";var{createWarning:hM}=AQe(),qbn=hM({name:"FastifyWarning",code:"FSTWRN001",message:"The %s schema for %s: %s is missing. This may indicate the schema is not well specified.",unlimited:!0}),Bbn=hM({name:"FastifyWarning",code:"FSTWRN003",message:"The %s mixes async and callback styles that may lead to unhandled rejections. Please use only one of them.",unlimited:!0}),zbn=hM({name:"FastifyWarning",code:"FSTWRN004",message:"It seems that you are overriding an errorHandler in the same scope, which can lead to subtle bugs.",unlimited:!0}),Gbn=hM({name:"FastifySecurity",code:"FSTSEC001",message:'You are using /%s/ Content-Type which may be vulnerable to CORS attack. Please make sure your RegExp start with "^" or include ";?" to proper detection of the essence MIME type.',unlimited:!0}),Vbn=hM({name:"FastifyWarning",code:"FSTDEP022",message:'The router options for %s property access is deprecated. Please use "options.routerOptions" instead for accessing router options. The router options will be removed in `fastify@6`.',unlimited:!0});wQe.exports={FSTWRN001:qbn,FSTWRN003:Bbn,FSTWRN004:zbn,FSTSEC001:Gbn,FSTDEP022:Vbn}});var Ko=w((tKr,AW)=>{"use strict";var je=bW(),rT={FST_ERR_NOT_FOUND:je("FST_ERR_NOT_FOUND","Not Found",404),FST_ERR_OPTIONS_NOT_OBJ:je("FST_ERR_OPTIONS_NOT_OBJ","Options must be an object",500,TypeError),FST_ERR_QSP_NOT_FN:je("FST_ERR_QSP_NOT_FN","querystringParser option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:je("FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN","schemaController.bucket option should be a function, instead got '%s'",500,TypeError),FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:je("FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN","schemaErrorFormatter option should be a non async function. Instead got '%s'.",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:je("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ","ajv.customOptions option should be an object, instead got '%s'",500,TypeError),FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:je("FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR","ajv.plugins option should be an array, instead got '%s'",500,TypeError),FST_ERR_VALIDATION:je("FST_ERR_VALIDATION","%s",400),FST_ERR_LISTEN_OPTIONS_INVALID:je("FST_ERR_LISTEN_OPTIONS_INVALID","Invalid listen options: '%s'",500,TypeError),FST_ERR_ERROR_HANDLER_NOT_FN:je("FST_ERR_ERROR_HANDLER_NOT_FN","Error Handler must be a function",500,TypeError),FST_ERR_ERROR_HANDLER_ALREADY_SET:je("FST_ERR_ERROR_HANDLER_ALREADY_SET","Error Handler already set in this scope. Set 'allowErrorHandlerOverride: true' to allow overriding.",500,TypeError),FST_ERR_CTP_ALREADY_PRESENT:je("FST_ERR_CTP_ALREADY_PRESENT","Content type parser '%s' already present."),FST_ERR_CTP_INVALID_TYPE:je("FST_ERR_CTP_INVALID_TYPE","The content type should be a string or a RegExp",500,TypeError),FST_ERR_CTP_EMPTY_TYPE:je("FST_ERR_CTP_EMPTY_TYPE","The content type cannot be an empty string",500,TypeError),FST_ERR_CTP_INVALID_HANDLER:je("FST_ERR_CTP_INVALID_HANDLER","The content type handler should be a function",500,TypeError),FST_ERR_CTP_INVALID_PARSE_TYPE:je("FST_ERR_CTP_INVALID_PARSE_TYPE","The body parser can only parse your data as 'string' or 'buffer', you asked '%s' which is not supported.",500,TypeError),FST_ERR_CTP_BODY_TOO_LARGE:je("FST_ERR_CTP_BODY_TOO_LARGE","Request body is too large",413,RangeError),FST_ERR_CTP_INVALID_MEDIA_TYPE:je("FST_ERR_CTP_INVALID_MEDIA_TYPE","Unsupported Media Type",415),FST_ERR_CTP_INVALID_CONTENT_LENGTH:je("FST_ERR_CTP_INVALID_CONTENT_LENGTH","Request body size did not match Content-Length",400,RangeError),FST_ERR_CTP_EMPTY_JSON_BODY:je("FST_ERR_CTP_EMPTY_JSON_BODY","Body cannot be empty when content-type is set to 'application/json'",400),FST_ERR_CTP_INVALID_JSON_BODY:je("FST_ERR_CTP_INVALID_JSON_BODY","Body is not valid JSON but content-type is set to 'application/json'",400),FST_ERR_CTP_INSTANCE_ALREADY_STARTED:je("FST_ERR_CTP_INSTANCE_ALREADY_STARTED",'Cannot call "%s" when fastify instance is already started!',400),FST_ERR_DEC_ALREADY_PRESENT:je("FST_ERR_DEC_ALREADY_PRESENT","The decorator '%s' has already been added!"),FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:je("FST_ERR_DEC_DEPENDENCY_INVALID_TYPE","The dependencies of decorator '%s' must be of type Array.",500,TypeError),FST_ERR_DEC_MISSING_DEPENDENCY:je("FST_ERR_DEC_MISSING_DEPENDENCY","The decorator is missing dependency '%s'."),FST_ERR_DEC_AFTER_START:je("FST_ERR_DEC_AFTER_START","The decorator '%s' has been added after start!"),FST_ERR_DEC_REFERENCE_TYPE:je("FST_ERR_DEC_REFERENCE_TYPE","The decorator '%s' of type '%s' is a reference type. Use the { getter, setter } interface instead."),FST_ERR_DEC_UNDECLARED:je("FST_ERR_DEC_UNDECLARED","No decorator '%s' has been declared on %s."),FST_ERR_HOOK_INVALID_TYPE:je("FST_ERR_HOOK_INVALID_TYPE","The hook name must be a string",500,TypeError),FST_ERR_HOOK_INVALID_HANDLER:je("FST_ERR_HOOK_INVALID_HANDLER","%s hook should be a function, instead got %s",500,TypeError),FST_ERR_HOOK_INVALID_ASYNC_HANDLER:je("FST_ERR_HOOK_INVALID_ASYNC_HANDLER","Async function has too many arguments. Async hooks should not use the 'done' argument.",500,TypeError),FST_ERR_HOOK_NOT_SUPPORTED:je("FST_ERR_HOOK_NOT_SUPPORTED","%s hook not supported!",500,TypeError),FST_ERR_MISSING_MIDDLEWARE:je("FST_ERR_MISSING_MIDDLEWARE","You must register a plugin for handling middlewares, visit fastify.dev/docs/latest/Reference/Middleware/ for more info.",500),FST_ERR_HOOK_TIMEOUT:je("FST_ERR_HOOK_TIMEOUT","A callback for '%s' hook%s timed out. You may have forgotten to call 'done' function or to resolve a Promise"),FST_ERR_LOG_INVALID_DESTINATION:je("FST_ERR_LOG_INVALID_DESTINATION","Cannot specify both logger.stream and logger.file options"),FST_ERR_LOG_INVALID_LOGGER:je("FST_ERR_LOG_INVALID_LOGGER","Invalid logger object provided. The logger instance should have these functions(s): '%s'.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_INSTANCE:je("FST_ERR_LOG_INVALID_LOGGER_INSTANCE","loggerInstance only accepts a logger instance.",500,TypeError),FST_ERR_LOG_INVALID_LOGGER_CONFIG:je("FST_ERR_LOG_INVALID_LOGGER_CONFIG","logger options only accepts a configuration object.",500,TypeError),FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:je("FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED","You cannot provide both logger and loggerInstance. Please provide only one.",500,TypeError),FST_ERR_REP_INVALID_PAYLOAD_TYPE:je("FST_ERR_REP_INVALID_PAYLOAD_TYPE","Attempted to send payload of invalid type '%s'. Expected a string or Buffer.",500,TypeError),FST_ERR_REP_RESPONSE_BODY_CONSUMED:je("FST_ERR_REP_RESPONSE_BODY_CONSUMED","Response.body is already consumed."),FST_ERR_REP_READABLE_STREAM_LOCKED:je("FST_ERR_REP_READABLE_STREAM_LOCKED","ReadableStream was locked. You should call releaseLock() method on reader before sending."),FST_ERR_REP_ALREADY_SENT:je("FST_ERR_REP_ALREADY_SENT",'Reply was already sent, did you forget to "return reply" in "%s" (%s)?'),FST_ERR_REP_SENT_VALUE:je("FST_ERR_REP_SENT_VALUE","The only possible value for reply.sent is true.",500,TypeError),FST_ERR_SEND_INSIDE_ONERR:je("FST_ERR_SEND_INSIDE_ONERR","You cannot use `send` inside the `onError` hook"),FST_ERR_SEND_UNDEFINED_ERR:je("FST_ERR_SEND_UNDEFINED_ERR","Undefined error has occurred"),FST_ERR_BAD_STATUS_CODE:je("FST_ERR_BAD_STATUS_CODE","Called reply with an invalid status code: %s"),FST_ERR_BAD_TRAILER_NAME:je("FST_ERR_BAD_TRAILER_NAME","Called reply.trailer with an invalid header name: %s"),FST_ERR_BAD_TRAILER_VALUE:je("FST_ERR_BAD_TRAILER_VALUE","Called reply.trailer('%s', fn) with an invalid type: %s. Expected a function."),FST_ERR_FAILED_ERROR_SERIALIZATION:je("FST_ERR_FAILED_ERROR_SERIALIZATION","Failed to serialize an error. Error: %s. Original error: %s"),FST_ERR_MISSING_SERIALIZATION_FN:je("FST_ERR_MISSING_SERIALIZATION_FN",'Missing serialization function. Key "%s"'),FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:je("FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN",'Missing serialization function. Key "%s:%s"'),FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:je("FST_ERR_REQ_INVALID_VALIDATION_INVOCATION",'Invalid validation invocation. Missing validation function for HTTP part "%s" nor schema provided.'),FST_ERR_SCH_MISSING_ID:je("FST_ERR_SCH_MISSING_ID","Missing schema $id property"),FST_ERR_SCH_ALREADY_PRESENT:je("FST_ERR_SCH_ALREADY_PRESENT","Schema with id '%s' already declared!"),FST_ERR_SCH_CONTENT_MISSING_SCHEMA:je("FST_ERR_SCH_CONTENT_MISSING_SCHEMA","Schema is missing for the content type '%s'"),FST_ERR_SCH_DUPLICATE:je("FST_ERR_SCH_DUPLICATE","Schema with '%s' already present!"),FST_ERR_SCH_VALIDATION_BUILD:je("FST_ERR_SCH_VALIDATION_BUILD","Failed building the validation schema for %s: %s, due to error %s"),FST_ERR_SCH_SERIALIZATION_BUILD:je("FST_ERR_SCH_SERIALIZATION_BUILD","Failed building the serialization schema for %s: %s, due to error %s"),FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:je("FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX",'response schemas should be nested under a valid status code, e.g { 2xx: { type: "object" } }'),FST_ERR_INIT_OPTS_INVALID:je("FST_ERR_INIT_OPTS_INVALID","Invalid initialization options: '%s'"),FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:je("FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE","Cannot set forceCloseConnections to 'idle' as your HTTP server does not support closeIdleConnections method"),FST_ERR_DUPLICATED_ROUTE:je("FST_ERR_DUPLICATED_ROUTE","Method '%s' already declared for route '%s'"),FST_ERR_BAD_URL:je("FST_ERR_BAD_URL","'%s' is not a valid url component",400,URIError),FST_ERR_ASYNC_CONSTRAINT:je("FST_ERR_ASYNC_CONSTRAINT","Unexpected error from async constraint",500),FST_ERR_INVALID_URL:je("FST_ERR_INVALID_URL","URL must be a string. Received '%s'",400,TypeError),FST_ERR_ROUTE_OPTIONS_NOT_OBJ:je("FST_ERR_ROUTE_OPTIONS_NOT_OBJ",'Options for "%s:%s" route must be an object',500,TypeError),FST_ERR_ROUTE_DUPLICATED_HANDLER:je("FST_ERR_ROUTE_DUPLICATED_HANDLER",'Duplicate handler for "%s:%s" route is not allowed!',500),FST_ERR_ROUTE_HANDLER_NOT_FN:je("FST_ERR_ROUTE_HANDLER_NOT_FN","Error Handler for %s:%s route, if defined, must be a function",500,TypeError),FST_ERR_ROUTE_MISSING_HANDLER:je("FST_ERR_ROUTE_MISSING_HANDLER",'Missing handler function for "%s:%s" route.',500),FST_ERR_ROUTE_METHOD_INVALID:je("FST_ERR_ROUTE_METHOD_INVALID","Provided method is invalid!",500,TypeError),FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:je("FST_ERR_ROUTE_METHOD_NOT_SUPPORTED","%s method is not supported.",500),FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:je("FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED","Body validation schema for %s:%s route is not supported!",500),FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:je("FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT","'bodyLimit' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_HANDLER_TIMEOUT:je("FST_ERR_HANDLER_TIMEOUT","Request timed out after %s ms on route '%s'",503),FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:je("FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT","'handlerTimeout' option must be an integer > 0. Got '%s'",500,TypeError),FST_ERR_ROUTE_REWRITE_NOT_STR:je("FST_ERR_ROUTE_REWRITE_NOT_STR",'Rewrite url for "%s" needs to be of type "string" but received "%s"',500,TypeError),FST_ERR_REOPENED_CLOSE_SERVER:je("FST_ERR_REOPENED_CLOSE_SERVER","Fastify has already been closed and cannot be reopened"),FST_ERR_REOPENED_SERVER:je("FST_ERR_REOPENED_SERVER","Fastify is already listening"),FST_ERR_INSTANCE_ALREADY_LISTENING:je("FST_ERR_INSTANCE_ALREADY_LISTENING","Fastify instance is already listening. %s"),FST_ERR_PLUGIN_VERSION_MISMATCH:je("FST_ERR_PLUGIN_VERSION_MISMATCH","fastify-plugin: %s - expected '%s' fastify version, '%s' is installed"),FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:je("FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE","The decorator '%s'%s is not present in %s"),FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:je("FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER","The %s plugin being registered mixes async and callback styles. Async plugin should not mix async and callback style.",500,TypeError),FST_ERR_PLUGIN_CALLBACK_NOT_FN:je("FST_ERR_PLUGIN_CALLBACK_NOT_FN","fastify-plugin: %s",500,TypeError),FST_ERR_PLUGIN_NOT_VALID:je("FST_ERR_PLUGIN_NOT_VALID","fastify-plugin: %s"),FST_ERR_ROOT_PLG_BOOTED:je("FST_ERR_ROOT_PLG_BOOTED","fastify-plugin: %s"),FST_ERR_PARENT_PLUGIN_BOOTED:je("FST_ERR_PARENT_PLUGIN_BOOTED","fastify-plugin: %s"),FST_ERR_PLUGIN_TIMEOUT:je("FST_ERR_PLUGIN_TIMEOUT","fastify-plugin: %s")};function Wbn(e,t){return t.cause=e,t}AW.exports=rT;AW.exports.appendStackTrace=Wbn;AW.exports.AVVIO_ERRORS_MAP={AVV_ERR_CALLBACK_NOT_FN:rT.FST_ERR_PLUGIN_CALLBACK_NOT_FN,AVV_ERR_PLUGIN_NOT_VALID:rT.FST_ERR_PLUGIN_NOT_VALID,AVV_ERR_ROOT_PLG_BOOTED:rT.FST_ERR_ROOT_PLG_BOOTED,AVV_ERR_PARENT_PLG_LOADED:rT.FST_ERR_PARENT_PLUGIN_BOOTED,AVV_ERR_READY_TIMEOUT:rT.FST_ERR_PLUGIN_TIMEOUT,AVV_ERR_PLUGIN_EXEC_TIMEOUT:rT.FST_ERR_PLUGIN_TIMEOUT}});var YS=w((nKr,DQe)=>{"use strict";var Kbn=["onRoute","onRegister","onReady","onListen","preClose","onClose"],OQe=["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError","onRequestAbort"],Ybn=OQe.concat(Kbn),{FST_ERR_HOOK_INVALID_TYPE:Zbn,FST_ERR_HOOK_INVALID_HANDLER:Jbn,FST_ERR_SEND_UNDEFINED_ERR:wW,FST_ERR_HOOK_TIMEOUT:Xbn,FST_ERR_HOOK_NOT_SUPPORTED:Qbn,AVVIO_ERRORS_MAP:kQe,appendStackTrace:IQe}=Ko(),{kChildren:mM,kHooks:PQe,kRequestPayloadStream:xQe}=$s();function gM(){this.onRequest=[],this.preParsing=[],this.preValidation=[],this.preSerialization=[],this.preHandler=[],this.onResponse=[],this.onSend=[],this.onError=[],this.onRoute=[],this.onRegister=[],this.onReady=[],this.onListen=[],this.onTimeout=[],this.onRequestAbort=[],this.preClose=[]}gM.prototype=Object.create(null);gM.prototype.validate=function(e,t){if(typeof e!="string")throw new Zbn;if(Array.isArray(this[e])===!1)throw new Qbn(e);if(typeof t!="function")throw new Jbn(e,Object.prototype.toString.call(t))};gM.prototype.add=function(e,t){this.validate(e,t),this[e].push(t)};function $bn(e){let t=new gM;return t.onRequest=e.onRequest.slice(),t.preParsing=e.preParsing.slice(),t.preValidation=e.preValidation.slice(),t.preSerialization=e.preSerialization.slice(),t.preHandler=e.preHandler.slice(),t.onSend=e.onSend.slice(),t.onResponse=e.onResponse.slice(),t.onError=e.onError.slice(),t.onRoute=e.onRoute.slice(),t.onRegister=e.onRegister.slice(),t.onTimeout=e.onTimeout.slice(),t.onRequestAbort=e.onRequestAbort.slice(),t.onReady=[],t.onListen=[],t.preClose=[],t}function NQe(e,t,n,r){let i=n[PQe][e],s=0,o=0;c();function a(l){let d=i[s-1]?.name,f=d?` "${d}"`:"";if(l){l.code==="AVV_ERR_READY_TIMEOUT"?l=IQe(l,new Xbn(e,f)):l=kQe[l.code]!=null?IQe(l,new kQe[l.code](l.message)):l,r(l);return}r()}function c(l){if(l){a(l);return}if(s===i.length&&o===n[mM].length){s===0&&o===0?a():t(function(f,p){a(f),p(f)});return}if(s===i.length&&o{"use strict";LQe.exports=function(){return{[Symbol.iterator]:function*(){},add(){},delete(){},has(){return!0}}}});var cce=w((iKr,jQe)=>{"use strict";var{kTestInternals:uEn}=$s();function FQe(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}jQe.exports={withResolvers:typeof Promise.withResolvers=="function"?Promise.withResolvers.bind(Promise):FQe,[uEn]:{withResolvers:FQe}}});var JQe=w((sKr,ZQe)=>{"use strict";var lEn=K("node:http"),dEn=K("node:https"),HQe=K("node:http2"),fEn=K("node:dns"),pEn=K("node:os"),{kState:Ds,kOptions:hEn,kServerBindings:mEn,kHttp2ServerSessions:iT}=$s(),{FSTWRN003:gEn}=Pk(),{onListenHookRunner:kW}=YS(),{FST_ERR_REOPENED_CLOSE_SERVER:BQe,FST_ERR_REOPENED_SERVER:zQe,FST_ERR_LISTEN_OPTIONS_INVALID:yEn,FST_ERR_FORCE_CLOSE_CONNECTIONS_IDLE_NOT_AVAILABLE:SEn}=Ko(),bEn=UQe(),GQe=cce();ZQe.exports.createServer=EEn;function VQe(e){return`Server listening at ${e}`}function EEn(e,t){let n=KQe(e,t);function r(u={port:0,host:"localhost"},l=void 0){if(typeof l=="function"&&(l.constructor.name==="AsyncFunction"&&gEn("listen method"),u.cb=l),u.signal){if(typeof u.signal.on!="function"&&typeof u.signal.addEventListener!="function")throw new yEn("Invalid options.signal");if(this[Ds].aborted=u.signal.aborted,this[Ds].aborted)return this.close();{let f=()=>{this[Ds].aborted=!0,this.close()};u.signal.addEventListener("abort",f,{once:!0})}}let d;if(u.path==null?d=u.host??"localhost":d=u.host,(!Object.hasOwn(u,"host")||u.host==null)&&(u.host=d),d==="localhost"?u.cb=(f,p)=>{if(f){l(f,p);return}qQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,l(null,p),kW(this)})}:u.cb=(f,p)=>{if(f){l(f,p);return}this[Ds].listening=!0,l(null,p),kW(this)},l===void 0)return _En.call(this,n,u).then(p=>{let{promise:h,resolve:m}=GQe.withResolvers();return d==="localhost"?qQe.call(this,n,t,e,u,()=>{this[Ds].listening=!0,m(p),kW(this)}):(m(p),kW(this)),h});this.ready(WQe.call(this,n,u))}let i=typeof n.closeAllConnections=="function",s=typeof n.closeIdleConnections=="function",o=typeof n.closeHttp2Sessions=="function",a=e.forceCloseConnections;if(a==="idle"&&!s)throw new SEn;typeof a!="boolean"&&(a=s?"idle":!1);let c=!i&&a===!0?new Set:bEn();return{server:n,listen:r,forceCloseConnections:a,serverHasCloseAllConnections:i,serverHasCloseHttp2Sessions:o,keepAliveConnections:c}}function qQe(e,t,n,r,i){this[Ds].listening=!1,fEn.lookup(r.host,{all:!0},(s,o)=>{if(s||this[Ds].aborted){i();return}let a=e.listening&&n.serverFactory,c=0,u=0;if(!a){let d=e.address();for(let f of o)if(f.address!==d.address){c++;let p=Object.assign({},r,{host:f.address,port:d.port,cb:g=>{u++,g||this[mEn].push(h),u===c&&i()}}),h=KQe(n,t),m=()=>{h.close(()=>{}),typeof h.closeAllConnections=="function"&&n.forceCloseConnections===!0&&h.closeAllConnections(),typeof h.closeHttp2Sessions=="function"&&h.closeHttp2Sessions()};h.on("upgrade",e.emit.bind(e,"upgrade")),e.on("unref",m),e.on("close",m),e.on("error",m),this[Ds].listening=!1,WQe.call(this,h,p)()}}if(c===0){i();return}let l=e.unref;e.unref=function(){l.call(e),e.emit("unref")}})}function WQe(e,t){let n=r=>{if(e.removeListener("error",n),e.removeListener("listening",n),r)this[Ds].listening=!1,t.cb(r,null);else{let i=YQe.call(this,e,t.listenTextResolver||VQe);t.cb(null,i)}};return r=>{if(r!=null)return t.cb(r);if(this[Ds].listening&&this[Ds].closing)return t.cb(new BQe,null);if(this[Ds].listening)return t.cb(new zQe,null);e.once("error",n),this[Ds].closing||(e.once("listening",n),e.listen(t),this[Ds].listening=!0)}}function _En(e,t){return this[Ds].listening&&this[Ds].closing?Promise.reject(new BQe):this[Ds].listening?Promise.reject(new zQe):this.ready().then(()=>{if(this[Ds].aborted)return;let{promise:n,resolve:r,reject:i}=GQe.withResolvers(),s=c=>{a(),this[Ds].listening=!1,i(c)},o=()=>{a(),this[Ds].listening=!0,r(YQe.call(this,e,t.listenTextResolver||VQe))};function a(){e.removeListener("error",s),e.removeListener("listening",o)}return e.once("error",s),e.once("listening",o),e.listen(t),n})}function KQe(e,t){if(e.serverFactory)return e.serverFactory(t,e);let n=e.https===!0?{}:e.https;if(e.http2){let i=typeof n=="object"?HQe.createSecureServer(n,t):HQe.createServer(e.http,t);return i.on("session",s=>s.setTimeout(e.http2SessionTimeout,()=>{s.close()})),e.forceCloseConnections===!0&&(i.closeHttp2Sessions=vEn(i)),i.setTimeout(e.connectionTimeout),i}let r=n?dEn.createServer(n,t):lEn.createServer(e.http,t);return r.keepAliveTimeout=e.keepAliveTimeout,r.requestTimeout=e.requestTimeout,r.setTimeout(e.connectionTimeout),e.maxRequestsPerSocket>0&&(r.maxRequestsPerSocket=e.maxRequestsPerSocket),r}function TEn(e){return e.address==="0.0.0.0"?Object.values(pEn.networkInterfaces()).flatMap(t=>t.filter(n=>n.family==="IPv4")).sort(t=>t.internal?-1:1).map(t=>t.address):[e.address]}function YQe(e,t){let n;typeof e.address()=="string"?n=[e.address()]:(e.address().address.indexOf(":")===-1?n=TEn(e.address()).map(i=>i+":"+e.address().port):n=["["+e.address().address+"]:"+e.address().port],n=n.map(i=>"http"+(this[hEn].https?"s":"")+"://"+i));for(let i of n)this.log.info(t(i));return n[0]}function vEn(e){return e[iT]=new Set,e.on("session",function(t){t.once("connect",function(){e[iT].add(t)}),t.once("close",function(){e[iT].delete(t)}),t.once("frameError",function(n,r,i){i===0&&e[iT].delete(t)}),t.once("goaway",function(){e[iT].delete(t)})}),function(){if(e[iT].size!==0)for(let n of e[iT])n.close()}}});var dce=w((oKr,$Qe)=>{"use strict";var uce=/(?:^|;)\s*([\w!#$%&'*+.^`|~-]+)=([^;]*)/gm,XQe=/^[\w!#$%&'*+.^`|~-]+$/,QQe=/^[\w!#$%&'*+.^`|~-]+\s*$/,lce=class{#t=!1;#n=!0;#i="";#e="";#r=new Map;#s;constructor(t){if(t==null||t===""||t==="undefined")return;let n=t.indexOf(";");if(n===-1){if(n=t.indexOf("/"),n===-1)return;let c=t.slice(0,n).trimStart().toLowerCase(),u=t.slice(n+1).trimEnd().toLowerCase();XQe.test(c)===!0&&QQe.test(u)===!0&&(this.#t=!0,this.#n=!1,this.#i=c,this.#e=u);return}let r=t.slice(0,n).toLowerCase(),i=t.slice(n+1).trim();if(n=r.indexOf("/"),n===-1)return;let s=r.slice(0,n).trimStart(),o=r.slice(n+1).trimEnd();if(XQe.test(s)===!1||QQe.test(o)===!1)return;this.#i=s,this.#e=o,this.#t=!0,this.#n=!1;let a=uce.exec(i);for(;a;){let c=a[1],u=a[2];if(u[0]==='"'){if(u.at(-1)!=='"'){this.#r.set(c,"invalid quoted string"),a=uce.exec(i);continue}this.#r.set(c,u.slice(1,u.length-1))}else this.#r.set(c,u);a=uce.exec(i)}}get[Symbol.toStringTag](){return"ContentType"}get isEmpty(){return this.#n}get isValid(){return this.#t}get mediaType(){return`${this.#i}/${this.#e}`}get type(){return this.#i}get subtype(){return this.#e}get parameters(){return this.#r}toString(){if(this.#s)return this.#s;let t=[];for(let[r,i]of this.#r.entries())t.push(`${r}="${i}"`);let n=[this.#i,"/",this.#e];return t.length>0&&(n.push("; "),n.push(t.join("; "))),this.#s=n.join(""),this.#s}};$Qe.exports=lce});var IW=w((aKr,e$e)=>{"use strict";var{kReplyHasStatusCode:REn}=$s();function AEn(e,t){if(!e[REn]||e.statusCode===200){let n=t&&(t.statusCode||t.status);e.code(n>=400?n:500)}}e$e.exports={setErrorStatusCode:AEn}});var fce=w((cKr,n$e)=>{"use strict";var{kReplyIsError:t$e,kReplyHijacked:wEn}=$s(),{setErrorStatusCode:kEn}=IW(),IEn=K("node:diagnostics_channel"),SM=IEn.tracingChannel("fastify.request.handler");function xEn(e,t,n){n&&(n.async=!0),e.then(function(r){if(t[wEn]!==!0){n&&SM.asyncStart.publish(n);try{if(r!==void 0||t.sent===!1&&t.raw.headersSent===!1&&t.request.raw.aborted===!1&&t.request.socket&&!t.request.socket.destroyed)try{t.send(r)}catch(i){t[t$e]=!0,t.send(i)}}finally{n&&SM.asyncEnd.publish(n)}}},function(r){n&&(n.error=r,kEn(t,r),SM.error.publish(n),SM.asyncStart.publish(n));try{if(t.sent===!0){t.log.error({err:r},"Promise errored, but reply.sent = true was set");return}t[t$e]=!0,t.send(r)}catch(i){t.send(i)}finally{n&&SM.asyncEnd.publish(n)}})}n$e.exports=xEn});var mce=w((uKr,i$e)=>{"use strict";var{kSchemaHeaders:PW,kSchemaParams:pce,kSchemaQuerystring:hce,kSchemaBody:sT,kSchemaResponse:r$e}=$s(),OEn=/^[1-5](?:\d{2}|xx)$|^default$/,{FST_ERR_SCH_RESPONSE_SCHEMA_NOT_NESTED_2XX:PEn}=Ko(),{FSTWRN001:xW}=Pk();function NEn(e,t){if(!e.schema||!e.schema.response)return;let{method:n,url:r}=e.config||{};e[r$e]=Object.keys(e.schema.response).reduce(function(i,s){let o=e.schema.response[s];if(s=s.toLowerCase(),!OEn.test(s))throw new PEn;if(o.content){let a={};for(let c of Object.keys(o.content)){let u=o.content[c].schema;a[c]=t({schema:u,url:r,method:n,httpStatus:s,contentType:c})}i[s]=a}else i[s]=t({schema:o,url:r,method:n,httpStatus:s});return i},{})}function CEn(e,t,n){let{schema:r}=e;if(!r)return;let{method:i,url:s}=e.config||{},o=r.headers;if(o&&(n||Object.getPrototypeOf(o)!==Object.prototype))e[PW]=t({schema:o,method:i,url:s,httpPart:"headers"});else if(o){let a={};Object.keys(o).forEach(c=>{a[c]=o[c]}),a.required instanceof Array&&(a.required=a.required.map(c=>c.toLowerCase())),o.properties&&(a.properties={},Object.keys(o.properties).forEach(c=>{a.properties[c.toLowerCase()]=o.properties[c]})),e[PW]=t({schema:a,method:i,url:s,httpPart:"headers"})}else Object.hasOwn(r,"headers")&&xW("headers",i,s);if(r.body){let a=r.body.content;if(a){let c={};for(let u of Object.keys(a)){let l=a[u].schema;c[u]=t({schema:l,method:i,url:s,httpPart:"body",contentType:u})}e[sT]=c}else e[sT]=t({schema:r.body,method:i,url:s,httpPart:"body"})}else Object.hasOwn(r,"body")&&xW("body",i,s);r.querystring?e[hce]=t({schema:r.querystring,method:i,url:s,httpPart:"querystring"}):Object.hasOwn(r,"querystring")&&xW("querystring",i,s),r.params?e[pce]=t({schema:r.params,method:i,url:s,httpPart:"params"}):Object.hasOwn(r,"params")&&xW("params",i,s)}function OW(e,t,n){let r=t[n]===void 0,i;try{i=e?.(r?null:t[n])}catch(o){return o.statusCode=500,o}if(i&&typeof i.then=="function")return i.then(o=>s(o)).catch(o=>o);return s(i);function s(o){return o===!1?e.errors:o&&o.error?o.error:(o&&o.value&&(t[n]=o.value),!1)}}function NW(e,t,n){let r=n===void 0;if(r||!n.skipParams){let s=OW(e[pce],t,"params");if(s)return typeof s.then!="function"?ZS(s,"params",e.schemaErrorFormatter):MEn(s,e,t)}if(r||!n.skipBody){let s=null;if(typeof e[sT]=="function")s=e[sT];else if(e[sT]){let a=FEn(t.headers["content-type"]),c=e[sT][a];c&&(s=c)}let o=OW(s,t,"body");if(o)return typeof o.then!="function"?ZS(o,"body",e.schemaErrorFormatter):DEn(o,e,t)}if(r||!n.skipQuery){let s=OW(e[hce],t,"query");if(s)return typeof s.then!="function"?ZS(s,"querystring",e.schemaErrorFormatter):LEn(s,e,t)}let i=OW(e[PW],t,"headers");return i?typeof i.then!="function"?ZS(i,"headers",e.schemaErrorFormatter):UEn(i,e,t):!1}function MEn(e,t,n){return e.then(r=>r?ZS(r,"params",t.schemaErrorFormatter):NW(t,n,{skipParams:!0}))}function DEn(e,t,n){return e.then(r=>r?ZS(r,"body",t.schemaErrorFormatter):NW(t,n,{skipParams:!0,skipBody:!0}))}function LEn(e,t,n){return e.then(r=>r?ZS(r,"querystring",t.schemaErrorFormatter):NW(t,n,{skipParams:!0,skipBody:!0,skipQuery:!0}))}function UEn(e,t,n){return e.then(r=>r?ZS(r,"headers",t.schemaErrorFormatter):!1)}function ZS(e,t,n){if(e instanceof Error)return e.statusCode=e.statusCode||400,e.code=e.code||"FST_ERR_VALIDATION",e.validationContext=e.validationContext||t,e;let r=n(e,t);return r.statusCode=r.statusCode||400,r.code=r.code||"FST_ERR_VALIDATION",r.validation=e,r.validationContext=t,r}function FEn(e){return e?e.trimStart().split(/[ ;]/,1)[0].trim().toLowerCase():""}i$e.exports={symbols:{bodySchema:sT,querystringSchema:hce,responseSchema:r$e,paramsSchema:pce,headersSchema:PW},compileSchemasForValidation:CEn,compileSchemasForSerialization:NEn,validate:NW}});var bce=w((lKr,Sce)=>{"use strict";var jEn=K("node:diagnostics_channel"),HEn=dce(),qEn=fce(),{validate:BEn}=mce(),{preValidationHookRunner:zEn,preHandlerHookRunner:GEn}=YS(),{FST_ERR_CTP_INVALID_MEDIA_TYPE:VEn}=Ko(),{setErrorStatusCode:s$e}=IW(),{kReplyIsError:EM,kRouteContext:Th,kFourOhFourContext:WEn,kSupportedHTTPMethods:o$e}=$s(),bM=jEn.tracingChannel("fastify.request.handler");function KEn(e,t,n){if(n.sent===!0)return;if(e!=null){n[EM]=!0,n.send(e);return}let r=t.method;if(this[o$e].bodyless.has(r)){Ck(t,n);return}if(this[o$e].bodywith.has(r)){let i=t.headers,s=i["content-type"];if(s===void 0){let a=i["content-length"];if(i["transfer-encoding"]===void 0&&(a===void 0||a==="0")){Ck(t,n);return}t[Th].contentTypeParser.run("",Ck,t,n);return}let o=new HEn(s);if(o.isValid===!1){n[EM]=!0,n.status(415).send(new VEn);return}t[Th].contentTypeParser.run(o.toString(),Ck,t,n);return}Ck(t,n)}function Ck(e,t){try{e[Th].preValidation!==null?zEn(e[Th].preValidation,e,t,gce):gce(null,e,t)}catch(n){gce(n,e,t)}}function gce(e,t,n){if(n.sent===!0)return;if(e!=null){n[EM]=!0,n.send(e);return}let r=BEn(n[Th],t);if(r&&typeof r.then=="function"||!1){let s=a$e.bind(null,t,n);r.then(s,s)}else a$e(t,n,r)}function a$e(e,t,n){if(n){if(t[Th].attachValidation===!1){t.send(n);return}t.request.validationError=n}e[Th].preHandler!==null?GEn(e[Th].preHandler,e,t,yce):yce(null,e,t)}function yce(e,t,n){if(n.sent)return;let r=t[Th];if(!bM.hasSubscribers||r[WEn]===null)c$e(e,t,n);else{let i={request:t,reply:n,async:!1,route:{url:r.config.url,method:r.config.method}};bM.start.runStores(i,c$e,void 0,e,t,n,i)}}function c$e(e,t,n,r){let i=t[Th];try{if(e!=null){n[EM]=!0,r&&(r.error=e,s$e(n,e),bM.error.publish(r)),n.send(e);return}let s;try{s=i.handler(t,n)}catch(o){r&&(r.error=o,s$e(n,o),bM.error.publish(r)),n[EM]=!0,n.send(o);return}s!==void 0&&(s!==null&&typeof s.then=="function"?qEn(s,n,r):n.send(s))}finally{r&&bM.end.publish(r)}}Sce.exports=KEn;Sce.exports[Symbol.for("internals")]={handler:Ck,preHandlerCallback:yce}});var l$e=w((dKr,u$e)=>{"use strict";function Mk(){}var YEn={fatal:Mk,error:Mk,warn:Mk,info:Mk,debug:Mk,trace:Mk};Object.defineProperty(u$e,"exports",{get(){return Object.create(YEn)}})});var _ce=w((fKr,p$e)=>{"use strict";var _M=e=>e&&typeof e.message=="string",Ece=e=>{if(!e)return;let t=e.cause;if(typeof t=="function"){let n=e.cause();return _M(n)?n:void 0}else return _M(t)?t:void 0},d$e=(e,t)=>{if(!_M(e))return"";let n=e.stack||"";if(t.has(e))return n+` +causes have become circular...`;let r=Ece(e);return r?(t.add(e),n+` +caused by: `+d$e(r,t)):n},ZEn=e=>d$e(e,new Set),f$e=(e,t,n)=>{if(!_M(e))return"";let r=n?"":e.message||"";if(t.has(e))return r+": ...";let i=Ece(e);if(i){t.add(e);let s=typeof e.cause=="function";return r+(s?"":": ")+f$e(i,t,s)}else return r},JEn=e=>f$e(e,new Set);p$e.exports={isErrorLike:_M,getErrorCause:Ece,stackWithCauses:ZEn,messageWithCauses:JEn}});var Tce=w((pKr,m$e)=>{"use strict";var XEn=Symbol("circular-ref-tag"),CW=Symbol("pino-raw-err-ref"),h$e=Object.create({},{type:{enumerable:!0,writable:!0,value:void 0},message:{enumerable:!0,writable:!0,value:void 0},stack:{enumerable:!0,writable:!0,value:void 0},aggregateErrors:{enumerable:!0,writable:!0,value:void 0},raw:{enumerable:!1,get:function(){return this[CW]},set:function(e){this[CW]=e}}});Object.defineProperty(h$e,CW,{writable:!0,value:{}});m$e.exports={pinoErrProto:h$e,pinoErrorSymbols:{seen:XEn,rawSymbol:CW}}});var S$e=w((hKr,y$e)=>{"use strict";y$e.exports=Rce;var{messageWithCauses:QEn,stackWithCauses:$En,isErrorLike:g$e}=_ce(),{pinoErrProto:e_n,pinoErrorSymbols:t_n}=Tce(),{seen:vce}=t_n,{toString:n_n}=Object.prototype;function Rce(e){if(!g$e(e))return e;e[vce]=void 0;let t=Object.create(e_n);t.type=n_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=QEn(e),t.stack=$En(e),Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>Rce(n)));for(let n in e)if(t[n]===void 0){let r=e[n];g$e(r)?n!=="cause"&&!Object.prototype.hasOwnProperty.call(r,vce)&&(t[n]=Rce(r)):t[n]=r}return delete e[vce],t.raw=e,t}});var E$e=w((mKr,b$e)=>{"use strict";b$e.exports=DW;var{isErrorLike:Ace}=_ce(),{pinoErrProto:r_n,pinoErrorSymbols:i_n}=Tce(),{seen:MW}=i_n,{toString:s_n}=Object.prototype;function DW(e){if(!Ace(e))return e;e[MW]=void 0;let t=Object.create(r_n);t.type=s_n.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,t.message=e.message,t.stack=e.stack,Array.isArray(e.errors)&&(t.aggregateErrors=e.errors.map(n=>DW(n))),Ace(e.cause)&&!Object.prototype.hasOwnProperty.call(e.cause,MW)&&(t.cause=DW(e.cause));for(let n in e)if(t[n]===void 0){let r=e[n];Ace(r)?Object.prototype.hasOwnProperty.call(r,MW)||(t[n]=DW(r)):t[n]=r}return delete e[MW],t.raw=e,t}});var R$e=w((gKr,v$e)=>{"use strict";v$e.exports={mapHttpRequest:o_n,reqSerializer:T$e};var wce=Symbol("pino-raw-req-ref"),_$e=Object.create({},{id:{enumerable:!0,writable:!0,value:""},method:{enumerable:!0,writable:!0,value:""},url:{enumerable:!0,writable:!0,value:""},query:{enumerable:!0,writable:!0,value:""},params:{enumerable:!0,writable:!0,value:""},headers:{enumerable:!0,writable:!0,value:{}},remoteAddress:{enumerable:!0,writable:!0,value:""},remotePort:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[wce]},set:function(e){this[wce]=e}}});Object.defineProperty(_$e,wce,{writable:!0,value:{}});function T$e(e){let t=e.info||e.socket,n=Object.create(_$e);if(n.id=typeof e.id=="function"?e.id():e.id||(e.info?e.info.id:void 0),n.method=e.method,e.originalUrl)n.url=e.originalUrl;else{let r=e.path;n.url=typeof r=="string"?r:e.url?e.url.path||e.url:void 0}return e.query&&(n.query=e.query),e.params&&(n.params=e.params),n.headers=e.headers,n.remoteAddress=t&&t.remoteAddress,n.remotePort=t&&t.remotePort,n.raw=e.raw||e,n}function o_n(e){return{req:T$e(e)}}});var I$e=w((yKr,k$e)=>{"use strict";k$e.exports={mapHttpResponse:a_n,resSerializer:w$e};var kce=Symbol("pino-raw-res-ref"),A$e=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[kce]},set:function(e){this[kce]=e}}});Object.defineProperty(A$e,kce,{writable:!0,value:{}});function w$e(e){let t=Object.create(A$e);return t.statusCode=e.headersSent?e.statusCode:null,t.headers=e.getHeaders?e.getHeaders():e._headers,t.raw=e,t}function a_n(e){return{res:w$e(e)}}});var xce=w((SKr,x$e)=>{"use strict";var Ice=S$e(),c_n=E$e(),LW=R$e(),UW=I$e();x$e.exports={err:Ice,errWithCause:c_n,mapHttpRequest:LW.mapHttpRequest,mapHttpResponse:UW.mapHttpResponse,req:LW.reqSerializer,res:UW.resSerializer,wrapErrorSerializer:function(t){return t===Ice?t:function(r){return t(Ice(r))}},wrapRequestSerializer:function(t){return t===LW.reqSerializer?t:function(r){return t(LW.reqSerializer(r))}},wrapResponseSerializer:function(t){return t===UW.resSerializer?t:function(r){return t(UW.resSerializer(r))}}}});var Oce=w((bKr,O$e)=>{"use strict";function u_n(e,t){return t}O$e.exports=function(){let t=Error.prepareStackTrace;Error.prepareStackTrace=u_n;let n=new Error().stack;if(Error.prepareStackTrace=t,!Array.isArray(n))return;let r=n.slice(2),i=[];for(let s of r)s&&i.push(s.getFileName());return i}});var L$e=w((EKr,D$e)=>{"use strict";function Pce(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Array){let t=[];for(let n=0;n{let m=[...c.slice(0,d),...h];return n(p,m)}:n,i,s);else if(s)C$e(l,a);else{let f=typeof n=="function"?n(d_n(l,a),[...c.slice(0,d),...a]):n;N$e(l,a,f)}}if(o.length===0)u(e,0);else{let l=e;for(let d=0;d0)n?s===r&&(n=!1,r=""):(n=!0,r=s);else if(s==="["&&!n)t++;else if(s==="]"&&!n&&(t--,t<0))throw new Error(`Invalid redaction path (${e})`)}if(t!==0)throw new Error(`Invalid redaction path (${e})`)}function y_n(e){if(!Array.isArray(e))throw new TypeError("paths must be an array");for(let t of e)g_n(t)}function S_n(e={}){let{paths:t=[],censor:n="[REDACTED]",serialize:r=JSON.stringify,strict:i=!0,remove:s=!1}=e;y_n(t);let o=h_n(t);return function(c){if(i&&(c===null||typeof c!="object")&&(c==null||typeof c!="object"))return r?r(c):c;let u=m_n(c,o),l=c,d=n;return typeof n=="function"&&(d=n),f_n(u,t,d,s),r===!1?(u.restore=function(){return Pce(l)},u):typeof r=="function"?r(u):JSON.stringify(u)}}D$e.exports=S_n});var Dk=w((_Kr,U$e)=>{"use strict";var b_n=Symbol("pino.setLevel"),E_n=Symbol("pino.getLevel"),__n=Symbol("pino.levelVal"),T_n=Symbol("pino.levelComp"),v_n=Symbol("pino.useLevelLabels"),R_n=Symbol("pino.useOnlyCustomLevels"),A_n=Symbol("pino.mixin"),w_n=Symbol("pino.lsCache"),k_n=Symbol("pino.chindings"),I_n=Symbol("pino.asJson"),x_n=Symbol("pino.write"),O_n=Symbol("pino.redactFmt"),P_n=Symbol("pino.time"),N_n=Symbol("pino.timeSliceIndex"),C_n=Symbol("pino.stream"),M_n=Symbol("pino.stringify"),D_n=Symbol("pino.stringifySafe"),L_n=Symbol("pino.stringifiers"),U_n=Symbol("pino.end"),F_n=Symbol("pino.formatOpts"),j_n=Symbol("pino.messageKey"),H_n=Symbol("pino.errorKey"),q_n=Symbol("pino.nestedKey"),B_n=Symbol("pino.nestedKeyStr"),z_n=Symbol("pino.mixinMergeStrategy"),G_n=Symbol("pino.msgPrefix"),V_n=Symbol("pino.wildcardFirst"),W_n=Symbol.for("pino.serializers"),K_n=Symbol.for("pino.formatters"),Y_n=Symbol.for("pino.hooks"),Z_n=Symbol.for("pino.metadata");U$e.exports={setLevelSym:b_n,getLevelSym:E_n,levelValSym:__n,levelCompSym:T_n,useLevelLabelsSym:v_n,mixinSym:A_n,lsCacheSym:w_n,chindingsSym:k_n,asJsonSym:I_n,writeSym:x_n,serializersSym:W_n,redactFmtSym:O_n,timeSym:P_n,timeSliceIndexSym:N_n,streamSym:C_n,stringifySym:M_n,stringifySafeSym:D_n,stringifiersSym:L_n,endSym:U_n,formatOptsSym:F_n,messageKeySym:j_n,errorKeySym:H_n,nestedKeySym:q_n,wildcardFirstSym:V_n,needsMetadataGsym:Z_n,useOnlyCustomLevelsSym:R_n,formattersSym:K_n,hooksSym:Y_n,nestedKeyStrSym:B_n,mixinMergeStrategySym:z_n,msgPrefixSym:G_n}});var Cce=w((TKr,q$e)=>{"use strict";var F$e=L$e(),{redactFmtSym:J_n,wildcardFirstSym:jW}=Dk(),Nce=/[^.[\]]+|\[([^[\]]*?)\]/g,j$e="[Redacted]",H$e=!1;function X_n(e,t){let{paths:n,censor:r,remove:i}=Q_n(e),s=n.reduce((c,u)=>{Nce.lastIndex=0;let l=Nce.exec(u),d=Nce.exec(u),f=l[1]!==void 0?l[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):l[0];if(f==="*"&&(f=jW),d===null)return c[f]=null,c;if(c[f]===null)return c;let{index:p}=d,h=`${u.substr(p,u.length-1)}`;return c[f]=c[f]||[],f!==jW&&c[f].length===0&&c[f].push(...c[jW]||[]),f===jW&&Object.keys(c).forEach(function(m){c[m]&&c[m].push(h)}),c[f].push(h),c},{}),o={[J_n]:F$e({paths:n,censor:r,serialize:t,strict:H$e,remove:i})},a=(...c)=>t(typeof r=="function"?r(...c):r);return[...Object.keys(s),...Object.getOwnPropertySymbols(s)].reduce((c,u)=>{if(s[u]===null)c[u]=l=>a(l,[u]);else{let l=typeof r=="function"?(d,f)=>r(d,[u,...f]):r;c[u]=F$e({paths:s[u],censor:l,serialize:t,strict:H$e,remove:i})}return c},o)}function Q_n(e){if(Array.isArray(e))return e={paths:e,censor:j$e},e;let{paths:t,censor:n=j$e,remove:r}=e;if(Array.isArray(t)===!1)throw Error("pino \u2013 redact must contain an array of strings");return r===!0&&(n=void 0),{paths:t,censor:n,remove:r}}q$e.exports=X_n});var G$e=w((vKr,z$e)=>{"use strict";var $_n=()=>"",eTn=()=>`,"time":${Date.now()}`,tTn=()=>`,"time":${Math.round(Date.now()/1e3)}`,nTn=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,rTn=1000000n,B$e=1000000000n,iTn=BigInt(Date.now())*rTn,sTn=process.hrtime.bigint(),oTn=()=>{let e=process.hrtime.bigint()-sTn,t=iTn+e,n=t/B$e,r=t%B$e,i=Number(n*1000n+r/1000000n),s=new Date(i),o=s.getUTCFullYear(),a=(s.getUTCMonth()+1).toString().padStart(2,"0"),c=s.getUTCDate().toString().padStart(2,"0"),u=s.getUTCHours().toString().padStart(2,"0"),l=s.getUTCMinutes().toString().padStart(2,"0"),d=s.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${o}-${a}-${c}T${u}:${l}:${d}.${r.toString().padStart(9,"0")}Z"`};z$e.exports={nullTime:$_n,epochTime:eTn,unixTime:tTn,isoTime:nTn,isoTimeNano:oTn}});var W$e=w((RKr,V$e)=>{"use strict";function aTn(e){try{return JSON.stringify(e)}catch{return'"[Circular]"'}}V$e.exports=cTn;function cTn(e,t,n){var r=n&&n.stringify||aTn,i=1;if(typeof e=="object"&&e!==null){var s=t.length+i;if(s===1)return e;var o=new Array(s);o[0]=r(e);for(var a=1;a-1?d:0,e.charCodeAt(p+1)){case 100:case 102:if(l>=c||t[l]==null)break;d=c||t[l]==null)break;d=c||t[l]===void 0)break;d",d=p+2,p++;break}u+=r(t[l]),d=p+2,p++;break;case 115:if(l>=c)break;d{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let t=function(n){if((n>0&&n<1/0)===!1)throw typeof n!="number"&&typeof n!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(e,0,0,Number(n))},e=new Int32Array(new SharedArrayBuffer(4));Mce.exports=t}else{let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let r=Date.now()+Number(t);for(;r>Date.now(););};Mce.exports=e}});var eet=w((wKr,$$e)=>{"use strict";var Si=K("fs"),uTn=K("events"),lTn=K("util").inherits,K$e=K("path"),Uce=Dce(),dTn=K("assert"),HW=100,qW=Buffer.allocUnsafe(0),fTn=16*1024,Y$e="buffer",Z$e="utf8",[pTn,hTn]=(process.versions.node||"0.0").split(".").map(Number),mTn=pTn>=22&&hTn>=7;function J$e(e,t){t._opening=!0,t._writing=!0,t._asyncDrainScheduled=!1;function n(s,o){if(s){t._reopening=!1,t._writing=!1,t._opening=!1,t.sync?process.nextTick(()=>{t.listenerCount("error")>0&&t.emit("error",s)}):t.emit("error",s);return}let a=t._reopening;t.fd=o,t.file=e,t._reopening=!1,t._opening=!1,t._writing=!1,t.sync?process.nextTick(()=>t.emit("ready")):t.emit("ready"),!t.destroyed&&(!t._writing&&t._len>t.minLength||t._flushPending?t._actualWrite():a&&process.nextTick(()=>t.emit("drain")))}let r=t.append?"a":"w",i=t.mode;if(t.sync)try{t.mkdir&&Si.mkdirSync(K$e.dirname(e),{recursive:!0});let s=Si.openSync(e,r,i);n(null,s)}catch(s){throw n(s),s}else t.mkdir?Si.mkdir(K$e.dirname(e),{recursive:!0},s=>{if(s)return n(s);Si.open(e,r,i,n)}):Si.open(e,r,i,n)}function Pf(e){if(!(this instanceof Pf))return new Pf(e);let{fd:t,dest:n,minLength:r,maxLength:i,maxWrite:s,periodicFlush:o,sync:a,append:c=!0,mkdir:u,retryEAGAIN:l,fsync:d,contentMode:f,mode:p}=e||{};t=t||n,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(r||0,16387),this.file=null,this.destroyed=!1,this.minLength=r||0,this.maxLength=i||0,this.maxWrite=s||fTn,this._periodicFlush=o||0,this._periodicFlushTimer=void 0,this.sync=a||!1,this.writable=!0,this._fsync=d||!1,this.append=c||!1,this.mode=p,this.retryEAGAIN=l||(()=>!0),this.mkdir=u||!1;let h,m;if(f===Y$e)this._writingBuf=qW,this.write=STn,this.flush=ETn,this.flushSync=TTn,this._actualWrite=RTn,h=()=>Si.writeSync(this.fd,this._writingBuf),m=()=>Si.write(this.fd,this._writingBuf,this.release);else if(f===void 0||f===Z$e)this._writingBuf="",this.write=yTn,this.flush=bTn,this.flushSync=_Tn,this._actualWrite=vTn,h=()=>Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8"),m=()=>Buffer.isBuffer(this._writingBuf)?Si.write(this.fd,this._writingBuf,this.release):Si.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${Z$e}" and "${Y$e}", but passed ${f}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")J$e(t,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(g,y)=>{if(g){if((g.code==="EAGAIN"||g.code==="EBUSY")&&this.retryEAGAIN(g,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{Uce(HW),this.release(void 0,0)}catch(E){this.release(E)}else setTimeout(m,HW);else this._writing=!1,this.emit("error",g);return}this.emit("write",y);let b=Lce(this._writingBuf,this._len,y);if(this._len=b.len,this._writingBuf=b.writingBuf,this._writingBuf.length){if(!this.sync){m();return}try{do{let E=h(),_=Lce(this._writingBuf,this._len,E);this._len=_.len,this._writingBuf=_.writingBuf}while(this._writingBuf.length)}catch(E){this.release(E);return}}this._fsync&&Si.fsyncSync(this.fd);let S=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):S>this.minLength?this._actualWrite():this._ending?S>0?this._actualWrite():(this._writing=!1,BW(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(gTn,this)):this.emit("drain"))},this.on("newListener",function(g){g==="drain"&&(this._asyncDrainScheduled=!1)}),this._periodicFlush!==0&&(this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref())}function Lce(e,t,n){return typeof e=="string"&&(e=Buffer.from(e)),t=Math.max(t-n,0),e=e.subarray(n),{writingBuf:e,len:t}}function gTn(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}lTn(Pf,uTn);function X$e(e,t){return e.length===0?qW:e.length===1?e[0]:Buffer.concat(e,t)}function yTn(e){if(this.destroyed)throw new Error("SonicBoom destroyed");e=""+e;let t=Buffer.byteLength(e),n=this._len+t,r=this._bufs;return this.maxLength&&n>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(e):r[r.length-1]+=e,this._len=n,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(n.push([e]),r.push(e.length)):(n[n.length-1].push(e),r[r.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{if(this._fsync)this._flushPending=!1,e();else try{Si.fsync(this.fd,r=>{this._flushPending=!1,e(r)})}catch(r){e(r)}this.off("error",n)},n=r=>{this._flushPending=!1,e(r),this.off("drain",t)};this.once("drain",t),this.once("error",n)}function bTn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&Q$e.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function ETn(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&Q$e.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}Pf.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&Si.close(t,n=>{if(n)return this.emit("error",n)})}),J$e(this.file,this)};Pf.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():BW(this)))};function _Tn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e.length;){e.length<=0&&(e=this._bufs[0]);try{let t=Buffer.isBuffer(e)?Si.writeSync(this.fd,e):Si.writeSync(this.fd,e,"utf8"),n=Lce(e,this._len,t);e=n.writingBuf,this._len=n.len,e.length<=0&&this._bufs.shift()}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;Uce(HW)}}try{Si.fsyncSync(this.fd)}catch{}}function TTn(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=qW);let e=qW;for(;this._bufs.length||e.length;){e.length<=0&&(e=X$e(this._bufs[0],this._lens[0]));try{let t=Si.writeSync(this.fd,e);e=e.subarray(t),this._len=Math.max(this._len-t,0),e.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;Uce(HW)}}}Pf.prototype.destroy=function(){this.destroyed||BW(this)};function vTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let t=Buffer.isBuffer(this._writingBuf)?Si.writeSync(this.fd,this._writingBuf):Si.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else Si.write(this.fd,this._writingBuf,e)}function RTn(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:X$e(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=Si.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else mTn&&(this._writingBuf=Buffer.from(this._writingBuf)),Si.write(this.fd,this._writingBuf,e)}function BW(e){if(e.fd===-1){e.once("ready",BW.bind(null,e));return}e._periodicFlushTimer!==void 0&&clearInterval(e._periodicFlushTimer),e.destroyed=!0,e._bufs=[],e._lens=[],dTn(typeof e.fd=="number",`sonic.fd must be a number, got ${typeof e.fd}`);try{Si.fsync(e.fd,t)}catch{}function t(){e.fd!==1&&e.fd!==2?Si.close(e.fd,n):n()}function n(r){if(r){e.emit("error",r);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}Pf.SonicBoom=Pf;Pf.default=Pf;$$e.exports=Pf});var Fce=w((kKr,set)=>{"use strict";var Nf={exit:[],beforeExit:[]},tet={exit:kTn,beforeExit:ITn},Lk;function ATn(){Lk===void 0&&(Lk=new FinalizationRegistry(xTn))}function wTn(e){Nf[e].length>0||process.on(e,tet[e])}function net(e){Nf[e].length>0||(process.removeListener(e,tet[e]),Nf.exit.length===0&&Nf.beforeExit.length===0&&(Lk=void 0))}function kTn(){ret("exit")}function ITn(){ret("beforeExit")}function ret(e){for(let t of Nf[e]){let n=t.deref(),r=t.fn;n!==void 0&&r(n,e)}Nf[e]=[]}function xTn(e){for(let t of["exit","beforeExit"]){let n=Nf[t].indexOf(e);Nf[t].splice(n,n+1),net(t)}}function iet(e,t,n){if(t===void 0)throw new Error("the object can't be undefined");wTn(e);let r=new WeakRef(t);r.fn=n,ATn(),Lk.register(t,r),Nf[e].push(r)}function OTn(e,t){iet("exit",e,t)}function PTn(e,t){iet("beforeExit",e,t)}function NTn(e){if(Lk!==void 0){Lk.unregister(e);for(let t of["exit","beforeExit"])Nf[t]=Nf[t].filter(n=>{let r=n.deref();return r&&r!==e}),net(t)}}set.exports={register:OTn,registerBeforeExit:PTn,unregister:NTn}});var oet=w((IKr,CTn)=>{CTn.exports={name:"thread-stream",version:"4.0.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^0.2.0"},devDependencies:{"@types/node":"^22.0.0","@yao-pkg/pkg":"^6.0.0",borp:"^0.21.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",husky:"^9.0.6",neostandard:"^0.12.2","pino-elasticsearch":"^8.0.0","sonic-boom":"^4.0.1","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:"npm run lint && npm run build && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:ci":"npm run lint && npm run transpile && borp --pattern 'test/*.test.{js,mjs}'","test:yarn":"npm run transpile && borp --pattern 'test/*.test.js'",transpile:"sh ./test/ts/transpile.sh",prepare:"husky install"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina ",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var cet=w((xKr,aet)=>{"use strict";function MTn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{let a=Atomics.load(e,t);if(a===n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,a,c);u.async?u.value.then(o):setImmediate(o)};o()}function DTn(e,t,n,r,i){let s=r===1/0?1/0:Date.now()+r,o=()=>{if(Atomics.load(e,t)!==n){i(null,"ok");return}if(s!==1/0&&Date.now()>s){i(null,"timed-out");return}let c=s===1/0?1e4:Math.min(1e4,Math.max(1,s-Date.now())),u=Atomics.waitAsync(e,t,n,c);u.async?u.value.then(o):setImmediate(o)};o()}aet.exports={wait:MTn,waitDiff:DTn}});var det=w((OKr,uet)=>{"use strict";uet.exports={WRITE_INDEX:4,READ_INDEX:8}});var get=w((PKr,met)=>{"use strict";var{version:LTn}=oet(),{EventEmitter:UTn}=K("events"),{Worker:FTn}=K("worker_threads"),{join:jTn}=K("path"),{pathToFileURL:HTn}=K("url"),{wait:qTn}=cet(),{WRITE_INDEX:xu,READ_INDEX:Iu}=det(),BTn=K("buffer"),zTn=K("assert"),be=Symbol("kImpl"),GTn=BTn.constants.MAX_STRING_LENGTH,TM=class{constructor(t){this._value=t}deref(){return this._value}},GW=class{register(){}unregister(){}},VTn=process.env.NODE_V8_COVERAGE?GW:global.FinalizationRegistry||GW,WTn=process.env.NODE_V8_COVERAGE?TM:global.WeakRef||TM,fet=new VTn(e=>{e.exited||e.terminate()});function KTn(e,t){let{filename:n,workerData:r}=t,s=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||jTn(__dirname,"lib","worker.js"),o=new FTn(s,{...t.workerOpts,trackUnmanagedFds:!1,workerData:{filename:n.indexOf("file://")===0?n:HTn(n).href,dataBuf:e[be].dataBuf,stateBuf:e[be].stateBuf,workerData:{$context:{threadStreamVersion:LTn},...r}}});return o.stream=new TM(e),o.on("message",YTn),o.on("exit",het),fet.register(e,o),o}function pet(e){zTn(!e[be].sync),e[be].needDrain&&(e[be].needDrain=!1,e.emit("drain"))}function zW(e){let t=Atomics.load(e[be].state,xu),n=e[be].data.length-t;if(n>0){if(e[be].buf.length===0){e[be].flushing=!1,e[be].ending?zce(e):e[be].needDrain&&process.nextTick(pet,e);return}let r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);i<=n?(e[be].buf=e[be].buf.slice(n),VW(e,r,zW.bind(null,e))):e.flush(()=>{if(!e.destroyed){for(Atomics.store(e[be].state,Iu,0),Atomics.store(e[be].state,xu,0),Atomics.notify(e[be].state,Iu);i>e[be].data.length;)n=n/2,r=e[be].buf.slice(0,n),i=Buffer.byteLength(r);e[be].buf=e[be].buf.slice(n),VW(e,r,zW.bind(null,e))}})}else if(n===0){if(t===0&&e[be].buf.length===0)return;e.flush(()=>{Atomics.store(e[be].state,Iu,0),Atomics.store(e[be].state,xu,0),Atomics.notify(e[be].state,Iu),zW(e)})}else vh(e,new Error("overwritten"))}function YTn(e){let t=this.stream.deref();if(t===void 0){this.exited=!0,this.terminate();return}switch(e.code){case"READY":this.stream=new WTn(t),t.flush(()=>{t[be].ready=!0,t.emit("ready")});break;case"ERROR":vh(t,e.err);break;case"EVENT":Array.isArray(e.args)?t.emit(e.name,...e.args):t.emit(e.name,e.args);break;case"WARNING":process.emitWarning(e.err);break;default:vh(t,new Error("this should not happen: "+e.code))}}function het(e){let t=this.stream.deref();t!==void 0&&(fet.unregister(t),t.worker.exited=!0,t.worker.off("exit",het),vh(t,e!==0?new Error("the worker thread exited"):null))}var Hce=class extends UTn{constructor(t={}){if(super(),t.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[be]={},this[be].stateBuf=new SharedArrayBuffer(128),this[be].state=new Int32Array(this[be].stateBuf),this[be].dataBuf=new SharedArrayBuffer(t.bufferSize||4*1024*1024),this[be].data=Buffer.from(this[be].dataBuf),this[be].sync=t.sync||!1,this[be].ending=!1,this[be].ended=!1,this[be].needDrain=!1,this[be].destroyed=!1,this[be].flushing=!1,this[be].ready=!1,this[be].finished=!1,this[be].errored=null,this[be].closed=!1,this[be].buf="",this.worker=KTn(this,t),this.on("message",(n,r)=>{this.worker.postMessage(n,r)})}write(t){if(this[be].destroyed)return qce(this,new Error("the worker has exited")),!1;if(this[be].ending)return qce(this,new Error("the worker is ending")),!1;if(this[be].flushing&&this[be].buf.length+t.length>=GTn)try{jce(this),this[be].flushing=!0}catch(n){return vh(this,n),!1}if(this[be].buf+=t,this[be].sync)try{return jce(this),!0}catch(n){return vh(this,n),!1}return this[be].flushing||(this[be].flushing=!0,setImmediate(zW,this)),this[be].needDrain=this[be].data.length-this[be].buf.length-Atomics.load(this[be].state,xu)<=0,!this[be].needDrain}end(){this[be].destroyed||(this[be].ending=!0,zce(this))}flush(t){if(this[be].destroyed){typeof t=="function"&&process.nextTick(t,new Error("the worker has exited"));return}let n=Atomics.load(this[be].state,xu);qTn(this[be].state,Iu,n,1/0,(r,i)=>{if(r){vh(this,r),process.nextTick(t,r);return}if(i==="not-equal"){this.flush(t);return}process.nextTick(t)})}flushSync(){this[be].destroyed||(jce(this),Bce(this))}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[be].ready}get destroyed(){return this[be].destroyed}get closed(){return this[be].closed}get writable(){return!this[be].destroyed&&!this[be].ending}get writableEnded(){return this[be].ending}get writableFinished(){return this[be].finished}get writableNeedDrain(){return this[be].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[be].errored}};function qce(e,t){setImmediate(()=>{e.emit("error",t)})}function vh(e,t){e[be].destroyed||(e[be].destroyed=!0,t&&(e[be].errored=t,qce(e,t)),e.worker.exited?setImmediate(()=>{e[be].closed=!0,e.emit("close")}):e.worker.terminate().catch(()=>{}).then(()=>{e[be].closed=!0,e.emit("close")}))}function VW(e,t,n){let r=Atomics.load(e[be].state,xu),i=Buffer.byteLength(t);return e[be].data.write(t,r),Atomics.store(e[be].state,xu,r+i),Atomics.notify(e[be].state,xu),n(),!0}function zce(e){if(!(e[be].ended||!e[be].ending||e[be].flushing)){e[be].ended=!0;try{e.flushSync();let t=Atomics.load(e[be].state,Iu);Atomics.store(e[be].state,xu,-1),Atomics.notify(e[be].state,xu);let n=0;for(;t!==-1;){if(Atomics.wait(e[be].state,Iu,t,1e3),t=Atomics.load(e[be].state,Iu),t===-2){vh(e,new Error("end() failed"));return}if(++n===10){vh(e,new Error("end() took too long (10s)"));return}}process.nextTick(()=>{e[be].finished=!0,e.emit("finish")})}catch(t){vh(e,t)}}}function jce(e){let t=()=>{e[be].ending?zce(e):e[be].needDrain&&process.nextTick(pet,e)};for(e[be].flushing=!1;e[be].buf.length!==0;){let n=Atomics.load(e[be].state,xu),r=e[be].data.length-n;if(r===0){Bce(e),Atomics.store(e[be].state,Iu,0),Atomics.store(e[be].state,xu,0),Atomics.notify(e[be].state,Iu);continue}else if(r<0)throw new Error("overwritten");let i=e[be].buf.slice(0,r),s=Buffer.byteLength(i);if(s<=r)e[be].buf=e[be].buf.slice(r),VW(e,i,t);else{for(Bce(e),Atomics.store(e[be].state,Iu,0),Atomics.store(e[be].state,xu,0),Atomics.notify(e[be].state,Iu);s>e[be].buf.length;)r=r/2,i=e[be].buf.slice(0,r),s=Buffer.byteLength(i);e[be].buf=e[be].buf.slice(r),VW(e,i,t)}}}function Bce(e){if(e[be].flushing)throw new Error("unable to flush while flushing");let t=Atomics.load(e[be].state,xu),n=0;for(;;){let r=Atomics.load(e[be].state,Iu);if(r===-2)throw Error("_flushSync failed");if(r!==t)Atomics.wait(e[be].state,Iu,r,1e3);else break;if(++n===10)throw new Error("_flushSync took too long (10s)")}}met.exports=Hce});var Wce=w((NKr,Eet)=>{"use strict";var{createRequire:ZTn}=K("module"),{existsSync:JTn}=K("node:fs"),XTn=Oce(),{join:Gce,isAbsolute:bet,sep:QTn}=K("node:path"),{fileURLToPath:$Tn}=K("node:url"),evn=Dce(),Vce=Fce(),tvn=get();function nvn(e){Vce.register(e,avn),Vce.registerBeforeExit(e,cvn),e.on("close",function(){Vce.unregister(e)})}function rvn(){let e=process.execArgv;for(let t=0;th.target).map(h=>({...h,target:p(h.target)})),c.pipelines=n.filter(h=>h.pipeline).map(h=>h.pipeline.map(m=>({...m,level:h.level,target:p(m.target)})))):t&&(d=l["pino-worker"]||Gce(__dirname,"worker.js"),c.pipelines=[t.map(h=>({...h,target:p(h.target)}))]),r&&(c.levels=r),i&&(c.dedupe=i),c.pinoWillSendConfig=!0;let f=n||t?"pino.transport":d;return ovn(p(d),c,s,a,f);function p(h){if(h=l[h]||h,bet(h)||h.indexOf("file://")===0)return h;if(h==="pino/file")return Gce(__dirname,"..","file.js");let m;for(let g of u)try{let y=g==="node:repl"?process.cwd()+QTn:g;m=ZTn(y).resolve(h);break}catch{continue}if(!m)throw new Error(`unable to determine transport target for "${h}"`);return m}}Eet.exports=uvn});var YW=w((MKr,Cet)=>{"use strict";var lvn=K("node:diagnostics_channel"),_et=W$e(),{mapHttpRequest:dvn,mapHttpResponse:fvn}=xce(),Yce=eet(),Tet=Fce(),{lsCacheSym:pvn,chindingsSym:ket,writeSym:vet,serializersSym:Iet,formatOptsSym:Ret,endSym:hvn,stringifiersSym:xet,stringifySym:Oet,stringifySafeSym:Zce,wildcardFirstSym:Pet,nestedKeySym:mvn,formattersSym:Net,messageKeySym:gvn,errorKeySym:yvn,nestedKeyStrSym:Svn,msgPrefixSym:WW}=Dk(),{isMainThread:bvn}=K("worker_threads"),Evn=Wce(),[_vn]=process.versions.node.split(".").map(e=>Number(e)),Aet=lvn.tracingChannel("pino_asJson"),Kce=_vn>=25?e=>JSON.stringify(e):vvn;function Uk(){}function Tvn(e,t){if(!t)return n;return function(...i){t.call(this,i,n,e)};function n(r,...i){if(typeof r=="object"){let s=r;r!==null&&(r.method&&r.headers&&r.socket?r=dvn(r):typeof r.setHeader=="function"&&(r=fvn(r)));let o;s===null&&i.length===0?o=[null]:(s=i.shift(),o=i),typeof this[WW]=="string"&&s!==void 0&&s!==null&&(s=this[WW]+s),this[vet](r,_et(s,o,this[Ret]),e)}else{let s=r===void 0?i.shift():r;typeof this[WW]=="string"&&s!==void 0&&s!==null&&(s=this[WW]+s),this[vet](null,_et(s,i,this[Ret]),e)}}}function vvn(e){let t="",n=0,r=!1,i=255,s=e.length;if(s>100)return JSON.stringify(e);for(var o=0;o=32;o++)i=e.charCodeAt(o),(i===34||i===92)&&(t+=e.slice(n,o)+"\\",n=o,r=!0);return r?t+=e.slice(n):t=e,i<32?JSON.stringify(e):'"'+t+'"'}function Rvn(e,t,n,r){if(Aet.hasSubscribers===!1)return wet.call(this,e,t,n,r);let i={instance:this,arguments};return Aet.traceSync(wet,i,this,e,t,n,r)}function wet(e,t,n,r){let i=this[Oet],s=this[Zce],o=this[xet],a=this[hvn],c=this[ket],u=this[Iet],l=this[Net],d=this[gvn],f=this[yvn],p=this[pvn][n]+r;p=p+c;let h;l.log&&(e=l.log(e));let m=o[Pet],g="";for(let b in e)if(h=e[b],Object.prototype.hasOwnProperty.call(e,b)&&h!==void 0){u[b]?h=u[b](h):b===f&&u.err&&(h=u.err(h));let S=o[b]||m;switch(typeof h){case"undefined":case"function":continue;case"number":Number.isFinite(h)===!1&&(h=null);case"boolean":S&&(h=S(h));break;case"string":h=(S||Kce)(h);break;default:h=(S||i)(h,s)}if(h===void 0)continue;let E=Kce(b);g+=","+E+":"+h}let y="";if(t!==void 0){h=u[d]?u[d](t):t;let b=o[d]||m;switch(typeof h){case"function":break;case"number":Number.isFinite(h)===!1&&(h=null);case"boolean":b&&(h=b(h)),y=',"'+d+'":'+h;break;case"string":h=(b||Kce)(h),y=',"'+d+'":'+h;break;default:h=(b||i)(h,s),y=',"'+d+'":'+h}}return this[mvn]&&g?p+this[Svn]+g.slice(1)+"}"+y+a:p+g+y+a}function Avn(e,t){let n,r=e[ket],i=e[Oet],s=e[Zce],o=e[xet],a=o[Pet],c=e[Iet],u=e[Net].bindings;t=u(t);for(let l in t)if(n=t[l],((l.length<5||l!=="level"&&l!=="serializers"&&l!=="formatters"&&l!=="customLevels")&&t.hasOwnProperty(l)&&n!==void 0)===!0){if(n=c[l]?c[l](n):n,n=(o[l]||a||i)(n,s),n===void 0)continue;r+=',"'+l+'":'+n}return r}function wvn(e){return e.write!==e.constructor.prototype.write}function KW(e){let t=new Yce(e);return t.on("error",n),!e.sync&&bvn&&(Tet.register(t,kvn),t.on("close",function(){Tet.unregister(t)})),t;function n(r){if(r.code==="EPIPE"){t.write=Uk,t.end=Uk,t.flushSync=Uk,t.destroy=Uk;return}t.removeListener("error",n),t.emit("error",r)}}function kvn(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",function(){e.end()})):e.flushSync())}function Ivn(e){return function(n,r,i={},s){if(typeof i=="string")s=KW({dest:i}),i={};else if(typeof s=="string"){if(i&&i.transport)throw Error("only one of option.transport or stream can be specified");s=KW({dest:s})}else if(i instanceof Yce||i.writable||i._writableState)s=i,i={};else if(i.transport){if(i.transport instanceof Yce||i.transport.writable||i.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(i.transport.targets&&i.transport.targets.length&&i.formatters&&typeof i.formatters.level=="function")throw Error("option.transport.targets do not allow custom level formatters");let c;i.customLevels&&(c=i.useOnlyCustomLevels?i.customLevels:Object.assign({},i.levels,i.customLevels)),s=Evn({caller:r,...i.transport,levels:c})}if(i=Object.assign({},e,i),i.serializers=Object.assign({},e.serializers,i.serializers),i.formatters=Object.assign({},e.formatters,i.formatters),i.prettyPrint)throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:o,onChild:a}=i;return o===!1&&(i.level="silent"),a||(i.onChild=Uk),s||(wvn(process.stdout)?s=process.stdout:s=KW({fd:process.stdout.fd||1})),{opts:i,stream:s}}}function xvn(e,t){try{return JSON.stringify(e)}catch{try{return(t||this[Zce])(e)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function Ovn(e,t,n){return{level:e,bindings:t,log:n}}function Pvn(e){let t=Number(e);return typeof e=="string"&&Number.isFinite(t)?t:e===void 0?1:e}Cet.exports={noop:Uk,buildSafeSonicBoom:KW,asChindings:Avn,asJson:Rvn,genLog:Tvn,createArgsNormalizer:Ivn,stringify:xvn,buildFormatters:Ovn,normalizeDestFileDescriptor:Pvn}});var ZW=w((DKr,Met)=>{var Nvn={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},Cvn={ASC:"ASC",DESC:"DESC"};Met.exports={DEFAULT_LEVELS:Nvn,SORTING_ORDER:Cvn}});var Qce=w((LKr,Fet)=>{"use strict";var{lsCacheSym:Mvn,levelValSym:Jce,useOnlyCustomLevelsSym:Dvn,streamSym:Lvn,formattersSym:Uvn,hooksSym:Fvn,levelCompSym:Det}=Dk(),{noop:jvn,genLog:oT}=YW(),{DEFAULT_LEVELS:Rh,SORTING_ORDER:Let}=ZW(),Uet={fatal:e=>{let t=oT(Rh.fatal,e);return function(...n){let r=this[Lvn];if(t.call(this,...n),typeof r.flushSync=="function")try{r.flushSync()}catch{}}},error:e=>oT(Rh.error,e),warn:e=>oT(Rh.warn,e),info:e=>oT(Rh.info,e),debug:e=>oT(Rh.debug,e),trace:e=>oT(Rh.trace,e)},Xce=Object.keys(Rh).reduce((e,t)=>(e[Rh[t]]=t,e),{}),Hvn=Object.keys(Xce).reduce((e,t)=>(e[t]='{"level":'+Number(t),e),{});function qvn(e){let t=e[Uvn].level,{labels:n}=e.levels,r={};for(let i in n){let s=t(n[i],Number(i));r[i]=JSON.stringify(s).slice(0,-1)}return e[Mvn]=r,e}function Bvn(e,t){if(t)return!1;switch(e){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function zvn(e){let{labels:t,values:n}=this.levels;if(typeof e=="number"){if(t[e]===void 0)throw Error("unknown level value"+e);e=t[e]}if(n[e]===void 0)throw Error("unknown level "+e);let r=this[Jce],i=this[Jce]=n[e],s=this[Dvn],o=this[Det],a=this[Fvn].logMethod;for(let c in n){if(o(n[c],i)===!1){this[c]=jvn;continue}this[c]=Bvn(c,s)?Uet[c](a):oT(n[c],a)}this.emit("level-change",e,i,t[r],r,this)}function Gvn(e){let{levels:t,levelVal:n}=this;return t&&t.labels?t.labels[n]:""}function Vvn(e){let{values:t}=this.levels,n=t[e];return n!==void 0&&this[Det](n,this[Jce])}function Wvn(e,t,n){return e===Let.DESC?t<=n:t>=n}function Kvn(e){return typeof e=="string"?Wvn.bind(null,e):e}function Yvn(e=null,t=!1){let n=e?Object.keys(e).reduce((s,o)=>(s[e[o]]=o,s),{}):null,r=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),t?null:Xce,n),i=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:Rh,e);return{labels:r,values:i}}function Zvn(e,t,n){if(typeof e=="number"){if(![].concat(Object.keys(t||{}).map(s=>t[s]),n?[]:Object.keys(Xce).map(s=>+s),1/0).includes(e))throw Error(`default level:${e} must be included in custom levels`);return}let r=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),n?null:Rh,t);if(!(e in r))throw Error(`default level:${e} must be included in custom levels`)}function Jvn(e,t){let{labels:n,values:r}=e;for(let i in t){if(i in r)throw Error("levels cannot be overridden");if(t[i]in n)throw Error("pre-existing level values cannot be used for new levels")}}function Xvn(e){if(typeof e!="function"&&!(typeof e=="string"&&Object.values(Let).includes(e)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Fet.exports={initialLsCache:Hvn,genLsCache:qvn,levelMethods:Uet,getLevel:Gvn,setLevel:zvn,isLevelEnabled:Vvn,mappings:Yvn,assertNoLevelCollisions:Jvn,assertDefaultLevelFound:Zvn,genLevelComparison:Kvn,assertLevelComparison:Xvn}});var $ce=w((UKr,jet)=>{"use strict";jet.exports={version:"10.3.1"}});var Ket=w((jKr,Wet)=>{"use strict";var{EventEmitter:Qvn}=K("node:events"),{lsCacheSym:$vn,levelValSym:eRn,setLevelSym:tue,getLevelSym:Het,chindingsSym:XW,mixinSym:tRn,asJsonSym:Bet,writeSym:nRn,mixinMergeStrategySym:rRn,timeSym:iRn,timeSliceIndexSym:sRn,streamSym:zet,serializersSym:aT,formattersSym:vM,errorKeySym:oRn,messageKeySym:aRn,useOnlyCustomLevelsSym:cRn,needsMetadataGsym:uRn,redactFmtSym:lRn,stringifySym:dRn,formatOptsSym:fRn,stringifiersSym:pRn,msgPrefixSym:nue,hooksSym:hRn}=Dk(),{getLevel:mRn,setLevel:gRn,isLevelEnabled:yRn,mappings:SRn,initialLsCache:bRn,genLsCache:ERn,assertNoLevelCollisions:_Rn}=Qce(),{asChindings:rue,asJson:TRn,buildFormatters:eue,stringify:qet,noop:Get}=YW(),{version:vRn}=$ce(),RRn=Cce(),ARn=class{},Vet={constructor:ARn,child:wRn,bindings:kRn,setBindings:IRn,flush:PRn,isLevelEnabled:yRn,version:vRn,get level(){return this[Het]()},set level(e){this[tue](e)},get levelVal(){return this[eRn]},set levelVal(e){throw Error("levelVal is read-only")},get msgPrefix(){return this[nue]},get[Symbol.toStringTag](){return"Pino"},[$vn]:bRn,[nRn]:ORn,[Bet]:TRn,[Het]:mRn,[tue]:gRn};Object.setPrototypeOf(Vet,Qvn.prototype);Wet.exports=function(){return Object.create(Vet)};var JW=e=>e;function wRn(e,t){if(!e)throw Error("missing bindings for child Pino");let n=this[aT],r=this[vM],i=Object.create(this);if(t==null)return i[vM].bindings!==JW&&(i[vM]=eue(r.level,JW,r.log)),i[XW]=rue(i,e),this.onChild!==Get&&this.onChild(i),i;if(t.hasOwnProperty("serializers")===!0){i[aT]=Object.create(null);for(let u in n)i[aT][u]=n[u];let a=Object.getOwnPropertySymbols(n);for(var s=0;s{"use strict";var{hasOwnProperty:RM}=Object.prototype,uT=oue();uT.configure=oue;uT.stringify=uT;uT.default=uT;aue.stringify=uT;aue.configure=oue;Jet.exports=uT;var NRn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function JS(e){return e.length<5e3&&!NRn.test(e)?`"${e}"`:JSON.stringify(e)}function iue(e,t){if(e.length>200||t)return e.sort(t);for(let n=1;nr;)e[i]=e[i-1],i--;e[i]=r}return e}var CRn=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function sue(e){return CRn.call(e)!==void 0&&e.length!==0}function Yet(e,t,n){e.length= 1`)}return n===void 0?1/0:n}function cT(e){return e===1?"1 item":`${e} items`}function URn(e){let t=new Set;for(let n of e)(typeof n=="string"||typeof n=="number")&&t.add(String(n));return t}function FRn(e){if(RM.call(e,"strict")){let t=e.strict;if(typeof t!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(t)return n=>{let r=`Object can not safely be stringified. Received type ${typeof n}`;throw typeof n!="function"&&(r+=` (${n.toString()})`),new Error(r)}}}function oue(e){e={...e};let t=FRn(e);t&&(e.bigint===void 0&&(e.bigint=!1),"circularValue"in e||(e.circularValue=Error));let n=MRn(e),r=LRn(e,"bigint"),i=DRn(e),s=typeof i=="function"?i:void 0,o=Zet(e,"maximumDepth"),a=Zet(e,"maximumBreadth");function c(p,h,m,g,y,b){let S=h[p];switch(typeof S=="object"&&S!==null&&typeof S.toJSON=="function"&&(S=S.toJSON(p)),S=g.call(h,p,S),typeof S){case"string":return JS(S);case"object":{if(S===null)return"null";if(m.indexOf(S)!==-1)return n;let E="",_=",",T=b;if(Array.isArray(S)){if(S.length===0)return"[]";if(oa){let G=S.length-a-1;E+=`${_}"... ${cT(G)} not stringified"`}return y!==""&&(E+=` ${T}`),m.pop(),`[${E}]`}let R=Object.keys(S),A=R.length;if(A===0)return"{}";if(oa){let N=A-a;E+=`${k}"...":${x}"${cT(N)} not stringified"`,k=_}return y!==""&&k.length>1&&(E=` +${b}`,x=" ");let P=Math.min(A,a);i&&!sue(S)&&(R=iue(R,s)),m.push(S);for(let N=0;Na){let N=A-a;E+=`${k}"...":${x}"${cT(N)} not stringified"`,k=_}return y!==""&&k.length>1&&(E=` ${b}${E} ${T}`),m.pop(),`{${E}}`}case"number":return isFinite(S)?String(S):t?t(S):"null";case"boolean":return S===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(S);default:return t?t(S):void 0}}function u(p,h,m,g,y,b){switch(typeof h=="object"&&h!==null&&typeof h.toJSON=="function"&&(h=h.toJSON(p)),typeof h){case"string":return JS(h);case"object":{if(h===null)return"null";if(m.indexOf(h)!==-1)return n;let S=b,E="",_=",";if(Array.isArray(h)){if(h.length===0)return"[]";if(oa){let L=h.length-a-1;x+=`${k}"... ${cT(L)} not stringified"`}return x+=` ${b}`,m.pop(),`[${x}]`}let S=Object.keys(h),E=S.length;if(E===0)return"{}";if(oa){let x=E-a;T+=`${R}"...": "${cT(x)} not stringified"`,R=_}return R!==""&&(T=` +${y}`,T="",R="",A=Math.min(E,a);sue(h)&&(T+=Yet(h,_,a),S=S.slice(h.length),A-=h.length,R=_),i&&(S=iue(S,s)),m.push(h);for(let x=0;xa){let x=E-a;T+=`${R}"...": "${cT(x)} not stringified"`,R=_}return R!==""&&(T=` ${y}${T} -${b}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function d(p,h,m){switch(typeof h){case"string":return JS(h);case"object":{if(h===null)return"null";if(typeof h.toJSON=="function"){if(h=h.toJSON(p),typeof h!="object")return d(p,h,m);if(h===null)return"null"}if(m.indexOf(h)!==-1)return n;let g="",y=h.length!==void 0;if(y&&Array.isArray(h)){if(h.length===0)return"[]";if(oa){let x=h.length-a-1;g+=`,"... ${cT(x)} not stringified"`}return m.pop(),`[${g}]`}let b=Object.keys(h),S=b.length;if(S===0)return"{}";if(oa){let T=S-a;g+=`${E}"...":"${cT(T)} not stringified"`}return m.pop(),`{${g}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function f(p,h,m){if(arguments.length>1){let g="";if(typeof m=="number"?g=" ".repeat(Math.min(m,10)):typeof m=="string"&&(g=m.slice(0,10)),h!=null){if(typeof h=="function")return c("",{"":p},[],h,g,"");if(Array.isArray(h))return u("",p,[],URn(h),g,"")}if(g.length!==0)return l("",p,[],g,"")}return d("",p,[])}return f}});var ett=w((HKr,$et)=>{"use strict";var aue=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:Qet}=KW(),jRn=Qet.info;function HRn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create(Qet);n.silent=1/0,t.levels&&typeof t.levels=="object"&&Object.keys(t.levels).forEach(d=>{n[d]=t.levels[d]});let r={write:i,add:a,remove:c,emit:s,flushSync:o,end:u,minLevel:0,lastId:0,streams:[],clone:l,[aue]:!0,streamLevels:n};return Array.isArray(e)?e.forEach(a,r):a.call(r,e),e=null,r;function i(d){let f,p=this.lastLevel,{streams:h}=this,m=0,g;for(let y=qRn(h.length,t.dedupe);zRn(y,h.length,t.dedupe);y=BRn(y,t.dedupe))if(f=h[y],f.level<=p){if(m!==0&&m!==f.level)break;if(g=f.stream,g[aue]){let{lastTime:b,lastMsg:S,lastObj:E,lastLogger:_}=this;g.lastLevel=p,g.lastTime=b,g.lastMsg=S,g.lastObj=E,g.lastLogger=_}g.write(d),t.dedupe&&(m=f.level)}else if(!t.dedupe)break}function s(...d){for(let{stream:f}of this.streams)typeof f.emit=="function"&&f.emit(...d)}function o(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync()}function a(d){if(!d)return r;let f=typeof d.write=="function"||d.stream,p=d.write?d:d.stream;if(!f)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:h,streamLevels:m}=this,g;typeof d.levelVal=="number"?g=d.levelVal:typeof d.level=="string"?g=m[d.level]:typeof d.level=="number"?g=d.level:g=jRn;let y={stream:p,level:g,levelVal:void 0,id:++r.lastId};return h.unshift(y),h.sort(Xet),this.minLevel=h[0].level,r}function c(d){let{streams:f}=this,p=f.findIndex(h=>h.id===d);return p>=0&&(f.splice(p,1),f.sort(Xet),this.minLevel=f.length>0?f[0].level:-1),r}function u(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync(),d.end()}function l(d){let f=new Array(this.streams.length);for(let p=0;p=0:e{"use strict";var GRn=K("node:os"),ctt=Ice(),VRn=xce(),WRn=Nce(),utt=z$e(),KRn=Wet(),ltt=Dk(),{configure:YRn}=Jet(),{assertDefaultLevelFound:ZRn,mappings:dtt,genLsCache:JRn,genLevelComparison:XRn,assertLevelComparison:QRn}=Xce(),{DEFAULT_LEVELS:ftt,SORTING_ORDER:$Rn}=KW(),{createArgsNormalizer:eAn,asChindings:tAn,buildSafeSonicBoom:ttt,buildFormatters:nAn,stringify:cue,normalizeDestFileDescriptor:ntt,noop:rAn}=WW(),{version:iAn}=Qce(),{chindingsSym:rtt,redactFmtSym:sAn,serializersSym:itt,timeSym:oAn,timeSliceIndexSym:aAn,streamSym:cAn,stringifySym:stt,stringifySafeSym:uue,stringifiersSym:ott,setLevelSym:uAn,endSym:lAn,formatOptsSym:dAn,messageKeySym:fAn,errorKeySym:pAn,nestedKeySym:hAn,mixinSym:mAn,levelCompSym:gAn,useOnlyCustomLevelsSym:yAn,formattersSym:att,hooksSym:SAn,nestedKeyStrSym:bAn,mixinMergeStrategySym:EAn,msgPrefixSym:_An}=ltt,{epochTime:ptt,nullTime:TAn}=utt,{pid:vAn}=process,RAn=GRn.hostname(),AAn=ctt.err,wAn={level:"info",levelComparison:$Rn.ASC,levels:ftt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:vAn,hostname:RAn},serializers:Object.assign(Object.create(null),{err:AAn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:ptt,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},kAn=eAn(wAn),IAn=Object.assign(Object.create(null),ctt);function lue(...e){let t={},{opts:n,stream:r}=kAn(t,VRn(),...e);n.level&&typeof n.level=="string"&&ftt[n.level.toLowerCase()]!==void 0&&(n.level=n.level.toLowerCase());let{redact:i,crlf:s,serializers:o,timestamp:a,messageKey:c,errorKey:u,nestedKey:l,base:d,name:f,level:p,customLevels:h,levelComparison:m,mixin:g,mixinMergeStrategy:y,useOnlyCustomLevels:b,formatters:S,hooks:E,depthLimit:_,edgeLimit:T,onChild:R,msgPrefix:A}=n,x=YRn({maximumDepth:_,maximumBreadth:T}),k=nAn(S.level,S.bindings,S.log),P=cue.bind({[uue]:x}),N=i?WRn(i,P):{},C=i?{stringify:N[sAn]}:{stringify:P},L="}"+(s?`\r +${b}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function d(p,h,m){switch(typeof h){case"string":return JS(h);case"object":{if(h===null)return"null";if(typeof h.toJSON=="function"){if(h=h.toJSON(p),typeof h!="object")return d(p,h,m);if(h===null)return"null"}if(m.indexOf(h)!==-1)return n;let g="",y=h.length!==void 0;if(y&&Array.isArray(h)){if(h.length===0)return"[]";if(oa){let x=h.length-a-1;g+=`,"... ${cT(x)} not stringified"`}return m.pop(),`[${g}]`}let b=Object.keys(h),S=b.length;if(S===0)return"{}";if(oa){let T=S-a;g+=`${E}"...":"${cT(T)} not stringified"`}return m.pop(),`{${g}}`}case"number":return isFinite(h)?String(h):t?t(h):"null";case"boolean":return h===!0?"true":"false";case"undefined":return;case"bigint":if(r)return String(h);default:return t?t(h):void 0}}function f(p,h,m){if(arguments.length>1){let g="";if(typeof m=="number"?g=" ".repeat(Math.min(m,10)):typeof m=="string"&&(g=m.slice(0,10)),h!=null){if(typeof h=="function")return c("",{"":p},[],h,g,"");if(Array.isArray(h))return u("",p,[],URn(h),g,"")}if(g.length!==0)return l("",p,[],g,"")}return d("",p,[])}return f}});var ttt=w((HKr,ett)=>{"use strict";var cue=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:$et}=ZW(),jRn=$et.info;function HRn(e,t){e=e||[],t=t||{dedupe:!1};let n=Object.create($et);n.silent=1/0,t.levels&&typeof t.levels=="object"&&Object.keys(t.levels).forEach(d=>{n[d]=t.levels[d]});let r={write:i,add:a,remove:c,emit:s,flushSync:o,end:u,minLevel:0,lastId:0,streams:[],clone:l,[cue]:!0,streamLevels:n};return Array.isArray(e)?e.forEach(a,r):a.call(r,e),e=null,r;function i(d){let f,p=this.lastLevel,{streams:h}=this,m=0,g;for(let y=qRn(h.length,t.dedupe);zRn(y,h.length,t.dedupe);y=BRn(y,t.dedupe))if(f=h[y],f.level<=p){if(m!==0&&m!==f.level)break;if(g=f.stream,g[cue]){let{lastTime:b,lastMsg:S,lastObj:E,lastLogger:_}=this;g.lastLevel=p,g.lastTime=b,g.lastMsg=S,g.lastObj=E,g.lastLogger=_}g.write(d),t.dedupe&&(m=f.level)}else if(!t.dedupe)break}function s(...d){for(let{stream:f}of this.streams)typeof f.emit=="function"&&f.emit(...d)}function o(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync()}function a(d){if(!d)return r;let f=typeof d.write=="function"||d.stream,p=d.write?d:d.stream;if(!f)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:h,streamLevels:m}=this,g;typeof d.levelVal=="number"?g=d.levelVal:typeof d.level=="string"?g=m[d.level]:typeof d.level=="number"?g=d.level:g=jRn;let y={stream:p,level:g,levelVal:void 0,id:++r.lastId};return h.unshift(y),h.sort(Qet),this.minLevel=h[0].level,r}function c(d){let{streams:f}=this,p=f.findIndex(h=>h.id===d);return p>=0&&(f.splice(p,1),f.sort(Qet),this.minLevel=f.length>0?f[0].level:-1),r}function u(){for(let{stream:d}of this.streams)typeof d.flushSync=="function"&&d.flushSync(),d.end()}function l(d){let f=new Array(this.streams.length);for(let p=0;p=0:e{"use strict";var GRn=K("node:os"),utt=xce(),VRn=Oce(),WRn=Cce(),ltt=G$e(),KRn=Ket(),dtt=Dk(),{configure:YRn}=Xet(),{assertDefaultLevelFound:ZRn,mappings:ftt,genLsCache:JRn,genLevelComparison:XRn,assertLevelComparison:QRn}=Qce(),{DEFAULT_LEVELS:ptt,SORTING_ORDER:$Rn}=ZW(),{createArgsNormalizer:eAn,asChindings:tAn,buildSafeSonicBoom:ntt,buildFormatters:nAn,stringify:uue,normalizeDestFileDescriptor:rtt,noop:rAn}=YW(),{version:iAn}=$ce(),{chindingsSym:itt,redactFmtSym:sAn,serializersSym:stt,timeSym:oAn,timeSliceIndexSym:aAn,streamSym:cAn,stringifySym:ott,stringifySafeSym:lue,stringifiersSym:att,setLevelSym:uAn,endSym:lAn,formatOptsSym:dAn,messageKeySym:fAn,errorKeySym:pAn,nestedKeySym:hAn,mixinSym:mAn,levelCompSym:gAn,useOnlyCustomLevelsSym:yAn,formattersSym:ctt,hooksSym:SAn,nestedKeyStrSym:bAn,mixinMergeStrategySym:EAn,msgPrefixSym:_An}=dtt,{epochTime:htt,nullTime:TAn}=ltt,{pid:vAn}=process,RAn=GRn.hostname(),AAn=utt.err,wAn={level:"info",levelComparison:$Rn.ASC,levels:ptt,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:vAn,hostname:RAn},serializers:Object.assign(Object.create(null),{err:AAn}),formatters:Object.assign(Object.create(null),{bindings(e){return e},level(e,t){return{level:t}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:htt,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},kAn=eAn(wAn),IAn=Object.assign(Object.create(null),utt);function due(...e){let t={},{opts:n,stream:r}=kAn(t,VRn(),...e);n.level&&typeof n.level=="string"&&ptt[n.level.toLowerCase()]!==void 0&&(n.level=n.level.toLowerCase());let{redact:i,crlf:s,serializers:o,timestamp:a,messageKey:c,errorKey:u,nestedKey:l,base:d,name:f,level:p,customLevels:h,levelComparison:m,mixin:g,mixinMergeStrategy:y,useOnlyCustomLevels:b,formatters:S,hooks:E,depthLimit:_,edgeLimit:T,onChild:R,msgPrefix:A}=n,x=YRn({maximumDepth:_,maximumBreadth:T}),k=nAn(S.level,S.bindings,S.log),P=uue.bind({[lue]:x}),N=i?WRn(i,P):{},C=i?{stringify:N[sAn]}:{stringify:P},L="}"+(s?`\r `:` -`),G=tAn.bind(null,{[rtt]:"",[itt]:o,[ott]:N,[stt]:cue,[uue]:x,[att]:k}),W="";d!==null&&(f===void 0?W=G(d):W=G(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?ptt:TAn,q=$().indexOf(":")+1;if(b&&!h)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(g&&typeof g!="function")throw Error(`Unknown mixin type "${typeof g}" - expected "function"`);if(A&&typeof A!="string")throw Error(`Unknown msgPrefix type "${typeof A}" - expected "string"`);ZRn(p,h,b);let Q=dtt(h,b);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:Q,messageKey:c,errorKey:u}}),QRn(m);let B=XRn(m);return Object.assign(t,{levels:Q,[gAn]:B,[yAn]:b,[cAn]:r,[oAn]:$,[aAn]:q,[stt]:cue,[uue]:x,[ott]:N,[lAn]:L,[dAn]:C,[fAn]:c,[pAn]:u,[hAn]:l,[bAn]:l?`,${JSON.stringify(l)}:{`:"",[itt]:o,[mAn]:g,[EAn]:y,[rtt]:W,[att]:k,[SAn]:E,silent:rAn,onChild:R,[_An]:A}),Object.setPrototypeOf(t,KRn()),JRn(t),t[uAn](p),t}Ad.exports=lue;Ad.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=ntt(e.dest||process.stdout.fd),ttt(e)):ttt({dest:ntt(e),minLength:0});Ad.exports.transport=Vce();Ad.exports.multistream=ett();Ad.exports.levels=dtt();Ad.exports.stdSerializers=IAn;Ad.exports.stdTimeFunctions=Object.assign({},utt);Ad.exports.symbols=ltt;Ad.exports.version=iAn;Ad.exports.default=lue;Ad.exports.pino=lue});var ytt=w((BKr,gtt)=>{"use strict";var JW=htt(),{serializersSym:mtt}=JW.symbols,{FST_ERR_LOG_INVALID_DESTINATION:xAn}=Ko();function OAn(e){if(e.stream&&e.file)throw new xAn;e.file&&(e.stream=JW.destination(e.file),delete e.file);let t=e.logger,n=e.genReqId,r=null;return t?(e.logger=void 0,e.genReqId=void 0,t[mtt]&&(e.serializers=Object.assign({},e.serializers,t[mtt])),r=t.child({},e),e.logger=t,e.genReqId=n):r=JW(e,e.stream),r}var PAn={req:function(t){return{method:t.method,url:t.url,version:t.headers&&t.headers["accept-version"],host:t.host,remoteAddress:t.ip,remotePort:t.socket?t.socket.remotePort:void 0}},err:JW.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};gtt.exports={serializers:PAn,createPinoLogger:OAn}});var RM=w((zKr,btt)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:NAn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:CAn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:MAn,FST_ERR_LOG_INVALID_LOGGER:DAn}=Ko();function LAn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==Stt&&XW(o,!0),o}function Stt(e,t,n){return e.child(t,n)}function XW(e,t){let n=["info","error","debug","fatal","warn","trace","child"],r=e?n.filter(i=>!e[i]||typeof e[i]!="function"):n;if(r.length){if(r.length===n.length&&!t)return!1;throw DAn(r.join(","))}else return!0}function UAn(e){if(e.logger&&e.loggerInstance)throw new NAn;if(!e.loggerInstance&&!e.logger){let o=u$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=ytt();if(XW(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if(XW(e.logger))throw CAn();if(e.loggerInstance)throw MAn();let r={};return Object.prototype.toString.call(e.logger)==="[object Object]"&&Reflect.ownKeys(e.logger).forEach(s=>{Object.defineProperty(r,s,{value:e.logger[s],writable:!0,enumerable:!0,configurable:!0})}),r.level=r.level||"info",r.serializers=Object.assign({},n,r.serializers),e.logger=r,{logger:t(e.logger),hasLogger:!0}}function FAn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}btt.exports={createChildLogger:LAn,defaultChildLoggerFactory:Stt,createLogger:UAn,validateLogger:XW,now:FAn}});var QW=w((GKr,Ett)=>{"use strict";Ett.exports=jAn;function Fk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function jAn(e){if(e=e||{},e.circles)return HAn(e);let t=new Map;if(t.set(Date,o=>new Date(o)),t.set(Map,(o,a)=>new Map(r(Array.from(o),a))),t.set(Set,(o,a)=>new Set(r(Array.from(o),a))),e.constructorHandlers)for(let o of e.constructorHandlers)t.set(o[0],o[1]);let n=null;return e.proto?s:i;function r(o,a){let c=Object.keys(o),u=new Array(c.length);for(let l=0;lnew Date(c)),r.set(Map,(c,u)=>new Map(s(Array.from(c),u))),r.set(Set,(c,u)=>new Set(s(Array.from(c),u))),e.constructorHandlers)for(let c of e.constructorHandlers)r.set(c[0],c[1]);let i=null;return e.proto?a:o;function s(c,u){let l=Object.keys(c),d=new Array(l.length);for(let f=0;f{"use strict";var qAn=QW()({circles:!1,proto:!0}),{kSchemaVisited:_tt,kSchemaResponse:BAn}=$s(),due=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:zAn,FST_ERR_SCH_ALREADY_PRESENT:GAn,FST_ERR_SCH_DUPLICATE:VAn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:Ttt}=Ko(),Rtt=["params","body","querystring","query","headers"];function $W(e){this.store=e||{}}$W.prototype.add=function(e){let t=qAn(e.isFluentSchema||e.isFluentJSONSchema||e[due]?e.valueOf():e),n=t.$id;if(!n)throw new zAn;if(this.store[n])throw new GAn(n);this.store[n]=t};$W.prototype.getSchemas=function(){return Object.assign({},this.store)};$W.prototype.getSchema=function(e){return this.store[e]};function vtt(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function WAn(e,t){if(e[_tt])return e;if(e.query){if(e.querystring)throw new VAn("querystring");e.querystring=e.query}KAn(e);for(let n of Rtt){let r=e[n];if(r&&!vtt(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var ZAn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;ktt.exports=class wtt{constructor(t){switch(t&&t.rounding){case"floor":this.parseInteger=Math.floor;break;case"ceil":this.parseInteger=Math.ceil;break;case"round":this.parseInteger=Math.round;break;default:this.parseInteger=Math.trunc;break}this._options=t}asInteger(t){if(Number.isInteger(t))return""+t;if(typeof t=="bigint")return t.toString();let n=this.parseInteger(t);if(n===1/0||n===-1/0||n!==n)throw new Error(`The value "${t}" cannot be converted to an integer.`);return""+n}asNumber(t){let n=Number(t);if(n!==n)throw new Error(`The value "${t}" cannot be converted to a number.`);return n===1/0||n===-1/0?"null":""+n}asBoolean(t){return t&&"true"||"false"}asDateTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+t.toISOString()+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date-time.`)}asDate(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,10)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date.`)}asTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(11,19)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a time.`)}asString(t){let n=t.length;if(n===0)return'""';if(n<42){let r="",i=-1,s=255;for(let o=0;o=55296&&s<=57343)return JSON.stringify(t);return i===-1&&'"'+t+'"'||'"'+r+t.slice(i)+'"'}else return n<5e3&&ZAn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new wtt(t)}}});var xtt=w((KKr,Itt)=>{"use strict";var JAn=e4(),XAn={mode:"standalone"},QAn=JAn.restoreFromState(XAn),$An=null;Itt.exports=(function(t,n){let{asString:r,asNumber:i,asBoolean:s,asDateTime:o,asDate:a,asTime:c,asUnsafeString:u}=n,l=n.asInteger.bind(n),d="{",f="}",p="[",h="]",m=",",g=":",y='"',b=d+f,S=p+h,E=y+y,_="null";function T(A){let x=A&&typeof A.toJSON=="function"?A.toJSON():A;if(x===null)return b;let k,P=d,N=!1;return k=x.statusCode,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"statusCode":',P+=i(k)),k=x.code,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"code":',typeof k!="string"?k===null?P+=E:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),k=x.error,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"error":',typeof k!="string"?k===null?P+=E:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),k=x.message,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"message":',typeof k!="string"?k===null?P+=E:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),P+f}return T})($An,QAn)});var wM=w((YKr,Ctt)=>{"use strict";var Ott=K("node:http").STATUS_CODES,ewn=dce(),{setErrorStatusCode:twn}=wW(),{kReplyHeaders:lT,kReplyNextErrorHandler:t4,kReplyIsRunningOnErrorHook:nwn,kRouteContext:Ntt,kDisableRequestLogging:n4}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:rwn,FST_ERR_FAILED_ERROR_SERIALIZATION:iwn}=Ko(),{getSchemaSerializer:swn}=AM(),fue=xtt(),own={func:cwn,toJSON(){return this.func.name.toString()+"()"}};function awn(e,t,n){e[nwn]=!1;let r=e[Ntt];if(e[t4]===!1){Ptt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[lT])}catch(c){o.log[n4]||o.log.warn({req:o.request,res:o,err:c},c?.message),o.raw.writeHead(o.raw.statusCode)}o.raw.end(a)});return}let i=e[t4]||r.errorHandler;e[t4]=Object.getPrototypeOf(i),delete e[lT]["content-type"],delete e[lT]["content-length"];let s=i.func;if(!s){e[t4]=!1,Ptt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?ewn(o,e):e.send(o))}catch(o){e.send(o)}}function cwn(e,t,n){lwn(e,n),twn(n,e),n.statusCode<500?n.log[n4]||n.log.info({res:n,err:e},e?.message):n.log[n4]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Ptt(e,t,n){let r=t.raw,i=t.statusCode;t[lT]["content-type"]=t[lT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=swn(t[Ntt],i,t[lT]["content-type"]);o===!1?s=fue({error:Ott[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:Ott[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[n4]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=fue(new iwn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=fue(new rwn(typeof s))),t[lT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function uwn(e=own,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function lwn(e,t){let n=t.raw,r=n.statusCode;r=r>=400?r:500,e!=null&&(e.headers!==void 0&&t.headers(e.headers),e.status>=400?r=e.status:e.statusCode>=400&&(r=e.statusCode)),n.statusCode=r}Ctt.exports={buildErrorHandler:uwn,handleError:awn}});var xM=w((ZKr,Utt)=>{"use strict";var{kReply:pue,kRequest:hue,kState:dwn,kHasBeenDecorated:fwn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:Mtt,FST_ERR_DEC_MISSING_DEPENDENCY:pwn,FST_ERR_DEC_AFTER_START:hwn,FST_ERR_DEC_REFERENCE_TYPE:mwn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:gwn,FST_ERR_DEC_UNDECLARED:ywn}=Ko();function Swn(e,t,n,r){if(Object.hasOwn(e,t))throw new Mtt(t);mue(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(e,t,{get:n.getter,set:n.setter}):e[t]=n}function bwn(e){if(!kM(this,e))throw new ywn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Dtt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||IM(e,t))throw new Mtt(t);e[fwn]=!0,mue(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(i,t,{get:n.getter,set:n.setter}):typeof n=="function"?i[t]=n:e.props.push({key:t,value:n})}function Ltt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new mwn(e,typeof t)}function Ewn(e,t,n){return gue(this,e),Swn(this,e,t,n),this}function kM(e,t){return t?t in e||e.prototype&&t in e.prototype||IM(e,t):e in this}function IM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function _wn(e){return e&&IM(this[hue],e)?!0:kM(this[hue].prototype,e)}function Twn(e){return e&&IM(this[pue],e)?!0:kM(this[pue].prototype,e)}function mue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new gwn(t);for(let r=0;r!==n.length;++r)if(!kM(e,n[r]))throw new pwn(n[r])}}function vwn(e,t,n){return gue(this,e),Ltt(e,t),Dtt(this[pue],e,t,n),this}function Rwn(e,t,n){return gue(this,e),Ltt(e,t),Dtt(this[hue],e,t,n),this}function gue(e,t){if(e[dwn].started)throw new hwn(t)}Utt.exports={add:Ewn,exist:kM,existRequest:_wn,existReply:Twn,dependencies:mue,decorateReply:vwn,decorateRequest:Rwn,getInstanceDecorator:bwn,hasKey:IM}});var d4=w((JKr,l4)=>{"use strict";var r4=K("node:stream").finished,{kFourOhFourContext:Ftt,kReplyErrorHandlerCalled:Vtt,kReplyHijacked:_ue,kReplyStartTime:PM,kReplyEndTime:Tue,kReplySerializer:tg,kReplySerializerDefault:i4,kReplyIsError:s4,kReplyHeaders:jr,kReplyTrailers:Yo,kReplyHasStatusCode:vue,kReplyIsRunningOnErrorHook:Rue,kReplyNextErrorHandler:Awn,kDisableRequestLogging:Wtt,kSchemaResponse:o4,kReplyCacheSerializeFns:XS,kSchemaController:yue,kOptions:wwn,kRouteContext:Mn,kTimeoutTimer:a4,kOnAbort:jk,kRequestSignal:Ktt}=$s(),{onSendHookRunner:Ytt,onResponseHookRunner:kwn,preHandlerHookRunner:Iwn,preSerializationHookRunner:xwn}=YS(),jtt=Sce()[Symbol.for("internals")],Own=RM(),Eue=Own.now,{handleError:Htt}=wM(),{getSchemaSerializer:Pwn}=AM(),Sue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:Nwn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:Cwn,FST_ERR_REP_READABLE_STREAM_LOCKED:Mwn,FST_ERR_REP_ALREADY_SENT:Dwn,FST_ERR_SEND_INSIDE_ONERR:Lwn,FST_ERR_BAD_STATUS_CODE:Uwn,FST_ERR_BAD_TRAILER_NAME:Fwn,FST_ERR_BAD_TRAILER_VALUE:jwn,FST_ERR_MISSING_SERIALIZATION_FN:Hwn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:qwn,FST_ERR_DEC_UNDECLARED:Bwn}=Ko(),qtt=xM(),Ztt=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[tg]=null,this[Vtt]=!1,this[s4]=!1,this[Rue]=!1,this.request=t,this[jr]={},this[Yo]=null,this[vue]=!1,this[PM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Mn]:{get(){return this.request[Mn]}},elapsedTime:{get(){return this[PM]===void 0?0:(this[Tue]||Eue())-this[PM]}},server:{get(){return this.request[Mn].server}},sent:{enumerable:!0,get(){return(this[_ue]||this.raw.writableEnded)===!0}},statusCode:{get(){return this.raw.statusCode},set(e){this.code(e)}},routeOptions:{get(){return this.request.routeOptions}}});Hr.prototype.writeEarlyHints=function(e,t){return this.raw.writeEarlyHints(e,t),this};Hr.prototype.hijack=function(){return this[_ue]=!0,this.request[Ktt]&&(clearTimeout(this.request[a4]),this.request[a4]=null,this.request[jk]&&(this.request.raw.removeListener("close",this.request[jk]),this.request[jk]=null)),this};Hr.prototype.send=function(e){if(this[Rue])throw new Lwn;if(this.sent===!0)return this.log.warn({err:new Dwn(this.request.url,this.request.method)}),this;if(this[s4]||e instanceof Error)return this[s4]=!1,Hk(this,e,dT),this;if(e===void 0)return dT(this,e),this;let t=this.getHeader("content-type"),n=t!==void 0;if(e!==null){if(typeof e.pipe=="function"||typeof e.getReader=="function"||Ztt.call(e)==="[object Response]")return dT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=Sue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return dT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=Sue.PLAIN,dT(this,e),this}if(this[tg]!==null){if(typeof e!="string")return Btt(this,e),this;e=this[tg](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=Sue.JSON;else if(t.indexOf("charset")===-1){let r=t.trim();r.endsWith(";")?this[jr]["content-type"]=`${r} charset=utf-8`:this[jr]["content-type"]=`${r}; charset=utf-8`}if(typeof e!="string")return Btt(this,e),this}return dT(this,e),this};Hr.prototype.getHeader=function(e){e=e.toLowerCase();let t=this[jr][e];return t!==void 0?t:this.raw.getHeader(e)};Hr.prototype.getHeaders=function(){return{...this.raw.getHeaders(),...this[jr]}};Hr.prototype.hasHeader=function(e){return e=e.toLowerCase(),this[jr][e]!==void 0||this.raw.hasHeader(e)};Hr.prototype.removeHeader=function(e){return delete this[jr][e.toLowerCase()],this};Hr.prototype.header=function(e,t=""){return e=e.toLowerCase(),this[jr][e]&&e==="set-cookie"?(typeof this[jr][e]=="string"&&(this[jr][e]=[this[jr][e]]),Array.isArray(t)?Array.prototype.push.apply(this[jr][e],t):this[jr][e].push(t)):this[jr][e]=t,this};Hr.prototype.headers=function(e){let t=Object.keys(e);for(let n=0;n!==t.length;++n){let r=t[n];this.header(r,e[r])}return this};var zwn=new Set(["transfer-encoding","content-length","host","cache-control","max-forwards","te","authorization","set-cookie","content-encoding","content-type","content-range","trailer"]);Hr.prototype.trailer=function(e,t){if(e=e.toLowerCase(),zwn.has(e))throw new Fwn(e);if(typeof t!="function")throw new jwn(e,typeof t);return this[Yo]===null&&(this[Yo]={}),this[Yo][e]=t,this};Hr.prototype.hasTrailer=function(e){return this[Yo]?.[e.toLowerCase()]!==void 0};Hr.prototype.removeTrailer=function(e){return this[Yo]===null?this:(this[Yo][e.toLowerCase()]=void 0,this)};Hr.prototype.code=function(e){let t=+e;if(!(t>=100&&t<=599))throw new Uwn(e||String(e));return this.raw.statusCode=t,this[vue]=!0,this};Hr.prototype.status=Hr.prototype.code;Hr.prototype.getSerializationFunction=function(e,t){let n;return typeof e=="string"||typeof e=="number"?typeof t=="string"?n=this[Mn][o4]?.[e]?.[t]:n=this[Mn][o4]?.[e]:typeof e=="object"&&(n=this[Mn][XS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Mn][XS]?.has(e))return this[Mn][XS].get(e);let a=(this[Mn].serializerCompiler||this.server[yue].serializerCompiler||this.server[yue].setupSerializer(this.server[wwn])||this.server[yue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Mn][XS]==null&&(this[Mn][XS]=new WeakMap),this[Mn][XS].set(e,a),a};Hr.prototype.serializeInput=function(e,t,n,r){let i=n,s;if(n=typeof t=="string"||typeof t=="number"?t:n,r=n&&i!==n?i:r,n!=null){if(r!=null?s=this[Mn][o4]?.[n]?.[r]:s=this[Mn][o4]?.[n],s==null)throw r?new qwn(n,r):new Hwn(n)}else this[Mn][XS]?.has(t)?s=this[Mn][XS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[tg]!==null?this[tg](e):this[Mn]&&this[Mn][i4]?this[Mn][i4](e,this.raw.statusCode):Xtt(this[Mn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[tg]=e,this};Hr.prototype.type=function(e){return this[jr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[vue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return Xwn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}r4(this.raw,n=>{n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"?t?t(n):this.log&&this.log.warn("unhandled rejection on reply.then"):e()})};Hr.prototype.getDecorator=function(e){if(!qtt.hasKey(this,e)&&!qtt.exist(this,e))throw new Bwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function Btt(e,t){e[Mn].preSerialization!==null?xwn(e[Mn].preSerialization,e.request,e,t,ztt):ztt(null,void 0,e,t)}function ztt(e,t,n,r){if(e!=null){Hk(n,e);return}try{n[tg]!==null?r=n[tg](r):n[Mn]&&n[Mn][i4]?r=n[Mn][i4](r,n.raw.statusCode):r=Xtt(n[Mn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Gwn(i,n),Hk(n,i);return}dT(n,r)}function Gwn(e,t){e.serialization=t[Mn].config}function dT(e,t){e[Mn].onSend!==null?Ytt(e[Mn].onSend,e.request,e,t,Vwn):Jtt(e,t)}function Vwn(e,t,n,r){e!=null?Hk(n,e):Jtt(n,r)}function bue(e,t){let n=e.raw;try{n.writeHead(t,e[jr])}catch(r){throw r.code==="ERR_HTTP_HEADERS_SENT"&&e.log.warn(`Reply was already sent, did you forget to "return reply" in the "${e.request.raw.url}" (${e.request.raw.method}) route?`),r}}function Jtt(e,t){let n=e.raw,r=e.request;if(e[Yo]!==null){let s=Object.keys(e[Yo]),o="";for(let a of s)typeof e[Yo][a]=="function"&&(o+=" ",o+=a);e.header("Transfer-Encoding","chunked"),e.header("Trailer",o.trim())}if(Ztt.call(t)==="[object Response]"){if(typeof t.status=="number"&&e.code(t.status),typeof t.headers=="object"&&typeof t.headers.forEach=="function")for(let[s,o]of t.headers)e.header(s,o);if(t.body!==null&&t.bodyUsed)throw new Cwn;t=t.body}let i=n.statusCode;if(t==null){i>=200&&i!==204&&i!==304&&r.method!=="HEAD"&&e[Yo]===null&&(e[jr]["content-length"]="0"),bue(e,i),OM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),bue(e,i),OM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",u4),t.resume());return}if(typeof t.pipe=="function"){Kwn(t,n,e);return}if(typeof t.getReader=="function"){Wwn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new Nwn(typeof t);if(e[Yo]===null){let s=e[jr]["content-length"];(!s||r.raw.method!=="HEAD"&&Number(s)!==Buffer.byteLength(t))&&(e[jr]["content-length"]=""+Buffer.byteLength(t))}bue(e,i),n.write(t),OM(t,n,e)}function c4(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[Wtt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function Wwn(e,t,n){if(e.locked)throw new Mwn;let r=!0,i=!1,s=!1,o=e.getReader();if(r4(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,c4(n.log,l,t)),o.cancel().catch(u4))}),t.headersSent)n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode");else for(let l in n[jr])t.setHeader(l,n[jr][l]);function a(l){if(l.done){r=!1,OM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(u4);return}if(t.write(l.value)===!1){s=!0,t.once("drain",c);return}o.read().then(a,u)}function c(){!s||!r||t.destroyed||(s=!1,o.read().then(a,u))}function u(l){r=!1,t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,c4(n.log,l,n)),t.destroy()):Hk(n,l)}o.read().then(a,u)}function Kwn(e,t,n){let r=!0,i=!1;if(Ywn(e,t,n),r4(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,c4(n.log,s,n)),t.destroy()):Hk(n,s))}),r4(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,c4(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(u4):typeof e.abort=="function"?e.abort():n.log.warn("stream payload does not end properly"))}),t.headersSent)n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode");else for(let s in n[jr])t.setHeader(s,n[jr][s]);e.pipe(t)}function OM(e,t,n){if(n[Yo]===null){t.end(null,null,null);return}let r=Object.keys(n[Yo]),i={},s=0,o=!0;function a(){s===0&&(t.addTrailers(i),t.end(null,null,null))}for(let c of r){let u=function(d,f){s++,d?n.log.debug(d):i[c]=f,process.nextTick(a)};if(typeof n[Yo][c]!="function")continue;o=!1,s--;let l=n[Yo][c](n,e,u);typeof l=="object"&&typeof l.then=="function"&&l.then(d=>u(null,d),u)}o&&t.end(null,null,null)}function Ywn(e,t,n){n[Yo]!==null&&e.on("end",()=>OM(null,t,n))}function Hk(e,t,n){e[Mn].onError!==null&&!e[Awn]?(e[Rue]=!0,Ytt(e[Mn].onError,e.request,e,t,()=>Htt(e,t,n))):Htt(e,t,n)}function Zwn(e){e[PM]=Eue();let t=n=>{e[Tue]=Eue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Mn];e.request[Ktt]&&(clearTimeout(e.request[a4]),e.request[a4]=null,e.request[jk]&&(e.request.raw.removeListener("close",e.request[jk]),e.request[jk]=null)),r&&r.onResponse!==null?kwn(r.onResponse,e.request,e,Gtt):Gtt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Gtt(e,t,n){if(n.log[Wtt])return;let r=n.elapsedTime;if(e!=null){n.log.error({res:n,err:e,responseTime:r},"request errored");return}n.log.info({res:n,responseTime:r},"request completed")}function Jwn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[s4]=!1,this[Vtt]=!1,this[_ue]=!1,this[tg]=null,this.request=i,this[jr]={},this[Yo]=null,this[PM]=void 0,this[Tue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function Aue(e){if(!e)throw new TypeError("argument req is required");let t=e.headers["x-forwarded-for"],n=e.socket.remoteAddress;if(!t||typeof t!="string")return[n];if(t.indexOf(",")===-1){let r=t.trim();return r.length?[n,r]:[n]}else return Qwn(t,n)}function Qwn(e,t){let n=[t],r=e.length,i=r,s,o;for(o=r-1;o>=0;--o)s=e[o],s===" "?i===r&&(i=r=o):s===","?(i!==r&&n.push(e.slice(i,r)),i=r=o):i=o;return i!==r&&n.push(e.substring(i,r)),n}f4.exports=Aue;f4.exports.default=Aue;f4.exports.forwarded=Aue});var ent=w(($tt,p4)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},r=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,g=-1,y=(p.match(a.zoneIndex)||[])[0],b,S;for(y&&(y=y.substring(1),p=p.replace(/%.+$/,""));(g=p.indexOf(":",g+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(S=h-m,b=":";S--;)b+="0:";return p=p.replace("::",b),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=(function(){let E=p.split(":"),_=[];for(let T=0;T0;){if(b=m-g,b<0&&(b=0),p[y]>>b!==h[y]>>b)return!1;g-=m,y+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(r.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function d(p,h){for(;p.length=0;y-=1)if(b=this.octets[y],b in g){if(S=g[b],m&&S!==0)return null;S!==8&&(m=!0),h+=S}else return null;return 32-h},p.prototype.range=function(){return f.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return f.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p})(),f.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],b=0;for(;b<4;)y.push(parseInt(m[b],10)|parseInt(g[b],10)^255),b++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},f.IPv4.isIPv4=function(p){return this.parser(p)!==null},f.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},f.IPv4.isValidCIDR=function(p){try{return this.parseCIDR(p),!0}catch{return!1}},f.IPv4.isValidFourPartDecimal=function(p){return!!(f.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},f.IPv4.isValidCIDRFourPartDecimal=function(p){let h=p.match(/^(.+)\/(\d+)$/);return!f.IPv4.isValidCIDR(p)||!h?!1:f.IPv4.isValidFourPartDecimal(h[1])},f.IPv4.networkAddressFromCIDR=function(p){let h,m,g,y,b;try{for(h=this.parseCIDR(p),g=h[0].toByteArray(),b=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],m=0;m<4;)y.push(parseInt(g[m],10)&parseInt(b[m],10)),m++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},f.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},f.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let g=[this.parse(h[1]),m];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},f.IPv4.parser=function(p){let h,m,g;if(h=p.match(n.fourOctet))return(function(){let y=h.slice(1,6),b=[];for(let S=0;S4294967295||g<0)throw new Error("ipaddr: address outside defined range");return(function(){let y=[],b;for(b=0;b<=24;b+=8)y.push(g>>b&255);return y})().reverse()}else return(h=p.match(n.twoOctet))?(function(){let y=h.slice(1,4),b=[];if(g=l(y[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return b.push(l(y[0])),b.push(g>>16&255),b.push(g>>8&255),b.push(g&255),b})():(h=p.match(n.threeOctet))?(function(){let y=h.slice(1,5),b=[];if(g=l(y[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return b.push(l(y[0])),b.push(l(y[1])),b.push(g>>8&255),b.push(g&255),b})():null},f.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,g=Math.floor(p/8);for(;m=0;S-=1)if(y=this.parts[S],y in g){if(b=g[y],m&&b!==0)return null;b!==16&&(m=!0),h+=b}else return null;return 128-h},p.prototype.range=function(){return f.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],g=this.parts;for(let y=0;y>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=(function(){let g=[];for(let y=0;y>8,m&255,g>>8,g&255])},p.prototype.toNormalizedString=function(){let h=(function(){let g=[];for(let y=0;yy&&(g=b.index,y=b[0].length);return y<0?m:`${m.substring(0,g)}::${m.substring(g+y)}`},p.prototype.toString=function(){return this.toRFC5952String()},p})(),f.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],b=0;for(;b<16;)y.push(parseInt(m[b],10)|parseInt(g[b],10)^255),b++;return new this(y)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},f.IPv6.isIPv6=function(p){return this.parser(p)!==null},f.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},f.IPv6.isValidCIDR=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{return this.parseCIDR(p),!0}catch{return!1}},f.IPv6.networkAddressFromCIDR=function(p){let h,m,g,y,b;try{for(h=this.parseCIDR(p),g=h[0].toByteArray(),b=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],m=0;m<16;)y.push(parseInt(g[m],10)&parseInt(b[m],10)),m++;return new this(y)}catch(S){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${S})`)}},f.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},f.IPv6.parseCIDR=function(p){let h,m,g;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return g=[this.parse(m[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},f.IPv6.parser=function(p){let h,m,g,y,b,S;if(g=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(a.native.test(p))return c(p,8);if((g=p.match(a.transitional))&&(S=g[6]||"",h=g[1],g[1].endsWith("::")||(h=h.slice(0,-1)),h=c(h+S,6),h.parts)){for(b=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],m=0;m128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,g=Math.floor(p/8);for(;m{"use strict";qk.exports=wue;qk.exports.default=wue;qk.exports.proxyaddr=wue;qk.exports.all=rnt;qk.exports.compile=int;var $wn=Qtt(),nnt=ent(),ekn=/^\d+$/u,h4=nnt.isValid,m4=nnt.parse,tnt={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function rnt(e,t){let n=$wn(e);if(!t)return n;typeof t!="function"&&(t=int(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function ikn(e){let t=m4(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function wue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=rnt(e,t);return n[n.length-1]}function skn(){return!1}function okn(e){return function(n){if(!h4(n))return!1;let r=m4(n),i,s=r.kind();for(let o=0;o{"use strict";var g4=snt(),{kHasBeenDecorated:ckn,kSchemaBody:ukn,kSchemaHeaders:lkn,kSchemaParams:dkn,kSchemaQuerystring:ont,kSchemaController:kue,kOptions:fkn,kRequestCacheValidateFns:QS,kRouteContext:ac,kRequestOriginalUrl:Iue,kRequestSignal:ant,kOnAbort:pkn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:hkn,FST_ERR_DEC_UNDECLARED:mkn}=Ko(),cnt=xM(),unt={body:ukn,headers:lkn,params:dkn,querystring:ont,query:ont};function xue(e,t,n,r,i,s){this.id=e,this[ac]=s,this.params=t,this.raw=n,this.query=r,this.log=i,this.body=void 0}xue.props=[];function gkn(e){if(typeof e=="function")return e;if(e===!0)return function(){return!0};if(typeof e=="number")return function(t,n){return nn.trim());return g4.compile(t)}return g4.compile(e)}function ykn(e,t){return t?Skn(e,t):fnt(e)}function fnt(e){let t=e.props.slice();function n(r,i,s,o,a,c){this.id=r,this[ac]=c,this.params=i,this.raw=s,this.query=o,this.log=a,this.body=void 0;let u;for(let l=0;l{e.signal.aborted||e.abort()};return this.raw.on("close",t),this[pkn]=t,e.signal}},ip:{get(){if(this.socket)return this.socket.remoteAddress}},host:{get(){return this.raw.headers.host??this.raw.headers[":authority"]??""}},hostname:{get(){return this.host[0]==="["?this.host.slice(0,this.host.indexOf("]")+1):this.host.split(":",1)[0]}},port:{get(){let e=/(?:\d+)$/,t=this.headers.host??this.headers[":authority"]??"",n=e.exec(t);return n===null||n[1]===void 0?null:parseInt(n.groups.port.slice(1),10)}},protocol:{get(){if(this.socket)return this.socket.encrypted?"https":"http"}},headers:{get(){return this.additionalHeaders?Object.assign({},this.raw.headers,this.additionalHeaders):this.raw.headers},set(e){this.additionalHeaders=e}},getValidationFunction:{value:function(e){if(typeof e=="string"){let t=unt[e];return this[ac][t]}else if(typeof e=="object")return this[ac][QS]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[ac][QS]?.has(e))return this[ac][QS].get(e);let s=(this[ac].validatorCompiler||this.server[kue].validatorCompiler||this.server[kue].setupValidator(this.server[fkn])||this.server[kue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[ac][QS]==null&&(this[ac][QS]=new WeakMap),this[ac][QS].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&unt[n],i;if(r&&(i=this[ac][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new hkn(n);return i==null&&(this[ac][QS]?.has(t)?i=this[ac][QS].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){dnt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){dnt(this,e),this[e]=t}}});Oue.exports=xue;Oue.exports.buildRequest=ykn});var S4=w((e3r,pnt)=>{"use strict";var{kFourOhFourContext:bkn,kReplySerializerDefault:Ekn,kSchemaErrorFormatter:_kn,kErrorHandler:Tkn,kChildLoggerFactory:vkn,kOptions:Rkn,kReply:Akn,kRequest:wkn,kBodyLimit:kkn,kLogLevel:Ikn,kContentTypeParser:xkn,kRouteByFastify:Okn,kRequestCacheValidateFns:Pkn,kReplyCacheSerializeFns:Nkn,kHandlerTimeout:Ckn}=$s();function Mkn({schema:e,handler:t,config:n,requestIdLogLabel:r,childLoggerFactory:i,errorHandler:s,bodyLimit:o,logLevel:a,logSerializers:c,attachValidation:u,validatorCompiler:l,serializerCompiler:d,replySerializer:f,schemaErrorFormatter:p,exposeHeadRoute:h,prefixTrailingSlash:m,server:g,isFastify:y,handlerTimeout:b}){this.schema=e,this.handler=t,this.Reply=g[Akn],this.Request=g[wkn],this.contentTypeParser=g[xkn],this.onRequest=null,this.onSend=null,this.onError=null,this.onTimeout=null,this.preHandler=null,this.onResponse=null,this.preSerialization=null,this.onRequestAbort=null,this.config=n,this.errorHandler=s||g[Tkn],this.requestIdLogLabel=r||g[Rkn].requestIdLogLabel,this.childLoggerFactory=i||g[vkn],this._middie=null,this._parserOptions={limit:o||g[kkn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||g[Ikn],this.logSerializers=c,this[bkn]=null,this.attachValidation=u,this[Ekn]=f,this.schemaErrorFormatter=p||g[_kn]||Dkn,this[Okn]=y,this[Pkn]=null,this[Nkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=b||g[Ckn]||0,this.server=g}function Dkn(e,t){let n="";for(let i=0;i!==e.length;++i){let s=e[i];n+=t+(s.instancePath||"")+" "+s.message+", "}return new Error(n.slice(0,-2))}pnt.exports=Mkn});var Nue=w((t3r,Bk)=>{"use strict";var Lkn=typeof Buffer<"u",hnt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,mnt=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function gnt(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),Lkn&&Buffer.isBuffer(e)&&(e=e.toString()),e&&e.charCodeAt(0)===65279&&(e=e.slice(1));let r=JSON.parse(e,t);if(r===null||typeof r!="object")return r;let i=n&&n.protoAction||"error",s=n&&n.constructorAction||"error";if(i==="ignore"&&s==="ignore")return r;if(i!=="ignore"&&s!=="ignore"){if(hnt.test(e)===!1&&mnt.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(hnt.test(e)===!1)return r}else if(mnt.test(e)===!1)return r;return ynt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function ynt(e,{protoAction:t="error",constructorAction:n="error",safe:r}={}){let i=[e];for(;i.length;){let s=i;i=[];for(let o of s){if(t!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"__proto__")){if(r===!0)return null;if(t==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.__proto__}if(n!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"constructor")&&o.constructor!==null&&typeof o.constructor=="object"&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype")){if(r===!0)return null;if(n==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.constructor}for(let a in o){let c=o[a];c&&typeof c=="object"&&i.push(c)}}}return e}function Pue(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return gnt(e,t,n)}finally{Error.stackTraceLimit=r}}function Ukn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return gnt(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Bk.exports=Pue;Bk.exports.default=Pue;Bk.exports.parse=Pue;Bk.exports.safeParse=Ukn;Bk.exports.scan=ynt});var Uue=w((n3r,MM)=>{"use strict";var{AsyncResource:Fkn}=K("node:async_hooks"),{FifoMap:Ent}=IV(),{parse:jkn}=Nue(),CM=lce(),{kDefaultJsonParse:NM,kContentTypeParser:zk,kBodyLimit:Hkn,kRequestPayloadStream:_nt,kState:Mue,kTestInternals:qkn,kReplyIsError:Snt,kRouteContext:Bkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:b4,FST_ERR_CTP_EMPTY_TYPE:zkn,FST_ERR_CTP_ALREADY_PRESENT:Gkn,FST_ERR_CTP_INVALID_HANDLER:Vkn,FST_ERR_CTP_INVALID_PARSE_TYPE:Wkn,FST_ERR_CTP_BODY_TOO_LARGE:bnt,FST_ERR_CTP_INVALID_MEDIA_TYPE:Kkn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:Ykn,FST_ERR_CTP_EMPTY_JSON_BODY:Zkn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:Due,FST_ERR_CTP_INVALID_JSON_BODY:Jkn}=Ko(),{FSTSEC001:Xkn}=Pk();function ng(e,t,n){this[NM]=vnt(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Cue(!0,!1,e,this[NM])),this.customParsers.set("text/plain",new Cue(!0,!1,e,Lue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new Ent(100)}ng.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new zkn}else if(!(e instanceof RegExp))throw new b4;if(typeof n!="function")throw new Vkn;if(this.existingParser(e))throw new Gkn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new Wkn(t.parseAs);let i=new Cue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new CM(e);if(s.isValid===!1)throw new b4;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else rIn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};ng.prototype.hasParser=function(e){if(typeof e=="string")e=new CM(e).toString();else{if(!(e instanceof RegExp))throw new b4;e=e.toString()}return this.customParsers.has(e)};ng.prototype.existingParser=function(e){if(typeof e=="string"){let t=new CM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[NM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Lue}return this.hasParser(e)};ng.prototype.getParser=function(e){typeof e=="string"&&(e=new CM(e));let t=e.toString(),n=this.cache.get(t);if(n!==void 0)return n;if(n=this.customParsers.get(t),n!==void 0)return this.cache.set(t,n),n;if(n=this.customParsers.get(e.mediaType),n!==void 0)return n;for(let r=0;r!==this.parserRegExpList.length;++r){let i=this.parserRegExpList[r];if(i.test(t))return n=this.customParsers.get(i.toString()),this.cache.set(t,n),n}return this.customParsers.get("")};ng.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new Ent(100)};ng.prototype.remove=function(e){let t;if(typeof e=="string")e=new CM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new b4;e=e.toString(),t=this.parserRegExpList}let n=this.customParsers.delete(e),r=t.findIndex(i=>i.toString()===e);return r>-1&&t.splice(r,1),n||r>-1};ng.prototype.run=function(e,t,n,r){let i=this.getParser(e);if(i===void 0){if(n.is404===!0){t(n,r);return}r[Snt]=!0,r.send(new Kkn);return}let s=new Fkn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){Tnt(n,r,r[Bkn]._parserOptions,i,o);return}let a=i.fn(n,n[_nt],o);a&&typeof a.then=="function"&&a.then(u=>{o(null,u)},o);function c(u,l){if(s.emitDestroy(),u!=null){r.header("connection","close"),r[Snt]=!0,r.send(u);return}n.body=l,t(n,r)}};function Tnt(e,t,n,r,i){let s=r.asString===!0,o=n.limit===null?r.bodyLimit:n.limit,a=Number(e.headers["content-length"]);if(a>o){i(new bnt,void 0);return}let c=0,u=s?"":[],l=e[_nt]||e.raw;s&&l.setEncoding("utf8"),l.on("data",d),l.on("end",f),l.on("error",f),l.resume();function d(p){c+=s?Buffer.byteLength(p):p.length;let{receivedEncodedLength:h=0}=l;if(c>o||h>o){l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),i(new bnt,void 0);return}s?u+=p:u.push(p)}function f(p){if(l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),p!=null){typeof p.statusCode=="number"&&p.statusCode>=400||(p.statusCode=400),i(p,void 0);return}if(!Number.isNaN(a)&&(l.receivedEncodedLength||c)!==a){i(new Ykn,void 0);return}s||(u=Buffer.concat(u));let h=r.fn(e,u,i);h&&typeof h.then=="function"&&h.then(m=>{i(null,m)},i)}}function vnt(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new Zkn,void 0);return}try{o(null,jkn(s,n))}catch{o(new Jkn,void 0)}}}function Lue(e,t,n){n(null,t)}function Cue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function Qkn(e){let t=new ng;return t[NM]=e[NM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function $kn(e,t,n){if(this[Mue].started)throw new Due("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Hkn]),Array.isArray(e)?e.forEach(r=>this[zk].add(r,t,n)):this[zk].add(e,t,n),this}function eIn(e){return this[zk].hasParser(e)}function tIn(e){if(this[Mue].started)throw new Due("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[zk].remove(t);else this[zk].remove(e)}function nIn(){if(this[Mue].started)throw new Due("removeAllContentTypeParsers");this[zk].removeAll()}function rIn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&Xkn(e.source)}MM.exports=ng;MM.exports.helpers={buildContentTypeParser:Qkn,addContentTypeParser:$kn,hasContentTypeParser:eIn,removeContentTypeParser:tIn,removeAllContentTypeParsers:nIn};MM.exports.defaultParsers={getDefaultJsonParser:vnt,defaultTextParser:Lue};MM.exports[qkn]={rawBody:Tnt}});var rg=w(DM=>{"use strict";Object.defineProperty(DM,"__esModule",{value:!0});DM.checkMetadata=void 0;var iIn=pn(),sIn={keyword:"metadata",schemaType:"object",code(e){Rnt(e);let{gen:t,schema:n,it:r}=e;if((0,iIn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function Rnt({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}DM.checkMetadata=Rnt;DM.default=sIn});var E4=w(UM=>{"use strict";Object.defineProperty(UM,"__esModule",{value:!0});UM.hasRef=void 0;var Ant=H_(),LM=Ot(),oIn=Ym(),wnt=Sd(),knt=zse(),aIn=rg(),cIn={keyword:"ref",schemaType:"string",code(e){(0,aIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{schemaEnv:{root:o}}=s,a=t.name("valid");i.nullable?(t.var(a,(0,LM._)`${n} === null`),t.if((0,LM.not)(a),c)):(t.var(a,!1),c()),e.ok(a);function c(){var d;let f=(d=o.schema.definitions)===null||d===void 0?void 0:d[r];if(!f)throw new oIn.default(s.opts.uriResolver,"",r,`No definition ${r}`);Fue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=Ant.compileSchema.call(s.self,new Ant.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,knt.getValidate)(e,f),h=t.const("_errs",wnt.default.errors);(0,knt.callRef)(e,p,f,f.$async),t.assign(a,(0,LM._)`${h} === ${wnt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,LM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:LM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function Fue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&Fue(n))return!0}return!1}UM.hasRef=Fue;UM.default=cIn});var Hue=w(jue=>{"use strict";Object.defineProperty(jue,"__esModule",{value:!0});var uIn=/t|\s/i,lIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,dIn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,fIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function xnt(e,t){let n=e.split(uIn);return n.length===2&&Int(n[0])&&pIn(n[1])||t&&n.length===1&&Int(n[0])}jue.default=xnt;function Int(e){let t=lIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=fIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function pIn(e){let t=dIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3],s=+(t[4]||0),o=+(t[5]||0);return n<=23&&r<=59&&i<=59||n-s===23&&r-o===59&&i===60}xnt.code='require("ajv/dist/runtime/timestamp").default'});var Gk=w($S=>{"use strict";Object.defineProperty($S,"__esModule",{value:!0});$S.typeErrorParams=$S.typeErrorMessage=$S.typeError=void 0;var hIn=Ot();function mIn(e){return{message:t=>Ont(t,e),params:t=>Pnt(t,e)}}$S.typeError=mIn;function Ont({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}$S.typeErrorMessage=Ont;function Pnt({parentSchema:e},t){return(0,hIn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}$S.typeErrorParams=Pnt});var que=w(Vk=>{"use strict";Object.defineProperty(Vk,"__esModule",{value:!0});Vk.intRange=void 0;var El=Ot(),gIn=Hue(),yIn=pn(),SIn=rg(),Nnt=Gk();Vk.intRange={int8:[-128,127,3],uint8:[0,255,3],int16:[-32768,32767,5],uint16:[0,65535,5],int32:[-2147483648,2147483647,10],uint32:[0,4294967295,10]};var bIn={message:e=>(0,Nnt.typeErrorMessage)(e,e.schema),params:e=>(0,Nnt.typeErrorParams)(e,e.schema)};function EIn(e){let{gen:t,data:n,it:r}=e,{timestamp:i,allowDate:s}=r.opts;if(i==="date")return(0,El._)`${n} instanceof Date `;let o=(0,yIn.useFunc)(t,gIn.default),a=s?(0,El._)`, true`:El.nil,c=(0,El._)`typeof ${n} == "string" && ${o}(${n}${a})`;return i==="string"?c:(0,El.or)((0,El._)`${n} instanceof Date`,c)}var _In={keyword:"type",schemaType:"string",error:bIn,code(e){(0,SIn.checkMetadata)(e);let{data:t,schema:n,parentSchema:r,it:i}=e,s;switch(n){case"boolean":case"string":s=(0,El._)`typeof ${t} == ${n}`;break;case"timestamp":{s=EIn(e);break}case"float32":case"float64":s=(0,El._)`typeof ${t} == "number"`;break;default:{let o=n;if(s=(0,El._)`typeof ${t} == "number" && isFinite(${t}) && !(${t} % 1)`,!i.opts.int32range&&(o==="int32"||o==="uint32"))o==="uint32"&&(s=(0,El._)`${s} && ${t} >= 0`);else{let[a,c]=Vk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Vk.default=_In});var Kk=w(Wk=>{"use strict";Object.defineProperty(Wk,"__esModule",{value:!0});Wk.checkNullableObject=Wk.checkNullable=void 0;var _4=Ot();function Cnt({gen:e,data:t,parentSchema:n},r=_4.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,_4._)`${t} === null`),r=(0,_4.not)(i)):e.let(i,!1),[i,r]}Wk.checkNullable=Cnt;function TIn(e,t){let[n,r]=Cnt(e,t);return[n,(0,_4._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}Wk.checkNullableObject=TIn});var Mnt=w(Bue=>{"use strict";Object.defineProperty(Bue,"__esModule",{value:!0});var eb=Ot(),vIn=rg(),RIn=Kk(),AIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,eb._)`{allowedValues: ${e}}`},wIn={keyword:"enum",schemaType:"array",error:AIn,code(e){(0,vIn.checkMetadata)(e);let{gen:t,data:n,schema:r,schemaValue:i,parentSchema:s,it:o}=e;if(r.length===0)throw new Error("enum must have non-empty array");if(r.length!==new Set(r).size)throw new Error("enum items must be unique");let a,c=(0,eb._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,RIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,eb.and)(c,(0,eb.or)(...r.map(l=>(0,eb._)`${n} === ${l}`))),s.nullable&&(a=(0,eb.or)((0,eb._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,eb._)`${a} = ${n} === ${l}`,()=>t.break()))}}};Bue.default=wIn});var Lnt=w(zue=>{"use strict";Object.defineProperty(zue,"__esModule",{value:!0});var kIn=pn(),IIn=Sa(),Dnt=Ot(),xIn=rg(),OIn=Kk(),PIn=Gk(),NIn={keyword:"elements",schemaType:"object",error:(0,PIn.typeError)("array"),code(e){(0,xIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,kIn.alwaysValidSchema)(i,r))return;let[s]=(0,OIn.checkNullable)(e);t.if((0,Dnt.not)(s),()=>t.if((0,Dnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,IIn.validateArray)(e)),()=>e.error())),e.ok(s)}};zue.default=NIn});var Vue=w(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.validateProperties=tb.error=void 0;var Gue=Sa(),Unt=pn(),ig=Ot(),CIn=rg(),MIn=Kk(),Fnt=Gk(),Yk;(function(e){e.Additional="additional",e.Missing="missing"})(Yk||(Yk={}));tb.error={message:e=>{let{params:t}=e;return t.propError?t.propError===Yk.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,Fnt.typeErrorMessage)(e,"object")},params:e=>{let{params:t}=e;return t.propError?t.propError===Yk.Additional?(0,ig._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,ig._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,Fnt.typeErrorParams)(e,"object")}};var DIn={keyword:"properties",schemaType:"object",error:tb.error,code:jnt};function jnt(e){(0,CIn.checkMetadata)(e);let{gen:t,data:n,parentSchema:r,it:i}=e,{additionalProperties:s,nullable:o}=r;if(i.jtdDiscriminator&&o)throw new Error("JTD: nullable inside discriminator mapping");if(p())throw new Error("JTD: properties and optionalProperties have common members");let[a,c]=h("properties"),[u,l]=h("optionalProperties");if(c.length===0&&l.length===0&&s)return;let[d,f]=i.jtdDiscriminator===void 0?(0,MIn.checkNullableObject)(e,n):[t.let("valid",!1),!0];t.if(f,()=>t.assign(d,!0).block(()=>{m(c,"properties",!0),m(l,"optionalProperties"),s||y()})),e.pass(d);function p(){let S=r.properties,E=r.optionalProperties;if(!(S&&E))return!1;for(let _ in S)if(Object.prototype.hasOwnProperty.call(E,_))return!0;return!1}function h(S){let E=r[S],_=E?(0,Gue.allSchemaProperties)(E):[];if(i.jtdDiscriminator&&_.some(R=>R===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(R=>!(0,Unt.alwaysValidSchema)(i,E[R]));return[_,T]}function m(S,E,_){let T=t.var("valid");for(let A of S)t.if((0,Gue.propertyInData)(t,n,A,i.opts.ownProperties),()=>g(A,E,T),()=>R(A)),e.ok(T);function R(A){_?(t.assign(T,!1),e.error(!1,{propError:Yk.Missing,missingProperty:A},{schemaPath:A})):t.assign(T,!0)}}function g(S,E,_){e.subschema({keyword:E,schemaProp:S,dataProp:S},_)}function y(){t.forIn("key",n,S=>{let E=b(S,a,"properties",i.jtdDiscriminator),_=b(S,u,"optionalProperties"),T=E===!0?_:_===!0?E:(0,ig.and)(E,_);t.if(T,()=>{i.opts.removeAdditional?t.code((0,ig._)`delete ${n}[${S}]`):(e.error(!1,{propError:Yk.Additional,additionalProperty:S},{instancePath:S,parentSchema:!0}),i.opts.allErrors||t.break())})})}function b(S,E,_,T){let R;if(E.length>8){let A=(0,Unt.schemaRefOrVal)(i,r[_],_);R=(0,ig.not)((0,Gue.isOwnProperty)(t,A,S)),T!==void 0&&(R=(0,ig.and)(R,(0,ig._)`${S} !== ${T}`))}else if(E.length||T!==void 0){let A=T===void 0?E:[T].concat(E);R=(0,ig.and)(...A.map(x=>(0,ig._)`${S} !== ${x}`))}else R=!0;return R}}tb.validateProperties=jnt;tb.default=DIn});var qnt=w(Wue=>{"use strict";Object.defineProperty(Wue,"__esModule",{value:!0});var Hnt=Vue(),LIn={keyword:"optionalProperties",schemaType:"object",error:Hnt.error,code(e){e.parentSchema.properties||(0,Hnt.validateProperties)(e)}};Wue.default=LIn});var znt=w(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});var fT=Ot(),UIn=rg(),FIn=Kk(),Bnt=Gk(),T4=xoe(),jIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===T4.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in mapping`:(0,Bnt.typeErrorMessage)(e,"object")},params:e=>{let{schema:t,params:n}=e;return n.discrError?(0,fT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,Bnt.typeErrorParams)(e,"object")}},HIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:jIn,code(e){(0,UIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,FIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,fT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,fT._)`${n}${(0,fT.getProperty)(r)}`);t.if((0,fT._)`${l} === undefined`),e.error(!1,{discrError:T4.DiscrError.Tag,tag:l}),t.elseIf((0,fT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:T4.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,fT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:T4.DiscrError.Mapping,tag:l},{instancePath:r,schemaPath:"mapping",parentSchema:!0}),t.endIf()}function u(l){let d=t.name("valid");return e.subschema({keyword:"mapping",schemaProp:l,jtdDiscriminator:r},d),d}}};Kue.default=HIn});var Vnt=w(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});var Gnt=pn(),v4=Ot(),qIn=rg(),BIn=Kk(),zIn=Gk(),GIn={keyword:"values",schemaType:"object",error:(0,zIn.typeError)("object"),code(e){(0,qIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,BIn.checkNullableObject)(e,n);(0,Gnt.alwaysValidSchema)(i,r)?t.if((0,v4.not)((0,v4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,v4.not)(s)),e.error(),t.endIf()),e.ok(s);function a(){let c=t.name("valid");if(i.allErrors){let l=t.let("valid",!0);return u(()=>t.assign(l,!1)),l}return t.var(c,!0),u(()=>t.break()),c;function u(l){t.forIn("key",n,d=>{e.subschema({keyword:"values",dataProp:d,dataPropType:Gnt.Type.Str},c),t.if((0,v4.not)(c),l)})}}}};Yue.default=GIn});var Wnt=w(Zue=>{"use strict";Object.defineProperty(Zue,"__esModule",{value:!0});var VIn=Sa(),WIn={keyword:"union",schemaType:"array",trackErrors:!0,code:VIn.validateUnion,error:{message:"must match a schema in union"}};Zue.default=WIn});var Knt=w(Jue=>{"use strict";Object.defineProperty(Jue,"__esModule",{value:!0});var KIn=E4(),YIn=que(),ZIn=Mnt(),JIn=Lnt(),XIn=Vue(),QIn=qnt(),$In=znt(),e0n=Vnt(),t0n=Wnt(),n0n=rg(),r0n=["definitions",KIn.default,YIn.default,ZIn.default,JIn.default,XIn.default,QIn.default,$In.default,e0n.default,t0n.default,n0n.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];Jue.default=r0n});var Xnt=w(Xue=>{"use strict";Object.defineProperty(Xue,"__esModule",{value:!0});var sg=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},i0n=e=>({optionalProperties:sg(e)}),s0n=e=>({properties:{ref:{type:"string"}},optionalProperties:sg(e)}),o0n=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:sg(e)}),a0n=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:sg(e)}),c0n=e=>({properties:{elements:{ref:"schema"}},optionalProperties:sg(e)}),Znt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...sg(e)}}),Jnt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...sg(e)}}),u0n=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[Znt(!1),Jnt(!1)]}}}},optionalProperties:sg(e)}),l0n=e=>({properties:{values:{ref:"schema"}},optionalProperties:sg(e)}),Ynt=e=>({metadata:{union:[i0n,s0n,o0n,a0n,c0n,Znt,Jnt,u0n,l0n].map(t=>t(e))}}),d0n={definitions:{schema:Ynt(!1)},...Ynt(!0)};Xue.default=d0n});var Que=w(R4=>{"use strict";Object.defineProperty(R4,"__esModule",{value:!0});R4.jtdForms=void 0;R4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var $nt=w(ele=>{"use strict";Object.defineProperty(ele,"__esModule",{value:!0});var $ue=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f0n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function Qnt(e){return $ue.lastIndex=0,'"'+($ue.test(e)?e.replace($ue,t=>{let n=f0n[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}ele.default=Qnt;Qnt.code='require("ajv/dist/runtime/quote").default'});var srt=w(nle=>{"use strict";Object.defineProperty(nle,"__esModule",{value:!0});var p0n=Que(),trt=H_(),bn=Ot(),h0n=Ym(),qr=Sd(),m0n=Sa(),g0n=E4(),y0n=pn(),S0n=$nt(),b0n={elements:_0n,values:T0n,discriminator:v0n,properties:ert,optionalProperties:ert,enum:FM,type:R0n,ref:w0n};function nrt(e,t){let n=trt.getCompilingSchema.call(this,e);if(n)return n;let{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new bn.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a=o.scopeName("serialize"),c={self:this,gen:o,schema:e.schema,schemaEnv:e,definitions:t,data:qr.default.data},u;try{this._compilations.add(e),e.serializeName=a,o.func(a,qr.default.data,!1,()=>{o.let(qr.default.json,(0,bn.str)``),jM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}nle.default=nrt;function jM(e){let t;for(let n of p0n.jtdForms)if(n in e.schema){t=n;break}E0n(e,t?b0n[t]:I0n)}function E0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);n.if((0,bn._)`${i} === undefined || ${i} === null`,()=>n.add(qr.default.json,(0,bn._)`"null"`),()=>t(e))}function _0n(e){let{gen:t,schema:n,data:r}=e;t.add(qr.default.json,(0,bn.str)`[`);let i=t.let("first",!0);t.forOf("el",r,s=>{tle(e,i),jM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,bn.str)`]`)}function T0n(e){let{gen:t,schema:n,data:r}=e;t.add(qr.default.json,(0,bn.str)`{`);let i=t.let("first",!0);t.forIn("key",r,s=>rrt(e,s,n.values,i)),t.add(qr.default.json,(0,bn.str)`}`)}function rrt(e,t,n,r){let{gen:i,data:s}=e;tle(e,r),FM({...e,data:t}),i.add(qr.default.json,(0,bn.str)`:`);let o=i.const("value",(0,bn._)`${s}${(0,bn.getProperty)(t)}`);jM({...e,schema:n,data:o})}function v0n(e){let{gen:t,schema:n,data:r}=e,{discriminator:i}=n;t.add(qr.default.json,(0,bn.str)`{${JSON.stringify(i)}:`);let s=t.const("tag",(0,bn._)`${r}${(0,bn.getProperty)(i)}`);FM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,bn._)`${s} === ${o}`);let a=n.mapping[o];irt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,bn.str)`}`)}function ert(e){let{gen:t}=e;t.add(qr.default.json,(0,bn.str)`{`),irt(e),t.add(qr.default.json,(0,bn.str)`}`)}function irt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let y of a)l?l=!1:n.add(qr.default.json,(0,bn.str)`,`),m(y,s[y],h(y));l&&(d=n.let("first",!0));for(let y of c){let b=h(y);n.if((0,bn.and)((0,bn._)`${b} !== undefined`,(0,m0n.isOwnProperty)(n,i,y)),()=>{tle(e,d),m(y,o[y],b)})}r.additionalProperties&&n.forIn("key",i,y=>n.if(g(y,u),()=>rrt(e,y,{},d)));function f(y){return y?Object.keys(y):[]}function p(y){if(t&&y.push(t),new Set(y).size!==y.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return y}function h(y){return n.const("value",(0,bn._)`${i}${(0,bn.getProperty)(y)}`)}function m(y,b,S){n.add(qr.default.json,(0,bn.str)`${JSON.stringify(y)}:`),jM({...e,schema:b,data:S})}function g(y,b){return b.length?(0,bn.and)(...b.map(S=>(0,bn._)`${y} !== ${S}`)):!0}}function R0n(e){let{gen:t,schema:n,data:r}=e;switch(n.type){case"boolean":t.add(qr.default.json,(0,bn._)`${r} ? "true" : "false"`);break;case"string":FM(e);break;case"timestamp":t.if((0,bn._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,bn._)`'"' + ${r}.toISOString() + '"'`),()=>FM(e));break;default:A0n(e)}}function FM({gen:e,data:t}){e.add(qr.default.json,(0,bn._)`${(0,y0n.useFunc)(e,S0n.default)}(${t})`)}function A0n({gen:e,data:t,self:n}){let r=(0,bn._)`${t} === Infinity || ${t} === -Infinity || ${t} !== ${t}`;n.opts.specialNumbers===void 0||n.opts.specialNumbers==="fast"?e.add(qr.default.json,(0,bn._)`"" + ${t}`):e.if(r,()=>e.add(qr.default.json,(0,bn._)`null`),()=>e.add(qr.default.json,(0,bn._)`"" + ${t}`))}function w0n(e){let{gen:t,self:n,data:r,definitions:i,schema:s,schemaEnv:o}=e,{ref:a}=s,c=i[a];if(!c)throw new h0n.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,g0n.hasRef)(c))return jM({...e,schema:c});let{root:u}=o,l=nrt.call(n,new trt.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,bn._)`${k0n(t,l)}(${r})`)}function k0n(e,t){return t.serialize?e.scopeValue("serialize",{ref:t.serialize}):(0,bn._)`${e.scopeValue("wrapper",{ref:t})}.serialize`}function I0n({gen:e,data:t}){e.add(qr.default.json,(0,bn._)`JSON.stringify(${t})`)}function tle({gen:e},t){t?e.if(t,()=>e.assign(t,!1),()=>e.add(qr.default.json,(0,bn.str)`,`)):e.add(qr.default.json,(0,bn.str)`,`)}});var art=w(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});rb.parseJsonString=rb.parseJsonNumber=rb.parseJson=void 0;var x0n=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function og(e,t){let n;og.message=void 0;let r;t&&(e=e.slice(t));try{return og.position=t+e.length,JSON.parse(e)}catch(i){if(r=x0n.exec(i.message),!r){og.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),og.position=t+n;try{return JSON.parse(e)}catch{og.message=`unexpected token ${s}`;return}}}rb.parseJson=og;og.message=void 0;og.position=0;og.code='require("ajv/dist/runtime/parseJson").parseJson';function ag(e,t,n){let r="",i;if(ag.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return ag.position=t,+r;if(e[t]==="."&&(r+=".",t++,!s())){o();return}if(i=e[t],(i==="e"||i==="E")&&(r+="e",t++,i=e[t],(i==="+"||i==="-")&&(r+=i,t++),!s())){o();return}return ag.position=t,+r;function s(a){let c=!1;for(;i=e[t],i>="0"&&i<="9"&&(a===void 0||a-- >0);)c=!0,r+=i,t++;return c}function o(){ag.position=t,ag.message=t="a"&&r<="f")o+=r.charCodeAt(0)-O0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-P0n;else{i(`unexpected token ${r}`);return}t++}n+=String.fromCharCode(o)}else{i(`unexpected token ${r}`);return}else if(r===void 0){i("unexpected end");return}else if(r.charCodeAt(0)>=32)n+=r;else{i(`unexpected token ${r}`);return}return nb.position=t,n;function i(s){nb.position=t,nb.message=s}}rb.parseJsonString=nb;nb.message=void 0;nb.position=0;nb.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var Srt=w(lle=>{"use strict";Object.defineProperty(lle,"__esModule",{value:!0});var N0n=Que(),drt=H_(),mt=Ot(),C0n=Ym(),Dn=Sd(),M0n=Sa(),D0n=E4(),L0n=que(),sle=art(),frt=pn(),U0n=Hue(),F0n={elements:B0n,values:z0n,discriminator:V0n,properties:crt,optionalProperties:crt,enum:K0n,type:W0n,ref:Y0n};function prt(e,t){let n=drt.getCompilingSchema.call(this,e);if(n)return n;let{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new mt.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a=o.scopeName("parse"),c={self:this,gen:o,schema:e.schema,schemaEnv:e,definitions:t,data:Dn.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,j0n(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Dn.default.scope)}return ${l}`;let f=new Function(`${Dn.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.parse=f}catch(l){throw u&&this.logger.error("Error compiling parser, function code:",u),delete e.parse,delete e.parseName,l}finally{this._compilations.delete(e)}return e}lle.default=prt;var ile=(0,mt._)`undefined`;function j0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Dn.default.json}, ${Dn.default.jsonPos}, ${Dn.default.jsonPart}`,!1,()=>{t.let(Dn.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,ile),t.assign((0,mt._)`${n}.position`,ile),t.assign(Dn.default.jsonPos,(0,mt._)`${Dn.default.jsonPos} || 0`),t.const(Dn.default.jsonLen,(0,mt._)`${Dn.default.json}.length`),A4(e),ule(e),t.if(Dn.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Dn.default.jsonPos),t.return(Dn.default.data)}),t.if((0,mt._)`${Dn.default.jsonPos} === ${Dn.default.jsonLen}`,()=>t.return(Dn.default.data)),Zk(e)})}function A4(e){let t;for(let n of N0n.jtdForms)if(n in e.schema){t=n;break}t?q0n(e,F0n[t]):ale(e)}var H0n=lrt(!0,lrt(!1,Zk));function q0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);HM(e,"null",t,()=>n.assign(i,null))}function B0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),ole(e,"]",()=>{let s=t.let("el");A4({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function z0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),ole(e,"}",()=>G0n(e,n.values))}function ole(e,t,n){hrt(e,t,n),Ah(e,t)}function hrt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Dn.default.jsonPos}<${Dn.default.jsonLen} && ${w4(1)}!==${t};`,()=>{n(),HM(e,",",()=>r.break(),i)});function i(){HM(e,t,()=>{},Zk)}}function G0n(e,t){let{gen:n}=e,r=n.let("key");pT({...e,data:r}),Ah(e,":"),grt(e,r,t)}function V0n(e){let{gen:t,data:n,schema:r}=e,{discriminator:i,mapping:s}=r;Ah(e,"{"),t.assign(n,(0,mt._)`{}`);let o=t.const("pos",Dn.default.jsonPos),a=t.let("value"),c=t.let("tag");hrt(e,"}",()=>{let u=t.let("key");pT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{pT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>ale({...e,data:a}))}),t.assign(Dn.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),cg(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),mrt({...e,schema:s[u]},i);t.else(),cg(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function crt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),mrt(e)}function mrt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(ole(e,"}",()=>{let c=n.let("key");if(pT({...e,data:c}),Ah(e,":"),n.if(!1),urt(e,c,s),urt(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");pT({...e,data:u})}n.else(),a?ale({...e,data:(0,mt._)`${i}[${c}]`}):cg(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,M0n.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>cg(e,(0,mt.str)`missing required properties`))}}function urt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),grt(e,t,n[i])}function grt(e,t,n){A4({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function W0n(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":H0n(e);break;case"string":pT(e);break;case"timestamp":{pT(e);let s=(0,frt.useFunc)(t,U0n.default),{allowDate:o,parseDate:a}=i.opts,c=o?(0,mt._)`!${s}(${r}, true)`:(0,mt._)`!${s}(${r})`,u=a?(0,mt.or)(c,(0,mt._)`(${r} = new Date(${r}), false)`,(0,mt._)`isNaN(${r}.valueOf())`):c;t.if(u,()=>cg(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":rle(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))rle(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>cg(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=L0n.intRange[s];rle(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>cg(e,(0,mt.str)`integer out of range`))}}}}function pT(e){Ah(e,'"'),cle(e,sle.parseJsonString)}function K0n(e){let{gen:t,data:n,schema:r}=e,i=r.enum;Ah(e,'"'),t.if(!1);for(let s of i){let o=JSON.stringify(s).slice(1);t.elseIf((0,mt._)`${w4(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Dn.default.jsonPos,o.length)}t.else(),Zk(e),t.endIf()}function rle(e,t){let{gen:n}=e;ule(e),n.if((0,mt._)`"-0123456789".indexOf(${w4(1)}) < 0`,()=>Zk(e),()=>cle(e,sle.parseJsonNumber,t))}function lrt(e,t){return n=>{let{gen:r,data:i}=n;HM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function Y0n(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new C0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,D0n.hasRef)(a))return A4({...e,schema:a});let{root:c}=s,u=prt.call(n,new drt.SchemaEnv({schema:a,root:c}),r);yrt(e,Z0n(t,u),!0)}function Z0n(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function ale(e){cle(e,sle.parseJson)}function cle(e,t,n){yrt(e,(0,frt.useFunc)(e.gen,t),n)}function yrt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Dn.default.json}, ${Dn.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Dn.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>cg(e,(0,mt._)`${t}.message`))}function Ah(e,t){HM(e,t,Zk)}function HM(e,t,n,r){let{gen:i}=e,s=t.length;ule(e),i.if((0,mt._)`${w4(s)} === ${t}`,()=>{i.add(Dn.default.jsonPos,s),r?.(e)},()=>n(e))}function ule({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Dn.default.json}[${Dn.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Dn.default.jsonPos}++;`)}function w4(e){return e===1?(0,mt._)`${Dn.default.json}[${Dn.default.jsonPos}]`:(0,mt._)`${Dn.default.json}.slice(${Dn.default.jsonPos}, ${Dn.default.jsonPos}+${e})`}function Zk(e){cg(e,(0,mt._)`"unexpected token " + ${Dn.default.json}[${Dn.default.jsonPos}]`)}function cg({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Dn.default.jsonPos),e.return(ile)}});var ple=w((bi,fle)=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.MissingRefError=bi.ValidationError=bi.CodeGen=bi.Name=bi.nil=bi.stringify=bi.str=bi._=bi.KeywordCxt=bi.Ajv=void 0;var J0n=qse(),X0n=Knt(),Q0n=Xnt(),$0n=srt(),exn=Srt(),dle="JTD-meta-schema",Jk=class extends J0n.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(X0n.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(Q0n.default,dle,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(dle)?dle:void 0)}compileSerializer(t){let n=this._addSchema(t);return n.serialize||this._compileSerializer(n)}compileParser(t){let n=this._addSchema(t);return n.parse||this._compileParser(n)}_compileSerializer(t){if($0n.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(exn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};bi.Ajv=Jk;fle.exports=bi=Jk;fle.exports.Ajv=Jk;Object.defineProperty(bi,"__esModule",{value:!0});bi.default=Jk;var txn=rk();Object.defineProperty(bi,"KeywordCxt",{enumerable:!0,get:function(){return txn.KeywordCxt}});var Xk=Ot();Object.defineProperty(bi,"_",{enumerable:!0,get:function(){return Xk._}});Object.defineProperty(bi,"str",{enumerable:!0,get:function(){return Xk.str}});Object.defineProperty(bi,"stringify",{enumerable:!0,get:function(){return Xk.stringify}});Object.defineProperty(bi,"nil",{enumerable:!0,get:function(){return Xk.nil}});Object.defineProperty(bi,"Name",{enumerable:!0,get:function(){return Xk.Name}});Object.defineProperty(bi,"CodeGen",{enumerable:!0,get:function(){return Xk.CodeGen}});var nxn=kC();Object.defineProperty(bi,"ValidationError",{enumerable:!0,get:function(){return nxn.default}});var rxn=Ym();Object.defineProperty(bi,"MissingRefError",{enumerable:!0,get:function(){return rxn.default}})});var hle=w((v3r,brt)=>{"use strict";var ixn=tV();brt.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:ixn,addUsedSchema:!1,allErrors:!1})});var Trt=w((R3r,_rt)=>{"use strict";var sxn=G_().default,oxn=ple(),Ert=hle(),mle=class{constructor(t,n){n.mode==="JTD"?this.ajv=new oxn(Object.assign({},Ert,n.customOptions)):this.ajv=new sxn(Object.assign({},Ert,n.customOptions));let r=!0;if(n.plugins&&n.plugins.length>0)for(let s of n.plugins)Array.isArray(s)?(r=r&&s[0].name!=="formatsPlugin",s[0](this.ajv,s[1])):(r=r&&s.name!=="formatsPlugin",s(this.ajv));r&&SV()(this.ajv),n.onCreate?.(this.ajv);let i=Object.values(t);for(let s of i)this.ajv.addSchema(s)}buildValidatorFunction({schema:t}){if(t.$id){let n=this.ajv.getSchema(t.$id);if(n)return n}return this.ajv.compile(t)}};_rt.exports=mle});var Rrt=w((A3r,vrt)=>{"use strict";var axn=ple(),cxn=hle(),gle=class{constructor(t,n){this.ajv=new axn(Object.assign({},cxn,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};vrt.exports=gle});var krt=w((BM,wrt)=>{"use strict";Object.defineProperty(BM,"__esModule",{value:!0});var qM=H2(),Cf=Zw();function Art(e,t){if(!e.opts.code.source)throw new Error("moduleCode: ajv instance must have code.source option");let{_n:n}=e.scope.opts;return typeof t=="function"?i(t.source):t!==void 0?s(t,r):s(e.schemas,a=>a.meta?void 0:e.compile(a.schema));function r(a){let c=e.getSchema(a);if(!c)throw new Error(`moduleCode: no schema with id ${a}`);return c}function i(a){let c={},u=a?.validateName,l=o(c,a);return e.opts.code.esm?`"use strict";${n}export const validate = ${u};${n}export default ${u};${n}${l}`:`"use strict";${n}module.exports = ${u};${n}module.exports.default = ${u};${n}${l}`}function s(a,c){var u;let l={},d=(0,Cf._)`"use strict";`;for(let f in a){let p=c(a[f]);if(p){let h=o(l,p.source),m=e.opts.code.esm?(0,Cf._)`export const ${(0,Cf.getEsmExportName)(f)}`:(0,Cf._)`exports${(0,Cf.getProperty)(f)}`;d=(0,Cf._)`${d}${n}${m} = ${(u=p.source)===null||u===void 0?void 0:u.validateName};${n}${h}`}}return`${d}`}function o(a,c){if(!c)throw new Error('moduleCode: function does not have "source" property');if(f(c.validateName)===qM.UsedValueState.Completed)return Cf.nil;p(c.validateName,qM.UsedValueState.Started);let u=e.scope.scopeCode(c.scopeValues,a,d),l=new Cf._Code(`${u}${n}${c.validateCode}`);return c.evaluated?(0,Cf._)`${l}${c.validateName}.evaluated = ${c.evaluated};${n}`:l;function d(h){var m;let g=(m=h.value)===null||m===void 0?void 0:m.ref;if(h.prefix==="validate"&&typeof g=="function")return o(a,g.source);if((h.prefix==="root"||h.prefix==="wrapper")&&typeof g=="object"){let{validate:y,validateName:b}=g;if(!b)throw new Error("ajv internal error");let S=e.opts.code.es5?qM.varKinds.var:qM.varKinds.const,E=(0,Cf._)`${S} ${h} = {validate: ${b}};`;if(f(b)===qM.UsedValueState.Started)return E;let _=o(a,y?.source);return(0,Cf._)`${E}${n}${_}`}}function f(h){var m;return(m=a[h.prefix])===null||m===void 0?void 0:m.get(h)}function p(h,m){let{prefix:g}=h;(a[g]=a[g]||new Map).set(h,m)}}}wrt.exports=BM=Art;Object.defineProperty(BM,"__esModule",{value:!0});BM.default=Art});var Ort=w((w3r,xrt)=>{"use strict";var Irt=yle(),uxn=krt().default;function lxn(e={readMode:!0}){if(e.readMode===!0&&!e.restoreFunction)throw new Error("You must provide a restoreFunction options when readMode ON");if(e.readMode!==!0&&!e.storeFunction)throw new Error("You must provide a storeFunction options when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=Irt();return function(r,i={}){(!i.customOptions||!i.customOptions.code)&&(i.customOptions=Object.assign({},i.customOptions,{code:{source:!0}}));let s=t(r,i);return function(o){let a=s(o),c=uxn(s[Irt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}xrt.exports=lxn});var yle=w((k3r,Qk)=>{"use strict";var Nrt=Symbol.for("fastify.ajv-compiler.reference"),dxn=Trt(),fxn=Rrt();function Sle(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Prt({},s);if(n.has(o))return n.get(o);let a=new fxn(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Prt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new dxn(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[Nrt]=a),c}}function Prt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}Qk.exports=Sle;Qk.exports.default=Sle;Qk.exports.AjvCompiler=Sle;Qk.exports.AjvReference=Nrt;Qk.exports.StandaloneValidator=Ort()});var k4=w(Drt=>{var Crt=Object.prototype.hasOwnProperty;function Mrt(e,t,n){for(n of e.keys())if(zM(n,t))return n}function zM(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&zM(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i=="object"&&(i=Mrt(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i=="object"&&(i=Mrt(t,i),!i)||!zM(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(Crt.call(e,n)&&++r&&!Crt.call(t,n)||!(n in t)||!zM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Drt.dequal=zM});var jrt=w((x3r,Frt)=>{"use strict";var{dequal:Lrt}=k4(),pxn=Symbol.for("json-schema-ref"),ble=class{#t;#n;#i;#e;#r;constructor(t={}){this.#t={},this.#n={},this.#i=t.insertRefSymbol??!1,this.#e=t.allowEqualDuplicates??!0,this.#r=t.cloneSchemaWithoutRefs??!1}addSchema(t,n,r=!0){r&&(t.$id!==void 0&&t.$id.charAt(0)!=="#"?n=t.$id:this.#o(t,n));let i=t.$id;i!==void 0&&typeof i=="string"&&(i.charAt(0)==="#"?this.#a(t,n,i):(this.#o(t,i),n=i));let s=t.$ref;if(s!==void 0&&typeof s=="string"){let{refSchemaId:o,refJsonPointer:a}=this.#s(s,n);this.#t[n].refs.push({schemaId:o,jsonPointer:a})}for(let o in t)typeof t[o]=="object"&&t[o]!==null&&this.addSchema(t[o],n,!1)}getSchema(t,n="#"){let r=this.#t[t];if(r===void 0)throw new Error(`Cannot resolve ref "${t}${n}". Schema with id "${t}" is not found.`);return r.anchors[n]!==void 0?r.anchors[n]:Urt(r.schema,n)}hasSchema(t){return this.#t[t]!==void 0}getSchemaRefs(t){let n=this.#t[t];if(n===void 0)throw new Error(`Schema with id "${t}" is not found.`);return n.refs}getSchemaDependencies(t,n={}){let r=this.#t[t];for(let i of r.refs){let s=i.schemaId;s===t||n[s]!==void 0||(n[s]=this.getSchema(s),this.getSchemaDependencies(s,n))}return n}derefSchema(t){if(this.#n[t]!==void 0)return;let n=this.#t[t];if(n===void 0)throw new Error(`Schema with id "${t}" is not found.`);!this.#r&&n.refs.length===0&&(this.#n[t]={schema:n.schema,anchors:n.anchors});let r=[];this.#c(n.schema,t,!0,r);let i=this.getSchemaDependencies(t);for(let s in i){let o=i[s];this.#c(o,s,!0,r)}for(let s of r){let{refSchemaId:o,refJsonPointer:a}=this.#s(s.ref,s.sourceSchemaId),c=this.getDerefSchema(o,a);if(c===null)throw new Error(`Cannot resolve ref "${s.ref}". Ref "${a}" is not found in schema "${o}".`);s.targetSchema=c,s.targetSchemaId=o}for(let s of r)this.#u(s,r)}getDerefSchema(t,n="#"){let r=this.#n[t];return r===void 0&&(this.derefSchema(t),r=this.#n[t]),r.anchors[n]!==void 0?r.anchors[n]:Urt(r.schema,n)}#s(t,n){let r=t.indexOf("#");return r===-1?{refSchemaId:t,refJsonPointer:"#"}:r===0?{refSchemaId:n,refJsonPointer:t}:{refSchemaId:t.slice(0,r),refJsonPointer:t.slice(r)}}#c(t,n,r,i=[]){let s=Array.isArray(t)?[...t]:{...t};r&&(t.$id!==void 0&&t.$id.charAt(0)!=="#"?n=t.$id:this.#l(s,n));let o=s.$id;o!==void 0&&typeof o=="string"&&(o.charAt(0)==="#"?this.#d(s,n,o):(this.#l(s,o),n=o)),s.$ref!==void 0&&i.push({ref:s.$ref,sourceSchemaId:n,sourceSchema:s});for(let a in s){let c=s[a];typeof c=="object"&&c!==null&&(s[a]=this.#c(c,n,!1,i))}return s}#u(t,n){let{sourceSchema:r,targetSchema:i}=t;if(r.$ref){if(this.#i&&(r[pxn]=r.$ref),delete r.$ref,i.$ref){let s=n.find(o=>o.sourceSchema===i);this.#u(s,n)}for(let s in i)if(s!=="$id"){if(r[s]!==void 0){if(Lrt(r[s],i[s]))continue;throw new Error(`Cannot resolve ref "${t.ref}". Property "${s}" already exists in schema "${t.sourceSchemaId}".`)}r[s]=i[s]}t.isResolved=!0}}#o(t,n){let r=this.#t[n];if(r!==void 0){if(this.#e&&Lrt(t,r.schema))return;throw new Error(`There is already another schema with id "${n}".`)}this.#t[n]={schema:t,anchors:{},refs:[]}}#a(t,n,r){let{anchors:i}=this.#t[n];if(i[r]!==void 0)throw new Error(`There is already another anchor "${r}" in schema "${n}".`);i[r]=t}#l(t,n){this.#n[n]===void 0&&(this.#n[n]={schema:t,anchors:{}})}#d(t,n,r){let{anchors:i}=this.#n[n];i[r]=t}};function Urt(e,t){let n=t.split("/"),r=e;for(let i of n)if(!(i===""||i==="#")){if(typeof r!="object"||r===null)return null;r=r[i]}return r??null}Frt.exports={RefResolver:ble}});var _le=w((O3r,Hrt)=>{"use strict";var hxn=G_(),mxn=tV(),gxn=SV(),yxn=QW()({proto:!0}),Ele=class e{constructor(t){this.ajv=new hxn({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:mxn}),gxn(this.ajv),this.ajv.addKeyword({keyword:"fjs_type",type:"object",errors:!1,validate:(n,r)=>r&&typeof r.toJSON=="function"}),this._ajvSchemas={},this._ajvOptions=t||{}}addSchema(t,n){let r=t.$id||n;if(t.$id!==void 0&&t.$id[0]==="#"&&(r=n+t.$id),this.ajv.refs[r]===void 0&&this.ajv.schemas[r]===void 0){let i=yxn(t);this.convertSchemaToAjvFormat(i),this.ajv.addSchema(i,r),this._ajvSchemas[r]=t}}validate(t,n){return this.ajv.validate(t,n)}convertSchemaToAjvFormat(t){if(t!==null){t.type==="string"?(t.fjs_type="string",t.type=["string","object"]):Array.isArray(t.type)&&t.type.includes("string")&&!t.type.includes("object")&&(t.fjs_type="string",t.type.push("object"));for(let n in t)typeof t[n]=="object"&&this.convertSchemaToAjvFormat(t[n])}}getState(){return{ajvOptions:this._ajvOptions,ajvSchemas:this._ajvSchemas}}static restoreFromState(t){let n=new e(t.ajvOptions);for(let[r,i]of Object.entries(t.ajvSchemas))n.ajv.addSchema(i,r);return n}};Hrt.exports=Ele});var Brt=w((P3r,qrt)=>{"use strict";var Tle=class e{constructor(t,n,r="#"){this.schema=t,this.schemaId=n,this.jsonPointer=r}getPropertyLocation(t){return new e(this.schema[t],this.schemaId,this.jsonPointer+"/"+t)}getSchemaRef(){return this.schemaId+this.jsonPointer}};qrt.exports=Tle});var Krt=w((N3r,Rle)=>{"use strict";Rle.exports=qe;Rle.exports.default=qe;var Sxn={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0},zrt={enum:["array","boolean","integer","null","number","object","string"]},Grt=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,bxn=gV().fullFormats.uri,Vrt=gV().fullFormats.regex;function wd(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o;return typeof e=="number"&&!(e%1)&&!isNaN(e)&&isFinite(e)?o===a&&typeof e=="number"&&isFinite(e)&&(e<0||isNaN(e))?(wd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(wd.errors=s,o===0):(wd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var vle={validate:qe};function Vc(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0;if(o===0)if(Array.isArray(e)){if(e.length<1)return Vc.errors=[{instancePath:t,schemaPath:"#/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"}],!1;{var a=!0;let c=e.length;for(let u=0;u",limit:0},message:"must be > 0"}],!1}else return qe.errors=[{instancePath:t+"/multipleOf",schemaPath:"#/properties/multipleOf/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.maximum!==void 0){let S=e.maximum,E=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/maximum",schemaPath:"#/properties/maximum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.exclusiveMaximum!==void 0){let S=e.exclusiveMaximum,E=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/exclusiveMaximum",schemaPath:"#/properties/exclusiveMaximum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.minimum!==void 0){let S=e.minimum,E=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/minimum",schemaPath:"#/properties/minimum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.exclusiveMinimum!==void 0){let S=e.exclusiveMinimum,E=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/exclusiveMinimum",schemaPath:"#/properties/exclusiveMinimum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.maxLength!==void 0){let S=e.maxLength,E=o,_=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxLength",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===_&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxLength",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=E===o}else var a=!0;if(a){if(e.minLength!==void 0){let S=o;wd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?wd.errors:s.concat(wd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.pattern!==void 0){let S=e.pattern,E=o;if(o===E&&o===E)if(typeof S=="string"){if(!Vrt(S))return qe.errors=[{instancePath:t+"/pattern",schemaPath:"#/properties/pattern/format",keyword:"format",params:{format:"regex"},message:'must match format "regex"'}],!1}else return qe.errors=[{instancePath:t+"/pattern",schemaPath:"#/properties/pattern/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=E===o}else var a=!0;if(a){if(e.additionalItems!==void 0){let S=o;qe(e.additionalItems,{instancePath:t+"/additionalItems",parentData:e,parentDataProperty:"additionalItems",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.items!==void 0){let S=e.items,E=o,_=o,T=!1,R=o;qe(S,{instancePath:t+"/items",parentData:e,parentDataProperty:"items",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var c=R===o;if(T=T||c,!T){let x=o;Vc(S,{instancePath:t+"/items",parentData:e,parentDataProperty:"items",rootData:i})||(s=s===null?Vc.errors:s.concat(Vc.errors),o=s.length);var c=x===o;T=T||c}if(T)o=_,s!==null&&(_?s.length=_:s=null);else{let x={instancePath:t+"/items",schemaPath:"#/properties/items/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[x]:s.push(x),o++,qe.errors=s,!1}var a=E===o}else var a=!0;if(a){if(e.maxItems!==void 0){let S=e.maxItems,E=o,_=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxItems",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===_&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxItems",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=E===o}else var a=!0;if(a){if(e.minItems!==void 0){let S=o;wd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?wd.errors:s.concat(wd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.uniqueItems!==void 0){let S=o;if(typeof e.uniqueItems!="boolean")return qe.errors=[{instancePath:t+"/uniqueItems",schemaPath:"#/properties/uniqueItems/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;var a=S===o}else var a=!0;if(a){if(e.contains!==void 0){let S=o;qe(e.contains,{instancePath:t+"/contains",parentData:e,parentDataProperty:"contains",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.maxProperties!==void 0){let S=e.maxProperties,E=o,_=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxProperties",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===_&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxProperties",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=E===o}else var a=!0;if(a){if(e.minProperties!==void 0){let S=o;wd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?wd.errors:s.concat(wd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.required!==void 0){let S=e.required,E=o;if(o===o)if(Array.isArray(S)){var u=!0;let R=S.length;for(let A=0;A1){let k={};for(;A--;){let P=S[A];if(typeof P=="string"){if(typeof k[P]=="number"){return x=k[P],qe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/uniqueItems",keyword:"uniqueItems",params:{i:A,j:x},message:"must NOT have duplicate items (items ## "+x+" and "+A+" are identical)"}],!1;break}k[P]=A}}}}}else return qe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=E===o}else var a=!0;if(a){if(e.additionalProperties!==void 0){let S=o;qe(e.additionalProperties,{instancePath:t+"/additionalProperties",parentData:e,parentDataProperty:"additionalProperties",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.definitions!==void 0){let S=e.definitions,E=o;if(o===E)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let R=o;qe(S[T],{instancePath:t+"/definitions/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var l=R===o;if(!l)break}else return qe.errors=[{instancePath:t+"/definitions",schemaPath:"#/properties/definitions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=E===o}else var a=!0;if(a){if(e.properties!==void 0){let S=e.properties,E=o;if(o===E)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let R=o;qe(S[T],{instancePath:t+"/properties/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var d=R===o;if(!d)break}else return qe.errors=[{instancePath:t+"/properties",schemaPath:"#/properties/properties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=E===o}else var a=!0;if(a){if(e.patternProperties!==void 0){let S=e.patternProperties,E=o;if(o===E)if(S&&typeof S=="object"&&!Array.isArray(S)){for(let T in S){let R=o;if(o===R&&typeof T=="string"&&!Vrt(T)){let A={instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/propertyNames/format",keyword:"format",params:{format:"regex"},message:'must match format "regex"',propertyName:T};s===null?s=[A]:s.push(A),o++}var f=R===o;if(!f){let A={instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/propertyNames",keyword:"propertyNames",params:{propertyName:T},message:"property name must be valid"};return s===null?s=[A]:s.push(A),o++,qe.errors=s,!1;break}}if(f)for(let T in S){let R=o;qe(S[T],{instancePath:t+"/patternProperties/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var p=R===o;if(!p)break}}else return qe.errors=[{instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=E===o}else var a=!0;if(a){if(e.dependencies!==void 0){let S=e.dependencies,E=o;if(o===E)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let R=S[T],A=o,x=o,k=!1,P=o;qe(R,{instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var h=P===o;if(k=k||h,!k){let N=o;if(o===o)if(Array.isArray(R)){var m=!0;let G=R.length;for(let W=0;W1){let q={};for(;W--;){let Q=R[W];if(typeof Q=="string"){if(typeof q[Q]=="number"){$=q[Q];let B={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/definitions/stringArray/uniqueItems",keyword:"uniqueItems",params:{i:W,j:$},message:"must NOT have duplicate items (items ## "+$+" and "+W+" are identical)"};s===null?s=[B]:s.push(B),o++;break}q[Q]=W}}}}}else{let G={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"};s===null?s=[G]:s.push(G),o++}var h=N===o;k=k||h}if(k)o=x,s!==null&&(x?s.length=x:s=null);else{let N={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/dependencies/additionalProperties/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[N]:s.push(N),o++,qe.errors=s,!1}var g=A===o;if(!g)break}else return qe.errors=[{instancePath:t+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=E===o}else var a=!0;if(a){if(e.propertyNames!==void 0){let S=o;qe(e.propertyNames,{instancePath:t+"/propertyNames",parentData:e,parentDataProperty:"propertyNames",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.enum!==void 0){let S=e.enum,E=o;if(o===E)if(Array.isArray(S)){if(S.length<1)return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"}],!1;{let T=S.length,R;if(T>1){e:for(;T--;)for(R=T;R--;)if(Wrt(S[T],S[R])){return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/uniqueItems",keyword:"uniqueItems",params:{i:T,j:R},message:"must NOT have duplicate items (items ## "+R+" and "+T+" are identical)"}],!1;break e}}}}else return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=E===o}else var a=!0;if(a){if(e.type!==void 0){let S=e.type,E=o,_=o,T=!1,R=o;if(!(S==="array"||S==="boolean"||S==="integer"||S==="null"||S==="number"||S==="object"||S==="string")){let x={instancePath:t+"/type",schemaPath:"#/definitions/simpleTypes/enum",keyword:"enum",params:{allowedValues:zrt.enum},message:"must be equal to one of the allowed values"};s===null?s=[x]:s.push(x),o++}var y=R===o;if(T=T||y,!T){let x=o;if(o===x)if(Array.isArray(S))if(S.length<1){let P={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};s===null?s=[P]:s.push(P),o++}else{var b=!0;let P=S.length;for(let N=0;N1){e:for(;N--;)for(C=N;C--;)if(Wrt(S[N],S[C])){let L={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/uniqueItems",keyword:"uniqueItems",params:{i:N,j:C},message:"must NOT have duplicate items (items ## "+C+" and "+N+" are identical)"};s===null?s=[L]:s.push(L),o++;break e}}}}else{let P={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/type",keyword:"type",params:{type:"array"},message:"must be array"};s===null?s=[P]:s.push(P),o++}var y=x===o;T=T||y}if(T)o=_,s!==null&&(_?s.length=_:s=null);else{let x={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[x]:s.push(x),o++,qe.errors=s,!1}var a=E===o}else var a=!0;if(a){if(e.format!==void 0){let S=o;if(typeof e.format!="string")return qe.errors=[{instancePath:t+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.contentMediaType!==void 0){let S=o;if(typeof e.contentMediaType!="string")return qe.errors=[{instancePath:t+"/contentMediaType",schemaPath:"#/properties/contentMediaType/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.contentEncoding!==void 0){let S=o;if(typeof e.contentEncoding!="string")return qe.errors=[{instancePath:t+"/contentEncoding",schemaPath:"#/properties/contentEncoding/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.if!==void 0){let S=o;qe(e.if,{instancePath:t+"/if",parentData:e,parentDataProperty:"if",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.then!==void 0){let S=o;qe(e.then,{instancePath:t+"/then",parentData:e,parentDataProperty:"then",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.else!==void 0){let S=o;qe(e.else,{instancePath:t+"/else",parentData:e,parentDataProperty:"else",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.allOf!==void 0){let S=o;Vc(e.allOf,{instancePath:t+"/allOf",parentData:e,parentDataProperty:"allOf",rootData:i})||(s=s===null?Vc.errors:s.concat(Vc.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.anyOf!==void 0){let S=o;Vc(e.anyOf,{instancePath:t+"/anyOf",parentData:e,parentDataProperty:"anyOf",rootData:i})||(s=s===null?Vc.errors:s.concat(Vc.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.oneOf!==void 0){let S=o;Vc(e.oneOf,{instancePath:t+"/oneOf",parentData:e,parentDataProperty:"oneOf",rootData:i})||(s=s===null?Vc.errors:s.concat(Vc.errors),o=s.length);var a=S===o}else var a=!0;if(a)if(e.not!==void 0){let S=o;qe(e.not,{instancePath:t+"/not",parentData:e,parentDataProperty:"not",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return qe.errors=s,o===0}});var Ile=w((C3r,Yrt)=>{"use strict";var Ale=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Failed to merge "${t}" keyword schemas.`,this.schemas=n}},wle=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Resolver for "${t}" keyword not found.`,this.schemas=n}},kle=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};Yrt.exports={MergeError:Ale,ResolverNotFoundError:wle,InvalidOnConflictOptionError:kle}});var Xrt=w((M3r,Jrt)=>{"use strict";var{dequal:Exn}=k4(),{MergeError:xle}=Ile();function Zrt(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function _xn(e,t,n){let r=Zrt(t);if(r.length===0)throw new xle(e,t);n[e]=r}function Txn(e,t,n){for(let i=0;ic?r(c,a%c):a,i=(a,c)=>a*c/r(a,c),s=1;for(let a of t)for(;a*s%1!==0;)s*=10;let o=t[0]*s;for(let a of t)o=i(o,a*s);n[e]=o/s}function kxn(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:Pxn}=k4(),Xi=Xrt(),O4=Ile(),eit={$id:Xi.skip,type:Xi.hybridArraysIntersection,enum:Xi.arraysIntersection,minLength:Xi.maxNumber,maxLength:Xi.minNumber,minimum:Xi.maxNumber,maximum:Xi.minNumber,multipleOf:Xi.commonMultiple,exclusiveMinimum:Xi.maxNumber,exclusiveMaximum:Xi.minNumber,minItems:Xi.maxNumber,maxItems:Xi.minNumber,maxProperties:Xi.minNumber,minProperties:Xi.maxNumber,const:Xi.allEqual,default:Xi.allEqual,format:Xi.allEqual,required:Xi.arraysUnion,properties:Uxn,patternProperties:x4,additionalProperties:I4,items:Mxn,additionalItems:Dxn,definitions:x4,$defs:x4,nullable:Xi.booleanAnd,oneOf:Qrt,anyOf:Qrt,allOf:Xi.arraysUnion,not:I4,if:Fxn,then:Xi.skip,else:Xi.skip,dependencies:$rt,dependentRequired:$rt,dependentSchemas:x4,propertyNames:I4,uniqueItems:Xi.booleanOr,contains:I4};function I4(e,t,n,r,i){n[e]=Mf(t,i)}function Nxn(e){let t=[[]];for(let n of e){let r=[];for(let i of t)for(let s of n)r.push([...i,s]);t=r}return t}function Qrt(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=Nxn(t),o=[];for(let a of s)try{let c=Mf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof O4.MergeError)continue;throw c}n[e]=o}function Cxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Hxn}=rit();function qxn(e){return Hxn(e,{onConflict:"skip"})}iit.exports=qxn});var oit=w((U3r,Ole)=>{"use strict";function Bxn(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') +`),G=tAn.bind(null,{[itt]:"",[stt]:o,[att]:N,[ott]:uue,[lue]:x,[ctt]:k}),W="";d!==null&&(f===void 0?W=G(d):W=G(Object.assign({},d,{name:f})));let $=a instanceof Function?a:a?htt:TAn,q=$().indexOf(":")+1;if(b&&!h)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(g&&typeof g!="function")throw Error(`Unknown mixin type "${typeof g}" - expected "function"`);if(A&&typeof A!="string")throw Error(`Unknown msgPrefix type "${typeof A}" - expected "string"`);ZRn(p,h,b);let Q=ftt(h,b);typeof r.emit=="function"&&r.emit("message",{code:"PINO_CONFIG",config:{levels:Q,messageKey:c,errorKey:u}}),QRn(m);let B=XRn(m);return Object.assign(t,{levels:Q,[gAn]:B,[yAn]:b,[cAn]:r,[oAn]:$,[aAn]:q,[ott]:uue,[lue]:x,[att]:N,[lAn]:L,[dAn]:C,[fAn]:c,[pAn]:u,[hAn]:l,[bAn]:l?`,${JSON.stringify(l)}:{`:"",[stt]:o,[mAn]:g,[EAn]:y,[itt]:W,[ctt]:k,[SAn]:E,silent:rAn,onChild:R,[_An]:A}),Object.setPrototypeOf(t,KRn()),JRn(t),t[uAn](p),t}Ad.exports=due;Ad.exports.destination=(e=process.stdout.fd)=>typeof e=="object"?(e.dest=rtt(e.dest||process.stdout.fd),ntt(e)):ntt({dest:rtt(e),minLength:0});Ad.exports.transport=Wce();Ad.exports.multistream=ttt();Ad.exports.levels=ftt();Ad.exports.stdSerializers=IAn;Ad.exports.stdTimeFunctions=Object.assign({},ltt);Ad.exports.symbols=dtt;Ad.exports.version=iAn;Ad.exports.default=due;Ad.exports.pino=due});var Stt=w((BKr,ytt)=>{"use strict";var QW=mtt(),{serializersSym:gtt}=QW.symbols,{FST_ERR_LOG_INVALID_DESTINATION:xAn}=Ko();function OAn(e){if(e.stream&&e.file)throw new xAn;e.file&&(e.stream=QW.destination(e.file),delete e.file);let t=e.logger,n=e.genReqId,r=null;return t?(e.logger=void 0,e.genReqId=void 0,t[gtt]&&(e.serializers=Object.assign({},e.serializers,t[gtt])),r=t.child({},e),e.logger=t,e.genReqId=n):r=QW(e,e.stream),r}var PAn={req:function(t){return{method:t.method,url:t.url,version:t.headers&&t.headers["accept-version"],host:t.host,remoteAddress:t.ip,remotePort:t.socket?t.socket.remotePort:void 0}},err:QW.stdSerializers.err,res:function(t){return{statusCode:t.statusCode}}};ytt.exports={serializers:PAn,createPinoLogger:OAn}});var AM=w((zKr,Ett)=>{"use strict";var{FST_ERR_LOG_LOGGER_AND_LOGGER_INSTANCE_PROVIDED:NAn,FST_ERR_LOG_INVALID_LOGGER_CONFIG:CAn,FST_ERR_LOG_INVALID_LOGGER_INSTANCE:MAn,FST_ERR_LOG_INVALID_LOGGER:DAn}=Ko();function LAn(e,t,n,r,i){let s={[e.requestIdLogLabel]:r},o=e.childLoggerFactory.call(e.server,t,s,i||{},n);return e.childLoggerFactory!==btt&&$W(o,!0),o}function btt(e,t,n){return e.child(t,n)}function $W(e,t){let n=["info","error","debug","fatal","warn","trace","child"],r=e?n.filter(i=>!e[i]||typeof e[i]!="function"):n;if(r.length){if(r.length===n.length&&!t)return!1;throw DAn(r.join(","))}else return!0}function UAn(e){if(e.logger&&e.loggerInstance)throw new NAn;if(!e.loggerInstance&&!e.logger){let o=l$e();return o.child=()=>o,{logger:o,hasLogger:!1}}let{createPinoLogger:t,serializers:n}=Stt();if($W(e.loggerInstance))return{logger:t({logger:e.loggerInstance,serializers:Object.assign({},n,e.loggerInstance.serializers)}),hasLogger:!0};if($W(e.logger))throw CAn();if(e.loggerInstance)throw MAn();let r={};return Object.prototype.toString.call(e.logger)==="[object Object]"&&Reflect.ownKeys(e.logger).forEach(s=>{Object.defineProperty(r,s,{value:e.logger[s],writable:!0,enumerable:!0,configurable:!0})}),r.level=r.level||"info",r.serializers=Object.assign({},n,r.serializers),e.logger=r,{logger:t(e.logger),hasLogger:!0}}function FAn(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}Ett.exports={createChildLogger:LAn,defaultChildLoggerFactory:btt,createLogger:UAn,validateLogger:$W,now:FAn}});var e4=w((GKr,_tt)=>{"use strict";_tt.exports=jAn;function Fk(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function jAn(e){if(e=e||{},e.circles)return HAn(e);let t=new Map;if(t.set(Date,o=>new Date(o)),t.set(Map,(o,a)=>new Map(r(Array.from(o),a))),t.set(Set,(o,a)=>new Set(r(Array.from(o),a))),e.constructorHandlers)for(let o of e.constructorHandlers)t.set(o[0],o[1]);let n=null;return e.proto?s:i;function r(o,a){let c=Object.keys(o),u=new Array(c.length);for(let l=0;lnew Date(c)),r.set(Map,(c,u)=>new Map(s(Array.from(c),u))),r.set(Set,(c,u)=>new Set(s(Array.from(c),u))),e.constructorHandlers)for(let c of e.constructorHandlers)r.set(c[0],c[1]);let i=null;return e.proto?a:o;function s(c,u){let l=Object.keys(c),d=new Array(l.length);for(let f=0;f{"use strict";var qAn=e4()({circles:!1,proto:!0}),{kSchemaVisited:Ttt,kSchemaResponse:BAn}=$s(),fue=Symbol.for("fluent-schema-object"),{FST_ERR_SCH_MISSING_ID:zAn,FST_ERR_SCH_ALREADY_PRESENT:GAn,FST_ERR_SCH_DUPLICATE:VAn,FST_ERR_SCH_CONTENT_MISSING_SCHEMA:vtt}=Ko(),Att=["params","body","querystring","query","headers"];function t4(e){this.store=e||{}}t4.prototype.add=function(e){let t=qAn(e.isFluentSchema||e.isFluentJSONSchema||e[fue]?e.valueOf():e),n=t.$id;if(!n)throw new zAn;if(this.store[n])throw new GAn(n);this.store[n]=t};t4.prototype.getSchemas=function(){return Object.assign({},this.store)};t4.prototype.getSchema=function(e){return this.store[e]};function Rtt(e){return typeof e=="object"&&Object.getPrototypeOf(e)!==Object.prototype}function WAn(e,t){if(e[Ttt])return e;if(e.query){if(e.querystring)throw new VAn("querystring");e.querystring=e.query}KAn(e);for(let n of Att){let r=e[n];if(r&&!Rtt(r)&&n==="body"&&r.content){let i=r.content,s=Object.keys(i);for(let o=0;o{"use strict";var ZAn=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;Itt.exports=class ktt{constructor(t){switch(t&&t.rounding){case"floor":this.parseInteger=Math.floor;break;case"ceil":this.parseInteger=Math.ceil;break;case"round":this.parseInteger=Math.round;break;default:this.parseInteger=Math.trunc;break}this._options=t}asInteger(t){if(Number.isInteger(t))return""+t;if(typeof t=="bigint")return t.toString();let n=this.parseInteger(t);if(n===1/0||n===-1/0||n!==n)throw new Error(`The value "${t}" cannot be converted to an integer.`);return""+n}asNumber(t){let n=Number(t);if(n!==n)throw new Error(`The value "${t}" cannot be converted to a number.`);return n===1/0||n===-1/0?"null":""+n}asBoolean(t){return t&&"true"||"false"}asDateTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+t.toISOString()+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date-time.`)}asDate(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,10)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a date.`)}asTime(t){if(t===null)return'""';if(t instanceof Date)return'"'+new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(11,19)+'"';if(typeof t=="string")return'"'+t+'"';throw new Error(`The value "${t}" cannot be converted to a time.`)}asString(t){let n=t.length;if(n===0)return'""';if(n<42){let r="",i=-1,s=255;for(let o=0;o=55296&&s<=57343)return JSON.stringify(t);return i===-1&&'"'+t+'"'||'"'+r+t.slice(i)+'"'}else return n<5e3&&ZAn.test(t)===!1?'"'+t+'"':JSON.stringify(t)}asUnsafeString(t){return'"'+t+'"'}getState(){return this._options}static restoreFromState(t){return new ktt(t)}}});var Ott=w((KKr,xtt)=>{"use strict";var JAn=n4(),XAn={mode:"standalone"},QAn=JAn.restoreFromState(XAn),$An=null;xtt.exports=(function(t,n){let{asString:r,asNumber:i,asBoolean:s,asDateTime:o,asDate:a,asTime:c,asUnsafeString:u}=n,l=n.asInteger.bind(n),d="{",f="}",p="[",h="]",m=",",g=":",y='"',b=d+f,S=p+h,E=y+y,_="null";function T(A){let x=A&&typeof A.toJSON=="function"?A.toJSON():A;if(x===null)return b;let k,P=d,N=!1;return k=x.statusCode,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"statusCode":',P+=i(k)),k=x.code,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"code":',typeof k!="string"?k===null?P+=E:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),k=x.error,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"error":',typeof k!="string"?k===null?P+=E:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),k=x.message,k!==void 0&&(!N&&(N=!0)||(P+=m),P+='"message":',typeof k!="string"?k===null?P+=E:k instanceof Date?P+=y+k.toISOString()+y:k instanceof RegExp?P+=r(k.source):P+=r(k.toString()):P+=r(k)),P+f}return T})($An,QAn)});var kM=w((YKr,Mtt)=>{"use strict";var Ptt=K("node:http").STATUS_CODES,ewn=fce(),{setErrorStatusCode:twn}=IW(),{kReplyHeaders:lT,kReplyNextErrorHandler:r4,kReplyIsRunningOnErrorHook:nwn,kRouteContext:Ctt,kDisableRequestLogging:i4}=$s(),{FST_ERR_REP_INVALID_PAYLOAD_TYPE:rwn,FST_ERR_FAILED_ERROR_SERIALIZATION:iwn}=Ko(),{getSchemaSerializer:swn}=wM(),pue=Ott(),own={func:cwn,toJSON(){return this.func.name.toString()+"()"}};function awn(e,t,n){e[nwn]=!1;let r=e[Ctt];if(e[r4]===!1){Ntt(t,e,function(o,a){try{o.raw.writeHead(o.raw.statusCode,o[lT])}catch(c){o.log[i4]||o.log.warn({req:o.request,res:o,err:c},c?.message),o.raw.writeHead(o.raw.statusCode)}o.raw.end(a)});return}let i=e[r4]||r.errorHandler;e[r4]=Object.getPrototypeOf(i),delete e[lT]["content-type"],delete e[lT]["content-length"];let s=i.func;if(!s){e[r4]=!1,Ntt(t,e,n);return}try{let o=s(t,e.request,e);o!==void 0&&(o!==null&&typeof o.then=="function"?ewn(o,e):e.send(o))}catch(o){e.send(o)}}function cwn(e,t,n){lwn(e,n),twn(n,e),n.statusCode<500?n.log[i4]||n.log.info({res:n,err:e},e?.message):n.log[i4]||n.log.error({req:t,res:n,err:e},e?.message),n.send(e)}function Ntt(e,t,n){let r=t.raw,i=t.statusCode;t[lT]["content-type"]=t[lT]["content-type"]??"application/json; charset=utf-8";let s;try{let o=swn(t[Ctt],i,t[lT]["content-type"]);o===!1?s=pue({error:Ptt[i+""],code:e.code,message:e.message,statusCode:i}):s=o(Object.create(e,{error:{value:Ptt[i+""]},message:{value:e.message},statusCode:{value:i}}))}catch(o){t.log[i4]||t.log.error({err:o,statusCode:r.statusCode},"The serializer for the given status code failed"),t.code(500),s=pue(new iwn(o.message,e.message))}typeof s!="string"&&!Buffer.isBuffer(s)&&(s=pue(new rwn(typeof s))),t[lT]["content-length"]=""+Buffer.byteLength(s),n(t,s)}function uwn(e=own,t){if(!t)return e;let n=Object.create(e);return n.func=t,n}function lwn(e,t){let n=t.raw,r=n.statusCode;r=r>=400?r:500,e!=null&&(e.headers!==void 0&&t.headers(e.headers),e.status>=400?r=e.status:e.statusCode>=400&&(r=e.statusCode)),n.statusCode=r}Mtt.exports={buildErrorHandler:uwn,handleError:awn}});var OM=w((ZKr,Ftt)=>{"use strict";var{kReply:hue,kRequest:mue,kState:dwn,kHasBeenDecorated:fwn}=$s(),{FST_ERR_DEC_ALREADY_PRESENT:Dtt,FST_ERR_DEC_MISSING_DEPENDENCY:pwn,FST_ERR_DEC_AFTER_START:hwn,FST_ERR_DEC_REFERENCE_TYPE:mwn,FST_ERR_DEC_DEPENDENCY_INVALID_TYPE:gwn,FST_ERR_DEC_UNDECLARED:ywn}=Ko();function Swn(e,t,n,r){if(Object.hasOwn(e,t))throw new Dtt(t);gue(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(e,t,{get:n.getter,set:n.setter}):e[t]=n}function bwn(e){if(!IM(this,e))throw new ywn(e,"instance");return typeof this[e]=="function"?this[e].bind(this):this[e]}function Ltt(e,t,n,r){let i=e.prototype;if(Object.hasOwn(i,t)||xM(e,t))throw new Dtt(t);e[fwn]=!0,gue(e,t,r),n&&(typeof n.getter=="function"||typeof n.setter=="function")?Object.defineProperty(i,t,{get:n.getter,set:n.setter}):typeof n=="function"?i[t]=n:e.props.push({key:t,value:n})}function Utt(e,t){if(typeof t=="object"&&t&&!(typeof t.getter=="function"||typeof t.setter=="function"))throw new mwn(e,typeof t)}function Ewn(e,t,n){return yue(this,e),Swn(this,e,t,n),this}function IM(e,t){return t?t in e||e.prototype&&t in e.prototype||xM(e,t):e in this}function xM(e,t){return e.props?e.props.find(({key:n})=>n===t):!1}function _wn(e){return e&&xM(this[mue],e)?!0:IM(this[mue].prototype,e)}function Twn(e){return e&&xM(this[hue],e)?!0:IM(this[hue].prototype,e)}function gue(e,t,n){if(n!=null){if(!Array.isArray(n))throw new gwn(t);for(let r=0;r!==n.length;++r)if(!IM(e,n[r]))throw new pwn(n[r])}}function vwn(e,t,n){return yue(this,e),Utt(e,t),Ltt(this[hue],e,t,n),this}function Rwn(e,t,n){return yue(this,e),Utt(e,t),Ltt(this[mue],e,t,n),this}function yue(e,t){if(e[dwn].started)throw new hwn(t)}Ftt.exports={add:Ewn,exist:IM,existRequest:_wn,existReply:Twn,dependencies:gue,decorateReply:vwn,decorateRequest:Rwn,getInstanceDecorator:bwn,hasKey:xM}});var p4=w((JKr,f4)=>{"use strict";var s4=K("node:stream").finished,{kFourOhFourContext:jtt,kReplyErrorHandlerCalled:Wtt,kReplyHijacked:Tue,kReplyStartTime:NM,kReplyEndTime:vue,kReplySerializer:tg,kReplySerializerDefault:o4,kReplyIsError:a4,kReplyHeaders:jr,kReplyTrailers:Yo,kReplyHasStatusCode:Rue,kReplyIsRunningOnErrorHook:Aue,kReplyNextErrorHandler:Awn,kDisableRequestLogging:Ktt,kSchemaResponse:c4,kReplyCacheSerializeFns:XS,kSchemaController:Sue,kOptions:wwn,kRouteContext:Mn,kTimeoutTimer:u4,kOnAbort:jk,kRequestSignal:Ytt}=$s(),{onSendHookRunner:Ztt,onResponseHookRunner:kwn,preHandlerHookRunner:Iwn,preSerializationHookRunner:xwn}=YS(),Htt=bce()[Symbol.for("internals")],Own=AM(),_ue=Own.now,{handleError:qtt}=kM(),{getSchemaSerializer:Pwn}=wM(),bue={JSON:"application/json; charset=utf-8",PLAIN:"text/plain; charset=utf-8",OCTET:"application/octet-stream"},{FST_ERR_REP_INVALID_PAYLOAD_TYPE:Nwn,FST_ERR_REP_RESPONSE_BODY_CONSUMED:Cwn,FST_ERR_REP_READABLE_STREAM_LOCKED:Mwn,FST_ERR_REP_ALREADY_SENT:Dwn,FST_ERR_SEND_INSIDE_ONERR:Lwn,FST_ERR_BAD_STATUS_CODE:Uwn,FST_ERR_BAD_TRAILER_NAME:Fwn,FST_ERR_BAD_TRAILER_VALUE:jwn,FST_ERR_MISSING_SERIALIZATION_FN:Hwn,FST_ERR_MISSING_CONTENTTYPE_SERIALIZATION_FN:qwn,FST_ERR_DEC_UNDECLARED:Bwn}=Ko(),Btt=OM(),Jtt=Object.prototype.toString;function Hr(e,t,n){this.raw=e,this[tg]=null,this[Wtt]=!1,this[a4]=!1,this[Aue]=!1,this.request=t,this[jr]={},this[Yo]=null,this[Rue]=!1,this[NM]=void 0,this.log=n}Hr.props=[];Object.defineProperties(Hr.prototype,{[Mn]:{get(){return this.request[Mn]}},elapsedTime:{get(){return this[NM]===void 0?0:(this[vue]||_ue())-this[NM]}},server:{get(){return this.request[Mn].server}},sent:{enumerable:!0,get(){return(this[Tue]||this.raw.writableEnded)===!0}},statusCode:{get(){return this.raw.statusCode},set(e){this.code(e)}},routeOptions:{get(){return this.request.routeOptions}}});Hr.prototype.writeEarlyHints=function(e,t){return this.raw.writeEarlyHints(e,t),this};Hr.prototype.hijack=function(){return this[Tue]=!0,this.request[Ytt]&&(clearTimeout(this.request[u4]),this.request[u4]=null,this.request[jk]&&(this.request.raw.removeListener("close",this.request[jk]),this.request[jk]=null)),this};Hr.prototype.send=function(e){if(this[Aue])throw new Lwn;if(this.sent===!0)return this.log.warn({err:new Dwn(this.request.url,this.request.method)}),this;if(this[a4]||e instanceof Error)return this[a4]=!1,Hk(this,e,dT),this;if(e===void 0)return dT(this,e),this;let t=this.getHeader("content-type"),n=t!==void 0;if(e!==null){if(typeof e.pipe=="function"||typeof e.getReader=="function"||Jtt.call(e)==="[object Response]")return dT(this,e),this;if(e.buffer instanceof ArrayBuffer){n||(this[jr]["content-type"]=bue.OCTET);let r=Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength);return dT(this,r),this}if(!n&&typeof e=="string")return this[jr]["content-type"]=bue.PLAIN,dT(this,e),this}if(this[tg]!==null){if(typeof e!="string")return ztt(this,e),this;e=this[tg](e)}else if(!n||t.indexOf("json")!==-1){if(!n)this[jr]["content-type"]=bue.JSON;else if(t.indexOf("charset")===-1){let r=t.trim();r.endsWith(";")?this[jr]["content-type"]=`${r} charset=utf-8`:this[jr]["content-type"]=`${r}; charset=utf-8`}if(typeof e!="string")return ztt(this,e),this}return dT(this,e),this};Hr.prototype.getHeader=function(e){e=e.toLowerCase();let t=this[jr][e];return t!==void 0?t:this.raw.getHeader(e)};Hr.prototype.getHeaders=function(){return{...this.raw.getHeaders(),...this[jr]}};Hr.prototype.hasHeader=function(e){return e=e.toLowerCase(),this[jr][e]!==void 0||this.raw.hasHeader(e)};Hr.prototype.removeHeader=function(e){return delete this[jr][e.toLowerCase()],this};Hr.prototype.header=function(e,t=""){return e=e.toLowerCase(),this[jr][e]&&e==="set-cookie"?(typeof this[jr][e]=="string"&&(this[jr][e]=[this[jr][e]]),Array.isArray(t)?Array.prototype.push.apply(this[jr][e],t):this[jr][e].push(t)):this[jr][e]=t,this};Hr.prototype.headers=function(e){let t=Object.keys(e);for(let n=0;n!==t.length;++n){let r=t[n];this.header(r,e[r])}return this};var zwn=new Set(["transfer-encoding","content-length","host","cache-control","max-forwards","te","authorization","set-cookie","content-encoding","content-type","content-range","trailer"]);Hr.prototype.trailer=function(e,t){if(e=e.toLowerCase(),zwn.has(e))throw new Fwn(e);if(typeof t!="function")throw new jwn(e,typeof t);return this[Yo]===null&&(this[Yo]={}),this[Yo][e]=t,this};Hr.prototype.hasTrailer=function(e){return this[Yo]?.[e.toLowerCase()]!==void 0};Hr.prototype.removeTrailer=function(e){return this[Yo]===null?this:(this[Yo][e.toLowerCase()]=void 0,this)};Hr.prototype.code=function(e){let t=+e;if(!(t>=100&&t<=599))throw new Uwn(e||String(e));return this.raw.statusCode=t,this[Rue]=!0,this};Hr.prototype.status=Hr.prototype.code;Hr.prototype.getSerializationFunction=function(e,t){let n;return typeof e=="string"||typeof e=="number"?typeof t=="string"?n=this[Mn][c4]?.[e]?.[t]:n=this[Mn][c4]?.[e]:typeof e=="object"&&(n=this[Mn][XS]?.get(e)),n};Hr.prototype.compileSerializationSchema=function(e,t=null,n=null){let{request:r}=this,{method:i,url:s}=r;if(this[Mn][XS]?.has(e))return this[Mn][XS].get(e);let a=(this[Mn].serializerCompiler||this.server[Sue].serializerCompiler||this.server[Sue].setupSerializer(this.server[wwn])||this.server[Sue].serializerCompiler)({schema:e,method:i,url:s,httpStatus:t,contentType:n});return this[Mn][XS]==null&&(this[Mn][XS]=new WeakMap),this[Mn][XS].set(e,a),a};Hr.prototype.serializeInput=function(e,t,n,r){let i=n,s;if(n=typeof t=="string"||typeof t=="number"?t:n,r=n&&i!==n?i:r,n!=null){if(r!=null?s=this[Mn][c4]?.[n]?.[r]:s=this[Mn][c4]?.[n],s==null)throw r?new qwn(n,r):new Hwn(n)}else this[Mn][XS]?.has(t)?s=this[Mn][XS].get(t):s=this.compileSerializationSchema(t,n,r);return s(e)};Hr.prototype.serialize=function(e){return this[tg]!==null?this[tg](e):this[Mn]&&this[Mn][o4]?this[Mn][o4](e,this.raw.statusCode):Qtt(this[Mn],e,this.raw.statusCode)};Hr.prototype.serializer=function(e){return this[tg]=e,this};Hr.prototype.type=function(e){return this[jr]["content-type"]=e,this};Hr.prototype.redirect=function(e,t){return t||(t=this[Rue]?this.raw.statusCode:302),this.header("location",e).code(t).send()};Hr.prototype.callNotFound=function(){return Xwn(this),this};Hr.prototype.then=function(e,t){if(this.sent){e();return}s4(this.raw,n=>{n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"?t?t(n):this.log&&this.log.warn("unhandled rejection on reply.then"):e()})};Hr.prototype.getDecorator=function(e){if(!Btt.hasKey(this,e)&&!Btt.exist(this,e))throw new Bwn(e,"reply");let t=this[e];return typeof t=="function"?t.bind(this):t};function ztt(e,t){e[Mn].preSerialization!==null?xwn(e[Mn].preSerialization,e.request,e,t,Gtt):Gtt(null,void 0,e,t)}function Gtt(e,t,n,r){if(e!=null){Hk(n,e);return}try{n[tg]!==null?r=n[tg](r):n[Mn]&&n[Mn][o4]?r=n[Mn][o4](r,n.raw.statusCode):r=Qtt(n[Mn],r,n.raw.statusCode,n[jr]["content-type"])}catch(i){Gwn(i,n),Hk(n,i);return}dT(n,r)}function Gwn(e,t){e.serialization=t[Mn].config}function dT(e,t){e[Mn].onSend!==null?Ztt(e[Mn].onSend,e.request,e,t,Vwn):Xtt(e,t)}function Vwn(e,t,n,r){e!=null?Hk(n,e):Xtt(n,r)}function Eue(e,t){let n=e.raw;try{n.writeHead(t,e[jr])}catch(r){throw r.code==="ERR_HTTP_HEADERS_SENT"&&e.log.warn(`Reply was already sent, did you forget to "return reply" in the "${e.request.raw.url}" (${e.request.raw.method}) route?`),r}}function Xtt(e,t){let n=e.raw,r=e.request;if(e[Yo]!==null){let s=Object.keys(e[Yo]),o="";for(let a of s)typeof e[Yo][a]=="function"&&(o+=" ",o+=a);e.header("Transfer-Encoding","chunked"),e.header("Trailer",o.trim())}if(Jtt.call(t)==="[object Response]"){if(typeof t.status=="number"&&e.code(t.status),typeof t.headers=="object"&&typeof t.headers.forEach=="function")for(let[s,o]of t.headers)e.header(s,o);if(t.body!==null&&t.bodyUsed)throw new Cwn;t=t.body}let i=n.statusCode;if(t==null){i>=200&&i!==204&&i!==304&&r.method!=="HEAD"&&e[Yo]===null&&(e[jr]["content-length"]="0"),Eue(e,i),PM(t,n,e);return}if(i>=100&&i<200||i===204){e.removeHeader("content-type"),e.removeHeader("content-length"),Eue(e,i),PM(void 0,n,e),typeof t.resume=="function"&&(t.on("error",d4),t.resume());return}if(typeof t.pipe=="function"){Kwn(t,n,e);return}if(typeof t.getReader=="function"){Wwn(t,n,e);return}if(typeof t!="string"&&!Buffer.isBuffer(t))throw new Nwn(typeof t);if(e[Yo]===null){let s=e[jr]["content-length"];(!s||r.raw.method!=="HEAD"&&Number(s)!==Buffer.byteLength(t))&&(e[jr]["content-length"]=""+Buffer.byteLength(t))}Eue(e,i),n.write(t),PM(t,n,e)}function l4(e,t,n){t.code==="ERR_STREAM_PREMATURE_CLOSE"?e[Ktt]||e.info({res:n},"stream closed prematurely"):e.warn({err:t},"response terminated with an error with headers already sent")}function Wwn(e,t,n){if(e.locked)throw new Mwn;let r=!0,i=!1,s=!1,o=e.getReader();if(s4(t,function(l){r&&(l!=null&&t.headersSent&&!i&&(i=!0,l4(n.log,l,t)),o.cancel().catch(d4))}),t.headersSent)n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode");else for(let l in n[jr])t.setHeader(l,n[jr][l]);function a(l){if(l.done){r=!1,PM(null,t,n);return}if(t.destroyed){r=!1,o.cancel().catch(d4);return}if(t.write(l.value)===!1){s=!0,t.once("drain",c);return}o.read().then(a,u)}function c(){!s||!r||t.destroyed||(s=!1,o.read().then(a,u))}function u(l){r=!1,t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,l4(n.log,l,n)),t.destroy()):Hk(n,l)}o.read().then(a,u)}function Kwn(e,t,n){let r=!0,i=!1;if(Ywn(e,t,n),s4(e,{readable:!0,writable:!1},function(s){r=!1,s!=null&&(t.headersSent||n.request.raw.aborted===!0?(i||(i=!0,l4(n.log,s,n)),t.destroy()):Hk(n,s))}),s4(t,function(s){r&&(s!=null&&t.headersSent&&!i&&(i=!0,l4(n.log,s,t)),typeof e.destroy=="function"?e.destroy():typeof e.close=="function"?e.close(d4):typeof e.abort=="function"?e.abort():n.log.warn("stream payload does not end properly"))}),t.headersSent)n.log.warn("response will send, but you shouldn't use res.writeHead in stream mode");else for(let s in n[jr])t.setHeader(s,n[jr][s]);e.pipe(t)}function PM(e,t,n){if(n[Yo]===null){t.end(null,null,null);return}let r=Object.keys(n[Yo]),i={},s=0,o=!0;function a(){s===0&&(t.addTrailers(i),t.end(null,null,null))}for(let c of r){let u=function(d,f){s++,d?n.log.debug(d):i[c]=f,process.nextTick(a)};if(typeof n[Yo][c]!="function")continue;o=!1,s--;let l=n[Yo][c](n,e,u);typeof l=="object"&&typeof l.then=="function"&&l.then(d=>u(null,d),u)}o&&t.end(null,null,null)}function Ywn(e,t,n){n[Yo]!==null&&e.on("end",()=>PM(null,t,n))}function Hk(e,t,n){e[Mn].onError!==null&&!e[Awn]?(e[Aue]=!0,Ztt(e[Mn].onError,e.request,e,t,()=>qtt(e,t,n))):qtt(e,t,n)}function Zwn(e){e[NM]=_ue();let t=n=>{e[vue]=_ue(),e.raw.removeListener("finish",t),e.raw.removeListener("error",t);let r=e[Mn];e.request[Ytt]&&(clearTimeout(e.request[u4]),e.request[u4]=null,e.request[jk]&&(e.request.raw.removeListener("close",e.request[jk]),e.request[jk]=null)),r&&r.onResponse!==null?kwn(r.onResponse,e.request,e,Vtt):Vtt(n,e.request,e)};e.raw.on("finish",t),e.raw.on("error",t)}function Vtt(e,t,n){if(n.log[Ktt])return;let r=n.elapsedTime;if(e!=null){n.log.error({res:n,err:e,responseTime:r},"request errored");return}n.log.info({res:n,responseTime:r},"request completed")}function Jwn(e){let t=e.props.slice();function n(r,i,s){this.raw=r,this[a4]=!1,this[Wtt]=!1,this[Tue]=!1,this[tg]=null,this.request=i,this[jr]={},this[Yo]=null,this[NM]=void 0,this[vue]=void 0,this.log=s;let o;for(let a=0;a{"use strict";function wue(e){if(!e)throw new TypeError("argument req is required");let t=e.headers["x-forwarded-for"],n=e.socket.remoteAddress;if(!t||typeof t!="string")return[n];if(t.indexOf(",")===-1){let r=t.trim();return r.length?[n,r]:[n]}else return Qwn(t,n)}function Qwn(e,t){let n=[t],r=e.length,i=r,s,o;for(o=r-1;o>=0;--o)s=e[o],s===" "?i===r&&(i=r=o):s===","?(i!==r&&n.push(e.slice(i,r)),i=r=o):i=o;return i!==r&&n.push(e.substring(i,r)),n}h4.exports=wue;h4.exports.default=wue;h4.exports.forwarded=wue});var tnt=w((ent,m4)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},r=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,g=-1,y=(p.match(a.zoneIndex)||[])[0],b,S;for(y&&(y=y.substring(1),p=p.replace(/%.+$/,""));(g=p.indexOf(":",g+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(S=h-m,b=":";S--;)b+="0:";return p=p.replace("::",b),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=(function(){let E=p.split(":"),_=[];for(let T=0;T0;){if(b=m-g,b<0&&(b=0),p[y]>>b!==h[y]>>b)return!1;g-=m,y+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(r.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function d(p,h){for(;p.length=0;y-=1)if(b=this.octets[y],b in g){if(S=g[b],m&&S!==0)return null;S!==8&&(m=!0),h+=S}else return null;return 32-h},p.prototype.range=function(){return f.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return f.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p})(),f.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],b=0;for(;b<4;)y.push(parseInt(m[b],10)|parseInt(g[b],10)^255),b++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},f.IPv4.isIPv4=function(p){return this.parser(p)!==null},f.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},f.IPv4.isValidCIDR=function(p){try{return this.parseCIDR(p),!0}catch{return!1}},f.IPv4.isValidFourPartDecimal=function(p){return!!(f.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},f.IPv4.isValidCIDRFourPartDecimal=function(p){let h=p.match(/^(.+)\/(\d+)$/);return!f.IPv4.isValidCIDR(p)||!h?!1:f.IPv4.isValidFourPartDecimal(h[1])},f.IPv4.networkAddressFromCIDR=function(p){let h,m,g,y,b;try{for(h=this.parseCIDR(p),g=h[0].toByteArray(),b=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],m=0;m<4;)y.push(parseInt(g[m],10)&parseInt(b[m],10)),m++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},f.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},f.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let g=[this.parse(h[1]),m];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},f.IPv4.parser=function(p){let h,m,g;if(h=p.match(n.fourOctet))return(function(){let y=h.slice(1,6),b=[];for(let S=0;S4294967295||g<0)throw new Error("ipaddr: address outside defined range");return(function(){let y=[],b;for(b=0;b<=24;b+=8)y.push(g>>b&255);return y})().reverse()}else return(h=p.match(n.twoOctet))?(function(){let y=h.slice(1,4),b=[];if(g=l(y[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return b.push(l(y[0])),b.push(g>>16&255),b.push(g>>8&255),b.push(g&255),b})():(h=p.match(n.threeOctet))?(function(){let y=h.slice(1,5),b=[];if(g=l(y[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return b.push(l(y[0])),b.push(l(y[1])),b.push(g>>8&255),b.push(g&255),b})():null},f.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,g=Math.floor(p/8);for(;m=0;S-=1)if(y=this.parts[S],y in g){if(b=g[y],m&&b!==0)return null;b!==16&&(m=!0),h+=b}else return null;return 128-h},p.prototype.range=function(){return f.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],g=this.parts;for(let y=0;y>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=(function(){let g=[];for(let y=0;y>8,m&255,g>>8,g&255])},p.prototype.toNormalizedString=function(){let h=(function(){let g=[];for(let y=0;yy&&(g=b.index,y=b[0].length);return y<0?m:`${m.substring(0,g)}::${m.substring(g+y)}`},p.prototype.toString=function(){return this.toRFC5952String()},p})(),f.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],b=0;for(;b<16;)y.push(parseInt(m[b],10)|parseInt(g[b],10)^255),b++;return new this(y)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},f.IPv6.isIPv6=function(p){return this.parser(p)!==null},f.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},f.IPv6.isValidCIDR=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{return this.parseCIDR(p),!0}catch{return!1}},f.IPv6.networkAddressFromCIDR=function(p){let h,m,g,y,b;try{for(h=this.parseCIDR(p),g=h[0].toByteArray(),b=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],m=0;m<16;)y.push(parseInt(g[m],10)&parseInt(b[m],10)),m++;return new this(y)}catch(S){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${S})`)}},f.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},f.IPv6.parseCIDR=function(p){let h,m,g;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return g=[this.parse(m[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},f.IPv6.parser=function(p){let h,m,g,y,b,S;if(g=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(a.native.test(p))return c(p,8);if((g=p.match(a.transitional))&&(S=g[6]||"",h=g[1],g[1].endsWith("::")||(h=h.slice(0,-1)),h=c(h+S,6),h.parts)){for(b=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],m=0;m128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,g=Math.floor(p/8);for(;m{"use strict";qk.exports=kue;qk.exports.default=kue;qk.exports.proxyaddr=kue;qk.exports.all=int;qk.exports.compile=snt;var $wn=$tt(),rnt=tnt(),ekn=/^\d+$/u,g4=rnt.isValid,y4=rnt.parse,nnt={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function int(e,t){let n=$wn(e);if(!t)return n;typeof t!="function"&&(t=snt(t));for(let r=0;ri)throw new TypeError("invalid range on address: "+e);return[r,s]}function ikn(e){let t=y4(e);return t.kind()==="ipv4"?t.prefixLengthFromSubnetMask():null}function kue(e,t){if(!e)throw new TypeError("req argument is required");if(!t)throw new TypeError("trust argument is required");let n=int(e,t);return n[n.length-1]}function skn(){return!1}function okn(e){return function(n){if(!g4(n))return!1;let r=y4(n),i,s=r.kind();for(let o=0;o{"use strict";var S4=ont(),{kHasBeenDecorated:ckn,kSchemaBody:ukn,kSchemaHeaders:lkn,kSchemaParams:dkn,kSchemaQuerystring:ant,kSchemaController:Iue,kOptions:fkn,kRequestCacheValidateFns:QS,kRouteContext:ac,kRequestOriginalUrl:xue,kRequestSignal:cnt,kOnAbort:pkn}=$s(),{FST_ERR_REQ_INVALID_VALIDATION_INVOCATION:hkn,FST_ERR_DEC_UNDECLARED:mkn}=Ko(),unt=OM(),lnt={body:ukn,headers:lkn,params:dkn,querystring:ant,query:ant};function Oue(e,t,n,r,i,s){this.id=e,this[ac]=s,this.params=t,this.raw=n,this.query=r,this.log=i,this.body=void 0}Oue.props=[];function gkn(e){if(typeof e=="function")return e;if(e===!0)return function(){return!0};if(typeof e=="number")return function(t,n){return nn.trim());return S4.compile(t)}return S4.compile(e)}function ykn(e,t){return t?Skn(e,t):pnt(e)}function pnt(e){let t=e.props.slice();function n(r,i,s,o,a,c){this.id=r,this[ac]=c,this.params=i,this.raw=s,this.query=o,this.log=a,this.body=void 0;let u;for(let l=0;l{e.signal.aborted||e.abort()};return this.raw.on("close",t),this[pkn]=t,e.signal}},ip:{get(){if(this.socket)return this.socket.remoteAddress}},host:{get(){return this.raw.headers.host??this.raw.headers[":authority"]??""}},hostname:{get(){return this.host[0]==="["?this.host.slice(0,this.host.indexOf("]")+1):this.host.split(":",1)[0]}},port:{get(){let e=/(?:\d+)$/,t=this.headers.host??this.headers[":authority"]??"",n=e.exec(t);return n===null||n[1]===void 0?null:parseInt(n.groups.port.slice(1),10)}},protocol:{get(){if(this.socket)return this.socket.encrypted?"https":"http"}},headers:{get(){return this.additionalHeaders?Object.assign({},this.raw.headers,this.additionalHeaders):this.raw.headers},set(e){this.additionalHeaders=e}},getValidationFunction:{value:function(e){if(typeof e=="string"){let t=lnt[e];return this[ac][t]}else if(typeof e=="object")return this[ac][QS]?.get(e)}},compileValidationSchema:{value:function(e,t=null){let{method:n,url:r}=this;if(this[ac][QS]?.has(e))return this[ac][QS].get(e);let s=(this[ac].validatorCompiler||this.server[Iue].validatorCompiler||this.server[Iue].setupValidator(this.server[fkn])||this.server[Iue].validatorCompiler)({schema:e,method:n,url:r,httpPart:t});return this[ac][QS]==null&&(this[ac][QS]=new WeakMap),this[ac][QS].set(e,s),s}},validateInput:{value:function(e,t,n){n=typeof t=="string"?t:n;let r=n!=null&&typeof n=="string"&&lnt[n],i;if(r&&(i=this[ac][r]),i==null&&(t==null||typeof t!="object"||Array.isArray(t)))throw new hkn(n);return i==null&&(this[ac][QS]?.has(t)?i=this[ac][QS].get(t):i=this.compileValidationSchema(t,n)),i(e)}},getDecorator:{value:function(e){fnt(this,e);let t=this[e];return typeof t=="function"?t.bind(this):t}},setDecorator:{value:function(e,t){fnt(this,e),this[e]=t}}});Pue.exports=Oue;Pue.exports.buildRequest=ykn});var E4=w((e3r,hnt)=>{"use strict";var{kFourOhFourContext:bkn,kReplySerializerDefault:Ekn,kSchemaErrorFormatter:_kn,kErrorHandler:Tkn,kChildLoggerFactory:vkn,kOptions:Rkn,kReply:Akn,kRequest:wkn,kBodyLimit:kkn,kLogLevel:Ikn,kContentTypeParser:xkn,kRouteByFastify:Okn,kRequestCacheValidateFns:Pkn,kReplyCacheSerializeFns:Nkn,kHandlerTimeout:Ckn}=$s();function Mkn({schema:e,handler:t,config:n,requestIdLogLabel:r,childLoggerFactory:i,errorHandler:s,bodyLimit:o,logLevel:a,logSerializers:c,attachValidation:u,validatorCompiler:l,serializerCompiler:d,replySerializer:f,schemaErrorFormatter:p,exposeHeadRoute:h,prefixTrailingSlash:m,server:g,isFastify:y,handlerTimeout:b}){this.schema=e,this.handler=t,this.Reply=g[Akn],this.Request=g[wkn],this.contentTypeParser=g[xkn],this.onRequest=null,this.onSend=null,this.onError=null,this.onTimeout=null,this.preHandler=null,this.onResponse=null,this.preSerialization=null,this.onRequestAbort=null,this.config=n,this.errorHandler=s||g[Tkn],this.requestIdLogLabel=r||g[Rkn].requestIdLogLabel,this.childLoggerFactory=i||g[vkn],this._middie=null,this._parserOptions={limit:o||g[kkn]},this.exposeHeadRoute=h,this.prefixTrailingSlash=m,this.logLevel=a||g[Ikn],this.logSerializers=c,this[bkn]=null,this.attachValidation=u,this[Ekn]=f,this.schemaErrorFormatter=p||g[_kn]||Dkn,this[Okn]=y,this[Pkn]=null,this[Nkn]=null,this.validatorCompiler=l||null,this.serializerCompiler=d||null,this.handlerTimeout=b||g[Ckn]||0,this.server=g}function Dkn(e,t){let n="";for(let i=0;i!==e.length;++i){let s=e[i];n+=t+(s.instancePath||"")+" "+s.message+", "}return new Error(n.slice(0,-2))}hnt.exports=Mkn});var Cue=w((t3r,Bk)=>{"use strict";var Lkn=typeof Buffer<"u",mnt=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,gnt=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function ynt(e,t,n){n==null&&t!==null&&typeof t=="object"&&(n=t,t=void 0),Lkn&&Buffer.isBuffer(e)&&(e=e.toString()),e&&e.charCodeAt(0)===65279&&(e=e.slice(1));let r=JSON.parse(e,t);if(r===null||typeof r!="object")return r;let i=n&&n.protoAction||"error",s=n&&n.constructorAction||"error";if(i==="ignore"&&s==="ignore")return r;if(i!=="ignore"&&s!=="ignore"){if(mnt.test(e)===!1&&gnt.test(e)===!1)return r}else if(i!=="ignore"&&s==="ignore"){if(mnt.test(e)===!1)return r}else if(gnt.test(e)===!1)return r;return Snt(r,{protoAction:i,constructorAction:s,safe:n&&n.safe})}function Snt(e,{protoAction:t="error",constructorAction:n="error",safe:r}={}){let i=[e];for(;i.length;){let s=i;i=[];for(let o of s){if(t!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"__proto__")){if(r===!0)return null;if(t==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.__proto__}if(n!=="ignore"&&Object.prototype.hasOwnProperty.call(o,"constructor")&&o.constructor!==null&&typeof o.constructor=="object"&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype")){if(r===!0)return null;if(n==="error")throw new SyntaxError("Object contains forbidden prototype property");delete o.constructor}for(let a in o){let c=o[a];c&&typeof c=="object"&&i.push(c)}}}return e}function Nue(e,t,n){let{stackTraceLimit:r}=Error;Error.stackTraceLimit=0;try{return ynt(e,t,n)}finally{Error.stackTraceLimit=r}}function Ukn(e,t){let{stackTraceLimit:n}=Error;Error.stackTraceLimit=0;try{return ynt(e,t,{safe:!0})}catch{return}finally{Error.stackTraceLimit=n}}Bk.exports=Nue;Bk.exports.default=Nue;Bk.exports.parse=Nue;Bk.exports.safeParse=Ukn;Bk.exports.scan=Snt});var Fue=w((n3r,DM)=>{"use strict";var{AsyncResource:Fkn}=K("node:async_hooks"),{FifoMap:_nt}=OV(),{parse:jkn}=Cue(),MM=dce(),{kDefaultJsonParse:CM,kContentTypeParser:zk,kBodyLimit:Hkn,kRequestPayloadStream:Tnt,kState:Due,kTestInternals:qkn,kReplyIsError:bnt,kRouteContext:Bkn}=$s(),{FST_ERR_CTP_INVALID_TYPE:_4,FST_ERR_CTP_EMPTY_TYPE:zkn,FST_ERR_CTP_ALREADY_PRESENT:Gkn,FST_ERR_CTP_INVALID_HANDLER:Vkn,FST_ERR_CTP_INVALID_PARSE_TYPE:Wkn,FST_ERR_CTP_BODY_TOO_LARGE:Ent,FST_ERR_CTP_INVALID_MEDIA_TYPE:Kkn,FST_ERR_CTP_INVALID_CONTENT_LENGTH:Ykn,FST_ERR_CTP_EMPTY_JSON_BODY:Zkn,FST_ERR_CTP_INSTANCE_ALREADY_STARTED:Lue,FST_ERR_CTP_INVALID_JSON_BODY:Jkn}=Ko(),{FSTSEC001:Xkn}=Pk();function ng(e,t,n){this[CM]=Rnt(t,n),this.customParsers=new Map,this.customParsers.set("application/json",new Mue(!0,!1,e,this[CM])),this.customParsers.set("text/plain",new Mue(!0,!1,e,Uue)),this.parserList=["application/json","text/plain"],this.parserRegExpList=[],this.cache=new _nt(100)}ng.prototype.add=function(e,t,n){let r=typeof e=="string";if(r){if(e=e.trim().toLowerCase(),e.length===0)throw new zkn}else if(!(e instanceof RegExp))throw new _4;if(typeof n!="function")throw new Vkn;if(this.existingParser(e))throw new Gkn(e);if(t.parseAs!==void 0&&t.parseAs!=="string"&&t.parseAs!=="buffer")throw new Wkn(t.parseAs);let i=new Mue(t.parseAs==="string",t.parseAs==="buffer",t.bodyLimit,n);if(e==="*")this.customParsers.set("",i);else if(r){let s=new MM(e);if(s.isValid===!1)throw new _4;let o=s.toString();this.parserList.unshift(o),this.customParsers.set(o,i)}else rIn(e),this.parserRegExpList.unshift(e),this.customParsers.set(e.toString(),i)};ng.prototype.hasParser=function(e){if(typeof e=="string")e=new MM(e).toString();else{if(!(e instanceof RegExp))throw new _4;e=e.toString()}return this.customParsers.has(e)};ng.prototype.existingParser=function(e){if(typeof e=="string"){let t=new MM(e).toString();if(e==="application/json"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==this[CM];if(e==="text/plain"&&this.customParsers.has(e))return this.customParsers.get(t).fn!==Uue}return this.hasParser(e)};ng.prototype.getParser=function(e){typeof e=="string"&&(e=new MM(e));let t=e.toString(),n=this.cache.get(t);if(n!==void 0)return n;if(n=this.customParsers.get(t),n!==void 0)return this.cache.set(t,n),n;if(n=this.customParsers.get(e.mediaType),n!==void 0)return n;for(let r=0;r!==this.parserRegExpList.length;++r){let i=this.parserRegExpList[r];if(i.test(t))return n=this.customParsers.get(i.toString()),this.cache.set(t,n),n}return this.customParsers.get("")};ng.prototype.removeAll=function(){this.customParsers=new Map,this.parserRegExpList=[],this.parserList=[],this.cache=new _nt(100)};ng.prototype.remove=function(e){let t;if(typeof e=="string")e=new MM(e).toString(),t=this.parserList;else{if(!(e instanceof RegExp))throw new _4;e=e.toString(),t=this.parserRegExpList}let n=this.customParsers.delete(e),r=t.findIndex(i=>i.toString()===e);return r>-1&&t.splice(r,1),n||r>-1};ng.prototype.run=function(e,t,n,r){let i=this.getParser(e);if(i===void 0){if(n.is404===!0){t(n,r);return}r[bnt]=!0,r.send(new Kkn);return}let s=new Fkn("content-type-parser:run",n),o=s.bind(c);if(i.asString===!0||i.asBuffer===!0){vnt(n,r,r[Bkn]._parserOptions,i,o);return}let a=i.fn(n,n[Tnt],o);a&&typeof a.then=="function"&&a.then(u=>{o(null,u)},o);function c(u,l){if(s.emitDestroy(),u!=null){r.header("connection","close"),r[bnt]=!0,r.send(u);return}n.body=l,t(n,r)}};function vnt(e,t,n,r,i){let s=r.asString===!0,o=n.limit===null?r.bodyLimit:n.limit,a=Number(e.headers["content-length"]);if(a>o){i(new Ent,void 0);return}let c=0,u=s?"":[],l=e[Tnt]||e.raw;s&&l.setEncoding("utf8"),l.on("data",d),l.on("end",f),l.on("error",f),l.resume();function d(p){c+=s?Buffer.byteLength(p):p.length;let{receivedEncodedLength:h=0}=l;if(c>o||h>o){l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),i(new Ent,void 0);return}s?u+=p:u.push(p)}function f(p){if(l.removeListener("data",d),l.removeListener("end",f),l.removeListener("error",f),p!=null){typeof p.statusCode=="number"&&p.statusCode>=400||(p.statusCode=400),i(p,void 0);return}if(!Number.isNaN(a)&&(l.receivedEncodedLength||c)!==a){i(new Ykn,void 0);return}s||(u=Buffer.concat(u));let h=r.fn(e,u,i);h&&typeof h.then=="function"&&h.then(m=>{i(null,m)},i)}}function Rnt(e,t){let n={protoAction:e,constructorAction:t};return r;function r(i,s,o){if(s.length===0){o(new Zkn,void 0);return}try{o(null,jkn(s,n))}catch{o(new Jkn,void 0)}}}function Uue(e,t,n){n(null,t)}function Mue(e,t,n,r){this.asString=e,this.asBuffer=t,this.bodyLimit=n,this.fn=r}function Qkn(e){let t=new ng;return t[CM]=e[CM],t.customParsers=new Map(e.customParsers.entries()),t.parserList=e.parserList.slice(),t.parserRegExpList=e.parserRegExpList.slice(),t}function $kn(e,t,n){if(this[Due].started)throw new Lue("addContentTypeParser");return typeof t=="function"&&(n=t,t={}),t||(t={}),t.bodyLimit||(t.bodyLimit=this[Hkn]),Array.isArray(e)?e.forEach(r=>this[zk].add(r,t,n)):this[zk].add(e,t,n),this}function eIn(e){return this[zk].hasParser(e)}function tIn(e){if(this[Due].started)throw new Lue("removeContentTypeParser");if(Array.isArray(e))for(let t of e)this[zk].remove(t);else this[zk].remove(e)}function nIn(){if(this[Due].started)throw new Lue("removeAllContentTypeParsers");this[zk].removeAll()}function rIn(e){e.source[0]!=="^"&&e.source.includes(";?")===!1&&Xkn(e.source)}DM.exports=ng;DM.exports.helpers={buildContentTypeParser:Qkn,addContentTypeParser:$kn,hasContentTypeParser:eIn,removeContentTypeParser:tIn,removeAllContentTypeParsers:nIn};DM.exports.defaultParsers={getDefaultJsonParser:Rnt,defaultTextParser:Uue};DM.exports[qkn]={rawBody:vnt}});var rg=w(LM=>{"use strict";Object.defineProperty(LM,"__esModule",{value:!0});LM.checkMetadata=void 0;var iIn=pn(),sIn={keyword:"metadata",schemaType:"object",code(e){Ant(e);let{gen:t,schema:n,it:r}=e;if((0,iIn.alwaysValidSchema)(r,n))return;let i=t.name("valid");e.subschema({keyword:"metadata",jtdMetadata:!0},i),e.ok(i)}};function Ant({it:e,keyword:t},n){if(e.jtdMetadata!==n)throw new Error(`JTD: "${t}" cannot be used in this schema location`)}LM.checkMetadata=Ant;LM.default=sIn});var T4=w(FM=>{"use strict";Object.defineProperty(FM,"__esModule",{value:!0});FM.hasRef=void 0;var wnt=H_(),UM=Ot(),oIn=Ym(),knt=Sd(),Int=Gse(),aIn=rg(),cIn={keyword:"ref",schemaType:"string",code(e){(0,aIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i,it:s}=e,{schemaEnv:{root:o}}=s,a=t.name("valid");i.nullable?(t.var(a,(0,UM._)`${n} === null`),t.if((0,UM.not)(a),c)):(t.var(a,!1),c()),e.ok(a);function c(){var d;let f=(d=o.schema.definitions)===null||d===void 0?void 0:d[r];if(!f)throw new oIn.default(s.opts.uriResolver,"",r,`No definition ${r}`);jue(f)||!s.opts.inlineRefs?u(f):l(f)}function u(d){let f=wnt.compileSchema.call(s.self,new wnt.SchemaEnv({schema:d,root:o,schemaPath:`/definitions/${r}`})),p=(0,Int.getValidate)(e,f),h=t.const("_errs",knt.default.errors);(0,Int.callRef)(e,p,f,f.$async),t.assign(a,(0,UM._)`${h} === ${knt.default.errors}`)}function l(d){let f=t.scopeValue("schema",s.opts.code.source===!0?{ref:d,code:(0,UM.stringify)(d)}:{ref:d});e.subschema({schema:d,dataTypes:[],schemaPath:UM.nil,topSchemaRef:f,errSchemaPath:`/definitions/${r}`},a)}}};function jue(e){for(let t in e){let n;if(t==="ref"||typeof(n=e[t])=="object"&&jue(n))return!0}return!1}FM.hasRef=jue;FM.default=cIn});var que=w(Hue=>{"use strict";Object.defineProperty(Hue,"__esModule",{value:!0});var uIn=/t|\s/i,lIn=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,dIn=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:z|([+-]\d\d)(?::?(\d\d))?)$/i,fIn=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Ont(e,t){let n=e.split(uIn);return n.length===2&&xnt(n[0])&&pIn(n[1])||t&&n.length===1&&xnt(n[0])}Hue.default=Ont;function xnt(e){let t=lIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&(i<=fIn[r]||r===2&&i===29&&(n%100===0?n%400===0:n%4===0))}function pIn(e){let t=dIn.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3],s=+(t[4]||0),o=+(t[5]||0);return n<=23&&r<=59&&i<=59||n-s===23&&r-o===59&&i===60}Ont.code='require("ajv/dist/runtime/timestamp").default'});var Gk=w($S=>{"use strict";Object.defineProperty($S,"__esModule",{value:!0});$S.typeErrorParams=$S.typeErrorMessage=$S.typeError=void 0;var hIn=Ot();function mIn(e){return{message:t=>Pnt(t,e),params:t=>Nnt(t,e)}}$S.typeError=mIn;function Pnt({parentSchema:e},t){return e?.nullable?`must be ${t} or null`:`must be ${t}`}$S.typeErrorMessage=Pnt;function Nnt({parentSchema:e},t){return(0,hIn._)`{type: ${t}, nullable: ${!!e?.nullable}}`}$S.typeErrorParams=Nnt});var Bue=w(Vk=>{"use strict";Object.defineProperty(Vk,"__esModule",{value:!0});Vk.intRange=void 0;var El=Ot(),gIn=que(),yIn=pn(),SIn=rg(),Cnt=Gk();Vk.intRange={int8:[-128,127,3],uint8:[0,255,3],int16:[-32768,32767,5],uint16:[0,65535,5],int32:[-2147483648,2147483647,10],uint32:[0,4294967295,10]};var bIn={message:e=>(0,Cnt.typeErrorMessage)(e,e.schema),params:e=>(0,Cnt.typeErrorParams)(e,e.schema)};function EIn(e){let{gen:t,data:n,it:r}=e,{timestamp:i,allowDate:s}=r.opts;if(i==="date")return(0,El._)`${n} instanceof Date `;let o=(0,yIn.useFunc)(t,gIn.default),a=s?(0,El._)`, true`:El.nil,c=(0,El._)`typeof ${n} == "string" && ${o}(${n}${a})`;return i==="string"?c:(0,El.or)((0,El._)`${n} instanceof Date`,c)}var _In={keyword:"type",schemaType:"string",error:bIn,code(e){(0,SIn.checkMetadata)(e);let{data:t,schema:n,parentSchema:r,it:i}=e,s;switch(n){case"boolean":case"string":s=(0,El._)`typeof ${t} == ${n}`;break;case"timestamp":{s=EIn(e);break}case"float32":case"float64":s=(0,El._)`typeof ${t} == "number"`;break;default:{let o=n;if(s=(0,El._)`typeof ${t} == "number" && isFinite(${t}) && !(${t} % 1)`,!i.opts.int32range&&(o==="int32"||o==="uint32"))o==="uint32"&&(s=(0,El._)`${s} && ${t} >= 0`);else{let[a,c]=Vk.intRange[o];s=(0,El._)`${s} && ${t} >= ${a} && ${t} <= ${c}`}}}e.pass(r.nullable?(0,El.or)((0,El._)`${t} === null`,s):s)}};Vk.default=_In});var Kk=w(Wk=>{"use strict";Object.defineProperty(Wk,"__esModule",{value:!0});Wk.checkNullableObject=Wk.checkNullable=void 0;var v4=Ot();function Mnt({gen:e,data:t,parentSchema:n},r=v4.nil){let i=e.name("valid");return n.nullable?(e.let(i,(0,v4._)`${t} === null`),r=(0,v4.not)(i)):e.let(i,!1),[i,r]}Wk.checkNullable=Mnt;function TIn(e,t){let[n,r]=Mnt(e,t);return[n,(0,v4._)`${r} && typeof ${e.data} == "object" && !Array.isArray(${e.data})`]}Wk.checkNullableObject=TIn});var Dnt=w(zue=>{"use strict";Object.defineProperty(zue,"__esModule",{value:!0});var eb=Ot(),vIn=rg(),RIn=Kk(),AIn={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,eb._)`{allowedValues: ${e}}`},wIn={keyword:"enum",schemaType:"array",error:AIn,code(e){(0,vIn.checkMetadata)(e);let{gen:t,data:n,schema:r,schemaValue:i,parentSchema:s,it:o}=e;if(r.length===0)throw new Error("enum must have non-empty array");if(r.length!==new Set(r).size)throw new Error("enum items must be unique");let a,c=(0,eb._)`typeof ${n} == "string"`;if(r.length>=o.opts.loopEnum){let l;[a,l]=(0,RIn.checkNullable)(e,c),t.if(l,u)}else{if(!Array.isArray(r))throw new Error("ajv implementation error");a=(0,eb.and)(c,(0,eb.or)(...r.map(l=>(0,eb._)`${n} === ${l}`))),s.nullable&&(a=(0,eb.or)((0,eb._)`${n} === null`,a))}e.pass(a);function u(){t.forOf("v",i,l=>t.if((0,eb._)`${a} = ${n} === ${l}`,()=>t.break()))}}};zue.default=wIn});var Unt=w(Gue=>{"use strict";Object.defineProperty(Gue,"__esModule",{value:!0});var kIn=pn(),IIn=Sa(),Lnt=Ot(),xIn=rg(),OIn=Kk(),PIn=Gk(),NIn={keyword:"elements",schemaType:"object",error:(0,PIn.typeError)("array"),code(e){(0,xIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e;if((0,kIn.alwaysValidSchema)(i,r))return;let[s]=(0,OIn.checkNullable)(e);t.if((0,Lnt.not)(s),()=>t.if((0,Lnt._)`Array.isArray(${n})`,()=>t.assign(s,(0,IIn.validateArray)(e)),()=>e.error())),e.ok(s)}};Gue.default=NIn});var Wue=w(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.validateProperties=tb.error=void 0;var Vue=Sa(),Fnt=pn(),ig=Ot(),CIn=rg(),MIn=Kk(),jnt=Gk(),Yk;(function(e){e.Additional="additional",e.Missing="missing"})(Yk||(Yk={}));tb.error={message:e=>{let{params:t}=e;return t.propError?t.propError===Yk.Additional?"must NOT have additional properties":`must have property '${t.missingProperty}'`:(0,jnt.typeErrorMessage)(e,"object")},params:e=>{let{params:t}=e;return t.propError?t.propError===Yk.Additional?(0,ig._)`{error: ${t.propError}, additionalProperty: ${t.additionalProperty}}`:(0,ig._)`{error: ${t.propError}, missingProperty: ${t.missingProperty}}`:(0,jnt.typeErrorParams)(e,"object")}};var DIn={keyword:"properties",schemaType:"object",error:tb.error,code:Hnt};function Hnt(e){(0,CIn.checkMetadata)(e);let{gen:t,data:n,parentSchema:r,it:i}=e,{additionalProperties:s,nullable:o}=r;if(i.jtdDiscriminator&&o)throw new Error("JTD: nullable inside discriminator mapping");if(p())throw new Error("JTD: properties and optionalProperties have common members");let[a,c]=h("properties"),[u,l]=h("optionalProperties");if(c.length===0&&l.length===0&&s)return;let[d,f]=i.jtdDiscriminator===void 0?(0,MIn.checkNullableObject)(e,n):[t.let("valid",!1),!0];t.if(f,()=>t.assign(d,!0).block(()=>{m(c,"properties",!0),m(l,"optionalProperties"),s||y()})),e.pass(d);function p(){let S=r.properties,E=r.optionalProperties;if(!(S&&E))return!1;for(let _ in S)if(Object.prototype.hasOwnProperty.call(E,_))return!0;return!1}function h(S){let E=r[S],_=E?(0,Vue.allSchemaProperties)(E):[];if(i.jtdDiscriminator&&_.some(R=>R===i.jtdDiscriminator))throw new Error(`JTD: discriminator tag used in ${S}`);let T=_.filter(R=>!(0,Fnt.alwaysValidSchema)(i,E[R]));return[_,T]}function m(S,E,_){let T=t.var("valid");for(let A of S)t.if((0,Vue.propertyInData)(t,n,A,i.opts.ownProperties),()=>g(A,E,T),()=>R(A)),e.ok(T);function R(A){_?(t.assign(T,!1),e.error(!1,{propError:Yk.Missing,missingProperty:A},{schemaPath:A})):t.assign(T,!0)}}function g(S,E,_){e.subschema({keyword:E,schemaProp:S,dataProp:S},_)}function y(){t.forIn("key",n,S=>{let E=b(S,a,"properties",i.jtdDiscriminator),_=b(S,u,"optionalProperties"),T=E===!0?_:_===!0?E:(0,ig.and)(E,_);t.if(T,()=>{i.opts.removeAdditional?t.code((0,ig._)`delete ${n}[${S}]`):(e.error(!1,{propError:Yk.Additional,additionalProperty:S},{instancePath:S,parentSchema:!0}),i.opts.allErrors||t.break())})})}function b(S,E,_,T){let R;if(E.length>8){let A=(0,Fnt.schemaRefOrVal)(i,r[_],_);R=(0,ig.not)((0,Vue.isOwnProperty)(t,A,S)),T!==void 0&&(R=(0,ig.and)(R,(0,ig._)`${S} !== ${T}`))}else if(E.length||T!==void 0){let A=T===void 0?E:[T].concat(E);R=(0,ig.and)(...A.map(x=>(0,ig._)`${S} !== ${x}`))}else R=!0;return R}}tb.validateProperties=Hnt;tb.default=DIn});var Bnt=w(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});var qnt=Wue(),LIn={keyword:"optionalProperties",schemaType:"object",error:qnt.error,code(e){e.parentSchema.properties||(0,qnt.validateProperties)(e)}};Kue.default=LIn});var Gnt=w(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});var fT=Ot(),UIn=rg(),FIn=Kk(),znt=Gk(),R4=Ooe(),jIn={message:e=>{let{schema:t,params:n}=e;return n.discrError?n.discrError===R4.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in mapping`:(0,znt.typeErrorMessage)(e,"object")},params:e=>{let{schema:t,params:n}=e;return n.discrError?(0,fT._)`{error: ${n.discrError}, tag: ${t}, tagValue: ${n.tag}}`:(0,znt.typeErrorParams)(e,"object")}},HIn={keyword:"discriminator",schemaType:"string",implements:["mapping"],error:jIn,code(e){(0,UIn.checkMetadata)(e);let{gen:t,data:n,schema:r,parentSchema:i}=e,[s,o]=(0,FIn.checkNullableObject)(e,n);t.if(o),a(),t.elseIf((0,fT.not)(s)),e.error(),t.endIf(),e.ok(s);function a(){let l=t.const("tag",(0,fT._)`${n}${(0,fT.getProperty)(r)}`);t.if((0,fT._)`${l} === undefined`),e.error(!1,{discrError:R4.DiscrError.Tag,tag:l}),t.elseIf((0,fT._)`typeof ${l} == "string"`),c(l),t.else(),e.error(!1,{discrError:R4.DiscrError.Tag,tag:l},{instancePath:r}),t.endIf()}function c(l){t.if(!1);for(let d in i.mapping)t.elseIf((0,fT._)`${l} === ${d}`),t.assign(s,u(d));t.else(),e.error(!1,{discrError:R4.DiscrError.Mapping,tag:l},{instancePath:r,schemaPath:"mapping",parentSchema:!0}),t.endIf()}function u(l){let d=t.name("valid");return e.subschema({keyword:"mapping",schemaProp:l,jtdDiscriminator:r},d),d}}};Yue.default=HIn});var Wnt=w(Zue=>{"use strict";Object.defineProperty(Zue,"__esModule",{value:!0});var Vnt=pn(),A4=Ot(),qIn=rg(),BIn=Kk(),zIn=Gk(),GIn={keyword:"values",schemaType:"object",error:(0,zIn.typeError)("object"),code(e){(0,qIn.checkMetadata)(e);let{gen:t,data:n,schema:r,it:i}=e,[s,o]=(0,BIn.checkNullableObject)(e,n);(0,Vnt.alwaysValidSchema)(i,r)?t.if((0,A4.not)((0,A4.or)(o,s)),()=>e.error()):(t.if(o),t.assign(s,a()),t.elseIf((0,A4.not)(s)),e.error(),t.endIf()),e.ok(s);function a(){let c=t.name("valid");if(i.allErrors){let l=t.let("valid",!0);return u(()=>t.assign(l,!1)),l}return t.var(c,!0),u(()=>t.break()),c;function u(l){t.forIn("key",n,d=>{e.subschema({keyword:"values",dataProp:d,dataPropType:Vnt.Type.Str},c),t.if((0,A4.not)(c),l)})}}}};Zue.default=GIn});var Knt=w(Jue=>{"use strict";Object.defineProperty(Jue,"__esModule",{value:!0});var VIn=Sa(),WIn={keyword:"union",schemaType:"array",trackErrors:!0,code:VIn.validateUnion,error:{message:"must match a schema in union"}};Jue.default=WIn});var Ynt=w(Xue=>{"use strict";Object.defineProperty(Xue,"__esModule",{value:!0});var KIn=T4(),YIn=Bue(),ZIn=Dnt(),JIn=Unt(),XIn=Wue(),QIn=Bnt(),$In=Gnt(),e0n=Wnt(),t0n=Knt(),n0n=rg(),r0n=["definitions",KIn.default,YIn.default,ZIn.default,JIn.default,XIn.default,QIn.default,$In.default,e0n.default,t0n.default,n0n.default,{keyword:"additionalProperties",schemaType:"boolean"},{keyword:"nullable",schemaType:"boolean"}];Xue.default=r0n});var Qnt=w(Que=>{"use strict";Object.defineProperty(Que,"__esModule",{value:!0});var sg=e=>{let t={nullable:{type:"boolean"},metadata:{optionalProperties:{union:{elements:{ref:"schema"}}},additionalProperties:!0}};return e&&(t.definitions={values:{ref:"schema"}}),t},i0n=e=>({optionalProperties:sg(e)}),s0n=e=>({properties:{ref:{type:"string"}},optionalProperties:sg(e)}),o0n=e=>({properties:{type:{enum:["boolean","timestamp","string","float32","float64","int8","uint8","int16","uint16","int32","uint32"]}},optionalProperties:sg(e)}),a0n=e=>({properties:{enum:{elements:{type:"string"}}},optionalProperties:sg(e)}),c0n=e=>({properties:{elements:{ref:"schema"}},optionalProperties:sg(e)}),Jnt=e=>({properties:{properties:{values:{ref:"schema"}}},optionalProperties:{optionalProperties:{values:{ref:"schema"}},additionalProperties:{type:"boolean"},...sg(e)}}),Xnt=e=>({properties:{optionalProperties:{values:{ref:"schema"}}},optionalProperties:{additionalProperties:{type:"boolean"},...sg(e)}}),u0n=e=>({properties:{discriminator:{type:"string"},mapping:{values:{metadata:{union:[Jnt(!1),Xnt(!1)]}}}},optionalProperties:sg(e)}),l0n=e=>({properties:{values:{ref:"schema"}},optionalProperties:sg(e)}),Znt=e=>({metadata:{union:[i0n,s0n,o0n,a0n,c0n,Jnt,Xnt,u0n,l0n].map(t=>t(e))}}),d0n={definitions:{schema:Znt(!1)},...Znt(!0)};Que.default=d0n});var $ue=w(w4=>{"use strict";Object.defineProperty(w4,"__esModule",{value:!0});w4.jtdForms=void 0;w4.jtdForms=["elements","values","discriminator","properties","optionalProperties","enum","type","ref"]});var ert=w(tle=>{"use strict";Object.defineProperty(tle,"__esModule",{value:!0});var ele=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f0n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function $nt(e){return ele.lastIndex=0,'"'+(ele.test(e)?e.replace(ele,t=>{let n=f0n[t];return typeof n=="string"?n:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)}):e)+'"'}tle.default=$nt;$nt.code='require("ajv/dist/runtime/quote").default'});var ort=w(rle=>{"use strict";Object.defineProperty(rle,"__esModule",{value:!0});var p0n=$ue(),nrt=H_(),bn=Ot(),h0n=Ym(),qr=Sd(),m0n=Sa(),g0n=T4(),y0n=pn(),S0n=ert(),b0n={elements:_0n,values:T0n,discriminator:v0n,properties:trt,optionalProperties:trt,enum:jM,type:R0n,ref:w0n};function rrt(e,t){let n=nrt.getCompilingSchema.call(this,e);if(n)return n;let{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new bn.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a=o.scopeName("serialize"),c={self:this,gen:o,schema:e.schema,schemaEnv:e,definitions:t,data:qr.default.data},u;try{this._compilations.add(e),e.serializeName=a,o.func(a,qr.default.data,!1,()=>{o.let(qr.default.json,(0,bn.str)``),HM(c),o.return(qr.default.json)}),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(qr.default.scope)}return ${l}`;let f=new Function(`${qr.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.serialize=f}catch(l){throw u&&this.logger.error("Error compiling serializer, function code:",u),delete e.serialize,delete e.serializeName,l}finally{this._compilations.delete(e)}return e}rle.default=rrt;function HM(e){let t;for(let n of p0n.jtdForms)if(n in e.schema){t=n;break}E0n(e,t?b0n[t]:I0n)}function E0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);n.if((0,bn._)`${i} === undefined || ${i} === null`,()=>n.add(qr.default.json,(0,bn._)`"null"`),()=>t(e))}function _0n(e){let{gen:t,schema:n,data:r}=e;t.add(qr.default.json,(0,bn.str)`[`);let i=t.let("first",!0);t.forOf("el",r,s=>{nle(e,i),HM({...e,schema:n.elements,data:s})}),t.add(qr.default.json,(0,bn.str)`]`)}function T0n(e){let{gen:t,schema:n,data:r}=e;t.add(qr.default.json,(0,bn.str)`{`);let i=t.let("first",!0);t.forIn("key",r,s=>irt(e,s,n.values,i)),t.add(qr.default.json,(0,bn.str)`}`)}function irt(e,t,n,r){let{gen:i,data:s}=e;nle(e,r),jM({...e,data:t}),i.add(qr.default.json,(0,bn.str)`:`);let o=i.const("value",(0,bn._)`${s}${(0,bn.getProperty)(t)}`);HM({...e,schema:n,data:o})}function v0n(e){let{gen:t,schema:n,data:r}=e,{discriminator:i}=n;t.add(qr.default.json,(0,bn.str)`{${JSON.stringify(i)}:`);let s=t.const("tag",(0,bn._)`${r}${(0,bn.getProperty)(i)}`);jM({...e,data:s}),t.if(!1);for(let o in n.mapping){t.elseIf((0,bn._)`${s} === ${o}`);let a=n.mapping[o];srt({...e,schema:a},i)}t.endIf(),t.add(qr.default.json,(0,bn.str)`}`)}function trt(e){let{gen:t}=e;t.add(qr.default.json,(0,bn.str)`{`),srt(e),t.add(qr.default.json,(0,bn.str)`}`)}function srt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o}=r,a=f(s),c=f(o),u=p(a.concat(c)),l=!t,d;for(let y of a)l?l=!1:n.add(qr.default.json,(0,bn.str)`,`),m(y,s[y],h(y));l&&(d=n.let("first",!0));for(let y of c){let b=h(y);n.if((0,bn.and)((0,bn._)`${b} !== undefined`,(0,m0n.isOwnProperty)(n,i,y)),()=>{nle(e,d),m(y,o[y],b)})}r.additionalProperties&&n.forIn("key",i,y=>n.if(g(y,u),()=>irt(e,y,{},d)));function f(y){return y?Object.keys(y):[]}function p(y){if(t&&y.push(t),new Set(y).size!==y.length)throw new Error("JTD: properties/optionalProperties/disciminator overlap");return y}function h(y){return n.const("value",(0,bn._)`${i}${(0,bn.getProperty)(y)}`)}function m(y,b,S){n.add(qr.default.json,(0,bn.str)`${JSON.stringify(y)}:`),HM({...e,schema:b,data:S})}function g(y,b){return b.length?(0,bn.and)(...b.map(S=>(0,bn._)`${y} !== ${S}`)):!0}}function R0n(e){let{gen:t,schema:n,data:r}=e;switch(n.type){case"boolean":t.add(qr.default.json,(0,bn._)`${r} ? "true" : "false"`);break;case"string":jM(e);break;case"timestamp":t.if((0,bn._)`${r} instanceof Date`,()=>t.add(qr.default.json,(0,bn._)`'"' + ${r}.toISOString() + '"'`),()=>jM(e));break;default:A0n(e)}}function jM({gen:e,data:t}){e.add(qr.default.json,(0,bn._)`${(0,y0n.useFunc)(e,S0n.default)}(${t})`)}function A0n({gen:e,data:t,self:n}){let r=(0,bn._)`${t} === Infinity || ${t} === -Infinity || ${t} !== ${t}`;n.opts.specialNumbers===void 0||n.opts.specialNumbers==="fast"?e.add(qr.default.json,(0,bn._)`"" + ${t}`):e.if(r,()=>e.add(qr.default.json,(0,bn._)`null`),()=>e.add(qr.default.json,(0,bn._)`"" + ${t}`))}function w0n(e){let{gen:t,self:n,data:r,definitions:i,schema:s,schemaEnv:o}=e,{ref:a}=s,c=i[a];if(!c)throw new h0n.default(n.opts.uriResolver,"",a,`No definition ${a}`);if(!(0,g0n.hasRef)(c))return HM({...e,schema:c});let{root:u}=o,l=rrt.call(n,new nrt.SchemaEnv({schema:c,root:u}),i);t.add(qr.default.json,(0,bn._)`${k0n(t,l)}(${r})`)}function k0n(e,t){return t.serialize?e.scopeValue("serialize",{ref:t.serialize}):(0,bn._)`${e.scopeValue("wrapper",{ref:t})}.serialize`}function I0n({gen:e,data:t}){e.add(qr.default.json,(0,bn._)`JSON.stringify(${t})`)}function nle({gen:e},t){t?e.if(t,()=>e.assign(t,!1),()=>e.add(qr.default.json,(0,bn.str)`,`)):e.add(qr.default.json,(0,bn.str)`,`)}});var crt=w(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});rb.parseJsonString=rb.parseJsonNumber=rb.parseJson=void 0;var x0n=/position\s(\d+)(?: \(line \d+ column \d+\))?$/;function og(e,t){let n;og.message=void 0;let r;t&&(e=e.slice(t));try{return og.position=t+e.length,JSON.parse(e)}catch(i){if(r=x0n.exec(i.message),!r){og.message="unexpected end";return}n=+r[1];let s=e[n];e=e.slice(0,n),og.position=t+n;try{return JSON.parse(e)}catch{og.message=`unexpected token ${s}`;return}}}rb.parseJson=og;og.message=void 0;og.position=0;og.code='require("ajv/dist/runtime/parseJson").parseJson';function ag(e,t,n){let r="",i;if(ag.message=void 0,e[t]==="-"&&(r+="-",t++),e[t]==="0")r+="0",t++;else if(!s(n)){o();return}if(n)return ag.position=t,+r;if(e[t]==="."&&(r+=".",t++,!s())){o();return}if(i=e[t],(i==="e"||i==="E")&&(r+="e",t++,i=e[t],(i==="+"||i==="-")&&(r+=i,t++),!s())){o();return}return ag.position=t,+r;function s(a){let c=!1;for(;i=e[t],i>="0"&&i<="9"&&(a===void 0||a-- >0);)c=!0,r+=i,t++;return c}function o(){ag.position=t,ag.message=t="a"&&r<="f")o+=r.charCodeAt(0)-O0n+10;else if(r>="0"&&r<="9")o+=r.charCodeAt(0)-P0n;else{i(`unexpected token ${r}`);return}t++}n+=String.fromCharCode(o)}else{i(`unexpected token ${r}`);return}else if(r===void 0){i("unexpected end");return}else if(r.charCodeAt(0)>=32)n+=r;else{i(`unexpected token ${r}`);return}return nb.position=t,n;function i(s){nb.position=t,nb.message=s}}rb.parseJsonString=nb;nb.message=void 0;nb.position=0;nb.code='require("ajv/dist/runtime/parseJson").parseJsonString'});var brt=w(dle=>{"use strict";Object.defineProperty(dle,"__esModule",{value:!0});var N0n=$ue(),frt=H_(),mt=Ot(),C0n=Ym(),Dn=Sd(),M0n=Sa(),D0n=T4(),L0n=Bue(),ole=crt(),prt=pn(),U0n=que(),F0n={elements:B0n,values:z0n,discriminator:V0n,properties:urt,optionalProperties:urt,enum:K0n,type:W0n,ref:Y0n};function hrt(e,t){let n=frt.getCompilingSchema.call(this,e);if(n)return n;let{es5:r,lines:i}=this.opts.code,{ownProperties:s}=this.opts,o=new mt.CodeGen(this.scope,{es5:r,lines:i,ownProperties:s}),a=o.scopeName("parse"),c={self:this,gen:o,schema:e.schema,schemaEnv:e,definitions:t,data:Dn.default.data,parseName:a,char:o.name("c")},u;try{this._compilations.add(e),e.parseName=a,j0n(c),o.optimize(this.opts.code.optimize);let l=o.toString();u=`${o.scopeRefs(Dn.default.scope)}return ${l}`;let f=new Function(`${Dn.default.scope}`,u)(this.scope.get());this.scope.value(a,{ref:f}),e.parse=f}catch(l){throw u&&this.logger.error("Error compiling parser, function code:",u),delete e.parse,delete e.parseName,l}finally{this._compilations.delete(e)}return e}dle.default=hrt;var sle=(0,mt._)`undefined`;function j0n(e){let{gen:t,parseName:n,char:r}=e;t.func(n,(0,mt._)`${Dn.default.json}, ${Dn.default.jsonPos}, ${Dn.default.jsonPart}`,!1,()=>{t.let(Dn.default.data),t.let(r),t.assign((0,mt._)`${n}.message`,sle),t.assign((0,mt._)`${n}.position`,sle),t.assign(Dn.default.jsonPos,(0,mt._)`${Dn.default.jsonPos} || 0`),t.const(Dn.default.jsonLen,(0,mt._)`${Dn.default.json}.length`),k4(e),lle(e),t.if(Dn.default.jsonPart,()=>{t.assign((0,mt._)`${n}.position`,Dn.default.jsonPos),t.return(Dn.default.data)}),t.if((0,mt._)`${Dn.default.jsonPos} === ${Dn.default.jsonLen}`,()=>t.return(Dn.default.data)),Zk(e)})}function k4(e){let t;for(let n of N0n.jtdForms)if(n in e.schema){t=n;break}t?q0n(e,F0n[t]):cle(e)}var H0n=drt(!0,drt(!1,Zk));function q0n(e,t){let{gen:n,schema:r,data:i}=e;if(!r.nullable)return t(e);qM(e,"null",t,()=>n.assign(i,null))}function B0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"[");let i=t.let("i",0);t.assign(r,(0,mt._)`[]`),ale(e,"]",()=>{let s=t.let("el");k4({...e,schema:n.elements,data:s}),t.assign((0,mt._)`${r}[${i}++]`,s)})}function z0n(e){let{gen:t,schema:n,data:r}=e;Ah(e,"{"),t.assign(r,(0,mt._)`{}`),ale(e,"}",()=>G0n(e,n.values))}function ale(e,t,n){mrt(e,t,n),Ah(e,t)}function mrt(e,t,n){let{gen:r}=e;r.for((0,mt._)`;${Dn.default.jsonPos}<${Dn.default.jsonLen} && ${I4(1)}!==${t};`,()=>{n(),qM(e,",",()=>r.break(),i)});function i(){qM(e,t,()=>{},Zk)}}function G0n(e,t){let{gen:n}=e,r=n.let("key");pT({...e,data:r}),Ah(e,":"),yrt(e,r,t)}function V0n(e){let{gen:t,data:n,schema:r}=e,{discriminator:i,mapping:s}=r;Ah(e,"{"),t.assign(n,(0,mt._)`{}`);let o=t.const("pos",Dn.default.jsonPos),a=t.let("value"),c=t.let("tag");mrt(e,"}",()=>{let u=t.let("key");pT({...e,data:u}),Ah(e,":"),t.if((0,mt._)`${u} === ${i}`,()=>{pT({...e,data:c}),t.assign((0,mt._)`${n}[${u}]`,c),t.break()},()=>cle({...e,data:a}))}),t.assign(Dn.default.jsonPos,o),t.if((0,mt._)`${c} === undefined`),cg(e,(0,mt.str)`discriminator tag not found`);for(let u in s)t.elseIf((0,mt._)`${c} === ${u}`),grt({...e,schema:s[u]},i);t.else(),cg(e,(0,mt.str)`discriminator value not in schema`),t.endIf()}function urt(e){let{gen:t,data:n}=e;Ah(e,"{"),t.assign(n,(0,mt._)`{}`),grt(e)}function grt(e,t){let{gen:n,schema:r,data:i}=e,{properties:s,optionalProperties:o,additionalProperties:a}=r;if(ale(e,"}",()=>{let c=n.let("key");if(pT({...e,data:c}),Ah(e,":"),n.if(!1),lrt(e,c,s),lrt(e,c,o),t){n.elseIf((0,mt._)`${c} === ${t}`);let u=n.let("tag");pT({...e,data:u})}n.else(),a?cle({...e,data:(0,mt._)`${i}[${c}]`}):cg(e,(0,mt.str)`property ${c} not allowed`),n.endIf()}),s){let c=(0,M0n.hasPropFunc)(n),u=(0,mt.and)(...Object.keys(s).map(l=>(0,mt._)`${c}.call(${i}, ${l})`));n.if((0,mt.not)(u),()=>cg(e,(0,mt.str)`missing required properties`))}}function lrt(e,t,n={}){let{gen:r}=e;for(let i in n)r.elseIf((0,mt._)`${t} === ${i}`),yrt(e,t,n[i])}function yrt(e,t,n){k4({...e,schema:n,data:(0,mt._)`${e.data}[${t}]`})}function W0n(e){let{gen:t,schema:n,data:r,self:i}=e;switch(n.type){case"boolean":H0n(e);break;case"string":pT(e);break;case"timestamp":{pT(e);let s=(0,prt.useFunc)(t,U0n.default),{allowDate:o,parseDate:a}=i.opts,c=o?(0,mt._)`!${s}(${r}, true)`:(0,mt._)`!${s}(${r})`,u=a?(0,mt.or)(c,(0,mt._)`(${r} = new Date(${r}), false)`,(0,mt._)`isNaN(${r}.valueOf())`):c;t.if(u,()=>cg(e,(0,mt.str)`invalid timestamp`));break}case"float32":case"float64":ile(e);break;default:{let s=n.type;if(!i.opts.int32range&&(s==="int32"||s==="uint32"))ile(e,16),s==="uint32"&&t.if((0,mt._)`${r} < 0`,()=>cg(e,(0,mt.str)`integer out of range`));else{let[o,a,c]=L0n.intRange[s];ile(e,c),t.if((0,mt._)`${r} < ${o} || ${r} > ${a}`,()=>cg(e,(0,mt.str)`integer out of range`))}}}}function pT(e){Ah(e,'"'),ule(e,ole.parseJsonString)}function K0n(e){let{gen:t,data:n,schema:r}=e,i=r.enum;Ah(e,'"'),t.if(!1);for(let s of i){let o=JSON.stringify(s).slice(1);t.elseIf((0,mt._)`${I4(o.length)} === ${o}`),t.assign(n,(0,mt.str)`${s}`),t.add(Dn.default.jsonPos,o.length)}t.else(),Zk(e),t.endIf()}function ile(e,t){let{gen:n}=e;lle(e),n.if((0,mt._)`"-0123456789".indexOf(${I4(1)}) < 0`,()=>Zk(e),()=>ule(e,ole.parseJsonNumber,t))}function drt(e,t){return n=>{let{gen:r,data:i}=n;qM(n,`${e}`,()=>t(n),()=>r.assign(i,e))}}function Y0n(e){let{gen:t,self:n,definitions:r,schema:i,schemaEnv:s}=e,{ref:o}=i,a=r[o];if(!a)throw new C0n.default(n.opts.uriResolver,"",o,`No definition ${o}`);if(!(0,D0n.hasRef)(a))return k4({...e,schema:a});let{root:c}=s,u=hrt.call(n,new frt.SchemaEnv({schema:a,root:c}),r);Srt(e,Z0n(t,u),!0)}function Z0n(e,t){return t.parse?e.scopeValue("parse",{ref:t.parse}):(0,mt._)`${e.scopeValue("wrapper",{ref:t})}.parse`}function cle(e){ule(e,ole.parseJson)}function ule(e,t,n){Srt(e,(0,prt.useFunc)(e.gen,t),n)}function Srt(e,t,n){let{gen:r,data:i}=e;r.assign(i,(0,mt._)`${t}(${Dn.default.json}, ${Dn.default.jsonPos}${n?(0,mt._)`, ${n}`:mt.nil})`),r.assign(Dn.default.jsonPos,(0,mt._)`${t}.position`),r.if((0,mt._)`${i} === undefined`,()=>cg(e,(0,mt._)`${t}.message`))}function Ah(e,t){qM(e,t,Zk)}function qM(e,t,n,r){let{gen:i}=e,s=t.length;lle(e),i.if((0,mt._)`${I4(s)} === ${t}`,()=>{i.add(Dn.default.jsonPos,s),r?.(e)},()=>n(e))}function lle({gen:e,char:t}){e.code((0,mt._)`while((${t}=${Dn.default.json}[${Dn.default.jsonPos}],${t}===" "||${t}==="\\n"||${t}==="\\r"||${t}==="\\t"))${Dn.default.jsonPos}++;`)}function I4(e){return e===1?(0,mt._)`${Dn.default.json}[${Dn.default.jsonPos}]`:(0,mt._)`${Dn.default.json}.slice(${Dn.default.jsonPos}, ${Dn.default.jsonPos}+${e})`}function Zk(e){cg(e,(0,mt._)`"unexpected token " + ${Dn.default.json}[${Dn.default.jsonPos}]`)}function cg({gen:e,parseName:t},n){e.assign((0,mt._)`${t}.message`,n),e.assign((0,mt._)`${t}.position`,Dn.default.jsonPos),e.return(sle)}});var hle=w((bi,ple)=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.MissingRefError=bi.ValidationError=bi.CodeGen=bi.Name=bi.nil=bi.stringify=bi.str=bi._=bi.KeywordCxt=bi.Ajv=void 0;var J0n=Bse(),X0n=Ynt(),Q0n=Qnt(),$0n=ort(),exn=brt(),fle="JTD-meta-schema",Jk=class extends J0n.default{constructor(t={}){super({...t,jtd:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(X0n.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema(),this.opts.meta&&this.addMetaSchema(Q0n.default,fle,!1)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(fle)?fle:void 0)}compileSerializer(t){let n=this._addSchema(t);return n.serialize||this._compileSerializer(n)}compileParser(t){let n=this._addSchema(t);return n.parse||this._compileParser(n)}_compileSerializer(t){if($0n.default.call(this,t,t.schema.definitions||{}),!t.serialize)throw new Error("ajv implementation error");return t.serialize}_compileParser(t){if(exn.default.call(this,t,t.schema.definitions||{}),!t.parse)throw new Error("ajv implementation error");return t.parse}};bi.Ajv=Jk;ple.exports=bi=Jk;ple.exports.Ajv=Jk;Object.defineProperty(bi,"__esModule",{value:!0});bi.default=Jk;var txn=rk();Object.defineProperty(bi,"KeywordCxt",{enumerable:!0,get:function(){return txn.KeywordCxt}});var Xk=Ot();Object.defineProperty(bi,"_",{enumerable:!0,get:function(){return Xk._}});Object.defineProperty(bi,"str",{enumerable:!0,get:function(){return Xk.str}});Object.defineProperty(bi,"stringify",{enumerable:!0,get:function(){return Xk.stringify}});Object.defineProperty(bi,"nil",{enumerable:!0,get:function(){return Xk.nil}});Object.defineProperty(bi,"Name",{enumerable:!0,get:function(){return Xk.Name}});Object.defineProperty(bi,"CodeGen",{enumerable:!0,get:function(){return Xk.CodeGen}});var nxn=IC();Object.defineProperty(bi,"ValidationError",{enumerable:!0,get:function(){return nxn.default}});var rxn=Ym();Object.defineProperty(bi,"MissingRefError",{enumerable:!0,get:function(){return rxn.default}})});var mle=w((v3r,Ert)=>{"use strict";var ixn=rV();Ert.exports=Object.freeze({coerceTypes:"array",useDefaults:!0,removeAdditional:!0,uriResolver:ixn,addUsedSchema:!1,allErrors:!1})});var vrt=w((R3r,Trt)=>{"use strict";var sxn=G_().default,oxn=hle(),_rt=mle(),gle=class{constructor(t,n){n.mode==="JTD"?this.ajv=new oxn(Object.assign({},_rt,n.customOptions)):this.ajv=new sxn(Object.assign({},_rt,n.customOptions));let r=!0;if(n.plugins&&n.plugins.length>0)for(let s of n.plugins)Array.isArray(s)?(r=r&&s[0].name!=="formatsPlugin",s[0](this.ajv,s[1])):(r=r&&s.name!=="formatsPlugin",s(this.ajv));r&&EV()(this.ajv),n.onCreate?.(this.ajv);let i=Object.values(t);for(let s of i)this.ajv.addSchema(s)}buildValidatorFunction({schema:t}){if(t.$id){let n=this.ajv.getSchema(t.$id);if(n)return n}return this.ajv.compile(t)}};Trt.exports=gle});var Art=w((A3r,Rrt)=>{"use strict";var axn=hle(),cxn=mle(),yle=class{constructor(t,n){this.ajv=new axn(Object.assign({},cxn,n))}buildSerializerFunction({schema:t}){return this.ajv.compileSerializer(t)}};Rrt.exports=yle});var Irt=w((zM,krt)=>{"use strict";Object.defineProperty(zM,"__esModule",{value:!0});var BM=B2(),Cf=Zw();function wrt(e,t){if(!e.opts.code.source)throw new Error("moduleCode: ajv instance must have code.source option");let{_n:n}=e.scope.opts;return typeof t=="function"?i(t.source):t!==void 0?s(t,r):s(e.schemas,a=>a.meta?void 0:e.compile(a.schema));function r(a){let c=e.getSchema(a);if(!c)throw new Error(`moduleCode: no schema with id ${a}`);return c}function i(a){let c={},u=a?.validateName,l=o(c,a);return e.opts.code.esm?`"use strict";${n}export const validate = ${u};${n}export default ${u};${n}${l}`:`"use strict";${n}module.exports = ${u};${n}module.exports.default = ${u};${n}${l}`}function s(a,c){var u;let l={},d=(0,Cf._)`"use strict";`;for(let f in a){let p=c(a[f]);if(p){let h=o(l,p.source),m=e.opts.code.esm?(0,Cf._)`export const ${(0,Cf.getEsmExportName)(f)}`:(0,Cf._)`exports${(0,Cf.getProperty)(f)}`;d=(0,Cf._)`${d}${n}${m} = ${(u=p.source)===null||u===void 0?void 0:u.validateName};${n}${h}`}}return`${d}`}function o(a,c){if(!c)throw new Error('moduleCode: function does not have "source" property');if(f(c.validateName)===BM.UsedValueState.Completed)return Cf.nil;p(c.validateName,BM.UsedValueState.Started);let u=e.scope.scopeCode(c.scopeValues,a,d),l=new Cf._Code(`${u}${n}${c.validateCode}`);return c.evaluated?(0,Cf._)`${l}${c.validateName}.evaluated = ${c.evaluated};${n}`:l;function d(h){var m;let g=(m=h.value)===null||m===void 0?void 0:m.ref;if(h.prefix==="validate"&&typeof g=="function")return o(a,g.source);if((h.prefix==="root"||h.prefix==="wrapper")&&typeof g=="object"){let{validate:y,validateName:b}=g;if(!b)throw new Error("ajv internal error");let S=e.opts.code.es5?BM.varKinds.var:BM.varKinds.const,E=(0,Cf._)`${S} ${h} = {validate: ${b}};`;if(f(b)===BM.UsedValueState.Started)return E;let _=o(a,y?.source);return(0,Cf._)`${E}${n}${_}`}}function f(h){var m;return(m=a[h.prefix])===null||m===void 0?void 0:m.get(h)}function p(h,m){let{prefix:g}=h;(a[g]=a[g]||new Map).set(h,m)}}}krt.exports=zM=wrt;Object.defineProperty(zM,"__esModule",{value:!0});zM.default=wrt});var Prt=w((w3r,Ort)=>{"use strict";var xrt=Sle(),uxn=Irt().default;function lxn(e={readMode:!0}){if(e.readMode===!0&&!e.restoreFunction)throw new Error("You must provide a restoreFunction options when readMode ON");if(e.readMode!==!0&&!e.storeFunction)throw new Error("You must provide a storeFunction options when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=xrt();return function(r,i={}){(!i.customOptions||!i.customOptions.code)&&(i.customOptions=Object.assign({},i.customOptions,{code:{source:!0}}));let s=t(r,i);return function(o){let a=s(o),c=uxn(s[xrt.AjvReference].ajv,a);return e.storeFunction(o,c),a}}}Ort.exports=lxn});var Sle=w((k3r,Qk)=>{"use strict";var Crt=Symbol.for("fastify.ajv-compiler.reference"),dxn=vrt(),fxn=Art();function ble(e){let t=new Map,n=new Map;return e&&e.jtdSerializer===!0?function(i,s){let o=Nrt({},s);if(n.has(o))return n.get(o);let a=new fxn(i,s),c=a.buildSerializerFunction.bind(a);return n.set(o,c),c}:function(i,s){let o=Nrt(i,s.customOptions);if(t.has(o))return t.get(o);let a=new dxn(i,s),c=a.buildValidatorFunction.bind(a);return t.set(o,c),s.customOptions.code!==void 0&&(c[Crt]=a),c}}function Nrt(e,t){let n=JSON.stringify(e),r=JSON.stringify(t);return`${n}${r}`}Qk.exports=ble;Qk.exports.default=ble;Qk.exports.AjvCompiler=ble;Qk.exports.AjvReference=Crt;Qk.exports.StandaloneValidator=Prt()});var x4=w(Lrt=>{var Mrt=Object.prototype.hasOwnProperty;function Drt(e,t,n){for(n of e.keys())if(GM(n,t))return n}function GM(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&GM(e[r],t[r]););return r===-1}if(n===Set){if(e.size!==t.size)return!1;for(r of e)if(i=r,i&&typeof i=="object"&&(i=Drt(t,i),!i)||!t.has(i))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e)if(i=r[0],i&&typeof i=="object"&&(i=Drt(t,i),!i)||!GM(r[1],t.get(i)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return r===-1}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return r===-1}if(!n||typeof e=="object"){r=0;for(n in e)if(Mrt.call(e,n)&&++r&&!Mrt.call(t,n)||!(n in t)||!GM(e[n],t[n]))return!1;return Object.keys(t).length===r}}return e!==e&&t!==t}Lrt.dequal=GM});var Hrt=w((x3r,jrt)=>{"use strict";var{dequal:Urt}=x4(),pxn=Symbol.for("json-schema-ref"),Ele=class{#t;#n;#i;#e;#r;constructor(t={}){this.#t={},this.#n={},this.#i=t.insertRefSymbol??!1,this.#e=t.allowEqualDuplicates??!0,this.#r=t.cloneSchemaWithoutRefs??!1}addSchema(t,n,r=!0){r&&(t.$id!==void 0&&t.$id.charAt(0)!=="#"?n=t.$id:this.#o(t,n));let i=t.$id;i!==void 0&&typeof i=="string"&&(i.charAt(0)==="#"?this.#a(t,n,i):(this.#o(t,i),n=i));let s=t.$ref;if(s!==void 0&&typeof s=="string"){let{refSchemaId:o,refJsonPointer:a}=this.#s(s,n);this.#t[n].refs.push({schemaId:o,jsonPointer:a})}for(let o in t)typeof t[o]=="object"&&t[o]!==null&&this.addSchema(t[o],n,!1)}getSchema(t,n="#"){let r=this.#t[t];if(r===void 0)throw new Error(`Cannot resolve ref "${t}${n}". Schema with id "${t}" is not found.`);return r.anchors[n]!==void 0?r.anchors[n]:Frt(r.schema,n)}hasSchema(t){return this.#t[t]!==void 0}getSchemaRefs(t){let n=this.#t[t];if(n===void 0)throw new Error(`Schema with id "${t}" is not found.`);return n.refs}getSchemaDependencies(t,n={}){let r=this.#t[t];for(let i of r.refs){let s=i.schemaId;s===t||n[s]!==void 0||(n[s]=this.getSchema(s),this.getSchemaDependencies(s,n))}return n}derefSchema(t){if(this.#n[t]!==void 0)return;let n=this.#t[t];if(n===void 0)throw new Error(`Schema with id "${t}" is not found.`);!this.#r&&n.refs.length===0&&(this.#n[t]={schema:n.schema,anchors:n.anchors});let r=[];this.#c(n.schema,t,!0,r);let i=this.getSchemaDependencies(t);for(let s in i){let o=i[s];this.#c(o,s,!0,r)}for(let s of r){let{refSchemaId:o,refJsonPointer:a}=this.#s(s.ref,s.sourceSchemaId),c=this.getDerefSchema(o,a);if(c===null)throw new Error(`Cannot resolve ref "${s.ref}". Ref "${a}" is not found in schema "${o}".`);s.targetSchema=c,s.targetSchemaId=o}for(let s of r)this.#u(s,r)}getDerefSchema(t,n="#"){let r=this.#n[t];return r===void 0&&(this.derefSchema(t),r=this.#n[t]),r.anchors[n]!==void 0?r.anchors[n]:Frt(r.schema,n)}#s(t,n){let r=t.indexOf("#");return r===-1?{refSchemaId:t,refJsonPointer:"#"}:r===0?{refSchemaId:n,refJsonPointer:t}:{refSchemaId:t.slice(0,r),refJsonPointer:t.slice(r)}}#c(t,n,r,i=[]){let s=Array.isArray(t)?[...t]:{...t};r&&(t.$id!==void 0&&t.$id.charAt(0)!=="#"?n=t.$id:this.#l(s,n));let o=s.$id;o!==void 0&&typeof o=="string"&&(o.charAt(0)==="#"?this.#d(s,n,o):(this.#l(s,o),n=o)),s.$ref!==void 0&&i.push({ref:s.$ref,sourceSchemaId:n,sourceSchema:s});for(let a in s){let c=s[a];typeof c=="object"&&c!==null&&(s[a]=this.#c(c,n,!1,i))}return s}#u(t,n){let{sourceSchema:r,targetSchema:i}=t;if(r.$ref){if(this.#i&&(r[pxn]=r.$ref),delete r.$ref,i.$ref){let s=n.find(o=>o.sourceSchema===i);this.#u(s,n)}for(let s in i)if(s!=="$id"){if(r[s]!==void 0){if(Urt(r[s],i[s]))continue;throw new Error(`Cannot resolve ref "${t.ref}". Property "${s}" already exists in schema "${t.sourceSchemaId}".`)}r[s]=i[s]}t.isResolved=!0}}#o(t,n){let r=this.#t[n];if(r!==void 0){if(this.#e&&Urt(t,r.schema))return;throw new Error(`There is already another schema with id "${n}".`)}this.#t[n]={schema:t,anchors:{},refs:[]}}#a(t,n,r){let{anchors:i}=this.#t[n];if(i[r]!==void 0)throw new Error(`There is already another anchor "${r}" in schema "${n}".`);i[r]=t}#l(t,n){this.#n[n]===void 0&&(this.#n[n]={schema:t,anchors:{}})}#d(t,n,r){let{anchors:i}=this.#n[n];i[r]=t}};function Frt(e,t){let n=t.split("/"),r=e;for(let i of n)if(!(i===""||i==="#")){if(typeof r!="object"||r===null)return null;r=r[i]}return r??null}jrt.exports={RefResolver:Ele}});var Tle=w((O3r,qrt)=>{"use strict";var hxn=G_(),mxn=rV(),gxn=EV(),yxn=e4()({proto:!0}),_le=class e{constructor(t){this.ajv=new hxn({...t,strictSchema:!1,validateSchema:!1,allowUnionTypes:!0,uriResolver:mxn}),gxn(this.ajv),this.ajv.addKeyword({keyword:"fjs_type",type:"object",errors:!1,validate:(n,r)=>r&&typeof r.toJSON=="function"}),this._ajvSchemas={},this._ajvOptions=t||{}}addSchema(t,n){let r=t.$id||n;if(t.$id!==void 0&&t.$id[0]==="#"&&(r=n+t.$id),this.ajv.refs[r]===void 0&&this.ajv.schemas[r]===void 0){let i=yxn(t);this.convertSchemaToAjvFormat(i),this.ajv.addSchema(i,r),this._ajvSchemas[r]=t}}validate(t,n){return this.ajv.validate(t,n)}convertSchemaToAjvFormat(t){if(t!==null){t.type==="string"?(t.fjs_type="string",t.type=["string","object"]):Array.isArray(t.type)&&t.type.includes("string")&&!t.type.includes("object")&&(t.fjs_type="string",t.type.push("object"));for(let n in t)typeof t[n]=="object"&&this.convertSchemaToAjvFormat(t[n])}}getState(){return{ajvOptions:this._ajvOptions,ajvSchemas:this._ajvSchemas}}static restoreFromState(t){let n=new e(t.ajvOptions);for(let[r,i]of Object.entries(t.ajvSchemas))n.ajv.addSchema(i,r);return n}};qrt.exports=_le});var zrt=w((P3r,Brt)=>{"use strict";var vle=class e{constructor(t,n,r="#"){this.schema=t,this.schemaId=n,this.jsonPointer=r}getPropertyLocation(t){return new e(this.schema[t],this.schemaId,this.jsonPointer+"/"+t)}getSchemaRef(){return this.schemaId+this.jsonPointer}};Brt.exports=vle});var Yrt=w((N3r,Ale)=>{"use strict";Ale.exports=qe;Ale.exports.default=qe;var Sxn={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0},Grt={enum:["array","boolean","integer","null","number","object","string"]},Vrt=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,bxn=SV().fullFormats.uri,Wrt=SV().fullFormats.regex;function wd(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o;return typeof e=="number"&&!(e%1)&&!isNaN(e)&&isFinite(e)?o===a&&typeof e=="number"&&isFinite(e)&&(e<0||isNaN(e))?(wd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1):(wd.errors=s,o===0):(wd.errors=[{instancePath:t,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1)}var Rle={validate:qe};function Vc(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0;if(o===0)if(Array.isArray(e)){if(e.length<1)return Vc.errors=[{instancePath:t,schemaPath:"#/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"}],!1;{var a=!0;let c=e.length;for(let u=0;u",limit:0},message:"must be > 0"}],!1}else return qe.errors=[{instancePath:t+"/multipleOf",schemaPath:"#/properties/multipleOf/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.maximum!==void 0){let S=e.maximum,E=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/maximum",schemaPath:"#/properties/maximum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.exclusiveMaximum!==void 0){let S=e.exclusiveMaximum,E=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/exclusiveMaximum",schemaPath:"#/properties/exclusiveMaximum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.minimum!==void 0){let S=e.minimum,E=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/minimum",schemaPath:"#/properties/minimum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.exclusiveMinimum!==void 0){let S=e.exclusiveMinimum,E=o;if(!(typeof S=="number"&&isFinite(S)))return qe.errors=[{instancePath:t+"/exclusiveMinimum",schemaPath:"#/properties/exclusiveMinimum/type",keyword:"type",params:{type:"number"},message:"must be number"}],!1;var a=E===o}else var a=!0;if(a){if(e.maxLength!==void 0){let S=e.maxLength,E=o,_=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxLength",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===_&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxLength",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=E===o}else var a=!0;if(a){if(e.minLength!==void 0){let S=o;wd(e.minLength,{instancePath:t+"/minLength",parentData:e,parentDataProperty:"minLength",rootData:i})||(s=s===null?wd.errors:s.concat(wd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.pattern!==void 0){let S=e.pattern,E=o;if(o===E&&o===E)if(typeof S=="string"){if(!Wrt(S))return qe.errors=[{instancePath:t+"/pattern",schemaPath:"#/properties/pattern/format",keyword:"format",params:{format:"regex"},message:'must match format "regex"'}],!1}else return qe.errors=[{instancePath:t+"/pattern",schemaPath:"#/properties/pattern/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=E===o}else var a=!0;if(a){if(e.additionalItems!==void 0){let S=o;qe(e.additionalItems,{instancePath:t+"/additionalItems",parentData:e,parentDataProperty:"additionalItems",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.items!==void 0){let S=e.items,E=o,_=o,T=!1,R=o;qe(S,{instancePath:t+"/items",parentData:e,parentDataProperty:"items",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var c=R===o;if(T=T||c,!T){let x=o;Vc(S,{instancePath:t+"/items",parentData:e,parentDataProperty:"items",rootData:i})||(s=s===null?Vc.errors:s.concat(Vc.errors),o=s.length);var c=x===o;T=T||c}if(T)o=_,s!==null&&(_?s.length=_:s=null);else{let x={instancePath:t+"/items",schemaPath:"#/properties/items/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[x]:s.push(x),o++,qe.errors=s,!1}var a=E===o}else var a=!0;if(a){if(e.maxItems!==void 0){let S=e.maxItems,E=o,_=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxItems",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===_&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxItems",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=E===o}else var a=!0;if(a){if(e.minItems!==void 0){let S=o;wd(e.minItems,{instancePath:t+"/minItems",parentData:e,parentDataProperty:"minItems",rootData:i})||(s=s===null?wd.errors:s.concat(wd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.uniqueItems!==void 0){let S=o;if(typeof e.uniqueItems!="boolean")return qe.errors=[{instancePath:t+"/uniqueItems",schemaPath:"#/properties/uniqueItems/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;var a=S===o}else var a=!0;if(a){if(e.contains!==void 0){let S=o;qe(e.contains,{instancePath:t+"/contains",parentData:e,parentDataProperty:"contains",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.maxProperties!==void 0){let S=e.maxProperties,E=o,_=o;if(!(typeof S=="number"&&!(S%1)&&!isNaN(S)&&isFinite(S)))return qe.errors=[{instancePath:t+"/maxProperties",schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;if(o===_&&typeof S=="number"&&isFinite(S)&&(S<0||isNaN(S)))return qe.errors=[{instancePath:t+"/maxProperties",schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"}],!1;var a=E===o}else var a=!0;if(a){if(e.minProperties!==void 0){let S=o;wd(e.minProperties,{instancePath:t+"/minProperties",parentData:e,parentDataProperty:"minProperties",rootData:i})||(s=s===null?wd.errors:s.concat(wd.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.required!==void 0){let S=e.required,E=o;if(o===o)if(Array.isArray(S)){var u=!0;let R=S.length;for(let A=0;A1){let k={};for(;A--;){let P=S[A];if(typeof P=="string"){if(typeof k[P]=="number"){return x=k[P],qe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/uniqueItems",keyword:"uniqueItems",params:{i:A,j:x},message:"must NOT have duplicate items (items ## "+x+" and "+A+" are identical)"}],!1;break}k[P]=A}}}}}else return qe.errors=[{instancePath:t+"/required",schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=E===o}else var a=!0;if(a){if(e.additionalProperties!==void 0){let S=o;qe(e.additionalProperties,{instancePath:t+"/additionalProperties",parentData:e,parentDataProperty:"additionalProperties",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.definitions!==void 0){let S=e.definitions,E=o;if(o===E)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let R=o;qe(S[T],{instancePath:t+"/definitions/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var l=R===o;if(!l)break}else return qe.errors=[{instancePath:t+"/definitions",schemaPath:"#/properties/definitions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=E===o}else var a=!0;if(a){if(e.properties!==void 0){let S=e.properties,E=o;if(o===E)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let R=o;qe(S[T],{instancePath:t+"/properties/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var d=R===o;if(!d)break}else return qe.errors=[{instancePath:t+"/properties",schemaPath:"#/properties/properties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=E===o}else var a=!0;if(a){if(e.patternProperties!==void 0){let S=e.patternProperties,E=o;if(o===E)if(S&&typeof S=="object"&&!Array.isArray(S)){for(let T in S){let R=o;if(o===R&&typeof T=="string"&&!Wrt(T)){let A={instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/propertyNames/format",keyword:"format",params:{format:"regex"},message:'must match format "regex"',propertyName:T};s===null?s=[A]:s.push(A),o++}var f=R===o;if(!f){let A={instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/propertyNames",keyword:"propertyNames",params:{propertyName:T},message:"property name must be valid"};return s===null?s=[A]:s.push(A),o++,qe.errors=s,!1;break}}if(f)for(let T in S){let R=o;qe(S[T],{instancePath:t+"/patternProperties/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var p=R===o;if(!p)break}}else return qe.errors=[{instancePath:t+"/patternProperties",schemaPath:"#/properties/patternProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=E===o}else var a=!0;if(a){if(e.dependencies!==void 0){let S=e.dependencies,E=o;if(o===E)if(S&&typeof S=="object"&&!Array.isArray(S))for(let T in S){let R=S[T],A=o,x=o,k=!1,P=o;qe(R,{instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:S,parentDataProperty:T,rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var h=P===o;if(k=k||h,!k){let N=o;if(o===o)if(Array.isArray(R)){var m=!0;let G=R.length;for(let W=0;W1){let q={};for(;W--;){let Q=R[W];if(typeof Q=="string"){if(typeof q[Q]=="number"){$=q[Q];let B={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/definitions/stringArray/uniqueItems",keyword:"uniqueItems",params:{i:W,j:$},message:"must NOT have duplicate items (items ## "+$+" and "+W+" are identical)"};s===null?s=[B]:s.push(B),o++;break}q[Q]=W}}}}}else{let G={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/definitions/stringArray/type",keyword:"type",params:{type:"array"},message:"must be array"};s===null?s=[G]:s.push(G),o++}var h=N===o;k=k||h}if(k)o=x,s!==null&&(x?s.length=x:s=null);else{let N={instancePath:t+"/dependencies/"+T.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/dependencies/additionalProperties/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[N]:s.push(N),o++,qe.errors=s,!1}var g=A===o;if(!g)break}else return qe.errors=[{instancePath:t+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=E===o}else var a=!0;if(a){if(e.propertyNames!==void 0){let S=o;qe(e.propertyNames,{instancePath:t+"/propertyNames",parentData:e,parentDataProperty:"propertyNames",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.enum!==void 0){let S=e.enum,E=o;if(o===E)if(Array.isArray(S)){if(S.length<1)return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"}],!1;{let T=S.length,R;if(T>1){e:for(;T--;)for(R=T;R--;)if(Krt(S[T],S[R])){return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/uniqueItems",keyword:"uniqueItems",params:{i:T,j:R},message:"must NOT have duplicate items (items ## "+R+" and "+T+" are identical)"}],!1;break e}}}}else return qe.errors=[{instancePath:t+"/enum",schemaPath:"#/properties/enum/type",keyword:"type",params:{type:"array"},message:"must be array"}],!1;var a=E===o}else var a=!0;if(a){if(e.type!==void 0){let S=e.type,E=o,_=o,T=!1,R=o;if(!(S==="array"||S==="boolean"||S==="integer"||S==="null"||S==="number"||S==="object"||S==="string")){let x={instancePath:t+"/type",schemaPath:"#/definitions/simpleTypes/enum",keyword:"enum",params:{allowedValues:Grt.enum},message:"must be equal to one of the allowed values"};s===null?s=[x]:s.push(x),o++}var y=R===o;if(T=T||y,!T){let x=o;if(o===x)if(Array.isArray(S))if(S.length<1){let P={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/minItems",keyword:"minItems",params:{limit:1},message:"must NOT have fewer than 1 items"};s===null?s=[P]:s.push(P),o++}else{var b=!0;let P=S.length;for(let N=0;N1){e:for(;N--;)for(C=N;C--;)if(Krt(S[N],S[C])){let L={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/uniqueItems",keyword:"uniqueItems",params:{i:N,j:C},message:"must NOT have duplicate items (items ## "+C+" and "+N+" are identical)"};s===null?s=[L]:s.push(L),o++;break e}}}}else{let P={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf/1/type",keyword:"type",params:{type:"array"},message:"must be array"};s===null?s=[P]:s.push(P),o++}var y=x===o;T=T||y}if(T)o=_,s!==null&&(_?s.length=_:s=null);else{let x={instancePath:t+"/type",schemaPath:"#/properties/type/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[x]:s.push(x),o++,qe.errors=s,!1}var a=E===o}else var a=!0;if(a){if(e.format!==void 0){let S=o;if(typeof e.format!="string")return qe.errors=[{instancePath:t+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.contentMediaType!==void 0){let S=o;if(typeof e.contentMediaType!="string")return qe.errors=[{instancePath:t+"/contentMediaType",schemaPath:"#/properties/contentMediaType/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.contentEncoding!==void 0){let S=o;if(typeof e.contentEncoding!="string")return qe.errors=[{instancePath:t+"/contentEncoding",schemaPath:"#/properties/contentEncoding/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;var a=S===o}else var a=!0;if(a){if(e.if!==void 0){let S=o;qe(e.if,{instancePath:t+"/if",parentData:e,parentDataProperty:"if",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.then!==void 0){let S=o;qe(e.then,{instancePath:t+"/then",parentData:e,parentDataProperty:"then",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.else!==void 0){let S=o;qe(e.else,{instancePath:t+"/else",parentData:e,parentDataProperty:"else",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.allOf!==void 0){let S=o;Vc(e.allOf,{instancePath:t+"/allOf",parentData:e,parentDataProperty:"allOf",rootData:i})||(s=s===null?Vc.errors:s.concat(Vc.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.anyOf!==void 0){let S=o;Vc(e.anyOf,{instancePath:t+"/anyOf",parentData:e,parentDataProperty:"anyOf",rootData:i})||(s=s===null?Vc.errors:s.concat(Vc.errors),o=s.length);var a=S===o}else var a=!0;if(a){if(e.oneOf!==void 0){let S=o;Vc(e.oneOf,{instancePath:t+"/oneOf",parentData:e,parentDataProperty:"oneOf",rootData:i})||(s=s===null?Vc.errors:s.concat(Vc.errors),o=s.length);var a=S===o}else var a=!0;if(a)if(e.not!==void 0){let S=o;qe(e.not,{instancePath:t+"/not",parentData:e,parentDataProperty:"not",rootData:i})||(s=s===null?qe.errors:s.concat(qe.errors),o=s.length);var a=S===o}else var a=!0}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return qe.errors=s,o===0}});var xle=w((C3r,Zrt)=>{"use strict";var wle=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Failed to merge "${t}" keyword schemas.`,this.schemas=n}},kle=class extends Error{constructor(t,n){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Resolver for "${t}" keyword not found.`,this.schemas=n}},Ile=class extends Error{constructor(t){super(),this.name="JsonSchemaMergeError",this.code="JSON_SCHEMA_MERGE_ERROR",this.message=`Invalid "onConflict" option: "${t}".`}};Zrt.exports={MergeError:wle,ResolverNotFoundError:kle,InvalidOnConflictOptionError:Ile}});var Qrt=w((M3r,Xrt)=>{"use strict";var{dequal:Exn}=x4(),{MergeError:Ole}=xle();function Jrt(e){let t=e[0];for(let n=1;ne[n].includes(r));return t}function _xn(e,t,n){let r=Jrt(t);if(r.length===0)throw new Ole(e,t);n[e]=r}function Txn(e,t,n){for(let i=0;ic?r(c,a%c):a,i=(a,c)=>a*c/r(a,c),s=1;for(let a of t)for(;a*s%1!==0;)s*=10;let o=t[0]*s;for(let a of t)o=i(o,a*s);n[e]=o/s}function kxn(e,t,n){let r=t[0];for(let i=1;i{"use strict";var{dequal:Pxn}=x4(),Xi=Qrt(),N4=xle(),tit={$id:Xi.skip,type:Xi.hybridArraysIntersection,enum:Xi.arraysIntersection,minLength:Xi.maxNumber,maxLength:Xi.minNumber,minimum:Xi.maxNumber,maximum:Xi.minNumber,multipleOf:Xi.commonMultiple,exclusiveMinimum:Xi.maxNumber,exclusiveMaximum:Xi.minNumber,minItems:Xi.maxNumber,maxItems:Xi.minNumber,maxProperties:Xi.minNumber,minProperties:Xi.maxNumber,const:Xi.allEqual,default:Xi.allEqual,format:Xi.allEqual,required:Xi.arraysUnion,properties:Uxn,patternProperties:P4,additionalProperties:O4,items:Mxn,additionalItems:Dxn,definitions:P4,$defs:P4,nullable:Xi.booleanAnd,oneOf:$rt,anyOf:$rt,allOf:Xi.arraysUnion,not:O4,if:Fxn,then:Xi.skip,else:Xi.skip,dependencies:eit,dependentRequired:eit,dependentSchemas:P4,propertyNames:O4,uniqueItems:Xi.booleanOr,contains:O4};function O4(e,t,n,r,i){n[e]=Mf(t,i)}function Nxn(e){let t=[[]];for(let n of e){let r=[];for(let i of t)for(let s of n)r.push([...i,s]);t=r}return t}function $rt(e,t,n,r,i){if(t.length===1){n[e]=t[0];return}let s=Nxn(t),o=[];for(let a of s)try{let c=Mf(a,i);c!==void 0&&o.push(c)}catch(c){if(c instanceof N4.MergeError)continue;throw c}n[e]=o}function Cxn(e,t){let{items:n,additionalItems:r}=e;return Array.isArray(n)?t{"use strict";var{mergeSchemas:Hxn}=iit();function qxn(e){return Hxn(e,{onConflict:"skip"})}sit.exports=qxn});var ait=w((U3r,Ple)=>{"use strict";function Bxn(e,t,n,r){let i="";t.validatorSchemasIds.size>0?(i+=`const Validator = require('fast-json-stringify/lib/validator') `,i+=`const validatorState = ${JSON.stringify(r.getState())} `,i+=`const validator = Validator.restoreFromState(validatorState) `):i+=`const validator = null @@ -144,7 +144,7 @@ ${b}`),m.pop(),`{${T}}`}case"number":return isFinite(h)?String(h):t?t(h):"null"; ${i} - module.exports = ${e.toString()}(validator, serializer)`}Ole.exports=Bxn;Ole.exports.dependencies={Serializer:e4(),Validator:_le()}});var mit=w((F3r,$k)=>{"use strict";var{RefResolver:zxn}=jrt(),Gxn=e4(),Vxn=_le(),hT=Brt(),ait=Krt(),Wxn=sit(),Kxn=/'/g,GM=2e4,P4="default",Yxn=` + module.exports = ${e.toString()}(validator, serializer)`}Ple.exports=Bxn;Ple.exports.dependencies={Serializer:n4(),Validator:Tle()}});var git=w((F3r,$k)=>{"use strict";var{RefResolver:zxn}=Hrt(),Gxn=n4(),Vxn=Tle(),hT=zrt(),cit=Yrt(),Wxn=oit(),Kxn=/'/g,VM=2e4,C4="default",Yxn=` const { asString, asNumber, @@ -157,7 +157,7 @@ const { const asInteger = serializer.asInteger.bind(serializer) -`,Zxn=new Set(["floor","ceil","round","trunc"]),dit=new Set(["default","json-stringify"]),VM=0;function Ple(e,t){if(!ait(e)){t?t=`"${t}" `:t="";let n=ait.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=Ple.errors,r}}function ug(e,t){let n=t.schema.$ref,r=n.indexOf("#");r===-1&&(r=n.length);let i=n.slice(0,r)||t.schemaId,s=n.slice(r)||"#",o=e.refResolver.getSchema(i,s);if(o===null)throw new Error(`Cannot find reference "${n}"`);let a=new hT(o,i,s);return o.$ref!==void 0?ug(e,a):a}function N4(e,t){let n=e.refResolver.getSchema(t,"#");return new hT(n,t,"#")}function cit(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function WM(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Cle(e,t){Ple(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new zxn,rootSchemaId:e.$id||`__fjs_root_${VM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=cit(e,n.rootSchemaId);if(n.refResolver.hasSchema(r)||n.refResolver.addSchema(e,n.rootSchemaId),t.schema)for(let l in t.schema){let d=t.schema[l],f=cit(d,l);n.refResolver.hasSchema(f)||(Ple(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!Zxn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(dit.has(t.largeArrayMechanism))P4=t.largeArrayMechanism;else throw new Error(`Unsupported large array mechanism ${t.largeArrayMechanism}`);if(t.largeArraySize){let l=typeof t.largeArraySize,d;if(l==="string"&&Number.isFinite(d=Number.parseInt(t.largeArraySize,10)))GM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))GM=t.largeArraySize;else if(l==="bigint")GM=Number(t.largeArraySize);else throw new Error(`Unsupported large array size. Expected integer-like, got ${typeof t.largeArraySize} with value ${t.largeArraySize}`)}let i=new hT(e,n.rootSchemaId);sOn(n,i);let s=cc(n,i,"input"),o=` +`,Zxn=new Set(["floor","ceil","round","trunc"]),fit=new Set(["default","json-stringify"]),WM=0;function Nle(e,t){if(!cit(e)){t?t=`"${t}" `:t="";let n=cit.errors[0],r=new Error(`${t}schema is invalid: data${n.instancePath} ${n.message}`);throw r.errors=Nle.errors,r}}function ug(e,t){let n=t.schema.$ref,r=n.indexOf("#");r===-1&&(r=n.length);let i=n.slice(0,r)||t.schemaId,s=n.slice(r)||"#",o=e.refResolver.getSchema(i,s);if(o===null)throw new Error(`Cannot find reference "${n}"`);let a=new hT(o,i,s);return o.$ref!==void 0?ug(e,a):a}function M4(e,t){let n=e.refResolver.getSchema(t,"#");return new hT(n,t,"#")}function uit(e,t){return e.$id&&e.$id.charAt(0)!=="#"?e.$id:t}function KM(e,t){let n=t.getSchemaRef()||"";return n.startsWith(e.rootSchemaId)&&(n=n.replace(e.rootSchemaId,"")||"#"),n}function Mle(e,t){Nle(e),t=t||{};let n={functions:[],functionsCounter:0,functionsNamesBySchema:new Map,options:t,refResolver:new zxn,rootSchemaId:e.$id||`__fjs_root_${WM++}`,validatorSchemasIds:new Set,mergedSchemasIds:new Map,recursiveSchemas:new Set,recursivePaths:new Set,buildingSet:new Set,uid:0},r=uit(e,n.rootSchemaId);if(n.refResolver.hasSchema(r)||n.refResolver.addSchema(e,n.rootSchemaId),t.schema)for(let l in t.schema){let d=t.schema[l],f=uit(d,l);n.refResolver.hasSchema(f)||(Nle(d,l),n.refResolver.addSchema(d,l))}if(t.rounding&&!Zxn.has(t.rounding))throw new Error(`Unsupported integer rounding method ${t.rounding}`);if(t.largeArrayMechanism)if(fit.has(t.largeArrayMechanism))C4=t.largeArrayMechanism;else throw new Error(`Unsupported large array mechanism ${t.largeArrayMechanism}`);if(t.largeArraySize){let l=typeof t.largeArraySize,d;if(l==="string"&&Number.isFinite(d=Number.parseInt(t.largeArraySize,10)))VM=d;else if(l==="number"&&Number.isInteger(t.largeArraySize))VM=t.largeArraySize;else if(l==="bigint")VM=Number(t.largeArraySize);else throw new Error(`Unsupported large array size. Expected integer-like, got ${typeof t.largeArraySize} with value ${t.largeArraySize}`)}let i=new hT(e,n.rootSchemaId);sOn(n,i);let s=cc(n,i,"input"),o=` ${Yxn} const JSON_STR_BEGIN_OBJECT = '{' const JSON_STR_END_OBJECT = '}' @@ -186,7 +186,7 @@ const asInteger = serializer.asInteger.bind(serializer) return main `;let a=new Gxn(t),c=new Vxn(t.ajv);for(let l of n.validatorSchemasIds){let d=n.refResolver.getSchema(l);c.addSchema(d,l);let f=n.refResolver.getSchemaDependencies(l);for(let[p,h]of Object.entries(f))c.addSchema(h,p)}if(t.debugMode&&(t.mode="debug"),t.mode==="debug")return{validator:c,serializer:a,code:`validator serializer -${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode==="standalone"?oit()(u,n,a,c):u(c,a)}var Jxn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],Xxn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],Qxn=["maxLength","minLength","pattern"],$xn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function eOn(e){for(let t of Jxn)if(t in e)return"object";for(let t of Xxn)if(t in e)return"array";for(let t of Qxn)if(t in e)return"string";for(let t of $xn)if(t in e)return"number";return e.type}function tOn(e,t,n,r){let i=t.schema,s=Object.keys(i.properties||{}),o=` +${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode==="standalone"?ait()(u,n,a,c):u(c,a)}var Jxn=["properties","required","additionalProperties","patternProperties","maxProperties","minProperties","dependencies"],Xxn=["items","additionalItems","maxItems","minItems","uniqueItems","contains"],Qxn=["maxLength","minLength","pattern"],$xn=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum"];function eOn(e){for(let t of Jxn)if(t in e)return"object";for(let t of Xxn)if(t in e)return"array";for(let t of Qxn)if(t in e)return"string";for(let t of $xn)if(t in e)return"number";return e.type}function tOn(e,t,n,r){let i=t.schema,s=Object.keys(i.properties||{}),o=` for (const key of Object.keys(${r})) { if ( ${s.length>0?s.map(d=>`key === ${JSON.stringify(d)}`).join(" || ")+" ||":""} @@ -211,7 +211,7 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== ${cc(e,d,"value")} `}return o+=` } - `,o}function uit(e,t,n){let r=t.schema,i=t.getPropertyLocation("properties"),s=r.required||[],o=Object.keys(r.properties||{}).sort((l,d)=>{let f=s.includes(l),p=s.includes(d);return f===p?0:f?-1:1}),a="";for(let l of s)if(!o.includes(l)){let d=JSON.stringify(l);a+=`if (${n}[${d}] === undefined) throw new Error('${d.replace(/'/g,"\\'")} is required!') + `,o}function lit(e,t,n){let r=t.schema,i=t.getPropertyLocation("properties"),s=r.required||[],o=Object.keys(r.properties||{}).sort((l,d)=>{let f=s.includes(l),p=s.includes(d);return f===p?0:f?-1:1}),a="";for(let l of s)if(!o.includes(l)){let d=JSON.stringify(l);a+=`if (${n}[${d}] === undefined) throw new Error('${d.replace(/'/g,"\\'")} is required!') `}a+=`json += JSON_STR_BEGIN_OBJECT `;let c=e.uid++,u="";if(s.length>0){for(let l=0;l ${s.length}) { throw new Error(\`Item at ${s.length} does not match schema definition.\`) } - `),P4==="json-stringify"&&(m+=`if (arrayLength >= ${GM}) return JSON.stringify(obj) + `),C4==="json-stringify"&&(m+=`if (arrayLength >= ${VM}) return JSON.stringify(obj) `),m+=` json += JSON_STR_BEGIN_ARRAY `,Array.isArray(s)){for(let g=0,y=s.length;g ${s.length}) { throw new Error(\`Item at ${s.length} does not match schema definition.\`) } - `),P4==="json-stringify"&&(f+=`if (arrayLength_${d} >= ${GM}) json += JSON.stringify(${d}) + `),C4==="json-stringify"&&(f+=`if (arrayLength_${d} >= ${VM}) json += JSON.stringify(${d}) else {`),f+=` json += JSON_STR_BEGIN_ARRAY `,Array.isArray(s)){let p=e.uid++;f+=`let addComma_${p} = false `;for(let h=0,m=s.length;hNle(i,t)).join(" || ")})`)}return n}function pit(e){return"anonymous"+e.functionsCounter++}function iOn(e,t,n){let i=t.schema.type.sort(o=>o==="null"?-1:1),s="";return i.forEach((o,a)=>{t.schema={...t.schema,type:o};let c=hit(e,t,n),u=a===0?"if":"else if";switch(o){case"null":s+=` + )`;break;case"integer":n=`Number.isInteger(${t})`;break;case"number":n=`Number.isFinite(${t})`;break;case"boolean":n=`typeof ${t} === 'boolean'`;break;case"object":n=`${t} && typeof ${t} === 'object' && ${t}.constructor === Object`;break;case"array":n=`Array.isArray(${t})`;break;default:Array.isArray(e)&&(n=`(${e.map(i=>Cle(i,t)).join(" || ")})`)}return n}function hit(e){return"anonymous"+e.functionsCounter++}function iOn(e,t,n){let i=t.schema.type.sort(o=>o==="null"?-1:1),s="";return i.forEach((o,a)=>{t.schema={...t.schema,type:o};let c=mit(e,t,n),u=a===0?"if":"else if";switch(o){case"null":s+=` ${u} (${n} === null) { ${c} } @@ -388,8 +388,8 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== ${c} } `;break}}}),s+=` - else throw new TypeError(\`The value of '${WM(e,t)}' does not match schema definition.\`) - `,s}function hit(e,t,n){let r=t.schema;switch(r.type){case"null":return"json += JSON_STR_NULL";case"string":return r.format==="date-time"?`json += asDateTime(${n})`:r.format==="date"?`json += asDate(${n})`:r.format==="time"?`json += asTime(${n})`:r.format==="unsafe"?`json += asUnsafeString(${n})`:` + else throw new TypeError(\`The value of '${KM(e,t)}' does not match schema definition.\`) + `,s}function mit(e,t,n){let r=t.schema;switch(r.type){case"null":return"json += JSON_STR_NULL";case"string":return r.format==="date-time"?`json += asDateTime(${n})`:r.format==="date"?`json += asDate(${n})`:r.format==="time"?`json += asTime(${n})`:r.format==="unsafe"?`json += asUnsafeString(${n})`:` if (typeof ${n} !== 'string') { if (${n} === null) { json += JSON_STR_EMPTY_STRING @@ -409,19 +409,19 @@ ${o}`,ajv:c.ajv};let u=new Function("validator","serializer",o);return t.mode=== } else { `),s+=`json += '${JSON.stringify(n.const).replace(Kxn,"\\'")}'`,i&&(s+=` } - `),s}function aOn(e,t,n){let r=t.schema,i=e.mergedSchemasIds.get(r);if(i){let l=N4(e,i);return cc(e,l,n)}i=`__fjs_merged_${VM++}`,e.mergedSchemasIds.set(r,i);let{allOf:s,...o}=t.schema,a=[new hT(o,t.schemaId,t.jsonPointer)],c=t.getPropertyLocation("allOf");for(let l=0,d=s.length;l{"use strict";var lOn=mit();function git(){return function(t,n){let r=Object.assign({},n,{schema:t});return dOn.bind(null,r)}}function dOn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),lOn(t,e)}function yit(e={readMode:!0}){if(e.readMode===!0&&typeof e.restoreFunction!="function")throw new Error("You must provide a function for the restoreFunction-option when readMode ON");if(e.readMode!==!0&&typeof e.storeFunction!="function")throw new Error("You must provide a function for the storeFunction-option when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=git();return function(r,i={}){i.mode="standalone";let s=t(r,i);return function(o){let a=s(o);return e.storeFunction(o,a),new Function(a)}}}M4.exports.SerializerSelector=git;M4.exports.StandaloneSerializer=yit;M4.exports.default=yit});var bit=w((H3r,KM)=>{"use strict";var{SerializerSelector:Mle,StandaloneSerializer:fOn}=Sit();KM.exports=Mle;KM.exports.default=Mle;KM.exports.SerializerSelector=Mle;KM.exports.StandaloneSerializer=fOn});var Dle=w((q3r,Eit)=>{"use strict";var{buildSchemas:pOn}=AM();function hOn(e,t){if(e)return new eI(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=yle();n.buildValidator=i()}if(!n.buildSerializer){let i=bit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||pOn,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new eI(void 0,r)}var eI=class{constructor(t,n){this.opts=n||t?.opts,this.addedSchemas=!1,this.compilersFactory=this.opts.compilersFactory,t?(this.schemaBucket=this.opts.bucket(t.getSchemas()),this.validatorCompiler=t.getValidatorCompiler(),this.serializerCompiler=t.getSerializerCompiler(),this.isCustomValidatorCompiler=t.isCustomValidatorCompiler,this.isCustomSerializerCompiler=t.isCustomSerializerCompiler,this.parent=t):(this.schemaBucket=this.opts.bucket(),this.isCustomValidatorCompiler=this.opts.isCustomValidatorCompiler||!1,this.isCustomSerializerCompiler=this.opts.isCustomSerializerCompiler||!1)}add(t){return this.addedSchemas=!0,this.schemaBucket.add(t)}getSchema(t){return this.schemaBucket.getSchema(t)}getSchemas(){return this.schemaBucket.getSchemas()}setValidatorCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildValidator:()=>t}),this.validatorCompiler=t,this.isCustomValidatorCompiler=!0}setSerializerCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildSerializer:()=>t}),this.serializerCompiler=t,this.isCustomSerializerCompiler=!0}getValidatorCompiler(){return this.validatorCompiler||this.parent&&this.parent.getValidatorCompiler()}getSerializerCompiler(){return this.serializerCompiler||this.parent&&this.parent.getSerializerCompiler()}getSerializerBuilder(){return this.compilersFactory.buildSerializer||this.parent&&this.parent.getSerializerBuilder()}getValidatorBuilder(){return this.compilersFactory.buildValidator||this.parent&&this.parent.getValidatorBuilder()}setupValidator(t){this.validatorCompiler!==void 0&&!this.addedSchemas||(this.validatorCompiler=this.getValidatorBuilder()(this.schemaBucket.getSchemas(),t.ajv))}setupSerializer(t){this.serializerCompiler!==void 0&&!this.addedSchemas||(this.serializerCompiler=this.getSerializerBuilder()(this.schemaBucket.getSchemas(),t.serializerOpts))}};eI.buildSchemaController=hOn;Eit.exports=eI});var YM=w((B3r,_it)=>{"use strict";var mOn="2.0.0",gOn=Number.MAX_SAFE_INTEGER||9007199254740991,yOn=16,SOn=250,bOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];_it.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:yOn,MAX_SAFE_BUILD_LENGTH:SOn,MAX_SAFE_INTEGER:gOn,RELEASE_TYPES:bOn,SEMVER_SPEC_VERSION:mOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var ZM=w((z3r,Tit)=>{"use strict";var EOn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};Tit.exports=EOn});var tI=w((wh,vit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Lle,MAX_SAFE_BUILD_LENGTH:_On,MAX_LENGTH:TOn}=YM(),vOn=ZM();wh=vit.exports={};var ROn=wh.re=[],AOn=wh.safeRe=[],et=wh.src=[],wOn=wh.safeSrc=[],tt=wh.t={},kOn=0,Ule="[a-zA-Z0-9-]",IOn=[["\\s",1],["\\d",TOn],[Ule,_On]],xOn=e=>{for(let[t,n]of IOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=xOn(t),i=kOn++;vOn(e,i,t),tt[e]=i,et[i]=t,wOn[i]=r,ROn[i]=new RegExp(t,n?"g":void 0),AOn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Ule}*`);on("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);on("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);on("PRERELEASEIDENTIFIER",`(?:${et[tt.NONNUMERICIDENTIFIER]}|${et[tt.NUMERICIDENTIFIER]})`);on("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NONNUMERICIDENTIFIER]}|${et[tt.NUMERICIDENTIFIERLOOSE]})`);on("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);on("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);on("BUILDIDENTIFIER",`${Ule}+`);on("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);on("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);on("FULL",`^${et[tt.FULLPLAIN]}$`);on("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);on("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);on("GTLT","((?:<|>)?=?)");on("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);on("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);on("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);on("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);on("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);on("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);on("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Lle}})(?:\\.(\\d{1,${Lle}}))?(?:\\.(\\d{1,${Lle}}))?`);on("COERCE",`${et[tt.COERCEPLAIN]}(?:$|[^\\d])`);on("COERCEFULL",et[tt.COERCEPLAIN]+`(?:${et[tt.PRERELEASE]})?(?:${et[tt.BUILD]})?(?:$|[^\\d])`);on("COERCERTL",et[tt.COERCE],!0);on("COERCERTLFULL",et[tt.COERCEFULL],!0);on("LONETILDE","(?:~>?)");on("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);wh.tildeTrimReplace="$1~";on("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);on("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);on("LONECARET","(?:\\^)");on("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);wh.caretTrimReplace="$1^";on("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);on("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);on("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);on("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);on("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);wh.comparatorTrimReplace="$1$2$3";on("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);on("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);on("STAR","(<|>)?=?\\s*\\*");on("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");on("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var D4=w((G3r,Rit)=>{"use strict";var OOn=Object.freeze({loose:!0}),POn=Object.freeze({}),NOn=e=>e?typeof e!="object"?OOn:e:POn;Rit.exports=NOn});var Fle=w((V3r,kit)=>{"use strict";var Ait=/^[0-9]+$/,wit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:ewit(t,e);kit.exports={compareIdentifiers:wit,rcompareIdentifiers:COn}});var uc=w((W3r,xit)=>{"use strict";var L4=ZM(),{MAX_LENGTH:Iit,MAX_SAFE_INTEGER:U4}=YM(),{safeRe:F4,t:j4}=tI(),MOn=D4(),{compareIdentifiers:jle}=Fle(),Hle=class e{constructor(t,n){if(n=MOn(n),t instanceof e){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Iit)throw new TypeError(`version is longer than ${Iit} characters`);L4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?F4[j4.LOOSE]:F4[j4.FULL]);if(!r)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>U4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>U4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>U4||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&st.major?1:this.minort.minor?1:this.patcht.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let n=0;do{let r=this.prerelease[n],i=t.prerelease[n];if(L4("prerelease compare",n,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return jle(r,i)}while(++n)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let n=0;do{let r=this.build[n],i=t.build[n];if(L4("build compare",n,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return jle(r,i)}while(++n)}inc(t,n,r){if(t.startsWith("pre")){if(!n&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(n){let i=`-${n}`.match(this.options.loose?F4[j4.PRERELEASELOOSE]:F4[j4.PRERELEASE]);if(!i||i[1]!==n)throw new Error(`invalid identifier: ${n}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,r),this.inc("pre",n,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,r),this.inc("pre",n,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(n===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(n){let s=[n,i];r===!1&&(s=[n]),jle(this.prerelease[0],n)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};xit.exports=Hle});var mT=w((K3r,Pit)=>{"use strict";var Oit=uc(),DOn=(e,t,n=!1)=>{if(e instanceof Oit)return e;try{return new Oit(e,t)}catch(r){if(!n)return null;throw r}};Pit.exports=DOn});var Cit=w((Y3r,Nit)=>{"use strict";var LOn=mT(),UOn=(e,t)=>{let n=LOn(e,t);return n?n.version:null};Nit.exports=UOn});var Dit=w((Z3r,Mit)=>{"use strict";var FOn=mT(),jOn=(e,t)=>{let n=FOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};Mit.exports=jOn});var Fit=w((J3r,Uit)=>{"use strict";var Lit=uc(),HOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new Lit(e instanceof Lit?e.version:e,n).inc(t,r,i).version}catch{return null}};Uit.exports=HOn});var qit=w((X3r,Hit)=>{"use strict";var jit=mT(),qOn=(e,t)=>{let n=jit(e,null,!0),r=jit(t,null,!0),i=n.compare(r);if(i===0)return null;let s=i>0,o=s?n:r,a=s?r:n,c=!!o.prerelease.length;if(!!a.prerelease.length&&!c){if(!a.patch&&!a.minor)return"major";if(a.compareMain(o)===0)return a.minor&&!a.patch?"minor":"patch"}let l=c?"pre":"";return n.major!==r.major?l+"major":n.minor!==r.minor?l+"minor":n.patch!==r.patch?l+"patch":"prerelease"};Hit.exports=qOn});var zit=w((Q3r,Bit)=>{"use strict";var BOn=uc(),zOn=(e,t)=>new BOn(e,t).major;Bit.exports=zOn});var Vit=w(($3r,Git)=>{"use strict";var GOn=uc(),VOn=(e,t)=>new GOn(e,t).minor;Git.exports=VOn});var Kit=w((e9r,Wit)=>{"use strict";var WOn=uc(),KOn=(e,t)=>new WOn(e,t).patch;Wit.exports=KOn});var Zit=w((t9r,Yit)=>{"use strict";var YOn=mT(),ZOn=(e,t)=>{let n=YOn(e,t);return n&&n.prerelease.length?n.prerelease:null};Yit.exports=ZOn});var kd=w((n9r,Xit)=>{"use strict";var Jit=uc(),JOn=(e,t,n)=>new Jit(e,n).compare(new Jit(t,n));Xit.exports=JOn});var $it=w((r9r,Qit)=>{"use strict";var XOn=kd(),QOn=(e,t,n)=>XOn(t,e,n);Qit.exports=QOn});var tst=w((i9r,est)=>{"use strict";var $On=kd(),ePn=(e,t)=>$On(e,t,!0);est.exports=ePn});var H4=w((s9r,rst)=>{"use strict";var nst=uc(),tPn=(e,t,n)=>{let r=new nst(e,n),i=new nst(t,n);return r.compare(i)||r.compareBuild(i)};rst.exports=tPn});var sst=w((o9r,ist)=>{"use strict";var nPn=H4(),rPn=(e,t)=>e.sort((n,r)=>nPn(n,r,t));ist.exports=rPn});var ast=w((a9r,ost)=>{"use strict";var iPn=H4(),sPn=(e,t)=>e.sort((n,r)=>iPn(r,n,t));ost.exports=sPn});var JM=w((c9r,cst)=>{"use strict";var oPn=kd(),aPn=(e,t,n)=>oPn(e,t,n)>0;cst.exports=aPn});var q4=w((u9r,ust)=>{"use strict";var cPn=kd(),uPn=(e,t,n)=>cPn(e,t,n)<0;ust.exports=uPn});var qle=w((l9r,lst)=>{"use strict";var lPn=kd(),dPn=(e,t,n)=>lPn(e,t,n)===0;lst.exports=dPn});var Ble=w((d9r,dst)=>{"use strict";var fPn=kd(),pPn=(e,t,n)=>fPn(e,t,n)!==0;dst.exports=pPn});var B4=w((f9r,fst)=>{"use strict";var hPn=kd(),mPn=(e,t,n)=>hPn(e,t,n)>=0;fst.exports=mPn});var z4=w((p9r,pst)=>{"use strict";var gPn=kd(),yPn=(e,t,n)=>gPn(e,t,n)<=0;pst.exports=yPn});var zle=w((h9r,hst)=>{"use strict";var SPn=qle(),bPn=Ble(),EPn=JM(),_Pn=B4(),TPn=q4(),vPn=z4(),RPn=(e,t,n,r)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e===n;case"!==":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e!==n;case"":case"=":case"==":return SPn(e,n,r);case"!=":return bPn(e,n,r);case">":return EPn(e,n,r);case">=":return _Pn(e,n,r);case"<":return TPn(e,n,r);case"<=":return vPn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};hst.exports=RPn});var gst=w((m9r,mst)=>{"use strict";var APn=uc(),wPn=mT(),{safeRe:G4,t:V4}=tI(),kPn=(e,t)=>{if(e instanceof APn)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let n=null;if(!t.rtl)n=e.match(t.includePrerelease?G4[V4.COERCEFULL]:G4[V4.COERCE]);else{let c=t.includePrerelease?G4[V4.COERCERTLFULL]:G4[V4.COERCERTL],u;for(;(u=c.exec(e))&&(!n||n.index+n[0].length!==e.length);)(!n||u.index+u[0].length!==n.index+n[0].length)&&(n=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(n===null)return null;let r=n[2],i=n[3]||"0",s=n[4]||"0",o=t.includePrerelease&&n[5]?`-${n[5]}`:"",a=t.includePrerelease&&n[6]?`+${n[6]}`:"";return wPn(`${r}.${i}.${s}${o}${a}`,t)};mst.exports=kPn});var Sst=w((g9r,yst)=>{"use strict";var Gle=class{constructor(){this.max=1e3,this.map=new Map}get(t){let n=this.map.get(t);if(n!==void 0)return this.map.delete(t),this.map.set(t,n),n}delete(t){return this.map.delete(t)}set(t,n){if(!this.delete(t)&&n!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,n)}return this}};yst.exports=Gle});var Id=w((y9r,Tst)=>{"use strict";var IPn=/\s+/g,Vle=class e{constructor(t,n){if(n=OPn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Wle)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease,this.raw=t.trim().replace(IPn," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(i=>!Est(i[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&UPn(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let n=this.set[t];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=n[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let r=((this.options.includePrerelease&&DPn)|(this.options.loose&&LPn))+":"+t,i=bst.get(r);if(i)return i;let s=this.options.loose,o=s?Wc[lc.HYPHENRANGELOOSE]:Wc[lc.HYPHENRANGE];t=t.replace(o,KPn(this.options.includePrerelease)),Ei("hyphen replace",t),t=t.replace(Wc[lc.COMPARATORTRIM],NPn),Ei("comparator trim",t),t=t.replace(Wc[lc.TILDETRIM],CPn),Ei("tilde trim",t),t=t.replace(Wc[lc.CARETTRIM],MPn),Ei("caret trim",t);let a=t.split(" ").map(d=>FPn(d,this.options)).join(" ").split(/\s+/).map(d=>WPn(d,this.options));s&&(a=a.filter(d=>(Ei("loose invalid filter",d,this.options),!!d.match(Wc[lc.COMPARATORLOOSE])))),Ei("range list",a);let c=new Map,u=a.map(d=>new Wle(d,this.options));for(let d of u){if(Est(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return bst.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>_st(r,n)&&t.set.some(i=>_st(i,n)&&r.every(s=>i.every(o=>s.intersects(o,n)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new PPn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",UPn=e=>e.value==="",_st=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(s=>i.intersects(s,t)),i=r.pop();return n},FPn=(e,t)=>(e=e.replace(Wc[lc.BUILD],""),Ei("comp",e,t),e=qPn(e,t),Ei("caret",e),e=jPn(e,t),Ei("tildes",e),e=zPn(e,t),Ei("xrange",e),e=VPn(e,t),Ei("stars",e),e),Kc=e=>!e||e.toLowerCase()==="x"||e==="*",jPn=(e,t)=>e.trim().split(/\s+/).map(n=>HPn(n,t)).join(" "),HPn=(e,t)=>{let n=t.loose?Wc[lc.TILDELOOSE]:Wc[lc.TILDE];return e.replace(n,(r,i,s,o,a)=>{Ei("tilde",e,r,i,s,o,a);let c;return Kc(i)?c="":Kc(s)?c=`>=${i}.0.0 <${+i+1}.0.0-0`:Kc(o)?c=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:a?(Ei("replaceTilde pr",a),c=`>=${i}.${s}.${o}-${a} <${i}.${+s+1}.0-0`):c=`>=${i}.${s}.${o} <${i}.${+s+1}.0-0`,Ei("tilde return",c),c})},qPn=(e,t)=>e.trim().split(/\s+/).map(n=>BPn(n,t)).join(" "),BPn=(e,t)=>{Ei("caret",e,t);let n=t.loose?Wc[lc.CARETLOOSE]:Wc[lc.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{Ei("caret",e,i,s,o,a,c);let u;return Kc(s)?u="":Kc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Kc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?(Ei("replaceCaret pr",c),s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`):(Ei("no pr"),s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Ei("caret return",u),u})},zPn=(e,t)=>(Ei("replaceXRanges",e,t),e.split(/\s+/).map(n=>GPn(n,t)).join(" ")),GPn=(e,t)=>{e=e.trim();let n=t.loose?Wc[lc.XRANGELOOSE]:Wc[lc.XRANGE];return e.replace(n,(r,i,s,o,a,c)=>{Ei("xRange",e,r,i,s,o,a,c);let u=Kc(s),l=u||Kc(o),d=l||Kc(a),f=d;return i==="="&&f&&(i=""),c=t.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),Ei("xRange return",r),r})},VPn=(e,t)=>(Ei("replaceStars",e,t),e.trim().replace(Wc[lc.STAR],"")),WPn=(e,t)=>(Ei("replaceGTE0",e,t),e.trim().replace(Wc[t.includePrerelease?lc.GTE0PRE:lc.GTE0],"")),KPn=e=>(t,n,r,i,s,o,a,c,u,l,d,f)=>(Kc(r)?n="":Kc(i)?n=`>=${r}.0.0${e?"-0":""}`:Kc(s)?n=`>=${r}.${i}.0${e?"-0":""}`:o?n=`>=${n}`:n=`>=${n}${e?"-0":""}`,Kc(u)?c="":Kc(l)?c=`<${+u+1}.0.0-0`:Kc(d)?c=`<${u}.${+l+1}.0-0`:f?c=`<=${u}.${l}.${d}-${f}`:e?c=`<${u}.${l}.${+d+1}-0`:c=`<=${c}`,`${n} ${c}`.trim()),YPn=(e,t,n)=>{for(let r=0;r0){let i=e[r].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var XM=w((S9r,Ist)=>{"use strict";var QM=Symbol("SemVer ANY"),Zle=class e{static get ANY(){return QM}constructor(t,n){if(n=vst(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Yle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===QM?this.value="":this.value=this.operator+this.semver.version,Yle("comp",this)}parse(t){let n=this.options.loose?Rst[Ast.COMPARATORLOOSE]:Rst[Ast.COMPARATOR],r=t.match(n);if(!r)throw new TypeError(`Invalid comparator: ${t}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new wst(r[2],this.options.loose):this.semver=QM}toString(){return this.value}test(t){if(Yle("Comparator.test",t,this.options.loose),this.semver===QM||t===QM)return!0;if(typeof t=="string")try{t=new wst(t,this.options)}catch{return!1}return Kle(t,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new kst(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new kst(this.value,n).test(t.semver):(n=vst(n),n.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!n.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||Kle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Kle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Ist.exports=Zle;var vst=D4(),{safeRe:Rst,t:Ast}=tI(),Kle=zle(),Yle=ZM(),wst=uc(),kst=Id()});var $M=w((b9r,xst)=>{"use strict";var ZPn=Id(),JPn=(e,t,n)=>{try{t=new ZPn(t,n)}catch{return!1}return t.test(e)};xst.exports=JPn});var Pst=w((E9r,Ost)=>{"use strict";var XPn=Id(),QPn=(e,t)=>new XPn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));Ost.exports=QPn});var Cst=w((_9r,Nst)=>{"use strict";var $Pn=uc(),eNn=Id(),tNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new eNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new $Pn(r,n))}),r};Nst.exports=tNn});var Dst=w((T9r,Mst)=>{"use strict";var nNn=uc(),rNn=Id(),iNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new rNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new nNn(r,n))}),r};Mst.exports=iNn});var Fst=w((v9r,Ust)=>{"use strict";var Jle=uc(),sNn=Id(),Lst=JM(),oNn=(e,t)=>{e=new sNn(e,t);let n=new Jle("0.0.0");if(e.test(n)||(n=new Jle("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new Jle(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Lst(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||Lst(n,s))&&(n=s)}return n&&e.test(n)?n:null};Ust.exports=oNn});var Hst=w((R9r,jst)=>{"use strict";var aNn=Id(),cNn=(e,t)=>{try{return new aNn(e,t).range||"*"}catch{return null}};jst.exports=cNn});var W4=w((A9r,Gst)=>{"use strict";var uNn=uc(),zst=XM(),{ANY:lNn}=zst,dNn=Id(),fNn=$M(),qst=JM(),Bst=q4(),pNn=z4(),hNn=B4(),mNn=(e,t,n,r)=>{e=new uNn(e,r),t=new dNn(t,r);let i,s,o,a,c;switch(n){case">":i=qst,s=pNn,o=Bst,a=">",c=">=";break;case"<":i=Bst,s=hNn,o=qst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(fNn(e,t,r))return!1;for(let u=0;u{p.semver===lNn&&(p=new zst(">=0.0.0")),d=d||p,f=f||p,i(p.semver,d.semver,r)?d=p:o(p.semver,f.semver,r)&&(f=p)}),d.operator===a||d.operator===c||(!f.operator||f.operator===a)&&s(e,f.semver))return!1;if(f.operator===c&&o(e,f.semver))return!1}return!0};Gst.exports=mNn});var Wst=w((w9r,Vst)=>{"use strict";var gNn=W4(),yNn=(e,t,n)=>gNn(e,t,">",n);Vst.exports=yNn});var Yst=w((k9r,Kst)=>{"use strict";var SNn=W4(),bNn=(e,t,n)=>SNn(e,t,"<",n);Kst.exports=bNn});var Xst=w((I9r,Jst)=>{"use strict";var Zst=Id(),ENn=(e,t,n)=>(e=new Zst(e,n),t=new Zst(t,n),e.intersects(t,n));Jst.exports=ENn});var $st=w((x9r,Qst)=>{"use strict";var _Nn=$M(),TNn=kd();Qst.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>TNn(l,d,n));for(let l of o)_Nn(l,t,n)?(s=l,i||(i=l)):(s&&r.push([i,s]),s=null,i=null);i&&r.push([i,null]);let a=[];for(let[l,d]of r)l===d?a.push(l):!d&&l===o[0]?a.push("*"):d?l===o[0]?a.push(`<=${d}`):a.push(`${l} - ${d}`):a.push(`>=${l}`);let c=a.join(" || "),u=typeof t.raw=="string"?t.raw:String(t);return c.length{"use strict";var eot=Id(),Qle=XM(),{ANY:Xle}=Qle,eD=$M(),$le=kd(),vNn=(e,t,n={})=>{if(e===t)return!0;e=new eot(e,n),t=new eot(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=ANn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},RNn=[new Qle(">=0.0.0-0")],tot=[new Qle(">=0.0.0")],ANn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Xle){if(t.length===1&&t[0].semver===Xle)return!0;n.includePrerelease?e=RNn:e=tot}if(t.length===1&&t[0].semver===Xle){if(n.includePrerelease)return!0;t=tot}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=not(i,p,n):p.operator==="<"||p.operator==="<="?s=rot(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=$le(i.semver,s.semver,n),o>0)return null;if(o===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let p of r){if(i&&!eD(p,String(i),n)||s&&!eD(p,String(s),n))return null;for(let h of t)if(!eD(p,String(h),n))return!1;return!0}let a,c,u,l,d=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=i&&!n.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&s.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let p of t){if(l=l||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",i){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(a=not(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!eD(i.semver,String(p),n))return!1}if(s){if(d&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===d.major&&p.semver.minor===d.minor&&p.semver.patch===d.patch&&(d=!1),p.operator==="<"||p.operator==="<="){if(c=rot(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!eD(s.semver,String(p),n))return!1}if(!p.operator&&(s||i)&&o!==0)return!1}return!(i&&u&&!s&&o!==0||s&&l&&!i&&o!==0||f||d)},not=(e,t,n)=>{if(!e)return t;let r=$le(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},rot=(e,t,n)=>{if(!e)return t;let r=$le(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};iot.exports=vNn});var uot=w((P9r,cot)=>{"use strict";var ede=tI(),oot=YM(),wNn=uc(),aot=Fle(),kNn=mT(),INn=Cit(),xNn=Dit(),ONn=Fit(),PNn=qit(),NNn=zit(),CNn=Vit(),MNn=Kit(),DNn=Zit(),LNn=kd(),UNn=$it(),FNn=tst(),jNn=H4(),HNn=sst(),qNn=ast(),BNn=JM(),zNn=q4(),GNn=qle(),VNn=Ble(),WNn=B4(),KNn=z4(),YNn=zle(),ZNn=gst(),JNn=XM(),XNn=Id(),QNn=$M(),$Nn=Pst(),eCn=Cst(),tCn=Dst(),nCn=Fst(),rCn=Hst(),iCn=W4(),sCn=Wst(),oCn=Yst(),aCn=Xst(),cCn=$st(),uCn=sot();cot.exports={parse:kNn,valid:INn,clean:xNn,inc:ONn,diff:PNn,major:NNn,minor:CNn,patch:MNn,prerelease:DNn,compare:LNn,rcompare:UNn,compareLoose:FNn,compareBuild:jNn,sort:HNn,rsort:qNn,gt:BNn,lt:zNn,eq:GNn,neq:VNn,gte:WNn,lte:KNn,cmp:YNn,coerce:ZNn,Comparator:JNn,Range:XNn,satisfies:QNn,toComparators:$Nn,maxSatisfying:eCn,minSatisfying:tCn,minVersion:nCn,validRange:rCn,outside:iCn,gtr:sCn,ltr:oCn,intersects:aCn,simplifyRange:cCn,subset:uCn,SemVer:wNn,re:ede.re,src:ede.src,tokens:ede.t,SEMVER_SPEC_VERSION:oot.SEMVER_SPEC_VERSION,RELEASE_TYPES:oot.RELEASE_TYPES,compareIdentifiers:aot.compareIdentifiers,rcompareIdentifiers:aot.rcompareIdentifiers}});var ode=w((N9r,sde)=>{"use strict";var tde=uot(),rde=K("node:assert"),ide=Symbol.for("registered-plugin"),{kTestInternals:lCn}=$s(),{exist:dCn,existReply:fCn,existRequest:pCn}=xM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:hCn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:mCn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:gCn}=Ko(),yCn=/-(?:rc|pre|alpha).+$/u;function tD(e){return e[Symbol.for("plugin-meta")]}function lot(e){let t=dot(e);if(t)return t;let n=K.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function dot(e){return e[Symbol.for("fastify.display-name")]}function fot(e){return!!e[Symbol.for("skip-override")]}function pot(e){let t=tD(e);if(!t)return;let n=t.dependencies;n&&(rde(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{rde(this[ide].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function hot(e){let t=tD(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&nde(this,"Fastify",n.fastify,r),n.reply&&nde(this,"Reply",n.reply,r),n.request&&nde(this,"Request",n.request,r))}var bCn={Fastify:dCn,Request:pCn,Reply:fCn};function nde(e,t,n,r){rde(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!bCn[t].call(e,i))throw new mCn(i,s,t)})}function ECn(e){let t=tD(e);if(t?.fastify==null)return;let n=t.fastify,r=yCn.test(this.version);if(!(r===!0&&tde.gt(this.version,tde.coerce(n))===!0)&&n&&tde.satisfies(this.version,n,{includePrerelease:r})===!1)throw new hCn(t.name,n,this.version)}function _Cn(e){let t=tD(e);if(!t)return;let n=t.name;if(n)return this[ide].push(n),n}function TCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new gCn(t)}function vCn(e){let t=_Cn.call(this,e)||lot(e);return TCn.call(this,e,t),ECn.call(this,e),hot.call(this,e),pot.call(this,e),fot(e)}sde.exports={getPluginName:lot,getFuncPreview:SCn,kRegisteredPlugins:ide,getDisplayName:dot,registerPlugin:vCn};sde.exports[lCn]={shouldSkipOverride:fot,getMeta:tD,checkDecorators:hot,checkDependencies:pot}});var K4=w((M9r,mot)=>{"use strict";function RCn(e,t){let n=t||wCn();return e?kCn(e,n):n}function ACn(e,t){return e.genReqId(t)}function wCn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function kCn(e,t){return function(n){return n.headers[e]||t(n)}}mot.exports={getGenReqId:ACn,reqIdGenFactory:RCn}});var bot=w((D9r,Sot)=>{"use strict";var got=12,ICn=0,ade=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7];function xCn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=got;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===ICn)return null;if(t+=3,t{"use strict";var Eot=bot(),_ot=/\+/g,Tot=function(){};Tot.prototype=Object.create(null);function PCn(e){let t=new Tot;if(typeof e!="string")return t;let n=e.length,r="",i="",s=-1,o=-1,a=!1,c=!1,u=!1,l=!1,d=!1,f=0;for(let p=0;ps,d||(o=p),r=e.slice(s+1,o),d||r.length>0){u&&(r=r.replace(_ot," ")),a&&(r=Eot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(_ot," ")),c&&(i=Eot(i)||i));let h=t[r];h===void 0?t[r]=i:h.pop?h.push(i):t[r]=[h,i]}i="",s=p,o=p,a=!1,c=!1,u=!1,l=!1}else f===61?o<=s?o=p:c=!0:f===43?o>s?l=!0:u=!0:f===37&&(o>s?c=!0:a=!0);return t}vot.exports=PCn});var wot=w((U9r,Aot)=>{var kh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),NCn=new Int8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0]);function CCn(e){let t=e.length;if(t===0)return"";let n="",r=0,i=0;e:for(;i>6]+kh[128|s&63];continue}if(s<55296||s>=57344){r=i+1,n+=kh[224|s>>12]+kh[128|s>>6&63]+kh[128|s&63];continue}if(++i,i>=t)throw new Error("URI malformed");let o=e.charCodeAt(i)&1023;r=i+1,s=65536+((s&1023)<<10|o),n+=kh[240|s>>18]+kh[128|s>>12&63]+kh[128|s>>6&63]+kh[128|s&63]}return r===0?e:r{"use strict";var{encodeString:cde}=wot();function kot(e){let t=typeof e;return t==="string"?cde(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:cde(""+e):""}function MCn(e){let t="";if(e===null||typeof e!="object")return t;let n="&",r=Object.keys(e),i=r.length,s=0;for(let o=0;o{"use strict";var Oot=Rot(),Pot=xot(),Not={parse:Oot,stringify:Pot};nD.exports=Not;nD.exports.default=Not;nD.exports.parse=Oot;nD.exports.stringify=Pot});var Dot=w(Mot=>{"use strict";Object.defineProperty(Mot,"__esModule",{value:!0})});var Lot=w(rD=>{"use strict";Object.defineProperty(rD,"__esModule",{value:!0});rD.types=void 0;var DCn;(function(e){e[e.ROOT=0]="ROOT",e[e.GROUP=1]="GROUP",e[e.POSITION=2]="POSITION",e[e.SET=3]="SET",e[e.RANGE=4]="RANGE",e[e.REPETITION=5]="REPETITION",e[e.REFERENCE=6]="REFERENCE",e[e.CHAR=7]="CHAR"})(DCn=rD.types||(rD.types={}))});var Fot=w(Uot=>{"use strict";Object.defineProperty(Uot,"__esModule",{value:!0})});var dg=w(lg=>{"use strict";var LCn=lg&&lg.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),ude=lg&&lg.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&LCn(t,e,n)};Object.defineProperty(lg,"__esModule",{value:!0});ude(Dot(),lg);ude(Lot(),lg);ude(Fot(),lg)});var Y4=w(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});dc.anyChar=dc.notWhitespace=dc.whitespace=dc.notInts=dc.ints=dc.notWords=dc.words=void 0;var hr=dg(),jot=()=>[{type:hr.types.RANGE,from:48,to:57}],Hot=()=>[{type:hr.types.CHAR,value:95},{type:hr.types.RANGE,from:97,to:122},{type:hr.types.RANGE,from:65,to:90},{type:hr.types.RANGE,from:48,to:57}],qot=()=>[{type:hr.types.CHAR,value:9},{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:11},{type:hr.types.CHAR,value:12},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:32},{type:hr.types.CHAR,value:160},{type:hr.types.CHAR,value:5760},{type:hr.types.RANGE,from:8192,to:8202},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233},{type:hr.types.CHAR,value:8239},{type:hr.types.CHAR,value:8287},{type:hr.types.CHAR,value:12288},{type:hr.types.CHAR,value:65279}],UCn=()=>[{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233}];dc.words=()=>({type:hr.types.SET,set:Hot(),not:!1});dc.notWords=()=>({type:hr.types.SET,set:Hot(),not:!0});dc.ints=()=>({type:hr.types.SET,set:jot(),not:!1});dc.notInts=()=>({type:hr.types.SET,set:jot(),not:!0});dc.whitespace=()=>({type:hr.types.SET,set:qot(),not:!1});dc.notWhitespace=()=>({type:hr.types.SET,set:qot(),not:!0});dc.anyChar=()=>({type:hr.types.SET,set:UCn(),not:!0})});var zot=w(xd=>{"use strict";var FCn=xd&&xd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),jCn=xd&&xd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),HCn=xd&&xd.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&FCn(t,e,n);return jCn(t,e),t};Object.defineProperty(xd,"__esModule",{value:!0});xd.tokenizeClass=xd.strToChars=void 0;var Bot=dg(),nI=HCn(Y4()),qCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";xd.strToChars=e=>{let t=/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g;return e.replace(t,(n,r,i,s,o,a,c)=>{if(i)return n;let u=r?8:s?parseInt(s,16):o?parseInt(o,16):a?qCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};xd.tokenizeClass=(e,t)=>{var n,r,i,s,o,a,c;let u=[],l,d,f=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(l=f.exec(e))!==null;){let p=(c=(a=(o=(s=(i=(r=(n=l[1]&&nI.words())!==null&&n!==void 0?n:l[2]&&nI.ints())!==null&&r!==void 0?r:l[3]&&nI.whitespace())!==null&&i!==void 0?i:l[4]&&nI.notWords())!==null&&s!==void 0?s:l[5]&&nI.notInts())!==null&&o!==void 0?o:l[6]&&nI.notWhitespace())!==null&&a!==void 0?a:l[7]&&{type:Bot.types.RANGE,from:(l[8]||l[9]).charCodeAt(0),to:(d=l[10]).charCodeAt(d.length-1)})!==null&&c!==void 0?c:(d=l[16])&&{type:Bot.types.CHAR,value:d.charCodeAt(0)};if(p)u.push(p);else return[u,f.lastIndex]}throw new SyntaxError(`Invalid regular expression: /${t}/: Unterminated character class`)}});var lde=w(Ih=>{"use strict";var BCn=Ih&&Ih.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),zCn=Ih&&Ih.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Wot=Ih&&Ih.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&BCn(t,e,n);return zCn(t,e),t};Object.defineProperty(Ih,"__esModule",{value:!0});Ih.tokenizer=void 0;var Got=Wot(zot()),va=dg(),gT=Wot(Y4()),GCn=/^[a-zA-Z_$]$/i,VCn=/^[a-zA-Z0-9_$]$/i,Vot=/\d/;Ih.tokenizer=e=>{let t=0,n,r={type:va.types.ROOT,stack:[]},i=r,s=r.stack,o=[],a=[],c=0,u=d=>{throw new SyntaxError(`Invalid regular expression: /${e}/: Nothing to repeat at column ${d-1}`)},l=Got.strToChars(e);for(;t")throw new SyntaxError(`Invalid regular expression: /${e}/: Unclosed capture group name, expected '>', found '${l[t]}' at column ${t+1}`);d.name=f,t++}else if(n===":")d.remember=!1;else throw new SyntaxError(`Invalid regular expression: /${e}/: Invalid group, character '${n}' after '?' at column ${t-1}`);else c+=1;s.push(d),o.push(i),i=d,s=d.stack;break}case")":if(o.length===0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unmatched ) at column ${t-1}`);i=o.pop(),s=i.options?i.options[i.options.length-1]:i.stack;break;case"|":{i.options||(i.options=[i.stack],delete i.stack);let d=[];i.options.push(d),s=d;break}case"{":{let d=/^(\d+)(,(\d+)?)?\}/.exec(l.slice(t)),f,p;d!==null?(s.length===0&&u(t),f=parseInt(d[1],10),p=d[2]?d[3]?parseInt(d[3],10):1/0:f,t+=d[0].length,s.push({type:va.types.REPETITION,min:f,max:p,value:s.pop()})):s.push({type:va.types.CHAR,value:123});break}case"?":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:0,max:1,value:s.pop()});break;case"+":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:1,max:1/0,value:s.pop()});break;case"*":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:0,max:1/0,value:s.pop()});break;default:s.push({type:va.types.CHAR,value:n.charCodeAt(0)})}if(o.length!==0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unterminated group`);return WCn(a,c),r};function WCn(e,t){for(let n of e.reverse())if(ti){let s=n.stack.splice(n.index+1);for(let o of r.slice(i))n.stack.push({type:va.types.CHAR,value:o.charCodeAt(0)});n.stack.push(...s)}}}}});var Yot=w(fc=>{"use strict";var KCn=fc&&fc.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),YCn=fc&&fc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),ZCn=fc&&fc.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&KCn(t,e,n);return YCn(t,e),t};Object.defineProperty(fc,"__esModule",{value:!0});fc.NOTANYCHAR=fc.WHITESPACE=fc.WORDS=fc.INTS=void 0;var Z4=ZCn(Y4()),Kot=dg();function J4(e){let t={},n=0;for(let r of e)r.type===Kot.types.CHAR&&(t[r.value]=!0),r.type===Kot.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}fc.INTS=J4(Z4.ints().set);fc.WORDS=J4(Z4.words().set);fc.WHITESPACE=J4(Z4.whitespace().set);fc.NOTANYCHAR=J4(Z4.anyChar().set)});var Jot=w(Od=>{"use strict";var JCn=Od&&Od.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),XCn=Od&&Od.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),QCn=Od&&Od.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&JCn(t,e,n);return XCn(t,e),t};Object.defineProperty(Od,"__esModule",{value:!0});Od.writeSetTokens=Od.setChar=void 0;var eK=dg(),X4=QCn(Yot());function $4(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Od.setChar=$4;function Q4(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===eK.types.SET)return!1;let s=i.type===eK.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function Zot(e,t=!1){if(Q4(e.set,X4.INTS))return e.not?"\\D":"\\d";if(Q4(e.set,X4.WORDS))return e.not?"\\W":"\\w";if(e.not&&Q4(e.set,X4.NOTANYCHAR))return".";if(Q4(e.set,X4.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(rI,"__esModule",{value:!0});rI.reconstruct=void 0;var ib=dg(),dde=Jot(),Xot=e=>e.map(rI.reconstruct).join(""),Qot=e=>{if("options"in e)return e.options.map(Xot).join("|");if("stack"in e)return Xot(e.stack);throw new Error("options or stack must be Root or Group token")};rI.reconstruct=e=>{switch(e.type){case ib.types.ROOT:return Qot(e);case ib.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case ib.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case ib.types.REFERENCE:return`\\${e.value}`;case ib.types.SET:return dde.writeSetTokens(e);case ib.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${Qot(e)})`;case ib.types.REPETITION:{let{min:t,max:n}=e,r;return t===0&&n===1?r="?":t===1&&n===1/0?r="+":t===0&&n===1/0?r="*":n===1/0?r=`{${t},}`:t===n?r=`{${t}}`:r=`{${t},${n}}`,`${rI.reconstruct(e.value)}${r}`}case ib.types.RANGE:return`${dde.setChar(e.from)}-${dde.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var hde=w((Pd,tK)=>{"use strict";var eMn=Pd&&Pd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),pde=Pd&&Pd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&eMn(t,e,n)};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.types=void 0;var $ot=dg();Object.defineProperty(Pd,"types",{enumerable:!0,get:function(){return $ot.types}});pde(lde(),Pd);pde(fde(),Pd);var eat=lde(),tMn=fde();pde(dg(),Pd);Pd.default=eat.tokenizer;tK.exports=eat.tokenizer;tK.exports.types=$ot.types;tK.exports.reconstruct=tMn.reconstruct});var tat=w((J9r,nK)=>{"use strict";var nMn=hde(),{types:rMn}=hde();function mde(e,t,n){let r,i,s;if(e.type===rMn.REPETITION&&(n++,t.reps++,n>1||t.reps>t.limit))return!1;let o=e.options||e.value?.options;if(o){for(r=0,s=o.length;r{"use strict";nat.exports={name:"__fmw_internal_strategy_merged_tree_http_method__",storage:function(){let e=new Map;return{get:t=>e.get(t)||null,set:(t,n)=>{e.set(t,n)}}},deriveConstraint:e=>e.method,mustMatchWhenDerived:!0}});var uat=w((Q9r,cat)=>{"use strict";var rat=vC(),iat=rK(),sat=Symbol("treeData");function oat(e,t=""){let n="",r=Object.keys(e);for(let i=0;i{"use strict";var lOn=git();function yit(){return function(t,n){let r=Object.assign({},n,{schema:t});return dOn.bind(null,r)}}function dOn(e,{schema:t}){return e.schema&&t.$id&&e.schema[t.$id]&&(e.schema={...e.schema},delete e.schema[t.$id]),lOn(t,e)}function Sit(e={readMode:!0}){if(e.readMode===!0&&typeof e.restoreFunction!="function")throw new Error("You must provide a function for the restoreFunction-option when readMode ON");if(e.readMode!==!0&&typeof e.storeFunction!="function")throw new Error("You must provide a function for the storeFunction-option when readMode OFF");if(e.readMode===!0)return function(){return function(r){return e.restoreFunction(r)}};let t=yit();return function(r,i={}){i.mode="standalone";let s=t(r,i);return function(o){let a=s(o);return e.storeFunction(o,a),new Function(a)}}}L4.exports.SerializerSelector=yit;L4.exports.StandaloneSerializer=Sit;L4.exports.default=Sit});var Eit=w((H3r,YM)=>{"use strict";var{SerializerSelector:Dle,StandaloneSerializer:fOn}=bit();YM.exports=Dle;YM.exports.default=Dle;YM.exports.SerializerSelector=Dle;YM.exports.StandaloneSerializer=fOn});var Lle=w((q3r,_it)=>{"use strict";var{buildSchemas:pOn}=wM();function hOn(e,t){if(e)return new eI(e,t);let n=Object.assign({buildValidator:null,buildSerializer:null},t?.compilersFactory);if(!n.buildValidator){let i=Sle();n.buildValidator=i()}if(!n.buildSerializer){let i=Eit();n.buildSerializer=i()}let r={bucket:t&&t.bucket||pOn,compilersFactory:n,isCustomValidatorCompiler:typeof t?.compilersFactory?.buildValidator=="function",isCustomSerializerCompiler:typeof t?.compilersFactory?.buildValidator=="function"};return new eI(void 0,r)}var eI=class{constructor(t,n){this.opts=n||t?.opts,this.addedSchemas=!1,this.compilersFactory=this.opts.compilersFactory,t?(this.schemaBucket=this.opts.bucket(t.getSchemas()),this.validatorCompiler=t.getValidatorCompiler(),this.serializerCompiler=t.getSerializerCompiler(),this.isCustomValidatorCompiler=t.isCustomValidatorCompiler,this.isCustomSerializerCompiler=t.isCustomSerializerCompiler,this.parent=t):(this.schemaBucket=this.opts.bucket(),this.isCustomValidatorCompiler=this.opts.isCustomValidatorCompiler||!1,this.isCustomSerializerCompiler=this.opts.isCustomSerializerCompiler||!1)}add(t){return this.addedSchemas=!0,this.schemaBucket.add(t)}getSchema(t){return this.schemaBucket.getSchema(t)}getSchemas(){return this.schemaBucket.getSchemas()}setValidatorCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildValidator:()=>t}),this.validatorCompiler=t,this.isCustomValidatorCompiler=!0}setSerializerCompiler(t){this.compilersFactory=Object.assign({},this.compilersFactory,{buildSerializer:()=>t}),this.serializerCompiler=t,this.isCustomSerializerCompiler=!0}getValidatorCompiler(){return this.validatorCompiler||this.parent&&this.parent.getValidatorCompiler()}getSerializerCompiler(){return this.serializerCompiler||this.parent&&this.parent.getSerializerCompiler()}getSerializerBuilder(){return this.compilersFactory.buildSerializer||this.parent&&this.parent.getSerializerBuilder()}getValidatorBuilder(){return this.compilersFactory.buildValidator||this.parent&&this.parent.getValidatorBuilder()}setupValidator(t){this.validatorCompiler!==void 0&&!this.addedSchemas||(this.validatorCompiler=this.getValidatorBuilder()(this.schemaBucket.getSchemas(),t.ajv))}setupSerializer(t){this.serializerCompiler!==void 0&&!this.addedSchemas||(this.serializerCompiler=this.getSerializerBuilder()(this.schemaBucket.getSchemas(),t.serializerOpts))}};eI.buildSchemaController=hOn;_it.exports=eI});var ZM=w((B3r,Tit)=>{"use strict";var mOn="2.0.0",gOn=Number.MAX_SAFE_INTEGER||9007199254740991,yOn=16,SOn=250,bOn=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Tit.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:yOn,MAX_SAFE_BUILD_LENGTH:SOn,MAX_SAFE_INTEGER:gOn,RELEASE_TYPES:bOn,SEMVER_SPEC_VERSION:mOn,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var JM=w((z3r,vit)=>{"use strict";var EOn=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};vit.exports=EOn});var tI=w((wh,Rit)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Ule,MAX_SAFE_BUILD_LENGTH:_On,MAX_LENGTH:TOn}=ZM(),vOn=JM();wh=Rit.exports={};var ROn=wh.re=[],AOn=wh.safeRe=[],et=wh.src=[],wOn=wh.safeSrc=[],tt=wh.t={},kOn=0,Fle="[a-zA-Z0-9-]",IOn=[["\\s",1],["\\d",TOn],[Fle,_On]],xOn=e=>{for(let[t,n]of IOn)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e},on=(e,t,n)=>{let r=xOn(t),i=kOn++;vOn(e,i,t),tt[e]=i,et[i]=t,wOn[i]=r,ROn[i]=new RegExp(t,n?"g":void 0),AOn[i]=new RegExp(r,n?"g":void 0)};on("NUMERICIDENTIFIER","0|[1-9]\\d*");on("NUMERICIDENTIFIERLOOSE","\\d+");on("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Fle}*`);on("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);on("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);on("PRERELEASEIDENTIFIER",`(?:${et[tt.NONNUMERICIDENTIFIER]}|${et[tt.NUMERICIDENTIFIER]})`);on("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NONNUMERICIDENTIFIER]}|${et[tt.NUMERICIDENTIFIERLOOSE]})`);on("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);on("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);on("BUILDIDENTIFIER",`${Fle}+`);on("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);on("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);on("FULL",`^${et[tt.FULLPLAIN]}$`);on("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);on("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);on("GTLT","((?:<|>)?=?)");on("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);on("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);on("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);on("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);on("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);on("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);on("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Ule}})(?:\\.(\\d{1,${Ule}}))?(?:\\.(\\d{1,${Ule}}))?`);on("COERCE",`${et[tt.COERCEPLAIN]}(?:$|[^\\d])`);on("COERCEFULL",et[tt.COERCEPLAIN]+`(?:${et[tt.PRERELEASE]})?(?:${et[tt.BUILD]})?(?:$|[^\\d])`);on("COERCERTL",et[tt.COERCE],!0);on("COERCERTLFULL",et[tt.COERCEFULL],!0);on("LONETILDE","(?:~>?)");on("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);wh.tildeTrimReplace="$1~";on("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);on("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);on("LONECARET","(?:\\^)");on("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);wh.caretTrimReplace="$1^";on("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);on("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);on("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);on("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);on("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);wh.comparatorTrimReplace="$1$2$3";on("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);on("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);on("STAR","(<|>)?=?\\s*\\*");on("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");on("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var U4=w((G3r,Ait)=>{"use strict";var OOn=Object.freeze({loose:!0}),POn=Object.freeze({}),NOn=e=>e?typeof e!="object"?OOn:e:POn;Ait.exports=NOn});var jle=w((V3r,Iit)=>{"use strict";var wit=/^[0-9]+$/,kit=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:ekit(t,e);Iit.exports={compareIdentifiers:kit,rcompareIdentifiers:COn}});var uc=w((W3r,Oit)=>{"use strict";var F4=JM(),{MAX_LENGTH:xit,MAX_SAFE_INTEGER:j4}=ZM(),{safeRe:H4,t:q4}=tI(),MOn=U4(),{compareIdentifiers:Hle}=jle(),qle=class e{constructor(t,n){if(n=MOn(n),t instanceof e){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>xit)throw new TypeError(`version is longer than ${xit} characters`);F4("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=t.trim().match(n.loose?H4[q4.LOOSE]:H4[q4.FULL]);if(!r)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>j4||this.major<0)throw new TypeError("Invalid major version");if(this.minor>j4||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>j4||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&st.major?1:this.minort.minor?1:this.patcht.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let n=0;do{let r=this.prerelease[n],i=t.prerelease[n];if(F4("prerelease compare",n,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return Hle(r,i)}while(++n)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let n=0;do{let r=this.build[n],i=t.build[n];if(F4("build compare",n,r,i),r===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(r===void 0)return-1;if(r===i)continue;return Hle(r,i)}while(++n)}inc(t,n,r){if(t.startsWith("pre")){if(!n&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(n){let i=`-${n}`.match(this.options.loose?H4[q4.PRERELEASELOOSE]:H4[q4.PRERELEASE]);if(!i||i[1]!==n)throw new Error(`invalid identifier: ${n}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,r),this.inc("pre",n,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,r),this.inc("pre",n,r);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(n===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(n){let s=[n,i];r===!1&&(s=[n]),Hle(this.prerelease[0],n)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Oit.exports=qle});var mT=w((K3r,Nit)=>{"use strict";var Pit=uc(),DOn=(e,t,n=!1)=>{if(e instanceof Pit)return e;try{return new Pit(e,t)}catch(r){if(!n)return null;throw r}};Nit.exports=DOn});var Mit=w((Y3r,Cit)=>{"use strict";var LOn=mT(),UOn=(e,t)=>{let n=LOn(e,t);return n?n.version:null};Cit.exports=UOn});var Lit=w((Z3r,Dit)=>{"use strict";var FOn=mT(),jOn=(e,t)=>{let n=FOn(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};Dit.exports=jOn});var jit=w((J3r,Fit)=>{"use strict";var Uit=uc(),HOn=(e,t,n,r,i)=>{typeof n=="string"&&(i=r,r=n,n=void 0);try{return new Uit(e instanceof Uit?e.version:e,n).inc(t,r,i).version}catch{return null}};Fit.exports=HOn});var Bit=w((X3r,qit)=>{"use strict";var Hit=mT(),qOn=(e,t)=>{let n=Hit(e,null,!0),r=Hit(t,null,!0),i=n.compare(r);if(i===0)return null;let s=i>0,o=s?n:r,a=s?r:n,c=!!o.prerelease.length;if(!!a.prerelease.length&&!c){if(!a.patch&&!a.minor)return"major";if(a.compareMain(o)===0)return a.minor&&!a.patch?"minor":"patch"}let l=c?"pre":"";return n.major!==r.major?l+"major":n.minor!==r.minor?l+"minor":n.patch!==r.patch?l+"patch":"prerelease"};qit.exports=qOn});var Git=w((Q3r,zit)=>{"use strict";var BOn=uc(),zOn=(e,t)=>new BOn(e,t).major;zit.exports=zOn});var Wit=w(($3r,Vit)=>{"use strict";var GOn=uc(),VOn=(e,t)=>new GOn(e,t).minor;Vit.exports=VOn});var Yit=w((e9r,Kit)=>{"use strict";var WOn=uc(),KOn=(e,t)=>new WOn(e,t).patch;Kit.exports=KOn});var Jit=w((t9r,Zit)=>{"use strict";var YOn=mT(),ZOn=(e,t)=>{let n=YOn(e,t);return n&&n.prerelease.length?n.prerelease:null};Zit.exports=ZOn});var kd=w((n9r,Qit)=>{"use strict";var Xit=uc(),JOn=(e,t,n)=>new Xit(e,n).compare(new Xit(t,n));Qit.exports=JOn});var est=w((r9r,$it)=>{"use strict";var XOn=kd(),QOn=(e,t,n)=>XOn(t,e,n);$it.exports=QOn});var nst=w((i9r,tst)=>{"use strict";var $On=kd(),ePn=(e,t)=>$On(e,t,!0);tst.exports=ePn});var B4=w((s9r,ist)=>{"use strict";var rst=uc(),tPn=(e,t,n)=>{let r=new rst(e,n),i=new rst(t,n);return r.compare(i)||r.compareBuild(i)};ist.exports=tPn});var ost=w((o9r,sst)=>{"use strict";var nPn=B4(),rPn=(e,t)=>e.sort((n,r)=>nPn(n,r,t));sst.exports=rPn});var cst=w((a9r,ast)=>{"use strict";var iPn=B4(),sPn=(e,t)=>e.sort((n,r)=>iPn(r,n,t));ast.exports=sPn});var XM=w((c9r,ust)=>{"use strict";var oPn=kd(),aPn=(e,t,n)=>oPn(e,t,n)>0;ust.exports=aPn});var z4=w((u9r,lst)=>{"use strict";var cPn=kd(),uPn=(e,t,n)=>cPn(e,t,n)<0;lst.exports=uPn});var Ble=w((l9r,dst)=>{"use strict";var lPn=kd(),dPn=(e,t,n)=>lPn(e,t,n)===0;dst.exports=dPn});var zle=w((d9r,fst)=>{"use strict";var fPn=kd(),pPn=(e,t,n)=>fPn(e,t,n)!==0;fst.exports=pPn});var G4=w((f9r,pst)=>{"use strict";var hPn=kd(),mPn=(e,t,n)=>hPn(e,t,n)>=0;pst.exports=mPn});var V4=w((p9r,hst)=>{"use strict";var gPn=kd(),yPn=(e,t,n)=>gPn(e,t,n)<=0;hst.exports=yPn});var Gle=w((h9r,mst)=>{"use strict";var SPn=Ble(),bPn=zle(),EPn=XM(),_Pn=G4(),TPn=z4(),vPn=V4(),RPn=(e,t,n,r)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e===n;case"!==":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e!==n;case"":case"=":case"==":return SPn(e,n,r);case"!=":return bPn(e,n,r);case">":return EPn(e,n,r);case">=":return _Pn(e,n,r);case"<":return TPn(e,n,r);case"<=":return vPn(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};mst.exports=RPn});var yst=w((m9r,gst)=>{"use strict";var APn=uc(),wPn=mT(),{safeRe:W4,t:K4}=tI(),kPn=(e,t)=>{if(e instanceof APn)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let n=null;if(!t.rtl)n=e.match(t.includePrerelease?W4[K4.COERCEFULL]:W4[K4.COERCE]);else{let c=t.includePrerelease?W4[K4.COERCERTLFULL]:W4[K4.COERCERTL],u;for(;(u=c.exec(e))&&(!n||n.index+n[0].length!==e.length);)(!n||u.index+u[0].length!==n.index+n[0].length)&&(n=u),c.lastIndex=u.index+u[1].length+u[2].length;c.lastIndex=-1}if(n===null)return null;let r=n[2],i=n[3]||"0",s=n[4]||"0",o=t.includePrerelease&&n[5]?`-${n[5]}`:"",a=t.includePrerelease&&n[6]?`+${n[6]}`:"";return wPn(`${r}.${i}.${s}${o}${a}`,t)};gst.exports=kPn});var bst=w((g9r,Sst)=>{"use strict";var Vle=class{constructor(){this.max=1e3,this.map=new Map}get(t){let n=this.map.get(t);if(n!==void 0)return this.map.delete(t),this.map.set(t,n),n}delete(t){return this.map.delete(t)}set(t,n){if(!this.delete(t)&&n!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,n)}return this}};Sst.exports=Vle});var Id=w((y9r,vst)=>{"use strict";var IPn=/\s+/g,Wle=class e{constructor(t,n){if(n=OPn(n),t instanceof e)return t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease?t:new e(t.raw,n);if(t instanceof Kle)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease,this.raw=t.trim().replace(IPn," "),this.set=this.raw.split("||").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(i=>!_st(i[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&UPn(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let n=this.set[t];for(let r=0;r0&&(this.formatted+=" "),this.formatted+=n[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let r=((this.options.includePrerelease&&DPn)|(this.options.loose&&LPn))+":"+t,i=Est.get(r);if(i)return i;let s=this.options.loose,o=s?Wc[lc.HYPHENRANGELOOSE]:Wc[lc.HYPHENRANGE];t=t.replace(o,KPn(this.options.includePrerelease)),Ei("hyphen replace",t),t=t.replace(Wc[lc.COMPARATORTRIM],NPn),Ei("comparator trim",t),t=t.replace(Wc[lc.TILDETRIM],CPn),Ei("tilde trim",t),t=t.replace(Wc[lc.CARETTRIM],MPn),Ei("caret trim",t);let a=t.split(" ").map(d=>FPn(d,this.options)).join(" ").split(/\s+/).map(d=>WPn(d,this.options));s&&(a=a.filter(d=>(Ei("loose invalid filter",d,this.options),!!d.match(Wc[lc.COMPARATORLOOSE])))),Ei("range list",a);let c=new Map,u=a.map(d=>new Kle(d,this.options));for(let d of u){if(_st(d))return[d];c.set(d.value,d)}c.size>1&&c.has("")&&c.delete("");let l=[...c.values()];return Est.set(r,l),l}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(r=>Tst(r,n)&&t.set.some(i=>Tst(i,n)&&r.every(s=>i.every(o=>s.intersects(o,n)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new PPn(t,this.options)}catch{return!1}for(let n=0;ne.value==="<0.0.0-0",UPn=e=>e.value==="",Tst=(e,t)=>{let n=!0,r=e.slice(),i=r.pop();for(;n&&r.length;)n=r.every(s=>i.intersects(s,t)),i=r.pop();return n},FPn=(e,t)=>(e=e.replace(Wc[lc.BUILD],""),Ei("comp",e,t),e=qPn(e,t),Ei("caret",e),e=jPn(e,t),Ei("tildes",e),e=zPn(e,t),Ei("xrange",e),e=VPn(e,t),Ei("stars",e),e),Kc=e=>!e||e.toLowerCase()==="x"||e==="*",jPn=(e,t)=>e.trim().split(/\s+/).map(n=>HPn(n,t)).join(" "),HPn=(e,t)=>{let n=t.loose?Wc[lc.TILDELOOSE]:Wc[lc.TILDE];return e.replace(n,(r,i,s,o,a)=>{Ei("tilde",e,r,i,s,o,a);let c;return Kc(i)?c="":Kc(s)?c=`>=${i}.0.0 <${+i+1}.0.0-0`:Kc(o)?c=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:a?(Ei("replaceTilde pr",a),c=`>=${i}.${s}.${o}-${a} <${i}.${+s+1}.0-0`):c=`>=${i}.${s}.${o} <${i}.${+s+1}.0-0`,Ei("tilde return",c),c})},qPn=(e,t)=>e.trim().split(/\s+/).map(n=>BPn(n,t)).join(" "),BPn=(e,t)=>{Ei("caret",e,t);let n=t.loose?Wc[lc.CARETLOOSE]:Wc[lc.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,(i,s,o,a,c)=>{Ei("caret",e,i,s,o,a,c);let u;return Kc(s)?u="":Kc(o)?u=`>=${s}.0.0${r} <${+s+1}.0.0-0`:Kc(a)?s==="0"?u=`>=${s}.${o}.0${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.0${r} <${+s+1}.0.0-0`:c?(Ei("replaceCaret pr",c),s==="0"?o==="0"?u=`>=${s}.${o}.${a}-${c} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}-${c} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a}-${c} <${+s+1}.0.0-0`):(Ei("no pr"),s==="0"?o==="0"?u=`>=${s}.${o}.${a}${r} <${s}.${o}.${+a+1}-0`:u=`>=${s}.${o}.${a}${r} <${s}.${+o+1}.0-0`:u=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Ei("caret return",u),u})},zPn=(e,t)=>(Ei("replaceXRanges",e,t),e.split(/\s+/).map(n=>GPn(n,t)).join(" ")),GPn=(e,t)=>{e=e.trim();let n=t.loose?Wc[lc.XRANGELOOSE]:Wc[lc.XRANGE];return e.replace(n,(r,i,s,o,a,c)=>{Ei("xRange",e,r,i,s,o,a,c);let u=Kc(s),l=u||Kc(o),d=l||Kc(a),f=d;return i==="="&&f&&(i=""),c=t.includePrerelease?"-0":"",u?i===">"||i==="<"?r="<0.0.0-0":r="*":i&&f?(l&&(o=0),a=0,i===">"?(i=">=",l?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):i==="<="&&(i="<",l?s=+s+1:o=+o+1),i==="<"&&(c="-0"),r=`${i+s}.${o}.${a}${c}`):l?r=`>=${s}.0.0${c} <${+s+1}.0.0-0`:d&&(r=`>=${s}.${o}.0${c} <${s}.${+o+1}.0-0`),Ei("xRange return",r),r})},VPn=(e,t)=>(Ei("replaceStars",e,t),e.trim().replace(Wc[lc.STAR],"")),WPn=(e,t)=>(Ei("replaceGTE0",e,t),e.trim().replace(Wc[t.includePrerelease?lc.GTE0PRE:lc.GTE0],"")),KPn=e=>(t,n,r,i,s,o,a,c,u,l,d,f)=>(Kc(r)?n="":Kc(i)?n=`>=${r}.0.0${e?"-0":""}`:Kc(s)?n=`>=${r}.${i}.0${e?"-0":""}`:o?n=`>=${n}`:n=`>=${n}${e?"-0":""}`,Kc(u)?c="":Kc(l)?c=`<${+u+1}.0.0-0`:Kc(d)?c=`<${u}.${+l+1}.0-0`:f?c=`<=${u}.${l}.${d}-${f}`:e?c=`<${u}.${l}.${+d+1}-0`:c=`<=${c}`,`${n} ${c}`.trim()),YPn=(e,t,n)=>{for(let r=0;r0){let i=e[r].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var QM=w((S9r,xst)=>{"use strict";var $M=Symbol("SemVer ANY"),Jle=class e{static get ANY(){return $M}constructor(t,n){if(n=Rst(n),t instanceof e){if(t.loose===!!n.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Zle("comparator",t,n),this.options=n,this.loose=!!n.loose,this.parse(t),this.semver===$M?this.value="":this.value=this.operator+this.semver.version,Zle("comp",this)}parse(t){let n=this.options.loose?Ast[wst.COMPARATORLOOSE]:Ast[wst.COMPARATOR],r=t.match(n);if(!r)throw new TypeError(`Invalid comparator: ${t}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new kst(r[2],this.options.loose):this.semver=$M}toString(){return this.value}test(t){if(Zle("Comparator.test",t,this.options.loose),this.semver===$M||t===$M)return!0;if(typeof t=="string")try{t=new kst(t,this.options)}catch{return!1}return Yle(t,this.operator,this.semver,this.options)}intersects(t,n){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Ist(t.value,n).test(this.value):t.operator===""?t.value===""?!0:new Ist(this.value,n).test(t.semver):(n=Rst(n),n.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!n.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||Yle(this.semver,"<",t.semver,n)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Yle(this.semver,">",t.semver,n)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};xst.exports=Jle;var Rst=U4(),{safeRe:Ast,t:wst}=tI(),Yle=Gle(),Zle=JM(),kst=uc(),Ist=Id()});var eD=w((b9r,Ost)=>{"use strict";var ZPn=Id(),JPn=(e,t,n)=>{try{t=new ZPn(t,n)}catch{return!1}return t.test(e)};Ost.exports=JPn});var Nst=w((E9r,Pst)=>{"use strict";var XPn=Id(),QPn=(e,t)=>new XPn(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));Pst.exports=QPn});var Mst=w((_9r,Cst)=>{"use strict";var $Pn=uc(),eNn=Id(),tNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new eNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===-1)&&(r=o,i=new $Pn(r,n))}),r};Cst.exports=tNn});var Lst=w((T9r,Dst)=>{"use strict";var nNn=uc(),rNn=Id(),iNn=(e,t,n)=>{let r=null,i=null,s=null;try{s=new rNn(t,n)}catch{return null}return e.forEach(o=>{s.test(o)&&(!r||i.compare(o)===1)&&(r=o,i=new nNn(r,n))}),r};Dst.exports=iNn});var jst=w((v9r,Fst)=>{"use strict";var Xle=uc(),sNn=Id(),Ust=XM(),oNn=(e,t)=>{e=new sNn(e,t);let n=new Xle("0.0.0");if(e.test(n)||(n=new Xle("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r{let a=new Xle(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Ust(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!n||Ust(n,s))&&(n=s)}return n&&e.test(n)?n:null};Fst.exports=oNn});var qst=w((R9r,Hst)=>{"use strict";var aNn=Id(),cNn=(e,t)=>{try{return new aNn(e,t).range||"*"}catch{return null}};Hst.exports=cNn});var Y4=w((A9r,Vst)=>{"use strict";var uNn=uc(),Gst=QM(),{ANY:lNn}=Gst,dNn=Id(),fNn=eD(),Bst=XM(),zst=z4(),pNn=V4(),hNn=G4(),mNn=(e,t,n,r)=>{e=new uNn(e,r),t=new dNn(t,r);let i,s,o,a,c;switch(n){case">":i=Bst,s=pNn,o=zst,a=">",c=">=";break;case"<":i=zst,s=hNn,o=Bst,a="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(fNn(e,t,r))return!1;for(let u=0;u{p.semver===lNn&&(p=new Gst(">=0.0.0")),d=d||p,f=f||p,i(p.semver,d.semver,r)?d=p:o(p.semver,f.semver,r)&&(f=p)}),d.operator===a||d.operator===c||(!f.operator||f.operator===a)&&s(e,f.semver))return!1;if(f.operator===c&&o(e,f.semver))return!1}return!0};Vst.exports=mNn});var Kst=w((w9r,Wst)=>{"use strict";var gNn=Y4(),yNn=(e,t,n)=>gNn(e,t,">",n);Wst.exports=yNn});var Zst=w((k9r,Yst)=>{"use strict";var SNn=Y4(),bNn=(e,t,n)=>SNn(e,t,"<",n);Yst.exports=bNn});var Qst=w((I9r,Xst)=>{"use strict";var Jst=Id(),ENn=(e,t,n)=>(e=new Jst(e,n),t=new Jst(t,n),e.intersects(t,n));Xst.exports=ENn});var eot=w((x9r,$st)=>{"use strict";var _Nn=eD(),TNn=kd();$st.exports=(e,t,n)=>{let r=[],i=null,s=null,o=e.sort((l,d)=>TNn(l,d,n));for(let l of o)_Nn(l,t,n)?(s=l,i||(i=l)):(s&&r.push([i,s]),s=null,i=null);i&&r.push([i,null]);let a=[];for(let[l,d]of r)l===d?a.push(l):!d&&l===o[0]?a.push("*"):d?l===o[0]?a.push(`<=${d}`):a.push(`${l} - ${d}`):a.push(`>=${l}`);let c=a.join(" || "),u=typeof t.raw=="string"?t.raw:String(t);return c.length{"use strict";var tot=Id(),$le=QM(),{ANY:Qle}=$le,tD=eD(),ede=kd(),vNn=(e,t,n={})=>{if(e===t)return!0;e=new tot(e,n),t=new tot(t,n);let r=!1;e:for(let i of e.set){for(let s of t.set){let o=ANn(i,s,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},RNn=[new $le(">=0.0.0-0")],not=[new $le(">=0.0.0")],ANn=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Qle){if(t.length===1&&t[0].semver===Qle)return!0;n.includePrerelease?e=RNn:e=not}if(t.length===1&&t[0].semver===Qle){if(n.includePrerelease)return!0;t=not}let r=new Set,i,s;for(let p of e)p.operator===">"||p.operator===">="?i=rot(i,p,n):p.operator==="<"||p.operator==="<="?s=iot(s,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(i&&s){if(o=ede(i.semver,s.semver,n),o>0)return null;if(o===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let p of r){if(i&&!tD(p,String(i),n)||s&&!tD(p,String(s),n))return null;for(let h of t)if(!tD(p,String(h),n))return!1;return!0}let a,c,u,l,d=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=i&&!n.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&s.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let p of t){if(l=l||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",i){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(a=rot(i,p,n),a===p&&a!==i)return!1}else if(i.operator===">="&&!tD(i.semver,String(p),n))return!1}if(s){if(d&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===d.major&&p.semver.minor===d.minor&&p.semver.patch===d.patch&&(d=!1),p.operator==="<"||p.operator==="<="){if(c=iot(s,p,n),c===p&&c!==s)return!1}else if(s.operator==="<="&&!tD(s.semver,String(p),n))return!1}if(!p.operator&&(s||i)&&o!==0)return!1}return!(i&&u&&!s&&o!==0||s&&l&&!i&&o!==0||f||d)},rot=(e,t,n)=>{if(!e)return t;let r=ede(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},iot=(e,t,n)=>{if(!e)return t;let r=ede(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};sot.exports=vNn});var lot=w((P9r,uot)=>{"use strict";var tde=tI(),aot=ZM(),wNn=uc(),cot=jle(),kNn=mT(),INn=Mit(),xNn=Lit(),ONn=jit(),PNn=Bit(),NNn=Git(),CNn=Wit(),MNn=Yit(),DNn=Jit(),LNn=kd(),UNn=est(),FNn=nst(),jNn=B4(),HNn=ost(),qNn=cst(),BNn=XM(),zNn=z4(),GNn=Ble(),VNn=zle(),WNn=G4(),KNn=V4(),YNn=Gle(),ZNn=yst(),JNn=QM(),XNn=Id(),QNn=eD(),$Nn=Nst(),eCn=Mst(),tCn=Lst(),nCn=jst(),rCn=qst(),iCn=Y4(),sCn=Kst(),oCn=Zst(),aCn=Qst(),cCn=eot(),uCn=oot();uot.exports={parse:kNn,valid:INn,clean:xNn,inc:ONn,diff:PNn,major:NNn,minor:CNn,patch:MNn,prerelease:DNn,compare:LNn,rcompare:UNn,compareLoose:FNn,compareBuild:jNn,sort:HNn,rsort:qNn,gt:BNn,lt:zNn,eq:GNn,neq:VNn,gte:WNn,lte:KNn,cmp:YNn,coerce:ZNn,Comparator:JNn,Range:XNn,satisfies:QNn,toComparators:$Nn,maxSatisfying:eCn,minSatisfying:tCn,minVersion:nCn,validRange:rCn,outside:iCn,gtr:sCn,ltr:oCn,intersects:aCn,simplifyRange:cCn,subset:uCn,SemVer:wNn,re:tde.re,src:tde.src,tokens:tde.t,SEMVER_SPEC_VERSION:aot.SEMVER_SPEC_VERSION,RELEASE_TYPES:aot.RELEASE_TYPES,compareIdentifiers:cot.compareIdentifiers,rcompareIdentifiers:cot.rcompareIdentifiers}});var ade=w((N9r,ode)=>{"use strict";var nde=lot(),ide=K("node:assert"),sde=Symbol.for("registered-plugin"),{kTestInternals:lCn}=$s(),{exist:dCn,existReply:fCn,existRequest:pCn}=OM(),{FST_ERR_PLUGIN_VERSION_MISMATCH:hCn,FST_ERR_PLUGIN_NOT_PRESENT_IN_INSTANCE:mCn,FST_ERR_PLUGIN_INVALID_ASYNC_HANDLER:gCn}=Ko(),yCn=/-(?:rc|pre|alpha).+$/u;function nD(e){return e[Symbol.for("plugin-meta")]}function dot(e){let t=fot(e);if(t)return t;let n=K.cache;if(n){let r=Object.keys(n);for(let i=0;it.trim()).join(" -- ")}function fot(e){return e[Symbol.for("fastify.display-name")]}function pot(e){return!!e[Symbol.for("skip-override")]}function hot(e){let t=nD(e);if(!t)return;let n=t.dependencies;n&&(ide(Array.isArray(n),"The dependencies should be an array of strings"),n.forEach(r=>{ide(this[sde].indexOf(r)>-1,`The dependency '${r}' of plugin '${t.name}' is not registered`)}))}function mot(e){let t=nD(e);if(!t)return;let{decorators:n,name:r}=t;n&&(n.fastify&&rde(this,"Fastify",n.fastify,r),n.reply&&rde(this,"Reply",n.reply,r),n.request&&rde(this,"Request",n.request,r))}var bCn={Fastify:dCn,Request:pCn,Reply:fCn};function rde(e,t,n,r){ide(Array.isArray(n),"The decorators should be an array of strings"),n.forEach(i=>{let s=typeof r=="string"?` required by '${r}'`:"";if(!bCn[t].call(e,i))throw new mCn(i,s,t)})}function ECn(e){let t=nD(e);if(t?.fastify==null)return;let n=t.fastify,r=yCn.test(this.version);if(!(r===!0&&nde.gt(this.version,nde.coerce(n))===!0)&&n&&nde.satisfies(this.version,n,{includePrerelease:r})===!1)throw new hCn(t.name,n,this.version)}function _Cn(e){let t=nD(e);if(!t)return;let n=t.name;if(n)return this[sde].push(n),n}function TCn(e,t){if(e.constructor.name==="AsyncFunction"&&e.length===3)throw new gCn(t)}function vCn(e){let t=_Cn.call(this,e)||dot(e);return TCn.call(this,e,t),ECn.call(this,e),mot.call(this,e),hot.call(this,e),pot(e)}ode.exports={getPluginName:dot,getFuncPreview:SCn,kRegisteredPlugins:sde,getDisplayName:fot,registerPlugin:vCn};ode.exports[lCn]={shouldSkipOverride:pot,getMeta:nD,checkDecorators:mot,checkDependencies:hot}});var Z4=w((M9r,got)=>{"use strict";function RCn(e,t){let n=t||wCn();return e?kCn(e,n):n}function ACn(e,t){return e.genReqId(t)}function wCn(){let t=0;return function(){return t=t+1&2147483647,`req-${t.toString(36)}`}}function kCn(e,t){return function(n){return n.headers[e]||t(n)}}got.exports={getGenReqId:ACn,reqIdGenFactory:RCn}});var Eot=w((D9r,bot)=>{"use strict";var yot=12,ICn=0,cde=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7];function xCn(e){var t=e.indexOf("%");if(t===-1)return e;for(var n=e.length,r="",i=0,s=0,o=t,a=yot;t>-1&&t>10),56320+(s&1023)),s=0,i=t+3,t=o=e.indexOf("%",i);else{if(a===ICn)return null;if(t+=3,t{"use strict";var _ot=Eot(),Tot=/\+/g,vot=function(){};vot.prototype=Object.create(null);function PCn(e){let t=new vot;if(typeof e!="string")return t;let n=e.length,r="",i="",s=-1,o=-1,a=!1,c=!1,u=!1,l=!1,d=!1,f=0;for(let p=0;ps,d||(o=p),r=e.slice(s+1,o),d||r.length>0){u&&(r=r.replace(Tot," ")),a&&(r=_ot(r)||r),d&&(i=e.slice(o+1,p),l&&(i=i.replace(Tot," ")),c&&(i=_ot(i)||i));let h=t[r];h===void 0?t[r]=i:h.pop?h.push(i):t[r]=[h,i]}i="",s=p,o=p,a=!1,c=!1,u=!1,l=!1}else f===61?o<=s?o=p:c=!0:f===43?o>s?l=!0:u=!0:f===37&&(o>s?c=!0:a=!0);return t}Rot.exports=PCn});var kot=w((U9r,wot)=>{var kh=Array.from({length:256},(e,t)=>"%"+((t<16?"0":"")+t.toString(16)).toUpperCase()),NCn=new Int8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0]);function CCn(e){let t=e.length;if(t===0)return"";let n="",r=0,i=0;e:for(;i>6]+kh[128|s&63];continue}if(s<55296||s>=57344){r=i+1,n+=kh[224|s>>12]+kh[128|s>>6&63]+kh[128|s&63];continue}if(++i,i>=t)throw new Error("URI malformed");let o=e.charCodeAt(i)&1023;r=i+1,s=65536+((s&1023)<<10|o),n+=kh[240|s>>18]+kh[128|s>>12&63]+kh[128|s>>6&63]+kh[128|s&63]}return r===0?e:r{"use strict";var{encodeString:ude}=kot();function Iot(e){let t=typeof e;return t==="string"?ude(e):t==="bigint"?e.toString():t==="boolean"?e?"true":"false":t==="number"&&Number.isFinite(e)?e<1e21?""+e:ude(""+e):""}function MCn(e){let t="";if(e===null||typeof e!="object")return t;let n="&",r=Object.keys(e),i=r.length,s=0;for(let o=0;o{"use strict";var Pot=Aot(),Not=Oot(),Cot={parse:Pot,stringify:Not};rD.exports=Cot;rD.exports.default=Cot;rD.exports.parse=Pot;rD.exports.stringify=Not});var Lot=w(Dot=>{"use strict";Object.defineProperty(Dot,"__esModule",{value:!0})});var Uot=w(iD=>{"use strict";Object.defineProperty(iD,"__esModule",{value:!0});iD.types=void 0;var DCn;(function(e){e[e.ROOT=0]="ROOT",e[e.GROUP=1]="GROUP",e[e.POSITION=2]="POSITION",e[e.SET=3]="SET",e[e.RANGE=4]="RANGE",e[e.REPETITION=5]="REPETITION",e[e.REFERENCE=6]="REFERENCE",e[e.CHAR=7]="CHAR"})(DCn=iD.types||(iD.types={}))});var jot=w(Fot=>{"use strict";Object.defineProperty(Fot,"__esModule",{value:!0})});var dg=w(lg=>{"use strict";var LCn=lg&&lg.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),lde=lg&&lg.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&LCn(t,e,n)};Object.defineProperty(lg,"__esModule",{value:!0});lde(Lot(),lg);lde(Uot(),lg);lde(jot(),lg)});var J4=w(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});dc.anyChar=dc.notWhitespace=dc.whitespace=dc.notInts=dc.ints=dc.notWords=dc.words=void 0;var hr=dg(),Hot=()=>[{type:hr.types.RANGE,from:48,to:57}],qot=()=>[{type:hr.types.CHAR,value:95},{type:hr.types.RANGE,from:97,to:122},{type:hr.types.RANGE,from:65,to:90},{type:hr.types.RANGE,from:48,to:57}],Bot=()=>[{type:hr.types.CHAR,value:9},{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:11},{type:hr.types.CHAR,value:12},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:32},{type:hr.types.CHAR,value:160},{type:hr.types.CHAR,value:5760},{type:hr.types.RANGE,from:8192,to:8202},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233},{type:hr.types.CHAR,value:8239},{type:hr.types.CHAR,value:8287},{type:hr.types.CHAR,value:12288},{type:hr.types.CHAR,value:65279}],UCn=()=>[{type:hr.types.CHAR,value:10},{type:hr.types.CHAR,value:13},{type:hr.types.CHAR,value:8232},{type:hr.types.CHAR,value:8233}];dc.words=()=>({type:hr.types.SET,set:qot(),not:!1});dc.notWords=()=>({type:hr.types.SET,set:qot(),not:!0});dc.ints=()=>({type:hr.types.SET,set:Hot(),not:!1});dc.notInts=()=>({type:hr.types.SET,set:Hot(),not:!0});dc.whitespace=()=>({type:hr.types.SET,set:Bot(),not:!1});dc.notWhitespace=()=>({type:hr.types.SET,set:Bot(),not:!0});dc.anyChar=()=>({type:hr.types.SET,set:UCn(),not:!0})});var Got=w(xd=>{"use strict";var FCn=xd&&xd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),jCn=xd&&xd.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),HCn=xd&&xd.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&FCn(t,e,n);return jCn(t,e),t};Object.defineProperty(xd,"__esModule",{value:!0});xd.tokenizeClass=xd.strToChars=void 0;var zot=dg(),nI=HCn(J4()),qCn="@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";xd.strToChars=e=>{let t=/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g;return e.replace(t,(n,r,i,s,o,a,c)=>{if(i)return n;let u=r?8:s?parseInt(s,16):o?parseInt(o,16):a?qCn.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[c],l=String.fromCharCode(u);return/[[\]{}^$.|?*+()]/.test(l)?`\\${l}`:l})};xd.tokenizeClass=(e,t)=>{var n,r,i,s,o,a,c;let u=[],l,d,f=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(l=f.exec(e))!==null;){let p=(c=(a=(o=(s=(i=(r=(n=l[1]&&nI.words())!==null&&n!==void 0?n:l[2]&&nI.ints())!==null&&r!==void 0?r:l[3]&&nI.whitespace())!==null&&i!==void 0?i:l[4]&&nI.notWords())!==null&&s!==void 0?s:l[5]&&nI.notInts())!==null&&o!==void 0?o:l[6]&&nI.notWhitespace())!==null&&a!==void 0?a:l[7]&&{type:zot.types.RANGE,from:(l[8]||l[9]).charCodeAt(0),to:(d=l[10]).charCodeAt(d.length-1)})!==null&&c!==void 0?c:(d=l[16])&&{type:zot.types.CHAR,value:d.charCodeAt(0)};if(p)u.push(p);else return[u,f.lastIndex]}throw new SyntaxError(`Invalid regular expression: /${t}/: Unterminated character class`)}});var dde=w(Ih=>{"use strict";var BCn=Ih&&Ih.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),zCn=Ih&&Ih.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Kot=Ih&&Ih.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&BCn(t,e,n);return zCn(t,e),t};Object.defineProperty(Ih,"__esModule",{value:!0});Ih.tokenizer=void 0;var Vot=Kot(Got()),va=dg(),gT=Kot(J4()),GCn=/^[a-zA-Z_$]$/i,VCn=/^[a-zA-Z0-9_$]$/i,Wot=/\d/;Ih.tokenizer=e=>{let t=0,n,r={type:va.types.ROOT,stack:[]},i=r,s=r.stack,o=[],a=[],c=0,u=d=>{throw new SyntaxError(`Invalid regular expression: /${e}/: Nothing to repeat at column ${d-1}`)},l=Vot.strToChars(e);for(;t")throw new SyntaxError(`Invalid regular expression: /${e}/: Unclosed capture group name, expected '>', found '${l[t]}' at column ${t+1}`);d.name=f,t++}else if(n===":")d.remember=!1;else throw new SyntaxError(`Invalid regular expression: /${e}/: Invalid group, character '${n}' after '?' at column ${t-1}`);else c+=1;s.push(d),o.push(i),i=d,s=d.stack;break}case")":if(o.length===0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unmatched ) at column ${t-1}`);i=o.pop(),s=i.options?i.options[i.options.length-1]:i.stack;break;case"|":{i.options||(i.options=[i.stack],delete i.stack);let d=[];i.options.push(d),s=d;break}case"{":{let d=/^(\d+)(,(\d+)?)?\}/.exec(l.slice(t)),f,p;d!==null?(s.length===0&&u(t),f=parseInt(d[1],10),p=d[2]?d[3]?parseInt(d[3],10):1/0:f,t+=d[0].length,s.push({type:va.types.REPETITION,min:f,max:p,value:s.pop()})):s.push({type:va.types.CHAR,value:123});break}case"?":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:0,max:1,value:s.pop()});break;case"+":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:1,max:1/0,value:s.pop()});break;case"*":s.length===0&&u(t),s.push({type:va.types.REPETITION,min:0,max:1/0,value:s.pop()});break;default:s.push({type:va.types.CHAR,value:n.charCodeAt(0)})}if(o.length!==0)throw new SyntaxError(`Invalid regular expression: /${e}/: Unterminated group`);return WCn(a,c),r};function WCn(e,t){for(let n of e.reverse())if(ti){let s=n.stack.splice(n.index+1);for(let o of r.slice(i))n.stack.push({type:va.types.CHAR,value:o.charCodeAt(0)});n.stack.push(...s)}}}}});var Zot=w(fc=>{"use strict";var KCn=fc&&fc.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),YCn=fc&&fc.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),ZCn=fc&&fc.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&KCn(t,e,n);return YCn(t,e),t};Object.defineProperty(fc,"__esModule",{value:!0});fc.NOTANYCHAR=fc.WHITESPACE=fc.WORDS=fc.INTS=void 0;var X4=ZCn(J4()),Yot=dg();function Q4(e){let t={},n=0;for(let r of e)r.type===Yot.types.CHAR&&(t[r.value]=!0),r.type===Yot.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}fc.INTS=Q4(X4.ints().set);fc.WORDS=Q4(X4.words().set);fc.WHITESPACE=Q4(X4.whitespace().set);fc.NOTANYCHAR=Q4(X4.anyChar().set)});var Xot=w(Od=>{"use strict";var JCn=Od&&Od.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),XCn=Od&&Od.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),QCn=Od&&Od.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&JCn(t,e,n);return XCn(t,e),t};Object.defineProperty(Od,"__esModule",{value:!0});Od.writeSetTokens=Od.setChar=void 0;var nK=dg(),$4=QCn(Zot());function tK(e){return e===94?"\\^":e===92?"\\\\":e===93?"\\]":e===45?"\\-":String.fromCharCode(e)}Od.setChar=tK;function eK(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let i of e){if(i.type===nK.types.SET)return!1;let s=i.type===nK.types.CHAR?i.value:`${i.from}-${i.to}`;if(r[s])r[s]=!1;else return!1}return!0}function Jot(e,t=!1){if(eK(e.set,$4.INTS))return e.not?"\\D":"\\d";if(eK(e.set,$4.WORDS))return e.not?"\\W":"\\w";if(e.not&&eK(e.set,$4.NOTANYCHAR))return".";if(eK(e.set,$4.WHITESPACE))return e.not?"\\S":"\\s";let n="";for(let i=0;i{"use strict";Object.defineProperty(rI,"__esModule",{value:!0});rI.reconstruct=void 0;var ib=dg(),fde=Xot(),Qot=e=>e.map(rI.reconstruct).join(""),$ot=e=>{if("options"in e)return e.options.map(Qot).join("|");if("stack"in e)return Qot(e.stack);throw new Error("options or stack must be Root or Group token")};rI.reconstruct=e=>{switch(e.type){case ib.types.ROOT:return $ot(e);case ib.types.CHAR:{let t=String.fromCharCode(e.value);return(/[[\\{}$^.|?*+()]/.test(t)?"\\":"")+t}case ib.types.POSITION:return e.value==="^"||e.value==="$"?e.value:`\\${e.value}`;case ib.types.REFERENCE:return`\\${e.value}`;case ib.types.SET:return fde.writeSetTokens(e);case ib.types.GROUP:return`(${e.name?`?<${e.name}>`:e.remember?"":e.followedBy?"?=":e.notFollowedBy?"?!":"?:"}${$ot(e)})`;case ib.types.REPETITION:{let{min:t,max:n}=e,r;return t===0&&n===1?r="?":t===1&&n===1/0?r="+":t===0&&n===1/0?r="*":n===1/0?r=`{${t},}`:t===n?r=`{${t}}`:r=`{${t},${n}}`,`${rI.reconstruct(e.value)}${r}`}case ib.types.RANGE:return`${fde.setChar(e.from)}-${fde.setChar(e.to)}`;default:throw new Error(`Invalid token type ${e}`)}}});var mde=w((Pd,rK)=>{"use strict";var eMn=Pd&&Pd.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),hde=Pd&&Pd.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&eMn(t,e,n)};Object.defineProperty(Pd,"__esModule",{value:!0});Pd.types=void 0;var eat=dg();Object.defineProperty(Pd,"types",{enumerable:!0,get:function(){return eat.types}});hde(dde(),Pd);hde(pde(),Pd);var tat=dde(),tMn=pde();hde(dg(),Pd);Pd.default=tat.tokenizer;rK.exports=tat.tokenizer;rK.exports.types=eat.types;rK.exports.reconstruct=tMn.reconstruct});var nat=w((J9r,iK)=>{"use strict";var nMn=mde(),{types:rMn}=mde();function gde(e,t,n){let r,i,s;if(e.type===rMn.REPETITION&&(n++,t.reps++,n>1||t.reps>t.limit))return!1;let o=e.options||e.value?.options;if(o){for(r=0,s=o.length;r{"use strict";rat.exports={name:"__fmw_internal_strategy_merged_tree_http_method__",storage:function(){let e=new Map;return{get:t=>e.get(t)||null,set:(t,n)=>{e.set(t,n)}}},deriveConstraint:e=>e.method,mustMatchWhenDerived:!0}});var lat=w((Q9r,uat)=>{"use strict";var iat=RC(),sat=sK(),oat=Symbol("treeData");function aat(e,t=""){let n="",r=Object.keys(e);for(let i=0;iaat(t)):typeof e=="symbol"?e.toString():typeof e=="function"?sMn(e):e}function oMn(e,t){if(!t.includeMeta)return{};let n=t.buildPrettyMeta(e),r={},i=t.includeMeta;Array.isArray(i)||(i=Reflect.ownKeys(n));for(let s of i){if(!Object.prototype.hasOwnProperty.call(n,s))continue;let o=s.toString(),a=n[s];if(a!=null){let c=JSON.stringify(aat(a));r[o]=c}}return r}function aMn(e){let t="";for(let[n,r]of Object.entries(e))t+=` -\u2022 (${n}) ${r}`;return t}function cMn(e){let t={...e.opts.constraints},n=t[iat.name];return delete t[iat.name],{...e,method:n,opts:{constraints:t}}}function uMn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=aMn(e.metaData),t}function lMn(e){return e.reduce((t,n)=>{for(let r of t)if(rat(n.opts.constraints,r.opts.constraints)&&rat(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function dMn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(cMn)),r=r.map(i=>(i.metaData=oMn(i,n),i)),n.method===void 0&&(r=lMn(r)),r.map(uMn).join(` -${t}`)}function iK(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[sat]=dMn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))iK(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");iK(i,t,n+s,r)}e.wildcardChild&&iK(e.wildcardChild,t,"*",r)}function fMn(e,t){let n={};return iK(e,n,e.prefix,t),oat(n)}cat.exports={prettyPrintTree:fMn}});var fat=w(($9r,dat)=>{"use strict";var lat=function(){};lat.prototype=Object.create(null);dat.exports={NullObject:lat}});var hat=w((eYr,pat)=>{"use strict";var{NullObject:pMn}=fat(),hMn=rK(),yde=class{constructor(){this.unconstrainedHandler=null,this.constraints=[],this.handlers=[],this.constrainedHandlerStores=null}getMatchingHandler(t){return t===void 0?this.unconstrainedHandler:this._getHandlerMatchingConstraints(t)}addHandler(t,n){let r=n.params,i=n.opts.constraints||{},s={params:r,constraints:i,handler:n.handler,store:n.store||null,_createParamsObject:this._compileCreateParamsObject(r)},o=Object.keys(i);o.length===0&&(this.unconstrainedHandler=s);for(let c of o)this.constraints.includes(c)||(c==="version"?this.constraints.unshift(c):this.constraints.push(c));let a=o.includes(hMn.name);if(!a&&this.handlers.length>=31)throw new Error("find-my-way supports a maximum of 31 route handlers per node when there are constraints, limit reached");this.handlers.push(s),this.handlers.sort((c,u)=>Object.keys(c.constraints).length-Object.keys(u.constraints).length),a||this._compileGetHandlerMatchingConstraints(t,i)}_compileCreateParamsObject(t){let n=[];n.push("const fn = function _createParamsObject (paramsArray) {"),n.push("const params = new NullObject()");for(let r=0;rcat(t)):typeof e=="symbol"?e.toString():typeof e=="function"?sMn(e):e}function oMn(e,t){if(!t.includeMeta)return{};let n=t.buildPrettyMeta(e),r={},i=t.includeMeta;Array.isArray(i)||(i=Reflect.ownKeys(n));for(let s of i){if(!Object.prototype.hasOwnProperty.call(n,s))continue;let o=s.toString(),a=n[s];if(a!=null){let c=JSON.stringify(cat(a));r[o]=c}}return r}function aMn(e){let t="";for(let[n,r]of Object.entries(e))t+=` +\u2022 (${n}) ${r}`;return t}function cMn(e){let t={...e.opts.constraints},n=t[sat.name];return delete t[sat.name],{...e,method:n,opts:{constraints:t}}}function uMn(e){let t=` (${e.method})`,n=e.opts.constraints||{};return Object.keys(n).length!==0&&(t+=" "+JSON.stringify(n)),t+=aMn(e.metaData),t}function lMn(e){return e.reduce((t,n)=>{for(let r of t)if(iat(n.opts.constraints,r.opts.constraints)&&iat(n.metaData,r.metaData))return r.method+=", "+n.method,t;return t.push(n),t},[])}function dMn(e,t,n){let r=e.routes;return n.method===void 0&&(r=r.map(cMn)),r=r.map(i=>(i.metaData=oMn(i,n),i)),n.method===void 0&&(r=lMn(r)),r.map(uMn).join(` +${t}`)}function oK(e,t,n,r){if((e.isLeafNode||r.commonPrefix!==!1)&&(n=n||"(empty root node)",t=t[n]={},e.isLeafNode&&(t[oat]=dMn(e,n,r)),n=""),e.staticChildren)for(let i of Object.values(e.staticChildren))oK(i,t,n+i.prefix,r);if(e.parametricChildren)for(let i of Object.values(e.parametricChildren)){let s=Array.from(i.nodePaths).join("|");oK(i,t,n+s,r)}e.wildcardChild&&oK(e.wildcardChild,t,"*",r)}function fMn(e,t){let n={};return oK(e,n,e.prefix,t),aat(n)}uat.exports={prettyPrintTree:fMn}});var pat=w(($9r,fat)=>{"use strict";var dat=function(){};dat.prototype=Object.create(null);fat.exports={NullObject:dat}});var mat=w((eYr,hat)=>{"use strict";var{NullObject:pMn}=pat(),hMn=sK(),Sde=class{constructor(){this.unconstrainedHandler=null,this.constraints=[],this.handlers=[],this.constrainedHandlerStores=null}getMatchingHandler(t){return t===void 0?this.unconstrainedHandler:this._getHandlerMatchingConstraints(t)}addHandler(t,n){let r=n.params,i=n.opts.constraints||{},s={params:r,constraints:i,handler:n.handler,store:n.store||null,_createParamsObject:this._compileCreateParamsObject(r)},o=Object.keys(i);o.length===0&&(this.unconstrainedHandler=s);for(let c of o)this.constraints.includes(c)||(c==="version"?this.constraints.unshift(c):this.constraints.push(c));let a=o.includes(hMn.name);if(!a&&this.handlers.length>=31)throw new Error("find-my-way supports a maximum of 31 route handlers per node when there are constraints, limit reached");this.handlers.push(s),this.handlers.sort((c,u)=>Object.keys(c.constraints).length-Object.keys(u.constraints).length),a||this._compileGetHandlerMatchingConstraints(t,i)}_compileCreateParamsObject(t){let n=[];n.push("const fn = function _createParamsObject (paramsArray) {"),n.push("const params = new NullObject()");for(let r=0;r{"use strict";var mMn=hat(),lK={STATIC:0,PARAMETRIC:1,WILDCARD:2},sK=class{constructor(){this.isLeafNode=!1,this.routes=null,this.handlerStorage=null}addRoute(t,n){this.routes===null&&(this.routes=[]),this.handlerStorage===null&&(this.handlerStorage=new mMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},oK=class extends sK{constructor(){super(),this.staticChildren={}}findStaticMatchingChild(t,n){let r=this.staticChildren[t.charAt(n)];return r===void 0||!r.matchPrefix(t,n)?null:r}getStaticChild(t,n=0){if(t.length===n)return this;let r=this.findStaticMatchingChild(t,n);return r?r.getStaticChild(t,n+r.prefix.length):null}createStaticChild(t){if(t.length===0)return this;let n=this.staticChildren[t.charAt(0)];if(n){let i=1;for(;i(i.regex&&i.regex.source)===n);return r||null}createParametricChild(t,n,r){let i=this.getParametricChild(t);return i?(i.nodePaths.add(r),i):(i=new cK(t,n,r),this.parametricChildren.push(i),this.parametricChildren.sort((s,o)=>s.isRegex?o.isRegex?s.staticSuffix===null?1:o.staticSuffix===null?-1:o.staticSuffix.endsWith(s.staticSuffix)?1:s.staticSuffix.endsWith(o.staticSuffix)?-1:0:-1:1),i)}getWildcardChild(){return this.wildcardChild}createWildcardChild(){return this.wildcardChild=this.getWildcardChild()||new uK,this.wildcardChild}split(t,n){let r=this.prefix.slice(0,n),i=this.prefix.slice(n);this.prefix=i,this._compilePrefixMatch();let s=new e(r);return s.staticChildren[i.charAt(0)]=this,t.staticChildren[r.charAt(0)]=s,s}getNextNode(t,n,r,i){let s=this.findStaticMatchingChild(t,n),o=0;if(s===null){if(this.parametricChildren.length===0)return this.wildcardChild;s=this.parametricChildren[0],o=1}this.wildcardChild!==null&&r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.wildcardChild});for(let a=this.parametricChildren.length-1;a>=o;a--)r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.parametricChildren[a]});return s}_compilePrefixMatch(){if(this.prefix.length===1){this.matchPrefix=()=>!0;return}let t=[];for(let n=1;n{"use strict";var gMn=K("node:assert");function iD(){if(!(this instanceof iD))return new iD;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}iD.prototype.set=function(e,t){if(typeof e!="string")throw new TypeError("Version should be a string");let[n,r,i]=e.split(".",3);if(isNaN(n))throw new TypeError("Major version must be a numeric value");return n=Number(n),r=Number(r)||0,i=Number(i)||0,n>=this.maxMajor&&(this.maxMajor=n,this.store.set("x",t),this.store.set("*",t),this.store.set("x.x",t),this.store.set("x.x.x",t)),r>=(this.maxMinors[n]||0)&&(this.maxMinors[n]=r,this.store.set(`${n}.x`,t),this.store.set(`${n}.x.x`,t)),i>=(this.maxPatches[`${n}.${r}`]||0)&&(this.maxPatches[`${n}.${r}`]=i,this.store.set(`${n}.${r}.x`,t)),this.store.set(`${n}.${r}.${i}`,t),this};iD.prototype.get=function(e){return this.store.get(e)};yat.exports={name:"version",mustMatchWhenDerived:!0,storage:iD,validate(e){gMn(typeof e=="string","Version should be a string")}}});var Eat=w((rYr,bat)=>{"use strict";var yMn=K("node:assert");function SMn(){let e=new Map,t=[];return{get:n=>{let r=e.get(n);if(r)return r;for(let i of t)if(i.host.test(n))return i.value},set:(n,r)=>{n instanceof RegExp?t.push({host:n,value:r}):e.set(n,r)}}}bat.exports={name:"host",mustMatchWhenDerived:!1,storage:SMn,validate(e){yMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var Tat=w((iYr,_at)=>{"use strict";var bMn=Sat(),EMn=Eat(),Sde=K("node:assert"),bde=class{constructor(t){if(this.strategies={version:bMn,host:EMn},this.strategiesInUse=new Set,this.asyncStrategiesInUse=new Set,t)for(let n of Object.values(t))this.addConstraintStrategy(n)}isStrategyUsed(t){return this.strategiesInUse.has(t)||this.asyncStrategiesInUse.has(t)}hasConstraintStrategy(t){let n=this.strategies[t];return n!==void 0?n.isCustom||this.isStrategyUsed(t):!1}addConstraintStrategy(t){if(Sde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),Sde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),Sde(t.deriveConstraint&&typeof t.deriveConstraint=="function","strategy.deriveConstraint function is required."),this.strategies[t.name]&&this.strategies[t.name].isCustom)throw new Error(`There already exists a custom constraint with the name ${t.name}.`);if(this.isStrategyUsed(t.name))throw new Error(`There already exists a route with ${t.name} constraint.`);t.isCustom=!0,t.isAsync=t.deriveConstraint.length===3,this.strategies[t.name]=t,t.mustMatchWhenDerived&&this.noteUsage({[t.name]:t})}deriveConstraints(t,n,r){let i=this.deriveSyncConstraints(t,n);if(r===void 0)return i;this.deriveAsyncConstraints(i,t,n,r)}deriveSyncConstraints(t,n){}noteUsage(t){if(t){let n=this.strategiesInUse.size;for(let r in t){if(!Object.hasOwn(t,r))continue;this.strategies[r].isAsync?this.asyncStrategiesInUse.add(r):this.strategiesInUse.add(r)}n!==this.strategiesInUse.size&&this._buildDeriveConstraints()}}newStoreForConstraint(t){if(!this.strategies[t])throw new Error(`No strategy registered for constraint key ${t}`);return this.strategies[t].storage()}validateConstraints(t){for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n];if(typeof r>"u")throw new Error("Can't pass an undefined constraint value, must pass null or no key at all");let i=this.strategies[n];if(!i)throw new Error(`No strategy registered for constraint key ${n}`);i.validate&&i.validate(r)}}deriveAsyncConstraints(t,n,r,i){let s=this.asyncStrategiesInUse.size;if(s===0){i(null,t);return}t=t||{};for(let o of this.asyncStrategiesInUse)this.strategies[o].deriveConstraint(n,r,(c,u)=>{if(c!==null){i(c);return}t[o]=u,--s===0&&i(null,t)})}_buildDeriveConstraints(){if(this.strategiesInUse.size===0)return;let t=["return {"];for(let n of this.strategiesInUse){let r=this.strategies[n];r.isCustom?t.push(` ${r.name}: this.strategies.${n}.deriveConstraint(req, ctx),`):n==="version"?t.push(" version: req.headers['accept-version'],"):t.push(" host: req.headers.host || req.headers[':authority'],")}t.push("}"),this.deriveSyncConstraints=new Function("req","ctx",t.join(` -`)).bind(this)}};_at.exports=bde});var Rat=w((sYr,vat)=>{"use strict";var _Mn=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];vat.exports=_Mn});var kat=w((oYr,wat)=>{"use strict";function Aat(e,t){return e===50?t===53?"%":t===51?"#":t===52?"$":t===54?"&":t===66||t===98?"+":t===67||t===99?",":t===70||t===102?"/":null:e===51?t===65||t===97?":":t===66||t===98?";":t===68||t===100?"=":t===70||t===102?"?":null:e===52&&t===48?"@":null}function TMn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ls=K("node:assert"),RMn=Cot(),sI=tat(),Tde=vC(),{prettyPrintTree:AMn}=uat(),{StaticNode:Iat,NODE_TYPES:xat}=gat(),wMn=Tat(),iI=Rat(),Ede=rK(),{safeDecodeURI:Oat,safeDecodeURIComponent:_de}=kat(),Pat=/^https?:\/\/.*?\//,yT=/(\/:[^/()]*?)\?(\/?)/,Nat=/[.*+?^${}()|[\]\\]/g,Cat=/\/\/+/g;if(!sI(Pat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!sI(yT))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!sI(Nat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!sI(Cat))throw new Error("the REMOVE_DUPLICATE_SLASHES_REGEXP is not safe, update this module");function _i(e){if(!(this instanceof _i))return new _i(e);e=e||{},this._opts=e,e.defaultRoute?(Ls(typeof e.defaultRoute=="function","The default route must be a function"),this.defaultRoute=e.defaultRoute):this.defaultRoute=null,e.onBadUrl?(Ls(typeof e.onBadUrl=="function","The bad url handler must be a function"),this.onBadUrl=e.onBadUrl):this.onBadUrl=null,e.buildPrettyMeta?(Ls(typeof e.buildPrettyMeta=="function","buildPrettyMeta must be a function"),this.buildPrettyMeta=e.buildPrettyMeta):this.buildPrettyMeta=kMn,e.querystringParser?(Ls(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:RMn.parse(t),this.caseSensitive=e.caseSensitive===void 0?!0:e.caseSensitive,this.ignoreTrailingSlash=e.ignoreTrailingSlash||!1,this.ignoreDuplicateSlashes=e.ignoreDuplicateSlashes||!1,this.maxParamLength=e.maxParamLength||100,this.allowUnsafeRegex=e.allowUnsafeRegex||!1,this.constrainer=new wMn(e.constraints),this.useSemicolonDelimiter=e.useSemicolonDelimiter||!1,this.routes=[],this.trees={}}_i.prototype.on=function(t,n,r,i,s){typeof r=="function"&&(i!==void 0&&(s=i),i=r,r={}),Ls(typeof n=="string","Path should be a string"),Ls(n.length>0,"The path could not be empty"),Ls(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ls(typeof i=="function","Handler should be a function");let o=n.match(yT);if(o){Ls(n.length===o.index+o[0].length,"Optional Parameter needs to be the last parameter of the path");let u=n.replace(yT,"$1$2"),l=n.replace(yT,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=dK(n)),this.ignoreTrailingSlash&&(n=fK(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ls(typeof u=="string","Method should be a string"),Ls(iI.includes(u),`Method '${u}' is not an http method.`),this._on(u,n,r,i,s,a)};_i.prototype._on=function(t,n,r,i,s){let o={};r.constraints!==void 0&&(Ls(typeof r.constraints=="object"&&r.constraints!==null,"Constraints should be an object"),Object.keys(r.constraints).length!==0&&(o=r.constraints)),this.constrainer.validateConstraints(o),this.constrainer.noteUsage(o),this.trees[t]===void 0&&(this.trees[t]=new Iat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new Iat(""),this.trees[t].staticChildren["/"]=f}let c=this.trees[t],u=c.prefix.length,l=[];for(let f=0;f<=a.length;f++){if(a.charCodeAt(f)===58&&a.charCodeAt(f+1)===58){f++;continue}let p=a.charCodeAt(f)===58&&a.charCodeAt(f+1)!==58,h=a.charCodeAt(f)===42;if(p||h||f===a.length&&f!==u){let m=a.slice(u,f);this.caseSensitive||(m=m.toLowerCase()),m=m.replaceAll("::",":"),m=m.replaceAll("%","%25"),c=c.createStaticChild(m)}if(p){let m=!1,g=!0,y="",b=[],S=f+1;for(let E=S;;E++){let _=a.charCodeAt(E),T=_===40,R=_===45||_===46,A=_===47||E===a.length;if(T||R||A){let x=a.slice(S,E);if(l.push(x),m=m||T||R,T){let N=Lat(a,E),C=a.slice(E,N+1);this.allowUnsafeRegex||Ls(sI(new RegExp(C)),`The regex '${C}' is not safe!`),b.push(Dat(C)),E=N+1,g=!0}else b.push(g?"(.*?)":`(${y}|(?:(?!${y}).)*)`),g=!1;let k=E;for(;E0,"The path could not be empty"),Ls(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ls(typeof r>"u"||typeof r=="object"&&!Array.isArray(r)&&r!==null,"Constraints should be an object or undefined.");let i=n.match(yT);if(i){Ls(n.length===i.index+i[0].length,"Optional Parameter needs to be the last parameter of the path");let o=n.replace(yT,"$1$2"),a=n.replace(yT,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=dK(n)),this.ignoreTrailingSlash&&(n=fK(n));let s=Array.isArray(t)?t:[t];for(let o of s)this._off(o,n,r)};_i.prototype._off=function(t,n,r){Ls(typeof t=="string","Method should be a string"),Ls(iI.includes(t),`Method '${t}' is not an http method.`);function i(c){return t!==c.method||n!==c.path}function s(c){return i(c)||!Tde(r,c.opts.constraints||{})}let o=r?s:i,a=this.routes.filter(o);this._rebuild(a)};_i.prototype.lookup=function(t,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i===void 0){let s=this.constrainer.deriveConstraints(t,r),o=this.find(t.method,t.url,s);return this.callHandler(o,t,n,r)}this.constrainer.deriveConstraints(t,r,(s,o)=>{if(s!==null){i(s);return}try{let a=this.find(t.method,t.url,o),c=this.callHandler(a,t,n,r);i(null,c)}catch(a){i(a)}})};_i.prototype.callHandler=function(t,n,r,i){return t===null?this._defaultRoute(n,r,i):i===void 0?t.handler(n,r,t.params,t.store,t.searchParams):t.handler.call(i,n,r,t.params,t.store,t.searchParams)};_i.prototype.find=function(t,n,r){let i=this.trees[t];if(i===void 0)return null;n.charCodeAt(0)!==47&&(n=n.replace(Pat,"/")),this.ignoreDuplicateSlashes&&(n=dK(n));let s,o,a;try{s=Oat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=fK(n));let c=n;this.caseSensitive===!1&&(n=n.toLowerCase());let u=this.maxParamLength,l=i.prefix.length,d=[],f=n.length,p=[];for(;;){if(l===f&&i.isLeafNode){let y=i.handlerStorage.getMatchingHandler(r);if(y!==null)return{handler:y.handler,store:y.store,params:y._createParamsObject(d),searchParams:this.querystringParser(o)}}let h=i.getNextNode(n,l,p,d.length);if(h===null){if(p.length===0)return null;let y=p.pop();l=y.brotherPathIndex,d.splice(y.paramsCount),h=y.brotherNode}if(i=h,i.kind===xat.STATIC){l+=i.prefix.length;continue}if(i.kind===xat.WILDCARD){let y=c.slice(l);a&&(y=_de(y)),d.push(y),l=f;continue}let m=c.indexOf("/",l);m===-1&&(m=f);let g=c.slice(l,m);if(a&&(g=_de(g)),i.isRegex){let y=i.regex.exec(g);if(y===null)continue;for(let b=1;bu)return null;d.push(S)}}else{if(g.length>u)return null;d.push(g)}l=m}};_i.prototype._rebuild=function(e){this.reset();for(let t of e){let{method:n,path:r,opts:i,handler:s,store:o}=t;this._on(n,r,i,s,o)}};_i.prototype._defaultRoute=function(e,t,n){if(this.defaultRoute!==null)return n===void 0?this.defaultRoute(e,t):this.defaultRoute.call(n,e,t);t.statusCode=404,t.end()};_i.prototype._onBadUrl=function(e){if(this.onBadUrl===null)return null;let t=this.onBadUrl;return{handler:(n,r,i)=>t(e,n,r),params:{},store:null}};_i.prototype.prettyPrint=function(e={}){let t=e.method;e.buildPrettyMeta=this.buildPrettyMeta.bind(this);let n=null;if(t===void 0){let{version:r,host:i,...s}=this.constrainer.strategies;s[Ede.name]=Ede;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[Ede.name]:c.method};return{...c,method:"MERGED",opts:{constraints:u}}});o._rebuild(a),n=o.trees.MERGED}else n=this.trees[t];return n==null?"(empty tree)":AMn(n,e)};for(let e in iI){if(!iI.hasOwnProperty(e))continue;let t=iI[e],n=t.toLowerCase();_i.prototype[n]=function(r,i,s){return this.on(t,r,i,s)}}_i.prototype.all=function(e,t,n){this.on(iI,e,t,n)};_i.sanitizeUrlPath=function(t,n){let r=Oat(t,n);return r.shouldDecodeParam?_de(r.path):r.path};_i.removeDuplicateSlashes=dK;_i.trimLastSlash=fK;Uat.exports=_i;function Mat(e){return e.replace(Nat,"\\$&")}function dK(e){return e.indexOf("//")!==-1?e.replace(Cat,"/"):e}function fK(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Dat(e){return e.charCodeAt(1)===94&&(e=e.slice(0,1)+e.slice(2)),e.charCodeAt(e.length-2)===36&&(e=e.slice(0,e.length-2)+e.slice(e.length-1)),e}function Lat(e,t){let n=1;for(;t{"use strict";function Rde(e,t,n,r){if(n===void 0){t.header("content-length","0"),r(null,null);return}if(typeof n.resume=="function"){n.on("error",s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),n.resume(),r(null,null);return}if(typeof n.getReader=="function"){n.cancel("Stream cancelled by HEAD route").catch(s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),r(null,null);return}let i=""+Buffer.byteLength(n);t.header("content-length",i),r(null,null)}function IMn(e){return e==null?Rde:Array.isArray(e)?[...e,Rde]:[e,Rde]}Fat.exports={parseHeadOnSendHandlers:IMn}});var sct=w((uYr,ict)=>{"use strict";var xMn=vde(),OMn=S4(),Hat=Sce(),{onRequestAbortHookRunner:PMn,lifecycleHooks:qat,preParsingHookRunner:NMn,onTimeoutHookRunner:CMn,onRequestHookRunner:MMn}=YS(),{normalizeSchema:DMn}=AM(),{parseHeadOnSendHandlers:LMn}=jat(),{compileSchemasForValidation:UMn,compileSchemasForSerialization:FMn}=hce(),{FST_ERR_SCH_VALIDATION_BUILD:jMn,FST_ERR_SCH_SERIALIZATION_BUILD:HMn,FST_ERR_DUPLICATED_ROUTE:qMn,FST_ERR_INVALID_URL:BMn,FST_ERR_HOOK_INVALID_HANDLER:Bat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:zMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:GMn,FST_ERR_ROUTE_HANDLER_NOT_FN:zat,FST_ERR_ROUTE_MISSING_HANDLER:VMn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:WMn,FST_ERR_ROUTE_METHOD_INVALID:KMn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:YMn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:ZMn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:JMn,FST_ERR_HANDLER_TIMEOUT:XMn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:Ade}=Ko(),{kRoutePrefix:QMn,kSupportedHTTPMethods:Ide,kLogLevel:$Mn,kLogSerializers:Gat,kHooks:Vat,kSchemaController:eDn,kOptions:Wat,kReplySerializerDefault:wde,kReplyIsError:nct,kRequestPayloadStream:tDn,kDisableRequestLogging:Kat,kSchemaErrorFormatter:nDn,kErrorHandler:Yat,kHasBeenDecorated:Zat,kRequestAcceptVersion:kde,kRouteByFastify:rDn,kRouteContext:Jat,kRequestSignal:iDn,kTimeoutTimer:Xat,kOnAbort:sDn}=$s(),{buildErrorHandler:oDn}=wM(),{createChildLogger:aDn}=RM(),{getGenReqId:cDn}=K4(),{FSTDEP022:uDn}=Pk(),Qat=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function lDn(e){let t=xMn(e),n,r,i,s,o,a,c,u,l,d,f,p,h,m=!1;return{setup(A,x){n=x.avvio,r=x.fourOhFour,i=A.logger,s=x.hasLogger,o=x.setupResponseListeners,a=x.throwIfAlreadyStarted,p=A.exposeHeadRoutes,c=A.disableRequestLogging,typeof c=="function"&&(u=A.disableRequestLogging),l=A.routerOptions.ignoreTrailingSlash,d=A.routerOptions.ignoreDuplicateSlashes,f=Object.hasOwn(A,"return503OnClosing")?A.return503OnClosing:!0,h=x.keepAliveConnections},routing:t.lookup.bind(t),route:T,hasRoute:E,prepareRoute:S,routeHandler:R,closeRoutes:()=>{m=!0},printRoutes:t.prettyPrint.bind(t),addConstraintStrategy:g,hasConstraintStrategy:y,isAsyncConstraint:b,findRoute:_};function g(A){return a("Cannot add constraint strategy!"),t.addConstraintStrategy(A)}function y(A){return t.hasConstraintStrategy(A)}function b(){return t.constrainer.asyncStrategiesInUse.size>0}function S({method:A,url:x,options:k,handler:P,isFastify:N}){if(typeof x!="string")throw new BMn(typeof x);if(!P&&typeof k=="function")P=k,k={};else if(P&&typeof P=="function"){if(Object.prototype.toString.call(k)!=="[object Object]")throw new zMn(A,x);if(k.handler)throw typeof k.handler=="function"?new GMn(A,x):new zat(A,x)}return k=Object.assign({},k,{method:A,url:x,path:x,handler:P||k&&k.handler}),T.call(this,{options:k,isFastify:N})}function E({options:A}){let x=A.method?.toUpperCase()??"";return t.hasRoute(x,A.url||"",A.constraints)}function _(A){let x=t.find(A.method,A.url||"",A.constraints);return x?{handler:x.handler,params:x.params,searchParams:x.searchParams}:null}function T({options:A,isFastify:x}){a("Cannot add route!");let k={...A},P=k.url||k.path||"";if(!k.handler)throw new VMn(k.method,P);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new zat(k.method,P);rct(k.bodyLimit),pDn(k.handlerTimeout);let N=k.exposeHeadRoute??p,C=!1,L=!1;if(Array.isArray(k.method))for(let q=0;q0&&k.method!=="HEAD")switch(k.prefixTrailingSlash){case"slash":$.call(this,{path:P,isFastify:x});break;case"no-slash":$.call(this,{path:"",isFastify:x});break;default:$.call(this,{path:"",isFastify:x}),l!==!0&&(d!==!0||!W.endsWith("/"))&&$.call(this,{path:P,prefixing:!0,isFastify:x})}else P[0]==="/"&&W.endsWith("/")?$.call(this,{path:P.slice(1),isFastify:x}):$.call(this,{path:P,isFastify:x});return this;function $({path:q,prefixing:Q=!1,isFastify:B=!1}){let F=W+q;if(k.url=F,k.path=F,k.routePath=q,k.prefix=W,k.logLevel=k.logLevel||this[$Mn],(this[Gat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Gat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),Q===!1)for(let Y of this[Vat].onRoute)Y.call(this,k);for(let Y of qat)if(k&&Y in k){if(Array.isArray(k[Y]))for(let ee of k[Y]){if(typeof ee!="function")throw new Bat(Y,Object.prototype.toString.call(ee));if(Y==="onSend"||Y==="preSerialization"||Y==="onError"||Y==="preParsing"){if(ee.constructor.name==="AsyncFunction"&&ee.length===4)throw new Ade}else if(Y==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new Ade}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new Ade}else if(k[Y]!==void 0&&typeof k[Y]!="function")throw new Bat(Y,Object.prototype.toString.call(k[Y]))}let V=k.constraints||{},U={...k.config,url:F,method:k.method},M=new OMn({schema:k.schema,handler:k.handler.bind(this),config:U,errorHandler:k.errorHandler,childLoggerFactory:k.childLoggerFactory,bodyLimit:k.bodyLimit,logLevel:k.logLevel,logSerializers:k.logSerializers,attachValidation:k.attachValidation,schemaErrorFormatter:k.schemaErrorFormatter,replySerializer:this[wde],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:N,prefixTrailingSlash:k.prefixTrailingSlash||"both",server:this,isFastify:B,handlerTimeout:k.handlerTimeout}),j=t.findRoute("HEAD",k.url,V)!==null;try{t.on(k.method,k.url,{constraints:V},R,M)}catch(Y){if(!M[rDn])throw Y.message.includes(`Method '${k.method}' already declared for route`)?new qMn(k.method,k.url):Y}if(this.after((Y,ee)=>{M.errorHandler=k.errorHandler?oDn(this[Yat],k.errorHandler):this[Yat],M._parserOptions.limit=k.bodyLimit||null,M.logLevel=k.logLevel,M.logSerializers=k.logSerializers,M.attachValidation=k.attachValidation,M[wde]=this[wde],M.schemaErrorFormatter=k.schemaErrorFormatter||this[nDn]||M.schemaErrorFormatter,n.once("preReady",()=>{for(let se of qat){let Le=this[Vat][se].concat(k[se]||[]).map(Ae=>Ae.bind(this));M[se]=Le.length?Le:null}for(;!M.Request[Zat]&&M.Request.parent;)M.Request=M.Request.parent;for(;!M.Reply[Zat]&&M.Reply.parent;)M.Reply=M.Reply.parent;if(r.setContext(this,M),k.schema){M.schema=DMn(M.schema,this.initialConfig);let se=this[eDn],Le=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Le&&se.setupValidator(this[Wat]);try{let Ae=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;UMn(M,k.validatorCompiler||se.validatorCompiler,Ae)}catch(Ae){throw new jMn(k.method,F,Ae.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[Wat]);try{FMn(M,k.serializerCompiler||se.serializerCompiler)}catch(Ae){throw new HMn(k.method,F,Ae.message)}}}),ee(Y)}),N&&C&&!L&&!j){let Y=LMn(G.onSend);S.call(this,{method:"HEAD",url:q,options:{...G,onSend:Y},isFastify:!0})}}}function R(A,x,k,P,N){let C=cDn(P.server,A),L={level:P.logLevel};P.logSerializers&&(L.serializers=P.logSerializers);let G=aDn(P,i,A,C,L);if(G[Kat]=u?!1:c,m===!0&&(A.httpVersionMajor!==2&&x.setHeader("Connection","close"),f)){let F={"Content-Type":"application/json","Content-Length":"80"};x.writeHead(503,F),x.end('{"error":"Service Unavailable","message":"Service Unavailable","statusCode":503}'),G.info({res:{statusCode:503}},"request aborted - refusing to accept new requests as server is closing");return}String.prototype.toLowerCase.call(A.headers.connection||"")==="keep-alive"&&h.has(A.socket)===!1&&(h.add(A.socket),A.socket.on("close",mDn.bind({keepAliveConnections:h,socket:A.socket}))),A.headers[kde]!==void 0&&(A.headers["accept-version"]=A.headers[kde],A.headers[kde]=void 0);let $=new P.Request(C,k,A,N,G,P),q=new P.Reply(x,$,G),Q=u?u($):c;G[Kat]=Q,Q===!1&&G.info({req:$},"incoming request");let B=P.handlerTimeout;if(B>0){let F=new AbortController;$[iDn]=F,$[Xat]=setTimeout(()=>{if(!q.sent){let U=new XMn(B,P.config?.url);F.abort(U),q[nct]=!0,q.send(U)}},B);let V=()=>{F.signal.aborted||F.abort(),clearTimeout($[Xat])};A.on("close",V),$[sDn]=V}(s===!0||P.onResponse!==null||B>0)&&o(q),P.onRequest!==null?MMn(P.onRequest,$,q,tct):tct(null,$,q),P.onRequestAbort!==null&&A.on("close",()=>{A.aborted&&PMn(P.onRequestAbort,$,dDn.bind(null,q))}),P.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",fDn),$.raw.socket._meta={context:P,request:$,reply:q})}}function dDn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function fDn(){let{context:e,request:t,reply:n}=this._meta;CMn(e.onTimeout,t,n,gDn)}function $at(e){if(typeof e!="string")throw new KMn;if(e=e.toUpperCase(),!this[Ide].bodyless.has(e)&&!this[Ide].bodywith.has(e))throw new WMn(e);return e}function ect(e,t,n){if(this[Ide].bodyless.has(e)&&n?.body)throw new YMn(e,t)}function rct(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new ZMn(e)}function pDn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new JMn(e)}function tct(e,t,n){if(n.sent!==!0){if(e!=null){n[nct]=!0,n.send(e);return}t[tDn]=t.raw,t[Jat].preParsing!==null?NMn(t[Jat].preParsing,t,n,Hat.bind(t.server)):Hat.call(t.server,null,t,n)}}function hDn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=Qat.filter(i=>Object.hasOwn(e,i));r.length>0&&uDn(r.join(", "));for(let i of Qat)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function mDn(){this.keepAliveConnections.delete(this.socket)}function gDn(){}ict.exports={buildRouting:lDn,validateBodyLimitOption:rct,buildRouterOptions:hDn}});var fct=w((lYr,dct)=>{"use strict";var yDn=vde(),oct=d4(),act=y4(),SDn=S4(),{kRoutePrefix:bDn,kCanSetNotFoundHandler:sD,kFourOhFourLevelInstance:oD,kFourOhFourContext:xh,kHooks:EDn,kErrorHandler:cct}=$s(),{lifecycleHooks:_Dn}=YS(),{buildErrorHandler:TDn}=wM(),{FST_ERR_NOT_FOUND:vDn}=Ko(),{createChildLogger:uct}=RM(),{getGenReqId:lct}=K4();function RDn(e){let{logger:t,disableRequestLogging:n}=e,r=yDn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[oD]=f,f[sD]=!0,r.onBadUrl=r.onBadUrl.bind(f),r.defaultRoute=r.defaultRoute.bind(f)}function o(f,p){let{url:h,method:m}=f.raw,g=`Route ${m}:${h} not found`;(typeof n=="function"?n(f.raw):n)||f.log.info(g),p.code(404).send({message:g,error:"Not Found",statusCode:404})}function a(){return function(p,h,m){let g=this[oD][xh],y=lct(g.server,h),b=uct(g,t,h,y),S=new act(y,null,h,null,b,g),E=new oct(m,S,b);i(S,E)}}function c(f,p){let h=Object.assign({},f[xh]);h.onSend=p.onSend,p[xh]=h}function u(f,p,h,m){this[sD]===void 0&&(this[sD]=!0),this[xh]===void 0&&(this[xh]=null);let g=this,y=this[bDn]||"/";if(this[sD]===!1)throw new Error(`Not found handler already set for Fastify instance with prefix: '${y}'`);typeof f=="object"&&(f.preHandler&&(Array.isArray(f.preHandler)?f.preHandler=f.preHandler.map(b=>b.bind(g)):f.preHandler=f.preHandler.bind(g)),f.preValidation&&(Array.isArray(f.preValidation)?f.preValidation=f.preValidation.map(b=>b.bind(g)):f.preValidation=f.preValidation.bind(g))),typeof f=="function"&&(p=f,f=void 0),f=f||{},p?(this[oD][sD]=!1,p=p.bind(this),i=p):(p=o,i=o),this.after((b,S)=>{l.call(this,y,f,p,h,m),S(b)})}function l(f,p,h,m,g){let y=new SDn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let b=this[xh];for(let S of _Dn){let E=this[EDn][S].concat(p[S]||[]).map(_=>_.bind(this));b[S]=E.length?E:null}b.errorHandler=p.errorHandler?TDn(this[cct],p.errorHandler):this[cct]}),this[xh]!==null&&f==="/"){Object.assign(this[xh],y);return}this[oD][xh]=y,r.all(f+(f.endsWith("/")?"*":"/*"),g,y),r.all(f,g,y)}function d(f,p){let h=this[oD][xh],m=lct(h.server,f),g=uct(h,t,f,m);g.info({req:f},"incoming request");let y=new act(m,null,f,null,g,h),b=new oct(p,y,g);y.log.warn("the default handler for 404 did not catch this, this is likely a fastify bug, please report it"),y.log.warn(r.prettyPrint()),b.code(404).send(new vDn)}}dct.exports=RDn});var pct=w((dYr,pK)=>{"use strict";pK.exports=qn;pK.exports.default=qn;var ADn={type:"object",additionalProperties:!1,properties:{connectionTimeout:{type:"integer",default:0},keepAliveTimeout:{type:"integer",default:72e3},forceCloseConnections:{oneOf:[{type:"string",pattern:"idle"},{type:"boolean"}]},maxRequestsPerSocket:{type:"integer",default:0,nullable:!0},requestTimeout:{type:"integer",default:0},handlerTimeout:{type:"integer",default:0},bodyLimit:{type:"integer",default:1048576},caseSensitive:{type:"boolean",default:!0},allowUnsafeRegex:{type:"boolean",default:!1},http2:{type:"boolean"},https:{if:{not:{oneOf:[{type:"boolean"},{type:"null"},{type:"object",additionalProperties:!1,required:["allowHTTP1"],properties:{allowHTTP1:{type:"boolean"}}}]}},then:{setDefaultValue:!0}},ignoreTrailingSlash:{type:"boolean",default:!1},ignoreDuplicateSlashes:{type:"boolean",default:!1},disableRequestLogging:{default:!1},maxParamLength:{type:"integer",default:100},onProtoPoisoning:{type:"string",default:"error"},onConstructorPoisoning:{type:"string",default:"error"},pluginTimeout:{type:"integer",default:1e4},requestIdHeader:{anyOf:[{type:"boolean"},{type:"string"}],default:!1},requestIdLogLabel:{type:"string",default:"reqId"},http2SessionTimeout:{type:"integer",default:72e3},exposeHeadRoutes:{type:"boolean",default:!0},useSemicolonDelimiter:{type:"boolean",default:!1},routerOptions:{type:"object",additionalProperties:!0,properties:{ignoreTrailingSlash:{type:"boolean",default:!1},ignoreDuplicateSlashes:{type:"boolean",default:!1},maxParamLength:{type:"integer",default:100},allowUnsafeRegex:{type:"boolean",default:!1},useSemicolonDelimiter:{type:"boolean",default:!1}}},constraints:{type:"object",additionalProperties:{type:"object",required:["name","storage","validate","deriveConstraint"],additionalProperties:!0,properties:{name:{type:"string"},storage:{},validate:{},deriveConstraint:{}}}}}},wDn=Object.prototype.hasOwnProperty,kDn=new RegExp("idle","u");function qn(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0;if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){e.connectionTimeout===void 0&&(e.connectionTimeout=0),e.keepAliveTimeout===void 0&&(e.keepAliveTimeout=72e3),e.maxRequestsPerSocket===void 0&&(e.maxRequestsPerSocket=0),e.requestTimeout===void 0&&(e.requestTimeout=0),e.handlerTimeout===void 0&&(e.handlerTimeout=0),e.bodyLimit===void 0&&(e.bodyLimit=1048576),e.caseSensitive===void 0&&(e.caseSensitive=!0),e.allowUnsafeRegex===void 0&&(e.allowUnsafeRegex=!1),e.ignoreTrailingSlash===void 0&&(e.ignoreTrailingSlash=!1),e.ignoreDuplicateSlashes===void 0&&(e.ignoreDuplicateSlashes=!1),e.disableRequestLogging===void 0&&(e.disableRequestLogging=!1),e.maxParamLength===void 0&&(e.maxParamLength=100),e.onProtoPoisoning===void 0&&(e.onProtoPoisoning="error"),e.onConstructorPoisoning===void 0&&(e.onConstructorPoisoning="error"),e.pluginTimeout===void 0&&(e.pluginTimeout=1e4),e.requestIdHeader===void 0&&(e.requestIdHeader=!1),e.requestIdLogLabel===void 0&&(e.requestIdLogLabel="reqId"),e.http2SessionTimeout===void 0&&(e.http2SessionTimeout=72e3),e.exposeHeadRoutes===void 0&&(e.exposeHeadRoutes=!0),e.useSemicolonDelimiter===void 0&&(e.useSemicolonDelimiter=!1);let m=o;for(let g in e)wDn.call(ADn.properties,g)||delete e[g];if(m===o){let g=e.connectionTimeout,y=o;if(!(typeof g=="number"&&!(g%1)&&!isNaN(g)&&isFinite(g))){let b=typeof g,S;if(S===void 0)if(b==="boolean"||g===null||b==="string"&&g&&g==+g&&!(g%1))S=+g;else return qn.errors=[{instancePath:t+"/connectionTimeout",schemaPath:"#/properties/connectionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;S!==void 0&&(g=S,e!==void 0&&(e.connectionTimeout=S))}var a=y===o;if(a){let b=e.keepAliveTimeout,S=o;if(!(typeof b=="number"&&!(b%1)&&!isNaN(b)&&isFinite(b))){let _=typeof b,T;if(T===void 0)if(_==="boolean"||b===null||_==="string"&&b&&b==+b&&!(b%1))T=+b;else return qn.errors=[{instancePath:t+"/keepAliveTimeout",schemaPath:"#/properties/keepAliveTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;T!==void 0&&(b=T,e!==void 0&&(e.keepAliveTimeout=T))}var a=S===o;if(a){if(e.forceCloseConnections!==void 0){let _=e.forceCloseConnections,T=o,R=o,A=!1,x=null,k=o;if(typeof _!="string"){let C=typeof _,L;if(L===void 0)if(C=="number"||C=="boolean")L=""+_;else if(_===null)L="";else{let G={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[G]:s.push(G),o++}L!==void 0&&(_=L,e!==void 0&&(e.forceCloseConnections=L))}if(o===k&&typeof _=="string"&&!kDn.test(_)){let C={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/0/pattern",keyword:"pattern",params:{pattern:"idle"},message:'must match pattern "idle"'};s===null?s=[C]:s.push(C),o++}var c=k===o;c&&(A=!0,x=0);let P=o;if(typeof _!="boolean"){let C;if(C===void 0)if(_==="false"||_===0||_===null)C=!1;else if(_==="true"||_===1)C=!0;else{let L={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/1/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[L]:s.push(L),o++}C!==void 0&&(_=C,e!==void 0&&(e.forceCloseConnections=C))}var c=P===o;if(c&&A?(A=!1,x=[x,1]):c&&(A=!0,x=1),A)o=R,s!==null&&(R?s.length=R:s=null);else{let C={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf",keyword:"oneOf",params:{passingSchemas:x},message:"must match exactly one schema in oneOf"};return s===null?s=[C]:s.push(C),o++,qn.errors=s,!1}var a=T===o}else var a=!0;if(a){let _=e.maxRequestsPerSocket,T=o;if(!(typeof _=="number"&&!(_%1)&&!isNaN(_)&&isFinite(_))&&_!==null){let A=typeof _,x;if(x===void 0)if(A==="boolean"||_===null||A==="string"&&_&&_==+_&&!(_%1))x=+_;else if(_===""||_===0||_===!1)x=null;else return qn.errors=[{instancePath:t+"/maxRequestsPerSocket",schemaPath:"#/properties/maxRequestsPerSocket/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;x!==void 0&&(_=x,e!==void 0&&(e.maxRequestsPerSocket=x))}var a=T===o;if(a){let A=e.requestTimeout,x=o;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){let P=typeof A,N;if(N===void 0)if(P==="boolean"||A===null||P==="string"&&A&&A==+A&&!(A%1))N=+A;else return qn.errors=[{instancePath:t+"/requestTimeout",schemaPath:"#/properties/requestTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;N!==void 0&&(A=N,e!==void 0&&(e.requestTimeout=N))}var a=x===o;if(a){let P=e.handlerTimeout,N=o;if(!(typeof P=="number"&&!(P%1)&&!isNaN(P)&&isFinite(P))){let L=typeof P,G;if(G===void 0)if(L==="boolean"||P===null||L==="string"&&P&&P==+P&&!(P%1))G=+P;else return qn.errors=[{instancePath:t+"/handlerTimeout",schemaPath:"#/properties/handlerTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;G!==void 0&&(P=G,e!==void 0&&(e.handlerTimeout=G))}var a=N===o;if(a){let L=e.bodyLimit,G=o;if(!(typeof L=="number"&&!(L%1)&&!isNaN(L)&&isFinite(L))){let $=typeof L,q;if(q===void 0)if($==="boolean"||L===null||$==="string"&&L&&L==+L&&!(L%1))q=+L;else return qn.errors=[{instancePath:t+"/bodyLimit",schemaPath:"#/properties/bodyLimit/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;q!==void 0&&(L=q,e!==void 0&&(e.bodyLimit=q))}var a=G===o;if(a){let $=e.caseSensitive,q=o;if(typeof $!="boolean"){let B;if(B===void 0)if($==="false"||$===0||$===null)B=!1;else if($==="true"||$===1)B=!0;else return qn.errors=[{instancePath:t+"/caseSensitive",schemaPath:"#/properties/caseSensitive/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;B!==void 0&&($=B,e!==void 0&&(e.caseSensitive=B))}var a=q===o;if(a){let B=e.allowUnsafeRegex,F=o;if(typeof B!="boolean"){let U;if(U===void 0)if(B==="false"||B===0||B===null)U=!1;else if(B==="true"||B===1)U=!0;else return qn.errors=[{instancePath:t+"/allowUnsafeRegex",schemaPath:"#/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;U!==void 0&&(B=U,e!==void 0&&(e.allowUnsafeRegex=U))}var a=F===o;if(a){if(e.http2!==void 0){let U=e.http2,M=o;if(typeof U!="boolean"){let j;if(j===void 0)if(U==="false"||U===0||U===null)j=!1;else if(U==="true"||U===1)j=!0;else return qn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;j!==void 0&&(U=j,e!==void 0&&(e.http2=j))}var a=M===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,M=o,H=o,j=!0,Y=o,ee=o,se=o,Le=o,Ae=!1,z=null,J=o;if(typeof U!="boolean"){let Ee;if(Ee===void 0)if(U==="false"||U===0||U===null)Ee=!1;else if(U==="true"||U===1)Ee=!0;else{let kt={};s===null?s=[kt]:s.push(kt),o++}Ee!==void 0&&(U=Ee,e!==void 0&&(e.https=Ee))}var u=J===o;u&&(Ae=!0,z=0);let oe=o;if(U!==null){let Ee;if(Ee===void 0)if(U===""||U===0||U===!1)Ee=null;else{let kt={};s===null?s=[kt]:s.push(kt),o++}Ee!==void 0&&(U=Ee,e!==void 0&&(e.https=Ee))}var u=oe===o;if(u&&Ae)Ae=!1,z=[z,1];else{u&&(Ae=!0,z=1);let Ee=o;if(o===Ee)if(U&&typeof U=="object"&&!Array.isArray(U)){let Ue;if(U.allowHTTP1===void 0&&(Ue="allowHTTP1")){let Ln={};s===null?s=[Ln]:s.push(Ln),o++}else{let Ln=o;for(let lr in U)lr!=="allowHTTP1"&&delete U[lr];if(Ln===o&&U.allowHTTP1!==void 0){let lr=U.allowHTTP1;if(typeof lr!="boolean"){let sn;if(sn===void 0)if(lr==="false"||lr===0||lr===null)sn=!1;else if(lr==="true"||lr===1)sn=!0;else{let dr={};s===null?s=[dr]:s.push(dr),o++}sn!==void 0&&(lr=sn,U!==void 0&&(U.allowHTTP1=sn))}}}}else{let Ue={};s===null?s=[Ue]:s.push(Ue),o++}var u=Ee===o;u&&Ae?(Ae=!1,z=[z,2]):u&&(Ae=!0,z=2)}if(Ae)o=Le,s!==null&&(Le?s.length=Le:s=null);else{let Ee={};s===null?s=[Ee]:s.push(Ee),o++}var l=se===o;if(l){let Ee={};s===null?s=[Ee]:s.push(Ee),o++}else o=ee,s!==null&&(ee?s.length=ee:s=null);var d=Y===o;if(o=H,s!==null&&(H?s.length=H:s=null),d){let Ee=o;e.https=!0;var d=Ee===o;j=d}if(!j){let Ee={instancePath:t+"/https",schemaPath:"#/properties/https/if",keyword:"if",params:{failingKeyword:"then"},message:'must match "then" schema'};return s===null?s=[Ee]:s.push(Ee),o++,qn.errors=s,!1}var a=M===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,M=o;if(typeof U!="boolean"){let j;if(j===void 0)if(U==="false"||U===0||U===null)j=!1;else if(U==="true"||U===1)j=!0;else return qn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;j!==void 0&&(U=j,e!==void 0&&(e.ignoreTrailingSlash=j))}var a=M===o;if(a){let j=e.ignoreDuplicateSlashes,Y=o;if(typeof j!="boolean"){let se;if(se===void 0)if(j==="false"||j===0||j===null)se=!1;else if(j==="true"||j===1)se=!0;else return qn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(j=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=Y===o;if(a){let se=e.maxParamLength,Le=o;if(!(typeof se=="number"&&!(se%1)&&!isNaN(se)&&isFinite(se))){let z=typeof se,J;if(J===void 0)if(z==="boolean"||se===null||z==="string"&&se&&se==+se&&!(se%1))J=+se;else return qn.errors=[{instancePath:t+"/maxParamLength",schemaPath:"#/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;J!==void 0&&(se=J,e!==void 0&&(e.maxParamLength=J))}var a=Le===o;if(a){let z=e.onProtoPoisoning,J=o;if(typeof z!="string"){let le=typeof z,Ee;if(Ee===void 0)if(le=="number"||le=="boolean")Ee=""+z;else if(z===null)Ee="";else return qn.errors=[{instancePath:t+"/onProtoPoisoning",schemaPath:"#/properties/onProtoPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Ee!==void 0&&(z=Ee,e!==void 0&&(e.onProtoPoisoning=Ee))}var a=J===o;if(a){let le=e.onConstructorPoisoning,Ee=o;if(typeof le!="string"){let Ue=typeof le,Ln;if(Ln===void 0)if(Ue=="number"||Ue=="boolean")Ln=""+le;else if(le===null)Ln="";else return qn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Ln!==void 0&&(le=Ln,e!==void 0&&(e.onConstructorPoisoning=Ln))}var a=Ee===o;if(a){let Ue=e.pluginTimeout,Ln=o;if(!(typeof Ue=="number"&&!(Ue%1)&&!isNaN(Ue)&&isFinite(Ue))){let sn=typeof Ue,dr;if(dr===void 0)if(sn==="boolean"||Ue===null||sn==="string"&&Ue&&Ue==+Ue&&!(Ue%1))dr=+Ue;else return qn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;dr!==void 0&&(Ue=dr,e!==void 0&&(e.pluginTimeout=dr))}var a=Ln===o;if(a){let sn=e.requestIdHeader,dr=o,nl=o,As=!1,uE=o;if(typeof sn!="boolean"){let Ii;if(Ii===void 0)if(sn==="false"||sn===0||sn===null)Ii=!1;else if(sn==="true"||sn===1)Ii=!0;else{let _p={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/0/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[_p]:s.push(_p),o++}Ii!==void 0&&(sn=Ii,e!==void 0&&(e.requestIdHeader=Ii))}var f=uE===o;if(As=As||f,!As){let Ii=o;if(typeof sn!="string"){let uy=typeof sn,Rr;if(Rr===void 0)if(uy=="number"||uy=="boolean")Rr=""+sn;else if(sn===null)Rr="";else{let Ha={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[Ha]:s.push(Ha),o++}Rr!==void 0&&(sn=Rr,e!==void 0&&(e.requestIdHeader=Rr))}var f=Ii===o;As=As||f}if(As)o=nl,s!==null&&(nl?s.length=nl:s=null);else{let Ii={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[Ii]:s.push(Ii),o++,qn.errors=s,!1}var a=dr===o;if(a){let Ii=e.requestIdLogLabel,_p=o;if(typeof Ii!="string"){let Rr=typeof Ii,Ha;if(Ha===void 0)if(Rr=="number"||Rr=="boolean")Ha=""+Ii;else if(Ii===null)Ha="";else return qn.errors=[{instancePath:t+"/requestIdLogLabel",schemaPath:"#/properties/requestIdLogLabel/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Ha!==void 0&&(Ii=Ha,e!==void 0&&(e.requestIdLogLabel=Ha))}var a=_p===o;if(a){let Rr=e.http2SessionTimeout,Ha=o;if(!(typeof Rr=="number"&&!(Rr%1)&&!isNaN(Rr)&&isFinite(Rr))){let ou=typeof Rr,Tp;if(Tp===void 0)if(ou==="boolean"||Rr===null||ou==="string"&&Rr&&Rr==+Rr&&!(Rr%1))Tp=+Rr;else return qn.errors=[{instancePath:t+"/http2SessionTimeout",schemaPath:"#/properties/http2SessionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;Tp!==void 0&&(Rr=Tp,e!==void 0&&(e.http2SessionTimeout=Tp))}var a=Ha===o;if(a){let ou=e.exposeHeadRoutes,Tp=o;if(typeof ou!="boolean"){let D;if(D===void 0)if(ou==="false"||ou===0||ou===null)D=!1;else if(ou==="true"||ou===1)D=!0;else return qn.errors=[{instancePath:t+"/exposeHeadRoutes",schemaPath:"#/properties/exposeHeadRoutes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;D!==void 0&&(ou=D,e!==void 0&&(e.exposeHeadRoutes=D))}var a=Tp===o;if(a){let D=e.useSemicolonDelimiter,te=o;if(typeof D!="boolean"){let Se;if(Se===void 0)if(D==="false"||D===0||D===null)Se=!1;else if(D==="true"||D===1)Se=!0;else return qn.errors=[{instancePath:t+"/useSemicolonDelimiter",schemaPath:"#/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;Se!==void 0&&(D=Se,e!==void 0&&(e.useSemicolonDelimiter=Se))}var a=te===o;if(a){if(e.routerOptions!==void 0){let Se=e.routerOptions,at=o;if(o===at)if(Se&&typeof Se=="object"&&!Array.isArray(Se)){Se.ignoreTrailingSlash===void 0&&(Se.ignoreTrailingSlash=!1),Se.ignoreDuplicateSlashes===void 0&&(Se.ignoreDuplicateSlashes=!1),Se.maxParamLength===void 0&&(Se.maxParamLength=100),Se.allowUnsafeRegex===void 0&&(Se.allowUnsafeRegex=!1),Se.useSemicolonDelimiter===void 0&&(Se.useSemicolonDelimiter=!1);let It=Se.ignoreTrailingSlash,dn=o;if(typeof It!="boolean"){let _t;if(_t===void 0)if(It==="false"||It===0||It===null)_t=!1;else if(It==="true"||It===1)_t=!0;else return qn.errors=[{instancePath:t+"/routerOptions/ignoreTrailingSlash",schemaPath:"#/properties/routerOptions/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;_t!==void 0&&(It=_t,Se!==void 0&&(Se.ignoreTrailingSlash=_t))}var p=dn===o;if(p){let _t=Se.ignoreDuplicateSlashes,ra=o;if(typeof _t!="boolean"){let xi;if(xi===void 0)if(_t==="false"||_t===0||_t===null)xi=!1;else if(_t==="true"||_t===1)xi=!0;else return qn.errors=[{instancePath:t+"/routerOptions/ignoreDuplicateSlashes",schemaPath:"#/properties/routerOptions/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;xi!==void 0&&(_t=xi,Se!==void 0&&(Se.ignoreDuplicateSlashes=xi))}var p=ra===o;if(p){let xi=Se.maxParamLength,vp=o;if(!(typeof xi=="number"&&!(xi%1)&&!isNaN(xi)&&isFinite(xi))){let Rp=typeof xi,lE;if(lE===void 0)if(Rp==="boolean"||xi===null||Rp==="string"&&xi&&xi==+xi&&!(xi%1))lE=+xi;else return qn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;lE!==void 0&&(xi=lE,Se!==void 0&&(Se.maxParamLength=lE))}var p=vp===o;if(p){let Rp=Se.allowUnsafeRegex,lE=o;if(typeof Rp!="boolean"){let au;if(au===void 0)if(Rp==="false"||Rp===0||Rp===null)au=!1;else if(Rp==="true"||Rp===1)au=!0;else return qn.errors=[{instancePath:t+"/routerOptions/allowUnsafeRegex",schemaPath:"#/properties/routerOptions/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;au!==void 0&&(Rp=au,Se!==void 0&&(Se.allowUnsafeRegex=au))}var p=lE===o;if(p){let au=Se.useSemicolonDelimiter,$Ct=o;if(typeof au!="boolean"){let iR;if(iR===void 0)if(au==="false"||au===0||au===null)iR=!1;else if(au==="true"||au===1)iR=!0;else return qn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;iR!==void 0&&(au=iR,Se!==void 0&&(Se.useSemicolonDelimiter=iR))}var p=$Ct===o}}}}}else return qn.errors=[{instancePath:t+"/routerOptions",schemaPath:"#/properties/routerOptions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0;if(a)if(e.constraints!==void 0){let Se=e.constraints,at=o;if(o===at)if(Se&&typeof Se=="object"&&!Array.isArray(Se))for(let It in Se){let dn=Se[It],_t=o;if(o===_t)if(dn&&typeof dn=="object"&&!Array.isArray(dn)){let ra;if(dn.name===void 0&&(ra="name")||dn.storage===void 0&&(ra="storage")||dn.validate===void 0&&(ra="validate")||dn.deriveConstraint===void 0&&(ra="deriveConstraint"))return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/required",keyword:"required",params:{missingProperty:ra},message:"must have required property '"+ra+"'"}],!1;if(dn.name!==void 0){let jl=dn.name;if(typeof jl!="string"){let xi=typeof jl,vp;if(vp===void 0)if(xi=="number"||xi=="boolean")vp=""+jl;else if(jl===null)vp="";else return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1")+"/name",schemaPath:"#/properties/constraints/additionalProperties/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;vp!==void 0&&(jl=vp,dn!==void 0&&(dn.name=vp))}}}else return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var h=_t===o;if(!h)break}else return qn.errors=[{instancePath:t+"/constraints",schemaPath:"#/properties/constraints/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0}}}}}}}}}}}}}}}}}}}}}}}}else return qn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return qn.errors=s,o===0}pK.exports.defaultInitOptions={connectionTimeout:0,keepAliveTimeout:72e3,maxRequestsPerSocket:0,requestTimeout:0,handlerTimeout:0,bodyLimit:1048576,caseSensitive:!0,allowUnsafeRegex:!1,disableRequestLogging:!1,ignoreTrailingSlash:!1,ignoreDuplicateSlashes:!1,maxParamLength:100,onProtoPoisoning:"error",onConstructorPoisoning:"error",pluginTimeout:1e4,requestIdHeader:!1,requestIdLogLabel:"reqId",http2SessionTimeout:72e3,exposeHeadRoutes:!0,useSemicolonDelimiter:!1,allowErrorHandlerOverride:!0,routerOptions:{ignoreTrailingSlash:!1,ignoreDuplicateSlashes:!1,maxParamLength:100,allowUnsafeRegex:!1,useSemicolonDelimiter:!1}}});var hct=w((fYr,mK)=>{"use strict";var hK=pct(),IDn=QW()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:xDn}=Ko();function ODn(e){let t=IDn(e);if(!hK(t)){let n=new xDn(JSON.stringify(hK.errors.map(r=>r.message)));throw n.errors=hK.errors,n}return xde(t)}function xde(e){let t=Object.getOwnPropertyNames(e);for(let n of t){let r=e[n];ArrayBuffer.isView(r)&&!(r instanceof DataView)||(e[n]=r&&typeof r=="object"?xde(r):r)}return Object.freeze(e)}mK.exports=ODn;mK.exports.defaultInitOptions=hK.defaultInitOptions;mK.exports.utils={deepFreezeObject:xde}});var vct=w((pYr,Tct)=>{"use strict";var{kAvvioBoot:PDn,kChildren:mct,kRoutePrefix:gct,kLogLevel:yct,kLogSerializers:Ode,kHooks:Pde,kSchemaController:oI,kContentTypeParser:Sct,kReply:bct,kRequest:Ect,kFourOhFour:NDn,kPluginNameChain:_ct,kErrorHandlerAlreadySet:CDn}=$s(),MDn=d4(),DDn=y4(),LDn=Dle(),UDn=Uue(),{buildHooks:FDn}=YS(),aD=ode();Tct.exports=function(t,n,r){let i=aD.registerPlugin.call(t,n),s=aD.getPluginName(n)||aD.getFuncPreview(n);if(i)return t[_ct].push(s),t;let o=Object.create(t);t[mct].push(o),o.ready=t[PDn].bind(o),o[mct]=[],o[bct]=MDn.buildReply(o[bct]),o[Ect]=DDn.buildRequest(o[Ect]),o[Sct]=UDn.helpers.buildContentTypeParser(o[Sct]),o[Pde]=FDn(o[Pde]),o[gct]=jDn(o[gct],r.prefix),o[yct]=r.logLevel||o[yct],o[oI]=LDn.buildSchemaController(t[oI]),o.getSchema=o[oI].getSchema.bind(o[oI]),o.getSchemas=o[oI].getSchemas.bind(o[oI]),o[aD.kRegisteredPlugins]=Object.create(o[aD.kRegisteredPlugins]),o[_ct]=[s],o[CDn]=!1,(o[Ode]||r.logSerializers)&&(o[Ode]=Object.assign(Object.create(o[Ode]),r.logSerializers)),r.prefix&&o[NDn].arrange404(o);for(let a of o[Pde].onRegister)a.call(t,o,r);return o};function jDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var Ict=w(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});Oh.parseCookie=wct;Oh.parse=wct;Oh.stringifyCookie=VDn;Oh.stringifySetCookie=gK;Oh.serialize=gK;Oh.parseSetCookie=WDn;Oh.stringifySetCookie=gK;Oh.serialize=gK;var Rct=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Act=/^[\u0021-\u003A\u003C-\u007E]*$/,HDn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,qDn=/^[\u0020-\u003A\u003D-\u007E]*$/,BDn=/^-?\d+$/,zDn=Object.prototype.toString,GDn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function wct(e,t){let n=new GDn,r=e.length;if(r<2)return n;let i=t?.decode||kct,s=0;do{let o=Cde(e,s,r);if(o===-1)break;let a=Nde(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=sb(e,s,o);n[c]===void 0&&(n[c]=i(sb(e,o+1,a))),s=a+1}while(sr;){let s=e.charCodeAt(i-1);if(s!==32&&s!==9)break;i--}return e.slice(r,i)}function kct(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function KDn(e){return zDn.call(e)==="[object Date]"}});var Oct=w((mYr,yK)=>{"use strict";var{format:Mde}=K("node:util");function YDn(e){return xct({...e,name:"DeprecationWarning"})}function xct({name:e,code:t,message:n,unlimited:r=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!n)throw new Error("Warning message must not be empty");if(typeof r!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let i={[e]:function(o,a,c){s.emitted===!0&&s.unlimited!==!0||(s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code))}};r&&(i={[e]:function(o,a,c){s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code)}});let s=i[e];return s.emitted=!1,s.message=n,s.unlimited=r,s.code=t,s.format=function(o,a,c){let u;return o&&a&&c?u=Mde(n,o,a,c):o&&a?u=Mde(n,o,a):o?u=Mde(n,o):u=n,u},s}var Dde={createWarning:xct,createDeprecation:YDn};yK.exports=Dde;yK.exports.default=Dde;yK.exports.processWarning=Dde});var Cct=w((gYr,Nct)=>{"use strict";var{URL:Pct}=K("node:url"),Lde="http://localhost";Nct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Lde+t);let r=typeof t=="object"?Object.assign(new Pct(Lde),t):new Pct(t,Lde);if(typeof n=="string"){n=new URLSearchParams(n);for(let i of n.keys()){r.searchParams.delete(i);for(let s of n.getAll(i))r.searchParams.append(i,s)}}else{let i=Object.assign({},t.query,n);for(let s in i){let o=i[s];if(Array.isArray(o)){r.searchParams.delete(s);for(let a of o)r.searchParams.append(s,a)}else r.searchParams.set(s,o)}}return r}});var Mct=w((yYr,Ude)=>{"use strict";var{randomUUID:ZDn}=K("node:crypto"),{Readable:JDn}=K("node:stream"),aI;function XDn(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function QDn(e){aI=aI??new TextEncoder;let t=`----formdata-${ZDn()}`,n=`--${t}\r +`))}};hat.exports=Sde});var yat=w((tYr,gat)=>{"use strict";var mMn=mat(),fK={STATIC:0,PARAMETRIC:1,WILDCARD:2},aK=class{constructor(){this.isLeafNode=!1,this.routes=null,this.handlerStorage=null}addRoute(t,n){this.routes===null&&(this.routes=[]),this.handlerStorage===null&&(this.handlerStorage=new mMn),this.isLeafNode=!0,this.routes.push(t),this.handlerStorage.addHandler(n,t)}},cK=class extends aK{constructor(){super(),this.staticChildren={}}findStaticMatchingChild(t,n){let r=this.staticChildren[t.charAt(n)];return r===void 0||!r.matchPrefix(t,n)?null:r}getStaticChild(t,n=0){if(t.length===n)return this;let r=this.findStaticMatchingChild(t,n);return r?r.getStaticChild(t,n+r.prefix.length):null}createStaticChild(t){if(t.length===0)return this;let n=this.staticChildren[t.charAt(0)];if(n){let i=1;for(;i(i.regex&&i.regex.source)===n);return r||null}createParametricChild(t,n,r){let i=this.getParametricChild(t);return i?(i.nodePaths.add(r),i):(i=new lK(t,n,r),this.parametricChildren.push(i),this.parametricChildren.sort((s,o)=>s.isRegex?o.isRegex?s.staticSuffix===null?1:o.staticSuffix===null?-1:o.staticSuffix.endsWith(s.staticSuffix)?1:s.staticSuffix.endsWith(o.staticSuffix)?-1:0:-1:1),i)}getWildcardChild(){return this.wildcardChild}createWildcardChild(){return this.wildcardChild=this.getWildcardChild()||new dK,this.wildcardChild}split(t,n){let r=this.prefix.slice(0,n),i=this.prefix.slice(n);this.prefix=i,this._compilePrefixMatch();let s=new e(r);return s.staticChildren[i.charAt(0)]=this,t.staticChildren[r.charAt(0)]=s,s}getNextNode(t,n,r,i){let s=this.findStaticMatchingChild(t,n),o=0;if(s===null){if(this.parametricChildren.length===0)return this.wildcardChild;s=this.parametricChildren[0],o=1}this.wildcardChild!==null&&r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.wildcardChild});for(let a=this.parametricChildren.length-1;a>=o;a--)r.push({paramsCount:i,brotherPathIndex:n,brotherNode:this.parametricChildren[a]});return s}_compilePrefixMatch(){if(this.prefix.length===1){this.matchPrefix=()=>!0;return}let t=[];for(let n=1;n{"use strict";var gMn=K("node:assert");function sD(){if(!(this instanceof sD))return new sD;this.store=new Map,this.maxMajor=0,this.maxMinors={},this.maxPatches={}}sD.prototype.set=function(e,t){if(typeof e!="string")throw new TypeError("Version should be a string");let[n,r,i]=e.split(".",3);if(isNaN(n))throw new TypeError("Major version must be a numeric value");return n=Number(n),r=Number(r)||0,i=Number(i)||0,n>=this.maxMajor&&(this.maxMajor=n,this.store.set("x",t),this.store.set("*",t),this.store.set("x.x",t),this.store.set("x.x.x",t)),r>=(this.maxMinors[n]||0)&&(this.maxMinors[n]=r,this.store.set(`${n}.x`,t),this.store.set(`${n}.x.x`,t)),i>=(this.maxPatches[`${n}.${r}`]||0)&&(this.maxPatches[`${n}.${r}`]=i,this.store.set(`${n}.${r}.x`,t)),this.store.set(`${n}.${r}.${i}`,t),this};sD.prototype.get=function(e){return this.store.get(e)};Sat.exports={name:"version",mustMatchWhenDerived:!0,storage:sD,validate(e){gMn(typeof e=="string","Version should be a string")}}});var _at=w((rYr,Eat)=>{"use strict";var yMn=K("node:assert");function SMn(){let e=new Map,t=[];return{get:n=>{let r=e.get(n);if(r)return r;for(let i of t)if(i.host.test(n))return i.value},set:(n,r)=>{n instanceof RegExp?t.push({host:n,value:r}):e.set(n,r)}}}Eat.exports={name:"host",mustMatchWhenDerived:!1,storage:SMn,validate(e){yMn(typeof e=="string"||Object.prototype.toString.call(e)==="[object RegExp]","Host should be a string or a RegExp")}}});var vat=w((iYr,Tat)=>{"use strict";var bMn=bat(),EMn=_at(),bde=K("node:assert"),Ede=class{constructor(t){if(this.strategies={version:bMn,host:EMn},this.strategiesInUse=new Set,this.asyncStrategiesInUse=new Set,t)for(let n of Object.values(t))this.addConstraintStrategy(n)}isStrategyUsed(t){return this.strategiesInUse.has(t)||this.asyncStrategiesInUse.has(t)}hasConstraintStrategy(t){let n=this.strategies[t];return n!==void 0?n.isCustom||this.isStrategyUsed(t):!1}addConstraintStrategy(t){if(bde(typeof t.name=="string"&&t.name!=="","strategy.name is required."),bde(t.storage&&typeof t.storage=="function","strategy.storage function is required."),bde(t.deriveConstraint&&typeof t.deriveConstraint=="function","strategy.deriveConstraint function is required."),this.strategies[t.name]&&this.strategies[t.name].isCustom)throw new Error(`There already exists a custom constraint with the name ${t.name}.`);if(this.isStrategyUsed(t.name))throw new Error(`There already exists a route with ${t.name} constraint.`);t.isCustom=!0,t.isAsync=t.deriveConstraint.length===3,this.strategies[t.name]=t,t.mustMatchWhenDerived&&this.noteUsage({[t.name]:t})}deriveConstraints(t,n,r){let i=this.deriveSyncConstraints(t,n);if(r===void 0)return i;this.deriveAsyncConstraints(i,t,n,r)}deriveSyncConstraints(t,n){}noteUsage(t){if(t){let n=this.strategiesInUse.size;for(let r in t){if(!Object.hasOwn(t,r))continue;this.strategies[r].isAsync?this.asyncStrategiesInUse.add(r):this.strategiesInUse.add(r)}n!==this.strategiesInUse.size&&this._buildDeriveConstraints()}}newStoreForConstraint(t){if(!this.strategies[t])throw new Error(`No strategy registered for constraint key ${t}`);return this.strategies[t].storage()}validateConstraints(t){for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n];if(typeof r>"u")throw new Error("Can't pass an undefined constraint value, must pass null or no key at all");let i=this.strategies[n];if(!i)throw new Error(`No strategy registered for constraint key ${n}`);i.validate&&i.validate(r)}}deriveAsyncConstraints(t,n,r,i){let s=this.asyncStrategiesInUse.size;if(s===0){i(null,t);return}t=t||{};for(let o of this.asyncStrategiesInUse)this.strategies[o].deriveConstraint(n,r,(c,u)=>{if(c!==null){i(c);return}t[o]=u,--s===0&&i(null,t)})}_buildDeriveConstraints(){if(this.strategiesInUse.size===0)return;let t=["return {"];for(let n of this.strategiesInUse){let r=this.strategies[n];r.isCustom?t.push(` ${r.name}: this.strategies.${n}.deriveConstraint(req, ctx),`):n==="version"?t.push(" version: req.headers['accept-version'],"):t.push(" host: req.headers.host || req.headers[':authority'],")}t.push("}"),this.deriveSyncConstraints=new Function("req","ctx",t.join(` +`)).bind(this)}};Tat.exports=Ede});var Aat=w((sYr,Rat)=>{"use strict";var _Mn=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];Rat.exports=_Mn});var Iat=w((oYr,kat)=>{"use strict";function wat(e,t){return e===50?t===53?"%":t===51?"#":t===52?"$":t===54?"&":t===66||t===98?"+":t===67||t===99?",":t===70||t===102?"/":null:e===51?t===65||t===97?":":t===66||t===98?";":t===68||t===100?"=":t===70||t===102?"?":null:e===52&&t===48?"@":null}function TMn(e,t){let n=!1,r=!1,i="";for(let o=1;o{"use strict";var Ls=K("node:assert"),RMn=Mot(),sI=nat(),vde=RC(),{prettyPrintTree:AMn}=lat(),{StaticNode:xat,NODE_TYPES:Oat}=yat(),wMn=vat(),iI=Aat(),_de=sK(),{safeDecodeURI:Pat,safeDecodeURIComponent:Tde}=Iat(),Nat=/^https?:\/\/.*?\//,yT=/(\/:[^/()]*?)\?(\/?)/,Cat=/[.*+?^${}()|[\]\\]/g,Mat=/\/\/+/g;if(!sI(Nat))throw new Error("the FULL_PATH_REGEXP is not safe, update this module");if(!sI(yT))throw new Error("the OPTIONAL_PARAM_REGEXP is not safe, update this module");if(!sI(Cat))throw new Error("the ESCAPE_REGEXP is not safe, update this module");if(!sI(Mat))throw new Error("the REMOVE_DUPLICATE_SLASHES_REGEXP is not safe, update this module");function _i(e){if(!(this instanceof _i))return new _i(e);e=e||{},this._opts=e,e.defaultRoute?(Ls(typeof e.defaultRoute=="function","The default route must be a function"),this.defaultRoute=e.defaultRoute):this.defaultRoute=null,e.onBadUrl?(Ls(typeof e.onBadUrl=="function","The bad url handler must be a function"),this.onBadUrl=e.onBadUrl):this.onBadUrl=null,e.buildPrettyMeta?(Ls(typeof e.buildPrettyMeta=="function","buildPrettyMeta must be a function"),this.buildPrettyMeta=e.buildPrettyMeta):this.buildPrettyMeta=kMn,e.querystringParser?(Ls(typeof e.querystringParser=="function","querystringParser must be a function"),this.querystringParser=e.querystringParser):this.querystringParser=t=>t.length===0?{}:RMn.parse(t),this.caseSensitive=e.caseSensitive===void 0?!0:e.caseSensitive,this.ignoreTrailingSlash=e.ignoreTrailingSlash||!1,this.ignoreDuplicateSlashes=e.ignoreDuplicateSlashes||!1,this.maxParamLength=e.maxParamLength||100,this.allowUnsafeRegex=e.allowUnsafeRegex||!1,this.constrainer=new wMn(e.constraints),this.useSemicolonDelimiter=e.useSemicolonDelimiter||!1,this.routes=[],this.trees={}}_i.prototype.on=function(t,n,r,i,s){typeof r=="function"&&(i!==void 0&&(s=i),i=r,r={}),Ls(typeof n=="string","Path should be a string"),Ls(n.length>0,"The path could not be empty"),Ls(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ls(typeof i=="function","Handler should be a function");let o=n.match(yT);if(o){Ls(n.length===o.index+o[0].length,"Optional Parameter needs to be the last parameter of the path");let u=n.replace(yT,"$1$2"),l=n.replace(yT,"$2")||"/";this.on(t,u,r,i,s),this.on(t,l,r,i,s);return}let a=n;this.ignoreDuplicateSlashes&&(n=pK(n)),this.ignoreTrailingSlash&&(n=hK(n));let c=Array.isArray(t)?t:[t];for(let u of c)Ls(typeof u=="string","Method should be a string"),Ls(iI.includes(u),`Method '${u}' is not an http method.`),this._on(u,n,r,i,s,a)};_i.prototype._on=function(t,n,r,i,s){let o={};r.constraints!==void 0&&(Ls(typeof r.constraints=="object"&&r.constraints!==null,"Constraints should be an object"),Object.keys(r.constraints).length!==0&&(o=r.constraints)),this.constrainer.validateConstraints(o),this.constrainer.noteUsage(o),this.trees[t]===void 0&&(this.trees[t]=new xat("/"));let a=n;if(a==="*"&&this.trees[t].prefix.length!==0){let f=this.trees[t];this.trees[t]=new xat(""),this.trees[t].staticChildren["/"]=f}let c=this.trees[t],u=c.prefix.length,l=[];for(let f=0;f<=a.length;f++){if(a.charCodeAt(f)===58&&a.charCodeAt(f+1)===58){f++;continue}let p=a.charCodeAt(f)===58&&a.charCodeAt(f+1)!==58,h=a.charCodeAt(f)===42;if(p||h||f===a.length&&f!==u){let m=a.slice(u,f);this.caseSensitive||(m=m.toLowerCase()),m=m.replaceAll("::",":"),m=m.replaceAll("%","%25"),c=c.createStaticChild(m)}if(p){let m=!1,g=!0,y="",b=[],S=f+1;for(let E=S;;E++){let _=a.charCodeAt(E),T=_===40,R=_===45||_===46,A=_===47||E===a.length;if(T||R||A){let x=a.slice(S,E);if(l.push(x),m=m||T||R,T){let N=Uat(a,E),C=a.slice(E,N+1);this.allowUnsafeRegex||Ls(sI(new RegExp(C)),`The regex '${C}' is not safe!`),b.push(Lat(C)),E=N+1,g=!0}else b.push(g?"(.*?)":`(${y}|(?:(?!${y}).)*)`),g=!1;let k=E;for(;E0,"The path could not be empty"),Ls(n[0]==="/"||n[0]==="*","The first character of a path should be `/` or `*`"),Ls(typeof r>"u"||typeof r=="object"&&!Array.isArray(r)&&r!==null,"Constraints should be an object or undefined.");let i=n.match(yT);if(i){Ls(n.length===i.index+i[0].length,"Optional Parameter needs to be the last parameter of the path");let o=n.replace(yT,"$1$2"),a=n.replace(yT,"$2");this.off(t,o,r),this.off(t,a,r);return}this.ignoreDuplicateSlashes&&(n=pK(n)),this.ignoreTrailingSlash&&(n=hK(n));let s=Array.isArray(t)?t:[t];for(let o of s)this._off(o,n,r)};_i.prototype._off=function(t,n,r){Ls(typeof t=="string","Method should be a string"),Ls(iI.includes(t),`Method '${t}' is not an http method.`);function i(c){return t!==c.method||n!==c.path}function s(c){return i(c)||!vde(r,c.opts.constraints||{})}let o=r?s:i,a=this.routes.filter(o);this._rebuild(a)};_i.prototype.lookup=function(t,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i===void 0){let s=this.constrainer.deriveConstraints(t,r),o=this.find(t.method,t.url,s);return this.callHandler(o,t,n,r)}this.constrainer.deriveConstraints(t,r,(s,o)=>{if(s!==null){i(s);return}try{let a=this.find(t.method,t.url,o),c=this.callHandler(a,t,n,r);i(null,c)}catch(a){i(a)}})};_i.prototype.callHandler=function(t,n,r,i){return t===null?this._defaultRoute(n,r,i):i===void 0?t.handler(n,r,t.params,t.store,t.searchParams):t.handler.call(i,n,r,t.params,t.store,t.searchParams)};_i.prototype.find=function(t,n,r){let i=this.trees[t];if(i===void 0)return null;n.charCodeAt(0)!==47&&(n=n.replace(Nat,"/")),this.ignoreDuplicateSlashes&&(n=pK(n));let s,o,a;try{s=Pat(n,this.useSemicolonDelimiter),n=s.path,o=s.querystring,a=s.shouldDecodeParam}catch{return this._onBadUrl(n)}this.ignoreTrailingSlash&&(n=hK(n));let c=n;this.caseSensitive===!1&&(n=n.toLowerCase());let u=this.maxParamLength,l=i.prefix.length,d=[],f=n.length,p=[];for(;;){if(l===f&&i.isLeafNode){let y=i.handlerStorage.getMatchingHandler(r);if(y!==null)return{handler:y.handler,store:y.store,params:y._createParamsObject(d),searchParams:this.querystringParser(o)}}let h=i.getNextNode(n,l,p,d.length);if(h===null){if(p.length===0)return null;let y=p.pop();l=y.brotherPathIndex,d.splice(y.paramsCount),h=y.brotherNode}if(i=h,i.kind===Oat.STATIC){l+=i.prefix.length;continue}if(i.kind===Oat.WILDCARD){let y=c.slice(l);a&&(y=Tde(y)),d.push(y),l=f;continue}let m=c.indexOf("/",l);m===-1&&(m=f);let g=c.slice(l,m);if(a&&(g=Tde(g)),i.isRegex){let y=i.regex.exec(g);if(y===null)continue;for(let b=1;bu)return null;d.push(S)}}else{if(g.length>u)return null;d.push(g)}l=m}};_i.prototype._rebuild=function(e){this.reset();for(let t of e){let{method:n,path:r,opts:i,handler:s,store:o}=t;this._on(n,r,i,s,o)}};_i.prototype._defaultRoute=function(e,t,n){if(this.defaultRoute!==null)return n===void 0?this.defaultRoute(e,t):this.defaultRoute.call(n,e,t);t.statusCode=404,t.end()};_i.prototype._onBadUrl=function(e){if(this.onBadUrl===null)return null;let t=this.onBadUrl;return{handler:(n,r,i)=>t(e,n,r),params:{},store:null}};_i.prototype.prettyPrint=function(e={}){let t=e.method;e.buildPrettyMeta=this.buildPrettyMeta.bind(this);let n=null;if(t===void 0){let{version:r,host:i,...s}=this.constrainer.strategies;s[_de.name]=_de;let o=new _i({...this._opts,constraints:s}),a=this.routes.map(c=>{let u={...c.opts.constraints,[_de.name]:c.method};return{...c,method:"MERGED",opts:{constraints:u}}});o._rebuild(a),n=o.trees.MERGED}else n=this.trees[t];return n==null?"(empty tree)":AMn(n,e)};for(let e in iI){if(!iI.hasOwnProperty(e))continue;let t=iI[e],n=t.toLowerCase();_i.prototype[n]=function(r,i,s){return this.on(t,r,i,s)}}_i.prototype.all=function(e,t,n){this.on(iI,e,t,n)};_i.sanitizeUrlPath=function(t,n){let r=Pat(t,n);return r.shouldDecodeParam?Tde(r.path):r.path};_i.removeDuplicateSlashes=pK;_i.trimLastSlash=hK;Fat.exports=_i;function Dat(e){return e.replace(Cat,"\\$&")}function pK(e){return e.indexOf("//")!==-1?e.replace(Mat,"/"):e}function hK(e){return e.length>1&&e.charCodeAt(e.length-1)===47?e.slice(0,-1):e}function Lat(e){return e.charCodeAt(1)===94&&(e=e.slice(0,1)+e.slice(2)),e.charCodeAt(e.length-2)===36&&(e=e.slice(0,e.length-2)+e.slice(e.length-1)),e}function Uat(e,t){let n=1;for(;t{"use strict";function Ade(e,t,n,r){if(n===void 0){t.header("content-length","0"),r(null,null);return}if(typeof n.resume=="function"){n.on("error",s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),n.resume(),r(null,null);return}if(typeof n.getReader=="function"){n.cancel("Stream cancelled by HEAD route").catch(s=>{t.log.error({err:s},"Error on Stream found for HEAD route")}),r(null,null);return}let i=""+Buffer.byteLength(n);t.header("content-length",i),r(null,null)}function IMn(e){return e==null?Ade:Array.isArray(e)?[...e,Ade]:[e,Ade]}jat.exports={parseHeadOnSendHandlers:IMn}});var oct=w((uYr,sct)=>{"use strict";var xMn=Rde(),OMn=E4(),qat=bce(),{onRequestAbortHookRunner:PMn,lifecycleHooks:Bat,preParsingHookRunner:NMn,onTimeoutHookRunner:CMn,onRequestHookRunner:MMn}=YS(),{normalizeSchema:DMn}=wM(),{parseHeadOnSendHandlers:LMn}=Hat(),{compileSchemasForValidation:UMn,compileSchemasForSerialization:FMn}=mce(),{FST_ERR_SCH_VALIDATION_BUILD:jMn,FST_ERR_SCH_SERIALIZATION_BUILD:HMn,FST_ERR_DUPLICATED_ROUTE:qMn,FST_ERR_INVALID_URL:BMn,FST_ERR_HOOK_INVALID_HANDLER:zat,FST_ERR_ROUTE_OPTIONS_NOT_OBJ:zMn,FST_ERR_ROUTE_DUPLICATED_HANDLER:GMn,FST_ERR_ROUTE_HANDLER_NOT_FN:Gat,FST_ERR_ROUTE_MISSING_HANDLER:VMn,FST_ERR_ROUTE_METHOD_NOT_SUPPORTED:WMn,FST_ERR_ROUTE_METHOD_INVALID:KMn,FST_ERR_ROUTE_BODY_VALIDATION_SCHEMA_NOT_SUPPORTED:YMn,FST_ERR_ROUTE_BODY_LIMIT_OPTION_NOT_INT:ZMn,FST_ERR_ROUTE_HANDLER_TIMEOUT_OPTION_NOT_INT:JMn,FST_ERR_HANDLER_TIMEOUT:XMn,FST_ERR_HOOK_INVALID_ASYNC_HANDLER:wde}=Ko(),{kRoutePrefix:QMn,kSupportedHTTPMethods:xde,kLogLevel:$Mn,kLogSerializers:Vat,kHooks:Wat,kSchemaController:eDn,kOptions:Kat,kReplySerializerDefault:kde,kReplyIsError:rct,kRequestPayloadStream:tDn,kDisableRequestLogging:Yat,kSchemaErrorFormatter:nDn,kErrorHandler:Zat,kHasBeenDecorated:Jat,kRequestAcceptVersion:Ide,kRouteByFastify:rDn,kRouteContext:Xat,kRequestSignal:iDn,kTimeoutTimer:Qat,kOnAbort:sDn}=$s(),{buildErrorHandler:oDn}=kM(),{createChildLogger:aDn}=AM(),{getGenReqId:cDn}=Z4(),{FSTDEP022:uDn}=Pk(),$at=["allowUnsafeRegex","buildPrettyMeta","caseSensitive","constraints","defaultRoute","ignoreDuplicateSlashes","ignoreTrailingSlash","maxParamLength","onBadUrl","querystringParser","useSemicolonDelimiter"];function lDn(e){let t=xMn(e),n,r,i,s,o,a,c,u,l,d,f,p,h,m=!1;return{setup(A,x){n=x.avvio,r=x.fourOhFour,i=A.logger,s=x.hasLogger,o=x.setupResponseListeners,a=x.throwIfAlreadyStarted,p=A.exposeHeadRoutes,c=A.disableRequestLogging,typeof c=="function"&&(u=A.disableRequestLogging),l=A.routerOptions.ignoreTrailingSlash,d=A.routerOptions.ignoreDuplicateSlashes,f=Object.hasOwn(A,"return503OnClosing")?A.return503OnClosing:!0,h=x.keepAliveConnections},routing:t.lookup.bind(t),route:T,hasRoute:E,prepareRoute:S,routeHandler:R,closeRoutes:()=>{m=!0},printRoutes:t.prettyPrint.bind(t),addConstraintStrategy:g,hasConstraintStrategy:y,isAsyncConstraint:b,findRoute:_};function g(A){return a("Cannot add constraint strategy!"),t.addConstraintStrategy(A)}function y(A){return t.hasConstraintStrategy(A)}function b(){return t.constrainer.asyncStrategiesInUse.size>0}function S({method:A,url:x,options:k,handler:P,isFastify:N}){if(typeof x!="string")throw new BMn(typeof x);if(!P&&typeof k=="function")P=k,k={};else if(P&&typeof P=="function"){if(Object.prototype.toString.call(k)!=="[object Object]")throw new zMn(A,x);if(k.handler)throw typeof k.handler=="function"?new GMn(A,x):new Gat(A,x)}return k=Object.assign({},k,{method:A,url:x,path:x,handler:P||k&&k.handler}),T.call(this,{options:k,isFastify:N})}function E({options:A}){let x=A.method?.toUpperCase()??"";return t.hasRoute(x,A.url||"",A.constraints)}function _(A){let x=t.find(A.method,A.url||"",A.constraints);return x?{handler:x.handler,params:x.params,searchParams:x.searchParams}:null}function T({options:A,isFastify:x}){a("Cannot add route!");let k={...A},P=k.url||k.path||"";if(!k.handler)throw new VMn(k.method,P);if(k.errorHandler!==void 0&&typeof k.errorHandler!="function")throw new Gat(k.method,P);ict(k.bodyLimit),pDn(k.handlerTimeout);let N=k.exposeHeadRoute??p,C=!1,L=!1;if(Array.isArray(k.method))for(let q=0;q0&&k.method!=="HEAD")switch(k.prefixTrailingSlash){case"slash":$.call(this,{path:P,isFastify:x});break;case"no-slash":$.call(this,{path:"",isFastify:x});break;default:$.call(this,{path:"",isFastify:x}),l!==!0&&(d!==!0||!W.endsWith("/"))&&$.call(this,{path:P,prefixing:!0,isFastify:x})}else P[0]==="/"&&W.endsWith("/")?$.call(this,{path:P.slice(1),isFastify:x}):$.call(this,{path:P,isFastify:x});return this;function $({path:q,prefixing:Q=!1,isFastify:B=!1}){let F=W+q;if(k.url=F,k.path=F,k.routePath=q,k.prefix=W,k.logLevel=k.logLevel||this[$Mn],(this[Vat]||k.logSerializers)&&(k.logSerializers=Object.assign(Object.create(this[Vat]),k.logSerializers)),k.attachValidation==null&&(k.attachValidation=!1),Q===!1)for(let Y of this[Wat].onRoute)Y.call(this,k);for(let Y of Bat)if(k&&Y in k){if(Array.isArray(k[Y]))for(let ee of k[Y]){if(typeof ee!="function")throw new zat(Y,Object.prototype.toString.call(ee));if(Y==="onSend"||Y==="preSerialization"||Y==="onError"||Y==="preParsing"){if(ee.constructor.name==="AsyncFunction"&&ee.length===4)throw new wde}else if(Y==="onRequestAbort"){if(ee.constructor.name==="AsyncFunction"&&ee.length!==1)throw new wde}else if(ee.constructor.name==="AsyncFunction"&&ee.length===3)throw new wde}else if(k[Y]!==void 0&&typeof k[Y]!="function")throw new zat(Y,Object.prototype.toString.call(k[Y]))}let V=k.constraints||{},U={...k.config,url:F,method:k.method},M=new OMn({schema:k.schema,handler:k.handler.bind(this),config:U,errorHandler:k.errorHandler,childLoggerFactory:k.childLoggerFactory,bodyLimit:k.bodyLimit,logLevel:k.logLevel,logSerializers:k.logSerializers,attachValidation:k.attachValidation,schemaErrorFormatter:k.schemaErrorFormatter,replySerializer:this[kde],validatorCompiler:k.validatorCompiler,serializerCompiler:k.serializerCompiler,exposeHeadRoute:N,prefixTrailingSlash:k.prefixTrailingSlash||"both",server:this,isFastify:B,handlerTimeout:k.handlerTimeout}),j=t.findRoute("HEAD",k.url,V)!==null;try{t.on(k.method,k.url,{constraints:V},R,M)}catch(Y){if(!M[rDn])throw Y.message.includes(`Method '${k.method}' already declared for route`)?new qMn(k.method,k.url):Y}if(this.after((Y,ee)=>{M.errorHandler=k.errorHandler?oDn(this[Zat],k.errorHandler):this[Zat],M._parserOptions.limit=k.bodyLimit||null,M.logLevel=k.logLevel,M.logSerializers=k.logSerializers,M.attachValidation=k.attachValidation,M[kde]=this[kde],M.schemaErrorFormatter=k.schemaErrorFormatter||this[nDn]||M.schemaErrorFormatter,n.once("preReady",()=>{for(let se of Bat){let Le=this[Wat][se].concat(k[se]||[]).map(Ae=>Ae.bind(this));M[se]=Le.length?Le:null}for(;!M.Request[Jat]&&M.Request.parent;)M.Request=M.Request.parent;for(;!M.Reply[Jat]&&M.Reply.parent;)M.Reply=M.Reply.parent;if(r.setContext(this,M),k.schema){M.schema=DMn(M.schema,this.initialConfig);let se=this[eDn],Le=k.schema.body||k.schema.headers||k.schema.querystring||k.schema.params;!k.validatorCompiler&&Le&&se.setupValidator(this[Kat]);try{let Ae=typeof k?.validatorCompiler=="function"||se.isCustomValidatorCompiler;UMn(M,k.validatorCompiler||se.validatorCompiler,Ae)}catch(Ae){throw new jMn(k.method,F,Ae.message)}k.schema.response&&!k.serializerCompiler&&se.setupSerializer(this[Kat]);try{FMn(M,k.serializerCompiler||se.serializerCompiler)}catch(Ae){throw new HMn(k.method,F,Ae.message)}}}),ee(Y)}),N&&C&&!L&&!j){let Y=LMn(G.onSend);S.call(this,{method:"HEAD",url:q,options:{...G,onSend:Y},isFastify:!0})}}}function R(A,x,k,P,N){let C=cDn(P.server,A),L={level:P.logLevel};P.logSerializers&&(L.serializers=P.logSerializers);let G=aDn(P,i,A,C,L);if(G[Yat]=u?!1:c,m===!0&&(A.httpVersionMajor!==2&&x.setHeader("Connection","close"),f)){let F={"Content-Type":"application/json","Content-Length":"80"};x.writeHead(503,F),x.end('{"error":"Service Unavailable","message":"Service Unavailable","statusCode":503}'),G.info({res:{statusCode:503}},"request aborted - refusing to accept new requests as server is closing");return}String.prototype.toLowerCase.call(A.headers.connection||"")==="keep-alive"&&h.has(A.socket)===!1&&(h.add(A.socket),A.socket.on("close",mDn.bind({keepAliveConnections:h,socket:A.socket}))),A.headers[Ide]!==void 0&&(A.headers["accept-version"]=A.headers[Ide],A.headers[Ide]=void 0);let $=new P.Request(C,k,A,N,G,P),q=new P.Reply(x,$,G),Q=u?u($):c;G[Yat]=Q,Q===!1&&G.info({req:$},"incoming request");let B=P.handlerTimeout;if(B>0){let F=new AbortController;$[iDn]=F,$[Qat]=setTimeout(()=>{if(!q.sent){let U=new XMn(B,P.config?.url);F.abort(U),q[rct]=!0,q.send(U)}},B);let V=()=>{F.signal.aborted||F.abort(),clearTimeout($[Qat])};A.on("close",V),$[sDn]=V}(s===!0||P.onResponse!==null||B>0)&&o(q),P.onRequest!==null?MMn(P.onRequest,$,q,nct):nct(null,$,q),P.onRequestAbort!==null&&A.on("close",()=>{A.aborted&&PMn(P.onRequestAbort,$,dDn.bind(null,q))}),P.onTimeout!==null&&($.raw.socket._meta||$.raw.socket.on("timeout",fDn),$.raw.socket._meta={context:P,request:$,reply:q})}}function dDn(e,t){t&&e.log.error({err:t},"onRequestAborted hook failed")}function fDn(){let{context:e,request:t,reply:n}=this._meta;CMn(e.onTimeout,t,n,gDn)}function ect(e){if(typeof e!="string")throw new KMn;if(e=e.toUpperCase(),!this[xde].bodyless.has(e)&&!this[xde].bodywith.has(e))throw new WMn(e);return e}function tct(e,t,n){if(this[xde].bodyless.has(e)&&n?.body)throw new YMn(e,t)}function ict(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new ZMn(e)}function pDn(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw new JMn(e)}function nct(e,t,n){if(n.sent!==!0){if(e!=null){n[rct]=!0,n.send(e);return}t[tDn]=t.raw,t[Xat].preParsing!==null?NMn(t[Xat].preParsing,t,n,qat.bind(t.server)):qat.call(t.server,null,t,n)}}function hDn(e,t){let n=e.routerOptions==null?Object.create(null):Object.assign(Object.create(null),e.routerOptions),r=$at.filter(i=>Object.hasOwn(e,i));r.length>0&&uDn(r.join(", "));for(let i of $at)Object.hasOwn(n,i)||(n[i]=e[i]??t[i]);return n}function mDn(){this.keepAliveConnections.delete(this.socket)}function gDn(){}sct.exports={buildRouting:lDn,validateBodyLimitOption:ict,buildRouterOptions:hDn}});var pct=w((lYr,fct)=>{"use strict";var yDn=Rde(),act=p4(),cct=b4(),SDn=E4(),{kRoutePrefix:bDn,kCanSetNotFoundHandler:oD,kFourOhFourLevelInstance:aD,kFourOhFourContext:xh,kHooks:EDn,kErrorHandler:uct}=$s(),{lifecycleHooks:_Dn}=YS(),{buildErrorHandler:TDn}=kM(),{FST_ERR_NOT_FOUND:vDn}=Ko(),{createChildLogger:lct}=AM(),{getGenReqId:dct}=Z4();function RDn(e){let{logger:t,disableRequestLogging:n}=e,r=yDn({onBadUrl:a(),defaultRoute:d}),i=null;return{router:r,setNotFoundHandler:u,setContext:c,arrange404:s};function s(f){f[aD]=f,f[oD]=!0,r.onBadUrl=r.onBadUrl.bind(f),r.defaultRoute=r.defaultRoute.bind(f)}function o(f,p){let{url:h,method:m}=f.raw,g=`Route ${m}:${h} not found`;(typeof n=="function"?n(f.raw):n)||f.log.info(g),p.code(404).send({message:g,error:"Not Found",statusCode:404})}function a(){return function(p,h,m){let g=this[aD][xh],y=dct(g.server,h),b=lct(g,t,h,y),S=new cct(y,null,h,null,b,g),E=new act(m,S,b);i(S,E)}}function c(f,p){let h=Object.assign({},f[xh]);h.onSend=p.onSend,p[xh]=h}function u(f,p,h,m){this[oD]===void 0&&(this[oD]=!0),this[xh]===void 0&&(this[xh]=null);let g=this,y=this[bDn]||"/";if(this[oD]===!1)throw new Error(`Not found handler already set for Fastify instance with prefix: '${y}'`);typeof f=="object"&&(f.preHandler&&(Array.isArray(f.preHandler)?f.preHandler=f.preHandler.map(b=>b.bind(g)):f.preHandler=f.preHandler.bind(g)),f.preValidation&&(Array.isArray(f.preValidation)?f.preValidation=f.preValidation.map(b=>b.bind(g)):f.preValidation=f.preValidation.bind(g))),typeof f=="function"&&(p=f,f=void 0),f=f||{},p?(this[aD][oD]=!1,p=p.bind(this),i=p):(p=o,i=o),this.after((b,S)=>{l.call(this,y,f,p,h,m),S(b)})}function l(f,p,h,m,g){let y=new SDn({schema:p.schema,handler:h,config:p.config||{},server:this});if(m.once("preReady",()=>{let b=this[xh];for(let S of _Dn){let E=this[EDn][S].concat(p[S]||[]).map(_=>_.bind(this));b[S]=E.length?E:null}b.errorHandler=p.errorHandler?TDn(this[uct],p.errorHandler):this[uct]}),this[xh]!==null&&f==="/"){Object.assign(this[xh],y);return}this[aD][xh]=y,r.all(f+(f.endsWith("/")?"*":"/*"),g,y),r.all(f,g,y)}function d(f,p){let h=this[aD][xh],m=dct(h.server,f),g=lct(h,t,f,m);g.info({req:f},"incoming request");let y=new cct(m,null,f,null,g,h),b=new act(p,y,g);y.log.warn("the default handler for 404 did not catch this, this is likely a fastify bug, please report it"),y.log.warn(r.prettyPrint()),b.code(404).send(new vDn)}}fct.exports=RDn});var hct=w((dYr,mK)=>{"use strict";mK.exports=qn;mK.exports.default=qn;var ADn={type:"object",additionalProperties:!1,properties:{connectionTimeout:{type:"integer",default:0},keepAliveTimeout:{type:"integer",default:72e3},forceCloseConnections:{oneOf:[{type:"string",pattern:"idle"},{type:"boolean"}]},maxRequestsPerSocket:{type:"integer",default:0,nullable:!0},requestTimeout:{type:"integer",default:0},handlerTimeout:{type:"integer",default:0},bodyLimit:{type:"integer",default:1048576},caseSensitive:{type:"boolean",default:!0},allowUnsafeRegex:{type:"boolean",default:!1},http2:{type:"boolean"},https:{if:{not:{oneOf:[{type:"boolean"},{type:"null"},{type:"object",additionalProperties:!1,required:["allowHTTP1"],properties:{allowHTTP1:{type:"boolean"}}}]}},then:{setDefaultValue:!0}},ignoreTrailingSlash:{type:"boolean",default:!1},ignoreDuplicateSlashes:{type:"boolean",default:!1},disableRequestLogging:{default:!1},maxParamLength:{type:"integer",default:100},onProtoPoisoning:{type:"string",default:"error"},onConstructorPoisoning:{type:"string",default:"error"},pluginTimeout:{type:"integer",default:1e4},requestIdHeader:{anyOf:[{type:"boolean"},{type:"string"}],default:!1},requestIdLogLabel:{type:"string",default:"reqId"},http2SessionTimeout:{type:"integer",default:72e3},exposeHeadRoutes:{type:"boolean",default:!0},useSemicolonDelimiter:{type:"boolean",default:!1},routerOptions:{type:"object",additionalProperties:!0,properties:{ignoreTrailingSlash:{type:"boolean",default:!1},ignoreDuplicateSlashes:{type:"boolean",default:!1},maxParamLength:{type:"integer",default:100},allowUnsafeRegex:{type:"boolean",default:!1},useSemicolonDelimiter:{type:"boolean",default:!1}}},constraints:{type:"object",additionalProperties:{type:"object",required:["name","storage","validate","deriveConstraint"],additionalProperties:!0,properties:{name:{type:"string"},storage:{},validate:{},deriveConstraint:{}}}}}},wDn=Object.prototype.hasOwnProperty,kDn=new RegExp("idle","u");function qn(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0;if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){e.connectionTimeout===void 0&&(e.connectionTimeout=0),e.keepAliveTimeout===void 0&&(e.keepAliveTimeout=72e3),e.maxRequestsPerSocket===void 0&&(e.maxRequestsPerSocket=0),e.requestTimeout===void 0&&(e.requestTimeout=0),e.handlerTimeout===void 0&&(e.handlerTimeout=0),e.bodyLimit===void 0&&(e.bodyLimit=1048576),e.caseSensitive===void 0&&(e.caseSensitive=!0),e.allowUnsafeRegex===void 0&&(e.allowUnsafeRegex=!1),e.ignoreTrailingSlash===void 0&&(e.ignoreTrailingSlash=!1),e.ignoreDuplicateSlashes===void 0&&(e.ignoreDuplicateSlashes=!1),e.disableRequestLogging===void 0&&(e.disableRequestLogging=!1),e.maxParamLength===void 0&&(e.maxParamLength=100),e.onProtoPoisoning===void 0&&(e.onProtoPoisoning="error"),e.onConstructorPoisoning===void 0&&(e.onConstructorPoisoning="error"),e.pluginTimeout===void 0&&(e.pluginTimeout=1e4),e.requestIdHeader===void 0&&(e.requestIdHeader=!1),e.requestIdLogLabel===void 0&&(e.requestIdLogLabel="reqId"),e.http2SessionTimeout===void 0&&(e.http2SessionTimeout=72e3),e.exposeHeadRoutes===void 0&&(e.exposeHeadRoutes=!0),e.useSemicolonDelimiter===void 0&&(e.useSemicolonDelimiter=!1);let m=o;for(let g in e)wDn.call(ADn.properties,g)||delete e[g];if(m===o){let g=e.connectionTimeout,y=o;if(!(typeof g=="number"&&!(g%1)&&!isNaN(g)&&isFinite(g))){let b=typeof g,S;if(S===void 0)if(b==="boolean"||g===null||b==="string"&&g&&g==+g&&!(g%1))S=+g;else return qn.errors=[{instancePath:t+"/connectionTimeout",schemaPath:"#/properties/connectionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;S!==void 0&&(g=S,e!==void 0&&(e.connectionTimeout=S))}var a=y===o;if(a){let b=e.keepAliveTimeout,S=o;if(!(typeof b=="number"&&!(b%1)&&!isNaN(b)&&isFinite(b))){let _=typeof b,T;if(T===void 0)if(_==="boolean"||b===null||_==="string"&&b&&b==+b&&!(b%1))T=+b;else return qn.errors=[{instancePath:t+"/keepAliveTimeout",schemaPath:"#/properties/keepAliveTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;T!==void 0&&(b=T,e!==void 0&&(e.keepAliveTimeout=T))}var a=S===o;if(a){if(e.forceCloseConnections!==void 0){let _=e.forceCloseConnections,T=o,R=o,A=!1,x=null,k=o;if(typeof _!="string"){let C=typeof _,L;if(L===void 0)if(C=="number"||C=="boolean")L=""+_;else if(_===null)L="";else{let G={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[G]:s.push(G),o++}L!==void 0&&(_=L,e!==void 0&&(e.forceCloseConnections=L))}if(o===k&&typeof _=="string"&&!kDn.test(_)){let C={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/0/pattern",keyword:"pattern",params:{pattern:"idle"},message:'must match pattern "idle"'};s===null?s=[C]:s.push(C),o++}var c=k===o;c&&(A=!0,x=0);let P=o;if(typeof _!="boolean"){let C;if(C===void 0)if(_==="false"||_===0||_===null)C=!1;else if(_==="true"||_===1)C=!0;else{let L={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf/1/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[L]:s.push(L),o++}C!==void 0&&(_=C,e!==void 0&&(e.forceCloseConnections=C))}var c=P===o;if(c&&A?(A=!1,x=[x,1]):c&&(A=!0,x=1),A)o=R,s!==null&&(R?s.length=R:s=null);else{let C={instancePath:t+"/forceCloseConnections",schemaPath:"#/properties/forceCloseConnections/oneOf",keyword:"oneOf",params:{passingSchemas:x},message:"must match exactly one schema in oneOf"};return s===null?s=[C]:s.push(C),o++,qn.errors=s,!1}var a=T===o}else var a=!0;if(a){let _=e.maxRequestsPerSocket,T=o;if(!(typeof _=="number"&&!(_%1)&&!isNaN(_)&&isFinite(_))&&_!==null){let A=typeof _,x;if(x===void 0)if(A==="boolean"||_===null||A==="string"&&_&&_==+_&&!(_%1))x=+_;else if(_===""||_===0||_===!1)x=null;else return qn.errors=[{instancePath:t+"/maxRequestsPerSocket",schemaPath:"#/properties/maxRequestsPerSocket/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;x!==void 0&&(_=x,e!==void 0&&(e.maxRequestsPerSocket=x))}var a=T===o;if(a){let A=e.requestTimeout,x=o;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){let P=typeof A,N;if(N===void 0)if(P==="boolean"||A===null||P==="string"&&A&&A==+A&&!(A%1))N=+A;else return qn.errors=[{instancePath:t+"/requestTimeout",schemaPath:"#/properties/requestTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;N!==void 0&&(A=N,e!==void 0&&(e.requestTimeout=N))}var a=x===o;if(a){let P=e.handlerTimeout,N=o;if(!(typeof P=="number"&&!(P%1)&&!isNaN(P)&&isFinite(P))){let L=typeof P,G;if(G===void 0)if(L==="boolean"||P===null||L==="string"&&P&&P==+P&&!(P%1))G=+P;else return qn.errors=[{instancePath:t+"/handlerTimeout",schemaPath:"#/properties/handlerTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;G!==void 0&&(P=G,e!==void 0&&(e.handlerTimeout=G))}var a=N===o;if(a){let L=e.bodyLimit,G=o;if(!(typeof L=="number"&&!(L%1)&&!isNaN(L)&&isFinite(L))){let $=typeof L,q;if(q===void 0)if($==="boolean"||L===null||$==="string"&&L&&L==+L&&!(L%1))q=+L;else return qn.errors=[{instancePath:t+"/bodyLimit",schemaPath:"#/properties/bodyLimit/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;q!==void 0&&(L=q,e!==void 0&&(e.bodyLimit=q))}var a=G===o;if(a){let $=e.caseSensitive,q=o;if(typeof $!="boolean"){let B;if(B===void 0)if($==="false"||$===0||$===null)B=!1;else if($==="true"||$===1)B=!0;else return qn.errors=[{instancePath:t+"/caseSensitive",schemaPath:"#/properties/caseSensitive/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;B!==void 0&&($=B,e!==void 0&&(e.caseSensitive=B))}var a=q===o;if(a){let B=e.allowUnsafeRegex,F=o;if(typeof B!="boolean"){let U;if(U===void 0)if(B==="false"||B===0||B===null)U=!1;else if(B==="true"||B===1)U=!0;else return qn.errors=[{instancePath:t+"/allowUnsafeRegex",schemaPath:"#/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;U!==void 0&&(B=U,e!==void 0&&(e.allowUnsafeRegex=U))}var a=F===o;if(a){if(e.http2!==void 0){let U=e.http2,M=o;if(typeof U!="boolean"){let j;if(j===void 0)if(U==="false"||U===0||U===null)j=!1;else if(U==="true"||U===1)j=!0;else return qn.errors=[{instancePath:t+"/http2",schemaPath:"#/properties/http2/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;j!==void 0&&(U=j,e!==void 0&&(e.http2=j))}var a=M===o}else var a=!0;if(a){if(e.https!==void 0){let U=e.https,M=o,H=o,j=!0,Y=o,ee=o,se=o,Le=o,Ae=!1,z=null,J=o;if(typeof U!="boolean"){let Ee;if(Ee===void 0)if(U==="false"||U===0||U===null)Ee=!1;else if(U==="true"||U===1)Ee=!0;else{let kt={};s===null?s=[kt]:s.push(kt),o++}Ee!==void 0&&(U=Ee,e!==void 0&&(e.https=Ee))}var u=J===o;u&&(Ae=!0,z=0);let oe=o;if(U!==null){let Ee;if(Ee===void 0)if(U===""||U===0||U===!1)Ee=null;else{let kt={};s===null?s=[kt]:s.push(kt),o++}Ee!==void 0&&(U=Ee,e!==void 0&&(e.https=Ee))}var u=oe===o;if(u&&Ae)Ae=!1,z=[z,1];else{u&&(Ae=!0,z=1);let Ee=o;if(o===Ee)if(U&&typeof U=="object"&&!Array.isArray(U)){let Ue;if(U.allowHTTP1===void 0&&(Ue="allowHTTP1")){let Ln={};s===null?s=[Ln]:s.push(Ln),o++}else{let Ln=o;for(let lr in U)lr!=="allowHTTP1"&&delete U[lr];if(Ln===o&&U.allowHTTP1!==void 0){let lr=U.allowHTTP1;if(typeof lr!="boolean"){let sn;if(sn===void 0)if(lr==="false"||lr===0||lr===null)sn=!1;else if(lr==="true"||lr===1)sn=!0;else{let dr={};s===null?s=[dr]:s.push(dr),o++}sn!==void 0&&(lr=sn,U!==void 0&&(U.allowHTTP1=sn))}}}}else{let Ue={};s===null?s=[Ue]:s.push(Ue),o++}var u=Ee===o;u&&Ae?(Ae=!1,z=[z,2]):u&&(Ae=!0,z=2)}if(Ae)o=Le,s!==null&&(Le?s.length=Le:s=null);else{let Ee={};s===null?s=[Ee]:s.push(Ee),o++}var l=se===o;if(l){let Ee={};s===null?s=[Ee]:s.push(Ee),o++}else o=ee,s!==null&&(ee?s.length=ee:s=null);var d=Y===o;if(o=H,s!==null&&(H?s.length=H:s=null),d){let Ee=o;e.https=!0;var d=Ee===o;j=d}if(!j){let Ee={instancePath:t+"/https",schemaPath:"#/properties/https/if",keyword:"if",params:{failingKeyword:"then"},message:'must match "then" schema'};return s===null?s=[Ee]:s.push(Ee),o++,qn.errors=s,!1}var a=M===o}else var a=!0;if(a){let U=e.ignoreTrailingSlash,M=o;if(typeof U!="boolean"){let j;if(j===void 0)if(U==="false"||U===0||U===null)j=!1;else if(U==="true"||U===1)j=!0;else return qn.errors=[{instancePath:t+"/ignoreTrailingSlash",schemaPath:"#/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;j!==void 0&&(U=j,e!==void 0&&(e.ignoreTrailingSlash=j))}var a=M===o;if(a){let j=e.ignoreDuplicateSlashes,Y=o;if(typeof j!="boolean"){let se;if(se===void 0)if(j==="false"||j===0||j===null)se=!1;else if(j==="true"||j===1)se=!0;else return qn.errors=[{instancePath:t+"/ignoreDuplicateSlashes",schemaPath:"#/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;se!==void 0&&(j=se,e!==void 0&&(e.ignoreDuplicateSlashes=se))}var a=Y===o;if(a){let se=e.maxParamLength,Le=o;if(!(typeof se=="number"&&!(se%1)&&!isNaN(se)&&isFinite(se))){let z=typeof se,J;if(J===void 0)if(z==="boolean"||se===null||z==="string"&&se&&se==+se&&!(se%1))J=+se;else return qn.errors=[{instancePath:t+"/maxParamLength",schemaPath:"#/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;J!==void 0&&(se=J,e!==void 0&&(e.maxParamLength=J))}var a=Le===o;if(a){let z=e.onProtoPoisoning,J=o;if(typeof z!="string"){let le=typeof z,Ee;if(Ee===void 0)if(le=="number"||le=="boolean")Ee=""+z;else if(z===null)Ee="";else return qn.errors=[{instancePath:t+"/onProtoPoisoning",schemaPath:"#/properties/onProtoPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Ee!==void 0&&(z=Ee,e!==void 0&&(e.onProtoPoisoning=Ee))}var a=J===o;if(a){let le=e.onConstructorPoisoning,Ee=o;if(typeof le!="string"){let Ue=typeof le,Ln;if(Ln===void 0)if(Ue=="number"||Ue=="boolean")Ln=""+le;else if(le===null)Ln="";else return qn.errors=[{instancePath:t+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Ln!==void 0&&(le=Ln,e!==void 0&&(e.onConstructorPoisoning=Ln))}var a=Ee===o;if(a){let Ue=e.pluginTimeout,Ln=o;if(!(typeof Ue=="number"&&!(Ue%1)&&!isNaN(Ue)&&isFinite(Ue))){let sn=typeof Ue,dr;if(dr===void 0)if(sn==="boolean"||Ue===null||sn==="string"&&Ue&&Ue==+Ue&&!(Ue%1))dr=+Ue;else return qn.errors=[{instancePath:t+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;dr!==void 0&&(Ue=dr,e!==void 0&&(e.pluginTimeout=dr))}var a=Ln===o;if(a){let sn=e.requestIdHeader,dr=o,nl=o,As=!1,uE=o;if(typeof sn!="boolean"){let Ii;if(Ii===void 0)if(sn==="false"||sn===0||sn===null)Ii=!1;else if(sn==="true"||sn===1)Ii=!0;else{let _p={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/0/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};s===null?s=[_p]:s.push(_p),o++}Ii!==void 0&&(sn=Ii,e!==void 0&&(e.requestIdHeader=Ii))}var f=uE===o;if(As=As||f,!As){let Ii=o;if(typeof sn!="string"){let uy=typeof sn,Rr;if(Rr===void 0)if(uy=="number"||uy=="boolean")Rr=""+sn;else if(sn===null)Rr="";else{let Ha={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[Ha]:s.push(Ha),o++}Rr!==void 0&&(sn=Rr,e!==void 0&&(e.requestIdHeader=Rr))}var f=Ii===o;As=As||f}if(As)o=nl,s!==null&&(nl?s.length=nl:s=null);else{let Ii={instancePath:t+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[Ii]:s.push(Ii),o++,qn.errors=s,!1}var a=dr===o;if(a){let Ii=e.requestIdLogLabel,_p=o;if(typeof Ii!="string"){let Rr=typeof Ii,Ha;if(Ha===void 0)if(Rr=="number"||Rr=="boolean")Ha=""+Ii;else if(Ii===null)Ha="";else return qn.errors=[{instancePath:t+"/requestIdLogLabel",schemaPath:"#/properties/requestIdLogLabel/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;Ha!==void 0&&(Ii=Ha,e!==void 0&&(e.requestIdLogLabel=Ha))}var a=_p===o;if(a){let Rr=e.http2SessionTimeout,Ha=o;if(!(typeof Rr=="number"&&!(Rr%1)&&!isNaN(Rr)&&isFinite(Rr))){let ou=typeof Rr,Tp;if(Tp===void 0)if(ou==="boolean"||Rr===null||ou==="string"&&Rr&&Rr==+Rr&&!(Rr%1))Tp=+Rr;else return qn.errors=[{instancePath:t+"/http2SessionTimeout",schemaPath:"#/properties/http2SessionTimeout/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;Tp!==void 0&&(Rr=Tp,e!==void 0&&(e.http2SessionTimeout=Tp))}var a=Ha===o;if(a){let ou=e.exposeHeadRoutes,Tp=o;if(typeof ou!="boolean"){let D;if(D===void 0)if(ou==="false"||ou===0||ou===null)D=!1;else if(ou==="true"||ou===1)D=!0;else return qn.errors=[{instancePath:t+"/exposeHeadRoutes",schemaPath:"#/properties/exposeHeadRoutes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;D!==void 0&&(ou=D,e!==void 0&&(e.exposeHeadRoutes=D))}var a=Tp===o;if(a){let D=e.useSemicolonDelimiter,te=o;if(typeof D!="boolean"){let Se;if(Se===void 0)if(D==="false"||D===0||D===null)Se=!1;else if(D==="true"||D===1)Se=!0;else return qn.errors=[{instancePath:t+"/useSemicolonDelimiter",schemaPath:"#/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;Se!==void 0&&(D=Se,e!==void 0&&(e.useSemicolonDelimiter=Se))}var a=te===o;if(a){if(e.routerOptions!==void 0){let Se=e.routerOptions,at=o;if(o===at)if(Se&&typeof Se=="object"&&!Array.isArray(Se)){Se.ignoreTrailingSlash===void 0&&(Se.ignoreTrailingSlash=!1),Se.ignoreDuplicateSlashes===void 0&&(Se.ignoreDuplicateSlashes=!1),Se.maxParamLength===void 0&&(Se.maxParamLength=100),Se.allowUnsafeRegex===void 0&&(Se.allowUnsafeRegex=!1),Se.useSemicolonDelimiter===void 0&&(Se.useSemicolonDelimiter=!1);let It=Se.ignoreTrailingSlash,dn=o;if(typeof It!="boolean"){let _t;if(_t===void 0)if(It==="false"||It===0||It===null)_t=!1;else if(It==="true"||It===1)_t=!0;else return qn.errors=[{instancePath:t+"/routerOptions/ignoreTrailingSlash",schemaPath:"#/properties/routerOptions/properties/ignoreTrailingSlash/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;_t!==void 0&&(It=_t,Se!==void 0&&(Se.ignoreTrailingSlash=_t))}var p=dn===o;if(p){let _t=Se.ignoreDuplicateSlashes,ra=o;if(typeof _t!="boolean"){let xi;if(xi===void 0)if(_t==="false"||_t===0||_t===null)xi=!1;else if(_t==="true"||_t===1)xi=!0;else return qn.errors=[{instancePath:t+"/routerOptions/ignoreDuplicateSlashes",schemaPath:"#/properties/routerOptions/properties/ignoreDuplicateSlashes/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;xi!==void 0&&(_t=xi,Se!==void 0&&(Se.ignoreDuplicateSlashes=xi))}var p=ra===o;if(p){let xi=Se.maxParamLength,vp=o;if(!(typeof xi=="number"&&!(xi%1)&&!isNaN(xi)&&isFinite(xi))){let Rp=typeof xi,lE;if(lE===void 0)if(Rp==="boolean"||xi===null||Rp==="string"&&xi&&xi==+xi&&!(xi%1))lE=+xi;else return qn.errors=[{instancePath:t+"/routerOptions/maxParamLength",schemaPath:"#/properties/routerOptions/properties/maxParamLength/type",keyword:"type",params:{type:"integer"},message:"must be integer"}],!1;lE!==void 0&&(xi=lE,Se!==void 0&&(Se.maxParamLength=lE))}var p=vp===o;if(p){let Rp=Se.allowUnsafeRegex,lE=o;if(typeof Rp!="boolean"){let au;if(au===void 0)if(Rp==="false"||Rp===0||Rp===null)au=!1;else if(Rp==="true"||Rp===1)au=!0;else return qn.errors=[{instancePath:t+"/routerOptions/allowUnsafeRegex",schemaPath:"#/properties/routerOptions/properties/allowUnsafeRegex/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;au!==void 0&&(Rp=au,Se!==void 0&&(Se.allowUnsafeRegex=au))}var p=lE===o;if(p){let au=Se.useSemicolonDelimiter,$Ct=o;if(typeof au!="boolean"){let iR;if(iR===void 0)if(au==="false"||au===0||au===null)iR=!1;else if(au==="true"||au===1)iR=!0;else return qn.errors=[{instancePath:t+"/routerOptions/useSemicolonDelimiter",schemaPath:"#/properties/routerOptions/properties/useSemicolonDelimiter/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;iR!==void 0&&(au=iR,Se!==void 0&&(Se.useSemicolonDelimiter=iR))}var p=$Ct===o}}}}}else return qn.errors=[{instancePath:t+"/routerOptions",schemaPath:"#/properties/routerOptions/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0;if(a)if(e.constraints!==void 0){let Se=e.constraints,at=o;if(o===at)if(Se&&typeof Se=="object"&&!Array.isArray(Se))for(let It in Se){let dn=Se[It],_t=o;if(o===_t)if(dn&&typeof dn=="object"&&!Array.isArray(dn)){let ra;if(dn.name===void 0&&(ra="name")||dn.storage===void 0&&(ra="storage")||dn.validate===void 0&&(ra="validate")||dn.deriveConstraint===void 0&&(ra="deriveConstraint"))return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/required",keyword:"required",params:{missingProperty:ra},message:"must have required property '"+ra+"'"}],!1;if(dn.name!==void 0){let jl=dn.name;if(typeof jl!="string"){let xi=typeof jl,vp;if(vp===void 0)if(xi=="number"||xi=="boolean")vp=""+jl;else if(jl===null)vp="";else return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1")+"/name",schemaPath:"#/properties/constraints/additionalProperties/properties/name/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;vp!==void 0&&(jl=vp,dn!==void 0&&(dn.name=vp))}}}else return qn.errors=[{instancePath:t+"/constraints/"+It.replace(/~/g,"~0").replace(/\//g,"~1"),schemaPath:"#/properties/constraints/additionalProperties/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var h=_t===o;if(!h)break}else return qn.errors=[{instancePath:t+"/constraints",schemaPath:"#/properties/constraints/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var a=at===o}else var a=!0}}}}}}}}}}}}}}}}}}}}}}}}else return qn.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return qn.errors=s,o===0}mK.exports.defaultInitOptions={connectionTimeout:0,keepAliveTimeout:72e3,maxRequestsPerSocket:0,requestTimeout:0,handlerTimeout:0,bodyLimit:1048576,caseSensitive:!0,allowUnsafeRegex:!1,disableRequestLogging:!1,ignoreTrailingSlash:!1,ignoreDuplicateSlashes:!1,maxParamLength:100,onProtoPoisoning:"error",onConstructorPoisoning:"error",pluginTimeout:1e4,requestIdHeader:!1,requestIdLogLabel:"reqId",http2SessionTimeout:72e3,exposeHeadRoutes:!0,useSemicolonDelimiter:!1,allowErrorHandlerOverride:!0,routerOptions:{ignoreTrailingSlash:!1,ignoreDuplicateSlashes:!1,maxParamLength:100,allowUnsafeRegex:!1,useSemicolonDelimiter:!1}}});var mct=w((fYr,yK)=>{"use strict";var gK=hct(),IDn=e4()({circles:!0,proto:!1}),{FST_ERR_INIT_OPTS_INVALID:xDn}=Ko();function ODn(e){let t=IDn(e);if(!gK(t)){let n=new xDn(JSON.stringify(gK.errors.map(r=>r.message)));throw n.errors=gK.errors,n}return Ode(t)}function Ode(e){let t=Object.getOwnPropertyNames(e);for(let n of t){let r=e[n];ArrayBuffer.isView(r)&&!(r instanceof DataView)||(e[n]=r&&typeof r=="object"?Ode(r):r)}return Object.freeze(e)}yK.exports=ODn;yK.exports.defaultInitOptions=gK.defaultInitOptions;yK.exports.utils={deepFreezeObject:Ode}});var Rct=w((pYr,vct)=>{"use strict";var{kAvvioBoot:PDn,kChildren:gct,kRoutePrefix:yct,kLogLevel:Sct,kLogSerializers:Pde,kHooks:Nde,kSchemaController:oI,kContentTypeParser:bct,kReply:Ect,kRequest:_ct,kFourOhFour:NDn,kPluginNameChain:Tct,kErrorHandlerAlreadySet:CDn}=$s(),MDn=p4(),DDn=b4(),LDn=Lle(),UDn=Fue(),{buildHooks:FDn}=YS(),cD=ade();vct.exports=function(t,n,r){let i=cD.registerPlugin.call(t,n),s=cD.getPluginName(n)||cD.getFuncPreview(n);if(i)return t[Tct].push(s),t;let o=Object.create(t);t[gct].push(o),o.ready=t[PDn].bind(o),o[gct]=[],o[Ect]=MDn.buildReply(o[Ect]),o[_ct]=DDn.buildRequest(o[_ct]),o[bct]=UDn.helpers.buildContentTypeParser(o[bct]),o[Nde]=FDn(o[Nde]),o[yct]=jDn(o[yct],r.prefix),o[Sct]=r.logLevel||o[Sct],o[oI]=LDn.buildSchemaController(t[oI]),o.getSchema=o[oI].getSchema.bind(o[oI]),o.getSchemas=o[oI].getSchemas.bind(o[oI]),o[cD.kRegisteredPlugins]=Object.create(o[cD.kRegisteredPlugins]),o[Tct]=[s],o[CDn]=!1,(o[Pde]||r.logSerializers)&&(o[Pde]=Object.assign(Object.create(o[Pde]),r.logSerializers)),r.prefix&&o[NDn].arrange404(o);for(let a of o[Nde].onRegister)a.call(t,o,r);return o};function jDn(e,t){return t?(e.endsWith("/")&&t[0]==="/"?t=t.slice(1):t[0]!=="/"&&(t="/"+t),e+t):e}});var xct=w(Oh=>{"use strict";Object.defineProperty(Oh,"__esModule",{value:!0});Oh.parseCookie=kct;Oh.parse=kct;Oh.stringifyCookie=VDn;Oh.stringifySetCookie=SK;Oh.serialize=SK;Oh.parseSetCookie=WDn;Oh.stringifySetCookie=SK;Oh.serialize=SK;var Act=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,wct=/^[\u0021-\u003A\u003C-\u007E]*$/,HDn=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,qDn=/^[\u0020-\u003A\u003D-\u007E]*$/,BDn=/^-?\d+$/,zDn=Object.prototype.toString,GDn=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function kct(e,t){let n=new GDn,r=e.length;if(r<2)return n;let i=t?.decode||Ict,s=0;do{let o=Mde(e,s,r);if(o===-1)break;let a=Cde(e,s,r);if(o>a){s=e.lastIndexOf(";",o-1)+1;continue}let c=sb(e,s,o);n[c]===void 0&&(n[c]=i(sb(e,o+1,a))),s=a+1}while(sr;){let s=e.charCodeAt(i-1);if(s!==32&&s!==9)break;i--}return e.slice(r,i)}function Ict(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function KDn(e){return zDn.call(e)==="[object Date]"}});var Pct=w((mYr,bK)=>{"use strict";var{format:Dde}=K("node:util");function YDn(e){return Oct({...e,name:"DeprecationWarning"})}function Oct({name:e,code:t,message:n,unlimited:r=!1}={}){if(!e)throw new Error("Warning name must not be empty");if(!t)throw new Error("Warning code must not be empty");if(!n)throw new Error("Warning message must not be empty");if(typeof r!="boolean")throw new Error("Warning opts.unlimited must be a boolean");t=t.toUpperCase();let i={[e]:function(o,a,c){s.emitted===!0&&s.unlimited!==!0||(s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code))}};r&&(i={[e]:function(o,a,c){s.emitted=!0,process.emitWarning(s.format(o,a,c),s.name,s.code)}});let s=i[e];return s.emitted=!1,s.message=n,s.unlimited=r,s.code=t,s.format=function(o,a,c){let u;return o&&a&&c?u=Dde(n,o,a,c):o&&a?u=Dde(n,o,a):o?u=Dde(n,o):u=n,u},s}var Lde={createWarning:Oct,createDeprecation:YDn};bK.exports=Lde;bK.exports.default=Lde;bK.exports.processWarning=Lde});var Mct=w((gYr,Cct)=>{"use strict";var{URL:Nct}=K("node:url"),Ude="http://localhost";Cct.exports=function(t,n){(typeof t=="string"||Object.prototype.toString.call(t)==="[object String]")&&t.startsWith("//")&&(t=Ude+t);let r=typeof t=="object"?Object.assign(new Nct(Ude),t):new Nct(t,Ude);if(typeof n=="string"){n=new URLSearchParams(n);for(let i of n.keys()){r.searchParams.delete(i);for(let s of n.getAll(i))r.searchParams.append(i,s)}}else{let i=Object.assign({},t.query,n);for(let s in i){let o=i[s];if(Array.isArray(o)){r.searchParams.delete(s);for(let a of o)r.searchParams.append(s,a)}else r.searchParams.set(s,o)}}return r}});var Dct=w((yYr,Fde)=>{"use strict";var{randomUUID:ZDn}=K("node:crypto"),{Readable:JDn}=K("node:stream"),aI;function XDn(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function QDn(e){aI=aI??new TextEncoder;let t=`----formdata-${ZDn()}`,n=`--${t}\r Content-Disposition: form-data`;let r=c=>c.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),i=c=>c.replace(/\r?\n|\r/g,`\r `),s=new Uint8Array([13,10]);async function*o(){for(let[c,u]of e)if(typeof u=="string")yield aI.encode(`${n}; name="${r(i(c))}"\r \r @@ -464,100 +464,100 @@ Content-Disposition: form-data`;let r=c=>c.replace(/\n/g,"%0A").replace(/\r/g,"% `);else{let l=`${n}; name="${r(i(c))}"`;u.name&&(l+=`; filename="${r(u.name)}"`),l+=`\r Content-Type: ${u.type||"application/octet-stream"}\r \r -`,yield aI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield aI.encode(`--${t}--`)}return{stream:JDn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}Ude.exports.isFormDataLike=XDn;Ude.exports.formDataToStream=QDn});var Uct=w((SYr,SK)=>{"use strict";var{Readable:Dct,addAbortSignal:$Dn}=K("node:stream"),jde=K("node:util"),eLn=Ict(),tLn=K("node:assert"),{createDeprecation:nLn}=Oct(),rLn=Cct(),{isFormDataLike:iLn,formDataToStream:sLn}=Mct(),{EventEmitter:oLn}=K("node:events"),aLn=nLn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function cLn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var Fde=class extends oLn{constructor(t){super(),this.remoteAddress=t}};function Lct(e){return new t(this);function t(n){ob.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(ob.prototype))this.constructor.prototype[r]=ob.prototype[r];return jde.inherits(this.constructor,e.Request),this}}function ob(e){Dct.call(this,{autoDestroy:!1});let t=rLn(e.url||e.path,e.query);this.url=t.pathname+t.search,this.aborted=!1,this.httpVersionMajor=1,this.httpVersionMinor=1,this.httpVersion="1.1",this.method=e.method?e.method.toUpperCase():"GET",this.headers={},this.rawHeaders=[];let n=e.headers||{};for(let o in n){let a=o.toLowerCase();if((a==="user-agent"||a==="content-type")&&n[o]===void 0){this.headers[a]=void 0;continue}let c=n[o];tLn(c!==void 0,'invalid value "undefined" for header '+o),this.headers[a]=""+c}if("user-agent"in this.headers||(this.headers["user-agent"]="lightMyRequest"),this.headers.host=this.headers.host||e.authority||cLn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>eLn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new Fde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return aLn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(iLn(r)){let o=sLn(r);r=o.stream,i=!0,this.headers["content-type"]=o.contentType,this.headers["transfer-encoding"]="chunked"}r&&typeof r!="string"&&!i&&!Buffer.isBuffer(r)&&(r=JSON.stringify(r),"content-type"in this.headers||(this.headers["content-type"]="application/json")),r&&!i&&!Object.hasOwn(this.headers,"content-length")&&(this.headers["content-length"]=(Buffer.isBuffer(r)?r.length:Buffer.byteLength(r)).toString());for(let o of Object.keys(this.headers))this.rawHeaders.push(o,this.headers[o]);this._lightMyRequest={payload:r,isDone:!1,simulate:e.simulate||{},payloadAsStream:e.payloadAsStream,signal:e.signal};let s=e.signal;s&&$Dn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=uLn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=lLn}return this}function uLn(){let e=this._lightMyRequest.payload,t=!0,n=!1,r;for(;t&&(r=e.read());)n=!0,t=this.push(r);t&&!n&&this._lightMyRequest.payload.once("readable",this._read.bind(this))}function lLn(){setImmediate(()=>{if(this._lightMyRequest.isDone){this._lightMyRequest.simulate.end!==!1&&this.push(null);return}this._lightMyRequest.isDone=!0,this._lightMyRequest.payload&&(this._lightMyRequest.simulate.split?(this.push(this._lightMyRequest.payload.slice(0,1)),this.push(this._lightMyRequest.payload.slice(1))):this.push(this._lightMyRequest.payload)),this._lightMyRequest.simulate.error&&this.emit("error",new Error("Simulated")),this._lightMyRequest.simulate.close&&this.emit("close"),this._lightMyRequest.simulate.end!==!1&&this.push(null)})}jde.inherits(ob,Dct);jde.inherits(Lct,ob);ob.prototype.destroy=function(e){this.destroyed||this._lightMyRequest.isDone||(this.destroyed=!0,e&&(this._error=!0,process.nextTick(()=>this.emit("error",e))),process.nextTick(()=>this.emit("close")))};SK.exports=ob;SK.exports.Request=ob;SK.exports.CustomRequest=Lct});var jct=w((bYr,cD)=>{"use strict";var bK={decodeValues:!0,map:!1,silent:!1};function Hde(e){return typeof e!="string"||e in{}}function qde(){return Object.create(null)}function Bde(e){return typeof e=="string"&&!!e.trim()}function zde(e,t){var n=e.split(";").filter(Bde),r=n.shift(),i=dLn(r),s=i.name,o=i.value;if(t=t?Object.assign({},bK,t):bK,Hde(s))return null;try{o=t.decodeValues?decodeURIComponent(o):o}catch(c){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",c)}var a=qde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!Hde(l)){var d=u.join("=");if(l==="expires")a.expires=new Date(d);else if(l==="max-age"){var f=parseInt(d,10);Number.isNaN(f)||(a.maxAge=f)}else l==="secure"?a.secure=!0:l==="httponly"?a.httpOnly=!0:l==="samesite"?a.sameSite=d:l==="partitioned"?a.partitioned=!0:l&&(a[l]=d)}}),a}function dLn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function Fct(e,t){if(t=t?Object.assign({},bK,t):bK,!e)return t.map?qde():[];if(e.headers)if(typeof e.headers.getSetCookie=="function")e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var n=e.headers[Object.keys(e.headers).find(function(i){return i.toLowerCase()==="set-cookie"})];!n&&e.headers.cookie&&!t.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=n}if(Array.isArray(e)||(e=[e]),t.map){var r=qde();return e.filter(Bde).reduce(function(i,s){var o=zde(s,t);return o&&!Hde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(Bde).map(function(i){return zde(i,t)}).filter(Boolean)}function fLn(e){if(Array.isArray(e))return e;if(typeof e!="string")return[];var t=[],n=0,r,i,s,o,a;function c(){for(;n=e.length)&&t.push(e.substring(r,e.length))}return t}cD.exports=Fct;cD.exports.parse=Fct;cD.exports.parseString=zde;cD.exports.splitCookiesString=fLn});var Gct=w((EYr,zct)=>{"use strict";var uD=K("node:http"),{Writable:pLn,Readable:Hct,addAbortSignal:hLn}=K("node:stream"),mLn=K("node:util"),gLn=jct();function ab(e,t,n){if(uD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new Hct({read:a})};let c=e._lightMyRequest.signal;c&&hLn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(yLn()),this._promiseCallback=typeof n=="function";let r=!1,i=a=>{if(!r){if(r=!0,this._promiseCallback)return process.nextTick(()=>t(a));process.nextTick(()=>t(null,a))}};this._lightMyRequest.onEndSuccess=i;let s=!1,o=a=>{if(r){this._lightMyRequest.stream&&!s&&(a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._lightMyRequest.stream.destroy(a),this._lightMyRequest.stream.on("error",()=>{}));return}if(r=!0,a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._promiseCallback)return process.nextTick(()=>n(a));process.nextTick(()=>t(a,null))};this._lightMyRequest.stream?this.once("finish",()=>{s=!0,this._lightMyRequest.stream.push(null)}):this.once("finish",()=>{let a=qct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}mLn.inherits(ab,uD.ServerResponse);ab.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};ab.prototype.writeHead=function(){let e=uD.ServerResponse.prototype.writeHead.apply(this,arguments);return Bct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(qct(this)),e};ab.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),uD.ServerResponse.prototype.write.call(this,e,t,n),this._lightMyRequest.stream?this._lightMyRequest.stream.push(Buffer.from(e,t)):(this._lightMyRequest.payloadChunks.push(Buffer.from(e,t)),!0)};ab.prototype.end=function(e,t,n){e&&this.write(e,t),uD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};ab.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};ab.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function qct(e){e._lightMyRequest.headers===null&&Bct(e),SLn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return gLn.parse(this)}};if(t.trailers=e._lightMyRequest.trailers,e._lightMyRequest.payloadChunks){let n=Buffer.concat(e._lightMyRequest.payloadChunks);t.rawPayload=n,t.payload=n.toString(),t.body=t.payload,t.json=function(){return JSON.parse(t.payload)}}else t.json=function(){throw new Error("Response payload is not available with payloadAsStream: true")};return t.stream=function(){return e._lightMyRequest.stream?e._lightMyRequest.stream:Hct.from(e._lightMyRequest.payloadChunks)},t}function yLn(){return new pLn({write(e,t,n){setImmediate(n)}})}function SLn(e){let t=e._lightMyRequest.headers;for(let n of Object.keys(t)){let r=t[n];Array.isArray(r)?t[n]=r.map(i=>""+i):t[n]=""+r}}function Bct(e){e._lightMyRequest.headers=Object.assign({},e.getHeaders()),["Date","Connection","Transfer-Encoding"].forEach(t=>{let n=new RegExp("\\r\\n"+t+": ([^\\r]*)\\r\\n"),r=e._header?.match(n);r&&(e._lightMyRequest.headers[t.toLowerCase()]=r[1])})}zct.exports=ab});var Vct=w((_Yr,Gde)=>{"use strict";Gde.exports=eo;Gde.exports.default=eo;var bLn={type:"object",properties:{url:{oneOf:[{type:"string"},{type:"object",properties:{protocol:{type:"string"},hostname:{type:"string"},pathname:{type:"string"}},additionalProperties:!0,required:["pathname"]}]},path:{oneOf:[{type:"string"},{type:"object",properties:{protocol:{type:"string"},hostname:{type:"string"},pathname:{type:"string"}},additionalProperties:!0,required:["pathname"]}]},cookies:{type:"object",additionalProperties:!0},headers:{type:"object",additionalProperties:!0},query:{anyOf:[{type:"object",additionalProperties:!0},{type:"string"}]},simulate:{type:"object",properties:{end:{type:"boolean"},split:{type:"boolean"},error:{type:"boolean"},close:{type:"boolean"}}},authority:{type:"string"},remoteAddress:{type:"string"},method:{type:"string",enum:["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE","acl","bind","checkout","connect","copy","delete","get","head","link","lock","m-search","merge","mkactivity","mkcalendar","mkcol","move","notify","options","patch","post","propfind","proppatch","purge","put","query","rebind","report","search","source","subscribe","trace","unbind","unlink","unlock","unsubscribe"]},validate:{type:"boolean"}},additionalProperties:!0,oneOf:[{required:["url"]},{required:["path"]}]};function eo(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o,c=!1,u=null,l=o;if(e&&typeof e=="object"&&!Array.isArray(e)){let E;if(e.url===void 0&&(E="url")){let _={instancePath:t,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:E},message:"must have required property '"+E+"'"};s===null?s=[_]:s.push(_),o++}}var f=l===o;f&&(c=!0,u=0);let d=o;if(e&&typeof e=="object"&&!Array.isArray(e)){let E;if(e.path===void 0&&(E="path")){let _={instancePath:t,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty:E},message:"must have required property '"+E+"'"};s===null?s=[_]:s.push(_),o++}}var f=d===o;if(f&&c?(c=!1,u=[u,1]):f&&(c=!0,u=1),c)o=a,s!==null&&(a?s.length=a:s=null);else{let E={instancePath:t,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas:u},message:"must match exactly one schema in oneOf"};return s===null?s=[E]:s.push(E),o++,eo.errors=s,!1}if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){if(e.url!==void 0){let E=e.url,_=o,T=o,R=!1,A=null,x=o;if(typeof E!="string"){let P=typeof E,N;if(N===void 0)if(P=="number"||P=="boolean")N=""+E;else if(E===null)N="";else{let C={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[C]:s.push(C),o++}N!==void 0&&(E=N,e!==void 0&&(e.url=N))}var h=x===o;h&&(R=!0,A=0);let k=o;if(o===k)if(E&&typeof E=="object"&&!Array.isArray(E)){let P;if(E.pathname===void 0&&(P="pathname")){let N={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/1/required",keyword:"required",params:{missingProperty:P},message:"must have required property '"+P+"'"};s===null?s=[N]:s.push(N),o++}else{if(E.protocol!==void 0){let N=E.protocol,C=o;if(typeof N!="string"){let L=typeof N,G;if(G===void 0)if(L=="number"||L=="boolean")G=""+N;else if(N===null)G="";else{let W={instancePath:t+"/url/protocol",schemaPath:"#/properties/url/oneOf/1/properties/protocol/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[W]:s.push(W),o++}G!==void 0&&(N=G,E!==void 0&&(E.protocol=G))}var p=C===o}else var p=!0;if(p){if(E.hostname!==void 0){let N=E.hostname,C=o;if(typeof N!="string"){let G=typeof N,W;if(W===void 0)if(G=="number"||G=="boolean")W=""+N;else if(N===null)W="";else{let $={instancePath:t+"/url/hostname",schemaPath:"#/properties/url/oneOf/1/properties/hostname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}W!==void 0&&(N=W,E!==void 0&&(E.hostname=W))}var p=C===o}else var p=!0;if(p)if(E.pathname!==void 0){let N=E.pathname,C=o;if(typeof N!="string"){let G=typeof N,W;if(W===void 0)if(G=="number"||G=="boolean")W=""+N;else if(N===null)W="";else{let $={instancePath:t+"/url/pathname",schemaPath:"#/properties/url/oneOf/1/properties/pathname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}W!==void 0&&(N=W,E!==void 0&&(E.pathname=W))}var p=C===o}else var p=!0}}}else{let P={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[P]:s.push(P),o++}var h=k===o;if(h&&R?(R=!1,A=[A,1]):h&&(R=!0,A=1),R)o=T,s!==null&&(T?s.length=T:s=null);else{let P={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf",keyword:"oneOf",params:{passingSchemas:A},message:"must match exactly one schema in oneOf"};return s===null?s=[P]:s.push(P),o++,eo.errors=s,!1}var m=_===o}else var m=!0;if(m){if(e.path!==void 0){let E=e.path,_=o,T=o,R=!1,A=null,x=o;if(typeof E!="string"){let N=typeof E,C;if(C===void 0)if(N=="number"||N=="boolean")C=""+E;else if(E===null)C="";else{let L={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[L]:s.push(L),o++}C!==void 0&&(E=C,e!==void 0&&(e.path=C))}var y=x===o;y&&(R=!0,A=0);let k=o;if(o===k)if(E&&typeof E=="object"&&!Array.isArray(E)){let N;if(E.pathname===void 0&&(N="pathname")){let C={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/required",keyword:"required",params:{missingProperty:N},message:"must have required property '"+N+"'"};s===null?s=[C]:s.push(C),o++}else{if(E.protocol!==void 0){let C=E.protocol,L=o;if(typeof C!="string"){let G=typeof C,W;if(W===void 0)if(G=="number"||G=="boolean")W=""+C;else if(C===null)W="";else{let $={instancePath:t+"/path/protocol",schemaPath:"#/properties/path/oneOf/1/properties/protocol/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}W!==void 0&&(C=W,E!==void 0&&(E.protocol=W))}var g=L===o}else var g=!0;if(g){if(E.hostname!==void 0){let C=E.hostname,L=o;if(typeof C!="string"){let W=typeof C,$;if($===void 0)if(W=="number"||W=="boolean")$=""+C;else if(C===null)$="";else{let q={instancePath:t+"/path/hostname",schemaPath:"#/properties/path/oneOf/1/properties/hostname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[q]:s.push(q),o++}$!==void 0&&(C=$,E!==void 0&&(E.hostname=$))}var g=L===o}else var g=!0;if(g)if(E.pathname!==void 0){let C=E.pathname,L=o;if(typeof C!="string"){let W=typeof C,$;if($===void 0)if(W=="number"||W=="boolean")$=""+C;else if(C===null)$="";else{let q={instancePath:t+"/path/pathname",schemaPath:"#/properties/path/oneOf/1/properties/pathname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[q]:s.push(q),o++}$!==void 0&&(C=$,E!==void 0&&(E.pathname=$))}var g=L===o}else var g=!0}}}else{let N={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[N]:s.push(N),o++}var y=k===o;if(y&&R?(R=!1,A=[A,1]):y&&(R=!0,A=1),R)o=T,s!==null&&(T?s.length=T:s=null);else{let N={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf",keyword:"oneOf",params:{passingSchemas:A},message:"must match exactly one schema in oneOf"};return s===null?s=[N]:s.push(N),o++,eo.errors=s,!1}var m=_===o}else var m=!0;if(m){if(e.cookies!==void 0){let E=e.cookies,_=o;if(o===_&&!(E&&typeof E=="object"&&!Array.isArray(E)))return eo.errors=[{instancePath:t+"/cookies",schemaPath:"#/properties/cookies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=_===o}else var m=!0;if(m){if(e.headers!==void 0){let E=e.headers,_=o;if(o===_&&!(E&&typeof E=="object"&&!Array.isArray(E)))return eo.errors=[{instancePath:t+"/headers",schemaPath:"#/properties/headers/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=_===o}else var m=!0;if(m){if(e.query!==void 0){let E=e.query,_=o,T=o,R=!1,A=o;if(o===A&&!(E&&typeof E=="object"&&!Array.isArray(E))){let k={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[k]:s.push(k),o++}var b=A===o;if(R=R||b,!R){let k=o;if(typeof E!="string"){let N=typeof E,C;if(C===void 0)if(N=="number"||N=="boolean")C=""+E;else if(E===null)C="";else{let L={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[L]:s.push(L),o++}C!==void 0&&(E=C,e!==void 0&&(e.query=C))}var b=k===o;R=R||b}if(R)o=T,s!==null&&(T?s.length=T:s=null);else{let k={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[k]:s.push(k),o++,eo.errors=s,!1}var m=_===o}else var m=!0;if(m){if(e.simulate!==void 0){let E=e.simulate,_=o;if(o===_)if(E&&typeof E=="object"&&!Array.isArray(E)){if(E.end!==void 0){let R=E.end,A=o;if(typeof R!="boolean"){let x;if(x===void 0)if(R==="false"||R===0||R===null)x=!1;else if(R==="true"||R===1)x=!0;else return eo.errors=[{instancePath:t+"/simulate/end",schemaPath:"#/properties/simulate/properties/end/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;x!==void 0&&(R=x,E!==void 0&&(E.end=x))}var S=A===o}else var S=!0;if(S){if(E.split!==void 0){let R=E.split,A=o;if(typeof R!="boolean"){let k;if(k===void 0)if(R==="false"||R===0||R===null)k=!1;else if(R==="true"||R===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/split",schemaPath:"#/properties/simulate/properties/split/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(R=k,E!==void 0&&(E.split=k))}var S=A===o}else var S=!0;if(S){if(E.error!==void 0){let R=E.error,A=o;if(typeof R!="boolean"){let k;if(k===void 0)if(R==="false"||R===0||R===null)k=!1;else if(R==="true"||R===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/error",schemaPath:"#/properties/simulate/properties/error/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(R=k,E!==void 0&&(E.error=k))}var S=A===o}else var S=!0;if(S)if(E.close!==void 0){let R=E.close,A=o;if(typeof R!="boolean"){let k;if(k===void 0)if(R==="false"||R===0||R===null)k=!1;else if(R==="true"||R===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/close",schemaPath:"#/properties/simulate/properties/close/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(R=k,E!==void 0&&(E.close=k))}var S=A===o}else var S=!0}}}else return eo.errors=[{instancePath:t+"/simulate",schemaPath:"#/properties/simulate/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=_===o}else var m=!0;if(m){if(e.authority!==void 0){let E=e.authority,_=o;if(typeof E!="string"){let R=typeof E,A;if(A===void 0)if(R=="number"||R=="boolean")A=""+E;else if(E===null)A="";else return eo.errors=[{instancePath:t+"/authority",schemaPath:"#/properties/authority/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;A!==void 0&&(E=A,e!==void 0&&(e.authority=A))}var m=_===o}else var m=!0;if(m){if(e.remoteAddress!==void 0){let E=e.remoteAddress,_=o;if(typeof E!="string"){let R=typeof E,A;if(A===void 0)if(R=="number"||R=="boolean")A=""+E;else if(E===null)A="";else return eo.errors=[{instancePath:t+"/remoteAddress",schemaPath:"#/properties/remoteAddress/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;A!==void 0&&(E=A,e!==void 0&&(e.remoteAddress=A))}var m=_===o}else var m=!0;if(m){if(e.method!==void 0){let E=e.method,_=o;if(typeof E!="string"){let R=typeof E,A;if(A===void 0)if(R=="number"||R=="boolean")A=""+E;else if(E===null)A="";else return eo.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;A!==void 0&&(E=A,e!==void 0&&(e.method=A))}if(!(E==="ACL"||E==="BIND"||E==="CHECKOUT"||E==="CONNECT"||E==="COPY"||E==="DELETE"||E==="GET"||E==="HEAD"||E==="LINK"||E==="LOCK"||E==="M-SEARCH"||E==="MERGE"||E==="MKACTIVITY"||E==="MKCALENDAR"||E==="MKCOL"||E==="MOVE"||E==="NOTIFY"||E==="OPTIONS"||E==="PATCH"||E==="POST"||E==="PROPFIND"||E==="PROPPATCH"||E==="PURGE"||E==="PUT"||E==="QUERY"||E==="REBIND"||E==="REPORT"||E==="SEARCH"||E==="SOURCE"||E==="SUBSCRIBE"||E==="TRACE"||E==="UNBIND"||E==="UNLINK"||E==="UNLOCK"||E==="UNSUBSCRIBE"||E==="acl"||E==="bind"||E==="checkout"||E==="connect"||E==="copy"||E==="delete"||E==="get"||E==="head"||E==="link"||E==="lock"||E==="m-search"||E==="merge"||E==="mkactivity"||E==="mkcalendar"||E==="mkcol"||E==="move"||E==="notify"||E==="options"||E==="patch"||E==="post"||E==="propfind"||E==="proppatch"||E==="purge"||E==="put"||E==="query"||E==="rebind"||E==="report"||E==="search"||E==="source"||E==="subscribe"||E==="trace"||E==="unbind"||E==="unlink"||E==="unlock"||E==="unsubscribe"))return eo.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/enum",keyword:"enum",params:{allowedValues:bLn.properties.method.enum},message:"must be equal to one of the allowed values"}],!1;var m=_===o}else var m=!0;if(m)if(e.validate!==void 0){let E=e.validate,_=o;if(typeof E!="boolean"){let R;if(R===void 0)if(E==="false"||E===0||E===null)R=!1;else if(E==="true"||E===1)R=!0;else return eo.errors=[{instancePath:t+"/validate",schemaPath:"#/properties/validate/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;R!==void 0&&(E=R,e!==void 0&&(e.validate=R))}var m=_===o}else var m=!0}}}}}}}}}else return eo.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return eo.errors=s,o===0}});var Yct=w((TYr,dD)=>{"use strict";var ELn=K("node:assert"),Vde=Uct(),EK=Gct(),TK="The dispatch function has already been invoked",Wct=Vct();function Wde(e,t,n){return n===void 0?new lD(e,t):_K(e,t,n)}function _Ln(e,t){let n=e._lightMyRequest.payload;if(!n||n._readableState||typeof n.resume!="function")return t();let r=[];n.on("data",i=>r.push(Buffer.from(i))),n.on("end",()=>{let i=Buffer.concat(r);return e.headers["content-length"]=e.headers["content-length"]||""+i.length,delete e.headers["transfer-encoding"],e._lightMyRequest.payload=i,t()}),n.resume()}function Kct(e,t,n,r){return n.once("error",function(i){this.destroyed&&r.destroy(i)}),n.once("close",function(){this.destroyed&&!this._error&&r.destroy()}),_Ln(n,()=>e.call(t,n,r))}function _K(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(ELn(typeof e=="function","dispatchFunc should be a function"),!Wct(t)))throw new Error(Wct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Vde.CustomRequest:Vde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),EK.prototype)),typeof n=="function"){let s=new i(t),o=new EK(s,n);return Kct(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new EK(a,s,o);Kct(e,r,a,c)})}function lD(e,t){typeof t=="string"?this.option={url:t}:this.option=Object.assign({},t),this.dispatch=e,this._hasInvoked=!1,this._promise=null,this.option.autoStart!==!1&&process.nextTick(()=>{this._hasInvoked||this.end()})}var TLn=["delete","get","head","options","patch","post","put","trace"];TLn.forEach(e=>{lD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(TK);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var vLn=["body","cookies","headers","payload","query"];vLn.forEach(e=>{lD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(TK);return this.option[e]=t,this}});lD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(TK);if(this._hasInvoked=!0,typeof e=="function")_K(this.dispatch,this.option,e);else return this._promise=_K(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(lD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(TK);this._hasInvoked=!0,this._promise=_K(this.dispatch,this.option)}return this._promise[e](...t)})});function RLn(e){return e instanceof Vde||e instanceof EK||e?.constructor?.name==="_CustomLMRRequest"}dD.exports=Wde;dD.exports.default=Wde;dD.exports.inject=Wde;dD.exports.isInjection=RLn});var lut=w((vYr,gD)=>{"use strict";var ALn="5.8.5",wLn=_Qe(),wK=K("node:http"),kLn=K("node:diagnostics_channel"),fD,{kAvvioBoot:pD,kChildren:Kde,kServerBindings:Zct,kBodyLimit:ILn,kSupportedHTTPMethods:ST,kRoutePrefix:Jct,kLogLevel:xLn,kLogSerializers:OLn,kHooks:Yde,kSchemaController:cb,kRequestAcceptVersion:PLn,kReplySerializerDefault:Xct,kContentTypeParser:NLn,kReply:CLn,kRequest:MLn,kFourOhFour:DLn,kState:Qi,kOptions:Zde,kPluginNameChain:hD,kSchemaErrorFormatter:Jde,kErrorHandler:vK,kKeepAliveConnections:Xde,kChildLoggerFactory:Qde,kGenReqId:$de,kErrorHandlerAlreadySet:RK,kHandlerTimeout:LLn}=$s(),{createServer:ULn}=ZQe(),mD=d4(),AK=y4(),FLn=S4(),bT=xM(),ET=Uue(),Qct=Dle(),{Hooks:jLn,hookRunnerApplication:$ct,supportedHooks:efe}=YS(),{createChildLogger:eut,defaultChildLoggerFactory:HLn,createLogger:qLn}=RM(),tut=ode(),{getGenReqId:nut,reqIdGenFactory:cut}=K4(),{buildRouting:BLn,validateBodyLimitOption:zLn,buildRouterOptions:GLn}=sct(),VLn=fct(),uut=hct(),WLn=vct(),{appendStackTrace:KLn,AVVIO_ERRORS_MAP:rut,..._T}=Ko(),YLn=ace(),{defaultInitOptions:Ou}=uut,{FST_ERR_ASYNC_CONSTRAINT:ZLn,FST_ERR_BAD_URL:JLn,FST_ERR_OPTIONS_NOT_OBJ:XLn,FST_ERR_QSP_NOT_FN:QLn,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:$Ln,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:e1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:t1n,FST_ERR_INSTANCE_ALREADY_LISTENING:n1n,FST_ERR_REOPENED_CLOSE_SERVER:r1n,FST_ERR_ROUTE_REWRITE_NOT_STR:i1n,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:iut,FST_ERR_ERROR_HANDLER_NOT_FN:s1n,FST_ERR_ERROR_HANDLER_ALREADY_SET:o1n,FST_ERR_ROUTE_METHOD_INVALID:a1n}=_T,{buildErrorHandler:sut}=wM(),{FSTWRN004:c1n}=Pk(),out=kLn.channel("fastify.initialization");function tfe(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=u1n(e,P,N),o=BLn(t.routerOptions),a=VLn(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=ULn(t,c),m=mD.setupResponseListeners,g=Qct.buildSchemaController(null,t.schemaController),y={[Qi]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[Xde]:h,[ST]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[Zde]:t,[Kde]:[],[Zct]:[],[ILn]:t.bodyLimit,[LLn]:t.handlerTimeout,[Jct]:"",[xLn]:"",[OLn]:null,[Yde]:new jLn,[cb]:g,[Jde]:null,[vK]:sut(),[RK]:!1,[Qde]:t.childLoggerFactory||HLn,[Xct]:null,[NLn]:new ET(t.bodyLimit,t.onProtoPoisoning||Ou.onProtoPoisoning,t.onConstructorPoisoning||Ou.onConstructorPoisoning),[CLn]:mD.buildReply(mD),[MLn]:AK.buildRequest(AK,t.trustProxy),[DLn]:a,[tut.kRegisteredPlugins]:[],[hD]:["fastify"],[pD]:null,[$de]:n,routing:c,delete:function(Y,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:Y,options:ee,handler:se})},get:function(Y,ee,se){return o.prepareRoute.call(this,{method:"GET",url:Y,options:ee,handler:se})},head:function(Y,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:Y,options:ee,handler:se})},trace:function(Y,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:Y,options:ee,handler:se})},patch:function(Y,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:Y,options:ee,handler:se})},post:function(Y,ee,se){return o.prepareRoute.call(this,{method:"POST",url:Y,options:ee,handler:se})},put:function(Y,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:Y,options:ee,handler:se})},options:function(Y,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:Y,options:ee,handler:se})},all:function(Y,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:Y,options:ee,handler:se})},route:function(Y){return o.route.call(this,{options:Y})},hasRoute:function(Y){return o.hasRoute.call(this,{options:Y})},findRoute:function(Y){return o.findRoute(Y)},log:t.logger,withTypeProvider:A,addHook:x,addSchema:k,getSchema:g.getSchema.bind(g),getSchemas:g.getSchemas.bind(g),setValidatorCompiler:G,setSerializerCompiler:$,setSchemaController:q,setReplySerializer:Q,setSchemaErrorFormatter:W,setGenReqId:M,addContentTypeParser:ET.helpers.addContentTypeParser,hasContentTypeParser:ET.helpers.hasContentTypeParser,getDefaultJsonParser:ET.defaultParsers.getDefaultJsonParser,defaultTextParser:ET.defaultParsers.defaultTextParser,removeContentTypeParser:ET.helpers.removeContentTypeParser,removeAllContentTypeParsers:ET.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(j){return this[tut.kRegisteredPlugins].includes(j)||this[hD].includes(j)},listen:l,server:u,addresses:function(){let j=this[Zct].map(Y=>Y.address());return j.push(this.server.address()),j.filter(Y=>Y)},decorate:bT.add,hasDecorator:bT.exist,decorateReply:bT.decorateReply,decorateRequest:bT.decorateRequest,hasRequestDecorator:bT.existRequest,hasReplyDecorator:bT.existReply,getDecorator:bT.getInstanceDecorator,addHttpMethod:H,inject:T,printRoutes:V,setNotFoundHandler:L,setErrorHandler:B,setChildLoggerFactory:F,initialConfig:s,addConstraintStrategy:o.addConstraintStrategy.bind(o),hasConstraintStrategy:o.hasConstraintStrategy.bind(o)};Object.defineProperties(y,{listeningOrigin:{get(){let j=this.addresses().slice(-1).pop();if(typeof j=="string")return j;let Y=j.family==="IPv6"?`[${j.address}]`:j.address;return`${this[Zde].https?"https":"http"}://${Y}:${j.port}`}},pluginName:{configurable:!0,get(){return this[hD].length>1?this[hD].join(" -> "):this[hD][0]}},prefix:{configurable:!0,get(){return this[Jct]}},validatorCompiler:{configurable:!0,get(){return this[cb].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[cb].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[Qde]}},version:{configurable:!0,get(){return ALn}},errorHandler:{configurable:!0,get(){return this[vK].func}},genReqId:{configurable:!0,get(){return this[$de]}},supportedMethods:{configurable:!1,get(){return[...this[ST].bodyless,...this[ST].bodywith]}}}),t.schemaErrorFormatter&&(aut(t.schemaErrorFormatter),y[Jde]=t.schemaErrorFormatter.bind(y));let b=Number(t.pluginTimeout),S=wLn(y,{autostart:!1,timeout:isNaN(b)===!1?b:Ou.pluginTimeout,expose:{use:"register"}});S.override=WLn,S.on("start",()=>y[Qi].started=!0),y[pD]=y.ready,y.ready=R,y.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{y.onClose((j,Y)=>{y[Qi].closing=!0,o.closeRoutes(),$ct("preClose",y[pD],y,function(){if(y[Qi].listening){if(d==="idle")j.server.closeIdleConnections();else if(f&&d)j.server.closeAllConnections();else if(d===!0)for(let ee of y[Xde])ee.destroy(),y[Xde].delete(ee)}p&&j.server.closeHttp2Sessions(),!t.serverFactory||y[Qi].listening?j.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?Y(null):Y()}):process.nextTick(Y,null)})})});let E=new FLn({server:y,config:{}});return y.setNotFoundHandler(),a.arrange404(y),o.setup(t,{avvio:S,fourOhFour:a,hasLogger:i,setupResponseListeners:m,throwIfAlreadyStarted:_,keepAliveConnections:h}),u.on("clientError",t.clientErrorHandler.bind(y)),out.hasSubscribers&&out.publish({fastify:y}),"asyncDispose"in Symbol&&(y[Symbol.asyncDispose]=function(){return y.close()}),y;function _(j){if(y[Qi].started)throw new n1n(j)}function T(j,Y){if(fD===void 0&&(fD=Yct()),y[Qi].started){if(y[Qi].closing){let ee=new r1n;if(Y){Y(ee);return}else return Promise.reject(ee)}return fD(c,j,Y)}if(Y)this.ready(ee=>{ee?Y(ee,null):fD(c,j,Y)});else return fD((ee,se)=>{this.ready(function(Le){if(Le){se.emit("error",Le);return}c(ee,se)})},j)}function R(j){if(this[Qi].readyResolver!==null){if(j!=null){this[Qi].readyResolver.promise.then(()=>j(null,y),j);return}return this[Qi].readyResolver.promise}if(process.nextTick(Y),this[Qi].readyResolver=YLn.withResolvers(),j)this[Qi].readyResolver.promise.then(()=>j(null,y),j);else return this[Qi].readyResolver.promise;function Y(){y[pD]((se,Le)=>{se||y[Qi].started||y[Qi].ready||y[Qi].booting?ee(se):(y[Qi].booting=!0,$ct("onReady",y[pD],y,ee)),Le()})}function ee(se){if(se=se!=null&&rut[se.code]!=null?KLn(se,new rut[se.code](se.message)):se,se)return y[Qi].readyResolver.reject(se);y[Qi].readyResolver.resolve(y),y[Qi].booting=!1,y[Qi].ready=!0,y[Qi].readyResolver=null}}function A(){return this}function x(j,Y){if(_('Cannot call "addHook"!'),Y==null)throw new _T.FST_ERR_HOOK_INVALID_HANDLER(j,Y);if(j==="onSend"||j==="preSerialization"||j==="onError"||j==="preParsing"){if(Y.constructor.name==="AsyncFunction"&&Y.length===4)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onReady"||j==="onListen"){if(Y.constructor.name==="AsyncFunction"&&Y.length!==0)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onRequestAbort"){if(Y.constructor.name==="AsyncFunction"&&Y.length!==1)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(Y.constructor.name==="AsyncFunction"&&Y.length===3)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return j==="onClose"?this.onClose(Y.bind(this)):j==="onReady"||j==="onListen"||j==="onRoute"?this[Yde].add(j,Y):this.after((se,Le)=>{try{ee.call(this,j,Y),Le(se)}catch(Ae){Le(Ae)}}),this;function ee(se,Le){this[Yde].add(se,Le),this[Kde].forEach(Ae=>ee.call(Ae,se,Le))}}function k(j){return _('Cannot call "addSchema"!'),this[cb].add(j),this[Kde].forEach(Y=>Y.addSchema(j)),this}function P(j,Y){j.headers["accept-version"]!==void 0&&(j.headers[PLn]=j.headers["accept-version"],j.headers["accept-version"]=void 0),a.router.lookup(j,Y)}function N(j,Y,ee){if(t.frameworkErrors){let Le=nut(E.server,Y),Ae=eut(E,t.logger,Y,Le),z=new AK(Le,null,Y,null,Ae,E),J=new mD(ee,z,Ae);return(typeof r=="function"?r(Y):r)===!1&&Ae.info({req:z},"incoming request"),t.frameworkErrors(new JLn(j),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${j}' is not a valid url component`,statusCode:400});ee.writeHead(400,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(se)}),ee.end(se)}function C(j,Y,ee){if(j!==!1)return function(Le){if(Le){if(t.frameworkErrors){let z=nut(E.server,Y),J=eut(E,t.logger,Y,z),oe=new AK(z,null,Y,null,J,E),le=new mD(ee,oe,J);return(typeof r=="function"?r(Y):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new ZLn,oe,le)}let Ae='{"error":"Internal Server Error","message":"Unexpected error from async constraint","statusCode":500}';ee.writeHead(500,{"Content-Type":"application/json","Content-Length":Ae.length}),ee.end(Ae)}}}function L(j,Y){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,j,Y,S,o.routeHandler),this}function G(j){return _('Cannot call "setValidatorCompiler"!'),this[cb].setValidatorCompiler(j),this}function W(j){return _('Cannot call "setSchemaErrorFormatter"!'),aut(j),this[Jde]=j.bind(this),this}function $(j){return _('Cannot call "setSerializerCompiler"!'),this[cb].setSerializerCompiler(j),this}function q(j){_('Cannot call "setSchemaController"!');let Y=this[cb],ee=Qct.buildSchemaController(Y,Object.assign({},Y.opts,j));return this[cb]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function Q(j){return _('Cannot call "setReplySerializer"!'),this[Xct]=j,this}function B(j){if(_('Cannot call "setErrorHandler"!'),typeof j!="function")throw new s1n;if(!t.allowErrorHandlerOverride&&this[RK])throw new o1n;return this[RK]&&c1n("To disable this behavior, set 'allowErrorHandlerOverride' to false or ignore this message. For more information, visit: https://fastify.dev/docs/latest/Reference/Server/#allowerrorhandleroverride"),this[RK]=!0,this[vK]=sut(this[vK],j.bind(this)),this}function F(j){return _('Cannot call "setChildLoggerFactory"!'),this[Qde]=j,this}function V(j={}){return j.includeMeta=j.includeHooks?j.includeMeta?efe.concat(j.includeMeta):efe:j.includeMeta,o.printRoutes(j)}function U(j,{rewriteUrl:Y,logger:ee}){let se;return function(Ae,z){if(se===void 0&&(se=j.isAsyncConstraint()),Y){Ae.originalUrl=Ae.url;let J=Y.call(y,Ae);if(typeof J=="string")Ae.url=J;else{let oe=new i1n(Ae.url,typeof J);Ae.destroy(oe)}}j.routing(Ae,z,C(se,Ae,z))}}function M(j){return _('Cannot call "setGenReqId"!'),this[$de]=cut(this[Zde].requestIdHeader,j),this}function H(j,{hasBody:Y=!1}={}){if(typeof j!="string"||wK.METHODS.indexOf(j)===-1)throw new a1n;Y===!0?(this[ST].bodywith.add(j),this[ST].bodyless.delete(j)):(this[ST].bodywith.delete(j),this[ST].bodyless.add(j));let ee=j.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Le,Ae){return o.prepareRoute.call(this,{method:j,url:se,options:Le,handler:Ae})}),this}}function u1n(e,t,n){if(e&&typeof e!="object")throw new XLn;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new QLn(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new $Ln(typeof e.schemaController.bucket);zLn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=cut(r,e.genReqId),s=e.requestIdLogLabel||"reqId";e.bodyLimit=e.bodyLimit||Ou.bodyLimit;let o=e.disableRequestLogging||!1,a=Object.assign({customOptions:{},plugins:[]},e.ajv);if(!a.customOptions||Object.prototype.toString.call(a.customOptions)!=="[object Object]")throw new e1n(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new t1n(typeof a.plugins);let{logger:c,hasLogger:u}=qLn(e);e.connectionTimeout=e.connectionTimeout||Ou.connectionTimeout,e.keepAliveTimeout=e.keepAliveTimeout||Ou.keepAliveTimeout,e.maxRequestsPerSocket=e.maxRequestsPerSocket||Ou.maxRequestsPerSocket,e.requestTimeout=e.requestTimeout||Ou.requestTimeout,e.logger=c,e.requestIdHeader=r,e.requestIdLogLabel=s,e.disableRequestLogging=o,e.ajv=a,e.clientErrorHandler=e.clientErrorHandler||d1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??Ou.allowErrorHandlerOverride;let l=uut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=GLn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:Ou.ignoreTrailingSlash,ignoreDuplicateSlashes:Ou.ignoreDuplicateSlashes,maxParamLength:Ou.maxParamLength,allowUnsafeRegex:Ou.allowUnsafeRegex,buildPrettyMeta:l1n,useSemicolonDelimiter:Ou.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function l1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(efe).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function d1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=wK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=wK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=wK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Error","statusCode":400}`,s="error"),this.log.trace({err:e},`client ${s}`),t.writable&&t.write(`HTTP/1.1 ${r} ${i}\r +`,yield aI.encode(l),u.stream?yield*u.stream():yield u,yield s}yield aI.encode(`--${t}--`)}return{stream:JDn.from(o()),contentType:`multipart/form-data; boundary=${t}`}}Fde.exports.isFormDataLike=XDn;Fde.exports.formDataToStream=QDn});var Fct=w((SYr,EK)=>{"use strict";var{Readable:Lct,addAbortSignal:$Dn}=K("node:stream"),Hde=K("node:util"),eLn=xct(),tLn=K("node:assert"),{createDeprecation:nLn}=Pct(),rLn=Mct(),{isFormDataLike:iLn,formDataToStream:sLn}=Dct(),{EventEmitter:oLn}=K("node:events"),aLn=nLn({name:"FastifyDeprecationLightMyRequest",code:"FST_LIGHTMYREQUEST_DEP01",message:'You are accessing "request.connection", use "request.socket" instead.'});function cLn(e){return e.port?e.host:e.hostname+(e.protocol==="https:"?":443":":80")}var jde=class extends oLn{constructor(t){super(),this.remoteAddress=t}};function Uct(e){return new t(this);function t(n){ob.call(n,{...e,Request:void 0}),Object.assign(this,n);for(let r of Object.keys(ob.prototype))this.constructor.prototype[r]=ob.prototype[r];return Hde.inherits(this.constructor,e.Request),this}}function ob(e){Lct.call(this,{autoDestroy:!1});let t=rLn(e.url||e.path,e.query);this.url=t.pathname+t.search,this.aborted=!1,this.httpVersionMajor=1,this.httpVersionMinor=1,this.httpVersion="1.1",this.method=e.method?e.method.toUpperCase():"GET",this.headers={},this.rawHeaders=[];let n=e.headers||{};for(let o in n){let a=o.toLowerCase();if((a==="user-agent"||a==="content-type")&&n[o]===void 0){this.headers[a]=void 0;continue}let c=n[o];tLn(c!==void 0,'invalid value "undefined" for header '+o),this.headers[a]=""+c}if("user-agent"in this.headers||(this.headers["user-agent"]="lightMyRequest"),this.headers.host=this.headers.host||e.authority||cLn(t),e.cookies){let{cookies:o}=e,a=Object.keys(o).map(c=>eLn.serialize(c,o[c]));this.headers.cookie&&a.unshift(this.headers.cookie),this.headers.cookie=a.join("; ")}this.socket=new jde(e.remoteAddress||"127.0.0.1"),Object.defineProperty(this,"connection",{get(){return aLn(),this.socket},configurable:!0});let r=e.payload||e.body||null,i=r&&typeof r.resume=="function";if(iLn(r)){let o=sLn(r);r=o.stream,i=!0,this.headers["content-type"]=o.contentType,this.headers["transfer-encoding"]="chunked"}r&&typeof r!="string"&&!i&&!Buffer.isBuffer(r)&&(r=JSON.stringify(r),"content-type"in this.headers||(this.headers["content-type"]="application/json")),r&&!i&&!Object.hasOwn(this.headers,"content-length")&&(this.headers["content-length"]=(Buffer.isBuffer(r)?r.length:Buffer.byteLength(r)).toString());for(let o of Object.keys(this.headers))this.rawHeaders.push(o,this.headers[o]);this._lightMyRequest={payload:r,isDone:!1,simulate:e.simulate||{},payloadAsStream:e.payloadAsStream,signal:e.signal};let s=e.signal;s&&$Dn(s,this);{let o=this._lightMyRequest.payload;o?._readableState?(this._read=uLn,o.on("error",a=>{this.destroy(a)}),o.on("end",()=>{this.push(null)})):this._read=lLn}return this}function uLn(){let e=this._lightMyRequest.payload,t=!0,n=!1,r;for(;t&&(r=e.read());)n=!0,t=this.push(r);t&&!n&&this._lightMyRequest.payload.once("readable",this._read.bind(this))}function lLn(){setImmediate(()=>{if(this._lightMyRequest.isDone){this._lightMyRequest.simulate.end!==!1&&this.push(null);return}this._lightMyRequest.isDone=!0,this._lightMyRequest.payload&&(this._lightMyRequest.simulate.split?(this.push(this._lightMyRequest.payload.slice(0,1)),this.push(this._lightMyRequest.payload.slice(1))):this.push(this._lightMyRequest.payload)),this._lightMyRequest.simulate.error&&this.emit("error",new Error("Simulated")),this._lightMyRequest.simulate.close&&this.emit("close"),this._lightMyRequest.simulate.end!==!1&&this.push(null)})}Hde.inherits(ob,Lct);Hde.inherits(Uct,ob);ob.prototype.destroy=function(e){this.destroyed||this._lightMyRequest.isDone||(this.destroyed=!0,e&&(this._error=!0,process.nextTick(()=>this.emit("error",e))),process.nextTick(()=>this.emit("close")))};EK.exports=ob;EK.exports.Request=ob;EK.exports.CustomRequest=Uct});var Hct=w((bYr,uD)=>{"use strict";var _K={decodeValues:!0,map:!1,silent:!1};function qde(e){return typeof e!="string"||e in{}}function Bde(){return Object.create(null)}function zde(e){return typeof e=="string"&&!!e.trim()}function Gde(e,t){var n=e.split(";").filter(zde),r=n.shift(),i=dLn(r),s=i.name,o=i.value;if(t=t?Object.assign({},_K,t):_K,qde(s))return null;try{o=t.decodeValues?decodeURIComponent(o):o}catch(c){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",c)}var a=Bde();return a.name=s,a.value=o,n.forEach(function(c){var u=c.split("="),l=u.shift().trimLeft().toLowerCase();if(!qde(l)){var d=u.join("=");if(l==="expires")a.expires=new Date(d);else if(l==="max-age"){var f=parseInt(d,10);Number.isNaN(f)||(a.maxAge=f)}else l==="secure"?a.secure=!0:l==="httponly"?a.httpOnly=!0:l==="samesite"?a.sameSite=d:l==="partitioned"?a.partitioned=!0:l&&(a[l]=d)}}),a}function dLn(e){var t="",n="",r=e.split("=");return r.length>1?(t=r.shift(),n=r.join("=")):n=e,{name:t,value:n}}function jct(e,t){if(t=t?Object.assign({},_K,t):_K,!e)return t.map?Bde():[];if(e.headers)if(typeof e.headers.getSetCookie=="function")e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var n=e.headers[Object.keys(e.headers).find(function(i){return i.toLowerCase()==="set-cookie"})];!n&&e.headers.cookie&&!t.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=n}if(Array.isArray(e)||(e=[e]),t.map){var r=Bde();return e.filter(zde).reduce(function(i,s){var o=Gde(s,t);return o&&!qde(o.name)&&(i[o.name]=o),i},r)}else return e.filter(zde).map(function(i){return Gde(i,t)}).filter(Boolean)}function fLn(e){if(Array.isArray(e))return e;if(typeof e!="string")return[];var t=[],n=0,r,i,s,o,a;function c(){for(;n=e.length)&&t.push(e.substring(r,e.length))}return t}uD.exports=jct;uD.exports.parse=jct;uD.exports.parseString=Gde;uD.exports.splitCookiesString=fLn});var Vct=w((EYr,Gct)=>{"use strict";var lD=K("node:http"),{Writable:pLn,Readable:qct,addAbortSignal:hLn}=K("node:stream"),mLn=K("node:util"),gLn=Hct();function ab(e,t,n){if(lD.ServerResponse.call(this,e),e._lightMyRequest?.payloadAsStream){let a=this.emit.bind(this,"drain");this._lightMyRequest={headers:null,trailers:{},stream:new qct({read:a})};let c=e._lightMyRequest.signal;c&&hLn(c,this._lightMyRequest.stream)}else this._lightMyRequest={headers:null,trailers:{},payloadChunks:[]};this.setHeader("foo","bar"),this.removeHeader("foo"),this.assignSocket(yLn()),this._promiseCallback=typeof n=="function";let r=!1,i=a=>{if(!r){if(r=!0,this._promiseCallback)return process.nextTick(()=>t(a));process.nextTick(()=>t(null,a))}};this._lightMyRequest.onEndSuccess=i;let s=!1,o=a=>{if(r){this._lightMyRequest.stream&&!s&&(a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._lightMyRequest.stream.destroy(a),this._lightMyRequest.stream.on("error",()=>{}));return}if(r=!0,a||(a=new Error("response destroyed before completion"),a.code="LIGHT_ECONNRESET"),this._promiseCallback)return process.nextTick(()=>n(a));process.nextTick(()=>t(a,null))};this._lightMyRequest.stream?this.once("finish",()=>{s=!0,this._lightMyRequest.stream.push(null)}):this.once("finish",()=>{let a=Bct(this);a.raw.req=e,i(a)}),this.connection.once("error",o),this.once("error",o),this.once("close",o)}mLn.inherits(ab,lD.ServerResponse);ab.prototype.setTimeout=function(e,t){return this.timeoutHandle=setTimeout(()=>{this.emit("timeout")},e),this.on("timeout",t),this};ab.prototype.writeHead=function(){let e=lD.ServerResponse.prototype.writeHead.apply(this,arguments);return zct(this),this._lightMyRequest.stream&&this._lightMyRequest.onEndSuccess(Bct(this)),e};ab.prototype.write=function(e,t,n){return this.timeoutHandle&&clearTimeout(this.timeoutHandle),lD.ServerResponse.prototype.write.call(this,e,t,n),this._lightMyRequest.stream?this._lightMyRequest.stream.push(Buffer.from(e,t)):(this._lightMyRequest.payloadChunks.push(Buffer.from(e,t)),!0)};ab.prototype.end=function(e,t,n){e&&this.write(e,t),lD.ServerResponse.prototype.end.call(this,n),this.emit("finish"),this.destroy()};ab.prototype.destroy=function(e){this.destroyed||(this.destroyed=!0,e&&process.nextTick(()=>this.emit("error",e)),process.nextTick(()=>this.emit("close")))};ab.prototype.addTrailers=function(e){for(let t in e)this._lightMyRequest.trailers[t.toLowerCase().trim()]=e[t].toString().trim()};function Bct(e){e._lightMyRequest.headers===null&&zct(e),SLn(e);let t={raw:{res:e},headers:e._lightMyRequest.headers,statusCode:e.statusCode,statusMessage:e.statusMessage,trailers:{},get cookies(){return gLn.parse(this)}};if(t.trailers=e._lightMyRequest.trailers,e._lightMyRequest.payloadChunks){let n=Buffer.concat(e._lightMyRequest.payloadChunks);t.rawPayload=n,t.payload=n.toString(),t.body=t.payload,t.json=function(){return JSON.parse(t.payload)}}else t.json=function(){throw new Error("Response payload is not available with payloadAsStream: true")};return t.stream=function(){return e._lightMyRequest.stream?e._lightMyRequest.stream:qct.from(e._lightMyRequest.payloadChunks)},t}function yLn(){return new pLn({write(e,t,n){setImmediate(n)}})}function SLn(e){let t=e._lightMyRequest.headers;for(let n of Object.keys(t)){let r=t[n];Array.isArray(r)?t[n]=r.map(i=>""+i):t[n]=""+r}}function zct(e){e._lightMyRequest.headers=Object.assign({},e.getHeaders()),["Date","Connection","Transfer-Encoding"].forEach(t=>{let n=new RegExp("\\r\\n"+t+": ([^\\r]*)\\r\\n"),r=e._header?.match(n);r&&(e._lightMyRequest.headers[t.toLowerCase()]=r[1])})}Gct.exports=ab});var Wct=w((_Yr,Vde)=>{"use strict";Vde.exports=eo;Vde.exports.default=eo;var bLn={type:"object",properties:{url:{oneOf:[{type:"string"},{type:"object",properties:{protocol:{type:"string"},hostname:{type:"string"},pathname:{type:"string"}},additionalProperties:!0,required:["pathname"]}]},path:{oneOf:[{type:"string"},{type:"object",properties:{protocol:{type:"string"},hostname:{type:"string"},pathname:{type:"string"}},additionalProperties:!0,required:["pathname"]}]},cookies:{type:"object",additionalProperties:!0},headers:{type:"object",additionalProperties:!0},query:{anyOf:[{type:"object",additionalProperties:!0},{type:"string"}]},simulate:{type:"object",properties:{end:{type:"boolean"},split:{type:"boolean"},error:{type:"boolean"},close:{type:"boolean"}}},authority:{type:"string"},remoteAddress:{type:"string"},method:{type:"string",enum:["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","QUERY","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE","acl","bind","checkout","connect","copy","delete","get","head","link","lock","m-search","merge","mkactivity","mkcalendar","mkcol","move","notify","options","patch","post","propfind","proppatch","purge","put","query","rebind","report","search","source","subscribe","trace","unbind","unlink","unlock","unsubscribe"]},validate:{type:"boolean"}},additionalProperties:!0,oneOf:[{required:["url"]},{required:["path"]}]};function eo(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let s=null,o=0,a=o,c=!1,u=null,l=o;if(e&&typeof e=="object"&&!Array.isArray(e)){let E;if(e.url===void 0&&(E="url")){let _={instancePath:t,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty:E},message:"must have required property '"+E+"'"};s===null?s=[_]:s.push(_),o++}}var f=l===o;f&&(c=!0,u=0);let d=o;if(e&&typeof e=="object"&&!Array.isArray(e)){let E;if(e.path===void 0&&(E="path")){let _={instancePath:t,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty:E},message:"must have required property '"+E+"'"};s===null?s=[_]:s.push(_),o++}}var f=d===o;if(f&&c?(c=!1,u=[u,1]):f&&(c=!0,u=1),c)o=a,s!==null&&(a?s.length=a:s=null);else{let E={instancePath:t,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas:u},message:"must match exactly one schema in oneOf"};return s===null?s=[E]:s.push(E),o++,eo.errors=s,!1}if(o===0)if(e&&typeof e=="object"&&!Array.isArray(e)){if(e.url!==void 0){let E=e.url,_=o,T=o,R=!1,A=null,x=o;if(typeof E!="string"){let P=typeof E,N;if(N===void 0)if(P=="number"||P=="boolean")N=""+E;else if(E===null)N="";else{let C={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[C]:s.push(C),o++}N!==void 0&&(E=N,e!==void 0&&(e.url=N))}var h=x===o;h&&(R=!0,A=0);let k=o;if(o===k)if(E&&typeof E=="object"&&!Array.isArray(E)){let P;if(E.pathname===void 0&&(P="pathname")){let N={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/1/required",keyword:"required",params:{missingProperty:P},message:"must have required property '"+P+"'"};s===null?s=[N]:s.push(N),o++}else{if(E.protocol!==void 0){let N=E.protocol,C=o;if(typeof N!="string"){let L=typeof N,G;if(G===void 0)if(L=="number"||L=="boolean")G=""+N;else if(N===null)G="";else{let W={instancePath:t+"/url/protocol",schemaPath:"#/properties/url/oneOf/1/properties/protocol/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[W]:s.push(W),o++}G!==void 0&&(N=G,E!==void 0&&(E.protocol=G))}var p=C===o}else var p=!0;if(p){if(E.hostname!==void 0){let N=E.hostname,C=o;if(typeof N!="string"){let G=typeof N,W;if(W===void 0)if(G=="number"||G=="boolean")W=""+N;else if(N===null)W="";else{let $={instancePath:t+"/url/hostname",schemaPath:"#/properties/url/oneOf/1/properties/hostname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}W!==void 0&&(N=W,E!==void 0&&(E.hostname=W))}var p=C===o}else var p=!0;if(p)if(E.pathname!==void 0){let N=E.pathname,C=o;if(typeof N!="string"){let G=typeof N,W;if(W===void 0)if(G=="number"||G=="boolean")W=""+N;else if(N===null)W="";else{let $={instancePath:t+"/url/pathname",schemaPath:"#/properties/url/oneOf/1/properties/pathname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}W!==void 0&&(N=W,E!==void 0&&(E.pathname=W))}var p=C===o}else var p=!0}}}else{let P={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[P]:s.push(P),o++}var h=k===o;if(h&&R?(R=!1,A=[A,1]):h&&(R=!0,A=1),R)o=T,s!==null&&(T?s.length=T:s=null);else{let P={instancePath:t+"/url",schemaPath:"#/properties/url/oneOf",keyword:"oneOf",params:{passingSchemas:A},message:"must match exactly one schema in oneOf"};return s===null?s=[P]:s.push(P),o++,eo.errors=s,!1}var m=_===o}else var m=!0;if(m){if(e.path!==void 0){let E=e.path,_=o,T=o,R=!1,A=null,x=o;if(typeof E!="string"){let N=typeof E,C;if(C===void 0)if(N=="number"||N=="boolean")C=""+E;else if(E===null)C="";else{let L={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/0/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[L]:s.push(L),o++}C!==void 0&&(E=C,e!==void 0&&(e.path=C))}var y=x===o;y&&(R=!0,A=0);let k=o;if(o===k)if(E&&typeof E=="object"&&!Array.isArray(E)){let N;if(E.pathname===void 0&&(N="pathname")){let C={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/required",keyword:"required",params:{missingProperty:N},message:"must have required property '"+N+"'"};s===null?s=[C]:s.push(C),o++}else{if(E.protocol!==void 0){let C=E.protocol,L=o;if(typeof C!="string"){let G=typeof C,W;if(W===void 0)if(G=="number"||G=="boolean")W=""+C;else if(C===null)W="";else{let $={instancePath:t+"/path/protocol",schemaPath:"#/properties/path/oneOf/1/properties/protocol/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[$]:s.push($),o++}W!==void 0&&(C=W,E!==void 0&&(E.protocol=W))}var g=L===o}else var g=!0;if(g){if(E.hostname!==void 0){let C=E.hostname,L=o;if(typeof C!="string"){let W=typeof C,$;if($===void 0)if(W=="number"||W=="boolean")$=""+C;else if(C===null)$="";else{let q={instancePath:t+"/path/hostname",schemaPath:"#/properties/path/oneOf/1/properties/hostname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[q]:s.push(q),o++}$!==void 0&&(C=$,E!==void 0&&(E.hostname=$))}var g=L===o}else var g=!0;if(g)if(E.pathname!==void 0){let C=E.pathname,L=o;if(typeof C!="string"){let W=typeof C,$;if($===void 0)if(W=="number"||W=="boolean")$=""+C;else if(C===null)$="";else{let q={instancePath:t+"/path/pathname",schemaPath:"#/properties/path/oneOf/1/properties/pathname/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[q]:s.push(q),o++}$!==void 0&&(C=$,E!==void 0&&(E.pathname=$))}var g=L===o}else var g=!0}}}else{let N={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf/1/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[N]:s.push(N),o++}var y=k===o;if(y&&R?(R=!1,A=[A,1]):y&&(R=!0,A=1),R)o=T,s!==null&&(T?s.length=T:s=null);else{let N={instancePath:t+"/path",schemaPath:"#/properties/path/oneOf",keyword:"oneOf",params:{passingSchemas:A},message:"must match exactly one schema in oneOf"};return s===null?s=[N]:s.push(N),o++,eo.errors=s,!1}var m=_===o}else var m=!0;if(m){if(e.cookies!==void 0){let E=e.cookies,_=o;if(o===_&&!(E&&typeof E=="object"&&!Array.isArray(E)))return eo.errors=[{instancePath:t+"/cookies",schemaPath:"#/properties/cookies/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=_===o}else var m=!0;if(m){if(e.headers!==void 0){let E=e.headers,_=o;if(o===_&&!(E&&typeof E=="object"&&!Array.isArray(E)))return eo.errors=[{instancePath:t+"/headers",schemaPath:"#/properties/headers/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=_===o}else var m=!0;if(m){if(e.query!==void 0){let E=e.query,_=o,T=o,R=!1,A=o;if(o===A&&!(E&&typeof E=="object"&&!Array.isArray(E))){let k={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};s===null?s=[k]:s.push(k),o++}var b=A===o;if(R=R||b,!R){let k=o;if(typeof E!="string"){let N=typeof E,C;if(C===void 0)if(N=="number"||N=="boolean")C=""+E;else if(E===null)C="";else{let L={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf/1/type",keyword:"type",params:{type:"string"},message:"must be string"};s===null?s=[L]:s.push(L),o++}C!==void 0&&(E=C,e!==void 0&&(e.query=C))}var b=k===o;R=R||b}if(R)o=T,s!==null&&(T?s.length=T:s=null);else{let k={instancePath:t+"/query",schemaPath:"#/properties/query/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};return s===null?s=[k]:s.push(k),o++,eo.errors=s,!1}var m=_===o}else var m=!0;if(m){if(e.simulate!==void 0){let E=e.simulate,_=o;if(o===_)if(E&&typeof E=="object"&&!Array.isArray(E)){if(E.end!==void 0){let R=E.end,A=o;if(typeof R!="boolean"){let x;if(x===void 0)if(R==="false"||R===0||R===null)x=!1;else if(R==="true"||R===1)x=!0;else return eo.errors=[{instancePath:t+"/simulate/end",schemaPath:"#/properties/simulate/properties/end/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;x!==void 0&&(R=x,E!==void 0&&(E.end=x))}var S=A===o}else var S=!0;if(S){if(E.split!==void 0){let R=E.split,A=o;if(typeof R!="boolean"){let k;if(k===void 0)if(R==="false"||R===0||R===null)k=!1;else if(R==="true"||R===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/split",schemaPath:"#/properties/simulate/properties/split/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(R=k,E!==void 0&&(E.split=k))}var S=A===o}else var S=!0;if(S){if(E.error!==void 0){let R=E.error,A=o;if(typeof R!="boolean"){let k;if(k===void 0)if(R==="false"||R===0||R===null)k=!1;else if(R==="true"||R===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/error",schemaPath:"#/properties/simulate/properties/error/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(R=k,E!==void 0&&(E.error=k))}var S=A===o}else var S=!0;if(S)if(E.close!==void 0){let R=E.close,A=o;if(typeof R!="boolean"){let k;if(k===void 0)if(R==="false"||R===0||R===null)k=!1;else if(R==="true"||R===1)k=!0;else return eo.errors=[{instancePath:t+"/simulate/close",schemaPath:"#/properties/simulate/properties/close/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;k!==void 0&&(R=k,E!==void 0&&(E.close=k))}var S=A===o}else var S=!0}}}else return eo.errors=[{instancePath:t+"/simulate",schemaPath:"#/properties/simulate/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;var m=_===o}else var m=!0;if(m){if(e.authority!==void 0){let E=e.authority,_=o;if(typeof E!="string"){let R=typeof E,A;if(A===void 0)if(R=="number"||R=="boolean")A=""+E;else if(E===null)A="";else return eo.errors=[{instancePath:t+"/authority",schemaPath:"#/properties/authority/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;A!==void 0&&(E=A,e!==void 0&&(e.authority=A))}var m=_===o}else var m=!0;if(m){if(e.remoteAddress!==void 0){let E=e.remoteAddress,_=o;if(typeof E!="string"){let R=typeof E,A;if(A===void 0)if(R=="number"||R=="boolean")A=""+E;else if(E===null)A="";else return eo.errors=[{instancePath:t+"/remoteAddress",schemaPath:"#/properties/remoteAddress/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;A!==void 0&&(E=A,e!==void 0&&(e.remoteAddress=A))}var m=_===o}else var m=!0;if(m){if(e.method!==void 0){let E=e.method,_=o;if(typeof E!="string"){let R=typeof E,A;if(A===void 0)if(R=="number"||R=="boolean")A=""+E;else if(E===null)A="";else return eo.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/type",keyword:"type",params:{type:"string"},message:"must be string"}],!1;A!==void 0&&(E=A,e!==void 0&&(e.method=A))}if(!(E==="ACL"||E==="BIND"||E==="CHECKOUT"||E==="CONNECT"||E==="COPY"||E==="DELETE"||E==="GET"||E==="HEAD"||E==="LINK"||E==="LOCK"||E==="M-SEARCH"||E==="MERGE"||E==="MKACTIVITY"||E==="MKCALENDAR"||E==="MKCOL"||E==="MOVE"||E==="NOTIFY"||E==="OPTIONS"||E==="PATCH"||E==="POST"||E==="PROPFIND"||E==="PROPPATCH"||E==="PURGE"||E==="PUT"||E==="QUERY"||E==="REBIND"||E==="REPORT"||E==="SEARCH"||E==="SOURCE"||E==="SUBSCRIBE"||E==="TRACE"||E==="UNBIND"||E==="UNLINK"||E==="UNLOCK"||E==="UNSUBSCRIBE"||E==="acl"||E==="bind"||E==="checkout"||E==="connect"||E==="copy"||E==="delete"||E==="get"||E==="head"||E==="link"||E==="lock"||E==="m-search"||E==="merge"||E==="mkactivity"||E==="mkcalendar"||E==="mkcol"||E==="move"||E==="notify"||E==="options"||E==="patch"||E==="post"||E==="propfind"||E==="proppatch"||E==="purge"||E==="put"||E==="query"||E==="rebind"||E==="report"||E==="search"||E==="source"||E==="subscribe"||E==="trace"||E==="unbind"||E==="unlink"||E==="unlock"||E==="unsubscribe"))return eo.errors=[{instancePath:t+"/method",schemaPath:"#/properties/method/enum",keyword:"enum",params:{allowedValues:bLn.properties.method.enum},message:"must be equal to one of the allowed values"}],!1;var m=_===o}else var m=!0;if(m)if(e.validate!==void 0){let E=e.validate,_=o;if(typeof E!="boolean"){let R;if(R===void 0)if(E==="false"||E===0||E===null)R=!1;else if(E==="true"||E===1)R=!0;else return eo.errors=[{instancePath:t+"/validate",schemaPath:"#/properties/validate/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"}],!1;R!==void 0&&(E=R,e!==void 0&&(e.validate=R))}var m=_===o}else var m=!0}}}}}}}}}else return eo.errors=[{instancePath:t,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"}],!1;return eo.errors=s,o===0}});var Zct=w((TYr,fD)=>{"use strict";var ELn=K("node:assert"),Wde=Fct(),TK=Vct(),RK="The dispatch function has already been invoked",Kct=Wct();function Kde(e,t,n){return n===void 0?new dD(e,t):vK(e,t,n)}function _Ln(e,t){let n=e._lightMyRequest.payload;if(!n||n._readableState||typeof n.resume!="function")return t();let r=[];n.on("data",i=>r.push(Buffer.from(i))),n.on("end",()=>{let i=Buffer.concat(r);return e.headers["content-length"]=e.headers["content-length"]||""+i.length,delete e.headers["transfer-encoding"],e._lightMyRequest.payload=i,t()}),n.resume()}function Yct(e,t,n,r){return n.once("error",function(i){this.destroyed&&r.destroy(i)}),n.once("close",function(){this.destroyed&&!this._error&&r.destroy()}),_Ln(n,()=>e.call(t,n,r))}function vK(e,t,n){if(t=typeof t=="string"?{url:t}:t,t.validate!==!1&&(ELn(typeof e=="function","dispatchFunc should be a function"),!Kct(t)))throw new Error(Kct.errors.map(o=>o.message));let r=t.server||{},i=t.Request?Wde.CustomRequest:Wde;if(e.request&&e.request.app===e&&(Object.setPrototypeOf(Object.getPrototypeOf(e.request),i.prototype),Object.setPrototypeOf(Object.getPrototypeOf(e.response),TK.prototype)),typeof n=="function"){let s=new i(t),o=new TK(s,n);return Yct(e,r,s,o)}else return new Promise((s,o)=>{let a=new i(t),c=new TK(a,s,o);Yct(e,r,a,c)})}function dD(e,t){typeof t=="string"?this.option={url:t}:this.option=Object.assign({},t),this.dispatch=e,this._hasInvoked=!1,this._promise=null,this.option.autoStart!==!1&&process.nextTick(()=>{this._hasInvoked||this.end()})}var TLn=["delete","get","head","options","patch","post","put","trace"];TLn.forEach(e=>{dD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(RK);return this.option.url=t,this.option.method=e.toUpperCase(),this}});var vLn=["body","cookies","headers","payload","query"];vLn.forEach(e=>{dD.prototype[e]=function(t){if(this._hasInvoked===!0||this._promise)throw new Error(RK);return this.option[e]=t,this}});dD.prototype.end=function(e){if(this._hasInvoked===!0||this._promise)throw new Error(RK);if(this._hasInvoked=!0,typeof e=="function")vK(this.dispatch,this.option,e);else return this._promise=vK(this.dispatch,this.option),this._promise};Object.getOwnPropertyNames(Promise.prototype).forEach(e=>{e!=="constructor"&&(dD.prototype[e]=function(...t){if(!this._promise){if(this._hasInvoked===!0)throw new Error(RK);this._hasInvoked=!0,this._promise=vK(this.dispatch,this.option)}return this._promise[e](...t)})});function RLn(e){return e instanceof Wde||e instanceof TK||e?.constructor?.name==="_CustomLMRRequest"}fD.exports=Kde;fD.exports.default=Kde;fD.exports.inject=Kde;fD.exports.isInjection=RLn});var dut=w((vYr,yD)=>{"use strict";var ALn="5.8.5",wLn=TQe(),IK=K("node:http"),kLn=K("node:diagnostics_channel"),pD,{kAvvioBoot:hD,kChildren:Yde,kServerBindings:Jct,kBodyLimit:ILn,kSupportedHTTPMethods:ST,kRoutePrefix:Xct,kLogLevel:xLn,kLogSerializers:OLn,kHooks:Zde,kSchemaController:cb,kRequestAcceptVersion:PLn,kReplySerializerDefault:Qct,kContentTypeParser:NLn,kReply:CLn,kRequest:MLn,kFourOhFour:DLn,kState:Qi,kOptions:Jde,kPluginNameChain:mD,kSchemaErrorFormatter:Xde,kErrorHandler:AK,kKeepAliveConnections:Qde,kChildLoggerFactory:$de,kGenReqId:efe,kErrorHandlerAlreadySet:wK,kHandlerTimeout:LLn}=$s(),{createServer:ULn}=JQe(),gD=p4(),kK=b4(),FLn=E4(),bT=OM(),ET=Fue(),$ct=Lle(),{Hooks:jLn,hookRunnerApplication:eut,supportedHooks:tfe}=YS(),{createChildLogger:tut,defaultChildLoggerFactory:HLn,createLogger:qLn}=AM(),nut=ade(),{getGenReqId:rut,reqIdGenFactory:uut}=Z4(),{buildRouting:BLn,validateBodyLimitOption:zLn,buildRouterOptions:GLn}=oct(),VLn=pct(),lut=mct(),WLn=Rct(),{appendStackTrace:KLn,AVVIO_ERRORS_MAP:iut,..._T}=Ko(),YLn=cce(),{defaultInitOptions:Ou}=lut,{FST_ERR_ASYNC_CONSTRAINT:ZLn,FST_ERR_BAD_URL:JLn,FST_ERR_OPTIONS_NOT_OBJ:XLn,FST_ERR_QSP_NOT_FN:QLn,FST_ERR_SCHEMA_CONTROLLER_BUCKET_OPT_NOT_FN:$Ln,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_OBJ:e1n,FST_ERR_AJV_CUSTOM_OPTIONS_OPT_NOT_ARR:t1n,FST_ERR_INSTANCE_ALREADY_LISTENING:n1n,FST_ERR_REOPENED_CLOSE_SERVER:r1n,FST_ERR_ROUTE_REWRITE_NOT_STR:i1n,FST_ERR_SCHEMA_ERROR_FORMATTER_NOT_FN:sut,FST_ERR_ERROR_HANDLER_NOT_FN:s1n,FST_ERR_ERROR_HANDLER_ALREADY_SET:o1n,FST_ERR_ROUTE_METHOD_INVALID:a1n}=_T,{buildErrorHandler:out}=kM(),{FSTWRN004:c1n}=Pk(),aut=kLn.channel("fastify.initialization");function nfe(e){let{options:t,genReqId:n,disableRequestLogging:r,hasLogger:i,initialConfig:s}=u1n(e,P,N),o=BLn(t.routerOptions),a=VLn(t),c=U(o,t),{server:u,listen:l,forceCloseConnections:d,serverHasCloseAllConnections:f,serverHasCloseHttp2Sessions:p,keepAliveConnections:h}=ULn(t,c),m=gD.setupResponseListeners,g=$ct.buildSchemaController(null,t.schemaController),y={[Qi]:{listening:!1,closing:!1,started:!1,ready:!1,booting:!1,aborted:!1,readyResolver:null},[Qde]:h,[ST]:{bodyless:new Set(["GET","HEAD","TRACE"]),bodywith:new Set(["DELETE","OPTIONS","PATCH","PUT","POST"])},[Jde]:t,[Yde]:[],[Jct]:[],[ILn]:t.bodyLimit,[LLn]:t.handlerTimeout,[Xct]:"",[xLn]:"",[OLn]:null,[Zde]:new jLn,[cb]:g,[Xde]:null,[AK]:out(),[wK]:!1,[$de]:t.childLoggerFactory||HLn,[Qct]:null,[NLn]:new ET(t.bodyLimit,t.onProtoPoisoning||Ou.onProtoPoisoning,t.onConstructorPoisoning||Ou.onConstructorPoisoning),[CLn]:gD.buildReply(gD),[MLn]:kK.buildRequest(kK,t.trustProxy),[DLn]:a,[nut.kRegisteredPlugins]:[],[mD]:["fastify"],[hD]:null,[efe]:n,routing:c,delete:function(Y,ee,se){return o.prepareRoute.call(this,{method:"DELETE",url:Y,options:ee,handler:se})},get:function(Y,ee,se){return o.prepareRoute.call(this,{method:"GET",url:Y,options:ee,handler:se})},head:function(Y,ee,se){return o.prepareRoute.call(this,{method:"HEAD",url:Y,options:ee,handler:se})},trace:function(Y,ee,se){return o.prepareRoute.call(this,{method:"TRACE",url:Y,options:ee,handler:se})},patch:function(Y,ee,se){return o.prepareRoute.call(this,{method:"PATCH",url:Y,options:ee,handler:se})},post:function(Y,ee,se){return o.prepareRoute.call(this,{method:"POST",url:Y,options:ee,handler:se})},put:function(Y,ee,se){return o.prepareRoute.call(this,{method:"PUT",url:Y,options:ee,handler:se})},options:function(Y,ee,se){return o.prepareRoute.call(this,{method:"OPTIONS",url:Y,options:ee,handler:se})},all:function(Y,ee,se){return o.prepareRoute.call(this,{method:this.supportedMethods,url:Y,options:ee,handler:se})},route:function(Y){return o.route.call(this,{options:Y})},hasRoute:function(Y){return o.hasRoute.call(this,{options:Y})},findRoute:function(Y){return o.findRoute(Y)},log:t.logger,withTypeProvider:A,addHook:x,addSchema:k,getSchema:g.getSchema.bind(g),getSchemas:g.getSchemas.bind(g),setValidatorCompiler:G,setSerializerCompiler:$,setSchemaController:q,setReplySerializer:Q,setSchemaErrorFormatter:W,setGenReqId:M,addContentTypeParser:ET.helpers.addContentTypeParser,hasContentTypeParser:ET.helpers.hasContentTypeParser,getDefaultJsonParser:ET.defaultParsers.getDefaultJsonParser,defaultTextParser:ET.defaultParsers.defaultTextParser,removeContentTypeParser:ET.helpers.removeContentTypeParser,removeAllContentTypeParsers:ET.helpers.removeAllContentTypeParsers,register:null,after:null,ready:null,onClose:null,close:null,printPlugins:null,hasPlugin:function(j){return this[nut.kRegisteredPlugins].includes(j)||this[mD].includes(j)},listen:l,server:u,addresses:function(){let j=this[Jct].map(Y=>Y.address());return j.push(this.server.address()),j.filter(Y=>Y)},decorate:bT.add,hasDecorator:bT.exist,decorateReply:bT.decorateReply,decorateRequest:bT.decorateRequest,hasRequestDecorator:bT.existRequest,hasReplyDecorator:bT.existReply,getDecorator:bT.getInstanceDecorator,addHttpMethod:H,inject:T,printRoutes:V,setNotFoundHandler:L,setErrorHandler:B,setChildLoggerFactory:F,initialConfig:s,addConstraintStrategy:o.addConstraintStrategy.bind(o),hasConstraintStrategy:o.hasConstraintStrategy.bind(o)};Object.defineProperties(y,{listeningOrigin:{get(){let j=this.addresses().slice(-1).pop();if(typeof j=="string")return j;let Y=j.family==="IPv6"?`[${j.address}]`:j.address;return`${this[Jde].https?"https":"http"}://${Y}:${j.port}`}},pluginName:{configurable:!0,get(){return this[mD].length>1?this[mD].join(" -> "):this[mD][0]}},prefix:{configurable:!0,get(){return this[Xct]}},validatorCompiler:{configurable:!0,get(){return this[cb].getValidatorCompiler()}},serializerCompiler:{configurable:!0,get(){return this[cb].getSerializerCompiler()}},childLoggerFactory:{configurable:!0,get(){return this[$de]}},version:{configurable:!0,get(){return ALn}},errorHandler:{configurable:!0,get(){return this[AK].func}},genReqId:{configurable:!0,get(){return this[efe]}},supportedMethods:{configurable:!1,get(){return[...this[ST].bodyless,...this[ST].bodywith]}}}),t.schemaErrorFormatter&&(cut(t.schemaErrorFormatter),y[Xde]=t.schemaErrorFormatter.bind(y));let b=Number(t.pluginTimeout),S=wLn(y,{autostart:!1,timeout:isNaN(b)===!1?b:Ou.pluginTimeout,expose:{use:"register"}});S.override=WLn,S.on("start",()=>y[Qi].started=!0),y[hD]=y.ready,y.ready=R,y.printPlugins=S.prettyPrint.bind(S),S.once("preReady",()=>{y.onClose((j,Y)=>{y[Qi].closing=!0,o.closeRoutes(),eut("preClose",y[hD],y,function(){if(y[Qi].listening){if(d==="idle")j.server.closeIdleConnections();else if(f&&d)j.server.closeAllConnections();else if(d===!0)for(let ee of y[Qde])ee.destroy(),y[Qde].delete(ee)}p&&j.server.closeHttp2Sessions(),!t.serverFactory||y[Qi].listening?j.server.close(function(ee){ee&&ee.code!=="ERR_SERVER_NOT_RUNNING"?Y(null):Y()}):process.nextTick(Y,null)})})});let E=new FLn({server:y,config:{}});return y.setNotFoundHandler(),a.arrange404(y),o.setup(t,{avvio:S,fourOhFour:a,hasLogger:i,setupResponseListeners:m,throwIfAlreadyStarted:_,keepAliveConnections:h}),u.on("clientError",t.clientErrorHandler.bind(y)),aut.hasSubscribers&&aut.publish({fastify:y}),"asyncDispose"in Symbol&&(y[Symbol.asyncDispose]=function(){return y.close()}),y;function _(j){if(y[Qi].started)throw new n1n(j)}function T(j,Y){if(pD===void 0&&(pD=Zct()),y[Qi].started){if(y[Qi].closing){let ee=new r1n;if(Y){Y(ee);return}else return Promise.reject(ee)}return pD(c,j,Y)}if(Y)this.ready(ee=>{ee?Y(ee,null):pD(c,j,Y)});else return pD((ee,se)=>{this.ready(function(Le){if(Le){se.emit("error",Le);return}c(ee,se)})},j)}function R(j){if(this[Qi].readyResolver!==null){if(j!=null){this[Qi].readyResolver.promise.then(()=>j(null,y),j);return}return this[Qi].readyResolver.promise}if(process.nextTick(Y),this[Qi].readyResolver=YLn.withResolvers(),j)this[Qi].readyResolver.promise.then(()=>j(null,y),j);else return this[Qi].readyResolver.promise;function Y(){y[hD]((se,Le)=>{se||y[Qi].started||y[Qi].ready||y[Qi].booting?ee(se):(y[Qi].booting=!0,eut("onReady",y[hD],y,ee)),Le()})}function ee(se){if(se=se!=null&&iut[se.code]!=null?KLn(se,new iut[se.code](se.message)):se,se)return y[Qi].readyResolver.reject(se);y[Qi].readyResolver.resolve(y),y[Qi].booting=!1,y[Qi].ready=!0,y[Qi].readyResolver=null}}function A(){return this}function x(j,Y){if(_('Cannot call "addHook"!'),Y==null)throw new _T.FST_ERR_HOOK_INVALID_HANDLER(j,Y);if(j==="onSend"||j==="preSerialization"||j==="onError"||j==="preParsing"){if(Y.constructor.name==="AsyncFunction"&&Y.length===4)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onReady"||j==="onListen"){if(Y.constructor.name==="AsyncFunction"&&Y.length!==0)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(j==="onRequestAbort"){if(Y.constructor.name==="AsyncFunction"&&Y.length!==1)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER}else if(Y.constructor.name==="AsyncFunction"&&Y.length===3)throw new _T.FST_ERR_HOOK_INVALID_ASYNC_HANDLER;return j==="onClose"?this.onClose(Y.bind(this)):j==="onReady"||j==="onListen"||j==="onRoute"?this[Zde].add(j,Y):this.after((se,Le)=>{try{ee.call(this,j,Y),Le(se)}catch(Ae){Le(Ae)}}),this;function ee(se,Le){this[Zde].add(se,Le),this[Yde].forEach(Ae=>ee.call(Ae,se,Le))}}function k(j){return _('Cannot call "addSchema"!'),this[cb].add(j),this[Yde].forEach(Y=>Y.addSchema(j)),this}function P(j,Y){j.headers["accept-version"]!==void 0&&(j.headers[PLn]=j.headers["accept-version"],j.headers["accept-version"]=void 0),a.router.lookup(j,Y)}function N(j,Y,ee){if(t.frameworkErrors){let Le=rut(E.server,Y),Ae=tut(E,t.logger,Y,Le),z=new kK(Le,null,Y,null,Ae,E),J=new gD(ee,z,Ae);return(typeof r=="function"?r(Y):r)===!1&&Ae.info({req:z},"incoming request"),t.frameworkErrors(new JLn(j),z,J)}let se=JSON.stringify({error:"Bad Request",code:"FST_ERR_BAD_URL",message:`'${j}' is not a valid url component`,statusCode:400});ee.writeHead(400,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(se)}),ee.end(se)}function C(j,Y,ee){if(j!==!1)return function(Le){if(Le){if(t.frameworkErrors){let z=rut(E.server,Y),J=tut(E,t.logger,Y,z),oe=new kK(z,null,Y,null,J,E),le=new gD(ee,oe,J);return(typeof r=="function"?r(Y):r)===!1&&J.info({req:oe},"incoming request"),t.frameworkErrors(new ZLn,oe,le)}let Ae='{"error":"Internal Server Error","message":"Unexpected error from async constraint","statusCode":500}';ee.writeHead(500,{"Content-Type":"application/json","Content-Length":Ae.length}),ee.end(Ae)}}}function L(j,Y){return _('Cannot call "setNotFoundHandler"!'),a.setNotFoundHandler.call(this,j,Y,S,o.routeHandler),this}function G(j){return _('Cannot call "setValidatorCompiler"!'),this[cb].setValidatorCompiler(j),this}function W(j){return _('Cannot call "setSchemaErrorFormatter"!'),cut(j),this[Xde]=j.bind(this),this}function $(j){return _('Cannot call "setSerializerCompiler"!'),this[cb].setSerializerCompiler(j),this}function q(j){_('Cannot call "setSchemaController"!');let Y=this[cb],ee=$ct.buildSchemaController(Y,Object.assign({},Y.opts,j));return this[cb]=ee,this.getSchema=ee.getSchema.bind(ee),this.getSchemas=ee.getSchemas.bind(ee),this}function Q(j){return _('Cannot call "setReplySerializer"!'),this[Qct]=j,this}function B(j){if(_('Cannot call "setErrorHandler"!'),typeof j!="function")throw new s1n;if(!t.allowErrorHandlerOverride&&this[wK])throw new o1n;return this[wK]&&c1n("To disable this behavior, set 'allowErrorHandlerOverride' to false or ignore this message. For more information, visit: https://fastify.dev/docs/latest/Reference/Server/#allowerrorhandleroverride"),this[wK]=!0,this[AK]=out(this[AK],j.bind(this)),this}function F(j){return _('Cannot call "setChildLoggerFactory"!'),this[$de]=j,this}function V(j={}){return j.includeMeta=j.includeHooks?j.includeMeta?tfe.concat(j.includeMeta):tfe:j.includeMeta,o.printRoutes(j)}function U(j,{rewriteUrl:Y,logger:ee}){let se;return function(Ae,z){if(se===void 0&&(se=j.isAsyncConstraint()),Y){Ae.originalUrl=Ae.url;let J=Y.call(y,Ae);if(typeof J=="string")Ae.url=J;else{let oe=new i1n(Ae.url,typeof J);Ae.destroy(oe)}}j.routing(Ae,z,C(se,Ae,z))}}function M(j){return _('Cannot call "setGenReqId"!'),this[efe]=uut(this[Jde].requestIdHeader,j),this}function H(j,{hasBody:Y=!1}={}){if(typeof j!="string"||IK.METHODS.indexOf(j)===-1)throw new a1n;Y===!0?(this[ST].bodywith.add(j),this[ST].bodyless.delete(j)):(this[ST].bodywith.delete(j),this[ST].bodyless.add(j));let ee=j.toLowerCase();return this.hasDecorator(ee)||this.decorate(ee,function(se,Le,Ae){return o.prepareRoute.call(this,{method:j,url:se,options:Le,handler:Ae})}),this}}function u1n(e,t,n){if(e&&typeof e!="object")throw new XLn;if(e=Object.assign({},e),e.querystringParser&&typeof e.querystringParser!="function"||e.routerOptions?.querystringParser&&typeof e.routerOptions.querystringParser!="function")throw new QLn(typeof(e.querystringParser??e.routerOptions.querystringParser));if(e.schemaController&&e.schemaController.bucket&&typeof e.schemaController.bucket!="function")throw new $Ln(typeof e.schemaController.bucket);zLn(e.bodyLimit);let r=typeof e.requestIdHeader=="string"&&e.requestIdHeader.length!==0?e.requestIdHeader.toLowerCase():e.requestIdHeader===!0&&"request-id",i=uut(r,e.genReqId),s=e.requestIdLogLabel||"reqId";e.bodyLimit=e.bodyLimit||Ou.bodyLimit;let o=e.disableRequestLogging||!1,a=Object.assign({customOptions:{},plugins:[]},e.ajv);if(!a.customOptions||Object.prototype.toString.call(a.customOptions)!=="[object Object]")throw new e1n(typeof a.customOptions);if(!a.plugins||!Array.isArray(a.plugins))throw new t1n(typeof a.plugins);let{logger:c,hasLogger:u}=qLn(e);e.connectionTimeout=e.connectionTimeout||Ou.connectionTimeout,e.keepAliveTimeout=e.keepAliveTimeout||Ou.keepAliveTimeout,e.maxRequestsPerSocket=e.maxRequestsPerSocket||Ou.maxRequestsPerSocket,e.requestTimeout=e.requestTimeout||Ou.requestTimeout,e.logger=c,e.requestIdHeader=r,e.requestIdLogLabel=s,e.disableRequestLogging=o,e.ajv=a,e.clientErrorHandler=e.clientErrorHandler||d1n,e.allowErrorHandlerOverride=e.allowErrorHandlerOverride??Ou.allowErrorHandlerOverride;let l=lut(e);return e.exposeHeadRoutes=l.exposeHeadRoutes,e.http2SessionTimeout=l.http2SessionTimeout,e.routerOptions=GLn(e,{defaultRoute:t,onBadUrl:n,ignoreTrailingSlash:Ou.ignoreTrailingSlash,ignoreDuplicateSlashes:Ou.ignoreDuplicateSlashes,maxParamLength:Ou.maxParamLength,allowUnsafeRegex:Ou.allowUnsafeRegex,buildPrettyMeta:l1n,useSemicolonDelimiter:Ou.useSemicolonDelimiter}),{options:e,genReqId:i,disableRequestLogging:o,hasLogger:u,initialConfig:l}}function l1n(e){let t={};return["errorHandler","logLevel","logSerializers"].concat(tfe).forEach(r=>{t[r]=e.store[r]}),Object.assign({},t)}function d1n(e,t){if(e.code==="ECONNRESET"||t.destroyed)return;let n,r,i,s;e.code==="ERR_HTTP_REQUEST_TIMEOUT"?(r="408",i=IK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Timeout","statusCode":408}`,s="timeout"):e.code==="HPE_HEADER_OVERFLOW"?(r="431",i=IK.STATUS_CODES[r],n=`{"error":"${i}","message":"Exceeded maximum allowed HTTP header size","statusCode":431}`,s="header_overflow"):(r="400",i=IK.STATUS_CODES[r],n=`{"error":"${i}","message":"Client Error","statusCode":400}`,s="error"),this.log.trace({err:e},`client ${s}`),t.writable&&t.write(`HTTP/1.1 ${r} ${i}\r Content-Length: ${n.length}\r Content-Type: application/json\r \r -${n}`),t.destroy(e)}function aut(e){if(typeof e!="function")throw new iut(typeof e);if(e.constructor.name==="AsyncFunction")throw new iut("AsyncFunction")}gD.exports=tfe;gD.exports.errorCodes=_T;gD.exports.fastify=tfe;gD.exports.default=tfe});var _l=v(()=>{Xne();Xne()});var f1n,nfe=v(()=>{"use strict";_l();f1n=O.object({ok:O.literal(!0),stage:O.string().describe("The stage the advance signal was resolved against."),open_feedback_count:O.number().int().min(0).describe("Number of pending / fixing / addressed feedback items on the stage at the time of the call. Zero means the engine stamped the user slots; non-zero means it didn't \u2014 the cursor will walk Track B first."),stamped_user_slots:O.boolean().describe("True when this call stamped `reviews.user` and `approvals.user` on the units that needed them (i.e., open_feedback_count was zero).")}).describe("POST /api/advance/:sessionId response body")});var p1n,h1n,rfe=v(()=>{"use strict";_l();p1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),h1n=O.object({token:O.string().min(1).max(512).describe("Bearer token value (1..512 chars)."),issued_at:O.string().min(1).max(64).describe("ISO-8601 timestamp the token was minted (\u2264 64 chars)."),expires_at:O.string().min(1).max(64).optional().describe("ISO-8601 expiry timestamp. Optional \u2014 tokens without an expiry are long-lived (deployment policy determines acceptability).")}).describe("Session-token skeleton for future non-loopback deployments. Not wired to any current route.")});var dut,ife,fut,yD,kK,put,hut,sfe,mut,cI,m1n,g1n,IK,NYr,SD,y1n,CYr,bD,xK,ED,ofe,fg=v(()=>{"use strict";_l();rfe();dut=O.enum(["human","agent","system"]).describe("Derived from origin. Human-authored feedback cannot be closed/deleted by agents. `system` is reserved for engine-authored FBs (e.g. reject-loop escalation) that the SPA surfaces to humans but treats distinctly from agent and human authorship."),ife=O.enum(["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"]).describe("Origin of a feedback item. Derives author_type (human|agent) via state-tools.deriveAuthorType. `user-question` marks a reply-seeking item that the router handles with `feedback_answer` instead of a fix loop. `engine-review` is the engine-built review roles (spec/continuity/cross-stage-consistency)."),fut=O.enum(["blocker","high","medium","low"]).describe("Finding urgency: blocker (stops the gate) > high (fix before delivery) > medium (should fix) > low (nit). Drives fix-loop dispatch order."),yD=O.enum(["pending","fixing","addressed","answered","non_actionable","escalated","closed","rejected"]).describe("Lifecycle: pending -> fixing -> addressed -> closed, or pending -> answered (question resolved by reply, no code delta), or pending -> non_actionable (valid but no code fix \u2014 a question, out-of-scope note, or immutable/superseded target; terminally closed and acknowledged, distinct from rejected/invalid), or pending -> rejected, or pending|fixing -> escalated (bolt cap exceeded on agent FBs). Only pending/fixing block the stage gate; escalated is a human-intervention waypoint, not a blocker."),kK=O.enum(["question","inline_fix","stage_revisit"]).describe("Routing hint for the FSM's feedback resolver. null = caller has no preference, router defaults to stage_revisit."),put=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:dut,body:O.string().min(1).max(5e3).describe("Reply body (\u2264 5,000 chars)."),created_at:O.string().max(40).describe("ISO-8601 timestamp the reply was written.")}).describe("A single reply on a feedback thread"),hut=dut,sfe=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to canvas width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to canvas height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)")}).describe("Screenshot pin annotation"),mut=O.object({selectedText:O.string().max(2e3).describe("Highlighted text the comment anchors to (capped at 2,000 chars)"),comment:O.string().max(1e4).describe("Comment body (capped at 10,000 chars)"),paragraph:O.number().describe("Zero-based paragraph index inside the reviewed artifact"),location:O.string().max(500).optional().describe("Artifact path (relative to intent root) the comment was made on \u2014 e.g. `knowledge/DISCOVERY.md` or `stages/security/THREAT-MODEL.md`. Omitted for unit-spec / in-session contexts where the parent has a single implicit location.")}).describe("Inline text-anchored comment annotation"),cI=O.object({screenshot:O.string().max(65536).optional().describe("Base64-encoded PNG of annotated canvas (capped at 65,536 chars \u2014 matches WS frame cap)"),pins:O.array(sfe).optional(),comments:O.array(mut).optional()}).describe("Annotations attached to a review decision"),m1n=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to image width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to image height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] \u2014 which reference image this pin sits on")}).describe("Per-image pin annotation on a question session"),g1n=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] this annotation was captured on")}).describe("One reviewer annotation pass over a question reference image"),IK=O.object({comments:O.array(mut).optional(),pins:O.array(m1n).optional(),screenshots:O.array(g1n).max(20).optional()}).describe("Annotations attached to a question answer"),NYr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),SD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),y1n=O.object({code:O.string(),message:O.string(),path:O.array(O.union([O.string(),O.number()]))}).passthrough().describe("Structural ZodIssue on the wire \u2014 we expose code/message/path at minimum; extra keys are preserved via passthrough."),CYr=O.object({error:O.literal("validation_failed"),issues:O.array(y1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),bD=1048576,xK=131072,ED=8388608,ofe=33554432});var S1n,b1n,E1n,_1n,T1n,v1n,R1n,afe,A1n,cfe=v(()=>{"use strict";_l();fg();S1n=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)")}).describe("One reviewer annotation pass over the chosen preview"),b1n=O.object({pins:O.array(sfe).optional(),screenshots:O.array(S1n).max(20).optional()}).describe("Annotations attached to a design-direction selection"),E1n=O.object({mode:O.literal("select"),archetype:O.string().max(64).describe("Archetype name selected by the user from the design-direction set"),comments:O.string().max(1e4).optional().describe("Optional free-text comments accompanying the selection"),annotations:b1n.optional()}).describe("Final selection \u2014 user picked one archetype"),_1n=O.object({mode:O.literal("regenerate"),keep:O.array(O.string().max(64)).max(50).describe("Archetype names the user wants preserved; the agent should produce fresh variants for the remaining slots"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the next generation \u2014 what to change, what to lean into")}).describe("Regenerate request \u2014 user wants more / different variants"),T1n=O.object({filename:O.string().min(1).max(255).describe("Original filename (sanitised by the server)"),data_url:O.string().max(15e5).describe("`data:image/...;base64,...` URL of the uploaded file (1.5 MB cap per file, matches screenshot annotations)"),caption:O.string().max(1e4).optional().describe("Optional caption describing what this artefact represents")}).describe("One uploaded design file in an upload-mode submission"),v1n=O.object({mode:O.literal("upload"),files:O.array(T1n).min(1).max(20).describe("Designer-provided files to use directly as the chosen direction (no archetype generation)"),comments:O.string().max(1e4).optional().describe("Optional overall notes about the uploaded direction \u2014 what the designer wants the agent to honour")}).describe("Upload submission \u2014 designer provided finished designs; skip archetype generation"),R1n=O.object({mode:O.literal("generate"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the agent's first archetype generation")}).describe("Intake signal \u2014 user has no uploads and wants the agent to generate variants"),afe=O.discriminatedUnion("mode",[E1n,_1n,v1n,R1n]).describe("POST /direction/:sessionId/select request body"),A1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var gut,w1n,k1n,I1n,x1n,ufe,O1n,lfe,P1n,N1n,dfe,C1n,ffe=v(()=>{"use strict";_l();fg();gut=O.object({selected_text:O.string().min(1).max(1e3),paragraph:O.number().int().nonnegative().max(1e4),location:O.string().max(500),comment_id:O.string().max(200).optional(),file_path:O.string().max(1e3).optional(),content_sha:O.string().max(64).optional()}).describe("Inline text-anchor metadata for inline-comment feedback"),w1n=O.object({feedback_id:O.string().max(32).describe("FB-NN identifier (scoped per stage)"),title:O.string().max(200),body:O.string().max(1e4),status:yD,origin:ife,severity:fut.nullable().optional().describe("Finding urgency. null/absent for user-authored FBs not yet classified by the classifier fix-hat, and for pre-severity legacy FBs."),author:O.string().max(200).describe("Free-form author handle (e.g. 'user', 'agent')"),author_type:hut,created_at:O.string().max(40).describe("ISO-8601 creation timestamp"),visit:O.number().int().nonnegative().describe("Stage-visit counter at creation time"),source_ref:O.string().max(1e3).nullable().describe("Back-reference to origin artifact (e.g. review-agent run id)"),closed_by:O.string().max(200).nullable().describe("Unit slug whose feedback-assessor hat certified closure, or null while open."),resolution:kK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(put).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:gut.nullable().optional().describe("Inline-text anchor metadata. Present when the feedback was created by selecting text in a rendered artifact and attaching a comment. Null / absent for visual-pin or plain chat feedback."),scope:O.enum(["intent","stage"]).optional().describe("Whether this feedback lives under .haiku/intents//feedback/ (intent scope, logged by the studio-level completion review) or .haiku/intents//stages//feedback/ (stage scope, the normal adversarial review output). UI shows intent-scope items with a distinguishing chip so cross-stage findings don't get hidden behind a stage tab."),iterations:O.array(O.object({bolt:O.number().int().nonnegative(),hat:O.string().max(200),started_at:O.string().max(40).optional(),completed_at:O.string().max(40).optional(),result:O.enum(["advanced","closed","reopened","rejected"]).optional(),commit:O.string().max(64).optional(),message:O.string().max(4e3).optional(),reason:O.string().max(1e3).optional()})).optional().describe("Per-bolt history of the fix loop \u2014 one entry per hat that fires against this finding. Mirrors the `iterations:` frontmatter on unit files so reviewers can see at a glance why a finding needed multiple tries."),closure_reply:O.object({text:O.string().max(2e3),at:O.string().max(40)}).optional().describe("Agent's plain-language reply to the requester at FB closure time. Set on the terminal fix-hat advance."),closure_reply_unread:O.boolean().optional().describe("True when the reply hasn't been acknowledged in the SPA yet. Flipped to false by the dismiss action.")}).describe("Wire shape of a feedback item"),k1n=O.object({intent:O.string(),stage:O.string(),count:O.number().int().nonnegative(),items:O.array(w1n)}).describe("GET /api/feedback/:intent/:stage response body"),I1n=O.object({pageId:O.string().min(1).max(200),x:O.number().min(0).max(1),y:O.number().min(0).max(1),viewportWidth:O.number().int().positive().max(1e4),viewportHeight:O.number().int().positive().max(1e4)}).describe("Pin anchor metadata for visual annotations"),x1n=6e6,ufe=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:ife.optional().default("user-visual"),author:O.string().max(200).optional().describe("Ignored by the server \u2014 retained for backward compatibility only. The HTTP feedback-create handler always stamps `user` as the author for HTTP-sourced submissions (see packages/haiku/src/http.ts:1526). Do NOT rely on this field to convey identity: there is no session-context author resolution today, so honoring client-supplied values would let any HTTP caller forge authorship. Treat any value submitted here as untrusted data that crosses into the server trust boundary and is discarded."),source_ref:O.string().max(1e3).nullable().optional(),anchor:I1n.optional(),inline_anchor:gut.optional(),resolution:kK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(x1n).regex(/^data:image\/(png|jpeg|webp);base64,[A-Za-z0-9+/=]+$/,{message:"attachment_data_url must be a base64-encoded data URL for png/jpeg/webp (svg rejected \u2014 stored-XSS risk)"}).optional()}).describe("POST /api/feedback/:intent/:stage request body"),O1n=O.object({feedback_id:O.string(),file:O.string().describe("Path to the committed feedback file (relative to .haiku root)"),status:O.literal("pending"),message:O.string()}).describe("POST /api/feedback/:intent/:stage response body"),lfe=O.object({status:yD.optional(),closed_by:O.string().max(200).optional(),resolution:kK.nullable().optional()}).refine(e=>e.status!==void 0||e.closed_by!==void 0||e.resolution!==void 0,{message:"At least one of 'status' / 'closed_by' / 'resolution' must be provided"}).describe("PUT /api/feedback/:intent/:stage/:id request body"),P1n=O.object({feedback_id:O.string(),updated_fields:O.array(O.string()).describe("List of frontmatter fields that were actually changed"),message:O.string()}).describe("PUT /api/feedback/:intent/:stage/:id response body"),N1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),dfe=O.object({body:O.string().min(1).max(5e3),author:O.string().max(200).optional().describe("Optional author hint. When omitted the server stamps 'user' or the agent name from session context."),close_as_answered:O.boolean().optional()}).describe("POST /api/feedback/:intent/:stage/:id/replies request body"),C1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:yD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var pfe,hfe,M1n,OK=v(()=>{"use strict";_l();fg();pfe=O.object({question:O.string().max(1e3).describe("Question prompt text (echoed back)"),selectedOptions:O.array(O.string().max(200)).max(50).describe("Options the user selected (may contain one or many)"),otherText:O.string().max(2e3).optional().describe("Free-text 'other' input, when the question allows it")}).describe("A single question's answer in a multi-question session"),hfe=O.object({answers:O.array(pfe).max(50),feedback:O.string().max(1e4).optional(),annotations:IK.optional()}).describe("POST /question/:sessionId/answer request body"),M1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var D1n,mfe,L1n,gfe=v(()=>{"use strict";_l();fg();D1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),mfe=O.object({decision:O.string().describe("Raw decision string \u2014 server canonicalizes to 'approved' or 'changes_requested'."),feedback:O.string().optional().describe("Reviewer-provided free-text feedback"),annotations:cI.optional()}).describe("POST /review/:sessionId/decide request body"),L1n=O.object({ok:O.literal(!0),decision:D1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var _D,JYr,U1n,F1n,j1n,yfe,H1n,q1n,B1n,yut,z1n,G1n,V1n,W1n,K1n,Y1n,Z1n,J1n,X1n,Q1n,$1n,eUn,tUn,nUn,rUn,iUn,sUn,oUn,aUn,cUn,uUn,lUn,XYr,dUn,Sfe=v(()=>{"use strict";_l();fg();_D=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),JYr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),U1n=O.object({stage:O.string(),mergedIntoMain:O.boolean(),status:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),phase:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),started_at:O.string().optional(),completed_at:O.string().nullable().optional(),gate_entered_at:O.string().nullable().optional(),gate_outcome:O.string().nullable().optional()}).describe("Per-stage status snapshot. v4: only `stage` and `mergedIntoMain` are authoritative; other fields are deprecated v3 shims pending SPA rewrite."),F1n=O.object({name:O.string(),content:O.string()}),j1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),yfe=O.object({stage:O.string(),name:O.string(),type:O.enum(["markdown","html","image","video","code","file"]),language:O.string().optional(),directory:O.string().optional(),content:O.string().optional(),relativePath:O.string().optional(),intentRelativePath:O.string().optional()}),H1n=O.object({path:O.string(),name:O.string(),type:O.enum(["markdown","html","image","file"]),url:O.string(),previewBody:O.string().optional(),sizeBytes:O.number().int().nonnegative().optional(),exists:O.boolean()}),q1n=O.object({path:O.string(),stage:O.string(),intent:O.string(),action:O.enum(["modified","added","deleted"]),age:O.string(),kind:O.enum(["spec","output","discovery_output","discovery_mandate"]).optional(),unit:O.string().optional(),role:O.string().optional()}).describe("One drift-sweep entry: a witnessed unit/output/discovery artifact whose on-disk content no longer matches the stored hash. Surfaced in the SPA's DriftBanner."),B1n=O.object({feedback:O.string(),reviewedAt:O.string(),intentRawContent:O.string(),unitRawContents:O.record(O.string())}).describe("Snapshot of the prior review attached when the current review follows a changes_requested decision."),yut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),z1n=O.object({studio:O.string(),stage:O.string(),phase:O.enum(["elaborate","execute","review","approve","complete","gate",""]),step:O.string().optional(),nextState:O.object({stage:O.string().optional(),phase:O.enum(["elaborate","execute","review","approve","complete","gate"]).optional(),step:O.string().optional(),blockedOn:O.enum(["user-gate","external-review","feedback-fix"]).nullable().optional()}).nullable().optional(),pending_signals:O.array(O.string()).optional(),milestones:O.array(yut).optional(),progress_index:O.number().int().nonnegative().optional(),progress_total:O.number().int().nonnegative().optional(),seal_status:O.enum(["sealed","pending_seal"]).optional(),awaiting_merge_into:O.string().optional()}).describe("Unified current-state snapshot \u2014 derived fresh per request from per-unit frontmatter and branch-merge state. The single source of truth for 'where is this intent right now?'."),G1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),V1n=O.object({label:O.string(),kind:G1n}).describe("Server-computed Approve button label + kind. The SPA renders `label` verbatim so the button reflects the next consequence (e.g. 'Complete Development Stage', 'Open Development Pull Request', 'Mark Intent Done')."),W1n=O.object({url:O.string(),source:O.enum(["github-pr-ref","gitlab-mr-ref"]),prNumber:O.number().int().positive(),matchedSha:O.string()}).describe("PR/MR auto-discovered via raw git from a published head ref"),K1n=O.object({session_id:O.string(),session_type:O.literal("review"),status:SD,intent_slug:O.string().optional(),intent_dir:O.string().optional(),gate_type:O.string().optional(),target:O.string().optional(),decision:O.string().optional(),feedback:O.string().optional(),annotations:cI.optional(),intent:_D.optional(),units:O.array(_D).optional(),criteria:O.array(_D).optional(),mermaid:O.string().optional(),intent_mockups:O.array(_D).optional(),unit_mockups:O.record(O.array(_D)).optional(),stage_states:O.record(U1n).optional(),stage_summaries:O.record(O.string()).optional(),stage_briefs:O.record(O.string()).optional(),stage_observations:O.record(O.string()).optional(),stage_elaborations:O.record(O.string()).optional(),reflection:O.string().optional(),stage_milestones:O.record(O.array(yut)).optional(),current_state:z1n.optional(),knowledge_files:O.array(F1n).optional(),stage_artifacts:O.array(j1n).optional(),output_artifacts:O.array(yfe).optional(),other_files:O.array(yfe).optional(),intent_other_files:O.array(yfe).optional(),unit_outputs:O.record(O.array(H1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:B1n.optional(),drift:O.array(q1n).optional(),discovered_review_url:W1n.nullable().optional(),ad_hoc:O.boolean().optional(),stage:O.string().optional(),gate_context:O.string().optional(),next_stage:O.string().nullable().optional(),next_phase:O.string().nullable().optional(),approve_action:V1n.optional(),await_active:O.boolean().optional(),await_count:O.number().int().nonnegative().optional(),pending_decision:O.object({decision:O.string(),feedback:O.string(),submitted_at:O.string()}).optional(),last_await_started_at:O.string().optional(),last_await_ended_at:O.string().optional()}).describe("Review session payload (GET /api/session/:id, session_type=review)"),Y1n=O.object({question:O.string(),header:O.string().optional(),options:O.array(O.string()),multiSelect:O.boolean().optional()}).describe("A single question in a multi-question session"),Z1n=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),J1n=O.object({session_id:O.string(),session_type:O.literal("question"),status:SD,title:O.string().optional(),context:O.string().optional(),questions:O.array(Y1n).optional(),answers:O.array(Z1n).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),X1n=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),Q1n=O.object({archetype:O.string(),comments:O.string().optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string()})).optional(),screenshots:O.array(O.object({comment:O.string(),screenshot_data_url:O.string()})).optional()}).optional()}).describe("Saved direction selection (nullable on the session)"),$1n=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:SD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(X1n).optional(),selection:Q1n.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),eUn=O.enum(["studio","mode","stage","confirm","url_input"]),tUn=O.object({id:O.string(),label:O.string(),description:O.string().optional(),secondary:O.boolean().optional()}).describe("One option in a picker session \u2014 id is the canonical value the wire echoes back, label/description are display-only. `secondary` options are hidden behind a 'Show all\u2026' expansion (studio picker shortlist)."),nUn=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),rUn=O.object({session_id:O.string(),session_type:O.literal("picker"),status:SD,intent_slug:O.string().optional(),kind:eUn,title:O.string(),prompt:O.string(),options:O.array(tUn),selection:nUn.nullable().optional()}).describe("Picker session payload (GET /api/session/:id, session_type=picker) \u2014 engine-side blocking selection for studio/mode/stage and destructive-confirm"),iUn=O.object({id:O.string().min(1).max(256)}).describe("POST /picker/:sessionId/select request body \u2014 id must match one of the session's options"),sUn=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),oUn=O.object({session_id:O.string(),session_type:O.literal("view"),status:O.enum(["open","closed"]),intent_slug:O.string(),studio:O.string().optional(),stage:O.string().optional(),artifact:O.string().optional(),mode:O.enum(["viewer","boot"]),boot_port:O.number().int().positive().optional(),boot_command:O.string().optional()}).describe("View session payload (GET /api/session/:id, session_type=view). Opened by haiku_view, closed by haiku_view_close."),aUn=O.discriminatedUnion("session_type",[K1n,J1n,$1n,rUn,oUn]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),cUn=O.object({pending:O.number().int().nonnegative(),addressed:O.number().int().nonnegative(),closed:O.number().int().nonnegative(),rejected:O.number().int().nonnegative()}).describe("Per-status counts of feedback items for the active stage."),uUn=O.object({name:O.string(),status:O.string(),phase:O.string().optional(),iteration:O.number().optional(),iterations:O.array(O.unknown()).optional(),visits:O.number().optional()}),lUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),XYr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(lUn),feedback_summary:cUn,stages:O.array(uUn)}).describe("GET /api/review/current response body"),dUn=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var bfe=v(()=>{"use strict";nfe();fg();cfe();ffe();OK();gfe();Sfe()});var Efe=v(()=>{"use strict"});var Sut=v(()=>{"use strict";Vie();bfe();Efe()});function gUn(e){return!(e.includes("\0")||hUn.test(e)||e.startsWith("/")||e.startsWith("\\")||mUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var hUn,mUn,but,pZr,Eut=v(()=>{"use strict";_l();hUn=/%(?:00|2e|2f|5c)/i,mUn=/^[A-Za-z]:/;but=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(gUn,{message:"path must be a safe relative path \u2014 no '..' segments, absolute paths, null bytes, or URL-encoded variants (%00, %2e, %2f, %5c)"}).describe("Relative path under the session's serving root")}).describe("Path parameters for /files/:sessionId/*path and aliases"),pZr=O.object({sessionId:O.string().min(1),index:O.number().int().nonnegative().describe("Zero-based image index within the question session")}).describe("Path parameters for /question-image/:sessionId/:index")});var _ut,yUn,SUn,bUn,EUn,Tut,vut,_Un,TUn,vUn,RUn,AUn,wUn,kUn,IUn,xUn,OUn,PUn,NUn,SZr,Rut=v(()=>{"use strict";_l();fg();OK();_ut=65536,yUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:cI.optional()}).describe("Review decision frame (session_type=review)"),SUn=O.object({type:O.literal("answer"),answers:O.array(pfe),feedback:O.string().max(1e4).optional(),annotations:IK.optional()}).describe("Question answer frame (session_type=question)"),bUn=O.object({type:O.literal("select"),mode:O.enum(["select","regenerate"]),archetype:O.string().max(64).optional(),keep:O.array(O.string().max(64)).max(50).optional(),comments:O.string().max(1e4).optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string().max(1e3)})).optional()}).optional()}).describe("Design-direction frame (session_type=design_direction) \u2014 mode='select' finalizes a choice, mode='regenerate' asks the agent for more variants"),EUn=O.object({type:O.literal("heartbeat"),t:O.number().optional()}).describe("Client liveness heartbeat (any session_type). Sent every 30s over the long-lived WS; the server records presence and replies heartbeat_ack."),Tut=(e,t)=>{let n=JSON.stringify(e).length;n>_ut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${_ut} bytes`,path:[]})},vut=O.discriminatedUnion("type",[yUn,SUn,bUn,EUn]).superRefine(Tut).describe("Any client -> server WebSocket envelope"),_Un=O.object({type:O.literal("ack"),ok:O.literal(!0),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server acknowledgement frame. Shape aligns with the payload sendToWebSocket emits after a successful client message."),TUn=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),vUn=O.object({type:O.literal("heartbeat_ack"),t:O.number().optional()}).describe("Server heartbeat acknowledgement \u2014 presence was recorded; the connection is still seen as live."),RUn=O.object({type:O.literal("session-update"),session_id:O.string().max(64),status:O.string().max(32),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server broadcast when a session's durable status changes (review decided, question answered, direction selected)."),AUn=O.object({type:O.literal("tick_committed"),action:O.string().max(64),phase:O.string().max(64).optional(),stage:O.string().max(64).optional(),iteration:O.number().int().nonnegative().optional()}),wUn=O.object({type:O.literal("unit_changed"),unit_name:O.string().max(128),status:O.string().max(32),stage:O.string().max(64).optional(),hat:O.string().max(64).optional()}),kUn=O.object({type:O.literal("feedback_changed"),feedback_id:O.string().max(64),status:O.string().max(32),stage:O.string().max(64).optional()}),IUn=O.object({type:O.literal("gate_prepared"),session_id:O.string().max(64),stage:O.string().max(64),gate_context:O.string().max(64),review_url:O.string().max(2048),browser_attached:O.boolean()}),xUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),OUn=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),PUn=O.discriminatedUnion("type",[AUn,wUn,kUn,IUn,xUn,OUn]),NUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:PUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),SZr=O.discriminatedUnion("type",[_Un,TUn,vUn,RUn,NUn]).superRefine(Tut).describe("Any server -> client WebSocket envelope")});var TT=v(()=>{"use strict";Sut();bfe();nfe();rfe();fg();cfe();ffe();Eut();OK();gfe();Sfe();Rut();Efe()});function pg(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---(\r?\n[\s\S]*)?$/);if(!t)return{text:e,removed:[]};let{cleaned:n,removed:r}=Aut(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- +${n}`),t.destroy(e)}function cut(e){if(typeof e!="function")throw new sut(typeof e);if(e.constructor.name==="AsyncFunction")throw new sut("AsyncFunction")}yD.exports=nfe;yD.exports.errorCodes=_T;yD.exports.fastify=nfe;yD.exports.default=nfe});var _l=v(()=>{Qne();Qne()});var f1n,rfe=v(()=>{"use strict";_l();f1n=O.object({ok:O.literal(!0),stage:O.string().describe("The stage the advance signal was resolved against."),open_feedback_count:O.number().int().min(0).describe("Number of pending / fixing / addressed feedback items on the stage at the time of the call. Zero means the engine stamped the user slots; non-zero means it didn't \u2014 the cursor will walk Track B first."),stamped_user_slots:O.boolean().describe("True when this call stamped `reviews.user` and `approvals.user` on the units that needed them (i.e., open_feedback_count was zero).")}).describe("POST /api/advance/:sessionId response body")});var p1n,h1n,ife=v(()=>{"use strict";_l();p1n=O.enum(["loopback","token"]).describe("Transport invariant \u2014 routes declare 'loopback' (v1 runtime policy) or 'token' (reserved for future bearer-token routes)."),h1n=O.object({token:O.string().min(1).max(512).describe("Bearer token value (1..512 chars)."),issued_at:O.string().min(1).max(64).describe("ISO-8601 timestamp the token was minted (\u2264 64 chars)."),expires_at:O.string().min(1).max(64).optional().describe("ISO-8601 expiry timestamp. Optional \u2014 tokens without an expiry are long-lived (deployment policy determines acceptability).")}).describe("Session-token skeleton for future non-loopback deployments. Not wired to any current route.")});var fut,sfe,put,SD,xK,hut,mut,ofe,gut,cI,m1n,g1n,OK,NYr,bD,y1n,CYr,ED,PK,_D,afe,fg=v(()=>{"use strict";_l();ife();fut=O.enum(["human","agent","system"]).describe("Derived from origin. Human-authored feedback cannot be closed/deleted by agents. `system` is reserved for engine-authored FBs (e.g. reject-loop escalation) that the SPA surfaces to humans but treats distinctly from agent and human authorship."),sfe=O.enum(["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"]).describe("Origin of a feedback item. Derives author_type (human|agent) via state-tools.deriveAuthorType. `user-question` marks a reply-seeking item that the router handles with `feedback_answer` instead of a fix loop. `engine-review` is the engine-built review roles (spec/continuity/cross-stage-consistency)."),put=O.enum(["blocker","high","medium","low"]).describe("Finding urgency: blocker (stops the gate) > high (fix before delivery) > medium (should fix) > low (nit). Drives fix-loop dispatch order."),SD=O.enum(["pending","fixing","addressed","answered","non_actionable","escalated","closed","rejected"]).describe("Lifecycle: pending -> fixing -> addressed -> closed, or pending -> answered (question resolved by reply, no code delta), or pending -> non_actionable (valid but no code fix \u2014 a question, out-of-scope note, or immutable/superseded target; terminally closed and acknowledged, distinct from rejected/invalid), or pending -> rejected, or pending|fixing -> escalated (bolt cap exceeded on agent FBs). Only pending/fixing block the stage gate; escalated is a human-intervention waypoint, not a blocker."),xK=O.enum(["question","inline_fix","stage_revisit"]).describe("Routing hint for the FSM's feedback resolver. null = caller has no preference, router defaults to stage_revisit."),hut=O.object({author:O.string().min(1).max(200).describe("Free-form author handle ('user', agent name)."),author_type:fut,body:O.string().min(1).max(5e3).describe("Reply body (\u2264 5,000 chars)."),created_at:O.string().max(40).describe("ISO-8601 timestamp the reply was written.")}).describe("A single reply on a feedback thread"),mut=fut,ofe=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to canvas width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to canvas height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)")}).describe("Screenshot pin annotation"),gut=O.object({selectedText:O.string().max(2e3).describe("Highlighted text the comment anchors to (capped at 2,000 chars)"),comment:O.string().max(1e4).describe("Comment body (capped at 10,000 chars)"),paragraph:O.number().describe("Zero-based paragraph index inside the reviewed artifact"),location:O.string().max(500).optional().describe("Artifact path (relative to intent root) the comment was made on \u2014 e.g. `knowledge/DISCOVERY.md` or `stages/security/THREAT-MODEL.md`. Omitted for unit-spec / in-session contexts where the parent has a single implicit location.")}).describe("Inline text-anchored comment annotation"),cI=O.object({screenshot:O.string().max(65536).optional().describe("Base64-encoded PNG of annotated canvas (capped at 65,536 chars \u2014 matches WS frame cap)"),pins:O.array(ofe).optional(),comments:O.array(gut).optional()}).describe("Annotations attached to a review decision"),m1n=O.object({x:O.number().describe("Pin x-coordinate (0..1 relative to image width)"),y:O.number().describe("Pin y-coordinate (0..1 relative to image height)"),text:O.string().max(1e3).describe("Pin comment body (capped at 1,000 chars)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] \u2014 which reference image this pin sits on")}).describe("Per-image pin annotation on a question session"),g1n=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)"),image_index:O.number().int().nonnegative().describe("Index into the question's image_urls[] this annotation was captured on")}).describe("One reviewer annotation pass over a question reference image"),OK=O.object({comments:O.array(gut).optional(),pins:O.array(m1n).optional(),screenshots:O.array(g1n).max(20).optional()}).describe("Annotations attached to a question answer"),NYr=O.enum(["review","question","design_direction"]).describe("Session type discriminator"),bD=O.enum(["pending","decided","answered","approved","changes_requested"]).describe("Runtime status across review | question | design_direction sessions."),y1n=O.object({code:O.string(),message:O.string(),path:O.array(O.union([O.string(),O.number()]))}).passthrough().describe("Structural ZodIssue on the wire \u2014 we expose code/message/path at minimum; extra keys are preserved via passthrough."),CYr=O.object({error:O.literal("validation_failed"),issues:O.array(y1n)}).describe("Uniform 400 response for request-body validation failure (malformed JSON, schema mismatch, oversize)"),ED=1048576,PK=131072,_D=8388608,afe=33554432});var S1n,b1n,E1n,_1n,T1n,v1n,R1n,cfe,A1n,ufe=v(()=>{"use strict";_l();fg();S1n=O.object({comment:O.string().max(1e4).describe("Reviewer's note on this annotation pass"),screenshot_data_url:O.string().max(15e5).describe("`data:image/png;base64,...` URL of the captured surface + composited strokes (1.5 MB cap)")}).describe("One reviewer annotation pass over the chosen preview"),b1n=O.object({pins:O.array(ofe).optional(),screenshots:O.array(S1n).max(20).optional()}).describe("Annotations attached to a design-direction selection"),E1n=O.object({mode:O.literal("select"),archetype:O.string().max(64).describe("Archetype name selected by the user from the design-direction set"),comments:O.string().max(1e4).optional().describe("Optional free-text comments accompanying the selection"),annotations:b1n.optional()}).describe("Final selection \u2014 user picked one archetype"),_1n=O.object({mode:O.literal("regenerate"),keep:O.array(O.string().max(64)).max(50).describe("Archetype names the user wants preserved; the agent should produce fresh variants for the remaining slots"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the next generation \u2014 what to change, what to lean into")}).describe("Regenerate request \u2014 user wants more / different variants"),T1n=O.object({filename:O.string().min(1).max(255).describe("Original filename (sanitised by the server)"),data_url:O.string().max(15e5).describe("`data:image/...;base64,...` URL of the uploaded file (1.5 MB cap per file, matches screenshot annotations)"),caption:O.string().max(1e4).optional().describe("Optional caption describing what this artefact represents")}).describe("One uploaded design file in an upload-mode submission"),v1n=O.object({mode:O.literal("upload"),files:O.array(T1n).min(1).max(20).describe("Designer-provided files to use directly as the chosen direction (no archetype generation)"),comments:O.string().max(1e4).optional().describe("Optional overall notes about the uploaded direction \u2014 what the designer wants the agent to honour")}).describe("Upload submission \u2014 designer provided finished designs; skip archetype generation"),R1n=O.object({mode:O.literal("generate"),comments:O.string().max(1e4).optional().describe("Optional steering notes for the agent's first archetype generation")}).describe("Intake signal \u2014 user has no uploads and wants the agent to generate variants"),cfe=O.discriminatedUnion("mode",[E1n,_1n,v1n,R1n]).describe("POST /direction/:sessionId/select request body"),A1n=O.object({ok:O.literal(!0)}).describe("POST /direction/:sessionId/select response body")});var yut,w1n,k1n,I1n,x1n,lfe,O1n,dfe,P1n,N1n,ffe,C1n,pfe=v(()=>{"use strict";_l();fg();yut=O.object({selected_text:O.string().min(1).max(1e3),paragraph:O.number().int().nonnegative().max(1e4),location:O.string().max(500),comment_id:O.string().max(200).optional(),file_path:O.string().max(1e3).optional(),content_sha:O.string().max(64).optional()}).describe("Inline text-anchor metadata for inline-comment feedback"),w1n=O.object({feedback_id:O.string().max(32).describe("FB-NN identifier (scoped per stage)"),title:O.string().max(200),body:O.string().max(1e4),status:SD,origin:sfe,severity:put.nullable().optional().describe("Finding urgency. null/absent for user-authored FBs not yet classified by the classifier fix-hat, and for pre-severity legacy FBs."),author:O.string().max(200).describe("Free-form author handle (e.g. 'user', 'agent')"),author_type:mut,created_at:O.string().max(40).describe("ISO-8601 creation timestamp"),visit:O.number().int().nonnegative().describe("Stage-visit counter at creation time"),source_ref:O.string().max(1e3).nullable().describe("Back-reference to origin artifact (e.g. review-agent run id)"),closed_by:O.string().max(200).nullable().describe("Unit slug whose feedback-assessor hat certified closure, or null while open."),resolution:xK.nullable().optional().describe("Routing hint for the feedback resolver. null/unset = router defaults to stage_revisit."),replies:O.array(hut).optional().describe("Thread of replies on this feedback item. Empty / missing = no replies yet."),inline_anchor:yut.nullable().optional().describe("Inline-text anchor metadata. Present when the feedback was created by selecting text in a rendered artifact and attaching a comment. Null / absent for visual-pin or plain chat feedback."),scope:O.enum(["intent","stage"]).optional().describe("Whether this feedback lives under .haiku/intents//feedback/ (intent scope, logged by the studio-level completion review) or .haiku/intents//stages//feedback/ (stage scope, the normal adversarial review output). UI shows intent-scope items with a distinguishing chip so cross-stage findings don't get hidden behind a stage tab."),iterations:O.array(O.object({bolt:O.number().int().nonnegative(),hat:O.string().max(200),started_at:O.string().max(40).optional(),completed_at:O.string().max(40).optional(),result:O.enum(["advanced","closed","reopened","rejected"]).optional(),commit:O.string().max(64).optional(),message:O.string().max(4e3).optional(),reason:O.string().max(1e3).optional()})).optional().describe("Per-bolt history of the fix loop \u2014 one entry per hat that fires against this finding. Mirrors the `iterations:` frontmatter on unit files so reviewers can see at a glance why a finding needed multiple tries."),closure_reply:O.object({text:O.string().max(2e3),at:O.string().max(40)}).optional().describe("Agent's plain-language reply to the requester at FB closure time. Set on the terminal fix-hat advance."),closure_reply_unread:O.boolean().optional().describe("True when the reply hasn't been acknowledged in the SPA yet. Flipped to false by the dismiss action.")}).describe("Wire shape of a feedback item"),k1n=O.object({intent:O.string(),stage:O.string(),count:O.number().int().nonnegative(),items:O.array(w1n)}).describe("GET /api/feedback/:intent/:stage response body"),I1n=O.object({pageId:O.string().min(1).max(200),x:O.number().min(0).max(1),y:O.number().min(0).max(1),viewportWidth:O.number().int().positive().max(1e4),viewportHeight:O.number().int().positive().max(1e4)}).describe("Pin anchor metadata for visual annotations"),x1n=6e6,lfe=O.object({title:O.string().min(1).max(200),body:O.string().min(1).max(1e4),origin:sfe.optional().default("user-visual"),author:O.string().max(200).optional().describe("Ignored by the server \u2014 retained for backward compatibility only. The HTTP feedback-create handler always stamps `user` as the author for HTTP-sourced submissions (see packages/haiku/src/http.ts:1526). Do NOT rely on this field to convey identity: there is no session-context author resolution today, so honoring client-supplied values would let any HTTP caller forge authorship. Treat any value submitted here as untrusted data that crosses into the server trust boundary and is discarded."),source_ref:O.string().max(1e3).nullable().optional(),anchor:I1n.optional(),inline_anchor:yut.optional(),resolution:xK.optional().describe("Author's preferred resolution path. Router defaults to stage_revisit when omitted."),attachment_data_url:O.string().max(x1n).regex(/^data:image\/(png|jpeg|webp);base64,[A-Za-z0-9+/=]+$/,{message:"attachment_data_url must be a base64-encoded data URL for png/jpeg/webp (svg rejected \u2014 stored-XSS risk)"}).optional()}).describe("POST /api/feedback/:intent/:stage request body"),O1n=O.object({feedback_id:O.string(),file:O.string().describe("Path to the committed feedback file (relative to .haiku root)"),status:O.literal("pending"),message:O.string()}).describe("POST /api/feedback/:intent/:stage response body"),dfe=O.object({status:SD.optional(),closed_by:O.string().max(200).optional(),resolution:xK.nullable().optional()}).refine(e=>e.status!==void 0||e.closed_by!==void 0||e.resolution!==void 0,{message:"At least one of 'status' / 'closed_by' / 'resolution' must be provided"}).describe("PUT /api/feedback/:intent/:stage/:id request body"),P1n=O.object({feedback_id:O.string(),updated_fields:O.array(O.string()).describe("List of frontmatter fields that were actually changed"),message:O.string()}).describe("PUT /api/feedback/:intent/:stage/:id response body"),N1n=O.object({feedback_id:O.string(),deleted:O.literal(!0),message:O.string()}).describe("DELETE /api/feedback/:intent/:stage/:id response body"),ffe=O.object({body:O.string().min(1).max(5e3),author:O.string().max(200).optional().describe("Optional author hint. When omitted the server stamps 'user' or the agent name from session context."),close_as_answered:O.boolean().optional()}).describe("POST /api/feedback/:intent/:stage/:id/replies request body"),C1n=O.object({feedback_id:O.string(),reply_index:O.number().int().nonnegative().describe("Zero-based index of the new reply inside replies[]."),status:SD,message:O.string()}).describe("POST /api/feedback/:intent/:stage/:id/replies response body")});var hfe,mfe,M1n,NK=v(()=>{"use strict";_l();fg();hfe=O.object({question:O.string().max(1e3).describe("Question prompt text (echoed back)"),selectedOptions:O.array(O.string().max(200)).max(50).describe("Options the user selected (may contain one or many)"),otherText:O.string().max(2e3).optional().describe("Free-text 'other' input, when the question allows it")}).describe("A single question's answer in a multi-question session"),mfe=O.object({answers:O.array(hfe).max(50),feedback:O.string().max(1e4).optional(),annotations:OK.optional()}).describe("POST /question/:sessionId/answer request body"),M1n=O.object({ok:O.literal(!0)}).describe("POST /question/:sessionId/answer response body")});var D1n,gfe,L1n,yfe=v(()=>{"use strict";_l();fg();D1n=O.enum(["approved","changes_requested"]).describe("Canonical review decision. Anything != approved is coerced to changes_requested server-side."),gfe=O.object({decision:O.string().describe("Raw decision string \u2014 server canonicalizes to 'approved' or 'changes_requested'."),feedback:O.string().optional().describe("Reviewer-provided free-text feedback"),annotations:cI.optional()}).describe("POST /review/:sessionId/decide request body"),L1n=O.object({ok:O.literal(!0),decision:D1n,feedback:O.string()}).describe("POST /review/:sessionId/decide response body")});var TD,JYr,U1n,F1n,j1n,Sfe,H1n,q1n,B1n,Sut,z1n,G1n,V1n,W1n,K1n,Y1n,Z1n,J1n,X1n,Q1n,$1n,eUn,tUn,nUn,rUn,iUn,sUn,oUn,aUn,cUn,uUn,lUn,XYr,dUn,bfe=v(()=>{"use strict";_l();fg();TD=O.record(O.unknown()).describe("Opaque parsed artifact (ParsedIntent / ParsedUnit / CriterionItem / etc.)"),JYr=O.enum(["auto","ask","external","await"]).describe("Review-gate type declared in STAGE.md"),U1n=O.object({stage:O.string(),mergedIntoMain:O.boolean(),status:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),phase:O.string().optional().describe("Deprecated v3 shim \u2014 derived"),started_at:O.string().optional(),completed_at:O.string().nullable().optional(),gate_entered_at:O.string().nullable().optional(),gate_outcome:O.string().nullable().optional()}).describe("Per-stage status snapshot. v4: only `stage` and `mergedIntoMain` are authoritative; other fields are deprecated v3 shims pending SPA rewrite."),F1n=O.object({name:O.string(),content:O.string()}),j1n=O.object({stage:O.string(),name:O.string(),content:O.string()}),Sfe=O.object({stage:O.string(),name:O.string(),type:O.enum(["markdown","html","image","video","code","file"]),language:O.string().optional(),directory:O.string().optional(),content:O.string().optional(),relativePath:O.string().optional(),intentRelativePath:O.string().optional()}),H1n=O.object({path:O.string(),name:O.string(),type:O.enum(["markdown","html","image","file"]),url:O.string(),previewBody:O.string().optional(),sizeBytes:O.number().int().nonnegative().optional(),exists:O.boolean()}),q1n=O.object({path:O.string(),stage:O.string(),intent:O.string(),action:O.enum(["modified","added","deleted"]),age:O.string(),kind:O.enum(["spec","output","discovery_output","discovery_mandate"]).optional(),unit:O.string().optional(),role:O.string().optional()}).describe("One drift-sweep entry: a witnessed unit/output/discovery artifact whose on-disk content no longer matches the stored hash. Surfaced in the SPA's DriftBanner."),B1n=O.object({feedback:O.string(),reviewedAt:O.string(),intentRawContent:O.string(),unitRawContents:O.record(O.string())}).describe("Snapshot of the prior review attached when the current review follows a changes_requested decision."),Sut=O.object({key:O.string(),label:O.string(),status:O.enum(["done","active","pending"])}).describe("One milestone in the granular per-stage progress track"),z1n=O.object({studio:O.string(),stage:O.string(),phase:O.enum(["elaborate","execute","review","approve","complete","gate",""]),step:O.string().optional(),nextState:O.object({stage:O.string().optional(),phase:O.enum(["elaborate","execute","review","approve","complete","gate"]).optional(),step:O.string().optional(),blockedOn:O.enum(["user-gate","external-review","feedback-fix"]).nullable().optional()}).nullable().optional(),pending_signals:O.array(O.string()).optional(),milestones:O.array(Sut).optional(),progress_index:O.number().int().nonnegative().optional(),progress_total:O.number().int().nonnegative().optional(),seal_status:O.enum(["sealed","pending_seal"]).optional(),awaiting_merge_into:O.string().optional()}).describe("Unified current-state snapshot \u2014 derived fresh per request from per-unit frontmatter and branch-merge state. The single source of truth for 'where is this intent right now?'."),G1n=O.enum(["ad_hoc_done","open_pr","submit_external","start_intent","start_execution","complete_stage","submit_intent_review","complete_intent","approve"]),V1n=O.object({label:O.string(),kind:G1n}).describe("Server-computed Approve button label + kind. The SPA renders `label` verbatim so the button reflects the next consequence (e.g. 'Complete Development Stage', 'Open Development Pull Request', 'Mark Intent Done')."),W1n=O.object({url:O.string(),source:O.enum(["github-pr-ref","gitlab-mr-ref"]),prNumber:O.number().int().positive(),matchedSha:O.string()}).describe("PR/MR auto-discovered via raw git from a published head ref"),K1n=O.object({session_id:O.string(),session_type:O.literal("review"),status:bD,intent_slug:O.string().optional(),intent_dir:O.string().optional(),gate_type:O.string().optional(),target:O.string().optional(),decision:O.string().optional(),feedback:O.string().optional(),annotations:cI.optional(),intent:TD.optional(),units:O.array(TD).optional(),criteria:O.array(TD).optional(),mermaid:O.string().optional(),intent_mockups:O.array(TD).optional(),unit_mockups:O.record(O.array(TD)).optional(),stage_states:O.record(U1n).optional(),stage_summaries:O.record(O.string()).optional(),stage_briefs:O.record(O.string()).optional(),stage_observations:O.record(O.string()).optional(),stage_elaborations:O.record(O.string()).optional(),reflection:O.string().optional(),stage_milestones:O.record(O.array(Sut)).optional(),current_state:z1n.optional(),knowledge_files:O.array(F1n).optional(),stage_artifacts:O.array(j1n).optional(),output_artifacts:O.array(Sfe).optional(),other_files:O.array(Sfe).optional(),intent_other_files:O.array(Sfe).optional(),unit_outputs:O.record(O.array(H1n)).optional(),output_declared_by:O.record(O.array(O.string())).optional(),previous_review:B1n.optional(),drift:O.array(q1n).optional(),discovered_review_url:W1n.nullable().optional(),ad_hoc:O.boolean().optional(),stage:O.string().optional(),gate_context:O.string().optional(),next_stage:O.string().nullable().optional(),next_phase:O.string().nullable().optional(),approve_action:V1n.optional(),await_active:O.boolean().optional(),await_count:O.number().int().nonnegative().optional(),pending_decision:O.object({decision:O.string(),feedback:O.string(),submitted_at:O.string()}).optional(),last_await_started_at:O.string().optional(),last_await_ended_at:O.string().optional()}).describe("Review session payload (GET /api/session/:id, session_type=review)"),Y1n=O.object({question:O.string(),header:O.string().optional(),options:O.array(O.string()),multiSelect:O.boolean().optional()}).describe("A single question in a multi-question session"),Z1n=O.object({question:O.string(),selectedOptions:O.array(O.string()),otherText:O.string().optional()}),J1n=O.object({session_id:O.string(),session_type:O.literal("question"),status:bD,title:O.string().optional(),context:O.string().optional(),questions:O.array(Y1n).optional(),answers:O.array(Z1n).optional(),image_urls:O.array(O.string()).optional()}).describe("Question session payload (GET /api/session/:id, session_type=question)"),X1n=O.object({name:O.string(),description:O.string(),preview_html:O.string()}),Q1n=O.object({archetype:O.string(),comments:O.string().optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string()})).optional(),screenshots:O.array(O.object({comment:O.string(),screenshot_data_url:O.string()})).optional()}).optional()}).describe("Saved direction selection (nullable on the session)"),$1n=O.object({session_id:O.string(),session_type:O.literal("design_direction"),status:bD,title:O.string().optional(),intent_slug:O.string().optional(),context:O.string().optional(),archetypes:O.array(X1n).optional(),selection:Q1n.nullable().optional()}).describe("Design-direction session payload (GET /api/session/:id, session_type=design_direction)"),eUn=O.enum(["studio","mode","stage","confirm","url_input"]),tUn=O.object({id:O.string(),label:O.string(),description:O.string().optional(),secondary:O.boolean().optional()}).describe("One option in a picker session \u2014 id is the canonical value the wire echoes back, label/description are display-only. `secondary` options are hidden behind a 'Show all\u2026' expansion (studio picker shortlist)."),nUn=O.object({id:O.string()}).describe("Saved picker selection (nullable on the session)"),rUn=O.object({session_id:O.string(),session_type:O.literal("picker"),status:bD,intent_slug:O.string().optional(),kind:eUn,title:O.string(),prompt:O.string(),options:O.array(tUn),selection:nUn.nullable().optional()}).describe("Picker session payload (GET /api/session/:id, session_type=picker) \u2014 engine-side blocking selection for studio/mode/stage and destructive-confirm"),iUn=O.object({id:O.string().min(1).max(256)}).describe("POST /picker/:sessionId/select request body \u2014 id must match one of the session's options"),sUn=O.object({ok:O.literal(!0),id:O.string()}).describe("Success response from POST /picker/:sessionId/select"),oUn=O.object({session_id:O.string(),session_type:O.literal("view"),status:O.enum(["open","closed"]),intent_slug:O.string(),studio:O.string().optional(),stage:O.string().optional(),artifact:O.string().optional(),mode:O.enum(["viewer","boot"]),boot_port:O.number().int().positive().optional(),boot_command:O.string().optional()}).describe("View session payload (GET /api/session/:id, session_type=view). Opened by haiku_view, closed by haiku_view_close."),aUn=O.discriminatedUnion("session_type",[K1n,J1n,$1n,rUn,oUn]).describe("GET /api/session/:id response body \u2014 discriminated on session_type"),cUn=O.object({pending:O.number().int().nonnegative(),addressed:O.number().int().nonnegative(),closed:O.number().int().nonnegative(),rejected:O.number().int().nonnegative()}).describe("Per-status counts of feedback items for the active stage."),uUn=O.object({name:O.string(),status:O.string(),phase:O.string().optional(),iteration:O.number().optional(),iterations:O.array(O.unknown()).optional(),visits:O.number().optional()}),lUn=O.object({slug:O.string(),title:O.string(),status:O.string()}),XYr=O.object({intent:O.string(),stage:O.string().nullable(),phase:O.string().optional(),units:O.array(lUn),feedback_summary:cUn,stages:O.array(uUn)}).describe("GET /api/review/current response body"),dUn=O.object({}).describe("HEAD /api/session/:id/heartbeat \u2014 no body. 200 if session exists, 404 otherwise.")});var Efe=v(()=>{"use strict";rfe();fg();ufe();pfe();NK();yfe();bfe()});var _fe=v(()=>{"use strict"});var but=v(()=>{"use strict";Wie();Efe();_fe()});function gUn(e){return!(e.includes("\0")||hUn.test(e)||e.startsWith("/")||e.startsWith("\\")||mUn.test(e)||e==="."||e.split(/[\\/]+/).some(n=>n===".."))}var hUn,mUn,Eut,pZr,_ut=v(()=>{"use strict";_l();hUn=/%(?:00|2e|2f|5c)/i,mUn=/^[A-Za-z]:/;Eut=O.object({sessionId:O.string().min(1).describe("Session ID (UUID issued by sessions.createSession)"),path:O.string().min(1).refine(gUn,{message:"path must be a safe relative path \u2014 no '..' segments, absolute paths, null bytes, or URL-encoded variants (%00, %2e, %2f, %5c)"}).describe("Relative path under the session's serving root")}).describe("Path parameters for /files/:sessionId/*path and aliases"),pZr=O.object({sessionId:O.string().min(1),index:O.number().int().nonnegative().describe("Zero-based image index within the question session")}).describe("Path parameters for /question-image/:sessionId/:index")});var Tut,yUn,SUn,bUn,EUn,vut,Rut,_Un,TUn,vUn,RUn,AUn,wUn,kUn,IUn,xUn,OUn,PUn,NUn,SZr,Aut=v(()=>{"use strict";_l();fg();NK();Tut=65536,yUn=O.object({type:O.literal("decide"),decision:O.string().max(32),feedback:O.string().max(1e4).optional(),annotations:cI.optional()}).describe("Review decision frame (session_type=review)"),SUn=O.object({type:O.literal("answer"),answers:O.array(hfe),feedback:O.string().max(1e4).optional(),annotations:OK.optional()}).describe("Question answer frame (session_type=question)"),bUn=O.object({type:O.literal("select"),mode:O.enum(["select","regenerate"]),archetype:O.string().max(64).optional(),keep:O.array(O.string().max(64)).max(50).optional(),comments:O.string().max(1e4).optional(),annotations:O.object({pins:O.array(O.object({x:O.number(),y:O.number(),text:O.string().max(1e3)})).optional()}).optional()}).describe("Design-direction frame (session_type=design_direction) \u2014 mode='select' finalizes a choice, mode='regenerate' asks the agent for more variants"),EUn=O.object({type:O.literal("heartbeat"),t:O.number().optional()}).describe("Client liveness heartbeat (any session_type). Sent every 30s over the long-lived WS; the server records presence and replies heartbeat_ack."),vut=(e,t)=>{let n=JSON.stringify(e).length;n>Tut&&t.addIssue({code:O.ZodIssueCode.custom,message:`Serialized frame size ${n} exceeds ${Tut} bytes`,path:[]})},Rut=O.discriminatedUnion("type",[yUn,SUn,bUn,EUn]).superRefine(vut).describe("Any client -> server WebSocket envelope"),_Un=O.object({type:O.literal("ack"),ok:O.literal(!0),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server acknowledgement frame. Shape aligns with the payload sendToWebSocket emits after a successful client message."),TUn=O.object({type:O.literal("error"),error:O.string().max(500)}).describe("Server error frame"),vUn=O.object({type:O.literal("heartbeat_ack"),t:O.number().optional()}).describe("Server heartbeat acknowledgement \u2014 presence was recorded; the connection is still seen as live."),RUn=O.object({type:O.literal("session-update"),session_id:O.string().max(64),status:O.string().max(32),decision:O.string().max(32).optional(),feedback:O.string().max(1e4).optional()}).describe("Server broadcast when a session's durable status changes (review decided, question answered, direction selected)."),AUn=O.object({type:O.literal("tick_committed"),action:O.string().max(64),phase:O.string().max(64).optional(),stage:O.string().max(64).optional(),iteration:O.number().int().nonnegative().optional()}),wUn=O.object({type:O.literal("unit_changed"),unit_name:O.string().max(128),status:O.string().max(32),stage:O.string().max(64).optional(),hat:O.string().max(64).optional()}),kUn=O.object({type:O.literal("feedback_changed"),feedback_id:O.string().max(64),status:O.string().max(32),stage:O.string().max(64).optional()}),IUn=O.object({type:O.literal("gate_prepared"),session_id:O.string().max(64),stage:O.string().max(64),gate_context:O.string().max(64),review_url:O.string().max(2048),browser_attached:O.boolean()}),xUn=O.object({type:O.literal("await_state_changed"),session_id:O.string().max(64),await_active:O.boolean()}),OUn=O.object({type:O.literal("pending_decision_changed"),session_id:O.string().max(64),queued:O.boolean()}),PUn=O.discriminatedUnion("type",[AUn,wUn,kUn,IUn,xUn,OUn]),NUn=O.object({type:O.literal("intent-event"),session_id:O.string().max(64),event:PUn}).describe("Server broadcast \u2014 a per-intent live-state event for any SPA tab subscribed to this intent's channel."),SZr=O.discriminatedUnion("type",[_Un,TUn,vUn,RUn,NUn]).superRefine(vut).describe("Any server -> client WebSocket envelope")});var TT=v(()=>{"use strict";but();Efe();rfe();ife();fg();ufe();pfe();_ut();NK();yfe();bfe();Aut();_fe()});function pg(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---(\r?\n[\s\S]*)?$/);if(!t)return{text:e,removed:[]};let{cleaned:n,removed:r}=wut(t[1]);return r.length===0?{text:e,removed:[]}:{text:`--- ${n} ----${t[2]??""}`,removed:r}}function Aut(e){let t=e.split(/\r?\n/),n=[],r=null;for(let c of t){let u=c.match(/^([A-Za-z_][A-Za-z0-9_-]*)\s*:/);u!=null&&!c.startsWith(" ")&&!c.startsWith(" ")&&u?(r&&n.push(r),r={key:u[1],text:[c]}):r?r.text.push(c):n.push({key:null,text:[c]})}r&&n.push(r);let i=new Map,s=new Map;for(let c=0;c1&&o.push(c);let a=[];for(let c=0;c{});var vD=w((HZr,kut)=>{var CUn=Object.prototype.toString;kut.exports=function(t){if(t===void 0)return"undefined";if(t===null)return"null";var n=typeof t;if(n==="boolean")return"boolean";if(n==="string")return"string";if(n==="number")return"number";if(n==="symbol")return"symbol";if(n==="function")return FUn(t)?"generatorfunction":"function";if(MUn(t))return"array";if(qUn(t))return"buffer";if(HUn(t))return"arguments";if(LUn(t))return"date";if(DUn(t))return"error";if(UUn(t))return"regexp";switch(wut(t)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(jUn(t))return"generator";switch(n=CUn.call(t),n){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return n.slice(8,-1).toLowerCase().replace(/\s/g,"")};function wut(e){return typeof e.constructor=="function"?e.constructor.name:null}function MUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function DUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function LUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function UUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function FUn(e,t){return wut(e)==="GeneratorFunction"}function jUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function HUn(e){try{if(typeof e.length=="number"&&typeof e.callee=="function")return!0}catch(t){if(t.message.indexOf("callee")!==-1)return!0}return!1}function qUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var xut=w((qZr,Iut)=>{"use strict";Iut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var Nut=w((BZr,Put)=>{"use strict";var Out=xut();Put.exports=function(t){Out(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var GUn=vD(),VUn=Nut();Mut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=KUn(e),r={section_delimiter:"---",parse:ZUn},i=VUn({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Cut(),u=[],l=[];function d(y){n.content=y,a=[],u=[]}function f(y){l.length&&(c.key=YUn(l[0],s),c.content=y,i.parse(c,a),a.push(c),c=Cut(),u=[],l=[])}for(var p=0;p1&&o.push(c);let a=[];for(let c=0;c{});var RD=w((HZr,Iut)=>{var CUn=Object.prototype.toString;Iut.exports=function(t){if(t===void 0)return"undefined";if(t===null)return"null";var n=typeof t;if(n==="boolean")return"boolean";if(n==="string")return"string";if(n==="number")return"number";if(n==="symbol")return"symbol";if(n==="function")return FUn(t)?"generatorfunction":"function";if(MUn(t))return"array";if(qUn(t))return"buffer";if(HUn(t))return"arguments";if(LUn(t))return"date";if(DUn(t))return"error";if(UUn(t))return"regexp";switch(kut(t)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(jUn(t))return"generator";switch(n=CUn.call(t),n){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return n.slice(8,-1).toLowerCase().replace(/\s/g,"")};function kut(e){return typeof e.constructor=="function"?e.constructor.name:null}function MUn(e){return Array.isArray?Array.isArray(e):e instanceof Array}function DUn(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function LUn(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function UUn(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function FUn(e,t){return kut(e)==="GeneratorFunction"}function jUn(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function HUn(e){try{if(typeof e.length=="number"&&typeof e.callee=="function")return!0}catch(t){if(t.message.indexOf("callee")!==-1)return!0}return!1}function qUn(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var Out=w((qZr,xut)=>{"use strict";xut.exports=function(t){return typeof t<"u"&&t!==null&&(typeof t=="object"||typeof t=="function")}});var Cut=w((BZr,Nut)=>{"use strict";var Put=Out();Nut.exports=function(t){Put(t)||(t={});for(var n=arguments.length,r=1;r{"use strict";var GUn=RD(),VUn=Cut();Dut.exports=function(e,t){typeof t=="function"&&(t={parse:t});var n=KUn(e),r={section_delimiter:"---",parse:ZUn},i=VUn({},r,t),s=i.section_delimiter,o=n.content.split(/\r?\n/),a=null,c=Mut(),u=[],l=[];function d(y){n.content=y,a=[],u=[]}function f(y){l.length&&(c.key=YUn(l[0],s),c.content=y,i.parse(c,a),a.push(c),c=Mut(),u=[],l=[])}for(var p=0;p{"use strict";function Lut(e){return typeof e>"u"||e===null}function XUn(e){return typeof e=="object"&&e!==null}function QUn(e){return Array.isArray(e)?e:Lut(e)?[]:[e]}function $Un(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function RD(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}RD.prototype=Object.create(Error.prototype);RD.prototype.constructor=RD;RD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};Uut.exports=RD});var Hut=w((WZr,jut)=>{"use strict";var Fut=RT();function _fe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}_fe.prototype.getSnippet=function(t,n){var r,i,s,o,a;if(!this.buffer)return null;for(t=t||4,n=n||75,r="",i=this.position;i>0&&`\0\r +`)),n.sections=a,n};function WUn(e,t){return!(e.slice(0,t.length)!==t||e.charAt(t.length+1)===t.slice(-1))}function KUn(e){if(GUn(e)!=="object"&&(e={content:e}),typeof e.content!="string"&&!JUn(e.content))throw new TypeError("expected a buffer or string");return e.content=e.content.toString(),e.sections=[],e}function YUn(e,t){return e?e.slice(t.length).trim():""}function Mut(){return{key:"",data:"",content:""}}function ZUn(e){return e}function JUn(e){return e&&e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}});var RT=w((GZr,vT)=>{"use strict";function Uut(e){return typeof e>"u"||e===null}function XUn(e){return typeof e=="object"&&e!==null}function QUn(e){return Array.isArray(e)?e:Uut(e)?[]:[e]}function $Un(e,t){var n,r,i,s;if(t)for(s=Object.keys(t),n=0,r=s.length;n{"use strict";function AD(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}AD.prototype=Object.create(Error.prototype);AD.prototype.constructor=AD;AD.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};Fut.exports=AD});var qut=w((WZr,Hut)=>{"use strict";var jut=RT();function Tfe(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}Tfe.prototype.getSnippet=function(t,n){var r,i,s,o,a;if(!this.buffer)return null;for(t=t||4,n=n||75,r="",i=this.position;i>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(i-1))===-1;)if(i-=1,this.position-i>n/2-1){r=" ... ",i+=5;break}for(s="",o=this.position;on/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(i,o),Fut.repeat(" ",t)+r+a+s+` -`+Fut.repeat(" ",t+this.position-i+r.length)+"^"};_fe.prototype.toString=function(t){var n,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(n=this.getSnippet(),n&&(r+=`: -`+n)),r};jut.exports=_fe});var To=w((KZr,But)=>{"use strict";var qut=lI(),nFn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],rFn=["scalar","sequence","mapping"];function iFn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function sFn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(nFn.indexOf(n)===-1)throw new qut('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=iFn(t.styleAliases||null),rFn.indexOf(this.kind)===-1)throw new qut('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}But.exports=sFn});var AT=w((YZr,Gut)=>{"use strict";var zut=RT(),PK=lI(),oFn=To();function Tfe(e,t,n){var r=[];return e.include.forEach(function(i){n=Tfe(i,t,n)}),e[t].forEach(function(i){n.forEach(function(s,o){s.tag===i.tag&&s.kind===i.kind&&r.push(o)}),n.push(i)}),n.filter(function(i,s){return r.indexOf(s)===-1})}function aFn(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,n;function r(i){e[i.kind][i.tag]=e.fallback[i.tag]=i}for(t=0,n=arguments.length;t{"use strict";var cFn=To();Vut.exports=new cFn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var Yut=w((JZr,Kut)=>{"use strict";var uFn=To();Kut.exports=new uFn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var Jut=w((XZr,Zut)=>{"use strict";var lFn=To();Zut.exports=new lFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var NK=w((QZr,Xut)=>{"use strict";var dFn=AT();Xut.exports=new dFn({explicit:[Wut(),Yut(),Jut()]})});var $ut=w(($Zr,Qut)=>{"use strict";var fFn=To();function pFn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function hFn(){return null}function mFn(e){return e===null}Qut.exports=new fFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:pFn,construct:hFn,predicate:mFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var tlt=w((e6r,elt)=>{"use strict";var gFn=To();function yFn(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function SFn(e){return e==="true"||e==="True"||e==="TRUE"}function bFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}elt.exports=new gFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:yFn,construct:SFn,predicate:bFn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var rlt=w((t6r,nlt)=>{"use strict";var EFn=RT(),_Fn=To();function TFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function vFn(e){return 48<=e&&e<=55}function RFn(e){return 48<=e&&e<=57}function AFn(e){if(e===null)return!1;var t=e.length,n=0,r=!1,i;if(!t)return!1;if(i=e[n],(i==="-"||i==="+")&&(i=e[++n]),i==="0"){if(n+1===t)return!0;if(i=e[++n],i==="b"){for(n++;n=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var olt=w((n6r,slt)=>{"use strict";var ilt=RT(),IFn=To(),xFn=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function OFn(e){return!(e===null||!xFn.test(e)||e[e.length-1]==="_")}function PFn(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(s){i.unshift(parseFloat(s,10))}),t=0,r=1,i.forEach(function(s){t+=s*r,r*=60}),n*t):n*parseFloat(t,10)}var NFn=/^[-+]?[0-9]+e/;function CFn(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ilt.isNegativeZero(e))return"-0.0";return n=e.toString(10),NFn.test(n)?n.replace("e",".e"):n}function MFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||ilt.isNegativeZero(e))}slt.exports=new IFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:OFn,construct:PFn,predicate:MFn,represent:CFn,defaultStyle:"lowercase"})});var vfe=w((r6r,alt)=>{"use strict";var DFn=AT();alt.exports=new DFn({include:[NK()],implicit:[$ut(),tlt(),rlt(),olt()]})});var Rfe=w((i6r,clt)=>{"use strict";var LFn=AT();clt.exports=new LFn({include:[vfe()]})});var flt=w((s6r,dlt)=>{"use strict";var UFn=To(),ult=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),llt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function FFn(e){return e===null?!1:ult.exec(e)!==null||llt.exec(e)!==null}function jFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=ult.exec(e),t===null&&(t=llt.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(s=+t[4],o=+t[5],a=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(l=+t[10],d=+(t[11]||0),u=(l*60+d)*6e4,t[9]==="-"&&(u=-u)),f=new Date(Date.UTC(n,r,i,s,o,a,c)),u&&f.setTime(f.getTime()-u),f}function HFn(e){return e.toISOString()}dlt.exports=new UFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:FFn,construct:jFn,instanceOf:Date,represent:HFn})});var hlt=w((o6r,plt)=>{"use strict";var qFn=To();function BFn(e){return e==="<<"||e===null}plt.exports=new qFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:BFn})});var ylt=w((a6r,glt)=>{"use strict";var wT;try{mlt=K,wT=mlt("buffer").Buffer}catch{}var mlt,zFn=To(),Afe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function GFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=Afe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function VFn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=Afe,o=0,a=[];for(t=0;t>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(r.charAt(t));return n=i%4*6,n===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):n===18?(a.push(o>>10&255),a.push(o>>2&255)):n===12&&a.push(o>>4&255),wT?wT.from?wT.from(a):new wT(a):a}function WFn(e){var t="",n=0,r,i,s=e.length,o=Afe;for(r=0;r>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]),n=(n<<8)+e[r];return i=s%3,i===0?(t+=o[n>>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]):i===2?(t+=o[n>>10&63],t+=o[n>>4&63],t+=o[n<<2&63],t+=o[64]):i===1&&(t+=o[n>>2&63],t+=o[n<<4&63],t+=o[64],t+=o[64]),t}function KFn(e){return wT&&wT.isBuffer(e)}glt.exports=new zFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:GFn,construct:VFn,predicate:KFn,represent:WFn})});var blt=w((u6r,Slt)=>{"use strict";var YFn=To(),ZFn=Object.prototype.hasOwnProperty,JFn=Object.prototype.toString;function XFn(e){if(e===null)return!0;var t=[],n,r,i,s,o,a=e;for(n=0,r=a.length;n{"use strict";var $Fn=To(),ejn=Object.prototype.toString;function tjn(e){if(e===null)return!0;var t,n,r,i,s,o=e;for(s=new Array(o.length),t=0,n=o.length;t{"use strict";var rjn=To(),ijn=Object.prototype.hasOwnProperty;function sjn(e){if(e===null)return!0;var t,n=e;for(t in n)if(ijn.call(n,t)&&n[t]!==null)return!1;return!0}function ojn(e){return e!==null?e:{}}Tlt.exports=new rjn("tag:yaml.org,2002:set",{kind:"mapping",resolve:sjn,construct:ojn})});var fI=w((f6r,Rlt)=>{"use strict";var ajn=AT();Rlt.exports=new ajn({include:[Rfe()],implicit:[flt(),hlt()],explicit:[ylt(),blt(),_lt(),vlt()]})});var wlt=w((p6r,Alt)=>{"use strict";var cjn=To();function ujn(){return!0}function ljn(){}function djn(){return""}function fjn(e){return typeof e>"u"}Alt.exports=new cjn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:ujn,construct:ljn,predicate:fjn,represent:djn})});var Ilt=w((h6r,klt)=>{"use strict";var pjn=To();function hjn(e){if(e===null||e.length===0)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";return!(t[0]==="/"&&(n&&(r=n[1]),r.length>3||t[t.length-r.length-1]!=="/"))}function mjn(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return t[0]==="/"&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function gjn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function yjn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}klt.exports=new pjn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:hjn,construct:mjn,predicate:yjn,represent:gjn})});var Plt=w((m6r,Olt)=>{"use strict";var CK;try{xlt=K,CK=xlt("esprima")}catch{typeof window<"u"&&(CK=window.esprima)}var xlt,Sjn=To();function bjn(e){if(e===null)return!1;try{var t="("+e+")",n=CK.parse(t,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function Ejn(e){var t="("+e+")",n=CK.parse(t,{range:!0}),r=[],i;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(s){r.push(s.name)}),i=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(r,t.slice(i[0]+1,i[1]-1)):new Function(r,"return "+t.slice(i[0],i[1]))}function _jn(e){return e.toString()}function Tjn(e){return Object.prototype.toString.call(e)==="[object Function]"}Olt.exports=new Sjn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:bjn,construct:Ejn,predicate:Tjn,represent:_jn})});var AD=w((y6r,Clt)=>{"use strict";var Nlt=AT();Clt.exports=Nlt.DEFAULT=new Nlt({include:[fI()],explicit:[wlt(),Ilt(),Plt()]})});var $lt=w((S6r,wD)=>{"use strict";var hg=RT(),Hlt=lI(),vjn=Hut(),qlt=fI(),Rjn=AD(),lb=Object.prototype.hasOwnProperty,MK=1,Blt=2,zlt=3,DK=4,wfe=1,Ajn=2,Mlt=3,wjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,kjn=/[\x85\u2028\u2029]/,Ijn=/[,\[\]\{\}]/,Glt=/^(?:!|!!|![a-z\-]+!)$/i,Vlt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Dlt(e){return Object.prototype.toString.call(e)}function Ph(e){return e===10||e===13}function IT(e){return e===9||e===32}function Pu(e){return e===9||e===32||e===10||e===13}function pI(e){return e===44||e===91||e===93||e===123||e===125}function xjn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function Ojn(e){return e===120?2:e===117?4:e===85?8:0}function Pjn(e){return 48<=e&&e<=57?e-48:-1}function Llt(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` -`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function Njn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Wlt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var Klt=new Array(256),Ylt=new Array(256);for(kT=0;kT<256;kT++)Klt[kT]=Llt(kT)?1:0,Ylt[kT]=Llt(kT);var kT;function Cjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Rjn,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Zlt(e,t){return new Hlt(t,new vjn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Lt(e,t){throw Zlt(e,t)}function LK(e,t){e.onWarning&&e.onWarning.call(null,Zlt(e,t))}var Ult={YAML:function(t,n,r){var i,s,o;t.version!==null&&Lt(t,"duplication of %YAML directive"),r.length!==1&&Lt(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&Lt(t,"ill-formed argument of the YAML directive"),s=parseInt(i[1],10),o=parseInt(i[2],10),s!==1&&Lt(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=o<2,o!==1&&o!==2&&LK(t,"unsupported YAML version of the document")},TAG:function(t,n,r){var i,s;r.length!==2&&Lt(t,"TAG directive accepts exactly two arguments"),i=r[0],s=r[1],Glt.test(i)||Lt(t,"ill-formed tag handle (first argument) of the TAG directive"),lb.call(t.tagMap,i)&&Lt(t,'there is a previously declared suffix for "'+i+'" tag handle'),Vlt.test(s)||Lt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function ub(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=hg.repeat(` -`,t-1))}function Mjn(e,t,n){var r,i,s,o,a,c,u,l,d=e.kind,f=e.result,p;if(p=e.input.charCodeAt(e.position),Pu(p)||pI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&pI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&pI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Pu(r))break}else{if(e.position===e.lineStart&&UK(e)||n&&pI(p))break;if(Ph(p))if(c=e.line,u=e.lineStart,l=e.lineIndent,to(e,!1,-1),e.lineIndent>=t){a=!0,p=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=c,e.lineStart=u,e.lineIndent=l;break}}a&&(ub(e,s,o,!1),Ife(e,e.line-c),s=o=e.position,a=!1),IT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return ub(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function Djn(e,t){var n,r,i;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(ub(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)r=e.position,e.position++,i=e.position;else return!0;else Ph(n)?(ub(e,r,i,!0),Ife(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&UK(e)?Lt(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);Lt(e,"unexpected end of the stream within a single quoted scalar")}function Ljn(e,t){var n,r,i,s,o,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return ub(e,n,e.position,!0),e.position++,!0;if(a===92){if(ub(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Ph(a))to(e,!1,t);else if(a<256&&Klt[a])e.result+=Ylt[a],e.position++;else if((o=Ojn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=xjn(a))>=0?s=(s<<4)+o:Lt(e,"expected hexadecimal character");e.result+=Njn(s),e.position++}else Lt(e,"unknown escape sequence");n=r=e.position}else Ph(a)?(ub(e,n,r,!0),Ife(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&UK(e)?Lt(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}Lt(e,"unexpected end of the stream within a double quoted scalar")}function Ujn(e,t){var n=!0,r,i=e.tag,s,o=e.anchor,a,c,u,l,d,f={},p,h,m,g;if(g=e.input.charCodeAt(e.position),g===91)c=93,d=!1,s=[];else if(g===123)c=125,d=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),g=e.input.charCodeAt(++e.position);g!==0;){if(to(e,!0,t),g=e.input.charCodeAt(e.position),g===c)return e.position++,e.tag=i,e.anchor=o,e.kind=d?"mapping":"sequence",e.result=s,!0;n||Lt(e,"missed comma between flow collection entries"),h=p=m=null,u=l=!1,g===63&&(a=e.input.charCodeAt(e.position+1),Pu(a)&&(u=l=!0,e.position++,to(e,!0,t))),r=e.line,mI(e,t,MK,!1,!0),h=e.tag,p=e.result,to(e,!0,t),g=e.input.charCodeAt(e.position),(l||e.line===r)&&g===58&&(u=!0,g=e.input.charCodeAt(++e.position),to(e,!0,t),mI(e,t,MK,!1,!0),m=e.result),d?hI(e,s,f,h,p,m):u?s.push(hI(e,null,f,h,p,m)):s.push(p),to(e,!0,t),g=e.input.charCodeAt(e.position),g===44?(n=!0,g=e.input.charCodeAt(++e.position)):n=!1}Lt(e,"unexpected end of the stream within a flow collection")}function Fjn(e,t){var n,r,i=wfe,s=!1,o=!1,a=t,c=0,u=!1,l,d;if(d=e.input.charCodeAt(e.position),d===124)r=!1;else if(d===62)r=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)wfe===i?i=d===43?Mlt:Ajn:Lt(e,"repeat of a chomping mode identifier");else if((l=Pjn(d))>=0)l===0?Lt(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?Lt(e,"repeat of an indentation width identifier"):(a=t+l-1,o=!0);else break;if(IT(d)){do d=e.input.charCodeAt(++e.position);while(IT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Ph(d)&&d!==0)}for(;d!==0;){for(kfe(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!o||e.lineIndenta&&(a=e.lineIndent),Ph(d)){c++;continue}if(e.lineIndentn/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(i,o),jut.repeat(" ",t)+r+a+s+` +`+jut.repeat(" ",t+this.position-i+r.length)+"^"};Tfe.prototype.toString=function(t){var n,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(n=this.getSnippet(),n&&(r+=`: +`+n)),r};Hut.exports=Tfe});var To=w((KZr,zut)=>{"use strict";var But=lI(),nFn=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],rFn=["scalar","sequence","mapping"];function iFn(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function sFn(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(nFn.indexOf(n)===-1)throw new But('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=iFn(t.styleAliases||null),rFn.indexOf(this.kind)===-1)throw new But('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}zut.exports=sFn});var AT=w((YZr,Vut)=>{"use strict";var Gut=RT(),CK=lI(),oFn=To();function vfe(e,t,n){var r=[];return e.include.forEach(function(i){n=vfe(i,t,n)}),e[t].forEach(function(i){n.forEach(function(s,o){s.tag===i.tag&&s.kind===i.kind&&r.push(o)}),n.push(i)}),n.filter(function(i,s){return r.indexOf(s)===-1})}function aFn(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,n;function r(i){e[i.kind][i.tag]=e.fallback[i.tag]=i}for(t=0,n=arguments.length;t{"use strict";var cFn=To();Wut.exports=new cFn("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var Zut=w((JZr,Yut)=>{"use strict";var uFn=To();Yut.exports=new uFn("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var Xut=w((XZr,Jut)=>{"use strict";var lFn=To();Jut.exports=new lFn("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var MK=w((QZr,Qut)=>{"use strict";var dFn=AT();Qut.exports=new dFn({explicit:[Kut(),Zut(),Xut()]})});var elt=w(($Zr,$ut)=>{"use strict";var fFn=To();function pFn(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function hFn(){return null}function mFn(e){return e===null}$ut.exports=new fFn("tag:yaml.org,2002:null",{kind:"scalar",resolve:pFn,construct:hFn,predicate:mFn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var nlt=w((e6r,tlt)=>{"use strict";var gFn=To();function yFn(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function SFn(e){return e==="true"||e==="True"||e==="TRUE"}function bFn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}tlt.exports=new gFn("tag:yaml.org,2002:bool",{kind:"scalar",resolve:yFn,construct:SFn,predicate:bFn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var ilt=w((t6r,rlt)=>{"use strict";var EFn=RT(),_Fn=To();function TFn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function vFn(e){return 48<=e&&e<=55}function RFn(e){return 48<=e&&e<=57}function AFn(e){if(e===null)return!1;var t=e.length,n=0,r=!1,i;if(!t)return!1;if(i=e[n],(i==="-"||i==="+")&&(i=e[++n]),i==="0"){if(n+1===t)return!0;if(i=e[++n],i==="b"){for(n++;n=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var alt=w((n6r,olt)=>{"use strict";var slt=RT(),IFn=To(),xFn=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function OFn(e){return!(e===null||!xFn.test(e)||e[e.length-1]==="_")}function PFn(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(s){i.unshift(parseFloat(s,10))}),t=0,r=1,i.forEach(function(s){t+=s*r,r*=60}),n*t):n*parseFloat(t,10)}var NFn=/^[-+]?[0-9]+e/;function CFn(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(slt.isNegativeZero(e))return"-0.0";return n=e.toString(10),NFn.test(n)?n.replace("e",".e"):n}function MFn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||slt.isNegativeZero(e))}olt.exports=new IFn("tag:yaml.org,2002:float",{kind:"scalar",resolve:OFn,construct:PFn,predicate:MFn,represent:CFn,defaultStyle:"lowercase"})});var Rfe=w((r6r,clt)=>{"use strict";var DFn=AT();clt.exports=new DFn({include:[MK()],implicit:[elt(),nlt(),ilt(),alt()]})});var Afe=w((i6r,ult)=>{"use strict";var LFn=AT();ult.exports=new LFn({include:[Rfe()]})});var plt=w((s6r,flt)=>{"use strict";var UFn=To(),llt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),dlt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function FFn(e){return e===null?!1:llt.exec(e)!==null||dlt.exec(e)!==null}function jFn(e){var t,n,r,i,s,o,a,c=0,u=null,l,d,f;if(t=llt.exec(e),t===null&&(t=dlt.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(s=+t[4],o=+t[5],a=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(l=+t[10],d=+(t[11]||0),u=(l*60+d)*6e4,t[9]==="-"&&(u=-u)),f=new Date(Date.UTC(n,r,i,s,o,a,c)),u&&f.setTime(f.getTime()-u),f}function HFn(e){return e.toISOString()}flt.exports=new UFn("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:FFn,construct:jFn,instanceOf:Date,represent:HFn})});var mlt=w((o6r,hlt)=>{"use strict";var qFn=To();function BFn(e){return e==="<<"||e===null}hlt.exports=new qFn("tag:yaml.org,2002:merge",{kind:"scalar",resolve:BFn})});var Slt=w((a6r,ylt)=>{"use strict";var wT;try{glt=K,wT=glt("buffer").Buffer}catch{}var glt,zFn=To(),wfe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function GFn(e){if(e===null)return!1;var t,n,r=0,i=e.length,s=wfe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function VFn(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,s=wfe,o=0,a=[];for(t=0;t>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(r.charAt(t));return n=i%4*6,n===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):n===18?(a.push(o>>10&255),a.push(o>>2&255)):n===12&&a.push(o>>4&255),wT?wT.from?wT.from(a):new wT(a):a}function WFn(e){var t="",n=0,r,i,s=e.length,o=wfe;for(r=0;r>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]),n=(n<<8)+e[r];return i=s%3,i===0?(t+=o[n>>18&63],t+=o[n>>12&63],t+=o[n>>6&63],t+=o[n&63]):i===2?(t+=o[n>>10&63],t+=o[n>>4&63],t+=o[n<<2&63],t+=o[64]):i===1&&(t+=o[n>>2&63],t+=o[n<<4&63],t+=o[64],t+=o[64]),t}function KFn(e){return wT&&wT.isBuffer(e)}ylt.exports=new zFn("tag:yaml.org,2002:binary",{kind:"scalar",resolve:GFn,construct:VFn,predicate:KFn,represent:WFn})});var Elt=w((u6r,blt)=>{"use strict";var YFn=To(),ZFn=Object.prototype.hasOwnProperty,JFn=Object.prototype.toString;function XFn(e){if(e===null)return!0;var t=[],n,r,i,s,o,a=e;for(n=0,r=a.length;n{"use strict";var $Fn=To(),ejn=Object.prototype.toString;function tjn(e){if(e===null)return!0;var t,n,r,i,s,o=e;for(s=new Array(o.length),t=0,n=o.length;t{"use strict";var rjn=To(),ijn=Object.prototype.hasOwnProperty;function sjn(e){if(e===null)return!0;var t,n=e;for(t in n)if(ijn.call(n,t)&&n[t]!==null)return!1;return!0}function ojn(e){return e!==null?e:{}}vlt.exports=new rjn("tag:yaml.org,2002:set",{kind:"mapping",resolve:sjn,construct:ojn})});var fI=w((f6r,Alt)=>{"use strict";var ajn=AT();Alt.exports=new ajn({include:[Afe()],implicit:[plt(),mlt()],explicit:[Slt(),Elt(),Tlt(),Rlt()]})});var klt=w((p6r,wlt)=>{"use strict";var cjn=To();function ujn(){return!0}function ljn(){}function djn(){return""}function fjn(e){return typeof e>"u"}wlt.exports=new cjn("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:ujn,construct:ljn,predicate:fjn,represent:djn})});var xlt=w((h6r,Ilt)=>{"use strict";var pjn=To();function hjn(e){if(e===null||e.length===0)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";return!(t[0]==="/"&&(n&&(r=n[1]),r.length>3||t[t.length-r.length-1]!=="/"))}function mjn(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return t[0]==="/"&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function gjn(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function yjn(e){return Object.prototype.toString.call(e)==="[object RegExp]"}Ilt.exports=new pjn("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:hjn,construct:mjn,predicate:yjn,represent:gjn})});var Nlt=w((m6r,Plt)=>{"use strict";var DK;try{Olt=K,DK=Olt("esprima")}catch{typeof window<"u"&&(DK=window.esprima)}var Olt,Sjn=To();function bjn(e){if(e===null)return!1;try{var t="("+e+")",n=DK.parse(t,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function Ejn(e){var t="("+e+")",n=DK.parse(t,{range:!0}),r=[],i;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(s){r.push(s.name)}),i=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(r,t.slice(i[0]+1,i[1]-1)):new Function(r,"return "+t.slice(i[0],i[1]))}function _jn(e){return e.toString()}function Tjn(e){return Object.prototype.toString.call(e)==="[object Function]"}Plt.exports=new Sjn("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:bjn,construct:Ejn,predicate:Tjn,represent:_jn})});var wD=w((y6r,Mlt)=>{"use strict";var Clt=AT();Mlt.exports=Clt.DEFAULT=new Clt({include:[fI()],explicit:[klt(),xlt(),Nlt()]})});var edt=w((S6r,kD)=>{"use strict";var hg=RT(),qlt=lI(),vjn=qut(),Blt=fI(),Rjn=wD(),lb=Object.prototype.hasOwnProperty,LK=1,zlt=2,Glt=3,UK=4,kfe=1,Ajn=2,Dlt=3,wjn=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,kjn=/[\x85\u2028\u2029]/,Ijn=/[,\[\]\{\}]/,Vlt=/^(?:!|!!|![a-z\-]+!)$/i,Wlt=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Llt(e){return Object.prototype.toString.call(e)}function Ph(e){return e===10||e===13}function IT(e){return e===9||e===32}function Pu(e){return e===9||e===32||e===10||e===13}function pI(e){return e===44||e===91||e===93||e===123||e===125}function xjn(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function Ojn(e){return e===120?2:e===117?4:e===85?8:0}function Pjn(e){return 48<=e&&e<=57?e-48:-1}function Ult(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` +`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function Njn(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Klt(e,t,n){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:n}):e[t]=n}var Ylt=new Array(256),Zlt=new Array(256);for(kT=0;kT<256;kT++)Ylt[kT]=Ult(kT)?1:0,Zlt[kT]=Ult(kT);var kT;function Cjn(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Rjn,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Jlt(e,t){return new qlt(t,new vjn(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Lt(e,t){throw Jlt(e,t)}function FK(e,t){e.onWarning&&e.onWarning.call(null,Jlt(e,t))}var Flt={YAML:function(t,n,r){var i,s,o;t.version!==null&&Lt(t,"duplication of %YAML directive"),r.length!==1&&Lt(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&Lt(t,"ill-formed argument of the YAML directive"),s=parseInt(i[1],10),o=parseInt(i[2],10),s!==1&&Lt(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=o<2,o!==1&&o!==2&&FK(t,"unsupported YAML version of the document")},TAG:function(t,n,r){var i,s;r.length!==2&&Lt(t,"TAG directive accepts exactly two arguments"),i=r[0],s=r[1],Vlt.test(i)||Lt(t,"ill-formed tag handle (first argument) of the TAG directive"),lb.call(t.tagMap,i)&&Lt(t,'there is a previously declared suffix for "'+i+'" tag handle'),Wlt.test(s)||Lt(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=s}};function ub(e,t,n,r){var i,s,o,a;if(t1&&(e.result+=hg.repeat(` +`,t-1))}function Mjn(e,t,n){var r,i,s,o,a,c,u,l,d=e.kind,f=e.result,p;if(p=e.input.charCodeAt(e.position),Pu(p)||pI(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&pI(i)))return!1;for(e.kind="scalar",e.result="",s=o=e.position,a=!1;p!==0;){if(p===58){if(i=e.input.charCodeAt(e.position+1),Pu(i)||n&&pI(i))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),Pu(r))break}else{if(e.position===e.lineStart&&jK(e)||n&&pI(p))break;if(Ph(p))if(c=e.line,u=e.lineStart,l=e.lineIndent,to(e,!1,-1),e.lineIndent>=t){a=!0,p=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=c,e.lineStart=u,e.lineIndent=l;break}}a&&(ub(e,s,o,!1),xfe(e,e.line-c),s=o=e.position,a=!1),IT(p)||(o=e.position+1),p=e.input.charCodeAt(++e.position)}return ub(e,s,o,!1),e.result?!0:(e.kind=d,e.result=f,!1)}function Djn(e,t){var n,r,i;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(ub(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)r=e.position,e.position++,i=e.position;else return!0;else Ph(n)?(ub(e,r,i,!0),xfe(e,to(e,!1,t)),r=i=e.position):e.position===e.lineStart&&jK(e)?Lt(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);Lt(e,"unexpected end of the stream within a single quoted scalar")}function Ljn(e,t){var n,r,i,s,o,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return ub(e,n,e.position,!0),e.position++,!0;if(a===92){if(ub(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),Ph(a))to(e,!1,t);else if(a<256&&Ylt[a])e.result+=Zlt[a],e.position++;else if((o=Ojn(a))>0){for(i=o,s=0;i>0;i--)a=e.input.charCodeAt(++e.position),(o=xjn(a))>=0?s=(s<<4)+o:Lt(e,"expected hexadecimal character");e.result+=Njn(s),e.position++}else Lt(e,"unknown escape sequence");n=r=e.position}else Ph(a)?(ub(e,n,r,!0),xfe(e,to(e,!1,t)),n=r=e.position):e.position===e.lineStart&&jK(e)?Lt(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}Lt(e,"unexpected end of the stream within a double quoted scalar")}function Ujn(e,t){var n=!0,r,i=e.tag,s,o=e.anchor,a,c,u,l,d,f={},p,h,m,g;if(g=e.input.charCodeAt(e.position),g===91)c=93,d=!1,s=[];else if(g===123)c=125,d=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),g=e.input.charCodeAt(++e.position);g!==0;){if(to(e,!0,t),g=e.input.charCodeAt(e.position),g===c)return e.position++,e.tag=i,e.anchor=o,e.kind=d?"mapping":"sequence",e.result=s,!0;n||Lt(e,"missed comma between flow collection entries"),h=p=m=null,u=l=!1,g===63&&(a=e.input.charCodeAt(e.position+1),Pu(a)&&(u=l=!0,e.position++,to(e,!0,t))),r=e.line,mI(e,t,LK,!1,!0),h=e.tag,p=e.result,to(e,!0,t),g=e.input.charCodeAt(e.position),(l||e.line===r)&&g===58&&(u=!0,g=e.input.charCodeAt(++e.position),to(e,!0,t),mI(e,t,LK,!1,!0),m=e.result),d?hI(e,s,f,h,p,m):u?s.push(hI(e,null,f,h,p,m)):s.push(p),to(e,!0,t),g=e.input.charCodeAt(e.position),g===44?(n=!0,g=e.input.charCodeAt(++e.position)):n=!1}Lt(e,"unexpected end of the stream within a flow collection")}function Fjn(e,t){var n,r,i=kfe,s=!1,o=!1,a=t,c=0,u=!1,l,d;if(d=e.input.charCodeAt(e.position),d===124)r=!1;else if(d===62)r=!0;else return!1;for(e.kind="scalar",e.result="";d!==0;)if(d=e.input.charCodeAt(++e.position),d===43||d===45)kfe===i?i=d===43?Dlt:Ajn:Lt(e,"repeat of a chomping mode identifier");else if((l=Pjn(d))>=0)l===0?Lt(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?Lt(e,"repeat of an indentation width identifier"):(a=t+l-1,o=!0);else break;if(IT(d)){do d=e.input.charCodeAt(++e.position);while(IT(d));if(d===35)do d=e.input.charCodeAt(++e.position);while(!Ph(d)&&d!==0)}for(;d!==0;){for(Ife(e),e.lineIndent=0,d=e.input.charCodeAt(e.position);(!o||e.lineIndenta&&(a=e.lineIndent),Ph(d)){c++;continue}if(e.lineIndentt)&&c!==0)Lt(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(mI(e,t,DK,!0,i)&&(h?f=e.result:p=e.result),h||(hI(e,u,l,d,f,p,s,o),d=f=p=null),to(e,!0,-1),g=e.input.charCodeAt(e.position)),e.lineIndent>t&&g!==0)Lt(e,"bad indentation of a mapping entry");else if(e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),d=0,f=e.implicitTypes.length;d tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result)?(e.result=p.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):Lt(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Lt(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||l}function zjn(e){var t=e.position,n,r,i,s=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(o=e.input.charCodeAt(e.position))!==0&&(to(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(s=!0,o=e.input.charCodeAt(++e.position),n=e.position;o!==0&&!Pu(o);)o=e.input.charCodeAt(++e.position);for(r=e.input.slice(n,e.position),i=[],r.length<1&&Lt(e,"directive name must not be less than one character in length");o!==0;){for(;IT(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!Ph(o));break}if(Ph(o))break;for(n=e.position;o!==0&&!Pu(o);)o=e.input.charCodeAt(++e.position);i.push(e.input.slice(n,e.position))}o!==0&&kfe(e),lb.call(Ult,r)?Ult[r](e,r,i):LK(e,'unknown document directive "'+r+'"')}if(to(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,to(e,!0,-1)):s&&Lt(e,"directives end mark is expected"),mI(e,e.lineIndent-1,DK,!1,!0),to(e,!0,-1),e.checkLineBreaks&&kjn.test(e.input.slice(t,e.position))&&LK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&UK(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,to(e,!0,-1));return}if(e.position"u"&&(n=t,t=null);var r=Jlt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),Xlt(e,t,hg.extend({schema:qlt},n))}function Vjn(e,t){return Qlt(e,hg.extend({schema:qlt},t))}wD.exports.loadAll=Xlt;wD.exports.load=Qlt;wD.exports.safeLoadAll=Gjn;wD.exports.safeLoad=Vjn});var Tdt=w((b6r,Nfe)=>{"use strict";var ID=RT(),xD=lI(),Wjn=AD(),Kjn=fI(),adt=Object.prototype.toString,cdt=Object.prototype.hasOwnProperty,Yjn=9,kD=10,Zjn=13,Jjn=32,Xjn=33,Qjn=34,udt=35,$jn=37,eHn=38,tHn=39,nHn=42,ldt=44,rHn=45,ddt=58,iHn=61,sHn=62,oHn=63,aHn=64,fdt=91,pdt=93,cHn=96,hdt=123,uHn=124,mdt=125,pc={};pc[0]="\\0";pc[7]="\\a";pc[8]="\\b";pc[9]="\\t";pc[10]="\\n";pc[11]="\\v";pc[12]="\\f";pc[13]="\\r";pc[27]="\\e";pc[34]='\\"';pc[92]="\\\\";pc[133]="\\N";pc[160]="\\_";pc[8232]="\\L";pc[8233]="\\P";var lHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function dHn(e,t){var n,r,i,s,o,a,c;if(t===null)return{};for(n={},r=Object.keys(t),i=0,s=r.length;it)&&c!==0)Lt(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(mI(e,t,UK,!0,i)&&(h?f=e.result:p=e.result),h||(hI(e,u,l,d,f,p,s,o),d=f=p=null),to(e,!0,-1),g=e.input.charCodeAt(e.position)),e.lineIndent>t&&g!==0)Lt(e,"bad indentation of a mapping entry");else if(e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),d=0,f=e.implicitTypes.length;d tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result)?(e.result=p.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):Lt(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Lt(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||l}function zjn(e){var t=e.position,n,r,i,s=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(o=e.input.charCodeAt(e.position))!==0&&(to(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(s=!0,o=e.input.charCodeAt(++e.position),n=e.position;o!==0&&!Pu(o);)o=e.input.charCodeAt(++e.position);for(r=e.input.slice(n,e.position),i=[],r.length<1&&Lt(e,"directive name must not be less than one character in length");o!==0;){for(;IT(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!Ph(o));break}if(Ph(o))break;for(n=e.position;o!==0&&!Pu(o);)o=e.input.charCodeAt(++e.position);i.push(e.input.slice(n,e.position))}o!==0&&Ife(e),lb.call(Flt,r)?Flt[r](e,r,i):FK(e,'unknown document directive "'+r+'"')}if(to(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,to(e,!0,-1)):s&&Lt(e,"directives end mark is expected"),mI(e,e.lineIndent-1,UK,!1,!0),to(e,!0,-1),e.checkLineBreaks&&kjn.test(e.input.slice(t,e.position))&&FK(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&jK(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,to(e,!0,-1));return}if(e.position"u"&&(n=t,t=null);var r=Xlt(e,n);if(typeof t!="function")return r;for(var i=0,s=r.length;i"u"&&(n=t,t=null),Qlt(e,t,hg.extend({schema:Blt},n))}function Vjn(e,t){return $lt(e,hg.extend({schema:Blt},t))}kD.exports.loadAll=Qlt;kD.exports.load=$lt;kD.exports.safeLoadAll=Gjn;kD.exports.safeLoad=Vjn});var vdt=w((b6r,Cfe)=>{"use strict";var xD=RT(),OD=lI(),Wjn=wD(),Kjn=fI(),cdt=Object.prototype.toString,udt=Object.prototype.hasOwnProperty,Yjn=9,ID=10,Zjn=13,Jjn=32,Xjn=33,Qjn=34,ldt=35,$jn=37,eHn=38,tHn=39,nHn=42,ddt=44,rHn=45,fdt=58,iHn=61,sHn=62,oHn=63,aHn=64,pdt=91,hdt=93,cHn=96,mdt=123,uHn=124,gdt=125,pc={};pc[0]="\\0";pc[7]="\\a";pc[8]="\\b";pc[9]="\\t";pc[10]="\\n";pc[11]="\\v";pc[12]="\\f";pc[13]="\\r";pc[27]="\\e";pc[34]='\\"';pc[92]="\\\\";pc[133]="\\N";pc[160]="\\_";pc[8232]="\\L";pc[8233]="\\P";var lHn=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function dHn(e,t){var n,r,i,s,o,a,c;if(t===null)return{};for(n={},r=Object.keys(t),i=0,s=r.length;i0?e.charCodeAt(s-1):null,f=f&&ndt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!gI(o))return FK;a=s>0?e.charCodeAt(s-1):null,f=f&&ndt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?ydt:Sdt:n>9&&gdt(e)?FK:u?Edt:bdt}function yHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&lHn.indexOf(t)!==-1)return"'"+t+"'";var i=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),o=r||e.flowLevel>-1&&n>=e.flowLevel;function a(c){return pHn(e,c)}switch(gHn(t,o,e.indent,s,a)){case ydt:return t;case Sdt:return"'"+t.replace(/'/g,"''")+"'";case bdt:return"|"+rdt(t,e.indent)+idt(tdt(t,i));case Edt:return">"+rdt(t,e.indent)+idt(tdt(SHn(t,s),i));case FK:return'"'+bHn(t,s)+'"';default:throw new xD("impossible error: invalid scalar style")}})()}function rdt(e,t){var n=gdt(e)?String(t):"",r=e[e.length-1]===` +`&&(s+=n),s+=o;return s}function Ofe(e,t){return` +`+xD.repeat(" ",e.indent*t)}function pHn(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;n0?e.charCodeAt(s-1):null,f=f&&rdt(o,a)}else{for(s=0;sr&&e[d+1]!==" ",d=s);else if(!gI(o))return HK;a=s>0?e.charCodeAt(s-1):null,f=f&&rdt(o,a)}u=u||l&&s-d-1>r&&e[d+1]!==" "}return!c&&!u?f&&!i(e)?Sdt:bdt:n>9&&ydt(e)?HK:u?_dt:Edt}function yHn(e,t,n,r){e.dump=(function(){if(t.length===0)return"''";if(!e.noCompatMode&&lHn.indexOf(t)!==-1)return"'"+t+"'";var i=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),o=r||e.flowLevel>-1&&n>=e.flowLevel;function a(c){return pHn(e,c)}switch(gHn(t,o,e.indent,s,a)){case Sdt:return t;case bdt:return"'"+t.replace(/'/g,"''")+"'";case Edt:return"|"+idt(t,e.indent)+sdt(ndt(t,i));case _dt:return">"+idt(t,e.indent)+sdt(ndt(SHn(t,s),i));case HK:return'"'+bHn(t,s)+'"';default:throw new OD("impossible error: invalid scalar style")}})()}function idt(e,t){var n=ydt(e)?String(t):"",r=e[e.length-1]===` `,i=r&&(e[e.length-2]===` `||e===` `),s=i?"+":r?"":"-";return n+s+` -`}function idt(e){return e[e.length-1]===` +`}function sdt(e){return e[e.length-1]===` `?e.slice(0,-1):e}function SHn(e,t){for(var n=/(\n+)([^\n]*)/g,r=(function(){var u=e.indexOf(` -`);return u=u!==-1?u:e.length,n.lastIndex=u,sdt(e.slice(0,u),t)})(),i=e[0]===` +`);return u=u!==-1?u:e.length,n.lastIndex=u,odt(e.slice(0,u),t)})(),i=e[0]===` `||e[0]===" ",s,o;o=n.exec(e);){var a=o[1],c=o[2];s=c[0]===" ",r+=a+(!i&&!s&&c!==""?` -`:"")+sdt(c,t),i=s}return r}function sdt(e,t){if(e===""||e[0]===" ")return e;for(var n=/ [^ ]/g,r,i=0,s,o=0,a=0,c="";r=n.exec(e);)a=r.index,a-i>t&&(s=o>i?o:a,c+=` +`:"")+odt(c,t),i=s}return r}function odt(e,t){if(e===""||e[0]===" ")return e;for(var n=/ [^ ]/g,r,i=0,s,o=0,a=0,c="";r=n.exec(e);)a=r.index,a-i>t&&(s=o>i?o:a,c+=` `+e.slice(i,s),i=s+1),o=a;return c+=` `,e.length-i>t&&o>i?c+=e.slice(i,o)+` -`+e.slice(o+1):c+=e.slice(i),c.slice(1)}function bHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=edt((n-55296)*1024+r-56320+65536),s++;continue}i=pc[n],t+=!i&&gI(n)?e[s]:i||edt(n)}return t}function EHn(e,t,n){var r="",i=e.tag,s,o;for(s=0,o=n.length;s1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),xT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function vHn(e,t,n,r){var i="",s=e.tag,o=Object.keys(n),a,c,u,l,d,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new xD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&kD===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=xfe(e,t)),xT(e,t+1,l,!0,d)&&(e.dump&&kD===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function odt(e,t,n){var r,i,s,o,a,c;for(i=n?e.explicitTypes:e.implicitTypes,s=0,o=i.length;s tag resolver accepts not "'+c+'" style');e.dump=r}return!0}return!1}function xT(e,t,n,r,i,s){e.tag=null,e.dump=n,odt(e,n,!1)||odt(e,n,!0);var o=adt.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a=o==="[object Object]"||o==="[object Array]",c,u;if(a&&(c=e.duplicates.indexOf(n),u=c!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&t>0)&&(i=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(a&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),o==="[object Object]")r&&Object.keys(e.dump).length!==0?(vHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(THn(e,t,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump));else if(o==="[object Array]"){var l=e.noArrayIndent&&t>0?t-1:t;r&&e.dump.length!==0?(_Hn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(EHn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&yHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new xD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function RHn(e,t){var n=[],r=[],i,s;for(Ofe(e,n,r),i=0,s=r.length;i{"use strict";var jK=$lt(),vdt=Tdt();function HK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=To();ys.exports.Schema=AT();ys.exports.FAILSAFE_SCHEMA=NK();ys.exports.JSON_SCHEMA=vfe();ys.exports.CORE_SCHEMA=Rfe();ys.exports.DEFAULT_SAFE_SCHEMA=fI();ys.exports.DEFAULT_FULL_SCHEMA=AD();ys.exports.load=jK.load;ys.exports.loadAll=jK.loadAll;ys.exports.safeLoad=jK.safeLoad;ys.exports.safeLoadAll=jK.safeLoadAll;ys.exports.dump=vdt.dump;ys.exports.safeDump=vdt.safeDump;ys.exports.YAMLException=lI();ys.exports.MINIMAL_SCHEMA=NK();ys.exports.SAFE_SCHEMA=fI();ys.exports.DEFAULT_SCHEMA=AD();ys.exports.scan=HK("scan");ys.exports.parse=HK("parse");ys.exports.compose=HK("compose");ys.exports.addConstructor=HK("addConstructor")});var wdt=w((_6r,Adt)=>{"use strict";var wHn=Rdt();Adt.exports=wHn});var Cfe=w((exports,module)=>{"use strict";var yaml=wdt(),engines=exports=module.exports;engines.yaml={parse:yaml.safeLoad.bind(yaml),stringify:yaml.safeDump.bind(yaml)};engines.json={parse:JSON.parse.bind(JSON),stringify:function(e,t){let n=Object.assign({replacer:null,space:2},t);return JSON.stringify(e,n.replacer,n.space)}};engines.javascript={parse:function parse(str,options,wrap){try{return wrap!==!1&&(str=`(function() { +`+e.slice(o+1):c+=e.slice(i),c.slice(1)}function bHn(e){for(var t="",n,r,i,s=0;s=55296&&n<=56319&&(r=e.charCodeAt(s+1),r>=56320&&r<=57343)){t+=tdt((n-55296)*1024+r-56320+65536),s++;continue}i=pc[n],t+=!i&&gI(n)?e[s]:i||tdt(n)}return t}function EHn(e,t,n){var r="",i=e.tag,s,o;for(s=0,o=n.length;s1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),xT(e,t,u,!1,!1)&&(l+=e.dump,r+=l));e.tag=i,e.dump="{"+r+"}"}function vHn(e,t,n,r){var i="",s=e.tag,o=Object.keys(n),a,c,u,l,d,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new OD("sortKeys must be a boolean or a function");for(a=0,c=o.length;a1024,d&&(e.dump&&ID===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,d&&(f+=Ofe(e,t)),xT(e,t+1,l,!0,d)&&(e.dump&&ID===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=s,e.dump=i||"{}"}function adt(e,t,n){var r,i,s,o,a,c;for(i=n?e.explicitTypes:e.implicitTypes,s=0,o=i.length;s tag resolver accepts not "'+c+'" style');e.dump=r}return!0}return!1}function xT(e,t,n,r,i,s){e.tag=null,e.dump=n,adt(e,n,!1)||adt(e,n,!0);var o=cdt.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a=o==="[object Object]"||o==="[object Array]",c,u;if(a&&(c=e.duplicates.indexOf(n),u=c!==-1),(e.tag!==null&&e.tag!=="?"||u||e.indent!==2&&t>0)&&(i=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(a&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),o==="[object Object]")r&&Object.keys(e.dump).length!==0?(vHn(e,t,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(THn(e,t,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump));else if(o==="[object Array]"){var l=e.noArrayIndent&&t>0?t-1:t;r&&e.dump.length!==0?(_Hn(e,l,e.dump,i),u&&(e.dump="&ref_"+c+e.dump)):(EHn(e,l,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else if(o==="[object String]")e.tag!=="?"&&yHn(e,e.dump,t,s);else{if(e.skipInvalid)return!1;throw new OD("unacceptable kind of an object to dump "+o)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function RHn(e,t){var n=[],r=[],i,s;for(Pfe(e,n,r),i=0,s=r.length;i{"use strict";var qK=edt(),Rdt=vdt();function BK(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ys.exports.Type=To();ys.exports.Schema=AT();ys.exports.FAILSAFE_SCHEMA=MK();ys.exports.JSON_SCHEMA=Rfe();ys.exports.CORE_SCHEMA=Afe();ys.exports.DEFAULT_SAFE_SCHEMA=fI();ys.exports.DEFAULT_FULL_SCHEMA=wD();ys.exports.load=qK.load;ys.exports.loadAll=qK.loadAll;ys.exports.safeLoad=qK.safeLoad;ys.exports.safeLoadAll=qK.safeLoadAll;ys.exports.dump=Rdt.dump;ys.exports.safeDump=Rdt.safeDump;ys.exports.YAMLException=lI();ys.exports.MINIMAL_SCHEMA=MK();ys.exports.SAFE_SCHEMA=fI();ys.exports.DEFAULT_SCHEMA=wD();ys.exports.scan=BK("scan");ys.exports.parse=BK("parse");ys.exports.compose=BK("compose");ys.exports.addConstructor=BK("addConstructor")});var kdt=w((_6r,wdt)=>{"use strict";var wHn=Adt();wdt.exports=wHn});var Mfe=w((exports,module)=>{"use strict";var yaml=kdt(),engines=exports=module.exports;engines.yaml={parse:yaml.safeLoad.bind(yaml),stringify:yaml.safeDump.bind(yaml)};engines.json={parse:JSON.parse.bind(JSON),stringify:function(e,t){let n=Object.assign({replacer:null,space:2},t);return JSON.stringify(e,n.replacer,n.space)}};engines.javascript={parse:function parse(str,options,wrap){try{return wrap!==!1&&(str=`(function() { return `+str.trim()+`; -}());`),eval(str)||{}}catch(e){if(wrap!==!1&&/(unexpected|identifier)/i.test(e.message))return parse(str,options,!1);throw new SyntaxError(e)}},stringify:function(){throw new Error("stringifying JavaScript is not supported")}}});var Idt=w((T6r,kdt)=>{"use strict";kdt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var qK=w(mg=>{"use strict";var xdt=Idt(),Odt=vD();mg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};mg.isBuffer=function(e){return Odt(e)==="buffer"};mg.isObject=function(e){return Odt(e)==="object"};mg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};mg.toString=function(e){if(mg.isBuffer(e))return xdt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return xdt(e)};mg.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};mg.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var OD=w((R6r,Pdt)=>{"use strict";var kHn=Cfe(),IHn=qK();Pdt.exports=function(e){let t=Object.assign({},e);return t.delimiters=IHn.arrayify(t.delims||t.delimiters||"---"),t.delimiters.length===1&&t.delimiters.push(t.delimiters[0]),t.language=(t.language||t.lang||"yaml").toLowerCase(),t.engines=Object.assign({},kHn,t.parsers,t.engines),t}});var Mfe=w((A6r,Ndt)=>{"use strict";Ndt.exports=function(e,t){let n=t.engines[e]||t.engines[xHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function xHn(e){switch(e.toLowerCase()){case"js":case"javascript":return"javascript";case"coffee":case"coffeescript":case"cson":return"coffee";case"yaml":case"yml":return"yaml";default:return e}}});var Dfe=w((w6r,Cdt)=>{"use strict";var OHn=vD(),PHn=Mfe(),NHn=OD();Cdt.exports=function(e,t,n){if(t==null&&n==null)switch(OHn(e)){case"object":t=e.data,n={};break;case"string":return e;default:throw new TypeError("expected file to be a string or object")}let r=e.content,i=NHn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=PHn(s,i);if(typeof o.stringify!="function")throw new TypeError('expected "'+s+'.stringify" to be a function');t=Object.assign({},e.data,t);let a=i.delimiters[0],c=i.delimiters[1],u=o.stringify(t,n).trim(),l="";return u!=="{}"&&(l=yI(a)+yI(u)+yI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=yI(e.excerpt)+yI(c)),l+yI(r)};function yI(e){return e.slice(-1)!==` +}());`),eval(str)||{}}catch(e){if(wrap!==!1&&/(unexpected|identifier)/i.test(e.message))return parse(str,options,!1);throw new SyntaxError(e)}},stringify:function(){throw new Error("stringifying JavaScript is not supported")}}});var xdt=w((T6r,Idt)=>{"use strict";Idt.exports=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e}});var zK=w(mg=>{"use strict";var Odt=xdt(),Pdt=RD();mg.define=function(e,t,n){Reflect.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})};mg.isBuffer=function(e){return Pdt(e)==="buffer"};mg.isObject=function(e){return Pdt(e)==="object"};mg.toBuffer=function(e){return typeof e=="string"?Buffer.from(e):e};mg.toString=function(e){if(mg.isBuffer(e))return Odt(String(e));if(typeof e!="string")throw new TypeError("expected input to be a string or buffer");return Odt(e)};mg.arrayify=function(e){return e?Array.isArray(e)?e:[e]:[]};mg.startsWith=function(e,t,n){return typeof n!="number"&&(n=t.length),e.slice(0,n)===t}});var PD=w((R6r,Ndt)=>{"use strict";var kHn=Mfe(),IHn=zK();Ndt.exports=function(e){let t=Object.assign({},e);return t.delimiters=IHn.arrayify(t.delims||t.delimiters||"---"),t.delimiters.length===1&&t.delimiters.push(t.delimiters[0]),t.language=(t.language||t.lang||"yaml").toLowerCase(),t.engines=Object.assign({},kHn,t.parsers,t.engines),t}});var Dfe=w((A6r,Cdt)=>{"use strict";Cdt.exports=function(e,t){let n=t.engines[e]||t.engines[xHn(e)];if(typeof n>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof n=="function"&&(n={parse:n}),n};function xHn(e){switch(e.toLowerCase()){case"js":case"javascript":return"javascript";case"coffee":case"coffeescript":case"cson":return"coffee";case"yaml":case"yml":return"yaml";default:return e}}});var Lfe=w((w6r,Mdt)=>{"use strict";var OHn=RD(),PHn=Dfe(),NHn=PD();Mdt.exports=function(e,t,n){if(t==null&&n==null)switch(OHn(e)){case"object":t=e.data,n={};break;case"string":return e;default:throw new TypeError("expected file to be a string or object")}let r=e.content,i=NHn(n);if(t==null){if(!i.data)return e;t=i.data}let s=e.language||i.language,o=PHn(s,i);if(typeof o.stringify!="function")throw new TypeError('expected "'+s+'.stringify" to be a function');t=Object.assign({},e.data,t);let a=i.delimiters[0],c=i.delimiters[1],u=o.stringify(t,n).trim(),l="";return u!=="{}"&&(l=yI(a)+yI(u)+yI(c)),typeof e.excerpt=="string"&&e.excerpt!==""&&r.indexOf(e.excerpt.trim())===-1&&(l+=yI(e.excerpt)+yI(c)),l+yI(r)};function yI(e){return e.slice(-1)!==` `?e+` -`:e}});var Ddt=w((k6r,Mdt)=>{"use strict";var CHn=OD();Mdt.exports=function(e,t){let n=CHn(t);if(e.data==null&&(e.data={}),typeof n.excerpt=="function")return n.excerpt(e,n);let r=e.data.excerpt_separator||n.excerpt_separator;if(r==null&&(n.excerpt===!1||n.excerpt==null))return e;let i=typeof n.excerpt=="string"?n.excerpt:r||n.delimiters[0],s=e.content.indexOf(i);return s!==-1&&(e.excerpt=e.content.slice(0,s)),e}});var Fdt=w((I6r,Udt)=>{"use strict";var Ldt=vD(),MHn=Dfe(),SI=qK();Udt.exports=function(e){return Ldt(e)!=="object"&&(e={content:e}),Ldt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),SI.define(e,"orig",SI.toBuffer(e.content)),SI.define(e,"language",e.language||""),SI.define(e,"matter",e.matter||""),SI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),MHn(e,t,n)}),e.content=SI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var Hdt=w((x6r,jdt)=>{"use strict";var DHn=Mfe(),LHn=OD();jdt.exports=function(e,t,n){let r=LHn(n),i=DHn(e,r);if(typeof i.parse!="function")throw new TypeError('expected "'+e+'.parse" to be a function');return i.parse(t,r)}});var Kt=w((O6r,zdt)=>{"use strict";var UHn=K("fs"),FHn=Dut(),Lfe=OD(),jHn=Dfe(),qdt=Ddt(),HHn=Cfe(),qHn=Fdt(),BHn=Hdt(),Bdt=qK();function Yc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=qHn(e),r=Yc.cache[n.content];if(!t){if(r)return n=Object.assign({},r),n.orig=r.orig,n;Yc.cache[n.content]=n}return zHn(n,t)}function zHn(e,t){let n=Lfe(t),r=n.delimiters[0],i=` -`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!Bdt.startsWith(s,r,o))return qdt(e,n),e;if(s.charAt(o)===r.slice(-1))return e;s=s.slice(o);let a=s.length,c=Yc.language(s,n);c.name&&(e.language=c.name,s=s.slice(c.raw.length));let u=s.indexOf(i);return u===-1&&(u=a),e.matter=s.slice(0,u),e.matter.replace(/^\s*#[^\n]+/gm,"").trim()===""?(e.isEmpty=!0,e.empty=e.content,e.data={}):e.data=BHn(e.language,e.matter,n),u===a?e.content="":(e.content=s.slice(u+i.length),e.content[0]==="\r"&&(e.content=e.content.slice(1)),e.content[0]===` -`&&(e.content=e.content.slice(1))),qdt(e,n),(n.sections===!0||typeof n.section=="function")&&FHn(e,n.section),e}Yc.engines=HHn;Yc.stringify=function(e,t,n){return typeof e=="string"&&(e=Yc(e,n)),jHn(e,t,n)};Yc.read=function(e,t){let n=UHn.readFileSync(e,"utf8"),r=Yc(n,t);return r.path=e,r};Yc.test=function(e,t){return Bdt.startsWith(e,Lfe(t).delimiters[0])};Yc.language=function(e,t){let r=Lfe(t).delimiters[0];Yc.test(e)&&(e=e.slice(r.length));let i=e.slice(0,e.search(/\r?\n/));return{raw:i,name:i?i.trim():""}};Yc.cache={};Yc.clearCache=function(){Yc.cache={}};zdt.exports=Yc});import{execFileSync as GHn}from"node:child_process";function BK(e,t){try{return GHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function PD(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=Vdt[t];if(!n)return!1;let r=Gdt.get(t);if(r!==void 0)return r;let i=n.probe();return Gdt.set(t,i),i}function Ufe(){return Object.keys(Vdt).filter(PD)}var Vdt,Gdt,Ffe=v(()=>{"use strict";Vdt={docker:{name:"docker",displayName:"Docker",probe:()=>BK("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>BK("docker",["compose","version"])||BK("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>BK("make",["--version"])}},Gdt=new Map});function WHn(e,t={}){for(let n of t.requiredTools??[])if(!PD(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return VHn.some(n=>n.test(e.output))?{environment:!0,reason:`gate '${e.name}' couldn't reach a runtime dependency (its output matches a service-unavailable signature) \u2014 the gate ran nothing meaningful`}:{environment:!1,reason:null}}function zK(e,t={}){for(let n of e){let r=WHn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var VHn,jfe=v(()=>{"use strict";Ffe();VHn=[/cannot connect to the docker daemon/i,/is the docker daemon running/i,/connection refused/i,/\beconnrefused\b/i,/could not connect to server/i,/can't reach database server/i,/no connection could be made/i,/getaddrinfo (enotfound|eai_again)/i,/\bmongonetworkerror\b/i,/server closed the connection unexpectedly/i,/connection to .* (port|host) .* failed/i,/(redis|mongo|postgres|postgresql|mysql|mariadb).*(connection|connect).*(refused|failed|timed out)/i,/\b(docker|docker-compose|psql|mysql|redis-cli|pg_isready)\b[^\n]*\b(command not found|not found|no such file)/i,/\b(command not found|not found):?\s*(docker|docker-compose|psql|mysql)\b/i]});function hc(){return{intent_md_migrated:!1,units_migrated:0,units_with_synthesized_approval:0,review_stamps_synthesized:0,approval_stamps_synthesized:0,feedback_migrated:0,feedback_with_synthesized_closure:0,feedback_relocated:0,state_json_deleted:0,drift_artifacts_deleted:0,review_slots_backfilled:0,approval_slots_stripped:0,iterations_message_migrated:0}}function Nu(e,t,n){if(e===t)throw new Error(`registerMigrator: from == to (${e}) \u2014 migrators must change the version`);let r=GK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),GK.set(e,r)}function KHn(e,t){if(e===t)return[];let n=[{version:e,chain:[]}],r=new Set([e]);for(;n.length>0;){let i=n.shift();if(!i)break;let s=GK.get(i.version)??[];for(let o of s){if(r.has(o.to))continue;let a=[...i.chain,o.migrator];if(o.to===t)return a;r.add(o.to),n.push({version:o.to,chain:a})}}return null}function VK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:hc()};let r=KHn(t,n);if(r===null)throw new Error(`migrateIntent: no migration path from ${t} to ${n} for intent at ${e.intentDir}`);let i=[],s=hc(),o=t;for(let a of r){let c=(GK.get(o)??[]).find(l=>l.migrator===a);c&&(i.push(`${o}\u2192${c.to}`),o=c.to);let u=a(e);u&&(s.intent_md_migrated=s.intent_md_migrated||u.intent_md_migrated,s.units_migrated+=u.units_migrated,s.units_with_synthesized_approval+=u.units_with_synthesized_approval,s.review_stamps_synthesized+=u.review_stamps_synthesized,s.approval_stamps_synthesized+=u.approval_stamps_synthesized,s.feedback_migrated+=u.feedback_migrated,s.feedback_with_synthesized_closure+=u.feedback_with_synthesized_closure,s.feedback_relocated+=u.feedback_relocated,s.state_json_deleted+=u.state_json_deleted,s.drift_artifacts_deleted+=u.drift_artifacts_deleted,s.review_slots_backfilled+=u.review_slots_backfilled,s.approval_slots_stripped+=u.approval_slots_stripped,s.iterations_message_migrated+=u.iterations_message_migrated)}return{from:t,to:n,steps:r.length,chain:i,details:s}}var GK,Nh=v(()=>{"use strict";GK=new Map});import{join as Wdt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function Kdt(){let e=nn();return[Wdt(process.cwd(),".haiku","studios"),Wdt(e,"studios")]}var Hfe=v(()=>{"use strict";Ci();Ge();Ge()});function Ydt(e){return typeof e=="string"&&ZHn.has(e)}function bI(e){return Ydt(e)?e:void 0}function db(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=bI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function qfe(e){if(Ydt(e))return JHn[e]}var YHn,ZHn,JHn,fb=v(()=>{"use strict";YHn=["haiku","sonnet","opus"],ZHn=new Set(YHn),JHn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as XHn,readdirSync as Ch,readFileSync as Cu,statSync as Zdt}from"node:fs";import{join as Yt}from"node:path";function Xdt(e){try{if(!Ss(e))return;let{data:t}=re(Cu(e,"utf8"));return bI(t.model)}catch{return}}function $i(e,t){rr(e,"studio"),rr(t,"stage");for(let n of Mu()){let r=Yt(n,e,"stages",t,"STAGE.md");if(Ss(r))return re(Cu(r,"utf8"))}return null}function Nd(e){rr(e,"studio");for(let t of Mu()){let n=Yt(t,e,"STUDIO.md");if(Ss(n))return re(Cu(n,"utf8"))}return null}function Qdt(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function $dt(e,t){let n=Yt(process.cwd(),".haiku"),r=nn();return[Yt(r,"hats"),Yt(n,"hats"),Yt(r,"studios",e,"hats"),Yt(n,"studios",e,"hats"),Yt(r,"studios",e,"stages",t,"hats"),Yt(n,"studios",e,"stages",t,"hats")]}function Du(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of $dt(e,t))if(Ss(r))for(let i of Ch(r).filter(s=>s.endsWith(".md"))){let s=Cu(Yt(r,i),"utf8"),{data:o,body:a}=re(s);n[i.replace(/\.md$/,"")]={content:a,agent_type:o.agent_type||void 0,model:o.model||void 0,run_quality_gates:o.run_quality_gates===!0?!0:void 0,role:Qdt(o.role),raw:s}}return n}function pb(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of $dt(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function zfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=Yt(process.cwd(),".haiku"),i=nn(),s=null;for(let o of[Yt(i,"studios",e,"stages",t,"fix-hats"),Yt(r,"studios",e,"stages",t,"fix-hats")]){let a=Yt(o,`${n}.md`);Ss(a)&&(s=a)}return s??pb(e,t,n)}function eft(e,t){let n=Yt(process.cwd(),".haiku"),r=nn();return[Yt(r,"review-agents"),Yt(n,"review-agents"),Yt(r,"studios",e,"review-agents"),Yt(n,"studios",e,"review-agents"),Yt(r,"studios",e,"stages",t,"review-agents"),Yt(n,"studios",e,"stages",t,"review-agents")]}function Tl(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of eft(e,t))if(Ss(r))for(let i of Ch(r).filter(s=>s.endsWith(".md")))n[i.replace(/\.md$/,"")]=Yt(r,i);return n}function MD(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of eft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Gfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"discovery template");for(let r of Mu()){let i=Yt(r,e,"stages",t,"discovery",`${n}.md`);if(Ss(i))return i}return null}function QHn(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"output template");for(let r of Mu()){let i=Yt(r,e,"stages",t,"outputs",`${n}.md`);if(Ss(i))return i}return null}function gg(e){rr(e,"studio");let t={},n=[...Mu()].reverse(),r=i=>{if(Ss(i))for(let s of Ch(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Yt(i,s)};for(let i of n)r(Yt(i,"..","intent-review-agents"));for(let i of n)r(Yt(i,e,"intent-review-agents"));return t}function DD(e){if(!e||!Ss(e))return null;let{body:t}=re(Cu(e,"utf8"));return(t||"").trim()||null}function EI(e,t,n,r=!1){return DD(r?zfe(e,t,n):pb(e,t,n))}function Mh(e,t,n){let r=t?MD(e,t,n):gg(e)[n]??null;return DD(r)}function _I(e,t,n){return DD(Gfe(e,t,n))}function WK(e,t,n){return DD(QHn(e,t,n))}function KK(e,t,n){return(Vfe(e,t,n)?.body||"").trim()||null}function Dh(e,t){return($i(e,t)?.body||"").trim()||null}function tft(e,t){return DD(LD(e)[t]??null)}function nft(e){let t=Yt(process.cwd(),".haiku"),n=nn();return[Yt(n,"fix-hats"),Yt(t,"fix-hats"),Yt(n,"studios",e,"fix-hats"),Yt(t,"studios",e,"fix-hats")]}function YK(e){rr(e,"studio");let t={};for(let n of nft(e))if(Ss(n))for(let r of Ch(n).filter(i=>i.endsWith(".md"))){let i=Cu(Yt(n,r),"utf8"),{data:s,body:o}=re(i);t[r.replace(/\.md$/,"")]={content:o,agent_type:s.agent_type||void 0,model:s.model||void 0,role:Qdt(s.role),raw:i}}return t}function LD(e){rr(e,"studio");let t={};for(let n of nft(e))if(Ss(n))for(let r of Ch(n).filter(i=>i.endsWith(".md")))t[r.replace(/\.md$/,"")]=Yt(n,r);return t}function rft(e,t,n){let r={},i=null,s=null;for(let[l,d]of Object.entries(e))u(d)&&(r[l]=d);return r;function o(l){try{let d=Cu(l,"utf8"),{data:f}=re(d),p=f.applies_to;if(p!=null){if(Array.isArray(p)&&p.every(h=>typeof h=="string"))return p;console.warn(`[haiku] review-agent ${l}: \`applies_to:\` is present but not a string[]; treating as unscoped (always runs). Fix the frontmatter to scope the agent.`)}}catch{}}function a(){return i===null&&(i=$Hn(t)),i}function c(){if(s===null&&(s=[],n))for(let l of no(n.studio,n.stage)){if(l.kind!=="output")continue;let p=(l.location||"").replace(/\{[^}]+\}/g,"").toLowerCase().match(/\.[a-z0-9]+$/);p&&s.push(p[0])}return s}function u(l){let d=o(l);if(!d||d.length===0)return!0;let f=a();if(f.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(f.some(g=>g.toLowerCase().endsWith(m)))return!0}return!1}let p=c();if(p.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(p.some(g=>g===m))return!0}return!1}return!0}}function $Hn(e){if(!Ss(e))return[];let t=[],n=[e];for(;n.length>0;){let r=n.pop();try{let i=Ch(r,{withFileTypes:!0});for(let s of i){let o=String(s.name),a=Yt(r,o);s.isDirectory()?n.push(a):t.push(o)}}catch{}}return t}function no(e,t){rr(e,"studio"),rr(t,"stage");let n=[],r=new Set;for(let s of[...Mu()].reverse())for(let o of["discovery","outputs"]){let a=Yt(s,e,"stages",t,o);if(Ss(a))for(let c of Ch(a).filter(u=>u.endsWith(".md"))){let u=`${o}:${c}`;if(r.has(u))continue;r.add(u);let l=Cu(Yt(a,c),"utf8"),{data:d,body:f}=re(l);n.push({name:d.name||c.replace(/\.md$/,""),location:d.location||"",scope:d.scope||"intent",format:d.format||"text",required:d.required!==!1,body:f,kind:o==="outputs"?"output":"discovery",...typeof d.tool=="string"&&d.tool.length>0?{tool:d.tool}:{}})}}let i=new Map;for(let s of n){if(s.kind!=="discovery"||!s.location)continue;let o=i.get(s.location)??[];o.push(s.name),i.set(s.location,o)}for(let[s,o]of i)if(o.length>1)throw new Error(`Studio configuration error: discovery templates [${o.join(", ")}] in stage '${t}' of studio '${e}' share the same location '${s}'. Each discovery template must declare a unique 'location:' frontmatter field \u2014 parallel agents writing to the same path produce merge conflicts and ambiguous existence checks.`);return n}function ZK(e,t,n,r){let i=[];for(let s of t){let o=s.stage,a=no(e,o);if(s.discovery){let c=a.find(u=>u.name===s.discovery&&u.kind==="discovery");if(c?.location){let u=Jdt(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&Zdt(u).isDirectory())&&l){let f=Bfe(u);i.push({stage:o,artifactName:s.discovery,kind:"discovery",resolvedPath:u,exists:l,content:f||"(empty directory)",description:c.body})}else i.push({stage:o,artifactName:s.discovery,kind:"discovery",resolvedPath:u,exists:l,content:l?Cu(u,"utf8"):null,description:c.body})}}if(s.output){let c=a.find(u=>u.name===s.output&&u.kind==="output");if(c?.location){let u=Jdt(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&Zdt(u).isDirectory())&&l){let f=Bfe(u);i.push({stage:o,artifactName:s.output,kind:"output",resolvedPath:u,exists:l,content:f||"(empty directory)",description:c.body})}else i.push({stage:o,artifactName:s.output,kind:"output",resolvedPath:u,exists:l,content:l?Cu(u,"utf8"):null,description:c.body})}}}return i}function Bfe(e,t=""){let n=Ch(e).filter(i=>!i.startsWith(".")),r=[];for(let i of n){let s=Yt(e,i),o=t?`${t}/${i}`:i,a;try{a=XHn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(Bfe(s,o));else{let c;try{c=Cu(s,"utf8")}catch{continue}r.push(`### ${o} +`:e}});var Ldt=w((k6r,Ddt)=>{"use strict";var CHn=PD();Ddt.exports=function(e,t){let n=CHn(t);if(e.data==null&&(e.data={}),typeof n.excerpt=="function")return n.excerpt(e,n);let r=e.data.excerpt_separator||n.excerpt_separator;if(r==null&&(n.excerpt===!1||n.excerpt==null))return e;let i=typeof n.excerpt=="string"?n.excerpt:r||n.delimiters[0],s=e.content.indexOf(i);return s!==-1&&(e.excerpt=e.content.slice(0,s)),e}});var jdt=w((I6r,Fdt)=>{"use strict";var Udt=RD(),MHn=Lfe(),SI=zK();Fdt.exports=function(e){return Udt(e)!=="object"&&(e={content:e}),Udt(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),SI.define(e,"orig",SI.toBuffer(e.content)),SI.define(e,"language",e.language||""),SI.define(e,"matter",e.matter||""),SI.define(e,"stringify",function(t,n){return n&&n.language&&(e.language=n.language),MHn(e,t,n)}),e.content=SI.toString(e.content),e.isEmpty=!1,e.excerpt="",e}});var qdt=w((x6r,Hdt)=>{"use strict";var DHn=Dfe(),LHn=PD();Hdt.exports=function(e,t,n){let r=LHn(n),i=DHn(e,r);if(typeof i.parse!="function")throw new TypeError('expected "'+e+'.parse" to be a function');return i.parse(t,r)}});var Kt=w((O6r,Gdt)=>{"use strict";var UHn=K("fs"),FHn=Lut(),Ufe=PD(),jHn=Lfe(),Bdt=Ldt(),HHn=Mfe(),qHn=jdt(),BHn=qdt(),zdt=zK();function Yc(e,t){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let n=qHn(e),r=Yc.cache[n.content];if(!t){if(r)return n=Object.assign({},r),n.orig=r.orig,n;Yc.cache[n.content]=n}return zHn(n,t)}function zHn(e,t){let n=Ufe(t),r=n.delimiters[0],i=` +`+n.delimiters[1],s=e.content;n.language&&(e.language=n.language);let o=r.length;if(!zdt.startsWith(s,r,o))return Bdt(e,n),e;if(s.charAt(o)===r.slice(-1))return e;s=s.slice(o);let a=s.length,c=Yc.language(s,n);c.name&&(e.language=c.name,s=s.slice(c.raw.length));let u=s.indexOf(i);return u===-1&&(u=a),e.matter=s.slice(0,u),e.matter.replace(/^\s*#[^\n]+/gm,"").trim()===""?(e.isEmpty=!0,e.empty=e.content,e.data={}):e.data=BHn(e.language,e.matter,n),u===a?e.content="":(e.content=s.slice(u+i.length),e.content[0]==="\r"&&(e.content=e.content.slice(1)),e.content[0]===` +`&&(e.content=e.content.slice(1))),Bdt(e,n),(n.sections===!0||typeof n.section=="function")&&FHn(e,n.section),e}Yc.engines=HHn;Yc.stringify=function(e,t,n){return typeof e=="string"&&(e=Yc(e,n)),jHn(e,t,n)};Yc.read=function(e,t){let n=UHn.readFileSync(e,"utf8"),r=Yc(n,t);return r.path=e,r};Yc.test=function(e,t){return zdt.startsWith(e,Ufe(t).delimiters[0])};Yc.language=function(e,t){let r=Ufe(t).delimiters[0];Yc.test(e)&&(e=e.slice(r.length));let i=e.slice(0,e.search(/\r?\n/));return{raw:i,name:i?i.trim():""}};Yc.cache={};Yc.clearCache=function(){Yc.cache={}};Gdt.exports=Yc});import{execFileSync as GHn}from"node:child_process";function GK(e,t){try{return GHn(e,t,{stdio:"ignore",timeout:5e3}),!0}catch{return!1}}function ND(e){let t=e.toLowerCase().replace(/[\s_]/g,"-"),n=Wdt[t];if(!n)return!1;let r=Vdt.get(t);if(r!==void 0)return r;let i=n.probe();return Vdt.set(t,i),i}function Ffe(){return Object.keys(Wdt).filter(ND)}var Wdt,Vdt,jfe=v(()=>{"use strict";Wdt={docker:{name:"docker",displayName:"Docker",probe:()=>GK("docker",["info"])},"docker-compose":{name:"docker-compose",displayName:"Docker Compose",probe:()=>GK("docker",["compose","version"])||GK("docker-compose",["version"])},make:{name:"make",displayName:"Make",probe:()=>GK("make",["--version"])}},Vdt=new Map});function WHn(e,t={}){for(let n of t.requiredTools??[])if(!ND(n))return{environment:!0,requiresTool:n,reason:`gate '${e.name}' needs '${n}', which isn't available in this environment`};return VHn.some(n=>n.test(e.output))?{environment:!0,reason:`gate '${e.name}' couldn't reach a runtime dependency (its output matches a service-unavailable signature) \u2014 the gate ran nothing meaningful`}:{environment:!1,reason:null}}function VK(e,t={}){for(let n of e){let r=WHn(n,t);if(r.environment)return r}return{environment:!1,reason:null}}var VHn,Hfe=v(()=>{"use strict";jfe();VHn=[/cannot connect to the docker daemon/i,/is the docker daemon running/i,/connection refused/i,/\beconnrefused\b/i,/could not connect to server/i,/can't reach database server/i,/no connection could be made/i,/getaddrinfo (enotfound|eai_again)/i,/\bmongonetworkerror\b/i,/server closed the connection unexpectedly/i,/connection to .* (port|host) .* failed/i,/(redis|mongo|postgres|postgresql|mysql|mariadb).*(connection|connect).*(refused|failed|timed out)/i,/\b(docker|docker-compose|psql|mysql|redis-cli|pg_isready)\b[^\n]*\b(command not found|not found|no such file)/i,/\b(command not found|not found):?\s*(docker|docker-compose|psql|mysql)\b/i]});function hc(){return{intent_md_migrated:!1,units_migrated:0,units_with_synthesized_approval:0,review_stamps_synthesized:0,approval_stamps_synthesized:0,feedback_migrated:0,feedback_with_synthesized_closure:0,feedback_relocated:0,state_json_deleted:0,drift_artifacts_deleted:0,review_slots_backfilled:0,approval_slots_stripped:0,iterations_message_migrated:0}}function Nu(e,t,n){if(e===t)throw new Error(`registerMigrator: from == to (${e}) \u2014 migrators must change the version`);let r=WK.get(e)??[];if(r.some(i=>i.to===t))throw new Error(`registerMigrator: duplicate edge ${e} \u2192 ${t}`);r.push({to:t,migrator:n}),WK.set(e,r)}function KHn(e,t){if(e===t)return[];let n=[{version:e,chain:[]}],r=new Set([e]);for(;n.length>0;){let i=n.shift();if(!i)break;let s=WK.get(i.version)??[];for(let o of s){if(r.has(o.to))continue;let a=[...i.chain,o.migrator];if(o.to===t)return a;r.add(o.to),n.push({version:o.to,chain:a})}}return null}function KK(e,t,n){if(t===n)return{from:t,to:n,steps:0,chain:[],details:hc()};let r=KHn(t,n);if(r===null)throw new Error(`migrateIntent: no migration path from ${t} to ${n} for intent at ${e.intentDir}`);let i=[],s=hc(),o=t;for(let a of r){let c=(WK.get(o)??[]).find(l=>l.migrator===a);c&&(i.push(`${o}\u2192${c.to}`),o=c.to);let u=a(e);u&&(s.intent_md_migrated=s.intent_md_migrated||u.intent_md_migrated,s.units_migrated+=u.units_migrated,s.units_with_synthesized_approval+=u.units_with_synthesized_approval,s.review_stamps_synthesized+=u.review_stamps_synthesized,s.approval_stamps_synthesized+=u.approval_stamps_synthesized,s.feedback_migrated+=u.feedback_migrated,s.feedback_with_synthesized_closure+=u.feedback_with_synthesized_closure,s.feedback_relocated+=u.feedback_relocated,s.state_json_deleted+=u.state_json_deleted,s.drift_artifacts_deleted+=u.drift_artifacts_deleted,s.review_slots_backfilled+=u.review_slots_backfilled,s.approval_slots_stripped+=u.approval_slots_stripped,s.iterations_message_migrated+=u.iterations_message_migrated)}return{from:t,to:n,steps:r.length,chain:i,details:s}}var WK,Nh=v(()=>{"use strict";WK=new Map});import{join as Kdt}from"node:path";function rr(e,t){if(/[/\\]|\.\./.test(e))throw new Error(`Invalid ${t}: "${e}"`);return e}function Ydt(){let e=nn();return[Kdt(process.cwd(),".haiku","studios"),Kdt(e,"studios")]}var qfe=v(()=>{"use strict";Ci();Ge();Ge()});function Zdt(e){return typeof e=="string"&&ZHn.has(e)}function bI(e){return Zdt(e)?e:void 0}function db(e){let t=[["unit",e.unit],["hat",e.hat],["stage",e.stage],["studio",e.studio]];for(let[n,r]of t){let i=bI(r);if(i)return{model:i,source:n}}return{model:void 0,source:"none"}}function Bfe(e){if(Zdt(e))return JHn[e]}var YHn,ZHn,JHn,fb=v(()=>{"use strict";YHn=["haiku","sonnet","opus"],ZHn=new Set(YHn),JHn={haiku:"sonnet",sonnet:"opus",opus:void 0}});import{existsSync as Ss,lstatSync as XHn,readdirSync as Ch,readFileSync as Cu,statSync as Jdt}from"node:fs";import{join as Yt}from"node:path";function Qdt(e){try{if(!Ss(e))return;let{data:t}=re(Cu(e,"utf8"));return bI(t.model)}catch{return}}function $i(e,t){rr(e,"studio"),rr(t,"stage");for(let n of Mu()){let r=Yt(n,e,"stages",t,"STAGE.md");if(Ss(r))return re(Cu(r,"utf8"))}return null}function Nd(e){rr(e,"studio");for(let t of Mu()){let n=Yt(t,e,"STUDIO.md");if(Ss(n))return re(Cu(n,"utf8"))}return null}function $dt(e){return e==="plan"||e==="build"||e==="verify"?e:void 0}function eft(e,t){let n=Yt(process.cwd(),".haiku"),r=nn();return[Yt(r,"hats"),Yt(n,"hats"),Yt(r,"studios",e,"hats"),Yt(n,"studios",e,"hats"),Yt(r,"studios",e,"stages",t,"hats"),Yt(n,"studios",e,"stages",t,"hats")]}function Du(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of eft(e,t))if(Ss(r))for(let i of Ch(r).filter(s=>s.endsWith(".md"))){let s=Cu(Yt(r,i),"utf8"),{data:o,body:a}=re(s);n[i.replace(/\.md$/,"")]={content:a,agent_type:o.agent_type||void 0,model:o.model||void 0,run_quality_gates:o.run_quality_gates===!0?!0:void 0,role:$dt(o.role),raw:s}}return n}function pb(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=null;for(let i of eft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Gfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"hat");let r=Yt(process.cwd(),".haiku"),i=nn(),s=null;for(let o of[Yt(i,"studios",e,"stages",t,"fix-hats"),Yt(r,"studios",e,"stages",t,"fix-hats")]){let a=Yt(o,`${n}.md`);Ss(a)&&(s=a)}return s??pb(e,t,n)}function tft(e,t){let n=Yt(process.cwd(),".haiku"),r=nn();return[Yt(r,"review-agents"),Yt(n,"review-agents"),Yt(r,"studios",e,"review-agents"),Yt(n,"studios",e,"review-agents"),Yt(r,"studios",e,"stages",t,"review-agents"),Yt(n,"studios",e,"stages",t,"review-agents")]}function Tl(e,t){rr(e,"studio"),rr(t,"stage");let n={};for(let r of tft(e,t))if(Ss(r))for(let i of Ch(r).filter(s=>s.endsWith(".md")))n[i.replace(/\.md$/,"")]=Yt(r,i);return n}function DD(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"agent");let r=null;for(let i of tft(e,t)){let s=Yt(i,`${n}.md`);Ss(s)&&(r=s)}return r}function Vfe(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"discovery template");for(let r of Mu()){let i=Yt(r,e,"stages",t,"discovery",`${n}.md`);if(Ss(i))return i}return null}function QHn(e,t,n){rr(e,"studio"),rr(t,"stage"),rr(n,"output template");for(let r of Mu()){let i=Yt(r,e,"stages",t,"outputs",`${n}.md`);if(Ss(i))return i}return null}function gg(e){rr(e,"studio");let t={},n=[...Mu()].reverse(),r=i=>{if(Ss(i))for(let s of Ch(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Yt(i,s)};for(let i of n)r(Yt(i,"..","intent-review-agents"));for(let i of n)r(Yt(i,e,"intent-review-agents"));return t}function LD(e){if(!e||!Ss(e))return null;let{body:t}=re(Cu(e,"utf8"));return(t||"").trim()||null}function EI(e,t,n,r=!1){return LD(r?Gfe(e,t,n):pb(e,t,n))}function Mh(e,t,n){let r=t?DD(e,t,n):gg(e)[n]??null;return LD(r)}function _I(e,t,n){return LD(Vfe(e,t,n))}function YK(e,t,n){return LD(QHn(e,t,n))}function ZK(e,t,n){return(Wfe(e,t,n)?.body||"").trim()||null}function Dh(e,t){return($i(e,t)?.body||"").trim()||null}function nft(e,t){return LD(UD(e)[t]??null)}function rft(e){let t=Yt(process.cwd(),".haiku"),n=nn();return[Yt(n,"fix-hats"),Yt(t,"fix-hats"),Yt(n,"studios",e,"fix-hats"),Yt(t,"studios",e,"fix-hats")]}function JK(e){rr(e,"studio");let t={};for(let n of rft(e))if(Ss(n))for(let r of Ch(n).filter(i=>i.endsWith(".md"))){let i=Cu(Yt(n,r),"utf8"),{data:s,body:o}=re(i);t[r.replace(/\.md$/,"")]={content:o,agent_type:s.agent_type||void 0,model:s.model||void 0,role:$dt(s.role),raw:i}}return t}function UD(e){rr(e,"studio");let t={};for(let n of rft(e))if(Ss(n))for(let r of Ch(n).filter(i=>i.endsWith(".md")))t[r.replace(/\.md$/,"")]=Yt(n,r);return t}function ift(e,t,n){let r={},i=null,s=null;for(let[l,d]of Object.entries(e))u(d)&&(r[l]=d);return r;function o(l){try{let d=Cu(l,"utf8"),{data:f}=re(d),p=f.applies_to;if(p!=null){if(Array.isArray(p)&&p.every(h=>typeof h=="string"))return p;console.warn(`[haiku] review-agent ${l}: \`applies_to:\` is present but not a string[]; treating as unscoped (always runs). Fix the frontmatter to scope the agent.`)}}catch{}}function a(){return i===null&&(i=$Hn(t)),i}function c(){if(s===null&&(s=[],n))for(let l of no(n.studio,n.stage)){if(l.kind!=="output")continue;let p=(l.location||"").replace(/\{[^}]+\}/g,"").toLowerCase().match(/\.[a-z0-9]+$/);p&&s.push(p[0])}return s}function u(l){let d=o(l);if(!d||d.length===0)return!0;let f=a();if(f.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(f.some(g=>g.toLowerCase().endsWith(m)))return!0}return!1}let p=c();if(p.length>0){for(let h of d){let m=h.replace(/^\*/,"").toLowerCase();if(p.some(g=>g===m))return!0}return!1}return!0}}function $Hn(e){if(!Ss(e))return[];let t=[],n=[e];for(;n.length>0;){let r=n.pop();try{let i=Ch(r,{withFileTypes:!0});for(let s of i){let o=String(s.name),a=Yt(r,o);s.isDirectory()?n.push(a):t.push(o)}}catch{}}return t}function no(e,t){rr(e,"studio"),rr(t,"stage");let n=[],r=new Set;for(let s of[...Mu()].reverse())for(let o of["discovery","outputs"]){let a=Yt(s,e,"stages",t,o);if(Ss(a))for(let c of Ch(a).filter(u=>u.endsWith(".md"))){let u=`${o}:${c}`;if(r.has(u))continue;r.add(u);let l=Cu(Yt(a,c),"utf8"),{data:d,body:f}=re(l);n.push({name:d.name||c.replace(/\.md$/,""),location:d.location||"",scope:d.scope||"intent",format:d.format||"text",required:d.required!==!1,body:f,kind:o==="outputs"?"output":"discovery",...typeof d.tool=="string"&&d.tool.length>0?{tool:d.tool}:{}})}}let i=new Map;for(let s of n){if(s.kind!=="discovery"||!s.location)continue;let o=i.get(s.location)??[];o.push(s.name),i.set(s.location,o)}for(let[s,o]of i)if(o.length>1)throw new Error(`Studio configuration error: discovery templates [${o.join(", ")}] in stage '${t}' of studio '${e}' share the same location '${s}'. Each discovery template must declare a unique 'location:' frontmatter field \u2014 parallel agents writing to the same path produce merge conflicts and ambiguous existence checks.`);return n}function XK(e,t,n,r){let i=[];for(let s of t){let o=s.stage,a=no(e,o);if(s.discovery){let c=a.find(u=>u.name===s.discovery&&u.kind==="discovery");if(c?.location){let u=Xdt(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&Jdt(u).isDirectory())&&l){let f=zfe(u);i.push({stage:o,artifactName:s.discovery,kind:"discovery",resolvedPath:u,exists:l,content:f||"(empty directory)",description:c.body})}else i.push({stage:o,artifactName:s.discovery,kind:"discovery",resolvedPath:u,exists:l,content:l?Cu(u,"utf8"):null,description:c.body})}}if(s.output){let c=a.find(u=>u.name===s.output&&u.kind==="output");if(c?.location){let u=Xdt(c.location,n,r),l=Ss(u);if((c.location.endsWith("/")||l&&Jdt(u).isDirectory())&&l){let f=zfe(u);i.push({stage:o,artifactName:s.output,kind:"output",resolvedPath:u,exists:l,content:f||"(empty directory)",description:c.body})}else i.push({stage:o,artifactName:s.output,kind:"output",resolvedPath:u,exists:l,content:l?Cu(u,"utf8"):null,description:c.body})}}}return i}function zfe(e,t=""){let n=Ch(e).filter(i=>!i.startsWith(".")),r=[];for(let i of n){let s=Yt(e,i),o=t?`${t}/${i}`:i,a;try{a=XHn(s)}catch{continue}if(!a.isSymbolicLink())if(a.isDirectory())r.push(zfe(s,o));else{let c;try{c=Cu(s,"utf8")}catch{continue}r.push(`### ${o} ${c.slice(0,1500)}${c.length>1500?` ...(truncated)`:""}`)}}return r.filter(Boolean).join(` -`)}function Jdt(e,t,n){let r=e.replace(/\{intent-slug\}/g,n),i=`.haiku/intents/${n}/`;return r.startsWith(i)?Yt(t,r.slice(i.length)):r.startsWith("/")?r:Yt(process.cwd(),r)}function tqn(){let e=new Map,t=nn(),n=Mu();for(let r of[...n].reverse()){if(!Ss(r))continue;let i=t&&r.startsWith(t)?"plugin":"project";for(let s of Ch(r,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Yt(r,s.name),a=Yt(o,"STUDIO.md");if(!Ss(a))continue;let{data:c,body:u}=re(Cu(a,"utf8")),l=c.name||s.name,d=c.slug||l,f=Array.isArray(c.aliases)?c.aliases:[];e.set(s.name,{dir:s.name,name:l,slug:d,aliases:f,description:c.description||"",category:c.category||"general",stages:Array.isArray(c.stages)?c.stages:[],data:c,body:u,source:i,path:o,studioFile:a})}}return Array.from(e.values())}function TI(){let e=Mu().join("|"),t=Date.now();if(CD&&CD.key===e&&CD.expiresAt>t)return CD.value;let n=tqn();return CD={key:e,expiresAt:t+eqn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=TI();for(let r of n)if(r.dir.toLowerCase()===t||r.name.toLowerCase()===t||r.slug.toLowerCase()===t||r.aliases.some(i=>i.toLowerCase()===t))return r;return null}function Vfe(e,t,n){rr(e,"studio"),rr(t,"stage");for(let r of Mu()){let i=Yt(r,e,"stages",t,"phases",`${n.toUpperCase()}.md`);if(Ss(i))return re(Cu(i,"utf8"))}return null}function ift(e){rr(e,"studio");let t={},n=Mu();for(let r of[...n].reverse()){let i=Yt(r,e,"reflections");if(Ss(i))for(let s of Ch(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Cu(Yt(i,s),"utf8")}return t}var Mu,eqn,CD,Kn=v(()=>{"use strict";Hfe();Ci();fb();Ge();Mu=Kdt;eqn=2e3,CD=null});import{spawnSync as nqn}from"node:child_process";import{readFileSync as rqn}from"node:fs";import{homedir as iqn}from"node:os";import{join as Wfe}from"node:path";function Cd(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function sft(e){let t={};if(!e)return t;for(let n of e.split(",")){let r=n.trim();if(!r)continue;let i=r.indexOf("=");if(i<=0)continue;let s=r.slice(0,i).trim(),o=r.slice(i+1).trim();if(!s)continue;let a=o;try{a=decodeURIComponent(o)}catch{}t[s]=a}return t}function sqn(){let e=Cd("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Cd("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function oqn(){let e=Cd("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return sft(e||Cd("OTEL_EXPORTER_OTLP_HEADERS"))}function aqn(){let e=Cd("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Cd("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function cqn(){let e=Number(Cd("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Cd("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function uqn(){return Cd("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function lqn(e){try{let t=rqn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function dqn(){let e={},t=iqn(),n=process.cwd(),r=[t?Wfe(t,".claude","settings.json"):null,Wfe(n,".claude","settings.json"),Wfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=lqn(i);s&&Object.assign(e,s)}return e}function fqn(){let t=dqn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function hqn(){let e=Number(Cd("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:pqn}function mqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=nqn(t,n,{encoding:"utf8",timeout:1e4});if(r.status!==0){let a=(r.stderr||"").trim();return console.error(`[haiku/telemetry] otelHeadersHelper exited ${r.status}${a?`: ${a}`:""}`),null}let i=(r.stdout||"").trim();if(!i)return console.error("[haiku/telemetry] otelHeadersHelper did not return a valid value"),null;let s;try{s=JSON.parse(i)}catch(a){return console.error(`[haiku/telemetry] otelHeadersHelper output is not valid JSON: ${a instanceof Error?a.message:String(a)}`),null}if(!s||typeof s!="object"||Array.isArray(s))return console.error("[haiku/telemetry] otelHeadersHelper must return a JSON object with string key-value pairs"),null;let o={};for(let[a,c]of Object.entries(s)){if(typeof c!="string")return console.error(`[haiku/telemetry] otelHeadersHelper returned non-string value for key "${a}": ${typeof c}`),null;o[a]=c}return o}function gqn(){let e=hqn();if(vI!==null&&Date.now()-Kfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:_qn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=gqn(),a={"Content-Type":"application/json",...bqn,...o};fetch(Sqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(Eqn)}).catch(()=>{})}var Zfe,pqn,vI,Kfe,Sqn,bqn,aft,Eqn,_qn,Yfe,Jfe,cft,Tqn,vqn,oft,vo=v(()=>{"use strict";Ci();Zfe=Go.telemetry;pqn=174e4,vI=null,Kfe=0;Sqn=sqn(),bqn=oqn(),aft=aqn(),Eqn=cqn(),_qn=yqn(),Yfe=uqn(),Jfe=Yfe==="otlp",cft=aft==="http/json";Zfe&&!Jfe&&Yfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Yfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);Zfe&&Jfe&&!cft&&console.error(`[haiku/telemetry] OTLP protocol "${aft}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);Tqn=Zfe&&Jfe&&cft,vqn=new Set(["diff_unified","excerpt","file_content","file_body","user_email","user_name","message_body","finding_body","fb_body","content","password","passwd","pwd","token","access_token","refresh_token","id_token","bearer_token","bearer","api_key","apikey","api-key","authorization","auth_header","auth","secret","client_secret","signing_secret","credential","credentials","session_id","cookie","private_key","pem"]),oft=new Set});import{existsSync as Lu,mkdirSync as Aqn,readdirSync as RI,readFileSync as lft,renameSync as wqn,rmSync as Xfe,writeFileSync as kqn}from"node:fs";import{dirname as Iqn,join as ro}from"node:path";function Cqn(e){return!1}function AI(e){let t=lft(e,"utf8"),n=(0,Qfe.default)(t);return{data:n.data,body:n.content}}function $fe(e,t,n){try{t()}catch(r){let i=r instanceof Error?r.message:String(r);console.warn(`[haiku-migrate-v0-to-v4] Skipped ${n} at ${e} due to parse error: ${i}. The file is preserved as-is; fix the YAML and re-tick to migrate.`),Ke("haiku.migrator.unit_skip",{path:e,context:n,error:i.slice(0,500)})}}function epe(e,t,n){let r=Qfe.default.stringify(n,t);kqn(e,r)}function tpe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function fft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function Lqn(e,t){let n=ro(e,"intent.md");Lu(n)&&$fe(n,()=>{let{data:r,body:i}=AI(n),s=tpe(r,xqn);s.plugin_version=dft,(typeof s.approvals!="object"||s.approvals===null)&&(s.approvals={}),s.started_at==null&&(s.started_at=null),s.sealed_at==null&&(s.sealed_at=null),epe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function Uqn(e,t,n,r){let i=ro(e,"units");if(!Lu(i))return;let s=RI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=ro(i,o.name);$fe(a,()=>jqn(a,t,n,r),`unit ${o.name}`)}}function Fqn(e,t,n,r,i){let s={at:t,migrated:!0},o=e.reviews,a=[];try{a=Object.keys(Tl(n,r)).sort()}catch{a=[]}let c=["spec",...a,"user"];for(let d of c)o[d]==null&&(o[d]=s,i.review_stamps_synthesized++);let u=e.approvals,l=["spec","quality_gates",...a,"user"];for(let d of l)u[d]==null&&(u[d]=s,i.approval_stamps_synthesized++)}function jqn(e,t,n,r){let{data:i,body:s}=AI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=tpe(i,Oqn);if((typeof c.iterations!="object"||!Array.isArray(c.iterations))&&(c.iterations=i.iterations??[]),Array.isArray(c.iterations))for(let u of c.iterations)u&&u.result==="rejected"&&(u.result="reject"),u&&u.result==="advanced"&&(u.result="advance");if((typeof c.reviews!="object"||c.reviews===null)&&(c.reviews={}),(typeof c.approvals!="object"||c.approvals===null)&&(c.approvals={}),delete c.discovery,o){let u=fft([a]);Fqn(c,u,n,r,t),t.units_with_synthesized_approval++}epe(e,c,s),t.units_migrated++}function uft(e,t,n){if(!Lu(e))return;let r=RI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=ro(e,i.name);$fe(s,()=>qqn(s,t,n),`feedback ${i.name}`)}}function Hqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=Iqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Lu(a))try{Aqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of RI(a).filter(m=>m.endsWith(".md"))){let m=h.match(/^(\d+)-/);m&&c.add(Number.parseInt(m[1],10))}let u=1;for(;c.has(u);)u++;let l=e.split("/").pop()??"",d=l.match(/^\d+-(.+\.md)$/),f=d?`${String(u).padStart(2,"0")}-${d[1]}`:`${String(u).padStart(2,"0")}-${l}`,p=ro(a,f);return Lu(p)?null:(wqn(e,p),p)}function qqn(e,t,n){let{data:r,body:i}=AI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=tpe(r,Mqn);if((typeof a.iterations!="object"||!Array.isArray(a.iterations))&&(a.iterations=r.iterations??[]),Array.isArray(a.iterations))for(let l of a.iterations)l&&l.result==="rejected"&&(l.result="reject"),l&&l.result==="advanced"&&(l.result="advance");(typeof a.targets!="object"||a.targets===null)&&(a.targets={unit:null,invalidates:[]});let c=!1;a.closed_at==null&&(Dqn.has(s)?(a.closed_at=fft([o,r.created_at]),c=!0):a.closed_at=null),epe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Hqn(e,r,t)&&n.feedback_relocated++}function Bqn(e){let{intentDir:t}=e,n=hc();Lqn(t,n);let r="",i=ro(t,"intent.md");if(Lu(i))try{let o=AI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Lu(s))for(let o of RI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;Uqn(a,n,r,c),uft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Lu(u)&&(Xfe(u,{force:!0}),n.state_json_deleted++);for(let l of["baseline.json","drift-markers.json","baseline-content"]){let d=ro(a,l);Lu(d)&&(Xfe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}uft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Lu(a)&&(Xfe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function JK(e){let t=ro(e,"intent.md");if(Lu(t))try{let r=AI(t).data;for(let i of Pqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Lu(n))return!1;for(let r of RI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=ro(n,r.name),s=ro(i,"units");if(Lu(s)){let a=RI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=AI(ro(s,c)).data;for(let l of Nqn)if(l in u)return!0;if(Cqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Lu(o))try{let a=JSON.parse(lft(o,"utf8"));if(typeof a=="object"&&a!==null&&typeof a.status=="string"&&(a.status==="active"||a.status==="completed"||a.status==="pending"))return!0}catch{}}return!1}var Qfe,dft,xqn,Oqn,Pqn,Nqn,Mqn,Dqn,XK=v(()=>{"use strict";Qfe=Re(Kt(),1);Kn();vo();Nh();dft="4.0.0",xqn=new Set(["status","active_stage","phase","completed_at","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase","autopilot","intent_completion_review"]),Oqn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),Pqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),Nqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);Mqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),Dqn=new Set(["closed","answered","addressed","rejected"]);Nu("0",dft,Bqn)});var YD={};Ar(YD,{GIT_NETWORK_TIMEOUT_MS:()=>Ra,GIT_NONINTERACTIVE_ENV:()=>Aa,addTempWorktree:()=>t3,branchAheadOfOrigin:()=>i3,branchExists:()=>Pt,buildCompareUrl:()=>dpe,checkoutFromBranchOnIntentMain:()=>nBn,cleanupDiscoveryWorktree:()=>aBn,cleanupFixChainWorktree:()=>a3,cleanupIntentWorktrees:()=>WD,cleanupOrphanedStageBranches:()=>s3,cleanupUnitWorktree:()=>Ipe,commitAndPushFromWorktree:()=>r3,consolidateStageBranches:()=>bpe,createDiscoveryWorktree:()=>Ape,createFixChainWorktree:()=>kpe,createIntentBranch:()=>kI,createStageBranch:()=>ype,createUnitWorktree:()=>vpe,deleteBranch:()=>KD,deleteStageBranch:()=>Sb,detectPrTool:()=>qD,discoveryBranchName:()=>xI,discoveryWorktreePath:()=>II,ensureOnIntentMain:()=>mpe,ensureOnStageBranch:()=>gr,ensureStageBranch:()=>yb,fetchOrigin:()=>PT,finalizeIntentBranches:()=>xpe,fixChainBranchName:()=>GD,fixChainWorktreePath:()=>Sg,getCurrentBranch:()=>mr,getMainlineBranch:()=>Zo,hasGitRemote:()=>cpe,hasNoMergeDebt:()=>jD,isAncestor:()=>Uu,isBranchMerged:()=>Zc,isCurrentWorktreeLocked:()=>eBn,isLiveWorktree:()=>yft,isMergeInProgress:()=>mb,isOnIntentBranch:()=>Jqn,isOnStageBranch:()=>gpe,listIntentBranches:()=>e3,listOrphanDiscreteIntents:()=>ope,markPullRequestReady:()=>ppe,mergeDiscoveryWorktree:()=>wpe,mergeFixChainWorktree:()=>VD,mergeStageBranchForward:()=>Spe,mergeStageBranchIntoMain:()=>zD,mergeUnitWorktree:()=>Rpe,openIntentDraftPullRequest:()=>fpe,openPullRequest:()=>wI,openStagePullRequest:()=>Yqn,prepareRevisitBranch:()=>cBn,pushBranchToOrigin:()=>yg,pushFixChainWorktree:()=>lpe,pushStageBranch:()=>BD,pushUnitWorktree:()=>upe,readFileFromBranch:()=>Epe,reconcileIntentBranches:()=>hpe,reconcileMisroutedStageMerges:()=>Zqn,refsHaveIdenticalTrees:()=>$K,removeTempWorktree:()=>n3,resolveMainlineRef:()=>spe,syncBranchDownstream:()=>ipe,uncommittedAgentWork:()=>_pe,unitBranchExists:()=>ape,unitSpecInWorktree:()=>$qn,unitWorktreePath:()=>gb,writeOnIntentMain:()=>tBn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as npe,mkdirSync as FD,mkdtempSync as zqn,readFileSync as Gqn,rmSync as rpe}from"node:fs";import{tmpdir as Vqn}from"node:os";import{join as es}from"node:path";function Gt(e,t){return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,env:process.env}).trim()}function ae(e,t){try{return Gt(e,t)}catch{return""}}function Wqn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` -`)}function $K(e,t){let n=ae(["git","rev-parse",`${e}^{tree}`]);if(!n)return!1;let r=ae(["git","rev-parse",`${t}^{tree}`]);return r?n===r:!1}function mb(){if(!ve())return!1;let e=ae(["git","rev-parse","--git-dir"]);if(!e)return!1;let t=e.startsWith("/")?e:es(process.cwd(),e);for(let n of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(io(es(t,n)))return!0;return!1}function jD(e,t){return!!($K(e,t)||Uu(e,t))}function QK(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Ra,env:Aa}).trim()}catch{return""}}function mr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Pt(e){return ve()?ae(["git","rev-parse","--verify",e])!=="":!1}function ipe(e){if(!ve())return{ok:!0,performed:!1,message:"non-git mode"};let t=Zo(),n=`haiku/${e}/main`,r=mr(),i=!1;if(t&&n&&Pt(n)){let s=ae(["git","rev-parse","--verify",`origin/${t}`])?`origin/${t}`:"",o=Pt(t),a=s&&o&&Uu(t,s)&&ae(["git","rev-parse","--verify",t])!==ae(["git","rev-parse","--verify",s]),c=o?a?s:t:s;if(c&&!jD(c,n)){let u=Kqn(c,n,r,`haiku: merge ${c} \u2192 ${n} (pre-cursor sync)`,e);if(!u.ok)return{ok:!1,performed:i,conflictAt:"mainline_to_intent_main",conflictFiles:u.conflictFiles,conflictBranch:n,message:u.message};u.performed&&(i=!0)}}if(n&&Pt(n)&&r&&r!==n&&r.startsWith(`haiku/${e}/`)&&!$K(r,n)){let s=mft(n,`haiku: merge ${n} \u2192 ${r} (pre-cursor sync)`,e);if(!s.ok)return{ok:!1,performed:i,conflictAt:"intent_main_to_stage",conflictFiles:s.conflictFiles,conflictBranch:r,message:s.message};s.performed&&(i=!0)}return{ok:!0,performed:i}}function Kqn(e,t,n,r,i){if(n===t)return mft(e,r,i);try{return Lh(t,o=>HD(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function HD(e,t,n,r){let i=null;try{Gt(["git",...e,"merge",t,"--no-ff","--no-commit"])}catch(a){i=a}if(!!!ae(["git",...e,"rev-parse","--quiet","--verify","MERGE_HEAD"]))return i?{ok:!1,performed:!1,conflictFiles:[],message:i instanceof Error?i.message:String(i)}:{ok:!0,performed:!1};o3(e,"HEAD",n);let o=ae(["git",...e,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);return o.length>0?{ok:!1,performed:!1,conflictFiles:o,message:`Merge ${t} left conflicts in ${o.length} file(s): ${o.join(", ")}.`}:(Gt(["git",...e,"commit","--no-edit","-m",r]),{ok:!0,performed:!0})}function mft(e,t,n){return HD([],e,n,t)}function Zo(){if(!ve())return"main";let e=ae(["git","symbolic-ref","--short","refs/remotes/origin/HEAD"]);if(e){let n=e.match(/^origin\/(.+)$/);if(n)return n[1]}for(let n of["main","master"])if(ae(["git","rev-parse","--verify",n])||ae(["git","rev-parse","--verify",`origin/${n}`]))return n;return ae(["git","config","--get","init.defaultBranch"])||"main"}function spe(){if(!ve())return"";let e=Zo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function PT(){if(!ve())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Ra,env:Aa}),!0}catch{return!1}}function e3(){if(!ve())return[];let e=new Set,t=ae(["git","for-each-ref","--format=%(refname:short)","refs/heads/haiku"]);for(let r of t.split(` +`)}function Xdt(e,t,n){let r=e.replace(/\{intent-slug\}/g,n),i=`.haiku/intents/${n}/`;return r.startsWith(i)?Yt(t,r.slice(i.length)):r.startsWith("/")?r:Yt(process.cwd(),r)}function tqn(){let e=new Map,t=nn(),n=Mu();for(let r of[...n].reverse()){if(!Ss(r))continue;let i=t&&r.startsWith(t)?"plugin":"project";for(let s of Ch(r,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Yt(r,s.name),a=Yt(o,"STUDIO.md");if(!Ss(a))continue;let{data:c,body:u}=re(Cu(a,"utf8")),l=c.name||s.name,d=c.slug||l,f=Array.isArray(c.aliases)?c.aliases:[];e.set(s.name,{dir:s.name,name:l,slug:d,aliases:f,description:c.description||"",category:c.category||"general",stages:Array.isArray(c.stages)?c.stages:[],data:c,body:u,source:i,path:o,studioFile:a})}}return Array.from(e.values())}function TI(){let e=Mu().join("|"),t=Date.now();if(MD&&MD.key===e&&MD.expiresAt>t)return MD.value;let n=tqn();return MD={key:e,expiresAt:t+eqn,value:n},n}function si(e){if(!e)return null;let t=e.toLowerCase(),n=TI();for(let r of n)if(r.dir.toLowerCase()===t||r.name.toLowerCase()===t||r.slug.toLowerCase()===t||r.aliases.some(i=>i.toLowerCase()===t))return r;return null}function Wfe(e,t,n){rr(e,"studio"),rr(t,"stage");for(let r of Mu()){let i=Yt(r,e,"stages",t,"phases",`${n.toUpperCase()}.md`);if(Ss(i))return re(Cu(i,"utf8"))}return null}function sft(e){rr(e,"studio");let t={},n=Mu();for(let r of[...n].reverse()){let i=Yt(r,e,"reflections");if(Ss(i))for(let s of Ch(i).filter(o=>o.endsWith(".md")))t[s.replace(/\.md$/,"")]=Cu(Yt(i,s),"utf8")}return t}var Mu,eqn,MD,Kn=v(()=>{"use strict";qfe();Ci();fb();Ge();Mu=Ydt;eqn=2e3,MD=null});import{spawnSync as nqn}from"node:child_process";import{readFileSync as rqn}from"node:fs";import{homedir as iqn}from"node:os";import{join as Kfe}from"node:path";function Cd(e){let t=(process.env[`HAIKU_${e}`]??"").trim();return t||(process.env[e]??"").trim()}function oft(e){let t={};if(!e)return t;for(let n of e.split(",")){let r=n.trim();if(!r)continue;let i=r.indexOf("=");if(i<=0)continue;let s=r.slice(0,i).trim(),o=r.slice(i+1).trim();if(!s)continue;let a=o;try{a=decodeURIComponent(o)}catch{}t[s]=a}return t}function sqn(){let e=Cd("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT");return e||`${(Cd("OTEL_EXPORTER_OTLP_ENDPOINT")||"http://localhost:4318").replace(/\/$/,"")}/v1/logs`}function oqn(){let e=Cd("OTEL_EXPORTER_OTLP_LOGS_HEADERS");return oft(e||Cd("OTEL_EXPORTER_OTLP_HEADERS"))}function aqn(){let e=Cd("OTEL_EXPORTER_OTLP_LOGS_PROTOCOL");return e||Cd("OTEL_EXPORTER_OTLP_PROTOCOL")||"http/json"}function cqn(){let e=Number(Cd("OTEL_EXPORTER_OTLP_LOGS_TIMEOUT"));if(Number.isFinite(e)&&e>0)return e;let t=Number(Cd("OTEL_EXPORTER_OTLP_TIMEOUT"));return Number.isFinite(t)&&t>0?t:1e4}function uqn(){return Cd("OTEL_LOGS_EXPORTER").toLowerCase()||"otlp"}function lqn(e){try{let t=rqn(e,"utf8"),n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}return null}function dqn(){let e={},t=iqn(),n=process.cwd(),r=[t?Kfe(t,".claude","settings.json"):null,Kfe(n,".claude","settings.json"),Kfe(n,".claude","settings.local.json")].filter(i=>i!==null);for(let i of r){let s=lqn(i);s&&Object.assign(e,s)}return e}function fqn(){let t=dqn().otelHeadersHelper;return typeof t=="string"?t.trim():""}function hqn(){let e=Number(Cd("CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"));return Number.isFinite(e)&&e>0?e:pqn}function mqn(e){let[t,...n]=e.split(/\s+/).filter(Boolean);if(!t)return null;let r=nqn(t,n,{encoding:"utf8",timeout:1e4});if(r.status!==0){let a=(r.stderr||"").trim();return console.error(`[haiku/telemetry] otelHeadersHelper exited ${r.status}${a?`: ${a}`:""}`),null}let i=(r.stdout||"").trim();if(!i)return console.error("[haiku/telemetry] otelHeadersHelper did not return a valid value"),null;let s;try{s=JSON.parse(i)}catch(a){return console.error(`[haiku/telemetry] otelHeadersHelper output is not valid JSON: ${a instanceof Error?a.message:String(a)}`),null}if(!s||typeof s!="object"||Array.isArray(s))return console.error("[haiku/telemetry] otelHeadersHelper must return a JSON object with string key-value pairs"),null;let o={};for(let[a,c]of Object.entries(s)){if(typeof c!="string")return console.error(`[haiku/telemetry] otelHeadersHelper returned non-string value for key "${a}": ${typeof c}`),null;o[a]=c}return o}function gqn(){let e=hqn();if(vI!==null&&Date.now()-Yfe({key:c,value:{stringValue:u}}))],s=JSON.stringify({resourceLogs:[{resource:{attributes:_qn},scopeLogs:[{scope:{name:"haiku"},logRecords:[{timeUnixNano:r,severityNumber:9,severityText:"INFO",body:{stringValue:e},attributes:i}]}]}]}),o=gqn(),a={"Content-Type":"application/json",...bqn,...o};fetch(Sqn,{method:"POST",headers:a,body:s,signal:AbortSignal.timeout(Eqn)}).catch(()=>{})}var Jfe,pqn,vI,Yfe,Sqn,bqn,cft,Eqn,_qn,Zfe,Xfe,uft,Tqn,vqn,aft,vo=v(()=>{"use strict";Ci();Jfe=Go.telemetry;pqn=174e4,vI=null,Yfe=0;Sqn=sqn(),bqn=oqn(),cft=aqn(),Eqn=cqn(),_qn=yqn(),Zfe=uqn(),Xfe=Zfe==="otlp",uft=cft==="http/json";Jfe&&!Xfe&&Zfe!=="none"&&console.error(`[haiku/telemetry] OTEL_LOGS_EXPORTER="${Zfe}" not supported \u2014 telemetry disabled. Use "otlp" or unset.`);Jfe&&Xfe&&!uft&&console.error(`[haiku/telemetry] OTLP protocol "${cft}" not supported \u2014 only http/json is implemented. Telemetry disabled.`);Tqn=Jfe&&Xfe&&uft,vqn=new Set(["diff_unified","excerpt","file_content","file_body","user_email","user_name","message_body","finding_body","fb_body","content","password","passwd","pwd","token","access_token","refresh_token","id_token","bearer_token","bearer","api_key","apikey","api-key","authorization","auth_header","auth","secret","client_secret","signing_secret","credential","credentials","session_id","cookie","private_key","pem"]),aft=new Set});import{existsSync as Lu,mkdirSync as Aqn,readdirSync as RI,readFileSync as dft,renameSync as wqn,rmSync as Qfe,writeFileSync as kqn}from"node:fs";import{dirname as Iqn,join as ro}from"node:path";function Cqn(e){return!1}function AI(e){let t=dft(e,"utf8"),n=(0,$fe.default)(t);return{data:n.data,body:n.content}}function epe(e,t,n){try{t()}catch(r){let i=r instanceof Error?r.message:String(r);console.warn(`[haiku-migrate-v0-to-v4] Skipped ${n} at ${e} due to parse error: ${i}. The file is preserved as-is; fix the YAML and re-tick to migrate.`),Ke("haiku.migrator.unit_skip",{path:e,context:n,error:i.slice(0,500)})}}function tpe(e,t,n){let r=$fe.default.stringify(n,t);kqn(e,r)}function npe(e,t){let n={};for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=i);return n}function pft(e){for(let t of e)if(typeof t=="string"&&t.length>0)return t;return new Date().toISOString()}function Lqn(e,t){let n=ro(e,"intent.md");Lu(n)&&epe(n,()=>{let{data:r,body:i}=AI(n),s=npe(r,xqn);s.plugin_version=fft,(typeof s.approvals!="object"||s.approvals===null)&&(s.approvals={}),s.started_at==null&&(s.started_at=null),s.sealed_at==null&&(s.sealed_at=null),tpe(n,s,i),t.intent_md_migrated=!0},"intent.md")}function Uqn(e,t,n,r){let i=ro(e,"units");if(!Lu(i))return;let s=RI(i,{withFileTypes:!0});for(let o of s){if(!o.isFile()||!o.name.endsWith(".md"))continue;let a=ro(i,o.name);epe(a,()=>jqn(a,t,n,r),`unit ${o.name}`)}}function Fqn(e,t,n,r,i){let s={at:t,migrated:!0},o=e.reviews,a=[];try{a=Object.keys(Tl(n,r)).sort()}catch{a=[]}let c=["spec",...a,"user"];for(let d of c)o[d]==null&&(o[d]=s,i.review_stamps_synthesized++);let u=e.approvals,l=["spec","quality_gates",...a,"user"];for(let d of l)u[d]==null&&(u[d]=s,i.approval_stamps_synthesized++)}function jqn(e,t,n,r){let{data:i,body:s}=AI(e),o=i.status==="completed",a=typeof i.completed_at=="string"?i.completed_at:null,c=npe(i,Oqn);if((typeof c.iterations!="object"||!Array.isArray(c.iterations))&&(c.iterations=i.iterations??[]),Array.isArray(c.iterations))for(let u of c.iterations)u&&u.result==="rejected"&&(u.result="reject"),u&&u.result==="advanced"&&(u.result="advance");if((typeof c.reviews!="object"||c.reviews===null)&&(c.reviews={}),(typeof c.approvals!="object"||c.approvals===null)&&(c.approvals={}),delete c.discovery,o){let u=pft([a]);Fqn(c,u,n,r,t),t.units_with_synthesized_approval++}tpe(e,c,s),t.units_migrated++}function lft(e,t,n){if(!Lu(e))return;let r=RI(e,{withFileTypes:!0});for(let i of r){if(!i.isFile()||!i.name.endsWith(".md"))continue;let s=ro(e,i.name);epe(s,()=>qqn(s,t,n),`feedback ${i.name}`)}}function Hqn(e,t,n){let r=t.upstream_stage;if(typeof r!="string"||!r)return null;let s=Iqn(e).match(/\/stages\/([^/]+)\/feedback\/?$/);if((s?s[1]:"")===r)return null;let a=ro(n,"stages",r,"feedback");if(!Lu(a))try{Aqn(a,{recursive:!0})}catch{return null}let c=new Set;for(let h of RI(a).filter(m=>m.endsWith(".md"))){let m=h.match(/^(\d+)-/);m&&c.add(Number.parseInt(m[1],10))}let u=1;for(;c.has(u);)u++;let l=e.split("/").pop()??"",d=l.match(/^\d+-(.+\.md)$/),f=d?`${String(u).padStart(2,"0")}-${d[1]}`:`${String(u).padStart(2,"0")}-${l}`,p=ro(a,f);return Lu(p)?null:(wqn(e,p),p)}function qqn(e,t,n){let{data:r,body:i}=AI(e),s=typeof r.status=="string"?r.status:"",o=typeof r.closed_by=="string"?r.closed_by:null,a=npe(r,Mqn);if((typeof a.iterations!="object"||!Array.isArray(a.iterations))&&(a.iterations=r.iterations??[]),Array.isArray(a.iterations))for(let l of a.iterations)l&&l.result==="rejected"&&(l.result="reject"),l&&l.result==="advanced"&&(l.result="advance");(typeof a.targets!="object"||a.targets===null)&&(a.targets={unit:null,invalidates:[]});let c=!1;a.closed_at==null&&(Dqn.has(s)?(a.closed_at=pft([o,r.created_at]),c=!0):a.closed_at=null),tpe(e,a,i),n.feedback_migrated++,c&&n.feedback_with_synthesized_closure++,Hqn(e,r,t)&&n.feedback_relocated++}function Bqn(e){let{intentDir:t}=e,n=hc();Lqn(t,n);let r="",i=ro(t,"intent.md");if(Lu(i))try{let o=AI(i).data;typeof o.studio=="string"&&(r=o.studio)}catch{r=""}let s=ro(t,"stages");if(Lu(s))for(let o of RI(s,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=ro(s,o.name),c=o.name;Uqn(a,n,r,c),lft(ro(a,"feedback"),t,n);let u=ro(a,"state.json");Lu(u)&&(Qfe(u,{force:!0}),n.state_json_deleted++);for(let l of["baseline.json","drift-markers.json","baseline-content"]){let d=ro(a,l);Lu(d)&&(Qfe(d,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}}lft(ro(t,"feedback"),t,n);for(let o of["baseline.json","drift-markers.json","baseline-content"]){let a=ro(t,o);Lu(a)&&(Qfe(a,{recursive:!0,force:!0}),n.drift_artifacts_deleted++)}return n}function QK(e){let t=ro(e,"intent.md");if(Lu(t))try{let r=AI(t).data;for(let i of Pqn)if(i in r)return!0}catch{}let n=ro(e,"stages");if(!Lu(n))return!1;for(let r of RI(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=ro(n,r.name),s=ro(i,"units");if(Lu(s)){let a=RI(s).filter(c=>c.endsWith(".md"));for(let c of a)try{let u=AI(ro(s,c)).data;for(let l of Nqn)if(l in u)return!0;if(Cqn(u))return!0}catch{}}let o=ro(i,"state.json");if(Lu(o))try{let a=JSON.parse(dft(o,"utf8"));if(typeof a=="object"&&a!==null&&typeof a.status=="string"&&(a.status==="active"||a.status==="completed"||a.status==="pending"))return!0}catch{}}return!1}var $fe,fft,xqn,Oqn,Pqn,Nqn,Mqn,Dqn,$K=v(()=>{"use strict";$fe=Re(Kt(),1);Kn();vo();Nh();fft="4.0.0",xqn=new Set(["status","active_stage","phase","completed_at","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase","autopilot","intent_completion_review"]),Oqn=new Set(["status","hat","bolt","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]),Pqn=new Set(["active_stage","phase","iteration","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at","composite","intent_reviewed","autopilot"]),Nqn=new Set(["status","bolt","hat","hat_started_at","completed_at","iteration","visit","scope_reject_attempts"]);Mqn=new Set(["status","bolt","triaged_at","closed_by","resolution","iteration","visit","integrator_attempts","upstream_stage"]),Dqn=new Set(["closed","answered","addressed","rejected"]);Nu("0",fft,Bqn)});var ZD={};Ar(ZD,{GIT_NETWORK_TIMEOUT_MS:()=>Ra,GIT_NONINTERACTIVE_ENV:()=>Aa,addTempWorktree:()=>r3,branchAheadOfOrigin:()=>o3,branchExists:()=>Pt,buildCompareUrl:()=>fpe,checkoutFromBranchOnIntentMain:()=>nBn,cleanupDiscoveryWorktree:()=>aBn,cleanupFixChainWorktree:()=>u3,cleanupIntentWorktrees:()=>KD,cleanupOrphanedStageBranches:()=>a3,cleanupUnitWorktree:()=>xpe,commitAndPushFromWorktree:()=>s3,consolidateStageBranches:()=>Epe,createDiscoveryWorktree:()=>wpe,createFixChainWorktree:()=>Ipe,createIntentBranch:()=>kI,createStageBranch:()=>Spe,createUnitWorktree:()=>Rpe,deleteBranch:()=>YD,deleteStageBranch:()=>Sb,detectPrTool:()=>BD,discoveryBranchName:()=>xI,discoveryWorktreePath:()=>II,ensureOnIntentMain:()=>gpe,ensureOnStageBranch:()=>gr,ensureStageBranch:()=>yb,fetchOrigin:()=>PT,finalizeIntentBranches:()=>Ope,fixChainBranchName:()=>VD,fixChainWorktreePath:()=>Sg,getCurrentBranch:()=>mr,getMainlineBranch:()=>Zo,hasGitRemote:()=>upe,hasNoMergeDebt:()=>HD,isAncestor:()=>Uu,isBranchMerged:()=>Zc,isCurrentWorktreeLocked:()=>eBn,isLiveWorktree:()=>Sft,isMergeInProgress:()=>mb,isOnIntentBranch:()=>Jqn,isOnStageBranch:()=>ype,listIntentBranches:()=>n3,listOrphanDiscreteIntents:()=>ape,markPullRequestReady:()=>hpe,mergeDiscoveryWorktree:()=>kpe,mergeFixChainWorktree:()=>WD,mergeStageBranchForward:()=>bpe,mergeStageBranchIntoMain:()=>GD,mergeUnitWorktree:()=>Ape,openIntentDraftPullRequest:()=>ppe,openPullRequest:()=>wI,openStagePullRequest:()=>Yqn,prepareRevisitBranch:()=>cBn,pushBranchToOrigin:()=>yg,pushFixChainWorktree:()=>dpe,pushStageBranch:()=>zD,pushUnitWorktree:()=>lpe,readFileFromBranch:()=>_pe,reconcileIntentBranches:()=>mpe,reconcileMisroutedStageMerges:()=>Zqn,refsHaveIdenticalTrees:()=>t3,removeTempWorktree:()=>i3,resolveMainlineRef:()=>ope,syncBranchDownstream:()=>spe,uncommittedAgentWork:()=>Tpe,unitBranchExists:()=>cpe,unitSpecInWorktree:()=>$qn,unitWorktreePath:()=>gb,writeOnIntentMain:()=>tBn});import{execFileSync as Kr}from"node:child_process";import{existsSync as io,writeFileSync as rpe,mkdirSync as jD,mkdtempSync as zqn,readFileSync as Gqn,rmSync as ipe}from"node:fs";import{tmpdir as Vqn}from"node:os";import{join as es}from"node:path";function Gt(e,t){return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,env:process.env}).trim()}function ae(e,t){try{return Gt(e,t)}catch{return""}}function Wqn(e){if(!(e instanceof Error))return String(e);let t=e.stderr;return[e.message,t?t.toString():""].join(` +`)}function t3(e,t){let n=ae(["git","rev-parse",`${e}^{tree}`]);if(!n)return!1;let r=ae(["git","rev-parse",`${t}^{tree}`]);return r?n===r:!1}function mb(){if(!ve())return!1;let e=ae(["git","rev-parse","--git-dir"]);if(!e)return!1;let t=e.startsWith("/")?e:es(process.cwd(),e);for(let n of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(io(es(t,n)))return!0;return!1}function HD(e,t){return!!(t3(e,t)||Uu(e,t))}function e3(e,t){try{return Kr(e[0],e.slice(1),{encoding:"utf8",stdio:"pipe",cwd:t,timeout:Ra,env:Aa}).trim()}catch{return""}}function mr(){return ae(["git","rev-parse","--abbrev-ref","HEAD"])}function Pt(e){return ve()?ae(["git","rev-parse","--verify",e])!=="":!1}function spe(e){if(!ve())return{ok:!0,performed:!1,message:"non-git mode"};let t=Zo(),n=`haiku/${e}/main`,r=mr(),i=!1;if(t&&n&&Pt(n)){let s=ae(["git","rev-parse","--verify",`origin/${t}`])?`origin/${t}`:"",o=Pt(t),a=s&&o&&Uu(t,s)&&ae(["git","rev-parse","--verify",t])!==ae(["git","rev-parse","--verify",s]),c=o?a?s:t:s;if(c&&!HD(c,n)){let u=Kqn(c,n,r,`haiku: merge ${c} \u2192 ${n} (pre-cursor sync)`,e);if(!u.ok)return{ok:!1,performed:i,conflictAt:"mainline_to_intent_main",conflictFiles:u.conflictFiles,conflictBranch:n,message:u.message};u.performed&&(i=!0)}}if(n&&Pt(n)&&r&&r!==n&&r.startsWith(`haiku/${e}/`)&&!t3(r,n)){let s=gft(n,`haiku: merge ${n} \u2192 ${r} (pre-cursor sync)`,e);if(!s.ok)return{ok:!1,performed:i,conflictAt:"intent_main_to_stage",conflictFiles:s.conflictFiles,conflictBranch:r,message:s.message};s.performed&&(i=!0)}return{ok:!0,performed:i}}function Kqn(e,t,n,r,i){if(n===t)return gft(e,r,i);try{return Lh(t,o=>qD(["-C",o],e,i,r))}catch(s){return{ok:!1,performed:!1,message:s instanceof Error?s.message:String(s)}}}function qD(e,t,n,r){let i=null;try{Gt(["git",...e,"merge",t,"--no-ff","--no-commit"])}catch(a){i=a}if(!!!ae(["git",...e,"rev-parse","--quiet","--verify","MERGE_HEAD"]))return i?{ok:!1,performed:!1,conflictFiles:[],message:i instanceof Error?i.message:String(i)}:{ok:!0,performed:!1};c3(e,"HEAD",n);let o=ae(["git",...e,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);return o.length>0?{ok:!1,performed:!1,conflictFiles:o,message:`Merge ${t} left conflicts in ${o.length} file(s): ${o.join(", ")}.`}:(Gt(["git",...e,"commit","--no-edit","-m",r]),{ok:!0,performed:!0})}function gft(e,t,n){return qD([],e,n,t)}function Zo(){if(!ve())return"main";let e=ae(["git","symbolic-ref","--short","refs/remotes/origin/HEAD"]);if(e){let n=e.match(/^origin\/(.+)$/);if(n)return n[1]}for(let n of["main","master"])if(ae(["git","rev-parse","--verify",n])||ae(["git","rev-parse","--verify",`origin/${n}`]))return n;return ae(["git","config","--get","init.defaultBranch"])||"main"}function ope(){if(!ve())return"";let e=Zo();return ae(["git","rev-parse","--verify",e])?e:ae(["git","rev-parse","--verify",`origin/${e}`])?`origin/${e}`:""}function PT(){if(!ve())return!1;try{return Kr("git",["fetch","--prune","origin"],{stdio:"pipe",timeout:Ra,env:Aa}),!0}catch{return!1}}function n3(){if(!ve())return[];let e=new Set,t=ae(["git","for-each-ref","--format=%(refname:short)","refs/heads/haiku"]);for(let r of t.split(` `).filter(Boolean)){let i=r.match(/^haiku\/([^/]+)\/main$/);i&&e.add(i[1])}let n=ae(["git","for-each-ref","--format=%(refname:short)","refs/remotes/origin/haiku"]);for(let r of n.split(` -`).filter(Boolean)){let i=r.match(/^origin\/haiku\/([^/]+)\/main$/);i&&e.add(i[1])}return Array.from(e).sort()}function ope(){if(!ve())return[];let e=new Set(e3()),t=new Map;for(let n of["refs/heads/haiku","refs/remotes/origin/haiku"]){let r=ae(["git","for-each-ref","--format=%(refname:short)",n]);for(let i of r.split(` -`).filter(Boolean)){let o=(i.startsWith("origin/")?i.slice(7):i).match(/^haiku\/([^/]+)\/(.+)$/);if(!o)continue;let[,a,c]=o;if(c==="main"||e.has(a))continue;t.has(a)||t.set(a,[]);let u=t.get(a)??[],l=`haiku/${a}/${c}`;u.includes(l)||u.push(l)}}return Array.from(t.entries()).map(([n,r])=>({slug:n,branches:r})).sort((n,r)=>n.slug.localeCompare(r.slug))}function Zc(e,t){if(!ve())return!1;let n=[t,`origin/${t}`],r=ae(["git","rev-parse","--verify",e])||ae(["git","rev-parse","--verify",`origin/${e}`]);if(!r)return!1;for(let o of n){let a=ae(["git","rev-parse","--verify",o]);if(a)try{return Kr("git",["merge-base","--is-ancestor",r,a],{stdio:"ignore"}),!0}catch{}}let i=qD(),s=e.startsWith("origin/")?e.slice(7):e;if(i==="gh"){let o=ae(["gh","pr","list","--head",s,"--base",t,"--state","merged","--json","number","--limit","1"]);if(o&&o.trim()!=="[]")return!0}else if(i==="glab"){let o=ae(["glab","mr","list","--source-branch",s,"--target-branch",t,"--state","merged","--per-page","1"]);if(o&&/^!(\d+)\b/m.test(o))return!0}return!1}function t3(e,t="haiku-repair",n=!1){if(!ve())throw new Error("not a git repo");let r=es("/tmp",`${t}-${Date.now()}-${Math.floor(Math.random()*1e6)}`),i=ae(["git","rev-parse","--verify",e]),s=ae(["git","rev-parse","--verify",`origin/${e}`]),o;if(n?o=s?`origin/${e}`:i?e:"":o=i?e:s?`origin/${e}`:"",!o)throw new Error(`branch '${e}' not found locally or on origin`);return Gt(["git","worktree","add","--detach",r,o]),r}function n3(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function r3(e,t,n){if(!ve())return{committed:!1,pushed:!1,pushError:"not a git repo"};if(ae(["git","-C",e,"add","-A"]),!ae(["git","-C",e,"status","--porcelain"]))return{committed:!1,pushed:!1};try{Kr("git",["-C",e,"commit","-m",n],{stdio:"pipe"})}catch(a){return{committed:!1,pushed:!1,pushError:a instanceof Error?a.message:String(a)}}let i=()=>{try{return Kr("git",["-C",e,"push","origin",`HEAD:refs/heads/${t}`],{stdio:"pipe",timeout:Ra,env:Aa}),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}},s=i();if(s.ok)return{committed:!0,pushed:!0};if(/non-fast-forward|fetch first|behind the remote/i.test(s.error??"")){QK(["git","-C",e,"fetch","origin",t]);try{Kr("git",["-C",e,"rebase",`origin/${t}`],{stdio:"pipe"})}catch(c){return ae(["git","-C",e,"rebase","--abort"]),{committed:!0,pushed:!1,pushError:`non-fast-forward; rebase onto origin/${t} failed: ${c instanceof Error?c.message:String(c)}`}}let a=i();return a.ok?{committed:!0,pushed:!0}:{committed:!0,pushed:!1,pushError:a.error}}return{committed:!0,pushed:!1,pushError:s.error}}function qD(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function wI(e,t,n,r,i){let s=qD();if(!s)return{ok:!1,error:"no PR tool (gh/glab) found on PATH"};let o=i?.draft===!0;try{if(s==="gh"){let d=ae(["gh","pr","list","--head",e,"--state","open","--json","url","--jq",".[0].url"]);if(d)return{ok:!0,url:d};let f=["pr","create"];return o&&f.push("--draft"),f.push("--base",t,"--head",e,"--title",n,"--body",r),{ok:!0,url:Kr("gh",f,{encoding:"utf8",timeout:Ra,env:Aa}).trim()}}let c=QK(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=QK(["glab","mr","view",d,"--output","json"]);if(f)try{let p=JSON.parse(f);if(p.web_url)return{ok:!0,url:p.web_url}}catch{}}let u=["mr","create"];return o&&u.push("--draft"),u.push("--target-branch",t,"--source-branch",e,"--title",n,"--description",r),{ok:!0,url:Kr("glab",u,{encoding:"utf8",timeout:Ra,env:Aa}).trim()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}function ape(e,t){if(!ve())return{local:!1,remote:!1};let n=`haiku/${e}/${t}`,r=!!ae(["git","branch","--list",n])?.trim();ae(["git","fetch","origin",n]);let i=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${n}`])?.trim();return{local:r,remote:i}}function cpe(){return ve()?!!ae(["git","remote"])?.trim():!1}function upe(e,t){if(!ve())return;let n=gb(e,t);if(!io(n))return;let r=`haiku/${e}/${t}`;try{ae(["git","-C",n,"add","-A"]);let i=ae(["git","-C",n,"status","--porcelain"]);i&&i.trim().length>0&&ae(["git","-C",n,"commit","-m",`haiku: checkpoint ${t}`]),Kr("git",["-C",n,"push","origin",`HEAD:refs/heads/${r}`],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}function lpe(e,t,n){if(!ve())return;let r=Sg(e,t,n);if(!io(r))return;let i=GD(e,t,n);try{ae(["git","-C",r,"add","-A"]);let s=ae(["git","-C",r,"status","--porcelain"]);s&&s.trim().length>0&&ae(["git","-C",r,"commit","-m",`haiku: checkpoint fix-chain ${n}`]),Kr("git",["-C",r,"push","origin",`HEAD:refs/heads/${i}`],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}function yg(e){try{return Kr("git",["push","-u","origin",e],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{ok:!0}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}function dpe(e,t){let n="";try{n=Kr("git",["remote","get-url","origin"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{return null}if(!n)return null;let r="",i="",s=n.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(s)r=s[1],i=s[2];else try{let d=new URL(n);r=d.hostname,i=d.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let o=i.split("/").filter(Boolean);if(o.length<2)return null;let a=o[0],c=o.slice(1).join("/"),u=encodeURIComponent(e),l=encodeURIComponent(t);return r==="github.com"?`https://github.com/${a}/${c}/compare/${l}...${u}?expand=1`:r==="gitlab.com"?`https://gitlab.com/${a}/${c}/-/merge_requests/new?merge_request%5Bsource_branch%5D=${u}&merge_request%5Btarget_branch%5D=${l}`:null}function Yqn(e){let t=`haiku/${e.slug}/${e.stage}`,n=`haiku/${e.slug}/main`,r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug} \u2014 stage ${e.stage} review`,i=e.body??`Stage \`${e.stage}\` is ready for review on intent \`${e.slug}\`. +`).filter(Boolean)){let i=r.match(/^origin\/haiku\/([^/]+)\/main$/);i&&e.add(i[1])}return Array.from(e).sort()}function ape(){if(!ve())return[];let e=new Set(n3()),t=new Map;for(let n of["refs/heads/haiku","refs/remotes/origin/haiku"]){let r=ae(["git","for-each-ref","--format=%(refname:short)",n]);for(let i of r.split(` +`).filter(Boolean)){let o=(i.startsWith("origin/")?i.slice(7):i).match(/^haiku\/([^/]+)\/(.+)$/);if(!o)continue;let[,a,c]=o;if(c==="main"||e.has(a))continue;t.has(a)||t.set(a,[]);let u=t.get(a)??[],l=`haiku/${a}/${c}`;u.includes(l)||u.push(l)}}return Array.from(t.entries()).map(([n,r])=>({slug:n,branches:r})).sort((n,r)=>n.slug.localeCompare(r.slug))}function Zc(e,t){if(!ve())return!1;let n=[t,`origin/${t}`],r=ae(["git","rev-parse","--verify",e])||ae(["git","rev-parse","--verify",`origin/${e}`]);if(!r)return!1;for(let o of n){let a=ae(["git","rev-parse","--verify",o]);if(a)try{return Kr("git",["merge-base","--is-ancestor",r,a],{stdio:"ignore"}),!0}catch{}}let i=BD(),s=e.startsWith("origin/")?e.slice(7):e;if(i==="gh"){let o=ae(["gh","pr","list","--head",s,"--base",t,"--state","merged","--json","number","--limit","1"]);if(o&&o.trim()!=="[]")return!0}else if(i==="glab"){let o=ae(["glab","mr","list","--source-branch",s,"--target-branch",t,"--state","merged","--per-page","1"]);if(o&&/^!(\d+)\b/m.test(o))return!0}return!1}function r3(e,t="haiku-repair",n=!1){if(!ve())throw new Error("not a git repo");let r=es("/tmp",`${t}-${Date.now()}-${Math.floor(Math.random()*1e6)}`),i=ae(["git","rev-parse","--verify",e]),s=ae(["git","rev-parse","--verify",`origin/${e}`]),o;if(n?o=s?`origin/${e}`:i?e:"":o=i?e:s?`origin/${e}`:"",!o)throw new Error(`branch '${e}' not found locally or on origin`);return Gt(["git","worktree","add","--detach",r,o]),r}function i3(e){e&&io(e)&&ae(["git","worktree","remove","--force",e])}function s3(e,t,n){if(!ve())return{committed:!1,pushed:!1,pushError:"not a git repo"};if(ae(["git","-C",e,"add","-A"]),!ae(["git","-C",e,"status","--porcelain"]))return{committed:!1,pushed:!1};try{Kr("git",["-C",e,"commit","-m",n],{stdio:"pipe"})}catch(a){return{committed:!1,pushed:!1,pushError:a instanceof Error?a.message:String(a)}}let i=()=>{try{return Kr("git",["-C",e,"push","origin",`HEAD:refs/heads/${t}`],{stdio:"pipe",timeout:Ra,env:Aa}),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}},s=i();if(s.ok)return{committed:!0,pushed:!0};if(/non-fast-forward|fetch first|behind the remote/i.test(s.error??"")){e3(["git","-C",e,"fetch","origin",t]);try{Kr("git",["-C",e,"rebase",`origin/${t}`],{stdio:"pipe"})}catch(c){return ae(["git","-C",e,"rebase","--abort"]),{committed:!0,pushed:!1,pushError:`non-fast-forward; rebase onto origin/${t} failed: ${c instanceof Error?c.message:String(c)}`}}let a=i();return a.ok?{committed:!0,pushed:!0}:{committed:!0,pushed:!1,pushError:a.error}}return{committed:!0,pushed:!1,pushError:s.error}}function BD(){return ae(["which","gh"])?"gh":ae(["which","glab"])?"glab":null}function wI(e,t,n,r,i){let s=BD();if(!s)return{ok:!1,error:"no PR tool (gh/glab) found on PATH"};let o=i?.draft===!0;try{if(s==="gh"){let d=ae(["gh","pr","list","--head",e,"--state","open","--json","url","--jq",".[0].url"]);if(d)return{ok:!0,url:d};let f=["pr","create"];return o&&f.push("--draft"),f.push("--base",t,"--head",e,"--title",n,"--body",r),{ok:!0,url:Kr("gh",f,{encoding:"utf8",timeout:Ra,env:Aa}).trim()}}let c=e3(["glab","mr","list","--source-branch",e,"--state","opened","--per-page","1"]).match(/^!(\d+)\b/m);if(c){let d=c[1],f=e3(["glab","mr","view",d,"--output","json"]);if(f)try{let p=JSON.parse(f);if(p.web_url)return{ok:!0,url:p.web_url}}catch{}}let u=["mr","create"];return o&&u.push("--draft"),u.push("--target-branch",t,"--source-branch",e,"--title",n,"--description",r),{ok:!0,url:Kr("glab",u,{encoding:"utf8",timeout:Ra,env:Aa}).trim()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}function cpe(e,t){if(!ve())return{local:!1,remote:!1};let n=`haiku/${e}/${t}`,r=!!ae(["git","branch","--list",n])?.trim();ae(["git","fetch","origin",n]);let i=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${n}`])?.trim();return{local:r,remote:i}}function upe(){return ve()?!!ae(["git","remote"])?.trim():!1}function lpe(e,t){if(!ve())return;let n=gb(e,t);if(!io(n))return;let r=`haiku/${e}/${t}`;try{ae(["git","-C",n,"add","-A"]);let i=ae(["git","-C",n,"status","--porcelain"]);i&&i.trim().length>0&&ae(["git","-C",n,"commit","-m",`haiku: checkpoint ${t}`]),Kr("git",["-C",n,"push","origin",`HEAD:refs/heads/${r}`],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}function dpe(e,t,n){if(!ve())return;let r=Sg(e,t,n);if(!io(r))return;let i=VD(e,t,n);try{ae(["git","-C",r,"add","-A"]);let s=ae(["git","-C",r,"status","--porcelain"]);s&&s.trim().length>0&&ae(["git","-C",r,"commit","-m",`haiku: checkpoint fix-chain ${n}`]),Kr("git",["-C",r,"push","origin",`HEAD:refs/heads/${i}`],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}function yg(e){try{return Kr("git",["push","-u","origin",e],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{ok:!0}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}function fpe(e,t){let n="";try{n=Kr("git",["remote","get-url","origin"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{return null}if(!n)return null;let r="",i="",s=n.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(s)r=s[1],i=s[2];else try{let d=new URL(n);r=d.hostname,i=d.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let o=i.split("/").filter(Boolean);if(o.length<2)return null;let a=o[0],c=o.slice(1).join("/"),u=encodeURIComponent(e),l=encodeURIComponent(t);return r==="github.com"?`https://github.com/${a}/${c}/compare/${l}...${u}?expand=1`:r==="gitlab.com"?`https://gitlab.com/${a}/${c}/-/merge_requests/new?merge_request%5Bsource_branch%5D=${u}&merge_request%5Btarget_branch%5D=${l}`:null}function Yqn(e){let t=`haiku/${e.slug}/${e.stage}`,n=`haiku/${e.slug}/main`,r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug} \u2014 stage ${e.stage} review`,i=e.body??`Stage \`${e.stage}\` is ready for review on intent \`${e.slug}\`. -Merging this PR signals approval to the H\xB7AI\xB7K\xB7U workflow engine.`;if(!ve())return{branch:t,base:n,message:"This is not a git repo \u2014 stage progression is driven by per-unit signature state, not a git merge. Nothing to open."};let s=yg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=wI(t,n,r,i);if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Stage PR opened: ${c.url}`,o;o.prError=c.error}let a=dpe(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage branch \`${t}\` is pushed. The gh/glab CLI didn't create the PR (${o.prError??"no tool found"}). Click here to open the MR manually: ${a}`:`Failed to push \`${t}\` (${s.error}). After resolving the push, open the MR at: ${a}`,o):(o.message=s.ok?`Stage branch \`${t}\` is pushed but no provider-specific compare URL could be built (origin host not recognised). Open the MR manually from \`${t}\` into \`${n}\` via your provider's web UI.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built. Resolve the push, then open the MR from \`${t}\` into \`${n}\` via your provider's web UI.`,o)}function fpe(e){let t=`haiku/${e.slug}/main`,n=Zo(),r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug}`,i=e.body??`Intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the work can be watched as stages land. The engine will mark it ready when the intent completes.`;if(!ve())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=yg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=wI(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft PR opened: ${c.url}`,o;o.prError=c.error}let a=dpe(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Intent main branch \`${t}\` is pushed. The provider CLI didn't create the draft PR (${o.prError??"no tool found"}). Click here to open one manually: ${a}`:`Failed to push \`${t}\` (${s.error}). After resolving, open the draft PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function ppe(e){if(!e)return{ok:!1,error:"empty url"};let t;try{t=new URL(e)}catch{return{ok:!1,error:`not a valid URL: ${e}`}}try{if(t.hostname.includes("github"))return Kr("gh",["pr","ready",e],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{ok:!0};if(t.hostname.includes("gitlab")){let n=t.pathname.match(/\/merge_requests\/(\d+)/);return n?(Kr("glab",["mr","update",n[1],"--ready"],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{ok:!0}):{ok:!1,error:"could not parse MR iid from URL"}}return{ok:!1,error:`unrecognised provider host: ${t.hostname}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}function BD(e,t){if(!ve())return{ok:!0,skipped:!0};if(process.env.HAIKU_NO_AUTO_PUSH==="1")return{ok:!0,skipped:!0};let n=`haiku/${e}/${t}`;return Pt(n)?ae(["git","remote","get-url","origin"])?i3(n)?yg(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function i3(e){if(!ve()||!ae(["git","rev-parse",e]))return!1;if(!ae(["git","rev-parse",`origin/${e}`]))return!0;let r=ae(["git","rev-list","--count",`origin/${e}..${e}`]);return r?Number.parseInt(r,10)>0:!1}function Zqn(e,t){if(!ve())return[];let n=[],r=Zo(),i=`haiku/${e}/main`;if(!r||!Pt(i))return n;for(let s of t){let o=`haiku/${e}/${s}`,a={stage:s,stageBranch:o,intentMain:i,mainline:r,misrouted:!1,reconciled:!1,pushed:!1},c=ae(["git","rev-parse","--verify",o])||ae(["git","rev-parse","--verify",`origin/${o}`]);if(!c)continue;let u=ae(["git","rev-parse","--verify",i])||ae(["git","rev-parse","--verify",`origin/${i}`]);if(!u||Uu(c,u)&&pft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Uu(c,l)||pft(c,l)<=0)continue;if(a.misrouted=!0,!Uu(u,l)){a.error=`Stage \`${o}\` was merged into \`${r}\` (the repo default) instead of \`${i}\`, but \`${i}\` has commits that aren't on \`${r}\` \u2014 fast-forward isn't safe. Resolve manually: \`git checkout ${i} && git merge ${r}\` (or \`origin/${r}\`), resolve any conflicts, then re-run /haiku:haiku-pickup.`,n.push(a);continue}let f=mr(),p="";try{if(f!==i)try{Kr("git",["checkout",i],{stdio:"pipe"}),p=f}catch(h){a.error=`Could not check out \`${i}\` to fast-forward (${h instanceof Error?h.message:String(h)}). Reconcile manually: \`git checkout ${i} && git merge --ff-only origin/${r}\`.`,n.push(a);continue}try{Kr("git",["merge","--ff-only",`origin/${r}`],{stdio:"pipe"}),a.reconciled=!0}catch{try{Kr("git",["merge","--ff-only",r],{stdio:"pipe"}),a.reconciled=!0}catch(h){a.error=`Fast-forward of \`${i}\` to \`${r}\` failed: ${h instanceof Error?h.message:String(h)}. Reconcile manually: \`git checkout ${i} && git merge origin/${r}\`, resolve any conflicts, then re-run /haiku:haiku-pickup.`}}if(a.reconciled){let h=yg(i);a.pushed=h.ok,h.ok||(a.error=`Reconciled \`${i}\` locally but push to origin failed: ${h.error}. The next agent on this branch needs to push manually.`)}}catch(h){a.error=`Misrouted-merge reconciliation threw: ${h instanceof Error?h.message:String(h)}`}finally{if(p)try{Kr("git",["checkout",p],{stdio:"pipe"})}catch{}}n.push(a)}return n}function hpe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!ve())return t;PT();let n=`haiku/${e}/main`,r=Zo();if(!Pt(n)||!r)return t;let i=mr(),s=ae(["git","rev-parse","--verify",n]),o=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(s&&o&&s!==o)if(Uu(s,o))if(i===n)try{Kr("git",["merge","--ff-only",`origin/${r}`],{stdio:"pipe"}),t.intentMainFastForwarded=!0}catch(u){t.error=`Failed to FF ${n} from origin/${r}: ${u instanceof Error?u.message:String(u)}`}else try{Kr("git",["fetch",".",`origin/${r}:${n}`],{stdio:"pipe"}),t.intentMainFastForwarded=!0}catch(u){t.error=`Failed to FF ${n} from origin/${r} via refspec: ${u instanceof Error?u.message:String(u)}`}else Uu(o,s)||(t.error=`${n} has diverged from origin/${r} \u2014 fast-forward isn't safe. Resolve manually.`);let a=`haiku/${e}/`;if(i.startsWith(a)&&i!==n){let u=ae(["git","rev-parse","--verify",n])||s,l=ae(["git","rev-parse","--verify",i]);if(l&&u&&l!==u&&Uu(l,u))try{Kr("git",["merge","--ff-only",n],{stdio:"pipe"}),t.stageBranchFastForwarded=!0}catch(d){let f=t.error?`${t.error} -`:"";t.error=`${f}Failed to fast-forward ${i} from ${n}: ${d instanceof Error?d.message:String(d)}`}}return t}function Uu(e,t){if(!e||!t)return!1;try{return Kr("git",["merge-base","--is-ancestor",e,t],{stdio:"ignore"}),!0}catch{return!1}}function pft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function Jqn(e){return mr()===`haiku/${e}/main`}function mpe(e){if(!ve())return!0;let t=`haiku/${e}/main`;if(!Pt(t)||mr()===t)return!0;try{return OT(["checkout",t]),!0}catch{return!1}}function gpe(e,t){return mr()===`haiku/${e}/${t}`}function gft(e,t){if(ae(["git","rev-parse","--verify",e]))mr()!==e&&OT(["checkout",e]);else if(t)OT(["checkout","-b",e,t]);else try{OT(["checkout","-b",e])}catch{}return e}function kI(e,t){let n=`haiku/${e}/main`;return!ve()||Pt(n)||Gt(t?["git","branch",n,t]:["git","branch",n]),n}function ype(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!ve())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return gft(`haiku/${e}/${t}`,n)}function Spe(e,t,n){if(!ve())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=mr();try{Gt(["git","rev-parse","--verify",r]),Gt(["git","rev-parse","--verify",i])}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}let o=a=>{let c=a?["-C",a]:[],u=HD(c,r,e,`haiku: merge forward ${t} \u2192 ${n}`);if(u.ok)return{conflictFiles:[]};if(u.conflictFiles&&u.conflictFiles.length>0)return{conflictFiles:u.conflictFiles};throw ae(["git",...c,"merge","--abort"]),new Error(u.message||`merge ${r} \u2192 ${i} failed`)};try{let a=s===i?o():Lh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return ae(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function zD(e,t){if(!ve())return{success:!0,message:"no git",noop:!0};let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`,i=`haiku: merge stage ${t} into main`,s=mr();try{let o=ae(["git","rev-parse","--verify",n]),a=ae(["git","rev-parse","--verify",`origin/${n}`]);if(!o&&!a)return{success:!0,noop:!0,message:`stage branch ${n} is missing locally and on origin \u2014 presumed merged-and-deleted in pre-v4 (3.x) workflow; treating as already merged`};if(Gt(["git","rev-parse","--verify",n]),Gt(["git","rev-parse","--verify",r]),jD(n,r))return{success:!0,noop:!0,message:`${n} has no merge debt against ${r} (trees match or stage is already an ancestor of main) \u2014 skipping no-op merge`};let c=mr(),u=f=>{let p=f?["-C",f]:[],h=()=>ae(["git",...p,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean),m=y=>{if(y.length===0)return[];o3(p,"HEAD",e);let b=h();return b.length===0&&ae(["git",...p,"commit","--no-edit","-m",i]),b},g=()=>{Gt(["git",...p,"merge",n,"--no-ff","--no-edit","-m",i])};try{return g(),{conflictFiles:[]}}catch(y){let b=h();if(b.length>0)return{conflictFiles:m(b)};let S=Wqn(y);if(!(/untracked working tree files would be overwritten/i.test(S)||/Please move or remove them before you merge/i.test(S)))throw ae(["git",...p,"merge","--abort"]),y;ae(["git",...p,"merge","--abort"]);let _=ae(["git",...p,"stash","push","-u","-m","haiku: pre-merge autostash (untracked clobber guard)"]);if(!/Saved working directory/i.test(_))throw y;try{g()}catch(T){let R=h();if(ae(["git",...p,"stash","pop"]),R.length>0)return{conflictFiles:m(R)};throw ae(["git",...p,"merge","--abort"]),T}return ae(["git",...p,"stash","pop"]),{conflictFiles:m(h())}}},l=f=>{let p=u(f);if(p.conflictFiles.length>0)return{conflictFiles:p.conflictFiles,postMergeMigration:{migrated:!1,unitsMigrated:0}};let h={migrated:!1,unitsMigrated:0};try{h=Xqn(e,f)}catch(m){Qqn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){UD(n);try{OT(["checkout",r])}catch(f){let p=f instanceof Error?f.message:String(f);return{success:!1,message:`cannot switch primary worktree from '${n}' to '${r}' for stage merge: ${p}`}}d=l()}else d=Lh(r,f=>l(f));return d.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:d.conflictFiles,message:`Merge ${n} \u2192 ${r} left ${d.conflictFiles.length} conflicted file(s): ${d.conflictFiles.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the stage completion.`}:d.postMergeMigration.migrated?{success:!0,message:`merged ${n} \u2192 ${r}; post-merge re-migration cleaned up v3-shape frontmatter on ${d.postMergeMigration.unitsMigrated} unit(s) brought back through the merge`}:{success:!0,message:`merged ${n} \u2192 ${r}`}}catch(o){return s&&Pt(s)&&mr()!==s&&!mb()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function Xqn(e,t){let n=t??Br(),r=es(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!JK(r))return{migrated:!1,unitsMigrated:0};let i=VK({intentDir:r,repoRoot:n},"0","4.0.0");if(i.steps>0)try{let s=t?["-C",t]:[];Gt(["git",...s,"add","-A"]),Gt(["git",...s,"commit","-m",`haiku: post-merge v3\u2192v4 cleanup for ${e}`,"--allow-empty"])}catch{}return{migrated:i.steps>0,unitsMigrated:i.details.units_migrated}}function Qqn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function bpe(e,t){let n=`haiku/${e}/main`;if(!ve())return{branch:n,success:!0,message:"no git"};if(t.length===0)return{branch:n,success:!0,message:"no stages"};try{let r=`haiku/${e}/${t[t.length-1]}`;if(Gt(["git","rev-parse","--verify",r]),!Pt(n))return{branch:gft(n,r),success:!0,message:`created ${n} from ${r}`};let i=a=>{try{return Gt(["git","-C",a,"merge",r,"--no-ff","--no-edit","-m","haiku: consolidate discrete stages into main"]),{conflictFiles:[]}}catch(c){let u=ae(["git","-C",a,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(u.length===0)throw ae(["git","-C",a,"merge","--abort"]),c;return{conflictFiles:u}}},o=mr()===n?i(Br()):Lh(n,a=>i(a));return o.conflictFiles.length>0?{branch:n,success:!1,isConflict:!0,conflictFiles:o.conflictFiles,message:`merge conflict in ${o.conflictFiles.length} file(s) while consolidating ${r} into ${n}: ${o.conflictFiles.join(", ")}. Resolve the conflicts on '${n}' (edit files, \`git add\`, \`git commit\`), then retry.`}:{branch:n,success:!0,message:`merged ${r} into ${n}`}}catch(r){return ae(["git","merge","--abort"]),{branch:n,success:!1,message:r instanceof Error?r.message:String(r)}}}function Epe(e,t){if(!ve())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function gb(e,t){return es(Br(),".haiku","worktrees",e,t)}function Sg(e,t,n){return es(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function GD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function $qn(e,t,n){let r=gb(e,n),i=n.endsWith(".md")?n:`${n}.md`;return es(r,".haiku","intents",e,"stages",t,"units",i)}function yb(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!ve()||Pt(n)||(Pt(r)||kI(e),NT(e),ae(["git","branch",n,r])),n}function OT(e){Gt(["git",...e])}function eBn(){try{let e=Kr("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}).trim();if(!e)return!1;let t=e.startsWith("/")?e:es(process.cwd(),e),n=es(t,"locked");return io(n)}catch{return!1}}function gr(e,t){if(!ve())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Pt(r)&&yb(e,t);let i=t&&Pt(r)?r:n,s=mr();if(!Pt(i)){let l=Zo();if(l&&Pt(l)&&s!==l){let d=Tpe(l);if(d&&d!==process.cwd())return{ok:!1,branch:s,message:`target branch '${i}' not yet created, and the fallback (repo mainline '${l}') is checked out at another worktree '${d}'. Move that checkout to a different branch or remove the worktree (\`git worktree remove --force ${d}\`), then retry.`,switched:!1,target_branch:l};try{return Gt(["git","checkout",l]),{ok:!0,branch:l,message:`target branch '${i}' not yet created \u2014 fell back to repo mainline '${l}' for safe branch creation`,switched:!0}}catch(f){let p=f instanceof Error?f.message:String(f);if(p.includes("would be overwritten by checkout")||p.includes("Please commit your changes or stash them")){let m=UD(s);if(m.ok)try{return Gt(["git","checkout",l]),{ok:!0,branch:l,message:`target branch '${i}' not yet created \u2014 auto-committed WIP on '${s}' (${m.committed_files.length} file(s)) and fell back to repo mainline '${l}'`,switched:!0}}catch(g){return{ok:!1,branch:s,message:`auto-committed WIP on '${s}' but retry fallback to '${l}' still failed: ${g instanceof Error?g.message:String(g)}`,switched:!1,target_branch:l}}}return{ok:!1,branch:s,message:`target branch '${i}' not yet created, and failed to fall back to mainline '${l}': ${p}`,switched:!1,target_branch:l}}}return{ok:!0,branch:i,message:`target branch '${i}' not yet created \u2014 skipping enforcement`,switched:!1}}if(s===i)return{ok:!0,branch:i,message:"already on target",switched:!1};let o=`haiku/${e}/`;if(!s.startsWith(o)&&Uu(i,"HEAD")&&!Uu("HEAD",i))return{ok:!0,branch:s,message:`target branch '${i}' has been merged into HEAD ('${s}') \u2014 no checkout needed`,switched:!1};let c=ae(["git","rev-parse","--git-dir"]);if(c){for(let l of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"])if(io(es(c,l)))return{ok:!1,branch:s,message:`A git operation is in progress (${l} present). Resolve the conflicted files, then \`git add\` + \`git commit\` to finish the merge (or \`git merge --abort\` to back out) before stage-branch enforcement can realign the checkout. While ${l} is present the workflow-file guardrails are SUSPENDED \u2014 both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions \u2014 so you can resolve directly; the schema-safe internal tools still validate. Engine-owned feedback/unit YAML: the more-advanced (terminal/more-iterations/later) state wins, but KEEP feedback that exists only on this not-yet-merged stage branch.`,switched:!1,block:"merge_in_progress",target_branch:i}}if(ae(["git","status","--porcelain"])){let l=UD(s);if(!l.ok)return{ok:!1,branch:s,message:`Pre-checkout auto-commit on '${s}' failed: ${l.message}. Resolve the working tree manually before retrying.`,switched:!1,block:"dirty_tree",target_branch:i}}if(i===r&&Pt(n)){let l=ae(["git","rev-list","--count",`${r}..${n}`]);if(l&&Number.parseInt(l,10)>0&&!$K(r,n)){try{Gt(["git","checkout",r])}catch(p){let h=p instanceof Error?p.message:String(p);if(h.includes("would be overwritten by checkout")||h.includes("Please commit your changes or stash them")){let g=UD(s);if(g.ok)try{Gt(["git","checkout",r])}catch(y){return{ok:!1,branch:mr()||s,message:`auto-committed WIP on '${s}' but retry checkout of '${r}' failed: ${y instanceof Error?y.message:String(y)}`,switched:!1,target_branch:r}}else return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${r}' and auto-commit failed: ${g.message}`,switched:!1,block:"dirty_tree",dirty_files:hft(h),target_branch:r}}else return{ok:!1,branch:mr()||s,message:`failed to checkout '${r}' before merging main: ${h}`,switched:!1,target_branch:r}}let d=HD([],n,e,`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`);if(d.ok)return{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0};let f=d.conflictFiles??[];return{ok:!1,branch:r,message:f.length>0?`Merge intent-main \u2192 stage '${t}' left ${f.length} conflicted file(s): ${f.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. +Merging this PR signals approval to the H\xB7AI\xB7K\xB7U workflow engine.`;if(!ve())return{branch:t,base:n,message:"This is not a git repo \u2014 stage progression is driven by per-unit signature state, not a git merge. Nothing to open."};let s=yg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=wI(t,n,r,i);if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Stage PR opened: ${c.url}`,o;o.prError=c.error}let a=fpe(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Stage branch \`${t}\` is pushed. The gh/glab CLI didn't create the PR (${o.prError??"no tool found"}). Click here to open the MR manually: ${a}`:`Failed to push \`${t}\` (${s.error}). After resolving the push, open the MR at: ${a}`,o):(o.message=s.ok?`Stage branch \`${t}\` is pushed but no provider-specific compare URL could be built (origin host not recognised). Open the MR manually from \`${t}\` into \`${n}\` via your provider's web UI.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built. Resolve the push, then open the MR from \`${t}\` into \`${n}\` via your provider's web UI.`,o)}function ppe(e){let t=`haiku/${e.slug}/main`,n=Zo(),r=e.title??`H\xB7AI\xB7K\xB7U: ${e.slug}`,i=e.body??`Intent \`${e.slug}\` is in flight. The H\xB7AI\xB7K\xB7U engine opened this PR as a draft so the work can be watched as stages land. The engine will mark it ready when the intent completes.`;if(!ve())return{branch:t,base:n,message:"Not a git repo \u2014 no draft PR opened."};let s=yg(t),o={branch:t,base:n,pushed:s.ok,pushError:s.ok?void 0:s.error,message:""};if(s.ok){let c=wI(t,n,r,i,{draft:!0});if(c.ok&&c.url)return o.createdUrl=c.url,o.message=`Draft PR opened: ${c.url}`,o;o.prError=c.error}let a=fpe(t,n);return a?(o.compareUrl=a,o.message=s.ok?`Intent main branch \`${t}\` is pushed. The provider CLI didn't create the draft PR (${o.prError??"no tool found"}). Click here to open one manually: ${a}`:`Failed to push \`${t}\` (${s.error}). After resolving, open the draft PR at: ${a}`,o):(o.message=s.ok?`Pushed \`${t}\` but no compare URL could be built (origin host not recognised). Open the draft PR manually from \`${t}\` into \`${n}\`.`:`Failed to push \`${t}\` (${s.error}) and no compare URL could be built.`,o)}function hpe(e){if(!e)return{ok:!1,error:"empty url"};let t;try{t=new URL(e)}catch{return{ok:!1,error:`not a valid URL: ${e}`}}try{if(t.hostname.includes("github"))return Kr("gh",["pr","ready",e],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{ok:!0};if(t.hostname.includes("gitlab")){let n=t.pathname.match(/\/merge_requests\/(\d+)/);return n?(Kr("glab",["mr","update",n[1],"--ready"],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{ok:!0}):{ok:!1,error:"could not parse MR iid from URL"}}return{ok:!1,error:`unrecognised provider host: ${t.hostname}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}function zD(e,t){if(!ve())return{ok:!0,skipped:!0};if(process.env.HAIKU_NO_AUTO_PUSH==="1")return{ok:!0,skipped:!0};let n=`haiku/${e}/${t}`;return Pt(n)?ae(["git","remote","get-url","origin"])?o3(n)?yg(n):{ok:!0,skipped:!0}:{ok:!0,skipped:!0}:{ok:!0,skipped:!0}}function o3(e){if(!ve()||!ae(["git","rev-parse",e]))return!1;if(!ae(["git","rev-parse",`origin/${e}`]))return!0;let r=ae(["git","rev-list","--count",`origin/${e}..${e}`]);return r?Number.parseInt(r,10)>0:!1}function Zqn(e,t){if(!ve())return[];let n=[],r=Zo(),i=`haiku/${e}/main`;if(!r||!Pt(i))return n;for(let s of t){let o=`haiku/${e}/${s}`,a={stage:s,stageBranch:o,intentMain:i,mainline:r,misrouted:!1,reconciled:!1,pushed:!1},c=ae(["git","rev-parse","--verify",o])||ae(["git","rev-parse","--verify",`origin/${o}`]);if(!c)continue;let u=ae(["git","rev-parse","--verify",i])||ae(["git","rev-parse","--verify",`origin/${i}`]);if(!u||Uu(c,u)&&hft(c,u)>0)continue;let l=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(!l||!Uu(c,l)||hft(c,l)<=0)continue;if(a.misrouted=!0,!Uu(u,l)){a.error=`Stage \`${o}\` was merged into \`${r}\` (the repo default) instead of \`${i}\`, but \`${i}\` has commits that aren't on \`${r}\` \u2014 fast-forward isn't safe. Resolve manually: \`git checkout ${i} && git merge ${r}\` (or \`origin/${r}\`), resolve any conflicts, then re-run /haiku:haiku-pickup.`,n.push(a);continue}let f=mr(),p="";try{if(f!==i)try{Kr("git",["checkout",i],{stdio:"pipe"}),p=f}catch(h){a.error=`Could not check out \`${i}\` to fast-forward (${h instanceof Error?h.message:String(h)}). Reconcile manually: \`git checkout ${i} && git merge --ff-only origin/${r}\`.`,n.push(a);continue}try{Kr("git",["merge","--ff-only",`origin/${r}`],{stdio:"pipe"}),a.reconciled=!0}catch{try{Kr("git",["merge","--ff-only",r],{stdio:"pipe"}),a.reconciled=!0}catch(h){a.error=`Fast-forward of \`${i}\` to \`${r}\` failed: ${h instanceof Error?h.message:String(h)}. Reconcile manually: \`git checkout ${i} && git merge origin/${r}\`, resolve any conflicts, then re-run /haiku:haiku-pickup.`}}if(a.reconciled){let h=yg(i);a.pushed=h.ok,h.ok||(a.error=`Reconciled \`${i}\` locally but push to origin failed: ${h.error}. The next agent on this branch needs to push manually.`)}}catch(h){a.error=`Misrouted-merge reconciliation threw: ${h instanceof Error?h.message:String(h)}`}finally{if(p)try{Kr("git",["checkout",p],{stdio:"pipe"})}catch{}}n.push(a)}return n}function mpe(e){let t={intentMainFastForwarded:!1,stageBranchFastForwarded:!1};if(!ve())return t;PT();let n=`haiku/${e}/main`,r=Zo();if(!Pt(n)||!r)return t;let i=mr(),s=ae(["git","rev-parse","--verify",n]),o=ae(["git","rev-parse","--verify",`origin/${r}`])||ae(["git","rev-parse","--verify",r]);if(s&&o&&s!==o)if(Uu(s,o))if(i===n)try{Kr("git",["merge","--ff-only",`origin/${r}`],{stdio:"pipe"}),t.intentMainFastForwarded=!0}catch(u){t.error=`Failed to FF ${n} from origin/${r}: ${u instanceof Error?u.message:String(u)}`}else try{Kr("git",["fetch",".",`origin/${r}:${n}`],{stdio:"pipe"}),t.intentMainFastForwarded=!0}catch(u){t.error=`Failed to FF ${n} from origin/${r} via refspec: ${u instanceof Error?u.message:String(u)}`}else Uu(o,s)||(t.error=`${n} has diverged from origin/${r} \u2014 fast-forward isn't safe. Resolve manually.`);let a=`haiku/${e}/`;if(i.startsWith(a)&&i!==n){let u=ae(["git","rev-parse","--verify",n])||s,l=ae(["git","rev-parse","--verify",i]);if(l&&u&&l!==u&&Uu(l,u))try{Kr("git",["merge","--ff-only",n],{stdio:"pipe"}),t.stageBranchFastForwarded=!0}catch(d){let f=t.error?`${t.error} +`:"";t.error=`${f}Failed to fast-forward ${i} from ${n}: ${d instanceof Error?d.message:String(d)}`}}return t}function Uu(e,t){if(!e||!t)return!1;try{return Kr("git",["merge-base","--is-ancestor",e,t],{stdio:"ignore"}),!0}catch{return!1}}function hft(e,t){let n=ae(["git","rev-list","--count",`${e}..${t}`]),r=Number.parseInt(n,10);return Number.isFinite(r)?r:0}function Jqn(e){return mr()===`haiku/${e}/main`}function gpe(e){if(!ve())return!0;let t=`haiku/${e}/main`;if(!Pt(t)||mr()===t)return!0;try{return OT(["checkout",t]),!0}catch{return!1}}function ype(e,t){return mr()===`haiku/${e}/${t}`}function yft(e,t){if(ae(["git","rev-parse","--verify",e]))mr()!==e&&OT(["checkout",e]);else if(t)OT(["checkout","-b",e,t]);else try{OT(["checkout","-b",e])}catch{}return e}function kI(e,t){let n=`haiku/${e}/main`;return!ve()||Pt(n)||Gt(t?["git","branch",n,t]:["git","branch",n]),n}function Spe(e,t){if(t==="main")throw new Error("Stage name 'main' is reserved \u2014 it would collide with the intent hub branch");if(!ve())return`haiku/${e}/${t}`;let n=`haiku/${e}/main`;return yft(`haiku/${e}/${t}`,n)}function bpe(e,t,n){if(!ve())return{success:!0,message:"no git"};let r=`haiku/${e}/${t}`,i=`haiku/${e}/${n}`,s=mr();try{Gt(["git","rev-parse","--verify",r]),Gt(["git","rev-parse","--verify",i])}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}let o=a=>{let c=a?["-C",a]:[],u=qD(c,r,e,`haiku: merge forward ${t} \u2192 ${n}`);if(u.ok)return{conflictFiles:[]};if(u.conflictFiles&&u.conflictFiles.length>0)return{conflictFiles:u.conflictFiles};throw ae(["git",...c,"merge","--abort"]),new Error(u.message||`merge ${r} \u2192 ${i} failed`)};try{let a=s===i?o():Lh(i,c=>o(c));return a.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:a.conflictFiles,message:`Merge ${r} \u2192 ${i} left ${a.conflictFiles.length} conflicted file(s): ${a.conflictFiles.join(", ")}. Resolve the conflicts on '${i}' (edit files, \`git add\`, \`git commit\`), then retry the forward merge.`}:{success:!0,message:`merged ${r} \u2192 ${i}`}}catch(a){return ae(["git","merge","--abort"]),{success:!1,message:a instanceof Error?a.message:String(a)}}}function GD(e,t){if(!ve())return{success:!0,message:"no git",noop:!0};let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`,i=`haiku: merge stage ${t} into main`,s=mr();try{let o=ae(["git","rev-parse","--verify",n]),a=ae(["git","rev-parse","--verify",`origin/${n}`]);if(!o&&!a)return{success:!0,noop:!0,message:`stage branch ${n} is missing locally and on origin \u2014 presumed merged-and-deleted in pre-v4 (3.x) workflow; treating as already merged`};if(Gt(["git","rev-parse","--verify",n]),Gt(["git","rev-parse","--verify",r]),HD(n,r))return{success:!0,noop:!0,message:`${n} has no merge debt against ${r} (trees match or stage is already an ancestor of main) \u2014 skipping no-op merge`};let c=mr(),u=f=>{let p=f?["-C",f]:[],h=()=>ae(["git",...p,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean),m=y=>{if(y.length===0)return[];c3(p,"HEAD",e);let b=h();return b.length===0&&ae(["git",...p,"commit","--no-edit","-m",i]),b},g=()=>{Gt(["git",...p,"merge",n,"--no-ff","--no-edit","-m",i])};try{return g(),{conflictFiles:[]}}catch(y){let b=h();if(b.length>0)return{conflictFiles:m(b)};let S=Wqn(y);if(!(/untracked working tree files would be overwritten/i.test(S)||/Please move or remove them before you merge/i.test(S)))throw ae(["git",...p,"merge","--abort"]),y;ae(["git",...p,"merge","--abort"]);let _=ae(["git",...p,"stash","push","-u","-m","haiku: pre-merge autostash (untracked clobber guard)"]);if(!/Saved working directory/i.test(_))throw y;try{g()}catch(T){let R=h();if(ae(["git",...p,"stash","pop"]),R.length>0)return{conflictFiles:m(R)};throw ae(["git",...p,"merge","--abort"]),T}return ae(["git",...p,"stash","pop"]),{conflictFiles:m(h())}}},l=f=>{let p=u(f);if(p.conflictFiles.length>0)return{conflictFiles:p.conflictFiles,postMergeMigration:{migrated:!1,unitsMigrated:0}};let h={migrated:!1,unitsMigrated:0};try{h=Xqn(e,f)}catch(m){Qqn(e,m)}return{conflictFiles:[],postMergeMigration:h}},d;if(c===r)d=l();else if(c===n){FD(n);try{OT(["checkout",r])}catch(f){let p=f instanceof Error?f.message:String(f);return{success:!1,message:`cannot switch primary worktree from '${n}' to '${r}' for stage merge: ${p}`}}d=l()}else d=Lh(r,f=>l(f));return d.conflictFiles.length>0?{success:!1,isConflict:!0,conflictFiles:d.conflictFiles,message:`Merge ${n} \u2192 ${r} left ${d.conflictFiles.length} conflicted file(s): ${d.conflictFiles.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the stage completion.`}:d.postMergeMigration.migrated?{success:!0,message:`merged ${n} \u2192 ${r}; post-merge re-migration cleaned up v3-shape frontmatter on ${d.postMergeMigration.unitsMigrated} unit(s) brought back through the merge`}:{success:!0,message:`merged ${n} \u2192 ${r}`}}catch(o){return s&&Pt(s)&&mr()!==s&&!mb()&&ae(["git","checkout",s]),{success:!1,message:o instanceof Error?o.message:String(o)}}}function Xqn(e,t){let n=t??Br(),r=es(n,".haiku","intents",e);if(!io(r))return{migrated:!1,unitsMigrated:0};if(!QK(r))return{migrated:!1,unitsMigrated:0};let i=KK({intentDir:r,repoRoot:n},"0","4.0.0");if(i.steps>0)try{let s=t?["-C",t]:[];Gt(["git",...s,"add","-A"]),Gt(["git",...s,"commit","-m",`haiku: post-merge v3\u2192v4 cleanup for ${e}`,"--allow-empty"])}catch{}return{migrated:i.steps>0,unitsMigrated:i.details.units_migrated}}function Qqn(e,t){try{Ke("haiku.post_merge_migrate.failed",{intent:e,error:String(t?.message??t)})}catch{}}function Epe(e,t){let n=`haiku/${e}/main`;if(!ve())return{branch:n,success:!0,message:"no git"};if(t.length===0)return{branch:n,success:!0,message:"no stages"};try{let r=`haiku/${e}/${t[t.length-1]}`;if(Gt(["git","rev-parse","--verify",r]),!Pt(n))return{branch:yft(n,r),success:!0,message:`created ${n} from ${r}`};let i=a=>{try{return Gt(["git","-C",a,"merge",r,"--no-ff","--no-edit","-m","haiku: consolidate discrete stages into main"]),{conflictFiles:[]}}catch(c){let u=ae(["git","-C",a,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(u.length===0)throw ae(["git","-C",a,"merge","--abort"]),c;return{conflictFiles:u}}},o=mr()===n?i(Br()):Lh(n,a=>i(a));return o.conflictFiles.length>0?{branch:n,success:!1,isConflict:!0,conflictFiles:o.conflictFiles,message:`merge conflict in ${o.conflictFiles.length} file(s) while consolidating ${r} into ${n}: ${o.conflictFiles.join(", ")}. Resolve the conflicts on '${n}' (edit files, \`git add\`, \`git commit\`), then retry.`}:{branch:n,success:!0,message:`merged ${r} into ${n}`}}catch(r){return ae(["git","merge","--abort"]),{branch:n,success:!1,message:r instanceof Error?r.message:String(r)}}}function _pe(e,t){if(!ve())return null;try{return Gt(["git","show",`${e}:${t}`])}catch{return null}}function gb(e,t){return es(Br(),".haiku","worktrees",e,t)}function Sg(e,t,n){return es(Br(),".haiku","worktrees",e,`fix-${t}-${n}`)}function VD(e,t,n){return`haiku/${e}/fix-${t}-${n}`}function $qn(e,t,n){let r=gb(e,n),i=n.endsWith(".md")?n:`${n}.md`;return es(r,".haiku","intents",e,"stages",t,"units",i)}function yb(e,t){let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;return!ve()||Pt(n)||(Pt(r)||kI(e),NT(e),ae(["git","branch",n,r])),n}function OT(e){Gt(["git",...e])}function eBn(){try{let e=Kr("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}).trim();if(!e)return!1;let t=e.startsWith("/")?e:es(process.cwd(),e),n=es(t,"locked");return io(n)}catch{return!1}}function gr(e,t){if(!ve())return{ok:!0,branch:"",message:"no git",switched:!1};let n=`haiku/${e}/main`,r=t?`haiku/${e}/${t}`:"";t&&r&&!Pt(r)&&yb(e,t);let i=t&&Pt(r)?r:n,s=mr();if(!Pt(i)){let l=Zo();if(l&&Pt(l)&&s!==l){let d=vpe(l);if(d&&d!==process.cwd())return{ok:!1,branch:s,message:`target branch '${i}' not yet created, and the fallback (repo mainline '${l}') is checked out at another worktree '${d}'. Move that checkout to a different branch or remove the worktree (\`git worktree remove --force ${d}\`), then retry.`,switched:!1,target_branch:l};try{return Gt(["git","checkout",l]),{ok:!0,branch:l,message:`target branch '${i}' not yet created \u2014 fell back to repo mainline '${l}' for safe branch creation`,switched:!0}}catch(f){let p=f instanceof Error?f.message:String(f);if(p.includes("would be overwritten by checkout")||p.includes("Please commit your changes or stash them")){let m=FD(s);if(m.ok)try{return Gt(["git","checkout",l]),{ok:!0,branch:l,message:`target branch '${i}' not yet created \u2014 auto-committed WIP on '${s}' (${m.committed_files.length} file(s)) and fell back to repo mainline '${l}'`,switched:!0}}catch(g){return{ok:!1,branch:s,message:`auto-committed WIP on '${s}' but retry fallback to '${l}' still failed: ${g instanceof Error?g.message:String(g)}`,switched:!1,target_branch:l}}}return{ok:!1,branch:s,message:`target branch '${i}' not yet created, and failed to fall back to mainline '${l}': ${p}`,switched:!1,target_branch:l}}}return{ok:!0,branch:i,message:`target branch '${i}' not yet created \u2014 skipping enforcement`,switched:!1}}if(s===i)return{ok:!0,branch:i,message:"already on target",switched:!1};let o=`haiku/${e}/`;if(!s.startsWith(o)&&Uu(i,"HEAD")&&!Uu("HEAD",i))return{ok:!0,branch:s,message:`target branch '${i}' has been merged into HEAD ('${s}') \u2014 no checkout needed`,switched:!1};let c=ae(["git","rev-parse","--git-dir"]);if(c){for(let l of["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"])if(io(es(c,l)))return{ok:!1,branch:s,message:`A git operation is in progress (${l} present). Resolve the conflicted files, then \`git add\` + \`git commit\` to finish the merge (or \`git merge --abort\` to back out) before stage-branch enforcement can realign the checkout. While ${l} is present the workflow-file guardrails are SUSPENDED \u2014 both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions \u2014 so you can resolve directly; the schema-safe internal tools still validate. Engine-owned feedback/unit YAML: the more-advanced (terminal/more-iterations/later) state wins, but KEEP feedback that exists only on this not-yet-merged stage branch.`,switched:!1,block:"merge_in_progress",target_branch:i}}if(ae(["git","status","--porcelain"])){let l=FD(s);if(!l.ok)return{ok:!1,branch:s,message:`Pre-checkout auto-commit on '${s}' failed: ${l.message}. Resolve the working tree manually before retrying.`,switched:!1,block:"dirty_tree",target_branch:i}}if(i===r&&Pt(n)){let l=ae(["git","rev-list","--count",`${r}..${n}`]);if(l&&Number.parseInt(l,10)>0&&!t3(r,n)){try{Gt(["git","checkout",r])}catch(p){let h=p instanceof Error?p.message:String(p);if(h.includes("would be overwritten by checkout")||h.includes("Please commit your changes or stash them")){let g=FD(s);if(g.ok)try{Gt(["git","checkout",r])}catch(y){return{ok:!1,branch:mr()||s,message:`auto-committed WIP on '${s}' but retry checkout of '${r}' failed: ${y instanceof Error?y.message:String(y)}`,switched:!1,target_branch:r}}else return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${r}' and auto-commit failed: ${g.message}`,switched:!1,block:"dirty_tree",dirty_files:mft(h),target_branch:r}}else return{ok:!1,branch:mr()||s,message:`failed to checkout '${r}' before merging main: ${h}`,switched:!1,target_branch:r}}let d=qD([],n,e,`haiku: merge intent-main \u2192 stage ${t} (workflow engine branch enforcement)`);if(d.ok)return{ok:!0,branch:r,message:`merged main \u2192 stage, now on ${r}`,switched:!0};let f=d.conflictFiles??[];return{ok:!1,branch:r,message:f.length>0?`Merge intent-main \u2192 stage '${t}' left ${f.length} conflicted file(s): ${f.join(", ")}. Resolve on '${r}', then \`git add\` + \`git commit\` and retry. While this merge is in progress the workflow-file guardrails are SUSPENDED (both raw Read/Write/Edit and the internal MCP write tools' lifecycle/ownership preventions), so you can resolve the conflicts directly. Prefer the schema-safe internal tools (\`haiku_feedback_write\`, \`haiku_unit_set\`, \`haiku_intent_set\`) \u2014 their schema validation still runs, so the resolved files stay valid. -Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${d.message??"unknown error"}. Resolve manually on '${r}', then retry.`,switched:!1,block:f.length>0?"merge_conflict":void 0,dirty_files:f.length>0?f:void 0,target_branch:r}}}try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`checked out ${i}`,switched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);if(d.includes("would be overwritten by checkout")||d.includes("Please commit your changes or stash them")){let p=UD(s);if(p.ok)try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`auto-committed WIP on '${s}' (${p.committed_files.length} file(s)), then checked out ${i}`,switched:!0}}catch(h){let m=h instanceof Error?h.message:String(h);return{ok:!1,branch:s,message:`auto-committed WIP on '${s}' but retry checkout still failed: ${m}`,switched:!1,target_branch:i}}return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${i}' and auto-commit failed: ${p.message}`,switched:!1,block:"dirty_tree",dirty_files:hft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function UD(e){try{Gt(["git","add","-A"]);let n=ae(["git","diff","--cached","--name-only"]).split(` -`).filter(Boolean);return n.length===0?{ok:!1,message:"nothing to commit after git add -A (dirty-tree signal may have been spurious)"}:(Gt(["git","commit","-m",`haiku: auto-commit wip on ${e} (workflow engine branch enforcement)`]),{ok:!0,committed_files:n})}catch(t){return{ok:!1,message:t instanceof Error?t.message:String(t)}}}function _pe(){if(!ve())return[];let e=ae(["git","status","--porcelain","--untracked-files=all"]);if(!e.trim())return[];let t=[];for(let n of e.split(` -`)){if(!n.trim())continue;let r=n.replace(/^[ MADRCU?!]{1,2} +/,""),i=r.indexOf(" -> ");i!==-1&&(r=r.slice(i+4).trim()),r.startsWith('"')&&r.endsWith('"')&&(r=r.slice(1,-1)),!(r===".haiku"||r.startsWith(".haiku/"))&&t.push(r)}return t}function hft(e){let t=e.split(` -`),n=[],r=!1;for(let i of t){if(i.includes("would be overwritten by")||i.includes("Please commit your changes or stash them")){r=!0;continue}if(i.trim()==="Aborting"||i.trim().startsWith("error: ")){r=!1;continue}if(r){let s=i.replace(/^\t+/,"").trim();s&&!s.startsWith("error:")&&!s.startsWith("hint:")&&n.push(s)}}return n}function tBn(e,t,n,r){if(!ve())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Pt(i))return{ok:!1,message:`${i} does not exist`};try{if(mr()===i){let o=Br(),a=es(o,t),c=a.replace(/\/[^/]+$/,"");FD(c,{recursive:!0}),npe(a,n),Gt(["git","-C",o,"add",t]),ae(["git","-C",o,"diff","--cached","--name-only","--",t]).trim()&&Gt(["git","-C",o,"commit","-m",r,"--",t])}else Lh(i,o=>{let a=es(o,t),c=a.replace(/\/[^/]+$/,"");FD(c,{recursive:!0}),npe(a,n),Gt(["git","-C",o,"add",t]),ae(["git","-C",o,"status","--porcelain"]).trim()&&Gt(["git","-C",o,"commit","-m",r])});return{ok:!0,message:`wrote ${t} on ${i}`}}catch(s){return{ok:!1,message:s instanceof Error?s.message:String(s)}}}function nBn(e,t,n,r){let i={paths_copied:[]};if(!ve())return{ok:!0,message:"no git",...i};let s=`haiku/${e}/main`;if(!Pt(s))return{ok:!1,message:`${s} does not exist`,...i};if(!Pt(t))return{ok:!0,message:`source branch ${t} does not exist \u2014 skipping`,...i};let o=ae(["git","ls-tree","-r","--name-only",t,"--",n]).split(` -`).map(c=>c.trim()).filter(Boolean);if(o.length===0)return{ok:!0,message:`no files under ${n} on ${t} \u2014 skipping`,...i};let a=c=>{Gt(["git","-C",c,"checkout",t,"--",n]),Gt(["git","-C",c,"add","--",n]),ae(["git","-C",c,"diff","--cached","--name-only","--",n]).trim()&&Gt(["git","-C",c,"commit","-m",r,"--",n])};try{return mr()===s?a(Br()):Lh(s,u=>{a(u)}),{ok:!0,message:`copied ${o.length} file(s) from ${t} (${n})`,paths_copied:o}}catch(c){return{ok:!1,message:c instanceof Error?c.message:String(c),...i}}}function s3(e){let t={deleted_local:[],deleted_remote:[]};if(!ve())return t;let n=`haiku/${e}/main`;if(!Pt(n))return t;let r=ae(["git","for-each-ref","--format=%(refname:short)",`refs/heads/haiku/${e}`]);for(let s of r.split(` +Resolution rule for engine-owned feedback/unit YAML: the MORE-ADVANCED state wins. A terminal (closed/rejected) feedback beats an open one; more iterations / a later closure timestamp beats fewer. BUT feedback that exists only on this (incomplete, not-yet-merged) stage branch must be KEPT \u2014 intent-main doesn't have it yet, so don't drop it in favor of main's absence.`:`failed to merge main into stage: ${d.message??"unknown error"}. Resolve manually on '${r}', then retry.`,switched:!1,block:f.length>0?"merge_conflict":void 0,dirty_files:f.length>0?f:void 0,target_branch:r}}}try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`checked out ${i}`,switched:!0}}catch(l){let d=l instanceof Error?l.message:String(l);if(d.includes("would be overwritten by checkout")||d.includes("Please commit your changes or stash them")){let p=FD(s);if(p.ok)try{return Gt(["git","checkout",i]),{ok:!0,branch:i,message:`auto-committed WIP on '${s}' (${p.committed_files.length} file(s)), then checked out ${i}`,switched:!0}}catch(h){let m=h instanceof Error?h.message:String(h);return{ok:!1,branch:s,message:`auto-committed WIP on '${s}' but retry checkout still failed: ${m}`,switched:!1,target_branch:i}}return{ok:!1,branch:s,message:`Uncommitted changes on '${s}' block switch to '${i}' and auto-commit failed: ${p.message}`,switched:!1,block:"dirty_tree",dirty_files:mft(d),target_branch:i}}return{ok:!1,branch:s,message:`failed to checkout ${i}: ${d}`,switched:!1,target_branch:i}}}function FD(e){try{Gt(["git","add","-A"]);let n=ae(["git","diff","--cached","--name-only"]).split(` +`).filter(Boolean);return n.length===0?{ok:!1,message:"nothing to commit after git add -A (dirty-tree signal may have been spurious)"}:(Gt(["git","commit","-m",`haiku: auto-commit wip on ${e} (workflow engine branch enforcement)`]),{ok:!0,committed_files:n})}catch(t){return{ok:!1,message:t instanceof Error?t.message:String(t)}}}function Tpe(){if(!ve())return[];let e=ae(["git","status","--porcelain","--untracked-files=all"]);if(!e.trim())return[];let t=[];for(let n of e.split(` +`)){if(!n.trim())continue;let r=n.replace(/^[ MADRCU?!]{1,2} +/,""),i=r.indexOf(" -> ");i!==-1&&(r=r.slice(i+4).trim()),r.startsWith('"')&&r.endsWith('"')&&(r=r.slice(1,-1)),!(r===".haiku"||r.startsWith(".haiku/"))&&t.push(r)}return t}function mft(e){let t=e.split(` +`),n=[],r=!1;for(let i of t){if(i.includes("would be overwritten by")||i.includes("Please commit your changes or stash them")){r=!0;continue}if(i.trim()==="Aborting"||i.trim().startsWith("error: ")){r=!1;continue}if(r){let s=i.replace(/^\t+/,"").trim();s&&!s.startsWith("error:")&&!s.startsWith("hint:")&&n.push(s)}}return n}function tBn(e,t,n,r){if(!ve())return{ok:!0,message:"no git"};let i=`haiku/${e}/main`;if(!Pt(i))return{ok:!1,message:`${i} does not exist`};try{if(mr()===i){let o=Br(),a=es(o,t),c=a.replace(/\/[^/]+$/,"");jD(c,{recursive:!0}),rpe(a,n),Gt(["git","-C",o,"add",t]),ae(["git","-C",o,"diff","--cached","--name-only","--",t]).trim()&&Gt(["git","-C",o,"commit","-m",r,"--",t])}else Lh(i,o=>{let a=es(o,t),c=a.replace(/\/[^/]+$/,"");jD(c,{recursive:!0}),rpe(a,n),Gt(["git","-C",o,"add",t]),ae(["git","-C",o,"status","--porcelain"]).trim()&&Gt(["git","-C",o,"commit","-m",r])});return{ok:!0,message:`wrote ${t} on ${i}`}}catch(s){return{ok:!1,message:s instanceof Error?s.message:String(s)}}}function nBn(e,t,n,r){let i={paths_copied:[]};if(!ve())return{ok:!0,message:"no git",...i};let s=`haiku/${e}/main`;if(!Pt(s))return{ok:!1,message:`${s} does not exist`,...i};if(!Pt(t))return{ok:!0,message:`source branch ${t} does not exist \u2014 skipping`,...i};let o=ae(["git","ls-tree","-r","--name-only",t,"--",n]).split(` +`).map(c=>c.trim()).filter(Boolean);if(o.length===0)return{ok:!0,message:`no files under ${n} on ${t} \u2014 skipping`,...i};let a=c=>{Gt(["git","-C",c,"checkout",t,"--",n]),Gt(["git","-C",c,"add","--",n]),ae(["git","-C",c,"diff","--cached","--name-only","--",n]).trim()&&Gt(["git","-C",c,"commit","-m",r,"--",n])};try{return mr()===s?a(Br()):Lh(s,u=>{a(u)}),{ok:!0,message:`copied ${o.length} file(s) from ${t} (${n})`,paths_copied:o}}catch(c){return{ok:!1,message:c instanceof Error?c.message:String(c),...i}}}function a3(e){let t={deleted_local:[],deleted_remote:[]};if(!ve())return t;let n=`haiku/${e}/main`;if(!Pt(n))return t;let r=ae(["git","for-each-ref","--format=%(refname:short)",`refs/heads/haiku/${e}`]);for(let s of r.split(` `).filter(Boolean))s===n||s.slice(`haiku/${e}/`.length).startsWith("unit-")||Zc(s,n)&&(ae(["git","branch","-D",s]),t.deleted_local.push(s));let i=ae(["git","for-each-ref","--format=%(refname:short)",`refs/remotes/origin/haiku/${e}`]);for(let s of i.split(` -`).filter(Boolean)){let o=s.startsWith("origin/")?s.slice(7):s;o===n||o.slice(`haiku/${e}/`.length).startsWith("unit-")||Zc(o,n)&&QK(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function rBn(e,t){let n=zqn(es(Vqn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{rpe(n,{recursive:!0,force:!0})}catch{}}}function NT(e){if(ve())try{let t=es(Br(),".haiku","intents",e);if(!io(t))return;let n=["action-log.jsonl merge=union","write-audit.jsonl merge=union"],i=`${[...["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution."],...n].join(` +`).filter(Boolean)){let o=s.startsWith("origin/")?s.slice(7):s;o===n||o.slice(`haiku/${e}/`.length).startsWith("unit-")||Zc(o,n)&&e3(["git","push","origin","--delete",o])&&t.deleted_remote.push(o)}return t}function rBn(e,t){let n=zqn(es(Vqn(),"haiku-merge-"));try{Gt(["git","worktree","add",n,e]);try{return t(n)}finally{ae(["git","worktree","remove","--force",n])}}finally{try{ipe(n,{recursive:!0,force:!0})}catch{}}}function NT(e){if(ve())try{let t=es(Br(),".haiku","intents",e);if(!io(t))return;let n=["action-log.jsonl merge=union","write-audit.jsonl merge=union"],i=`${[...["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution."],...n].join(` `)} -`,s=`haiku/${e}/main`,o=`.haiku/intents/${e}/.gitattributes`,a=u=>{let l=u?["-C",u]:[],d=u?es(u,o):es(Br(),o),f="";try{io(d)&&(f=Gqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(npe(d,i),ae(["git",...l,"add","--",o]),ae(["git",...l,"commit","-m",`haiku: seed .gitattributes (merge=union for engine event streams) for ${e}`,"--",o]))};if(!Pt(s))return;let c=mr();if(c===s)a();else try{Lh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function hb(e,t){if(!ve()||!Pt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=Tpe(e);return console.error(r?`[haiku] could not delete branch '${e}' (${t}) \u2014 held by worktree '${r}'. The branch will leak; remove the worktree (\`git worktree remove --force ${r}\`) and rerun cleanup, or delete the branch manually.`:`[haiku] could not delete branch '${e}' (${t}). The branch will leak; investigate via \`git branch -D ${e}\`.`),!1}function Tpe(e){if(!ve()||!e)return null;let t;try{t=Kr("git",["worktree","list","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}let n=`refs/heads/${e}`,r=null;for(let i of t.split(` -`))if(i.startsWith("worktree "))r=i.slice(9).trim();else if(i.startsWith("branch ")&&r){if(i.slice(7).trim()===n)return r}else i===""&&(r=null);return null}function yft(e){return io(es(e,".git"))}function iBn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{rpe(e,{recursive:!0,force:!0})}catch{}}function sBn(e){let t;try{t=Kr("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return{tracked:!1,untracked:!1,unknown:!0}}if(t.trim().length===0)return null;let n=!1,r=!1;for(let i of t.split(` -`))i&&(i.startsWith("??")?r=!0:n=!0);return{tracked:n,untracked:r}}function Lh(e,t){let n=Tpe(e);if(n){let r=sBn(n);if(r){let i,s;throw r.unknown?(i="an indeterminate state",s="inspect the worktree manually"):r.tracked&&r.untracked?(i="uncommitted changes and untracked files",s="commit or stash the tracked changes AND add or clean the untracked files"):r.tracked?(i="uncommitted changes",s="commit or stash them"):(i="untracked files",s="add them to a commit or `git clean` them"),new Error(`branch '${e}' is checked out at '${n}' with ${i} \u2014 ${s} so the workflow engine can merge into it`)}return t(n)}return rBn(e,t)}function vpe(e,t,n){if(!ve())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=yb(e,n);NT(e),ZD();let i=`haiku/${e}/${t}`,s=es(Br(),".haiku","worktrees",e),o=es(s,t);try{if(io(o))return o;if(FD(s,{recursive:!0}),!!!ae(["git","branch","--list",i])?.trim()){ae(["git","fetch","origin",i]);let c=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${i}`])?.trim();ae(["git","branch",i,c?`origin/${i}`:r])}return Gt(["git","worktree","add",o,i]),o}catch{return null}}function oBn(e,t){let n=`.haiku/intents/${t}/`;if(!e.startsWith(n))return!1;let r=e.slice(n.length);return!!(r==="intent.md"||/^feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/units\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/(state|baseline)\.json$/.test(r))}function o3(e,t,n){let r=`.haiku/intents/${n}`,i=ae(["git",...e,"ls-tree","-r","--name-only",t,"--",r]).split(` -`).map(s=>s.trim()).filter(Boolean);for(let s of i)oBn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function Rpe(e,t,n){if(!ve())return{success:!0,message:"no worktree"};if(!n)return{success:!1,message:"mergeUnitWorktree requires `stage` \u2014 units always merge into the stage branch"};let r=yb(e,n),i=`haiku/${e}/${t}`,s=gb(e,t);NT(e);let o=io(s);if(!o&&(!Pt(i)||Zc(i,r)))return{success:!0,message:"no worktree"};try{o&&(ae(["git","-C",s,"add","-A"]),ae(["git","-C",s,"commit","-m",`haiku: complete ${t}`,"--allow-empty"]));let a=mr()===r,c=u=>{let l=u?["-C",u]:[],d=["git",...l,"merge",i,"--no-commit","--no-ff"],f=null;try{Gt(d)}catch(m){f=m}if(!ae(["git",...l,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}o3(l,r,e);let h=ae(["git",...l,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(h.length>0){let m=new Error(`merge_conflict: real conflicts on agent-authored content require resolution: ${h.join(", ")}`);throw m.conflictPaths=h,m}Gt(["git",...l,"commit","--no-edit","-m",`haiku: merge ${t} into ${n}`])};return a?c():Lh(r,u=>c(u)),ae(["git","worktree","remove",s,"--force"]),hb(i,`unit-merge cleanup for ${t}`),ae(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(a){let c=a instanceof Error?a.message:String(a),u=a?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge ${i} \u2192 ${r} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the unit merge.`}:{success:!1,message:c}}}function II(e,t,n){return es(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function xI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function Ape(e,t,n){if(!ve())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=yb(e,t);NT(e),ZD();let i=xI(e,t,n),s=II(e,t,n),o=es(Br(),".haiku","worktrees",e);try{return io(s)||(FD(o,{recursive:!0}),Pt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function wpe(e,t,n){if(!ve())return{success:!0,message:"no worktree"};let r=yb(e,t),i=xI(e,t,n),s=II(e,t,n);if(NT(e),!io(s))return hb(i,`discovery cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!ae(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` +`,s=`haiku/${e}/main`,o=`.haiku/intents/${e}/.gitattributes`,a=u=>{let l=u?["-C",u]:[],d=u?es(u,o):es(Br(),o),f="";try{io(d)&&(f=Gqn(d,"utf8"))}catch{}n.every(p=>f.includes(p))||(rpe(d,i),ae(["git",...l,"add","--",o]),ae(["git",...l,"commit","-m",`haiku: seed .gitattributes (merge=union for engine event streams) for ${e}`,"--",o]))};if(!Pt(s))return;let c=mr();if(c===s)a();else try{Lh(s,u=>a(u))}catch{}c&&c!==s&&a()}catch{}}function hb(e,t){if(!ve()||!Pt(e)||ae(["git","branch","-D",e])!=="")return!0;let r=vpe(e);return console.error(r?`[haiku] could not delete branch '${e}' (${t}) \u2014 held by worktree '${r}'. The branch will leak; remove the worktree (\`git worktree remove --force ${r}\`) and rerun cleanup, or delete the branch manually.`:`[haiku] could not delete branch '${e}' (${t}). The branch will leak; investigate via \`git branch -D ${e}\`.`),!1}function vpe(e){if(!ve()||!e)return null;let t;try{t=Kr("git",["worktree","list","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}let n=`refs/heads/${e}`,r=null;for(let i of t.split(` +`))if(i.startsWith("worktree "))r=i.slice(9).trim();else if(i.startsWith("branch ")&&r){if(i.slice(7).trim()===n)return r}else i===""&&(r=null);return null}function Sft(e){return io(es(e,".git"))}function iBn(e){try{Kr("git",["worktree","prune"],{stdio:["ignore","ignore","ignore"]})}catch{}try{ipe(e,{recursive:!0,force:!0})}catch{}}function sBn(e){let t;try{t=Kr("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return{tracked:!1,untracked:!1,unknown:!0}}if(t.trim().length===0)return null;let n=!1,r=!1;for(let i of t.split(` +`))i&&(i.startsWith("??")?r=!0:n=!0);return{tracked:n,untracked:r}}function Lh(e,t){let n=vpe(e);if(n){let r=sBn(n);if(r){let i,s;throw r.unknown?(i="an indeterminate state",s="inspect the worktree manually"):r.tracked&&r.untracked?(i="uncommitted changes and untracked files",s="commit or stash the tracked changes AND add or clean the untracked files"):r.tracked?(i="uncommitted changes",s="commit or stash them"):(i="untracked files",s="add them to a commit or `git clean` them"),new Error(`branch '${e}' is checked out at '${n}' with ${i} \u2014 ${s} so the workflow engine can merge into it`)}return t(n)}return rBn(e,t)}function Rpe(e,t,n){if(!ve())return null;if(!n)throw new Error("createUnitWorktree requires `stage` \u2014 units always fork from the stage branch");let r=yb(e,n);NT(e),JD();let i=`haiku/${e}/${t}`,s=es(Br(),".haiku","worktrees",e),o=es(s,t);try{if(io(o))return o;if(jD(s,{recursive:!0}),!!!ae(["git","branch","--list",i])?.trim()){ae(["git","fetch","origin",i]);let c=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${i}`])?.trim();ae(["git","branch",i,c?`origin/${i}`:r])}return Gt(["git","worktree","add",o,i]),o}catch{return null}}function oBn(e,t){let n=`.haiku/intents/${t}/`;if(!e.startsWith(n))return!1;let r=e.slice(n.length);return!!(r==="intent.md"||/^feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/units\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/feedback\/[^/]+\.md$/.test(r)||/^stages\/[^/]+\/(state|baseline)\.json$/.test(r))}function c3(e,t,n){let r=`.haiku/intents/${n}`,i=ae(["git",...e,"ls-tree","-r","--name-only",t,"--",r]).split(` +`).map(s=>s.trim()).filter(Boolean);for(let s of i)oBn(s,n)&&(ae(["git",...e,"checkout",t,"--",s]),ae(["git",...e,"add","--",s]))}function Ape(e,t,n){if(!ve())return{success:!0,message:"no worktree"};if(!n)return{success:!1,message:"mergeUnitWorktree requires `stage` \u2014 units always merge into the stage branch"};let r=yb(e,n),i=`haiku/${e}/${t}`,s=gb(e,t);NT(e);let o=io(s);if(!o&&(!Pt(i)||Zc(i,r)))return{success:!0,message:"no worktree"};try{o&&(ae(["git","-C",s,"add","-A"]),ae(["git","-C",s,"commit","-m",`haiku: complete ${t}`,"--allow-empty"]));let a=mr()===r,c=u=>{let l=u?["-C",u]:[],d=["git",...l,"merge",i,"--no-commit","--no-ff"],f=null;try{Gt(d)}catch(m){f=m}if(!ae(["git",...l,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}c3(l,r,e);let h=ae(["git",...l,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(h.length>0){let m=new Error(`merge_conflict: real conflicts on agent-authored content require resolution: ${h.join(", ")}`);throw m.conflictPaths=h,m}Gt(["git",...l,"commit","--no-edit","-m",`haiku: merge ${t} into ${n}`])};return a?c():Lh(r,u=>c(u)),ae(["git","worktree","remove",s,"--force"]),hb(i,`unit-merge cleanup for ${t}`),ae(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(a){let c=a instanceof Error?a.message:String(a),u=a?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge ${i} \u2192 ${r} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve the conflicts on '${r}' (edit files, \`git add\`, \`git commit\`), then retry the unit merge.`}:{success:!1,message:c}}}function II(e,t,n){return es(Br(),".haiku","worktrees",e,`discovery-${t}-${n}`)}function xI(e,t,n){return`haiku/${e}/discovery-${t}-${n}`}function wpe(e,t,n){if(!ve())return null;if(!t||!n)throw new Error("createDiscoveryWorktree requires `stage` and `template`");let r=yb(e,t);NT(e),JD();let i=xI(e,t,n),s=II(e,t,n),o=es(Br(),".haiku","worktrees",e);try{return io(s)||(jD(o,{recursive:!0}),Pt(i)||ae(["git","branch",i,r]),Gt(["git","worktree","add",s,i])),s}catch{return null}}function kpe(e,t,n){if(!ve())return{success:!0,message:"no worktree"};let r=yb(e,t),i=xI(e,t,n),s=II(e,t,n);if(NT(e),!io(s))return hb(i,`discovery cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!ae(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` `).filter(Boolean);if(a.length>0)return{success:!1,isConflict:!0,conflictFiles:a,message:`${a.length} file(s) with unresolved conflict markers in discovery worktree ${n} \u2014 integrator work incomplete`};try{if(o)ae(["git","-C",s,"add","-A"]),Gt(["git","-C",s,"commit","--no-edit","-m",`haiku: integrate ${t} into discovery ${n}`]);else{ae(["git","-C",s,"add","-A"]),ae(["git","-C",s,"commit","-m",`haiku: complete discovery ${n}`,"--allow-empty"]);try{Gt(["git","-C",s,"merge",r,"--no-ff","--no-edit","-m",`haiku: sync ${t} into discovery ${n}`])}catch(l){let d=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(d.length>0)return{success:!1,isConflict:!0,conflictFiles:d,message:`merge conflict in ${d.length} file(s) while pulling ${r} into discovery ${n}`};throw ae(["git","-C",s,"merge","--abort"]),l}}let c=mr()===r,u=l=>{let f=HD(l?["-C",l]:[],i,e,`haiku: merge discovery ${n} into ${t}`);if(!f.ok){let p=new Error(f.message??"discovery forward-merge failed");throw f.conflictFiles&&f.conflictFiles.length>0&&(p.conflictPaths=f.conflictFiles),p}};if(c){let l=`.haiku/intents/${e}`;ae(["git","add","--",l]),ae(["git","diff","--cached","--name-only","--",l])&&Gt(["git","commit","-m",`haiku: snapshot engine state before merging discovery ${n} into ${t}`]),u()}else Lh(r,l=>u(l));return ae(["git","worktree","remove",s,"--force"]),hb(i,`discovery merge cleanup for ${e}/${t}/${n}`),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging discovery ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function aBn(e,t,n){if(!ve())return{success:!0,message:"no git"};let r=xI(e,t,n),i=II(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),hb(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function kpe(e,t,n){if(!ve())return null;if(!t)throw new Error("createFixChainWorktree requires `scope` \u2014 stage name or 'intent'");if(!n)throw new Error("createFixChainWorktree requires `feedbackId` \u2014 the FB-NN of the chain");let r=t==="intent"?`haiku/${e}/main`:yb(e,t);NT(e),ZD();let i=GD(e,t,n),s=Sg(e,t,n),o=es(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(FD(o,{recursive:!0}),!Pt(i)){ae(["git","fetch","origin",i]);let a=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${i}`])?.trim();ae(["git","branch",i,a?`origin/${i}`:r])}return Gt(["git","worktree","add",s,i]),s}catch{return null}}function VD(e,t,n){if(!ve())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:yb(e,t),i=GD(e,t,n),s=Sg(e,t,n);if(NT(e),!io(s)||!yft(s))return io(s)&&iBn(s),hb(i,`fix-chain cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!ae(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(d.length>0)return{success:!1,isConflict:!0,conflictFiles:d,message:`merge conflict in ${d.length} file(s) while pulling ${r} into discovery ${n}`};throw ae(["git","-C",s,"merge","--abort"]),l}}let c=mr()===r,u=l=>{let f=qD(l?["-C",l]:[],i,e,`haiku: merge discovery ${n} into ${t}`);if(!f.ok){let p=new Error(f.message??"discovery forward-merge failed");throw f.conflictFiles&&f.conflictFiles.length>0&&(p.conflictPaths=f.conflictFiles),p}};if(c){let l=`.haiku/intents/${e}`;ae(["git","add","--",l]),ae(["git","diff","--cached","--name-only","--",l])&&Gt(["git","commit","-m",`haiku: snapshot engine state before merging discovery ${n} into ${t}`]),u()}else Lh(r,l=>u(l));return ae(["git","worktree","remove",s,"--force"]),hb(i,`discovery merge cleanup for ${e}/${t}/${n}`),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging discovery ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function aBn(e,t,n){if(!ve())return{success:!0,message:"no git"};let r=xI(e,t,n),i=II(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),hb(r,`discovery cleanup for ${e}/${t}/${n}`),{success:!0,message:`cleaned up ${r}`}}function Ipe(e,t,n){if(!ve())return null;if(!t)throw new Error("createFixChainWorktree requires `scope` \u2014 stage name or 'intent'");if(!n)throw new Error("createFixChainWorktree requires `feedbackId` \u2014 the FB-NN of the chain");let r=t==="intent"?`haiku/${e}/main`:yb(e,t);NT(e),JD();let i=VD(e,t,n),s=Sg(e,t,n),o=es(Br(),".haiku","worktrees",e);try{if(io(s))return s;if(jD(o,{recursive:!0}),!Pt(i)){ae(["git","fetch","origin",i]);let a=!!ae(["git","rev-parse","--verify","--quiet",`refs/remotes/origin/${i}`])?.trim();ae(["git","branch",i,a?`origin/${i}`:r])}return Gt(["git","worktree","add",s,i]),s}catch{return null}}function WD(e,t,n){if(!ve())return{success:!0,message:"no worktree"};let r=t==="intent"?`haiku/${e}/main`:yb(e,t),i=VD(e,t,n),s=Sg(e,t,n);if(NT(e),!io(s)||!Sft(s))return io(s)&&iBn(s),hb(i,`fix-chain cleanup (no worktree) for ${e}/${t}/${n}`),{success:!0,message:"no worktree"};let o=!!ae(["git","-C",s,"rev-parse","--verify","-q","MERGE_HEAD"]),a=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` `).filter(Boolean);if(a.length>0)return{success:!1,isConflict:!0,conflictFiles:a,message:`${a.length} file(s) with unresolved conflict markers in fix-chain ${n} \u2014 integrator work incomplete`};try{if(o)ae(["git","-C",s,"add","-A"]),Gt(["git","-C",s,"commit","--no-edit","-m",`haiku: integrate ${t} into fix-chain ${n}`]);else{ae(["git","-C",s,"add","-A"]),ae(["git","-C",s,"commit","-m",`haiku: complete fix-chain ${n}`,"--allow-empty"]);try{Gt(["git","-C",s,"merge",r,"--no-ff","--no-edit","-m",`haiku: sync ${t} into fix-chain ${n}`])}catch(l){let d=ae(["git","-C",s,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(d.length>0)return{success:!1,isConflict:!0,conflictFiles:d,message:`merge conflict in ${d.length} file(s) while pulling ${r} into fix-chain ${n}`};throw ae(["git","-C",s,"merge","--abort"]),l}}let c=mr()===r,u=l=>{let d=l?["-C",l]:[],f=null;try{Gt(["git",...d,"merge",i,"--no-commit","--no-ff"])}catch(m){f=m}if(!ae(["git",...d,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}o3(d,r,e);let h=ae(["git",...d,"diff","--name-only","--diff-filter=U"]).split(` -`).filter(Boolean);if(h.length>0){let m=new Error(`merge_conflict: real conflicts on agent-authored content require resolution: ${h.join(", ")}`);throw m.conflictPaths=h,m}Gt(["git",...d,"commit","--no-edit","-m",`haiku: merge fix-chain ${n} into ${t}`])};return c?u():Lh(r,l=>u(l)),ae(["git","worktree","remove",s,"--force"]),hb(i,`fix-chain merge cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging fix-chain ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function a3(e,t,n){if(!ve())return{success:!0,message:"no git"};let r=GD(e,t,n),i=Sg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),hb(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function Ipe(e,t){if(!ve())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=gb(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),hb(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function WD(e){let t=es(Br(),".haiku","worktrees",e);try{rpe(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function KD(e){return!ve()||mr()===e||!Pt(e)?!1:ae(["git","branch","-D",e])!==""}function Sb(e,t){if(!ve()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),KD(n)}function xpe(e,t){let n=`haiku/${e}/main`;if(!ve())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Pt(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Pt(o)||Zc(o,n))continue;let a=zD(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(mr()!==n)try{OT(["checkout",n])}catch(s){return{success:!1,merged:r,deleted:i,message:`checkout ${n} failed: ${s instanceof Error?s.message:String(s)}`}}for(let s of t){let o=`haiku/${e}/${s}`;Pt(o)&&Zc(o,n)&&KD(o)&&i.push(o)}return ae(["git","worktree","prune"]),{success:!0,merged:r,deleted:i,message:`finalized ${e}: merged ${r.length}, deleted ${i.length}`}}function cBn(e,t,n){if(!ve())return{success:!0,message:"no git"};if(n==="main")return{success:!1,message:"cannot revisit 'main'"};let r=`haiku/${e}/${n}`,i=t?`haiku/${e}/${t}`:"",s=`haiku/${e}/main`;if(!Pt(s))return{success:!0,message:`${s} does not exist \u2014 nothing to merge`};function o(){let a=ae(["git","status","--porcelain"]);return a?a.split(` -`).filter(c=>c.startsWith("UU ")||c.startsWith("AA ")||c.startsWith("DD ")||c.startsWith("AU ")||c.startsWith("UA ")||c.startsWith("DU ")||c.startsWith("UD ")).map(c=>c.slice(3).trim()):[]}try{Pt(r)||Gt(["git","branch",r,s]),mr()!==r&&OT(["checkout",r]);let a=ae(["git","rev-list","--count",`${r}..${s}`]);if(a&&Number.parseInt(a,10)>0)try{Gt(["git","merge",s,"--no-ff","--no-edit","-m",`haiku: merge main \u2192 ${n} (revisit prep)`])}catch(c){let u=o();return u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge main \u2192 ${n} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit \u2014 the workflow engine will detect main is already merged and continue with the ${t} merge.`}:{success:!1,message:`Merge main \u2192 ${n} failed: ${c instanceof Error?c.message:String(c)}`}}if(i&&t!==n&&Pt(i)){let c=ae(["git","rev-list","--count",`${r}..${i}`]);if(c&&Number.parseInt(c,10)>0)try{Gt(["git","merge",i,"--no-ff","--no-edit","-m",`haiku: merge ${t} \u2192 ${n} (revisit carries future-stage work back)`])}catch(u){let l=o();return l.length>0?{success:!1,isConflict:!0,conflictFiles:l,message:`Merge ${t} \u2192 ${n} left ${l.length} conflicted file(s): ${l.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit. Main has already been merged cleanly and won't be remerged.`}:{success:!1,message:`Merge ${t} \u2192 ${n} failed: ${u instanceof Error?u.message:String(u)}`}}}return{success:!0,message:`prepared ${r} with main${i&&t!==n?` + ${t}`:""} merged in`}}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}}var Ra,Aa,yr=v(()=>{"use strict";Nh();XK();Ge();vo();Ra=3e4,Aa={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as Eft from"node:fs";import*as Md from"node:path";function JD(e,t,n){let r=t.slice(0,n).split(/\n/),i=r.length,s=r[i-1].length+1;throw e+=" at line "+i+" col "+s+`: +`).filter(Boolean);if(d.length>0)return{success:!1,isConflict:!0,conflictFiles:d,message:`merge conflict in ${d.length} file(s) while pulling ${r} into fix-chain ${n}`};throw ae(["git","-C",s,"merge","--abort"]),l}}let c=mr()===r,u=l=>{let d=l?["-C",l]:[],f=null;try{Gt(["git",...d,"merge",i,"--no-commit","--no-ff"])}catch(m){f=m}if(!ae(["git",...d,"rev-parse","--quiet","--verify","MERGE_HEAD"])){if(f)throw f;return}c3(d,r,e);let h=ae(["git",...d,"diff","--name-only","--diff-filter=U"]).split(` +`).filter(Boolean);if(h.length>0){let m=new Error(`merge_conflict: real conflicts on agent-authored content require resolution: ${h.join(", ")}`);throw m.conflictPaths=h,m}Gt(["git",...d,"commit","--no-edit","-m",`haiku: merge fix-chain ${n} into ${t}`])};return c?u():Lh(r,l=>u(l)),ae(["git","worktree","remove",s,"--force"]),hb(i,`fix-chain merge cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",i]),{success:!0,message:`merged ${i} \u2192 ${r}`}}catch(c){let u=c?.conflictPaths;return Array.isArray(u)&&u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`merge conflict in ${u.length} file(s) while merging fix-chain ${n} into ${t}: ${u.join(", ")}`}:{success:!1,message:c instanceof Error?c.message:String(c)}}}function u3(e,t,n){if(!ve())return{success:!0,message:"no git"};let r=VD(e,t,n),i=Sg(e,t,n);return io(i)&&ae(["git","worktree","remove",i,"--force"]),hb(r,`fix-chain cleanup for ${e}/${t}/${n}`),ae(["git","push","origin","--delete",r]),{success:!0,message:`cleaned up ${r}`}}function xpe(e,t){if(!ve())return{success:!0,message:"no git"};let n=`haiku/${e}/${t}`,r=gb(e,t);return io(r)&&ae(["git","worktree","remove",r,"--force"]),hb(n,`unit reset for ${e}/${t}`),ae(["git","push","origin","--delete",n]),ae(["git","worktree","prune"]),{success:!0,message:`reset unit worktree ${n}`}}function KD(e){let t=es(Br(),".haiku","worktrees",e);try{ipe(t,{recursive:!0,force:!0})}catch{}ae(["git","worktree","prune"])}function YD(e){return!ve()||mr()===e||!Pt(e)?!1:ae(["git","branch","-D",e])!==""}function Sb(e,t){if(!ve()||t==="main")return!1;let n=`haiku/${e}/${t}`;return ae(["git","worktree","prune"]),YD(n)}function Ope(e,t){let n=`haiku/${e}/main`;if(!ve())return{success:!0,merged:[],deleted:[],message:"no git"};if(!Pt(n))return{success:!0,merged:[],deleted:[],message:`no intent main branch (${n})`};let r=[],i=[];for(let s of t){let o=`haiku/${e}/${s}`;if(!Pt(o)||Zc(o,n))continue;let a=GD(e,s);if(!a.success)return{success:!1,merged:r,deleted:i,message:`merge of '${s}' into main failed: ${a.message}`};r.push(o)}if(mr()!==n)try{OT(["checkout",n])}catch(s){return{success:!1,merged:r,deleted:i,message:`checkout ${n} failed: ${s instanceof Error?s.message:String(s)}`}}for(let s of t){let o=`haiku/${e}/${s}`;Pt(o)&&Zc(o,n)&&YD(o)&&i.push(o)}return ae(["git","worktree","prune"]),{success:!0,merged:r,deleted:i,message:`finalized ${e}: merged ${r.length}, deleted ${i.length}`}}function cBn(e,t,n){if(!ve())return{success:!0,message:"no git"};if(n==="main")return{success:!1,message:"cannot revisit 'main'"};let r=`haiku/${e}/${n}`,i=t?`haiku/${e}/${t}`:"",s=`haiku/${e}/main`;if(!Pt(s))return{success:!0,message:`${s} does not exist \u2014 nothing to merge`};function o(){let a=ae(["git","status","--porcelain"]);return a?a.split(` +`).filter(c=>c.startsWith("UU ")||c.startsWith("AA ")||c.startsWith("DD ")||c.startsWith("AU ")||c.startsWith("UA ")||c.startsWith("DU ")||c.startsWith("UD ")).map(c=>c.slice(3).trim()):[]}try{Pt(r)||Gt(["git","branch",r,s]),mr()!==r&&OT(["checkout",r]);let a=ae(["git","rev-list","--count",`${r}..${s}`]);if(a&&Number.parseInt(a,10)>0)try{Gt(["git","merge",s,"--no-ff","--no-edit","-m",`haiku: merge main \u2192 ${n} (revisit prep)`])}catch(c){let u=o();return u.length>0?{success:!1,isConflict:!0,conflictFiles:u,message:`Merge main \u2192 ${n} left ${u.length} conflicted file(s): ${u.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit \u2014 the workflow engine will detect main is already merged and continue with the ${t} merge.`}:{success:!1,message:`Merge main \u2192 ${n} failed: ${c instanceof Error?c.message:String(c)}`}}if(i&&t!==n&&Pt(i)){let c=ae(["git","rev-list","--count",`${r}..${i}`]);if(c&&Number.parseInt(c,10)>0)try{Gt(["git","merge",i,"--no-ff","--no-edit","-m",`haiku: merge ${t} \u2192 ${n} (revisit carries future-stage work back)`])}catch(u){let l=o();return l.length>0?{success:!1,isConflict:!0,conflictFiles:l,message:`Merge ${t} \u2192 ${n} left ${l.length} conflicted file(s): ${l.join(", ")}. Resolve conflicts on branch '${r}' (edit files, \`git add\`, \`git commit\`), then retry the revisit. Main has already been merged cleanly and won't be remerged.`}:{success:!1,message:`Merge ${t} \u2192 ${n} failed: ${u instanceof Error?u.message:String(u)}`}}}return{success:!0,message:`prepared ${r} with main${i&&t!==n?` + ${t}`:""} merged in`}}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}}var Ra,Aa,yr=v(()=>{"use strict";Nh();$K();Ge();vo();Ra=3e4,Aa={...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:"true",SSH_ASKPASS:"true",SSH_ASKPASS_REQUIRE:"never"}});import*as _ft from"node:fs";import*as Md from"node:path";function XD(e,t,n){let r=t.slice(0,n).split(/\n/),i=r.length,s=r[i-1].length+1;throw e+=" at line "+i+" col "+s+`: `+t.split(/\n/)[i-1]+` - `+Array(s).join(" ")+"^",new _ft(e)}function dBn(e,t,n,r){let i=t.split(` + `+Array(s).join(" ")+"^",new Tft(e)}function dBn(e,t,n,r){let i=t.split(` `),s=Math.max(n-3,0),o=Math.min(i.length,n+3),a=r,c=i.slice(s,o).map((l,d)=>{let f=d+s+1;return(f===n?" >> ":" ")+f+"| "+l}).join(` `),u=new uBn((a?a+":"+n+` `:"line "+n+` `)+c+` -`+e.message);throw u.name=e.name,u.cause=e,u}function fBn(e){let t="";try{t=Eft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Ope(`Could not find template: ${e}`):n}return t}function pBn(e,t){let n="",r=this.config.views;if(!r)throw new Ope("Views directory is not defined");let i=t?.filepath,s=this.config.defaultExtension===void 0?".eta":this.config.defaultExtension,o=JSON.stringify({filename:i,path:e,views:this.config.views});if(e+=Md.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(mBn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Md.join(r,a)}else n=Md.join(Md.dirname(i),e)}else n=Md.join(r,e);if(hBn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Ope(`Template '${e}' is not in the views directory`)}function hBn(e,t){let n=Md.relative(e,t);return n&&!n.startsWith("..")&&!Md.isAbsolute(n)}function yBn(e,t){let n=this.config,r=t?.async?gBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new _ft(`Bad template syntax +`+e.message);throw u.name=e.name,u.cause=e,u}function fBn(e){let t="";try{t=_ft.readFileSync(e,"utf8")}catch(n){throw n?.code==="ENOENT"?new Ppe(`Could not find template: ${e}`):n}return t}function pBn(e,t){let n="",r=this.config.views;if(!r)throw new Ppe("Views directory is not defined");let i=t?.filepath,s=this.config.defaultExtension===void 0?".eta":this.config.defaultExtension,o=JSON.stringify({filename:i,path:e,views:this.config.views});if(e+=Md.extname(e)?"":s,i){if(this.config.cacheFilepaths&&this.filepathCache[o])return this.filepathCache[o];if(mBn.exec(e)?.length){let a=e.replace(/^\/*|^\\*/,"");n=Md.join(r,a)}else n=Md.join(Md.dirname(i),e)}else n=Md.join(r,e);if(hBn(r,n))return i&&this.config.cacheFilepaths&&(this.filepathCache[o]=n),n;throw new Ppe(`Template '${e}' is not in the views directory`)}function hBn(e,t){let n=Md.relative(e,t);return n&&!n.startsWith("..")&&!Md.isAbsolute(n)}function yBn(e,t){let n=this.config,r=t?.async?gBn:Function;try{return new r(n.varName,"options",this.compileToString.call(this,e,t))}catch(i){throw i instanceof SyntaxError?new Tft(`Bad template syntax `+i.message+` `+Array(i.message.length+1).join("=")+` @@ -591,48 +591,48 @@ return __eta.res; `):o==="i"?(t.autoFilter&&(a="__eta.f("+a+")"),t.autoEscape&&(a="__eta.e("+a+")"),i+="__eta.res+="+a+`; `):o==="e"?i+=a+` `:Object.hasOwn(t.customTags,o)&&(i+=`__eta.res+=this.config.customTags[${JSON.stringify(o)}](${JSON.stringify(a)},${t.varName}); -`)}}return i}function EBn(e,t,n,r){let i,s;return Array.isArray(t.autoTrim)?(i=t.autoTrim[1],s=t.autoTrim[0]):i=s=t.autoTrim,(n||n===!1)&&(i=n),(r||r===!1)&&(s=r),!s&&!i?e:i==="slurp"&&s==="slurp"?e.trim():(i==="_"||i==="slurp"?e=e.trimStart():(i==="-"||i==="nl")&&(e=e.replace(/^(?:\r\n|\n|\r)/,"")),s==="_"||s==="slurp"?e=e.trimEnd():(s==="-"||s==="nl")&&(e=e.replace(/(?:\r\n|\n|\r)$/,"")),e)}function TBn(e){return _Bn[e]}function vBn(e){let t=String(e);return/[&<>"']/.test(t)?t.replace(/[&<>"']/g,TBn):t}function d3(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function RBn(e,t){return e.slice(0,t).split(` +`)}}return i}function EBn(e,t,n,r){let i,s;return Array.isArray(t.autoTrim)?(i=t.autoTrim[1],s=t.autoTrim[0]):i=s=t.autoTrim,(n||n===!1)&&(i=n),(r||r===!1)&&(s=r),!s&&!i?e:i==="slurp"&&s==="slurp"?e.trim():(i==="_"||i==="slurp"?e=e.trimStart():(i==="-"||i==="nl")&&(e=e.replace(/^(?:\r\n|\n|\r)/,"")),s==="_"||s==="slurp"?e=e.trimEnd():(s==="-"||s==="nl")&&(e=e.replace(/(?:\r\n|\n|\r)$/,"")),e)}function TBn(e){return _Bn[e]}function vBn(e){let t=String(e);return/[&<>"']/.test(t)?t.replace(/[&<>"']/g,TBn):t}function p3(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function RBn(e,t){return e.slice(0,t).split(` `).length}function ABn(e){let t=this.config,n=[],r=!1,i=0,s=t.parse,o=Object.keys(t.customTags);if(t.plugins)for(let f=0;ff&&p?f+"|"+d3(p):p?d3(p):f,""),u=new RegExp(d3(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+d3(t.tags[1])+")","g"),d;for(;d=u.exec(e);){let f=e.slice(i,d.index);i=d[0].length+d.index;let p=d[1],h=d[2]||"";a(f,p),l.lastIndex=i;let m,g=!1;for(;m=l.exec(e);)if(m[1]){let y=e.slice(i,m.index);u.lastIndex=i=l.lastIndex,r=m[2],g={t:h===s.exec?"e":h===s.raw?"r":h===s.interpolate?"i":o.includes(h)?h:"",val:y};break}else{let y=m[0];if(y==="/*"){let b=e.indexOf("*/",l.lastIndex);b===-1&&JD("unclosed comment",e,m.index),l.lastIndex=b}else y==="'"?(u3.lastIndex=m.index,u3.exec(e)?l.lastIndex=u3.lastIndex:JD("unclosed string",e,m.index)):y==='"'?(l3.lastIndex=m.index,l3.exec(e)?l.lastIndex=l3.lastIndex:JD("unclosed string",e,m.index)):y==="`"&&(c3.lastIndex=m.index,c3.exec(e)?l.lastIndex=c3.lastIndex:JD("unclosed string",e,m.index))}g?(t.debug&&(g.lineNo=RBn(e,d.index)),n.push(g)):JD("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{XD=class extends Error{constructor(e){super(e),this.name="Eta Error"}},_ft=class extends XD{constructor(e){super(e),this.name="EtaParser Error"}},uBn=class extends XD{constructor(e){super(e),this.name="EtaRuntime Error"}},Ope=class extends XD{constructor(e){super(e),this.name="EtaFileResolution Error"}},lBn=class extends XD{constructor(e){super(e),this.name="EtaNameResolution Error"}};mBn=/^\\|^\//,gBn=(async()=>{}).constructor;_Bn={"&":"&","<":"<",">":">",'"':""","'":"'"};Sft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:vBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},c3=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,u3=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,l3=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;bft=class{constructor(e){this.cache=e}define(e,t){this.cache[e]=t}get(e){return this.cache[e]}remove(e){delete this.cache[e]}reset(){this.cache={}}load(e){this.cache={...this.cache,...e}}},IBn=class{constructor(e){e?this.config={...Sft,...e}:this.config={...Sft};let t=[this.config.parse.exec,this.config.parse.interpolate,this.config.parse.raw,"-","_"];for(let n of Object.keys(this.config.customTags))if(t.includes(n))throw new XD(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=dBn;compile=yBn;compileToString=SBn;compileBody=bBn;parse=ABn;render=vft;renderAsync=Rft;renderString=wBn;renderStringAsync=kBn;filepathCache={};templatesSync=new bft({});templatesAsync=new bft({});resolvePath=null;readFile=null;configure(e){this.config={...this.config,...e}}withConfig(e){return{...this,config:{...this.config,...e}}}loadTemplate(e,t,n){if(typeof t=="string")(n?.async?this.templatesAsync:this.templatesSync).define(e,this.compile(t,n));else{let r=this.templatesSync;(t.constructor.name==="AsyncFunction"||n?.async)&&(r=this.templatesAsync),r.define(e,t)}}},_e=class extends IBn{readFile=fBn;resolvePath=pBn}});import{execFileSync as xBn}from"node:child_process";import{existsSync as OBn,mkdirSync as w5r,readdirSync as k5r,readFileSync as I5r,writeFileSync as x5r}from"node:fs";import{join as Ppe}from"node:path";function ve(){if(CT!==null)return CT;try{xBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),CT=!0}catch{CT=!1}return CT}function Aft(){CT=null}function wft(e){CT=e}function kft(e){Npe=e}function Te(){if(Npe)return Npe;let e=process.cwd();for(let t=0;t<20;t++){if(OBn(Ppe(e,".haiku")))return Ppe(e,".haiku");let n=Ppe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var PBn,CT,Npe,bb=v(()=>{"use strict";TD();PBn=Re(Kt(),1);sh();CT=null;Npe=null});import{execFileSync as NBn}from"node:child_process";import{mkdirSync as p3,mkdtempSync as CBn,readdirSync as L5r,renameSync as MBn,rmSync as DBn,statSync as U5r,writeFileSync as LBn}from"node:fs";import{homedir as UBn,tmpdir as FBn}from"node:os";import{dirname as Ift,join as Fu,resolve as jBn}from"node:path";function xft(e){e&&(f3&&f3!==e||(f3=e))}function HBn(){return f3||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function qBn(){try{let e=NBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Ift(jBn(e))}catch{}try{return Ift(Te())}catch{return process.cwd()}}function BBn(){return qBn().replace(/\//g,"-")}function zBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function Mpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(zBn()?(Cpe||(Cpe=CBn(Fu(FBn(),"haiku-test-projects-"))),Cpe):Fu(UBn(),".haiku","projects"))}function Dpe(){return Fu(Mpe(),BBn())}function h3(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Fu("stages",n(t)):"intent",s=Fu(Dpe(),"intents",r,"prompts",i);return p3(s,{recursive:!0}),s}function GBn(){let e=Fu(Dpe(),"sessions",HBn());return p3(e,{recursive:!0}),e}function Oft(e){return Fu(GBn(),e)}function OI(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Fu(Dpe(),"intents",n);return p3(r,{recursive:!0}),Fu(r,t)}function Pft(e){let{unit:t,hat:n,bolt:r,content:i,intent:s,stage:o,omitBolt:a}=e,c=a?"":`-${r}`,u=`subagent-${t.replace(/\.md$/,"")}-${n}${c}`,l=h3(s,o),d=Fu(l,`${u}.prompt.md`);g3(d,i);let f=`Read the file at \`${d}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`;return{path:d,parentInstruction:f}}function Eb(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Fu(h3(t,n),"refs",o(r));p3(a,{recursive:!0});let c=Fu(a,`${o(i).replace(/\.md$/,"")}.md`);return g3(c,s),c}function Nft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=h3(n,r),c=Fu(a,`${o}.prompt.md`);return g3(c,i),{path:c}}function Cft(e){let{path:t,parentInstruction:n,agentType:r,model:i,heading:s,toolAttr:o,background:a=!1}=e,c=n??`Read the file at \`${t}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`,u=o?' tool="Agent"':"",l=i?` model="${i}"`:"",d=a?' background="true"':"",f=s??"## Subagent Dispatch (MANDATORY \u2014 relay verbatim)",p=[`> **Parent: do NOT Read \`${t}\` yourself.** That file is the subagent's prompt \u2014 it is sized for the subagent's context, not yours. Reading it pollutes your context with content the subagent already gets via its own Read call when it executes. Pass the entire \`\` block below to the Task tool verbatim and let the subagent do the work.`,""].join(` +`).replace(/^\s+|\s+$/gm,"")),l3.lastIndex=0,d3.lastIndex=0,f3.lastIndex=0;function a(f,p){f&&(f=EBn(f,t,r,p),f&&(f=f.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n"),n.push(f)))}let c=[s.exec,s.interpolate,s.raw,...o].reduce((f,p)=>f&&p?f+"|"+p3(p):p?p3(p):f,""),u=new RegExp(p3(t.tags[0])+"(-|_)?\\s*("+c+")?\\s*","g"),l=new RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+p3(t.tags[1])+")","g"),d;for(;d=u.exec(e);){let f=e.slice(i,d.index);i=d[0].length+d.index;let p=d[1],h=d[2]||"";a(f,p),l.lastIndex=i;let m,g=!1;for(;m=l.exec(e);)if(m[1]){let y=e.slice(i,m.index);u.lastIndex=i=l.lastIndex,r=m[2],g={t:h===s.exec?"e":h===s.raw?"r":h===s.interpolate?"i":o.includes(h)?h:"",val:y};break}else{let y=m[0];if(y==="/*"){let b=e.indexOf("*/",l.lastIndex);b===-1&&XD("unclosed comment",e,m.index),l.lastIndex=b}else y==="'"?(d3.lastIndex=m.index,d3.exec(e)?l.lastIndex=d3.lastIndex:XD("unclosed string",e,m.index)):y==='"'?(f3.lastIndex=m.index,f3.exec(e)?l.lastIndex=f3.lastIndex:XD("unclosed string",e,m.index)):y==="`"&&(l3.lastIndex=m.index,l3.exec(e)?l.lastIndex=l3.lastIndex:XD("unclosed string",e,m.index))}g?(t.debug&&(g.lineNo=RBn(e,d.index)),n.push(g)):XD("unclosed tag",e,d.index)}if(a(e.slice(i,e.length),!1),t.plugins)for(let f=0;f{QD=class extends Error{constructor(e){super(e),this.name="Eta Error"}},Tft=class extends QD{constructor(e){super(e),this.name="EtaParser Error"}},uBn=class extends QD{constructor(e){super(e),this.name="EtaRuntime Error"}},Ppe=class extends QD{constructor(e){super(e),this.name="EtaFileResolution Error"}},lBn=class extends QD{constructor(e){super(e),this.name="EtaNameResolution Error"}};mBn=/^\\|^\//,gBn=(async()=>{}).constructor;_Bn={"&":"&","<":"<",">":">",'"':""","'":"'"};bft={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:vBn,filterFunction:e=>String(e),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},l3=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,d3=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,f3=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;Eft=class{constructor(e){this.cache=e}define(e,t){this.cache[e]=t}get(e){return this.cache[e]}remove(e){delete this.cache[e]}reset(){this.cache={}}load(e){this.cache={...this.cache,...e}}},IBn=class{constructor(e){e?this.config={...bft,...e}:this.config={...bft};let t=[this.config.parse.exec,this.config.parse.interpolate,this.config.parse.raw,"-","_"];for(let n of Object.keys(this.config.customTags))if(t.includes(n))throw new QD(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=dBn;compile=yBn;compileToString=SBn;compileBody=bBn;parse=ABn;render=Rft;renderAsync=Aft;renderString=wBn;renderStringAsync=kBn;filepathCache={};templatesSync=new Eft({});templatesAsync=new Eft({});resolvePath=null;readFile=null;configure(e){this.config={...this.config,...e}}withConfig(e){return{...this,config:{...this.config,...e}}}loadTemplate(e,t,n){if(typeof t=="string")(n?.async?this.templatesAsync:this.templatesSync).define(e,this.compile(t,n));else{let r=this.templatesSync;(t.constructor.name==="AsyncFunction"||n?.async)&&(r=this.templatesAsync),r.define(e,t)}}},_e=class extends IBn{readFile=fBn;resolvePath=pBn}});import{execFileSync as xBn}from"node:child_process";import{existsSync as OBn,mkdirSync as w5r,readdirSync as k5r,readFileSync as I5r,writeFileSync as x5r}from"node:fs";import{join as Npe}from"node:path";function ve(){if(CT!==null)return CT;try{xBn("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:"pipe"}),CT=!0}catch{CT=!1}return CT}function wft(){CT=null}function kft(e){CT=e}function Ift(e){Cpe=e}function Te(){if(Cpe)return Cpe;let e=process.cwd();for(let t=0;t<20;t++){if(OBn(Npe(e,".haiku")))return Npe(e,".haiku");let n=Npe(e,"..");if(n===e)break;e=n}throw new Error("No .haiku/ directory found")}var PBn,CT,Cpe,bb=v(()=>{"use strict";vD();PBn=Re(Kt(),1);sh();CT=null;Cpe=null});import{execFileSync as NBn}from"node:child_process";import{mkdirSync as m3,mkdtempSync as CBn,readdirSync as L5r,renameSync as MBn,rmSync as DBn,statSync as U5r,writeFileSync as LBn}from"node:fs";import{homedir as UBn,tmpdir as FBn}from"node:os";import{dirname as xft,join as Fu,resolve as jBn}from"node:path";function Oft(e){e&&(h3&&h3!==e||(h3=e))}function HBn(){return h3||process.env.CLAUDE_SESSION_ID||process.env.HAIKU_SESSION_ID||String(process.pid)}function qBn(){try{let e=NBn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return xft(jBn(e))}catch{}try{return xft(Te())}catch{return process.cwd()}}function BBn(){return qBn().replace(/\//g,"-")}function zBn(){return process.env.NODE_TEST_CONTEXT||process.env.NODE_ENV==="test"?!0:process.argv.some(e=>/\.test\.(mjs|js|ts)$/.test(e))}function Dpe(){let e=process.env.HAIKU_PROJECTS_ROOT;return e||(zBn()?(Mpe||(Mpe=CBn(Fu(FBn(),"haiku-test-projects-"))),Mpe):Fu(UBn(),".haiku","projects"))}function Lpe(){return Fu(Dpe(),BBn())}function g3(e,t){let n=o=>o.replace(/[^A-Za-z0-9._-]+/g,"-"),r=n(e),i=t?Fu("stages",n(t)):"intent",s=Fu(Lpe(),"intents",r,"prompts",i);return m3(s,{recursive:!0}),s}function GBn(){let e=Fu(Lpe(),"sessions",HBn());return m3(e,{recursive:!0}),e}function Pft(e){return Fu(GBn(),e)}function OI(e,t){let n=e.replace(/[^A-Za-z0-9._-]+/g,"-"),r=Fu(Lpe(),"intents",n);return m3(r,{recursive:!0}),Fu(r,t)}function Nft(e){let{unit:t,hat:n,bolt:r,content:i,intent:s,stage:o,omitBolt:a}=e,c=a?"":`-${r}`,u=`subagent-${t.replace(/\.md$/,"")}-${n}${c}`,l=g3(s,o),d=Fu(l,`${u}.prompt.md`);S3(d,i);let f=`Read the file at \`${d}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`;return{path:d,parentInstruction:f}}function Eb(e){let{intent:t,stage:n,kind:r,name:i,body:s}=e,o=u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"),a=Fu(g3(t,n),"refs",o(r));m3(a,{recursive:!0});let c=Fu(a,`${o(i).replace(/\.md$/,"")}.md`);return S3(c,s),c}function Cft(e){let{action:t,intent:n,stage:r,content:i}=e,o=`main-action-${(u=>u.replace(/[^A-Za-z0-9._-]+/g,"-"))(t)}`,a=g3(n,r),c=Fu(a,`${o}.prompt.md`);return S3(c,i),{path:c}}function Mft(e){let{path:t,parentInstruction:n,agentType:r,model:i,heading:s,toolAttr:o,background:a=!1}=e,c=n??`Read the file at \`${t}\` and execute its instructions exactly. The file is the complete, canonical subagent prompt authored by the workflow engine \u2014 do not paraphrase or skip any of it.`,u=o?' tool="Agent"':"",l=i?` model="${i}"`:"",d=a?' background="true"':"",f=s??"## Subagent Dispatch (MANDATORY \u2014 relay verbatim)",p=[`> **Parent: do NOT Read \`${t}\` yourself.** That file is the subagent's prompt \u2014 it is sized for the subagent's context, not yours. Reading it pollutes your context with content the subagent already gets via its own Read call when it executes. Pass the entire \`\` block below to the Task tool verbatim and let the subagent do the work.`,""].join(` `);return`${f} ${p} ${c} -`}function VBn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Fu(h3(i,s),`${o}.next-relay.md`)}function m3(e,t){g3(VBn(e),t)}function g3(e,t){let n=`${e}.${process.pid}.tmp`;LBn(n,t,"utf8");try{MBn(n,e)}catch(r){try{DBn(n,{force:!0})}catch{}throw new Error(`atomicWrite: rename failed \u2014 tmp and final must share a filesystem. Original: ${r instanceof Error?r.message:String(r)}`)}}var f3,Cpe,vl=v(()=>{"use strict";bb();f3=null;Cpe=null});import{existsSync as WBn,readFileSync as KBn,statSync as Lpe}from"node:fs";import{join as y3}from"node:path";import{fileURLToPath as YBn}from"node:url";function JBn(e,t){let n=y3(process.cwd(),".haiku","prompts",e);try{if(Lpe(n).isFile())return n}catch{}let r=y3(t,e);try{if(Lpe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Uft(e){let t=YBn(e),n=t.indexOf(Dft);if(n<0)throw new Error(`loadTemplate: import.meta.url is not under the prompts tree (${t})`);let r=t.slice(0,n),i=t.slice(n+Dft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:y3(r,"plugin","prompts")}}function XBn(e){let t=Lpe(e).mtimeMs,n=Lft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=KBn(e,"utf8");return Lft.set(e,{body:r,mtimeMs:t,path:e}),r}function QBn(){let e=y3(nn(),"prompts");if(WBn(e))return e;try{return Uft(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(Mft))n=e.slice(Mft.length),r=QBn();else{let a=Uft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=ZBn.get(i);if(s!==void 0)return s;let o=JBn(i,r);return XBn(o)}var Mft,Dft,Lft,ZBn,ht=v(()=>{"use strict";Ci();Mft="@canon:",Dft="/packages/haiku/src/orchestrator/prompts/",Lft=new Map,ZBn=new Map});import{existsSync as S3,readFileSync as Upe}from"node:fs";import{join as QD}from"node:path";function $Bn(e){let t=e;for(let n=0;n<4;n++){let r=QD(t,"settings.yml");if(S3(r))try{let i=Upe(r,"utf8"),{data:s}=(0,b3.default)(`--- +`}function VBn(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s}=e,o=`subagent-${t.replace(/\.md$/,"")}-${n}-${r}`;return Fu(g3(i,s),`${o}.next-relay.md`)}function y3(e,t){S3(VBn(e),t)}function S3(e,t){let n=`${e}.${process.pid}.tmp`;LBn(n,t,"utf8");try{MBn(n,e)}catch(r){try{DBn(n,{force:!0})}catch{}throw new Error(`atomicWrite: rename failed \u2014 tmp and final must share a filesystem. Original: ${r instanceof Error?r.message:String(r)}`)}}var h3,Mpe,vl=v(()=>{"use strict";bb();h3=null;Mpe=null});import{existsSync as WBn,readFileSync as KBn,statSync as Upe}from"node:fs";import{join as b3}from"node:path";import{fileURLToPath as YBn}from"node:url";function JBn(e,t){let n=b3(process.cwd(),".haiku","prompts",e);try{if(Upe(n).isFile())return n}catch{}let r=b3(t,e);try{if(Upe(r).isFile())return r}catch{}throw new Error(`loadTemplate: could not find "${e}" \u2014 checked ${n} and ${r}`)}function Fft(e){let t=YBn(e),n=t.indexOf(Lft);if(n<0)throw new Error(`loadTemplate: import.meta.url is not under the prompts tree (${t})`);let r=t.slice(0,n),i=t.slice(n+Lft.length),s=i.lastIndexOf("/");return{rel:s<0?"":i.slice(0,s),pluginPromptsRoot:b3(r,"plugin","prompts")}}function XBn(e){let t=Upe(e).mtimeMs,n=Uft.get(e);if(n&&n.mtimeMs>=t)return n.body;let r=KBn(e,"utf8");return Uft.set(e,{body:r,mtimeMs:t,path:e}),r}function QBn(){let e=b3(nn(),"prompts");if(WBn(e))return e;try{return Fft(import.meta.url).pluginPromptsRoot}catch{return e}}function ie(e,t="template.eta.md"){let n,r;if(e.startsWith(Dft))n=e.slice(Dft.length),r=QBn();else{let a=Fft(e);n=a.rel,r=a.pluginPromptsRoot}let i=n?`${n}/${t}`:t,s=ZBn.get(i);if(s!==void 0)return s;let o=JBn(i,r);return XBn(o)}var Dft,Lft,Uft,ZBn,ht=v(()=>{"use strict";Ci();Dft="@canon:",Lft="/packages/haiku/src/orchestrator/prompts/",Uft=new Map,ZBn=new Map});import{existsSync as E3,readFileSync as Fpe}from"node:fs";import{join as $D}from"node:path";function $Bn(e){let t=e;for(let n=0;n<4;n++){let r=$D(t,"settings.yml");if(E3(r))try{let i=Fpe(r,"utf8"),{data:s}=(0,_3.default)(`--- ${i} --- -`);return s}catch{return{}}t=QD(t,"..")}try{let n=Te(),r=QD(n,"settings.yml");if(S3(r)){let i=Upe(r,"utf8"),{data:s}=(0,b3.default)(`--- +`);return s}catch{return{}}t=$D(t,"..")}try{let n=Te(),r=$D(n,"settings.yml");if(E3(r)){let i=Fpe(r,"utf8"),{data:s}=(0,_3.default)(`--- ${i} --- -`);return s}}catch{}return{}}function ezn(e){let t;try{t=Te()}catch{t=process.cwd()}let n=QD(t,"providers",`${e}.md`);if(S3(n))return n;let r=QD(nn(),"providers",`${e}.md`);return S3(r)?r:null}function tzn(e){try{let t=Upe(e,"utf8"),n=(0,b3.default)(t),r=n.data,i=typeof r.provider_kind=="string"?r.provider_kind:"",s=r.category==="source"||r.category==="workflow"?r.category:null;if(!i||!s)return null;let o=r.always_on===!0,c=(Array.isArray(r.splices_into)?r.splices_into:[]).filter(u=>typeof u=="string");return{kind:i,category:s,alwaysOn:o,splicesInto:c,body:n.content.trim(),path:e}}catch{return null}}function nzn(e){return e==="git"?ve():!0}function rzn(e){let n=$Bn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=ezn(s);if(!o)continue;let a=tzn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&nzn(s)&&i.push(a)}return i}function Fft(e,t){return rzn(t).filter(n=>n.splicesInto.includes(e))}var b3,jft=v(()=>{"use strict";b3=Re(Kt(),1);Ci();bb()});var MT,$D,E3=v(()=>{"use strict";MT=new Set(["runtime-verifier"]),$D=new Set(["delivery-verifier"])});import{execFileSync as izn}from"node:child_process";import{mkdirSync as zft,writeFileSync as Gft}from"node:fs";import{dirname as Hft,join as eL,resolve as szn}from"node:path";function DT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function hzn(){return Fpe===null&&(Fpe=ozn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Df})),Fpe}function mzn(){try{let e=izn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return Hft(szn(e))}catch{}try{return Hft(Te())}catch{return process.cwd()}}function jpe(){let e=mzn().replace(/\//g,"-");return eL(Mpe(),e,"shared")}function gzn(){let e=jpe();if(qft!==e){zft(e,{recursive:!0});for(let[t,n]of Object.entries(Vft))try{Gft(eL(e,`${t}.md`),n.content(),"utf8")}catch{}qft=e}}function bs(e){gzn();let t=Vft[e],n=eL(jpe(),`${e}.md`);return[`### ${t.title} (REQUIRED reading)`,"",`**Read** \`${n}\` **before continuing this prompt.** It defines ${t.summary} These rules are universal \u2014 the workflow engine validates against them; non-compliant work blocks at \`haiku_run_next\`. The file is stable across ticks, so once you've read it this session you've got it.`].join(` -`)}function Szn(e,t){let n=yzn();zft(n,{recursive:!0});let r=eL(n,`${e}.md`),i=`${r}:${e}`;if(!Bft.has(i)){try{Gft(r,t,"utf8")}catch{}Bft.add(i)}return r}function Wft(e){let t=Szn(e.kind,e.body),n=e.description?` ${e.description}`:"";return[`### Provider: \`${e.kind}\` (${e.category}) \u2014 behavior contract`,"",`**Read** \`${t}\` **before continuing this prompt.**${n} The contract describes how to operate against the configured \`${e.kind}\` provider in this project \u2014 what to read, what to write, what to record in \`external_refs:\`, and how to degrade when the required MCP tools aren't available.`].join(` -`)}var ozn,azn,czn,uzn,lzn,dzn,fzn,pzn,Fpe,Vft,qft,yzn,Bft,Uh=v(()=>{"use strict";gt();bb();Ge();vl();ht();E3();ozn=new _e({autoEscape:!1,useWith:!0});azn=DT("announcement.md"),czn=DT("subagent-error-recovery.md"),uzn=DT("workflow-contracts-elaborate.md"),lzn=DT("workflow-contracts-execute.md"),dzn=DT("workflow-contracts-fix-loop.md"),fzn=DT("runtime-verification.md"),pzn=DT("service-dependencies.md"),Fpe=null;Vft={"workflow-contracts-elaborate":{content:()=>uzn(),title:"Universal workflow contracts (elaborate)",summary:"unit-file naming, the same-stage `depends_on:` DAG, executable `quality_gates:`, per-unit `model:` selection, revisit `closes:`, the elaborate-phase MCP tool surface, unit-content validation, and authoring discipline."},"workflow-contracts-execute":{content:()=>lzn(),title:"Universal workflow contracts (execute)",summary:"the per-hat advance/reject contract, bolt count limits, and the engine-owned fields (`bolt`, `hat`, `status`, `iterations`) hats must NOT mutate directly."},"workflow-contracts-review":{content:()=>hzn(),title:"Universal workflow contracts (review)",summary:"the review/approval role split, when to file feedback vs sign-off, and the iteration cap that drives gate-blocking escalation."},"workflow-contracts-fix-loop":{content:()=>dzn(),title:"Universal workflow contracts (fix-loop)",summary:"how fix hats edit feedback bodies (NOT unit specs), the per-finding bolt cap, the advance vs reject vs reject_hat distinction, and feedback-assessor's closure authority."},"workflow-contracts-announcement":{content:()=>azn(),title:"Subagent-announce discipline",summary:"how to announce a subagent dispatch in the same response as the spawn \u2014 one sentence on WHAT is starting and HOW MANY agents, no jargon."},"subagent-error-recovery":{content:()=>czn(),title:"Subagent error-recovery contract",summary:"how to handle subagent failures \u2014 rescue attempts before declaring blocked, the diagnostic that goes in the bolt summary, and the workflow tool surface for failure reporting."},"runtime-verification":{content:()=>fzn(),title:"Runtime-verification doctrine",summary:"that verification is runtime observation (NOT running tests/typecheck); how to find the change's surface and route to a handle (web/GUI \u2192 `haiku_view` boot + `haiku-playwright`; CLI \u2192 run the command; server \u2192 the socket; library \u2192 the public export); the `.haiku/boot.md` project boot recipe; how to drive the smallest path, probe around the change, capture evidence under `proof/`; and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>pzn(),title:"Service-dependency doctrine",summary:"when a quality gate needs a live dependency (DB, queue, cache): best-effort boot the project's declared services (`.haiku/boot.md` `service:` processes / compose / make) when the tool is live, else escalate to the user \u2014 NEVER advance or mark a gate passed on an unreachable environment, because a gate that didn't run verified nothing."}},qft="";yzn=()=>eL(jpe(),"providers"),Bft=new Set});import{existsSync as tL,readdirSync as bzn,readFileSync as _3}from"node:fs";import{join as Ezn}from"node:path";function PI(e){if(!(!e||!tL(e)))try{let{data:t}=re(_3(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function NI(e){return e?e==="lens"?["## Mandate interpretation: LENS","","Your mandate above is a **lens**, not a checklist.","","- **In-spirit findings count.** A finding obviously within your mandate's lens but not listed as an explicit checklist item is IN scope. The mandate names representative concerns, not the exhaustive set.","- **Out-of-mandate findings are NOT in scope, even if visible.** If your glob matched a file but the change has nothing to do with your lens, return zero findings. Inventing findings to justify dispatch is a scope violation, not thoroughness.","- **Letter and spirit are not separable.** A change that technically passes a literal check but obviously violates what the check exists to enforce IS a finding. State the spirit-violation explicitly in the body so the fix loop knows what to address."].join(` +`);return s}}catch{}return{}}function ezn(e){let t;try{t=Te()}catch{t=process.cwd()}let n=$D(t,"providers",`${e}.md`);if(E3(n))return n;let r=$D(nn(),"providers",`${e}.md`);return E3(r)?r:null}function tzn(e){try{let t=Fpe(e,"utf8"),n=(0,_3.default)(t),r=n.data,i=typeof r.provider_kind=="string"?r.provider_kind:"",s=r.category==="source"||r.category==="workflow"?r.category:null;if(!i||!s)return null;let o=r.always_on===!0,c=(Array.isArray(r.splices_into)?r.splices_into:[]).filter(u=>typeof u=="string");return{kind:i,category:s,alwaysOn:o,splicesInto:c,body:n.content.trim(),path:e}}catch{return null}}function nzn(e){return e==="git"?ve():!0}function rzn(e){let n=$Bn(e).providers??{},r=["git","ticketing","spec","knowledge","design"],i=[];for(let s of r){let o=ezn(s);if(!o)continue;let a=tzn(o);if(!a)continue;if(n[s]!==void 0){i.push(a);continue}a.alwaysOn&&nzn(s)&&i.push(a)}return i}function jft(e,t){return rzn(t).filter(n=>n.splicesInto.includes(e))}var _3,Hft=v(()=>{"use strict";_3=Re(Kt(),1);Ci();bb()});var MT,eL,T3=v(()=>{"use strict";MT=new Set(["runtime-verifier"]),eL=new Set(["delivery-verifier"])});import{execFileSync as izn}from"node:child_process";import{mkdirSync as Gft,writeFileSync as Vft}from"node:fs";import{dirname as qft,join as tL,resolve as szn}from"node:path";function DT(e){let t=null;return()=>(t===null&&(t=ie("@canon:_shared",e)),t)}function hzn(){return jpe===null&&(jpe=ozn.renderString(ie("@canon:_shared","workflow-contracts-review.eta.md"),{maxStageIterations:Df})),jpe}function mzn(){try{let e=izn("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(e)return qft(szn(e))}catch{}try{return qft(Te())}catch{return process.cwd()}}function Hpe(){let e=mzn().replace(/\//g,"-");return tL(Dpe(),e,"shared")}function gzn(){let e=Hpe();if(Bft!==e){Gft(e,{recursive:!0});for(let[t,n]of Object.entries(Wft))try{Vft(tL(e,`${t}.md`),n.content(),"utf8")}catch{}Bft=e}}function bs(e){gzn();let t=Wft[e],n=tL(Hpe(),`${e}.md`);return[`### ${t.title} (REQUIRED reading)`,"",`**Read** \`${n}\` **before continuing this prompt.** It defines ${t.summary} These rules are universal \u2014 the workflow engine validates against them; non-compliant work blocks at \`haiku_run_next\`. The file is stable across ticks, so once you've read it this session you've got it.`].join(` +`)}function Szn(e,t){let n=yzn();Gft(n,{recursive:!0});let r=tL(n,`${e}.md`),i=`${r}:${e}`;if(!zft.has(i)){try{Vft(r,t,"utf8")}catch{}zft.add(i)}return r}function Kft(e){let t=Szn(e.kind,e.body),n=e.description?` ${e.description}`:"";return[`### Provider: \`${e.kind}\` (${e.category}) \u2014 behavior contract`,"",`**Read** \`${t}\` **before continuing this prompt.**${n} The contract describes how to operate against the configured \`${e.kind}\` provider in this project \u2014 what to read, what to write, what to record in \`external_refs:\`, and how to degrade when the required MCP tools aren't available.`].join(` +`)}var ozn,azn,czn,uzn,lzn,dzn,fzn,pzn,jpe,Wft,Bft,yzn,zft,Uh=v(()=>{"use strict";gt();bb();Ge();vl();ht();T3();ozn=new _e({autoEscape:!1,useWith:!0});azn=DT("announcement.md"),czn=DT("subagent-error-recovery.md"),uzn=DT("workflow-contracts-elaborate.md"),lzn=DT("workflow-contracts-execute.md"),dzn=DT("workflow-contracts-fix-loop.md"),fzn=DT("runtime-verification.md"),pzn=DT("service-dependencies.md"),jpe=null;Wft={"workflow-contracts-elaborate":{content:()=>uzn(),title:"Universal workflow contracts (elaborate)",summary:"unit-file naming, the same-stage `depends_on:` DAG, executable `quality_gates:`, per-unit `model:` selection, revisit `closes:`, the elaborate-phase MCP tool surface, unit-content validation, and authoring discipline."},"workflow-contracts-execute":{content:()=>lzn(),title:"Universal workflow contracts (execute)",summary:"the per-hat advance/reject contract, bolt count limits, and the engine-owned fields (`bolt`, `hat`, `status`, `iterations`) hats must NOT mutate directly."},"workflow-contracts-review":{content:()=>hzn(),title:"Universal workflow contracts (review)",summary:"the review/approval role split, when to file feedback vs sign-off, and the iteration cap that drives gate-blocking escalation."},"workflow-contracts-fix-loop":{content:()=>dzn(),title:"Universal workflow contracts (fix-loop)",summary:"how fix hats edit feedback bodies (NOT unit specs), the per-finding bolt cap, the advance vs reject vs reject_hat distinction, and feedback-assessor's closure authority."},"workflow-contracts-announcement":{content:()=>azn(),title:"Subagent-announce discipline",summary:"how to announce a subagent dispatch in the same response as the spawn \u2014 one sentence on WHAT is starting and HOW MANY agents, no jargon."},"subagent-error-recovery":{content:()=>czn(),title:"Subagent error-recovery contract",summary:"how to handle subagent failures \u2014 rescue attempts before declaring blocked, the diagnostic that goes in the bolt summary, and the workflow tool surface for failure reporting."},"runtime-verification":{content:()=>fzn(),title:"Runtime-verification doctrine",summary:"that verification is runtime observation (NOT running tests/typecheck); how to find the change's surface and route to a handle (web/GUI \u2192 `haiku_view` boot + `haiku-playwright`; CLI \u2192 run the command; server \u2192 the socket; library \u2192 the public export); the `.haiku/boot.md` project boot recipe; how to drive the smallest path, probe around the change, capture evidence under `proof/`; and the PASS/FAIL/BLOCKED/SKIP verdict that drives sign-off vs. feedback."},"service-dependencies":{content:()=>pzn(),title:"Service-dependency doctrine",summary:"when a quality gate needs a live dependency (DB, queue, cache): best-effort boot the project's declared services (`.haiku/boot.md` `service:` processes / compose / make) when the tool is live, else escalate to the user \u2014 NEVER advance or mark a gate passed on an unreachable environment, because a gate that didn't run verified nothing."}},Bft="";yzn=()=>tL(Hpe(),"providers"),zft=new Set});import{existsSync as nL,readdirSync as bzn,readFileSync as v3}from"node:fs";import{join as Ezn}from"node:path";function PI(e){if(!(!e||!nL(e)))try{let{data:t}=re(v3(e,"utf8")),n=t.interpretation;return n==="lens"||n==="strict"?n:void 0}catch{return}}function NI(e){return e?e==="lens"?["## Mandate interpretation: LENS","","Your mandate above is a **lens**, not a checklist.","","- **In-spirit findings count.** A finding obviously within your mandate's lens but not listed as an explicit checklist item is IN scope. The mandate names representative concerns, not the exhaustive set.","- **Out-of-mandate findings are NOT in scope, even if visible.** If your glob matched a file but the change has nothing to do with your lens, return zero findings. Inventing findings to justify dispatch is a scope violation, not thoroughness.","- **Letter and spirit are not separable.** A change that technically passes a literal check but obviously violates what the check exists to enforce IS a finding. State the spirit-violation explicitly in the body so the fix loop knows what to address."].join(` `):["## Mandate interpretation: STRICT","","Your mandate above is a **literal checklist**.","",'- Findings MUST be tied to a specific named item in your mandate. Do NOT extend to "in-spirit" issues \u2014 for this review, false positives carry the same weight as false negatives.',"- If you see something concerning outside the checklist, do NOT log it through this agent. Log it through a different review agent if one exists, or surface it as an out-of-scope observation in your summary.","- Cite the specific checklist item each finding maps to in the `body:` field so the fix loop can verify scope."].join(` -`):""}function Hpe(e){if(e.length===0)return"";let t=[];for(let{heading:n,path:r}of e){if(!n||!r)continue;let i=Rl(r,n);i&&t.push(i)}return t.join(` -`)}function Rl(e,t){if(!tL(e))return"";let n=_3(e,"utf8"),r;try{r=(0,Kft.default)(n).content.trim()}catch{r=n}return r?`### ${t} +`):""}function qpe(e){if(e.length===0)return"";let t=[];for(let{heading:n,path:r}of e){if(!n||!r)continue;let i=Rl(r,n);i&&t.push(i)}return t.join(` +`)}function Rl(e,t){if(!nL(e))return"";let n=v3(e,"utf8"),r;try{r=(0,Yft.default)(n).content.trim()}catch{r=n}return r?`### ${t} *Source: \`${e}\`* ~~~~ ${r} ~~~~ -`:""}function kr(e){let{resolveBody:t,toolName:n,toolArgs:r,intent:i,stage:s,kind:o,name:a}=e,c=t();if(c?.trim())return`**Read** \`${Eb({intent:i,stage:s,kind:o,name:a,body:c.trim()})}\``;let u=Object.entries(r).map(([l,d])=>`${l}: ${JSON.stringify(d)}`).join(", ");return`**Call** \`${n} { ${u} }\``}function Zft(e,t){if(!tL(e))return"";let n=[];try{let{data:p}=re(_3(e,"utf8"));Array.isArray(p.iterations)&&(n=p.iterations)}catch{return""}let r=[];for(let p=n.length-1;p>=0;p--){let h=n[p];if(!h||!h.completed_at)continue;let m=typeof h.message=="string"&&h.message.trim()?h.message.trim():typeof h.reason=="string"&&h.reason.trim()?h.reason.trim():"";m&&r.push({hatName:typeof h.hat=="string"?h.hat:"previous hat",boltStr:t.fixLoop&&typeof h.bolt=="number"?` (bolt ${h.bolt})`:"",isReject:typeof h.result=="string"&&t.rejectResults.has(h.result),text:m})}if(r.length===0)return"";let i=r[0],s=i.isReject?["## Prior rejection \u2014 address this before advancing","",`The previous ${t.fixLoop?"fix attempt":"bolt"}'s **${i.hatName}** hat${i.boltStr} rejected the work and handed back:`,"","~~~~",i.text,"~~~~","",`Treat each item as a hard requirement: your hat is NOT done until every issue above is resolved. Reference them in your work summary and commit message so the next reviewer can verify closure. Do NOT call \`${t.rejectAdvanceTool}\` while any remain open \u2014 call \`${t.rejectHatTool}\` with what's still outstanding.`].join(` +`:""}function kr(e){let{resolveBody:t,toolName:n,toolArgs:r,intent:i,stage:s,kind:o,name:a}=e,c=t();if(c?.trim())return`**Read** \`${Eb({intent:i,stage:s,kind:o,name:a,body:c.trim()})}\``;let u=Object.entries(r).map(([l,d])=>`${l}: ${JSON.stringify(d)}`).join(", ");return`**Call** \`${n} { ${u} }\``}function Jft(e,t){if(!nL(e))return"";let n=[];try{let{data:p}=re(v3(e,"utf8"));Array.isArray(p.iterations)&&(n=p.iterations)}catch{return""}let r=[];for(let p=n.length-1;p>=0;p--){let h=n[p];if(!h||!h.completed_at)continue;let m=typeof h.message=="string"&&h.message.trim()?h.message.trim():typeof h.reason=="string"&&h.reason.trim()?h.reason.trim():"";m&&r.push({hatName:typeof h.hat=="string"?h.hat:"previous hat",boltStr:t.fixLoop&&typeof h.bolt=="number"?` (bolt ${h.bolt})`:"",isReject:typeof h.result=="string"&&t.rejectResults.has(h.result),text:m})}if(r.length===0)return"";let i=r[0],s=i.isReject?["## Prior rejection \u2014 address this before advancing","",`The previous ${t.fixLoop?"fix attempt":"bolt"}'s **${i.hatName}** hat${i.boltStr} rejected the work and handed back:`,"","~~~~",i.text,"~~~~","",`Treat each item as a hard requirement: your hat is NOT done until every issue above is resolved. Reference them in your work summary and commit message so the next reviewer can verify closure. Do NOT call \`${t.rejectAdvanceTool}\` while any remain open \u2014 call \`${t.rejectHatTool}\` with what's still outstanding.`].join(` `):[`## Handoff from \`${i.hatName}\`${i.boltStr}`,"","The prior hat completed and passed you this baton:","","~~~~",i.text,"~~~~","","Pick up where it left off \u2014 honor its decisions, resolve any open questions it flagged, and don't redo work it already landed."].join(` `),o=8,a=240,c=r.slice(1,1+o);if(c.length===0)return s;let u=c.map(p=>{let h=p.text.replace(/```[\s\S]*?```/g," ").replace(/\s+/g," ").trim(),m=h.length>a?`${h.slice(0,a)}\u2026`:h;return`- **${p.hatName}**${p.boltStr} ${p.isReject?"rejected":"handed off"}: ${m}`}),l=r.length-1-c.length,d=l>0?[`_(+${l} earlier)_`]:[],f=["### Earlier in this chain \u2014 context only, do NOT act on this","","Background from prior hats on this work item, newest first. This is reference, not your task: act on the block above, stay in your hat's lane, and do not jump ahead, re-open settled decisions, or do another hat's job.","",...u,...d].join(` `);return`${s} -${f}`}function T3(e){return Zft(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function CI(e){return Zft(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function MI(e,t){let n=[];try{let c=t?Us(e,t):[],u=Us(e,""),l=new Set;for(let d of[...c,...u])l.has(d.file)||(l.add(d.file),n.push(d))}catch{return""}if(n.length===0)return"";let r=50,i=n.slice(0,r),s=(c,u)=>c.length>u?`${c.slice(0,u)}\u2026`:c,o=i.map(c=>{let u=c.file.includes("/stages/")?"stage":"intent",l=c.severity?`${c.severity} \xB7 `:"",d=(c.body||"").replace(/```[\s\S]*?```/g," ").replace(/\s+/g," ").trim(),f=s(d,140),p="",h=c.closure_reply?.text?.replace(/\s+/g," ").trim();if(h)p=` \xB7 resolved: ${s(h,160)}`;else if(c.status==="rejected"){let m=(c.body||"").match(/\*\*Rejection reason:\*\*\s*([\s\S]+)$/),g=m?m[1].replace(/\s+/g," ").trim():"";p=g?` \xB7 dismissed: ${s(g,160)}`:" \xB7 dismissed"}return`- \`${c.id}\` [${l}${c.status} \xB7 ${c.origin} \xB7 ${u}] ${c.title}${f?` \u2014 ${f}`:""}${p}`}),a=n.length>r?` +${f}`}function R3(e){return Jft(e,{rejectResults:new Set(["reject"]),rejectAdvanceTool:"haiku_unit_advance_hat",rejectHatTool:"haiku_unit_reject_hat",fixLoop:!1})}function CI(e){return Jft(e,{rejectResults:new Set(["rejected"]),rejectAdvanceTool:"haiku_feedback_advance_hat",rejectHatTool:"haiku_feedback_reject_hat",fixLoop:!0})}function MI(e,t){let n=[];try{let c=t?Us(e,t):[],u=Us(e,""),l=new Set;for(let d of[...c,...u])l.has(d.file)||(l.add(d.file),n.push(d))}catch{return""}if(n.length===0)return"";let r=50,i=n.slice(0,r),s=(c,u)=>c.length>u?`${c.slice(0,u)}\u2026`:c,o=i.map(c=>{let u=c.file.includes("/stages/")?"stage":"intent",l=c.severity?`${c.severity} \xB7 `:"",d=(c.body||"").replace(/```[\s\S]*?```/g," ").replace(/\s+/g," ").trim(),f=s(d,140),p="",h=c.closure_reply?.text?.replace(/\s+/g," ").trim();if(h)p=` \xB7 resolved: ${s(h,160)}`;else if(c.status==="rejected"){let m=(c.body||"").match(/\*\*Rejection reason:\*\*\s*([\s\S]+)$/),g=m?m[1].replace(/\s+/g," ").trim():"";p=g?` \xB7 dismissed: ${s(g,160)}`:" \xB7 dismissed"}return`- \`${c.id}\` [${l}${c.status} \xB7 ${c.origin} \xB7 ${u}] ${c.title}${f?` \u2014 ${f}`:""}${p}`}),a=n.length>r?` _(+${n.length-r} more on record)_`:"";return["## Existing feedback on this scope \u2014 do NOT re-raise","","These findings are already on record \u2014 open, being fixed, addressed, answered, closed, or dismissed. Read them BEFORE you file anything. If your observation is already captured here, do NOT file a duplicate: the engine is already tracking it, or a human/agent already decided it. A `resolved:` note shows what the fix-hat actually did \u2014 verify THAT delta rather than re-deriving your critique from scratch; a `dismissed:` note shows why a prior reviewer threw the finding out \u2014 respect it unless you have new evidence. Reserve new findings for genuinely new problems this list doesn't cover. If you think an existing finding was resolved wrong, say so in your closing summary instead of re-filing it.","",...o,a].join(` -`).trimEnd()}function DI(e){let t=Ezn(pe(e),"stages");if(!tL(t))return"";let n=[];try{for(let r of bzn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of v3(e,r.name)){let s=String(i.decision??"").trim(),o=String(i.choice??"").trim();if(!s||!o)continue;let a=i.source==="user"?"user":"agent-acknowledged",c=typeof i.rationale=="string"&&i.rationale.trim()?` \u2014 ${i.rationale.trim()}`:"";n.push(`- **${s}** \u2192 chose \`${o}\` (${a})${c}`)}}catch{return""}return n.length===0?"":["## Decisions already made \u2014 do NOT re-litigate","","These are rulings the owner (or the agent, acknowledged) has already made on this intent \u2014 including how to resolve contradictions between upstream artifacts. A finding that re-opens one of these is churn: the call stands. If an upstream doc still contradicts the ruling, that's a known divergence flagged for reconciliation, NOT a fresh finding \u2014 do not re-file it. Only raise it if you have genuinely new information the decision didn't account for, and say so explicitly.","",...n].join(` -`).trimEnd()}function Ti(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s,agentType:o,model:a,promptBody:c,heading:u,toolAttr:l,forceForeground:d,omitBolt:f}=e,{path:p,parentInstruction:h}=Pft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Cft({path:p,parentInstruction:h,agentType:o,model:a,heading:u,toolAttr:l,background:d===!0?!1:Mi().subagents.backgroundSpawn})}function ju(e){if(!Go.modelSelection)return;let{mandatePath:t,studio:n,stage:r}=e;if(t){let s=Xdt(t);if(s)return s}if(r){let s=$i(n,r),o=bI(s?.data?.default_model);if(o)return o}let i=Nd(n);return bI(i?.data?.default_model)}function Jft(e,t,n,r,i){let s=Mi();return s.hooks?"":Yft.renderString(_zn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function LI(e,t){if(!t)return"";let n=Fft(e,t);return n.length===0?"":["## Active providers for this phase","","The following provider behavior contracts apply to this prompt. Read each one before drafting your response.","",n.map(i=>Wft({kind:i.kind,category:i.category,body:i.body})).join(` +`).trimEnd()}function DI(e){let t=Ezn(pe(e),"stages");if(!nL(t))return"";let n=[];try{for(let r of bzn(t,{withFileTypes:!0}))if(r.isDirectory())for(let i of A3(e,r.name)){let s=String(i.decision??"").trim(),o=String(i.choice??"").trim();if(!s||!o)continue;let a=i.source==="user"?"user":"agent-acknowledged",c=typeof i.rationale=="string"&&i.rationale.trim()?` \u2014 ${i.rationale.trim()}`:"";n.push(`- **${s}** \u2192 chose \`${o}\` (${a})${c}`)}}catch{return""}return n.length===0?"":["## Decisions already made \u2014 do NOT re-litigate","","These are rulings the owner (or the agent, acknowledged) has already made on this intent \u2014 including how to resolve contradictions between upstream artifacts. A finding that re-opens one of these is churn: the call stands. If an upstream doc still contradicts the ruling, that's a known divergence flagged for reconciliation, NOT a fresh finding \u2014 do not re-file it. Only raise it if you have genuinely new information the decision didn't account for, and say so explicitly.","",...n].join(` +`).trimEnd()}function Ti(e){let{unit:t,hat:n,bolt:r,intent:i,stage:s,agentType:o,model:a,promptBody:c,heading:u,toolAttr:l,forceForeground:d,omitBolt:f}=e,{path:p,parentInstruction:h}=Nft({unit:t,hat:n,bolt:r,intent:i,stage:s,content:c,omitBolt:f});return Mft({path:p,parentInstruction:h,agentType:o,model:a,heading:u,toolAttr:l,background:d===!0?!1:Mi().subagents.backgroundSpawn})}function ju(e){if(!Go.modelSelection)return;let{mandatePath:t,studio:n,stage:r}=e;if(t){let s=Qdt(t);if(s)return s}if(r){let s=$i(n,r),o=bI(s?.data?.default_model);if(o)return o}let i=Nd(n);return bI(i?.data?.default_model)}function Xft(e,t,n,r,i){let s=Mi();return s.hooks?"":Zft.renderString(_zn,{slug:e,stage:t,hat:n,hatsStr:r.join(" \u2192 "),bolt:i,nativeAskUser:s.nativeAskUser})}function LI(e,t){if(!t)return"";let n=jft(e,t);return n.length===0?"":["## Active providers for this phase","","The following provider behavior contracts apply to this prompt. Read each one before drafting your response.","",n.map(i=>Kft({kind:i.kind,category:i.category,body:i.body})).join(` `)].join(` -`)}function UI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!tL(t))return"";try{let{data:n}=re(_3(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function FI(e,t="subagents",n={}){return`Spawn each \`\` block below in a single message (parallel \`Task\` calls). When a ${t.replace(/s$/,"")} returns, do what its final message tells you \u2014 spawn the relayed \`\` block it carries, call \`haiku_run_next\`, or just acknowledge.`}function Lf(e,t){let{slug:n,stage:r}=t,i=r?`\`${r}\``:"the active stage",o=[{signal:"conversation",line:`**Capture (or extend) the conversation.** If alignment on substance for ${i} is already reached, call \`haiku_stage_elaboration_record\` now \u2014 the cursor's next tick fires the substance verifier without re-prompting for conversation.`},{signal:"verify_conversation",line:"**Dispatch the elaborate-substance verifier** if a conversation artifact exists but is unverified. Spawning the verifier in this same tick lets the next `haiku_run_next` advance past `elaborate_review` immediately."},{signal:"discovery",line:"**Fan out missing discovery subagents** for any `discovery/*.md` templates whose `location:` artifacts aren't on disk yet. Each subagent runs in its own isolation worktree and writes one file; the cursor's next tick skips `discovery_required` for every artifact already present."},{signal:"decompose",line:"**Draft units as scope crystallizes** via `haiku_unit_write`. Units written during the elaborate loop are first-class \u2014 the decompose-coverage verifier catches missing units and drift either way, so there's no penalty for landing them early."},{signal:"verify_decompose",line:`**Dispatch the decompose-coverage verifier** if units exist for ${i} but \`decompose_verified_at\` is missing on the elaboration artifact. Stacking it onto this tick lets the next \`haiku_run_next\` advance past \`decompose_review\` immediately.`}].filter(a=>a.signal!==e);return o.length===0?"":Yft.renderString(Tzn,{slug:n,concurrentLines:o.map(a=>a.line)})}var Kft,Yft,_zn,Tzn,ts=v(()=>{"use strict";gt();Kft=Re(Kt(),1);Ci();_f();fb();Ge();Kn();vl();ht();jft();Uh();Yft=new _e({autoEscape:!1,useWith:!0}),_zn=ie("@canon:","_shared/inline-subagent-context.eta.md"),Tzn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function R3(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=vzn.renderString(e.template(),e.templateVars({hat:t,terminal:n,worktree:r,mandateRef:i,priorRejectBlock:s}));return Ti({unit:e.dispatchId,hat:t,bolt:a,intent:e.slug,stage:e.emitStage,agentType:"general-purpose",model:o,promptBody:c,heading:e.heading(t)})}var vzn,qpe=v(()=>{"use strict";gt();ts();vzn=new _e({autoEscape:!1,useWith:!0})});import{existsSync as Xft,readdirSync as Qft,readFileSync as $ft}from"node:fs";import{join as jI}from"node:path";function Rzn(){return Bpe===null&&(Bpe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),Bpe}function Azn(e){if(!Go.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?jI(ar(t,n),"feedback"):jI(pe(t),"feedback");try{let p=Xft(f)?Qft(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=$ft(jI(f,p[0]),"utf8");o=(0,zpe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:YK(r)?.[i],c=n?$i(r,n):void 0,u=Nd(r),l=db({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function HI(e){let{slug:t,studio:n,feedbackId:r,stage:i,hat:s,terminal:o}=e,a=Number.parseInt(r.replace(/^FB-/i,""),10)||0,c=i||"intent",u=null,l=()=>{if(u)return u;let f=i?jI(ar(t,i),"feedback"):jI(pe(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(Xft(f)){let g=Qft(f).find(y=>y.startsWith(p)&&y.endsWith(".md"));if(g){let y=jI(f,g);h=CI(y);try{let b=(0,zpe.default)($ft(y,"utf8")).data,E=(Array.isArray(b.iterations)?b.iterations:[]).reduce((_,T)=>{let R=T?.bolt;return typeof R=="number"&&R>_?R:_},0);m=E>0?E:1}catch{}}}return u={priorRejectBlock:h,bolt:m},u},d={slug:t,emitStage:i||void 0,dispatchId:`fix-${r}`,ensureWorktree:()=>kpe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?EI(n,i,f,!0):tft(n,f),toolName:"haiku_read_hat",toolArgs:i?{studio:n,stage:i,hat:f,fix:!0}:{studio:n,hat:f,fix:!0},intent:t,stage:i||void 0,kind:"mandate",name:f}),priorHandoffBlock:()=>l().priorRejectBlock,resolveModel:f=>Azn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>Rzn(),templateVars:({hat:f,terminal:p,worktree:h,mandateRef:m,priorRejectBlock:g})=>({slug:t,hat:f,stage:i,feedbackId:r,fbInt:a,terminal:p,worktree:h,mandateRef:m,priorRejectBlock:g}),heading:f=>`### Subagent \u2014 \`${r}\` (stage \`${i||"(intent)"}\`, hat \`${f}\`)`};return R3(d,s,o)}var zpe,Bpe,Gpe=v(()=>{"use strict";zpe=Re(Kt(),1);Ci();yr();fb();Ge();Kn();qpe();ts();ht();Bpe=null});function Vpe(e,t,n){let r=e.indexOf(t);if(n?.assessorToFirst&&n.assessorHat&&t===n.assessorHat)return{targetHat:e[0]??t,callingIdx:r,via:"assessor-to-first"};let i=n?.roleOf;if(n?.namedTarget){let o=e.indexOf(n.namedTarget);if(o>=0&&o=0;o--)if(i(e[o])==="build")return{targetHat:e[o],callingIdx:r,via:"nearest-build"}}return{targetHat:r>0?e[r-1]:e[0]??t,callingIdx:r,via:"step-back-one"}}var ept=v(()=>{"use strict"});var rpt={};Ar(rpt,{computeStageDependents:()=>Ype,filterInputsByPlanStages:()=>Kpe,resolveIntentStages:()=>wn,resolveStageFixHats:()=>bg,resolveStageHats:()=>Es,resolveStageMetadata:()=>Xpe,resolveStageOptional:()=>nL,resolveStageReview:()=>Jpe,resolveStudioFilePath:()=>Ff,resolveStudioFixHats:()=>jf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>Zpe});import{existsSync as Uf,readdirSync as wzn,readFileSync as Wpe}from"node:fs";import{join as Yr}from"node:path";function LT(e){if(!Uf(e))return{};let t=Wpe(e,"utf8"),{data:n}=re(t);return n}function Ff(e){for(let t of Mu()){let n=Yr(t,e);if(Uf(n))return n}return null}function wn(e,t){let n=Fs(t),r=Array.isArray(e.stages)?e.stages.filter(i=>typeof i=="string"):[];if(r.length>0){let i=new Set(n);return r.filter(s=>i.has(s))}return n}function Kpe(e,t){let n=t instanceof Set?t:new Set(t);return e.filter(r=>n.has(r.stage))}function Fs(e){let t=si(e);if(t)return t.stages;let n=nn();for(let r of[Yr(process.cwd(),".haiku","studios"),Yr(n,"studios")]){let i=Yr(r,e,"STUDIO.md");if(Uf(i))return LT(i).stages||[]}return[]}function Es(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o))return LT(o).hats||[]}return[]}function npt(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o))return LT(o)}return{}}function nL(e,t){return npt(e,t).optional===!0}function Ype(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=npt(e,s),a=Array.isArray(o.inputs)?o.inputs.filter(u=>u.stage===t).map(u=>u.discovery??u.output??"?"):[],c=Array.isArray(o["review-agents-include"])?o["review-agents-include"].filter(u=>u.stage===t).flatMap(u=>Array.isArray(u.agents)?u.agents:[]):[];(a.length>0||c.length>0)&&i.push({stage:s,inputs:a,reviewAgents:c})}return i}function jf(e){let t=si(e),n=t?t.dir:e,r=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(r,"studios")]){let o=Yr(s,n,"STUDIO.md");if(Uf(o)){let c=LT(o).fix_hats;if(Array.isArray(c)&&c.length>0)return c.filter(u=>typeof u=="string");break}}let i=[];for(let s of[Yr(r,"fix-hats"),Yr(process.cwd(),".haiku","fix-hats"),Yr(r,"studios",n,"fix-hats"),Yr(process.cwd(),".haiku","studios",n,"fix-hats")])if(Uf(s))for(let o of wzn(s).filter(a=>a.endsWith(".md"))){let a=o.replace(/\.md$/,"");i.includes(a)||i.push(a)}return i.sort()}function bg(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o)){let c=LT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function Zpe(e,t,n,r){let i=Es(e,t),s=pe(n),o=Yr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Uf(o))return i;try{let{data:a}=re(Wpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function Jpe(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o)){let c=LT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function Xpe(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o)){let a=Wpe(o,"utf8"),c=LT(o),{content:u}=(0,tpt.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var tpt,ns=v(()=>{"use strict";tpt=Re(Kt(),1);Ci();Ge();Kn()});import{existsSync as ipt,readFileSync as spt}from"node:fs";import{join as $pe}from"node:path";function kzn(){return Qpe===null&&(Qpe=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),Qpe}function Izn(e){if(!Go.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=$pe(ar(t,r),"units",`${s}.md`);if(ipt(a))try{let d=spt(a,"utf8");o=(0,ehe.default)(d).data.model}catch{}let c=r?Du(n,r)?.[i]:void 0,u=r?$i(n,r):void 0,l=Nd(n);return db({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function xzn(e){let{slug:t,stage:n,unit:r}=e,i=$pe(ar(t,n),"units",`${r}.md`);if(!ipt(i))return[];try{let s=(0,ehe.default)(spt(i,"utf8")).data;return(Array.isArray(s.iterations)?s.iterations:[]).filter(a=>a.result==="advance").map(a=>typeof a.hat=="string"?a.hat:"").filter(a=>a.length>0)}catch{return[]}}function qI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=$pe(ar(t,i),"units",`${r}.md`),c=null,u=()=>c??=xzn({slug:t,stage:i,unit:r});return R3({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>vpe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>EI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>T3(a),resolveModel:d=>Izn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>kzn(),templateVars:({hat:d,terminal:f,worktree:p,mandateRef:h,priorRejectBlock:m})=>({slug:t,studio:n,stage:i,hat:d,unit:r,terminal:f,worktree:p,mandateRef:h,priorHatsInline:u(),priorRejectBlock:m}),heading:d=>`### Subagent \u2014 \`${r}\` (stage \`${i}\`, hat \`${d}\`)`},s,o)}var ehe,Qpe,the=v(()=>{"use strict";ehe=Re(Kt(),1);Ci();yr();fb();Ge();Kn();qpe();ts();ht();Qpe=null});function w3(e){let t=e.map(o=>({id:o.slug,status:o.frontmatter.status})),n=[],r=new Map;for(let o of e)r.set(o.slug,[]);let i=new Set(e.map(o=>o.slug)),s=[];for(let o of e){let a=o.frontmatter.depends_on??[];for(let c of a){if(!i.has(c)){s.push({unit:o.slug,dep:c});continue}n.push({from:c,to:o.slug});let u=r.get(c);u&&u.push(o.slug)}}return{nodes:t,edges:n,adjacency:r,unresolvedDeps:s.length>0?s:void 0}}function apt(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function k3(e){let t=apt(e),n=new Map;for(let i of t){let s=e.edges.filter(o=>o.to===i).map(o=>o.from);if(s.length===0)n.set(i,0);else{let o=Math.max(...s.map(a=>n.get(a)??0));n.set(i,o+1)}}let r=new Map;for(let[i,s]of n){let o=r.get(s)??[];o.push(i),r.set(s,o)}return r}function A3(e){return e.replace(/"/g,""").replace(/\[/g,"[").replace(/\]/g,"]").replace(//g,">")}function Hu(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_");return/^[a-zA-Z]/.test(t)?t:`n_${t}`}function I3(e,t){let n=["graph TD"],r=new Set(t.map(l=>l.slug)),i=[],s=new Map;for(let l of t){let d=l.frontmatter.stage||"_root";s.has(d)||(s.set(d,[]),i.push(d)),s.get(d)?.push(l)}let o=i.length>1;if(o)for(let l of i){let d=s.get(l)||[],f=A3(l.charAt(0).toUpperCase()+l.slice(1));n.push(` subgraph ${Hu(`stage_${l}`)}["${f}"]`);for(let p of d){let h=p.title||p.slug,m=A3(h),g=Hu(p.slug);n.push(` ${g}["${m}"]`)}n.push(" end")}else{let l=k3(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let g=(l.get(h)??[]).map(y=>d.get(y)).filter(y=>y!==void 0);if(g.length!==0){p&&n.push(` subgraph ${Hu(`wave_${h}`)}["Wave ${h}"]`);for(let y of g){let b=y.title||y.slug,S=A3(b),E=Hu(y.slug);n.push(` ${E}["${S}"]`)}p&&n.push(" end")}}}if(o&&i.length>1)for(let l=0;l ${f}`)}let a=new Map;for(let l of t)a.set(l.slug,l.frontmatter.stage||"_root");for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to);d&&f&&d===f&&n.push(` ${Hu(l.from)} --> ${Hu(l.to)}`)}let c=new Set;for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to),p=!r.has(l.from),h=!r.has(l.to);p&&f&&(c.add(l.from),n.push(` ${Hu(l.from)} --> ${Hu(l.to)}`)),h&&d&&(c.add(l.to),n.push(` ${Hu(l.from)} --> ${Hu(l.to)}`))}for(let l of c){let d=Hu(l),f=A3(l);n.push(` ${d}["${f} (external)"]:::external`)}let u=new Map;for(let l of e.nodes){if(c.has(l.id))continue;let d=u.get(l.status)??[];d.push(Hu(l.id)),u.set(l.status,d)}for(let[l,d]of u){let f=opt[l]??opt.pending;n.push(` classDef ${l} ${f}`),n.push(` class ${d.join(",")} ${l}`)}return c.size>0&&n.push(" classDef external fill:#f5f5f5,stroke:#999,stroke-dasharray:5 5,color:#666"),n.join(` -`)}var opt,nhe=v(()=>{"use strict";opt={completed:"fill:#166534,stroke:#14532d,color:#fff",active:"fill:#1e40af,stroke:#1e3a8a,color:#fff",in_progress:"fill:#1e40af,stroke:#1e3a8a,color:#fff",pending:"fill:#525252,stroke:#404040,color:#fff",blocked:"fill:#991b1b,stroke:#7f1d1d,color:#fff"}});import{existsSync as rhe,readdirSync as cpt,readFileSync as Ozn,rmSync as Pzn}from"node:fs";import{join as x3}from"node:path";function Nzn(e){if(!rhe(e))return{};let t=Ozn(e,"utf8"),{data:n}=re(t);return n}function rL(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function upt(e,t){if(!rL(e,t))return[];let n=x3(e,"stages",t,"feedback");if(!rhe(n))return[];let r=[];for(let i of cpt(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{Pzn(x3(n,i),{force:!0}),r.push(i)}catch{}return r}function Czn(e){let t=typeof e.started_at=="string"&&e.started_at.length>0,n=Array.isArray(e.iterations)?e.iterations:[],r=n.length>0?n[n.length-1]:null,i=e.approvals&&typeof e.approvals=="object"?e.approvals:{},s=Object.values(i).some(l=>l!==null&&l!==!1&&l!==void 0),o=r!==null&&(r.result==="advance"||r.result==="closed")&&typeof r.hat=="string",a;s||o?a="completed":t?a="active":a="pending";let c=r!==null&&typeof r.hat=="string"?r.hat:"",u=n.length;return{status:a,hat:c,bolt:u}}function Eg(e,t){let n=x3(e,"stages",t,"units");if(!rhe(n))return[];let i=cpt(n).filter(o=>o.endsWith(".md")).map(o=>{let a=Nzn(x3(n,o)),c=Czn(a);return{name:o.replace(".md",""),status:c.status,hat:c.hat,bolt:c.bolt,dependsOn:a.depends_on||[],depsComplete:!1}}),s=new Map(i.map(o=>[o.name,o.status]));for(let o of i)o.depsComplete=o.dependsOn.every(a=>s.get(a)==="completed");return i}function BI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=k3(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function zI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function O3(e,t){try{let n=Eg(e,t);if(n.length===0)return"";let r=n.length,i=n.filter(p=>p.status==="completed").length,s=n.filter(p=>p.status==="active").length,o=n.filter(p=>p.status==="pending").length,{unitWave:a,totalWaves:c}=BI(n),u=zI(n,a,c),l=new Map;for(let p of n){if(p.status!=="active")continue;let h=p.hat||"?";l.set(h,(l.get(h)??0)+1)}let d=[...l.entries()].map(([p,h])=>`${p}\xD7${h}`).join(", "),f=`pool \xB7 stage \`${t}\`: ${i}/${r} units done \xB7 ${s} in flight \xB7 ${o} pending`+(c>1?` \xB7 wave ${u+1}/${c}`:"");return d?`${f} - in flight by hat: ${d}`:f}catch{return""}}var P3=v(()=>{"use strict";nhe();Ge()});var mc={};Ar(mc,{HasPropertyKey:()=>N3,IsArray:()=>js,IsAsyncIterator:()=>ihe,IsBigInt:()=>iL,IsBoolean:()=>_g,IsDate:()=>UT,IsFunction:()=>she,IsIterator:()=>ohe,IsNull:()=>ahe,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>sL,IsString:()=>Zr,IsSymbol:()=>che,IsUint8Array:()=>Tg,IsUndefined:()=>Hs});function N3(e,t){return t in e}function ihe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function iL(e){return typeof e=="bigint"}function _g(e){return typeof e=="boolean"}function UT(e){return e instanceof globalThis.Date}function she(e){return typeof e=="function"}function ohe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.iterator in e}function ahe(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function sL(e){return e instanceof globalThis.RegExp}function Zr(e){return typeof e=="string"}function che(e){return typeof e=="symbol"}function Tg(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Jc=v(()=>{});function Mzn(e){return e.map(t=>C3(t))}function Dzn(e){return new Date(e.getTime())}function Lzn(e){return new Uint8Array(e)}function Uzn(e){return new RegExp(e.source,e.flags)}function Fzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=C3(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=C3(e[n]);return t}function C3(e){return js(e)?Mzn(e):UT(e)?Dzn(e):Tg(e)?Lzn(e):sL(e)?Uzn(e):Ir(e)?Fzn(e):e}function vi(e){return C3(e)}var qu=v(()=>{Jc()});function GI(e,t){return t===void 0?vi(e):vi({...t,...e})}var M3=v(()=>{qu()});var uhe=v(()=>{M3();qu()});function lpt(e){return e!==null&&typeof e=="object"}function dpt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function fpt(e){return e===void 0}function ppt(e){return typeof e=="number"}var hpt=v(()=>{});var mpt=v(()=>{hpt()});var D3,gpt=v(()=>{mpt();(function(e){e.InstanceMode="default",e.ExactOptionalPropertyTypes=!1,e.AllowArrayObject=!1,e.AllowNaN=!1,e.AllowNullVoid=!1;function t(o,a){return e.ExactOptionalPropertyTypes?a in o:o[a]!==void 0}e.IsExactOptionalProperty=t;function n(o){let a=lpt(o);return e.AllowArrayObject?a:a&&!dpt(o)}e.IsObjectLike=n;function r(o){return n(o)&&!(o instanceof Date)&&!(o instanceof Uint8Array)}e.IsRecordLike=r;function i(o){return e.AllowNaN?ppt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=fpt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(D3||(D3={}))});function jzn(e){return globalThis.Object.freeze(e).map(t=>oL(t))}function Hzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=oL(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=oL(e[n]);return globalThis.Object.freeze(t)}function oL(e){return js(e)?jzn(e):UT(e)?e:Tg(e)?e:sL(e)?e:Ir(e)?Hzn(e):e}var ypt=v(()=>{Jc()});function de(e,t){let n=t!==void 0?{...t,...e}:e;switch(D3.InstanceMode){case"freeze":return oL(n);case"clone":return vi(n);default:return n}}var Nt=v(()=>{gpt();ypt();qu()});var vg=v(()=>{Nt()});var Jo,Spt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var Fh=v(()=>{Spt()});var so,Hf,wa,Dd,Oe,aL=v(()=>{so=Symbol.for("TypeBox.Transform"),Hf=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Dd=Symbol.for("TypeBox.Hint"),Oe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{aL()});function VI(e){return Ir(e)&&e[Hf]==="Readonly"}function Bu(e){return Ir(e)&&e[wa]==="Optional"}function lhe(e){return Bn(e,"Any")}function dhe(e){return Bn(e,"Argument")}function qf(e){return Bn(e,"Array")}function FT(e){return Bn(e,"AsyncIterator")}function jT(e){return Bn(e,"BigInt")}function Rg(e){return Bn(e,"Boolean")}function Bf(e){return Bn(e,"Computed")}function zf(e){return Bn(e,"Constructor")}function qzn(e){return Bn(e,"Date")}function Gf(e){return Bn(e,"Function")}function Vf(e){return Bn(e,"Integer")}function rs(e){return Bn(e,"Intersect")}function HT(e){return Bn(e,"Iterator")}function Bn(e,t){return Ir(e)&&Oe in e&&e[Oe]===t}function L3(e){return _g(e)||Al(e)||Zr(e)}function wl(e){return Bn(e,"Literal")}function kl(e){return Bn(e,"MappedKey")}function Ri(e){return Bn(e,"MappedResult")}function _b(e){return Bn(e,"Never")}function Bzn(e){return Bn(e,"Not")}function cL(e){return Bn(e,"Null")}function Wf(e){return Bn(e,"Number")}function qs(e){return Bn(e,"Object")}function qT(e){return Bn(e,"Promise")}function BT(e){return Bn(e,"Record")}function _s(e){return Bn(e,"Ref")}function fhe(e){return Bn(e,"RegExp")}function Ag(e){return Bn(e,"String")}function uL(e){return Bn(e,"Symbol")}function Il(e){return Bn(e,"TemplateLiteral")}function zzn(e){return Bn(e,"This")}function Tb(e){return Ir(e)&&so in e}function xl(e){return Bn(e,"Tuple")}function lL(e){return Bn(e,"Undefined")}function Yn(e){return Bn(e,"Union")}function Gzn(e){return Bn(e,"Uint8Array")}function Vzn(e){return Bn(e,"Unknown")}function Wzn(e){return Bn(e,"Unsafe")}function Kzn(e){return Bn(e,"Void")}function Yzn(e){return Ir(e)&&Oe in e&&Zr(e[Oe])}function Ol(e){return lhe(e)||dhe(e)||qf(e)||Rg(e)||jT(e)||FT(e)||Bf(e)||zf(e)||qzn(e)||Gf(e)||Vf(e)||rs(e)||HT(e)||wl(e)||kl(e)||Ri(e)||_b(e)||Bzn(e)||cL(e)||Wf(e)||qs(e)||qT(e)||BT(e)||_s(e)||fhe(e)||Ag(e)||uL(e)||Il(e)||zzn(e)||xl(e)||lL(e)||Yn(e)||Gzn(e)||Vzn(e)||Wzn(e)||Kzn(e)||Yzn(e)}var Xn=v(()=>{Jc();Ut()});var X={};Ar(X,{IsAny:()=>Tpt,IsArgument:()=>vpt,IsArray:()=>Rpt,IsAsyncIterator:()=>Apt,IsBigInt:()=>wpt,IsBoolean:()=>kpt,IsComputed:()=>Ipt,IsConstructor:()=>xpt,IsDate:()=>Opt,IsFunction:()=>Ppt,IsImport:()=>eGn,IsInteger:()=>Npt,IsIntersect:()=>Cpt,IsIterator:()=>Mpt,IsKind:()=>oht,IsKindOf:()=>kn,IsLiteral:()=>fL,IsLiteralBoolean:()=>tGn,IsLiteralNumber:()=>Lpt,IsLiteralString:()=>Dpt,IsLiteralValue:()=>Upt,IsMappedKey:()=>Fpt,IsMappedResult:()=>jpt,IsNever:()=>Hpt,IsNot:()=>qpt,IsNull:()=>Bpt,IsNumber:()=>zpt,IsObject:()=>Gpt,IsOptional:()=>$zn,IsPromise:()=>Vpt,IsProperties:()=>U3,IsReadonly:()=>Qzn,IsRecord:()=>Wpt,IsRecursive:()=>nGn,IsRef:()=>Kpt,IsRegExp:()=>Ypt,IsSchema:()=>Xo,IsString:()=>Zpt,IsSymbol:()=>Jpt,IsTemplateLiteral:()=>Xpt,IsThis:()=>Qpt,IsTransform:()=>$pt,IsTuple:()=>eht,IsUint8Array:()=>nht,IsUndefined:()=>tht,IsUnion:()=>ghe,IsUnionLiteral:()=>rGn,IsUnknown:()=>rht,IsUnsafe:()=>iht,IsVoid:()=>sht,TypeGuardUnknownTypeError:()=>phe});function bpt(e){try{return new RegExp(e),!0}catch{return!1}}function hhe(e){if(!Zr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function Ept(e){return mhe(e)||Xo(e)}function dL(e){return Hs(e)||iL(e)}function Jr(e){return Hs(e)||Al(e)}function mhe(e){return Hs(e)||_g(e)}function xr(e){return Hs(e)||Zr(e)}function Jzn(e){return Hs(e)||Zr(e)&&hhe(e)&&bpt(e)}function Xzn(e){return Hs(e)||Zr(e)&&hhe(e)}function _pt(e){return Hs(e)||Xo(e)}function Qzn(e){return Ir(e)&&e[Hf]==="Readonly"}function $zn(e){return Ir(e)&&e[wa]==="Optional"}function Tpt(e){return kn(e,"Any")&&xr(e.$id)}function vpt(e){return kn(e,"Argument")&&Al(e.index)}function Rpt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&mhe(e.uniqueItems)&&_pt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function Apt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function wpt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&dL(e.exclusiveMaximum)&&dL(e.exclusiveMinimum)&&dL(e.maximum)&&dL(e.minimum)&&dL(e.multipleOf)}function kpt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function Ipt(e){return kn(e,"Computed")&&Zr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function xpt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function Opt(e){return kn(e,"Date")&&e.type==="Date"&&xr(e.$id)&&Jr(e.exclusiveMaximumTimestamp)&&Jr(e.exclusiveMinimumTimestamp)&&Jr(e.maximumTimestamp)&&Jr(e.minimumTimestamp)&&Jr(e.multipleOfTimestamp)}function Ppt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function eGn(e){return kn(e,"Import")&&N3(e,"$defs")&&Ir(e.$defs)&&U3(e.$defs)&&N3(e,"$ref")&&Zr(e.$ref)&&e.$ref in e.$defs}function Npt(e){return kn(e,"Integer")&&e.type==="integer"&&xr(e.$id)&&Jr(e.exclusiveMaximum)&&Jr(e.exclusiveMinimum)&&Jr(e.maximum)&&Jr(e.minimum)&&Jr(e.multipleOf)}function U3(e){return Ir(e)&&Object.entries(e).every(([t,n])=>hhe(t)&&Xo(n))}function Cpt(e){return kn(e,"Intersect")&&!(Zr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!$pt(t))&&xr(e.type)&&(mhe(e.unevaluatedProperties)||_pt(e.unevaluatedProperties))&&xr(e.$id)}function Mpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Xo(e.items)}function kn(e,t){return Ir(e)&&Oe in e&&e[Oe]===t}function Dpt(e){return fL(e)&&Zr(e.const)}function Lpt(e){return fL(e)&&Al(e.const)}function tGn(e){return fL(e)&&_g(e.const)}function fL(e){return kn(e,"Literal")&&xr(e.$id)&&Upt(e.const)}function Upt(e){return _g(e)||Al(e)||Zr(e)}function Fpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Zr(t))}function jpt(e){return kn(e,"MappedResult")&&U3(e.properties)}function Hpt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function qpt(e){return kn(e,"Not")&&Xo(e.not)}function Bpt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function zpt(e){return kn(e,"Number")&&e.type==="number"&&xr(e.$id)&&Jr(e.exclusiveMaximum)&&Jr(e.exclusiveMinimum)&&Jr(e.maximum)&&Jr(e.minimum)&&Jr(e.multipleOf)}function Gpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&U3(e.properties)&&Ept(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function Vpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function Wpt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&Ept(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&bpt(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function nGn(e){return Ir(e)&&Dd in e&&e[Dd]==="Recursive"}function Kpt(e){return kn(e,"Ref")&&xr(e.$id)&&Zr(e.$ref)}function Ypt(e){return kn(e,"RegExp")&&xr(e.$id)&&Zr(e.source)&&Zr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function Zpt(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&Jzn(e.pattern)&&Xzn(e.format)}function Jpt(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function Xpt(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Zr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function Qpt(e){return kn(e,"This")&&xr(e.$id)&&Zr(e.$ref)}function $pt(e){return Ir(e)&&so in e}function eht(e){return kn(e,"Tuple")&&e.type==="array"&&xr(e.$id)&&Al(e.minItems)&&Al(e.maxItems)&&e.minItems===e.maxItems&&(Hs(e.items)&&Hs(e.additionalItems)&&e.minItems===0||js(e.items)&&e.items.every(t=>Xo(t)))}function tht(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function rGn(e){return ghe(e)&&e.anyOf.every(t=>Dpt(t)||Lpt(t))}function ghe(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function nht(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function rht(e){return kn(e,"Unknown")&&xr(e.$id)}function iht(e){return kn(e,"Unsafe")}function sht(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function oht(e){return Ir(e)&&Oe in e&&Zr(e[Oe])&&!Zzn.includes(e[Oe])}function Xo(e){return Ir(e)&&(Tpt(e)||vpt(e)||Rpt(e)||kpt(e)||wpt(e)||Apt(e)||Ipt(e)||xpt(e)||Opt(e)||Ppt(e)||Npt(e)||Cpt(e)||Mpt(e)||fL(e)||Fpt(e)||jpt(e)||Hpt(e)||qpt(e)||Bpt(e)||zpt(e)||Gpt(e)||Vpt(e)||Wpt(e)||Kpt(e)||Ypt(e)||Zpt(e)||Jpt(e)||Xpt(e)||Qpt(e)||eht(e)||tht(e)||ghe(e)||nht(e)||rht(e)||iht(e)||sht(e)||oht(e))}var phe,Zzn,aht=v(()=>{Jc();Ut();Fh();phe=class extends Jo{},Zzn=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"]});var yhe=v(()=>{Xn();aht();Jc()});var cht=v(()=>{});var uht=v(()=>{cht()});var She,pL,bhe,iGn,L7r,vb,Rb,lht,dht=v(()=>{She="(true|false)",pL="(0|[1-9][0-9]*)",bhe="(.*)",iGn="(?!.*)",L7r=`^${She}$`,vb=`^${pL}$`,Rb=`^${bhe}$`,lht=`^${iGn}$`});var hL=v(()=>{dht()});var fht=v(()=>{});var pht=v(()=>{});var hht=v(()=>{fht();pht()});function mht(e,t){return e.includes(t)}function ght(e){return[...new Set(e)]}function aGn(e,t){return e.filter(n=>t.includes(n))}function cGn(e,t){return e.reduce((n,r)=>aGn(n,r),t)}function yht(e){return e.length===1?e[0]:e.length>1?cGn(e.slice(1),e[0]):[]}function Sht(e){let t=[];for(let n of e)t.push(...n);return t}var bht=v(()=>{});var mL=v(()=>{bht()});function Ab(e){return de({[Oe]:"Any"},e)}var Eht=v(()=>{vg();Ut()});var gL=v(()=>{Eht()});function WI(e,t){return de({[Oe]:"Array",type:"array",items:e},t)}var _ht=v(()=>{Nt();Ut()});var yL=v(()=>{_ht()});function Tht(e){return de({[Oe]:"Argument",index:e})}var vht=v(()=>{Nt();Ut()});var Ehe=v(()=>{vht()});function KI(e,t){return de({[Oe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var Rht=v(()=>{Ut();Nt()});var SL=v(()=>{Rht()});function oi(e,t,n){return de({[Oe]:"Computed",target:e,parameters:t},n)}var Aht=v(()=>{vg();aL()});var wb=v(()=>{Aht()});function uGn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>uGn(n,r),e)}var F3=v(()=>{});var kg=v(()=>{F3()});function Zn(e){return de({[Oe]:"Never",not:{}},e)}var wht=v(()=>{Nt();Ut()});var ka=v(()=>{wht()});var kht=v(()=>{});function Qn(e){return de({[Oe]:"MappedResult",properties:e})}var _he=v(()=>{Nt();Ut()});function YI(e,t,n){return de({[Oe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var Iht=v(()=>{Nt();Ut()});var bL=v(()=>{Iht()});function jh(e,t,n){return de({[Oe]:"Function",type:"Function",parameters:e,returns:t},n)}var xht=v(()=>{Nt();Ut()});var zT=v(()=>{xht()});function EL(e,t){return de({[Oe]:"Union",anyOf:e},t)}var The=v(()=>{Nt();Ut()});function lGn(e){return e.some(t=>Bu(t))}function Oht(e){return e.map(t=>Bu(t)?dGn(t):t)}function dGn(e){return is(e,[wa])}function fGn(e,t){return lGn(e)?gc(EL(Oht(e),t)):EL(Oht(e),t)}function Hh(e,t){return e.length===1?de(e[0],t):e.length===0?Zn(t):fGn(e,t)}var Pht=v(()=>{Nt();Ut();kg();ka();Ig();The();Xn()});var Nht=v(()=>{});function Sr(e,t){return e.length===0?Zn(t):e.length===1?de(e[0],t):EL(e,t)}var Cht=v(()=>{ka();Nt();The()});var oo=v(()=>{Pht();Nht();Cht()});function pGn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function vhe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function xg(e,t){return vhe(e,t,"(")}function _L(e,t){return vhe(e,t,")")}function Mht(e,t){return vhe(e,t,"|")}function hGn(e){if(!(xg(e,0)&&_L(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(ZI(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(ZI(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function bGn(e){function t(i,s){if(!xg(i,s))throw new j3("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(ZI(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function ZI(e){return hGn(e)?ZI(mGn(e)):gGn(e)?SGn(e):yGn(e)?bGn(e):{type:"const",const:pGn(e)}}function JI(e){return ZI(e.slice(1,e.length-1))}var j3,H3=v(()=>{Fh();j3=class extends Jo{}});function EGn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function _Gn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function TGn(e){return e.type==="const"&&e.const===".*"}function GT(e){return EGn(e)||TGn(e)?!1:_Gn(e)?!0:e.type==="and"?e.expr.every(t=>GT(t)):e.type==="or"?e.expr.every(t=>GT(t)):e.type==="const"?!0:(()=>{throw new Rhe("Unknown expression type")})()}function Dht(e){let t=JI(e.pattern);return GT(t)}var Rhe,Ahe=v(()=>{H3();Fh();Rhe=class extends Jo{}});function*Lht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Lht(e.slice(1)))yield`${t}${n}`}function*vGn(e){return yield*Lht(e.expr.map(t=>[...TL(t)]))}function*RGn(e){for(let t of e.expr)yield*TL(t)}function*AGn(e){return yield e.const}function*TL(e){return e.type==="and"?yield*vGn(e):e.type==="or"?yield*RGn(e):e.type==="const"?yield*AGn(e):(()=>{throw new whe("Unknown expression")})()}function q3(e){let t=JI(e.pattern);return GT(t)?[...TL(t)]:[]}var whe,khe=v(()=>{Ahe();H3();Fh();whe=class extends Jo{}});function cr(e,t){return de({[Oe]:"Literal",const:e,type:typeof e},t)}var Uht=v(()=>{Nt();Ut()});var zu=v(()=>{Uht()});function B3(e){return de({[Oe]:"Boolean",type:"boolean"},e)}var Fht=v(()=>{Ut();vg()});var z3=v(()=>{Fht()});function XI(e){return de({[Oe]:"BigInt",type:"bigint"},e)}var jht=v(()=>{Ut();vg()});var vL=v(()=>{jht()});function Ld(e){return de({[Oe]:"Number",type:"number"},e)}var Hht=v(()=>{Nt();Ut()});var VT=v(()=>{Hht()});function Kf(e){return de({[Oe]:"String",type:"string"},e)}var qht=v(()=>{Nt();Ut()});var QI=v(()=>{qht()});function*wGn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield B3():t==="number"?yield Ld():t==="bigint"?yield XI():t==="string"?yield Kf():yield(()=>{let n=t.split("|").map(r=>cr(r.trim()));return n.length===0?Zn():n.length===1?n[0]:Hh(n)})()}function*kGn(e){if(e[1]!=="{"){let t=cr("$"),n=Ihe(e.slice(1));return yield*[t,...n]}for(let t=2;t{zu();z3();vL();VT();QI();oo();ka()});function IGn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function zht(e,t){return Il(e)?e.pattern.slice(1,e.pattern.length-1):Yn(e)?`(${e.anyOf.map(n=>zht(n,t)).join("|")})`:Wf(e)?`${t}${pL}`:Vf(e)?`${t}${pL}`:jT(e)?`${t}${pL}`:Ag(e)?`${t}${bhe}`:wl(e)?`${t}${IGn(e.const.toString())}`:Rg(e)?`${t}${She}`:(()=>{throw new Ohe(`Unexpected Kind '${e[Oe]}'`)})()}function Phe(e){return`^${e.map(t=>zht(t,"")).join("")}$`}var Ohe,Nhe=v(()=>{hL();Ut();Fh();Xn();Ohe=class extends Jo{}});function WT(e){let n=q3(e).map(r=>cr(r));return Hh(n)}var Ght=v(()=>{oo();zu();khe()});function G3(e,t){let n=Zr(e)?Phe(Bht(e)):Phe(e);return de({[Oe]:"TemplateLiteral",type:"string",pattern:n},t)}var Vht=v(()=>{Nt();xhe();Nhe();Jc();Ut()});var Og=v(()=>{Ahe();khe();xhe();H3();Nhe();Ght();Vht()});function xGn(e){return q3(e).map(n=>n.toString())}function OGn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function PGn(e){return[e.toString()]}function Gu(e){return[...new Set(Il(e)?xGn(e):Yn(e)?OGn(e.anyOf):wl(e)?PGn(e.const):Wf(e)?["[number]"]:Vf(e)?["[number]"]:[])]}var V3=v(()=>{Og();Xn()});function NGn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=kb(e,Gu(t[i]),n);return r}function CGn(e,t,n){return NGn(e,t.properties,n)}function Wht(e,t,n){let r=CGn(e,t,n);return Qn(r)}var Che=v(()=>{Ro();V3();qh()});function Yht(e,t){return e.map(n=>Zht(n,t))}function MGn(e){return e.filter(t=>!_b(t))}function DGn(e,t){return W3(MGn(Yht(e,t)))}function LGn(e){return e.some(t=>_b(t))?[]:e}function UGn(e,t){return Hh(LGn(Yht(e,t)))}function FGn(e,t){return t in e?e[t]:t==="[number]"?Hh(e):Zn()}function jGn(e,t){return t==="[number]"?e:Zn()}function HGn(e,t){return t in e?e[t]:Zn()}function Zht(e,t){return rs(e)?DGn(e.allOf,t):Yn(e)?UGn(e.anyOf,t):xl(e)?FGn(e.items??[],t):qf(e)?jGn(e.items,t):qs(e)?HGn(e.properties,t):Zn()}function Mhe(e,t){return t.map(n=>Zht(e,n))}function Kht(e,t){return Hh(Mhe(e,t))}function kb(e,t,n){if(_s(e)||_s(t)){let r="Index types using Ref parameters require both Type and Key to be of TSchema";if(!Ol(e)||!Ol(t))throw new Jo(r);return oi("Index",[e,t])}return Ri(t)?Wht(e,t,n):kl(t)?Jht(e,t,n):de(Ol(t)?Kht(e,Gu(t)):Kht(e,t),n)}var Dhe=v(()=>{Nt();Fh();wb();ka();Ud();oo();V3();Lhe();Che();Xn()});function qGn(e,t,n){return{[t]:kb(e,[t],vi(n))}}function BGn(e,t,n){return t.reduce((r,i)=>({...r,...qGn(e,i,n)}),{})}function zGn(e,t,n){return BGn(e,t.keys,n)}function Jht(e,t,n){let r=zGn(e,t,n);return Qn(r)}var Lhe=v(()=>{Dhe();Ro();qu()});var qh=v(()=>{Lhe();Che();V3();Dhe()});function $I(e,t){return de({[Oe]:"Iterator",type:"Iterator",items:e},t)}var Xht=v(()=>{Nt();Ut()});var RL=v(()=>{Xht()});function GGn(e){return globalThis.Object.keys(e).filter(t=>!Bu(e[t]))}function VGn(e,t){let n=GGn(e),r=n.length>0?{[Oe]:"Object",type:"object",required:n,properties:e}:{[Oe]:"Object",type:"object",properties:e};return de(r,t)}var Or,Qht=v(()=>{Nt();Ut();Xn();Or=VGn});var Pl=v(()=>{Qht()});function K3(e,t){return de({[Oe]:"Promise",type:"Promise",item:e},t)}var $ht=v(()=>{Nt();Ut()});var Y3=v(()=>{$ht()});function WGn(e){return de(is(e,[Hf]))}function KGn(e){return de({...e,[Hf]:"Readonly"})}function YGn(e,t){return t===!1?WGn(e):KGn(e)}function Vu(e,t){let n=t??!0;return Ri(e)?emt(e,n):YGn(e,n)}var Uhe=v(()=>{Nt();Ut();kg();Fhe();Xn()});function ZGn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Vu(e[r],t);return n}function JGn(e,t){return ZGn(e.properties,t)}function emt(e,t){let n=JGn(e,t);return Qn(n)}var Fhe=v(()=>{Ro();Uhe()});var KT=v(()=>{Fhe();Uhe()});function Fd(e,t){return de(e.length>0?{[Oe]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Oe]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var tmt=v(()=>{Nt();Ut()});var Ib=v(()=>{tmt()});function nmt(e,t){return e in t?jd(e,t[e]):Qn(t)}function XGn(e){return{[e]:cr(e)}}function QGn(e){let t={};for(let n of e)t[n]=cr(n);return t}function $Gn(e,t){return mht(t,e)?XGn(e):QGn(t)}function e2n(e,t){let n=$Gn(e,t);return nmt(e,n)}function AL(e,t){return t.map(n=>jd(e,n))}function t2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=jd(e,t[r]);return n}function jd(e,t){let n={...t};return Bu(t)?gc(jd(e,is(t,[wa]))):VI(t)?Vu(jd(e,is(t,[Hf]))):Ri(t)?nmt(e,t.properties):kl(t)?e2n(e,t.keys):zf(t)?YI(AL(e,t.parameters),jd(e,t.returns),n):Gf(t)?jh(AL(e,t.parameters),jd(e,t.returns),n):FT(t)?KI(jd(e,t.items),n):HT(t)?$I(jd(e,t.items),n):rs(t)?yc(AL(e,t.allOf),n):Yn(t)?Sr(AL(e,t.anyOf),n):xl(t)?Fd(AL(e,t.items??[]),n):qs(t)?Or(t2n(e,t.properties),n):qf(t)?WI(jd(e,t.items),n):qT(t)?K3(jd(e,t.item),n):t}function n2n(e,t){let n={};for(let r of e)n[r]=jd(r,t);return n}function rmt(e,t,n){let r=Ol(e)?Gu(e):e,i=t({[Oe]:"MappedKey",keys:r}),s=n2n(r,i);return Or(s,n)}var imt=v(()=>{Ut();kg();yL();SL();bL();zT();qh();Ud();RL();zu();Pl();Ig();Y3();KT();Ib();oo();mL();_he();Xn()});var Ro=v(()=>{kht();_he();imt()});function r2n(e){return de(is(e,[wa]))}function i2n(e){return de({...e,[wa]:"Optional"})}function s2n(e,t){return t===!1?r2n(e):i2n(e)}function gc(e,t){let n=t??!0;return Ri(e)?smt(e,n):s2n(e,n)}var jhe=v(()=>{Nt();Ut();kg();Hhe();Xn()});function o2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gc(e[r],t);return n}function a2n(e,t){return o2n(e.properties,t)}function smt(e,t){let n=a2n(e,t);return Qn(n)}var Hhe=v(()=>{Ro();jhe()});var Ig=v(()=>{Hhe();jhe()});function wL(e,t={}){let n=e.every(i=>qs(i)),r=Ol(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return de(t.unevaluatedProperties===!1||Ol(t.unevaluatedProperties)||n?{...r,[Oe]:"Intersect",type:"object",allOf:e}:{...r,[Oe]:"Intersect",allOf:e},t)}var qhe=v(()=>{Nt();Ut();Xn()});function c2n(e){return e.every(t=>Bu(t))}function u2n(e){return is(e,[wa])}function omt(e){return e.map(t=>Bu(t)?u2n(t):t)}function l2n(e,t){return c2n(e)?gc(wL(omt(e),t)):wL(omt(e),t)}function W3(e,t={}){if(e.length===1)return de(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>Tb(n)))throw new Error("Cannot intersect transform types");return l2n(e,t)}var amt=v(()=>{Ut();Nt();kg();ka();Ig();qhe();Xn()});var cmt=v(()=>{});function yc(e,t){if(e.length===1)return de(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>Tb(n)))throw new Error("Cannot intersect transform types");return wL(e,t)}var umt=v(()=>{Nt();ka();qhe();Xn()});var Ud=v(()=>{amt();cmt();umt()});function Bh(...e){let[t,n]=typeof e[0]=="string"?[e[0],e[1]]:[e[0].$id,e[1]];if(typeof t!="string")throw new Jo("Ref: $ref must be a string");return de({[Oe]:"Ref",$ref:t},n)}var lmt=v(()=>{Fh();Nt();Ut()});var YT=v(()=>{lmt()});function d2n(e,t){return oi("Awaited",[oi(e,t)])}function f2n(e){return oi("Awaited",[Bh(e)])}function p2n(e){return yc(dmt(e))}function h2n(e){return Sr(dmt(e))}function m2n(e){return e0(e)}function dmt(e){return e.map(t=>e0(t))}function e0(e,t){return de(Bf(e)?d2n(e.target,e.parameters):rs(e)?p2n(e.allOf):Yn(e)?h2n(e.anyOf):qT(e)?m2n(e.item):_s(e)?f2n(e.$ref):e,t)}var fmt=v(()=>{Nt();wb();Ud();oo();YT();Xn()});var Z3=v(()=>{fmt()});function pmt(e){let t=[];for(let n of e)t.push(kL(n));return t}function g2n(e){let t=pmt(e);return Sht(t)}function y2n(e){let t=pmt(e);return yht(t)}function S2n(e){return e.map((t,n)=>n.toString())}function b2n(e){return["[number]"]}function E2n(e){return globalThis.Object.getOwnPropertyNames(e)}function _2n(e){return T2n?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function kL(e){return rs(e)?g2n(e.allOf):Yn(e)?y2n(e.anyOf):xl(e)?S2n(e.items??[]):qf(e)?b2n(e.items):qs(e)?E2n(e.properties):BT(e)?_2n(e.patternProperties):[]}var T2n,Bhe=v(()=>{mL();Xn();T2n=!1});function v2n(e,t){return oi("KeyOf",[oi(e,t)])}function R2n(e){return oi("KeyOf",[Bh(e)])}function A2n(e,t){let n=kL(e),r=w2n(n),i=Hh(r);return de(i,t)}function w2n(e){return e.map(t=>t==="[number]"?Ld():cr(t))}function t0(e,t){return Bf(e)?v2n(e.target,e.parameters):_s(e)?R2n(e.$ref):Ri(e)?hmt(e,t):A2n(e,t)}var zhe=v(()=>{Nt();zu();VT();wb();YT();Bhe();oo();Ghe();Xn()});function k2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=t0(e[r],vi(t));return n}function I2n(e,t){return k2n(e.properties,t)}function hmt(e,t){let n=I2n(e,t);return Qn(n)}var Ghe=v(()=>{Ro();zhe();qu()});var mmt=v(()=>{});var IL=v(()=>{Ghe();mmt();Bhe();zhe()});function x2n(e){let t=[];for(let n of e)t.push(...kL(n));return ght(t)}function O2n(e){return e.filter(t=>!_b(t))}function P2n(e,t){let n=[];for(let r of e)n.push(...Mhe(r,[t]));return O2n(n)}function N2n(e,t){let n={};for(let r of t)n[r]=W3(P2n(e,r));return n}function gmt(e,t){let n=x2n(e),r=N2n(e,n);return Or(r,t)}var ymt=v(()=>{Ud();qh();IL();Pl();mL();Xn()});var Vhe=v(()=>{ymt()});function J3(e){return de({[Oe]:"Date",type:"Date"},e)}var Smt=v(()=>{Ut();Nt()});var X3=v(()=>{Smt()});function Q3(e){return de({[Oe]:"Null",type:"null"},e)}var bmt=v(()=>{Nt();Ut()});var $3=v(()=>{bmt()});function e9(e){return de({[Oe]:"Symbol",type:"symbol"},e)}var Emt=v(()=>{Nt();Ut()});var t9=v(()=>{Emt()});function n9(e){return de({[Oe]:"Undefined",type:"undefined"},e)}var _mt=v(()=>{Nt();Ut()});var r9=v(()=>{_mt()});function i9(e){return de({[Oe]:"Uint8Array",type:"Uint8Array"},e)}var Tmt=v(()=>{Nt();Ut()});var s9=v(()=>{Tmt()});function xb(e){return de({[Oe]:"Unknown"},e)}var vmt=v(()=>{Nt();Ut()});var n0=v(()=>{vmt()});function C2n(e){return e.map(t=>Whe(t,!1))}function M2n(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Vu(Whe(e[n],!1));return t}function o9(e,t){return t===!0?e:Vu(e)}function Whe(e,t){return ihe(e)?o9(Ab(),t):ohe(e)?o9(Ab(),t):js(e)?Vu(Fd(C2n(e))):Tg(e)?i9():UT(e)?J3():Ir(e)?o9(Or(M2n(e)),t):she(e)?o9(jh([],xb()),t):Hs(e)?n9():ahe(e)?Q3():che(e)?e9():iL(e)?XI():Al(e)?cr(e):_g(e)?cr(e):Zr(e)?cr(e):Or({})}function Rmt(e,t){return de(Whe(e,!0),t)}var Amt=v(()=>{gL();vL();X3();zT();zu();$3();Pl();t9();Ib();KT();r9();s9();n0();vg();Jc()});var Khe=v(()=>{Amt()});function wmt(e,t){return zf(e)?Fd(e.parameters,t):Zn(t)}var kmt=v(()=>{Ib();ka();Xn()});var Yhe=v(()=>{kmt()});function Imt(e,t){if(Hs(e))throw new Error("Enum undefined or empty");let n=globalThis.Object.getOwnPropertyNames(e).filter(s=>isNaN(s)).map(s=>e[s]),i=[...new Set(n)].map(s=>cr(s));return Sr(i,{...t,[Dd]:"Enum"})}var xmt=v(()=>{zu();Ut();oo();Jc()});var Zhe=v(()=>{xmt()});function Hd(e){return e===fe.False?e:fe.True}function r0(e){throw new Xhe(e)}function ao(e){return X.IsNever(e)||X.IsIntersect(e)||X.IsUnion(e)||X.IsUnknown(e)||X.IsAny(e)}function co(e,t){return X.IsNever(t)?Lmt(e,t):X.IsIntersect(t)?a9(e,t):X.IsUnion(t)?tme(e,t):X.IsUnknown(t)?Hmt(e,t):X.IsAny(t)?eme(e,t):r0("StructuralRight")}function eme(e,t){return fe.True}function D2n(e,t){return X.IsIntersect(t)?a9(e,t):X.IsUnion(t)&&t.anyOf.some(n=>X.IsAny(n)||X.IsUnknown(n))?fe.True:X.IsUnion(t)?fe.Union:X.IsUnknown(t)||X.IsAny(t)?fe.True:fe.Union}function L2n(e,t){return X.IsUnknown(e)?fe.False:X.IsAny(e)?fe.Union:X.IsNever(e)?fe.True:fe.False}function U2n(e,t){return X.IsObject(t)&&c9(t)?fe.True:ao(t)?co(e,t):X.IsArray(t)?Hd(Pr(e.items,t.items)):fe.False}function F2n(e,t){return ao(t)?co(e,t):X.IsAsyncIterator(t)?Hd(Pr(e.items,t.items)):fe.False}function j2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsBigInt(t)?fe.True:fe.False}function Mmt(e,t){return X.IsLiteralBoolean(e)||X.IsBoolean(e)?fe.True:fe.False}function H2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsBoolean(t)?fe.True:fe.False}function q2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsConstructor(t)?e.parameters.length>t.parameters.length?fe.False:e.parameters.every((n,r)=>Hd(Pr(t.parameters[r],n))===fe.True)?Hd(Pr(e.returns,t.returns)):fe.False:fe.False}function B2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsDate(t)?fe.True:fe.False}function z2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsFunction(t)?e.parameters.length>t.parameters.length?fe.False:e.parameters.every((n,r)=>Hd(Pr(t.parameters[r],n))===fe.True)?Hd(Pr(e.returns,t.returns)):fe.False:fe.False}function Dmt(e,t){return X.IsLiteral(e)&&mc.IsNumber(e.const)||X.IsNumber(e)||X.IsInteger(e)?fe.True:fe.False}function G2n(e,t){return X.IsInteger(t)||X.IsNumber(t)?fe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):fe.False}function a9(e,t){return t.allOf.every(n=>Pr(e,n)===fe.True)?fe.True:fe.False}function V2n(e,t){return e.allOf.some(n=>Pr(n,t)===fe.True)?fe.True:fe.False}function W2n(e,t){return ao(t)?co(e,t):X.IsIterator(t)?Hd(Pr(e.items,t.items)):fe.False}function K2n(e,t){return X.IsLiteral(t)&&t.const===e.const?fe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsString(t)?jmt(e,t):X.IsNumber(t)?Umt(e,t):X.IsInteger(t)?Dmt(e,t):X.IsBoolean(t)?Mmt(e,t):fe.False}function Lmt(e,t){return fe.False}function Y2n(e,t){return fe.True}function Omt(e){let[t,n]=[e,0];for(;X.IsNot(t);)t=t.not,n+=1;return n%2===0?t:xb()}function Z2n(e,t){return X.IsNot(e)?Pr(Omt(e),t):X.IsNot(t)?Pr(e,Omt(t)):r0("Invalid fallthrough for Not")}function J2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsNull(t)?fe.True:fe.False}function Umt(e,t){return X.IsLiteralNumber(e)||X.IsNumber(e)||X.IsInteger(e)?fe.True:fe.False}function X2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsInteger(t)||X.IsNumber(t)?fe.True:fe.False}function Wu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Pmt(e){return c9(e)}function Nmt(e){return Wu(e,0)||Wu(e,1)&&"description"in e.properties&&X.IsUnion(e.properties.description)&&e.properties.description.anyOf.length===2&&(X.IsString(e.properties.description.anyOf[0])&&X.IsUndefined(e.properties.description.anyOf[1])||X.IsString(e.properties.description.anyOf[1])&&X.IsUndefined(e.properties.description.anyOf[0]))}function Jhe(e){return Wu(e,0)}function Cmt(e){return Wu(e,0)}function Q2n(e){return Wu(e,0)}function $2n(e){return Wu(e,0)}function eVn(e){return c9(e)}function tVn(e){let t=Ld();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&Hd(Pr(e.properties.length,t))===fe.True}function nVn(e){return Wu(e,0)}function c9(e){let t=Ld();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&Hd(Pr(e.properties.length,t))===fe.True}function rVn(e){let t=jh([Ab()],Ab());return Wu(e,0)||Wu(e,1)&&"then"in e.properties&&Hd(Pr(e.properties.then,t))===fe.True}function Fmt(e,t){return Pr(e,t)===fe.False||X.IsOptional(e)&&!X.IsOptional(t)?fe.False:fe.True}function Sc(e,t){return X.IsUnknown(e)?fe.False:X.IsAny(e)?fe.Union:X.IsNever(e)||X.IsLiteralString(e)&&Pmt(t)||X.IsLiteralNumber(e)&&Jhe(t)||X.IsLiteralBoolean(e)&&Cmt(t)||X.IsSymbol(e)&&Nmt(t)||X.IsBigInt(e)&&Q2n(t)||X.IsString(e)&&Pmt(t)||X.IsSymbol(e)&&Nmt(t)||X.IsNumber(e)&&Jhe(t)||X.IsInteger(e)&&Jhe(t)||X.IsBoolean(e)&&Cmt(t)||X.IsUint8Array(e)&&eVn(t)||X.IsDate(e)&&$2n(t)||X.IsConstructor(e)&&nVn(t)||X.IsFunction(e)&&tVn(t)?fe.True:X.IsRecord(e)&&X.IsString(Qhe(e))?t[Dd]==="Record"?fe.True:fe.False:X.IsRecord(e)&&X.IsNumber(Qhe(e))&&Wu(t,0)?fe.True:fe.False}function iVn(e,t){return ao(t)?co(e,t):X.IsRecord(t)?qd(e,t):X.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!X.IsOptional(t.properties[n]))return fe.False;if(X.IsOptional(t.properties[n]))return fe.True;if(Fmt(e.properties[n],t.properties[n])===fe.False)return fe.False}return fe.True})():fe.False}function sVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&rVn(t)?fe.True:X.IsPromise(t)?Hd(Pr(e.item,t.item)):fe.False}function Qhe(e){return vb in e.patternProperties?Ld():Rb in e.patternProperties?Kf():r0("Unknown record key pattern")}function $he(e){return vb in e.patternProperties?e.patternProperties[vb]:Rb in e.patternProperties?e.patternProperties[Rb]:r0("Unable to get record value schema")}function qd(e,t){let[n,r]=[Qhe(t),$he(t)];return X.IsLiteralString(e)&&X.IsNumber(n)&&Hd(Pr(e,r))===fe.True?fe.True:X.IsUint8Array(e)&&X.IsNumber(n)||X.IsString(e)&&X.IsNumber(n)||X.IsArray(e)&&X.IsNumber(n)?Pr(e,r):X.IsObject(e)?(()=>{for(let i of Object.getOwnPropertyNames(e.properties))if(Fmt(r,e.properties[i])===fe.False)return fe.False;return fe.True})():fe.False}function oVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Pr($he(e),$he(t)):fe.False}function aVn(e,t){let n=X.IsRegExp(e)?Kf():e,r=X.IsRegExp(t)?Kf():t;return Pr(n,r)}function jmt(e,t){return X.IsLiteral(e)&&mc.IsString(e.const)||X.IsString(e)?fe.True:fe.False}function cVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsString(t)?fe.True:fe.False}function uVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsSymbol(t)?fe.True:fe.False}function lVn(e,t){return X.IsTemplateLiteral(e)?Pr(WT(e),t):X.IsTemplateLiteral(t)?Pr(e,WT(t)):r0("Invalid fallthrough for TemplateLiteral")}function dVn(e,t){return X.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Pr(n,t.items)===fe.True)}function fVn(e,t){return X.IsNever(e)?fe.True:X.IsUnknown(e)?fe.False:X.IsAny(e)?fe.Union:fe.False}function pVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&c9(t)||X.IsArray(t)&&dVn(e,t)?fe.True:X.IsTuple(t)?mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||!mc.IsUndefined(e.items)&&mc.IsUndefined(t.items)?fe.False:mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||e.items.every((n,r)=>Pr(n,t.items[r])===fe.True)?fe.True:fe.False:fe.False}function hVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsUint8Array(t)?fe.True:fe.False}function mVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsVoid(t)?SVn(e,t):X.IsUndefined(t)?fe.True:fe.False}function tme(e,t){return t.anyOf.some(n=>Pr(e,n)===fe.True)?fe.True:fe.False}function gVn(e,t){return e.anyOf.every(n=>Pr(n,t)===fe.True)?fe.True:fe.False}function Hmt(e,t){return fe.True}function yVn(e,t){return X.IsNever(t)?Lmt(e,t):X.IsIntersect(t)?a9(e,t):X.IsUnion(t)?tme(e,t):X.IsAny(t)?eme(e,t):X.IsString(t)?jmt(e,t):X.IsNumber(t)?Umt(e,t):X.IsInteger(t)?Dmt(e,t):X.IsBoolean(t)?Mmt(e,t):X.IsArray(t)?L2n(e,t):X.IsTuple(t)?fVn(e,t):X.IsObject(t)?Sc(e,t):X.IsUnknown(t)?fe.True:fe.False}function SVn(e,t){return X.IsUndefined(e)||X.IsUndefined(e)?fe.True:fe.False}function bVn(e,t){return X.IsIntersect(t)?a9(e,t):X.IsUnion(t)?tme(e,t):X.IsUnknown(t)?Hmt(e,t):X.IsAny(t)?eme(e,t):X.IsObject(t)?Sc(e,t):X.IsVoid(t)?fe.True:fe.False}function Pr(e,t){return X.IsTemplateLiteral(e)||X.IsTemplateLiteral(t)?lVn(e,t):X.IsRegExp(e)||X.IsRegExp(t)?aVn(e,t):X.IsNot(e)||X.IsNot(t)?Z2n(e,t):X.IsAny(e)?D2n(e,t):X.IsArray(e)?U2n(e,t):X.IsBigInt(e)?j2n(e,t):X.IsBoolean(e)?H2n(e,t):X.IsAsyncIterator(e)?F2n(e,t):X.IsConstructor(e)?q2n(e,t):X.IsDate(e)?B2n(e,t):X.IsFunction(e)?z2n(e,t):X.IsInteger(e)?G2n(e,t):X.IsIntersect(e)?V2n(e,t):X.IsIterator(e)?W2n(e,t):X.IsLiteral(e)?K2n(e,t):X.IsNever(e)?Y2n(e,t):X.IsNull(e)?J2n(e,t):X.IsNumber(e)?X2n(e,t):X.IsObject(e)?iVn(e,t):X.IsRecord(e)?oVn(e,t):X.IsString(e)?cVn(e,t):X.IsSymbol(e)?uVn(e,t):X.IsTuple(e)?pVn(e,t):X.IsPromise(e)?sVn(e,t):X.IsUint8Array(e)?hVn(e,t):X.IsUndefined(e)?mVn(e,t):X.IsUnion(e)?gVn(e,t):X.IsUnknown(e)?yVn(e,t):X.IsVoid(e)?bVn(e,t):r0(`Unknown left type operand '${e[Oe]}'`)}function Ob(e,t){return Pr(e,t)}var Xhe,fe,nme=v(()=>{gL();zT();VT();QI();n0();Og();hL();Ut();Fh();yhe();Xhe=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(fe||(fe={}))});function EVn(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=i0(e[o],t,n,r,vi(i));return s}function _Vn(e,t,n,r,i){return EVn(e.properties,t,n,r,i)}function qmt(e,t,n,r,i){let s=_Vn(e,t,n,r,i);return Qn(s)}var rme=v(()=>{Ro();u9();qu()});function TVn(e,t,n,r){let i=Ob(e,t);return i===fe.Union?Sr([n,r]):i===fe.True?n:r}function i0(e,t,n,r,i){return Ri(e)?qmt(e,t,n,r,i):kl(e)?de(Bmt(e,t,n,r,i)):de(TVn(e,t,n,r),i)}var u9=v(()=>{Nt();oo();nme();ime();rme();Xn()});function vVn(e,t,n,r,i){return{[e]:i0(cr(e),t,n,r,vi(i))}}function RVn(e,t,n,r,i){return e.reduce((s,o)=>({...s,...vVn(o,t,n,r,i)}),{})}function AVn(e,t,n,r,i){return RVn(e.keys,t,n,r,i)}function Bmt(e,t,n,r,i){let s=AVn(e,t,n,r,i);return Qn(s)}var ime=v(()=>{Ro();zu();u9();qu()});var zmt=v(()=>{});var xL=v(()=>{nme();ime();rme();zmt();u9()});function Gmt(e,t){return s0(WT(e),t)}var sme=v(()=>{l9();Og()});function wVn(e,t){let n=e.filter(r=>Ob(r,t)===fe.False);return n.length===1?n[0]:Sr(n)}function s0(e,t,n={}){return Il(e)?de(Gmt(e,t),n):Ri(e)?de(Vmt(e,t),n):de(Yn(e)?wVn(e.anyOf,t):Ob(e,t)!==fe.False?Zn():e,n)}var l9=v(()=>{Nt();oo();ka();xL();ome();sme();Xn()});function kVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=s0(e[r],t);return n}function IVn(e,t){return kVn(e.properties,t)}function Vmt(e,t){let n=IVn(e,t);return Qn(n)}var ome=v(()=>{Ro();l9()});var ame=v(()=>{ome();sme();l9()});function Wmt(e,t){return o0(WT(e),t)}var cme=v(()=>{d9();Og()});function xVn(e,t){let n=e.filter(r=>Ob(r,t)!==fe.False);return n.length===1?n[0]:Sr(n)}function o0(e,t,n){return Il(e)?de(Wmt(e,t),n):Ri(e)?de(Kmt(e,t),n):de(Yn(e)?xVn(e.anyOf,t):Ob(e,t)!==fe.False?e:Zn(),n)}var d9=v(()=>{Nt();oo();ka();xL();ume();cme();Xn()});function OVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],t);return n}function PVn(e,t){return OVn(e.properties,t)}function Kmt(e,t){let n=PVn(e,t);return Qn(n)}var ume=v(()=>{Ro();d9()});var lme=v(()=>{ume();cme();d9()});function Ymt(e,t){return zf(e)?de(e.returns,t):Zn(t)}var Zmt=v(()=>{Nt();ka();Xn()});var dme=v(()=>{Zmt()});function f9(e){return Vu(gc(e))}var Jmt=v(()=>{KT();Ig()});var p9=v(()=>{Jmt()});function ZT(e,t,n){return de({[Oe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function fme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Dd]:"Record"})}function NVn(e,t,n){return Dht(e)?fme(Gu(e),t,n):ZT(e.pattern,t,n)}function CVn(e,t,n){return fme(Gu(Sr(e)),t,n)}function MVn(e,t,n){return fme([e.toString()],t,n)}function DVn(e,t,n){return ZT(e.source,t,n)}function LVn(e,t,n){let r=Hs(e.pattern)?Rb:e.pattern;return ZT(r,t,n)}function UVn(e,t,n){return ZT(Rb,t,n)}function FVn(e,t,n){return ZT(lht,t,n)}function jVn(e,t,n){return Or({true:t,false:t},n)}function HVn(e,t,n){return ZT(vb,t,n)}function qVn(e,t,n){return ZT(vb,t,n)}function h9(e,t,n={}){return Yn(e)?CVn(e.anyOf,t,n):Il(e)?NVn(e,t,n):wl(e)?MVn(e.const,t,n):Rg(e)?jVn(e,t,n):Vf(e)?HVn(e,t,n):Wf(e)?qVn(e,t,n):fhe(e)?DVn(e,t,n):Ag(e)?LVn(e,t,n):lhe(e)?UVn(e,t,n):_b(e)?FVn(e,t,n):Zn(n)}function m9(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function Xmt(e){let t=m9(e);return t===Rb?Kf():t===vb?Ld():Kf({pattern:t})}function g9(e){return e.patternProperties[m9(e)]}var Qmt=v(()=>{Nt();Ut();ka();VT();Pl();QI();oo();Og();hL();qh();Jc();Xn()});var OL=v(()=>{Qmt()});function BVn(e,t){return t.parameters=PL(e,t.parameters),t.returns=Yf(e,t.returns),t}function zVn(e,t){return t.parameters=PL(e,t.parameters),t.returns=Yf(e,t.returns),t}function GVn(e,t){return t.allOf=PL(e,t.allOf),t}function VVn(e,t){return t.anyOf=PL(e,t.anyOf),t}function WVn(e,t){return Hs(t.items)||(t.items=PL(e,t.items)),t}function KVn(e,t){return t.items=Yf(e,t.items),t}function YVn(e,t){return t.items=Yf(e,t.items),t}function ZVn(e,t){return t.items=Yf(e,t.items),t}function JVn(e,t){return t.item=Yf(e,t.item),t}function XVn(e,t){let n=tWn(e,t.properties);return{...t,...Or(n)}}function QVn(e,t){let n=Yf(e,Xmt(t)),r=Yf(e,g9(t)),i=h9(n,r);return{...t,...i}}function $Vn(e,t){return t.index in e?e[t.index]:xb()}function eWn(e,t){let n=VI(t),r=Bu(t),i=Yf(e,t);return n&&r?f9(i):n&&!r?Vu(i):!n&&r?gc(i):i}function tWn(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:eWn(e,t[r])}),{})}function PL(e,t){return t.map(n=>Yf(e,n))}function Yf(e,t){return zf(t)?BVn(e,t):Gf(t)?zVn(e,t):rs(t)?GVn(e,t):Yn(t)?VVn(e,t):xl(t)?WVn(e,t):qf(t)?KVn(e,t):FT(t)?YVn(e,t):HT(t)?ZVn(e,t):qT(t)?JVn(e,t):qs(t)?XVn(e,t):BT(t)?QVn(e,t):dhe(t)?$Vn(e,t):t}function $mt(e,t){return Yf(t,GI(e))}var egt=v(()=>{M3();n0();p9();KT();Ig();Pl();OL();Jc();Xn()});var pme=v(()=>{egt()});function tgt(e){return de({[Oe]:"Integer",type:"integer"},e)}var ngt=v(()=>{Nt();Ut()});var hme=v(()=>{ngt()});function nWn(e,t,n){return{[e]:Zf(cr(e),t,vi(n))}}function rWn(e,t,n){return e.reduce((i,s)=>({...i,...nWn(s,t,n)}),{})}function iWn(e,t,n){return rWn(e.keys,t,n)}function rgt(e,t,n){let r=iWn(e,t,n);return Qn(r)}var mme=v(()=>{Ro();JT();zu();qu()});function sWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function oWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function aWn(e){return e.toUpperCase()}function cWn(e){return e.toLowerCase()}function uWn(e,t,n){let r=JI(e.pattern);if(!GT(r))return{...e,pattern:igt(e.pattern,t)};let o=[...TL(r)].map(u=>cr(u)),a=sgt(o,t),c=Sr(a);return G3([c],n)}function igt(e,t){return typeof e=="string"?t==="Uncapitalize"?sWn(e):t==="Capitalize"?oWn(e):t==="Uppercase"?aWn(e):t==="Lowercase"?cWn(e):e:e.toString()}function sgt(e,t){return e.map(n=>Zf(n,t))}function Zf(e,t,n={}){return kl(e)?rgt(e,t,n):Il(e)?uWn(e,t,n):Yn(e)?Sr(sgt(e.anyOf,t),n):wl(e)?cr(igt(e.const,t),n):de(e,n)}var JT=v(()=>{Nt();Og();mme();zu();oo();Xn()});function ogt(e,t={}){return Zf(e,"Capitalize",t)}var agt=v(()=>{JT()});function cgt(e,t={}){return Zf(e,"Lowercase",t)}var ugt=v(()=>{JT()});function lgt(e,t={}){return Zf(e,"Uncapitalize",t)}var dgt=v(()=>{JT()});function fgt(e,t={}){return Zf(e,"Uppercase",t)}var pgt=v(()=>{JT()});var gme=v(()=>{agt();mme();JT();ugt();dgt();pgt()});function lWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Pb(e[i],t,vi(n));return r}function dWn(e,t,n){return lWn(e.properties,t,n)}function hgt(e,t,n){let r=dWn(e,t,n);return Qn(r)}var yme=v(()=>{Ro();y9();qu()});function fWn(e,t){return e.map(n=>Sme(n,t))}function pWn(e,t){return e.map(n=>Sme(n,t))}function hWn(e,t){let{[t]:n,...r}=e;return r}function mWn(e,t){return t.reduce((n,r)=>hWn(n,r),e)}function gWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=mWn(n,t);return Or(i,r)}function yWn(e){let t=e.reduce((n,r)=>L3(r)?[...n,cr(r)]:n,[]);return Sr(t)}function Sme(e,t){return rs(e)?yc(fWn(e.allOf,t)):Yn(e)?Sr(pWn(e.anyOf,t)):qs(e)?gWn(e,t,e.properties):Or({})}function Pb(e,t,n){let r=js(t)?yWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?hgt(e,i,n):kl(t)?mgt(e,t,n):s&&o?oi("Omit",[e,r],n):!s&&o?oi("Omit",[e,r],n):s&&!o?oi("Omit",[e,r],n):de({...Sme(e,i),...n})}var y9=v(()=>{Nt();F3();aL();wb();zu();qh();Ud();oo();Pl();bme();yme();Xn();Jc()});function SWn(e,t,n){return{[t]:Pb(e,[t],vi(n))}}function bWn(e,t,n){return t.reduce((r,i)=>({...r,...SWn(e,i,n)}),{})}function EWn(e,t,n){return bWn(e,t.keys,n)}function mgt(e,t,n){let r=EWn(e,t,n);return Qn(r)}var bme=v(()=>{Ro();y9();qu()});var S9=v(()=>{bme();yme();y9()});function _Wn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Nb(e[i],t,vi(n));return r}function TWn(e,t,n){return _Wn(e.properties,t,n)}function ggt(e,t,n){let r=TWn(e,t,n);return Qn(r)}var Eme=v(()=>{Ro();b9();qu()});function vWn(e,t){return e.map(n=>_me(n,t))}function RWn(e,t){return e.map(n=>_me(n,t))}function AWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function wWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=AWn(n,t);return Or(i,r)}function kWn(e){let t=e.reduce((n,r)=>L3(r)?[...n,cr(r)]:n,[]);return Sr(t)}function _me(e,t){return rs(e)?yc(vWn(e.allOf,t)):Yn(e)?Sr(RWn(e.anyOf,t)):qs(e)?wWn(e,t,e.properties):Or({})}function Nb(e,t,n){let r=js(t)?kWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?ggt(e,i,n):kl(t)?ygt(e,t,n):s&&o?oi("Pick",[e,r],n):!s&&o?oi("Pick",[e,r],n):s&&!o?oi("Pick",[e,r],n):de({..._me(e,i),...n})}var b9=v(()=>{Nt();F3();wb();Ud();zu();Pl();oo();qh();aL();Xn();Jc();Tme();Eme()});function IWn(e,t,n){return{[t]:Nb(e,[t],vi(n))}}function xWn(e,t,n){return t.reduce((r,i)=>({...r,...IWn(e,i,n)}),{})}function OWn(e,t,n){return xWn(e,t.keys,n)}function ygt(e,t,n){let r=OWn(e,t,n);return Qn(r)}var Tme=v(()=>{Ro();b9();qu()});var E9=v(()=>{Tme();Eme();b9()});function PWn(e,t){return oi("Partial",[oi(e,t)])}function NWn(e){return oi("Partial",[Bh(e)])}function CWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=gc(e[n]);return t}function MWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=CWn(t);return Or(r,n)}function Sgt(e){return e.map(t=>bgt(t))}function bgt(e){return Bf(e)?PWn(e.target,e.parameters):_s(e)?NWn(e.$ref):rs(e)?yc(Sgt(e.allOf)):Yn(e)?Sr(Sgt(e.anyOf)):qs(e)?MWn(e,e.properties):jT(e)||Rg(e)||Vf(e)||wl(e)||cL(e)||Wf(e)||Ag(e)||uL(e)||lL(e)?e:Or({})}function a0(e,t){return Ri(e)?Egt(e,t):de({...bgt(e),...t})}var vme=v(()=>{Nt();wb();Ig();Pl();Ud();oo();YT();kg();Ut();Rme();Xn()});function DWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=a0(e[r],vi(t));return n}function LWn(e,t){return DWn(e.properties,t)}function Egt(e,t){let n=LWn(e,t);return Qn(n)}var Rme=v(()=>{Ro();vme();qu()});var _9=v(()=>{Rme();vme()});function UWn(e,t){return oi("Required",[oi(e,t)])}function FWn(e){return oi("Required",[Bh(e)])}function jWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function HWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=jWn(t);return Or(r,n)}function _gt(e){return e.map(t=>Tgt(t))}function Tgt(e){return Bf(e)?UWn(e.target,e.parameters):_s(e)?FWn(e.$ref):rs(e)?yc(_gt(e.allOf)):Yn(e)?Sr(_gt(e.anyOf)):qs(e)?HWn(e,e.properties):jT(e)||Rg(e)||Vf(e)||wl(e)||cL(e)||Wf(e)||Ag(e)||uL(e)||lL(e)?e:Or({})}function c0(e,t){return Ri(e)?vgt(e,t):de({...Tgt(e),...t})}var Ame=v(()=>{Nt();wb();Pl();Ud();oo();YT();Ut();kg();wme();Xn()});function qWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=c0(e[r],t);return n}function BWn(e,t){return qWn(e.properties,t)}function vgt(e,t){let n=BWn(e,t);return Qn(n)}var wme=v(()=>{Ro();Ame()});var T9=v(()=>{wme();Ame()});function zWn(e,t){return t.map(n=>_s(n)?kme(e,n.$ref):Nl(e,n))}function kme(e,t){return t in e?_s(e[t])?kme(e,e[t].$ref):Nl(e,e[t]):Zn()}function GWn(e){return e0(e[0])}function VWn(e){return kb(e[0],e[1])}function WWn(e){return t0(e[0])}function KWn(e){return a0(e[0])}function YWn(e){return Pb(e[0],e[1])}function ZWn(e){return Nb(e[0],e[1])}function JWn(e){return c0(e[0])}function XWn(e,t,n){let r=zWn(e,n);return t==="Awaited"?GWn(r):t==="Index"?VWn(r):t==="KeyOf"?WWn(r):t==="Partial"?KWn(r):t==="Omit"?YWn(r):t==="Pick"?ZWn(r):t==="Required"?JWn(r):Zn()}function QWn(e,t){return WI(Nl(e,t))}function $Wn(e,t){return KI(Nl(e,t))}function e4n(e,t,n){return YI(NL(e,t),Nl(e,n))}function t4n(e,t,n){return jh(NL(e,t),Nl(e,n))}function n4n(e,t){return yc(NL(e,t))}function r4n(e,t){return $I(Nl(e,t))}function i4n(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Nl(e,t[r])}),{}))}function s4n(e,t){let[n,r]=[Nl(e,g9(t)),m9(t)],i=GI(t);return i.patternProperties[r]=n,i}function o4n(e,t){return _s(t)?{...kme(e,t.$ref),[so]:t[so]}:t}function a4n(e,t){return Fd(NL(e,t))}function c4n(e,t){return Sr(NL(e,t))}function NL(e,t){return t.map(n=>Nl(e,n))}function Nl(e,t){return Bu(t)?de(Nl(e,is(t,[wa])),t):VI(t)?de(Nl(e,is(t,[Hf])),t):Tb(t)?de(o4n(e,t),t):qf(t)?de(QWn(e,t.items),t):FT(t)?de($Wn(e,t.items),t):Bf(t)?de(XWn(e,t.target,t.parameters)):zf(t)?de(e4n(e,t.parameters,t.returns),t):Gf(t)?de(t4n(e,t.parameters,t.returns),t):rs(t)?de(n4n(e,t.allOf),t):HT(t)?de(r4n(e,t.items),t):qs(t)?de(i4n(e,t.properties),t):BT(t)?de(s4n(e,t)):xl(t)?de(a4n(e,t.items||[]),t):Yn(t)?de(c4n(e,t.anyOf),t):t}function u4n(e,t){return t in e?Nl(e,e[t]):Zn()}function Rgt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:u4n(e,n)}),{})}var Agt=v(()=>{vg();uhe();kg();yL();Z3();SL();bL();qh();zT();Ud();RL();IL();Pl();S9();E9();ka();_9();OL();T9();Ib();oo();Ut();Xn()});function wgt(e){return new Ime(e)}var Ime,kgt=v(()=>{vg();Ut();Agt();Ime=class{constructor(t){let n=Rgt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:de(this.$defs[t],n)};return de({[Oe]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var xme=v(()=>{kgt()});function Igt(e,t){return de({[Oe]:"Not",not:e},t)}var xgt=v(()=>{Nt();Ut()});var Ome=v(()=>{xgt()});function Ogt(e,t){return Gf(e)?Fd(e.parameters,t):Zn()}var Pgt=v(()=>{Ib();ka();Xn()});var Pme=v(()=>{Pgt()});function Ngt(e,t={}){Hs(t.$id)&&(t.$id=`T${l4n++}`);let n=GI(e({[Oe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,de({[Dd]:"Recursive",...n},t)}var l4n,Cgt=v(()=>{M3();Nt();Jc();Ut();l4n=0});var Nme=v(()=>{Cgt()});function Mgt(e,t){let n=Zr(e)?new globalThis.RegExp(e):e;return de({[Oe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var Dgt=v(()=>{Nt();Jc();Ut()});var Cme=v(()=>{Dgt()});function d4n(e){return rs(e)?e.allOf:Yn(e)?e.anyOf:xl(e)?e.items??[]:[]}function Lgt(e){return d4n(e)}var Ugt=v(()=>{Xn()});var Mme=v(()=>{Ugt()});function Fgt(e,t){return Gf(e)?de(e.returns,t):Zn(t)}var jgt=v(()=>{Nt();ka();Xn()});var Dme=v(()=>{jgt()});var Hgt=v(()=>{});var qgt=v(()=>{});var Bgt=v(()=>{Hgt();qgt()});var zgt=v(()=>{});var Ggt=v(()=>{zgt()});function Vgt(e){return new Lme(e)}var Lme,Ume,Wgt=v(()=>{Ut();Xn();Lme=class{constructor(t){this.schema=t}Decode(t){return new Ume(this.schema,t)}},Ume=class{constructor(t,n){this.schema=t,this.decode=n}EncodeTransform(t,n){let s={Encode:o=>n[so].Encode(t(o)),Decode:o=>this.decode(n[so].Decode(o))};return{...n,[so]:s}}EncodeSchema(t,n){let r={Decode:this.decode,Encode:t};return{...n,[so]:r}}Encode(t){return Tb(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var Fme=v(()=>{Wgt()});function Kgt(e={}){return de({[Oe]:e[Oe]??"Unsafe"},e)}var Ygt=v(()=>{Nt();Ut()});var jme=v(()=>{Ygt()});function Zgt(e){return de({[Oe]:"Void",type:"void"},e)}var Jgt=v(()=>{Nt();Ut()});var Hme=v(()=>{Jgt()});var qme={};Ar(qme,{Any:()=>Ab,Argument:()=>Tht,Array:()=>WI,AsyncIterator:()=>KI,Awaited:()=>e0,BigInt:()=>XI,Boolean:()=>B3,Capitalize:()=>ogt,Composite:()=>gmt,Const:()=>Rmt,Constructor:()=>YI,ConstructorParameters:()=>wmt,Date:()=>J3,Enum:()=>Imt,Exclude:()=>s0,Extends:()=>i0,Extract:()=>o0,Function:()=>jh,Index:()=>kb,InstanceType:()=>Ymt,Instantiate:()=>$mt,Integer:()=>tgt,Intersect:()=>yc,Iterator:()=>$I,KeyOf:()=>t0,Literal:()=>cr,Lowercase:()=>cgt,Mapped:()=>rmt,Module:()=>wgt,Never:()=>Zn,Not:()=>Igt,Null:()=>Q3,Number:()=>Ld,Object:()=>Or,Omit:()=>Pb,Optional:()=>gc,Parameters:()=>Ogt,Partial:()=>a0,Pick:()=>Nb,Promise:()=>K3,Readonly:()=>Vu,ReadonlyOptional:()=>f9,Record:()=>h9,Recursive:()=>Ngt,Ref:()=>Bh,RegExp:()=>Mgt,Required:()=>c0,Rest:()=>Lgt,ReturnType:()=>Fgt,String:()=>Kf,Symbol:()=>e9,TemplateLiteral:()=>G3,Transform:()=>Vgt,Tuple:()=>Fd,Uint8Array:()=>i9,Uncapitalize:()=>lgt,Undefined:()=>n9,Union:()=>Sr,Unknown:()=>xb,Unsafe:()=>Kgt,Uppercase:()=>fgt,Void:()=>Zgt});var Xgt=v(()=>{gL();Ehe();yL();SL();Z3();vL();z3();Vhe();Khe();bL();Yhe();X3();Zhe();ame();xL();lme();zT();qh();dme();pme();hme();Ud();gme();RL();IL();zu();Ro();xme();ka();Ome();$3();VT();Pl();S9();Ig();Pme();_9();E9();Y3();KT();p9();OL();Nme();YT();Cme();T9();Mme();Dme();QI();t9();Og();Fme();Ib();s9();r9();oo();n0();jme();Hme()});var I,Qgt=v(()=>{Xgt();I=qme});var Ao=v(()=>{uhe();vg();Fh();yhe();uht();hL();hht();mL();Ut();gL();yL();Ehe();SL();Z3();vL();z3();Vhe();Khe();bL();Yhe();X3();Zhe();ame();xL();lme();zT();qh();dme();pme();hme();Ud();RL();gme();IL();zu();xme();Ro();ka();Ome();$3();VT();Pl();S9();Ig();Pme();_9();E9();Y3();KT();p9();OL();Nme();YT();Cme();T9();Mme();Dme();Bgt();Ggt();QI();t9();Og();Fme();Ib();s9();r9();oo();n0();jme();Hme();Qgt()});var f4n,Bme,zme=v(()=>{"use strict";Ao();f4n=I.Object({at:I.String({description:"ISO 8601 timestamp the spec review was signed. Drift sweep walks `git log --since=` against the unit spec to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from legacy state. Real reviews omit this field."}))},{additionalProperties:!1}),Bme=I.Object({at:I.String({description:"ISO 8601 timestamp the approval was signed. Drift sweep walks `git log --since=` against declared output paths to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from a legacy `status: completed` unit. Real approvals omit this field."}))},{additionalProperties:!1})});var $gt,He,Ia=v(()=>{"use strict";$gt=Re(G_(),1),He=new $gt.Ajv({allErrors:!0,strict:!1})});function Xc(e){switch(e){case"blocker":return 0;case"high":return 1;case"medium":return 2;case"low":return 3;default:return 2}}function eyt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return CL.includes(e)?Xc(e):Xc("high")}function u0(e){return typeof e!="string"||e.length===0?!0:Xc(e)<=eyt()}var v9,CL,tyt,nyt,p4n,h4n,m4n,g4n,R9,Gme,y4n,xli,ML,DL,ryt=v(()=>{"use strict";Ao();Ia();v9=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],CL=["blocker","high","medium","low"];tyt="^(?:FB-)?\\d+$",nyt=["iterations","closed_at"],p4n=I.Object({unit:I.Union([I.String(),I.Null()],{description:"Unit name this feedback targets (e.g. 'unit-03-business-context'). Null when the FB is intent-scope (no specific unit). Set at create time, immutable thereafter \u2014 to retarget, reject and create a new FB."}),invalidates:I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. Examples: ['user'] (user re-review needed), ['code-reviewer', 'spec'] (those two reviewers re-sign), [] (no invalidation \u2014 closure is informational only). Default is the role of the FB's filer (e.g. user-chat \u2192 ['user'], adversarial-review \u2192 [])."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the classification choice. Set by the classifier fix-hat via haiku_feedback_set_targets when the FB lands without targets (typical of user-authored FBs). Surfaced in the SPA so reviewers can see why the classifier routed the way it did."}))},{additionalProperties:!1}),h4n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),m4n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...v9]})),severity:I.Optional(I.String({enum:[...CL]})),author:I.Optional(I.String()),author_type:I.Optional(I.String({enum:["agent","human","system"]})),created_at:I.Optional(I.String()),source_ref:I.Optional(I.Union([I.String(),I.Null()])),attachment:I.Optional(I.String()),inline_anchor:I.Optional(I.Object({},{additionalProperties:!0})),targets:I.Optional(p4n),closure_reply:I.Optional(h4n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...nyt]}},additionalProperties:!0}),g4n=I.Object({selected_text:I.String({minLength:1,maxLength:1e3,description:"The literal text excerpt the feedback anchors to. The SPA greps the rendered artifact body for this string, so it must match the source verbatim (including whitespace inside the span)."}),paragraph:I.Integer({minimum:0,maximum:1e4,description:"Zero-based paragraph index in the rendered artifact body. Used as a tiebreaker when the same selected_text appears more than once."}),location:I.String({maxLength:500,description:"Human-readable label rendered on the feedback card (e.g. 'Unit: Threat model and security hardening'). Display only \u2014 not used for routing."}),comment_id:I.Optional(I.String({maxLength:200,description:"Optional DOM id the SPA can scroll-to. Defaulted by the engine when omitted."})),file_path:I.Optional(I.String({maxLength:1e3,description:"Repo-relative path to the artifact file (e.g. .haiku/intents//stages//units/.md). The SPA parses this to route to the right tab; agents can grep it for selected_text to land on the line."})),content_sha:I.Optional(I.String({maxLength:64,description:"Optional sha of the artifact's raw body at the time of anchoring. The SPA uses it to paint stale highlights when the body has drifted since."}))},{additionalProperties:!1}),R9=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit (or pass empty) to log an intent-scope finding."})),title:I.String({minLength:1,maxLength:120,description:"Short title for the feedback item (max 120 chars)."}),body:I.String({minLength:1,description:"Markdown body describing the finding."}),severity:I.String({enum:[...CL],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${CL.join(" | ")}. blocker = stops the gate, fix first; high = fix before delivery; medium = should fix; low = nice-to-have / nit. The fix-loop dispatches higher-severity findings first.`}),origin:I.Optional(I.String({enum:[...v9],description:`Source of the feedback. One of: ${v9.join(" | ")} (default: agent).`})),source_ref:I.Optional(I.String({description:"Optional reference \u2014 review-agent name, annotation ID, etc."})),author:I.Optional(I.String({description:"Who created it (default: agent)."})),inline_anchor:I.Optional(g4n),target_unit:I.Optional(I.Unsafe({type:["string","null"],description:"Unit this feedback targets. Null/omitted for intent-scope. Immutable post-create."})),target_invalidates:I.Optional(I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. Defaulted by handler from origin if omitted."})),state_file:I.Optional(I.String())},{additionalProperties:!1}),Gme=He.compile(R9),y4n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:tyt}),reason:I.String({minLength:1,description:"Why the FB is being rejected. Persisted in the closing iteration's reason field."}),state_file:I.Optional(I.String())},{additionalProperties:!1}),xli=He.compile(y4n),ML=nyt,DL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var l0,Vme,A9,Wme,w9,Kme,iyt=v(()=>{"use strict";Ao();Ia();l0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),session_id:I.Optional(I.String({description:"Override the session ID to await. When omitted, the live review session for this intent is resolved from the in-memory registry (haiku_run_next passes it explicitly on the inline path). No session id is persisted to the repo."})),gate_context:I.Optional(I.String({description:"What this gate advances on approval \u2014 intent_completion | intent_review | elaborate_to_execute | stage_gate. Passed by haiku_run_next on the inline path so post-decision routing needs no repo-persisted pointer. Defaults to stage_gate when omitted."})),next_stage:I.Optional(I.Unsafe({type:["string","null"],description:"Stage to advance to on approval (non-final stage gate), or null. Passed by haiku_run_next on the inline path."})),next_phase:I.Optional(I.Unsafe({type:["string","null"],description:"Phase to advance to on approval (spec / intent_review gates), or null. Passed by haiku_run_next on the inline path."})),auto_open:I.Optional(I.Boolean({description:"Hard override on the local browser launch. Defaults to true. When true, the tool launches the review URL in the default browser only if NO SPA tab is already attached for this session \u2014 the live-websocket check is authoritative, so passing true never causes a duplicate tab. Set to false on hosts where the local-browser launch is known to fail (headless containers, sandboxed runners) \u2014 the tool will still complete the await, the user just has to follow the URL themselves."})),review_url:I.Optional(I.String({description:"Review URL to open. Optional. Pass the review_url from the gate_review action \u2014 if omitted, no browser will be launched but the await will still complete when the user submits a decision via the SPA."})),state_file:I.Optional(I.String({description:"Internal \u2014 session state file path for telemetry."}))},{additionalProperties:!1}),Vme=He.compile(l0),A9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by ask_user_visual_question."}),url:I.Optional(I.String({description:"Question URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Wme=He.compile(A9),w9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by pick_design_direction."}),intent_slug:I.Optional(I.String({description:"Intent slug \u2014 used for stage-branch reconciliation after the user selects an archetype. Optional: handler also resolves it from the session record. Pass it explicitly to override."})),url:I.Optional(I.String({description:"Direction URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Kme=He.compile(w9)});var LL,d0,Yme,syt=v(()=>{"use strict";Ao();Ia();LL=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],d0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...LL],description:"Which admin op to run: force_stage_complete, set_intent_field, reset_drift, mutate_feedback, preview_cursor."}),reason:I.Optional(I.String({description:"Why you're running this admin op \u2014 the cause that led here (e.g. 'cursor stuck on stage `design` after a manual branch edit; force-completing to unblock'). Surfaced verbatim to the user at the top of the confirmation picker so they have the context to approve or cancel. Plain prose, not a status code."})),stage:I.Optional(I.String({description:"Target stage (force_stage_complete, mutate_feedback)."})),field:I.Optional(I.String({description:"intent.md FM key (set_intent_field)."})),value:I.Optional(I.Unsafe({type:["string","array","number","boolean","null","object"],description:"intent.md FM value (set_intent_field)."})),feedback_id:I.Optional(I.String({description:"Feedback ID to mutate (mutate_feedback). For batch mutations, use feedback_ids instead."})),feedback_ids:I.Optional(I.Array(I.String(),{description:"Batch form of feedback_id \u2014 array of FB IDs to mutate in a single call (mutate_feedback). The same `patch` is applied to every FB in the list. Use this instead of firing the picker confirmation per-FB."})),patch:I.Optional(I.Object({},{additionalProperties:!0,description:"FB FM keys to set (mutate_feedback). Example: { closed_at: '2026-...', closed_by: 'manual_review' }."})),fields:I.Optional(I.Object({},{additionalProperties:!0,description:"Batch form of field/value \u2014 object of intent.md FM keys to set in a single call (set_intent_field). Example: { mode: 'autopilot', archived: false }."})),close_open_feedback:I.Optional(I.Boolean({description:'force_stage_complete only. When true, also stamps `closed_at` + `closed_by: "force_complete"` on every open FB on the targeted stages (and on intent scope when the final stage is the target). Open FBs otherwise continue blocking the cursor even after every approval is signed.'})),unit:I.Optional(I.String({description:"Unit slug or filename stem (set_unit_iterations). Example: 'unit-03-my-thing' or 'unit-03'."})),iterations:I.Optional(I.Array(I.Object({hat:I.String({minLength:1}),result:I.String({enum:["advance","reject"]}),at:I.Optional(I.String())},{additionalProperties:!0}),{description:"Explicit iterations[] array to write (set_unit_iterations). Omit to auto-synthesize one `advance` entry per hat in the stage's `hats:` sequence \u2014 the typical recovery shape when a legacy unit has no iterations but its outputs landed."}))},{additionalProperties:!1}),Yme=He.compile(d0)});var f0,Zme,oyt=v(()=>{"use strict";Ao();Ia();f0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),stage:I.String({minLength:1,description:"Stage the discovery belongs to (e.g. `inception`, `design`)."}),template:I.String({minLength:1,description:"Discovery template name (matches the `discovery/.md` file under the studio's stage)."})},{additionalProperties:!1}),Zme=He.compile(f0)});var zh,Pg,k9,Jme,I9,Xme,x9,Qme,O9,$me,P9,ege,N9,tge,C9,nge,M9,rge,D9,ige,L9,sge,ayt=v(()=>{"use strict";Ao();Ia();zh=I.Optional(I.String()),Pg={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit for intent-scope feedback."})),feedback_id:I.Integer({minimum:1,maximum:999,description:"Feedback identifier \u2014 the numeric prefix of the FB on disk (e.g. for `008-output-discovery-\u2026md`, pass `8`). Just a number; no `FB-` prefix, no zero-padding, no string form. Range fits the on-disk `NNN-\u2026md` 3-digit padding (max 999, plenty of room). The handler does prefix-match lookup against `-*.md` \u2014 the agent never needs to know the slug part. Pre-2026-05-07 intents that used 2-digit padding (`08-\u2026md`) still resolve correctly; the lookup parses leading digits regardless of width."})},k9=I.Object({...Pg,state_file:zh},{additionalProperties:!1}),Jme=He.compile(k9),I9=I.Object({...Pg,to_stage:I.String({description:"Target stage. Empty string for intent-scope. Same as `stage` to confirm placement; different to relocate."}),state_file:zh},{additionalProperties:!1}),Xme=He.compile(I9),x9=I.Object({...Pg,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:zh},{additionalProperties:!1}),Qme=He.compile(x9),O9=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit to list across all stages."})),closed:I.Optional(I.Boolean({description:"If true, list only closed feedback (closed_at != null). If false, list only open feedback (closed_at == null). Omit to list both."})),state_file:zh},{additionalProperties:!1}),$me=He.compile(O9),P9=I.Object({...Pg,state_file:zh},{additionalProperties:!1}),ege=He.compile(P9),N9=I.Object({...Pg,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:zh},{additionalProperties:!1}),tge=He.compile(N9),C9=I.Object({...Pg,target_unit:I.Unsafe({type:["string","null"],description:"Unit slug this FB targets (e.g. 'unit-03-business-context'), or null for intent-scope. Set once; subsequent calls are rejected."}),target_invalidates:I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. e.g. ['user'] for user-recoverable findings, ['code-reviewer', 'spec'] for cross-role invalidation. Empty array is allowed (informational closure with no rerun)."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the classification choice. Stored on `targets.reasoning` and surfaced in the SPA next to the target so reviewers can see WHY the classifier picked this target_unit / target_invalidates combo. Encouraged for non-obvious classifications (e.g. cross-cutting findings routed to intent-scope)."})),state_file:zh},{additionalProperties:!1}),nge=He.compile(C9),M9=I.Object({...Pg,severity:I.String({enum:["blocker","high","medium","low"],description:"Finding urgency. blocker = stops the gate, fix first; high = fix before delivery; medium = should fix; low = nice-to-have / nit. Set once; subsequent calls on an already-classified FB are rejected."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the severity choice. Surfaced in the SPA next to the badge so reviewers see WHY the classifier ranked it this way. Encouraged for non-obvious calls (e.g. a low-looking finding bumped to blocker because it gates a downstream unit)."})),state_file:zh},{additionalProperties:!1}),rge=He.compile(M9),D9=I.Object({...Pg,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next fix-hat. State what you did about the finding, what you concluded, and what the next hat needs to know to pick up cleanly. Recorded on this iteration and embedded in the next fix-hat's dispatch. Distinct from `reply` (the requester-facing closure note); this is the inter-hat baton."}),reply:I.Optional(I.String({description:"REQUIRED when this advance closes the feedback (terminal hat in fix_hats). A short plain-language explanation of what was changed, written to the requester. Stored on the FB frontmatter as `closure_reply` and surfaced in the SPA review timeline. Mid-chain advances may omit it."})),resolution:I.Optional(I.String({enum:["non_actionable"],description:"Set to `non_actionable` to TERMINAL-CLOSE this finding immediately from ANY hat, short-circuiting the rest of the fix_hats chain. Use ONLY when the finding is valid but has no code fix \u2014 a question you can answer in `message`/`reply`, an out-of-scope/process note, or an immutable/already-superseded target. The FB closes as `non_actionable` (distinct from a fixed-closure and from `haiku_feedback_reject`'s invalid-rejection) and is never re-dispatched. Omit for a normal advance."})),state_file:zh},{additionalProperties:!1}),ige=He.compile(D9),L9=I.Object({...Pg,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the fix-hat that gets re-run. Explain why the current hat's work was rejected AND what must change to pass. Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:zh},{additionalProperties:!1}),sge=He.compile(L9)});var U9,UL,F9,oge,j9,age,H9,cge,cyt=v(()=>{"use strict";Ao();Ia();U9=I.Optional(I.String()),UL=I.Object({title:I.String({description:'Short human-readable title (3\u20138 words, max 80 chars, single line, no trailing period). Must be a deliberate summary \u2014 NOT the first 80 chars of the description. Good: "Add archivable intents". Bad: "Add archivable intents to H\xB7AI\xB7K\xB7U. Users need a way to soft-hide\u2026".'}),description:I.String({description:"Full description of what the intent is about (2\u20135 sentences covering scope, motivation, and constraints). Stored verbatim in the intent body."}),studio_candidates:I.Array(I.String(),{description:"REQUIRED. The 2\u20134 studios (canonical name, slug, or alias) that best fit the description \u2014 pre-narrows the studio picker. Fetch the options from `haiku_studio_list` (name + description per studio) and pick the closest matches. At least one must resolve; the picker still shows the rest behind a 'Show all studios\u2026' expansion. Omitting it is rejected with instructions to fetch the list and retry."}),slug:I.Optional(I.String({description:"URL-friendly slug for the intent (auto-generated from title if not provided)"})),context:I.Optional(I.String({description:"Conversation context summary \u2014 highlights from the conversation that led to this intent"})),state_file:U9},{additionalProperties:!1}),F9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:U9},{additionalProperties:!1}),oge=He.compile(F9),j9=I.Object({include_archived:I.Optional(I.Boolean({description:"When true, include archived intents in the result and add an 'archived' field to each response object. Defaults to false."})),state_file:U9},{additionalProperties:!1}),age=He.compile(j9),H9=I.Object({intent:I.String({minLength:1}),field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must match the field's declared type in INTENT_FRONTMATTER_SCHEMA. Mismatches return `intent_field_type_mismatch`."}),state_file:U9},{additionalProperties:!1}),cge=He.compile(H9)});var wo,uyt,q9,uge,B9,lge,z9,dge,G9,fge,FL,jL,V9,pge,W9,hge,K9,mge,Y9,gge,Z9,yge,J9,Sge,X9,bge,Q9,Ege,$9,_ge,eY,Tge,tY,vge,p0,Rge,nY,Age,rY,wge,iY,kge,lyt=v(()=>{"use strict";Ao();Ia();wo=I.Optional(I.String()),uyt=I.Object({state_file:wo},{additionalProperties:!1}),q9=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String({description:"Stage name. Defaults to the intent's active_stage when omitted."})),rationale:I.String({minLength:1,description:"Rationale (\u226510 chars in handler check) explaining why this divergence is intentional."}),state_file:wo},{additionalProperties:!1}),uge=He.compile(q9),B9=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),no_decisions:I.Optional(I.Boolean()),decision:I.Optional(I.String()),options:I.Optional(I.Array(I.String())),choice:I.Optional(I.String()),source:I.Optional(I.String({enum:["user","autonomous-acknowledged"],description:"Who made the call. user = user picked from agent-presented options. autonomous-acknowledged = agent chose and surfaced for veto-style approval."})),rationale:I.Optional(I.String()),state_file:wo},{additionalProperties:!1}),lge=He.compile(B9),z9=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),dge=He.compile(z9),G9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),fge=He.compile(G9),FL=uyt,jL=He.compile(uyt),V9=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),pge=He.compile(V9),W9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),hge=He.compile(W9),K9=I.Object({field:I.String({minLength:1,description:"Dot-separated path (e.g. 'studio', 'providers.ticketing.type', 'providers.spec.config.space')"}),state_file:wo},{additionalProperties:!1}),mge=He.compile(K9),Y9=I.Object({field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must validate against the field's declared shape in settings.schema.json. Pass null to delete."}),state_file:wo},{additionalProperties:!1}),gge=He.compile(Y9),Z9=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),yge=He.compile(Z9),J9=I.Object({task:I.String({minLength:1,description:"The work to run through the stage's hat loop."}),studio:I.Optional(I.String({description:"Studio slug (e.g. `software`). Defaults to `software` when omitted and present."})),stage:I.Optional(I.String({description:"Stage within the studio (e.g. `development`). Defaults to the studio's build-class execution stage when omitted."})),state_file:wo},{additionalProperties:!1}),Sge=He.compile(J9),X9=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),bge=He.compile(X9),Q9=I.Object({intent:I.Optional(I.String({description:"Optional intent slug. Defaults to the sole active intent."})),stage:I.Optional(I.String({description:"Optional stage name. Defaults to the intent's active_stage."})),gate_kind:I.Optional(I.String({enum:["spec","approval"],description:"When set, opens the review pane as a workflow-bound gate session (vs. ad-hoc). 'spec' = pre-execute spec review (stamps reviews.user). 'approval' = post-execute output approval (stamps approvals.user)."})),units:I.Optional(I.Array(I.String(),{description:"Unit identifiers the user is gating. Surfaced by the cursor's user_gate action; ignored when gate_kind is unset."})),state_file:wo},{additionalProperties:!1}),Ege=He.compile(Q9),$9=I.Object({action:I.Optional(I.String({enum:["list","add","review","promote"],description:"Defaults to `list`."})),description:I.Optional(I.String({description:"Description for the new backlog item (used with action=add)."})),state_file:wo},{additionalProperties:!1}),_ge=He.compile($9),eY=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),Tge=He.compile(eY),tY=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),vge=He.compile(tY),p0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name to reset (e.g. 'product')"})},{additionalProperties:!1}),Rge=He.compile(p0),nY=I.Object({intent:I.Optional(I.String({description:"Specific intent slug to scan in cwd (skips multi-branch mode)"})),apply:I.Optional(I.Boolean()),skip_branches:I.Optional(I.Boolean()),state_file:wo},{additionalProperties:!1}),Age=He.compile(nY),rY=I.Object({intent:I.String({minLength:1,description:"Intent slug to scope the view session. The SPA will only serve files under this intent's directory."}),stage:I.Optional(I.String({description:"Optional stage name to narrow the artifact list. Defaults to the intent's active_stage when omitted."})),artifact:I.Optional(I.String({description:"Optional intent-relative path to deep-link the SPA to a single artifact file (e.g. `stages/design/artifacts/wireframe.svg`). When omitted the SPA lists every artifact in scope."})),mode:I.Optional(I.String({enum:["auto","viewer","boot"],description:"Mode preference. `auto` (default) tries boot first and falls back to viewer. `boot` forces a spawned dev server and hard-fails when no `command` is supplied and no fast-path is detected. `viewer` forces the SPA artifact-browser route."})),command:I.Optional(I.Array(I.String({minLength:1}),{minItems:1,description:'Single-process boot \u2014 explicit command argv (e.g. `["uvicorn", "app:main"]`, `["bin/dev"]`, `["go", "run", "./cmd/server"]`). Engine spawns with `PORT` + `HOST` env vars set so the dev server binds where the supervisor expects. Use this for one-process apps. For monorepos / stacks (api + frontend + db + worker), use `processes` instead.'})),cwd:I.Optional(I.String({description:"Working directory for `command`, relative to the intent dir. Defaults to the intent dir when omitted. Ignored when `processes` is supplied (each process declares its own cwd)."})),processes:I.Optional(I.Array(I.Object({name:I.String({minLength:1,pattern:"^[a-zA-Z][a-zA-Z0-9_-]*$",description:"Identifier for this process. Used to build service-discovery env vars (`_PORT`, `_URL`) injected into dependents, and as the `primary` selector. Lowercase letters / digits / `-` / `_`; must start with a letter."}),command:I.Array(I.String({minLength:1}),{minItems:1,description:'Argv for this process (e.g. `["npm", "run", "api"]`, `["redis-server"]`, `["docker", "compose", "up", "postgres"]`).'}),cwd:I.Optional(I.String({description:'Working directory for this process, relative to the intent dir. Defaults to the intent dir when omitted (e.g. `"backend"` for `packages/backend/` in a monorepo).'})),port_env:I.Optional(I.String({minLength:1,description:'Env-var name the engine assigns the allocated ephemeral port to. Defaults to `PORT`. Override when the process expects a different name (e.g. `"RAILS_PORT"`, `"API_PORT"`).'})),ready_url:I.Optional(I.String({description:'Optional HTTP URL the supervisor polls to confirm this process is ready before starting dependents (e.g. `"http://127.0.0.1:{port}/healthz"`). Use `{port}` as the placeholder for the allocated port. Falls back to TCP port-bind detection when omitted.'})),depends_on:I.Optional(I.Array(I.String({minLength:1}),{description:"Names of processes that must be ready before this one starts. The supervisor topologically sorts the graph and starts processes in dependency order. Each dependency's `_PORT` and `_URL` env vars are injected into this process's env so the runtime can do service discovery (e.g. an API depending on `db` sees `DB_PORT` + `DB_URL`)."})),no_port:I.Optional(I.Boolean({description:"Set true for processes that don't listen on a TCP port (queue workers, background daemons, schedulers). The supervisor still tracks lifecycle but skips port allocation and readiness checking."}))},{additionalProperties:!1}),{minItems:1,description:"Process group \u2014 boot multiple coordinated processes (api + frontend + db + worker etc.). The supervisor allocates an ephemeral port per process (unless `no_port`), starts them in dependency order, waits for each to be ready, and exposes `_PORT` + `_URL` env vars to every dependent. Killing the session kills the whole group. Mutually exclusive with `command`."})),primary:I.Optional(I.String({minLength:1,description:"Name of the process whose URL is returned as the top-level `url` field \u2014 i.e., the one Playwright drives. Required when `processes` has more than one port-bound entry. Ignored for single-process boots."})),state_file:wo},{additionalProperties:!1}),wge=He.compile(rY),iY=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),kge=He.compile(iY)});var h0,Ige,dyt=v(()=>{"use strict";Ao();Ia();h0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),kind:I.String({enum:["review","approval"],description:"Which witness to stamp: `review` (PRE-execute spec audit) or `approval` (POST-execute work audit). Matches the dispatch phase your subagent ran under."}),role:I.String({minLength:1,description:"Your review role (e.g. `continuity`, `cross-stage-consistency`, `completeness`, `spec`, or a studio review-agent name). Stamps `reviews.` / `approvals.`."}),stage:I.String({minLength:1,description:"Stage the review/approval belongs to."})},{additionalProperties:!1}),Ige=He.compile(h0)});var m0,xge,g0,Oge,y0,Pge,S0,Nge,fyt=v(()=>{"use strict";Ao();Ia();m0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Studio names to present in the picker. Empty/omitted = every available studio. Single element = auto-select without prompting."}))},{additionalProperties:!1}),xge=He.compile(m0),g0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Mode names to present in the picker (continuous, discrete, autopilot, quick). Empty/omitted = every mode valid for the intent's current state. Single element = auto-select without prompting."}))},{additionalProperties:!1}),Oge=He.compile(g0),y0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Stage name to auto-select (zero or one element \u2014 quick mode is single-stage by definition)."}))},{additionalProperties:!1}),Pge=He.compile(y0),S0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),stage:I.String({minLength:1,description:"Name of the optional stage to drop. Must be the intent's active stage and not yet started."})},{additionalProperties:!1}),Nge=He.compile(S0)});var pyt,b0,Cge,E0,Mge,_0,Dge,sY,Lge,oY,Uge,T0,Fge,hyt=v(()=>{"use strict";Ao();Ia();pyt=I.Optional(I.String()),b0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),body:I.String({minLength:1,description:"Markdown body of the captured conversation. Should summarize what the agent proposed, what the user clarified, and the final agreement. Anchored on specific intent content."})},{additionalProperties:!1}),Cge=He.compile(b0),E0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the `elaborate_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded as the seal's rationale. Stored on FM as `verified_notes`."}))},{additionalProperties:!1}),Mge=He.compile(E0),_0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the `decompose_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded as the seal's rationale. Stored on FM as `decompose_verified_notes`."}))},{additionalProperties:!1}),Dge=He.compile(_0),sY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:pyt},{additionalProperties:!1}),Lge=He.compile(sY),oY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must match the field's declared type."}),state_file:pyt},{additionalProperties:!1}),Uge=He.compile(oY),T0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the pre-intent `elaborate_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded on intent FM as `verified_notes`."}))},{additionalProperties:!1}),Fge=He.compile(T0)});var aY,jge,cY,Hge,uY,qge,lY,Bge,dY,zge,fY,Gge,pY,Vge,myt=v(()=>{"use strict";Ao();Ia();aY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),hat:I.String({minLength:1,description:"Hat name"}),fix:I.Optional(I.Boolean({description:"When true, resolve the fix-loop-scoped mandate (stages//fix-hats/.md, falling back to the production hats/.md when absent). Use ONLY from fix-loop dispatches; omit for production hat work."}))},{additionalProperties:!1}),jge=He.compile(aY),cY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),Hge=He.compile(cY),uY=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),qge=He.compile(uY),lY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.Optional(I.String({minLength:1,description:"Stage name for a stage-scope review/approval agent. OMIT for an intent-completion review agent (resolved from the studio's intent-review-agents/)."})),role:I.String({minLength:1,description:"Review-agent role name"})},{additionalProperties:!1}),Bge=He.compile(lY),dY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),template:I.String({minLength:1,description:"Discovery template name (no .md extension)"})},{additionalProperties:!1}),zge=He.compile(dY),fY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),phase:I.String({minLength:1,description:"Phase name (e.g. ELABORATION). Case-insensitive \u2014 resolved as phases/.md."})},{additionalProperties:!1}),Gge=He.compile(fY),pY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),name:I.String({minLength:1,description:"Output template name (no .md extension)"})},{additionalProperties:!1}),Vge=He.compile(pY)});var hY,Cb,mY,Wge,gY,Kge,yY,Yge,Zge,SY,Jge,bY,Xge,EY,Qge,_Y,$ge,TY,eye,vY,tye,v0,nye,gyt=v(()=>{"use strict";Ao();Ia();hY={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),unit:I.String({minLength:1,description:"Unit name (no .md extension). Convention: `unit-NNN-slug` (3-digit zero-pad, max 999). Legacy 2-digit names (`unit-01-foo`) still resolve via numeric-prefix matching \u2014 pass either width and the engine matches by `(number, slug)` parts."})},Cb=I.Optional(I.String()),mY=I.Object({...hY,field:I.String({minLength:1,description:"Frontmatter field name. Must be agent-authorable per UNIT_FRONTMATTER_SCHEMA."}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"The field's new value. MUST match the field's declared type in UNIT_FRONTMATTER_SCHEMA \u2014 pass an array for array-typed fields, a string for string-typed, etc. Native types only; stringified JSON is rejected."}),state_file:Cb},{additionalProperties:!1}),Wge=He.compile(mY),gY=I.Object({...hY,field:I.String({minLength:1,description:"Frontmatter field to read. Agent-authorable/corrective fields only (quality_gates, outputs, inputs, depends_on, model, closes, title, description). FSM-driven fields (iterations, reviews, approvals, started_at) return `unit_field_engine_only`."})},{additionalProperties:!1}),Kge=He.compile(gY),yY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:Cb},{additionalProperties:!1}),Yge=He.compile(yY),Zge=I.Optional(I.String({description:"Stage the unit lives on. OPTIONAL \u2014 when omitted, the handler resolves it from on-disk layout. Pass it through from the cursor's dispatched action to make this call race-safe against concurrent run_next calls that may switch the working tree."})),SY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Zge,state_file:Cb},{additionalProperties:!1}),Jge=He.compile(SY),bY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Zge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next hat. State what you did, what you concluded, and what the next hat needs to know to pick up cleanly (decisions made, open questions, where you left off). Recorded on this iteration and embedded in the next hat's dispatch. Not a status line \u2014 write it for the hat that reads it next."}),state_file:Cb},{additionalProperties:!1}),Xge=He.compile(bY),EY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Zge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the hat that gets re-run. Explain why the current hat's output was rejected AND what must change to pass (e.g. 'touch targets <44px on mobile \u2014 bump to 44px min and re-check the nav row'). Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:Cb},{additionalProperties:!1}),Qge=He.compile(EY),_Y=I.Object({...hY,state_file:Cb},{additionalProperties:!1}),$ge=He.compile(_Y),TY=I.Object({...hY,state_file:Cb},{additionalProperties:!1}),eye=He.compile(TY),vY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),unit:I.String({minLength:1,description:"Unit name without `.md` extension, e.g. `unit-001-foo`. Convention: `unit-NNN-slug` with 3-digit zero-padded number (max 999). Legacy 2-digit names (`unit-01-foo`) still resolve via numeric-prefix matching."}),body:I.String({description:"Full markdown body of the unit. Must be substantive (no placeholders like TBD, TODO, '...')."}),frontmatter:I.Optional(I.Object({},{additionalProperties:!0})),state_file:Cb},{additionalProperties:!1}),tye=He.compile(vY),v0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage the unit lives in"}),unit:I.String({minLength:1,description:"Unit to reset (e.g. 'unit-06-pii-masking-granularity')"})},{additionalProperties:!1}),nye=He.compile(v0)});var rye,S4n,RY,b4n,HL,R0,E4n,XT,QT,AY,iye=v(()=>{"use strict";Ao();Ia();zme();rye=["plugin_version","started_at","approvals","sealed_at","mode","stages","archived","archived_at","draft_pr_url","draft_pr_status","draft_pr_ready_at","verified_at","verified_notes"],S4n=["draft","ready","failed"],RY=["continuous","discrete","autopilot","discrete-hybrid","quick"],b4n=I.Record(I.String(),I.Union([Bme,I.Null()])),HL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...RY]})),studio:I.Optional(I.String()),studio_candidates:I.Optional(I.Array(I.String())),follows:I.Optional(I.String()),clarifications:I.Optional(I.Record(I.String(),I.Unknown())),draft_pr_url:I.Optional(I.String()),draft_pr_status:I.Optional(I.String({enum:[...S4n]})),draft_pr_ready_at:I.Optional(I.String()),verified_at:I.Optional(I.String()),verified_notes:I.Optional(I.String()),external_refs:I.Optional(I.Record(I.String(),I.String()))},{propertyNames:{not:{enum:[...rye]}},additionalProperties:!0}),R0=He.compile(HL),E4n=new Set(rye),XT=Object.keys(HL.properties??{}).filter(e=>!E4n.has(e)),QT=rye,AY=["studio","plugin_version","follows"]});var _4n,yyt=v(()=>{"use strict";Ao();_4n=I.Object({hat:I.String({minLength:1,description:"Hat name (e.g. `researcher`, `distiller`, `verifier`, `feedback-assessor`). Must match a hat declared in the studio's stage hat sequence (or `fix_hats:` for feedback iterations)."}),started_at:I.String({description:"ISO 8601 timestamp when this hat dispatch began. Set when the iteration is appended."}),completed_at:I.Union([I.String(),I.Null()],{description:"ISO 8601 timestamp when this hat's terminal advance/reject landed. Null while the hat is in flight."}),result:I.Union([I.Literal("advance"),I.Literal("reject"),I.Null()],{description:"Outcome of this hat. `advance` = move to next hat (or close on terminal hat). `reject` = loop back to previous hat. Null while in flight."}),reason:I.Optional(I.Union([I.String(),I.Null()],{description:"Optional reason for the result. Required on `reject` (caller must explain what went wrong) and optional on `advance`."}))},{additionalProperties:!1})});var sye,oye,Syt=v(()=>{"use strict";Ao();sye=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),oye=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var wY,aye,byt=v(()=>{"use strict";Ao();wY=I.Object({stage:I.Optional(I.String()),status:I.Optional(I.String({enum:["pending","active","completed","blocked"]})),phase:I.Optional(I.String({enum:["","elaborate","execute","review","gate"]})),started_at:I.Optional(I.Union([I.String(),I.Null()])),completed_at:I.Optional(I.Union([I.String(),I.Null()])),gate_entered_at:I.Optional(I.Union([I.String(),I.Null()])),gate_outcome:I.Optional(I.Union([I.String(),I.Null()])),visits:I.Optional(I.Integer({minimum:0})),iterations:I.Optional(I.Array(I.Unknown())),elaboration_turns:I.Optional(I.Integer({minimum:0})),decision_log:I.Optional(I.Array(I.Unknown()))},{additionalProperties:!0}),aye=Object.keys(wY.properties??{})});var _yt,Eyt,$T,Ng,Mb,Jf,Tyt=v(()=>{"use strict";Ao();Ia();_yt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],Eyt="^[^\\s:,]+(?:/[^\\s:,]+)*$",$T=I.Object({title:I.Optional(I.String({minLength:1,description:"Unit title \u2014 non-empty string. Defaults to first H1 in the body, or to the unit name."})),description:I.Optional(I.String({description:"Optional unit description."})),depends_on:I.Optional(I.Array(I.String(),{description:"Names of sibling units in the SAME stage that must complete before this one. Each entry must resolve to an actual sibling. No self-reference. No cycles. (Cross-sibling and cycle checks are runtime \u2014 they need the full stage DAG, not expressible in this schema.)"})),inputs:I.Optional(I.Array(I.String({pattern:Eyt}),{description:"Cross-stage inputs this unit reads \u2014 paths to artifacts produced by prior stages. Each entry MUST be a file/dir path (no whitespace, no colons or commas, no prose)."})),outputs:I.Optional(I.Array(I.String({pattern:Eyt}),{description:"Artifacts this unit produces. Each entry MUST be a real file path (no whitespace, no colons or commas, no prose) \u2014 the gate verifies the path exists on disk at unit completion. Use `inputs:` if you mean to declare what the unit READS; use the body's `## Completion Criteria` section if you mean to declare prose-style success conditions."})),quality_gates:I.Optional(I.Array(I.Object({name:I.String(),command:I.String(),dir:I.Optional(I.String())}),{description:"Build-class only: list of `{name, command, dir?}` executable gate objects. Run at terminal advance_hat time; non-zero exit blocks. Prose strings are silently skipped \u2014 they give no enforcement."})),model:I.Optional(I.String({enum:["haiku","sonnet","opus"],description:"Subagent tier for this unit's hats. `haiku` = mechanical, `sonnet` = standard (default), `opus` = deep reasoning. Cascade: unit > hat > stage > studio."})),closes:I.Optional(I.Array(I.String(),{description:"On revisit iterations, list of FB IDs this unit addresses (e.g. `[FB-01, FB-03]`). Informational \u2014 feedback closure happens via the FB's own iterations + targets.invalidates, not via this field."})),applicable_skills:I.Optional(I.Array(I.String(),{description:"Skill slugs (slash-command names without the leading `/`) identified as relevant for this unit during elaboration. The elaborator populates this from the installed skill registry. Hat subagent prompts surface these automatically so subagents know which skills to reach for."})),external_refs:I.Optional(I.Record(I.String(),I.String(),{description:"External-system references for this unit (e.g. `ticket: PROJ-123`, `design_ref: figma://...`). Populated by the agent when a workflow or source provider is active. Engine doesn't interpret values \u2014 they're the durable handle between H\xB7AI\xB7K\xB7U and the external system. (2026-05-19, provider-injection wave.)"}))},{propertyNames:{not:{enum:[..._yt]}},additionalProperties:!0}),Ng=He.compile($T),Mb=Object.keys($T.properties??{}),Jf=_yt});var ji=v(()=>{"use strict";zme();ryt();iyt();syt();oyt();ayt();cyt();lyt();dyt();fyt();hyt();myt();gyt();iye();yyt();Syt();byt();Tyt()});var Ayt={};Ar(Ayt,{DIR_INVENTORY_SKIP:()=>xY,bodyMatchesStoredHash:()=>qL,bodySha256:()=>Cg,buildApprovalRecord:()=>Bd,buildOutputWitnesses:()=>R4n,buildReviewRecord:()=>Cl,fileSha256:()=>A0,isTextBodyExtension:()=>IY,normalizeInputPath:()=>BL,outputSha256:()=>Db,resolveInputWitnesses:()=>OY});import{createHash as kY}from"node:crypto";import{existsSync as ev,readdirSync as T4n,readFileSync as cye,statSync as vyt}from"node:fs";import{join as tv}from"node:path";function Cg(e){if(!ev(e))return"";let t=cye(e,"utf8"),n=t;try{n=(0,uye.default)(t).content}catch{n=t}return n.endsWith(` +`)}function UI(e){let t=`${e.replace(/\/$/,"")}/intent.md`;if(!nL(t))return"";try{let{data:n}=re(v3(t,"utf8"));return typeof n.mode=="string"?n.mode:""}catch{return""}}function FI(e,t="subagents",n={}){return`Spawn each \`\` block below in a single message (parallel \`Task\` calls). When a ${t.replace(/s$/,"")} returns, do what its final message tells you \u2014 spawn the relayed \`\` block it carries, call \`haiku_run_next\`, or just acknowledge.`}function Lf(e,t){let{slug:n,stage:r}=t,i=r?`\`${r}\``:"the active stage",o=[{signal:"conversation",line:`**Capture (or extend) the conversation.** If alignment on substance for ${i} is already reached, call \`haiku_stage_elaboration_record\` now \u2014 the cursor's next tick fires the substance verifier without re-prompting for conversation.`},{signal:"verify_conversation",line:"**Dispatch the elaborate-substance verifier** if a conversation artifact exists but is unverified. Spawning the verifier in this same tick lets the next `haiku_run_next` advance past `elaborate_review` immediately."},{signal:"discovery",line:"**Fan out missing discovery subagents** for any `discovery/*.md` templates whose `location:` artifacts aren't on disk yet. Each subagent runs in its own isolation worktree and writes one file; the cursor's next tick skips `discovery_required` for every artifact already present."},{signal:"decompose",line:"**Draft units as scope crystallizes** via `haiku_unit_write`. Units written during the elaborate loop are first-class \u2014 the decompose-coverage verifier catches missing units and drift either way, so there's no penalty for landing them early."},{signal:"verify_decompose",line:`**Dispatch the decompose-coverage verifier** if units exist for ${i} but \`decompose_verified_at\` is missing on the elaboration artifact. Stacking it onto this tick lets the next \`haiku_run_next\` advance past \`decompose_review\` immediately.`}].filter(a=>a.signal!==e);return o.length===0?"":Zft.renderString(Tzn,{slug:n,concurrentLines:o.map(a=>a.line)})}var Yft,Zft,_zn,Tzn,ts=v(()=>{"use strict";gt();Yft=Re(Kt(),1);Ci();_f();fb();Ge();Kn();vl();ht();Hft();Uh();Zft=new _e({autoEscape:!1,useWith:!0}),_zn=ie("@canon:","_shared/inline-subagent-context.eta.md"),Tzn=ie("@canon:","_shared/concurrent-elaborate-loop.eta.md")});function w3(e,t,n){let r=e.ensureWorktree(),i=e.mandateRef(t),s=e.priorHandoffBlock(),o=e.resolveModel(t),a=e.bolt(),c=vzn.renderString(e.template(),e.templateVars({hat:t,terminal:n,worktree:r,mandateRef:i,priorRejectBlock:s}));return Ti({unit:e.dispatchId,hat:t,bolt:a,intent:e.slug,stage:e.emitStage,agentType:"general-purpose",model:o,promptBody:c,heading:e.heading(t)})}var vzn,Bpe=v(()=>{"use strict";gt();ts();vzn=new _e({autoEscape:!1,useWith:!0})});import{existsSync as Qft,readdirSync as $ft,readFileSync as ept}from"node:fs";import{join as jI}from"node:path";function Rzn(){return zpe===null&&(zpe=ie("@canon:feedback/start_feedback_hat","subagent.eta.md")),zpe}function Azn(e){if(!Go.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?jI(ar(t,n),"feedback"):jI(pe(t),"feedback");try{let p=Qft(f)?$ft(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=ept(jI(f,p[0]),"utf8");o=(0,Gpe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:JK(r)?.[i],c=n?$i(r,n):void 0,u=Nd(r),l=db({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}function HI(e){let{slug:t,studio:n,feedbackId:r,stage:i,hat:s,terminal:o}=e,a=Number.parseInt(r.replace(/^FB-/i,""),10)||0,c=i||"intent",u=null,l=()=>{if(u)return u;let f=i?jI(ar(t,i),"feedback"):jI(pe(t),"feedback"),p=r.replace(/^FB-/i,""),h="",m=1;if(Qft(f)){let g=$ft(f).find(y=>y.startsWith(p)&&y.endsWith(".md"));if(g){let y=jI(f,g);h=CI(y);try{let b=(0,Gpe.default)(ept(y,"utf8")).data,E=(Array.isArray(b.iterations)?b.iterations:[]).reduce((_,T)=>{let R=T?.bolt;return typeof R=="number"&&R>_?R:_},0);m=E>0?E:1}catch{}}}return u={priorRejectBlock:h,bolt:m},u},d={slug:t,emitStage:i||void 0,dispatchId:`fix-${r}`,ensureWorktree:()=>Ipe(t,c,r)??"",mandateRef:f=>kr({resolveBody:()=>i?EI(n,i,f,!0):nft(n,f),toolName:"haiku_read_hat",toolArgs:i?{studio:n,stage:i,hat:f,fix:!0}:{studio:n,hat:f,fix:!0},intent:t,stage:i||void 0,kind:"mandate",name:f}),priorHandoffBlock:()=>l().priorRejectBlock,resolveModel:f=>Azn({slug:t,studio:n,stage:i,hat:f,feedbackId:r})?.model,bolt:()=>l().bolt,template:()=>Rzn(),templateVars:({hat:f,terminal:p,worktree:h,mandateRef:m,priorRejectBlock:g})=>({slug:t,hat:f,stage:i,feedbackId:r,fbInt:a,terminal:p,worktree:h,mandateRef:m,priorRejectBlock:g}),heading:f=>`### Subagent \u2014 \`${r}\` (stage \`${i||"(intent)"}\`, hat \`${f}\`)`};return w3(d,s,o)}var Gpe,zpe,Vpe=v(()=>{"use strict";Gpe=Re(Kt(),1);Ci();yr();fb();Ge();Kn();Bpe();ts();ht();zpe=null});function Wpe(e,t,n){let r=e.indexOf(t);if(n?.assessorToFirst&&n.assessorHat&&t===n.assessorHat)return{targetHat:e[0]??t,callingIdx:r,via:"assessor-to-first"};let i=n?.roleOf;if(n?.namedTarget){let o=e.indexOf(n.namedTarget);if(o>=0&&o=0;o--)if(i(e[o])==="build")return{targetHat:e[o],callingIdx:r,via:"nearest-build"}}return{targetHat:r>0?e[r-1]:e[0]??t,callingIdx:r,via:"step-back-one"}}var tpt=v(()=>{"use strict"});var ipt={};Ar(ipt,{computeStageDependents:()=>Zpe,filterInputsByPlanStages:()=>Ype,resolveIntentStages:()=>wn,resolveStageFixHats:()=>bg,resolveStageHats:()=>Es,resolveStageMetadata:()=>Qpe,resolveStageOptional:()=>rL,resolveStageReview:()=>Xpe,resolveStudioFilePath:()=>Ff,resolveStudioFixHats:()=>jf,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>Jpe});import{existsSync as Uf,readdirSync as wzn,readFileSync as Kpe}from"node:fs";import{join as Yr}from"node:path";function LT(e){if(!Uf(e))return{};let t=Kpe(e,"utf8"),{data:n}=re(t);return n}function Ff(e){for(let t of Mu()){let n=Yr(t,e);if(Uf(n))return n}return null}function wn(e,t){let n=Fs(t),r=Array.isArray(e.stages)?e.stages.filter(i=>typeof i=="string"):[];if(r.length>0){let i=new Set(n);return r.filter(s=>i.has(s))}return n}function Ype(e,t){let n=t instanceof Set?t:new Set(t);return e.filter(r=>n.has(r.stage))}function Fs(e){let t=si(e);if(t)return t.stages;let n=nn();for(let r of[Yr(process.cwd(),".haiku","studios"),Yr(n,"studios")]){let i=Yr(r,e,"STUDIO.md");if(Uf(i))return LT(i).stages||[]}return[]}function Es(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o))return LT(o).hats||[]}return[]}function rpt(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o))return LT(o)}return{}}function rL(e,t){return rpt(e,t).optional===!0}function Zpe(e,t,n){let r=n.indexOf(t);if(r<0)return[];let i=[];for(let s of n.slice(r+1)){let o=rpt(e,s),a=Array.isArray(o.inputs)?o.inputs.filter(u=>u.stage===t).map(u=>u.discovery??u.output??"?"):[],c=Array.isArray(o["review-agents-include"])?o["review-agents-include"].filter(u=>u.stage===t).flatMap(u=>Array.isArray(u.agents)?u.agents:[]):[];(a.length>0||c.length>0)&&i.push({stage:s,inputs:a,reviewAgents:c})}return i}function jf(e){let t=si(e),n=t?t.dir:e,r=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(r,"studios")]){let o=Yr(s,n,"STUDIO.md");if(Uf(o)){let c=LT(o).fix_hats;if(Array.isArray(c)&&c.length>0)return c.filter(u=>typeof u=="string");break}}let i=[];for(let s of[Yr(r,"fix-hats"),Yr(process.cwd(),".haiku","fix-hats"),Yr(r,"studios",n,"fix-hats"),Yr(process.cwd(),".haiku","studios",n,"fix-hats")])if(Uf(s))for(let o of wzn(s).filter(a=>a.endsWith(".md"))){let a=o.replace(/\.md$/,"");i.includes(a)||i.push(a)}return i.sort()}function bg(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o)){let c=LT(o).fix_hats;return Array.isArray(c)?c:[]}}return[]}function Jpe(e,t,n,r){let i=Es(e,t),s=pe(n),o=Yr(s,"stages",t,"units",r.endsWith(".md")?r:`${r}.md`);if(!Uf(o))return i;try{let{data:a}=re(Kpe(o,"utf8"));if((a.closes||[]).length>0&&!i.includes("feedback-assessor"))return[...i,"feedback-assessor"]}catch{}return i}function Xpe(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o)){let c=LT(o).review;return Array.isArray(c)?c.join(","):c||"auto"}}return"auto"}function Qpe(e,t){let n=si(e),r=n?n.dir:e,i=nn();for(let s of[Yr(process.cwd(),".haiku","studios"),Yr(i,"studios")]){let o=Yr(s,r,"stages",t,"STAGE.md");if(Uf(o)){let a=Kpe(o,"utf8"),c=LT(o),{content:u}=(0,npt.default)(a);return{description:c.description||t,body:u.trim()}}}return null}var npt,ns=v(()=>{"use strict";npt=Re(Kt(),1);Ci();Ge();Kn()});import{existsSync as spt,readFileSync as opt}from"node:fs";import{join as ehe}from"node:path";function kzn(){return $pe===null&&($pe=ie("@canon:stage/execute/start_unit_hat","subagent.eta.md")),$pe}function Izn(e){if(!Go.modelSelection)return;let{slug:t,studio:n,stage:r,hat:i,unit:s}=e,o,a=ehe(ar(t,r),"units",`${s}.md`);if(spt(a))try{let d=opt(a,"utf8");o=(0,the.default)(d).data.model}catch{}let c=r?Du(n,r)?.[i]:void 0,u=r?$i(n,r):void 0,l=Nd(n);return db({unit:o,hat:c?.model,stage:u?.data?.default_model,studio:l?.data?.default_model}).model}function xzn(e){let{slug:t,stage:n,unit:r}=e,i=ehe(ar(t,n),"units",`${r}.md`);if(!spt(i))return[];try{let s=(0,the.default)(opt(i,"utf8")).data;return(Array.isArray(s.iterations)?s.iterations:[]).filter(a=>a.result==="advance").map(a=>typeof a.hat=="string"?a.hat:"").filter(a=>a.length>0)}catch{return[]}}function qI(e){let{slug:t,studio:n,unit:r,stage:i,hat:s,terminal:o}=e,a=ehe(ar(t,i),"units",`${r}.md`),c=null,u=()=>c??=xzn({slug:t,stage:i,unit:r});return w3({slug:t,emitStage:i||void 0,dispatchId:r,ensureWorktree:()=>Rpe(t,r,i)??"",mandateRef:d=>kr({resolveBody:()=>EI(n,i,d),toolName:"haiku_read_hat",toolArgs:{studio:n,stage:i,hat:d},intent:t,stage:i,kind:"mandate",name:d}),priorHandoffBlock:()=>R3(a),resolveModel:d=>Izn({slug:t,studio:n,stage:i,hat:d,unit:r}),bolt:()=>u().length+1,template:()=>kzn(),templateVars:({hat:d,terminal:f,worktree:p,mandateRef:h,priorRejectBlock:m})=>({slug:t,studio:n,stage:i,hat:d,unit:r,terminal:f,worktree:p,mandateRef:h,priorHatsInline:u(),priorRejectBlock:m}),heading:d=>`### Subagent \u2014 \`${r}\` (stage \`${i}\`, hat \`${d}\`)`},s,o)}var the,$pe,nhe=v(()=>{"use strict";the=Re(Kt(),1);Ci();yr();fb();Ge();Kn();Bpe();ts();ht();$pe=null});function I3(e){let t=e.map(o=>({id:o.slug,status:o.frontmatter.status})),n=[],r=new Map;for(let o of e)r.set(o.slug,[]);let i=new Set(e.map(o=>o.slug)),s=[];for(let o of e){let a=o.frontmatter.depends_on??[];for(let c of a){if(!i.has(c)){s.push({unit:o.slug,dep:c});continue}n.push({from:c,to:o.slug});let u=r.get(c);u&&u.push(o.slug)}}return{nodes:t,edges:n,adjacency:r,unresolvedDeps:s.length>0?s:void 0}}function cpt(e){let t=new Map;for(let i of e.nodes)t.set(i.id,0);for(let i of e.edges)t.set(i.to,(t.get(i.to)??0)+1);let n=[];for(let[i,s]of t)s===0&&n.push(i);n.sort();let r=[];for(;n.length>0;){let i=n.shift();if(!i)break;r.push(i);let s=e.adjacency.get(i)??[];for(let o of s){let a=(t.get(o)??1)-1;if(t.set(o,a),a===0){let c=n.findIndex(u=>u>o);c===-1?n.push(o):n.splice(c,0,o)}}}if(r.lengths.id).filter(s=>!r.includes(s));throw new Error(`Circular dependency detected among units: ${i.join(", ")}`)}return r}function x3(e){let t=cpt(e),n=new Map;for(let i of t){let s=e.edges.filter(o=>o.to===i).map(o=>o.from);if(s.length===0)n.set(i,0);else{let o=Math.max(...s.map(a=>n.get(a)??0));n.set(i,o+1)}}let r=new Map;for(let[i,s]of n){let o=r.get(s)??[];o.push(i),r.set(s,o)}return r}function k3(e){return e.replace(/"/g,""").replace(/\[/g,"[").replace(/\]/g,"]").replace(//g,">")}function Hu(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,"_");return/^[a-zA-Z]/.test(t)?t:`n_${t}`}function O3(e,t){let n=["graph TD"],r=new Set(t.map(l=>l.slug)),i=[],s=new Map;for(let l of t){let d=l.frontmatter.stage||"_root";s.has(d)||(s.set(d,[]),i.push(d)),s.get(d)?.push(l)}let o=i.length>1;if(o)for(let l of i){let d=s.get(l)||[],f=k3(l.charAt(0).toUpperCase()+l.slice(1));n.push(` subgraph ${Hu(`stage_${l}`)}["${f}"]`);for(let p of d){let h=p.title||p.slug,m=k3(h),g=Hu(p.slug);n.push(` ${g}["${m}"]`)}n.push(" end")}else{let l=x3(e),d=new Map(t.map(h=>[h.slug,h])),f=Array.from(l.keys()).sort((h,m)=>h-m),p=f.length>1;for(let h of f){let g=(l.get(h)??[]).map(y=>d.get(y)).filter(y=>y!==void 0);if(g.length!==0){p&&n.push(` subgraph ${Hu(`wave_${h}`)}["Wave ${h}"]`);for(let y of g){let b=y.title||y.slug,S=k3(b),E=Hu(y.slug);n.push(` ${E}["${S}"]`)}p&&n.push(" end")}}}if(o&&i.length>1)for(let l=0;l ${f}`)}let a=new Map;for(let l of t)a.set(l.slug,l.frontmatter.stage||"_root");for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to);d&&f&&d===f&&n.push(` ${Hu(l.from)} --> ${Hu(l.to)}`)}let c=new Set;for(let l of e.edges){let d=a.get(l.from),f=a.get(l.to),p=!r.has(l.from),h=!r.has(l.to);p&&f&&(c.add(l.from),n.push(` ${Hu(l.from)} --> ${Hu(l.to)}`)),h&&d&&(c.add(l.to),n.push(` ${Hu(l.from)} --> ${Hu(l.to)}`))}for(let l of c){let d=Hu(l),f=k3(l);n.push(` ${d}["${f} (external)"]:::external`)}let u=new Map;for(let l of e.nodes){if(c.has(l.id))continue;let d=u.get(l.status)??[];d.push(Hu(l.id)),u.set(l.status,d)}for(let[l,d]of u){let f=apt[l]??apt.pending;n.push(` classDef ${l} ${f}`),n.push(` class ${d.join(",")} ${l}`)}return c.size>0&&n.push(" classDef external fill:#f5f5f5,stroke:#999,stroke-dasharray:5 5,color:#666"),n.join(` +`)}var apt,rhe=v(()=>{"use strict";apt={completed:"fill:#166534,stroke:#14532d,color:#fff",active:"fill:#1e40af,stroke:#1e3a8a,color:#fff",in_progress:"fill:#1e40af,stroke:#1e3a8a,color:#fff",pending:"fill:#525252,stroke:#404040,color:#fff",blocked:"fill:#991b1b,stroke:#7f1d1d,color:#fff"}});import{existsSync as ihe,readdirSync as upt,readFileSync as Ozn,rmSync as Pzn}from"node:fs";import{join as P3}from"node:path";function Nzn(e){if(!ihe(e))return{};let t=Ozn(e,"utf8"),{data:n}=re(t);return n}function iL(e,t){let n=Eg(e,t);return n.length===0?!0:!n.some(r=>r.status==="completed")}function lpt(e,t){if(!iL(e,t))return[];let n=P3(e,"stages",t,"feedback");if(!ihe(n))return[];let r=[];for(let i of upt(n))if(i.endsWith(".md")&&/^\d+-/.test(i))try{Pzn(P3(n,i),{force:!0}),r.push(i)}catch{}return r}function Czn(e){let t=typeof e.started_at=="string"&&e.started_at.length>0,n=Array.isArray(e.iterations)?e.iterations:[],r=n.length>0?n[n.length-1]:null,i=e.approvals&&typeof e.approvals=="object"?e.approvals:{},s=Object.values(i).some(l=>l!==null&&l!==!1&&l!==void 0),o=r!==null&&(r.result==="advance"||r.result==="closed")&&typeof r.hat=="string",a;s||o?a="completed":t?a="active":a="pending";let c=r!==null&&typeof r.hat=="string"?r.hat:"",u=n.length;return{status:a,hat:c,bolt:u}}function Eg(e,t){let n=P3(e,"stages",t,"units");if(!ihe(n))return[];let i=upt(n).filter(o=>o.endsWith(".md")).map(o=>{let a=Nzn(P3(n,o)),c=Czn(a);return{name:o.replace(".md",""),status:c.status,hat:c.hat,bolt:c.bolt,dependsOn:a.depends_on||[],depsComplete:!1}}),s=new Map(i.map(o=>[o.name,o.status]));for(let o of i)o.depsComplete=o.dependsOn.every(a=>s.get(a)==="completed");return i}function BI(e){let t=e.map(c=>({id:c.name,status:c.status})),n=[],r=new Map;for(let c of e)r.set(c.name,[]);for(let c of e)for(let u of c.dependsOn){if(!r.has(u))continue;n.push({from:u,to:c.name});let l=r.get(u);l&&l.push(c.name)}let i={nodes:t,edges:n,adjacency:r},s;try{s=x3(i)}catch{s=new Map([[0,e.map(c=>c.name)]])}let o=new Map,a=0;for(let[c,u]of s){for(let l of u)o.set(l,c);c+1>a&&(a=c+1)}return{waves:s,unitWave:o,totalWaves:a}}function zI(e,t,n){for(let r=0;rt.get(s.name)===r&&s.status!=="completed"))return r;return 0}function N3(e,t){try{let n=Eg(e,t);if(n.length===0)return"";let r=n.length,i=n.filter(p=>p.status==="completed").length,s=n.filter(p=>p.status==="active").length,o=n.filter(p=>p.status==="pending").length,{unitWave:a,totalWaves:c}=BI(n),u=zI(n,a,c),l=new Map;for(let p of n){if(p.status!=="active")continue;let h=p.hat||"?";l.set(h,(l.get(h)??0)+1)}let d=[...l.entries()].map(([p,h])=>`${p}\xD7${h}`).join(", "),f=`pool \xB7 stage \`${t}\`: ${i}/${r} units done \xB7 ${s} in flight \xB7 ${o} pending`+(c>1?` \xB7 wave ${u+1}/${c}`:"");return d?`${f} + in flight by hat: ${d}`:f}catch{return""}}var C3=v(()=>{"use strict";rhe();Ge()});var mc={};Ar(mc,{HasPropertyKey:()=>M3,IsArray:()=>js,IsAsyncIterator:()=>she,IsBigInt:()=>sL,IsBoolean:()=>_g,IsDate:()=>UT,IsFunction:()=>ohe,IsIterator:()=>ahe,IsNull:()=>che,IsNumber:()=>Al,IsObject:()=>Ir,IsRegExp:()=>oL,IsString:()=>Zr,IsSymbol:()=>uhe,IsUint8Array:()=>Tg,IsUndefined:()=>Hs});function M3(e,t){return t in e}function she(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.asyncIterator in e}function js(e){return Array.isArray(e)}function sL(e){return typeof e=="bigint"}function _g(e){return typeof e=="boolean"}function UT(e){return e instanceof globalThis.Date}function ohe(e){return typeof e=="function"}function ahe(e){return Ir(e)&&!js(e)&&!Tg(e)&&Symbol.iterator in e}function che(e){return e===null}function Al(e){return typeof e=="number"}function Ir(e){return typeof e=="object"&&e!==null}function oL(e){return e instanceof globalThis.RegExp}function Zr(e){return typeof e=="string"}function uhe(e){return typeof e=="symbol"}function Tg(e){return e instanceof globalThis.Uint8Array}function Hs(e){return e===void 0}var Jc=v(()=>{});function Mzn(e){return e.map(t=>D3(t))}function Dzn(e){return new Date(e.getTime())}function Lzn(e){return new Uint8Array(e)}function Uzn(e){return new RegExp(e.source,e.flags)}function Fzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=D3(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=D3(e[n]);return t}function D3(e){return js(e)?Mzn(e):UT(e)?Dzn(e):Tg(e)?Lzn(e):oL(e)?Uzn(e):Ir(e)?Fzn(e):e}function vi(e){return D3(e)}var qu=v(()=>{Jc()});function GI(e,t){return t===void 0?vi(e):vi({...t,...e})}var L3=v(()=>{qu()});var lhe=v(()=>{L3();qu()});function dpt(e){return e!==null&&typeof e=="object"}function fpt(e){return globalThis.Array.isArray(e)&&!globalThis.ArrayBuffer.isView(e)}function ppt(e){return e===void 0}function hpt(e){return typeof e=="number"}var mpt=v(()=>{});var gpt=v(()=>{mpt()});var U3,ypt=v(()=>{gpt();(function(e){e.InstanceMode="default",e.ExactOptionalPropertyTypes=!1,e.AllowArrayObject=!1,e.AllowNaN=!1,e.AllowNullVoid=!1;function t(o,a){return e.ExactOptionalPropertyTypes?a in o:o[a]!==void 0}e.IsExactOptionalProperty=t;function n(o){let a=dpt(o);return e.AllowArrayObject?a:a&&!fpt(o)}e.IsObjectLike=n;function r(o){return n(o)&&!(o instanceof Date)&&!(o instanceof Uint8Array)}e.IsRecordLike=r;function i(o){return e.AllowNaN?hpt(o):Number.isFinite(o)}e.IsNumberLike=i;function s(o){let a=ppt(o);return e.AllowNullVoid?a||o===null:a}e.IsVoidLike=s})(U3||(U3={}))});function jzn(e){return globalThis.Object.freeze(e).map(t=>aL(t))}function Hzn(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=aL(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=aL(e[n]);return globalThis.Object.freeze(t)}function aL(e){return js(e)?jzn(e):UT(e)?e:Tg(e)?e:oL(e)?e:Ir(e)?Hzn(e):e}var Spt=v(()=>{Jc()});function de(e,t){let n=t!==void 0?{...t,...e}:e;switch(U3.InstanceMode){case"freeze":return aL(n);case"clone":return vi(n);default:return n}}var Nt=v(()=>{ypt();Spt();qu()});var vg=v(()=>{Nt()});var Jo,bpt=v(()=>{Jo=class extends Error{constructor(t){super(t)}}});var Fh=v(()=>{bpt()});var so,Hf,wa,Dd,Oe,cL=v(()=>{so=Symbol.for("TypeBox.Transform"),Hf=Symbol.for("TypeBox.Readonly"),wa=Symbol.for("TypeBox.Optional"),Dd=Symbol.for("TypeBox.Hint"),Oe=Symbol.for("TypeBox.Kind")});var Ut=v(()=>{cL()});function VI(e){return Ir(e)&&e[Hf]==="Readonly"}function Bu(e){return Ir(e)&&e[wa]==="Optional"}function dhe(e){return Bn(e,"Any")}function fhe(e){return Bn(e,"Argument")}function qf(e){return Bn(e,"Array")}function FT(e){return Bn(e,"AsyncIterator")}function jT(e){return Bn(e,"BigInt")}function Rg(e){return Bn(e,"Boolean")}function Bf(e){return Bn(e,"Computed")}function zf(e){return Bn(e,"Constructor")}function qzn(e){return Bn(e,"Date")}function Gf(e){return Bn(e,"Function")}function Vf(e){return Bn(e,"Integer")}function rs(e){return Bn(e,"Intersect")}function HT(e){return Bn(e,"Iterator")}function Bn(e,t){return Ir(e)&&Oe in e&&e[Oe]===t}function F3(e){return _g(e)||Al(e)||Zr(e)}function wl(e){return Bn(e,"Literal")}function kl(e){return Bn(e,"MappedKey")}function Ri(e){return Bn(e,"MappedResult")}function _b(e){return Bn(e,"Never")}function Bzn(e){return Bn(e,"Not")}function uL(e){return Bn(e,"Null")}function Wf(e){return Bn(e,"Number")}function qs(e){return Bn(e,"Object")}function qT(e){return Bn(e,"Promise")}function BT(e){return Bn(e,"Record")}function _s(e){return Bn(e,"Ref")}function phe(e){return Bn(e,"RegExp")}function Ag(e){return Bn(e,"String")}function lL(e){return Bn(e,"Symbol")}function Il(e){return Bn(e,"TemplateLiteral")}function zzn(e){return Bn(e,"This")}function Tb(e){return Ir(e)&&so in e}function xl(e){return Bn(e,"Tuple")}function dL(e){return Bn(e,"Undefined")}function Yn(e){return Bn(e,"Union")}function Gzn(e){return Bn(e,"Uint8Array")}function Vzn(e){return Bn(e,"Unknown")}function Wzn(e){return Bn(e,"Unsafe")}function Kzn(e){return Bn(e,"Void")}function Yzn(e){return Ir(e)&&Oe in e&&Zr(e[Oe])}function Ol(e){return dhe(e)||fhe(e)||qf(e)||Rg(e)||jT(e)||FT(e)||Bf(e)||zf(e)||qzn(e)||Gf(e)||Vf(e)||rs(e)||HT(e)||wl(e)||kl(e)||Ri(e)||_b(e)||Bzn(e)||uL(e)||Wf(e)||qs(e)||qT(e)||BT(e)||_s(e)||phe(e)||Ag(e)||lL(e)||Il(e)||zzn(e)||xl(e)||dL(e)||Yn(e)||Gzn(e)||Vzn(e)||Wzn(e)||Kzn(e)||Yzn(e)}var Xn=v(()=>{Jc();Ut()});var X={};Ar(X,{IsAny:()=>vpt,IsArgument:()=>Rpt,IsArray:()=>Apt,IsAsyncIterator:()=>wpt,IsBigInt:()=>kpt,IsBoolean:()=>Ipt,IsComputed:()=>xpt,IsConstructor:()=>Opt,IsDate:()=>Ppt,IsFunction:()=>Npt,IsImport:()=>eGn,IsInteger:()=>Cpt,IsIntersect:()=>Mpt,IsIterator:()=>Dpt,IsKind:()=>aht,IsKindOf:()=>kn,IsLiteral:()=>pL,IsLiteralBoolean:()=>tGn,IsLiteralNumber:()=>Upt,IsLiteralString:()=>Lpt,IsLiteralValue:()=>Fpt,IsMappedKey:()=>jpt,IsMappedResult:()=>Hpt,IsNever:()=>qpt,IsNot:()=>Bpt,IsNull:()=>zpt,IsNumber:()=>Gpt,IsObject:()=>Vpt,IsOptional:()=>$zn,IsPromise:()=>Wpt,IsProperties:()=>j3,IsReadonly:()=>Qzn,IsRecord:()=>Kpt,IsRecursive:()=>nGn,IsRef:()=>Ypt,IsRegExp:()=>Zpt,IsSchema:()=>Xo,IsString:()=>Jpt,IsSymbol:()=>Xpt,IsTemplateLiteral:()=>Qpt,IsThis:()=>$pt,IsTransform:()=>eht,IsTuple:()=>tht,IsUint8Array:()=>rht,IsUndefined:()=>nht,IsUnion:()=>yhe,IsUnionLiteral:()=>rGn,IsUnknown:()=>iht,IsUnsafe:()=>sht,IsVoid:()=>oht,TypeGuardUnknownTypeError:()=>hhe});function Ept(e){try{return new RegExp(e),!0}catch{return!1}}function mhe(e){if(!Zr(e))return!1;for(let t=0;t=7&&n<=13||n===27||n===127)return!1}return!0}function _pt(e){return ghe(e)||Xo(e)}function fL(e){return Hs(e)||sL(e)}function Jr(e){return Hs(e)||Al(e)}function ghe(e){return Hs(e)||_g(e)}function xr(e){return Hs(e)||Zr(e)}function Jzn(e){return Hs(e)||Zr(e)&&mhe(e)&&Ept(e)}function Xzn(e){return Hs(e)||Zr(e)&&mhe(e)}function Tpt(e){return Hs(e)||Xo(e)}function Qzn(e){return Ir(e)&&e[Hf]==="Readonly"}function $zn(e){return Ir(e)&&e[wa]==="Optional"}function vpt(e){return kn(e,"Any")&&xr(e.$id)}function Rpt(e){return kn(e,"Argument")&&Al(e.index)}function Apt(e){return kn(e,"Array")&&e.type==="array"&&xr(e.$id)&&Xo(e.items)&&Jr(e.minItems)&&Jr(e.maxItems)&&ghe(e.uniqueItems)&&Tpt(e.contains)&&Jr(e.minContains)&&Jr(e.maxContains)}function wpt(e){return kn(e,"AsyncIterator")&&e.type==="AsyncIterator"&&xr(e.$id)&&Xo(e.items)}function kpt(e){return kn(e,"BigInt")&&e.type==="bigint"&&xr(e.$id)&&fL(e.exclusiveMaximum)&&fL(e.exclusiveMinimum)&&fL(e.maximum)&&fL(e.minimum)&&fL(e.multipleOf)}function Ipt(e){return kn(e,"Boolean")&&e.type==="boolean"&&xr(e.$id)}function xpt(e){return kn(e,"Computed")&&Zr(e.target)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))}function Opt(e){return kn(e,"Constructor")&&e.type==="Constructor"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function Ppt(e){return kn(e,"Date")&&e.type==="Date"&&xr(e.$id)&&Jr(e.exclusiveMaximumTimestamp)&&Jr(e.exclusiveMinimumTimestamp)&&Jr(e.maximumTimestamp)&&Jr(e.minimumTimestamp)&&Jr(e.multipleOfTimestamp)}function Npt(e){return kn(e,"Function")&&e.type==="Function"&&xr(e.$id)&&js(e.parameters)&&e.parameters.every(t=>Xo(t))&&Xo(e.returns)}function eGn(e){return kn(e,"Import")&&M3(e,"$defs")&&Ir(e.$defs)&&j3(e.$defs)&&M3(e,"$ref")&&Zr(e.$ref)&&e.$ref in e.$defs}function Cpt(e){return kn(e,"Integer")&&e.type==="integer"&&xr(e.$id)&&Jr(e.exclusiveMaximum)&&Jr(e.exclusiveMinimum)&&Jr(e.maximum)&&Jr(e.minimum)&&Jr(e.multipleOf)}function j3(e){return Ir(e)&&Object.entries(e).every(([t,n])=>mhe(t)&&Xo(n))}function Mpt(e){return kn(e,"Intersect")&&!(Zr(e.type)&&e.type!=="object")&&js(e.allOf)&&e.allOf.every(t=>Xo(t)&&!eht(t))&&xr(e.type)&&(ghe(e.unevaluatedProperties)||Tpt(e.unevaluatedProperties))&&xr(e.$id)}function Dpt(e){return kn(e,"Iterator")&&e.type==="Iterator"&&xr(e.$id)&&Xo(e.items)}function kn(e,t){return Ir(e)&&Oe in e&&e[Oe]===t}function Lpt(e){return pL(e)&&Zr(e.const)}function Upt(e){return pL(e)&&Al(e.const)}function tGn(e){return pL(e)&&_g(e.const)}function pL(e){return kn(e,"Literal")&&xr(e.$id)&&Fpt(e.const)}function Fpt(e){return _g(e)||Al(e)||Zr(e)}function jpt(e){return kn(e,"MappedKey")&&js(e.keys)&&e.keys.every(t=>Al(t)||Zr(t))}function Hpt(e){return kn(e,"MappedResult")&&j3(e.properties)}function qpt(e){return kn(e,"Never")&&Ir(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function Bpt(e){return kn(e,"Not")&&Xo(e.not)}function zpt(e){return kn(e,"Null")&&e.type==="null"&&xr(e.$id)}function Gpt(e){return kn(e,"Number")&&e.type==="number"&&xr(e.$id)&&Jr(e.exclusiveMaximum)&&Jr(e.exclusiveMinimum)&&Jr(e.maximum)&&Jr(e.minimum)&&Jr(e.multipleOf)}function Vpt(e){return kn(e,"Object")&&e.type==="object"&&xr(e.$id)&&j3(e.properties)&&_pt(e.additionalProperties)&&Jr(e.minProperties)&&Jr(e.maxProperties)}function Wpt(e){return kn(e,"Promise")&&e.type==="Promise"&&xr(e.$id)&&Xo(e.item)}function Kpt(e){return kn(e,"Record")&&e.type==="object"&&xr(e.$id)&&_pt(e.additionalProperties)&&Ir(e.patternProperties)&&(t=>{let n=Object.getOwnPropertyNames(t.patternProperties);return n.length===1&&Ept(n[0])&&Ir(t.patternProperties)&&Xo(t.patternProperties[n[0]])})(e)}function nGn(e){return Ir(e)&&Dd in e&&e[Dd]==="Recursive"}function Ypt(e){return kn(e,"Ref")&&xr(e.$id)&&Zr(e.$ref)}function Zpt(e){return kn(e,"RegExp")&&xr(e.$id)&&Zr(e.source)&&Zr(e.flags)&&Jr(e.maxLength)&&Jr(e.minLength)}function Jpt(e){return kn(e,"String")&&e.type==="string"&&xr(e.$id)&&Jr(e.minLength)&&Jr(e.maxLength)&&Jzn(e.pattern)&&Xzn(e.format)}function Xpt(e){return kn(e,"Symbol")&&e.type==="symbol"&&xr(e.$id)}function Qpt(e){return kn(e,"TemplateLiteral")&&e.type==="string"&&Zr(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function $pt(e){return kn(e,"This")&&xr(e.$id)&&Zr(e.$ref)}function eht(e){return Ir(e)&&so in e}function tht(e){return kn(e,"Tuple")&&e.type==="array"&&xr(e.$id)&&Al(e.minItems)&&Al(e.maxItems)&&e.minItems===e.maxItems&&(Hs(e.items)&&Hs(e.additionalItems)&&e.minItems===0||js(e.items)&&e.items.every(t=>Xo(t)))}function nht(e){return kn(e,"Undefined")&&e.type==="undefined"&&xr(e.$id)}function rGn(e){return yhe(e)&&e.anyOf.every(t=>Lpt(t)||Upt(t))}function yhe(e){return kn(e,"Union")&&xr(e.$id)&&Ir(e)&&js(e.anyOf)&&e.anyOf.every(t=>Xo(t))}function rht(e){return kn(e,"Uint8Array")&&e.type==="Uint8Array"&&xr(e.$id)&&Jr(e.minByteLength)&&Jr(e.maxByteLength)}function iht(e){return kn(e,"Unknown")&&xr(e.$id)}function sht(e){return kn(e,"Unsafe")}function oht(e){return kn(e,"Void")&&e.type==="void"&&xr(e.$id)}function aht(e){return Ir(e)&&Oe in e&&Zr(e[Oe])&&!Zzn.includes(e[Oe])}function Xo(e){return Ir(e)&&(vpt(e)||Rpt(e)||Apt(e)||Ipt(e)||kpt(e)||wpt(e)||xpt(e)||Opt(e)||Ppt(e)||Npt(e)||Cpt(e)||Mpt(e)||Dpt(e)||pL(e)||jpt(e)||Hpt(e)||qpt(e)||Bpt(e)||zpt(e)||Gpt(e)||Vpt(e)||Wpt(e)||Kpt(e)||Ypt(e)||Zpt(e)||Jpt(e)||Xpt(e)||Qpt(e)||$pt(e)||tht(e)||nht(e)||yhe(e)||rht(e)||iht(e)||sht(e)||oht(e)||aht(e))}var hhe,Zzn,cht=v(()=>{Jc();Ut();Fh();hhe=class extends Jo{},Zzn=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"]});var She=v(()=>{Xn();cht();Jc()});var uht=v(()=>{});var lht=v(()=>{uht()});var bhe,hL,Ehe,iGn,L7r,vb,Rb,dht,fht=v(()=>{bhe="(true|false)",hL="(0|[1-9][0-9]*)",Ehe="(.*)",iGn="(?!.*)",L7r=`^${bhe}$`,vb=`^${hL}$`,Rb=`^${Ehe}$`,dht=`^${iGn}$`});var mL=v(()=>{fht()});var pht=v(()=>{});var hht=v(()=>{});var mht=v(()=>{pht();hht()});function ght(e,t){return e.includes(t)}function yht(e){return[...new Set(e)]}function aGn(e,t){return e.filter(n=>t.includes(n))}function cGn(e,t){return e.reduce((n,r)=>aGn(n,r),t)}function Sht(e){return e.length===1?e[0]:e.length>1?cGn(e.slice(1),e[0]):[]}function bht(e){let t=[];for(let n of e)t.push(...n);return t}var Eht=v(()=>{});var gL=v(()=>{Eht()});function Ab(e){return de({[Oe]:"Any"},e)}var _ht=v(()=>{vg();Ut()});var yL=v(()=>{_ht()});function WI(e,t){return de({[Oe]:"Array",type:"array",items:e},t)}var Tht=v(()=>{Nt();Ut()});var SL=v(()=>{Tht()});function vht(e){return de({[Oe]:"Argument",index:e})}var Rht=v(()=>{Nt();Ut()});var _he=v(()=>{Rht()});function KI(e,t){return de({[Oe]:"AsyncIterator",type:"AsyncIterator",items:e},t)}var Aht=v(()=>{Ut();Nt()});var bL=v(()=>{Aht()});function oi(e,t,n){return de({[Oe]:"Computed",target:e,parameters:t},n)}var wht=v(()=>{vg();cL()});var wb=v(()=>{wht()});function uGn(e,t){let{[t]:n,...r}=e;return r}function is(e,t){return t.reduce((n,r)=>uGn(n,r),e)}var H3=v(()=>{});var kg=v(()=>{H3()});function Zn(e){return de({[Oe]:"Never",not:{}},e)}var kht=v(()=>{Nt();Ut()});var ka=v(()=>{kht()});var Iht=v(()=>{});function Qn(e){return de({[Oe]:"MappedResult",properties:e})}var The=v(()=>{Nt();Ut()});function YI(e,t,n){return de({[Oe]:"Constructor",type:"Constructor",parameters:e,returns:t},n)}var xht=v(()=>{Nt();Ut()});var EL=v(()=>{xht()});function jh(e,t,n){return de({[Oe]:"Function",type:"Function",parameters:e,returns:t},n)}var Oht=v(()=>{Nt();Ut()});var zT=v(()=>{Oht()});function _L(e,t){return de({[Oe]:"Union",anyOf:e},t)}var vhe=v(()=>{Nt();Ut()});function lGn(e){return e.some(t=>Bu(t))}function Pht(e){return e.map(t=>Bu(t)?dGn(t):t)}function dGn(e){return is(e,[wa])}function fGn(e,t){return lGn(e)?gc(_L(Pht(e),t)):_L(Pht(e),t)}function Hh(e,t){return e.length===1?de(e[0],t):e.length===0?Zn(t):fGn(e,t)}var Nht=v(()=>{Nt();Ut();kg();ka();Ig();vhe();Xn()});var Cht=v(()=>{});function Sr(e,t){return e.length===0?Zn(t):e.length===1?de(e[0],t):_L(e,t)}var Mht=v(()=>{ka();Nt();vhe()});var oo=v(()=>{Nht();Cht();Mht()});function pGn(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function Rhe(e,t,n){return e[t]===n&&e.charCodeAt(t-1)!==92}function xg(e,t){return Rhe(e,t,"(")}function TL(e,t){return Rhe(e,t,")")}function Dht(e,t){return Rhe(e,t,"|")}function hGn(e){if(!(xg(e,0)&&TL(e,e.length-1)))return!1;let t=0;for(let n=0;n0&&r.push(ZI(o)),n=s+1}let i=e.slice(n);return i.length>0&&r.push(ZI(i)),r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"or",expr:r}}function bGn(e){function t(i,s){if(!xg(i,s))throw new q3("TemplateLiteralParser: Index must point to open parens");let o=0;for(let a=s;a0&&r.push(ZI(a)),i=o-1}return r.length===0?{type:"const",const:""}:r.length===1?r[0]:{type:"and",expr:r}}function ZI(e){return hGn(e)?ZI(mGn(e)):gGn(e)?SGn(e):yGn(e)?bGn(e):{type:"const",const:pGn(e)}}function JI(e){return ZI(e.slice(1,e.length-1))}var q3,B3=v(()=>{Fh();q3=class extends Jo{}});function EGn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function _Gn(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function TGn(e){return e.type==="const"&&e.const===".*"}function GT(e){return EGn(e)||TGn(e)?!1:_Gn(e)?!0:e.type==="and"?e.expr.every(t=>GT(t)):e.type==="or"?e.expr.every(t=>GT(t)):e.type==="const"?!0:(()=>{throw new Ahe("Unknown expression type")})()}function Lht(e){let t=JI(e.pattern);return GT(t)}var Ahe,whe=v(()=>{B3();Fh();Ahe=class extends Jo{}});function*Uht(e){if(e.length===1)return yield*e[0];for(let t of e[0])for(let n of Uht(e.slice(1)))yield`${t}${n}`}function*vGn(e){return yield*Uht(e.expr.map(t=>[...vL(t)]))}function*RGn(e){for(let t of e.expr)yield*vL(t)}function*AGn(e){return yield e.const}function*vL(e){return e.type==="and"?yield*vGn(e):e.type==="or"?yield*RGn(e):e.type==="const"?yield*AGn(e):(()=>{throw new khe("Unknown expression")})()}function z3(e){let t=JI(e.pattern);return GT(t)?[...vL(t)]:[]}var khe,Ihe=v(()=>{whe();B3();Fh();khe=class extends Jo{}});function cr(e,t){return de({[Oe]:"Literal",const:e,type:typeof e},t)}var Fht=v(()=>{Nt();Ut()});var zu=v(()=>{Fht()});function G3(e){return de({[Oe]:"Boolean",type:"boolean"},e)}var jht=v(()=>{Ut();vg()});var V3=v(()=>{jht()});function XI(e){return de({[Oe]:"BigInt",type:"bigint"},e)}var Hht=v(()=>{Ut();vg()});var RL=v(()=>{Hht()});function Ld(e){return de({[Oe]:"Number",type:"number"},e)}var qht=v(()=>{Nt();Ut()});var VT=v(()=>{qht()});function Kf(e){return de({[Oe]:"String",type:"string"},e)}var Bht=v(()=>{Nt();Ut()});var QI=v(()=>{Bht()});function*wGn(e){let t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield G3():t==="number"?yield Ld():t==="bigint"?yield XI():t==="string"?yield Kf():yield(()=>{let n=t.split("|").map(r=>cr(r.trim()));return n.length===0?Zn():n.length===1?n[0]:Hh(n)})()}function*kGn(e){if(e[1]!=="{"){let t=cr("$"),n=xhe(e.slice(1));return yield*[t,...n]}for(let t=2;t{zu();V3();RL();VT();QI();oo();ka()});function IGn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ght(e,t){return Il(e)?e.pattern.slice(1,e.pattern.length-1):Yn(e)?`(${e.anyOf.map(n=>Ght(n,t)).join("|")})`:Wf(e)?`${t}${hL}`:Vf(e)?`${t}${hL}`:jT(e)?`${t}${hL}`:Ag(e)?`${t}${Ehe}`:wl(e)?`${t}${IGn(e.const.toString())}`:Rg(e)?`${t}${bhe}`:(()=>{throw new Phe(`Unexpected Kind '${e[Oe]}'`)})()}function Nhe(e){return`^${e.map(t=>Ght(t,"")).join("")}$`}var Phe,Che=v(()=>{mL();Ut();Fh();Xn();Phe=class extends Jo{}});function WT(e){let n=z3(e).map(r=>cr(r));return Hh(n)}var Vht=v(()=>{oo();zu();Ihe()});function W3(e,t){let n=Zr(e)?Nhe(zht(e)):Nhe(e);return de({[Oe]:"TemplateLiteral",type:"string",pattern:n},t)}var Wht=v(()=>{Nt();Ohe();Che();Jc();Ut()});var Og=v(()=>{whe();Ihe();Ohe();B3();Che();Vht();Wht()});function xGn(e){return z3(e).map(n=>n.toString())}function OGn(e){let t=[];for(let n of e)t.push(...Gu(n));return t}function PGn(e){return[e.toString()]}function Gu(e){return[...new Set(Il(e)?xGn(e):Yn(e)?OGn(e.anyOf):wl(e)?PGn(e.const):Wf(e)?["[number]"]:Vf(e)?["[number]"]:[])]}var K3=v(()=>{Og();Xn()});function NGn(e,t,n){let r={};for(let i of Object.getOwnPropertyNames(t))r[i]=kb(e,Gu(t[i]),n);return r}function CGn(e,t,n){return NGn(e,t.properties,n)}function Kht(e,t,n){let r=CGn(e,t,n);return Qn(r)}var Mhe=v(()=>{Ro();K3();qh()});function Zht(e,t){return e.map(n=>Jht(n,t))}function MGn(e){return e.filter(t=>!_b(t))}function DGn(e,t){return Y3(MGn(Zht(e,t)))}function LGn(e){return e.some(t=>_b(t))?[]:e}function UGn(e,t){return Hh(LGn(Zht(e,t)))}function FGn(e,t){return t in e?e[t]:t==="[number]"?Hh(e):Zn()}function jGn(e,t){return t==="[number]"?e:Zn()}function HGn(e,t){return t in e?e[t]:Zn()}function Jht(e,t){return rs(e)?DGn(e.allOf,t):Yn(e)?UGn(e.anyOf,t):xl(e)?FGn(e.items??[],t):qf(e)?jGn(e.items,t):qs(e)?HGn(e.properties,t):Zn()}function Dhe(e,t){return t.map(n=>Jht(e,n))}function Yht(e,t){return Hh(Dhe(e,t))}function kb(e,t,n){if(_s(e)||_s(t)){let r="Index types using Ref parameters require both Type and Key to be of TSchema";if(!Ol(e)||!Ol(t))throw new Jo(r);return oi("Index",[e,t])}return Ri(t)?Kht(e,t,n):kl(t)?Xht(e,t,n):de(Ol(t)?Yht(e,Gu(t)):Yht(e,t),n)}var Lhe=v(()=>{Nt();Fh();wb();ka();Ud();oo();K3();Uhe();Mhe();Xn()});function qGn(e,t,n){return{[t]:kb(e,[t],vi(n))}}function BGn(e,t,n){return t.reduce((r,i)=>({...r,...qGn(e,i,n)}),{})}function zGn(e,t,n){return BGn(e,t.keys,n)}function Xht(e,t,n){let r=zGn(e,t,n);return Qn(r)}var Uhe=v(()=>{Lhe();Ro();qu()});var qh=v(()=>{Uhe();Mhe();K3();Lhe()});function $I(e,t){return de({[Oe]:"Iterator",type:"Iterator",items:e},t)}var Qht=v(()=>{Nt();Ut()});var AL=v(()=>{Qht()});function GGn(e){return globalThis.Object.keys(e).filter(t=>!Bu(e[t]))}function VGn(e,t){let n=GGn(e),r=n.length>0?{[Oe]:"Object",type:"object",required:n,properties:e}:{[Oe]:"Object",type:"object",properties:e};return de(r,t)}var Or,$ht=v(()=>{Nt();Ut();Xn();Or=VGn});var Pl=v(()=>{$ht()});function Z3(e,t){return de({[Oe]:"Promise",type:"Promise",item:e},t)}var emt=v(()=>{Nt();Ut()});var J3=v(()=>{emt()});function WGn(e){return de(is(e,[Hf]))}function KGn(e){return de({...e,[Hf]:"Readonly"})}function YGn(e,t){return t===!1?WGn(e):KGn(e)}function Vu(e,t){let n=t??!0;return Ri(e)?tmt(e,n):YGn(e,n)}var Fhe=v(()=>{Nt();Ut();kg();jhe();Xn()});function ZGn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=Vu(e[r],t);return n}function JGn(e,t){return ZGn(e.properties,t)}function tmt(e,t){let n=JGn(e,t);return Qn(n)}var jhe=v(()=>{Ro();Fhe()});var KT=v(()=>{jhe();Fhe()});function Fd(e,t){return de(e.length>0?{[Oe]:"Tuple",type:"array",items:e,additionalItems:!1,minItems:e.length,maxItems:e.length}:{[Oe]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}var nmt=v(()=>{Nt();Ut()});var Ib=v(()=>{nmt()});function rmt(e,t){return e in t?jd(e,t[e]):Qn(t)}function XGn(e){return{[e]:cr(e)}}function QGn(e){let t={};for(let n of e)t[n]=cr(n);return t}function $Gn(e,t){return ght(t,e)?XGn(e):QGn(t)}function e2n(e,t){let n=$Gn(e,t);return rmt(e,n)}function wL(e,t){return t.map(n=>jd(e,n))}function t2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(t))n[r]=jd(e,t[r]);return n}function jd(e,t){let n={...t};return Bu(t)?gc(jd(e,is(t,[wa]))):VI(t)?Vu(jd(e,is(t,[Hf]))):Ri(t)?rmt(e,t.properties):kl(t)?e2n(e,t.keys):zf(t)?YI(wL(e,t.parameters),jd(e,t.returns),n):Gf(t)?jh(wL(e,t.parameters),jd(e,t.returns),n):FT(t)?KI(jd(e,t.items),n):HT(t)?$I(jd(e,t.items),n):rs(t)?yc(wL(e,t.allOf),n):Yn(t)?Sr(wL(e,t.anyOf),n):xl(t)?Fd(wL(e,t.items??[]),n):qs(t)?Or(t2n(e,t.properties),n):qf(t)?WI(jd(e,t.items),n):qT(t)?Z3(jd(e,t.item),n):t}function n2n(e,t){let n={};for(let r of e)n[r]=jd(r,t);return n}function imt(e,t,n){let r=Ol(e)?Gu(e):e,i=t({[Oe]:"MappedKey",keys:r}),s=n2n(r,i);return Or(s,n)}var smt=v(()=>{Ut();kg();SL();bL();EL();zT();qh();Ud();AL();zu();Pl();Ig();J3();KT();Ib();oo();gL();The();Xn()});var Ro=v(()=>{Iht();The();smt()});function r2n(e){return de(is(e,[wa]))}function i2n(e){return de({...e,[wa]:"Optional"})}function s2n(e,t){return t===!1?r2n(e):i2n(e)}function gc(e,t){let n=t??!0;return Ri(e)?omt(e,n):s2n(e,n)}var Hhe=v(()=>{Nt();Ut();kg();qhe();Xn()});function o2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=gc(e[r],t);return n}function a2n(e,t){return o2n(e.properties,t)}function omt(e,t){let n=a2n(e,t);return Qn(n)}var qhe=v(()=>{Ro();Hhe()});var Ig=v(()=>{qhe();Hhe()});function kL(e,t={}){let n=e.every(i=>qs(i)),r=Ol(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return de(t.unevaluatedProperties===!1||Ol(t.unevaluatedProperties)||n?{...r,[Oe]:"Intersect",type:"object",allOf:e}:{...r,[Oe]:"Intersect",allOf:e},t)}var Bhe=v(()=>{Nt();Ut();Xn()});function c2n(e){return e.every(t=>Bu(t))}function u2n(e){return is(e,[wa])}function amt(e){return e.map(t=>Bu(t)?u2n(t):t)}function l2n(e,t){return c2n(e)?gc(kL(amt(e),t)):kL(amt(e),t)}function Y3(e,t={}){if(e.length===1)return de(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>Tb(n)))throw new Error("Cannot intersect transform types");return l2n(e,t)}var cmt=v(()=>{Ut();Nt();kg();ka();Ig();Bhe();Xn()});var umt=v(()=>{});function yc(e,t){if(e.length===1)return de(e[0],t);if(e.length===0)return Zn(t);if(e.some(n=>Tb(n)))throw new Error("Cannot intersect transform types");return kL(e,t)}var lmt=v(()=>{Nt();ka();Bhe();Xn()});var Ud=v(()=>{cmt();umt();lmt()});function Bh(...e){let[t,n]=typeof e[0]=="string"?[e[0],e[1]]:[e[0].$id,e[1]];if(typeof t!="string")throw new Jo("Ref: $ref must be a string");return de({[Oe]:"Ref",$ref:t},n)}var dmt=v(()=>{Fh();Nt();Ut()});var YT=v(()=>{dmt()});function d2n(e,t){return oi("Awaited",[oi(e,t)])}function f2n(e){return oi("Awaited",[Bh(e)])}function p2n(e){return yc(fmt(e))}function h2n(e){return Sr(fmt(e))}function m2n(e){return e0(e)}function fmt(e){return e.map(t=>e0(t))}function e0(e,t){return de(Bf(e)?d2n(e.target,e.parameters):rs(e)?p2n(e.allOf):Yn(e)?h2n(e.anyOf):qT(e)?m2n(e.item):_s(e)?f2n(e.$ref):e,t)}var pmt=v(()=>{Nt();wb();Ud();oo();YT();Xn()});var X3=v(()=>{pmt()});function hmt(e){let t=[];for(let n of e)t.push(IL(n));return t}function g2n(e){let t=hmt(e);return bht(t)}function y2n(e){let t=hmt(e);return Sht(t)}function S2n(e){return e.map((t,n)=>n.toString())}function b2n(e){return["[number]"]}function E2n(e){return globalThis.Object.getOwnPropertyNames(e)}function _2n(e){return T2n?globalThis.Object.getOwnPropertyNames(e).map(n=>n[0]==="^"&&n[n.length-1]==="$"?n.slice(1,n.length-1):n):[]}function IL(e){return rs(e)?g2n(e.allOf):Yn(e)?y2n(e.anyOf):xl(e)?S2n(e.items??[]):qf(e)?b2n(e.items):qs(e)?E2n(e.properties):BT(e)?_2n(e.patternProperties):[]}var T2n,zhe=v(()=>{gL();Xn();T2n=!1});function v2n(e,t){return oi("KeyOf",[oi(e,t)])}function R2n(e){return oi("KeyOf",[Bh(e)])}function A2n(e,t){let n=IL(e),r=w2n(n),i=Hh(r);return de(i,t)}function w2n(e){return e.map(t=>t==="[number]"?Ld():cr(t))}function t0(e,t){return Bf(e)?v2n(e.target,e.parameters):_s(e)?R2n(e.$ref):Ri(e)?mmt(e,t):A2n(e,t)}var Ghe=v(()=>{Nt();zu();VT();wb();YT();zhe();oo();Vhe();Xn()});function k2n(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=t0(e[r],vi(t));return n}function I2n(e,t){return k2n(e.properties,t)}function mmt(e,t){let n=I2n(e,t);return Qn(n)}var Vhe=v(()=>{Ro();Ghe();qu()});var gmt=v(()=>{});var xL=v(()=>{Vhe();gmt();zhe();Ghe()});function x2n(e){let t=[];for(let n of e)t.push(...IL(n));return yht(t)}function O2n(e){return e.filter(t=>!_b(t))}function P2n(e,t){let n=[];for(let r of e)n.push(...Dhe(r,[t]));return O2n(n)}function N2n(e,t){let n={};for(let r of t)n[r]=Y3(P2n(e,r));return n}function ymt(e,t){let n=x2n(e),r=N2n(e,n);return Or(r,t)}var Smt=v(()=>{Ud();qh();xL();Pl();gL();Xn()});var Whe=v(()=>{Smt()});function Q3(e){return de({[Oe]:"Date",type:"Date"},e)}var bmt=v(()=>{Ut();Nt()});var $3=v(()=>{bmt()});function e9(e){return de({[Oe]:"Null",type:"null"},e)}var Emt=v(()=>{Nt();Ut()});var t9=v(()=>{Emt()});function n9(e){return de({[Oe]:"Symbol",type:"symbol"},e)}var _mt=v(()=>{Nt();Ut()});var r9=v(()=>{_mt()});function i9(e){return de({[Oe]:"Undefined",type:"undefined"},e)}var Tmt=v(()=>{Nt();Ut()});var s9=v(()=>{Tmt()});function o9(e){return de({[Oe]:"Uint8Array",type:"Uint8Array"},e)}var vmt=v(()=>{Nt();Ut()});var a9=v(()=>{vmt()});function xb(e){return de({[Oe]:"Unknown"},e)}var Rmt=v(()=>{Nt();Ut()});var n0=v(()=>{Rmt()});function C2n(e){return e.map(t=>Khe(t,!1))}function M2n(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=Vu(Khe(e[n],!1));return t}function c9(e,t){return t===!0?e:Vu(e)}function Khe(e,t){return she(e)?c9(Ab(),t):ahe(e)?c9(Ab(),t):js(e)?Vu(Fd(C2n(e))):Tg(e)?o9():UT(e)?Q3():Ir(e)?c9(Or(M2n(e)),t):ohe(e)?c9(jh([],xb()),t):Hs(e)?i9():che(e)?e9():uhe(e)?n9():sL(e)?XI():Al(e)?cr(e):_g(e)?cr(e):Zr(e)?cr(e):Or({})}function Amt(e,t){return de(Khe(e,!0),t)}var wmt=v(()=>{yL();RL();$3();zT();zu();t9();Pl();r9();Ib();KT();s9();a9();n0();vg();Jc()});var Yhe=v(()=>{wmt()});function kmt(e,t){return zf(e)?Fd(e.parameters,t):Zn(t)}var Imt=v(()=>{Ib();ka();Xn()});var Zhe=v(()=>{Imt()});function xmt(e,t){if(Hs(e))throw new Error("Enum undefined or empty");let n=globalThis.Object.getOwnPropertyNames(e).filter(s=>isNaN(s)).map(s=>e[s]),i=[...new Set(n)].map(s=>cr(s));return Sr(i,{...t,[Dd]:"Enum"})}var Omt=v(()=>{zu();Ut();oo();Jc()});var Jhe=v(()=>{Omt()});function Hd(e){return e===fe.False?e:fe.True}function r0(e){throw new Qhe(e)}function ao(e){return X.IsNever(e)||X.IsIntersect(e)||X.IsUnion(e)||X.IsUnknown(e)||X.IsAny(e)}function co(e,t){return X.IsNever(t)?Umt(e,t):X.IsIntersect(t)?u9(e,t):X.IsUnion(t)?nme(e,t):X.IsUnknown(t)?qmt(e,t):X.IsAny(t)?tme(e,t):r0("StructuralRight")}function tme(e,t){return fe.True}function D2n(e,t){return X.IsIntersect(t)?u9(e,t):X.IsUnion(t)&&t.anyOf.some(n=>X.IsAny(n)||X.IsUnknown(n))?fe.True:X.IsUnion(t)?fe.Union:X.IsUnknown(t)||X.IsAny(t)?fe.True:fe.Union}function L2n(e,t){return X.IsUnknown(e)?fe.False:X.IsAny(e)?fe.Union:X.IsNever(e)?fe.True:fe.False}function U2n(e,t){return X.IsObject(t)&&l9(t)?fe.True:ao(t)?co(e,t):X.IsArray(t)?Hd(Pr(e.items,t.items)):fe.False}function F2n(e,t){return ao(t)?co(e,t):X.IsAsyncIterator(t)?Hd(Pr(e.items,t.items)):fe.False}function j2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsBigInt(t)?fe.True:fe.False}function Dmt(e,t){return X.IsLiteralBoolean(e)||X.IsBoolean(e)?fe.True:fe.False}function H2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsBoolean(t)?fe.True:fe.False}function q2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsConstructor(t)?e.parameters.length>t.parameters.length?fe.False:e.parameters.every((n,r)=>Hd(Pr(t.parameters[r],n))===fe.True)?Hd(Pr(e.returns,t.returns)):fe.False:fe.False}function B2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsDate(t)?fe.True:fe.False}function z2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsFunction(t)?e.parameters.length>t.parameters.length?fe.False:e.parameters.every((n,r)=>Hd(Pr(t.parameters[r],n))===fe.True)?Hd(Pr(e.returns,t.returns)):fe.False:fe.False}function Lmt(e,t){return X.IsLiteral(e)&&mc.IsNumber(e.const)||X.IsNumber(e)||X.IsInteger(e)?fe.True:fe.False}function G2n(e,t){return X.IsInteger(t)||X.IsNumber(t)?fe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):fe.False}function u9(e,t){return t.allOf.every(n=>Pr(e,n)===fe.True)?fe.True:fe.False}function V2n(e,t){return e.allOf.some(n=>Pr(n,t)===fe.True)?fe.True:fe.False}function W2n(e,t){return ao(t)?co(e,t):X.IsIterator(t)?Hd(Pr(e.items,t.items)):fe.False}function K2n(e,t){return X.IsLiteral(t)&&t.const===e.const?fe.True:ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsString(t)?Hmt(e,t):X.IsNumber(t)?Fmt(e,t):X.IsInteger(t)?Lmt(e,t):X.IsBoolean(t)?Dmt(e,t):fe.False}function Umt(e,t){return fe.False}function Y2n(e,t){return fe.True}function Pmt(e){let[t,n]=[e,0];for(;X.IsNot(t);)t=t.not,n+=1;return n%2===0?t:xb()}function Z2n(e,t){return X.IsNot(e)?Pr(Pmt(e),t):X.IsNot(t)?Pr(e,Pmt(t)):r0("Invalid fallthrough for Not")}function J2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsNull(t)?fe.True:fe.False}function Fmt(e,t){return X.IsLiteralNumber(e)||X.IsNumber(e)||X.IsInteger(e)?fe.True:fe.False}function X2n(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsInteger(t)||X.IsNumber(t)?fe.True:fe.False}function Wu(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function Nmt(e){return l9(e)}function Cmt(e){return Wu(e,0)||Wu(e,1)&&"description"in e.properties&&X.IsUnion(e.properties.description)&&e.properties.description.anyOf.length===2&&(X.IsString(e.properties.description.anyOf[0])&&X.IsUndefined(e.properties.description.anyOf[1])||X.IsString(e.properties.description.anyOf[1])&&X.IsUndefined(e.properties.description.anyOf[0]))}function Xhe(e){return Wu(e,0)}function Mmt(e){return Wu(e,0)}function Q2n(e){return Wu(e,0)}function $2n(e){return Wu(e,0)}function eVn(e){return l9(e)}function tVn(e){let t=Ld();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&Hd(Pr(e.properties.length,t))===fe.True}function nVn(e){return Wu(e,0)}function l9(e){let t=Ld();return Wu(e,0)||Wu(e,1)&&"length"in e.properties&&Hd(Pr(e.properties.length,t))===fe.True}function rVn(e){let t=jh([Ab()],Ab());return Wu(e,0)||Wu(e,1)&&"then"in e.properties&&Hd(Pr(e.properties.then,t))===fe.True}function jmt(e,t){return Pr(e,t)===fe.False||X.IsOptional(e)&&!X.IsOptional(t)?fe.False:fe.True}function Sc(e,t){return X.IsUnknown(e)?fe.False:X.IsAny(e)?fe.Union:X.IsNever(e)||X.IsLiteralString(e)&&Nmt(t)||X.IsLiteralNumber(e)&&Xhe(t)||X.IsLiteralBoolean(e)&&Mmt(t)||X.IsSymbol(e)&&Cmt(t)||X.IsBigInt(e)&&Q2n(t)||X.IsString(e)&&Nmt(t)||X.IsSymbol(e)&&Cmt(t)||X.IsNumber(e)&&Xhe(t)||X.IsInteger(e)&&Xhe(t)||X.IsBoolean(e)&&Mmt(t)||X.IsUint8Array(e)&&eVn(t)||X.IsDate(e)&&$2n(t)||X.IsConstructor(e)&&nVn(t)||X.IsFunction(e)&&tVn(t)?fe.True:X.IsRecord(e)&&X.IsString($he(e))?t[Dd]==="Record"?fe.True:fe.False:X.IsRecord(e)&&X.IsNumber($he(e))&&Wu(t,0)?fe.True:fe.False}function iVn(e,t){return ao(t)?co(e,t):X.IsRecord(t)?qd(e,t):X.IsObject(t)?(()=>{for(let n of Object.getOwnPropertyNames(t.properties)){if(!(n in e.properties)&&!X.IsOptional(t.properties[n]))return fe.False;if(X.IsOptional(t.properties[n]))return fe.True;if(jmt(e.properties[n],t.properties[n])===fe.False)return fe.False}return fe.True})():fe.False}function sVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&rVn(t)?fe.True:X.IsPromise(t)?Hd(Pr(e.item,t.item)):fe.False}function $he(e){return vb in e.patternProperties?Ld():Rb in e.patternProperties?Kf():r0("Unknown record key pattern")}function eme(e){return vb in e.patternProperties?e.patternProperties[vb]:Rb in e.patternProperties?e.patternProperties[Rb]:r0("Unable to get record value schema")}function qd(e,t){let[n,r]=[$he(t),eme(t)];return X.IsLiteralString(e)&&X.IsNumber(n)&&Hd(Pr(e,r))===fe.True?fe.True:X.IsUint8Array(e)&&X.IsNumber(n)||X.IsString(e)&&X.IsNumber(n)||X.IsArray(e)&&X.IsNumber(n)?Pr(e,r):X.IsObject(e)?(()=>{for(let i of Object.getOwnPropertyNames(e.properties))if(jmt(r,e.properties[i])===fe.False)return fe.False;return fe.True})():fe.False}function oVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?Pr(eme(e),eme(t)):fe.False}function aVn(e,t){let n=X.IsRegExp(e)?Kf():e,r=X.IsRegExp(t)?Kf():t;return Pr(n,r)}function Hmt(e,t){return X.IsLiteral(e)&&mc.IsString(e.const)||X.IsString(e)?fe.True:fe.False}function cVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsString(t)?fe.True:fe.False}function uVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsSymbol(t)?fe.True:fe.False}function lVn(e,t){return X.IsTemplateLiteral(e)?Pr(WT(e),t):X.IsTemplateLiteral(t)?Pr(e,WT(t)):r0("Invalid fallthrough for TemplateLiteral")}function dVn(e,t){return X.IsArray(t)&&e.items!==void 0&&e.items.every(n=>Pr(n,t.items)===fe.True)}function fVn(e,t){return X.IsNever(e)?fe.True:X.IsUnknown(e)?fe.False:X.IsAny(e)?fe.Union:fe.False}function pVn(e,t){return ao(t)?co(e,t):X.IsObject(t)&&l9(t)||X.IsArray(t)&&dVn(e,t)?fe.True:X.IsTuple(t)?mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||!mc.IsUndefined(e.items)&&mc.IsUndefined(t.items)?fe.False:mc.IsUndefined(e.items)&&!mc.IsUndefined(t.items)||e.items.every((n,r)=>Pr(n,t.items[r])===fe.True)?fe.True:fe.False:fe.False}function hVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsUint8Array(t)?fe.True:fe.False}function mVn(e,t){return ao(t)?co(e,t):X.IsObject(t)?Sc(e,t):X.IsRecord(t)?qd(e,t):X.IsVoid(t)?SVn(e,t):X.IsUndefined(t)?fe.True:fe.False}function nme(e,t){return t.anyOf.some(n=>Pr(e,n)===fe.True)?fe.True:fe.False}function gVn(e,t){return e.anyOf.every(n=>Pr(n,t)===fe.True)?fe.True:fe.False}function qmt(e,t){return fe.True}function yVn(e,t){return X.IsNever(t)?Umt(e,t):X.IsIntersect(t)?u9(e,t):X.IsUnion(t)?nme(e,t):X.IsAny(t)?tme(e,t):X.IsString(t)?Hmt(e,t):X.IsNumber(t)?Fmt(e,t):X.IsInteger(t)?Lmt(e,t):X.IsBoolean(t)?Dmt(e,t):X.IsArray(t)?L2n(e,t):X.IsTuple(t)?fVn(e,t):X.IsObject(t)?Sc(e,t):X.IsUnknown(t)?fe.True:fe.False}function SVn(e,t){return X.IsUndefined(e)||X.IsUndefined(e)?fe.True:fe.False}function bVn(e,t){return X.IsIntersect(t)?u9(e,t):X.IsUnion(t)?nme(e,t):X.IsUnknown(t)?qmt(e,t):X.IsAny(t)?tme(e,t):X.IsObject(t)?Sc(e,t):X.IsVoid(t)?fe.True:fe.False}function Pr(e,t){return X.IsTemplateLiteral(e)||X.IsTemplateLiteral(t)?lVn(e,t):X.IsRegExp(e)||X.IsRegExp(t)?aVn(e,t):X.IsNot(e)||X.IsNot(t)?Z2n(e,t):X.IsAny(e)?D2n(e,t):X.IsArray(e)?U2n(e,t):X.IsBigInt(e)?j2n(e,t):X.IsBoolean(e)?H2n(e,t):X.IsAsyncIterator(e)?F2n(e,t):X.IsConstructor(e)?q2n(e,t):X.IsDate(e)?B2n(e,t):X.IsFunction(e)?z2n(e,t):X.IsInteger(e)?G2n(e,t):X.IsIntersect(e)?V2n(e,t):X.IsIterator(e)?W2n(e,t):X.IsLiteral(e)?K2n(e,t):X.IsNever(e)?Y2n(e,t):X.IsNull(e)?J2n(e,t):X.IsNumber(e)?X2n(e,t):X.IsObject(e)?iVn(e,t):X.IsRecord(e)?oVn(e,t):X.IsString(e)?cVn(e,t):X.IsSymbol(e)?uVn(e,t):X.IsTuple(e)?pVn(e,t):X.IsPromise(e)?sVn(e,t):X.IsUint8Array(e)?hVn(e,t):X.IsUndefined(e)?mVn(e,t):X.IsUnion(e)?gVn(e,t):X.IsUnknown(e)?yVn(e,t):X.IsVoid(e)?bVn(e,t):r0(`Unknown left type operand '${e[Oe]}'`)}function Ob(e,t){return Pr(e,t)}var Qhe,fe,rme=v(()=>{yL();zT();VT();QI();n0();Og();mL();Ut();Fh();She();Qhe=class extends Jo{};(function(e){e[e.Union=0]="Union",e[e.True=1]="True",e[e.False=2]="False"})(fe||(fe={}))});function EVn(e,t,n,r,i){let s={};for(let o of globalThis.Object.getOwnPropertyNames(e))s[o]=i0(e[o],t,n,r,vi(i));return s}function _Vn(e,t,n,r,i){return EVn(e.properties,t,n,r,i)}function Bmt(e,t,n,r,i){let s=_Vn(e,t,n,r,i);return Qn(s)}var ime=v(()=>{Ro();d9();qu()});function TVn(e,t,n,r){let i=Ob(e,t);return i===fe.Union?Sr([n,r]):i===fe.True?n:r}function i0(e,t,n,r,i){return Ri(e)?Bmt(e,t,n,r,i):kl(e)?de(zmt(e,t,n,r,i)):de(TVn(e,t,n,r),i)}var d9=v(()=>{Nt();oo();rme();sme();ime();Xn()});function vVn(e,t,n,r,i){return{[e]:i0(cr(e),t,n,r,vi(i))}}function RVn(e,t,n,r,i){return e.reduce((s,o)=>({...s,...vVn(o,t,n,r,i)}),{})}function AVn(e,t,n,r,i){return RVn(e.keys,t,n,r,i)}function zmt(e,t,n,r,i){let s=AVn(e,t,n,r,i);return Qn(s)}var sme=v(()=>{Ro();zu();d9();qu()});var Gmt=v(()=>{});var OL=v(()=>{rme();sme();ime();Gmt();d9()});function Vmt(e,t){return s0(WT(e),t)}var ome=v(()=>{f9();Og()});function wVn(e,t){let n=e.filter(r=>Ob(r,t)===fe.False);return n.length===1?n[0]:Sr(n)}function s0(e,t,n={}){return Il(e)?de(Vmt(e,t),n):Ri(e)?de(Wmt(e,t),n):de(Yn(e)?wVn(e.anyOf,t):Ob(e,t)!==fe.False?Zn():e,n)}var f9=v(()=>{Nt();oo();ka();OL();ame();ome();Xn()});function kVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=s0(e[r],t);return n}function IVn(e,t){return kVn(e.properties,t)}function Wmt(e,t){let n=IVn(e,t);return Qn(n)}var ame=v(()=>{Ro();f9()});var cme=v(()=>{ame();ome();f9()});function Kmt(e,t){return o0(WT(e),t)}var ume=v(()=>{p9();Og()});function xVn(e,t){let n=e.filter(r=>Ob(r,t)!==fe.False);return n.length===1?n[0]:Sr(n)}function o0(e,t,n){return Il(e)?de(Kmt(e,t),n):Ri(e)?de(Ymt(e,t),n):de(Yn(e)?xVn(e.anyOf,t):Ob(e,t)!==fe.False?e:Zn(),n)}var p9=v(()=>{Nt();oo();ka();OL();lme();ume();Xn()});function OVn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=o0(e[r],t);return n}function PVn(e,t){return OVn(e.properties,t)}function Ymt(e,t){let n=PVn(e,t);return Qn(n)}var lme=v(()=>{Ro();p9()});var dme=v(()=>{lme();ume();p9()});function Zmt(e,t){return zf(e)?de(e.returns,t):Zn(t)}var Jmt=v(()=>{Nt();ka();Xn()});var fme=v(()=>{Jmt()});function h9(e){return Vu(gc(e))}var Xmt=v(()=>{KT();Ig()});var m9=v(()=>{Xmt()});function ZT(e,t,n){return de({[Oe]:"Record",type:"object",patternProperties:{[e]:t}},n)}function pme(e,t,n){let r={};for(let i of e)r[i]=t;return Or(r,{...n,[Dd]:"Record"})}function NVn(e,t,n){return Lht(e)?pme(Gu(e),t,n):ZT(e.pattern,t,n)}function CVn(e,t,n){return pme(Gu(Sr(e)),t,n)}function MVn(e,t,n){return pme([e.toString()],t,n)}function DVn(e,t,n){return ZT(e.source,t,n)}function LVn(e,t,n){let r=Hs(e.pattern)?Rb:e.pattern;return ZT(r,t,n)}function UVn(e,t,n){return ZT(Rb,t,n)}function FVn(e,t,n){return ZT(dht,t,n)}function jVn(e,t,n){return Or({true:t,false:t},n)}function HVn(e,t,n){return ZT(vb,t,n)}function qVn(e,t,n){return ZT(vb,t,n)}function g9(e,t,n={}){return Yn(e)?CVn(e.anyOf,t,n):Il(e)?NVn(e,t,n):wl(e)?MVn(e.const,t,n):Rg(e)?jVn(e,t,n):Vf(e)?HVn(e,t,n):Wf(e)?qVn(e,t,n):phe(e)?DVn(e,t,n):Ag(e)?LVn(e,t,n):dhe(e)?UVn(e,t,n):_b(e)?FVn(e,t,n):Zn(n)}function y9(e){return globalThis.Object.getOwnPropertyNames(e.patternProperties)[0]}function Qmt(e){let t=y9(e);return t===Rb?Kf():t===vb?Ld():Kf({pattern:t})}function S9(e){return e.patternProperties[y9(e)]}var $mt=v(()=>{Nt();Ut();ka();VT();Pl();QI();oo();Og();mL();qh();Jc();Xn()});var PL=v(()=>{$mt()});function BVn(e,t){return t.parameters=NL(e,t.parameters),t.returns=Yf(e,t.returns),t}function zVn(e,t){return t.parameters=NL(e,t.parameters),t.returns=Yf(e,t.returns),t}function GVn(e,t){return t.allOf=NL(e,t.allOf),t}function VVn(e,t){return t.anyOf=NL(e,t.anyOf),t}function WVn(e,t){return Hs(t.items)||(t.items=NL(e,t.items)),t}function KVn(e,t){return t.items=Yf(e,t.items),t}function YVn(e,t){return t.items=Yf(e,t.items),t}function ZVn(e,t){return t.items=Yf(e,t.items),t}function JVn(e,t){return t.item=Yf(e,t.item),t}function XVn(e,t){let n=tWn(e,t.properties);return{...t,...Or(n)}}function QVn(e,t){let n=Yf(e,Qmt(t)),r=Yf(e,S9(t)),i=g9(n,r);return{...t,...i}}function $Vn(e,t){return t.index in e?e[t.index]:xb()}function eWn(e,t){let n=VI(t),r=Bu(t),i=Yf(e,t);return n&&r?h9(i):n&&!r?Vu(i):!n&&r?gc(i):i}function tWn(e,t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:eWn(e,t[r])}),{})}function NL(e,t){return t.map(n=>Yf(e,n))}function Yf(e,t){return zf(t)?BVn(e,t):Gf(t)?zVn(e,t):rs(t)?GVn(e,t):Yn(t)?VVn(e,t):xl(t)?WVn(e,t):qf(t)?KVn(e,t):FT(t)?YVn(e,t):HT(t)?ZVn(e,t):qT(t)?JVn(e,t):qs(t)?XVn(e,t):BT(t)?QVn(e,t):fhe(t)?$Vn(e,t):t}function egt(e,t){return Yf(t,GI(e))}var tgt=v(()=>{L3();n0();m9();KT();Ig();Pl();PL();Jc();Xn()});var hme=v(()=>{tgt()});function ngt(e){return de({[Oe]:"Integer",type:"integer"},e)}var rgt=v(()=>{Nt();Ut()});var mme=v(()=>{rgt()});function nWn(e,t,n){return{[e]:Zf(cr(e),t,vi(n))}}function rWn(e,t,n){return e.reduce((i,s)=>({...i,...nWn(s,t,n)}),{})}function iWn(e,t,n){return rWn(e.keys,t,n)}function igt(e,t,n){let r=iWn(e,t,n);return Qn(r)}var gme=v(()=>{Ro();JT();zu();qu()});function sWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),n].join("")}function oWn(e){let[t,n]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),n].join("")}function aWn(e){return e.toUpperCase()}function cWn(e){return e.toLowerCase()}function uWn(e,t,n){let r=JI(e.pattern);if(!GT(r))return{...e,pattern:sgt(e.pattern,t)};let o=[...vL(r)].map(u=>cr(u)),a=ogt(o,t),c=Sr(a);return W3([c],n)}function sgt(e,t){return typeof e=="string"?t==="Uncapitalize"?sWn(e):t==="Capitalize"?oWn(e):t==="Uppercase"?aWn(e):t==="Lowercase"?cWn(e):e:e.toString()}function ogt(e,t){return e.map(n=>Zf(n,t))}function Zf(e,t,n={}){return kl(e)?igt(e,t,n):Il(e)?uWn(e,t,n):Yn(e)?Sr(ogt(e.anyOf,t),n):wl(e)?cr(sgt(e.const,t),n):de(e,n)}var JT=v(()=>{Nt();Og();gme();zu();oo();Xn()});function agt(e,t={}){return Zf(e,"Capitalize",t)}var cgt=v(()=>{JT()});function ugt(e,t={}){return Zf(e,"Lowercase",t)}var lgt=v(()=>{JT()});function dgt(e,t={}){return Zf(e,"Uncapitalize",t)}var fgt=v(()=>{JT()});function pgt(e,t={}){return Zf(e,"Uppercase",t)}var hgt=v(()=>{JT()});var yme=v(()=>{cgt();gme();JT();lgt();fgt();hgt()});function lWn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Pb(e[i],t,vi(n));return r}function dWn(e,t,n){return lWn(e.properties,t,n)}function mgt(e,t,n){let r=dWn(e,t,n);return Qn(r)}var Sme=v(()=>{Ro();b9();qu()});function fWn(e,t){return e.map(n=>bme(n,t))}function pWn(e,t){return e.map(n=>bme(n,t))}function hWn(e,t){let{[t]:n,...r}=e;return r}function mWn(e,t){return t.reduce((n,r)=>hWn(n,r),e)}function gWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=mWn(n,t);return Or(i,r)}function yWn(e){let t=e.reduce((n,r)=>F3(r)?[...n,cr(r)]:n,[]);return Sr(t)}function bme(e,t){return rs(e)?yc(fWn(e.allOf,t)):Yn(e)?Sr(pWn(e.anyOf,t)):qs(e)?gWn(e,t,e.properties):Or({})}function Pb(e,t,n){let r=js(t)?yWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?mgt(e,i,n):kl(t)?ggt(e,t,n):s&&o?oi("Omit",[e,r],n):!s&&o?oi("Omit",[e,r],n):s&&!o?oi("Omit",[e,r],n):de({...bme(e,i),...n})}var b9=v(()=>{Nt();H3();cL();wb();zu();qh();Ud();oo();Pl();Eme();Sme();Xn();Jc()});function SWn(e,t,n){return{[t]:Pb(e,[t],vi(n))}}function bWn(e,t,n){return t.reduce((r,i)=>({...r,...SWn(e,i,n)}),{})}function EWn(e,t,n){return bWn(e,t.keys,n)}function ggt(e,t,n){let r=EWn(e,t,n);return Qn(r)}var Eme=v(()=>{Ro();b9();qu()});var E9=v(()=>{Eme();Sme();b9()});function _Wn(e,t,n){let r={};for(let i of globalThis.Object.getOwnPropertyNames(e))r[i]=Nb(e[i],t,vi(n));return r}function TWn(e,t,n){return _Wn(e.properties,t,n)}function ygt(e,t,n){let r=TWn(e,t,n);return Qn(r)}var _me=v(()=>{Ro();_9();qu()});function vWn(e,t){return e.map(n=>Tme(n,t))}function RWn(e,t){return e.map(n=>Tme(n,t))}function AWn(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function wWn(e,t,n){let r=is(e,[so,"$id","required","properties"]),i=AWn(n,t);return Or(i,r)}function kWn(e){let t=e.reduce((n,r)=>F3(r)?[...n,cr(r)]:n,[]);return Sr(t)}function Tme(e,t){return rs(e)?yc(vWn(e.allOf,t)):Yn(e)?Sr(RWn(e.anyOf,t)):qs(e)?wWn(e,t,e.properties):Or({})}function Nb(e,t,n){let r=js(t)?kWn(t):t,i=Ol(t)?Gu(t):t,s=_s(e),o=_s(t);return Ri(e)?ygt(e,i,n):kl(t)?Sgt(e,t,n):s&&o?oi("Pick",[e,r],n):!s&&o?oi("Pick",[e,r],n):s&&!o?oi("Pick",[e,r],n):de({...Tme(e,i),...n})}var _9=v(()=>{Nt();H3();wb();Ud();zu();Pl();oo();qh();cL();Xn();Jc();vme();_me()});function IWn(e,t,n){return{[t]:Nb(e,[t],vi(n))}}function xWn(e,t,n){return t.reduce((r,i)=>({...r,...IWn(e,i,n)}),{})}function OWn(e,t,n){return xWn(e,t.keys,n)}function Sgt(e,t,n){let r=OWn(e,t,n);return Qn(r)}var vme=v(()=>{Ro();_9();qu()});var T9=v(()=>{vme();_me();_9()});function PWn(e,t){return oi("Partial",[oi(e,t)])}function NWn(e){return oi("Partial",[Bh(e)])}function CWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=gc(e[n]);return t}function MWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=CWn(t);return Or(r,n)}function bgt(e){return e.map(t=>Egt(t))}function Egt(e){return Bf(e)?PWn(e.target,e.parameters):_s(e)?NWn(e.$ref):rs(e)?yc(bgt(e.allOf)):Yn(e)?Sr(bgt(e.anyOf)):qs(e)?MWn(e,e.properties):jT(e)||Rg(e)||Vf(e)||wl(e)||uL(e)||Wf(e)||Ag(e)||lL(e)||dL(e)?e:Or({})}function a0(e,t){return Ri(e)?_gt(e,t):de({...Egt(e),...t})}var Rme=v(()=>{Nt();wb();Ig();Pl();Ud();oo();YT();kg();Ut();Ame();Xn()});function DWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=a0(e[r],vi(t));return n}function LWn(e,t){return DWn(e.properties,t)}function _gt(e,t){let n=LWn(e,t);return Qn(n)}var Ame=v(()=>{Ro();Rme();qu()});var v9=v(()=>{Ame();Rme()});function UWn(e,t){return oi("Required",[oi(e,t)])}function FWn(e){return oi("Required",[Bh(e)])}function jWn(e){let t={};for(let n of globalThis.Object.getOwnPropertyNames(e))t[n]=is(e[n],[wa]);return t}function HWn(e,t){let n=is(e,[so,"$id","required","properties"]),r=jWn(t);return Or(r,n)}function Tgt(e){return e.map(t=>vgt(t))}function vgt(e){return Bf(e)?UWn(e.target,e.parameters):_s(e)?FWn(e.$ref):rs(e)?yc(Tgt(e.allOf)):Yn(e)?Sr(Tgt(e.anyOf)):qs(e)?HWn(e,e.properties):jT(e)||Rg(e)||Vf(e)||wl(e)||uL(e)||Wf(e)||Ag(e)||lL(e)||dL(e)?e:Or({})}function c0(e,t){return Ri(e)?Rgt(e,t):de({...vgt(e),...t})}var wme=v(()=>{Nt();wb();Pl();Ud();oo();YT();Ut();kg();kme();Xn()});function qWn(e,t){let n={};for(let r of globalThis.Object.getOwnPropertyNames(e))n[r]=c0(e[r],t);return n}function BWn(e,t){return qWn(e.properties,t)}function Rgt(e,t){let n=BWn(e,t);return Qn(n)}var kme=v(()=>{Ro();wme()});var R9=v(()=>{kme();wme()});function zWn(e,t){return t.map(n=>_s(n)?Ime(e,n.$ref):Nl(e,n))}function Ime(e,t){return t in e?_s(e[t])?Ime(e,e[t].$ref):Nl(e,e[t]):Zn()}function GWn(e){return e0(e[0])}function VWn(e){return kb(e[0],e[1])}function WWn(e){return t0(e[0])}function KWn(e){return a0(e[0])}function YWn(e){return Pb(e[0],e[1])}function ZWn(e){return Nb(e[0],e[1])}function JWn(e){return c0(e[0])}function XWn(e,t,n){let r=zWn(e,n);return t==="Awaited"?GWn(r):t==="Index"?VWn(r):t==="KeyOf"?WWn(r):t==="Partial"?KWn(r):t==="Omit"?YWn(r):t==="Pick"?ZWn(r):t==="Required"?JWn(r):Zn()}function QWn(e,t){return WI(Nl(e,t))}function $Wn(e,t){return KI(Nl(e,t))}function e4n(e,t,n){return YI(CL(e,t),Nl(e,n))}function t4n(e,t,n){return jh(CL(e,t),Nl(e,n))}function n4n(e,t){return yc(CL(e,t))}function r4n(e,t){return $I(Nl(e,t))}function i4n(e,t){return Or(globalThis.Object.keys(t).reduce((n,r)=>({...n,[r]:Nl(e,t[r])}),{}))}function s4n(e,t){let[n,r]=[Nl(e,S9(t)),y9(t)],i=GI(t);return i.patternProperties[r]=n,i}function o4n(e,t){return _s(t)?{...Ime(e,t.$ref),[so]:t[so]}:t}function a4n(e,t){return Fd(CL(e,t))}function c4n(e,t){return Sr(CL(e,t))}function CL(e,t){return t.map(n=>Nl(e,n))}function Nl(e,t){return Bu(t)?de(Nl(e,is(t,[wa])),t):VI(t)?de(Nl(e,is(t,[Hf])),t):Tb(t)?de(o4n(e,t),t):qf(t)?de(QWn(e,t.items),t):FT(t)?de($Wn(e,t.items),t):Bf(t)?de(XWn(e,t.target,t.parameters)):zf(t)?de(e4n(e,t.parameters,t.returns),t):Gf(t)?de(t4n(e,t.parameters,t.returns),t):rs(t)?de(n4n(e,t.allOf),t):HT(t)?de(r4n(e,t.items),t):qs(t)?de(i4n(e,t.properties),t):BT(t)?de(s4n(e,t)):xl(t)?de(a4n(e,t.items||[]),t):Yn(t)?de(c4n(e,t.anyOf),t):t}function u4n(e,t){return t in e?Nl(e,e[t]):Zn()}function Agt(e){return globalThis.Object.getOwnPropertyNames(e).reduce((t,n)=>({...t,[n]:u4n(e,n)}),{})}var wgt=v(()=>{vg();lhe();kg();SL();X3();bL();EL();qh();zT();Ud();AL();xL();Pl();E9();T9();ka();v9();PL();R9();Ib();oo();Ut();Xn()});function kgt(e){return new xme(e)}var xme,Igt=v(()=>{vg();Ut();wgt();xme=class{constructor(t){let n=Agt(t),r=this.WithIdentifiers(n);this.$defs=r}Import(t,n){let r={...this.$defs,[t]:de(this.$defs[t],n)};return de({[Oe]:"Import",$defs:r,$ref:t})}WithIdentifiers(t){return globalThis.Object.getOwnPropertyNames(t).reduce((n,r)=>({...n,[r]:{...t[r],$id:r}}),{})}}});var Ome=v(()=>{Igt()});function xgt(e,t){return de({[Oe]:"Not",not:e},t)}var Ogt=v(()=>{Nt();Ut()});var Pme=v(()=>{Ogt()});function Pgt(e,t){return Gf(e)?Fd(e.parameters,t):Zn()}var Ngt=v(()=>{Ib();ka();Xn()});var Nme=v(()=>{Ngt()});function Cgt(e,t={}){Hs(t.$id)&&(t.$id=`T${l4n++}`);let n=GI(e({[Oe]:"This",$ref:`${t.$id}`}));return n.$id=t.$id,de({[Dd]:"Recursive",...n},t)}var l4n,Mgt=v(()=>{L3();Nt();Jc();Ut();l4n=0});var Cme=v(()=>{Mgt()});function Dgt(e,t){let n=Zr(e)?new globalThis.RegExp(e):e;return de({[Oe]:"RegExp",type:"RegExp",source:n.source,flags:n.flags},t)}var Lgt=v(()=>{Nt();Jc();Ut()});var Mme=v(()=>{Lgt()});function d4n(e){return rs(e)?e.allOf:Yn(e)?e.anyOf:xl(e)?e.items??[]:[]}function Ugt(e){return d4n(e)}var Fgt=v(()=>{Xn()});var Dme=v(()=>{Fgt()});function jgt(e,t){return Gf(e)?de(e.returns,t):Zn(t)}var Hgt=v(()=>{Nt();ka();Xn()});var Lme=v(()=>{Hgt()});var qgt=v(()=>{});var Bgt=v(()=>{});var zgt=v(()=>{qgt();Bgt()});var Ggt=v(()=>{});var Vgt=v(()=>{Ggt()});function Wgt(e){return new Ume(e)}var Ume,Fme,Kgt=v(()=>{Ut();Xn();Ume=class{constructor(t){this.schema=t}Decode(t){return new Fme(this.schema,t)}},Fme=class{constructor(t,n){this.schema=t,this.decode=n}EncodeTransform(t,n){let s={Encode:o=>n[so].Encode(t(o)),Decode:o=>this.decode(n[so].Decode(o))};return{...n,[so]:s}}EncodeSchema(t,n){let r={Decode:this.decode,Encode:t};return{...n,[so]:r}}Encode(t){return Tb(this.schema)?this.EncodeTransform(t,this.schema):this.EncodeSchema(t,this.schema)}}});var jme=v(()=>{Kgt()});function Ygt(e={}){return de({[Oe]:e[Oe]??"Unsafe"},e)}var Zgt=v(()=>{Nt();Ut()});var Hme=v(()=>{Zgt()});function Jgt(e){return de({[Oe]:"Void",type:"void"},e)}var Xgt=v(()=>{Nt();Ut()});var qme=v(()=>{Xgt()});var Bme={};Ar(Bme,{Any:()=>Ab,Argument:()=>vht,Array:()=>WI,AsyncIterator:()=>KI,Awaited:()=>e0,BigInt:()=>XI,Boolean:()=>G3,Capitalize:()=>agt,Composite:()=>ymt,Const:()=>Amt,Constructor:()=>YI,ConstructorParameters:()=>kmt,Date:()=>Q3,Enum:()=>xmt,Exclude:()=>s0,Extends:()=>i0,Extract:()=>o0,Function:()=>jh,Index:()=>kb,InstanceType:()=>Zmt,Instantiate:()=>egt,Integer:()=>ngt,Intersect:()=>yc,Iterator:()=>$I,KeyOf:()=>t0,Literal:()=>cr,Lowercase:()=>ugt,Mapped:()=>imt,Module:()=>kgt,Never:()=>Zn,Not:()=>xgt,Null:()=>e9,Number:()=>Ld,Object:()=>Or,Omit:()=>Pb,Optional:()=>gc,Parameters:()=>Pgt,Partial:()=>a0,Pick:()=>Nb,Promise:()=>Z3,Readonly:()=>Vu,ReadonlyOptional:()=>h9,Record:()=>g9,Recursive:()=>Cgt,Ref:()=>Bh,RegExp:()=>Dgt,Required:()=>c0,Rest:()=>Ugt,ReturnType:()=>jgt,String:()=>Kf,Symbol:()=>n9,TemplateLiteral:()=>W3,Transform:()=>Wgt,Tuple:()=>Fd,Uint8Array:()=>o9,Uncapitalize:()=>dgt,Undefined:()=>i9,Union:()=>Sr,Unknown:()=>xb,Unsafe:()=>Ygt,Uppercase:()=>pgt,Void:()=>Jgt});var Qgt=v(()=>{yL();_he();SL();bL();X3();RL();V3();Whe();Yhe();EL();Zhe();$3();Jhe();cme();OL();dme();zT();qh();fme();hme();mme();Ud();yme();AL();xL();zu();Ro();Ome();ka();Pme();t9();VT();Pl();E9();Ig();Nme();v9();T9();J3();KT();m9();PL();Cme();YT();Mme();R9();Dme();Lme();QI();r9();Og();jme();Ib();a9();s9();oo();n0();Hme();qme()});var I,$gt=v(()=>{Qgt();I=Bme});var Ao=v(()=>{lhe();vg();Fh();She();lht();mL();mht();gL();Ut();yL();SL();_he();bL();X3();RL();V3();Whe();Yhe();EL();Zhe();$3();Jhe();cme();OL();dme();zT();qh();fme();hme();mme();Ud();AL();yme();xL();zu();Ome();Ro();ka();Pme();t9();VT();Pl();E9();Ig();Nme();v9();T9();J3();KT();m9();PL();Cme();YT();Mme();R9();Dme();Lme();zgt();Vgt();QI();r9();Og();jme();Ib();a9();s9();oo();n0();Hme();qme();$gt()});var f4n,zme,Gme=v(()=>{"use strict";Ao();f4n=I.Object({at:I.String({description:"ISO 8601 timestamp the spec review was signed. Drift sweep walks `git log --since=` against the unit spec to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from legacy state. Real reviews omit this field."}))},{additionalProperties:!1}),zme=I.Object({at:I.String({description:"ISO 8601 timestamp the approval was signed. Drift sweep walks `git log --since=` against declared output paths to detect out-of-band edits."}),migrated:I.Optional(I.Boolean({description:"True when synthesized by the v0\u2192v4 migrator from a legacy `status: completed` unit. Real approvals omit this field."}))},{additionalProperties:!1})});var eyt,He,Ia=v(()=>{"use strict";eyt=Re(G_(),1),He=new eyt.Ajv({allErrors:!0,strict:!1})});function Xc(e){switch(e){case"blocker":return 0;case"high":return 1;case"medium":return 2;case"low":return 3;default:return 2}}function tyt(){let e=(process.env.HAIKU_FIX_SEVERITY_THRESHOLD||"high").trim().toLowerCase();return ML.includes(e)?Xc(e):Xc("high")}function u0(e){return typeof e!="string"||e.length===0?!0:Xc(e)<=tyt()}var A9,ML,nyt,ryt,p4n,h4n,m4n,g4n,w9,Vme,y4n,xli,DL,LL,iyt=v(()=>{"use strict";Ao();Ia();A9=["adversarial-review","studio-review","engine-review","drift","discovery","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],ML=["blocker","high","medium","low"];nyt="^(?:FB-)?\\d+$",ryt=["iterations","closed_at"],p4n=I.Object({unit:I.Union([I.String(),I.Null()],{description:"Unit name this feedback targets (e.g. 'unit-03-business-context'). Null when the FB is intent-scope (no specific unit). Set at create time, immutable thereafter \u2014 to retarget, reject and create a new FB."}),invalidates:I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. Examples: ['user'] (user re-review needed), ['code-reviewer', 'spec'] (those two reviewers re-sign), [] (no invalidation \u2014 closure is informational only). Default is the role of the FB's filer (e.g. user-chat \u2192 ['user'], adversarial-review \u2192 [])."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the classification choice. Set by the classifier fix-hat via haiku_feedback_set_targets when the FB lands without targets (typical of user-authored FBs). Surfaced in the SPA so reviewers can see why the classifier routed the way it did."}))},{additionalProperties:!1}),h4n=I.Object({text:I.String({minLength:1}),at:I.String()},{additionalProperties:!1}),m4n=I.Object({title:I.Optional(I.String({minLength:1,maxLength:120})),origin:I.Optional(I.String({enum:[...A9]})),severity:I.Optional(I.String({enum:[...ML]})),author:I.Optional(I.String()),author_type:I.Optional(I.String({enum:["agent","human","system"]})),created_at:I.Optional(I.String()),source_ref:I.Optional(I.Union([I.String(),I.Null()])),attachment:I.Optional(I.String()),inline_anchor:I.Optional(I.Object({},{additionalProperties:!0})),targets:I.Optional(p4n),closure_reply:I.Optional(h4n),closure_reply_unread:I.Optional(I.Boolean())},{propertyNames:{not:{enum:[...ryt]}},additionalProperties:!0}),g4n=I.Object({selected_text:I.String({minLength:1,maxLength:1e3,description:"The literal text excerpt the feedback anchors to. The SPA greps the rendered artifact body for this string, so it must match the source verbatim (including whitespace inside the span)."}),paragraph:I.Integer({minimum:0,maximum:1e4,description:"Zero-based paragraph index in the rendered artifact body. Used as a tiebreaker when the same selected_text appears more than once."}),location:I.String({maxLength:500,description:"Human-readable label rendered on the feedback card (e.g. 'Unit: Threat model and security hardening'). Display only \u2014 not used for routing."}),comment_id:I.Optional(I.String({maxLength:200,description:"Optional DOM id the SPA can scroll-to. Defaulted by the engine when omitted."})),file_path:I.Optional(I.String({maxLength:1e3,description:"Repo-relative path to the artifact file (e.g. .haiku/intents//stages//units/.md). The SPA parses this to route to the right tab; agents can grep it for selected_text to land on the line."})),content_sha:I.Optional(I.String({maxLength:64,description:"Optional sha of the artifact's raw body at the time of anchoring. The SPA uses it to paint stale highlights when the body has drifted since."}))},{additionalProperties:!1}),w9=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit (or pass empty) to log an intent-scope finding."})),title:I.String({minLength:1,maxLength:120,description:"Short title for the feedback item (max 120 chars)."}),body:I.String({minLength:1,description:"Markdown body describing the finding."}),severity:I.String({enum:[...ML],description:`How urgent the finding is. REQUIRED \u2014 classify as you file. One of: ${ML.join(" | ")}. blocker = stops the gate, fix first; high = fix before delivery; medium = should fix; low = nice-to-have / nit. The fix-loop dispatches higher-severity findings first.`}),origin:I.Optional(I.String({enum:[...A9],description:`Source of the feedback. One of: ${A9.join(" | ")} (default: agent).`})),source_ref:I.Optional(I.String({description:"Optional reference \u2014 review-agent name, annotation ID, etc."})),author:I.Optional(I.String({description:"Who created it (default: agent)."})),inline_anchor:I.Optional(g4n),target_unit:I.Optional(I.Unsafe({type:["string","null"],description:"Unit this feedback targets. Null/omitted for intent-scope. Immutable post-create."})),target_invalidates:I.Optional(I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. Defaulted by handler from origin if omitted."})),state_file:I.Optional(I.String())},{additionalProperties:!1}),Vme=He.compile(w9),y4n=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),feedback_id:I.String({pattern:nyt}),reason:I.String({minLength:1,description:"Why the FB is being rejected. Persisted in the closing iteration's reason field."}),state_file:I.Optional(I.String())},{additionalProperties:!1}),xli=He.compile(y4n),DL=ryt,LL=["title","origin","severity","author","author_type","created_at","source_ref","attachment","inline_anchor","targets"]});var l0,Wme,k9,Kme,I9,Yme,syt=v(()=>{"use strict";Ao();Ia();l0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),session_id:I.Optional(I.String({description:"Override the session ID to await. When omitted, the live review session for this intent is resolved from the in-memory registry (haiku_run_next passes it explicitly on the inline path). No session id is persisted to the repo."})),gate_context:I.Optional(I.String({description:"What this gate advances on approval \u2014 intent_completion | intent_review | elaborate_to_execute | stage_gate. Passed by haiku_run_next on the inline path so post-decision routing needs no repo-persisted pointer. Defaults to stage_gate when omitted."})),next_stage:I.Optional(I.Unsafe({type:["string","null"],description:"Stage to advance to on approval (non-final stage gate), or null. Passed by haiku_run_next on the inline path."})),next_phase:I.Optional(I.Unsafe({type:["string","null"],description:"Phase to advance to on approval (spec / intent_review gates), or null. Passed by haiku_run_next on the inline path."})),auto_open:I.Optional(I.Boolean({description:"Hard override on the local browser launch. Defaults to true. When true, the tool launches the review URL in the default browser only if NO SPA tab is already attached for this session \u2014 the live-websocket check is authoritative, so passing true never causes a duplicate tab. Set to false on hosts where the local-browser launch is known to fail (headless containers, sandboxed runners) \u2014 the tool will still complete the await, the user just has to follow the URL themselves."})),review_url:I.Optional(I.String({description:"Review URL to open. Optional. Pass the review_url from the gate_review action \u2014 if omitted, no browser will be launched but the await will still complete when the user submits a decision via the SPA."})),state_file:I.Optional(I.String({description:"Internal \u2014 session state file path for telemetry."}))},{additionalProperties:!1}),Wme=He.compile(l0),k9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by ask_user_visual_question."}),url:I.Optional(I.String({description:"Question URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Kme=He.compile(k9),I9=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by pick_design_direction."}),intent_slug:I.Optional(I.String({description:"Intent slug \u2014 used for stage-branch reconciliation after the user selects an archetype. Optional: handler also resolves it from the session record. Pass it explicitly to override."})),url:I.Optional(I.String({description:"Direction URL. Optional \u2014 primarily used for the browser-launch step."})),auto_open:I.Optional(I.Boolean({description:"Try to open the URL in the default browser when waiting begins (default true). Set to false for remote control / headless / mobile-chat scenarios."}))},{additionalProperties:!1}),Yme=He.compile(I9)});var UL,d0,Zme,oyt=v(()=>{"use strict";Ao();Ia();UL=["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations","preview_cursor"],d0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),op:I.String({enum:[...UL],description:"Which admin op to run: force_stage_complete, set_intent_field, reset_drift, mutate_feedback, preview_cursor."}),reason:I.Optional(I.String({description:"Why you're running this admin op \u2014 the cause that led here (e.g. 'cursor stuck on stage `design` after a manual branch edit; force-completing to unblock'). Surfaced verbatim to the user at the top of the confirmation picker so they have the context to approve or cancel. Plain prose, not a status code."})),stage:I.Optional(I.String({description:"Target stage (force_stage_complete, mutate_feedback)."})),field:I.Optional(I.String({description:"intent.md FM key (set_intent_field)."})),value:I.Optional(I.Unsafe({type:["string","array","number","boolean","null","object"],description:"intent.md FM value (set_intent_field)."})),feedback_id:I.Optional(I.String({description:"Feedback ID to mutate (mutate_feedback). For batch mutations, use feedback_ids instead."})),feedback_ids:I.Optional(I.Array(I.String(),{description:"Batch form of feedback_id \u2014 array of FB IDs to mutate in a single call (mutate_feedback). The same `patch` is applied to every FB in the list. Use this instead of firing the picker confirmation per-FB."})),patch:I.Optional(I.Object({},{additionalProperties:!0,description:"FB FM keys to set (mutate_feedback). Example: { closed_at: '2026-...', closed_by: 'manual_review' }."})),fields:I.Optional(I.Object({},{additionalProperties:!0,description:"Batch form of field/value \u2014 object of intent.md FM keys to set in a single call (set_intent_field). Example: { mode: 'autopilot', archived: false }."})),close_open_feedback:I.Optional(I.Boolean({description:'force_stage_complete only. When true, also stamps `closed_at` + `closed_by: "force_complete"` on every open FB on the targeted stages (and on intent scope when the final stage is the target). Open FBs otherwise continue blocking the cursor even after every approval is signed.'})),unit:I.Optional(I.String({description:"Unit slug or filename stem (set_unit_iterations). Example: 'unit-03-my-thing' or 'unit-03'."})),iterations:I.Optional(I.Array(I.Object({hat:I.String({minLength:1}),result:I.String({enum:["advance","reject"]}),at:I.Optional(I.String())},{additionalProperties:!0}),{description:"Explicit iterations[] array to write (set_unit_iterations). Omit to auto-synthesize one `advance` entry per hat in the stage's `hats:` sequence \u2014 the typical recovery shape when a legacy unit has no iterations but its outputs landed."}))},{additionalProperties:!1}),Zme=He.compile(d0)});var f0,Jme,ayt=v(()=>{"use strict";Ao();Ia();f0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),stage:I.String({minLength:1,description:"Stage the discovery belongs to (e.g. `inception`, `design`)."}),template:I.String({minLength:1,description:"Discovery template name (matches the `discovery/.md` file under the studio's stage)."})},{additionalProperties:!1}),Jme=He.compile(f0)});var zh,Pg,x9,Xme,O9,Qme,P9,$me,N9,ege,C9,tge,M9,nge,D9,rge,L9,ige,U9,sge,F9,oge,cyt=v(()=>{"use strict";Ao();Ia();zh=I.Optional(I.String()),Pg={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit for intent-scope feedback."})),feedback_id:I.Integer({minimum:1,maximum:999,description:"Feedback identifier \u2014 the numeric prefix of the FB on disk (e.g. for `008-output-discovery-\u2026md`, pass `8`). Just a number; no `FB-` prefix, no zero-padding, no string form. Range fits the on-disk `NNN-\u2026md` 3-digit padding (max 999, plenty of room). The handler does prefix-match lookup against `-*.md` \u2014 the agent never needs to know the slug part. Pre-2026-05-07 intents that used 2-digit padding (`08-\u2026md`) still resolve correctly; the lookup parses leading digits regardless of width."})},x9=I.Object({...Pg,state_file:zh},{additionalProperties:!1}),Xme=He.compile(x9),O9=I.Object({...Pg,to_stage:I.String({description:"Target stage. Empty string for intent-scope. Same as `stage` to confirm placement; different to relocate."}),state_file:zh},{additionalProperties:!1}),Qme=He.compile(O9),P9=I.Object({...Pg,reason:I.String({minLength:1,description:"Explanation for why this feedback is being rejected"}),state_file:zh},{additionalProperties:!1}),$me=He.compile(P9),N9=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.Optional(I.String({description:"Stage name. Omit to list across all stages."})),closed:I.Optional(I.Boolean({description:"If true, list only closed feedback (closed_at != null). If false, list only open feedback (closed_at == null). Omit to list both."})),state_file:zh},{additionalProperties:!1}),ege=He.compile(N9),C9=I.Object({...Pg,state_file:zh},{additionalProperties:!1}),tge=He.compile(C9),M9=I.Object({...Pg,body:I.String({description:"Full markdown body to write. Replaces the prior body entirely."}),state_file:zh},{additionalProperties:!1}),nge=He.compile(M9),D9=I.Object({...Pg,target_unit:I.Unsafe({type:["string","null"],description:"Unit slug this FB targets (e.g. 'unit-03-business-context'), or null for intent-scope. Set once; subsequent calls are rejected."}),target_invalidates:I.Array(I.String(),{description:"Approval/review role keys to clear on the targeted unit when this FB closes. e.g. ['user'] for user-recoverable findings, ['code-reviewer', 'spec'] for cross-role invalidation. Empty array is allowed (informational closure with no rerun)."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the classification choice. Stored on `targets.reasoning` and surfaced in the SPA next to the target so reviewers can see WHY the classifier picked this target_unit / target_invalidates combo. Encouraged for non-obvious classifications (e.g. cross-cutting findings routed to intent-scope)."})),state_file:zh},{additionalProperties:!1}),rge=He.compile(D9),L9=I.Object({...Pg,severity:I.String({enum:["blocker","high","medium","low"],description:"Finding urgency. blocker = stops the gate, fix first; high = fix before delivery; medium = should fix; low = nice-to-have / nit. Set once; subsequent calls on an already-classified FB are rejected."}),reasoning:I.Optional(I.String({description:"Optional one-paragraph rationale for the severity choice. Surfaced in the SPA next to the badge so reviewers see WHY the classifier ranked it this way. Encouraged for non-obvious calls (e.g. a low-looking finding bumped to blocker because it gates a downstream unit)."})),state_file:zh},{additionalProperties:!1}),ige=He.compile(L9),U9=I.Object({...Pg,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next fix-hat. State what you did about the finding, what you concluded, and what the next hat needs to know to pick up cleanly. Recorded on this iteration and embedded in the next fix-hat's dispatch. Distinct from `reply` (the requester-facing closure note); this is the inter-hat baton."}),reply:I.Optional(I.String({description:"REQUIRED when this advance closes the feedback (terminal hat in fix_hats). A short plain-language explanation of what was changed, written to the requester. Stored on the FB frontmatter as `closure_reply` and surfaced in the SPA review timeline. Mid-chain advances may omit it."})),resolution:I.Optional(I.String({enum:["non_actionable"],description:"Set to `non_actionable` to TERMINAL-CLOSE this finding immediately from ANY hat, short-circuiting the rest of the fix_hats chain. Use ONLY when the finding is valid but has no code fix \u2014 a question you can answer in `message`/`reply`, an out-of-scope/process note, or an immutable/already-superseded target. The FB closes as `non_actionable` (distinct from a fixed-closure and from `haiku_feedback_reject`'s invalid-rejection) and is never re-dispatched. Omit for a normal advance."})),state_file:zh},{additionalProperties:!1}),sge=He.compile(U9),F9=I.Object({...Pg,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the fix-hat that gets re-run. Explain why the current hat's work was rejected AND what must change to pass. Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:zh},{additionalProperties:!1}),oge=He.compile(F9)});var j9,FL,H9,age,q9,cge,B9,uge,uyt=v(()=>{"use strict";Ao();Ia();j9=I.Optional(I.String()),FL=I.Object({title:I.String({description:'Short human-readable title (3\u20138 words, max 80 chars, single line, no trailing period). Must be a deliberate summary \u2014 NOT the first 80 chars of the description. Good: "Add archivable intents". Bad: "Add archivable intents to H\xB7AI\xB7K\xB7U. Users need a way to soft-hide\u2026".'}),description:I.String({description:"Full description of what the intent is about (2\u20135 sentences covering scope, motivation, and constraints). Stored verbatim in the intent body."}),studio_candidates:I.Array(I.String(),{description:"REQUIRED. The 2\u20134 studios (canonical name, slug, or alias) that best fit the description \u2014 pre-narrows the studio picker. Fetch the options from `haiku_studio_list` (name + description per studio) and pick the closest matches. At least one must resolve; the picker still shows the rest behind a 'Show all studios\u2026' expansion. Omitting it is rejected with instructions to fetch the list and retry."}),slug:I.Optional(I.String({description:"URL-friendly slug for the intent (auto-generated from title if not provided)"})),context:I.Optional(I.String({description:"Conversation context summary \u2014 highlights from the conversation that led to this intent"})),state_file:j9},{additionalProperties:!1}),H9=I.Object({slug:I.String({minLength:1,description:"Intent slug"}),field:I.String({minLength:1,description:"Frontmatter field name to read"}),state_file:j9},{additionalProperties:!1}),age=He.compile(H9),q9=I.Object({include_archived:I.Optional(I.Boolean({description:"When true, include archived intents in the result and add an 'archived' field to each response object. Defaults to false."})),state_file:j9},{additionalProperties:!1}),cge=He.compile(q9),B9=I.Object({intent:I.String({minLength:1}),field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must match the field's declared type in INTENT_FRONTMATTER_SCHEMA. Mismatches return `intent_field_type_mismatch`."}),state_file:j9},{additionalProperties:!1}),uge=He.compile(B9)});var wo,lyt,z9,lge,G9,dge,V9,fge,W9,pge,jL,HL,K9,hge,Y9,mge,Z9,gge,J9,yge,X9,Sge,Q9,bge,$9,Ege,eY,_ge,tY,Tge,nY,vge,rY,Rge,p0,Age,iY,wge,sY,kge,oY,Ige,dyt=v(()=>{"use strict";Ao();Ia();wo=I.Optional(I.String()),lyt=I.Object({state_file:wo},{additionalProperties:!1}),z9=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String({description:"Stage name. Defaults to the intent's active_stage when omitted."})),rationale:I.String({minLength:1,description:"Rationale (\u226510 chars in handler check) explaining why this divergence is intentional."}),state_file:wo},{additionalProperties:!1}),lge=He.compile(z9),G9=I.Object({intent:I.String({minLength:1}),stage:I.Optional(I.String()),no_decisions:I.Optional(I.Boolean()),decision:I.Optional(I.String()),options:I.Optional(I.Array(I.String())),choice:I.Optional(I.String()),source:I.Optional(I.String({enum:["user","autonomous-acknowledged"],description:"Who made the call. user = user picked from agent-presented options. autonomous-acknowledged = agent chose and surfaced for veto-style approval."})),rationale:I.Optional(I.String()),state_file:wo},{additionalProperties:!1}),dge=He.compile(G9),V9=I.Object({intent:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),fge=He.compile(V9),W9=I.Object({intent:I.String({minLength:1}),name:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),pge=He.compile(W9),jL=lyt,HL=He.compile(lyt),K9=I.Object({studio:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),hge=He.compile(K9),Y9=I.Object({studio:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:wo},{additionalProperties:!1}),mge=He.compile(Y9),Z9=I.Object({field:I.String({minLength:1,description:"Dot-separated path (e.g. 'studio', 'providers.ticketing.type', 'providers.spec.config.space')"}),state_file:wo},{additionalProperties:!1}),gge=He.compile(Z9),J9=I.Object({field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must validate against the field's declared shape in settings.schema.json. Pass null to delete."}),state_file:wo},{additionalProperties:!1}),yge=He.compile(J9),X9=I.Object({studio:I.Optional(I.String({description:"Optional: filter to a specific studio"})),state_file:wo},{additionalProperties:!1}),Sge=He.compile(X9),Q9=I.Object({task:I.String({minLength:1,description:"The work to run through the stage's hat loop."}),studio:I.Optional(I.String({description:"Studio slug (e.g. `software`). Defaults to `software` when omitted and present."})),stage:I.Optional(I.String({description:"Stage within the studio (e.g. `development`). Defaults to the studio's build-class execution stage when omitted."})),state_file:wo},{additionalProperties:!1}),bge=He.compile(Q9),$9=I.Object({intent:I.Optional(I.String({description:"Optional: intent slug for context"})),state_file:wo},{additionalProperties:!1}),Ege=He.compile($9),eY=I.Object({intent:I.Optional(I.String({description:"Optional intent slug. Defaults to the sole active intent."})),stage:I.Optional(I.String({description:"Optional stage name. Defaults to the intent's active_stage."})),gate_kind:I.Optional(I.String({enum:["spec","approval"],description:"When set, opens the review pane as a workflow-bound gate session (vs. ad-hoc). 'spec' = pre-execute spec review (stamps reviews.user). 'approval' = post-execute output approval (stamps approvals.user)."})),units:I.Optional(I.Array(I.String(),{description:"Unit identifiers the user is gating. Surfaced by the cursor's user_gate action; ignored when gate_kind is unset."})),state_file:wo},{additionalProperties:!1}),_ge=He.compile(eY),tY=I.Object({action:I.Optional(I.String({enum:["list","add","review","promote"],description:"Defaults to `list`."})),description:I.Optional(I.String({description:"Description for the new backlog item (used with action=add)."})),state_file:wo},{additionalProperties:!1}),Tge=He.compile(tY),nY=I.Object({action:I.Optional(I.String({enum:["list","plant","check"],description:"Defaults to `list`."})),state_file:wo},{additionalProperties:!1}),vge=He.compile(nY),rY=I.Object({version:I.Optional(I.String({description:"Optional: specific version to extract (e.g. '1.2.0')"})),state_file:wo},{additionalProperties:!1}),Rge=He.compile(rY),p0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name to reset (e.g. 'product')"})},{additionalProperties:!1}),Age=He.compile(p0),iY=I.Object({intent:I.Optional(I.String({description:"Specific intent slug to scan in cwd (skips multi-branch mode)"})),apply:I.Optional(I.Boolean()),skip_branches:I.Optional(I.Boolean()),state_file:wo},{additionalProperties:!1}),wge=He.compile(iY),sY=I.Object({intent:I.String({minLength:1,description:"Intent slug to scope the view session. The SPA will only serve files under this intent's directory."}),stage:I.Optional(I.String({description:"Optional stage name to narrow the artifact list. Defaults to the intent's active_stage when omitted."})),artifact:I.Optional(I.String({description:"Optional intent-relative path to deep-link the SPA to a single artifact file (e.g. `stages/design/artifacts/wireframe.svg`). When omitted the SPA lists every artifact in scope."})),mode:I.Optional(I.String({enum:["auto","viewer","boot"],description:"Mode preference. `auto` (default) tries boot first and falls back to viewer. `boot` forces a spawned dev server and hard-fails when no `command` is supplied and no fast-path is detected. `viewer` forces the SPA artifact-browser route."})),command:I.Optional(I.Array(I.String({minLength:1}),{minItems:1,description:'Single-process boot \u2014 explicit command argv (e.g. `["uvicorn", "app:main"]`, `["bin/dev"]`, `["go", "run", "./cmd/server"]`). Engine spawns with `PORT` + `HOST` env vars set so the dev server binds where the supervisor expects. Use this for one-process apps. For monorepos / stacks (api + frontend + db + worker), use `processes` instead.'})),cwd:I.Optional(I.String({description:"Working directory for `command`, relative to the intent dir. Defaults to the intent dir when omitted. Ignored when `processes` is supplied (each process declares its own cwd)."})),processes:I.Optional(I.Array(I.Object({name:I.String({minLength:1,pattern:"^[a-zA-Z][a-zA-Z0-9_-]*$",description:"Identifier for this process. Used to build service-discovery env vars (`_PORT`, `_URL`) injected into dependents, and as the `primary` selector. Lowercase letters / digits / `-` / `_`; must start with a letter."}),command:I.Array(I.String({minLength:1}),{minItems:1,description:'Argv for this process (e.g. `["npm", "run", "api"]`, `["redis-server"]`, `["docker", "compose", "up", "postgres"]`).'}),cwd:I.Optional(I.String({description:'Working directory for this process, relative to the intent dir. Defaults to the intent dir when omitted (e.g. `"backend"` for `packages/backend/` in a monorepo).'})),port_env:I.Optional(I.String({minLength:1,description:'Env-var name the engine assigns the allocated ephemeral port to. Defaults to `PORT`. Override when the process expects a different name (e.g. `"RAILS_PORT"`, `"API_PORT"`).'})),ready_url:I.Optional(I.String({description:'Optional HTTP URL the supervisor polls to confirm this process is ready before starting dependents (e.g. `"http://127.0.0.1:{port}/healthz"`). Use `{port}` as the placeholder for the allocated port. Falls back to TCP port-bind detection when omitted.'})),depends_on:I.Optional(I.Array(I.String({minLength:1}),{description:"Names of processes that must be ready before this one starts. The supervisor topologically sorts the graph and starts processes in dependency order. Each dependency's `_PORT` and `_URL` env vars are injected into this process's env so the runtime can do service discovery (e.g. an API depending on `db` sees `DB_PORT` + `DB_URL`)."})),no_port:I.Optional(I.Boolean({description:"Set true for processes that don't listen on a TCP port (queue workers, background daemons, schedulers). The supervisor still tracks lifecycle but skips port allocation and readiness checking."}))},{additionalProperties:!1}),{minItems:1,description:"Process group \u2014 boot multiple coordinated processes (api + frontend + db + worker etc.). The supervisor allocates an ephemeral port per process (unless `no_port`), starts them in dependency order, waits for each to be ready, and exposes `_PORT` + `_URL` env vars to every dependent. Killing the session kills the whole group. Mutually exclusive with `command`."})),primary:I.Optional(I.String({minLength:1,description:"Name of the process whose URL is returned as the top-level `url` field \u2014 i.e., the one Playwright drives. Required when `processes` has more than one port-bound entry. Ignored for single-process boots."})),state_file:wo},{additionalProperties:!1}),kge=He.compile(sY),oY=I.Object({session_id:I.String({minLength:1,description:"Session ID returned by `haiku_view`."}),state_file:wo},{additionalProperties:!1}),Ige=He.compile(oY)});var h0,xge,fyt=v(()=>{"use strict";Ao();Ia();h0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),kind:I.String({enum:["review","approval"],description:"Which witness to stamp: `review` (PRE-execute spec audit) or `approval` (POST-execute work audit). Matches the dispatch phase your subagent ran under."}),role:I.String({minLength:1,description:"Your review role (e.g. `continuity`, `cross-stage-consistency`, `completeness`, `spec`, or a studio review-agent name). Stamps `reviews.` / `approvals.`."}),stage:I.String({minLength:1,description:"Stage the review/approval belongs to."})},{additionalProperties:!1}),xge=He.compile(h0)});var m0,Oge,g0,Pge,y0,Nge,S0,Cge,pyt=v(()=>{"use strict";Ao();Ia();m0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Studio names to present in the picker. Empty/omitted = every available studio. Single element = auto-select without prompting."}))},{additionalProperties:!1}),Oge=He.compile(m0),g0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Mode names to present in the picker (continuous, discrete, autopilot, quick). Empty/omitted = every mode valid for the intent's current state. Single element = auto-select without prompting."}))},{additionalProperties:!1}),Pge=He.compile(g0),y0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),options:I.Optional(I.Array(I.String(),{description:"Stage name to auto-select (zero or one element \u2014 quick mode is single-stage by definition)."}))},{additionalProperties:!1}),Nge=He.compile(y0),S0=I.Object({intent:I.String({minLength:1,description:"Intent slug. Required."}),stage:I.String({minLength:1,description:"Name of the optional stage to drop. Must be the intent's active stage and not yet started."})},{additionalProperties:!1}),Cge=He.compile(S0)});var hyt,b0,Mge,E0,Dge,_0,Lge,aY,Uge,cY,Fge,T0,jge,myt=v(()=>{"use strict";Ao();Ia();hyt=I.Optional(I.String()),b0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),body:I.String({minLength:1,description:"Markdown body of the captured conversation. Should summarize what the agent proposed, what the user clarified, and the final agreement. Anchored on specific intent content."})},{additionalProperties:!1}),Mge=He.compile(b0),E0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the `elaborate_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded as the seal's rationale. Stored on FM as `verified_notes`."}))},{additionalProperties:!1}),Dge=He.compile(E0),_0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the `decompose_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded as the seal's rationale. Stored on FM as `decompose_verified_notes`."}))},{additionalProperties:!1}),Lge=He.compile(_0),aY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),state_file:hyt},{additionalProperties:!1}),Uge=He.compile(aY),cY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),field:I.String({minLength:1}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"New value. Must match the field's declared type."}),state_file:hyt},{additionalProperties:!1}),Fge=He.compile(cY),T0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),nonce:I.String({minLength:1,description:"Verifier nonce minted by the cursor when emitting the pre-intent `elaborate_review` action. Surfaced on the action payload as `verifier_nonce`. Single-use: consumed by the seal tool on success."}),notes:I.Optional(I.String({description:"Optional verifier notes recorded on intent FM as `verified_notes`."}))},{additionalProperties:!1}),jge=He.compile(T0)});var uY,Hge,lY,qge,dY,Bge,fY,zge,pY,Gge,hY,Vge,mY,Wge,gyt=v(()=>{"use strict";Ao();Ia();uY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),hat:I.String({minLength:1,description:"Hat name"}),fix:I.Optional(I.Boolean({description:"When true, resolve the fix-loop-scoped mandate (stages//fix-hats/.md, falling back to the production hats/.md when absent). Use ONLY from fix-loop dispatches; omit for production hat work."}))},{additionalProperties:!1}),Hge=He.compile(uY),lY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"})},{additionalProperties:!1}),qge=He.compile(lY),dY=I.Object({intent:I.String({minLength:1,description:"Intent slug"})},{additionalProperties:!1}),Bge=He.compile(dY),fY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.Optional(I.String({minLength:1,description:"Stage name for a stage-scope review/approval agent. OMIT for an intent-completion review agent (resolved from the studio's intent-review-agents/)."})),role:I.String({minLength:1,description:"Review-agent role name"})},{additionalProperties:!1}),zge=He.compile(fY),pY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),template:I.String({minLength:1,description:"Discovery template name (no .md extension)"})},{additionalProperties:!1}),Gge=He.compile(pY),hY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),phase:I.String({minLength:1,description:"Phase name (e.g. ELABORATION). Case-insensitive \u2014 resolved as phases/.md."})},{additionalProperties:!1}),Vge=He.compile(hY),mY=I.Object({studio:I.String({minLength:1,description:"Studio name"}),stage:I.String({minLength:1,description:"Stage name"}),name:I.String({minLength:1,description:"Output template name (no .md extension)"})},{additionalProperties:!1}),Wge=He.compile(mY)});var gY,Cb,yY,Kge,SY,Yge,bY,Zge,Jge,EY,Xge,_Y,Qge,TY,$ge,vY,eye,RY,tye,AY,nye,v0,rye,yyt=v(()=>{"use strict";Ao();Ia();gY={intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage name"}),unit:I.String({minLength:1,description:"Unit name (no .md extension). Convention: `unit-NNN-slug` (3-digit zero-pad, max 999). Legacy 2-digit names (`unit-01-foo`) still resolve via numeric-prefix matching \u2014 pass either width and the engine matches by `(number, slug)` parts."})},Cb=I.Optional(I.String()),yY=I.Object({...gY,field:I.String({minLength:1,description:"Frontmatter field name. Must be agent-authorable per UNIT_FRONTMATTER_SCHEMA."}),value:I.Unsafe({type:["string","array","number","boolean","null","object"],description:"The field's new value. MUST match the field's declared type in UNIT_FRONTMATTER_SCHEMA \u2014 pass an array for array-typed fields, a string for string-typed, etc. Native types only; stringified JSON is rejected."}),state_file:Cb},{additionalProperties:!1}),Kge=He.compile(yY),SY=I.Object({...gY,field:I.String({minLength:1,description:"Frontmatter field to read. Agent-authorable/corrective fields only (quality_gates, outputs, inputs, depends_on, model, closes, title, description). FSM-driven fields (iterations, reviews, approvals, started_at) return `unit_field_engine_only`."})},{additionalProperties:!1}),Yge=He.compile(SY),bY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),state_file:Cb},{additionalProperties:!1}),Zge=He.compile(bY),Jge=I.Optional(I.String({description:"Stage the unit lives on. OPTIONAL \u2014 when omitted, the handler resolves it from on-disk layout. Pass it through from the cursor's dispatched action to make this call race-safe against concurrent run_next calls that may switch the working tree."})),EY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Jge,state_file:Cb},{additionalProperties:!1}),Xge=He.compile(EY),_Y=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Jge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton you pass to the next hat. State what you did, what you concluded, and what the next hat needs to know to pick up cleanly (decisions made, open questions, where you left off). Recorded on this iteration and embedded in the next hat's dispatch. Not a status line \u2014 write it for the hat that reads it next."}),state_file:Cb},{additionalProperties:!1}),Qge=He.compile(_Y),TY=I.Object({intent:I.String({minLength:1}),unit:I.String({minLength:1}),stage:Jge,message:I.String({minLength:1,description:"REQUIRED handoff message \u2014 the baton back to the hat that gets re-run. Explain why the current hat's output was rejected AND what must change to pass (e.g. 'touch targets <44px on mobile \u2014 bump to 44px min and re-check the nav row'). Recorded on this iteration and embedded in the re-dispatched hat's instruction."}),state_file:Cb},{additionalProperties:!1}),$ge=He.compile(TY),vY=I.Object({...gY,state_file:Cb},{additionalProperties:!1}),eye=He.compile(vY),RY=I.Object({...gY,state_file:Cb},{additionalProperties:!1}),tye=He.compile(RY),AY=I.Object({intent:I.String({minLength:1}),stage:I.String({minLength:1}),unit:I.String({minLength:1,description:"Unit name without `.md` extension, e.g. `unit-001-foo`. Convention: `unit-NNN-slug` with 3-digit zero-padded number (max 999). Legacy 2-digit names (`unit-01-foo`) still resolve via numeric-prefix matching."}),body:I.String({description:"Full markdown body of the unit. Must be substantive (no placeholders like TBD, TODO, '...')."}),frontmatter:I.Optional(I.Object({},{additionalProperties:!0})),state_file:Cb},{additionalProperties:!1}),nye=He.compile(AY),v0=I.Object({intent:I.String({minLength:1,description:"Intent slug"}),stage:I.String({minLength:1,description:"Stage the unit lives in"}),unit:I.String({minLength:1,description:"Unit to reset (e.g. 'unit-06-pii-masking-granularity')"})},{additionalProperties:!1}),rye=He.compile(v0)});var iye,S4n,wY,b4n,qL,R0,E4n,XT,QT,kY,sye=v(()=>{"use strict";Ao();Ia();Gme();iye=["plugin_version","started_at","approvals","sealed_at","mode","stages","archived","archived_at","draft_pr_url","draft_pr_status","draft_pr_ready_at","verified_at","verified_notes"],S4n=["draft","ready","failed"],wY=["continuous","discrete","autopilot","discrete-hybrid","quick"],b4n=I.Record(I.String(),I.Union([zme,I.Null()])),qL=I.Object({title:I.Optional(I.String({minLength:1})),description:I.Optional(I.String()),mode:I.Optional(I.String({enum:[...wY]})),studio:I.Optional(I.String()),studio_candidates:I.Optional(I.Array(I.String())),follows:I.Optional(I.String()),clarifications:I.Optional(I.Record(I.String(),I.Unknown())),draft_pr_url:I.Optional(I.String()),draft_pr_status:I.Optional(I.String({enum:[...S4n]})),draft_pr_ready_at:I.Optional(I.String()),verified_at:I.Optional(I.String()),verified_notes:I.Optional(I.String()),external_refs:I.Optional(I.Record(I.String(),I.String()))},{propertyNames:{not:{enum:[...iye]}},additionalProperties:!0}),R0=He.compile(qL),E4n=new Set(iye),XT=Object.keys(qL.properties??{}).filter(e=>!E4n.has(e)),QT=iye,kY=["studio","plugin_version","follows"]});var _4n,Syt=v(()=>{"use strict";Ao();_4n=I.Object({hat:I.String({minLength:1,description:"Hat name (e.g. `researcher`, `distiller`, `verifier`, `feedback-assessor`). Must match a hat declared in the studio's stage hat sequence (or `fix_hats:` for feedback iterations)."}),started_at:I.String({description:"ISO 8601 timestamp when this hat dispatch began. Set when the iteration is appended."}),completed_at:I.Union([I.String(),I.Null()],{description:"ISO 8601 timestamp when this hat's terminal advance/reject landed. Null while the hat is in flight."}),result:I.Union([I.Literal("advance"),I.Literal("reject"),I.Null()],{description:"Outcome of this hat. `advance` = move to next hat (or close on terminal hat). `reject` = loop back to previous hat. Null while in flight."}),reason:I.Optional(I.Union([I.String(),I.Null()],{description:"Optional reason for the result. Required on `reject` (caller must explain what went wrong) and optional on `advance`."}))},{additionalProperties:!1})});var oye,aye,byt=v(()=>{"use strict";Ao();oye=I.Object({error:I.String({description:"Stable named error code."}),message:I.String({description:"Human-readable remediation guidance."})},{additionalProperties:!0}),aye=I.Object({ok:I.Literal(!0),message:I.String()},{additionalProperties:!0})});var IY,cye,Eyt=v(()=>{"use strict";Ao();IY=I.Object({stage:I.Optional(I.String()),status:I.Optional(I.String({enum:["pending","active","completed","blocked"]})),phase:I.Optional(I.String({enum:["","elaborate","execute","review","gate"]})),started_at:I.Optional(I.Union([I.String(),I.Null()])),completed_at:I.Optional(I.Union([I.String(),I.Null()])),gate_entered_at:I.Optional(I.Union([I.String(),I.Null()])),gate_outcome:I.Optional(I.Union([I.String(),I.Null()])),visits:I.Optional(I.Integer({minimum:0})),iterations:I.Optional(I.Array(I.Unknown())),elaboration_turns:I.Optional(I.Integer({minimum:0})),decision_log:I.Optional(I.Array(I.Unknown()))},{additionalProperties:!0}),cye=Object.keys(IY.properties??{})});var Tyt,_yt,$T,Ng,Mb,Jf,vyt=v(()=>{"use strict";Ao();Ia();Tyt=["started_at","iterations","reviews","approvals","quality_gates_env_blocked"],_yt="^[^\\s:,]+(?:/[^\\s:,]+)*$",$T=I.Object({title:I.Optional(I.String({minLength:1,description:"Unit title \u2014 non-empty string. Defaults to first H1 in the body, or to the unit name."})),description:I.Optional(I.String({description:"Optional unit description."})),depends_on:I.Optional(I.Array(I.String(),{description:"Names of sibling units in the SAME stage that must complete before this one. Each entry must resolve to an actual sibling. No self-reference. No cycles. (Cross-sibling and cycle checks are runtime \u2014 they need the full stage DAG, not expressible in this schema.)"})),inputs:I.Optional(I.Array(I.String({pattern:_yt}),{description:"Cross-stage inputs this unit reads \u2014 paths to artifacts produced by prior stages. Each entry MUST be a file/dir path (no whitespace, no colons or commas, no prose)."})),outputs:I.Optional(I.Array(I.String({pattern:_yt}),{description:"Artifacts this unit produces. Each entry MUST be a real file path (no whitespace, no colons or commas, no prose) \u2014 the gate verifies the path exists on disk at unit completion. Use `inputs:` if you mean to declare what the unit READS; use the body's `## Completion Criteria` section if you mean to declare prose-style success conditions."})),quality_gates:I.Optional(I.Array(I.Object({name:I.String(),command:I.String(),dir:I.Optional(I.String())}),{description:"Build-class only: list of `{name, command, dir?}` executable gate objects. Run at terminal advance_hat time; non-zero exit blocks. Prose strings are silently skipped \u2014 they give no enforcement."})),model:I.Optional(I.String({enum:["haiku","sonnet","opus"],description:"Subagent tier for this unit's hats. `haiku` = mechanical, `sonnet` = standard (default), `opus` = deep reasoning. Cascade: unit > hat > stage > studio."})),closes:I.Optional(I.Array(I.String(),{description:"On revisit iterations, list of FB IDs this unit addresses (e.g. `[FB-01, FB-03]`). Informational \u2014 feedback closure happens via the FB's own iterations + targets.invalidates, not via this field."})),applicable_skills:I.Optional(I.Array(I.String(),{description:"Skill slugs (slash-command names without the leading `/`) identified as relevant for this unit during elaboration. The elaborator populates this from the installed skill registry. Hat subagent prompts surface these automatically so subagents know which skills to reach for."})),external_refs:I.Optional(I.Record(I.String(),I.String(),{description:"External-system references for this unit (e.g. `ticket: PROJ-123`, `design_ref: figma://...`). Populated by the agent when a workflow or source provider is active. Engine doesn't interpret values \u2014 they're the durable handle between H\xB7AI\xB7K\xB7U and the external system. (2026-05-19, provider-injection wave.)"}))},{propertyNames:{not:{enum:[...Tyt]}},additionalProperties:!0}),Ng=He.compile($T),Mb=Object.keys($T.properties??{}),Jf=Tyt});var ji=v(()=>{"use strict";Gme();iyt();syt();oyt();ayt();cyt();uyt();dyt();fyt();pyt();myt();gyt();yyt();sye();Syt();byt();Eyt();vyt()});var wyt={};Ar(wyt,{DIR_INVENTORY_SKIP:()=>PY,bodyMatchesStoredHash:()=>BL,bodySha256:()=>Cg,buildApprovalRecord:()=>Bd,buildOutputWitnesses:()=>R4n,buildReviewRecord:()=>Cl,fileSha256:()=>A0,isTextBodyExtension:()=>OY,normalizeInputPath:()=>zL,outputSha256:()=>Db,resolveInputWitnesses:()=>NY});import{createHash as xY}from"node:crypto";import{existsSync as ev,readdirSync as T4n,readFileSync as uye,statSync as Ryt}from"node:fs";import{join as tv}from"node:path";function Cg(e){if(!ev(e))return"";let t=uye(e,"utf8"),n=t;try{n=(0,lye.default)(t).content}catch{n=t}return n.endsWith(` `)||(n=`${n} -`),kY("sha256").update(n,"utf8").digest("hex")}function A0(e){if(!ev(e))return"";let t=cye(e);return kY("sha256").update(t).digest("hex")}function qL(e,t){if(!ev(e))return!0;let n=Cg(e);if(n&&n===t)return!0;let r=cye(e,"utf8"),i=r;try{i=(0,uye.default)(r).content}catch{i=r}if(kY("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` -`)?i.slice(0,-1):i;return o===i?!1:kY("sha256").update(o,"utf8").digest("hex")===t}function Db(e){return ev(e)?IY(e)?Cg(e):A0(e):""}function IY(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return v4n.has(t)}function R4n(e,t,n){let r={},i=n??Ryt(e);for(let s of t){let o=s.startsWith("stages/")?tv(e,s):tv(i,s),a=Db(o);a&&(r[s]=a)}return r}function Ryt(e){return tv(e,"..","..","..")}function BL(e,t){let n=t.split("/").filter(Boolean).pop()??"";if(!n)return e;let r=`.haiku/intents/${n}/`;if(e.startsWith(r))return e.slice(r.length);let i=`${t}/`;return e.startsWith(i)?e.slice(i.length):e}function A4n(e){let t={},n=[];try{n=T4n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||xY.has(r))continue;let i=tv(e,r);try{if(!vyt(i).isFile())continue}catch{continue}let s=A0(i);s&&(t[r]=s)}return t}function OY(e){let t=e.repoRoot??Ryt(e.intentDir),n={files:{},dirs:{}},r=tv(e.intentDir,"intent.md");if(ev(r)){let i=Cg(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=BL(i,e.intentDir);if(s==="intent.md")continue;let o=tv(e.intentDir,s),a=ev(o)?o:tv(t,s);if(!ev(a))continue;let c=!1;try{c=vyt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=A4n(a);else{let u=Db(a);u&&(n.files[s]=u)}}return n}function Cl(e,t){let n={at:new Date().toISOString(),body_sha256:Cg(e)};return t?{...n,input_witnesses:OY({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function Bd(e,t){return{at:new Date().toISOString()}}var uye,v4n,xY,Xf=v(()=>{"use strict";uye=Re(Kt(),1);v4n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);xY=new Set([".DS_Store","Thumbs.db",".git",".gitignore","action-log.jsonl","drift-markers.json","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json"])});import{existsSync as nv,readdirSync as wyt,readFileSync as lye}from"node:fs";import{join as Gh}from"node:path";function w4n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function dye(e,t){return`${e}:${t}`}function k4n(e){let t=new Map;for(let n of e){let r=dye(n.kind,n.file),i=t.get(r);i?(i.slots.push({unit:n.unit,role:n.role}),n.since0||typeof a.status=="string"&&a.status==="closed"||typeof a.closed_by=="string"&&a.closed_by.startsWith("fix-loop:"))continue;let u=a.source_ref;if(typeof u!="string"||u.length===0)continue;let l=u.match(/^drift:([^:]+):([\s\S]+)$/);if(!l)continue;let d=l[1]??"",f=l[2]??"",p=f.match(/^(.*):([0-9a-f]{64})$/);p?.[1]&&(f=p[1]),t.add(dye(d,f))}return t}function x4n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Cg(e):Db(e)}function O4n(e,t,n){let r=Gh(t,e);if(nv(r))return r;let i=Gh(n,e);if(nv(i))return i;let s=t.split("/").filter(Boolean).pop()??"";if(s){let o=`.haiku/intents/${s}/`;if(e.startsWith(o)){let a=e.slice(o.length),c=Gh(t,a);if(nv(c))return c}}return null}function P4n(e){let t=Gh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!nv(t))return;let n=lye(t,"utf8"),i=(0,PY.default)(n).data;if(e.kind==="spec"){let p={...i.reviews??{}},h=!1;for(let[m,g]of Object.entries(p)){if(!g||typeof g!="object"||Array.isArray(g))continue;let y=g;typeof y.at=="string"&&y.body_sha256!==e.currentSha&&(p[m]={...y,body_sha256:e.currentSha},h=!0)}h&&Me(t,"reviews",p);return}let s=i.reviews??{},o=s[e.role];if(!o||typeof o!="object"||Array.isArray(o))return;let a=Array.isArray(i.inputs)?i.inputs:[],c=Cl(t,{intentDir:e.intentDir,unitInputs:a}),l={...o,body_sha256:c.body_sha256,input_witnesses:c.input_witnesses},d={...s,[e.role]:l};Me(t,"reviews",d)}function N4n(e){let t=Gh(e.intentDir,"intent.md");if(!nv(t))return;let n=lye(t,"utf8"),s=(0,PY.default)(n).data.approvals??{},o=s[e.role];if(!o||typeof o!="object"||Array.isArray(o))return;let a=o;if(a.body_sha256===e.currentSha)return;let c={...a,body_sha256:e.currentSha},u={...s,[e.role]:c};Me(t,"approvals",u)}function C4n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` +`),xY("sha256").update(n,"utf8").digest("hex")}function A0(e){if(!ev(e))return"";let t=uye(e);return xY("sha256").update(t).digest("hex")}function BL(e,t){if(!ev(e))return!0;let n=Cg(e);if(n&&n===t)return!0;let r=uye(e,"utf8"),i=r;try{i=(0,lye.default)(r).content}catch{i=r}if(xY("sha256").update(i,"utf8").digest("hex")===t)return!0;let o=i.endsWith(` +`)?i.slice(0,-1):i;return o===i?!1:xY("sha256").update(o,"utf8").digest("hex")===t}function Db(e){return ev(e)?OY(e)?Cg(e):A0(e):""}function OY(e){let t=e.slice(e.lastIndexOf(".")).toLowerCase();return v4n.has(t)}function R4n(e,t,n){let r={},i=n??Ayt(e);for(let s of t){let o=s.startsWith("stages/")?tv(e,s):tv(i,s),a=Db(o);a&&(r[s]=a)}return r}function Ayt(e){return tv(e,"..","..","..")}function zL(e,t){let n=t.split("/").filter(Boolean).pop()??"";if(!n)return e;let r=`.haiku/intents/${n}/`;if(e.startsWith(r))return e.slice(r.length);let i=`${t}/`;return e.startsWith(i)?e.slice(i.length):e}function A4n(e){let t={},n=[];try{n=T4n(e)}catch{return t}for(let r of n){if(r.startsWith(".")||PY.has(r))continue;let i=tv(e,r);try{if(!Ryt(i).isFile())continue}catch{continue}let s=A0(i);s&&(t[r]=s)}return t}function NY(e){let t=e.repoRoot??Ayt(e.intentDir),n={files:{},dirs:{}},r=tv(e.intentDir,"intent.md");if(ev(r)){let i=Cg(r);i&&(n.files["intent.md"]=i)}for(let i of e.unitInputs){if(i==="intent.md")continue;let s=zL(i,e.intentDir);if(s==="intent.md")continue;let o=tv(e.intentDir,s),a=ev(o)?o:tv(t,s);if(!ev(a))continue;let c=!1;try{c=Ryt(a).isDirectory()}catch{continue}if(c)n.dirs[s]=A4n(a);else{let u=Db(a);u&&(n.files[s]=u)}}return n}function Cl(e,t){let n={at:new Date().toISOString(),body_sha256:Cg(e)};return t?{...n,input_witnesses:NY({intentDir:t.intentDir,repoRoot:t.repoRoot,unitInputs:t.unitInputs})}:n}function Bd(e,t){return{at:new Date().toISOString()}}var lye,v4n,PY,Xf=v(()=>{"use strict";lye=Re(Kt(),1);v4n=new Set([".md",".markdown",".mdx",".txt",".rst",".adoc"]);PY=new Set([".DS_Store","Thumbs.db",".git",".gitignore","action-log.jsonl","drift-markers.json","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json"])});import{existsSync as nv,readdirSync as kyt,readFileSync as dye}from"node:fs";import{join as Gh}from"node:path";function w4n(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function fye(e,t){return`${e}:${t}`}function k4n(e){let t=new Map;for(let n of e){let r=fye(n.kind,n.file),i=t.get(r);i?(i.slots.push({unit:n.unit,role:n.role}),n.since0||typeof a.status=="string"&&a.status==="closed"||typeof a.closed_by=="string"&&a.closed_by.startsWith("fix-loop:"))continue;let u=a.source_ref;if(typeof u!="string"||u.length===0)continue;let l=u.match(/^drift:([^:]+):([\s\S]+)$/);if(!l)continue;let d=l[1]??"",f=l[2]??"",p=f.match(/^(.*):([0-9a-f]{64})$/);p?.[1]&&(f=p[1]),t.add(fye(d,f))}return t}function x4n(e,t){let n=t.slice(t.lastIndexOf(".")).toLowerCase();return n===".md"||n===".markdown"||n===".mdx"?Cg(e):Db(e)}function O4n(e,t,n){let r=Gh(t,e);if(nv(r))return r;let i=Gh(n,e);if(nv(i))return i;let s=t.split("/").filter(Boolean).pop()??"";if(s){let o=`.haiku/intents/${s}/`;if(e.startsWith(o)){let a=e.slice(o.length),c=Gh(t,a);if(nv(c))return c}}return null}function P4n(e){let t=Gh(e.intentDir,"stages",e.stage,"units",`${e.unit}.md`);if(!nv(t))return;let n=dye(t,"utf8"),i=(0,CY.default)(n).data;if(e.kind==="spec"){let p={...i.reviews??{}},h=!1;for(let[m,g]of Object.entries(p)){if(!g||typeof g!="object"||Array.isArray(g))continue;let y=g;typeof y.at=="string"&&y.body_sha256!==e.currentSha&&(p[m]={...y,body_sha256:e.currentSha},h=!0)}h&&Me(t,"reviews",p);return}let s=i.reviews??{},o=s[e.role];if(!o||typeof o!="object"||Array.isArray(o))return;let a=Array.isArray(i.inputs)?i.inputs:[],c=Cl(t,{intentDir:e.intentDir,unitInputs:a}),l={...o,body_sha256:c.body_sha256,input_witnesses:c.input_witnesses},d={...s,[e.role]:l};Me(t,"reviews",d)}function N4n(e){let t=Gh(e.intentDir,"intent.md");if(!nv(t))return;let n=dye(t,"utf8"),s=(0,CY.default)(n).data.approvals??{},o=s[e.role];if(!o||typeof o!="object"||Array.isArray(o))return;let a=o;if(a.body_sha256===e.currentSha)return;let c={...a,body_sha256:e.currentSha},u={...s,[e.role]:c};Me(t,"approvals",u)}function C4n(e){let t=e.group.slots.map(s=>`- \`${s.unit}\` / role \`${s.role}\``).join(` `),n=e.group.kind==="input_deletion"||e.currentSha===null?`**File**: \`${e.group.file}\` (no longer present on disk)`:`**File**: \`${e.group.file}\``,r=e.currentSha?`**Current SHA**: \`${e.currentSha}\``:"",i=`**Witnessed at**: ${e.group.since}`;return`_Engine-authored drift FB. The premise that ${e.group.slots.length} signed slot(s) depended on has shifted. Read the file at the path below and classify._ ${n} @@ -652,47 +652,47 @@ Read the file body and the slots' specs, decide cosmetic vs material, and **reco - **Cosmetic** \u2014 the premise shifted but the consumers' reasoning is unaffected (e.g., whitespace, comments, doc reword that doesn't change the contract). Put WHY it's cosmetic in your advance \`message\`, then advance the hat. Closure is a no-op; the witnesses are already current. - **Material** \u2014 the shift invalidates one or more consumers' signoff. Put WHICH consumers and WHY in your advance \`message\`, AND call \`haiku_feedback_set_targets\` with \`invalidates: [, ...]\` listing the roles whose signature can no longer stand. \`set_targets\` is the invalidation MECHANISM only \u2014 your reasoning lives in the handoff \`message\`. The close hook deletes those slots; the next tick re-dispatches them to re-sign against the new premise. -This FB will NOT be re-emitted by the next drift sweep \u2014 the witness restamp at file time made the SHA mismatch impossible to detect twice.`}function Iyt(e){let t=e.repoRoot??Gh(e.intentDir,"..","..",".."),n={groups_total:0,fbs_filed:0,fbs_dedup_skipped:0,fbs_cascade_skipped:0,slots_restamped:0,cascade_alarm_tripped:!1};if(e.events.length===0)return n;let r=k4n(e.events);n.groups_total=r.length;let i=I4n(e.intentDir),s=i.size>=kyt;s&&(n.cascade_alarm_tripped=!0,console.error(`[haiku] drift cascade alarm tripped for ${e.slug}/${e.stage}: ${i.size} open drift FBs \u2265 threshold ${kyt}. Suppressing new drift FBs this tick. Consider running /haiku:haiku-repair if this pattern repeats \u2014 the witness baseline may be stale.`));for(let o of r){let a=O4n(o.file,e.intentDir,t),c=a?x4n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(N4n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}P4n({intentDir:e.intentDir,stage:e.stage,unit:m.unit,role:m.role,file:o.file,currentSha:c,kind:o.kind}),n.slots_restamped++}if(s){n.fbs_cascade_skipped++;continue}if((o.kind==="input_mutation"||o.kind==="input_deletion")&&!w4n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=dye(o.kind,o.file);if(i.has(l)){n.fbs_dedup_skipped++;continue}let f=o.slots.every(m=>m.unit==="(intent)")?"":e.stage,p=(()=>{let m=o.file.split("/").pop()??o.file;return`${o.kind} drift on ${m}`})(),h=`drift:${o.kind}:${o.file}${c?`:${c}`:""}`;try{Qo(e.slug,f,{title:p,body:C4n({group:o,currentSha:c||null}),origin:"drift",severity:"high",author:"engine",authorType:"system",source_ref:h,triaged_at:new Date().toISOString(),targetInvalidates:[],targetUnit:null}),n.fbs_filed++,i.add(l)}catch{}}return n}var PY,kyt,xyt=v(()=>{"use strict";PY=Re(Kt(),1);Ge();Xf();kyt=(()=>{let e=process.env.HAIKU_DRIFT_CASCADE_THRESHOLD;if(!e)return 10;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:10})()});function zL(e,t={}){let n=`haiku/${e}/main`;if(!ve())return{applicable:!1,defaultBranch:"",intentMain:n,merged:!0};let r=Zo();if(!r||!Pt(n))return{applicable:!1,defaultBranch:r,intentMain:n,merged:!0};let i=t.localOnly?Uu(n,r)||Uu(n,`origin/${r}`):Zc(n,r);return{applicable:!0,defaultBranch:r,intentMain:n,merged:i}}function Oyt(e,t={}){let n=zL(e,t);return n.applicable&&!n.merged}var NY=v(()=>{"use strict";yr();bb()});import{closeSync as M4n,createReadStream as efi,existsSync as CY,fsyncSync as tfi,mkdirSync as nfi,openSync as D4n,readdirSync as Pyt,readFileSync as Nyt,readSync as L4n,statSync as U4n,unlinkSync as rfi,writeFileSync as ifi,writeSync as sfi}from"node:fs";import{dirname as afi,join as Mg,relative as cfi}from"node:path";function rv(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function Myt(e){try{if(U4n(e).size<12)return null;let n=Buffer.alloc(16),r=D4n(e,"r");try{L4n(r,n,0,16,0)}finally{M4n(r)}for(let{kind:i,prefix:s}of B4n)if(s.every((o,a)=>n[a]===o))return i;if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&n[8]===87&&n[9]===69&&n[10]===66&&n[11]===80)return"webp";if(n[4]===102&&n[5]===116&&n[6]===121&&n[7]===112){let i=n.subarray(8,12).toString("ascii");if(i==="avif"||i==="avis"||i==="mif1"||i==="msf1")return"avif"}return null}catch{return null}}function z4n(e,t){return Mg(e,"stages",t,"baseline-content")}function Dyt(e,t,n){return Mg(z4n(e,t),n)}function G4n(e){return Mg(e,"baseline-content")}function Lyt(e,t){return Mg(G4n(e),t)}function Lb(e,t){let n=Mg(e,"stages");if(!CY(n))return 0;let r=i=>{if(!CY(i))return null;try{let o=JSON.parse(Nyt(i,"utf-8")).iteration;return typeof o=="number"?o:null}catch{return null}};if(t!==void 0)return r(Mg(n,t,"state.json"))??0;try{let i=Pyt(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name);for(let s of i){let o=r(Mg(n,s,"state.json"));if(o!==null)return o}}catch{}return 0}function MY(e){let t=Mg(e,"settings.yml");if(!CY(t))return!1;try{let n=Nyt(t,"utf-8"),{data:r}=(0,Cyt.default)(`--- +This FB will NOT be re-emitted by the next drift sweep \u2014 the witness restamp at file time made the SHA mismatch impossible to detect twice.`}function xyt(e){let t=e.repoRoot??Gh(e.intentDir,"..","..",".."),n={groups_total:0,fbs_filed:0,fbs_dedup_skipped:0,fbs_cascade_skipped:0,slots_restamped:0,cascade_alarm_tripped:!1};if(e.events.length===0)return n;let r=k4n(e.events);n.groups_total=r.length;let i=I4n(e.intentDir),s=i.size>=Iyt;s&&(n.cascade_alarm_tripped=!0,console.error(`[haiku] drift cascade alarm tripped for ${e.slug}/${e.stage}: ${i.size} open drift FBs \u2265 threshold ${Iyt}. Suppressing new drift FBs this tick. Consider running /haiku:haiku-repair if this pattern repeats \u2014 the witness baseline may be stale.`));for(let o of r){let a=O4n(o.file,e.intentDir,t),c=a?x4n(a,o.file):"";for(let m of o.slots){if(m.unit==="(intent)"){c&&(N4n({intentDir:e.intentDir,role:m.role,currentSha:c}),n.slots_restamped++);continue}P4n({intentDir:e.intentDir,stage:e.stage,unit:m.unit,role:m.role,file:o.file,currentSha:c,kind:o.kind}),n.slots_restamped++}if(s){n.fbs_cascade_skipped++;continue}if((o.kind==="input_mutation"||o.kind==="input_deletion")&&!w4n(o.file)){n.fbs_untracked_skipped=(n.fbs_untracked_skipped??0)+1;continue}let l=fye(o.kind,o.file);if(i.has(l)){n.fbs_dedup_skipped++;continue}let f=o.slots.every(m=>m.unit==="(intent)")?"":e.stage,p=(()=>{let m=o.file.split("/").pop()??o.file;return`${o.kind} drift on ${m}`})(),h=`drift:${o.kind}:${o.file}${c?`:${c}`:""}`;try{Qo(e.slug,f,{title:p,body:C4n({group:o,currentSha:c||null}),origin:"drift",severity:"high",author:"engine",authorType:"system",source_ref:h,triaged_at:new Date().toISOString(),targetInvalidates:[],targetUnit:null}),n.fbs_filed++,i.add(l)}catch{}}return n}var CY,Iyt,Oyt=v(()=>{"use strict";CY=Re(Kt(),1);Ge();Xf();Iyt=(()=>{let e=process.env.HAIKU_DRIFT_CASCADE_THRESHOLD;if(!e)return 10;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:10})()});function w0(e,t={}){let n=`haiku/${e}/main`;if(!ve())return{applicable:!1,defaultBranch:"",intentMain:n,merged:!0};let r=Zo();if(!r||!Pt(n))return{applicable:!1,defaultBranch:r,intentMain:n,merged:!0};let i=t.localOnly?Uu(n,r)||Uu(n,`origin/${r}`):Zc(n,r);return{applicable:!0,defaultBranch:r,intentMain:n,merged:i}}function GL(e,t={}){let n=w0(e,t);return n.applicable&&!n.merged}var VL=v(()=>{"use strict";yr();bb()});import{closeSync as M4n,createReadStream as efi,existsSync as MY,fsyncSync as tfi,mkdirSync as nfi,openSync as D4n,readdirSync as Pyt,readFileSync as Nyt,readSync as L4n,statSync as U4n,unlinkSync as rfi,writeFileSync as ifi,writeSync as sfi}from"node:fs";import{dirname as afi,join as Mg,relative as cfi}from"node:path";function rv(e){return e.replace(/^(stages\/[^/]+\/)outputs\//,"$1artifacts/")}function Myt(e){try{if(U4n(e).size<12)return null;let n=Buffer.alloc(16),r=D4n(e,"r");try{L4n(r,n,0,16,0)}finally{M4n(r)}for(let{kind:i,prefix:s}of B4n)if(s.every((o,a)=>n[a]===o))return i;if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&n[8]===87&&n[9]===69&&n[10]===66&&n[11]===80)return"webp";if(n[4]===102&&n[5]===116&&n[6]===121&&n[7]===112){let i=n.subarray(8,12).toString("ascii");if(i==="avif"||i==="avis"||i==="mif1"||i==="msf1")return"avif"}return null}catch{return null}}function z4n(e,t){return Mg(e,"stages",t,"baseline-content")}function Dyt(e,t,n){return Mg(z4n(e,t),n)}function G4n(e){return Mg(e,"baseline-content")}function Lyt(e,t){return Mg(G4n(e),t)}function Lb(e,t){let n=Mg(e,"stages");if(!MY(n))return 0;let r=i=>{if(!MY(i))return null;try{let o=JSON.parse(Nyt(i,"utf-8")).iteration;return typeof o=="number"?o:null}catch{return null}};if(t!==void 0)return r(Mg(n,t,"state.json"))??0;try{let i=Pyt(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name);for(let s of i){let o=r(Mg(n,s,"state.json"));if(o!==null)return o}}catch{}return 0}function DY(e){let t=Mg(e,"settings.yml");if(!MY(t))return!1;try{let n=Nyt(t,"utf-8"),{data:r}=(0,Cyt.default)(`--- ${n} --- -`);return r.drift_detection===!1}catch{return!1}}function Uyt(e){let t=Mg(e,"stages");if(!CY(t))return[];try{return Pyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Cyt,F4n,j4n,H4n,q4n,lfi,dfi,B4n,w0=v(()=>{"use strict";Cyt=Re(Kt(),1);_l();F4n=O.enum(["agent","human-via-mcp","human-implicit"]),j4n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),H4n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),q4n=O.object({path:O.string(),sha256:O.string().regex(/^[0-9a-f]{64}$/),bytes:O.number().int().nonnegative(),mtime_ns:O.number().int(),is_binary:O.boolean(),author_class:F4n,acknowledged_at:O.string(),acknowledged_via:j4n,stage:O.string().nullable(),tracking_class:H4n}),lfi=O.record(O.string(),q4n);dfi=64*1024,B4n=[{kind:"png",prefix:[137,80,78,71,13,10,26,10]},{kind:"jpeg",prefix:[255,216,255]},{kind:"gif",prefix:[71,73,70,56]}]});import{existsSync as Qf,readdirSync as Hyt,readFileSync as V4n,statSync as W4n}from"node:fs";import{basename as qyt,join as $o,relative as DY}from"node:path";function K4n(e){if(!Qf(e))return[];let t=[];try{t=Hyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!xY.has(r))try{W4n($o(e,r)).isFile()&&n.push(r)}catch{}return n}function Y4n(e){if(e===null||typeof e!="object")return null;let n=e.input_witnesses;if(!n||typeof n!="object"||Array.isArray(n))return null;let r=n,i=r.files,s=r.dirs,o={},a={};if(i&&typeof i=="object"&&!Array.isArray(i))for(let[c,u]of Object.entries(i))typeof u=="string"&&u.length===64&&(o[c]=u);if(s&&typeof s=="object"&&!Array.isArray(s))for(let[c,u]of Object.entries(s)){if(!u||typeof u!="object"||Array.isArray(u))continue;let l={};for(let[d,f]of Object.entries(u))typeof f=="string"&&f.length===64&&(l[d]=f);a[c]=l}return Object.keys(o).length===0&&Object.keys(a).length===0?null:{files:o,dirs:a}}function pye(e){if(!Qf(e))return null;try{let t=V4n(e,"utf8");return(0,Byt.default)(t).data}catch{return null}}function fye(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.at=="string"&&t.at.length>0?t.at:null}function Fyt(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.body_sha256=="string"&&t.body_sha256.length===64?t.body_sha256:null}function jyt(e,t){let n=Db(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=A0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function Z4n(e){let t=$o(e,"units");return Qf(t)?Hyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function J4n(e,t,n){return $o(e,"stages",t,"discovery",`${n}.md`)}function hye(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function X4n(e,t,n,r){let i=qyt(e),s=new Set;try{for(let o of no(t,n))o.location&&s.add(hye(o.location,i))}catch{}for(let o of r){let a=pye(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(hye(u,i))}return s}function Q4n(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function LY(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(MY(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=Z4n(o),c=X4n(e.intentDir,e.studio,e.stage,a),u=qyt(e.intentDir),l=p=>c.has(p)||c.has(hye(p,u));for(let p of a){let h=pye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let g=DY(e.intentDir,p),y=h.reviews??{};for(let[S,E]of Object.entries(y)){i++;let _=fye(E);if(!_)continue;let T=Fyt(E);T&&Qf(p)&&!qL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:g,since:_});let R=Y4n(E);if(R){for(let[A,x]of Object.entries(R.files)){let k=$o(e.intentDir,A),P=$o(t,A),N=null;if(Qf(k))N=k;else if(Qf(P))N=P;else{let L=BL(A,e.intentDir);if(L!==A){let G=$o(e.intentDir,L);Qf(G)&&(N=G)}}if(N===null){l(A)||r.push({unit:m,role:S,kind:"input_deletion",file:A,since:_});continue}(IY(N)?!qL(N,x):(()=>{let L=Db(N);return!!L&&L!==x})())&&!l(A)&&r.push({unit:m,role:S,kind:"input_mutation",file:A,since:_})}for(let[A,x]of Object.entries(R.dirs)){let k=$o(e.intentDir,A),P=$o(t,A),N=null;if(Qf(k))N=k;else if(Qf(P))N=P;else{let L=BL(A,e.intentDir),G=L!==A?$o(e.intentDir,L):"";G&&Qf(G)&&(N=G)}if(N===null){l(A)||r.push({unit:m,role:S,kind:"input_deletion",file:A,since:_});continue}let C=K4n(N);for(let[L,G]of Object.entries(x)){let W=$o(A,L),$=$o(N,L);if(!Qf($)){l(W)||r.push({unit:m,role:S,kind:"input_deletion",file:W,since:_});continue}let q=A0($);q&&q!==G&&!l(W)&&r.push({unit:m,role:S,kind:"input_mutation",file:W,since:_})}for(let L of C){let G=$o(A,L);x[L]===void 0&&!l(G)&&r.push({unit:m,role:S,kind:"input_addition",file:G,since:_})}}}}let b=h.discovery??{};for(let[S,E]of Object.entries(b)){i++;let _=fye(E);if(!_)continue;let T=E,R=J4n(e.intentDir,e.stage,S),A=typeof T.output_sha256=="string"?T.output_sha256:null;if(A){let P=jyt(R,A);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:DY(e.intentDir,R),since:_})}let x=Q4n(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let P=jyt(x,k);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:DY(t,x),since:_})}}}let d=$o(e.intentDir,"intent.md"),f=pye(d);if(f){let p=f.approvals??{},h=DY(e.intentDir,d);for(let[m,g]of Object.entries(p)){i++;let y=fye(g);if(!y)continue;let b=Fyt(g);b&&(qL(d,b)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:y}))}}return{events:r,scanned:i,skipped:s}}var Byt,mye=v(()=>{"use strict";Byt=Re(Kt(),1);Kn();w0();Xf()});var x0={};Ar(x0,{__testOnly:()=>aKn,computeElaborateSignals:()=>I0,derivePosition:()=>$f,findCurrentStage:()=>ai,intentReviewRoles:()=>HY,isBriefEnabled:()=>Wyt,isReflectionEnabled:()=>ov,isStageComplete:()=>k0,listUnitPaths:()=>av,nextHatForUnit:()=>sv,pendingApprovalSlots:()=>tKn,pendingReviewSlots:()=>eKn,readFm:()=>Qc,serializeElaborateSignals:()=>bye,stageOwesBrief:()=>Zyt,stageOwesObservations:()=>yye,stageRoleLists:()=>qY,unitName:()=>jY,walkFeedbackTrack:()=>Sye});import{existsSync as xa,readdirSync as GL,readFileSync as UY,writeFileSync as zyt}from"node:fs";import{basename as Vyt,join as zr}from"node:path";function $4n(e){let t=zr(e.intentDir,"intent.md");if(xa(t))try{let n=UY(t,"utf8"),r=(0,iv.default)(n),i=r.data,s="drift_cascade_alarm",o=e.stage,a=i[s],c=a&&typeof a=="object"&&!Array.isArray(a)?{...a}:{},u=c[o];e.tripped?u!==!0&&(c[o]=!0,i[s]=c,zyt(t,iv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,zyt(t,iv.default.stringify(r.content,i)))}catch{}}function ov(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=UY(t,"utf8"),i=(0,iv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function Wyt(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=UY(t,"utf8");return(0,iv.default)(n).data.brief!==!1}catch{return!0}}function Qc(e){if(!xa(e))return null;try{let t=UY(e,"utf8"),n=(0,iv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Kyt(e){if(e.closed_at&&(e.closed_at instanceof Date||typeof e.closed_at=="string"&&e.closed_at.length>0))return!0;let t=e.rejected_at;return!!(t&&(t instanceof Date||typeof t=="string"&&t.length>0)||typeof e.status=="string"&&(e.status==="closed"||e.status==="rejected")||typeof e.closed_by=="string"&&e.closed_by.startsWith("fix-loop:"))}function Ub(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function FY(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Yyt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function jY(e){return Vyt(e).replace(/\.md$/,"")}function av(e){let t=zr(e,"units");return xa(t)?GL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function Gyt(e){let t=zr(e,"feedback");return xa(t)?GL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function sv(e,t){if(t.length===0)return null;let n=Ub(e);if(n.length===0)return{hat:t[0],terminal:t.length===1};let r=n[n.length-1];if(r.result===null){let i=t.indexOf(r.hat);return i<0?null:{hat:r.hat,terminal:i===t.length-1}}if(r.result==="advance"||r.result==="advanced"){let i=t.indexOf(r.hat);if(i<0)return null;let s=i+1;return s>=t.length?null:{hat:t[s],terminal:s===t.length-1}}if(r.result==="reject"||r.result==="rejected"){let i=t.indexOf(r.hat);if(i<=0)return{hat:t[0],terminal:t.length===1,rejected:!0};let s=i-1;return{hat:t[s],terminal:s===t.length-1,rejected:!0}}return null}function eKn(e,t){let n=Yyt(e);return t.filter(r=>!n[r])}function tKn(e,t){let n=FY(e);return t.filter(r=>!n[r])}function nKn(e,t,n){let r=Object.keys(Tl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function rKn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function iKn(e,t){let n=FY(e);for(let r of t)if(!n[r])return!1;return!0}function sKn(e,t){if(iKn(e,t))return!0;let n=rKn(e),r=Ub(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function oKn(e,t,n,r){let i=zr(e,"stages",n,"units");if(!xa(i))return!1;let s=GL(i).filter(c=>c.endsWith(".md"));if(s.length===0||Es(t,n).length===0)return!1;let a=nKn(t,n,r);for(let c of s){let u=Qc(zr(i,c))?.data;if(!u||!sKn(u,a))return!1}return!0}function k0(e,t,n,r){return oKn(e,t,n,r)}function yye(e,t){return ov(e)?!xa(zr(e,"stages",t,"observations.md")):!1}function Zyt(e,t,n){return!(!Wyt(e)||xa(zr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??zr(Te(),"intents",e),i=zr(r,"intent.md"),s=Qc(i)?.data??{},o=wn(s,t);if(o.length===0)return null;let a=typeof s?.mode=="string"&&s.mode.length>0?s.mode:"continuous";for(let c of o)if(!k0(r,t,c,a))return c;return null}function Sye(e){let{intentDir:t,studio:n,currentStage:r,intent:i}=e,s=wn(i,n),o=s.indexOf(r),a=o>=0?s.slice(0,o+1):[],c=[],u=(b,S)=>{let E=Jyt(b,S,n);if(!E)return null;if(E.kind!=="start_feedback_hat")return E;let _=Qc(S)?.data,T=_?.severity??null,R=Array.isArray(_?.iterations)?_.iterations.length>0:!1,A=E.dispatches[0];return A&&c.push({...A,severity:T,inFlight:R}),null};for(let b of a){let S=Gyt(zr(t,"stages",b));for(let E of S){let _=u(b,E);if(_)return _}}let l=Gyt(t);for(let b of l){let S=u("",b);if(S)return S}if(c.length===0)return null;let d=new Set,f=[];for(let b of c)d.has(b.feedback_id)||(d.add(b.feedback_id),f.push(b));let p=[];for(let b of f){let S=Number.parseInt(b.feedback_id.replace(/^FB-/i,""),10),E=[];b.stage&&E.push(zr(t,"stages",b.stage,"feedback")),E.push(zr(t,"feedback"));let _=!0;for(let T of E){if(!xa(T))continue;let R=GL(T).filter(x=>{if(!x.endsWith(".md"))return!1;let k=/^(\d+)/.exec(x);return k!=null&&Number.parseInt(k[1],10)===S}),A=!1;for(let x of R){let k=Qc(zr(T,x))?.data;if(k&&Kyt(k)){A=!0;break}}if(A){_=!1;break}}_&&p.push(b)}if(p.length===0||!p.some(b=>b.inFlight||u0(b.severity)))return null;let g=[...p].sort((b,S)=>Xc(b.severity)-Xc(S.severity)).slice(0,cv),y=g[0];return{kind:"start_feedback_hat",dispatches:g.map(b=>({feedback_id:b.feedback_id,stage:b.stage,hat:b.hat,terminal:b.terminal})),stage:y?.stage??"",hat:y?.hat??"",feedback_ids:g.map(b=>b.feedback_id),terminal:y?.terminal??!1}}function Jyt(e,t,n){let r=Qc(t);if(!r)return null;let i=r.data;if(Kyt(i))return null;let s=Xyt(t);if(!s)return null;if(i.resolution==="question")return{kind:"feedback_question",stage:e,feedback_id:s,feedback_path:t};if(i.author_type==="agent"||i.author_type==="system"){let u=Ub(i),l=new Set;for(let d of u){let f=d.bolt;typeof f=="number"&&f>0&&l.add(f)}if(l.size>=Dg)return null;if(u.length>=2){let d=u[u.length-1],f=u[u.length-2],p=d.result==="reject"||d.result==="rejected",h=f.result==="reject"||f.result==="rejected";if(p&&h&&d.hat===f.hat)return null}}let a=e===""?jf(n):bg(n,e);if(a.length===0)return{kind:"user_gate",stage:e,gate_kind:"approval",units:[]};let c=sv(i,a);if(c===null){let u=Ub(i);if(u.length===0)return null;let l=u[u.length-1];return l.result===null?null:(l.result==="closed"||l.result==="advance")&&l.hat===a[a.length-1]?{kind:"close_feedback",stage:e,feedback_id:s}:null}return{kind:"start_feedback_hat",dispatches:[{feedback_id:s,stage:e,hat:c.hat,terminal:c.terminal}],stage:e,hat:c.hat,feedback_ids:[s],terminal:c.terminal}}function Xyt(e){let t=Vyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function Qyt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=zr(n,"stages",i),c=av(o).map(R=>({path:R,name:jY(R),fm:Qc(R)?.data??{}})).filter(R=>R.fm),u=Es(r,i),l=Tl(r,i),d=Object.keys(l).sort(),{reviewRoles:f,approvalRoles:p}=qY(r,i,s,d),h=I0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(R=>R.name),mode:s});if(h.length>0){if(nL(r,i)&&c.length===0&&!xa(zr(o,"elaboration.md"))){let R=wn(Qc(zr(n,"intent.md"))?.data??{},r);return{kind:"elaborate_loop",stage:i,signals_unmet:h,optional_offer:!0,dependents:Ype(r,i,R)}}return{kind:"elaborate_loop",stage:i,signals_unmet:h}}{let R=wn(Qc(zr(n,"intent.md"))?.data??{},r);if(!(R.length>0&&R[0]===i)){let x=c.filter(k=>!("inputs"in k.fm)).map(k=>k.name);if(x.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:x}}}{let R=[],A=null;for(let x of f){let k=c.filter(P=>P.fm.started_at!=null||Ub(P.fm).length>0?!1:!Yyt(P.fm)[x]).map(P=>P.name);if(k.length!==0){if(x==="user"){A=k;continue}if(gye.has(x)){if(R.length>0){let P=R[0];return{kind:"dispatch_review",stage:i,dispatches:R,role:P.role,units:P.units}}return{kind:"dispatch_review",stage:i,dispatches:[{role:x,units:k}],role:x,units:k}}R.push({role:x,units:k})}}if(R.length>0){let x=R[0];return{kind:"dispatch_review",stage:i,dispatches:R,role:x.role,units:x.units}}{let x=c.some(k=>!!k.fm.started_at||Ub(k.fm).length>0);if(Zyt(n,i,x))return{kind:"write_brief",stage:i}}if(A)return{kind:"user_gate",stage:i,gate_kind:"spec",units:A}}let m=new Set(c.filter(R=>{if(u.length===0)return!1;let A=Ub(R.fm);if(A.length===0)return!1;let x=A[A.length-1];return x.result==="advance"&&x.hat===u[u.length-1]}).map(R=>R.name)),g=c.filter(R=>R.fm.started_at!=null&&sv(R.fm,u)!==null),b=(g.length===0?c.filter(R=>R.fm.started_at!=null?!1:(Array.isArray(R.fm.depends_on)?R.fm.depends_on:[]).every(x=>m.has(x))):[]).slice(0,cv),S=wn(Qc(zr(n,"intent.md"))?.data??{},r),E=S.length>0&&S[0]===i;if(!E&&b.length>0){let R=b.filter(A=>!("inputs"in A.fm)).map(A=>A.name);if(R.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:R}}if(b.length>0)return{kind:"start_unit_hat",stage:i,hat:u[0],units:b.map(R=>R.name),terminal:u.length===1};let _=[],T=!1;for(let R of c){if(R.fm.started_at==null)continue;let A=sv(R.fm,u);if(A===null)continue;let x=Array.isArray(R.fm.iterations)?R.fm.iterations:[],k=x[x.length-1];if(k&&k.result===null&&typeof k.dispatched_at=="string"&&k.dispatched_at.length>0){T=!0;continue}_.push({unit:R.name,hat:A.hat,terminal:A.terminal})}if(_.length===0&&T&&g.length>0)return null;if(!E&&_.length>0){let R=new Set(_.map(x=>x.unit)),A=c.filter(x=>R.has(x.name)&&!("inputs"in x.fm)).map(x=>x.name);if(A.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:A}}if(_.length>0){let R=new Map;for(let N of _){let C=R.get(N.hat)??[];C.push(N.unit),R.set(N.hat,C)}let A=[...R.entries()].sort(([N],[C])=>u.indexOf(N)-u.indexOf(C)),[x,k]=A[0],P=u.indexOf(x);return{kind:"start_unit_hat",stage:i,hat:x,units:k,terminal:P===u.length-1}}{let R=c.filter(A=>(Array.isArray(A.fm.outputs)?A.fm.outputs:[]).length===0?!1:Ub(A.fm).length===0).map(A=>A.name);if(R.length>0)return{kind:"unit_outputs_empty_iterations",stage:i,units:R}}{let R=[];for(let A of p){let x=c.filter(k=>!FY(k.fm)[A]).map(k=>k.name);if(x.length!==0){if(A==="user"){if(R.length>0){let k=R[0];return{kind:"dispatch_approval",stage:i,dispatches:R,role:k.role,units:k.units}}return{kind:"user_gate",stage:i,gate_kind:"approval",units:x}}if(gye.has(A)){if(R.length>0){let k=R[0];return{kind:"dispatch_approval",stage:i,dispatches:R,role:k.role,units:k.units}}return A==="quality_gates"?{kind:"dispatch_quality_gates",stage:i,units:x}:{kind:"dispatch_approval",stage:i,dispatches:[{role:A,units:x}],role:A,units:x}}R.push({role:A,units:x})}}if(R.length>0){let A=R[0];return{kind:"dispatch_approval",stage:i,dispatches:R,role:A.role,units:A.units}}}if(ov(n)){let R=zr(o,"observations.md");if(!xa(R))return{kind:"record_observations",stage:i}}return{kind:"complete_stage",stage:i}}function $f(e){let{slug:t,intentDir:n,studio:r}=e,i=zr(n,"intent.md"),s=Qc(i),o=typeof s?.data.mode=="string"&&s.data.mode.length>0?s.data.mode:"continuous";if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0)return{track:"sealed",action:{kind:"sealed"}};if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let l=wn(s.data,r)[0]??"",d=l?zr(n,"stages",l):"",f=d&&xa(d)?av(d).length>0:!1;if(ai(t,r,n)===l&&!f)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let a=ai(t,r,n);if(a){let c=LY({intentDir:n,stage:a,studio:r});if(c.events.length>0){let u=Iyt({events:c.events,intentDir:n,stage:a,slug:t});s&&$4n({intentDir:n,stage:a,tripped:u.cascade_alarm_tripped})}}{let c=s?.data??{},u=Sye({intentDir:n,studio:r,intent:c,currentStage:a??wn(c,r).slice(-1)[0]??""});if(u)return{track:"feedback",action:u}}if(a){let c=Qyt({slug:t,intentDir:n,studio:r,stage:a,mode:o});return c!==null?{track:"intent",action:c}:{track:"noop",action:null}}if(s){let c=FY(s.data),u=Object.keys(gg(r)).sort(),l=HY(o,u),d=[],f=!1;for(let p of l)if(!c[p]){if(p==="user"){f=!0;continue}if(gye.has(p))return d.length>0?{track:"intent",action:{kind:"intent_review",role:d[0].role,dispatches:d}}:{track:"intent",action:{kind:"intent_review",role:p,dispatches:[{role:p}]}};d.push({role:p})}if(d.length>0)return{track:"intent",action:{kind:"intent_review",role:d[0].role,dispatches:d}};if(!c.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(f)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null){if(ov(n)){let h=zr(n,"reflection.md");if(!xa(h))return{track:"intent",action:{kind:"record_reflection"}}}let p=zL(t);return p.applicable&&!p.merged?{track:"intent",action:{kind:"pending_seal",default_branch:p.defaultBranch}}:{track:"intent",action:{kind:"seal_intent"}}}}return{track:"sealed",action:{kind:"sealed"}}}function HY(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function qY(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(Tl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!MT.has(l)),c=o?["spec",...a]:["spec",...a,"user"],u=o?["spec",...s,"quality_gates"]:["spec",...s,"quality_gates","user"];return{reviewRoles:c,approvalRoles:u}}function I0(e){let{slug:t,studio:n,stage:r,stageDir:i,unitNames:s,mode:o}=e,a=[],c=zr(i,"elaboration.md"),u=xa(c)?Qc(c)?.data??{}:null,l=o==="autopilot";!l&&u===null&&s.length===0&&a.push({signal:"conversation"}),!l&&u!==null&&(typeof u.verified_at=="string"&&u.verified_at||a.push({signal:"verify_conversation"}));let d=no(n,r).filter(f=>f.kind==="discovery").sort((f,p)=>f.name.localeCompare(p.name));for(let f of d){if(s.length===0&&!f.tool||!f.required)continue;if(!f.location){console.error(`[haiku] Studio configuration error: discovery template '${f.name}' in stage '${r}' is required but declares no 'location:' field. The gate is being skipped \u2014 fix the template.`);continue}let p=f.location.replace(/\{intent-slug\}/g,t),h=zr(process.cwd(),p);(p.endsWith("/")?xa(h)&&GL(h).filter(g=>g!==".gitkeep").length>0:xa(h))||a.push({signal:"discovery",agent:f.name,units:s.length>0?[s[0]]:[]})}return s.length===0&&a.push({signal:"decompose"}),!l&&s.length>0&&u!==null&&(typeof u.decompose_verified_at=="string"&&u.decompose_verified_at||a.push({signal:"verify_decompose"})),a}function bye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var iv,gye,aKn,Oa=v(()=>{"use strict";iv=Re(Kt(),1);ji();Ge();Kn();E3();ns();xyt();NY();mye();gye=new Set(["spec","quality_gates","user"]);aKn={walkIntentTrack:Qyt,walkFeedbackTrack:Sye,nextActionForFeedback:Jyt,parseFbIdFromFilename:Xyt}});var $yt,VL,Eye=v(()=>{"use strict";$yt=new Set(["STAGE.md","state.json","units","feedback","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","drift-assessments","iterations.jsonl","decisions.jsonl","no-decisions.json","upstream-reconciliation.json","gate-session.json"]),VL=new Set(["intent.md","stages","knowledge","feedback","reflection.md","intent-tick.json","action-log.jsonl","write-audit.jsonl","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","drift-markers.json","drift-assessments",".gitattributes",".gitkeep"])});function lKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*>[\\s\\S]*?<\\/${n}\\s*>`,"gi"),i=e.replace(r,""),s=new RegExp(`<${n}\\b[^>]*>`,"gi");i=i.replace(s,"");let o=new RegExp(`<\\/${n}\\s*>`,"gi");return i=i.replace(o,""),i}function dKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function fKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function pKn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function hKn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>tSt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function mKn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>tSt.test(r.trim())?`${n}(#)`:t)}function eSt(e){let t=e;for(let n of cKn)t=lKn(t,n);for(let n of uKn)t=dKn(t,n);return t=fKn(t),t=pKn(t),t=hKn(t),t=mKn(t),t}function uv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=eSt(t);if(r===t)return r;t=r}return eSt(t)}var cKn,uKn,tSt,_ye=v(()=>{"use strict";cKn=["script","iframe","object","style","form"],uKn=["embed"],tSt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as gKn}from"node:crypto";function O0(){let e=SKn();return bKn(e)}function SKn(){let e=new Uint8Array(16),t=Date.now();e[0]=t/1099511627776&255,e[1]=t/4294967296&255,e[2]=t/16777216&255,e[3]=t/65536&255,e[4]=t/256&255,e[5]=t&255;let n=gKn(10);for(let r=0;r<10;r++)e[6+r]=n[r];return e[6]=e[6]&15|112,e[8]=e[8]&63|128,e}function bKn(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=yKn[i]+r}return"1".repeat(t)+r}var yKn,nSt=v(()=>{"use strict";yKn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var Pye={};Ar(Pye,{_runPresenceSweepForTests:()=>RKn,beginPresenceWatch:()=>Tye,clearHeartbeat:()=>BY,clearPreviousReviewSnapshot:()=>cSt,createDesignDirectionSession:()=>kye,createPickerSession:()=>Iye,createQuestionSession:()=>wye,createSession:()=>zY,createViewSession:()=>xye,deleteSession:()=>D0,endPresenceWatch:()=>vye,findLiveReviewSessionForIntent:()=>ZL,getPreviousReviewSnapshot:()=>Aye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>JL,hasPresenceLost:()=>Rye,isBrowserAttached:()=>dv,notifySessionUpdate:()=>M0,recordHeartbeat:()=>KL,setPreviousReviewSnapshot:()=>aSt,updateDesignDirectionSession:()=>QL,updatePickerSession:()=>kKn,updateQuestionSession:()=>XL,updateSession:()=>Ml,updateViewSession:()=>Oye,waitForSession:()=>lv});import{EventEmitter as EKn}from"node:events";function Tye(e,t={}){C0.set(e,t.startedAt??Date.now())}function vye(e){C0.delete(e)}function KL(e){return Hi.has(e)?(N0.set(e,Date.now()),C0.delete(e),Fb.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Rye(e){return Fb.has(e)}function BY(e){N0.delete(e),Fb.delete(e),C0.delete(e)}function rSt(e){return!(e.session_type==="view"||(e.session_type==="review"||e.session_type==="question"||e.session_type==="design_direction"||e.session_type==="picker")&&e.status!=="pending")}function iSt(e,t){Fb.has(e)||(Fb.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),P0.emit(`session:${e}`))}function oSt(){let e=Date.now();for(let[t,n]of N0){if(e-n<=_Kn)continue;let r=Hi.get(t);if(!r){N0.delete(t),Fb.delete(t);continue}rSt(r)&&iSt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of C0){if(N0.has(t)||e-n<=vKn)continue;let r=Hi.get(t);if(!r){C0.delete(t);continue}rSt(r)&&iSt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function RKn(){oSt()}function M0(e){P0.emit(`session:${e}`)}function lv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{P0.removeListener(`session:${e}`,o),n?.removeEventListener("abort",a),i(new Error("Session timeout"))},t);function o(){clearTimeout(s),n?.removeEventListener("abort",a),r()}function a(){clearTimeout(s),P0.removeListener(`session:${e}`,o),i(new Error(`Session wait aborted${n?.reason?`: ${String(n.reason)}`:""}`))}if(n?.aborted){clearTimeout(s),i(new Error("Session wait aborted before start"));return}n?.addEventListener("abort",a,{once:!0}),P0.once(`session:${e}`,o)})}function Aye(e){return WL.get(e)}function aSt(e,t){WL.set(e,t)}function cSt(e){WL.delete(e)}function sSt(e){if(WL.has(e)){for(let t of Hi.values())if(t.session_type==="review"&&t.intent_dir===e)return;WL.delete(e)}}function YL(){let e=Date.now();for(let[t,n]of ep)if(e-n>wKn){let r=Hi.get(t);Hi.delete(t),ep.delete(t),BY(t),r?.session_type==="review"&&sSt(r.intent_dir)}for(;Hi.size>=AKn;){let t=ep.entries().next().value;if(!t)break;let n=Hi.get(t[0]);Hi.delete(t[0]),ep.delete(t[0]),BY(t[0]),n?.session_type==="review"&&sSt(n.intent_dir)}}function zY(e){YL();let t=O0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return Hi.set(t,n),ep.set(t,Date.now()),n}function wye(e){YL();let t=O0(),n={...e,session_type:"question",session_id:t,imagePaths:e.imagePaths??[],status:"pending",answers:[],feedback:""};return Hi.set(t,n),ep.set(t,Date.now()),n}function kye(e){YL();let t=O0(),n={...e,session_type:"design_direction",session_id:t,status:"pending",selection:null};return Hi.set(t,n),ep.set(t,Date.now()),n}function Iye(e){YL();let t=O0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return Hi.set(t,n),ep.set(t,Date.now()),n}function kKn(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),M0(e),n}function xye(e){YL();let t=O0(),n={...e,session_type:"view",session_id:t,status:"open"};return Hi.set(t,n),ep.set(t,Date.now()),n}function Oye(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),M0(e),n}function $t(e){return Hi.get(e)}function ZL(e){let t,n=0;for(let[r,i]of Hi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||Fb.has(r))continue;let s=ep.get(r)??0;s>n&&(t=i,n=s)}return t}function dv(e){if(!Hi.has(e)||Fb.has(e))return!1;let t=N0.get(e);return t?Date.now()-t<=IKn:!1}function JL(e){for(let[t,n]of Hi)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&dv(t))return!0;return!1}function D0(e){let t=Hi.delete(e);return ep.delete(e),BY(e),t}function Ml(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="review")){if(Object.assign(n,t),t.status==="decided"&&!n.ad_hoc)if(n.decision==="changes_requested"){let r=n.parsedIntent,i=n.parsedUnits??[],s={};for(let o of i)o?.slug&&typeof o.rawContent=="string"&&(s[o.slug]=o.rawContent);aSt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else cSt(n.intent_dir);return M0(e),n}}function XL(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),M0(e),n}function QL(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),M0(e),n}var P0,_Kn,TKn,N0,Fb,vKn,C0,Hi,WL,AKn,wKn,ep,IKn,$c=v(()=>{"use strict";nSt();P0=new EKn;P0.setMaxListeners(200);_Kn=12e4,TKn=5e3,N0=new Map,Fb=new Set,vKn=6e4,C0=new Map;setInterval(oSt,TKn).unref();Hi=new Map,WL=new Map;AKn=100,wKn=14400*1e3,ep=new Map;IKn=3e4});import{spawn as xKn}from"node:child_process";import{existsSync as L0,readFileSync as dSt}from"node:fs";import{createServer as OKn}from"node:net";import{isAbsolute as PKn,join as fv}from"node:path";function CKn(){return new Promise((e,t)=>{let n=OKn();n.unref(),n.on("error",t),n.listen(0,"127.0.0.1",()=>{let r=n.address();if(typeof r!="object"||r===null){n.close(),t(new Error("could not determine ephemeral port"));return}let i=r.port;n.close(()=>e(i))})})}function MKn(e){return new Promise(t=>{let{Socket:n}=K("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function DKn(e,t){let n=Date.now()+GY;for(;Date.now()setTimeout(r,pSt))}throw new Error(`Dev server did not bind to port ${e} within ${GY}ms`)}async function LKn(e){try{let t=new AbortController,n=setTimeout(()=>t.abort(),1500),r=await fetch(e,{signal:t.signal});return clearTimeout(n),r.status<500}catch{return!1}}async function UKn(e,t){let n=Date.now()+GY;for(;Date.now()setTimeout(r,pSt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${GY}ms`)}function hSt(e,t){if(e.length===0)throw new Error("bootFromAgent: command must have at least one entry");return{command:e,cwd:t,description:e.join(" ")}}function mSt(e){let t=fv(e,"package.json");if(!L0(t))return null;let n;try{n=JSON.parse(dSt(t,"utf-8"))}catch{return null}let r=n.scripts??{},i=typeof r.dev=="string"?"dev":typeof r.start=="string"?"start":null;if(!i)return null;let s=FKn(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function FKn(e){return L0(fv(e,"bun.lockb"))||L0(fv(e,"bun.lock"))?"bun":L0(fv(e,"pnpm-lock.yaml"))?"pnpm":L0(fv(e,"yarn.lock"))?"yarn":"npm"}function Lg(e){return new Error(`[${gSt}] ${e}`)}function uSt(e,t){if(!Array.isArray(e)||e.length===0||!e.every(n=>typeof n=="string"&&n.length>0))throw Lg(`${t} must be a non-empty array of strings`);return e}function Nye(e){let t=fv(e,gSt);if(!L0(t))return null;let n;try{n=(0,fSt.default)(dSt(t,"utf8")).data}catch(s){throw Lg(`could not parse frontmatter: ${s instanceof Error?s.message:String(s)}`)}let r=s=>{if(s==null)return e;if(typeof s!="string")throw Lg("`cwd` must be a string");return PKn(s)?s:fv(e,s)},i=s=>{if(s==null)return;if(typeof s!="object"||Array.isArray(s))throw Lg("`env` must be a mapping of string\u2192string");let o={};for(let[a,c]of Object.entries(s))o[a]=String(c);return o};if(Array.isArray(n.processes)&&n.processes.length>0){let s=n.processes.map((u,l)=>{if(typeof u?.name!="string"||!u.name)throw Lg(`processes[${l}] is missing a string \`name\``);return{name:u.name,command:uSt(u.command,`processes[${l}].command`),cwd:r(u.cwd),port_env:typeof u.port_env=="string"?u.port_env:void 0,ready_url:typeof u.ready_url=="string"?u.ready_url:void 0,depends_on:Array.isArray(u.depends_on)?u.depends_on.map(String):void 0,no_port:u.no_port===!0,env:i(u.env),service:u.service===!0,requires_tool:typeof u.requires_tool=="string"?u.requires_tool:void 0}}),o=s.filter(u=>!u.no_port),a;if(typeof n.primary=="string"&&n.primary)a=n.primary;else if(o.length===1)a=o[0].name;else throw Lg(`\`processes\` has ${o.length} port-bound entries (${o.map(u=>u.name).join(", ")}); set \`primary: \` to name the one Playwright should drive`);let c=new Set(s.map(u=>u.name));if(!c.has(a))throw Lg(`\`primary: ${a}\` does not match any process name (${[...c].join(", ")})`);if(s.find(u=>u.name===a)?.no_port)throw Lg(`\`primary: ${a}\` cannot be a no_port process`);return{processes:s,primary:a}}if(n.command!==void 0){if(n.no_port===!0)throw Lg("a single-`command` recipe drives a URL, so it cannot set `no_port: true` \u2014 use the `processes` form for a portless helper");return{processes:[{name:"app",command:uSt(n.command,"`command`"),cwd:r(n.cwd),port_env:typeof n.port_env=="string"?n.port_env:void 0,ready_url:typeof n.ready_url=="string"?n.ready_url:void 0,env:i(n.env)}],primary:"app"}}return null}function e1(e){let t=Nye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function jKn(e){let t=new Map(e.map(o=>[o.name,o])),n=new Set,r=new Set,i=[],s=(o,a)=>{if(r.has(o))return;if(n.has(o))throw new Error(`Cyclic depends_on in boot processes: ${[...a,o].join(" \u2192 ")}`);let c=t.get(o);if(!c)throw new Error(`depends_on references unknown process "${o}" (referenced from "${a.at(-1)??"?"}")`);n.add(o);for(let u of c.depends_on??[])s(u,[...a,o]);n.delete(o),r.add(o),i.push(c)};for(let o of e)s(o.name,[]);return i}async function Cye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=jKn(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await CKn());let s=t.find(l=>l.name===n);if(!s)throw new Error(`primary "${n}" not found in process group`);if(s.no_port)throw new Error(`primary "${n}" cannot have no_port: true`);let o=setTimeout(()=>{console.error(`[haiku-view-boot] TTL hit for session ${e} \u2014 killing process group`),U0(e)},NKn);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};$L.set(e,a);try{for(let l of r){let d=i.get(l.name)??null,f=l.port_env??"PORT",p={...process.env,...l.env??{},HOST:"127.0.0.1"};d!==null&&(p[f]=String(d));for(let b of l.depends_on??[]){let S=i.get(b);if(S!=null){let E=b.toUpperCase().replace(/-/g,"_");p[`${E}_PORT`]=String(S),p[`${E}_URL`]=`http://127.0.0.1:${S}`}}let[h,...m]=l.command;if(!h)throw new Error(`process "${l.name}" has empty command`);let g=xKn(h,m,{cwd:l.cwd,env:p,stdio:"ignore",detached:!1}),y=l.command.join(" ");if(g.on("error",b=>{console.error(`[haiku-view-boot] process "${l.name}" (${y}) spawn error:`,b.message)}),a.processes.push({name:l.name,child:g,port:d,command:y,cwd:l.cwd}),d!==null)if(l.ready_url){let b=l.ready_url.replace("{port}",String(d));await UKn(b)}else await DKn(d)}}catch(l){throw U0(e),l}let c=a.processes.map(l=>({name:l.name,port:l.port,command:l.command,pid:l.child.pid??-1})),u=c.find(l=>l.name===n);if(!u)throw new Error(`primary "${n}" missing from spawned set`);return{processes:c,primary:u}}async function ySt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await Cye(e,[n],"app")).primary}function U0(e){let t=$L.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),$L.delete(e);for(let n of[...t.processes].reverse()){try{n.child.kill("SIGTERM")}catch{}setTimeout(()=>{try{n.child.kill("SIGKILL")}catch{}},2e3).unref?.()}return!0}function SSt(){let e=0;for(let[t]of $L)$t(t)||(U0(t),e+=1);return e}function HKn(){if(lSt)return;lSt=!0;let e=()=>{for(let[t]of $L)U0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var fSt,$L,NKn,GY,pSt,gSt,lSt,t1=v(()=>{"use strict";fSt=Re(Kt(),1);$c();$L=new Map,NKn=1800*1e3,GY=60*1e3,pSt=200;gSt=".haiku/boot.md";lSt=!1;HKn()});import{lstatSync as Mye,mkdirSync as qKn,realpathSync as bSt,renameSync as BKn,unlinkSync as zKn}from"node:fs";import{isAbsolute as GKn,relative as VKn,resolve as VY,sep as WY}from"node:path";function pv(e,t,n,r){let i=VY(e),s=VY(t),o=VY(r),a;try{if(Mye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=bSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${F0(d)}`}}if(s!==i&&!s.startsWith(`${i}${WY}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${WY}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=VKn(i,s),u=c===""?[]:c.split(WY),l=i;for(let d of u){if(d===""||d==="."||d===".."||GKn(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=VY(l,d);try{let f=Mye(l);if(f.isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`segment '${l}' is a symbolic link \u2014 refusing to traverse`};if(!f.isDirectory())return{ok:!1,code:"parent_chain_escape",detail:`segment '${l}' exists but is not a directory`}}catch(f){if(f.code==="ENOENT")try{qKn(l)}catch(h){if(h.code==="EEXIST")try{let g=Mye(l);if(g.isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`segment '${l}' became a symlink during mkdir race`};if(!g.isDirectory())return{ok:!1,code:"parent_chain_escape",detail:`segment '${l}' became a non-directory during mkdir race`}}catch(g){return{ok:!1,code:"parent_open_failed",detail:`cannot stat segment after EEXIST: ${F0(g)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${F0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${F0(f)}`}}}try{let d=bSt(s);if(d!==a&&!d.startsWith(`${a}${WY}`))return{ok:!1,code:"parent_chain_escape",detail:`realpath(parent)='${d}' is not inside realpath(intentRoot)='${a}'`}}catch(d){return{ok:!1,code:"parent_open_failed",detail:`realpath(parent) failed: ${F0(d)}`}}try{BKn(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${F0(d)}`}}return{ok:!0}}function F0(e){return e instanceof Error?e.message:String(e)}function j0(e){try{zKn(e)}catch{}}var KY=v(()=>{"use strict"});var s1={};Ar(s1,{applyFeedbackInvalidations:()=>Lye,drainPendingDispatches:()=>YKn,stampSingleDispatch:()=>Dye,stashPendingDispatch:()=>WKn,stashPendingIntentReview:()=>KKn});import{existsSync as n1,readdirSync as _St,readFileSync as r1}from"node:fs";import{join as Ug}from"node:path";function i1(e){let t=Ug(Te(),"intents",e,"intent.md");if(!n1(t))return null;let n=r1(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function XY(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function TSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function WKn(e,t,n,r,i){let s=i1(e);if(!s)return;let o=t==="review"?ZY:JY,a={...XY(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,Me(s.path,o,a)}function KKn(e,t){if(t==="user")return;let n=i1(e);if(!n)return;let r={...TSt(n.fm,YY)};r[t]={dispatched_at:new Date().toISOString()},Me(n.path,YY,r)}function vSt(e){let{intentDir:t,stage:n,role:r,units:i,dispatchedAt:s,kind:o}=e,a=[],c=[];for(let u of i){let l=Ug(t,"stages",n,"units",`${u}.md`);if(!n1(l))continue;if(s&&ZKn({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=r1(l,"utf8"),p=re(d).data;if(o==="review"){let h=p.reviews&&typeof p.reviews=="object"?{...p.reviews}:{},m=Array.isArray(p.inputs)?p.inputs:[];h[r]=Cl(l,{intentDir:t,unitInputs:m}),Me(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=Bd(t,h),Me(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function Dye(e,t,n,r){let i=i1(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?ZY:JY,o=XY(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Ug(Te(),"intents",e),{stamped:u,skipped:l}=vSt({intentDir:c,stage:n,role:r,units:a.units,dispatchedAt:a.dispatched_at,kind:t}),d={...o[n]??{}};return delete d[r],Object.keys(d).length===0?delete o[n]:o[n]=d,Me(i.path,s,o),{found:!0,stamped:u,skipped:l}}function YKn(e){let t=i1(e);if(!t)return!1;let n=Te(),r=Ug(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?ZY:JY,c=XY(t.fm,a);if(Object.keys(c).length!==0){for(let u of Object.keys(c)){let l=c[u]??{};for(let d of Object.keys(l)){let f=l[d];if(!f||!Array.isArray(f.units))continue;vSt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}Me(t.path,a,{})}}let s=TSt(t.fm,YY);if(Object.keys(s).length>0){let o=t.fm.approvals&&typeof t.fm.approvals=="object"?{...t.fm.approvals}:{},a=!1;for(let c of Object.keys(s)){let u=s[c];u?.dispatched_at&&(JKn({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&Me(t.path,"approvals",o),Me(t.path,YY,{})}return i}function ZKn(e){let t=Ug(e.intentDir,"stages",e.stage,"feedback");if(!n1(t))return!1;for(let n of _St(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Ug(t,n.name),i=r1(r,"utf8"),o=re(i).data;if(o.closed_at||o.rejected_at)continue;let a=o.targets??{};if(a.unit!==e.targetUnit||!(Array.isArray(a.invalidates)?a.invalidates:[]).includes(e.role)||!u0(o.severity))continue;let u=o.created_at??"";if(!(u&&uc!==e.unit);a.length!==o.units.length&&(a.length===0?delete r[s]:r[s]={...o,units:a},i=!0)}i&&(Object.keys(r).length===0&&delete n[e.stage],Me(t.path,e.field,n))}var ZY,JY,YY,hv=v(()=>{"use strict";ji();Ge();Xf();ZY="_pending_review_dispatches",JY="_pending_approval_dispatches",YY="_pending_intent_review_dispatches"});import{existsSync as XKn,readFileSync as QKn}from"node:fs";import{join as $Kn}from"node:path";function ASt(e){let t=e.fbFm.targets??{},n=typeof t.unit=="string"?t.unit:void 0,r=Array.isArray(t.invalidates)?t.invalidates.filter(i=>typeof i=="string"):[];if(n&&e.stage&&r.length>0)try{Lye({slug:e.slug,stage:e.stage,targetUnit:n,invalidates:r})}catch(i){Ke("haiku.feedback.invalidations_failed",{intent:e.slug,stage:e.stage,feedback_id:e.feedbackId,target_unit:n,invalidates:r.join(","),error:String(i?.message??i)})}if(n&&e.stage)try{e3n({slug:e.slug,stage:e.stage,targetUnit:n,invalidates:r})}catch(i){Ke("haiku.feedback.witness_restamp_failed",{intent:e.slug,stage:e.stage,feedback_id:e.feedbackId,target_unit:n,error:String(i?.message??i)})}}function e3n(e){let t=Te(),n=$Kn(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!XKn(n))return;let r=Cg(n);if(!r)return;let i=QKn(n,"utf8"),o=(0,RSt.default)(i).data,a=new Set(e.invalidates),c=d=>{let f=o[d];if(!f||typeof f!="object"||Array.isArray(f))return null;let p={...f},h=!1;for(let[m,g]of Object.entries(p)){if(a.has(m)||!g||typeof g!="object"||Array.isArray(g))continue;let y=g;typeof y.at=="string"&&y.body_sha256!==r&&(p[m]={...y,body_sha256:r},h=!0)}return h?p:null},u=c("reviews");u&&Me(n,"reviews",u);let l=c("approvals");l&&Me(n,"approvals",l)}var RSt,wSt=v(()=>{"use strict";RSt=Re(Kt(),1);hv();Xf();Ge();vo()});var CSt={};Ar(CSt,{__testOnly:()=>l3n,withIntentDispatchLock:()=>H0,withIntentMainLock:()=>tZ,withStageLock:()=>jb});import{existsSync as t3n,mkdirSync as ISt,readFileSync as n3n,rmSync as xSt,statSync as r3n,writeFileSync as i3n}from"node:fs";import{join as QY}from"node:path";function OSt(){return QY(Br(),".haiku","locks")}function a3n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function c3n(e){let t=QY(e,"holder.json");if(!t3n(t))return null;try{let n=n3n(t,"utf8"),r=JSON.parse(n);return typeof r.pid=="number"&&typeof r.at=="number"&&typeof r.tag=="string"?r:null}catch{return null}}function PSt(e){let t;try{t=Date.now()-r3n(e).mtimeMs}catch{return!1}if(t{"use strict";Ge();s3n=50,kSt=3e4,o3n=5*6e4;l3n={acquireLock:$Y,releaseLock:eZ,lockRoot:OSt,isStale:PSt}});function o1(e){return Array.isArray(e.iterations)?e.iterations:[]}function d3n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Uye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function MSt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:o1(e.fm).length>0}function f3n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(MSt)?"active":"pending":e.length===0||!e.some(MSt)?"pending":e.every(s=>{let o=o1(s.fm);if(o.length===0)return!1;let a=o[o.length-1];if(a.result!=="advance"||t.length>0&&a.hat!==t[t.length-1])return!1;let c=Uye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function p3n(e,t,n,r,i,s){if(i!=="autopilot"&&(s===!1||s===null&&e.length===0)||e.length===0)return"elaborate";for(let o of n)if(e.some(c=>!d3n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=o1(a.fm);if(c.length===0)return!1;let u=c[c.length-1];return u.result==="advance"&&u.hat===t[t.length-1]}))return"execute";for(let o of r)if(e.some(c=>!Uye(c.fm)[o]))return"gate";return null}function h3n(e,t){return e.length===0?null:e.every(r=>{let i=Uye(r.fm);return t.every(s=>i[s])})?"advanced":null}function DSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function m3n(e){return e.map(n=>DSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function g3n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=o1(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=DSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function y3n(e){let t=0;for(let n of e){let r=o1(n.fm);r.length>t&&(t=r.length)}return t}function Fye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=f3n(n,i,o,a),l=u==="completed"?null:p3n(n,i,s,o,r,c),d=h3n(n,o),f=m3n(n),p=g3n(n,u),h=y3n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var jye=v(()=>{});import{execFileSync as rZ}from"node:child_process";import{existsSync as USt,readdirSync as S3n,readFileSync as b3n}from"node:fs";import{basename as FSt,join as nZ}from"node:path";function Hye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Hye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=Hye(r);return t}return e}function HSt(e){try{let t=(0,jSt.default)(e).data;return Hye(t)}catch{return null}}function qSt(e){if(!USt(e))return null;try{return HSt(b3n(e,"utf8"))}catch{return null}}function E3n(e){let t=nZ(e,"units");return USt(t)?S3n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=qSt(nZ(t,n.name))??{};return{name:FSt(n.name,".md"),fm:r}}):[]}function _3n(e,t){if(!ve())return null;try{return rZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function BSt(e,t){let n=_3n(e,t);return n==null?null:HSt(n)}function T3n(e,t){if(!ve())return[];try{return rZ("git",["ls-tree","--name-only",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).map(r=>r.trim()).filter(r=>r.endsWith(".md")).sort((r,i)=>r.localeCompare(i))}catch{return[]}}function v3n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=T3n(e,r);return i.length===0?[]:i.map(s=>{let o=BSt(e,`${r}/${s}`)??{};return{name:FSt(s,".md"),fm:o}})}function qye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(Tl(e,t)).sort(),"user"]}function Bye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(Tl(e,t)).sort(),"user"]}function R3n(e,t){if(!ve())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return rZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function LSt(e){if(!ve())return!1;try{return rZ("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function mv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=nZ(i,"stages",r),a=Es(n,r),c=qye(n,r,s),u=Bye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=ve(),p=f&&LSt(l),m=f&&LSt(d)?d:p?l:null,g=m?v3n(m,t,r):E3n(o),y=p?R3n(t,r):null,b=nZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,E=m?BSt(m,S):qSt(b),_=null;return E!==null&&(_=(typeof E.verified_at=="string"?E.verified_at:"").length>0),Fye({stage:r,units:g,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:y,elaborationVerified:_})}var jSt,a1=v(()=>{"use strict";jye();jSt=Re(Kt(),1);bb();Kn();ns()});import{appendFileSync as A3n,existsSync as mpi,mkdirSync as zSt,readFileSync as gpi,writeFileSync as w3n}from"node:fs";import{dirname as GSt}from"node:path";function VSt(e,t){try{zSt(GSt(e),{recursive:!0}),w3n(e,`${JSON.stringify(t,null,2)} +`);return r.drift_detection===!1}catch{return!1}}function Uyt(e){let t=Mg(e,"stages");if(!MY(t))return[];try{return Pyt(t,{withFileTypes:!0}).filter(n=>n.isDirectory()).map(n=>n.name)}catch{return[]}}var Cyt,F4n,j4n,H4n,q4n,lfi,dfi,B4n,k0=v(()=>{"use strict";Cyt=Re(Kt(),1);_l();F4n=O.enum(["agent","human-via-mcp","human-implicit"]),j4n=O.enum(["agent-write","human-write-tool","spa-upload","classification-terminal","baseline-init"]),H4n=O.enum(["stage-output","knowledge","unit-output","intent-meta"]),q4n=O.object({path:O.string(),sha256:O.string().regex(/^[0-9a-f]{64}$/),bytes:O.number().int().nonnegative(),mtime_ns:O.number().int(),is_binary:O.boolean(),author_class:F4n,acknowledged_at:O.string(),acknowledged_via:j4n,stage:O.string().nullable(),tracking_class:H4n}),lfi=O.record(O.string(),q4n);dfi=64*1024,B4n=[{kind:"png",prefix:[137,80,78,71,13,10,26,10]},{kind:"jpeg",prefix:[255,216,255]},{kind:"gif",prefix:[71,73,70,56]}]});import{existsSync as Qf,readdirSync as Hyt,readFileSync as V4n,statSync as W4n}from"node:fs";import{basename as qyt,join as $o,relative as LY}from"node:path";function K4n(e){if(!Qf(e))return[];let t=[];try{t=Hyt(e)}catch{return[]}let n=[];for(let r of t)if(!r.startsWith(".")&&!PY.has(r))try{W4n($o(e,r)).isFile()&&n.push(r)}catch{}return n}function Y4n(e){if(e===null||typeof e!="object")return null;let n=e.input_witnesses;if(!n||typeof n!="object"||Array.isArray(n))return null;let r=n,i=r.files,s=r.dirs,o={},a={};if(i&&typeof i=="object"&&!Array.isArray(i))for(let[c,u]of Object.entries(i))typeof u=="string"&&u.length===64&&(o[c]=u);if(s&&typeof s=="object"&&!Array.isArray(s))for(let[c,u]of Object.entries(s)){if(!u||typeof u!="object"||Array.isArray(u))continue;let l={};for(let[d,f]of Object.entries(u))typeof f=="string"&&f.length===64&&(l[d]=f);a[c]=l}return Object.keys(o).length===0&&Object.keys(a).length===0?null:{files:o,dirs:a}}function hye(e){if(!Qf(e))return null;try{let t=V4n(e,"utf8");return(0,Byt.default)(t).data}catch{return null}}function pye(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.at=="string"&&t.at.length>0?t.at:null}function Fyt(e){if(e===null||typeof e!="object")return null;let t=e;return typeof t.body_sha256=="string"&&t.body_sha256.length===64?t.body_sha256:null}function jyt(e,t){let n=Db(e);if(!n)return null;if(n===t)return{matches:!0,current:n};let r=A0(e);return r===t?{matches:!0,current:r}:{matches:!1,current:n}}function Z4n(e){let t=$o(e,"units");return Qf(t)?Hyt(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>$o(t,n.name)):[]}function J4n(e,t,n){return $o(e,"stages",t,"discovery",`${n}.md`)}function mye(e,t){let n=e.replace(/\{intent-slug\}/g,t),r=`.haiku/intents/${t}/`;return n.startsWith(r)?n.slice(r.length):n}function X4n(e,t,n,r){let i=qyt(e),s=new Set;try{for(let o of no(t,n))o.location&&s.add(mye(o.location,i))}catch{}for(let o of r){let a=hye(o),c=a&&Array.isArray(a.outputs)?a.outputs:[];for(let u of c)typeof u=="string"&&u.length>0&&s.add(mye(u,i))}return s}function Q4n(e,t,n,r){return $o(e,"plugin","studios",t,"stages",n,"discovery",`${r}.md`)}function UY(e){let t=e.repoRoot??$o(e.intentDir,"..","..",".."),n=$o(t,".haiku");if(DY(n))return{events:[],scanned:0,skipped:0};let r=[],i=0,s=0,o=$o(e.intentDir,"stages",e.stage),a=Z4n(o),c=X4n(e.intentDir,e.studio,e.stage,a),u=qyt(e.intentDir),l=p=>c.has(p)||c.has(mye(p,u));for(let p of a){let h=hye(p);if(!h)continue;let m=(p.split("/").pop()??"").replace(/\.md$/,"");if(h.started_at==null){s++;continue}let g=LY(e.intentDir,p),y=h.reviews??{};for(let[S,E]of Object.entries(y)){i++;let _=pye(E);if(!_)continue;let T=Fyt(E);T&&Qf(p)&&!BL(p,T)&&r.push({unit:m,role:S,kind:"spec",file:g,since:_});let R=Y4n(E);if(R){for(let[A,x]of Object.entries(R.files)){let k=$o(e.intentDir,A),P=$o(t,A),N=null;if(Qf(k))N=k;else if(Qf(P))N=P;else{let L=zL(A,e.intentDir);if(L!==A){let G=$o(e.intentDir,L);Qf(G)&&(N=G)}}if(N===null){l(A)||r.push({unit:m,role:S,kind:"input_deletion",file:A,since:_});continue}(OY(N)?!BL(N,x):(()=>{let L=Db(N);return!!L&&L!==x})())&&!l(A)&&r.push({unit:m,role:S,kind:"input_mutation",file:A,since:_})}for(let[A,x]of Object.entries(R.dirs)){let k=$o(e.intentDir,A),P=$o(t,A),N=null;if(Qf(k))N=k;else if(Qf(P))N=P;else{let L=zL(A,e.intentDir),G=L!==A?$o(e.intentDir,L):"";G&&Qf(G)&&(N=G)}if(N===null){l(A)||r.push({unit:m,role:S,kind:"input_deletion",file:A,since:_});continue}let C=K4n(N);for(let[L,G]of Object.entries(x)){let W=$o(A,L),$=$o(N,L);if(!Qf($)){l(W)||r.push({unit:m,role:S,kind:"input_deletion",file:W,since:_});continue}let q=A0($);q&&q!==G&&!l(W)&&r.push({unit:m,role:S,kind:"input_mutation",file:W,since:_})}for(let L of C){let G=$o(A,L);x[L]===void 0&&!l(G)&&r.push({unit:m,role:S,kind:"input_addition",file:G,since:_})}}}}let b=h.discovery??{};for(let[S,E]of Object.entries(b)){i++;let _=pye(E);if(!_)continue;let T=E,R=J4n(e.intentDir,e.stage,S),A=typeof T.output_sha256=="string"?T.output_sha256:null;if(A){let P=jyt(R,A);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_output",file:LY(e.intentDir,R),since:_})}let x=Q4n(t,e.studio,e.stage,S),k=typeof T.mandate_sha256=="string"?T.mandate_sha256:null;if(k){let P=jyt(x,k);P&&!P.matches&&r.push({unit:m,role:S,kind:"discovery_mandate",file:LY(t,x),since:_})}}}let d=$o(e.intentDir,"intent.md"),f=hye(d);if(f){let p=f.approvals??{},h=LY(e.intentDir,d);for(let[m,g]of Object.entries(p)){i++;let y=pye(g);if(!y)continue;let b=Fyt(g);b&&(BL(d,b)||r.push({unit:"(intent)",role:m,kind:"spec",file:h,since:y}))}}return{events:r,scanned:i,skipped:s}}var Byt,gye=v(()=>{"use strict";Byt=Re(Kt(),1);Kn();k0();Xf()});var O0={};Ar(O0,{__testOnly:()=>aKn,computeElaborateSignals:()=>x0,derivePosition:()=>$f,findCurrentStage:()=>ai,intentReviewRoles:()=>qY,isBriefEnabled:()=>Wyt,isReflectionEnabled:()=>ov,isStageComplete:()=>I0,listUnitPaths:()=>av,nextHatForUnit:()=>sv,pendingApprovalSlots:()=>tKn,pendingReviewSlots:()=>eKn,readFm:()=>Qc,serializeElaborateSignals:()=>Eye,stageOwesBrief:()=>Zyt,stageOwesObservations:()=>Sye,stageRoleLists:()=>BY,unitName:()=>HY,walkFeedbackTrack:()=>bye});import{existsSync as xa,readdirSync as WL,readFileSync as FY,writeFileSync as zyt}from"node:fs";import{basename as Vyt,join as zr}from"node:path";function $4n(e){let t=zr(e.intentDir,"intent.md");if(xa(t))try{let n=FY(t,"utf8"),r=(0,iv.default)(n),i=r.data,s="drift_cascade_alarm",o=e.stage,a=i[s],c=a&&typeof a=="object"&&!Array.isArray(a)?{...a}:{},u=c[o];e.tripped?u!==!0&&(c[o]=!0,i[s]=c,zyt(t,iv.default.stringify(r.content,i))):u===!0&&(delete c[o],Object.keys(c).length===0?delete i[s]:i[s]=c,zyt(t,iv.default.stringify(r.content,i)))}catch{}}function ov(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=FY(t,"utf8"),i=(0,iv.default)(n).data;return!(i.reflection===!1||i.autotune===!1)}catch{return!0}}function Wyt(e){let t=zr(e,"intent.md");if(!xa(t))return!0;try{let n=FY(t,"utf8");return(0,iv.default)(n).data.brief!==!1}catch{return!0}}function Qc(e){if(!xa(e))return null;try{let t=FY(e,"utf8"),n=(0,iv.default)(t);return{data:n.data,body:n.content}}catch{return null}}function Kyt(e){if(e.closed_at&&(e.closed_at instanceof Date||typeof e.closed_at=="string"&&e.closed_at.length>0))return!0;let t=e.rejected_at;return!!(t&&(t instanceof Date||typeof t=="string"&&t.length>0)||typeof e.status=="string"&&(e.status==="closed"||e.status==="rejected")||typeof e.closed_by=="string"&&e.closed_by.startsWith("fix-loop:"))}function Ub(e){return Array.isArray(e.iterations)?e.iterations??[]:[]}function jY(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Yyt(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function HY(e){return Vyt(e).replace(/\.md$/,"")}function av(e){let t=zr(e,"units");return xa(t)?WL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function Gyt(e){let t=zr(e,"feedback");return xa(t)?WL(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).map(n=>zr(t,n.name)).sort():[]}function sv(e,t){if(t.length===0)return null;let n=Ub(e);if(n.length===0)return{hat:t[0],terminal:t.length===1};let r=n[n.length-1];if(r.result===null){let i=t.indexOf(r.hat);return i<0?null:{hat:r.hat,terminal:i===t.length-1}}if(r.result==="advance"||r.result==="advanced"){let i=t.indexOf(r.hat);if(i<0)return null;let s=i+1;return s>=t.length?null:{hat:t[s],terminal:s===t.length-1}}if(r.result==="reject"||r.result==="rejected"){let i=t.indexOf(r.hat);if(i<=0)return{hat:t[0],terminal:t.length===1,rejected:!0};let s=i-1;return{hat:t[s],terminal:s===t.length-1,rejected:!0}}return null}function eKn(e,t){let n=Yyt(e);return t.filter(r=>!n[r])}function tKn(e,t){let n=jY(e);return t.filter(r=>!n[r])}function nKn(e,t,n){let r=Object.keys(Tl(e,t)).sort();return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...r,"user"]}function rKn(e){return typeof e.started_at=="string"&&e.started_at.length>0}function iKn(e,t){let n=jY(e);for(let r of t)if(!n[r])return!1;return!0}function sKn(e,t){if(iKn(e,t))return!0;let n=rKn(e),r=Ub(e);return n&&r.length===0?(Array.isArray(e.outputs)?e.outputs:[]).length===0:!1}function oKn(e,t,n,r){let i=zr(e,"stages",n,"units");if(!xa(i))return!1;let s=WL(i).filter(c=>c.endsWith(".md"));if(s.length===0||Es(t,n).length===0)return!1;let a=nKn(t,n,r);for(let c of s){let u=Qc(zr(i,c))?.data;if(!u||!sKn(u,a))return!1}return!0}function I0(e,t,n,r){return oKn(e,t,n,r)}function Sye(e,t){return ov(e)?!xa(zr(e,"stages",t,"observations.md")):!1}function Zyt(e,t,n){return!(!Wyt(e)||xa(zr(e,"stages",t,"BRIEF.md"))||n)}function ai(e,t,n){let r=n??zr(Te(),"intents",e),i=zr(r,"intent.md"),s=Qc(i)?.data??{},o=wn(s,t);if(o.length===0)return null;let a=typeof s?.mode=="string"&&s.mode.length>0?s.mode:"continuous";for(let c of o)if(!I0(r,t,c,a))return c;return null}function bye(e){let{intentDir:t,studio:n,currentStage:r,intent:i}=e,s=wn(i,n),o=s.indexOf(r),a=o>=0?s.slice(0,o+1):[],c=[],u=(b,S)=>{let E=Jyt(b,S,n);if(!E)return null;if(E.kind!=="start_feedback_hat")return E;let _=Qc(S)?.data,T=_?.severity??null,R=Array.isArray(_?.iterations)?_.iterations.length>0:!1,A=E.dispatches[0];return A&&c.push({...A,severity:T,inFlight:R}),null};for(let b of a){let S=Gyt(zr(t,"stages",b));for(let E of S){let _=u(b,E);if(_)return _}}let l=Gyt(t);for(let b of l){let S=u("",b);if(S)return S}if(c.length===0)return null;let d=new Set,f=[];for(let b of c)d.has(b.feedback_id)||(d.add(b.feedback_id),f.push(b));let p=[];for(let b of f){let S=Number.parseInt(b.feedback_id.replace(/^FB-/i,""),10),E=[];b.stage&&E.push(zr(t,"stages",b.stage,"feedback")),E.push(zr(t,"feedback"));let _=!0;for(let T of E){if(!xa(T))continue;let R=WL(T).filter(x=>{if(!x.endsWith(".md"))return!1;let k=/^(\d+)/.exec(x);return k!=null&&Number.parseInt(k[1],10)===S}),A=!1;for(let x of R){let k=Qc(zr(T,x))?.data;if(k&&Kyt(k)){A=!0;break}}if(A){_=!1;break}}_&&p.push(b)}if(p.length===0||!p.some(b=>b.inFlight||u0(b.severity)))return null;let g=[...p].sort((b,S)=>Xc(b.severity)-Xc(S.severity)).slice(0,cv),y=g[0];return{kind:"start_feedback_hat",dispatches:g.map(b=>({feedback_id:b.feedback_id,stage:b.stage,hat:b.hat,terminal:b.terminal})),stage:y?.stage??"",hat:y?.hat??"",feedback_ids:g.map(b=>b.feedback_id),terminal:y?.terminal??!1}}function Jyt(e,t,n){let r=Qc(t);if(!r)return null;let i=r.data;if(Kyt(i))return null;let s=Xyt(t);if(!s)return null;if(i.resolution==="question")return{kind:"feedback_question",stage:e,feedback_id:s,feedback_path:t};if(i.author_type==="agent"||i.author_type==="system"){let u=Ub(i),l=new Set;for(let d of u){let f=d.bolt;typeof f=="number"&&f>0&&l.add(f)}if(l.size>=Dg)return null;if(u.length>=2){let d=u[u.length-1],f=u[u.length-2],p=d.result==="reject"||d.result==="rejected",h=f.result==="reject"||f.result==="rejected";if(p&&h&&d.hat===f.hat)return null}}let a=e===""?jf(n):bg(n,e);if(a.length===0)return{kind:"user_gate",stage:e,gate_kind:"approval",units:[]};let c=sv(i,a);if(c===null){let u=Ub(i);if(u.length===0)return null;let l=u[u.length-1];return l.result===null?null:(l.result==="closed"||l.result==="advance")&&l.hat===a[a.length-1]?{kind:"close_feedback",stage:e,feedback_id:s}:null}return{kind:"start_feedback_hat",dispatches:[{feedback_id:s,stage:e,hat:c.hat,terminal:c.terminal}],stage:e,hat:c.hat,feedback_ids:[s],terminal:c.terminal}}function Xyt(e){let t=Vyt(e).match(/^(\d+)-/);return t?`FB-${t[1].padStart(3,"0")}`:null}function Qyt(e){let{slug:t,intentDir:n,studio:r,stage:i,mode:s}=e,o=zr(n,"stages",i),c=av(o).map(R=>({path:R,name:HY(R),fm:Qc(R)?.data??{}})).filter(R=>R.fm),u=Es(r,i),l=Tl(r,i),d=Object.keys(l).sort(),{reviewRoles:f,approvalRoles:p}=BY(r,i,s,d),h=x0({slug:t,studio:r,stage:i,stageDir:o,unitNames:c.map(R=>R.name),mode:s});if(h.length>0){if(rL(r,i)&&c.length===0&&!xa(zr(o,"elaboration.md"))){let R=wn(Qc(zr(n,"intent.md"))?.data??{},r);return{kind:"elaborate_loop",stage:i,signals_unmet:h,optional_offer:!0,dependents:Zpe(r,i,R)}}return{kind:"elaborate_loop",stage:i,signals_unmet:h}}{let R=wn(Qc(zr(n,"intent.md"))?.data??{},r);if(!(R.length>0&&R[0]===i)){let x=c.filter(k=>!("inputs"in k.fm)).map(k=>k.name);if(x.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:x}}}{let R=[],A=null;for(let x of f){let k=c.filter(P=>P.fm.started_at!=null||Ub(P.fm).length>0?!1:!Yyt(P.fm)[x]).map(P=>P.name);if(k.length!==0){if(x==="user"){A=k;continue}if(yye.has(x)){if(R.length>0){let P=R[0];return{kind:"dispatch_review",stage:i,dispatches:R,role:P.role,units:P.units}}return{kind:"dispatch_review",stage:i,dispatches:[{role:x,units:k}],role:x,units:k}}R.push({role:x,units:k})}}if(R.length>0){let x=R[0];return{kind:"dispatch_review",stage:i,dispatches:R,role:x.role,units:x.units}}{let x=c.some(k=>!!k.fm.started_at||Ub(k.fm).length>0);if(Zyt(n,i,x))return{kind:"write_brief",stage:i}}if(A)return{kind:"user_gate",stage:i,gate_kind:"spec",units:A}}let m=new Set(c.filter(R=>{if(u.length===0)return!1;let A=Ub(R.fm);if(A.length===0)return!1;let x=A[A.length-1];return x.result==="advance"&&x.hat===u[u.length-1]}).map(R=>R.name)),g=c.filter(R=>R.fm.started_at!=null&&sv(R.fm,u)!==null),b=(g.length===0?c.filter(R=>R.fm.started_at!=null?!1:(Array.isArray(R.fm.depends_on)?R.fm.depends_on:[]).every(x=>m.has(x))):[]).slice(0,cv),S=wn(Qc(zr(n,"intent.md"))?.data??{},r),E=S.length>0&&S[0]===i;if(!E&&b.length>0){let R=b.filter(A=>!("inputs"in A.fm)).map(A=>A.name);if(R.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:R}}if(b.length>0)return{kind:"start_unit_hat",stage:i,hat:u[0],units:b.map(R=>R.name),terminal:u.length===1};let _=[],T=!1;for(let R of c){if(R.fm.started_at==null)continue;let A=sv(R.fm,u);if(A===null)continue;let x=Array.isArray(R.fm.iterations)?R.fm.iterations:[],k=x[x.length-1];if(k&&k.result===null&&typeof k.dispatched_at=="string"&&k.dispatched_at.length>0){T=!0;continue}_.push({unit:R.name,hat:A.hat,terminal:A.terminal})}if(_.length===0&&T&&g.length>0)return null;if(!E&&_.length>0){let R=new Set(_.map(x=>x.unit)),A=c.filter(x=>R.has(x.name)&&!("inputs"in x.fm)).map(x=>x.name);if(A.length>0)return{kind:"unit_inputs_not_declared",stage:i,units:A}}if(_.length>0){let R=new Map;for(let N of _){let C=R.get(N.hat)??[];C.push(N.unit),R.set(N.hat,C)}let A=[...R.entries()].sort(([N],[C])=>u.indexOf(N)-u.indexOf(C)),[x,k]=A[0],P=u.indexOf(x);return{kind:"start_unit_hat",stage:i,hat:x,units:k,terminal:P===u.length-1}}{let R=c.filter(A=>(Array.isArray(A.fm.outputs)?A.fm.outputs:[]).length===0?!1:Ub(A.fm).length===0).map(A=>A.name);if(R.length>0)return{kind:"unit_outputs_empty_iterations",stage:i,units:R}}{let R=[];for(let A of p){let x=c.filter(k=>!jY(k.fm)[A]).map(k=>k.name);if(x.length!==0){if(A==="user"){if(R.length>0){let k=R[0];return{kind:"dispatch_approval",stage:i,dispatches:R,role:k.role,units:k.units}}return{kind:"user_gate",stage:i,gate_kind:"approval",units:x}}if(yye.has(A)){if(R.length>0){let k=R[0];return{kind:"dispatch_approval",stage:i,dispatches:R,role:k.role,units:k.units}}return A==="quality_gates"?{kind:"dispatch_quality_gates",stage:i,units:x}:{kind:"dispatch_approval",stage:i,dispatches:[{role:A,units:x}],role:A,units:x}}R.push({role:A,units:x})}}if(R.length>0){let A=R[0];return{kind:"dispatch_approval",stage:i,dispatches:R,role:A.role,units:A.units}}}if(ov(n)){let R=zr(o,"observations.md");if(!xa(R))return{kind:"record_observations",stage:i}}return{kind:"complete_stage",stage:i}}function $f(e){let{slug:t,intentDir:n,studio:r}=e,i=zr(n,"intent.md"),s=Qc(i),o=typeof s?.data.mode=="string"&&s.data.mode.length>0?s.data.mode:"continuous";if(s&&typeof s.data.sealed_at=="string"&&s.data.sealed_at.length>0){let c=w0(t);if(!c.applicable||c.merged)return{track:"sealed",action:{kind:"sealed"}}}if(s&&o!=="autopilot"&&!(typeof s.data.verified_at=="string"?s.data.verified_at:"")){let l=wn(s.data,r)[0]??"",d=l?zr(n,"stages",l):"",f=d&&xa(d)?av(d).length>0:!1;if(ai(t,r,n)===l&&!f)return{track:"intent",action:{kind:"elaborate_loop",signals_unmet:[{signal:"verify_conversation"}]}}}let a=ai(t,r,n);if(a){let c=UY({intentDir:n,stage:a,studio:r});if(c.events.length>0){let u=xyt({events:c.events,intentDir:n,stage:a,slug:t});s&&$4n({intentDir:n,stage:a,tripped:u.cascade_alarm_tripped})}}{let c=s?.data??{},u=bye({intentDir:n,studio:r,intent:c,currentStage:a??wn(c,r).slice(-1)[0]??""});if(u)return{track:"feedback",action:u}}if(a){let c=Qyt({slug:t,intentDir:n,studio:r,stage:a,mode:o});return c!==null?{track:"intent",action:c}:{track:"noop",action:null}}if(s){let c=jY(s.data),u=Object.keys(gg(r)).sort(),l=qY(o,u),d=[],f=!1;for(let h of l)if(!c[h]){if(h==="user"){f=!0;continue}if(yye.has(h))return d.length>0?{track:"intent",action:{kind:"intent_review",role:d[0].role,dispatches:d}}:{track:"intent",action:{kind:"intent_review",role:h,dispatches:[{role:h}]}};d.push({role:h})}if(d.length>0)return{track:"intent",action:{kind:"intent_review",role:d[0].role,dispatches:d}};if(!c.intent_quality_gates)return{track:"intent",action:{kind:"dispatch_quality_gates",stage:"",units:[],scope:"intent"}};if(f)return{track:"intent",action:{kind:"intent_review",role:"user",dispatches:[{role:"user"}]}};if(s.data.sealed_at==null&&ov(n)){let h=zr(n,"reflection.md");if(!xa(h))return{track:"intent",action:{kind:"record_reflection"}}}let p=w0(t);if(p.applicable&&!p.merged)return{track:"intent",action:{kind:"pending_seal",default_branch:p.defaultBranch}};if(s.data.sealed_at==null)return{track:"intent",action:{kind:"seal_intent"}}}return{track:"sealed",action:{kind:"sealed"}}}function qY(e,t=[]){let n=["spec","continuity","cross-stage-consistency"],r=t.filter(i=>!n.includes(i));return[...n,...r,"user"]}function BY(e,t,n,r){let s=["continuity","cross-stage-consistency",...r??Object.keys(Tl(e,t)).sort()],o=n==="autopilot",a=s.filter(l=>!MT.has(l)),c=o?["spec",...a]:["spec",...a,"user"],u=o?["spec",...s,"quality_gates"]:["spec",...s,"quality_gates","user"];return{reviewRoles:c,approvalRoles:u}}function x0(e){let{slug:t,studio:n,stage:r,stageDir:i,unitNames:s,mode:o}=e,a=[],c=zr(i,"elaboration.md"),u=xa(c)?Qc(c)?.data??{}:null,l=o==="autopilot";!l&&u===null&&s.length===0&&a.push({signal:"conversation"}),!l&&u!==null&&(typeof u.verified_at=="string"&&u.verified_at||a.push({signal:"verify_conversation"}));let d=no(n,r).filter(f=>f.kind==="discovery").sort((f,p)=>f.name.localeCompare(p.name));for(let f of d){if(s.length===0&&!f.tool||!f.required)continue;if(!f.location){console.error(`[haiku] Studio configuration error: discovery template '${f.name}' in stage '${r}' is required but declares no 'location:' field. The gate is being skipped \u2014 fix the template.`);continue}let p=f.location.replace(/\{intent-slug\}/g,t),h=zr(process.cwd(),p);(p.endsWith("/")?xa(h)&&WL(h).filter(g=>g!==".gitkeep").length>0:xa(h))||a.push({signal:"discovery",agent:f.name,units:s.length>0?[s[0]]:[]})}return s.length===0&&a.push({signal:"decompose"}),!l&&s.length>0&&u!==null&&(typeof u.decompose_verified_at=="string"&&u.decompose_verified_at||a.push({signal:"verify_decompose"})),a}function Eye(e){return e.map(t=>t.signal==="discovery"?`discovery:${t.agent}`:t.signal)}var iv,yye,aKn,Oa=v(()=>{"use strict";iv=Re(Kt(),1);ji();Ge();Kn();T3();ns();Oyt();VL();gye();yye=new Set(["spec","quality_gates","user"]);aKn={walkIntentTrack:Qyt,walkFeedbackTrack:bye,nextActionForFeedback:Jyt,parseFbIdFromFilename:Xyt}});var $yt,KL,_ye=v(()=>{"use strict";$yt=new Set(["STAGE.md","state.json","units","feedback","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","drift-assessments","iterations.jsonl","decisions.jsonl","no-decisions.json","upstream-reconciliation.json","gate-session.json"]),KL=new Set(["intent.md","stages","knowledge","feedback","reflection.md","intent-tick.json","action-log.jsonl","write-audit.jsonl","baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","drift-markers.json","drift-assessments",".gitattributes",".gitkeep"])});function lKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*>[\\s\\S]*?<\\/${n}\\s*>`,"gi"),i=e.replace(r,""),s=new RegExp(`<${n}\\b[^>]*>`,"gi");i=i.replace(s,"");let o=new RegExp(`<\\/${n}\\s*>`,"gi");return i=i.replace(o,""),i}function dKn(e,t){let n=t.toLowerCase(),r=new RegExp(`<${n}\\b[^>]*/?>`,"gi");return e.replace(r,"")}function fKn(e){return e.replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function pKn(e){return e.replace(/\s+(?:formaction|srcdoc|xlink:href)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"")}function hKn(e){return e.replace(/\b(href|src)\s*=\s*(["']?)([^"'\s>]+)/gi,(t,n,r,i)=>tSt.test(i.trim())?`${n}=${r||'"'}#${r||'"'}`:t)}function mKn(e){return e.replace(/(!?\[[^\]]*\])\(([^)]+)\)/g,(t,n,r)=>tSt.test(r.trim())?`${n}(#)`:t)}function eSt(e){let t=e;for(let n of cKn)t=lKn(t,n);for(let n of uKn)t=dKn(t,n);return t=fKn(t),t=pKn(t),t=hKn(t),t=mKn(t),t}function uv(e){if(typeof e!="string")return"";let t=e;for(let n=0;n<5;n++){let r=eSt(t);if(r===t)return r;t=r}return eSt(t)}var cKn,uKn,tSt,Tye=v(()=>{"use strict";cKn=["script","iframe","object","style","form"],uKn=["embed"],tSt=/^(?:javascript|vbscript|data:text\/html|data:text\/javascript|data:application\/(?:java|ecma)script|data:image\/svg\+xml)/i});import{randomBytes as gKn}from"node:crypto";function P0(){let e=SKn();return bKn(e)}function SKn(){let e=new Uint8Array(16),t=Date.now();e[0]=t/1099511627776&255,e[1]=t/4294967296&255,e[2]=t/16777216&255,e[3]=t/65536&255,e[4]=t/256&255,e[5]=t&255;let n=gKn(10);for(let r=0;r<10;r++)e[6+r]=n[r];return e[6]=e[6]&15|112,e[8]=e[8]&63|128,e}function bKn(e){let t=0;for(;t0n;){let i=Number(n%58n);n=n/58n,r=yKn[i]+r}return"1".repeat(t)+r}var yKn,nSt=v(()=>{"use strict";yKn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"});var Nye={};Ar(Nye,{_runPresenceSweepForTests:()=>RKn,beginPresenceWatch:()=>vye,clearHeartbeat:()=>zY,clearPreviousReviewSnapshot:()=>cSt,createDesignDirectionSession:()=>Iye,createPickerSession:()=>xye,createQuestionSession:()=>kye,createSession:()=>GY,createViewSession:()=>Oye,deleteSession:()=>L0,endPresenceWatch:()=>Rye,findLiveReviewSessionForIntent:()=>XL,getPreviousReviewSnapshot:()=>wye,getSession:()=>$t,hasAttachedReviewSessionForIntent:()=>QL,hasPresenceLost:()=>Aye,isBrowserAttached:()=>dv,notifySessionUpdate:()=>D0,recordHeartbeat:()=>ZL,setPreviousReviewSnapshot:()=>aSt,updateDesignDirectionSession:()=>e1,updatePickerSession:()=>kKn,updateQuestionSession:()=>$L,updateSession:()=>Ml,updateViewSession:()=>Pye,waitForSession:()=>lv});import{EventEmitter as EKn}from"node:events";function vye(e,t={}){M0.set(e,t.startedAt??Date.now())}function Rye(e){M0.delete(e)}function ZL(e){return Hi.has(e)?(C0.set(e,Date.now()),M0.delete(e),Fb.delete(e)&&console.error(`[haiku] Presence restored for session ${e}`),!0):!1}function Aye(e){return Fb.has(e)}function zY(e){C0.delete(e),Fb.delete(e),M0.delete(e)}function rSt(e){return!(e.session_type==="view"||(e.session_type==="review"||e.session_type==="question"||e.session_type==="design_direction"||e.session_type==="picker")&&e.status!=="pending")}function iSt(e,t){Fb.has(e)||(Fb.add(e),console.error(`[haiku] Presence lost for session ${e} \u2014 ${t}`),N0.emit(`session:${e}`))}function oSt(){let e=Date.now();for(let[t,n]of C0){if(e-n<=_Kn)continue;let r=Hi.get(t);if(!r){C0.delete(t),Fb.delete(t);continue}rSt(r)&&iSt(t,`no heartbeat in ${Math.round((e-n)/1e3)}s`)}for(let[t,n]of M0){if(C0.has(t)||e-n<=vKn)continue;let r=Hi.get(t);if(!r){M0.delete(t);continue}rSt(r)&&iSt(t,`SPA never opened (no heartbeat in the first ${Math.round((e-n)/1e3)}s)`)}}function RKn(){oSt()}function D0(e){N0.emit(`session:${e}`)}function lv(e,t=1800*1e3,n){return new Promise((r,i)=>{let s=setTimeout(()=>{N0.removeListener(`session:${e}`,o),n?.removeEventListener("abort",a),i(new Error("Session timeout"))},t);function o(){clearTimeout(s),n?.removeEventListener("abort",a),r()}function a(){clearTimeout(s),N0.removeListener(`session:${e}`,o),i(new Error(`Session wait aborted${n?.reason?`: ${String(n.reason)}`:""}`))}if(n?.aborted){clearTimeout(s),i(new Error("Session wait aborted before start"));return}n?.addEventListener("abort",a,{once:!0}),N0.once(`session:${e}`,o)})}function wye(e){return YL.get(e)}function aSt(e,t){YL.set(e,t)}function cSt(e){YL.delete(e)}function sSt(e){if(YL.has(e)){for(let t of Hi.values())if(t.session_type==="review"&&t.intent_dir===e)return;YL.delete(e)}}function JL(){let e=Date.now();for(let[t,n]of ep)if(e-n>wKn){let r=Hi.get(t);Hi.delete(t),ep.delete(t),zY(t),r?.session_type==="review"&&sSt(r.intent_dir)}for(;Hi.size>=AKn;){let t=ep.entries().next().value;if(!t)break;let n=Hi.get(t[0]);Hi.delete(t[0]),ep.delete(t[0]),zY(t[0]),n?.session_type==="review"&&sSt(n.intent_dir)}}function GY(e){JL();let t=P0(),n={...e,session_type:"review",session_id:t,status:"pending",decision:"",feedback:""};return Hi.set(t,n),ep.set(t,Date.now()),n}function kye(e){JL();let t=P0(),n={...e,session_type:"question",session_id:t,imagePaths:e.imagePaths??[],status:"pending",answers:[],feedback:""};return Hi.set(t,n),ep.set(t,Date.now()),n}function Iye(e){JL();let t=P0(),n={...e,session_type:"design_direction",session_id:t,status:"pending",selection:null};return Hi.set(t,n),ep.set(t,Date.now()),n}function xye(e){JL();let t=P0(),n={...e,session_type:"picker",session_id:t,status:"pending",selection:null};return Hi.set(t,n),ep.set(t,Date.now()),n}function kKn(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="picker"))return Object.assign(n,t),D0(e),n}function Oye(e){JL();let t=P0(),n={...e,session_type:"view",session_id:t,status:"open"};return Hi.set(t,n),ep.set(t,Date.now()),n}function Pye(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="view"))return Object.assign(n,t),D0(e),n}function $t(e){return Hi.get(e)}function XL(e){let t,n=0;for(let[r,i]of Hi){if(i.session_type!=="review"||i.intent_slug!==e||i.ad_hoc||Fb.has(r))continue;let s=ep.get(r)??0;s>n&&(t=i,n=s)}return t}function dv(e){if(!Hi.has(e)||Fb.has(e))return!1;let t=C0.get(e);return t?Date.now()-t<=IKn:!1}function QL(e){for(let[t,n]of Hi)if(n.session_type==="review"&&n.intent_slug===e&&!n.ad_hoc&&dv(t))return!0;return!1}function L0(e){let t=Hi.delete(e);return ep.delete(e),zY(e),t}function Ml(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="review")){if(Object.assign(n,t),t.status==="decided"&&!n.ad_hoc)if(n.decision==="changes_requested"){let r=n.parsedIntent,i=n.parsedUnits??[],s={};for(let o of i)o?.slug&&typeof o.rawContent=="string"&&(s[o.slug]=o.rawContent);aSt(n.intent_dir,{feedback:n.feedback??"",reviewedAt:new Date().toISOString(),intentRawContent:r?.rawContent??"",unitRawContents:s})}else cSt(n.intent_dir);return D0(e),n}}function $L(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="question"))return Object.assign(n,t),D0(e),n}function e1(e,t){let n=Hi.get(e);if(!(!n||n.session_type!=="design_direction"))return Object.assign(n,t),D0(e),n}var N0,_Kn,TKn,C0,Fb,vKn,M0,Hi,YL,AKn,wKn,ep,IKn,$c=v(()=>{"use strict";nSt();N0=new EKn;N0.setMaxListeners(200);_Kn=12e4,TKn=5e3,C0=new Map,Fb=new Set,vKn=6e4,M0=new Map;setInterval(oSt,TKn).unref();Hi=new Map,YL=new Map;AKn=100,wKn=14400*1e3,ep=new Map;IKn=3e4});import{spawn as xKn}from"node:child_process";import{existsSync as U0,readFileSync as dSt}from"node:fs";import{createServer as OKn}from"node:net";import{isAbsolute as PKn,join as fv}from"node:path";function CKn(){return new Promise((e,t)=>{let n=OKn();n.unref(),n.on("error",t),n.listen(0,"127.0.0.1",()=>{let r=n.address();if(typeof r!="object"||r===null){n.close(),t(new Error("could not determine ephemeral port"));return}let i=r.port;n.close(()=>e(i))})})}function MKn(e){return new Promise(t=>{let{Socket:n}=K("node:net"),r=new n;r.setTimeout(500),r.once("connect",()=>{r.destroy(),t(!0)}),r.once("timeout",()=>{r.destroy(),t(!1)}),r.once("error",()=>{r.destroy(),t(!1)}),r.connect(e,"127.0.0.1")})}async function DKn(e,t){let n=Date.now()+VY;for(;Date.now()setTimeout(r,pSt))}throw new Error(`Dev server did not bind to port ${e} within ${VY}ms`)}async function LKn(e){try{let t=new AbortController,n=setTimeout(()=>t.abort(),1500),r=await fetch(e,{signal:t.signal});return clearTimeout(n),r.status<500}catch{return!1}}async function UKn(e,t){let n=Date.now()+VY;for(;Date.now()setTimeout(r,pSt))}throw new Error(`Process did not return a healthy ready_url (${e}) within ${VY}ms`)}function hSt(e,t){if(e.length===0)throw new Error("bootFromAgent: command must have at least one entry");return{command:e,cwd:t,description:e.join(" ")}}function mSt(e){let t=fv(e,"package.json");if(!U0(t))return null;let n;try{n=JSON.parse(dSt(t,"utf-8"))}catch{return null}let r=n.scripts??{},i=typeof r.dev=="string"?"dev":typeof r.start=="string"?"start":null;if(!i)return null;let s=FKn(e);return{command:s==="npm"?["npm","run",i]:[s,"run",i],cwd:e,description:`${s} run ${i}`}}function FKn(e){return U0(fv(e,"bun.lockb"))||U0(fv(e,"bun.lock"))?"bun":U0(fv(e,"pnpm-lock.yaml"))?"pnpm":U0(fv(e,"yarn.lock"))?"yarn":"npm"}function Lg(e){return new Error(`[${gSt}] ${e}`)}function uSt(e,t){if(!Array.isArray(e)||e.length===0||!e.every(n=>typeof n=="string"&&n.length>0))throw Lg(`${t} must be a non-empty array of strings`);return e}function Cye(e){let t=fv(e,gSt);if(!U0(t))return null;let n;try{n=(0,fSt.default)(dSt(t,"utf8")).data}catch(s){throw Lg(`could not parse frontmatter: ${s instanceof Error?s.message:String(s)}`)}let r=s=>{if(s==null)return e;if(typeof s!="string")throw Lg("`cwd` must be a string");return PKn(s)?s:fv(e,s)},i=s=>{if(s==null)return;if(typeof s!="object"||Array.isArray(s))throw Lg("`env` must be a mapping of string\u2192string");let o={};for(let[a,c]of Object.entries(s))o[a]=String(c);return o};if(Array.isArray(n.processes)&&n.processes.length>0){let s=n.processes.map((u,l)=>{if(typeof u?.name!="string"||!u.name)throw Lg(`processes[${l}] is missing a string \`name\``);return{name:u.name,command:uSt(u.command,`processes[${l}].command`),cwd:r(u.cwd),port_env:typeof u.port_env=="string"?u.port_env:void 0,ready_url:typeof u.ready_url=="string"?u.ready_url:void 0,depends_on:Array.isArray(u.depends_on)?u.depends_on.map(String):void 0,no_port:u.no_port===!0,env:i(u.env),service:u.service===!0,requires_tool:typeof u.requires_tool=="string"?u.requires_tool:void 0}}),o=s.filter(u=>!u.no_port),a;if(typeof n.primary=="string"&&n.primary)a=n.primary;else if(o.length===1)a=o[0].name;else throw Lg(`\`processes\` has ${o.length} port-bound entries (${o.map(u=>u.name).join(", ")}); set \`primary: \` to name the one Playwright should drive`);let c=new Set(s.map(u=>u.name));if(!c.has(a))throw Lg(`\`primary: ${a}\` does not match any process name (${[...c].join(", ")})`);if(s.find(u=>u.name===a)?.no_port)throw Lg(`\`primary: ${a}\` cannot be a no_port process`);return{processes:s,primary:a}}if(n.command!==void 0){if(n.no_port===!0)throw Lg("a single-`command` recipe drives a URL, so it cannot set `no_port: true` \u2014 use the `processes` form for a portless helper");return{processes:[{name:"app",command:uSt(n.command,"`command`"),cwd:r(n.cwd),port_env:typeof n.port_env=="string"?n.port_env:void 0,ready_url:typeof n.ready_url=="string"?n.ready_url:void 0,env:i(n.env)}],primary:"app"}}return null}function n1(e){let t=Cye(e);return t?t.processes.filter(n=>n.service||n.requires_tool!==void 0&&n.name!==t.primary):[]}function jKn(e){let t=new Map(e.map(o=>[o.name,o])),n=new Set,r=new Set,i=[],s=(o,a)=>{if(r.has(o))return;if(n.has(o))throw new Error(`Cyclic depends_on in boot processes: ${[...a,o].join(" \u2192 ")}`);let c=t.get(o);if(!c)throw new Error(`depends_on references unknown process "${o}" (referenced from "${a.at(-1)??"?"}")`);n.add(o);for(let u of c.depends_on??[])s(u,[...a,o]);n.delete(o),r.add(o),i.push(c)};for(let o of e)s(o.name,[]);return i}async function Mye(e,t,n){if(t.length===0)throw new Error("spawnBootGroup: at least one process spec required");let r=jKn(t),i=new Map;for(let l of t)i.set(l.name,l.no_port?null:await CKn());let s=t.find(l=>l.name===n);if(!s)throw new Error(`primary "${n}" not found in process group`);if(s.no_port)throw new Error(`primary "${n}" cannot have no_port: true`);let o=setTimeout(()=>{console.error(`[haiku-view-boot] TTL hit for session ${e} \u2014 killing process group`),F0(e)},NKn);o.unref?.();let a={sessionId:e,processes:[],primaryName:n,primaryPort:i.get(n)??null,startedAt:Date.now(),ttlTimer:o};t1.set(e,a);try{for(let l of r){let d=i.get(l.name)??null,f=l.port_env??"PORT",p={...process.env,...l.env??{},HOST:"127.0.0.1"};d!==null&&(p[f]=String(d));for(let b of l.depends_on??[]){let S=i.get(b);if(S!=null){let E=b.toUpperCase().replace(/-/g,"_");p[`${E}_PORT`]=String(S),p[`${E}_URL`]=`http://127.0.0.1:${S}`}}let[h,...m]=l.command;if(!h)throw new Error(`process "${l.name}" has empty command`);let g=xKn(h,m,{cwd:l.cwd,env:p,stdio:"ignore",detached:!1}),y=l.command.join(" ");if(g.on("error",b=>{console.error(`[haiku-view-boot] process "${l.name}" (${y}) spawn error:`,b.message)}),a.processes.push({name:l.name,child:g,port:d,command:y,cwd:l.cwd}),d!==null)if(l.ready_url){let b=l.ready_url.replace("{port}",String(d));await UKn(b)}else await DKn(d)}}catch(l){throw F0(e),l}let c=a.processes.map(l=>({name:l.name,port:l.port,command:l.command,pid:l.child.pid??-1})),u=c.find(l=>l.name===n);if(!u)throw new Error(`primary "${n}" missing from spawned set`);return{processes:c,primary:u}}async function ySt(e,t){let n={name:"app",command:t.command,cwd:t.cwd};return(await Mye(e,[n],"app")).primary}function F0(e){let t=t1.get(e);if(!t)return!1;clearTimeout(t.ttlTimer),t1.delete(e);for(let n of[...t.processes].reverse()){try{n.child.kill("SIGTERM")}catch{}setTimeout(()=>{try{n.child.kill("SIGKILL")}catch{}},2e3).unref?.()}return!0}function SSt(){let e=0;for(let[t]of t1)$t(t)||(F0(t),e+=1);return e}function HKn(){if(lSt)return;lSt=!0;let e=()=>{for(let[t]of t1)F0(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var fSt,t1,NKn,VY,pSt,gSt,lSt,r1=v(()=>{"use strict";fSt=Re(Kt(),1);$c();t1=new Map,NKn=1800*1e3,VY=60*1e3,pSt=200;gSt=".haiku/boot.md";lSt=!1;HKn()});import{lstatSync as Dye,mkdirSync as qKn,realpathSync as bSt,renameSync as BKn,unlinkSync as zKn}from"node:fs";import{isAbsolute as GKn,relative as VKn,resolve as WY,sep as KY}from"node:path";function pv(e,t,n,r){let i=WY(e),s=WY(t),o=WY(r),a;try{if(Dye(i).isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`intent root '${i}' is itself a symlink \u2014 refusing`};a=bSt(i)}catch(d){return{ok:!1,code:"parent_open_failed",detail:`cannot stat intent root: ${j0(d)}`}}if(s!==i&&!s.startsWith(`${i}${KY}`))return{ok:!1,code:"parent_chain_escape",detail:`parent '${s}' is not inside intent root '${i}'`};if(!o.startsWith(`${s}${KY}`))return{ok:!1,code:"parent_chain_escape",detail:`dest '${o}' is not directly below parent '${s}'`};let c=VKn(i,s),u=c===""?[]:c.split(KY),l=i;for(let d of u){if(d===""||d==="."||d===".."||GKn(d))return{ok:!1,code:"parent_chain_escape",detail:`chain segment '${d}' is invalid`};l=WY(l,d);try{let f=Dye(l);if(f.isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`segment '${l}' is a symbolic link \u2014 refusing to traverse`};if(!f.isDirectory())return{ok:!1,code:"parent_chain_escape",detail:`segment '${l}' exists but is not a directory`}}catch(f){if(f.code==="ENOENT")try{qKn(l)}catch(h){if(h.code==="EEXIST")try{let g=Dye(l);if(g.isSymbolicLink())return{ok:!1,code:"parent_chain_contains_symlink",detail:`segment '${l}' became a symlink during mkdir race`};if(!g.isDirectory())return{ok:!1,code:"parent_chain_escape",detail:`segment '${l}' became a non-directory during mkdir race`}}catch(g){return{ok:!1,code:"parent_open_failed",detail:`cannot stat segment after EEXIST: ${j0(g)}`}}else return{ok:!1,code:"parent_open_failed",detail:`mkdir '${l}' failed: ${j0(h)}`}}else return{ok:!1,code:"parent_open_failed",detail:`lstat '${l}' failed: ${j0(f)}`}}}try{let d=bSt(s);if(d!==a&&!d.startsWith(`${a}${KY}`))return{ok:!1,code:"parent_chain_escape",detail:`realpath(parent)='${d}' is not inside realpath(intentRoot)='${a}'`}}catch(d){return{ok:!1,code:"parent_open_failed",detail:`realpath(parent) failed: ${j0(d)}`}}try{BKn(n,o)}catch(d){return{ok:!1,code:"rename_failed",detail:`rename '${n}' \u2192 '${o}' failed: ${j0(d)}`}}return{ok:!0}}function j0(e){return e instanceof Error?e.message:String(e)}function H0(e){try{zKn(e)}catch{}}var YY=v(()=>{"use strict"});var a1={};Ar(a1,{applyFeedbackInvalidations:()=>Uye,drainPendingDispatches:()=>YKn,stampSingleDispatch:()=>Lye,stashPendingDispatch:()=>WKn,stashPendingIntentReview:()=>KKn});import{existsSync as i1,readdirSync as _St,readFileSync as s1}from"node:fs";import{join as Ug}from"node:path";function o1(e){let t=Ug(Te(),"intents",e,"intent.md");if(!i1(t))return null;let n=s1(t,"utf8"),r=re(n);return{path:t,fm:r.data||{}}}function QY(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function TSt(e,t){let n=e[t];return!n||typeof n!="object"||Array.isArray(n)?{}:n}function WKn(e,t,n,r,i){let s=o1(e);if(!s)return;let o=t==="review"?JY:XY,a={...QY(s.fm,o)},c={...a[n]??{}};c[r]={dispatched_at:new Date().toISOString(),units:[...i]},a[n]=c,Me(s.path,o,a)}function KKn(e,t){if(t==="user")return;let n=o1(e);if(!n)return;let r={...TSt(n.fm,ZY)};r[t]={dispatched_at:new Date().toISOString()},Me(n.path,ZY,r)}function vSt(e){let{intentDir:t,stage:n,role:r,units:i,dispatchedAt:s,kind:o}=e,a=[],c=[];for(let u of i){let l=Ug(t,"stages",n,"units",`${u}.md`);if(!i1(l))continue;if(s&&ZKn({intentDir:t,stage:n,targetUnit:u,role:r,sinceIso:s})){c.push(u);continue}let d=s1(l,"utf8"),p=re(d).data;if(o==="review"){let h=p.reviews&&typeof p.reviews=="object"?{...p.reviews}:{},m=Array.isArray(p.inputs)?p.inputs:[];h[r]=Cl(l,{intentDir:t,unitInputs:m}),Me(l,"reviews",h)}else{let h=Array.isArray(p.outputs)?p.outputs:[],m=p.approvals&&typeof p.approvals=="object"?{...p.approvals}:{};m[r]=Bd(t,h),Me(l,"approvals",m)}a.push(u)}return{stamped:a,skipped:c}}function Lye(e,t,n,r){let i=o1(e);if(!i)return{found:!1,stamped:[],skipped:[]};let s=t==="review"?JY:XY,o=QY(i.fm,s),a=o[n]?.[r];if(!a||!Array.isArray(a.units))return{found:!1,stamped:[],skipped:[]};let c=Ug(Te(),"intents",e),{stamped:u,skipped:l}=vSt({intentDir:c,stage:n,role:r,units:a.units,dispatchedAt:a.dispatched_at,kind:t}),d={...o[n]??{}};return delete d[r],Object.keys(d).length===0?delete o[n]:o[n]=d,Me(i.path,s,o),{found:!0,stamped:u,skipped:l}}function YKn(e){let t=o1(e);if(!t)return!1;let n=Te(),r=Ug(n,"intents",e),i=!1;for(let o of["review","approval"]){let a=o==="review"?JY:XY,c=QY(t.fm,a);if(Object.keys(c).length!==0){for(let u of Object.keys(c)){let l=c[u]??{};for(let d of Object.keys(l)){let f=l[d];if(!f||!Array.isArray(f.units))continue;vSt({intentDir:r,stage:u,role:d,units:f.units,dispatchedAt:f.dispatched_at,kind:o}).stamped.length>0&&(i=!0)}}Me(t.path,a,{})}}let s=TSt(t.fm,ZY);if(Object.keys(s).length>0){let o=t.fm.approvals&&typeof t.fm.approvals=="object"?{...t.fm.approvals}:{},a=!1;for(let c of Object.keys(s)){let u=s[c];u?.dispatched_at&&(JKn({intentDir:r,role:c,sinceIso:u.dispatched_at})||(o[c]={at:new Date().toISOString()},a=!0,i=!0))}a&&Me(t.path,"approvals",o),Me(t.path,ZY,{})}return i}function ZKn(e){let t=Ug(e.intentDir,"stages",e.stage,"feedback");if(!i1(t))return!1;for(let n of _St(t,{withFileTypes:!0})){if(!n.isFile()||!n.name.endsWith(".md"))continue;let r=Ug(t,n.name),i=s1(r,"utf8"),o=re(i).data;if(o.closed_at||o.rejected_at)continue;let a=o.targets??{};if(a.unit!==e.targetUnit||!(Array.isArray(a.invalidates)?a.invalidates:[]).includes(e.role)||!u0(o.severity))continue;let u=o.created_at??"";if(!(u&&uc!==e.unit);a.length!==o.units.length&&(a.length===0?delete r[s]:r[s]={...o,units:a},i=!0)}i&&(Object.keys(r).length===0&&delete n[e.stage],Me(t.path,e.field,n))}var JY,XY,ZY,hv=v(()=>{"use strict";ji();Ge();Xf();JY="_pending_review_dispatches",XY="_pending_approval_dispatches",ZY="_pending_intent_review_dispatches"});import{existsSync as XKn,readFileSync as QKn}from"node:fs";import{join as $Kn}from"node:path";function ASt(e){let t=e.fbFm.targets??{},n=typeof t.unit=="string"?t.unit:void 0,r=Array.isArray(t.invalidates)?t.invalidates.filter(i=>typeof i=="string"):[];if(n&&e.stage&&r.length>0)try{Uye({slug:e.slug,stage:e.stage,targetUnit:n,invalidates:r})}catch(i){Ke("haiku.feedback.invalidations_failed",{intent:e.slug,stage:e.stage,feedback_id:e.feedbackId,target_unit:n,invalidates:r.join(","),error:String(i?.message??i)})}if(n&&e.stage)try{e3n({slug:e.slug,stage:e.stage,targetUnit:n,invalidates:r})}catch(i){Ke("haiku.feedback.witness_restamp_failed",{intent:e.slug,stage:e.stage,feedback_id:e.feedbackId,target_unit:n,error:String(i?.message??i)})}}function e3n(e){let t=Te(),n=$Kn(t,"intents",e.slug,"stages",e.stage,"units",`${e.targetUnit}.md`);if(!XKn(n))return;let r=Cg(n);if(!r)return;let i=QKn(n,"utf8"),o=(0,RSt.default)(i).data,a=new Set(e.invalidates),c=d=>{let f=o[d];if(!f||typeof f!="object"||Array.isArray(f))return null;let p={...f},h=!1;for(let[m,g]of Object.entries(p)){if(a.has(m)||!g||typeof g!="object"||Array.isArray(g))continue;let y=g;typeof y.at=="string"&&y.body_sha256!==r&&(p[m]={...y,body_sha256:r},h=!0)}return h?p:null},u=c("reviews");u&&Me(n,"reviews",u);let l=c("approvals");l&&Me(n,"approvals",l)}var RSt,wSt=v(()=>{"use strict";RSt=Re(Kt(),1);hv();Xf();Ge();vo()});var CSt={};Ar(CSt,{__testOnly:()=>l3n,withIntentDispatchLock:()=>q0,withIntentMainLock:()=>nZ,withStageLock:()=>jb});import{existsSync as t3n,mkdirSync as ISt,readFileSync as n3n,rmSync as xSt,statSync as r3n,writeFileSync as i3n}from"node:fs";import{join as $Y}from"node:path";function OSt(){return $Y(Br(),".haiku","locks")}function a3n(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function c3n(e){let t=$Y(e,"holder.json");if(!t3n(t))return null;try{let n=n3n(t,"utf8"),r=JSON.parse(n);return typeof r.pid=="number"&&typeof r.at=="number"&&typeof r.tag=="string"?r:null}catch{return null}}function PSt(e){let t;try{t=Date.now()-r3n(e).mtimeMs}catch{return!1}if(t{"use strict";Ge();s3n=50,kSt=3e4,o3n=5*6e4;l3n={acquireLock:eZ,releaseLock:tZ,lockRoot:OSt,isStale:PSt}});function c1(e){return Array.isArray(e.iterations)?e.iterations:[]}function d3n(e){let t=e.reviews;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function Fye(e){let t=e.approvals;return t===null||typeof t!="object"||Array.isArray(t)?{}:t}function MSt(e){let t=e.fm.started_at;return typeof t=="string"&&t.length>0||t instanceof Date&&!Number.isNaN(t.getTime())?!0:c1(e.fm).length>0}function f3n(e,t,n,r){return r===!0?"completed":r===!1?e.length===0?"pending":e.some(MSt)?"active":"pending":e.length===0||!e.some(MSt)?"pending":e.every(s=>{let o=c1(s.fm);if(o.length===0)return!1;let a=o[o.length-1];if(a.result!=="advance"||t.length>0&&a.hat!==t[t.length-1])return!1;let c=Fye(s.fm);return n.every(u=>c[u])})?"completed":"active"}function p3n(e,t,n,r,i,s){if(i!=="autopilot"&&(s===!1||s===null&&e.length===0)||e.length===0)return"elaborate";for(let o of n)if(e.some(c=>!d3n(c.fm)[o]))return"review";if(t.length>0&&!e.every(a=>{let c=c1(a.fm);if(c.length===0)return!1;let u=c[c.length-1];return u.result==="advance"&&u.hat===t[t.length-1]}))return"execute";for(let o of r)if(e.some(c=>!Fye(c.fm)[o]))return"gate";return null}function h3n(e,t){return e.length===0?null:e.every(r=>{let i=Fye(r.fm);return t.every(s=>i[s])})?"advanced":null}function DSt(e){return typeof e=="string"&&e.length>0?e:e instanceof Date&&!Number.isNaN(e.getTime())?e.toISOString():null}function m3n(e){return e.map(n=>DSt(n.fm.started_at)).filter(n=>n!==null).sort()[0]??null}function g3n(e,t){if(t!=="completed")return null;let n=null;for(let r of e){let i=c1(r.fm);if(i.length===0)continue;let s=i[i.length-1];if(s.result!=="advance")continue;let o=DSt(s.completed_at);o!==null&&(n===null||o>n)&&(n=o)}return n}function y3n(e){let t=0;for(let n of e){let r=c1(n.fm);r.length>t&&(t=r.length)}return t}function jye(e){let{stage:t,units:n,intentMode:r,hats:i=[],reviewRoles:s=[],approvalRoles:o=[],stageMergedIntoMain:a=null,elaborationVerified:c=null}=e,u=f3n(n,i,o,a),l=u==="completed"?null:p3n(n,i,s,o,r,c),d=h3n(n,o),f=m3n(n),p=g3n(n,u),h=y3n(n);return{stage:t,status:u,phase:l,started_at:f,completed_at:p,gate_outcome:d,visits:h}}var Hye=v(()=>{});import{execFileSync as iZ}from"node:child_process";import{existsSync as USt,readdirSync as S3n,readFileSync as b3n}from"node:fs";import{basename as FSt,join as rZ}from"node:path";function qye(e){if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(qye);if(e!==null&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=qye(r);return t}return e}function HSt(e){try{let t=(0,jSt.default)(e).data;return qye(t)}catch{return null}}function qSt(e){if(!USt(e))return null;try{return HSt(b3n(e,"utf8"))}catch{return null}}function E3n(e){let t=rZ(e,"units");return USt(t)?S3n(t,{withFileTypes:!0}).filter(n=>n.isFile()&&n.name.endsWith(".md")).sort((n,r)=>n.name.localeCompare(r.name)).map(n=>{let r=qSt(rZ(t,n.name))??{};return{name:FSt(n.name,".md"),fm:r}}):[]}function _3n(e,t){if(!ve())return null;try{return iZ("git",["show",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return null}}function BSt(e,t){let n=_3n(e,t);return n==null?null:HSt(n)}function T3n(e,t){if(!ve())return[];try{return iZ("git",["ls-tree","--name-only",`${e}:${t}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).map(r=>r.trim()).filter(r=>r.endsWith(".md")).sort((r,i)=>r.localeCompare(i))}catch{return[]}}function v3n(e,t,n){let r=`.haiku/intents/${t}/stages/${n}/units`,i=T3n(e,r);return i.length===0?[]:i.map(s=>{let o=BSt(e,`${r}/${s}`)??{};return{name:FSt(s,".md"),fm:o}})}function Bye(e,t,n){return n==="autopilot"?["spec"]:["spec",...Object.keys(Tl(e,t)).sort(),"user"]}function zye(e,t,n){return n==="autopilot"?["spec","quality_gates"]:["spec","quality_gates",...Object.keys(Tl(e,t)).sort(),"user"]}function R3n(e,t){if(!ve())return!1;let n=`haiku/${e}/main`,r=`.haiku/intents/${e}/stages/${t}/units`;try{return iZ("git",["ls-tree","--name-only",`${n}:${r}`],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).some(s=>s.trim().endsWith(".md"))}catch{return!1}}function LSt(e){if(!ve())return!1;try{return iZ("git",["rev-parse","--verify",e],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!1}}function mv(e){let{slug:t,studio:n,stage:r,intentDir:i,intentMode:s}=e,o=rZ(i,"stages",r),a=Es(n,r),c=Bye(n,r,s),u=zye(n,r,s),l=`haiku/${t}/main`,d=`haiku/${t}/${r}`,f=ve(),p=f&&LSt(l),m=f&&LSt(d)?d:p?l:null,g=m?v3n(m,t,r):E3n(o),y=p?R3n(t,r):null,b=rZ(o,"elaboration.md"),S=`.haiku/intents/${t}/stages/${r}/elaboration.md`,E=m?BSt(m,S):qSt(b),_=null;return E!==null&&(_=(typeof E.verified_at=="string"?E.verified_at:"").length>0),jye({stage:r,units:g,intentMode:s,hats:a,reviewRoles:c,approvalRoles:u,stageMergedIntoMain:y,elaborationVerified:_})}var jSt,u1=v(()=>{"use strict";Hye();jSt=Re(Kt(),1);bb();Kn();ns()});import{appendFileSync as A3n,existsSync as mpi,mkdirSync as zSt,readFileSync as gpi,writeFileSync as w3n}from"node:fs";import{dirname as GSt}from"node:path";function VSt(e,t){try{zSt(GSt(e),{recursive:!0}),w3n(e,`${JSON.stringify(t,null,2)} `)}catch{}}function qi(e,t){try{let n=e.replace(/\.json$/,".jsonl");zSt(GSt(n),{recursive:!0});let r={...t,ts:new Date().toISOString()};A3n(n,`${JSON.stringify(r)} -`)}catch{}}var c1=v(()=>{"use strict"});var WSt,KSt,YSt,ZSt=v(()=>{"use strict";WSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],KSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],YSt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as k3n}from"node:crypto";import{existsSync as JSt,readdirSync as I3n,readFileSync as XSt,writeFileSync as x3n}from"node:fs";import{join as iZ}from"node:path";function O3n(e){let t=JSON.stringify(e,Object.keys(e).sort());return k3n("sha256").update(t).digest("hex").slice(0,16)}function zye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function P3n(e,t,n){if(!n)return{};let r=iZ(e,"intents",t,"stages",n,"units");if(!JSt(r))return{};for(let i of I3n(r)){if(!i.endsWith(".md"))continue;let s=XSt(iZ(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return zye(o,YSt)}return{}}function ci(e){if(!Mi().hooks)try{let t=Te(),n=iZ(t,"intents",e,"intent.md");if(!JSt(n))return;let r=XSt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=zye(i,WSt),a={};if(s){let f=B0(e,s),p=Hb(f);a=zye(p,KSt)}let c=P3n(t,e,s),l=O3n({intent:o,stage:a,unit:c}),d=iZ(t,"intents",e,".fsm_checksum");x3n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var sZ=v(()=>{"use strict";_f();Ge();ZSt()});function Be(e,t,n){if(t(e))return null;let r=(t.errors??[]).map(a=>({path:a.instancePath||"/",keyword:a.keyword,message:a.message??"(no message)",params:a.params})),i=He.errorsText(t.errors??null,{separator:"; "}),o={error:`${n}_input_invalid`,tool:n,message:`Invalid arguments for ${n}: ${i}. Check field types and required fields against the tool's inputSchema.`,errors:r};return{content:[{type:"text",text:JSON.stringify(o,null,2)}],structuredContent:o,isError:!0}}var uo=v(()=>{"use strict";Ia()});var _Z={};Ar(_Z,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>XT,AGENT_AUTHORABLE_UNIT_FIELDS:()=>Mb,CREATE_TIME_FB_FIELDS:()=>DL,ERROR_OUTPUT_SCHEMA:()=>sye,FEEDBACK_ASSESSOR_HAT:()=>bbt,FEEDBACK_ORIGINS:()=>S9n,FEEDBACK_STATUSES:()=>qb,FSM_DRIVEN_FB_FIELDS:()=>ML,FSM_DRIVEN_INTENT_FIELDS:()=>QT,FSM_DRIVEN_UNIT_FIELDS:()=>Jf,INTENT_FRONTMATTER_SCHEMA:()=>HL,INTENT_TITLE_MAX_LENGTH:()=>tSe,IntentScopeTickPersistError:()=>Gd,MAX_CONCURRENT_SUBAGENTS:()=>cv,MAX_FIX_LOOP_BOLTS:()=>Dg,MAX_INTEGRATOR_ATTEMPTS:()=>b9n,MAX_RATIONALE_BYTES:()=>Zye,MAX_RATIONALE_EXCERPT_BYTES:()=>Jye,MAX_STAGE_ITERATIONS:()=>Df,MAX_UNIT_BOLTS:()=>gv,OK_OUTPUT_SCHEMA:()=>oye,REJECT_LOOP_MIN_REPEATS:()=>fZ,STAGE_STATE_FIELDS:()=>aye,STAGE_STATE_SCHEMA:()=>wY,UNIT_FRONTMATTER_SCHEMA:()=>$T,_resetIsGitRepoForTests:()=>Aft,appendFeedbackIteration:()=>R9n,appendFeedbackReply:()=>mSe,appendStageIteration:()=>oSe,applyAutoFixes:()=>nSe,closeCurrentStageIteration:()=>aSe,completeUnitIteration:()=>pZ,computeFeedbackSignature:()=>fbt,countConsecutiveSameRejects:()=>dbt,countInFlightUnits:()=>Tbt,countPendingFeedback:()=>w9n,countUnitBolts:()=>lbt,deleteFeedbackFile:()=>EZ,deleteFrontmatterFields:()=>Yh,deriveAuthorType:()=>lSe,deriveFeedbackIdFromFilename:()=>Abt,deriveFeedbackStatus:()=>np,deriveUnitStatus:()=>G0,detectDagCycles:()=>ybt,detectSettledDuplicate:()=>pbt,dismissFeedbackClosureReply:()=>gSe,ensureWorktreesGitignored:()=>ZD,feedbackDir:()=>lo,feedbackSeverityRank:()=>Xc,findFeedbackFile:()=>bc,findHaikuRoot:()=>Te,formatFeedbackId:()=>zd,getIntentScopeTickCounter:()=>y1,getStageIterationCount:()=>mbt,gitCommitAll:()=>hZ,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>jg,gitCommitStateIfDirty:()=>cSe,handleStateTool:()=>SSe,incrementFeedbackBolt:()=>k9n,intentDir:()=>pe,intentFromCurrentBranch:()=>yv,intentTitleNeedsRepair:()=>h1,isGitRepo:()=>ve,isIntentArchived:()=>g1,isIntentLocked:()=>m1,listInstalledSkills:()=>K0,listVisibleIntentSlugs:()=>m9n,listVisibleIntents:()=>Fg,matchesGlob:()=>Xye,migrateIterationReasonsOnRead:()=>Qye,migrateMisplacedWorktrees:()=>ubt,moveFeedbackFile:()=>Rbt,normalizeLegacyFeedbackStatus:()=>SZ,normalizeRejectReason:()=>iSe,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>dSe,persistDesignDirectionUploads:()=>fSe,pickUndispatchedUnitBlocks:()=>_bt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>Z3n,readDecisionLog:()=>v3,readFeedbackFiles:()=>Us,readIntentBody:()=>Kh,readJson:()=>Hb,repairDeclaredOutput:()=>yZ,resolveUnitHats:()=>eSe,runInlineQualityGates:()=>rSe,safeMkdirAndRename:()=>pv,setFrontmatterField:()=>Me,setHaikuRootForTests:()=>kft,setIsGitRepoForTests:()=>wft,setUnitFrontmatterField:()=>g9n,slugifyTitle:()=>bZ,stageDir:()=>ar,stageStatePath:()=>B0,stampDispatchClaim:()=>Ebt,stampUnitHatLease:()=>pSe,startUnitIteration:()=>f1,stateToolDefs:()=>ySe,syncSessionMetadata:()=>Xr,timestamp:()=>En,unitIntentDir:()=>X3n,unitOutputExists:()=>Wh,unitPath:()=>Pa,updateFeedbackFile:()=>hSe,validateBranch:()=>uSe,validateIntentSchema:()=>R0,validateRationaleCaps:()=>F3n,validateSlugArgs:()=>ND,validateUnitFrontmatter:()=>gbt,validateUnitSchema:()=>Ng,validateUnitScope:()=>dZ,writeFeedbackFile:()=>Qo,writeJson:()=>p1});import{execFileSync as Na,execSync as Vh,spawn as N3n,spawnSync as oZ}from"node:child_process";import{randomBytes as C3n}from"node:crypto";import{appendFileSync as M3n,existsSync as ue,lstatSync as D3n,mkdirSync as Dl,readdirSync as an,readFileSync as Pe,renameSync as ibt,rmSync as Yye,statSync as sbt,unlinkSync as V0,writeFileSync as In}from"node:fs";import{homedir as L3n}from"node:os";import{basename as U3n,dirname as W0,join as ne,resolve as tp,sep as z0}from"node:path";import{readdirSync as d9n}from"node:fs";function QSt(e){return Buffer.byteLength(e,"utf-8")}function F3n(e){let t=QSt(e.agent_rationale);if(t>Zye)return{kind:"agent_rationale_too_long",bytes:t,cap:Zye};for(let n=0;nJye)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:Jye}}return null}function h1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>tSe||/\n/.test(t))}function nSe(e,t,n){let r=ne(e,t,"intent.md");if(!ue(r))return{applied:[],remaining:n};let i=[],s=[r],o=ne(e,t,"stages");if(ue(o))for(let y of an(o,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=ne(o,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(ne(b,S.name))}for(let y of s){let b=Pe(y,"utf8"),{text:S,removed:E}=pg(b);if(E.length===0)continue;In(y,S);let _=y.startsWith(ne(e,t))?y.slice(ne(e,t).length+1):y;i.push({intent:t,field:`${_}:frontmatter`,description:`Deduped frontmatter keys: ${E.join(", ")}`})}let a=n.filter(y=>!y.field.endsWith(":frontmatter-duplicate-keys")),c=Pe(r,"utf8"),u=(0,Ct.default)(c),l=u.data,d=u.content,f=!1,p=[];for(let y of a){let b=!1;if(y.field==="title"&&typeof l.title=="string"&&h1(l.title)){let S=l.title.replace(/\s+/g," ").trim(),E=S.length>120?`${S.slice(0,117)}...`:S;p.push({intent:t,field:"title",severity:"error",message:`Title is ${S.length} chars \u2014 looks auto-truncated or is a full description, not a title`,fix:`Rewrite as a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Preserve the current text as a paragraph in the body under the H1 if it isn't there already. Original: "${E}"`}),b=!0}if(y.field==="created"&&l.created&&!l.created_at&&(l.created_at=l.created,delete l.created,i.push({intent:t,field:"created",description:"Renamed legacy `created` to `created_at`"}),b=!0,f=!0),y.field==="created_at"&&!l.created&&!l.created_at){let S=j3n(r);l.created_at=S?S.mtime.toISOString():new Date().toISOString(),i.push({intent:t,field:"created_at",description:"Added `created_at` from file mtime"}),b=!0,f=!0}if(y.field==="mode"&&!l.mode&&(l.mode="continuous",i.push({intent:t,field:"mode",description:"Defaulted `mode` to 'continuous'"}),b=!0,f=!0),y.field==="stages"&&y.message.startsWith("Stages don't match")){let S=y.fix.match(/Expected: \[([^\]]+)\]/);if(S){let E=S[1].split(",").map(_=>_.trim()).filter(Boolean);E.length>0&&(l.stages=E,i.push({intent:t,field:"stages",description:`Updated stages to match studio definition: [${E.join(", ")}]`}),b=!0,f=!0)}}if(y.field==="created_at"&&y.message.includes("git history")){let S=y.fix.match(/'([^']+)' \(from git/);S&&(l.created_at=S[1],i.push({intent:t,field:"created_at",description:`Updated created_at to '${S[1]}' from git history`}),b=!0,f=!0)}if(y.field==="started_at"&&y.fix.includes("from git")){let S=y.fix.match(/'([^']+)' \(from git/);S&&(l.started_at=S[1],i.push({intent:t,field:"started_at",description:`Updated started_at to '${S[1]}' from git history`}),b=!0,f=!0)}b||p.push(y)}f&&In(r,Ct.default.stringify(d,l));let h=ne(e,t,"stages");if(ue(h))for(let y of an(h,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=ne(h,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0})){if(!(S.isFile()&&S.name.endsWith(".md")))continue;let E=ne(b,S.name),_=Pe(E,"utf8"),T=(0,Ct.default)(_);if("type"in T.data){let{type:R,...A}=T.data;In(E,Ct.default.stringify(T.content,A)),i.push({intent:t,field:`stages/${y.name}/units/${S.name}:type`,description:"Removed deprecated `type` field from unit"})}}}let m=[],g=/^stages\/([^/]+)\/units\/([^/]+):inputs$/;for(let y of p){let b=y.field.match(g);if(!(b&&y.message.includes("Unit has no `inputs:`"))||typeof y.fix!="string"){m.push(y);continue}let S=b[1],E=b[2],_=ne(e,t,"stages",S,"units",E);if(!ue(_)){m.push(y);continue}let T=[],R=y.fix.match(/upstream paths:\s*(.+?)\s*$/);if(R)T=R[1].split(",").map(P=>P.trim()).filter(Boolean);else{let P=["intent.md"],N=ne(e,t,"knowledge");if(ue(N))for(let C of an(N))C.endsWith(".md")&&P.push(`knowledge/${C}`);T=P}if(T.length===0){m.push(y);continue}let A=Pe(_,"utf8"),x=(0,Ct.default)(A);(x.data.inputs||[]).length>0||(x.data.inputs=T,In(_,Ct.default.stringify(x.content,x.data)),i.push({intent:t,field:y.field,description:`Linked ${T.length} input(s): ${T.join(", ")}`}))}return{applied:i,remaining:m}}function j3n(e){try{return sbt(e)}catch{return null}}function H3n(e,t){if(!ve())return null;try{let r=Na("git",["log","--diff-filter=A","--follow","--format=%aI","--",e],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"],...t?{cwd:t}:{}}).trim().split(` -`).filter(Boolean);return r.length>0?r[r.length-1]:null}catch{return null}}function abt(e){let t=new Map,n=nn(),r=[ne(e,"studios"),ne(n,"studios")];for(let i of r)if(ue(i))for(let s of an(i,{withFileTypes:!0})){if(!s.isDirectory()||t.has(s.name))continue;let o=ne(i,s.name,"STUDIO.md");if(!ue(o))continue;let{data:a}=re(Pe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function gZ(e,t,n,r){let i=ne(e,t,"intent.md");if(!ue(i))return[];let s=Pe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=pg(s);if(c.length>0&&a.push({intent:t,field:"intent.md:frontmatter-duplicate-keys",severity:"warning",message:`Duplicate frontmatter keys: ${c.join(", ")}`,fix:"Rewrite frontmatter with duplicate keys removed (last value wins)"}),!o.title||typeof o.title=="string"&&o.title.trim()==="")a.push({intent:t,field:"title",severity:"error",message:"Missing title field",fix:"Add `title` field with a short one-line name (\u226480 chars)"});else if(typeof o.title=="string"&&h1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${tSe})`;a.push({intent:t,field:"title",severity:"error",message:`Title should be a short one-liner \u2014 ${f}`,fix:"Rewrite `title` as a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Do NOT truncate the current value \u2014 write a deliberate human-readable summary. Preserve the original text as a paragraph in the body under the H1 if it isn't there already."})}o.studio||a.push({intent:t,field:"studio",severity:"error",message:"Missing studio field",fix:"Set `studio` to an available studio"});let u=o.studio;if(u&&!n.has(u)&&!si(u)){let f=Array.from(n.keys()).join(", ");a.push({intent:t,field:"studio",severity:"error",message:`Studio '${u}' not found`,fix:`Studio '${u}' not found. Available: ${f}`})}let l=o.stages;if(!Array.isArray(l)||l.length===0)if(u&&n.has(u)){let d=n.get(u)?.join(", ");a.push({intent:t,field:"stages",severity:"error",message:"Missing or empty stages array",fix:`Set \`stages\` to match studio definition: [${d}]`})}else a.push({intent:t,field:"stages",severity:"error",message:"Missing or empty stages array",fix:"Set `stages` to match studio definition"});if(Array.isArray(l)&&l.length>0&&u){let d=n.get(u);if(d){let f=l;JSON.stringify(d)!==JSON.stringify(f)&&a.push({intent:t,field:"stages",severity:"warning",message:"Stages don't match studio definition",fix:`Stages don't match studio definition. Expected: [${d.join(", ")}], got: [${f.join(", ")}]`})}}if(o.mode||a.push({intent:t,field:"mode",severity:"error",message:"Missing mode field",fix:"Run `haiku_run_next { intent: }` \u2014 the cursor will emit `select_mode` and the engine surfaces the picker. (Auto-apply defaults to 'continuous' as a recovery fallback for corrupted intents.)"}),o.created&&!o.created_at&&a.push({intent:t,field:"created",severity:"warning",message:"Legacy `created` field found",fix:"Rename `created` to `created_at`"}),o.created||o.created_at||a.push({intent:t,field:"created_at",severity:"warning",message:"Missing created_at field",fix:"Add `created_at` with an ISO date"}),Array.isArray(l))for(let d of l){let f=ne(e,t,"stages",d,"units");if(!ue(f))continue;let p=[];if(u){let h=null;for(let m of r){let g=ne(m,u,"stages",d,"STAGE.md");if(!ue(g))continue;let{data:y}=re(Pe(g,"utf8"));Array.isArray(y.inputs)&&y.inputs.length>0&&(h=y.inputs);break}if(h){let m=ne(e,t);for(let g of h)for(let y of r)for(let b of["discovery","outputs"]){let S=ne(y,u,"stages",g.stage,b);if(ue(S))for(let E of an(S).filter(_=>_.endsWith(".md"))){let _=Pe(ne(S,E),"utf8"),{data:T}=re(_),R=T.name||E.replace(/\.md$/,""),A=b==="outputs"?g.output:g.discovery;if(R!==A)continue;let x=T.location||"";if(!x)continue;let k=x.replace(/^\.haiku\/intents\/\{intent-slug\}\//,""),P=ne(m,k);ue(P)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;q3n.test(h.name)||a.push({intent:t,field:`stages/${d}/units/${h.name}`,severity:"warning",message:"Unit filename doesn't match expected pattern",fix:"Rename to match pattern: unit-NNN-slug-name.md (3-digit zero-padded; legacy 2-digit also resolves)"});let m=Pe(ne(f,h.name),"utf8"),{removed:g}=pg(m);g.length>0&&a.push({intent:t,field:`stages/${d}/units/${h.name}:frontmatter-duplicate-keys`,severity:"warning",message:`Duplicate frontmatter keys in unit: ${g.join(", ")}`,fix:"Rewrite frontmatter with duplicate keys removed (last value wins)"});let{data:y}=re(m),b=typeof o.plugin_version=="string";!y.status&&!b&&a.push({intent:t,field:`stages/${d}/units/${h.name}:status`,severity:"warning",message:"Unit missing 'status' field",fix:"Add `status` field to unit frontmatter"});let S=y.status||"";if(["complete","skipped","failed"].includes(S))continue;if((y.inputs||y.refs||[]).length===0){let _=p.length>0?`Add \`inputs:\` with upstream paths: ${p.join(", ")}`:"Add `inputs:` with at minimum the intent doc and discovery docs";a.push({intent:t,field:`stages/${d}/units/${h.name}:inputs`,severity:"error",message:"Unit has no `inputs:` \u2014 execution will be blocked",fix:_})}}}if(ve()){let d=ne(e,t,"intent.md"),f=H3n(d),p=o.created_at,h=o.started_at;if(f&&p){let m=f.slice(0,10),g=typeof p=="string"?p.slice(0,10):"";m!==g&&a.push({intent:t,field:"created_at",severity:"warning",message:`created_at '${g}' doesn't match git history '${m}'`,fix:`Update created_at to '${f}' (from git first commit)`})}if(f&&h){let m=f.slice(0,10),g=typeof h=="string"?h.slice(0,10):"";m!==g&&a.push({intent:t,field:"started_at",severity:"warning",message:`started_at '${g}' doesn't match git history '${m}'`,fix:`Update started_at to '${f}' (from git first commit)`})}f&&!h&&a.push({intent:t,field:"started_at",severity:"warning",message:"Missing started_at field",fix:`Set started_at to '${f}' (from git first commit)`})}return a}function cbt(e,t,n){let r=e??Te(),i=ne(r,"intents");if(!ue(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=abt(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!ue(ne(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=an(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&ue(ne(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=gZ(i,f,s,o);if(n&&p.length>0){let h=nSe(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=gZ(i,f,s,o))}p.length===0?u.push(f):(c.push(...p),d.push(...p))}return{scanned:a.length,cleanIntents:u,issues:c,applied:l,remaining:d}}function B3n(e,t=""){if(e.issues.length===0&&e.applied.length===0)return`${t}All intents passed validation. No repairs needed.`;let n=new Map;for(let i of e.issues){let s=n.get(i.intent)||[];s.push(i),n.set(i.intent,s)}let r=[`${t}# Intent Repair Report`,"",`Scanned ${e.scanned} intent(s). Auto-applied ${e.applied.length} fix(es). ${e.remaining.length} issue(s) remaining.`,""];if(e.applied.length>0){r.push("## Auto-Applied Fixes"),r.push("");for(let i of e.applied)r.push(`- **${i.intent}** / \`${i.field}\` \u2014 ${i.description}`);r.push("")}for(let[i,s]of n){let o=s.filter(c=>c.severity==="error").length,a=s.filter(c=>c.severity==="warning").length;r.push(`## ${i} \u2014 ${o} error(s), ${a} warning(s)`),r.push(""),r.push("| # | Severity | Field | Issue | Fix |"),r.push("|---|----------|-------|-------|-----|"),s.forEach((c,u)=>{r.push(`| ${u+1} | ${c.severity} | ${c.field} | ${c.message} | ${c.fix} |`)}),r.push("")}if(e.cleanIntents.length>0){r.push("## Intents with no issues");for(let i of e.cleanIntents)r.push(`- ${i}`);r.push("")}return e.remaining.length>0&&r.push("---","","Auto-fixes were applied for safe issues. Remaining issues need agent or user attention. For each:","1. Read the intent.md file","2. Apply the fix listed in the table above","3. After fixing, report what you changed"),r.join(` +`)}catch{}}var l1=v(()=>{"use strict"});var WSt,KSt,YSt,ZSt=v(()=>{"use strict";WSt=["status","active_stage","started_at","completed_at","phase","completion_review_dispatched","completion_review_skipped","completion_review_entered_at","completion_review_dispatched_at"],KSt=["status","phase","started_at","completed_at","gate_entered_at","gate_outcome"],YSt=["status","started_at","completed_at","bolt","hat","hat_started_at","scope_reject_attempts"]});import{createHash as k3n}from"node:crypto";import{existsSync as JSt,readdirSync as I3n,readFileSync as XSt,writeFileSync as x3n}from"node:fs";import{join as sZ}from"node:path";function O3n(e){let t=JSON.stringify(e,Object.keys(e).sort());return k3n("sha256").update(t).digest("hex").slice(0,16)}function Gye(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function P3n(e,t,n){if(!n)return{};let r=sZ(e,"intents",t,"stages",n,"units");if(!JSt(r))return{};for(let i of I3n(r)){if(!i.endsWith(".md"))continue;let s=XSt(sZ(r,i),"utf8"),{data:o}=re(s);if(o.status==="active")return Gye(o,YSt)}return{}}function ci(e){if(!Mi().hooks)try{let t=Te(),n=sZ(t,"intents",e,"intent.md");if(!JSt(n))return;let r=XSt(n,"utf8"),{data:i}=re(r),s=i.active_stage||"",o=Gye(i,WSt),a={};if(s){let f=z0(e,s),p=Hb(f);a=Gye(p,KSt)}let c=P3n(t,e,s),l=O3n({intent:o,stage:a,unit:c}),d=sZ(t,"intents",e,".fsm_checksum");x3n(d,l)}catch(t){console.error(`[haiku] sealIntentState(${e}) failed:`,t)}}var oZ=v(()=>{"use strict";_f();Ge();ZSt()});function Be(e,t,n){if(t(e))return null;let r=(t.errors??[]).map(a=>({path:a.instancePath||"/",keyword:a.keyword,message:a.message??"(no message)",params:a.params})),i=He.errorsText(t.errors??null,{separator:"; "}),o={error:`${n}_input_invalid`,tool:n,message:`Invalid arguments for ${n}: ${i}. Check field types and required fields against the tool's inputSchema.`,errors:r};return{content:[{type:"text",text:JSON.stringify(o,null,2)}],structuredContent:o,isError:!0}}var uo=v(()=>{"use strict";Ia()});var TZ={};Ar(TZ,{AGENT_AUTHORABLE_INTENT_FIELDS:()=>XT,AGENT_AUTHORABLE_UNIT_FIELDS:()=>Mb,CREATE_TIME_FB_FIELDS:()=>LL,ERROR_OUTPUT_SCHEMA:()=>oye,FEEDBACK_ASSESSOR_HAT:()=>bbt,FEEDBACK_ORIGINS:()=>S9n,FEEDBACK_STATUSES:()=>qb,FSM_DRIVEN_FB_FIELDS:()=>DL,FSM_DRIVEN_INTENT_FIELDS:()=>QT,FSM_DRIVEN_UNIT_FIELDS:()=>Jf,INTENT_FRONTMATTER_SCHEMA:()=>qL,INTENT_TITLE_MAX_LENGTH:()=>nSe,IntentScopeTickPersistError:()=>Gd,MAX_CONCURRENT_SUBAGENTS:()=>cv,MAX_FIX_LOOP_BOLTS:()=>Dg,MAX_INTEGRATOR_ATTEMPTS:()=>b9n,MAX_RATIONALE_BYTES:()=>Jye,MAX_RATIONALE_EXCERPT_BYTES:()=>Xye,MAX_STAGE_ITERATIONS:()=>Df,MAX_UNIT_BOLTS:()=>gv,OK_OUTPUT_SCHEMA:()=>aye,REJECT_LOOP_MIN_REPEATS:()=>pZ,STAGE_STATE_FIELDS:()=>cye,STAGE_STATE_SCHEMA:()=>IY,UNIT_FRONTMATTER_SCHEMA:()=>$T,_resetIsGitRepoForTests:()=>wft,appendFeedbackIteration:()=>R9n,appendFeedbackReply:()=>gSe,appendStageIteration:()=>aSe,applyAutoFixes:()=>rSe,closeCurrentStageIteration:()=>cSe,completeUnitIteration:()=>hZ,computeFeedbackSignature:()=>fbt,countConsecutiveSameRejects:()=>dbt,countInFlightUnits:()=>Tbt,countPendingFeedback:()=>w9n,countUnitBolts:()=>lbt,deleteFeedbackFile:()=>_Z,deleteFrontmatterFields:()=>Yh,deriveAuthorType:()=>dSe,deriveFeedbackIdFromFilename:()=>Abt,deriveFeedbackStatus:()=>np,deriveUnitStatus:()=>V0,detectDagCycles:()=>ybt,detectSettledDuplicate:()=>pbt,dismissFeedbackClosureReply:()=>ySe,ensureWorktreesGitignored:()=>JD,feedbackDir:()=>lo,feedbackSeverityRank:()=>Xc,findFeedbackFile:()=>bc,findHaikuRoot:()=>Te,formatFeedbackId:()=>zd,getIntentScopeTickCounter:()=>b1,getStageIterationCount:()=>mbt,gitCommitAll:()=>mZ,gitCommitState:()=>wt,gitCommitStateBackgroundPush:()=>jg,gitCommitStateIfDirty:()=>uSe,handleStateTool:()=>bSe,incrementFeedbackBolt:()=>k9n,intentDir:()=>pe,intentFromCurrentBranch:()=>yv,intentTitleNeedsRepair:()=>g1,isGitRepo:()=>ve,isIntentArchived:()=>S1,isIntentLocked:()=>y1,listInstalledSkills:()=>Y0,listVisibleIntentSlugs:()=>m9n,listVisibleIntents:()=>Fg,matchesGlob:()=>Qye,migrateIterationReasonsOnRead:()=>$ye,migrateMisplacedWorktrees:()=>ubt,moveFeedbackFile:()=>Rbt,normalizeLegacyFeedbackStatus:()=>bZ,normalizeRejectReason:()=>sSe,parseFrontmatter:()=>re,persistDesignDirectionSelection:()=>fSe,persistDesignDirectionUploads:()=>pSe,pickUndispatchedUnitBlocks:()=>_bt,primaryRepoRoot:()=>Br,readClaimedAuthorId:()=>Z3n,readDecisionLog:()=>A3,readFeedbackFiles:()=>Us,readIntentBody:()=>Kh,readJson:()=>Hb,repairDeclaredOutput:()=>SZ,resolveUnitHats:()=>tSe,runInlineQualityGates:()=>iSe,safeMkdirAndRename:()=>pv,setFrontmatterField:()=>Me,setHaikuRootForTests:()=>Ift,setIsGitRepoForTests:()=>kft,setUnitFrontmatterField:()=>g9n,slugifyTitle:()=>EZ,stageDir:()=>ar,stageStatePath:()=>z0,stampDispatchClaim:()=>Ebt,stampUnitHatLease:()=>hSe,startUnitIteration:()=>h1,stateToolDefs:()=>SSe,syncSessionMetadata:()=>Xr,timestamp:()=>En,unitIntentDir:()=>X3n,unitOutputExists:()=>Wh,unitPath:()=>Pa,updateFeedbackFile:()=>mSe,validateBranch:()=>lSe,validateIntentSchema:()=>R0,validateRationaleCaps:()=>F3n,validateSlugArgs:()=>CD,validateUnitFrontmatter:()=>gbt,validateUnitSchema:()=>Ng,validateUnitScope:()=>fZ,writeFeedbackFile:()=>Qo,writeJson:()=>m1});import{execFileSync as Na,execSync as Vh,spawn as N3n,spawnSync as aZ}from"node:child_process";import{randomBytes as C3n}from"node:crypto";import{appendFileSync as M3n,existsSync as ue,lstatSync as D3n,mkdirSync as Dl,readdirSync as an,readFileSync as Pe,renameSync as ibt,rmSync as Zye,statSync as sbt,unlinkSync as W0,writeFileSync as In}from"node:fs";import{homedir as L3n}from"node:os";import{basename as U3n,dirname as K0,join as ne,resolve as tp,sep as G0}from"node:path";import{readdirSync as d9n}from"node:fs";function QSt(e){return Buffer.byteLength(e,"utf-8")}function F3n(e){let t=QSt(e.agent_rationale);if(t>Jye)return{kind:"agent_rationale_too_long",bytes:t,cap:Jye};for(let n=0;nXye)return{kind:"rationale_excerpt_too_long",index:n,path:r.path,bytes:i,cap:Xye}}return null}function g1(e){if(typeof e!="string")return!0;let t=e.trim();return!!(t.length===0||t.length>nSe||/\n/.test(t))}function rSe(e,t,n){let r=ne(e,t,"intent.md");if(!ue(r))return{applied:[],remaining:n};let i=[],s=[r],o=ne(e,t,"stages");if(ue(o))for(let y of an(o,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=ne(o,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0}))S.isFile()&&S.name.endsWith(".md")&&s.push(ne(b,S.name))}for(let y of s){let b=Pe(y,"utf8"),{text:S,removed:E}=pg(b);if(E.length===0)continue;In(y,S);let _=y.startsWith(ne(e,t))?y.slice(ne(e,t).length+1):y;i.push({intent:t,field:`${_}:frontmatter`,description:`Deduped frontmatter keys: ${E.join(", ")}`})}let a=n.filter(y=>!y.field.endsWith(":frontmatter-duplicate-keys")),c=Pe(r,"utf8"),u=(0,Ct.default)(c),l=u.data,d=u.content,f=!1,p=[];for(let y of a){let b=!1;if(y.field==="title"&&typeof l.title=="string"&&g1(l.title)){let S=l.title.replace(/\s+/g," ").trim(),E=S.length>120?`${S.slice(0,117)}...`:S;p.push({intent:t,field:"title",severity:"error",message:`Title is ${S.length} chars \u2014 looks auto-truncated or is a full description, not a title`,fix:`Rewrite as a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Preserve the current text as a paragraph in the body under the H1 if it isn't there already. Original: "${E}"`}),b=!0}if(y.field==="created"&&l.created&&!l.created_at&&(l.created_at=l.created,delete l.created,i.push({intent:t,field:"created",description:"Renamed legacy `created` to `created_at`"}),b=!0,f=!0),y.field==="created_at"&&!l.created&&!l.created_at){let S=j3n(r);l.created_at=S?S.mtime.toISOString():new Date().toISOString(),i.push({intent:t,field:"created_at",description:"Added `created_at` from file mtime"}),b=!0,f=!0}if(y.field==="mode"&&!l.mode&&(l.mode="continuous",i.push({intent:t,field:"mode",description:"Defaulted `mode` to 'continuous'"}),b=!0,f=!0),y.field==="stages"&&y.message.startsWith("Stages don't match")){let S=y.fix.match(/Expected: \[([^\]]+)\]/);if(S){let E=S[1].split(",").map(_=>_.trim()).filter(Boolean);E.length>0&&(l.stages=E,i.push({intent:t,field:"stages",description:`Updated stages to match studio definition: [${E.join(", ")}]`}),b=!0,f=!0)}}if(y.field==="created_at"&&y.message.includes("git history")){let S=y.fix.match(/'([^']+)' \(from git/);S&&(l.created_at=S[1],i.push({intent:t,field:"created_at",description:`Updated created_at to '${S[1]}' from git history`}),b=!0,f=!0)}if(y.field==="started_at"&&y.fix.includes("from git")){let S=y.fix.match(/'([^']+)' \(from git/);S&&(l.started_at=S[1],i.push({intent:t,field:"started_at",description:`Updated started_at to '${S[1]}' from git history`}),b=!0,f=!0)}b||p.push(y)}f&&In(r,Ct.default.stringify(d,l));let h=ne(e,t,"stages");if(ue(h))for(let y of an(h,{withFileTypes:!0})){if(!y.isDirectory())continue;let b=ne(h,y.name,"units");if(ue(b))for(let S of an(b,{withFileTypes:!0})){if(!(S.isFile()&&S.name.endsWith(".md")))continue;let E=ne(b,S.name),_=Pe(E,"utf8"),T=(0,Ct.default)(_);if("type"in T.data){let{type:R,...A}=T.data;In(E,Ct.default.stringify(T.content,A)),i.push({intent:t,field:`stages/${y.name}/units/${S.name}:type`,description:"Removed deprecated `type` field from unit"})}}}let m=[],g=/^stages\/([^/]+)\/units\/([^/]+):inputs$/;for(let y of p){let b=y.field.match(g);if(!(b&&y.message.includes("Unit has no `inputs:`"))||typeof y.fix!="string"){m.push(y);continue}let S=b[1],E=b[2],_=ne(e,t,"stages",S,"units",E);if(!ue(_)){m.push(y);continue}let T=[],R=y.fix.match(/upstream paths:\s*(.+?)\s*$/);if(R)T=R[1].split(",").map(P=>P.trim()).filter(Boolean);else{let P=["intent.md"],N=ne(e,t,"knowledge");if(ue(N))for(let C of an(N))C.endsWith(".md")&&P.push(`knowledge/${C}`);T=P}if(T.length===0){m.push(y);continue}let A=Pe(_,"utf8"),x=(0,Ct.default)(A);(x.data.inputs||[]).length>0||(x.data.inputs=T,In(_,Ct.default.stringify(x.content,x.data)),i.push({intent:t,field:y.field,description:`Linked ${T.length} input(s): ${T.join(", ")}`}))}return{applied:i,remaining:m}}function j3n(e){try{return sbt(e)}catch{return null}}function H3n(e,t){if(!ve())return null;try{let r=Na("git",["log","--diff-filter=A","--follow","--format=%aI","--",e],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"],...t?{cwd:t}:{}}).trim().split(` +`).filter(Boolean);return r.length>0?r[r.length-1]:null}catch{return null}}function abt(e){let t=new Map,n=nn(),r=[ne(e,"studios"),ne(n,"studios")];for(let i of r)if(ue(i))for(let s of an(i,{withFileTypes:!0})){if(!s.isDirectory()||t.has(s.name))continue;let o=ne(i,s.name,"STUDIO.md");if(!ue(o))continue;let{data:a}=re(Pe(o,"utf8")),c=Array.isArray(a.stages)?a.stages:[];t.set(s.name,c)}return{studioMap:t,searchPaths:r}}function yZ(e,t,n,r){let i=ne(e,t,"intent.md");if(!ue(i))return[];let s=Pe(i,"utf8"),{data:o}=re(s),a=[],{removed:c}=pg(s);if(c.length>0&&a.push({intent:t,field:"intent.md:frontmatter-duplicate-keys",severity:"warning",message:`Duplicate frontmatter keys: ${c.join(", ")}`,fix:"Rewrite frontmatter with duplicate keys removed (last value wins)"}),!o.title||typeof o.title=="string"&&o.title.trim()==="")a.push({intent:t,field:"title",severity:"error",message:"Missing title field",fix:"Add `title` field with a short one-line name (\u226480 chars)"});else if(typeof o.title=="string"&&g1(o.title)){let d=o.title,f=/\n/.test(d)?"title contains newlines":`title is ${d.length} chars (max ${nSe})`;a.push({intent:t,field:"title",severity:"error",message:`Title should be a short one-liner \u2014 ${f}`,fix:"Rewrite `title` as a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Do NOT truncate the current value \u2014 write a deliberate human-readable summary. Preserve the original text as a paragraph in the body under the H1 if it isn't there already."})}o.studio||a.push({intent:t,field:"studio",severity:"error",message:"Missing studio field",fix:"Set `studio` to an available studio"});let u=o.studio;if(u&&!n.has(u)&&!si(u)){let f=Array.from(n.keys()).join(", ");a.push({intent:t,field:"studio",severity:"error",message:`Studio '${u}' not found`,fix:`Studio '${u}' not found. Available: ${f}`})}let l=o.stages;if(!Array.isArray(l)||l.length===0)if(u&&n.has(u)){let d=n.get(u)?.join(", ");a.push({intent:t,field:"stages",severity:"error",message:"Missing or empty stages array",fix:`Set \`stages\` to match studio definition: [${d}]`})}else a.push({intent:t,field:"stages",severity:"error",message:"Missing or empty stages array",fix:"Set `stages` to match studio definition"});if(Array.isArray(l)&&l.length>0&&u){let d=n.get(u);if(d){let f=l;JSON.stringify(d)!==JSON.stringify(f)&&a.push({intent:t,field:"stages",severity:"warning",message:"Stages don't match studio definition",fix:`Stages don't match studio definition. Expected: [${d.join(", ")}], got: [${f.join(", ")}]`})}}if(o.mode||a.push({intent:t,field:"mode",severity:"error",message:"Missing mode field",fix:"Run `haiku_run_next { intent: }` \u2014 the cursor will emit `select_mode` and the engine surfaces the picker. (Auto-apply defaults to 'continuous' as a recovery fallback for corrupted intents.)"}),o.created&&!o.created_at&&a.push({intent:t,field:"created",severity:"warning",message:"Legacy `created` field found",fix:"Rename `created` to `created_at`"}),o.created||o.created_at||a.push({intent:t,field:"created_at",severity:"warning",message:"Missing created_at field",fix:"Add `created_at` with an ISO date"}),Array.isArray(l))for(let d of l){let f=ne(e,t,"stages",d,"units");if(!ue(f))continue;let p=[];if(u){let h=null;for(let m of r){let g=ne(m,u,"stages",d,"STAGE.md");if(!ue(g))continue;let{data:y}=re(Pe(g,"utf8"));Array.isArray(y.inputs)&&y.inputs.length>0&&(h=y.inputs);break}if(h){let m=ne(e,t);for(let g of h)for(let y of r)for(let b of["discovery","outputs"]){let S=ne(y,u,"stages",g.stage,b);if(ue(S))for(let E of an(S).filter(_=>_.endsWith(".md"))){let _=Pe(ne(S,E),"utf8"),{data:T}=re(_),R=T.name||E.replace(/\.md$/,""),A=b==="outputs"?g.output:g.discovery;if(R!==A)continue;let x=T.location||"";if(!x)continue;let k=x.replace(/^\.haiku\/intents\/\{intent-slug\}\//,""),P=ne(m,k);ue(P)&&p.push(k)}}}}for(let h of an(f,{withFileTypes:!0})){if(!(h.isFile()&&h.name.endsWith(".md")))continue;q3n.test(h.name)||a.push({intent:t,field:`stages/${d}/units/${h.name}`,severity:"warning",message:"Unit filename doesn't match expected pattern",fix:"Rename to match pattern: unit-NNN-slug-name.md (3-digit zero-padded; legacy 2-digit also resolves)"});let m=Pe(ne(f,h.name),"utf8"),{removed:g}=pg(m);g.length>0&&a.push({intent:t,field:`stages/${d}/units/${h.name}:frontmatter-duplicate-keys`,severity:"warning",message:`Duplicate frontmatter keys in unit: ${g.join(", ")}`,fix:"Rewrite frontmatter with duplicate keys removed (last value wins)"});let{data:y}=re(m),b=typeof o.plugin_version=="string";!y.status&&!b&&a.push({intent:t,field:`stages/${d}/units/${h.name}:status`,severity:"warning",message:"Unit missing 'status' field",fix:"Add `status` field to unit frontmatter"});let S=y.status||"";if(["complete","skipped","failed"].includes(S))continue;if((y.inputs||y.refs||[]).length===0){let _=p.length>0?`Add \`inputs:\` with upstream paths: ${p.join(", ")}`:"Add `inputs:` with at minimum the intent doc and discovery docs";a.push({intent:t,field:`stages/${d}/units/${h.name}:inputs`,severity:"error",message:"Unit has no `inputs:` \u2014 execution will be blocked",fix:_})}}}if(ve()){let d=ne(e,t,"intent.md"),f=H3n(d),p=o.created_at,h=o.started_at;if(f&&p){let m=f.slice(0,10),g=typeof p=="string"?p.slice(0,10):"";m!==g&&a.push({intent:t,field:"created_at",severity:"warning",message:`created_at '${g}' doesn't match git history '${m}'`,fix:`Update created_at to '${f}' (from git first commit)`})}if(f&&h){let m=f.slice(0,10),g=typeof h=="string"?h.slice(0,10):"";m!==g&&a.push({intent:t,field:"started_at",severity:"warning",message:`started_at '${g}' doesn't match git history '${m}'`,fix:`Update started_at to '${f}' (from git first commit)`})}f&&!h&&a.push({intent:t,field:"started_at",severity:"warning",message:"Missing started_at field",fix:`Set started_at to '${f}' (from git first commit)`})}return a}function cbt(e,t,n){let r=e??Te(),i=ne(r,"intents");if(!ue(i))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};let{studioMap:s,searchPaths:o}=abt(r),a;if(t){if(/[/\\]|\.\./.test(t))throw new Error(`Invalid intent slug: "${t}"`);if(!ue(ne(i,t,"intent.md")))return{scanned:0,cleanIntents:[],issues:[],applied:[],remaining:[]};a=[t]}else a=an(i,{withFileTypes:!0}).filter(f=>f.isDirectory()&&ue(ne(i,f.name,"intent.md"))).map(f=>f.name);let c=[],u=[],l=[],d=[];for(let f of a){let p=yZ(i,f,s,o);if(n&&p.length>0){let h=rSe(i,f,p);l.push(...h.applied),h.applied.length>0&&(p=yZ(i,f,s,o))}p.length===0?u.push(f):(c.push(...p),d.push(...p))}return{scanned:a.length,cleanIntents:u,issues:c,applied:l,remaining:d}}function B3n(e,t=""){if(e.issues.length===0&&e.applied.length===0)return`${t}All intents passed validation. No repairs needed.`;let n=new Map;for(let i of e.issues){let s=n.get(i.intent)||[];s.push(i),n.set(i.intent,s)}let r=[`${t}# Intent Repair Report`,"",`Scanned ${e.scanned} intent(s). Auto-applied ${e.applied.length} fix(es). ${e.remaining.length} issue(s) remaining.`,""];if(e.applied.length>0){r.push("## Auto-Applied Fixes"),r.push("");for(let i of e.applied)r.push(`- **${i.intent}** / \`${i.field}\` \u2014 ${i.description}`);r.push("")}for(let[i,s]of n){let o=s.filter(c=>c.severity==="error").length,a=s.filter(c=>c.severity==="warning").length;r.push(`## ${i} \u2014 ${o} error(s), ${a} warning(s)`),r.push(""),r.push("| # | Severity | Field | Issue | Fix |"),r.push("|---|----------|-------|-------|-----|"),s.forEach((c,u)=>{r.push(`| ${u+1} | ${c.severity} | ${c.field} | ${c.message} | ${c.fix} |`)}),r.push("")}if(e.cleanIntents.length>0){r.push("## Intents with no issues");for(let i of e.cleanIntents)r.push(`- ${i}`);r.push("")}return e.remaining.length>0&&r.push("---","","Auto-fixes were applied for safe issues. Remaining issues need agent or user attention. For each:","1. Read the intent.md file","2. Apply the fix listed in the table above","3. After fixing, report what you changed"),r.join(` `)}function $St(){if(!ve())return[];let e;try{e=Na("git",["worktree","list","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]})}catch{return[]}let t=[],n=null;for(let r of e.split(` -`))r.startsWith("worktree ")?(n&&t.push(n),n={path:r.slice(9).trim(),branch:null}):r.startsWith("branch ")&&n?n.branch=r.slice(7).trim():r===""&&n&&(t.push(n),n=null);return n&&t.push(n),t}function z3n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function ubt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!ve())return e;let t=Br(),n=`${z0}.haiku${z0}worktrees${z0}`;for(let i of $St()){let s=i.path.indexOf(n);if(s===-1||i.path.slice(0,s)===t)continue;let a=i.path.slice(s),c=t+a;if(ue(c)){e.skipped.push({path:i.path,reason:`target already exists: ${c}`});continue}if(z3n(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(z0));Dl(u,{recursive:!0}),Na("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of $St())i.path!==t&&r.add(i.path);for(let i of r){let s=ne(i,".haiku","worktrees");if(!ue(s))continue;let o=!1;try{let a=c=>{if(!o)for(let u of an(c,{withFileTypes:!0})){let l=ne(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{Yye(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=ne(i,".haiku");ue(a)&&an(a).length===0&&Yye(a,{recursive:!0,force:!0})}catch{}}return e}function G3n(e){if(e.moved.length===0&&e.skipped.length===0&&e.cleanedSkeletons.length===0)return"";let t=["## Worktree Migration",""];if(e.moved.length>0){t.push(`Moved ${e.moved.length} misplaced worktree(s):`);for(let n of e.moved)t.push(`- \`${n.branch}\`: ${n.old} \u2192 ${n.new}`);t.push("")}if(e.skipped.length>0){t.push(`Skipped ${e.skipped.length} worktree(s):`);for(let n of e.skipped)t.push(`- ${n.path} \u2014 ${n.reason}`);t.push("")}if(e.cleanedSkeletons.length>0){t.push(`Cleaned ${e.cleanedSkeletons.length} empty skeleton dir(s):`);for(let n of e.cleanedSkeletons)t.push(`- ${n}`);t.push("")}return t.join(` -`)}function V3n(e){PT();let t=Zo(),n=[];if(e){let s=ope();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=Epe(u,`.haiku/intents/${o}/intent.md`);if(l){let{data:d}=re(l),f=d.studio||"";if(f){let p=si(f);if(p&&p.stages.length>0){let h=p.stages;c.sort((m,g)=>{let y=h.indexOf(m),b=h.indexOf(g);return(y===-1?h.length:y)-(b===-1?h.length:b)})}}}}catch{}try{let u=bpe(o,c);if(u.success)try{Na("git",["push","-u","origin",`haiku/${o}/main`],{encoding:"utf8",stdio:"pipe"})}catch{}else{let l=u.isConflict?`Merge conflict consolidating into haiku/${o}/main on ${u.conflictFiles?.length??0} file(s): ${(u.conflictFiles??[]).join(", ")}. Resolve on haiku/${o}/main, commit, then re-run /haiku:haiku-repair.`:`Failed to consolidate stage branches into haiku/${o}/main: ${u.message}`;n.push({slug:o,branch:`haiku/${o}/main`,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1,pushError:l})}}catch(u){n.push({slug:o,branch:`haiku/${o}/main`,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1,pushError:`Failed to create main from stage branches: ${u instanceof Error?u.message:String(u)}`})}}}let r=e3();for(let s of r){let o=`haiku/${s}/main`,a="",c={slug:s,branch:o,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1};try{a=t3(o,"haiku-repair",!0)}catch(u){c.error=`Failed to create worktree: ${u instanceof Error?u.message:String(u)}`,n.push(c);continue}try{let u=ne(a,".haiku"),l=cbt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=ne(u,"intents",s,"intent.md");if(ue(d)&&re(Pe(d,"utf8")).data.status==="completed"&&!Zc(o,t)){let p={intent:s,field:"status",severity:"error",message:`Intent marked 'completed' but branch '${o}' is not merged into '${t}'`,fix:`Either merge the branch into '${t}' or set status to 'active'`};c.remaining.push(p)}if(e&&l.applied.length>0){let f=Zc(o,t),p=[`repair: auto-fix ${l.applied.length} metadata issue(s)`,"",...l.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=r3(a,o,p.join(` +`))r.startsWith("worktree ")?(n&&t.push(n),n={path:r.slice(9).trim(),branch:null}):r.startsWith("branch ")&&n?n.branch=r.slice(7).trim():r===""&&n&&(t.push(n),n=null);return n&&t.push(n),t}function z3n(e){try{return Na("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim().length>0}catch{return!0}}function ubt(){let e={moved:[],skipped:[],cleanedSkeletons:[]};if(!ve())return e;let t=Br(),n=`${G0}.haiku${G0}worktrees${G0}`;for(let i of $St()){let s=i.path.indexOf(n);if(s===-1||i.path.slice(0,s)===t)continue;let a=i.path.slice(s),c=t+a;if(ue(c)){e.skipped.push({path:i.path,reason:`target already exists: ${c}`});continue}if(z3n(i.path)){e.skipped.push({path:i.path,reason:"uncommitted changes \u2014 commit/stash inside the worktree, then re-run haiku_repair"});continue}try{let u=c.slice(0,c.lastIndexOf(G0));Dl(u,{recursive:!0}),Na("git",["worktree","move",i.path,c],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),e.moved.push({old:i.path,new:c,branch:i.branch??"(detached)"})}catch(u){e.skipped.push({path:i.path,reason:`git worktree move failed: ${u instanceof Error?u.message:String(u)}`})}}let r=new Set;for(let i of $St())i.path!==t&&r.add(i.path);for(let i of r){let s=ne(i,".haiku","worktrees");if(!ue(s))continue;let o=!1;try{let a=c=>{if(!o)for(let u of an(c,{withFileTypes:!0})){let l=ne(c,u.name);if(u.isFile()||u.isSymbolicLink()){o=!0;return}u.isDirectory()&&a(l)}};a(s)}catch{o=!0}if(!o)try{Zye(s,{recursive:!0,force:!0}),e.cleanedSkeletons.push(s);let a=ne(i,".haiku");ue(a)&&an(a).length===0&&Zye(a,{recursive:!0,force:!0})}catch{}}return e}function G3n(e){if(e.moved.length===0&&e.skipped.length===0&&e.cleanedSkeletons.length===0)return"";let t=["## Worktree Migration",""];if(e.moved.length>0){t.push(`Moved ${e.moved.length} misplaced worktree(s):`);for(let n of e.moved)t.push(`- \`${n.branch}\`: ${n.old} \u2192 ${n.new}`);t.push("")}if(e.skipped.length>0){t.push(`Skipped ${e.skipped.length} worktree(s):`);for(let n of e.skipped)t.push(`- ${n.path} \u2014 ${n.reason}`);t.push("")}if(e.cleanedSkeletons.length>0){t.push(`Cleaned ${e.cleanedSkeletons.length} empty skeleton dir(s):`);for(let n of e.cleanedSkeletons)t.push(`- ${n}`);t.push("")}return t.join(` +`)}function V3n(e){PT();let t=Zo(),n=[];if(e){let s=ape();for(let{slug:o,branches:a}of s){let c=a.map(u=>u.replace(`haiku/${o}/`,""));try{let u=a[0],l=_pe(u,`.haiku/intents/${o}/intent.md`);if(l){let{data:d}=re(l),f=d.studio||"";if(f){let p=si(f);if(p&&p.stages.length>0){let h=p.stages;c.sort((m,g)=>{let y=h.indexOf(m),b=h.indexOf(g);return(y===-1?h.length:y)-(b===-1?h.length:b)})}}}}catch{}try{let u=Epe(o,c);if(u.success)try{Na("git",["push","-u","origin",`haiku/${o}/main`],{encoding:"utf8",stdio:"pipe"})}catch{}else{let l=u.isConflict?`Merge conflict consolidating into haiku/${o}/main on ${u.conflictFiles?.length??0} file(s): ${(u.conflictFiles??[]).join(", ")}. Resolve on haiku/${o}/main, commit, then re-run /haiku:haiku-repair.`:`Failed to consolidate stage branches into haiku/${o}/main: ${u.message}`;n.push({slug:o,branch:`haiku/${o}/main`,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1,pushError:l})}}catch(u){n.push({slug:o,branch:`haiku/${o}/main`,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1,pushError:`Failed to create main from stage branches: ${u instanceof Error?u.message:String(u)}`})}}}let r=n3();for(let s of r){let o=`haiku/${s}/main`,a="",c={slug:s,branch:o,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1};try{a=r3(o,"haiku-repair",!0)}catch(u){c.error=`Failed to create worktree: ${u instanceof Error?u.message:String(u)}`,n.push(c);continue}try{let u=ne(a,".haiku"),l=cbt(u,void 0,e);c.scanned=l.scanned,c.applied=l.applied,c.remaining=l.remaining;let d=ne(u,"intents",s,"intent.md");if(ue(d)&&re(Pe(d,"utf8")).data.status==="completed"&&!Zc(o,t)){let p={intent:s,field:"status",severity:"error",message:`Intent marked 'completed' but branch '${o}' is not merged into '${t}'`,fix:`Either merge the branch into '${t}' or set status to 'active'`};c.remaining.push(p)}if(e&&l.applied.length>0){let f=Zc(o,t),p=[`repair: auto-fix ${l.applied.length} metadata issue(s)`,"",...l.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=s3(a,o,p.join(` `));if(c.committed=h.committed,c.pushed=h.pushed,c.pushError=h.pushError,h.committed&&h.pushed&&f){c.merged=!0;let m=wI(o,t,`repair: metadata fixes for ${s}`,`Auto-applied repair fixes (branch was already merged into \`${t}\`): ${l.applied.map(g=>`- **${g.intent}/${g.field}**: ${g.description}`).join(` -`)}`);m.ok?c.prUrl=m.url:c.prError=m.error}}}finally{a&&n3(a)}n.push(c)}let i=W3n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function W3n(e,t,n){let r=new Set(e),i=`repair/archived-intents-${Date.now()}`,s={slug:"",branch:i,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1},o="";try{o=t3(t,"haiku-repair-archived",!0)}catch(a){return s.setupError=`Failed to create mainline worktree: ${a instanceof Error?a.message:String(a)}`,s}try{let a=ne(o,".haiku"),c=ne(a,"intents");if(!ue(c))return;let l=an(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&ue(ne(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=abt(a);for(let p of l){let h=gZ(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=nSe(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=gZ(c,p,d,f))}h.length>0&&s.remaining.push(...h)}if(n&&s.applied.length>0){let p=[`repair: auto-fix ${s.applied.length} issue(s) in archived intent(s)`,"",...s.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=r3(o,i,p.join(` +`)}`);m.ok?c.prUrl=m.url:c.prError=m.error}}}finally{a&&i3(a)}n.push(c)}let i=W3n(r,t,e);return{summaries:n,mainline:t,archivedSummary:i}}function W3n(e,t,n){let r=new Set(e),i=`repair/archived-intents-${Date.now()}`,s={slug:"",branch:i,scanned:0,applied:[],remaining:[],committed:!1,pushed:!1,merged:!1},o="";try{o=r3(t,"haiku-repair-archived",!0)}catch(a){return s.setupError=`Failed to create mainline worktree: ${a instanceof Error?a.message:String(a)}`,s}try{let a=ne(o,".haiku"),c=ne(a,"intents");if(!ue(c))return;let l=an(c,{withFileTypes:!0}).filter(p=>p.isDirectory()&&ue(ne(c,p.name,"intent.md"))).map(p=>p.name).filter(p=>!r.has(p));if(l.length===0)return;let{studioMap:d,searchPaths:f}=abt(a);for(let p of l){let h=yZ(c,p,d,f);if(s.scanned++,n&&h.length>0){let m=rSe(c,p,h);s.applied.push(...m.applied),m.applied.length>0&&(h=yZ(c,p,d,f))}h.length>0&&s.remaining.push(...h)}if(n&&s.applied.length>0){let p=[`repair: auto-fix ${s.applied.length} issue(s) in archived intent(s)`,"",...s.applied.map(m=>`- ${m.intent}/${m.field}: ${m.description}`)],h=s3(o,i,p.join(` `));if(s.committed=h.committed,s.pushed=h.pushed,s.pushError=h.pushError,h.committed&&h.pushed){let m=wI(i,t,"repair: metadata fixes for archived intents",`Auto-applied repair fixes for archived intents on \`${t}\`: ${s.applied.map(g=>`- **${g.intent}/${g.field}**: ${g.description}`).join(` -`)}`);m.ok?s.prUrl=m.url:s.prError=m.error}}}finally{o&&n3(o)}if(s.scanned>0||s.setupError)return s}function K3n(e,t,n){if(e.length===0&&!n)return"No intent branches or archived intents found in this repository.";let r=["# Multi-Branch Repair Report","",`Scanned ${e.length} intent branch(es). Mainline: \`${t}\`.`,""],i=e.reduce((l,d)=>l+d.applied.length,0)+(n?.applied.length??0),s=e.reduce((l,d)=>l+d.remaining.length,0)+(n?.remaining.length??0),o=e.filter(l=>l.pushed).length+(n?.pushed?1:0),a=e.filter(l=>l.prUrl).length,c=n?.prUrl?1:0,u=a>0&&c>0?`${a} PR(s) for already-merged branches + 1 PR for archived intents`:a>0?`${a} PR(s) opened for already-merged branches`:c>0?"1 PR opened for archived intents":"no PRs opened";r.push(`**Summary:** ${i} fix(es) auto-applied across ${o} branch(es); ${u}; ${s} issue(s) still need attention.`),r.push("");for(let l of e){if(r.push(`## \`${l.branch}\``),r.push(""),r.push(`- Scanned: ${l.scanned} intent(s)`),r.push(`- Auto-applied: ${l.applied.length}`),r.push(`- Remaining: ${l.remaining.length}`),l.committed&&l.pushed?r.push(`- Committed and pushed to \`origin/${l.branch}\``):l.committed?r.push(`- Committed locally; push failed: ${l.pushError||"unknown"}`):l.error?r.push(`- Error: ${l.error}`):l.pushError&&r.push(`- Push error: ${l.pushError}`),l.merged&&l.prUrl?r.push(`- Branch already merged into \`${t}\` \u2014 opened PR/MR: ${l.prUrl}`):l.merged&&l.prError&&r.push(`- Branch already merged into \`${t}\` \u2014 failed to open PR: ${l.prError}`),l.applied.length>0){r.push(""),r.push("**Fixes applied:**");for(let d of l.applied)r.push(`- ${d.intent}/${d.field}: ${d.description}`)}if(l.remaining.length>0){r.push(""),r.push("**Remaining issues (need agent attention):**");for(let d of l.remaining)r.push(`- **${d.intent}**/${d.field} (${d.severity}): ${d.message} \u2192 ${d.fix}`)}r.push("")}if(n){if(r.push("## Archived intents (mainline only)"),r.push(""),n.setupError)return r.push(`- **Mainline worktree setup failed:** ${n.setupError}`),r.push("- No archived intents were scanned. Fix the underlying git/filesystem issue and re-run `/repair`."),r.push(""),r.join(` +`)}`);m.ok?s.prUrl=m.url:s.prError=m.error}}}finally{o&&i3(o)}if(s.scanned>0||s.setupError)return s}function K3n(e,t,n){if(e.length===0&&!n)return"No intent branches or archived intents found in this repository.";let r=["# Multi-Branch Repair Report","",`Scanned ${e.length} intent branch(es). Mainline: \`${t}\`.`,""],i=e.reduce((l,d)=>l+d.applied.length,0)+(n?.applied.length??0),s=e.reduce((l,d)=>l+d.remaining.length,0)+(n?.remaining.length??0),o=e.filter(l=>l.pushed).length+(n?.pushed?1:0),a=e.filter(l=>l.prUrl).length,c=n?.prUrl?1:0,u=a>0&&c>0?`${a} PR(s) for already-merged branches + 1 PR for archived intents`:a>0?`${a} PR(s) opened for already-merged branches`:c>0?"1 PR opened for archived intents":"no PRs opened";r.push(`**Summary:** ${i} fix(es) auto-applied across ${o} branch(es); ${u}; ${s} issue(s) still need attention.`),r.push("");for(let l of e){if(r.push(`## \`${l.branch}\``),r.push(""),r.push(`- Scanned: ${l.scanned} intent(s)`),r.push(`- Auto-applied: ${l.applied.length}`),r.push(`- Remaining: ${l.remaining.length}`),l.committed&&l.pushed?r.push(`- Committed and pushed to \`origin/${l.branch}\``):l.committed?r.push(`- Committed locally; push failed: ${l.pushError||"unknown"}`):l.error?r.push(`- Error: ${l.error}`):l.pushError&&r.push(`- Push error: ${l.pushError}`),l.merged&&l.prUrl?r.push(`- Branch already merged into \`${t}\` \u2014 opened PR/MR: ${l.prUrl}`):l.merged&&l.prError&&r.push(`- Branch already merged into \`${t}\` \u2014 failed to open PR: ${l.prError}`),l.applied.length>0){r.push(""),r.push("**Fixes applied:**");for(let d of l.applied)r.push(`- ${d.intent}/${d.field}: ${d.description}`)}if(l.remaining.length>0){r.push(""),r.push("**Remaining issues (need agent attention):**");for(let d of l.remaining)r.push(`- **${d.intent}**/${d.field} (${d.severity}): ${d.message} \u2192 ${d.fix}`)}r.push("")}if(n){if(r.push("## Archived intents (mainline only)"),r.push(""),n.setupError)return r.push(`- **Mainline worktree setup failed:** ${n.setupError}`),r.push("- No archived intents were scanned. Fix the underlying git/filesystem issue and re-run `/repair`."),r.push(""),r.join(` `);if(r.push(`- Scanned: ${n.scanned} archived intent(s)`),r.push(`- Auto-applied: ${n.applied.length}`),r.push(`- Remaining: ${n.remaining.length}`),n.committed&&n.pushed?r.push(`- Pushed repair branch \`origin/${n.branch}\``):n.pushError&&r.push(`- Push error: ${n.pushError}`),n.prUrl?r.push(`- Opened PR/MR: ${n.prUrl}`):n.prError&&r.push(`- Failed to open PR: ${n.prError}`),n.applied.length>0){r.push(""),r.push("**Fixes applied:**");for(let l of n.applied)r.push(`- ${l.intent}/${l.field}: ${l.description}`)}if(n.remaining.length>0){r.push(""),r.push("**Remaining issues (need agent attention):**");for(let l of n.remaining)r.push(`- **${l.intent}**/${l.field} (${l.severity}): ${l.message} \u2192 ${l.fix}`)}r.push("")}return r.join(` -`)}function Br(){let e=process.cwd();if(u1!==null&&u1.cwd===e)return u1.root;if(!ve())return u1={cwd:e,root:e},e;let t;try{let n=Na("git",["rev-parse","--git-common-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim();if(!n)t=e;else{let r=n.startsWith("/")?n:tp(e,n);t=tp(r,"..")}}catch{t=e}return u1={cwd:e,root:t},t}function rSe(e,t){let n=Te(),r=ne(n,"intents",e,"intent.md");function i(f){if(!ue(f))return[];let p=Pe(f,"utf8"),{data:h}=re(p),m=h.quality_gates;return Array.isArray(m)?m:[]}let s=i(r),o=i(t),a=[...s,...o];if(a.length===0)return null;let c=process.cwd();try{c=Vh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let u=[];for(let f=0;f`- ${f.name}: '${f.command}' exited ${f.exit_code}${f.output?`: ${f.output}`:""}`).join(` `)}`,failures:u,environment:!0,env_reason:d.reason??void 0,requires_tool:d.requiresTool}:{error:"quality_gate_failed",message:`Cannot advance hat: ${u.length} quality gate(s) failed. Fix the issues and try again. ${u.map(f=>`- ${f.name}: '${f.command}' exited ${f.exit_code}${f.output?`: ${f.output}`:""}`).join(` -`)}`,failures:u}}function Y3n(e){try{let t=e1(Br());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function pe(e){return ne(Te(),"intents",e)}function Kh(e){let t=ne(pe(e),"intent.md");if(!ue(t))return null;let{body:n}=re(Pe(t,"utf8"));return(n||"").trim()||null}function m1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Pe(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function g1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Pe(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function Z3n(e){let t=e.claimed_author_id;if(typeof t=="string"&&t.length>0)return t;let n=e.human_author_id;return typeof n=="string"&&n.length>0?n:null}function J3n(e){return ne(e,"intent-tick.json")}function y1(e){let t=J3n(e),n=W0(t);try{let o=D3n(n);if(o.isSymbolicLink())throw new Gd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Gd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Gd?o:new Gd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=Pe(t,"utf-8"),a=JSON.parse(o);typeof a.tick=="number"&&a.tick>=0&&(r=a.tick)}}catch{r=0}let i=r+1,s=ne(n,`.intent-tick-${process.pid}-${C3n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),ibt(s,t)}catch(o){try{V0(s)}catch{}throw new Gd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function X3n(e,t){let n=ne(Br(),".haiku","worktrees",e,t),r=ne(n,".haiku","intents",e);return ue(r)?r:pe(e)}function l1(e){if(!ue(e))return!1;try{let t=sbt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function Wh(e,t,n){let r=tp(pe(e),n);if(l1(r))return!0;let i=ne(Br(),".haiku","worktrees",e,t),s=ne(i,".haiku","intents",e);if(ue(s)){let a=tp(s,n);if(l1(a))return!0}let o=(()=>{try{return Vh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=tp(o,n);if(l1(a))return!0}if(ue(i)){let a=tp(i,n);if(l1(a))return!0}return!1}function Q3n(e,t){let n=[pe(e)],r=ne(Br(),".haiku","worktrees",e,t),i=ne(r,".haiku","intents",e);ue(i)&&n.push(i);try{let s=Vh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim();s&&n.push(s)}catch{}return ue(r)&&n.push(r),n.filter(s=>ue(s))}function Gye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function yZ(e,t,n){let r=U3n(n);if(Gye(r)===r)return null;let i=Gye(r),s=W0(n),o=new Set;for(let c of Q3n(e,t)){let u=tp(c,s);if(!ue(u))continue;let l;try{l=an(u)}catch{continue}for(let d of l)d!==r&&Gye(d)===i&&l1(ne(u,d))&&o.add(d)}if(o.size!==1)return null;let a=[...o][0];return s==="."?a:ne(s,a)}function ar(e,t){return ne(pe(e),"stages",t)}function Pa(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=ne(ar(e,t),"units"),s=ne(i,r);if(ue(s))return s;let o=r.match(/^unit-(\d+)-(.+)\.md$/);if(!o)return s;let a=Number.parseInt(o[1],10),c=o[2];if(!ue(i))return s;let u=an(i).filter(l=>{let d=l.match(/^unit-(\d+)-(.+)\.md$/);return d?Number.parseInt(d[1],10)===a&&d[2]===c:!1});return u.length===1?ne(i,u[0]):s}function B0(e,t){return ne(ar(e,t),"state.json")}function Xye(e,t){let n=e.replace(/^\.\//,""),r=t.replace(/^\.\//,"");if(n===r)return!0;if(r.endsWith("/**")){let i=r.slice(0,-3);return n===i||n.startsWith(`${i}/`)}if(r.endsWith("/"))return n.startsWith(r);if(!r.includes("*")&&n.startsWith(`${r}/`))return!0;if(r.includes("*")){let i=r.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),s=/\*\*/g,o=/\x00/g;return new RegExp(`^${i.replace(s,"\0").replace(/\*/g,"[^/]*").replace(o,".*")}$`).test(n)}return!1}function $3n(e,t,n){if(!ve())return null;let r=t.replace(/\.md$/,""),i=ne(Br(),".haiku","worktrees",e,r);if(!ue(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=Vh(`git merge-base ${s} ${o}`,{cwd:i,encoding:"utf8"}).toString().trim(),c=new Set,u=l=>{for(let d of l.split(` -`).map(f=>f.trim()))d&&c.add(d)};return u(Vh(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Vh(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Vh("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(Vh("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(Vh("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>ue(ne(i,l)))}catch{return null}}function e9n(e,t,n,r){let i=r.replace(/\.md$/,""),s=[`stages/${n}/units/${i}.md`,`stages/${n}/state.json`,`stages/${n}/iteration.json`,`stages/${n}/feedback/**`,`stages/${n}/artifacts/**`,`stages/${n}/outputs/**`,`stages/${n}/discovery/**`,"state/**",".integrity.json","knowledge/**","action-log.jsonl","write-audit.jsonl","baseline.json","intent-tick.json"],o=[],a=!1,c=no(t,n);for(let u of c){let l=(u.location||"").trim(),d=u.scope||"intent";if(!l){d==="repo"&&(a=!0);continue}if(l.startsWith("(")&&l.endsWith(")")){d==="repo"&&(a=!0);continue}let f=l.replace(/\{intent-slug\}/g,e).replace(/\{stage\}/g,n);if(d==="repo")o.push(f);else{let p=`.haiku/intents/${e}/`,h=f.startsWith(p)?f.slice(p.length):f;s.push(h)}}return{intentGlobs:s,repoGlobs:o,repoWildcard:a}}function t9n(e,t,n,r){let i=$3n(e,n,t);return i!==null?i:[]}function n9n(e,t,n,r){let i=`.haiku/intents/${t}/`,s=r?e.startsWith(i)?e.slice(i.length):null:e;return!!(s!==null&&n.intentGlobs.some(o=>Xye(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>Xye(e,o))))}function r9n(e,t,n,r){if(r.length===0)return;let i=Pa(e,t,n);if(!ue(i))return;let s=Pe(i,"utf8"),{data:o,content:a}=(0,Ct.default)(s),c=new Set((o.outputs||[]).map(g=>g)),u=n.replace(/\.md$/,""),l=new Set([`stages/${t}/units/${u}.md`,`stages/${t}/state.json`,`stages/${t}/iteration.json`,".integrity.json"]),d=[`stages/${t}/feedback/`,"state/"],f=ve(),p=`.haiku/intents/${e}/`,h=[];for(let g of r){let y=f?g.startsWith(p)?g.slice(p.length):null:g;if(y!==null&&(l.has(y)||d.some(S=>y.startsWith(S))||VL.has(y)))continue;let b=y??g;c.has(b)||(c.add(b),h.push(b))}if(h.length===0)return;let m=[...o.outputs||[],...h];o.outputs=m,In(i,Ct.default.stringify(a,o))}function dZ(e,t,n,r){let i=Pa(e,n,r);if(!ue(i))return null;let{data:s}=re(Pe(i,"utf8")),o=s.hat_started_at,a=t9n(e,n,r,o);if(a.length===0)return null;let c=e9n(e,t,n,r),u=ve(),l=[];for(let d of a)n9n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(r9n(e,n,r,a),null)}function iSe(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function lbt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function dbt(e,t,n){if(!n)return 0;let r=0;for(let i=e.length-1;i>=0;i--){let s=e[i];if(!(s.completed_at===null||s.result===null)){if(s.result!=="reject"||s.hat!==t||iSe(s.reason)!==n)break;r++}}return r}function fbt(e){let t=e.map(r=>(r||"").trim().toLowerCase()).filter(r=>r.length>0).sort();if(t.length===0)return"";let n=5381;for(let r of t){for(let i=0;i>>0).toString(16)}`}function ebt(e,t){let r=`${e} ${t}`.replace(/```[\s\S]*?```/g," ").replace(/`[^`]*`/g," ").replace(/\*\*Rejection reason:\*\*[\s\S]*$/i," ").toLowerCase().replace(/[^a-z0-9\s]/g," ").split(/\s+/).filter(i=>i.length>=3&&!i9n.has(i));return new Set(r)}function s9n(e,t){if(e.size===0||t.size===0)return 0;let n=0;for(let i of e)t.has(i)&&n++;let r=e.size+t.size-n;return r===0?0:n/r}function pbt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=ebt(n.title,n.body);if(i.size===0)return null;let s=n.targetUnit??null,o=null;for(let a of r){if(a.status!=="closed"&&a.status!=="rejected"&&a.status!=="non_actionable")continue;let c=a.targets?.unit??null;if(s!==c)continue;let u=s9n(i,ebt(a.title,a.body));if(uo.sim)&&(o={id:a.id,status:a.status,resolution:d,sim:u})}return o?{id:o.id,status:o.status,resolution:o.resolution}:null}function hbt(e,t){return ne(ar(e,t),"decisions.jsonl")}function tbt(e,t,n){let r=hbt(e,t);try{Dl(W0(r),{recursive:!0}),M3n(r,`${JSON.stringify(n)} -`)}catch(i){console.error(`[haiku] failed to append decision log for ${e}/${t}: ${i instanceof Error?i.message:String(i)}`)}}function v3(e,t){let n=hbt(e,t);if(!ue(n))return[];let r=Pe(n,"utf8"),i=[];for(let s of r.split(` -`)){let o=s.trim();if(o)try{i.push(JSON.parse(o))}catch{}}return i}function sSe(e,t){return Us(e,t).filter(s=>typeof s.closed_at=="string"&&s.closed_at.length>0).slice().sort((s,o)=>(s.closed_at??"").localeCompare(o.closed_at??"")).map((s,o)=>({index:o+1,started_at:s.created_at||"",completed_at:s.closed_at??null,trigger:"feedback",result:"feedback-revisit",...s.title?{reason:s.title}:{}}))}function mbt(e,t,n){if(t&&n){let s=sSe(t,n).length;if(s>0)return s}let r=e.iterations;if(Array.isArray(r))return r.length;let i=e.visits;return typeof i=="number"?i:0}function oSe(e,t,n,r="feedback-revisit"){let i=sSe(e,t),s=En();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?fbt(n.feedbackTitles):"";({trigger:n.trigger,...n.reason?{reason:n.reason}:{},...o?{feedback_signature:o}:{}},i.push({index:i.length+1,started_at:s,completed_at:null,trigger:n.trigger,result:null,...n.reason?{reason:n.reason}:{},...o?{feedback_signature:o}:{}}));let a=i.length,c=n.trigger==="feedback"||n.trigger==="external-changes",u=c&&a>Df,l=!1;if(o&&c&&i.length>=2){let d=i[i.length-2];d.feedback_signature&&d.feedback_signature===o&&(l=!0)}return Ke("haiku.stage.iteration",{intent:e,stage:t,iteration:String(a),trigger:n.trigger,signature:o,exceeded:String(u),loop_detected:String(l)}),{count:a,exceeded:u,loopDetected:l,signature:o}}function aSe(e,t,n,r){let i=sSe(e,t),s=En();i.length===0&&void 0,{...r?{reason:r}:{}}}function f1(e,t){if(!ue(e))return;let{data:n,body:r}=re(Pe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:En(),completed_at:null,result:null}),n.iterations=i,In(e,Ct.default.stringify(r,n))}function Qye(e){if(!ue(e))return;let t;try{t=re(Pe(e,"utf8"))}catch{return}let n=t.data.iterations;if(!Array.isArray(n))return;let r=!1;for(let i of n){if(!i||typeof i!="object"||Array.isArray(i))continue;let s=i;typeof s.reason=="string"&&(s.message===void 0&&s.reason.length>0&&(s.message=s.reason),delete s.reason,r=!0)}if(r)try{In(e,Ct.default.stringify(t.body,t.data))}catch{}}function pZ(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(Pe(e,"utf8")),s=Array.isArray(r.iterations)?r.iterations.slice():[];if(s.length===0)return;let o=s[s.length-1];o.completed_at||(o.completed_at=En(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Ct.default.stringify(i,r)))}function c9n(e){let t=[],n=new Set;for(let r of a9n){r.lastIndex=0;for(let i of e.matchAll(r)){let s=i[1],o=i[2];if(!s||!o)continue;let a=`${s}@${o}`;n.has(a)||(n.add(a),t.push({full:i[0],identifier:s,path:o}))}}return t}function u9n(e){let t=c9n(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(z0)?n:`${n}${z0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:ne(n,i.path),o=tp(s);if(!o.startsWith(r)&&o!==n)return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_outside_project",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but the resolved path escapes the project root. Only paths within the project tree can be cited as existing helpers.`};if(!ue(o))return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_missing",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but that path does not exist. Either fix the citation to a real path, or remove the citation if the helper is being introduced by this unit (the elaborate phase tracks NEW symbols separately from cited ones).`};try{let a=Pe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Vye(i.identifier)}\\b|\\bfunction\\s+${Vye(i.identifier)}\\b|\\b${Vye(i.identifier)}\\s*[:=(])`).test(a))return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"identifier_missing_in_path",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but \`${i.identifier}\` does not appear in that file (looked for export/function/record-field/assignment/call patterns). Either fix the citation, or if you intend to ADD this helper as part of this unit, remove the "existing" qualifier \u2014 the citation pattern is for already-shipped code.`}}catch{return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_unreadable",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but that path is unreadable. Fix the citation or remove it.`}}}return null}function Vye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function l9n(e,t){let n=Array.isArray(t.quality_gates)?t.quality_gates:[];if(n.length===0)return null;let r=new Set;if(Array.isArray(t.outputs))for(let i of t.outputs)typeof i=="string"&&r.add(i);for(let i of n){if(typeof i!="object"||i===null)continue;let s=i,o=s.name||"",a=s.command||"";if(!a)continue;let c=a.match(/!\s*grep([^|]*)$/);if(c){let d=[...c[1].trim().split(/\s+/)].reverse().find(p=>!p.startsWith("-")),f=d?d.replace(/['"`]/g,""):"";for(let p of r)if(f===p||f.endsWith(`/${p}`)||p.endsWith(f))return{error:"gate_trivially_passes",gate:o,unit:e,pattern:"asserts_zero_matches_on_own_output",command:a,message:`Quality gate '${o}' on unit '${e}' asserts zero matches against \`${f}\`, which is one of the unit's own declared outputs. The gate trivially passes before the unit produces any output \u2014 once the implementer writes the wrong substring, the gate first fails. This is a no-op test. Replace it with a positive assertion (\`grep -q "" "${f}"\`) or a behavior-driven test (run the code, verify the result).`}}let u=a.match(/\bgrep\s+(?:-[a-zA-Z]+\s+)?["']([^"']+)["']\s+([\S]+)/);if(u){let l=u[1],d=u[2].replace(/['"`]/g,"");for(let f of r)if((d===f||d.endsWith(`/${f}`)||f.endsWith(d))&&/\b(complete|completed|done|finished|implemented|ready|success|passed)\b/i.test(l))return{error:"gate_trivially_passes",gate:o,unit:e,pattern:"literal_substring_in_self_authored_output",command:a,literal:l,message:`Quality gate '${o}' on unit '${e}' greps for the literal "${l}" in \`${d}\`, which is one of the unit's own declared outputs. The implementer can satisfy the gate by writing the literal into their own output \u2014 the gate is circular. Replace it with a behavior-driven test (run the code, verify the actual result), not a substring assertion on the file the implementer also writes.`}}}return null}function f9n(e){if(!Wye){let t=new obt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=ne(n,"schemas","providers");if(ue(r)){let a="https://haiku.dev/schemas/";for(let c of d9n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(Pe(ne(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=ne(n,"schemas","settings.schema.json"),s=ue(i)?JSON.parse(Pe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Wye=o,$ye=()=>o.errors}return Wye(e)}function p9n(){return $ye?$ye():[]}function h9n(e){if(e.keyword==="propertyNames")return`fsm_field_forbidden: '${e.params.propertyName??""}' is workflow-driven and must not be set by agents. The workflow engine owns this field via haiku_unit_advance_hat / haiku_unit_increment_bolt / etc.`;let n=e.instancePath.split("/").filter(Boolean)[0];switch(n){case"title":return`title_shape: title must be a non-empty string, or omit the field (it will default to the unit name). (${e.message??e.keyword})`;case"model":return"model_shape: model must be 'haiku', 'sonnet', or 'opus'. Omit the field to fall through to hat/stage/studio defaults.";case"depends_on":return`depends_on_shape: depends_on must be a list of unit names (strings), or omit the field entirely for units with no dependencies. (${e.message??e.keyword} at ${e.instancePath})`;case"closes":return`closes_shape: closes must be a list of FB ID strings, or omit the field for units that don't address feedback. (${e.message??e.keyword} at ${e.instancePath})`;case"quality_gates":return`quality_gates_shape: quality_gates must be a list of {name, command, dir?} objects with non-empty name+command. Prose-only gates are silently skipped \u2014 write a real command. (${e.message??e.keyword} at ${e.instancePath})`;case"inputs":case"outputs":return`${n}_shape: ${n} must be a list of strings. (${e.message??e.keyword} at ${e.instancePath})`;default:return`frontmatter_shape: ${e.message??e.keyword} at ${e.instancePath||"/"}`}}function aZ(e,t){if(e===t)return!0;let n=e.match(/^unit-(\d+)-(.+)$/),r=t.match(/^unit-(\d+)-(.+)$/);return!n||!r?!1:Number.parseInt(n[1],10)===Number.parseInt(r[1],10)&&n[2]===r[2]}function gbt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(h9n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||aZ(i,t.unit))&&n.push(`depends_on_self_reference: unit '${t.unit}' lists itself in depends_on. A unit cannot depend on itself.`),!t.siblingUnits.some(o=>aZ(i,o))&&!aZ(i,t.unit)&&n.push(`depends_on_unresolved: depends_on entry '${i}' does not resolve to a unit in stage '${t.stage}'. Sibling units in this stage: [${t.siblingUnits.join(", ")}].`)}if(Array.isArray(e.inputs))for(let i of e.inputs)typeof i=="string"&&/^unit-\d+-/.test(i.trim())&&n.push(`inputs_unit_name_not_path: inputs entry '${i}' looks like a unit name, but \`inputs:\` must list file PATHS the unit reads (e.g. \`product/ACCEPTANCE-CRITERIA.md\`, a prior-stage artifact, or a sibling unit's declared output file). To express ordering on another unit, add it to \`depends_on:\` and put that unit's actual output path in \`inputs:\`.`);if(Array.isArray(e.inputs)&&t.siblingOutputs){let i=Array.isArray(e.depends_on)?e.depends_on.filter(s=>typeof s=="string"):[];for(let s of e.inputs){if(typeof s!="string")continue;let o=s.trim();for(let[a,c]of Object.entries(t.siblingOutputs)){if(a===t.unit||!c.includes(o))continue;i.some(l=>aZ(l,a))||n.push(`inputs_undeclared_producer: inputs entry '${o}' is a declared output of sibling unit '${a}', but '${a}' is not in \`depends_on:\`. The wave scheduler sequences only on depends_on \u2014 without it, '${t.unit}' is co-scheduled with its producer and the input won't exist when it runs. Add '${a}' to \`depends_on:\`.`)}}}if(t.stageProduces==="build"){let s=(Array.isArray(e.outputs)?e.outputs:[]).length>0,o="quality_gates"in e;s&&!o&&n.push(`build_unit_missing_quality_gates: unit '${t.unit}' declares \`outputs:\` in build-class stage '${t.stage}' but has no \`quality_gates:\` field \u2014 it would complete with nothing verifying its artifact. Add \`quality_gates:\` (an explicit empty list \`[]\` is allowed when the unit genuinely defers verification to a sibling test unit, but the field MUST be present so the omission is a deliberate, reviewable choice rather than a silent gap).`)}return n.length===0?{valid:!0}:{valid:!1,errors:n}}function ybt(e){let i={},s=new Set;for(let a of Object.keys(e))i[a]=0;function o(a){if(i[a]===1)return s.add(a),!0;if(i[a]===2)return!1;i[a]=1;let c=e[a]||[],u=!1;for(let l of c)l in e&&o(l)&&(s.add(a),u=!0);return i[a]=2,u}for(let a of Object.keys(e))i[a]===0&&o(a);return[...s].sort()}function S1(e){let t={...e};for(let n in t)t[n]instanceof Date&&(t[n]=t[n].toISOString());return t}function re(e){let t=n=>{let{data:r,content:i}=(0,Ct.default)(n);return{data:S1(r),body:i.trim()}};try{return t(e)}catch(n){if(!uI(n))throw n;let{text:r,removed:i}=pg(e);if(i.length===0)throw n;return ms(n,{context:"parseFrontmatter:dedup-recovery",removed_keys:i}),t(r)}}function Fg(e,t){if(!ue(e))return[];let n=t?.includeArchived===!0,r=[];for(let i of an(e)){let s=ne(e,i,"intent.md");if(!ue(s))continue;let{data:o}=re(Pe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function m9n(e,t){return Fg(e,t).map(n=>n.slug)}function yv(){if(!ve())return null;let e=mr();if(!e)return null;let t=e.match(/^haiku\/([^/]+)\/([^/]+)$/);if(!t)return null;let n=t[1],r=t[2];return{slug:n,stage:r==="main"?null:r}}function Me(e,t,n){let r=Pe(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,S1(s)))}function Yh(e,t){if(!ue(e))return;let n=Pe(e,"utf8"),r=(0,Ct.default)(n),i={...r.data},s=!1;for(let o of t)o in i&&(delete i[o],s=!0);s&&In(e,Ct.default.stringify(r.content,S1(i)))}function g9n(e,t,n,r,i){let s=Pa(e,t,n);ue(s)&&Me(s,r,i);let o=ne(Br(),".haiku","worktrees",e,n);if(!ue(o))return;let a=ne(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);ue(a)&&Me(a,r,i)}function nbt(e){let{data:t}=(0,Ct.default)(`--- +`)}`,failures:u}}function Y3n(e){try{let t=n1(Br());return[...new Set(t.map(n=>n.requires_tool).filter(n=>typeof n=="string"&&n.length>0))]}catch{return[]}}function pe(e){return ne(Te(),"intents",e)}function Kh(e){let t=ne(pe(e),"intent.md");if(!ue(t))return null;let{body:n}=re(Pe(t,"utf8"));return(n||"").trim()||null}function y1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Pe(t,"utf-8"),{data:r}=(0,Ct.default)(n);return r.status==="locked"}catch{return!1}}function S1(e){try{let t=ne(e,"intent.md");if(!ue(t))return!1;let n=Pe(t,"utf-8"),{data:r}=(0,Ct.default)(n),i=r;return i.status==="archived"||i.archived===!0}catch{return!1}}function Z3n(e){let t=e.claimed_author_id;if(typeof t=="string"&&t.length>0)return t;let n=e.human_author_id;return typeof n=="string"&&n.length>0?n:null}function J3n(e){return ne(e,"intent-tick.json")}function b1(e){let t=J3n(e),n=K0(t);try{let o=D3n(n);if(o.isSymbolicLink())throw new Gd(`intent dir '${n}' is a symlink \u2014 refusing (V-04)`);if(!o.isDirectory())throw new Gd(`intent dir '${n}' exists but is not a directory`)}catch(o){throw o instanceof Gd?o:new Gd(`cannot stat intent dir '${n}': ${o instanceof Error?o.message:String(o)}`)}let r=0;try{if(ue(t)){let o=Pe(t,"utf-8"),a=JSON.parse(o);typeof a.tick=="number"&&a.tick>=0&&(r=a.tick)}}catch{r=0}let i=r+1,s=ne(n,`.intent-tick-${process.pid}-${C3n(6).toString("hex")}.json.tmp`);try{In(s,JSON.stringify({tick:i},null,2)),ibt(s,t)}catch(o){try{W0(s)}catch{}throw new Gd(`failed to persist intent-scope tick counter at '${t}': ${o instanceof Error?o.message:String(o)}`)}return i}function X3n(e,t){let n=ne(Br(),".haiku","worktrees",e,t),r=ne(n,".haiku","intents",e);return ue(r)?r:pe(e)}function f1(e){if(!ue(e))return!1;try{let t=sbt(e);if(t.isFile()&&t.size===0)return!1}catch{return!0}return!0}function Wh(e,t,n){let r=tp(pe(e),n);if(f1(r))return!0;let i=ne(Br(),".haiku","worktrees",e,t),s=ne(i,".haiku","intents",e);if(ue(s)){let a=tp(s,n);if(f1(a))return!0}let o=(()=>{try{return Vh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{return null}})();if(o){let a=tp(o,n);if(f1(a))return!0}if(ue(i)){let a=tp(i,n);if(f1(a))return!0}return!1}function Q3n(e,t){let n=[pe(e)],r=ne(Br(),".haiku","worktrees",e,t),i=ne(r,".haiku","intents",e);ue(i)&&n.push(i);try{let s=Vh("git rev-parse --show-toplevel",{encoding:"utf8"}).trim();s&&n.push(s)}catch{}return ue(r)&&n.push(r),n.filter(s=>ue(s))}function Vye(e){let t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}function SZ(e,t,n){let r=U3n(n);if(Vye(r)===r)return null;let i=Vye(r),s=K0(n),o=new Set;for(let c of Q3n(e,t)){let u=tp(c,s);if(!ue(u))continue;let l;try{l=an(u)}catch{continue}for(let d of l)d!==r&&Vye(d)===i&&f1(ne(u,d))&&o.add(d)}if(o.size!==1)return null;let a=[...o][0];return s==="."?a:ne(s,a)}function ar(e,t){return ne(pe(e),"stages",t)}function Pa(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=ne(ar(e,t),"units"),s=ne(i,r);if(ue(s))return s;let o=r.match(/^unit-(\d+)-(.+)\.md$/);if(!o)return s;let a=Number.parseInt(o[1],10),c=o[2];if(!ue(i))return s;let u=an(i).filter(l=>{let d=l.match(/^unit-(\d+)-(.+)\.md$/);return d?Number.parseInt(d[1],10)===a&&d[2]===c:!1});return u.length===1?ne(i,u[0]):s}function z0(e,t){return ne(ar(e,t),"state.json")}function Qye(e,t){let n=e.replace(/^\.\//,""),r=t.replace(/^\.\//,"");if(n===r)return!0;if(r.endsWith("/**")){let i=r.slice(0,-3);return n===i||n.startsWith(`${i}/`)}if(r.endsWith("/"))return n.startsWith(r);if(!r.includes("*")&&n.startsWith(`${r}/`))return!0;if(r.includes("*")){let i=r.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),s=/\*\*/g,o=/\x00/g;return new RegExp(`^${i.replace(s,"\0").replace(/\*/g,"[^/]*").replace(o,".*")}$`).test(n)}return!1}function $3n(e,t,n){if(!ve())return null;let r=t.replace(/\.md$/,""),i=ne(Br(),".haiku","worktrees",e,r);if(!ue(i))return null;try{let s=`haiku/${e}/${r}`,o=`haiku/${e}/${n}`,a=Vh(`git merge-base ${s} ${o}`,{cwd:i,encoding:"utf8"}).toString().trim(),c=new Set,u=l=>{for(let d of l.split(` +`).map(f=>f.trim()))d&&c.add(d)};return u(Vh(`git diff --name-only ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Vh(`git log --name-only --pretty=format: ${a}..HEAD`,{cwd:i,encoding:"utf8"}).toString()),u(Vh("git diff --name-only HEAD",{cwd:i,encoding:"utf8"}).toString()),u(Vh("git diff --name-only --cached",{cwd:i,encoding:"utf8"}).toString()),u(Vh("git ls-files --others --exclude-standard",{cwd:i,encoding:"utf8"}).toString()),[...c].filter(l=>ue(ne(i,l)))}catch{return null}}function e9n(e,t,n,r){let i=r.replace(/\.md$/,""),s=[`stages/${n}/units/${i}.md`,`stages/${n}/state.json`,`stages/${n}/iteration.json`,`stages/${n}/feedback/**`,`stages/${n}/artifacts/**`,`stages/${n}/outputs/**`,`stages/${n}/discovery/**`,"state/**",".integrity.json","knowledge/**","action-log.jsonl","write-audit.jsonl","baseline.json","intent-tick.json"],o=[],a=!1,c=no(t,n);for(let u of c){let l=(u.location||"").trim(),d=u.scope||"intent";if(!l){d==="repo"&&(a=!0);continue}if(l.startsWith("(")&&l.endsWith(")")){d==="repo"&&(a=!0);continue}let f=l.replace(/\{intent-slug\}/g,e).replace(/\{stage\}/g,n);if(d==="repo")o.push(f);else{let p=`.haiku/intents/${e}/`,h=f.startsWith(p)?f.slice(p.length):f;s.push(h)}}return{intentGlobs:s,repoGlobs:o,repoWildcard:a}}function t9n(e,t,n,r){let i=$3n(e,n,t);return i!==null?i:[]}function n9n(e,t,n,r){let i=`.haiku/intents/${t}/`,s=r?e.startsWith(i)?e.slice(i.length):null:e;return!!(s!==null&&n.intentGlobs.some(o=>Qye(s,o))||r&&s===null&&(n.repoWildcard||n.repoGlobs.some(o=>Qye(e,o))))}function r9n(e,t,n,r){if(r.length===0)return;let i=Pa(e,t,n);if(!ue(i))return;let s=Pe(i,"utf8"),{data:o,content:a}=(0,Ct.default)(s),c=new Set((o.outputs||[]).map(g=>g)),u=n.replace(/\.md$/,""),l=new Set([`stages/${t}/units/${u}.md`,`stages/${t}/state.json`,`stages/${t}/iteration.json`,".integrity.json"]),d=[`stages/${t}/feedback/`,"state/"],f=ve(),p=`.haiku/intents/${e}/`,h=[];for(let g of r){let y=f?g.startsWith(p)?g.slice(p.length):null:g;if(y!==null&&(l.has(y)||d.some(S=>y.startsWith(S))||KL.has(y)))continue;let b=y??g;c.has(b)||(c.add(b),h.push(b))}if(h.length===0)return;let m=[...o.outputs||[],...h];o.outputs=m,In(i,Ct.default.stringify(a,o))}function fZ(e,t,n,r){let i=Pa(e,n,r);if(!ue(i))return null;let{data:s}=re(Pe(i,"utf8")),o=s.hat_started_at,a=t9n(e,n,r,o);if(a.length===0)return null;let c=e9n(e,t,n,r),u=ve(),l=[];for(let d of a)n9n(d,e,c,u)||l.push(d);return l.length>0?{violations:l,scope:c}:(r9n(e,n,r,a),null)}function sSe(e){return e?e.replace(/\s+/g," ").trim().toLowerCase().slice(0,100):""}function lbt(e){let t=0;for(let n of e)n.result==="reject"&&t++;return t}function dbt(e,t,n){if(!n)return 0;let r=0;for(let i=e.length-1;i>=0;i--){let s=e[i];if(!(s.completed_at===null||s.result===null)){if(s.result!=="reject"||s.hat!==t||sSe(s.reason)!==n)break;r++}}return r}function fbt(e){let t=e.map(r=>(r||"").trim().toLowerCase()).filter(r=>r.length>0).sort();if(t.length===0)return"";let n=5381;for(let r of t){for(let i=0;i>>0).toString(16)}`}function ebt(e,t){let r=`${e} ${t}`.replace(/```[\s\S]*?```/g," ").replace(/`[^`]*`/g," ").replace(/\*\*Rejection reason:\*\*[\s\S]*$/i," ").toLowerCase().replace(/[^a-z0-9\s]/g," ").split(/\s+/).filter(i=>i.length>=3&&!i9n.has(i));return new Set(r)}function s9n(e,t){if(e.size===0||t.size===0)return 0;let n=0;for(let i of e)t.has(i)&&n++;let r=e.size+t.size-n;return r===0?0:n/r}function pbt(e,t,n){let r;try{let a=t?Us(e,t):[],c=Us(e,"");r=[...a,...c]}catch{return null}let i=ebt(n.title,n.body);if(i.size===0)return null;let s=n.targetUnit??null,o=null;for(let a of r){if(a.status!=="closed"&&a.status!=="rejected"&&a.status!=="non_actionable")continue;let c=a.targets?.unit??null;if(s!==c)continue;let u=s9n(i,ebt(a.title,a.body));if(uo.sim)&&(o={id:a.id,status:a.status,resolution:d,sim:u})}return o?{id:o.id,status:o.status,resolution:o.resolution}:null}function hbt(e,t){return ne(ar(e,t),"decisions.jsonl")}function tbt(e,t,n){let r=hbt(e,t);try{Dl(K0(r),{recursive:!0}),M3n(r,`${JSON.stringify(n)} +`)}catch(i){console.error(`[haiku] failed to append decision log for ${e}/${t}: ${i instanceof Error?i.message:String(i)}`)}}function A3(e,t){let n=hbt(e,t);if(!ue(n))return[];let r=Pe(n,"utf8"),i=[];for(let s of r.split(` +`)){let o=s.trim();if(o)try{i.push(JSON.parse(o))}catch{}}return i}function oSe(e,t){return Us(e,t).filter(s=>typeof s.closed_at=="string"&&s.closed_at.length>0).slice().sort((s,o)=>(s.closed_at??"").localeCompare(o.closed_at??"")).map((s,o)=>({index:o+1,started_at:s.created_at||"",completed_at:s.closed_at??null,trigger:"feedback",result:"feedback-revisit",...s.title?{reason:s.title}:{}}))}function mbt(e,t,n){if(t&&n){let s=oSe(t,n).length;if(s>0)return s}let r=e.iterations;if(Array.isArray(r))return r.length;let i=e.visits;return typeof i=="number"?i:0}function aSe(e,t,n,r="feedback-revisit"){let i=oSe(e,t),s=En();i.length>0&&(i[i.length-1].completed_at||void 0);let o=n.feedbackTitles?fbt(n.feedbackTitles):"";({trigger:n.trigger,...n.reason?{reason:n.reason}:{},...o?{feedback_signature:o}:{}},i.push({index:i.length+1,started_at:s,completed_at:null,trigger:n.trigger,result:null,...n.reason?{reason:n.reason}:{},...o?{feedback_signature:o}:{}}));let a=i.length,c=n.trigger==="feedback"||n.trigger==="external-changes",u=c&&a>Df,l=!1;if(o&&c&&i.length>=2){let d=i[i.length-2];d.feedback_signature&&d.feedback_signature===o&&(l=!0)}return Ke("haiku.stage.iteration",{intent:e,stage:t,iteration:String(a),trigger:n.trigger,signature:o,exceeded:String(u),loop_detected:String(l)}),{count:a,exceeded:u,loopDetected:l,signature:o}}function cSe(e,t,n,r){let i=oSe(e,t),s=En();i.length===0&&void 0,{...r?{reason:r}:{}}}function h1(e,t){if(!ue(e))return;let{data:n,body:r}=re(Pe(e,"utf8")),i=Array.isArray(n.iterations)?n.iterations.slice():[];i.push({hat:t,started_at:En(),completed_at:null,result:null}),n.iterations=i,In(e,Ct.default.stringify(r,n))}function $ye(e){if(!ue(e))return;let t;try{t=re(Pe(e,"utf8"))}catch{return}let n=t.data.iterations;if(!Array.isArray(n))return;let r=!1;for(let i of n){if(!i||typeof i!="object"||Array.isArray(i))continue;let s=i;typeof s.reason=="string"&&(s.message===void 0&&s.reason.length>0&&(s.message=s.reason),delete s.reason,r=!0)}if(r)try{In(e,Ct.default.stringify(t.body,t.data))}catch{}}function hZ(e,t,n){if(!ue(e))return;let{data:r,body:i}=re(Pe(e,"utf8")),s=Array.isArray(r.iterations)?r.iterations.slice():[];if(s.length===0)return;let o=s[s.length-1];o.completed_at||(o.completed_at=En(),o.result=t,n&&(o.message=n),r.iterations=s,In(e,Ct.default.stringify(i,r)))}function c9n(e){let t=[],n=new Set;for(let r of a9n){r.lastIndex=0;for(let i of e.matchAll(r)){let s=i[1],o=i[2];if(!s||!o)continue;let a=`${s}@${o}`;n.has(a)||(n.add(a),t.push({full:i[0],identifier:s,path:o}))}}return t}function u9n(e){let t=c9n(e);if(t.length===0)return null;let n=process.cwd(),r=n.endsWith(G0)?n:`${n}${G0}`;for(let i of t){let s=i.path.startsWith("/")?i.path:ne(n,i.path),o=tp(s);if(!o.startsWith(r)&&o!==n)return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_outside_project",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but the resolved path escapes the project root. Only paths within the project tree can be cited as existing helpers.`};if(!ue(o))return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_missing",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but that path does not exist. Either fix the citation to a real path, or remove the citation if the helper is being introduced by this unit (the elaborate phase tracks NEW symbols separately from cited ones).`};try{let a=Pe(o,"utf8");if(!new RegExp(`(?:export[^\\n]*\\b${Wye(i.identifier)}\\b|\\bfunction\\s+${Wye(i.identifier)}\\b|\\b${Wye(i.identifier)}\\s*[:=(])`).test(a))return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"identifier_missing_in_path",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but \`${i.identifier}\` does not appear in that file (looked for export/function/record-field/assignment/call patterns). Either fix the citation, or if you intend to ADD this helper as part of this unit, remove the "existing" qualifier \u2014 the citation pattern is for already-shipped code.`}}catch{return{error:"cited_helper_not_found",citation:i.full,path:i.path,identifier:i.identifier,reason:"path_unreadable",message:`Unit body cites \`${i.identifier}\` at \`${i.path}\` but that path is unreadable. Fix the citation or remove it.`}}}return null}function Wye(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function l9n(e,t){let n=Array.isArray(t.quality_gates)?t.quality_gates:[];if(n.length===0)return null;let r=new Set;if(Array.isArray(t.outputs))for(let i of t.outputs)typeof i=="string"&&r.add(i);for(let i of n){if(typeof i!="object"||i===null)continue;let s=i,o=s.name||"",a=s.command||"";if(!a)continue;let c=a.match(/!\s*grep([^|]*)$/);if(c){let d=[...c[1].trim().split(/\s+/)].reverse().find(p=>!p.startsWith("-")),f=d?d.replace(/['"`]/g,""):"";for(let p of r)if(f===p||f.endsWith(`/${p}`)||p.endsWith(f))return{error:"gate_trivially_passes",gate:o,unit:e,pattern:"asserts_zero_matches_on_own_output",command:a,message:`Quality gate '${o}' on unit '${e}' asserts zero matches against \`${f}\`, which is one of the unit's own declared outputs. The gate trivially passes before the unit produces any output \u2014 once the implementer writes the wrong substring, the gate first fails. This is a no-op test. Replace it with a positive assertion (\`grep -q "" "${f}"\`) or a behavior-driven test (run the code, verify the result).`}}let u=a.match(/\bgrep\s+(?:-[a-zA-Z]+\s+)?["']([^"']+)["']\s+([\S]+)/);if(u){let l=u[1],d=u[2].replace(/['"`]/g,"");for(let f of r)if((d===f||d.endsWith(`/${f}`)||f.endsWith(d))&&/\b(complete|completed|done|finished|implemented|ready|success|passed)\b/i.test(l))return{error:"gate_trivially_passes",gate:o,unit:e,pattern:"literal_substring_in_self_authored_output",command:a,literal:l,message:`Quality gate '${o}' on unit '${e}' greps for the literal "${l}" in \`${d}\`, which is one of the unit's own declared outputs. The implementer can satisfy the gate by writing the literal into their own output \u2014 the gate is circular. Replace it with a behavior-driven test (run the code, verify the actual result), not a substring assertion on the file the implementer also writes.`}}}return null}function f9n(e){if(!Kye){let t=new obt.Ajv({allErrors:!0,strict:!1}),n=nn(),r=ne(n,"schemas","providers");if(ue(r)){let a="https://haiku.dev/schemas/";for(let c of d9n(r))if(c.endsWith(".schema.json"))try{let u=JSON.parse(Pe(ne(r,c),"utf8"));u.$id=`${a}providers/${c}`,t.addSchema(u)}catch{}}let i=ne(n,"schemas","settings.schema.json"),s=ue(i)?JSON.parse(Pe(i,"utf8")):{type:"object",additionalProperties:!0},o=t.compile(s);Kye=o,eSe=()=>o.errors}return Kye(e)}function p9n(){return eSe?eSe():[]}function h9n(e){if(e.keyword==="propertyNames")return`fsm_field_forbidden: '${e.params.propertyName??""}' is workflow-driven and must not be set by agents. The workflow engine owns this field via haiku_unit_advance_hat / haiku_unit_increment_bolt / etc.`;let n=e.instancePath.split("/").filter(Boolean)[0];switch(n){case"title":return`title_shape: title must be a non-empty string, or omit the field (it will default to the unit name). (${e.message??e.keyword})`;case"model":return"model_shape: model must be 'haiku', 'sonnet', or 'opus'. Omit the field to fall through to hat/stage/studio defaults.";case"depends_on":return`depends_on_shape: depends_on must be a list of unit names (strings), or omit the field entirely for units with no dependencies. (${e.message??e.keyword} at ${e.instancePath})`;case"closes":return`closes_shape: closes must be a list of FB ID strings, or omit the field for units that don't address feedback. (${e.message??e.keyword} at ${e.instancePath})`;case"quality_gates":return`quality_gates_shape: quality_gates must be a list of {name, command, dir?} objects with non-empty name+command. Prose-only gates are silently skipped \u2014 write a real command. (${e.message??e.keyword} at ${e.instancePath})`;case"inputs":case"outputs":return`${n}_shape: ${n} must be a list of strings. (${e.message??e.keyword} at ${e.instancePath})`;default:return`frontmatter_shape: ${e.message??e.keyword} at ${e.instancePath||"/"}`}}function cZ(e,t){if(e===t)return!0;let n=e.match(/^unit-(\d+)-(.+)$/),r=t.match(/^unit-(\d+)-(.+)$/);return!n||!r?!1:Number.parseInt(n[1],10)===Number.parseInt(r[1],10)&&n[2]===r[2]}function gbt(e,t){let n=[];if(!Ng(e)&&Ng.errors)for(let i of Ng.errors)n.push(h9n(i));if(Array.isArray(e.depends_on))for(let i of e.depends_on){if(typeof i!="string")continue;(i===t.unit||cZ(i,t.unit))&&n.push(`depends_on_self_reference: unit '${t.unit}' lists itself in depends_on. A unit cannot depend on itself.`),!t.siblingUnits.some(o=>cZ(i,o))&&!cZ(i,t.unit)&&n.push(`depends_on_unresolved: depends_on entry '${i}' does not resolve to a unit in stage '${t.stage}'. Sibling units in this stage: [${t.siblingUnits.join(", ")}].`)}if(Array.isArray(e.inputs))for(let i of e.inputs)typeof i=="string"&&/^unit-\d+-/.test(i.trim())&&n.push(`inputs_unit_name_not_path: inputs entry '${i}' looks like a unit name, but \`inputs:\` must list file PATHS the unit reads (e.g. \`product/ACCEPTANCE-CRITERIA.md\`, a prior-stage artifact, or a sibling unit's declared output file). To express ordering on another unit, add it to \`depends_on:\` and put that unit's actual output path in \`inputs:\`.`);if(Array.isArray(e.inputs)&&t.siblingOutputs){let i=Array.isArray(e.depends_on)?e.depends_on.filter(s=>typeof s=="string"):[];for(let s of e.inputs){if(typeof s!="string")continue;let o=s.trim();for(let[a,c]of Object.entries(t.siblingOutputs)){if(a===t.unit||!c.includes(o))continue;i.some(l=>cZ(l,a))||n.push(`inputs_undeclared_producer: inputs entry '${o}' is a declared output of sibling unit '${a}', but '${a}' is not in \`depends_on:\`. The wave scheduler sequences only on depends_on \u2014 without it, '${t.unit}' is co-scheduled with its producer and the input won't exist when it runs. Add '${a}' to \`depends_on:\`.`)}}}if(t.stageProduces==="build"){let s=(Array.isArray(e.outputs)?e.outputs:[]).length>0,o="quality_gates"in e;s&&!o&&n.push(`build_unit_missing_quality_gates: unit '${t.unit}' declares \`outputs:\` in build-class stage '${t.stage}' but has no \`quality_gates:\` field \u2014 it would complete with nothing verifying its artifact. Add \`quality_gates:\` (an explicit empty list \`[]\` is allowed when the unit genuinely defers verification to a sibling test unit, but the field MUST be present so the omission is a deliberate, reviewable choice rather than a silent gap).`)}return n.length===0?{valid:!0}:{valid:!1,errors:n}}function ybt(e){let i={},s=new Set;for(let a of Object.keys(e))i[a]=0;function o(a){if(i[a]===1)return s.add(a),!0;if(i[a]===2)return!1;i[a]=1;let c=e[a]||[],u=!1;for(let l of c)l in e&&o(l)&&(s.add(a),u=!0);return i[a]=2,u}for(let a of Object.keys(e))i[a]===0&&o(a);return[...s].sort()}function E1(e){let t={...e};for(let n in t)t[n]instanceof Date&&(t[n]=t[n].toISOString());return t}function re(e){let t=n=>{let{data:r,content:i}=(0,Ct.default)(n);return{data:E1(r),body:i.trim()}};try{return t(e)}catch(n){if(!uI(n))throw n;let{text:r,removed:i}=pg(e);if(i.length===0)throw n;return ms(n,{context:"parseFrontmatter:dedup-recovery",removed_keys:i}),t(r)}}function Fg(e,t){if(!ue(e))return[];let n=t?.includeArchived===!0,r=[];for(let i of an(e)){let s=ne(e,i,"intent.md");if(!ue(s))continue;let{data:o}=re(Pe(s,"utf8"));!n&&o.archived===!0||r.push({slug:i,data:o})}return r}function m9n(e,t){return Fg(e,t).map(n=>n.slug)}function yv(){if(!ve())return null;let e=mr();if(!e)return null;let t=e.match(/^haiku\/([^/]+)\/([^/]+)$/);if(!t)return null;let n=t[1],r=t[2];return{slug:n,stage:r==="main"?null:r}}function Me(e,t,n){let r=Pe(e,"utf8"),i=(0,Ct.default)(r),s={...i.data,[t]:n};In(e,Ct.default.stringify(i.content,E1(s)))}function Yh(e,t){if(!ue(e))return;let n=Pe(e,"utf8"),r=(0,Ct.default)(n),i={...r.data},s=!1;for(let o of t)o in i&&(delete i[o],s=!0);s&&In(e,Ct.default.stringify(r.content,E1(i)))}function g9n(e,t,n,r,i){let s=Pa(e,t,n);ue(s)&&Me(s,r,i);let o=ne(Br(),".haiku","worktrees",e,n);if(!ue(o))return;let a=ne(o,".haiku","intents",e,"stages",t,"units",n.endsWith(".md")?n:`${n}.md`);ue(a)&&Me(a,r,i)}function nbt(e){let{data:t}=(0,Ct.default)(`--- ${e} --- -`);return S1(t)}function y9n(e,t){let n=t.split("."),r=e;for(let i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function Hb(e){return ue(e)?JSON.parse(Pe(e,"utf8")):{}}function p1(e,t){Dl(ne(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} -`)}function En(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function ZD(){if(ve())try{let e=ne(Br(),".gitignore"),t=".haiku/worktrees/",n="";try{ue(e)&&(n=Pe(e,"utf8"))}catch{}if(n.split(` +`);return E1(t)}function y9n(e,t){let n=t.split("."),r=e;for(let i of n){if(r==null||typeof r!="object")return;r=r[i]}return r}function Hb(e){return ue(e)?JSON.parse(Pe(e,"utf8")):{}}function m1(e,t){Dl(ne(e,".."),{recursive:!0}),In(e,`${JSON.stringify(t,null,2)} +`)}function En(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function JD(){if(ve())try{let e=ne(Br(),".gitignore"),t=".haiku/worktrees/",n="";try{ue(e)&&(n=Pe(e,"utf8"))}catch{}if(n.split(` `).map(a=>a.trim()).some(a=>a===t||a===".haiku/worktrees"))return;let i="# H\xB7AI\xB7K\xB7U engine worktree pool \u2014 each entry is a linked git worktree; never commit these.",s=n&&!n.endsWith(` `)?` `:"";In(e,`${n}${s}${n?` `:""}${i} ${t} -`),Na("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m","chore(haiku): gitignore engine worktree pool (.haiku/worktrees/)","--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function Sbt(e){Na("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Na("git",["rm","--cached","-r","--ignore-unmatch","-f","--",ne(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function hZ(e){if(!ve())return{committed:!1,pushed:!1};try{Na("git",["add","-A","--",Te(),"."],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Na("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function wt(e){if(!ve())return{committed:!1,pushed:!1};try{Sbt(Te()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Na("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function cSe(e){if(!ve())return{committed:!1,pushed:!1};try{if(!Na("git",["status","--porcelain","--",Te()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function jg(e){if(!ve())return{committed:!1};try{Sbt(Te()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=N3n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function uSe(e,t,n){if(!ve())return"";let r=mr();if(!r)return"";let i=`haiku/${e}/`;if(t==="intent"){if(!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected a branch under '${i}' but on '${r}'. Run \`git checkout haiku/${e}/main\` or the appropriate stage branch. Custom branch names break the H\xB7AI\xB7K\xB7U lifecycle.`}else if(t==="unit"&&n){let s=`haiku/${e}/${n}`;if(r!==s&&!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected '${s}' or a branch under '${i}' but on '${r}'. Ensure you're working in the correct worktree.`}return""}function cZ(e){return e.pushed||!e.committed?"":` +`),Na("git",["add","--",".gitignore"],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m","chore(haiku): gitignore engine worktree pool (.haiku/worktrees/)","--",".gitignore"],{encoding:"utf8",stdio:"pipe"})}catch{}}function Sbt(e){Na("git",["add","--",e],{encoding:"utf8",stdio:"pipe"});try{Na("git",["rm","--cached","-r","--ignore-unmatch","-f","--",ne(e,"worktrees")],{encoding:"utf8",stdio:"pipe"})}catch{}}function mZ(e){if(!ve())return{committed:!1,pushed:!1};try{Na("git",["add","-A","--",Te(),"."],{encoding:"utf8",stdio:"pipe"}),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Na("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function wt(e){if(!ve())return{committed:!1,pushed:!1};try{Sbt(Te()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"});try{return Na("git",["push"],{encoding:"utf8",stdio:"pipe",timeout:Ra,env:Aa}),{committed:!0,pushed:!0}}catch(t){return{committed:!0,pushed:!1,pushError:t instanceof Error?t.message:String(t)}}}catch{return{committed:!1,pushed:!1}}}function uSe(e){if(!ve())return{committed:!1,pushed:!1};try{if(!Na("git",["status","--porcelain","--",Te()],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim())return{committed:!1,pushed:!1}}catch{}return wt(e)}function jg(e){if(!ve())return{committed:!1};try{Sbt(Te()),Na("git",["commit","-m",e,"--allow-empty"],{encoding:"utf8",stdio:"pipe"})}catch{return{committed:!1}}try{let t=N3n("git",["push"],{stdio:"ignore",detached:!0});t.unref(),t.on("error",()=>{})}catch{}return{committed:!0}}function lSe(e,t,n){if(!ve())return"";let r=mr();if(!r)return"";let i=`haiku/${e}/`;if(t==="intent"){if(!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected a branch under '${i}' but on '${r}'. Run \`git checkout haiku/${e}/main\` or the appropriate stage branch. Custom branch names break the H\xB7AI\xB7K\xB7U lifecycle.`}else if(t==="unit"&&n){let s=`haiku/${e}/${n}`;if(r!==s&&!r.startsWith(i))return`\u26A0\uFE0F WRONG BRANCH: Expected '${s}' or a branch under '${i}' but on '${r}'. Ensure you're working in the correct worktree.`}return""}function uZ(e){return e.pushed||!e.committed?"":` -\u26A0\uFE0F GIT PUSH FAILED: ${e.pushError||"unknown error"}. Run \`git pull --rebase && git push\` to sync with remote. If there are conflicts, resolve them then push again.`}function uZ(e,t){return t.pushed||!t.committed?e:{...e,push_failed:!0,push_error:t.pushError||"unknown error",message:`${e.message||""}. \u26A0\uFE0F GIT PUSH FAILED: ${t.pushError||"unknown error"}. Run \`git pull --rebase && git push\` to resolve.`}}function d1(e){let t=Te(),n=ne(t,"intents",e,"intent.md");if(!ue(n))return"";let{data:r}=re(Pe(n,"utf8"));return r.active_stage||""}function ea(e,t){if(mb())return null;let n=gr(e,t);if(!n.ok){if(n.block==="dirty_tree"){let r=n.dirty_files||[],i=r.length>0?` +\u26A0\uFE0F GIT PUSH FAILED: ${e.pushError||"unknown error"}. Run \`git pull --rebase && git push\` to sync with remote. If there are conflicts, resolve them then push again.`}function lZ(e,t){return t.pushed||!t.committed?e:{...e,push_failed:!0,push_error:t.pushError||"unknown error",message:`${e.message||""}. \u26A0\uFE0F GIT PUSH FAILED: ${t.pushError||"unknown error"}. Run \`git pull --rebase && git push\` to resolve.`}}function p1(e){let t=Te(),n=ne(t,"intents",e,"intent.md");if(!ue(n))return"";let{data:r}=re(Pe(n,"utf8"));return r.active_stage||""}function ea(e,t){if(mb())return null;let n=gr(e,t);if(!n.ok){if(n.block==="dirty_tree"){let r=n.dirty_files||[],i=r.length>0?` Files to commit: ${r.map(o=>` - ${o}`).join(` @@ -701,39 +701,39 @@ ${r.map(o=>` - ${o}`).join(` Steps: 1. \`git add ${r.length>0?r.join(" "):""}\` 2. \`git commit -m "haiku: wip on ${n.branch}"\` - 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function mZ(e,t){let n=Te(),r=d1(e);if(r){let s=Pa(e,r,t);if(ue(s))return{path:s,stage:r}}let i=ne(n,"intents",e,"stages");if(!ue(i))return null;for(let s of an(i)){let o=Pa(e,s,t);if(ue(o))return{path:o,stage:s}}return null}function eSe(e,t,n){return b1(e,t)}function b1(e,t){try{let n=Te(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(Pe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[ne(process.cwd(),".haiku","studios"),ne(o,"studios")]){let c=ne(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let{data:u}=re(Pe(c,"utf8"));return u.hats||[]}}catch{}return[]}function lZ(e,t){try{let n=Te(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(Pe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[ne(process.cwd(),".haiku","studios"),ne(o,"studios")]){let c=ne(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let u=Pe(c,"utf8"),l=re(u),{content:d}=(0,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=Te(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(Pe(r,"utf8")),s=i.studio||"",o=i.active_stage||"",a="";if(o){let f=typeof i.mode=="string"&&i.mode.length>0?i.mode:"continuous";a=mv({slug:e,studio:s,stage:o,intentDir:ne(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=ne(ar(e,o),"units");if(ue(f))for(let p of an(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(Pe(ne(f,p),"utf8"));if(!(typeof h.started_at=="string"&&h.started_at.length>0))continue;let g=Array.isArray(h.iterations)?h.iterations:[],y=g.length>0?g[g.length-1]:null;if(!(y!==null&&(y.result==="advance"||y.result==="closed"))){c=p.replace(".md",""),u=y!==null&&typeof y.hat=="string"?y.hat:null,l=g.length>0?g.length:1;break}}}let d=o;if(s&&o){let f=nn();for(let p of[ne(process.cwd(),".haiku","studios"),ne(f,"studios")]){let h=ne(p,s,"stages",o,"STAGE.md");if(!ue(h))continue;let{data:m}=re(Pe(h,"utf8"));d=m.description||o;break}}VSt(t,{intent:e,studio:s,active_stage:o,phase:a,active_unit:c,hat:u,bolt:l,stage_description:d,updated_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z")})}catch{}}function G0(e){let t=e.iterations;if(Array.isArray(t)&&t.length>0){let r=t[t.length-1],i=e.approvals,s=i!==null&&typeof i=="object"&&Object.keys(i).length>0;return r&&r.result==="advance"&&s?"completed":"active"}let n=e.status;if(typeof n=="string"){let r=n.trim().toLowerCase();if(r==="completed"||r==="complete")return"completed";if(r==="active")return"active"}return"pending"}function np(e){let t=e.rejected_at;if(typeof t=="string"&&t.length>0)return"rejected";let n=e.closed_at,r=typeof n=="string"&&n.length>0?n:null,i=e.closed_by,s=typeof i=="string"&&i.length>0?i:null;if(r){if(s==="feedback-assessor")return"addressed";let c=e.resolution;return typeof c=="string"&&c==="answered"?"answered":typeof c=="string"&&c==="non_actionable"?"non_actionable":"closed"}let o=e.status;if(typeof o=="string"){let c=o.trim().toLowerCase();if(c==="rejected")return"rejected";if(c==="addressed")return"addressed";if(c==="answered")return"answered";if(c==="non_actionable")return"non_actionable";if(c==="closed")return"closed";if(c==="fixing")return"fixing"}if(s)return"fixing";let a=e.iterations;return Array.isArray(a)&&a.length>0?"fixing":"pending"}function SZ(e,t=()=>new Date().toISOString()){let n=e.status;if(n===void 0)return e;if(typeof n!="string")return delete e.status,e;let r=n.trim().toLowerCase();if(r==="")return delete e.status,e;switch(r){case"rejected":e.rejected_at||(e.rejected_at=t());break;case"addressed":e.closed_at||(e.closed_at=t()),e.closed_by||(e.closed_by="feedback-assessor");break;case"answered":e.closed_at||(e.closed_at=t()),e.resolution||(e.resolution="answered");break;case"closed":e.closed_at||(e.closed_at=t());break;case"fixing":case"pending":break;default:break}return delete e.status,e}function lSe(e){return E9n.has(e)?"human":"agent"}function _9n(e){return lSe(e)==="human"?"user":"agent"}function T9n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function bZ(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function dSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction");Dl(t,{recursive:!0});for(let s of an(t))if(/^dd-\d+-.*\.(png|jpe?g|webp)$/i.test(s))try{V0(ne(t,s))}catch{}let n=bZ(e.archetype)||"selection",r=[],i=1;for(let s of e.screenshots){let o=s.screenshot_data_url.match(/^data:image\/(png|jpeg|webp);base64,([A-Za-z0-9+/=]+)$/);if(!o)continue;let a=o[1]==="jpeg"?"jpg":o[1],c=`dd-${E1(i)}-${n}.${a}`;In(ne(t,c),Buffer.from(o[2],"base64")),r.push({comment:s.comment,screenshot_path:`stages/${e.stage}/artifacts/design-direction/${c}`}),i++}try{let s=ne(pe(e.slug),"intent.md");if(ue(s)){let o=Pe(s,"utf8"),c=re(o).data||{},u=c.design_directions&&typeof c.design_directions=="object"?c.design_directions:{};u[e.stage]={mode:"archetype",archetype:e.archetype,...e.comments?{comments:e.comments}:{},...r.length>0?{annotations:r}:{},at:En()},Me(s,"design_directions",u)}}catch(s){console.error(`[haiku] failed to stamp design_directions on intent.md: ${s instanceof Error?s.message:String(s)}`)}try{let s=ne(ar(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:En()};e.comments&&(o.comments=e.comments),r.length>0&&(o.annotations=r);let a=[];if(a.push(`# Design Direction \u2014 ${e.archetype}`),a.push(""),e.comments&&(a.push(e.comments.trim()),a.push("")),r.length>0){a.push("## Annotated screenshots"),a.push("");for(let c of r)a.push(`- \`${c.screenshot_path}\` \u2014 ${c.comment}`)}Dl(W0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` + 3. Retry the call.`};return{content:[{type:"text",text:JSON.stringify(s,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${t??"(none)"}' \u2014 ${n.message}`}],isError:!0}}return null}function gZ(e,t){let n=Te(),r=p1(e);if(r){let s=Pa(e,r,t);if(ue(s))return{path:s,stage:r}}let i=ne(n,"intents",e,"stages");if(!ue(i))return null;for(let s of an(i)){let o=Pa(e,s,t);if(ue(o))return{path:o,stage:s}}return null}function tSe(e,t,n){return _1(e,t)}function _1(e,t){try{let n=Te(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return[];let{data:i}=re(Pe(r,"utf8")),s=i.studio||"";if(!s)return[];let o=nn();for(let a of[ne(process.cwd(),".haiku","studios"),ne(o,"studios")]){let c=ne(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let{data:u}=re(Pe(c,"utf8"));return u.hats||[]}}catch{}return[]}function dZ(e,t){try{let n=Te(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return"";let{data:i}=re(Pe(r,"utf8")),s=i.studio||"";if(!s)return"";let o=nn();for(let a of[ne(process.cwd(),".haiku","studios"),ne(o,"studios")]){let c=ne(a,s,"stages",t,"STAGE.md");if(!ue(c))continue;let u=Pe(c,"utf8"),l=re(u),{content:d}=(0,Ct.default)(u),f=l.data.description||t;return`[stage_scope] ${t}: ${f} | ${d.trim().slice(0,500)}`}}catch{}return""}function Xr(e,t){if(t)try{let n=Te(),r=ne(n,"intents",e,"intent.md");if(!ue(r))return;let{data:i}=re(Pe(r,"utf8")),s=i.studio||"",o=i.active_stage||"",a="";if(o){let f=typeof i.mode=="string"&&i.mode.length>0?i.mode:"continuous";a=mv({slug:e,studio:s,stage:o,intentDir:ne(n,"intents",e),intentMode:f}).phase??""}let c=null,u=null,l=null;if(o){let f=ne(ar(e,o),"units");if(ue(f))for(let p of an(f).filter(h=>h.endsWith(".md"))){let{data:h}=re(Pe(ne(f,p),"utf8"));if(!(typeof h.started_at=="string"&&h.started_at.length>0))continue;let g=Array.isArray(h.iterations)?h.iterations:[],y=g.length>0?g[g.length-1]:null;if(!(y!==null&&(y.result==="advance"||y.result==="closed"))){c=p.replace(".md",""),u=y!==null&&typeof y.hat=="string"?y.hat:null,l=g.length>0?g.length:1;break}}}let d=o;if(s&&o){let f=nn();for(let p of[ne(process.cwd(),".haiku","studios"),ne(f,"studios")]){let h=ne(p,s,"stages",o,"STAGE.md");if(!ue(h))continue;let{data:m}=re(Pe(h,"utf8"));d=m.description||o;break}}VSt(t,{intent:e,studio:s,active_stage:o,phase:a,active_unit:c,hat:u,bolt:l,stage_description:d,updated_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z")})}catch{}}function V0(e){let t=e.iterations;if(Array.isArray(t)&&t.length>0){let r=t[t.length-1],i=e.approvals,s=i!==null&&typeof i=="object"&&Object.keys(i).length>0;return r&&r.result==="advance"&&s?"completed":"active"}let n=e.status;if(typeof n=="string"){let r=n.trim().toLowerCase();if(r==="completed"||r==="complete")return"completed";if(r==="active")return"active"}return"pending"}function np(e){let t=e.rejected_at;if(typeof t=="string"&&t.length>0)return"rejected";let n=e.closed_at,r=typeof n=="string"&&n.length>0?n:null,i=e.closed_by,s=typeof i=="string"&&i.length>0?i:null;if(r){if(s==="feedback-assessor")return"addressed";let c=e.resolution;return typeof c=="string"&&c==="answered"?"answered":typeof c=="string"&&c==="non_actionable"?"non_actionable":"closed"}let o=e.status;if(typeof o=="string"){let c=o.trim().toLowerCase();if(c==="rejected")return"rejected";if(c==="addressed")return"addressed";if(c==="answered")return"answered";if(c==="non_actionable")return"non_actionable";if(c==="closed")return"closed";if(c==="fixing")return"fixing"}if(s)return"fixing";let a=e.iterations;return Array.isArray(a)&&a.length>0?"fixing":"pending"}function bZ(e,t=()=>new Date().toISOString()){let n=e.status;if(n===void 0)return e;if(typeof n!="string")return delete e.status,e;let r=n.trim().toLowerCase();if(r==="")return delete e.status,e;switch(r){case"rejected":e.rejected_at||(e.rejected_at=t());break;case"addressed":e.closed_at||(e.closed_at=t()),e.closed_by||(e.closed_by="feedback-assessor");break;case"answered":e.closed_at||(e.closed_at=t()),e.resolution||(e.resolution="answered");break;case"closed":e.closed_at||(e.closed_at=t());break;case"fixing":case"pending":break;default:break}return delete e.status,e}function dSe(e){return E9n.has(e)?"human":"agent"}function _9n(e){return dSe(e)==="human"?"user":"agent"}function T9n(e,t){return Array.isArray(e)?e:t.startsWith("user-")?["user"]:[]}function EZ(e,t=60){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-{2,}/g,"-").slice(0,t).replace(/-+$/,"")}function fSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction");Dl(t,{recursive:!0});for(let s of an(t))if(/^dd-\d+-.*\.(png|jpe?g|webp)$/i.test(s))try{W0(ne(t,s))}catch{}let n=EZ(e.archetype)||"selection",r=[],i=1;for(let s of e.screenshots){let o=s.screenshot_data_url.match(/^data:image\/(png|jpeg|webp);base64,([A-Za-z0-9+/=]+)$/);if(!o)continue;let a=o[1]==="jpeg"?"jpg":o[1],c=`dd-${T1(i)}-${n}.${a}`;In(ne(t,c),Buffer.from(o[2],"base64")),r.push({comment:s.comment,screenshot_path:`stages/${e.stage}/artifacts/design-direction/${c}`}),i++}try{let s=ne(pe(e.slug),"intent.md");if(ue(s)){let o=Pe(s,"utf8"),c=re(o).data||{},u=c.design_directions&&typeof c.design_directions=="object"?c.design_directions:{};u[e.stage]={mode:"archetype",archetype:e.archetype,...e.comments?{comments:e.comments}:{},...r.length>0?{annotations:r}:{},at:En()},Me(s,"design_directions",u)}}catch(s){console.error(`[haiku] failed to stamp design_directions on intent.md: ${s instanceof Error?s.message:String(s)}`)}try{let s=ne(ar(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"archetype",archetype:e.archetype,recorded_at:En()};e.comments&&(o.comments=e.comments),r.length>0&&(o.annotations=r);let a=[];if(a.push(`# Design Direction \u2014 ${e.archetype}`),a.push(""),e.comments&&(a.push(e.comments.trim()),a.push("")),r.length>0){a.push("## Annotated screenshots"),a.push("");for(let c of r)a.push(`- \`${c.screenshot_path}\` \u2014 ${c.comment}`)}Dl(K0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` `).trim()} -`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest: ${s instanceof Error?s.message:String(s)}`)}return{annotations:r,artifactsDir:t}}function fSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction"),n=ne(t,"uploads");Dl(n,{recursive:!0});for(let s of an(n))if(/^up-\d+-.*\.(png|jpe?g|webp|svg|pdf|gif)$/i.test(s))try{V0(ne(n,s))}catch{}let r=[],i=1;for(let s of e.files){let o=s.data_url.match(/^data:(image\/(?:png|jpeg|webp|svg\+xml|gif)|application\/pdf);base64,([A-Za-z0-9+/=]+)$/);if(!o)continue;let a=o[1],c;a==="image/jpeg"?c="jpg":a==="image/svg+xml"?c="svg":a==="application/pdf"?c="pdf":c=a.replace(/^image\//,"");let u=bZ(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${E1(i)}-${u}.${c}`;In(ne(n,l),Buffer.from(o[2],"base64"));let d={filename:s.filename,path:`stages/${e.stage}/artifacts/design-direction/uploads/${l}`,...s.caption?{caption:s.caption}:{}};r.push(d),i++}try{let s=ne(pe(e.slug),"intent.md");if(ue(s)){let o=Pe(s,"utf8"),c=re(o).data||{},u=c.design_directions&&typeof c.design_directions=="object"?c.design_directions:{};u[e.stage]={mode:"upload",...e.comments?{comments:e.comments}:{},uploads:r,at:En()},Me(s,"design_directions",u)}}catch(s){console.error(`[haiku] failed to stamp design_directions (upload) on intent.md: ${s instanceof Error?s.message:String(s)}`)}try{let s=ne(ar(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:En()};e.comments&&(o.comments=e.comments),r.length>0&&(o.uploads=r);let a=[];if(a.push("# Design Direction \u2014 Uploaded reference materials"),a.push(""),e.comments&&(a.push(e.comments.trim()),a.push("")),r.length>0){a.push("## Uploaded files"),a.push("");for(let c of r){let u=c.caption?` \u2014 ${c.caption}`:"";a.push(`- \`${c.path}\` (${c.filename})${u}`)}}Dl(W0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` +`,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest: ${s instanceof Error?s.message:String(s)}`)}return{annotations:r,artifactsDir:t}}function pSe(e){let t=ne(ar(e.slug,e.stage),"artifacts","design-direction"),n=ne(t,"uploads");Dl(n,{recursive:!0});for(let s of an(n))if(/^up-\d+-.*\.(png|jpe?g|webp|svg|pdf|gif)$/i.test(s))try{W0(ne(n,s))}catch{}let r=[],i=1;for(let s of e.files){let o=s.data_url.match(/^data:(image\/(?:png|jpeg|webp|svg\+xml|gif)|application\/pdf);base64,([A-Za-z0-9+/=]+)$/);if(!o)continue;let a=o[1],c;a==="image/jpeg"?c="jpg":a==="image/svg+xml"?c="svg":a==="application/pdf"?c="pdf":c=a.replace(/^image\//,"");let u=EZ(e.files[i-1]?.filename.replace(/\.[^.]+$/,"")??"")||`upload-${i}`,l=`up-${T1(i)}-${u}.${c}`;In(ne(n,l),Buffer.from(o[2],"base64"));let d={filename:s.filename,path:`stages/${e.stage}/artifacts/design-direction/uploads/${l}`,...s.caption?{caption:s.caption}:{}};r.push(d),i++}try{let s=ne(pe(e.slug),"intent.md");if(ue(s)){let o=Pe(s,"utf8"),c=re(o).data||{},u=c.design_directions&&typeof c.design_directions=="object"?c.design_directions:{};u[e.stage]={mode:"upload",...e.comments?{comments:e.comments}:{},uploads:r,at:En()},Me(s,"design_directions",u)}}catch(s){console.error(`[haiku] failed to stamp design_directions (upload) on intent.md: ${s instanceof Error?s.message:String(s)}`)}try{let s=ne(ar(e.slug,e.stage),"artifacts","design-direction.md"),o={intent:e.slug,stage:e.stage,mode:"upload",recorded_at:En()};e.comments&&(o.comments=e.comments),r.length>0&&(o.uploads=r);let a=[];if(a.push("# Design Direction \u2014 Uploaded reference materials"),a.push(""),e.comments&&(a.push(e.comments.trim()),a.push("")),r.length>0){a.push("## Uploaded files"),a.push("");for(let c of r){let u=c.caption?` \u2014 ${c.caption}`:"";a.push(`- \`${c.path}\` (${c.filename})${u}`)}}Dl(K0(s),{recursive:!0}),In(s,Ct.default.stringify(`${a.join(` `).trim()} `,o))}catch(s){console.error(`[haiku] failed to write design-direction.md manifest (upload): ${s instanceof Error?s.message:String(s)}`)}return{uploads:r,uploadsDir:n}}function lo(e,t){return t?ne(ar(e,t),"feedback"):ne(pe(e),"feedback")}function Ebt(e){let{slug:t,stage:n,feedbackId:r,hat:i}=e;try{let s=lo(t,n);if(!ue(s))return;let o=r.replace(/^FB-/i,""),a=an(s).find(y=>y.startsWith(o)&&y.endsWith(".md"));if(!a)return;let c=ne(s,a),u=Pe(c,"utf8"),l=(0,Ct.default)(u),d=l.data,f=Array.isArray(d.iterations)?d.iterations:[],p=f[f.length-1];if(p&&(p.result===null||p.result===void 0)&&p.hat===i)return;let h=f.reduce((y,b)=>{let S=b.bolt;return typeof S=="number"&&S>y?S:y},0),m=h>0?h:1;f.push({hat:i,started_at:En(),result:null,bolt:m});let g={...d,iterations:f};In(c,Ct.default.stringify(`${l.content.trimEnd()} -`,g))}catch{}}function pSe(e){let{slug:t,stage:n,unit:r,hat:i}=e;try{let s=Pa(t,n,r);if(!ue(s))return;let a=(0,Ct.default)(Pe(s,"utf8")).data,c=Array.isArray(a.iterations)?a.iterations:[],u=c[c.length-1];if(!u||u.result!==null||u.hat!==i||typeof u.dispatched_at=="string"&&u.dispatched_at.length>0)return;u.dispatched_at=En(),Me(s,"iterations",c)}catch{}}function rbt(e,t){try{return H0(e,()=>{let n=pe(e),r=ne(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(Pe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=mZ(e,t);if(!d)return null;let f=re(Pe(d.path,"utf8")),p=b1(e,d.stage),h=sv(f.data,p);if(!h)return null;let m=qI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return pSe({slug:e,stage:d.stage,unit:t,hat:h.hat}),m}let o=$f({slug:e,intentDir:n,studio:s});if(!o?.action||o.action.kind!=="start_unit_hat")return null;let a=o.action.stage,c=o.action.hat,u=o.action.units,l=o.action.terminal;return!a||!c||!Array.isArray(u)||u.length===0?null:qI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function Kye(e,t){let n=pe(e),r=ue(ne(n,"intent.md"))?(0,Ct.default)(Pe(ne(n,"intent.md"),"utf8")).data:{},i=ai(e,t,n)??"",s=wn(r,t),o=s.indexOf(i),a=o>=0?s.slice(0,o+1):[],c=[];for(let d of a)c.push({stage:d,dir:ne(n,"stages",d,"feedback")});c.push({stage:"",dir:ne(n,"feedback")});let u=[];for(let{stage:d,dir:f}of c){if(!ue(f))continue;let p=an(f).filter(h=>h.endsWith(".md")).sort();for(let h of p){let m;try{m=re(Pe(ne(f,h),"utf8")).data}catch{m=void 0}if(!m||typeof m.status=="string"&&(m.status==="closed"||m.status==="rejected")||m.closed_at||m.rejected_at||(Array.isArray(m.iterations)?m.iterations:[]).length>0)continue;let y=d?bg(t,d):jf(t);if(y.length===0)continue;let b=h.match(/^(\d+)-/)?.[1]??"";b&&u.push({stage:d,feedbackId:`FB-${b.padStart(3,"0")}`,firstHat:y[0],terminal:y.length===1,severity:typeof m.severity=="string"?m.severity:null})}}if(u.length===0)return null;let l=[...u].sort((d,f)=>Xc(d.severity)-Xc(f.severity))[0];return Ebt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),HI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function _bt(e,t,n){if(n<=0)return[];let r=pe(e),i=ai(e,t,r)??"";if(!i)return[];let s=b1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=ne(ar(e,i),"units");if(!ue(u))return[];let l=an(u).filter(h=>h.endsWith(".md")).sort(),d=[];for(let h of l){let m=ne(u,h),g;try{g=re(Pe(m,"utf8")).data}catch{g=void 0}g&&d.push({name:h.replace(/\.md$/,""),path:m,fm:g})}let f=new Set(d.filter(h=>{let m=Array.isArray(h.fm.iterations)?h.fm.iterations:[],g=m[m.length-1];return g&&g.result==="advance"&&g.hat===a}).map(h=>h.name)),p=[];for(let h of d){if(p.length>=n)break;h.fm.started_at!=null||(Array.isArray(h.fm.iterations)?h.fm.iterations:[]).length>0||!(Array.isArray(h.fm.depends_on)?h.fm.depends_on:[]).every(b=>f.has(b))||!("inputs"in h.fm)||(Array.isArray(h.fm.inputs)?h.fm.inputs:[]).some(b=>!Wh(e,h.name,b))||(Me(h.path,"started_at",En()),f1(h.path,o),pSe({slug:e,stage:i,unit:h.name,hat:o}),p.push(qI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&ci(e),p}function Tbt(e,t,n){let r=b1(e,t);if(r.length===0)return 0;let i=ne(ar(e,t),"units");if(!ue(i))return 0;let s=0;for(let o of an(i).filter(a=>a.endsWith(".md"))){if(o.replace(/\.md$/,"")===n)continue;let c;try{c=re(Pe(ne(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||sv(c,r)!==null&&s++}return s}function vbt(e){if(!ue(e))return 1;let t=an(e).filter(r=>r.endsWith(".md")),n=0;for(let r of t){let i=r.match(/^(\d+)-/);if(i){let s=Number.parseInt(i[1],10);s>n&&(n=s)}}return n+1}function E1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Dl(r,{recursive:!0});let i=vbt(r),s=E1(i),o=bZ(n.title),a=`${s}-${o}.md`,c=ne(r,a),u=n.origin||"agent",l=n.authorType??lSe(u),d=n.author||_9n(u),f=new Set(["blocker","high","medium","low"]),p=typeof n.severity=="string"&&f.has(n.severity)?n.severity:null,h=0;if(t){let R=B0(e,t),A=ue(R)?Hb(R):{};h=mbt(A,e,t)}let m=null;if(n.attachmentDataUrl){let R=n.attachmentDataUrl.match(/^data:image\/(png|jpeg|webp);base64,([A-Za-z0-9+/=]+)$/);if(R){let A=R[1];m=`${s}-${o}.${A==="jpeg"?"jpg":A}`;let k=ne(r,m);In(k,Buffer.from(R[2],"base64"))}}let g=uv(n.body),y=m?`${g.trim()} +`,g))}catch{}}function hSe(e){let{slug:t,stage:n,unit:r,hat:i}=e;try{let s=Pa(t,n,r);if(!ue(s))return;let a=(0,Ct.default)(Pe(s,"utf8")).data,c=Array.isArray(a.iterations)?a.iterations:[],u=c[c.length-1];if(!u||u.result!==null||u.hat!==i||typeof u.dispatched_at=="string"&&u.dispatched_at.length>0)return;u.dispatched_at=En(),Me(s,"iterations",c)}catch{}}function rbt(e,t){try{return q0(e,()=>{let n=pe(e),r=ne(n,"intent.md");if(!ue(r))return null;let i=(0,Ct.default)(Pe(r,"utf8")).data,s=typeof i.studio=="string"?i.studio:"";if(!s)return null;if(t){let d=gZ(e,t);if(!d)return null;let f=re(Pe(d.path,"utf8")),p=_1(e,d.stage),h=sv(f.data,p);if(!h)return null;let m=qI({slug:e,studio:s,unit:t,stage:d.stage,hat:h.hat,terminal:h.terminal});return hSe({slug:e,stage:d.stage,unit:t,hat:h.hat}),m}let o=$f({slug:e,intentDir:n,studio:s});if(!o?.action||o.action.kind!=="start_unit_hat")return null;let a=o.action.stage,c=o.action.hat,u=o.action.units,l=o.action.terminal;return!a||!c||!Array.isArray(u)||u.length===0?null:qI({slug:e,studio:s,unit:u[0],stage:a,hat:c,terminal:l})})}catch{return null}}function Yye(e,t){let n=pe(e),r=ue(ne(n,"intent.md"))?(0,Ct.default)(Pe(ne(n,"intent.md"),"utf8")).data:{},i=ai(e,t,n)??"",s=wn(r,t),o=s.indexOf(i),a=o>=0?s.slice(0,o+1):[],c=[];for(let d of a)c.push({stage:d,dir:ne(n,"stages",d,"feedback")});c.push({stage:"",dir:ne(n,"feedback")});let u=[];for(let{stage:d,dir:f}of c){if(!ue(f))continue;let p=an(f).filter(h=>h.endsWith(".md")).sort();for(let h of p){let m;try{m=re(Pe(ne(f,h),"utf8")).data}catch{m=void 0}if(!m||typeof m.status=="string"&&(m.status==="closed"||m.status==="rejected")||m.closed_at||m.rejected_at||(Array.isArray(m.iterations)?m.iterations:[]).length>0)continue;let y=d?bg(t,d):jf(t);if(y.length===0)continue;let b=h.match(/^(\d+)-/)?.[1]??"";b&&u.push({stage:d,feedbackId:`FB-${b.padStart(3,"0")}`,firstHat:y[0],terminal:y.length===1,severity:typeof m.severity=="string"?m.severity:null})}}if(u.length===0)return null;let l=[...u].sort((d,f)=>Xc(d.severity)-Xc(f.severity))[0];return Ebt({slug:e,stage:l.stage,feedbackId:l.feedbackId,hat:l.firstHat}),HI({slug:e,studio:t,feedbackId:l.feedbackId,stage:l.stage,hat:l.firstHat,terminal:l.terminal})}function _bt(e,t,n){if(n<=0)return[];let r=pe(e),i=ai(e,t,r)??"";if(!i)return[];let s=_1(e,i);if(s.length===0)return[];let o=s[0],a=s[s.length-1],c=s.length===1,u=ne(ar(e,i),"units");if(!ue(u))return[];let l=an(u).filter(h=>h.endsWith(".md")).sort(),d=[];for(let h of l){let m=ne(u,h),g;try{g=re(Pe(m,"utf8")).data}catch{g=void 0}g&&d.push({name:h.replace(/\.md$/,""),path:m,fm:g})}let f=new Set(d.filter(h=>{let m=Array.isArray(h.fm.iterations)?h.fm.iterations:[],g=m[m.length-1];return g&&g.result==="advance"&&g.hat===a}).map(h=>h.name)),p=[];for(let h of d){if(p.length>=n)break;h.fm.started_at!=null||(Array.isArray(h.fm.iterations)?h.fm.iterations:[]).length>0||!(Array.isArray(h.fm.depends_on)?h.fm.depends_on:[]).every(b=>f.has(b))||!("inputs"in h.fm)||(Array.isArray(h.fm.inputs)?h.fm.inputs:[]).some(b=>!Wh(e,h.name,b))||(Me(h.path,"started_at",En()),h1(h.path,o),hSe({slug:e,stage:i,unit:h.name,hat:o}),p.push(qI({slug:e,studio:t,unit:h.name,stage:i,hat:o,terminal:c})))}return p.length>0&&ci(e),p}function Tbt(e,t,n){let r=_1(e,t);if(r.length===0)return 0;let i=ne(ar(e,t),"units");if(!ue(i))return 0;let s=0;for(let o of an(i).filter(a=>a.endsWith(".md"))){if(o.replace(/\.md$/,"")===n)continue;let c;try{c=re(Pe(ne(i,o),"utf8")).data}catch{continue}!c||c.started_at==null||sv(c,r)!==null&&s++}return s}function vbt(e){if(!ue(e))return 1;let t=an(e).filter(r=>r.endsWith(".md")),n=0;for(let r of t){let i=r.match(/^(\d+)-/);if(i){let s=Number.parseInt(i[1],10);s>n&&(n=s)}}return n+1}function T1(e){return e.toString().padStart(3,"0")}function Qo(e,t,n){let r=lo(e,t);Dl(r,{recursive:!0});let i=vbt(r),s=T1(i),o=EZ(n.title),a=`${s}-${o}.md`,c=ne(r,a),u=n.origin||"agent",l=n.authorType??dSe(u),d=n.author||_9n(u),f=new Set(["blocker","high","medium","low"]),p=typeof n.severity=="string"&&f.has(n.severity)?n.severity:null,h=0;if(t){let R=z0(e,t),A=ue(R)?Hb(R):{};h=mbt(A,e,t)}let m=null;if(n.attachmentDataUrl){let R=n.attachmentDataUrl.match(/^data:image\/(png|jpeg|webp);base64,([A-Za-z0-9+/=]+)$/);if(R){let A=R[1];m=`${s}-${o}.${A==="jpeg"?"jpg":A}`;let k=ne(r,m);In(k,Buffer.from(R[2],"base64"))}}let g=uv(n.body),y=m?`${g.trim()} ![annotation](/api/feedback-attachment/${encodeURIComponent(e)}/${encodeURIComponent(t)}/${encodeURIComponent(m)}) `:g,b=new Set(["question","inline_fix","stage_revisit"]),S=typeof n.resolution=="string"&&b.has(n.resolution)?n.resolution:null,E={title:n.title,status:"pending",origin:u,...p?{severity:p}:{},author:d,author_type:l,created_at:En(),iteration:h,visit:h,source_ref:n.source_ref??null,closed_by:null,bolt:0,triaged_at:n.triaged_at!==void 0?n.triaged_at:l!=="human"?En():null,resolution:S,replies:[],targets:{unit:n.targetUnit===void 0||n.targetUnit===null?null:n.targetUnit,invalidates:T9n(n.targetInvalidates,u)},...m?{attachment:m}:{},...n.inlineAnchor?{inline_anchor:{selected_text:n.inlineAnchor.selectedText,paragraph:n.inlineAnchor.paragraph,location:n.inlineAnchor.location,...n.inlineAnchor.commentId?{comment_id:n.inlineAnchor.commentId}:{},...n.inlineAnchor.filePath?{file_path:n.inlineAnchor.filePath}:{},...n.inlineAnchor.contentSha?{content_sha:n.inlineAnchor.contentSha}:{}}}:{}},_=Ct.default.stringify(` ${y} -`,E);In(c,_);let T=t?`.haiku/intents/${e}/stages/${t}/feedback/${a}`:`.haiku/intents/${e}/feedback/${a}`;return{feedback_id:`FB-${s}`,file:T,num:i}}function Us(e,t){let n=lo(e,t);if(!ue(n))return[];let r=an(n).filter(s=>s.endsWith(".md")).sort(),i=[];for(let s of r){let o=s.match(/^(\d+)-(.+)\.md$/);if(!o)continue;let a=Number.parseInt(o[1],10),c=o[2],u=Pe(ne(n,s),"utf8"),{data:l,body:d}=re(u),f=l.resolution,p=typeof f=="string"&&f.length>0&&f!=="null"?f:null,h=l.replies,m=Array.isArray(h)?h.filter(g=>typeof g=="object"&&g!==null).map(g=>({author:typeof g.author=="string"?g.author:"unknown",author_type:g.author_type==="agent"?"agent":"human",body:typeof g.body=="string"?g.body:"",created_at:typeof g.created_at=="string"?g.created_at:""})):[];i.push({id:`FB-${E1(a)}`,num:a,slug:c,file:t?`.haiku/intents/${e}/stages/${t}/feedback/${s}`:`.haiku/intents/${e}/feedback/${s}`,title:l.title||"",body:d,status:np(l),origin:l.origin||"agent",severity:l.severity||null,author:l.author||"agent",author_type:l.author_type||"agent",created_at:l.created_at||"",visit:l.visit||0,source_ref:l.source_ref||null,closed_by:l.closed_by||null,closed_at:l.closed_at||null,bolt:typeof l.bolt=="number"?l.bolt:0,triaged_at:(()=>{let g=typeof l.triaged_at=="string"&&l.triaged_at.length>0?l.triaged_at:null;if(g)return g;let y=l.author_type||"",b=l.created_at||"";return y==="agent"&&b?b:null})(),resolution:p,replies:m,inline_anchor:A9n(l),iterations:v9n(l),closure_reply:(()=>{let g=l.closure_reply;if(!g||typeof g!="object")return null;let y=g,b=typeof y.text=="string"?y.text:"",S=typeof y.at=="string"?y.at:"";return!b||!S?null:{text:b,at:S}})(),closure_reply_unread:typeof l.closure_reply_unread=="boolean"?l.closure_reply_unread:!1,targets:(()=>{let g=l.targets;if(!g||typeof g!="object")return null;let y=g,b=typeof y.unit=="string"?y.unit:null,S=Array.isArray(y.invalidates)?y.invalidates.filter(E=>typeof E=="string"):[];return{unit:b,invalidates:S}})()})}return i}function v9n(e){let t=e.iterations;if(!Array.isArray(t))return[];let n=[];for(let r of t){if(!(r&&typeof r=="object"))continue;let i=r,s=typeof i.bolt=="number"?i.bolt:0,o=typeof i.hat=="string"?i.hat:"";if(!o)continue;let a=i.result,c=a==="advanced"||a==="closed"||a==="reopened"||a==="rejected";n.push({bolt:s,hat:o,...typeof i.started_at=="string"?{started_at:i.started_at}:{},...typeof i.completed_at=="string"?{completed_at:i.completed_at}:{},...c?{result:a}:{},...typeof i.commit=="string"?{commit:i.commit}:{},...typeof i.message=="string"?{message:i.message}:{},...typeof i.reason=="string"?{reason:i.reason}:{}})}return n}function R9n(e,t,n,r){let i=lo(e,t);if(!ue(i))return;let s=n.replace(/^FB-/,""),o=an(i).find(p=>p.startsWith(`${s}-`)&&p.endsWith(".md"));if(!o)return;let a=ne(i,o),c=Pe(a,"utf8"),u=(0,Ct.default)(c),d=[...Array.isArray(u.data.iterations)?u.data.iterations:[],{bolt:r.bolt,hat:r.hat,...r.started_at?{started_at:r.started_at}:{},...r.completed_at?{completed_at:r.completed_at}:{},...r.result?{result:r.result}:{},...r.commit?{commit:r.commit}:{},...r.reason?{reason:r.reason}:{}}],f={...u.data,iterations:d};In(a,Ct.default.stringify(u.content,S1(f)))}function A9n(e){let t=e.inline_anchor;if(!(t&&typeof t=="object"))return null;let n=t,r=n.selected_text??n.selectedText,i=n.paragraph,s=n.location;return typeof r!="string"||typeof i!="number"||typeof s!="string"?null:{selected_text:r,paragraph:i,location:s,...typeof n.comment_id=="string"?{comment_id:n.comment_id}:{},...typeof n.file_path=="string"?{file_path:n.file_path}:{},...typeof n.content_sha=="string"?{content_sha:n.content_sha}:{}}}function w9n(e,t){return Us(e,t).filter(n=>n.status==="pending"||n.status==="fixing").length}function bc(e,t,n){let r=lo(e,t);if(!ue(r))return null;let i=n.match(/^(?:FB-)?(\d+)$/i);if(!i)return null;let s=Number.parseInt(i[1],10),o=an(r).filter(c=>{if(!c.endsWith(".md"))return!1;let u=c.match(/^(\d+)-/);return!!u&&Number.parseInt(u[1],10)===s}).sort();if(o.length===0)return null;let a=c=>{let u=re(Pe(ne(r,c),"utf8"));return{path:ne(r,c),filename:c,data:u.data,body:u.body}};if(o.length===1)return a(o[0]);for(let c of o){let u=a(c),l=np(u.data);if(l!=="closed"&&l!=="rejected")return u}return a(o[0])}function Rbt(e,t,n,r){let i=bc(e,t,n);if(!i)return null;let s=En(),o={...i.data,triaged_at:s};if(t===r){SZ(o);let S=Ct.default.stringify(` +`,E);In(c,_);let T=t?`.haiku/intents/${e}/stages/${t}/feedback/${a}`:`.haiku/intents/${e}/feedback/${a}`;return{feedback_id:`FB-${s}`,file:T,num:i}}function Us(e,t){let n=lo(e,t);if(!ue(n))return[];let r=an(n).filter(s=>s.endsWith(".md")).sort(),i=[];for(let s of r){let o=s.match(/^(\d+)-(.+)\.md$/);if(!o)continue;let a=Number.parseInt(o[1],10),c=o[2],u=Pe(ne(n,s),"utf8"),{data:l,body:d}=re(u),f=l.resolution,p=typeof f=="string"&&f.length>0&&f!=="null"?f:null,h=l.replies,m=Array.isArray(h)?h.filter(g=>typeof g=="object"&&g!==null).map(g=>({author:typeof g.author=="string"?g.author:"unknown",author_type:g.author_type==="agent"?"agent":"human",body:typeof g.body=="string"?g.body:"",created_at:typeof g.created_at=="string"?g.created_at:""})):[];i.push({id:`FB-${T1(a)}`,num:a,slug:c,file:t?`.haiku/intents/${e}/stages/${t}/feedback/${s}`:`.haiku/intents/${e}/feedback/${s}`,title:l.title||"",body:d,status:np(l),origin:l.origin||"agent",severity:l.severity||null,author:l.author||"agent",author_type:l.author_type||"agent",created_at:l.created_at||"",visit:l.visit||0,source_ref:l.source_ref||null,closed_by:l.closed_by||null,closed_at:l.closed_at||null,bolt:typeof l.bolt=="number"?l.bolt:0,triaged_at:(()=>{let g=typeof l.triaged_at=="string"&&l.triaged_at.length>0?l.triaged_at:null;if(g)return g;let y=l.author_type||"",b=l.created_at||"";return y==="agent"&&b?b:null})(),resolution:p,replies:m,inline_anchor:A9n(l),iterations:v9n(l),closure_reply:(()=>{let g=l.closure_reply;if(!g||typeof g!="object")return null;let y=g,b=typeof y.text=="string"?y.text:"",S=typeof y.at=="string"?y.at:"";return!b||!S?null:{text:b,at:S}})(),closure_reply_unread:typeof l.closure_reply_unread=="boolean"?l.closure_reply_unread:!1,targets:(()=>{let g=l.targets;if(!g||typeof g!="object")return null;let y=g,b=typeof y.unit=="string"?y.unit:null,S=Array.isArray(y.invalidates)?y.invalidates.filter(E=>typeof E=="string"):[];return{unit:b,invalidates:S}})()})}return i}function v9n(e){let t=e.iterations;if(!Array.isArray(t))return[];let n=[];for(let r of t){if(!(r&&typeof r=="object"))continue;let i=r,s=typeof i.bolt=="number"?i.bolt:0,o=typeof i.hat=="string"?i.hat:"";if(!o)continue;let a=i.result,c=a==="advanced"||a==="closed"||a==="reopened"||a==="rejected";n.push({bolt:s,hat:o,...typeof i.started_at=="string"?{started_at:i.started_at}:{},...typeof i.completed_at=="string"?{completed_at:i.completed_at}:{},...c?{result:a}:{},...typeof i.commit=="string"?{commit:i.commit}:{},...typeof i.message=="string"?{message:i.message}:{},...typeof i.reason=="string"?{reason:i.reason}:{}})}return n}function R9n(e,t,n,r){let i=lo(e,t);if(!ue(i))return;let s=n.replace(/^FB-/,""),o=an(i).find(p=>p.startsWith(`${s}-`)&&p.endsWith(".md"));if(!o)return;let a=ne(i,o),c=Pe(a,"utf8"),u=(0,Ct.default)(c),d=[...Array.isArray(u.data.iterations)?u.data.iterations:[],{bolt:r.bolt,hat:r.hat,...r.started_at?{started_at:r.started_at}:{},...r.completed_at?{completed_at:r.completed_at}:{},...r.result?{result:r.result}:{},...r.commit?{commit:r.commit}:{},...r.reason?{reason:r.reason}:{}}],f={...u.data,iterations:d};In(a,Ct.default.stringify(u.content,E1(f)))}function A9n(e){let t=e.inline_anchor;if(!(t&&typeof t=="object"))return null;let n=t,r=n.selected_text??n.selectedText,i=n.paragraph,s=n.location;return typeof r!="string"||typeof i!="number"||typeof s!="string"?null:{selected_text:r,paragraph:i,location:s,...typeof n.comment_id=="string"?{comment_id:n.comment_id}:{},...typeof n.file_path=="string"?{file_path:n.file_path}:{},...typeof n.content_sha=="string"?{content_sha:n.content_sha}:{}}}function w9n(e,t){return Us(e,t).filter(n=>n.status==="pending"||n.status==="fixing").length}function bc(e,t,n){let r=lo(e,t);if(!ue(r))return null;let i=n.match(/^(?:FB-)?(\d+)$/i);if(!i)return null;let s=Number.parseInt(i[1],10),o=an(r).filter(c=>{if(!c.endsWith(".md"))return!1;let u=c.match(/^(\d+)-/);return!!u&&Number.parseInt(u[1],10)===s}).sort();if(o.length===0)return null;let a=c=>{let u=re(Pe(ne(r,c),"utf8"));return{path:ne(r,c),filename:c,data:u.data,body:u.body}};if(o.length===1)return a(o[0]);for(let c of o){let u=a(c),l=np(u.data);if(l!=="closed"&&l!=="rejected")return u}return a(o[0])}function Rbt(e,t,n,r){let i=bc(e,t,n);if(!i)return null;let s=En(),o={...i.data,triaged_at:s};if(t===r){bZ(o);let S=Ct.default.stringify(` ${i.body.trim()} -`,o);In(i.path,S);let E=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,_=o.id;return{feedback_id:typeof _=="string"&&_.length>0?_:Abt(i.filename),file:E,moved:!1,triaged_at:s}}let a=lo(e,r);Dl(a,{recursive:!0});let c=vbt(a),u=E1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=ne(a,f),h=lo(e,t),m=i.filename.match(/^(\d+)-/),g=m?m[1]:null;if(g)for(let S of["png","jpg","jpeg","webp"]){let E=ne(h,`${g}-${d}.${S}`);if(ue(E)){let _=ne(a,`${u}-${d}.${S}`);if(ue(_))throw new Error(`moveFeedbackFile: refusing to overwrite existing attachment '${_}' \u2014 clean it up manually before retrying.`)}}let y=Ct.default.stringify(` +`,o);In(i.path,S);let E=t?`.haiku/intents/${e}/stages/${t}/feedback/${i.filename}`:`.haiku/intents/${e}/feedback/${i.filename}`,_=o.id;return{feedback_id:typeof _=="string"&&_.length>0?_:Abt(i.filename),file:E,moved:!1,triaged_at:s}}let a=lo(e,r);Dl(a,{recursive:!0});let c=vbt(a),u=T1(c),l=i.filename.match(/^\d+-(.+)\.md$/),d=l?l[1]:"moved-feedback",f=`${u}-${d}.md`,p=ne(a,f),h=lo(e,t),m=i.filename.match(/^(\d+)-/),g=m?m[1]:null;if(g)for(let S of["png","jpg","jpeg","webp"]){let E=ne(h,`${g}-${d}.${S}`);if(ue(E)){let _=ne(a,`${u}-${d}.${S}`);if(ue(_))throw new Error(`moveFeedbackFile: refusing to overwrite existing attachment '${_}' \u2014 clean it up manually before retrying.`)}}let y=Ct.default.stringify(` ${i.body.trim()} `,o);if(In(p,y),g)for(let S of["png","jpg","jpeg","webp"]){let E=ne(h,`${g}-${d}.${S}`);if(ue(E)){let _=ne(a,`${u}-${d}.${S}`);ibt(E,_);let T=i.body.replace(new RegExp(`/api/feedback-attachment/[^/]+/[^/]+/${g}-${d}\\.${S}`,"g"),`/api/feedback-attachment/${encodeURIComponent(e)}/${encodeURIComponent(r)}/${u}-${d}.${S}`);T!==i.body&&In(p,Ct.default.stringify(` ${T.trim()} -`,o))}}V0(i.path);let b=r?`.haiku/intents/${e}/stages/${r}/feedback/${f}`:`.haiku/intents/${e}/feedback/${f}`;return{feedback_id:`FB-${u}`,file:b,moved:!0,triaged_at:s}}function Abt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function zd(e){return`FB-${e.toString().padStart(3,"0")}`}function hSe(e,t,n,r,i="agent"){let s=bc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r.status===void 0&&r.closed_by===void 0&&r.resolution===void 0)return{ok:!1,error:"Error: at least one of 'status' / 'closed_by' / 'resolution' must be provided"};if(r.resolution!==void 0&&r.resolution!==null&&!new Set(["question","inline_fix","stage_revisit"]).has(r.resolution))return{ok:!1,error:"Error: resolution must be one of: question, inline_fix, stage_revisit (or null to clear). For cross-stage routing, call `haiku_feedback_move` to relocate the FB instead."};if(r.status!==void 0&&!qb.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${qb.join(", ")}`};if(i==="agent"&&typeof r.closed_by=="string"&&r.closed_by.length>0&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot close human-authored feedback. Only the original author may set `closed_by` via the review UI."};if(i==="agent"&&r.status==="closed"&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot set status='closed' on human-authored feedback. Only the original author may close the item, via the review UI."};if(typeof r.closed_by=="string"&&/^unit-\d+[-_]/i.test(r.closed_by)&&t){let c=r.closed_by.replace(/\.md$/,""),u=ne(ar(e,t),"units",`${c}.md`);if(!ue(u))return{ok:!1,error:`Error: closed_by='${r.closed_by}' references a unit that does not exist at stages/${t}/units/${c}.md. Agents cannot mark findings closed via a ghost unit. Either create the unit spec first (additive elaboration), or close via a fix-loop marker (e.g. 'fix-loop:${n}:bolt-N').`}}let o=[],a={...s.data};return r.status!==void 0&&(a.status=r.status,o.push("status")),r.closed_by!==void 0&&(r.closed_by===null?delete a.closed_by:a.closed_by=r.closed_by,o.push("closed_by")),r.resolution!==void 0&&(a.resolution=r.resolution,o.push("resolution")),SZ(a),In(s.path,Ct.default.stringify(` +`,o))}}W0(i.path);let b=r?`.haiku/intents/${e}/stages/${r}/feedback/${f}`:`.haiku/intents/${e}/feedback/${f}`;return{feedback_id:`FB-${u}`,file:b,moved:!0,triaged_at:s}}function Abt(e){let t=e.match(/^(\d+)-/);return t?`FB-${t[1]}`:"FB-???"}function zd(e){return`FB-${e.toString().padStart(3,"0")}`}function mSe(e,t,n,r,i="agent"){let s=bc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r.status===void 0&&r.closed_by===void 0&&r.resolution===void 0)return{ok:!1,error:"Error: at least one of 'status' / 'closed_by' / 'resolution' must be provided"};if(r.resolution!==void 0&&r.resolution!==null&&!new Set(["question","inline_fix","stage_revisit"]).has(r.resolution))return{ok:!1,error:"Error: resolution must be one of: question, inline_fix, stage_revisit (or null to clear). For cross-stage routing, call `haiku_feedback_move` to relocate the FB instead."};if(r.status!==void 0&&!qb.includes(r.status))return{ok:!1,error:`Error: status must be one of: ${qb.join(", ")}`};if(i==="agent"&&typeof r.closed_by=="string"&&r.closed_by.length>0&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot close human-authored feedback. Only the original author may set `closed_by` via the review UI."};if(i==="agent"&&r.status==="closed"&&s.data.author_type==="human")return{ok:!1,error:"Error: agents cannot set status='closed' on human-authored feedback. Only the original author may close the item, via the review UI."};if(typeof r.closed_by=="string"&&/^unit-\d+[-_]/i.test(r.closed_by)&&t){let c=r.closed_by.replace(/\.md$/,""),u=ne(ar(e,t),"units",`${c}.md`);if(!ue(u))return{ok:!1,error:`Error: closed_by='${r.closed_by}' references a unit that does not exist at stages/${t}/units/${c}.md. Agents cannot mark findings closed via a ghost unit. Either create the unit spec first (additive elaboration), or close via a fix-loop marker (e.g. 'fix-loop:${n}:bolt-N').`}}let o=[],a={...s.data};return r.status!==void 0&&(a.status=r.status,o.push("status")),r.closed_by!==void 0&&(r.closed_by===null?delete a.closed_by:a.closed_by=r.closed_by,o.push("closed_by")),r.resolution!==void 0&&(a.resolution=r.resolution,o.push("resolution")),bZ(a),In(s.path,Ct.default.stringify(` ${s.body} -`,a)),{ok:!0,updated_fields:o}}function mSe(e,t,n,r,i={}){let s=bc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};let a=uv(r.body).trim();if(a.length===0)return{ok:!1,error:"Error: reply body cannot be empty"};let c={author:r.author||"unknown",author_type:r.author_type,body:a,created_at:En()},l=[...Array.isArray(s.data.replies)?s.data.replies:[],c],d={...s.data,replies:l};return i.close_as_answered&&(d.closed_at||(d.closed_at=new Date().toISOString()),d.resolution||(d.resolution="answered")),In(s.path,Ct.default.stringify(` +`,a)),{ok:!0,updated_fields:o}}function gSe(e,t,n,r,i={}){let s=bc(e,t,n);if(!s)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};let a=uv(r.body).trim();if(a.length===0)return{ok:!1,error:"Error: reply body cannot be empty"};let c={author:r.author||"unknown",author_type:r.author_type,body:a,created_at:En()},l=[...Array.isArray(s.data.replies)?s.data.replies:[],c],d={...s.data,replies:l};return i.close_as_answered&&(d.closed_at||(d.closed_at=new Date().toISOString()),d.resolution||(d.resolution="answered")),In(s.path,Ct.default.stringify(` ${s.body} `,d)),{ok:!0,reply_index:l.length-1,status:np(d)}}function k9n(e,t,n){let r=bc(e,t,n);if(!r)return null;let s=(typeof r.data.bolt=="number"?r.data.bolt:0)+1,o={...r.data,bolt:s,status:"fixing"};return In(r.path,Ct.default.stringify(` ${r.body} -`,o)),{bolt:s}}function gSe(e,t,n){let r=bc(e,t,n);if(!r)return null;if(!(r.data.closure_reply_unread===!0))return{ok:!0,already_dismissed:!0};let s={...r.data,closure_reply_unread:!1};return In(r.path,Ct.default.stringify(` +`,o)),{bolt:s}}function ySe(e,t,n){let r=bc(e,t,n);if(!r)return null;if(!(r.data.closure_reply_unread===!0))return{ok:!0,already_dismissed:!0};let s={...r.data,closure_reply_unread:!1};return In(r.path,Ct.default.stringify(` ${r.body} -`,s)),{ok:!0,already_dismissed:!1}}function EZ(e,t,n,r="agent"){let i=bc(e,t,n);if(!i)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r==="agent"&&i.data.author_type==="human")return{ok:!1,error:"Error: agents cannot delete human-authored feedback. Use the review UI."};let s=np(i.data);if(s==="pending"||s==="fixing")return{ok:!1,error:"Error: cannot delete pending feedback. Close or reject it first."};V0(i.path);let a=W0(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=ne(a,`${u}.${l}`);if(ue(d))try{V0(d)}catch{}}}return{ok:!0}}function K0(){let e=[],t=new Set;function n(i,s){if(!ue(i))return;let o;try{o=an(i,{withFileTypes:!0})}catch{return}for(let a of o){if(!a.isDirectory())continue;let c=a.name;if(t.has(c))continue;let u=ne(i,c,"SKILL.md");if(ue(u)){t.add(c);try{let l=Pe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(ne(process.cwd(),".claude","skills"),"project");try{let i=ne(L3n(),".claude","plugins");if(ue(i))for(let s of an(i,{withFileTypes:!0}))s.isDirectory()&&n(ne(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(ne(r,"skills"),"plugin"),e}function ND(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}function I9n(e,t,n){let r=e.toLowerCase();return/verif|review|check|assess/.test(r)?"verifier":/plan|design/.test(r)||t===0?"planner":t===n-1?"verifier":"builder"}function x9n(e){return e==="planner"?["1. Read the task and stage scope above.","2. Produce a concise implementation plan:"," - Files to inspect or modify (with reasoning)"," - Step-by-step approach (3\u20135 items)"," - Risks or edge cases to watch for","3. Return your plan as plain text. Do NOT implement \u2014 planning only."].join(` +`,s)),{ok:!0,already_dismissed:!1}}function _Z(e,t,n,r="agent"){let i=bc(e,t,n);if(!i)return{ok:!1,error:t?`Error: feedback '${n}' not found in stage '${t}'`:`Error: feedback '${n}' not found (intent-scope)`};if(r==="agent"&&i.data.author_type==="human")return{ok:!1,error:"Error: agents cannot delete human-authored feedback. Use the review UI."};let s=np(i.data);if(s==="pending"||s==="fixing")return{ok:!1,error:"Error: cannot delete pending feedback. Close or reject it first."};W0(i.path);let a=K0(i.path),c=i.filename.match(/^(\d+-.+)\.md$/);if(c){let u=c[1];for(let l of["png","jpg","jpeg","webp"]){let d=ne(a,`${u}.${l}`);if(ue(d))try{W0(d)}catch{}}}return{ok:!0}}function Y0(){let e=[],t=new Set;function n(i,s){if(!ue(i))return;let o;try{o=an(i,{withFileTypes:!0})}catch{return}for(let a of o){if(!a.isDirectory())continue;let c=a.name;if(t.has(c))continue;let u=ne(i,c,"SKILL.md");if(ue(u)){t.add(c);try{let l=Pe(u,"utf8"),{data:d}=re(l);e.push({slug:c,name:d.name||c,description:d.description||"",source:s})}catch{}}}}n(ne(process.cwd(),".claude","skills"),"project");try{let i=ne(L3n(),".claude","plugins");if(ue(i))for(let s of an(i,{withFileTypes:!0}))s.isDirectory()&&n(ne(i,s.name,"skills"),"global")}catch{}let r=nn();return r&&n(ne(r,"skills"),"plugin"),e}function CD(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}function I9n(e,t,n){let r=e.toLowerCase();return/verif|review|check|assess/.test(r)?"verifier":/plan|design/.test(r)||t===0?"planner":t===n-1?"verifier":"builder"}function x9n(e){return e==="planner"?["1. Read the task and stage scope above.","2. Produce a concise implementation plan:"," - Files to inspect or modify (with reasoning)"," - Step-by-step approach (3\u20135 items)"," - Risks or edge cases to watch for","3. Return your plan as plain text. Do NOT implement \u2014 planning only."].join(` `):e==="verifier"?["1. Read the task description and the prior hat outputs (especially the builder's summary).","2. Inspect the actual uncommitted changes with `git status --porcelain` and `git diff` to confirm they match the summary.","3. Verify the work meets the task's success criteria:"," - Does the change address exactly what was asked?"," - Is the code internally consistent and free of obvious regressions?"," - Are there edge cases the builder missed that the stage scope would flag?","4. Your final message MUST be structured exactly as one of these two formats:",""," On success (single line, then a Files block):"," ```"," PASS \u2014 "," Files:"," "," "," ..."," ```",""," On failure (single line, no files block):"," ```"," FAIL \u2014 "," ```",""," The Files block on PASS lists the exact paths the parent should stage. Include only paths you confirmed via `git diff` are part of the task's intended change. Exclude any pre-existing dirty paths that were called out in the prompt.","","5. Do NOT run quality gates \u2014 that was the builder's job. Focus on correctness and fit.","6. Do NOT commit, amend, or otherwise mutate the git tree.","7. Do NOT call any haiku_* tools."].join(` `):["1. Read the prior hat's output above and the hat mandate.",`2. Apply your hat's role to the task. If your mandate is "build/implement," write the code. If your mandate is "critique/refine prior output," critique it and emit a revised plan or revised work as appropriate.`,"3. If you wrote or modified files, run any project quality gates (tests, lint, typecheck) and fix failures.","4. Do NOT commit. Leave changes uncommitted in the working tree \u2014 the parent skill commits once at the end after the verifier passes.","5. Return a summary:"," - Files you created/modified (exact paths)"," - Quality gate results (commands run, pass/fail)"," - One-paragraph description of what changed and why"].join(` `)}function O9n(e){if(e.length===0)return null;if(e.includes("development"))return"development";let t=/research|design|discovery|inception|ideation|plan/i;for(let n=e.length-1;n>=0;n--)if(!t.test(e[n]))return e[n];return e[e.length-1]}function P9n(e){let t=e.task,n=TI(),r=Array.from(new Set(n.flatMap(g=>[g.slug,...g.aliases]))).sort(),i=si("software");if(e.studio){let g=si(e.studio);if(!g)return{error:"zap_studio_not_found",valid_studios:r,message:`Studio '${e.studio}' not found. Valid studios: ${r.join(", ")}. Ask the user to pick one and call haiku_zap again with that studio.`};i=g}if(!i)return{error:"zap_studio_not_found",valid_studios:r,message:`No studio specified and no 'software' studio is available. Valid studios: ${r.join(", ")}. Ask the user to pick one and call haiku_zap again with that studio.`};let s=i.slug,o=i.dir,a=i.stages,c;if(e.stage){if(!a.includes(e.stage))return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${e.stage}' not found in studio '${s}'. Valid stages: ${a.join(", ")}. Ask the user to pick one and call haiku_zap again with that stage.`};c=e.stage}else{let g=O9n(a);if(!g)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Studio '${s}' declares no stages. Cannot zap. Pick a different studio.`};c=g}let u=$i(o,c);if(!u)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${c}' is listed for studio '${s}' but its STAGE.md could not be read. Pick a different stage.`};let l=u.body.trim(),d=Array.isArray(u.data.hats)?u.data.hats:[];if(d.length===0)return{error:"zap_stage_not_found",studio:s,valid_stages:a,message:`Stage '${c}' in studio '${s}' declares no hats \u2014 nothing to run. Pick a different stage.`};let f=Du(o,c),p=d.length,h=d.map((g,y)=>I9n(g,y,p)),m=[];m.push("# Zap \u2014 stateless single-task hat loop"),m.push(""),m.push(`Resolved studio **${s}**, stage **${c}**. This is a zap run: no intent file, no unit decomposition, no workflow tick, no \`haiku_*\` tool calls inside the hats. Work directly on the repo. Follow this procedure verbatim \u2014 you are the sequential loop driver.`),m.push(""),m.push("## Hat sequence (run in this order)"),m.push("");for(let g=0;g ...` (NEVER `git add -A`/`git add .` \u2014 that sweeps in pre-existing dirty paths), commit with a brief message derived from the task + verifier summary, then report files committed + commands run + the verifier's PASS line."),m.push(""),m.push('**On FAIL:** surface the reason. If the retry counter is **< 2**, ask via `AskUserQuestion` (options `["Retry the hat loop with this failure as context", "Abandon \u2014 I\'ll fix it manually"]`). On retry: increment the counter, leave the working tree untouched (prior uncommitted changes carry forward), and re-run from step 2 prepending a `## Prior failure context: ` block to the task. If the counter is **2 or more**, do NOT offer retry \u2014 tell the user zap isn\'t converging (two retries used, 3 total attempts), suggest discarding via `git restore .` and bailing to `/haiku:haiku-start`, then stop. On abandon: leave changes in place and stop.'),m.push(""),m.push('**If a hat subagent errors out** (no output / throws / crashes): treat it as a `FAIL` with reason `" subagent errored: "` and route through the FAIL path above. Don\'t silently retry.'),m.push(""),m.push("## Commit safety"),m.push(""),m.push("Only YOU (the parent) commit, only after verifier PASS, only the exact files the verifier listed. No hat commits. Stateless \u2014 no `.haiku/` files are written; if the user needs formal traceability, suggest `/haiku:haiku-quick`."),m.push(""),m.push("---"),m.push(""),m.push("## Per-hat subagent prompts"),m.push(""),m.push("Spawn each block below as its own subagent, in order. Fill the `` slot with the prior hat's verbatim output (omit the section for the first hat). Prepend a `## Prior failure context` block to the task on a retry. Prepend a `## Pre-existing uncommitted changes (do NOT modify)` block listing the preflight dirty paths if the user opted to proceed dirty."),m.push("");for(let g=0;g WARNING: no mandate file resolved for hat \`${y}\` in \`${s}/${c}\`. The hat is listed on STAGE.md but no \`hats/${y}.md\` exists in any cascade tier. Run the hat with role instructions only, or fix the stage definition.`),m.push("")),m.push("```"),m.push(`You are executing a zap task as the **${y}** hat (${b} role) in stage **${c}** of studio **${s}**.`),m.push(""),m.push("This is a zap run \u2014 no workflow engine, no unit files, no haiku_* tool calls. Work directly on the repo."),m.push(""),m.push("## Stage scope"),m.push(""),m.push(l||"(STAGE.md body was empty)"),m.push(""),m.push(`## Your mandate: ${y}`),m.push(""),m.push(E||`(No mandate body for ${y}${_?` at ${_}`:""} \u2014 follow the role instructions below.)`),m.push(""),m.push("Note: this mandate was written for the workflow-engine context. Where it references units, feedback files, or haiku_* tools, translate that as: work directly on the repo, return your output as plain text to the parent. Do NOT call any haiku_* tools."),m.push(""),m.push("## Task"),m.push(""),m.push(t),m.push(""),g>0&&(m.push(`## Input from prior hat (${d[g-1]})`),m.push(""),m.push(""),m.push("")),m.push("## Instructions"),m.push(""),m.push(x9n(b)),m.push("```"),m.push("")}return{message:m.join(` -`),studio:s,stage:c}}function SSe(e,t){let n=o=>({content:[{type:"text",text:o}]}),r=(o,a)=>({content:[{type:"text",text:JSON.stringify(o,null,2)}],structuredContent:o,...a?.isError?{isError:!0}:{}}),i=t._session_context;i?.CLAUDE_SESSION_ID&&xft(i.CLAUDE_SESSION_ID);let s=ND(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,oge,"haiku_intent_get");if(o)return o;let a=ne(pe(t.slug),"intent.md");if(!ue(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(Pe(a,"utf8")),u=c[t.field];return r({found:u!=null,field:t.field,value:u??null})}case"haiku_intent_list":{let o=Be(t,age,"haiku_intent_list");if(o)return o;let a=Te(),c=ne(a,"intents");if(!ue(c))return n("[]");let u=t.include_archived===!0,l=Fg(c,{includeArchived:u}),d=yv(),f=l.map(({slug:p,data:h})=>{let m=h.studio||"",g=typeof h.sealed_at=="string"&&h.sealed_at.length>0,y=m?ai(p,m):null,b;g?b="completed":y===null?b=Oyt(p,{localOnly:!0})?"pending_seal":"completed":b="active";let S={slug:p,studio:h.studio,status:b,active_stage:y??""};return u&&(S.archived=h.archived===!0),d&&d.slug===p&&(S.current_branch=!0,d.stage&&(S.current_branch_stage=d.stage)),S});return r({intents:f})}case"haiku_stage_get":{let o=Be(t,Lge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=ne(pe(a),"intent.md"),d=ue(l)?re(Pe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=mv({slug:a,studio:f,stage:c,intentDir:pe(a),intentMode:p}),m={stage:h.stage,status:h.status,phase:h.phase??"",started_at:h.started_at,completed_at:h.completed_at,gate_outcome:h.gate_outcome,visits:h.visits},g=Object.hasOwn(m,u)?m[u]:null;return r({found:g!=null,field:u,value:g??null})}case"haiku_unit_get":{let o=Be(t,Kge,"haiku_unit_get");if(o)return o;let a=t.field;if(Jf.includes(a))return r({error:"unit_field_engine_only",field:a,message:`Field '${a}' is workflow-driven (engine bookkeeping) and is not agent-readable. Engine-only fields: [${Jf.join(", ")}]. Readable corrective/authorable fields: [${Mb.join(", ")}]. For the unit body/title use haiku_unit_read.`},{isError:!0});let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",field:a,message:`Unit '${t.unit}' not found at stage '${t.stage}' of intent '${t.intent}'.`},{isError:!0});let{data:u}=re(Pe(c,"utf8")),l=u[a];return r({ok:!0,field:a,found:l!=null,value:l??null})}case"haiku_unit_set":{let o=Be(t,Wge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=mb();if(!u&&Jf.includes(a))return r({error:"fsm_field_forbidden",field:a,message:`Field '${a}' is workflow-driven \u2014 set automatically by haiku_unit_advance_hat / haiku_unit_reject_hat / haiku_unit_increment_bolt. Agents must not set it directly. Forbidden fields: [${Jf.join(", ")}].`},{isError:!0});let l=ea(t.intent,t.stage);if(l)return l;let d=Pa(t.intent,t.stage,t.unit);if(ue(d)){let{data:p}=re(Pe(d,"utf8")),h=G0(p);if(!u&&!(a==="outputs"||a==="quality_gates")&&(h==="active"||h==="completed"))return r({error:"lifecycle_violation",current_status:h,field:a,message:`Cannot set field '${a}' on unit '${t.unit}' \u2014 status is '${h}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once they enter active or completed status. Pending units only. (\`outputs\` and \`quality_gates\` are exempt \u2014 see haiku_unit_set handler comments.)`},{isError:!0})}let f=$T.properties[a];if(f?.type){let p=Array.isArray(f.type)?f.type:[f.type],h=Array.isArray(c)?"array":c===null?"null":typeof c;if(!p.includes(h)){let g=p.length===1?p[0]:`one of [${p.join(", ")}]`;return r({error:"field_type_mismatch",field:a,expected_type:p.length===1?p[0]:p,received_type:h,message:`Field '${a}' expects ${g}, got ${h}. Pass a native ${g} value \u2014 JSON-stringified values are not accepted (they corrupt the YAML output). Example for array fields: \`value: ["intent.md", "knowledge/DISCOVERY.md"]\`.`},{isError:!0})}let m={[a]:c};if(!Ng(m)){let g=(Ng.errors||[]).filter(y=>y.instancePath===`/${a}`||y.instancePath.startsWith(`/${a}/`));if(g.length>0)return r({error:"field_value_invalid",field:a,errors:g,message:`Field '${a}' value failed schema validation: ${He.errorsText(g)}.`},{isError:!0})}}return Me(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,Yge,"haiku_unit_list");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=ne(ar(t.intent,t.stage),"units");if(!ue(c))return r({units:[]});let l=an(c).filter(d=>d.endsWith(".md")).map(d=>{let{data:f}=re(Pe(ne(c,d),"utf8"));return{name:d.replace(".md",""),status:f.status,bolt:f.bolt,hat:f.hat,model:f.model??null}});return r({units:l})}case"haiku_unit_start":{let o=Be(t,Jge,"haiku_unit_start");if(o)return o;let a=mZ(t.intent,t.unit),c=t.stage||a?.stage||d1(t.intent);if(!c)return r({error:"no_active_stage",message:"No active stage found for this intent. Call haiku_run_next first."},{isError:!0});let u=ea(t.intent,c);if(u)return u;let l=Pa(t.intent,c,t.unit);if(ue(l)){let{data:g}=re(Pe(l,"utf8")),y=typeof g.started_at=="string"&&g.started_at.length>0,b=Array.isArray(g.iterations)?g.iterations:[],S=b.length>0?b[b.length-1]:null,E=S!==null&&(S.result==="advance"||S.result==="closed");if(y&&!E){if(b.length===1&&S!==null&&(S.result===null||S.result===void 0)&&typeof S.dispatched_at=="string"&&S.dispatched_at.length>0){let A=lZ(t.intent,c);return n(A?`ok (already started by the engine) +`),studio:s,stage:c}}function bSe(e,t){let n=o=>({content:[{type:"text",text:o}]}),r=(o,a)=>({content:[{type:"text",text:JSON.stringify(o,null,2)}],structuredContent:o,...a?.isError?{isError:!0}:{}}),i=t._session_context;i?.CLAUDE_SESSION_ID&&Oft(i.CLAUDE_SESSION_ID);let s=CD(t);if(s)return s;switch(e){case"haiku_intent_get":{let o=Be(t,age,"haiku_intent_get");if(o)return o;let a=ne(pe(t.slug),"intent.md");if(!ue(a))return r({found:!1,field:t.field,value:null});let{data:c}=re(Pe(a,"utf8")),u=c[t.field];return r({found:u!=null,field:t.field,value:u??null})}case"haiku_intent_list":{let o=Be(t,cge,"haiku_intent_list");if(o)return o;let a=Te(),c=ne(a,"intents");if(!ue(c))return n("[]");let u=t.include_archived===!0,l=Fg(c,{includeArchived:u}),d=yv(),f=l.map(({slug:p,data:h})=>{let m=h.studio||"",g=typeof h.sealed_at=="string"&&h.sealed_at.length>0,y=m?ai(p,m):null,b;g||y===null?b=GL(p,{localOnly:!0})?"pending_seal":"completed":b="active";let S={slug:p,studio:h.studio,status:b,active_stage:y??""};return u&&(S.archived=h.archived===!0),d&&d.slug===p&&(S.current_branch=!0,d.stage&&(S.current_branch_stage=d.stage)),S});return r({intents:f})}case"haiku_stage_get":{let o=Be(t,Uge,"haiku_stage_get");if(o)return o;let a=t.intent,c=t.stage,u=t.field,l=ne(pe(a),"intent.md"),d=ue(l)?re(Pe(l,"utf8")).data:{},f=d.studio||"",p=typeof d.mode=="string"&&d.mode.length>0?d.mode:"continuous",h=mv({slug:a,studio:f,stage:c,intentDir:pe(a),intentMode:p}),m={stage:h.stage,status:h.status,phase:h.phase??"",started_at:h.started_at,completed_at:h.completed_at,gate_outcome:h.gate_outcome,visits:h.visits},g=Object.hasOwn(m,u)?m[u]:null;return r({found:g!=null,field:u,value:g??null})}case"haiku_unit_get":{let o=Be(t,Yge,"haiku_unit_get");if(o)return o;let a=t.field;if(Jf.includes(a))return r({error:"unit_field_engine_only",field:a,message:`Field '${a}' is workflow-driven (engine bookkeeping) and is not agent-readable. Engine-only fields: [${Jf.join(", ")}]. Readable corrective/authorable fields: [${Mb.join(", ")}]. For the unit body/title use haiku_unit_read.`},{isError:!0});let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",field:a,message:`Unit '${t.unit}' not found at stage '${t.stage}' of intent '${t.intent}'.`},{isError:!0});let{data:u}=re(Pe(c,"utf8")),l=u[a];return r({ok:!0,field:a,found:l!=null,value:l??null})}case"haiku_unit_set":{let o=Be(t,Kge,"haiku_unit_set");if(o)return o;let a=t.field,c=t.value,u=mb();if(!u&&Jf.includes(a))return r({error:"fsm_field_forbidden",field:a,message:`Field '${a}' is workflow-driven \u2014 set automatically by haiku_unit_advance_hat / haiku_unit_reject_hat / haiku_unit_increment_bolt. Agents must not set it directly. Forbidden fields: [${Jf.join(", ")}].`},{isError:!0});let l=ea(t.intent,t.stage);if(l)return l;let d=Pa(t.intent,t.stage,t.unit);if(ue(d)){let{data:p}=re(Pe(d,"utf8")),h=V0(p);if(!u&&!(a==="outputs"||a==="quality_gates")&&(h==="active"||h==="completed"))return r({error:"lifecycle_violation",current_status:h,field:a,message:`Cannot set field '${a}' on unit '${t.unit}' \u2014 status is '${h}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once they enter active or completed status. Pending units only. (\`outputs\` and \`quality_gates\` are exempt \u2014 see haiku_unit_set handler comments.)`},{isError:!0})}let f=$T.properties[a];if(f?.type){let p=Array.isArray(f.type)?f.type:[f.type],h=Array.isArray(c)?"array":c===null?"null":typeof c;if(!p.includes(h)){let g=p.length===1?p[0]:`one of [${p.join(", ")}]`;return r({error:"field_type_mismatch",field:a,expected_type:p.length===1?p[0]:p,received_type:h,message:`Field '${a}' expects ${g}, got ${h}. Pass a native ${g} value \u2014 JSON-stringified values are not accepted (they corrupt the YAML output). Example for array fields: \`value: ["intent.md", "knowledge/DISCOVERY.md"]\`.`},{isError:!0})}let m={[a]:c};if(!Ng(m)){let g=(Ng.errors||[]).filter(y=>y.instancePath===`/${a}`||y.instancePath.startsWith(`/${a}/`));if(g.length>0)return r({error:"field_value_invalid",field:a,errors:g,message:`Field '${a}' value failed schema validation: ${He.errorsText(g)}.`},{isError:!0})}}return Me(d,a,c),n("ok")}case"haiku_unit_list":{let o=Be(t,Zge,"haiku_unit_list");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=ne(ar(t.intent,t.stage),"units");if(!ue(c))return r({units:[]});let l=an(c).filter(d=>d.endsWith(".md")).map(d=>{let{data:f}=re(Pe(ne(c,d),"utf8"));return{name:d.replace(".md",""),status:f.status,bolt:f.bolt,hat:f.hat,model:f.model??null}});return r({units:l})}case"haiku_unit_start":{let o=Be(t,Xge,"haiku_unit_start");if(o)return o;let a=gZ(t.intent,t.unit),c=t.stage||a?.stage||p1(t.intent);if(!c)return r({error:"no_active_stage",message:"No active stage found for this intent. Call haiku_run_next first."},{isError:!0});let u=ea(t.intent,c);if(u)return u;let l=Pa(t.intent,c,t.unit);if(ue(l)){let{data:g}=re(Pe(l,"utf8")),y=typeof g.started_at=="string"&&g.started_at.length>0,b=Array.isArray(g.iterations)?g.iterations:[],S=b.length>0?b[b.length-1]:null,E=S!==null&&(S.result==="advance"||S.result==="closed");if(y&&!E){if(b.length===1&&S!==null&&(S.result===null||S.result===void 0)&&typeof S.dispatched_at=="string"&&S.dispatched_at.length>0){let A=dZ(t.intent,c);return n(A?`ok (already started by the engine) -${A}`:"ok (already started by the engine)")}let T=lZ(t.intent,c),R=S!==null&&typeof S.hat=="string"?S.hat:"";return r({error:"unit_already_active",unit:t.unit,hat:R,scope:T||null,message:`Unit '${t.unit}' is already active (hat: ${R||"unknown"}). Do not start it again \u2014 continue working on it or call haiku_unit_advance_hat when done.`},{isError:!0})}}{let g=re(Pe(l,"utf8")).data;if(!("inputs"in g))return r({error:"unit_inputs_not_declared",unit:t.unit,stage:c,message:`Cannot start unit '${t.unit}': no \`inputs:\` field declared in frontmatter. Every unit MUST declare what upstream artifacts it reads (intent doc, knowledge docs, prior-stage outputs). Set inputs explicitly via \`haiku_unit_set { intent: "${t.intent}", unit: "${t.unit}", field: "inputs", value: [...] }\` \u2014 an empty array is fine if the unit genuinely reads nothing, but the field itself must be present.`},{isError:!0});let y=Array.isArray(g.inputs)?g.inputs:[],b=[];for(let S of y)Wh(t.intent,t.unit,S)||b.push(S);if(b.length>0)return r({error:"unit_inputs_missing",missing:b,message:`Cannot start unit '${t.unit}': ${b.length} declared input(s) do not exist on disk: [${b.map(S=>`'${S}'`).join(", ")}]. Each entry in \`inputs:\` MUST reference a real file (typically an artifact a prior stage produced). Verify the upstream stage actually wrote the file, OR remove the input entry if the unit doesn't actually need it.`},{isError:!0})}let f=b1(t.intent,c)[0]||"";Me(l,"started_at",En()),f1(l,f),ci(t.intent),Ke("haiku.unit.started",{intent:t.intent,stage:c,unit:t.unit,hat:f});let p=t.state_file;p&&qi(p,{event:"unit_started",intent:t.intent,stage:c,unit:t.unit,hat:f});let h=wt(`haiku: start unit ${t.unit}`);Xr(t.intent,t.state_file);let m=lZ(t.intent,c);return n((m?`ok +${A}`:"ok (already started by the engine)")}let T=dZ(t.intent,c),R=S!==null&&typeof S.hat=="string"?S.hat:"";return r({error:"unit_already_active",unit:t.unit,hat:R,scope:T||null,message:`Unit '${t.unit}' is already active (hat: ${R||"unknown"}). Do not start it again \u2014 continue working on it or call haiku_unit_advance_hat when done.`},{isError:!0})}}{let g=re(Pe(l,"utf8")).data;if(!("inputs"in g))return r({error:"unit_inputs_not_declared",unit:t.unit,stage:c,message:`Cannot start unit '${t.unit}': no \`inputs:\` field declared in frontmatter. Every unit MUST declare what upstream artifacts it reads (intent doc, knowledge docs, prior-stage outputs). Set inputs explicitly via \`haiku_unit_set { intent: "${t.intent}", unit: "${t.unit}", field: "inputs", value: [...] }\` \u2014 an empty array is fine if the unit genuinely reads nothing, but the field itself must be present.`},{isError:!0});let y=Array.isArray(g.inputs)?g.inputs:[],b=[];for(let S of y)Wh(t.intent,t.unit,S)||b.push(S);if(b.length>0)return r({error:"unit_inputs_missing",missing:b,message:`Cannot start unit '${t.unit}': ${b.length} declared input(s) do not exist on disk: [${b.map(S=>`'${S}'`).join(", ")}]. Each entry in \`inputs:\` MUST reference a real file (typically an artifact a prior stage produced). Verify the upstream stage actually wrote the file, OR remove the input entry if the unit doesn't actually need it.`},{isError:!0})}let f=_1(t.intent,c)[0]||"";Me(l,"started_at",En()),h1(l,f),ci(t.intent),Ke("haiku.unit.started",{intent:t.intent,stage:c,unit:t.unit,hat:f});let p=t.state_file;p&&qi(p,{event:"unit_started",intent:t.intent,stage:c,unit:t.unit,hat:f});let h=wt(`haiku: start unit ${t.unit}`);Xr(t.intent,t.state_file);let m=dZ(t.intent,c);return n((m?`ok -${m}`:"ok")+cZ(h))}case"haiku_unit_advance_hat":{let o=Be(t,Xge,"haiku_unit_advance_hat");if(o)return o;let a=t.stage,c,u;if(a){if(c=a,u=Pa(t.intent,c,t.unit),!ue(u))return r({error:"unit_not_found",message:`Unit '${t.unit}' not found at stage '${a}' of intent '${t.intent}'.`},{isError:!0})}else{let C=mZ(t.intent,t.unit);if(!C)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});u=C.path,c=C.stage}let l=ea(t.intent,c);if(l)return l;let d=(C,L,G)=>L&&L.length>0?`${C} +${m}`:"ok")+uZ(h))}case"haiku_unit_advance_hat":{let o=Be(t,Qge,"haiku_unit_advance_hat");if(o)return o;let a=t.stage,c,u;if(a){if(c=a,u=Pa(t.intent,c,t.unit),!ue(u))return r({error:"unit_not_found",message:`Unit '${t.unit}' not found at stage '${a}' of intent '${t.intent}'.`},{isError:!0})}else{let C=gZ(t.intent,t.unit);if(!C)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});u=C.path,c=C.stage}let l=ea(t.intent,c);if(l)return l;let d=(C,L,G)=>L&&L.length>0?`${C} --- @@ -741,7 +741,7 @@ Wave still has work \u2014 spawn the block below as your next Task call: ${L}`:`${C} -Wave done \u2014 call \`haiku_run_next { intent: "${G}" }\` for the next instruction.`,f=Pe(u,"utf8"),{data:p}=re(f),h=Array.isArray(p.iterations)?p.iterations:[];if(h.length===0)return r({error:"unit_not_started",unit:t.unit,message:`Unit '${t.unit}' has no iterations[]. Call haiku_unit_start before advancing a hat.`},{isError:!0});let m=h[h.length-1];if(m.completed_at!==null&&m.result!==null)return r({error:"iteration_already_terminal",unit:t.unit,message:`Unit '${t.unit}' last iteration is already terminal (hat='${m.hat}', result='${m.result}'). The cursor will dispatch the next hat on the next haiku_run_next tick.`},{isError:!0});let g=m.hat;if(!("inputs"in p))return r({error:"unit_inputs_not_declared",unit:t.unit,stage:c,message:`Cannot advance hat: unit '${t.unit}' has no \`inputs:\` field declared in frontmatter. Every unit MUST declare what upstream artifacts it reads. Set inputs explicitly via \`haiku_unit_set { intent: "${t.intent}", unit: "${t.unit}", field: "inputs", value: [...] }\` \u2014 an empty array is fine if the unit genuinely reads nothing, but the field itself must be present.`},{isError:!0});let y=p.outputs||[];if(y.length>0){let C=pe(t.intent),L=y.filter(W=>!tp(C,W).startsWith(`${tp(C)}/`));if(L.length>0)return r({error:"unit_outputs_escaped",escaped:L,message:`Cannot advance hat: ${L.length} output path(s) escape the intent directory: ${L.join(", ")}. Fix the outputs in the unit frontmatter.`},{isError:!0});let G=y.filter(W=>!Wh(t.intent,t.unit,W));if(G.length>0){let W=t.state_file;return W&&qi(W,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:G}),r({error:"unit_outputs_missing",missing:G,message:`Cannot advance hat: ${G.length} declared output(s) not found in unit worktree or main intent dir: ${G.join(", ")}. Create them (in the unit worktree if you have one, otherwise in the main intent dir) or remove them from the outputs list.`},{isError:!0})}}let b=eSe(t.intent,c,t.unit),E=b.indexOf(g)+1;if(E>=b.length){{let z=`${pe(t.intent)}/intent.md`,{data:J}=re(Pe(z,"utf8")),oe=J.studio||"",le=oe?dZ(t.intent,oe,c,t.unit):null;if(le){let Ee=t.state_file;Ee&&qi(Ee,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:le.violations});let kt=[...le.scope.intentGlobs.map(Ue=>` - \`${Ue}\` (intent-relative)`),...le.scope.repoGlobs.map(Ue=>` - \`${Ue}\` (repo-relative)`),le.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` +Wave done \u2014 call \`haiku_run_next { intent: "${G}" }\` for the next instruction.`,f=Pe(u,"utf8"),{data:p}=re(f),h=Array.isArray(p.iterations)?p.iterations:[];if(h.length===0)return r({error:"unit_not_started",unit:t.unit,message:`Unit '${t.unit}' has no iterations[]. Call haiku_unit_start before advancing a hat.`},{isError:!0});let m=h[h.length-1];if(m.completed_at!==null&&m.result!==null)return r({error:"iteration_already_terminal",unit:t.unit,message:`Unit '${t.unit}' last iteration is already terminal (hat='${m.hat}', result='${m.result}'). The cursor will dispatch the next hat on the next haiku_run_next tick.`},{isError:!0});let g=m.hat;if(!("inputs"in p))return r({error:"unit_inputs_not_declared",unit:t.unit,stage:c,message:`Cannot advance hat: unit '${t.unit}' has no \`inputs:\` field declared in frontmatter. Every unit MUST declare what upstream artifacts it reads. Set inputs explicitly via \`haiku_unit_set { intent: "${t.intent}", unit: "${t.unit}", field: "inputs", value: [...] }\` \u2014 an empty array is fine if the unit genuinely reads nothing, but the field itself must be present.`},{isError:!0});let y=p.outputs||[];if(y.length>0){let C=pe(t.intent),L=y.filter(W=>!tp(C,W).startsWith(`${tp(C)}/`));if(L.length>0)return r({error:"unit_outputs_escaped",escaped:L,message:`Cannot advance hat: ${L.length} output path(s) escape the intent directory: ${L.join(", ")}. Fix the outputs in the unit frontmatter.`},{isError:!0});let G=y.filter(W=>!Wh(t.intent,t.unit,W));if(G.length>0){let W=t.state_file;return W&&qi(W,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:G}),r({error:"unit_outputs_missing",missing:G,message:`Cannot advance hat: ${G.length} declared output(s) not found in unit worktree or main intent dir: ${G.join(", ")}. Create them (in the unit worktree if you have one, otherwise in the main intent dir) or remove them from the outputs list.`},{isError:!0})}}let b=tSe(t.intent,c,t.unit),E=b.indexOf(g)+1;if(E>=b.length){{let z=`${pe(t.intent)}/intent.md`,{data:J}=re(Pe(z,"utf8")),oe=J.studio||"",le=oe?fZ(t.intent,oe,c,t.unit):null;if(le){let Ee=t.state_file;Ee&&qi(Ee,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,violations:le.violations});let kt=[...le.scope.intentGlobs.map(Ue=>` - \`${Ue}\` (intent-relative)`),...le.scope.repoGlobs.map(Ue=>` - \`${Ue}\` (repo-relative)`),le.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` `);return r({error:"unit_scope_violation",violations:le.violations,scope:le.scope,message:`Cannot complete unit: ${le.violations.length} file(s) were written outside the stage's declared scope. Out-of-bounds files: @@ -755,9 +755,9 @@ To resolve (in the unit worktree): (a) drop ALL unit commits with \`git reset -- NOTE: \`git checkout HEAD -- \` does NOT work on committed files (it's a no-op when the file matches HEAD). Use one of the above. -Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let C=Pe(u,"utf8"),{data:L}=re(C),G=L.outputs||[];if(G.length===0){let z=t.state_file;return z&&qi(z,{event:"outputs_empty",intent:t.intent,stage:c,unit:t.unit}),r({error:"unit_outputs_empty",message:"Cannot complete unit: no outputs were produced. Every unit must write at least one artifact that the workflow engine can detect (stage artifact under `stages//...` excluding `units/`/`state.json`, knowledge document under `knowledge/`, or a file matching a stage output template `location:`). The workflow engine auto-populates `outputs:` from the git diff at advance time; if you've written files but they're not showing up, verify they've been committed in the unit worktree, or add them explicitly to the unit's `outputs:` frontmatter field."},{isError:!0})}let W=[],$=[],q=[];for(let z of G){if(Wh(t.intent,t.unit,z)){q.push(z);continue}let J=yZ(t.intent,t.unit,z);J?($.push({from:z,to:J}),q.push(J)):(W.push(z),q.push(z))}if($.length>0)try{let z=Pe(u,"utf8"),{data:J,content:oe}=(0,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:q}));let le=t.state_file;le&&qi(le,{event:"outputs_repaired",intent:t.intent,stage:c,unit:t.unit,repaired:$.length})}catch{}if(W.length>0){let z=t.state_file;return z&&qi(z,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:W.length}),r({error:"unit_outputs_missing",missing:W,message:`Cannot complete unit: ${W.length} declared output(s) do not exist on disk: [${W.map(J=>`'${J}'`).join(", ")}]. Each entry in \`outputs:\` MUST be a real file path. If you wrote prose (e.g. "Weekly carryover roll: scheduler trigger, idempotent roll logic"), that's a completion-criteria description, not an output path \u2014 move it to the body's \`## Completion Criteria\` section and let auto-populate fill \`outputs:\` from the actual git diff. (No same-name file with a different extension was found, so this wasn't auto-repairable.)`},{isError:!0})}let Q=(f.match(/- \[ \]/g)||[]).length;if(Q>0){let z=t.state_file;return z&&qi(z,{event:"criteria_not_met",intent:t.intent,stage:c,unit:t.unit,unchecked:Q}),r({error:"criteria_not_met",unchecked:Q,message:`Cannot complete unit: ${Q} completion criteria still unchecked. Address them, then call haiku_unit_advance_hat again.`},{isError:!0})}pZ(u,"advance",t.message),Ke("haiku.unit.completed",{intent:t.intent,stage:c,unit:t.unit});{let z=t.state_file;z&&qi(z,{event:"unit_completed",intent:t.intent,stage:c,unit:t.unit})}let B=hZ(`haiku: complete unit ${t.unit}`),F=t.intent,V=`haiku/${F}/${c}`,U=jb(F,c,()=>Rpe(F,t.unit,c));if(!U.success){let z=ne(process.cwd(),".haiku","worktrees",F,t.unit),J=U.message.match(/^merge_conflict: real conflicts on agent-authored content require resolution: (.+)$/m),oe=J?J[1].split(",").map(le=>le.trim()).filter(Boolean):[];return oe.length>0?r({action:"resolve_merge_conflicts",status:"completed_pending_merge_resolution",intent:t.intent,unit:t.unit,stage:c,unit_branch:`haiku/${F}/${t.unit}`,stage_branch:V,conflict_paths:oe,worktree:z,message:`Unit ${t.unit} completed its hat sequence, but merging into ${V} produced real content conflicts on ${oe.length} file(s): ${oe.join(", ")}. The merge is left in-progress \u2014 resolve each conflicted file (the workflow engine cannot \u2014 they contain agent-authored content), \`git add\` the resolved files, \`git commit\` to complete the merge, then call \`haiku_run_next { intent: "${F}" }\`. If multiple units in this wave have pending merges, the engine will queue them and surface the next one after this is resolved.`},{isError:!0}):r({action:"merge_failed",status:"completed_merge_failed",intent:t.intent,unit:t.unit,stage:c,unit_branch:`haiku/${F}/${t.unit}`,stage_branch:V,worktree:z,error:U.message,message:`Unit ${t.unit} completed its hat sequence, but the workflow engine could not merge into ${V}. Git output: ${U.message}. Most common cause: the stage branch's primary worktree has uncommitted engine writes from concurrent dispatch. Inspect with \`git status\` on ${V}; commit any engine-owned dirty files (state.json, units/*.md, baseline.json), then call \`haiku_run_next { intent: "${F}" }\` so the engine retries the merge.`},{isError:!0})}Xr(t.intent,t.state_file);let M=U.message==="no worktree"?"":` (${U.message})`,H=O3(pe(t.intent),c),j=`completed (last hat) \u2014 unit branch merged into ${V}${M}. +Alternatively: (d) update the stage's output template \`location:\` / \`scope:\` if this pattern is legitimate, or (e) log a stage_revisit feedback at the upstream stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` if the scope itself is wrong.`},{isError:!0})}}let C=Pe(u,"utf8"),{data:L}=re(C),G=L.outputs||[];if(G.length===0){let z=t.state_file;return z&&qi(z,{event:"outputs_empty",intent:t.intent,stage:c,unit:t.unit}),r({error:"unit_outputs_empty",message:"Cannot complete unit: no outputs were produced. Every unit must write at least one artifact that the workflow engine can detect (stage artifact under `stages//...` excluding `units/`/`state.json`, knowledge document under `knowledge/`, or a file matching a stage output template `location:`). The workflow engine auto-populates `outputs:` from the git diff at advance time; if you've written files but they're not showing up, verify they've been committed in the unit worktree, or add them explicitly to the unit's `outputs:` frontmatter field."},{isError:!0})}let W=[],$=[],q=[];for(let z of G){if(Wh(t.intent,t.unit,z)){q.push(z);continue}let J=SZ(t.intent,t.unit,z);J?($.push({from:z,to:J}),q.push(J)):(W.push(z),q.push(z))}if($.length>0)try{let z=Pe(u,"utf8"),{data:J,content:oe}=(0,Ct.default)(z);In(u,Ct.default.stringify(oe,{...J,outputs:q}));let le=t.state_file;le&&qi(le,{event:"outputs_repaired",intent:t.intent,stage:c,unit:t.unit,repaired:$.length})}catch{}if(W.length>0){let z=t.state_file;return z&&qi(z,{event:"outputs_missing",intent:t.intent,stage:c,unit:t.unit,missing:W.length}),r({error:"unit_outputs_missing",missing:W,message:`Cannot complete unit: ${W.length} declared output(s) do not exist on disk: [${W.map(J=>`'${J}'`).join(", ")}]. Each entry in \`outputs:\` MUST be a real file path. If you wrote prose (e.g. "Weekly carryover roll: scheduler trigger, idempotent roll logic"), that's a completion-criteria description, not an output path \u2014 move it to the body's \`## Completion Criteria\` section and let auto-populate fill \`outputs:\` from the actual git diff. (No same-name file with a different extension was found, so this wasn't auto-repairable.)`},{isError:!0})}let Q=(f.match(/- \[ \]/g)||[]).length;if(Q>0){let z=t.state_file;return z&&qi(z,{event:"criteria_not_met",intent:t.intent,stage:c,unit:t.unit,unchecked:Q}),r({error:"criteria_not_met",unchecked:Q,message:`Cannot complete unit: ${Q} completion criteria still unchecked. Address them, then call haiku_unit_advance_hat again.`},{isError:!0})}hZ(u,"advance",t.message),Ke("haiku.unit.completed",{intent:t.intent,stage:c,unit:t.unit});{let z=t.state_file;z&&qi(z,{event:"unit_completed",intent:t.intent,stage:c,unit:t.unit})}let B=mZ(`haiku: complete unit ${t.unit}`),F=t.intent,V=`haiku/${F}/${c}`,U=jb(F,c,()=>Ape(F,t.unit,c));if(!U.success){let z=ne(process.cwd(),".haiku","worktrees",F,t.unit),J=U.message.match(/^merge_conflict: real conflicts on agent-authored content require resolution: (.+)$/m),oe=J?J[1].split(",").map(le=>le.trim()).filter(Boolean):[];return oe.length>0?r({action:"resolve_merge_conflicts",status:"completed_pending_merge_resolution",intent:t.intent,unit:t.unit,stage:c,unit_branch:`haiku/${F}/${t.unit}`,stage_branch:V,conflict_paths:oe,worktree:z,message:`Unit ${t.unit} completed its hat sequence, but merging into ${V} produced real content conflicts on ${oe.length} file(s): ${oe.join(", ")}. The merge is left in-progress \u2014 resolve each conflicted file (the workflow engine cannot \u2014 they contain agent-authored content), \`git add\` the resolved files, \`git commit\` to complete the merge, then call \`haiku_run_next { intent: "${F}" }\`. If multiple units in this wave have pending merges, the engine will queue them and surface the next one after this is resolved.`},{isError:!0}):r({action:"merge_failed",status:"completed_merge_failed",intent:t.intent,unit:t.unit,stage:c,unit_branch:`haiku/${F}/${t.unit}`,stage_branch:V,worktree:z,error:U.message,message:`Unit ${t.unit} completed its hat sequence, but the workflow engine could not merge into ${V}. Git output: ${U.message}. Most common cause: the stage branch's primary worktree has uncommitted engine writes from concurrent dispatch. Inspect with \`git status\` on ${V}; commit any engine-owned dirty files (state.json, units/*.md, baseline.json), then call \`haiku_run_next { intent: "${F}" }\` so the engine retries the merge.`},{isError:!0})}Xr(t.intent,t.state_file);let M=U.message==="no worktree"?"":` (${U.message})`,H=N3(pe(t.intent),c),j=`completed (last hat) \u2014 unit branch merged into ${V}${M}. ${t.unit}: ${g} done \u2014 unit complete`+(H?` -${H}`:"")+cZ(B),Y=(()=>{let z=ne(pe(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(Pe(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=Tbt(t.intent,c,t.unit),se=Math.max(0,cv-ee),Le=Y&&se>0?H0(t.intent,()=>_bt(t.intent,Y,se)):[];Le.length>0&&wt(`haiku: refill ${Le.length} unit slot(s) after ${t.unit}`);let Ae;if(Le.length>0){let z=Le.length===1?"block":"blocks";Ae=`${j} +${H}`:"")+uZ(B),Y=(()=>{let z=ne(pe(t.intent),"intent.md");if(!ue(z))return"";let J=(0,Ct.default)(Pe(z,"utf8")).data;return typeof J.studio=="string"?J.studio:""})(),ee=Tbt(t.intent,c,t.unit),se=Math.max(0,cv-ee),Le=Y&&se>0?q0(t.intent,()=>_bt(t.intent,Y,se)):[];Le.length>0&&wt(`haiku: refill ${Le.length} unit slot(s) after ${t.unit}`);let Ae;if(Le.length>0){let z=Le.length===1?"block":"blocks";Ae=`${j} --- @@ -769,7 +769,7 @@ Wave still has work \u2014 spawn the ${Le.length} ${z} below as your next Task c No unstarted units are ready to dispatch right now; sibling subagents are still working and will refill the pool as they finish. Terminate this turn \u2014 do NOT call haiku_run_next.`:Ae=`${j} -Wave done \u2014 call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return n(Ae)}{let C=`${pe(t.intent)}/intent.md`,{data:L}=re(Pe(C,"utf8")),G=L.studio||"",W=G?dZ(t.intent,G,c,t.unit):null;if(W){let $=t.state_file;$&&qi($,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,hat:g,violations:W.violations});let q=[...W.scope.intentGlobs.map(Q=>` - \`${Q}\` (intent-relative)`),...W.scope.repoGlobs.map(Q=>` - \`${Q}\` (repo-relative)`),W.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` +Wave done \u2014 call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return n(Ae)}{let C=`${pe(t.intent)}/intent.md`,{data:L}=re(Pe(C,"utf8")),G=L.studio||"",W=G?fZ(t.intent,G,c,t.unit):null;if(W){let $=t.state_file;$&&qi($,{event:"unit_scope_violation",intent:t.intent,stage:c,unit:t.unit,hat:g,violations:W.violations});let q=[...W.scope.intentGlobs.map(Q=>` - \`${Q}\` (intent-relative)`),...W.scope.repoGlobs.map(Q=>` - \`${Q}\` (repo-relative)`),W.scope.repoWildcard?" - any repo-level path (stage declares scope: repo with wildcard location)":""].filter(Boolean).join(` `);return r({error:"unit_scope_violation",hat:g,violations:W.violations,scope:W.scope,message:`Cannot advance hat '${g}': ${W.violations.length} file(s) were written outside the stage's declared scope. Out-of-bounds files: @@ -779,11 +779,11 @@ ${W.violations.map(Q=>` - ${Q}`).join(` Allowed paths (stage output templates + workflow engine metadata): ${q} -Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a no-op on committed files. Or update the stage's output template if this pattern is legitimate. Do NOT advance with scope violations \u2014 downstream hats will run blind.`},{isError:!0})}}let T=b[E];pZ(u,"advance",t.message),f1(u,T);{let C=t.state_file;C&&qi(C,{event:"hat_advanced",intent:t.intent,stage:c,unit:t.unit,hat:T})}Ke("haiku.hat.transition",{intent:t.intent,stage:c,unit:t.unit,hat:T});let R=hZ(`haiku: advance hat to ${T} on ${t.unit}`);upe(t.intent,t.unit),Xr(t.intent,t.state_file);let A=lZ(t.intent,c),x=`${t.unit}: ${g} \u2192 ${T} (hat ${E+1}/${b.length})`,k=O3(pe(t.intent),c),P=`advanced to ${T} +Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${c})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a no-op on committed files. Or update the stage's output template if this pattern is legitimate. Do NOT advance with scope violations \u2014 downstream hats will run blind.`},{isError:!0})}}let T=b[E];hZ(u,"advance",t.message),h1(u,T);{let C=t.state_file;C&&qi(C,{event:"hat_advanced",intent:t.intent,stage:c,unit:t.unit,hat:T})}Ke("haiku.hat.transition",{intent:t.intent,stage:c,unit:t.unit,hat:T});let R=mZ(`haiku: advance hat to ${T} on ${t.unit}`);lpe(t.intent,t.unit),Xr(t.intent,t.state_file);let A=dZ(t.intent,c),x=`${t.unit}: ${g} \u2192 ${T} (hat ${E+1}/${b.length})`,k=N3(pe(t.intent),c),P=`advanced to ${T} ${x}`+(k?` ${k}`:"")+(A?` -${A}`:"")+cZ(R),N=rbt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,Qge,"haiku_unit_reject_hat");if(o)return o;let a=t.stage,c,u;if(a){if(u=a,c=Pa(t.intent,u,t.unit),!ue(c))return r({error:"unit_not_found",message:`Unit '${t.unit}' not found at stage '${a}' of intent '${t.intent}'.`},{isError:!0})}else{let B=mZ(t.intent,t.unit);if(!B)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});c=B.path,u=B.stage}let l=ea(t.intent,u);if(l)return l;let{data:d}=re(Pe(c,"utf8")),f=Array.isArray(d.iterations)?d.iterations:[];if(f.length===0)return r({error:"unit_not_started",unit:t.unit,message:`Unit '${t.unit}' has no iterations[]. Cannot reject a hat that hasn't started.`},{isError:!0});let p=f[f.length-1];if(p.completed_at!==null&&p.result!==null)return r({error:"iteration_already_terminal",unit:t.unit,message:`Unit '${t.unit}' last iteration is terminal \u2014 nothing to reject. Call run_next to dispatch the next hat.`},{isError:!0});let h=p.hat,m=lbt(f),g=t.message||void 0,y=Array.isArray(d.outputs)?d.outputs.filter(B=>typeof B=="string"):[],b=[],S=[];for(let B of y)Wh(t.intent,t.unit,B)?b.push(B):S.push(B);let E=b.length>0,_=g?/\b(no\s+(?:files?|outputs?|artifacts?)\b|not\s+produced\b|nothing\s+(?:was\s+)?(?:written|produced|created)\b|(?:files?|outputs?|artifacts?)\s+(?:are\s+|were\s+)?(?:missing|absent)\b|missing\s+from\s+disk\b|empty\s+(?:files?|outputs?|artifacts?)\b)/.test(g.toLowerCase()):!1;if(y.length>0&&S.length===0&&_)return r({error:"reject_contradicts_filesystem",unit:t.unit,reason:g,declared_outputs:y,files_present:b,message:"Reject refused: every declared output for this unit exists on disk, but the reject reason claims they are missing. The reviewer's filesystem view is stale (likely running in an isolated git worktree that wasn't seeded with the unit's stage branch). Re-dispatch the reviewer from a worktree that sees the stage branch state, or \u2014 if the reviewer's real concern is content quality, not file presence \u2014 re-issue the reject with a reason that describes the substantive problem. No iteration was recorded; the bolt count is unchanged."},{isError:!0});let T;!E&&y.length>0?T="[NO FILES PRODUCED \u2014 REJECTED FOR MISSING ARTIFACTS]":E?T="[FILES EXIST \u2014 REJECTED FOR CONTENT QUALITY]":T="";let R=iSe(g),A=dbt(f,h,R);if(R.length>0&&A+1>=fZ&&m+1<=gv){let B=null;try{let V=`Reject-loop escalation: ${(g||"").trim().slice(0,80)||"unit stuck on same reason"}`,U=`Unit \`${t.unit}\` (stage \`${u}\`) has been rejected ${A+1} consecutive times by hat \`${h}\` for substantially the same reason. The doer cannot fix what requires a spec change, an open question, or user input. +${A}`:"")+uZ(R),N=rbt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit_reject_hat":{let o=Be(t,$ge,"haiku_unit_reject_hat");if(o)return o;let a=t.stage,c,u;if(a){if(u=a,c=Pa(t.intent,u,t.unit),!ue(c))return r({error:"unit_not_found",message:`Unit '${t.unit}' not found at stage '${a}' of intent '${t.intent}'.`},{isError:!0})}else{let B=gZ(t.intent,t.unit);if(!B)return r({error:"unit_not_found",message:`Unit '${t.unit}' not found in any stage of intent '${t.intent}'.`},{isError:!0});c=B.path,u=B.stage}let l=ea(t.intent,u);if(l)return l;let{data:d}=re(Pe(c,"utf8")),f=Array.isArray(d.iterations)?d.iterations:[];if(f.length===0)return r({error:"unit_not_started",unit:t.unit,message:`Unit '${t.unit}' has no iterations[]. Cannot reject a hat that hasn't started.`},{isError:!0});let p=f[f.length-1];if(p.completed_at!==null&&p.result!==null)return r({error:"iteration_already_terminal",unit:t.unit,message:`Unit '${t.unit}' last iteration is terminal \u2014 nothing to reject. Call run_next to dispatch the next hat.`},{isError:!0});let h=p.hat,m=lbt(f),g=t.message||void 0,y=Array.isArray(d.outputs)?d.outputs.filter(B=>typeof B=="string"):[],b=[],S=[];for(let B of y)Wh(t.intent,t.unit,B)?b.push(B):S.push(B);let E=b.length>0,_=g?/\b(no\s+(?:files?|outputs?|artifacts?)\b|not\s+produced\b|nothing\s+(?:was\s+)?(?:written|produced|created)\b|(?:files?|outputs?|artifacts?)\s+(?:are\s+|were\s+)?(?:missing|absent)\b|missing\s+from\s+disk\b|empty\s+(?:files?|outputs?|artifacts?)\b)/.test(g.toLowerCase()):!1;if(y.length>0&&S.length===0&&_)return r({error:"reject_contradicts_filesystem",unit:t.unit,reason:g,declared_outputs:y,files_present:b,message:"Reject refused: every declared output for this unit exists on disk, but the reject reason claims they are missing. The reviewer's filesystem view is stale (likely running in an isolated git worktree that wasn't seeded with the unit's stage branch). Re-dispatch the reviewer from a worktree that sees the stage branch state, or \u2014 if the reviewer's real concern is content quality, not file presence \u2014 re-issue the reject with a reason that describes the substantive problem. No iteration was recorded; the bolt count is unchanged."},{isError:!0});let T;!E&&y.length>0?T="[NO FILES PRODUCED \u2014 REJECTED FOR MISSING ARTIFACTS]":E?T="[FILES EXIST \u2014 REJECTED FOR CONTENT QUALITY]":T="";let R=sSe(g),A=dbt(f,h,R);if(R.length>0&&A+1>=pZ&&m+1<=gv){let B=null;try{let V=`Reject-loop escalation: ${(g||"").trim().slice(0,80)||"unit stuck on same reason"}`,U=`Unit \`${t.unit}\` (stage \`${u}\`) has been rejected ${A+1} consecutive times by hat \`${h}\` for substantially the same reason. The doer cannot fix what requires a spec change, an open question, or user input. **Last reject reason**: @@ -791,15 +791,15 @@ ${A}`:"")+cZ(R),N=rbt(t.intent,t.unit);return n(d(P,N,t.intent))}case"haiku_unit **Outputs status**: ${E?`files exist on disk (${b.length}/${y.length} declared)`:y.length>0?"no declared output files exist on disk":"unit declares no outputs"}. -**Next steps**: revisit the spec/unit, answer any open question the reviewer is pointing at, or split the unit. Reject-loop escalation fires before the ${gv}-bolt cap so the user can intervene without losing the remaining bolts.`,M=Qo(t.intent,u,{title:V,body:U,origin:"agent",severity:"blocker",author:"engine",authorType:"system",source_ref:`reject-loop:${t.unit}:${h}`});B=M.feedback_id,wt(`feedback: reject-loop escalation ${M.feedback_id} on ${t.unit} (${h})`)}catch(F){console.error(`[haiku] reject-loop escalation FB write failed: ${F.message}`)}return r({error:"reject_loop_escalation",unit:t.unit,stage:u,hat:h,bolt:m,consecutive_same_reason_rejects:A+1,min_repeats:fZ,last_reason:g??null,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,escalation_feedback_id:B,message:`${T?`${T} `:""}Reject-loop detected: hat '${h}' has rejected unit '${t.unit}' ${A+1} times in a row for the same reason. The doer cannot resolve this on its own \u2014 the issue likely needs user input, a spec change, or a unit split. Filed system feedback ${B??"(write failed)"} so the user sees the stuck state. Stop iterating and escalate. (Loop signal fires at ${fZ} consecutive same-reason rejects from the same hat, ${gv-(m+1)} bolts ahead of the hard cap.)`},{isError:!0})}if(m+1>gv)return r({error:"max_bolts_exceeded",bolt:m,max:gv,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,message:`${T?`${T} `:""}Unit has exceeded ${gv} bolt iterations. Escalate to the user \u2014 this unit needs structural intervention, not another retry. To restart it clean (e.g. the spec premise was wrong, or the work should redo from scratch), reset it: \`haiku_unit_reset { intent: "${t.intent}", stage: "${u}", unit: "${t.unit}" }\` \u2014 returns the unit to pending and discards its worktree (siblings + the stage branch untouched); then rewrite the spec with haiku_unit_write if needed and re-run. Or split it into smaller units.`},{isError:!0});{let B=`${pe(t.intent)}/intent.md`,{data:F}=re(Pe(B,"utf8")),V=F.studio||"",U=V?dZ(t.intent,V,u,t.unit):null;if(U)return r({error:"unit_scope_violation_on_reject",bolt:m,violations:U.violations,scope:U.scope,message:`Cannot reject hat: the unit worktree still contains ${U.violations.length} out-of-scope write(s) that must be reverted first. +**Next steps**: revisit the spec/unit, answer any open question the reviewer is pointing at, or split the unit. Reject-loop escalation fires before the ${gv}-bolt cap so the user can intervene without losing the remaining bolts.`,M=Qo(t.intent,u,{title:V,body:U,origin:"agent",severity:"blocker",author:"engine",authorType:"system",source_ref:`reject-loop:${t.unit}:${h}`});B=M.feedback_id,wt(`feedback: reject-loop escalation ${M.feedback_id} on ${t.unit} (${h})`)}catch(F){console.error(`[haiku] reject-loop escalation FB write failed: ${F.message}`)}return r({error:"reject_loop_escalation",unit:t.unit,stage:u,hat:h,bolt:m,consecutive_same_reason_rejects:A+1,min_repeats:pZ,last_reason:g??null,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,escalation_feedback_id:B,message:`${T?`${T} `:""}Reject-loop detected: hat '${h}' has rejected unit '${t.unit}' ${A+1} times in a row for the same reason. The doer cannot resolve this on its own \u2014 the issue likely needs user input, a spec change, or a unit split. Filed system feedback ${B??"(write failed)"} so the user sees the stuck state. Stop iterating and escalate. (Loop signal fires at ${pZ} consecutive same-reason rejects from the same hat, ${gv-(m+1)} bolts ahead of the hard cap.)`},{isError:!0})}if(m+1>gv)return r({error:"max_bolts_exceeded",bolt:m,max:gv,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,message:`${T?`${T} `:""}Unit has exceeded ${gv} bolt iterations. Escalate to the user \u2014 this unit needs structural intervention, not another retry. To restart it clean (e.g. the spec premise was wrong, or the work should redo from scratch), reset it: \`haiku_unit_reset { intent: "${t.intent}", stage: "${u}", unit: "${t.unit}" }\` \u2014 returns the unit to pending and discards its worktree (siblings + the stage branch untouched); then rewrite the spec with haiku_unit_write if needed and re-run. Or split it into smaller units.`},{isError:!0});{let B=`${pe(t.intent)}/intent.md`,{data:F}=re(Pe(B,"utf8")),V=F.studio||"",U=V?fZ(t.intent,V,u,t.unit):null;if(U)return r({error:"unit_scope_violation_on_reject",bolt:m,violations:U.violations,scope:U.scope,message:`Cannot reject hat: the unit worktree still contains ${U.violations.length} out-of-scope write(s) that must be reverted first. Out-of-bounds files: ${U.violations.map(M=>` - ${M}`).join(` `)} -Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${u})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a NO-OP on committed files and will not clear the violation. After the revert, call reject_hat again.`},{isError:!0})}let x=eSe(t.intent,u,t.unit),k=re(Pe(`${pe(t.intent)}/intent.md`,"utf8")).data.studio||"",P=k?Du(k,u):{},{targetHat:N}=Vpe(x,h,{assessorToFirst:!0,assessorHat:bbt,roleOf:B=>P[B]?.role});if(Go.modelSelection){let B=d.model,F=qfe(B);B&&F&&(Me(c,"model_original",B),Me(c,"model",F),console.error(`[haiku] model escalated: ${B} \u2192 ${F} (hat rejected, iteration ${m+1})`))}let C=g;pZ(c,"reject",C),f1(c,N);{let B=t.state_file;B&&qi(B,{event:"unit_failed",intent:t.intent,stage:u,unit:t.unit,from_hat:h,to_hat:N,bolt:m+1})}Ke("haiku.unit.failed",{intent:t.intent,stage:u,unit:t.unit,hat:h,prev_hat:N,bolt:String(m+1)});let L=wt(`haiku: fail ${t.unit} \u2014 back to ${N}, iteration ${m+1}`);Xr(t.intent,t.state_file);let G=rbt(t.intent,t.unit),W=T?`${T} `:"",$=O3(pe(t.intent),u),q=`${W}rejected \u2014 back to ${N} (iteration ${m+1}). Reason: ${C??"(none)"} +Revert the out-of-bounds commits in the unit worktree: drop all unit commits with \`git reset --hard $(git merge-base HEAD haiku/${t.intent}/${u})\`, or amend a single file out with \`git rm && git commit --amend --no-edit\`, or \`git revert --no-edit \` for a whole commit. NOTE: \`git checkout HEAD -- \` is a NO-OP on committed files and will not clear the violation. After the revert, call reject_hat again.`},{isError:!0})}let x=tSe(t.intent,u,t.unit),k=re(Pe(`${pe(t.intent)}/intent.md`,"utf8")).data.studio||"",P=k?Du(k,u):{},{targetHat:N}=Wpe(x,h,{assessorToFirst:!0,assessorHat:bbt,roleOf:B=>P[B]?.role});if(Go.modelSelection){let B=d.model,F=Bfe(B);B&&F&&(Me(c,"model_original",B),Me(c,"model",F),console.error(`[haiku] model escalated: ${B} \u2192 ${F} (hat rejected, iteration ${m+1})`))}let C=g;hZ(c,"reject",C),h1(c,N);{let B=t.state_file;B&&qi(B,{event:"unit_failed",intent:t.intent,stage:u,unit:t.unit,from_hat:h,to_hat:N,bolt:m+1})}Ke("haiku.unit.failed",{intent:t.intent,stage:u,unit:t.unit,hat:h,prev_hat:N,bolt:String(m+1)});let L=wt(`haiku: fail ${t.unit} \u2014 back to ${N}, iteration ${m+1}`);Xr(t.intent,t.state_file);let G=rbt(t.intent,t.unit),W=T?`${T} `:"",$=N3(pe(t.intent),u),q=`${W}rejected \u2014 back to ${N} (iteration ${m+1}). Reason: ${C??"(none)"} ${t.unit}: ${h} \u2192 ${N} (bounced back, iteration ${m+1})`+($?` -${$}`:"")+cZ(L),Q=G&&G.length>0?`${q} +${$}`:"")+uZ(L),Q=G&&G.length>0?`${q} --- @@ -807,8 +807,8 @@ Wave still has work \u2014 spawn the block below as your next Task call: ${G}`:`${q} -Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return r({ok:!0,unit:t.unit,stage:u,prev_hat:N,bolt:m+1,reason:C??null,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,next_subagent_dispatch_block:G,message:Q})}case"haiku_unit_read":{let o=Be(t,$ge,"haiku_unit_read");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",intent:t.intent,stage:t.stage,unit:t.unit,message:`No unit '${t.unit}' in stage '${t.stage}'.`},{isError:!0});Qye(c);let{data:u,body:l}=re(Pe(c,"utf8")),d=typeof u.title=="string"?u.title:"",f=l.match(/^#\s+(.+)$/m),p=d||(f?f[1].trim():t.unit);return r({title:p,body:l})}case"haiku_read_hat":{let o=Be(t,jge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=EI(a,c,u,l);return d===null?r({error:"hat_not_found",studio:a,stage:c,hat:u,fix:l,message:`No ${l?"fix-scoped or production ":""}mandate for hat '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({hat:u,body:d})}case"haiku_read_stage":{let o=Be(t,Hge,"haiku_read_stage");if(o)return o;let a=t.studio,c=t.stage,u=Dh(a,c);return u===null?r({error:"stage_not_found",studio:a,stage:c,message:`No STAGE.md for studio '${a}' stage '${c}'.`},{isError:!0}):r({stage:c,body:u})}case"haiku_read_review_agent":{let o=Be(t,Bge,"haiku_read_review_agent");if(o)return o;let a=t.studio,c=t.stage||"",u=t.role,l=Mh(a,c||void 0,u);return l===null?r({error:"review_agent_not_found",studio:a,stage:c||null,role:u,message:`No ${c?"stage-scope":"intent-completion"} review agent '${u}' in studio '${a}'${c?` stage '${c}'`:""}. (Engine-built-in roles like spec/continuity/cross-stage-consistency are generated, not files \u2014 they are not readable here.)`},{isError:!0}):r({role:u,body:l})}case"haiku_read_intent":{let o=Be(t,qge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Kh(a);return c===null?r({error:"intent_not_found",intent:a,message:`No intent.md for '${a}'.`},{isError:!0}):r({intent:a,body:c})}case"haiku_read_discovery":{let o=Be(t,zge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=_I(a,c,u);return l===null?r({error:"discovery_template_not_found",studio:a,stage:c,template:u,message:`No discovery template '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({template:u,body:l})}case"haiku_read_phase":{let o=Be(t,Gge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=KK(a,c,u);return l===null?r({error:"phase_not_found",studio:a,stage:c,phase:u,message:`No '${u}' phase override for studio '${a}' stage '${c}'.`},{isError:!0}):r({phase:u,body:l})}case"haiku_read_output":{let o=Be(t,Vge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=WK(a,c,u);return l===null?r({error:"output_template_not_found",studio:a,stage:c,name:u,message:`No output template '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({name:u,body:l})}case"haiku_unit_delete":{let o=Be(t,eye,"haiku_unit_delete");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",intent:t.intent,stage:t.stage,unit:t.unit,message:`No unit '${t.unit}' in stage '${t.stage}'.`},{isError:!0});let{data:u}=re(Pe(c,"utf8")),l=G0(u);return l!=="pending"?r({error:"lifecycle_violation",current_status:l,required_status:"pending",message:`Cannot delete unit '${t.unit}' \u2014 status is '${l}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once they enter active or completed status because downstream work has been informed by them. Pending units only.`},{isError:!0}):(Yye(c),ci(t.intent),Ke("haiku.unit.deleted",{intent:t.intent,stage:t.stage,unit:t.unit}),r({ok:!0,message:`Deleted pending unit '${t.unit}'.`}))}case"haiku_unit_write":{let o=Be(t,tye,"haiku_unit_write");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=t.intent,u=t.stage,l=t.unit,d=t.body??"",f=t.frontmatter??{};if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty bodies cannot pass downstream verification."},{isError:!0});let p=Pa(c,u,l),h=!0;if(ue(p)){let{data:x}=re(Pe(p,"utf8")),k=G0(x);if(k!=="pending")return r({error:"lifecycle_violation",current_status:k,message:`Cannot rewrite unit '${l}' \u2014 status is '${k}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once active or completed. To address a defect in a completed unit, draft a NEW pending unit in the next elaborate iteration; do not modify the original.`},{isError:!0});h=!1}let m=ne(ar(c,u),"units"),g=[],y={};if(ue(m))for(let x of an(m).filter(k=>k.endsWith(".md"))){let k=x.replace(/\.md$/,"");g.push(k);try{let P=re(Pe(ne(m,x),"utf8")).data;Array.isArray(P.outputs)&&(y[k]=P.outputs.filter(N=>typeof N=="string").map(N=>N.trim()))}catch{}}g.includes(l)||g.push(l);let b="knowledge";try{let x=ne(pe(c),"intent.md");if(ue(x)){let k=re(Pe(x,"utf8")).data.studio||"",P=k?si(k):null;if(P){let N=$i(P.dir,u);N&&N.data.produces==="build"&&(b="build")}}}catch{}let S=gbt(f,{intent:c,stage:u,unit:l,siblingUnits:g,siblingOutputs:y,stageProduces:b});if(!S.valid)return r({error:"frontmatter_validation_failed",errors:S.errors,message:"Frontmatter failed validation. Fix each error and call again. Architecture \xA71.1 mandates that the workflow engine enforces FM validity at write time, so the agent never sees defects sneak through."},{isError:!0});let E={};if(ue(m))for(let x of an(m).filter(k=>k.endsWith(".md"))){let k=x.replace(/\.md$/,"");if(k===l)continue;let{data:P}=re(Pe(ne(m,x),"utf8"));E[k]=Array.isArray(P.depends_on)?P.depends_on:[]}E[l]=Array.isArray(f.depends_on)?f.depends_on:[];let _=ybt(E);if(_.length>0)return r({error:"dag_cycle_detected",cycle_nodes:_,message:`Writing unit '${l}' with depends_on=[${f.depends_on?.join(", ")??""}] would create a dependency cycle involving: [${_.join(", ")}]. The workflow engine rejects writes that produce a cyclic DAG. Reorder dependencies or restructure the units.`},{isError:!0});let T=u9n(d);if(T)return r(T,{isError:!0});let R=l9n(l,f);if(R)return r(R,{isError:!0});let A={...f,status:"pending"};if(!("title"in A)){let x=d.match(/^#\s+(.+)$/m);A.title=x?x[1].trim():l}return h&&!ue(m)&&Dl(m,{recursive:!0}),In(p,Ct.default.stringify(`${d.trimEnd()} -`,A)),ci(c),Ke(h?"haiku.unit.created":"haiku.unit.rewritten",{intent:c,stage:u,unit:l}),r({ok:!0,created:h,unit:l,stage:u,intent:c,message:h?`Created unit '${l}' in stage '${u}' (status: pending).`:`Rewrote unit '${l}' in stage '${u}' (status preserved as pending).`})}case"haiku_reconciliation_acknowledge":{let o=Be(t,uge,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||d1(a),l=t.rationale?.trim();if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});if(!l||l.length<10)return r({error:"rationale_required",message:"haiku_reconciliation_acknowledge requires a rationale of at least 10 characters explaining why the divergence is intentional. Acknowledging without explanation defeats the purpose of the reconciliation log."},{isError:!0});let d=ne(pe(a),"stages",u);Dl(d,{recursive:!0});let f=ne(d,"upstream-reconciliation.json");return p1(f,{acknowledged:!0,acknowledged_at:En(),rationale:l}),tbt(a,u,{decision:"Upstream reconciliation acknowledged",options:["reconcile upstream artifacts","acknowledge divergence"],choice:"acknowledge divergence",source:"autonomous-acknowledged",rationale:l,kind:"upstream_reconciliation",recorded_at:En()}),ci(a),Ke("haiku.reconciliation.acknowledged",{intent:a,stage:u}),r({ok:!0,intent:a,stage:u,rationale:l})}case"haiku_decision_record":{let o=Be(t,lge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||d1(a);if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});let l=ne(pe(a),"stages",u);Dl(l,{recursive:!0});let d=t.no_decisions===!0,f=t.rationale?.trim();if(d){if(!f||f.length<10)return r({error:"rationale_required",message:"no_decisions=true requires a rationale of at least 10 characters explaining why no architectural decisions are in scope for this stage. State the convention or constraint that makes the work routine (e.g. 'all units follow the team's standard CRUD scaffolding; no architectural choices remain after design stage')."},{isError:!0});let b=ne(l,"no-decisions.json");return p1(b,{declared:!0,declared_at:En(),rationale:f}),ci(a),Ke("haiku.elaboration.no_decisions_declared",{intent:a,stage:u}),r({ok:!0,intent:a,stage:u,no_decisions:!0,rationale:f})}let p=t.decision?.trim(),h=t.options,m=t.choice?.trim(),g=t.source;if(!p||!h||!m||!g)return r({error:"missing_fields",message:"haiku_decision_record requires `decision`, `options`, `choice`, and `source` (or `no_decisions: true` with `rationale`)."},{isError:!0});if(!Array.isArray(h)||h.length<2)return r({error:"options_too_few",message:"`options` must be an array of at least 2 concrete alternatives. A 'decision' with only one option isn't a decision \u2014 it's just doing the work. If the work is forced, use `no_decisions: true` with a rationale instead."},{isError:!0});if(!h.includes(m))return r({error:"choice_not_in_options",message:`\`choice\` must match one of the entries in \`options\`. Got choice=${JSON.stringify(m)}; options=${JSON.stringify(h)}. The decision-log is provenance \u2014 recording a choice that wasn't in the presented alternatives corrupts the very property the log exists to preserve.`},{isError:!0});if(g!=="user"&&g!=="autonomous-acknowledged")return r({error:"invalid_source",message:'`source` must be "user" (the user picked between the options) or "autonomous-acknowledged" (you chose and surfaced the choice for the user to veto, and they did not push back).'},{isError:!0});tbt(a,u,{decision:p,options:h,choice:m,source:g,rationale:f||null,recorded_at:En()});let y=v3(a,u).length;return ci(a),Ke("haiku.decision.recorded",{intent:a,stage:u,source:g}),r({ok:!0,intent:a,stage:u,decision_count:y})}case"haiku_knowledge_list":{let o=Be(t,dge,"haiku_knowledge_list");if(o)return o;let a=ne(pe(t.intent),"knowledge");if(!ue(a))return r({files:[]});let c=an(a).filter(u=>u.endsWith(".md"));return r({files:c})}case"haiku_knowledge_read":{let o=Be(t,fge,"haiku_knowledge_read");if(o)return o;let a=ne(pe(t.intent),"knowledge",t.name);return ue(a)?r({found:!0,name:t.name,content:Pe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,jL,"haiku_skill_list");return o||r({skills:K0()})}case"haiku_studio_list":{let o=Be(t,jL,"haiku_studio_list");if(o)return o;let a=TI().filter(c=>c.data.deprecated!==!0).map(c=>({name:c.name,slug:c.slug,aliases:c.aliases,dir:c.dir,description:c.description,category:c.category,stages:c.stages,source:c.source,path:c.path,studio_md:c.studioFile,body:c.body.slice(0,200)}));return r({studios:a})}case"haiku_studio_get":{let o=Be(t,pge,"haiku_studio_get");if(o)return o;let a=si(t.studio);return r(a?{found:!0,name:a.name,slug:a.slug,aliases:a.aliases,dir:a.dir,description:a.description,category:a.category,stages:a.stages,source:a.source,path:a.path,studio_md:a.studioFile,body:a.body,...a.data}:{found:!1})}case"haiku_studio_stage_get":{let o=Be(t,hge,"haiku_studio_stage_get");if(o)return o;let a=si(t.studio);if(!a)return r({found:!1});let c=t.stage,u=ne(a.path,"stages",c,"STAGE.md");if(!ue(u))return r({found:!1});let l=Pe(u,"utf8"),{data:d,body:f}=re(l);return r({found:!0,...d,body:f,studio:a.name,studio_dir:a.dir,stage_md:u})}case"haiku_settings_get":{let o=Be(t,mge,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=ne(Te(),"settings.yml")}catch{}if(!(c&&ue(c)))return r({found:!1,field:a,value:null});let u=Pe(c,"utf8"),l=nbt(u),d=y9n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,gge,"haiku_settings_set");if(o)return o;let a=t.field,c=t.value,u=(m,g)=>r({error:m,field:a,message:g},{isError:!0}),l="";try{l=ne(Te(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?nbt(Pe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!f9n(f)){let m=p9n()[0];return u("settings_field_validation_failed",`Field '${a}' fails settings.schema.json validation: ${m?.instancePath||"(root)"} ${m?.message||"invalid"}.`)}let h=Ct.default.engines.yaml.stringify(f);return In(l,h),r({ok:!0,field:a,message:c==null?`Deleted '${a}' from .haiku/settings.yml`:`Set '${a}' in .haiku/settings.yml`})}case"haiku_intent_set":{let o=Be(t,cge,"haiku_intent_set");if(o)return o;let a=t.intent,c=t.field,u=t.value,l=(h,m)=>r({error:h,intent:a,field:c,message:m},{isError:!0}),d=mb();if(!d&&QT.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${QT.join(", ")}.`);if(!d&&AY.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!XT.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${XT.filter(h=>!AY.includes(h)).join(", ")}.`);let f="";try{f=ne(pe(a),"intent.md")}catch(h){return l("haiku_root_not_found",`Could not resolve intent dir: ${h.message}`)}if(!ue(f))return l("intent_not_found",`Intent '${a}' not found at ${f}.`);let p={[c]:u};if(!R0(p)){let h=R0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return Me(f,c,u),wt(`haiku: intent ${a} set ${c} via haiku_intent_set`),r({ok:!0,intent:a,field:c,message:`Set intent.${c} on '${a}'.`})}case"haiku_stage_set":{let o=Be(t,Uge,"haiku_stage_set");if(o)return o;let a=t.intent,c=t.stage,u=t.field;t.value;let l=(d,f)=>r({error:d,intent:a,stage:c,field:u,message:f},{isError:!0});return!u||typeof u!="string"?l("stage_field_required","`field` is required"):l("stage_field_engine_only",`Stage state.json is workflow engine-managed \u2014 agents cannot set fields directly. Stage fields are mutated by haiku_run_next ticks (start, advance phase, complete) and lifecycle tools (haiku_unit_advance_hat, haiku_feedback_advance_hat). To force a stage transition manually, use /haiku:haiku-repair, or file a stage_revisit feedback via \`haiku_feedback({ resolution: "stage_revisit" })\` to re-open the target stage. Field '${u}' on stage '${c}' of intent '${a}' was not written.`)}case"haiku_capacity":{let o=Be(t,yge,"haiku_capacity");if(o)return o;let a=t.studio||"",c=a||null,u;try{u=Te()}catch{return r({markdown:"No .haiku directory found.",studio:c})}let l=ne(u,"intents");if(!ue(l))return r({markdown:"No intents found.",studio:c});let d=Fg(l),f=m=>{if(m.length===0)return 0;let g=[...m].sort((b,S)=>b-S),y=Math.floor(g.length/2);return g.length%2!==0?g[y]:(g[y-1]+g[y])/2},p=new Map;for(let{slug:m,data:g}of d){let y=g.studio||"unassigned";if(a&&y!==a)continue;p.has(y)||p.set(y,[]);let b=typeof g.plugin_version=="string",S=g.status||"",E=b?typeof g.sealed_at=="string"&&g.sealed_at?"completed":"active":"",_=S||E||"unknown";p.get(y)?.push({slug:m,status:_,data:g})}if(p.size===0)return r({markdown:a?`No intents found for studio '${a}'.`:"No intents found.",studio:c});let h=`# Capacity Report +Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;return r({ok:!0,unit:t.unit,stage:u,prev_hat:N,bolt:m+1,reason:C??null,outputs_present:E,outputs_files_present:b,outputs_files_missing:S,next_subagent_dispatch_block:G,message:Q})}case"haiku_unit_read":{let o=Be(t,eye,"haiku_unit_read");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",intent:t.intent,stage:t.stage,unit:t.unit,message:`No unit '${t.unit}' in stage '${t.stage}'.`},{isError:!0});$ye(c);let{data:u,body:l}=re(Pe(c,"utf8")),d=typeof u.title=="string"?u.title:"",f=l.match(/^#\s+(.+)$/m),p=d||(f?f[1].trim():t.unit);return r({title:p,body:l})}case"haiku_read_hat":{let o=Be(t,Hge,"haiku_read_hat");if(o)return o;let a=t.studio,c=t.stage,u=t.hat,l=t.fix===!0,d=EI(a,c,u,l);return d===null?r({error:"hat_not_found",studio:a,stage:c,hat:u,fix:l,message:`No ${l?"fix-scoped or production ":""}mandate for hat '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({hat:u,body:d})}case"haiku_read_stage":{let o=Be(t,qge,"haiku_read_stage");if(o)return o;let a=t.studio,c=t.stage,u=Dh(a,c);return u===null?r({error:"stage_not_found",studio:a,stage:c,message:`No STAGE.md for studio '${a}' stage '${c}'.`},{isError:!0}):r({stage:c,body:u})}case"haiku_read_review_agent":{let o=Be(t,zge,"haiku_read_review_agent");if(o)return o;let a=t.studio,c=t.stage||"",u=t.role,l=Mh(a,c||void 0,u);return l===null?r({error:"review_agent_not_found",studio:a,stage:c||null,role:u,message:`No ${c?"stage-scope":"intent-completion"} review agent '${u}' in studio '${a}'${c?` stage '${c}'`:""}. (Engine-built-in roles like spec/continuity/cross-stage-consistency are generated, not files \u2014 they are not readable here.)`},{isError:!0}):r({role:u,body:l})}case"haiku_read_intent":{let o=Be(t,Bge,"haiku_read_intent");if(o)return o;let a=t.intent,c=Kh(a);return c===null?r({error:"intent_not_found",intent:a,message:`No intent.md for '${a}'.`},{isError:!0}):r({intent:a,body:c})}case"haiku_read_discovery":{let o=Be(t,Gge,"haiku_read_discovery");if(o)return o;let a=t.studio,c=t.stage,u=t.template,l=_I(a,c,u);return l===null?r({error:"discovery_template_not_found",studio:a,stage:c,template:u,message:`No discovery template '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({template:u,body:l})}case"haiku_read_phase":{let o=Be(t,Vge,"haiku_read_phase");if(o)return o;let a=t.studio,c=t.stage,u=t.phase,l=ZK(a,c,u);return l===null?r({error:"phase_not_found",studio:a,stage:c,phase:u,message:`No '${u}' phase override for studio '${a}' stage '${c}'.`},{isError:!0}):r({phase:u,body:l})}case"haiku_read_output":{let o=Be(t,Wge,"haiku_read_output");if(o)return o;let a=t.studio,c=t.stage,u=t.name,l=YK(a,c,u);return l===null?r({error:"output_template_not_found",studio:a,stage:c,name:u,message:`No output template '${u}' in studio '${a}' stage '${c}'.`},{isError:!0}):r({name:u,body:l})}case"haiku_unit_delete":{let o=Be(t,tye,"haiku_unit_delete");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=Pa(t.intent,t.stage,t.unit);if(!ue(c))return r({error:"unit_not_found",intent:t.intent,stage:t.stage,unit:t.unit,message:`No unit '${t.unit}' in stage '${t.stage}'.`},{isError:!0});let{data:u}=re(Pe(c,"utf8")),l=V0(u);return l!=="pending"?r({error:"lifecycle_violation",current_status:l,required_status:"pending",message:`Cannot delete unit '${t.unit}' \u2014 status is '${l}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once they enter active or completed status because downstream work has been informed by them. Pending units only.`},{isError:!0}):(Zye(c),ci(t.intent),Ke("haiku.unit.deleted",{intent:t.intent,stage:t.stage,unit:t.unit}),r({ok:!0,message:`Deleted pending unit '${t.unit}'.`}))}case"haiku_unit_write":{let o=Be(t,nye,"haiku_unit_write");if(o)return o;let a=ea(t.intent,t.stage);if(a)return a;let c=t.intent,u=t.stage,l=t.unit,d=t.body??"",f=t.frontmatter??{};if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty bodies cannot pass downstream verification."},{isError:!0});let p=Pa(c,u,l),h=!0;if(ue(p)){let{data:x}=re(Pe(p,"utf8")),k=V0(x);if(k!=="pending")return r({error:"lifecycle_violation",current_status:k,message:`Cannot rewrite unit '${l}' \u2014 status is '${k}'. Per the forward-only lifecycle rule (architecture \xA71.3), units become immutable once active or completed. To address a defect in a completed unit, draft a NEW pending unit in the next elaborate iteration; do not modify the original.`},{isError:!0});h=!1}let m=ne(ar(c,u),"units"),g=[],y={};if(ue(m))for(let x of an(m).filter(k=>k.endsWith(".md"))){let k=x.replace(/\.md$/,"");g.push(k);try{let P=re(Pe(ne(m,x),"utf8")).data;Array.isArray(P.outputs)&&(y[k]=P.outputs.filter(N=>typeof N=="string").map(N=>N.trim()))}catch{}}g.includes(l)||g.push(l);let b="knowledge";try{let x=ne(pe(c),"intent.md");if(ue(x)){let k=re(Pe(x,"utf8")).data.studio||"",P=k?si(k):null;if(P){let N=$i(P.dir,u);N&&N.data.produces==="build"&&(b="build")}}}catch{}let S=gbt(f,{intent:c,stage:u,unit:l,siblingUnits:g,siblingOutputs:y,stageProduces:b});if(!S.valid)return r({error:"frontmatter_validation_failed",errors:S.errors,message:"Frontmatter failed validation. Fix each error and call again. Architecture \xA71.1 mandates that the workflow engine enforces FM validity at write time, so the agent never sees defects sneak through."},{isError:!0});let E={};if(ue(m))for(let x of an(m).filter(k=>k.endsWith(".md"))){let k=x.replace(/\.md$/,"");if(k===l)continue;let{data:P}=re(Pe(ne(m,x),"utf8"));E[k]=Array.isArray(P.depends_on)?P.depends_on:[]}E[l]=Array.isArray(f.depends_on)?f.depends_on:[];let _=ybt(E);if(_.length>0)return r({error:"dag_cycle_detected",cycle_nodes:_,message:`Writing unit '${l}' with depends_on=[${f.depends_on?.join(", ")??""}] would create a dependency cycle involving: [${_.join(", ")}]. The workflow engine rejects writes that produce a cyclic DAG. Reorder dependencies or restructure the units.`},{isError:!0});let T=u9n(d);if(T)return r(T,{isError:!0});let R=l9n(l,f);if(R)return r(R,{isError:!0});let A={...f,status:"pending"};if(!("title"in A)){let x=d.match(/^#\s+(.+)$/m);A.title=x?x[1].trim():l}return h&&!ue(m)&&Dl(m,{recursive:!0}),In(p,Ct.default.stringify(`${d.trimEnd()} +`,A)),ci(c),Ke(h?"haiku.unit.created":"haiku.unit.rewritten",{intent:c,stage:u,unit:l}),r({ok:!0,created:h,unit:l,stage:u,intent:c,message:h?`Created unit '${l}' in stage '${u}' (status: pending).`:`Rewrote unit '${l}' in stage '${u}' (status preserved as pending).`})}case"haiku_reconciliation_acknowledge":{let o=Be(t,lge,"haiku_reconciliation_acknowledge");if(o)return o;let a=t.intent,u=t.stage||p1(a),l=t.rationale?.trim();if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});if(!l||l.length<10)return r({error:"rationale_required",message:"haiku_reconciliation_acknowledge requires a rationale of at least 10 characters explaining why the divergence is intentional. Acknowledging without explanation defeats the purpose of the reconciliation log."},{isError:!0});let d=ne(pe(a),"stages",u);Dl(d,{recursive:!0});let f=ne(d,"upstream-reconciliation.json");return m1(f,{acknowledged:!0,acknowledged_at:En(),rationale:l}),tbt(a,u,{decision:"Upstream reconciliation acknowledged",options:["reconcile upstream artifacts","acknowledge divergence"],choice:"acknowledge divergence",source:"autonomous-acknowledged",rationale:l,kind:"upstream_reconciliation",recorded_at:En()}),ci(a),Ke("haiku.reconciliation.acknowledged",{intent:a,stage:u}),r({ok:!0,intent:a,stage:u,rationale:l})}case"haiku_decision_record":{let o=Be(t,dge,"haiku_decision_record");if(o)return o;let a=t.intent,u=t.stage||p1(a);if(!u)return r({error:"no_active_stage",message:"No stage specified and no active stage found on the intent."},{isError:!0});let l=ne(pe(a),"stages",u);Dl(l,{recursive:!0});let d=t.no_decisions===!0,f=t.rationale?.trim();if(d){if(!f||f.length<10)return r({error:"rationale_required",message:"no_decisions=true requires a rationale of at least 10 characters explaining why no architectural decisions are in scope for this stage. State the convention or constraint that makes the work routine (e.g. 'all units follow the team's standard CRUD scaffolding; no architectural choices remain after design stage')."},{isError:!0});let b=ne(l,"no-decisions.json");return m1(b,{declared:!0,declared_at:En(),rationale:f}),ci(a),Ke("haiku.elaboration.no_decisions_declared",{intent:a,stage:u}),r({ok:!0,intent:a,stage:u,no_decisions:!0,rationale:f})}let p=t.decision?.trim(),h=t.options,m=t.choice?.trim(),g=t.source;if(!p||!h||!m||!g)return r({error:"missing_fields",message:"haiku_decision_record requires `decision`, `options`, `choice`, and `source` (or `no_decisions: true` with `rationale`)."},{isError:!0});if(!Array.isArray(h)||h.length<2)return r({error:"options_too_few",message:"`options` must be an array of at least 2 concrete alternatives. A 'decision' with only one option isn't a decision \u2014 it's just doing the work. If the work is forced, use `no_decisions: true` with a rationale instead."},{isError:!0});if(!h.includes(m))return r({error:"choice_not_in_options",message:`\`choice\` must match one of the entries in \`options\`. Got choice=${JSON.stringify(m)}; options=${JSON.stringify(h)}. The decision-log is provenance \u2014 recording a choice that wasn't in the presented alternatives corrupts the very property the log exists to preserve.`},{isError:!0});if(g!=="user"&&g!=="autonomous-acknowledged")return r({error:"invalid_source",message:'`source` must be "user" (the user picked between the options) or "autonomous-acknowledged" (you chose and surfaced the choice for the user to veto, and they did not push back).'},{isError:!0});tbt(a,u,{decision:p,options:h,choice:m,source:g,rationale:f||null,recorded_at:En()});let y=A3(a,u).length;return ci(a),Ke("haiku.decision.recorded",{intent:a,stage:u,source:g}),r({ok:!0,intent:a,stage:u,decision_count:y})}case"haiku_knowledge_list":{let o=Be(t,fge,"haiku_knowledge_list");if(o)return o;let a=ne(pe(t.intent),"knowledge");if(!ue(a))return r({files:[]});let c=an(a).filter(u=>u.endsWith(".md"));return r({files:c})}case"haiku_knowledge_read":{let o=Be(t,pge,"haiku_knowledge_read");if(o)return o;let a=ne(pe(t.intent),"knowledge",t.name);return ue(a)?r({found:!0,name:t.name,content:Pe(a,"utf8")}):r({found:!1,name:t.name,content:""})}case"haiku_skill_list":{let o=Be(t,HL,"haiku_skill_list");return o||r({skills:Y0()})}case"haiku_studio_list":{let o=Be(t,HL,"haiku_studio_list");if(o)return o;let a=TI().filter(c=>c.data.deprecated!==!0).map(c=>({name:c.name,slug:c.slug,aliases:c.aliases,dir:c.dir,description:c.description,category:c.category,stages:c.stages,source:c.source,path:c.path,studio_md:c.studioFile,body:c.body.slice(0,200)}));return r({studios:a})}case"haiku_studio_get":{let o=Be(t,hge,"haiku_studio_get");if(o)return o;let a=si(t.studio);return r(a?{found:!0,name:a.name,slug:a.slug,aliases:a.aliases,dir:a.dir,description:a.description,category:a.category,stages:a.stages,source:a.source,path:a.path,studio_md:a.studioFile,body:a.body,...a.data}:{found:!1})}case"haiku_studio_stage_get":{let o=Be(t,mge,"haiku_studio_stage_get");if(o)return o;let a=si(t.studio);if(!a)return r({found:!1});let c=t.stage,u=ne(a.path,"stages",c,"STAGE.md");if(!ue(u))return r({found:!1});let l=Pe(u,"utf8"),{data:d,body:f}=re(l);return r({found:!0,...d,body:f,studio:a.name,studio_dir:a.dir,stage_md:u})}case"haiku_settings_get":{let o=Be(t,gge,"haiku_settings_get");if(o)return o;let a=t.field,c="";try{c=ne(Te(),"settings.yml")}catch{}if(!(c&&ue(c)))return r({found:!1,field:a,value:null});let u=Pe(c,"utf8"),l=nbt(u),d=y9n(l,a);return r({found:d!=null,field:a,value:d??null})}case"haiku_settings_set":{let o=Be(t,yge,"haiku_settings_set");if(o)return o;let a=t.field,c=t.value,u=(m,g)=>r({error:m,field:a,message:g},{isError:!0}),l="";try{l=ne(Te(),"settings.yml")}catch(m){return u("haiku_root_not_found",`No .haiku/ directory found: ${m.message}`)}let f={...ue(l)?nbt(Pe(l,"utf8")):{}};if(c==null?delete f[a]:f[a]=c,!f9n(f)){let m=p9n()[0];return u("settings_field_validation_failed",`Field '${a}' fails settings.schema.json validation: ${m?.instancePath||"(root)"} ${m?.message||"invalid"}.`)}let h=Ct.default.engines.yaml.stringify(f);return In(l,h),r({ok:!0,field:a,message:c==null?`Deleted '${a}' from .haiku/settings.yml`:`Set '${a}' in .haiku/settings.yml`})}case"haiku_intent_set":{let o=Be(t,uge,"haiku_intent_set");if(o)return o;let a=t.intent,c=t.field,u=t.value,l=(h,m)=>r({error:h,intent:a,field:c,message:m},{isError:!0}),d=mb();if(!d&&QT.includes(c))return l("intent_field_engine_only",`Field '${c}' is workflow engine-managed \u2014 agents cannot set it. Engine-only fields: ${QT.join(", ")}.`);if(!d&&kY.includes(c))return l("intent_field_immutable",`Field '${c}' is immutable after creation.`);if(!XT.includes(c))return l("intent_field_unknown",`Field '${c}' is not in INTENT_FRONTMATTER_SCHEMA. Allowed: ${XT.filter(h=>!kY.includes(h)).join(", ")}.`);let f="";try{f=ne(pe(a),"intent.md")}catch(h){return l("haiku_root_not_found",`Could not resolve intent dir: ${h.message}`)}if(!ue(f))return l("intent_not_found",`Intent '${a}' not found at ${f}.`);let p={[c]:u};if(!R0(p)){let h=R0.errors?.[0];return l("intent_field_type_mismatch",`Field '${c}' fails INTENT_FRONTMATTER_SCHEMA validation: ${h?.instancePath||"(root)"} ${h?.message||"invalid"}.`)}return Me(f,c,u),wt(`haiku: intent ${a} set ${c} via haiku_intent_set`),r({ok:!0,intent:a,field:c,message:`Set intent.${c} on '${a}'.`})}case"haiku_stage_set":{let o=Be(t,Fge,"haiku_stage_set");if(o)return o;let a=t.intent,c=t.stage,u=t.field;t.value;let l=(d,f)=>r({error:d,intent:a,stage:c,field:u,message:f},{isError:!0});return!u||typeof u!="string"?l("stage_field_required","`field` is required"):l("stage_field_engine_only",`Stage state.json is workflow engine-managed \u2014 agents cannot set fields directly. Stage fields are mutated by haiku_run_next ticks (start, advance phase, complete) and lifecycle tools (haiku_unit_advance_hat, haiku_feedback_advance_hat). To force a stage transition manually, use /haiku:haiku-repair, or file a stage_revisit feedback via \`haiku_feedback({ resolution: "stage_revisit" })\` to re-open the target stage. Field '${u}' on stage '${c}' of intent '${a}' was not written.`)}case"haiku_capacity":{let o=Be(t,Sge,"haiku_capacity");if(o)return o;let a=t.studio||"",c=a||null,u;try{u=Te()}catch{return r({markdown:"No .haiku directory found.",studio:c})}let l=ne(u,"intents");if(!ue(l))return r({markdown:"No intents found.",studio:c});let d=Fg(l),f=m=>{if(m.length===0)return 0;let g=[...m].sort((b,S)=>b-S),y=Math.floor(g.length/2);return g.length%2!==0?g[y]:(g[y-1]+g[y])/2},p=new Map;for(let{slug:m,data:g}of d){let y=g.studio||"unassigned";if(a&&y!==a)continue;p.has(y)||p.set(y,[]);let b=typeof g.plugin_version=="string",S=g.status||"",E=b?typeof g.sealed_at=="string"&&g.sealed_at?"completed":"active":"",_=S||E||"unknown";p.get(y)?.push({slug:m,status:_,data:g})}if(p.size===0)return r({markdown:a?`No intents found for studio '${a}'.`:"No intents found.",studio:c});let h=`# Capacity Report `;for(let[m,g]of p){let y=g.filter(E=>E.status==="completed").length,b=g.filter(E=>E.status==="active").length;h+=` ## Studio: ${m} `,h+=`- Total intents: ${g.length} @@ -818,7 +818,7 @@ Call \`haiku_run_next { intent: "${t.intent}" }\` for the next instruction.`;ret | Stage | Units | Median Iterations | |-------|-------|-------------------| `;for(let[E,_]of S)h+=`| ${E} | ${_.length} | ${f(_)} | -`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=Be(t,Sge,"haiku_zap");if(o)return o;let a=P9n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,bge,"haiku_review");if(o)return o;let a=Zo();try{let m=oZ("git",["rev-parse","--abbrev-ref","@{upstream}"],{encoding:"utf8",stdio:"pipe"});m.status===0&&m.stdout.trim()&&(a=m.stdout.trim())}catch{}let c="",u="",l="";try{c=oZ("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=oZ("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=oZ("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} +`}}return r({markdown:h,studio:c})}case"haiku_zap":{let o=Be(t,bge,"haiku_zap");if(o)return o;let a=P9n(t);return r(a,a.error?{isError:!0}:void 0)}case"haiku_review":{let o=Be(t,Ege,"haiku_review");if(o)return o;let a=Zo();try{let m=aZ("git",["rev-parse","--abbrev-ref","@{upstream}"],{encoding:"utf8",stdio:"pipe"});m.status===0&&m.stdout.trim()&&(a=m.stdout.trim())}catch{}let c="",u="",l="";try{c=aZ("git",["diff",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe",maxBuffer:10485760}).stdout||"",u=aZ("git",["diff","--stat",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||"",l=aZ("git",["diff","--name-only",`${a}...HEAD`],{encoding:"utf8",stdio:"pipe"}).stdout||""}catch{}let d=1e5;c.length>d&&(c=`${c.slice(0,d)} ... [TRUNCATED at 100k chars] ...`);let f="",p=process.cwd();for(let m of["REVIEW.md","CLAUDE.md"]){let g=ne(p,m);ue(g)&&(f+=` ### ${m} @@ -847,7 +847,7 @@ ${c||"No changes detected."} `,h+=`2. Collect findings, deduplicate across agents `,h+=`3. Fix all HIGH severity findings before delivery `,h+=`4. Report findings summary to the user -`,n(h)}case"haiku_backlog":{let o=Be(t,_ge,"haiku_backlog");if(o)return o;let a=t.action||"list",c=d=>r({markdown:d,action:a}),u;try{u=Te()}catch{return c("No .haiku directory found.")}let l=ne(u,"backlog");switch(a){case"list":{if(!ue(l))return c("No backlog items found.");let d=an(l).filter(p=>p.endsWith(".md"));if(d.length===0)return c("No backlog items found.");let f=`# Backlog +`,n(h)}case"haiku_backlog":{let o=Be(t,Tge,"haiku_backlog");if(o)return o;let a=t.action||"list",c=d=>r({markdown:d,action:a}),u;try{u=Te()}catch{return c("No .haiku directory found.")}let l=ne(u,"backlog");switch(a){case"list":{if(!ue(l))return c("No backlog items found.");let d=an(l).filter(p=>p.endsWith(".md"));if(d.length===0)return c("No backlog items found.");let f=`# Backlog | # | Item | Priority | Created | |---|------|----------|---------| @@ -879,7 +879,7 @@ For each item, ask the user and apply their choice. `,d+=`1. Read the backlog item file `,d+=`2. Use /haiku:haiku-start to create an intent from its description `,d+=`3. Delete the backlog file after the intent is created -`,c(d)}default:return c(`Unknown backlog action: '${a}'. Valid actions: list, add, review, promote.`)}}case"haiku_seed":{let o=Be(t,Tge,"haiku_seed");if(o)return o;let a=t.action||"list",c;try{c=Te()}catch{return n("No .haiku directory found.")}let u=ne(c,"seeds");switch(a){case"list":{if(!ue(u))return n("No seeds found.");let l=an(u).filter(p=>p.endsWith(".md"));if(l.length===0)return n("No seeds found.");let d=new Map;for(let p of l){let{data:h}=re(Pe(ne(u,p),"utf8")),m=h.status||"planted";d.has(m)||d.set(m,[]),d.get(m)?.push({name:p.replace(".md",""),data:h})}let f=`# Seeds +`,c(d)}default:return c(`Unknown backlog action: '${a}'. Valid actions: list, add, review, promote.`)}}case"haiku_seed":{let o=Be(t,vge,"haiku_seed");if(o)return o;let a=t.action||"list",c;try{c=Te()}catch{return n("No .haiku directory found.")}let u=ne(c,"seeds");switch(a){case"list":{if(!ue(u))return n("No seeds found.");let l=an(u).filter(p=>p.endsWith(".md"));if(l.length===0)return n("No seeds found.");let d=new Map;for(let p of l){let{data:h}=re(Pe(ne(u,p),"utf8")),m=h.status||"planted";d.has(m)||d.set(m,[]),d.get(m)?.push({name:p.replace(".md",""),data:h})}let f=`# Seeds `;for(let[p,h]of d){f+=` ## ${p.charAt(0).toUpperCase()+p.slice(1)} (${h.length}) @@ -905,7 +905,7 @@ Evaluate each planted seed's trigger condition against the current project state `}return f+=`--- For each seed: if the trigger condition is met, update its status to 'surfaced'. If not, leave as 'planted'. -`,n(f)}default:return n(`Unknown seed action: '${a}'. Valid actions: list, plant, check.`)}}case"haiku_release_notes":{let o=Be(t,vge,"haiku_release_notes");if(o)return o;let a=t.version||"",c=a||null,u=b=>r({markdown:b,version:c}),l="",d=nn();if(d){let b=ne(d,"CHANGELOG.md");ue(b)&&(l=b)}if(!l){let b=process.cwd();for(let S=0;S<20;S++){let E=ne(b,"CHANGELOG.md");if(ue(E)){l=E;break}let _=ne(b,"..");if(_===b)break;b=_}}if(!l)return u("No CHANGELOG.md found.");let f=Pe(l,"utf8"),p=/^## \[([^\]]+)\]/gm,h=[],m=p.exec(f);for(;m!==null;)h.push({version:m[1],start:m.index}),m=p.exec(f);if(h.length===0)return u("No versioned entries found in CHANGELOG.md.");if(a){let b=h.findIndex(_=>_.version===a);if(b===-1)return u(`Version '${a}' not found in CHANGELOG.md. Available: ${h.slice(0,10).map(_=>_.version).join(", ")}`);let S=b+1r({markdown:b,version:c}),l="",d=nn();if(d){let b=ne(d,"CHANGELOG.md");ue(b)&&(l=b)}if(!l){let b=process.cwd();for(let S=0;S<20;S++){let E=ne(b,"CHANGELOG.md");if(ue(E)){l=E;break}let _=ne(b,"..");if(_===b)break;b=_}}if(!l)return u("No CHANGELOG.md found.");let f=Pe(l,"utf8"),p=/^## \[([^\]]+)\]/gm,h=[],m=p.exec(f);for(;m!==null;)h.push({version:m[1],start:m.index}),m=p.exec(f);if(h.length===0)return u("No versioned entries found in CHANGELOG.md.");if(a){let b=h.findIndex(_=>_.version===a);if(b===-1)return u(`Version '${a}' not found in CHANGELOG.md. Available: ${h.slice(0,10).map(_=>_.version).join(", ")}`);let S=b+1r({markdown:m}),d=c?ubt():{moved:[],skipped:[],cleanedSkeletons:[]},f=G3n(d);if(ve()&&!a&&!u)try{let{summaries:m,mainline:g,archivedSummary:y}=V3n(c);if(m.length>0||y){let b=K3n(m,g,y);return l(f?`${f} +`,u(y)}case"haiku_repair":{let o=Be(t,wge,"haiku_repair");if(o)return o;let a=t.intent,c=t.apply!==!1,u=t.skip_branches===!0,l=m=>r({markdown:m}),d=c?ubt():{moved:[],skipped:[],cleanedSkeletons:[]},f=G3n(d);if(ve()&&!a&&!u)try{let{summaries:m,mainline:g,archivedSummary:y}=V3n(c);if(m.length>0||y){let b=K3n(m,g,y);return l(f?`${f} ${b}`:b)}}catch(m){let g=`Multi-branch repair failed: ${m instanceof Error?m.message:String(m)}`;return l(f?`${f} ${g}`:g)}try{Te()}catch{return l(f?`${f} No .haiku/ directory found.`:"No .haiku/ directory found.")}let p;try{p=cbt(void 0,a,c)}catch(m){let g=`Repair failed: ${m instanceof Error?m.message:String(m)}`;return l(f?`${f} ${g}`:g)}if(a&&p.scanned===0){let m=`Intent '${a}' not found.`;return l(f?`${f} ${m}`:m)}if(p.scanned===0)return l(f?`${f} No intents found.`:"No intents found.");let h=B3n(p);return l(f?`${f} -${h}`:h)}case"haiku_feedback":{let o=Be(t,Gme,"haiku_feedback");if(o)return o;let a=t.intent,c=t.stage||"",u=t.title,l=t.body,d=t.severity,f=t.origin||void 0,p=t.source_ref||void 0,h=t.author||void 0,m=t.resolution||void 0,g=t.inline_anchor,y=g?{selectedText:g.selected_text,paragraph:g.paragraph,location:g.location,...g.comment_id?{commentId:g.comment_id}:{},...g.file_path?{filePath:g.file_path}:{},...g.content_sha?{contentSha:g.content_sha}:{}}:void 0,b=ne(pe(a),"intent.md");if(!ue(b))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let S=ea(a,c||void 0);if(S)return S;if(c){let k=ar(a,c);if(!ue(k)){let{data:P}=re(Pe(b,"utf8"));if(!(P.stages||[]).includes(c))return{content:[{type:"text",text:`Error: stage '${c}' not found under intent '${a}'`}],isError:!0};Dl(k,{recursive:!0})}}let E=t.target_unit===void 0?void 0:t.target_unit===null?null:t.target_unit,_=Array.isArray(t.target_invalidates)?t.target_invalidates:void 0,T=Qo(a,c,{title:u,body:l,origin:f,severity:d,author:h,source_ref:p??null,resolution:m??null,...y?{inlineAnchor:y}:{},...E!==void 0?{targetUnit:E}:{},..._!==void 0?{targetInvalidates:_}:{}}),R=wt(c?`feedback: create ${T.feedback_id} in ${c}`:`feedback: create ${T.feedback_id} (intent-scope)`),A={feedback_id:T.feedback_id,file:T.file,status:"pending",message:`Feedback ${T.feedback_id} created.`},x=pbt(a,c,{title:u,body:l,targetUnit:E??null});return x&&(A.duplicate_warning={matches:x.id,settled_status:x.status,resolution:x.resolution,message:`This finding closely matches ${x.id}, already ${x.status} (${x.resolution||"no resolution recorded"}). If that resolution still stands, reject this as a duplicate via haiku_feedback_reject; only keep it if you have new evidence the prior resolution was wrong.`}),r(uZ(A,R))}case"haiku_feedback_update":return r({error:"feedback_update_removed_in_v4",message:"haiku_feedback_update is removed in v4. Closure runs through the fix-hat sequence (call haiku_feedback_advance_hat on the terminal hat). targets.invalidates is set at create time via haiku_feedback. To reject without closure, call haiku_feedback_reject."},{isError:!0});case"haiku_feedback_delete":{let o=Be(t,Jme,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id);if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};let l=ea(a,c||void 0);if(l)return l;let d=EZ(a,c,u,"agent");if(!d.ok)return{content:[{type:"text",text:d.error}],isError:!0};let f=wt(c?`feedback: delete ${u} from ${c}`:`feedback: delete ${u} (intent-scope)`),p={feedback_id:u,deleted:!0,message:c?`Feedback ${u} deleted from stage '${c}'.`:`Feedback ${u} deleted (intent-scope).`};return r(uZ(p,f))}case"haiku_feedback_move":{let o=Be(t,Xme,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.to_stage||"";if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(typeof t.to_stage!="string")return{content:[{type:"text",text:'Error: to_stage is required (use "" for intent-scope)'}],isError:!0};let d=ne(pe(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(Pe(d,"utf8")),E=S.stages||[];if(!E.includes(l))return{content:[{type:"text",text:`Error: to_stage '${l}' is not a stage of intent '${a}'. Valid stages: ${E.join(", ")}`}],isError:!0}}let f=bc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};let p=np(f.data);if(p==="closed"||p==="rejected"||p==="non_actionable")return r({error:"lifecycle_violation",current_status:p,message:`Cannot move feedback '${u}' \u2014 status is '${p}'. Per the forward-only lifecycle rule, closed, rejected, and non-actionable feedback are terminal.`},{isError:!0});let h=ea(a,l||void 0);if(h)return h;let m=Rbt(a,c,u,l);if(!m)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};let g=m.moved?`feedback: move ${u} from ${c||"intent-scope"} to ${l||"intent-scope"} (now ${m.feedback_id})`:`feedback: triage-confirm ${u} in ${c||"intent-scope"}`,y=wt(g),b={feedback_id:m.feedback_id,file:m.file,moved:m.moved,triaged_at:m.triaged_at,message:m.moved?`Feedback moved from ${c||"intent-scope"} to ${l||"intent-scope"} as ${m.feedback_id}.`:`Feedback ${u} placement confirmed.`};return r(uZ(b,y))}case"haiku_feedback_reject":{let o=Be(t,Qme,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.reason;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(!l)return{content:[{type:"text",text:"Error: reason is required when rejecting feedback"}],isError:!0};let d=ea(a,c||void 0);if(d)return d;let f=bc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};if(f.data.author_type==="human")return{content:[{type:"text",text:"Error: agents cannot reject human-authored feedback. Only the user can reject it via the review UI."}],isError:!0};let p=np(f.data);if(p==="closed"||p==="rejected")return{content:[{type:"text",text:`Error: feedback '${u}' is already '${p}' -- cannot reject again`}],isError:!0};let h={...f.data,rejected_at:new Date().toISOString()};SZ(h);let m=`${f.body} +${h}`:h)}case"haiku_feedback":{let o=Be(t,Vme,"haiku_feedback");if(o)return o;let a=t.intent,c=t.stage||"",u=t.title,l=t.body,d=t.severity,f=t.origin||void 0,p=t.source_ref||void 0,h=t.author||void 0,m=t.resolution||void 0,g=t.inline_anchor,y=g?{selectedText:g.selected_text,paragraph:g.paragraph,location:g.location,...g.comment_id?{commentId:g.comment_id}:{},...g.file_path?{filePath:g.file_path}:{},...g.content_sha?{contentSha:g.content_sha}:{}}:void 0,b=ne(pe(a),"intent.md");if(!ue(b))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let S=ea(a,c||void 0);if(S)return S;if(c){let k=ar(a,c);if(!ue(k)){let{data:P}=re(Pe(b,"utf8"));if(!(P.stages||[]).includes(c))return{content:[{type:"text",text:`Error: stage '${c}' not found under intent '${a}'`}],isError:!0};Dl(k,{recursive:!0})}}let E=t.target_unit===void 0?void 0:t.target_unit===null?null:t.target_unit,_=Array.isArray(t.target_invalidates)?t.target_invalidates:void 0,T=Qo(a,c,{title:u,body:l,origin:f,severity:d,author:h,source_ref:p??null,resolution:m??null,...y?{inlineAnchor:y}:{},...E!==void 0?{targetUnit:E}:{},..._!==void 0?{targetInvalidates:_}:{}}),R=wt(c?`feedback: create ${T.feedback_id} in ${c}`:`feedback: create ${T.feedback_id} (intent-scope)`),A={feedback_id:T.feedback_id,file:T.file,status:"pending",message:`Feedback ${T.feedback_id} created.`},x=pbt(a,c,{title:u,body:l,targetUnit:E??null});return x&&(A.duplicate_warning={matches:x.id,settled_status:x.status,resolution:x.resolution,message:`This finding closely matches ${x.id}, already ${x.status} (${x.resolution||"no resolution recorded"}). If that resolution still stands, reject this as a duplicate via haiku_feedback_reject; only keep it if you have new evidence the prior resolution was wrong.`}),r(lZ(A,R))}case"haiku_feedback_update":return r({error:"feedback_update_removed_in_v4",message:"haiku_feedback_update is removed in v4. Closure runs through the fix-hat sequence (call haiku_feedback_advance_hat on the terminal hat). targets.invalidates is set at create time via haiku_feedback. To reject without closure, call haiku_feedback_reject."},{isError:!0});case"haiku_feedback_delete":{let o=Be(t,Xme,"haiku_feedback_delete");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id);if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};let l=ea(a,c||void 0);if(l)return l;let d=_Z(a,c,u,"agent");if(!d.ok)return{content:[{type:"text",text:d.error}],isError:!0};let f=wt(c?`feedback: delete ${u} from ${c}`:`feedback: delete ${u} (intent-scope)`),p={feedback_id:u,deleted:!0,message:c?`Feedback ${u} deleted from stage '${c}'.`:`Feedback ${u} deleted (intent-scope).`};return r(lZ(p,f))}case"haiku_feedback_move":{let o=Be(t,Qme,"haiku_feedback_move");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.to_stage||"";if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(typeof t.to_stage!="string")return{content:[{type:"text",text:'Error: to_stage is required (use "" for intent-scope)'}],isError:!0};let d=ne(pe(a),"intent.md");if(!ue(d))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};if(l){let{data:S}=re(Pe(d,"utf8")),E=S.stages||[];if(!E.includes(l))return{content:[{type:"text",text:`Error: to_stage '${l}' is not a stage of intent '${a}'. Valid stages: ${E.join(", ")}`}],isError:!0}}let f=bc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};let p=np(f.data);if(p==="closed"||p==="rejected"||p==="non_actionable")return r({error:"lifecycle_violation",current_status:p,message:`Cannot move feedback '${u}' \u2014 status is '${p}'. Per the forward-only lifecycle rule, closed, rejected, and non-actionable feedback are terminal.`},{isError:!0});let h=ea(a,l||void 0);if(h)return h;let m=Rbt(a,c,u,l);if(!m)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};let g=m.moved?`feedback: move ${u} from ${c||"intent-scope"} to ${l||"intent-scope"} (now ${m.feedback_id})`:`feedback: triage-confirm ${u} in ${c||"intent-scope"}`,y=wt(g),b={feedback_id:m.feedback_id,file:m.file,moved:m.moved,triaged_at:m.triaged_at,message:m.moved?`Feedback moved from ${c||"intent-scope"} to ${l||"intent-scope"} as ${m.feedback_id}.`:`Feedback ${u} placement confirmed.`};return r(lZ(b,y))}case"haiku_feedback_reject":{let o=Be(t,$me,"haiku_feedback_reject");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.reason;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};if(!u)return{content:[{type:"text",text:"Error: feedback_id is required"}],isError:!0};if(!l)return{content:[{type:"text",text:"Error: reason is required when rejecting feedback"}],isError:!0};let d=ea(a,c||void 0);if(d)return d;let f=bc(a,c,u);if(!f)return{content:[{type:"text",text:c?`Error: feedback '${u}' not found in stage '${c}'`:`Error: feedback '${u}' not found (intent-scope)`}],isError:!0};if(f.data.author_type==="human")return{content:[{type:"text",text:"Error: agents cannot reject human-authored feedback. Only the user can reject it via the review UI."}],isError:!0};let p=np(f.data);if(p==="closed"||p==="rejected")return{content:[{type:"text",text:`Error: feedback '${u}' is already '${p}' -- cannot reject again`}],isError:!0};let h={...f.data,rejected_at:new Date().toISOString()};bZ(h);let m=`${f.body} --- **Rejection reason:** ${l}`;In(f.path,Ct.default.stringify(` ${m} -`,h));let g=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);a3(a,c||"intent",u);let y=null;try{let S=ne(pe(a),"intent.md"),E=ue(S)?re(Pe(S,"utf8")).data.studio??"":"";E&&(y=H0(a,()=>Kye(a,E)))}catch{}let b={feedback_id:u,status:"rejected",next_subagent_dispatch_block:y,message:y?`Feedback ${u} rejected: ${l}. Relay the \`next_subagent_dispatch_block\` field verbatim as your final message to start the next finding.`:`Feedback ${u} rejected: ${l}. No further undispatched findings \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`};return r(uZ(b,g))}case"haiku_feedback_list":{let o=Be(t,$me,"haiku_feedback_list");if(o)return o;let a=t.intent,c=t.stage||void 0,u=typeof t.closed=="boolean"?t.closed:void 0;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};let l=ne(pe(a),"intent.md");if(!ue(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=ea(a,c??d1(a));if(d)return d;let f;if(c)f=[c];else{let g=ne(pe(a),"stages");ue(g)?f=an(g).filter(y=>ue(ne(g,y))):f=[]}let p=g=>g.status==="closed"||g.status==="rejected"||g.status==="addressed"||g.status==="answered",h=[];for(let g of f){let y=Us(a,g);for(let b of y){if(u!==void 0&&p(b)!==u)continue;let S={feedback_id:b.id,file:b.file,title:b.title,status:b.status,origin:b.origin,author:b.author,author_type:b.author_type,created_at:b.created_at,visit:b.visit,source_ref:b.source_ref,closed_by:b.closed_by,closed_at:b.closed_at,bolt:b.bolt,triaged_at:b.triaged_at};c||(S.stage=g),h.push(S)}}if(!c){let g=Us(a,"");for(let y of g)u!==void 0&&p(y)!==u||h.push({feedback_id:y.id,file:y.file,title:y.title,status:y.status,origin:y.origin,author:y.author,author_type:y.author_type,created_at:y.created_at,visit:y.visit,source_ref:y.source_ref,closed_by:y.closed_by,closed_at:y.closed_at,bolt:y.bolt,triaged_at:y.triaged_at,stage:null})}let m={intent:a,stage:c||null,count:h.length,items:h};return r(m)}case"haiku_feedback_read":{let o=Be(t,ege,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=c?lo(a,c):lo(a,"");if(!ue(l))return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback directory at ${l}.`},{isError:!0});let d=null,f=null,p=null,h=u.match(/^(?:FB-)?(\d+)$/i),m=h?Number.parseInt(h[1],10):null;for(let S of an(l).filter(E=>E.endsWith(".md"))){let E=ne(l,S),{data:_,body:T}=re(Pe(E,"utf8")),R=S.match(/^(\d+)-/),A=R?Number.parseInt(R[1],10):null;if(_.id===u||_.feedback_id===u||m!==null&&A===m){d=E,f=_,p=T;break}}if(!d||!p)return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${l}.`},{isError:!0});Qye(d);let g=typeof f?.title=="string"?f.title:"",y=p.match(/^#\s+(.+)$/m),b=g||(y?y[1].trim():u);return r({title:b,body:p})}case"haiku_feedback_write":{let o=Be(t,tge,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.body??"",d=uv(l);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty FB bodies cannot pass the assessor's spec-match check."},{isError:!0});let f=ea(a,c||void 0);if(f)return f;let p=bc(a,c,u);if(!p){let b=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${b}.`},{isError:!0})}let h=p.path,m=p.data,g=m.status||"pending";if(!mb()&&(g==="closed"||g==="rejected"||g==="non_actionable"))return r({error:"lifecycle_violation",current_status:g,message:`Cannot rewrite feedback '${u}' \u2014 status is '${g}'. Per the forward-only lifecycle rule, closed, rejected, and non-actionable feedback are terminal and immutable. To raise a related concern, file a NEW feedback via haiku_feedback.`},{isError:!0});let y=Array.isArray(m.iterations)?m.iterations:[];return!mb()&&y.length>0?r({error:"body_locked",feedback_id:u,iterations:y.length,message:`Feedback '${u}' body is locked \u2014 its fix-hat loop has started (${y.length} iteration(s) on record). The body is the immutable finding; record your per-hat work in the handoff \`message\` on haiku_feedback_advance_hat (or haiku_feedback_reject_hat), which the engine threads into the next hat's dispatch. Do not rewrite the body.`},{isError:!0}):(In(h,Ct.default.stringify(`${d.trimEnd()} -`,m)),ci(a),Ke("haiku.feedback.body_rewritten",{intent:a,stage:c||"",feedback_id:u}),r({ok:!0,feedback_id:u,stage:c||null,intent:a,message:`Rewrote body of feedback '${u}' (status preserved as '${g}').`}))}case"haiku_feedback_advance_hat":{let o=Be(t,ige,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=ea(a,c||void 0);if(l)return l;let d=bc(a,c,u);if(!d){let H=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${H}.`},{isError:!0})}let f=d.path,p=d.data,h=d.body,m=np(p);if(m==="closed"||m==="rejected"||m==="non_actionable")return r({error:"lifecycle_violation",current_status:m,message:`Cannot advance hat on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g=[],y=ne(pe(a),"intent.md"),b="software";if(ue(y)){let{data:H}=re(Pe(y,"utf8"));b=H.studio||"software"}if(c){let H=$i(b,c);H?.data?.fix_hats&&Array.isArray(H.data.fix_hats)&&(g=H.data.fix_hats)}else g=jf(b);if(g.length===0)return r({error:"no_fix_hats",stage:c||null,scope:c?"stage":"intent",message:c?`Stage '${c}' has no \`fix_hats:\` configured in STAGE.md. The fix-loop FB-as-unit model requires a fix_hats sequence.`:`Studio '${b}' has no fix-hats (looked in the global \`plugin/fix-hats/\` and studio \`plugin/studios/${b}/fix-hats/\`). Intent-completion fix loops require at least one fix-hat.`},{isError:!0});let S=p.hat||"",E=p.bolt||1,T=(S?g.indexOf(S):-1)+1,R=g[T];if(!R)return r({error:"no_hat_to_advance",message:`FB '${u}' is at hat '${S}', already the last hat in fix_hats. The FB should have closed on the prior advance call. State may be inconsistent.`},{isError:!0});let A=T===g.length-1;if((typeof t.resolution=="string"?t.resolution:"")==="non_actionable"){let H=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!H)return r({error:"reason_required",feedback_id:u,message:`Closing FB '${u}' as non_actionable requires a \`message\` (or \`reply\`) explaining why it has no code fix \u2014 the answer to the question, why it's out of scope, or why the target is immutable/superseded.`},{isError:!0});let j=Array.isArray(p.iterations)?p.iterations.slice():[],Y=j[j.length-1],ee={bolt:E,hat:R,completed_at:En(),result:"closed",message:H};Y&&(Y.result===null||Y.result===void 0)&&Y.hat===R?j[j.length-1]={...Y,...ee}:j.push(ee);let se={...p,hat:R,iterations:j,status:"non_actionable",resolution:"non_actionable",closed_at:En(),closed_by:`${R}:non_actionable`,closure_reply:{text:H,at:En()},closure_reply_unread:!0};In(f,Ct.default.stringify(`${h.trimEnd()} -`,se)),ci(a),a3(a,c||"intent",u),wt(`haiku: close fix-chain ${u} (non-actionable)`),Ke("haiku.feedback.non_actionable",{intent:a,stage:c||"",feedback_id:u,hat:R});let Ae=Kye(a,b);return n(JSON.stringify({action:"feedback_non_actionable",feedback_id:u,resolution:"non_actionable",hat:R,next_subagent_dispatch_block:Ae,message:`FB '${u}' closed as non-actionable by '${R}': ${H}`+(Ae?" Spawn the relayed block below.":` Call haiku_run_next { intent: "${a}" }.`)}))}let k=typeof t.reply=="string"?t.reply.trim():"",P=typeof t.message=="string"?t.message.trim():"";if(A&&!k)return r({error:"reply_required",feedback_id:u,calling_hat:R,message:`FB '${u}' is about to close on terminal hat '${R}'. Pass a \`reply\` arg with a short plain-language explanation of what was done so the requester can see how the issue was addressed.`},{isError:!0});let N=Array.isArray(p.iterations)?p.iterations.slice():[],C=N[N.length-1];C&&(C.result===null||C.result===void 0)&&C.hat===R?N[N.length-1]={...C,completed_at:En(),result:A?"closed":"advanced",...P?{message:P}:{}}:N.push({bolt:E,hat:R,completed_at:En(),result:A?"closed":"advanced",...P?{message:P}:{}});let G=m,W,$;A?(G="closed",W=`fix-loop:${u}:bolt-${E}`,$=En()):G="addressed";let q=R,Q={...p,hat:q,iterations:N,status:G};W&&(Q.closed_by=W),$&&(Q.closed_at=$),A&&k&&(Q.closure_reply={text:k,at:En()},Q.closure_reply_unread=!0),In(f,Ct.default.stringify(`${h.trimEnd()} -`,Q)),ci(a),A&&ASt({slug:a,stage:c??void 0,feedbackId:u,fbFm:p}),Ke(A?"haiku.feedback.closed":"haiku.feedback.hat_advanced",{intent:a,stage:c||"",feedback_id:u,hat:q});let B=c||"intent";if(!A)lpe(a,B,u);else{hZ(`haiku: close fix-chain ${u}`);let H=jb(a,B,()=>VD(a,B,u));if(!H.success){let j=Sg(a,B,u);return H.isConflict?r({action:"integrate_fix_chains",intent:a,scope:B,items:[{feedback_id:u}],feedback_id:u,worktree:j,conflict_paths:H.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`} produced conflicts on ${(H.conflictFiles??[]).length} file(s): ${(H.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${j}) \u2014 resolve each conflicted file there (the engine can't; they contain code), \`git add\` the resolved files, \`git commit\` to complete the in-worktree merge, then call \`haiku_run_next { intent: "${a}" }\`. The engine forward-merges the resolved chain into ${B==="intent"?"intent main":"the stage branch"} on that tick.`},{isError:!0}):r({action:"merge_failed",intent:a,scope:B,feedback_id:u,worktree:j,error:H.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`}. Git output: ${H.message}. Commit any engine-owned dirty files on the base branch, then call \`haiku_run_next { intent: "${a}" }\` so the engine retries the merge.`},{isError:!0})}}let F=A?null:g[T+1],V=null,U="",M=(()=>{let H=ne(pe(a),"intent.md");if(!ue(H))return"";let j=(0,Ct.default)(Pe(H,"utf8")).data;return typeof j.studio=="string"?j.studio:""})();if(!A&&F&&M)try{let H=T+1===g.length-1;V=HI({slug:a,studio:M,feedbackId:u,stage:c??"",hat:F,terminal:H}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(A&&M)try{V=H0(a,()=>Kye(a,M)),V&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!V){let H=!1;try{let j=pe(a),Y=[ne(j,"feedback")],ee=ne(j,"stages");if(ue(ee))for(let se of an(ee))Y.push(ne(ee,se,"feedback"));e:for(let se of Y)if(ue(se))for(let Le of an(se).filter(Ae=>Ae.endsWith(".md"))){let Ae=Pe(ne(se,Le),"utf8"),z=(0,Ct.default)(Ae).data;if(typeof z.status=="string"&&(z.status==="closed"||z.status==="rejected")||z.closed_at||z.rejected_at)continue;let J=Array.isArray(z.iterations)?z.iterations:[],oe=J[J.length-1];if(oe&&(oe.result===null||oe.result===void 0)){H=!0;break e}}}catch{}U=H?"Wave still has in-flight fix-chains; no replenishment available right now. Terminate \u2014 sibling subagents will fire their own breadcrumbs when they advance.":A?`FB '${u}' closed by ${W} after '${R}' (last hat in fix_hats sequence ${T+1}/${g.length}). Wave done \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`:`FB '${u}': '${R}' (${T+1}/${g.length}) finished. Wave done \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`}return r({ok:!0,feedback_id:u,stage:c||null,calling_hat:R,next_dispatched_hat:F,closed:A,bolt:E,next_subagent_dispatch_block:V,message:U})}case"haiku_feedback_reject_hat":{let o=Be(t,sge,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.message||"";if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let d=ea(a,c||void 0);if(d)return d;let f=bc(a,c,u);if(!f){let V=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",feedback_id:u,message:`No feedback file matching ${u} in ${V}.`},{isError:!0})}let p=f.path,h=f.data,m=f.body,g=np(h);if(g==="closed"||g==="rejected")return r({error:"lifecycle_violation",current_status:g,message:`Cannot reject hat on FB '${u}' \u2014 already ${g} (terminal).`},{isError:!0});let y=[],b=ne(pe(a),"intent.md"),S="software";if(ue(b)){let{data:V}=re(Pe(b,"utf8"));S=V.studio||"software"}if(c){let V=$i(S,c);V?.data?.fix_hats&&Array.isArray(V.data.fix_hats)&&(y=V.data.fix_hats)}else y=jf(S);if(y.length===0)return r({error:"no_fix_hats",stage:c||null,scope:c?"stage":"intent",message:c?`Stage '${c}' has no \`fix_hats:\` configured.`:`Studio '${S}' has no fix-hats (looked in the global \`plugin/fix-hats/\` and studio \`plugin/studios/${S}/fix-hats/\`).`},{isError:!0});let E=h.hat||"",_=h.bolt||1,R=(E?y.indexOf(E):-1)+1,A=y[R];if(!A)return r({error:"no_hat_to_reject",message:`FB '${u}' has no hat to reject \u2014 already past the last hat in fix_hats (storage at '${E}').`},{isError:!0});let x=R-2,k=x>=0?y[x]:"",P=c?Du(S,c):YK(S),{targetHat:N}=Vpe(y,A,{roleOf:V=>P[V]?.role}),C=Array.isArray(h.iterations)?h.iterations.slice():[],L=0;for(let V of C){if(!V||typeof V!="object")continue;let U=V;U.hat===A&&U.result==="rejected"&&L++}if(L>=1){let V=c?`stage: "${c}", `:"";return r({error:"fix_loop_no_progress",calling_hat:A,prior_rejections_by_same_hat:L,message:`Hat '${A}' has already rejected FB '${u}' ${L} time(s) in prior bolt(s); this would be rejection #${L+1}. Bouncing back to '${N}' to re-run cannot produce a different outcome \u2014 the rejecter has signaled the same impasse twice. Two paths forward: - - If this finding has no actionable fix (cosmetic, valid observation that needs no code change, upstream-driven drift the engine will resolve on the next sign cycle): call \`haiku_feedback_reject { intent: "${a}", ${V}feedback_id: ${u}, reason: "" }\` to terminally close. - If the finding is real but this hat chain cannot resolve it: file an upstream FB describing the impasse for human review.`},{isError:!0})}let G=C[C.length-1];G&&(G.result===null||G.result===void 0)&&G.hat===A?C[C.length-1]={...G,completed_at:En(),result:"rejected",message:l||"(no message provided)"}:C.push({bolt:_,hat:A,completed_at:En(),result:"rejected",message:l||"(no message provided)"});let $,q;if(Go.modelSelection){let V=h.model,U=qfe(V);V&&U&&($=V,q=U)}let Q={...h,hat:k,bolt:_+1,iterations:C,...q?{model:q,model_original:h.model_original??$}:{}};In(p,Ct.default.stringify(`${m.trimEnd()} -`,Q)),$&&q&&console.error(`[haiku] feedback model escalated: ${$} \u2192 ${q} (FB ${u} hat rejected, bolt ${_+1})`),ci(a),Ke("haiku.feedback.hat_rejected",{intent:a,stage:c||"",feedback_id:u,hat:A,new_bolt:String(_+1),...q?{model_escalated_from:$,model_escalated_to:q}:{}});let B=null;if(S)try{B=HI({slug:a,studio:S,feedbackId:u,stage:c??"",hat:N,terminal:!1})}catch{}let F=B?`FB '${u}' hat '${A}' rejected \u2014 re-running '${N}' (bolt ${_+1}). Relay the \`next_subagent_dispatch_block\` field verbatim as your final message.`:`FB '${u}' hat '${A}' rejected \u2014 bounced to '${N}' (bolt ${_+1}). Call \`haiku_run_next { intent: "${a}" }\` to re-dispatch it.`;return r({ok:!0,feedback_id:u,rejecting_hat:A,next_dispatched_hat:N,new_bolt:_+1,handoff:l,next_subagent_dispatch_block:B,message:F})}case"haiku_feedback_set_targets":{let o=Be(t,nge,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.target_unit===null||t.target_unit===void 0?null:t.target_unit,d=t.target_invalidates??[],f=typeof t.reasoning=="string"?t.reasoning.trim():"",p=ea(a,c||void 0);if(p)return p;let h=bc(a,c,u);if(!h)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let m=h.data.targets&&typeof h.data.targets=="object"?h.data.targets:null,g=m&&typeof m.unit<"u"&&m.unit!==null?m.unit:null,y=m&&Array.isArray(m.invalidates)?m.invalidates:[];if(g!==null||y.length>0)return r({error:"targets_already_set",feedback_id:u,current_target_unit:g,current_target_invalidates:y,message:`Feedback '${u}' already has classified targets \u2014 once set, immutable per the FB-as-unit architecture. To retarget, reject the FB (haiku_feedback_reject) and create a new one with the correct targets.`},{isError:!0});let b=h.data.status||"pending";if(b==="closed"||b==="rejected")return r({error:"lifecycle_violation",current_status:b,message:`Cannot classify FB '${u}' \u2014 already ${b} (terminal).`},{isError:!0});let S={unit:l,invalidates:d};f&&(S.reasoning=f);let E={...h.data,targets:S};return In(h.path,Ct.default.stringify(` +`,h));let g=wt(c?`feedback: reject ${u} in ${c}`:`feedback: reject ${u} (intent-scope)`);u3(a,c||"intent",u);let y=null;try{let S=ne(pe(a),"intent.md"),E=ue(S)?re(Pe(S,"utf8")).data.studio??"":"";E&&(y=q0(a,()=>Yye(a,E)))}catch{}let b={feedback_id:u,status:"rejected",next_subagent_dispatch_block:y,message:y?`Feedback ${u} rejected: ${l}. Relay the \`next_subagent_dispatch_block\` field verbatim as your final message to start the next finding.`:`Feedback ${u} rejected: ${l}. No further undispatched findings \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`};return r(lZ(b,g))}case"haiku_feedback_list":{let o=Be(t,ege,"haiku_feedback_list");if(o)return o;let a=t.intent,c=t.stage||void 0,u=typeof t.closed=="boolean"?t.closed:void 0;if(!a)return{content:[{type:"text",text:"Error: intent is required"}],isError:!0};let l=ne(pe(a),"intent.md");if(!ue(l))return{content:[{type:"text",text:`Error: intent '${a}' not found`}],isError:!0};let d=ea(a,c??p1(a));if(d)return d;let f;if(c)f=[c];else{let g=ne(pe(a),"stages");ue(g)?f=an(g).filter(y=>ue(ne(g,y))):f=[]}let p=g=>g.status==="closed"||g.status==="rejected"||g.status==="addressed"||g.status==="answered",h=[];for(let g of f){let y=Us(a,g);for(let b of y){if(u!==void 0&&p(b)!==u)continue;let S={feedback_id:b.id,file:b.file,title:b.title,status:b.status,origin:b.origin,author:b.author,author_type:b.author_type,created_at:b.created_at,visit:b.visit,source_ref:b.source_ref,closed_by:b.closed_by,closed_at:b.closed_at,bolt:b.bolt,triaged_at:b.triaged_at};c||(S.stage=g),h.push(S)}}if(!c){let g=Us(a,"");for(let y of g)u!==void 0&&p(y)!==u||h.push({feedback_id:y.id,file:y.file,title:y.title,status:y.status,origin:y.origin,author:y.author,author_type:y.author_type,created_at:y.created_at,visit:y.visit,source_ref:y.source_ref,closed_by:y.closed_by,closed_at:y.closed_at,bolt:y.bolt,triaged_at:y.triaged_at,stage:null})}let m={intent:a,stage:c||null,count:h.length,items:h};return r(m)}case"haiku_feedback_read":{let o=Be(t,tge,"haiku_feedback_read");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=c?lo(a,c):lo(a,"");if(!ue(l))return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback directory at ${l}.`},{isError:!0});let d=null,f=null,p=null,h=u.match(/^(?:FB-)?(\d+)$/i),m=h?Number.parseInt(h[1],10):null;for(let S of an(l).filter(E=>E.endsWith(".md"))){let E=ne(l,S),{data:_,body:T}=re(Pe(E,"utf8")),R=S.match(/^(\d+)-/),A=R?Number.parseInt(R[1],10):null;if(_.id===u||_.feedback_id===u||m!==null&&A===m){d=E,f=_,p=T;break}}if(!d||!p)return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${l}.`},{isError:!0});$ye(d);let g=typeof f?.title=="string"?f.title:"",y=p.match(/^#\s+(.+)$/m),b=g||(y?y[1].trim():u);return r({title:b,body:p})}case"haiku_feedback_write":{let o=Be(t,nge,"haiku_feedback_write");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.body??"",d=uv(l);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});if(!d||d.trim().length===0)return r({error:"empty_body",message:"body is required and must be substantive. Empty FB bodies cannot pass the assessor's spec-match check."},{isError:!0});let f=ea(a,c||void 0);if(f)return f;let p=bc(a,c,u);if(!p){let b=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${b}.`},{isError:!0})}let h=p.path,m=p.data,g=m.status||"pending";if(!mb()&&(g==="closed"||g==="rejected"||g==="non_actionable"))return r({error:"lifecycle_violation",current_status:g,message:`Cannot rewrite feedback '${u}' \u2014 status is '${g}'. Per the forward-only lifecycle rule, closed, rejected, and non-actionable feedback are terminal and immutable. To raise a related concern, file a NEW feedback via haiku_feedback.`},{isError:!0});let y=Array.isArray(m.iterations)?m.iterations:[];return!mb()&&y.length>0?r({error:"body_locked",feedback_id:u,iterations:y.length,message:`Feedback '${u}' body is locked \u2014 its fix-hat loop has started (${y.length} iteration(s) on record). The body is the immutable finding; record your per-hat work in the handoff \`message\` on haiku_feedback_advance_hat (or haiku_feedback_reject_hat), which the engine threads into the next hat's dispatch. Do not rewrite the body.`},{isError:!0}):(In(h,Ct.default.stringify(`${d.trimEnd()} +`,m)),ci(a),Ke("haiku.feedback.body_rewritten",{intent:a,stage:c||"",feedback_id:u}),r({ok:!0,feedback_id:u,stage:c||null,intent:a,message:`Rewrote body of feedback '${u}' (status preserved as '${g}').`}))}case"haiku_feedback_advance_hat":{let o=Be(t,sge,"haiku_feedback_advance_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id);if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let l=ea(a,c||void 0);if(l)return l;let d=bc(a,c,u);if(!d){let H=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",intent:a,stage:c||null,feedback_id:u,message:`No feedback file matching ${u} in ${H}.`},{isError:!0})}let f=d.path,p=d.data,h=d.body,m=np(p);if(m==="closed"||m==="rejected"||m==="non_actionable")return r({error:"lifecycle_violation",current_status:m,message:`Cannot advance hat on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g=[],y=ne(pe(a),"intent.md"),b="software";if(ue(y)){let{data:H}=re(Pe(y,"utf8"));b=H.studio||"software"}if(c){let H=$i(b,c);H?.data?.fix_hats&&Array.isArray(H.data.fix_hats)&&(g=H.data.fix_hats)}else g=jf(b);if(g.length===0)return r({error:"no_fix_hats",stage:c||null,scope:c?"stage":"intent",message:c?`Stage '${c}' has no \`fix_hats:\` configured in STAGE.md. The fix-loop FB-as-unit model requires a fix_hats sequence.`:`Studio '${b}' has no fix-hats (looked in the global \`plugin/fix-hats/\` and studio \`plugin/studios/${b}/fix-hats/\`). Intent-completion fix loops require at least one fix-hat.`},{isError:!0});let S=p.hat||"",E=p.bolt||1,T=(S?g.indexOf(S):-1)+1,R=g[T];if(!R)return r({error:"no_hat_to_advance",message:`FB '${u}' is at hat '${S}', already the last hat in fix_hats. The FB should have closed on the prior advance call. State may be inconsistent.`},{isError:!0});let A=T===g.length-1;if((typeof t.resolution=="string"?t.resolution:"")==="non_actionable"){let H=(typeof t.reply=="string"?t.reply.trim():"")||(typeof t.message=="string"?t.message.trim():"");if(!H)return r({error:"reason_required",feedback_id:u,message:`Closing FB '${u}' as non_actionable requires a \`message\` (or \`reply\`) explaining why it has no code fix \u2014 the answer to the question, why it's out of scope, or why the target is immutable/superseded.`},{isError:!0});let j=Array.isArray(p.iterations)?p.iterations.slice():[],Y=j[j.length-1],ee={bolt:E,hat:R,completed_at:En(),result:"closed",message:H};Y&&(Y.result===null||Y.result===void 0)&&Y.hat===R?j[j.length-1]={...Y,...ee}:j.push(ee);let se={...p,hat:R,iterations:j,status:"non_actionable",resolution:"non_actionable",closed_at:En(),closed_by:`${R}:non_actionable`,closure_reply:{text:H,at:En()},closure_reply_unread:!0};In(f,Ct.default.stringify(`${h.trimEnd()} +`,se)),ci(a),u3(a,c||"intent",u),wt(`haiku: close fix-chain ${u} (non-actionable)`),Ke("haiku.feedback.non_actionable",{intent:a,stage:c||"",feedback_id:u,hat:R});let Ae=Yye(a,b);return n(JSON.stringify({action:"feedback_non_actionable",feedback_id:u,resolution:"non_actionable",hat:R,next_subagent_dispatch_block:Ae,message:`FB '${u}' closed as non-actionable by '${R}': ${H}`+(Ae?" Spawn the relayed block below.":` Call haiku_run_next { intent: "${a}" }.`)}))}let k=typeof t.reply=="string"?t.reply.trim():"",P=typeof t.message=="string"?t.message.trim():"";if(A&&!k)return r({error:"reply_required",feedback_id:u,calling_hat:R,message:`FB '${u}' is about to close on terminal hat '${R}'. Pass a \`reply\` arg with a short plain-language explanation of what was done so the requester can see how the issue was addressed.`},{isError:!0});let N=Array.isArray(p.iterations)?p.iterations.slice():[],C=N[N.length-1];C&&(C.result===null||C.result===void 0)&&C.hat===R?N[N.length-1]={...C,completed_at:En(),result:A?"closed":"advanced",...P?{message:P}:{}}:N.push({bolt:E,hat:R,completed_at:En(),result:A?"closed":"advanced",...P?{message:P}:{}});let G=m,W,$;A?(G="closed",W=`fix-loop:${u}:bolt-${E}`,$=En()):G="addressed";let q=R,Q={...p,hat:q,iterations:N,status:G};W&&(Q.closed_by=W),$&&(Q.closed_at=$),A&&k&&(Q.closure_reply={text:k,at:En()},Q.closure_reply_unread=!0),In(f,Ct.default.stringify(`${h.trimEnd()} +`,Q)),ci(a),A&&ASt({slug:a,stage:c??void 0,feedbackId:u,fbFm:p}),Ke(A?"haiku.feedback.closed":"haiku.feedback.hat_advanced",{intent:a,stage:c||"",feedback_id:u,hat:q});let B=c||"intent";if(!A)dpe(a,B,u);else{mZ(`haiku: close fix-chain ${u}`);let H=jb(a,B,()=>WD(a,B,u));if(!H.success){let j=Sg(a,B,u);return H.isConflict?r({action:"integrate_fix_chains",intent:a,scope:B,items:[{feedback_id:u}],feedback_id:u,worktree:j,conflict_paths:H.conflictFiles??[],message:`Fix-chain ${u} closed, but landing its code on ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`} produced conflicts on ${(H.conflictFiles??[]).length} file(s): ${(H.conflictFiles??[]).join(", ")}. The merge is left in-progress in the fix-chain worktree (${j}) \u2014 resolve each conflicted file there (the engine can't; they contain code), \`git add\` the resolved files, \`git commit\` to complete the in-worktree merge, then call \`haiku_run_next { intent: "${a}" }\`. The engine forward-merges the resolved chain into ${B==="intent"?"intent main":"the stage branch"} on that tick.`},{isError:!0}):r({action:"merge_failed",intent:a,scope:B,feedback_id:u,worktree:j,error:H.message,message:`Fix-chain ${u} closed, but the engine could not merge its code into ${B==="intent"?`haiku/${a}/main`:`stage '${B}'`}. Git output: ${H.message}. Commit any engine-owned dirty files on the base branch, then call \`haiku_run_next { intent: "${a}" }\` so the engine retries the merge.`},{isError:!0})}}let F=A?null:g[T+1],V=null,U="",M=(()=>{let H=ne(pe(a),"intent.md");if(!ue(H))return"";let j=(0,Ct.default)(Pe(H,"utf8")).data;return typeof j.studio=="string"?j.studio:""})();if(!A&&F&&M)try{let H=T+1===g.length-1;V=HI({slug:a,studio:M,feedbackId:u,stage:c??"",hat:F,terminal:H}),U="Relay the `next_subagent_dispatch_block` field verbatim as your final message."}catch{}else if(A&&M)try{V=q0(a,()=>Yye(a,M)),V&&(U="Relay the `next_subagent_dispatch_block` field verbatim as your final message.")}catch{}if(!V){let H=!1;try{let j=pe(a),Y=[ne(j,"feedback")],ee=ne(j,"stages");if(ue(ee))for(let se of an(ee))Y.push(ne(ee,se,"feedback"));e:for(let se of Y)if(ue(se))for(let Le of an(se).filter(Ae=>Ae.endsWith(".md"))){let Ae=Pe(ne(se,Le),"utf8"),z=(0,Ct.default)(Ae).data;if(typeof z.status=="string"&&(z.status==="closed"||z.status==="rejected")||z.closed_at||z.rejected_at)continue;let J=Array.isArray(z.iterations)?z.iterations:[],oe=J[J.length-1];if(oe&&(oe.result===null||oe.result===void 0)){H=!0;break e}}}catch{}U=H?"Wave still has in-flight fix-chains; no replenishment available right now. Terminate \u2014 sibling subagents will fire their own breadcrumbs when they advance.":A?`FB '${u}' closed by ${W} after '${R}' (last hat in fix_hats sequence ${T+1}/${g.length}). Wave done \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`:`FB '${u}': '${R}' (${T+1}/${g.length}) finished. Wave done \u2014 call \`haiku_run_next { intent: "${a}" }\` for the next instruction.`}return r({ok:!0,feedback_id:u,stage:c||null,calling_hat:R,next_dispatched_hat:F,closed:A,bolt:E,next_subagent_dispatch_block:V,message:U})}case"haiku_feedback_reject_hat":{let o=Be(t,oge,"haiku_feedback_reject_hat");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.message||"";if(!a||!u)return r({error:"missing_args",message:"intent and feedback_id are required."},{isError:!0});let d=ea(a,c||void 0);if(d)return d;let f=bc(a,c,u);if(!f){let V=c?lo(a,c):lo(a,"");return r({error:"feedback_not_found",feedback_id:u,message:`No feedback file matching ${u} in ${V}.`},{isError:!0})}let p=f.path,h=f.data,m=f.body,g=np(h);if(g==="closed"||g==="rejected")return r({error:"lifecycle_violation",current_status:g,message:`Cannot reject hat on FB '${u}' \u2014 already ${g} (terminal).`},{isError:!0});let y=[],b=ne(pe(a),"intent.md"),S="software";if(ue(b)){let{data:V}=re(Pe(b,"utf8"));S=V.studio||"software"}if(c){let V=$i(S,c);V?.data?.fix_hats&&Array.isArray(V.data.fix_hats)&&(y=V.data.fix_hats)}else y=jf(S);if(y.length===0)return r({error:"no_fix_hats",stage:c||null,scope:c?"stage":"intent",message:c?`Stage '${c}' has no \`fix_hats:\` configured.`:`Studio '${S}' has no fix-hats (looked in the global \`plugin/fix-hats/\` and studio \`plugin/studios/${S}/fix-hats/\`).`},{isError:!0});let E=h.hat||"",_=h.bolt||1,R=(E?y.indexOf(E):-1)+1,A=y[R];if(!A)return r({error:"no_hat_to_reject",message:`FB '${u}' has no hat to reject \u2014 already past the last hat in fix_hats (storage at '${E}').`},{isError:!0});let x=R-2,k=x>=0?y[x]:"",P=c?Du(S,c):JK(S),{targetHat:N}=Wpe(y,A,{roleOf:V=>P[V]?.role}),C=Array.isArray(h.iterations)?h.iterations.slice():[],L=0;for(let V of C){if(!V||typeof V!="object")continue;let U=V;U.hat===A&&U.result==="rejected"&&L++}if(L>=1){let V=c?`stage: "${c}", `:"";return r({error:"fix_loop_no_progress",calling_hat:A,prior_rejections_by_same_hat:L,message:`Hat '${A}' has already rejected FB '${u}' ${L} time(s) in prior bolt(s); this would be rejection #${L+1}. Bouncing back to '${N}' to re-run cannot produce a different outcome \u2014 the rejecter has signaled the same impasse twice. Two paths forward: + - If this finding has no actionable fix (cosmetic, valid observation that needs no code change, upstream-driven drift the engine will resolve on the next sign cycle): call \`haiku_feedback_reject { intent: "${a}", ${V}feedback_id: ${u}, reason: "" }\` to terminally close. - If the finding is real but this hat chain cannot resolve it: file an upstream FB describing the impasse for human review.`},{isError:!0})}let G=C[C.length-1];G&&(G.result===null||G.result===void 0)&&G.hat===A?C[C.length-1]={...G,completed_at:En(),result:"rejected",message:l||"(no message provided)"}:C.push({bolt:_,hat:A,completed_at:En(),result:"rejected",message:l||"(no message provided)"});let $,q;if(Go.modelSelection){let V=h.model,U=Bfe(V);V&&U&&($=V,q=U)}let Q={...h,hat:k,bolt:_+1,iterations:C,...q?{model:q,model_original:h.model_original??$}:{}};In(p,Ct.default.stringify(`${m.trimEnd()} +`,Q)),$&&q&&console.error(`[haiku] feedback model escalated: ${$} \u2192 ${q} (FB ${u} hat rejected, bolt ${_+1})`),ci(a),Ke("haiku.feedback.hat_rejected",{intent:a,stage:c||"",feedback_id:u,hat:A,new_bolt:String(_+1),...q?{model_escalated_from:$,model_escalated_to:q}:{}});let B=null;if(S)try{B=HI({slug:a,studio:S,feedbackId:u,stage:c??"",hat:N,terminal:!1})}catch{}let F=B?`FB '${u}' hat '${A}' rejected \u2014 re-running '${N}' (bolt ${_+1}). Relay the \`next_subagent_dispatch_block\` field verbatim as your final message.`:`FB '${u}' hat '${A}' rejected \u2014 bounced to '${N}' (bolt ${_+1}). Call \`haiku_run_next { intent: "${a}" }\` to re-dispatch it.`;return r({ok:!0,feedback_id:u,rejecting_hat:A,next_dispatched_hat:N,new_bolt:_+1,handoff:l,next_subagent_dispatch_block:B,message:F})}case"haiku_feedback_set_targets":{let o=Be(t,rge,"haiku_feedback_set_targets");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.target_unit===null||t.target_unit===void 0?null:t.target_unit,d=t.target_invalidates??[],f=typeof t.reasoning=="string"?t.reasoning.trim():"",p=ea(a,c||void 0);if(p)return p;let h=bc(a,c,u);if(!h)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let m=h.data.targets&&typeof h.data.targets=="object"?h.data.targets:null,g=m&&typeof m.unit<"u"&&m.unit!==null?m.unit:null,y=m&&Array.isArray(m.invalidates)?m.invalidates:[];if(g!==null||y.length>0)return r({error:"targets_already_set",feedback_id:u,current_target_unit:g,current_target_invalidates:y,message:`Feedback '${u}' already has classified targets \u2014 once set, immutable per the FB-as-unit architecture. To retarget, reject the FB (haiku_feedback_reject) and create a new one with the correct targets.`},{isError:!0});let b=h.data.status||"pending";if(b==="closed"||b==="rejected")return r({error:"lifecycle_violation",current_status:b,message:`Cannot classify FB '${u}' \u2014 already ${b} (terminal).`},{isError:!0});let S={unit:l,invalidates:d};f&&(S.reasoning=f);let E={...h.data,targets:S};return In(h.path,Ct.default.stringify(` ${h.body} -`,E)),ci(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=Be(t,rge,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=ea(a,c||void 0);if(f)return f;let p=bc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g={...p.data,severity:l};return In(p.path,Ct.default.stringify(` +`,E)),ci(a),r({ok:!0,feedback_id:u,target_unit:l,target_invalidates:d,reasoning:f||null,message:`Feedback '${u}' classified: target_unit=${l??"null (intent-scope)"}, invalidates=[${d.join(", ")}]${f?` \u2014 ${f}`:""}.`})}case"haiku_feedback_set_severity":{let o=Be(t,ige,"haiku_feedback_set_severity");if(o)return o;let a=t.intent,c=t.stage||"",u=zd(t.feedback_id),l=t.severity,d=typeof t.reasoning=="string"?t.reasoning.trim():"",f=ea(a,c||void 0);if(f)return f;let p=bc(a,c,u);if(!p)return r({error:"feedback_not_found",feedback_id:u,message:c?`Feedback '${u}' not found in stage '${c}'.`:`Feedback '${u}' not found (intent-scope).`},{isError:!0});let h=typeof p.data.severity=="string"?p.data.severity:null;if(h!==null)return r({error:"severity_already_set",feedback_id:u,current_severity:h,message:`Feedback '${u}' already has severity '${h}' \u2014 once set, immutable per the FB-as-unit architecture. To re-rank, reject the FB (haiku_feedback_reject) and create a new one.`},{isError:!0});let m=p.data.status||"pending";if(m==="closed"||m==="rejected")return r({error:"lifecycle_violation",current_status:m,message:`Cannot set severity on FB '${u}' \u2014 already ${m} (terminal).`},{isError:!0});let g={...p.data,severity:l};return In(p.path,Ct.default.stringify(` ${p.body} -`,g)),ci(a),r({ok:!0,feedback_id:u,severity:l,reasoning:d||null,message:`Feedback '${u}' severity set to '${l}'${d?` \u2014 ${d}`:""}.`})}case"haiku_version_info":{let o=Be(t,jL,"haiku_version_info");if(o)return o;let a=cd==="dev",c={mcp_version:cd,plugin_version:TS(),build_kind:a?"dev (source via bun/tsx)":"prod (compiled bundle)",runtime:`${process.release?.name??"node"} ${process.version}`,entry:process.argv[1]??""};return r(c)}default:return n(`Unknown tool: ${e}`)}}var obt,Ct,Zye,Jye,tSe,q3n,u1,Gd,Df,gv,fZ,i9n,o9n,a9n,Wye,$ye,bbt,S9n,qb,Dg,b9n,cv,E9n,ySe,Ge=v(()=>{"use strict";TD();obt=Re(G_(),1),Ct=Re(Kt(),1);Ci();jfe();Gpe();ept();ns();the();P3();Oa();NY();Eye();_ye();t1();KY();wSt();yr();q0();fb();a1();sh();c1();sZ();Kn();vl();vo();f_();bb();ji();Ia();ji();uo();Zye=10*1024,Jye=1024;tSe=80;q3n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;u1=null;Gd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Df=2,gv=5,fZ=3;i9n=new Set(["the","a","an","is","are","was","were","be","been","to","of","in","on","at","for","and","or","but","this","that","it","its","with","as","by","from","should","must","needs","need","has","have","not","no","we","you","i","if","then","than","there","here","when","which","what","does","do","did","can","will"]);o9n=.6;a9n=[/\b(?:use|extend)\s+(?:the\s+)?existing\s+`([A-Za-z_][\w.$]*)`\s+(?:in|from)\s+`([^`]+)`/gi,/\bextend\s+(?:the\s+)?`([A-Za-z_][\w.$]*)`\s+exported\s+from\s+`([^`]+)`/gi];Wye=null,$ye=null;bbt="feedback-assessor";S9n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],qb=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Dg=3,b9n=3,cv=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),E9n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);ySe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:F9,outputSchema:{type:"object",properties:{found:{type:"boolean",description:"True if the intent file exists."},field:{type:"string",description:"Echoed field name from the request."},value:{description:"Field value as parsed from frontmatter. Null when missing or when the intent doesn't exist."}},required:["found","field"]}},{name:"haiku_intent_list",description:"List all intents in the workspace",inputSchema:j9,outputSchema:{type:"object",properties:{intents:{type:"array",items:{type:"object",properties:{slug:{type:"string"},title:{type:"string"},status:{type:"string"},studio:{type:"string"},archived:{type:"boolean"}},required:["slug"]}}},required:["intents"]}},{name:"haiku_stage_get",description:"Read a field from a stage's state",inputSchema:sY,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Stage state field value. v3 reads it from per-stage state.json; v4 derives stage state from per-unit `iterations[]` + branch-merge state. Null when missing."}},required:["found","field"]}},{name:"haiku_unit_get",description:`Read ONE agent-authorable/corrective frontmatter field on a unit. The READ counterpart to haiku_unit_set's corrective exemption: haiku_unit_set replaces the WHOLE \`quality_gates\` (or \`outputs\`) array, so to repair a single wrong gate command/path on an active unit without clobbering the others you must first read the current array, modify one entry, then write it back. Readable fields: ${Mb.join(", ")}. FSM-driven fields (${Jf.join(", ")}) return \`unit_field_engine_only\` \u2014 engine bookkeeping stays hidden; for the unit body/title use haiku_unit_read.`,inputSchema:gY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},found:{type:"boolean",description:"True when the field is present (non-null) on the unit."},value:{type:["string","array","number","boolean","null","object"],description:"The field's current native value (array for quality_gates/outputs/inputs/etc.), or null when absent."},error:{type:"string"}}}},{name:"haiku_unit_set",description:`Set a field in a unit's frontmatter. \`value\` MUST match the field's declared type in the unit FM schema \u2014 array for \`inputs:\` / \`outputs:\` / \`depends_on:\` / \`closes:\` / \`quality_gates:\`, string for \`title:\` / \`model:\`. The handler validates per-field at runtime and rejects mismatches with \`field_type_mismatch\` so type drift never lands in YAML. Agent-authorable fields: ${Mb.join(", ")}. FSM-driven (rejected): ${Jf.join(", ")}. CORRECTIVE EXEMPTION: \`outputs\` and \`quality_gates\` stay editable AFTER the unit has started/completed (every other field is forward-only-immutable once active). This is the sanctioned path to repair a broken gate command (wrong workspace name, bad path, wrong invocation) or a missed output without re-opening the unit \u2014 it changes how the unit is verified, NOT what it produced, so it is a safe correction, not a workflow-control rewrite. Use it directly to fix gate typos.`,inputSchema:mY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"},current_status:{type:"string",description:"On lifecycle_violation: the unit's current immutable status."},field:{type:"string"}}}},{name:"haiku_unit_list",description:"List all units in a stage with their status",inputSchema:yY,outputSchema:{type:"object",properties:{units:{type:"array",items:{type:"object",properties:{name:{type:"string"},status:{type:"string",description:"pending | active | completed"},bolt:{type:"number"},hat:{type:"string"},model:{type:["string","null"]}},required:["name"]}}},required:["units"]}},{name:"haiku_unit_start",description:"Mark a unit as started. The system resolves the stage and first hat internally.",inputSchema:SY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},stage:{type:"string"},first_hat:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_unit_advance_hat",description:"Advance a unit to the next hat in the sequence. When called on the last hat, auto-completes the unit and progresses the workflow engine. The system resolves the current hat, next hat, and stage internally.",inputSchema:bY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},current_hat:{type:"string",description:"The hat that just finished."},next_hat:{type:["string","null"],description:"The hat to dispatch next, or null when the unit auto-completed."},completed:{type:"boolean",description:"True if this advance closed the unit (last hat in the sequence)."},bolt:{type:"number"},message:{type:"string"},error:{type:"string",description:"On failure: stable named error code."}},required:["message"]}},{name:"haiku_unit_reject_hat",description:"Reject the current hat's work \u2014 moves back to the previous hat and increments bolt. Pass `reason` so the unit's iteration history records why the hat was rejected (what failed, which criterion wasn't met).",inputSchema:EY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},stage:{type:"string"},prev_hat:{type:"string",description:"The prior hat the chain bounced back to (re-dispatched next)."},bolt:{type:"number"},reason:{type:["string","null"]},outputs_present:{type:"boolean"},outputs_files_present:{type:"array",items:{type:"string"}},outputs_files_missing:{type:"array",items:{type:"string"}},next_subagent_dispatch_block:{type:["string","null"],description:"The bounced-to prior hat's dispatch block \u2014 relay it verbatim to re-run that hat. Null when the wave has no more work."},message:{type:"string"},error:{type:"string"}},required:["message"]}},{name:"haiku_unit_read",description:"Read a unit's body content (and title). Returns ONLY the body and title \u2014 frontmatter is workflow engine-internal and not exposed to agents per the architecture's FM-is-workflow engine-only rule. Use this when a hat needs to read another unit's substance (sibling references, prior-stage knowledge artifacts) without interpreting FM. Returns { title, body } as JSON.",inputSchema:_Y,outputSchema:{type:"object",properties:{title:{type:"string",description:"Unit title from frontmatter (or derived from first H1)."},body:{type:"string",description:"Full markdown body. Frontmatter is intentionally not exposed (workflow engine-only per architecture \xA71.1)."},error:{type:"string",description:"On not-found / wrong-stage."}}}},{name:"haiku_read_hat",description:"Read a hat mandate body, resolved through the project\u2192plugin override cascade and with frontmatter stripped (engine bookkeeping; not for the agent). Dispatch prompts instruct the agent to call this for its role's behavior contract instead of carrying an inlined copy. Pass `fix: true` from a fix-loop dispatch to prefer the fix-scoped mandate (`stages//fix-hats/.md`, falling back to the production `hats/.md`). Returns { hat, body } as JSON.",inputSchema:aY,outputSchema:{type:"object",properties:{hat:{type:"string"},body:{type:"string",description:"Hat mandate markdown body (frontmatter stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_stage",description:"Read a stage's STAGE.md body, resolved through the project\u2192plugin override cascade and with frontmatter stripped. Dispatch prompts instruct the agent to call this for the stage scope instead of carrying an inlined copy. Returns { stage, body } as JSON.",inputSchema:cY,outputSchema:{type:"object",properties:{stage:{type:"string"},body:{type:"string",description:"STAGE.md markdown body (frontmatter stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_review_agent",description:"Read a review/approval agent's mandate body, resolved through the project\u2192plugin override cascade and with frontmatter stripped. Pass `stage` for a stage-scope review/approval agent; OMIT `stage` for an intent-completion review agent (studio's intent-review-agents/). Engine-built-in roles (spec/continuity/cross-stage-consistency) are NOT files \u2014 they're generated and not readable here. Returns { role, body } as JSON.",inputSchema:lY,outputSchema:{type:"object",properties:{role:{type:"string"},body:{type:"string",description:"Mandate body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_intent",description:"Read the intent's body (`.haiku/intents//intent.md`), frontmatter stripped. The workflow hook guards this file against generic Read, so this is how a dispatched agent gets the intent goal. Returns { intent, body } as JSON.",inputSchema:uY,outputSchema:{type:"object",properties:{intent:{type:"string"},body:{type:"string",description:"Intent body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_discovery",description:"Read a discovery template body, resolved through the project\u2192plugin override cascade and with frontmatter stripped (the `location:`/`tool:` FM is engine bookkeeping). The body is the content guide + quality signals the discovery agent authors its artifact from. Returns { template, body } as JSON.",inputSchema:dY,outputSchema:{type:"object",properties:{template:{type:"string"},body:{type:"string",description:"Template body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_phase",description:"Read a stage's phase override body (`phases/.md`), resolved through the project\u2192plugin override cascade and with frontmatter stripped. Returns { phase, body } as JSON; `error: phase_not_found` when the stage ships no override for that phase.",inputSchema:fY,outputSchema:{type:"object",properties:{phase:{type:"string"},body:{type:"string",description:"Phase override body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_output",description:"Read an output template body (`outputs/.md`), resolved through the project\u2192plugin override cascade and with frontmatter stripped. The body is the artifact-shape guide the producing hat follows. Returns { name, body } as JSON.",inputSchema:pY,outputSchema:{type:"object",properties:{name:{type:"string"},body:{type:"string",description:"Output template body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_unit_delete",description:"Delete a unit. ONLY permitted when the unit's status is `pending`. Active and completed units are immutable per the forward-only lifecycle rule \u2014 once a unit has informed downstream work, deleting it would silently invalidate that work. Returns an error naming the rule when called against a non-pending unit.",inputSchema:TY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"},current_status:{type:"string"},required_status:{type:"string",const:"pending"}}}},{name:"haiku_unit_write",description:`Create or fully rewrite a unit file. This is the ONLY agent-callable path for authoring units \u2014 generic file Write/Edit on \`units/*.md\` is denied at the hook layer. The body is freeform markdown; the optional \`frontmatter\` is validated against the FM schema (depends_on entries must be strings with no self-reference and no cycles among declared units; etc.). Lifecycle: only allowed when the unit doesn't exist yet OR when its status is \`pending\`. Active and completed units are immutable. +`,g)),ci(a),r({ok:!0,feedback_id:u,severity:l,reasoning:d||null,message:`Feedback '${u}' severity set to '${l}'${d?` \u2014 ${d}`:""}.`})}case"haiku_version_info":{let o=Be(t,HL,"haiku_version_info");if(o)return o;let a=cd==="dev",c={mcp_version:cd,plugin_version:TS(),build_kind:a?"dev (source via bun/tsx)":"prod (compiled bundle)",runtime:`${process.release?.name??"node"} ${process.version}`,entry:process.argv[1]??""};return r(c)}default:return n(`Unknown tool: ${e}`)}}var obt,Ct,Jye,Xye,nSe,q3n,d1,Gd,Df,gv,pZ,i9n,o9n,a9n,Kye,eSe,bbt,S9n,qb,Dg,b9n,cv,E9n,SSe,Ge=v(()=>{"use strict";vD();obt=Re(G_(),1),Ct=Re(Kt(),1);Ci();Hfe();Vpe();tpt();ns();nhe();C3();Oa();VL();_ye();Tye();r1();YY();wSt();yr();B0();fb();u1();sh();l1();oZ();Kn();vl();vo();f_();bb();ji();Ia();ji();uo();Jye=10*1024,Xye=1024;nSe=80;q3n=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;d1=null;Gd=class extends Error{constructor(t){super(t),this.name="IntentScopeTickPersistError"}};Df=2,gv=5,pZ=3;i9n=new Set(["the","a","an","is","are","was","were","be","been","to","of","in","on","at","for","and","or","but","this","that","it","its","with","as","by","from","should","must","needs","need","has","have","not","no","we","you","i","if","then","than","there","here","when","which","what","does","do","did","can","will"]);o9n=.6;a9n=[/\b(?:use|extend)\s+(?:the\s+)?existing\s+`([A-Za-z_][\w.$]*)`\s+(?:in|from)\s+`([^`]+)`/gi,/\bextend\s+(?:the\s+)?`([A-Za-z_][\w.$]*)`\s+exported\s+from\s+`([^`]+)`/gi];Kye=null,eSe=null;bbt="feedback-assessor";S9n=["adversarial-review","studio-review","external-pr","external-mr","user-visual","user-chat","user-question","user-revisit","agent"],qb=["pending","fixing","addressed","answered","non_actionable","closed","rejected"];Dg=3,b9n=3,cv=(()=>{let e=process.env.HAIKU_MAX_CONCURRENT_SUBAGENTS,t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:10})(),E9n=new Set(["user-visual","user-chat","user-question","user-revisit","external-pr","external-mr"]);SSe=[{name:"haiku_intent_get",description:"Read a field from an intent's frontmatter",inputSchema:H9,outputSchema:{type:"object",properties:{found:{type:"boolean",description:"True if the intent file exists."},field:{type:"string",description:"Echoed field name from the request."},value:{description:"Field value as parsed from frontmatter. Null when missing or when the intent doesn't exist."}},required:["found","field"]}},{name:"haiku_intent_list",description:"List all intents in the workspace",inputSchema:q9,outputSchema:{type:"object",properties:{intents:{type:"array",items:{type:"object",properties:{slug:{type:"string"},title:{type:"string"},status:{type:"string"},studio:{type:"string"},archived:{type:"boolean"}},required:["slug"]}}},required:["intents"]}},{name:"haiku_stage_get",description:"Read a field from a stage's state",inputSchema:aY,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Stage state field value. v3 reads it from per-stage state.json; v4 derives stage state from per-unit `iterations[]` + branch-merge state. Null when missing."}},required:["found","field"]}},{name:"haiku_unit_get",description:`Read ONE agent-authorable/corrective frontmatter field on a unit. The READ counterpart to haiku_unit_set's corrective exemption: haiku_unit_set replaces the WHOLE \`quality_gates\` (or \`outputs\`) array, so to repair a single wrong gate command/path on an active unit without clobbering the others you must first read the current array, modify one entry, then write it back. Readable fields: ${Mb.join(", ")}. FSM-driven fields (${Jf.join(", ")}) return \`unit_field_engine_only\` \u2014 engine bookkeeping stays hidden; for the unit body/title use haiku_unit_read.`,inputSchema:SY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},found:{type:"boolean",description:"True when the field is present (non-null) on the unit."},value:{type:["string","array","number","boolean","null","object"],description:"The field's current native value (array for quality_gates/outputs/inputs/etc.), or null when absent."},error:{type:"string"}}}},{name:"haiku_unit_set",description:`Set a field in a unit's frontmatter. \`value\` MUST match the field's declared type in the unit FM schema \u2014 array for \`inputs:\` / \`outputs:\` / \`depends_on:\` / \`closes:\` / \`quality_gates:\`, string for \`title:\` / \`model:\`. The handler validates per-field at runtime and rejects mismatches with \`field_type_mismatch\` so type drift never lands in YAML. Agent-authorable fields: ${Mb.join(", ")}. FSM-driven (rejected): ${Jf.join(", ")}. CORRECTIVE EXEMPTION: \`outputs\` and \`quality_gates\` stay editable AFTER the unit has started/completed (every other field is forward-only-immutable once active). This is the sanctioned path to repair a broken gate command (wrong workspace name, bad path, wrong invocation) or a missed output without re-opening the unit \u2014 it changes how the unit is verified, NOT what it produced, so it is a safe correction, not a workflow-control rewrite. Use it directly to fix gate typos.`,inputSchema:yY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"},current_status:{type:"string",description:"On lifecycle_violation: the unit's current immutable status."},field:{type:"string"}}}},{name:"haiku_unit_list",description:"List all units in a stage with their status",inputSchema:bY,outputSchema:{type:"object",properties:{units:{type:"array",items:{type:"object",properties:{name:{type:"string"},status:{type:"string",description:"pending | active | completed"},bolt:{type:"number"},hat:{type:"string"},model:{type:["string","null"]}},required:["name"]}}},required:["units"]}},{name:"haiku_unit_start",description:"Mark a unit as started. The system resolves the stage and first hat internally.",inputSchema:EY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},stage:{type:"string"},first_hat:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_unit_advance_hat",description:"Advance a unit to the next hat in the sequence. When called on the last hat, auto-completes the unit and progresses the workflow engine. The system resolves the current hat, next hat, and stage internally.",inputSchema:_Y,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},current_hat:{type:"string",description:"The hat that just finished."},next_hat:{type:["string","null"],description:"The hat to dispatch next, or null when the unit auto-completed."},completed:{type:"boolean",description:"True if this advance closed the unit (last hat in the sequence)."},bolt:{type:"number"},message:{type:"string"},error:{type:"string",description:"On failure: stable named error code."}},required:["message"]}},{name:"haiku_unit_reject_hat",description:"Reject the current hat's work \u2014 moves back to the previous hat and increments bolt. Pass `reason` so the unit's iteration history records why the hat was rejected (what failed, which criterion wasn't met).",inputSchema:TY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},unit:{type:"string"},stage:{type:"string"},prev_hat:{type:"string",description:"The prior hat the chain bounced back to (re-dispatched next)."},bolt:{type:"number"},reason:{type:["string","null"]},outputs_present:{type:"boolean"},outputs_files_present:{type:"array",items:{type:"string"}},outputs_files_missing:{type:"array",items:{type:"string"}},next_subagent_dispatch_block:{type:["string","null"],description:"The bounced-to prior hat's dispatch block \u2014 relay it verbatim to re-run that hat. Null when the wave has no more work."},message:{type:"string"},error:{type:"string"}},required:["message"]}},{name:"haiku_unit_read",description:"Read a unit's body content (and title). Returns ONLY the body and title \u2014 frontmatter is workflow engine-internal and not exposed to agents per the architecture's FM-is-workflow engine-only rule. Use this when a hat needs to read another unit's substance (sibling references, prior-stage knowledge artifacts) without interpreting FM. Returns { title, body } as JSON.",inputSchema:vY,outputSchema:{type:"object",properties:{title:{type:"string",description:"Unit title from frontmatter (or derived from first H1)."},body:{type:"string",description:"Full markdown body. Frontmatter is intentionally not exposed (workflow engine-only per architecture \xA71.1)."},error:{type:"string",description:"On not-found / wrong-stage."}}}},{name:"haiku_read_hat",description:"Read a hat mandate body, resolved through the project\u2192plugin override cascade and with frontmatter stripped (engine bookkeeping; not for the agent). Dispatch prompts instruct the agent to call this for its role's behavior contract instead of carrying an inlined copy. Pass `fix: true` from a fix-loop dispatch to prefer the fix-scoped mandate (`stages//fix-hats/.md`, falling back to the production `hats/.md`). Returns { hat, body } as JSON.",inputSchema:uY,outputSchema:{type:"object",properties:{hat:{type:"string"},body:{type:"string",description:"Hat mandate markdown body (frontmatter stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_stage",description:"Read a stage's STAGE.md body, resolved through the project\u2192plugin override cascade and with frontmatter stripped. Dispatch prompts instruct the agent to call this for the stage scope instead of carrying an inlined copy. Returns { stage, body } as JSON.",inputSchema:lY,outputSchema:{type:"object",properties:{stage:{type:"string"},body:{type:"string",description:"STAGE.md markdown body (frontmatter stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_review_agent",description:"Read a review/approval agent's mandate body, resolved through the project\u2192plugin override cascade and with frontmatter stripped. Pass `stage` for a stage-scope review/approval agent; OMIT `stage` for an intent-completion review agent (studio's intent-review-agents/). Engine-built-in roles (spec/continuity/cross-stage-consistency) are NOT files \u2014 they're generated and not readable here. Returns { role, body } as JSON.",inputSchema:fY,outputSchema:{type:"object",properties:{role:{type:"string"},body:{type:"string",description:"Mandate body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_intent",description:"Read the intent's body (`.haiku/intents//intent.md`), frontmatter stripped. The workflow hook guards this file against generic Read, so this is how a dispatched agent gets the intent goal. Returns { intent, body } as JSON.",inputSchema:dY,outputSchema:{type:"object",properties:{intent:{type:"string"},body:{type:"string",description:"Intent body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_discovery",description:"Read a discovery template body, resolved through the project\u2192plugin override cascade and with frontmatter stripped (the `location:`/`tool:` FM is engine bookkeeping). The body is the content guide + quality signals the discovery agent authors its artifact from. Returns { template, body } as JSON.",inputSchema:pY,outputSchema:{type:"object",properties:{template:{type:"string"},body:{type:"string",description:"Template body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_phase",description:"Read a stage's phase override body (`phases/.md`), resolved through the project\u2192plugin override cascade and with frontmatter stripped. Returns { phase, body } as JSON; `error: phase_not_found` when the stage ships no override for that phase.",inputSchema:hY,outputSchema:{type:"object",properties:{phase:{type:"string"},body:{type:"string",description:"Phase override body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_read_output",description:"Read an output template body (`outputs/.md`), resolved through the project\u2192plugin override cascade and with frontmatter stripped. The body is the artifact-shape guide the producing hat follows. Returns { name, body } as JSON.",inputSchema:mY,outputSchema:{type:"object",properties:{name:{type:"string"},body:{type:"string",description:"Output template body (FM stripped)."},error:{type:"string",description:"On not-found."}}}},{name:"haiku_unit_delete",description:"Delete a unit. ONLY permitted when the unit's status is `pending`. Active and completed units are immutable per the forward-only lifecycle rule \u2014 once a unit has informed downstream work, deleting it would silently invalidate that work. Returns an error naming the rule when called against a non-pending unit.",inputSchema:RY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"},current_status:{type:"string"},required_status:{type:"string",const:"pending"}}}},{name:"haiku_unit_write",description:`Create or fully rewrite a unit file. This is the ONLY agent-callable path for authoring units \u2014 generic file Write/Edit on \`units/*.md\` is denied at the hook layer. The body is freeform markdown; the optional \`frontmatter\` is validated against the FM schema (depends_on entries must be strings with no self-reference and no cycles among declared units; etc.). Lifecycle: only allowed when the unit doesn't exist yet OR when its status is \`pending\`. Active and completed units are immutable. Allowed FM fields (agent-authorable): ${Mb.join(", ")} \u2014 plus any stage-specific fields the per-stage \`phases/ELABORATION.md\` documents. -Forbidden FM fields (workflow-driven, mutating these returns \`fsm_field_forbidden\`): ${Jf.join(", ")}.`,inputSchema:vY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},created:{type:"boolean",description:"True if a new file was created; false if an existing pending unit was rewritten."},unit:{type:"string",description:"Unit name."},stage:{type:"string",description:"Stage name."},intent:{type:"string",description:"Intent slug."},message:{type:"string"},error:{type:"string",description:"Stable error code: `frontmatter_validation_failed`, `dag_cycle_detected`, `lifecycle_violation`, `missing_args`, etc."},errors:{type:"array",items:{type:"string"},description:"Per-rule error messages from the FM validator (e.g. `fsm_field_forbidden: '...'`)."},cycle_nodes:{type:"array",items:{type:"string"},description:"On `dag_cycle_detected`: the unit names involved in the cycle."},current_status:{type:"string",description:"On `lifecycle_violation`: the current immutable status (active/completed)."}},required:["message"]}},{name:"haiku_reconciliation_acknowledge",description:"Acknowledge upstream-artifact divergences detected by the pre-elaboration reconciliation gate. Records the decision in the stage's decision_log so the gate falls through on the next tick. Use this when the divergence is intentional (e.g. the upstream artifacts describe different surfaces that genuinely need different names). When the divergence is unintentional, edit the upstream artifacts to reconcile and re-run haiku_run_next instead \u2014 do NOT acknowledge to skip the work.",inputSchema:q9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},stage:{type:"string"},rationale:{type:"string"},error:{type:"string"}}}},{name:"haiku_decision_record",description:"Record an elaboration decision in the stage's decision_log, OR declare 'no architectural decisions in scope' for the stage. Used in collaborative-mode stages to track meaningful human-AI knowledge-unification moments instead of counting interaction turns. Each entry is an architectural choice the user picked between options, OR a choice the agent made and surfaced for veto-style approval. Padding questions don't count.",inputSchema:B9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_knowledge_list",description:"List knowledge artifacts for an intent",inputSchema:z9,outputSchema:{type:"object",properties:{files:{type:"array",items:{type:"string"}}},required:["files"]}},{name:"haiku_knowledge_read",description:"Read a knowledge artifact",inputSchema:G9,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},content:{type:"string",description:"Raw markdown body."}},required:["found","name","content"]}},{name:"haiku_skill_list",description:"List all Claude Code skills (slash commands) installed in the user's environment \u2014 plugin root, project-local (.claude/skills/), and global (~/.claude/plugins/*/skills/). The elaborator calls this to annotate units with `applicable_skills:` frontmatter; hat subagent prompts surface those skills automatically.",inputSchema:FL,outputSchema:{type:"object",properties:{skills:{type:"array",items:{type:"object",properties:{slug:{type:"string",description:"Skill slug \u2014 the identifier used in `applicable_skills:` frontmatter (no leading `/`)."},name:{type:"string"},description:{type:"string"},source:{type:"string",enum:["plugin","project","global"]}},required:["slug","name","description","source"]}}},required:["skills"]}},{name:"haiku_studio_list",description:"List all available studios with their description, stages, and category. Project-level studios (.haiku/studios/) override built-in ones on name collision.",inputSchema:FL,outputSchema:{type:"object",properties:{studios:{type:"array",items:{type:"object",properties:{name:{type:"string"},slug:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string",enum:["project","plugin"]}},required:["name","slug"]}}},required:["studios"]}},{name:"haiku_studio_get",description:"Read a studio's STUDIO.md \u2014 returns frontmatter fields and body text. Resolves project-level override first, then built-in.",inputSchema:V9,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},slug:{type:"string"},aliases:{type:"array",items:{type:"string"}},dir:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string"},path:{type:"string"},studio_md:{type:"string"},body:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_studio_stage_get",description:"Read a stage's STAGE.md from a studio \u2014 returns frontmatter fields (hats, review, requires, produces) and body text. Resolves project-level override first, then built-in.",inputSchema:W9,outputSchema:{type:"object",properties:{found:{type:"boolean"},body:{type:"string"},studio:{type:"string"},studio_dir:{type:"string"},stage_md:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_settings_get",description:"Read a field from .haiku/settings.yml. Two top-level fields are load-bearing: `studio` (the lifecycle template name) and `providers.*` (configured external-system providers). Dot-paths like `providers.ticketing.type` work. Returns empty string if not set.",inputSchema:K9,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Field value \u2014 null when missing."}},required:["found","field"]}},{name:"haiku_settings_set",description:"Set a top-level field in .haiku/settings.yml. Validated against plugin/schemas/settings.schema.json. Pass `null` to delete a field. Use this instead of editing the file directly \u2014 Edit/Write/MultiEdit on .haiku/settings.yml is denied by the workflow-fields hook.",inputSchema:Y9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_intent_set",description:`Set a frontmatter field on an intent's intent.md. Validated against INTENT_FRONTMATTER_SCHEMA. Agent-authorable fields: ${XT.join(", ")} (note 'studio' is immutable post-creation). Engine-only fields (${QT.join(", ")}) are rejected \u2014 those are mutated by the workflow engine itself. Use this instead of editing intent.md directly \u2014 Edit/Write/MultiEdit on intent.md is denied by the workflow-fields hook.`,inputSchema:H9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_stage_set",description:"Set a field on stage state. v4: stage state.json is dead \u2014 status / phase / gate_outcome / etc. derive from per-unit FM and branch-merge state. This tool stays as a no-op-with-stable-error so legacy callers get a clean rejection. Agent calls return `stage_field_engine_only`.",inputSchema:oY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},stage:{type:"string"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_capacity",description:"Returns a capacity report grouped by studio \u2014 completed/active counts and median bolt counts per stage.",inputSchema:Z9,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Rendered capacity report as markdown text."},studio:{type:["string","null"],description:"Echoed studio filter when one was provided."}},required:["markdown"]}},{name:"haiku_zap",description:"Zero-ceremony single-task run through a stage's hat loop \u2014 stateless (no `.haiku/` files, no workflow tick). Resolves the studio + stage, reads STAGE.md + each hat body via the three-tier cascade, assigns plan/build/verify roles, and returns ready-to-run markdown: the resolved hat sequence, a ready-to-spawn subagent prompt per hat (stage scope + hat mandate + role instructions + the task), and the run/verify/commit procedure (preflight clean-tree check, sequential hat dispatch, PASS/FAIL verdict parsing, commit-only-on-PASS, retry cap of 2). On a bad studio/stage it returns `zap_studio_not_found` / `zap_stage_not_found` with the valid options. The agent follows the returned `message` verbatim and drives the sequential loop.",inputSchema:J9,outputSchema:{type:"object",properties:{message:{type:"string",description:"Markdown instructions the agent follows verbatim (resolved hats, per-hat subagent prompts, run/verify/commit procedure). Always present, including on error responses."},error:{type:"string",description:"Stable named error code (`zap_studio_not_found` / `zap_stage_not_found`) when resolution fails."},studio:{type:"string",description:"Echoed resolved studio slug (success or stage error)."},stage:{type:"string",description:"Echoed resolved stage name on success."},valid_studios:{type:"array",items:{type:"string"},description:"Available studio slugs (zap_studio_not_found path)."},valid_stages:{type:"array",items:{type:"string"},description:"The studio's stage list (zap_stage_not_found path)."}},required:["message"]}},{name:"haiku_review",description:"Runs a git diff against main/upstream and returns formatted pre-delivery code review instructions with diff, stats, review guidelines, and review-agent config.",inputSchema:X9,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_review_open",description:'Open an ad-hoc review pane in the browser for the active intent and BLOCK until the reviewer clicks Done or Request Changes (or the pane times out at 30min). The UI swaps Approve for Done/Close, shows an "Ad-hoc review" badge, and never mutates workflow engine state on its own. Return value is a concrete next-step instruction: on Done the tool returns "no changes requested"; on Request Changes it returns a nudge to call haiku_run_next so the durable feedback routes through the normal fix-loop / revisit path.',inputSchema:Q9,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_view",description:'Open a URL the caller can hand to the bundled `haiku-playwright` MCP for runtime verification, visual inspection, or any browser-driven check. Two modes. **Viewer**: tunneled URL pointing at the SPA\'s artifact-browser route \u2014 for inspecting a single rendered artifact. **Boot**: spawns the project\'s runnable stack and returns a localhost URL pointing at the primary process. Boot accepts either `command` (single-process app: `["uvicorn", "app:main"]`, `["bin/dev"]`, `["go", "run", "./cmd/server"]`) or `processes` (multi-process stack: api + frontend + db + worker, with `depends_on` order and `primary` naming the Playwright target). The engine allocates ephemeral ports, sets `PORT`/`HOST` env vars, and exposes `_PORT` + `_URL` to dependents for service discovery. Falls back to a `package.json` `dev`/`start` fast-path when neither `command` nor `processes` is supplied. Non-blocking \u2014 closes via `haiku_view_close` or the 30-minute session TTL; close kills the whole process group.',inputSchema:rY,outputSchema:{type:"object",properties:{session_id:{type:"string"},url:{type:"string"},mode:{type:"string",enum:["viewer","boot"]},intent:{type:"string"},stage:{type:["string","null"]},artifact:{type:["string","null"]},note:{type:"string"}},required:["session_id","url","mode","intent"]}},{name:"haiku_view_close",description:"Explicitly close a view session opened by `haiku_view`. Idempotent \u2014 closing an unknown or already-closed session returns success. Boot-mode sessions (when supported) also terminate the spawned dev server. Use this when the verifier or browsing flow is complete so the session releases its tunnel slot promptly instead of waiting for the standard TTL eviction.",inputSchema:iY,outputSchema:{type:"object",properties:{closed:{type:"boolean"},session_id:{type:"string"},was_view_session:{type:"boolean"}},required:["closed","session_id"]}},{name:"haiku_backlog",description:"Manage the backlog: list items, add new items, review items interactively, or promote items to intents.",inputSchema:$9,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Rendered backlog report as markdown text."},action:{type:"string",enum:["list","add","review","promote"]}},required:["markdown"]}},{name:"haiku_seed",description:"Manage seeds (future ideas): list by status, plant a new seed, or check planted seeds for trigger conditions.",inputSchema:eY,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_feedback",description:'Create a feedback item for an intent. Writes a markdown file with frontmatter tracking status, origin, and author. Omit `stage` to log an intent-scope finding (used by the studio-level pre-intent-completion review layer). To request a stage rewind from the agent side (planner blocked, upstream gap, etc.), pass `stage: ""` and `resolution: "stage_revisit"` \u2014 the next `haiku_run_next` will route the agent to that stage via the feedback walk (emits `start_feedback_hat` at the target stage; post-cursor branch switch moves the working tree there). Revisit is a property of run_next mechanics, not a separate verb. Pass `inline_anchor: { selected_text, paragraph, location, file_path? }` when the finding points at a specific span of an artifact \u2014 the SPA will scroll-and-flash the excerpt when the reviewer clicks the feedback card. Adversarial-review and studio-review hats should attach an anchor whenever they cite a specific line. If the user provides a file as context for this finding (a doc, a screenshot, a log, a path like `~/Downloads/notes.pdf`), read it and synthesize the relevant substance directly into `body` \u2014 NEVER store or reference the file path. An absolute path leaks the user\u2019s machine layout and the external file won\u2019t persist with the feedback; the body must stand on its own from its own text. The `inline_anchor.file_path` exception is an INTENT-relative artifact path the SPA resolves, not an external machine path.',inputSchema:R9,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"e.g. FB-01"},file:{type:"string",description:"Repo-relative path to the FB markdown file."},status:{type:"string"},message:{type:"string"},push_warning:{type:"string",description:"Set when the post-write git push failed."}}}},{name:"haiku_feedback_delete",description:"Delete a feedback file. Cannot delete pending items. Agents cannot delete human-authored items. Omit `stage` for intent-scope feedback.",inputSchema:k9,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},deleted:{type:"boolean"},message:{type:"string"}}}},{name:"haiku_feedback_move",description:'Triage placement for a feedback item. Pass `to_stage` equal to the source `stage` to confirm the FB belongs where it lives (sets `triaged_at` only). Pass a different `to_stage` to relocate it \u2014 the file moves to the target stage\'s feedback dir, gets renumbered to the next free FB-NN there, and `triaged_at` is set. Use "" for intent-scope (either source or target). Closed and rejected FBs are immutable; rejected with an error.',inputSchema:I9,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"FB-NN id in the target location (renumbered on move)."},file:{type:"string",description:"Repo-relative path to the FB file after the operation."},moved:{type:"boolean",description:"True when the file was relocated; false on confirm."},triaged_at:{type:"string"},message:{type:"string"}}}},{name:"haiku_feedback_reject",description:"Reject an agent-authored feedback item with a reason. Sets status to rejected and appends rejection reason to body. Omit `stage` for intent-scope feedback.",inputSchema:x9,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},status:{type:"string",const:"rejected"},message:{type:"string"}}}},{name:"haiku_feedback_list",description:"List feedback items with optional filtering. Omit stage to list across all stages.",inputSchema:O9,outputSchema:{type:"object",properties:{items:{type:"array",items:{type:"object",additionalProperties:!0}}},required:["items"]}},{name:"haiku_feedback_read",description:"Read a feedback file's body content (and title). Returns ONLY the body and title \u2014 frontmatter is workflow engine-internal and not exposed to agents per the architecture's FM-is-workflow engine-only rule. Use this when a fixer hat needs to read its own FB diagnosis or when a reviewer needs to read prior findings on the same artifact. Returns { title, body } as JSON. Omit `stage` to read an intent-scope FB.",inputSchema:P9,outputSchema:{type:"object",properties:{title:{type:"string"},body:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_write",description:`Update a feedback file's body content. This is the architecture-mandated path for fixer hats to populate the FB body with diagnosis (root cause, proposed action, file:line refs) per the FB-as-unit model. Generic Write/Edit on feedback/*.md is denied at the hook layer. Lifecycle: only pending or addressed (under-fix) FBs accept body rewrites. Closed and rejected FBs are immutable. +Forbidden FM fields (workflow-driven, mutating these returns \`fsm_field_forbidden\`): ${Jf.join(", ")}.`,inputSchema:AY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},created:{type:"boolean",description:"True if a new file was created; false if an existing pending unit was rewritten."},unit:{type:"string",description:"Unit name."},stage:{type:"string",description:"Stage name."},intent:{type:"string",description:"Intent slug."},message:{type:"string"},error:{type:"string",description:"Stable error code: `frontmatter_validation_failed`, `dag_cycle_detected`, `lifecycle_violation`, `missing_args`, etc."},errors:{type:"array",items:{type:"string"},description:"Per-rule error messages from the FM validator (e.g. `fsm_field_forbidden: '...'`)."},cycle_nodes:{type:"array",items:{type:"string"},description:"On `dag_cycle_detected`: the unit names involved in the cycle."},current_status:{type:"string",description:"On `lifecycle_violation`: the current immutable status (active/completed)."}},required:["message"]}},{name:"haiku_reconciliation_acknowledge",description:"Acknowledge upstream-artifact divergences detected by the pre-elaboration reconciliation gate. Records the decision in the stage's decision_log so the gate falls through on the next tick. Use this when the divergence is intentional (e.g. the upstream artifacts describe different surfaces that genuinely need different names). When the divergence is unintentional, edit the upstream artifacts to reconcile and re-run haiku_run_next instead \u2014 do NOT acknowledge to skip the work.",inputSchema:z9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},stage:{type:"string"},rationale:{type:"string"},error:{type:"string"}}}},{name:"haiku_decision_record",description:"Record an elaboration decision in the stage's decision_log, OR declare 'no architectural decisions in scope' for the stage. Used in collaborative-mode stages to track meaningful human-AI knowledge-unification moments instead of counting interaction turns. Each entry is an architectural choice the user picked between options, OR a choice the agent made and surfaced for veto-style approval. Padding questions don't count.",inputSchema:G9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_knowledge_list",description:"List knowledge artifacts for an intent",inputSchema:V9,outputSchema:{type:"object",properties:{files:{type:"array",items:{type:"string"}}},required:["files"]}},{name:"haiku_knowledge_read",description:"Read a knowledge artifact",inputSchema:W9,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},content:{type:"string",description:"Raw markdown body."}},required:["found","name","content"]}},{name:"haiku_skill_list",description:"List all Claude Code skills (slash commands) installed in the user's environment \u2014 plugin root, project-local (.claude/skills/), and global (~/.claude/plugins/*/skills/). The elaborator calls this to annotate units with `applicable_skills:` frontmatter; hat subagent prompts surface those skills automatically.",inputSchema:jL,outputSchema:{type:"object",properties:{skills:{type:"array",items:{type:"object",properties:{slug:{type:"string",description:"Skill slug \u2014 the identifier used in `applicable_skills:` frontmatter (no leading `/`)."},name:{type:"string"},description:{type:"string"},source:{type:"string",enum:["plugin","project","global"]}},required:["slug","name","description","source"]}}},required:["skills"]}},{name:"haiku_studio_list",description:"List all available studios with their description, stages, and category. Project-level studios (.haiku/studios/) override built-in ones on name collision.",inputSchema:jL,outputSchema:{type:"object",properties:{studios:{type:"array",items:{type:"object",properties:{name:{type:"string"},slug:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string",enum:["project","plugin"]}},required:["name","slug"]}}},required:["studios"]}},{name:"haiku_studio_get",description:"Read a studio's STUDIO.md \u2014 returns frontmatter fields and body text. Resolves project-level override first, then built-in.",inputSchema:K9,outputSchema:{type:"object",properties:{found:{type:"boolean"},name:{type:"string"},slug:{type:"string"},aliases:{type:"array",items:{type:"string"}},dir:{type:"string"},description:{type:"string"},category:{type:"string"},stages:{type:"array",items:{type:"string"}},source:{type:"string"},path:{type:"string"},studio_md:{type:"string"},body:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_studio_stage_get",description:"Read a stage's STAGE.md from a studio \u2014 returns frontmatter fields (hats, review, requires, produces) and body text. Resolves project-level override first, then built-in.",inputSchema:Y9,outputSchema:{type:"object",properties:{found:{type:"boolean"},body:{type:"string"},studio:{type:"string"},studio_dir:{type:"string"},stage_md:{type:"string"}},required:["found"],additionalProperties:!0}},{name:"haiku_settings_get",description:"Read a field from .haiku/settings.yml. Two top-level fields are load-bearing: `studio` (the lifecycle template name) and `providers.*` (configured external-system providers). Dot-paths like `providers.ticketing.type` work. Returns empty string if not set.",inputSchema:Z9,outputSchema:{type:"object",properties:{found:{type:"boolean"},field:{type:"string"},value:{description:"Field value \u2014 null when missing."}},required:["found","field"]}},{name:"haiku_settings_set",description:"Set a top-level field in .haiku/settings.yml. Validated against plugin/schemas/settings.schema.json. Pass `null` to delete a field. Use this instead of editing the file directly \u2014 Edit/Write/MultiEdit on .haiku/settings.yml is denied by the workflow-fields hook.",inputSchema:J9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_intent_set",description:`Set a frontmatter field on an intent's intent.md. Validated against INTENT_FRONTMATTER_SCHEMA. Agent-authorable fields: ${XT.join(", ")} (note 'studio' is immutable post-creation). Engine-only fields (${QT.join(", ")}) are rejected \u2014 those are mutated by the workflow engine itself. Use this instead of editing intent.md directly \u2014 Edit/Write/MultiEdit on intent.md is denied by the workflow-fields hook.`,inputSchema:B9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_stage_set",description:"Set a field on stage state. v4: stage state.json is dead \u2014 status / phase / gate_outcome / etc. derive from per-unit FM and branch-merge state. This tool stays as a no-op-with-stable-error so legacy callers get a clean rejection. Agent calls return `stage_field_engine_only`.",inputSchema:cY,outputSchema:{type:"object",properties:{ok:{type:"boolean"},intent:{type:"string"},stage:{type:"string"},field:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_capacity",description:"Returns a capacity report grouped by studio \u2014 completed/active counts and median bolt counts per stage.",inputSchema:X9,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Rendered capacity report as markdown text."},studio:{type:["string","null"],description:"Echoed studio filter when one was provided."}},required:["markdown"]}},{name:"haiku_zap",description:"Zero-ceremony single-task run through a stage's hat loop \u2014 stateless (no `.haiku/` files, no workflow tick). Resolves the studio + stage, reads STAGE.md + each hat body via the three-tier cascade, assigns plan/build/verify roles, and returns ready-to-run markdown: the resolved hat sequence, a ready-to-spawn subagent prompt per hat (stage scope + hat mandate + role instructions + the task), and the run/verify/commit procedure (preflight clean-tree check, sequential hat dispatch, PASS/FAIL verdict parsing, commit-only-on-PASS, retry cap of 2). On a bad studio/stage it returns `zap_studio_not_found` / `zap_stage_not_found` with the valid options. The agent follows the returned `message` verbatim and drives the sequential loop.",inputSchema:Q9,outputSchema:{type:"object",properties:{message:{type:"string",description:"Markdown instructions the agent follows verbatim (resolved hats, per-hat subagent prompts, run/verify/commit procedure). Always present, including on error responses."},error:{type:"string",description:"Stable named error code (`zap_studio_not_found` / `zap_stage_not_found`) when resolution fails."},studio:{type:"string",description:"Echoed resolved studio slug (success or stage error)."},stage:{type:"string",description:"Echoed resolved stage name on success."},valid_studios:{type:"array",items:{type:"string"},description:"Available studio slugs (zap_studio_not_found path)."},valid_stages:{type:"array",items:{type:"string"},description:"The studio's stage list (zap_stage_not_found path)."}},required:["message"]}},{name:"haiku_review",description:"Runs a git diff against main/upstream and returns formatted pre-delivery code review instructions with diff, stats, review guidelines, and review-agent config.",inputSchema:$9,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_review_open",description:'Open an ad-hoc review pane in the browser for the active intent and BLOCK until the reviewer clicks Done or Request Changes (or the pane times out at 30min). The UI swaps Approve for Done/Close, shows an "Ad-hoc review" badge, and never mutates workflow engine state on its own. Return value is a concrete next-step instruction: on Done the tool returns "no changes requested"; on Request Changes it returns a nudge to call haiku_run_next so the durable feedback routes through the normal fix-loop / revisit path.',inputSchema:eY,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_view",description:'Open a URL the caller can hand to the bundled `haiku-playwright` MCP for runtime verification, visual inspection, or any browser-driven check. Two modes. **Viewer**: tunneled URL pointing at the SPA\'s artifact-browser route \u2014 for inspecting a single rendered artifact. **Boot**: spawns the project\'s runnable stack and returns a localhost URL pointing at the primary process. Boot accepts either `command` (single-process app: `["uvicorn", "app:main"]`, `["bin/dev"]`, `["go", "run", "./cmd/server"]`) or `processes` (multi-process stack: api + frontend + db + worker, with `depends_on` order and `primary` naming the Playwright target). The engine allocates ephemeral ports, sets `PORT`/`HOST` env vars, and exposes `_PORT` + `_URL` to dependents for service discovery. Falls back to a `package.json` `dev`/`start` fast-path when neither `command` nor `processes` is supplied. Non-blocking \u2014 closes via `haiku_view_close` or the 30-minute session TTL; close kills the whole process group.',inputSchema:sY,outputSchema:{type:"object",properties:{session_id:{type:"string"},url:{type:"string"},mode:{type:"string",enum:["viewer","boot"]},intent:{type:"string"},stage:{type:["string","null"]},artifact:{type:["string","null"]},note:{type:"string"}},required:["session_id","url","mode","intent"]}},{name:"haiku_view_close",description:"Explicitly close a view session opened by `haiku_view`. Idempotent \u2014 closing an unknown or already-closed session returns success. Boot-mode sessions (when supported) also terminate the spawned dev server. Use this when the verifier or browsing flow is complete so the session releases its tunnel slot promptly instead of waiting for the standard TTL eviction.",inputSchema:oY,outputSchema:{type:"object",properties:{closed:{type:"boolean"},session_id:{type:"string"},was_view_session:{type:"boolean"}},required:["closed","session_id"]}},{name:"haiku_backlog",description:"Manage the backlog: list items, add new items, review items interactively, or promote items to intents.",inputSchema:tY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Rendered backlog report as markdown text."},action:{type:"string",enum:["list","add","review","promote"]}},required:["markdown"]}},{name:"haiku_seed",description:"Manage seeds (future ideas): list by status, plant a new seed, or check planted seeds for trigger conditions.",inputSchema:nY,outputSchema:{type:"object",properties:{message:{type:"string"}}}},{name:"haiku_feedback",description:'Create a feedback item for an intent. Writes a markdown file with frontmatter tracking status, origin, and author. Omit `stage` to log an intent-scope finding (used by the studio-level pre-intent-completion review layer). To request a stage rewind from the agent side (planner blocked, upstream gap, etc.), pass `stage: ""` and `resolution: "stage_revisit"` \u2014 the next `haiku_run_next` will route the agent to that stage via the feedback walk (emits `start_feedback_hat` at the target stage; post-cursor branch switch moves the working tree there). Revisit is a property of run_next mechanics, not a separate verb. Pass `inline_anchor: { selected_text, paragraph, location, file_path? }` when the finding points at a specific span of an artifact \u2014 the SPA will scroll-and-flash the excerpt when the reviewer clicks the feedback card. Adversarial-review and studio-review hats should attach an anchor whenever they cite a specific line. If the user provides a file as context for this finding (a doc, a screenshot, a log, a path like `~/Downloads/notes.pdf`), read it and synthesize the relevant substance directly into `body` \u2014 NEVER store or reference the file path. An absolute path leaks the user\u2019s machine layout and the external file won\u2019t persist with the feedback; the body must stand on its own from its own text. The `inline_anchor.file_path` exception is an INTENT-relative artifact path the SPA resolves, not an external machine path.',inputSchema:w9,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"e.g. FB-01"},file:{type:"string",description:"Repo-relative path to the FB markdown file."},status:{type:"string"},message:{type:"string"},push_warning:{type:"string",description:"Set when the post-write git push failed."}}}},{name:"haiku_feedback_delete",description:"Delete a feedback file. Cannot delete pending items. Agents cannot delete human-authored items. Omit `stage` for intent-scope feedback.",inputSchema:x9,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},deleted:{type:"boolean"},message:{type:"string"}}}},{name:"haiku_feedback_move",description:'Triage placement for a feedback item. Pass `to_stage` equal to the source `stage` to confirm the FB belongs where it lives (sets `triaged_at` only). Pass a different `to_stage` to relocate it \u2014 the file moves to the target stage\'s feedback dir, gets renumbered to the next free FB-NN there, and `triaged_at` is set. Use "" for intent-scope (either source or target). Closed and rejected FBs are immutable; rejected with an error.',inputSchema:O9,outputSchema:{type:"object",properties:{feedback_id:{type:"string",description:"FB-NN id in the target location (renumbered on move)."},file:{type:"string",description:"Repo-relative path to the FB file after the operation."},moved:{type:"boolean",description:"True when the file was relocated; false on confirm."},triaged_at:{type:"string"},message:{type:"string"}}}},{name:"haiku_feedback_reject",description:"Reject an agent-authored feedback item with a reason. Sets status to rejected and appends rejection reason to body. Omit `stage` for intent-scope feedback.",inputSchema:P9,outputSchema:{type:"object",properties:{feedback_id:{type:"string"},status:{type:"string",const:"rejected"},message:{type:"string"}}}},{name:"haiku_feedback_list",description:"List feedback items with optional filtering. Omit stage to list across all stages.",inputSchema:N9,outputSchema:{type:"object",properties:{items:{type:"array",items:{type:"object",additionalProperties:!0}}},required:["items"]}},{name:"haiku_feedback_read",description:"Read a feedback file's body content (and title). Returns ONLY the body and title \u2014 frontmatter is workflow engine-internal and not exposed to agents per the architecture's FM-is-workflow engine-only rule. Use this when a fixer hat needs to read its own FB diagnosis or when a reviewer needs to read prior findings on the same artifact. Returns { title, body } as JSON. Omit `stage` to read an intent-scope FB.",inputSchema:C9,outputSchema:{type:"object",properties:{title:{type:"string"},body:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_write",description:`Update a feedback file's body content. This is the architecture-mandated path for fixer hats to populate the FB body with diagnosis (root cause, proposed action, file:line refs) per the FB-as-unit model. Generic Write/Edit on feedback/*.md is denied at the hook layer. Lifecycle: only pending or addressed (under-fix) FBs accept body rewrites. Closed and rejected FBs are immutable. Frontmatter is workflow engine-controlled and cannot be set through this tool. For reference (when reading FB context): - \u2022 workflow-driven (mutated over the FB lifecycle): ${ML.join(", ")} - \u2022 Set at creation, immutable thereafter: ${DL.join(", ")} + \u2022 workflow-driven (mutated over the FB lifecycle): ${DL.join(", ")} + \u2022 Set at creation, immutable thereafter: ${LL.join(", ")} -Use haiku_feedback_update for status transitions and haiku_feedback_reject for rejections.`,inputSchema:N9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},stage:{type:["string","null"]},intent:{type:"string"},message:{type:"string"},error:{type:"string"},current_status:{type:"string"}}}},{name:"haiku_feedback_advance_hat",description:"Advance an FB to the next fix-hat. The response carries `next_subagent_dispatch_block` and a `message` \u2014 follow them.",inputSchema:D9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},stage:{type:["string","null"]},calling_hat:{type:"string"},next_dispatched_hat:{type:["string","null"]},closed:{type:"boolean"},bolt:{type:"number"},next_subagent_dispatch_block:{type:["string","null"]},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_reject_hat",description:"Reject the current fix-hat's work on an FB \u2014 moves back to the previous hat and increments the FB's bolt counter. Pass `reason` so the FB's iteration history records why the hat was rejected. Mirrors haiku_unit_reject_hat for FBs.",inputSchema:L9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},rejecting_hat:{type:"string"},next_dispatched_hat:{type:["string","null"]},new_bolt:{type:"number"},reason:{type:"string"},next_subagent_dispatch_block:{type:["string","null"],description:"The bounced-to prior hat's dispatch block on the SAME FB \u2014 relay it verbatim to re-run that hat. Null when it can't be built."},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_set_targets",description:"Classify a user-authored feedback's targets \u2014 set `target_unit` (which unit this counter-signals) and `target_invalidates` (which approval roles get cleared on closure). Called by the `classifier` fix-hat as the FIRST hat in a stage's `fix_hats:` chain when the FB was filed without targets (e.g. via the SPA, where the human can't classify). Refuses to overwrite an FB that already has classified targets \u2014 once set, immutable per the FB-as-unit architecture.",inputSchema:C9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},target_unit:{type:["string","null"]},target_invalidates:{type:"array",items:{type:"string"}},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_set_severity",description:"Classify a feedback's severity \u2014 set `severity` (blocker | high | medium | low). Called by the `classifier` fix-hat (first in the `fix_hats:` chain) when the FB was filed WITHOUT a severity (e.g. via the SPA, where the human can't classify). The fix-loop dispatches higher-severity findings first. Refuses to overwrite an FB that already has a severity \u2014 once set, immutable per the FB-as-unit architecture (agent-filed FBs carry severity from creation, so this is a no-op-confirm on those).",inputSchema:M9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},severity:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_release_notes",description:"Extract release notes from CHANGELOG.md \u2014 a specific version or the 5 most recent entries.",inputSchema:tY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Release notes as markdown."},version:{type:["string","null"],description:"Echoed version filter (null when 5-most-recent was returned)."}},required:["markdown"]}},{name:"haiku_repair",description:"Scan intents for metadata issues and auto-apply safe fixes. In a git repo, scans all intent branches sequentially, auto-applies safe fixes, syncs changes, and opens PRs/MRs for already-merged branches. In filesystem mode, scans intents in the current working directory. Also relocates any worktrees misplaced by older H\xB7AI\xB7K\xB7U versions (which rooted `.haiku/worktrees/` at cwd instead of the primary repo) \u2014 clean worktrees are moved via `git worktree move`; dirty ones are reported for manual resolution. Pass `intent` to repair a single intent only. Pass `skip_branches: true` to force cwd-only mode in a git repo. Pass `apply: false` to scan without applying fixes.",inputSchema:nY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:FL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var bSe=w((fhi,wbt)=>{"use strict";wbt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var N9n=bSe(),Sv=Object.prototype.toString;function TSe(e){return Sv.call(e)==="[object Array]"}function ESe(e){return typeof e>"u"}function C9n(e){return e!==null&&!ESe(e)&&e.constructor!==null&&!ESe(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function M9n(e){return Sv.call(e)==="[object ArrayBuffer]"}function D9n(e){return typeof FormData<"u"&&e instanceof FormData}function L9n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function U9n(e){return typeof e=="string"}function F9n(e){return typeof e=="number"}function kbt(e){return e!==null&&typeof e=="object"}function TZ(e){if(Sv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function j9n(e){return Sv.call(e)==="[object Date]"}function H9n(e){return Sv.call(e)==="[object File]"}function q9n(e){return Sv.call(e)==="[object Blob]"}function Ibt(e){return Sv.call(e)==="[object Function]"}function B9n(e){return kbt(e)&&Ibt(e.pipe)}function z9n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function G9n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function V9n(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function vSe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),TSe(e))for(var n=0,r=e.length;n{"use strict";var Y0=eu();function Obt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Pbt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(Y0.isURLSearchParams(n))i=n.toString();else{var s=[];Y0.forEach(n,function(c,u){c===null||typeof c>"u"||(Y0.isArray(c)?u=u+"[]":c=[c],Y0.forEach(c,function(d){Y0.isDate(d)?d=d.toISOString():Y0.isObject(d)&&(d=JSON.stringify(d)),s.push(Obt(u)+"="+Obt(d))}))}),i=s.join("&")}if(i){var o=t.indexOf("#");o!==-1&&(t=t.slice(0,o)),t+=(t.indexOf("?")===-1?"?":"&")+i}return t}});var Cbt=w((mhi,Nbt)=>{"use strict";var Y9n=eu();function RZ(){this.handlers=[]}RZ.prototype.use=function(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1};RZ.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};RZ.prototype.forEach=function(t){Y9n.forEach(this.handlers,function(r){r!==null&&t(r)})};Nbt.exports=RZ});var Dbt=w((ghi,Mbt)=>{"use strict";var Z9n=eu();Mbt.exports=function(t,n){Z9n.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var AZ=w((yhi,Lbt)=>{"use strict";Lbt.exports=function(t,n,r,i,s){return t.config=n,r&&(t.code=r),t.request=i,t.response=s,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}});var wZ=w((Shi,Ubt)=>{"use strict";var J9n=AZ();Ubt.exports=function(t,n,r,i,s){var o=new Error(t);return J9n(o,n,r,i,s)}});var RSe=w((bhi,Fbt)=>{"use strict";var X9n=wZ();Fbt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(X9n("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Hbt=w((Ehi,jbt)=>{"use strict";var kZ=eu();jbt.exports=kZ.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),kZ.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),kZ.isString(s)&&c.push("path="+s),kZ.isString(o)&&c.push("domain="+o),a===!0&&c.push("secure"),document.cookie=c.join("; ")},read:function(n){var r=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}})():(function(){return{write:function(){},read:function(){return null},remove:function(){}}})()});var Bbt=w((_hi,qbt)=>{"use strict";qbt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var Gbt=w((Thi,zbt)=>{"use strict";zbt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var ASe=w((vhi,Vbt)=>{"use strict";var Q9n=Bbt(),$9n=Gbt();Vbt.exports=function(t,n){return t&&!Q9n(n)?$9n(t,n):n}});var Kbt=w((Rhi,Wbt)=>{"use strict";var wSe=eu(),eYn=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];Wbt.exports=function(t){var n={},r,i,s;return t&&wSe.forEach(t.split(` -`),function(a){if(s=a.indexOf(":"),r=wSe.trim(a.substr(0,s)).toLowerCase(),i=wSe.trim(a.substr(s+1)),r){if(n[r]&&eYn.indexOf(r)>=0)return;r==="set-cookie"?n[r]=(n[r]?n[r]:[]).concat([i]):n[r]=n[r]?n[r]+", "+i:i}}),n}});var Jbt=w((Ahi,Zbt)=>{"use strict";var Ybt=eu();Zbt.exports=Ybt.isStandardBrowserEnv()?(function(){var t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a"),r;function i(s){var o=s;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=i(window.location.href),function(o){var a=Ybt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var Qbt=w((whi,Xbt)=>{"use strict";var IZ=eu(),tYn=RSe(),nYn=Hbt(),rYn=vZ(),iYn=ASe(),sYn=Kbt(),oYn=Jbt(),kSe=wZ();Xbt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;IZ.isFormData(s)&&delete o["Content-Type"];var c=new XMLHttpRequest;if(t.auth){var u=t.auth.username||"",l=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.Authorization="Basic "+btoa(u+":"+l)}var d=iYn(t.baseURL,t.url);c.open(t.method.toUpperCase(),rYn(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?sYn(c.getAllResponseHeaders()):null,m=!a||a==="text"||a==="json"?c.responseText:c.response,g={data:m,status:c.status,statusText:c.statusText,headers:h,config:t,request:c};tYn(r,i,g),c=null}}if("onloadend"in c?c.onloadend=f:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(f)},c.onabort=function(){c&&(i(kSe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(kSe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(kSe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},IZ.isStandardBrowserEnv()){var p=(t.withCredentials||oYn(d))&&t.xsrfCookieName?nYn.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&IZ.forEach(o,function(m,g){typeof s>"u"&&g.toLowerCase()==="content-type"?delete o[g]:c.setRequestHeader(g,m)}),IZ.isUndefined(t.withCredentials)||(c.withCredentials=!!t.withCredentials),a&&a!=="json"&&(c.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&c.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(m){c&&(c.abort(),i(m),c=null)}),s||(s=null),c.send(s)})}});var eEt=w((khi,$bt)=>{var Z0=1e3,J0=Z0*60,X0=J0*60,bv=X0*24,aYn=bv*7,cYn=bv*365.25;$bt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return uYn(e);if(n==="number"&&isFinite(e))return t.long?dYn(e):lYn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function uYn(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*cYn;case"weeks":case"week":case"w":return n*aYn;case"days":case"day":case"d":return n*bv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*X0;case"minutes":case"minute":case"mins":case"min":case"m":return n*J0;case"seconds":case"second":case"secs":case"sec":case"s":return n*Z0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function lYn(e){var t=Math.abs(e);return t>=bv?Math.round(e/bv)+"d":t>=X0?Math.round(e/X0)+"h":t>=J0?Math.round(e/J0)+"m":t>=Z0?Math.round(e/Z0)+"s":e+"ms"}function dYn(e){var t=Math.abs(e);return t>=bv?xZ(e,t,bv,"day"):t>=X0?xZ(e,t,X0,"hour"):t>=J0?xZ(e,t,J0,"minute"):t>=Z0?xZ(e,t,Z0,"second"):e+" ms"}function xZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var ISe=w((Ihi,tEt)=>{function fYn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=eEt(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";E++;let A=n.formatters[R];if(typeof A=="function"){let x=g[E];T=A.call(y,x),g.splice(E,1),E--}return T}),n.formatArgs.call(y,g),(y.log||n.log).apply(y,g)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:g=>{f=g}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d,f=(typeof l=="string"?l:"").split(/[\s,]+/),p=f.length;for(d=0;d"-"+d)].join(",");return n.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let d,f;for(d=0,f=n.skips.length;d{Ll.formatArgs=hYn;Ll.save=mYn;Ll.load=gYn;Ll.useColors=pYn;Ll.storage=yYn();Ll.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ll.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function pYn(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function hYn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+OZ.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}Ll.log=console.debug||console.log||(()=>{});function mYn(e){try{e?Ll.storage.setItem("debug",e):Ll.storage.removeItem("debug")}catch{}}function gYn(){let e;try{e=Ll.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function yYn(){try{return localStorage}catch{}}OZ.exports=ISe()(Ll);var{formatters:SYn}=OZ.exports;SYn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var iEt=w((Ma,NZ)=>{var bYn=K("tty"),PZ=K("util");Ma.init=wYn;Ma.log=vYn;Ma.formatArgs=_Yn;Ma.save=RYn;Ma.load=AYn;Ma.useColors=EYn;Ma.destroy=PZ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Ma.colors=[6,2,3,4,5,1];try{let e=dj();e&&(e.stderr||e).level>=2&&(Ma.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Ma.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function EYn(){return"colors"in Ma.inspectOpts?!!Ma.inspectOpts.colors:bYn.isatty(process.stderr.fd)}function _Yn(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` +Use haiku_feedback_update for status transitions and haiku_feedback_reject for rejections.`,inputSchema:M9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},stage:{type:["string","null"]},intent:{type:"string"},message:{type:"string"},error:{type:"string"},current_status:{type:"string"}}}},{name:"haiku_feedback_advance_hat",description:"Advance an FB to the next fix-hat. The response carries `next_subagent_dispatch_block` and a `message` \u2014 follow them.",inputSchema:U9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},stage:{type:["string","null"]},calling_hat:{type:"string"},next_dispatched_hat:{type:["string","null"]},closed:{type:"boolean"},bolt:{type:"number"},next_subagent_dispatch_block:{type:["string","null"]},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_reject_hat",description:"Reject the current fix-hat's work on an FB \u2014 moves back to the previous hat and increments the FB's bolt counter. Pass `reason` so the FB's iteration history records why the hat was rejected. Mirrors haiku_unit_reject_hat for FBs.",inputSchema:F9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},rejecting_hat:{type:"string"},next_dispatched_hat:{type:["string","null"]},new_bolt:{type:"number"},reason:{type:"string"},next_subagent_dispatch_block:{type:["string","null"],description:"The bounced-to prior hat's dispatch block on the SAME FB \u2014 relay it verbatim to re-run that hat. Null when it can't be built."},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_set_targets",description:"Classify a user-authored feedback's targets \u2014 set `target_unit` (which unit this counter-signals) and `target_invalidates` (which approval roles get cleared on closure). Called by the `classifier` fix-hat as the FIRST hat in a stage's `fix_hats:` chain when the FB was filed without targets (e.g. via the SPA, where the human can't classify). Refuses to overwrite an FB that already has classified targets \u2014 once set, immutable per the FB-as-unit architecture.",inputSchema:D9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},target_unit:{type:["string","null"]},target_invalidates:{type:"array",items:{type:"string"}},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_feedback_set_severity",description:"Classify a feedback's severity \u2014 set `severity` (blocker | high | medium | low). Called by the `classifier` fix-hat (first in the `fix_hats:` chain) when the FB was filed WITHOUT a severity (e.g. via the SPA, where the human can't classify). The fix-loop dispatches higher-severity findings first. Refuses to overwrite an FB that already has a severity \u2014 once set, immutable per the FB-as-unit architecture (agent-filed FBs carry severity from creation, so this is a no-op-confirm on those).",inputSchema:L9,outputSchema:{type:"object",properties:{ok:{type:"boolean"},feedback_id:{type:"string"},severity:{type:"string"},message:{type:"string"},error:{type:"string"}}}},{name:"haiku_release_notes",description:"Extract release notes from CHANGELOG.md \u2014 a specific version or the 5 most recent entries.",inputSchema:rY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Release notes as markdown."},version:{type:["string","null"],description:"Echoed version filter (null when 5-most-recent was returned)."}},required:["markdown"]}},{name:"haiku_repair",description:"Scan intents for metadata issues and auto-apply safe fixes. In a git repo, scans all intent branches sequentially, auto-applies safe fixes, syncs changes, and opens PRs/MRs for already-merged branches. In filesystem mode, scans intents in the current working directory. Also relocates any worktrees misplaced by older H\xB7AI\xB7K\xB7U versions (which rooted `.haiku/worktrees/` at cwd instead of the primary repo) \u2014 clean worktrees are moved via `git worktree move`; dirty ones are reported for manual resolution. Pass `intent` to repair a single intent only. Pass `skip_branches: true` to force cwd-only mode in a git repo. Pass `apply: false` to scan without applying fixes.",inputSchema:iY,outputSchema:{type:"object",properties:{markdown:{type:"string",description:"Repair report \u2014 markdown text including any worktree-migration findings."}},required:["markdown"]}},{name:"haiku_version_info",description:"Return the running MCP binary version and plugin version. MCP version is baked into the binary at build time; plugin version is read from plugin.json at runtime.",inputSchema:jL,outputSchema:{type:"object",properties:{mcp_version:{type:"string"},plugin_version:{type:"string"}},required:["mcp_version","plugin_version"]}}]});var ESe=w((fhi,wbt)=>{"use strict";wbt.exports=function(t,n){return function(){for(var i=new Array(arguments.length),s=0;s{"use strict";var N9n=ESe(),Sv=Object.prototype.toString;function vSe(e){return Sv.call(e)==="[object Array]"}function _Se(e){return typeof e>"u"}function C9n(e){return e!==null&&!_Se(e)&&e.constructor!==null&&!_Se(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function M9n(e){return Sv.call(e)==="[object ArrayBuffer]"}function D9n(e){return typeof FormData<"u"&&e instanceof FormData}function L9n(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function U9n(e){return typeof e=="string"}function F9n(e){return typeof e=="number"}function kbt(e){return e!==null&&typeof e=="object"}function vZ(e){if(Sv.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function j9n(e){return Sv.call(e)==="[object Date]"}function H9n(e){return Sv.call(e)==="[object File]"}function q9n(e){return Sv.call(e)==="[object Blob]"}function Ibt(e){return Sv.call(e)==="[object Function]"}function B9n(e){return kbt(e)&&Ibt(e.pipe)}function z9n(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function G9n(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function V9n(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function RSe(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),vSe(e))for(var n=0,r=e.length;n{"use strict";var Z0=eu();function Obt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Pbt.exports=function(t,n,r){if(!n)return t;var i;if(r)i=r(n);else if(Z0.isURLSearchParams(n))i=n.toString();else{var s=[];Z0.forEach(n,function(c,u){c===null||typeof c>"u"||(Z0.isArray(c)?u=u+"[]":c=[c],Z0.forEach(c,function(d){Z0.isDate(d)?d=d.toISOString():Z0.isObject(d)&&(d=JSON.stringify(d)),s.push(Obt(u)+"="+Obt(d))}))}),i=s.join("&")}if(i){var o=t.indexOf("#");o!==-1&&(t=t.slice(0,o)),t+=(t.indexOf("?")===-1?"?":"&")+i}return t}});var Cbt=w((mhi,Nbt)=>{"use strict";var Y9n=eu();function AZ(){this.handlers=[]}AZ.prototype.use=function(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1};AZ.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};AZ.prototype.forEach=function(t){Y9n.forEach(this.handlers,function(r){r!==null&&t(r)})};Nbt.exports=AZ});var Dbt=w((ghi,Mbt)=>{"use strict";var Z9n=eu();Mbt.exports=function(t,n){Z9n.forEach(t,function(i,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=i,delete t[s])})}});var wZ=w((yhi,Lbt)=>{"use strict";Lbt.exports=function(t,n,r,i,s){return t.config=n,r&&(t.code=r),t.request=i,t.response=s,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}});var kZ=w((Shi,Ubt)=>{"use strict";var J9n=wZ();Ubt.exports=function(t,n,r,i,s){var o=new Error(t);return J9n(o,n,r,i,s)}});var ASe=w((bhi,Fbt)=>{"use strict";var X9n=kZ();Fbt.exports=function(t,n,r){var i=r.config.validateStatus;!r.status||!i||i(r.status)?t(r):n(X9n("Request failed with status code "+r.status,r.config,null,r.request,r))}});var Hbt=w((Ehi,jbt)=>{"use strict";var IZ=eu();jbt.exports=IZ.isStandardBrowserEnv()?(function(){return{write:function(n,r,i,s,o,a){var c=[];c.push(n+"="+encodeURIComponent(r)),IZ.isNumber(i)&&c.push("expires="+new Date(i).toGMTString()),IZ.isString(s)&&c.push("path="+s),IZ.isString(o)&&c.push("domain="+o),a===!0&&c.push("secure"),document.cookie=c.join("; ")},read:function(n){var r=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return r?decodeURIComponent(r[3]):null},remove:function(n){this.write(n,"",Date.now()-864e5)}}})():(function(){return{write:function(){},read:function(){return null},remove:function(){}}})()});var Bbt=w((_hi,qbt)=>{"use strict";qbt.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var Gbt=w((Thi,zbt)=>{"use strict";zbt.exports=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t}});var wSe=w((vhi,Vbt)=>{"use strict";var Q9n=Bbt(),$9n=Gbt();Vbt.exports=function(t,n){return t&&!Q9n(n)?$9n(t,n):n}});var Kbt=w((Rhi,Wbt)=>{"use strict";var kSe=eu(),eYn=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];Wbt.exports=function(t){var n={},r,i,s;return t&&kSe.forEach(t.split(` +`),function(a){if(s=a.indexOf(":"),r=kSe.trim(a.substr(0,s)).toLowerCase(),i=kSe.trim(a.substr(s+1)),r){if(n[r]&&eYn.indexOf(r)>=0)return;r==="set-cookie"?n[r]=(n[r]?n[r]:[]).concat([i]):n[r]=n[r]?n[r]+", "+i:i}}),n}});var Jbt=w((Ahi,Zbt)=>{"use strict";var Ybt=eu();Zbt.exports=Ybt.isStandardBrowserEnv()?(function(){var t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a"),r;function i(s){var o=s;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=i(window.location.href),function(o){var a=Ybt.isString(o)?i(o):o;return a.protocol===r.protocol&&a.host===r.host}})():(function(){return function(){return!0}})()});var Qbt=w((whi,Xbt)=>{"use strict";var xZ=eu(),tYn=ASe(),nYn=Hbt(),rYn=RZ(),iYn=wSe(),sYn=Kbt(),oYn=Jbt(),ISe=kZ();Xbt.exports=function(t){return new Promise(function(r,i){var s=t.data,o=t.headers,a=t.responseType;xZ.isFormData(s)&&delete o["Content-Type"];var c=new XMLHttpRequest;if(t.auth){var u=t.auth.username||"",l=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.Authorization="Basic "+btoa(u+":"+l)}var d=iYn(t.baseURL,t.url);c.open(t.method.toUpperCase(),rYn(d,t.params,t.paramsSerializer),!0),c.timeout=t.timeout;function f(){if(c){var h="getAllResponseHeaders"in c?sYn(c.getAllResponseHeaders()):null,m=!a||a==="text"||a==="json"?c.responseText:c.response,g={data:m,status:c.status,statusText:c.statusText,headers:h,config:t,request:c};tYn(r,i,g),c=null}}if("onloadend"in c?c.onloadend=f:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(f)},c.onabort=function(){c&&(i(ISe("Request aborted",t,"ECONNABORTED",c)),c=null)},c.onerror=function(){i(ISe("Network Error",t,null,c)),c=null},c.ontimeout=function(){var m="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(m=t.timeoutErrorMessage),i(ISe(m,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",c)),c=null},xZ.isStandardBrowserEnv()){var p=(t.withCredentials||oYn(d))&&t.xsrfCookieName?nYn.read(t.xsrfCookieName):void 0;p&&(o[t.xsrfHeaderName]=p)}"setRequestHeader"in c&&xZ.forEach(o,function(m,g){typeof s>"u"&&g.toLowerCase()==="content-type"?delete o[g]:c.setRequestHeader(g,m)}),xZ.isUndefined(t.withCredentials)||(c.withCredentials=!!t.withCredentials),a&&a!=="json"&&(c.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&c.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(m){c&&(c.abort(),i(m),c=null)}),s||(s=null),c.send(s)})}});var eEt=w((khi,$bt)=>{var J0=1e3,X0=J0*60,Q0=X0*60,bv=Q0*24,aYn=bv*7,cYn=bv*365.25;$bt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return uYn(e);if(n==="number"&&isFinite(e))return t.long?dYn(e):lYn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function uYn(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*cYn;case"weeks":case"week":case"w":return n*aYn;case"days":case"day":case"d":return n*bv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*Q0;case"minutes":case"minute":case"mins":case"min":case"m":return n*X0;case"seconds":case"second":case"secs":case"sec":case"s":return n*J0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function lYn(e){var t=Math.abs(e);return t>=bv?Math.round(e/bv)+"d":t>=Q0?Math.round(e/Q0)+"h":t>=X0?Math.round(e/X0)+"m":t>=J0?Math.round(e/J0)+"s":e+"ms"}function dYn(e){var t=Math.abs(e);return t>=bv?OZ(e,t,bv,"day"):t>=Q0?OZ(e,t,Q0,"hour"):t>=X0?OZ(e,t,X0,"minute"):t>=J0?OZ(e,t,J0,"second"):e+" ms"}function OZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var xSe=w((Ihi,tEt)=>{function fYn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=eEt(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";E++;let A=n.formatters[R];if(typeof A=="function"){let x=g[E];T=A.call(y,x),g.splice(E,1),E--}return T}),n.formatArgs.call(y,g),(y.log||n.log).apply(y,g)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:g=>{f=g}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d,f=(typeof l=="string"?l:"").split(/[\s,]+/),p=f.length;for(d=0;d"-"+d)].join(",");return n.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let d,f;for(d=0,f=n.skips.length;d{Ll.formatArgs=hYn;Ll.save=mYn;Ll.load=gYn;Ll.useColors=pYn;Ll.storage=yYn();Ll.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ll.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function pYn(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function hYn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+PZ.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}Ll.log=console.debug||console.log||(()=>{});function mYn(e){try{e?Ll.storage.setItem("debug",e):Ll.storage.removeItem("debug")}catch{}}function gYn(){let e;try{e=Ll.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function yYn(){try{return localStorage}catch{}}PZ.exports=xSe()(Ll);var{formatters:SYn}=PZ.exports;SYn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var iEt=w((Ma,CZ)=>{var bYn=K("tty"),NZ=K("util");Ma.init=wYn;Ma.log=vYn;Ma.formatArgs=_Yn;Ma.save=RYn;Ma.load=AYn;Ma.useColors=EYn;Ma.destroy=NZ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Ma.colors=[6,2,3,4,5,1];try{let e=pj();e&&(e.stderr||e).level>=2&&(Ma.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Ma.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function EYn(){return"colors"in Ma.inspectOpts?!!Ma.inspectOpts.colors:bYn.isatty(process.stderr.fd)}function _Yn(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` `).join(` -`+s),e.push(i+"m+"+NZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=TYn()+t+" "+e[0]}function TYn(){return Ma.inspectOpts.hideDate?"":new Date().toISOString()+" "}function vYn(...e){return process.stderr.write(PZ.format(...e)+` -`)}function RYn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function AYn(){return process.env.DEBUG}function wYn(e){e.inspectOpts={};let t=Object.keys(Ma.inspectOpts);for(let n=0;nt.trim()).join(" ")};rEt.O=function(e){return this.inspectOpts.colors=this.useColors,PZ.inspect(e,this.inspectOpts)}});var sEt=w((xhi,xSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?xSe.exports=nEt():xSe.exports=iEt()});var aEt=w((Ohi,oEt)=>{var _1;oEt.exports=function(){if(!_1){try{_1=sEt()("follow-redirects")}catch{}typeof _1!="function"&&(_1=function(){})}_1.apply(null,arguments)}});var BSe=w((Phi,qSe)=>{var v1=K("url"),T1=v1.URL,kYn=K("http"),IYn=K("https"),MSe=K("stream").Writable,DSe=K("assert"),cEt=aEt();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=_v(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var LSe=!1;try{DSe(new T1(""))}catch(e){LSe=e.code==="ERR_INVALID_URL"}var xYn=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],USe=["abort","aborted","connect","error","socket","timeout"],FSe=Object.create(null);USe.forEach(function(e){FSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var PSe=R1("ERR_INVALID_URL","Invalid URL",TypeError),NSe=R1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),OYn=R1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",NSe),PYn=R1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),NYn=R1("ERR_STREAM_WRITE_AFTER_END","write after end"),CYn=MSe.prototype.destroy||lEt;function Ku(e,t){MSe.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var n=this;this._onNativeResponse=function(r){try{n._processResponse(r)}catch(i){n.emit("error",i instanceof NSe?i:new NSe({cause:i}))}},this._performRequest()}Ku.prototype=Object.create(MSe.prototype);Ku.prototype.abort=function(){HSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Ku.prototype.destroy=function(e){return HSe(this._currentRequest,e),CYn.call(this,e),this};Ku.prototype.write=function(e,t,n){if(this._ending)throw new NYn;if(!Ev(e)&&!LYn(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(_v(t)&&(n=t,t=null),e.length===0){n&&n();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,n)):(this.emit("error",new PYn),this.abort())};Ku.prototype.end=function(e,t,n){if(_v(e)?(n=e,e=t=null):_v(t)&&(n=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,n);else{var r=this,i=this._currentRequest;this.write(e,t,function(){r._ended=!0,i.end(null,null,n)}),this._ending=!0}};Ku.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};Ku.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};Ku.prototype.setTimeout=function(e,t){var n=this;function r(o){o.setTimeout(e),o.removeListener("timeout",o.destroy),o.addListener("timeout",o.destroy)}function i(o){n._timeout&&clearTimeout(n._timeout),n._timeout=setTimeout(function(){n.emit("timeout"),s()},e),r(o)}function s(){n._timeout&&(clearTimeout(n._timeout),n._timeout=null),n.removeListener("abort",s),n.removeListener("error",s),n.removeListener("response",s),n.removeListener("close",s),t&&n.removeListener("timeout",t),n.socket||n._currentRequest.removeListener("socket",i)}return t&&this.on("timeout",t),this.socket?i(this.socket):this._currentRequest.once("socket",i),this.on("socket",r),this.on("abort",s),this.on("error",s),this.on("response",s),this.on("close",s),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){Ku.prototype[e]=function(t,n){return this._currentRequest[e](t,n)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(Ku.prototype,e,{get:function(){return this._currentRequest[e]}})});Ku.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};Ku.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var n=e.slice(0,-1);this._options.agent=this._options.agents[n]}var r=this._currentRequest=t.request(this._options,this._onNativeResponse);r._redirectable=this;for(var i of USe)r.on(i,FSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?v1.format(this._options):this._options.path,this._isRedirect){var s=0,o=this,a=this._requestBodyBuffers;(function c(u){if(r===o._currentRequest)if(u)o.emit("error",u);else if(s=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(HSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new OYn;var r,i=this._options.beforeRedirect;i&&(r=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var s=this._options.method;((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],OSe(/^content-/i,this._options.headers));var o=OSe(/^host$/i,this._options.headers),a=jSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:v1.format(Object.assign(a,{host:c})),l=MYn(n,u);if(cEt("redirecting to",l.href),this._isRedirect=!0,CSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!DYn(l.host,c))&&OSe(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),_v(i)){var d={headers:e.headers,statusCode:t},f={url:u,method:s,headers:r};i(this._options,d,f),this._sanitizeOptions(this._options)}this._performRequest()};function uEt(e){var t={maxRedirects:21,maxBodyLength:10485760},n={};return Object.keys(e).forEach(function(r){var i=r+":",s=n[i]=e[r],o=t[r]=Object.create(s);function a(u,l,d){return UYn(u)?u=CSe(u):Ev(u)?u=CSe(jSe(u)):(d=l,l=dEt(u),u={protocol:i}),_v(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!Ev(l.host)&&!Ev(l.hostname)&&(l.hostname="::1"),DSe.equal(l.protocol,i,"protocol mismatch"),cEt("options",l),new Ku(l,d)}function c(u,l,d){var f=o.request(u,l,d);return f.end(),f}Object.defineProperties(o,{request:{value:a,configurable:!0,enumerable:!0,writable:!0},get:{value:c,configurable:!0,enumerable:!0,writable:!0}})}),t}function lEt(){}function jSe(e){var t;if(LSe)t=new T1(e);else if(t=dEt(v1.parse(e)),!Ev(t.protocol))throw new PSe({input:e});return t}function MYn(e,t){return LSe?new T1(e,t):jSe(v1.resolve(t,e))}function dEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new PSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new PSe({input:e.href||e});return e}function CSe(e,t){var n=t||{};for(var r of xYn)n[r]=e[r];return n.hostname.startsWith("[")&&(n.hostname=n.hostname.slice(1,-1)),n.port!==""&&(n.port=Number(n.port)),n.path=n.search?n.pathname+n.search:n.pathname,n}function OSe(e,t){var n;for(var r in t)e.test(r)&&(n=t[r],delete t[r]);return n===null||typeof n>"u"?void 0:String(n).trim()}function R1(e,t,n){function r(i){_v(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,i||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return r.prototype=new(n||Error),Object.defineProperties(r.prototype,{constructor:{value:r,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),r}function HSe(e,t){for(var n of USe)e.removeListener(n,FSe[n]);e.on("error",lEt),e.destroy(t)}function DYn(e,t){DSe(Ev(e)&&Ev(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function Ev(e){return typeof e=="string"||e instanceof String}function _v(e){return typeof e=="function"}function LYn(e){return typeof e=="object"&&"length"in e}function UYn(e){return T1&&e instanceof T1}qSe.exports=uEt({http:kYn,https:IYn});qSe.exports.wrap=uEt});var zSe=w((Nhi,FYn)=>{FYn.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var yEt=w((Chi,gEt)=>{"use strict";var A1=eu(),fEt=RSe(),jYn=ASe(),HYn=vZ(),qYn=K("http"),BYn=K("https"),zYn=BSe().http,GYn=BSe().https,pEt=K("url"),VYn=K("zlib"),WYn=zSe(),CZ=wZ(),GSe=AZ(),hEt=/https:?/;function mEt(e,t,n){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=n,t.auth){var r=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+r}e.beforeRedirect=function(s){s.headers.host=s.host,mEt(s,t,s.href)}}gEt.exports=function(t){return new Promise(function(r,i){var s=function(q){r(q)},o=function(q){i(q)},a=t.data,c=t.headers;if("User-Agent"in c||"user-agent"in c?!c["User-Agent"]&&!c["user-agent"]&&(delete c["User-Agent"],delete c["user-agent"]):c["User-Agent"]="axios/"+WYn.version,a&&!A1.isStream(a)){if(!Buffer.isBuffer(a))if(A1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(A1.isString(a))a=Buffer.from(a,"utf-8");else return o(CZ("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",t));c["Content-Length"]=a.length}var u=void 0;if(t.auth){var l=t.auth.username||"",d=t.auth.password||"";u=l+":"+d}var f=jYn(t.baseURL,t.url),p=pEt.parse(f),h=p.protocol||"http:";if(!u&&p.auth){var m=p.auth.split(":"),g=m[0]||"",y=m[1]||"";u=g+":"+y}u&&delete c.Authorization;var b=hEt.test(h),S=b?t.httpsAgent:t.httpAgent,E={path:HYn(p.path,t.params,t.paramsSerializer).replace(/^\?/,""),method:t.method.toUpperCase(),headers:c,agent:S,agents:{http:t.httpAgent,https:t.httpsAgent},auth:u};t.socketPath?E.socketPath=t.socketPath:(E.hostname=p.hostname,E.port=p.port);var _=t.proxy;if(!_&&_!==!1){var T=h.slice(0,-1)+"_proxy",R=process.env[T]||process.env[T.toUpperCase()];if(R){var A=pEt.parse(R),x=process.env.no_proxy||process.env.NO_PROXY,k=!0;if(x){var P=x.split(",").map(function(q){return q.trim()});k=!P.some(function(q){return q?q==="*"||q[0]==="."&&p.hostname.substr(p.hostname.length-q.length)===q?!0:p.hostname===q:!1})}if(k&&(_={host:A.hostname,port:A.port,protocol:A.protocol},A.auth)){var N=A.auth.split(":");_.auth={username:N[0],password:N[1]}}}}_&&(E.headers.host=p.hostname+(p.port?":"+p.port:""),mEt(E,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+E.path));var C,L=b&&(_?hEt.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=L?BYn:qYn:(t.maxRedirects&&(E.maxRedirects=t.maxRedirects),C=L?GYn:zYn),t.maxBodyLength>-1&&(E.maxBodyLength=t.maxBodyLength);var G=C.request(E,function(q){if(!G.aborted){var Q=q,B=q.req||G;if(q.statusCode!==204&&B.method!=="HEAD"&&t.decompress!==!1)switch(q.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Q=Q.pipe(VYn.createUnzip()),delete q.headers["content-encoding"];break}var F={status:q.statusCode,statusText:q.statusMessage,headers:q.headers,config:t,request:B};if(t.responseType==="stream")F.data=Q,fEt(s,o,F);else{var V=[],U=0;Q.on("data",function(H){V.push(H),U+=H.length,t.maxContentLength>-1&&U>t.maxContentLength&&(Q.destroy(),o(CZ("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,B)))}),Q.on("error",function(H){G.aborted||o(GSe(H,t,null,B))}),Q.on("end",function(){var H=Buffer.concat(V);t.responseType!=="arraybuffer"&&(H=H.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(H=A1.stripBOM(H))),F.data=H,fEt(s,o,F)})}}});if(G.on("error",function(q){G.aborted&&q.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(GSe(q,t,null,G))}),t.timeout){var W=parseInt(t.timeout,10);if(isNaN(W)){o(CZ("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",G));return}G.setTimeout(W,function(){G.abort(),o(CZ("timeout of "+W+"ms exceeded",t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",G))})}t.cancelToken&&t.cancelToken.promise.then(function(q){G.aborted||(G.abort(),o(q))}),A1.isStream(a)?a.on("error",function(q){o(GSe(q,t,null,G))}).pipe(G):G.end(a)})}});var DZ=w((Mhi,EEt)=>{"use strict";var Da=eu(),SEt=Dbt(),KYn=AZ(),YYn={"Content-Type":"application/x-www-form-urlencoded"};function bEt(e,t){!Da.isUndefined(e)&&Da.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function ZYn(){var e;return typeof XMLHttpRequest<"u"?e=Qbt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=yEt()),e}function JYn(e,t,n){if(Da.isString(e))try{return(t||JSON.parse)(e),Da.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var MZ={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:ZYn(),transformRequest:[function(t,n){return SEt(n,"Accept"),SEt(n,"Content-Type"),Da.isFormData(t)||Da.isArrayBuffer(t)||Da.isBuffer(t)||Da.isStream(t)||Da.isFile(t)||Da.isBlob(t)?t:Da.isArrayBufferView(t)?t.buffer:Da.isURLSearchParams(t)?(bEt(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Da.isObject(t)||n&&n["Content-Type"]==="application/json"?(bEt(n,"application/json"),JYn(t)):t}],transformResponse:[function(t){var n=this.transitional,r=n&&n.silentJSONParsing,i=n&&n.forcedJSONParsing,s=!r&&this.responseType==="json";if(s||i&&Da.isString(t)&&t.length)try{return JSON.parse(t)}catch(o){if(s)throw o.name==="SyntaxError"?KYn(o,this,"E_JSON_PARSE"):o}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};MZ.headers={common:{Accept:"application/json, text/plain, */*"}};Da.forEach(["delete","get","head"],function(t){MZ.headers[t]={}});Da.forEach(["post","put","patch"],function(t){MZ.headers[t]=Da.merge(YYn)});EEt.exports=MZ});var TEt=w((Dhi,_Et)=>{"use strict";var XYn=eu(),QYn=DZ();_Et.exports=function(t,n,r){var i=this||QYn;return XYn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var VSe=w((Lhi,vEt)=>{"use strict";vEt.exports=function(t){return!!(t&&t.__CANCEL__)}});var wEt=w((Uhi,AEt)=>{"use strict";var REt=eu(),WSe=TEt(),$Yn=VSe(),eZn=DZ();function KSe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}AEt.exports=function(t){KSe(t),t.headers=t.headers||{},t.data=WSe.call(t,t.data,t.headers,t.transformRequest),t.headers=REt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),REt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||eZn.adapter;return n(t).then(function(i){return KSe(t),i.data=WSe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return $Yn(i)||(KSe(t),i&&i.response&&(i.response.data=WSe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var YSe=w((Fhi,kEt)=>{"use strict";var Ec=eu();kEt.exports=function(t,n){n=n||{};var r={},i=["url","method","data"],s=["headers","auth","proxy","params"],o=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function c(f,p){return Ec.isPlainObject(f)&&Ec.isPlainObject(p)?Ec.merge(f,p):Ec.isPlainObject(p)?Ec.merge({},p):Ec.isArray(p)?p.slice():p}function u(f){Ec.isUndefined(n[f])?Ec.isUndefined(t[f])||(r[f]=c(void 0,t[f])):r[f]=c(t[f],n[f])}Ec.forEach(i,function(p){Ec.isUndefined(n[p])||(r[p]=c(void 0,n[p]))}),Ec.forEach(s,u),Ec.forEach(o,function(p){Ec.isUndefined(n[p])?Ec.isUndefined(t[p])||(r[p]=c(void 0,t[p])):r[p]=c(void 0,n[p])}),Ec.forEach(a,function(p){p in n?r[p]=c(t[p],n[p]):p in t&&(r[p]=c(void 0,t[p]))});var l=i.concat(s).concat(o).concat(a),d=Object.keys(t).concat(Object.keys(n)).filter(function(p){return l.indexOf(p)===-1});return Ec.forEach(d,u),r}});var NEt=w((jhi,PEt)=>{"use strict";var xEt=zSe(),ZSe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){ZSe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var IEt={},tZn=xEt.version.split(".");function OEt(e,t){for(var n=t?t.split("."):tZn,r=e.split("."),i=0;i<3;i++){if(n[i]>r[i])return!0;if(n[i]0;){var s=r[i],o=t[s];if(o){var a=e[s],c=a===void 0||o(a,s,e);if(c!==!0)throw new TypeError("option "+s+" must be "+c);continue}if(n!==!0)throw Error("Unknown option "+s)}}PEt.exports={isOlderVersion:OEt,assertOptions:nZn,validators:ZSe}});var FEt=w((Hhi,UEt)=>{"use strict";var DEt=eu(),rZn=vZ(),CEt=Cbt(),MEt=wEt(),LZ=YSe(),LEt=NEt(),Q0=LEt.validators;function w1(e){this.defaults=e,this.interceptors={request:new CEt,response:new CEt}}w1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=LZ(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var n=t.transitional;n!==void 0&&LEt.assertOptions(n,{silentJSONParsing:Q0.transitional(Q0.boolean,"1.0.0"),forcedJSONParsing:Q0.transitional(Q0.boolean,"1.0.0"),clarifyTimeoutError:Q0.transitional(Q0.boolean,"1.0.0")},!1);var r=[],i=!0;this.interceptors.request.forEach(function(f){typeof f.runWhen=="function"&&f.runWhen(t)===!1||(i=i&&f.synchronous,r.unshift(f.fulfilled,f.rejected))});var s=[];this.interceptors.response.forEach(function(f){s.push(f.fulfilled,f.rejected)});var o;if(!i){var a=[MEt,void 0];for(Array.prototype.unshift.apply(a,r),a=a.concat(s),o=Promise.resolve(t);a.length;)o=o.then(a.shift(),a.shift());return o}for(var c=t;r.length;){var u=r.shift(),l=r.shift();try{c=u(c)}catch(d){l(d);break}}try{o=MEt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};w1.prototype.getUri=function(t){return t=LZ(this.defaults,t),rZn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};DEt.forEach(["delete","get","head","options"],function(t){w1.prototype[t]=function(n,r){return this.request(LZ(r||{},{method:t,url:n,data:(r||{}).data}))}});DEt.forEach(["post","put","patch"],function(t){w1.prototype[t]=function(n,r,i){return this.request(LZ(i||{},{method:t,url:n,data:r}))}});UEt.exports=w1});var XSe=w((qhi,jEt)=>{"use strict";function JSe(e){this.message=e}JSe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};JSe.prototype.__CANCEL__=!0;jEt.exports=JSe});var qEt=w((Bhi,HEt)=>{"use strict";var iZn=XSe();function UZ(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(i){t=i});var n=this;e(function(i){n.reason||(n.reason=new iZn(i),t(n.reason))})}UZ.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};UZ.source=function(){var t,n=new UZ(function(i){t=i});return{token:n,cancel:t}};HEt.exports=UZ});var zEt=w((zhi,BEt)=>{"use strict";BEt.exports=function(t){return function(r){return t.apply(null,r)}}});var VEt=w((Ghi,GEt)=>{"use strict";GEt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var YEt=w((Vhi,QSe)=>{"use strict";var WEt=eu(),sZn=bSe(),FZ=FEt(),oZn=YSe(),aZn=DZ();function KEt(e){var t=new FZ(e),n=sZn(FZ.prototype.request,t);return WEt.extend(n,FZ.prototype,t),WEt.extend(n,t),n}var rp=KEt(aZn);rp.Axios=FZ;rp.create=function(t){return KEt(oZn(rp.defaults,t))};rp.Cancel=XSe();rp.CancelToken=qEt();rp.isCancel=VSe();rp.all=function(t){return Promise.all(t)};rp.spread=zEt();rp.isAxiosError=VEt();QSe.exports=rp;QSe.exports.default=rp});var JEt=w((Whi,ZEt)=>{ZEt.exports=YEt()});var QEt=w((Khi,XEt)=>{var $0=1e3,ex=$0*60,tx=ex*60,Tv=tx*24,cZn=Tv*7,uZn=Tv*365.25;XEt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return lZn(e);if(n==="number"&&isFinite(e))return t.long?fZn(e):dZn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function lZn(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*uZn;case"weeks":case"week":case"w":return n*cZn;case"days":case"day":case"d":return n*Tv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*tx;case"minutes":case"minute":case"mins":case"min":case"m":return n*ex;case"seconds":case"second":case"secs":case"sec":case"s":return n*$0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function dZn(e){var t=Math.abs(e);return t>=Tv?Math.round(e/Tv)+"d":t>=tx?Math.round(e/tx)+"h":t>=ex?Math.round(e/ex)+"m":t>=$0?Math.round(e/$0)+"s":e+"ms"}function fZn(e){var t=Math.abs(e);return t>=Tv?jZ(e,t,Tv,"day"):t>=tx?jZ(e,t,tx,"hour"):t>=ex?jZ(e,t,ex,"minute"):t>=$0?jZ(e,t,$0,"second"):e+" ms"}function jZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var $Se=w((Yhi,$Et)=>{function pZn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=QEt(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";E++;let A=n.formatters[R];if(typeof A=="function"){let x=g[E];T=A.call(y,x),g.splice(E,1),E--}return T}),n.formatArgs.call(y,g),(y.log||n.log).apply(y,g)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:g=>{f=g}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d,f=(typeof l=="string"?l:"").split(/[\s,]+/),p=f.length;for(d=0;d"-"+d)].join(",");return n.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let d,f;for(d=0,f=n.skips.length;d{Ul.formatArgs=mZn;Ul.save=gZn;Ul.load=yZn;Ul.useColors=hZn;Ul.storage=SZn();Ul.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ul.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function hZn(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function mZn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+HZ.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}Ul.log=console.debug||console.log||(()=>{});function gZn(e){try{e?Ul.storage.setItem("debug",e):Ul.storage.removeItem("debug")}catch{}}function yZn(){let e;try{e=Ul.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function SZn(){try{return localStorage}catch{}}HZ.exports=$Se()(Ul);var{formatters:bZn}=HZ.exports;bZn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var n_t=w((La,BZ)=>{var EZn=K("tty"),qZ=K("util");La.init=kZn;La.log=RZn;La.formatArgs=TZn;La.save=AZn;La.load=wZn;La.useColors=_Zn;La.destroy=qZ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");La.colors=[6,2,3,4,5,1];try{let e=dj();e&&(e.stderr||e).level>=2&&(La.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}La.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function _Zn(){return"colors"in La.inspectOpts?!!La.inspectOpts.colors:EZn.isatty(process.stderr.fd)}function TZn(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` +`+s),e.push(i+"m+"+CZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=TYn()+t+" "+e[0]}function TYn(){return Ma.inspectOpts.hideDate?"":new Date().toISOString()+" "}function vYn(...e){return process.stderr.write(NZ.format(...e)+` +`)}function RYn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function AYn(){return process.env.DEBUG}function wYn(e){e.inspectOpts={};let t=Object.keys(Ma.inspectOpts);for(let n=0;nt.trim()).join(" ")};rEt.O=function(e){return this.inspectOpts.colors=this.useColors,NZ.inspect(e,this.inspectOpts)}});var sEt=w((xhi,OSe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?OSe.exports=nEt():OSe.exports=iEt()});var aEt=w((Ohi,oEt)=>{var v1;oEt.exports=function(){if(!v1){try{v1=sEt()("follow-redirects")}catch{}typeof v1!="function"&&(v1=function(){})}v1.apply(null,arguments)}});var zSe=w((Phi,BSe)=>{var A1=K("url"),R1=A1.URL,kYn=K("http"),IYn=K("https"),DSe=K("stream").Writable,LSe=K("assert"),cEt=aEt();(function(){var t=typeof process<"u",n=typeof window<"u"&&typeof document<"u",r=_v(Error.captureStackTrace);!t&&(n||!r)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var USe=!1;try{LSe(new R1(""))}catch(e){USe=e.code==="ERR_INVALID_URL"}var xYn=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],FSe=["abort","aborted","connect","error","socket","timeout"],jSe=Object.create(null);FSe.forEach(function(e){jSe[e]=function(t,n,r){this._redirectable.emit(e,t,n,r)}});var NSe=w1("ERR_INVALID_URL","Invalid URL",TypeError),CSe=w1("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),OYn=w1("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",CSe),PYn=w1("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),NYn=w1("ERR_STREAM_WRITE_AFTER_END","write after end"),CYn=DSe.prototype.destroy||lEt;function Ku(e,t){DSe.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var n=this;this._onNativeResponse=function(r){try{n._processResponse(r)}catch(i){n.emit("error",i instanceof CSe?i:new CSe({cause:i}))}},this._performRequest()}Ku.prototype=Object.create(DSe.prototype);Ku.prototype.abort=function(){qSe(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};Ku.prototype.destroy=function(e){return qSe(this._currentRequest,e),CYn.call(this,e),this};Ku.prototype.write=function(e,t,n){if(this._ending)throw new NYn;if(!Ev(e)&&!LYn(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(_v(t)&&(n=t,t=null),e.length===0){n&&n();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,n)):(this.emit("error",new PYn),this.abort())};Ku.prototype.end=function(e,t,n){if(_v(e)?(n=e,e=t=null):_v(t)&&(n=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,n);else{var r=this,i=this._currentRequest;this.write(e,t,function(){r._ended=!0,i.end(null,null,n)}),this._ending=!0}};Ku.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};Ku.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};Ku.prototype.setTimeout=function(e,t){var n=this;function r(o){o.setTimeout(e),o.removeListener("timeout",o.destroy),o.addListener("timeout",o.destroy)}function i(o){n._timeout&&clearTimeout(n._timeout),n._timeout=setTimeout(function(){n.emit("timeout"),s()},e),r(o)}function s(){n._timeout&&(clearTimeout(n._timeout),n._timeout=null),n.removeListener("abort",s),n.removeListener("error",s),n.removeListener("response",s),n.removeListener("close",s),t&&n.removeListener("timeout",t),n.socket||n._currentRequest.removeListener("socket",i)}return t&&this.on("timeout",t),this.socket?i(this.socket):this._currentRequest.once("socket",i),this.on("socket",r),this.on("abort",s),this.on("error",s),this.on("response",s),this.on("close",s),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){Ku.prototype[e]=function(t,n){return this._currentRequest[e](t,n)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(Ku.prototype,e,{get:function(){return this._currentRequest[e]}})});Ku.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};Ku.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var n=e.slice(0,-1);this._options.agent=this._options.agents[n]}var r=this._currentRequest=t.request(this._options,this._onNativeResponse);r._redirectable=this;for(var i of FSe)r.on(i,jSe[i]);if(this._currentUrl=/^\//.test(this._options.path)?A1.format(this._options):this._options.path,this._isRedirect){var s=0,o=this,a=this._requestBodyBuffers;(function c(u){if(r===o._currentRequest)if(u)o.emit("error",u);else if(s=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(qSe(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new OYn;var r,i=this._options.beforeRedirect;i&&(r=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var s=this._options.method;((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],PSe(/^content-/i,this._options.headers));var o=PSe(/^host$/i,this._options.headers),a=HSe(this._currentUrl),c=o||a.host,u=/^\w+:/.test(n)?this._currentUrl:A1.format(Object.assign(a,{host:c})),l=MYn(n,u);if(cEt("redirecting to",l.href),this._isRedirect=!0,MSe(l,this._options),(l.protocol!==a.protocol&&l.protocol!=="https:"||l.host!==c&&!DYn(l.host,c))&&PSe(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),_v(i)){var d={headers:e.headers,statusCode:t},f={url:u,method:s,headers:r};i(this._options,d,f),this._sanitizeOptions(this._options)}this._performRequest()};function uEt(e){var t={maxRedirects:21,maxBodyLength:10485760},n={};return Object.keys(e).forEach(function(r){var i=r+":",s=n[i]=e[r],o=t[r]=Object.create(s);function a(u,l,d){return UYn(u)?u=MSe(u):Ev(u)?u=MSe(HSe(u)):(d=l,l=dEt(u),u={protocol:i}),_v(l)&&(d=l,l=null),l=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},u,l),l.nativeProtocols=n,!Ev(l.host)&&!Ev(l.hostname)&&(l.hostname="::1"),LSe.equal(l.protocol,i,"protocol mismatch"),cEt("options",l),new Ku(l,d)}function c(u,l,d){var f=o.request(u,l,d);return f.end(),f}Object.defineProperties(o,{request:{value:a,configurable:!0,enumerable:!0,writable:!0},get:{value:c,configurable:!0,enumerable:!0,writable:!0}})}),t}function lEt(){}function HSe(e){var t;if(USe)t=new R1(e);else if(t=dEt(A1.parse(e)),!Ev(t.protocol))throw new NSe({input:e});return t}function MYn(e,t){return USe?new R1(e,t):HSe(A1.resolve(t,e))}function dEt(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new NSe({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new NSe({input:e.href||e});return e}function MSe(e,t){var n=t||{};for(var r of xYn)n[r]=e[r];return n.hostname.startsWith("[")&&(n.hostname=n.hostname.slice(1,-1)),n.port!==""&&(n.port=Number(n.port)),n.path=n.search?n.pathname+n.search:n.pathname,n}function PSe(e,t){var n;for(var r in t)e.test(r)&&(n=t[r],delete t[r]);return n===null||typeof n>"u"?void 0:String(n).trim()}function w1(e,t,n){function r(i){_v(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,i||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return r.prototype=new(n||Error),Object.defineProperties(r.prototype,{constructor:{value:r,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),r}function qSe(e,t){for(var n of FSe)e.removeListener(n,jSe[n]);e.on("error",lEt),e.destroy(t)}function DYn(e,t){LSe(Ev(e)&&Ev(t));var n=e.length-t.length-1;return n>0&&e[n]==="."&&e.endsWith(t)}function Ev(e){return typeof e=="string"||e instanceof String}function _v(e){return typeof e=="function"}function LYn(e){return typeof e=="object"&&"length"in e}function UYn(e){return R1&&e instanceof R1}BSe.exports=uEt({http:kYn,https:IYn});BSe.exports.wrap=uEt});var GSe=w((Nhi,FYn)=>{FYn.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var yEt=w((Chi,gEt)=>{"use strict";var k1=eu(),fEt=ASe(),jYn=wSe(),HYn=RZ(),qYn=K("http"),BYn=K("https"),zYn=zSe().http,GYn=zSe().https,pEt=K("url"),VYn=K("zlib"),WYn=GSe(),MZ=kZ(),VSe=wZ(),hEt=/https:?/;function mEt(e,t,n){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=n,t.auth){var r=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+r}e.beforeRedirect=function(s){s.headers.host=s.host,mEt(s,t,s.href)}}gEt.exports=function(t){return new Promise(function(r,i){var s=function(q){r(q)},o=function(q){i(q)},a=t.data,c=t.headers;if("User-Agent"in c||"user-agent"in c?!c["User-Agent"]&&!c["user-agent"]&&(delete c["User-Agent"],delete c["user-agent"]):c["User-Agent"]="axios/"+WYn.version,a&&!k1.isStream(a)){if(!Buffer.isBuffer(a))if(k1.isArrayBuffer(a))a=Buffer.from(new Uint8Array(a));else if(k1.isString(a))a=Buffer.from(a,"utf-8");else return o(MZ("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",t));c["Content-Length"]=a.length}var u=void 0;if(t.auth){var l=t.auth.username||"",d=t.auth.password||"";u=l+":"+d}var f=jYn(t.baseURL,t.url),p=pEt.parse(f),h=p.protocol||"http:";if(!u&&p.auth){var m=p.auth.split(":"),g=m[0]||"",y=m[1]||"";u=g+":"+y}u&&delete c.Authorization;var b=hEt.test(h),S=b?t.httpsAgent:t.httpAgent,E={path:HYn(p.path,t.params,t.paramsSerializer).replace(/^\?/,""),method:t.method.toUpperCase(),headers:c,agent:S,agents:{http:t.httpAgent,https:t.httpsAgent},auth:u};t.socketPath?E.socketPath=t.socketPath:(E.hostname=p.hostname,E.port=p.port);var _=t.proxy;if(!_&&_!==!1){var T=h.slice(0,-1)+"_proxy",R=process.env[T]||process.env[T.toUpperCase()];if(R){var A=pEt.parse(R),x=process.env.no_proxy||process.env.NO_PROXY,k=!0;if(x){var P=x.split(",").map(function(q){return q.trim()});k=!P.some(function(q){return q?q==="*"||q[0]==="."&&p.hostname.substr(p.hostname.length-q.length)===q?!0:p.hostname===q:!1})}if(k&&(_={host:A.hostname,port:A.port,protocol:A.protocol},A.auth)){var N=A.auth.split(":");_.auth={username:N[0],password:N[1]}}}}_&&(E.headers.host=p.hostname+(p.port?":"+p.port:""),mEt(E,_,h+"//"+p.hostname+(p.port?":"+p.port:"")+E.path));var C,L=b&&(_?hEt.test(_.protocol):!0);t.transport?C=t.transport:t.maxRedirects===0?C=L?BYn:qYn:(t.maxRedirects&&(E.maxRedirects=t.maxRedirects),C=L?GYn:zYn),t.maxBodyLength>-1&&(E.maxBodyLength=t.maxBodyLength);var G=C.request(E,function(q){if(!G.aborted){var Q=q,B=q.req||G;if(q.statusCode!==204&&B.method!=="HEAD"&&t.decompress!==!1)switch(q.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Q=Q.pipe(VYn.createUnzip()),delete q.headers["content-encoding"];break}var F={status:q.statusCode,statusText:q.statusMessage,headers:q.headers,config:t,request:B};if(t.responseType==="stream")F.data=Q,fEt(s,o,F);else{var V=[],U=0;Q.on("data",function(H){V.push(H),U+=H.length,t.maxContentLength>-1&&U>t.maxContentLength&&(Q.destroy(),o(MZ("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,B)))}),Q.on("error",function(H){G.aborted||o(VSe(H,t,null,B))}),Q.on("end",function(){var H=Buffer.concat(V);t.responseType!=="arraybuffer"&&(H=H.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(H=k1.stripBOM(H))),F.data=H,fEt(s,o,F)})}}});if(G.on("error",function(q){G.aborted&&q.code!=="ERR_FR_TOO_MANY_REDIRECTS"||o(VSe(q,t,null,G))}),t.timeout){var W=parseInt(t.timeout,10);if(isNaN(W)){o(MZ("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",G));return}G.setTimeout(W,function(){G.abort(),o(MZ("timeout of "+W+"ms exceeded",t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",G))})}t.cancelToken&&t.cancelToken.promise.then(function(q){G.aborted||(G.abort(),o(q))}),k1.isStream(a)?a.on("error",function(q){o(VSe(q,t,null,G))}).pipe(G):G.end(a)})}});var LZ=w((Mhi,EEt)=>{"use strict";var Da=eu(),SEt=Dbt(),KYn=wZ(),YYn={"Content-Type":"application/x-www-form-urlencoded"};function bEt(e,t){!Da.isUndefined(e)&&Da.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function ZYn(){var e;return typeof XMLHttpRequest<"u"?e=Qbt():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=yEt()),e}function JYn(e,t,n){if(Da.isString(e))try{return(t||JSON.parse)(e),Da.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var DZ={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:ZYn(),transformRequest:[function(t,n){return SEt(n,"Accept"),SEt(n,"Content-Type"),Da.isFormData(t)||Da.isArrayBuffer(t)||Da.isBuffer(t)||Da.isStream(t)||Da.isFile(t)||Da.isBlob(t)?t:Da.isArrayBufferView(t)?t.buffer:Da.isURLSearchParams(t)?(bEt(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Da.isObject(t)||n&&n["Content-Type"]==="application/json"?(bEt(n,"application/json"),JYn(t)):t}],transformResponse:[function(t){var n=this.transitional,r=n&&n.silentJSONParsing,i=n&&n.forcedJSONParsing,s=!r&&this.responseType==="json";if(s||i&&Da.isString(t)&&t.length)try{return JSON.parse(t)}catch(o){if(s)throw o.name==="SyntaxError"?KYn(o,this,"E_JSON_PARSE"):o}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};DZ.headers={common:{Accept:"application/json, text/plain, */*"}};Da.forEach(["delete","get","head"],function(t){DZ.headers[t]={}});Da.forEach(["post","put","patch"],function(t){DZ.headers[t]=Da.merge(YYn)});EEt.exports=DZ});var TEt=w((Dhi,_Et)=>{"use strict";var XYn=eu(),QYn=LZ();_Et.exports=function(t,n,r){var i=this||QYn;return XYn.forEach(r,function(o){t=o.call(i,t,n)}),t}});var WSe=w((Lhi,vEt)=>{"use strict";vEt.exports=function(t){return!!(t&&t.__CANCEL__)}});var wEt=w((Uhi,AEt)=>{"use strict";var REt=eu(),KSe=TEt(),$Yn=WSe(),eZn=LZ();function YSe(e){e.cancelToken&&e.cancelToken.throwIfRequested()}AEt.exports=function(t){YSe(t),t.headers=t.headers||{},t.data=KSe.call(t,t.data,t.headers,t.transformRequest),t.headers=REt.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),REt.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var n=t.adapter||eZn.adapter;return n(t).then(function(i){return YSe(t),i.data=KSe.call(t,i.data,i.headers,t.transformResponse),i},function(i){return $Yn(i)||(YSe(t),i&&i.response&&(i.response.data=KSe.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})}});var ZSe=w((Fhi,kEt)=>{"use strict";var Ec=eu();kEt.exports=function(t,n){n=n||{};var r={},i=["url","method","data"],s=["headers","auth","proxy","params"],o=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function c(f,p){return Ec.isPlainObject(f)&&Ec.isPlainObject(p)?Ec.merge(f,p):Ec.isPlainObject(p)?Ec.merge({},p):Ec.isArray(p)?p.slice():p}function u(f){Ec.isUndefined(n[f])?Ec.isUndefined(t[f])||(r[f]=c(void 0,t[f])):r[f]=c(t[f],n[f])}Ec.forEach(i,function(p){Ec.isUndefined(n[p])||(r[p]=c(void 0,n[p]))}),Ec.forEach(s,u),Ec.forEach(o,function(p){Ec.isUndefined(n[p])?Ec.isUndefined(t[p])||(r[p]=c(void 0,t[p])):r[p]=c(void 0,n[p])}),Ec.forEach(a,function(p){p in n?r[p]=c(t[p],n[p]):p in t&&(r[p]=c(void 0,t[p]))});var l=i.concat(s).concat(o).concat(a),d=Object.keys(t).concat(Object.keys(n)).filter(function(p){return l.indexOf(p)===-1});return Ec.forEach(d,u),r}});var NEt=w((jhi,PEt)=>{"use strict";var xEt=GSe(),JSe={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){JSe[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var IEt={},tZn=xEt.version.split(".");function OEt(e,t){for(var n=t?t.split("."):tZn,r=e.split("."),i=0;i<3;i++){if(n[i]>r[i])return!0;if(n[i]0;){var s=r[i],o=t[s];if(o){var a=e[s],c=a===void 0||o(a,s,e);if(c!==!0)throw new TypeError("option "+s+" must be "+c);continue}if(n!==!0)throw Error("Unknown option "+s)}}PEt.exports={isOlderVersion:OEt,assertOptions:nZn,validators:JSe}});var FEt=w((Hhi,UEt)=>{"use strict";var DEt=eu(),rZn=RZ(),CEt=Cbt(),MEt=wEt(),UZ=ZSe(),LEt=NEt(),$0=LEt.validators;function I1(e){this.defaults=e,this.interceptors={request:new CEt,response:new CEt}}I1.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=UZ(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var n=t.transitional;n!==void 0&&LEt.assertOptions(n,{silentJSONParsing:$0.transitional($0.boolean,"1.0.0"),forcedJSONParsing:$0.transitional($0.boolean,"1.0.0"),clarifyTimeoutError:$0.transitional($0.boolean,"1.0.0")},!1);var r=[],i=!0;this.interceptors.request.forEach(function(f){typeof f.runWhen=="function"&&f.runWhen(t)===!1||(i=i&&f.synchronous,r.unshift(f.fulfilled,f.rejected))});var s=[];this.interceptors.response.forEach(function(f){s.push(f.fulfilled,f.rejected)});var o;if(!i){var a=[MEt,void 0];for(Array.prototype.unshift.apply(a,r),a=a.concat(s),o=Promise.resolve(t);a.length;)o=o.then(a.shift(),a.shift());return o}for(var c=t;r.length;){var u=r.shift(),l=r.shift();try{c=u(c)}catch(d){l(d);break}}try{o=MEt(c)}catch(d){return Promise.reject(d)}for(;s.length;)o=o.then(s.shift(),s.shift());return o};I1.prototype.getUri=function(t){return t=UZ(this.defaults,t),rZn(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};DEt.forEach(["delete","get","head","options"],function(t){I1.prototype[t]=function(n,r){return this.request(UZ(r||{},{method:t,url:n,data:(r||{}).data}))}});DEt.forEach(["post","put","patch"],function(t){I1.prototype[t]=function(n,r,i){return this.request(UZ(i||{},{method:t,url:n,data:r}))}});UEt.exports=I1});var QSe=w((qhi,jEt)=>{"use strict";function XSe(e){this.message=e}XSe.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};XSe.prototype.__CANCEL__=!0;jEt.exports=XSe});var qEt=w((Bhi,HEt)=>{"use strict";var iZn=QSe();function FZ(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(i){t=i});var n=this;e(function(i){n.reason||(n.reason=new iZn(i),t(n.reason))})}FZ.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};FZ.source=function(){var t,n=new FZ(function(i){t=i});return{token:n,cancel:t}};HEt.exports=FZ});var zEt=w((zhi,BEt)=>{"use strict";BEt.exports=function(t){return function(r){return t.apply(null,r)}}});var VEt=w((Ghi,GEt)=>{"use strict";GEt.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var YEt=w((Vhi,$Se)=>{"use strict";var WEt=eu(),sZn=ESe(),jZ=FEt(),oZn=ZSe(),aZn=LZ();function KEt(e){var t=new jZ(e),n=sZn(jZ.prototype.request,t);return WEt.extend(n,jZ.prototype,t),WEt.extend(n,t),n}var rp=KEt(aZn);rp.Axios=jZ;rp.create=function(t){return KEt(oZn(rp.defaults,t))};rp.Cancel=QSe();rp.CancelToken=qEt();rp.isCancel=WSe();rp.all=function(t){return Promise.all(t)};rp.spread=zEt();rp.isAxiosError=VEt();$Se.exports=rp;$Se.exports.default=rp});var JEt=w((Whi,ZEt)=>{ZEt.exports=YEt()});var QEt=w((Khi,XEt)=>{var ex=1e3,tx=ex*60,nx=tx*60,Tv=nx*24,cZn=Tv*7,uZn=Tv*365.25;XEt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return lZn(e);if(n==="number"&&isFinite(e))return t.long?fZn(e):dZn(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function lZn(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*uZn;case"weeks":case"week":case"w":return n*cZn;case"days":case"day":case"d":return n*Tv;case"hours":case"hour":case"hrs":case"hr":case"h":return n*nx;case"minutes":case"minute":case"mins":case"min":case"m":return n*tx;case"seconds":case"second":case"secs":case"sec":case"s":return n*ex;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function dZn(e){var t=Math.abs(e);return t>=Tv?Math.round(e/Tv)+"d":t>=nx?Math.round(e/nx)+"h":t>=tx?Math.round(e/tx)+"m":t>=ex?Math.round(e/ex)+"s":e+"ms"}function fZn(e){var t=Math.abs(e);return t>=Tv?HZ(e,t,Tv,"day"):t>=nx?HZ(e,t,nx,"hour"):t>=tx?HZ(e,t,tx,"minute"):t>=ex?HZ(e,t,ex,"second"):e+" ms"}function HZ(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+" "+r+(i?"s":"")}});var ebe=w((Yhi,$Et)=>{function pZn(e){n.debug=n,n.default=n,n.coerce=c,n.disable=s,n.enable=i,n.enabled=o,n.humanize=QEt(),n.destroy=u,Object.keys(e).forEach(l=>{n[l]=e[l]}),n.names=[],n.skips=[],n.formatters={};function t(l){let d=0;for(let f=0;f{if(T==="%%")return"%";E++;let A=n.formatters[R];if(typeof A=="function"){let x=g[E];T=A.call(y,x),g.splice(E,1),E--}return T}),n.formatArgs.call(y,g),(y.log||n.log).apply(y,g)}return m.namespace=l,m.useColors=n.useColors(),m.color=n.selectColor(l),m.extend=r,m.destroy=n.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==n.namespaces&&(p=n.namespaces,h=n.enabled(l)),h),set:g=>{f=g}}),typeof n.init=="function"&&n.init(m),m}function r(l,d){let f=n(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function i(l){n.save(l),n.namespaces=l,n.names=[],n.skips=[];let d,f=(typeof l=="string"?l:"").split(/[\s,]+/),p=f.length;for(d=0;d"-"+d)].join(",");return n.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let d,f;for(d=0,f=n.skips.length;d{Ul.formatArgs=mZn;Ul.save=gZn;Ul.load=yZn;Ul.useColors=hZn;Ul.storage=SZn();Ul.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ul.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function hZn(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function mZn(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+qZ.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(n++,i==="%c"&&(r=n))}),e.splice(r,0,t)}Ul.log=console.debug||console.log||(()=>{});function gZn(e){try{e?Ul.storage.setItem("debug",e):Ul.storage.removeItem("debug")}catch{}}function yZn(){let e;try{e=Ul.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function SZn(){try{return localStorage}catch{}}qZ.exports=ebe()(Ul);var{formatters:bZn}=qZ.exports;bZn.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var n_t=w((La,zZ)=>{var EZn=K("tty"),BZ=K("util");La.init=kZn;La.log=RZn;La.formatArgs=TZn;La.save=AZn;La.load=wZn;La.useColors=_Zn;La.destroy=BZ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");La.colors=[6,2,3,4,5,1];try{let e=pj();e&&(e.stderr||e).level>=2&&(La.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}La.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function _Zn(){return"colors"in La.inspectOpts?!!La.inspectOpts.colors:EZn.isatty(process.stderr.fd)}function TZn(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,i="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${i};1m${t} \x1B[0m`;e[0]=s+e[0].split(` `).join(` -`+s),e.push(i+"m+"+BZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=vZn()+t+" "+e[0]}function vZn(){return La.inspectOpts.hideDate?"":new Date().toISOString()+" "}function RZn(...e){return process.stderr.write(qZ.format(...e)+` -`)}function AZn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function wZn(){return process.env.DEBUG}function kZn(e){e.inspectOpts={};let t=Object.keys(La.inspectOpts);for(let n=0;nt.trim()).join(" ")};t_t.O=function(e){return this.inspectOpts.colors=this.useColors,qZ.inspect(e,this.inspectOpts)}});var tbe=w((Zhi,ebe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?ebe.exports=e_t():ebe.exports=n_t()});var i_t=w((Jhi,r_t)=>{var{Transform:IZn}=K("stream"),nbe=class extends IZn{constructor(t={}){super(t),this.host=t.host||"localhost",this.replaced=!1}_transform(t,n,r){r(null,this.replaced?t:t.toString().replace(/(\r\n[Hh]ost: )\S+/,(i,s)=>(this.replaced=!0,s+this.host)))}};r_t.exports=nbe});var a_t=w((Qhi,o_t)=>{var{EventEmitter:xZn}=K("events"),Zh=tbe()("localtunnel:client"),rbe=K("fs"),s_t=K("net"),OZn=K("tls"),PZn=i_t();o_t.exports=class extends xZn{constructor(t={}){super(t),this.opts=t}open(){let t=this.opts,n=t.remote_ip||t.remote_host,r=t.remote_port,i=t.local_host||"localhost",s=t.local_port,o=t.local_https?"https":"http",a=t.allow_invalid_cert;Zh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=s_t.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Zh("got remote connection error",l.message),l.code==="ECONNREFUSED"&&this.emit("error",new Error(`connection refused: ${n}:${r} (check your firewall settings)`)),c.end()});let u=()=>{if(c.destroyed){Zh("remote destroyed"),this.emit("dead");return}Zh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Zh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:rbe.readFileSync(t.local_cert),key:rbe.readFileSync(t.local_key),ca:t.local_ca?[rbe.readFileSync(t.local_ca)]:void 0},d=t.local_https?OZn.connect({host:i,port:s,...l()}):s_t.connect({host:i,port:s}),f=()=>{Zh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Zh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Zh("connected locally"),c.resume();let p=c;t.local_host&&(Zh("transform Host header to %s",t.local_host),p=c.pipe(new PZn({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Zh("local connection closed [%s]",h)})})};c.on("data",l=>{let d=l.toString().match(/^(\w+) (\S+)/);d&&this.emit("request",{method:d[1],path:d[2]})}),c.once("connect",()=>{this.emit("open",c),u()})}}});var l_t=w((emi,u_t)=>{var{parse:NZn}=K("url"),{EventEmitter:c_t}=K("events"),CZn=JEt(),k1=tbe()("localtunnel:client"),MZn=a_t();u_t.exports=class extends c_t{constructor(t={}){super(t),this.opts=t,this.closed=!1,this.opts.host||(this.opts.host="https://localtunnel.me")}_getInfo(t){let{id:n,ip:r,port:i,url:s,cached_url:o,max_conn_count:a}=t,{host:c,port:u,local_host:l}=this.opts,{local_https:d,local_cert:f,local_key:p,local_ca:h,allow_invalid_cert:m}=this.opts;return{name:n,url:s,cached_url:o,max_conn:a||1,remote_host:NZn(c).hostname,remote_ip:r,remote_port:i,local_port:u,local_host:l,local_https:d,local_cert:f,local_key:p,local_ca:h,allow_invalid_cert:m}}_init(t){let n=this.opts,r=this._getInfo.bind(this),i={responseType:"json"},s=`${n.host}/`,o=n.subdomain,a=s+(o||"?new");(function c(){CZn.get(a,i).then(u=>{let l=u.data;if(k1("got tunnel information",u.data),u.status!==200){let d=new Error(l&&l.message||"localtunnel server returned an error, please try again");return t(d)}t(null,r(l))}).catch(u=>(k1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(c_t.defaultMaxListeners||10)),this.tunnelCluster=new MZn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{k1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,k1("tunnel open [total: %d]",n);let i=()=>{r.destroy()};if(this.closed)return i();this.once("close",i),r.once("close",()=>{this.removeListener("close",i)})}),this.tunnelCluster.on("dead",()=>{n--,k1("tunnel dead [total: %d]",n),!this.closed&&this.tunnelCluster.open()}),this.tunnelCluster.on("request",r=>{this.emit("request",r)});for(let r=0;r{if(n)return t(n);this.clientId=r.name,this.url=r.url,r.cached_url&&(this.cachedUrl=r.cached_url),this._establish(r),t()})}close(){this.closed=!0,this.emit("close")}}});var f_t=w((tmi,d_t)=>{var DZn=l_t();d_t.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new DZn(i);return s?(o.open(a=>a?s(a):s(null,o)),o):new Promise((a,c)=>o.open(u=>u?c(u):a(o)))}});var T_t={};Ar(T_t,{__setActiveTunnelForTesting:()=>BZn,buildReviewUrl:()=>Av,clearE2EKey:()=>lbe,closeTunnel:()=>cbe,e2eEncrypt:()=>ube,getTunnelUrl:()=>__t,isE2EActive:()=>O1,isRemoteReviewEnabled:()=>Bi,isTunnelOpen:()=>HZn,openTunnel:()=>Hg,signJWT:()=>b_t,verifyTunnelJWT:()=>Jh});import{createCipheriv as LZn,createHmac as g_t,randomBytes as obe,timingSafeEqual as UZn}from"node:crypto";async function jZn(){if(!(!Ts||Rv||vv))try{let e=await fetch(`${Ts.url}/health`,{headers:{"bypass-tunnel-reminder":"1"},signal:AbortSignal.timeout(1e4)});if(!e.ok)throw new Error(`HTTP ${e.status}`)}catch{console.error("[haiku] Tunnel health check failed \u2014 reconnecting"),Ts?.close(),Ts=null,sbe()}}function S_t(){zZ(),I1=setInterval(jZn,FZn),I1.unref()}function zZ(){I1&&(clearInterval(I1),I1=null)}function p_t(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function b_t(e){let t=p_t(JSON.stringify({alg:"HS256",typ:"JWT"})),n=p_t(JSON.stringify(e)),r=g_t("sha256",y_t).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Jh(e,t){let n=e.split(".");if(n.length!==3)return{ok:!1,reason:"malformed"};let[r,i,s]=n;if(!r||!i||!s)return{ok:!1,reason:"malformed"};try{let f=Buffer.from(r,"base64url").toString("utf-8"),p=JSON.parse(f);if(p.alg!=="HS256")return{ok:!1,reason:"bad_alg"};if(p.typ!==void 0&&p.typ!=="JWT")return{ok:!1,reason:"bad_typ"}}catch{return{ok:!1,reason:"malformed"}}let o=g_t("sha256",y_t).update(`${r}.${i}`).digest("base64url"),a,c;try{a=Buffer.from(s,"base64url"),c=Buffer.from(o,"base64url")}catch{return{ok:!1,reason:"malformed"}}if(a.length===0||a.length!==c.length)return{ok:!1,reason:"bad_signature"};if(!UZn(a,c))return{ok:!1,reason:"bad_signature"};let u;try{let f=Buffer.from(i,"base64url").toString("utf-8");u=JSON.parse(f)}catch{return{ok:!1,reason:"malformed"}}let l=Math.floor(Date.now()/1e3);if(typeof u.exp!="number"||u.exp<=l)return{ok:!1,reason:"expired"};let d=__t();return!d||u.tun!==d?{ok:!1,reason:"tunnel_mismatch"}:t!==null&&u.sid!==t?{ok:!1,reason:"sid_mismatch"}:{ok:!0,payload:u}}async function sbe(){if(vv||Rv||!ibe)return;vv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,abe.default)({port:ibe});Ts=r,E_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),S_t(),vv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}vv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function E_t(e){e.on("close",()=>{Ts===e&&(Ts=null,zZ(),console.error("[haiku] Tunnel closed unexpectedly"),Rv||sbe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,zZ(),Rv||sbe())})}async function Hg(e){if(Ts)return Ts.url;if(vv){let n=Date.now()+h_t;if(await new Promise((r,i)=>{let s=setInterval(()=>{vv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${h_t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}ibe=e,Rv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${m_t}ms`)),m_t)),i=await Promise.race([(0,abe.default)({port:e}),r]);return Ts=i,E_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),S_t(),i.url}catch(r){console.error(`[haiku] Tunnel open failed (attempt ${n+1}/${t}):`,r instanceof Error?r.message:r),nsetTimeout(i,1e3*(n+1)))}throw new Error("Failed to open localtunnel after 3 attempts")}function cbe(){Rv=!0,zZ(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function __t(){return Ts?.url??null}function HZn(){return Ts!==null}function Bi(){return Go.remoteReview}function Av(e,t,n){let r=obe(32);x1.set(e,r);let i=Math.floor(Date.now()/1e3),s=b_t({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${qZn}/review/#${s}`}function ube(e,t){let n=x1.get(e);if(!n)return null;let r=obe(12),i=LZn("aes-256-gcm",n,r),s=typeof t=="string"?Buffer.from(t,"utf-8"):t,o=Buffer.concat([i.update(s),i.final()]),a=i.getAuthTag();return Buffer.concat([r,a,o]).toString("base64url")}function O1(e){return e?x1.has(e):x1.size>0}function lbe(e){x1.delete(e)}function BZn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var abe,y_t,x1,Ts,ibe,vv,Rv,I1,FZn,h_t,m_t,qZn,Xh=v(()=>{"use strict";abe=Re(f_t(),1);Ci();y_t=obe(32),x1=new Map,Ts=null,ibe=null,vv=!1,Rv=!1,I1=null,FZn=3e4;h_t=3e4,m_t=15e3;qZn=bf.siteUrl});import{randomBytes as zZn}from"node:crypto";function VZn(){let e=process.env.HAIKU_ALLOWED_ORIGINS;return!e||e.trim()===""?["http://localhost:*"]:e.split(",").map(t=>t.trim()).filter(t=>t.length>0)}function w_t(e,t){if(!e)return!1;for(let n of t){if(n===e||n==="*")return!0;if(n.endsWith(":*")){let r=n.slice(0,-2);if(e.startsWith(`${r}:`)){let i=e.slice(r.length+1);if(/^\d+$/.test(i))return!0}}if(n.includes("://*.")){let[r,i]=n.split("://*.");if(e.startsWith(`${r}://`)){let s=e.slice(r.length+3);if(s.endsWith(`.${i}`)||s===i)return!0}}}return!1}function WZn(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function KZn(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return v_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?v_t:t}function k_t(e){let t=zZn(32).toString("base64url");return dbe.set(e,{nonce:t,expiresAt:Date.now()+KZn()}),t}function I_t(e){let t=dbe.get(e);return t?t.expiresAt{if(!Bi())return n.send({nonce:"local-mode-no-csrf-required"});let r=P1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Jh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=k_t(i.payload.sid);return n.send({nonce:s})})}var GZn,R_t,A_t,v_t,dbe,fbe=v(()=>{"use strict";Xh();qg();GZn=new Set(["POST","PUT","PATCH","DELETE"]),R_t="query_param_token_disallowed_on_mutating_route",A_t="X-Haiku-CSRF";v_t=3600*1e3;dbe=new Map});function P1(e){let t=e.headers.authorization;if(t){let r=t.match(/^Bearer\s+(.+)$/i);if(r){let i=r[1].trim();if(i)return i}}return e.query?.t?.trim()||null}function zn(e,t,n){if(!Bi())return!0;let r=P1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Jh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function nx(e,t,n){if(!Bi())return!0;let r=P1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Jh(r,null);if(!i.ok)return t.status(401).send({error:"unauthorized",reason:i.reason}),!1;let s=i.payload.sid,o=$t(s);return o?(o.session_type==="review"?o.intent_slug:void 0)!==n?(t.status(403).send({error:"forbidden_cross_session",reason:"intent_mismatch"}),!1):!0:(t.status(403).send({error:"forbidden_cross_session",reason:"unknown_session"}),!1)}var rx,qg=v(()=>{"use strict";$c();Xh();fbe();rx=nx});import{existsSync as P_t}from"node:fs";import{join as N_t}from"node:path";function YZn(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function Bb(e,t,n){let r=n.safeParse(t);if(!r.success){let i=r.error.issues.map(s=>({code:s.code,message:s.message,path:s.path}));return YZn(e,i),{ok:!1}}return{ok:!0,data:r.data}}function gn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function Ua(e){try{let t=pe(e);return P_t(N_t(t,"intent.md"))}catch{return!1}}function Qh(e,t){try{let n=pe(e);return P_t(N_t(n,"stages",t))}catch{return!1}}var wv=v(()=>{"use strict";Ge()});import{existsSync as GZ,readdirSync as pbe,readFileSync as ZZn}from"node:fs";import{join as C1}from"node:path";function M_t(e){return typeof e!="string"||e.length<=C_t?e:`${e.slice(0,C_t)}\u2026`}function JZn(e){let t={...e};t.agent_rationale=M_t(e.agent_rationale);let n=e.classifications;return Array.isArray(n)&&(t.classifications=n.map(r=>r===null||typeof r!="object"?r:{...r,rationale_excerpt:M_t(r.rationale_excerpt)})),t}function XZn(e){return/^DA-\d+$/.test(e)}function N1(e){try{let t=ZZn(e,"utf-8");return JSON.parse(t)}catch{return null}}function QZn(e){let t=pe(e),n=C1(t,"stages");if(!GZ(n))return[];let r=[],i;try{i=pbe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=C1(n,s,"drift-assessments");if(!GZ(o))continue;let a;try{a=pbe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=C1(o,c),d=N1(l),f=typeof d?.created_at=="string"?d.created_at:"1970-01-01T00:00:00Z";r.push({absPath:l,stage:s,id:u,createdAt:f})}}return r.sort((s,o)=>new Date(o.createdAt).getTime()-new Date(s.createdAt).getTime()),r}function D_t(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Ua(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}let i=t.query,s=50;if(i.limit!==void 0){let m=Number.parseInt(i.limit,10);if(!Number.isFinite(m)||m<1){n.status(400).send({error:"bad_param",code:"bad_param",message:"limit must be a positive integer"});return}s=Math.min(m,200)}let o=null;if(i.since!==void 0){let m=Date.parse(i.since);if(Number.isNaN(m)){n.status(400).send({error:"bad_param",code:"bad_param",message:"since must be a valid RFC 3339 timestamp"});return}o=m}let a=i.stage??null,c=i.outcome??null,l=QZn(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let g=N1(m.absPath);if(!g)return!1;let y=g.findings;if(!Array.isArray(y)||!y.some(b=>b.stage===a))return!1}if(c!==null){let g=N1(m.absPath);if(!g)return!1;let y=g.classifications;if(!Array.isArray(y)||!y.some(b=>b.outcome===c))return!1}return!0}),d=l.length,f=d>s,p=l.slice(0,s),h=[];for(let m of p){let g=N1(m.absPath);g!==null&&h.push(JZn(g))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!gn(r)){n.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Ua(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(!XZn(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=pe(r),o=C1(s,"stages");if(!GZ(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=pbe(o,{withFileTypes:!0}).filter(c=>c.isDirectory()).map(c=>c.name)}catch{n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}for(let c of a){let u=C1(o,c,"drift-assessments",`${i}.json`);if(GZ(u)){let l=N1(u);if(l===null){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}n.send({ok:!0,assessment:l});return}}n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"})})}var C_t,L_t=v(()=>{"use strict";Ge();qg();wv();C_t=256});import{createReadStream as $Zn,existsSync as e6n}from"node:fs";function VZ(e,t){e.status(400).send({error:t,code:t})}function hbe(e,t){e.status(404).send({error:t,code:t})}function F_t(e,t){if(!e6n(t)){hbe(e,"sidecar_not_found");return}let n=Myt(t),r=n?t6n[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send($Zn(t))}function j_t(e){e.get("/api/intents/:intent/baseline-content/stage/:stage/:sha256",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,sha256:s}=t.params;if(!gn(r)||!gn(i)){VZ(n,"bad_param");return}if(!U_t.test(s)){VZ(n,"bad_sha");return}if(!Ua(r)){hbe(n,"intent_not_found");return}let o=Dyt(pe(r),i,s);F_t(n,o)}),e.get("/api/intents/:intent/baseline-content/intent/:sha256",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,sha256:i}=t.params;if(!gn(r)){VZ(n,"bad_param");return}if(!U_t.test(i)){VZ(n,"bad_sha");return}if(!Ua(r)){hbe(n,"intent_not_found");return}let s=Lyt(pe(r),i);F_t(n,s)})}var U_t,t6n,H_t=v(()=>{"use strict";w0();Ge();qg();wv();U_t=/^[0-9a-f]{64}$/,t6n={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as n6n}from"node:zlib";var r6n,Vd,WZ=v(()=>{"use strict";r6n="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",Vd=n6n(Buffer.from(r6n,"base64")).toString("utf-8")});import{existsSync as ip,readdirSync as ix,readFileSync as kv,writeFileSync as i6n}from"node:fs";import{join as ko}from"node:path";function KZ(e){let t=pe(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(kv(n,"utf8")).data,i=r.studio||"",s=r.mode||"continuous";if(!i)return{ok:!1,error:"intent_missing_studio"};let o=Fs(i);if(!o.includes(e.targetStage))return{ok:!1,error:"stage_not_in_studio",details:{studio:i,stages:o,targetStage:e.targetStage}};let a=o.indexOf(e.targetStage),c=o.slice(0,a+1),u=[],l=[];for(let y of c){let b=ko(t,"stages",y,"units");if(!ip(b))continue;let S=qye(i,y,s),E=Bye(i,y,s);for(let _ of ix(b).filter(T=>T.endsWith(".md"))){let T=ko(b,_),R=re(kv(T,"utf8")).data,A=Array.isArray(R.iterations)?R.iterations:[],x=A[A.length-1];if(!x||x.result!=="advance"){u.push({stage:y,unit:_,reason:"unit has not reached terminal advance \u2014 debug tool refuses to sign units that have NOT moved through all hats"});continue}l.push({stage:y,unitPath:T,reviewRoles:S,approvalRoles:E,fm:R})}}if(u.length>0)return{ok:!1,error:"units_not_terminal_advance",details:{refusedUnits:u,signed:0}};let d=new Set,f=0;for(let y of l){let b=Array.isArray(y.fm.outputs)?y.fm.outputs:[],S=y.fm.reviews&&typeof y.fm.reviews=="object"?{...y.fm.reviews}:{},E=Array.isArray(y.fm.inputs)?y.fm.inputs:[];for(let T of y.reviewRoles)S[T]||(S[T]=Cl(y.unitPath,{intentDir:t,unitInputs:E}));let _=y.fm.approvals&&typeof y.fm.approvals=="object"?{...y.fm.approvals}:{};for(let T of y.approvalRoles)_[T]||(_[T]=Bd(t,b));Me(y.unitPath,"reviews",S),Me(y.unitPath,"approvals",_),d.add(y.stage),f++}let p=c.filter(y=>d.has(y)),h=0;for(let y of p){let b=ko(t,"stages",y),S=ko(b,"elaboration.md"),E=new Date().toISOString();if(ip(S)){let _=re(kv(S,"utf8")).data,T=!1;_.verified_at||(Me(S,"verified_at",E),T=!0),_.decompose_verified_at||(Me(S,"decompose_verified_at",E),T=!0),T&&h++}else{let _=`# Elaboration (synthesized by /haiku:haiku-debug) +`+s),e.push(i+"m+"+zZ.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=vZn()+t+" "+e[0]}function vZn(){return La.inspectOpts.hideDate?"":new Date().toISOString()+" "}function RZn(...e){return process.stderr.write(BZ.format(...e)+` +`)}function AZn(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function wZn(){return process.env.DEBUG}function kZn(e){e.inspectOpts={};let t=Object.keys(La.inspectOpts);for(let n=0;nt.trim()).join(" ")};t_t.O=function(e){return this.inspectOpts.colors=this.useColors,BZ.inspect(e,this.inspectOpts)}});var nbe=w((Zhi,tbe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?tbe.exports=e_t():tbe.exports=n_t()});var i_t=w((Jhi,r_t)=>{var{Transform:IZn}=K("stream"),rbe=class extends IZn{constructor(t={}){super(t),this.host=t.host||"localhost",this.replaced=!1}_transform(t,n,r){r(null,this.replaced?t:t.toString().replace(/(\r\n[Hh]ost: )\S+/,(i,s)=>(this.replaced=!0,s+this.host)))}};r_t.exports=rbe});var a_t=w((Qhi,o_t)=>{var{EventEmitter:xZn}=K("events"),Zh=nbe()("localtunnel:client"),ibe=K("fs"),s_t=K("net"),OZn=K("tls"),PZn=i_t();o_t.exports=class extends xZn{constructor(t={}){super(t),this.opts=t}open(){let t=this.opts,n=t.remote_ip||t.remote_host,r=t.remote_port,i=t.local_host||"localhost",s=t.local_port,o=t.local_https?"https":"http",a=t.allow_invalid_cert;Zh("establishing tunnel %s://%s:%s <> %s:%s",o,i,s,n,r);let c=s_t.connect({host:n,port:r});c.setKeepAlive(!0),c.on("error",l=>{Zh("got remote connection error",l.message),l.code==="ECONNREFUSED"&&this.emit("error",new Error(`connection refused: ${n}:${r} (check your firewall settings)`)),c.end()});let u=()=>{if(c.destroyed){Zh("remote destroyed"),this.emit("dead");return}Zh("connecting locally to %s://%s:%d",o,i,s),c.pause(),a&&Zh("allowing invalid certificates");let l=()=>a?{rejectUnauthorized:!1}:{cert:ibe.readFileSync(t.local_cert),key:ibe.readFileSync(t.local_key),ca:t.local_ca?[ibe.readFileSync(t.local_ca)]:void 0},d=t.local_https?OZn.connect({host:i,port:s,...l()}):s_t.connect({host:i,port:s}),f=()=>{Zh("remote close"),this.emit("dead"),d.end()};c.once("close",f),d.once("error",p=>{if(Zh("local error %s",p.message),d.end(),c.removeListener("close",f),p.code!=="ECONNREFUSED")return c.end();setTimeout(u,1e3)}),d.once("connect",()=>{Zh("connected locally"),c.resume();let p=c;t.local_host&&(Zh("transform Host header to %s",t.local_host),p=c.pipe(new PZn({host:t.local_host}))),p.pipe(d).pipe(c),d.once("close",h=>{Zh("local connection closed [%s]",h)})})};c.on("data",l=>{let d=l.toString().match(/^(\w+) (\S+)/);d&&this.emit("request",{method:d[1],path:d[2]})}),c.once("connect",()=>{this.emit("open",c),u()})}}});var l_t=w((emi,u_t)=>{var{parse:NZn}=K("url"),{EventEmitter:c_t}=K("events"),CZn=JEt(),x1=nbe()("localtunnel:client"),MZn=a_t();u_t.exports=class extends c_t{constructor(t={}){super(t),this.opts=t,this.closed=!1,this.opts.host||(this.opts.host="https://localtunnel.me")}_getInfo(t){let{id:n,ip:r,port:i,url:s,cached_url:o,max_conn_count:a}=t,{host:c,port:u,local_host:l}=this.opts,{local_https:d,local_cert:f,local_key:p,local_ca:h,allow_invalid_cert:m}=this.opts;return{name:n,url:s,cached_url:o,max_conn:a||1,remote_host:NZn(c).hostname,remote_ip:r,remote_port:i,local_port:u,local_host:l,local_https:d,local_cert:f,local_key:p,local_ca:h,allow_invalid_cert:m}}_init(t){let n=this.opts,r=this._getInfo.bind(this),i={responseType:"json"},s=`${n.host}/`,o=n.subdomain,a=s+(o||"?new");(function c(){CZn.get(a,i).then(u=>{let l=u.data;if(x1("got tunnel information",u.data),u.status!==200){let d=new Error(l&&l.message||"localtunnel server returned an error, please try again");return t(d)}t(null,r(l))}).catch(u=>(x1(`tunnel server offline: ${u.message}, retry 1s`),setTimeout(c,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(c_t.defaultMaxListeners||10)),this.tunnelCluster=new MZn(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",r=>{x1("got socket error",r.message),this.emit("error",r)});let n=0;this.tunnelCluster.on("open",r=>{n++,x1("tunnel open [total: %d]",n);let i=()=>{r.destroy()};if(this.closed)return i();this.once("close",i),r.once("close",()=>{this.removeListener("close",i)})}),this.tunnelCluster.on("dead",()=>{n--,x1("tunnel dead [total: %d]",n),!this.closed&&this.tunnelCluster.open()}),this.tunnelCluster.on("request",r=>{this.emit("request",r)});for(let r=0;r{if(n)return t(n);this.clientId=r.name,this.url=r.url,r.cached_url&&(this.cachedUrl=r.cached_url),this._establish(r),t()})}close(){this.closed=!0,this.emit("close")}}});var f_t=w((tmi,d_t)=>{var DZn=l_t();d_t.exports=function(t,n,r){let i=typeof t=="object"?t:{...n,port:t},s=typeof t=="object"?n:r,o=new DZn(i);return s?(o.open(a=>a?s(a):s(null,o)),o):new Promise((a,c)=>o.open(u=>u?c(u):a(o)))}});var T_t={};Ar(T_t,{__setActiveTunnelForTesting:()=>BZn,buildReviewUrl:()=>Av,clearE2EKey:()=>dbe,closeTunnel:()=>ube,e2eEncrypt:()=>lbe,getTunnelUrl:()=>__t,isE2EActive:()=>N1,isRemoteReviewEnabled:()=>Bi,isTunnelOpen:()=>HZn,openTunnel:()=>Hg,signJWT:()=>b_t,verifyTunnelJWT:()=>Jh});import{createCipheriv as LZn,createHmac as g_t,randomBytes as abe,timingSafeEqual as UZn}from"node:crypto";async function jZn(){if(!(!Ts||Rv||vv))try{let e=await fetch(`${Ts.url}/health`,{headers:{"bypass-tunnel-reminder":"1"},signal:AbortSignal.timeout(1e4)});if(!e.ok)throw new Error(`HTTP ${e.status}`)}catch{console.error("[haiku] Tunnel health check failed \u2014 reconnecting"),Ts?.close(),Ts=null,obe()}}function S_t(){GZ(),O1=setInterval(jZn,FZn),O1.unref()}function GZ(){O1&&(clearInterval(O1),O1=null)}function p_t(e){return(typeof e=="string"?Buffer.from(e).toString("base64"):e.toString("base64")).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function b_t(e){let t=p_t(JSON.stringify({alg:"HS256",typ:"JWT"})),n=p_t(JSON.stringify(e)),r=g_t("sha256",y_t).update(`${t}.${n}`).digest("base64url");return`${t}.${n}.${r}`}function Jh(e,t){let n=e.split(".");if(n.length!==3)return{ok:!1,reason:"malformed"};let[r,i,s]=n;if(!r||!i||!s)return{ok:!1,reason:"malformed"};try{let f=Buffer.from(r,"base64url").toString("utf-8"),p=JSON.parse(f);if(p.alg!=="HS256")return{ok:!1,reason:"bad_alg"};if(p.typ!==void 0&&p.typ!=="JWT")return{ok:!1,reason:"bad_typ"}}catch{return{ok:!1,reason:"malformed"}}let o=g_t("sha256",y_t).update(`${r}.${i}`).digest("base64url"),a,c;try{a=Buffer.from(s,"base64url"),c=Buffer.from(o,"base64url")}catch{return{ok:!1,reason:"malformed"}}if(a.length===0||a.length!==c.length)return{ok:!1,reason:"bad_signature"};if(!UZn(a,c))return{ok:!1,reason:"bad_signature"};let u;try{let f=Buffer.from(i,"base64url").toString("utf-8");u=JSON.parse(f)}catch{return{ok:!1,reason:"malformed"}}let l=Math.floor(Date.now()/1e3);if(typeof u.exp!="number"||u.exp<=l)return{ok:!1,reason:"expired"};let d=__t();return!d||u.tun!==d?{ok:!1,reason:"tunnel_mismatch"}:t!==null&&u.sid!==t?{ok:!1,reason:"sid_mismatch"}:{ok:!0,payload:u}}async function obe(){if(vv||Rv||!sbe)return;vv=!0;let e=5;for(let t=0;tsetTimeout(r,n));try{let r=await(0,cbe.default)({port:sbe});Ts=r,E_t(r),console.error(`[haiku] Tunnel reconnected: ${r.url}`),S_t(),vv=!1;return}catch(r){console.error("[haiku] Tunnel reconnect failed:",r instanceof Error?r.message:r)}}vv=!1,console.error(`[haiku] Tunnel reconnect exhausted \u2014 giving up after ${e} attempts`)}function E_t(e){e.on("close",()=>{Ts===e&&(Ts=null,GZ(),console.error("[haiku] Tunnel closed unexpectedly"),Rv||obe())}),e.on("error",t=>{console.error("[haiku] Tunnel error:",t.message),Ts===e&&(Ts=null,GZ(),Rv||obe())})}async function Hg(e){if(Ts)return Ts.url;if(vv){let n=Date.now()+h_t;if(await new Promise((r,i)=>{let s=setInterval(()=>{vv?Date.now()>n&&(clearInterval(s),i(new Error(`openTunnel: timed out after ${h_t}ms waiting for an in-flight reconnect to settle`))):(clearInterval(s),r())},100)}),Ts)return Ts.url}sbe=e,Rv=!1;let t=3;for(let n=0;nsetTimeout(()=>o(new Error(`localtunnel did not respond within ${m_t}ms`)),m_t)),i=await Promise.race([(0,cbe.default)({port:e}),r]);return Ts=i,E_t(i),console.error(`[haiku] Tunnel opened: ${i.url}`),S_t(),i.url}catch(r){console.error(`[haiku] Tunnel open failed (attempt ${n+1}/${t}):`,r instanceof Error?r.message:r),nsetTimeout(i,1e3*(n+1)))}throw new Error("Failed to open localtunnel after 3 attempts")}function ube(){Rv=!0,GZ(),Ts&&(Ts.close(),Ts=null,console.error("[haiku] Tunnel closed"))}function __t(){return Ts?.url??null}function HZn(){return Ts!==null}function Bi(){return Go.remoteReview}function Av(e,t,n){let r=abe(32);P1.set(e,r);let i=Math.floor(Date.now()/1e3),s=b_t({tun:t,sid:e,typ:n,key:r.toString("base64url"),iat:i,exp:i+3600});return`${qZn}/review/#${s}`}function lbe(e,t){let n=P1.get(e);if(!n)return null;let r=abe(12),i=LZn("aes-256-gcm",n,r),s=typeof t=="string"?Buffer.from(t,"utf-8"):t,o=Buffer.concat([i.update(s),i.final()]),a=i.getAuthTag();return Buffer.concat([r,a,o]).toString("base64url")}function N1(e){return e?P1.has(e):P1.size>0}function dbe(e){P1.delete(e)}function BZn(e){e?Ts={url:e,close:()=>{Ts=null},on:()=>{}}:Ts=null}var cbe,y_t,P1,Ts,sbe,vv,Rv,O1,FZn,h_t,m_t,qZn,Xh=v(()=>{"use strict";cbe=Re(f_t(),1);Ci();y_t=abe(32),P1=new Map,Ts=null,sbe=null,vv=!1,Rv=!1,O1=null,FZn=3e4;h_t=3e4,m_t=15e3;qZn=bf.siteUrl});import{randomBytes as zZn}from"node:crypto";function VZn(){let e=process.env.HAIKU_ALLOWED_ORIGINS;return!e||e.trim()===""?["http://localhost:*"]:e.split(",").map(t=>t.trim()).filter(t=>t.length>0)}function w_t(e,t){if(!e)return!1;for(let n of t){if(n===e||n==="*")return!0;if(n.endsWith(":*")){let r=n.slice(0,-2);if(e.startsWith(`${r}:`)){let i=e.slice(r.length+1);if(/^\d+$/.test(i))return!0}}if(n.includes("://*.")){let[r,i]=n.split("://*.");if(e.startsWith(`${r}://`)){let s=e.slice(r.length+3);if(s.endsWith(`.${i}`)||s===i)return!0}}}return!1}function WZn(){let e=process.env.HAIKU_CSRF_NONCE_REQUIRED;return e==="true"||e==="1"}function KZn(){let e=process.env.HAIKU_CSRF_NONCE_TTL_MS;if(!e)return v_t;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?v_t:t}function k_t(e){let t=zZn(32).toString("base64url");return fbe.set(e,{nonce:t,expiresAt:Date.now()+KZn()}),t}function I_t(e){let t=fbe.get(e);return t?t.expiresAt{if(!Bi())return n.send({nonce:"local-mode-no-csrf-required"});let r=C1(t);if(!r)return n.status(401).send({error:"unauthorized",reason:"missing_token"});let i=Jh(r,null);if(!i.ok)return n.status(401).send({error:"unauthorized",reason:i.reason});let s=k_t(i.payload.sid);return n.send({nonce:s})})}var GZn,R_t,A_t,v_t,fbe,pbe=v(()=>{"use strict";Xh();qg();GZn=new Set(["POST","PUT","PATCH","DELETE"]),R_t="query_param_token_disallowed_on_mutating_route",A_t="X-Haiku-CSRF";v_t=3600*1e3;fbe=new Map});function C1(e){let t=e.headers.authorization;if(t){let r=t.match(/^Bearer\s+(.+)$/i);if(r){let i=r[1].trim();if(i)return i}}return e.query?.t?.trim()||null}function zn(e,t,n){if(!Bi())return!0;let r=C1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Jh(r,n);return i.ok?!0:(t.status(401).send({error:"unauthorized",reason:i.reason}),!1)}function rx(e,t,n){if(!Bi())return!0;let r=C1(e);if(!r)return t.status(401).send({error:"unauthorized",reason:"missing_token"}),!1;let i=Jh(r,null);if(!i.ok)return t.status(401).send({error:"unauthorized",reason:i.reason}),!1;let s=i.payload.sid,o=$t(s);return o?(o.session_type==="review"?o.intent_slug:void 0)!==n?(t.status(403).send({error:"forbidden_cross_session",reason:"intent_mismatch"}),!1):!0:(t.status(403).send({error:"forbidden_cross_session",reason:"unknown_session"}),!1)}var ix,qg=v(()=>{"use strict";$c();Xh();pbe();ix=rx});import{existsSync as P_t}from"node:fs";import{join as N_t}from"node:path";function YZn(e,t,n=400){let r={error:"validation_failed",issues:t};return e.status(n).send(r)}function Bb(e,t,n){let r=n.safeParse(t);if(!r.success){let i=r.error.issues.map(s=>({code:s.code,message:s.message,path:s.path}));return YZn(e,i),{ok:!1}}return{ok:!0,data:r.data}}function gn(e){let t;try{t=decodeURIComponent(e)}catch{return!1}return t.includes("\0")?!1:!/[/\\]|\.\./.test(t)}function Ua(e){try{let t=pe(e);return P_t(N_t(t,"intent.md"))}catch{return!1}}function Qh(e,t){try{let n=pe(e);return P_t(N_t(n,"stages",t))}catch{return!1}}var wv=v(()=>{"use strict";Ge()});import{existsSync as VZ,readdirSync as hbe,readFileSync as ZZn}from"node:fs";import{join as D1}from"node:path";function M_t(e){return typeof e!="string"||e.length<=C_t?e:`${e.slice(0,C_t)}\u2026`}function JZn(e){let t={...e};t.agent_rationale=M_t(e.agent_rationale);let n=e.classifications;return Array.isArray(n)&&(t.classifications=n.map(r=>r===null||typeof r!="object"?r:{...r,rationale_excerpt:M_t(r.rationale_excerpt)})),t}function XZn(e){return/^DA-\d+$/.test(e)}function M1(e){try{let t=ZZn(e,"utf-8");return JSON.parse(t)}catch{return null}}function QZn(e){let t=pe(e),n=D1(t,"stages");if(!VZ(n))return[];let r=[],i;try{i=hbe(n,{withFileTypes:!0}).filter(s=>s.isDirectory()).map(s=>s.name)}catch{return[]}for(let s of i){let o=D1(n,s,"drift-assessments");if(!VZ(o))continue;let a;try{a=hbe(o).filter(c=>/^DA-\d+\.json$/.test(c))}catch{continue}for(let c of a){let u=c.replace(/\.json$/,""),l=D1(o,c),d=M1(l),f=typeof d?.created_at=="string"?d.created_at:"1970-01-01T00:00:00Z";r.push({absPath:l,stage:s,id:u,createdAt:f})}}return r.sort((s,o)=>new Date(o.createdAt).getTime()-new Date(s.createdAt).getTime()),r}function D_t(e){e.get("/api/intents/:intent/assessments",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Ua(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}let i=t.query,s=50;if(i.limit!==void 0){let m=Number.parseInt(i.limit,10);if(!Number.isFinite(m)||m<1){n.status(400).send({error:"bad_param",code:"bad_param",message:"limit must be a positive integer"});return}s=Math.min(m,200)}let o=null;if(i.since!==void 0){let m=Date.parse(i.since);if(Number.isNaN(m)){n.status(400).send({error:"bad_param",code:"bad_param",message:"since must be a valid RFC 3339 timestamp"});return}o=m}let a=i.stage??null,c=i.outcome??null,l=QZn(r).filter(m=>{if(o!==null&&new Date(m.createdAt).getTime()<=o)return!1;if(a!==null){let g=M1(m.absPath);if(!g)return!1;let y=g.findings;if(!Array.isArray(y)||!y.some(b=>b.stage===a))return!1}if(c!==null){let g=M1(m.absPath);if(!g)return!1;let y=g.classifications;if(!Array.isArray(y)||!y.some(b=>b.outcome===c))return!1}return!0}),d=l.length,f=d>s,p=l.slice(0,s),h=[];for(let m of p){let g=M1(m.absPath);g!==null&&h.push(JZn(g))}n.send({ok:!0,assessments:h,total:d,has_more:f})}),e.get("/api/intents/:intent/assessments/:assessmentId",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,assessmentId:i}=t.params;if(!gn(r)){n.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Ua(r)){n.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(!XZn(i)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let s=pe(r),o=D1(s,"stages");if(!VZ(o)){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}let a;try{a=hbe(o,{withFileTypes:!0}).filter(c=>c.isDirectory()).map(c=>c.name)}catch{n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}for(let c of a){let u=D1(o,c,"drift-assessments",`${i}.json`);if(VZ(u)){let l=M1(u);if(l===null){n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"});return}n.send({ok:!0,assessment:l});return}}n.status(404).send({error:"assessment_not_found",code:"assessment_not_found"})})}var C_t,L_t=v(()=>{"use strict";Ge();qg();wv();C_t=256});import{createReadStream as $Zn,existsSync as e6n}from"node:fs";function WZ(e,t){e.status(400).send({error:t,code:t})}function mbe(e,t){e.status(404).send({error:t,code:t})}function F_t(e,t){if(!e6n(t)){mbe(e,"sidecar_not_found");return}let n=Myt(t),r=n?t6n[n]:"application/octet-stream";e.header("Content-Type",r),e.header("Cache-Control","public, max-age=31536000, immutable"),e.send($Zn(t))}function j_t(e){e.get("/api/intents/:intent/baseline-content/stage/:stage/:sha256",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,sha256:s}=t.params;if(!gn(r)||!gn(i)){WZ(n,"bad_param");return}if(!U_t.test(s)){WZ(n,"bad_sha");return}if(!Ua(r)){mbe(n,"intent_not_found");return}let o=Dyt(pe(r),i,s);F_t(n,o)}),e.get("/api/intents/:intent/baseline-content/intent/:sha256",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,sha256:i}=t.params;if(!gn(r)){WZ(n,"bad_param");return}if(!U_t.test(i)){WZ(n,"bad_sha");return}if(!Ua(r)){mbe(n,"intent_not_found");return}let s=Lyt(pe(r),i);F_t(n,s)})}var U_t,t6n,H_t=v(()=>{"use strict";k0();Ge();qg();wv();U_t=/^[0-9a-f]{64}$/,t6n={png:"image/png",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif"}});import{brotliDecompressSync as n6n}from"node:zlib";var r6n,Vd,KZ=v(()=>{"use strict";r6n="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",Vd=n6n(Buffer.from(r6n,"base64")).toString("utf-8")});import{existsSync as ip,readdirSync as sx,readFileSync as kv,writeFileSync as i6n}from"node:fs";import{join as ko}from"node:path";function YZ(e){let t=pe(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found",details:{slug:e.slug}};let r=re(kv(n,"utf8")).data,i=r.studio||"",s=r.mode||"continuous";if(!i)return{ok:!1,error:"intent_missing_studio"};let o=Fs(i);if(!o.includes(e.targetStage))return{ok:!1,error:"stage_not_in_studio",details:{studio:i,stages:o,targetStage:e.targetStage}};let a=o.indexOf(e.targetStage),c=o.slice(0,a+1),u=[],l=[];for(let y of c){let b=ko(t,"stages",y,"units");if(!ip(b))continue;let S=Bye(i,y,s),E=zye(i,y,s);for(let _ of sx(b).filter(T=>T.endsWith(".md"))){let T=ko(b,_),R=re(kv(T,"utf8")).data,A=Array.isArray(R.iterations)?R.iterations:[],x=A[A.length-1];if(!x||x.result!=="advance"){u.push({stage:y,unit:_,reason:"unit has not reached terminal advance \u2014 debug tool refuses to sign units that have NOT moved through all hats"});continue}l.push({stage:y,unitPath:T,reviewRoles:S,approvalRoles:E,fm:R})}}if(u.length>0)return{ok:!1,error:"units_not_terminal_advance",details:{refusedUnits:u,signed:0}};let d=new Set,f=0;for(let y of l){let b=Array.isArray(y.fm.outputs)?y.fm.outputs:[],S=y.fm.reviews&&typeof y.fm.reviews=="object"?{...y.fm.reviews}:{},E=Array.isArray(y.fm.inputs)?y.fm.inputs:[];for(let T of y.reviewRoles)S[T]||(S[T]=Cl(y.unitPath,{intentDir:t,unitInputs:E}));let _=y.fm.approvals&&typeof y.fm.approvals=="object"?{...y.fm.approvals}:{};for(let T of y.approvalRoles)_[T]||(_[T]=Bd(t,b));Me(y.unitPath,"reviews",S),Me(y.unitPath,"approvals",_),d.add(y.stage),f++}let p=c.filter(y=>d.has(y)),h=0;for(let y of p){let b=ko(t,"stages",y),S=ko(b,"elaboration.md"),E=new Date().toISOString();if(ip(S)){let _=re(kv(S,"utf8")).data,T=!1;_.verified_at||(Me(S,"verified_at",E),T=!0),_.decompose_verified_at||(Me(S,"decompose_verified_at",E),T=!0),T&&h++}else{let _=`# Elaboration (synthesized by /haiku:haiku-debug) This stage's units terminal-advanced through every hat without an elaboration.md being recorded. The debug recovery op synthesized this artifact so the cursor can walk past the elaborate phase. -`,T={recorded_at:E,verified_at:E,decompose_verified_at:E,intent:e.slug,stage:y,synthesized_by:"force_complete"};i6n(S,q_t.default.stringify(_,T)),h++}}let m=!1;if(a===o.length-1){let y=r.approvals&&typeof r.approvals=="object"?{...r.approvals}:{};for(let b of["spec","continuity","user","intent_quality_gates"])y[b]||(y[b]={at:new Date().toISOString()});Me(n,"approvals",y),m=!0}let g=0;if(e.closeOpenFeedback){let y=p.map(S=>ko(t,"stages",S,"feedback"));a===o.length-1&&y.push(ko(t,"feedback"));let b=new Date().toISOString();for(let S of y)if(ip(S))for(let E of ix(S).filter(_=>_.endsWith(".md"))){let _=ko(S,E),T=re(kv(_,"utf8")).data,R=T.closed_at,A=T.rejected_at;if(typeof R=="string"&&R.length>0||typeof A=="string"&&A.length>0)continue;Me(_,"closed_at",b);let x=T.closed_by;typeof x=="string"&&x.length>0||Me(_,"closed_by","force_complete"),g++}}return{ok:!0,result:{stages_processed:p,units_signed:f,intent_quality_gates_signed:m,feedback_closed:g,elaborations_sealed:h}}}function sx(e){let t=ko(pe(e.slug),"intent.md");return ip(t)?(Me(t,e.field,e.value),{ok:!0}):{ok:!1,error:"intent_not_found"}}function YZ(e){let t=pe(e.slug),n=ko(t,"stages");if(!ip(n))return{ok:!1,error:"no_stages_dir"};let r=0,i=0;for(let s of ix(n,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=ko(n,s.name,"units");if(ip(o))for(let a of ix(o).filter(c=>c.endsWith(".md"))){let c=ko(o,a),u=re(kv(c,"utf8")).data,l=Array.isArray(u.outputs)?u.outputs:[],d=u.reviews&&typeof u.reviews=="object"?{...u.reviews}:{},f=Array.isArray(u.inputs)?u.inputs:[];for(let h of Object.keys(d))d[h]=Cl(c,{intentDir:t,unitInputs:f}),r++;let p=u.approvals&&typeof u.approvals=="object"?{...u.approvals}:{};for(let h of Object.keys(p))p[h]=Bd(t,l),i++;Object.keys(d).length>0&&Me(c,"reviews",d),Object.keys(p).length>0&&Me(c,"approvals",p)}}return{ok:!0,reviews_refreshed:r,approvals_refreshed:i}}function ZZ(e){let t=pe(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found"};let i=re(kv(n,"utf8")).data.studio||"";if(!i)return{ok:!1,error:"intent_missing_studio"};let s=ko(t,"stages",e.stage,"units");if(!ip(s))return{ok:!1,error:"units_dir_not_found",details:{stage:e.stage}};let o=ix(s).filter(u=>u.endsWith(".md")).find(u=>{let l=u.replace(/\.md$/,"");if(l===e.unit||l.startsWith(`${e.unit}-`))return!0;let d=e.unit.match(/^(?:unit-)?(\d+)$/i);if(d){let f=Number.parseInt(d[1],10),p=l.match(/^unit-(\d+)-/);if(p&&Number.parseInt(p[1],10)===f)return!0}return!1});if(!o)return{ok:!1,error:"unit_not_found",details:{stage:e.stage,unit:e.unit}};let a=ko(s,o);if(Array.isArray(e.iterations)&&e.iterations.length===0)return{ok:!1,error:"use_haiku_unit_reset",details:{message:"Passing iterations: [] does NOT reset a unit \u2014 set_unit_iterations with no entries synthesizes a COMPLETED state (one advance per hat). To return a unit to pending (clear iterations, discard its worktree), use haiku_unit_reset { intent, stage, unit }."}};let c;if(e.iterations&&e.iterations.length>0){let u=new Date().toISOString();c=e.iterations.map(l=>({hat:l.hat,result:l.result,at:l.at||u}))}else{let u=Es(i,e.stage);if(u.length===0)return{ok:!1,error:"no_hats_defined_for_stage",details:{studio:i,stage:e.stage}};let l=new Date().toISOString();c=u.map(d=>({hat:d,result:"advance",at:l}))}return Me(a,"iterations",c),{ok:!0,unit_file:o,iterations_written:c.length}}function ox(e){let t=pe(e.slug),n=e.stage?ko(t,"stages",e.stage,"feedback"):ko(t,"feedback");if(!ip(n))return{ok:!1,error:"feedback_dir_not_found"};let r=e.feedbackId.match(/^(?:FB-)?(\d+)/i);if(!r)return{ok:!1,error:"invalid_feedback_id_shape"};let i=Number.parseInt(r[1],10),s=ix(n).filter(c=>c.endsWith(".md")).find(c=>{let u=c.match(/^(\d+)-/);return u&&Number.parseInt(u[1],10)===i});if(!s)return{ok:!1,error:"feedback_not_found"};let o=ko(n,s),a=[];for(let[c,u]of Object.entries(e.patch))Me(o,c,u),a.push(c);return{ok:!0,written_keys:a}}function JZ(e){let t=pe(e.slug),n=ko(t,"intent.md");if(!ip(n))return{ok:!1,error:"intent_not_found"};let i=re(kv(n,"utf8")).data.studio||"";return i?{ok:!0,position:$f({slug:e.slug,intentDir:t,studio:i})}:{ok:!1,error:"intent_missing_studio"}}var q_t,mbe=v(()=>{"use strict";q_t=Re(Kt(),1);Ge();ns();Oa();a1();Xf()});import{existsSync as XZ,readdirSync as z_t,readFileSync as G_t}from"node:fs";import{join as QZ}from"node:path";function s6n(){let e=QZ(Te(),"intents");if(!XZ(e))return[];let t=[];for(let n of z_t(e,{withFileTypes:!0})){if(!n.isDirectory())continue;let r=QZ(e,n.name,"intent.md");if(XZ(r))try{let i=re(G_t(r,"utf8")).data;t.push({slug:n.name,title:typeof i.title=="string"?i.title:null,studio:typeof i.studio=="string"?i.studio:null,mode:typeof i.mode=="string"?i.mode:null,status:typeof i.status=="string"?i.status:null,archived:i.archived===!0,created_at:typeof i.created_at=="string"?i.created_at:null})}catch{t.push({slug:n.name,title:null,studio:null,mode:null,status:null,archived:!1,created_at:null})}}return t.sort((n,r)=>n.slug.localeCompare(r.slug))}function o6n(e){if(!gn(e))return{ok:!1,error:"invalid_slug"};let t=pe(e),n=QZ(t,"intent.md");if(!XZ(n))return{ok:!1,error:"intent_not_found"};let r=re(G_t(n,"utf8")).data,i=QZ(t,"stages"),s=XZ(i)?z_t(i,{withFileTypes:!0}).filter(o=>o.isDirectory()).map(o=>o.name).sort():[];return{ok:!0,intent:{slug:e,title:typeof r.title=="string"?r.title:null,studio:typeof r.studio=="string"?r.studio:null,mode:typeof r.mode=="string"?r.mode:null,status:typeof r.status=="string"?r.status:null,archived:r.archived===!0,created_at:typeof r.created_at=="string"?r.created_at:null,frontmatter:r,stages_present:s}}}function V_t(e){e.get("/debug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Vd)}),e.get("/debug/:slug",async(t,n)=>{n.type("text/html; charset=utf-8").send(Vd)}),e.get("/api/debug/intents",async(t,n)=>{zn(t,n,null)&&n.send({intents:s6n()})}),e.get("/api/debug/intents/:intent",async(t,n)=>{if(!zn(t,n,null))return;let r=o6n(t.params.intent);if(!r.ok){n.status(r.error==="intent_not_found"?404:400).send({error:r.error});return}n.send(r.intent)}),e.get("/api/debug/intents/:intent/cursor",async(t,n)=>{if(!zn(t,n,null))return;let r=t.params.intent;if(!gn(r)){n.status(400).send({error:"invalid_slug"});return}try{let i=JZ({slug:r});if(!("ok"in i)||!i.ok){n.status(404).send(i);return}n.send(i)}catch(i){n.status(500).send({ok:!1,error:"preview_cursor_threw",detail:i instanceof Error?i.message:String(i)})}}),e.post("/api/debug/intents/:intent/ops/:op",async(t,n)=>{let r=t.params.intent,i=t.params.op;if(!gn(r)){n.status(400).send({error:"invalid_slug"});return}if(!nx(t,n,r))return;if(!B_t.has(i)){n.status(400).send({error:"unsupported_op",message:`op must be one of: ${[...B_t].join(", ")}`});return}let s=t.body??{};try{let o;switch(i){case"force_stage_complete":{let a=typeof s.stage=="string"?s.stage:"";if(!a){n.status(400).send({error:"missing_stage"});return}if(!gn(a)){n.status(400).send({error:"invalid_stage"});return}o=KZ({slug:r,targetStage:a,closeOpenFeedback:s.close_open_feedback===!0});break}case"set_intent_field":{if(s.fields&&typeof s.fields=="object"){let c=s.fields,u=[];for(let[l,d]of Object.entries(c))u.push({field:l,result:sx({slug:r,field:l,value:d})});o={batch:!0,count:u.length,results:u};break}let a=typeof s.field=="string"?s.field:"";if(!a){n.status(400).send({error:"missing_field"});return}o=sx({slug:r,field:a,value:s.value});break}case"reset_drift":{o=YZ({slug:r});break}case"set_unit_iterations":{let a=typeof s.stage=="string"?s.stage:"",c=typeof s.unit=="string"?s.unit:"";if(!a||!c){n.status(400).send({error:"missing_stage_or_unit"});return}if(!gn(a)){n.status(400).send({error:"invalid_stage"});return}if(!gn(c)){n.status(400).send({error:"invalid_unit"});return}let u=Array.isArray(s.iterations)?s.iterations:void 0;o=ZZ({slug:r,stage:a,unit:c,iterations:u});break}case"mutate_feedback":{let a=typeof s.stage=="string"&&s.stage?s.stage:null;if(a&&!gn(a)){n.status(400).send({error:"invalid_stage"});return}let c=s.patch&&typeof s.patch=="object"?s.patch:{};if(Array.isArray(s.feedback_ids)&&s.feedback_ids.length>0){let l=s.feedback_ids,d=[];for(let f of l){if(typeof f!="string"||!f){n.status(400).send({error:"invalid_feedback_id",message:"feedback_ids entries must be non-empty strings"});return}d.push({feedback_id:f,result:ox({slug:r,stage:a,feedbackId:f,patch:c})})}o={batch:!0,count:d.length,results:d};break}let u=typeof s.feedback_id=="string"?s.feedback_id:"";if(!u){n.status(400).send({error:"missing_feedback_id"});return}o=ox({slug:r,stage:a,feedbackId:u,patch:c});break}default:n.status(400).send({error:"unhandled_op"});return}n.send({op:i,intent:r,result:o})}catch(o){n.status(500).send({error:"debug_op_threw",op:i,detail:o instanceof Error?o.message:String(o)})}})}var B_t,W_t=v(()=>{"use strict";WZ();mbe();Ge();qg();wv();B_t=new Set(["force_stage_complete","set_intent_field","reset_drift","mutate_feedback","set_unit_iterations"])});function K_t(e,t){e.get("/health",async(n,r)=>t()?"ok":(r.status(503),"starting")),e.get("/api/version",async(n,r)=>(r.header("Cache-Control","no-store"),{mcp_version:cd,plugin_version:a6n})),e.get("/",async(n,r)=>{r.type("text/html; charset=utf-8").send(Vd)}),e.setNotFoundHandler((n,r)=>{if(n.method==="GET"&&(n.url==="/"||n.url.startsWith("/review/")||n.url.startsWith("/question/")||n.url.startsWith("/direction/")||n.url.startsWith("/picker/"))){r.type("text/html; charset=utf-8").send(Vd);return}if(n.method==="OPTIONS"){r.status(204).send();return}r.status(404).send("Not Found")}),e.setErrorHandler((n,r,i)=>{let s=n.code,o=n.statusCode??500,a=n instanceof Error?n.message:typeof n=="string"?n:"";try{console.error(JSON.stringify({level:o>=500?"error":"warn",event:"http_error_thrown",reqId:r.id,method:r.method,url:r.url,statusCode:o,error:a,code:s}))}catch{}if(s==="FST_ERR_CTP_INVALID_JSON"||s==="FST_ERR_CTP_INVALID_JSON_BODY"||n instanceof SyntaxError||o===400&&/JSON|json|Unexpected token/i.test(a)){let l={error:"validation_failed",issues:[{code:"invalid_json",message:a||"Request body is not valid JSON",path:[]}]};i.status(400).send(l);return}if(o===413){let u=(r.url??"/").split("?")[0],l=r.method==="POST"&&/^\/api\/feedback\/[^/]+\/[^/]+\/?$/.test(u)?ED:bD;i.status(413).send({error:"payload_too_large",max_bytes:l});return}i.status(o).send({error:"internal_error",message:a})})}var a6n,Y_t=v(()=>{"use strict";TT();WZ();f_();a6n=TS()});function gbe(e){return e.match(/\/(?:api\/session|review|question|direction|files|mockups|wireframe|stage-artifacts|question-image)\/([^/]+)/)?.[1]??null}async function Z_t(e,t,n){if(t.statusCode>=400||t.statusCode===204||t.statusCode===205||t.statusCode===304)return n;let r=gbe(e.url.split("?")[0]);if(!r||!O1(r))return n;let i=t.getHeader("content-type")??"application/octet-stream",s;if(typeof n=="string")s=Buffer.from(n,"utf8");else if(Buffer.isBuffer(n))s=n;else if(n instanceof Uint8Array)s=Buffer.from(n);else if(n&&typeof n=="object")s=Buffer.from(JSON.stringify(n),"utf8");else return n;let o=ube(r,s);return o?(t.header("Content-Type","application/octet-stream"),t.header("X-Original-Content-Type",i),t.header("X-E2E-Encrypted","1"),o):n}var J_t=v(()=>{"use strict";Xh()});function ta(e){try{let t={ts:new Date().toISOString(),reqId:e.reqId,action:e.action,status:e.status,...e.intent?{intent:e.intent}:{},...e.stage?{stage:e.stage}:{},...e.feedbackId?{feedbackId:e.feedbackId}:{},...e.detail?{detail:e.detail}:{}};process.stderr.write(`[haiku-mcp][feedback] ${JSON.stringify(t)} -`)}catch{}}var ybe=v(()=>{"use strict"});import{readFile as c6n}from"node:fs/promises";import{dirname as $Z,relative as u6n,resolve as bbe,sep as Sbe}from"node:path";function Ebe(e){return e.length>0&&!/^[a-z][a-z0-9+.-]*:/i.test(e)&&!e.startsWith("//")&&!e.startsWith("/")&&!e.startsWith("#")}function Q_t(e,t){let n=t.endsWith(Sbe)?t:t+Sbe;return e===t||e.startsWith(n)}function X_t(e,t,n){return e.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,(r,i,s)=>{let o=s.trim();return Ebe(o)?`url("${u6n(n,bbe(t,o)).split(Sbe).join("/")}")`:r})}async function $_t(e,t,n,r=0){if(r>3)return null;let i;try{i=await c6n(e,"utf-8")}catch{return null}let s=$Z(e),o=/@import\s+(?:url\(\s*)?["']?([^"')\s]+)["']?\s*\)?\s*;?/gi,a="",c=0;for(let u of i.matchAll(o)){let l=u[1]?.trim()??"",d=u.index??0;if(!Ebe(l))continue;let f=bbe(s,l);if(!Q_t(f,t))continue;let p=await $_t(f,t,n,r+1);p!=null&&(a+=X_t(i.slice(c,d),s,n),a+=p,c=d+u[0].length)}return a+=X_t(i.slice(c),s,n),a}async function e6(e,t,n){if(!/]*>/gi,s="",o=0;for(let a of e.matchAll(i)){let c=a[0],u=a.index??0,l=/\brel\s*=\s*["']?stylesheet["']?/i.test(c),f=/\bhref\s*=\s*["']([^"']+)["']/i.exec(c)?.[1];if(!l||!f||!Ebe(f))continue;let p=bbe(r,f);if(!Q_t(p,n))continue;let h=await $_t(p,n,r);h!=null&&(s+=e.slice(o,u),s+=``,o=u+c.length)}return s+=e.slice(o),s}function eTt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=$Z(e);for(let i=0;i{"use strict"});import{readFile as tTt,realpath as Tbe}from"node:fs/promises";import{extname as nTt,resolve as vbe}from"node:path";async function Rbe(e,t){let n=vbe(e),r=vbe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await Tbe(r).catch(()=>null),s=await Tbe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function M1(e,t,n){return but.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function Abe(e,t){try{let n=await tTt(t),r=nTt(t).toLowerCase(),i=l6n[r],s=d6n.has(r);e.header("X-Content-Type-Options","nosniff"),i&&!s?e.header("Content-Type",i):(e.header("Content-Type","application/octet-stream"),e.header("Content-Disposition","attachment")),e.send(n)}catch{e.status(404).send("Not found")}}async function wbe(e,t,n){if(!f6n.has(nTt(t).toLowerCase()))return Abe(e,t);let r;try{let i=await tTt(t,"utf-8"),s=await Tbe(n).catch(()=>vbe(n));r=await e6(i,t,s)}catch{e.status(404).send("Not found");return}e.header("X-Content-Type-Options","nosniff"),e.header("Content-Type","application/octet-stream"),e.header("Content-Disposition","attachment"),e.send(r)}async function ax(e,t,n){let r=await Rbe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return wbe(e,r.path,t)}var l6n,d6n,f6n,kbe=v(()=>{"use strict";TT();_be();l6n={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".txt":"text/plain; charset=utf-8",".md":"text/markdown; charset=utf-8",".json":"application/json; charset=utf-8"},d6n=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);f6n=new Set([".html",".htm"])});import{join as p6n}from"node:path";function rTt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!qb.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${qb.join(", ")}`});return}let o=Us(r,i);s&&(o=o.filter(c=>c.status===s));let a={intent:r,stage:i,count:o.length,items:o.map(c=>({feedback_id:c.id,title:c.title,body:c.body,status:c.status,origin:c.origin,severity:c.severity,author:c.author,author_type:c.author_type,created_at:c.created_at,iteration:c.visit,visit:c.visit,source_ref:c.source_ref??null,closed_by:c.closed_by??null,resolution:c.resolution,replies:c.replies.map(u=>({author:u.author,author_type:u.author_type,body:u.body,created_at:u.created_at})),inline_anchor:c.inline_anchor??null,closure_reply:c.closure_reply??void 0,closure_reply_unread:c.closure_reply_unread,iterations:c.iterations,scope:"stage"}))};n.send(a)}),e.get("/api/feedback-intent/:intent",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}let i=t.query?.status;if(i&&!qb.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${qb.join(", ")}`});return}let s=Us(r,"");i&&(s=s.filter(a=>a.status===i));let o={intent:r,stage:"",count:s.length,items:s.map(a=>({feedback_id:a.id,title:a.title,body:a.body,status:a.status,origin:a.origin,severity:a.severity,author:a.author,author_type:a.author_type,created_at:a.created_at,iteration:a.visit,visit:a.visit,source_ref:a.source_ref??null,closed_by:a.closed_by??null,resolution:a.resolution,replies:a.replies.map(c=>({author:c.author,author_type:c.author_type,body:c.body,created_at:c.created_at})),inline_anchor:a.inline_anchor??null,closure_reply:a.closure_reply??void 0,closure_reply_unread:a.closure_reply_unread,iterations:a.iterations,scope:"intent"}))};n.send(o)}),e.get("/api/feedback-attachment/:intent/:stage/:filename",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,filename:s}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"invalid_slug"});return}if(!/^[A-Za-z0-9._-]+\.(png|jpg|jpeg|webp)$/.test(s)){n.status(400).send({error:"invalid_filename"});return}let o=p6n(pe(r),"stages",i,"feedback");await ax(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:ED},async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!rx(t,n,r))return;if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=Bb(n,t.body,ufe);if(!s.ok)return;let o=s.data.inline_anchor,a=uv(s.data.body),c=Qo(r,i,{title:s.data.title,body:a,origin:s.data.origin,author:"user",source_ref:s.data.source_ref??null,resolution:s.data.resolution??null,attachmentDataUrl:s.data.attachment_data_url??null,inlineAnchor:o?{selectedText:o.selected_text,paragraph:o.paragraph,location:o.location,...o.comment_id?{commentId:o.comment_id}:{},...o.file_path?{filePath:o.file_path}:{},...o.content_sha?{contentSha:o.content_sha}:{}}:null});jg(`feedback: create ${c.feedback_id} in ${i}`);let u={feedback_id:c.feedback_id,file:c.file,status:"pending",message:`Feedback ${c.feedback_id} created.`};ta({reqId:t.id,action:"feedback.create",status:201,intent:r,stage:i,feedbackId:c.feedback_id}),n.status(201).send(u)}),e.put("/api/feedback/:intent/:stage/:feedbackId",{bodyLimit:xK},async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!rx(t,n,r))return;let o=Bb(n,t.body,lfe);if(!o.ok)return;if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let a=hSe(r,i,s,{status:o.data.status,closed_by:o.data.closed_by,resolution:o.data.resolution},"human");if(!a.ok){if(a.error.includes("not found")){ta({reqId:t.id,action:"feedback.update",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ta({reqId:t.id,action:"feedback.update",status:400,intent:r,stage:i,feedbackId:s,detail:a.error}),n.status(400).send({error:a.error});return}jg(`feedback: update ${s} in ${i}`);let c={feedback_id:s,updated_fields:a.updated_fields,message:`Feedback ${s} updated.`};ta({reqId:t.id,action:"feedback.update",status:200,intent:r,stage:i,feedbackId:s,detail:a.updated_fields.join(",")}),n.send(c)}),e.post("/api/feedback/:intent/:stage/:feedbackId/dismiss-reply",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}if(!rx(t,n,r))return;let o=gSe(r,i,s);if(!o){n.status(404).send({error:i?`Feedback '${s}' not found in stage '${i}'`:`Feedback '${s}' not found (intent-scope)`});return}jg(`feedback: dismiss reply ${s}${i?` in ${i}`:""}`),n.send({feedback_id:s,dismissed:!o.already_dismissed,message:o.already_dismissed?`Feedback ${s} reply was already dismissed.`:`Feedback ${s} reply dismissed.`})}),e.delete("/api/feedback/:intent/:stage/:feedbackId",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!rx(t,n,r))return;if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=EZ(r,i,s,"human");if(!o.ok){if(o.error.includes("not found")){ta({reqId:t.id,action:"feedback.delete",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}if(o.error.includes("cannot delete")){ta({reqId:t.id,action:"feedback.delete",status:409,intent:r,stage:i,feedbackId:s,detail:"cannot_delete"}),n.status(409).send({error:o.error.replace(/^Error:\s*/,"")});return}ta({reqId:t.id,action:"feedback.delete",status:400,intent:r,stage:i,feedbackId:s,detail:o.error}),n.status(400).send({error:o.error});return}jg(`feedback: delete ${s} from ${i}`);let a={feedback_id:s,deleted:!0,message:`Feedback ${s} deleted.`};ta({reqId:t.id,action:"feedback.delete",status:200,intent:r,stage:i,feedbackId:s}),n.send(a)}),e.post("/api/feedback/:intent/:stage/:feedbackId/replies",{bodyLimit:xK},async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!rx(t,n,r))return;if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=Bb(n,t.body,dfe);if(!o.ok)return;let a=uv(o.data.body),c=mSe(r,i,s,{author:"user",author_type:"human",body:a},{close_as_answered:o.data.close_as_answered===!0});if(!c.ok){if(c.error.includes("not found")){ta({reqId:t.id,action:"feedback.reply",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ta({reqId:t.id,action:"feedback.reply",status:400,intent:r,stage:i,feedbackId:s,detail:c.error}),n.status(400).send({error:c.error});return}jg(`feedback: reply on ${s} in ${i}`);let u={feedback_id:s,reply_index:c.reply_index,status:c.status,message:`Reply added to ${s}.`};ta({reqId:t.id,action:"feedback.reply",status:201,intent:r,stage:i,feedbackId:s,detail:`reply_index=${c.reply_index}`}),n.status(201).send(u)})}var iTt=v(()=>{"use strict";TT();_ye();Ge();ybe();qg();kbe();wv()});import{realpath as sTt}from"node:fs/promises";import{dirname as oTt,join as h6n,resolve as aTt}from"node:path";function cTt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!zn(t,n,r)||M1(n,r,i))return;let s=$t(r);if(!s){n.status(404).send("Session not found");return}let o=s.session_type==="review"?s.intent_dir:null,a=o?aTt(oTt(oTt(o)),"knowledge"):null,c=[o,a].filter(l=>l!==null);if(c.length===0){n.status(404).send("Not found");return}let u=!1;for(let l of c){let d=await Rbe(l,i);if(!d.ok){u=!0;continue}return wbe(n,d.path,l)}if(u){n.status(403).send({error:"forbidden_path_traversal"});return}n.status(404).send("Not found")}),e.get("/mockups/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!zn(t,n,r)||M1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return ax(n,h6n(s.intent_dir,"mockups"),i)}),e.get("/wireframe/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!zn(t,n,r)||M1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return ax(n,s.intent_dir,i)}),e.get("/stage-artifacts/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!zn(t,n,r)||M1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"&&s.session_type!=="view"){n.status(404).send("Session not found");return}return ax(n,s.intent_dir,i)}),e.get("/question-image/:sessionId/:index",async(t,n)=>{let{sessionId:r}=t.params,i=Number.parseInt(t.params.index,10);if(!zn(t,n,r))return;let s=$t(r);if(!s||s.session_type!=="question"){n.status(404).send("Session not found");return}let o=s.imagePaths??[];if(i<0||i>=o.length){n.status(404).send("Image index out of range");return}let a=o[i];if(!a.startsWith("/")){n.status(403).send("Forbidden");return}let c=s.imageBaseDirs?.[i];if(c)try{let u=await sTt(a).catch(()=>null),l=await sTt(c).catch(()=>aTt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return Abe(n,a)})}var uTt=v(()=>{"use strict";$c();qg();kbe()});import{EventEmitter as m6n}from"node:events";function lTt(e,t){let n=`intent:${e}`;return t6.on(n,t),()=>{t6.off(n,t)}}function Wd(e,t){t6.emit(`intent:${e}`,t)}var t6,cx=v(()=>{"use strict";t6=new m6n;t6.setMaxListeners(200)});import{spawn as g6n}from"node:child_process";import{accessSync as y6n,constants as S6n,existsSync as b6n,mkdirSync as E6n,readdirSync as _6n,rmSync as T6n}from"node:fs";import{homedir as Obe,tmpdir as v6n}from"node:os";import{join as na}from"node:path";function R6n(e=process.platform,t=process.env,n=Obe(),r=i=>{try{return _6n(i)}catch{return[]}}){let i=t.PLAYWRIGHT_BROWSERS_PATH&&t.PLAYWRIGHT_BROWSERS_PATH!=="0"?t.PLAYWRIGHT_BROWSERS_PATH:e==="darwin"?na(n,"Library","Caches","ms-playwright"):e==="win32"?na(n,"AppData","Local","ms-playwright"):na(n,".cache","ms-playwright"),s=r(i).filter(d=>/^chromium-\d+$/.test(d)).sort((d,f)=>{let p=Number.parseInt(d.slice(9),10);return Number.parseInt(f.slice(9),10)-p});if(s.length===0)return null;let o=na(i,s[0]);if(e==="win32")return na(o,"chrome-win","chrome.exe");if(e!=="darwin")return na(o,"chrome-linux","chrome");let a=r(o).find(d=>d.startsWith("chrome-mac"));if(!a)return null;let c=na(o,a),u=r(c).find(d=>d.endsWith(".app"));if(!u)return null;let l=u.slice(0,-4);return na(c,u,"Contents","MacOS",l)}function A6n(e=process.platform,t=process.env){if(e==="darwin")return["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/Applications/Chromium.app/Contents/MacOS/Chromium","/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge","/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"];if(e==="win32"){let n=t.PROGRAMFILES||"C:\\Program Files",r=t["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)",i=t.LOCALAPPDATA||na(Obe(),"AppData","Local");return[na(n,"Google\\Chrome\\Application\\chrome.exe"),na(r,"Google\\Chrome\\Application\\chrome.exe"),na(i,"Google\\Chrome\\Application\\chrome.exe"),na(n,"Microsoft\\Edge\\Application\\msedge.exe"),na(r,"Microsoft\\Edge\\Application\\msedge.exe"),na(n,"BraveSoftware\\Brave-Browser\\Application\\brave.exe")]}return["google-chrome","google-chrome-stable","chromium","chromium-browser","microsoft-edge","microsoft-edge-stable","brave-browser"]}function w6n(e,t,n){if(e.includes("/")||e.includes("\\"))return n(e)?e:null;let r=t.PATH||"";for(let i of r.split(":")){if(!i)continue;let s=na(i,e);if(n(s))return s}return null}function k6n(e=process.platform,t=process.env,n=i=>{try{return y6n(i,S6n.X_OK),!0}catch{return b6n(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=R6n(e,t,Obe(),r);if(s&&n(s))return s;for(let o of A6n(e,t)){let a=w6n(o,t,n);if(a)return a}return null}function pTt(){return Ibe===void 0&&(Ibe=k6n()),Ibe}function I6n(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:pTt()!==null}function x6n(e,t){return[`--app=${e}`,`--user-data-dir=${t}`,"--start-maximized","--no-first-run","--no-default-browser-check","--no-service-autorun","--disable-background-networking","--disable-component-update","--disable-sync","--disable-extensions"]}function O6n(e,t=na(v6n(),"haiku-micro-app")){return na(t,e)}function hTt(e,t={}){if(!I6n())return!1;let n=pTt();if(!n)return!1;let r=t.sessionId??`anon-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=Iv.get(r);if(i&&i.child.exitCode===null&&!i.child.killed)return!0;let s=O6n(r);try{E6n(s,{recursive:!0})}catch{return!1}try{let o=g6n(n,x6n(e,s),{stdio:"ignore",detached:!0});return o.on("error",a=>{console.error(`[haiku-micro-app] launch error (${n}): ${a.message}. The review URL is still printed above \u2014 open it manually.`),Iv.delete(r),xbe(s)}),Iv.set(r,{child:o,profileDir:s}),P6n(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),xbe(s),!1}}function xbe(e){try{T6n(e,{recursive:!0,force:!0})}catch{}}function dTt(e,t){let n=e.child.pid;if(n!==void 0)try{process.kill(-n,t);return}catch{}try{e.child.kill(t)}catch{}}function ux(e){let t=Iv.get(e);return t?(Iv.delete(e),dTt(t,"SIGTERM"),setTimeout(()=>{dTt(t,"SIGKILL")},2e3).unref?.(),xbe(t.profileDir),!0):!1}function mTt(){let e=0;for(let[t]of Iv)t.startsWith("anon-")||$t(t)||(ux(t),e+=1);return e}function P6n(){if(fTt)return;fTt=!0;let e=()=>{for(let[t]of Iv)ux(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var Iv,Ibe,fTt,D1=v(()=>{"use strict";$c();Iv=new Map;fTt=!1});import{existsSync as gTt,readdirSync as N6n,readFileSync as C6n}from"node:fs";import{join as r6}from"node:path";function n6(e,t){return t?r6(t,"intents",e):pe(e)}function D6n(e,t){let n=r6(n6(e,t),"intent.md");if(!gTt(n))return null;let{data:r}=re(C6n(n,"utf8"));return r}function yTt(e,t){let n=D6n(e,t);if(!n)return null;let r=n.studio||"";if(!r||n.composite)return null;let i=wn(n,r),s=i.length>0?i:Fs(r);if(s.length===0)return{studio:r,stage:"",phase:""};let o=typeof n.mode=="string"&&n.mode.length>0?n.mode:"continuous",a=ai(e,r,n6(e,t)),c=a??s[s.length-1],l=mv({slug:e,studio:r,stage:c,intentDir:n6(e,t),intentMode:o}).phase??"",d=M6n.has(l)?l:"",f;if(d==="elaborate"){let m=r6(n6(e,t),"stages",c),g=r6(m,"units"),y=gTt(g)?N6n(g).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],b=I0({slug:e,studio:r,stage:c,stageDir:m,unitNames:y,mode:o});b.length>0&&(f=bye(b))}let p,h;if(a===null)if(typeof n.sealed_at=="string"&&n.sealed_at.length>0)p="sealed";else{let g=zL(e,{localOnly:!0});g.applicable&&!g.merged&&(p="pending_seal",h=g.defaultBranch)}return{studio:r,stage:c,phase:d,...f?{pending_signals:f}:{},...p?{seal_status:p}:{},...h?{awaiting_merge_into:h}:{}}}var M6n,STt=v(()=>{"use strict";ns();Oa();a1();NY();Ge();M6n=new Set(["elaborate","execute","review","gate"])});import{execFileSync as L6n}from"node:child_process";function i6(e){try{return L6n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function U6n(e){if(!e)return null;let t="",n="",r=e.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(r)t=r[1],n=r[2];else try{let c=new URL(e);t=c.hostname,n=c.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let i=n.split("/").filter(Boolean);if(i.length<2)return null;let s=i[0],o=i.slice(1).join("/");return{host:t==="github.com"?"github.com":t==="gitlab.com"?"gitlab.com":"other",owner:s,repo:o,rawUrl:e}}function F6n(e,t){if(!e)return null;for(let[n,r,i]of[["refs/pull/*/head","github-pr-ref","github.com"],["refs/merge-requests/*/head","gitlab-mr-ref","gitlab.com"]]){if(t.host!=="other"&&t.host!==i)continue;let s=i6(["git","ls-remote","origin",n]);if(s)for(let o of s.split(` -`)){let[a,c]=o.trim().split(/\s+/);if(a!==e)continue;let u=c?.match(/^refs\/(?:pull|merge-requests)\/(\d+)\/head$/);if(u)return{source:r,prNumber:Number(u[1])}}}return null}function j6n(e,t,n){return e.host==="github.com"&&t==="github-pr-ref"?`https://github.com/${e.owner}/${e.repo}/pull/${n}`:e.host==="gitlab.com"&&t==="gitlab-mr-ref"?`https://gitlab.com/${e.owner}/${e.repo}/-/merge_requests/${n}`:null}function H6n(e){if(!ve())return null;let t=`haiku/${e}/main`,n=i6(["git","rev-parse","--verify",t])||i6(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=i6(["git","remote","get-url","origin"]),i=U6n(r);if(!i)return null;let s=F6n(n,i);if(!s)return null;let o=j6n(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function ETt(e){let t=Date.now(),n=bTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=H6n(e);return bTt.set(e,{value:r,expiresAt:t+q6n}),r}var q6n,bTt,_Tt=v(()=>{"use strict";bb();q6n=3e4,bTt=new Map});var TTt=v(()=>{});var CTt=w(cn=>{"use strict";var Cbe=Symbol.for("react.transitional.element"),B6n=Symbol.for("react.portal"),z6n=Symbol.for("react.fragment"),G6n=Symbol.for("react.strict_mode"),V6n=Symbol.for("react.profiler"),W6n=Symbol.for("react.consumer"),K6n=Symbol.for("react.context"),Y6n=Symbol.for("react.forward_ref"),Z6n=Symbol.for("react.suspense"),J6n=Symbol.for("react.memo"),kTt=Symbol.for("react.lazy"),X6n=Symbol.for("react.activity"),vTt=Symbol.iterator;function Q6n(e){return e===null||typeof e!="object"?null:(e=vTt&&e[vTt]||e["@@iterator"],typeof e=="function"?e:null)}var ITt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},xTt=Object.assign,OTt={};function dx(e,t,n){this.props=e,this.context=t,this.refs=OTt,this.updater=n||ITt}dx.prototype.isReactComponent={};dx.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};dx.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function PTt(){}PTt.prototype=dx.prototype;function Mbe(e,t,n){this.props=e,this.context=t,this.refs=OTt,this.updater=n||ITt}var Dbe=Mbe.prototype=new PTt;Dbe.constructor=Mbe;xTt(Dbe,dx.prototype);Dbe.isPureReactComponent=!0;var RTt=Array.isArray;function Nbe(){}var Ai={H:null,A:null,T:null,S:null},NTt=Object.prototype.hasOwnProperty;function Lbe(e,t,n){var r=n.ref;return{$$typeof:Cbe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function $6n(e,t){return Lbe(e.type,t,e.props)}function Ube(e){return typeof e=="object"&&e!==null&&e.$$typeof===Cbe}function e5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var ATt=/\/+/g;function Pbe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?e5n(""+e.key):t.toString(36)}function t5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Nbe,Nbe):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function lx(e,t,n,r,i){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(s){case"bigint":case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case Cbe:case B6n:o=!0;break;case kTt:return o=e._init,lx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+Pbe(e,0):r,RTt(i)?(n="",o!=null&&(n=o.replace(ATt,"$&/")+"/"),lx(i,t,n,"",function(u){return u})):i!=null&&(Ube(i)&&(i=$6n(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(ATt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(RTt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(D,te){Object.defineProperty(r.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",te[0],te[1])}})}function t(D){return D===null||typeof D!="object"?null:(D=Le&&D[Le]||D["@@iterator"],typeof D=="function"?D:null)}function n(D,te){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var Ne=D+"."+te;Ae[Ne]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",te,D),Ae[Ne]=!0)}function r(D,te,Ne){this.props=D,this.context=te,this.refs=oe,this.updater=Ne||z}function i(){}function s(D,te,Ne){this.props=D,this.context=te,this.refs=oe,this.updater=Ne||z}function o(){}function a(D){return""+D}function c(D){try{a(D);var te=!1}catch{te=!0}if(te){te=console;var Ne=te.error,Se=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return Ne.call(te,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",Se),a(D)}}function u(D){if(D==null)return null;if(typeof D=="function")return D.$$typeof===kt?null:D.displayName||D.name||null;if(typeof D=="string")return D;switch(D){case Q:return"Fragment";case F:return"Profiler";case B:return"StrictMode";case H:return"Suspense";case j:return"SuspenseList";case se:return"Activity"}if(typeof D=="object")switch(typeof D.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),D.$$typeof){case q:return"Portal";case U:return D.displayName||"Context";case V:return(D._context.displayName||"Context")+".Consumer";case M:var te=D.render;return D=D.displayName,D||(D=te.displayName||te.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case Y:return te=D.displayName||null,te!==null?te:u(D.type)||"Memo";case ee:te=D._payload,D=D._init;try{return u(D(te))}catch{}}return null}function l(D){if(D===Q)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ee)return"<...>";try{var te=u(D);return te?"<"+te+">":"<...>"}catch{return"<...>"}}function d(){var D=Ue.A;return D===null?null:D.getOwner()}function f(){return Error("react-stack-top-frame")}function p(D){if(Ln.call(D,"key")){var te=Object.getOwnPropertyDescriptor(D,"key").get;if(te&&te.isReactWarning)return!1}return D.key!==void 0}function h(D,te){function Ne(){sn||(sn=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",te))}Ne.isReactWarning=!0,Object.defineProperty(D,"key",{get:Ne,configurable:!0})}function m(){var D=u(this.type);return nl[D]||(nl[D]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),D=this.props.ref,D!==void 0?D:null}function g(D,te,Ne,Se,at,On){var It=Ne.ref;return D={$$typeof:$,type:D,key:te,props:Ne,_owner:Se},(It!==void 0?It:null)!==null?Object.defineProperty(D,"ref",{enumerable:!1,get:m}):Object.defineProperty(D,"ref",{enumerable:!1,value:null}),D._store={},Object.defineProperty(D._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(D,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(D,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:at}),Object.defineProperty(D,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:On}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function y(D,te){return te=g(D.type,te,D.props,D._owner,D._debugStack,D._debugTask),D._store&&(te._store.validated=D._store.validated),te}function b(D){S(D)?D._store&&(D._store.validated=1):typeof D=="object"&&D!==null&&D.$$typeof===ee&&(D._payload.status==="fulfilled"?S(D._payload.value)&&D._payload.value._store&&(D._payload.value._store.validated=1):D._store&&(D._store.validated=1))}function S(D){return typeof D=="object"&&D!==null&&D.$$typeof===$}function E(D){var te={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(Ne){return te[Ne]})}function _(D,te){return typeof D=="object"&&D!==null&&D.key!=null?(c(D.key),E(""+D.key)):te.toString(36)}function T(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(o,o):(D.status="pending",D.then(function(te){D.status==="pending"&&(D.status="fulfilled",D.value=te)},function(te){D.status==="pending"&&(D.status="rejected",D.reason=te)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function R(D,te,Ne,Se,at){var On=typeof D;(On==="undefined"||On==="boolean")&&(D=null);var It=!1;if(D===null)It=!0;else switch(On){case"bigint":case"string":case"number":It=!0;break;case"object":switch(D.$$typeof){case $:case q:It=!0;break;case ee:return It=D._init,R(It(D._payload),te,Ne,Se,at)}}if(It){It=D,at=at(It);var dn=Se===""?"."+_(It,0):Se;return Ee(at)?(Ne="",dn!=null&&(Ne=dn.replace(Ii,"$&/")+"/"),R(at,te,Ne,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Ne=y(at,Ne+(at.key==null||It&&It.key===at.key?"":(""+at.key).replace(Ii,"$&/")+"/")+dn),Se!==""&&It!=null&&S(It)&&It.key==null&&It._store&&!It._store.validated&&(Ne._store.validated=2),at=Ne),te.push(at)),1}if(It=0,dn=Se===""?".":Se+":",Ee(D))for(var _t=0;_t`,o=u+c.length)}return s+=e.slice(o),s}function eTt(e,t){let n=t.split(/[/\\]+/).filter(Boolean).length-1,r=e6(e);for(let i=0;i{"use strict"});import{readFile as tTt,realpath as vbe}from"node:fs/promises";import{extname as nTt,resolve as Rbe}from"node:path";async function Abe(e,t){let n=Rbe(e),r=Rbe(n,t);if(!r.startsWith(`${n}/`)&&r!==n)return{ok:!1};try{let i=await vbe(r).catch(()=>null),s=await vbe(n).catch(()=>n);return!i||!i.startsWith(`${s}/`)&&i!==s?{ok:!1}:{ok:!0,path:i}}catch{return{ok:!1}}}function L1(e,t,n){return Eut.safeParse({sessionId:t,path:n}).success?!1:(e.status(403).send({error:"forbidden_path_traversal"}),!0)}async function wbe(e,t){try{let n=await tTt(t),r=nTt(t).toLowerCase(),i=l6n[r],s=d6n.has(r);e.header("X-Content-Type-Options","nosniff"),i&&!s?e.header("Content-Type",i):(e.header("Content-Type","application/octet-stream"),e.header("Content-Disposition","attachment")),e.send(n)}catch{e.status(404).send("Not found")}}async function kbe(e,t,n){if(!f6n.has(nTt(t).toLowerCase()))return wbe(e,t);let r;try{let i=await tTt(t,"utf-8"),s=await vbe(n).catch(()=>Rbe(n));r=await t6(i,t,s)}catch{e.status(404).send("Not found");return}e.header("X-Content-Type-Options","nosniff"),e.header("Content-Type","application/octet-stream"),e.header("Content-Disposition","attachment"),e.send(r)}async function cx(e,t,n){let r=await Abe(t,n);if(!r.ok){e.status(403).send({error:"forbidden_path_traversal"});return}return kbe(e,r.path,t)}var l6n,d6n,f6n,Ibe=v(()=>{"use strict";TT();Tbe();l6n={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".pdf":"application/pdf",".txt":"text/plain; charset=utf-8",".md":"text/markdown; charset=utf-8",".json":"application/json; charset=utf-8"},d6n=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);f6n=new Set([".html",".htm"])});import{join as p6n}from"node:path";function rTt(e){e.get("/api/feedback/:intent/:stage",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=t.query?.status;if(s&&!qb.includes(s)){n.status(400).send({error:`Invalid status filter. Must be one of: ${qb.join(", ")}`});return}let o=Us(r,i);s&&(o=o.filter(c=>c.status===s));let a={intent:r,stage:i,count:o.length,items:o.map(c=>({feedback_id:c.id,title:c.title,body:c.body,status:c.status,origin:c.origin,severity:c.severity,author:c.author,author_type:c.author_type,created_at:c.created_at,iteration:c.visit,visit:c.visit,source_ref:c.source_ref??null,closed_by:c.closed_by??null,resolution:c.resolution,replies:c.replies.map(u=>({author:u.author,author_type:u.author_type,body:u.body,created_at:u.created_at})),inline_anchor:c.inline_anchor??null,closure_reply:c.closure_reply??void 0,closure_reply_unread:c.closure_reply_unread,iterations:c.iterations,scope:"stage"}))};n.send(a)}),e.get("/api/feedback-intent/:intent",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r}=t.params;if(!gn(r)){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}let i=t.query?.status;if(i&&!qb.includes(i)){n.status(400).send({error:`Invalid status filter. Must be one of: ${qb.join(", ")}`});return}let s=Us(r,"");i&&(s=s.filter(a=>a.status===i));let o={intent:r,stage:"",count:s.length,items:s.map(a=>({feedback_id:a.id,title:a.title,body:a.body,status:a.status,origin:a.origin,severity:a.severity,author:a.author,author_type:a.author_type,created_at:a.created_at,iteration:a.visit,visit:a.visit,source_ref:a.source_ref??null,closed_by:a.closed_by??null,resolution:a.resolution,replies:a.replies.map(c=>({author:c.author,author_type:c.author_type,body:c.body,created_at:c.created_at})),inline_anchor:a.inline_anchor??null,closure_reply:a.closure_reply??void 0,closure_reply_unread:a.closure_reply_unread,iterations:a.iterations,scope:"intent"}))};n.send(o)}),e.get("/api/feedback-attachment/:intent/:stage/:filename",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,filename:s}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"invalid_slug"});return}if(!/^[A-Za-z0-9._-]+\.(png|jpg|jpeg|webp)$/.test(s)){n.status(400).send({error:"invalid_filename"});return}let o=p6n(pe(r),"stages",i,"feedback");await cx(n,o,s)}),e.post("/api/feedback/:intent/:stage",{bodyLimit:_D},async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i}=t.params;if(!(gn(r)&&gn(i))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!ix(t,n,r))return;if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let s=Bb(n,t.body,lfe);if(!s.ok)return;let o=s.data.inline_anchor,a=uv(s.data.body),c=Qo(r,i,{title:s.data.title,body:a,origin:s.data.origin,author:"user",source_ref:s.data.source_ref??null,resolution:s.data.resolution??null,attachmentDataUrl:s.data.attachment_data_url??null,inlineAnchor:o?{selectedText:o.selected_text,paragraph:o.paragraph,location:o.location,...o.comment_id?{commentId:o.comment_id}:{},...o.file_path?{filePath:o.file_path}:{},...o.content_sha?{contentSha:o.content_sha}:{}}:null});jg(`feedback: create ${c.feedback_id} in ${i}`);let u={feedback_id:c.feedback_id,file:c.file,status:"pending",message:`Feedback ${c.feedback_id} created.`};ta({reqId:t.id,action:"feedback.create",status:201,intent:r,stage:i,feedbackId:c.feedback_id}),n.status(201).send(u)}),e.put("/api/feedback/:intent/:stage/:feedbackId",{bodyLimit:PK},async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!ix(t,n,r))return;let o=Bb(n,t.body,dfe);if(!o.ok)return;if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let a=mSe(r,i,s,{status:o.data.status,closed_by:o.data.closed_by,resolution:o.data.resolution},"human");if(!a.ok){if(a.error.includes("not found")){ta({reqId:t.id,action:"feedback.update",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ta({reqId:t.id,action:"feedback.update",status:400,intent:r,stage:i,feedbackId:s,detail:a.error}),n.status(400).send({error:a.error});return}jg(`feedback: update ${s} in ${i}`);let c={feedback_id:s,updated_fields:a.updated_fields,message:`Feedback ${s} updated.`};ta({reqId:t.id,action:"feedback.update",status:200,intent:r,stage:i,feedbackId:s,detail:a.updated_fields.join(",")}),n.send(c)}),e.post("/api/feedback/:intent/:stage/:feedbackId/dismiss-reply",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}if(!ix(t,n,r))return;let o=ySe(r,i,s);if(!o){n.status(404).send({error:i?`Feedback '${s}' not found in stage '${i}'`:`Feedback '${s}' not found (intent-scope)`});return}jg(`feedback: dismiss reply ${s}${i?` in ${i}`:""}`),n.send({feedback_id:s,dismissed:!o.already_dismissed,message:o.already_dismissed?`Feedback ${s} reply was already dismissed.`:`Feedback ${s} reply dismissed.`})}),e.delete("/api/feedback/:intent/:stage/:feedbackId",async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!ix(t,n,r))return;if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=_Z(r,i,s,"human");if(!o.ok){if(o.error.includes("not found")){ta({reqId:t.id,action:"feedback.delete",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}if(o.error.includes("cannot delete")){ta({reqId:t.id,action:"feedback.delete",status:409,intent:r,stage:i,feedbackId:s,detail:"cannot_delete"}),n.status(409).send({error:o.error.replace(/^Error:\s*/,"")});return}ta({reqId:t.id,action:"feedback.delete",status:400,intent:r,stage:i,feedbackId:s,detail:o.error}),n.status(400).send({error:o.error});return}jg(`feedback: delete ${s} from ${i}`);let a={feedback_id:s,deleted:!0,message:`Feedback ${s} deleted.`};ta({reqId:t.id,action:"feedback.delete",status:200,intent:r,stage:i,feedbackId:s}),n.send(a)}),e.post("/api/feedback/:intent/:stage/:feedbackId/replies",{bodyLimit:PK},async(t,n)=>{if(!zn(t,n,null))return;let{intent:r,stage:i,feedbackId:s}=t.params;if(!(gn(r)&&gn(i)&&gn(s))){n.status(400).send({error:"Invalid slug \u2014 must not contain path separators or traversal sequences"});return}if(!Ua(r)){n.status(404).send({error:"Intent not found"});return}if(!ix(t,n,r))return;if(!Qh(r,i)){n.status(404).send({error:"Stage not found"});return}let o=Bb(n,t.body,ffe);if(!o.ok)return;let a=uv(o.data.body),c=gSe(r,i,s,{author:"user",author_type:"human",body:a},{close_as_answered:o.data.close_as_answered===!0});if(!c.ok){if(c.error.includes("not found")){ta({reqId:t.id,action:"feedback.reply",status:404,intent:r,stage:i,feedbackId:s,detail:"not_found"}),n.status(404).send({error:`Feedback '${s}' not found in stage '${i}'`});return}ta({reqId:t.id,action:"feedback.reply",status:400,intent:r,stage:i,feedbackId:s,detail:c.error}),n.status(400).send({error:c.error});return}jg(`feedback: reply on ${s} in ${i}`);let u={feedback_id:s,reply_index:c.reply_index,status:c.status,message:`Reply added to ${s}.`};ta({reqId:t.id,action:"feedback.reply",status:201,intent:r,stage:i,feedbackId:s,detail:`reply_index=${c.reply_index}`}),n.status(201).send(u)})}var iTt=v(()=>{"use strict";TT();Tye();Ge();Sbe();qg();Ibe();wv()});import{realpath as sTt}from"node:fs/promises";import{dirname as oTt,join as h6n,resolve as aTt}from"node:path";function cTt(e){e.get("/files/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!zn(t,n,r)||L1(n,r,i))return;let s=$t(r);if(!s){n.status(404).send("Session not found");return}let o=s.session_type==="review"?s.intent_dir:null,a=o?aTt(oTt(oTt(o)),"knowledge"):null,c=[o,a].filter(l=>l!==null);if(c.length===0){n.status(404).send("Not found");return}let u=!1;for(let l of c){let d=await Abe(l,i);if(!d.ok){u=!0;continue}return kbe(n,d.path,l)}if(u){n.status(403).send({error:"forbidden_path_traversal"});return}n.status(404).send("Not found")}),e.get("/mockups/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!zn(t,n,r)||L1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return cx(n,h6n(s.intent_dir,"mockups"),i)}),e.get("/wireframe/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!zn(t,n,r)||L1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"){n.status(404).send("Session not found");return}return cx(n,s.intent_dir,i)}),e.get("/stage-artifacts/:sessionId/*",async(t,n)=>{let{sessionId:r}=t.params,i=t.params["*"];if(!zn(t,n,r)||L1(n,r,i))return;let s=$t(r);if(!s||s.session_type!=="review"&&s.session_type!=="view"){n.status(404).send("Session not found");return}return cx(n,s.intent_dir,i)}),e.get("/question-image/:sessionId/:index",async(t,n)=>{let{sessionId:r}=t.params,i=Number.parseInt(t.params.index,10);if(!zn(t,n,r))return;let s=$t(r);if(!s||s.session_type!=="question"){n.status(404).send("Session not found");return}let o=s.imagePaths??[];if(i<0||i>=o.length){n.status(404).send("Image index out of range");return}let a=o[i];if(!a.startsWith("/")){n.status(403).send("Forbidden");return}let c=s.imageBaseDirs?.[i];if(c)try{let u=await sTt(a).catch(()=>null),l=await sTt(c).catch(()=>aTt(c));if(!u||!u.startsWith(`${l}/`)&&u!==l){n.status(403).send("Forbidden");return}}catch{n.status(403).send("Forbidden");return}return wbe(n,a)})}var uTt=v(()=>{"use strict";$c();qg();Ibe()});import{EventEmitter as m6n}from"node:events";function lTt(e,t){let n=`intent:${e}`;return n6.on(n,t),()=>{n6.off(n,t)}}function Wd(e,t){n6.emit(`intent:${e}`,t)}var n6,ux=v(()=>{"use strict";n6=new m6n;n6.setMaxListeners(200)});import{spawn as g6n}from"node:child_process";import{accessSync as y6n,constants as S6n,existsSync as b6n,mkdirSync as E6n,readdirSync as _6n,rmSync as T6n}from"node:fs";import{homedir as Pbe,tmpdir as v6n}from"node:os";import{join as na}from"node:path";function R6n(e=process.platform,t=process.env,n=Pbe(),r=i=>{try{return _6n(i)}catch{return[]}}){let i=t.PLAYWRIGHT_BROWSERS_PATH&&t.PLAYWRIGHT_BROWSERS_PATH!=="0"?t.PLAYWRIGHT_BROWSERS_PATH:e==="darwin"?na(n,"Library","Caches","ms-playwright"):e==="win32"?na(n,"AppData","Local","ms-playwright"):na(n,".cache","ms-playwright"),s=r(i).filter(d=>/^chromium-\d+$/.test(d)).sort((d,f)=>{let p=Number.parseInt(d.slice(9),10);return Number.parseInt(f.slice(9),10)-p});if(s.length===0)return null;let o=na(i,s[0]);if(e==="win32")return na(o,"chrome-win","chrome.exe");if(e!=="darwin")return na(o,"chrome-linux","chrome");let a=r(o).find(d=>d.startsWith("chrome-mac"));if(!a)return null;let c=na(o,a),u=r(c).find(d=>d.endsWith(".app"));if(!u)return null;let l=u.slice(0,-4);return na(c,u,"Contents","MacOS",l)}function A6n(e=process.platform,t=process.env){if(e==="darwin")return["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/Applications/Chromium.app/Contents/MacOS/Chromium","/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge","/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"];if(e==="win32"){let n=t.PROGRAMFILES||"C:\\Program Files",r=t["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)",i=t.LOCALAPPDATA||na(Pbe(),"AppData","Local");return[na(n,"Google\\Chrome\\Application\\chrome.exe"),na(r,"Google\\Chrome\\Application\\chrome.exe"),na(i,"Google\\Chrome\\Application\\chrome.exe"),na(n,"Microsoft\\Edge\\Application\\msedge.exe"),na(r,"Microsoft\\Edge\\Application\\msedge.exe"),na(n,"BraveSoftware\\Brave-Browser\\Application\\brave.exe")]}return["google-chrome","google-chrome-stable","chromium","chromium-browser","microsoft-edge","microsoft-edge-stable","brave-browser"]}function w6n(e,t,n){if(e.includes("/")||e.includes("\\"))return n(e)?e:null;let r=t.PATH||"";for(let i of r.split(":")){if(!i)continue;let s=na(i,e);if(n(s))return s}return null}function k6n(e=process.platform,t=process.env,n=i=>{try{return y6n(i,S6n.X_OK),!0}catch{return b6n(i)}},r){let i=t.HAIKU_MICRO_APP_BROWSER;if(i)return n(i)?i:null;let s=R6n(e,t,Pbe(),r);if(s&&n(s))return s;for(let o of A6n(e,t)){let a=w6n(o,t,n);if(a)return a}return null}function pTt(){return xbe===void 0&&(xbe=k6n()),xbe}function I6n(){return process.env.HAIKU_DISABLE_MICRO_APP==="1"?!1:pTt()!==null}function x6n(e,t){return[`--app=${e}`,`--user-data-dir=${t}`,"--start-maximized","--no-first-run","--no-default-browser-check","--no-service-autorun","--disable-background-networking","--disable-component-update","--disable-sync","--disable-extensions"]}function O6n(e,t=na(v6n(),"haiku-micro-app")){return na(t,e)}function hTt(e,t={}){if(!I6n())return!1;let n=pTt();if(!n)return!1;let r=t.sessionId??`anon-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,i=Iv.get(r);if(i&&i.child.exitCode===null&&!i.child.killed)return!0;let s=O6n(r);try{E6n(s,{recursive:!0})}catch{return!1}try{let o=g6n(n,x6n(e,s),{stdio:"ignore",detached:!0});return o.on("error",a=>{console.error(`[haiku-micro-app] launch error (${n}): ${a.message}. The review URL is still printed above \u2014 open it manually.`),Iv.delete(r),Obe(s)}),Iv.set(r,{child:o,profileDir:s}),P6n(),!0}catch(o){return console.error(`[haiku-micro-app] spawn threw: ${o instanceof Error?o.message:String(o)}`),Obe(s),!1}}function Obe(e){try{T6n(e,{recursive:!0,force:!0})}catch{}}function dTt(e,t){let n=e.child.pid;if(n!==void 0)try{process.kill(-n,t);return}catch{}try{e.child.kill(t)}catch{}}function lx(e){let t=Iv.get(e);return t?(Iv.delete(e),dTt(t,"SIGTERM"),setTimeout(()=>{dTt(t,"SIGKILL")},2e3).unref?.(),Obe(t.profileDir),!0):!1}function mTt(){let e=0;for(let[t]of Iv)t.startsWith("anon-")||$t(t)||(lx(t),e+=1);return e}function P6n(){if(fTt)return;fTt=!0;let e=()=>{for(let[t]of Iv)lx(t)};process.on("exit",e),process.on("SIGINT",()=>{e(),process.exit(130)}),process.on("SIGTERM",()=>{e(),process.exit(143)})}var Iv,xbe,fTt,U1=v(()=>{"use strict";$c();Iv=new Map;fTt=!1});import{existsSync as gTt,readdirSync as N6n,readFileSync as C6n}from"node:fs";import{join as i6}from"node:path";function r6(e,t){return t?i6(t,"intents",e):pe(e)}function D6n(e,t){let n=i6(r6(e,t),"intent.md");if(!gTt(n))return null;let{data:r}=re(C6n(n,"utf8"));return r}function yTt(e,t){let n=D6n(e,t);if(!n)return null;let r=n.studio||"";if(!r||n.composite)return null;let i=wn(n,r),s=i.length>0?i:Fs(r);if(s.length===0)return{studio:r,stage:"",phase:""};let o=typeof n.mode=="string"&&n.mode.length>0?n.mode:"continuous",a=ai(e,r,r6(e,t)),c=a??s[s.length-1],l=mv({slug:e,studio:r,stage:c,intentDir:r6(e,t),intentMode:o}).phase??"",d=M6n.has(l)?l:"",f;if(d==="elaborate"){let m=i6(r6(e,t),"stages",c),g=i6(m,"units"),y=gTt(g)?N6n(g).filter(S=>S.endsWith(".md")).map(S=>S.replace(/\.md$/,"")):[],b=x0({slug:e,studio:r,stage:c,stageDir:m,unitNames:y,mode:o});b.length>0&&(f=Eye(b))}let p,h;if(a===null){let m=typeof n.sealed_at=="string"&&n.sealed_at.length>0,g=w0(e,{localOnly:!0});g.applicable&&!g.merged?(p="pending_seal",h=g.defaultBranch):m&&(p="sealed")}return{studio:r,stage:c,phase:d,...f?{pending_signals:f}:{},...p?{seal_status:p}:{},...h?{awaiting_merge_into:h}:{}}}var M6n,STt=v(()=>{"use strict";ns();Oa();u1();VL();Ge();M6n=new Set(["elaborate","execute","review","gate"])});import{execFileSync as L6n}from"node:child_process";function s6(e){try{return L6n(e[0],e.slice(1),{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3}).trim()}catch{return""}}function U6n(e){if(!e)return null;let t="",n="",r=e.match(/^[^@\s]+@([^:]+):(.+?)(?:\.git)?$/);if(r)t=r[1],n=r[2];else try{let c=new URL(e);t=c.hostname,n=c.pathname.replace(/^\/+/,"").replace(/\.git$/,"")}catch{return null}let i=n.split("/").filter(Boolean);if(i.length<2)return null;let s=i[0],o=i.slice(1).join("/");return{host:t==="github.com"?"github.com":t==="gitlab.com"?"gitlab.com":"other",owner:s,repo:o,rawUrl:e}}function F6n(e,t){if(!e)return null;for(let[n,r,i]of[["refs/pull/*/head","github-pr-ref","github.com"],["refs/merge-requests/*/head","gitlab-mr-ref","gitlab.com"]]){if(t.host!=="other"&&t.host!==i)continue;let s=s6(["git","ls-remote","origin",n]);if(s)for(let o of s.split(` +`)){let[a,c]=o.trim().split(/\s+/);if(a!==e)continue;let u=c?.match(/^refs\/(?:pull|merge-requests)\/(\d+)\/head$/);if(u)return{source:r,prNumber:Number(u[1])}}}return null}function j6n(e,t,n){return e.host==="github.com"&&t==="github-pr-ref"?`https://github.com/${e.owner}/${e.repo}/pull/${n}`:e.host==="gitlab.com"&&t==="gitlab-mr-ref"?`https://gitlab.com/${e.owner}/${e.repo}/-/merge_requests/${n}`:null}function H6n(e){if(!ve())return null;let t=`haiku/${e}/main`,n=s6(["git","rev-parse","--verify",t])||s6(["git","rev-parse","--verify",`origin/${t}`]);if(!n)return null;let r=s6(["git","remote","get-url","origin"]),i=U6n(r);if(!i)return null;let s=F6n(n,i);if(!s)return null;let o=j6n(i,s.source,s.prNumber);return o?{url:o,source:s.source,prNumber:s.prNumber,matchedSha:n}:null}function ETt(e){let t=Date.now(),n=bTt.get(e);if(n&&n.expiresAt>t)return n.value;let r=H6n(e);return bTt.set(e,{value:r,expiresAt:t+q6n}),r}var q6n,bTt,_Tt=v(()=>{"use strict";bb();q6n=3e4,bTt=new Map});var TTt=v(()=>{});var CTt=w(cn=>{"use strict";var Mbe=Symbol.for("react.transitional.element"),B6n=Symbol.for("react.portal"),z6n=Symbol.for("react.fragment"),G6n=Symbol.for("react.strict_mode"),V6n=Symbol.for("react.profiler"),W6n=Symbol.for("react.consumer"),K6n=Symbol.for("react.context"),Y6n=Symbol.for("react.forward_ref"),Z6n=Symbol.for("react.suspense"),J6n=Symbol.for("react.memo"),kTt=Symbol.for("react.lazy"),X6n=Symbol.for("react.activity"),vTt=Symbol.iterator;function Q6n(e){return e===null||typeof e!="object"?null:(e=vTt&&e[vTt]||e["@@iterator"],typeof e=="function"?e:null)}var ITt={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},xTt=Object.assign,OTt={};function fx(e,t,n){this.props=e,this.context=t,this.refs=OTt,this.updater=n||ITt}fx.prototype.isReactComponent={};fx.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};fx.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function PTt(){}PTt.prototype=fx.prototype;function Dbe(e,t,n){this.props=e,this.context=t,this.refs=OTt,this.updater=n||ITt}var Lbe=Dbe.prototype=new PTt;Lbe.constructor=Dbe;xTt(Lbe,fx.prototype);Lbe.isPureReactComponent=!0;var RTt=Array.isArray;function Cbe(){}var Ai={H:null,A:null,T:null,S:null},NTt=Object.prototype.hasOwnProperty;function Ube(e,t,n){var r=n.ref;return{$$typeof:Mbe,type:e,key:t,ref:r!==void 0?r:null,props:n}}function $6n(e,t){return Ube(e.type,t,e.props)}function Fbe(e){return typeof e=="object"&&e!==null&&e.$$typeof===Mbe}function e5n(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var ATt=/\/+/g;function Nbe(e,t){return typeof e=="object"&&e!==null&&e.key!=null?e5n(""+e.key):t.toString(36)}function t5n(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Cbe,Cbe):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function dx(e,t,n,r,i){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(s){case"bigint":case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case Mbe:case B6n:o=!0;break;case kTt:return o=e._init,dx(o(e._payload),t,n,r,i)}}if(o)return i=i(e),o=r===""?"."+Nbe(e,0):r,RTt(i)?(n="",o!=null&&(n=o.replace(ATt,"$&/")+"/"),dx(i,t,n,"",function(u){return u})):i!=null&&(Fbe(i)&&(i=$6n(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(ATt,"$&/")+"/")+o)),t.push(i)),1;o=0;var a=r===""?".":r+":";if(RTt(e))for(var c=0;c{"use strict";process.env.NODE_ENV!=="production"&&(function(){function e(D,te){Object.defineProperty(r.prototype,D,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",te[0],te[1])}})}function t(D){return D===null||typeof D!="object"?null:(D=Le&&D[Le]||D["@@iterator"],typeof D=="function"?D:null)}function n(D,te){D=(D=D.constructor)&&(D.displayName||D.name)||"ReactClass";var Ne=D+"."+te;Ae[Ne]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",te,D),Ae[Ne]=!0)}function r(D,te,Ne){this.props=D,this.context=te,this.refs=oe,this.updater=Ne||z}function i(){}function s(D,te,Ne){this.props=D,this.context=te,this.refs=oe,this.updater=Ne||z}function o(){}function a(D){return""+D}function c(D){try{a(D);var te=!1}catch{te=!0}if(te){te=console;var Ne=te.error,Se=typeof Symbol=="function"&&Symbol.toStringTag&&D[Symbol.toStringTag]||D.constructor.name||"Object";return Ne.call(te,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",Se),a(D)}}function u(D){if(D==null)return null;if(typeof D=="function")return D.$$typeof===kt?null:D.displayName||D.name||null;if(typeof D=="string")return D;switch(D){case Q:return"Fragment";case F:return"Profiler";case B:return"StrictMode";case H:return"Suspense";case j:return"SuspenseList";case se:return"Activity"}if(typeof D=="object")switch(typeof D.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),D.$$typeof){case q:return"Portal";case U:return D.displayName||"Context";case V:return(D._context.displayName||"Context")+".Consumer";case M:var te=D.render;return D=D.displayName,D||(D=te.displayName||te.name||"",D=D!==""?"ForwardRef("+D+")":"ForwardRef"),D;case Y:return te=D.displayName||null,te!==null?te:u(D.type)||"Memo";case ee:te=D._payload,D=D._init;try{return u(D(te))}catch{}}return null}function l(D){if(D===Q)return"<>";if(typeof D=="object"&&D!==null&&D.$$typeof===ee)return"<...>";try{var te=u(D);return te?"<"+te+">":"<...>"}catch{return"<...>"}}function d(){var D=Ue.A;return D===null?null:D.getOwner()}function f(){return Error("react-stack-top-frame")}function p(D){if(Ln.call(D,"key")){var te=Object.getOwnPropertyDescriptor(D,"key").get;if(te&&te.isReactWarning)return!1}return D.key!==void 0}function h(D,te){function Ne(){sn||(sn=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",te))}Ne.isReactWarning=!0,Object.defineProperty(D,"key",{get:Ne,configurable:!0})}function m(){var D=u(this.type);return nl[D]||(nl[D]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),D=this.props.ref,D!==void 0?D:null}function g(D,te,Ne,Se,at,On){var It=Ne.ref;return D={$$typeof:$,type:D,key:te,props:Ne,_owner:Se},(It!==void 0?It:null)!==null?Object.defineProperty(D,"ref",{enumerable:!1,get:m}):Object.defineProperty(D,"ref",{enumerable:!1,value:null}),D._store={},Object.defineProperty(D._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(D,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(D,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:at}),Object.defineProperty(D,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:On}),Object.freeze&&(Object.freeze(D.props),Object.freeze(D)),D}function y(D,te){return te=g(D.type,te,D.props,D._owner,D._debugStack,D._debugTask),D._store&&(te._store.validated=D._store.validated),te}function b(D){S(D)?D._store&&(D._store.validated=1):typeof D=="object"&&D!==null&&D.$$typeof===ee&&(D._payload.status==="fulfilled"?S(D._payload.value)&&D._payload.value._store&&(D._payload.value._store.validated=1):D._store&&(D._store.validated=1))}function S(D){return typeof D=="object"&&D!==null&&D.$$typeof===$}function E(D){var te={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(Ne){return te[Ne]})}function _(D,te){return typeof D=="object"&&D!==null&&D.key!=null?(c(D.key),E(""+D.key)):te.toString(36)}function T(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(o,o):(D.status="pending",D.then(function(te){D.status==="pending"&&(D.status="fulfilled",D.value=te)},function(te){D.status==="pending"&&(D.status="rejected",D.reason=te)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function R(D,te,Ne,Se,at){var On=typeof D;(On==="undefined"||On==="boolean")&&(D=null);var It=!1;if(D===null)It=!0;else switch(On){case"bigint":case"string":case"number":It=!0;break;case"object":switch(D.$$typeof){case $:case q:It=!0;break;case ee:return It=D._init,R(It(D._payload),te,Ne,Se,at)}}if(It){It=D,at=at(It);var dn=Se===""?"."+_(It,0):Se;return Ee(at)?(Ne="",dn!=null&&(Ne=dn.replace(Ii,"$&/")+"/"),R(at,te,Ne,"",function(ra){return ra})):at!=null&&(S(at)&&(at.key!=null&&(It&&It.key===at.key||c(at.key)),Ne=y(at,Ne+(at.key==null||It&&It.key===at.key?"":(""+at.key).replace(Ii,"$&/")+"/")+dn),Se!==""&&It!=null&&S(It)&&It.key==null&&It._store&&!It._store.validated&&(Ne._store.validated=2),at=Ne),te.push(at)),1}if(It=0,dn=Se===""?".":Se+":",Ee(D))for(var _t=0;_t import('./MyComponent')) @@ -976,32 +976,32 @@ Your code should look like: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),D}function P(){Ue.asyncTransitions--}function N(D){if(Rr===null)try{var te=("require"+Math.random()).slice(0,7);Rr=(o6&&o6[te]).call(o6,"timers").setImmediate}catch{Rr=function(Se){uy===!1&&(uy=!0,typeof MessageChannel>"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var at=new MessageChannel;at.port1.onmessage=Se,at.port2.postMessage(void 0)}}return Rr(D)}function C(D){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(_t,ra){at=!0,It.then(function(jl){if(L(te,Ne),Ne===0){try{W(Se),N(function(){return G(jl,_t,ra)})}catch(vp){Ue.thrownErrors.push(vp)}if(0 ...)"))}),Ue.actQueue=null),0Ue.recentlyCreatedOwnerStacks++;return g(D,at,Se,d(),_t?Error("react-stack-top-frame"):As,_t?lr(l(D)):uE)},en.createRef=function(){var D={current:null};return Object.seal(D),D},en.forwardRef=function(D){D!=null&&D.$$typeof===Y?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof D!="function"?console.error("forwardRef requires a render function but was given %s.",D===null?"null":typeof D):D.length!==0&&D.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",D.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),D!=null&&D.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var te={$$typeof:M,render:D},Ne;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ne},set:function(Se){Ne=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),te},en.isValidElement=S,en.lazy=function(D){D={_status:-1,_result:D};var te={$$typeof:ee,_payload:D,_init:x},Ne={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return D._ioInfo=Ne,te._debugInfo=[{awaited:Ne}],te},en.memo=function(D,te){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),te={$$typeof:Y,type:D,compare:te===void 0?null:te};var Ne;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ne},set:function(Se){Ne=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),te},en.startTransition=function(D){var te=Ue.T,Ne={};Ne._updatedFibers=new Set,Ue.T=Ne;try{var Se=D(),at=Ue.S;at!==null&&at(Ne,Se),typeof Se=="object"&&Se!==null&&typeof Se.then=="function"&&(Ue.asyncTransitions++,Se.then(P,P),Se.then(o,_p))}catch(On){_p(On)}finally{te===null&&Ne._updatedFibers&&(D=Ne._updatedFibers.size,Ne._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?Fbe.exports=CTt():Fbe.exports=MTt()});var i5n,LTt=v(()=>{i5n=Re(DTt(),1)});var UTt=v(()=>{});var FTt=v(()=>{});var jTt=v(()=>{});var HTt=v(()=>{TTt();LTt();UTt();FTt();jTt()});var qTt=v(()=>{});function zTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function GTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function a6(e){let t=!1;return e.map(n=>n.done?{key:n.key,label:n.label,status:"done"}:t?{key:n.key,label:n.label,status:"pending"}:(t=!0,{key:n.key,label:n.label,status:"active"}))}function jbe(e){let{elaborateDone:t,reviewRoles:n,executeDone:r,approvalRoles:i,observationsDone:s=null,groupAdversarial:o=!0}=e,a=[];return a.push({key:"elaborate",label:"elaborate",done:t}),a.push(...BTt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...BTt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),a6(a)}function BTt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?zTt(l):GTt(l),u=()=>{if(s.length!==0){if(r){let l=s.filter(f=>f.stamped).length,d=s.length;i.push({key:`${t}:adversarial:${o}`,label:d>1?`${a} (${l}/${d})`:a,done:n&&s.every(f=>f.stamped)}),o+=1}else for(let l of s)i.push({key:`${t}:${l.role}`,label:c(l.role),done:n&&l.stamped});s=[]}};for(let l of e)l5n.has(l.role)?(u(),i.push({key:`${t}:${l.role}`,label:c(l.role),done:n&&l.stamped})):s.push(l);return u(),i}var l5n,VTt=v(()=>{l5n=new Set(["spec","quality_gates","user"])});var WTt=v(()=>{HTt();jye();qTt();TD();VTt()});import{existsSync as KTt}from"node:fs";import{join as xv}from"node:path";function qbe(e){if(!e)return!1;if(Array.isArray(e.dispatches)&&e.dispatches.length>1)return!0;let t=e.role;return typeof t=="string"&&t.length>0&&!Hbe.has(t)}function c6(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=qbe(e),o=a=>t.findIndex(c=>a(c.key));switch(n){case"elaborate_loop":return o(a=>a==="elaborate");case"dispatch_review":return o(s?a=>a.startsWith("review:adversarial"):a=>a===`review:${r??"spec"}`);case"start_unit_hat":case"start_units":case"execute":case"continue_unit":case"continue_units":return o(a=>a==="execute");case"dispatch_approval":return o(s?a=>a.startsWith("approve:adversarial"):a=>a===`approve:${r??"spec"}`);case"dispatch_quality_gates":{let a=o(c=>c==="approve:quality_gates");return a>=0?a:o(c=>c==="intent-quality-gates")}case"user_gate":return o(i==="approval"?a=>a==="approve:user":a=>a==="review:user");case"write_brief":return o(a=>a==="review:user");case"intent_review":return o(r==="user"?a=>a==="intent-review:user":s?a=>a.startsWith("intent-review:adversarial"):a=>a===`intent-review:${r??"spec"}`);case"record_reflection":return o(a=>a==="reflection");case"seal_intent":case"pending_seal":case"sealed":return o(a=>a==="seal");default:return-1}}function d5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function ZTt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function f5n(e){return Array.isArray(e.iterations)?e.iterations:[]}function Bbe(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=av(i).map(y=>({name:jY(y),fm:Qc(y)?.data??{}})).filter(y=>y.fm),u=c.map(y=>y.name),l=Es(n,r),{reviewRoles:d,approvalRoles:f}=qY(n,r,s),p=I0({slug:t,studio:n,stage:r,stageDir:i,unitNames:u,mode:s}).length===0,h=(y,b)=>c.length>0&&c.every(S=>!!(y==="reviews"?d5n(S.fm):ZTt(S.fm))[b]),m=c.length>0&&(l.length===0||c.every(y=>{let b=f5n(y.fm);if(b.length===0)return!1;let S=b[b.length-1];return S.result==="advance"&&S.hat===l[l.length-1]})),g=ov(xv(i,"..",".."))?KTt(xv(i,"observations.md")):null;return jbe({elaborateDone:p,reviewRoles:d.map(y=>({role:y,stamped:h("reviews",y)})),executeDone:m,approvalRoles:f.map(y=>({role:y,stamped:h("approvals",y)})),observationsDone:g,groupAdversarial:o})}function JTt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Qc(xv(t,"intent.md"))?.data??{},o=ZTt(s),a=s.studio||"",c=a?Object.keys(gg(a)).sort():[],u=f=>f==="spec"||f==="user",l=[],d=()=>{if(l.length===0)return;let f=l.filter(p=>!!o[p]).length;i.push({key:"intent-review:adversarial:0",label:l.length>1?`adversarial review (${f}/${l.length})`:"adversarial review",done:l.every(p=>!!o[p])}),l=[]};for(let f of HY(n,c)){if(r&&!u(f)){l.push(f);continue}d(),i.push({key:`intent-review:${f}`,label:f==="user"?"intent gate":`${f} review`,done:!!o[f]})}return d(),i.push({key:"intent-quality-gates",label:"quality gates",done:!!o.intent_quality_gates}),ov(t)&&i.push({key:"reflection",label:"reflection",done:KTt(xv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),a6(i)}function u6(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r),a=o?Bbe({slug:t,studio:n,stage:o,stageDir:xv(r,"stages",o),mode:i}):JTt({intentDir:r,mode:i}),c=a.findIndex(u=>u.status!=="done");return{scope:o?"stage":"intent",steps:a,index:c===-1?a.length:c,total:a.length}}function XTt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r);return o?Bbe({slug:t,studio:n,stage:o,stageDir:xv(r,"stages",o),mode:i,groupAdversarial:!1}):JTt({intentDir:r,mode:i,groupAdversarial:!1})}function QTt(e){return Bbe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:xv(e.intentDir,"stages",e.stage),mode:e.mode})}var Hbe,YTt,zbe=v(()=>{"use strict";WTt();Kn();ns();Oa();Hbe=new Set(["spec","quality_gates","user"]),YTt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as L1,readFileSync as U1}from"node:fs";import{join as F1}from"node:path";function p5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function evt(e){if(!e||typeof e!="object")return e;let t={...e};for(let n of["reviews","approvals"]){let r=t[n];if(!r||typeof r!="object")continue;let i={};for(let[s,o]of Object.entries(r))if(o&&typeof o=="object"){let a=o,{body_sha256:c,witnesses:u,...l}=a;i[s]=l}else i[s]=o;t[n]=i}return t}function h5n(e){return e.map(t=>({...t,frontmatter:evt(t.frontmatter)??t.frontmatter}))}function Gbe(e){if(!e)return{};let t=F1(pe(e),"intent.md");if(!L1(t))return{};try{return re(U1(t,"utf8")).data}catch{return{}}}function g5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=$Tt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?p5n(a):"";if(n==="intent_completion")return{label:"Mark Intent Done",kind:"complete_intent"};if(o)return{label:c?`Open ${c} Pull Request`:"Open Pull Request",kind:"open_pr"};if(n==="intent_review")return{label:c?`Start ${c}`:"Start Intent",kind:"start_intent"};if(n==="elaborate_to_execute")return{label:c?`Start ${c} Execution`:"Start Execution",kind:"start_execution"};let u=Gbe(e.intent_slug),l=e.next_stage===null;if(!l&&e.next_stage===void 0){let d=t?.studio||u.studio||"";if(d){let f=wn(u,d),p=f.length>0?f:Fs(d);l=p.length>0&&p[p.length-1]===a}}if(l){let d=t?.studio||u.studio||"";return!!d&&Object.keys(gg(d)).length>0?{label:"Submit Intent for Final Review",kind:"submit_intent_review"}:{label:"Complete Intent",kind:"complete_intent"}}return c?{label:`Complete ${c} Stage`,kind:"complete_stage"}:{label:"Approve",kind:"approve"}}function tvt(e,t){let n=$t(t);if(!n){e.status(404).send({error:"Session not found"});return}let r={session_id:n.session_id,session_type:n.session_type,status:n.status};if(n.session_type==="review"){if(r.intent_slug=n.intent_slug,r.gate_type=n.gate_type||"ask",r.target=n.target,r.decision=n.decision,r.feedback=n.feedback,n.annotations&&(r.annotations=n.annotations),n.parsedIntent){let o=n.parsedIntent;r.intent={...o,frontmatter:evt(o.frontmatter)}}if(n.parsedUnits&&(r.units=h5n(n.parsedUnits)),n.parsedCriteria&&(r.criteria=n.parsedCriteria),n.parsedMermaid&&(r.mermaid=n.parsedMermaid),n.intentMockups&&(r.intent_mockups=n.intentMockups),n.unitMockups){let o={};if(n.unitMockups instanceof Map)for(let[a,c]of n.unitMockups)o[a]=c;else Object.assign(o,n.unitMockups);r.unit_mockups=o}n.stageStates&&(r.stage_states=n.stageStates);let i=n.intent_slug?yTt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=Gbe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=u6({slug:n.intent_slug,studio:i.studio,intentDir:pe(n.intent_slug),intentMode:a});if(c.total>0){i.milestones=c.steps;let u=c.index;try{let l=$f({slug:n.intent_slug,intentDir:pe(n.intent_slug),studio:i.studio}),d=c6(l.action,c.steps);d>=0&&(u=d)}catch{}i.progress_index=u,i.progress_total=c.total}}catch{}{let o=n.intent_slug,a=o?Gbe(o):{},c=i?.studio||a.studio||"";if(o&&c)try{let u=typeof a?.mode=="string"?a.mode:"",l=wn(a,c),d=l.length>0?l:Fs(c),f=pe(o),p={},h={},m={},g={},y={};for(let b of d){try{let _=QTt({slug:o,studio:c,intentDir:f,stage:b,mode:u});_.length>0&&(p[b]=_)}catch{}let E=$i(c,b)?.data?.description;typeof E=="string"&&E.trim()&&(h[b]=E.trim());try{let _=F1(f,"stages",b,"BRIEF.md");if(L1(_)){let T=U1(_,"utf8").trim();T&&(m[b]=T)}}catch{}try{let _=F1(f,"stages",b,"observations.md");if(L1(_)){let T=U1(_,"utf8").trim();T&&(g[b]=T)}}catch{}try{let _=F1(f,"stages",b,"elaboration.md");if(L1(_)){let T=U1(_,"utf8").trim();T&&(y[b]=T)}}catch{}}Object.keys(p).length>0&&(r.stage_milestones=p),Object.keys(h).length>0&&(r.stage_summaries=h),Object.keys(m).length>0&&(r.stage_briefs=m),Object.keys(g).length>0&&(r.stage_observations=g),Object.keys(y).length>0&&(r.stage_elaborations=y);try{let b=F1(f,"reflection.md");if(L1(b)){let S=U1(b,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=g5n({slug:s,stage:i.stage,studio:i.studio,intentDir:pe(s)});o.length>0&&(r.drift=o.map(a=>({path:a.file,stage:a.unit==="(intent)"?"":i.stage,intent:s,action:"modified",age:a.since,kind:a.kind,unit:a.unit,role:a.role})))}catch{}if(n.intent_slug){let o=ETt(n.intent_slug);o&&(r.discovered_review_url=o)}n.knowledgeFiles&&(r.knowledge_files=n.knowledgeFiles),n.stageArtifacts&&(r.stage_artifacts=n.stageArtifacts),n.outputArtifacts&&(r.output_artifacts=n.outputArtifacts),n.otherFiles&&(r.other_files=n.otherFiles),n.intentOtherFiles&&(r.intent_other_files=n.intentOtherFiles),n.unitOutputs&&(r.unit_outputs=n.unitOutputs),n.outputDeclaredBy&&(r.output_declared_by=n.outputDeclaredBy),n.previousReview&&(r.previous_review=n.previousReview),n.ad_hoc&&(r.ad_hoc=!0),n.stage&&(r.stage=n.stage),n.gate_context&&(r.gate_context=n.gate_context),n.next_stage!==void 0&&(r.next_stage=n.next_stage),n.next_phase!==void 0&&(r.next_phase=n.next_phase),r.await_active=n.await_active===!0,r.await_count=n.await_count??0,n.pending_decision&&(r.pending_decision=n.pending_decision),n.last_await_started_at&&(r.last_await_started_at=n.last_await_started_at),n.last_await_ended_at&&(r.last_await_ended_at=n.last_await_ended_at),r.approve_action=y5n(n,i)}if(n.session_type==="question"){r.title=n.title,r.context=n.context,r.questions=n.questions,r.answers=n.answers;let i=n.imagePaths??[];r.image_urls=i.map((s,o)=>`/question-image/${n.session_id}/${o}`)}n.session_type==="design_direction"&&(r.title="Design Direction",r.intent_slug=n.intent_slug,n.context&&(r.context=n.context),r.archetypes=n.archetypes,r.selection=n.selection),n.session_type==="picker"&&(r.intent_slug=n.intent_slug,r.kind=n.kind,r.title=n.title,r.prompt=n.prompt,r.options=n.options,r.selection=n.selection),n.session_type==="view"&&(r.intent_slug=n.intent_slug,r.mode=n.mode,n.studio&&(r.studio=n.studio),n.stage&&(r.stage=n.stage),n.artifact&&(r.artifact=n.artifact),n.boot_port&&(r.boot_port=n.boot_port),n.boot_command&&(r.boot_command=n.boot_command)),e.send(r)}var $Tt,m5n,nvt=v(()=>{"use strict";STt();_Tt();ns();Oa();mye();zbe();$c();Ge();Kn();$Tt=new Map,m5n=2e3});import{appendFileSync as S5n}from"node:fs";function zb(e){try{S5n(b5n,`${new Date().toISOString()} ${e} +See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),D}function P(){Ue.asyncTransitions--}function N(D){if(Rr===null)try{var te=("require"+Math.random()).slice(0,7);Rr=(a6&&a6[te]).call(a6,"timers").setImmediate}catch{Rr=function(Se){uy===!1&&(uy=!0,typeof MessageChannel>"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var at=new MessageChannel;at.port1.onmessage=Se,at.port2.postMessage(void 0)}}return Rr(D)}function C(D){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(_t,ra){at=!0,It.then(function(jl){if(L(te,Ne),Ne===0){try{W(Se),N(function(){return G(jl,_t,ra)})}catch(vp){Ue.thrownErrors.push(vp)}if(0 ...)"))}),Ue.actQueue=null),0Ue.recentlyCreatedOwnerStacks++;return g(D,at,Se,d(),_t?Error("react-stack-top-frame"):As,_t?lr(l(D)):uE)},en.createRef=function(){var D={current:null};return Object.seal(D),D},en.forwardRef=function(D){D!=null&&D.$$typeof===Y?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof D!="function"?console.error("forwardRef requires a render function but was given %s.",D===null?"null":typeof D):D.length!==0&&D.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",D.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),D!=null&&D.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var te={$$typeof:M,render:D},Ne;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ne},set:function(Se){Ne=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),te},en.isValidElement=S,en.lazy=function(D){D={_status:-1,_result:D};var te={$$typeof:ee,_payload:D,_init:x},Ne={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return D._ioInfo=Ne,te._debugInfo=[{awaited:Ne}],te},en.memo=function(D,te){D==null&&console.error("memo: The first argument must be a component. Instead received: %s",D===null?"null":typeof D),te={$$typeof:Y,type:D,compare:te===void 0?null:te};var Ne;return Object.defineProperty(te,"displayName",{enumerable:!1,configurable:!0,get:function(){return Ne},set:function(Se){Ne=Se,D.name||D.displayName||(Object.defineProperty(D,"name",{value:Se}),D.displayName=Se)}}),te},en.startTransition=function(D){var te=Ue.T,Ne={};Ne._updatedFibers=new Set,Ue.T=Ne;try{var Se=D(),at=Ue.S;at!==null&&at(Ne,Se),typeof Se=="object"&&Se!==null&&typeof Se.then=="function"&&(Ue.asyncTransitions++,Se.then(P,P),Se.then(o,_p))}catch(On){_p(On)}finally{te===null&&Ne._updatedFibers&&(D=Ne._updatedFibers.size,Ne._updatedFibers.clear(),10{"use strict";process.env.NODE_ENV==="production"?jbe.exports=CTt():jbe.exports=MTt()});var i5n,LTt=v(()=>{i5n=Re(DTt(),1)});var UTt=v(()=>{});var FTt=v(()=>{});var jTt=v(()=>{});var HTt=v(()=>{TTt();LTt();UTt();FTt();jTt()});var qTt=v(()=>{});function zTt(e){return e==="user"?"spec gate":e==="cross-stage-consistency"?"cross-stage review":`${e} review`}function GTt(e){return e==="user"?"approval gate":e==="quality_gates"?"quality gates":e==="cross-stage-consistency"?"cross-stage approval":`${e} approval`}function c6(e){let t=!1;return e.map(n=>n.done?{key:n.key,label:n.label,status:"done"}:t?{key:n.key,label:n.label,status:"pending"}:(t=!0,{key:n.key,label:n.label,status:"active"}))}function Hbe(e){let{elaborateDone:t,reviewRoles:n,executeDone:r,approvalRoles:i,observationsDone:s=null,groupAdversarial:o=!0}=e,a=[];return a.push({key:"elaborate",label:"elaborate",done:t}),a.push(...BTt(n,"review",t,o)),a.push({key:"execute",label:"execute",done:r}),a.push(...BTt(i,"approve",r,o)),s!=null&&a.push({key:"observations",label:"observations",done:s}),c6(a)}function BTt(e,t,n,r=!0){let i=[],s=[],o=0,a=t==="review"?"adversarial review":"adversarial approval",c=l=>t==="review"?zTt(l):GTt(l),u=()=>{if(s.length!==0){if(r){let l=s.filter(f=>f.stamped).length,d=s.length;i.push({key:`${t}:adversarial:${o}`,label:d>1?`${a} (${l}/${d})`:a,done:n&&s.every(f=>f.stamped)}),o+=1}else for(let l of s)i.push({key:`${t}:${l.role}`,label:c(l.role),done:n&&l.stamped});s=[]}};for(let l of e)l5n.has(l.role)?(u(),i.push({key:`${t}:${l.role}`,label:c(l.role),done:n&&l.stamped})):s.push(l);return u(),i}var l5n,VTt=v(()=>{l5n=new Set(["spec","quality_gates","user"])});var WTt=v(()=>{HTt();Hye();qTt();vD();VTt()});import{existsSync as KTt}from"node:fs";import{join as xv}from"node:path";function Bbe(e){if(!e)return!1;if(Array.isArray(e.dispatches)&&e.dispatches.length>1)return!0;let t=e.role;return typeof t=="string"&&t.length>0&&!qbe.has(t)}function u6(e,t){if(!e)return-1;let n=e.kind,r=e.role,i=e.gate_kind,s=Bbe(e),o=a=>t.findIndex(c=>a(c.key));switch(n){case"elaborate_loop":return o(a=>a==="elaborate");case"dispatch_review":return o(s?a=>a.startsWith("review:adversarial"):a=>a===`review:${r??"spec"}`);case"start_unit_hat":case"start_units":case"execute":case"continue_unit":case"continue_units":return o(a=>a==="execute");case"dispatch_approval":return o(s?a=>a.startsWith("approve:adversarial"):a=>a===`approve:${r??"spec"}`);case"dispatch_quality_gates":{let a=o(c=>c==="approve:quality_gates");return a>=0?a:o(c=>c==="intent-quality-gates")}case"user_gate":return o(i==="approval"?a=>a==="approve:user":a=>a==="review:user");case"write_brief":return o(a=>a==="review:user");case"intent_review":return o(r==="user"?a=>a==="intent-review:user":s?a=>a.startsWith("intent-review:adversarial"):a=>a===`intent-review:${r??"spec"}`);case"record_reflection":return o(a=>a==="reflection");case"seal_intent":case"pending_seal":case"sealed":return o(a=>a==="seal");default:return-1}}function d5n(e){let t=e.reviews;return t&&typeof t=="object"?t:{}}function ZTt(e){let t=e.approvals;return t&&typeof t=="object"?t:{}}function f5n(e){return Array.isArray(e.iterations)?e.iterations:[]}function zbe(e){let{slug:t,studio:n,stage:r,stageDir:i,mode:s,groupAdversarial:o=!0}=e,c=av(i).map(y=>({name:HY(y),fm:Qc(y)?.data??{}})).filter(y=>y.fm),u=c.map(y=>y.name),l=Es(n,r),{reviewRoles:d,approvalRoles:f}=BY(n,r,s),p=x0({slug:t,studio:n,stage:r,stageDir:i,unitNames:u,mode:s}).length===0,h=(y,b)=>c.length>0&&c.every(S=>!!(y==="reviews"?d5n(S.fm):ZTt(S.fm))[b]),m=c.length>0&&(l.length===0||c.every(y=>{let b=f5n(y.fm);if(b.length===0)return!1;let S=b[b.length-1];return S.result==="advance"&&S.hat===l[l.length-1]})),g=ov(xv(i,"..",".."))?KTt(xv(i,"observations.md")):null;return Hbe({elaborateDone:p,reviewRoles:d.map(y=>({role:y,stamped:h("reviews",y)})),executeDone:m,approvalRoles:f.map(y=>({role:y,stamped:h("approvals",y)})),observationsDone:g,groupAdversarial:o})}function JTt(e){let{intentDir:t,mode:n,groupAdversarial:r=!0}=e,i=[],s=Qc(xv(t,"intent.md"))?.data??{},o=ZTt(s),a=s.studio||"",c=a?Object.keys(gg(a)).sort():[],u=f=>f==="spec"||f==="user",l=[],d=()=>{if(l.length===0)return;let f=l.filter(p=>!!o[p]).length;i.push({key:"intent-review:adversarial:0",label:l.length>1?`adversarial review (${f}/${l.length})`:"adversarial review",done:l.every(p=>!!o[p])}),l=[]};for(let f of qY(n,c)){if(r&&!u(f)){l.push(f);continue}d(),i.push({key:`intent-review:${f}`,label:f==="user"?"intent gate":`${f} review`,done:!!o[f]})}return d(),i.push({key:"intent-quality-gates",label:"quality gates",done:!!o.intent_quality_gates}),ov(t)&&i.push({key:"reflection",label:"reflection",done:KTt(xv(t,"reflection.md"))}),i.push({key:"seal",label:"seal",done:s.sealed_at!=null}),c6(i)}function l6(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r),a=o?zbe({slug:t,studio:n,stage:o,stageDir:xv(r,"stages",o),mode:i}):JTt({intentDir:r,mode:i}),c=a.findIndex(u=>u.status!=="done");return{scope:o?"stage":"intent",steps:a,index:c===-1?a.length:c,total:a.length}}function XTt(e){let{slug:t,studio:n,intentDir:r,intentMode:i,stage:s}=e,o=s!==void 0?s:ai(t,n,r);return o?zbe({slug:t,studio:n,stage:o,stageDir:xv(r,"stages",o),mode:i,groupAdversarial:!1}):JTt({intentDir:r,mode:i,groupAdversarial:!1})}function QTt(e){return zbe({slug:e.slug,studio:e.studio,stage:e.stage,stageDir:xv(e.intentDir,"stages",e.stage),mode:e.mode})}var qbe,YTt,Gbe=v(()=>{"use strict";WTt();Kn();ns();Oa();qbe=new Set(["spec","quality_gates","user"]),YTt=e=>e.includes(":")?e.slice(e.indexOf(":")+1):e});import{existsSync as F1,readFileSync as j1}from"node:fs";import{join as H1}from"node:path";function p5n(e){return e.split(/[-_]/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function evt(e){if(!e||typeof e!="object")return e;let t={...e};for(let n of["reviews","approvals"]){let r=t[n];if(!r||typeof r!="object")continue;let i={};for(let[s,o]of Object.entries(r))if(o&&typeof o=="object"){let a=o,{body_sha256:c,witnesses:u,...l}=a;i[s]=l}else i[s]=o;t[n]=i}return t}function h5n(e){return e.map(t=>({...t,frontmatter:evt(t.frontmatter)??t.frontmatter}))}function Vbe(e){if(!e)return{};let t=H1(pe(e),"intent.md");if(!F1(t))return{};try{return re(j1(t,"utf8")).data}catch{return{}}}function g5n(e){let t=`${e.slug}::${e.stage}`,n=Date.now(),r=$Tt.get(t);if(r&&n-r.atd.trim()),o=i.some(d=>d==="external")&&i.length===1,a=t?.stage||e.stage||"",c=a?p5n(a):"";if(n==="intent_completion")return{label:"Mark Intent Done",kind:"complete_intent"};if(o)return{label:c?`Open ${c} Pull Request`:"Open Pull Request",kind:"open_pr"};if(n==="intent_review")return{label:c?`Start ${c}`:"Start Intent",kind:"start_intent"};if(n==="elaborate_to_execute")return{label:c?`Start ${c} Execution`:"Start Execution",kind:"start_execution"};let u=Vbe(e.intent_slug),l=e.next_stage===null;if(!l&&e.next_stage===void 0){let d=t?.studio||u.studio||"";if(d){let f=wn(u,d),p=f.length>0?f:Fs(d);l=p.length>0&&p[p.length-1]===a}}if(l){let d=t?.studio||u.studio||"";return!!d&&Object.keys(gg(d)).length>0?{label:"Submit Intent for Final Review",kind:"submit_intent_review"}:{label:"Complete Intent",kind:"complete_intent"}}return c?{label:`Complete ${c} Stage`,kind:"complete_stage"}:{label:"Approve",kind:"approve"}}function tvt(e,t){let n=$t(t);if(!n){e.status(404).send({error:"Session not found"});return}let r={session_id:n.session_id,session_type:n.session_type,status:n.status};if(n.session_type==="review"){if(r.intent_slug=n.intent_slug,r.gate_type=n.gate_type||"ask",r.target=n.target,r.decision=n.decision,r.feedback=n.feedback,n.annotations&&(r.annotations=n.annotations),n.parsedIntent){let o=n.parsedIntent;r.intent={...o,frontmatter:evt(o.frontmatter)}}if(n.parsedUnits&&(r.units=h5n(n.parsedUnits)),n.parsedCriteria&&(r.criteria=n.parsedCriteria),n.parsedMermaid&&(r.mermaid=n.parsedMermaid),n.intentMockups&&(r.intent_mockups=n.intentMockups),n.unitMockups){let o={};if(n.unitMockups instanceof Map)for(let[a,c]of n.unitMockups)o[a]=c;else Object.assign(o,n.unitMockups);r.unit_mockups=o}n.stageStates&&(r.stage_states=n.stageStates);let i=n.intent_slug?yTt(n.intent_slug):null;if(i&&(r.current_state=i,n.intent_slug&&i.studio))try{let o=Vbe(n.intent_slug),a=typeof o?.mode=="string"?o.mode:"",c=l6({slug:n.intent_slug,studio:i.studio,intentDir:pe(n.intent_slug),intentMode:a});if(c.total>0){i.milestones=c.steps;let u=c.index;try{let l=$f({slug:n.intent_slug,intentDir:pe(n.intent_slug),studio:i.studio}),d=u6(l.action,c.steps);d>=0&&(u=d)}catch{}i.progress_index=u,i.progress_total=c.total}}catch{}{let o=n.intent_slug,a=o?Vbe(o):{},c=i?.studio||a.studio||"";if(o&&c)try{let u=typeof a?.mode=="string"?a.mode:"",l=wn(a,c),d=l.length>0?l:Fs(c),f=pe(o),p={},h={},m={},g={},y={};for(let b of d){try{let _=QTt({slug:o,studio:c,intentDir:f,stage:b,mode:u});_.length>0&&(p[b]=_)}catch{}let E=$i(c,b)?.data?.description;typeof E=="string"&&E.trim()&&(h[b]=E.trim());try{let _=H1(f,"stages",b,"BRIEF.md");if(F1(_)){let T=j1(_,"utf8").trim();T&&(m[b]=T)}}catch{}try{let _=H1(f,"stages",b,"observations.md");if(F1(_)){let T=j1(_,"utf8").trim();T&&(g[b]=T)}}catch{}try{let _=H1(f,"stages",b,"elaboration.md");if(F1(_)){let T=j1(_,"utf8").trim();T&&(y[b]=T)}}catch{}}Object.keys(p).length>0&&(r.stage_milestones=p),Object.keys(h).length>0&&(r.stage_summaries=h),Object.keys(m).length>0&&(r.stage_briefs=m),Object.keys(g).length>0&&(r.stage_observations=g),Object.keys(y).length>0&&(r.stage_elaborations=y);try{let b=H1(f,"reflection.md");if(F1(b)){let S=j1(b,"utf8").trim();S&&(r.reflection=S)}}catch{}}catch{}}let s=n.intent_slug;if(s&&i?.stage&&i.studio)try{let o=g5n({slug:s,stage:i.stage,studio:i.studio,intentDir:pe(s)});o.length>0&&(r.drift=o.map(a=>({path:a.file,stage:a.unit==="(intent)"?"":i.stage,intent:s,action:"modified",age:a.since,kind:a.kind,unit:a.unit,role:a.role})))}catch{}if(n.intent_slug){let o=ETt(n.intent_slug);o&&(r.discovered_review_url=o)}n.knowledgeFiles&&(r.knowledge_files=n.knowledgeFiles),n.stageArtifacts&&(r.stage_artifacts=n.stageArtifacts),n.outputArtifacts&&(r.output_artifacts=n.outputArtifacts),n.otherFiles&&(r.other_files=n.otherFiles),n.intentOtherFiles&&(r.intent_other_files=n.intentOtherFiles),n.unitOutputs&&(r.unit_outputs=n.unitOutputs),n.outputDeclaredBy&&(r.output_declared_by=n.outputDeclaredBy),n.previousReview&&(r.previous_review=n.previousReview),n.ad_hoc&&(r.ad_hoc=!0),n.stage&&(r.stage=n.stage),n.gate_context&&(r.gate_context=n.gate_context),n.next_stage!==void 0&&(r.next_stage=n.next_stage),n.next_phase!==void 0&&(r.next_phase=n.next_phase),r.await_active=n.await_active===!0,r.await_count=n.await_count??0,n.pending_decision&&(r.pending_decision=n.pending_decision),n.last_await_started_at&&(r.last_await_started_at=n.last_await_started_at),n.last_await_ended_at&&(r.last_await_ended_at=n.last_await_ended_at),r.approve_action=y5n(n,i)}if(n.session_type==="question"){r.title=n.title,r.context=n.context,r.questions=n.questions,r.answers=n.answers;let i=n.imagePaths??[];r.image_urls=i.map((s,o)=>`/question-image/${n.session_id}/${o}`)}n.session_type==="design_direction"&&(r.title="Design Direction",r.intent_slug=n.intent_slug,n.context&&(r.context=n.context),r.archetypes=n.archetypes,r.selection=n.selection),n.session_type==="picker"&&(r.intent_slug=n.intent_slug,r.kind=n.kind,r.title=n.title,r.prompt=n.prompt,r.options=n.options,r.selection=n.selection),n.session_type==="view"&&(r.intent_slug=n.intent_slug,r.mode=n.mode,n.studio&&(r.studio=n.studio),n.stage&&(r.stage=n.stage),n.artifact&&(r.artifact=n.artifact),n.boot_port&&(r.boot_port=n.boot_port),n.boot_command&&(r.boot_command=n.boot_command)),e.send(r)}var $Tt,m5n,nvt=v(()=>{"use strict";STt();_Tt();ns();Oa();gye();Gbe();$c();Ge();Kn();$Tt=new Map,m5n=2e3});import{appendFileSync as S5n}from"node:fs";function zb(e){try{S5n(b5n,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function svt(e){let t=Date.now(),n=t-1e3,i=(Vbe.get(e)??[]).filter(s=>s>n);return i.length>=E5n?(Vbe.set(e,i),!1):(i.push(t),Vbe.set(e,i),!0)}function $h(e,t){let n=Yu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Ov(e,t){zb(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),ux(e);let n=Yu.get(e);if(!n){zb(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),zb(`closeSessionConnection(${e}): hint frame queued`)}catch(r){zb(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),zb(`closeSessionConnection(${e}): close frame sent`)}catch{}Yu.delete(e)}function ovt(e,t){let n;try{n=JSON.parse(t)}catch{$h(e,{type:"error",error:"invalid_json"});return}let r=vut.safeParse(n);if(!r.success){$h(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=$t(e);if(s){if(i.type==="heartbeat"){KL(e),$h(e,{type:"heartbeat_ack",...typeof i.t=="number"?{t:i.t}:{}});return}if(s.session_type==="review"&&i.type==="decide"){let o=i.decision==="approved"?"approved":"changes_requested",a=i.feedback??"",c=i.annotations;Ml(e,{pending_decision:{decision:o,feedback:a,annotations:c,submitted_at:new Date().toISOString()}}),s.intent_slug&&Wd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),$h(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;XL(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),$h(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){$h(e,{type:"error",error:"Direction already selected"});return}let o=i.mode==="regenerate"?{mode:"regenerate",keep:i.keep??[],...i.comments?{comments:i.comments}:{}}:{mode:"select",archetype:i.archetype,...i.comments?{comments:i.comments}:{},...i.annotations?{annotations:i.annotations}:{}};QL(e,{status:"answered",selection:o}),$h(e,{type:"ack",ok:!0})}}}var b5n,Yu,Vbe,rvt,E5n,ivt,j1,l6=v(()=>{"use strict";TT();cx();D1();$c();b5n="/tmp/haiku-session-cancel.log";Yu=new Map,Vbe=new WeakMap,rvt=20,E5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return rvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?rvt:Math.max(t,1)})();ivt=128,j1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return ivt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?ivt:Math.max(t,1)})()});import{existsSync as avt,readdirSync as _5n,readFileSync as cvt}from"node:fs";import{join as Kbe}from"node:path";function uvt(e){e.get("/review/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.get("/question/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.get("/direction/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.get("/view/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="view"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.post("/review/:sessionId/decide",async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}let i=Bb(n,t.body,mfe);if(!i.ok)return;let s=i.data.decision==="approved"?"approved":"changes_requested",o=i.data.feedback??"",a=i.data.annotations,c={ok:!0,decision:s,feedback:o};if(r.ad_hoc){n.send(c),Ov(t.params.sessionId,"ad-hoc review closed"),Bi()&&(lbe(t.params.sessionId),cbe()),D0(t.params.sessionId);return}Ml(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Wd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),ux(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:ofe},async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}let i=Bb(n,t.body,hfe);if(!i.ok)return;XL(t.params.sessionId,{status:"answered",answers:i.data.answers,feedback:i.data.feedback??"",annotations:i.data.annotations});let s={ok:!0};n.send(s)}),e.post("/direction/:sessionId/select",{bodyLimit:ofe},async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Direction already selected for this session"});return}let i=Bb(n,t.body,afe);if(!i.ok)return;let s=i.data.mode==="upload"?{mode:"upload",files:[]}:i.data;if(i.data.mode==="select"){let a=$t(t.params.sessionId),c=a?.session_type==="design_direction"?a.intent_slug:"",u=c?Wbe(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{dSe({slug:c,stage:u,archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{},screenshots:l}),d=!0;let{annotations:f,...p}=i.data;s=i.data.annotations?.pins?{...p,annotations:{pins:i.data.annotations.pins}}:p}catch(f){t.log.error({err:f},"persistDesignDirectionSelection failed \u2014 falling back to minimal state write")}if(!d)try{let f=B0(c,u),p=Hb(f);p.design_direction_selected=!0,p.design_direction_selected_at=En(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,p1(f,p)}catch(f){t.log.error({err:f},"minimal design-direction state write failed \u2014 agent may need to re-select")}}}if(i.data.mode==="upload"){let a=$t(t.params.sessionId),c=a?.session_type==="design_direction"?a.intent_slug:"",u=c?Wbe(c):"";if(c&&u)try{let{uploads:l}=fSe({slug:c,stage:u,files:i.data.files,...i.data.comments?{comments:i.data.comments}:{}});s={mode:"upload",files:l,...i.data.comments?{comments:i.data.comments}:{}}}catch(l){t.log.error({err:l},"persistDesignDirectionUploads failed \u2014 designer uploads not durable"),n.status(500).send({error:"upload_persist_failed",detail:l instanceof Error?l.message:String(l)});return}}QL(t.params.sessionId,{status:"answered",selection:s});let o={ok:!0};n.send(o)}),e.get("/picker/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.post("/picker/:sessionId/select",async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Picker already submitted"});return}let i=t.body??{},s=typeof i.id=="string"?i.id:"";if(!s){n.status(400).send({error:"Missing required field: id"});return}if(r.kind==="url_input"){let c=s.trim();if(c.length<4||c.length>2048){n.status(400).send({error:"URL must be 4\u20132048 characters"});return}if(!/^https?:\/\//i.test(c)&&!/^git@/i.test(c)&&!/^ssh:\/\//i.test(c)){n.status(400).send({error:"URL must start with http://, https://, ssh://, or git@ \u2014 paste the full URL"});return}let{updatePickerSession:u}=await Promise.resolve().then(()=>($c(),Pye));u(t.params.sessionId,{status:"answered",selection:{id:c}}),n.send({ok:!0,id:c});return}let o=new Set(r.options.map(c=>c.id));if(!o.has(s)){n.status(400).send({error:`id "${s}" is not in the option set: ${[...o].join(", ")}`});return}let{updatePickerSession:a}=await Promise.resolve().then(()=>($c(),Pye));a(t.params.sessionId,{status:"answered",selection:{id:s}}),n.send({ok:!0,id:s})}),e.get("/api/session/:sessionId",async(t,n)=>{zn(t,n,t.params.sessionId)&&tvt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=KL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=Wbe(i);if(!s){ta({reqId:t.id,action:"advance",status:409,intent:i,detail:"no_active_stage"}),n.status(409).send({error:"no_active_stage",detail:"intent has no active stage"});return}let o=Us(i,s).filter(u=>u.status==="pending"||u.status==="fixing"||u.status==="addressed"),a=!1;if(o.length===0)try{T5n(i,s),a=!0,jg(`haiku: user advance with no pending feedback on ${s} \u2014 stamp user slots`)}catch(u){ta({reqId:t.id,action:"advance",status:500,intent:i,stage:s,detail:`user_slot_stamp_failed: ${u instanceof Error?u.message:String(u)}`}),n.status(500).send({error:"user_slot_stamp_failed",detail:u instanceof Error?u.message:String(u)});return}Ml(t.params.sessionId,{pending_decision:{decision:"advance",feedback:"",annotations:{},submitted_at:new Date().toISOString()}}),r.intent_slug&&Wd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0});let c={ok:!0,stage:s,open_feedback_count:o.length,stamped_user_slots:a};ta({reqId:t.id,action:"advance",status:200,intent:i,stage:s,detail:`open_fbs=${o.length} stamped=${a}`}),n.send(c)})}function Wbe(e){let t=Kbe(pe(e),"intent.md");if(!avt(t))return"";try{let{data:n}=re(cvt(t,"utf8"));return n.active_stage||""}catch{return""}}function T5n(e,t){let n=pe(e),r=Kbe(n,"stages",t,"units");if(!avt(r))return;let i=_5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=Kbe(r,s);try{let{data:a}=re(cvt(o,"utf8")),c=Array.isArray(a.outputs)?a.outputs:[],u=a.reviews&&typeof a.reviews=="object"?{...a.reviews}:{},l=a.approvals&&typeof a.approvals=="object"?{...a.approvals}:{},d=!1,f=!1;u.user||(u.user=Cl(o),d=!0),l.user||(l.user=Bd(n,c),f=!0),d&&Me(o,"reviews",u),f&&Me(o,"approvals",l)}catch{}}}var lvt=v(()=>{"use strict";TT();WZ();cx();D1();Xf();$c();Ge();Xh();ybe();qg();nvt();wv();l6()});var Ybe=w((Qyi,dvt)=>{"use strict";var{EventEmitter:v5n}=K("node:events"),{inherits:R5n}=K("node:util");function Pv(e){if(typeof e=="string"&&(e=Buffer.from(e)),!Buffer.isBuffer(e))throw new TypeError("The needle has to be a String or a Buffer.");let t=e.length,n=t-1;if(t===0)throw new Error("The needle cannot be an empty String/Buffer.");if(t>256)throw new Error("The needle cannot have a length bigger than 256.");this.maxMatches=1/0,this.matches=0,this._occ=new Uint8Array(256).fill(t),this._lookbehind_size=0,this._needle=e,this._bufpos=0,this._lookbehind=Buffer.alloc(n);for(var r=0;r=0)this.emit("info",!1,this._lookbehind,0,this._lookbehind_size),this._lookbehind_size=0;else{let c=this._lookbehind_size+o;return c>0&&this.emit("info",!1,this._lookbehind,0,c),this._lookbehind_size-=c,this._lookbehind.copy(this._lookbehind,0,c,this._lookbehind_size),e.copy(this._lookbehind,this._lookbehind_size),this._lookbehind_size+=t,this._bufpos=t,t}}if(o=e.indexOf(n,o+this._bufpos),o!==-1)return++this.matches,o===0?this.emit("info",!0):this.emit("info",!0,e,this._bufpos,o),this._bufpos=o+r;for(o=t-i,o<0&&(o=0);o!==t&&(e[o]!==n[0]||Buffer.compare(e.subarray(o+1,t),n.subarray(1,t-o))!==0);)++o;return o!==t&&(e.copy(this._lookbehind,0,o,t),this._lookbehind_size=t-o),o!==0&&this.emit("info",!1,e,this._bufpos,o),this._bufpos=t,t};Pv.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};Pv.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var A5n=K("node:util").inherits,fvt=K("node:stream").Readable;function Zbe(e){fvt.call(this,e)}A5n(Zbe,fvt);Zbe.prototype._read=function(e){};pvt.exports=Zbe});var d6=w((eSi,mvt)=>{"use strict";mvt.exports=function(t,n,r){if(!t||t[n]===void 0||t[n]===null)return r;if(typeof t[n]!="number"||isNaN(t[n]))throw new TypeError("Limit "+n+" is not a valid number");return t[n]}});var bvt=w((tSi,Svt)=>{"use strict";var yvt=K("node:events").EventEmitter,w5n=K("node:util").inherits,gvt=d6(),k5n=Ybe(),I5n=Buffer.from(`\r +`)}function svt(e){let t=Date.now(),n=t-1e3,i=(Wbe.get(e)??[]).filter(s=>s>n);return i.length>=E5n?(Wbe.set(e,i),!1):(i.push(t),Wbe.set(e,i),!0)}function $h(e,t){let n=Yu.get(e);if(!(!n||n.readyState!==n.OPEN))try{n.send(JSON.stringify(t))}catch{}}function Ov(e,t){zb(`closeSessionConnection(${e}) invoked [build:fastify] reason=${t??"null"}`),lx(e);let n=Yu.get(e);if(!n){zb(`closeSessionConnection(${e}): NO socket registered \u2014 SPA has no active WS`);return}try{n.send(JSON.stringify({type:"session-ended",reason:t??null})),zb(`closeSessionConnection(${e}): hint frame queued`)}catch(r){zb(`closeSessionConnection(${e}): hint write threw ${r instanceof Error?r.message:String(r)}`)}try{n.close(4001,t??"session ended"),zb(`closeSessionConnection(${e}): close frame sent`)}catch{}Yu.delete(e)}function ovt(e,t){let n;try{n=JSON.parse(t)}catch{$h(e,{type:"error",error:"invalid_json"});return}let r=Rut.safeParse(n);if(!r.success){$h(e,{type:"error",error:"invalid_ws_frame"});return}let i=r.data,s=$t(e);if(s){if(i.type==="heartbeat"){ZL(e),$h(e,{type:"heartbeat_ack",...typeof i.t=="number"?{t:i.t}:{}});return}if(s.session_type==="review"&&i.type==="decide"){let o=i.decision==="approved"?"approved":"changes_requested",a=i.feedback??"",c=i.annotations;Ml(e,{pending_decision:{decision:o,feedback:a,annotations:c,submitted_at:new Date().toISOString()}}),s.intent_slug&&Wd(s.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!0}),$h(e,{type:"ack",ok:!0,decision:o,feedback:a})}else if(s.session_type==="question"&&i.type==="answer"){let o=i.annotations;$L(e,{status:"answered",answers:i.answers,feedback:i.feedback??"",annotations:o}),$h(e,{type:"ack",ok:!0})}else if(s.session_type==="design_direction"&&i.type==="select"){if(s.status==="answered"){$h(e,{type:"error",error:"Direction already selected"});return}let o=i.mode==="regenerate"?{mode:"regenerate",keep:i.keep??[],...i.comments?{comments:i.comments}:{}}:{mode:"select",archetype:i.archetype,...i.comments?{comments:i.comments}:{},...i.annotations?{annotations:i.annotations}:{}};e1(e,{status:"answered",selection:o}),$h(e,{type:"ack",ok:!0})}}}var b5n,Yu,Wbe,rvt,E5n,ivt,q1,d6=v(()=>{"use strict";TT();ux();U1();$c();b5n="/tmp/haiku-session-cancel.log";Yu=new Map,Wbe=new WeakMap,rvt=20,E5n=(()=>{let e=process.env.HAIKU_WS_RATE_LIMIT;if(e===void 0)return rvt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?rvt:Math.max(t,1)})();ivt=128,q1=(()=>{let e=process.env.HAIKU_MAX_WS_SESSIONS;if(e===void 0)return ivt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?ivt:Math.max(t,1)})()});import{existsSync as avt,readdirSync as _5n,readFileSync as cvt}from"node:fs";import{join as Ybe}from"node:path";function uvt(e){e.get("/review/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.get("/question/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.get("/direction/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.get("/view/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="view"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.post("/review/:sessionId/decide",async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){n.status(404).send("Session not found");return}let i=Bb(n,t.body,gfe);if(!i.ok)return;let s=i.data.decision==="approved"?"approved":"changes_requested",o=i.data.feedback??"",a=i.data.annotations,c={ok:!0,decision:s,feedback:o};if(r.ad_hoc){n.send(c),Ov(t.params.sessionId,"ad-hoc review closed"),Bi()&&(dbe(t.params.sessionId),ube()),L0(t.params.sessionId);return}Ml(t.params.sessionId,{pending_decision:{decision:s,feedback:o,annotations:a,submitted_at:new Date().toISOString()}}),r.intent_slug&&Wd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0}),n.send(c),lx(t.params.sessionId)}),e.post("/question/:sessionId/answer",{bodyLimit:afe},async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="question"){n.status(404).send("Session not found");return}let i=Bb(n,t.body,mfe);if(!i.ok)return;$L(t.params.sessionId,{status:"answered",answers:i.data.answers,feedback:i.data.feedback??"",annotations:i.data.annotations});let s={ok:!0};n.send(s)}),e.post("/direction/:sessionId/select",{bodyLimit:afe},async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="design_direction"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Direction already selected for this session"});return}let i=Bb(n,t.body,cfe);if(!i.ok)return;let s=i.data.mode==="upload"?{mode:"upload",files:[]}:i.data;if(i.data.mode==="select"){let a=$t(t.params.sessionId),c=a?.session_type==="design_direction"?a.intent_slug:"",u=c?Kbe(c):"";if(c&&u){let l=i.data.annotations?.screenshots??[],d=!1;if(l.length>0)try{fSe({slug:c,stage:u,archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{},screenshots:l}),d=!0;let{annotations:f,...p}=i.data;s=i.data.annotations?.pins?{...p,annotations:{pins:i.data.annotations.pins}}:p}catch(f){t.log.error({err:f},"persistDesignDirectionSelection failed \u2014 falling back to minimal state write")}if(!d)try{let f=z0(c,u),p=Hb(f);p.design_direction_selected=!0,p.design_direction_selected_at=En(),p.design_direction={archetype:i.data.archetype,...i.data.comments?{comments:i.data.comments}:{}},delete p.design_direction_surfaced,m1(f,p)}catch(f){t.log.error({err:f},"minimal design-direction state write failed \u2014 agent may need to re-select")}}}if(i.data.mode==="upload"){let a=$t(t.params.sessionId),c=a?.session_type==="design_direction"?a.intent_slug:"",u=c?Kbe(c):"";if(c&&u)try{let{uploads:l}=pSe({slug:c,stage:u,files:i.data.files,...i.data.comments?{comments:i.data.comments}:{}});s={mode:"upload",files:l,...i.data.comments?{comments:i.data.comments}:{}}}catch(l){t.log.error({err:l},"persistDesignDirectionUploads failed \u2014 designer uploads not durable"),n.status(500).send({error:"upload_persist_failed",detail:l instanceof Error?l.message:String(l)});return}}e1(t.params.sessionId,{status:"answered",selection:s});let o={ok:!0};n.send(o)}),e.get("/picker/:sessionId",async(t,n)=>{let r=$t(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send("Session not found");return}n.type("text/html; charset=utf-8").send(Vd)}),e.post("/picker/:sessionId/select",async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="picker"){n.status(404).send({error:"Session not found or expired"});return}if(r.status==="answered"){n.status(409).send({error:"Picker already submitted"});return}let i=t.body??{},s=typeof i.id=="string"?i.id:"";if(!s){n.status(400).send({error:"Missing required field: id"});return}if(r.kind==="url_input"){let c=s.trim();if(c.length<4||c.length>2048){n.status(400).send({error:"URL must be 4\u20132048 characters"});return}if(!/^https?:\/\//i.test(c)&&!/^git@/i.test(c)&&!/^ssh:\/\//i.test(c)){n.status(400).send({error:"URL must start with http://, https://, ssh://, or git@ \u2014 paste the full URL"});return}let{updatePickerSession:u}=await Promise.resolve().then(()=>($c(),Nye));u(t.params.sessionId,{status:"answered",selection:{id:c}}),n.send({ok:!0,id:c});return}let o=new Set(r.options.map(c=>c.id));if(!o.has(s)){n.status(400).send({error:`id "${s}" is not in the option set: ${[...o].join(", ")}`});return}let{updatePickerSession:a}=await Promise.resolve().then(()=>($c(),Nye));a(t.params.sessionId,{status:"answered",selection:{id:s}}),n.send({ok:!0,id:s})}),e.get("/api/session/:sessionId",async(t,n)=>{zn(t,n,t.params.sessionId)&&tvt(n,t.params.sessionId)}),e.head("/api/session/:sessionId/heartbeat",async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=ZL(t.params.sessionId);n.status(r?200:404).send()}),e.post("/api/advance/:sessionId",async(t,n)=>{if(!zn(t,n,t.params.sessionId))return;let r=$t(t.params.sessionId);if(!r||r.session_type!=="review"){ta({reqId:t.id,action:"advance",status:404,detail:`session=${t.params.sessionId} not_found_or_wrong_type`}),n.status(404).send("Session not found");return}if(!r.intent_slug){ta({reqId:t.id,action:"advance",status:409,detail:`session=${t.params.sessionId} no_intent_context`}),n.status(409).send({error:"Session has no intent context"});return}let i=r.intent_slug,s=Kbe(i);if(!s){ta({reqId:t.id,action:"advance",status:409,intent:i,detail:"no_active_stage"}),n.status(409).send({error:"no_active_stage",detail:"intent has no active stage"});return}let o=Us(i,s).filter(u=>u.status==="pending"||u.status==="fixing"||u.status==="addressed"),a=!1;if(o.length===0)try{T5n(i,s),a=!0,jg(`haiku: user advance with no pending feedback on ${s} \u2014 stamp user slots`)}catch(u){ta({reqId:t.id,action:"advance",status:500,intent:i,stage:s,detail:`user_slot_stamp_failed: ${u instanceof Error?u.message:String(u)}`}),n.status(500).send({error:"user_slot_stamp_failed",detail:u instanceof Error?u.message:String(u)});return}Ml(t.params.sessionId,{pending_decision:{decision:"advance",feedback:"",annotations:{},submitted_at:new Date().toISOString()}}),r.intent_slug&&Wd(r.intent_slug,{type:"pending_decision_changed",session_id:t.params.sessionId,queued:!0});let c={ok:!0,stage:s,open_feedback_count:o.length,stamped_user_slots:a};ta({reqId:t.id,action:"advance",status:200,intent:i,stage:s,detail:`open_fbs=${o.length} stamped=${a}`}),n.send(c)})}function Kbe(e){let t=Ybe(pe(e),"intent.md");if(!avt(t))return"";try{let{data:n}=re(cvt(t,"utf8"));return n.active_stage||""}catch{return""}}function T5n(e,t){let n=pe(e),r=Ybe(n,"stages",t,"units");if(!avt(r))return;let i=_5n(r).filter(s=>s.endsWith(".md"));for(let s of i){let o=Ybe(r,s);try{let{data:a}=re(cvt(o,"utf8")),c=Array.isArray(a.outputs)?a.outputs:[],u=a.reviews&&typeof a.reviews=="object"?{...a.reviews}:{},l=a.approvals&&typeof a.approvals=="object"?{...a.approvals}:{},d=!1,f=!1;u.user||(u.user=Cl(o),d=!0),l.user||(l.user=Bd(n,c),f=!0),d&&Me(o,"reviews",u),f&&Me(o,"approvals",l)}catch{}}}var lvt=v(()=>{"use strict";TT();KZ();ux();U1();Xf();$c();Ge();Xh();Sbe();qg();nvt();wv();d6()});var Zbe=w((Qyi,dvt)=>{"use strict";var{EventEmitter:v5n}=K("node:events"),{inherits:R5n}=K("node:util");function Pv(e){if(typeof e=="string"&&(e=Buffer.from(e)),!Buffer.isBuffer(e))throw new TypeError("The needle has to be a String or a Buffer.");let t=e.length,n=t-1;if(t===0)throw new Error("The needle cannot be an empty String/Buffer.");if(t>256)throw new Error("The needle cannot have a length bigger than 256.");this.maxMatches=1/0,this.matches=0,this._occ=new Uint8Array(256).fill(t),this._lookbehind_size=0,this._needle=e,this._bufpos=0,this._lookbehind=Buffer.alloc(n);for(var r=0;r=0)this.emit("info",!1,this._lookbehind,0,this._lookbehind_size),this._lookbehind_size=0;else{let c=this._lookbehind_size+o;return c>0&&this.emit("info",!1,this._lookbehind,0,c),this._lookbehind_size-=c,this._lookbehind.copy(this._lookbehind,0,c,this._lookbehind_size),e.copy(this._lookbehind,this._lookbehind_size),this._lookbehind_size+=t,this._bufpos=t,t}}if(o=e.indexOf(n,o+this._bufpos),o!==-1)return++this.matches,o===0?this.emit("info",!0):this.emit("info",!0,e,this._bufpos,o),this._bufpos=o+r;for(o=t-i,o<0&&(o=0);o!==t&&(e[o]!==n[0]||Buffer.compare(e.subarray(o+1,t),n.subarray(1,t-o))!==0);)++o;return o!==t&&(e.copy(this._lookbehind,0,o,t),this._lookbehind_size=t-o),o!==0&&this.emit("info",!1,e,this._bufpos,o),this._bufpos=t,t};Pv.prototype._sbmh_lookup_char=function(e,t){return t<0?this._lookbehind[this._lookbehind_size+t]:e[t]};Pv.prototype._sbmh_memcmp=function(e,t,n){for(var r=0;r{"use strict";var A5n=K("node:util").inherits,fvt=K("node:stream").Readable;function Jbe(e){fvt.call(this,e)}A5n(Jbe,fvt);Jbe.prototype._read=function(e){};pvt.exports=Jbe});var f6=w((eSi,mvt)=>{"use strict";mvt.exports=function(t,n,r){if(!t||t[n]===void 0||t[n]===null)return r;if(typeof t[n]!="number"||isNaN(t[n]))throw new TypeError("Limit "+n+" is not a valid number");return t[n]}});var bvt=w((tSi,Svt)=>{"use strict";var yvt=K("node:events").EventEmitter,w5n=K("node:util").inherits,gvt=f6(),k5n=Zbe(),I5n=Buffer.from(`\r \r -`),x5n=/\r\n/g,O5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function fx(e){yvt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=gvt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=gvt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new k5n(I5n),this.ss.on("info",function(n,r,i,s){r&&!t.maxed&&(t.nread+s-i>=t.maxHeaderSize?(s=t.maxHeaderSize-t.nread+i,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=s-i,t.buffer+=r.toString("binary",i,s)),n&&t._finish()})}w5n(fx,yvt);fx.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};fx.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};fx.prototype._finish=function(){this.buffer&&this._parseHeader(),this.ss.matches=this.ss.maxMatches;let e=this.header;this.header={},this.buffer="",this.finished=!0,this.nread=this.npairs=0,this.maxed=!1,this.emit("header",e)};fx.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(x5n),t=e.length,n,r;for(var i=0;i{"use strict";var Jbe=K("node:stream").Writable,P5n=K("node:util").inherits,N5n=Ybe(),Evt=hvt(),C5n=bvt(),M5n=45,D5n=Buffer.from("-"),L5n=Buffer.from(`\r -`),U5n=function(){};function sp(e){if(!(this instanceof sp))return new sp(e);if(Jbe.call(this,e),!e||!e.headerFirst&&typeof e.boundary!="string")throw new TypeError("Boundary required");typeof e.boundary=="string"?this.setBoundary(e.boundary):this._bparser=void 0,this._headerFirst=e.headerFirst,this._dashes=0,this._parts=0,this._finished=!1,this._realFinish=!1,this._isPreamble=!0,this._justMatched=!1,this._firstWrite=!0,this._inHeader=!0,this._part=void 0,this._cb=void 0,this._ignoreData=!1,this._partOpts={highWaterMark:e.partHwm},this._pause=!1;let t=this;this._hparser=new C5n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}P5n(sp,Jbe);sp.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){let t=this;process.nextTick(function(){if(t.emit("error",new Error("Unexpected end of multipart data")),t._part&&!t._ignoreData){let n=t._isPreamble?"Preamble":"Part";t._part.emit("error",new Error(n+" terminated early due to unexpected end of multipart data")),t._part.push(null),process.nextTick(function(){t._realFinish=!0,t.emit("finish"),t._realFinish=!1});return}t._realFinish=!0,t.emit("finish"),t._realFinish=!1})}}else Jbe.prototype.emit.apply(this,arguments)};sp.prototype._write=function(e,t,n){if(!this._hparser&&!this._bparser)return n();if(this._headerFirst&&this._isPreamble){this._part||(this._part=new Evt(this._partOpts),this.listenerCount("preamble")!==0?this.emit("preamble",this._part):this._ignore());let r=this._hparser.push(e);if(!this._inHeader&&r!==void 0&&r{"use strict";var Tvt=new TextDecoder("utf-8"),vvt=new Map([["utf-8",Tvt],["utf8",Tvt]]);function F5n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return H1.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return H1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return H1.utf16le;case"base64":return H1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return H1.other.bind(e)}}var H1={utf8:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.utf8Slice(0,e.length)),latin1:(e,t)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.ucs2Slice(0,e.length)),base64:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.base64Slice(0,e.length)),other:(e,t)=>{if(e.length===0)return"";if(typeof e=="string"&&(e=Buffer.from(e,t)),vvt.has(Qbe.toString()))try{return vvt.get(Qbe).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function j5n(e,t,n){return e&&F5n(n)(e,t)}Rvt.exports=j5n});var eEe=w((rSi,xvt)=>{"use strict";var p6=f6(),Avt=/%[a-fA-F0-9][a-fA-F0-9]/g,H5n={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` +`),x5n=/\r\n/g,O5n=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function px(e){yvt.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=gvt(e,"maxHeaderPairs",2e3),this.maxHeaderSize=gvt(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new k5n(I5n),this.ss.on("info",function(n,r,i,s){r&&!t.maxed&&(t.nread+s-i>=t.maxHeaderSize?(s=t.maxHeaderSize-t.nread+i,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=s-i,t.buffer+=r.toString("binary",i,s)),n&&t._finish()})}w5n(px,yvt);px.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};px.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};px.prototype._finish=function(){this.buffer&&this._parseHeader(),this.ss.matches=this.ss.maxMatches;let e=this.header;this.header={},this.buffer="",this.finished=!0,this.nread=this.npairs=0,this.maxed=!1,this.emit("header",e)};px.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(x5n),t=e.length,n,r;for(var i=0;i{"use strict";var Xbe=K("node:stream").Writable,P5n=K("node:util").inherits,N5n=Zbe(),Evt=hvt(),C5n=bvt(),M5n=45,D5n=Buffer.from("-"),L5n=Buffer.from(`\r +`),U5n=function(){};function sp(e){if(!(this instanceof sp))return new sp(e);if(Xbe.call(this,e),!e||!e.headerFirst&&typeof e.boundary!="string")throw new TypeError("Boundary required");typeof e.boundary=="string"?this.setBoundary(e.boundary):this._bparser=void 0,this._headerFirst=e.headerFirst,this._dashes=0,this._parts=0,this._finished=!1,this._realFinish=!1,this._isPreamble=!0,this._justMatched=!1,this._firstWrite=!0,this._inHeader=!0,this._part=void 0,this._cb=void 0,this._ignoreData=!1,this._partOpts={highWaterMark:e.partHwm},this._pause=!1;let t=this;this._hparser=new C5n(e),this._hparser.on("header",function(n){t._inHeader=!1,t._part.emit("header",n)})}P5n(sp,Xbe);sp.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){let t=this;process.nextTick(function(){if(t.emit("error",new Error("Unexpected end of multipart data")),t._part&&!t._ignoreData){let n=t._isPreamble?"Preamble":"Part";t._part.emit("error",new Error(n+" terminated early due to unexpected end of multipart data")),t._part.push(null),process.nextTick(function(){t._realFinish=!0,t.emit("finish"),t._realFinish=!1});return}t._realFinish=!0,t.emit("finish"),t._realFinish=!1})}}else Xbe.prototype.emit.apply(this,arguments)};sp.prototype._write=function(e,t,n){if(!this._hparser&&!this._bparser)return n();if(this._headerFirst&&this._isPreamble){this._part||(this._part=new Evt(this._partOpts),this.listenerCount("preamble")!==0?this.emit("preamble",this._part):this._ignore());let r=this._hparser.push(e);if(!this._inHeader&&r!==void 0&&r{"use strict";var Tvt=new TextDecoder("utf-8"),vvt=new Map([["utf-8",Tvt],["utf8",Tvt]]);function F5n(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return B1.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return B1.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return B1.utf16le;case"base64":return B1.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return B1.other.bind(e)}}var B1={utf8:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.utf8Slice(0,e.length)),latin1:(e,t)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.ucs2Slice(0,e.length)),base64:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.base64Slice(0,e.length)),other:(e,t)=>{if(e.length===0)return"";if(typeof e=="string"&&(e=Buffer.from(e,t)),vvt.has($be.toString()))try{return vvt.get($be).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function j5n(e,t,n){return e&&F5n(n)(e,t)}Rvt.exports=j5n});var tEe=w((rSi,xvt)=>{"use strict";var h6=p6(),Avt=/%[a-fA-F0-9][a-fA-F0-9]/g,H5n={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` `,"%0A":` -`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function wvt(e){return H5n[e]}var h6=0,kvt=1,$be=2,Ivt=3;function q5n(e){let t=[],n=h6,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";Ovt.exports=function(t){if(typeof t!="string")return"";for(var n=t.length-1;n>=0;--n)switch(t.charCodeAt(n)){case 47:case 92:return t=t.slice(n+1),t===".."||t==="."?"":t}return t===".."||t==="."?"":t}});var Dvt=w((sSi,Mvt)=>{"use strict";var{Readable:Cvt}=K("node:stream"),{inherits:B5n}=K("node:util"),z5n=Xbe(),Nvt=eEe(),G5n=f6(),V5n=Pvt(),Nv=d6(),W5n=/^boundary$/i,K5n=/^form-data$/i,Y5n=/^charset$/i,Z5n=/^filename$/i,J5n=/^name$/i;m6.detect=/^multipart\/form-data/i;function m6(e,t){let n,r,i=this,s,o=t.limits,a=t.isPartAFile||((P,N,C)=>N==="application/octet-stream"||C!==void 0),c=t.parsedConType||[],u=t.defCharset||"utf8",l=t.preservePath,d={highWaterMark:t.fileHwm};for(n=0,r=c.length;ny)return i.parser.removeListener("part",P),i.parser.on("part",px),e.hitPartsLimit=!0,e.emit("partsLimit"),px(N);if(A){let C=A;C.emit("end"),C.removeAllListeners("end")}N.on("header",function(C){let L,G,W,$,q,Q,B=0;if(C["content-type"]&&(W=Nvt(C["content-type"][0]),W[0])){for(L=W[0].toLowerCase(),n=0,r=W.length;nh){let H=h-B+M.length;H>0&&U.push(M.slice(0,H)),U.truncated=!0,U.bytesRead=h,N.removeAllListeners("data"),U.emit("limit");return}else U.push(M)||(i._pause=!0);U.bytesRead=B},V=function(){R=void 0,U.push(null)}}else{if(_===g)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),px(N);++_,++T;let U="",M=!1;A=N,F=function(H){if((B+=H.length)>p){let j=p-(B-H.length);U+=H.toString("binary",0,j),M=!0,N.removeAllListeners("data")}else U+=H.toString("binary")},V=function(){A=void 0,U.length&&(U=G5n(U,"binary",$)),e.emit("field",G,U,!1,M,q,L),--T,f()}}N._readableState.sync=!1,N.on("data",F),N.on("end",V)}).on("error",function(C){R&&R.emit("error",C)})}).on("error",function(P){e.emit("error",P)}).on("finish",function(){x=!0,f()})}m6.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};m6.prototype.end=function(){let e=this;e.parser.writable?e.parser.end():e._boy._done||process.nextTick(function(){e._boy._done=!0,e._boy.emit("finish")})};function px(e){e.resume()}function tEe(e){Cvt.call(this,e),this.bytesRead=0,this.truncated=!1}B5n(tEe,Cvt);tEe.prototype._read=function(e){};Mvt.exports=m6});var Uvt=w((oSi,Lvt)=>{"use strict";var X5n=/\+/g,Q5n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function nEe(){this.buffer=void 0}nEe.prototype.write=function(e){e=e.replace(X5n," ");let t="",n=0,r=0,i=e.length;for(;nr&&(t+=e.substring(r,n),r=n),this.buffer="",++r);return r{"use strict";var $5n=Uvt(),hx=f6(),rEe=d6(),e8n=/^charset$/i;g6.detect=/^application\/x-www-form-urlencoded/i;function g6(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=rEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=rEe(n,"fieldNameSize",100),this.fieldsLimit=rEe(n,"fields",1/0);let i;for(var s=0,o=r.length;ss&&(this._key+=this.decoder.write(e.toString("binary",s,n))),this._state="val",this._hitLimit=!1,this._checkingBytes=!0,this._val="",this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),s=n+1;else if(r!==void 0){++this._fields;let a,c=this._keyTrunc;if(r>s?a=this._key+=this.decoder.write(e.toString("binary",s,r)):a=this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),a.length&&this.boy.emit("field",hx(a,"binary",this.charset),"",c,!1),s=r+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(i>s&&(this._key+=this.decoder.write(e.toString("binary",s,i))),s=i,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(ss&&(this._val+=this.decoder.write(e.toString("binary",s,r))),this.boy.emit("field",hx(this._key,"binary",this.charset),hx(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this._state="key",this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),s=r+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(i>s&&(this._val+=this.decoder.write(e.toString("binary",s,i))),s=i,(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(s0?this.boy.emit("field",hx(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",hx(this._key,"binary",this.charset),hx(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};Fvt.exports=g6});var Bvt=w((cSi,q1)=>{"use strict";var iEe=K("node:stream").Writable,{inherits:t8n}=K("node:util"),n8n=Xbe(),Hvt=Dvt(),qvt=jvt(),r8n=eEe();function Bg(e){if(!(this instanceof Bg))return new Bg(e);if(typeof e!="object")throw new TypeError("Busboy expected an options-Object.");if(typeof e.headers!="object")throw new TypeError("Busboy expected an options-Object with headers-attribute.");if(typeof e.headers["content-type"]!="string")throw new TypeError("Missing Content-Type-header.");let{headers:t,...n}=e;this.opts={autoDestroy:!1,...n},iEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}t8n(Bg,iEe);Bg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}iEe.prototype.emit.apply(this,arguments)};Bg.prototype.getParserByHeaders=function(e){let t=r8n(e["content-type"]),n={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(Hvt.detect.test(t[0]))return new Hvt(this,n);if(qvt.detect.test(t[0]))return new qvt(this,n);throw new Error("Unsupported Content-Type.")};Bg.prototype._write=function(e,t,n){this._parser.write(e,n)};q1.exports=Bg;q1.exports.default=Bg;q1.exports.Busboy=Bg;q1.exports.Dicer=n8n});var Vvt=w((uSi,Gvt)=>{"use strict";var zg=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],Cv=Math.random;function zvt(){return zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]}Gvt.exports.generateId=(function(){let t=0,n=zvt();return function(){return t===255?(n=zvt())+zg[t=0]:n+zg[++t]}})()});var Kvt=w((lSi,Wvt)=>{"use strict";Wvt.exports=function(t){return new Promise((n,r)=>{t.on("data",()=>{}),t.on("close",()=>{n()}),t.on("end",()=>{n()}),t.on("error",i=>{r(i)})})}});var Jvt=w((dSi,B1)=>{"use strict";var Yvt=Object.getPrototypeOf({});function Zvt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function sEe(e){function t(y){return y!=="constructor"&&y!=="prototype"&&y!=="__proto__"}function n(y){let b=0,S=y.length,E=new Array(S);for(b;b"u")continue;S[A]=p(b[A])}return S}function m(y,b){if(l&&typeof b>"u")return p(y);let S=Array.isArray(b),E=Array.isArray(y);return d(b)?b:u(y)?S&&E?f(y,b):S!==E?p(b):h(y,b):p(b)}function g(){switch(arguments.length){case 0:return{};case 1:return p(arguments[0]);case 2:return m(arguments[0],arguments[1])}let y;for(let b=0,S=arguments.length;b{"use strict";var i8n=Bvt(),s8n=K("node:os"),o8n=zC(),{createWriteStream:a8n}=K("node:fs"),{unlink:c8n}=K("node:fs/promises"),Xvt=K("node:path"),{generateId:u8n}=Vvt(),Gg=yW(),l8n=Kvt(),d8n=Jvt()({all:!0}),{PassThrough:f8n,Readable:p8n}=K("node:stream"),{pipeline:h8n}=K("node:stream/promises"),m8n=Nue(),cEe=Symbol("multipart"),y6=Symbol("multipartHandler"),z1=Symbol("savedRequestFilesResult"),Qvt=Gg("FST_PARTS_LIMIT","reach parts limit",413),$vt=Gg("FST_FILES_LIMIT","reach files limit",413),eRt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),oEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),aEe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),tRt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),nRt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),rRt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),g8n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function y8n(e,t,n){e[cEe]=!0,n()}function S8n(e){try{return new i8n(e)}catch(t){let n=new f8n;return process.nextTick(function(){n.emit("error",t)}),n}}function uEe(e,t,n){t.limits={...t.limits,parts:t.limits?.parts||1e3,fileSize:t.limits?.fileSize||e.initialConfig.bodyLimit};let r=t.attachFieldsToBody;(r===!0||r==="keyValues")&&(typeof t.sharedSchemaId=="string"&&r===!0&&e.addSchema({$id:t.sharedSchemaId,type:"object",properties:{fieldname:{type:"string"},encoding:{type:"string"},filename:{type:"string"},mimetype:{type:"string"}}}),e.addHook("preValidation",async function(p){if(p.isMultipart()){for await(let h of p.parts(p.routeOptions.config.multipartOptions))p.body=h.fields,h.file&&(t.onFile?await t.onFile.call(p,h):await h.toBuffer());if(r==="keyValues"){let h={};if(p.body){let m=Object.keys(p.body);for(let g=0;g{await p.cleanRequestFiles()});function s(){return this[cEe]}function o(p={}){if(!this.isMultipart())throw new tRt;this.log.debug("starting multipart parsing");let h=[],m=null,g=C=>{m?(m(C),m=null):h.push(C)},y=C=>{if(h.length>0){let L=h[0];h=h.slice(1),C(L)}else m=C},b=()=>new Promise((C,L)=>{y(G=>{G instanceof Error?G.message==="Unexpected end of multipart data"?C(null):L(G):C(G)})}),S={},E=null,_=null,T=this.raw,R=d8n({headers:T.headers},t,p);this.log.trace({busboyOptions:R},"Providing options to busboy");let A=S8n(R);T.on("close",N),T.on("error",N),A.on("field",x).on("file",k).on("end",N).on("finish",N).on("close",N).on("error",N),A.on("partsLimit",function(){let C=new Qvt;P(C),process.nextTick(()=>N(C))}),A.on("filesLimit",function(){let C=new $vt;P(C),process.nextTick(()=>N(C))}),A.on("fieldsLimit",function(){let C=new eRt;P(C),process.nextTick(()=>N(C))}),T.pipe(A);function x(C,L,G,W,$,q){if(C in Object.prototype){P(new aEe);return}if(q.startsWith("application/json")){if(W){P(new nRt);return}try{L=m8n.parse(L),q="application/json"}catch{P(new nRt);return}}let Q={type:"field",fieldname:C,mimetype:q,encoding:$,value:L,fieldnameTruncated:G,valueTruncated:W,fields:S};S[C]===void 0?S[C]=Q:Array.isArray(S[C])?S[C].push(Q):S[C]=[S[C],Q],g(Q)}function k(C,L,G,W,$){if(C in Object.prototype){l8n(L).catch(()=>{}),P(new aEe);return}let q=typeof p.throwFileSizeLimit=="boolean"?p.throwFileSizeLimit:i,Q={type:"file",fieldname:C,filename:G,encoding:W,mimetype:$,file:L,fields:S,_buf:null,async toBuffer(){if(this._buf)return this._buf;let B=[],F;for await(let V of this.file)B.push(V),q&&this.file.truncated&&(F=new oEe,F.part=this,P(F),B.length=0);if(F)throw F;return this._buf=Buffer.concat(B),this._buf}};L.on("error",function(B){B.message&&B.message.includes("terminated early")&&P(B)}),q&&L.on("limit",function(){let B=new oEe;B.part=Q,P(B)}),S[C]===void 0?S[C]=Q:Array.isArray(S[C])?S[C].push(Q):S[C]=[S[C],Q],_=L,g(Q)}function P(C){E=C,_=null}function N(C){T.unpipe(A),(C||T.aborted)&&_&&(_.destroy(),_=null),g(C||E||null)}return b}async function a(p){if(this[z1])return this[z1];let h,m={};r===!0||r==="keyValues"?(h=this.body?c.call(this,this.body):[],m=this.body||{}):h=this.parts(p),this.savedRequestFiles=[];let g=p?.tmpdir||s8n.tmpdir();this.tmpUploads=[];let y=0;for await(let b of h){if(m=b.fields,!b.file)continue;let S=Xvt.join(g,u8n()+Xvt.extname(b.filename||"file"+y++)),E=a8n(S);try{this.tmpUploads.push(S),await h8n(b.file,E),this.savedRequestFiles.push({...b,filepath:S})}catch(_){throw E.destroy(),await this.cleanRequestFiles(),this.log.error({err:_},"save request file"),_}}return this[z1]={files:this.savedRequestFiles,values:m},this[z1]}function*c(p){try{let h=Array.isArray(p)?p:Object.values(p);for(let m=0;m(n.type="string",n.format="binary",delete n.isFile,r=>!!r.file),error:{message:"should be a file"}})}G1.exports=o8n(uEe,{fastify:"5.x",name:"@fastify/multipart"});G1.exports.default=uEe;G1.exports.fastifyMultipart=uEe;G1.exports.ajvFilePlugin=b8n});import{mkdirSync as E8n}from"node:fs";import{open as _8n}from"node:fs/promises";import{dirname as T8n,join as v8n}from"node:path";function K1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function oRt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function W1(e){return Buffer.byteLength(e,"utf-8")}function lEe(e,t){if(W1(e)<=t)return e;let n="...[truncated]",r=W1(n),i=Math.max(0,t-r),s=Buffer.from(e,"utf-8"),o=i;for(;o>0&&(s[o]&192)===128;)o--;return`${s.slice(0,o).toString("utf-8")}${n}`}function I8n(e){let t=(s,o)=>s==null?null:lEe(s,o),n={...e,path:lEe(e.path,A8n),claimed_author_id:t(e.claimed_author_id,sRt),human_author_id:t(e.human_author_id,sRt),rationale:t(e.rationale,R8n),dirs_created:(e.dirs_created??[]).slice(0,w8n).map(s=>lEe(s,k8n))},r=JSON.stringify(n),i=W1(r);return i>S6?{ok:!1,reason:"record_too_large",bytes:i,cap:S6}:{ok:!0,record:n,line:r}}function x8n(e){return v8n(e,"write-audit.jsonl")}async function O8n(e,t){let n=V1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});V1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=V1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{V1.get(e)===s&&V1.delete(e)})})}}async function aRt(e,t){try{E8n(T8n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return O8n(e,async()=>{let n=null;try{return n=await _8n(e,"a"),await n.write(`${t} -`),await n.sync(),{ok:!0}}catch(r){return{ok:!1,reason:String(r)}}finally{n!==null&&await n.close().catch(()=>{})}})}async function Y1(e,t){let n=I8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=x8n(e);return aRt(r,n.line)}async function cRt(e,t){return W1(t)>S6?{ok:!1,reason:`record_too_large (bytes=${W1(t)}, cap=${S6})`}:aRt(e,t)}var S6,R8n,sRt,A8n,w8n,k8n,V1,b6=v(()=>{"use strict";S6=16*1024,R8n=4096,sRt=128,A8n=1024,w8n=16,k8n=512;V1=new Map});import{join as P8n}from"node:path";function dEe(e){return P8n(e,"action-log.jsonl")}async function Mv(e,t,n){let r=dEe(e),i=JSON.stringify(n);return cRt(r,i)}var E6=v(()=>{"use strict";b6()});import{createHash as N8n}from"node:crypto";import{createWriteStream as C8n,existsSync as pEe,readFileSync as M8n,unlinkSync as yRt}from"node:fs";import{join as Z1,resolve as uRt}from"node:path";function D8n(e){return!(!e||e==="application/octet-stream")}function dRt(e){return typeof e!="string"?!1:mEe.test(e)}function L8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function U8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function fRt(e){return hEe.has(L8n(e))}function fEe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=lRt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?lRt:n}return t>_6?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(_6)}),_6):Math.min(t,_6)}function pRt(e,t){try{let n=Z1(pe(e),"stages",t,"state.json");if(!pEe(n))return!1;let r=M8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function hRt(e){return g1(pe(e))}function mRt(e){return m1(pe(e))}async function gRt(e,t,n){let r=Z1(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=N8n("sha256"),s=0,o=C8n(r),a=new Promise(c=>{o.on("close",()=>{c()})});return await new Promise((c,u)=>{o.on("error",u),o.on("finish",c),e.file.on("error",u),e.file.on("data",l=>{if(s+=l.length,s>n){e.file.destroy(),o.destroy(),u(Object.assign(new Error("payload_too_large"),{code:"PAYLOAD_TOO_LARGE"}));return}i.update(l)}),e.file.on("end",()=>{o.end()}),e.file.pipe(o)}).catch(async c=>{await a.catch(()=>{});try{yRt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function bRt(e){await e.register(async t=>{await t.register(SRt.default,{limits:{fileSize:fEe()+1,files:1}}),t.post("/api/intents/:intent/uploads/stage-output",async(n,r)=>{if(!zn(n,r,null))return;let{intent:i}=n.params;if(!gn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!nx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(hRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(mRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=fEe(),o,a,c,u,l;try{let W=n.parts();for await(let $ of W)if($.type==="file")l=$;else{let q=$.value;$.fieldname==="stage"?o=q:$.fieldname==="target_path"?a=q:$.fieldname==="mode"?c=q:$.fieldname==="attribute_to_user"&&(u=q)}}catch(W){let $=W.code;if($==="FST_FILES_LIMIT"||$==="LIMIT_FILE_SIZE"||$==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}if(!o||!a||!c||!u||!l){r.status(400).send({error:"bad_param",code:"bad_param",message:"Missing required fields: stage, target_path, mode, attribute_to_user, file"});return}if(!dRt(u)){r.status(400).send({error:"bad_attribute_to_user",code:"bad_attribute_to_user",message:"attribute_to_user must match /^[\\w][\\w\\-.@ ]{0,127}$/ \u2014 alphanumerics, underscore, hyphen, dot, at-sign, space; max 128 chars; cannot start with a separator.",pattern:mEe.source});return}let d=fRt(l.filename),f=fRt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(hEe).join(", ")} are rejected \u2014 they render inline and become a stored-XSS vector. Convert to a non-executable format (PDF, PNG screenshot, plain text) and retry.`,blocked_extensions:Array.from(hEe)});return}let p=U8n(l.mimetype);if(!D8n(p)){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`MIME type '${p||""}' is rejected \u2014 empty MIME or application/octet-stream cannot be accepted (the latter is a multipart default that bypasses MIME inspection). Send the file's real MIME and retry.`,received_mime:p});return}if(!["replace","create","upsert"].includes(c)){r.status(400).send({error:"bad_param",code:"bad_param",message:"mode must be replace, create, or upsert"});return}if(!gn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Qh(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(pRt(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}let h=(()=>{try{return decodeURIComponent(a)}catch{return a}})();if(h.includes("..")||h.includes("\0")||h.includes("\\")){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let m=h.replace(/^\/+/,""),g=rv(`stages/${o}/${m}`),y=`stages/${o}/artifacts/`;if(!g.startsWith(y)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let b=pe(i),S=Z1(b,g),E=S.substring(0,S.lastIndexOf("/")),_=uRt(S),T=uRt(Z1(b,y));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let R=pEe(S);if(c==="replace"&&!R){r.status(400).send({error:"mode_violation",code:"mode_violation",message:"mode=replace but target does not exist"});return}if(c==="create"&&R){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let A=null,x,k;try{let W=await gRt(l,b,s);A=W.tmpPath,x=W.sha256,k=W.bytes}catch(W){if(W.code==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}let P=pv(b,E,A,S);if(!P.ok){j0(A),A=null,P.code==="parent_chain_contains_symlink"||P.code==="parent_chain_escape"?r.status(400).send({error:"bad_target_path",code:"bad_target_path",reason:P.code}):r.status(500).send({error:"write_failed",code:"write_failed"});return}A=null;let N=Lb(b,o),C=K1(N,1),L=new Date().toISOString();await Mv(b,N,{entry_type:"human_write",path:g,sha:x,author_class:"human-via-mcp",timestamp:L,claimed_author_id:u,human_author_id:u,entry_id:C,tick_counter:N,tick_scope:"stage"}),await Y1(b,{timestamp:L,entry_id:C,path:g,sha:x,author_class:"human-via-mcp",claimed_author_id:u,human_author_id:u,rationale:null,user_instruction_excerpt:null,tick_counter:N,session_id:null,overwrite:R,dirs_created:[],audit_log_appended:!0,tick_scope:"stage"}),r.send({ok:!0,path:g,sha256:x,bytes:k,baseline_updated:!1,tick_will_observe:!0})}),t.post("/api/intents/:intent/uploads/knowledge",async(n,r)=>{if(!zn(n,r,null))return;let{intent:i}=n.params;if(!gn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!nx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(hRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(mRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=fEe(),o,a=null,c,u;try{let k=n.parts();for await(let P of k)if(P.type==="file")u=P;else{let N=P.value;P.fieldname==="target_filename"?o=N:P.fieldname==="stage"?a=N||null:P.fieldname==="attribute_to_user"&&(c=N)}}catch(k){let P=k.code;if(P==="FST_FILES_LIMIT"||P==="LIMIT_FILE_SIZE"||P==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}if(!o||!c||!u){r.status(400).send({error:"bad_param",code:"bad_param",message:"Missing required fields: target_filename, attribute_to_user, file"});return}if(!dRt(c)){r.status(400).send({error:"bad_attribute_to_user",code:"bad_attribute_to_user",message:"attribute_to_user must match /^[\\w][\\w\\-.@ ]{0,127}$/ \u2014 alphanumerics, underscore, hyphen, dot, at-sign, space; max 128 chars; cannot start with a separator.",pattern:mEe.source});return}let l=(()=>{try{return decodeURIComponent(o)}catch{return o}})();if(l.includes("/")||l.includes("\\")||l.includes("..")||l.includes("\0")){r.status(400).send({error:"bad_target_path",code:"bad_target_path",message:"target_filename must be a basename with no path segments"});return}if(a!==null){if(!gn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Qh(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(pRt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=pe(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=Z1(d,f),h=p.substring(0,p.lastIndexOf("/"));if(pEe(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let g=null,y,b;try{let k=await gRt(u,d,s);g=k.tmpPath,y=k.sha256,b=k.bytes}catch(k){if(k.code==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}let S=pv(d,h,g,p);if(!S.ok){j0(g),g=null,S.code==="parent_chain_contains_symlink"||S.code==="parent_chain_escape"?r.status(400).send({error:"bad_target_path",code:"bad_target_path",reason:S.code}):r.status(500).send({error:"write_failed",code:"write_failed"});return}g=null;let E=a===null,_;try{_=E?y1(d):Lb(d,a)}catch(k){if(k instanceof Gd){try{yRt(p)}catch{}r.status(500).send({error:"tick_persist_failed",code:"tick_persist_failed",message:k.message});return}throw k}let T=E?"intent":"stage",R=K1(_,1),A=new Date().toISOString();await Mv(d,_,{entry_type:"human_write",path:f,sha:y,author_class:"human-via-mcp",timestamp:A,claimed_author_id:c,human_author_id:c,entry_id:R,tick_counter:_,tick_scope:T}),await Y1(d,{timestamp:A,entry_id:R,path:f,sha:y,author_class:"human-via-mcp",claimed_author_id:c,human_author_id:c,rationale:null,user_instruction_excerpt:null,tick_counter:_,session_id:null,overwrite:!1,dirs_created:[],audit_log_appended:!0,tick_scope:T}),r.send({ok:!0,path:f,sha256:y,bytes:b,baseline_updated:!1,tick_will_observe:!0})})})}var SRt,lRt,_6,hEe,mEe,ERt=v(()=>{"use strict";SRt=Re(iRt(),1);E6();w0();b6();KY();Ge();vo();qg();wv();lRt=50*1024*1024,_6=50*1024*1024,hEe=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);mEe=/^[\w][\w\-.@ ]{0,127}$/});function _Rt(e){e.register(async t=>{t.get("/ws/session/:sessionId",{websocket:!0,preValidation:async(n,r)=>{if(!Bi())return;let{sessionId:i}=n.params,s=n.query?.t;if(!s){r.status(401).send({error:"unauthorized",reason:"missing_token"});return}let o=Jh(s,i);if(!o.ok){r.status(401).send({error:"unauthorized",reason:o.reason});return}}},(n,r)=>{let{sessionId:i}=r.params;if(Bi()){let c=r.query?.t;if(!c){n.close(4401,"unauthorized");return}if(!Jh(c,i).ok){n.close(4401,"unauthorized");return}}let s=$t(i);if(!s){n.close(4404,"session not found");return}if(!Yu.has(i)&&Yu.size>=j1){zb(`upgrade REJECT session=${i} reason=ws_session_cap size=${Yu.size} cap=${j1}`),n.close(1013,"session cap reached");return}Yu.set(i,n),zb(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=lTt(a.intent_slug,c=>{$h(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!svt(n)){n.close(1008,"rate limit");return}let u=Array.isArray(c)?Buffer.concat(c).toString("utf8"):typeof c=="string"?c:Buffer.from(c).toString("utf8");ovt(i,u)}),n.on("close",()=>{Yu.get(i)===n&&Yu.delete(i),o&&(o(),o=null)}),n.on("error",()=>{Yu.get(i)===n&&Yu.delete(i),o&&(o(),o=null)})})})}var TRt=v(()=>{"use strict";cx();$c();Xh();l6()});import{randomUUID as F8n}from"node:crypto";function j8n(){return gEe}function H8n(e){if(!e)return null;let t=bf.allowedOrigins.filter(r=>r&&r!=="*");return(t.length>0?t:[bf.siteUrl]).includes(e)?e:null}async function q8n(){let e=(0,xRt.default)({logger:!1,bodyLimit:bD,disableRequestLogging:!0,genReqId:t=>{let n=t.headers["x-request-id"];if(typeof n=="string"&&n.length>0&&n.length<=128)return n;if(Array.isArray(n)&&n[0]){let r=n[0];if(r.length>0&&r.length<=128)return r}return F8n()},requestIdHeader:"x-request-id"});if(e.addHook("onRequest",async(t,n)=>{n.getHeader("x-request-id")||n.header("x-request-id",t.id),t.startTime=process.hrtime.bigint()}),e.addHook("onResponse",async(t,n)=>{let r=n.statusCode,i=t.startTime??void 0,s=i!==void 0?Number(process.hrtime.bigint()-i)/1e6:void 0,o=r>=500?"error":r>=400?"warn":"info";try{console.error(JSON.stringify({level:o,event:"http_response",reqId:t.id,method:t.method,url:t.url,statusCode:r,...s!==void 0?{responseTimeMs:Math.round(s*100)/100}:{}}))}catch{}}),Bi()&&await e.register(wRt.default,{origin:(t,n)=>{n(null,H8n(t)??!1)},credentials:!1,methods:["GET","HEAD","POST","PUT","DELETE","OPTIONS"],allowedHeaders:["Authorization","Content-Type","bypass-tunnel-reminder","X-Haiku-CSRF"],exposedHeaders:["X-E2E-Encrypted","X-Original-Content-Type"],strictPreflight:!1,preflightContinue:!1}),Bi()){let t=(()=>{let r=process.env.HAIKU_HTTP_RATE_MAX,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1?i:60})(),n=(()=>{let r=process.env.HAIKU_HTTP_RATE_WINDOW_MS,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1e3?i:6e4})();await e.register(kRt.default,{max:t,timeWindow:n})}return await e.register(IRt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=gbe((t.url??"/").split("?")[0]);if(!i||!O1(i)||n.statusCode>=400)return r;try{return await Z_t(t,n,r)}catch{return r}}),K_t(e,j8n),O_t(e),uvt(e),cTt(e),rTt(e),await bRt(e),D_t(e),j_t(e),V_t(e),_Rt(e),e}function ARt(e){if(process.env.HAIKU_TRANSPORT_ASSERT==="0"&&process.env.NODE_ENV==="test"){console.error("WARNING: HAIKU_TRANSPORT_ASSERT=0 bypass active (NODE_ENV=test). This is a test-only escape hatch; ignored outside NODE_ENV=test.");return}new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]).has(e)||(console.error(`FATAL: Review HTTP server bound to non-loopback address '${e}'. v1 transport invariant requires loopback-only; terminating.`),process.exit(1))}async function Wb(){if(Vb&&Gb!==null)return Gb;Bi()&&bf.allowedOrigins.filter(s=>s&&s!=="*").length===0&&console.error("WARNING: HAIKU_REMOTE_REVIEW=1 but no allowed origins configured. Every cross-origin request from the SPA will be rejected by CORS. Set `HAIKU_REVIEW_ALLOWED_ORIGINS` (comma-separated) or `HAIKU_REVIEW_SITE_URL` before starting."),Vb=await q8n();let e=process.env.HAIKU_FORCE_BIND_ADDR;e&&e!=="127.0.0.1"&&console.error(`WARNING: HAIKU_FORCE_BIND_ADDR='${e}' overrides the default loopback bind. This is a test/dev-only knob; in production it will trigger the transport-invariant FATAL exit.`);let t=e||"127.0.0.1",n=await Vb.listen({host:t,port:0});Vb.server.maxConnections=RRt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(Gb=Number.parseInt(r[2],10),ARt(r[1].replace(/^\[|\]$/g,""))),Gb===null){let i=Vb.server.address();i&&typeof i=="object"&&(Gb=i.port,ARt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${Gb} (maxConnections=${RRt}, maxWsSessions=${j1})`),gEe=!0,Gb}async function ORt(){if(Vb)try{for(let e of Array.from(Yu.keys()))try{Ov(e,"shutdown")}catch{}await Vb.close()}finally{Vb=null,Gb=null,gEe=!1}}var wRt,kRt,IRt,xRt,vRt,RRt,Vb,Gb,gEe,T6=v(()=>{"use strict";wRt=Re(G8e(),1),kRt=Re(i7e(),1),IRt=Re(DXe(),1),xRt=Re(lut(),1);TT();Ci();L_t();H_t();fbe();W_t();Y_t();J_t();iTt();uTt();lvt();ERt();l6();TRt();Xh();vRt=256,RRt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return vRt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?vRt:Math.max(t,1)})(),Vb=null,Gb=null,gEe=!1});import{execFileSync as B8n}from"node:child_process";import{cpSync as PRt,existsSync as bEe,mkdirSync as yEe}from"node:fs";import{homedir as NRt}from"node:os";import{join as EEe}from"node:path";function V8n(){return EEe(NRt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function W8n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of z8n)bEe(EEe(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function K8n(){if(cd==="dev")return{ok:!1,method:"skipped",reason:"dev_build_no_npm_source"};let e=nn();if(!e)return{ok:!1,method:"skipped",reason:"no_target_path"};let t=V8n();if(bEe(t))try{return yEe(e,{recursive:!0}),PRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=EEe(NRt(),".claude","plugins","npm-cache");try{return yEe(n,{recursive:!0}),B8n("npm",["install",`haiku-method@${cd}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),bEe(t)?(yEe(e,{recursive:!0}),PRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-install"}):{ok:!1,method:"npm-install",reason:"npm_install_no_module"}}catch(r){return{ok:!1,method:"npm-install",reason:"npm_install_failed",error:r instanceof Error?r.message:String(r)}}}function CRt(e){let t=Date.now();if(t-SEe{"use strict";Ci();sh();f_();z8n=["studios","schemas",".claude-plugin/plugin.json"],G8n=5e3,SEe=0});var Rt=v(()=>{"use strict"});var Y8n,Z8n,DRt,LRt=v(()=>{"use strict";gt();ht();Rt();Y8n=new _e({autoEscape:!1,useWith:!0}),Z8n=ie("@canon:feedback/changes_requested"),DRt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return Y8n.renderString(Z8n,{slug:e,message:r,annotations:n})}});var J8n,X8n,URt,FRt=v(()=>{"use strict";gt();ht();Rt();J8n=new _e({autoEscape:!1,useWith:!0}),X8n=ie("@canon:feedback/close_feedback"),URt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return J8n.renderString(X8n,{slug:e,stage:n,fbId:r})}});var Q8n,$8n,jRt,HRt=v(()=>{"use strict";gt();ts();ht();Rt();Q8n=new _e({autoEscape:!1,useWith:!0}),$8n=ie("@canon:feedback/feedback_question"),jRt=e=>{let t=e.action;return Q8n.renderString($8n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:UI(e.dir)==="autopilot"})}});var e7n,t7n,qRt,BRt=v(()=>{"use strict";gt();ht();Rt();e7n=new _e({autoEscape:!1,useWith:!0}),t7n=ie("@canon:feedback/fix_quality_gates"),qRt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return e7n.renderString(t7n,{slug:e,stageHint:r,message:i})}});import{existsSync as v6}from"node:fs";import{join as n7n}from"node:path";var zRt,r7n,i7n,GRt,VRt=v(()=>{"use strict";gt();_f();Ge();Kn();vl();ts();ht();Uh();Rt();zRt=new _e({autoEscape:!1,useWith:!0}),r7n=ie("@canon:feedback/intent_completion_fix"),i7n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),GRt=({slug:e,studio:t,action:n})=>{let r=n.fix_hats||[],i=n.max_bolts||Dg,s=n.items||[],o=n.total_pending||s.length,a=n.escalated_count||0,c=Te(),u=LD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:g,branch:y})=>{let b=n7n(c,p),S=Number.parseInt(f.replace(/^FB-/i,""),10)||0,E=[],_=null,T="";for(let R=r.length-1;R>=0;R--){let A=r[R],x=u[A];x||E.push(`> **Warning:** studio fix-hat \`${A}\` has no mandate file in \`plugin/studios/${t}/fix-hats/${A}.md\`. The subagent will run without a mandate \u2014 this is likely a studio bug.`);let k=R===r.length-1,P=x&&v6(x)?Rl(x,`Fix-hat mandate: ${A}`):"",N=x&&v6(x)?NI(PI(x)):"",C=v6(b)?Rl(b,`Feedback: ${f} \u2014 ${h}`):"",L=v6(b)?CI(b):"",G=zRt.renderString(i7n,{hat:A,fbId:f,fbNum:S,fbTitle:h,fixBolt:m,fixMaxBolts:i,slug:e,fbWorktree:g,fbBranch:y,hatMandateInline:P,hatInterpBlock:N,fbInline:C,priorRejectBlock:L,gitRepo:ve(),isLast:k}),W=x?ju({mandatePath:x,studio:t}):void 0,$=Ti({unit:`fix-${f}`,hat:A,bolt:m,intent:e,agentType:"general-purpose",model:W,promptBody:G,heading:`#### Subagent: \`${A}\`${k?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!k&&_)try{m3({unit:`fix-${f}`,hat:A,bolt:m,intent:e},_)}catch{}_=$,R===0&&(T=$)}return{fbId:f,fbTitle:h,fixBolt:m,warnings:E.join(` -`),firstHatBlock:T}}),d=Mi().subagents.backgroundSpawn?'`background="true"` \u2192 `run_in_background: true` (always present on fix-loop dispatches \u2014 pass it through; the parent waits on results, so foreground would block this thread); ':"";return zRt.renderString(r7n,{slug:e,itemCount:s.length,fixHatsList:r,fixMaxBolts:i,escalatedCount:a,totalPending:o,showTotalsLine:o!==s.length+a,showAnnouncement:s.length>1,announcementBlock:bs("workflow-contracts-announcement"),workflowContractsBlock:bs("workflow-contracts-fix-loop"),findings:l,bgClause:d})}});import{existsSync as R6}from"node:fs";import{join as A6}from"node:path";var WRt,s7n,o7n,KRt,YRt=v(()=>{"use strict";gt();Ci();_f();Ge();Kn();vl();ns();ts();ht();Uh();Rt();WRt=new _e({autoEscape:!1,useWith:!0}),s7n=ie("@canon:feedback/review_fix"),o7n=ie("@canon:feedback/review_fix","subagent.eta.md"),KRt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.fix_hats||[],s=n.max_bolts||Dg,o=n.items||[],a=n.total_pending||o.length,c=n.escalated_count||0,u=Te(),l=Du(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Ff(A6(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:y,feedback_file:b,feedback_title:S,bolt:E,worktree:_,branch:T})=>{let R=A6(u,b),A=Number.parseInt(y.replace(/^FB-/i,""),10)||0,x=[],k=null,P="";for(let N=i.length-1;N>=0;N--){let C=i[N],L=l[C];L||x.push(`> **Warning:** hat \`${C}\` declared in \`fix_hats\` has no mandate file in \`hats/${C}.md\`. The subagent will run without a mandate \u2014 this is likely a studio bug.`);let G=L?A6(p,"studios",f,"stages",r,"hats",`${C}.md`):null,W=N===i.length-1,$=h?Rl(h,`Stage scope: ${r}`):"",q=G&&R6(G)?Rl(G,`Hat mandate: ${C}`):"",Q=G&&R6(G)?NI(PI(G)):"",B=R6(R)?Rl(R,`Feedback: ${y} \u2014 ${S}`):"",F=R6(R)?CI(R):"",V=WRt.renderString(o7n,{hat:C,fbId:y,fbNum:A,fbTitle:S,fixBolt:E,fixMaxBolts:s,fixStage:r,slug:e,fbWorktree:_,fbBranch:T,stageBaseInline:$,hatMandateInline:q,hatInterpBlock:Q,fbInline:B,priorRejectBlock:F,gitRepo:ve(),isLast:W}),U=A6(nn(),"studios",t,"stages",r,"hats",`${C}.md`),M=ju({mandatePath:U,studio:t,stage:r}),H=Ti({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r,agentType:L?.agent_type??"general-purpose",model:M??L?.model,promptBody:V,heading:`#### Subagent: \`${C}\`${W?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!W&&k)try{m3({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r},k)}catch{}k=H,N===0&&(P=H)}return{fbId:y,fbTitle:S,fixBolt:E,warnings:x.join(` -`),firstHatBlock:P}}),g=Mi().subagents.backgroundSpawn?'`background="true"` \u2192 `run_in_background: true` (always present on fix-loop dispatches \u2014 pass it through; the parent waits on results, so foreground would block this thread); ':"";return WRt.renderString(s7n,{slug:e,fixStage:r,itemCount:o.length,fixHatsList:i,fixMaxBolts:s,escalatedCount:c,totalPending:a,showTotalsLine:a!==o.length+c,showAnnouncement:o.length>1,announcementBlock:bs("workflow-contracts-announcement"),workflowContractsBlock:bs("workflow-contracts-fix-loop"),findings:m,bgClause:g})}});import{existsSync as ZRt,readdirSync as JRt,readFileSync as XRt}from"node:fs";import{join as mx}from"node:path";function u7n(e){if(!Go.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?mx(ar(t,n),"feedback"):mx(pe(t),"feedback");try{let p=ZRt(f)?JRt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=XRt(mx(f,p[0]),"utf8");o=(0,_Ee.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:void 0,c=n?$i(r,n):void 0,u=Nd(r),l=db({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var _Ee,a7n,c7n,QRt,$Rt=v(()=>{"use strict";gt();_Ee=Re(Kt(),1);Ci();fb();Ge();Kn();Gpe();ts();ht();Uh();Rt();a7n=new _e({autoEscape:!1,useWith:!0}),c7n=ie("@canon:feedback/start_feedback_hat");QRt=({slug:e,studio:t,action:n})=>{let r=n.dispatches??[];if(r.length===0&&Array.isArray(n.feedback_ids)){let s=n.stage??"",o=n.hat??"",a=n.terminal??!1;r=n.feedback_ids.map(c=>({feedback_id:c,stage:s,hat:o,terminal:a}))}r=r.filter(s=>{let o=s.feedback_id.replace(/^FB-/i,""),a=s.stage?mx(ar(e,s.stage),"feedback"):mx(pe(e),"feedback");if(!ZRt(a))return!0;let c=JRt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=XRt(mx(a,c[0]),"utf8"),l=(0,_Ee.default)(u).data,d=l.closed_at;if(d instanceof Date||typeof d=="string"&&d.length>0||typeof l.status=="string"&&l.status==="closed"||typeof l.closed_by=="string"&&l.closed_by.startsWith("fix-loop:"))return!1}catch{}return!0});let i=r.map(s=>{let o=u7n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=HI({slug:e,studio:t,feedbackId:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal});return{feedback_id:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal,fb_int:Number.parseInt(s.feedback_id.replace(/^FB-/i,""),10)||0,model_tier:o?.model,model_source:o?.source,hat_path:s.stage?pb(t,s.stage,s.hat):null,dispatch_block:a}});return a7n.renderString(c7n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?FI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:bs("workflow-contracts-fix-loop")})}});var l7n,d7n,eAt,tAt=v(()=>{"use strict";gt();ht();Rt();l7n=new _e({autoEscape:!1,useWith:!0}),d7n=ie("@canon:global/complete"),eAt=({action:e})=>l7n.renderString(d7n,{message:e.message??""})});var f7n,p7n,nAt,rAt=v(()=>{"use strict";gt();ht();Rt();f7n=new _e({autoEscape:!1,useWith:!0}),p7n=ie("@canon:global/error"),nAt=({action:e})=>f7n.renderString(p7n,{message:e.message??""})});var h7n,m7n,iAt,sAt=v(()=>{"use strict";gt();ht();Rt();h7n=new _e({autoEscape:!1,useWith:!0}),m7n=ie("@canon:global/loop_halted"),iAt=({action:e})=>{let t=e;return h7n.renderString(m7n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function S7n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var g7n,y7n,oAt,aAt=v(()=>{"use strict";gt();Kn();ht();Rt();g7n=new _e({autoEscape:!1,useWith:!0}),y7n=ie("@canon:intent/reflection/record_reflection");oAt=({slug:e,studio:t})=>{let n=t?Object.entries(ift(t)).map(([r,i])=>({name:r,body:S7n(i)})):[];return g7n.renderString(y7n,{slug:e,dimensions:n})}});var b7n,E7n,cAt,uAt=v(()=>{"use strict";gt();ht();Rt();b7n=new _e({autoEscape:!1,useWith:!0}),E7n=ie("@canon:intent/repair/external_review_requested"),cAt=({action:e})=>b7n.renderString(E7n,{message:e.message??""})});var _7n,T7n,lAt,dAt=v(()=>{"use strict";gt();ht();Rt();_7n=new _e({autoEscape:!1,useWith:!0}),T7n=ie("@canon:intent/repair/revise_unit_specs"),lAt=({action:e})=>_7n.renderString(T7n,{message:e.message??""})});var v7n,R7n,fAt,pAt=v(()=>{"use strict";gt();ht();Rt();v7n=new _e({autoEscape:!1,useWith:!0}),R7n=ie("@canon:intent/repair/safe_intent_repair"),fAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return v7n.renderString(R7n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});function k7n(e,t){return[`You are the \`${t}\` intent-completion reviewer for intent \`${e}\`.`,"","## Mandate (fallback \u2014 no studio-configured mandate file was found)","",`1. Read every stage's \`outputs/\` and \`elaboration.md\` under \`.haiku/intents/${e}/stages/\`.`,`2. Read the intent body at \`.haiku/intents/${e}/intent.md\`.`,"3. Judge the intent-as-a-whole: work that contradicts another stage's output, missing coverage of an acceptance criterion across all stages, any cross-stage inconsistency (terminology, scope, technical choices).",`4. For each finding, file \`haiku_feedback\` with \`intent: "${e}"\` (omit \`stage\`), \`origin: "agent"\`, \`author: "${t}"\`, and a body that quotes the artifact you're flagging. ALSO file one against the studio noting the missing mandate file at \`plugin/studios//intent-review-agents/${t}.md\`.`,'5. When done, return your verdict in one paragraph: which findings you filed (by FB-NN), or "no findings".',"","Do NOT modify any artifact files. Reviewer role, not fixer."].join(` -`)}function I7n(e,t,n){let r=A7n[n],i="",s;if(r){let c=w6.renderString(r,{slug:e}).trim();i=`**Read** \`${Eb({intent:e,kind:"engine-body",name:n,body:c})}\``}else{let c=Mh(t,void 0,n);c&&(i=kr({resolveBody:()=>c,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=ju({mandatePath:gg(t)[n],studio:t}))}let o=i?w6.renderString(w7n,{slug:e,role:n,mandateRef:i,doctrineRef:MT.has(n)?bs("runtime-verification"):"",prInteraction:$D.has(n),existingFeedback:MI(e,""),decisions:DI(e)}):k7n(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:o,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var A7n,w6,hAt,w7n,mAt,gAt=v(()=>{"use strict";gt();Kn();vl();ts();ht();Uh();Rt();A7n={spec:ie("@canon:intent/review/intent_review","engine-bodies/spec.eta.md"),continuity:ie("@canon:intent/review/intent_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:intent/review/intent_review","engine-bodies/cross_stage_consistency.eta.md")},w6=new _e({autoEscape:!1,useWith:!0}),hAt=ie("@canon:intent/review/intent_review"),w7n=ie("@canon:intent/review/intent_review","subagent.eta.md");mAt=({slug:e,studio:t,action:n})=>{let r=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||""}];if(r.length===1&&r[0]?.role==="user")return w6.renderString(hAt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>I7n(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` +`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function wvt(e){return H5n[e]}var m6=0,kvt=1,eEe=2,Ivt=3;function q5n(e){let t=[],n=m6,r="",i=!1,s=!1,o=0,a="",c=e.length;for(var u=0;u{"use strict";Ovt.exports=function(t){if(typeof t!="string")return"";for(var n=t.length-1;n>=0;--n)switch(t.charCodeAt(n)){case 47:case 92:return t=t.slice(n+1),t===".."||t==="."?"":t}return t===".."||t==="."?"":t}});var Dvt=w((sSi,Mvt)=>{"use strict";var{Readable:Cvt}=K("node:stream"),{inherits:B5n}=K("node:util"),z5n=Qbe(),Nvt=tEe(),G5n=p6(),V5n=Pvt(),Nv=f6(),W5n=/^boundary$/i,K5n=/^form-data$/i,Y5n=/^charset$/i,Z5n=/^filename$/i,J5n=/^name$/i;g6.detect=/^multipart\/form-data/i;function g6(e,t){let n,r,i=this,s,o=t.limits,a=t.isPartAFile||((P,N,C)=>N==="application/octet-stream"||C!==void 0),c=t.parsedConType||[],u=t.defCharset||"utf8",l=t.preservePath,d={highWaterMark:t.fileHwm};for(n=0,r=c.length;ny)return i.parser.removeListener("part",P),i.parser.on("part",hx),e.hitPartsLimit=!0,e.emit("partsLimit"),hx(N);if(A){let C=A;C.emit("end"),C.removeAllListeners("end")}N.on("header",function(C){let L,G,W,$,q,Q,B=0;if(C["content-type"]&&(W=Nvt(C["content-type"][0]),W[0])){for(L=W[0].toLowerCase(),n=0,r=W.length;nh){let H=h-B+M.length;H>0&&U.push(M.slice(0,H)),U.truncated=!0,U.bytesRead=h,N.removeAllListeners("data"),U.emit("limit");return}else U.push(M)||(i._pause=!0);U.bytesRead=B},V=function(){R=void 0,U.push(null)}}else{if(_===g)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),hx(N);++_,++T;let U="",M=!1;A=N,F=function(H){if((B+=H.length)>p){let j=p-(B-H.length);U+=H.toString("binary",0,j),M=!0,N.removeAllListeners("data")}else U+=H.toString("binary")},V=function(){A=void 0,U.length&&(U=G5n(U,"binary",$)),e.emit("field",G,U,!1,M,q,L),--T,f()}}N._readableState.sync=!1,N.on("data",F),N.on("end",V)}).on("error",function(C){R&&R.emit("error",C)})}).on("error",function(P){e.emit("error",P)}).on("finish",function(){x=!0,f()})}g6.prototype.write=function(e,t){let n=this.parser.write(e);n&&!this._pause?t():(this._needDrain=!n,this._cb=t)};g6.prototype.end=function(){let e=this;e.parser.writable?e.parser.end():e._boy._done||process.nextTick(function(){e._boy._done=!0,e._boy.emit("finish")})};function hx(e){e.resume()}function nEe(e){Cvt.call(this,e),this.bytesRead=0,this.truncated=!1}B5n(nEe,Cvt);nEe.prototype._read=function(e){};Mvt.exports=g6});var Uvt=w((oSi,Lvt)=>{"use strict";var X5n=/\+/g,Q5n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function rEe(){this.buffer=void 0}rEe.prototype.write=function(e){e=e.replace(X5n," ");let t="",n=0,r=0,i=e.length;for(;nr&&(t+=e.substring(r,n),r=n),this.buffer="",++r);return r{"use strict";var $5n=Uvt(),mx=p6(),iEe=f6(),e8n=/^charset$/i;y6.detect=/^application\/x-www-form-urlencoded/i;function y6(e,t){let n=t.limits,r=t.parsedConType;this.boy=e,this.fieldSizeLimit=iEe(n,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=iEe(n,"fieldNameSize",100),this.fieldsLimit=iEe(n,"fields",1/0);let i;for(var s=0,o=r.length;ss&&(this._key+=this.decoder.write(e.toString("binary",s,n))),this._state="val",this._hitLimit=!1,this._checkingBytes=!0,this._val="",this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),s=n+1;else if(r!==void 0){++this._fields;let a,c=this._keyTrunc;if(r>s?a=this._key+=this.decoder.write(e.toString("binary",s,r)):a=this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),a.length&&this.boy.emit("field",mx(a,"binary",this.charset),"",c,!1),s=r+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(i>s&&(this._key+=this.decoder.write(e.toString("binary",s,i))),s=i,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(ss&&(this._val+=this.decoder.write(e.toString("binary",s,r))),this.boy.emit("field",mx(this._key,"binary",this.charset),mx(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this._state="key",this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),s=r+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(i>s&&(this._val+=this.decoder.write(e.toString("binary",s,i))),s=i,(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(s0?this.boy.emit("field",mx(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",mx(this._key,"binary",this.charset),mx(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};Fvt.exports=y6});var Bvt=w((cSi,z1)=>{"use strict";var sEe=K("node:stream").Writable,{inherits:t8n}=K("node:util"),n8n=Qbe(),Hvt=Dvt(),qvt=jvt(),r8n=tEe();function Bg(e){if(!(this instanceof Bg))return new Bg(e);if(typeof e!="object")throw new TypeError("Busboy expected an options-Object.");if(typeof e.headers!="object")throw new TypeError("Busboy expected an options-Object with headers-attribute.");if(typeof e.headers["content-type"]!="string")throw new TypeError("Missing Content-Type-header.");let{headers:t,...n}=e;this.opts={autoDestroy:!1,...n},sEe.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}t8n(Bg,sEe);Bg.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}sEe.prototype.emit.apply(this,arguments)};Bg.prototype.getParserByHeaders=function(e){let t=r8n(e["content-type"]),n={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(Hvt.detect.test(t[0]))return new Hvt(this,n);if(qvt.detect.test(t[0]))return new qvt(this,n);throw new Error("Unsupported Content-Type.")};Bg.prototype._write=function(e,t,n){this._parser.write(e,n)};z1.exports=Bg;z1.exports.default=Bg;z1.exports.Busboy=Bg;z1.exports.Dicer=n8n});var Vvt=w((uSi,Gvt)=>{"use strict";var zg=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],Cv=Math.random;function zvt(){return zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]+zg[255*Cv()|0]}Gvt.exports.generateId=(function(){let t=0,n=zvt();return function(){return t===255?(n=zvt())+zg[t=0]:n+zg[++t]}})()});var Kvt=w((lSi,Wvt)=>{"use strict";Wvt.exports=function(t){return new Promise((n,r)=>{t.on("data",()=>{}),t.on("close",()=>{n()}),t.on("end",()=>{n()}),t.on("error",i=>{r(i)})})}});var Jvt=w((dSi,G1)=>{"use strict";var Yvt=Object.getPrototypeOf({});function Zvt(){return function(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)&&!(t instanceof Date)}}function oEe(e){function t(y){return y!=="constructor"&&y!=="prototype"&&y!=="__proto__"}function n(y){let b=0,S=y.length,E=new Array(S);for(b;b"u")continue;S[A]=p(b[A])}return S}function m(y,b){if(l&&typeof b>"u")return p(y);let S=Array.isArray(b),E=Array.isArray(y);return d(b)?b:u(y)?S&&E?f(y,b):S!==E?p(b):h(y,b):p(b)}function g(){switch(arguments.length){case 0:return{};case 1:return p(arguments[0]);case 2:return m(arguments[0],arguments[1])}let y;for(let b=0,S=arguments.length;b{"use strict";var i8n=Bvt(),s8n=K("node:os"),o8n=GC(),{createWriteStream:a8n}=K("node:fs"),{unlink:c8n}=K("node:fs/promises"),Xvt=K("node:path"),{generateId:u8n}=Vvt(),Gg=bW(),l8n=Kvt(),d8n=Jvt()({all:!0}),{PassThrough:f8n,Readable:p8n}=K("node:stream"),{pipeline:h8n}=K("node:stream/promises"),m8n=Cue(),uEe=Symbol("multipart"),S6=Symbol("multipartHandler"),V1=Symbol("savedRequestFilesResult"),Qvt=Gg("FST_PARTS_LIMIT","reach parts limit",413),$vt=Gg("FST_FILES_LIMIT","reach files limit",413),eRt=Gg("FST_FIELDS_LIMIT","reach fields limit",413),aEe=Gg("FST_REQ_FILE_TOO_LARGE","request file too large",413),cEe=Gg("FST_PROTO_VIOLATION","prototype property is not allowed as field name",400),tRt=Gg("FST_INVALID_MULTIPART_CONTENT_TYPE","the request is not multipart",406),nRt=Gg("FST_INVALID_JSON_FIELD_ERROR","a request field is not a valid JSON as declared by its Content-Type",406),rRt=Gg("FST_FILE_BUFFER_NOT_FOUND","the file buffer was not found",500),g8n=Gg("FST_NO_FORM_DATA","FormData is not available",500);function y8n(e,t,n){e[uEe]=!0,n()}function S8n(e){try{return new i8n(e)}catch(t){let n=new f8n;return process.nextTick(function(){n.emit("error",t)}),n}}function lEe(e,t,n){t.limits={...t.limits,parts:t.limits?.parts||1e3,fileSize:t.limits?.fileSize||e.initialConfig.bodyLimit};let r=t.attachFieldsToBody;(r===!0||r==="keyValues")&&(typeof t.sharedSchemaId=="string"&&r===!0&&e.addSchema({$id:t.sharedSchemaId,type:"object",properties:{fieldname:{type:"string"},encoding:{type:"string"},filename:{type:"string"},mimetype:{type:"string"}}}),e.addHook("preValidation",async function(p){if(p.isMultipart()){for await(let h of p.parts(p.routeOptions.config.multipartOptions))p.body=h.fields,h.file&&(t.onFile?await t.onFile.call(p,h):await h.toBuffer());if(r==="keyValues"){let h={};if(p.body){let m=Object.keys(p.body);for(let g=0;g{await p.cleanRequestFiles()});function s(){return this[uEe]}function o(p={}){if(!this.isMultipart())throw new tRt;this.log.debug("starting multipart parsing");let h=[],m=null,g=C=>{m?(m(C),m=null):h.push(C)},y=C=>{if(h.length>0){let L=h[0];h=h.slice(1),C(L)}else m=C},b=()=>new Promise((C,L)=>{y(G=>{G instanceof Error?G.message==="Unexpected end of multipart data"?C(null):L(G):C(G)})}),S={},E=null,_=null,T=this.raw,R=d8n({headers:T.headers},t,p);this.log.trace({busboyOptions:R},"Providing options to busboy");let A=S8n(R);T.on("close",N),T.on("error",N),A.on("field",x).on("file",k).on("end",N).on("finish",N).on("close",N).on("error",N),A.on("partsLimit",function(){let C=new Qvt;P(C),process.nextTick(()=>N(C))}),A.on("filesLimit",function(){let C=new $vt;P(C),process.nextTick(()=>N(C))}),A.on("fieldsLimit",function(){let C=new eRt;P(C),process.nextTick(()=>N(C))}),T.pipe(A);function x(C,L,G,W,$,q){if(C in Object.prototype){P(new cEe);return}if(q.startsWith("application/json")){if(W){P(new nRt);return}try{L=m8n.parse(L),q="application/json"}catch{P(new nRt);return}}let Q={type:"field",fieldname:C,mimetype:q,encoding:$,value:L,fieldnameTruncated:G,valueTruncated:W,fields:S};S[C]===void 0?S[C]=Q:Array.isArray(S[C])?S[C].push(Q):S[C]=[S[C],Q],g(Q)}function k(C,L,G,W,$){if(C in Object.prototype){l8n(L).catch(()=>{}),P(new cEe);return}let q=typeof p.throwFileSizeLimit=="boolean"?p.throwFileSizeLimit:i,Q={type:"file",fieldname:C,filename:G,encoding:W,mimetype:$,file:L,fields:S,_buf:null,async toBuffer(){if(this._buf)return this._buf;let B=[],F;for await(let V of this.file)B.push(V),q&&this.file.truncated&&(F=new aEe,F.part=this,P(F),B.length=0);if(F)throw F;return this._buf=Buffer.concat(B),this._buf}};L.on("error",function(B){B.message&&B.message.includes("terminated early")&&P(B)}),q&&L.on("limit",function(){let B=new aEe;B.part=Q,P(B)}),S[C]===void 0?S[C]=Q:Array.isArray(S[C])?S[C].push(Q):S[C]=[S[C],Q],_=L,g(Q)}function P(C){E=C,_=null}function N(C){T.unpipe(A),(C||T.aborted)&&_&&(_.destroy(),_=null),g(C||E||null)}return b}async function a(p){if(this[V1])return this[V1];let h,m={};r===!0||r==="keyValues"?(h=this.body?c.call(this,this.body):[],m=this.body||{}):h=this.parts(p),this.savedRequestFiles=[];let g=p?.tmpdir||s8n.tmpdir();this.tmpUploads=[];let y=0;for await(let b of h){if(m=b.fields,!b.file)continue;let S=Xvt.join(g,u8n()+Xvt.extname(b.filename||"file"+y++)),E=a8n(S);try{this.tmpUploads.push(S),await h8n(b.file,E),this.savedRequestFiles.push({...b,filepath:S})}catch(_){throw E.destroy(),await this.cleanRequestFiles(),this.log.error({err:_},"save request file"),_}}return this[V1]={files:this.savedRequestFiles,values:m},this[V1]}function*c(p){try{let h=Array.isArray(p)?p:Object.values(p);for(let m=0;m(n.type="string",n.format="binary",delete n.isFile,r=>!!r.file),error:{message:"should be a file"}})}W1.exports=o8n(lEe,{fastify:"5.x",name:"@fastify/multipart"});W1.exports.default=lEe;W1.exports.fastifyMultipart=lEe;W1.exports.ajvFilePlugin=b8n});import{mkdirSync as E8n}from"node:fs";import{open as _8n}from"node:fs/promises";import{dirname as T8n,join as v8n}from"node:path";function Z1(e,t){let n=String(t).padStart(2,"0");return`HWM-${e}-${n}`}function oRt(e,t=200){return e.length<=t?e:`${e.slice(0,t)}...`}function Y1(e){return Buffer.byteLength(e,"utf-8")}function dEe(e,t){if(Y1(e)<=t)return e;let n="...[truncated]",r=Y1(n),i=Math.max(0,t-r),s=Buffer.from(e,"utf-8"),o=i;for(;o>0&&(s[o]&192)===128;)o--;return`${s.slice(0,o).toString("utf-8")}${n}`}function I8n(e){let t=(s,o)=>s==null?null:dEe(s,o),n={...e,path:dEe(e.path,A8n),claimed_author_id:t(e.claimed_author_id,sRt),human_author_id:t(e.human_author_id,sRt),rationale:t(e.rationale,R8n),dirs_created:(e.dirs_created??[]).slice(0,w8n).map(s=>dEe(s,k8n))},r=JSON.stringify(n),i=Y1(r);return i>b6?{ok:!1,reason:"record_too_large",bytes:i,cap:b6}:{ok:!0,record:n,line:r}}function x8n(e){return v8n(e,"write-audit.jsonl")}async function O8n(e,t){let n=K1.get(e)??Promise.resolve(),r,i=new Promise(s=>{r=s});K1.set(e,n.then(()=>i));try{return await n,await t()}finally{r(),queueMicrotask(()=>{let s=K1.get(e);s!==void 0&&Promise.resolve(s).then(()=>{K1.get(e)===s&&K1.delete(e)})})}}async function aRt(e,t){try{E8n(T8n(e),{recursive:!0})}catch(n){return{ok:!1,reason:String(n)}}return O8n(e,async()=>{let n=null;try{return n=await _8n(e,"a"),await n.write(`${t} +`),await n.sync(),{ok:!0}}catch(r){return{ok:!1,reason:String(r)}}finally{n!==null&&await n.close().catch(()=>{})}})}async function J1(e,t){let n=I8n(t);if(!n.ok)return{ok:!1,reason:`${n.reason} (bytes=${n.bytes}, cap=${n.cap})`};let r=x8n(e);return aRt(r,n.line)}async function cRt(e,t){return Y1(t)>b6?{ok:!1,reason:`record_too_large (bytes=${Y1(t)}, cap=${b6})`}:aRt(e,t)}var b6,R8n,sRt,A8n,w8n,k8n,K1,E6=v(()=>{"use strict";b6=16*1024,R8n=4096,sRt=128,A8n=1024,w8n=16,k8n=512;K1=new Map});import{join as P8n}from"node:path";function fEe(e){return P8n(e,"action-log.jsonl")}async function Mv(e,t,n){let r=fEe(e),i=JSON.stringify(n);return cRt(r,i)}var _6=v(()=>{"use strict";E6()});import{createHash as N8n}from"node:crypto";import{createWriteStream as C8n,existsSync as hEe,readFileSync as M8n,unlinkSync as yRt}from"node:fs";import{join as X1,resolve as uRt}from"node:path";function D8n(e){return!(!e||e==="application/octet-stream")}function dRt(e){return typeof e!="string"?!1:gEe.test(e)}function L8n(e){let t=e.lastIndexOf(".");return t<0?"":e.slice(t).toLowerCase()}function U8n(e){if(!e)return"";let t=e.indexOf(";");return(t<0?e:e.slice(0,t)).trim().toLowerCase()}function fRt(e){return mEe.has(L8n(e))}function pEe(){let e=process.env.HAIKU_UPLOAD_MAX_BYTES,t;if(e===void 0)t=lRt;else{let n=Number.parseInt(e,10);t=!Number.isFinite(n)||n<=0?lRt:n}return t>T6?(Ke("haiku.upload.cap_clamped",{env_value:String(t),hard_cap:String(T6)}),T6):Math.min(t,T6)}function pRt(e,t){try{let n=X1(pe(e),"stages",t,"state.json");if(!hEe(n))return!1;let r=M8n(n,"utf-8"),s=JSON.parse(r).status;return s==="complete"||s==="sealed"}catch{return!1}}function hRt(e){return S1(pe(e))}function mRt(e){return y1(pe(e))}async function gRt(e,t,n){let r=X1(t,`.upload-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`),i=N8n("sha256"),s=0,o=C8n(r),a=new Promise(c=>{o.on("close",()=>{c()})});return await new Promise((c,u)=>{o.on("error",u),o.on("finish",c),e.file.on("error",u),e.file.on("data",l=>{if(s+=l.length,s>n){e.file.destroy(),o.destroy(),u(Object.assign(new Error("payload_too_large"),{code:"PAYLOAD_TOO_LARGE"}));return}i.update(l)}),e.file.on("end",()=>{o.end()}),e.file.pipe(o)}).catch(async c=>{await a.catch(()=>{});try{yRt(r)}catch{}throw c}),{tmpPath:r,sha256:i.digest("hex"),bytes:s}}async function bRt(e){await e.register(async t=>{await t.register(SRt.default,{limits:{fileSize:pEe()+1,files:1}}),t.post("/api/intents/:intent/uploads/stage-output",async(n,r)=>{if(!zn(n,r,null))return;let{intent:i}=n.params;if(!gn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!rx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(hRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(mRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=pEe(),o,a,c,u,l;try{let W=n.parts();for await(let $ of W)if($.type==="file")l=$;else{let q=$.value;$.fieldname==="stage"?o=q:$.fieldname==="target_path"?a=q:$.fieldname==="mode"?c=q:$.fieldname==="attribute_to_user"&&(u=q)}}catch(W){let $=W.code;if($==="FST_FILES_LIMIT"||$==="LIMIT_FILE_SIZE"||$==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}if(!o||!a||!c||!u||!l){r.status(400).send({error:"bad_param",code:"bad_param",message:"Missing required fields: stage, target_path, mode, attribute_to_user, file"});return}if(!dRt(u)){r.status(400).send({error:"bad_attribute_to_user",code:"bad_attribute_to_user",message:"attribute_to_user must match /^[\\w][\\w\\-.@ ]{0,127}$/ \u2014 alphanumerics, underscore, hyphen, dot, at-sign, space; max 128 chars; cannot start with a separator.",pattern:gEe.source});return}let d=fRt(l.filename),f=fRt(a);if(d||f){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`Files with extensions ${Array.from(mEe).join(", ")} are rejected \u2014 they render inline and become a stored-XSS vector. Convert to a non-executable format (PDF, PNG screenshot, plain text) and retry.`,blocked_extensions:Array.from(mEe)});return}let p=U8n(l.mimetype);if(!D8n(p)){r.status(415).send({error:"unsupported_media_type",code:"unsupported_media_type",message:`MIME type '${p||""}' is rejected \u2014 empty MIME or application/octet-stream cannot be accepted (the latter is a multipart default that bypasses MIME inspection). Send the file's real MIME and retry.`,received_mime:p});return}if(!["replace","create","upsert"].includes(c)){r.status(400).send({error:"bad_param",code:"bad_param",message:"mode must be replace, create, or upsert"});return}if(!gn(o)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Qh(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(pRt(i,o)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}let h=(()=>{try{return decodeURIComponent(a)}catch{return a}})();if(h.includes("..")||h.includes("\0")||h.includes("\\")){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let m=h.replace(/^\/+/,""),g=rv(`stages/${o}/${m}`),y=`stages/${o}/artifacts/`;if(!g.startsWith(y)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let b=pe(i),S=X1(b,g),E=S.substring(0,S.lastIndexOf("/")),_=uRt(S),T=uRt(X1(b,y));if(!_.startsWith(T)){r.status(400).send({error:"bad_target_path",code:"bad_target_path"});return}let R=hEe(S);if(c==="replace"&&!R){r.status(400).send({error:"mode_violation",code:"mode_violation",message:"mode=replace but target does not exist"});return}if(c==="create"&&R){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let A=null,x,k;try{let W=await gRt(l,b,s);A=W.tmpPath,x=W.sha256,k=W.bytes}catch(W){if(W.code==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}let P=pv(b,E,A,S);if(!P.ok){H0(A),A=null,P.code==="parent_chain_contains_symlink"||P.code==="parent_chain_escape"?r.status(400).send({error:"bad_target_path",code:"bad_target_path",reason:P.code}):r.status(500).send({error:"write_failed",code:"write_failed"});return}A=null;let N=Lb(b,o),C=Z1(N,1),L=new Date().toISOString();await Mv(b,N,{entry_type:"human_write",path:g,sha:x,author_class:"human-via-mcp",timestamp:L,claimed_author_id:u,human_author_id:u,entry_id:C,tick_counter:N,tick_scope:"stage"}),await J1(b,{timestamp:L,entry_id:C,path:g,sha:x,author_class:"human-via-mcp",claimed_author_id:u,human_author_id:u,rationale:null,user_instruction_excerpt:null,tick_counter:N,session_id:null,overwrite:R,dirs_created:[],audit_log_appended:!0,tick_scope:"stage"}),r.send({ok:!0,path:g,sha256:x,bytes:k,baseline_updated:!1,tick_will_observe:!0})}),t.post("/api/intents/:intent/uploads/knowledge",async(n,r)=>{if(!zn(n,r,null))return;let{intent:i}=n.params;if(!gn(i)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!rx(n,r,i))return;if(!Ua(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(hRt(i)){r.status(404).send({error:"intent_not_found",code:"intent_not_found"});return}if(mRt(i)){r.status(423).send({error:"intent_locked",code:"intent_locked"});return}let s=pEe(),o,a=null,c,u;try{let k=n.parts();for await(let P of k)if(P.type==="file")u=P;else{let N=P.value;P.fieldname==="target_filename"?o=N:P.fieldname==="stage"?a=N||null:P.fieldname==="attribute_to_user"&&(c=N)}}catch(k){let P=k.code;if(P==="FST_FILES_LIMIT"||P==="LIMIT_FILE_SIZE"||P==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}if(!o||!c||!u){r.status(400).send({error:"bad_param",code:"bad_param",message:"Missing required fields: target_filename, attribute_to_user, file"});return}if(!dRt(c)){r.status(400).send({error:"bad_attribute_to_user",code:"bad_attribute_to_user",message:"attribute_to_user must match /^[\\w][\\w\\-.@ ]{0,127}$/ \u2014 alphanumerics, underscore, hyphen, dot, at-sign, space; max 128 chars; cannot start with a separator.",pattern:gEe.source});return}let l=(()=>{try{return decodeURIComponent(o)}catch{return o}})();if(l.includes("/")||l.includes("\\")||l.includes("..")||l.includes("\0")){r.status(400).send({error:"bad_target_path",code:"bad_target_path",message:"target_filename must be a basename with no path segments"});return}if(a!==null){if(!gn(a)){r.status(400).send({error:"bad_param",code:"bad_param"});return}if(!Qh(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}if(pRt(i,a)){r.status(403).send({error:"stage_not_writable",code:"stage_not_writable"});return}}let d=pe(i),f=a!==null?`stages/${a}/knowledge/${l}`:`knowledge/${l}`,p=X1(d,f),h=p.substring(0,p.lastIndexOf("/"));if(hEe(p)){r.status(409).send({error:"filename_collision",code:"filename_collision"});return}let g=null,y,b;try{let k=await gRt(u,d,s);g=k.tmpPath,y=k.sha256,b=k.bytes}catch(k){if(k.code==="PAYLOAD_TOO_LARGE"){r.status(413).send({error:"payload_too_large",code:"payload_too_large"});return}r.status(500).send({error:"write_failed",code:"write_failed"});return}let S=pv(d,h,g,p);if(!S.ok){H0(g),g=null,S.code==="parent_chain_contains_symlink"||S.code==="parent_chain_escape"?r.status(400).send({error:"bad_target_path",code:"bad_target_path",reason:S.code}):r.status(500).send({error:"write_failed",code:"write_failed"});return}g=null;let E=a===null,_;try{_=E?b1(d):Lb(d,a)}catch(k){if(k instanceof Gd){try{yRt(p)}catch{}r.status(500).send({error:"tick_persist_failed",code:"tick_persist_failed",message:k.message});return}throw k}let T=E?"intent":"stage",R=Z1(_,1),A=new Date().toISOString();await Mv(d,_,{entry_type:"human_write",path:f,sha:y,author_class:"human-via-mcp",timestamp:A,claimed_author_id:c,human_author_id:c,entry_id:R,tick_counter:_,tick_scope:T}),await J1(d,{timestamp:A,entry_id:R,path:f,sha:y,author_class:"human-via-mcp",claimed_author_id:c,human_author_id:c,rationale:null,user_instruction_excerpt:null,tick_counter:_,session_id:null,overwrite:!1,dirs_created:[],audit_log_appended:!0,tick_scope:T}),r.send({ok:!0,path:f,sha256:y,bytes:b,baseline_updated:!1,tick_will_observe:!0})})})}var SRt,lRt,T6,mEe,gEe,ERt=v(()=>{"use strict";SRt=Re(iRt(),1);_6();k0();E6();YY();Ge();vo();qg();wv();lRt=50*1024*1024,T6=50*1024*1024,mEe=new Set([".html",".htm",".svg",".xml",".xhtml",".mhtml",".js",".mjs",".cjs",".css",".htc",".hta",".htaccess"]);gEe=/^[\w][\w\-.@ ]{0,127}$/});function _Rt(e){e.register(async t=>{t.get("/ws/session/:sessionId",{websocket:!0,preValidation:async(n,r)=>{if(!Bi())return;let{sessionId:i}=n.params,s=n.query?.t;if(!s){r.status(401).send({error:"unauthorized",reason:"missing_token"});return}let o=Jh(s,i);if(!o.ok){r.status(401).send({error:"unauthorized",reason:o.reason});return}}},(n,r)=>{let{sessionId:i}=r.params;if(Bi()){let c=r.query?.t;if(!c){n.close(4401,"unauthorized");return}if(!Jh(c,i).ok){n.close(4401,"unauthorized");return}}let s=$t(i);if(!s){n.close(4404,"session not found");return}if(!Yu.has(i)&&Yu.size>=q1){zb(`upgrade REJECT session=${i} reason=ws_session_cap size=${Yu.size} cap=${q1}`),n.close(1013,"session cap reached");return}Yu.set(i,n),zb(`upgrade ACCEPT session=${i}`);let o=null,a=s.session_type==="review"?s:null;a?.intent_slug&&(o=lTt(a.intent_slug,c=>{$h(i,{type:"intent-event",session_id:i,event:c})})),n.on("message",c=>{if(!svt(n)){n.close(1008,"rate limit");return}let u=Array.isArray(c)?Buffer.concat(c).toString("utf8"):typeof c=="string"?c:Buffer.from(c).toString("utf8");ovt(i,u)}),n.on("close",()=>{Yu.get(i)===n&&Yu.delete(i),o&&(o(),o=null)}),n.on("error",()=>{Yu.get(i)===n&&Yu.delete(i),o&&(o(),o=null)})})})}var TRt=v(()=>{"use strict";ux();$c();Xh();d6()});import{randomUUID as F8n}from"node:crypto";function j8n(){return yEe}function H8n(e){if(!e)return null;let t=bf.allowedOrigins.filter(r=>r&&r!=="*");return(t.length>0?t:[bf.siteUrl]).includes(e)?e:null}async function q8n(){let e=(0,xRt.default)({logger:!1,bodyLimit:ED,disableRequestLogging:!0,genReqId:t=>{let n=t.headers["x-request-id"];if(typeof n=="string"&&n.length>0&&n.length<=128)return n;if(Array.isArray(n)&&n[0]){let r=n[0];if(r.length>0&&r.length<=128)return r}return F8n()},requestIdHeader:"x-request-id"});if(e.addHook("onRequest",async(t,n)=>{n.getHeader("x-request-id")||n.header("x-request-id",t.id),t.startTime=process.hrtime.bigint()}),e.addHook("onResponse",async(t,n)=>{let r=n.statusCode,i=t.startTime??void 0,s=i!==void 0?Number(process.hrtime.bigint()-i)/1e6:void 0,o=r>=500?"error":r>=400?"warn":"info";try{console.error(JSON.stringify({level:o,event:"http_response",reqId:t.id,method:t.method,url:t.url,statusCode:r,...s!==void 0?{responseTimeMs:Math.round(s*100)/100}:{}}))}catch{}}),Bi()&&await e.register(wRt.default,{origin:(t,n)=>{n(null,H8n(t)??!1)},credentials:!1,methods:["GET","HEAD","POST","PUT","DELETE","OPTIONS"],allowedHeaders:["Authorization","Content-Type","bypass-tunnel-reminder","X-Haiku-CSRF"],exposedHeaders:["X-E2E-Encrypted","X-Original-Content-Type"],strictPreflight:!1,preflightContinue:!1}),Bi()){let t=(()=>{let r=process.env.HAIKU_HTTP_RATE_MAX,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1?i:60})(),n=(()=>{let r=process.env.HAIKU_HTTP_RATE_WINDOW_MS,i=r?Number.parseInt(r,10):NaN;return Number.isFinite(i)&&i>=1e3?i:6e4})();await e.register(kRt.default,{max:t,timeWindow:n})}return await e.register(IRt.default,{options:{maxPayload:64*1024}}),e.addHook("onSend",async(t,n,r)=>{let i=ybe((t.url??"/").split("?")[0]);if(!i||!N1(i)||n.statusCode>=400)return r;try{return await Z_t(t,n,r)}catch{return r}}),K_t(e,j8n),O_t(e),uvt(e),cTt(e),rTt(e),await bRt(e),D_t(e),j_t(e),V_t(e),_Rt(e),e}function ARt(e){if(process.env.HAIKU_TRANSPORT_ASSERT==="0"&&process.env.NODE_ENV==="test"){console.error("WARNING: HAIKU_TRANSPORT_ASSERT=0 bypass active (NODE_ENV=test). This is a test-only escape hatch; ignored outside NODE_ENV=test.");return}new Set(["127.0.0.1","::1","::ffff:127.0.0.1"]).has(e)||(console.error(`FATAL: Review HTTP server bound to non-loopback address '${e}'. v1 transport invariant requires loopback-only; terminating.`),process.exit(1))}async function Wb(){if(Vb&&Gb!==null)return Gb;Bi()&&bf.allowedOrigins.filter(s=>s&&s!=="*").length===0&&console.error("WARNING: HAIKU_REMOTE_REVIEW=1 but no allowed origins configured. Every cross-origin request from the SPA will be rejected by CORS. Set `HAIKU_REVIEW_ALLOWED_ORIGINS` (comma-separated) or `HAIKU_REVIEW_SITE_URL` before starting."),Vb=await q8n();let e=process.env.HAIKU_FORCE_BIND_ADDR;e&&e!=="127.0.0.1"&&console.error(`WARNING: HAIKU_FORCE_BIND_ADDR='${e}' overrides the default loopback bind. This is a test/dev-only knob; in production it will trigger the transport-invariant FATAL exit.`);let t=e||"127.0.0.1",n=await Vb.listen({host:t,port:0});Vb.server.maxConnections=RRt;let r=n.match(/^https?:\/\/(\[?[^\]]*\]?|[^:]+):(\d+)/);if(r&&(Gb=Number.parseInt(r[2],10),ARt(r[1].replace(/^\[|\]$/g,""))),Gb===null){let i=Vb.server.address();i&&typeof i=="object"&&(Gb=i.port,ARt(i.address))}return console.error(`Review HTTP server listening on http://127.0.0.1:${Gb} (maxConnections=${RRt}, maxWsSessions=${q1})`),yEe=!0,Gb}async function ORt(){if(Vb)try{for(let e of Array.from(Yu.keys()))try{Ov(e,"shutdown")}catch{}await Vb.close()}finally{Vb=null,Gb=null,yEe=!1}}var wRt,kRt,IRt,xRt,vRt,RRt,Vb,Gb,yEe,v6=v(()=>{"use strict";wRt=Re(V8e(),1),kRt=Re(s7e(),1),IRt=Re(LXe(),1),xRt=Re(dut(),1);TT();Ci();L_t();H_t();pbe();W_t();Y_t();J_t();iTt();uTt();lvt();ERt();d6();TRt();Xh();vRt=256,RRt=(()=>{let e=process.env.HAIKU_MAX_CONNECTIONS;if(e===void 0)return vRt;let t=Number.parseInt(e,10);return!Number.isFinite(t)||t<=0?vRt:Math.max(t,1)})(),Vb=null,Gb=null,yEe=!1});import{execFileSync as B8n}from"node:child_process";import{cpSync as PRt,existsSync as EEe,mkdirSync as SEe}from"node:fs";import{homedir as NRt}from"node:os";import{join as _Ee}from"node:path";function V8n(){return _Ee(NRt(),".claude","plugins","npm-cache","node_modules","haiku-method")}function W8n(e){let t=e??nn();if(!t)return{removed:!0,root:"",missingPaths:[""]};let n=[];for(let r of z8n)EEe(_Ee(t,r))||n.push(r);return{removed:n.length>0,root:t,missingPaths:n}}function K8n(){if(cd==="dev")return{ok:!1,method:"skipped",reason:"dev_build_no_npm_source"};let e=nn();if(!e)return{ok:!1,method:"skipped",reason:"no_target_path"};let t=V8n();if(EEe(t))try{return SEe(e,{recursive:!0}),PRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-cache-copy"}}catch(r){}let n=_Ee(NRt(),".claude","plugins","npm-cache");try{return SEe(n,{recursive:!0}),B8n("npm",["install",`haiku-method@${cd}`,"--prefix",n],{encoding:"utf8",timeout:6e4,stdio:"pipe"}),EEe(t)?(SEe(e,{recursive:!0}),PRt(t,e,{recursive:!0,force:!0}),{ok:!0,method:"npm-install"}):{ok:!1,method:"npm-install",reason:"npm_install_no_module"}}catch(r){return{ok:!1,method:"npm-install",reason:"npm_install_failed",error:r instanceof Error?r.message:String(r)}}}function CRt(e){let t=Date.now();if(t-bEe{"use strict";Ci();sh();f_();z8n=["studios","schemas",".claude-plugin/plugin.json"],G8n=5e3,bEe=0});var Rt=v(()=>{"use strict"});var Y8n,Z8n,DRt,LRt=v(()=>{"use strict";gt();ht();Rt();Y8n=new _e({autoEscape:!1,useWith:!0}),Z8n=ie("@canon:feedback/changes_requested"),DRt=({slug:e,action:t})=>{let n=t.annotations,r=t.message||"No details provided.";return Y8n.renderString(Z8n,{slug:e,message:r,annotations:n})}});var J8n,X8n,URt,FRt=v(()=>{"use strict";gt();ht();Rt();J8n=new _e({autoEscape:!1,useWith:!0}),X8n=ie("@canon:feedback/close_feedback"),URt=({slug:e,action:t})=>{let n=t.stage||"",r=t.feedback_id||"";return J8n.renderString(X8n,{slug:e,stage:n,fbId:r})}});var Q8n,$8n,jRt,HRt=v(()=>{"use strict";gt();ts();ht();Rt();Q8n=new _e({autoEscape:!1,useWith:!0}),$8n=ie("@canon:feedback/feedback_question"),jRt=e=>{let t=e.action;return Q8n.renderString($8n,{slug:e.slug,stage:t.stage,feedbackId:t.feedback_id,feedbackPath:t.feedback_path,isAutopilot:UI(e.dir)==="autopilot"})}});var e7n,t7n,qRt,BRt=v(()=>{"use strict";gt();ht();Rt();e7n=new _e({autoEscape:!1,useWith:!0}),t7n=ie("@canon:feedback/fix_quality_gates"),qRt=({slug:e,action:t})=>{let n=t.stage||"",r=n?`, stage: "${n}"`:"",i=t.message||"No details provided.";return e7n.renderString(t7n,{slug:e,stageHint:r,message:i})}});import{existsSync as R6}from"node:fs";import{join as n7n}from"node:path";var zRt,r7n,i7n,GRt,VRt=v(()=>{"use strict";gt();_f();Ge();Kn();vl();ts();ht();Uh();Rt();zRt=new _e({autoEscape:!1,useWith:!0}),r7n=ie("@canon:feedback/intent_completion_fix"),i7n=ie("@canon:feedback/intent_completion_fix","subagent.eta.md"),GRt=({slug:e,studio:t,action:n})=>{let r=n.fix_hats||[],i=n.max_bolts||Dg,s=n.items||[],o=n.total_pending||s.length,a=n.escalated_count||0,c=Te(),u=UD(t),l=s.map(({feedback_id:f,feedback_file:p,feedback_title:h,bolt:m,worktree:g,branch:y})=>{let b=n7n(c,p),S=Number.parseInt(f.replace(/^FB-/i,""),10)||0,E=[],_=null,T="";for(let R=r.length-1;R>=0;R--){let A=r[R],x=u[A];x||E.push(`> **Warning:** studio fix-hat \`${A}\` has no mandate file in \`plugin/studios/${t}/fix-hats/${A}.md\`. The subagent will run without a mandate \u2014 this is likely a studio bug.`);let k=R===r.length-1,P=x&&R6(x)?Rl(x,`Fix-hat mandate: ${A}`):"",N=x&&R6(x)?NI(PI(x)):"",C=R6(b)?Rl(b,`Feedback: ${f} \u2014 ${h}`):"",L=R6(b)?CI(b):"",G=zRt.renderString(i7n,{hat:A,fbId:f,fbNum:S,fbTitle:h,fixBolt:m,fixMaxBolts:i,slug:e,fbWorktree:g,fbBranch:y,hatMandateInline:P,hatInterpBlock:N,fbInline:C,priorRejectBlock:L,gitRepo:ve(),isLast:k}),W=x?ju({mandatePath:x,studio:t}):void 0,$=Ti({unit:`fix-${f}`,hat:A,bolt:m,intent:e,agentType:"general-purpose",model:W,promptBody:G,heading:`#### Subagent: \`${A}\`${k?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!k&&_)try{y3({unit:`fix-${f}`,hat:A,bolt:m,intent:e},_)}catch{}_=$,R===0&&(T=$)}return{fbId:f,fbTitle:h,fixBolt:m,warnings:E.join(` +`),firstHatBlock:T}}),d=Mi().subagents.backgroundSpawn?'`background="true"` \u2192 `run_in_background: true` (always present on fix-loop dispatches \u2014 pass it through; the parent waits on results, so foreground would block this thread); ':"";return zRt.renderString(r7n,{slug:e,itemCount:s.length,fixHatsList:r,fixMaxBolts:i,escalatedCount:a,totalPending:o,showTotalsLine:o!==s.length+a,showAnnouncement:s.length>1,announcementBlock:bs("workflow-contracts-announcement"),workflowContractsBlock:bs("workflow-contracts-fix-loop"),findings:l,bgClause:d})}});import{existsSync as A6}from"node:fs";import{join as w6}from"node:path";var WRt,s7n,o7n,KRt,YRt=v(()=>{"use strict";gt();Ci();_f();Ge();Kn();vl();ns();ts();ht();Uh();Rt();WRt=new _e({autoEscape:!1,useWith:!0}),s7n=ie("@canon:feedback/review_fix"),o7n=ie("@canon:feedback/review_fix","subagent.eta.md"),KRt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.fix_hats||[],s=n.max_bolts||Dg,o=n.items||[],a=n.total_pending||o.length,c=n.escalated_count||0,u=Te(),l=Du(t,r),d=si(t),f=d?d.dir:t,p=nn(),h=Ff(w6(f,"stages",r,"STAGE.md")),m=o.map(({feedback_id:y,feedback_file:b,feedback_title:S,bolt:E,worktree:_,branch:T})=>{let R=w6(u,b),A=Number.parseInt(y.replace(/^FB-/i,""),10)||0,x=[],k=null,P="";for(let N=i.length-1;N>=0;N--){let C=i[N],L=l[C];L||x.push(`> **Warning:** hat \`${C}\` declared in \`fix_hats\` has no mandate file in \`hats/${C}.md\`. The subagent will run without a mandate \u2014 this is likely a studio bug.`);let G=L?w6(p,"studios",f,"stages",r,"hats",`${C}.md`):null,W=N===i.length-1,$=h?Rl(h,`Stage scope: ${r}`):"",q=G&&A6(G)?Rl(G,`Hat mandate: ${C}`):"",Q=G&&A6(G)?NI(PI(G)):"",B=A6(R)?Rl(R,`Feedback: ${y} \u2014 ${S}`):"",F=A6(R)?CI(R):"",V=WRt.renderString(o7n,{hat:C,fbId:y,fbNum:A,fbTitle:S,fixBolt:E,fixMaxBolts:s,fixStage:r,slug:e,fbWorktree:_,fbBranch:T,stageBaseInline:$,hatMandateInline:q,hatInterpBlock:Q,fbInline:B,priorRejectBlock:F,gitRepo:ve(),isLast:W}),U=w6(nn(),"studios",t,"stages",r,"hats",`${C}.md`),M=ju({mandatePath:U,studio:t,stage:r}),H=Ti({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r,agentType:L?.agent_type??"general-purpose",model:M??L?.model,promptBody:V,heading:`#### Subagent: \`${C}\`${W?" (final \u2014 validates closure)":" (relays next hat to parent)"}`});if(!W&&k)try{y3({unit:`fix-${y}`,hat:C,bolt:E,intent:e,stage:r},k)}catch{}k=H,N===0&&(P=H)}return{fbId:y,fbTitle:S,fixBolt:E,warnings:x.join(` +`),firstHatBlock:P}}),g=Mi().subagents.backgroundSpawn?'`background="true"` \u2192 `run_in_background: true` (always present on fix-loop dispatches \u2014 pass it through; the parent waits on results, so foreground would block this thread); ':"";return WRt.renderString(s7n,{slug:e,fixStage:r,itemCount:o.length,fixHatsList:i,fixMaxBolts:s,escalatedCount:c,totalPending:a,showTotalsLine:a!==o.length+c,showAnnouncement:o.length>1,announcementBlock:bs("workflow-contracts-announcement"),workflowContractsBlock:bs("workflow-contracts-fix-loop"),findings:m,bgClause:g})}});import{existsSync as ZRt,readdirSync as JRt,readFileSync as XRt}from"node:fs";import{join as gx}from"node:path";function u7n(e){if(!Go.modelSelection)return;let{slug:t,stage:n,studio:r,hat:i,feedbackId:s}=e,o;if(s){let d=s.replace(/^FB-/,""),f=n?gx(ar(t,n),"feedback"):gx(pe(t),"feedback");try{let p=ZRt(f)?JRt(f).filter(h=>h.startsWith(d)&&h.endsWith(".md")):[];if(p.length>0){let h=XRt(gx(f,p[0]),"utf8");o=(0,TEe.default)(h).data.model}}catch{}}let a=n?Du(r,n)?.[i]:void 0,c=n?$i(r,n):void 0,u=Nd(r),l=db({unit:o,hat:a?.model,stage:c?.data?.default_model,studio:u?.data?.default_model});return{model:l.model,source:l.source}}var TEe,a7n,c7n,QRt,$Rt=v(()=>{"use strict";gt();TEe=Re(Kt(),1);Ci();fb();Ge();Kn();Vpe();ts();ht();Uh();Rt();a7n=new _e({autoEscape:!1,useWith:!0}),c7n=ie("@canon:feedback/start_feedback_hat");QRt=({slug:e,studio:t,action:n})=>{let r=n.dispatches??[];if(r.length===0&&Array.isArray(n.feedback_ids)){let s=n.stage??"",o=n.hat??"",a=n.terminal??!1;r=n.feedback_ids.map(c=>({feedback_id:c,stage:s,hat:o,terminal:a}))}r=r.filter(s=>{let o=s.feedback_id.replace(/^FB-/i,""),a=s.stage?gx(ar(e,s.stage),"feedback"):gx(pe(e),"feedback");if(!ZRt(a))return!0;let c=JRt(a).filter(u=>u.startsWith(o)&&u.endsWith(".md"));if(c.length===0)return!0;try{let u=XRt(gx(a,c[0]),"utf8"),l=(0,TEe.default)(u).data,d=l.closed_at;if(d instanceof Date||typeof d=="string"&&d.length>0||typeof l.status=="string"&&l.status==="closed"||typeof l.closed_by=="string"&&l.closed_by.startsWith("fix-loop:"))return!1}catch{}return!0});let i=r.map(s=>{let o=u7n({slug:e,studio:t,stage:s.stage,hat:s.hat,feedbackId:s.feedback_id}),a=HI({slug:e,studio:t,feedbackId:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal});return{feedback_id:s.feedback_id,stage:s.stage,hat:s.hat,terminal:s.terminal,fb_int:Number.parseInt(s.feedback_id.replace(/^FB-/i,""),10)||0,model_tier:o?.model,model_source:o?.source,hat_path:s.stage?pb(t,s.stage,s.hat):null,dispatch_block:a}});return a7n.renderString(c7n,{slug:e,dispatches:i,dispatchCount:i.length,plural:i.length===1?"":"s",batchDirective:i.length>0?FI(i.length,"fix-hat subagents"):"",fixLoopContractsBlock:bs("workflow-contracts-fix-loop")})}});var l7n,d7n,eAt,tAt=v(()=>{"use strict";gt();ht();Rt();l7n=new _e({autoEscape:!1,useWith:!0}),d7n=ie("@canon:global/complete"),eAt=({action:e})=>l7n.renderString(d7n,{message:e.message??""})});var f7n,p7n,nAt,rAt=v(()=>{"use strict";gt();ht();Rt();f7n=new _e({autoEscape:!1,useWith:!0}),p7n=ie("@canon:global/error"),nAt=({action:e})=>f7n.renderString(p7n,{message:e.message??""})});var h7n,m7n,iAt,sAt=v(()=>{"use strict";gt();ht();Rt();h7n=new _e({autoEscape:!1,useWith:!0}),m7n=ie("@canon:global/loop_halted"),iAt=({action:e})=>{let t=e;return h7n.renderString(m7n,{message:t.message??"",loop:t.loop??"repeat",intent:t.intent??""})}});function S7n(e){let t=e.match(/^---\n[\s\S]*?\n---\n?/);return(t?e.slice(t[0].length):e).trim()}var g7n,y7n,oAt,aAt=v(()=>{"use strict";gt();Kn();ht();Rt();g7n=new _e({autoEscape:!1,useWith:!0}),y7n=ie("@canon:intent/reflection/record_reflection");oAt=({slug:e,studio:t})=>{let n=t?Object.entries(sft(t)).map(([r,i])=>({name:r,body:S7n(i)})):[];return g7n.renderString(y7n,{slug:e,dimensions:n})}});var b7n,E7n,cAt,uAt=v(()=>{"use strict";gt();ht();Rt();b7n=new _e({autoEscape:!1,useWith:!0}),E7n=ie("@canon:intent/repair/external_review_requested"),cAt=({action:e})=>b7n.renderString(E7n,{message:e.message??""})});var _7n,T7n,lAt,dAt=v(()=>{"use strict";gt();ht();Rt();_7n=new _e({autoEscape:!1,useWith:!0}),T7n=ie("@canon:intent/repair/revise_unit_specs"),lAt=({action:e})=>_7n.renderString(T7n,{message:e.message??""})});var v7n,R7n,fAt,pAt=v(()=>{"use strict";gt();ht();Rt();v7n=new _e({autoEscape:!1,useWith:!0}),R7n=ie("@canon:intent/repair/safe_intent_repair"),fAt=({slug:e,action:t})=>{let n=t.synthesized_stages||[],r=t.phase_regressed||!1,i=t.message||"";return v7n.renderString(R7n,{slug:e,message:i,synthesizedStages:n,phaseWasRegressed:r})}});function k7n(e,t){return[`You are the \`${t}\` intent-completion reviewer for intent \`${e}\`.`,"","## Mandate (fallback \u2014 no studio-configured mandate file was found)","",`1. Read every stage's \`outputs/\` and \`elaboration.md\` under \`.haiku/intents/${e}/stages/\`.`,`2. Read the intent body at \`.haiku/intents/${e}/intent.md\`.`,"3. Judge the intent-as-a-whole: work that contradicts another stage's output, missing coverage of an acceptance criterion across all stages, any cross-stage inconsistency (terminology, scope, technical choices).",`4. For each finding, file \`haiku_feedback\` with \`intent: "${e}"\` (omit \`stage\`), \`origin: "agent"\`, \`author: "${t}"\`, and a body that quotes the artifact you're flagging. ALSO file one against the studio noting the missing mandate file at \`plugin/studios//intent-review-agents/${t}.md\`.`,'5. When done, return your verdict in one paragraph: which findings you filed (by FB-NN), or "no findings".',"","Do NOT modify any artifact files. Reviewer role, not fixer."].join(` +`)}function I7n(e,t,n){let r=A7n[n],i="",s;if(r){let c=k6.renderString(r,{slug:e}).trim();i=`**Read** \`${Eb({intent:e,kind:"engine-body",name:n,body:c})}\``}else{let c=Mh(t,void 0,n);c&&(i=kr({resolveBody:()=>c,toolName:"haiku_read_review_agent",toolArgs:{studio:t,role:n},intent:e,kind:"mandate",name:n}),s=ju({mandatePath:gg(t)[n],studio:t}))}let o=i?k6.renderString(w7n,{slug:e,role:n,mandateRef:i,doctrineRef:MT.has(n)?bs("runtime-verification"):"",prInteraction:eL.has(n),existingFeedback:MI(e,""),decisions:DI(e)}):k7n(e,n);return{dispatchBlock:Ti({unit:"review",hat:n,bolt:1,intent:e,agentType:"general-purpose",model:s,promptBody:o,heading:`### Subagent: \`${n}\``,omitBolt:!0}),isEngine:!!r}}var A7n,k6,hAt,w7n,mAt,gAt=v(()=>{"use strict";gt();Kn();vl();ts();ht();Uh();Rt();A7n={spec:ie("@canon:intent/review/intent_review","engine-bodies/spec.eta.md"),continuity:ie("@canon:intent/review/intent_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:intent/review/intent_review","engine-bodies/cross_stage_consistency.eta.md")},k6=new _e({autoEscape:!1,useWith:!0}),hAt=ie("@canon:intent/review/intent_review"),w7n=ie("@canon:intent/review/intent_review","subagent.eta.md");mAt=({slug:e,studio:t,action:n})=>{let r=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||""}];if(r.length===1&&r[0]?.role==="user")return k6.renderString(hAt,{slug:e,role:"user",roles:["user"],dispatchCount:1,mandatePath:"",dispatchBlock:"",isEngineRole:!1,description:""});let i=r.map(o=>I7n(e,t,o.role)),s=i.map(o=>o.dispatchBlock).join(` -`);return w6.renderString(hAt,{slug:e,role:r[0]?.role??"",roles:r.map(o=>o.role),dispatchCount:r.length,mandatePath:s,dispatchBlock:s,isEngineRole:i[0]?.isEngine??!1,description:""})}});var x7n,O7n,yAt,SAt=v(()=>{"use strict";gt();ht();Rt();x7n=new _e({autoEscape:!1,useWith:!0}),O7n=ie("@canon:intent/seal/intent_approved"),yAt=({slug:e})=>x7n.renderString(O7n,{slug:e})});var P7n,N7n,bAt,EAt=v(()=>{"use strict";gt();yr();Ge();ht();Rt();P7n=new _e({autoEscape:!1,useWith:!0}),N7n=ie("@canon:intent/seal/intent_complete"),bAt=({slug:e})=>{let t=ve(),n=t?Zo():"";return P7n.renderString(N7n,{slug:e,gitMode:t,mainline:n})}});import{existsSync as C7n,readFileSync as M7n}from"node:fs";import{join as D7n}from"node:path";var _At,L7n,U7n,TAt,vAt=v(()=>{"use strict";gt();_At=Re(Kt(),1);ht();Rt();L7n=new _e({autoEscape:!1,useWith:!0}),U7n=ie("@canon:intent/seal/pending_seal"),TAt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=D7n(n,"intent.md");if(C7n(s)){let o=(0,_At.default)(M7n(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return L7n.renderString(U7n,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var F7n,j7n,RAt,AAt=v(()=>{"use strict";gt();ts();ht();Rt();F7n=new _e({autoEscape:!1,useWith:!0}),j7n=ie("@canon:intent/seal/seal_intent"),RAt=({slug:e,dir:t})=>F7n.renderString(j7n,{slug:e,providerBlock:LI("seal_intent",t)})});var H7n,q7n,wAt,kAt=v(()=>{"use strict";gt();ht();Rt();H7n=new _e({autoEscape:!1,useWith:!0}),q7n=ie("@canon:intent/setup/migrated"),wAt=({action:e})=>H7n.renderString(q7n,{message:e.message??""})});var B7n,z7n,IAt,xAt=v(()=>{"use strict";gt();ht();Rt();B7n=new _e({autoEscape:!1,useWith:!0}),z7n=ie("@canon:intent/setup/select_studio"),IAt=({slug:e,action:t})=>{let r=(t.available_studios??[]).map(s=>{let o=s.slug&&s.slug!==s.name?` (\`${s.slug}\`)`:"",a=s.description?` \u2014 ${s.description}`:"";return`- **${s.name}**${o}${a}`}).join(` -`),i=`_(no studios found in the registry \u2014 call \`haiku_select_studio { intent: "${e}" }\` to surface the conversational fallback)_`;return B7n.renderString(z7n,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as G7n,readFileSync as V7n}from"node:fs";import{join as W7n}from"node:path";function J7n(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=W7n(ar(e,t),"units",r);if(!G7n(i))return[];try{let{data:s}=(0,OAt.default)(V7n(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function X7n(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=Z7n[i],a="",c;if(o){let p=TEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${Eb({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:p})}\``}else{a=kr({resolveBody:()=>Mh(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let p=MD(n,r,i);p&&(c=ju({mandatePath:p,studio:n,stage:r}))}let u=r?s.flatMap(p=>J7n(t,r,p)).filter((p,h,m)=>m.indexOf(p)===h):[],l=MT.has(i)?bs("runtime-verification"):"",d=TEe.renderString(Y7n,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,existingFeedback:MI(t,r),decisions:DI(t)});return{dispatchBlock:Ti({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:d,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var OAt,TEe,K7n,Y7n,Z7n,PAt,NAt=v(()=>{"use strict";gt();OAt=Re(Kt(),1);Ge();Kn();vl();ts();ht();Uh();Rt();TEe=new _e({autoEscape:!1,useWith:!0}),K7n=ie("@canon:stage/approve/dispatch_approval"),Y7n=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),Z7n={spec:ie("@canon:stage/approve/dispatch_approval","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/approve/dispatch_approval","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/approve/dispatch_approval","engine-bodies/cross_stage_consistency.eta.md")};PAt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>X7n({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`);return k6.renderString(hAt,{slug:e,role:r[0]?.role??"",roles:r.map(o=>o.role),dispatchCount:r.length,mandatePath:s,dispatchBlock:s,isEngineRole:i[0]?.isEngine??!1,description:""})}});var x7n,O7n,yAt,SAt=v(()=>{"use strict";gt();ht();Rt();x7n=new _e({autoEscape:!1,useWith:!0}),O7n=ie("@canon:intent/seal/intent_approved"),yAt=({slug:e})=>x7n.renderString(O7n,{slug:e})});var P7n,N7n,bAt,EAt=v(()=>{"use strict";gt();yr();Ge();ht();Rt();P7n=new _e({autoEscape:!1,useWith:!0}),N7n=ie("@canon:intent/seal/intent_complete"),bAt=({slug:e})=>{let t=ve(),n=t?Zo():"";return P7n.renderString(N7n,{slug:e,gitMode:t,mainline:n})}});import{existsSync as C7n,readFileSync as M7n}from"node:fs";import{join as D7n}from"node:path";var _At,L7n,U7n,TAt,vAt=v(()=>{"use strict";gt();_At=Re(Kt(),1);ht();Rt();L7n=new _e({autoEscape:!1,useWith:!0}),U7n=ie("@canon:intent/seal/pending_seal"),TAt=({slug:e,action:t,dir:n})=>{let r=t.default_branch||"the default branch",i="";try{let s=D7n(n,"intent.md");if(C7n(s)){let o=(0,_At.default)(M7n(s,"utf8")).data;typeof o.draft_pr_url=="string"&&(i=o.draft_pr_url)}}catch{}return L7n.renderString(U7n,{slug:e,defaultBranch:r,prUrl:i,intentMain:`haiku/${e}/main`})}});var F7n,j7n,RAt,AAt=v(()=>{"use strict";gt();ts();ht();Rt();F7n=new _e({autoEscape:!1,useWith:!0}),j7n=ie("@canon:intent/seal/seal_intent"),RAt=({slug:e,dir:t})=>F7n.renderString(j7n,{slug:e,providerBlock:LI("seal_intent",t)})});var H7n,q7n,wAt,kAt=v(()=>{"use strict";gt();ht();Rt();H7n=new _e({autoEscape:!1,useWith:!0}),q7n=ie("@canon:intent/setup/migrated"),wAt=({action:e})=>H7n.renderString(q7n,{message:e.message??""})});var B7n,z7n,IAt,xAt=v(()=>{"use strict";gt();ht();Rt();B7n=new _e({autoEscape:!1,useWith:!0}),z7n=ie("@canon:intent/setup/select_studio"),IAt=({slug:e,action:t})=>{let r=(t.available_studios??[]).map(s=>{let o=s.slug&&s.slug!==s.name?` (\`${s.slug}\`)`:"",a=s.description?` \u2014 ${s.description}`:"";return`- **${s.name}**${o}${a}`}).join(` +`),i=`_(no studios found in the registry \u2014 call \`haiku_select_studio { intent: "${e}" }\` to surface the conversational fallback)_`;return B7n.renderString(z7n,{slug:e,studioListing:r,emptyFallback:i})}});import{existsSync as G7n,readFileSync as V7n}from"node:fs";import{join as W7n}from"node:path";function J7n(e,t,n){let r=n.endsWith(".md")?n:`${n}.md`,i=W7n(ar(e,t),"units",r);if(!G7n(i))return[];try{let{data:s}=(0,OAt.default)(V7n(i,"utf8")),o=s.outputs;return Array.isArray(o)?o.filter(a=>typeof a=="string"):[]}catch{return[]}}function X7n(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=Z7n[i],a="",c;if(o){let p=vEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${Eb({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:p})}\``}else{a=kr({resolveBody:()=>Mh(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let p=DD(n,r,i);p&&(c=ju({mandatePath:p,studio:n,stage:r}))}let u=r?s.flatMap(p=>J7n(t,r,p)).filter((p,h,m)=>m.indexOf(p)===h):[],l=MT.has(i)?bs("runtime-verification"):"",d=vEe.renderString(Y7n,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,outputPaths:u,doctrineRef:l,existingFeedback:MI(t,r),decisions:DI(t)});return{dispatchBlock:Ti({unit:`approval-${i}`,hat:"approval",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:d,heading:`### Subagent: \`${i}\` (post-execute approval)`,omitBolt:!0}),isEngineRole:o!==void 0}}var OAt,vEe,K7n,Y7n,Z7n,PAt,NAt=v(()=>{"use strict";gt();OAt=Re(Kt(),1);Ge();Kn();vl();ts();ht();Uh();Rt();vEe=new _e({autoEscape:!1,useWith:!0}),K7n=ie("@canon:stage/approve/dispatch_approval"),Y7n=ie("@canon:stage/approve/dispatch_approval","subagent.eta.md"),Z7n={spec:ie("@canon:stage/approve/dispatch_approval","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/approve/dispatch_approval","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/approve/dispatch_approval","engine-bodies/cross_stage_consistency.eta.md")};PAt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>X7n({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` -`),a=[...new Set(i.flatMap(c=>c.units))];return TEe.renderString(K7n,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var Q7n,$7n,CAt,MAt=v(()=>{"use strict";gt();ht();Rt();Q7n=new _e({autoEscape:!1,useWith:!0}),$7n=ie("@canon:stage/approve/dispatch_quality_gates"),CAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return Q7n.renderString($7n,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var eJn,tJn,DAt,LAt=v(()=>{"use strict";gt();ht();Rt();eJn=new _e({autoEscape:!1,useWith:!0}),tJn=ie("@canon:stage/complete/advance_phase"),DAt=({slug:e,action:t})=>{let n=t.to_phase;return eJn.renderString(tJn,{slug:e,toPhase:n})}});var nJn,rJn,UAt,FAt=v(()=>{"use strict";gt();ht();Rt();nJn=new _e({autoEscape:!1,useWith:!0}),rJn=ie("@canon:stage/complete/advance_stage"),UAt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return nJn.renderString(rJn,{slug:e,stage:n,nextStage:r})}});var iJn,sJn,jAt,HAt=v(()=>{"use strict";gt();ts();ht();Rt();iJn=new _e({autoEscape:!1,useWith:!0}),sJn=ie("@canon:stage/complete/complete_stage"),jAt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return iJn.renderString(sJn,{slug:e,stage:r,providerBlock:LI("complete_stage",n)})}});var oJn,aJn,qAt,BAt=v(()=>{"use strict";gt();ht();Rt();oJn=new _e({autoEscape:!1,useWith:!0}),aJn=ie("@canon:stage/complete/record_observations"),qAt=({slug:e,action:t})=>{let n=t.stage||"";return oJn.renderString(aJn,{slug:e,stage:n})}});import{execFileSync as cJn,execSync as zAt}from"node:child_process";import{existsSync as _c,readdirSync as op,readFileSync as k6,statSync as uJn}from"node:fs";import{join as br,resolve as lJn}from"node:path";function J1(e){if(!_c(e))return{};let t=k6(e,"utf8"),{data:n}=re(t);return n}function GAt(e,t,n){let r=nn();for(let i of[br(process.cwd(),".haiku","studios"),br(r,"studios")]){let s=br(i,n,"stages",t,"outputs");if(!_c(s))continue;let o=op(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=k6(br(s,c),"utf8"),{data:l}=(0,vEe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=br(process.cwd(),p);p.endsWith("/")?(!_c(h)||op(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):_c(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"outputs_missing",intent:e,stage:t,missing:a,message:`Cannot advance to review: ${a.length} required output(s) not found. +`),a=[...new Set(i.flatMap(c=>c.units))];return vEe.renderString(K7n,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var Q7n,$7n,CAt,MAt=v(()=>{"use strict";gt();ht();Rt();Q7n=new _e({autoEscape:!1,useWith:!0}),$7n=ie("@canon:stage/approve/dispatch_quality_gates"),CAt=({slug:e,action:t})=>{let n=t.stage||"",r=t.units||[],s=(t.scope||"")==="intent"||n==="";return Q7n.renderString($7n,{slug:e,stage:n,units:r,unitCount:r.length,unitsJson:JSON.stringify(r),intentScope:s})}});var eJn,tJn,DAt,LAt=v(()=>{"use strict";gt();ht();Rt();eJn=new _e({autoEscape:!1,useWith:!0}),tJn=ie("@canon:stage/complete/advance_phase"),DAt=({slug:e,action:t})=>{let n=t.to_phase;return eJn.renderString(tJn,{slug:e,toPhase:n})}});var nJn,rJn,UAt,FAt=v(()=>{"use strict";gt();ht();Rt();nJn=new _e({autoEscape:!1,useWith:!0}),rJn=ie("@canon:stage/complete/advance_stage"),UAt=({slug:e,action:t})=>{let n=t.stage,r=t.next_stage;return nJn.renderString(rJn,{slug:e,stage:n,nextStage:r})}});var iJn,sJn,jAt,HAt=v(()=>{"use strict";gt();ts();ht();Rt();iJn=new _e({autoEscape:!1,useWith:!0}),sJn=ie("@canon:stage/complete/complete_stage"),jAt=({slug:e,action:t,dir:n})=>{let r=t.stage||"";return iJn.renderString(sJn,{slug:e,stage:r,providerBlock:LI("complete_stage",n)})}});var oJn,aJn,qAt,BAt=v(()=>{"use strict";gt();ht();Rt();oJn=new _e({autoEscape:!1,useWith:!0}),aJn=ie("@canon:stage/complete/record_observations"),qAt=({slug:e,action:t})=>{let n=t.stage||"";return oJn.renderString(aJn,{slug:e,stage:n})}});import{execFileSync as cJn,execSync as zAt}from"node:child_process";import{existsSync as _c,readdirSync as op,readFileSync as I6,statSync as uJn}from"node:fs";import{join as br,resolve as lJn}from"node:path";function Q1(e){if(!_c(e))return{};let t=I6(e,"utf8"),{data:n}=re(t);return n}function GAt(e,t,n){let r=nn();for(let i of[br(process.cwd(),".haiku","studios"),br(r,"studios")]){let s=br(i,n,"stages",t,"outputs");if(!_c(s))continue;let o=op(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=I6(br(s,c),"utf8"),{data:l}=(0,REe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=br(process.cwd(),p);p.endsWith("/")?(!_c(h)||op(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):_c(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"outputs_missing",intent:e,stage:t,missing:a,message:`Cannot advance to review: ${a.length} required output(s) not found. ${a.map(c=>`- ${c.name}: expected at ${c.location}`).join(` `)} -The execution phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function I6(e,t,n){let r=[],i=n.annotations;if(i?.pins)for(let s of i.pins){if(!s.text)continue;let o=s.text.length>120?`${s.text.slice(0,117)}...`:s.text,a=Qo(e,t,{title:o,body:s.text,origin:"user-visual",author:"user",source_ref:`pin:${s.x},${s.y}`});r.push(a.feedback_id)}if(i?.comments)for(let s of i.comments){if(!s.comment)continue;let o=s.comment.length>120?`${s.comment.slice(0,117)}...`:s.comment,a=s.selectedText?s.selectedText.split(` +The execution phase must produce these artifacts. Go back and create them, then call haiku_run_next again.`};break}return null}function x6(e,t,n){let r=[],i=n.annotations;if(i?.pins)for(let s of i.pins){if(!s.text)continue;let o=s.text.length>120?`${s.text.slice(0,117)}...`:s.text,a=Qo(e,t,{title:o,body:s.text,origin:"user-visual",author:"user",source_ref:`pin:${s.x},${s.y}`});r.push(a.feedback_id)}if(i?.comments)for(let s of i.comments){if(!s.comment)continue;let o=s.comment.length>120?`${s.comment.slice(0,117)}...`:s.comment,a=s.selectedText?s.selectedText.split(` `).map(p=>`> ${p}`).join(` `):"",u=[s.location?`**Location:** \`${s.location}\` (paragraph ${s.paragraph})`:`**Location:** paragraph ${s.paragraph}`];a&&u.push("","**Selected text:**","",a),u.push("","**Comment:**","",s.comment);let l=u.join(` -`),d=s.location?`${s.location}:paragraph=${s.paragraph}`:`paragraph:${s.paragraph}`,f=Qo(e,t,{title:o,body:l,origin:"user-visual",author:"user",source_ref:d});r.push(f.feedback_id)}if(n.feedback?.trim()){let s=n.feedback.trim(),o=s.length>120?`${s.slice(0,117)}...`:s,a=Qo(e,t,{title:o,body:s,origin:"user-chat",author:"user"});r.push(a.feedback_id)}return r.length>0&&wt(t?`feedback: create ${r.join(", ")} from review UI in ${t}`:`feedback: create ${r.join(", ")} from review UI (intent-scope)`),r}function gx(e,t,n="## Output Requirements",r){let s=no(e,t).filter(a=>a.kind==="output");if(s.length===0)return"";let o=[n,"Read the template for each artifact you're expected to produce:",""];for(let a of s){let c=`**${a.name}**${a.required?" (REQUIRED)":""} \u2014 location: \`${a.location}\`, format: ${a.format}`;if(r){let u=kr({resolveBody:()=>WK(e,t,a.name),toolName:"haiku_read_output",toolArgs:{studio:e,stage:t,name:a.name},intent:r,stage:t,kind:"output",name:a.name});o.push(`- ${c} | ${u}`)}else{let u=Ff(br(e,"stages",t,"outputs",`${a.name}.md`)),l=u?` | **Template:** \`${u}\``:"";o.push(`- ${c}${l}`)}}return o.join(` -`)}function VAt(e,t,n){let r=nn();for(let i of[br(process.cwd(),".haiku","studios"),br(r,"studios")]){let s=br(i,n,"stages",t,"discovery");if(!_c(s))continue;let o=op(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=k6(br(s,c),"utf8"),{data:l}=(0,vEe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=br(process.cwd(),p);p.endsWith("/")?(!_c(h)||op(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):_c(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"discovery_missing",intent:e,stage:t,missing:a,message:`Cannot advance to execution: ${a.length} required discovery artifact(s) not found. +`),d=s.location?`${s.location}:paragraph=${s.paragraph}`:`paragraph:${s.paragraph}`,f=Qo(e,t,{title:o,body:l,origin:"user-visual",author:"user",source_ref:d});r.push(f.feedback_id)}if(n.feedback?.trim()){let s=n.feedback.trim(),o=s.length>120?`${s.slice(0,117)}...`:s,a=Qo(e,t,{title:o,body:s,origin:"user-chat",author:"user"});r.push(a.feedback_id)}return r.length>0&&wt(t?`feedback: create ${r.join(", ")} from review UI in ${t}`:`feedback: create ${r.join(", ")} from review UI (intent-scope)`),r}function yx(e,t,n="## Output Requirements",r){let s=no(e,t).filter(a=>a.kind==="output");if(s.length===0)return"";let o=[n,"Read the template for each artifact you're expected to produce:",""];for(let a of s){let c=`**${a.name}**${a.required?" (REQUIRED)":""} \u2014 location: \`${a.location}\`, format: ${a.format}`;if(r){let u=kr({resolveBody:()=>YK(e,t,a.name),toolName:"haiku_read_output",toolArgs:{studio:e,stage:t,name:a.name},intent:r,stage:t,kind:"output",name:a.name});o.push(`- ${c} | ${u}`)}else{let u=Ff(br(e,"stages",t,"outputs",`${a.name}.md`)),l=u?` | **Template:** \`${u}\``:"";o.push(`- ${c}${l}`)}}return o.join(` +`)}function VAt(e,t,n){let r=nn();for(let i of[br(process.cwd(),".haiku","studios"),br(r,"studios")]){let s=br(i,n,"stages",t,"discovery");if(!_c(s))continue;let o=op(s).filter(c=>c.endsWith(".md")),a=[];for(let c of o){let u=I6(br(s,c),"utf8"),{data:l}=(0,REe.default)(u);if(!(l.required!==!1))continue;let f=l.location||"";if(!f||f.startsWith("("))continue;let p=f.replace("{intent-slug}",e),h=br(process.cwd(),p);p.endsWith("/")?(!_c(h)||op(h).filter(m=>m!==".gitkeep").length===0)&&a.push({name:l.name||c,location:p}):_c(h)||a.push({name:l.name||c,location:p})}if(a.length>0)return{action:"discovery_missing",intent:e,stage:t,missing:a,message:`Cannot advance to execution: ${a.length} required discovery artifact(s) not found. ${a.map(c=>`- ${c.name}: expected at ${c.location}`).join(` `)} @@ -1010,7 +1010,7 @@ The elaboration phase must produce these artifacts. Go back and create them, the ${i.map(a=>`- \`${a.file}\`: ${a.issue}`).join(` `)} -Rename the files to match the convention, then call \`haiku_run_next { intent: "${o}" }\` again.`}}return null}function KAt(e,t){let n=br(e,"stages",t,"units");if(!_c(n))return null;let r=op(n).filter(s=>s.endsWith(".md"));if(r.length===0)return null;let i=[];for(let s of r){let o=J1(br(n,s)),a=o.status||"";if(["complete","skipped","failed"].includes(a))continue;(o.inputs||o.refs||[]).length===0&&i.push(s.replace(/\.md$/,""))}if(i.length>0){let s=e.split("/intents/")[1]||"";return{action:"unit_inputs_missing",intent:s,stage:t,missing_units:i,message:`Cannot advance to execution: ${i.length} unit(s) have no \`inputs:\` field. +Rename the files to match the convention, then call \`haiku_run_next { intent: "${o}" }\` again.`}}return null}function KAt(e,t){let n=br(e,"stages",t,"units");if(!_c(n))return null;let r=op(n).filter(s=>s.endsWith(".md"));if(r.length===0)return null;let i=[];for(let s of r){let o=Q1(br(n,s)),a=o.status||"";if(["complete","skipped","failed"].includes(a))continue;(o.inputs||o.refs||[]).length===0&&i.push(s.replace(/\.md$/,""))}if(i.length>0){let s=e.split("/intents/")[1]||"";return{action:"unit_inputs_missing",intent:s,stage:t,missing_units:i,message:`Cannot advance to execution: ${i.length} unit(s) have no \`inputs:\` field. Every unit MUST declare its inputs \u2014 the upstream artifacts, knowledge docs, and prior-stage outputs it references. At minimum, include the intent document and discovery docs. @@ -1018,7 +1018,7 @@ Units missing inputs: ${i.map(o=>`- ${o}`).join(` `)} -Add \`inputs:\` to each unit's frontmatter with paths relative to the intent directory (e.g., \`knowledge/DISCOVERY.md\`, \`stages/design/DESIGN-BRIEF.md\`), then call \`haiku_run_next { intent: "${s}" }\` again.`}}return null}function YAt(e){let t=br(e,"coverage-decisions.json");if(!_c(t))return new Set;try{let n=JSON.parse(k6(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function pJn(e,t){let n=[];for(let r of fJn){let i=br(e,r);if(!_c(i))continue;let s=[""];for(;s.length>0;){let o=s.pop(),a=br(i,o),c;try{c=op(a)}catch{continue}for(let u of c){let l=o?`${o}/${u}`:u,d=br(a,u);try{let f=uJn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function hJn(e){if(!_c(e))return[];let t=[];for(let n of op(e)){if(!n.endsWith(".md"))continue;let i=J1(br(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function mJn(e){let t=new Set;if(!_c(e))return t;for(let n of op(e)){if(!n.endsWith(".md"))continue;let r=J1(br(e,n)),i=r.inputs||r.refs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.add(s.trim())}return t}function ZAt(e,t,n){if(n.length===0)return null;let r=br(e,"stages",t,"units"),i=mJn(r),s=YAt(br(e,"stages",t)),o=[],a=new Set;for(let u of n){let l=br(e,"stages",u);if(!_c(l))continue;let d=`stages/${u}`,f=hJn(br(l,"units")),p=pJn(l,d);for(let h of[...f,...p])a.has(h)||(a.add(h),!i.has(h)&&(s.has(h)||o.push({path:h,from_stage:u})))}if(o.length===0)return null;let c=e.split("/intents/")[1]||"";return{action:"coverage_review_required",intent:c,stage:t,unreferenced:o,message:`Cannot advance past elaborate: ${o.length} prior-stage output(s) are not referenced by any unit's \`inputs:\` in stage '${t}' AND have no entry in \`stages/${t}/coverage-decisions.json\`. Continuity contract: downstream stages must cover upstream deliverables. +Add \`inputs:\` to each unit's frontmatter with paths relative to the intent directory (e.g., \`knowledge/DISCOVERY.md\`, \`stages/design/DESIGN-BRIEF.md\`), then call \`haiku_run_next { intent: "${s}" }\` again.`}}return null}function YAt(e){let t=br(e,"coverage-decisions.json");if(!_c(t))return new Set;try{let n=JSON.parse(I6(t,"utf8")),r=new Set;for(let i of n.decisions??[])i?.path&&r.add(i.path);return r}catch{return new Set}}function pJn(e,t){let n=[];for(let r of fJn){let i=br(e,r);if(!_c(i))continue;let s=[""];for(;s.length>0;){let o=s.pop(),a=br(i,o),c;try{c=op(a)}catch{continue}for(let u of c){let l=o?`${o}/${u}`:u,d=br(a,u);try{let f=uJn(d);f.isDirectory()?s.push(l):f.isFile()&&n.push(`${t}/${r}/${l}`)}catch{}}}}return n}function hJn(e){if(!_c(e))return[];let t=[];for(let n of op(e)){if(!n.endsWith(".md"))continue;let i=Q1(br(e,n)).outputs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.push(s.trim())}return t}function mJn(e){let t=new Set;if(!_c(e))return t;for(let n of op(e)){if(!n.endsWith(".md"))continue;let r=Q1(br(e,n)),i=r.inputs||r.refs||[];for(let s of i)typeof s=="string"&&s.trim()!==""&&t.add(s.trim())}return t}function ZAt(e,t,n){if(n.length===0)return null;let r=br(e,"stages",t,"units"),i=mJn(r),s=YAt(br(e,"stages",t)),o=[],a=new Set;for(let u of n){let l=br(e,"stages",u);if(!_c(l))continue;let d=`stages/${u}`,f=hJn(br(l,"units")),p=pJn(l,d);for(let h of[...f,...p])a.has(h)||(a.add(h),!i.has(h)&&(s.has(h)||o.push({path:h,from_stage:u})))}if(o.length===0)return null;let c=e.split("/intents/")[1]||"";return{action:"coverage_review_required",intent:c,stage:t,unreferenced:o,message:`Cannot advance past elaborate: ${o.length} prior-stage output(s) are not referenced by any unit's \`inputs:\` in stage '${t}' AND have no entry in \`stages/${t}/coverage-decisions.json\`. Continuity contract: downstream stages must cover upstream deliverables. For each unreferenced file, EITHER: (a) Call \`haiku_unit_set { intent: "${c}", stage: "${t}", unit: "", field: "inputs", value: [...existing, ""] }\` to add it to a unit's inputs (the canonical path). @@ -1029,7 +1029,7 @@ ${o.map(u=>`- \`${u.path}\` (from stage '${u.from_stage}')`).join(` `)} After resolving each, call \`haiku_run_next { intent: "${c}" }\` to re-run the validator.`}}function SJn(e){return!(!gJn.test(e)||yJn.test(e))}function bJn(e){let t=e.replace(/^.*\//,""),n=t.lastIndexOf(".");return n>0?t.slice(0,n):t}function EJn(e){return e.startsWith(".haiku/")}function _Jn(e,t,n){if(t===""||t.length<2)return[];try{return cJn("git",["grep","-lw","--",t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).split(` -`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!EJn(i))}catch{return[]}}function JAt(e,t,n){if(t.length===0)return null;let r=[],i=new Set;for(let c of t){let u=br(e,"stages",c,"units");if(_c(u))for(let l of op(u)){if(!l.endsWith(".md"))continue;let f=J1(br(u,l)).outputs||[];for(let p of f)typeof p!="string"||!SJn(p)||i.has(p)||(i.add(p),r.push({path:p,from_stage:c,from_unit:l.replace(/\.md$/,"")}))}}if(r.length===0)return null;let s=new Set;for(let c of t){let u=YAt(br(e,"stages",c));for(let l of u)s.add(l)}let o=[];for(let c of r){if(s.has(c.path))continue;let u=bJn(c.path);_Jn(n,u,c.path).length===0&&o.push(c)}if(o.length===0)return null;let a=e.split("/intents/")[1]||"";return{action:"output_liveness_review_required",intent:a,orphans:o,message:`Cannot advance to intent-completion review: ${o.length} code-output(s) shipped by units across this intent's stages have NO referencers anywhere in the repo. The continuity contract requires every code deliverable to be imported, rendered, or otherwise wired in by some other file. Files defined but never rendered are invisible to the user \u2014 the methodology promise breaks. +`).map(i=>i.trim()).filter(i=>i!==""&&i!==n&&!EJn(i))}catch{return[]}}function JAt(e,t,n){if(t.length===0)return null;let r=[],i=new Set;for(let c of t){let u=br(e,"stages",c,"units");if(_c(u))for(let l of op(u)){if(!l.endsWith(".md"))continue;let f=Q1(br(u,l)).outputs||[];for(let p of f)typeof p!="string"||!SJn(p)||i.has(p)||(i.add(p),r.push({path:p,from_stage:c,from_unit:l.replace(/\.md$/,"")}))}}if(r.length===0)return null;let s=new Set;for(let c of t){let u=YAt(br(e,"stages",c));for(let l of u)s.add(l)}let o=[];for(let c of r){if(s.has(c.path))continue;let u=bJn(c.path);_Jn(n,u,c.path).length===0&&o.push(c)}if(o.length===0)return null;let a=e.split("/intents/")[1]||"";return{action:"output_liveness_review_required",intent:a,orphans:o,message:`Cannot advance to intent-completion review: ${o.length} code-output(s) shipped by units across this intent's stages have NO referencers anywhere in the repo. The continuity contract requires every code deliverable to be imported, rendered, or otherwise wired in by some other file. Files defined but never rendered are invisible to the user \u2014 the methodology promise breaks. For each orphan, EITHER: (a) Author a unit (or extend an existing unit) that integrates the output \u2014 typically importing the component into a parent screen, registering a route, or calling the function from a reachable code path. The integration code's diff lands as a new commit on the intent main branch. @@ -1039,16 +1039,16 @@ Orphan outputs: ${o.map(c=>`- \`${c.path}\` (declared by ${c.from_unit} in stage '${c.from_stage}')`).join(` `)} -After resolving each, call \`haiku_run_next { intent: "${a}" }\` to re-run the validator.`}}function XAt(e,t){let n=Te(),r=br(n,"intents",e),i=br(r,"intent.md"),s;try{s=zAt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=J1(p);return(Array.isArray(h.quality_gates)?h.quality_gates:[]).filter(g=>!!g?.command).map(g=>({name:g.name??"",command:g.command,dir:g.dir??""}))}let a=o(i),c=br(r,"stages",t,"units");if(_c(c))for(let p of op(c).filter(h=>h.startsWith("unit-")&&h.endsWith(".md")))a.push(...o(br(c,p)));let u=new Set,l=a.filter(p=>{let h=`${p.command}::${p.dir}`;return u.has(h)?!1:(u.add(h),!0)}),d=(()=>{let p=process.env.HAIKU_QUALITY_GATE_TIMEOUT_MS,h=p?Number.parseInt(p,10):NaN;return Number.isFinite(h)&&h>0?h:12e4})(),f=[];for(let p=0;p{"use strict";vEe=Re(Kt(),1);Ci();Ge();Kn();ts();ns();dJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;fJn=["artifacts","outputs","knowledge","discovery"];gJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,yJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as Vg,mkdirSync as TJn,readdirSync as vJn,readFileSync as ewt,renameSync as RJn}from"node:fs";import{dirname as AJn,join as tu}from"node:path";function QAt(e){if(!Vg(e))return{};let t=ewt(e,"utf8"),{data:n}=re(t);return n}function REe(e,t,n,r){let i=rft(Tl(e,t),tu(n,"stages",t,"artifacts"),{studio:e,stage:t}),s=Object.keys(i).sort();if(s.length===0)return null;let o=s.map(a=>{let c=a.split(/[-_]/).map(l=>l.length===0?l:l[0].toUpperCase()+l.slice(1)).join(" "),u=kr({resolveBody:()=>Mh(e,t,a),toolName:"haiku_read_review_agent",toolArgs:{studio:e,stage:t,role:a},intent:r,stage:t,kind:"review-agent",name:a});return`- **${c}** \u2014 ${u}`});return[kJn,"",...o].join(` -`).trimEnd()}function $At(){let e=K0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return yx.renderString(HJn,{preamble:IJn,skillLines:t})}function qJn(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=$i(n,s),c=UI(i)==="autopilot",u=c?"autonomous":o?.data?.elaboration||"collaborative",l=r.iteration||r.visits||0,d=r.completed_units||[],f=r.pending_units||[],p=!!r.iterative,h=r.pending_feedback||[],m=r.validation_error,g=e.composedMode===!0,y=[];if(p){if(g||y.push(`## Iterative Re-Entry: ${s} (iteration #${l})`),o&&y.push(`${o.body}`),y.push("You're re-entering this stage with prior work already landed on the stage branch. **Completed units below are knowledge** \u2014 their artifacts are part of the current stage baseline and must NOT be re-done or modified. Your job is to decide whether this iteration of the intent needs new work, and if so, draft new units for it."),d.length>0){let Q=["### Completed Units (knowledge \u2014 read-only)",""];for(let B of d){let F=tu(i,"stages",s,"units",`${B}.md`);if(!Vg(F)){Q.push(`- **${B}** \u2014 _(file missing)_`);continue}let V=QAt(F),U=V.title||B,M=V.hat||"",H=Array.isArray(V.outputs)?V.outputs:[],j=[`- **${B}** \u2014 ${U}`,M?` - hat: \`${M}\``:null,H.length>0?` - outputs: ${H.map(Y=>`\`${Y}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${B}.md\``].filter(Boolean).join(` +After resolving each, call \`haiku_run_next { intent: "${a}" }\` to re-run the validator.`}}function XAt(e,t){let n=Te(),r=br(n,"intents",e),i=br(r,"intent.md"),s;try{s=zAt("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{s=process.cwd()}function o(p){let h=Q1(p);return(Array.isArray(h.quality_gates)?h.quality_gates:[]).filter(g=>!!g?.command).map(g=>({name:g.name??"",command:g.command,dir:g.dir??""}))}let a=o(i),c=br(r,"stages",t,"units");if(_c(c))for(let p of op(c).filter(h=>h.startsWith("unit-")&&h.endsWith(".md")))a.push(...o(br(c,p)));let u=new Set,l=a.filter(p=>{let h=`${p.command}::${p.dir}`;return u.has(h)?!1:(u.add(h),!0)}),d=(()=>{let p=process.env.HAIKU_QUALITY_GATE_TIMEOUT_MS,h=p?Number.parseInt(p,10):NaN;return Number.isFinite(h)&&h>0?h:12e4})(),f=[];for(let p=0;p{"use strict";REe=Re(Kt(),1);Ci();Ge();Kn();ts();ns();dJn=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;fJn=["artifacts","outputs","knowledge","discovery"];gJn=/\.(ts|tsx|js|jsx|mjs|cjs)$/i,yJn=/\.(test|spec)\.[a-z]+$|\/__tests__\/|\/test\//i});import{existsSync as Vg,mkdirSync as TJn,readdirSync as vJn,readFileSync as ewt,renameSync as RJn}from"node:fs";import{dirname as AJn,join as tu}from"node:path";function QAt(e){if(!Vg(e))return{};let t=ewt(e,"utf8"),{data:n}=re(t);return n}function AEe(e,t,n,r){let i=ift(Tl(e,t),tu(n,"stages",t,"artifacts"),{studio:e,stage:t}),s=Object.keys(i).sort();if(s.length===0)return null;let o=s.map(a=>{let c=a.split(/[-_]/).map(l=>l.length===0?l:l[0].toUpperCase()+l.slice(1)).join(" "),u=kr({resolveBody:()=>Mh(e,t,a),toolName:"haiku_read_review_agent",toolArgs:{studio:e,stage:t,role:a},intent:r,stage:t,kind:"review-agent",name:a});return`- **${c}** \u2014 ${u}`});return[kJn,"",...o].join(` +`).trimEnd()}function $At(){let e=Y0();if(e.length===0)return null;let t=e.map(n=>{let r=n.description?` \u2014 ${n.description}`:"";return`- \`/${n.slug}\`${r}`});return Sx.renderString(HJn,{preamble:IJn,skillLines:t})}function qJn(e){let{slug:t,studio:n,action:r,dir:i}=e,s=r.stage,o=$i(n,s),c=UI(i)==="autopilot",u=c?"autonomous":o?.data?.elaboration||"collaborative",l=r.iteration||r.visits||0,d=r.completed_units||[],f=r.pending_units||[],p=!!r.iterative,h=r.pending_feedback||[],m=r.validation_error,g=e.composedMode===!0,y=[];if(p){if(g||y.push(`## Iterative Re-Entry: ${s} (iteration #${l})`),o&&y.push(`${o.body}`),y.push("You're re-entering this stage with prior work already landed on the stage branch. **Completed units below are knowledge** \u2014 their artifacts are part of the current stage baseline and must NOT be re-done or modified. Your job is to decide whether this iteration of the intent needs new work, and if so, draft new units for it."),d.length>0){let Q=["### Completed Units (knowledge \u2014 read-only)",""];for(let B of d){let F=tu(i,"stages",s,"units",`${B}.md`);if(!Vg(F)){Q.push(`- **${B}** \u2014 _(file missing)_`);continue}let V=QAt(F),U=V.title||B,M=V.hat||"",H=Array.isArray(V.outputs)?V.outputs:[],j=[`- **${B}** \u2014 ${U}`,M?` - hat: \`${M}\``:null,H.length>0?` - outputs: ${H.map(Y=>`\`${Y}\``).join(", ")}`:null,` - file: \`.haiku/intents/${t}/stages/${s}/units/${B}.md\``].filter(Boolean).join(` `);Q.push(j)}y.push(Q.join(` `))}f.length>0&&y.push(`### Pending Units (targets for this iteration) ${f.map(Q=>`- \`${Q}\``).join(` `)} -These units exist but haven't been executed. If they're still relevant, leave them. Revise their specs if the intent has evolved. Reject individual units by deleting their file (not advised unless clearly obsolete).`),y.push(bs("workflow-contracts-elaborate"));let q=REe(n,s,i,t);return q&&y.push(q),y.push(yx.renderString(wJn,{slug:t})),y.join(` +These units exist but haven't been executed. If they're still relevant, leave them. Revise their specs if the intent has evolved. Reject individual units by deleting their file (not advised unless clearly obsolete).`),y.push(bs("workflow-contracts-elaborate"));let q=AEe(n,s,i,t);return q&&y.push(q),y.push(Sx.renderString(wJn,{slug:t})),y.join(` `)}if(l>1){g||y.push(`## Revisit Elaborate: ${s} (iteration #${l})`),m&&y.push(`### Validation Error @@ -1064,7 +1064,7 @@ ${h.map(B=>`- **${B.feedback_id}** \u2014 ${B.title} - origin: ${B.origin} \xB7 author: ${B.author}`).join(` `)} -You MUST open every file above and read it completely before drafting units. The title is only a handle; the body carries requirements, tests, and acceptance criteria.`);let q=REe(n,s,i,t);q&&y.push(q);let Q=$At();return Q&&y.push(Q),y.push("### Responsibilities\n\n- Read every `pending_feedback[].file` in full before drafting \u2014 the title is only a handle.\n- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.\n- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).\n- Ask the user clarifying questions (`AskUserQuestion` with options[]) when trade-offs are unclear; iterate across turns.\n- When the user approves the drafted units, call `haiku_run_next` to advance.\n\nInputs (read directly \u2014 do not inline summaries, open the actual files):\n- every `pending_feedback[].file` listed above\n- `stage_metadata` (STAGE.md body + review agents)\n- `completed_units` (read-only reference)\n- `intent.md` for overall goals"),y.push(`### Mechanics +You MUST open every file above and read it completely before drafting units. The title is only a handle; the body carries requirements, tests, and acceptance criteria.`);let q=AEe(n,s,i,t);q&&y.push(q);let Q=$At();return Q&&y.push(Q),y.push("### Responsibilities\n\n- Read every `pending_feedback[].file` in full before drafting \u2014 the title is only a handle.\n- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.\n- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).\n- Ask the user clarifying questions (`AskUserQuestion` with options[]) when trade-offs are unclear; iterate across turns.\n- When the user approves the drafted units, call `haiku_run_next` to advance.\n\nInputs (read directly \u2014 do not inline summaries, open the actual files):\n- every `pending_feedback[].file` listed above\n- `stage_metadata` (STAGE.md body + review agents)\n- `completed_units` (read-only reference)\n- `intent.md` for overall goals"),y.push(`### Mechanics 1. Continue the existing file-naming sequence: if the last unit is \`unit-0N-...\`, start new units at \`unit-0(N+1)-...\` (keep the same digit width as existing units in this stage; the engine resolves either width by numeric prefix). 2. Each new unit MUST declare \`closes: [FB-NNN]\` for every feedback id it addresses. @@ -1072,9 +1072,9 @@ You MUST open every file above and read it completely before drafting units. The 4. Use the unit-file naming convention: \`unit-NNN-slug.md\` (kebab-case slug, 3-digit zero-padded number; max 999). 5. Call \`haiku_run_next { intent: "${t}" }\` when done \u2014 the orchestrator re-validates and advances.`),y.join(` -`)}if(g||y.push(`## Elaborate: ${s}`),o&&y.push(`${o.body}`),Vfe(n,s,"ELABORATION")){let q=kr({resolveBody:()=>KK(n,s,"ELABORATION"),toolName:"haiku_read_phase",toolArgs:{studio:n,stage:s,phase:"ELABORATION"},intent:t,stage:s,kind:"phase",name:"ELABORATION"});y.push(`### Phase: Elaboration Override +`)}if(g||y.push(`## Elaborate: ${s}`),o&&y.push(`${o.body}`),Wfe(n,s,"ELABORATION")){let q=kr({resolveBody:()=>ZK(n,s,"ELABORATION"),toolName:"haiku_read_phase",toolArgs:{studio:n,stage:s,phase:"ELABORATION"},intent:t,stage:s,kind:"phase",name:"ELABORATION"});y.push(`### Phase: Elaboration Override -${q}`)}y.push(bs("workflow-contracts-elaborate"));let b=LI("elaborate",i);b&&y.push(b);let S=REe(n,s,i,t);S&&y.push(S);let E=wn(Vg(tu(i,"intent.md"))?QAt(tu(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let q=o.data.inputs,Q=Kpe(q,E),B=ZK(n,Q,i,t),F=B.filter(U=>U.exists),V=B.filter(U=>!U.exists);if(F.length>0){T=F.map(U=>U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath);for(let U of F){let M=U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath;_.push(`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 \`${M}\``)}}V.length>0&&y.push(`## \u26A0 Missing Upstream Artifacts +${q}`)}y.push(bs("workflow-contracts-elaborate"));let b=LI("elaborate",i);b&&y.push(b);let S=AEe(n,s,i,t);S&&y.push(S);let E=wn(Vg(tu(i,"intent.md"))?QAt(tu(i,"intent.md")):{},n),_=[],T=[];if(o?.data?.inputs&&Array.isArray(o.data.inputs)){let q=o.data.inputs,Q=Ype(q,E),B=XK(n,Q,i,t),F=B.filter(U=>U.exists),V=B.filter(U=>!U.exists);if(F.length>0){T=F.map(U=>U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath);for(let U of F){let M=U.resolvedPath.startsWith(`${i}/`)?U.resolvedPath.slice(i.length+1):U.resolvedPath;_.push(`- **${U.stage}/${U.artifactName}** (${U.kind}) \u2014 \`${M}\``)}}V.length>0&&y.push(`## \u26A0 Missing Upstream Artifacts The following inputs are declared but do not exist on disk: @@ -1109,49 +1109,49 @@ ${bs("workflow-contracts-announcement")} ${FI(k.length,"discovery subagents",{forceForeground:c})} -`;for(let H of k){let j=Ape(t,s,H.name),Y=j?H.outputPath?H.outputPath.startsWith(i)?tu(j,".haiku","intents",t,H.outputPath.slice(i.length+1)):H.outputPath.startsWith(process.cwd())?tu(j,H.outputPath.slice(process.cwd().length+1)):H.outputPath:tu(j,".haiku","intents",t,"knowledge",`${H.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>_I(n,s,H.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:H.name},intent:t,stage:s,kind:"discovery-template",name:H.name}),se=yx.renderString(jJn,{artifactName:H.name,slug:t,stage:s,studio:n,worktree:j,branchName:j?xI(t,s,H.name):"",expectedArtifactPath:Y,intentRef:B,stageRef:F,templateRef:ee}),Le=ju({mandatePath:H.templatePath,studio:n,stage:s});V+=`${Ti({unit:"discovery",hat:H.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Le,promptBody:se,heading:`### Subagent: \`${H.name}\``,forceForeground:c,omitBolt:!0})} +`;for(let H of k){let j=wpe(t,s,H.name),Y=j?H.outputPath?H.outputPath.startsWith(i)?tu(j,".haiku","intents",t,H.outputPath.slice(i.length+1)):H.outputPath.startsWith(process.cwd())?tu(j,H.outputPath.slice(process.cwd().length+1)):H.outputPath:tu(j,".haiku","intents",t,"knowledge",`${H.name.toUpperCase()}.md`):null,ee=kr({resolveBody:()=>_I(n,s,H.name),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:s,template:H.name},intent:t,stage:s,kind:"discovery-template",name:H.name}),se=Sx.renderString(jJn,{artifactName:H.name,slug:t,stage:s,studio:n,worktree:j,branchName:j?xI(t,s,H.name):"",expectedArtifactPath:Y,intentRef:B,stageRef:F,templateRef:ee}),Le=ju({mandatePath:H.templatePath,studio:n,stage:s});V+=`${Ti({unit:"discovery",hat:H.name,bolt:1,intent:t,stage:s,agentType:"general-purpose",model:Le,promptBody:se,heading:`### Subagent: \`${H.name}\``,forceForeground:c,omitBolt:!0})} `}let U=Mi().subagents.backgroundSpawn&&!c?' Each `` carries `background="true"` \u2014 pass `run_in_background: true` to the Task tool so the parent thread stays responsive while discovery agents run.':"",M=c?` **You are in autopilot mode \u2014 do NOT yield.** Spawn the subagents in the foreground (the \`\` blocks above carry no \`background\` attribute) and wait for every one to return in this same response. The instant the last subagent returns, call \`haiku_run_next { intent: "${t}" }\` in the SAME response. The next tick emits the unit-decomposition instructions, which you also handle in-turn. Autopilot is a contiguous drive \u2014 pausing across turns defeats the mode.`:` When ALL subagents return, call \`haiku_run_next { intent: "${t}" }\` \u2014 the workflow engine merges their isolation worktrees back into the stage branch (resolving conflicts via the integrator if needed) and then emits the unit-decomposition instructions. **Do NOT proceed to decomposition in this response** \u2014 wait for the next workflow tick so the merged knowledge artifacts are visible.`;return V+=`### Parent Instructions (do NOT include in subagent prompts) Spawn each subagent above using the \`prompt_file\` attribute \u2014 pass \`"Read and execute its instructions exactly."\` as the spawn prompt (substituting the attribute's path). Do NOT include the \`\` block body itself in the spawn prompt.${U}${M}`,y.push(V),g||y.push(Lf("discovery",{slug:t,stage:s})),y.join(` -`)}let P=gx(n,s,`## Stage Output Expectations +`)}let P=yx(n,s,`## Stage Output Expectations -This stage must ultimately produce the following outputs during execution. Plan units accordingly:`,t);P&&y.push(P),o?.data?.produces==="build"&&y.push("## Build-Class Units: Declare Verification\n\nThis is a **build** stage \u2014 every unit that declares `outputs:` MUST also declare a `quality_gates:` field. Pair each produced artifact with the executable check that verifies it (the verify-command pattern in this stage's elaboration guidance). If a unit genuinely defers verification to a sibling test unit, declare an explicit empty list (`quality_gates: []`) \u2014 but the field must be present so the choice is deliberate and reviewable. `haiku_unit_write` will reject a producing unit that omits it.\n\n**Gates that need a live dependency** (a test suite that hits a database, a migration, a check that talks to a queue/cache) only verify something when that dependency is running. Declare the dependency once as a service in `.haiku/boot.md` \u2014 a `processes:` entry with `service: true` and `requires_tool: docker` (e.g. a `docker compose up` Postgres with a `ready_url` health probe). At gate time the engine brings declared services up via the live tool, or \u2014 if the tool isn't available \u2014 escalates to the user. It will NOT advance a gate that couldn't reach its dependency, so a missing service recipe turns into a hold, not a false green. If this project already has a `docker-compose.yml` / `Makefile` the engine can auto-detect it, but a `.haiku/boot.md` service entry is the reproducible declaration.\n\n**Declare real internal services; never mock them.** Internal infrastructure the app owns \u2014 its database, cache, queue, search, object store (Postgres, Redis, Mongo, Elasticsearch, Kafka, \u2026) \u2014 MUST be a real `service:` process in `.haiku/boot.md`; never a mock, in-memory fake, or SQLite stand-in, because a gate that passes against a faked datastore verified nothing about migrations/queries/persistence. Third-party SaaS the app only calls across the network (Stripe, Twilio, SendGrid, vendor LLM/auth APIs) is the opposite: do NOT declare it as a `service:` to run \u2014 stub it or use the vendor sandbox at the app's edge, since hitting it live costs money and fires real side effects. The line is ownership: a process we stand up ourselves is real; a vendor API we call out to is mocked.");let N=o?.data?.hats||[];(s.includes("design")||N.some(q=>q.includes("designer")||q.includes("design"))||o?.body?.includes("pick_design_direction"))&&y.push(NJn),y.push(yx.renderString(CJn,{collaborative:u==="collaborative"}));let L=$At();L&&y.push(L);let G=u==="collaborative"?MJn:DJn,W=c?'\n\n**Autopilot \u2014 zero user interaction.** You are driving this intent autonomously; the only human touchpoint is the pre-intent conversation, which already happened. Do NOT call `AskUserQuestion`, `ask_user_visual_question`, `pick_design_direction`, or any other user-facing prompt during elaboration \u2014 not even for a "genuine blocker". Resolve every ambiguity yourself from the codebase, prior-stage outputs, established conventions, and the intent description: make the most defensible call and record the reasoning in the unit body, never as a question.':"",$=yx.renderString(LJn,{slug:t,stage:s});return y.push(`${UJn} +This stage must ultimately produce the following outputs during execution. Plan units accordingly:`,t);P&&y.push(P),o?.data?.produces==="build"&&y.push("## Build-Class Units: Declare Verification\n\nThis is a **build** stage \u2014 every unit that declares `outputs:` MUST also declare a `quality_gates:` field. Pair each produced artifact with the executable check that verifies it (the verify-command pattern in this stage's elaboration guidance). If a unit genuinely defers verification to a sibling test unit, declare an explicit empty list (`quality_gates: []`) \u2014 but the field must be present so the choice is deliberate and reviewable. `haiku_unit_write` will reject a producing unit that omits it.\n\n**Gates that need a live dependency** (a test suite that hits a database, a migration, a check that talks to a queue/cache) only verify something when that dependency is running. Declare the dependency once as a service in `.haiku/boot.md` \u2014 a `processes:` entry with `service: true` and `requires_tool: docker` (e.g. a `docker compose up` Postgres with a `ready_url` health probe). At gate time the engine brings declared services up via the live tool, or \u2014 if the tool isn't available \u2014 escalates to the user. It will NOT advance a gate that couldn't reach its dependency, so a missing service recipe turns into a hold, not a false green. If this project already has a `docker-compose.yml` / `Makefile` the engine can auto-detect it, but a `.haiku/boot.md` service entry is the reproducible declaration.\n\n**Declare real internal services; never mock them.** Internal infrastructure the app owns \u2014 its database, cache, queue, search, object store (Postgres, Redis, Mongo, Elasticsearch, Kafka, \u2026) \u2014 MUST be a real `service:` process in `.haiku/boot.md`; never a mock, in-memory fake, or SQLite stand-in, because a gate that passes against a faked datastore verified nothing about migrations/queries/persistence. Third-party SaaS the app only calls across the network (Stripe, Twilio, SendGrid, vendor LLM/auth APIs) is the opposite: do NOT declare it as a `service:` to run \u2014 stub it or use the vendor sandbox at the app's edge, since hitting it live costs money and fires real side effects. The line is ownership: a process we stand up ourselves is real; a vendor API we call out to is mocked.");let N=o?.data?.hats||[];(s.includes("design")||N.some(q=>q.includes("designer")||q.includes("design"))||o?.body?.includes("pick_design_direction"))&&y.push(NJn),y.push(Sx.renderString(CJn,{collaborative:u==="collaborative"}));let L=$At();L&&y.push(L);let G=u==="collaborative"?MJn:DJn,W=c?'\n\n**Autopilot \u2014 zero user interaction.** You are driving this intent autonomously; the only human touchpoint is the pre-intent conversation, which already happened. Do NOT call `AskUserQuestion`, `ask_user_visual_question`, `pick_design_direction`, or any other user-facing prompt during elaboration \u2014 not even for a "genuine blocker". Resolve every ambiguity yourself from the codebase, prior-stage outputs, established conventions, and the intent description: make the most defensible call and record the reasoning in the unit body, never as a question.':"",$=Sx.renderString(LJn,{slug:t,stage:s});return y.push(`${UJn} ${G}${W} ${$}`),g||y.push(Lf("decompose",{slug:t,stage:s})),y.join(` -`)}var yx,wJn,kJn,IJn,xJn,OJn,PJn,NJn,CJn,MJn,DJn,LJn,UJn,FJn,jJn,HJn,twt,nwt=v(()=>{"use strict";gt();yr();_f();Ge();Kn();ns();x6();ts();ht();Uh();Rt();yx=new _e({autoEscape:!1,useWith:!0}),wJn=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),kJn=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),IJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),xJn=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),OJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),PJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),NJn=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),CJn=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),MJn=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),DJn=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),LJn=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),UJn=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),FJn=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),jJn=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),HJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");twt=e=>{let t=e.action.prompt_file;return t?yx.renderString(FJn,{promptFile:t}):qJn(e)}});import{join as BJn}from"node:path";var rwt,zJn,GJn,iwt,swt=v(()=>{"use strict";gt();Ge();Kn();ts();ht();Rt();rwt=new _e({autoEscape:!1,useWith:!0}),zJn=ie("@canon:stage/elaborate/decompose_review"),GJn=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),iwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Kh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),a=kr({resolveBody:()=>Dh(i,n),toolName:"haiku_read_stage",toolArgs:{studio:i,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),c=BJn(e.dir,"stages",n,"elaboration.md"),u=Lf("verify_decompose",{slug:r,stage:n}),l=rwt.renderString(GJn,{stage:n,intentSlug:r,intentRef:o,stageRef:a,elabPath:c,verifierNonce:s}),d=Ti({unit:`verify-${n}-decompose`,hat:"decompose-verifier",bolt:1,intent:r,stage:n,agentType:"general-purpose",promptBody:l,heading:`### Subagent: decompose verifier (stage \`${n}\`)`,omitBolt:!0});return rwt.renderString(zJn,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var owt,VJn,WJn,AEe,awt=v(()=>{"use strict";gt();Kn();ts();ht();Rt();owt=new _e({autoEscape:!1,useWith:!0}),VJn=ie("@canon:stage/elaborate/discovery_required"),WJn=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),AEe=e=>{let{slug:t,studio:n,action:r}=e,i=r.stage||"",s=Array.isArray(r.dispatches)?r.dispatches:[{agent:r.agent||"",units:r.units||[]}],o=no(n,i).filter(u=>u.kind==="discovery"),a=s.map(u=>{let l=u.agent,f=(u.units??[])[0]||"",p=o.find(y=>y.name===l),h=p?p.location.replace(/\{intent-slug\}/g,t):"",m=f?` on \`${f}\``:"",g="";if(p&&!p.tool){let y=kr({resolveBody:()=>_I(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),b=owt.renderString(WJn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:y}),S=ju({mandatePath:Gfe(n,i,l)??void 0,studio:n,stage:i});g=Ti({unit:"discovery",hat:l,bolt:1,intent:t,stage:i,agentType:"general-purpose",model:S,promptBody:b,heading:`### Subagent: \`${l}\``,omitBolt:!0})}return{agent:l,unit:f,unitLabel:m,def:p,resolvedLocation:h,dispatchBlock:g}}),c=Lf("discovery",{slug:t,stage:i});return owt.renderString(VJn,{slug:t,stage:i,dispatches:a,dispatchCount:a.length,agent:a[0]?.agent??"",unit:a[0]?.unit??"",unitLabel:a[0]?.unitLabel??"",def:a[0]?.def,resolvedLocation:a[0]?.resolvedLocation??"",dispatchBlock:a[0]?.dispatchBlock??"",concurrentLoopBlock:c,composedMode:e.composedMode===!0})}});var KJn,YJn,cwt,uwt=v(()=>{"use strict";gt();Ge();Kn();ts();ht();Rt();KJn=new _e({autoEscape:!1,useWith:!0}),YJn=ie("@canon:stage/elaborate/elaborate"),cwt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Kh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),s=kr({resolveBody:()=>Dh(e.studio,n),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),o=Lf("conversation",{slug:r,stage:n});return KJn.renderString(YJn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as ZJn}from"node:path";var lwt,JJn,XJn,dwt,fwt=v(()=>{"use strict";gt();Ge();Kn();ts();ht();Rt();lwt=new _e({autoEscape:!1,useWith:!0}),JJn=ie("@canon:stage/elaborate/elaborate_review"),XJn=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),dwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=!n,s=t.verifier_nonce??"",o=i?"":n,a=kr({resolveBody:()=>Kh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:o||void 0,kind:"intent-goal",name:"intent"}),c=i?"":kr({resolveBody:()=>Dh(e.studio,o),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:o},intent:r,stage:o,kind:"stage-scope",name:o}),u=i?"":ZJn(e.dir,"stages",o,"elaboration.md"),l=i?"":Lf("verify_conversation",{slug:r,stage:o}),d=lwt.renderString(XJn,{isPreIntent:i,intentSlug:r,stage:o,intentRef:a,stageRef:c,elabPath:u,verifierNonce:s}),f=Ti({unit:i?"verify-intent":`verify-${o}-elaboration`,hat:"elaborate-verifier",bolt:1,intent:r,stage:i?void 0:o,agentType:"general-purpose",promptBody:d,heading:i?"### Subagent: pre-intent elaborate verifier":`### Subagent: elaborate verifier (stage \`${o}\`)`,omitBolt:!0});return lwt.renderString(JJn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function QJn(e,t){let n={stage:e.stage,intent:e.intent},r=e.verifier_nonces??{};switch(t.signal){case"conversation":return{...n,action:"elaborate",signal:"conversation"};case"verify_conversation":return{...n,action:"elaborate_review",signal:"verify_conversation",verifier_nonce:r.verify_conversation??""};case"discovery":return{...n,action:"discovery_required",signal:"discovery",agent:t.agent??"",units:t.units??[]};case"decompose":return{...n,action:"decompose",signal:"decompose"};case"verify_decompose":return{...n,action:"decompose_review",signal:"verify_decompose",verifier_nonce:r.verify_decompose??""}}}function $Jn(e){switch(e){case"conversation":return cwt;case"verify_conversation":return dwt;case"discovery":return AEe;case"decompose":return twt;case"verify_decompose":return iwt}}function pwt(e){switch(e){case"conversation":return"Signal: `conversation` \u2014 capture the stage's human-conversation outcome";case"verify_conversation":return"Signal: `verify_conversation` \u2014 dispatch the elaboration substance verifier";case"discovery":return"Signal: `discovery` \u2014 produce a missing discovery artifact";case"decompose":return"Signal: `decompose` \u2014 draft unit specs for this stage";case"verify_decompose":return"Signal: `verify_decompose` \u2014 dispatch the decompose coverage verifier"}}var hwt,mwt=v(()=>{"use strict";ts();Rt();nwt();swt();awt();uwt();fwt();hwt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=UI(e.dir)==="autopilot";if(n.length===0)return["## Elaborate Loop","","Every elaborate-loop completion signal is currently met \u2014 call `haiku_run_next` to advance."].join(` +`)}var Sx,wJn,kJn,IJn,xJn,OJn,PJn,NJn,CJn,MJn,DJn,LJn,UJn,FJn,jJn,HJn,twt,nwt=v(()=>{"use strict";gt();yr();_f();Ge();Kn();ns();O6();ts();ht();Uh();Rt();Sx=new _e({autoEscape:!1,useWith:!0}),wJn=ie("@canon:stage/elaborate/decompose","blocks/iterative-decide.eta.md"),kJn=ie("@canon:stage/elaborate/decompose","blocks/lens-preamble.md"),IJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-preamble.md"),xJn=ie("@canon:stage/elaborate/decompose","blocks/upstream-context-header.md"),OJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-preamble.md"),PJn=ie("@canon:stage/elaborate/decompose","blocks/prior-stage-footer.md"),NJn=ie("@canon:stage/elaborate/decompose","blocks/design-provider-mcps.md"),CJn=ie("@canon:stage/elaborate/decompose","blocks/approach-selection.eta.md"),MJn=ie("@canon:stage/elaborate/decompose","blocks/collaborative-mechanics.md"),DJn=ie("@canon:stage/elaborate/decompose","blocks/autonomous-mechanics.md"),LJn=ie("@canon:stage/elaborate/decompose","blocks/elaborate-output-tail.eta.md"),UJn=ie("@canon:stage/elaborate/decompose","blocks/scope-header.md"),FJn=ie("@canon:stage/elaborate/decompose","blocks/file-based-pointer.eta.md"),jJn=ie("@canon:stage/elaborate/decompose","blocks/discovery-subagent.eta.md"),HJn=ie("@canon:stage/elaborate/decompose","blocks/skill-registry-section.eta.md");twt=e=>{let t=e.action.prompt_file;return t?Sx.renderString(FJn,{promptFile:t}):qJn(e)}});import{join as BJn}from"node:path";var rwt,zJn,GJn,iwt,swt=v(()=>{"use strict";gt();Ge();Kn();ts();ht();Rt();rwt=new _e({autoEscape:!1,useWith:!0}),zJn=ie("@canon:stage/elaborate/decompose_review"),GJn=ie("@canon:stage/elaborate/decompose_review","subagent.eta.md"),iwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=e.studio,s=t.verifier_nonce??"",o=kr({resolveBody:()=>Kh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),a=kr({resolveBody:()=>Dh(i,n),toolName:"haiku_read_stage",toolArgs:{studio:i,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),c=BJn(e.dir,"stages",n,"elaboration.md"),u=Lf("verify_decompose",{slug:r,stage:n}),l=rwt.renderString(GJn,{stage:n,intentSlug:r,intentRef:o,stageRef:a,elabPath:c,verifierNonce:s}),d=Ti({unit:`verify-${n}-decompose`,hat:"decompose-verifier",bolt:1,intent:r,stage:n,agentType:"general-purpose",promptBody:l,heading:`### Subagent: decompose verifier (stage \`${n}\`)`,omitBolt:!0});return rwt.renderString(zJn,{stage:n,intentSlug:r,elabPath:c,concurrentLoopBlock:u,verifierNonce:s,composedMode:e.composedMode===!0,dispatchBlock:d})}});var owt,VJn,WJn,wEe,awt=v(()=>{"use strict";gt();Kn();ts();ht();Rt();owt=new _e({autoEscape:!1,useWith:!0}),VJn=ie("@canon:stage/elaborate/discovery_required"),WJn=ie("@canon:stage/elaborate/discovery_required","subagent.eta.md"),wEe=e=>{let{slug:t,studio:n,action:r}=e,i=r.stage||"",s=Array.isArray(r.dispatches)?r.dispatches:[{agent:r.agent||"",units:r.units||[]}],o=no(n,i).filter(u=>u.kind==="discovery"),a=s.map(u=>{let l=u.agent,f=(u.units??[])[0]||"",p=o.find(y=>y.name===l),h=p?p.location.replace(/\{intent-slug\}/g,t):"",m=f?` on \`${f}\``:"",g="";if(p&&!p.tool){let y=kr({resolveBody:()=>_I(n,i,l),toolName:"haiku_read_discovery",toolArgs:{studio:n,stage:i,template:l},intent:t,stage:i,kind:"discovery-template",name:l}),b=owt.renderString(WJn,{agent:l,stage:i,slug:t,unit:f,resolvedLocation:h,templateRef:y}),S=ju({mandatePath:Vfe(n,i,l)??void 0,studio:n,stage:i});g=Ti({unit:"discovery",hat:l,bolt:1,intent:t,stage:i,agentType:"general-purpose",model:S,promptBody:b,heading:`### Subagent: \`${l}\``,omitBolt:!0})}return{agent:l,unit:f,unitLabel:m,def:p,resolvedLocation:h,dispatchBlock:g}}),c=Lf("discovery",{slug:t,stage:i});return owt.renderString(VJn,{slug:t,stage:i,dispatches:a,dispatchCount:a.length,agent:a[0]?.agent??"",unit:a[0]?.unit??"",unitLabel:a[0]?.unitLabel??"",def:a[0]?.def,resolvedLocation:a[0]?.resolvedLocation??"",dispatchBlock:a[0]?.dispatchBlock??"",concurrentLoopBlock:c,composedMode:e.composedMode===!0})}});var KJn,YJn,cwt,uwt=v(()=>{"use strict";gt();Ge();Kn();ts();ht();Rt();KJn=new _e({autoEscape:!1,useWith:!0}),YJn=ie("@canon:stage/elaborate/elaborate"),cwt=e=>{let t=e.action,n=t.stage??"(unknown)",r=t.intent??e.slug,i=kr({resolveBody:()=>Kh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:n,kind:"intent-goal",name:"intent"}),s=kr({resolveBody:()=>Dh(e.studio,n),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:n},intent:r,stage:n,kind:"stage-scope",name:n}),o=Lf("conversation",{slug:r,stage:n});return KJn.renderString(YJn,{stage:n,intentSlug:r,intentRef:i,stageRef:s,concurrentLoopBlock:o,composedMode:e.composedMode===!0})}});import{join as ZJn}from"node:path";var lwt,JJn,XJn,dwt,fwt=v(()=>{"use strict";gt();Ge();Kn();ts();ht();Rt();lwt=new _e({autoEscape:!1,useWith:!0}),JJn=ie("@canon:stage/elaborate/elaborate_review"),XJn=ie("@canon:stage/elaborate/elaborate_review","subagent.eta.md"),dwt=e=>{let t=e.action,n=t.stage,r=t.intent??e.slug,i=!n,s=t.verifier_nonce??"",o=i?"":n,a=kr({resolveBody:()=>Kh(r),toolName:"haiku_read_intent",toolArgs:{intent:r},intent:r,stage:o||void 0,kind:"intent-goal",name:"intent"}),c=i?"":kr({resolveBody:()=>Dh(e.studio,o),toolName:"haiku_read_stage",toolArgs:{studio:e.studio,stage:o},intent:r,stage:o,kind:"stage-scope",name:o}),u=i?"":ZJn(e.dir,"stages",o,"elaboration.md"),l=i?"":Lf("verify_conversation",{slug:r,stage:o}),d=lwt.renderString(XJn,{isPreIntent:i,intentSlug:r,stage:o,intentRef:a,stageRef:c,elabPath:u,verifierNonce:s}),f=Ti({unit:i?"verify-intent":`verify-${o}-elaboration`,hat:"elaborate-verifier",bolt:1,intent:r,stage:i?void 0:o,agentType:"general-purpose",promptBody:d,heading:i?"### Subagent: pre-intent elaborate verifier":`### Subagent: elaborate verifier (stage \`${o}\`)`,omitBolt:!0});return lwt.renderString(JJn,{isPreIntent:i,intentSlug:r,stage:o,elabPath:u,concurrentLoopBlock:l,composedMode:e.composedMode===!0,verifierNonce:s,dispatchBlock:f})}});function QJn(e,t){let n={stage:e.stage,intent:e.intent},r=e.verifier_nonces??{};switch(t.signal){case"conversation":return{...n,action:"elaborate",signal:"conversation"};case"verify_conversation":return{...n,action:"elaborate_review",signal:"verify_conversation",verifier_nonce:r.verify_conversation??""};case"discovery":return{...n,action:"discovery_required",signal:"discovery",agent:t.agent??"",units:t.units??[]};case"decompose":return{...n,action:"decompose",signal:"decompose"};case"verify_decompose":return{...n,action:"decompose_review",signal:"verify_decompose",verifier_nonce:r.verify_decompose??""}}}function $Jn(e){switch(e){case"conversation":return cwt;case"verify_conversation":return dwt;case"discovery":return wEe;case"decompose":return twt;case"verify_decompose":return iwt}}function pwt(e){switch(e){case"conversation":return"Signal: `conversation` \u2014 capture the stage's human-conversation outcome";case"verify_conversation":return"Signal: `verify_conversation` \u2014 dispatch the elaboration substance verifier";case"discovery":return"Signal: `discovery` \u2014 produce a missing discovery artifact";case"decompose":return"Signal: `decompose` \u2014 draft unit specs for this stage";case"verify_decompose":return"Signal: `verify_decompose` \u2014 dispatch the decompose coverage verifier"}}var hwt,mwt=v(()=>{"use strict";ts();Rt();nwt();swt();awt();uwt();fwt();hwt=e=>{let t=e.action,n=t.signals_unmet??[],r=t.stage,i=t.intent??e.slug,s=UI(e.dir)==="autopilot";if(n.length===0)return["## Elaborate Loop","","Every elaborate-loop completion signal is currently met \u2014 call `haiku_run_next` to advance."].join(` `);let o=[],a=r?`## Elaborate Loop \u2014 \`${r}\``:"## Elaborate Loop \u2014 pre-intent";if(o.push(a),t.optional_offer&&r){let d=t.dependents??[],f=d.length===0?"Nothing downstream references this stage \u2014 dropping it severs no inputs or review agents.":`Dropping it severs these downstream references (they auto-ignore once dropped, so downstream proceeds without them): ${d.map(p=>{let h=[];return p.inputs.length>0&&h.push(`inputs ${p.inputs.map(m=>`\`${m}\``).join(", ")}`),p.reviewAgents.length>0&&h.push(`review agents ${p.reviewAgents.map(m=>`\`${m}\``).join(", ")}`),`> - \`${p.stage}\` \u2014 ${h.join("; ")}`}).join(` `)}`;o.push([`> **\`${r}\` is an OPTIONAL stage.** It applies to some intents and not others. Decide whether THIS intent needs it before doing any elaboration work below:`,">",`> - **If it doesn't apply** to this intent's goals, drop it: \`haiku_drop_stage { intent: "${i}", stage: "${r}" }\`. The plan advances to the next stage and this stage's elaborate/execute work is skipped entirely.`,"> - **If it applies**, just proceed with the elaboration below \u2014 keeping the stage needs no separate action.",">",`> ${f}`].join(` `))}let c=n.map(d=>d.signal==="discovery"&&d.agent?`\`${d.signal}\` (template: \`${d.agent}\`)`:`\`${d.signal}\``).join(", ");o.push(`The cursor's elaborate-loop has **${n.length}** completion signal${n.length===1?"":"s"} unmet for ${r?`stage \`${r}\``:`intent \`${i}\``}: ${c}. You may make progress on any subset of them in this tick \u2014 they are concurrent, not ordered. Each signal carries its own sub-instructions below.`),o.push("Read each block, decide which signals you can move forward this tick (often more than one), execute, then call `haiku_run_next` to re-evaluate the loop. The cursor stays in `elaborate_loop` until every signal flips on disk."),s&&o.push(["> **\u26A0 AUTOPILOT \u2014 THIS PHASE DOES NOT STOP TO ASK.**",">",'> Make progress on every signal you can this tick, then end your turn by calling `haiku_run_next`. Do **NOT** yield the turn to ask the user anything \u2014 not for a missing upstream artifact, not for an ambiguous scope or a fork between approaches, not for "should I continue?". Resolve it autonomously: pick the path the intent\'s goals imply, or file a `haiku_feedback` (`resolution: "stage_revisit"` for a missing upstream, `resolution: "question"` for a genuine fork) and immediately call `haiku_run_next` \u2014 the engine routes it on the next tick without a turn handoff. The ONLY human touchpoint in autopilot was the pre-intent conversation; there is no one to answer a question now.',">","> **DO THE WORK before you re-tick.** This phase is your work, not a transition to tick past: dispatch the discovery subagents and DRAFT the unit specs (`haiku_unit_write`) THIS turn. A signal clears only when you change disk state \u2014 calling `haiku_run_next` WITHOUT first drafting/dispatching returns the SAME elaborate-loop, and after a few empty ticks the engine HALTS the workflow as a no-progress loop. The escape is always to do the work, never to re-tick harder."].join(` -`));let u=n.filter(d=>d.signal==="discovery"),l=n.filter(d=>d.signal!=="discovery");if(u.length>0){let d={stage:r,intent:i,action:"discovery_required",signal:"discovery",dispatches:u.map(h=>({agent:h.agent??"",units:h.units??[]}))},f={...e,action:d,composedMode:!0},p=AEe(f)??"";o.push(`### ${pwt("discovery")} +`));let u=n.filter(d=>d.signal==="discovery"),l=n.filter(d=>d.signal!=="discovery");if(u.length>0){let d={stage:r,intent:i,action:"discovery_required",signal:"discovery",dispatches:u.map(h=>({agent:h.agent??"",units:h.units??[]}))},f={...e,action:d,composedMode:!0},p=wEe(f)??"";o.push(`### ${pwt("discovery")} ${p.trim()}`)}for(let d of l){let f=QJn(t,d),p={...e,action:f,composedMode:!0},h=$Jn(d.signal)(p)??"";o.push(`### ${pwt(d.signal)} ${h.trim()}`)}return o.push(["### Concurrent execution reminder","","The signals above are mutually independent unless explicitly noted in a signal block. You can dispatch the discovery subagent AND draft units AND record the elaboration conversation in the same response. The cursor's next tick re-evaluates the loop against the disk and returns whichever signals are still unmet (possibly an empty set, in which case the cursor walks past the loop).","",s?'A fork in the work (e.g. discovery turned up two viable approaches) is NOT a reason to stop in autopilot. Pick the option the intent\'s goals best support and record the call, or \u2014 if it genuinely needs a human later \u2014 file `origin: "discovery", resolution: "question"` feedback via `haiku_feedback` and immediately call `haiku_run_next`. Either way the turn ends on `haiku_run_next`; never hand the turn back to ask.':'When you need to surface a user decision (e.g. discovery turned up two viable forks), file `origin: "discovery", resolution: "question"` feedback via `haiku_feedback` instead of guessing. The next tick will route the FB through `feedback_question` so the user picks before the loop continues.'].join(` `)),o.join(` -`)}});var eXn,tXn,gwt,ywt=v(()=>{"use strict";gt();ht();Rt();eXn=new _e({autoEscape:!1,useWith:!0}),tXn=ie("@canon:stage/error/blocked"),gwt=({action:e})=>{let t=e.blocked_units||[];return eXn.renderString(tXn,{blockedUnits:t})}});var nXn,rXn,Swt,bwt=v(()=>{"use strict";gt();ht();Rt();nXn=new _e({autoEscape:!1,useWith:!0}),rXn=ie("@canon:stage/error/coverage_review_required"),Swt=({action:e})=>nXn.renderString(rXn,{message:e.message??""})});var iXn,sXn,Ewt,_wt=v(()=>{"use strict";gt();ht();Rt();iXn=new _e({autoEscape:!1,useWith:!0}),sXn=ie("@canon:stage/error/dag_cycle_detected"),Ewt=({action:e})=>iXn.renderString(sXn,{message:e.message??""})});var oXn,aXn,Twt,vwt=v(()=>{"use strict";gt();ht();Rt();oXn=new _e({autoEscape:!1,useWith:!0}),aXn=ie("@canon:stage/error/discovery_missing"),Twt=({action:e})=>oXn.renderString(aXn,{message:e.message??""})});var cXn,uXn,Rwt,Awt=v(()=>{"use strict";gt();ht();Rt();cXn=new _e({autoEscape:!1,useWith:!0}),uXn=ie("@canon:stage/error/elaboration_insufficient"),Rwt=({action:e})=>cXn.renderString(uXn,{message:e.message??""})});var lXn,dXn,wwt,kwt=v(()=>{"use strict";gt();Ge();ht();Rt();lXn=new _e({autoEscape:!1,useWith:!0}),dXn=ie("@canon:stage/error/escalate"),wwt=({slug:e,action:t})=>{let n=t.stage,r=t.reason||"unknown",i=t.iteration||0,s=t.max_iterations||Df,o=t.message||"",a=t.pending_items||[],c=!n,u=c?`intent ${e} (studio-level fix loop)`:n,l=r==="loop_detected"?`## Escalation: Loop Detected in ${u}`:r==="fix_loop_cap_exceeded"?`## Escalation: Fix-Loop Bolt Cap Exceeded in ${u}`:`## Escalation: Iteration Limit Exceeded in ${u}`,d=c?"`haiku_feedback_reject { intent, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block (omit `stage` for intent-scope findings)":"`haiku_feedback_reject { intent, stage, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block",f=r==="fix_loop_cap_exceeded"?`the fix loop spent its full ${Dg}-bolt budget on ${a.length||"the"} finding(s) without satisfying the closure check`:`iteration ${i} of ${s} (max) or repeated feedback signature detected`;return lXn.renderString(dXn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var fXn,pXn,Iwt,xwt=v(()=>{"use strict";gt();ht();Rt();fXn=new _e({autoEscape:!1,useWith:!0}),pXn=ie("@canon:stage/error/gate_blocked"),Iwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return fXn.renderString(pXn,{slug:e,message:n})}});var hXn,mXn,Owt,Pwt=v(()=>{"use strict";gt();ht();Rt();hXn=new _e({autoEscape:!1,useWith:!0}),mXn=ie("@canon:stage/error/output_liveness_review_required"),Owt=({action:e})=>hXn.renderString(mXn,{message:e.message??""})});var gXn,yXn,Nwt,Cwt=v(()=>{"use strict";gt();ht();Rt();gXn=new _e({autoEscape:!1,useWith:!0}),yXn=ie("@canon:stage/error/outputs_missing"),Nwt=({action:e})=>gXn.renderString(yXn,{message:e.message??""})});var SXn,bXn,Mwt,Dwt=v(()=>{"use strict";gt();ht();Rt();SXn=new _e({autoEscape:!1,useWith:!0}),bXn=ie("@canon:stage/error/save_wip"),Mwt=({action:e})=>SXn.renderString(bXn,{message:e.message??""})});var EXn,_Xn,Lwt,Uwt=v(()=>{"use strict";gt();ht();Rt();EXn=new _e({autoEscape:!1,useWith:!0}),_Xn=ie("@canon:stage/error/unit_inputs_missing"),Lwt=({action:e})=>EXn.renderString(_Xn,{message:e.message??""})});var TXn,vXn,Fwt,jwt=v(()=>{"use strict";gt();ht();Rt();TXn=new _e({autoEscape:!1,useWith:!0}),vXn=ie("@canon:stage/error/unit_inputs_not_declared"),Fwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return TXn.renderString(vXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var RXn,AXn,Hwt,qwt=v(()=>{"use strict";gt();ht();Rt();RXn=new _e({autoEscape:!1,useWith:!0}),AXn=ie("@canon:stage/error/unit_naming_invalid"),Hwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return RXn.renderString(AXn,{slug:e,message:n})}});var wXn,kXn,Bwt,zwt=v(()=>{"use strict";gt();ht();Rt();wXn=new _e({autoEscape:!1,useWith:!0}),kXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),Bwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return wXn.renderString(kXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var IXn,xXn,Gwt,Vwt=v(()=>{"use strict";gt();ht();Rt();IXn=new _e({autoEscape:!1,useWith:!0}),xXn=ie("@canon:stage/error/unresolved_dependencies"),Gwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return IXn.renderString(xXn,{slug:e,message:n})}});import{existsSync as wEe,readFileSync as Wwt}from"node:fs";import{join as ap,resolve as O6}from"node:path";var P6,OXn,PXn,NXn,CXn,MXn,DXn,LXn,UXn,Kwt,Ywt=v(()=>{"use strict";gt();Ci();_f();fb();Ge();Kn();ns();x6();ts();ht();Uh();Rt();P6=new _e({autoEscape:!1,useWith:!0}),OXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),PXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),NXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),CXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),MXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),DXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),LXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),UXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),Kwt=({slug:e,studio:t,action:n,dir:r})=>{let i=n.stage,s=n.unit||"",o=n.hat||n.first_hat||"",a=n.hats||[],c=n.bolt||1,u=Ff(ap(t,"stages",i,"STAGE.md")),l=Ff(ap(t,"stages",i,"hats",`${o}.md`)),d=Ff(ap(t,"stages",i,"outputs")),f=ap(r,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),p=[],h,m=[];if(wEe(f)){let{data:q}=re(Wwt(f,"utf8")),Q=q.inputs;if(Array.isArray(Q))p=Q.filter(B=>typeof B=="string");else if(typeof Q=="string"){let B=Q.trim();if(B.startsWith("[")&&B.endsWith("]"))try{let F=JSON.parse(B);Array.isArray(F)&&(p=F.filter(V=>typeof V=="string"))}catch{}}h=q.model||void 0,Array.isArray(q.applicable_skills)&&(m=q.applicable_skills.filter(B=>typeof B=="string"))}let y=Du(t,i)[o],b=y?.agent_type||"general-purpose",S;if(Go.modelSelection){let q=$i(t,i),Q=Nd(t),{model:B,source:F}=db({unit:h,hat:y?.model,stage:q?.data?.default_model,studio:Q?.data?.default_model});S=B,S&&console.error(`[haiku] resolved model: ${S} (source: ${F})`)}let E=[];{let q=O6(r);for(let Q of p){let B=O6(r,Q);!B.startsWith(`${q}/`)&&B!==q||wEe(ap(r,Q))&&E.push(Q)}}let _=[];{let q=$i(t,i);if(q?.data?.inputs&&Array.isArray(q.data.inputs)){let Q=q.data.inputs,F=ZK(t,Q,r,e).filter(U=>U.exists),V=new Set(p.map(U=>O6(r,U)));for(let U of F){if(V.has(O6(U.resolvedPath)))continue;let M=U.resolvedPath.startsWith(`${r}/`)?U.resolvedPath.slice(r.length+1):U.resolvedPath;_.push({label:`${U.stage}/${U.artifactName}`,path:M})}}}let T=gx(t,i),R=n.worktree||"",A=R?ap(R,".haiku","intents",e):r,x=ap(A,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),k=Mi(),P=Jft(e,i,o,a,c),N=[];if(o==="feedback-assessor"){let q=wEe(f)?re(Wwt(f,"utf8")).data:{},Q=q.closes||[],B=q.outputs||[],F=[],V=Us(e,i);for(let Y of Q){let ee=V.find(se=>se.id===Y);ee&&F.push({id:ee.id,file:ee.file.startsWith(".haiku/intents/")?ee.file.slice(`.haiku/intents/${e}/`.length):ee.file})}let U=Rl(x,`Unit spec: ${s}`),M=Hpe(B.map(Y=>({heading:`Unit output: ${Y}`,path:ap(A,Y)}))),H=Hpe(F.map(Y=>({heading:`Feedback ${Y.id}`,path:ap(A,Y.file)}))),j=P6.renderString(UXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:R,intentRoot:A,unitInline:U,outputsInline:M,feedbackInline:H});if(k.subagents.supported){let Y=P?`${P} +`)}});var eXn,tXn,gwt,ywt=v(()=>{"use strict";gt();ht();Rt();eXn=new _e({autoEscape:!1,useWith:!0}),tXn=ie("@canon:stage/error/blocked"),gwt=({action:e})=>{let t=e.blocked_units||[];return eXn.renderString(tXn,{blockedUnits:t})}});var nXn,rXn,Swt,bwt=v(()=>{"use strict";gt();ht();Rt();nXn=new _e({autoEscape:!1,useWith:!0}),rXn=ie("@canon:stage/error/coverage_review_required"),Swt=({action:e})=>nXn.renderString(rXn,{message:e.message??""})});var iXn,sXn,Ewt,_wt=v(()=>{"use strict";gt();ht();Rt();iXn=new _e({autoEscape:!1,useWith:!0}),sXn=ie("@canon:stage/error/dag_cycle_detected"),Ewt=({action:e})=>iXn.renderString(sXn,{message:e.message??""})});var oXn,aXn,Twt,vwt=v(()=>{"use strict";gt();ht();Rt();oXn=new _e({autoEscape:!1,useWith:!0}),aXn=ie("@canon:stage/error/discovery_missing"),Twt=({action:e})=>oXn.renderString(aXn,{message:e.message??""})});var cXn,uXn,Rwt,Awt=v(()=>{"use strict";gt();ht();Rt();cXn=new _e({autoEscape:!1,useWith:!0}),uXn=ie("@canon:stage/error/elaboration_insufficient"),Rwt=({action:e})=>cXn.renderString(uXn,{message:e.message??""})});var lXn,dXn,wwt,kwt=v(()=>{"use strict";gt();Ge();ht();Rt();lXn=new _e({autoEscape:!1,useWith:!0}),dXn=ie("@canon:stage/error/escalate"),wwt=({slug:e,action:t})=>{let n=t.stage,r=t.reason||"unknown",i=t.iteration||0,s=t.max_iterations||Df,o=t.message||"",a=t.pending_items||[],c=!n,u=c?`intent ${e} (studio-level fix loop)`:n,l=r==="loop_detected"?`## Escalation: Loop Detected in ${u}`:r==="fix_loop_cap_exceeded"?`## Escalation: Fix-Loop Bolt Cap Exceeded in ${u}`:`## Escalation: Iteration Limit Exceeded in ${u}`,d=c?"`haiku_feedback_reject { intent, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block (omit `stage` for intent-scope findings)":"`haiku_feedback_reject { intent, stage, feedback_id, reason }` \u2014 dismiss specific items that shouldn't block",f=r==="fix_loop_cap_exceeded"?`the fix loop spent its full ${Dg}-bolt budget on ${a.length||"the"} finding(s) without satisfying the closure check`:`iteration ${i} of ${s} (max) or repeated feedback signature detected`;return lXn.renderString(dXn,{header:l,message:o,pendingItems:a,capLine:f,rejectExample:d,isIntentScope:c})}});var fXn,pXn,Iwt,xwt=v(()=>{"use strict";gt();ht();Rt();fXn=new _e({autoEscape:!1,useWith:!0}),pXn=ie("@canon:stage/error/gate_blocked"),Iwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return fXn.renderString(pXn,{slug:e,message:n})}});var hXn,mXn,Owt,Pwt=v(()=>{"use strict";gt();ht();Rt();hXn=new _e({autoEscape:!1,useWith:!0}),mXn=ie("@canon:stage/error/output_liveness_review_required"),Owt=({action:e})=>hXn.renderString(mXn,{message:e.message??""})});var gXn,yXn,Nwt,Cwt=v(()=>{"use strict";gt();ht();Rt();gXn=new _e({autoEscape:!1,useWith:!0}),yXn=ie("@canon:stage/error/outputs_missing"),Nwt=({action:e})=>gXn.renderString(yXn,{message:e.message??""})});var SXn,bXn,Mwt,Dwt=v(()=>{"use strict";gt();ht();Rt();SXn=new _e({autoEscape:!1,useWith:!0}),bXn=ie("@canon:stage/error/save_wip"),Mwt=({action:e})=>SXn.renderString(bXn,{message:e.message??""})});var EXn,_Xn,Lwt,Uwt=v(()=>{"use strict";gt();ht();Rt();EXn=new _e({autoEscape:!1,useWith:!0}),_Xn=ie("@canon:stage/error/unit_inputs_missing"),Lwt=({action:e})=>EXn.renderString(_Xn,{message:e.message??""})});var TXn,vXn,Fwt,jwt=v(()=>{"use strict";gt();ht();Rt();TXn=new _e({autoEscape:!1,useWith:!0}),vXn=ie("@canon:stage/error/unit_inputs_not_declared"),Fwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return TXn.renderString(vXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var RXn,AXn,Hwt,qwt=v(()=>{"use strict";gt();ht();Rt();RXn=new _e({autoEscape:!1,useWith:!0}),AXn=ie("@canon:stage/error/unit_naming_invalid"),Hwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return RXn.renderString(AXn,{slug:e,message:n})}});var wXn,kXn,Bwt,zwt=v(()=>{"use strict";gt();ht();Rt();wXn=new _e({autoEscape:!1,useWith:!0}),kXn=ie("@canon:stage/error/unit_outputs_empty_iterations"),Bwt=({action:e,slug:t})=>{let n=e,r=n.units??[],i=n.stage??"";return wXn.renderString(kXn,{slug:t,stage:i,units:r,unitCount:r.length})}});var IXn,xXn,Gwt,Vwt=v(()=>{"use strict";gt();ht();Rt();IXn=new _e({autoEscape:!1,useWith:!0}),xXn=ie("@canon:stage/error/unresolved_dependencies"),Gwt=({slug:e,action:t})=>{let n=t.message||"No details provided.";return IXn.renderString(xXn,{slug:e,message:n})}});import{existsSync as kEe,readFileSync as Wwt}from"node:fs";import{join as ap,resolve as P6}from"node:path";var N6,OXn,PXn,NXn,CXn,MXn,DXn,LXn,UXn,Kwt,Ywt=v(()=>{"use strict";gt();Ci();_f();fb();Ge();Kn();ns();O6();ts();ht();Uh();Rt();N6=new _e({autoEscape:!1,useWith:!0}),OXn=ie("@canon:stage/execute/start_unit","blocks/worktree-and-timeouts.md"),PXn=ie("@canon:stage/execute/start_unit","blocks/required-context-preamble.md"),NXn=ie("@canon:stage/execute/start_unit","blocks/skills-preamble.md"),CXn=ie("@canon:stage/execute/start_unit","blocks/autonomy-note.md"),MXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions.eta.md"),DXn=ie("@canon:stage/execute/start_unit","blocks/parent-instructions-assessor.eta.md"),LXn=ie("@canon:stage/execute/start_unit","blocks/unit-subagent.eta.md"),UXn=ie("@canon:stage/execute/start_unit","blocks/feedback-assessor.eta.md"),Kwt=({slug:e,studio:t,action:n,dir:r})=>{let i=n.stage,s=n.unit||"",o=n.hat||n.first_hat||"",a=n.hats||[],c=n.bolt||1,u=Ff(ap(t,"stages",i,"STAGE.md")),l=Ff(ap(t,"stages",i,"hats",`${o}.md`)),d=Ff(ap(t,"stages",i,"outputs")),f=ap(r,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),p=[],h,m=[];if(kEe(f)){let{data:q}=re(Wwt(f,"utf8")),Q=q.inputs;if(Array.isArray(Q))p=Q.filter(B=>typeof B=="string");else if(typeof Q=="string"){let B=Q.trim();if(B.startsWith("[")&&B.endsWith("]"))try{let F=JSON.parse(B);Array.isArray(F)&&(p=F.filter(V=>typeof V=="string"))}catch{}}h=q.model||void 0,Array.isArray(q.applicable_skills)&&(m=q.applicable_skills.filter(B=>typeof B=="string"))}let y=Du(t,i)[o],b=y?.agent_type||"general-purpose",S;if(Go.modelSelection){let q=$i(t,i),Q=Nd(t),{model:B,source:F}=db({unit:h,hat:y?.model,stage:q?.data?.default_model,studio:Q?.data?.default_model});S=B,S&&console.error(`[haiku] resolved model: ${S} (source: ${F})`)}let E=[];{let q=P6(r);for(let Q of p){let B=P6(r,Q);!B.startsWith(`${q}/`)&&B!==q||kEe(ap(r,Q))&&E.push(Q)}}let _=[];{let q=$i(t,i);if(q?.data?.inputs&&Array.isArray(q.data.inputs)){let Q=q.data.inputs,F=XK(t,Q,r,e).filter(U=>U.exists),V=new Set(p.map(U=>P6(r,U)));for(let U of F){if(V.has(P6(U.resolvedPath)))continue;let M=U.resolvedPath.startsWith(`${r}/`)?U.resolvedPath.slice(r.length+1):U.resolvedPath;_.push({label:`${U.stage}/${U.artifactName}`,path:M})}}}let T=yx(t,i),R=n.worktree||"",A=R?ap(R,".haiku","intents",e):r,x=ap(A,"stages",i,"units",s.endsWith(".md")?s:`${s}.md`),k=Mi(),P=Xft(e,i,o,a,c),N=[];if(o==="feedback-assessor"){let q=kEe(f)?re(Wwt(f,"utf8")).data:{},Q=q.closes||[],B=q.outputs||[],F=[],V=Us(e,i);for(let Y of Q){let ee=V.find(se=>se.id===Y);ee&&F.push({id:ee.id,file:ee.file.startsWith(".haiku/intents/")?ee.file.slice(`.haiku/intents/${e}/`.length):ee.file})}let U=Rl(x,`Unit spec: ${s}`),M=qpe(B.map(Y=>({heading:`Unit output: ${Y}`,path:ap(A,Y)}))),H=qpe(F.map(Y=>({heading:`Feedback ${Y.id}`,path:ap(A,Y.file)}))),j=N6.renderString(UXn,{slug:e,stage:i,unit:s,bolt:c,worktreePath:R,intentRoot:A,unitInline:U,outputsInline:M,feedbackInline:H});if(k.subagents.supported){let Y=P?`${P} -${j}`:j;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:Y,toolAttr:!0})),N.push(P6.renderString(DXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Feedback Assessor (Direct Execution) +${j}`:j;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:Y,toolAttr:!0})),N.push(N6.renderString(DXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Feedback Assessor (Direct Execution) ${j}`);return N.join(` -`)}let C=o===(a[0]||""),L=new Map(K0().map(q=>[q.slug,q])),G=m.length>0?m.map(q=>{let Q=L.get(q),B=Q?.description?` \u2014 ${Q.description}`:"";return`- \`/${q}\`${B}`}):[],W=l?NI(PI(l)):"",$=P6.renderString(LXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:R,intentRoot:A,worktreeAndTimeoutsBlock:OXn,requiredContextPreamble:PXn,stageInline:u?Rl(u,"Stage scope"):"",hatInline:l?Rl(l,`Hat: ${o}`):"",hatInterpBlock:W,unitInline:Rl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:T3(f),unitInputPaths:E.map(q=>ap(A,q)),upstreamPaths:_.map(q=>({label:q.label,path:ap(A,q.path)})),outputReqs:T||"",skillLines:G,skillsPreamble:NXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:CXn,subagentErrorRecovery:bs("subagent-error-recovery")});if(k.subagents.supported){let q=P?`${P} +`)}let C=o===(a[0]||""),L=new Map(Y0().map(q=>[q.slug,q])),G=m.length>0?m.map(q=>{let Q=L.get(q),B=Q?.description?` \u2014 ${Q.description}`:"";return`- \`/${q}\`${B}`}):[],W=l?NI(PI(l)):"",$=N6.renderString(LXn,{unit:s,hat:o,bolt:c,stage:i,studio:t,slug:e,worktreePath:R,intentRoot:A,worktreeAndTimeoutsBlock:OXn,requiredContextPreamble:PXn,stageInline:u?Rl(u,"Stage scope"):"",hatInline:l?Rl(l,`Hat: ${o}`):"",hatInterpBlock:W,unitInline:Rl(x,`Unit spec: ${s}`),outputsDir:d||"",priorRejectBlock:R3(f),unitInputPaths:E.map(q=>ap(A,q)),upstreamPaths:_.map(q=>({label:q.label,path:ap(A,q.path)})),outputReqs:T||"",skillLines:G,skillsPreamble:NXn,isStartUnit:n.action==="start_unit",isFirstHat:C,autonomyNote:CXn,subagentErrorRecovery:bs("subagent-error-recovery")});if(k.subagents.supported){let q=P?`${P} -${$}`:$;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:q,toolAttr:!0})),N.push(P6.renderString(MXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Mechanics (Direct Execution) +${$}`:$;N.push(Ti({unit:s,hat:o,bolt:c,intent:e,stage:i,agentType:b,model:S,promptBody:q,toolAttr:!0})),N.push(N6.renderString(MXn,{backgroundSpawn:k.subagents.backgroundSpawn}))}else P&&N.push(P),N.push(`### Mechanics (Direct Execution) **Execute the "${o}" hat work directly** \u2014 your harness does not support subagents. ${$}`);return N.join(` -`)}});var FXn,jXn,Zwt,Jwt=v(()=>{"use strict";gt();the();ts();ht();Uh();Rt();FXn=new _e({autoEscape:!1,useWith:!0}),jXn=ie("@canon:stage/execute/start_unit_hat"),Zwt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>qI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return FXn.renderString(jXn,{slug:e,stage:r,hat:i,terminal:o,unitCount:s.length,dispatchBlocks:a,showAnnouncement:s.length>1,announcementBlock:bs("workflow-contracts-announcement"),executeContractsBlock:bs("workflow-contracts-execute"),serviceDependenciesBlock:o?bs("service-dependencies"):"",batchDirective:s.length>0?FI(s.length,"subagents"):""})}});var HXn,qXn,Xwt,Qwt=v(()=>{"use strict";gt();ht();Rt();HXn=new _e({autoEscape:!1,useWith:!0}),qXn=ie("@canon:stage/gate/user_gate"),Xwt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return HXn.renderString(qXn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function VXn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=GXn[i],a="",c;if(o){let d=kEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${Eb({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:d})}\``}else{a=kr({resolveBody:()=>Mh(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let d=MD(n,r,i);d&&(c=ju({mandatePath:d,studio:n,stage:r}))}let u=kEe.renderString(zXn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:MI(t,r),decisions:DI(t)});return{dispatchBlock:Ti({unit:`review-${i}`,hat:"review",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:u,heading:`### Subagent: \`${i}\` (pre-execute review)`,omitBolt:!0}),isEngineRole:o!==void 0}}var kEe,BXn,zXn,GXn,$wt,ekt=v(()=>{"use strict";gt();Kn();vl();ts();ht();Rt();kEe=new _e({autoEscape:!1,useWith:!0}),BXn=ie("@canon:stage/review/dispatch_review"),zXn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),GXn={spec:ie("@canon:stage/review/dispatch_review","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/review/dispatch_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/review/dispatch_review","engine-bodies/cross_stage_consistency.eta.md")};$wt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>VXn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` +`)}});var FXn,jXn,Zwt,Jwt=v(()=>{"use strict";gt();nhe();ts();ht();Uh();Rt();FXn=new _e({autoEscape:!1,useWith:!0}),jXn=ie("@canon:stage/execute/start_unit_hat"),Zwt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=n.hat||"",s=n.units||[],o=n.terminal||!1,a=s.map(c=>qI({slug:e,studio:t,unit:c,stage:r,hat:i,terminal:o}));return FXn.renderString(jXn,{slug:e,stage:r,hat:i,terminal:o,unitCount:s.length,dispatchBlocks:a,showAnnouncement:s.length>1,announcementBlock:bs("workflow-contracts-announcement"),executeContractsBlock:bs("workflow-contracts-execute"),serviceDependenciesBlock:o?bs("service-dependencies"):"",batchDirective:s.length>0?FI(s.length,"subagents"):""})}});var HXn,qXn,Xwt,Qwt=v(()=>{"use strict";gt();ht();Rt();HXn=new _e({autoEscape:!1,useWith:!0}),qXn=ie("@canon:stage/gate/user_gate"),Xwt=({slug:e,action:t})=>{let n=t.stage||"",r=t.gate_kind||"approval",i=t.units||[];return HXn.renderString(qXn,{slug:e,stage:n,gateKind:r,units:i,unitCount:i.length,unitsJson:JSON.stringify(i)})}});function VXn(e){let{slug:t,studio:n,stage:r,role:i,units:s}=e,o=GXn[i],a="",c;if(o){let d=IEe.renderString(o,{slug:t,stage:r}).trim();a=`**Read** \`${Eb({intent:t,stage:r||void 0,kind:"engine-body",name:i,body:d})}\``}else{a=kr({resolveBody:()=>Mh(n,r,i),toolName:"haiku_read_review_agent",toolArgs:{studio:n,stage:r,role:i},intent:t,stage:r||void 0,kind:"mandate",name:i});let d=DD(n,r,i);d&&(c=ju({mandatePath:d,studio:n,stage:r}))}let u=IEe.renderString(zXn,{slug:t,stage:r,role:i,isEngineRole:o!==void 0,mandateRef:a,units:s,existingFeedback:MI(t,r),decisions:DI(t)});return{dispatchBlock:Ti({unit:`review-${i}`,hat:"review",bolt:1,intent:t,stage:r||void 0,agentType:"general-purpose",model:c,promptBody:u,heading:`### Subagent: \`${i}\` (pre-execute review)`,omitBolt:!0}),isEngineRole:o!==void 0}}var IEe,BXn,zXn,GXn,$wt,ekt=v(()=>{"use strict";gt();Kn();vl();ts();ht();Rt();IEe=new _e({autoEscape:!1,useWith:!0}),BXn=ie("@canon:stage/review/dispatch_review"),zXn=ie("@canon:stage/review/dispatch_review","subagent.eta.md"),GXn={spec:ie("@canon:stage/review/dispatch_review","engine-bodies/spec.eta.md"),continuity:ie("@canon:stage/review/dispatch_review","engine-bodies/continuity.eta.md"),"cross-stage-consistency":ie("@canon:stage/review/dispatch_review","engine-bodies/cross_stage_consistency.eta.md")};$wt=({slug:e,studio:t,action:n})=>{let r=n.stage||"",i=Array.isArray(n.dispatches)?n.dispatches:[{role:n.role||"",units:n.units||[]}],s=i.map(c=>VXn({slug:e,studio:t,stage:r,role:c.role,units:c.units})),o=s.map(c=>c.dispatchBlock).join(` -`),a=[...new Set(i.flatMap(c=>c.units))];return kEe.renderString(BXn,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var tkt,WXn,KXn,nkt,rkt=v(()=>{"use strict";gt();ts();ht();Rt();tkt=new _e({autoEscape:!1,useWith:!0}),WXn=ie("@canon:stage/review/write_brief"),KXn=ie("@canon:stage/review/write_brief","subagent.eta.md"),nkt=({slug:e,action:t})=>{let n=t.stage||"",r=tkt.renderString(KXn,{slug:e,stage:n}),i=Ti({unit:"brief",hat:"brief",bolt:1,intent:e,stage:n||void 0,agentType:"general-purpose",promptBody:r,heading:`### Subagent: stage brief (\`${n}\`)`,omitBolt:!0});return tkt.renderString(WXn,{slug:e,stage:n,dispatchBlock:i})}});var YXn,ZXn,ikt,skt=v(()=>{"use strict";gt();Kn();ht();Rt();YXn=new _e({autoEscape:!1,useWith:!0}),ZXn=ie("@canon:stage/start_stage"),ikt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=$i(t,r),o=Nd(t);return YXn.renderString(ZXn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var okt,akt=v(()=>{"use strict";LRt();FRt();HRt();BRt();VRt();YRt();$Rt();tAt();rAt();sAt();aAt();uAt();dAt();pAt();gAt();SAt();EAt();vAt();AAt();kAt();xAt();NAt();MAt();LAt();FAt();HAt();BAt();mwt();ywt();bwt();_wt();vwt();Awt();kwt();xwt();Pwt();Cwt();Dwt();Uwt();jwt();qwt();zwt();Vwt();Ywt();Jwt();Qwt();ekt();rkt();skt();okt=new Map([["start_stage",ikt],["elaborate_loop",hwt],["start_unit",Kwt],["start_unit_hat",Zwt],["dispatch_review",$wt],["write_brief",nkt],["dispatch_approval",PAt],["dispatch_quality_gates",CAt],["user_gate",Xwt],["advance_phase",DAt],["advance_stage",UAt],["complete_stage",jAt],["record_observations",qAt],["record_reflection",oAt],["blocked",gwt],["coverage_review_required",Swt],["dag_cycle_detected",Ewt],["discovery_missing",Twt],["elaboration_insufficient",Rwt],["escalate",wwt],["gate_blocked",Iwt],["output_liveness_review_required",Owt],["outputs_missing",Nwt],["save_wip",Mwt],["unit_inputs_missing",Lwt],["unit_inputs_not_declared",Fwt],["unit_naming_invalid",Hwt],["unit_outputs_empty_iterations",Bwt],["unresolved_dependencies",Gwt],["migrated",wAt],["select_studio",IAt],["intent_review",mAt],["intent_approved",yAt],["intent_complete",bAt],["seal_intent",RAt],["pending_seal",TAt],["external_review_requested",cAt],["revise_unit_specs",lAt],["safe_intent_repair",fAt],["changes_requested",DRt],["close_feedback",URt],["feedback_question",jRt],["fix_quality_gates",qRt],["intent_completion_fix",GRt],["review_fix",KRt],["start_feedback_hat",QRt],["complete",eAt],["error",nAt],["loop_halted",iAt]])});var N6,ckt=v(()=>{"use strict";ji();uo();N6=[{name:"haiku_run_next",description:"Advance an intent through its lifecycle. The workflow engine reads state, determines the next action, performs the state mutation (start stage, advance phase, complete stage, etc.), and returns the action to the agent. The agent follows the returned action \u2014 it never mutates stage or intent state directly. When `intent` is omitted, the workflow engine auto-resolves it from the current git branch (`haiku//main` or `haiku//`) \u2014 lets pickup/revisit skills be thin one-line redirects without asking the user to pick an intent the checkout already names. If omitted and no branch match exists, falls back to the single active intent; errors when zero or multiple active intents are present.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug. Omit to auto-resolve from the current git branch or the sole active intent."},external_review_url:{type:"string",description:"URL where stage was submitted for external review"},state_file:{type:"string",description:"Override path to the engine state file (testing / foreign callers). Omit in normal use."},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}}},{name:"haiku_await_gate",description:"Block on a pending gate-review session for an intent until the user approves, requests changes, or the wait times out (30 min). Pair with `haiku_run_next`: when run_next returns a `gate_review` action, post the included `review_url` to the user (essential for headless / SSH / web-client / mobile / remote-control setups where the MCP host can't auto-open the user's browser), then call this tool to wait for their decision. Opens the review URL in the default browser best-effort by default; pass `auto_open: false` to skip the browser launch. Returns the resulting orchestrator action (advance_stage / changes_requested / external_review_requested / etc.).",inputSchema:l0},{name:"haiku_intent_create",description:'Create a new H\xB7AI\xB7K\xB7U intent. Studio, mode, and (for quick) stage are selected separately via the engine-controlled elicitation chain (haiku_select_studio \u2192 haiku_select_mode \u2192 optional haiku_select_stage). You must provide a crisp `title` (3\u20138 words, \u226480 chars, single line, no trailing punctuation \u2014 e.g. "Add archivable intents"), a richer `description` (2\u20135 sentences covering scope, motivation, and constraints), AND `studio_candidates` \u2014 the 2\u20134 studios (from `haiku_studio_list`) that best fit, which pre-narrow the studio picker so the user is not scrolling the whole registry. The title is NOT derived from the description \u2014 write it deliberately as a human-readable summary. The agent never sets `mode` or `stages` \u2014 those flow through elicitation tools so the user picks them.',inputSchema:UL},{name:"haiku_select_studio",description:"Select or change the studio for an intent. Uses elicitation to present studio options. Cannot be used after the intent has entered any stage.",inputSchema:m0},{name:"haiku_select_mode",description:"Select an execution mode for an intent. Uses elicitation to present mode options. Engine-managed \u2014 agents never write `mode` directly; this tool is the only way to set or change it. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:g0},{name:"haiku_select_stage",description:"Select the single stage for a quick-mode intent. Uses elicitation to present the studio's stage list. Refuses if the intent's mode is not `quick` or if a stage is already set.",inputSchema:y0},{name:"haiku_drop_stage",description:"Drop an OPTIONAL stage from an intent's plan when the elaborate-loop offered a keep-or-drop decision and this intent doesn't need the stage. Removes it from the plan so the next haiku_run_next advances. Only the active, not-yet-started stage can be dropped (drop_stage_not_active / drop_stage_not_optional / drop_stage_already_started).",inputSchema:S0},{name:"haiku_intent_reset",description:"Reset an intent \u2014 preserves the description, deletes all state, and recreates the intent from scratch. Asks for confirmation via elicitation before proceeding.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to reset"}},required:["intent"]}},{name:"haiku_stage_reset",description:"Reset ONE stage of an intent: wipe its units, outputs, artifacts, elaboration, feedback, and stage branch. The intent's other stages are untouched. Use after fixing the stage's hat instructions or studio config when the user wants the agent to re-run that stage cleanly. Requires user confirmation via the SPA picker.",inputSchema:p0},{name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:v0},{name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]}},{name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]}},{name:"haiku_coverage_acknowledge",description:"Record a per-file decision for an upstream output that the current stage's units do not reference. Used to resolve a `coverage_review_required` action emitted by the pre-tick cumulative-input-coverage validator. Decisions persist to `stages//coverage-decisions.json`. The decision MUST be either `out-of-scope` (with rationale explaining why this file is not relevant to the current stage's deliverables) or `covered-by-unit` (with the `unit` slug whose `inputs:` field already includes \u2014 or will include \u2014 the path; redundant for paths added via `haiku_unit_set` but useful when the agent wants to record reasoning). This tool does NOT advance the workflow; call `haiku_run_next` after acknowledging to re-run the validator.",inputSchema:{type:"object",properties:{intent_slug:{type:"string"},stage:{type:"string"},path:{type:"string"},decision:{type:"string",enum:["out-of-scope","covered-by-unit"]},rationale:{type:"string"},unit:{type:"string"}},required:["intent_slug","stage","path","decision","rationale"]}},{name:"haiku_debug",description:"ADMIN: bypass-the-FSM tools to unstick corrupt intents. Force a stage complete (signs all reviews/approvals/QGs for units that have moved through every hat), set an intent field (mode, etc.), reset drift (re-stamp witnesses), mutate any feedback frontmatter, or preview the next cursor head after edits. Every mutation requires SPA-picker confirmation \u2014 the agent cannot act unilaterally. Use only when the normal workflow can't recover (corrupt FM, stuck loop, lost stamps).",inputSchema:d0},{name:"haiku_dispatch_quality_gates",description:"Run a unit's declared quality_gates as the post-execute approval-track actor. On all-pass, stamps approvals.quality_gates on each unit. On failure, files an FB targeting the unit (origin: agent, target_invalidates: [quality_gates]). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug"},stage:{type:"string",description:"Stage name"},units:{type:"array",items:{type:"string"},description:"Unit names to run gates for (stage scope)"},scope:{type:"string",enum:["intent","stage"],description:"Which scope to run. Defaults to 'intent' when stage is empty, else 'stage'."}},required:["intent"]}},{name:"haiku_human_write",description:"Write a file to the intent's tracked surface as a human-attributed write. Use when a user explicitly instructs the agent to write a file on their behalf (e.g. 'save this config to knowledge/'). The file is written atomically, attributed to the human via an action-log entry, and appended to the write-audit log. The baseline is NOT updated \u2014 the next drift-gate tick detects the change and dispatches manual_change_assessment. Allowed destinations: knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/ (or outputs/ alias). Workflow-managed files (units, feedback, intent.md, state.json) are refused.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The slug of the active intent."},path:{type:"string",description:"Destination file path \u2014 intent-relative (e.g. knowledge/brand-guide.md) or absolute within the intent directory. Path is canonicalised (outputs/ \u2192 artifacts/) before validation."},content:{type:"string",description:"File content. UTF-8 string by default. Pass base64-encoded bytes and set content_encoding: 'base64' for binary files."},content_encoding:{type:"string",enum:["utf-8","base64"],description:"Encoding of the content field. Default: 'utf-8'."},claimed_author_id:{type:"string",description:"Self-reported identifier (username, email, UUID) of who the agent BELIEVES gave the instruction. Captured in the audit log as a CLAIM, not an authoritative identity \u2014 the server does not cross-check against any session or OS identity. Reviewers reading audit logs MUST treat this as 'what the agent said' rather than 'who did it'."},human_author_id:{type:"string",description:"DEPRECATED legacy alias for `claimed_author_id`. Accepted for backwards compatibility; mirrored to `claimed_author_id` on persistence. New callers MUST use `claimed_author_id`."},rationale:{type:"string",description:"Short free-text explanation of why the human requested this write. Strongly recommended. Required when the plugin setting human_write_require_rationale is true."},user_instruction_excerpt:{type:"string",description:"The user's instruction as it appeared in chat (first 200 chars). Captured in the audit log for security review. Self-reported by the agent."},overwrite:{type:"boolean",description:"Whether to overwrite the file if it already exists. Default: true. When false, returns path_already_exists if the destination exists."},create_dirs:{type:"boolean",description:"Whether to create intermediate directories if they do not exist. Default: true. When false, returns parent_dir_missing if the parent directory is absent."}},required:["intent_slug","path","content"]}},{name:"haiku_intent_seal",description:"Stamp `verified_at` on intent.md frontmatter after the pre-intent substance verifier passes. The verifier subagent (dispatched via the cursor's pre-intent `elaborate_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to walk into the first stage's elaborate gate. Idempotent (no-op when already verified). Lands on intent main, not a stage branch \u2014 the seal precedes any stage walk.",inputSchema:T0},{name:"haiku_stage_elaboration_record",description:"Capture the per-stage human-conversation outcome at `stages//elaboration.md`. Call this when the conversation with the user has reached alignment for the active stage's `elaborate` action. The artifact's frontmatter records `recorded_at`; `verified_at` is stamped separately by the verifier subagent via `haiku_stage_elaboration_seal`. Overwrites any prior artifact (clearing a stale `verified_at`). Cursor stays at `elaborate_review` until the verifier seals the artifact.",inputSchema:b0},{name:"haiku_stage_elaboration_seal",description:"Stamp `verified_at` on the per-stage elaboration artifact's frontmatter. The verifier subagent (dispatched via the cursor's `elaborate_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `elaborate_review`. Idempotent (no-op when already verified).",inputSchema:E0},{name:"haiku_stage_decompose_seal",description:"Stamp `decompose_verified_at` on the per-stage elaboration artifact's frontmatter (the 4th elaborate-loop completion signal per GOALS.md). The decompose-verifier subagent (dispatched via the cursor's `decompose_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `decompose_review` into the execute phase. Idempotent (no-op when already verified).",inputSchema:_0},{name:"haiku_discovery_complete",description:"Discovery subagent's completion hand-off. Merges the discovery worktree's branch back into its stage branch under a per-stage lock. Call AFTER committing your artifact inside the isolation worktree. Returns `{ ok: true }` on clean merge, `discovery_merge_conflict` with `conflict_files` on a real conflict, `discovery_merge_failed` with the git error on other failures, `intent_not_found` when the intent dir is missing, `worktree_not_found` when the discovery worktree doesn't exist (already merged or never created).",inputSchema:f0},{name:"haiku_review_stamp",description:"Review/approval/intent-review subagent CLOSURE. Records your own `reviews.` / `approvals.` witness and returns a terminal ack \u2014 call this INSTEAD of `haiku_run_next` when you finish reviewing. `kind: review|approval` requires `stage`; `kind: intent_review` omits it. Returns `{ ok: true, stamped: [...], skipped: [...] }` (skipped = units you flagged with an open finding; they stay un-stamped so the cursor reroutes through them on close), or `{ ok: true, found: false }` when nothing was pending for your role (already stamped \u2014 clean no-op). Never walks the cursor and never returns a fix dispatch, so it can't trip the inter-tick loop guard.",inputSchema:h0},{name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/.... Workflow-managed paths (units/, feedback/, state.json, intent.md) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. stages/design/artifacts/spec.md) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]}}]});import{existsSync as JXn,readFileSync as XXn,writeFileSync as QXn}from"node:fs";import{join as $Xn}from"node:path";function tQn(e){let t=hc(),n=$Xn(e.intentDir,"intent.md");if(!JXn(n))return t;let r=XXn(n,"utf8"),i=(0,IEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===xEe||(s.plugin_version=xEe,QXn(n,IEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var IEe,eQn,xEe,ukt=v(()=>{"use strict";IEe=Re(Kt(),1);Nh();eQn="4.0.0",xEe="5.0.0";Nu(eQn,xEe,tQn)});import{existsSync as nQn,readFileSync as rQn,writeFileSync as iQn}from"node:fs";import{join as sQn}from"node:path";function aQn(e){let t=hc(),n=sQn(e.intentDir,"intent.md");if(!nQn(n))return t;let r=rQn(n,"utf8"),i=(0,OEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===PEe||(s.plugin_version=PEe,iQn(n,OEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var OEe,oQn,PEe,lkt=v(()=>{"use strict";OEe=Re(Kt(),1);Nh();oQn="5.0.0",PEe="6.0.0";Nu(oQn,PEe,aQn)});import{existsSync as cQn,readFileSync as uQn,writeFileSync as lQn}from"node:fs";import{join as dQn}from"node:path";function pQn(e){let t=hc(),n=dQn(e.intentDir,"intent.md");if(!cQn(n))return t;let r=uQn(n,"utf8"),i=(0,NEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===CEe||(s.plugin_version=CEe,lQn(n,NEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var NEe,fQn,CEe,dkt=v(()=>{"use strict";NEe=Re(Kt(),1);Nh();fQn="6.0.0",CEe="7.0.0";Nu(fQn,CEe,pQn)});import{existsSync as Sx,readdirSync as C6,readFileSync as DEe,writeFileSync as LEe}from"node:fs";import{join as Kb}from"node:path";function mQn(e){let t=DEe(e,"utf8"),n=(0,Dv.default)(t),r=n.data,i=typeof r.status=="string"?r.status.trim().toLowerCase():"";if(!i)return{migrated:!1,closure_synthesized:!1};let o=(typeof r.created_at=="string"?r.created_at:"")||new Date(0).toISOString(),a=!1;switch(i){case"addressed":r.closed_at||(r.closed_at=o,a=!0),r.closed_by||(r.closed_by="feedback-assessor");break;case"answered":r.closed_at||(r.closed_at=o,a=!0),r.resolution||(r.resolution="answered");break;case"closed":r.closed_at||(r.closed_at=o,a=!0),r.closed_by||(r.closed_by="manual_close");break;case"rejected":r.rejected_at||(r.rejected_at=o,a=!0);break;default:break}return delete r.status,LEe(e,Dv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function gQn(e){let t=DEe(e,"utf8"),n=(0,Dv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,LEe(e,Dv.default.stringify(n.content,r)),!0)}function yQn(e,t){let n=[],r=Kb(e,"feedback");Sx(r)&&n.push(r);let i=Kb(e,"stages");if(Sx(i))for(let s of C6(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Kb(i,s.name,"feedback");Sx(o)&&n.push(o)}for(let s of n)for(let o of C6(s).filter(a=>a.endsWith(".md"))){let a=mQn(Kb(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function SQn(e,t){let n=Kb(e,"stages");if(Sx(n))for(let r of C6(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Kb(n,r.name,"units");if(Sx(i))for(let s of C6(i).filter(o=>o.endsWith(".md")))gQn(Kb(i,s))&&t.units_migrated++}}function bQn(e){let t=hc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};yQn(e.intentDir,n),SQn(e.intentDir,n),t.feedback_migrated=n.feedback_migrated,t.feedback_with_synthesized_closure=n.feedback_with_synthesized_closure,t.units_migrated=n.units_migrated;let r=Kb(e.intentDir,"intent.md");if(Sx(r)){let i=DEe(r,"utf8"),s=(0,Dv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==MEe&&(o.plugin_version=MEe,LEe(r,Dv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Dv,hQn,MEe,fkt=v(()=>{"use strict";Dv=Re(Kt(),1);Nh();hQn="7.0.0",MEe="8.0.0";Nu(hQn,MEe,bQn)});import{existsSync as Lv,readdirSync as X1,readFileSync as FEe,rmSync as pkt,statSync as EQn,writeFileSync as jEe}from"node:fs";import{join as Fa}from"node:path";function hkt(e){let t=e.iterations;if(!Array.isArray(t))return 0;let n=0;for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let i=r;typeof i.reason=="string"&&(i.message===void 0&&i.reason.length>0&&(i.message=i.reason),delete i.reason,n++)}return n}function TQn(e,t,n,r){let i=FEe(e,"utf8"),s=(0,Uv.default)(i),o=s.data,a=!1,c=Array.isArray(o.inputs)?o.inputs:[],u=o.reviews;if(u&&typeof u=="object"&&!Array.isArray(u)){let f=u;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;if(typeof h.at!="string"||h.at.length===0||h.input_witnesses!==void 0)continue;let m=OY({intentDir:t,repoRoot:n,unitInputs:c});h.input_witnesses=m,r.review_slots_backfilled++,a=!0}}let l=o.approvals;if(l&&typeof l=="object"&&!Array.isArray(l)){let f=l;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;h.witnesses!==void 0&&(delete h.witnesses,r.approval_slots_stripped++,a=!0)}}let d=hkt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(jEe(e,Uv.default.stringify(s.content,o)),!0):!1}function vQn(e,t){let n=[Fa(e,"feedback")],r=Fa(e,"stages");if(Lv(r))for(let i of X1(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Fa(r,i.name,"feedback"));for(let i of n)if(Lv(i))for(let s of X1(i).filter(o=>o.endsWith(".md"))){let o=Fa(i,s),a=FEe(o,"utf8"),c=(0,Uv.default)(a),u=c.data,l=hkt(u);l>0&&(t.iterations_message_migrated+=l,jEe(o,Uv.default.stringify(c.content,u)))}}function bx(e,t){if(Lv(e))try{EQn(e).isDirectory()?pkt(e,{recursive:!0,force:!0}):pkt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function RQn(e,t){bx(Fa(e,"drift-markers.json"),t);let n=Fa(e,"stages");if(Lv(n))for(let r of X1(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Fa(n,r.name);bx(Fa(i,"baseline.json"),t),bx(Fa(i,"baseline-content"),t),bx(Fa(i,".baseline-ack"),t),bx(Fa(i,"baseline-thrash.json"),t),bx(Fa(i,"gate-session.json"),t)}}function AQn(e){return Fa(e,"..","..","..")}function wQn(e){let t=hc(),n={units_migrated:0,review_slots_backfilled:0,approval_slots_stripped:0,drift_artifacts_deleted:0,iterations_message_migrated:0},r=AQn(e.intentDir),i=Fa(e.intentDir,"stages");if(Lv(i))for(let o of X1(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Fa(i,o.name,"units");if(Lv(a))for(let c of X1(a).filter(u=>u.endsWith(".md"))){let u=Fa(a,c);TQn(u,e.intentDir,r,n)&&n.units_migrated++}}vQn(e.intentDir,n),RQn(e.intentDir,n),t.units_migrated=n.units_migrated,t.drift_artifacts_deleted=n.drift_artifacts_deleted,t.review_slots_backfilled=n.review_slots_backfilled,t.approval_slots_stripped=n.approval_slots_stripped,t.iterations_message_migrated=n.iterations_message_migrated;let s=Fa(e.intentDir,"intent.md");if(Lv(s)){let o=FEe(s,"utf8"),a=(0,Uv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==UEe&&(c.plugin_version=UEe,jEe(s,Uv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Uv,_Qn,UEe,mkt=v(()=>{"use strict";Uv=Re(Kt(),1);Nh();Xf();_Qn="8.0.0",UEe="9.0.0";Nu(_Qn,UEe,wQn)});import{existsSync as kQn,readFileSync as IQn,writeFileSync as xQn}from"node:fs";import{join as OQn}from"node:path";function NQn(e){let t=hc(),n=OQn(e.intentDir,"intent.md");if(!kQn(n))return t;let r=IQn(n,"utf8"),i=(0,HEe.default)(r),s=i.data,o=typeof s.plugin_version=="string"?s.plugin_version:"",a=!1;if(!(Array.isArray(s.stages)&&s.stages.length>0)&&typeof s.studio=="string"&&s.studio){let u=Fs(s.studio),l=Array.isArray(s.skip_stages)?s.skip_stages.filter(f=>typeof f=="string"):[],d=u.filter(f=>!l.includes(f));d.length>0&&(s.stages=d,a=!0)}return"skip_stages"in s&&(delete s.skip_stages,a=!0),o===qEe&&!a||(s.plugin_version=qEe,xQn(n,HEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var HEe,PQn,qEe,gkt=v(()=>{"use strict";HEe=Re(Kt(),1);Nh();ns();PQn="9.0.0",qEe="10.0.0";Nu(PQn,qEe,NQn)});import{existsSync as ykt,readFileSync as CQn,renameSync as MQn,unlinkSync as DQn,writeFileSync as LQn}from"node:fs";function bkt(e,t){let n=OI(e,Skt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};LQn(r,JSON.stringify(i)),MQn(r,n)}catch{try{ykt(r)&&DQn(r)}catch{}}}function Ekt(e){try{let t=OI(e,Skt);if(!ykt(t))return null;let n=JSON.parse(CQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var Skt,BEe=v(()=>{"use strict";vl();Skt="statusline.json"});import{existsSync as UQn,readFileSync as FQn,rmSync as Nwi,writeFileSync as jQn}from"node:fs";function Rkt(e){let t=Ex.get(e);if(t)return t;try{let n=OI(e,vkt);if(!UQn(n))return;let r=JSON.parse(FQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>wkt?void 0:(Ex.set(e,r),r)}catch{return}}function qQn(e,t){Ex.set(e,t);try{jQn(OI(e,vkt),JSON.stringify(t),"utf8"),HQn.add(e)}catch{}}function GQn(){if(Ex.size<100)return;let e=Date.now();for(let[t,n]of Ex)e-new Date(n.first_seen).getTime()>wkt&&Ex.delete(t)}function kkt(e){if(!e)return"null";let t=e.dispatches,n=Array.isArray(t)?t.map(a=>{let c=a??{};return`${c.feedback_id??""}:${c.hat??""}`}).sort().join(","):null,r=e.units,i=Array.isArray(r)?[...r].map(a=>String(a)).sort().join(","):null,s=e.signals_unmet,o=Array.isArray(s)?s.map(a=>{let c=a??{};return c.agent?`${c.signal??""}:${c.agent}`:`${c.signal??""}`}).sort().join(","):null;return JSON.stringify({action:e.action??null,stage:e.stage??null,unit:e.unit??null,feedback_id:e.feedback_id??null,role:e.role??null,hat:e.hat??null,fb_batch:n,unit_batch:i,signals:o})}function Ikt(e,t){if(GEe(t))return;let n=kkt(t),r=new Date().toISOString(),i=Rkt(e),s=typeof t=="object"&&t!==null&&t.action==="loop_halted",o;if(i&&i.signature===n){let a=i.count+1,c=s?i.recent:[...i.recent,n].slice(-zEe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===BQn&&Ke("haiku.deadlock.suspected",{intent:e,signature:n,consecutive_ticks:String(a),first_seen:i.first_seen})}else if(i){let a=s?i.recent:[...i.recent,n].slice(-zEe),c=i.recent.includes(n);o={signature:n,count:1,first_seen:i.first_seen,updated_at:r,recent:a,churn_fired:c?i.churn_fired:!1};let u=xkt(a);if(!o.churn_fired&&u.length>=_kt){let l=u.slice(-_kt),d=new Set(l);d.size<=Akt&&d.size>1&&(Ke("haiku.deadlock.churn_suspected",{intent:e,recent_signatures:l.join(" | "),distinct_count:String(d.size),window_size:String(l.length),first_seen:i.first_seen}),o.churn_fired=!0)}}else o={signature:n,count:1,first_seen:r,updated_at:r,recent:s?[]:[n],churn_fired:!1};qQn(e,o),GQn()}function GEe(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(VQn.has(t)||t==="intent_review"&&e.role==="user")}function WQn(e){try{return GEe(JSON.parse(e))}catch{return!1}}function xkt(e){return e.filter(t=>!WQn(t))}function Okt(e,t){if(GEe(t))return null;let n=kkt(t),r=Rkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=zQn)return{kind:"repeat",count:r.count+1,signature:n};let i=xkt([...r.recent,n].slice(-zEe));if(i.length>=Tkt){let s=i.slice(-Tkt),o=new Set(s);if(o.size<=Akt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function Pkt(e,t){Ke("haiku.deadlock.halted",{intent:e,loop:t.kind,...t.kind==="repeat"?{signature:t.signature,consecutive_ticks:String(t.count)}:{distinct:String(t.distinct),window:String(t.window)}});let n=t.kind==="repeat"?`The engine emitted the SAME action signature ${t.count} consecutive times for intent '${e}' with no on-disk progress between ticks. Signature: ${t.signature}.`:`The engine cycled through ${t.distinct} alternating action signatures across ${t.window} consecutive ticks for intent '${e}'. The classic A\u2194B churn wedge.`,i=t.kind==="repeat"&&t.signature.includes('"action":"elaborate_loop"')?`**Loop halted \u2014 the elaborate loop isn't advancing.** ${n} +`),a=[...new Set(i.flatMap(c=>c.units))];return IEe.renderString(BXn,{slug:e,stage:r,dispatches:i,dispatchCount:i.length,role:i[0]?.role??"",units:a,unitCount:a.length,isEngineRole:s[0]?.isEngineRole??!1,dispatchBlock:o})}});var tkt,WXn,KXn,nkt,rkt=v(()=>{"use strict";gt();ts();ht();Rt();tkt=new _e({autoEscape:!1,useWith:!0}),WXn=ie("@canon:stage/review/write_brief"),KXn=ie("@canon:stage/review/write_brief","subagent.eta.md"),nkt=({slug:e,action:t})=>{let n=t.stage||"",r=tkt.renderString(KXn,{slug:e,stage:n}),i=Ti({unit:"brief",hat:"brief",bolt:1,intent:e,stage:n||void 0,agentType:"general-purpose",promptBody:r,heading:`### Subagent: stage brief (\`${n}\`)`,omitBolt:!0});return tkt.renderString(WXn,{slug:e,stage:n,dispatchBlock:i})}});var YXn,ZXn,ikt,skt=v(()=>{"use strict";gt();Kn();ht();Rt();YXn=new _e({autoEscape:!1,useWith:!0}),ZXn=ie("@canon:stage/start_stage"),ikt=({slug:e,studio:t,action:n})=>{let r=n.stage,i=n.hats||[],s=$i(t,r),o=Nd(t);return YXn.renderString(ZXn,{slug:e,studio:t,stage:r,hats:i,studioBody:o?.body||"",stageBody:s?.body||"",follows:n.follows||"",parentKnowledgeJson:JSON.stringify(n.parent_knowledge)})}});var okt,akt=v(()=>{"use strict";LRt();FRt();HRt();BRt();VRt();YRt();$Rt();tAt();rAt();sAt();aAt();uAt();dAt();pAt();gAt();SAt();EAt();vAt();AAt();kAt();xAt();NAt();MAt();LAt();FAt();HAt();BAt();mwt();ywt();bwt();_wt();vwt();Awt();kwt();xwt();Pwt();Cwt();Dwt();Uwt();jwt();qwt();zwt();Vwt();Ywt();Jwt();Qwt();ekt();rkt();skt();okt=new Map([["start_stage",ikt],["elaborate_loop",hwt],["start_unit",Kwt],["start_unit_hat",Zwt],["dispatch_review",$wt],["write_brief",nkt],["dispatch_approval",PAt],["dispatch_quality_gates",CAt],["user_gate",Xwt],["advance_phase",DAt],["advance_stage",UAt],["complete_stage",jAt],["record_observations",qAt],["record_reflection",oAt],["blocked",gwt],["coverage_review_required",Swt],["dag_cycle_detected",Ewt],["discovery_missing",Twt],["elaboration_insufficient",Rwt],["escalate",wwt],["gate_blocked",Iwt],["output_liveness_review_required",Owt],["outputs_missing",Nwt],["save_wip",Mwt],["unit_inputs_missing",Lwt],["unit_inputs_not_declared",Fwt],["unit_naming_invalid",Hwt],["unit_outputs_empty_iterations",Bwt],["unresolved_dependencies",Gwt],["migrated",wAt],["select_studio",IAt],["intent_review",mAt],["intent_approved",yAt],["intent_complete",bAt],["seal_intent",RAt],["pending_seal",TAt],["external_review_requested",cAt],["revise_unit_specs",lAt],["safe_intent_repair",fAt],["changes_requested",DRt],["close_feedback",URt],["feedback_question",jRt],["fix_quality_gates",qRt],["intent_completion_fix",GRt],["review_fix",KRt],["start_feedback_hat",QRt],["complete",eAt],["error",nAt],["loop_halted",iAt]])});var C6,ckt=v(()=>{"use strict";ji();uo();C6=[{name:"haiku_run_next",description:"Advance an intent through its lifecycle. The workflow engine reads state, determines the next action, performs the state mutation (start stage, advance phase, complete stage, etc.), and returns the action to the agent. The agent follows the returned action \u2014 it never mutates stage or intent state directly. When `intent` is omitted, the workflow engine auto-resolves it from the current git branch (`haiku//main` or `haiku//`) \u2014 lets pickup/revisit skills be thin one-line redirects without asking the user to pick an intent the checkout already names. If omitted and no branch match exists, falls back to the single active intent; errors when zero or multiple active intents are present.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug. Omit to auto-resolve from the current git branch or the sole active intent."},external_review_url:{type:"string",description:"URL where stage was submitted for external review"},state_file:{type:"string",description:"Override path to the engine state file (testing / foreign callers). Omit in normal use."},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}}},{name:"haiku_await_gate",description:"Block on a pending gate-review session for an intent until the user approves, requests changes, or the wait times out (30 min). Pair with `haiku_run_next`: when run_next returns a `gate_review` action, post the included `review_url` to the user (essential for headless / SSH / web-client / mobile / remote-control setups where the MCP host can't auto-open the user's browser), then call this tool to wait for their decision. Opens the review URL in the default browser best-effort by default; pass `auto_open: false` to skip the browser launch. Returns the resulting orchestrator action (advance_stage / changes_requested / external_review_requested / etc.).",inputSchema:l0},{name:"haiku_intent_create",description:'Create a new H\xB7AI\xB7K\xB7U intent. Studio, mode, and (for quick) stage are selected separately via the engine-controlled elicitation chain (haiku_select_studio \u2192 haiku_select_mode \u2192 optional haiku_select_stage). You must provide a crisp `title` (3\u20138 words, \u226480 chars, single line, no trailing punctuation \u2014 e.g. "Add archivable intents"), a richer `description` (2\u20135 sentences covering scope, motivation, and constraints), AND `studio_candidates` \u2014 the 2\u20134 studios (from `haiku_studio_list`) that best fit, which pre-narrow the studio picker so the user is not scrolling the whole registry. The title is NOT derived from the description \u2014 write it deliberately as a human-readable summary. The agent never sets `mode` or `stages` \u2014 those flow through elicitation tools so the user picks them.',inputSchema:FL},{name:"haiku_select_studio",description:"Select or change the studio for an intent. Uses elicitation to present studio options. Cannot be used after the intent has entered any stage.",inputSchema:m0},{name:"haiku_select_mode",description:"Select an execution mode for an intent. Uses elicitation to present mode options. Engine-managed \u2014 agents never write `mode` directly; this tool is the only way to set or change it. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:g0},{name:"haiku_select_stage",description:"Select the single stage for a quick-mode intent. Uses elicitation to present the studio's stage list. Refuses if the intent's mode is not `quick` or if a stage is already set.",inputSchema:y0},{name:"haiku_drop_stage",description:"Drop an OPTIONAL stage from an intent's plan when the elaborate-loop offered a keep-or-drop decision and this intent doesn't need the stage. Removes it from the plan so the next haiku_run_next advances. Only the active, not-yet-started stage can be dropped (drop_stage_not_active / drop_stage_not_optional / drop_stage_already_started).",inputSchema:S0},{name:"haiku_intent_reset",description:"Reset an intent \u2014 preserves the description, deletes all state, and recreates the intent from scratch. Asks for confirmation via elicitation before proceeding.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to reset"}},required:["intent"]}},{name:"haiku_stage_reset",description:"Reset ONE stage of an intent: wipe its units, outputs, artifacts, elaboration, feedback, and stage branch. The intent's other stages are untouched. Use after fixing the stage's hat instructions or studio config when the user wants the agent to re-run that stage cleanly. Requires user confirmation via the SPA picker.",inputSchema:p0},{name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:v0},{name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]}},{name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]}},{name:"haiku_coverage_acknowledge",description:"Record a per-file decision for an upstream output that the current stage's units do not reference. Used to resolve a `coverage_review_required` action emitted by the pre-tick cumulative-input-coverage validator. Decisions persist to `stages//coverage-decisions.json`. The decision MUST be either `out-of-scope` (with rationale explaining why this file is not relevant to the current stage's deliverables) or `covered-by-unit` (with the `unit` slug whose `inputs:` field already includes \u2014 or will include \u2014 the path; redundant for paths added via `haiku_unit_set` but useful when the agent wants to record reasoning). This tool does NOT advance the workflow; call `haiku_run_next` after acknowledging to re-run the validator.",inputSchema:{type:"object",properties:{intent_slug:{type:"string"},stage:{type:"string"},path:{type:"string"},decision:{type:"string",enum:["out-of-scope","covered-by-unit"]},rationale:{type:"string"},unit:{type:"string"}},required:["intent_slug","stage","path","decision","rationale"]}},{name:"haiku_debug",description:"ADMIN: bypass-the-FSM tools to unstick corrupt intents. Force a stage complete (signs all reviews/approvals/QGs for units that have moved through every hat), set an intent field (mode, etc.), reset drift (re-stamp witnesses), mutate any feedback frontmatter, or preview the next cursor head after edits. Every mutation requires SPA-picker confirmation \u2014 the agent cannot act unilaterally. Use only when the normal workflow can't recover (corrupt FM, stuck loop, lost stamps).",inputSchema:d0},{name:"haiku_dispatch_quality_gates",description:"Run a unit's declared quality_gates as the post-execute approval-track actor. On all-pass, stamps approvals.quality_gates on each unit. On failure, files an FB targeting the unit (origin: agent, target_invalidates: [quality_gates]). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug"},stage:{type:"string",description:"Stage name"},units:{type:"array",items:{type:"string"},description:"Unit names to run gates for (stage scope)"},scope:{type:"string",enum:["intent","stage"],description:"Which scope to run. Defaults to 'intent' when stage is empty, else 'stage'."}},required:["intent"]}},{name:"haiku_human_write",description:"Write a file to the intent's tracked surface as a human-attributed write. Use when a user explicitly instructs the agent to write a file on their behalf (e.g. 'save this config to knowledge/'). The file is written atomically, attributed to the human via an action-log entry, and appended to the write-audit log. The baseline is NOT updated \u2014 the next drift-gate tick detects the change and dispatches manual_change_assessment. Allowed destinations: knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/ (or outputs/ alias). Workflow-managed files (units, feedback, intent.md, state.json) are refused.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The slug of the active intent."},path:{type:"string",description:"Destination file path \u2014 intent-relative (e.g. knowledge/brand-guide.md) or absolute within the intent directory. Path is canonicalised (outputs/ \u2192 artifacts/) before validation."},content:{type:"string",description:"File content. UTF-8 string by default. Pass base64-encoded bytes and set content_encoding: 'base64' for binary files."},content_encoding:{type:"string",enum:["utf-8","base64"],description:"Encoding of the content field. Default: 'utf-8'."},claimed_author_id:{type:"string",description:"Self-reported identifier (username, email, UUID) of who the agent BELIEVES gave the instruction. Captured in the audit log as a CLAIM, not an authoritative identity \u2014 the server does not cross-check against any session or OS identity. Reviewers reading audit logs MUST treat this as 'what the agent said' rather than 'who did it'."},human_author_id:{type:"string",description:"DEPRECATED legacy alias for `claimed_author_id`. Accepted for backwards compatibility; mirrored to `claimed_author_id` on persistence. New callers MUST use `claimed_author_id`."},rationale:{type:"string",description:"Short free-text explanation of why the human requested this write. Strongly recommended. Required when the plugin setting human_write_require_rationale is true."},user_instruction_excerpt:{type:"string",description:"The user's instruction as it appeared in chat (first 200 chars). Captured in the audit log for security review. Self-reported by the agent."},overwrite:{type:"boolean",description:"Whether to overwrite the file if it already exists. Default: true. When false, returns path_already_exists if the destination exists."},create_dirs:{type:"boolean",description:"Whether to create intermediate directories if they do not exist. Default: true. When false, returns parent_dir_missing if the parent directory is absent."}},required:["intent_slug","path","content"]}},{name:"haiku_intent_seal",description:"Stamp `verified_at` on intent.md frontmatter after the pre-intent substance verifier passes. The verifier subagent (dispatched via the cursor's pre-intent `elaborate_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to walk into the first stage's elaborate gate. Idempotent (no-op when already verified). Lands on intent main, not a stage branch \u2014 the seal precedes any stage walk.",inputSchema:T0},{name:"haiku_stage_elaboration_record",description:"Capture the per-stage human-conversation outcome at `stages//elaboration.md`. Call this when the conversation with the user has reached alignment for the active stage's `elaborate` action. The artifact's frontmatter records `recorded_at`; `verified_at` is stamped separately by the verifier subagent via `haiku_stage_elaboration_seal`. Overwrites any prior artifact (clearing a stale `verified_at`). Cursor stays at `elaborate_review` until the verifier seals the artifact.",inputSchema:b0},{name:"haiku_stage_elaboration_seal",description:"Stamp `verified_at` on the per-stage elaboration artifact's frontmatter. The verifier subagent (dispatched via the cursor's `elaborate_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `elaborate_review`. Idempotent (no-op when already verified).",inputSchema:E0},{name:"haiku_stage_decompose_seal",description:"Stamp `decompose_verified_at` on the per-stage elaboration artifact's frontmatter (the 4th elaborate-loop completion signal per GOALS.md). The decompose-verifier subagent (dispatched via the cursor's `decompose_review` action) calls this on a pass; the outer agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `decompose_review` into the execute phase. Idempotent (no-op when already verified).",inputSchema:_0},{name:"haiku_discovery_complete",description:"Discovery subagent's completion hand-off. Merges the discovery worktree's branch back into its stage branch under a per-stage lock. Call AFTER committing your artifact inside the isolation worktree. Returns `{ ok: true }` on clean merge, `discovery_merge_conflict` with `conflict_files` on a real conflict, `discovery_merge_failed` with the git error on other failures, `intent_not_found` when the intent dir is missing, `worktree_not_found` when the discovery worktree doesn't exist (already merged or never created).",inputSchema:f0},{name:"haiku_review_stamp",description:"Review/approval/intent-review subagent CLOSURE. Records your own `reviews.` / `approvals.` witness and returns a terminal ack \u2014 call this INSTEAD of `haiku_run_next` when you finish reviewing. `kind: review|approval` requires `stage`; `kind: intent_review` omits it. Returns `{ ok: true, stamped: [...], skipped: [...] }` (skipped = units you flagged with an open finding; they stay un-stamped so the cursor reroutes through them on close), or `{ ok: true, found: false }` when nothing was pending for your role (already stamped \u2014 clean no-op). Never walks the cursor and never returns a fix dispatch, so it can't trip the inter-tick loop guard.",inputSchema:h0},{name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/.... Workflow-managed paths (units/, feedback/, state.json, intent.md) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. stages/design/artifacts/spec.md) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]}}]});import{existsSync as JXn,readFileSync as XXn,writeFileSync as QXn}from"node:fs";import{join as $Xn}from"node:path";function tQn(e){let t=hc(),n=$Xn(e.intentDir,"intent.md");if(!JXn(n))return t;let r=XXn(n,"utf8"),i=(0,xEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===OEe||(s.plugin_version=OEe,QXn(n,xEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var xEe,eQn,OEe,ukt=v(()=>{"use strict";xEe=Re(Kt(),1);Nh();eQn="4.0.0",OEe="5.0.0";Nu(eQn,OEe,tQn)});import{existsSync as nQn,readFileSync as rQn,writeFileSync as iQn}from"node:fs";import{join as sQn}from"node:path";function aQn(e){let t=hc(),n=sQn(e.intentDir,"intent.md");if(!nQn(n))return t;let r=rQn(n,"utf8"),i=(0,PEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===NEe||(s.plugin_version=NEe,iQn(n,PEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var PEe,oQn,NEe,lkt=v(()=>{"use strict";PEe=Re(Kt(),1);Nh();oQn="5.0.0",NEe="6.0.0";Nu(oQn,NEe,aQn)});import{existsSync as cQn,readFileSync as uQn,writeFileSync as lQn}from"node:fs";import{join as dQn}from"node:path";function pQn(e){let t=hc(),n=dQn(e.intentDir,"intent.md");if(!cQn(n))return t;let r=uQn(n,"utf8"),i=(0,CEe.default)(r),s=i.data;return(typeof s.plugin_version=="string"?s.plugin_version:"")===MEe||(s.plugin_version=MEe,lQn(n,CEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var CEe,fQn,MEe,dkt=v(()=>{"use strict";CEe=Re(Kt(),1);Nh();fQn="6.0.0",MEe="7.0.0";Nu(fQn,MEe,pQn)});import{existsSync as bx,readdirSync as M6,readFileSync as LEe,writeFileSync as UEe}from"node:fs";import{join as Kb}from"node:path";function mQn(e){let t=LEe(e,"utf8"),n=(0,Dv.default)(t),r=n.data,i=typeof r.status=="string"?r.status.trim().toLowerCase():"";if(!i)return{migrated:!1,closure_synthesized:!1};let o=(typeof r.created_at=="string"?r.created_at:"")||new Date(0).toISOString(),a=!1;switch(i){case"addressed":r.closed_at||(r.closed_at=o,a=!0),r.closed_by||(r.closed_by="feedback-assessor");break;case"answered":r.closed_at||(r.closed_at=o,a=!0),r.resolution||(r.resolution="answered");break;case"closed":r.closed_at||(r.closed_at=o,a=!0),r.closed_by||(r.closed_by="manual_close");break;case"rejected":r.rejected_at||(r.rejected_at=o,a=!0);break;default:break}return delete r.status,UEe(e,Dv.default.stringify(n.content,r)),{migrated:!0,closure_synthesized:a}}function gQn(e){let t=LEe(e,"utf8"),n=(0,Dv.default)(t),r=n.data;return r.status===void 0?!1:(delete r.status,UEe(e,Dv.default.stringify(n.content,r)),!0)}function yQn(e,t){let n=[],r=Kb(e,"feedback");bx(r)&&n.push(r);let i=Kb(e,"stages");if(bx(i))for(let s of M6(i,{withFileTypes:!0})){if(!s.isDirectory())continue;let o=Kb(i,s.name,"feedback");bx(o)&&n.push(o)}for(let s of n)for(let o of M6(s).filter(a=>a.endsWith(".md"))){let a=mQn(Kb(s,o));a.migrated&&(t.feedback_migrated++,a.closure_synthesized&&t.feedback_with_synthesized_closure++)}}function SQn(e,t){let n=Kb(e,"stages");if(bx(n))for(let r of M6(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Kb(n,r.name,"units");if(bx(i))for(let s of M6(i).filter(o=>o.endsWith(".md")))gQn(Kb(i,s))&&t.units_migrated++}}function bQn(e){let t=hc(),n={feedback_migrated:0,feedback_with_synthesized_closure:0,units_migrated:0};yQn(e.intentDir,n),SQn(e.intentDir,n),t.feedback_migrated=n.feedback_migrated,t.feedback_with_synthesized_closure=n.feedback_with_synthesized_closure,t.units_migrated=n.units_migrated;let r=Kb(e.intentDir,"intent.md");if(bx(r)){let i=LEe(r,"utf8"),s=(0,Dv.default)(i),o=s.data;(typeof o.plugin_version=="string"?o.plugin_version:"")!==DEe&&(o.plugin_version=DEe,UEe(r,Dv.default.stringify(s.content,o)),t.intent_md_migrated=!0)}return t}var Dv,hQn,DEe,fkt=v(()=>{"use strict";Dv=Re(Kt(),1);Nh();hQn="7.0.0",DEe="8.0.0";Nu(hQn,DEe,bQn)});import{existsSync as Lv,readdirSync as $1,readFileSync as jEe,rmSync as pkt,statSync as EQn,writeFileSync as HEe}from"node:fs";import{join as Fa}from"node:path";function hkt(e){let t=e.iterations;if(!Array.isArray(t))return 0;let n=0;for(let r of t){if(!r||typeof r!="object"||Array.isArray(r))continue;let i=r;typeof i.reason=="string"&&(i.message===void 0&&i.reason.length>0&&(i.message=i.reason),delete i.reason,n++)}return n}function TQn(e,t,n,r){let i=jEe(e,"utf8"),s=(0,Uv.default)(i),o=s.data,a=!1,c=Array.isArray(o.inputs)?o.inputs:[],u=o.reviews;if(u&&typeof u=="object"&&!Array.isArray(u)){let f=u;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;if(typeof h.at!="string"||h.at.length===0||h.input_witnesses!==void 0)continue;let m=NY({intentDir:t,repoRoot:n,unitInputs:c});h.input_witnesses=m,r.review_slots_backfilled++,a=!0}}let l=o.approvals;if(l&&typeof l=="object"&&!Array.isArray(l)){let f=l;for(let[,p]of Object.entries(f)){if(!p||typeof p!="object"||Array.isArray(p))continue;let h=p;h.witnesses!==void 0&&(delete h.witnesses,r.approval_slots_stripped++,a=!0)}}let d=hkt(o);return d>0&&(r.iterations_message_migrated+=d,a=!0),a?(HEe(e,Uv.default.stringify(s.content,o)),!0):!1}function vQn(e,t){let n=[Fa(e,"feedback")],r=Fa(e,"stages");if(Lv(r))for(let i of $1(r,{withFileTypes:!0}))i.isDirectory()&&n.push(Fa(r,i.name,"feedback"));for(let i of n)if(Lv(i))for(let s of $1(i).filter(o=>o.endsWith(".md"))){let o=Fa(i,s),a=jEe(o,"utf8"),c=(0,Uv.default)(a),u=c.data,l=hkt(u);l>0&&(t.iterations_message_migrated+=l,HEe(o,Uv.default.stringify(c.content,u)))}}function Ex(e,t){if(Lv(e))try{EQn(e).isDirectory()?pkt(e,{recursive:!0,force:!0}):pkt(e,{force:!0}),t.drift_artifacts_deleted++}catch{}}function RQn(e,t){Ex(Fa(e,"drift-markers.json"),t);let n=Fa(e,"stages");if(Lv(n))for(let r of $1(n,{withFileTypes:!0})){if(!r.isDirectory())continue;let i=Fa(n,r.name);Ex(Fa(i,"baseline.json"),t),Ex(Fa(i,"baseline-content"),t),Ex(Fa(i,".baseline-ack"),t),Ex(Fa(i,"baseline-thrash.json"),t),Ex(Fa(i,"gate-session.json"),t)}}function AQn(e){return Fa(e,"..","..","..")}function wQn(e){let t=hc(),n={units_migrated:0,review_slots_backfilled:0,approval_slots_stripped:0,drift_artifacts_deleted:0,iterations_message_migrated:0},r=AQn(e.intentDir),i=Fa(e.intentDir,"stages");if(Lv(i))for(let o of $1(i,{withFileTypes:!0})){if(!o.isDirectory())continue;let a=Fa(i,o.name,"units");if(Lv(a))for(let c of $1(a).filter(u=>u.endsWith(".md"))){let u=Fa(a,c);TQn(u,e.intentDir,r,n)&&n.units_migrated++}}vQn(e.intentDir,n),RQn(e.intentDir,n),t.units_migrated=n.units_migrated,t.drift_artifacts_deleted=n.drift_artifacts_deleted,t.review_slots_backfilled=n.review_slots_backfilled,t.approval_slots_stripped=n.approval_slots_stripped,t.iterations_message_migrated=n.iterations_message_migrated;let s=Fa(e.intentDir,"intent.md");if(Lv(s)){let o=jEe(s,"utf8"),a=(0,Uv.default)(o),c=a.data;(typeof c.plugin_version=="string"?c.plugin_version:"")!==FEe&&(c.plugin_version=FEe,HEe(s,Uv.default.stringify(a.content,c)),t.intent_md_migrated=!0)}return t}var Uv,_Qn,FEe,mkt=v(()=>{"use strict";Uv=Re(Kt(),1);Nh();Xf();_Qn="8.0.0",FEe="9.0.0";Nu(_Qn,FEe,wQn)});import{existsSync as kQn,readFileSync as IQn,writeFileSync as xQn}from"node:fs";import{join as OQn}from"node:path";function NQn(e){let t=hc(),n=OQn(e.intentDir,"intent.md");if(!kQn(n))return t;let r=IQn(n,"utf8"),i=(0,qEe.default)(r),s=i.data,o=typeof s.plugin_version=="string"?s.plugin_version:"",a=!1;if(!(Array.isArray(s.stages)&&s.stages.length>0)&&typeof s.studio=="string"&&s.studio){let u=Fs(s.studio),l=Array.isArray(s.skip_stages)?s.skip_stages.filter(f=>typeof f=="string"):[],d=u.filter(f=>!l.includes(f));d.length>0&&(s.stages=d,a=!0)}return"skip_stages"in s&&(delete s.skip_stages,a=!0),o===BEe&&!a||(s.plugin_version=BEe,xQn(n,qEe.default.stringify(i.content,s)),t.intent_md_migrated=!0),t}var qEe,PQn,BEe,gkt=v(()=>{"use strict";qEe=Re(Kt(),1);Nh();ns();PQn="9.0.0",BEe="10.0.0";Nu(PQn,BEe,NQn)});import{existsSync as ykt,readFileSync as CQn,renameSync as MQn,unlinkSync as DQn,writeFileSync as LQn}from"node:fs";function bkt(e,t){let n=OI(e,Skt),r=`${n}.tmp-${process.pid}-${Date.now()}`;try{let i={intent:e,action:t??null,at:new Date().toISOString()};LQn(r,JSON.stringify(i)),MQn(r,n)}catch{try{ykt(r)&&DQn(r)}catch{}}}function Ekt(e){try{let t=OI(e,Skt);if(!ykt(t))return null;let n=JSON.parse(CQn(t,"utf8"));return!n||typeof n!="object"||n.intent!==e?null:n}catch{return null}}var Skt,zEe=v(()=>{"use strict";vl();Skt="statusline.json"});import{existsSync as UQn,readFileSync as FQn,rmSync as Nwi,writeFileSync as jQn}from"node:fs";function Rkt(e){let t=_x.get(e);if(t)return t;try{let n=OI(e,vkt);if(!UQn(n))return;let r=JSON.parse(FQn(n,"utf8")),i=r.updated_at??r.first_seen;return!i||Date.now()-new Date(i).getTime()>wkt?void 0:(_x.set(e,r),r)}catch{return}}function qQn(e,t){_x.set(e,t);try{jQn(OI(e,vkt),JSON.stringify(t),"utf8"),HQn.add(e)}catch{}}function GQn(){if(_x.size<100)return;let e=Date.now();for(let[t,n]of _x)e-new Date(n.first_seen).getTime()>wkt&&_x.delete(t)}function kkt(e){if(!e)return"null";let t=e.dispatches,n=Array.isArray(t)?t.map(a=>{let c=a??{};return`${c.feedback_id??""}:${c.hat??""}`}).sort().join(","):null,r=e.units,i=Array.isArray(r)?[...r].map(a=>String(a)).sort().join(","):null,s=e.signals_unmet,o=Array.isArray(s)?s.map(a=>{let c=a??{};return c.agent?`${c.signal??""}:${c.agent}`:`${c.signal??""}`}).sort().join(","):null;return JSON.stringify({action:e.action??null,stage:e.stage??null,unit:e.unit??null,feedback_id:e.feedback_id??null,role:e.role??null,hat:e.hat??null,fb_batch:n,unit_batch:i,signals:o})}function Ikt(e,t){if(VEe(t))return;let n=kkt(t),r=new Date().toISOString(),i=Rkt(e),s=typeof t=="object"&&t!==null&&t.action==="loop_halted",o;if(i&&i.signature===n){let a=i.count+1,c=s?i.recent:[...i.recent,n].slice(-GEe);o={signature:n,count:a,first_seen:i.first_seen,updated_at:r,recent:c,churn_fired:i.churn_fired},a===BQn&&Ke("haiku.deadlock.suspected",{intent:e,signature:n,consecutive_ticks:String(a),first_seen:i.first_seen})}else if(i){let a=s?i.recent:[...i.recent,n].slice(-GEe),c=i.recent.includes(n);o={signature:n,count:1,first_seen:i.first_seen,updated_at:r,recent:a,churn_fired:c?i.churn_fired:!1};let u=xkt(a);if(!o.churn_fired&&u.length>=_kt){let l=u.slice(-_kt),d=new Set(l);d.size<=Akt&&d.size>1&&(Ke("haiku.deadlock.churn_suspected",{intent:e,recent_signatures:l.join(" | "),distinct_count:String(d.size),window_size:String(l.length),first_seen:i.first_seen}),o.churn_fired=!0)}}else o={signature:n,count:1,first_seen:r,updated_at:r,recent:s?[]:[n],churn_fired:!1};qQn(e,o),GQn()}function VEe(e){if(!e||typeof e!="object")return!1;let t=e.action;return typeof t!="string"?!1:!!(VQn.has(t)||t==="intent_review"&&e.role==="user")}function WQn(e){try{return VEe(JSON.parse(e))}catch{return!1}}function xkt(e){return e.filter(t=>!WQn(t))}function Okt(e,t){if(VEe(t))return null;let n=kkt(t),r=Rkt(e);if(!r)return null;if(r.signature===n&&r.count+1>=zQn)return{kind:"repeat",count:r.count+1,signature:n};let i=xkt([...r.recent,n].slice(-GEe));if(i.length>=Tkt){let s=i.slice(-Tkt),o=new Set(s);if(o.size<=Akt&&o.size>1)return{kind:"churn",distinct:o.size,window:s.length}}return null}function Pkt(e,t){Ke("haiku.deadlock.halted",{intent:e,loop:t.kind,...t.kind==="repeat"?{signature:t.signature,consecutive_ticks:String(t.count)}:{distinct:String(t.distinct),window:String(t.window)}});let n=t.kind==="repeat"?`The engine emitted the SAME action signature ${t.count} consecutive times for intent '${e}' with no on-disk progress between ticks. Signature: ${t.signature}.`:`The engine cycled through ${t.distinct} alternating action signatures across ${t.window} consecutive ticks for intent '${e}'. The classic A\u2194B churn wedge.`,i=t.kind==="repeat"&&t.signature.includes('"action":"elaborate_loop"')?`**Loop halted \u2014 the elaborate loop isn't advancing.** ${n} This is NOT a downstream wedge: the elaborate loop's unmet signal clears only when you change disk state, and re-ticking changed nothing. You re-ran \`haiku_run_next\` without doing the elaborate work. @@ -1166,29 +1166,29 @@ The cursor was about to return the same action again. Repeating it would not pro 1. Surface this halt to the user. Don't auto-recover. 2. Identify what the cursor was waiting for (read the signature above). 3. Either fix the underlying state (commit the missing artifact, sign the verifier, run \`/haiku:haiku-repair\`) or file a feedback explaining why the loop happened. -4. Once the underlying state has changed, the next \`haiku_run_next\` tick will surface a different action and the loop guard will reset.`;return{action:"loop_halted",intent:e,message:i,loop:t.kind}}var Ex,HQn,vkt,BQn,zEe,_kt,Akt,zQn,Tkt,wkt,VQn,Nkt=v(()=>{"use strict";vl();vo();Ex=new Map,HQn=new Set,vkt=".deadlock-history.json";BQn=2,zEe=10,_kt=4,Akt=2,zQn=4,Tkt=8,wkt=3600*1e3;VQn=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as VEe,readdirSync as KQn,readFileSync as Ckt}from"node:fs";function Mkt(e,t){if(!ve())return{action:null};let n=[];try{let o=`${pe(e)}/intent.md`;if(!VEe(o))return{action:null};let a=re(Ckt(o,"utf8")).data,c=[...wn(a,t),""];for(let u of c){let l=u||"intent",d=lo(e,u);if(VEe(d))for(let f of KQn(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(Ckt(`${d}/${f}`,"utf8")).data}catch{continue}if(np(p)!=="closed")continue;let h=Number.parseInt(f.match(/^(\d+)/)?.[1]??"",10);if(!Number.isFinite(h)||h<=0)continue;let m=zd(h),g=Sg(e,l,m);if(!VEe(g))continue;let y=jb(e,l,()=>VD(e,l,m));y.success||n.push({feedbackId:m,scope:l,worktree:g,conflictFiles:y.conflictFiles??[]})}}}catch{return{action:null}}if(n.length===0)return{action:null};let r=n.map(s=>s.feedbackId).join(", "),i=n[0].scope;return{action:{action:"integrate_fix_chains",intent:e,scope:i,items:n.map(s=>({feedback_id:s.feedbackId})),message:`${n.length} fix-chain merge(s) still have unresolved conflicts: ${r}. `+n.map(s=>`For ${s.feedbackId}: resolve the conflicted file(s) in ${s.worktree} (${s.conflictFiles.join(", ")||"see git status"}), \`git add\` them, \`git commit\` to complete the in-worktree merge.`).join(" ")+` Then call \`haiku_run_next { intent: "${e}" }\` \u2014 the engine forward-merges each resolved chain into its base branch on the next tick.`}}}var Dkt=v(()=>{"use strict";yr();q0();Ge();ns()});import{existsSync as Lkt,readdirSync as YQn,readFileSync as Ukt,writeFileSync as ZQn}from"node:fs";import{join as Q1}from"node:path";function JQn(e,t){return new Set(Es(e,t).filter(n=>pb(e,t,n)!==null))}function XQn(e,t){return new Set(bg(e,t).filter(n=>zfe(e,t,n)!==null))}function QQn(e){let t=LD(e);return new Set(jf(e).filter(n=>t[n]!=null))}function $Qn(e,t){let n;try{n=(0,M6.default)(Ukt(e,"utf8"))}catch{return!1}let r=Array.isArray(n.data.iterations)?n.data.iterations:[];if(r.length===0)return!1;let i=a=>typeof a?.hat=="string"&&!t.has(a.hat);if(!r.some(i))return!1;let s=r.filter(a=>!i(a)),o=structuredClone(n.data);return o.iterations=s,ZQn(e,M6.default.stringify(n.content,o)),!0}function WEe(e,t,n,r){if(Lkt(e))for(let i of YQn(e).filter(s=>s.endsWith(".md")))$Qn(Q1(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Fkt(e){let t=[],n=pe(e),r=Q1(n,"intent.md");if(!Lkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,M6.default)(Ukt(r,"utf8"));i=Array.isArray(o.stages)?o.stages:[],s=typeof o.studio=="string"?o.studio:""}catch{return{reconciled:t}}if(!s)return{reconciled:t};for(let o of i)WEe(Q1(n,"stages",o,"units"),JQn(s,o),o,t),WEe(Q1(n,"stages",o,"feedback"),XQn(s,o),`${o}/feedback`,t);return WEe(Q1(n,"feedback"),QQn(s),"feedback",t),{reconciled:t}}var M6,jkt=v(()=>{"use strict";M6=Re(Kt(),1);Ge();Kn();ns()});import{existsSync as e$n,readdirSync as Hkt,readFileSync as qkt,renameSync as t$n,rmSync as n$n,writeFileSync as r$n}from"node:fs";import{join as _x}from"node:path";function i$n(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function Bkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!e$n(s))continue;let o;try{o=Hkt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=i$n(d);if(f===null)continue;let p=c.get(f);p?p.push(d):c.set(f,[d])}let u=0;for(let d of c.keys())d>u&&(u=d);let l=d=>{try{let f=(0,D6.default)(qkt(_x(s,d),"utf8")).data;return typeof f.created_at=="string"?f.created_at:""}catch{return""}};for(let[,d]of c){if(d.length<2)continue;let p=[...d].sort((h,m)=>{let g=l(h),y=l(m);return g!==y?g{"use strict";D6=Re(Kt(),1);Ge()});import{existsSync as $1,readdirSync as o$n,rmSync as Gkt,statSync as Wkt}from"node:fs";import{join as L6}from"node:path";function Vkt(e){if($1(e))try{Wkt(e).isDirectory()?Gkt(e,{recursive:!0,force:!0}):Gkt(e,{force:!0})}catch{}}function Kkt(e){let t=0,n=new Set;for(let i of a$n){let s=L6(e,i);$1(s)&&n.add(s),Vkt(s)}let r=L6(e,"stages");if($1(r)){let i=[];try{i=o$n(r)}catch{i=[]}for(let s of i){let o=L6(r,s),a=!1;try{a=Wkt(o).isDirectory()}catch{continue}if(a)for(let c of c$n){let u=L6(o,c);$1(u)&&n.add(u),Vkt(u)}}}for(let i of n)$1(i)||t++;return t}var a$n,c$n,Ykt=v(()=>{"use strict";a$n=["drift-markers.json"],c$n=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as Fv,readdirSync as U6,readFileSync as Jkt,writeFileSync as u$n}from"node:fs";import{join as Yb}from"node:path";function l$n(e){if(!Fv(e))return null;try{let t=Jkt(e,"utf8"),n=(0,F6.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function d$n(e,t,n){u$n(e,F6.default.stringify(n,t))}function f$n(e,t){let n=Yb(e,"stages",t);if(!Fv(n))return!1;let r=Yb(n,"units");if(Fv(r)&&U6(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||Fv(Yb(n,"elaboration.md")))return!0;let i=Yb(n,"feedback");return!!(Fv(i)&&U6(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||U6(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function Xkt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function p$n(e,t){let n=Xkt(e);if(n.length===0)return!1;let r=n[n.length-1];return r.result!=="advance"?!1:t.length===0?!0:r.hat===t[t.length-1]}function Qkt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=Yb(e,"intent.md");if(!Fv(i))return r;let s={};try{s=(0,F6.default)(Jkt(i,"utf8")).data}catch{return r}let o=wn(s,t);if(o.length<2)return r;for(let a=0;a_.isFile()&&_.name.endsWith(".md")).map(_=>Yb(l,_.name));if(d.length===0)continue;let f=[];try{f=Object.keys(Tl(t,c)).sort()}catch{f=[]}let p=n==="autopilot",h=p?["spec"]:["spec",...f,"user"],m=p?["spec","quality_gates"]:["spec","quality_gates",...f,"user"],g=h$n(t,c),y=[],b=!0;for(let _ of d){let T=l$n(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),b=!1;break}y.push({path:_,data:T.data,body:T.body}),p$n(T.data,g)||(b=!1)}if(!b)continue;let S=!1;for(let _=a+1;_0?A[A.length-1].completed_at:"",k=typeof x=="string"&&x.length>0?x:new Date().toISOString(),P=T.reviews&&typeof T.reviews=="object"?{...T.reviews}:{},N=T.approvals&&typeof T.approvals=="object"?{...T.approvals}:{},C=!1;for(let L of h)P[L]==null&&(P[L]={at:k,migrated:!0,synthesized_reason:Zkt},r.reviewsAdded++,C=!0);for(let L of m)N[L]==null&&(N[L]={at:k,migrated:!0,synthesized_reason:Zkt},r.approvalsAdded++,C=!0);C&&(T.reviews=P,T.approvals=N,d$n(_,T,R),r.unitsTouched++,E=!0)}E&&r.stagesRepaired.push(c)}return r}function h$n(e,t){try{return Es(e,t)||[]}catch{return[]}}var F6,Zkt,$kt=v(()=>{"use strict";F6=Re(Kt(),1);Kn();vo();ns();Zkt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as j6,readdirSync as eIt,readFileSync as tIt}from"node:fs";import{join as H6}from"node:path";function nIt(e,t){let n=[];try{if(!cpe())return{reset:n};let r=pe(e),i=ai(e,t,r);if(!i)return{reset:n};let s=H6(r,"stages",i,"units");if(!j6(s))return{reset:n};let o=Es(t,i),a=o[o.length-1]??"";for(let c of eIt(s).filter(u=>u.endsWith(".md"))){let u=H6(s,c),l;try{l=re(tIt(u,"utf8")).data}catch{continue}let d=typeof l.started_at=="string"&&l.started_at.length>0,f=Array.isArray(l.iterations)?l.iterations:[];if(!d||f.length===0)continue;let p=f[f.length-1];if(p&&p.result==="advance"&&p.hat===a)continue;let h=c.replace(/\.md$/,"");if(j6(gb(e,h)))continue;let{local:m,remote:g}=ape(e,h);m||g||(Array.isArray(l.outputs)?l.outputs.filter(b=>typeof b=="string"&&b.length>0):[]).some(b=>Wh(e,h,b))||(Me(u,"iterations",[]),Me(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function rIt(e,t){let n=[];try{let r=pe(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=H6(r,"stages",i,"units");if(!j6(s))return{cleared:n};let o=ve(),a=Date.now();for(let c of eIt(s).filter(u=>u.endsWith(".md"))){let u=H6(s,c),l;try{l=re(tIt(u,"utf8")).data}catch{continue}let d=Array.isArray(l.iterations)?l.iterations:[];if(d.length===0)continue;let f=d[d.length-1];if(!f||f.result!==null)continue;let p=typeof f.dispatched_at=="string"?f.dispatched_at:"";if(!p)continue;let h=c.replace(/\.md$/,""),m=o&&!j6(gb(e,h)),g=a-Date.parse(p),y=Number.isFinite(g)&&g>m$n;!m&&!y||(f.dispatched_at=null,Me(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var m$n,iIt=v(()=>{"use strict";yr();Ge();ns();Oa();m$n=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as g$n,readdirSync as y$n,readFileSync as S$n,writeFileSync as b$n}from"node:fs";import{join as KEe}from"node:path";function sIt(e,t){let n=[],r=[],i=[];for(let s of t){let o=KEe(ar(e,s),"units");if(!g$n(o))continue;let a=new Set;try{for(let u of Us(e,s)){let l=u.source_ref,d=u,f=typeof d.status=="string"?d.status:null;d.closed_at&&f!=="non_actionable"||f==="closed"||f==="rejected"||typeof l=="string"&&l.startsWith("missing-output:")&&a.add(l)}}catch{}let c;try{c=y$n(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,YEe.default)(S$n(KEe(o,u),"utf8"))}catch{continue}let f=Array.isArray(d.data.outputs)?d.data.outputs.filter(g=>typeof g=="string"):[];if(f.length===0)continue;let p=[],h=[],m=!1;for(let g of f){if(Wh(e,l,g)){p.push(g);continue}let y=yZ(e,l,g);y?(p.push(y),n.push({unit:l,from:g,to:y}),m=!0):(p.push(g),h.push(g))}if(m)try{b$n(KEe(o,u),YEe.default.stringify(d.content,{...d.data,outputs:p}))}catch{}for(let g of h){let y=`missing-output:${l}:${g}`;if(a.has(y)){i.push(`${l}:${g}`);continue}let b=[`Unit \`${l}\` declares an output that is not on disk:`,"",` - \`${g}\``,"","The intent is at closeout and this declared deliverable can't be found at the path the unit recorded. No same-name file with a different extension exists either, so it wasn't auto-repairable (an extension typo like `.test.ts` \u2192 `.test.tsx` self-corrects silently).","","To fix: EITHER correct the `outputs:` entry to the file's real path (if it was renamed/moved after this unit completed \u2014 e.g. a later unit or fix-loop changed it), OR produce the missing file. The fix-loop should land the actual change; a corrected declaration alone is only right when the file genuinely exists under a different name."].join(` -`);try{Qo(e,s,{title:`Unit ${l}: declared output not on disk (${g})`,body:b,origin:"agent",severity:"high",author:"engine:output-validator",authorType:"system",source_ref:y,triaged_at:new Date().toISOString(),targetUnit:l}),r.push(`${l}:${g}`),a.add(y)}catch{}}}}return{repaired:n,filed:r,skipped:i}}var YEe,oIt=v(()=>{"use strict";YEe=Re(Kt(),1);Ge()});import{existsSync as E$n,readdirSync as _$n,readFileSync as T$n}from"node:fs";import{join as aIt}from"node:path";function uIt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=aIt(ar(e,s),"units");if(!E$n(o))return{filed:r,skipped:i};let a=new Set;try{for(let u of Us(e,s)){let l=u.source_ref,d=u;d.closed_at||typeof d.status=="string"&&d.status==="closed"||typeof d.status=="string"&&d.status==="rejected"||typeof l=="string"&&l.startsWith("malformed-inputs:")&&a.add(l)}}catch{}let c;try{c=_$n(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,cIt.default)(T$n(aIt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(g=>typeof g=="string"&&v$n.test(g.trim()));if(f.length===0)continue;let p=u.replace(/\.md$/,""),h=`malformed-inputs:${p}`;if(a.has(h)){i.push(p);continue}let m=[`Unit \`${p}\` declares \`inputs:\` entries that are unit NAMES, not file paths:`,"",...f.map(g=>` - \`${g}\``),"","`inputs:` must list file PATHS the unit reads (e.g. `product/ACCEPTANCE-CRITERIA.md`, a prior-stage artifact, or a producing unit's declared output file). A unit name is not a path the engine can read \u2014 `haiku_unit_start` rejects it as `unit_inputs_missing`, and because the cursor's wave-ready filter gates on `depends_on` (not `inputs`), the unit is selected as ready yet can never start.","","To fix: rewrite the unit so the cross-unit ordering lives in `depends_on:` and `inputs:` references the producing unit's actual output file path(s). Use `haiku_unit_write` (which now rejects the unit-name shape at write time)."].join(` -`);try{Qo(e,s,{title:`Unit ${p}: inputs reference unit names, not file paths`,body:m,origin:"agent",severity:"blocker",author:"engine:input-validator",authorType:"system",source_ref:h,triaged_at:new Date().toISOString(),targetUnit:p}),r.push(p),a.add(h)}catch{}}return{filed:r,skipped:i}}var cIt,v$n,lIt=v(()=>{"use strict";cIt=Re(Kt(),1);Ge();Oa();v$n=/^unit-\d+-/});import{randomBytes as R$n}from"node:crypto";import{existsSync as dIt,readFileSync as A$n,unlinkSync as w$n,writeFileSync as k$n}from"node:fs";import{join as I$n}from"node:path";function fIt(e,t){let n=t??Te();return I$n(n,"intents",e,".verifier-nonces.json")}function ZEe(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function JEe(e){let t=fIt(e);if(!dIt(t))return{};try{let n=A$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function XEe(e,t){let n=fIt(e);if(Object.keys(t).length===0){if(dIt(n))try{w$n(n)}catch{}return}k$n(n,`${JSON.stringify(t,null,2)} -`)}function q6(e,t){let n=JEe(e.slug),r=ZEe(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=R$n(16).toString("hex");return n[r]={nonce:s,tied_to:t},XEe(e.slug,n),s}function Tx(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=JEe(e.slug),r=ZEe(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],XEe(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function QEe(e){let t=JEe(e.slug),n=ZEe(e);t[n]&&(delete t[n],XEe(e.slug,t))}var vx=v(()=>{"use strict";Ge()});import{existsSync as mIt,readFileSync as gIt}from"node:fs";import{join as yIt}from"node:path";function e_e(e,t){let n;try{n=pe(e)}catch{return null}let r=yIt(n,"intent.md");if(!mIt(r))return null;let i=TS(),s=Number(i.split(".")[0]??"0"),o=pIt(r);if(s>=4){let f=typeof o.plugin_version=="string"?o.plugin_version:"0",p=Number(f.split(".")[0]??"0")||0,h=p===s&&JK(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){cSe(`haiku: migrate ${e} to ${m}${h?" (v3-cruft cleanup)":""}`);let b=y.details,S=[];if(h?S.push(`Re-migrated intent '${e}' to '${m}' \u2014 v3-shape frontmatter survived a merge into the otherwise-migrated tree (likely a stage merge into intent main from a pre-migration branch). The migrator is idempotent on already-v4 files; the v3 cruft has been cleaned up.`):S.push(`Migrated intent '${e}' from plugin_version='${f}' to '${m}'.`),S.push(""),S.push("**What changed on disk** (this is intentional):"),b.intent_md_migrated&&S.push("- `intent.md` frontmatter rewritten \u2014 deprecated v3 fields stripped, v4 schema applied"),b.units_migrated>0){let E=b.units_with_synthesized_approval>0?` (${b.units_with_synthesized_approval} had \`status: completed\` \u2192 backfilled \`reviews..at\` and \`approvals..at\` stamps so the cursor treats them as fully done \u2014 without these stamps the cursor would re-emit per-role review/approval actions on every tick. Discovery is NOT backfilled: the cursor reads the artifact on disk, and v3 already wrote it.)`:"";S.push(`- ${b.units_migrated} unit file(s) migrated${E}`)}if(b.feedback_migrated>0){let E=b.feedback_with_synthesized_closure>0?`; ${b.feedback_with_synthesized_closure} had a terminal v3 status \u2192 synthesized \`closed_at\``:"",_=b.feedback_relocated>0?`; ${b.feedback_relocated} relocated to their upstream stage (v4 routes feedback by file location, not by frontmatter hint)`:"";S.push(`- ${b.feedback_migrated} feedback file(s) migrated${E}${_}`)}return b.state_json_deleted>0&&S.push(`- ${b.state_json_deleted} stage \`state.json\` file(s) deleted \u2014 v4 derives stage position from disk (unit files on intent main in git mode, per-unit signature state in fs mode), not from state.json`),b.drift_artifacts_deleted>0&&S.push(`- ${b.drift_artifacts_deleted} drift artifact(s) deleted (\`baseline.json\` / \`drift-markers.json\` / \`baseline-content/\`) \u2014 v4 uses \`body_sha256\` stamped on each signed slot's frontmatter, no separate baseline manifest needed`),S.push(""),S.push("**What was preserved**:"),S.push("- Intent: title, description, mode, studio, started_at, follows"),S.push("- Units: title, body, inputs, outputs, depends_on, quality_gates, model, started_at, **iterations[]** (the bolt/hat history)"),S.push("- Feedback: title, body, origin, author, source_ref, attachment, **iterations[]**, **replies[]**"),S.push(""),S.push("**What v4 derives instead of stores**:"),S.push("- Active stage: derived by walking intent main's filesystem (`findCurrentStage` reads per-stage unit FM)"),S.push("- Current phase: decided per-tick by the cursor walk"),S.push("- Unit progress: read from `iterations[]` (the last entry's `result` and `hat`)"),S.push(""),S.push(`If anything looks broken, run \`haiku_run_next { intent: "${e}" }\` again \u2014 the cursor will pick up where v3 left off. The downgrade-or-redrive advice you might be tempted to give the user is wrong: the data is intact in the new shape.`),jv(e,{position:{track:"intent",action:null},action:{action:"migrated",intent:e,message:S.join(` -`)}})}}catch(y){return Ke("haiku.migrate.failed",{intent:e,from:f,to:m,error:String(y?.message??y)}),jv(e,{position:{track:"intent",action:{kind:"intent_review",role:"spec"}},action:{action:"error",intent:e,message:`Migration from plugin_version='${f}' to '${m}' failed: ${String(y?.message??y)}. Resolve manually before continuing.`}})}}}Kkt(n),SSt(),mTt();let a=o.studio||"";if(!a)return jv(e,{position:{track:"intent",action:null},action:{action:"select_studio",intent:e,message:`Intent '${e}' has no studio.`}});let c=o.mode||"";if(!c)return jv(e,{position:{track:"intent",action:null},action:{action:"select_mode",intent:e,message:`Intent '${e}' has no mode.`}});let u=Array.isArray(o.stages)?o.stages:[];if(c==="quick"&&u.length===0)return jv(e,{position:{track:"intent",action:null},action:{action:"select_stage",intent:e,message:`Intent '${e}' is in quick mode with no stage selected.`}});try{let f=Qkt(n,a,c);f.stagesRepaired.length>0&&Ke("haiku.self_repair.applied",{intent:e,stages_repaired:f.stagesRepaired.join(","),units_touched:String(f.unitsTouched),reviews_added:String(f.reviewsAdded),approvals_added:String(f.approvalsAdded)})}catch(f){Ke("haiku.self_repair.failed",{intent:e,error:String(f?.message??f)})}try{let f=nIt(e,a);f.reset.length>0&&Ke("haiku.unit_recovery.reset",{intent:e,units:f.reset.join(",")})}catch(f){Ke("haiku.unit_recovery.failed",{intent:e,error:String(f?.message??f)})}try{let f=rIt(e,a);f.cleared.length>0&&Ke("haiku.unit_recovery.lease_cleared",{intent:e,units:f.cleared.join(",")})}catch(f){Ke("haiku.unit_recovery.failed",{intent:e,error:String(f?.message??f)})}try{let f=Fkt(e);f.reconciled.length>0&&Ke("haiku.hat_sequence.reconciled",{intent:e,units:f.reconciled.join(",")})}catch(f){Ke("haiku.hat_sequence.reconcile_failed",{intent:e,error:String(f?.message??f)})}try{let f=Bkt(e,wn(o,a));f.renamed.length>0&&Ke("haiku.feedback.id_heal",{intent:e,renamed:String(f.renamed.length)})}catch(f){Ke("haiku.feedback.id_heal.failed",{intent:e,error:String(f?.message??f)})}try{let f=uIt(e,n,a);f.filed.length>0&&Ke("haiku.input_validation.feedback_filed",{intent:e,units:f.filed.join(",")})}catch(f){Ke("haiku.input_validation.failed",{intent:e,error:String(f?.message??f)})}try{if(ai(e,a,n)===null){let f=wn(o,a),p=sIt(e,f);(p.repaired.length>0||p.filed.length>0)&&Ke("haiku.output_validation.closeout_sweep",{intent:e,repaired:String(p.repaired.length),filed:String(p.filed.length)})}}catch(f){Ke("haiku.output_validation.failed",{intent:e,error:String(f?.message??f)})}try{let f=Mkt(e,a);if(f.action)return jv(e,{position:{track:"feedback",action:null},action:f.action})}catch(f){Ke("haiku.fix_chain_merge.failed",{intent:e,error:String(f?.message??f)})}let l=$f({slug:e,intentDir:n,studio:a}),d=l.action?x$n(e,l.action):null;return jv(e,{position:l,action:d})}function SIt(e,t){let n=e_e(e,t);return n?n.action?n.action:{action:"noop",intent:e,message:"Mid-wave noop. In-flight subagents are still working \u2014 wait for them to terminate, then retick."}:{action:"error",message:`Intent '${e}' not found`}}function pIt(e){let t=gIt(e,"utf8");return(0,$Ee.default)(t).data}function x$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=O$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function O$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=hIt(e,t.stage);n.verify_conversation=q6({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=q6({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=hIt(e,t.stage);n.verify_decompose=q6({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function hIt(e,t){let n=yIt(pe(e),"stages",t,"elaboration.md");if(!mIt(n))return null;try{let r=gIt(n,"utf8"),s=(0,$Ee.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function jv(e,t){let n=Okt(e,t.action),r=t;if(n!==null){let i=Pkt(e,n);r={position:t.position,action:i}}return r.action&&Wd(e,{type:"tick_committed",action:r.action.action??"unknown"}),Ikt(e,r.action),bkt(e,r.position.action),r}var $Ee,t_e=v(()=>{"use strict";$Ee=Re(Kt(),1);cx();Ge();vo();f_();Nh();XK();ukt();lkt();dkt();fkt();mkt();gkt();D1();BEe();t1();XK();ns();Oa();Nkt();Dkt();jkt();zkt();Ykt();$kt();iIt();oIt();lIt();vx()});function Wg(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}var zi=v(()=>{"use strict"});function Gn(e,t){return`${P$n} ${e} +4. Once the underlying state has changed, the next \`haiku_run_next\` tick will surface a different action and the loop guard will reset.`;return{action:"loop_halted",intent:e,message:i,loop:t.kind}}var _x,HQn,vkt,BQn,GEe,_kt,Akt,zQn,Tkt,wkt,VQn,Nkt=v(()=>{"use strict";vl();vo();_x=new Map,HQn=new Set,vkt=".deadlock-history.json";BQn=2,GEe=10,_kt=4,Akt=2,zQn=4,Tkt=8,wkt=3600*1e3;VQn=new Set(["user_gate","feedback_question","select_studio","select_mode","select_stage"])});import{existsSync as WEe,readdirSync as KQn,readFileSync as Ckt}from"node:fs";function Mkt(e,t){if(!ve())return{action:null};let n=[];try{let o=`${pe(e)}/intent.md`;if(!WEe(o))return{action:null};let a=re(Ckt(o,"utf8")).data,c=[...wn(a,t),""];for(let u of c){let l=u||"intent",d=lo(e,u);if(WEe(d))for(let f of KQn(d).filter(p=>p.endsWith(".md"))){let p;try{p=re(Ckt(`${d}/${f}`,"utf8")).data}catch{continue}if(np(p)!=="closed")continue;let h=Number.parseInt(f.match(/^(\d+)/)?.[1]??"",10);if(!Number.isFinite(h)||h<=0)continue;let m=zd(h),g=Sg(e,l,m);if(!WEe(g))continue;let y=jb(e,l,()=>WD(e,l,m));y.success||n.push({feedbackId:m,scope:l,worktree:g,conflictFiles:y.conflictFiles??[]})}}}catch{return{action:null}}if(n.length===0)return{action:null};let r=n.map(s=>s.feedbackId).join(", "),i=n[0].scope;return{action:{action:"integrate_fix_chains",intent:e,scope:i,items:n.map(s=>({feedback_id:s.feedbackId})),message:`${n.length} fix-chain merge(s) still have unresolved conflicts: ${r}. `+n.map(s=>`For ${s.feedbackId}: resolve the conflicted file(s) in ${s.worktree} (${s.conflictFiles.join(", ")||"see git status"}), \`git add\` them, \`git commit\` to complete the in-worktree merge.`).join(" ")+` Then call \`haiku_run_next { intent: "${e}" }\` \u2014 the engine forward-merges each resolved chain into its base branch on the next tick.`}}}var Dkt=v(()=>{"use strict";yr();B0();Ge();ns()});import{existsSync as Lkt,readdirSync as YQn,readFileSync as Ukt,writeFileSync as ZQn}from"node:fs";import{join as eU}from"node:path";function JQn(e,t){return new Set(Es(e,t).filter(n=>pb(e,t,n)!==null))}function XQn(e,t){return new Set(bg(e,t).filter(n=>Gfe(e,t,n)!==null))}function QQn(e){let t=UD(e);return new Set(jf(e).filter(n=>t[n]!=null))}function $Qn(e,t){let n;try{n=(0,D6.default)(Ukt(e,"utf8"))}catch{return!1}let r=Array.isArray(n.data.iterations)?n.data.iterations:[];if(r.length===0)return!1;let i=a=>typeof a?.hat=="string"&&!t.has(a.hat);if(!r.some(i))return!1;let s=r.filter(a=>!i(a)),o=structuredClone(n.data);return o.iterations=s,ZQn(e,D6.default.stringify(n.content,o)),!0}function KEe(e,t,n,r){if(Lkt(e))for(let i of YQn(e).filter(s=>s.endsWith(".md")))$Qn(eU(e,i),t)&&r.push(`${n}/${i.replace(/\.md$/,"")}`)}function Fkt(e){let t=[],n=pe(e),r=eU(n,"intent.md");if(!Lkt(r))return{reconciled:t};let i=[],s="";try{let{data:o}=(0,D6.default)(Ukt(r,"utf8"));i=Array.isArray(o.stages)?o.stages:[],s=typeof o.studio=="string"?o.studio:""}catch{return{reconciled:t}}if(!s)return{reconciled:t};for(let o of i)KEe(eU(n,"stages",o,"units"),JQn(s,o),o,t),KEe(eU(n,"stages",o,"feedback"),XQn(s,o),`${o}/feedback`,t);return KEe(eU(n,"feedback"),QQn(s),"feedback",t),{reconciled:t}}var D6,jkt=v(()=>{"use strict";D6=Re(Kt(),1);Ge();Kn();ns()});import{existsSync as e$n,readdirSync as Hkt,readFileSync as qkt,renameSync as t$n,rmSync as n$n,writeFileSync as r$n}from"node:fs";import{join as Tx}from"node:path";function i$n(e){let t=e.match(/^(\d+)-/);return t?Number.parseInt(t[1],10):null}function Bkt(e,t){let n=[],r=["",...t];for(let i of r){let s=lo(e,i);if(!e$n(s))continue;let o;try{o=Hkt(s)}catch{continue}let a=o.filter(d=>d.endsWith(".md")),c=new Map;for(let d of a){let f=i$n(d);if(f===null)continue;let p=c.get(f);p?p.push(d):c.set(f,[d])}let u=0;for(let d of c.keys())d>u&&(u=d);let l=d=>{try{let f=(0,L6.default)(qkt(Tx(s,d),"utf8")).data;return typeof f.created_at=="string"?f.created_at:""}catch{return""}};for(let[,d]of c){if(d.length<2)continue;let p=[...d].sort((h,m)=>{let g=l(h),y=l(m);return g!==y?g{"use strict";L6=Re(Kt(),1);Ge()});import{existsSync as tU,readdirSync as o$n,rmSync as Gkt,statSync as Wkt}from"node:fs";import{join as U6}from"node:path";function Vkt(e){if(tU(e))try{Wkt(e).isDirectory()?Gkt(e,{recursive:!0,force:!0}):Gkt(e,{force:!0})}catch{}}function Kkt(e){let t=0,n=new Set;for(let i of a$n){let s=U6(e,i);tU(s)&&n.add(s),Vkt(s)}let r=U6(e,"stages");if(tU(r)){let i=[];try{i=o$n(r)}catch{i=[]}for(let s of i){let o=U6(r,s),a=!1;try{a=Wkt(o).isDirectory()}catch{continue}if(a)for(let c of c$n){let u=U6(o,c);tU(u)&&n.add(u),Vkt(u)}}}for(let i of n)tU(i)||t++;return t}var a$n,c$n,Ykt=v(()=>{"use strict";a$n=["drift-markers.json"],c$n=["baseline.json","baseline-content",".baseline-ack","baseline-thrash.json","gate-session.json"]});import{existsSync as Fv,readdirSync as F6,readFileSync as Jkt,writeFileSync as u$n}from"node:fs";import{join as Yb}from"node:path";function l$n(e){if(!Fv(e))return null;try{let t=Jkt(e,"utf8"),n=(0,j6.default)(t);return{data:JSON.parse(JSON.stringify(n.data)),body:n.content}}catch{return null}}function d$n(e,t,n){u$n(e,j6.default.stringify(n,t))}function f$n(e,t){let n=Yb(e,"stages",t);if(!Fv(n))return!1;let r=Yb(n,"units");if(Fv(r)&&F6(r,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||Fv(Yb(n,"elaboration.md")))return!0;let i=Yb(n,"feedback");return!!(Fv(i)&&F6(i,{withFileTypes:!0}).some(a=>a.isFile()&&a.name.endsWith(".md"))||F6(n,{withFileTypes:!0}).some(o=>o.isFile()&&o.name.endsWith(".md")))}function Xkt(e){let t=e.iterations;return Array.isArray(t)?t:[]}function p$n(e,t){let n=Xkt(e);if(n.length===0)return!1;let r=n[n.length-1];return r.result!=="advance"?!1:t.length===0?!0:r.hat===t[t.length-1]}function Qkt(e,t,n){let r={stagesRepaired:[],unitsTouched:0,reviewsAdded:0,approvalsAdded:0},i=Yb(e,"intent.md");if(!Fv(i))return r;let s={};try{s=(0,j6.default)(Jkt(i,"utf8")).data}catch{return r}let o=wn(s,t);if(o.length<2)return r;for(let a=0;a_.isFile()&&_.name.endsWith(".md")).map(_=>Yb(l,_.name));if(d.length===0)continue;let f=[];try{f=Object.keys(Tl(t,c)).sort()}catch{f=[]}let p=n==="autopilot",h=p?["spec"]:["spec",...f,"user"],m=p?["spec","quality_gates"]:["spec","quality_gates",...f,"user"],g=h$n(t,c),y=[],b=!0;for(let _ of d){let T=l$n(_);if(!T){Ke("haiku.self_repair.unit_unreadable",{stage:c,path:_}),b=!1;break}y.push({path:_,data:T.data,body:T.body}),p$n(T.data,g)||(b=!1)}if(!b)continue;let S=!1;for(let _=a+1;_0?A[A.length-1].completed_at:"",k=typeof x=="string"&&x.length>0?x:new Date().toISOString(),P=T.reviews&&typeof T.reviews=="object"?{...T.reviews}:{},N=T.approvals&&typeof T.approvals=="object"?{...T.approvals}:{},C=!1;for(let L of h)P[L]==null&&(P[L]={at:k,migrated:!0,synthesized_reason:Zkt},r.reviewsAdded++,C=!0);for(let L of m)N[L]==null&&(N[L]={at:k,migrated:!0,synthesized_reason:Zkt},r.approvalsAdded++,C=!0);C&&(T.reviews=P,T.approvals=N,d$n(_,T,R),r.unitsTouched++,E=!0)}E&&r.stagesRepaired.push(c)}return r}function h$n(e,t){try{return Es(e,t)||[]}catch{return[]}}var j6,Zkt,$kt=v(()=>{"use strict";j6=Re(Kt(),1);Kn();vo();ns();Zkt="pre-tick-self-repair: later stage has on-disk work"});import{existsSync as H6,readdirSync as eIt,readFileSync as tIt}from"node:fs";import{join as q6}from"node:path";function nIt(e,t){let n=[];try{if(!upe())return{reset:n};let r=pe(e),i=ai(e,t,r);if(!i)return{reset:n};let s=q6(r,"stages",i,"units");if(!H6(s))return{reset:n};let o=Es(t,i),a=o[o.length-1]??"";for(let c of eIt(s).filter(u=>u.endsWith(".md"))){let u=q6(s,c),l;try{l=re(tIt(u,"utf8")).data}catch{continue}let d=typeof l.started_at=="string"&&l.started_at.length>0,f=Array.isArray(l.iterations)?l.iterations:[];if(!d||f.length===0)continue;let p=f[f.length-1];if(p&&p.result==="advance"&&p.hat===a)continue;let h=c.replace(/\.md$/,"");if(H6(gb(e,h)))continue;let{local:m,remote:g}=cpe(e,h);m||g||(Array.isArray(l.outputs)?l.outputs.filter(b=>typeof b=="string"&&b.length>0):[]).some(b=>Wh(e,h,b))||(Me(u,"iterations",[]),Me(u,"started_at",null),n.push(h))}}catch{}return{reset:n}}function rIt(e,t){let n=[];try{let r=pe(e),i=ai(e,t,r);if(!i)return{cleared:n};let s=q6(r,"stages",i,"units");if(!H6(s))return{cleared:n};let o=ve(),a=Date.now();for(let c of eIt(s).filter(u=>u.endsWith(".md"))){let u=q6(s,c),l;try{l=re(tIt(u,"utf8")).data}catch{continue}let d=Array.isArray(l.iterations)?l.iterations:[];if(d.length===0)continue;let f=d[d.length-1];if(!f||f.result!==null)continue;let p=typeof f.dispatched_at=="string"?f.dispatched_at:"";if(!p)continue;let h=c.replace(/\.md$/,""),m=o&&!H6(gb(e,h)),g=a-Date.parse(p),y=Number.isFinite(g)&&g>m$n;!m&&!y||(f.dispatched_at=null,Me(u,"iterations",d),n.push(h))}}catch{}return{cleared:n}}var m$n,iIt=v(()=>{"use strict";yr();Ge();ns();Oa();m$n=Number.parseInt(process.env.HAIKU_UNIT_LEASE_TTL_MS??"",10)||45*6e4});import{existsSync as g$n,readdirSync as y$n,readFileSync as S$n,writeFileSync as b$n}from"node:fs";import{join as YEe}from"node:path";function sIt(e,t){let n=[],r=[],i=[];for(let s of t){let o=YEe(ar(e,s),"units");if(!g$n(o))continue;let a=new Set;try{for(let u of Us(e,s)){let l=u.source_ref,d=u,f=typeof d.status=="string"?d.status:null;d.closed_at&&f!=="non_actionable"||f==="closed"||f==="rejected"||typeof l=="string"&&l.startsWith("missing-output:")&&a.add(l)}}catch{}let c;try{c=y$n(o).filter(u=>u.endsWith(".md"))}catch{continue}for(let u of c){let l=u.replace(/\.md$/,""),d;try{d=(0,ZEe.default)(S$n(YEe(o,u),"utf8"))}catch{continue}let f=Array.isArray(d.data.outputs)?d.data.outputs.filter(g=>typeof g=="string"):[];if(f.length===0)continue;let p=[],h=[],m=!1;for(let g of f){if(Wh(e,l,g)){p.push(g);continue}let y=SZ(e,l,g);y?(p.push(y),n.push({unit:l,from:g,to:y}),m=!0):(p.push(g),h.push(g))}if(m)try{b$n(YEe(o,u),ZEe.default.stringify(d.content,{...d.data,outputs:p}))}catch{}for(let g of h){let y=`missing-output:${l}:${g}`;if(a.has(y)){i.push(`${l}:${g}`);continue}let b=[`Unit \`${l}\` declares an output that is not on disk:`,"",` - \`${g}\``,"","The intent is at closeout and this declared deliverable can't be found at the path the unit recorded. No same-name file with a different extension exists either, so it wasn't auto-repairable (an extension typo like `.test.ts` \u2192 `.test.tsx` self-corrects silently).","","To fix: EITHER correct the `outputs:` entry to the file's real path (if it was renamed/moved after this unit completed \u2014 e.g. a later unit or fix-loop changed it), OR produce the missing file. The fix-loop should land the actual change; a corrected declaration alone is only right when the file genuinely exists under a different name."].join(` +`);try{Qo(e,s,{title:`Unit ${l}: declared output not on disk (${g})`,body:b,origin:"agent",severity:"high",author:"engine:output-validator",authorType:"system",source_ref:y,triaged_at:new Date().toISOString(),targetUnit:l}),r.push(`${l}:${g}`),a.add(y)}catch{}}}}return{repaired:n,filed:r,skipped:i}}var ZEe,oIt=v(()=>{"use strict";ZEe=Re(Kt(),1);Ge()});import{existsSync as E$n,readdirSync as _$n,readFileSync as T$n}from"node:fs";import{join as aIt}from"node:path";function uIt(e,t,n){let r=[],i=[],s=ai(e,n,t);if(!s)return{filed:r,skipped:i};let o=aIt(ar(e,s),"units");if(!E$n(o))return{filed:r,skipped:i};let a=new Set;try{for(let u of Us(e,s)){let l=u.source_ref,d=u;d.closed_at||typeof d.status=="string"&&d.status==="closed"||typeof d.status=="string"&&d.status==="rejected"||typeof l=="string"&&l.startsWith("malformed-inputs:")&&a.add(l)}}catch{}let c;try{c=_$n(o).filter(u=>u.endsWith(".md"))}catch{return{filed:r,skipped:i}}for(let u of c){let l;try{l=(0,cIt.default)(T$n(aIt(o,u),"utf8")).data}catch{continue}let f=(Array.isArray(l.inputs)?l.inputs:[]).filter(g=>typeof g=="string"&&v$n.test(g.trim()));if(f.length===0)continue;let p=u.replace(/\.md$/,""),h=`malformed-inputs:${p}`;if(a.has(h)){i.push(p);continue}let m=[`Unit \`${p}\` declares \`inputs:\` entries that are unit NAMES, not file paths:`,"",...f.map(g=>` - \`${g}\``),"","`inputs:` must list file PATHS the unit reads (e.g. `product/ACCEPTANCE-CRITERIA.md`, a prior-stage artifact, or a producing unit's declared output file). A unit name is not a path the engine can read \u2014 `haiku_unit_start` rejects it as `unit_inputs_missing`, and because the cursor's wave-ready filter gates on `depends_on` (not `inputs`), the unit is selected as ready yet can never start.","","To fix: rewrite the unit so the cross-unit ordering lives in `depends_on:` and `inputs:` references the producing unit's actual output file path(s). Use `haiku_unit_write` (which now rejects the unit-name shape at write time)."].join(` +`);try{Qo(e,s,{title:`Unit ${p}: inputs reference unit names, not file paths`,body:m,origin:"agent",severity:"blocker",author:"engine:input-validator",authorType:"system",source_ref:h,triaged_at:new Date().toISOString(),targetUnit:p}),r.push(p),a.add(h)}catch{}}return{filed:r,skipped:i}}var cIt,v$n,lIt=v(()=>{"use strict";cIt=Re(Kt(),1);Ge();Oa();v$n=/^unit-\d+-/});import{randomBytes as R$n}from"node:crypto";import{existsSync as dIt,readFileSync as A$n,unlinkSync as w$n,writeFileSync as k$n}from"node:fs";import{join as I$n}from"node:path";function fIt(e,t){let n=t??Te();return I$n(n,"intents",e,".verifier-nonces.json")}function JEe(e){switch(e.kind){case"intent_elaborate":return"intent.elaborate";case"stage_elaborate":return`stages/${e.stage}/elaborate`;case"stage_decompose":return`stages/${e.stage}/decompose`}}function XEe(e){let t=fIt(e);if(!dIt(t))return{};try{let n=A$n(t,"utf8"),r=JSON.parse(n);return!r||typeof r!="object"||Array.isArray(r)?{}:r}catch{return{}}}function QEe(e,t){let n=fIt(e);if(Object.keys(t).length===0){if(dIt(n))try{w$n(n)}catch{}return}k$n(n,`${JSON.stringify(t,null,2)} +`)}function B6(e,t){let n=XEe(e.slug),r=JEe(e),i=n[r];if(i&&i.tied_to===t)return i.nonce;let s=R$n(16).toString("hex");return n[r]={nonce:s,tied_to:t},QEe(e.slug,n),s}function vx(e,t){if(!t||t.length===0)return{ok:!1,reason:"missing"};let n=XEe(e.slug),r=JEe(e),i=n[r];return i?i.nonce!==t?{ok:!1,reason:"mismatch"}:(delete n[r],QEe(e.slug,n),{ok:!0}):{ok:!1,reason:"missing"}}function $Ee(e){let t=XEe(e.slug),n=JEe(e);t[n]&&(delete t[n],QEe(e.slug,t))}var Rx=v(()=>{"use strict";Ge()});import{existsSync as mIt,readFileSync as gIt}from"node:fs";import{join as yIt}from"node:path";function t_e(e,t){let n;try{n=pe(e)}catch{return null}let r=yIt(n,"intent.md");if(!mIt(r))return null;let i=TS(),s=Number(i.split(".")[0]??"0"),o=pIt(r);if(s>=4){let f=typeof o.plugin_version=="string"?o.plugin_version:"0",p=Number(f.split(".")[0]??"0")||0,h=p===s&&QK(n);if(p>s)Ke("haiku.migrate.skipped_no_regress",{intent:e,source:f,target:i});else if(p0){uSe(`haiku: migrate ${e} to ${m}${h?" (v3-cruft cleanup)":""}`);let b=y.details,S=[];if(h?S.push(`Re-migrated intent '${e}' to '${m}' \u2014 v3-shape frontmatter survived a merge into the otherwise-migrated tree (likely a stage merge into intent main from a pre-migration branch). The migrator is idempotent on already-v4 files; the v3 cruft has been cleaned up.`):S.push(`Migrated intent '${e}' from plugin_version='${f}' to '${m}'.`),S.push(""),S.push("**What changed on disk** (this is intentional):"),b.intent_md_migrated&&S.push("- `intent.md` frontmatter rewritten \u2014 deprecated v3 fields stripped, v4 schema applied"),b.units_migrated>0){let E=b.units_with_synthesized_approval>0?` (${b.units_with_synthesized_approval} had \`status: completed\` \u2192 backfilled \`reviews..at\` and \`approvals..at\` stamps so the cursor treats them as fully done \u2014 without these stamps the cursor would re-emit per-role review/approval actions on every tick. Discovery is NOT backfilled: the cursor reads the artifact on disk, and v3 already wrote it.)`:"";S.push(`- ${b.units_migrated} unit file(s) migrated${E}`)}if(b.feedback_migrated>0){let E=b.feedback_with_synthesized_closure>0?`; ${b.feedback_with_synthesized_closure} had a terminal v3 status \u2192 synthesized \`closed_at\``:"",_=b.feedback_relocated>0?`; ${b.feedback_relocated} relocated to their upstream stage (v4 routes feedback by file location, not by frontmatter hint)`:"";S.push(`- ${b.feedback_migrated} feedback file(s) migrated${E}${_}`)}return b.state_json_deleted>0&&S.push(`- ${b.state_json_deleted} stage \`state.json\` file(s) deleted \u2014 v4 derives stage position from disk (unit files on intent main in git mode, per-unit signature state in fs mode), not from state.json`),b.drift_artifacts_deleted>0&&S.push(`- ${b.drift_artifacts_deleted} drift artifact(s) deleted (\`baseline.json\` / \`drift-markers.json\` / \`baseline-content/\`) \u2014 v4 uses \`body_sha256\` stamped on each signed slot's frontmatter, no separate baseline manifest needed`),S.push(""),S.push("**What was preserved**:"),S.push("- Intent: title, description, mode, studio, started_at, follows"),S.push("- Units: title, body, inputs, outputs, depends_on, quality_gates, model, started_at, **iterations[]** (the bolt/hat history)"),S.push("- Feedback: title, body, origin, author, source_ref, attachment, **iterations[]**, **replies[]**"),S.push(""),S.push("**What v4 derives instead of stores**:"),S.push("- Active stage: derived by walking intent main's filesystem (`findCurrentStage` reads per-stage unit FM)"),S.push("- Current phase: decided per-tick by the cursor walk"),S.push("- Unit progress: read from `iterations[]` (the last entry's `result` and `hat`)"),S.push(""),S.push(`If anything looks broken, run \`haiku_run_next { intent: "${e}" }\` again \u2014 the cursor will pick up where v3 left off. The downgrade-or-redrive advice you might be tempted to give the user is wrong: the data is intact in the new shape.`),jv(e,{position:{track:"intent",action:null},action:{action:"migrated",intent:e,message:S.join(` +`)}})}}catch(y){return Ke("haiku.migrate.failed",{intent:e,from:f,to:m,error:String(y?.message??y)}),jv(e,{position:{track:"intent",action:{kind:"intent_review",role:"spec"}},action:{action:"error",intent:e,message:`Migration from plugin_version='${f}' to '${m}' failed: ${String(y?.message??y)}. Resolve manually before continuing.`}})}}}Kkt(n),SSt(),mTt();let a=o.studio||"";if(!a)return jv(e,{position:{track:"intent",action:null},action:{action:"select_studio",intent:e,message:`Intent '${e}' has no studio.`}});let c=o.mode||"";if(!c)return jv(e,{position:{track:"intent",action:null},action:{action:"select_mode",intent:e,message:`Intent '${e}' has no mode.`}});let u=Array.isArray(o.stages)?o.stages:[];if(c==="quick"&&u.length===0)return jv(e,{position:{track:"intent",action:null},action:{action:"select_stage",intent:e,message:`Intent '${e}' is in quick mode with no stage selected.`}});try{let f=Qkt(n,a,c);f.stagesRepaired.length>0&&Ke("haiku.self_repair.applied",{intent:e,stages_repaired:f.stagesRepaired.join(","),units_touched:String(f.unitsTouched),reviews_added:String(f.reviewsAdded),approvals_added:String(f.approvalsAdded)})}catch(f){Ke("haiku.self_repair.failed",{intent:e,error:String(f?.message??f)})}try{let f=nIt(e,a);f.reset.length>0&&Ke("haiku.unit_recovery.reset",{intent:e,units:f.reset.join(",")})}catch(f){Ke("haiku.unit_recovery.failed",{intent:e,error:String(f?.message??f)})}try{let f=rIt(e,a);f.cleared.length>0&&Ke("haiku.unit_recovery.lease_cleared",{intent:e,units:f.cleared.join(",")})}catch(f){Ke("haiku.unit_recovery.failed",{intent:e,error:String(f?.message??f)})}try{let f=Fkt(e);f.reconciled.length>0&&Ke("haiku.hat_sequence.reconciled",{intent:e,units:f.reconciled.join(",")})}catch(f){Ke("haiku.hat_sequence.reconcile_failed",{intent:e,error:String(f?.message??f)})}try{let f=Bkt(e,wn(o,a));f.renamed.length>0&&Ke("haiku.feedback.id_heal",{intent:e,renamed:String(f.renamed.length)})}catch(f){Ke("haiku.feedback.id_heal.failed",{intent:e,error:String(f?.message??f)})}try{let f=uIt(e,n,a);f.filed.length>0&&Ke("haiku.input_validation.feedback_filed",{intent:e,units:f.filed.join(",")})}catch(f){Ke("haiku.input_validation.failed",{intent:e,error:String(f?.message??f)})}try{if(ai(e,a,n)===null){let f=wn(o,a),p=sIt(e,f);(p.repaired.length>0||p.filed.length>0)&&Ke("haiku.output_validation.closeout_sweep",{intent:e,repaired:String(p.repaired.length),filed:String(p.filed.length)})}}catch(f){Ke("haiku.output_validation.failed",{intent:e,error:String(f?.message??f)})}try{let f=Mkt(e,a);if(f.action)return jv(e,{position:{track:"feedback",action:null},action:f.action})}catch(f){Ke("haiku.fix_chain_merge.failed",{intent:e,error:String(f?.message??f)})}let l=$f({slug:e,intentDir:n,studio:a}),d=l.action?x$n(e,l.action):null;return jv(e,{position:l,action:d})}function SIt(e,t){let n=t_e(e,t);return n?n.action?n.action:{action:"noop",intent:e,message:"Mid-wave noop. In-flight subagents are still working \u2014 wait for them to terminate, then retick."}:{action:"error",message:`Intent '${e}' not found`}}function pIt(e){let t=gIt(e,"utf8");return(0,e_e.default)(t).data}function x$n(e,t){let n={...t,action:t.kind,intent:e};if(t.kind==="elaborate_loop"){let r=O$n(e,t);Object.keys(r).length>0&&(n.verifier_nonces=r)}return n}function O$n(e,t){let n={};for(let r of t.signals_unmet)if(r.signal==="verify_conversation")if(t.stage){let i=hIt(e,t.stage);n.verify_conversation=B6({kind:"stage_elaborate",slug:e,stage:t.stage},i)}else n.verify_conversation=B6({kind:"intent_elaborate",slug:e},null);else if(r.signal==="verify_decompose"&&t.stage){let i=hIt(e,t.stage);n.verify_decompose=B6({kind:"stage_decompose",slug:e,stage:t.stage},i)}return n}function hIt(e,t){let n=yIt(pe(e),"stages",t,"elaboration.md");if(!mIt(n))return null;try{let r=gIt(n,"utf8"),s=(0,e_e.default)(r).data.recorded_at;return typeof s=="string"&&s.length>0?s:null}catch{return null}}function jv(e,t){let n=Okt(e,t.action),r=t;if(n!==null){let i=Pkt(e,n);r={position:t.position,action:i}}return r.action&&Wd(e,{type:"tick_committed",action:r.action.action??"unknown"}),Ikt(e,r.action),bkt(e,r.position.action),r}var e_e,n_e=v(()=>{"use strict";e_e=Re(Kt(),1);ux();Ge();vo();f_();Nh();$K();ukt();lkt();dkt();fkt();mkt();gkt();U1();zEe();r1();$K();ns();Oa();Nkt();Dkt();jkt();zkt();Ykt();$kt();iIt();oIt();lIt();Rx()});function Wg(e){for(let t of["intent","slug","stage","unit","feedback_id"]){let n=e[t];if(typeof n=="string"&&/[/\\]|\.\./.test(n))return{content:[{type:"text",text:`Invalid ${t}: "${n}" \u2014 path identifiers must not contain path separators or traversal sequences.`}],isError:!0}}return null}var zi=v(()=>{"use strict"});function Gn(e,t){return`${P$n} ${e} -${t}`}var P$n,Hv=v(()=>{"use strict";P$n="**ANNOUNCE TO USER (post in chat now):**"});function bIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function EIt(e){return e.includes("lost presence")}function _It(e,t,n){if(e)return e;let r=n?`gate_review_url_${n}`:"";return r&&typeof t[r]=="string"?t[r]:typeof t.gate_review_url=="string"?t.gate_review_url:""}function TIt(e){return{content:[{type:"text",text:`Still waiting on the gate review for "${e}". The wait window expired without a decision \u2014 this is normal for long review windows. Call haiku_await_gate { intent: "${e}" } again to keep waiting (the session and review URL are unchanged); or haiku_run_next { intent: "${e}" } if you suspect the session was lost.`}],isError:!1}}var vIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function N$n(e,t){let n=e;if(!t.subagents.supported)return n=n.replace(/Spawn one `Task` subagent per artifact\b[^.]*\./g,"Execute each artifact task sequentially \u2014 complete one before starting the next."),n=n.replace(/Spawn a subagent for the "([^"]+)" hat\./g,'Execute the "$1" hat task directly.'),n=n.replace(/spawn one Agent subagent per unit \*\*in a single message\*\*/g,"execute each unit sequentially"),n=n.replace(/Spawn one subagent per review agent \(in parallel\)/g,"Execute each review agent check sequentially"),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time."),n=n.replace(/\*\*IMMEDIATELY\*\* spawn one Agent subagent per unit \*\*in a single message\*\*[^.]*\./g,"**IMMEDIATELY** start executing units one at a time. No questions, no confirmation, no menu."),n=n.replace(/Agent type: `[^`]+`\n?/g,""),n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\./g,""),n=n.replace(/\bsubagent\b/g,"task"),n=n.replace(/\bSubagent\b/g,"Task"),n;let r=t.subagents.toolNames[0]||"Agent";return r!=="Agent"&&(n=n.replace(/`Agent`/g,`\`${r}\``),n=n.replace(/one Agent subagent/g,`one \`${r}\` call`),n=n.replace(/Agent tool calls/g,`\`${r}\` calls`),n=n.replace(/Agent tool's `model:`/g,`\`${r}\` tool's model`),n=n.replace(/tool="Agent"/g,`tool="${r}"`)),r!=="Task"&&(n=n.replace(/`Task` subagent/g,`\`${r}\``),n=n.replace(/tool="Task"/g,`tool="${r}"`)),t.hooks||(n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\. /g,"")),t.subagents.parallelSpawn||(n=n.replace(/\*\*in a single message\*\* \(all [^)]+\)/g,""),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time.")),n}function C$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>jN(r))}function M$n(e,t){if(t.nativeAskUser)return e;let n=e;return n=n.replace(/`AskUserQuestion`\s*with\s*(an\s*)?`options\[\]`\s*array/g,"a numbered list of options"),n=n.replace(/\| Scope decisions, tradeoffs, A\/B\/C choices \| `AskUserQuestion` with options\[\] \|[^\n]*/g,"| Scope decisions, tradeoffs, A/B/C choices | Present a numbered list of options |"),n=n.replace(/Use `AskUserQuestion`\b/g,"Present options to the user"),n=n.replace(/`AskUserQuestion`/g,"a structured question with options"),n=n.replace(/\*\*Good:\*\* `AskUserQuestion\(\{[^}]+\}\)`/g,'**Good:** Presenting clear numbered options like "1. OAuth 2.0 + PKCE, 2. Magic link, 3. SSO via SAML, 4. Other"'),n}function D$n(e,t){if(t.modelProvider==="anthropic")return e;let n=e;for(let[r,i]of Object.entries(t.modelTierMap))r!==i&&(n=n.replace(new RegExp(`model: "${r}"`,"g"),`model: "${i}"`));return n}function L$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function U$n(e,t){if(t.hooks)return e;let n=e;return n=n.replace(/via the `subagent-context` hook/g,"automatically"),n=n.replace(/`subagent-context` hook/g,"context injection"),n}function B6(e){let t=Mi();if(oh())return e;let n=e;return n=N$n(n,t),n=C$n(n,t),n=M$n(n,t),n=D$n(n,t),n=L$n(n,t),n=U$n(n,t),n}var n_e=v(()=>{"use strict";_f()});function RIt(e,t,n){Rx(n);let r=eU(e,t,n,pe(e)),i=B6(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} +${t}`}var P$n,Hv=v(()=>{"use strict";P$n="**ANNOUNCE TO USER (post in chat now):**"});function bIt(e){return e.includes("Review timeout")||e.includes("Session timeout")||e.includes("timeout")||e.includes("Timeout")}function EIt(e){return e.includes("lost presence")}function _It(e,t,n){if(e)return e;let r=n?`gate_review_url_${n}`:"";return r&&typeof t[r]=="string"?t[r]:typeof t.gate_review_url=="string"?t.gate_review_url:""}function TIt(e){return{content:[{type:"text",text:`Still waiting on the gate review for "${e}". The wait window expired without a decision \u2014 this is normal for long review windows. Call haiku_await_gate { intent: "${e}" } again to keep waiting (the session and review URL are unchanged); or haiku_run_next { intent: "${e}" } if you suspect the session was lost.`}],isError:!1}}var vIt=v(()=>{"use strict"});function ye(e){return{content:[{type:"text",text:e}]}}var vs=v(()=>{"use strict"});function N$n(e,t){let n=e;if(!t.subagents.supported)return n=n.replace(/Spawn one `Task` subagent per artifact\b[^.]*\./g,"Execute each artifact task sequentially \u2014 complete one before starting the next."),n=n.replace(/Spawn a subagent for the "([^"]+)" hat\./g,'Execute the "$1" hat task directly.'),n=n.replace(/spawn one Agent subagent per unit \*\*in a single message\*\*/g,"execute each unit sequentially"),n=n.replace(/Spawn one subagent per review agent \(in parallel\)/g,"Execute each review agent check sequentially"),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time."),n=n.replace(/\*\*IMMEDIATELY\*\* spawn one Agent subagent per unit \*\*in a single message\*\*[^.]*\./g,"**IMMEDIATELY** start executing units one at a time. No questions, no confirmation, no menu."),n=n.replace(/Agent type: `[^`]+`\n?/g,""),n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\./g,""),n=n.replace(/\bsubagent\b/g,"task"),n=n.replace(/\bSubagent\b/g,"Task"),n;let r=t.subagents.toolNames[0]||"Agent";return r!=="Agent"&&(n=n.replace(/`Agent`/g,`\`${r}\``),n=n.replace(/one Agent subagent/g,`one \`${r}\` call`),n=n.replace(/Agent tool calls/g,`\`${r}\` calls`),n=n.replace(/Agent tool's `model:`/g,`\`${r}\` tool's model`),n=n.replace(/tool="Agent"/g,`tool="${r}"`)),r!=="Task"&&(n=n.replace(/`Task` subagent/g,`\`${r}\``),n=n.replace(/tool="Task"/g,`tool="${r}"`)),t.hooks||(n=n.replace(/Each subagent inherits worktree scoping via the `subagent-context` hook\. /g,"")),t.subagents.parallelSpawn||(n=n.replace(/\*\*in a single message\*\* \(all [^)]+\)/g,""),n=n.replace(/Spawn ALL of them in a single response \(parallel\)\./g,"Execute them one at a time.")),n}function C$n(e,t){return t.promptsAsSlashCommands?e:e.replace(/\/haiku:(\w[\w-]*)/g,(n,r)=>HN(r))}function M$n(e,t){if(t.nativeAskUser)return e;let n=e;return n=n.replace(/`AskUserQuestion`\s*with\s*(an\s*)?`options\[\]`\s*array/g,"a numbered list of options"),n=n.replace(/\| Scope decisions, tradeoffs, A\/B\/C choices \| `AskUserQuestion` with options\[\] \|[^\n]*/g,"| Scope decisions, tradeoffs, A/B/C choices | Present a numbered list of options |"),n=n.replace(/Use `AskUserQuestion`\b/g,"Present options to the user"),n=n.replace(/`AskUserQuestion`/g,"a structured question with options"),n=n.replace(/\*\*Good:\*\* `AskUserQuestion\(\{[^}]+\}\)`/g,'**Good:** Presenting clear numbered options like "1. OAuth 2.0 + PKCE, 2. Magic link, 3. SSO via SAML, 4. Other"'),n}function D$n(e,t){if(t.modelProvider==="anthropic")return e;let n=e;for(let[r,i]of Object.entries(t.modelTierMap))r!==i&&(n=n.replace(new RegExp(`model: "${r}"`,"g"),`model: "${i}"`));return n}function L$n(e,t){return t.hooks?e:e.replace(/\bpermission_mode\b[^\n]*/g,"")}function U$n(e,t){if(t.hooks)return e;let n=e;return n=n.replace(/via the `subagent-context` hook/g,"automatically"),n=n.replace(/`subagent-context` hook/g,"context injection"),n}function z6(e){let t=Mi();if(oh())return e;let n=e;return n=N$n(n,t),n=C$n(n,t),n=M$n(n,t),n=D$n(n,t),n=L$n(n,t),n=U$n(n,t),n}var r_e=v(()=>{"use strict";_f()});function RIt(e,t,n){Ax(n);let r=nU(e,t,n,pe(e)),i=z6(r),{tell_user:s,next_step:o,...a}=n;return`${JSON.stringify(a,null,2)} --- -${i}`}var AIt=v(()=>{"use strict";n_e();Kd();Ge()});import{existsSync as wIt,mkdirSync as F$n,readdirSync as j$n,readFileSync as H$n,writeFileSync as q$n}from"node:fs";import{join as Yd}from"node:path";function nU(e){if(!wIt(e))return{};let t=H$n(e,"utf8"),{data:n}=re(t);return n}function tU(e,t,n){let r=pe(e),i=Yd(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=nU(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Cl(i),Me(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Yd(r,"stages",n,"units");if(!wIt(a))return;let c=j$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Yd(a,u),d=nU(l),f=d[o]&&typeof d[o]=="object"?d[o]:{};if(s){let p=Array.isArray(d.inputs)?d.inputs:[];f.user=Cl(l,{intentDir:r,unitInputs:p})}else f.user=Bd();Me(l,o,f)}}var B$n,kIt,IIt=v(()=>{"use strict";yr();Xf();Kd();sh();c1();$c();ji();uo();sZ();Ge();zi();Hv();vIt();vs();AIt();B$n=(e,t)=>{};kIt={name:"haiku_await_gate",description:"Resume / recovery entry point for a pending gate-review session. Under v4 the canonical flow blocks INSIDE haiku_run_next \u2014 the engine prepares the session, opens the browser best-effort, awaits the user's decision, and returns the post-decision action all in one tool call. Use haiku_await_gate only when the original tick timed out, the MCP host disconnected, or the agent restart lost the in-memory blocking call. The live review session is resolved from the in-memory registry keyed by intent slug, NOT a repo-persisted pointer (a page refresh reconnects the same logical session; pass session_id to target a specific one). Returns the same post-decision action shape (advance_stage / advance_phase / changes_requested / external_review_requested / intent_complete / etc.).",inputSchema:l0,async handle(e,t){let n=Be(e,Vme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Yd(pe(i),"intent.md"),a=nU(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),x0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=ZL(i),h=l?`gate_review_session_${l}`:"",m=h?a[h]??"":"",g=a.gate_review_session_id||"",y=f&&g||m,b=r.session_id||p?.session_id||y;if(!b){if(!l&&!f)return ye(`No active stage on intent '${i}' and no pending intent-scope gate \u2014 nothing to await. Call haiku_run_next first.`);let N=l?`stage '${l}'`:"intent scope";return ye(`No live gate-review session for intent '${i}' (${N}). Call haiku_run_next to (re)open the gate \u2014 it re-derives the gate from the cursor and reattaches the live session.`)}let S=l,E=r.next_stage!==void 0?r.next_stage:a.gate_review_next_stage??null,_=r.next_phase!==void 0?r.next_phase:a.gate_review_next_phase??null,T=r.gate_context||a.gate_review_context||"stage_gate",R=`.haiku/intents/${i}`,A=r_e();if(!A)return ye("Gate-review await handler not registered \u2014 server.ts wiring is broken. File a bug.");let x=r.review_url,k=r.auto_open!==!1;s&&qi(s,{event:"haiku_await_gate_entered",intent:i,stage:S,session_id:b,auto_open:k});let P=N=>RIt(i,c,N);try{let N=f?["gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase"]:l?[`gate_review_session_${l}`,`gate_review_url_${l}`,"gate_review_context","gate_review_next_stage","gate_review_next_phase"]:[];N.length>0&&Yh(o,N)}catch{}try{let N=await A(b,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=gr(i,S);if(!C.ok)return Zb(i,S,C,"after review wait");if(s&&qi(s,{event:"gate_decision",intent:i,stage:S,decision:N.decision,feedback:N.feedback}),N.decision==="advance")return Xr(i,s),ye(P({action:"advance",intent:i,stage:S,message:Gn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(N.decision==="approved"){if(T==="intent_completion"){let U=nU(Yd(pe(i),"intent.md")).studio||"",M=iU(i,U);if(M.length>0)return ye(P({action:"error",intent:i,message:`Cannot complete intent '${i}': the following stages have not completed: [${M.join(", ")}]. Run those stages to completion before approving intent_completion.`,incomplete_stages:M}));tU(i,"intent_completion",S),V6(i),Xr(i,s);let H={action:"intent_complete",intent:i,studio:U,message:Gn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return ye(P(H))}if(T==="intent_review"){tU(i,"intent_review",S);let U=Yd(process.cwd(),R,"intent.md");Me(U,"intent_reviewed",!0),S&&_?rU(i,S,_):(Yh(U,["phase"]),ci(i)),wt(`haiku: intent ${i} approved by user`),Xr(i,s);let M={action:"intent_approved",intent:i,stage:S||null,from_phase:"intent_review",to_phase:_||"execute",message:S?Gn(`The user approved intent "${i}" \u2014 advancing to ${_||"execute"}.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`):Gn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(M))}if(T==="elaborate_to_execute"&&_){tU(i,"elaborate_to_execute",S),rU(i,S,_),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:_,message:Gn(`The user approved the specs for stage "${S}" \u2014 advancing to ${_}.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(U))}if(E){tU(i,"stage_gate",S),z6(i,S,E),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:E,gate_outcome:"advanced",message:Gn(`The user approved stage "${S}" \u2014 advancing to "${E}".`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT summarize, do NOT say "want me to continue?" \u2014 the gate was already approved. Just call the tool.`)};return ye(P(U))}tU(i,"stage_gate",S),Ax(i,S,"advanced"),Xr(i,s);let F=nU(Yd(pe(i),"intent.md")).studio||"",V=G6(i,F,Gn(`The user approved the final stage "${S}" \u2014 intent complete.`,"Report the completion summary to the user."));return ye(P(V))}if(N.decision==="external_review"){Ax(i,S,"advanced"),Xr(i,s);let F;if(ve()){let{openStagePullRequest:U}=await Promise.resolve().then(()=>(yr(),YD)),M=U({slug:i,stage:S});if(M.createdUrl){try{let H=Yd(pe(i),"intent.md");Me(H,"external_review_url",M.createdUrl)}catch{}F=Gn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${M.createdUrl}`,`Tell the user: "I opened the MR at ${M.createdUrl} \u2014 review and merge it when you're ready. Run /haiku:haiku-pickup after the merge to continue." The MR was created against \`haiku/${i}/main\` (NOT the repo default) so the workflow engine can detect the merge.`)}else M.compareUrl?F=Gn(`The user routed stage "${S}" to external review. ${M.message}`,`The engine couldn't open the MR programmatically (${M.prError??M.pushError??"no gh/glab on PATH"}). Tell the user to click ${M.compareUrl} to open it manually \u2014 that link pre-fills base \`haiku/${i}/main\` so the merge signal lands correctly. After they paste the resulting URL back to you, call haiku_run_next { intent: "${i}", external_review_url: "" }.`):F=Gn(`The user routed stage "${S}" to external review.`,`${M.message} Open ONE merge request from branch \`haiku/${i}/${S}\` to \`haiku/${i}/main\` (NOT the repo default \u2014 the engine detects the merge by intent main, not by the default branch). Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }.`)}else F=Gn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let V={action:"external_review_requested",intent:i,stage:S,feedback:N.feedback,message:F};return ye(P(V))}let L=N.annotations,G=typeof L?.revisit_action=="string"?L.revisit_action:null;if(G)return Xr(i,s),ye(P({action:G,intent:i,stage:S,message:L?.revisit_message||`Revisit dispatched on stage '${S}'. Follow the instructions returned by the orchestrator.`}));let W=Yd(process.cwd(),R),q=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?rL(W,S):!1)||!S?[]:I6(i,S,N),Q=q.length>0?` Created ${q.length} feedback file(s): ${q.join(", ")}.`:"";if(T==="intent_review"){Xr(i,s);let F={action:"changes_requested",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,feedback_ids:q,message:Gn(`The user requested changes on intent "${i}": ${N.feedback||"(see annotations)"}.`,`${Q?`${Q.trim()} `:""}Revise the intent description, then call haiku_run_next { intent: "${i}" } again.`)};return ye(P(F))}if(T==="intent_completion"){let F=Yd(pe(i),"intent.md");Me(F,"completion_review_dispatched",!1),Me(F,"completion_review_skipped",!1),B$n(i,""),ci(i),wt(`haiku: intent ${i} completion-review rejected, reopening for revisit`),Xr(i,s);let V={action:"changes_requested",intent:i,stage:null,gate_context:"intent_completion",feedback:N.feedback,annotations:N.annotations,feedback_ids:q,message:Gn(`The user requested changes at intent-completion review on "${i}": ${N.feedback||"(see annotations)"}.`,`${Q?`${Q.trim()} `:""}The intent is no longer in final review. Log stage_revisit feedback at the target stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` to re-open the relevant stage, then address the feedback and call \`haiku_run_next\` to drive back to final review.`)};return ye(P(V))}if(T==="elaborate_to_execute"){Xr(i,s);let F=Eg(W,S).filter(U=>U.status!=="completed").map(U=>U.name),V={action:"revise_unit_specs",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,unstarted_units:F,units_dir:`.haiku/intents/${i}/stages/${S}/units/`,message:Gn(`The user requested changes on stage "${S}" unit specs: ${N.feedback||"(see annotations)"}.`,`Nothing has been built yet \u2014 NO feedback files were created. Resolve by EDITING the unstarted unit.md files in \`.haiku/intents/${i}/stages/${S}/units/\` directly (or adding new unit files if the scope needs expansion). Do NOT draft a full new wave of units to "close feedback" \u2014 that's a post-execute flow. When the edits are done, call \`haiku_run_next { intent: "${i}" }\` again to re-open the review gate.`)};return ye(P(V))}Xr(i,s);let B={action:"changes_requested",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,feedback_ids:q,message:Gn(`The user requested changes on stage "${S}": ${N.feedback||"(see annotations)"}.`,`${Q?`${Q.trim()} `:""}Address the feedback, then call haiku_run_next { intent: "${i}" } again.`)};return ye(P(B))}catch(N){let C=N instanceof Error?N.message:String(N),L=N instanceof Error?N.stack:"";console.error(`[haiku] gate_review failed: ${C}`),ms(N,{intent:i,stage:S});try{let W=Yd(process.cwd(),".haiku","logs");F$n(W,{recursive:!0}),q$n(Yd(W,"gate-review-error.log"),`${new Date().toISOString()} +${i}`}var AIt=v(()=>{"use strict";r_e();Kd();Ge()});import{existsSync as wIt,mkdirSync as F$n,readdirSync as j$n,readFileSync as H$n,writeFileSync as q$n}from"node:fs";import{join as Yd}from"node:path";function iU(e){if(!wIt(e))return{};let t=H$n(e,"utf8"),{data:n}=re(t);return n}function rU(e,t,n){let r=pe(e),i=Yd(r,"intent.md");if(t==="intent_completion"||t==="intent_review"){let u=iU(i),l=u.approvals&&typeof u.approvals=="object"?u.approvals:{};l.user=Cl(i),Me(i,"approvals",l);return}let s=t==="elaborate_to_execute",o=s?"reviews":"approvals",a=Yd(r,"stages",n,"units");if(!wIt(a))return;let c=j$n(a);for(let u of c){if(!u.endsWith(".md"))continue;let l=Yd(a,u),d=iU(l),f=d[o]&&typeof d[o]=="object"?d[o]:{};if(s){let p=Array.isArray(d.inputs)?d.inputs:[];f.user=Cl(l,{intentDir:r,unitInputs:p})}else f.user=Bd();Me(l,o,f)}}var B$n,kIt,IIt=v(()=>{"use strict";yr();Xf();Kd();sh();l1();$c();ji();uo();oZ();Ge();zi();Hv();vIt();vs();AIt();B$n=(e,t)=>{};kIt={name:"haiku_await_gate",description:"Resume / recovery entry point for a pending gate-review session. Under v4 the canonical flow blocks INSIDE haiku_run_next \u2014 the engine prepares the session, opens the browser best-effort, awaits the user's decision, and returns the post-decision action all in one tool call. Use haiku_await_gate only when the original tick timed out, the MCP host disconnected, or the agent restart lost the in-memory blocking call. The live review session is resolved from the in-memory registry keyed by intent slug, NOT a repo-persisted pointer (a page refresh reconnects the same logical session; pass session_id to target a specific one). Returns the same post-decision action shape (advance_stage / advance_phase / changes_requested / external_review_requested / intent_complete / etc.).",inputSchema:l0,async handle(e,t){let n=Be(e,Wme,"haiku_await_gate");if(n)return n;let r=e,i=r.intent,s=r.state_file,o=Yd(pe(i),"intent.md"),a=iU(o),c=a.studio||"",{findCurrentStage:u}=await Promise.resolve().then(()=>(Oa(),O0)),l=c?u(i,c)??"":"",d=a.phase||"",f=!l||d==="intent_review"||d==="awaiting_completion_review"||d==="intent_completion",p=XL(i),h=l?`gate_review_session_${l}`:"",m=h?a[h]??"":"",g=a.gate_review_session_id||"",y=f&&g||m,b=r.session_id||p?.session_id||y;if(!b){if(!l&&!f)return ye(`No active stage on intent '${i}' and no pending intent-scope gate \u2014 nothing to await. Call haiku_run_next first.`);let N=l?`stage '${l}'`:"intent scope";return ye(`No live gate-review session for intent '${i}' (${N}). Call haiku_run_next to (re)open the gate \u2014 it re-derives the gate from the cursor and reattaches the live session.`)}let S=l,E=r.next_stage!==void 0?r.next_stage:a.gate_review_next_stage??null,_=r.next_phase!==void 0?r.next_phase:a.gate_review_next_phase??null,T=r.gate_context||a.gate_review_context||"stage_gate",R=`.haiku/intents/${i}`,A=i_e();if(!A)return ye("Gate-review await handler not registered \u2014 server.ts wiring is broken. File a bug.");let x=r.review_url,k=r.auto_open!==!1;s&&qi(s,{event:"haiku_await_gate_entered",intent:i,stage:S,session_id:b,auto_open:k});let P=N=>RIt(i,c,N);try{let N=f?["gate_review_session_id","gate_review_url","gate_review_context","gate_review_next_stage","gate_review_next_phase"]:l?[`gate_review_session_${l}`,`gate_review_url_${l}`,"gate_review_context","gate_review_next_stage","gate_review_next_phase"]:[];N.length>0&&Yh(o,N)}catch{}try{let N=await A(b,{autoOpen:k,reviewUrl:x,timeoutMs:144e5,signal:t}),C=gr(i,S);if(!C.ok)return Zb(i,S,C,"after review wait");if(s&&qi(s,{event:"gate_decision",intent:i,stage:S,decision:N.decision,feedback:N.feedback}),N.decision==="advance")return Xr(i,s),ye(P({action:"advance",intent:i,stage:S,message:Gn("User signaled advance. Run the next tick \u2014 the cursor will pick up on-disk feedback / approvals / drift and emit the natural next action.","Call haiku_run_next to continue.")}));if(N.decision==="approved"){if(T==="intent_completion"){let U=iU(Yd(pe(i),"intent.md")).studio||"",M=oU(i,U);if(M.length>0)return ye(P({action:"error",intent:i,message:`Cannot complete intent '${i}': the following stages have not completed: [${M.join(", ")}]. Run those stages to completion before approving intent_completion.`,incomplete_stages:M}));rU(i,"intent_completion",S),W6(i),Xr(i,s);let H={action:"intent_complete",intent:i,studio:U,message:Gn(`The user approved final review for "${i}" \u2014 intent complete.`,"Report the completion summary to the user.")};return ye(P(H))}if(T==="intent_review"){rU(i,"intent_review",S);let U=Yd(process.cwd(),R,"intent.md");Me(U,"intent_reviewed",!0),S&&_?sU(i,S,_):(Yh(U,["phase"]),ci(i)),wt(`haiku: intent ${i} approved by user`),Xr(i,s);let M={action:"intent_approved",intent:i,stage:S||null,from_phase:"intent_review",to_phase:_||"execute",message:S?Gn(`The user approved intent "${i}" \u2014 advancing to ${_||"execute"}.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`):Gn(`The user approved intent "${i}" \u2014 beginning stage 0.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(M))}if(T==="elaborate_to_execute"&&_){rU(i,"elaborate_to_execute",S),sU(i,S,_),Xr(i,s);let U={action:"advance_phase",intent:i,stage:S,from_phase:"elaborate",to_phase:_,message:Gn(`The user approved the specs for stage "${S}" \u2014 advancing to ${_}.`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT ask the user a follow-up \u2014 the transition was already approved.`)};return ye(P(U))}if(E){rU(i,"stage_gate",S),G6(i,S,E),Xr(i,s);let U={action:"advance_stage",intent:i,stage:S,next_stage:E,gate_outcome:"advanced",message:Gn(`The user approved stage "${S}" \u2014 advancing to "${E}".`,`IMPORTANT: Call haiku_run_next { intent: "${i}" } immediately. Do NOT summarize, do NOT say "want me to continue?" \u2014 the gate was already approved. Just call the tool.`)};return ye(P(U))}rU(i,"stage_gate",S),wx(i,S,"advanced"),Xr(i,s);let F=iU(Yd(pe(i),"intent.md")).studio||"",V=V6(i,F,Gn(`The user approved the final stage "${S}" \u2014 intent complete.`,"Report the completion summary to the user."));return ye(P(V))}if(N.decision==="external_review"){wx(i,S,"advanced"),Xr(i,s);let F;if(ve()){let{openStagePullRequest:U}=await Promise.resolve().then(()=>(yr(),ZD)),M=U({slug:i,stage:S});if(M.createdUrl){try{let H=Yd(pe(i),"intent.md");Me(H,"external_review_url",M.createdUrl)}catch{}F=Gn(`The user routed stage "${S}" to external review. The engine opened the MR for you: ${M.createdUrl}`,`Tell the user: "I opened the MR at ${M.createdUrl} \u2014 review and merge it when you're ready. Run /haiku:haiku-pickup after the merge to continue." The MR was created against \`haiku/${i}/main\` (NOT the repo default) so the workflow engine can detect the merge.`)}else M.compareUrl?F=Gn(`The user routed stage "${S}" to external review. ${M.message}`,`The engine couldn't open the MR programmatically (${M.prError??M.pushError??"no gh/glab on PATH"}). Tell the user to click ${M.compareUrl} to open it manually \u2014 that link pre-fills base \`haiku/${i}/main\` so the merge signal lands correctly. After they paste the resulting URL back to you, call haiku_run_next { intent: "${i}", external_review_url: "" }.`):F=Gn(`The user routed stage "${S}" to external review.`,`${M.message} Open ONE merge request from branch \`haiku/${i}/${S}\` to \`haiku/${i}/main\` (NOT the repo default \u2014 the engine detects the merge by intent main, not by the default branch). Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }.`)}else F=Gn(`The user routed stage "${S}" to external review.`,`Submit the work for review through your project's review process. Record the review URL via haiku_run_next { intent: "${i}", external_review_url: "" }. Run /haiku:haiku-pickup again after the PR is merged.`);let V={action:"external_review_requested",intent:i,stage:S,feedback:N.feedback,message:F};return ye(P(V))}let L=N.annotations,G=typeof L?.revisit_action=="string"?L.revisit_action:null;if(G)return Xr(i,s),ye(P({action:G,intent:i,stage:S,message:L?.revisit_message||`Revisit dispatched on stage '${S}'. Follow the instructions returned by the orchestrator.`}));let W=Yd(process.cwd(),R),q=(T==="intent_review"&&!S?!0:T==="elaborate_to_execute"||T==="intent_review"?iL(W,S):!1)||!S?[]:x6(i,S,N),Q=q.length>0?` Created ${q.length} feedback file(s): ${q.join(", ")}.`:"";if(T==="intent_review"){Xr(i,s);let F={action:"changes_requested",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,feedback_ids:q,message:Gn(`The user requested changes on intent "${i}": ${N.feedback||"(see annotations)"}.`,`${Q?`${Q.trim()} `:""}Revise the intent description, then call haiku_run_next { intent: "${i}" } again.`)};return ye(P(F))}if(T==="intent_completion"){let F=Yd(pe(i),"intent.md");Me(F,"completion_review_dispatched",!1),Me(F,"completion_review_skipped",!1),B$n(i,""),ci(i),wt(`haiku: intent ${i} completion-review rejected, reopening for revisit`),Xr(i,s);let V={action:"changes_requested",intent:i,stage:null,gate_context:"intent_completion",feedback:N.feedback,annotations:N.annotations,feedback_ids:q,message:Gn(`The user requested changes at intent-completion review on "${i}": ${N.feedback||"(see annotations)"}.`,`${Q?`${Q.trim()} `:""}The intent is no longer in final review. Log stage_revisit feedback at the target stage via \`haiku_feedback\` with \`resolution: "stage_revisit"\` to re-open the relevant stage, then address the feedback and call \`haiku_run_next\` to drive back to final review.`)};return ye(P(V))}if(T==="elaborate_to_execute"){Xr(i,s);let F=Eg(W,S).filter(U=>U.status!=="completed").map(U=>U.name),V={action:"revise_unit_specs",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,unstarted_units:F,units_dir:`.haiku/intents/${i}/stages/${S}/units/`,message:Gn(`The user requested changes on stage "${S}" unit specs: ${N.feedback||"(see annotations)"}.`,`Nothing has been built yet \u2014 NO feedback files were created. Resolve by EDITING the unstarted unit.md files in \`.haiku/intents/${i}/stages/${S}/units/\` directly (or adding new unit files if the scope needs expansion). Do NOT draft a full new wave of units to "close feedback" \u2014 that's a post-execute flow. When the edits are done, call \`haiku_run_next { intent: "${i}" }\` again to re-open the review gate.`)};return ye(P(V))}Xr(i,s);let B={action:"changes_requested",intent:i,stage:S,feedback:N.feedback,annotations:N.annotations,feedback_ids:q,message:Gn(`The user requested changes on stage "${S}": ${N.feedback||"(see annotations)"}.`,`${Q?`${Q.trim()} `:""}Address the feedback, then call haiku_run_next { intent: "${i}" } again.`)};return ye(P(B))}catch(N){let C=N instanceof Error?N.message:String(N),L=N instanceof Error?N.stack:"";console.error(`[haiku] gate_review failed: ${C}`),ms(N,{intent:i,stage:S});try{let W=Yd(process.cwd(),".haiku","logs");F$n(W,{recursive:!0}),q$n(Yd(W,"gate-review-error.log"),`${new Date().toISOString()} intent: ${i} stage: ${S} error: ${C} ${L} --- `,{flag:"a"})}catch{}if(C.includes("not found")||C.includes("wrong type"))return{content:[{type:"text",text:`Gate review session expired or unavailable: ${C}. Call haiku_run_next { intent: "${i}" } to recreate it.`}],isError:!0};if(bIt(C))return TIt(i);if(EIt(C)){Xr(i,s);let W=_It(x,a,S);return ye(P({action:"gate_awaiting_client",intent:i,stage:S,review_url:W||null,message:Gn(W?`The review isn't connected \u2014 the SPA never opened, or the tab was closed. Review URL: ${W}`:"The review isn't connected (the SPA never opened, or the tab was closed) and no review URL is recorded.",W?`Show the user this URL to open or re-open the review: ${W} \u2014 then call \`haiku_await_gate { intent: "${i}" }\` again to keep holding for their decision. Do NOT abandon the gate or advance without it.`:`Call \`haiku_run_next { intent: "${i}" }\` to re-open the gate, then surface the URL it returns to the user.`)}))}return C.includes("Could not parse intent")||C.includes("No such file")||C.includes("ENOENT")||C.includes("frontmatter")||C.includes("invalid identifier")||C.includes("Circular dependency")?(Xr(i,s),{content:[{type:"text",text:`GATE BLOCKED: ${C}. This is a data issue the agent can fix \u2014 check that the intent directory and files are correctly structured, then call haiku_run_next again.`}],isError:!0}):(s&&qi(s,{event:"gate_review_ui_failed",intent:i,stage:S,error:C}),Xr(i,s),{content:[{type:"text",text:`GATE BLOCKED: Review UI failed to start. Error: ${C}. Logged to .haiku/logs/gate-review-error.log. Investigate the SPA server (port conflict? blocked browser launch?) then call haiku_run_next { intent: "${i}" } to retry.`}],isError:!0})}}}});import{existsSync as xIt,mkdirSync as z$n,readFileSync as G$n,renameSync as V$n,writeFileSync as W$n}from"node:fs";import{dirname as K$n,join as OIt}from"node:path";function PIt(e,t){let n=Te();return OIt(n,"intents",e,"stages",t,"coverage-decisions.json")}function Y$n(e,t){let n=PIt(e,t);if(!xIt(n))return{stage:t,decisions:[]};try{let r=JSON.parse(G$n(n,"utf8"));return{stage:r.stage||t,decisions:Array.isArray(r.decisions)?r.decisions:[]}}catch{return{stage:t,decisions:[]}}}function Z$n(e,t,n){let r=PIt(e,t);z$n(K$n(r),{recursive:!0});let i=`${r}.tmp`;W$n(i,`${JSON.stringify(n,null,2)} -`),V$n(i,r)}function i_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var NIt,CIt=v(()=>{"use strict";Ge();zi();NIt={name:"haiku_coverage_acknowledge",description:"Record a per-file decision for an upstream output that the current stage's units do not reference. Used to resolve a `coverage_review_required` action emitted by the pre-tick cumulative-input-coverage validator. Decisions persist to `stages//coverage-decisions.json`. The decision MUST be either `out-of-scope` (with rationale explaining why this file is not relevant to the current stage's deliverables) or `covered-by-unit` (with the `unit` slug whose `inputs:` field already includes \u2014 or will include \u2014 the path; redundant for paths added via `haiku_unit_set` but useful when the agent wants to record reasoning). This tool does NOT advance the workflow; call `haiku_run_next` after acknowledging to re-run the validator.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the active intent."},stage:{type:"string",description:"Stage whose coverage decisions are being recorded (the current stage)."},path:{type:"string",description:"Intent-relative path of the upstream file being acknowledged (e.g., `stages/inception/CONVERSATION-CONTEXT.md` or `stages/design/artifacts/SPA-UI-SPECS.md`). Must match a path enumerated in the `coverage_review_required` action's `unreferenced` list."},decision:{type:"string",enum:["out-of-scope","covered-by-unit"],description:"`out-of-scope`: this file is not relevant to the current stage's deliverables; rationale required. `covered-by-unit`: this file is (or will be) referenced by a unit's `inputs:`; `unit` field required."},rationale:{type:"string",description:"Free-text explanation of the decision. Required for `out-of-scope`; recommended for `covered-by-unit`. Reviewers can challenge this rationale during adversarial spec review."},unit:{type:"string",description:"Required when `decision` is `covered-by-unit`. The unit slug (e.g., `unit-04-spa-component-security-audit`) whose `inputs:` covers this file."}},required:["intent_slug","stage","path","decision","rationale"]},async handle(e){let t=e.intent_slug,n=e.stage,r=e.path,i=e.decision,s=e.rationale,o=e.unit,a=Wg({intent:t,stage:n});if(a)return a;if(typeof s!="string"||s.trim()==="")return i_e("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return i_e("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=Te(),u=OIt(c,"intents",t,"stages",n);if(!xIt(u))return i_e("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=Y$n(t,n),d=l.decisions.findIndex(p=>p.path===r),f={path:r,decision:i,rationale:s.trim(),acknowledged_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),...o?{unit:o}:{}};return d>=0?l.decisions[d]=f:l.decisions.push(f),Z$n(t,n,l),{content:[{type:"text",text:JSON.stringify({ok:!0,acknowledged:f,total_decisions:l.decisions.length,next_step:"Call `haiku_run_next` to re-run the cumulative-input-coverage validator. If any files remain unreferenced + unacknowledged, the validator will re-emit `coverage_review_required` with the remaining list."},null,2)}]}}}});function c_e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function HIt(e){zv=e}function $n(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(i,s)=>{let o=typeof s=="string"?s:s.source;return o=o.replace(nu.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,t)};return r}function em(e,t){if(t){if(nu.escapeTest.test(e))return e.replace(nu.escapeReplace,LIt)}else if(nu.escapeTestNoEncode.test(e))return e.replace(nu.escapeReplaceNoEncode,LIt);return e}function UIt(e){try{e=encodeURI(e).replace(nu.percentDecode,"%")}catch{return null}return e}function FIt(e,t){let n=e.replace(nu.findPipe,(s,o,a)=>{let c=!1,u=o;for(;--u>=0&&a[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(nu.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length0?-2:-1}function Mer(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let s=4-n%4;r+=" ".repeat(s),n+=s}else r+=i,n++;return r}function jIt(e,t,n,r,i){let s=t.href,o=t.title||null,a=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}function Der(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(` +`),V$n(i,r)}function s_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var NIt,CIt=v(()=>{"use strict";Ge();zi();NIt={name:"haiku_coverage_acknowledge",description:"Record a per-file decision for an upstream output that the current stage's units do not reference. Used to resolve a `coverage_review_required` action emitted by the pre-tick cumulative-input-coverage validator. Decisions persist to `stages//coverage-decisions.json`. The decision MUST be either `out-of-scope` (with rationale explaining why this file is not relevant to the current stage's deliverables) or `covered-by-unit` (with the `unit` slug whose `inputs:` field already includes \u2014 or will include \u2014 the path; redundant for paths added via `haiku_unit_set` but useful when the agent wants to record reasoning). This tool does NOT advance the workflow; call `haiku_run_next` after acknowledging to re-run the validator.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the active intent."},stage:{type:"string",description:"Stage whose coverage decisions are being recorded (the current stage)."},path:{type:"string",description:"Intent-relative path of the upstream file being acknowledged (e.g., `stages/inception/CONVERSATION-CONTEXT.md` or `stages/design/artifacts/SPA-UI-SPECS.md`). Must match a path enumerated in the `coverage_review_required` action's `unreferenced` list."},decision:{type:"string",enum:["out-of-scope","covered-by-unit"],description:"`out-of-scope`: this file is not relevant to the current stage's deliverables; rationale required. `covered-by-unit`: this file is (or will be) referenced by a unit's `inputs:`; `unit` field required."},rationale:{type:"string",description:"Free-text explanation of the decision. Required for `out-of-scope`; recommended for `covered-by-unit`. Reviewers can challenge this rationale during adversarial spec review."},unit:{type:"string",description:"Required when `decision` is `covered-by-unit`. The unit slug (e.g., `unit-04-spa-component-security-audit`) whose `inputs:` covers this file."}},required:["intent_slug","stage","path","decision","rationale"]},async handle(e){let t=e.intent_slug,n=e.stage,r=e.path,i=e.decision,s=e.rationale,o=e.unit,a=Wg({intent:t,stage:n});if(a)return a;if(typeof s!="string"||s.trim()==="")return s_e("empty_rationale","`rationale` must contain at least one non-whitespace character.");if(i==="covered-by-unit"&&(!o||o.trim()===""))return s_e("unit_required","`unit` is required when decision is `covered-by-unit`.");let c=Te(),u=OIt(c,"intents",t,"stages",n);if(!xIt(u))return s_e("stage_not_found",`Stage '${n}' not found for intent '${t}'.`);let l=Y$n(t,n),d=l.decisions.findIndex(p=>p.path===r),f={path:r,decision:i,rationale:s.trim(),acknowledged_at:new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),...o?{unit:o}:{}};return d>=0?l.decisions[d]=f:l.decisions.push(f),Z$n(t,n,l),{content:[{type:"text",text:JSON.stringify({ok:!0,acknowledged:f,total_decisions:l.decisions.length,next_step:"Call `haiku_run_next` to re-run the cumulative-input-coverage validator. If any files remain unreferenced + unacknowledged, the validator will re-emit `coverage_review_required` with the remaining list."},null,2)}]}}}});function u_e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function HIt(e){zv=e}function $n(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(i,s)=>{let o=typeof s=="string"?s:s.source;return o=o.replace(nu.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,t)};return r}function em(e,t){if(t){if(nu.escapeTest.test(e))return e.replace(nu.escapeReplace,LIt)}else if(nu.escapeTestNoEncode.test(e))return e.replace(nu.escapeReplaceNoEncode,LIt);return e}function UIt(e){try{e=encodeURI(e).replace(nu.percentDecode,"%")}catch{return null}return e}function FIt(e,t){let n=e.replace(nu.findPipe,(s,o,a)=>{let c=!1,u=o;for(;--u>=0&&a[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(nu.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length0?-2:-1}function Mer(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let s=4-n%4;r+=" ".repeat(s),n+=s}else r+=i,n++;return r}function jIt(e,t,n,r,i){let s=t.href,o=t.title||null,a=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let c={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:o,text:a,tokens:r.inlineTokens(a)};return r.state.inLink=!1,c}function Der(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(` `).map(s=>{let o=s.match(n.other.beginningSpace);if(o===null)return s;let[a]=o;return a.length>=i.length?s.slice(i.length):s}).join(` -`)}function Nr(e,t){return Bv.parse(e,t)}var zv,qv,J$n,nu,X$n,Q$n,$$n,cU,eer,u_e,qIt,BIt,ter,l_e,ner,d_e,rer,ier,J6,f_e,ser,zIt,oer,p_e,MIt,aer,cer,uer,ler,GIt,der,wx,X6,h_e,fer,VIt,per,her,mer,WIt,ger,yer,KIt,Ser,ber,Eer,_er,Ter,ver,Rer,Aer,wer,ker,K6,Ier,YIt,ZIt,xer,DIt,m_e,Oer,s_e,Per,W6,sU,Ner,LIt,Y6,cp,Z6,g_e,up,aU,Ler,Bv,FIi,jIi,HIi,qIi,BIi,zIi,GIi,JIt=v(()=>{zv=c_e();qv={exec:()=>null};J$n=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^
/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},X$n=/^(?:[ \t]*(?:\n|$))+/,Q$n=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,$$n=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,cU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,eer=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,u_e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,qIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,BIt=$n(qIt).replace(/bull/g,u_e).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),ter=$n(qIt).replace(/bull/g,u_e).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),l_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,ner=/^[^\n]+/,d_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,rer=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",d_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ier=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,u_e).getRegex(),J6="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",f_e=/|$))/,ser=$n("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",f_e).replace("tag",J6).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),zIt=$n(l_e).replace("hr",cU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",J6).getRegex(),oer=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",zIt).getRegex(),p_e={blockquote:oer,code:Q$n,def:rer,fences:$$n,heading:eer,hr:cU,html:ser,lheading:BIt,list:ier,newline:X$n,paragraph:zIt,table:qv,text:ner},MIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",cU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",J6).getRegex(),aer={...p_e,lheading:ter,table:MIt,paragraph:$n(l_e).replace("hr",cU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",MIt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",J6).getRegex()},cer={...p_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",f_e).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:qv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(l_e).replace("hr",cU).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",BIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},uer=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ler=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,GIt=/^( {2,}|\\)\n(?!\s*$)/,der=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",J$n?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),WIt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,ger=$n(WIt,"u").replace(/punct/g,wx).getRegex(),yer=$n(WIt,"u").replace(/punct/g,VIt).getRegex(),KIt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Ser=$n(KIt,"gu").replace(/notPunctSpace/g,h_e).replace(/punctSpace/g,X6).replace(/punct/g,wx).getRegex(),ber=$n(KIt,"gu").replace(/notPunctSpace/g,her).replace(/punctSpace/g,per).replace(/punct/g,VIt).getRegex(),Eer=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,h_e).replace(/punctSpace/g,X6).replace(/punct/g,wx).getRegex(),_er=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,wx).getRegex(),Ter="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",ver=$n(Ter,"gu").replace(/notPunctSpace/g,h_e).replace(/punctSpace/g,X6).replace(/punct/g,wx).getRegex(),Rer=$n(/\\(punct)/,"gu").replace(/punct/g,wx).getRegex(),Aer=$n(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[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])?)+(?![-_])/).getRegex(),wer=$n(f_e).replace("(?:-->|$)","-->").getRegex(),ker=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",wer).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),K6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Ier=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",K6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),YIt=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",K6).replace("ref",d_e).getRegex(),ZIt=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",d_e).getRegex(),xer=$n("reflink|nolink(?!\\()","g").replace("reflink",YIt).replace("nolink",ZIt).getRegex(),DIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,m_e={_backpedal:qv,anyPunctuation:Rer,autolink:Aer,blockSkip:mer,br:GIt,code:ler,del:qv,delLDelim:qv,delRDelim:qv,emStrongLDelim:ger,emStrongRDelimAst:Ser,emStrongRDelimUnd:Eer,escape:uer,link:Ier,nolink:ZIt,punctuation:fer,reflink:YIt,reflinkSearch:xer,tag:ker,text:der,url:qv},Oer={...m_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",K6).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",K6).getRegex()},s_e={...m_e,emStrongRDelimAst:ber,emStrongLDelim:yer,delLDelim:_er,delRDelim:ver,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",DIt).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:$n(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},LIt=e=>Ner[e];Y6=class{options;rules;lexer;constructor(e){this.options=e||zv}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:oU(n,` -`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Der(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=oU(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:oU(t[0],` -`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=oU(t[0],` +`)}function Nr(e,t){return Bv.parse(e,t)}var zv,qv,J$n,nu,X$n,Q$n,$$n,lU,eer,l_e,qIt,BIt,ter,d_e,ner,f_e,rer,ier,X6,p_e,ser,zIt,oer,h_e,MIt,aer,cer,uer,ler,GIt,der,kx,Q6,m_e,fer,VIt,per,her,mer,WIt,ger,yer,KIt,Ser,ber,Eer,_er,Ter,ver,Rer,Aer,wer,ker,Y6,Ier,YIt,ZIt,xer,DIt,g_e,Oer,o_e,Per,K6,aU,Ner,LIt,Z6,cp,J6,y_e,up,uU,Ler,Bv,FIi,jIi,HIi,qIi,BIi,zIi,GIi,JIt=v(()=>{zv=u_e();qv={exec:()=>null};J$n=(()=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},X$n=/^(?:[ \t]*(?:\n|$))+/,Q$n=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,$$n=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,lU=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,eer=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,l_e=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,qIt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,BIt=$n(qIt).replace(/bull/g,l_e).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),ter=$n(qIt).replace(/bull/g,l_e).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),d_e=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,ner=/^[^\n]+/,f_e=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,rer=$n(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",f_e).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),ier=$n(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,l_e).getRegex(),X6="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",p_e=/|$))/,ser=$n("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",p_e).replace("tag",X6).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),zIt=$n(d_e).replace("hr",lU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",X6).getRegex(),oer=$n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",zIt).getRegex(),h_e={blockquote:oer,code:Q$n,def:rer,fences:$$n,heading:eer,hr:lU,html:ser,lheading:BIt,list:ier,newline:X$n,paragraph:zIt,table:qv,text:ner},MIt=$n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",lU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",X6).getRegex(),aer={...h_e,lheading:ter,table:MIt,paragraph:$n(d_e).replace("hr",lU).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",MIt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",X6).getRegex()},cer={...h_e,html:$n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",p_e).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:qv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$n(d_e).replace("hr",lU).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",BIt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},uer=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ler=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,GIt=/^( {2,}|\\)\n(?!\s*$)/,der=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",J$n?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),WIt=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,ger=$n(WIt,"u").replace(/punct/g,kx).getRegex(),yer=$n(WIt,"u").replace(/punct/g,VIt).getRegex(),KIt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Ser=$n(KIt,"gu").replace(/notPunctSpace/g,m_e).replace(/punctSpace/g,Q6).replace(/punct/g,kx).getRegex(),ber=$n(KIt,"gu").replace(/notPunctSpace/g,her).replace(/punctSpace/g,per).replace(/punct/g,VIt).getRegex(),Eer=$n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,m_e).replace(/punctSpace/g,Q6).replace(/punct/g,kx).getRegex(),_er=$n(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,kx).getRegex(),Ter="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",ver=$n(Ter,"gu").replace(/notPunctSpace/g,m_e).replace(/punctSpace/g,Q6).replace(/punct/g,kx).getRegex(),Rer=$n(/\\(punct)/,"gu").replace(/punct/g,kx).getRegex(),Aer=$n(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[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])?)+(?![-_])/).getRegex(),wer=$n(p_e).replace("(?:-->|$)","-->").getRegex(),ker=$n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",wer).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Y6=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Ier=$n(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Y6).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),YIt=$n(/^!?\[(label)\]\[(ref)\]/).replace("label",Y6).replace("ref",f_e).getRegex(),ZIt=$n(/^!?\[(ref)\](?:\[\])?/).replace("ref",f_e).getRegex(),xer=$n("reflink|nolink(?!\\()","g").replace("reflink",YIt).replace("nolink",ZIt).getRegex(),DIt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,g_e={_backpedal:qv,anyPunctuation:Rer,autolink:Aer,blockSkip:mer,br:GIt,code:ler,del:qv,delLDelim:qv,delRDelim:qv,emStrongLDelim:ger,emStrongRDelimAst:Ser,emStrongRDelimUnd:Eer,escape:uer,link:Ier,nolink:ZIt,punctuation:fer,reflink:YIt,reflinkSearch:xer,tag:ker,text:der,url:qv},Oer={...g_e,link:$n(/^!?\[(label)\]\((.*?)\)/).replace("label",Y6).getRegex(),reflink:$n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Y6).getRegex()},o_e={...g_e,emStrongRDelimAst:ber,emStrongLDelim:yer,delLDelim:_er,delRDelim:ver,url:$n(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",DIt).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:$n(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},LIt=e=>Ner[e];Z6=class{options;rules;lexer;constructor(e){this.options=e||zv}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:cU(n,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Der(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=cU(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:cU(t[0],` +`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=cU(t[0],` `).split(` `),r="",i="",s=[];for(;n.length>0;){let o=!1,a=[],c;for(c=0;c=0;l--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[l].src)){this.lexer.inlineQueue[l].src=this.lexer.inlineQueue[l].src.replace(this.rules.other.listReplaceTask,"");break}}let u=this.rules.other.listTaskCheckbox.exec(c.raw);if(u){let l={type:"checkbox",raw:u[0]+" ",checked:u[0]!=="[ ]"};c.checked=l.checked,i.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=l.raw+c.tokens[0].raw,c.tokens[0].text=l.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(l)):c.tokens.unshift({type:"paragraph",raw:l.raw,text:l.raw,tokens:[l]}):c.tokens.unshift(l)}}if(!i.loose){let u=c.tokens.filter(d=>d.type==="space"),l=u.length>0&&u.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=l}}if(i.loose)for(let c of i.items){c.loose=!0;for(let u of c.tokens)u.type==="text"&&(u.type="paragraph")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:t[0],href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=FIt(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(` `):[],s={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let o of r)this.rules.other.tableAlignRight.test(o)?s.align.push("right"):this.rules.other.tableAlignCenter.test(o)?s.align.push("center"):this.rules.other.tableAlignLeft.test(o)?s.align.push("left"):s.align.push(null);for(let o=0;o({text:a,tokens:this.lexer.inline(a),header:!1,align:s.align[c]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` -`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=oU(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=Cer(t[2],"()");if(s===-2)return;if(s>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),jIt(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return jIt(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+i);(r=u.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s)continue;if(o=[...s].length,r[3]||r[4]){a+=o;continue}else if((r[5]||r[6])&&i%3&&!((i+o)%3)){c+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+c);let l=[...r[0]][0].length,d=e.slice(0,i+r.index+l+o);if(Math.min(i,o)%2){let p=d.slice(1,-1);return{type:"em",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}let f=d.slice(2,-2);return{type:"strong",raw:d,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(r=c.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s||(o=[...s].length,o!==i))continue;if(r[3]||r[4]){a+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a);let u=[...r[0]][0].length,l=e.slice(0,i+r.index+u+o),d=l.slice(i,-i);return{type:"del",raw:l,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},cp=class o_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||zv,this.options.tokenizer=this.options.tokenizer||new Y6,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:nu,block:W6.normal,inline:sU.normal};this.options.pedantic?(n.block=W6.pedantic,n.inline=sU.pedantic):this.options.gfm&&(n.block=W6.gfm,this.options.breaks?n.inline=sU.breaks:n.inline=sU.gfm),this.tokenizer.rules=n}static get rules(){return{block:W6,inline:sU}}static lex(t,n){return new o_e(n).lex(t)}static lexInline(t,n){return new o_e(n).inlineTokens(t)}lex(t){t=t.replace(nu.carriageReturn,` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=cU(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=Cer(t[2],"()");if(s===-2)return;if(s>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),jIt(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return jIt(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=0,u=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+i);(r=u.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s)continue;if(o=[...s].length,r[3]||r[4]){a+=o;continue}else if((r[5]||r[6])&&i%3&&!((i+o)%3)){c+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+c);let l=[...r[0]][0].length,d=e.slice(0,i+r.index+l+o);if(Math.min(i,o)%2){let p=d.slice(1,-1);return{type:"em",raw:d,text:p,tokens:this.lexer.inlineTokens(p)}}let f=d.slice(2,-2);return{type:"strong",raw:d,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,s,o,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(r=c.exec(t))!==null;){if(s=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!s||(o=[...s].length,o!==i))continue;if(r[3]||r[4]){a+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a);let u=[...r[0]][0].length,l=e.slice(0,i+r.index+u+o),d=l.slice(i,-i);return{type:"del",raw:l,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},cp=class a_e{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||zv,this.options.tokenizer=this.options.tokenizer||new Z6,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:nu,block:K6.normal,inline:aU.normal};this.options.pedantic?(n.block=K6.pedantic,n.inline=aU.pedantic):this.options.gfm&&(n.block=K6.gfm,this.options.breaks?n.inline=aU.breaks:n.inline=aU.gfm),this.tokenizer.rules=n}static get rules(){return{block:K6,inline:aU}}static lex(t,n){return new a_e(n).lex(t)}static lexInline(t,n){return new a_e(n).inlineTokens(t)}lex(t){t=t.replace(nu.carriageReturn,` `),this.blockTokens(t,this.tokens);for(let n=0;n(i=o.call({lexer:this},t,n))?(t=t.substring(i.raw.length),n.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let o=n.at(-1);i.raw.length===1&&o!==void 0?o.raw+=` `:n.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length);let o=n.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(` `)?"":` @@ -1222,7 +1222,7 @@ ${l}`:l;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i),r=s.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length);let o=n.at(-1);o?.type==="text"?(o.raw+=(o.raw.endsWith(` `)?"":` `)+i.raw,o.text+=` -`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t,i=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)c.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)s=i[2]?i[2].length:0,r=r.slice(0,i.index+s)+"["+"a".repeat(i[0].length-s-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let o=!1,a="";for(;t;){o||(a=""),o=!1;let c;if(this.options.extensions?.inline?.some(l=>(c=l.call({lexer:this},t,n))?(t=t.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(c.raw.length);let l=n.at(-1);c.type==="text"&&l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(t)){t=t.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(t))){t=t.substring(c.raw.length),n.push(c);continue}let u=t;if(this.options.extensions?.startInline){let l=1/0,d=t.slice(1),f;this.options.extensions.startInline.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(l=Math.min(l,f))}),l<1/0&&l>=0&&(u=t.substring(0,l+1))}if(c=this.tokenizer.inlineText(u)){t=t.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(a=c.raw.slice(-1)),o=!0;let l=n.at(-1);l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(t){let l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return n}},Z6=class{options;parser;constructor(e){this.options=e||zv}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(nu.notSpaceStart)?.[0],i=e.replace(nu.endingNewline,"")+` +`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t,i=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)c.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,i.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)s=i[2]?i[2].length:0,r=r.slice(0,i.index+s)+"["+"a".repeat(i[0].length-s-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let o=!1,a="";for(;t;){o||(a=""),o=!1;let c;if(this.options.extensions?.inline?.some(l=>(c=l.call({lexer:this},t,n))?(t=t.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(c.raw.length);let l=n.at(-1);c.type==="text"&&l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(t)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(t,r,a)){t=t.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(t)){t=t.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(t))){t=t.substring(c.raw.length),n.push(c);continue}let u=t;if(this.options.extensions?.startInline){let l=1/0,d=t.slice(1),f;this.options.extensions.startInline.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(l=Math.min(l,f))}),l<1/0&&l>=0&&(u=t.substring(0,l+1))}if(c=this.tokenizer.inlineText(u)){t=t.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(a=c.raw.slice(-1)),o=!0;let l=n.at(-1);l?.type==="text"?(l.raw+=c.raw,l.text+=c.text):n.push(c);continue}if(t){let l="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return n}},J6=class{options;parser;constructor(e){this.options=e||zv}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(nu.notSpaceStart)?.[0],i=e.replace(nu.endingNewline,"")+` `;return r?'
'+(n?i:em(i,!0))+`
`:"
"+(n?i:em(i,!0))+`
`}blockquote({tokens:e}){return`
@@ -1240,35 +1240,35 @@ ${this.parser.parse(e)}
`}tablerow({text:e}){return` ${e} `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` -`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${em(e,!0)}`}br(e){return"
"}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=UIt(e);if(i===null)return r;e=i;let s='
",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=UIt(e);if(i===null)return em(n);e=i;let s=`${em(n)}{let o=i[s].flat(1/0);n=n.concat(this.walkTokens(o,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...o){let a=i.renderer.apply(this,o);return a===!1&&(a=s.apply(this,o)),a}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new Z6(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let o=s,a=n.renderer[o],c=i[o];i[o]=(...u)=>{let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new Y6(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let o=s,a=n.tokenizer[o],c=i[o];i[o]=(...u)=>{let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new aU;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let o=s,a=n.hooks[o],c=i[o];aU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&aU.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await a.call(i,u);return c.call(i,d)})();let l=a.call(i,u);return c.call(i,l)}:i[o]=(...u)=>{if(this.defaults.async)return(async()=>{let d=await a.apply(i,u);return d===!1&&(d=await c.apply(i,u)),d})();let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(o){let a=[];return a.push(s.call(this,o)),i&&(a=a.concat(i.call(this,o))),a}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return cp.lex(e,t??this.defaults)}parser(e,t){return up.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},s=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let o=i.hooks?await i.hooks.preprocess(t):t,a=await(i.hooks?await i.hooks.provideLexer(e):e?cp.lex:cp.lexInline)(o,i),c=i.hooks?await i.hooks.processAllTokens(a):a;i.walkTokens&&await Promise.all(this.walkTokens(c,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser(e):e?up.parse:up.parseInline)(c,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(s);try{i.hooks&&(t=i.hooks.preprocess(t));let o=(i.hooks?i.hooks.provideLexer(e):e?cp.lex:cp.lexInline)(t,i);i.hooks&&(o=i.hooks.processAllTokens(o)),i.walkTokens&&this.walkTokens(o,i.walkTokens);let a=(i.hooks?i.hooks.provideParser(e):e?up.parse:up.parseInline)(o,i);return i.hooks&&(a=i.hooks.postprocess(a)),a}catch(o){return s(o)}}}onError(e,t){return n=>{if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,e){let r="

An error occurred:

"+em(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Bv=new Ler;Nr.options=Nr.setOptions=function(e){return Bv.setOptions(e),Nr.defaults=Bv.defaults,HIt(Nr.defaults),Nr};Nr.getDefaults=c_e;Nr.defaults=zv;Nr.use=function(...e){return Bv.use(...e),Nr.defaults=Bv.defaults,HIt(Nr.defaults),Nr};Nr.walkTokens=function(e,t){return Bv.walkTokens(e,t)};Nr.parseInline=Bv.parseInline;Nr.Parser=up;Nr.parser=up.parse;Nr.Renderer=Z6;Nr.TextRenderer=g_e;Nr.Lexer=cp;Nr.lexer=cp.lex;Nr.Tokenizer=Y6;Nr.Hooks=aU;Nr.parse=Nr;FIi=Nr.options,jIi=Nr.setOptions,HIi=Nr.use,qIi=Nr.walkTokens,BIi=Nr.parseInline,zIi=up.parse,GIi=cp.lex});function Q6(e){let t=e.split(` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${em(e,!0)}`}br(e){return"
"}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=UIt(e);if(i===null)return r;e=i;let s='
",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=UIt(e);if(i===null)return em(n);e=i;let s=`${em(n)}{let o=i[s].flat(1/0);n=n.concat(this.walkTokens(o,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...o){let a=i.renderer.apply(this,o);return a===!1&&(a=s.apply(this,o)),a}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new J6(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let o=s,a=n.renderer[o],c=i[o];i[o]=(...u)=>{let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new Z6(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let o=s,a=n.tokenizer[o],c=i[o];i[o]=(...u)=>{let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new uU;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let o=s,a=n.hooks[o],c=i[o];uU.passThroughHooks.has(s)?i[o]=u=>{if(this.defaults.async&&uU.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await a.call(i,u);return c.call(i,d)})();let l=a.call(i,u);return c.call(i,l)}:i[o]=(...u)=>{if(this.defaults.async)return(async()=>{let d=await a.apply(i,u);return d===!1&&(d=await c.apply(i,u)),d})();let l=a.apply(i,u);return l===!1&&(l=c.apply(i,u)),l}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(o){let a=[];return a.push(s.call(this,o)),i&&(a=a.concat(i.call(this,o))),a}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return cp.lex(e,t??this.defaults)}parser(e,t){return up.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},s=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let o=i.hooks?await i.hooks.preprocess(t):t,a=await(i.hooks?await i.hooks.provideLexer(e):e?cp.lex:cp.lexInline)(o,i),c=i.hooks?await i.hooks.processAllTokens(a):a;i.walkTokens&&await Promise.all(this.walkTokens(c,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser(e):e?up.parse:up.parseInline)(c,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(s);try{i.hooks&&(t=i.hooks.preprocess(t));let o=(i.hooks?i.hooks.provideLexer(e):e?cp.lex:cp.lexInline)(t,i);i.hooks&&(o=i.hooks.processAllTokens(o)),i.walkTokens&&this.walkTokens(o,i.walkTokens);let a=(i.hooks?i.hooks.provideParser(e):e?up.parse:up.parseInline)(o,i);return i.hooks&&(a=i.hooks.postprocess(a)),a}catch(o){return s(o)}}}onError(e,t){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let r="

An error occurred:

"+em(n.message+"",!0)+"
";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Bv=new Ler;Nr.options=Nr.setOptions=function(e){return Bv.setOptions(e),Nr.defaults=Bv.defaults,HIt(Nr.defaults),Nr};Nr.getDefaults=u_e;Nr.defaults=zv;Nr.use=function(...e){return Bv.use(...e),Nr.defaults=Bv.defaults,HIt(Nr.defaults),Nr};Nr.walkTokens=function(e,t){return Bv.walkTokens(e,t)};Nr.parseInline=Bv.parseInline;Nr.Parser=up;Nr.parser=up.parse;Nr.Renderer=J6;Nr.TextRenderer=y_e;Nr.Lexer=cp;Nr.lexer=cp.lex;Nr.Tokenizer=Z6;Nr.Hooks=uU;Nr.parse=Nr;FIi=Nr.options,jIi=Nr.setOptions,HIi=Nr.use,qIi=Nr.walkTokens,BIi=Nr.parseInline,zIi=up.parse,GIi=cp.lex});function $6(e){let t=e.split(` `),n=[],r=null,i=null,s=[];function o(){let a=s.join(` -`).trim();i?i.content=a:r?r.content=a:a&&n.push({heading:"_preamble",level:0,content:a,subsections:[]}),s=[]}for(let a of t){let c=a.match(/^## (.+)$/),u=a.match(/^### (.+)$/);c?(o(),i&&r&&(r.subsections.push(i),i=null),r&&n.push(r),r={heading:c[1],level:2,content:"",subsections:[]},i=null):u?(o(),i&&r&&r.subsections.push(i),i={heading:u[1],level:3,content:"",subsections:[]}):s.push(a)}return o(),i&&r&&r.subsections.push(i),r&&n.push(r),n}function $6(e){let t=[],n=/^[-*]\s+\[([ xX])\]\s+(.+)$/gm,r=n.exec(e);for(;r!==null;)t.push({checked:r[1].toLowerCase()==="x",text:r[2].trim()}),r=n.exec(e);return t}var y_e=v(()=>{"use strict";JIt()});import{existsSync as Uer}from"node:fs";import{readdir as Zu,readFile as lp}from"node:fs/promises";import{basename as uU,join as wi,relative as XIt,resolve as e5}from"node:path";function S_e(e,t){try{return(0,Jb.default)(e)}catch(n){if(!uI(n))throw n;let{text:r,removed:i}=pg(e);if(i.length===0)throw n;let s=(0,Jb.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function QIt(e){let t={...e};for(let n in t){let r=t[n];r instanceof Date&&(t[n]=r.toISOString().split("T")[0])}return t}function $It(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function e0t(e){return e.replace(/^# .+$/m,"").trim()}async function lU(e){try{let t=wi(e,"intent.md"),n=await lp(t,"utf-8"),{data:r,content:i}=S_e(n,t),s=QIt(r),o=$It(i),a=e0t(i),c=Q6(a);return{slug:uU(e),frontmatter:s,title:o,sections:c,rawContent:n}}catch(t){let n=wi(e,"intent.md");return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${n}:`,t),null}}async function t0t(e){try{let t=await lp(e,"utf-8"),{data:n,content:r}=S_e(t,e),i=QIt(n),s=$It(r),o=e0t(r),a=Q6(o),c=uU(e,".md"),u=c.match(/^unit-(\d+)/),l=u?Number.parseInt(u[1],10):0;return{slug:c,number:l,frontmatter:i,title:s,sections:a,rawContent:t}}catch(t){return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${e}:`,t),null}}async function n5(e){let t=[];try{let n=wi(e,"stages"),r=await Zu(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=wi(n,i.name,"units"),a=(await Zu(s)).filter(c=>/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/.test(c)).sort();for(let c of a){let u=await t0t(wi(s,c));u&&(u.frontmatter.stage||(u.frontmatter.stage=i.name),t.push(u))}}catch{}}catch{}return t.sort((n,r)=>n.number-r.number)}async function r5(e){let t={};try{let n=wi(e,"stages"),r=await Zu(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=i.name,o=await Fer(n,s);t[s]={stage:s,status:o.status,phase:o.phase,started_at:void 0,completed_at:void 0,gate_entered_at:void 0,gate_outcome:void 0}}}catch{}return t}async function Fer(e,t){let n=wi(e,t),r=wi(n,"units"),i=[];try{let l=(await Zu(r)).filter(d=>d.endsWith(".md"));i=await Promise.all(l.map(async d=>{try{let f=await lp(wi(r,d),"utf-8");return(0,Jb.default)(f).data}catch{return{}}}))}catch{}if(i.length===0)return{status:"pending",phase:"elaborate"};if(!i.every(l=>{let d=l.reviews;return d&&typeof d=="object"&&Object.values(d).every(f=>!!f)}))return{status:"in_progress",phase:"review"};let o=i.some(l=>!l.started_at||l.started_at===null),a=i.some(l=>{let d=Array.isArray(l.iterations)?l.iterations:[];return d.length===0?!1:!d[d.length-1]?.result});return o||a?{status:"in_progress",phase:"execute"}:i.every(l=>{let d=l.approvals;return d&&typeof d=="object"&&!!d.user})?{status:"in_progress",phase:"complete"}:i.every(l=>{let d=l.approvals;return d&&typeof d=="object"&&Object.values(d).every(f=>!!f)})?{status:"completed",phase:""}:{status:"in_progress",phase:"approve"}}async function i5(e){let t=[];try{let n=wi(e,"knowledge"),r=await Zu(n);for(let i of r.sort())if(i.endsWith(".md"))try{let s=await lp(wi(n,i),"utf-8"),{content:o}=(0,Jb.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function s5(e){let t=[];try{let n=wi(e,"stages"),r=await Zu(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=wi(n,i.name),o=await Zu(s);for(let a of o.sort())if(a.endsWith(".md"))try{let c=await lp(wi(s,a),"utf-8"),{content:u}=(0,Jb.default)(c);t.push({stage:i.name,name:a.replace(/\.md$/,""),content:u})}catch{}for(let a of["knowledge","discovery"])try{let c=wi(s,a),u=await Zu(c,{withFileTypes:!0,encoding:"utf8"});for(let l of u.sort((d,f)=>d.name.localeCompare(f.name)))if(!(!l.isFile()||!l.name.endsWith(".md")))try{let d=await lp(wi(c,l.name),"utf-8"),{content:f}=(0,Jb.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function n0t(e){let t=[],n;try{n=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let r of n){let i=wi(e,r.name);r.isDirectory()?t.push(...await n0t(i)):t.push(i)}return t}async function t5(e,t,n,r){let i=uU(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await lp(e,"utf-8"),{content:a}=(0,Jb.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(Her.includes(s))try{let o=await lp(e,"utf-8"),a=await e6(o,e,eTt(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(jer.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if(qer.includes(s))return{stage:t,name:n,type:"video",relativePath:r};if(zer.includes(s))try{let o=await lp(e,"utf-8");return{stage:t,name:n,type:"code",language:Ber[s],content:o,relativePath:r}}catch{}try{let o=await lp(e);if(Ger(o))return{stage:t,name:n,type:"code",content:o.toString("utf-8"),relativePath:r}}catch{}return{stage:t,name:n,type:"file",relativePath:r}}function Ger(e){let t=e.subarray(0,8192);if(t.length===0)return!0;let n=0;for(let r of t){if(r===0)return!1;(r<9||r>13&&r<32)&&(n+=1)}return n/t.length<.1}function dU(e,t){let r=`.haiku/intents/${uU(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function Wer(e){let t=[],n=e5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):e5(n,"..","..",".."),o=`${s}/`,a;try{a=await Zu(wi(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let c of a){if(!c.isDirectory())continue;let u=c.name,l=wi(e,"stages",u,"units"),d;try{d=(await Zu(l,{withFileTypes:!0,encoding:"utf8"})).filter(f=>f.isFile()&&Ver.test(f.name)).map(f=>f.name).sort()}catch{continue}for(let f of d){let p=wi(l,f),h;try{let m=await lp(p,"utf-8"),y=S_e(m,p).data.outputs;h=Array.isArray(y)?y.filter(b=>typeof b=="string"):[]}catch{continue}for(let m of h){if(VL.has(uU(m)))continue;let g=dU(m,e),y=e5(n,g),b=y!==n&&y.startsWith(r),S=y,E=XIt(n,y),_=E;if(!(b&&Uer(y))){let R=e5(s,m);if(R!==s&&R.startsWith(o))S=R,E=m,_=void 0;else if(!b)continue}let T=await t5(S,u,E,_??E);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function r0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&$yt.has(i.name)||t===""&&i.name==="artifacts"||t===""&&(i.name==="knowledge"||i.name==="discovery"))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await r0t(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function o5(e){let t=[],n=[],r=new Set,i=[];try{let s=wi(e,"stages");i=(await Zu(s,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(a=>a.name);for(let a of i){let c=wi(s,a,"artifacts"),u=(await n0t(c)).sort();for(let l of u){let d=XIt(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await t5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await Wer(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await r0t(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||Ker.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await t5(c,s,l,d);if(f){let p=u.indexOf("/");p>0&&(f.directory=u.slice(0,p)),n.push(f),r.add(c)}}}return{outputs:t,other:n}}async function a5(e){let t=[],n=await i0t(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await t5(r,"",i,i);if(!s)continue;let o=i.indexOf("/");o>0&&(s.directory=i.slice(0,o)),t.push(s)}return t}async function i0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&VL.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await i0t(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var Jb,jer,Her,qer,Ber,zer,Ver,Ker,c5=v(()=>{"use strict";TD();Jb=Re(Kt(),1);_be();y_e();Eye();jer=[".png",".jpg",".jpeg",".svg",".webp",".gif"],Her=[".html",".htm"],qer=[".mp4",".webm",".mov",".m4v",".ogv"],Ber={".ts":"typescript",".tsx":"tsx",".js":"javascript",".jsx":"jsx",".mjs":"javascript",".cjs":"javascript",".py":"python",".rb":"ruby",".go":"go",".rs":"rust",".java":"java",".kt":"kotlin",".swift":"swift",".c":"c",".h":"c",".cpp":"cpp",".cs":"csharp",".css":"css",".scss":"scss",".sh":"bash",".bash":"bash",".zsh":"bash",".sql":"sql",".graphql":"graphql",".gql":"graphql",".yaml":"yaml",".yml":"yaml",".json":"json",".toml":"ini",".ini":"ini",".env":"bash",".tf":"terraform",".hcl":"terraform",".cue":"go",".feature":"gherkin",".gherkin":"gherkin"},zer=[".feature",".gherkin",".txt",".yaml",".yml",".json",".toml",".ini",".env",".sql",".graphql",".gql",".sh",".bash",".zsh",".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".rb",".go",".rs",".java",".kt",".swift",".c",".h",".cpp",".cs",".css",".scss",".cue",".tf",".hcl"];Ver=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;Ker=new Set(["BRIEF.md","elaboration.md","observations.md"])});var s0t=v(()=>{"use strict";nhe();y_e();c5()});function fU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var b_e=v(()=>{"use strict"});import{readFile as o0t,stat as Yer}from"node:fs/promises";import{basename as u0t,relative as Zer,resolve as a0t}from"node:path";function E_e(e){let t=u0t(e);return!!(t.startsWith(".")||etr.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function d0t(e,t,n){if(!n||n.length===0)return[];let r=a0t(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||E_e(o))continue;let a=dU(o,e),c=a0t(r,a);if(c!==r&&!c.startsWith(i))continue;let u=Zer(r,c),l=u0t(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=fU(t,u),m=!0,g;try{let b=await Yer(c);g=b.size,b.isFile()||(m=!1)}catch{m=!1}let y={path:u,name:p,url:h,exists:m,...g!==void 0?{sizeBytes:g}:{}};if(f===".md"){let b;if(m)try{let S=await o0t(c,"utf-8"),{content:E}=(0,l0t.default)(S);b=c0t(E,Jer)}catch{}s.push({...y,type:"markdown",...b!==void 0?{previewBody:b}:{}});continue}if($er.has(f)){let b;if(m)try{let S=await o0t(c,"utf-8");b=c0t(S,Xer)}catch{}s.push({...y,type:"html",...b!==void 0?{previewBody:b}:{}});continue}if(Qer.has(f)){s.push({...y,type:"image"});continue}s.push({...y,type:"file"})}return s}function c0t(e,t){let n=e.trim();return n.length<=t?n:`${n.slice(0,t).trimEnd()} +`).trim();i?i.content=a:r?r.content=a:a&&n.push({heading:"_preamble",level:0,content:a,subsections:[]}),s=[]}for(let a of t){let c=a.match(/^## (.+)$/),u=a.match(/^### (.+)$/);c?(o(),i&&r&&(r.subsections.push(i),i=null),r&&n.push(r),r={heading:c[1],level:2,content:"",subsections:[]},i=null):u?(o(),i&&r&&r.subsections.push(i),i={heading:u[1],level:3,content:"",subsections:[]}):s.push(a)}return o(),i&&r&&r.subsections.push(i),r&&n.push(r),n}function e5(e){let t=[],n=/^[-*]\s+\[([ xX])\]\s+(.+)$/gm,r=n.exec(e);for(;r!==null;)t.push({checked:r[1].toLowerCase()==="x",text:r[2].trim()}),r=n.exec(e);return t}var S_e=v(()=>{"use strict";JIt()});import{existsSync as Uer}from"node:fs";import{readdir as Zu,readFile as lp}from"node:fs/promises";import{basename as dU,join as wi,relative as XIt,resolve as t5}from"node:path";function b_e(e,t){try{return(0,Jb.default)(e)}catch(n){if(!uI(n))throw n;let{text:r,removed:i}=pg(e);if(i.length===0)throw n;let s=(0,Jb.default)(r);return console.warn(`[haiku] Recovered duplicate YAML keys in ${t}: kept last occurrence of ${i.join(", ")}`),s}}function QIt(e){let t={...e};for(let n in t){let r=t[n];r instanceof Date&&(t[n]=r.toISOString().split("T")[0])}return t}function $It(e){let t=e.match(/^# (.+)$/m);return t?t[1].trim():""}function e0t(e){return e.replace(/^# .+$/m,"").trim()}async function fU(e){try{let t=wi(e,"intent.md"),n=await lp(t,"utf-8"),{data:r,content:i}=b_e(n,t),s=QIt(r),o=$It(i),a=e0t(i),c=$6(a);return{slug:dU(e),frontmatter:s,title:o,sections:c,rawContent:n}}catch(t){let n=wi(e,"intent.md");return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${n}:`,t),null}}async function t0t(e){try{let t=await lp(e,"utf-8"),{data:n,content:r}=b_e(t,e),i=QIt(n),s=$It(r),o=e0t(r),a=$6(o),c=dU(e,".md"),u=c.match(/^unit-(\d+)/),l=u?Number.parseInt(u[1],10):0;return{slug:c,number:l,frontmatter:i,title:s,sections:a,rawContent:t}}catch(t){return t.code!=="ENOENT"&&console.warn(`[haiku/shared] Failed to parse ${e}:`,t),null}}async function r5(e){let t=[];try{let n=wi(e,"stages"),r=await Zu(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=wi(n,i.name,"units"),a=(await Zu(s)).filter(c=>/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/.test(c)).sort();for(let c of a){let u=await t0t(wi(s,c));u&&(u.frontmatter.stage||(u.frontmatter.stage=i.name),t.push(u))}}catch{}}catch{}return t.sort((n,r)=>n.number-r.number)}async function i5(e){let t={};try{let n=wi(e,"stages"),r=await Zu(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=i.name,o=await Fer(n,s);t[s]={stage:s,status:o.status,phase:o.phase,started_at:void 0,completed_at:void 0,gate_entered_at:void 0,gate_outcome:void 0}}}catch{}return t}async function Fer(e,t){let n=wi(e,t),r=wi(n,"units"),i=[];try{let l=(await Zu(r)).filter(d=>d.endsWith(".md"));i=await Promise.all(l.map(async d=>{try{let f=await lp(wi(r,d),"utf-8");return(0,Jb.default)(f).data}catch{return{}}}))}catch{}if(i.length===0)return{status:"pending",phase:"elaborate"};if(!i.every(l=>{let d=l.reviews;return d&&typeof d=="object"&&Object.values(d).every(f=>!!f)}))return{status:"in_progress",phase:"review"};let o=i.some(l=>!l.started_at||l.started_at===null),a=i.some(l=>{let d=Array.isArray(l.iterations)?l.iterations:[];return d.length===0?!1:!d[d.length-1]?.result});return o||a?{status:"in_progress",phase:"execute"}:i.every(l=>{let d=l.approvals;return d&&typeof d=="object"&&!!d.user})?{status:"in_progress",phase:"complete"}:i.every(l=>{let d=l.approvals;return d&&typeof d=="object"&&Object.values(d).every(f=>!!f)})?{status:"completed",phase:""}:{status:"in_progress",phase:"approve"}}async function s5(e){let t=[];try{let n=wi(e,"knowledge"),r=await Zu(n);for(let i of r.sort())if(i.endsWith(".md"))try{let s=await lp(wi(n,i),"utf-8"),{content:o}=(0,Jb.default)(s);t.push({name:i.replace(/\.md$/,""),content:o})}catch{}}catch{}return t}async function o5(e){let t=[];try{let n=wi(e,"stages"),r=await Zu(n,{withFileTypes:!0});for(let i of r)if(i.isDirectory())try{let s=wi(n,i.name),o=await Zu(s);for(let a of o.sort())if(a.endsWith(".md"))try{let c=await lp(wi(s,a),"utf-8"),{content:u}=(0,Jb.default)(c);t.push({stage:i.name,name:a.replace(/\.md$/,""),content:u})}catch{}for(let a of["knowledge","discovery"])try{let c=wi(s,a),u=await Zu(c,{withFileTypes:!0,encoding:"utf8"});for(let l of u.sort((d,f)=>d.name.localeCompare(f.name)))if(!(!l.isFile()||!l.name.endsWith(".md")))try{let d=await lp(wi(c,l.name),"utf-8"),{content:f}=(0,Jb.default)(d);t.push({stage:i.name,name:`${a}/${l.name.replace(/\.md$/,"")}`,content:f})}catch{}}catch{}}catch{}}catch{}return t}async function n0t(e){let t=[],n;try{n=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let r of n){let i=wi(e,r.name);r.isDirectory()?t.push(...await n0t(i)):t.push(i)}return t}async function n5(e,t,n,r){let i=dU(e),s=i.substring(i.lastIndexOf(".")).toLowerCase();if(s===".md")try{let o=await lp(e,"utf-8"),{content:a}=(0,Jb.default)(o);return{stage:t,name:n,type:"markdown",content:a}}catch{return null}if(Her.includes(s))try{let o=await lp(e,"utf-8"),a=await t6(o,e,eTt(e,r));return{stage:t,name:n,type:"html",content:a,relativePath:r}}catch{return null}if(jer.includes(s))return{stage:t,name:n,type:"image",relativePath:r};if(qer.includes(s))return{stage:t,name:n,type:"video",relativePath:r};if(zer.includes(s))try{let o=await lp(e,"utf-8");return{stage:t,name:n,type:"code",language:Ber[s],content:o,relativePath:r}}catch{}try{let o=await lp(e);if(Ger(o))return{stage:t,name:n,type:"code",content:o.toString("utf-8"),relativePath:r}}catch{}return{stage:t,name:n,type:"file",relativePath:r}}function Ger(e){let t=e.subarray(0,8192);if(t.length===0)return!0;let n=0;for(let r of t){if(r===0)return!1;(r<9||r>13&&r<32)&&(n+=1)}return n/t.length<.1}function pU(e,t){let r=`.haiku/intents/${dU(t)}/`;return e.startsWith(r)?e.slice(r.length):e}async function Wer(e){let t=[],n=t5(e),r=`${n}/`,i=n.indexOf("/.haiku/"),s=i>=0?n.slice(0,i):t5(n,"..","..",".."),o=`${s}/`,a;try{a=await Zu(wi(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return t}for(let c of a){if(!c.isDirectory())continue;let u=c.name,l=wi(e,"stages",u,"units"),d;try{d=(await Zu(l,{withFileTypes:!0,encoding:"utf8"})).filter(f=>f.isFile()&&Ver.test(f.name)).map(f=>f.name).sort()}catch{continue}for(let f of d){let p=wi(l,f),h;try{let m=await lp(p,"utf-8"),y=b_e(m,p).data.outputs;h=Array.isArray(y)?y.filter(b=>typeof b=="string"):[]}catch{continue}for(let m of h){if(KL.has(dU(m)))continue;let g=pU(m,e),y=t5(n,g),b=y!==n&&y.startsWith(r),S=y,E=XIt(n,y),_=E;if(!(b&&Uer(y))){let R=t5(s,m);if(R!==s&&R.startsWith(o))S=R,E=m,_=void 0;else if(!b)continue}let T=await n5(S,u,E,_??E);T&&(_===void 0&&(T.relativePath=void 0),t.push({absPath:S,artifact:T}))}}}return t}async function r0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&$yt.has(i.name)||t===""&&i.name==="artifacts"||t===""&&(i.name==="knowledge"||i.name==="discovery"))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await r0t(o,s)):i.isFile()&&n.push({absPath:o,relFromStage:s})}return n}async function a5(e){let t=[],n=[],r=new Set,i=[];try{let s=wi(e,"stages");i=(await Zu(s,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(a=>a.name);for(let a of i){let c=wi(s,a,"artifacts"),u=(await n0t(c)).sort();for(let l of u){let d=XIt(c,l),f=d,p=`stages/${a}/artifacts/${d}`,h=await n5(l,a,f,p);h&&(t.push(h),r.add(l))}}}catch{}for(let{absPath:s,artifact:o}of await Wer(e))r.has(s)||(t.push(o),r.add(s));for(let s of i){let o=wi(e,"stages",s),a=await r0t(o);a.sort((c,u)=>c.relFromStage.localeCompare(u.relFromStage));for(let{absPath:c,relFromStage:u}of a){if(r.has(c)||Ker.has(u))continue;let l=u,d=`stages/${s}/${u}`,f=await n5(c,s,l,d);if(f){let p=u.indexOf("/");p>0&&(f.directory=u.slice(0,p)),n.push(f),r.add(c)}}}return{outputs:t,other:n}}async function c5(e){let t=[],n=await i0t(e);n.sort((r,i)=>r.relFromRoot.localeCompare(i.relFromRoot));for(let{absPath:r,relFromRoot:i}of n){let s=await n5(r,"",i,i);if(!s)continue;let o=i.indexOf("/");o>0&&(s.directory=i.slice(0,o)),t.push(s)}return t}async function i0t(e,t=""){let n=[],r;try{r=await Zu(e,{withFileTypes:!0,encoding:"utf8"})}catch{return n}for(let i of r){if(t===""&&KL.has(i.name))continue;let s=t?`${t}/${i.name}`:i.name,o=wi(e,i.name);i.isDirectory()?n.push(...await i0t(o,s)):i.isFile()&&n.push({absPath:o,relFromRoot:s})}return n}var Jb,jer,Her,qer,Ber,zer,Ver,Ker,u5=v(()=>{"use strict";vD();Jb=Re(Kt(),1);Tbe();S_e();_ye();jer=[".png",".jpg",".jpeg",".svg",".webp",".gif"],Her=[".html",".htm"],qer=[".mp4",".webm",".mov",".m4v",".ogv"],Ber={".ts":"typescript",".tsx":"tsx",".js":"javascript",".jsx":"jsx",".mjs":"javascript",".cjs":"javascript",".py":"python",".rb":"ruby",".go":"go",".rs":"rust",".java":"java",".kt":"kotlin",".swift":"swift",".c":"c",".h":"c",".cpp":"cpp",".cs":"csharp",".css":"css",".scss":"scss",".sh":"bash",".bash":"bash",".zsh":"bash",".sql":"sql",".graphql":"graphql",".gql":"graphql",".yaml":"yaml",".yml":"yaml",".json":"json",".toml":"ini",".ini":"ini",".env":"bash",".tf":"terraform",".hcl":"terraform",".cue":"go",".feature":"gherkin",".gherkin":"gherkin"},zer=[".feature",".gherkin",".txt",".yaml",".yml",".json",".toml",".ini",".env",".sql",".graphql",".gql",".sh",".bash",".zsh",".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".rb",".go",".rs",".java",".kt",".swift",".c",".h",".cpp",".cs",".css",".scss",".cue",".tf",".hcl"];Ver=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/;Ker=new Set(["BRIEF.md","elaboration.md","observations.md"])});var s0t=v(()=>{"use strict";rhe();S_e();u5()});function hU(e,t){let n=t.replace(/^\/+/,"");return`/stage-artifacts/${e}/${n}`}var E_e=v(()=>{"use strict"});import{readFile as o0t,stat as Yer}from"node:fs/promises";import{basename as u0t,relative as Zer,resolve as a0t}from"node:path";function __e(e){let t=u0t(e);return!!(t.startsWith(".")||etr.has(t)||t.endsWith(".manifest")||t.includes("fs-manifest"))}async function d0t(e,t,n){if(!n||n.length===0)return[];let r=a0t(e),i=`${r}/`,s=[];for(let o of n){if(typeof o!="string"||__e(o))continue;let a=pU(o,e),c=a0t(r,a);if(c!==r&&!c.startsWith(i))continue;let u=Zer(r,c),l=u0t(u),d=l.lastIndexOf("."),f=d>=0?l.substring(d).toLowerCase():"",p=l.replace(/\.[^.]+$/,"")||l,h=hU(t,u),m=!0,g;try{let b=await Yer(c);g=b.size,b.isFile()||(m=!1)}catch{m=!1}let y={path:u,name:p,url:h,exists:m,...g!==void 0?{sizeBytes:g}:{}};if(f===".md"){let b;if(m)try{let S=await o0t(c,"utf-8"),{content:E}=(0,l0t.default)(S);b=c0t(E,Jer)}catch{}s.push({...y,type:"markdown",...b!==void 0?{previewBody:b}:{}});continue}if($er.has(f)){let b;if(m)try{let S=await o0t(c,"utf-8");b=c0t(S,Xer)}catch{}s.push({...y,type:"html",...b!==void 0?{previewBody:b}:{}});continue}if(Qer.has(f)){s.push({...y,type:"image"});continue}s.push({...y,type:"file"})}return s}function c0t(e,t){let n=e.trim();return n.length<=t?n:`${n.slice(0,t).trimEnd()} -\u2026`}var l0t,Jer,Xer,Qer,$er,etr,__e=v(()=>{"use strict";l0t=Re(Kt(),1);c5();b_e();Jer=2e3,Xer=2e3,Qer=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),$er=new Set([".html",".htm"]),etr=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as f0t,readFile as ttr}from"node:fs/promises";import{basename as ntr,join as T_e,relative as rtr,resolve as p0t}from"node:path";async function m0t(e){let t=p0t(e),n=`${t}/`,r={},i;try{i=await f0t(T_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=T_e(e,"stages",s.name,"units"),a;try{a=(await f0t(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&itr.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=T_e(o,c),l=ntr(c,".md"),d;try{let f=await ttr(u,"utf-8"),p=(0,h0t.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(E_e(f))continue;let p=dU(f,e),h=p0t(t,p);if(h!==t&&!h.startsWith(n))continue;let m=rtr(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var h0t,itr,g0t=v(()=>{"use strict";h0t=Re(Kt(),1);c5();__e();itr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as otr}from"node:child_process";import{appendFileSync as atr,existsSync as v_e,mkdirSync as b0t,writeFileSync as E0t}from"node:fs";import{readFile as pU}from"node:fs/promises";import{dirname as R_e,join as tm,resolve as l5}from"node:path";async function T0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await d0t(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await m0t(e);return{unitOutputs:i,outputDeclaredBy:s}}function dp(e,t,n){if(console.error(`[haiku] ${t} ready \u2192 ${e} - Share this URL with the reviewer if the browser didn't auto-open.`),hTt(e,n?{sessionId:n}:{}))return;let r=process.platform==="darwin"?["open",e]:process.platform==="win32"?["powershell","-NoProfile","-NonInteractive","-Command",`Start-Process '${e.replace(/'/g,"''")}'`]:["xdg-open",e];try{let i=otr(r[0],r.slice(1),{stdio:"ignore",detached:!0});i.unref(),i.on("error",s=>{console.error(`[haiku] Browser launcher ${r[0]} failed: ${s.message}. Paste ${e} into a browser to continue.`)}),i.on("exit",(s,o)=>{s!==null&&s!==0&&console.error(`[haiku] Browser launcher ${r[0]} exited with code ${s}. Paste ${e} into a browser to continue.`),o&&console.error(`[haiku] Browser launcher ${r[0]} terminated by signal ${o}. Paste ${e} into a browser to continue.`)})}catch(i){console.error(`[haiku] Browser launcher threw synchronously: ${i instanceof Error?i.message:String(i)}. Paste ${e} into a browser to continue.`)}}function u5(e){try{atr(ltr,`${new Date().toISOString()} ${e} +\u2026`}var l0t,Jer,Xer,Qer,$er,etr,T_e=v(()=>{"use strict";l0t=Re(Kt(),1);u5();E_e();Jer=2e3,Xer=2e3,Qer=new Set([".png",".jpg",".jpeg",".svg",".webp",".gif",".avif"]),$er=new Set([".html",".htm"]),etr=new Set(["action-log.jsonl","write-audit.jsonl","decisions.jsonl","coverage-decisions.json"])});import{readdir as f0t,readFile as ttr}from"node:fs/promises";import{basename as ntr,join as v_e,relative as rtr,resolve as p0t}from"node:path";async function m0t(e){let t=p0t(e),n=`${t}/`,r={},i;try{i=await f0t(v_e(e,"stages"),{withFileTypes:!0,encoding:"utf8"})}catch{return r}for(let s of i){if(!s.isDirectory())continue;let o=v_e(e,"stages",s.name,"units"),a;try{a=(await f0t(o,{withFileTypes:!0,encoding:"utf8"})).filter(c=>c.isFile()&&itr.test(c.name)).map(c=>c.name).sort()}catch{continue}for(let c of a){let u=v_e(o,c),l=ntr(c,".md"),d;try{let f=await ttr(u,"utf-8"),p=(0,h0t.default)(f).data.outputs;d=Array.isArray(p)?p.filter(h=>typeof h=="string"):[]}catch{continue}for(let f of d){if(__e(f))continue;let p=pU(f,e),h=p0t(t,p);if(h!==t&&!h.startsWith(n))continue;let m=rtr(t,h);r[m]||(r[m]=[]),r[m].includes(l)||r[m].push(l)}}}return r}var h0t,itr,g0t=v(()=>{"use strict";h0t=Re(Kt(),1);u5();T_e();itr=/^unit-\d{2,}-[a-z0-9]+(?:-[a-z0-9]+)*\.md$/});import{spawn as otr}from"node:child_process";import{appendFileSync as atr,existsSync as R_e,mkdirSync as b0t,writeFileSync as E0t}from"node:fs";import{readFile as mU}from"node:fs/promises";import{dirname as A_e,join as tm,resolve as d5}from"node:path";async function T0t(e,t,n){let r=await Promise.all(n.map(async o=>({slug:o.slug,outputs:await d0t(e,t,o.frontmatter.outputs)}))),i={};for(let{slug:o,outputs:a}of r)a.length>0&&(i[o]=a);let s=await m0t(e);return{unitOutputs:i,outputDeclaredBy:s}}function dp(e,t,n){if(console.error(`[haiku] ${t} ready \u2192 ${e} + Share this URL with the reviewer if the browser didn't auto-open.`),hTt(e,n?{sessionId:n}:{}))return;let r=process.platform==="darwin"?["open",e]:process.platform==="win32"?["powershell","-NoProfile","-NonInteractive","-Command",`Start-Process '${e.replace(/'/g,"''")}'`]:["xdg-open",e];try{let i=otr(r[0],r.slice(1),{stdio:"ignore",detached:!0});i.unref(),i.on("error",s=>{console.error(`[haiku] Browser launcher ${r[0]} failed: ${s.message}. Paste ${e} into a browser to continue.`)}),i.on("exit",(s,o)=>{s!==null&&s!==0&&console.error(`[haiku] Browser launcher ${r[0]} exited with code ${s}. Paste ${e} into a browser to continue.`),o&&console.error(`[haiku] Browser launcher ${r[0]} terminated by signal ${o}. Paste ${e} into a browser to continue.`)})}catch(i){console.error(`[haiku] Browser launcher threw synchronously: ${i instanceof Error?i.message:String(i)}. Paste ${e} into a browser to continue.`)}}function l5(e){try{atr(ltr,`${new Date().toISOString()} ${e} `)}catch{}process.stderr.write(`[haiku-mcp] ${e} -`)}function dtr(e,t){if(!t){u5(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(u5(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){u5(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Ov(e,"tool call cancelled");return}t.addEventListener("abort",()=>{u5(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Ov(e,"tool call cancelled")},{once:!0})}async function v0t(e,t){let{name:n,arguments:r}=e.params;if(hU.has(n))return k_e(n,r??{},t);if(n==="haiku_report"){let i=r??{},s=i.message;if(!s)return{content:[{type:"text",text:"Error: message is required"}],isError:!0};let o=i.contact_email,a=i.name,c=i._session_context;if(!Gne())try{let u=tm(Te(),"reports");b0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=tm(u,`${l}.json`);return E0t(d,`${JSON.stringify({recorded_at:new Date().toISOString(),message:s,contact_email:o??null,name:a??null,session_context:c??null},null,2)} -`),{content:[{type:"text",text:`Sentry is not configured in this installation; report written locally to ${d}.`}]}}catch(u){return{content:[{type:"text",text:`Sentry is not configured and the local report sink failed: ${u instanceof Error?u.message:String(u)}`}],isError:!0}}return zne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,Ege,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let q=yv();if(q)o=q.slug;else{let Q=Te(),B=tm(Q,"intents"),F=Fg(B).filter(V=>V.data.status!=="completed");if(F.length===1)o=F[0].slug;else return F.length===0?{content:[{type:"text",text:"No active intents found. Start one with /haiku:haiku-start, or pass `intent` explicitly."}],isError:!0}:{content:[{type:"text",text:`Multiple active intents (${F.map(V=>V.slug).join(", ")}). Pass \`intent\` explicitly, or checkout an intent branch so the tool can auto-resolve.`}],isError:!0}}}let a=pe(o),c=await lU(a);if(!c)return{content:[{type:"text",text:`Could not parse intent "${o}" \u2014 .haiku/intents/${o}/intent.md missing or malformed.`}],isError:!0};let u=i.stage||"",d=c.frontmatter.studio??"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),x0)),h=u||(d?f(o,d)??"":""),m=await n5(a),g=w3(m),y=I3(g,m),b=c.sections.find(q=>q.heading?.toLowerCase().includes("completion criteria")||q.heading?.toLowerCase().includes("success criteria")),S=b?$6(b.content):[],E=zY({intent_dir:a,intent_slug:o,target:""});E.ad_hoc=!0,E.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await T0t(a,E.session_id,m);Object.assign(E,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:y,unitOutputs:_,outputDeclaredBy:T});let R=await r5(a),A=await i5(a),x=await s5(a),{outputs:k,other:P}=await o5(a),N=await a5(a);for(let q of[...k,...P,...N])q.relativePath&&(q.intentRelativePath=q.relativePath,q.relativePath=fU(E.session_id,q.relativePath));Object.assign(E,{stageStates:R,knowledgeFiles:A,stageArtifacts:x,outputArtifacts:k,otherFiles:P,intentOtherFiles:N});let C=await Wb(),L=Bi()?Av(E.session_id,await Hg(C),"intent"):`http://127.0.0.1:${C}/review/${E.session_id}`,G=h?`/stages/${h}`:"",W=`${L}${G}`;dtr(E.session_id,t);let $=i.gate_kind||"";return $==="spec"||$==="approval"?(E.ad_hoc=!1,dp(W,"User gate review",E.session_id),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${W} +`)}function dtr(e,t){if(!t){l5(`bindSessionCancellation(${e}): no signal passed \u2014 cancel will not fire`);return}if(l5(`bindSessionCancellation(${e}): signal attached, aborted=${t.aborted}`),t.aborted){l5(`bindSessionCancellation(${e}): signal was already aborted, closing immediately`),Ov(e,"tool call cancelled");return}t.addEventListener("abort",()=>{l5(`abort fired for session ${e} \u2014 closing WS (reason: ${t.reason})`),Ov(e,"tool call cancelled")},{once:!0})}async function v0t(e,t){let{name:n,arguments:r}=e.params;if(gU.has(n))return I_e(n,r??{},t);if(n==="haiku_report"){let i=r??{},s=i.message;if(!s)return{content:[{type:"text",text:"Error: message is required"}],isError:!0};let o=i.contact_email,a=i.name,c=i._session_context;if(!Vne())try{let u=tm(Te(),"reports");b0t(u,{recursive:!0});let l=new Date().toISOString().replace(/[:.]/g,"-"),d=tm(u,`${l}.json`);return E0t(d,`${JSON.stringify({recorded_at:new Date().toISOString(),message:s,contact_email:o??null,name:a??null,session_context:c??null},null,2)} +`),{content:[{type:"text",text:`Sentry is not configured in this installation; report written locally to ${d}.`}]}}catch(u){return{content:[{type:"text",text:`Sentry is not configured and the local report sink failed: ${u instanceof Error?u.message:String(u)}`}],isError:!0}}return Gne(s,c,o,a),{content:[{type:"text",text:"Feedback submitted. Thank you!"}]}}if(n==="haiku_review_open"){let i=r??{},s=Be(i,_ge,"haiku_review_open");if(s)return s;let o=i.intent||"";if(!o){let q=yv();if(q)o=q.slug;else{let Q=Te(),B=tm(Q,"intents"),F=Fg(B).filter(V=>V.data.status!=="completed");if(F.length===1)o=F[0].slug;else return F.length===0?{content:[{type:"text",text:"No active intents found. Start one with /haiku:haiku-start, or pass `intent` explicitly."}],isError:!0}:{content:[{type:"text",text:`Multiple active intents (${F.map(V=>V.slug).join(", ")}). Pass \`intent\` explicitly, or checkout an intent branch so the tool can auto-resolve.`}],isError:!0}}}let a=pe(o),c=await fU(a);if(!c)return{content:[{type:"text",text:`Could not parse intent "${o}" \u2014 .haiku/intents/${o}/intent.md missing or malformed.`}],isError:!0};let u=i.stage||"",d=c.frontmatter.studio??"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),O0)),h=u||(d?f(o,d)??"":""),m=await r5(a),g=I3(m),y=O3(g,m),b=c.sections.find(q=>q.heading?.toLowerCase().includes("completion criteria")||q.heading?.toLowerCase().includes("success criteria")),S=b?e5(b.content):[],E=GY({intent_dir:a,intent_slug:o,target:""});E.ad_hoc=!0,E.stage=h||void 0;let{unitOutputs:_,outputDeclaredBy:T}=await T0t(a,E.session_id,m);Object.assign(E,{parsedIntent:c,parsedUnits:m,parsedCriteria:S,parsedMermaid:y,unitOutputs:_,outputDeclaredBy:T});let R=await i5(a),A=await s5(a),x=await o5(a),{outputs:k,other:P}=await a5(a),N=await c5(a);for(let q of[...k,...P,...N])q.relativePath&&(q.intentRelativePath=q.relativePath,q.relativePath=hU(E.session_id,q.relativePath));Object.assign(E,{stageStates:R,knowledgeFiles:A,stageArtifacts:x,outputArtifacts:k,otherFiles:P,intentOtherFiles:N});let C=await Wb(),L=Bi()?Av(E.session_id,await Hg(C),"intent"):`http://127.0.0.1:${C}/review/${E.session_id}`,G=h?`/stages/${h}`:"",W=`${L}${G}`;dtr(E.session_id,t);let $=i.gate_kind||"";return $==="spec"||$==="approval"?(E.ad_hoc=!1,dp(W,"User gate review",E.session_id),{content:[{type:"text",text:`User-gate review opened for stage "${h||"(unspecified)"}". Review URL: ${W} -Now call haiku_await_gate { intent: "${o}" } to block on the user's decision. On approve, the engine stamps ${$==="spec"?"reviews.user":"approvals.user"} on each unit and the cursor advances on the next tick.`}]}):(dp(W,"Ad-hoc review",E.session_id),{content:[{type:"text",text:`Ad-hoc review pane open at ${W} (stage "${h||"(unspecified)"}"). Non-blocking \u2014 keep working. The user browses and closes the pane with Done when finished; any feedback they leave persists to disk and the next \`haiku_run_next\` routes it through the normal fix-loop. No workflow action is required here.`}]})}if(n.startsWith("haiku_")&&!ftr.has(n))return SSe(n,r??{});if(n==="open_review")return{content:[{type:"text",text:"Error: open_review cannot be called directly. Use haiku_run_next to advance \u2014 it validates units and opens the review automatically when ready."}],isError:!0};if(n==="ask_user_visual_question"){let i=ctr.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>R_e(l5(h))),l=wye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await Wb(),p;if(Bi()){let h=await Hg(f);p=Av(l.session_id,h,"question")}else p=`http://127.0.0.1:${f}/question/${l.session_id}`;return dp(p,"Question session",l.session_id),await S0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,wge,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let R=yv();if(R)c=R.slug;else{let A=Te(),x=tm(A,"intents"),k=Fg(x).filter(P=>P.data.status!=="completed");if(k.length===1)c=k[0].slug;else return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_intent_unresolved",message:k.length===0?"No active intents found. Pass `intent` explicitly.":`Multiple active intents (${k.map(P=>P.slug).join(", ")}). Pass \`intent\` explicitly.`})}],isError:!0}}}let u=pe(c);if(!v_e(u))return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_intent_not_found",message:`Intent "${c}" not found at ${u}.`})}],isError:!0};let l=a==="boot"||a==="auto",d=o.cwd?tm(u,o.cwd):u,f=null,p=null;if(l&&o.processes&&o.processes.length>0){if(o.command&&o.command.length>0)return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_input_invalid",message:"`command` and `processes` are mutually exclusive. Use `command` for a one-process boot and `processes` for a stack."})}],isError:!0};f=o.processes.map(x=>({name:x.name,command:x.command,cwd:x.cwd?tm(u,x.cwd):u,port_env:x.port_env,ready_url:x.ready_url,depends_on:x.depends_on,no_port:x.no_port}));let R=f.filter(x=>!x.no_port);if(o.primary)p=o.primary;else if(R.length===1)p=R[0].name;else return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_primary_required",message:`\`processes\` has ${R.length} port-bound entries (${R.map(x=>x.name).join(", ")}). Set \`primary: ""\` to tell the engine which one's URL Playwright should drive.`})}],isError:!0};let A=new Set(f.map(x=>x.name));if(!A.has(p))return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_primary_not_in_group",message:`\`primary: "${p}"\` does not match any process name in the group (${[...A].join(", ")}).`})}],isError:!0}}if(l&&!f&&!(o.command&&o.command.length>0)){let R=null;try{R=Nye(R_e(Te()))}catch(A){return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_boot_recipe_invalid",message:A instanceof Error?A.message:String(A)})}],isError:!0}}R&&(f=R.processes,p=R.primary)}let h=null;if(l&&!f&&(o.command&&o.command.length>0?h=hSt(o.command,d):h=mSt(d)),a==="boot"&&!f&&!h)return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_no_boot_target",message:`No boot target supplied, no \`.haiku/boot.md\` recipe, and no package.json dev/start script found in ${d}. Either: (a) retry haiku_view with \`command: [...]\` for a one-process app (e.g. \`["uvicorn", "app:main"]\`, \`["bin/dev"]\`, \`["go", "run", "./cmd/server"]\`) or \`processes: [...]\` with \`primary: ""\` for a stack; or (b) commit a \`.haiku/boot.md\` recipe so every agent on every harness boots this app the same way without rediscovering it (frontmatter: \`command:\`/\`processes:\`, \`cwd:\`, \`env:\`, \`ready_url:\`). The engine sets PORT + HOST env vars before spawning each process and exposes \`_PORT\` + \`_URL\` for service discovery between dependents.`})}],isError:!0};let m;try{let A=(await lU(u))?.frontmatter;A&&typeof A.studio=="string"&&A.studio&&(m=A.studio)}catch{}let g=f||h?"boot":"viewer",y=xye({intent_dir:u,intent_slug:c,studio:m,stage:o.stage,artifact:o.artifact,mode:g});if(g==="boot"&&(f||h))try{let R,A,x,k;if(f&&p){let N=await Cye(y.session_id,f,p);if(N.primary.port===null)throw new Error(`primary process "${p}" has no port \u2014 cannot return URL`);R=N.primary.port,A=N.primary.command,x=N.primary.pid,k=N.processes}else if(h){let N=await ySt(y.session_id,h);if(N.port===null)throw new Error("single-process boot returned null port");R=N.port,A=N.command,x=N.pid}else throw new Error("boot mode reached without group or detection");Oye(y.session_id,{boot_port:R,boot_pid:x,boot_command:A});let P=`http://127.0.0.1:${R}/`;return{content:[{type:"text",text:JSON.stringify({session_id:y.session_id,url:P,mode:"boot",intent:c,stage:o.stage??null,artifact:o.artifact??null,boot_command:A,processes:k,note:"Hand the `url` to the bundled `haiku-playwright` MCP. The dev process(es) stay up until `haiku_view_close` (or the 30min TTL). Call `haiku_view_close` with the `session_id` when done \u2014 the engine kills the whole group."})}]}}catch(R){return D0(y.session_id),{content:[{type:"text",text:JSON.stringify({error:"haiku_view_boot_failed",message:R instanceof Error?R.message:String(R),boot_command:f?f.map(A=>`${A.name}: ${A.command.join(" ")}`).join("; "):h?.description})}],isError:!0}}let b=await Wb(),S=Bi()?Av(y.session_id,await Hg(b),"view"):`http://127.0.0.1:${b}/view/${y.session_id}`,E=new URLSearchParams;o.stage&&E.set("stage",o.stage),o.artifact&&E.set("artifact",o.artifact);let _=E.toString(),T=_?`${S}${S.includes("?")?"&":"?"}${_}`:S;return{content:[{type:"text",text:JSON.stringify({session_id:y.session_id,url:T,mode:"viewer",intent:c,stage:o.stage??null,artifact:o.artifact??null,note:"Hand the `url` to the bundled `haiku-playwright` MCP. When done, call `haiku_view_close` with the `session_id`."})}]}}if(n==="haiku_view_close"){let i=r??{},s=Be(i,kge,"haiku_view_close");if(s)return s;let o=i,a=$t(o.session_id),c=a?.session_type==="view",l=c&&a.mode==="boot"?U0(o.session_id):!1,d=D0(o.session_id);return{content:[{type:"text",text:JSON.stringify({closed:d,session_id:o.session_id,was_view_session:c,killed_boot_process:l})}]}}if(n==="haiku_await_visual_answer"){let i=r??{},s=Be(i,Wme,"haiku_await_visual_answer");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=$t(a);return!l||l.session_type!=="question"?{content:[{type:"text",text:`Question session ${a} not found or wrong type \u2014 call ask_user_visual_question to create a new one.`}],isError:!0}:(c&&u&&dp(u,"Question session"),await S0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=utr.parse(r),s=i.title??"Design Direction";try{let l=tm(Te(),"intents",i.intent_slug,"intent.md");if(v_e(l)){let d=await pU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await w0t(i.intent_slug);if(!p)return{content:[{type:"text",text:`Autopilot short-circuit for pick_design_direction failed: no discovery template with tool=pick_design_direction found for intent '${i.intent_slug}'. The cursor's discovery gate will not clear automatically \u2014 file a bug or fall back to manual handling.`}],isError:!0};let h=[];if(i.archetypes)h=i.archetypes;else if(i.archetypes_file){let y=await pU(l5(i.archetypes_file),"utf-8");h=O.array(A_e).parse(JSON.parse(y))}let m=h[0];w_e({absPath:p.absPath,stage:p.stage,mode:m?"select":"auto",archetype:m?.name,comments:m?`Autopilot auto-selected the first archetype ("${m.name}") \u2014 no SPA picker shown because intent.mode === "autopilot".`:"Autopilot proceeded with no archetype \u2014 intake mode with no candidates. The agent will drive the rest of the design phase from the unit specs.",source:"autopilot"});let g=m?`Autopilot auto-selected the **${m.name}** direction (intent.mode === "autopilot" \u2014 no SPA picker shown). Manifest written at \`${p.absPath}\`.`:`Autopilot proceeded with no archetype selection (intent.mode === "autopilot", no candidates supplied). Manifest written at \`${p.absPath}\`.`;return{content:[{type:"text",text:Gn(g,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await pU(l5(i.archetypes_file),"utf-8");o=O.array(A_e).parse(JSON.parse(l))}let a=kye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await Wb(),u;if(Bi()){let l=await Hg(c);u=Av(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return dp(u,"Direction session"),await y0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,Kme,"haiku_await_design_direction");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=$t(a);if(!l||l.session_type!=="design_direction")return{content:[{type:"text",text:`Design-direction session ${a} not found or wrong type \u2014 call pick_design_direction to create a new one.`}],isError:!0};let d=o.intent_slug??l.intent_slug??"";return c&&u&&dp(u,"Direction session"),await y0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function R0t(e,t,n){let r=l5(process.cwd(),e),i=await lU(r);if(!i)throw new Error("Could not parse intent");let s=await n5(r),o=w3(s),a=I3(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?$6(c.content):[],l=ZL(i.slug),d=l??zY({intent_dir:r,intent_slug:i.slug,gate_type:t,target:""});t!==void 0&&(d.gate_type=t),n?.gateContext&&(d.gate_context=n.gateContext),n?.stage&&(d.stage=n.stage),n?.nextStage!==void 0&&(d.next_stage=n.nextStage),n?.nextPhase!==void 0&&(d.next_phase=n.nextPhase),l&&d.pending_decision&&(d.pending_decision=null);let{unitOutputs:f,outputDeclaredBy:p}=await T0t(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=Aye(r);h&&(d.previousReview=h);let m=await r5(r),g=await i5(r),y=await s5(r),{outputs:b,other:S}=await o5(r),E=await a5(r);for(let k of[...b,...S,...E])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=fU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:g,stageArtifacts:y,outputArtifacts:b,otherFiles:S,intentOtherFiles:E});let _=await Wb(),T=Bi(),R=T?Av(d.session_id,await Hg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,A=l!==void 0,x=A&&dv(d.session_id);return Wd(i.slug,{type:"gate_prepared",session_id:d.session_id,stage:n?.stage??d.stage??"",gate_context:n?.gateContext??d.gate_context??"stage_gate",review_url:R,browser_attached:x}),{session_id:d.session_id,review_url:R,use_remote:T,reused:A,browser_attached:x}}function ptr(e,t,n,r){return!(!e||!t||dv(n)||r&&JL(r))}async function A0t(e,t={}){let{autoOpen:n=!0,signal:r,reviewUrl:i,timeoutMs:s=1800*1e3}=t,o=$t(e);if(!o||o.session_type!=="review")throw new Error(`Gate review session ${e} not found or wrong type \u2014 call haiku_run_next to recreate.`);if(ptr(n,i,e,o.intent_slug)&&dp(i,"Review gate"),o.pending_decision){let u=o.pending_decision;return Ml(e,{pending_decision:null,last_await_started_at:new Date().toISOString(),last_await_ended_at:new Date().toISOString(),await_count:(o.await_count??0)+1}),Wd(o.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!1}),{decision:u.decision,feedback:u.feedback,annotations:u.annotations}}let a=new Date().toISOString(),c=o.await_count??0;Ml(e,{await_active:!0,await_count:c+1,last_await_started_at:a}),Wd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),Tye(e);try{for(;;){let u=!1;try{await lv(e,s,r)}catch(d){if(r?.aborted)throw d;u=!0}let l=$t(e);if(l&&l.session_type==="review"&&l.pending_decision){let d=l.pending_decision;return Ml(e,{pending_decision:null}),{decision:d.decision,feedback:d.feedback,annotations:d.annotations}}if(u)break;if(Rye(e))throw new Error(`Review session ${e} lost presence \u2014 the SPA never opened or the tab disconnected (no heartbeat). Re-open the URL and call haiku_await_gate when ready.`)}throw new Error("Review timeout after 30 minutes")}finally{vye(e),Ml(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Wd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function w0t(e){let t=tm(Te(),"intents",e,"intent.md");if(!v_e(t))return null;let n=await pU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),x0)),s=i(e,r);if(!s)return null;let a=no(r,s).find(l=>l.kind==="discovery"&&l.tool==="pick_design_direction");if(!a?.location)return null;let c=a.location.replace(/\{intent-slug\}/g,e);return{absPath:tm(Te(),"..",c),stage:s,templateBody:a.body}}function w_e(e){b0t(R_e(e.absPath),{recursive:!0});let t={mode:e.mode,stage:e.stage,source:e.source,recorded_at:new Date().toISOString()};e.archetype&&(t.archetype=e.archetype),e.files&&e.files.length>0&&(t.files=e.files),e.comments&&(t.comments=e.comments),e.annotations&&(t.annotations=e.annotations);let n=[];if(e.source==="autopilot"?n.push("# Design Direction (autopilot)","",'Auto-selected by the workflow engine because `intent.mode === "autopilot"`. No SPA picker was shown; the agent drives the rest of the design phase from this anchor.'):n.push("# Design Direction",""),e.mode==="select"&&e.archetype&&n.push("",`**Chosen archetype:** ${e.archetype}`),e.mode==="upload"&&e.files&&e.files.length>0){n.push("",`**Uploaded ${e.files.length} reference file(s):**`);for(let r of e.files)n.push(`- \`${r.path}\`${r.caption?` \u2014 ${r.caption}`:""}`)}e.comments&&n.push("",`**Comments:** ${e.comments}`),E0t(e.absPath,_0t.default.stringify(`${n.join(` +Now call haiku_await_gate { intent: "${o}" } to block on the user's decision. On approve, the engine stamps ${$==="spec"?"reviews.user":"approvals.user"} on each unit and the cursor advances on the next tick.`}]}):(dp(W,"Ad-hoc review",E.session_id),{content:[{type:"text",text:`Ad-hoc review pane open at ${W} (stage "${h||"(unspecified)"}"). Non-blocking \u2014 keep working. The user browses and closes the pane with Done when finished; any feedback they leave persists to disk and the next \`haiku_run_next\` routes it through the normal fix-loop. No workflow action is required here.`}]})}if(n.startsWith("haiku_")&&!ftr.has(n))return bSe(n,r??{});if(n==="open_review")return{content:[{type:"text",text:"Error: open_review cannot be called directly. Use haiku_run_next to advance \u2014 it validates units and opens the review automatically when ready."}],isError:!0};if(n==="ask_user_visual_question"){let i=ctr.parse(r),s=i.title??"Question",o=i.context??"",a=i.questions,c=i.image_paths??[],u=c.map(h=>A_e(d5(h))),l=kye({title:s,questions:a,context:o,imagePaths:c,imageBaseDirs:u}),d=c.map((h,m)=>`/question-image/${l.session_id}/${m}`),f=await Wb(),p;if(Bi()){let h=await Hg(f);p=Av(l.session_id,h,"question")}else p=`http://127.0.0.1:${f}/question/${l.session_id}`;return dp(p,"Question session",l.session_id),await S0t(l.session_id,{url:p,signal:t})}if(n==="haiku_view"){let i=r??{},s=Be(i,kge,"haiku_view");if(s)return s;let o=i,a=o.mode??"auto",c=o.intent;if(!c){let R=yv();if(R)c=R.slug;else{let A=Te(),x=tm(A,"intents"),k=Fg(x).filter(P=>P.data.status!=="completed");if(k.length===1)c=k[0].slug;else return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_intent_unresolved",message:k.length===0?"No active intents found. Pass `intent` explicitly.":`Multiple active intents (${k.map(P=>P.slug).join(", ")}). Pass \`intent\` explicitly.`})}],isError:!0}}}let u=pe(c);if(!R_e(u))return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_intent_not_found",message:`Intent "${c}" not found at ${u}.`})}],isError:!0};let l=a==="boot"||a==="auto",d=o.cwd?tm(u,o.cwd):u,f=null,p=null;if(l&&o.processes&&o.processes.length>0){if(o.command&&o.command.length>0)return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_input_invalid",message:"`command` and `processes` are mutually exclusive. Use `command` for a one-process boot and `processes` for a stack."})}],isError:!0};f=o.processes.map(x=>({name:x.name,command:x.command,cwd:x.cwd?tm(u,x.cwd):u,port_env:x.port_env,ready_url:x.ready_url,depends_on:x.depends_on,no_port:x.no_port}));let R=f.filter(x=>!x.no_port);if(o.primary)p=o.primary;else if(R.length===1)p=R[0].name;else return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_primary_required",message:`\`processes\` has ${R.length} port-bound entries (${R.map(x=>x.name).join(", ")}). Set \`primary: ""\` to tell the engine which one's URL Playwright should drive.`})}],isError:!0};let A=new Set(f.map(x=>x.name));if(!A.has(p))return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_primary_not_in_group",message:`\`primary: "${p}"\` does not match any process name in the group (${[...A].join(", ")}).`})}],isError:!0}}if(l&&!f&&!(o.command&&o.command.length>0)){let R=null;try{R=Cye(A_e(Te()))}catch(A){return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_boot_recipe_invalid",message:A instanceof Error?A.message:String(A)})}],isError:!0}}R&&(f=R.processes,p=R.primary)}let h=null;if(l&&!f&&(o.command&&o.command.length>0?h=hSt(o.command,d):h=mSt(d)),a==="boot"&&!f&&!h)return{content:[{type:"text",text:JSON.stringify({error:"haiku_view_no_boot_target",message:`No boot target supplied, no \`.haiku/boot.md\` recipe, and no package.json dev/start script found in ${d}. Either: (a) retry haiku_view with \`command: [...]\` for a one-process app (e.g. \`["uvicorn", "app:main"]\`, \`["bin/dev"]\`, \`["go", "run", "./cmd/server"]\`) or \`processes: [...]\` with \`primary: ""\` for a stack; or (b) commit a \`.haiku/boot.md\` recipe so every agent on every harness boots this app the same way without rediscovering it (frontmatter: \`command:\`/\`processes:\`, \`cwd:\`, \`env:\`, \`ready_url:\`). The engine sets PORT + HOST env vars before spawning each process and exposes \`_PORT\` + \`_URL\` for service discovery between dependents.`})}],isError:!0};let m;try{let A=(await fU(u))?.frontmatter;A&&typeof A.studio=="string"&&A.studio&&(m=A.studio)}catch{}let g=f||h?"boot":"viewer",y=Oye({intent_dir:u,intent_slug:c,studio:m,stage:o.stage,artifact:o.artifact,mode:g});if(g==="boot"&&(f||h))try{let R,A,x,k;if(f&&p){let N=await Mye(y.session_id,f,p);if(N.primary.port===null)throw new Error(`primary process "${p}" has no port \u2014 cannot return URL`);R=N.primary.port,A=N.primary.command,x=N.primary.pid,k=N.processes}else if(h){let N=await ySt(y.session_id,h);if(N.port===null)throw new Error("single-process boot returned null port");R=N.port,A=N.command,x=N.pid}else throw new Error("boot mode reached without group or detection");Pye(y.session_id,{boot_port:R,boot_pid:x,boot_command:A});let P=`http://127.0.0.1:${R}/`;return{content:[{type:"text",text:JSON.stringify({session_id:y.session_id,url:P,mode:"boot",intent:c,stage:o.stage??null,artifact:o.artifact??null,boot_command:A,processes:k,note:"Hand the `url` to the bundled `haiku-playwright` MCP. The dev process(es) stay up until `haiku_view_close` (or the 30min TTL). Call `haiku_view_close` with the `session_id` when done \u2014 the engine kills the whole group."})}]}}catch(R){return L0(y.session_id),{content:[{type:"text",text:JSON.stringify({error:"haiku_view_boot_failed",message:R instanceof Error?R.message:String(R),boot_command:f?f.map(A=>`${A.name}: ${A.command.join(" ")}`).join("; "):h?.description})}],isError:!0}}let b=await Wb(),S=Bi()?Av(y.session_id,await Hg(b),"view"):`http://127.0.0.1:${b}/view/${y.session_id}`,E=new URLSearchParams;o.stage&&E.set("stage",o.stage),o.artifact&&E.set("artifact",o.artifact);let _=E.toString(),T=_?`${S}${S.includes("?")?"&":"?"}${_}`:S;return{content:[{type:"text",text:JSON.stringify({session_id:y.session_id,url:T,mode:"viewer",intent:c,stage:o.stage??null,artifact:o.artifact??null,note:"Hand the `url` to the bundled `haiku-playwright` MCP. When done, call `haiku_view_close` with the `session_id`."})}]}}if(n==="haiku_view_close"){let i=r??{},s=Be(i,Ige,"haiku_view_close");if(s)return s;let o=i,a=$t(o.session_id),c=a?.session_type==="view",l=c&&a.mode==="boot"?F0(o.session_id):!1,d=L0(o.session_id);return{content:[{type:"text",text:JSON.stringify({closed:d,session_id:o.session_id,was_view_session:c,killed_boot_process:l})}]}}if(n==="haiku_await_visual_answer"){let i=r??{},s=Be(i,Kme,"haiku_await_visual_answer");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=$t(a);return!l||l.session_type!=="question"?{content:[{type:"text",text:`Question session ${a} not found or wrong type \u2014 call ask_user_visual_question to create a new one.`}],isError:!0}:(c&&u&&dp(u,"Question session"),await S0t(a,{url:u,signal:t}))}if(n==="pick_design_direction"){let i=utr.parse(r),s=i.title??"Design Direction";try{let l=tm(Te(),"intents",i.intent_slug,"intent.md");if(R_e(l)){let d=await mU(l,"utf-8");if((re(d).data.mode||"")==="autopilot"){let p=await w0t(i.intent_slug);if(!p)return{content:[{type:"text",text:`Autopilot short-circuit for pick_design_direction failed: no discovery template with tool=pick_design_direction found for intent '${i.intent_slug}'. The cursor's discovery gate will not clear automatically \u2014 file a bug or fall back to manual handling.`}],isError:!0};let h=[];if(i.archetypes)h=i.archetypes;else if(i.archetypes_file){let y=await mU(d5(i.archetypes_file),"utf-8");h=O.array(w_e).parse(JSON.parse(y))}let m=h[0];k_e({absPath:p.absPath,stage:p.stage,mode:m?"select":"auto",archetype:m?.name,comments:m?`Autopilot auto-selected the first archetype ("${m.name}") \u2014 no SPA picker shown because intent.mode === "autopilot".`:"Autopilot proceeded with no archetype \u2014 intake mode with no candidates. The agent will drive the rest of the design phase from the unit specs.",source:"autopilot"});let g=m?`Autopilot auto-selected the **${m.name}** direction (intent.mode === "autopilot" \u2014 no SPA picker shown). Manifest written at \`${p.absPath}\`.`:`Autopilot proceeded with no archetype selection (intent.mode === "autopilot", no candidates supplied). Manifest written at \`${p.absPath}\`.`;return{content:[{type:"text",text:Gn(g,"Call `haiku_run_next` to continue \u2014 the cursor's discovery gate is now cleared.")}]}}}}catch(l){console.error(`[pick_design_direction] autopilot check failed: ${l instanceof Error?l.message:String(l)}. Falling through to the SPA picker.`)}let o=[];if(i.archetypes)o=i.archetypes;else if(i.archetypes_file){let l=await mU(d5(i.archetypes_file),"utf-8");o=O.array(w_e).parse(JSON.parse(l))}let a=Iye({intent_slug:i.intent_slug,archetypes:o,context:i.context??""}),c=await Wb(),u;if(Bi()){let l=await Hg(c);u=Av(a.session_id,l,"direction")}else u=`http://127.0.0.1:${c}/direction/${a.session_id}`;return dp(u,"Direction session"),await y0t(a.session_id,{url:u,intentSlug:i.intent_slug,signal:t})}if(n==="haiku_await_design_direction"){let i=r??{},s=Be(i,Yme,"haiku_await_design_direction");if(s)return s;let o=i,a=o.session_id,c=o.auto_open!==!1,u=o.url??"",l=$t(a);if(!l||l.session_type!=="design_direction")return{content:[{type:"text",text:`Design-direction session ${a} not found or wrong type \u2014 call pick_design_direction to create a new one.`}],isError:!0};let d=o.intent_slug??l.intent_slug??"";return c&&u&&dp(u,"Direction session"),await y0t(a,{url:u,intentSlug:d,signal:t})}return{content:[{type:"text",text:`Unknown tool: ${n}`}],isError:!0}}async function R0t(e,t,n){let r=d5(process.cwd(),e),i=await fU(r);if(!i)throw new Error("Could not parse intent");let s=await r5(r),o=I3(s),a=O3(o,s),c=i.sections.find(k=>k.heading?.toLowerCase().includes("completion criteria")||k.heading?.toLowerCase().includes("success criteria")),u=c?e5(c.content):[],l=XL(i.slug),d=l??GY({intent_dir:r,intent_slug:i.slug,gate_type:t,target:""});t!==void 0&&(d.gate_type=t),n?.gateContext&&(d.gate_context=n.gateContext),n?.stage&&(d.stage=n.stage),n?.nextStage!==void 0&&(d.next_stage=n.nextStage),n?.nextPhase!==void 0&&(d.next_phase=n.nextPhase),l&&d.pending_decision&&(d.pending_decision=null);let{unitOutputs:f,outputDeclaredBy:p}=await T0t(r,d.session_id,s);Object.assign(d,{parsedIntent:i,parsedUnits:s,parsedCriteria:u,parsedMermaid:a,unitOutputs:f,outputDeclaredBy:p});let h=wye(r);h&&(d.previousReview=h);let m=await i5(r),g=await s5(r),y=await o5(r),{outputs:b,other:S}=await a5(r),E=await c5(r);for(let k of[...b,...S,...E])k.relativePath&&(k.intentRelativePath=k.relativePath,k.relativePath=hU(d.session_id,k.relativePath));Object.assign(d,{stageStates:m,knowledgeFiles:g,stageArtifacts:y,outputArtifacts:b,otherFiles:S,intentOtherFiles:E});let _=await Wb(),T=Bi(),R=T?Av(d.session_id,await Hg(_),"intent"):`http://127.0.0.1:${_}/review/${d.session_id}`,A=l!==void 0,x=A&&dv(d.session_id);return Wd(i.slug,{type:"gate_prepared",session_id:d.session_id,stage:n?.stage??d.stage??"",gate_context:n?.gateContext??d.gate_context??"stage_gate",review_url:R,browser_attached:x}),{session_id:d.session_id,review_url:R,use_remote:T,reused:A,browser_attached:x}}function ptr(e,t,n,r){return!(!e||!t||dv(n)||r&&QL(r))}async function A0t(e,t={}){let{autoOpen:n=!0,signal:r,reviewUrl:i,timeoutMs:s=1800*1e3}=t,o=$t(e);if(!o||o.session_type!=="review")throw new Error(`Gate review session ${e} not found or wrong type \u2014 call haiku_run_next to recreate.`);if(ptr(n,i,e,o.intent_slug)&&dp(i,"Review gate"),o.pending_decision){let u=o.pending_decision;return Ml(e,{pending_decision:null,last_await_started_at:new Date().toISOString(),last_await_ended_at:new Date().toISOString(),await_count:(o.await_count??0)+1}),Wd(o.intent_slug,{type:"pending_decision_changed",session_id:e,queued:!1}),{decision:u.decision,feedback:u.feedback,annotations:u.annotations}}let a=new Date().toISOString(),c=o.await_count??0;Ml(e,{await_active:!0,await_count:c+1,last_await_started_at:a}),Wd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!0}),vye(e);try{for(;;){let u=!1;try{await lv(e,s,r)}catch(d){if(r?.aborted)throw d;u=!0}let l=$t(e);if(l&&l.session_type==="review"&&l.pending_decision){let d=l.pending_decision;return Ml(e,{pending_decision:null}),{decision:d.decision,feedback:d.feedback,annotations:d.annotations}}if(u)break;if(Aye(e))throw new Error(`Review session ${e} lost presence \u2014 the SPA never opened or the tab disconnected (no heartbeat). Re-open the URL and call haiku_await_gate when ready.`)}throw new Error("Review timeout after 30 minutes")}finally{Rye(e),Ml(e,{await_active:!1,last_await_ended_at:new Date().toISOString()}),Wd(o.intent_slug,{type:"await_state_changed",session_id:e,await_active:!1})}}async function w0t(e){let t=tm(Te(),"intents",e,"intent.md");if(!R_e(t))return null;let n=await mU(t,"utf-8"),r=re(n).data.studio||"";if(!r)return null;let{findCurrentStage:i}=await Promise.resolve().then(()=>(Oa(),O0)),s=i(e,r);if(!s)return null;let a=no(r,s).find(l=>l.kind==="discovery"&&l.tool==="pick_design_direction");if(!a?.location)return null;let c=a.location.replace(/\{intent-slug\}/g,e);return{absPath:tm(Te(),"..",c),stage:s,templateBody:a.body}}function k_e(e){b0t(A_e(e.absPath),{recursive:!0});let t={mode:e.mode,stage:e.stage,source:e.source,recorded_at:new Date().toISOString()};e.archetype&&(t.archetype=e.archetype),e.files&&e.files.length>0&&(t.files=e.files),e.comments&&(t.comments=e.comments),e.annotations&&(t.annotations=e.annotations);let n=[];if(e.source==="autopilot"?n.push("# Design Direction (autopilot)","",'Auto-selected by the workflow engine because `intent.mode === "autopilot"`. No SPA picker was shown; the agent drives the rest of the design phase from this anchor.'):n.push("# Design Direction",""),e.mode==="select"&&e.archetype&&n.push("",`**Chosen archetype:** ${e.archetype}`),e.mode==="upload"&&e.files&&e.files.length>0){n.push("",`**Uploaded ${e.files.length} reference file(s):**`);for(let r of e.files)n.push(`- \`${r.path}\`${r.caption?` \u2014 ${r.caption}`:""}`)}e.comments&&n.push("",`**Comments:** ${e.comments}`),E0t(e.absPath,_0t.default.stringify(`${n.join(` `)} -`,t))}async function y0t(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await lv(e,s,i)}catch(l){if(i?.aborted)throw l;return{content:[{type:"text",text:JSON.stringify({status:"timeout",url:n,session_id:e,message:"User did not respond within 30 minutes. Call haiku_await_design_direction to keep waiting, or haiku_run_next to advance from durable state if a selection landed."},null,2)}]}}let o=$t(e);if(!o||o.session_type!=="design_direction"||o.status!=="answered"||!o.selection)return{content:[{type:"text",text:"The user did not select a design direction within the time limit. Ask them how they'd like to proceed."}]};let a=o.selection;if(a.mode==="regenerate"){let l=o.archetypes?.length??0,d=Math.max(l-a.keep.length,0),f=a.keep.length>0?`The user wants more variants. They'd like to keep: **${a.keep.join("**, **")}**.${a.comments?` Steering notes: ${a.comments}`:""}`:`The user wants more variants. None of the current archetypes are keepers.${a.comments?` Steering notes: ${a.comments}`:""}`,p=d>0?`Generate ${d} replacement archetype${d===1?"":"s"} for the dropped slot${d===1?"":"s"} and call \`pick_design_direction\` again with the merged set.`:"Generate replacement archetype(s) for the dropped slot(s) and call `pick_design_direction` again with the merged set.";return{content:[{type:"text",text:Gn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:Gn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await pU(tm(Te(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),x0)),p=d?f(r,d)??"":"";if(p){let h=gr(r,p);h.ok||console.warn(`[awaitDesignDirectionSession] stage-branch enforcement failed: ${h.message}`)}}catch(l){console.warn(`[awaitDesignDirectionSession] post-wait branch reconciliation skipped: ${l instanceof Error?l.message:String(l)}`)}let c=r&&(a.mode==="upload"||a.mode==="select")?await w0t(r):null;if(a.mode==="upload"){let l=a.files.map((f,p)=>` ${p+1}. \`${f.path}\`${f.caption?` \u2014 ${f.caption}`:""}`).join(` -`);if(c)try{w_e({absPath:c.absPath,stage:c.stage,mode:"upload",files:a.files,comments:a.comments,source:"spa-picker"})}catch(f){console.error(`[awaitDesignDirectionSession] manifest write failed (upload): ${f instanceof Error?f.message:String(f)}. The discovery gate will NOT clear \u2014 file a bug.`)}let d=[`The user uploaded ${a.files.length} design file${a.files.length===1?"":"s"} as the chosen direction (no archetype generation needed):`,l];return a.comments&&d.push(`Comments: ${a.comments}`),{content:[{type:"text",text:Gn(d.join(` -`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{w_e({absPath:c.absPath,stage:c.stage,mode:"select",archetype:a.archetype,comments:a.comments,annotations:a.annotations,source:"spa-picker"})}catch(l){console.error(`[awaitDesignDirectionSession] manifest write failed (select): ${l instanceof Error?l.message:String(l)}. The discovery gate will NOT clear \u2014 file a bug.`)}let u=[`The user selected the **${a.archetype}** direction.`];if(a.comments&&u.push(`Comments: ${a.comments}`),a.annotations?.pins?.length){u.push(`Pin annotations (${a.annotations.pins.length}):`);for(let l of a.annotations.pins)u.push(` - [${l.x.toFixed(1)}%, ${l.y.toFixed(1)}%]: ${l.text||"(no text)"}`)}return{content:[{type:"text",text:Gn(u.join(` +`,t))}async function y0t(e,t={}){let{url:n="",intentSlug:r="",signal:i,timeoutMs:s=1800*1e3}=t;try{await lv(e,s,i)}catch(l){if(i?.aborted)throw l;return{content:[{type:"text",text:JSON.stringify({status:"timeout",url:n,session_id:e,message:"User did not respond within 30 minutes. Call haiku_await_design_direction to keep waiting, or haiku_run_next to advance from durable state if a selection landed."},null,2)}]}}let o=$t(e);if(!o||o.session_type!=="design_direction"||o.status!=="answered"||!o.selection)return{content:[{type:"text",text:"The user did not select a design direction within the time limit. Ask them how they'd like to proceed."}]};let a=o.selection;if(a.mode==="regenerate"){let l=o.archetypes?.length??0,d=Math.max(l-a.keep.length,0),f=a.keep.length>0?`The user wants more variants. They'd like to keep: **${a.keep.join("**, **")}**.${a.comments?` Steering notes: ${a.comments}`:""}`:`The user wants more variants. None of the current archetypes are keepers.${a.comments?` Steering notes: ${a.comments}`:""}`,p=d>0?`Generate ${d} replacement archetype${d===1?"":"s"} for the dropped slot${d===1?"":"s"} and call \`pick_design_direction\` again with the merged set.`:"Generate replacement archetype(s) for the dropped slot(s) and call `pick_design_direction` again with the merged set.";return{content:[{type:"text",text:Gn(f,p)}]}}if(a.mode==="generate"){let l=a.comments?`The user has no existing designs and wants you to generate variants. Steering notes: ${a.comments}`:"The user has no existing designs and wants you to generate variants.";return{content:[{type:"text",text:Gn(l,"Generate 2-3 distinct archetypes (HTML wireframe snippets \u2014 different layouts, interaction patterns, or visual hierarchies) and call `pick_design_direction` again with `archetypes` populated.")}]}}if(r)try{let l=await mU(tm(Te(),"intents",r,"intent.md"),"utf-8"),d=re(l).data.studio||"",{findCurrentStage:f}=await Promise.resolve().then(()=>(Oa(),O0)),p=d?f(r,d)??"":"";if(p){let h=gr(r,p);h.ok||console.warn(`[awaitDesignDirectionSession] stage-branch enforcement failed: ${h.message}`)}}catch(l){console.warn(`[awaitDesignDirectionSession] post-wait branch reconciliation skipped: ${l instanceof Error?l.message:String(l)}`)}let c=r&&(a.mode==="upload"||a.mode==="select")?await w0t(r):null;if(a.mode==="upload"){let l=a.files.map((f,p)=>` ${p+1}. \`${f.path}\`${f.caption?` \u2014 ${f.caption}`:""}`).join(` +`);if(c)try{k_e({absPath:c.absPath,stage:c.stage,mode:"upload",files:a.files,comments:a.comments,source:"spa-picker"})}catch(f){console.error(`[awaitDesignDirectionSession] manifest write failed (upload): ${f instanceof Error?f.message:String(f)}. The discovery gate will NOT clear \u2014 file a bug.`)}let d=[`The user uploaded ${a.files.length} design file${a.files.length===1?"":"s"} as the chosen direction (no archetype generation needed):`,l];return a.comments&&d.push(`Comments: ${a.comments}`),{content:[{type:"text",text:Gn(d.join(` +`),"Call `haiku_run_next` to continue \u2014 the workflow will surface the upload paths so you can `Read` each file and incorporate the designs into elaboration.")}]}}if(c)try{k_e({absPath:c.absPath,stage:c.stage,mode:"select",archetype:a.archetype,comments:a.comments,annotations:a.annotations,source:"spa-picker"})}catch(l){console.error(`[awaitDesignDirectionSession] manifest write failed (select): ${l instanceof Error?l.message:String(l)}. The discovery gate will NOT clear \u2014 file a bug.`)}let u=[`The user selected the **${a.archetype}** direction.`];if(a.comments&&u.push(`Comments: ${a.comments}`),a.annotations?.pins?.length){u.push(`Pin annotations (${a.annotations.pins.length}):`);for(let l of a.annotations.pins)u.push(` - [${l.x.toFixed(1)}%, ${l.y.toFixed(1)}%]: ${l.text||"(no text)"}`)}return{content:[{type:"text",text:Gn(u.join(` `),"Call `haiku_run_next` to continue \u2014 the workflow will surface any screenshot annotations the user attached.")}]}}async function S0t(e,t={}){let{url:n="",signal:r,timeoutMs:i=1800*1e3}=t,s=()=>{let u=$t(e);if(!u||u.session_type!=="question"||u.status!=="answered"||!u.answers)return null;let l={},d=u.annotations;d?.comments?.length&&(l.comments=d.comments),d?.pins?.length&&(l.pins=d.pins),d?.screenshots?.length&&(l.screenshot_count=d.screenshots.length);let f={status:"answered",url:n,answers:u.answers,message:Gn("The user answered your visual question \u2014 see the `answers` field below.","Acknowledge their answer in chat and continue with whatever the answer enables.")};u.feedback&&(f.feedback=u.feedback),Object.keys(l).length>0&&(f.annotations=l);let p=[{type:"text",text:JSON.stringify(f,null,2)}],h=d?.screenshots??[];if(h.length>0){p.push({type:"text",text:` ${h.length} screenshot annotation${h.length===1?"":"s"} attached below \u2014 each pair is the reviewer's note + the captured surface they were drawing on.`});for(let m=0;m{"use strict";_0t=Re(Kt(),1);_l();yr();T6();s0t();cx();D1();Kd();g0t();sh();$c();b_e();ji();uo();Ge();Kn();Hv();mU();Xh();__e();t1();ctr=O.object({questions:O.array(O.object({question:O.string().describe("The question text"),header:O.string().optional().describe("Optional header/subtitle for the question"),options:O.array(O.string()).describe("Answer options to choose from"),multiSelect:O.boolean().optional().describe("Allow multiple selections (default: single)")})).describe("Array of questions to present"),context:O.string().optional().describe("Optional markdown context to display above questions"),title:O.string().optional().describe("Optional page title (default: 'Question')"),image_paths:O.array(O.string()).optional().describe("Optional array of local image file paths to display alongside the questions. Images are displayed in pairs (ref on left, built on right) for visual comparison.")}),A_e=O.object({name:O.string().describe("Archetype name"),description:O.string().describe("Brief description of this archetype"),preview_html:O.string().describe("HTML snippet to render as a preview")}),utr=O.object({intent_slug:O.string().describe("The intent slug this direction applies to"),context:O.string().optional().describe("Optional markdown preamble shown above the archetype cards. Use it to give the user the context they need to choose well \u2014 what this direction governs, what's already been decided, what tradeoffs each option leans into. Mirrors `context` on ask_user_visual_question."),archetypes:O.array(A_e).optional().describe('Inline array of design archetypes to choose from. Omit (or pass an empty array) on the FIRST call to enter intake mode \u2014 the picker asks whether the user has designs to upload before any generation work happens. Pass archetypes only after the user responds with `mode: "generate"`.'),archetypes_file:O.string().optional().describe("Path to a JSON file containing the archetypes array (alternative to inline archetypes)"),title:O.string().optional().describe("Optional page title (default: 'Design Direction')")});ltr="/tmp/haiku-session-cancel.log";ftr=new Set(["haiku_view","haiku_view_close","haiku_await_visual_answer","haiku_await_design_direction"])});async function Ju(e){if(e.options.length===0)throw new Error("runPicker called with empty options array");let t=process.env.HAIKU_TEST_PICKER_AUTO_SELECT;if(t){let a=e.options.find(c=>c.id===t);if(a)return{sessionId:"test-auto",url:"",selection:{id:a.id},timedOut:!1}}let n=Iye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await Wb(),i;if(Bi()){let a=await Hg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Xh(),T_t));i=c(n.session_id,a,"picker")}else i=`http://127.0.0.1:${r}/picker/${n.session_id}`;e.autoOpen!==!1&&dp(i,`${e.kind} picker`);let s=e.timeoutMs??htr,o=$t(n.session_id);if(o&&o.session_type==="picker"&&o.status==="answered"&&o.selection)return{sessionId:n.session_id,url:i,selection:o.selection,timedOut:!1};for(;;){let a=!1;try{await lv(n.session_id,s,e.signal)}catch(u){if(e.signal?.aborted)throw u;a=!0}let c=$t(n.session_id);if(c&&c.session_type==="picker"&&c.status==="answered"&&c.selection)return{sessionId:n.session_id,url:i,selection:c.selection,timedOut:!1};if(a)return{sessionId:n.session_id,url:i,selection:null,timedOut:!0}}}var htr,Xb=v(()=>{"use strict";T6();$c();Xh();d5();htr=1800*1e3});function Qb(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function mtr(e,t){switch(e){case"force_stage_complete":return`Sign every review + approval + intent_quality_gates for every unit in stages up to and including '${t.stage}'. Refuses units that haven't reached terminal hat advance.`;case"set_intent_field":return t.fields&&typeof t.fields=="object"?`Set ${Object.keys(t.fields).length} intent.md frontmatter fields in one call: ${JSON.stringify(t.fields)}.`:`Set intent.md frontmatter field '${t.field}' to ${JSON.stringify(t.value)}.`;case"reset_drift":return"Re-stamp every witnessed slot (reviews + approvals on every unit) with the CURRENT on-disk SHA. Drift sweep will stop firing on the same SHA mismatch.";case"set_unit_iterations":return Array.isArray(t.iterations)&&t.iterations.length>0?`Hand-write iterations[] on unit '${t.unit}' in stage '${t.stage}' (${t.iterations.length} entries). This is the FSM-driven field agents normally cannot touch \u2014 the debug op bypasses the schema gate.`:`Synthesize iterations[] on unit '${t.unit}' in stage '${t.stage}' \u2014 one 'advance' entry per hat in the stage's hats sequence. Use to mark a legacy/partial unit as "moved through every hat" so force_stage_complete will sign it.`;case"mutate_feedback":return Array.isArray(t.feedback_ids)&&t.feedback_ids.length>0?`Apply FM patch to ${t.feedback_ids.length} feedback records (${t.feedback_ids.join(", ")}): ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`:`Apply FM patch to feedback ${t.feedback_id}: ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`;default:return e}}var k0t,I0t=v(()=>{"use strict";mbe();Xb();ji();uo();zi();vs();k0t={name:"haiku_debug",description:"ADMIN: bypass-the-FSM tools to unstick corrupt intents. Force a stage complete (signs all reviews/approvals/QGs for units that have moved through every hat), set an intent field (mode, etc.), reset drift (re-stamp witnesses), mutate any feedback frontmatter, or preview the next cursor head after edits. Every mutation requires SPA-picker confirmation \u2014 the agent cannot act unilaterally. Use only when the normal workflow can't recover (corrupt FM, stuck loop, lost stamps).",inputSchema:d0,async handle(e,t){let n=Be(e,Yme,"haiku_debug");if(n)return n;let r=Wg({intent:e.intent,stage:e.stage,feedback_id:e.feedback_id,unit:e.unit});if(r)return r;if(Array.isArray(e.feedback_ids))for(let l of e.feedback_ids){let d=Wg({feedback_id:l});if(d)return d}let i=e.intent,s=e.op;if(!LL.includes(s))return Qb({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${LL.join(", ")}.`});if(s==="preview_cursor")try{let l=JZ({slug:i});return ye(JSON.stringify(l))}catch(l){return Qb({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=mtr(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} +Annotation ${m+1} (image ${g.image_index+1}): ${g.comment}`});let y=/^data:(image\/[a-z+]+);base64,(.+)$/i.exec(g.screenshot_data_url);y?p.push({type:"image",mimeType:y[1],data:y[2]}):p.push({type:"text",text:`(screenshot for annotation ${m+1} could not be decoded)`})}}return{content:p}},o=s();if(o)return o;let a=Date.now()+i,c="User did not respond within 30 minutes. Call haiku_await_visual_answer to keep waiting, or ask_user_visual_question to start a new session.";for(;;){let u=a-Date.now();if(u<=0)break;try{await lv(e,u,r)}catch(d){if(r?.aborted)throw d;return{content:[{type:"text",text:JSON.stringify({status:"timeout",session_id:e,...n?{url:n}:{},message:c},null,2)}]}}let l=s();if(l)return l}return{content:[{type:"text",text:JSON.stringify({status:"timeout",session_id:e,...n?{url:n}:{},message:c},null,2)}]}}var _0t,ctr,w_e,utr,ltr,ftr,f5=v(()=>{"use strict";_0t=Re(Kt(),1);_l();yr();v6();s0t();ux();U1();Kd();g0t();sh();$c();E_e();ji();uo();Ge();Kn();Hv();yU();Xh();T_e();r1();ctr=O.object({questions:O.array(O.object({question:O.string().describe("The question text"),header:O.string().optional().describe("Optional header/subtitle for the question"),options:O.array(O.string()).describe("Answer options to choose from"),multiSelect:O.boolean().optional().describe("Allow multiple selections (default: single)")})).describe("Array of questions to present"),context:O.string().optional().describe("Optional markdown context to display above questions"),title:O.string().optional().describe("Optional page title (default: 'Question')"),image_paths:O.array(O.string()).optional().describe("Optional array of local image file paths to display alongside the questions. Images are displayed in pairs (ref on left, built on right) for visual comparison.")}),w_e=O.object({name:O.string().describe("Archetype name"),description:O.string().describe("Brief description of this archetype"),preview_html:O.string().describe("HTML snippet to render as a preview")}),utr=O.object({intent_slug:O.string().describe("The intent slug this direction applies to"),context:O.string().optional().describe("Optional markdown preamble shown above the archetype cards. Use it to give the user the context they need to choose well \u2014 what this direction governs, what's already been decided, what tradeoffs each option leans into. Mirrors `context` on ask_user_visual_question."),archetypes:O.array(w_e).optional().describe('Inline array of design archetypes to choose from. Omit (or pass an empty array) on the FIRST call to enter intake mode \u2014 the picker asks whether the user has designs to upload before any generation work happens. Pass archetypes only after the user responds with `mode: "generate"`.'),archetypes_file:O.string().optional().describe("Path to a JSON file containing the archetypes array (alternative to inline archetypes)"),title:O.string().optional().describe("Optional page title (default: 'Design Direction')")});ltr="/tmp/haiku-session-cancel.log";ftr=new Set(["haiku_view","haiku_view_close","haiku_await_visual_answer","haiku_await_design_direction"])});async function Ju(e){if(e.options.length===0)throw new Error("runPicker called with empty options array");let t=process.env.HAIKU_TEST_PICKER_AUTO_SELECT;if(t){let a=e.options.find(c=>c.id===t);if(a)return{sessionId:"test-auto",url:"",selection:{id:a.id},timedOut:!1}}let n=xye({intent_slug:e.intentSlug,kind:e.kind,title:e.title,prompt:e.prompt,options:e.options}),r=await Wb(),i;if(Bi()){let a=await Hg(r),{buildReviewUrl:c}=await Promise.resolve().then(()=>(Xh(),T_t));i=c(n.session_id,a,"picker")}else i=`http://127.0.0.1:${r}/picker/${n.session_id}`;e.autoOpen!==!1&&dp(i,`${e.kind} picker`);let s=e.timeoutMs??htr,o=$t(n.session_id);if(o&&o.session_type==="picker"&&o.status==="answered"&&o.selection)return{sessionId:n.session_id,url:i,selection:o.selection,timedOut:!1};for(;;){let a=!1;try{await lv(n.session_id,s,e.signal)}catch(u){if(e.signal?.aborted)throw u;a=!0}let c=$t(n.session_id);if(c&&c.session_type==="picker"&&c.status==="answered"&&c.selection)return{sessionId:n.session_id,url:i,selection:c.selection,timedOut:!1};if(a)return{sessionId:n.session_id,url:i,selection:null,timedOut:!0}}}var htr,Xb=v(()=>{"use strict";v6();$c();Xh();f5();htr=1800*1e3});function Qb(e){return{content:[{type:"text",text:JSON.stringify(e)}],isError:!0}}function mtr(e,t){switch(e){case"force_stage_complete":return`Sign every review + approval + intent_quality_gates for every unit in stages up to and including '${t.stage}'. Refuses units that haven't reached terminal hat advance.`;case"set_intent_field":return t.fields&&typeof t.fields=="object"?`Set ${Object.keys(t.fields).length} intent.md frontmatter fields in one call: ${JSON.stringify(t.fields)}.`:`Set intent.md frontmatter field '${t.field}' to ${JSON.stringify(t.value)}.`;case"reset_drift":return"Re-stamp every witnessed slot (reviews + approvals on every unit) with the CURRENT on-disk SHA. Drift sweep will stop firing on the same SHA mismatch.";case"set_unit_iterations":return Array.isArray(t.iterations)&&t.iterations.length>0?`Hand-write iterations[] on unit '${t.unit}' in stage '${t.stage}' (${t.iterations.length} entries). This is the FSM-driven field agents normally cannot touch \u2014 the debug op bypasses the schema gate.`:`Synthesize iterations[] on unit '${t.unit}' in stage '${t.stage}' \u2014 one 'advance' entry per hat in the stage's hats sequence. Use to mark a legacy/partial unit as "moved through every hat" so force_stage_complete will sign it.`;case"mutate_feedback":return Array.isArray(t.feedback_ids)&&t.feedback_ids.length>0?`Apply FM patch to ${t.feedback_ids.length} feedback records (${t.feedback_ids.join(", ")}): ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`:`Apply FM patch to feedback ${t.feedback_id}: ${JSON.stringify(t.patch)}. Bypasses lifecycle guards.`;default:return e}}var k0t,I0t=v(()=>{"use strict";gbe();Xb();ji();uo();zi();vs();k0t={name:"haiku_debug",description:"ADMIN: bypass-the-FSM tools to unstick corrupt intents. Force a stage complete (signs all reviews/approvals/QGs for units that have moved through every hat), set an intent field (mode, etc.), reset drift (re-stamp witnesses), mutate any feedback frontmatter, or preview the next cursor head after edits. Every mutation requires SPA-picker confirmation \u2014 the agent cannot act unilaterally. Use only when the normal workflow can't recover (corrupt FM, stuck loop, lost stamps).",inputSchema:d0,async handle(e,t){let n=Be(e,Zme,"haiku_debug");if(n)return n;let r=Wg({intent:e.intent,stage:e.stage,feedback_id:e.feedback_id,unit:e.unit});if(r)return r;if(Array.isArray(e.feedback_ids))for(let l of e.feedback_ids){let d=Wg({feedback_id:l});if(d)return d}let i=e.intent,s=e.op;if(!UL.includes(s))return Qb({error:"unsupported_op",message:`Unknown op '${s}'. Supported: ${UL.join(", ")}.`});if(s==="preview_cursor")try{let l=XZ({slug:i});return ye(JSON.stringify(l))}catch(l){return Qb({error:"preview_cursor_threw",detail:l instanceof Error?l.message:String(l)})}let o=mtr(s,e),a=typeof e.reason=="string"&&e.reason.trim().length>0?e.reason.trim():null,c=a?`Why: ${a} `:"",u=await Ju({intentSlug:i,kind:"confirm",title:`DEBUG: ${s} on ${i}`,prompt:`${c}${o} -This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return ye(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return Qb({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=KZ({slug:i,targetStage:l,closeOpenFeedback:e.close_open_feedback===!0});return ye(JSON.stringify(d))}case"set_intent_field":{if(e.fields&&typeof e.fields=="object"){let p=e.fields,h=[];for(let[m,g]of Object.entries(p))h.push({field:m,result:sx({slug:i,field:m,value:g})});return ye(JSON.stringify({batch:!0,count:h.length,results:h}))}let l=e.field,d=e.value;if(!l)return Qb({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=sx({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=YZ({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return Qb({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=ZZ({slug:i,stage:l,unit:d,iterations:f});return ye(JSON.stringify(p))}case"mutate_feedback":{let l=e.patch??{},d=e.stage||null;if(Array.isArray(e.feedback_ids)&&e.feedback_ids.length>0){let h=e.feedback_ids,m=[];for(let g of h)m.push({feedback_id:g,result:ox({slug:i,stage:d,feedbackId:g,patch:l})});return ye(JSON.stringify({batch:!0,count:m.length,results:m}))}let f=e.feedback_id;if(!f)return Qb({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=ox({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return Qb({error:"unhandled_op",op:s})}}catch(l){return Qb({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as I_e,readFileSync as gtr}from"node:fs";import{join as f5}from"node:path";function ytr(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?f5(e,r):r.startsWith("/")?r:f5(e,".haiku","intents",t,r)}var x0t,O0t=v(()=>{"use strict";yr();q0();ji();uo();Ge();Kn();vo();zi();vs();x0t={name:"haiku_discovery_complete",description:"Discovery subagent's completion hand-off. Merges the discovery worktree's branch back into its stage branch under a per-stage lock. Call AFTER committing your artifact inside the isolation worktree. Returns `{ ok: true }` on clean merge, `discovery_artifact_missing` with `expected_path` when the template's `location:` file isn't present in the worktree (you skipped or misplaced the write), `discovery_merge_conflict` with conflict_files on real conflict, `discovery_merge_failed` with the git error on other failures, `intent_not_found` when the intent dir is missing, `worktree_not_found` when the discovery worktree doesn't exist (already merged or never created).",inputSchema:f0,async handle(e){let t=Be(e,Zme,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=Te(),a=f5(o,"intents",r);if(!I_e(a))return ye(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=II(r,i,s);if(!I_e(c))return ye(JSON.stringify({ok:!1,error:"worktree_not_found",message:`No discovery worktree at ${c}. The worktree may have been merged or never created \u2014 re-tick haiku_run_next; if the cursor still requests this discovery, redispatch the subagent.`}));try{let u=re(gtr(f5(a,"intent.md"),"utf8")).data,l=typeof u.studio=="string"?u.studio:"";if(l){let d=s.toLowerCase(),f=no(l,i).filter(p=>p.kind==="discovery").find(p=>p.name.toLowerCase()===d);if(f){let p=ytr(c,r,f.location);if(p&&!I_e(p)){let h=p.startsWith(c)?p.slice(c.length+1):p;return ye(JSON.stringify({ok:!1,error:"discovery_artifact_missing",intent:r,stage:i,template:s,expected_path:p,location:f.location,message:[`Discovery template '${s}' declares location '${f.location}', but no file exists at the expected path inside your isolation worktree.`,"",`Expected (absolute): ${p}`,`Expected (worktree-relative): ${h}`,"","Before calling haiku_discovery_complete you MUST:"," 1. Write the populated discovery artifact to the path above.",` 2. \`git -C "${c}" add -A && git -C "${c}" commit -m "..."\``,` 3. Re-call \`haiku_discovery_complete { intent: "${r}", stage: "${i}", template: "${s}" }\`.`,"","If you wrote the file somewhere else (intent main, the stage branch directly, or another path), move it into the worktree at the expected path and commit there \u2014 haiku_discovery_complete only merges from the isolation worktree."].join(` -`)}))}}}}catch{}try{let u=jb(r,i,()=>wpe(r,i,s));return u.success?(Ke("haiku.discovery.merged",{intent:r,stage:i,template:s}),ye(JSON.stringify({ok:!0,intent:r,stage:i,template:s,message:u.message}))):u.isConflict?ye(JSON.stringify({ok:!1,error:"discovery_merge_conflict",intent:r,stage:i,template:s,conflict_files:u.conflictFiles??[],message:u.message})):ye(JSON.stringify({ok:!1,error:"discovery_merge_failed",intent:r,stage:i,template:s,message:u.message}))}catch(u){return ye(JSON.stringify({ok:!1,error:"discovery_merge_threw",intent:r,stage:i,template:s,message:u instanceof Error?u.message:String(u)}))}}}});import{execSync as P0t}from"node:child_process";import{existsSync as Gv,readdirSync as x_e,readFileSync as Kg,statSync as Str,writeFileSync as kx}from"node:fs";import{join as fp,resolve as btr}from"node:path";function _tr(e,t,n){try{let r=(0,Tc.default)(Kg(e,"utf8")),i=r.data,s=i.quality_gates_env_blocked??void 0,o=(typeof s?.attempts=="number"?s.attempts:0)+1;return i.quality_gates_env_blocked={at:new Date().toISOString(),reason:t,requires_tool:n??null,attempts:o},kx(e,Tc.default.stringify(r.content,i)),o}catch{return 1}}function C0t(){let e=[];try{e=e1(Br())}catch{e=[]}let t=e.map(r=>({name:r.name,command:r.command.join(" "),requires_tool:r.requires_tool,tool_live:r.requires_tool?PD(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function p5(e,t,n){let r=Array.isArray(n)?n:[n],i=t?fp(pe(e),"stages",t,"feedback"):fp(pe(e),"feedback");if(!Gv(i))return[];let s=[];for(let o of x_e(i).filter(a=>a.endsWith(".md")))try{let a=fp(i,o),c=(0,Tc.default)(Kg(a,"utf8")).data;c.author==="engine"&&r.includes(c.source_ref)&&s.push({path:a,data:c})}catch{}return s}function M0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function D0t(e,t){try{let n=(0,Tc.default)(Kg(e,"utf8")),r=n.data,i=new Date().toISOString();r.status="closed",r.closed_at=i,r.closed_by="engine:gate-deferred-to-ci",r.resolution="deferred",r.closure_reply={text:t,at:i},kx(e,Tc.default.stringify(n.content,r))}catch{}}function Ttr(e,t){try{let n=(0,Tc.default)(Kg(e,"utf8")),r=n.data,i=new Date().toISOString(),s=r.approvals??{};s.quality_gates={at:i,deferred_to_ci:!0,deferred_count:t.length},r.approvals=s;let o=Array.isArray(r.deferred_gates)?r.deferred_gates:[];r.deferred_gates=[...o,...t.map(a=>({name:a.name,command:a.command,exit_code:a.exit_code,output:a.output.slice(0,300),deferred_at:i}))],kx(e,Tc.default.stringify(n.content,r))}catch{}}function vtr(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=fp(pe(e),"stages",t,"units",`${c}.md`);if(!Gv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=rSe(e,u);if(l===null)ktr(u,"quality_gates"),r.push(c);else if(l.environment){let d=_tr(u,l.env_reason??"a runtime dependency was unreachable",l.requires_tool);o.push({unit:c,reason:l.env_reason??"a runtime dependency was unreachable",requires_tool:l.requires_tool,attempts:d,failures:l.failures})}else{let d=`unit:${c}`,f=[],p=[];for(let h of l.failures){let m=`${d}:${h.name}`;p5(e,t,[m,d]).length>=O_e?f.push(h):p.push(h)}if(f.length>0){let h=f.map(y=>y.name),m=`quality_gates on \`${c}\` (${h.join(", ")}) stayed red across ${O_e}+ local fix-loop attempt(s). Deferred to CI \u2014 CI runs them in a clean tree and is authoritative. A real defect surfaces as red CI on the PR; an environment-only failure (no local API, dep/codegen mismatch in the worktree) passes there.`;Ttr(u,f);let g=[d,...h.map(y=>`${d}:${y}`)];for(let y of p5(e,t,g))M0t(y.data)&&D0t(y.path,m);s.push({unit:c,gates:h,reason:m})}if(p.length>0){i.push({unit:c,failures:p});for(let h of p){let m=`${d}:${h.name}`;Qo(e,t,{title:`quality_gates failure on ${c} (${h.name})`,body:`Declared quality_gate \`${h.name}\` failed on unit \`${c}\`: +This is an ADMIN op that BYPASSES the normal workflow engine. It mutates state in ways the cursor would not. Confirm only if you understand the consequences.`,options:[{id:"confirm",label:`Yes, run ${s}`,description:"Proceed with the admin op. State will be mutated immediately."},{id:"cancel",label:"Cancel",description:"Abort. No state changes."}],signal:t});if(u.timedOut||!u.selection||u.selection.id!=="confirm")return ye(JSON.stringify({action:"cancelled",message:`Debug op '${s}' cancelled \u2014 no state mutated.`}));try{switch(s){case"force_stage_complete":{let l=e.stage;if(!l)return Qb({error:"missing_stage",message:"force_stage_complete requires `stage`"});let d=YZ({slug:i,targetStage:l,closeOpenFeedback:e.close_open_feedback===!0});return ye(JSON.stringify(d))}case"set_intent_field":{if(e.fields&&typeof e.fields=="object"){let p=e.fields,h=[];for(let[m,g]of Object.entries(p))h.push({field:m,result:ox({slug:i,field:m,value:g})});return ye(JSON.stringify({batch:!0,count:h.length,results:h}))}let l=e.field,d=e.value;if(!l)return Qb({error:"missing_field",message:"set_intent_field requires `field` or `fields`"});let f=ox({slug:i,field:l,value:d});return ye(JSON.stringify(f))}case"reset_drift":{let l=ZZ({slug:i});return ye(JSON.stringify(l))}case"set_unit_iterations":{let l=e.stage,d=e.unit;if(!l||!d)return Qb({error:"missing_stage_or_unit",message:"set_unit_iterations requires `stage` and `unit`"});let f=Array.isArray(e.iterations)?e.iterations:void 0,p=JZ({slug:i,stage:l,unit:d,iterations:f});return ye(JSON.stringify(p))}case"mutate_feedback":{let l=e.patch??{},d=e.stage||null;if(Array.isArray(e.feedback_ids)&&e.feedback_ids.length>0){let h=e.feedback_ids,m=[];for(let g of h)m.push({feedback_id:g,result:ax({slug:i,stage:d,feedbackId:g,patch:l})});return ye(JSON.stringify({batch:!0,count:m.length,results:m}))}let f=e.feedback_id;if(!f)return Qb({error:"missing_feedback_id",message:"mutate_feedback requires `feedback_id` or `feedback_ids`"});let p=ax({slug:i,stage:d,feedbackId:f,patch:l});return ye(JSON.stringify(p))}default:return Qb({error:"unhandled_op",op:s})}}catch(l){return Qb({error:"debug_op_threw",op:s,detail:l instanceof Error?l.message:String(l)})}}}});import{existsSync as x_e,readFileSync as gtr}from"node:fs";import{join as p5}from"node:path";function ytr(e,t,n){if(!n)return null;let r=n.replace(/\{intent-slug\}/g,t);return r.startsWith(".haiku/")?p5(e,r):r.startsWith("/")?r:p5(e,".haiku","intents",t,r)}var x0t,O0t=v(()=>{"use strict";yr();B0();ji();uo();Ge();Kn();vo();zi();vs();x0t={name:"haiku_discovery_complete",description:"Discovery subagent's completion hand-off. Merges the discovery worktree's branch back into its stage branch under a per-stage lock. Call AFTER committing your artifact inside the isolation worktree. Returns `{ ok: true }` on clean merge, `discovery_artifact_missing` with `expected_path` when the template's `location:` file isn't present in the worktree (you skipped or misplaced the write), `discovery_merge_conflict` with conflict_files on real conflict, `discovery_merge_failed` with the git error on other failures, `intent_not_found` when the intent dir is missing, `worktree_not_found` when the discovery worktree doesn't exist (already merged or never created).",inputSchema:f0,async handle(e){let t=Be(e,Jme,"haiku_discovery_complete");if(t)return t;let n=e,{intent:r,stage:i,template:s}=n,o=Te(),a=p5(o,"intents",r);if(!x_e(a))return ye(JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${r}' not found at ${a}.`}));let c=II(r,i,s);if(!x_e(c))return ye(JSON.stringify({ok:!1,error:"worktree_not_found",message:`No discovery worktree at ${c}. The worktree may have been merged or never created \u2014 re-tick haiku_run_next; if the cursor still requests this discovery, redispatch the subagent.`}));try{let u=re(gtr(p5(a,"intent.md"),"utf8")).data,l=typeof u.studio=="string"?u.studio:"";if(l){let d=s.toLowerCase(),f=no(l,i).filter(p=>p.kind==="discovery").find(p=>p.name.toLowerCase()===d);if(f){let p=ytr(c,r,f.location);if(p&&!x_e(p)){let h=p.startsWith(c)?p.slice(c.length+1):p;return ye(JSON.stringify({ok:!1,error:"discovery_artifact_missing",intent:r,stage:i,template:s,expected_path:p,location:f.location,message:[`Discovery template '${s}' declares location '${f.location}', but no file exists at the expected path inside your isolation worktree.`,"",`Expected (absolute): ${p}`,`Expected (worktree-relative): ${h}`,"","Before calling haiku_discovery_complete you MUST:"," 1. Write the populated discovery artifact to the path above.",` 2. \`git -C "${c}" add -A && git -C "${c}" commit -m "..."\``,` 3. Re-call \`haiku_discovery_complete { intent: "${r}", stage: "${i}", template: "${s}" }\`.`,"","If you wrote the file somewhere else (intent main, the stage branch directly, or another path), move it into the worktree at the expected path and commit there \u2014 haiku_discovery_complete only merges from the isolation worktree."].join(` +`)}))}}}}catch{}try{let u=jb(r,i,()=>kpe(r,i,s));return u.success?(Ke("haiku.discovery.merged",{intent:r,stage:i,template:s}),ye(JSON.stringify({ok:!0,intent:r,stage:i,template:s,message:u.message}))):u.isConflict?ye(JSON.stringify({ok:!1,error:"discovery_merge_conflict",intent:r,stage:i,template:s,conflict_files:u.conflictFiles??[],message:u.message})):ye(JSON.stringify({ok:!1,error:"discovery_merge_failed",intent:r,stage:i,template:s,message:u.message}))}catch(u){return ye(JSON.stringify({ok:!1,error:"discovery_merge_threw",intent:r,stage:i,template:s,message:u instanceof Error?u.message:String(u)}))}}}});import{execSync as P0t}from"node:child_process";import{existsSync as Gv,readdirSync as O_e,readFileSync as Kg,statSync as Str,writeFileSync as Ix}from"node:fs";import{join as fp,resolve as btr}from"node:path";function _tr(e,t,n){try{let r=(0,Tc.default)(Kg(e,"utf8")),i=r.data,s=i.quality_gates_env_blocked??void 0,o=(typeof s?.attempts=="number"?s.attempts:0)+1;return i.quality_gates_env_blocked={at:new Date().toISOString(),reason:t,requires_tool:n??null,attempts:o},Ix(e,Tc.default.stringify(r.content,i)),o}catch{return 1}}function C0t(){let e=[];try{e=n1(Br())}catch{e=[]}let t=e.map(r=>({name:r.name,command:r.command.join(" "),requires_tool:r.requires_tool,tool_live:r.requires_tool?ND(r.requires_tool):!0})),n=t.some(r=>r.tool_live);return{services:t,bootable:n}}function h5(e,t,n){let r=Array.isArray(n)?n:[n],i=t?fp(pe(e),"stages",t,"feedback"):fp(pe(e),"feedback");if(!Gv(i))return[];let s=[];for(let o of O_e(i).filter(a=>a.endsWith(".md")))try{let a=fp(i,o),c=(0,Tc.default)(Kg(a,"utf8")).data;c.author==="engine"&&r.includes(c.source_ref)&&s.push({path:a,data:c})}catch{}return s}function M0t(e){if(e.closed_at||e.rejected_at)return!1;let t=e.status;return t!=="closed"&&t!=="rejected"}function D0t(e,t){try{let n=(0,Tc.default)(Kg(e,"utf8")),r=n.data,i=new Date().toISOString();r.status="closed",r.closed_at=i,r.closed_by="engine:gate-deferred-to-ci",r.resolution="deferred",r.closure_reply={text:t,at:i},Ix(e,Tc.default.stringify(n.content,r))}catch{}}function Ttr(e,t){try{let n=(0,Tc.default)(Kg(e,"utf8")),r=n.data,i=new Date().toISOString(),s=r.approvals??{};s.quality_gates={at:i,deferred_to_ci:!0,deferred_count:t.length},r.approvals=s;let o=Array.isArray(r.deferred_gates)?r.deferred_gates:[];r.deferred_gates=[...o,...t.map(a=>({name:a.name,command:a.command,exit_code:a.exit_code,output:a.output.slice(0,300),deferred_at:i}))],Ix(e,Tc.default.stringify(n.content,r))}catch{}}function vtr(e,t,n){let r=[],i=[],s=[],o=[];for(let c of n){let u=fp(pe(e),"stages",t,"units",`${c}.md`);if(!Gv(u)){i.push({unit:c,failures:[{name:"unit_not_found",command:"",exit_code:1,output:`Unit file not found at ${u}`}]});continue}let l=iSe(e,u);if(l===null)ktr(u,"quality_gates"),r.push(c);else if(l.environment){let d=_tr(u,l.env_reason??"a runtime dependency was unreachable",l.requires_tool);o.push({unit:c,reason:l.env_reason??"a runtime dependency was unreachable",requires_tool:l.requires_tool,attempts:d,failures:l.failures})}else{let d=`unit:${c}`,f=[],p=[];for(let h of l.failures){let m=`${d}:${h.name}`;h5(e,t,[m,d]).length>=P_e?f.push(h):p.push(h)}if(f.length>0){let h=f.map(y=>y.name),m=`quality_gates on \`${c}\` (${h.join(", ")}) stayed red across ${P_e}+ local fix-loop attempt(s). Deferred to CI \u2014 CI runs them in a clean tree and is authoritative. A real defect surfaces as red CI on the PR; an environment-only failure (no local API, dep/codegen mismatch in the worktree) passes there.`;Ttr(u,f);let g=[d,...h.map(y=>`${d}:${y}`)];for(let y of h5(e,t,g))M0t(y.data)&&D0t(y.path,m);s.push({unit:c,gates:h,reason:m})}if(p.length>0){i.push({unit:c,failures:p});for(let h of p){let m=`${d}:${h.name}`;Qo(e,t,{title:`quality_gates failure on ${c} (${h.name})`,body:`Declared quality_gate \`${h.name}\` failed on unit \`${c}\`: - ${h.name}: \`${h.command}\` exited ${h.exit_code} The fix loop should resolve the failure, then quality_gates re-runs on the next tick. If this gate keeps failing across attempts, the engine defers it to CI (environmental / non-source-convergent).`,origin:"agent",severity:"blocker",author:"engine",source_ref:m,targetUnit:c,targetInvalidates:["quality_gates"]})}}}}if(o.length>0){let c=C0t(),u=o.every(h=>h.attempts>Etr),l=c.bootable&&!u?"best_effort_boot":"escalate_to_user",d=c.services.length>0?c.services.map(h=>` - ${h.name}: \`${h.command}\`${h.requires_tool?` (needs ${h.requires_tool}: ${h.tool_live?"LIVE":"NOT AVAILABLE"})`:""}`).join(` -`):" (no services declared in .haiku/boot.md)",f=Ufe(),p=l==="best_effort_boot"?`Quality gates can't reach a live environment on: ${o.map(h=>h.unit).join(", ")}. +`):" (no services declared in .haiku/boot.md)",f=Ffe(),p=l==="best_effort_boot"?`Quality gates can't reach a live environment on: ${o.map(h=>h.unit).join(", ")}. ${o.map(h=>` \u2022 ${h.unit}: ${h.reason}`).join(` `)} @@ -1287,31 +1287,31 @@ ESCALATE TO THE USER. Tell them exactly what's unavailable and what to do \u2014 ${d} Then WAIT for the user. Do NOT advance, do NOT call \`haiku_run_next\` in a loop, do NOT mark the gate passed. The stage holds until the dependency is live and the gate actually runs.`;return ye(JSON.stringify({action:"quality_gate_environment_blocked",scope:"stage",mode:l,env_blocked:o.map(h=>({unit:h.unit,reason:h.reason,requires_tool:h.requires_tool??null,attempts:h.attempts})),services:c.services,available_tools:f,passed:r,message:p},null,2))}let a=s.length>0?` ${s.length} unit(s) had non-convergent gates DEFERRED to CI: ${s.map(c=>`${c.unit} (${c.gates.join(", ")})`).join("; ")}.`:"";return ye(JSON.stringify({scope:"stage",passed:r,failures:i,deferred:s,message:i.length===0&&s.length===0?`All ${r.length} unit(s) passed quality_gates. Approvals stamped.`:`${i.length} unit(s) had quality_gate failures \u2014 FBs filed. ${r.length} passed.${a}`},null,2))}function Rtr(e){let t=pe(e),n=fp(t,"stages"),r=Atr(t),i=wtr(n,r);if(i.length===0)return N0t(e,"intent_quality_gates"),ye(JSON.stringify({scope:"intent",ran:0,failures:[],message:"No quality_gates declared on any unit across this intent. Approvals stamped (vacuously true)."},null,2));let s=process.cwd();try{s=P0t("git rev-parse --show-toplevel",{encoding:"utf8"}).trim()}catch{}let o=[];for(let u of i){let l=u.dir?btr(s,u.dir):s;try{P0t(u.command,{stdio:"pipe",cwd:l,shell:"/bin/bash",timeout:3e5})}catch(d){let f=d;o.push({name:u.name,command:u.command,exit_code:typeof f.status=="number"?f.status:1,output:[f.stdout?f.stdout.toString().trim():"",f.stderr?f.stderr.toString().trim():""].filter(Boolean).join(` -`),contributors:u.contributors})}}if(o.length===0)return N0t(e,"intent_quality_gates"),ye(JSON.stringify({scope:"intent",ran:i.length,failures:[],message:`All ${i.length} distinct quality_gates command(s) passed at intent scope. approvals.intent_quality_gates stamped on intent.md.`},null,2));{let u=[];try{u=[...new Set(e1(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=zK(o,{requiredTools:u});if(l.environment){let d=C0t(),f=d.services.length>0?d.services.map(h=>` - ${h.name}: \`${h.command}\`${h.requires_tool?` (needs ${h.requires_tool}: ${h.tool_live?"LIVE":"NOT AVAILABLE"})`:""}`).join(` -`):" (no services declared in .haiku/boot.md)",p=Ufe();return ye(JSON.stringify({action:"quality_gate_environment_blocked",scope:"intent",mode:d.bootable?"best_effort_boot":"escalate_to_user",reason:l.reason,requires_tool:l.requiresTool??null,services:d.services,available_tools:p,message:`Intent-scope quality gates can't reach a live environment: ${l.reason}. +`),contributors:u.contributors})}}if(o.length===0)return N0t(e,"intent_quality_gates"),ye(JSON.stringify({scope:"intent",ran:i.length,failures:[],message:`All ${i.length} distinct quality_gates command(s) passed at intent scope. approvals.intent_quality_gates stamped on intent.md.`},null,2));{let u=[];try{u=[...new Set(n1(Br()).map(d=>d.requires_tool).filter(d=>typeof d=="string"&&d.length>0))]}catch{u=[]}let l=VK(o,{requiredTools:u});if(l.environment){let d=C0t(),f=d.services.length>0?d.services.map(h=>` - ${h.name}: \`${h.command}\`${h.requires_tool?` (needs ${h.requires_tool}: ${h.tool_live?"LIVE":"NOT AVAILABLE"})`:""}`).join(` +`):" (no services declared in .haiku/boot.md)",p=Ffe();return ye(JSON.stringify({action:"quality_gate_environment_blocked",scope:"intent",mode:d.bootable?"best_effort_boot":"escalate_to_user",reason:l.reason,requires_tool:l.requiresTool??null,services:d.services,available_tools:p,message:`Intent-scope quality gates can't reach a live environment: ${l.reason}. `+(d.bootable?'BEST-EFFORT BOOT: bring the declared service(s) up, then re-run `haiku_dispatch_quality_gates { intent, scope: "intent" }`. ':"The engine can't bring it up here. ESCALATE TO THE USER: tell them what's unavailable and to start it, then retry. ")+`Do NOT seal the intent \u2014 a gate that didn't run verified nothing. Declared services: ${f} -Available tools: ${p.length>0?p.join(", "):"(none live)"}.`},null,2))}}let a=p5(e,"","intent_quality_gates").length;if(a>=O_e){let u=o.map(d=>d.name),l=`intent_quality_gates (${u.join(", ")}) stayed red across ${a} fix-loop attempt(s). Deferred to CI \u2014 it runs them in a clean tree and is authoritative.`;Itr(e,o);for(let d of p5(e,"","intent_quality_gates"))M0t(d.data)&&D0t(d.path,l);return ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,deferred:{gates:u,reason:l},message:`${o.length} of ${i.length} intent-scope quality_gates stayed red across ${a} fix-loop attempt(s) \u2014 DEFERRED to CI. approvals.intent_quality_gates stamped deferred; intent can seal.`},null,2))}let c=o.map(u=>`- **${u.name}**: \`${u.command}\` exited ${u.exit_code} (declared by: ${u.contributors.join(", ")}) +Available tools: ${p.length>0?p.join(", "):"(none live)"}.`},null,2))}}let a=h5(e,"","intent_quality_gates").length;if(a>=P_e){let u=o.map(d=>d.name),l=`intent_quality_gates (${u.join(", ")}) stayed red across ${a} fix-loop attempt(s). Deferred to CI \u2014 it runs them in a clean tree and is authoritative.`;Itr(e,o);for(let d of h5(e,"","intent_quality_gates"))M0t(d.data)&&D0t(d.path,l);return ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,deferred:{gates:u,reason:l},message:`${o.length} of ${i.length} intent-scope quality_gates stayed red across ${a} fix-loop attempt(s) \u2014 DEFERRED to CI. approvals.intent_quality_gates stamped deferred; intent can seal.`},null,2))}let c=o.map(u=>`- **${u.name}**: \`${u.command}\` exited ${u.exit_code} (declared by: ${u.contributors.join(", ")}) ${u.output.slice(0,400).split(` `).join(` `)}`).join(` `);return Qo(e,"",{title:`intent_quality_gates: ${o.length} failing command(s)`,body:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope. The studio fix-hat loop should resolve each failure; on close, the cursor's intent walk will re-dispatch dispatch_quality_gates because approvals.intent_quality_gates is still unset. If the gates keep failing across attempts, the engine defers them to CI (environmental / non-source-convergent). -${c}`,origin:"agent",severity:"blocker",author:"engine",source_ref:"intent_quality_gates"}),ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,message:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope \u2014 intent-scope FB filed.`},null,2))}function Atr(e){let t=fp(e,"intent.md");if(!Gv(t))return new Set;try{let r=(0,Tc.default)(Kg(t,"utf8")).data.skip_gates;return Array.isArray(r)?new Set(r.filter(i=>typeof i=="string")):new Set}catch{return new Set}}function wtr(e,t=new Set){if(!Gv(e))return[];let n=new Map,r=x_e(e).filter(i=>{try{return Str(fp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=fp(e,i,"units");if(!Gv(s))continue;let o=x_e(s).filter(a=>a.startsWith("unit-")&&a.endsWith(".md"));for(let a of o){let c=fp(s,a),u;try{u=Kg(c,"utf8")}catch{continue}let l;try{l=(0,Tc.default)(u).data}catch{continue}let d=l.quality_gates;if(Array.isArray(d))for(let f of d){if(!f||typeof f!="object")continue;let p=f;if(p.superseded===!0)continue;let h=typeof p.name=="string"?p.name:"",m=typeof p.command=="string"?p.command:"";if(!m)continue;let g=typeof p.dir=="string"&&p.dir.length>0?p.dir:void 0,y=`${g??""}::${m}`;if(h&&t.has(h)||t.has(y))continue;let b=n.get(y),S=`${i}/${a.replace(/\.md$/,"")}`;b?b.contributors.includes(S)||b.contributors.push(S):n.set(y,{name:h||`gate-${n.size+1}`,command:m,dir:g,contributors:[S]})}}}return[...n.values()]}function ktr(e,t){let n=Kg(e,"utf8"),r=(0,Tc.default)(n),i=r.data,s=i.approvals??{},o=Array.isArray(i.outputs)?i.outputs:[],a=e.split("/stages/")[0];s[t]=Bd(a,o),i.approvals=s;let c=Tc.default.stringify(r.content,i);kx(e,c)}function Itr(e,t){let n=fp(pe(e),"intent.md");if(Gv(n))try{let r=(0,Tc.default)(Kg(n,"utf8")),i=r.data,s=new Date().toISOString(),o=i.approvals??{};o.intent_quality_gates={at:s,deferred_to_ci:!0,deferred_count:t.length},i.approvals=o;let a=Array.isArray(i.deferred_gates)?i.deferred_gates:[];i.deferred_gates=[...a,...t.map(c=>({name:c.name,command:c.command,exit_code:c.exit_code,output:c.output.slice(0,300),deferred_at:s}))],kx(n,Tc.default.stringify(r.content,i))}catch{}}function N0t(e,t){let n=fp(pe(e),"intent.md");if(!Gv(n))return;let r=Kg(n,"utf8"),i=(0,Tc.default)(r),s=i.data,o=s.approvals??{};o[t]={at:new Date().toISOString()},s.approvals=o,kx(n,Tc.default.stringify(i.content,s))}var Tc,Etr,O_e,L0t,U0t=v(()=>{"use strict";Tc=Re(Kt(),1);Ffe();jfe();Xf();Ge();t1();zi();vs();Etr=1;O_e=2;L0t={name:"haiku_dispatch_quality_gates",description:"Run the declared `quality_gates` at stage scope (per-unit, with fix-loop on failure) or at intent scope (union of all units' gates, deduped by command, stamped on intent.md). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string"},stage:{type:"string"},units:{type:"array",items:{type:"string"}},scope:{type:"string",enum:["intent","stage"]}},required:["intent"]},async handle(e){let t=e.intent,n=e.stage||"",r=e.units||[];return(e.scope??(n===""?"intent":"stage"))==="intent"?Rtr(t):vtr(t,n,r)}}});import{existsSync as F0t,readFileSync as xtr}from"node:fs";import{join as h5}from"node:path";var j0t,H0t=v(()=>{"use strict";ns();Oa();ji();uo();Ge();vo();zi();Hv();vs();j0t={name:"haiku_drop_stage",description:"Drop an OPTIONAL stage from an intent's plan. Use when the elaborate-loop offered a keep-or-drop decision for an optional stage (e.g. design / product / operations / release) and this intent doesn't need it. Removes the stage from the intent's plan; the next haiku_run_next advances to the following stage. Only the ACTIVE, not-yet-started stage can be dropped \u2014 refuses a non-active stage (drop_stage_not_active), a non-optional stage (drop_stage_not_optional), or a started stage (drop_stage_already_started).",inputSchema:S0,async handle(e){let t=Be(e,Nge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=Te(),s=h5(i,"intents",n),o=h5(s,"intent.md");if(!F0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(xtr(o,"utf8")).data,c=a.studio||"";if(!c)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${n}' has no studio selected.`}));let u=ai(n,c,s)??"";if(r!==u)return ye(JSON.stringify({error:"drop_stage_not_active",message:`Stage '${r}' is not the active stage of intent '${n}' (active: '${u||"(none)"}'). An optional stage can only be dropped when the cursor is on it \u2014 the decision is made at arrival, not for a future or past stage.`}));if(!nL(c,r))return ye(JSON.stringify({error:"drop_stage_not_optional",message:`Stage '${r}' is not optional (no \`optional: true\` in its STAGE.md). Mandatory stages cannot be dropped.`}));let l=h5(s,"stages",r);if(F0t(h5(l,"elaboration.md"))||av(l).length>0)return ye(JSON.stringify({error:"drop_stage_already_started",message:`Stage '${r}' has already started (elaboration recorded or units drafted). Dropping only applies before any work \u2014 use a stage reset if you need to discard started work.`}));let f=wn(a,c),p=f.indexOf(r),h=f[p+1],m=f.filter(g=>g!==r);return Me(o,"stages",m),wt(`haiku: drop optional stage ${r} from ${n}`),Ke("haiku.stage.dropped",{intent:n,stage:r,studio:c}),ye(JSON.stringify({action:"stage_dropped",intent:n,stage:r,stages:m,message:Gn(`Dropped the optional **${r}** stage from intent "${n}".`,`Call haiku_run_next { intent: "${n}" } to advance${h?` to the next stage (\`${h}\`)`:""}.`)}))}}});import{createHash as Otr,randomBytes as Ptr}from"node:crypto";import{existsSync as Vv,readFileSync as C_e,realpathSync as q0t,unlinkSync as Ntr}from"node:fs";import{writeFile as Ctr}from"node:fs/promises";import{dirname as N_e,isAbsolute as Mtr,join as Wv,relative as gU,resolve as P_e}from"node:path";function Dtr(e){let t=Wv(e,"settings.yml");if(!Vv(t))return!1;try{let n=C_e(t,"utf8"),{data:r}=(0,B0t.default)(`--- +${c}`,origin:"agent",severity:"blocker",author:"engine",source_ref:"intent_quality_gates"}),ye(JSON.stringify({scope:"intent",ran:i.length,failures:o,message:`${o.length} of ${i.length} distinct quality_gates command(s) failed at intent scope \u2014 intent-scope FB filed.`},null,2))}function Atr(e){let t=fp(e,"intent.md");if(!Gv(t))return new Set;try{let r=(0,Tc.default)(Kg(t,"utf8")).data.skip_gates;return Array.isArray(r)?new Set(r.filter(i=>typeof i=="string")):new Set}catch{return new Set}}function wtr(e,t=new Set){if(!Gv(e))return[];let n=new Map,r=O_e(e).filter(i=>{try{return Str(fp(e,i)).isDirectory()}catch{return!1}});for(let i of r){let s=fp(e,i,"units");if(!Gv(s))continue;let o=O_e(s).filter(a=>a.startsWith("unit-")&&a.endsWith(".md"));for(let a of o){let c=fp(s,a),u;try{u=Kg(c,"utf8")}catch{continue}let l;try{l=(0,Tc.default)(u).data}catch{continue}let d=l.quality_gates;if(Array.isArray(d))for(let f of d){if(!f||typeof f!="object")continue;let p=f;if(p.superseded===!0)continue;let h=typeof p.name=="string"?p.name:"",m=typeof p.command=="string"?p.command:"";if(!m)continue;let g=typeof p.dir=="string"&&p.dir.length>0?p.dir:void 0,y=`${g??""}::${m}`;if(h&&t.has(h)||t.has(y))continue;let b=n.get(y),S=`${i}/${a.replace(/\.md$/,"")}`;b?b.contributors.includes(S)||b.contributors.push(S):n.set(y,{name:h||`gate-${n.size+1}`,command:m,dir:g,contributors:[S]})}}}return[...n.values()]}function ktr(e,t){let n=Kg(e,"utf8"),r=(0,Tc.default)(n),i=r.data,s=i.approvals??{},o=Array.isArray(i.outputs)?i.outputs:[],a=e.split("/stages/")[0];s[t]=Bd(a,o),i.approvals=s;let c=Tc.default.stringify(r.content,i);Ix(e,c)}function Itr(e,t){let n=fp(pe(e),"intent.md");if(Gv(n))try{let r=(0,Tc.default)(Kg(n,"utf8")),i=r.data,s=new Date().toISOString(),o=i.approvals??{};o.intent_quality_gates={at:s,deferred_to_ci:!0,deferred_count:t.length},i.approvals=o;let a=Array.isArray(i.deferred_gates)?i.deferred_gates:[];i.deferred_gates=[...a,...t.map(c=>({name:c.name,command:c.command,exit_code:c.exit_code,output:c.output.slice(0,300),deferred_at:s}))],Ix(n,Tc.default.stringify(r.content,i))}catch{}}function N0t(e,t){let n=fp(pe(e),"intent.md");if(!Gv(n))return;let r=Kg(n,"utf8"),i=(0,Tc.default)(r),s=i.data,o=s.approvals??{};o[t]={at:new Date().toISOString()},s.approvals=o,Ix(n,Tc.default.stringify(i.content,s))}var Tc,Etr,P_e,L0t,U0t=v(()=>{"use strict";Tc=Re(Kt(),1);jfe();Hfe();Xf();Ge();r1();zi();vs();Etr=1;P_e=2;L0t={name:"haiku_dispatch_quality_gates",description:"Run the declared `quality_gates` at stage scope (per-unit, with fix-loop on failure) or at intent scope (union of all units' gates, deduped by command, stamped on intent.md). Engine-callable from the cursor's dispatch_quality_gates action.",inputSchema:{type:"object",properties:{intent:{type:"string"},stage:{type:"string"},units:{type:"array",items:{type:"string"}},scope:{type:"string",enum:["intent","stage"]}},required:["intent"]},async handle(e){let t=e.intent,n=e.stage||"",r=e.units||[];return(e.scope??(n===""?"intent":"stage"))==="intent"?Rtr(t):vtr(t,n,r)}}});import{existsSync as F0t,readFileSync as xtr}from"node:fs";import{join as m5}from"node:path";var j0t,H0t=v(()=>{"use strict";ns();Oa();ji();uo();Ge();vo();zi();Hv();vs();j0t={name:"haiku_drop_stage",description:"Drop an OPTIONAL stage from an intent's plan. Use when the elaborate-loop offered a keep-or-drop decision for an optional stage (e.g. design / product / operations / release) and this intent doesn't need it. Removes the stage from the intent's plan; the next haiku_run_next advances to the following stage. Only the ACTIVE, not-yet-started stage can be dropped \u2014 refuses a non-active stage (drop_stage_not_active), a non-optional stage (drop_stage_not_optional), or a started stage (drop_stage_already_started).",inputSchema:S0,async handle(e){let t=Be(e,Cge,"haiku_drop_stage");if(t)return t;let{intent:n,stage:r}=e,i=Te(),s=m5(i,"intents",n),o=m5(s,"intent.md");if(!F0t(o))return ye(JSON.stringify({error:"not_found",message:`Intent '${n}' not found`}));let a=re(xtr(o,"utf8")).data,c=a.studio||"";if(!c)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${n}' has no studio selected.`}));let u=ai(n,c,s)??"";if(r!==u)return ye(JSON.stringify({error:"drop_stage_not_active",message:`Stage '${r}' is not the active stage of intent '${n}' (active: '${u||"(none)"}'). An optional stage can only be dropped when the cursor is on it \u2014 the decision is made at arrival, not for a future or past stage.`}));if(!rL(c,r))return ye(JSON.stringify({error:"drop_stage_not_optional",message:`Stage '${r}' is not optional (no \`optional: true\` in its STAGE.md). Mandatory stages cannot be dropped.`}));let l=m5(s,"stages",r);if(F0t(m5(l,"elaboration.md"))||av(l).length>0)return ye(JSON.stringify({error:"drop_stage_already_started",message:`Stage '${r}' has already started (elaboration recorded or units drafted). Dropping only applies before any work \u2014 use a stage reset if you need to discard started work.`}));let f=wn(a,c),p=f.indexOf(r),h=f[p+1],m=f.filter(g=>g!==r);return Me(o,"stages",m),wt(`haiku: drop optional stage ${r} from ${n}`),Ke("haiku.stage.dropped",{intent:n,stage:r,studio:c}),ye(JSON.stringify({action:"stage_dropped",intent:n,stage:r,stages:m,message:Gn(`Dropped the optional **${r}** stage from intent "${n}".`,`Call haiku_run_next { intent: "${n}" } to advance${h?` to the next stage (\`${h}\`)`:""}.`)}))}}});import{createHash as Otr,randomBytes as Ptr}from"node:crypto";import{existsSync as Vv,readFileSync as M_e,realpathSync as q0t,unlinkSync as Ntr}from"node:fs";import{writeFile as Ctr}from"node:fs/promises";import{dirname as C_e,isAbsolute as Mtr,join as Wv,relative as SU,resolve as N_e}from"node:path";function Dtr(e){let t=Wv(e,"settings.yml");if(!Vv(t))return!1;try{let n=M_e(t,"utf8"),{data:r}=(0,B0t.default)(`--- ${n} --- -`);return r.human_write_require_rationale===!0}catch{return!1}}function Ltr(e){let t=Wv(e,"write-audit.jsonl");if(!Vv(t))return 1;try{return C_e(t,"utf8").split(` -`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function Ftr(e){if(/^knowledge\//.test(e))return{allowed:!0,stageSegment:null};let t=e.match(/^stages\/([^/]+)\/(.+)$/);if(t){let n=t[1],r=t[2];if(/^knowledge\//.test(r)||/^discovery\//.test(r)||/^artifacts\//.test(r)||/^outputs\//.test(r))return{allowed:!0,stageSegment:n}}return{allowed:!1}}function jtr(e,t,n){let r=rv(e),i=P_e(t);if(Mtr(r)){let l=P_e(r);if(!l.startsWith(`${i}/`)&&l!==i)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' resolves outside the intent directory.`};r=gU(i,l)}let s=P_e(Wv(t,r));if(!s.startsWith(`${i}/`)&&s!==i)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' resolves outside the intent directory (path escape detected).`};let o=gU(i,s),a=N_e(s);if(Vv(a))try{let l=q0t(a),d=q0t(i);if(!l.startsWith(`${d}/`)&&l!==d)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' parent directory resolves outside the intent directory via symlink.`}}catch{return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}': could not resolve parent directory. Rejecting for safety.`}}let c=rv(o);for(let l of Utr)if(l.pattern.test(c))return{ok:!1,code:"path_outside_tracked_surface",reason:"deny_list_match",deny_rule:l.rule,path:c,message:`Cannot write to '${c}': ${l.message}`};let u=Ftr(c);if(!u.allowed)return{ok:!1,code:"path_outside_tracked_surface",reason:"no_allow_match",path:c,message:`Path '${c}' does not match any allowed tracked-surface pattern (knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/).`};if(u.stageSegment!==null){let l=u.stageSegment;if(!n.includes(l))return{ok:!1,code:"path_outside_tracked_surface",reason:"invalid_stage",path:c,message:`Path '${c}' references stage '${l}' which does not exist in this intent.`}}return{ok:!0,canonicalPath:c}}var B0t,Utr,z0t,G0t=v(()=>{"use strict";B0t=Re(Kt(),1);E6();w0();b6();KY();Ge();zi();vs();Utr=[{pattern:/(?:^|\/)units\/[^/]+\.md$/,rule:"stages/{stage}/units/*.md",message:"Unit files are lifecycle-managed. Use haiku_unit_write or haiku_unit_set."},{pattern:/(?:^|\/)feedback\/[^/]+\.md$/,rule:"stages/{stage}/feedback/*.md",message:"Feedback files are lifecycle-managed. Use haiku_feedback or haiku_feedback_write."},{pattern:/(?:^|\/)intent\.md$/,rule:"intent.md",message:"intent.md is workflow-engine-managed. Use haiku_intent_get or haiku_run_next."},{pattern:/(?:^|\/)state\.json$/,rule:"stages/{stage}/state.json",message:"state.json is workflow engine-internal. Use haiku_run_next or a dedicated MCP tool."},{pattern:/(?:^|\/)baseline\.json$/,rule:"stages/{stage}/baseline.json",message:"baseline.json is managed by the drift-detection gate. Direct writes desync SHA tracking."},{pattern:/(?:^|\/)drift-markers\.json$/,rule:"drift-markers.json",message:"drift-markers.json is an internal workflow-engine artifact. Do not write directly."},{pattern:/(?:^|\/)\.baseline-ack$/,rule:"stages/{stage}/.baseline-ack",message:".baseline-ack is the operator-only baseline-reset acknowledgement marker. Only /haiku:haiku-repair --confirm-baseline-reset can write it; the agent has no path. This is the V-11 defence against silent baseline laundering."},{pattern:/(?:^|\/)baseline-thrash\.json$/,rule:"stages/{stage}/baseline-thrash.json",message:"baseline-thrash.json is the V-11 baseline-corruption circuit breaker. Managed exclusively by the drift-detection gate."},{pattern:/(?:^|\/)write-audit\.jsonl$/,rule:"write-audit.jsonl",message:"write-audit.jsonl is append-only and managed exclusively by the haiku_human_write tool."},{pattern:/(?:^|\/)drift-assessments\//,rule:"drift-assessments/*",message:"drift-assessments/ entries are managed by the workflow engine's assessment pipeline."}];z0t={name:"haiku_human_write",description:"Write a file to the intent's tracked surface as a human-attributed write. Use when a user explicitly instructs the agent to write a file on their behalf (e.g. 'save this config to knowledge/'). The file is written atomically, attributed to the human via an action-log entry, and appended to the write-audit log. The baseline is NOT updated \u2014 the next drift-gate tick detects the change and dispatches manual_change_assessment. Allowed destinations: knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/ (or outputs/ alias). Workflow-managed files (units, feedback, intent.md, state.json) are refused.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The slug of the active intent."},path:{type:"string",description:"Destination file path \u2014 intent-relative (e.g. knowledge/brand-guide.md) or absolute within the intent directory. Path is canonicalised (outputs/ \u2192 artifacts/) before validation."},content:{type:"string",description:"File content. UTF-8 string by default. Pass base64-encoded bytes and set content_encoding: 'base64' for binary files."},content_encoding:{type:"string",enum:["utf-8","base64"],description:"Encoding of the content field. Default: 'utf-8'."},claimed_author_id:{type:"string",description:"Self-reported identifier (username, email, UUID) of who the agent BELIEVES gave the instruction. Captured in the audit log as a CLAIM, not an authoritative identity \u2014 the server does not cross-check against any session or OS identity. Reviewers reading audit logs MUST treat this as 'what the agent said' rather than 'who did it'. (V-03 mitigation: renamed from `human_author_id` so consumers stop treating it as authoritative.)"},human_author_id:{type:"string",description:"DEPRECATED legacy alias for `claimed_author_id`. Accepted for backwards compatibility; the value is mirrored to `claimed_author_id` on persistence. New callers MUST use `claimed_author_id`."},rationale:{type:"string",description:"Short free-text explanation of why the human requested this write. Strongly recommended. Required when the plugin setting human_write_require_rationale is true."},user_instruction_excerpt:{type:"string",description:"The user's instruction as it appeared in chat (first 200 chars). Captured in the audit log for security review. Self-reported by the agent."},overwrite:{type:"boolean",description:"Whether to overwrite the file if it already exists. Default: true. When false, returns path_already_exists if the destination exists."},create_dirs:{type:"boolean",description:"Whether to create intermediate directories if they do not exist. Default: true. When false, returns parent_dir_missing if the parent directory is absent."}},required:["intent_slug","path","content"]},async handle(e){let t=e.intent_slug,n=e.path,r=e.content,i=e.content_encoding??"utf-8",s=e.claimed_author_id??e.human_author_id??null,o=e.rationale??null,a=e.user_instruction_excerpt??null,c=e.overwrite??!0,u=e.create_dirs??!0,l=Wg({intent:t});if(l)return l;let d=Te(),f=Wv(d,"intents",t),p=Wv(f,"intent.md");if(!Vv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if(g1(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_active",message:`Intent '${t}' is archived. Unarchive it first with haiku_intent_unarchive.`},null,2)}],isError:!0};if(m1(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_locked",message:`Intent '${t}' is locked. Unlock it before issuing human-attributed writes.`},null,2)}],isError:!0};if(i!=="utf-8"&&i!=="base64")return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"invalid_content_encoding",message:`Unrecognized content_encoding '${i}'. Valid values: 'utf-8', 'base64'.`},null,2)}],isError:!0};let h;if(i==="base64"?h=Buffer.from(r,"base64"):h=Buffer.from(r,"utf8"),h.length===0)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"empty_content",message:"Empty content is not permitted. The file must have at least one byte."},null,2)}],isError:!0};if(Dtr(d)&&(!o||o.trim()===""))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"rationale_required",message:"Plugin settings require a rationale for human-attributed writes. Provide a short explanation of why the human requested this write in the 'rationale' field.",config_key:"human_write_require_rationale"},null,2)}],isError:!0};let m=Uyt(f),g=jtr(n,f,m);if(!g.ok)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:g.code,path:g.path,reason:g.reason,...g.reason==="deny_list_match"&&g.deny_rule?{deny_rule:g.deny_rule}:{},message:g.message},null,2)}],isError:!0};let{canonicalPath:y}=g,b=Wv(f,y),S=N_e(b);if(!c&&Vv(b)){let F="";try{let{createHash:V}=await import("node:crypto"),U=C_e(b);F=V("sha256").update(U).digest("hex")}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"path_already_exists",path:y,existing_sha:F,message:`Path '${y}' already exists and overwrite is false. Set overwrite: true to replace it.`},null,2)}],isError:!0}}if(!u&&!Vv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:y,missing_dir:gU(f,S),message:`Parent directory '${gU(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let E=[];if(u){let F=S,V=[];for(;!Vv(F);){V.unshift(F);let U=N_e(F);if(U===F)break;F=U}for(let U of V)E.push(gU(f,U))}let _=Otr("sha256").update(h).digest("hex"),T=process.pid,R=Ptr(6).toString("hex"),A=Wv(f,`.hwm-tmp-${T}-${R}.tmp`);try{await Ctr(A,h)}catch(F){return j0(A),{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:y,message:`Failed to write tempfile for '${y}': ${String(F)}`},null,2)}],isError:!0}}let x=pv(f,S,A,b);if(!x.ok){j0(A);let F=x.code==="parent_chain_contains_symlink"||x.code==="parent_chain_escape";return{content:[{type:"text",text:JSON.stringify({ok:!1,error:F?"path_outside_tracked_surface":"disk_write_failed",path:y,reason:F?x.code:void 0,message:F?`Refused to write '${y}': parent directory chain failed symlink-safety check (${x.code}).`:`Failed to write '${y}': ${x.detail}`},null,2)}],isError:!0}}let k=y.match(/^stages\/([^/]+)\//),P=k===null,N;try{N=P?y1(f):Lb(f,k[1])}catch(F){if(F instanceof Gd){try{Ntr(b)}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:y,reason:"tick_persist_failed",message:`Failed to persist tick counter for '${y}': ${F.message}`},null,2)}],isError:!0}}throw F}let C=P?"intent":"stage",L=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),G=Ltr(f),W=K1(N,G),$=MY(d);await Mv(f,N,{entry_type:"human_write",path:y,sha:_,author_class:"human-via-mcp",timestamp:L,claimed_author_id:s,human_author_id:s,entry_id:W,tick_counter:N,tick_scope:C});let q=!1,Q;if($)Q="drift_detection_disabled";else{let F=a?oRt(a):null;q=(await Y1(f,{timestamp:L,entry_id:W,path:y,sha:_,author_class:"human-via-mcp",claimed_author_id:s,human_author_id:s,rationale:o,user_instruction_excerpt:F,tick_counter:N,session_id:null,overwrite:c,dirs_created:E,audit_log_appended:!0,tick_scope:C})).ok}let B={ok:!0,path:y,sha:_,author_class:"human-via-mcp",timestamp:L,claimed_author_id:s,human_author_id:s,dirs_created:E,action_log_entry_id:W,audit_log_appended:q};return Q&&(B.reason=Q),ye(JSON.stringify(B,null,2))}}});import{existsSync as Htr,readFileSync as qtr}from"node:fs";import{join as Btr}from"node:path";var V0t,W0t=v(()=>{"use strict";yr();Ge();zi();vs();V0t={name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]},handle(e){let t=e.intent,n=Te(),r=Btr(n,"intents",t,"intent.md");if(!Htr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re(qtr(r,"utf8"));if(i.archived===!0)return ye(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is already archived.`},null,2));let s=gr(t,void 0);return s.ok?(Me(r,"archived",!0),wt(`haiku: archive intent ${t}`),ye(JSON.stringify({action:"intent_archived",slug:t,path:r,message:`Intent '${t}' has been archived. Call haiku_intent_unarchive to restore it.`},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed for intent archive '${t}' \u2014 ${s.message}. Resolve manually and retry.`}],isError:!0}}}});import{execFileSync as m5}from"node:child_process";import{existsSync as ztr,mkdirSync as M_e,writeFileSync as D_e}from"node:fs";import{join as nm}from"node:path";function K0t(e){let t=e.trim();if(!t)return null;let n="quick|continuous|discrete|hybrid|autopilot",r="inception|design|product|development|operations|security",i=[{re:new RegExp(`\\b(?:in|using|use|with|the|a)\\s+(?:${n})\\s+mode\\b`,"i"),label:"mode reference"},{re:new RegExp(`\\b(?:${n})-mode\\b`,"i"),label:"mode reference"},{re:new RegExp(`\\bonly\\s+(?:in|with|the|a)?\\s*(?:${r})\\s+(?:stage|phase)\\b`,"i"),label:"stage / phase restriction"},{re:new RegExp(`\\bonly\\s+(?:run|use|do|in|with)\\s+(?:the\\s+)?(?:${r})\\s+(?:stage|phase)?\\b`,"i"),label:"stage / phase restriction"},{re:new RegExp(`\\bin\\s+(?:the\\s+)?(?:${r})\\s+(?:stage|phase)\\b(?!\\s+of\\b)`,"i"),label:"stage / phase reference"},{re:/\b(?:use|using)\s+(?:the\s+)?\w+\s+studio\b/i,label:"studio reference"},{re:/\b(?:studio|mode|stages?)\s*:\s*\w+/i,label:"raw frontmatter in description"}];for(let{re:s,label:o}of i){let a=t.match(s);if(a)return`${o}: "${a[0]}"`}return null}var Y0t,Z0t=v(()=>{"use strict";yr();Hfe();c1();ji();uo();Ge();Kn();vo();f_();zi();vs();Y0t={name:"haiku_intent_create",description:"Create a new intent. Returns the slug + path. Title is required (crisp 3\u20138 word summary, \u226480 chars, single line). If the user started the intent from a referenced file (a spec, a doc, a screenshot, a path like `~/Downloads/spec.pdf`, or a dragged-in attachment), READ it and synthesize its relevant substance directly into `description` and `context` \u2014 NEVER pass the file path in any field. An absolute path leaks the user's machine layout and the external file won't travel with the intent; the intent must stand on its own from its own text (capture what the file says, not where it lives). Studio, mode, and (for quick) stage are selected by the engine on the next haiku_run_next call \u2014 the tick blocks on the SPA picker until the user chooses, then continues to real workflow actions. The agent does NOT call select_* tools directly; just call haiku_run_next after creating the intent. **`studio_candidates` is REQUIRED** \u2014 the 2\u20134 studios from `haiku_studio_list` that best fit what you just described. You have the description in context right now; this is the moment to narrow the picker so the user isn't scrolling the whole registry. The picker presents your shortlist first and tucks the rest behind a 'Show all studios\u2026' expansion, so narrowing is never lossy. If you call without it, the tool tells you to fetch `haiku_studio_list` and retry. Always creates a fresh intent \u2014 `/haiku:haiku-start` does not resume; use `/haiku:haiku-pickup` for that.",inputSchema:UL,handle(e){let t=e.description,n=e.title,r=e.slug;if(!n||typeof n!="string")return ye(JSON.stringify({error:"missing_title",message:'haiku_intent_create requires a `title` parameter \u2014 a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Write it deliberately; do NOT pass a truncated description. Example: title: "Add archivable intents".'}));if(/[\r\n]/.test(n))return ye(JSON.stringify({error:"invalid_title",message:"`title` must be a single line \u2014 got newlines. Rewrite as a crisp 3\u20138 word summary (\u226480 chars) and call again."}));let i=n.trim().replace(/\s+/g," ");if(h1(i))return ye(JSON.stringify({error:"invalid_title",message:`\`title\` must be non-empty and \u226480 chars after trimming. Got ${i.length} chars. Rewrite as a 3\u20138 word summary and call again.`}));let s=K0t(i),o=K0t(t||"");if(s||o){let y=s&&o?"title and description":s?"title":"description",b=s||o;return ye(JSON.stringify({error:"intent_create_meta_pollution",where:y,match:b,message:`The ${y} contains workflow configuration phrasing (${b}). Studio, mode, and stage are engine-managed \u2014 the next haiku_run_next call will run the SPA picker to let the user choose them. The intent's title and description should describe the substance of what to build or accomplish, not the workflow shape. Re-ask the user what they want to BUILD (not how to configure the workflow), then call haiku_intent_create again with that as the description.`}))}let a=e.studio_candidates;if(!Array.isArray(a)||a.length===0)return ye(JSON.stringify({error:"studio_candidates_required",message:'haiku_intent_create requires `studio_candidates`: the 2\u20134 studios that best fit what you\'re building. You have the description in context now \u2014 this is the moment to narrow the picker so the user isn\'t scrolling the whole registry. To recover: call `haiku_studio_list` (it returns every studio with its name + description), pick the 2\u20134 closest matches, then call haiku_intent_create again with `studio_candidates: ["", \u2026]` using the canonical `name` from that list. The picker still shows the rest behind a "Show all studios\u2026" expansion, so narrowing is never lossy.'}));let c=[];for(let y of a){if(typeof y!="string")continue;let b=si(y);b&&!c.includes(b.name)&&c.push(b.name)}if(c.length===0)return ye(JSON.stringify({error:"studio_candidates_unresolved",received:a,message:"None of the `studio_candidates` you passed resolve to a real studio. Call `haiku_studio_list` to see the valid studios, then retry with the canonical `name`, slug, or a known alias for the 2\u20134 that best fit."}));r||(r=i.toLowerCase().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,50).replace(/-$/,"")),r=rr(r,"intent slug");let u=e.state_file,l=Te(),d=nm(l,"intents",r),f=`haiku/${r}/main`;if(ve())try{let y=spe();Pt(f)||kI(r,y||void 0);let b="";try{b=m5("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}b!==f&&m5("git",["checkout",f],{encoding:"utf8",stdio:"pipe"})}catch(y){let b=y instanceof Error?y.message:String(y);return{content:[{type:"text",text:`Error: failed to switch to intent branch '${f}'. Stash or commit uncommitted changes, or remove the worktree holding '${f}' if it's checked out elsewhere, then retry. Raw git error: ${b}`}],isError:!0}}if(ztr(nm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));M_e(nm(d,"knowledge"),{recursive:!0}),M_e(nm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${TS()}"`,"status: active",`created_at: ${En()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` -`);if(D_e(nm(d,"intent.md"),m),Me(nm(d,"intent.md"),"studio_candidates",c),D_e(nm(d,".gitattributes"),["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution.","action-log.jsonl merge=union","write-audit.jsonl merge=union",""].join(` -`)),ve())try{let y=`.haiku/intents/${r}/.gitattributes`;m5("git",["add","--",y],{stdio:"pipe"}),m5("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",y],{stdio:"pipe"})}catch{}if(p){let y=nm(d,"knowledge");M_e(y,{recursive:!0}),D_e(nm(y,"CONVERSATION-CONTEXT.md"),`# Conversation Context +`);return r.human_write_require_rationale===!0}catch{return!1}}function Ltr(e){let t=Wv(e,"write-audit.jsonl");if(!Vv(t))return 1;try{return M_e(t,"utf8").split(` +`).filter(i=>i.trim()!=="").length+1}catch{return 1}}function Ftr(e){if(/^knowledge\//.test(e))return{allowed:!0,stageSegment:null};let t=e.match(/^stages\/([^/]+)\/(.+)$/);if(t){let n=t[1],r=t[2];if(/^knowledge\//.test(r)||/^discovery\//.test(r)||/^artifacts\//.test(r)||/^outputs\//.test(r))return{allowed:!0,stageSegment:n}}return{allowed:!1}}function jtr(e,t,n){let r=rv(e),i=N_e(t);if(Mtr(r)){let l=N_e(r);if(!l.startsWith(`${i}/`)&&l!==i)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' resolves outside the intent directory.`};r=SU(i,l)}let s=N_e(Wv(t,r));if(!s.startsWith(`${i}/`)&&s!==i)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' resolves outside the intent directory (path escape detected).`};let o=SU(i,s),a=C_e(s);if(Vv(a))try{let l=q0t(a),d=q0t(i);if(!l.startsWith(`${d}/`)&&l!==d)return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}' parent directory resolves outside the intent directory via symlink.`}}catch{return{ok:!1,code:"path_outside_tracked_surface",reason:"path_escape",path:e,message:`Path '${e}': could not resolve parent directory. Rejecting for safety.`}}let c=rv(o);for(let l of Utr)if(l.pattern.test(c))return{ok:!1,code:"path_outside_tracked_surface",reason:"deny_list_match",deny_rule:l.rule,path:c,message:`Cannot write to '${c}': ${l.message}`};let u=Ftr(c);if(!u.allowed)return{ok:!1,code:"path_outside_tracked_surface",reason:"no_allow_match",path:c,message:`Path '${c}' does not match any allowed tracked-surface pattern (knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/).`};if(u.stageSegment!==null){let l=u.stageSegment;if(!n.includes(l))return{ok:!1,code:"path_outside_tracked_surface",reason:"invalid_stage",path:c,message:`Path '${c}' references stage '${l}' which does not exist in this intent.`}}return{ok:!0,canonicalPath:c}}var B0t,Utr,z0t,G0t=v(()=>{"use strict";B0t=Re(Kt(),1);_6();k0();E6();YY();Ge();zi();vs();Utr=[{pattern:/(?:^|\/)units\/[^/]+\.md$/,rule:"stages/{stage}/units/*.md",message:"Unit files are lifecycle-managed. Use haiku_unit_write or haiku_unit_set."},{pattern:/(?:^|\/)feedback\/[^/]+\.md$/,rule:"stages/{stage}/feedback/*.md",message:"Feedback files are lifecycle-managed. Use haiku_feedback or haiku_feedback_write."},{pattern:/(?:^|\/)intent\.md$/,rule:"intent.md",message:"intent.md is workflow-engine-managed. Use haiku_intent_get or haiku_run_next."},{pattern:/(?:^|\/)state\.json$/,rule:"stages/{stage}/state.json",message:"state.json is workflow engine-internal. Use haiku_run_next or a dedicated MCP tool."},{pattern:/(?:^|\/)baseline\.json$/,rule:"stages/{stage}/baseline.json",message:"baseline.json is managed by the drift-detection gate. Direct writes desync SHA tracking."},{pattern:/(?:^|\/)drift-markers\.json$/,rule:"drift-markers.json",message:"drift-markers.json is an internal workflow-engine artifact. Do not write directly."},{pattern:/(?:^|\/)\.baseline-ack$/,rule:"stages/{stage}/.baseline-ack",message:".baseline-ack is the operator-only baseline-reset acknowledgement marker. Only /haiku:haiku-repair --confirm-baseline-reset can write it; the agent has no path. This is the V-11 defence against silent baseline laundering."},{pattern:/(?:^|\/)baseline-thrash\.json$/,rule:"stages/{stage}/baseline-thrash.json",message:"baseline-thrash.json is the V-11 baseline-corruption circuit breaker. Managed exclusively by the drift-detection gate."},{pattern:/(?:^|\/)write-audit\.jsonl$/,rule:"write-audit.jsonl",message:"write-audit.jsonl is append-only and managed exclusively by the haiku_human_write tool."},{pattern:/(?:^|\/)drift-assessments\//,rule:"drift-assessments/*",message:"drift-assessments/ entries are managed by the workflow engine's assessment pipeline."}];z0t={name:"haiku_human_write",description:"Write a file to the intent's tracked surface as a human-attributed write. Use when a user explicitly instructs the agent to write a file on their behalf (e.g. 'save this config to knowledge/'). The file is written atomically, attributed to the human via an action-log entry, and appended to the write-audit log. The baseline is NOT updated \u2014 the next drift-gate tick detects the change and dispatches manual_change_assessment. Allowed destinations: knowledge/, stages/{stage}/knowledge/, stages/{stage}/discovery/, stages/{stage}/artifacts/ (or outputs/ alias). Workflow-managed files (units, feedback, intent.md, state.json) are refused.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The slug of the active intent."},path:{type:"string",description:"Destination file path \u2014 intent-relative (e.g. knowledge/brand-guide.md) or absolute within the intent directory. Path is canonicalised (outputs/ \u2192 artifacts/) before validation."},content:{type:"string",description:"File content. UTF-8 string by default. Pass base64-encoded bytes and set content_encoding: 'base64' for binary files."},content_encoding:{type:"string",enum:["utf-8","base64"],description:"Encoding of the content field. Default: 'utf-8'."},claimed_author_id:{type:"string",description:"Self-reported identifier (username, email, UUID) of who the agent BELIEVES gave the instruction. Captured in the audit log as a CLAIM, not an authoritative identity \u2014 the server does not cross-check against any session or OS identity. Reviewers reading audit logs MUST treat this as 'what the agent said' rather than 'who did it'. (V-03 mitigation: renamed from `human_author_id` so consumers stop treating it as authoritative.)"},human_author_id:{type:"string",description:"DEPRECATED legacy alias for `claimed_author_id`. Accepted for backwards compatibility; the value is mirrored to `claimed_author_id` on persistence. New callers MUST use `claimed_author_id`."},rationale:{type:"string",description:"Short free-text explanation of why the human requested this write. Strongly recommended. Required when the plugin setting human_write_require_rationale is true."},user_instruction_excerpt:{type:"string",description:"The user's instruction as it appeared in chat (first 200 chars). Captured in the audit log for security review. Self-reported by the agent."},overwrite:{type:"boolean",description:"Whether to overwrite the file if it already exists. Default: true. When false, returns path_already_exists if the destination exists."},create_dirs:{type:"boolean",description:"Whether to create intermediate directories if they do not exist. Default: true. When false, returns parent_dir_missing if the parent directory is absent."}},required:["intent_slug","path","content"]},async handle(e){let t=e.intent_slug,n=e.path,r=e.content,i=e.content_encoding??"utf-8",s=e.claimed_author_id??e.human_author_id??null,o=e.rationale??null,a=e.user_instruction_excerpt??null,c=e.overwrite??!0,u=e.create_dirs??!0,l=Wg({intent:t});if(l)return l;let d=Te(),f=Wv(d,"intents",t),p=Wv(f,"intent.md");if(!Vv(p))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_found",message:`Intent '${t}' not found.`},null,2)}],isError:!0};if(S1(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_not_active",message:`Intent '${t}' is archived. Unarchive it first with haiku_intent_unarchive.`},null,2)}],isError:!0};if(y1(f))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"intent_locked",message:`Intent '${t}' is locked. Unlock it before issuing human-attributed writes.`},null,2)}],isError:!0};if(i!=="utf-8"&&i!=="base64")return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"invalid_content_encoding",message:`Unrecognized content_encoding '${i}'. Valid values: 'utf-8', 'base64'.`},null,2)}],isError:!0};let h;if(i==="base64"?h=Buffer.from(r,"base64"):h=Buffer.from(r,"utf8"),h.length===0)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"empty_content",message:"Empty content is not permitted. The file must have at least one byte."},null,2)}],isError:!0};if(Dtr(d)&&(!o||o.trim()===""))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"rationale_required",message:"Plugin settings require a rationale for human-attributed writes. Provide a short explanation of why the human requested this write in the 'rationale' field.",config_key:"human_write_require_rationale"},null,2)}],isError:!0};let m=Uyt(f),g=jtr(n,f,m);if(!g.ok)return{content:[{type:"text",text:JSON.stringify({ok:!1,error:g.code,path:g.path,reason:g.reason,...g.reason==="deny_list_match"&&g.deny_rule?{deny_rule:g.deny_rule}:{},message:g.message},null,2)}],isError:!0};let{canonicalPath:y}=g,b=Wv(f,y),S=C_e(b);if(!c&&Vv(b)){let F="";try{let{createHash:V}=await import("node:crypto"),U=M_e(b);F=V("sha256").update(U).digest("hex")}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"path_already_exists",path:y,existing_sha:F,message:`Path '${y}' already exists and overwrite is false. Set overwrite: true to replace it.`},null,2)}],isError:!0}}if(!u&&!Vv(S))return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"parent_dir_missing",path:y,missing_dir:SU(f,S),message:`Parent directory '${SU(f,S)}' does not exist and create_dirs is false.`},null,2)}],isError:!0};let E=[];if(u){let F=S,V=[];for(;!Vv(F);){V.unshift(F);let U=C_e(F);if(U===F)break;F=U}for(let U of V)E.push(SU(f,U))}let _=Otr("sha256").update(h).digest("hex"),T=process.pid,R=Ptr(6).toString("hex"),A=Wv(f,`.hwm-tmp-${T}-${R}.tmp`);try{await Ctr(A,h)}catch(F){return H0(A),{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:y,message:`Failed to write tempfile for '${y}': ${String(F)}`},null,2)}],isError:!0}}let x=pv(f,S,A,b);if(!x.ok){H0(A);let F=x.code==="parent_chain_contains_symlink"||x.code==="parent_chain_escape";return{content:[{type:"text",text:JSON.stringify({ok:!1,error:F?"path_outside_tracked_surface":"disk_write_failed",path:y,reason:F?x.code:void 0,message:F?`Refused to write '${y}': parent directory chain failed symlink-safety check (${x.code}).`:`Failed to write '${y}': ${x.detail}`},null,2)}],isError:!0}}let k=y.match(/^stages\/([^/]+)\//),P=k===null,N;try{N=P?b1(f):Lb(f,k[1])}catch(F){if(F instanceof Gd){try{Ntr(b)}catch{}return{content:[{type:"text",text:JSON.stringify({ok:!1,error:"disk_write_failed",path:y,reason:"tick_persist_failed",message:`Failed to persist tick counter for '${y}': ${F.message}`},null,2)}],isError:!0}}throw F}let C=P?"intent":"stage",L=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),G=Ltr(f),W=Z1(N,G),$=DY(d);await Mv(f,N,{entry_type:"human_write",path:y,sha:_,author_class:"human-via-mcp",timestamp:L,claimed_author_id:s,human_author_id:s,entry_id:W,tick_counter:N,tick_scope:C});let q=!1,Q;if($)Q="drift_detection_disabled";else{let F=a?oRt(a):null;q=(await J1(f,{timestamp:L,entry_id:W,path:y,sha:_,author_class:"human-via-mcp",claimed_author_id:s,human_author_id:s,rationale:o,user_instruction_excerpt:F,tick_counter:N,session_id:null,overwrite:c,dirs_created:E,audit_log_appended:!0,tick_scope:C})).ok}let B={ok:!0,path:y,sha:_,author_class:"human-via-mcp",timestamp:L,claimed_author_id:s,human_author_id:s,dirs_created:E,action_log_entry_id:W,audit_log_appended:q};return Q&&(B.reason=Q),ye(JSON.stringify(B,null,2))}}});import{existsSync as Htr,readFileSync as qtr}from"node:fs";import{join as Btr}from"node:path";var V0t,W0t=v(()=>{"use strict";yr();Ge();zi();vs();V0t={name:"haiku_intent_archive",description:"Archive an intent \u2014 sets the `archived: true` frontmatter flag so the intent is hidden from default list views. Reversible via haiku_intent_unarchive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to archive"}},required:["intent"]},handle(e){let t=e.intent,n=Te(),r=Btr(n,"intents",t,"intent.md");if(!Htr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let{data:i}=re(qtr(r,"utf8"));if(i.archived===!0)return ye(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is already archived.`},null,2));let s=gr(t,void 0);return s.ok?(Me(r,"archived",!0),wt(`haiku: archive intent ${t}`),ye(JSON.stringify({action:"intent_archived",slug:t,path:r,message:`Intent '${t}' has been archived. Call haiku_intent_unarchive to restore it.`},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed for intent archive '${t}' \u2014 ${s.message}. Resolve manually and retry.`}],isError:!0}}}});import{execFileSync as g5}from"node:child_process";import{existsSync as ztr,mkdirSync as D_e,writeFileSync as L_e}from"node:fs";import{join as nm}from"node:path";function K0t(e){let t=e.trim();if(!t)return null;let n="quick|continuous|discrete|hybrid|autopilot",r="inception|design|product|development|operations|security",i=[{re:new RegExp(`\\b(?:in|using|use|with|the|a)\\s+(?:${n})\\s+mode\\b`,"i"),label:"mode reference"},{re:new RegExp(`\\b(?:${n})-mode\\b`,"i"),label:"mode reference"},{re:new RegExp(`\\bonly\\s+(?:in|with|the|a)?\\s*(?:${r})\\s+(?:stage|phase)\\b`,"i"),label:"stage / phase restriction"},{re:new RegExp(`\\bonly\\s+(?:run|use|do|in|with)\\s+(?:the\\s+)?(?:${r})\\s+(?:stage|phase)?\\b`,"i"),label:"stage / phase restriction"},{re:new RegExp(`\\bin\\s+(?:the\\s+)?(?:${r})\\s+(?:stage|phase)\\b(?!\\s+of\\b)`,"i"),label:"stage / phase reference"},{re:/\b(?:use|using)\s+(?:the\s+)?\w+\s+studio\b/i,label:"studio reference"},{re:/\b(?:studio|mode|stages?)\s*:\s*\w+/i,label:"raw frontmatter in description"}];for(let{re:s,label:o}of i){let a=t.match(s);if(a)return`${o}: "${a[0]}"`}return null}var Y0t,Z0t=v(()=>{"use strict";yr();qfe();l1();ji();uo();Ge();Kn();vo();f_();zi();vs();Y0t={name:"haiku_intent_create",description:"Create a new intent. Returns the slug + path. Title is required (crisp 3\u20138 word summary, \u226480 chars, single line). If the user started the intent from a referenced file (a spec, a doc, a screenshot, a path like `~/Downloads/spec.pdf`, or a dragged-in attachment), READ it and synthesize its relevant substance directly into `description` and `context` \u2014 NEVER pass the file path in any field. An absolute path leaks the user's machine layout and the external file won't travel with the intent; the intent must stand on its own from its own text (capture what the file says, not where it lives). Studio, mode, and (for quick) stage are selected by the engine on the next haiku_run_next call \u2014 the tick blocks on the SPA picker until the user chooses, then continues to real workflow actions. The agent does NOT call select_* tools directly; just call haiku_run_next after creating the intent. **`studio_candidates` is REQUIRED** \u2014 the 2\u20134 studios from `haiku_studio_list` that best fit what you just described. You have the description in context right now; this is the moment to narrow the picker so the user isn't scrolling the whole registry. The picker presents your shortlist first and tucks the rest behind a 'Show all studios\u2026' expansion, so narrowing is never lossy. If you call without it, the tool tells you to fetch `haiku_studio_list` and retry. Always creates a fresh intent \u2014 `/haiku:haiku-start` does not resume; use `/haiku:haiku-pickup` for that.",inputSchema:FL,handle(e){let t=e.description,n=e.title,r=e.slug;if(!n||typeof n!="string")return ye(JSON.stringify({error:"missing_title",message:'haiku_intent_create requires a `title` parameter \u2014 a crisp 3\u20138 word summary (\u226480 chars, single line, no trailing period). Write it deliberately; do NOT pass a truncated description. Example: title: "Add archivable intents".'}));if(/[\r\n]/.test(n))return ye(JSON.stringify({error:"invalid_title",message:"`title` must be a single line \u2014 got newlines. Rewrite as a crisp 3\u20138 word summary (\u226480 chars) and call again."}));let i=n.trim().replace(/\s+/g," ");if(g1(i))return ye(JSON.stringify({error:"invalid_title",message:`\`title\` must be non-empty and \u226480 chars after trimming. Got ${i.length} chars. Rewrite as a 3\u20138 word summary and call again.`}));let s=K0t(i),o=K0t(t||"");if(s||o){let y=s&&o?"title and description":s?"title":"description",b=s||o;return ye(JSON.stringify({error:"intent_create_meta_pollution",where:y,match:b,message:`The ${y} contains workflow configuration phrasing (${b}). Studio, mode, and stage are engine-managed \u2014 the next haiku_run_next call will run the SPA picker to let the user choose them. The intent's title and description should describe the substance of what to build or accomplish, not the workflow shape. Re-ask the user what they want to BUILD (not how to configure the workflow), then call haiku_intent_create again with that as the description.`}))}let a=e.studio_candidates;if(!Array.isArray(a)||a.length===0)return ye(JSON.stringify({error:"studio_candidates_required",message:'haiku_intent_create requires `studio_candidates`: the 2\u20134 studios that best fit what you\'re building. You have the description in context now \u2014 this is the moment to narrow the picker so the user isn\'t scrolling the whole registry. To recover: call `haiku_studio_list` (it returns every studio with its name + description), pick the 2\u20134 closest matches, then call haiku_intent_create again with `studio_candidates: ["", \u2026]` using the canonical `name` from that list. The picker still shows the rest behind a "Show all studios\u2026" expansion, so narrowing is never lossy.'}));let c=[];for(let y of a){if(typeof y!="string")continue;let b=si(y);b&&!c.includes(b.name)&&c.push(b.name)}if(c.length===0)return ye(JSON.stringify({error:"studio_candidates_unresolved",received:a,message:"None of the `studio_candidates` you passed resolve to a real studio. Call `haiku_studio_list` to see the valid studios, then retry with the canonical `name`, slug, or a known alias for the 2\u20134 that best fit."}));r||(r=i.toLowerCase().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,50).replace(/-$/,"")),r=rr(r,"intent slug");let u=e.state_file,l=Te(),d=nm(l,"intents",r),f=`haiku/${r}/main`;if(ve())try{let y=ope();Pt(f)||kI(r,y||void 0);let b="";try{b=g5("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}b!==f&&g5("git",["checkout",f],{encoding:"utf8",stdio:"pipe"})}catch(y){let b=y instanceof Error?y.message:String(y);return{content:[{type:"text",text:`Error: failed to switch to intent branch '${f}'. Stash or commit uncommitted changes, or remove the worktree holding '${f}' if it's checked out elsewhere, then retry. Raw git error: ${b}`}],isError:!0}}if(ztr(nm(d,"intent.md")))return ye(JSON.stringify({error:"intent_exists",slug:r,message:`Intent '${r}' already exists`}));D_e(nm(d,"knowledge"),{recursive:!0}),D_e(nm(d,"stages"),{recursive:!0});let p=e.context,h=(t||"").trim(),m=["---",`title: "${i.replace(/"/g,'\\"')}"`,'studio: ""',`plugin_version: "${TS()}"`,"status: active",`created_at: ${En()}`,"---","",`# ${i}`,"",...h?[h,""]:[],...p?[p,""]:[]].join(` +`);if(L_e(nm(d,"intent.md"),m),Me(nm(d,"intent.md"),"studio_candidates",c),L_e(nm(d,".gitattributes"),["# Engine-owned append-only event streams. `merge=union` tells git","# to concatenate both sides on conflict \u2014 these files are pure","# event streams and never benefit from manual conflict resolution.","action-log.jsonl merge=union","write-audit.jsonl merge=union",""].join(` +`)),ve())try{let y=`.haiku/intents/${r}/.gitattributes`;g5("git",["add","--",y],{stdio:"pipe"}),g5("git",["commit","-m",`haiku: seed .gitattributes (merge=union for event streams) for ${r}`,"--",y],{stdio:"pipe"})}catch{}if(p){let y=nm(d,"knowledge");D_e(y,{recursive:!0}),L_e(nm(y,"CONVERSATION-CONTEXT.md"),`# Conversation Context ${p} -`)}wt(`haiku: create intent ${r}`);let g="";if(ve()&&qD()!==null)try{let y=nm(d,"intent.md"),b=fpe({slug:r,title:i?`H\xB7AI\xB7K\xB7U: ${i}`:`H\xB7AI\xB7K\xB7U: ${r}`,body:t?`${t} +`)}wt(`haiku: create intent ${r}`);let g="";if(ve()&&BD()!==null)try{let y=nm(d,"intent.md"),b=ppe({slug:r,title:i?`H\xB7AI\xB7K\xB7U: ${i}`:`H\xB7AI\xB7K\xB7U: ${r}`,body:t?`${t} --- @@ -1321,38 +1321,38 @@ Draft PR opened: ${b.createdUrl}`):b.compareUrl?(Me(y,"draft_pr_status","failed" The engine couldn't open the draft PR via the CLI (${b.prError??b.pushError??"unknown"}). Open one manually: ${b.compareUrl}`):(Me(y,"draft_pr_status","failed"),g=` -The engine couldn't open a draft PR: ${b.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=yg(f);!S.ok&&S.error&&console.error(`[haiku_intent_create] push of ${f} after draft-PR stamp failed: ${S.error}`)}catch(S){console.error(`[haiku_intent_create] push after stamp threw: ${S instanceof Error?S.message:String(S)}`)}}catch(y){console.error(`[haiku_intent_create] draft-PR open threw: ${y instanceof Error?y.message:String(y)}`)}return Ke("haiku.intent.created",{intent:r}),u&&qi(u,{event:"intent_created",intent:r}),ye(JSON.stringify({action:"intent_created",slug:r,path:`.haiku/intents/${r}`,message:`Intent '${r}' created. Call haiku_run_next { intent: "${r}" } to begin.${g}`},null,2))}}});import{execFileSync as L_e}from"node:child_process";import{existsSync as J0t,readFileSync as X0t,rmSync as Gtr}from"node:fs";import{join as U_e}from"node:path";var Q0t,$0t=v(()=>{"use strict";yr();Kd();Xb();Ge();zi();vs();Q0t={name:"haiku_intent_reset",description:"Reset an intent \u2014 destructively delete all stage branches, the intent main branch, and the intent directory, then return instructions to recreate the intent with the same title/description/context. Requires user confirmation via the SPA picker.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to reset"}},required:["intent"]},async handle(e,t){let n=e.intent,r=Te(),i=U_e(r,"intents",n),s=U_e(i,"intent.md");if(!J0t(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=X0t(s,"utf8"),{data:a,body:c}=re(o),u=a.title||"",l=c.replace(/^#\s+.*\n+/,"").trim()||u,d=await Ju({intentSlug:n,kind:"confirm",title:`Reset intent "${n}"?`,prompt:`This will DELETE all state (stages, units, knowledge) and recreate the intent with the same description: "${l}". This cannot be undone.`,options:[{id:"reset",label:"Yes, reset",description:"Wipe state and recreate the intent"},{id:"cancel",label:"Cancel",description:"Keep the intent as-is"}],signal:t});if(d.timedOut||!d.selection||d.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:"Reset cancelled."}));let f="",p=U_e(i,"knowledge","CONVERSATION-CONTEXT.md");J0t(p)&&(f=X0t(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(ve()){try{let y=Zo(),b="";try{b=L_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(y&&b!==y)try{L_e("git",["checkout",y],{encoding:"utf8",stdio:"pipe"})}catch(S){try{L_e("git",["checkout",`${y}^0`],{encoding:"utf8",stdio:"pipe"})}catch(E){let _=S instanceof Error?S.message:String(S),T=E instanceof Error?E.message:String(E);throw new Error(`could not move HEAD off the haiku branches: \`git checkout ${y}\` failed (${_.split(` +The engine couldn't open a draft PR: ${b.message}`),wt(`haiku: stamp draft PR status for ${r}`);try{let S=yg(f);!S.ok&&S.error&&console.error(`[haiku_intent_create] push of ${f} after draft-PR stamp failed: ${S.error}`)}catch(S){console.error(`[haiku_intent_create] push after stamp threw: ${S instanceof Error?S.message:String(S)}`)}}catch(y){console.error(`[haiku_intent_create] draft-PR open threw: ${y instanceof Error?y.message:String(y)}`)}return Ke("haiku.intent.created",{intent:r}),u&&qi(u,{event:"intent_created",intent:r}),ye(JSON.stringify({action:"intent_created",slug:r,path:`.haiku/intents/${r}`,message:`Intent '${r}' created. Call haiku_run_next { intent: "${r}" } to begin.${g}`},null,2))}}});import{execFileSync as U_e}from"node:child_process";import{existsSync as J0t,readFileSync as X0t,rmSync as Gtr}from"node:fs";import{join as F_e}from"node:path";var Q0t,$0t=v(()=>{"use strict";yr();Kd();Xb();Ge();zi();vs();Q0t={name:"haiku_intent_reset",description:"Reset an intent \u2014 destructively delete all stage branches, the intent main branch, and the intent directory, then return instructions to recreate the intent with the same title/description/context. Requires user confirmation via the SPA picker.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to reset"}},required:["intent"]},async handle(e,t){let n=e.intent,r=Te(),i=F_e(r,"intents",n),s=F_e(i,"intent.md");if(!J0t(s))return{content:[{type:"text",text:`Intent '${n}' not found.`}],isError:!0};let o=X0t(s,"utf8"),{data:a,body:c}=re(o),u=a.title||"",l=c.replace(/^#\s+.*\n+/,"").trim()||u,d=await Ju({intentSlug:n,kind:"confirm",title:`Reset intent "${n}"?`,prompt:`This will DELETE all state (stages, units, knowledge) and recreate the intent with the same description: "${l}". This cannot be undone.`,options:[{id:"reset",label:"Yes, reset",description:"Wipe state and recreate the intent"},{id:"cancel",label:"Cancel",description:"Keep the intent as-is"}],signal:t});if(d.timedOut||!d.selection||d.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:"Reset cancelled."}));let f="",p=F_e(i,"knowledge","CONVERSATION-CONTEXT.md");J0t(p)&&(f=X0t(p,"utf8").replace(/^# Conversation Context\n\n/,""));let m=re(o).data.studio||"";if(ve()){try{let y=Zo(),b="";try{b=U_e("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(y&&b!==y)try{U_e("git",["checkout",y],{encoding:"utf8",stdio:"pipe"})}catch(S){try{U_e("git",["checkout",`${y}^0`],{encoding:"utf8",stdio:"pipe"})}catch(E){let _=S instanceof Error?S.message:String(S),T=E instanceof Error?E.message:String(E);throw new Error(`could not move HEAD off the haiku branches: \`git checkout ${y}\` failed (${_.split(` `)[0]}) AND detached fallback \`git checkout ${y}^0\` also failed (${T.split(` -`)[0]}). Commit / stash / clean any uncommitted changes here and retry.`)}}}catch(y){let b=y instanceof Error?y.message:String(y);return{content:[{type:"text",text:`Error: failed to move HEAD off the haiku branches before resetting intent '${n}'. ${b}`}],isError:!0}}if(WD(n),m){let y=Fs(m);for(let b of y){let S=`haiku/${n}/${b}`;Pt(S)&&Sb(n,b)}}let g=`haiku/${n}/main`;Pt(g)&&KD(g)}return Gtr(i,{recursive:!0,force:!0}),wt(`haiku: reset intent ${n} (deleted)`),ye(JSON.stringify({action:"intent_reset",slug:n,title:u,description:l,context:f,message:`Intent '${n}' has been reset. Call haiku_intent_create { title: "${u.replace(/"/g,'\\"')}", description: "${l.replace(/"/g,'\\"').replace(/\n/g,"\\n")}", slug: "${n}"${f?', context: ""':""}, studio_candidates: ["", \u2026] } to recreate it. \`studio_candidates\` is required \u2014 the 2\u20134 studios that best fit, from \`haiku_studio_list\`; if you omit it the recreate call is rejected with instructions to fetch the list and retry.`},null,2))}}});import{existsSync as Vtr,readFileSync as Wtr,writeFileSync as Ktr}from"node:fs";import{join as Ytr}from"node:path";var F_e,ext,txt=v(()=>{"use strict";F_e=Re(Kt(),1);yr();vx();ji();uo();Ge();zi();vs();ext={name:"haiku_intent_seal",description:"Stamp `verified_at` on intent.md frontmatter after the pre-intent substance verifier passes. Verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past the pre-intent `elaborate_review` gate. Idempotent (no-op when already verified).",inputSchema:T0,handle(e){let t=Be(e,Fge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=Tx({kind:"intent_elaborate",slug:n},r);if(!s.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_intent_seal",reason:s.reason,message:s.reason==="missing"?`No pending intent-elaboration verifier nonce for '${n}'. The cursor only mints a nonce when emitting the pre-intent elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Intent-elaboration verifier nonce for '${n}' does not match the cursor's pending value.`},null,2)}],isError:!0};let o=Te(),a=Ytr(o,"intents",n,"intent.md");if(!Vtr(a))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_intent_seal",message:`Intent '${n}' not found at ${a}.`},null,2)}],isError:!0};let c=gr(n,void 0);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for intent seal '${n}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};let u=Wtr(a,"utf8"),l=(0,F_e.default)(u),d=l.data;if(typeof d.verified_at=="string"&&d.verified_at)return ye(JSON.stringify({action:"noop",slug:n,path:a,verified_at:d.verified_at,message:`Intent '${n}' is already verified.`},null,2));let f=new Date().toISOString(),p={...d,verified_at:f};return i.trim()&&(p.verified_notes=i.trim()),Ktr(a,F_e.default.stringify(l.content,p)),wt(`haiku: seal pre-intent elaboration for ${n}`),ye(JSON.stringify({action:"intent_sealed",slug:n,path:a,verified_at:f,...i.trim()?{verified_notes:i.trim()}:{},message:`Sealed pre-intent elaboration for '${n}'. The cursor will walk into the first stage's elaborate gate on the next tick.`},null,2))}}});import{existsSync as Ztr,readFileSync as Jtr,writeFileSync as Xtr}from"node:fs";import{join as Qtr}from"node:path";var j_e,nxt,rxt=v(()=>{"use strict";j_e=Re(Kt(),1);yr();Ge();zi();vs();nxt={name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]},handle(e){let t=e.intent,n=Te(),r=Qtr(n,"intents",t,"intent.md");if(!Ztr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=Jtr(r,"utf8"),s=(0,j_e.default)(i);if(s.data.archived!==!0)return ye(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is not archived.`},null,2));let o=gr(t,void 0);if(!o.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for intent unarchive '${t}' \u2014 ${o.message}. Resolve manually and retry.`}],isError:!0};let{archived:a,...c}=s.data;return Xtr(r,j_e.default.stringify(s.content,c)),wt(`haiku: unarchive intent ${t}`),ye(JSON.stringify({action:"intent_unarchived",slug:t,path:r,message:`Intent '${t}' has been unarchived.`},null,2))}}});import{createHash as $tr}from"node:crypto";import{existsSync as ixt,readFileSync as sxt}from"node:fs";function enr(e){let t=e.match(/^(.*\/\.haiku\/intents\/[^/]+)\/(.+)$/);if(!t)return null;let n=t[2],r=n.match(/^stages\/([^/]+)\//);return{intentDir:t[1],pathRel:n,stageOwner:r?r[1]:null}}function tnr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function nnr(e){let t=dEe(e);if(!ixt(t))return 1;try{return sxt(t,"utf8").split(` -`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function g5(e){let t=enr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!tnr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!ixt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=$tr("sha256").update(sxt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?Lb(t.intentDir,t.stageOwner):Lb(t.intentDir),i=nnr(t.intentDir),s=String(i).padStart(2,"0"),o=`AGW-${r}-${s}`,a=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),c=t.stageOwner?"stage":"intent",u=rv(t.pathRel);return await Mv(t.intentDir,r,{entry_type:"agent_write",path:u,sha:n,author_class:"agent",timestamp:a,claimed_author_id:null,human_author_id:null,entry_id:o,tick_counter:r,tick_scope:c}),{stamped:!0,pathRel:u,sha:n,tickCounter:r,tickScope:c}}var H_e=v(()=>{"use strict";E6();w0()});import{realpathSync as oxt}from"node:fs";import{isAbsolute as rnr,join as axt}from"node:path";function q_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var cxt,uxt=v(()=>{"use strict";H_e();Ge();zi();cxt={name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: `stages//{artifacts,outputs,knowledge,discovery}/...` and intent-root `knowledge/...`. Workflow-managed paths (`units/`, `feedback/`, `state.json`, `intent.md`) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. `stages/design/artifacts/spec.md`) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]},async handle(e){let t=e.intent_slug,n=e.path;if(typeof t!="string"||t.trim()==="")return q_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return q_e("missing_path","`path` is required and must be a non-empty string.");let r=Wg({intent:t});if(r)return r;let i=Te(),s=axt(i,"intents",t),o=rnr(n)?n:axt(s,n),a=(()=>{try{return oxt(s)}catch{return s}})(),c=(()=>{try{return oxt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return q_e("path_outside_intent",`Absolute path '${n}' resolves outside the intent dir for slug '${t}'. Either pass an intent-relative path or an absolute path inside ${a}/.`);let u=await g5(o);if(!u.stamped){let l={not_in_intent_dir:`Path is not inside an intent directory (resolved: ${o}). Only writes inside .haiku/intents// get tracked.`,not_in_tracked_surface:`Path is inside the intent dir but not in the drift-tracked surface (resolved: ${o}). Tracked locations are stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/...`,file_missing:`File does not exist on disk (resolved: ${o}). Did the write succeed?`,read_failed:`Could not read file to compute SHA (resolved: ${o}).`};return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!1,reason:u.reason,message:l[u.reason??""]??"Stamp skipped for unknown reason."},null,2)}]}}return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!0,path:u.pathRel,sha:u.sha,tick_counter:u.tickCounter,tick_scope:u.tickScope,next_step:"The next `haiku_run_next` tick will see the agent_write entry and silently update the baseline \u2014 no manual_change_assessment finding for this path."},null,2)}]}}}});var lxt,dxt,fxt=v(()=>{"use strict";hv();ji();uo();vo();zi();vs();lxt="Your work here is done \u2014 terminate with your one-line findings summary. Do NOT call haiku_run_next; your parent ticks the workflow when the whole review wave closes.",dxt={name:"haiku_review_stamp",description:"Review/approval subagent CLOSURE. Records your own `reviews.` / `approvals.` witness and returns a terminal ack \u2014 call this INSTEAD of `haiku_run_next` when you finish reviewing. `kind: review|approval` both require `stage`. Returns `{ ok: true, stamped: [...], skipped: [...] }` (skipped = units you flagged with an open finding; they stay un-stamped so the cursor reroutes through them on close), or `{ ok: true, found: false }` when nothing was pending for your role (already stamped \u2014 clean no-op). Never walks the cursor and never returns a fix dispatch, so it can't trip the inter-tick loop guard. NOTE: intent-completion review agents (`intent_review` actions) do NOT call this tool \u2014 they terminate directly; the parent drain handles their stamp.",inputSchema:h0,async handle(e){let t=Be(e,Ige,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=Dye(n,r,s,i);return Ke("haiku.review.stamped",{intent:n,kind:r,role:i,stage:s,found:String(o.found),stamped_count:String(o.stamped.length),skipped_count:String(o.skipped.length)}),ye(JSON.stringify({ok:!0,intent:n,kind:r,role:i,stage:s,found:o.found,stamped:o.stamped,skipped:o.skipped,message:o.found?`Recorded ${r} witness for '${i}' on stage '${s}': ${o.stamped.length} unit(s) stamped${o.skipped.length>0?`, ${o.skipped.length} skipped (you filed open findings against them \u2014 they re-review after close)`:""}. ${lxt}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${lxt}`}))}}});import{appendFileSync as inr}from"node:fs";function y5(e){return Date.now()-e>pxt}function S5(e,t,n,r){let i=Date.now()-n;return rm(`${e} (wall-deadline ${pxt}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function Ix(e){let t=e;return JSON.stringify({action:t.action??null,stage:t.stage??null,unit:t.unit??null,feedback_id:t.feedback_id??null,role:t.role??null})}function snr(e){let t=`[${new Date().toISOString()}] ${e} -`;try{let n=Oft("loop-guards.log");return inr(n,t),n}catch{return null}}function rm(e,t,n,r){let i=n,s=`loop=${e} reason=${r} iterations=${t} action=${String(i.action??"?")}`+(i.stage?` stage=${String(i.stage)}`:"")+(i.unit?` unit=${String(i.unit)}`:"")+(i.feedback_id?` fb=${String(i.feedback_id)}`:"");console.error(`[haiku_run_next] loop guard fired: ${s}`);let o=snr(`loop guard fired: ${s}`),a=o?` +`)[0]}). Commit / stash / clean any uncommitted changes here and retry.`)}}}catch(y){let b=y instanceof Error?y.message:String(y);return{content:[{type:"text",text:`Error: failed to move HEAD off the haiku branches before resetting intent '${n}'. ${b}`}],isError:!0}}if(KD(n),m){let y=Fs(m);for(let b of y){let S=`haiku/${n}/${b}`;Pt(S)&&Sb(n,b)}}let g=`haiku/${n}/main`;Pt(g)&&YD(g)}return Gtr(i,{recursive:!0,force:!0}),wt(`haiku: reset intent ${n} (deleted)`),ye(JSON.stringify({action:"intent_reset",slug:n,title:u,description:l,context:f,message:`Intent '${n}' has been reset. Call haiku_intent_create { title: "${u.replace(/"/g,'\\"')}", description: "${l.replace(/"/g,'\\"').replace(/\n/g,"\\n")}", slug: "${n}"${f?', context: ""':""}, studio_candidates: ["", \u2026] } to recreate it. \`studio_candidates\` is required \u2014 the 2\u20134 studios that best fit, from \`haiku_studio_list\`; if you omit it the recreate call is rejected with instructions to fetch the list and retry.`},null,2))}}});import{existsSync as Vtr,readFileSync as Wtr,writeFileSync as Ktr}from"node:fs";import{join as Ytr}from"node:path";var j_e,ext,txt=v(()=>{"use strict";j_e=Re(Kt(),1);yr();Rx();ji();uo();Ge();zi();vs();ext={name:"haiku_intent_seal",description:"Stamp `verified_at` on intent.md frontmatter after the pre-intent substance verifier passes. Verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past the pre-intent `elaborate_review` gate. Idempotent (no-op when already verified).",inputSchema:T0,handle(e){let t=Be(e,jge,"haiku_intent_seal");if(t)return t;let n=e.intent,r=e.nonce,i=e.notes??"",s=vx({kind:"intent_elaborate",slug:n},r);if(!s.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_intent_seal",reason:s.reason,message:s.reason==="missing"?`No pending intent-elaboration verifier nonce for '${n}'. The cursor only mints a nonce when emitting the pre-intent elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Intent-elaboration verifier nonce for '${n}' does not match the cursor's pending value.`},null,2)}],isError:!0};let o=Te(),a=Ytr(o,"intents",n,"intent.md");if(!Vtr(a))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_intent_seal",message:`Intent '${n}' not found at ${a}.`},null,2)}],isError:!0};let c=gr(n,void 0);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for intent seal '${n}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};let u=Wtr(a,"utf8"),l=(0,j_e.default)(u),d=l.data;if(typeof d.verified_at=="string"&&d.verified_at)return ye(JSON.stringify({action:"noop",slug:n,path:a,verified_at:d.verified_at,message:`Intent '${n}' is already verified.`},null,2));let f=new Date().toISOString(),p={...d,verified_at:f};return i.trim()&&(p.verified_notes=i.trim()),Ktr(a,j_e.default.stringify(l.content,p)),wt(`haiku: seal pre-intent elaboration for ${n}`),ye(JSON.stringify({action:"intent_sealed",slug:n,path:a,verified_at:f,...i.trim()?{verified_notes:i.trim()}:{},message:`Sealed pre-intent elaboration for '${n}'. The cursor will walk into the first stage's elaborate gate on the next tick.`},null,2))}}});import{existsSync as Ztr,readFileSync as Jtr,writeFileSync as Xtr}from"node:fs";import{join as Qtr}from"node:path";var H_e,nxt,rxt=v(()=>{"use strict";H_e=Re(Kt(),1);yr();Ge();zi();vs();nxt={name:"haiku_intent_unarchive",description:"Unarchive an intent \u2014 clears the `archived` frontmatter flag so the intent reappears in default list views. Reversible via haiku_intent_archive. Does not prompt for confirmation.",inputSchema:{type:"object",properties:{intent:{type:"string",description:"Intent slug to unarchive"}},required:["intent"]},handle(e){let t=e.intent,n=Te(),r=Qtr(n,"intents",t,"intent.md");if(!Ztr(r))return{content:[{type:"text",text:`Intent '${t}' not found.`}],isError:!0};let i=Jtr(r,"utf8"),s=(0,H_e.default)(i);if(s.data.archived!==!0)return ye(JSON.stringify({action:"noop",slug:t,path:r,message:`Intent '${t}' is not archived.`},null,2));let o=gr(t,void 0);if(!o.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for intent unarchive '${t}' \u2014 ${o.message}. Resolve manually and retry.`}],isError:!0};let{archived:a,...c}=s.data;return Xtr(r,H_e.default.stringify(s.content,c)),wt(`haiku: unarchive intent ${t}`),ye(JSON.stringify({action:"intent_unarchived",slug:t,path:r,message:`Intent '${t}' has been unarchived.`},null,2))}}});import{createHash as $tr}from"node:crypto";import{existsSync as ixt,readFileSync as sxt}from"node:fs";function enr(e){let t=e.match(/^(.*\/\.haiku\/intents\/[^/]+)\/(.+)$/);if(!t)return null;let n=t[2],r=n.match(/^stages\/([^/]+)\//);return{intentDir:t[1],pathRel:n,stageOwner:r?r[1]:null}}function tnr(e){return!!(/^stages\/[^/]+\/(?:artifacts|outputs|knowledge|discovery)\//.test(e)||/^knowledge\//.test(e))}function nnr(e){let t=fEe(e);if(!ixt(t))return 1;try{return sxt(t,"utf8").split(` +`).filter(n=>n.trim()!=="").length+1}catch{return 1}}async function y5(e){let t=enr(e);if(!t)return{stamped:!1,reason:"not_in_intent_dir"};if(!tnr(t.pathRel))return{stamped:!1,reason:"not_in_tracked_surface"};if(!ixt(e))return{stamped:!1,reason:"file_missing"};let n;try{n=$tr("sha256").update(sxt(e)).digest("hex")}catch{return{stamped:!1,reason:"read_failed"}}let r=t.stageOwner?Lb(t.intentDir,t.stageOwner):Lb(t.intentDir),i=nnr(t.intentDir),s=String(i).padStart(2,"0"),o=`AGW-${r}-${s}`,a=new Date().toISOString().replace(/\.\d{3}Z$/,"Z"),c=t.stageOwner?"stage":"intent",u=rv(t.pathRel);return await Mv(t.intentDir,r,{entry_type:"agent_write",path:u,sha:n,author_class:"agent",timestamp:a,claimed_author_id:null,human_author_id:null,entry_id:o,tick_counter:r,tick_scope:c}),{stamped:!0,pathRel:u,sha:n,tickCounter:r,tickScope:c}}var q_e=v(()=>{"use strict";_6();k0()});import{realpathSync as oxt}from"node:fs";import{isAbsolute as rnr,join as axt}from"node:path";function B_e(e,t){return{content:[{type:"text",text:JSON.stringify({ok:!1,code:e,message:t},null,2)}],isError:!0}}var cxt,uxt=v(()=>{"use strict";q_e();Ge();zi();cxt={name:"haiku_record_agent_write",description:"Record an agent_write entry in the intent's action log for a tracked-surface file the agent just wrote via the harness's Write/Edit tool. Use only on harnesses that don't fire PostToolUse hooks (i.e., NOT Claude Code \u2014 on CC, the `stamp-agent-write` hook does this automatically). The next drift-gate tick will silently absorb the change into the baseline so the agent isn't asked to classify its own deliberate writes. Tracked-surface paths: `stages//{artifacts,outputs,knowledge,discovery}/...` and intent-root `knowledge/...`. Workflow-managed paths (`units/`, `feedback/`, `state.json`, `intent.md`) and paths outside the intent dir don't need (and won't get) a stamp.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"Slug of the intent that owns the file you just wrote."},path:{type:"string",description:"Path of the file you just wrote. Either intent-relative (e.g. `stages/design/artifacts/spec.md`) or absolute. The tool resolves it against the intent dir and verifies it falls inside the drift-tracked surface before stamping."}},required:["intent_slug","path"]},async handle(e){let t=e.intent_slug,n=e.path;if(typeof t!="string"||t.trim()==="")return B_e("missing_intent_slug","`intent_slug` is required and must be a non-empty string.");if(typeof n!="string"||n.trim()==="")return B_e("missing_path","`path` is required and must be a non-empty string.");let r=Wg({intent:t});if(r)return r;let i=Te(),s=axt(i,"intents",t),o=rnr(n)?n:axt(s,n),a=(()=>{try{return oxt(s)}catch{return s}})(),c=(()=>{try{return oxt(o)}catch{return o}})();if(!c.startsWith(`${a}/`)&&c!==a)return B_e("path_outside_intent",`Absolute path '${n}' resolves outside the intent dir for slug '${t}'. Either pass an intent-relative path or an absolute path inside ${a}/.`);let u=await y5(o);if(!u.stamped){let l={not_in_intent_dir:`Path is not inside an intent directory (resolved: ${o}). Only writes inside .haiku/intents// get tracked.`,not_in_tracked_surface:`Path is inside the intent dir but not in the drift-tracked surface (resolved: ${o}). Tracked locations are stages//{artifacts,outputs,knowledge,discovery}/... and intent-root knowledge/...`,file_missing:`File does not exist on disk (resolved: ${o}). Did the write succeed?`,read_failed:`Could not read file to compute SHA (resolved: ${o}).`};return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!1,reason:u.reason,message:l[u.reason??""]??"Stamp skipped for unknown reason."},null,2)}]}}return{content:[{type:"text",text:JSON.stringify({ok:!0,stamped:!0,path:u.pathRel,sha:u.sha,tick_counter:u.tickCounter,tick_scope:u.tickScope,next_step:"The next `haiku_run_next` tick will see the agent_write entry and silently update the baseline \u2014 no manual_change_assessment finding for this path."},null,2)}]}}}});var lxt,dxt,fxt=v(()=>{"use strict";hv();ji();uo();vo();zi();vs();lxt="Your work here is done \u2014 terminate with your one-line findings summary. Do NOT call haiku_run_next; your parent ticks the workflow when the whole review wave closes.",dxt={name:"haiku_review_stamp",description:"Review/approval subagent CLOSURE. Records your own `reviews.` / `approvals.` witness and returns a terminal ack \u2014 call this INSTEAD of `haiku_run_next` when you finish reviewing. `kind: review|approval` both require `stage`. Returns `{ ok: true, stamped: [...], skipped: [...] }` (skipped = units you flagged with an open finding; they stay un-stamped so the cursor reroutes through them on close), or `{ ok: true, found: false }` when nothing was pending for your role (already stamped \u2014 clean no-op). Never walks the cursor and never returns a fix dispatch, so it can't trip the inter-tick loop guard. NOTE: intent-completion review agents (`intent_review` actions) do NOT call this tool \u2014 they terminate directly; the parent drain handles their stamp.",inputSchema:h0,async handle(e){let t=Be(e,xge,"haiku_review_stamp");if(t)return t;let{intent:n,kind:r,role:i,stage:s}=e,o=Lye(n,r,s,i);return Ke("haiku.review.stamped",{intent:n,kind:r,role:i,stage:s,found:String(o.found),stamped_count:String(o.stamped.length),skipped_count:String(o.skipped.length)}),ye(JSON.stringify({ok:!0,intent:n,kind:r,role:i,stage:s,found:o.found,stamped:o.stamped,skipped:o.skipped,message:o.found?`Recorded ${r} witness for '${i}' on stage '${s}': ${o.stamped.length} unit(s) stamped${o.skipped.length>0?`, ${o.skipped.length} skipped (you filed open findings against them \u2014 they re-review after close)`:""}. ${lxt}`:`No pending ${r} dispatch for '${i}' on stage '${s}' (already stamped). ${lxt}`}))}}});import{appendFileSync as inr}from"node:fs";function S5(e){return Date.now()-e>pxt}function b5(e,t,n,r){let i=Date.now()-n;return rm(`${e} (wall-deadline ${pxt}ms exceeded; elapsed=${i}ms)`,t,r,"no_progress")}function xx(e){let t=e;return JSON.stringify({action:t.action??null,stage:t.stage??null,unit:t.unit??null,feedback_id:t.feedback_id??null,role:t.role??null})}function snr(e){let t=`[${new Date().toISOString()}] ${e} +`;try{let n=Pft("loop-guards.log");return inr(n,t),n}catch{return null}}function rm(e,t,n,r){let i=n,s=`loop=${e} reason=${r} iterations=${t} action=${String(i.action??"?")}`+(i.stage?` stage=${String(i.stage)}`:"")+(i.unit?` unit=${String(i.unit)}`:"")+(i.feedback_id?` fb=${String(i.feedback_id)}`:"");console.error(`[haiku_run_next] loop guard fired: ${s}`);let o=snr(`loop guard fired: ${s}`),a=o?` log: ${o} (this session's full loop-guard history)`:` log: (write failed \u2014 diagnostic above and on MCP stderr only)`;return{content:[{type:"text",text:`The engine couldn't make progress on this tick (internal loop). Re-run \`haiku_run_next\` to retry. If the same call keeps failing, file an issue with the diagnostic line below and the contents of the per-session log file (same dir as the subagent prompts). -diagnostic: ${s}${a}`}],isError:!0}}var yU,pxt,hxt=v(()=>{"use strict";vl();yU=16,pxt=9e4});var gxt={};Ar(gxt,{invalidateDownstreamApprovals:()=>unr});import{existsSync as onr,readdirSync as anr,readFileSync as cnr}from"node:fs";import{join as mxt}from"node:path";function unr(e){let t=wn(e.intentFm,e.studio),n=t.indexOf(e.completedStage);if(n<0)return{stages_cleared:[],units_cleared:0};let r=t.slice(n+1);if(r.length===0)return{stages_cleared:[],units_cleared:0};let i=[],s=0;for(let o of r){let a=mxt(e.intentDir,"stages",o,"units");if(!onr(a))continue;let c=anr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=mxt(a,l);try{let f=cnr(d,"utf8"),p=re(f).data,h=p.reviews&&typeof p.reviews=="object"&&Object.keys(p.reviews).length>0,m=p.approvals&&typeof p.approvals=="object"&&Object.keys(p.approvals).length>0;if(!h&&!m)continue;let g=[];h&&g.push("reviews"),m&&g.push("approvals"),Yh(d,g),s++,u=!0}catch(f){console.error(`[invalidate-downstream] skipping ${d}: ${f instanceof Error?f.message:String(f)}`)}}u&&i.push(o)}return{stages_cleared:i,units_cleared:s}}var yxt=v(()=>{"use strict";Ge();ns()});var eNt={};Ar(eNt,{AbortError:()=>tE,EXIT_REASONS:()=>Nsr,HOOK_EVENTS:()=>Psr,createSdkMcpServer:()=>Yfr,query:()=>Zfr,tool:()=>Kfr,unstable_v2_createSession:()=>Jfr,unstable_v2_prompt:()=>Qfr,unstable_v2_resumeSession:()=>Xfr});import{join as bxt}from"path";import{fileURLToPath as mrr}from"url";import{setMaxListeners as grr}from"events";import{spawn as Srr}from"child_process";import{createInterface as brr}from"readline";import*as Zt from"fs";import{stat as Err}from"fs/promises";import{join as lsr}from"path";import{homedir as dsr}from"os";import{dirname as Q_e,join as vOt}from"path";import{cwd as fsr}from"process";import{realpathSync as psr}from"fs";import{randomUUID as hsr}from"crypto";import{randomUUID as Csr}from"crypto";import{appendFileSync as Msr,existsSync as Dsr,mkdirSync as Lsr}from"fs";import{join as wxt}from"path";import{randomUUID as Hsr}from"crypto";import{join as Ixt}from"path";import{fileURLToPath as qsr}from"url";function NTe(e=yrr){let t=new AbortController;return grr(e,t.signal),t}function Irr(e){var t=wrr.call(e,SU),n=e[SU];try{e[SU]=void 0;var r=!0}catch{}var i=krr.call(e);return r&&(t?e[SU]=n:delete e[SU]),i}function Nrr(e){return Prr.call(e)}function Lrr(e){return e==null?e===void 0?Drr:Mrr:Ext&&Ext in Object(e)?xrr(e):Crr(e)}function Frr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function zrr(e){if(!bOt(e))return!1;var t=Urr(e);return t==Hrr||t==qrr||t==jrr||t==Brr}function Wrr(e){return!!_xt&&_xt in e}function Jrr(e){if(e!=null){try{return Zrr.call(e)}catch{}try{return e+""}catch{}}return""}function sir(e){if(!bOt(e)||Krr(e))return!1;var t=Grr(e)?iir:$rr;return t.test(Xrr(e))}function air(e,t){return e?.[t]}function uir(e,t){var n=cir(e,t);return oir(n)?n:void 0}function dir(){this.__data__=wU?wU(null):{},this.size=0}function pir(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Sir(e){var t=this.__data__;if(wU){var n=t[e];return n===mir?void 0:n}return yir.call(t,e)?t[e]:void 0}function Tir(e){var t=this.__data__;return wU?t[e]!==void 0:_ir.call(t,e)}function Air(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=wU&&t===void 0?Rir:t,this}function Wx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function Hir(e,t){var n=this.__data__,r=K5(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Kx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tt.exclude.includes(n)):e.some(n=>t.include.includes(n)):!0}function usr(e,t){if(!t)return!0;let n=asr(e);return csr(n,t)}function TOt(){return process.env.CLAUDE_CONFIG_DIR??lsr(dsr(),".claude")}function Rxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function ROt(e){return{name:e,default:b5,validate:t=>{if(!t)return{effective:b5,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:b5,status:"invalid",message:`Invalid value "${t}" (using default: ${b5})`}:n>z_e?{effective:z_e,status:"capped",message:`Capped from ${n} to ${z_e}`}:{effective:n,status:"valid"}}}}function ysr(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=psr(fsr())),{originalCwd:e,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:e,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:hsr(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[msr,gsr],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0}}function bsr(){return Ssr.sessionId}function Esr({writeFn:e,flushIntervalMs:t=1e3,maxBufferSize:n=100,immediateMode:r=!1}){let i=[],s=null;function o(){s&&(clearTimeout(s),s=null)}function a(){i.length!==0&&(e(i.join("")),i=[],o())}function c(){s||(s=setTimeout(a,t))}return{write(u){if(r){e(u);return}i.push(u),c(),i.length>=n&&a()},flush:a,dispose(){a()}}}function _sr(e){return Axt.add(e),()=>Axt.delete(e)}function Tsr(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array[${e.length}]`:typeof e=="object"?`Object{${Object.keys(e).length} keys}`:typeof e=="string"?`string(${e.length} chars)`:typeof e}function wOt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>AOt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function im(e,t,n){let r=Tsr(e);return wOt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function Asr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=Rsr();return usr(e,t)}function ksr(){return E5||(E5=Esr({writeFn:e=>{let t=xOt();Xg().existsSync(Q_e(t))||Xg().mkdirSync(Q_e(t)),Xg().appendFileSync(t,e),Isr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:vsr()}),_sr(async()=>E5?.dispose())),E5}function Zg(e,{level:t}={level:"debug"}){if(!Asr(e))return;wsr&&e.includes(` +diagnostic: ${s}${a}`}],isError:!0}}var bU,pxt,hxt=v(()=>{"use strict";vl();bU=16,pxt=9e4});var gxt={};Ar(gxt,{invalidateDownstreamApprovals:()=>unr});import{existsSync as onr,readdirSync as anr,readFileSync as cnr}from"node:fs";import{join as mxt}from"node:path";function unr(e){let t=wn(e.intentFm,e.studio),n=t.indexOf(e.completedStage);if(n<0)return{stages_cleared:[],units_cleared:0};let r=t.slice(n+1);if(r.length===0)return{stages_cleared:[],units_cleared:0};let i=[],s=0;for(let o of r){let a=mxt(e.intentDir,"stages",o,"units");if(!onr(a))continue;let c=anr(a).filter(l=>l.endsWith(".md")),u=!1;for(let l of c){let d=mxt(a,l);try{let f=cnr(d,"utf8"),p=re(f).data,h=p.reviews&&typeof p.reviews=="object"&&Object.keys(p.reviews).length>0,m=p.approvals&&typeof p.approvals=="object"&&Object.keys(p.approvals).length>0;if(!h&&!m)continue;let g=[];h&&g.push("reviews"),m&&g.push("approvals"),Yh(d,g),s++,u=!0}catch(f){console.error(`[invalidate-downstream] skipping ${d}: ${f instanceof Error?f.message:String(f)}`)}}u&&i.push(o)}return{stages_cleared:i,units_cleared:s}}var yxt=v(()=>{"use strict";Ge();ns()});var eNt={};Ar(eNt,{AbortError:()=>tE,EXIT_REASONS:()=>Nsr,HOOK_EVENTS:()=>Psr,createSdkMcpServer:()=>Yfr,query:()=>Zfr,tool:()=>Kfr,unstable_v2_createSession:()=>Jfr,unstable_v2_prompt:()=>Qfr,unstable_v2_resumeSession:()=>Xfr});import{join as bxt}from"path";import{fileURLToPath as mrr}from"url";import{setMaxListeners as grr}from"events";import{spawn as Srr}from"child_process";import{createInterface as brr}from"readline";import*as Zt from"fs";import{stat as Err}from"fs/promises";import{join as lsr}from"path";import{homedir as dsr}from"os";import{dirname as $_e,join as vOt}from"path";import{cwd as fsr}from"process";import{realpathSync as psr}from"fs";import{randomUUID as hsr}from"crypto";import{randomUUID as Csr}from"crypto";import{appendFileSync as Msr,existsSync as Dsr,mkdirSync as Lsr}from"fs";import{join as wxt}from"path";import{randomUUID as Hsr}from"crypto";import{join as Ixt}from"path";import{fileURLToPath as qsr}from"url";function CTe(e=yrr){let t=new AbortController;return grr(e,t.signal),t}function Irr(e){var t=wrr.call(e,EU),n=e[EU];try{e[EU]=void 0;var r=!0}catch{}var i=krr.call(e);return r&&(t?e[EU]=n:delete e[EU]),i}function Nrr(e){return Prr.call(e)}function Lrr(e){return e==null?e===void 0?Drr:Mrr:Ext&&Ext in Object(e)?xrr(e):Crr(e)}function Frr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function zrr(e){if(!bOt(e))return!1;var t=Urr(e);return t==Hrr||t==qrr||t==jrr||t==Brr}function Wrr(e){return!!_xt&&_xt in e}function Jrr(e){if(e!=null){try{return Zrr.call(e)}catch{}try{return e+""}catch{}}return""}function sir(e){if(!bOt(e)||Krr(e))return!1;var t=Grr(e)?iir:$rr;return t.test(Xrr(e))}function air(e,t){return e?.[t]}function uir(e,t){var n=cir(e,t);return oir(n)?n:void 0}function dir(){this.__data__=IU?IU(null):{},this.size=0}function pir(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Sir(e){var t=this.__data__;if(IU){var n=t[e];return n===mir?void 0:n}return yir.call(t,e)?t[e]:void 0}function Tir(e){var t=this.__data__;return IU?t[e]!==void 0:_ir.call(t,e)}function Air(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=IU&&t===void 0?Rir:t,this}function Kx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}function Hir(e,t){var n=this.__data__,r=Y5(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Yx(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tt.exclude.includes(n)):e.some(n=>t.include.includes(n)):!0}function usr(e,t){if(!t)return!0;let n=asr(e);return csr(n,t)}function TOt(){return process.env.CLAUDE_CONFIG_DIR??lsr(dsr(),".claude")}function Rxt(e){if(!e)return!1;if(typeof e=="boolean")return e;let t=e.toLowerCase().trim();return["1","true","yes","on"].includes(t)}function ROt(e){return{name:e,default:E5,validate:t=>{if(!t)return{effective:E5,status:"valid"};let n=parseInt(t,10);return isNaN(n)||n<=0?{effective:E5,status:"invalid",message:`Invalid value "${t}" (using default: ${E5})`}:n>G_e?{effective:G_e,status:"capped",message:`Capped from ${n} to ${G_e}`}:{effective:n,status:"valid"}}}}function ysr(){let e="";return typeof process<"u"&&typeof process.cwd=="function"&&(e=psr(fsr())),{originalCwd:e,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:e,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:hsr(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[msr,gsr],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[],sessionBypassPermissionsMode:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,hasExitedDelegateMode:!1,needsDelegateModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0}}function bsr(){return Ssr.sessionId}function Esr({writeFn:e,flushIntervalMs:t=1e3,maxBufferSize:n=100,immediateMode:r=!1}){let i=[],s=null;function o(){s&&(clearTimeout(s),s=null)}function a(){i.length!==0&&(e(i.join("")),i=[],o())}function c(){s||(s=setTimeout(a,t))}return{write(u){if(r){e(u);return}i.push(u),c(),i.length>=n&&a()},flush:a,dispose(){a()}}}function _sr(e){return Axt.add(e),()=>Axt.delete(e)}function Tsr(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array[${e.length}]`:typeof e=="object"?`Object{${Object.keys(e).length} keys}`:typeof e=="string"?`string(${e.length} chars)`:typeof e}function wOt(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>AOt&&(Zg(`[SLOW OPERATION DETECTED] ${e} (${r.toFixed(1)}ms)`),void 0)}}function im(e,t,n){let r=Tsr(e);return wOt(`JSON.stringify(${r})`,()=>JSON.stringify(e,t,n))}function Asr(e){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let t=Rsr();return usr(e,t)}function ksr(){return _5||(_5=Esr({writeFn:e=>{let t=xOt();Xg().existsSync($_e(t))||Xg().mkdirSync($_e(t)),Xg().appendFileSync(t,e),Isr()},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:vsr()}),_sr(async()=>_5?.dispose())),_5}function Zg(e,{level:t}={level:"debug"}){if(!Asr(e))return;wsr&&e.includes(` `)&&(e=im(e));let r=`${new Date().toISOString()} [${t.toUpperCase()}] ${e.trim()} -`;if(IOt()){ssr(r);return}ksr().write(r)}function xOt(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??vOt(TOt(),"debug",`${bsr()}.txt`)}function fo(e,t){let n=performance.now();try{return t()}finally{let r=performance.now()-n;r>AOt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Xg(){return Osr}function DTe(){return process.versions.bun!==void 0}function Usr(){if(kxt)return _5;if(kxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=wxt(TOt(),"debug");return _5=wxt(e,`sdk-${Csr()}.txt`),Dsr(e)||Lsr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${_5} -`),_5}function Kv(e){let t=Usr();if(!t)return;let r=`${new Date().toISOString()} ${e} -`;Msr(t,r)}function Fsr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...kOt(n.settings),sandbox:t}}catch{}n.settings=im(r)}return n}function jsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function OOt(e){return new P5(e)}function Bsr(e,t){return new P5({...t,resume:e})}function eTe(){return Gsr}function Ye(e,t){let n=eTe(),r=tTe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===kU?void 0:kU].filter(i=>!!i)});e.common.issues.push(r)}function ln(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function NOt(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function aor(e){return new RegExp(`^${NOt(e)}$`)}function cor(e){let t=`${POt}T${NOt(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function uor(e,t){return!!((t==="v4"||!t)&&eor.test(e)||(t==="v6"||!t)&&nor.test(e))}function lor(e,t){if(!Jsr.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function dor(e,t){return!!((t==="v4"||!t)&&tor.test(e)||(t==="v6"||!t)&&ror.test(e))}function por(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function xx(e){if(e instanceof Fl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=mp.create(xx(r))}return new Fl({...e._def,shape:()=>t})}else return e instanceof iE?new iE({...e._def,type:xx(e.element)}):e instanceof mp?mp.create(xx(e.unwrap())):e instanceof $g?$g.create(xx(e.unwrap())):e instanceof Qg?Qg.create(e.items.map(t=>xx(t))):e}function rTe(e,t){let n=eE(e),r=eE(t);if(e===t)return{valid:!0,data:e};if(n===nt.object&&r===nt.object){let i=ir.objectKeys(t),s=ir.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=rTe(e[a],t[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===nt.array&&r===nt.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let s=0;sn?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function ey(e){return e&&Object.assign(oTe,e),oTe}function mor(e){return e}function gor(e){return e}function yor(e){}function Sor(e){throw new Error}function bor(e){}function LTe(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function aTe(e,t="|"){return e.map(n=>jTe(n)).join(t)}function MOt(e,t){return typeof t=="bigint"?t.toString():t}function Z5(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function J5(e){return e==null}function X5(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function DOt(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function ki(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function UTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Eor(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function _or(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function wor(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function jTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function FOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Ior(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return ny(e,{...e._zod.def,shape:n,checks:[]})}function xor(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return ny(e,{...e._zod.def,shape:n,checks:[]})}function Oor(e,t){if(!jU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return UTe(this,"shape",r),r},checks:[]};return ny(e,n)}function Por(e,t){return ny(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return UTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Nor(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return ny(t,{...t._zod.def,shape:i,checks:[]})}function Cor(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return ny(t,{...t._zod.def,shape:i,checks:[]})}function Px(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function TU(e){return typeof e=="string"?e:e?.message}function ty(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=TU(e.inst?._zod.def?.error?.(e))??TU(t?.error?.(e))??TU(n.customError?.(e))??TU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Mor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function Q5(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function HOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Dor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Lor(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Uor(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cr==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return $Ot(n)}function Xar(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function Mxt(e,t,n){e.issues.length&&t.issues.push(...nE(n,e.issues)),t.value[n]=e.value}function T5(e,t,n){e.issues.length&&t.issues.push(...nE(n,e.issues)),t.value[n]=e.value}function Dxt(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...nE(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Lxt(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>ty(s,r,ey())))}),t}function lTe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(jU(e)&&jU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=lTe(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;rt.normalize(e))}function uur(){return qU(e=>e.trim())}function lur(){return qU(e=>e.toLowerCase())}function dur(){return qU(e=>e.toUpperCase())}function fur(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function pur(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function hur(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function mur(e,t){if(e instanceof D5){let r=new U5(t),i={};for(let a of e._idmap.entries()){let[c,u]=a;r.process(u)}let s={},o={registry:e,uri:t?.uri||(a=>a),defs:i};for(let a of e._idmap.entries()){let[c,u]=a;s[c]=r.emit(u,{...t,external:o})}if(Object.keys(i).length>0){let a=r.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[a]:i}}return{schemas:s}}let n=new U5(t);return n.process(e),n.emit(e,t)}function Io(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let i=e._zod.def;switch(i.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return Io(i.element,n);case"object":{for(let s in i.shape)if(Io(i.shape[s],n))return!0;return!1}case"union":{for(let s of i.options)if(Io(s,n))return!0;return!1}case"intersection":return Io(i.left,n)||Io(i.right,n);case"tuple":{for(let s of i.items)if(Io(s,n))return!0;return!!(i.rest&&Io(i.rest,n))}case"record":return Io(i.keyType,n)||Io(i.valueType,n);case"map":return Io(i.keyType,n)||Io(i.valueType,n);case"set":return Io(i.valueType,n);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return Io(i.innerType,n);case"lazy":return Io(i.getter(),n);case"default":return Io(i.innerType,n);case"prefault":return Io(i.innerType,n);case"custom":return!1;case"transform":return!0;case"pipe":return Io(i.in,n)||Io(i.out,n);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${i.type}`)}function Kxt(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new yur(n)}function yp(e){return!!e._zod}function RU(e){let t=Object.values(e);if(t.length===0)return Kxt({});let n=t.every(yp),r=t.every(i=>!yp(i));if(n)return Kxt(e);if(r)return hor(e);throw new Error("Mixed Zod versions detected in object shape.")}function AU(e,t){return yp(e)?HTe(e,t):e.safeParse(t)}async function K_e(e,t){return yp(e)?await qTe(e,t):await e.safeParseAsync(t)}function BU(e){var t,n;if(!e)return;let r;if(yp(e)?r=(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.shape:r=e.shape,!!r){if(typeof r=="function")try{return r()}catch{return}return r}}function bU(e){var t;if(e){if(typeof e=="object"){let n=e,r=e;if(!n._def&&!r._zod){let i=Object.values(e);if(i.length>0&&i.every(s=>typeof s=="object"&&s!==null&&(s._def!==void 0||s._zod!==void 0||typeof s.parse=="function")))return RU(e)}}if(yp(e)){let r=(t=e._zod)===null||t===void 0?void 0:t.def;if(r&&(r.type==="object"||r.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function Y_e(e){if(e&&typeof e=="object"){if("message"in e&&typeof e.message=="string")return e.message;if("issues"in e&&Array.isArray(e.issues)&&e.issues.length>0){let t=e.issues[0];if(t&&typeof t=="object"&&"message"in t)return String(t.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function Sur(e){var t,n,r,i;if(yp(e))return(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.description;let s=e;return(r=e.description)!==null&&r!==void 0?r:(i=s._def)===null||i===void 0?void 0:i.description}function bur(e){var t,n,r;if(yp(e))return((n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.type)==="optional";let i=e;return typeof e.isOptional=="function"?e.isOptional():((r=i._def)===null||r===void 0?void 0:r.typeName)==="ZodOptional"}function sPt(e){var t;if(yp(e)){let o=(t=e._zod)===null||t===void 0?void 0:t.def;if(o){if(o.value!==void 0)return o.value;if(Array.isArray(o.values)&&o.values.length>0)return o.values[0]}}let r=e._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let i=e.value;if(i!==void 0)return i}function cPt(e){return Wcr(aPt,e)}function lPt(e){return Kcr(uPt,e)}function fPt(e){return Ycr(dPt,e)}function hPt(e){return Zcr(pPt,e)}function he(e){return Rcr(Rur,e)}function ui(e){return Jcr(yPt,e)}function Zxt(e){return Xcr(Bur,e)}function vc(e){return Qcr(zur,e)}function SPt(e){return $cr(Gur,e)}function xo(){return eur(Vur)}function Kur(e){return tur(Wur,e)}function er(e,t){return fur(Yur,e,t)}function ze(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new bPt(n)}function Sp(e,t){return new bPt({type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...Gr.normalizeParams(t)})}function Vi(e,t){return new EPt({type:"union",options:e,...Gr.normalizeParams(t)})}function _Pt(e,t,n){return new Zur({type:"union",options:t,discriminator:e,...Gr.normalizeParams(n)})}function zTe(e,t){return new Jur({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new Xur({type:"record",keyType:e,valueType:t,...Gr.normalizeParams(n)})}function Rc(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new dTe({type:"enum",entries:n,...Gr.normalizeParams(t)})}function St(e,t){return new Qur({type:"literal",values:Array.isArray(e)?e:[e],...Gr.normalizeParams(t)})}function TPt(e){return new $ur({type:"transform",transform:e})}function yt(e){return new vPt({type:"optional",innerType:e})}function Jxt(e){return new elr({type:"nullable",innerType:e})}function nlr(e,t){return new tlr({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function ilr(e,t){return new rlr({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function slr(e,t){return new RPt({type:"nonoptional",innerType:e,...Gr.normalizeParams(t)})}function alr(e,t){return new olr({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function fTe(e,t){return new clr({type:"pipe",in:e,out:t})}function llr(e){return new ulr({type:"readonly",innerType:e})}function dlr(e,t){let n=new $u({check:"custom",...Gr.normalizeParams(t)});return n._zod.check=e,n}function flr(e,t){return pur(APt,e??(()=>!0),t)}function plr(e,t={}){return hur(APt,e,t)}function hlr(e,t){let n=dlr(r=>(r.addIssue=i=>{if(typeof i=="string")r.issues.push(Gr.issue(i,r.value,n._zod.def));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=n),s.continue??(s.continue=!n._zod.def.abort),r.issues.push(Gr.issue(s))}},e(r.value,r)),t);return n}function wPt(e,t){return fTe(TPt(e),t)}function qdr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function Bdr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function Yv(e){return e==="completed"||e==="failed"||e==="cancelled"}function WPt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,WPt(e,t,r,i)}function Qu(e){if(e.target!=="openAi")return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?KPt(t,e.currentPath):t.join("/")}}function Jdr(e,t){let n={type:"array"};return e.type?._def&&e.type?._def?.typeName!==De.ZodAny&&(n.items=Er(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&Cr(n,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&Cr(n,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(Cr(n,"minItems",e.exactLength.value,e.exactLength.message,t),Cr(n,"maxItems",e.exactLength.value,e.exactLength.message,t)),n}function Xdr(e,t){let n={type:"integer",format:"int64"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function Qdr(){return{type:"boolean"}}function YPt(e,t){return Er(e.type._def,t)}function ZPt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>ZPt(e,t,i))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return efr(e,t)}}function tfr(e,t){return{...Er(e.innerType._def,t),default:e.defaultValue()}}function nfr(e,t){return t.effectStrategy==="input"?Er(e.schema._def,t):Qu(t)}function rfr(e){return{type:"string",enum:Array.from(e.values)}}function sfr(e,t){let n=[Er(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),Er(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(s=>!!s),r=t.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(s=>{if(ifr(s))i.push(...s.allOf),s.unevaluatedProperties===void 0&&(r=void 0);else{let o=s;if("additionalProperties"in s&&s.additionalProperties===!1){let{additionalProperties:a,...c}=s;o=c}else r=void 0;i.push(o)}}),i.length?{allOf:i,...r}:void 0}function ofr(e,t){let n=typeof e.value;return n!=="bigint"&&n!=="number"&&n!=="boolean"&&n!=="string"?{type:Array.isArray(e.value)?"array":"object"}:t.target==="openApi3"?{type:n==="bigint"?"integer":n,enum:[e.value]}:{type:n==="bigint"?"integer":n,const:e.value}}function JPt(e,t){let n={type:"string"};if(e.checks)for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t);break;case"max":Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"email":switch(t.emailStrategy){case"format:email":hp(n,"email",r.message,t);break;case"format:idn-email":hp(n,"idn-email",r.message,t);break;case"pattern:zod":ru(n,pp.email,r.message,t);break}break;case"url":hp(n,"uri",r.message,t);break;case"uuid":hp(n,"uuid",r.message,t);break;case"regex":ru(n,r.regex,r.message,t);break;case"cuid":ru(n,pp.cuid,r.message,t);break;case"cuid2":ru(n,pp.cuid2,r.message,t);break;case"startsWith":ru(n,RegExp(`^${J_e(r.value,t)}`),r.message,t);break;case"endsWith":ru(n,RegExp(`${J_e(r.value,t)}$`),r.message,t);break;case"datetime":hp(n,"date-time",r.message,t);break;case"date":hp(n,"date",r.message,t);break;case"time":hp(n,"time",r.message,t);break;case"duration":hp(n,"duration",r.message,t);break;case"length":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t),Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"includes":{ru(n,RegExp(J_e(r.value,t)),r.message,t);break}case"ip":{r.version!=="v6"&&hp(n,"ipv4",r.message,t),r.version!=="v4"&&hp(n,"ipv6",r.message,t);break}case"base64url":ru(n,pp.base64url,r.message,t);break;case"jwt":ru(n,pp.jwt,r.message,t);break;case"cidr":{r.version!=="v6"&&ru(n,pp.ipv4Cidr,r.message,t),r.version!=="v4"&&ru(n,pp.ipv6Cidr,r.message,t);break}case"emoji":ru(n,pp.emoji(),r.message,t);break;case"ulid":{ru(n,pp.ulid,r.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{hp(n,"binary",r.message,t);break}case"contentEncoding:base64":{Cr(n,"contentEncoding","base64",r.message,t);break}case"pattern:zod":{ru(n,pp.base64,r.message,t);break}}break}case"nanoid":ru(n,pp.nanoid,r.message,t);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return n}function J_e(e,t){return t.patternStrategy==="escape"?cfr(e):e}function cfr(e){let t="";for(let n=0;ni.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):Cr(e,"format",t,n,r)}function ru(e,t,n,r){e.pattern||e.allOf?.some(i=>i.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:$xt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",$xt(t,r),n,r)}function $xt(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},r=n.i?e.source.toLowerCase():e.source,i="",s=!1,o=!1,a=!1;for(let c=0;cAOt&&(Zg(`[SLOW OPERATION DETECTED] fs.${e} (${r.toFixed(1)}ms)`),`${e}`,void 0)}}function Xg(){return Osr}function LTe(){return process.versions.bun!==void 0}function Usr(){if(kxt)return T5;if(kxt=!0,!process.env.DEBUG_CLAUDE_AGENT_SDK)return null;let e=wxt(TOt(),"debug");return T5=wxt(e,`sdk-${Csr()}.txt`),Dsr(e)||Lsr(e,{recursive:!0}),process.stderr.write(`SDK debug logs: ${T5} +`),T5}function Kv(e){let t=Usr();if(!t)return;let r=`${new Date().toISOString()} ${e} +`;Msr(t,r)}function Fsr(e,t){let n={...e};if(t){let r={sandbox:t};if(n.settings)try{r={...kOt(n.settings),sandbox:t}}catch{}n.settings=im(r)}return n}function jsr(e){return![".js",".mjs",".tsx",".ts",".jsx"].some(n=>e.endsWith(n))}function OOt(e){return new N5(e)}function Bsr(e,t){return new N5({...t,resume:e})}function tTe(){return Gsr}function Ye(e,t){let n=tTe(),r=nTe({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===xU?void 0:xU].filter(i=>!!i)});e.common.issues.push(r)}function ln(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:c}=e;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??n??a.defaultError}},description:i}}function NOt(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function aor(e){return new RegExp(`^${NOt(e)}$`)}function cor(e){let t=`${POt}T${NOt(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function uor(e,t){return!!((t==="v4"||!t)&&eor.test(e)||(t==="v6"||!t)&&nor.test(e))}function lor(e,t){if(!Jsr.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function dor(e,t){return!!((t==="v4"||!t)&&tor.test(e)||(t==="v6"||!t)&&ror.test(e))}function por(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function Ox(e){if(e instanceof Fl){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=mp.create(Ox(r))}return new Fl({...e._def,shape:()=>t})}else return e instanceof iE?new iE({...e._def,type:Ox(e.element)}):e instanceof mp?mp.create(Ox(e.unwrap())):e instanceof $g?$g.create(Ox(e.unwrap())):e instanceof Qg?Qg.create(e.items.map(t=>Ox(t))):e}function iTe(e,t){let n=eE(e),r=eE(t);if(e===t)return{valid:!0,data:e};if(n===nt.object&&r===nt.object){let i=ir.objectKeys(t),s=ir.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of s){let c=iTe(e[a],t[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(n===nt.array&&r===nt.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let s=0;sn?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}function ey(e){return e&&Object.assign(aTe,e),aTe}function mor(e){return e}function gor(e){return e}function yor(e){}function Sor(e){throw new Error}function bor(e){}function UTe(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function cTe(e,t="|"){return e.map(n=>HTe(n)).join(t)}function MOt(e,t){return typeof t=="bigint"?t.toString():t}function J5(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function X5(e){return e==null}function Q5(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function DOt(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,s=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return s%o/10**i}function ki(e,t,n){Object.defineProperty(e,t,{get(){{let i=n();return e[t]=i,i}throw new Error("cached value already set")},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function FTe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Eor(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function _or(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let i={};for(let s=0;st};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function wor(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,s){return t??(t=e()),Reflect.set(t,r,i,s)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function HTe(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function FOt(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Ior(e,t){let n={},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(n[i]=r.shape[i])}return ny(e,{...e._zod.def,shape:n,checks:[]})}function xor(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete n[i]}return ny(e,{...e._zod.def,shape:n,checks:[]})}function Oor(e,t){if(!qU(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return FTe(this,"shape",r),r},checks:[]};return ny(e,n)}function Por(e,t){return ny(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return FTe(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function Nor(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in r))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=e?new e({type:"optional",innerType:r[s]}):r[s])}else for(let s in r)i[s]=e?new e({type:"optional",innerType:r[s]}):r[s];return ny(t,{...t._zod.def,shape:i,checks:[]})}function Cor(e,t,n){let r=t._zod.def.shape,i={...r};if(n)for(let s in n){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);n[s]&&(i[s]=new e({type:"nonoptional",innerType:r[s]}))}else for(let s in r)i[s]=new e({type:"nonoptional",innerType:r[s]});return ny(t,{...t._zod.def,shape:i,checks:[]})}function Nx(e,t=0){for(let n=t;n{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function RU(e){return typeof e=="string"?e:e?.message}function ty(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let i=RU(e.inst?._zod.def?.error?.(e))??RU(t?.error?.(e))??RU(n.customError?.(e))??RU(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Mor(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function $5(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function HOt(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Dor(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Lor(e,t=n=>n.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Uor(e,t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>i({issues:a}));else if(o.code==="invalid_key")i({issues:o.issues});else if(o.code==="invalid_element")i({issues:o.issues});else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cr==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return $Ot(n)}function Xar(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!("typ"in i&&i?.typ!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}function Mxt(e,t,n){e.issues.length&&t.issues.push(...nE(n,e.issues)),t.value[n]=e.value}function v5(e,t,n){e.issues.length&&t.issues.push(...nE(n,e.issues)),t.value[n]=e.value}function Dxt(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...nE(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Lxt(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(s=>ty(s,r,ey())))}),t}function dTe(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(qU(e)&&qU(t)){let n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(let s of r){let o=dTe(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;rt.normalize(e))}function uur(){return zU(e=>e.trim())}function lur(){return zU(e=>e.toLowerCase())}function dur(){return zU(e=>e.toUpperCase())}function fur(e,t,n){return new e({type:"array",element:t,...Ht(n)})}function pur(e,t,n){let r=Ht(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function hur(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Ht(n)})}function mur(e,t){if(e instanceof L5){let r=new F5(t),i={};for(let a of e._idmap.entries()){let[c,u]=a;r.process(u)}let s={},o={registry:e,uri:t?.uri||(a=>a),defs:i};for(let a of e._idmap.entries()){let[c,u]=a;s[c]=r.emit(u,{...t,external:o})}if(Object.keys(i).length>0){let a=r.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[a]:i}}return{schemas:s}}let n=new F5(t);return n.process(e),n.emit(e,t)}function Io(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let i=e._zod.def;switch(i.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return Io(i.element,n);case"object":{for(let s in i.shape)if(Io(i.shape[s],n))return!0;return!1}case"union":{for(let s of i.options)if(Io(s,n))return!0;return!1}case"intersection":return Io(i.left,n)||Io(i.right,n);case"tuple":{for(let s of i.items)if(Io(s,n))return!0;return!!(i.rest&&Io(i.rest,n))}case"record":return Io(i.keyType,n)||Io(i.valueType,n);case"map":return Io(i.keyType,n)||Io(i.valueType,n);case"set":return Io(i.valueType,n);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return Io(i.innerType,n);case"lazy":return Io(i.getter(),n);case"default":return Io(i.innerType,n);case"prefault":return Io(i.innerType,n);case"custom":return!1;case"transform":return!0;case"pipe":return Io(i.in,n)||Io(i.out,n);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${i.type}`)}function Kxt(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new yur(n)}function yp(e){return!!e._zod}function wU(e){let t=Object.values(e);if(t.length===0)return Kxt({});let n=t.every(yp),r=t.every(i=>!yp(i));if(n)return Kxt(e);if(r)return hor(e);throw new Error("Mixed Zod versions detected in object shape.")}function kU(e,t){return yp(e)?qTe(e,t):e.safeParse(t)}async function Y_e(e,t){return yp(e)?await BTe(e,t):await e.safeParseAsync(t)}function GU(e){var t,n;if(!e)return;let r;if(yp(e)?r=(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.shape:r=e.shape,!!r){if(typeof r=="function")try{return r()}catch{return}return r}}function _U(e){var t;if(e){if(typeof e=="object"){let n=e,r=e;if(!n._def&&!r._zod){let i=Object.values(e);if(i.length>0&&i.every(s=>typeof s=="object"&&s!==null&&(s._def!==void 0||s._zod!==void 0||typeof s.parse=="function")))return wU(e)}}if(yp(e)){let r=(t=e._zod)===null||t===void 0?void 0:t.def;if(r&&(r.type==="object"||r.shape!==void 0))return e}else if(e.shape!==void 0)return e}}function Z_e(e){if(e&&typeof e=="object"){if("message"in e&&typeof e.message=="string")return e.message;if("issues"in e&&Array.isArray(e.issues)&&e.issues.length>0){let t=e.issues[0];if(t&&typeof t=="object"&&"message"in t)return String(t.message)}try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}function Sur(e){var t,n,r,i;if(yp(e))return(n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.description;let s=e;return(r=e.description)!==null&&r!==void 0?r:(i=s._def)===null||i===void 0?void 0:i.description}function bur(e){var t,n,r;if(yp(e))return((n=(t=e._zod)===null||t===void 0?void 0:t.def)===null||n===void 0?void 0:n.type)==="optional";let i=e;return typeof e.isOptional=="function"?e.isOptional():((r=i._def)===null||r===void 0?void 0:r.typeName)==="ZodOptional"}function sPt(e){var t;if(yp(e)){let o=(t=e._zod)===null||t===void 0?void 0:t.def;if(o){if(o.value!==void 0)return o.value;if(Array.isArray(o.values)&&o.values.length>0)return o.values[0]}}let r=e._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let i=e.value;if(i!==void 0)return i}function cPt(e){return Wcr(aPt,e)}function lPt(e){return Kcr(uPt,e)}function fPt(e){return Ycr(dPt,e)}function hPt(e){return Zcr(pPt,e)}function he(e){return Rcr(Rur,e)}function ui(e){return Jcr(yPt,e)}function Zxt(e){return Xcr(Bur,e)}function vc(e){return Qcr(zur,e)}function SPt(e){return $cr(Gur,e)}function xo(){return eur(Vur)}function Kur(e){return tur(Wur,e)}function er(e,t){return fur(Yur,e,t)}function ze(e,t){let n={type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},...Gr.normalizeParams(t)};return new bPt(n)}function Sp(e,t){return new bPt({type:"object",get shape(){return Gr.assignProp(this,"shape",{...e}),this.shape},catchall:xo(),...Gr.normalizeParams(t)})}function Vi(e,t){return new EPt({type:"union",options:e,...Gr.normalizeParams(t)})}function _Pt(e,t,n){return new Zur({type:"union",options:t,discriminator:e,...Gr.normalizeParams(n)})}function GTe(e,t){return new Jur({type:"intersection",left:e,right:t})}function Oo(e,t,n){return new Xur({type:"record",keyType:e,valueType:t,...Gr.normalizeParams(n)})}function Rc(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new fTe({type:"enum",entries:n,...Gr.normalizeParams(t)})}function St(e,t){return new Qur({type:"literal",values:Array.isArray(e)?e:[e],...Gr.normalizeParams(t)})}function TPt(e){return new $ur({type:"transform",transform:e})}function yt(e){return new vPt({type:"optional",innerType:e})}function Jxt(e){return new elr({type:"nullable",innerType:e})}function nlr(e,t){return new tlr({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function ilr(e,t){return new rlr({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}function slr(e,t){return new RPt({type:"nonoptional",innerType:e,...Gr.normalizeParams(t)})}function alr(e,t){return new olr({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}function pTe(e,t){return new clr({type:"pipe",in:e,out:t})}function llr(e){return new ulr({type:"readonly",innerType:e})}function dlr(e,t){let n=new $u({check:"custom",...Gr.normalizeParams(t)});return n._zod.check=e,n}function flr(e,t){return pur(APt,e??(()=>!0),t)}function plr(e,t={}){return hur(APt,e,t)}function hlr(e,t){let n=dlr(r=>(r.addIssue=i=>{if(typeof i=="string")r.issues.push(Gr.issue(i,r.value,n._zod.def));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=n),s.continue??(s.continue=!n._zod.def.abort),r.issues.push(Gr.issue(s))}},e(r.value,r)),t);return n}function wPt(e,t){return pTe(TPt(e),t)}function qdr(e){if(e.params.ref.type!=="ref/prompt")throw new TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function Bdr(e){if(e.params.ref.type!=="ref/resource")throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function Yv(e){return e==="completed"||e==="failed"||e==="cancelled"}function WPt(e,t,n,r){r?.errorMessages&&n&&(e.errorMessage={...e.errorMessage,[t]:n})}function Cr(e,t,n,r,i){e[t]=n,WPt(e,t,r,i)}function Qu(e){if(e.target!=="openAi")return{};let t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:e.$refStrategy==="relative"?KPt(t,e.currentPath):t.join("/")}}function Jdr(e,t){let n={type:"array"};return e.type?._def&&e.type?._def?.typeName!==De.ZodAny&&(n.items=Er(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&Cr(n,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&Cr(n,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(Cr(n,"minItems",e.exactLength.value,e.exactLength.message,t),Cr(n,"maxItems",e.exactLength.value,e.exactLength.message,t)),n}function Xdr(e,t){let n={type:"integer",format:"int64"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function Qdr(){return{type:"boolean"}}function YPt(e,t){return Er(e.type._def,t)}function ZPt(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((i,s)=>ZPt(e,t,i))};switch(r){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return efr(e,t)}}function tfr(e,t){return{...Er(e.innerType._def,t),default:e.defaultValue()}}function nfr(e,t){return t.effectStrategy==="input"?Er(e.schema._def,t):Qu(t)}function rfr(e){return{type:"string",enum:Array.from(e.values)}}function sfr(e,t){let n=[Er(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),Er(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(s=>!!s),r=t.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,i=[];return n.forEach(s=>{if(ifr(s))i.push(...s.allOf),s.unevaluatedProperties===void 0&&(r=void 0);else{let o=s;if("additionalProperties"in s&&s.additionalProperties===!1){let{additionalProperties:a,...c}=s;o=c}else r=void 0;i.push(o)}}),i.length?{allOf:i,...r}:void 0}function ofr(e,t){let n=typeof e.value;return n!=="bigint"&&n!=="number"&&n!=="boolean"&&n!=="string"?{type:Array.isArray(e.value)?"array":"object"}:t.target==="openApi3"?{type:n==="bigint"?"integer":n,enum:[e.value]}:{type:n==="bigint"?"integer":n,const:e.value}}function JPt(e,t){let n={type:"string"};if(e.checks)for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t);break;case"max":Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"email":switch(t.emailStrategy){case"format:email":hp(n,"email",r.message,t);break;case"format:idn-email":hp(n,"idn-email",r.message,t);break;case"pattern:zod":ru(n,pp.email,r.message,t);break}break;case"url":hp(n,"uri",r.message,t);break;case"uuid":hp(n,"uuid",r.message,t);break;case"regex":ru(n,r.regex,r.message,t);break;case"cuid":ru(n,pp.cuid,r.message,t);break;case"cuid2":ru(n,pp.cuid2,r.message,t);break;case"startsWith":ru(n,RegExp(`^${X_e(r.value,t)}`),r.message,t);break;case"endsWith":ru(n,RegExp(`${X_e(r.value,t)}$`),r.message,t);break;case"datetime":hp(n,"date-time",r.message,t);break;case"date":hp(n,"date",r.message,t);break;case"time":hp(n,"time",r.message,t);break;case"duration":hp(n,"duration",r.message,t);break;case"length":Cr(n,"minLength",typeof n.minLength=="number"?Math.max(n.minLength,r.value):r.value,r.message,t),Cr(n,"maxLength",typeof n.maxLength=="number"?Math.min(n.maxLength,r.value):r.value,r.message,t);break;case"includes":{ru(n,RegExp(X_e(r.value,t)),r.message,t);break}case"ip":{r.version!=="v6"&&hp(n,"ipv4",r.message,t),r.version!=="v4"&&hp(n,"ipv6",r.message,t);break}case"base64url":ru(n,pp.base64url,r.message,t);break;case"jwt":ru(n,pp.jwt,r.message,t);break;case"cidr":{r.version!=="v6"&&ru(n,pp.ipv4Cidr,r.message,t),r.version!=="v4"&&ru(n,pp.ipv6Cidr,r.message,t);break}case"emoji":ru(n,pp.emoji(),r.message,t);break;case"ulid":{ru(n,pp.ulid,r.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{hp(n,"binary",r.message,t);break}case"contentEncoding:base64":{Cr(n,"contentEncoding","base64",r.message,t);break}case"pattern:zod":{ru(n,pp.base64,r.message,t);break}}break}case"nanoid":ru(n,pp.nanoid,r.message,t);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return n}function X_e(e,t){return t.patternStrategy==="escape"?cfr(e):e}function cfr(e){let t="";for(let n=0;ni.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&r.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):Cr(e,"format",t,n,r)}function ru(e,t,n,r){e.pattern||e.allOf?.some(i=>i.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&r.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,Object.keys(e.errorMessage).length===0&&delete e.errorMessage)),e.allOf.push({pattern:$xt(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):Cr(e,"pattern",$xt(t,r),n,r)}function $xt(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},r=n.i?e.source.toLowerCase():e.source,i="",s=!1,o=!1,a=!1;for(let c=0;c({...r,[i]:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??Qu(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return n;if(e.keyType?._def.typeName===De.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=JPt(e.keyType._def,t);return{...n,propertyNames:i}}else{if(e.keyType?._def.typeName===De.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===De.ZodBranded&&e.keyType._def.type._def.typeName===De.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=YPt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function ufr(e,t){if(t.mapStrategy==="record")return XPt(e,t);let n=Er(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Qu(t),r=Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Qu(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function lfr(e){let t=e.values,r=Object.keys(e.values).filter(s=>typeof t[t[s]]!="number").map(s=>t[s]),i=Array.from(new Set(r.map(s=>typeof s)));return{type:i.length===1?i[0]==="string"?"string":"number":["string","number"],enum:r}}function dfr(e){return e.target==="openAi"?void 0:{not:Qu({...e,currentPath:[...e.currentPath,"not"]})}}function ffr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function pfr(e,t){if(t.target==="openApi3")return eOt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in B5&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=B5[s._def.typeName];return o&&!i.includes(o)?[...i,o]:i},[]);return{type:r.length>1?r:r[0]}}else if(n.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=n.reduce((i,s)=>{let o=typeof s._def.value;switch(o){case"string":case"number":case"boolean":return[...i,o];case"bigint":return[...i,"integer"];case"object":if(s._def.value===null)return[...i,"null"];default:return i}},[]);if(r.length===n.length){let i=r.filter((s,o,a)=>a.indexOf(s)===o);return{type:i.length>1?i:i[0],enum:n.reduce((s,o)=>s.includes(o._def.value)?s:[...s,o._def.value],[])}}}else if(n.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((r,i)=>[...r,...i._def.values.filter(s=>!r.includes(s))],[])};return eOt(e,t)}function hfr(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:B5[e.innerType._def.typeName],nullable:!0}:{type:[B5[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let r=Er(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let n=Er(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function mfr(e,t){let n={type:"number"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"int":n.type="integer",WPt(n,"type",r.message,t);break;case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function gfr(e,t){let n=t.target==="openAi",r={type:"object",properties:{}},i=[],s=e.shape();for(let a in s){let c=s[a];if(c===void 0||c._def===void 0)continue;let u=Sfr(c);u&&n&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),u=!1);let l=Er(c._def,{...t,currentPath:[...t.currentPath,"properties",a],propertyPath:[...t.currentPath,"properties",a]});l!==void 0&&(r.properties[a]=l,u||i.push(a))}i.length&&(r.required=i);let o=yfr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function yfr(e,t){if(e.catchall._def.typeName!=="ZodNever")return Er(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function Sfr(e){try{return e.isOptional()}catch{return!0}}function _fr(e,t){return Er(e.type._def,t)}function Tfr(e,t){let r={type:"array",uniqueItems:!0,items:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&Cr(r,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&Cr(r,"maxItems",e.maxSize.value,e.maxSize.message,t),r}function vfr(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((n,r)=>Er(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:Er(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,r)=>Er(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[])}}function Rfr(e){return{not:Qu(e)}}function Afr(e){return Qu(e)}function Er(e,t,n=!1){let r=t.seen.get(e);if(t.override){let a=t.override?.(e,t,r,n);if(a!==Kdr)return a}if(r&&!n){let a=Ifr(r,t);if(a!==void 0)return a}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let s=kfr(e,e.typeName,t),o=typeof s=="function"?Er(s(),t):s;if(o&&xfr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function Pfr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function tOt(e,t){var n,r,i;return yp(e)?mur(e,{target:Pfr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):Ofr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function nOt(e){let t=BU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=sPt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function rOt(e,t){let n=AU(e,t);if(!n.success)throw n.error;return n.data}function iOt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Cfr(e,t){let n={...e};for(let r in t){let i=r,s=t[i];if(s===void 0)continue;let o=n[i];iOt(o)&&iOt(s)?n[i]={...o,...s}:n[i]=s}return n}function Lfr(){let e=new Mfr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=Dfr.default;return t(e),e}function Ufr(e,t,n){var r;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!(!((r=e.tools)===null||r===void 0)&&r.call))throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function Ffr(e,t,n){var r,i;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!(!((r=e.sampling)===null||r===void 0)&&r.createMessage))throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!(!((i=e.elicitation)===null||i===void 0)&&i.create))throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}function jfr(e){return!!e&&typeof e=="object"&&QPt in e}function Hfr(e){let t=e[QPt];return t?.complete}function Bfr(e){let t=[];if(e.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(" ")&&t.push("Tool name contains spaces, which may cause parsing issues"),e.includes(",")&&t.push("Tool name contains commas, which may cause parsing issues"),(e.startsWith("-")||e.endsWith("-"))&&t.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(e.startsWith(".")||e.endsWith("."))&&t.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!qfr.test(e)){let n=e.split("").filter(r=>!/[A-Za-z0-9._-]/.test(r)).filter((r,i,s)=>s.indexOf(r)===i);return t.push(`Tool name contains invalid characters: ${n.map(r=>`"${r}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function zfr(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let n of t)console.warn(` - ${n}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function oOt(e){let t=Bfr(e);return zfr(e,t.warnings),t.isValid}function $Pt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function Vfr(e){return"_def"in e||"_zod"in e||$Pt(e)}function ITe(e){return typeof e!="object"||e===null||Vfr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some($Pt)}function aOt(e){if(e)return ITe(e)?RU(e):e}function Wfr(e){let t=BU(e);return t?Object.entries(t).map(([n,r])=>{let i=Sur(r),s=bur(r);return{name:n,description:i,required:!s}}):[]}function $b(e){let t=BU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=sPt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function cOt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function Kfr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function Yfr(e){let t=new kTe({name:e.name,version:e.version??"1.0.0"},{capabilities:{tools:e.tools?{}:void 0}});return e.tools&&e.tools.forEach(n=>{t.tool(n.name,n.description,n.inputSchema,n.handler)}),{type:"sdk",name:e.name,instance:t}}function Zfr({prompt:e,options:t}){let{systemPrompt:n,settingSources:r,sandbox:i,...s}=t??{},o,a;n===void 0?o="":typeof n=="string"?o=n:n.type==="preset"&&(a=n.append);let c=s.pathToClaudeCodeExecutable;if(!c){let le=mrr(import.meta.url),Ee=bxt(le,"..");c=bxt(Ee,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=NTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:g,disallowedTools:y=[],tools:b,env:S,executable:E=DTe()?"bun":"node",executableArgs:_=[],extraArgs:T={},fallbackModel:R,enableFileCheckpointing:A,forkSession:x,hooks:k,includePartialMessages:P,persistSession:N,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,mcpServers:W,model:$,outputFormat:q,permissionMode:Q="default",allowDangerouslySkipPermissions:B=!1,permissionPromptToolName:F,plugins:V,resume:U,resumeSessionAt:M,stderr:H,strictMcpConfig:j}=s,Y=q?.type==="json_schema"?q.schema:void 0,ee=S;if(ee||(ee={...process.env}),ee.CLAUDE_CODE_ENTRYPOINT||(ee.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),A&&(ee.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let se={},Le=new Map;if(W)for(let[le,Ee]of Object.entries(W))Ee.type==="sdk"&&"instance"in Ee?(Le.set(le,Ee.instance),se[le]={type:"sdk",name:le}):se[le]=Ee;let Ae=typeof e=="string",z=new I5({abortController:u,additionalDirectories:l,betas:p,cwd:g,executable:E,executableArgs:_,extraArgs:T,pathToClaudeCodeExecutable:c,env:ee,forkSession:x,stderr:H,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,model:$,fallbackModel:R,jsonSchema:Y,permissionMode:Q,allowDangerouslySkipPermissions:B,permissionPromptToolName:F,continueConversation:m,resume:U,resumeSessionAt:M,settingSources:r??[],allowedTools:f,disallowedTools:y,tools:b,mcpServers:se,strictMcpConfig:j,canUseTool:!!h,hooks:!!k,includePartialMessages:P,persistSession:N,plugins:V,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new O5(z,Ae,h,k,u,Le,Y,J);return typeof e=="string"?z.write(im({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` -`):oe.streamInput(e),oe}function Jfr(e){return OOt(e)}function Xfr(e,t){return Bsr(e,t)}async function Qfr(e,t){let n=[];try{let o=gnr(n,OOt(t),1);await o.send(e);for await(let a of o.stream())if(a.type==="result")return a;throw new Error("Session ended without result message")}catch(o){var r=o,i=1}finally{var s=ynr(n,r,i);s&&await s}}var lnr,dnr,X_e,fnr,pnr,uOt,Xe,lOt,hnr,mnr,gnr,ynr,A5,Sxt,_n,ur,sE,z5,Snr,dOt,fOt,w5,bnr,bp,Enr,_nr,pOt,Tnr,G5,V5,xTe,W5,OTe,vnr,Rnr,Anr,wnr,knr,Inr,xnr,Onr,Pnr,Nnr,Cnr,Mnr,Dnr,Lnr,Unr,Fnr,jnr,Hnr,PTe,qnr,Bnr,znr,Gnr,hOt,mOt,Vnr,Wnr,Knr,Ynr,Znr,gOt,Jnr,Xnr,Qnr,$nr,err,trr,nrr,rrr,irr,srr,orr,arr,crr,urr,lrr,drr,yOt,frr,prr,hrr,yrr,_rr,Trr,vrr,Rrr,CTe,Arr,k5,SOt,wrr,krr,SU,xrr,Orr,Prr,Crr,Mrr,Drr,Ext,Urr,bOt,jrr,Hrr,qrr,Brr,Grr,Vrr,B_e,_xt,Krr,Yrr,Zrr,Xrr,Qrr,$rr,eir,tir,nir,rir,iir,oir,cir,EOt,lir,wU,fir,hir,mir,gir,yir,bir,Eir,_ir,vir,Rir,wir,Txt,Iir,Oir,K5,Nir,Cir,Dir,Uir,jir,qir,Bir,zir,Gir,Wir,Yir,Y5,Xir,$ir,tsr,rsr,_Ot,isr,HU,vxt,osr,z_e,b5,msr,LPi,gsr,Ssr,Axt,AOt,kOt,vsr,Rsr,IOt,wsr,E5,Isr,xsr,Osr,Psr,Nsr,tE,_5,kxt,I5,x5,$_e,O5,P5,ir,xxt,nt,eE,xe,Zd,zsr,kU,Gsr,tTe,iu,Vt,_U,Xu,Oxt,Pxt,Nx,N5,lt,Jd,Nxt,Tn,Vsr,Wsr,Ksr,Ysr,Zsr,Jsr,Xsr,Qsr,$sr,G_e,eor,tor,nor,ror,ior,sor,POt,oor,Cx,IU,xU,OU,PU,NU,Mx,Dx,CU,rE,om,MU,iE,Fl,Lx,Yg,nTe,Ux,Qg,iTe,DU,LU,sTe,Fx,jx,Hx,qx,Zv,gp,mp,$g,Bx,zx,UU,C5,M5,Gx,zPi,De,GPi,VPi,WPi,KPi,YPi,ZPi,JPi,XPi,QPi,$Pi,eNi,tNi,nNi,rNi,hor,iNi,sNi,oNi,aNi,cNi,uNi,lNi,dNi,fNi,pNi,hNi,mNi,gNi,yNi,SNi,bNi,ENi,_Ni,TNi,vNi,Jv,oTe,Gr,FTe,LOt,Ror,UOt,Aor,jOt,kor,cTe,qOt,BOt,$5,zOt,For,GOt,jor,VOt,HTe,WOt,qTe,Hor,qor,Bor,zor,Gor,Vor,Wor,Kor,Cxt,Yor,Zor,Xor,Qor,$or,ear,tar,KOt,nar,rar,YOt,iar,aar,car,uar,lar,dar,far,par,$u,JOt,XOt,QOt,har,mar,gar,yar,Sar,e8,bar,Ear,_ar,Tar,Rar,Aar,war,uTe,kar,li,BTe,Gi,Iar,xar,Oar,Par,Nar,Car,Mar,Dar,Lar,Uar,Far,jar,Har,qar,Bar,zar,Gar,Var,War,Kar,Zar,Jar,Qar,ePt,$ar,ecr,tcr,ncr,rcr,icr,tPt,nPt,scr,ocr,acr,ccr,ucr,lcr,dcr,fcr,pcr,hcr,mcr,gcr,ycr,Scr,bcr,Ecr,_cr,D5,vU,U5,gur,yur,oPt,aPt,uPt,dPt,pPt,mPt,RNi,t8,Eur,_ur,Tur,vur,ss,gPt,Rur,os,Aur,Yxt,v5,wur,kur,Iur,xur,Our,Pur,Nur,Cur,Mur,Dur,Lur,Uur,Fur,jur,Hur,qur,yPt,Bur,zur,Gur,Vur,Wur,Yur,bPt,EPt,Zur,Jur,Xur,dTe,Qur,$ur,vPt,elr,tlr,rlr,RPt,olr,clr,ulr,APt,kPt,mlr,Jg,n8,sm,IPt,xPt,glr,GTe,ylr,el,ja,Xv,Xd,Ac,r8,OPt,Xxt,PPt,Slr,NPt,R5,Ft,CPt,blr,ANi,VTe,Elr,WTe,_lr,zU,Vx,MPt,Tlr,vlr,Rlr,Alr,wlr,klr,DPt,Ilr,xlr,LPt,KTe,Olr,Plr,YTe,Nlr,GU,VU,WU,i8,Clr,F5,ZTe,JTe,XTe,QTe,$Te,Mlr,Dlr,UPt,FPt,eve,jPt,Jx,HPt,Llr,pTe,Ulr,hTe,Flr,tve,jlr,mTe,Hlr,qlr,Blr,zlr,Glr,Vlr,Wlr,Klr,Ylr,Zlr,gTe,Jlr,Xlr,yTe,nve,rve,ive,Qlr,$lr,edr,sve,tdr,ndr,rdr,idr,sdr,qPt,STe,odr,ove,wNi,adr,j5,cdr,H5,udr,BPt,ldr,ddr,fdr,pdr,hdr,mdr,gdr,q5,ydr,Sdr,bdr,zPt,GPt,Edr,_dr,Tdr,vdr,Rdr,Adr,wdr,kdr,Idr,xdr,Odr,Pdr,Ndr,Cdr,Mdr,Ddr,Ldr,Udr,bTe,Fdr,jdr,Hdr,ETe,zdr,Gdr,Vdr,VPt,Wdr,kNi,INi,xNi,ONi,PNi,NNi,Et,_Te,Kdr,Qxt,Ydr,Zdr,KPt,$dr,efr,ifr,Z_e,pp,afr,B5,eOt,bfr,Efr,wfr,kfr,Ifr,xfr,Ofr,Nfr,TTe,Mfr,Dfr,vTe,RTe,ATe,QPt,sOt,qfr,wTe,kTe,Gfr,EU,tNt=v(()=>{lnr=Object.create,dnr=Object.getPrototypeOf,X_e=Object.defineProperty,fnr=Object.getOwnPropertyNames,pnr=Object.prototype.hasOwnProperty,uOt=(e,t,n)=>{n=e!=null?lnr(dnr(e)):{};let r=t||!e||!e.__esModule?X_e(n,"default",{value:e,enumerable:!0}):n;for(let i of fnr(e))pnr.call(r,i)||X_e(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),lOt=(e,t)=>{for(var n in t)X_e(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},hnr=Symbol.dispose||Symbol.for("Symbol.dispose"),mnr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),gnr=(e,t,n)=>{if(t!=null){if(typeof t!="object"&&typeof t!="function")throw TypeError('Object expected to be assigned to "using" declaration');var r;if(n&&(r=t[mnr]),r===void 0&&(r=t[hnr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},ynr=(e,t,n)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(o,a,c,u){return u=Error(c),u.name="SuppressedError",u.error=o,u.suppressed=a,u},i=o=>t=n?new r(o,t,"An error was suppressed during disposal"):(n=!0,o),s=o=>{for(;o=e.pop();)try{var a=o[1]&&o[1].call(o[2]);if(o[0])return Promise.resolve(a).then(s,c=>(i(c),s()))}catch(c){i(c)}if(n)throw t};return s()},A5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class n extends t{constructor(b){if(super(),!e.IDENTIFIER.test(b))throw new Error("CodeGen: name must be a valid identifier");this.str=b}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=n;class r extends t{constructor(b){super(),this._items=typeof b=="string"?[b]:b}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let b=this._items[0];return b===""||b==='""'}get str(){var b;return(b=this._str)!==null&&b!==void 0?b:this._str=this._items.reduce((S,E)=>`${S}${E}`,"")}get names(){var b;return(b=this._names)!==null&&b!==void 0?b:this._names=this._items.reduce((S,E)=>(E instanceof n&&(S[E.str]=(S[E.str]||0)+1),S),{})}}e._Code=r,e.nil=new r("");function i(y,...b){let S=[y[0]],E=0;for(;E{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=A5();class n extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var r;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};class i{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof t.Name?u:this.name(u)}name(u){return new t.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}e.Scope=i;class s extends t.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,t._)`.${new t.Name(l)}[${d}]`}}e.ValueScopeName=s;var o=(0,t._)`\n`;class a extends i{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?o:t.nil}}get(){return this._scope}name(u){return new s(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let f=this.toName(u),{prefix:p}=f,h=(d=l.key)!==null&&d!==void 0?d:l.ref,m=this._values[p];if(m){let b=m.get(h);if(b)return b}else m=this._values[p]=new Map;m.set(h,f);let g=this._scope[p]||(this._scope[p]=[]),y=g.length;return g[y]=l.ref,f.setValue(l,{property:p,itemIndex:y}),f}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,t._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,f=>{if(f.value===void 0)throw new Error(`CodeGen: name "${f}" has no value`);return f.value.code},l,d)}_reduceValues(u,l,d={},f){let p=t.nil;for(let h in u){let m=u[h];if(!m)continue;let g=d[h]=d[h]||new Map;m.forEach(y=>{if(g.has(y))return;g.set(y,r.Started);let b=l(y);if(b){let S=this.opts.es5?e.varKinds.var:e.varKinds.const;p=(0,t._)`${p}${S} ${y} = ${b};${this.opts._n}`}else if(b=f?.(y))p=(0,t._)`${p}${b}${this.opts._n}`;else throw new n(y);g.set(y,r.Completed)})}return p}}e.ValueScope=a}),_n=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;var t=A5(),n=Sxt(),r=A5();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var i=Sxt();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class s{optimizeNodes(){return this}optimizeNames(M,H){return this}}class o extends s{constructor(M,H,j){super(),this.varKind=M,this.name=H,this.rhs=j}render({es5:M,_n:H}){let j=M?n.varKinds.var:this.varKind,Y=this.rhs===void 0?"":` = ${this.rhs}`;return`${j} ${this.name}${Y};`+H}optimizeNames(M,H){if(M[this.name.str])return this.rhs&&(this.rhs=L(this.rhs,M,H)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(M,H,j){super(),this.lhs=M,this.rhs=H,this.sideEffects=j}render({_n:M}){return`${this.lhs} = ${this.rhs};`+M}optimizeNames(M,H){if(!(this.lhs instanceof t.Name&&!M[this.lhs.str]&&!this.sideEffects))return this.rhs=L(this.rhs,M,H),this}get names(){let M=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(M,this.rhs)}}class c extends a{constructor(M,H,j,Y){super(M,j,Y),this.op=H}render({_n:M}){return`${this.lhs} ${this.op}= ${this.rhs};`+M}}class u extends s{constructor(M){super(),this.label=M,this.names={}}render({_n:M}){return`${this.label}:`+M}}class l extends s{constructor(M){super(),this.label=M,this.names={}}render({_n:M}){return`break${this.label?` ${this.label}`:""};`+M}}class d extends s{constructor(M){super(),this.error=M}render({_n:M}){return`throw ${this.error};`+M}get names(){return this.error.names}}class f extends s{constructor(M){super(),this.code=M}render({_n:M}){return`${this.code};`+M}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(M,H){return this.code=L(this.code,M,H),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class p extends s{constructor(M=[]){super(),this.nodes=M}render(M){return this.nodes.reduce((H,j)=>H+j.render(M),"")}optimizeNodes(){let{nodes:M}=this,H=M.length;for(;H--;){let j=M[H].optimizeNodes();Array.isArray(j)?M.splice(H,1,...j):j?M[H]=j:M.splice(H,1)}return M.length>0?this:void 0}optimizeNames(M,H){let{nodes:j}=this,Y=j.length;for(;Y--;){let ee=j[Y];ee.optimizeNames(M,H)||(G(M,ee.names),j.splice(Y,1))}return j.length>0?this:void 0}get names(){return this.nodes.reduce((M,H)=>N(M,H.names),{})}}class h extends p{render(M){return"{"+M._n+super.render(M)+"}"+M._n}}class m extends p{}class g extends h{}g.kind="else";class y extends h{constructor(M,H){super(H),this.condition=M}render(M){let H=`if(${this.condition})`+super.render(M);return this.else&&(H+="else "+this.else.render(M)),H}optimizeNodes(){super.optimizeNodes();let M=this.condition;if(M===!0)return this.nodes;let H=this.else;if(H){let j=H.optimizeNodes();H=this.else=Array.isArray(j)?new g(j):j}if(H)return M===!1?H instanceof y?H:H.nodes:this.nodes.length?this:new y(W(M),H instanceof y?[H]:H.nodes);if(!(M===!1||!this.nodes.length))return this}optimizeNames(M,H){var j;if(this.else=(j=this.else)===null||j===void 0?void 0:j.optimizeNames(M,H),!!(super.optimizeNames(M,H)||this.else))return this.condition=L(this.condition,M,H),this}get names(){let M=super.names;return C(M,this.condition),this.else&&N(M,this.else.names),M}}y.kind="if";class b extends h{}b.kind="for";class S extends b{constructor(M){super(),this.iteration=M}render(M){return`for(${this.iteration})`+super.render(M)}optimizeNames(M,H){if(super.optimizeNames(M,H))return this.iteration=L(this.iteration,M,H),this}get names(){return N(super.names,this.iteration.names)}}class E extends b{constructor(M,H,j,Y){super(),this.varKind=M,this.name=H,this.from=j,this.to=Y}render(M){let H=M.es5?n.varKinds.var:this.varKind,{name:j,from:Y,to:ee}=this;return`for(${H} ${j}=${Y}; ${j}<${ee}; ${j}++)`+super.render(M)}get names(){let M=C(super.names,this.from);return C(M,this.to)}}class _ extends b{constructor(M,H,j,Y){super(),this.loop=M,this.varKind=H,this.name=j,this.iterable=Y}render(M){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(M)}optimizeNames(M,H){if(super.optimizeNames(M,H))return this.iterable=L(this.iterable,M,H),this}get names(){return N(super.names,this.iterable.names)}}class T extends h{constructor(M,H,j){super(),this.name=M,this.args=H,this.async=j}render(M){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(M)}}T.kind="func";class R extends p{render(M){return"return "+super.render(M)}}R.kind="return";class A extends h{render(M){let H="try"+super.render(M);return this.catch&&(H+=this.catch.render(M)),this.finally&&(H+=this.finally.render(M)),H}optimizeNodes(){var M,H;return super.optimizeNodes(),(M=this.catch)===null||M===void 0||M.optimizeNodes(),(H=this.finally)===null||H===void 0||H.optimizeNodes(),this}optimizeNames(M,H){var j,Y;return super.optimizeNames(M,H),(j=this.catch)===null||j===void 0||j.optimizeNames(M,H),(Y=this.finally)===null||Y===void 0||Y.optimizeNames(M,H),this}get names(){let M=super.names;return this.catch&&N(M,this.catch.names),this.finally&&N(M,this.finally.names),M}}class x extends h{constructor(M){super(),this.error=M}render(M){return`catch(${this.error})`+super.render(M)}}x.kind="catch";class k extends h{render(M){return"finally"+super.render(M)}}k.kind="finally";class P{constructor(M,H={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...H,_n:H.lines?` -`:""},this._extScope=M,this._scope=new n.Scope({parent:M}),this._nodes=[new m]}toString(){return this._root.render(this.opts)}name(M){return this._scope.name(M)}scopeName(M){return this._extScope.name(M)}scopeValue(M,H){let j=this._extScope.value(M,H);return(this._values[j.prefix]||(this._values[j.prefix]=new Set)).add(j),j}getScopeValue(M,H){return this._extScope.getValue(M,H)}scopeRefs(M){return this._extScope.scopeRefs(M,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(M,H,j,Y){let ee=this._scope.toName(H);return j!==void 0&&Y&&(this._constants[ee.str]=j),this._leafNode(new o(M,ee,j)),ee}const(M,H,j){return this._def(n.varKinds.const,M,H,j)}let(M,H,j){return this._def(n.varKinds.let,M,H,j)}var(M,H,j){return this._def(n.varKinds.var,M,H,j)}assign(M,H,j){return this._leafNode(new a(M,H,j))}add(M,H){return this._leafNode(new c(M,e.operators.ADD,H))}code(M){return typeof M=="function"?M():M!==t.nil&&this._leafNode(new f(M)),this}object(...M){let H=["{"];for(let[j,Y]of M)H.length>1&&H.push(","),H.push(j),(j!==Y||this.opts.es5)&&(H.push(":"),(0,t.addCodeArg)(H,Y));return H.push("}"),new t._Code(H)}if(M,H,j){if(this._blockNode(new y(M)),H&&j)this.code(H).else().code(j).endIf();else if(H)this.code(H).endIf();else if(j)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(M){return this._elseNode(new y(M))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(y,g)}_for(M,H){return this._blockNode(M),H&&this.code(H).endFor(),this}for(M,H){return this._for(new S(M),H)}forRange(M,H,j,Y,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(M);return this._for(new E(ee,se,H,j),()=>Y(se))}forOf(M,H,j,Y=n.varKinds.const){let ee=this._scope.toName(M);if(this.opts.es5){let se=H instanceof t.Name?H:this.var("_arr",H);return this.forRange("_i",0,(0,t._)`${se}.length`,Le=>{this.var(ee,(0,t._)`${se}[${Le}]`),j(ee)})}return this._for(new _("of",Y,ee,H),()=>j(ee))}forIn(M,H,j,Y=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(M,(0,t._)`Object.keys(${H})`,j);let ee=this._scope.toName(M);return this._for(new _("in",Y,ee,H),()=>j(ee))}endFor(){return this._endBlockNode(b)}label(M){return this._leafNode(new u(M))}break(M){return this._leafNode(new l(M))}return(M){let H=new R;if(this._blockNode(H),this.code(M),H.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(R)}try(M,H,j){if(!H&&!j)throw new Error('CodeGen: "try" without "catch" and "finally"');let Y=new A;if(this._blockNode(Y),this.code(M),H){let ee=this.name("e");this._currNode=Y.catch=new x(ee),H(ee)}return j&&(this._currNode=Y.finally=new k,this.code(j)),this._endBlockNode(x,k)}throw(M){return this._leafNode(new d(M))}block(M,H){return this._blockStarts.push(this._nodes.length),M&&this.code(M).endBlock(H),this}endBlock(M){let H=this._blockStarts.pop();if(H===void 0)throw new Error("CodeGen: not in self-balancing block");let j=this._nodes.length-H;if(j<0||M!==void 0&&j!==M)throw new Error(`CodeGen: wrong number of nodes: ${j} vs ${M} expected`);return this._nodes.length=H,this}func(M,H=t.nil,j,Y){return this._blockNode(new T(M,H,j)),Y&&this.code(Y).endFunc(),this}endFunc(){return this._endBlockNode(T)}optimize(M=1){for(;M-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(M){return this._currNode.nodes.push(M),this}_blockNode(M){this._currNode.nodes.push(M),this._nodes.push(M)}_endBlockNode(M,H){let j=this._currNode;if(j instanceof M||H&&j instanceof H)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${H?`${M.kind}/${H.kind}`:M.kind}"`)}_elseNode(M){let H=this._currNode;if(!(H instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=H.else=M,this}get _root(){return this._nodes[0]}get _currNode(){let M=this._nodes;return M[M.length-1]}set _currNode(M){let H=this._nodes;H[H.length-1]=M}}e.CodeGen=P;function N(U,M){for(let H in M)U[H]=(U[H]||0)+(M[H]||0);return U}function C(U,M){return M instanceof t._CodeOrName?N(U,M.names):U}function L(U,M,H){if(U instanceof t.Name)return j(U);if(!Y(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=j(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function j(ee){let se=H[ee.str];return se===void 0||M[ee.str]!==1?ee:(delete M[ee.str],se)}function Y(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&M[se.str]===1&&H[se.str]!==void 0)}}function G(U,M){for(let H in M)U[H]=(U[H]||0)-(M[H]||0)}function W(U){return typeof U=="boolean"||typeof U=="number"||U===null?!U:(0,t._)`!${V(U)}`}e.not=W;var $=F(e.operators.AND);function q(...U){return U.reduce($)}e.and=q;var Q=F(e.operators.OR);function B(...U){return U.reduce(Q)}e.or=B;function F(U){return(M,H)=>M===t.nil?H:H===t.nil?M:(0,t._)`${V(M)} ${U} ${V(H)}`}function V(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),ur=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;var t=_n(),n=A5();function r(T){let R={};for(let A of T)R[A]=!0;return R}e.toHash=r;function i(T,R){return typeof R=="boolean"?R:Object.keys(R).length===0?!0:(s(T,R),!o(R,T.self.RULES.all))}e.alwaysValidSchema=i;function s(T,R=T.schema){let{opts:A,self:x}=T;if(!A.strictSchema||typeof R=="boolean")return;let k=x.RULES.keywords;for(let P in R)k[P]||_(T,`unknown keyword: "${P}"`)}e.checkUnknownRules=s;function o(T,R){if(typeof T=="boolean")return!T;for(let A in T)if(R[A])return!0;return!1}e.schemaHasRules=o;function a(T,R){if(typeof T=="boolean")return!T;for(let A in T)if(A!=="$ref"&&R.all[A])return!0;return!1}e.schemaHasRulesButRef=a;function c({topSchemaRef:T,schemaPath:R},A,x,k){if(!k){if(typeof A=="number"||typeof A=="boolean")return A;if(typeof A=="string")return(0,t._)`${A}`}return(0,t._)`${T}${R}${(0,t.getProperty)(x)}`}e.schemaRefOrVal=c;function u(T){return f(decodeURIComponent(T))}e.unescapeFragment=u;function l(T){return encodeURIComponent(d(T))}e.escapeFragment=l;function d(T){return typeof T=="number"?`${T}`:T.replace(/~/g,"~0").replace(/\//g,"~1")}e.escapeJsonPointer=d;function f(T){return T.replace(/~1/g,"/").replace(/~0/g,"~")}e.unescapeJsonPointer=f;function p(T,R){if(Array.isArray(T))for(let A of T)R(A);else R(T)}e.eachItem=p;function h({mergeNames:T,mergeToName:R,mergeValues:A,resultToName:x}){return(k,P,N,C)=>{let L=N===void 0?P:N instanceof t.Name?(P instanceof t.Name?T(k,P,N):R(k,P,N),N):P instanceof t.Name?(R(k,N,P),P):A(P,N);return C===t.Name&&!(L instanceof t.Name)?x(k,L):L}}e.mergeEvaluated={props:h({mergeNames:(T,R,A)=>T.if((0,t._)`${A} !== true && ${R} !== undefined`,()=>{T.if((0,t._)`${R} === true`,()=>T.assign(A,!0),()=>T.assign(A,(0,t._)`${A} || {}`).code((0,t._)`Object.assign(${A}, ${R})`))}),mergeToName:(T,R,A)=>T.if((0,t._)`${A} !== true`,()=>{R===!0?T.assign(A,!0):(T.assign(A,(0,t._)`${A} || {}`),g(T,A,R))}),mergeValues:(T,R)=>T===!0?!0:{...T,...R},resultToName:m}),items:h({mergeNames:(T,R,A)=>T.if((0,t._)`${A} !== true && ${R} !== undefined`,()=>T.assign(A,(0,t._)`${R} === true ? true : ${A} > ${R} ? ${A} : ${R}`)),mergeToName:(T,R,A)=>T.if((0,t._)`${A} !== true`,()=>T.assign(A,R===!0?!0:(0,t._)`${A} > ${R} ? ${A} : ${R}`)),mergeValues:(T,R)=>T===!0?!0:Math.max(T,R),resultToName:(T,R)=>T.var("items",R)})};function m(T,R){if(R===!0)return T.var("props",!0);let A=T.var("props",(0,t._)`{}`);return R!==void 0&&g(T,A,R),A}e.evaluatedPropsToName=m;function g(T,R,A){Object.keys(A).forEach(x=>T.assign((0,t._)`${R}${(0,t.getProperty)(x)}`,!0))}e.setEvaluated=g;var y={};function b(T,R){return T.scopeValue("func",{ref:R,code:y[R.code]||(y[R.code]=new n._Code(R.code))})}e.useFunc=b;var S;(function(T){T[T.Num=0]="Num",T[T.Str=1]="Str"})(S||(e.Type=S={}));function E(T,R,A){if(T instanceof t.Name){let x=R===S.Num;return A?x?(0,t._)`"[" + ${T} + "]"`:(0,t._)`"['" + ${T} + "']"`:x?(0,t._)`"/" + ${T}`:(0,t._)`"/" + ${T}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return A?(0,t.getProperty)(T).toString():"/"+d(T)}e.getErrorPath=E;function _(T,R,A=T.opts.strictSchema){if(A){if(R=`strict mode: ${R}`,A===!0)throw new Error(R);T.self.logger.warn(R)}}e.checkStrictMode=_}),sE=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={data:new t.Name("data"),valCxt:new t.Name("valCxt"),instancePath:new t.Name("instancePath"),parentData:new t.Name("parentData"),parentDataProperty:new t.Name("parentDataProperty"),rootData:new t.Name("rootData"),dynamicAnchors:new t.Name("dynamicAnchors"),vErrors:new t.Name("vErrors"),errors:new t.Name("errors"),this:new t.Name("this"),self:new t.Name("self"),scope:new t.Name("scope"),json:new t.Name("json"),jsonPos:new t.Name("jsonPos"),jsonLen:new t.Name("jsonLen"),jsonPart:new t.Name("jsonPart")};e.default=n}),z5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;var t=_n(),n=ur(),r=sE();e.keywordError={message:({keyword:g})=>(0,t.str)`must pass "${g}" keyword validation`},e.keyword$DataError={message:({keyword:g,schemaType:y})=>y?(0,t.str)`"${g}" keyword must be ${y} ($data)`:(0,t.str)`"${g}" keyword is invalid ($data)`};function i(g,y=e.keywordError,b,S){let{it:E}=g,{gen:_,compositeRule:T,allErrors:R}=E,A=d(g,y,b);S??(T||R)?c(_,A):u(E,(0,t._)`[${A}]`)}e.reportError=i;function s(g,y=e.keywordError,b){let{it:S}=g,{gen:E,compositeRule:_,allErrors:T}=S,R=d(g,y,b);c(E,R),_||T||u(S,r.default.vErrors)}e.reportExtraError=s;function o(g,y){g.assign(r.default.errors,y),g.if((0,t._)`${r.default.vErrors} !== null`,()=>g.if(y,()=>g.assign((0,t._)`${r.default.vErrors}.length`,y),()=>g.assign(r.default.vErrors,null)))}e.resetErrorsCount=o;function a({gen:g,keyword:y,schemaValue:b,data:S,errsCount:E,it:_}){if(E===void 0)throw new Error("ajv implementation error");let T=g.name("err");g.forRange("i",E,r.default.errors,R=>{g.const(T,(0,t._)`${r.default.vErrors}[${R}]`),g.if((0,t._)`${T}.instancePath === undefined`,()=>g.assign((0,t._)`${T}.instancePath`,(0,t.strConcat)(r.default.instancePath,_.errorPath))),g.assign((0,t._)`${T}.schemaPath`,(0,t.str)`${_.errSchemaPath}/${y}`),_.opts.verbose&&(g.assign((0,t._)`${T}.schema`,b),g.assign((0,t._)`${T}.data`,S))})}e.extendErrors=a;function c(g,y){let b=g.const("err",y);g.if((0,t._)`${r.default.vErrors} === null`,()=>g.assign(r.default.vErrors,(0,t._)`[${b}]`),(0,t._)`${r.default.vErrors}.push(${b})`),g.code((0,t._)`${r.default.errors}++`)}function u(g,y){let{gen:b,validateName:S,schemaEnv:E}=g;E.$async?b.throw((0,t._)`new ${g.ValidationError}(${y})`):(b.assign((0,t._)`${S}.errors`,y),b.return(!1))}var l={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function d(g,y,b){let{createErrors:S}=g.it;return S===!1?(0,t._)`{}`:f(g,y,b)}function f(g,y,b={}){let{gen:S,it:E}=g,_=[p(E,b),h(g,b)];return m(g,y,_),S.object(..._)}function p({errorPath:g},{instancePath:y}){let b=y?(0,t.str)`${g}${(0,n.getErrorPath)(y,n.Type.Str)}`:g;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,b)]}function h({keyword:g,it:{errSchemaPath:y}},{schemaPath:b,parentSchema:S}){let E=S?y:(0,t.str)`${y}/${g}`;return b&&(E=(0,t.str)`${E}${(0,n.getErrorPath)(b,n.Type.Str)}`),[l.schemaPath,E]}function m(g,{params:y,message:b},S){let{keyword:E,data:_,schemaValue:T,it:R}=g,{opts:A,propertyName:x,topSchemaRef:k,schemaPath:P}=R;S.push([l.keyword,E],[l.params,typeof y=="function"?y(g):y||(0,t._)`{}`]),A.messages&&S.push([l.message,typeof b=="function"?b(g):b]),A.verbose&&S.push([l.schema,T],[l.parentSchema,(0,t._)`${k}${P}`],[r.default.data,_]),x&&S.push([l.propertyName,x])}}),Snr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=z5(),n=_n(),r=sE(),i={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?a(c,!1):typeof l=="object"&&l.$async===!0?u.return(r.default.data):(u.assign((0,n._)`${d}.errors`,null),u.return(!0))}e.topBoolOrEmptySchema=s;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),a(c)):l.var(u,!0)}e.boolOrEmptySchema=o;function a(c,u){let{gen:l,data:d}=c,f={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,t.reportError)(f,i,void 0,u)}}),dOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getRules=e.isJSONType=void 0;var t=["string","number","integer","boolean","null","object","array"],n=new Set(t);function r(s){return typeof s=="string"&&n.has(s)}e.isJSONType=r;function i(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=i}),fOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:i,self:s},o){let a=s.RULES.types[o];return a&&a!==!0&&n(i,a)}e.schemaHasRulesForType=t;function n(i,s){return s.rules.some(o=>r(i,o))}e.shouldUseGroup=n;function r(i,s){var o;return i[s.keyword]!==void 0||((o=s.definition.implements)===null||o===void 0?void 0:o.some(a=>i[a]!==void 0))}e.shouldUseRule=r}),w5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;var t=dOt(),n=fOt(),r=z5(),i=_n(),s=ur(),o;(function(S){S[S.Correct=0]="Correct",S[S.Wrong=1]="Wrong"})(o||(e.DataType=o={}));function a(S){let E=c(S.type);if(E.includes("null")){if(S.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!E.length&&S.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');S.nullable===!0&&E.push("null")}return E}e.getSchemaTypes=a;function c(S){let E=Array.isArray(S)?S:S?[S]:[];if(E.every(t.isJSONType))return E;throw new Error("type must be JSONType or JSONType[]: "+E.join(","))}e.getJSONTypes=c;function u(S,E){let{gen:_,data:T,opts:R}=S,A=d(E,R.coerceTypes),x=E.length>0&&!(A.length===0&&E.length===1&&(0,n.schemaHasRulesForType)(S,E[0]));if(x){let k=m(E,T,R.strictNumbers,o.Wrong);_.if(k,()=>{A.length?f(S,E,A):y(S)})}return x}e.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(S,E){return E?S.filter(_=>l.has(_)||E==="array"&&_==="array"):[]}function f(S,E,_){let{gen:T,data:R,opts:A}=S,x=T.let("dataType",(0,i._)`typeof ${R}`),k=T.let("coerced",(0,i._)`undefined`);A.coerceTypes==="array"&&T.if((0,i._)`${x} == 'object' && Array.isArray(${R}) && ${R}.length == 1`,()=>T.assign(R,(0,i._)`${R}[0]`).assign(x,(0,i._)`typeof ${R}`).if(m(E,R,A.strictNumbers),()=>T.assign(k,R))),T.if((0,i._)`${k} !== undefined`);for(let N of _)(l.has(N)||N==="array"&&A.coerceTypes==="array")&&P(N);T.else(),y(S),T.endIf(),T.if((0,i._)`${k} !== undefined`,()=>{T.assign(R,k),p(S,k)});function P(N){switch(N){case"string":T.elseIf((0,i._)`${x} == "number" || ${x} == "boolean"`).assign(k,(0,i._)`"" + ${R}`).elseIf((0,i._)`${R} === null`).assign(k,(0,i._)`""`);return;case"number":T.elseIf((0,i._)`${x} == "boolean" || ${R} === null +]`;continue}i+=r[c],r[c]==="\\"?s=!0:o&&r[c]==="]"?o=!1:!o&&r[c]==="["&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function XPt(e,t){if(t.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),t.target==="openApi3"&&e.keyType?._def.typeName===De.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((r,i)=>({...r,[i]:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",i]})??Qu(t)}),{}),additionalProperties:t.rejectedAdditionalProperties};let n={type:"object",additionalProperties:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if(t.target==="openApi3")return n;if(e.keyType?._def.typeName===De.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=JPt(e.keyType._def,t);return{...n,propertyNames:i}}else{if(e.keyType?._def.typeName===De.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===De.ZodBranded&&e.keyType._def.type._def.typeName===De.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=YPt(e.keyType._def,t);return{...n,propertyNames:i}}}return n}function ufr(e,t){if(t.mapStrategy==="record")return XPt(e,t);let n=Er(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||Qu(t),r=Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||Qu(t);return{type:"array",maxItems:125,items:{type:"array",items:[n,r],minItems:2,maxItems:2}}}function lfr(e){let t=e.values,r=Object.keys(e.values).filter(s=>typeof t[t[s]]!="number").map(s=>t[s]),i=Array.from(new Set(r.map(s=>typeof s)));return{type:i.length===1?i[0]==="string"?"string":"number":["string","number"],enum:r}}function dfr(e){return e.target==="openAi"?void 0:{not:Qu({...e,currentPath:[...e.currentPath,"not"]})}}function ffr(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}function pfr(e,t){if(t.target==="openApi3")return eOt(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(r=>r._def.typeName in z5&&(!r._def.checks||!r._def.checks.length))){let r=n.reduce((i,s)=>{let o=z5[s._def.typeName];return o&&!i.includes(o)?[...i,o]:i},[]);return{type:r.length>1?r:r[0]}}else if(n.every(r=>r._def.typeName==="ZodLiteral"&&!r.description)){let r=n.reduce((i,s)=>{let o=typeof s._def.value;switch(o){case"string":case"number":case"boolean":return[...i,o];case"bigint":return[...i,"integer"];case"object":if(s._def.value===null)return[...i,"null"];default:return i}},[]);if(r.length===n.length){let i=r.filter((s,o,a)=>a.indexOf(s)===o);return{type:i.length>1?i:i[0],enum:n.reduce((s,o)=>s.includes(o._def.value)?s:[...s,o._def.value],[])}}}else if(n.every(r=>r._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((r,i)=>[...r,...i._def.values.filter(s=>!r.includes(s))],[])};return eOt(e,t)}function hfr(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:z5[e.innerType._def.typeName],nullable:!0}:{type:[z5[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let r=Er(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}let n=Er(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function mfr(e,t){let n={type:"number"};if(!e.checks)return n;for(let r of e.checks)switch(r.kind){case"int":n.type="integer",WPt(n,"type",r.message,t);break;case"min":t.target==="jsonSchema7"?r.inclusive?Cr(n,"minimum",r.value,r.message,t):Cr(n,"exclusiveMinimum",r.value,r.message,t):(r.inclusive||(n.exclusiveMinimum=!0),Cr(n,"minimum",r.value,r.message,t));break;case"max":t.target==="jsonSchema7"?r.inclusive?Cr(n,"maximum",r.value,r.message,t):Cr(n,"exclusiveMaximum",r.value,r.message,t):(r.inclusive||(n.exclusiveMaximum=!0),Cr(n,"maximum",r.value,r.message,t));break;case"multipleOf":Cr(n,"multipleOf",r.value,r.message,t);break}return n}function gfr(e,t){let n=t.target==="openAi",r={type:"object",properties:{}},i=[],s=e.shape();for(let a in s){let c=s[a];if(c===void 0||c._def===void 0)continue;let u=Sfr(c);u&&n&&(c._def.typeName==="ZodOptional"&&(c=c._def.innerType),c.isNullable()||(c=c.nullable()),u=!1);let l=Er(c._def,{...t,currentPath:[...t.currentPath,"properties",a],propertyPath:[...t.currentPath,"properties",a]});l!==void 0&&(r.properties[a]=l,u||i.push(a))}i.length&&(r.required=i);let o=yfr(e,t);return o!==void 0&&(r.additionalProperties=o),r}function yfr(e,t){if(e.catchall._def.typeName!=="ZodNever")return Er(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function Sfr(e){try{return e.isOptional()}catch{return!0}}function _fr(e,t){return Er(e.type._def,t)}function Tfr(e,t){let r={type:"array",uniqueItems:!0,items:Er(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&Cr(r,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&Cr(r,"maxItems",e.maxSize.value,e.maxSize.message,t),r}function vfr(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((n,r)=>Er(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[]),additionalItems:Er(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,r)=>Er(n._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]})).reduce((n,r)=>r===void 0?n:[...n,r],[])}}function Rfr(e){return{not:Qu(e)}}function Afr(e){return Qu(e)}function Er(e,t,n=!1){let r=t.seen.get(e);if(t.override){let a=t.override?.(e,t,r,n);if(a!==Kdr)return a}if(r&&!n){let a=Ifr(r,t);if(a!==void 0)return a}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let s=kfr(e,e.typeName,t),o=typeof s=="function"?Er(s(),t):s;if(o&&xfr(e,t,o),t.postProcess){let a=t.postProcess(o,e,t);return i.jsonSchema=o,a}return i.jsonSchema=o,o}function Pfr(e){return!e||e==="jsonSchema7"||e==="draft-7"?"draft-7":e==="jsonSchema2019-09"||e==="draft-2020-12"?"draft-2020-12":"draft-7"}function tOt(e,t){var n,r,i;return yp(e)?mur(e,{target:Pfr(t?.target),io:(n=t?.pipeStrategy)!==null&&n!==void 0?n:"input"}):Ofr(e,{strictUnions:(r=t?.strictUnions)!==null&&r!==void 0?r:!0,pipeStrategy:(i=t?.pipeStrategy)!==null&&i!==void 0?i:"input"})}function nOt(e){let t=GU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=sPt(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function rOt(e,t){let n=kU(e,t);if(!n.success)throw n.error;return n.data}function iOt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Cfr(e,t){let n={...e};for(let r in t){let i=r,s=t[i];if(s===void 0)continue;let o=n[i];iOt(o)&&iOt(s)?n[i]={...o,...s}:n[i]=s}return n}function Lfr(){let e=new Mfr.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0}),t=Dfr.default;return t(e),e}function Ufr(e,t,n){var r;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!(!((r=e.tools)===null||r===void 0)&&r.call))throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function Ffr(e,t,n){var r,i;if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!(!((r=e.sampling)===null||r===void 0)&&r.createMessage))throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!(!((i=e.elicitation)===null||i===void 0)&&i.create))throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}function jfr(e){return!!e&&typeof e=="object"&&QPt in e}function Hfr(e){let t=e[QPt];return t?.complete}function Bfr(e){let t=[];if(e.length===0)return{isValid:!1,warnings:["Tool name cannot be empty"]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(" ")&&t.push("Tool name contains spaces, which may cause parsing issues"),e.includes(",")&&t.push("Tool name contains commas, which may cause parsing issues"),(e.startsWith("-")||e.endsWith("-"))&&t.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"),(e.startsWith(".")||e.endsWith("."))&&t.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"),!qfr.test(e)){let n=e.split("").filter(r=>!/[A-Za-z0-9._-]/.test(r)).filter((r,i,s)=>s.indexOf(r)===i);return t.push(`Tool name contains invalid characters: ${n.map(r=>`"${r}"`).join(", ")}`,"Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function zfr(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let n of t)console.warn(` - ${n}`);console.warn("Tool registration will proceed, but this may cause compatibility issues."),console.warn("Consider updating the tool name to conform to the MCP tool naming standard."),console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.")}}function oOt(e){let t=Bfr(e);return zfr(e,t.warnings),t.isValid}function $Pt(e){return e!==null&&typeof e=="object"&&"parse"in e&&typeof e.parse=="function"&&"safeParse"in e&&typeof e.safeParse=="function"}function Vfr(e){return"_def"in e||"_zod"in e||$Pt(e)}function xTe(e){return typeof e!="object"||e===null||Vfr(e)?!1:Object.keys(e).length===0?!0:Object.values(e).some($Pt)}function aOt(e){if(e)return xTe(e)?wU(e):e}function Wfr(e){let t=GU(e);return t?Object.entries(t).map(([n,r])=>{let i=Sur(r),s=bur(r);return{name:n,description:i,required:!s}}):[]}function $b(e){let t=GU(e),n=t?.method;if(!n)throw new Error("Schema is missing a method literal");let r=sPt(n);if(typeof r=="string")return r;throw new Error("Schema method literal must be a string")}function cOt(e){return{completion:{values:e.slice(0,100),total:e.length,hasMore:e.length>100}}}function Kfr(e,t,n,r){return{name:e,description:t,inputSchema:n,handler:r}}function Yfr(e){let t=new ITe({name:e.name,version:e.version??"1.0.0"},{capabilities:{tools:e.tools?{}:void 0}});return e.tools&&e.tools.forEach(n=>{t.tool(n.name,n.description,n.inputSchema,n.handler)}),{type:"sdk",name:e.name,instance:t}}function Zfr({prompt:e,options:t}){let{systemPrompt:n,settingSources:r,sandbox:i,...s}=t??{},o,a;n===void 0?o="":typeof n=="string"?o=n:n.type==="preset"&&(a=n.append);let c=s.pathToClaudeCodeExecutable;if(!c){let le=mrr(import.meta.url),Ee=bxt(le,"..");c=bxt(Ee,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.77";let{abortController:u=CTe(),additionalDirectories:l=[],agents:d,allowedTools:f=[],betas:p,canUseTool:h,continue:m,cwd:g,disallowedTools:y=[],tools:b,env:S,executable:E=LTe()?"bun":"node",executableArgs:_=[],extraArgs:T={},fallbackModel:R,enableFileCheckpointing:A,forkSession:x,hooks:k,includePartialMessages:P,persistSession:N,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,mcpServers:W,model:$,outputFormat:q,permissionMode:Q="default",allowDangerouslySkipPermissions:B=!1,permissionPromptToolName:F,plugins:V,resume:U,resumeSessionAt:M,stderr:H,strictMcpConfig:j}=s,Y=q?.type==="json_schema"?q.schema:void 0,ee=S;if(ee||(ee={...process.env}),ee.CLAUDE_CODE_ENTRYPOINT||(ee.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),A&&(ee.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING="true"),!c)throw new Error("pathToClaudeCodeExecutable is required");let se={},Le=new Map;if(W)for(let[le,Ee]of Object.entries(W))Ee.type==="sdk"&&"instance"in Ee?(Le.set(le,Ee.instance),se[le]={type:"sdk",name:le}):se[le]=Ee;let Ae=typeof e=="string",z=new x5({abortController:u,additionalDirectories:l,betas:p,cwd:g,executable:E,executableArgs:_,extraArgs:T,pathToClaudeCodeExecutable:c,env:ee,forkSession:x,stderr:H,maxThinkingTokens:C,maxTurns:L,maxBudgetUsd:G,model:$,fallbackModel:R,jsonSchema:Y,permissionMode:Q,allowDangerouslySkipPermissions:B,permissionPromptToolName:F,continueConversation:m,resume:U,resumeSessionAt:M,settingSources:r??[],allowedTools:f,disallowedTools:y,tools:b,mcpServers:se,strictMcpConfig:j,canUseTool:!!h,hooks:!!k,includePartialMessages:P,persistSession:N,plugins:V,sandbox:i,spawnClaudeCodeProcess:s.spawnClaudeCodeProcess}),J={systemPrompt:o,appendSystemPrompt:a,agents:d},oe=new P5(z,Ae,h,k,u,Le,Y,J);return typeof e=="string"?z.write(im({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null})+` +`):oe.streamInput(e),oe}function Jfr(e){return OOt(e)}function Xfr(e,t){return Bsr(e,t)}async function Qfr(e,t){let n=[];try{let o=gnr(n,OOt(t),1);await o.send(e);for await(let a of o.stream())if(a.type==="result")return a;throw new Error("Session ended without result message")}catch(o){var r=o,i=1}finally{var s=ynr(n,r,i);s&&await s}}var lnr,dnr,Q_e,fnr,pnr,uOt,Xe,lOt,hnr,mnr,gnr,ynr,w5,Sxt,_n,ur,sE,G5,Snr,dOt,fOt,k5,bnr,bp,Enr,_nr,pOt,Tnr,V5,W5,OTe,K5,PTe,vnr,Rnr,Anr,wnr,knr,Inr,xnr,Onr,Pnr,Nnr,Cnr,Mnr,Dnr,Lnr,Unr,Fnr,jnr,Hnr,NTe,qnr,Bnr,znr,Gnr,hOt,mOt,Vnr,Wnr,Knr,Ynr,Znr,gOt,Jnr,Xnr,Qnr,$nr,err,trr,nrr,rrr,irr,srr,orr,arr,crr,urr,lrr,drr,yOt,frr,prr,hrr,yrr,_rr,Trr,vrr,Rrr,MTe,Arr,I5,SOt,wrr,krr,EU,xrr,Orr,Prr,Crr,Mrr,Drr,Ext,Urr,bOt,jrr,Hrr,qrr,Brr,Grr,Vrr,z_e,_xt,Krr,Yrr,Zrr,Xrr,Qrr,$rr,eir,tir,nir,rir,iir,oir,cir,EOt,lir,IU,fir,hir,mir,gir,yir,bir,Eir,_ir,vir,Rir,wir,Txt,Iir,Oir,Y5,Nir,Cir,Dir,Uir,jir,qir,Bir,zir,Gir,Wir,Yir,Z5,Xir,$ir,tsr,rsr,_Ot,isr,BU,vxt,osr,G_e,E5,msr,LPi,gsr,Ssr,Axt,AOt,kOt,vsr,Rsr,IOt,wsr,_5,Isr,xsr,Osr,Psr,Nsr,tE,T5,kxt,x5,O5,eTe,P5,N5,ir,xxt,nt,eE,xe,Zd,zsr,xU,Gsr,nTe,iu,Vt,vU,Xu,Oxt,Pxt,Cx,C5,lt,Jd,Nxt,Tn,Vsr,Wsr,Ksr,Ysr,Zsr,Jsr,Xsr,Qsr,$sr,V_e,eor,tor,nor,ror,ior,sor,POt,oor,Mx,OU,PU,NU,CU,MU,Dx,Lx,DU,rE,om,LU,iE,Fl,Ux,Yg,rTe,Fx,Qg,sTe,UU,FU,oTe,jx,Hx,qx,Bx,Zv,gp,mp,$g,zx,Gx,jU,M5,D5,Vx,zPi,De,GPi,VPi,WPi,KPi,YPi,ZPi,JPi,XPi,QPi,$Pi,eNi,tNi,nNi,rNi,hor,iNi,sNi,oNi,aNi,cNi,uNi,lNi,dNi,fNi,pNi,hNi,mNi,gNi,yNi,SNi,bNi,ENi,_Ni,TNi,vNi,Jv,aTe,Gr,jTe,LOt,Ror,UOt,Aor,jOt,kor,uTe,qOt,BOt,e8,zOt,For,GOt,jor,VOt,qTe,WOt,BTe,Hor,qor,Bor,zor,Gor,Vor,Wor,Kor,Cxt,Yor,Zor,Xor,Qor,$or,ear,tar,KOt,nar,rar,YOt,iar,aar,car,uar,lar,dar,far,par,$u,JOt,XOt,QOt,har,mar,gar,yar,Sar,t8,bar,Ear,_ar,Tar,Rar,Aar,war,lTe,kar,li,zTe,Gi,Iar,xar,Oar,Par,Nar,Car,Mar,Dar,Lar,Uar,Far,jar,Har,qar,Bar,zar,Gar,Var,War,Kar,Zar,Jar,Qar,ePt,$ar,ecr,tcr,ncr,rcr,icr,tPt,nPt,scr,ocr,acr,ccr,ucr,lcr,dcr,fcr,pcr,hcr,mcr,gcr,ycr,Scr,bcr,Ecr,_cr,L5,AU,F5,gur,yur,oPt,aPt,uPt,dPt,pPt,mPt,RNi,n8,Eur,_ur,Tur,vur,ss,gPt,Rur,os,Aur,Yxt,R5,wur,kur,Iur,xur,Our,Pur,Nur,Cur,Mur,Dur,Lur,Uur,Fur,jur,Hur,qur,yPt,Bur,zur,Gur,Vur,Wur,Yur,bPt,EPt,Zur,Jur,Xur,fTe,Qur,$ur,vPt,elr,tlr,rlr,RPt,olr,clr,ulr,APt,kPt,mlr,Jg,r8,sm,IPt,xPt,glr,VTe,ylr,el,ja,Xv,Xd,Ac,i8,OPt,Xxt,PPt,Slr,NPt,A5,Ft,CPt,blr,ANi,WTe,Elr,KTe,_lr,VU,Wx,MPt,Tlr,vlr,Rlr,Alr,wlr,klr,DPt,Ilr,xlr,LPt,YTe,Olr,Plr,ZTe,Nlr,WU,KU,YU,s8,Clr,j5,JTe,XTe,QTe,$Te,eve,Mlr,Dlr,UPt,FPt,tve,jPt,Xx,HPt,Llr,hTe,Ulr,mTe,Flr,nve,jlr,gTe,Hlr,qlr,Blr,zlr,Glr,Vlr,Wlr,Klr,Ylr,Zlr,yTe,Jlr,Xlr,STe,rve,ive,sve,Qlr,$lr,edr,ove,tdr,ndr,rdr,idr,sdr,qPt,bTe,odr,ave,wNi,adr,H5,cdr,q5,udr,BPt,ldr,ddr,fdr,pdr,hdr,mdr,gdr,B5,ydr,Sdr,bdr,zPt,GPt,Edr,_dr,Tdr,vdr,Rdr,Adr,wdr,kdr,Idr,xdr,Odr,Pdr,Ndr,Cdr,Mdr,Ddr,Ldr,Udr,ETe,Fdr,jdr,Hdr,_Te,zdr,Gdr,Vdr,VPt,Wdr,kNi,INi,xNi,ONi,PNi,NNi,Et,TTe,Kdr,Qxt,Ydr,Zdr,KPt,$dr,efr,ifr,J_e,pp,afr,z5,eOt,bfr,Efr,wfr,kfr,Ifr,xfr,Ofr,Nfr,vTe,Mfr,Dfr,RTe,ATe,wTe,QPt,sOt,qfr,kTe,ITe,Gfr,TU,tNt=v(()=>{lnr=Object.create,dnr=Object.getPrototypeOf,Q_e=Object.defineProperty,fnr=Object.getOwnPropertyNames,pnr=Object.prototype.hasOwnProperty,uOt=(e,t,n)=>{n=e!=null?lnr(dnr(e)):{};let r=t||!e||!e.__esModule?Q_e(n,"default",{value:e,enumerable:!0}):n;for(let i of fnr(e))pnr.call(r,i)||Q_e(r,i,{get:()=>e[i],enumerable:!0});return r},Xe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),lOt=(e,t)=>{for(var n in t)Q_e(e,n,{get:t[n],enumerable:!0,configurable:!0,set:r=>t[n]=()=>r})},hnr=Symbol.dispose||Symbol.for("Symbol.dispose"),mnr=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),gnr=(e,t,n)=>{if(t!=null){if(typeof t!="object"&&typeof t!="function")throw TypeError('Object expected to be assigned to "using" declaration');var r;if(n&&(r=t[mnr]),r===void 0&&(r=t[hnr]),typeof r!="function")throw TypeError("Object not disposable");e.push([n,r,t])}else n&&e.push([n]);return t},ynr=(e,t,n)=>{var r=typeof SuppressedError=="function"?SuppressedError:function(o,a,c,u){return u=Error(c),u.name="SuppressedError",u.error=o,u.suppressed=a,u},i=o=>t=n?new r(o,t,"An error was suppressed during disposal"):(n=!0,o),s=o=>{for(;o=e.pop();)try{var a=o[1]&&o[1].call(o[2]);if(o[0])return Promise.resolve(a).then(s,c=>(i(c),s()))}catch(c){i(c)}if(n)throw t};return s()},w5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class n extends t{constructor(b){if(super(),!e.IDENTIFIER.test(b))throw new Error("CodeGen: name must be a valid identifier");this.str=b}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=n;class r extends t{constructor(b){super(),this._items=typeof b=="string"?[b]:b}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let b=this._items[0];return b===""||b==='""'}get str(){var b;return(b=this._str)!==null&&b!==void 0?b:this._str=this._items.reduce((S,E)=>`${S}${E}`,"")}get names(){var b;return(b=this._names)!==null&&b!==void 0?b:this._names=this._items.reduce((S,E)=>(E instanceof n&&(S[E.str]=(S[E.str]||0)+1),S),{})}}e._Code=r,e.nil=new r("");function i(y,...b){let S=[y[0]],E=0;for(;E{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;var t=w5();class n extends Error{constructor(u){super(`CodeGen: "code" for ${u} not defined`),this.value=u.value}}var r;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name("const"),let:new t.Name("let"),var:new t.Name("var")};class i{constructor({prefixes:u,parent:l}={}){this._names={},this._prefixes=u,this._parent=l}toName(u){return u instanceof t.Name?u:this.name(u)}name(u){return new t.Name(this._newName(u))}_newName(u){let l=this._names[u]||this._nameGroup(u);return`${u}${l.index++}`}_nameGroup(u){var l,d;if(!((d=(l=this._parent)===null||l===void 0?void 0:l._prefixes)===null||d===void 0)&&d.has(u)||this._prefixes&&!this._prefixes.has(u))throw new Error(`CodeGen: prefix "${u}" is not allowed in this scope`);return this._names[u]={prefix:u,index:0}}}e.Scope=i;class s extends t.Name{constructor(u,l){super(l),this.prefix=u}setValue(u,{property:l,itemIndex:d}){this.value=u,this.scopePath=(0,t._)`.${new t.Name(l)}[${d}]`}}e.ValueScopeName=s;var o=(0,t._)`\n`;class a extends i{constructor(u){super(u),this._values={},this._scope=u.scope,this.opts={...u,_n:u.lines?o:t.nil}}get(){return this._scope}name(u){return new s(u,this._newName(u))}value(u,l){var d;if(l.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let f=this.toName(u),{prefix:p}=f,h=(d=l.key)!==null&&d!==void 0?d:l.ref,m=this._values[p];if(m){let b=m.get(h);if(b)return b}else m=this._values[p]=new Map;m.set(h,f);let g=this._scope[p]||(this._scope[p]=[]),y=g.length;return g[y]=l.ref,f.setValue(l,{property:p,itemIndex:y}),f}getValue(u,l){let d=this._values[u];if(d)return d.get(l)}scopeRefs(u,l=this._values){return this._reduceValues(l,d=>{if(d.scopePath===void 0)throw new Error(`CodeGen: name "${d}" has no value`);return(0,t._)`${u}${d.scopePath}`})}scopeCode(u=this._values,l,d){return this._reduceValues(u,f=>{if(f.value===void 0)throw new Error(`CodeGen: name "${f}" has no value`);return f.value.code},l,d)}_reduceValues(u,l,d={},f){let p=t.nil;for(let h in u){let m=u[h];if(!m)continue;let g=d[h]=d[h]||new Map;m.forEach(y=>{if(g.has(y))return;g.set(y,r.Started);let b=l(y);if(b){let S=this.opts.es5?e.varKinds.var:e.varKinds.const;p=(0,t._)`${p}${S} ${y} = ${b};${this.opts._n}`}else if(b=f?.(y))p=(0,t._)`${p}${b}${this.opts._n}`;else throw new n(y);g.set(y,r.Completed)})}return p}}e.ValueScope=a}),_n=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;var t=w5(),n=Sxt(),r=w5();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var i=Sxt();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class s{optimizeNodes(){return this}optimizeNames(M,H){return this}}class o extends s{constructor(M,H,j){super(),this.varKind=M,this.name=H,this.rhs=j}render({es5:M,_n:H}){let j=M?n.varKinds.var:this.varKind,Y=this.rhs===void 0?"":` = ${this.rhs}`;return`${j} ${this.name}${Y};`+H}optimizeNames(M,H){if(M[this.name.str])return this.rhs&&(this.rhs=L(this.rhs,M,H)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class a extends s{constructor(M,H,j){super(),this.lhs=M,this.rhs=H,this.sideEffects=j}render({_n:M}){return`${this.lhs} = ${this.rhs};`+M}optimizeNames(M,H){if(!(this.lhs instanceof t.Name&&!M[this.lhs.str]&&!this.sideEffects))return this.rhs=L(this.rhs,M,H),this}get names(){let M=this.lhs instanceof t.Name?{}:{...this.lhs.names};return C(M,this.rhs)}}class c extends a{constructor(M,H,j,Y){super(M,j,Y),this.op=H}render({_n:M}){return`${this.lhs} ${this.op}= ${this.rhs};`+M}}class u extends s{constructor(M){super(),this.label=M,this.names={}}render({_n:M}){return`${this.label}:`+M}}class l extends s{constructor(M){super(),this.label=M,this.names={}}render({_n:M}){return`break${this.label?` ${this.label}`:""};`+M}}class d extends s{constructor(M){super(),this.error=M}render({_n:M}){return`throw ${this.error};`+M}get names(){return this.error.names}}class f extends s{constructor(M){super(),this.code=M}render({_n:M}){return`${this.code};`+M}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(M,H){return this.code=L(this.code,M,H),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class p extends s{constructor(M=[]){super(),this.nodes=M}render(M){return this.nodes.reduce((H,j)=>H+j.render(M),"")}optimizeNodes(){let{nodes:M}=this,H=M.length;for(;H--;){let j=M[H].optimizeNodes();Array.isArray(j)?M.splice(H,1,...j):j?M[H]=j:M.splice(H,1)}return M.length>0?this:void 0}optimizeNames(M,H){let{nodes:j}=this,Y=j.length;for(;Y--;){let ee=j[Y];ee.optimizeNames(M,H)||(G(M,ee.names),j.splice(Y,1))}return j.length>0?this:void 0}get names(){return this.nodes.reduce((M,H)=>N(M,H.names),{})}}class h extends p{render(M){return"{"+M._n+super.render(M)+"}"+M._n}}class m extends p{}class g extends h{}g.kind="else";class y extends h{constructor(M,H){super(H),this.condition=M}render(M){let H=`if(${this.condition})`+super.render(M);return this.else&&(H+="else "+this.else.render(M)),H}optimizeNodes(){super.optimizeNodes();let M=this.condition;if(M===!0)return this.nodes;let H=this.else;if(H){let j=H.optimizeNodes();H=this.else=Array.isArray(j)?new g(j):j}if(H)return M===!1?H instanceof y?H:H.nodes:this.nodes.length?this:new y(W(M),H instanceof y?[H]:H.nodes);if(!(M===!1||!this.nodes.length))return this}optimizeNames(M,H){var j;if(this.else=(j=this.else)===null||j===void 0?void 0:j.optimizeNames(M,H),!!(super.optimizeNames(M,H)||this.else))return this.condition=L(this.condition,M,H),this}get names(){let M=super.names;return C(M,this.condition),this.else&&N(M,this.else.names),M}}y.kind="if";class b extends h{}b.kind="for";class S extends b{constructor(M){super(),this.iteration=M}render(M){return`for(${this.iteration})`+super.render(M)}optimizeNames(M,H){if(super.optimizeNames(M,H))return this.iteration=L(this.iteration,M,H),this}get names(){return N(super.names,this.iteration.names)}}class E extends b{constructor(M,H,j,Y){super(),this.varKind=M,this.name=H,this.from=j,this.to=Y}render(M){let H=M.es5?n.varKinds.var:this.varKind,{name:j,from:Y,to:ee}=this;return`for(${H} ${j}=${Y}; ${j}<${ee}; ${j}++)`+super.render(M)}get names(){let M=C(super.names,this.from);return C(M,this.to)}}class _ extends b{constructor(M,H,j,Y){super(),this.loop=M,this.varKind=H,this.name=j,this.iterable=Y}render(M){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(M)}optimizeNames(M,H){if(super.optimizeNames(M,H))return this.iterable=L(this.iterable,M,H),this}get names(){return N(super.names,this.iterable.names)}}class T extends h{constructor(M,H,j){super(),this.name=M,this.args=H,this.async=j}render(M){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(M)}}T.kind="func";class R extends p{render(M){return"return "+super.render(M)}}R.kind="return";class A extends h{render(M){let H="try"+super.render(M);return this.catch&&(H+=this.catch.render(M)),this.finally&&(H+=this.finally.render(M)),H}optimizeNodes(){var M,H;return super.optimizeNodes(),(M=this.catch)===null||M===void 0||M.optimizeNodes(),(H=this.finally)===null||H===void 0||H.optimizeNodes(),this}optimizeNames(M,H){var j,Y;return super.optimizeNames(M,H),(j=this.catch)===null||j===void 0||j.optimizeNames(M,H),(Y=this.finally)===null||Y===void 0||Y.optimizeNames(M,H),this}get names(){let M=super.names;return this.catch&&N(M,this.catch.names),this.finally&&N(M,this.finally.names),M}}class x extends h{constructor(M){super(),this.error=M}render(M){return`catch(${this.error})`+super.render(M)}}x.kind="catch";class k extends h{render(M){return"finally"+super.render(M)}}k.kind="finally";class P{constructor(M,H={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...H,_n:H.lines?` +`:""},this._extScope=M,this._scope=new n.Scope({parent:M}),this._nodes=[new m]}toString(){return this._root.render(this.opts)}name(M){return this._scope.name(M)}scopeName(M){return this._extScope.name(M)}scopeValue(M,H){let j=this._extScope.value(M,H);return(this._values[j.prefix]||(this._values[j.prefix]=new Set)).add(j),j}getScopeValue(M,H){return this._extScope.getValue(M,H)}scopeRefs(M){return this._extScope.scopeRefs(M,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(M,H,j,Y){let ee=this._scope.toName(H);return j!==void 0&&Y&&(this._constants[ee.str]=j),this._leafNode(new o(M,ee,j)),ee}const(M,H,j){return this._def(n.varKinds.const,M,H,j)}let(M,H,j){return this._def(n.varKinds.let,M,H,j)}var(M,H,j){return this._def(n.varKinds.var,M,H,j)}assign(M,H,j){return this._leafNode(new a(M,H,j))}add(M,H){return this._leafNode(new c(M,e.operators.ADD,H))}code(M){return typeof M=="function"?M():M!==t.nil&&this._leafNode(new f(M)),this}object(...M){let H=["{"];for(let[j,Y]of M)H.length>1&&H.push(","),H.push(j),(j!==Y||this.opts.es5)&&(H.push(":"),(0,t.addCodeArg)(H,Y));return H.push("}"),new t._Code(H)}if(M,H,j){if(this._blockNode(new y(M)),H&&j)this.code(H).else().code(j).endIf();else if(H)this.code(H).endIf();else if(j)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(M){return this._elseNode(new y(M))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(y,g)}_for(M,H){return this._blockNode(M),H&&this.code(H).endFor(),this}for(M,H){return this._for(new S(M),H)}forRange(M,H,j,Y,ee=this.opts.es5?n.varKinds.var:n.varKinds.let){let se=this._scope.toName(M);return this._for(new E(ee,se,H,j),()=>Y(se))}forOf(M,H,j,Y=n.varKinds.const){let ee=this._scope.toName(M);if(this.opts.es5){let se=H instanceof t.Name?H:this.var("_arr",H);return this.forRange("_i",0,(0,t._)`${se}.length`,Le=>{this.var(ee,(0,t._)`${se}[${Le}]`),j(ee)})}return this._for(new _("of",Y,ee,H),()=>j(ee))}forIn(M,H,j,Y=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(M,(0,t._)`Object.keys(${H})`,j);let ee=this._scope.toName(M);return this._for(new _("in",Y,ee,H),()=>j(ee))}endFor(){return this._endBlockNode(b)}label(M){return this._leafNode(new u(M))}break(M){return this._leafNode(new l(M))}return(M){let H=new R;if(this._blockNode(H),this.code(M),H.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(R)}try(M,H,j){if(!H&&!j)throw new Error('CodeGen: "try" without "catch" and "finally"');let Y=new A;if(this._blockNode(Y),this.code(M),H){let ee=this.name("e");this._currNode=Y.catch=new x(ee),H(ee)}return j&&(this._currNode=Y.finally=new k,this.code(j)),this._endBlockNode(x,k)}throw(M){return this._leafNode(new d(M))}block(M,H){return this._blockStarts.push(this._nodes.length),M&&this.code(M).endBlock(H),this}endBlock(M){let H=this._blockStarts.pop();if(H===void 0)throw new Error("CodeGen: not in self-balancing block");let j=this._nodes.length-H;if(j<0||M!==void 0&&j!==M)throw new Error(`CodeGen: wrong number of nodes: ${j} vs ${M} expected`);return this._nodes.length=H,this}func(M,H=t.nil,j,Y){return this._blockNode(new T(M,H,j)),Y&&this.code(Y).endFunc(),this}endFunc(){return this._endBlockNode(T)}optimize(M=1){for(;M-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(M){return this._currNode.nodes.push(M),this}_blockNode(M){this._currNode.nodes.push(M),this._nodes.push(M)}_endBlockNode(M,H){let j=this._currNode;if(j instanceof M||H&&j instanceof H)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${H?`${M.kind}/${H.kind}`:M.kind}"`)}_elseNode(M){let H=this._currNode;if(!(H instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=H.else=M,this}get _root(){return this._nodes[0]}get _currNode(){let M=this._nodes;return M[M.length-1]}set _currNode(M){let H=this._nodes;H[H.length-1]=M}}e.CodeGen=P;function N(U,M){for(let H in M)U[H]=(U[H]||0)+(M[H]||0);return U}function C(U,M){return M instanceof t._CodeOrName?N(U,M.names):U}function L(U,M,H){if(U instanceof t.Name)return j(U);if(!Y(U))return U;return new t._Code(U._items.reduce((ee,se)=>(se instanceof t.Name&&(se=j(se)),se instanceof t._Code?ee.push(...se._items):ee.push(se),ee),[]));function j(ee){let se=H[ee.str];return se===void 0||M[ee.str]!==1?ee:(delete M[ee.str],se)}function Y(ee){return ee instanceof t._Code&&ee._items.some(se=>se instanceof t.Name&&M[se.str]===1&&H[se.str]!==void 0)}}function G(U,M){for(let H in M)U[H]=(U[H]||0)-(M[H]||0)}function W(U){return typeof U=="boolean"||typeof U=="number"||U===null?!U:(0,t._)`!${V(U)}`}e.not=W;var $=F(e.operators.AND);function q(...U){return U.reduce($)}e.and=q;var Q=F(e.operators.OR);function B(...U){return U.reduce(Q)}e.or=B;function F(U){return(M,H)=>M===t.nil?H:H===t.nil?M:(0,t._)`${V(M)} ${U} ${V(H)}`}function V(U){return U instanceof t.Name?U:(0,t._)`(${U})`}}),ur=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;var t=_n(),n=w5();function r(T){let R={};for(let A of T)R[A]=!0;return R}e.toHash=r;function i(T,R){return typeof R=="boolean"?R:Object.keys(R).length===0?!0:(s(T,R),!o(R,T.self.RULES.all))}e.alwaysValidSchema=i;function s(T,R=T.schema){let{opts:A,self:x}=T;if(!A.strictSchema||typeof R=="boolean")return;let k=x.RULES.keywords;for(let P in R)k[P]||_(T,`unknown keyword: "${P}"`)}e.checkUnknownRules=s;function o(T,R){if(typeof T=="boolean")return!T;for(let A in T)if(R[A])return!0;return!1}e.schemaHasRules=o;function a(T,R){if(typeof T=="boolean")return!T;for(let A in T)if(A!=="$ref"&&R.all[A])return!0;return!1}e.schemaHasRulesButRef=a;function c({topSchemaRef:T,schemaPath:R},A,x,k){if(!k){if(typeof A=="number"||typeof A=="boolean")return A;if(typeof A=="string")return(0,t._)`${A}`}return(0,t._)`${T}${R}${(0,t.getProperty)(x)}`}e.schemaRefOrVal=c;function u(T){return f(decodeURIComponent(T))}e.unescapeFragment=u;function l(T){return encodeURIComponent(d(T))}e.escapeFragment=l;function d(T){return typeof T=="number"?`${T}`:T.replace(/~/g,"~0").replace(/\//g,"~1")}e.escapeJsonPointer=d;function f(T){return T.replace(/~1/g,"/").replace(/~0/g,"~")}e.unescapeJsonPointer=f;function p(T,R){if(Array.isArray(T))for(let A of T)R(A);else R(T)}e.eachItem=p;function h({mergeNames:T,mergeToName:R,mergeValues:A,resultToName:x}){return(k,P,N,C)=>{let L=N===void 0?P:N instanceof t.Name?(P instanceof t.Name?T(k,P,N):R(k,P,N),N):P instanceof t.Name?(R(k,N,P),P):A(P,N);return C===t.Name&&!(L instanceof t.Name)?x(k,L):L}}e.mergeEvaluated={props:h({mergeNames:(T,R,A)=>T.if((0,t._)`${A} !== true && ${R} !== undefined`,()=>{T.if((0,t._)`${R} === true`,()=>T.assign(A,!0),()=>T.assign(A,(0,t._)`${A} || {}`).code((0,t._)`Object.assign(${A}, ${R})`))}),mergeToName:(T,R,A)=>T.if((0,t._)`${A} !== true`,()=>{R===!0?T.assign(A,!0):(T.assign(A,(0,t._)`${A} || {}`),g(T,A,R))}),mergeValues:(T,R)=>T===!0?!0:{...T,...R},resultToName:m}),items:h({mergeNames:(T,R,A)=>T.if((0,t._)`${A} !== true && ${R} !== undefined`,()=>T.assign(A,(0,t._)`${R} === true ? true : ${A} > ${R} ? ${A} : ${R}`)),mergeToName:(T,R,A)=>T.if((0,t._)`${A} !== true`,()=>T.assign(A,R===!0?!0:(0,t._)`${A} > ${R} ? ${A} : ${R}`)),mergeValues:(T,R)=>T===!0?!0:Math.max(T,R),resultToName:(T,R)=>T.var("items",R)})};function m(T,R){if(R===!0)return T.var("props",!0);let A=T.var("props",(0,t._)`{}`);return R!==void 0&&g(T,A,R),A}e.evaluatedPropsToName=m;function g(T,R,A){Object.keys(A).forEach(x=>T.assign((0,t._)`${R}${(0,t.getProperty)(x)}`,!0))}e.setEvaluated=g;var y={};function b(T,R){return T.scopeValue("func",{ref:R,code:y[R.code]||(y[R.code]=new n._Code(R.code))})}e.useFunc=b;var S;(function(T){T[T.Num=0]="Num",T[T.Str=1]="Str"})(S||(e.Type=S={}));function E(T,R,A){if(T instanceof t.Name){let x=R===S.Num;return A?x?(0,t._)`"[" + ${T} + "]"`:(0,t._)`"['" + ${T} + "']"`:x?(0,t._)`"/" + ${T}`:(0,t._)`"/" + ${T}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return A?(0,t.getProperty)(T).toString():"/"+d(T)}e.getErrorPath=E;function _(T,R,A=T.opts.strictSchema){if(A){if(R=`strict mode: ${R}`,A===!0)throw new Error(R);T.self.logger.warn(R)}}e.checkStrictMode=_}),sE=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={data:new t.Name("data"),valCxt:new t.Name("valCxt"),instancePath:new t.Name("instancePath"),parentData:new t.Name("parentData"),parentDataProperty:new t.Name("parentDataProperty"),rootData:new t.Name("rootData"),dynamicAnchors:new t.Name("dynamicAnchors"),vErrors:new t.Name("vErrors"),errors:new t.Name("errors"),this:new t.Name("this"),self:new t.Name("self"),scope:new t.Name("scope"),json:new t.Name("json"),jsonPos:new t.Name("jsonPos"),jsonLen:new t.Name("jsonLen"),jsonPart:new t.Name("jsonPart")};e.default=n}),G5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;var t=_n(),n=ur(),r=sE();e.keywordError={message:({keyword:g})=>(0,t.str)`must pass "${g}" keyword validation`},e.keyword$DataError={message:({keyword:g,schemaType:y})=>y?(0,t.str)`"${g}" keyword must be ${y} ($data)`:(0,t.str)`"${g}" keyword is invalid ($data)`};function i(g,y=e.keywordError,b,S){let{it:E}=g,{gen:_,compositeRule:T,allErrors:R}=E,A=d(g,y,b);S??(T||R)?c(_,A):u(E,(0,t._)`[${A}]`)}e.reportError=i;function s(g,y=e.keywordError,b){let{it:S}=g,{gen:E,compositeRule:_,allErrors:T}=S,R=d(g,y,b);c(E,R),_||T||u(S,r.default.vErrors)}e.reportExtraError=s;function o(g,y){g.assign(r.default.errors,y),g.if((0,t._)`${r.default.vErrors} !== null`,()=>g.if(y,()=>g.assign((0,t._)`${r.default.vErrors}.length`,y),()=>g.assign(r.default.vErrors,null)))}e.resetErrorsCount=o;function a({gen:g,keyword:y,schemaValue:b,data:S,errsCount:E,it:_}){if(E===void 0)throw new Error("ajv implementation error");let T=g.name("err");g.forRange("i",E,r.default.errors,R=>{g.const(T,(0,t._)`${r.default.vErrors}[${R}]`),g.if((0,t._)`${T}.instancePath === undefined`,()=>g.assign((0,t._)`${T}.instancePath`,(0,t.strConcat)(r.default.instancePath,_.errorPath))),g.assign((0,t._)`${T}.schemaPath`,(0,t.str)`${_.errSchemaPath}/${y}`),_.opts.verbose&&(g.assign((0,t._)`${T}.schema`,b),g.assign((0,t._)`${T}.data`,S))})}e.extendErrors=a;function c(g,y){let b=g.const("err",y);g.if((0,t._)`${r.default.vErrors} === null`,()=>g.assign(r.default.vErrors,(0,t._)`[${b}]`),(0,t._)`${r.default.vErrors}.push(${b})`),g.code((0,t._)`${r.default.errors}++`)}function u(g,y){let{gen:b,validateName:S,schemaEnv:E}=g;E.$async?b.throw((0,t._)`new ${g.ValidationError}(${y})`):(b.assign((0,t._)`${S}.errors`,y),b.return(!1))}var l={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function d(g,y,b){let{createErrors:S}=g.it;return S===!1?(0,t._)`{}`:f(g,y,b)}function f(g,y,b={}){let{gen:S,it:E}=g,_=[p(E,b),h(g,b)];return m(g,y,_),S.object(..._)}function p({errorPath:g},{instancePath:y}){let b=y?(0,t.str)`${g}${(0,n.getErrorPath)(y,n.Type.Str)}`:g;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,b)]}function h({keyword:g,it:{errSchemaPath:y}},{schemaPath:b,parentSchema:S}){let E=S?y:(0,t.str)`${y}/${g}`;return b&&(E=(0,t.str)`${E}${(0,n.getErrorPath)(b,n.Type.Str)}`),[l.schemaPath,E]}function m(g,{params:y,message:b},S){let{keyword:E,data:_,schemaValue:T,it:R}=g,{opts:A,propertyName:x,topSchemaRef:k,schemaPath:P}=R;S.push([l.keyword,E],[l.params,typeof y=="function"?y(g):y||(0,t._)`{}`]),A.messages&&S.push([l.message,typeof b=="function"?b(g):b]),A.verbose&&S.push([l.schema,T],[l.parentSchema,(0,t._)`${k}${P}`],[r.default.data,_]),x&&S.push([l.propertyName,x])}}),Snr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;var t=G5(),n=_n(),r=sE(),i={message:"boolean schema is false"};function s(c){let{gen:u,schema:l,validateName:d}=c;l===!1?a(c,!1):typeof l=="object"&&l.$async===!0?u.return(r.default.data):(u.assign((0,n._)`${d}.errors`,null),u.return(!0))}e.topBoolOrEmptySchema=s;function o(c,u){let{gen:l,schema:d}=c;d===!1?(l.var(u,!1),a(c)):l.var(u,!0)}e.boolOrEmptySchema=o;function a(c,u){let{gen:l,data:d}=c,f={gen:l,keyword:"false schema",data:d,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,t.reportError)(f,i,void 0,u)}}),dOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getRules=e.isJSONType=void 0;var t=["string","number","integer","boolean","null","object","array"],n=new Set(t);function r(s){return typeof s=="string"&&n.has(s)}e.isJSONType=r;function i(){let s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=i}),fOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:i,self:s},o){let a=s.RULES.types[o];return a&&a!==!0&&n(i,a)}e.schemaHasRulesForType=t;function n(i,s){return s.rules.some(o=>r(i,o))}e.shouldUseGroup=n;function r(i,s){var o;return i[s.keyword]!==void 0||((o=s.definition.implements)===null||o===void 0?void 0:o.some(a=>i[a]!==void 0))}e.shouldUseRule=r}),k5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;var t=dOt(),n=fOt(),r=G5(),i=_n(),s=ur(),o;(function(S){S[S.Correct=0]="Correct",S[S.Wrong=1]="Wrong"})(o||(e.DataType=o={}));function a(S){let E=c(S.type);if(E.includes("null")){if(S.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!E.length&&S.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');S.nullable===!0&&E.push("null")}return E}e.getSchemaTypes=a;function c(S){let E=Array.isArray(S)?S:S?[S]:[];if(E.every(t.isJSONType))return E;throw new Error("type must be JSONType or JSONType[]: "+E.join(","))}e.getJSONTypes=c;function u(S,E){let{gen:_,data:T,opts:R}=S,A=d(E,R.coerceTypes),x=E.length>0&&!(A.length===0&&E.length===1&&(0,n.schemaHasRulesForType)(S,E[0]));if(x){let k=m(E,T,R.strictNumbers,o.Wrong);_.if(k,()=>{A.length?f(S,E,A):y(S)})}return x}e.coerceAndCheckDataType=u;var l=new Set(["string","number","integer","boolean","null"]);function d(S,E){return E?S.filter(_=>l.has(_)||E==="array"&&_==="array"):[]}function f(S,E,_){let{gen:T,data:R,opts:A}=S,x=T.let("dataType",(0,i._)`typeof ${R}`),k=T.let("coerced",(0,i._)`undefined`);A.coerceTypes==="array"&&T.if((0,i._)`${x} == 'object' && Array.isArray(${R}) && ${R}.length == 1`,()=>T.assign(R,(0,i._)`${R}[0]`).assign(x,(0,i._)`typeof ${R}`).if(m(E,R,A.strictNumbers),()=>T.assign(k,R))),T.if((0,i._)`${k} !== undefined`);for(let N of _)(l.has(N)||N==="array"&&A.coerceTypes==="array")&&P(N);T.else(),y(S),T.endIf(),T.if((0,i._)`${k} !== undefined`,()=>{T.assign(R,k),p(S,k)});function P(N){switch(N){case"string":T.elseIf((0,i._)`${x} == "number" || ${x} == "boolean"`).assign(k,(0,i._)`"" + ${R}`).elseIf((0,i._)`${R} === null`).assign(k,(0,i._)`""`);return;case"number":T.elseIf((0,i._)`${x} == "boolean" || ${R} === null || (${x} == "string" && ${R} && ${R} == +${R})`).assign(k,(0,i._)`+${R}`);return;case"integer":T.elseIf((0,i._)`${x} === "boolean" || ${R} === null || (${x} === "string" && ${R} && ${R} == +${R} && !(${R} % 1))`).assign(k,(0,i._)`+${R}`);return;case"boolean":T.elseIf((0,i._)`${R} === "false" || ${R} === 0 || ${R} === null`).assign(k,!1).elseIf((0,i._)`${R} === "true" || ${R} === 1`).assign(k,!0);return;case"null":T.elseIf((0,i._)`${R} === "" || ${R} === 0 || ${R} === false`),T.assign(k,null);return;case"array":T.elseIf((0,i._)`${x} === "string" || ${x} === "number" - || ${x} === "boolean" || ${R} === null`).assign(k,(0,i._)`[${R}]`)}}}function p({gen:S,parentData:E,parentDataProperty:_},T){S.if((0,i._)`${E} !== undefined`,()=>S.assign((0,i._)`${E}[${_}]`,T))}function h(S,E,_,T=o.Correct){let R=T===o.Correct?i.operators.EQ:i.operators.NEQ,A;switch(S){case"null":return(0,i._)`${E} ${R} null`;case"array":A=(0,i._)`Array.isArray(${E})`;break;case"object":A=(0,i._)`${E} && typeof ${E} == "object" && !Array.isArray(${E})`;break;case"integer":A=x((0,i._)`!(${E} % 1) && !isNaN(${E})`);break;case"number":A=x();break;default:return(0,i._)`typeof ${E} ${R} ${S}`}return T===o.Correct?A:(0,i.not)(A);function x(k=i.nil){return(0,i.and)((0,i._)`typeof ${E} == "number"`,k,_?(0,i._)`isFinite(${E})`:i.nil)}}e.checkDataType=h;function m(S,E,_,T){if(S.length===1)return h(S[0],E,_,T);let R,A=(0,s.toHash)(S);if(A.array&&A.object){let x=(0,i._)`typeof ${E} != "object"`;R=A.null?x:(0,i._)`!${E} || ${x}`,delete A.null,delete A.array,delete A.object}else R=i.nil;A.number&&delete A.integer;for(let x in A)R=(0,i.and)(R,h(x,E,_,T));return R}e.checkDataTypes=m;var g={message:({schema:S})=>`must be ${S}`,params:({schema:S,schemaValue:E})=>typeof S=="string"?(0,i._)`{type: ${S}}`:(0,i._)`{type: ${E}}`};function y(S){let E=b(S);(0,r.reportError)(E,g)}e.reportTypeError=y;function b(S){let{gen:E,data:_,schema:T}=S,R=(0,s.schemaRefOrVal)(S,T,"type");return{gen:E,keyword:"type",data:_,schema:T.type,schemaCode:R,schemaValue:R,parentSchema:T,params:{},it:S}}}),bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=_n(),n=ur();function r(s,o){let{properties:a,items:c}=s.schema;if(o==="object"&&a)for(let u in a)i(s,u,a[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(s,l,u.default))}e.assignDefaults=r;function i(s,o,a){let{gen:c,compositeRule:u,data:l,opts:d}=s;if(a===void 0)return;let f=(0,t._)`${l}${(0,t.getProperty)(o)}`;if(u){(0,n.checkStrictMode)(s,`default is ignored for: ${f}`);return}let p=(0,t._)`${f} === undefined`;d.useDefaults==="empty"&&(p=(0,t._)`${p} || ${f} === null || ${f} === ""`),c.if(p,(0,t._)`${f} = ${(0,t.stringify)(a)}`)}}),bp=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateUnion=e.validateArray=e.usePattern=e.callValidateCode=e.schemaProperties=e.allSchemaProperties=e.noPropertyInData=e.propertyInData=e.isOwnProperty=e.hasPropFunc=e.reportMissingProp=e.checkMissingProp=e.checkReportMissingProp=void 0;var t=_n(),n=ur(),r=sE(),i=ur();function s(S,E){let{gen:_,data:T,it:R}=S;_.if(d(_,T,E,R.opts.ownProperties),()=>{S.setParams({missingProperty:(0,t._)`${E}`},!0),S.error()})}e.checkReportMissingProp=s;function o({gen:S,data:E,it:{opts:_}},T,R){return(0,t.or)(...T.map(A=>(0,t.and)(d(S,E,A,_.ownProperties),(0,t._)`${R} = ${A}`)))}e.checkMissingProp=o;function a(S,E){S.setParams({missingProperty:E},!0),S.error()}e.reportMissingProp=a;function c(S){return S.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,t._)`Object.prototype.hasOwnProperty`})}e.hasPropFunc=c;function u(S,E,_){return(0,t._)`${c(S)}.call(${E}, ${_})`}e.isOwnProperty=u;function l(S,E,_,T){let R=(0,t._)`${E}${(0,t.getProperty)(_)} !== undefined`;return T?(0,t._)`${R} && ${u(S,E,_)}`:R}e.propertyInData=l;function d(S,E,_,T){let R=(0,t._)`${E}${(0,t.getProperty)(_)} === undefined`;return T?(0,t.or)(R,(0,t.not)(u(S,E,_))):R}e.noPropertyInData=d;function f(S){return S?Object.keys(S).filter(E=>E!=="__proto__"):[]}e.allSchemaProperties=f;function p(S,E){return f(E).filter(_=>!(0,n.alwaysValidSchema)(S,E[_]))}e.schemaProperties=p;function h({schemaCode:S,data:E,it:{gen:_,topSchemaRef:T,schemaPath:R,errorPath:A},it:x},k,P,N){let C=N?(0,t._)`${S}, ${E}, ${T}${R}`:E,L=[[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,A)],[r.default.parentData,x.parentData],[r.default.parentDataProperty,x.parentDataProperty],[r.default.rootData,r.default.rootData]];x.opts.dynamicRef&&L.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);let G=(0,t._)`${C}, ${_.object(...L)}`;return P!==t.nil?(0,t._)`${k}.call(${P}, ${G})`:(0,t._)`${k}(${G})`}e.callValidateCode=h;var m=(0,t._)`new RegExp`;function g({gen:S,it:{opts:E}},_){let T=E.unicodeRegExp?"u":"",{regExp:R}=E.code,A=R(_,T);return S.scopeValue("pattern",{key:A.toString(),ref:A,code:(0,t._)`${R.code==="new RegExp"?m:(0,i.useFunc)(S,R)}(${_}, ${T})`})}e.usePattern=g;function y(S){let{gen:E,data:_,keyword:T,it:R}=S,A=E.name("valid");if(R.allErrors){let k=E.let("valid",!0);return x(()=>E.assign(k,!1)),k}return E.var(A,!0),x(()=>E.break()),A;function x(k){let P=E.const("len",(0,t._)`${_}.length`);E.forRange("i",0,P,N=>{S.subschema({keyword:T,dataProp:N,dataPropType:n.Type.Num},A),E.if((0,t.not)(A),k)})}}e.validateArray=y;function b(S){let{gen:E,schema:_,keyword:T,it:R}=S;if(!Array.isArray(_))throw new Error("ajv implementation error");if(_.some(P=>(0,n.alwaysValidSchema)(R,P))&&!R.opts.unevaluated)return;let x=E.let("valid",!1),k=E.name("_valid");E.block(()=>_.forEach((P,N)=>{let C=S.subschema({keyword:T,schemaProp:N,compositeRule:!0},k);E.assign(x,(0,t._)`${x} || ${k}`),S.mergeValidEvaluated(C,k)||E.if((0,t.not)(x))})),S.result(x,()=>S.reset(),()=>S.error(!0))}e.validateUnion=b}),Enr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=sE(),r=bp(),i=z5();function s(p,h){let{gen:m,keyword:g,schema:y,parentSchema:b,it:S}=p,E=h.macro.call(S.self,y,b,S),_=l(m,g,E);S.opts.validateSchema!==!1&&S.self.validateSchema(E,!0);let T=m.name("valid");p.subschema({schema:E,schemaPath:t.nil,errSchemaPath:`${S.errSchemaPath}/${g}`,topSchemaRef:_,compositeRule:!0},T),p.pass(T,()=>p.error(!0))}e.macroKeywordCode=s;function o(p,h){var m;let{gen:g,keyword:y,schema:b,parentSchema:S,$data:E,it:_}=p;u(_,h);let T=!E&&h.compile?h.compile.call(_.self,b,S,_):h.validate,R=l(g,y,T),A=g.let("valid");p.block$data(A,x),p.ok((m=h.valid)!==null&&m!==void 0?m:A);function x(){if(h.errors===!1)N(),h.modifying&&a(p),C(()=>p.error());else{let L=h.async?k():P();h.modifying&&a(p),C(()=>c(p,L))}}function k(){let L=g.let("ruleErrs",null);return g.try(()=>N((0,t._)`await `),G=>g.assign(A,!1).if((0,t._)`${G} instanceof ${_.ValidationError}`,()=>g.assign(L,(0,t._)`${G}.errors`),()=>g.throw(G))),L}function P(){let L=(0,t._)`${R}.errors`;return g.assign(L,null),N(t.nil),L}function N(L=h.async?(0,t._)`await `:t.nil){let G=_.opts.passContext?n.default.this:n.default.self,W=!("compile"in h&&!E||h.schema===!1);g.assign(A,(0,t._)`${L}${(0,r.callValidateCode)(p,R,G,W)}`,h.modifying)}function C(L){var G;g.if((0,t.not)((G=h.valid)!==null&&G!==void 0?G:A),L)}}e.funcKeywordCode=o;function a(p){let{gen:h,data:m,it:g}=p;h.if(g.parentData,()=>h.assign(m,(0,t._)`${g.parentData}[${g.parentDataProperty}]`))}function c(p,h){let{gen:m}=p;m.if((0,t._)`Array.isArray(${h})`,()=>{m.assign(n.default.vErrors,(0,t._)`${n.default.vErrors} === null ? ${h} : ${n.default.vErrors}.concat(${h})`).assign(n.default.errors,(0,t._)`${n.default.vErrors}.length`),(0,i.extendErrors)(p)},()=>p.error())}function u({schemaEnv:p},h){if(h.async&&!p.$async)throw new Error("async keyword in sync schema")}function l(p,h,m){if(m===void 0)throw new Error(`keyword "${h}" failed to compile`);return p.scopeValue("keyword",typeof m=="function"?{ref:m}:{ref:m,code:(0,t.stringify)(m)})}function d(p,h,m=!1){return!h.length||h.some(g=>g==="array"?Array.isArray(p):g==="object"?p&&typeof p=="object"&&!Array.isArray(p):typeof p==g||m&&typeof p>"u")}e.validSchemaType=d;function f({schema:p,opts:h,self:m,errSchemaPath:g},y,b){if(Array.isArray(y.keyword)?!y.keyword.includes(b):y.keyword!==b)throw new Error("ajv implementation error");let S=y.dependencies;if(S?.some(E=>!Object.prototype.hasOwnProperty.call(p,E)))throw new Error(`parent schema must have dependencies of ${b}: ${S.join(",")}`);if(y.validateSchema&&!y.validateSchema(p[b])){let _=`keyword "${b}" value is invalid at path "${g}": `+m.errorsText(y.validateSchema.errors);if(h.validateSchema==="log")m.logger.error(_);else throw new Error(_)}}e.validateKeywordUsage=f}),_nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=_n(),n=ur();function r(o,{keyword:a,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:f}){if(a!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){let p=o.schema[a];return c===void 0?{schema:p,schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(a)}`,errSchemaPath:`${o.errSchemaPath}/${a}`}:{schema:p[c],schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(a)}${(0,t.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${a}/${(0,n.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||f===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:f,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}e.getSubschema=r;function i(o,a,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:f}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:p}=a;if(c!==void 0){let{errorPath:m,dataPathArr:g,opts:y}=a,b=p.let("data",(0,t._)`${a.data}${(0,t.getProperty)(c)}`,!0);h(b),o.errorPath=(0,t.str)`${m}${(0,n.getErrorPath)(c,u,y.jsPropertySyntax)}`,o.parentDataProperty=(0,t._)`${c}`,o.dataPathArr=[...g,o.parentDataProperty]}if(l!==void 0){let m=l instanceof t.Name?l:p.let("data",l,!0);h(m),f!==void 0&&(o.propertyName=f)}d&&(o.dataTypes=d);function h(m){o.data=m,o.dataLevel=a.dataLevel+1,o.dataTypes=[],a.definedProperties=new Set,o.parentData=a.data,o.dataNames=[...a.dataNames,m]}}e.extendSubschemaData=i;function s(o,{jtdDiscriminator:a,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(o.compositeRule=u),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=a,o.jtdMetadata=c}e.extendSubschemaMode=s}),pOt=Xe((e,t)=>{t.exports=function n(r,i){if(r===i)return!0;if(r&&i&&typeof r=="object"&&typeof i=="object"){if(r.constructor!==i.constructor)return!1;var s,o,a;if(Array.isArray(r)){if(s=r.length,s!=i.length)return!1;for(o=s;o--!==0;)if(!n(r[o],i[o]))return!1;return!0}if(r.constructor===RegExp)return r.source===i.source&&r.flags===i.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===i.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===i.toString();if(a=Object.keys(r),s=a.length,s!==Object.keys(i).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,a[o]))return!1;for(o=s;o--!==0;){var c=a[o];if(!n(r[c],i[c]))return!1}return!0}return r!==r&&i!==i}}),Tnr=Xe((e,t)=>{var n=t.exports=function(s,o,a){typeof o=="function"&&(a=o,o={}),a=o.cb||a;var c=typeof a=="function"?a:a.pre||function(){},u=a.post||function(){};r(o,c,u,s,"",s)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function r(s,o,a,c,u,l,d,f,p,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,f,p,h);for(var m in c){var g=c[m];if(Array.isArray(g)){if(m in n.arrayKeywords)for(var y=0;y{Object.defineProperty(e,"__esModule",{value:!0}),e.getSchemaRefs=e.resolveUrl=e.normalizeId=e._getFullPath=e.getFullPath=e.inlineRef=void 0;var t=ur(),n=pOt(),r=Tnr(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(g,y=!0){return typeof g=="boolean"?!0:y===!0?!a(g):y?c(g)<=y:!1}e.inlineRef=s;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function a(g){for(let y in g){if(o.has(y))return!0;let b=g[y];if(Array.isArray(b)&&b.some(a)||typeof b=="object"&&a(b))return!0}return!1}function c(g){let y=0;for(let b in g){if(b==="$ref")return 1/0;if(y++,!i.has(b)&&(typeof g[b]=="object"&&(0,t.eachItem)(g[b],S=>y+=c(S)),y===1/0))return 1/0}return y}function u(g,y="",b){b!==!1&&(y=f(y));let S=g.parse(y);return l(g,S)}e.getFullPath=u;function l(g,y){return g.serialize(y).split("#")[0]+"#"}e._getFullPath=l;var d=/#\/?$/;function f(g){return g?g.replace(d,""):""}e.normalizeId=f;function p(g,y,b){return b=f(b),g.resolve(y,b)}e.resolveUrl=p;var h=/^[a-z_][-a-z0-9._]*$/i;function m(g,y){if(typeof g=="boolean")return{};let{schemaId:b,uriResolver:S}=this.opts,E=f(g[b]||y),_={"":E},T=u(S,E,!1),R={},A=new Set;return r(g,{allKeys:!0},(P,N,C,L)=>{if(L===void 0)return;let G=T+N,W=_[L];typeof P[b]=="string"&&(W=$.call(this,P[b])),q.call(this,P.$anchor),q.call(this,P.$dynamicAnchor),_[N]=W;function $(Q){let B=this.opts.uriResolver.resolve;if(Q=f(W?B(W,Q):Q),A.has(Q))throw k(Q);A.add(Q);let F=this.refs[Q];return typeof F=="string"&&(F=this.refs[F]),typeof F=="object"?x(P,F.schema,Q):Q!==f(G)&&(Q[0]==="#"?(x(P,R[Q],Q),R[Q]=P):this.refs[Q]=G),Q}function q(Q){if(typeof Q=="string"){if(!h.test(Q))throw new Error(`invalid anchor "${Q}"`);$.call(this,`#${Q}`)}}}),R;function x(P,N,C){if(N!==void 0&&!n(P,N))throw k(C)}function k(P){return new Error(`reference "${P}" resolves to more than one schema`)}}e.getSchemaRefs=m}),V5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=Snr(),n=w5(),r=fOt(),i=w5(),s=bnr(),o=Enr(),a=_nr(),c=_n(),u=sE(),l=G5(),d=ur(),f=z5();function p(z){if(T(z)&&(A(z),_(z))){y(z);return}h(z,()=>(0,t.topBoolOrEmptySchema)(z))}e.validateFunctionCode=p;function h({gen:z,validateName:J,schema:oe,schemaEnv:le,opts:Ee},kt){Ee.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,le.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,Ee)}`),g(z,Ee),z.code(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(Ee)}`,le.$async,()=>z.code(S(oe,Ee)).code(kt))}function m(z){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${z.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function g(z,J){z.if(u.default.valCxt,()=>{z.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),z.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),z.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),z.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),J.dynamicRef&&z.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{z.var(u.default.instancePath,(0,c._)`""`),z.var(u.default.parentData,(0,c._)`undefined`),z.var(u.default.parentDataProperty,(0,c._)`undefined`),z.var(u.default.rootData,u.default.data),J.dynamicRef&&z.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function y(z){let{schema:J,opts:oe,gen:le}=z;h(z,()=>{oe.$comment&&J.$comment&&L(z),P(z),le.let(u.default.vErrors,null),le.let(u.default.errors,0),oe.unevaluated&&b(z),x(z),G(z)})}function b(z){let{gen:J,validateName:oe}=z;z.evaluated=J.const("evaluated",(0,c._)`${oe}.evaluated`),J.if((0,c._)`${z.evaluated}.dynamicProps`,()=>J.assign((0,c._)`${z.evaluated}.props`,(0,c._)`undefined`)),J.if((0,c._)`${z.evaluated}.dynamicItems`,()=>J.assign((0,c._)`${z.evaluated}.items`,(0,c._)`undefined`))}function S(z,J){let oe=typeof z=="object"&&z[J.schemaId];return oe&&(J.code.source||J.code.process)?(0,c._)`/*# sourceURL=${oe} */`:c.nil}function E(z,J){if(T(z)&&(A(z),_(z))){R(z,J);return}(0,t.boolOrEmptySchema)(z,J)}function _({schema:z,self:J}){if(typeof z=="boolean")return!z;for(let oe in z)if(J.RULES.all[oe])return!0;return!1}function T(z){return typeof z.schema!="boolean"}function R(z,J){let{schema:oe,gen:le,opts:Ee}=z;Ee.$comment&&oe.$comment&&L(z),N(z),C(z);let kt=le.const("_errs",u.default.errors);x(z,kt),le.var(J,(0,c._)`${kt} === ${u.default.errors}`)}function A(z){(0,d.checkUnknownRules)(z),k(z)}function x(z,J){if(z.opts.jtd)return $(z,[],!1,J);let oe=(0,n.getSchemaTypes)(z.schema),le=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!le,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:le,self:Ee}=z;J.$ref&&le.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,Ee.RULES)&&Ee.logger.warn(`$ref: keywords ignored in schema at path "${oe}"`)}function P(z){let{schema:J,opts:oe}=z;J.default!==void 0&&oe.useDefaults&&oe.strictSchema&&(0,d.checkStrictMode)(z,"default is ignored in the schema root")}function N(z){let J=z.schema[z.opts.schemaId];J&&(z.baseId=(0,l.resolveUrl)(z.opts.uriResolver,z.baseId,J))}function C(z){if(z.schema.$async&&!z.schemaEnv.$async)throw new Error("async schema in sync schema")}function L({gen:z,schemaEnv:J,schema:oe,errSchemaPath:le,opts:Ee}){let kt=oe.$comment;if(Ee.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof Ee.$comment=="function"){let Ue=(0,c.str)`${le}/$comment`,Ln=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Ln}.schema)`)}}function G(z){let{gen:J,schemaEnv:oe,validateName:le,ValidationError:Ee,opts:kt}=z;oe.$async?J.if((0,c._)`${u.default.errors} === 0`,()=>J.return(u.default.data),()=>J.throw((0,c._)`new ${Ee}(${u.default.vErrors})`)):(J.assign((0,c._)`${le}.errors`,u.default.vErrors),kt.unevaluated&&W(z),J.return((0,c._)`${u.default.errors} === 0`))}function W({gen:z,evaluated:J,props:oe,items:le}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),le instanceof c.Name&&z.assign((0,c._)`${J}.items`,le)}function $(z,J,oe,le){let{gen:Ee,schema:kt,data:Ue,allErrors:Ln,opts:lr,self:sn}=z,{RULES:dr}=sn;if(kt.$ref&&(lr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,dr))){Ee.block(()=>ee(z,"$ref",dr.all.$ref.definition));return}lr.jtd||Q(z,J),Ee.block(()=>{for(let As of dr.rules)nl(As);nl(dr.post)});function nl(As){(0,r.shouldUseGroup)(kt,As)&&(As.type?(Ee.if((0,i.checkDataType)(As.type,Ue,lr.strictNumbers)),q(z,As),J.length===1&&J[0]===As.type&&oe&&(Ee.else(),(0,i.reportTypeError)(z)),Ee.endIf()):q(z,As),Ln||Ee.if((0,c._)`${u.default.errors} === ${le||0}`))}}function q(z,J){let{gen:oe,schema:le,opts:{useDefaults:Ee}}=z;Ee&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let kt of J.rules)(0,r.shouldUseRule)(le,kt)&&ee(z,kt.keyword,kt.definition,J.type)})}function Q(z,J){z.schemaEnv.meta||!z.opts.strictTypes||(B(z,J),z.opts.allowUnionTypes||F(z,J),V(z,z.dataTypes))}function B(z,J){if(J.length){if(!z.dataTypes.length){z.dataTypes=J;return}J.forEach(oe=>{M(z.dataTypes,oe)||j(z,`type "${oe}" not allowed by context "${z.dataTypes.join(",")}"`)}),H(z,J)}}function F(z,J){J.length>1&&!(J.length===2&&J.includes("null"))&&j(z,"use allowUnionTypes to allow union type keyword")}function V(z,J){let oe=z.self.RULES.all;for(let le in oe){let Ee=oe[le];if(typeof Ee=="object"&&(0,r.shouldUseRule)(z.schema,Ee)){let{type:kt}=Ee.definition;kt.length&&!kt.some(Ue=>U(J,Ue))&&j(z,`missing type "${kt.join(",")}" for keyword "${le}"`)}}}function U(z,J){return z.includes(J)||J==="number"&&z.includes("integer")}function M(z,J){return z.includes(J)||J==="integer"&&z.includes("number")}function H(z,J){let oe=[];for(let le of z.dataTypes)M(J,le)?oe.push(le):J.includes("integer")&&le==="number"&&oe.push("integer");z.dataTypes=oe}function j(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class Y{constructor(J,oe,le){if((0,o.validateKeywordUsage)(J,oe,le),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=le,this.data=J.data,this.schema=J.schema[le],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,le,this.$data),this.schemaType=oe.schemaType,this.parentSchema=J.schema,this.params={},this.it=J,this.def=oe,this.$data)this.schemaCode=J.gen.const("vSchema",Ae(this.$data,J));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,oe.schemaType,oe.allowUndefined))throw new Error(`${le} value must be ${JSON.stringify(oe.schemaType)}`);("code"in oe?oe.trackErrors:oe.errors!==!1)&&(this.errsCount=J.gen.const("_errs",u.default.errors))}result(J,oe,le){this.failResult((0,c.not)(J),oe,le)}failResult(J,oe,le){this.gen.if(J),le?le():this.error(),oe?(this.gen.else(),oe(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(J,oe){this.failResult((0,c.not)(J),void 0,oe)}fail(J){if(J===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(J),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(J){if(!this.$data)return this.fail(J);let{schemaCode:oe}=this;this.fail((0,c._)`${oe} !== undefined && (${(0,c.or)(this.invalid$data(),J)})`)}error(J,oe,le){if(oe){this.setParams(oe),this._error(J,le),this.setParams({});return}this._error(J,le)}_error(J,oe){(J?f.reportExtraError:f.reportError)(this,this.def.error,oe)}$dataError(){(0,f.reportError)(this,this.def.$dataError||f.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f.resetErrorsCount)(this.gen,this.errsCount)}ok(J){this.allErrors||this.gen.if(J)}setParams(J,oe){oe?Object.assign(this.params,J):this.params=J}block$data(J,oe,le=c.nil){this.gen.block(()=>{this.check$data(J,le),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:le,schemaCode:Ee,schemaType:kt,def:Ue}=this;le.if((0,c.or)((0,c._)`${Ee} === undefined`,oe)),J!==c.nil&&le.assign(J,!0),(kt.length||Ue.validateSchema)&&(le.elseIf(this.invalid$data()),this.$dataError(),J!==c.nil&&le.assign(J,!1)),le.else()}invalid$data(){let{gen:J,schemaCode:oe,schemaType:le,def:Ee,it:kt}=this;return(0,c.or)(Ue(),Ln());function Ue(){if(le.length){if(!(oe instanceof c.Name))throw new Error("ajv implementation error");let lr=Array.isArray(le)?le:[le];return(0,c._)`${(0,i.checkDataTypes)(lr,oe,kt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Ln(){if(Ee.validateSchema){let lr=J.scopeValue("validate$data",{ref:Ee.validateSchema});return(0,c._)`!${lr}(${oe})`}return c.nil}}subschema(J,oe){let le=(0,a.getSubschema)(this.it,J);(0,a.extendSubschemaData)(le,this.it,J),(0,a.extendSubschemaMode)(le,J);let Ee={...this.it,...le,items:void 0,props:void 0};return E(Ee,oe),Ee}mergeEvaluated(J,oe){let{it:le,gen:Ee}=this;le.opts.unevaluated&&(le.props!==!0&&J.props!==void 0&&(le.props=d.mergeEvaluated.props(Ee,J.props,le.props,oe)),le.items!==!0&&J.items!==void 0&&(le.items=d.mergeEvaluated.items(Ee,J.items,le.items,oe)))}mergeValidEvaluated(J,oe){let{it:le,gen:Ee}=this;if(le.opts.unevaluated&&(le.props!==!0||le.items!==!0))return Ee.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=Y;function ee(z,J,oe,le){let Ee=new Y(z,oe,J);"code"in oe?oe.code(Ee,le):Ee.$data&&oe.validate?(0,o.funcKeywordCode)(Ee,oe):"macro"in oe?(0,o.macroKeywordCode)(Ee,oe):(oe.compile||oe.validate)&&(0,o.funcKeywordCode)(Ee,oe)}var se=/^\/(?:[^~]|~0|~1)*$/,Le=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ae(z,{dataLevel:J,dataNames:oe,dataPathArr:le}){let Ee,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);Ee=z,kt=u.default.rootData}else{let sn=Le.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let dr=+sn[1];if(Ee=sn[2],Ee==="#"){if(dr>=J)throw new Error(lr("property/index",dr));return le[J-dr]}if(dr>J)throw new Error(lr("data",dr));if(kt=oe[J-dr],!Ee)return kt}let Ue=kt,Ln=Ee.split("/");for(let sn of Ln)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function lr(sn,dr){return`Cannot access ${sn} ${dr} levels up, current level is ${J}`}}e.getData=Ae}),xTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});class t extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}}e.default=t}),W5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=G5();class n extends Error{constructor(i,s,o,a){super(a||`can't resolve reference ${o} from id ${s}`),this.missingRef=(0,t.resolveUrl)(i,s,o),this.missingSchema=(0,t.normalizeId)((0,t.getFullPath)(i,this.missingRef))}}e.default=n}),OTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=xTe(),r=sE(),i=G5(),s=ur(),o=V5();class a{constructor(b){var S;this.refs={},this.dynamicAnchors={};let E;typeof b.schema=="object"&&(E=b.schema),this.schema=b.schema,this.schemaId=b.schemaId,this.root=b.root||this,this.baseId=(S=b.baseId)!==null&&S!==void 0?S:(0,i.normalizeId)(E?.[b.schemaId||"$id"]),this.schemaPath=b.schemaPath,this.localRefs=b.localRefs,this.meta=b.meta,this.$async=E?.$async,this.refs={}}}e.SchemaEnv=a;function c(y){let b=d.call(this,y);if(b)return b;let S=(0,i.getFullPath)(this.opts.uriResolver,y.root.baseId),{es5:E,lines:_}=this.opts.code,{ownProperties:T}=this.opts,R=new t.CodeGen(this.scope,{es5:E,lines:_,ownProperties:T}),A;y.$async&&(A=R.scopeValue("Error",{ref:n.default,code:(0,t._)`require("ajv/dist/runtime/validation_error").default`}));let x=R.scopeName("validate");y.validateName=x;let k={gen:R,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:R.scopeValue("schema",this.opts.code.source===!0?{ref:y.schema,code:(0,t.stringify)(y.schema)}:{ref:y.schema}),validateName:x,ValidationError:A,schema:y.schema,schemaEnv:y,rootId:S,baseId:y.baseId||S,schemaPath:t.nil,errSchemaPath:y.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,t._)`""`,opts:this.opts,self:this},P;try{this._compilations.add(y),(0,o.validateFunctionCode)(k),R.optimize(this.opts.code.optimize);let N=R.toString();P=`${R.scopeRefs(r.default.scope)}return ${N}`,this.opts.code.process&&(P=this.opts.code.process(P,y));let L=new Function(`${r.default.self}`,`${r.default.scope}`,P)(this,this.scope.get());if(this.scope.value(x,{ref:L}),L.errors=null,L.schema=y.schema,L.schemaEnv=y,y.$async&&(L.$async=!0),this.opts.code.source===!0&&(L.source={validateName:x,validateCode:N,scopeValues:R._values}),this.opts.unevaluated){let{props:G,items:W}=k;L.evaluated={props:G instanceof t.Name?void 0:G,items:W instanceof t.Name?void 0:W,dynamicProps:G instanceof t.Name,dynamicItems:W instanceof t.Name},L.source&&(L.source.evaluated=(0,t.stringify)(L.evaluated))}return y.validate=L,y}catch(N){throw delete y.validate,delete y.validateName,P&&this.logger.error("Error compiling schema, function code:",P),N}finally{this._compilations.delete(y)}}e.compileSchema=c;function u(y,b,S){var E;S=(0,i.resolveUrl)(this.opts.uriResolver,b,S);let _=y.refs[S];if(_)return _;let T=p.call(this,y,S);if(T===void 0){let R=(E=y.localRefs)===null||E===void 0?void 0:E[S],{schemaId:A}=this.opts;R&&(T=new a({schema:R,schemaId:A,root:y,baseId:b}))}if(T!==void 0)return y.refs[S]=l.call(this,T)}e.resolveRef=u;function l(y){return(0,i.inlineRef)(y.schema,this.opts.inlineRefs)?y.schema:y.validate?y:c.call(this,y)}function d(y){for(let b of this._compilations)if(f(b,y))return b}e.getCompilingSchema=d;function f(y,b){return y.schema===b.schema&&y.root===b.root&&y.baseId===b.baseId}function p(y,b){let S;for(;typeof(S=this.refs[b])=="string";)b=S;return S||this.schemas[b]||h.call(this,y,b)}function h(y,b){let S=this.opts.uriResolver.parse(b),E=(0,i._getFullPath)(this.opts.uriResolver,S),_=(0,i.getFullPath)(this.opts.uriResolver,y.baseId,void 0);if(Object.keys(y.schema).length>0&&E===_)return g.call(this,S,y);let T=(0,i.normalizeId)(E),R=this.refs[T]||this.schemas[T];if(typeof R=="string"){let A=h.call(this,y,R);return typeof A?.schema!="object"?void 0:g.call(this,S,A)}if(typeof R?.schema=="object"){if(R.validate||c.call(this,R),T===(0,i.normalizeId)(b)){let{schema:A}=R,{schemaId:x}=this.opts,k=A[x];return k&&(_=(0,i.resolveUrl)(this.opts.uriResolver,_,k)),new a({schema:A,schemaId:x,root:y,baseId:_})}return g.call(this,S,R)}}e.resolveSchema=h;var m=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function g(y,{baseId:b,schema:S,root:E}){var _;if(((_=y.fragment)===null||_===void 0?void 0:_[0])!=="/")return;for(let A of y.fragment.slice(1).split("/")){if(typeof S=="boolean")return;let x=S[(0,s.unescapeFragment)(A)];if(x===void 0)return;S=x;let k=typeof S=="object"&&S[this.opts.schemaId];!m.has(A)&&k&&(b=(0,i.resolveUrl)(this.opts.uriResolver,b,k))}let T;if(typeof S!="boolean"&&S.$ref&&!(0,s.schemaHasRulesButRef)(S,this.RULES)){let A=(0,i.resolveUrl)(this.opts.uriResolver,b,S.$ref);T=h.call(this,E,A)}let{schemaId:R}=this.opts;if(T=T||new a({schema:S,schemaId:R,root:E,baseId:b}),T.schema!==T.root.schema)return T}}),vnr=Xe((e,t)=>{t.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),Rnr=Xe((e,t)=>{var n={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};t.exports={HEX:n}}),Anr=Xe((e,t)=>{var{HEX:n}=Rnr(),r=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function i(y){if(u(y,".")<3)return{host:y,isIPV4:!1};let b=y.match(r)||[],[S]=b;return S?{host:c(S,"."),isIPV4:!0}:{host:y,isIPV4:!1}}function s(y,b=!1){let S="",E=!0;for(let _ of y){if(n[_]===void 0)return;_!=="0"&&E===!0&&(E=!1),E||(S+=_)}return b&&S.length===0&&(S="0"),S}function o(y){let b=0,S={error:!1,address:"",zone:""},E=[],_=[],T=!1,R=!1,A=!1;function x(){if(_.length){if(T===!1){let k=s(_);if(k!==void 0)E.push(k);else return S.error=!0,!1}_.length=0}return!0}for(let k=0;k7){S.error=!0;break}k-1>=0&&y[k-1]===":"&&(R=!0);continue}else if(P==="%"){if(!x())break;T=!0}else{_.push(P);continue}}return _.length&&(T?S.zone=_.join(""):A?E.push(_.join("")):E.push(s(_))),S.address=E.join(""),S}function a(y){if(u(y,":")<2)return{host:y,isIPV6:!1};let b=o(y);if(b.error)return{host:y,isIPV6:!1};{let S=b.address,E=b.address;return b.zone&&(S+="%"+b.zone,E+="%25"+b.zone),{host:S,escapedHost:E,isIPV6:!0}}}function c(y,b){let S="",E=!0,_=y.length;for(let T=0;T<_;T++){let R=y[T];R==="0"&&E?(T+1<=_&&y[T+1]===b||T+1===_)&&(S+=R,E=!1):(R===b?E=!0:E=!1,S+=R)}return S}function u(y,b){let S=0;for(let E=0;E{var n=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function i(E){return typeof E.secure=="boolean"?E.secure:String(E.scheme).toLowerCase()==="wss"}function s(E){return E.host||(E.error=E.error||"HTTP URIs must have a host."),E}function o(E){let _=String(E.scheme).toLowerCase()==="https";return(E.port===(_?443:80)||E.port==="")&&(E.port=void 0),E.path||(E.path="/"),E}function a(E){return E.secure=i(E),E.resourceName=(E.path||"/")+(E.query?"?"+E.query:""),E.path=void 0,E.query=void 0,E}function c(E){if((E.port===(i(E)?443:80)||E.port==="")&&(E.port=void 0),typeof E.secure=="boolean"&&(E.scheme=E.secure?"wss":"ws",E.secure=void 0),E.resourceName){let[_,T]=E.resourceName.split("?");E.path=_&&_!=="/"?_:void 0,E.query=T,E.resourceName=void 0}return E.fragment=void 0,E}function u(E,_){if(!E.path)return E.error="URN can not be parsed",E;let T=E.path.match(r);if(T){let R=_.scheme||E.scheme||"urn";E.nid=T[1].toLowerCase(),E.nss=T[2];let A=`${R}:${_.nid||E.nid}`,x=S[A];E.path=void 0,x&&(E=x.parse(E,_))}else E.error=E.error||"URN can not be parsed.";return E}function l(E,_){let T=_.scheme||E.scheme||"urn",R=E.nid.toLowerCase(),A=`${T}:${_.nid||R}`,x=S[A];x&&(E=x.serialize(E,_));let k=E,P=E.nss;return k.path=`${R||_.nid}:${P}`,_.skipEscape=!0,k}function d(E,_){let T=E;return T.uuid=T.nss,T.nss=void 0,!_.tolerant&&(!T.uuid||!n.test(T.uuid))&&(T.error=T.error||"UUID is not valid."),T}function f(E){let _=E;return _.nss=(E.uuid||"").toLowerCase(),_}var p={scheme:"http",domainHost:!0,parse:s,serialize:o},h={scheme:"https",domainHost:p.domainHost,parse:s,serialize:o},m={scheme:"ws",domainHost:!0,parse:a,serialize:c},g={scheme:"wss",domainHost:m.domainHost,parse:m.parse,serialize:m.serialize},y={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},b={scheme:"urn:uuid",parse:d,serialize:f,skipNormalize:!0},S={http:p,https:h,ws:m,wss:g,urn:y,"urn:uuid":b};t.exports=S}),knr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Anr(),a=wnr();function c(b,S){return typeof b=="string"?b=f(g(b,S),S):typeof b=="object"&&(b=g(f(b,S),S)),b}function u(b,S,E){let _=Object.assign({scheme:"null"},E),T=l(g(b,_),g(S,_),_,!0);return f(T,{..._,skipEscape:!0})}function l(b,S,E,_){let T={};return _||(b=g(f(b,E),E),S=g(f(S,E),E)),E=E||{},!E.tolerant&&S.scheme?(T.scheme=S.scheme,T.userinfo=S.userinfo,T.host=S.host,T.port=S.port,T.path=i(S.path||""),T.query=S.query):(S.userinfo!==void 0||S.host!==void 0||S.port!==void 0?(T.userinfo=S.userinfo,T.host=S.host,T.port=S.port,T.path=i(S.path||""),T.query=S.query):(S.path?(S.path.charAt(0)==="/"?T.path=i(S.path):((b.userinfo!==void 0||b.host!==void 0||b.port!==void 0)&&!b.path?T.path="/"+S.path:b.path?T.path=b.path.slice(0,b.path.lastIndexOf("/")+1)+S.path:T.path=S.path,T.path=i(T.path)),T.query=S.query):(T.path=b.path,S.query!==void 0?T.query=S.query:T.query=b.query),T.userinfo=b.userinfo,T.host=b.host,T.port=b.port),T.scheme=b.scheme),T.fragment=S.fragment,T}function d(b,S,E){return typeof b=="string"?(b=unescape(b),b=f(o(g(b,E),!0),{...E,skipEscape:!0})):typeof b=="object"&&(b=f(o(b,!0),{...E,skipEscape:!0})),typeof S=="string"?(S=unescape(S),S=f(o(g(S,E),!0),{...E,skipEscape:!0})):typeof S=="object"&&(S=f(o(S,!0),{...E,skipEscape:!0})),b.toLowerCase()===S.toLowerCase()}function f(b,S){let E={host:b.host,scheme:b.scheme,userinfo:b.userinfo,port:b.port,path:b.path,query:b.query,nid:b.nid,nss:b.nss,uuid:b.uuid,fragment:b.fragment,reference:b.reference,resourceName:b.resourceName,secure:b.secure,error:""},_=Object.assign({},S),T=[],R=a[(_.scheme||E.scheme||"").toLowerCase()];R&&R.serialize&&R.serialize(E,_),E.path!==void 0&&(_.skipEscape?E.path=unescape(E.path):(E.path=escape(E.path),E.scheme!==void 0&&(E.path=E.path.split("%3A").join(":")))),_.reference!=="suffix"&&E.scheme&&T.push(E.scheme,":");let A=s(E);if(A!==void 0&&(_.reference!=="suffix"&&T.push("//"),T.push(A),E.path&&E.path.charAt(0)!=="/"&&T.push("/")),E.path!==void 0){let x=E.path;!_.absolutePath&&(!R||!R.absolutePath)&&(x=i(x)),A===void 0&&(x=x.replace(/^\/\//u,"/%2F")),T.push(x)}return E.query!==void 0&&T.push("?",E.query),E.fragment!==void 0&&T.push("#",E.fragment),T.join("")}var p=Array.from({length:127},(b,S)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(S)));function h(b){let S=0;for(let E=0,_=b.length;E<_;++E)if(S=b.charCodeAt(E),S>126||p[S])return!0;return!1}var m=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(b,S){let E=Object.assign({},S),_={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},T=b.indexOf("%")!==-1,R=!1;E.reference==="suffix"&&(b=(E.scheme?E.scheme+":":"")+"//"+b);let A=b.match(m);if(A){if(_.scheme=A[1],_.userinfo=A[3],_.host=A[4],_.port=parseInt(A[5],10),_.path=A[6]||"",_.query=A[7],_.fragment=A[8],isNaN(_.port)&&(_.port=A[5]),_.host){let k=r(_.host);if(k.isIPV4===!1){let P=n(k.host);_.host=P.host.toLowerCase(),R=P.isIPV6}else _.host=k.host,R=!0}_.scheme===void 0&&_.userinfo===void 0&&_.host===void 0&&_.port===void 0&&_.query===void 0&&!_.path?_.reference="same-document":_.scheme===void 0?_.reference="relative":_.fragment===void 0?_.reference="absolute":_.reference="uri",E.reference&&E.reference!=="suffix"&&E.reference!==_.reference&&(_.error=_.error||"URI is not a "+E.reference+" reference.");let x=a[(E.scheme||_.scheme||"").toLowerCase()];if(!E.unicodeSupport&&(!x||!x.unicodeSupport)&&_.host&&(E.domainHost||x&&x.domainHost)&&R===!1&&h(_.host))try{_.host=URL.domainToASCII(_.host.toLowerCase())}catch(k){_.error=_.error||"Host's domain name can not be converted to ASCII: "+k}(!x||x&&!x.skipNormalize)&&(T&&_.scheme!==void 0&&(_.scheme=unescape(_.scheme)),T&&_.host!==void 0&&(_.host=unescape(_.host)),_.path&&(_.path=escape(unescape(_.path))),_.fragment&&(_.fragment=encodeURI(decodeURIComponent(_.fragment)))),x&&x.parse&&x.parse(_,E)}else _.error=_.error||"URI can not be parsed.";return _}var y={SCHEMES:a,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:f,parse:g};t.exports=y,t.exports.default=y,t.exports.fastUri=y}),Inr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=knr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=V5();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=_n();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});var r=xTe(),i=W5(),s=dOt(),o=OTe(),a=_n(),c=G5(),u=w5(),l=ur(),d=vnr(),f=Inr(),p=(B,F)=>new RegExp(B,F);p.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},b=200;function S(B){var F,V,U,M,H,j,Y,ee,se,Le,Ae,z,J,oe,le,Ee,kt,Ue,Ln,lr,sn,dr,nl,As,uE;let cy=B.strict,Ii=(F=B.code)===null||F===void 0?void 0:F.optimize,_p=Ii===!0||Ii===void 0?1:Ii||0,uy=(U=(V=B.code)===null||V===void 0?void 0:V.regExp)!==null&&U!==void 0?U:p,Rr=(M=B.uriResolver)!==null&&M!==void 0?M:f.default;return{strictSchema:(j=(H=B.strictSchema)!==null&&H!==void 0?H:cy)!==null&&j!==void 0?j:!0,strictNumbers:(ee=(Y=B.strictNumbers)!==null&&Y!==void 0?Y:cy)!==null&&ee!==void 0?ee:!0,strictTypes:(Le=(se=B.strictTypes)!==null&&se!==void 0?se:cy)!==null&&Le!==void 0?Le:"log",strictTuples:(z=(Ae=B.strictTuples)!==null&&Ae!==void 0?Ae:cy)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=B.strictRequired)!==null&&J!==void 0?J:cy)!==null&&oe!==void 0?oe:!1,code:B.code?{...B.code,optimize:_p,regExp:uy}:{optimize:_p,regExp:uy},loopRequired:(le=B.loopRequired)!==null&&le!==void 0?le:b,loopEnum:(Ee=B.loopEnum)!==null&&Ee!==void 0?Ee:b,meta:(kt=B.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=B.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Ln=B.inlineRefs)!==null&&Ln!==void 0?Ln:!0,schemaId:(lr=B.schemaId)!==null&&lr!==void 0?lr:"$id",addUsedSchema:(sn=B.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(dr=B.validateSchema)!==null&&dr!==void 0?dr:!0,validateFormats:(nl=B.validateFormats)!==null&&nl!==void 0?nl:!0,unicodeRegExp:(As=B.unicodeRegExp)!==null&&As!==void 0?As:!0,int32range:(uE=B.int32range)!==null&&uE!==void 0?uE:!0,uriResolver:Rr}}class E{constructor(F={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,F=this.opts={...F,...S(F)};let{es5:V,lines:U}=this.opts.code;this.scope=new a.ValueScope({scope:{},prefixes:m,es5:V,lines:U}),this.logger=N(F.logger);let M=F.validateFormats;F.validateFormats=!1,this.RULES=(0,s.getRules)(),_.call(this,g,F,"NOT SUPPORTED"),_.call(this,y,F,"DEPRECATED","warn"),this._metaOpts=k.call(this),F.formats&&A.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),F.keywords&&x.call(this,F.keywords),typeof F.meta=="object"&&this.addMetaSchema(F.meta),R.call(this),F.validateFormats=M}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:F,meta:V,schemaId:U}=this.opts,M=d;U==="id"&&(M={...d},M.id=M.$id,delete M.$id),V&&F&&this.addMetaSchema(M,M[U],!1)}defaultMeta(){let{meta:F,schemaId:V}=this.opts;return this.opts.defaultMeta=typeof F=="object"?F[V]||F:void 0}validate(F,V){let U;if(typeof F=="string"){if(U=this.getSchema(F),!U)throw new Error(`no schema with key or ref "${F}"`)}else U=this.compile(F);let M=U(V);return"$async"in U||(this.errors=U.errors),M}compile(F,V){let U=this._addSchema(F,V);return U.validate||this._compileSchemaEnv(U)}compileAsync(F,V){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:U}=this.opts;return M.call(this,F,V);async function M(Le,Ae){await H.call(this,Le.$schema);let z=this._addSchema(Le,Ae);return z.validate||j.call(this,z)}async function H(Le){Le&&!this.getSchema(Le)&&await M.call(this,{$ref:Le},!0)}async function j(Le){try{return this._compileSchemaEnv(Le)}catch(Ae){if(!(Ae instanceof i.default))throw Ae;return Y.call(this,Ae),await ee.call(this,Ae.missingSchema),j.call(this,Le)}}function Y({missingSchema:Le,missingRef:Ae}){if(this.refs[Le])throw new Error(`AnySchema ${Le} is loaded but ${Ae} cannot be resolved`)}async function ee(Le){let Ae=await se.call(this,Le);this.refs[Le]||await H.call(this,Ae.$schema),this.refs[Le]||this.addSchema(Ae,Le,V)}async function se(Le){let Ae=this._loading[Le];if(Ae)return Ae;try{return await(this._loading[Le]=U(Le))}finally{delete this._loading[Le]}}}addSchema(F,V,U,M=this.opts.validateSchema){if(Array.isArray(F)){for(let j of F)this.addSchema(j,void 0,U,M);return this}let H;if(typeof F=="object"){let{schemaId:j}=this.opts;if(H=F[j],H!==void 0&&typeof H!="string")throw new Error(`schema ${j} must be string`)}return V=(0,c.normalizeId)(V||H),this._checkUnique(V),this.schemas[V]=this._addSchema(F,U,V,M,!0),this}addMetaSchema(F,V,U=this.opts.validateSchema){return this.addSchema(F,V,!0,U),this}validateSchema(F,V){if(typeof F=="boolean")return!0;let U;if(U=F.$schema,U!==void 0&&typeof U!="string")throw new Error("$schema must be a string");if(U=U||this.opts.defaultMeta||this.defaultMeta(),!U)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let M=this.validate(U,F);if(!M&&V){let H="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(H);else throw new Error(H)}return M}getSchema(F){let V;for(;typeof(V=T.call(this,F))=="string";)F=V;if(V===void 0){let{schemaId:U}=this.opts,M=new o.SchemaEnv({schema:{},schemaId:U});if(V=o.resolveSchema.call(this,M,F),!V)return;this.refs[F]=V}return V.validate||this._compileSchemaEnv(V)}removeSchema(F){if(F instanceof RegExp)return this._removeAllSchemas(this.schemas,F),this._removeAllSchemas(this.refs,F),this;switch(typeof F){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let V=T.call(this,F);return typeof V=="object"&&this._cache.delete(V.schema),delete this.schemas[F],delete this.refs[F],this}case"object":{let V=F;this._cache.delete(V);let U=F[this.opts.schemaId];return U&&(U=(0,c.normalizeId)(U),delete this.schemas[U],delete this.refs[U]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(F){for(let V of F)this.addKeyword(V);return this}addKeyword(F,V){let U;if(typeof F=="string")U=F,typeof V=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),V.keyword=U);else if(typeof F=="object"&&V===void 0){if(V=F,U=V.keyword,Array.isArray(U)&&!U.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(L.call(this,U,V),!V)return(0,l.eachItem)(U,H=>G.call(this,H)),this;$.call(this,V);let M={...V,type:(0,u.getJSONTypes)(V.type),schemaType:(0,u.getJSONTypes)(V.schemaType)};return(0,l.eachItem)(U,M.type.length===0?H=>G.call(this,H,M):H=>M.type.forEach(j=>G.call(this,H,M,j))),this}getKeyword(F){let V=this.RULES.all[F];return typeof V=="object"?V.definition:!!V}removeKeyword(F){let{RULES:V}=this;delete V.keywords[F],delete V.all[F];for(let U of V.rules){let M=U.rules.findIndex(H=>H.keyword===F);M>=0&&U.rules.splice(M,1)}return this}addFormat(F,V){return typeof V=="string"&&(V=new RegExp(V)),this.formats[F]=V,this}errorsText(F=this.errors,{separator:V=", ",dataVar:U="data"}={}){return!F||F.length===0?"No errors":F.map(M=>`${U}${M.instancePath} ${M.message}`).reduce((M,H)=>M+V+H)}$dataMetaSchema(F,V){let U=this.RULES.all;F=JSON.parse(JSON.stringify(F));for(let M of V){let H=M.split("/").slice(1),j=F;for(let Y of H)j=j[Y];for(let Y in U){let ee=U[Y];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Le=j[Y];se&&Le&&(j[Y]=Q(Le))}}return F}_removeAllSchemas(F,V){for(let U in F){let M=F[U];(!V||V.test(U))&&(typeof M=="string"?delete F[U]:M&&!M.meta&&(this._cache.delete(M.schema),delete F[U]))}}_addSchema(F,V,U,M=this.opts.validateSchema,H=this.opts.addUsedSchema){let j,{schemaId:Y}=this.opts;if(typeof F=="object")j=F[Y];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof F!="boolean")throw new Error("schema must be object or boolean")}let ee=this._cache.get(F);if(ee!==void 0)return ee;U=(0,c.normalizeId)(j||U);let se=c.getSchemaRefs.call(this,F,U);return ee=new o.SchemaEnv({schema:F,schemaId:Y,meta:V,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),H&&!U.startsWith("#")&&(U&&this._checkUnique(U),this.refs[U]=ee),M&&this.validateSchema(F,!0),ee}_checkUnique(F){if(this.schemas[F]||this.refs[F])throw new Error(`schema with key or id "${F}" already exists`)}_compileSchemaEnv(F){if(F.meta?this._compileMetaSchema(F):o.compileSchema.call(this,F),!F.validate)throw new Error("ajv implementation error");return F.validate}_compileMetaSchema(F){let V=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,F)}finally{this.opts=V}}}E.ValidationError=r.default,E.MissingRefError=i.default,e.default=E;function _(B,F,V,U="error"){for(let M in B){let H=M;H in F&&this.logger[U](`${V}: option ${M}. ${B[H]}`)}}function T(B){return B=(0,c.normalizeId)(B),this.schemas[B]||this.refs[B]}function R(){let B=this.opts.schemas;if(B)if(Array.isArray(B))this.addSchema(B);else for(let F in B)this.addSchema(B[F],F)}function A(){for(let B in this.opts.formats){let F=this.opts.formats[B];F&&this.addFormat(B,F)}}function x(B){if(Array.isArray(B)){this.addVocabulary(B);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let F in B){let V=B[F];V.keyword||(V.keyword=F),this.addKeyword(V)}}function k(){let B={...this.opts};for(let F of h)delete B[F];return B}var P={log(){},warn(){},error(){}};function N(B){if(B===!1)return P;if(B===void 0)return console;if(B.log&&B.warn&&B.error)return B;throw new Error("logger must implement log, warn and error methods")}var C=/^[a-z_$][a-z0-9_$:-]*$/i;function L(B,F){let{RULES:V}=this;if((0,l.eachItem)(B,U=>{if(V.keywords[U])throw new Error(`Keyword ${U} is already defined`);if(!C.test(U))throw new Error(`Keyword ${U} has invalid name`)}),!!F&&F.$data&&!("code"in F||"validate"in F))throw new Error('$data keyword must have "code" or "validate" function')}function G(B,F,V){var U;let M=F?.post;if(V&&M)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:H}=this,j=M?H.post:H.rules.find(({type:ee})=>ee===V);if(j||(j={type:V,rules:[]},H.rules.push(j)),H.keywords[B]=!0,!F)return;let Y={keyword:B,definition:{...F,type:(0,u.getJSONTypes)(F.type),schemaType:(0,u.getJSONTypes)(F.schemaType)}};F.before?W.call(this,j,Y,F.before):j.rules.push(Y),H.all[B]=Y,(U=F.implements)===null||U===void 0||U.forEach(ee=>this.addKeyword(ee))}function W(B,F,V){let U=B.rules.findIndex(M=>M.keyword===V);U>=0?B.rules.splice(U,0,F):(B.rules.push(F),this.logger.warn(`rule ${V} is not defined`))}function $(B){let{metaSchema:F}=B;F!==void 0&&(B.$data&&this.opts.$data&&(F=Q(F)),B.validateSchema=this.compile(F,!0))}var q={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Q(B){return{anyOf:[B,q]}}}),Onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};e.default=t}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=W5(),n=bp(),r=_n(),i=sE(),s=OTe(),o=ur(),a={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:f,it:p}=l,{baseId:h,schemaEnv:m,validateName:g,opts:y,self:b}=p,{root:S}=m;if((f==="#"||f==="#/")&&h===S.baseId)return _();let E=s.resolveRef.call(b,S,h,f);if(E===void 0)throw new t.default(p.opts.uriResolver,h,f);if(E instanceof s.SchemaEnv)return T(E);return R(E);function _(){if(m===S)return u(l,g,m,m.$async);let A=d.scopeValue("root",{ref:S});return u(l,(0,r._)`${A}.validate`,S,S.$async)}function T(A){let x=c(l,A);u(l,x,A,A.$async)}function R(A){let x=d.scopeValue("schema",y.code.source===!0?{ref:A,code:(0,r.stringify)(A)}:{ref:A}),k=d.name("valid"),P=l.subschema({schema:A,dataTypes:[],schemaPath:r.nil,topSchemaRef:x,errSchemaPath:f},k);l.mergeEvaluated(P),l.ok(k)}}};function c(l,d){let{gen:f}=l;return d.validate?f.scopeValue("validate",{ref:d.validate}):(0,r._)`${f.scopeValue("wrapper",{ref:d})}.validate`}e.getValidate=c;function u(l,d,f,p){let{gen:h,it:m}=l,{allErrors:g,schemaEnv:y,opts:b}=m,S=b.passContext?i.default.this:r.nil;p?E():_();function E(){if(!y.$async)throw new Error("async schema referenced by sync schema");let A=h.let("valid");h.try(()=>{h.code((0,r._)`await ${(0,n.callValidateCode)(l,d,S)}`),R(d),g||h.assign(A,!0)},x=>{h.if((0,r._)`!(${x} instanceof ${m.ValidationError})`,()=>h.throw(x)),T(x),g||h.assign(A,!1)}),l.ok(A)}function _(){l.result((0,n.callValidateCode)(l,d,S),()=>R(d),()=>T(d))}function T(A){let x=(0,r._)`${A}.errors`;h.assign(i.default.vErrors,(0,r._)`${i.default.vErrors} === null ? ${x} : ${i.default.vErrors}.concat(${x})`),h.assign(i.default.errors,(0,r._)`${i.default.vErrors}.length`)}function R(A){var x;if(!m.opts.unevaluated)return;let k=(x=f?.validate)===null||x===void 0?void 0:x.evaluated;if(m.props!==!0)if(k&&!k.dynamicProps)k.props!==void 0&&(m.props=o.mergeEvaluated.props(h,k.props,m.props));else{let P=h.var("props",(0,r._)`${A}.evaluated.props`);m.props=o.mergeEvaluated.props(h,P,m.props,r.Name)}if(m.items!==!0)if(k&&!k.dynamicItems)k.items!==void 0&&(m.items=o.mergeEvaluated.items(h,k.items,m.items));else{let P=h.var("items",(0,r._)`${A}.evaluated.items`);m.items=o.mergeEvaluated.items(h,P,m.items,r.Name)}}}e.callRef=u,e.default=a}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Onr(),n=Pnr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),Cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=t.operators,r={maximum:{okStr:"<=",ok:n.LTE,fail:n.GT},minimum:{okStr:">=",ok:n.GTE,fail:n.LT},exclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},exclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:a})=>(0,t.str)`must be ${r[o].okStr} ${a}`,params:({keyword:o,schemaCode:a})=>(0,t._)`{comparison: ${r[o].okStr}, limit: ${a}}`},s={keyword:Object.keys(r),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u}=o;o.fail$data((0,t._)`${c} ${r[a].fail} ${u} || isNaN(${c})`)}};e.default=s}),Mnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={message:({schemaCode:i})=>(0,t.str)`must be multiple of ${i}`,params:({schemaCode:i})=>(0,t._)`{multipleOf: ${i}}`},r={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:n,code(i){let{gen:s,data:o,schemaCode:a,it:c}=i,u=c.opts.multipleOfPrecision,l=s.let("res"),d=u?(0,t._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,t._)`${l} !== parseInt(${l})`;i.fail$data((0,t._)`(${a} === 0 || (${l} = ${o}/${a}, ${d}))`)}};e.default=r}),Dnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(n){let r=n.length,i=0,s=0,o;for(;s=55296&&o<=56319&&s{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=Dnr(),i={message({keyword:o,schemaCode:a}){let c=o==="maxLength"?"more":"fewer";return(0,t.str)`must NOT have ${c} than ${a} characters`},params:({schemaCode:o})=>(0,t._)`{limit: ${o}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u,it:l}=o,d=a==="maxLength"?t.operators.GT:t.operators.LT,f=l.opts.unicode===!1?(0,t._)`${c}.length`:(0,t._)`${(0,n.useFunc)(o.gen,r.default)}(${c})`;o.fail$data((0,t._)`${f} ${d} ${u}`)}};e.default=s}),Unr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r={message:({schemaCode:s})=>(0,n.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,n._)`{pattern: ${s}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:r,code(s){let{data:o,$data:a,schema:c,schemaCode:u,it:l}=s,d=l.opts.unicodeRegExp?"u":"",f=a?(0,n._)`(new RegExp(${u}, ${d}))`:(0,t.usePattern)(s,c);s.fail$data((0,n._)`!${f}.test(${o})`)}};e.default=i}),Fnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={message({keyword:i,schemaCode:s}){let o=i==="maxProperties"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} properties`},params:({schemaCode:i})=>(0,t._)`{limit: ${i}}`},r={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:n,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxProperties"?t.operators.GT:t.operators.LT;i.fail$data((0,t._)`Object.keys(${o}).length ${c} ${a}`)}};e.default=r}),jnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=ur(),i={message:({params:{missingProperty:o}})=>(0,n.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,n._)`{missingProperty: ${o}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,schema:c,schemaCode:u,data:l,$data:d,it:f}=o,{opts:p}=f;if(!d&&c.length===0)return;let h=c.length>=p.loopRequired;if(f.allErrors?m():g(),p.strictRequired){let S=o.parentSchema.properties,{definedProperties:E}=o.it;for(let _ of c)if(S?.[_]===void 0&&!E.has(_)){let T=f.schemaEnv.baseId+f.errSchemaPath,R=`required property "${_}" is not defined at "${T}" (strictRequired)`;(0,r.checkStrictMode)(f,R,f.opts.strictRequired)}}function m(){if(h||d)o.block$data(n.nil,y);else for(let S of c)(0,t.checkReportMissingProp)(o,S)}function g(){let S=a.let("missing");if(h||d){let E=a.let("valid",!0);o.block$data(E,()=>b(S,E)),o.ok(E)}else a.if((0,t.checkMissingProp)(o,c,S)),(0,t.reportMissingProp)(o,S),a.else()}function y(){a.forOf("prop",u,S=>{o.setParams({missingProperty:S}),a.if((0,t.noPropertyInData)(a,l,S,p.ownProperties),()=>o.error())})}function b(S,E){o.setParams({missingProperty:S}),a.forOf(S,u,()=>{a.assign(E,(0,t.propertyInData)(a,l,S,p.ownProperties)),a.if((0,n.not)(E),()=>{o.error(),a.break()})},n.nil)}}};e.default=s}),Hnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={message({keyword:i,schemaCode:s}){let o=i==="maxItems"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} items`},params:({schemaCode:i})=>(0,t._)`{limit: ${i}}`},r={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:n,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxItems"?t.operators.GT:t.operators.LT;i.fail$data((0,t._)`${o}.length ${c} ${a}`)}};e.default=r}),PTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=pOt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=w5(),n=_n(),r=ur(),i=PTe(),s={message:({params:{i:a,j:c}})=>(0,n.str)`must NOT have duplicate items (items ## ${c} and ${a} are identical)`,params:({params:{i:a,j:c}})=>(0,n._)`{i: ${a}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(a){let{gen:c,data:u,$data:l,schema:d,parentSchema:f,schemaCode:p,it:h}=a;if(!l&&!d)return;let m=c.let("valid"),g=f.items?(0,t.getSchemaTypes)(f.items):[];a.block$data(m,y,(0,n._)`${p} === false`),a.ok(m);function y(){let _=c.let("i",(0,n._)`${u}.length`),T=c.let("j");a.setParams({i:_,j:T}),c.assign(m,!0),c.if((0,n._)`${_} > 1`,()=>(b()?S:E)(_,T))}function b(){return g.length>0&&!g.some(_=>_==="object"||_==="array")}function S(_,T){let R=c.name("item"),A=(0,t.checkDataTypes)(g,R,h.opts.strictNumbers,t.DataType.Wrong),x=c.const("indices",(0,n._)`{}`);c.for((0,n._)`;${_}--;`,()=>{c.let(R,(0,n._)`${u}[${_}]`),c.if(A,(0,n._)`continue`),g.length>1&&c.if((0,n._)`typeof ${R} == "string"`,(0,n._)`${R} += "_"`),c.if((0,n._)`typeof ${x}[${R}] == "number"`,()=>{c.assign(T,(0,n._)`${x}[${R}]`),a.error(),c.assign(m,!1).break()}).code((0,n._)`${x}[${R}] = ${_}`)})}function E(_,T){let R=(0,r.useFunc)(c,i.default),A=c.name("outer");c.label(A).for((0,n._)`;${_}--;`,()=>c.for((0,n._)`${T} = ${_}; ${T}--;`,()=>c.if((0,n._)`${R}(${u}[${_}], ${u}[${T}])`,()=>{a.error(),c.assign(m,!1).break(A)})))}}};e.default=o}),Bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=PTe(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,t._)`{allowedValue: ${o}}`},s={keyword:"const",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,t._)`!${(0,n.useFunc)(a,r.default)}(${c}, ${l})`):o.fail((0,t._)`${d} !== ${c}`)}};e.default=s}),znr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=PTe(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,t._)`{allowedValues: ${o}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schema:l,schemaCode:d,it:f}=o;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let p=l.length>=f.opts.loopEnum,h,m=()=>h??(h=(0,n.useFunc)(a,r.default)),g;if(p||u)g=a.let("valid"),o.block$data(g,y);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let S=a.const("vSchema",d);g=(0,t.or)(...l.map((E,_)=>b(S,_)))}o.pass(g);function y(){a.assign(g,!1),a.forOf("v",d,S=>a.if((0,t._)`${m()}(${c}, ${S})`,()=>a.assign(g,!0).break()))}function b(S,E){let _=l[E];return typeof _=="object"&&_!==null?(0,t._)`${m()}(${c}, ${S}[${E}])`:(0,t._)`${c} === ${_}`}}};e.default=s}),Gnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Cnr(),n=Mnr(),r=Lnr(),i=Unr(),s=Fnr(),o=jnr(),a=Hnr(),c=qnr(),u=Bnr(),l=znr(),d=[t.default,n.default,r.default,i.default,s.default,o.default,a.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];e.default=d}),hOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=_n(),n=ur(),r={message:({params:{len:o}})=>(0,t.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,t._)`{limit: ${o}}`},i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:r,code(o){let{parentSchema:a,it:c}=o,{items:u}=a;if(!Array.isArray(u)){(0,n.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(o,u)}};function s(o,a){let{gen:c,schema:u,data:l,keyword:d,it:f}=o;f.items=!0;let p=c.const("len",(0,t._)`${l}.length`);if(u===!1)o.setParams({len:a.length}),o.pass((0,t._)`${p} <= ${a.length}`);else if(typeof u=="object"&&!(0,n.alwaysValidSchema)(f,u)){let m=c.var("valid",(0,t._)`${p} <= ${a.length}`);c.if((0,t.not)(m),()=>h(m)),o.ok(m)}function h(m){c.forRange("i",a.length,p,g=>{o.subschema({keyword:d,dataProp:g,dataPropType:n.Type.Num},m),f.allErrors||c.if((0,t.not)(m),()=>c.break())})}}e.validateAdditionalItems=s,e.default=i}),mOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=_n(),n=ur(),r=bp(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:a,it:c}=o;if(Array.isArray(a))return s(o,"additionalItems",a);c.items=!0,!(0,n.alwaysValidSchema)(c,a)&&o.ok((0,r.validateArray)(o))}};function s(o,a,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:f,it:p}=o;g(l),p.opts.unevaluated&&c.length&&p.items!==!0&&(p.items=n.mergeEvaluated.items(u,c.length,p.items));let h=u.name("valid"),m=u.const("len",(0,t._)`${d}.length`);c.forEach((y,b)=>{(0,n.alwaysValidSchema)(p,y)||(u.if((0,t._)`${m} > ${b}`,()=>o.subschema({keyword:f,schemaProp:b,dataProp:b},h)),o.ok(h))});function g(y){let{opts:b,errSchemaPath:S}=p,E=c.length,_=E===y.minItems&&(E===y.maxItems||y[a]===!1);if(b.strictTuples&&!_){let T=`"${f}" is ${E}-tuple, but minItems or maxItems/${a} are not specified or different at path "${S}"`;(0,n.checkStrictMode)(p,T,b.strictTuples)}}}e.validateTuple=s,e.default=i}),Vnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=mOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),Wnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=bp(),i=hOt(),s={message:({params:{len:a}})=>(0,t.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,t._)`{limit: ${a}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(a){let{schema:c,parentSchema:u,it:l}=a,{prefixItems:d}=u;l.items=!0,!(0,n.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(a,d):a.ok((0,r.validateArray)(a)))}};e.default=o}),Knr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r={message:({params:{min:s,max:o}})=>o===void 0?(0,t.str)`must contain at least ${s} valid item(s)`:(0,t.str)`must contain at least ${s} and no more than ${o} valid item(s)`,params:({params:{min:s,max:o}})=>o===void 0?(0,t._)`{minContains: ${s}}`:(0,t._)`{minContains: ${s}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:r,code(s){let{gen:o,schema:a,parentSchema:c,data:u,it:l}=s,d,f,{minContains:p,maxContains:h}=c;l.opts.next?(d=p===void 0?1:p,f=h):d=1;let m=o.const("len",(0,t._)`${u}.length`);if(s.setParams({min:d,max:f}),f===void 0&&d===0){(0,n.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(f!==void 0&&d>f){(0,n.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,n.alwaysValidSchema)(l,a)){let E=(0,t._)`${m} >= ${d}`;f!==void 0&&(E=(0,t._)`${E} && ${m} <= ${f}`),s.pass(E);return}l.items=!0;let g=o.name("valid");f===void 0&&d===1?b(g,()=>o.if(g,()=>o.break())):d===0?(o.let(g,!0),f!==void 0&&o.if((0,t._)`${u}.length > 0`,y)):(o.let(g,!1),y()),s.result(g,()=>s.reset());function y(){let E=o.name("_valid"),_=o.let("count",0);b(E,()=>o.if(E,()=>S(_)))}function b(E,_){o.forRange("i",0,m,T=>{s.subschema({keyword:"contains",dataProp:T,dataPropType:n.Type.Num,compositeRule:!0},E),_()})}function S(E){o.code((0,t._)`${E}++`),f===void 0?o.if((0,t._)`${E} >= ${d}`,()=>o.assign(g,!0).break()):(o.if((0,t._)`${E} > ${f}`,()=>o.assign(g,!1).break()),d===1?o.assign(g,!0):o.if((0,t._)`${E} >= ${d}`,()=>o.assign(g,!0)))}}};e.default=i}),Ynr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=_n(),n=ur(),r=bp();e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,t._)`{property: ${c}, + || ${x} === "boolean" || ${R} === null`).assign(k,(0,i._)`[${R}]`)}}}function p({gen:S,parentData:E,parentDataProperty:_},T){S.if((0,i._)`${E} !== undefined`,()=>S.assign((0,i._)`${E}[${_}]`,T))}function h(S,E,_,T=o.Correct){let R=T===o.Correct?i.operators.EQ:i.operators.NEQ,A;switch(S){case"null":return(0,i._)`${E} ${R} null`;case"array":A=(0,i._)`Array.isArray(${E})`;break;case"object":A=(0,i._)`${E} && typeof ${E} == "object" && !Array.isArray(${E})`;break;case"integer":A=x((0,i._)`!(${E} % 1) && !isNaN(${E})`);break;case"number":A=x();break;default:return(0,i._)`typeof ${E} ${R} ${S}`}return T===o.Correct?A:(0,i.not)(A);function x(k=i.nil){return(0,i.and)((0,i._)`typeof ${E} == "number"`,k,_?(0,i._)`isFinite(${E})`:i.nil)}}e.checkDataType=h;function m(S,E,_,T){if(S.length===1)return h(S[0],E,_,T);let R,A=(0,s.toHash)(S);if(A.array&&A.object){let x=(0,i._)`typeof ${E} != "object"`;R=A.null?x:(0,i._)`!${E} || ${x}`,delete A.null,delete A.array,delete A.object}else R=i.nil;A.number&&delete A.integer;for(let x in A)R=(0,i.and)(R,h(x,E,_,T));return R}e.checkDataTypes=m;var g={message:({schema:S})=>`must be ${S}`,params:({schema:S,schemaValue:E})=>typeof S=="string"?(0,i._)`{type: ${S}}`:(0,i._)`{type: ${E}}`};function y(S){let E=b(S);(0,r.reportError)(E,g)}e.reportTypeError=y;function b(S){let{gen:E,data:_,schema:T}=S,R=(0,s.schemaRefOrVal)(S,T,"type");return{gen:E,keyword:"type",data:_,schema:T.type,schemaCode:R,schemaValue:R,parentSchema:T,params:{},it:S}}}),bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;var t=_n(),n=ur();function r(s,o){let{properties:a,items:c}=s.schema;if(o==="object"&&a)for(let u in a)i(s,u,a[u].default);else o==="array"&&Array.isArray(c)&&c.forEach((u,l)=>i(s,l,u.default))}e.assignDefaults=r;function i(s,o,a){let{gen:c,compositeRule:u,data:l,opts:d}=s;if(a===void 0)return;let f=(0,t._)`${l}${(0,t.getProperty)(o)}`;if(u){(0,n.checkStrictMode)(s,`default is ignored for: ${f}`);return}let p=(0,t._)`${f} === undefined`;d.useDefaults==="empty"&&(p=(0,t._)`${p} || ${f} === null || ${f} === ""`),c.if(p,(0,t._)`${f} = ${(0,t.stringify)(a)}`)}}),bp=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateUnion=e.validateArray=e.usePattern=e.callValidateCode=e.schemaProperties=e.allSchemaProperties=e.noPropertyInData=e.propertyInData=e.isOwnProperty=e.hasPropFunc=e.reportMissingProp=e.checkMissingProp=e.checkReportMissingProp=void 0;var t=_n(),n=ur(),r=sE(),i=ur();function s(S,E){let{gen:_,data:T,it:R}=S;_.if(d(_,T,E,R.opts.ownProperties),()=>{S.setParams({missingProperty:(0,t._)`${E}`},!0),S.error()})}e.checkReportMissingProp=s;function o({gen:S,data:E,it:{opts:_}},T,R){return(0,t.or)(...T.map(A=>(0,t.and)(d(S,E,A,_.ownProperties),(0,t._)`${R} = ${A}`)))}e.checkMissingProp=o;function a(S,E){S.setParams({missingProperty:E},!0),S.error()}e.reportMissingProp=a;function c(S){return S.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,t._)`Object.prototype.hasOwnProperty`})}e.hasPropFunc=c;function u(S,E,_){return(0,t._)`${c(S)}.call(${E}, ${_})`}e.isOwnProperty=u;function l(S,E,_,T){let R=(0,t._)`${E}${(0,t.getProperty)(_)} !== undefined`;return T?(0,t._)`${R} && ${u(S,E,_)}`:R}e.propertyInData=l;function d(S,E,_,T){let R=(0,t._)`${E}${(0,t.getProperty)(_)} === undefined`;return T?(0,t.or)(R,(0,t.not)(u(S,E,_))):R}e.noPropertyInData=d;function f(S){return S?Object.keys(S).filter(E=>E!=="__proto__"):[]}e.allSchemaProperties=f;function p(S,E){return f(E).filter(_=>!(0,n.alwaysValidSchema)(S,E[_]))}e.schemaProperties=p;function h({schemaCode:S,data:E,it:{gen:_,topSchemaRef:T,schemaPath:R,errorPath:A},it:x},k,P,N){let C=N?(0,t._)`${S}, ${E}, ${T}${R}`:E,L=[[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,A)],[r.default.parentData,x.parentData],[r.default.parentDataProperty,x.parentDataProperty],[r.default.rootData,r.default.rootData]];x.opts.dynamicRef&&L.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);let G=(0,t._)`${C}, ${_.object(...L)}`;return P!==t.nil?(0,t._)`${k}.call(${P}, ${G})`:(0,t._)`${k}(${G})`}e.callValidateCode=h;var m=(0,t._)`new RegExp`;function g({gen:S,it:{opts:E}},_){let T=E.unicodeRegExp?"u":"",{regExp:R}=E.code,A=R(_,T);return S.scopeValue("pattern",{key:A.toString(),ref:A,code:(0,t._)`${R.code==="new RegExp"?m:(0,i.useFunc)(S,R)}(${_}, ${T})`})}e.usePattern=g;function y(S){let{gen:E,data:_,keyword:T,it:R}=S,A=E.name("valid");if(R.allErrors){let k=E.let("valid",!0);return x(()=>E.assign(k,!1)),k}return E.var(A,!0),x(()=>E.break()),A;function x(k){let P=E.const("len",(0,t._)`${_}.length`);E.forRange("i",0,P,N=>{S.subschema({keyword:T,dataProp:N,dataPropType:n.Type.Num},A),E.if((0,t.not)(A),k)})}}e.validateArray=y;function b(S){let{gen:E,schema:_,keyword:T,it:R}=S;if(!Array.isArray(_))throw new Error("ajv implementation error");if(_.some(P=>(0,n.alwaysValidSchema)(R,P))&&!R.opts.unevaluated)return;let x=E.let("valid",!1),k=E.name("_valid");E.block(()=>_.forEach((P,N)=>{let C=S.subschema({keyword:T,schemaProp:N,compositeRule:!0},k);E.assign(x,(0,t._)`${x} || ${k}`),S.mergeValidEvaluated(C,k)||E.if((0,t.not)(x))})),S.result(x,()=>S.reset(),()=>S.error(!0))}e.validateUnion=b}),Enr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;var t=_n(),n=sE(),r=bp(),i=G5();function s(p,h){let{gen:m,keyword:g,schema:y,parentSchema:b,it:S}=p,E=h.macro.call(S.self,y,b,S),_=l(m,g,E);S.opts.validateSchema!==!1&&S.self.validateSchema(E,!0);let T=m.name("valid");p.subschema({schema:E,schemaPath:t.nil,errSchemaPath:`${S.errSchemaPath}/${g}`,topSchemaRef:_,compositeRule:!0},T),p.pass(T,()=>p.error(!0))}e.macroKeywordCode=s;function o(p,h){var m;let{gen:g,keyword:y,schema:b,parentSchema:S,$data:E,it:_}=p;u(_,h);let T=!E&&h.compile?h.compile.call(_.self,b,S,_):h.validate,R=l(g,y,T),A=g.let("valid");p.block$data(A,x),p.ok((m=h.valid)!==null&&m!==void 0?m:A);function x(){if(h.errors===!1)N(),h.modifying&&a(p),C(()=>p.error());else{let L=h.async?k():P();h.modifying&&a(p),C(()=>c(p,L))}}function k(){let L=g.let("ruleErrs",null);return g.try(()=>N((0,t._)`await `),G=>g.assign(A,!1).if((0,t._)`${G} instanceof ${_.ValidationError}`,()=>g.assign(L,(0,t._)`${G}.errors`),()=>g.throw(G))),L}function P(){let L=(0,t._)`${R}.errors`;return g.assign(L,null),N(t.nil),L}function N(L=h.async?(0,t._)`await `:t.nil){let G=_.opts.passContext?n.default.this:n.default.self,W=!("compile"in h&&!E||h.schema===!1);g.assign(A,(0,t._)`${L}${(0,r.callValidateCode)(p,R,G,W)}`,h.modifying)}function C(L){var G;g.if((0,t.not)((G=h.valid)!==null&&G!==void 0?G:A),L)}}e.funcKeywordCode=o;function a(p){let{gen:h,data:m,it:g}=p;h.if(g.parentData,()=>h.assign(m,(0,t._)`${g.parentData}[${g.parentDataProperty}]`))}function c(p,h){let{gen:m}=p;m.if((0,t._)`Array.isArray(${h})`,()=>{m.assign(n.default.vErrors,(0,t._)`${n.default.vErrors} === null ? ${h} : ${n.default.vErrors}.concat(${h})`).assign(n.default.errors,(0,t._)`${n.default.vErrors}.length`),(0,i.extendErrors)(p)},()=>p.error())}function u({schemaEnv:p},h){if(h.async&&!p.$async)throw new Error("async keyword in sync schema")}function l(p,h,m){if(m===void 0)throw new Error(`keyword "${h}" failed to compile`);return p.scopeValue("keyword",typeof m=="function"?{ref:m}:{ref:m,code:(0,t.stringify)(m)})}function d(p,h,m=!1){return!h.length||h.some(g=>g==="array"?Array.isArray(p):g==="object"?p&&typeof p=="object"&&!Array.isArray(p):typeof p==g||m&&typeof p>"u")}e.validSchemaType=d;function f({schema:p,opts:h,self:m,errSchemaPath:g},y,b){if(Array.isArray(y.keyword)?!y.keyword.includes(b):y.keyword!==b)throw new Error("ajv implementation error");let S=y.dependencies;if(S?.some(E=>!Object.prototype.hasOwnProperty.call(p,E)))throw new Error(`parent schema must have dependencies of ${b}: ${S.join(",")}`);if(y.validateSchema&&!y.validateSchema(p[b])){let _=`keyword "${b}" value is invalid at path "${g}": `+m.errorsText(y.validateSchema.errors);if(h.validateSchema==="log")m.logger.error(_);else throw new Error(_)}}e.validateKeywordUsage=f}),_nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;var t=_n(),n=ur();function r(o,{keyword:a,schemaProp:c,schema:u,schemaPath:l,errSchemaPath:d,topSchemaRef:f}){if(a!==void 0&&u!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){let p=o.schema[a];return c===void 0?{schema:p,schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(a)}`,errSchemaPath:`${o.errSchemaPath}/${a}`}:{schema:p[c],schemaPath:(0,t._)`${o.schemaPath}${(0,t.getProperty)(a)}${(0,t.getProperty)(c)}`,errSchemaPath:`${o.errSchemaPath}/${a}/${(0,n.escapeFragment)(c)}`}}if(u!==void 0){if(l===void 0||d===void 0||f===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:u,schemaPath:l,topSchemaRef:f,errSchemaPath:d}}throw new Error('either "keyword" or "schema" must be passed')}e.getSubschema=r;function i(o,a,{dataProp:c,dataPropType:u,data:l,dataTypes:d,propertyName:f}){if(l!==void 0&&c!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:p}=a;if(c!==void 0){let{errorPath:m,dataPathArr:g,opts:y}=a,b=p.let("data",(0,t._)`${a.data}${(0,t.getProperty)(c)}`,!0);h(b),o.errorPath=(0,t.str)`${m}${(0,n.getErrorPath)(c,u,y.jsPropertySyntax)}`,o.parentDataProperty=(0,t._)`${c}`,o.dataPathArr=[...g,o.parentDataProperty]}if(l!==void 0){let m=l instanceof t.Name?l:p.let("data",l,!0);h(m),f!==void 0&&(o.propertyName=f)}d&&(o.dataTypes=d);function h(m){o.data=m,o.dataLevel=a.dataLevel+1,o.dataTypes=[],a.definedProperties=new Set,o.parentData=a.data,o.dataNames=[...a.dataNames,m]}}e.extendSubschemaData=i;function s(o,{jtdDiscriminator:a,jtdMetadata:c,compositeRule:u,createErrors:l,allErrors:d}){u!==void 0&&(o.compositeRule=u),l!==void 0&&(o.createErrors=l),d!==void 0&&(o.allErrors=d),o.jtdDiscriminator=a,o.jtdMetadata=c}e.extendSubschemaMode=s}),pOt=Xe((e,t)=>{t.exports=function n(r,i){if(r===i)return!0;if(r&&i&&typeof r=="object"&&typeof i=="object"){if(r.constructor!==i.constructor)return!1;var s,o,a;if(Array.isArray(r)){if(s=r.length,s!=i.length)return!1;for(o=s;o--!==0;)if(!n(r[o],i[o]))return!1;return!0}if(r.constructor===RegExp)return r.source===i.source&&r.flags===i.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===i.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===i.toString();if(a=Object.keys(r),s=a.length,s!==Object.keys(i).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(i,a[o]))return!1;for(o=s;o--!==0;){var c=a[o];if(!n(r[c],i[c]))return!1}return!0}return r!==r&&i!==i}}),Tnr=Xe((e,t)=>{var n=t.exports=function(s,o,a){typeof o=="function"&&(a=o,o={}),a=o.cb||a;var c=typeof a=="function"?a:a.pre||function(){},u=a.post||function(){};r(o,c,u,s,"",s)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function r(s,o,a,c,u,l,d,f,p,h){if(c&&typeof c=="object"&&!Array.isArray(c)){o(c,u,l,d,f,p,h);for(var m in c){var g=c[m];if(Array.isArray(g)){if(m in n.arrayKeywords)for(var y=0;y{Object.defineProperty(e,"__esModule",{value:!0}),e.getSchemaRefs=e.resolveUrl=e.normalizeId=e._getFullPath=e.getFullPath=e.inlineRef=void 0;var t=ur(),n=pOt(),r=Tnr(),i=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function s(g,y=!0){return typeof g=="boolean"?!0:y===!0?!a(g):y?c(g)<=y:!1}e.inlineRef=s;var o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function a(g){for(let y in g){if(o.has(y))return!0;let b=g[y];if(Array.isArray(b)&&b.some(a)||typeof b=="object"&&a(b))return!0}return!1}function c(g){let y=0;for(let b in g){if(b==="$ref")return 1/0;if(y++,!i.has(b)&&(typeof g[b]=="object"&&(0,t.eachItem)(g[b],S=>y+=c(S)),y===1/0))return 1/0}return y}function u(g,y="",b){b!==!1&&(y=f(y));let S=g.parse(y);return l(g,S)}e.getFullPath=u;function l(g,y){return g.serialize(y).split("#")[0]+"#"}e._getFullPath=l;var d=/#\/?$/;function f(g){return g?g.replace(d,""):""}e.normalizeId=f;function p(g,y,b){return b=f(b),g.resolve(y,b)}e.resolveUrl=p;var h=/^[a-z_][-a-z0-9._]*$/i;function m(g,y){if(typeof g=="boolean")return{};let{schemaId:b,uriResolver:S}=this.opts,E=f(g[b]||y),_={"":E},T=u(S,E,!1),R={},A=new Set;return r(g,{allKeys:!0},(P,N,C,L)=>{if(L===void 0)return;let G=T+N,W=_[L];typeof P[b]=="string"&&(W=$.call(this,P[b])),q.call(this,P.$anchor),q.call(this,P.$dynamicAnchor),_[N]=W;function $(Q){let B=this.opts.uriResolver.resolve;if(Q=f(W?B(W,Q):Q),A.has(Q))throw k(Q);A.add(Q);let F=this.refs[Q];return typeof F=="string"&&(F=this.refs[F]),typeof F=="object"?x(P,F.schema,Q):Q!==f(G)&&(Q[0]==="#"?(x(P,R[Q],Q),R[Q]=P):this.refs[Q]=G),Q}function q(Q){if(typeof Q=="string"){if(!h.test(Q))throw new Error(`invalid anchor "${Q}"`);$.call(this,`#${Q}`)}}}),R;function x(P,N,C){if(N!==void 0&&!n(P,N))throw k(C)}function k(P){return new Error(`reference "${P}" resolves to more than one schema`)}}e.getSchemaRefs=m}),W5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;var t=Snr(),n=k5(),r=fOt(),i=k5(),s=bnr(),o=Enr(),a=_nr(),c=_n(),u=sE(),l=V5(),d=ur(),f=G5();function p(z){if(T(z)&&(A(z),_(z))){y(z);return}h(z,()=>(0,t.topBoolOrEmptySchema)(z))}e.validateFunctionCode=p;function h({gen:z,validateName:J,schema:oe,schemaEnv:le,opts:Ee},kt){Ee.code.es5?z.func(J,(0,c._)`${u.default.data}, ${u.default.valCxt}`,le.$async,()=>{z.code((0,c._)`"use strict"; ${S(oe,Ee)}`),g(z,Ee),z.code(kt)}):z.func(J,(0,c._)`${u.default.data}, ${m(Ee)}`,le.$async,()=>z.code(S(oe,Ee)).code(kt))}function m(z){return(0,c._)`{${u.default.instancePath}="", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${z.dynamicRef?(0,c._)`, ${u.default.dynamicAnchors}={}`:c.nil}}={}`}function g(z,J){z.if(u.default.valCxt,()=>{z.var(u.default.instancePath,(0,c._)`${u.default.valCxt}.${u.default.instancePath}`),z.var(u.default.parentData,(0,c._)`${u.default.valCxt}.${u.default.parentData}`),z.var(u.default.parentDataProperty,(0,c._)`${u.default.valCxt}.${u.default.parentDataProperty}`),z.var(u.default.rootData,(0,c._)`${u.default.valCxt}.${u.default.rootData}`),J.dynamicRef&&z.var(u.default.dynamicAnchors,(0,c._)`${u.default.valCxt}.${u.default.dynamicAnchors}`)},()=>{z.var(u.default.instancePath,(0,c._)`""`),z.var(u.default.parentData,(0,c._)`undefined`),z.var(u.default.parentDataProperty,(0,c._)`undefined`),z.var(u.default.rootData,u.default.data),J.dynamicRef&&z.var(u.default.dynamicAnchors,(0,c._)`{}`)})}function y(z){let{schema:J,opts:oe,gen:le}=z;h(z,()=>{oe.$comment&&J.$comment&&L(z),P(z),le.let(u.default.vErrors,null),le.let(u.default.errors,0),oe.unevaluated&&b(z),x(z),G(z)})}function b(z){let{gen:J,validateName:oe}=z;z.evaluated=J.const("evaluated",(0,c._)`${oe}.evaluated`),J.if((0,c._)`${z.evaluated}.dynamicProps`,()=>J.assign((0,c._)`${z.evaluated}.props`,(0,c._)`undefined`)),J.if((0,c._)`${z.evaluated}.dynamicItems`,()=>J.assign((0,c._)`${z.evaluated}.items`,(0,c._)`undefined`))}function S(z,J){let oe=typeof z=="object"&&z[J.schemaId];return oe&&(J.code.source||J.code.process)?(0,c._)`/*# sourceURL=${oe} */`:c.nil}function E(z,J){if(T(z)&&(A(z),_(z))){R(z,J);return}(0,t.boolOrEmptySchema)(z,J)}function _({schema:z,self:J}){if(typeof z=="boolean")return!z;for(let oe in z)if(J.RULES.all[oe])return!0;return!1}function T(z){return typeof z.schema!="boolean"}function R(z,J){let{schema:oe,gen:le,opts:Ee}=z;Ee.$comment&&oe.$comment&&L(z),N(z),C(z);let kt=le.const("_errs",u.default.errors);x(z,kt),le.var(J,(0,c._)`${kt} === ${u.default.errors}`)}function A(z){(0,d.checkUnknownRules)(z),k(z)}function x(z,J){if(z.opts.jtd)return $(z,[],!1,J);let oe=(0,n.getSchemaTypes)(z.schema),le=(0,n.coerceAndCheckDataType)(z,oe);$(z,oe,!le,J)}function k(z){let{schema:J,errSchemaPath:oe,opts:le,self:Ee}=z;J.$ref&&le.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(J,Ee.RULES)&&Ee.logger.warn(`$ref: keywords ignored in schema at path "${oe}"`)}function P(z){let{schema:J,opts:oe}=z;J.default!==void 0&&oe.useDefaults&&oe.strictSchema&&(0,d.checkStrictMode)(z,"default is ignored in the schema root")}function N(z){let J=z.schema[z.opts.schemaId];J&&(z.baseId=(0,l.resolveUrl)(z.opts.uriResolver,z.baseId,J))}function C(z){if(z.schema.$async&&!z.schemaEnv.$async)throw new Error("async schema in sync schema")}function L({gen:z,schemaEnv:J,schema:oe,errSchemaPath:le,opts:Ee}){let kt=oe.$comment;if(Ee.$comment===!0)z.code((0,c._)`${u.default.self}.logger.log(${kt})`);else if(typeof Ee.$comment=="function"){let Ue=(0,c.str)`${le}/$comment`,Ln=z.scopeValue("root",{ref:J.root});z.code((0,c._)`${u.default.self}.opts.$comment(${kt}, ${Ue}, ${Ln}.schema)`)}}function G(z){let{gen:J,schemaEnv:oe,validateName:le,ValidationError:Ee,opts:kt}=z;oe.$async?J.if((0,c._)`${u.default.errors} === 0`,()=>J.return(u.default.data),()=>J.throw((0,c._)`new ${Ee}(${u.default.vErrors})`)):(J.assign((0,c._)`${le}.errors`,u.default.vErrors),kt.unevaluated&&W(z),J.return((0,c._)`${u.default.errors} === 0`))}function W({gen:z,evaluated:J,props:oe,items:le}){oe instanceof c.Name&&z.assign((0,c._)`${J}.props`,oe),le instanceof c.Name&&z.assign((0,c._)`${J}.items`,le)}function $(z,J,oe,le){let{gen:Ee,schema:kt,data:Ue,allErrors:Ln,opts:lr,self:sn}=z,{RULES:dr}=sn;if(kt.$ref&&(lr.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(kt,dr))){Ee.block(()=>ee(z,"$ref",dr.all.$ref.definition));return}lr.jtd||Q(z,J),Ee.block(()=>{for(let As of dr.rules)nl(As);nl(dr.post)});function nl(As){(0,r.shouldUseGroup)(kt,As)&&(As.type?(Ee.if((0,i.checkDataType)(As.type,Ue,lr.strictNumbers)),q(z,As),J.length===1&&J[0]===As.type&&oe&&(Ee.else(),(0,i.reportTypeError)(z)),Ee.endIf()):q(z,As),Ln||Ee.if((0,c._)`${u.default.errors} === ${le||0}`))}}function q(z,J){let{gen:oe,schema:le,opts:{useDefaults:Ee}}=z;Ee&&(0,s.assignDefaults)(z,J.type),oe.block(()=>{for(let kt of J.rules)(0,r.shouldUseRule)(le,kt)&&ee(z,kt.keyword,kt.definition,J.type)})}function Q(z,J){z.schemaEnv.meta||!z.opts.strictTypes||(B(z,J),z.opts.allowUnionTypes||F(z,J),V(z,z.dataTypes))}function B(z,J){if(J.length){if(!z.dataTypes.length){z.dataTypes=J;return}J.forEach(oe=>{M(z.dataTypes,oe)||j(z,`type "${oe}" not allowed by context "${z.dataTypes.join(",")}"`)}),H(z,J)}}function F(z,J){J.length>1&&!(J.length===2&&J.includes("null"))&&j(z,"use allowUnionTypes to allow union type keyword")}function V(z,J){let oe=z.self.RULES.all;for(let le in oe){let Ee=oe[le];if(typeof Ee=="object"&&(0,r.shouldUseRule)(z.schema,Ee)){let{type:kt}=Ee.definition;kt.length&&!kt.some(Ue=>U(J,Ue))&&j(z,`missing type "${kt.join(",")}" for keyword "${le}"`)}}}function U(z,J){return z.includes(J)||J==="number"&&z.includes("integer")}function M(z,J){return z.includes(J)||J==="integer"&&z.includes("number")}function H(z,J){let oe=[];for(let le of z.dataTypes)M(J,le)?oe.push(le):J.includes("integer")&&le==="number"&&oe.push("integer");z.dataTypes=oe}function j(z,J){let oe=z.schemaEnv.baseId+z.errSchemaPath;J+=` at "${oe}" (strictTypes)`,(0,d.checkStrictMode)(z,J,z.opts.strictTypes)}class Y{constructor(J,oe,le){if((0,o.validateKeywordUsage)(J,oe,le),this.gen=J.gen,this.allErrors=J.allErrors,this.keyword=le,this.data=J.data,this.schema=J.schema[le],this.$data=oe.$data&&J.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(J,this.schema,le,this.$data),this.schemaType=oe.schemaType,this.parentSchema=J.schema,this.params={},this.it=J,this.def=oe,this.$data)this.schemaCode=J.gen.const("vSchema",Ae(this.$data,J));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,oe.schemaType,oe.allowUndefined))throw new Error(`${le} value must be ${JSON.stringify(oe.schemaType)}`);("code"in oe?oe.trackErrors:oe.errors!==!1)&&(this.errsCount=J.gen.const("_errs",u.default.errors))}result(J,oe,le){this.failResult((0,c.not)(J),oe,le)}failResult(J,oe,le){this.gen.if(J),le?le():this.error(),oe?(this.gen.else(),oe(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(J,oe){this.failResult((0,c.not)(J),void 0,oe)}fail(J){if(J===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(J),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(J){if(!this.$data)return this.fail(J);let{schemaCode:oe}=this;this.fail((0,c._)`${oe} !== undefined && (${(0,c.or)(this.invalid$data(),J)})`)}error(J,oe,le){if(oe){this.setParams(oe),this._error(J,le),this.setParams({});return}this._error(J,le)}_error(J,oe){(J?f.reportExtraError:f.reportError)(this,this.def.error,oe)}$dataError(){(0,f.reportError)(this,this.def.$dataError||f.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f.resetErrorsCount)(this.gen,this.errsCount)}ok(J){this.allErrors||this.gen.if(J)}setParams(J,oe){oe?Object.assign(this.params,J):this.params=J}block$data(J,oe,le=c.nil){this.gen.block(()=>{this.check$data(J,le),oe()})}check$data(J=c.nil,oe=c.nil){if(!this.$data)return;let{gen:le,schemaCode:Ee,schemaType:kt,def:Ue}=this;le.if((0,c.or)((0,c._)`${Ee} === undefined`,oe)),J!==c.nil&&le.assign(J,!0),(kt.length||Ue.validateSchema)&&(le.elseIf(this.invalid$data()),this.$dataError(),J!==c.nil&&le.assign(J,!1)),le.else()}invalid$data(){let{gen:J,schemaCode:oe,schemaType:le,def:Ee,it:kt}=this;return(0,c.or)(Ue(),Ln());function Ue(){if(le.length){if(!(oe instanceof c.Name))throw new Error("ajv implementation error");let lr=Array.isArray(le)?le:[le];return(0,c._)`${(0,i.checkDataTypes)(lr,oe,kt.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function Ln(){if(Ee.validateSchema){let lr=J.scopeValue("validate$data",{ref:Ee.validateSchema});return(0,c._)`!${lr}(${oe})`}return c.nil}}subschema(J,oe){let le=(0,a.getSubschema)(this.it,J);(0,a.extendSubschemaData)(le,this.it,J),(0,a.extendSubschemaMode)(le,J);let Ee={...this.it,...le,items:void 0,props:void 0};return E(Ee,oe),Ee}mergeEvaluated(J,oe){let{it:le,gen:Ee}=this;le.opts.unevaluated&&(le.props!==!0&&J.props!==void 0&&(le.props=d.mergeEvaluated.props(Ee,J.props,le.props,oe)),le.items!==!0&&J.items!==void 0&&(le.items=d.mergeEvaluated.items(Ee,J.items,le.items,oe)))}mergeValidEvaluated(J,oe){let{it:le,gen:Ee}=this;if(le.opts.unevaluated&&(le.props!==!0||le.items!==!0))return Ee.if(oe,()=>this.mergeEvaluated(J,c.Name)),!0}}e.KeywordCxt=Y;function ee(z,J,oe,le){let Ee=new Y(z,oe,J);"code"in oe?oe.code(Ee,le):Ee.$data&&oe.validate?(0,o.funcKeywordCode)(Ee,oe):"macro"in oe?(0,o.macroKeywordCode)(Ee,oe):(oe.compile||oe.validate)&&(0,o.funcKeywordCode)(Ee,oe)}var se=/^\/(?:[^~]|~0|~1)*$/,Le=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ae(z,{dataLevel:J,dataNames:oe,dataPathArr:le}){let Ee,kt;if(z==="")return u.default.rootData;if(z[0]==="/"){if(!se.test(z))throw new Error(`Invalid JSON-pointer: ${z}`);Ee=z,kt=u.default.rootData}else{let sn=Le.exec(z);if(!sn)throw new Error(`Invalid JSON-pointer: ${z}`);let dr=+sn[1];if(Ee=sn[2],Ee==="#"){if(dr>=J)throw new Error(lr("property/index",dr));return le[J-dr]}if(dr>J)throw new Error(lr("data",dr));if(kt=oe[J-dr],!Ee)return kt}let Ue=kt,Ln=Ee.split("/");for(let sn of Ln)sn&&(kt=(0,c._)`${kt}${(0,c.getProperty)((0,d.unescapeJsonPointer)(sn))}`,Ue=(0,c._)`${Ue} && ${kt}`);return Ue;function lr(sn,dr){return`Cannot access ${sn} ${dr} levels up, current level is ${J}`}}e.getData=Ae}),OTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});class t extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}}e.default=t}),K5=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=V5();class n extends Error{constructor(i,s,o,a){super(a||`can't resolve reference ${o} from id ${s}`),this.missingRef=(0,t.resolveUrl)(i,s,o),this.missingSchema=(0,t.normalizeId)((0,t.getFullPath)(i,this.missingRef))}}e.default=n}),PTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;var t=_n(),n=OTe(),r=sE(),i=V5(),s=ur(),o=W5();class a{constructor(b){var S;this.refs={},this.dynamicAnchors={};let E;typeof b.schema=="object"&&(E=b.schema),this.schema=b.schema,this.schemaId=b.schemaId,this.root=b.root||this,this.baseId=(S=b.baseId)!==null&&S!==void 0?S:(0,i.normalizeId)(E?.[b.schemaId||"$id"]),this.schemaPath=b.schemaPath,this.localRefs=b.localRefs,this.meta=b.meta,this.$async=E?.$async,this.refs={}}}e.SchemaEnv=a;function c(y){let b=d.call(this,y);if(b)return b;let S=(0,i.getFullPath)(this.opts.uriResolver,y.root.baseId),{es5:E,lines:_}=this.opts.code,{ownProperties:T}=this.opts,R=new t.CodeGen(this.scope,{es5:E,lines:_,ownProperties:T}),A;y.$async&&(A=R.scopeValue("Error",{ref:n.default,code:(0,t._)`require("ajv/dist/runtime/validation_error").default`}));let x=R.scopeName("validate");y.validateName=x;let k={gen:R,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:R.scopeValue("schema",this.opts.code.source===!0?{ref:y.schema,code:(0,t.stringify)(y.schema)}:{ref:y.schema}),validateName:x,ValidationError:A,schema:y.schema,schemaEnv:y,rootId:S,baseId:y.baseId||S,schemaPath:t.nil,errSchemaPath:y.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,t._)`""`,opts:this.opts,self:this},P;try{this._compilations.add(y),(0,o.validateFunctionCode)(k),R.optimize(this.opts.code.optimize);let N=R.toString();P=`${R.scopeRefs(r.default.scope)}return ${N}`,this.opts.code.process&&(P=this.opts.code.process(P,y));let L=new Function(`${r.default.self}`,`${r.default.scope}`,P)(this,this.scope.get());if(this.scope.value(x,{ref:L}),L.errors=null,L.schema=y.schema,L.schemaEnv=y,y.$async&&(L.$async=!0),this.opts.code.source===!0&&(L.source={validateName:x,validateCode:N,scopeValues:R._values}),this.opts.unevaluated){let{props:G,items:W}=k;L.evaluated={props:G instanceof t.Name?void 0:G,items:W instanceof t.Name?void 0:W,dynamicProps:G instanceof t.Name,dynamicItems:W instanceof t.Name},L.source&&(L.source.evaluated=(0,t.stringify)(L.evaluated))}return y.validate=L,y}catch(N){throw delete y.validate,delete y.validateName,P&&this.logger.error("Error compiling schema, function code:",P),N}finally{this._compilations.delete(y)}}e.compileSchema=c;function u(y,b,S){var E;S=(0,i.resolveUrl)(this.opts.uriResolver,b,S);let _=y.refs[S];if(_)return _;let T=p.call(this,y,S);if(T===void 0){let R=(E=y.localRefs)===null||E===void 0?void 0:E[S],{schemaId:A}=this.opts;R&&(T=new a({schema:R,schemaId:A,root:y,baseId:b}))}if(T!==void 0)return y.refs[S]=l.call(this,T)}e.resolveRef=u;function l(y){return(0,i.inlineRef)(y.schema,this.opts.inlineRefs)?y.schema:y.validate?y:c.call(this,y)}function d(y){for(let b of this._compilations)if(f(b,y))return b}e.getCompilingSchema=d;function f(y,b){return y.schema===b.schema&&y.root===b.root&&y.baseId===b.baseId}function p(y,b){let S;for(;typeof(S=this.refs[b])=="string";)b=S;return S||this.schemas[b]||h.call(this,y,b)}function h(y,b){let S=this.opts.uriResolver.parse(b),E=(0,i._getFullPath)(this.opts.uriResolver,S),_=(0,i.getFullPath)(this.opts.uriResolver,y.baseId,void 0);if(Object.keys(y.schema).length>0&&E===_)return g.call(this,S,y);let T=(0,i.normalizeId)(E),R=this.refs[T]||this.schemas[T];if(typeof R=="string"){let A=h.call(this,y,R);return typeof A?.schema!="object"?void 0:g.call(this,S,A)}if(typeof R?.schema=="object"){if(R.validate||c.call(this,R),T===(0,i.normalizeId)(b)){let{schema:A}=R,{schemaId:x}=this.opts,k=A[x];return k&&(_=(0,i.resolveUrl)(this.opts.uriResolver,_,k)),new a({schema:A,schemaId:x,root:y,baseId:_})}return g.call(this,S,R)}}e.resolveSchema=h;var m=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function g(y,{baseId:b,schema:S,root:E}){var _;if(((_=y.fragment)===null||_===void 0?void 0:_[0])!=="/")return;for(let A of y.fragment.slice(1).split("/")){if(typeof S=="boolean")return;let x=S[(0,s.unescapeFragment)(A)];if(x===void 0)return;S=x;let k=typeof S=="object"&&S[this.opts.schemaId];!m.has(A)&&k&&(b=(0,i.resolveUrl)(this.opts.uriResolver,b,k))}let T;if(typeof S!="boolean"&&S.$ref&&!(0,s.schemaHasRulesButRef)(S,this.RULES)){let A=(0,i.resolveUrl)(this.opts.uriResolver,b,S.$ref);T=h.call(this,E,A)}let{schemaId:R}=this.opts;if(T=T||new a({schema:S,schemaId:R,root:E,baseId:b}),T.schema!==T.root.schema)return T}}),vnr=Xe((e,t)=>{t.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),Rnr=Xe((e,t)=>{var n={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};t.exports={HEX:n}}),Anr=Xe((e,t)=>{var{HEX:n}=Rnr(),r=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function i(y){if(u(y,".")<3)return{host:y,isIPV4:!1};let b=y.match(r)||[],[S]=b;return S?{host:c(S,"."),isIPV4:!0}:{host:y,isIPV4:!1}}function s(y,b=!1){let S="",E=!0;for(let _ of y){if(n[_]===void 0)return;_!=="0"&&E===!0&&(E=!1),E||(S+=_)}return b&&S.length===0&&(S="0"),S}function o(y){let b=0,S={error:!1,address:"",zone:""},E=[],_=[],T=!1,R=!1,A=!1;function x(){if(_.length){if(T===!1){let k=s(_);if(k!==void 0)E.push(k);else return S.error=!0,!1}_.length=0}return!0}for(let k=0;k7){S.error=!0;break}k-1>=0&&y[k-1]===":"&&(R=!0);continue}else if(P==="%"){if(!x())break;T=!0}else{_.push(P);continue}}return _.length&&(T?S.zone=_.join(""):A?E.push(_.join("")):E.push(s(_))),S.address=E.join(""),S}function a(y){if(u(y,":")<2)return{host:y,isIPV6:!1};let b=o(y);if(b.error)return{host:y,isIPV6:!1};{let S=b.address,E=b.address;return b.zone&&(S+="%"+b.zone,E+="%25"+b.zone),{host:S,escapedHost:E,isIPV6:!0}}}function c(y,b){let S="",E=!0,_=y.length;for(let T=0;T<_;T++){let R=y[T];R==="0"&&E?(T+1<=_&&y[T+1]===b||T+1===_)&&(S+=R,E=!1):(R===b?E=!0:E=!1,S+=R)}return S}function u(y,b){let S=0;for(let E=0;E{var n=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function i(E){return typeof E.secure=="boolean"?E.secure:String(E.scheme).toLowerCase()==="wss"}function s(E){return E.host||(E.error=E.error||"HTTP URIs must have a host."),E}function o(E){let _=String(E.scheme).toLowerCase()==="https";return(E.port===(_?443:80)||E.port==="")&&(E.port=void 0),E.path||(E.path="/"),E}function a(E){return E.secure=i(E),E.resourceName=(E.path||"/")+(E.query?"?"+E.query:""),E.path=void 0,E.query=void 0,E}function c(E){if((E.port===(i(E)?443:80)||E.port==="")&&(E.port=void 0),typeof E.secure=="boolean"&&(E.scheme=E.secure?"wss":"ws",E.secure=void 0),E.resourceName){let[_,T]=E.resourceName.split("?");E.path=_&&_!=="/"?_:void 0,E.query=T,E.resourceName=void 0}return E.fragment=void 0,E}function u(E,_){if(!E.path)return E.error="URN can not be parsed",E;let T=E.path.match(r);if(T){let R=_.scheme||E.scheme||"urn";E.nid=T[1].toLowerCase(),E.nss=T[2];let A=`${R}:${_.nid||E.nid}`,x=S[A];E.path=void 0,x&&(E=x.parse(E,_))}else E.error=E.error||"URN can not be parsed.";return E}function l(E,_){let T=_.scheme||E.scheme||"urn",R=E.nid.toLowerCase(),A=`${T}:${_.nid||R}`,x=S[A];x&&(E=x.serialize(E,_));let k=E,P=E.nss;return k.path=`${R||_.nid}:${P}`,_.skipEscape=!0,k}function d(E,_){let T=E;return T.uuid=T.nss,T.nss=void 0,!_.tolerant&&(!T.uuid||!n.test(T.uuid))&&(T.error=T.error||"UUID is not valid."),T}function f(E){let _=E;return _.nss=(E.uuid||"").toLowerCase(),_}var p={scheme:"http",domainHost:!0,parse:s,serialize:o},h={scheme:"https",domainHost:p.domainHost,parse:s,serialize:o},m={scheme:"ws",domainHost:!0,parse:a,serialize:c},g={scheme:"wss",domainHost:m.domainHost,parse:m.parse,serialize:m.serialize},y={scheme:"urn",parse:u,serialize:l,skipNormalize:!0},b={scheme:"urn:uuid",parse:d,serialize:f,skipNormalize:!0},S={http:p,https:h,ws:m,wss:g,urn:y,"urn:uuid":b};t.exports=S}),knr=Xe((e,t)=>{var{normalizeIPv6:n,normalizeIPv4:r,removeDotSegments:i,recomposeAuthority:s,normalizeComponentEncoding:o}=Anr(),a=wnr();function c(b,S){return typeof b=="string"?b=f(g(b,S),S):typeof b=="object"&&(b=g(f(b,S),S)),b}function u(b,S,E){let _=Object.assign({scheme:"null"},E),T=l(g(b,_),g(S,_),_,!0);return f(T,{..._,skipEscape:!0})}function l(b,S,E,_){let T={};return _||(b=g(f(b,E),E),S=g(f(S,E),E)),E=E||{},!E.tolerant&&S.scheme?(T.scheme=S.scheme,T.userinfo=S.userinfo,T.host=S.host,T.port=S.port,T.path=i(S.path||""),T.query=S.query):(S.userinfo!==void 0||S.host!==void 0||S.port!==void 0?(T.userinfo=S.userinfo,T.host=S.host,T.port=S.port,T.path=i(S.path||""),T.query=S.query):(S.path?(S.path.charAt(0)==="/"?T.path=i(S.path):((b.userinfo!==void 0||b.host!==void 0||b.port!==void 0)&&!b.path?T.path="/"+S.path:b.path?T.path=b.path.slice(0,b.path.lastIndexOf("/")+1)+S.path:T.path=S.path,T.path=i(T.path)),T.query=S.query):(T.path=b.path,S.query!==void 0?T.query=S.query:T.query=b.query),T.userinfo=b.userinfo,T.host=b.host,T.port=b.port),T.scheme=b.scheme),T.fragment=S.fragment,T}function d(b,S,E){return typeof b=="string"?(b=unescape(b),b=f(o(g(b,E),!0),{...E,skipEscape:!0})):typeof b=="object"&&(b=f(o(b,!0),{...E,skipEscape:!0})),typeof S=="string"?(S=unescape(S),S=f(o(g(S,E),!0),{...E,skipEscape:!0})):typeof S=="object"&&(S=f(o(S,!0),{...E,skipEscape:!0})),b.toLowerCase()===S.toLowerCase()}function f(b,S){let E={host:b.host,scheme:b.scheme,userinfo:b.userinfo,port:b.port,path:b.path,query:b.query,nid:b.nid,nss:b.nss,uuid:b.uuid,fragment:b.fragment,reference:b.reference,resourceName:b.resourceName,secure:b.secure,error:""},_=Object.assign({},S),T=[],R=a[(_.scheme||E.scheme||"").toLowerCase()];R&&R.serialize&&R.serialize(E,_),E.path!==void 0&&(_.skipEscape?E.path=unescape(E.path):(E.path=escape(E.path),E.scheme!==void 0&&(E.path=E.path.split("%3A").join(":")))),_.reference!=="suffix"&&E.scheme&&T.push(E.scheme,":");let A=s(E);if(A!==void 0&&(_.reference!=="suffix"&&T.push("//"),T.push(A),E.path&&E.path.charAt(0)!=="/"&&T.push("/")),E.path!==void 0){let x=E.path;!_.absolutePath&&(!R||!R.absolutePath)&&(x=i(x)),A===void 0&&(x=x.replace(/^\/\//u,"/%2F")),T.push(x)}return E.query!==void 0&&T.push("?",E.query),E.fragment!==void 0&&T.push("#",E.fragment),T.join("")}var p=Array.from({length:127},(b,S)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(S)));function h(b){let S=0;for(let E=0,_=b.length;E<_;++E)if(S=b.charCodeAt(E),S>126||p[S])return!0;return!1}var m=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(b,S){let E=Object.assign({},S),_={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},T=b.indexOf("%")!==-1,R=!1;E.reference==="suffix"&&(b=(E.scheme?E.scheme+":":"")+"//"+b);let A=b.match(m);if(A){if(_.scheme=A[1],_.userinfo=A[3],_.host=A[4],_.port=parseInt(A[5],10),_.path=A[6]||"",_.query=A[7],_.fragment=A[8],isNaN(_.port)&&(_.port=A[5]),_.host){let k=r(_.host);if(k.isIPV4===!1){let P=n(k.host);_.host=P.host.toLowerCase(),R=P.isIPV6}else _.host=k.host,R=!0}_.scheme===void 0&&_.userinfo===void 0&&_.host===void 0&&_.port===void 0&&_.query===void 0&&!_.path?_.reference="same-document":_.scheme===void 0?_.reference="relative":_.fragment===void 0?_.reference="absolute":_.reference="uri",E.reference&&E.reference!=="suffix"&&E.reference!==_.reference&&(_.error=_.error||"URI is not a "+E.reference+" reference.");let x=a[(E.scheme||_.scheme||"").toLowerCase()];if(!E.unicodeSupport&&(!x||!x.unicodeSupport)&&_.host&&(E.domainHost||x&&x.domainHost)&&R===!1&&h(_.host))try{_.host=URL.domainToASCII(_.host.toLowerCase())}catch(k){_.error=_.error||"Host's domain name can not be converted to ASCII: "+k}(!x||x&&!x.skipNormalize)&&(T&&_.scheme!==void 0&&(_.scheme=unescape(_.scheme)),T&&_.host!==void 0&&(_.host=unescape(_.host)),_.path&&(_.path=escape(unescape(_.path))),_.fragment&&(_.fragment=encodeURI(decodeURIComponent(_.fragment)))),x&&x.parse&&x.parse(_,E)}else _.error=_.error||"URI can not be parsed.";return _}var y={SCHEMES:a,normalize:c,resolve:u,resolveComponents:l,equal:d,serialize:f,parse:g};t.exports=y,t.exports.default=y,t.exports.fastUri=y}),Inr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=knr();t.code='require("ajv/dist/runtime/uri").default',e.default=t}),xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=W5();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=_n();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});var r=OTe(),i=K5(),s=dOt(),o=PTe(),a=_n(),c=V5(),u=k5(),l=ur(),d=vnr(),f=Inr(),p=(B,F)=>new RegExp(B,F);p.code="new RegExp";var h=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},b=200;function S(B){var F,V,U,M,H,j,Y,ee,se,Le,Ae,z,J,oe,le,Ee,kt,Ue,Ln,lr,sn,dr,nl,As,uE;let cy=B.strict,Ii=(F=B.code)===null||F===void 0?void 0:F.optimize,_p=Ii===!0||Ii===void 0?1:Ii||0,uy=(U=(V=B.code)===null||V===void 0?void 0:V.regExp)!==null&&U!==void 0?U:p,Rr=(M=B.uriResolver)!==null&&M!==void 0?M:f.default;return{strictSchema:(j=(H=B.strictSchema)!==null&&H!==void 0?H:cy)!==null&&j!==void 0?j:!0,strictNumbers:(ee=(Y=B.strictNumbers)!==null&&Y!==void 0?Y:cy)!==null&&ee!==void 0?ee:!0,strictTypes:(Le=(se=B.strictTypes)!==null&&se!==void 0?se:cy)!==null&&Le!==void 0?Le:"log",strictTuples:(z=(Ae=B.strictTuples)!==null&&Ae!==void 0?Ae:cy)!==null&&z!==void 0?z:"log",strictRequired:(oe=(J=B.strictRequired)!==null&&J!==void 0?J:cy)!==null&&oe!==void 0?oe:!1,code:B.code?{...B.code,optimize:_p,regExp:uy}:{optimize:_p,regExp:uy},loopRequired:(le=B.loopRequired)!==null&&le!==void 0?le:b,loopEnum:(Ee=B.loopEnum)!==null&&Ee!==void 0?Ee:b,meta:(kt=B.meta)!==null&&kt!==void 0?kt:!0,messages:(Ue=B.messages)!==null&&Ue!==void 0?Ue:!0,inlineRefs:(Ln=B.inlineRefs)!==null&&Ln!==void 0?Ln:!0,schemaId:(lr=B.schemaId)!==null&&lr!==void 0?lr:"$id",addUsedSchema:(sn=B.addUsedSchema)!==null&&sn!==void 0?sn:!0,validateSchema:(dr=B.validateSchema)!==null&&dr!==void 0?dr:!0,validateFormats:(nl=B.validateFormats)!==null&&nl!==void 0?nl:!0,unicodeRegExp:(As=B.unicodeRegExp)!==null&&As!==void 0?As:!0,int32range:(uE=B.int32range)!==null&&uE!==void 0?uE:!0,uriResolver:Rr}}class E{constructor(F={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,F=this.opts={...F,...S(F)};let{es5:V,lines:U}=this.opts.code;this.scope=new a.ValueScope({scope:{},prefixes:m,es5:V,lines:U}),this.logger=N(F.logger);let M=F.validateFormats;F.validateFormats=!1,this.RULES=(0,s.getRules)(),_.call(this,g,F,"NOT SUPPORTED"),_.call(this,y,F,"DEPRECATED","warn"),this._metaOpts=k.call(this),F.formats&&A.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),F.keywords&&x.call(this,F.keywords),typeof F.meta=="object"&&this.addMetaSchema(F.meta),R.call(this),F.validateFormats=M}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:F,meta:V,schemaId:U}=this.opts,M=d;U==="id"&&(M={...d},M.id=M.$id,delete M.$id),V&&F&&this.addMetaSchema(M,M[U],!1)}defaultMeta(){let{meta:F,schemaId:V}=this.opts;return this.opts.defaultMeta=typeof F=="object"?F[V]||F:void 0}validate(F,V){let U;if(typeof F=="string"){if(U=this.getSchema(F),!U)throw new Error(`no schema with key or ref "${F}"`)}else U=this.compile(F);let M=U(V);return"$async"in U||(this.errors=U.errors),M}compile(F,V){let U=this._addSchema(F,V);return U.validate||this._compileSchemaEnv(U)}compileAsync(F,V){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:U}=this.opts;return M.call(this,F,V);async function M(Le,Ae){await H.call(this,Le.$schema);let z=this._addSchema(Le,Ae);return z.validate||j.call(this,z)}async function H(Le){Le&&!this.getSchema(Le)&&await M.call(this,{$ref:Le},!0)}async function j(Le){try{return this._compileSchemaEnv(Le)}catch(Ae){if(!(Ae instanceof i.default))throw Ae;return Y.call(this,Ae),await ee.call(this,Ae.missingSchema),j.call(this,Le)}}function Y({missingSchema:Le,missingRef:Ae}){if(this.refs[Le])throw new Error(`AnySchema ${Le} is loaded but ${Ae} cannot be resolved`)}async function ee(Le){let Ae=await se.call(this,Le);this.refs[Le]||await H.call(this,Ae.$schema),this.refs[Le]||this.addSchema(Ae,Le,V)}async function se(Le){let Ae=this._loading[Le];if(Ae)return Ae;try{return await(this._loading[Le]=U(Le))}finally{delete this._loading[Le]}}}addSchema(F,V,U,M=this.opts.validateSchema){if(Array.isArray(F)){for(let j of F)this.addSchema(j,void 0,U,M);return this}let H;if(typeof F=="object"){let{schemaId:j}=this.opts;if(H=F[j],H!==void 0&&typeof H!="string")throw new Error(`schema ${j} must be string`)}return V=(0,c.normalizeId)(V||H),this._checkUnique(V),this.schemas[V]=this._addSchema(F,U,V,M,!0),this}addMetaSchema(F,V,U=this.opts.validateSchema){return this.addSchema(F,V,!0,U),this}validateSchema(F,V){if(typeof F=="boolean")return!0;let U;if(U=F.$schema,U!==void 0&&typeof U!="string")throw new Error("$schema must be a string");if(U=U||this.opts.defaultMeta||this.defaultMeta(),!U)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let M=this.validate(U,F);if(!M&&V){let H="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(H);else throw new Error(H)}return M}getSchema(F){let V;for(;typeof(V=T.call(this,F))=="string";)F=V;if(V===void 0){let{schemaId:U}=this.opts,M=new o.SchemaEnv({schema:{},schemaId:U});if(V=o.resolveSchema.call(this,M,F),!V)return;this.refs[F]=V}return V.validate||this._compileSchemaEnv(V)}removeSchema(F){if(F instanceof RegExp)return this._removeAllSchemas(this.schemas,F),this._removeAllSchemas(this.refs,F),this;switch(typeof F){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let V=T.call(this,F);return typeof V=="object"&&this._cache.delete(V.schema),delete this.schemas[F],delete this.refs[F],this}case"object":{let V=F;this._cache.delete(V);let U=F[this.opts.schemaId];return U&&(U=(0,c.normalizeId)(U),delete this.schemas[U],delete this.refs[U]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(F){for(let V of F)this.addKeyword(V);return this}addKeyword(F,V){let U;if(typeof F=="string")U=F,typeof V=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),V.keyword=U);else if(typeof F=="object"&&V===void 0){if(V=F,U=V.keyword,Array.isArray(U)&&!U.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(L.call(this,U,V),!V)return(0,l.eachItem)(U,H=>G.call(this,H)),this;$.call(this,V);let M={...V,type:(0,u.getJSONTypes)(V.type),schemaType:(0,u.getJSONTypes)(V.schemaType)};return(0,l.eachItem)(U,M.type.length===0?H=>G.call(this,H,M):H=>M.type.forEach(j=>G.call(this,H,M,j))),this}getKeyword(F){let V=this.RULES.all[F];return typeof V=="object"?V.definition:!!V}removeKeyword(F){let{RULES:V}=this;delete V.keywords[F],delete V.all[F];for(let U of V.rules){let M=U.rules.findIndex(H=>H.keyword===F);M>=0&&U.rules.splice(M,1)}return this}addFormat(F,V){return typeof V=="string"&&(V=new RegExp(V)),this.formats[F]=V,this}errorsText(F=this.errors,{separator:V=", ",dataVar:U="data"}={}){return!F||F.length===0?"No errors":F.map(M=>`${U}${M.instancePath} ${M.message}`).reduce((M,H)=>M+V+H)}$dataMetaSchema(F,V){let U=this.RULES.all;F=JSON.parse(JSON.stringify(F));for(let M of V){let H=M.split("/").slice(1),j=F;for(let Y of H)j=j[Y];for(let Y in U){let ee=U[Y];if(typeof ee!="object")continue;let{$data:se}=ee.definition,Le=j[Y];se&&Le&&(j[Y]=Q(Le))}}return F}_removeAllSchemas(F,V){for(let U in F){let M=F[U];(!V||V.test(U))&&(typeof M=="string"?delete F[U]:M&&!M.meta&&(this._cache.delete(M.schema),delete F[U]))}}_addSchema(F,V,U,M=this.opts.validateSchema,H=this.opts.addUsedSchema){let j,{schemaId:Y}=this.opts;if(typeof F=="object")j=F[Y];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof F!="boolean")throw new Error("schema must be object or boolean")}let ee=this._cache.get(F);if(ee!==void 0)return ee;U=(0,c.normalizeId)(j||U);let se=c.getSchemaRefs.call(this,F,U);return ee=new o.SchemaEnv({schema:F,schemaId:Y,meta:V,baseId:U,localRefs:se}),this._cache.set(ee.schema,ee),H&&!U.startsWith("#")&&(U&&this._checkUnique(U),this.refs[U]=ee),M&&this.validateSchema(F,!0),ee}_checkUnique(F){if(this.schemas[F]||this.refs[F])throw new Error(`schema with key or id "${F}" already exists`)}_compileSchemaEnv(F){if(F.meta?this._compileMetaSchema(F):o.compileSchema.call(this,F),!F.validate)throw new Error("ajv implementation error");return F.validate}_compileMetaSchema(F){let V=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,F)}finally{this.opts=V}}}E.ValidationError=r.default,E.MissingRefError=i.default,e.default=E;function _(B,F,V,U="error"){for(let M in B){let H=M;H in F&&this.logger[U](`${V}: option ${M}. ${B[H]}`)}}function T(B){return B=(0,c.normalizeId)(B),this.schemas[B]||this.refs[B]}function R(){let B=this.opts.schemas;if(B)if(Array.isArray(B))this.addSchema(B);else for(let F in B)this.addSchema(B[F],F)}function A(){for(let B in this.opts.formats){let F=this.opts.formats[B];F&&this.addFormat(B,F)}}function x(B){if(Array.isArray(B)){this.addVocabulary(B);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let F in B){let V=B[F];V.keyword||(V.keyword=F),this.addKeyword(V)}}function k(){let B={...this.opts};for(let F of h)delete B[F];return B}var P={log(){},warn(){},error(){}};function N(B){if(B===!1)return P;if(B===void 0)return console;if(B.log&&B.warn&&B.error)return B;throw new Error("logger must implement log, warn and error methods")}var C=/^[a-z_$][a-z0-9_$:-]*$/i;function L(B,F){let{RULES:V}=this;if((0,l.eachItem)(B,U=>{if(V.keywords[U])throw new Error(`Keyword ${U} is already defined`);if(!C.test(U))throw new Error(`Keyword ${U} has invalid name`)}),!!F&&F.$data&&!("code"in F||"validate"in F))throw new Error('$data keyword must have "code" or "validate" function')}function G(B,F,V){var U;let M=F?.post;if(V&&M)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:H}=this,j=M?H.post:H.rules.find(({type:ee})=>ee===V);if(j||(j={type:V,rules:[]},H.rules.push(j)),H.keywords[B]=!0,!F)return;let Y={keyword:B,definition:{...F,type:(0,u.getJSONTypes)(F.type),schemaType:(0,u.getJSONTypes)(F.schemaType)}};F.before?W.call(this,j,Y,F.before):j.rules.push(Y),H.all[B]=Y,(U=F.implements)===null||U===void 0||U.forEach(ee=>this.addKeyword(ee))}function W(B,F,V){let U=B.rules.findIndex(M=>M.keyword===V);U>=0?B.rules.splice(U,0,F):(B.rules.push(F),this.logger.warn(`rule ${V} is not defined`))}function $(B){let{metaSchema:F}=B;F!==void 0&&(B.$data&&this.opts.$data&&(F=Q(F)),B.validateSchema=this.compile(F,!0))}var q={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Q(B){return{anyOf:[B,q]}}}),Onr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};e.default=t}),Pnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;var t=K5(),n=bp(),r=_n(),i=sE(),s=PTe(),o=ur(),a={keyword:"$ref",schemaType:"string",code(l){let{gen:d,schema:f,it:p}=l,{baseId:h,schemaEnv:m,validateName:g,opts:y,self:b}=p,{root:S}=m;if((f==="#"||f==="#/")&&h===S.baseId)return _();let E=s.resolveRef.call(b,S,h,f);if(E===void 0)throw new t.default(p.opts.uriResolver,h,f);if(E instanceof s.SchemaEnv)return T(E);return R(E);function _(){if(m===S)return u(l,g,m,m.$async);let A=d.scopeValue("root",{ref:S});return u(l,(0,r._)`${A}.validate`,S,S.$async)}function T(A){let x=c(l,A);u(l,x,A,A.$async)}function R(A){let x=d.scopeValue("schema",y.code.source===!0?{ref:A,code:(0,r.stringify)(A)}:{ref:A}),k=d.name("valid"),P=l.subschema({schema:A,dataTypes:[],schemaPath:r.nil,topSchemaRef:x,errSchemaPath:f},k);l.mergeEvaluated(P),l.ok(k)}}};function c(l,d){let{gen:f}=l;return d.validate?f.scopeValue("validate",{ref:d.validate}):(0,r._)`${f.scopeValue("wrapper",{ref:d})}.validate`}e.getValidate=c;function u(l,d,f,p){let{gen:h,it:m}=l,{allErrors:g,schemaEnv:y,opts:b}=m,S=b.passContext?i.default.this:r.nil;p?E():_();function E(){if(!y.$async)throw new Error("async schema referenced by sync schema");let A=h.let("valid");h.try(()=>{h.code((0,r._)`await ${(0,n.callValidateCode)(l,d,S)}`),R(d),g||h.assign(A,!0)},x=>{h.if((0,r._)`!(${x} instanceof ${m.ValidationError})`,()=>h.throw(x)),T(x),g||h.assign(A,!1)}),l.ok(A)}function _(){l.result((0,n.callValidateCode)(l,d,S),()=>R(d),()=>T(d))}function T(A){let x=(0,r._)`${A}.errors`;h.assign(i.default.vErrors,(0,r._)`${i.default.vErrors} === null ? ${x} : ${i.default.vErrors}.concat(${x})`),h.assign(i.default.errors,(0,r._)`${i.default.vErrors}.length`)}function R(A){var x;if(!m.opts.unevaluated)return;let k=(x=f?.validate)===null||x===void 0?void 0:x.evaluated;if(m.props!==!0)if(k&&!k.dynamicProps)k.props!==void 0&&(m.props=o.mergeEvaluated.props(h,k.props,m.props));else{let P=h.var("props",(0,r._)`${A}.evaluated.props`);m.props=o.mergeEvaluated.props(h,P,m.props,r.Name)}if(m.items!==!0)if(k&&!k.dynamicItems)k.items!==void 0&&(m.items=o.mergeEvaluated.items(h,k.items,m.items));else{let P=h.var("items",(0,r._)`${A}.evaluated.items`);m.items=o.mergeEvaluated.items(h,P,m.items,r.Name)}}}e.callRef=u,e.default=a}),Nnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Onr(),n=Pnr(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",t.default,n.default];e.default=r}),Cnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=t.operators,r={maximum:{okStr:"<=",ok:n.LTE,fail:n.GT},minimum:{okStr:">=",ok:n.GTE,fail:n.LT},exclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},exclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:a})=>(0,t.str)`must be ${r[o].okStr} ${a}`,params:({keyword:o,schemaCode:a})=>(0,t._)`{comparison: ${r[o].okStr}, limit: ${a}}`},s={keyword:Object.keys(r),type:"number",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u}=o;o.fail$data((0,t._)`${c} ${r[a].fail} ${u} || isNaN(${c})`)}};e.default=s}),Mnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={message:({schemaCode:i})=>(0,t.str)`must be multiple of ${i}`,params:({schemaCode:i})=>(0,t._)`{multipleOf: ${i}}`},r={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:n,code(i){let{gen:s,data:o,schemaCode:a,it:c}=i,u=c.opts.multipleOfPrecision,l=s.let("res"),d=u?(0,t._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${u}`:(0,t._)`${l} !== parseInt(${l})`;i.fail$data((0,t._)`(${a} === 0 || (${l} = ${o}/${a}, ${d}))`)}};e.default=r}),Dnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(n){let r=n.length,i=0,s=0,o;for(;s=55296&&o<=56319&&s{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=Dnr(),i={message({keyword:o,schemaCode:a}){let c=o==="maxLength"?"more":"fewer";return(0,t.str)`must NOT have ${c} than ${a} characters`},params:({schemaCode:o})=>(0,t._)`{limit: ${o}}`},s={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:i,code(o){let{keyword:a,data:c,schemaCode:u,it:l}=o,d=a==="maxLength"?t.operators.GT:t.operators.LT,f=l.opts.unicode===!1?(0,t._)`${c}.length`:(0,t._)`${(0,n.useFunc)(o.gen,r.default)}(${c})`;o.fail$data((0,t._)`${f} ${d} ${u}`)}};e.default=s}),Unr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r={message:({schemaCode:s})=>(0,n.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,n._)`{pattern: ${s}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:r,code(s){let{data:o,$data:a,schema:c,schemaCode:u,it:l}=s,d=l.opts.unicodeRegExp?"u":"",f=a?(0,n._)`(new RegExp(${u}, ${d}))`:(0,t.usePattern)(s,c);s.fail$data((0,n._)`!${f}.test(${o})`)}};e.default=i}),Fnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={message({keyword:i,schemaCode:s}){let o=i==="maxProperties"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} properties`},params:({schemaCode:i})=>(0,t._)`{limit: ${i}}`},r={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:n,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxProperties"?t.operators.GT:t.operators.LT;i.fail$data((0,t._)`Object.keys(${o}).length ${c} ${a}`)}};e.default=r}),jnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=ur(),i={message:({params:{missingProperty:o}})=>(0,n.str)`must have required property '${o}'`,params:({params:{missingProperty:o}})=>(0,n._)`{missingProperty: ${o}}`},s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,schema:c,schemaCode:u,data:l,$data:d,it:f}=o,{opts:p}=f;if(!d&&c.length===0)return;let h=c.length>=p.loopRequired;if(f.allErrors?m():g(),p.strictRequired){let S=o.parentSchema.properties,{definedProperties:E}=o.it;for(let _ of c)if(S?.[_]===void 0&&!E.has(_)){let T=f.schemaEnv.baseId+f.errSchemaPath,R=`required property "${_}" is not defined at "${T}" (strictRequired)`;(0,r.checkStrictMode)(f,R,f.opts.strictRequired)}}function m(){if(h||d)o.block$data(n.nil,y);else for(let S of c)(0,t.checkReportMissingProp)(o,S)}function g(){let S=a.let("missing");if(h||d){let E=a.let("valid",!0);o.block$data(E,()=>b(S,E)),o.ok(E)}else a.if((0,t.checkMissingProp)(o,c,S)),(0,t.reportMissingProp)(o,S),a.else()}function y(){a.forOf("prop",u,S=>{o.setParams({missingProperty:S}),a.if((0,t.noPropertyInData)(a,l,S,p.ownProperties),()=>o.error())})}function b(S,E){o.setParams({missingProperty:S}),a.forOf(S,u,()=>{a.assign(E,(0,t.propertyInData)(a,l,S,p.ownProperties)),a.if((0,n.not)(E),()=>{o.error(),a.break()})},n.nil)}}};e.default=s}),Hnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={message({keyword:i,schemaCode:s}){let o=i==="maxItems"?"more":"fewer";return(0,t.str)`must NOT have ${o} than ${s} items`},params:({schemaCode:i})=>(0,t._)`{limit: ${i}}`},r={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:n,code(i){let{keyword:s,data:o,schemaCode:a}=i,c=s==="maxItems"?t.operators.GT:t.operators.LT;i.fail$data((0,t._)`${o}.length ${c} ${a}`)}};e.default=r}),NTe=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=pOt();t.code='require("ajv/dist/runtime/equal").default',e.default=t}),qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=k5(),n=_n(),r=ur(),i=NTe(),s={message:({params:{i:a,j:c}})=>(0,n.str)`must NOT have duplicate items (items ## ${c} and ${a} are identical)`,params:({params:{i:a,j:c}})=>(0,n._)`{i: ${a}, j: ${c}}`},o={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:s,code(a){let{gen:c,data:u,$data:l,schema:d,parentSchema:f,schemaCode:p,it:h}=a;if(!l&&!d)return;let m=c.let("valid"),g=f.items?(0,t.getSchemaTypes)(f.items):[];a.block$data(m,y,(0,n._)`${p} === false`),a.ok(m);function y(){let _=c.let("i",(0,n._)`${u}.length`),T=c.let("j");a.setParams({i:_,j:T}),c.assign(m,!0),c.if((0,n._)`${_} > 1`,()=>(b()?S:E)(_,T))}function b(){return g.length>0&&!g.some(_=>_==="object"||_==="array")}function S(_,T){let R=c.name("item"),A=(0,t.checkDataTypes)(g,R,h.opts.strictNumbers,t.DataType.Wrong),x=c.const("indices",(0,n._)`{}`);c.for((0,n._)`;${_}--;`,()=>{c.let(R,(0,n._)`${u}[${_}]`),c.if(A,(0,n._)`continue`),g.length>1&&c.if((0,n._)`typeof ${R} == "string"`,(0,n._)`${R} += "_"`),c.if((0,n._)`typeof ${x}[${R}] == "number"`,()=>{c.assign(T,(0,n._)`${x}[${R}]`),a.error(),c.assign(m,!1).break()}).code((0,n._)`${x}[${R}] = ${_}`)})}function E(_,T){let R=(0,r.useFunc)(c,i.default),A=c.name("outer");c.label(A).for((0,n._)`;${_}--;`,()=>c.for((0,n._)`${T} = ${_}; ${T}--;`,()=>c.if((0,n._)`${R}(${u}[${_}], ${u}[${T}])`,()=>{a.error(),c.assign(m,!1).break(A)})))}}};e.default=o}),Bnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=NTe(),i={message:"must be equal to constant",params:({schemaCode:o})=>(0,t._)`{allowedValue: ${o}}`},s={keyword:"const",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schemaCode:l,schema:d}=o;u||d&&typeof d=="object"?o.fail$data((0,t._)`!${(0,n.useFunc)(a,r.default)}(${c}, ${l})`):o.fail((0,t._)`${d} !== ${c}`)}};e.default=s}),znr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=NTe(),i={message:"must be equal to one of the allowed values",params:({schemaCode:o})=>(0,t._)`{allowedValues: ${o}}`},s={keyword:"enum",schemaType:"array",$data:!0,error:i,code(o){let{gen:a,data:c,$data:u,schema:l,schemaCode:d,it:f}=o;if(!u&&l.length===0)throw new Error("enum must have non-empty array");let p=l.length>=f.opts.loopEnum,h,m=()=>h??(h=(0,n.useFunc)(a,r.default)),g;if(p||u)g=a.let("valid"),o.block$data(g,y);else{if(!Array.isArray(l))throw new Error("ajv implementation error");let S=a.const("vSchema",d);g=(0,t.or)(...l.map((E,_)=>b(S,_)))}o.pass(g);function y(){a.assign(g,!1),a.forOf("v",d,S=>a.if((0,t._)`${m()}(${c}, ${S})`,()=>a.assign(g,!0).break()))}function b(S,E){let _=l[E];return typeof _=="object"&&_!==null?(0,t._)`${m()}(${c}, ${S}[${E}])`:(0,t._)`${c} === ${_}`}}};e.default=s}),Gnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Cnr(),n=Mnr(),r=Lnr(),i=Unr(),s=Fnr(),o=jnr(),a=Hnr(),c=qnr(),u=Bnr(),l=znr(),d=[t.default,n.default,r.default,i.default,s.default,o.default,a.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},u.default,l.default];e.default=d}),hOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;var t=_n(),n=ur(),r={message:({params:{len:o}})=>(0,t.str)`must NOT have more than ${o} items`,params:({params:{len:o}})=>(0,t._)`{limit: ${o}}`},i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:r,code(o){let{parentSchema:a,it:c}=o,{items:u}=a;if(!Array.isArray(u)){(0,n.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(o,u)}};function s(o,a){let{gen:c,schema:u,data:l,keyword:d,it:f}=o;f.items=!0;let p=c.const("len",(0,t._)`${l}.length`);if(u===!1)o.setParams({len:a.length}),o.pass((0,t._)`${p} <= ${a.length}`);else if(typeof u=="object"&&!(0,n.alwaysValidSchema)(f,u)){let m=c.var("valid",(0,t._)`${p} <= ${a.length}`);c.if((0,t.not)(m),()=>h(m)),o.ok(m)}function h(m){c.forRange("i",a.length,p,g=>{o.subschema({keyword:d,dataProp:g,dataPropType:n.Type.Num},m),f.allErrors||c.if((0,t.not)(m),()=>c.break())})}}e.validateAdditionalItems=s,e.default=i}),mOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;var t=_n(),n=ur(),r=bp(),i={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(o){let{schema:a,it:c}=o;if(Array.isArray(a))return s(o,"additionalItems",a);c.items=!0,!(0,n.alwaysValidSchema)(c,a)&&o.ok((0,r.validateArray)(o))}};function s(o,a,c=o.schema){let{gen:u,parentSchema:l,data:d,keyword:f,it:p}=o;g(l),p.opts.unevaluated&&c.length&&p.items!==!0&&(p.items=n.mergeEvaluated.items(u,c.length,p.items));let h=u.name("valid"),m=u.const("len",(0,t._)`${d}.length`);c.forEach((y,b)=>{(0,n.alwaysValidSchema)(p,y)||(u.if((0,t._)`${m} > ${b}`,()=>o.subschema({keyword:f,schemaProp:b,dataProp:b},h)),o.ok(h))});function g(y){let{opts:b,errSchemaPath:S}=p,E=c.length,_=E===y.minItems&&(E===y.maxItems||y[a]===!1);if(b.strictTuples&&!_){let T=`"${f}" is ${E}-tuple, but minItems or maxItems/${a} are not specified or different at path "${S}"`;(0,n.checkStrictMode)(p,T,b.strictTuples)}}}e.validateTuple=s,e.default=i}),Vnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=mOt(),n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,t.validateTuple)(r,"items")};e.default=n}),Wnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r=bp(),i=hOt(),s={message:({params:{len:a}})=>(0,t.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,t._)`{limit: ${a}}`},o={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:s,code(a){let{schema:c,parentSchema:u,it:l}=a,{prefixItems:d}=u;l.items=!0,!(0,n.alwaysValidSchema)(l,c)&&(d?(0,i.validateAdditionalItems)(a,d):a.ok((0,r.validateArray)(a)))}};e.default=o}),Knr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r={message:({params:{min:s,max:o}})=>o===void 0?(0,t.str)`must contain at least ${s} valid item(s)`:(0,t.str)`must contain at least ${s} and no more than ${o} valid item(s)`,params:({params:{min:s,max:o}})=>o===void 0?(0,t._)`{minContains: ${s}}`:(0,t._)`{minContains: ${s}, maxContains: ${o}}`},i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:r,code(s){let{gen:o,schema:a,parentSchema:c,data:u,it:l}=s,d,f,{minContains:p,maxContains:h}=c;l.opts.next?(d=p===void 0?1:p,f=h):d=1;let m=o.const("len",(0,t._)`${u}.length`);if(s.setParams({min:d,max:f}),f===void 0&&d===0){(0,n.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(f!==void 0&&d>f){(0,n.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,n.alwaysValidSchema)(l,a)){let E=(0,t._)`${m} >= ${d}`;f!==void 0&&(E=(0,t._)`${E} && ${m} <= ${f}`),s.pass(E);return}l.items=!0;let g=o.name("valid");f===void 0&&d===1?b(g,()=>o.if(g,()=>o.break())):d===0?(o.let(g,!0),f!==void 0&&o.if((0,t._)`${u}.length > 0`,y)):(o.let(g,!1),y()),s.result(g,()=>s.reset());function y(){let E=o.name("_valid"),_=o.let("count",0);b(E,()=>o.if(E,()=>S(_)))}function b(E,_){o.forRange("i",0,m,T=>{s.subschema({keyword:"contains",dataProp:T,dataPropType:n.Type.Num,compositeRule:!0},E),_()})}function S(E){o.code((0,t._)`${E}++`),f===void 0?o.if((0,t._)`${E} >= ${d}`,()=>o.assign(g,!0).break()):(o.if((0,t._)`${E} > ${f}`,()=>o.assign(g,!1).break()),d===1?o.assign(g,!0):o.if((0,t._)`${E} >= ${d}`,()=>o.assign(g,!0)))}}};e.default=i}),Ynr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;var t=_n(),n=ur(),r=bp();e.error={message:({params:{property:c,depsCount:u,deps:l}})=>{let d=u===1?"property":"properties";return(0,t.str)`must have ${d} ${l} when property ${c} is present`},params:({params:{property:c,depsCount:u,deps:l,missingProperty:d}})=>(0,t._)`{property: ${c}, missingProperty: ${d}, depsCount: ${u}, - deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let f=Array.isArray(c[d])?u:l;f[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:f}=c;if(Object.keys(u).length===0)return;let p=l.let("missing");for(let h in u){let m=u[h];if(m.length===0)continue;let g=(0,r.propertyInData)(l,d,h,f.opts.ownProperties);c.setParams({property:h,depsCount:m.length,deps:m.join(", ")}),f.allErrors?l.if(g,()=>{for(let y of m)(0,r.checkReportMissingProp)(c,y)}):(l.if((0,t._)`${g} && (${(0,r.checkMissingProp)(c,m,p)})`),(0,r.reportMissingProp)(c,p),l.else())}}e.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:f,it:p}=c,h=l.name("valid");for(let m in u)(0,n.alwaysValidSchema)(p,u[m])||(l.if((0,r.propertyInData)(l,d,m,p.opts.ownProperties),()=>{let g=c.subschema({keyword:f,schemaProp:m},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}e.validateSchemaDeps=a,e.default=i}),Znr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r={message:"property name must be valid",params:({params:s})=>(0,t._)`{propertyName: ${s.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:r,code(s){let{gen:o,schema:a,data:c,it:u}=s;if((0,n.alwaysValidSchema)(u,a))return;let l=o.name("valid");o.forIn("key",c,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,t.not)(l),()=>{s.error(!0),u.allErrors||o.break()})}),s.ok(l)}};e.default=i}),gOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=sE(),i=ur(),s={message:"must NOT have additional properties",params:({params:a})=>(0,n._)`{additionalProperty: ${a.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(a){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:f,it:p}=a;if(!f)throw new Error("ajv implementation error");let{allErrors:h,opts:m}=p;if(p.props=!0,m.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(p,u))return;let g=(0,t.allSchemaProperties)(l.properties),y=(0,t.allSchemaProperties)(l.patternProperties);b(),a.ok((0,n._)`${f} === ${r.default.errors}`);function b(){c.forIn("key",d,R=>{!g.length&&!y.length?_(R):c.if(S(R),()=>_(R))})}function S(R){let A;if(g.length>8){let x=(0,i.schemaRefOrVal)(p,l.properties,"properties");A=(0,t.isOwnProperty)(c,x,R)}else g.length?A=(0,n.or)(...g.map(x=>(0,n._)`${R} === ${x}`)):A=n.nil;return y.length&&(A=(0,n.or)(A,...y.map(x=>(0,n._)`${(0,t.usePattern)(a,x)}.test(${R})`))),(0,n.not)(A)}function E(R){c.code((0,n._)`delete ${d}[${R}]`)}function _(R){if(m.removeAdditional==="all"||m.removeAdditional&&u===!1){E(R);return}if(u===!1){a.setParams({additionalProperty:R}),a.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(p,u)){let A=c.name("valid");m.removeAdditional==="failing"?(T(R,A,!1),c.if((0,n.not)(A),()=>{a.reset(),E(R)})):(T(R,A),h||c.if((0,n.not)(A),()=>c.break()))}}function T(R,A,x){let k={keyword:"additionalProperties",dataProp:R,dataPropType:i.Type.Str};x===!1&&Object.assign(k,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema(k,A)}}};e.default=o}),Jnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=V5(),n=bp(),r=ur(),i=gOt(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(d,i.default,"additionalProperties"));let f=(0,n.allSchemaProperties)(c);for(let y of f)d.definedProperties.add(y);d.opts.unevaluated&&f.length&&d.props!==!0&&(d.props=r.mergeEvaluated.props(a,(0,r.toHash)(f),d.props));let p=f.filter(y=>!(0,r.alwaysValidSchema)(d,c[y]));if(p.length===0)return;let h=a.name("valid");for(let y of p)m(y)?g(y):(a.if((0,n.propertyInData)(a,l,y,d.opts.ownProperties)),g(y),d.allErrors||a.else().var(h,!0),a.endIf()),o.it.definedProperties.add(y),o.ok(h);function m(y){return d.opts.useDefaults&&!d.compositeRule&&c[y].default!==void 0}function g(y){o.subschema({keyword:"properties",schemaProp:y,dataProp:y},h)}}};e.default=s}),Xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=ur(),i=ur(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,data:u,parentSchema:l,it:d}=o,{opts:f}=d,p=(0,t.allSchemaProperties)(c),h=p.filter(_=>(0,r.alwaysValidSchema)(d,c[_]));if(p.length===0||h.length===p.length&&(!d.opts.unevaluated||d.props===!0))return;let m=f.strictSchema&&!f.allowMatchingProperties&&l.properties,g=a.name("valid");d.props!==!0&&!(d.props instanceof n.Name)&&(d.props=(0,i.evaluatedPropsToName)(a,d.props));let{props:y}=d;b();function b(){for(let _ of p)m&&S(_),d.allErrors?E(_):(a.var(g,!0),E(_),a.if(g))}function S(_){for(let T in m)new RegExp(_).test(T)&&(0,r.checkStrictMode)(d,`property ${T} matches pattern ${_} (use allowMatchingProperties)`)}function E(_){a.forIn("key",u,T=>{a.if((0,n._)`${(0,t.usePattern)(o,_)}.test(${T})`,()=>{let R=h.includes(_);R||o.subschema({keyword:"patternProperties",schemaProp:_,dataProp:T,dataPropType:i.Type.Str},g),d.opts.unevaluated&&y!==!0?a.assign((0,n._)`${y}[${T}]`,!0):!R&&!d.allErrors&&a.if((0,n.not)(g),()=>a.break())})})}}};e.default=s}),Qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){let{gen:i,schema:s,it:o}=r;if((0,t.alwaysValidSchema)(o,s)){r.fail();return}let a=i.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};e.default=n}),$nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:t.validateUnion,error:{message:"must match a schema in anyOf"}};e.default=n}),err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,t._)`{passingSchemas: ${s.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:r,code(s){let{gen:o,schema:a,parentSchema:c,it:u}=s;if(!Array.isArray(a))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=a,d=o.let("valid",!1),f=o.let("passing",null),p=o.name("_valid");s.setParams({passing:f}),o.block(h),s.result(d,()=>s.reset(),()=>s.error(!0));function h(){l.forEach((m,g)=>{let y;(0,n.alwaysValidSchema)(u,m)?o.var(p,!0):y=s.subschema({keyword:"oneOf",schemaProp:g,compositeRule:!0},p),g>0&&o.if((0,t._)`${p} && ${d}`).assign(d,!1).assign(f,(0,t._)`[${f}, ${g}]`).else(),o.if(p,()=>{o.assign(d,!0),o.assign(f,g),y&&s.mergeEvaluated(y,t.Name)})})}}};e.default=i}),trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:"allOf",schemaType:"array",code(r){let{gen:i,schema:s,it:o}=r;if(!Array.isArray(s))throw new Error("ajv implementation error");let a=i.name("valid");s.forEach((c,u)=>{if((0,t.alwaysValidSchema)(o,c))return;let l=r.subschema({keyword:"allOf",schemaProp:u},a);r.ok(a),r.mergeEvaluated(l)})}};e.default=n}),nrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r={message:({params:o})=>(0,t.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,t._)`{failingKeyword: ${o.ifClause}}`},i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:r,code(o){let{gen:a,parentSchema:c,it:u}=o;c.then===void 0&&c.else===void 0&&(0,n.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=s(u,"then"),d=s(u,"else");if(!l&&!d)return;let f=a.let("valid",!0),p=a.name("_valid");if(h(),o.reset(),l&&d){let g=a.let("ifClause");o.setParams({ifClause:g}),a.if(p,m("then",g),m("else",g))}else l?a.if(p,m("then")):a.if((0,t.not)(p),m("else"));o.pass(f,()=>o.error(!0));function h(){let g=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},p);o.mergeEvaluated(g)}function m(g,y){return()=>{let b=o.subschema({keyword:g},p);a.assign(f,p),o.mergeValidEvaluated(b,f),y?a.assign(y,(0,t._)`${g}`):o.setParams({ifClause:g})}}}};function s(o,a){let c=o.schema[a];return c!==void 0&&!(0,n.alwaysValidSchema)(o,c)}e.default=i}),rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:i,it:s}){i.if===void 0&&(0,t.checkStrictMode)(s,`"${r}" without "if" is ignored`)}};e.default=n}),irr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=hOt(),n=Vnr(),r=mOt(),i=Wnr(),s=Knr(),o=Ynr(),a=Znr(),c=gOt(),u=Jnr(),l=Xnr(),d=Qnr(),f=$nr(),p=err(),h=trr(),m=nrr(),g=rrr();function y(b=!1){let S=[d.default,f.default,p.default,h.default,m.default,g.default,a.default,c.default,o.default,u.default,l.default];return b?S.push(n.default,i.default):S.push(t.default,r.default),S.push(s.default),S}e.default=y}),srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={message:({schemaCode:i})=>(0,t.str)`must match format "${i}"`,params:({schemaCode:i})=>(0,t._)`{format: ${i}}`},r={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:n,code(i,s){let{gen:o,data:a,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:f,errSchemaPath:p,schemaEnv:h,self:m}=d;if(!f.validateFormats)return;c?g():y();function g(){let b=o.scopeValue("formats",{ref:m.formats,code:f.code.formats}),S=o.const("fDef",(0,t._)`${b}[${l}]`),E=o.let("fType"),_=o.let("format");o.if((0,t._)`typeof ${S} == "object" && !(${S} instanceof RegExp)`,()=>o.assign(E,(0,t._)`${S}.type || "string"`).assign(_,(0,t._)`${S}.validate`),()=>o.assign(E,(0,t._)`"string"`).assign(_,S)),i.fail$data((0,t.or)(T(),R()));function T(){return f.strictSchema===!1?t.nil:(0,t._)`${l} && !${_}`}function R(){let A=h.$async?(0,t._)`(${S}.async ? await ${_}(${a}) : ${_}(${a}))`:(0,t._)`${_}(${a})`,x=(0,t._)`(typeof ${_} == "function" ? ${A} : ${_}.test(${a}))`;return(0,t._)`${_} && ${_} !== true && ${E} === ${s} && !${x}`}}function y(){let b=m.formats[u];if(!b){T();return}if(b===!0)return;let[S,E,_]=R(b);S===s&&i.pass(A());function T(){if(f.strictSchema===!1){m.logger.warn(x());return}throw new Error(x());function x(){return`unknown format "${u}" ignored in schema at path "${p}"`}}function R(x){let k=x instanceof RegExp?(0,t.regexpCode)(x):f.code.formats?(0,t._)`${f.code.formats}${(0,t.getProperty)(u)}`:void 0,P=o.scopeValue("formats",{key:u,ref:x,code:k});return typeof x=="object"&&!(x instanceof RegExp)?[x.type||"string",x.validate,(0,t._)`${P}.validate`]:["string",x,P]}function A(){if(typeof b=="object"&&!(b instanceof RegExp)&&b.async){if(!h.$async)throw new Error("async format in sync schema");return(0,t._)`await ${_}(${a})`}return typeof E=="function"?(0,t._)`${_}(${a})`:(0,t._)`${_}.test(${a})`}}}};e.default=r}),orr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=srr(),n=[t.default];e.default=n}),arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],e.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),crr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Nnr(),n=Gnr(),r=irr(),i=orr(),s=arr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),urr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(n){n.Tag="tag",n.Mapping="mapping"})(t||(e.DiscrError=t={}))}),lrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=urr(),r=OTe(),i=W5(),s=ur(),o={message:({params:{discrError:c,tagName:u}})=>c===n.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,t._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},a={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:f,it:p}=c,{oneOf:h}=f;if(!p.opts.discriminator)throw new Error("discriminator: requires discriminator option");let m=d.propertyName;if(typeof m!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let g=u.let("valid",!1),y=u.const("tag",(0,t._)`${l}${(0,t.getProperty)(m)}`);u.if((0,t._)`typeof ${y} == "string"`,()=>b(),()=>c.error(!1,{discrError:n.DiscrError.Tag,tag:y,tagName:m})),c.ok(g);function b(){let _=E();u.if(!1);for(let T in _)u.elseIf((0,t._)`${y} === ${T}`),u.assign(g,S(_[T]));u.else(),c.error(!1,{discrError:n.DiscrError.Mapping,tag:y,tagName:m}),u.endIf()}function S(_){let T=u.name("valid"),R=c.subschema({keyword:"oneOf",schemaProp:_},T);return c.mergeEvaluated(R,t.Name),T}function E(){var _;let T={},R=x(f),A=!0;for(let N=0;N{t.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),yOt=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var n=xnr(),r=crr(),i=lrr(),s=drr(),o=["/properties"],a="http://json-schema.org/draft-07/schema";class c extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(h,a,!1),this.refs["http://json-schema.org/schema"]=a}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(a)?a:void 0)}}e.Ajv=c,t.exports=e=c,t.exports.Ajv=c,Object.defineProperty(e,"__esModule",{value:!0}),e.default=c;var u=V5();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=_n();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=xTe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=W5();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),frr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(P,N){return{validate:P,compare:N}}e.fullFormats={date:t(s,o),time:t(c(!0),u),"date-time":t(f(!0),p),"iso-time":t(c(),l),"iso-date-time":t(f(),h),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:y,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:k,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:S,int32:{type:"number",validate:T},int64:{type:"number",validate:R},float:{type:"number",validate:A},double:{type:"number",validate:A},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,u),"date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,p),"iso-time":t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"iso-date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,h),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},e.formatNames=Object.keys(e.fullFormats);function n(P){return P%4===0&&(P%100!==0||P%400===0)}var r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s(P){let N=r.exec(P);if(!N)return!1;let C=+N[1],L=+N[2],G=+N[3];return L>=1&&L<=12&&G>=1&&G<=(L===2&&n(C)?29:i[L])}function o(P,N){if(P&&N)return P>N?1:P23||F>59||P&&!q)return!1;if(G<=23&&W<=59&&$<60)return!0;let V=W-F*Q,U=G-B*Q-(V<0?1:0);return(U===23||U===-1)&&(V===59||V===-1)&&$<61}}function u(P,N){if(!(P&&N))return;let C=new Date("2020-01-01T"+P).valueOf(),L=new Date("2020-01-01T"+N).valueOf();if(C&&L)return C-L}function l(P,N){if(!(P&&N))return;let C=a.exec(P),L=a.exec(N);if(C&&L)return P=C[1]+C[2]+C[3],N=L[1]+L[2]+L[3],P>N?1:P=E}function R(P){return Number.isInteger(P)}function A(){return!0}var x=/[^\\]\\Z/;function k(P){if(x.test(P))return!1;try{return new RegExp(P),!0}catch{return!1}}}),prr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=yOt(),n=_n(),r=n.operators,i={formatMaximum:{okStr:"<=",ok:r.LTE,fail:r.GT},formatMinimum:{okStr:">=",ok:r.GTE,fail:r.LT},formatExclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},formatExclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},s={message:({keyword:a,schemaCode:c})=>(0,n.str)`should be ${i[a].okStr} ${c}`,params:({keyword:a,schemaCode:c})=>(0,n._)`{comparison: ${i[a].okStr}, limit: ${c}}`};e.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:c,data:u,schemaCode:l,keyword:d,it:f}=a,{opts:p,self:h}=f;if(!p.validateFormats)return;let m=new t.KeywordCxt(f,h.RULES.all.format.definition,"format");m.$data?g():y();function g(){let S=c.scopeValue("formats",{ref:h.formats,code:p.code.formats}),E=c.const("fmt",(0,n._)`${S}[${m.schemaCode}]`);a.fail$data((0,n.or)((0,n._)`typeof ${E} != "object"`,(0,n._)`${E} instanceof RegExp`,(0,n._)`typeof ${E}.compare != "function"`,b(E)))}function y(){let S=m.schema,E=h.formats[S];if(!E||E===!0)return;if(typeof E!="object"||E instanceof RegExp||typeof E.compare!="function")throw new Error(`"${d}": format "${S}" does not define "compare" function`);let _=c.scopeValue("formats",{key:S,ref:E,code:p.code.formats?(0,n._)`${p.code.formats}${(0,n.getProperty)(S)}`:void 0});a.fail$data(b(_))}function b(S){return(0,n._)`${S}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=a=>(a.addKeyword(e.formatLimitDefinition),a);e.default=o}),hrr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=frr(),r=prr(),i=_n(),s=new i.Name("fullFormats"),o=new i.Name("fastFormats"),a=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,n.fullFormats,s),u;let[d,f]=l.mode==="fast"?[n.fastFormats,o]:[n.fullFormats,s],p=l.formats||n.formatNames;return c(u,p,d,f),l.keywords&&(0,r.default)(u),u};a.get=(u,l="full")=>{let f=(l==="fast"?n.fastFormats:n.fullFormats)[u];if(!f)throw new Error(`Unknown format "${u}"`);return f};function c(u,l,d,f){var p,h;(p=(h=u.opts.code).formats)!==null&&p!==void 0||(h.formats=(0,i._)`require("ajv-formats/dist/formats").${f}`);for(let m of l)u.addFormat(m,d[m])}t.exports=e=a,Object.defineProperty(e,"__esModule",{value:!0}),e.default=a}),yrr=50;_rr=typeof global=="object"&&global&&global.Object===Object&&global,Trr=_rr,vrr=typeof self=="object"&&self&&self.Object===Object&&self,Rrr=Trr||vrr||Function("return this")(),CTe=Rrr,Arr=CTe.Symbol,k5=Arr,SOt=Object.prototype,wrr=SOt.hasOwnProperty,krr=SOt.toString,SU=k5?k5.toStringTag:void 0;xrr=Irr,Orr=Object.prototype,Prr=Orr.toString;Crr=Nrr,Mrr="[object Null]",Drr="[object Undefined]",Ext=k5?k5.toStringTag:void 0;Urr=Lrr;bOt=Frr,jrr="[object AsyncFunction]",Hrr="[object Function]",qrr="[object GeneratorFunction]",Brr="[object Proxy]";Grr=zrr,Vrr=CTe["__core-js_shared__"],B_e=Vrr,_xt=(function(){var e=/[^.]+$/.exec(B_e&&B_e.keys&&B_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();Krr=Wrr,Yrr=Function.prototype,Zrr=Yrr.toString;Xrr=Jrr,Qrr=/[\\^$.*+?()[\]{}|]/g,$rr=/^\[object .+?Constructor\]$/,eir=Function.prototype,tir=Object.prototype,nir=eir.toString,rir=tir.hasOwnProperty,iir=RegExp("^"+nir.call(rir).replace(Qrr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");oir=sir;cir=air;EOt=uir,lir=EOt(Object,"create"),wU=lir;fir=dir;hir=pir,mir="__lodash_hash_undefined__",gir=Object.prototype,yir=gir.hasOwnProperty;bir=Sir,Eir=Object.prototype,_ir=Eir.hasOwnProperty;vir=Tir,Rir="__lodash_hash_undefined__";wir=Air;Wx.prototype.clear=fir;Wx.prototype.delete=hir;Wx.prototype.get=bir;Wx.prototype.has=vir;Wx.prototype.set=wir;Txt=Wx;Iir=kir;Oir=xir;K5=Pir,Nir=Array.prototype,Cir=Nir.splice;Dir=Mir;Uir=Lir;jir=Fir;qir=Hir;Kx.prototype.clear=Iir;Kx.prototype.delete=Dir;Kx.prototype.get=Uir;Kx.prototype.has=jir;Kx.prototype.set=qir;Bir=Kx,zir=EOt(CTe,"Map"),Gir=zir;Wir=Vir;Yir=Kir;Y5=Zir;Xir=Jir;$ir=Qir;tsr=esr;rsr=nsr;Yx.prototype.clear=Wir;Yx.prototype.delete=Xir;Yx.prototype.get=$ir;Yx.prototype.has=tsr;Yx.prototype.set=rsr;_Ot=Yx,isr="Expected a function";MTe.Cache=_Ot;HU=MTe,vxt=2e3;osr=HU(e=>{if(!e||e.trim()==="")return null;let t=e.split(",").map(s=>s.trim()).filter(Boolean);if(t.length===0)return null;let n=t.some(s=>s.startsWith("!")),r=t.some(s=>!s.startsWith("!"));if(n&&r)return null;let i=t.map(s=>s.replace(/^!/,"").toLowerCase());return{include:n?[]:i,exclude:n?i:[],isExclusive:n}});z_e=15e4,b5=3e4;msr=ROt("BASH_MAX_OUTPUT_LENGTH"),LPi=ROt("TASK_MAX_OUTPUT_LENGTH"),gsr={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:e=>{if(!e)return{effective:32e3,status:"valid"};let r=parseInt(e,10);return isNaN(r)||r<=0?{effective:32e3,status:"invalid",message:`Invalid value "${e}" (using default: 32000)`}:r>64e3?{effective:64e3,status:"capped",message:`Capped from ${r} to 64000`}:{effective:r,status:"valid"}}};Ssr=ysr();Axt=new Set;AOt=1/0;kOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return wOt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},vsr=HU(()=>Rxt(process.env.DEBUG)||Rxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||IOt()||process.argv.some(e=>e.startsWith("--debug="))),Rsr=HU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return osr(t)}),IOt=HU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));wsr=!1,E5=null;Isr=HU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=xOt(),t=Q_e(e),n=vOt(t,"latest");if(Xg().existsSync(t)||Xg().mkdirSync(t),Xg().existsSync(n))try{Xg().unlinkSync(n)}catch{}Xg().symlinkSync(e,n)}catch{}});xsr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Err(e)},statSync(e){return fo(`statSync(${e})`,()=>Zt.statSync(e))},lstatSync(e){return fo(`lstatSync(${e})`,()=>Zt.lstatSync(e))},readFileSync(e,t){return fo(`readFileSync(${e})`,()=>Zt.readFileSync(e,{encoding:t.encoding}))},readFileBytesSync(e){return fo(`readFileBytesSync(${e})`,()=>Zt.readFileSync(e))},readSync(e,t){return fo(`readSync(${e}, ${t.length} bytes)`,()=>{let n;try{n=Zt.openSync(e,"r");let r=Buffer.alloc(t.length),i=Zt.readSync(n,r,0,t.length,0);return{buffer:r,bytesRead:i}}finally{n&&Zt.closeSync(n)}})},appendFileSync(e,t,n){return fo(`appendFileSync(${e}, ${t.length} chars)`,()=>{if(!Zt.existsSync(e)&&n?.mode!==void 0){let r=Zt.openSync(e,"a",n.mode);try{Zt.appendFileSync(r,t)}finally{Zt.closeSync(r)}}else Zt.appendFileSync(e,t)})},copyFileSync(e,t){return fo(`copyFileSync(${e} \u2192 ${t})`,()=>Zt.copyFileSync(e,t))},unlinkSync(e){return fo(`unlinkSync(${e})`,()=>Zt.unlinkSync(e))},renameSync(e,t){return fo(`renameSync(${e} \u2192 ${t})`,()=>Zt.renameSync(e,t))},linkSync(e,t){return fo(`linkSync(${e} \u2192 ${t})`,()=>Zt.linkSync(e,t))},symlinkSync(e,t){return fo(`symlinkSync(${e} \u2192 ${t})`,()=>Zt.symlinkSync(e,t))},readlinkSync(e){return fo(`readlinkSync(${e})`,()=>Zt.readlinkSync(e))},realpathSync(e){return fo(`realpathSync(${e})`,()=>Zt.realpathSync(e))},mkdirSync(e,t){return fo(`mkdirSync(${e})`,()=>{if(!Zt.existsSync(e)){let n={recursive:!0};t?.mode!==void 0&&(n.mode=t.mode),Zt.mkdirSync(e,n)}})},readdirSync(e){return fo(`readdirSync(${e})`,()=>Zt.readdirSync(e,{withFileTypes:!0}))},readdirStringSync(e){return fo(`readdirStringSync(${e})`,()=>Zt.readdirSync(e))},isDirEmptySync(e){return fo(`isDirEmptySync(${e})`,()=>this.readdirSync(e).length===0)},rmdirSync(e){return fo(`rmdirSync(${e})`,()=>Zt.rmdirSync(e))},rmSync(e,t){return fo(`rmSync(${e})`,()=>Zt.rmSync(e,t))},createWriteStream(e){return Zt.createWriteStream(e)}},Osr=xsr;Psr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],Nsr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],tE=class extends Error{};_5=null,kxt=!1;I5=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||NTe(),this.initialize()}getDefaultExecutable(){return DTe()?"bun":"node"}spawnLocalProcess(t){let{command:n,args:r,cwd:i,env:s,signal:o}=t,a=s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=Srr(n,r,{cwd:i,stdio:["pipe","pipe",a],signal:o,env:s,windowsHide:!0});return(s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();Kv(d),this.options.stderr&&this.options.stderr(d)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:t=[],betas:n,cwd:r,executable:i=this.getDefaultExecutable(),executableArgs:s=[],extraArgs:o={},pathToClaudeCodeExecutable:a,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:f,fallbackModel:p,jsonSchema:h,permissionMode:m,allowDangerouslySkipPermissions:g,permissionPromptToolName:y,continueConversation:b,resume:S,settingSources:E,allowedTools:_=[],disallowedTools:T=[],tools:R,mcpServers:A,strictMcpConfig:x,canUseTool:k,includePartialMessages:P,plugins:N,sandbox:C}=this.options,L=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&L.push("--max-thinking-tokens",u.toString()),l&&L.push("--max-turns",l.toString()),d!==void 0&&L.push("--max-budget-usd",d.toString()),f&&L.push("--model",f),n&&n.length>0&&L.push("--betas",n.join(",")),h&&L.push("--json-schema",im(h)),c.DEBUG_CLAUDE_AGENT_SDK&&L.push("--debug-to-stderr"),k){if(y)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");L.push("--permission-prompt-tool","stdio")}else y&&L.push("--permission-prompt-tool",y);if(b&&L.push("--continue"),S&&L.push("--resume",S),_.length>0&&L.push("--allowedTools",_.join(",")),T.length>0&&L.push("--disallowedTools",T.join(",")),R!==void 0&&(Array.isArray(R)?R.length===0?L.push("--tools",""):L.push("--tools",R.join(",")):L.push("--tools","default")),A&&Object.keys(A).length>0&&L.push("--mcp-config",im({mcpServers:A})),E&&L.push("--setting-sources",E.join(",")),x&&L.push("--strict-mcp-config"),m&&L.push("--permission-mode",m),g&&L.push("--allow-dangerously-skip-permissions"),p){if(f&&p===f)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");L.push("--fallback-model",p)}P&&L.push("--include-partial-messages");for(let F of t)L.push("--add-dir",F);if(N&&N.length>0)for(let F of N)if(F.type==="local")L.push("--plugin-dir",F.path);else throw new Error(`Unsupported plugin type: ${F.type}`);this.options.forkSession&&L.push("--fork-session"),this.options.resumeSessionAt&&L.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&L.push("--no-session-persistence");let G=Fsr(o??{},C);for(let[F,V]of Object.entries(G))V===null?L.push(`--${F}`):L.push(`--${F}`,V);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let W=jsr(a),$=W?a:i,q=W?[...s,...L]:[...s,a,...L],Q={command:$,args:q,cwd:r,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)Kv(`Spawning Claude Code (custom): ${$} ${q.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(Q);else{if(!Xg().existsSync(a)){let V=W?`Claude Code native binary not found at ${a}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${a}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(V)}Kv(`Spawning Claude Code: ${$} ${q.join(" ")}`),this.process=this.spawnLocalProcess(Q)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let B=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=B,this.abortHandler=B,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",F=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new tE("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${F.message}`),Kv(this.exitError.message))}),this.process.on("exit",(F,V)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new tE("Claude Code process aborted by user");else{let U=this.getProcessExitError(F,V);U&&(this.exitError=U,Kv(U.message))}}),this.ready=!0}catch(t){throw this.ready=!1,t}}getProcessExitError(t,n){if(t!==0&&t!==null)return new Error(`Claude Code process exited with code ${t}`);if(n)return new Error(`Claude Code process terminated by signal ${n}`)}write(t){if(this.abortController.signal.aborted)throw new tE("Operation aborted");if(!this.ready||!this.processStdin)throw new Error("ProcessTransport is not ready for writing");if(this.process?.killed||this.process?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Kv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Kv("[ProcessTransport] Write buffer full, data queued")}catch(n){throw this.ready=!1,new Error(`Failed to write to process stdin: ${n.message}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:t}of this.exitListeners)this.process?.off("exit",t);this.exitListeners=[],this.process&&!this.process.killed&&(this.process.kill("SIGTERM"),setTimeout(()=>{this.process&&!this.process.killed&&this.process.kill("SIGKILL")},5e3)),this.ready=!1,this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw new Error("ProcessTransport output stream not available");let t=brr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield kOt(n));await this.waitForExit()}catch(n){throw n}finally{t.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(t){if(!this.process)return()=>{};let n=(r,i)=>{let s=this.getProcessExitError(r,i);t(s)};return this.process.on("exit",n),this.exitListeners.push({callback:t,handler:n}),()=>{this.process&&this.process.off("exit",n);let r=this.exitListeners.findIndex(i=>i.handler===n);r!==-1&&this.exitListeners.splice(r,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((t,n)=>{let r=(s,o)=>{if(this.abortController.signal.aborted){n(new tE("Operation aborted"));return}let a=this.getProcessExitError(s,o);a?n(a):t()};this.process.once("exit",r);let i=s=>{this.process.off("exit",r),n(s)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};x5=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(t){this.returned=t}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((t,n)=>{this.readResolve=t,this.readReject=n})}enqueue(t){if(this.readResolve){let n=this.readResolve;this.readResolve=void 0,this.readReject=void 0,n({done:!1,value:t})}else this.queue.push(t)}done(){if(this.isDone=!0,this.readResolve){let t=this.readResolve;this.readResolve=void 0,this.readReject=void 0,t({done:!0,value:void 0})}}error(t){if(this.hasError=t,this.readReject){let n=this.readReject;this.readResolve=void 0,this.readReject=void 0,n(t)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},$_e=class{sendMcpMessage;isClosed=!1;constructor(t){this.sendMcpMessage=t}onclose;onerror;onmessage;async start(){}async send(t){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(t)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},O5=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new x5;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(t,n,r,i,s,o=new Map,a,c){this.transport=t,this.isSingleUserTurn=n,this.canUseTool=r,this.hooks=i,this.abortController=s,this.jsonSchema=a,this.initConfig=c;for(let[u,l]of o)this.connectSdkMcpServer(u,l);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(t){this.inputStream.error(t)}cleanup(t){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let n of this.sdkMcpTransports.values())try{n.close()}catch{}this.sdkMcpTransports.clear(),t?this.inputStream.error(t):this.inputStream.done()}catch{}}}next(...[t]){return this.sdkMessages.next(t)}return(t){return this.sdkMessages.return(t)}throw(t){return this.sdkMessages.throw(t)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let t of this.transport.readMessages()){if(t.type==="control_response"){let n=this.pendingControlResponses.get(t.response.request_id);n&&n(t.response);continue}else if(t.type==="control_request"){this.handleControlRequest(t);continue}else if(t.type==="control_cancel_request"){this.handleControlCancelRequest(t);continue}else if(t.type==="keep_alive")continue;t.type==="result"&&(this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Zg("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())),this.inputStream.enqueue(t)}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(t){this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.error(t),this.cleanup(t)}}async handleControlRequest(t){let n=new AbortController;this.cancelControllers.set(t.request_id,n);try{let r=await this.processControlRequest(t,n.signal),i={type:"control_response",response:{subtype:"success",request_id:t.request_id,response:r}};await Promise.resolve(this.transport.write(im(i)+` + deps: ${l}}`};var i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){let[u,l]=s(c);o(c,u),a(c,l)}};function s({schema:c}){let u={},l={};for(let d in c){if(d==="__proto__")continue;let f=Array.isArray(c[d])?u:l;f[d]=c[d]}return[u,l]}function o(c,u=c.schema){let{gen:l,data:d,it:f}=c;if(Object.keys(u).length===0)return;let p=l.let("missing");for(let h in u){let m=u[h];if(m.length===0)continue;let g=(0,r.propertyInData)(l,d,h,f.opts.ownProperties);c.setParams({property:h,depsCount:m.length,deps:m.join(", ")}),f.allErrors?l.if(g,()=>{for(let y of m)(0,r.checkReportMissingProp)(c,y)}):(l.if((0,t._)`${g} && (${(0,r.checkMissingProp)(c,m,p)})`),(0,r.reportMissingProp)(c,p),l.else())}}e.validatePropertyDeps=o;function a(c,u=c.schema){let{gen:l,data:d,keyword:f,it:p}=c,h=l.name("valid");for(let m in u)(0,n.alwaysValidSchema)(p,u[m])||(l.if((0,r.propertyInData)(l,d,m,p.opts.ownProperties),()=>{let g=c.subschema({keyword:f,schemaProp:m},h);c.mergeValidEvaluated(g,h)},()=>l.var(h,!0)),c.ok(h))}e.validateSchemaDeps=a,e.default=i}),Znr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r={message:"property name must be valid",params:({params:s})=>(0,t._)`{propertyName: ${s.propertyName}}`},i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:r,code(s){let{gen:o,schema:a,data:c,it:u}=s;if((0,n.alwaysValidSchema)(u,a))return;let l=o.name("valid");o.forIn("key",c,d=>{s.setParams({propertyName:d}),s.subschema({keyword:"propertyNames",data:d,dataTypes:["string"],propertyName:d,compositeRule:!0},l),o.if((0,t.not)(l),()=>{s.error(!0),u.allErrors||o.break()})}),s.ok(l)}};e.default=i}),gOt=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=sE(),i=ur(),s={message:"must NOT have additional properties",params:({params:a})=>(0,n._)`{additionalProperty: ${a.additionalProperty}}`},o={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:s,code(a){let{gen:c,schema:u,parentSchema:l,data:d,errsCount:f,it:p}=a;if(!f)throw new Error("ajv implementation error");let{allErrors:h,opts:m}=p;if(p.props=!0,m.removeAdditional!=="all"&&(0,i.alwaysValidSchema)(p,u))return;let g=(0,t.allSchemaProperties)(l.properties),y=(0,t.allSchemaProperties)(l.patternProperties);b(),a.ok((0,n._)`${f} === ${r.default.errors}`);function b(){c.forIn("key",d,R=>{!g.length&&!y.length?_(R):c.if(S(R),()=>_(R))})}function S(R){let A;if(g.length>8){let x=(0,i.schemaRefOrVal)(p,l.properties,"properties");A=(0,t.isOwnProperty)(c,x,R)}else g.length?A=(0,n.or)(...g.map(x=>(0,n._)`${R} === ${x}`)):A=n.nil;return y.length&&(A=(0,n.or)(A,...y.map(x=>(0,n._)`${(0,t.usePattern)(a,x)}.test(${R})`))),(0,n.not)(A)}function E(R){c.code((0,n._)`delete ${d}[${R}]`)}function _(R){if(m.removeAdditional==="all"||m.removeAdditional&&u===!1){E(R);return}if(u===!1){a.setParams({additionalProperty:R}),a.error(),h||c.break();return}if(typeof u=="object"&&!(0,i.alwaysValidSchema)(p,u)){let A=c.name("valid");m.removeAdditional==="failing"?(T(R,A,!1),c.if((0,n.not)(A),()=>{a.reset(),E(R)})):(T(R,A),h||c.if((0,n.not)(A),()=>c.break()))}}function T(R,A,x){let k={keyword:"additionalProperties",dataProp:R,dataPropType:i.Type.Str};x===!1&&Object.assign(k,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema(k,A)}}};e.default=o}),Jnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=W5(),n=bp(),r=ur(),i=gOt(),s={keyword:"properties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,parentSchema:u,data:l,it:d}=o;d.opts.removeAdditional==="all"&&u.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(d,i.default,"additionalProperties"));let f=(0,n.allSchemaProperties)(c);for(let y of f)d.definedProperties.add(y);d.opts.unevaluated&&f.length&&d.props!==!0&&(d.props=r.mergeEvaluated.props(a,(0,r.toHash)(f),d.props));let p=f.filter(y=>!(0,r.alwaysValidSchema)(d,c[y]));if(p.length===0)return;let h=a.name("valid");for(let y of p)m(y)?g(y):(a.if((0,n.propertyInData)(a,l,y,d.opts.ownProperties)),g(y),d.allErrors||a.else().var(h,!0),a.endIf()),o.it.definedProperties.add(y),o.ok(h);function m(y){return d.opts.useDefaults&&!d.compositeRule&&c[y].default!==void 0}function g(y){o.subschema({keyword:"properties",schemaProp:y,dataProp:y},h)}}};e.default=s}),Xnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n=_n(),r=ur(),i=ur(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(o){let{gen:a,schema:c,data:u,parentSchema:l,it:d}=o,{opts:f}=d,p=(0,t.allSchemaProperties)(c),h=p.filter(_=>(0,r.alwaysValidSchema)(d,c[_]));if(p.length===0||h.length===p.length&&(!d.opts.unevaluated||d.props===!0))return;let m=f.strictSchema&&!f.allowMatchingProperties&&l.properties,g=a.name("valid");d.props!==!0&&!(d.props instanceof n.Name)&&(d.props=(0,i.evaluatedPropsToName)(a,d.props));let{props:y}=d;b();function b(){for(let _ of p)m&&S(_),d.allErrors?E(_):(a.var(g,!0),E(_),a.if(g))}function S(_){for(let T in m)new RegExp(_).test(T)&&(0,r.checkStrictMode)(d,`property ${T} matches pattern ${_} (use allowMatchingProperties)`)}function E(_){a.forIn("key",u,T=>{a.if((0,n._)`${(0,t.usePattern)(o,_)}.test(${T})`,()=>{let R=h.includes(_);R||o.subschema({keyword:"patternProperties",schemaProp:_,dataProp:T,dataPropType:i.Type.Str},g),d.opts.unevaluated&&y!==!0?a.assign((0,n._)`${y}[${T}]`,!0):!R&&!d.allErrors&&a.if((0,n.not)(g),()=>a.break())})})}}};e.default=s}),Qnr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){let{gen:i,schema:s,it:o}=r;if((0,t.alwaysValidSchema)(o,s)){r.fail();return}let a=i.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};e.default=n}),$nr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=bp(),n={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:t.validateUnion,error:{message:"must match a schema in anyOf"}};e.default=n}),err=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r={message:"must match exactly one schema in oneOf",params:({params:s})=>(0,t._)`{passingSchemas: ${s.passing}}`},i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:r,code(s){let{gen:o,schema:a,parentSchema:c,it:u}=s;if(!Array.isArray(a))throw new Error("ajv implementation error");if(u.opts.discriminator&&c.discriminator)return;let l=a,d=o.let("valid",!1),f=o.let("passing",null),p=o.name("_valid");s.setParams({passing:f}),o.block(h),s.result(d,()=>s.reset(),()=>s.error(!0));function h(){l.forEach((m,g)=>{let y;(0,n.alwaysValidSchema)(u,m)?o.var(p,!0):y=s.subschema({keyword:"oneOf",schemaProp:g,compositeRule:!0},p),g>0&&o.if((0,t._)`${p} && ${d}`).assign(d,!1).assign(f,(0,t._)`[${f}, ${g}]`).else(),o.if(p,()=>{o.assign(d,!0),o.assign(f,g),y&&s.mergeEvaluated(y,t.Name)})})}}};e.default=i}),trr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:"allOf",schemaType:"array",code(r){let{gen:i,schema:s,it:o}=r;if(!Array.isArray(s))throw new Error("ajv implementation error");let a=i.name("valid");s.forEach((c,u)=>{if((0,t.alwaysValidSchema)(o,c))return;let l=r.subschema({keyword:"allOf",schemaProp:u},a);r.ok(a),r.mergeEvaluated(l)})}};e.default=n}),nrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=ur(),r={message:({params:o})=>(0,t.str)`must match "${o.ifClause}" schema`,params:({params:o})=>(0,t._)`{failingKeyword: ${o.ifClause}}`},i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:r,code(o){let{gen:a,parentSchema:c,it:u}=o;c.then===void 0&&c.else===void 0&&(0,n.checkStrictMode)(u,'"if" without "then" and "else" is ignored');let l=s(u,"then"),d=s(u,"else");if(!l&&!d)return;let f=a.let("valid",!0),p=a.name("_valid");if(h(),o.reset(),l&&d){let g=a.let("ifClause");o.setParams({ifClause:g}),a.if(p,m("then",g),m("else",g))}else l?a.if(p,m("then")):a.if((0,t.not)(p),m("else"));o.pass(f,()=>o.error(!0));function h(){let g=o.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},p);o.mergeEvaluated(g)}function m(g,y){return()=>{let b=o.subschema({keyword:g},p);a.assign(f,p),o.mergeValidEvaluated(b,f),y?a.assign(y,(0,t._)`${g}`):o.setParams({ifClause:g})}}}};function s(o,a){let c=o.schema[a];return c!==void 0&&!(0,n.alwaysValidSchema)(o,c)}e.default=i}),rrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ur(),n={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:i,it:s}){i.if===void 0&&(0,t.checkStrictMode)(s,`"${r}" without "if" is ignored`)}};e.default=n}),irr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=hOt(),n=Vnr(),r=mOt(),i=Wnr(),s=Knr(),o=Ynr(),a=Znr(),c=gOt(),u=Jnr(),l=Xnr(),d=Qnr(),f=$nr(),p=err(),h=trr(),m=nrr(),g=rrr();function y(b=!1){let S=[d.default,f.default,p.default,h.default,m.default,g.default,a.default,c.default,o.default,u.default,l.default];return b?S.push(n.default,i.default):S.push(t.default,r.default),S.push(s.default),S}e.default=y}),srr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n={message:({schemaCode:i})=>(0,t.str)`must match format "${i}"`,params:({schemaCode:i})=>(0,t._)`{format: ${i}}`},r={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:n,code(i,s){let{gen:o,data:a,$data:c,schema:u,schemaCode:l,it:d}=i,{opts:f,errSchemaPath:p,schemaEnv:h,self:m}=d;if(!f.validateFormats)return;c?g():y();function g(){let b=o.scopeValue("formats",{ref:m.formats,code:f.code.formats}),S=o.const("fDef",(0,t._)`${b}[${l}]`),E=o.let("fType"),_=o.let("format");o.if((0,t._)`typeof ${S} == "object" && !(${S} instanceof RegExp)`,()=>o.assign(E,(0,t._)`${S}.type || "string"`).assign(_,(0,t._)`${S}.validate`),()=>o.assign(E,(0,t._)`"string"`).assign(_,S)),i.fail$data((0,t.or)(T(),R()));function T(){return f.strictSchema===!1?t.nil:(0,t._)`${l} && !${_}`}function R(){let A=h.$async?(0,t._)`(${S}.async ? await ${_}(${a}) : ${_}(${a}))`:(0,t._)`${_}(${a})`,x=(0,t._)`(typeof ${_} == "function" ? ${A} : ${_}.test(${a}))`;return(0,t._)`${_} && ${_} !== true && ${E} === ${s} && !${x}`}}function y(){let b=m.formats[u];if(!b){T();return}if(b===!0)return;let[S,E,_]=R(b);S===s&&i.pass(A());function T(){if(f.strictSchema===!1){m.logger.warn(x());return}throw new Error(x());function x(){return`unknown format "${u}" ignored in schema at path "${p}"`}}function R(x){let k=x instanceof RegExp?(0,t.regexpCode)(x):f.code.formats?(0,t._)`${f.code.formats}${(0,t.getProperty)(u)}`:void 0,P=o.scopeValue("formats",{key:u,ref:x,code:k});return typeof x=="object"&&!(x instanceof RegExp)?[x.type||"string",x.validate,(0,t._)`${P}.validate`]:["string",x,P]}function A(){if(typeof b=="object"&&!(b instanceof RegExp)&&b.async){if(!h.$async)throw new Error("async format in sync schema");return(0,t._)`await ${_}(${a})`}return typeof E=="function"?(0,t._)`${_}(${a})`:(0,t._)`${_}.test(${a})`}}}};e.default=r}),orr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=srr(),n=[t.default];e.default=n}),arr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],e.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),crr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Nnr(),n=Gnr(),r=irr(),i=orr(),s=arr(),o=[t.default,n.default,(0,r.default)(),i.default,s.metadataVocabulary,s.contentVocabulary];e.default=o}),urr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(n){n.Tag="tag",n.Mapping="mapping"})(t||(e.DiscrError=t={}))}),lrr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=_n(),n=urr(),r=PTe(),i=K5(),s=ur(),o={message:({params:{discrError:c,tagName:u}})=>c===n.DiscrError.Tag?`tag "${u}" must be string`:`value of tag "${u}" must be in oneOf`,params:({params:{discrError:c,tag:u,tagName:l}})=>(0,t._)`{error: ${c}, tag: ${l}, tagValue: ${u}}`},a={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(c){let{gen:u,data:l,schema:d,parentSchema:f,it:p}=c,{oneOf:h}=f;if(!p.opts.discriminator)throw new Error("discriminator: requires discriminator option");let m=d.propertyName;if(typeof m!="string")throw new Error("discriminator: requires propertyName");if(d.mapping)throw new Error("discriminator: mapping is not supported");if(!h)throw new Error("discriminator: requires oneOf keyword");let g=u.let("valid",!1),y=u.const("tag",(0,t._)`${l}${(0,t.getProperty)(m)}`);u.if((0,t._)`typeof ${y} == "string"`,()=>b(),()=>c.error(!1,{discrError:n.DiscrError.Tag,tag:y,tagName:m})),c.ok(g);function b(){let _=E();u.if(!1);for(let T in _)u.elseIf((0,t._)`${y} === ${T}`),u.assign(g,S(_[T]));u.else(),c.error(!1,{discrError:n.DiscrError.Mapping,tag:y,tagName:m}),u.endIf()}function S(_){let T=u.name("valid"),R=c.subschema({keyword:"oneOf",schemaProp:_},T);return c.mergeEvaluated(R,t.Name),T}function E(){var _;let T={},R=x(f),A=!0;for(let N=0;N{t.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),yOt=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var n=xnr(),r=crr(),i=lrr(),s=drr(),o=["/properties"],a="http://json-schema.org/draft-07/schema";class c extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(h=>this.addVocabulary(h)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let h=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(h,a,!1),this.refs["http://json-schema.org/schema"]=a}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(a)?a:void 0)}}e.Ajv=c,t.exports=e=c,t.exports.Ajv=c,Object.defineProperty(e,"__esModule",{value:!0}),e.default=c;var u=W5();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var l=_n();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return l.CodeGen}});var d=OTe();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=K5();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})}),frr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(P,N){return{validate:P,compare:N}}e.fullFormats={date:t(s,o),time:t(c(!0),u),"date-time":t(f(!0),p),"iso-time":t(c(),l),"iso-date-time":t(f(),h),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:y,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:k,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:S,int32:{type:"number",validate:T},int64:{type:"number",validate:R},float:{type:"number",validate:A},double:{type:"number",validate:A},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,u),"date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,p),"iso-time":t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"iso-date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,h),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},e.formatNames=Object.keys(e.fullFormats);function n(P){return P%4===0&&(P%100!==0||P%400===0)}var r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s(P){let N=r.exec(P);if(!N)return!1;let C=+N[1],L=+N[2],G=+N[3];return L>=1&&L<=12&&G>=1&&G<=(L===2&&n(C)?29:i[L])}function o(P,N){if(P&&N)return P>N?1:P23||F>59||P&&!q)return!1;if(G<=23&&W<=59&&$<60)return!0;let V=W-F*Q,U=G-B*Q-(V<0?1:0);return(U===23||U===-1)&&(V===59||V===-1)&&$<61}}function u(P,N){if(!(P&&N))return;let C=new Date("2020-01-01T"+P).valueOf(),L=new Date("2020-01-01T"+N).valueOf();if(C&&L)return C-L}function l(P,N){if(!(P&&N))return;let C=a.exec(P),L=a.exec(N);if(C&&L)return P=C[1]+C[2]+C[3],N=L[1]+L[2]+L[3],P>N?1:P=E}function R(P){return Number.isInteger(P)}function A(){return!0}var x=/[^\\]\\Z/;function k(P){if(x.test(P))return!1;try{return new RegExp(P),!0}catch{return!1}}}),prr=Xe(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=yOt(),n=_n(),r=n.operators,i={formatMaximum:{okStr:"<=",ok:r.LTE,fail:r.GT},formatMinimum:{okStr:">=",ok:r.GTE,fail:r.LT},formatExclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},formatExclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},s={message:({keyword:a,schemaCode:c})=>(0,n.str)`should be ${i[a].okStr} ${c}`,params:({keyword:a,schemaCode:c})=>(0,n._)`{comparison: ${i[a].okStr}, limit: ${c}}`};e.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:c,data:u,schemaCode:l,keyword:d,it:f}=a,{opts:p,self:h}=f;if(!p.validateFormats)return;let m=new t.KeywordCxt(f,h.RULES.all.format.definition,"format");m.$data?g():y();function g(){let S=c.scopeValue("formats",{ref:h.formats,code:p.code.formats}),E=c.const("fmt",(0,n._)`${S}[${m.schemaCode}]`);a.fail$data((0,n.or)((0,n._)`typeof ${E} != "object"`,(0,n._)`${E} instanceof RegExp`,(0,n._)`typeof ${E}.compare != "function"`,b(E)))}function y(){let S=m.schema,E=h.formats[S];if(!E||E===!0)return;if(typeof E!="object"||E instanceof RegExp||typeof E.compare!="function")throw new Error(`"${d}": format "${S}" does not define "compare" function`);let _=c.scopeValue("formats",{key:S,ref:E,code:p.code.formats?(0,n._)`${p.code.formats}${(0,n.getProperty)(S)}`:void 0});a.fail$data(b(_))}function b(S){return(0,n._)`${S}.compare(${u}, ${l}) ${i[d].fail} 0`}},dependencies:["format"]};var o=a=>(a.addKeyword(e.formatLimitDefinition),a);e.default=o}),hrr=Xe((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=frr(),r=prr(),i=_n(),s=new i.Name("fullFormats"),o=new i.Name("fastFormats"),a=(u,l={keywords:!0})=>{if(Array.isArray(l))return c(u,l,n.fullFormats,s),u;let[d,f]=l.mode==="fast"?[n.fastFormats,o]:[n.fullFormats,s],p=l.formats||n.formatNames;return c(u,p,d,f),l.keywords&&(0,r.default)(u),u};a.get=(u,l="full")=>{let f=(l==="fast"?n.fastFormats:n.fullFormats)[u];if(!f)throw new Error(`Unknown format "${u}"`);return f};function c(u,l,d,f){var p,h;(p=(h=u.opts.code).formats)!==null&&p!==void 0||(h.formats=(0,i._)`require("ajv-formats/dist/formats").${f}`);for(let m of l)u.addFormat(m,d[m])}t.exports=e=a,Object.defineProperty(e,"__esModule",{value:!0}),e.default=a}),yrr=50;_rr=typeof global=="object"&&global&&global.Object===Object&&global,Trr=_rr,vrr=typeof self=="object"&&self&&self.Object===Object&&self,Rrr=Trr||vrr||Function("return this")(),MTe=Rrr,Arr=MTe.Symbol,I5=Arr,SOt=Object.prototype,wrr=SOt.hasOwnProperty,krr=SOt.toString,EU=I5?I5.toStringTag:void 0;xrr=Irr,Orr=Object.prototype,Prr=Orr.toString;Crr=Nrr,Mrr="[object Null]",Drr="[object Undefined]",Ext=I5?I5.toStringTag:void 0;Urr=Lrr;bOt=Frr,jrr="[object AsyncFunction]",Hrr="[object Function]",qrr="[object GeneratorFunction]",Brr="[object Proxy]";Grr=zrr,Vrr=MTe["__core-js_shared__"],z_e=Vrr,_xt=(function(){var e=/[^.]+$/.exec(z_e&&z_e.keys&&z_e.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();Krr=Wrr,Yrr=Function.prototype,Zrr=Yrr.toString;Xrr=Jrr,Qrr=/[\\^$.*+?()[\]{}|]/g,$rr=/^\[object .+?Constructor\]$/,eir=Function.prototype,tir=Object.prototype,nir=eir.toString,rir=tir.hasOwnProperty,iir=RegExp("^"+nir.call(rir).replace(Qrr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");oir=sir;cir=air;EOt=uir,lir=EOt(Object,"create"),IU=lir;fir=dir;hir=pir,mir="__lodash_hash_undefined__",gir=Object.prototype,yir=gir.hasOwnProperty;bir=Sir,Eir=Object.prototype,_ir=Eir.hasOwnProperty;vir=Tir,Rir="__lodash_hash_undefined__";wir=Air;Kx.prototype.clear=fir;Kx.prototype.delete=hir;Kx.prototype.get=bir;Kx.prototype.has=vir;Kx.prototype.set=wir;Txt=Kx;Iir=kir;Oir=xir;Y5=Pir,Nir=Array.prototype,Cir=Nir.splice;Dir=Mir;Uir=Lir;jir=Fir;qir=Hir;Yx.prototype.clear=Iir;Yx.prototype.delete=Dir;Yx.prototype.get=Uir;Yx.prototype.has=jir;Yx.prototype.set=qir;Bir=Yx,zir=EOt(MTe,"Map"),Gir=zir;Wir=Vir;Yir=Kir;Z5=Zir;Xir=Jir;$ir=Qir;tsr=esr;rsr=nsr;Zx.prototype.clear=Wir;Zx.prototype.delete=Xir;Zx.prototype.get=$ir;Zx.prototype.has=tsr;Zx.prototype.set=rsr;_Ot=Zx,isr="Expected a function";DTe.Cache=_Ot;BU=DTe,vxt=2e3;osr=BU(e=>{if(!e||e.trim()==="")return null;let t=e.split(",").map(s=>s.trim()).filter(Boolean);if(t.length===0)return null;let n=t.some(s=>s.startsWith("!")),r=t.some(s=>!s.startsWith("!"));if(n&&r)return null;let i=t.map(s=>s.replace(/^!/,"").toLowerCase());return{include:n?[]:i,exclude:n?i:[],isExclusive:n}});G_e=15e4,E5=3e4;msr=ROt("BASH_MAX_OUTPUT_LENGTH"),LPi=ROt("TASK_MAX_OUTPUT_LENGTH"),gsr={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:e=>{if(!e)return{effective:32e3,status:"valid"};let r=parseInt(e,10);return isNaN(r)||r<=0?{effective:32e3,status:"invalid",message:`Invalid value "${e}" (using default: 32000)`}:r>64e3?{effective:64e3,status:"capped",message:`Capped from ${r} to 64000`}:{effective:r,status:"valid"}}};Ssr=ysr();Axt=new Set;AOt=1/0;kOt=(e,t)=>{let n=typeof e=="string"?e.length:0;return wOt(`JSON.parse(${n} chars)`,()=>JSON.parse(e,t))},vsr=BU(()=>Rxt(process.env.DEBUG)||Rxt(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||IOt()||process.argv.some(e=>e.startsWith("--debug="))),Rsr=BU(()=>{let e=process.argv.find(n=>n.startsWith("--debug="));if(!e)return null;let t=e.substring(8);return osr(t)}),IOt=BU(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));wsr=!1,_5=null;Isr=BU(()=>{if(process.argv[2]!=="--ripgrep")try{let e=xOt(),t=$_e(e),n=vOt(t,"latest");if(Xg().existsSync(t)||Xg().mkdirSync(t),Xg().existsSync(n))try{Xg().unlinkSync(n)}catch{}Xg().symlinkSync(e,n)}catch{}});xsr={cwd(){return process.cwd()},existsSync(e){return fo(`existsSync(${e})`,()=>Zt.existsSync(e))},async stat(e){return Err(e)},statSync(e){return fo(`statSync(${e})`,()=>Zt.statSync(e))},lstatSync(e){return fo(`lstatSync(${e})`,()=>Zt.lstatSync(e))},readFileSync(e,t){return fo(`readFileSync(${e})`,()=>Zt.readFileSync(e,{encoding:t.encoding}))},readFileBytesSync(e){return fo(`readFileBytesSync(${e})`,()=>Zt.readFileSync(e))},readSync(e,t){return fo(`readSync(${e}, ${t.length} bytes)`,()=>{let n;try{n=Zt.openSync(e,"r");let r=Buffer.alloc(t.length),i=Zt.readSync(n,r,0,t.length,0);return{buffer:r,bytesRead:i}}finally{n&&Zt.closeSync(n)}})},appendFileSync(e,t,n){return fo(`appendFileSync(${e}, ${t.length} chars)`,()=>{if(!Zt.existsSync(e)&&n?.mode!==void 0){let r=Zt.openSync(e,"a",n.mode);try{Zt.appendFileSync(r,t)}finally{Zt.closeSync(r)}}else Zt.appendFileSync(e,t)})},copyFileSync(e,t){return fo(`copyFileSync(${e} \u2192 ${t})`,()=>Zt.copyFileSync(e,t))},unlinkSync(e){return fo(`unlinkSync(${e})`,()=>Zt.unlinkSync(e))},renameSync(e,t){return fo(`renameSync(${e} \u2192 ${t})`,()=>Zt.renameSync(e,t))},linkSync(e,t){return fo(`linkSync(${e} \u2192 ${t})`,()=>Zt.linkSync(e,t))},symlinkSync(e,t){return fo(`symlinkSync(${e} \u2192 ${t})`,()=>Zt.symlinkSync(e,t))},readlinkSync(e){return fo(`readlinkSync(${e})`,()=>Zt.readlinkSync(e))},realpathSync(e){return fo(`realpathSync(${e})`,()=>Zt.realpathSync(e))},mkdirSync(e,t){return fo(`mkdirSync(${e})`,()=>{if(!Zt.existsSync(e)){let n={recursive:!0};t?.mode!==void 0&&(n.mode=t.mode),Zt.mkdirSync(e,n)}})},readdirSync(e){return fo(`readdirSync(${e})`,()=>Zt.readdirSync(e,{withFileTypes:!0}))},readdirStringSync(e){return fo(`readdirStringSync(${e})`,()=>Zt.readdirSync(e))},isDirEmptySync(e){return fo(`isDirEmptySync(${e})`,()=>this.readdirSync(e).length===0)},rmdirSync(e){return fo(`rmdirSync(${e})`,()=>Zt.rmdirSync(e))},rmSync(e,t){return fo(`rmSync(${e})`,()=>Zt.rmSync(e,t))},createWriteStream(e){return Zt.createWriteStream(e)}},Osr=xsr;Psr=["PreToolUse","PostToolUse","PostToolUseFailure","Notification","UserPromptSubmit","SessionStart","SessionEnd","Stop","SubagentStart","SubagentStop","PreCompact","PermissionRequest"],Nsr=["clear","logout","prompt_input_exit","other","bypass_permissions_disabled"],tE=class extends Error{};T5=null,kxt=!1;x5=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(t){this.options=t,this.abortController=t.abortController||CTe(),this.initialize()}getDefaultExecutable(){return LTe()?"bun":"node"}spawnLocalProcess(t){let{command:n,args:r,cwd:i,env:s,signal:o}=t,a=s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr?"pipe":"ignore",c=Srr(n,r,{cwd:i,stdio:["pipe","pipe",a],signal:o,env:s,windowsHide:!0});return(s.DEBUG_CLAUDE_AGENT_SDK||this.options.stderr)&&c.stderr.on("data",l=>{let d=l.toString();Kv(d),this.options.stderr&&this.options.stderr(d)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:t=[],betas:n,cwd:r,executable:i=this.getDefaultExecutable(),executableArgs:s=[],extraArgs:o={},pathToClaudeCodeExecutable:a,env:c={...process.env},maxThinkingTokens:u,maxTurns:l,maxBudgetUsd:d,model:f,fallbackModel:p,jsonSchema:h,permissionMode:m,allowDangerouslySkipPermissions:g,permissionPromptToolName:y,continueConversation:b,resume:S,settingSources:E,allowedTools:_=[],disallowedTools:T=[],tools:R,mcpServers:A,strictMcpConfig:x,canUseTool:k,includePartialMessages:P,plugins:N,sandbox:C}=this.options,L=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u!==void 0&&L.push("--max-thinking-tokens",u.toString()),l&&L.push("--max-turns",l.toString()),d!==void 0&&L.push("--max-budget-usd",d.toString()),f&&L.push("--model",f),n&&n.length>0&&L.push("--betas",n.join(",")),h&&L.push("--json-schema",im(h)),c.DEBUG_CLAUDE_AGENT_SDK&&L.push("--debug-to-stderr"),k){if(y)throw new Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");L.push("--permission-prompt-tool","stdio")}else y&&L.push("--permission-prompt-tool",y);if(b&&L.push("--continue"),S&&L.push("--resume",S),_.length>0&&L.push("--allowedTools",_.join(",")),T.length>0&&L.push("--disallowedTools",T.join(",")),R!==void 0&&(Array.isArray(R)?R.length===0?L.push("--tools",""):L.push("--tools",R.join(",")):L.push("--tools","default")),A&&Object.keys(A).length>0&&L.push("--mcp-config",im({mcpServers:A})),E&&L.push("--setting-sources",E.join(",")),x&&L.push("--strict-mcp-config"),m&&L.push("--permission-mode",m),g&&L.push("--allow-dangerously-skip-permissions"),p){if(f&&p===f)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");L.push("--fallback-model",p)}P&&L.push("--include-partial-messages");for(let F of t)L.push("--add-dir",F);if(N&&N.length>0)for(let F of N)if(F.type==="local")L.push("--plugin-dir",F.path);else throw new Error(`Unsupported plugin type: ${F.type}`);this.options.forkSession&&L.push("--fork-session"),this.options.resumeSessionAt&&L.push("--resume-session-at",this.options.resumeSessionAt),this.options.persistSession===!1&&L.push("--no-session-persistence");let G=Fsr(o??{},C);for(let[F,V]of Object.entries(G))V===null?L.push(`--${F}`):L.push(`--${F}`,V);c.CLAUDE_CODE_ENTRYPOINT||(c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete c.NODE_OPTIONS,c.DEBUG_CLAUDE_AGENT_SDK?c.DEBUG="1":delete c.DEBUG;let W=jsr(a),$=W?a:i,q=W?[...s,...L]:[...s,a,...L],Q={command:$,args:q,cwd:r,env:c,signal:this.abortController.signal};if(this.options.spawnClaudeCodeProcess)Kv(`Spawning Claude Code (custom): ${$} ${q.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(Q);else{if(!Xg().existsSync(a)){let V=W?`Claude Code native binary not found at ${a}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${a}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(V)}Kv(`Spawning Claude Code: ${$} ${q.join(" ")}`),this.process=this.spawnLocalProcess(Q)}this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let B=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=B,this.abortHandler=B,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",F=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new tE("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${F.message}`),Kv(this.exitError.message))}),this.process.on("exit",(F,V)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new tE("Claude Code process aborted by user");else{let U=this.getProcessExitError(F,V);U&&(this.exitError=U,Kv(U.message))}}),this.ready=!0}catch(t){throw this.ready=!1,t}}getProcessExitError(t,n){if(t!==0&&t!==null)return new Error(`Claude Code process exited with code ${t}`);if(n)return new Error(`Claude Code process terminated by signal ${n}`)}write(t){if(this.abortController.signal.aborted)throw new tE("Operation aborted");if(!this.ready||!this.processStdin)throw new Error("ProcessTransport is not ready for writing");if(this.process?.killed||this.process?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Kv(`[ProcessTransport] Writing to stdin: ${t.substring(0,100)}`);try{this.processStdin.write(t)||Kv("[ProcessTransport] Write buffer full, data queued")}catch(n){throw this.ready=!1,new Error(`Failed to write to process stdin: ${n.message}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:t}of this.exitListeners)this.process?.off("exit",t);this.exitListeners=[],this.process&&!this.process.killed&&(this.process.kill("SIGTERM"),setTimeout(()=>{this.process&&!this.process.killed&&this.process.kill("SIGKILL")},5e3)),this.ready=!1,this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw new Error("ProcessTransport output stream not available");let t=brr({input:this.processStdout});try{for await(let n of t)n.trim()&&(yield kOt(n));await this.waitForExit()}catch(n){throw n}finally{t.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(t){if(!this.process)return()=>{};let n=(r,i)=>{let s=this.getProcessExitError(r,i);t(s)};return this.process.on("exit",n),this.exitListeners.push({callback:t,handler:n}),()=>{this.process&&this.process.off("exit",n);let r=this.exitListeners.findIndex(i=>i.handler===n);r!==-1&&this.exitListeners.splice(r,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((t,n)=>{let r=(s,o)=>{if(this.abortController.signal.aborted){n(new tE("Operation aborted"));return}let a=this.getProcessExitError(s,o);a?n(a):t()};this.process.once("exit",r);let i=s=>{this.process.off("exit",r),n(s)};this.process.once("error",i),this.process.once("exit",()=>{this.process.off("error",i)})})}};O5=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(t){this.returned=t}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((t,n)=>{this.readResolve=t,this.readReject=n})}enqueue(t){if(this.readResolve){let n=this.readResolve;this.readResolve=void 0,this.readReject=void 0,n({done:!1,value:t})}else this.queue.push(t)}done(){if(this.isDone=!0,this.readResolve){let t=this.readResolve;this.readResolve=void 0,this.readReject=void 0,t({done:!0,value:void 0})}}error(t){if(this.hasError=t,this.readReject){let n=this.readReject;this.readResolve=void 0,this.readReject=void 0,n(t)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},eTe=class{sendMcpMessage;isClosed=!1;constructor(t){this.sendMcpMessage=t}onclose;onerror;onmessage;async start(){}async send(t){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(t)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},P5=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new O5;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0}constructor(t,n,r,i,s,o=new Map,a,c){this.transport=t,this.isSingleUserTurn=n,this.canUseTool=r,this.hooks=i,this.abortController=s,this.jsonSchema=a,this.initConfig=c;for(let[u,l]of o)this.connectSdkMcpServer(u,l);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(t){this.inputStream.error(t)}cleanup(t){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),this.cancelControllers.clear(),this.hookCallbacks.clear();for(let n of this.sdkMcpTransports.values())try{n.close()}catch{}this.sdkMcpTransports.clear(),t?this.inputStream.error(t):this.inputStream.done()}catch{}}}next(...[t]){return this.sdkMessages.next(t)}return(t){return this.sdkMessages.return(t)}throw(t){return this.sdkMessages.throw(t)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let t of this.transport.readMessages()){if(t.type==="control_response"){let n=this.pendingControlResponses.get(t.response.request_id);n&&n(t.response);continue}else if(t.type==="control_request"){this.handleControlRequest(t);continue}else if(t.type==="control_cancel_request"){this.handleControlCancelRequest(t);continue}else if(t.type==="keep_alive")continue;t.type==="result"&&(this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Zg("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())),this.inputStream.enqueue(t)}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(t){this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.error(t),this.cleanup(t)}}async handleControlRequest(t){let n=new AbortController;this.cancelControllers.set(t.request_id,n);try{let r=await this.processControlRequest(t,n.signal),i={type:"control_response",response:{subtype:"success",request_id:t.request_id,response:r}};await Promise.resolve(this.transport.write(im(i)+` `))}catch(r){let i={type:"control_response",response:{subtype:"error",request_id:t.request_id,error:r.message||String(r)}};await Promise.resolve(this.transport.write(im(i)+` `))}finally{this.cancelControllers.delete(t.request_id)}}handleControlCancelRequest(t){let n=this.cancelControllers.get(t.request_id);n&&(n.abort(),this.cancelControllers.delete(t.request_id))}async processControlRequest(t,n){if(t.request.subtype==="can_use_tool"){if(!this.canUseTool)throw new Error("canUseTool callback is not provided.");return{...await this.canUseTool(t.request.tool_name,t.request.input,{signal:n,suggestions:t.request.permission_suggestions,blockedPath:t.request.blocked_path,decisionReason:t.request.decision_reason,toolUseID:t.request.tool_use_id,agentID:t.request.agent_id}),toolUseID:t.request.tool_use_id}}else{if(t.request.subtype==="hook_callback")return await this.handleHookCallbacks(t.request.callback_id,t.request.input,t.request.tool_use_id,n);if(t.request.subtype==="mcp_message"){let r=t.request,i=this.sdkMcpTransports.get(r.server_name);if(!i)throw new Error(`SDK MCP server not found: ${r.server_name}`);return"method"in r.message&&"id"in r.message&&r.message.id!==null?{mcp_response:await this.handleMcpControlRequest(r.server_name,r,i)}:(i.onmessage&&i.onmessage(r.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}}throw new Error("Unsupported control request subtype: "+t.request.subtype)}async*readSdkMessages(){for await(let t of this.inputStream)yield t}async initialize(){let t;if(this.hooks){t={};for(let[s,o]of Object.entries(this.hooks))o.length>0&&(t[s]=o.map(a=>{let c=[];for(let u of a.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,u),c.push(l)}return{matcher:a.matcher,hookCallbackIds:c,timeout:a.timeout}}))}let n=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,r={subtype:"initialize",hooks:t,sdkMcpServers:n,jsonSchema:this.jsonSchema,systemPrompt:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,agents:this.initConfig?.agents};return(await this.request(r)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(t){await this.request({subtype:"set_permission_mode",mode:t})}async setModel(t){await this.request({subtype:"set_model",model:t})}async setMaxThinkingTokens(t){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:t})}async rewindFiles(t,n){return(await this.request({subtype:"rewind_files",user_message_id:t,dry_run:n?.dryRun})).response}async processPendingPermissionRequests(t){for(let n of t)n.request.subtype==="can_use_tool"&&this.handleControlRequest(n).catch(()=>{})}request(t){let n=Math.random().toString(36).substring(2,15),r={request_id:n,type:"control_request",request:t};return new Promise((i,s)=>{this.pendingControlResponses.set(n,o=>{o.subtype==="success"?i(o):(s(new Error(o.error)),o.pending_permission_requests&&this.processPendingPermissionRequests(o.pending_permission_requests))}),Promise.resolve(this.transport.write(im(r)+` `))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async setMcpServers(t){let n={},r={};for(let[c,u]of Object.entries(t))u.type==="sdk"&&"instance"in u?n[c]=u.instance:r[c]=u;let i=new Set(this.sdkMcpServerInstances.keys()),s=new Set(Object.keys(n));for(let c of i)s.has(c)||await this.disconnectSdkMcpServer(c);for(let[c,u]of Object.entries(n))i.has(c)||this.connectSdkMcpServer(c,u);let o={};for(let c of Object.keys(n))o[c]={type:"sdk",name:c};return(await this.request({subtype:"mcp_set_servers",servers:{...r,...o}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(t){Zg("[Query.streamInput] Starting to process input stream");try{let n=0;for await(let r of t){if(n++,Zg(`[Query.streamInput] Processing message ${n}: ${r.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(im(r)+` -`))}Zg(`[Query.streamInput] Finished processing ${n} messages from input stream`),n>0&&this.hasBidirectionalNeeds()&&(Zg("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Zg("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(n){if(!(n instanceof tE))throw n}}waitForFirstResult(){return this.firstResultReceived?(Zg("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(t=>{if(this.abortController?.signal.aborted){t();return}this.abortController?.signal.addEventListener("abort",()=>t(),{once:!0}),this.firstResultReceivedResolve=t})}handleHookCallbacks(t,n,r,i){let s=this.hookCallbacks.get(t);if(!s)throw new Error(`No hook callback found for ID: ${t}`);return s(n,r,{signal:i})}connectSdkMcpServer(t,n){let r=new $_e(i=>this.sendMcpServerMessageToCli(t,i));this.sdkMcpTransports.set(t,r),this.sdkMcpServerInstances.set(t,n),n.connect(r)}async disconnectSdkMcpServer(t){let n=this.sdkMcpTransports.get(t);n&&(await n.close(),this.sdkMcpTransports.delete(t)),this.sdkMcpServerInstances.delete(t)}sendMcpServerMessageToCli(t,n){if("id"in n&&n.id!==null&&n.id!==void 0){let i=`${t}:${n.id}`,s=this.pendingMcpResponses.get(i);if(s){s.resolve(n),this.pendingMcpResponses.delete(i);return}}let r={type:"control_request",request_id:Hsr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(im(r)+` -`)}handleMcpControlRequest(t,n,r){let i="id"in n.message?n.message.id:null,s=`${t}:${i}`;return new Promise((o,a)=>{let c=()=>{this.pendingMcpResponses.delete(s)},u=d=>{c(),o(d)},l=d=>{c(),a(d)};if(this.pendingMcpResponses.set(s,{resolve:u,reject:l}),r.onmessage)r.onmessage(n.message);else{c(),a(new Error("No message handler registered"));return}})}},P5=class{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw new Error("Session ID not available until after receiving messages");return this._sessionId}constructor(t){t.resume&&(this._sessionId=t.resume),this.inputStream=new x5;let n=t.pathToClaudeCodeExecutable;if(!n){let s=qsr(import.meta.url),o=Ixt(s,"..");n=Ixt(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=NTe();let i=new I5({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(DTe()?"bun":"node"),executableArgs:t.executableArgs??[],extraArgs:{},maxThinkingTokens:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:t.model,fallbackModel:void 0,permissionMode:"default",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:t.resume,settingSources:[],allowedTools:[],disallowedTools:[],mcpServers:{},strictMcpConfig:!1,canUseTool:!1,hooks:!1,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new O5(i,!1,void 0,void 0,this.abortController,new Map),this.query.streamInput(this.inputStream)}async send(t){if(this.closed)throw new Error("Cannot send to closed session");let n=typeof t=="string"?{type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null}:t;this.inputStream.enqueue(n)}async*stream(){for(this.queryIterator||(this.queryIterator=this.query[Symbol.asyncIterator]());;){let{value:t,done:n}=await this.queryIterator.next();if(n||(t.type==="system"&&t.subtype==="init"&&(this._sessionId=t.session_id),yield t,t.type==="result"))return}}close(){this.closed||(this.closed=!0,this.inputStream.done(),this.abortController.abort())}async[Symbol.asyncDispose](){this.close()}};(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},e.getValidEnumValues=i=>{let s=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},e.find=(i,s)=>{for(let o of i)if(s(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ir||(ir={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(xxt||(xxt={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),eE=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},xe=ir.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Zd=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Zd.create=e=>new Zd(e);zsr=(e,t)=>{let n;switch(e.code){case xe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case xe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case xe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case xe.invalid_union:n="Invalid input";break;case xe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case xe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case xe.invalid_arguments:n="Invalid function arguments";break;case xe.invalid_return_type:n="Invalid function return type";break;case xe.invalid_date:n="Invalid date";break;case xe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case xe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case xe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case xe.custom:n="Invalid input";break;case xe.invalid_intersection_types:n="Intersection results could not be merged";break;case xe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case xe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},kU=zsr,Gsr=kU;tTe=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}};iu=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Vt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Vt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Vt=Object.freeze({status:"aborted"}),_U=e=>({status:"dirty",value:e}),Xu=e=>({status:"valid",value:e}),Oxt=e=>e.status==="aborted",Pxt=e=>e.status==="dirty",Nx=e=>e.status==="valid",N5=e=>typeof Promise<"u"&&e instanceof Promise;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(lt||(lt={}));Jd=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Nxt=(e,t)=>{if(Nx(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Zd(e.common.issues);return this._error=n,this._error}}};Tn=class{get description(){return this._def.description}_getType(t){return eE(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:eE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new iu,ctx:{common:t.parent.common,data:t.data,parsedType:eE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(N5(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:eE(t)},i=this._parseSync({data:t,path:r.path,parent:r});return Nxt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:eE(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Nx(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>Nx(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:eE(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(N5(i)?i:Promise.resolve(i));return Nxt(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:xe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new gp({schema:this,typeName:De.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return mp.create(this,this._def)}nullable(){return $g.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return iE.create(this)}promise(){return Zv.create(this,this._def)}or(t){return Lx.create([this,t],this._def)}and(t){return Ux.create(this,t,this._def)}transform(t){return new gp({...ln(this._def),schema:this,typeName:De.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Bx({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new C5({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new zx({...ln(this._def),innerType:this,catchValue:n,typeName:De.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return M5.create(this,t)}readonly(){return Gx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Vsr=/^c[^\s-]{8,}$/i,Wsr=/^[0-9a-z]+$/,Ksr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ysr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Zsr=/^[a-z0-9_-]{21}$/i,Jsr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Xsr=/^[-+]?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)?)??$/,Qsr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,$sr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",eor=/^(?:(?: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])$/,tor=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,nor=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ror=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ior=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,sor=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,POt="((\\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])))",oor=new RegExp(`^${POt}$`);Cx=class e extends Tn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==nt.string){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.string,received:s.parsedType}),Vt}let r=new iu,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),Ye(i,{code:xe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:xe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Cx({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});IU=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==nt.number){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.number,received:s.parsedType}),Vt}let r,i=new iu;for(let s of this._def.checks)s.kind==="int"?ir.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?por(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_finite,message:s.message}),i.dirty()):ir.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:lt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:lt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:lt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:lt.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&ir.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew IU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});xU=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==nt.bigint)return this._getInvalidInput(t);let r,i=new iu;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ir.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:xe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew xU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});OU=class extends Tn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==nt.boolean){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Xu(t.data)}};OU.create=e=>new OU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});PU=class e extends Tn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==nt.date){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_date}),Vt}let r=new iu,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),Ye(i,{code:xe.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):ir.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:lt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:lt.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew PU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});NU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Xu(t.data)}};NU.create=e=>new NU({typeName:De.ZodSymbol,...ln(e)});Mx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Xu(t.data)}};Mx.create=e=>new Mx({typeName:De.ZodUndefined,...ln(e)});Dx=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Xu(t.data)}};Dx.create=e=>new Dx({typeName:De.ZodNull,...ln(e)});CU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Xu(t.data)}};CU.create=e=>new CU({typeName:De.ZodAny,...ln(e)});rE=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Xu(t.data)}};rE.create=e=>new rE({typeName:De.ZodUnknown,...ln(e)});om=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:xe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};om.create=e=>new om({typeName:De.ZodNever,...ln(e)});MU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Xu(t.data)}};MU.create=e=>new MU({typeName:De.ZodVoid,...ln(e)});iE=class e extends Tn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==nt.array)return Ye(n,{code:xe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ye(n,{code:xe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new Jd(n,o,n.path,a)))).then(o=>iu.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new Jd(n,o,n.path,a)));return iu.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:lt.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:lt.toString(n)}})}nonempty(t){return this.min(1,t)}};iE.create=(e,t)=>new iE({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.ZodArray,...ln(t)});Fl=class e extends Tn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=ir.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==nt.object){let u=this._getOrReturnCtx(t);return Ye(u,{code:xe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof om&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Jd(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof om){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(Ye(i,{code:xe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Jd(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>iu.mergeObjectSync(r,u)):iu.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return lt.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:lt.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:De.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of ir.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of ir.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return xx(this)}partial(t){let n={};for(let r of ir.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of ir.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof mp;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return COt(ir.objectKeys(this.shape))}};Fl.create=(e,t)=>new Fl({shape:()=>e,unknownKeys:"strip",catchall:om.create(),typeName:De.ZodObject,...ln(t)});Fl.strictCreate=(e,t)=>new Fl({shape:()=>e,unknownKeys:"strict",catchall:om.create(),typeName:De.ZodObject,...ln(t)});Fl.lazycreate=(e,t)=>new Fl({shape:e,unknownKeys:"strip",catchall:om.create(),typeName:De.ZodObject,...ln(t)});Lx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Zd(a.ctx.common.issues));return Ye(n,{code:xe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Zd(c));return Ye(n,{code:xe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Lx.create=(e,t)=>new Lx({options:e,typeName:De.ZodUnion,...ln(t)});Yg=e=>e instanceof Fx?Yg(e.schema):e instanceof gp?Yg(e.innerType()):e instanceof jx?[e.value]:e instanceof Hx?e.options:e instanceof qx?ir.objectValues(e.enum):e instanceof Bx?Yg(e._def.innerType):e instanceof Mx?[void 0]:e instanceof Dx?[null]:e instanceof mp?[void 0,...Yg(e.unwrap())]:e instanceof $g?[null,...Yg(e.unwrap())]:e instanceof C5||e instanceof Gx?Yg(e.unwrap()):e instanceof zx?Yg(e._def.innerType):[],nTe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ye(n,{code:xe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ye(n,{code:xe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=Yg(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:De.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...ln(r)})}};Ux=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Oxt(s)||Oxt(o))return Vt;let a=rTe(s.value,o.value);return a.valid?((Pxt(s)||Pxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ye(r,{code:xe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Ux.create=(e,t,n)=>new Ux({left:e,right:t,typeName:De.ZodIntersection,...ln(n)});Qg=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.array)return Ye(r,{code:xe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ye(r,{code:xe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Jd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>iu.mergeArray(n,o)):iu.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Qg.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Qg({items:e,typeName:De.ZodTuple,rest:null,...ln(t)})};iTe=class e extends Tn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.object)return Ye(r,{code:xe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new Jd(r,a,r.path,a)),value:o._parse(new Jd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?iu.mergeObjectAsync(n,i):iu.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Tn?new e({keyType:t,valueType:n,typeName:De.ZodRecord,...ln(r)}):new e({keyType:Cx.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},DU=class extends Tn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.map)return Ye(r,{code:xe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new Jd(r,a,r.path,[u,"key"])),value:s._parse(new Jd(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Vt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Vt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};DU.create=(e,t,n)=>new DU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});LU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ye(r,{code:xe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ye(r,{code:xe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new Jd(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:lt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};LU.create=(e,t)=>new LU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});sTe=class e extends Tn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.function)return Ye(n,{code:xe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return tTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,eTe(),kU].filter(u=>!!u),issueData:{code:xe.invalid_arguments,argumentsError:c}})}function i(a,c){return tTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,eTe(),kU].filter(u=>!!u),issueData:{code:xe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof Zv){let a=this;return Xu(async function(...c){let u=new Zd([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return Xu(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Zd([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Zd([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Qg.create(t).rest(rE.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Qg.create([]).rest(rE.create()),returns:n||rE.create(),typeName:De.ZodFunction,...ln(r)})}},Fx=class extends Tn{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Fx.create=(e,t)=>new Fx({getter:e,typeName:De.ZodLazy,...ln(t)});jx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ye(n,{received:n.data,code:xe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};jx.create=(e,t)=>new jx({value:e,typeName:De.ZodLiteral,...ln(t)});Hx=class e extends Tn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{expected:ir.joinValues(r),received:n.parsedType,code:xe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{received:n.data,code:xe.invalid_enum_value,options:r}),Vt}return Xu(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};Hx.create=COt;qx=class extends Tn{_parse(t){let n=ir.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==nt.string&&r.parsedType!==nt.number){let i=ir.objectValues(n);return Ye(r,{expected:ir.joinValues(i),received:r.parsedType,code:xe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(ir.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=ir.objectValues(n);return Ye(r,{received:r.data,code:xe.invalid_enum_value,options:i}),Vt}return Xu(t.data)}get enum(){return this._def.values}};qx.create=(e,t)=>new qx({values:e,typeName:De.ZodNativeEnum,...ln(t)});Zv=class extends Tn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.promise&&n.common.async===!1)return Ye(n,{code:xe.invalid_type,expected:nt.promise,received:n.parsedType}),Vt;let r=n.parsedType===nt.promise?n.data:Promise.resolve(n.data);return Xu(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Zv.create=(e,t)=>new Zv({type:e,typeName:De.ZodPromise,...ln(t)});gp=class extends Tn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===De.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{Ye(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Vt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Vt:c.status==="dirty"||n.value==="dirty"?_U(c.value):c});{if(n.value==="aborted")return Vt;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Vt:a.status==="dirty"||n.value==="dirty"?_U(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Vt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Vt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Nx(o))return Vt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>Nx(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Vt);ir.assertNever(i)}};gp.create=(e,t,n)=>new gp({schema:e,typeName:De.ZodEffects,effect:t,...ln(n)});gp.createWithPreprocess=(e,t,n)=>new gp({schema:t,effect:{type:"preprocess",transform:e},typeName:De.ZodEffects,...ln(n)});mp=class extends Tn{_parse(t){return this._getType(t)===nt.undefined?Xu(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};mp.create=(e,t)=>new mp({innerType:e,typeName:De.ZodOptional,...ln(t)});$g=class extends Tn{_parse(t){return this._getType(t)===nt.null?Xu(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};$g.create=(e,t)=>new $g({innerType:e,typeName:De.ZodNullable,...ln(t)});Bx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===nt.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Bx.create=(e,t)=>new Bx({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});zx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return N5(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};zx.create=(e,t)=>new zx({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});UU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};UU.create=e=>new UU({typeName:De.ZodNaN,...ln(e)});C5=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},M5=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Vt:s.status==="dirty"?(n.dirty(),_U(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Vt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:De.ZodPipeline})}},Gx=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Nx(i)&&(i.value=Object.freeze(i.value)),i);return N5(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Gx.create=(e,t)=>new Gx({innerType:e,typeName:De.ZodReadonly,...ln(t)});zPi={object:Fl.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(De||(De={}));GPi=Cx.create,VPi=IU.create,WPi=UU.create,KPi=xU.create,YPi=OU.create,ZPi=PU.create,JPi=NU.create,XPi=Mx.create,QPi=Dx.create,$Pi=CU.create,eNi=rE.create,tNi=om.create,nNi=MU.create,rNi=iE.create,hor=Fl.create,iNi=Fl.strictCreate,sNi=Lx.create,oNi=nTe.create,aNi=Ux.create,cNi=Qg.create,uNi=iTe.create,lNi=DU.create,dNi=LU.create,fNi=sTe.create,pNi=Fx.create,hNi=jx.create,mNi=Hx.create,gNi=qx.create,yNi=Zv.create,SNi=gp.create,bNi=mp.create,ENi=$g.create,_Ni=gp.createWithPreprocess,TNi=M5.create,vNi=Object.freeze({status:"aborted"});Jv=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},oTe={};Gr={};lOt(Gr,{unwrapMessage:()=>TU,stringifyPrimitive:()=>jTe,required:()=>Cor,randomString:()=>Tor,propertyKeyTypes:()=>UOt,promiseAllObject:()=>_or,primitiveTypes:()=>Aor,prefixIssues:()=>nE,pick:()=>Ior,partial:()=>Nor,optionalKeys:()=>FOt,omit:()=>xor,numKeys:()=>vor,nullish:()=>J5,normalizeParams:()=>Ht,merge:()=>Por,jsonStringifyReplacer:()=>MOt,joinValues:()=>aTe,issue:()=>HOt,isPlainObject:()=>jU,isObject:()=>FU,getSizableOrigin:()=>Mor,getParsedType:()=>Ror,getLengthableOrigin:()=>Q5,getEnumValues:()=>LTe,getElementAtPath:()=>Eor,floatSafeRemainder:()=>DOt,finalizeIssue:()=>ty,extend:()=>Oor,escapeRegex:()=>Zx,esc:()=>Ox,defineLazy:()=>ki,createTransparentProxy:()=>wor,clone:()=>ny,cleanRegex:()=>X5,cleanEnum:()=>Dor,captureStackTrace:()=>FTe,cached:()=>Z5,assignProp:()=>UTe,assertNotEqual:()=>gor,assertNever:()=>Sor,assertIs:()=>yor,assertEqual:()=>mor,assert:()=>bor,allowsEval:()=>LOt,aborted:()=>Px,NUMBER_FORMAT_RANGES:()=>jOt,Class:()=>cTe,BIGINT_FORMAT_RANGES:()=>kor});FTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};LOt=Z5(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Ror=e=>{let t=typeof e;switch(t){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":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},UOt=new Set(["string","number","symbol"]),Aor=new Set(["string","number","bigint","boolean","symbol","undefined"]);jOt={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},kor={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};cTe=class{constructor(...t){}},qOt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,MOt,2)},enumerable:!0})},BOt=ge("$ZodError",qOt),$5=ge("$ZodError",qOt,{Parent:Error});zOt=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new Jv;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw FTe(a,i?.callee),a}return o.value},For=zOt($5),GOt=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw FTe(a,i?.callee),a}return o.value},jor=GOt($5),VOt=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Jv;return s.issues.length?{success:!1,error:new(e??BOt)(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},HTe=VOt($5),WOt=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},qTe=WOt($5),Hor=/^[cC][^\s-]{8,}$/,qor=/^[0-9a-z]+$/,Bor=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,zor=/^[0-9a-vA-V]{20}$/,Gor=/^[A-Za-z0-9]{27}$/,Vor=/^[a-zA-Z0-9_-]{21}$/,Wor=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Kor=/^([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})$/,Cxt=e=>e?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})$`):/^([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)$/,Yor=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Zor="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";Xor=/^(?:(?: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])$/,Qor=/^(([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})$/,$or=/^((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])$/,ear=/^(([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])$/,tar=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,KOt=/^[A-Za-z0-9_-]*$/,nar=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,rar=/^\+(?:[0-9]){6,14}[0-9]$/,YOt="(?:(?:\\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])))",iar=new RegExp(`^${YOt}$`);aar=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},car=/^\d+$/,uar=/^-?\d+(?:\.\d+)?/i,lar=/true|false/i,dar=/null/i,far=/^[^A-Z]*$/,par=/^[^a-z]*$/,$u=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),JOt={number:"number",bigint:"bigint",object:"date"},XOt=ge("$ZodCheckLessThan",(e,t)=>{$u.init(e,t);let n=JOt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{$u.init(e,t);let n=JOt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),har=ge("$ZodCheckMultipleOf",(e,t)=>{$u.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):DOt(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),mar=ge("$ZodCheckNumberFormat",(e,t)=>{$u.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=jOt[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=car)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),gar=ge("$ZodCheckMaxLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!J5(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let r=n.value;if(r.length<=t.maximum)return;let s=Q5(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),yar=ge("$ZodCheckMinLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!J5(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let s=Q5(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Sar=ge("$ZodCheckLengthEquals",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!J5(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let s=Q5(r),o=i>t.length;n.issues.push({origin:s,...o?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),e8=ge("$ZodCheckStringFormat",(e,t)=>{var n,r;$u.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),bar=ge("$ZodCheckRegex",(e,t)=>{e8.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Ear=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=far),e8.init(e,t)}),_ar=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=par),e8.init(e,t)}),Tar=ge("$ZodCheckIncludes",(e,t)=>{$u.init(e,t);let n=Zx(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),Rar=ge("$ZodCheckStartsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`^${Zx(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),Aar=ge("$ZodCheckEndsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`.*${Zx(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),war=ge("$ZodCheckOverwrite",(e,t)=>{$u.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),uTe=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` +`))}Zg(`[Query.streamInput] Finished processing ${n} messages from input stream`),n>0&&this.hasBidirectionalNeeds()&&(Zg("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Zg("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(n){if(!(n instanceof tE))throw n}}waitForFirstResult(){return this.firstResultReceived?(Zg("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(t=>{if(this.abortController?.signal.aborted){t();return}this.abortController?.signal.addEventListener("abort",()=>t(),{once:!0}),this.firstResultReceivedResolve=t})}handleHookCallbacks(t,n,r,i){let s=this.hookCallbacks.get(t);if(!s)throw new Error(`No hook callback found for ID: ${t}`);return s(n,r,{signal:i})}connectSdkMcpServer(t,n){let r=new eTe(i=>this.sendMcpServerMessageToCli(t,i));this.sdkMcpTransports.set(t,r),this.sdkMcpServerInstances.set(t,n),n.connect(r)}async disconnectSdkMcpServer(t){let n=this.sdkMcpTransports.get(t);n&&(await n.close(),this.sdkMcpTransports.delete(t)),this.sdkMcpServerInstances.delete(t)}sendMcpServerMessageToCli(t,n){if("id"in n&&n.id!==null&&n.id!==void 0){let i=`${t}:${n.id}`,s=this.pendingMcpResponses.get(i);if(s){s.resolve(n),this.pendingMcpResponses.delete(i);return}}let r={type:"control_request",request_id:Hsr(),request:{subtype:"mcp_message",server_name:t,message:n}};this.transport.write(im(r)+` +`)}handleMcpControlRequest(t,n,r){let i="id"in n.message?n.message.id:null,s=`${t}:${i}`;return new Promise((o,a)=>{let c=()=>{this.pendingMcpResponses.delete(s)},u=d=>{c(),o(d)},l=d=>{c(),a(d)};if(this.pendingMcpResponses.set(s,{resolve:u,reject:l}),r.onmessage)r.onmessage(n.message);else{c(),a(new Error("No message handler registered"));return}})}},N5=class{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw new Error("Session ID not available until after receiving messages");return this._sessionId}constructor(t){t.resume&&(this._sessionId=t.resume),this.inputStream=new O5;let n=t.pathToClaudeCodeExecutable;if(!n){let s=qsr(import.meta.url),o=Ixt(s,"..");n=Ixt(o,"cli.js")}let r={...t.env??process.env};r.CLAUDE_CODE_ENTRYPOINT||(r.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=CTe();let i=new x5({abortController:this.abortController,pathToClaudeCodeExecutable:n,env:r,executable:t.executable??(LTe()?"bun":"node"),executableArgs:t.executableArgs??[],extraArgs:{},maxThinkingTokens:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:t.model,fallbackModel:void 0,permissionMode:"default",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:t.resume,settingSources:[],allowedTools:[],disallowedTools:[],mcpServers:{},strictMcpConfig:!1,canUseTool:!1,hooks:!1,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new P5(i,!1,void 0,void 0,this.abortController,new Map),this.query.streamInput(this.inputStream)}async send(t){if(this.closed)throw new Error("Cannot send to closed session");let n=typeof t=="string"?{type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:t}]},parent_tool_use_id:null}:t;this.inputStream.enqueue(n)}async*stream(){for(this.queryIterator||(this.queryIterator=this.query[Symbol.asyncIterator]());;){let{value:t,done:n}=await this.queryIterator.next();if(n||(t.type==="system"&&t.subtype==="init"&&(this._sessionId=t.session_id),yield t,t.type==="result"))return}}close(){this.closed||(this.closed=!0,this.inputStream.done(),this.abortController.abort())}async[Symbol.asyncDispose](){this.close()}};(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},e.getValidEnumValues=i=>{let s=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},e.find=(i,s)=>{for(let o of i)if(s(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ir||(ir={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(xxt||(xxt={}));nt=ir.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),eE=e=>{switch(typeof e){case"undefined":return nt.undefined;case"string":return nt.string;case"number":return Number.isNaN(e)?nt.nan:nt.number;case"boolean":return nt.boolean;case"function":return nt.function;case"bigint":return nt.bigint;case"symbol":return nt.symbol;case"object":return Array.isArray(e)?nt.array:e===null?nt.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?nt.promise:typeof Map<"u"&&e instanceof Map?nt.map:typeof Set<"u"&&e instanceof Set?nt.set:typeof Date<"u"&&e instanceof Date?nt.date:nt.object;default:return nt.unknown}},xe=ir.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Zd=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,c=0;for(;cn.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Zd.create=e=>new Zd(e);zsr=(e,t)=>{let n;switch(e.code){case xe.invalid_type:e.received===nt.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case xe.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ir.jsonStringifyReplacer)}`;break;case xe.unrecognized_keys:n=`Unrecognized key(s) in object: ${ir.joinValues(e.keys,", ")}`;break;case xe.invalid_union:n="Invalid input";break;case xe.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ir.joinValues(e.options)}`;break;case xe.invalid_enum_value:n=`Invalid enum value. Expected ${ir.joinValues(e.options)}, received '${e.received}'`;break;case xe.invalid_arguments:n="Invalid function arguments";break;case xe.invalid_return_type:n="Invalid function return type";break;case xe.invalid_date:n="Invalid date";break;case xe.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:ir.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case xe.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case xe.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case xe.custom:n="Invalid input";break;case xe.invalid_intersection_types:n="Intersection results could not be merged";break;case xe.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case xe.not_finite:n="Number must be finite";break;default:n=t.defaultError,ir.assertNever(e)}return{message:n}},xU=zsr,Gsr=xU;nTe=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}};iu=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return Vt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let s=await i.key,o=await i.value;r.push({key:s,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Vt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}},Vt=Object.freeze({status:"aborted"}),vU=e=>({status:"dirty",value:e}),Xu=e=>({status:"valid",value:e}),Oxt=e=>e.status==="aborted",Pxt=e=>e.status==="dirty",Cx=e=>e.status==="valid",C5=e=>typeof Promise<"u"&&e instanceof Promise;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(lt||(lt={}));Jd=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Nxt=(e,t)=>{if(Cx(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new Zd(e.common.issues);return this._error=n,this._error}}};Tn=class{get description(){return this._def.description}_getType(t){return eE(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:eE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new iu,ctx:{common:t.parent.common,data:t.data,parsedType:eE(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(C5(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:eE(t)},i=this._parseSync({data:t,path:r.path,parent:r});return Nxt(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:eE(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Cx(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>Cx(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:eE(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(C5(i)?i:Promise.resolve(i));return Nxt(r,s)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{let o=t(i),a=()=>s.addIssue({code:xe.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new gp({schema:this,typeName:De.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return mp.create(this,this._def)}nullable(){return $g.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return iE.create(this)}promise(){return Zv.create(this,this._def)}or(t){return Ux.create([this,t],this._def)}and(t){return Fx.create(this,t,this._def)}transform(t){return new gp({...ln(this._def),schema:this,typeName:De.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new zx({...ln(this._def),innerType:this,defaultValue:n,typeName:De.ZodDefault})}brand(){return new M5({typeName:De.ZodBranded,type:this,...ln(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Gx({...ln(this._def),innerType:this,catchValue:n,typeName:De.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return D5.create(this,t)}readonly(){return Vx.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Vsr=/^c[^\s-]{8,}$/i,Wsr=/^[0-9a-z]+$/,Ksr=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ysr=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Zsr=/^[a-z0-9_-]{21}$/i,Jsr=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Xsr=/^[-+]?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)?)??$/,Qsr=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,$sr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",eor=/^(?:(?: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])$/,tor=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,nor=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,ror=/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ior=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,sor=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,POt="((\\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])))",oor=new RegExp(`^${POt}$`);Mx=class e extends Tn{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==nt.string){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.string,received:s.parsedType}),Vt}let r=new iu,i;for(let s of this._def.checks)if(s.kind==="min")t.data.lengths.value&&(i=this._getOrReturnCtx(t,i),Ye(i,{code:xe.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let o=t.data.length>s.value,a=t.data.lengtht.test(i),{validation:n,code:xe.invalid_string,...lt.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...lt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...lt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...lt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...lt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...lt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...lt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...lt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...lt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...lt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...lt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...lt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...lt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...lt.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...lt.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...lt.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...lt.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...lt.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...lt.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...lt.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...lt.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...lt.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...lt.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...lt.errToObj(n)})}nonempty(t){return this.min(1,lt.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Mx({checks:[],typeName:De.ZodString,coerce:e?.coerce??!1,...ln(e)});OU=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==nt.number){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.number,received:s.parsedType}),Vt}let r,i=new iu;for(let s of this._def.checks)s.kind==="int"?ir.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?por(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_finite,message:s.message}),i.dirty()):ir.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:lt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:lt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:lt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:lt.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&ir.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew OU({checks:[],typeName:De.ZodNumber,coerce:e?.coerce||!1,...ln(e)});PU=class e extends Tn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==nt.bigint)return this._getInvalidInput(t);let r,i=new iu;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.datas.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),Ye(r,{code:xe.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ir.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:xe.invalid_type,expected:nt.bigint,received:n.parsedType}),Vt}gte(t,n){return this.setLimit("min",t,!0,lt.toString(n))}gt(t,n){return this.setLimit("min",t,!1,lt.toString(n))}lte(t,n){return this.setLimit("max",t,!0,lt.toString(n))}lt(t,n){return this.setLimit("max",t,!1,lt.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:lt.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:lt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:lt.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:lt.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew PU({checks:[],typeName:De.ZodBigInt,coerce:e?.coerce??!1,...ln(e)});NU=class extends Tn{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==nt.boolean){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.boolean,received:r.parsedType}),Vt}return Xu(t.data)}};NU.create=e=>new NU({typeName:De.ZodBoolean,coerce:e?.coerce||!1,...ln(e)});CU=class e extends Tn{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==nt.date){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_type,expected:nt.date,received:s.parsedType}),Vt}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return Ye(s,{code:xe.invalid_date}),Vt}let r=new iu,i;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()s.value&&(i=this._getOrReturnCtx(t,i),Ye(i,{code:xe.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):ir.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:lt.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:lt.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew CU({checks:[],coerce:e?.coerce||!1,typeName:De.ZodDate,...ln(e)});MU=class extends Tn{_parse(t){if(this._getType(t)!==nt.symbol){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.symbol,received:r.parsedType}),Vt}return Xu(t.data)}};MU.create=e=>new MU({typeName:De.ZodSymbol,...ln(e)});Dx=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.undefined,received:r.parsedType}),Vt}return Xu(t.data)}};Dx.create=e=>new Dx({typeName:De.ZodUndefined,...ln(e)});Lx=class extends Tn{_parse(t){if(this._getType(t)!==nt.null){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.null,received:r.parsedType}),Vt}return Xu(t.data)}};Lx.create=e=>new Lx({typeName:De.ZodNull,...ln(e)});DU=class extends Tn{constructor(){super(...arguments),this._any=!0}_parse(t){return Xu(t.data)}};DU.create=e=>new DU({typeName:De.ZodAny,...ln(e)});rE=class extends Tn{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Xu(t.data)}};rE.create=e=>new rE({typeName:De.ZodUnknown,...ln(e)});om=class extends Tn{_parse(t){let n=this._getOrReturnCtx(t);return Ye(n,{code:xe.invalid_type,expected:nt.never,received:n.parsedType}),Vt}};om.create=e=>new om({typeName:De.ZodNever,...ln(e)});LU=class extends Tn{_parse(t){if(this._getType(t)!==nt.undefined){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.void,received:r.parsedType}),Vt}return Xu(t.data)}};LU.create=e=>new LU({typeName:De.ZodVoid,...ln(e)});iE=class e extends Tn{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==nt.array)return Ye(n,{code:xe.invalid_type,expected:nt.array,received:n.parsedType}),Vt;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,a=n.data.lengthi.maxLength.value&&(Ye(n,{code:xe.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>i.type._parseAsync(new Jd(n,o,n.path,a)))).then(o=>iu.mergeArray(r,o));let s=[...n.data].map((o,a)=>i.type._parseSync(new Jd(n,o,n.path,a)));return iu.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:lt.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:lt.toString(n)}})}nonempty(t){return this.min(1,t)}};iE.create=(e,t)=>new iE({type:e,minLength:null,maxLength:null,exactLength:null,typeName:De.ZodArray,...ln(t)});Fl=class e extends Tn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=ir.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==nt.object){let u=this._getOrReturnCtx(t);return Ye(u,{code:xe.invalid_type,expected:nt.object,received:u.parsedType}),Vt}let{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof om&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=s[u],d=i.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Jd(i,d,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof om){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(u==="strict")a.length>0&&(Ye(i,{code:xe.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let d=i.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Jd(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,f=await l.value;u.push({key:d,value:f,alwaysSet:l.alwaysSet})}return u}).then(u=>iu.mergeObjectSync(r,u)):iu.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return lt.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:lt.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:De.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of ir.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of ir.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Ox(this)}partial(t){let n={};for(let r of ir.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of ir.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof mp;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return COt(ir.objectKeys(this.shape))}};Fl.create=(e,t)=>new Fl({shape:()=>e,unknownKeys:"strip",catchall:om.create(),typeName:De.ZodObject,...ln(t)});Fl.strictCreate=(e,t)=>new Fl({shape:()=>e,unknownKeys:"strict",catchall:om.create(),typeName:De.ZodObject,...ln(t)});Fl.lazycreate=(e,t)=>new Fl({shape:e,unknownKeys:"strip",catchall:om.create(),typeName:De.ZodObject,...ln(t)});Ux=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Zd(a.ctx.common.issues));return Ye(n,{code:xe.invalid_union,unionErrors:o}),Vt}if(n.common.async)return Promise.all(r.map(async s=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(c=>new Zd(c));return Ye(n,{code:xe.invalid_union,unionErrors:a}),Vt}}get options(){return this._def.options}};Ux.create=(e,t)=>new Ux({options:e,typeName:De.ZodUnion,...ln(t)});Yg=e=>e instanceof jx?Yg(e.schema):e instanceof gp?Yg(e.innerType()):e instanceof Hx?[e.value]:e instanceof qx?e.options:e instanceof Bx?ir.objectValues(e.enum):e instanceof zx?Yg(e._def.innerType):e instanceof Dx?[void 0]:e instanceof Lx?[null]:e instanceof mp?[void 0,...Yg(e.unwrap())]:e instanceof $g?[null,...Yg(e.unwrap())]:e instanceof M5||e instanceof Vx?Yg(e.unwrap()):e instanceof Gx?Yg(e._def.innerType):[],rTe=class e extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.object)return Ye(n,{code:xe.invalid_type,expected:nt.object,received:n.parsedType}),Vt;let r=this.discriminator,i=n.data[r],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(Ye(n,{code:xe.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let s of n){let o=Yg(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,s)}}return new e({typeName:De.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...ln(r)})}};Fx=class extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(Oxt(s)||Oxt(o))return Vt;let a=iTe(s.value,o.value);return a.valid?((Pxt(s)||Pxt(o))&&n.dirty(),{status:n.value,value:a.data}):(Ye(r,{code:xe.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Fx.create=(e,t,n)=>new Fx({left:e,right:t,typeName:De.ZodIntersection,...ln(n)});Qg=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.array)return Ye(r,{code:xe.invalid_type,expected:nt.array,received:r.parsedType}),Vt;if(r.data.lengththis._def.items.length&&(Ye(r,{code:xe.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Jd(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>iu.mergeArray(n,o)):iu.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Qg.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Qg({items:e,typeName:De.ZodTuple,rest:null,...ln(t)})};sTe=class e extends Tn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.object)return Ye(r,{code:xe.invalid_type,expected:nt.object,received:r.parsedType}),Vt;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in r.data)i.push({key:s._parse(new Jd(r,a,r.path,a)),value:o._parse(new Jd(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?iu.mergeObjectAsync(n,i):iu.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Tn?new e({keyType:t,valueType:n,typeName:De.ZodRecord,...ln(r)}):new e({keyType:Mx.create(),valueType:t,typeName:De.ZodRecord,...ln(n)})}},UU=class extends Tn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.map)return Ye(r,{code:xe.invalid_type,expected:nt.map,received:r.parsedType}),Vt;let i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([a,c],u)=>({key:i._parse(new Jd(r,a,r.path,[u,"key"])),value:s._parse(new Jd(r,c,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return Vt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return Vt;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}};UU.create=(e,t,n)=>new UU({valueType:t,keyType:e,typeName:De.ZodMap,...ln(n)});FU=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==nt.set)return Ye(r,{code:xe.invalid_type,expected:nt.set,received:r.parsedType}),Vt;let i=this._def;i.minSize!==null&&r.data.sizei.maxSize.value&&(Ye(r,{code:xe.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let s=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return Vt;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((c,u)=>s._parse(new Jd(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:lt.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:lt.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};FU.create=(e,t)=>new FU({valueType:e,minSize:null,maxSize:null,typeName:De.ZodSet,...ln(t)});oTe=class e extends Tn{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.function)return Ye(n,{code:xe.invalid_type,expected:nt.function,received:n.parsedType}),Vt;function r(a,c){return nTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,tTe(),xU].filter(u=>!!u),issueData:{code:xe.invalid_arguments,argumentsError:c}})}function i(a,c){return nTe({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,tTe(),xU].filter(u=>!!u),issueData:{code:xe.invalid_return_type,returnTypeError:c}})}let s={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof Zv){let a=this;return Xu(async function(...c){let u=new Zd([]),l=await a._def.args.parseAsync(c,s).catch(p=>{throw u.addIssue(r(c,p)),u}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw u.addIssue(i(d,p)),u})})}else{let a=this;return Xu(function(...c){let u=a._def.args.safeParse(c,s);if(!u.success)throw new Zd([r(c,u.error)]);let l=Reflect.apply(o,this,u.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Zd([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Qg.create(t).rest(rE.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Qg.create([]).rest(rE.create()),returns:n||rE.create(),typeName:De.ZodFunction,...ln(r)})}},jx=class extends Tn{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};jx.create=(e,t)=>new jx({getter:e,typeName:De.ZodLazy,...ln(t)});Hx=class extends Tn{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return Ye(n,{received:n.data,code:xe.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}};Hx.create=(e,t)=>new Hx({value:e,typeName:De.ZodLiteral,...ln(t)});qx=class e extends Tn{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{expected:ir.joinValues(r),received:n.parsedType,code:xe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return Ye(n,{received:n.data,code:xe.invalid_enum_value,options:r}),Vt}return Xu(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};qx.create=COt;Bx=class extends Tn{_parse(t){let n=ir.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==nt.string&&r.parsedType!==nt.number){let i=ir.objectValues(n);return Ye(r,{expected:ir.joinValues(i),received:r.parsedType,code:xe.invalid_type}),Vt}if(this._cache||(this._cache=new Set(ir.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=ir.objectValues(n);return Ye(r,{received:r.data,code:xe.invalid_enum_value,options:i}),Vt}return Xu(t.data)}get enum(){return this._def.values}};Bx.create=(e,t)=>new Bx({values:e,typeName:De.ZodNativeEnum,...ln(t)});Zv=class extends Tn{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==nt.promise&&n.common.async===!1)return Ye(n,{code:xe.invalid_type,expected:nt.promise,received:n.parsedType}),Vt;let r=n.parsedType===nt.promise?n.data:Promise.resolve(n.data);return Xu(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Zv.create=(e,t)=>new Zv({type:e,typeName:De.ZodPromise,...ln(t)});gp=class extends Tn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===De.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{Ye(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return Vt;let c=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return c.status==="aborted"?Vt:c.status==="dirty"||n.value==="dirty"?vU(c.value):c});{if(n.value==="aborted")return Vt;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?Vt:a.status==="dirty"||n.value==="dirty"?vU(a.value):a}}if(i.type==="refinement"){let o=a=>{let c=i.refinement(a,s);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?Vt:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?Vt:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Cx(o))return Vt;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>Cx(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:n.value,value:a})):Vt);ir.assertNever(i)}};gp.create=(e,t,n)=>new gp({schema:e,typeName:De.ZodEffects,effect:t,...ln(n)});gp.createWithPreprocess=(e,t,n)=>new gp({schema:t,effect:{type:"preprocess",transform:e},typeName:De.ZodEffects,...ln(n)});mp=class extends Tn{_parse(t){return this._getType(t)===nt.undefined?Xu(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};mp.create=(e,t)=>new mp({innerType:e,typeName:De.ZodOptional,...ln(t)});$g=class extends Tn{_parse(t){return this._getType(t)===nt.null?Xu(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};$g.create=(e,t)=>new $g({innerType:e,typeName:De.ZodNullable,...ln(t)});zx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===nt.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};zx.create=(e,t)=>new zx({innerType:e,typeName:De.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...ln(t)});Gx=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return C5(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Zd(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Gx.create=(e,t)=>new Gx({innerType:e,typeName:De.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...ln(t)});jU=class extends Tn{_parse(t){if(this._getType(t)!==nt.nan){let r=this._getOrReturnCtx(t);return Ye(r,{code:xe.invalid_type,expected:nt.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}};jU.create=e=>new jU({typeName:De.ZodNaN,...ln(e)});M5=class extends Tn{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},D5=class e extends Tn{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Vt:s.status==="dirty"?(n.dirty(),vU(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Vt:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:De.ZodPipeline})}},Vx=class extends Tn{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Cx(i)&&(i.value=Object.freeze(i.value)),i);return C5(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};Vx.create=(e,t)=>new Vx({innerType:e,typeName:De.ZodReadonly,...ln(t)});zPi={object:Fl.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(De||(De={}));GPi=Mx.create,VPi=OU.create,WPi=jU.create,KPi=PU.create,YPi=NU.create,ZPi=CU.create,JPi=MU.create,XPi=Dx.create,QPi=Lx.create,$Pi=DU.create,eNi=rE.create,tNi=om.create,nNi=LU.create,rNi=iE.create,hor=Fl.create,iNi=Fl.strictCreate,sNi=Ux.create,oNi=rTe.create,aNi=Fx.create,cNi=Qg.create,uNi=sTe.create,lNi=UU.create,dNi=FU.create,fNi=oTe.create,pNi=jx.create,hNi=Hx.create,mNi=qx.create,gNi=Bx.create,yNi=Zv.create,SNi=gp.create,bNi=mp.create,ENi=$g.create,_Ni=gp.createWithPreprocess,TNi=D5.create,vNi=Object.freeze({status:"aborted"});Jv=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},aTe={};Gr={};lOt(Gr,{unwrapMessage:()=>RU,stringifyPrimitive:()=>HTe,required:()=>Cor,randomString:()=>Tor,propertyKeyTypes:()=>UOt,promiseAllObject:()=>_or,primitiveTypes:()=>Aor,prefixIssues:()=>nE,pick:()=>Ior,partial:()=>Nor,optionalKeys:()=>FOt,omit:()=>xor,numKeys:()=>vor,nullish:()=>X5,normalizeParams:()=>Ht,merge:()=>Por,jsonStringifyReplacer:()=>MOt,joinValues:()=>cTe,issue:()=>HOt,isPlainObject:()=>qU,isObject:()=>HU,getSizableOrigin:()=>Mor,getParsedType:()=>Ror,getLengthableOrigin:()=>$5,getEnumValues:()=>UTe,getElementAtPath:()=>Eor,floatSafeRemainder:()=>DOt,finalizeIssue:()=>ty,extend:()=>Oor,escapeRegex:()=>Jx,esc:()=>Px,defineLazy:()=>ki,createTransparentProxy:()=>wor,clone:()=>ny,cleanRegex:()=>Q5,cleanEnum:()=>Dor,captureStackTrace:()=>jTe,cached:()=>J5,assignProp:()=>FTe,assertNotEqual:()=>gor,assertNever:()=>Sor,assertIs:()=>yor,assertEqual:()=>mor,assert:()=>bor,allowsEval:()=>LOt,aborted:()=>Nx,NUMBER_FORMAT_RANGES:()=>jOt,Class:()=>uTe,BIGINT_FORMAT_RANGES:()=>kor});jTe=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};LOt=J5(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});Ror=e=>{let t=typeof e;switch(t){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":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},UOt=new Set(["string","number","symbol"]),Aor=new Set(["string","number","bigint","boolean","symbol","undefined"]);jOt={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},kor={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};uTe=class{constructor(...t){}},qOt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,MOt,2)},enumerable:!0})},BOt=ge("$ZodError",qOt),e8=ge("$ZodError",qOt,{Parent:Error});zOt=e=>(t,n,r,i)=>{let s=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new Jv;if(o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw jTe(a,i?.callee),a}return o.value},For=zOt(e8),GOt=e=>async(t,n,r,i)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise&&(o=await o),o.issues.length){let a=new(i?.Err??e)(o.issues.map(c=>ty(c,s,ey())));throw jTe(a,i?.callee),a}return o.value},jor=GOt(e8),VOt=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Jv;return s.issues.length?{success:!1,error:new(e??BOt)(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},qTe=VOt(e8),WOt=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(o=>ty(o,i,ey())))}:{success:!0,data:s.value}},BTe=WOt(e8),Hor=/^[cC][^\s-]{8,}$/,qor=/^[0-9a-z]+$/,Bor=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,zor=/^[0-9a-vA-V]{20}$/,Gor=/^[A-Za-z0-9]{27}$/,Vor=/^[a-zA-Z0-9_-]{21}$/,Wor=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Kor=/^([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})$/,Cxt=e=>e?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})$`):/^([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)$/,Yor=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Zor="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";Xor=/^(?:(?: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])$/,Qor=/^(([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})$/,$or=/^((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])$/,ear=/^(([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])$/,tar=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,KOt=/^[A-Za-z0-9_-]*$/,nar=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,rar=/^\+(?:[0-9]){6,14}[0-9]$/,YOt="(?:(?:\\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])))",iar=new RegExp(`^${YOt}$`);aar=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},car=/^\d+$/,uar=/^-?\d+(?:\.\d+)?/i,lar=/true|false/i,dar=/null/i,far=/^[^A-Z]*$/,par=/^[^a-z]*$/,$u=ge("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),JOt={number:"number",bigint:"bigint",object:"date"},XOt=ge("$ZodCheckLessThan",(e,t)=>{$u.init(e,t);let n=JOt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{$u.init(e,t);let n=JOt[typeof t.value];e._zod.onattach.push(r=>{let i=r._zod.bag,s=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),har=ge("$ZodCheckMultipleOf",(e,t)=>{$u.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):DOt(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),mar=ge("$ZodCheckNumberFormat",(e,t)=>{$u.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[i,s]=jOt[t.format];e._zod.onattach.push(o=>{let a=o._zod.bag;a.format=t.format,a.minimum=i,a.maximum=s,n&&(a.pattern=car)}),e._zod.check=o=>{let a=o.value;if(n){if(!Number.isInteger(a)){o.issues.push({expected:r,format:t.format,code:"invalid_type",input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?o.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):o.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}as&&o.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inst:e})}}),gar=ge("$ZodCheckMaxLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!X5(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let r=n.value;if(r.length<=t.maximum)return;let s=$5(r);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),yar=ge("$ZodCheckMinLength",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!X5(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>r&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let s=$5(r);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Sar=ge("$ZodCheckLengthEquals",(e,t)=>{$u.init(e,t),e._zod.when=n=>{let r=n.value;return!X5(r)&&r.length!==void 0},e._zod.onattach.push(n=>{let r=n._zod.bag;r.minimum=t.length,r.maximum=t.length,r.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let s=$5(r),o=i>t.length;n.issues.push({origin:s,...o?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),t8=ge("$ZodCheckStringFormat",(e,t)=>{var n,r;$u.init(e,t),e._zod.onattach.push(i=>{let s=i._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),bar=ge("$ZodCheckRegex",(e,t)=>{t8.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Ear=ge("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=far),t8.init(e,t)}),_ar=ge("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=par),t8.init(e,t)}),Tar=ge("$ZodCheckIncludes",(e,t)=>{$u.init(e,t);let n=Jx(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{let s=i._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),Rar=ge("$ZodCheckStartsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`^${Jx(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),Aar=ge("$ZodCheckEndsWith",(e,t)=>{$u.init(e,t);let n=new RegExp(`.*${Jx(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),war=ge("$ZodCheckOverwrite",(e,t)=>{$u.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),lTe=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let r=t.split(` `).filter(o=>o),i=Math.min(...r.map(o=>o.length-o.trimStart().length)),s=r.map(o=>o.slice(i)).map(o=>" ".repeat(this.indent*2)+o);for(let o of s)this.content.push(o)}compile(){let t=Function,n=this?.args,i=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...n,i.join(` -`))}},kar={major:4,minor:0,patch:0},li=ge("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=kar;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=Px(s),u;for(let l of o){if(l._zod.when){if(!l._zod.when(s))continue}else if(c)continue;let d=s.issues.length,f=l._zod.check(s);if(f instanceof Promise&&a?.async===!1)throw new Jv;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=Px(s,d)))});else{if(s.issues.length===d)continue;c||(c=Px(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Jv;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=HTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return qTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),BTe=ge("$ZodString",(e,t)=>{li.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??aar(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Gi=ge("$ZodStringFormat",(e,t)=>{e8.init(e,t),BTe.init(e,t)}),Iar=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Kor),Gi.init(e,t)}),xar=ge("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Cxt(r))}else t.pattern??(t.pattern=Cxt());Gi.init(e,t)}),Oar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Yor),Gi.init(e,t)}),Par=ge("$ZodURL",(e,t)=>{Gi.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:nar.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Nar=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Jor()),Gi.init(e,t)}),Car=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Vor),Gi.init(e,t)}),Mar=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Hor),Gi.init(e,t)}),Dar=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=qor),Gi.init(e,t)}),Lar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Bor),Gi.init(e,t)}),Uar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=zor),Gi.init(e,t)}),Far=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Gor),Gi.init(e,t)}),jar=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=oar(t)),Gi.init(e,t)}),Har=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=iar),Gi.init(e,t)}),qar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=sar(t)),Gi.init(e,t)}),Bar=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Wor),Gi.init(e,t)}),zar=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Xor),Gi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),Gar=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Qor),Gi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.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:!t.abort})}}}),Var=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=$or),Gi.init(e,t)}),War=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=ear),Gi.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});Kar=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=tar),Gi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{$Ot(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});Zar=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=KOt),Gi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Yar(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Jar=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=rar),Gi.init(e,t)});Qar=ge("$ZodJWT",(e,t)=>{Gi.init(e,t),e._zod.check=n=>{Xar(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),ePt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??uar,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),$ar=ge("$ZodNumber",(e,t)=>{mar.init(e,t),ePt.init(e,t)}),ecr=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=lar,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),tcr=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=dar,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),ncr=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),rcr=ge("$ZodNever",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});icr=ge("$ZodArray",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oMxt(u,n,o))):Mxt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});tPt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=Z5(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof li))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=FOt(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ki(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new uTe(["shape","payload","ctx"]),p=n.value,h=b=>{let S=Ox(b);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let m=Object.create(null),g=0;for(let b of p.keys)m[b]=`key_${g++}`;f.write("const newResult = {}");for(let b of p.keys)if(p.optionalKeys.has(b)){let S=m[b];f.write(`const ${S} = ${h(b)};`);let E=Ox(b);f.write(` +`))}},kar={major:4,minor:0,patch:0},li=ge("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=kar;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let i of r)for(let s of i._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,o,a)=>{let c=Nx(s),u;for(let l of o){if(l._zod.when){if(!l._zod.when(s))continue}else if(c)continue;let d=s.issues.length,f=l._zod.check(s);if(f instanceof Promise&&a?.async===!1)throw new Jv;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,s.issues.length!==d&&(c||(c=Nx(s,d)))});else{if(s.issues.length===d)continue;c||(c=Nx(s,d))}}return u?u.then(()=>s):s};e._zod.run=(s,o)=>{let a=e._zod.parse(s,o);if(a instanceof Promise){if(o.async===!1)throw new Jv;return a.then(c=>i(c,r,o))}return i(a,r,o)}}e["~standard"]={validate:i=>{try{let s=qTe(e,i);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return BTe(e,i).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}}),zTe=ge("$ZodString",(e,t)=>{li.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??aar(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Gi=ge("$ZodStringFormat",(e,t)=>{t8.init(e,t),zTe.init(e,t)}),Iar=ge("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Kor),Gi.init(e,t)}),xar=ge("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Cxt(r))}else t.pattern??(t.pattern=Cxt());Gi.init(e,t)}),Oar=ge("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Yor),Gi.init(e,t)}),Par=ge("$ZodURL",(e,t)=>{Gi.init(e,t),e._zod.check=n=>{try{let r=n.value,i=new URL(r),s=i.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:nar.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&s.endsWith("/")?n.value=s.slice(0,-1):n.value=s;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Nar=ge("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Jor()),Gi.init(e,t)}),Car=ge("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Vor),Gi.init(e,t)}),Mar=ge("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Hor),Gi.init(e,t)}),Dar=ge("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=qor),Gi.init(e,t)}),Lar=ge("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Bor),Gi.init(e,t)}),Uar=ge("$ZodXID",(e,t)=>{t.pattern??(t.pattern=zor),Gi.init(e,t)}),Far=ge("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Gor),Gi.init(e,t)}),jar=ge("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=oar(t)),Gi.init(e,t)}),Har=ge("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=iar),Gi.init(e,t)}),qar=ge("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=sar(t)),Gi.init(e,t)}),Bar=ge("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Wor),Gi.init(e,t)}),zar=ge("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Xor),Gi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),Gar=ge("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Qor),Gi.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.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:!t.abort})}}}),Var=ge("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=$or),Gi.init(e,t)}),War=ge("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=ear),Gi.init(e,t),e._zod.check=n=>{let[r,i]=n.value.split("/");try{if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});Kar=ge("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=tar),Gi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{$Ot(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});Zar=ge("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=KOt),Gi.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{Yar(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Jar=ge("$ZodE164",(e,t)=>{t.pattern??(t.pattern=rar),Gi.init(e,t)});Qar=ge("$ZodJWT",(e,t)=>{Gi.init(e,t),e._zod.check=n=>{Xar(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),ePt=ge("$ZodNumber",(e,t)=>{li.init(e,t),e._zod.pattern=e._zod.bag.pattern??uar,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;let s=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...s?{received:s}:{}}),n}}),$ar=ge("$ZodNumber",(e,t)=>{mar.init(e,t),ePt.init(e,t)}),ecr=ge("$ZodBoolean",(e,t)=>{li.init(e,t),e._zod.pattern=lar,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),tcr=ge("$ZodNull",(e,t)=>{li.init(e,t),e._zod.pattern=dar,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),ncr=ge("$ZodUnknown",(e,t)=>{li.init(e,t),e._zod.parse=n=>n}),rcr=ge("$ZodNever",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});icr=ge("$ZodArray",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);let s=[];for(let o=0;oMxt(u,n,o))):Mxt(c,n,o)}return s.length?Promise.all(s).then(()=>n):n}});tPt=ge("$ZodObject",(e,t)=>{li.init(e,t);let n=J5(()=>{let d=Object.keys(t.shape);for(let p of d)if(!(t.shape[p]instanceof li))throw new Error(`Invalid element at key "${p}": expected a Zod schema`);let f=FOt(t.shape);return{shape:t.shape,keys:d,keySet:new Set(d),numKeys:d.length,optionalKeys:new Set(f)}});ki(e._zod,"propValues",()=>{let d=t.shape,f={};for(let p in d){let h=d[p]._zod;if(h.values){f[p]??(f[p]=new Set);for(let m of h.values)f[p].add(m)}}return f});let r=d=>{let f=new lTe(["shape","payload","ctx"]),p=n.value,h=b=>{let S=Px(b);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};f.write("const input = payload.value;");let m=Object.create(null),g=0;for(let b of p.keys)m[b]=`key_${g++}`;f.write("const newResult = {}");for(let b of p.keys)if(p.optionalKeys.has(b)){let S=m[b];f.write(`const ${S} = ${h(b)};`);let E=Px(b);f.write(` if (${S}.issues.length) { if (input[${E}] === undefined) { if (${E} in input) { @@ -1374,10 +1374,10 @@ diagnostic: ${s}${a}`}],isError:!0}}var yU,pxt,hxt=v(()=>{"use strict";vl();yU=1 `)}else{let S=m[b];f.write(`const ${S} = ${h(b)};`),f.write(` if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ ...iss, - path: iss.path ? [${Ox(b)}, ...iss.path] : [${Ox(b)}] - })));`),f.write(`newResult[${Ox(b)}] = ${S}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");let y=f.compile();return(b,S)=>y(d,b,S)},i,s=FU,o=!oTe.jitless,c=o&&LOt.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let E of l.keys){let _=S[E],T=_._zod.run({value:p[E],issues:[]},f),R=_._zod.optin==="optional"&&_._zod.optout==="optional";T instanceof Promise?h.push(T.then(A=>R?Dxt(A,d,E,p):T5(A,d,E))):R?Dxt(T,d,E,p):T5(T,d,E)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let m=[],g=l.keySet,y=u._zod,b=y.def.type;for(let S of Object.keys(p)){if(g.has(S))continue;if(b==="never"){m.push(S);continue}let E=y.run({value:p[S],issues:[]},f);E instanceof Promise?h.push(E.then(_=>T5(_,d,S))):T5(E,d,S)}return m.length&&d.issues.push({code:"unrecognized_keys",keys:m,input:p,inst:e}),h.length?Promise.all(h).then(()=>d):d}});nPt=ge("$ZodUnion",(e,t)=>{li.init(e,t),ki(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ki(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ki(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ki(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>X5(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>Lxt(o,n,e,r)):Lxt(s,n,e,r)}}),scr=ge("$ZodDiscriminatedUnion",(e,t)=>{nPt.init(e,t);let n=e._zod.parse;ki(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=Z5(()=>{let i=t.options,s=new Map;for(let o of i){let a=o._zod.propValues[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});e._zod.parse=(i,s)=>{let o=i.value;if(!FU(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;let a=r.value.get(o?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[t.discriminator],inst:e}),i)}}),ocr=ge("$ZodIntersection",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>Uxt(n,c,u)):Uxt(n,s,o)}});acr=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!jU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...nE(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...nE(c,u.issues)),n.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=t.keyType._zod.run({value:o,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>ty(u,r,ey())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...nE(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...nE(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),ccr=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=LTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>UOt.has(typeof r)).map(r=>typeof r=="string"?Zx(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),ucr=ge("$ZodLiteral",(e,t)=>{li.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?Zx(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),lcr=ge("$ZodTransform",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new Jv;return n.value=i,n}}),dcr=ge("$ZodOptional",(e,t)=>{li.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ki(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ki(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${X5(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),fcr=ge("$ZodNullable",(e,t)=>{li.init(e,t),ki(e._zod,"optin",()=>t.innerType._zod.optin),ki(e._zod,"optout",()=>t.innerType._zod.optout),ki(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${X5(n.source)}|null)$`):void 0}),ki(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),pcr=ge("$ZodDefault",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Fxt(s,t)):Fxt(i,t)}});hcr=ge("$ZodPrefault",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),mcr=ge("$ZodNonOptional",(e,t)=>{li.init(e,t),ki(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>jxt(s,e)):jxt(i,e)}});gcr=ge("$ZodCatch",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"optout",()=>t.innerType._zod.optout),ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>ty(o,r,ey()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>ty(s,r,ey()))},input:n.value}),n.issues=[]),n)}}),ycr=ge("$ZodPipe",(e,t)=>{li.init(e,t),ki(e._zod,"values",()=>t.in._zod.values),ki(e._zod,"optin",()=>t.in._zod.optin),ki(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>Hxt(s,t,r)):Hxt(i,t,r)}});Scr=ge("$ZodReadonly",(e,t)=>{li.init(e,t),ki(e._zod,"propValues",()=>t.innerType._zod.propValues),ki(e._zod,"values",()=>t.innerType._zod.values),ki(e._zod,"optin",()=>t.innerType._zod.optin),ki(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(qxt):qxt(i)}});bcr=ge("$ZodCustom",(e,t)=>{$u.init(e,t),li.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>Bxt(s,n,r,e));Bxt(i,n,r,e)}});Ecr=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},_cr=()=>{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"}};function t(r){return e[r]??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"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${Ecr(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${jTe(r.values[0])}`:`Invalid option: expected one of ${aTe(r.values,"|")}`;case"too_big":{let i=r.inclusive?"<=":"<",s=t(r.origin);return s?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{let i=r.inclusive?">=":">",s=t(r.origin);return s?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${s.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{let i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${aTe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};D5=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}remove(t){return this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};vU=vcr();U5=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??vU,this.target=t?.target??"draft-2020-12",this.unrepresentable=t?.unrepresentable??"throw",this.override=t?.override??(()=>{}),this.io=t?.io??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var r;let i=t._zod.def,s={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},o=this.seen.get(t);if(o)return o.count++,n.schemaPath.includes(t)&&(o.cycle=n.path),o.schema;let a={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,a);let c=t._zod.toJSONSchema?.();if(c)a.schema=c;else{let d={...n,schemaPath:[...n.schemaPath,t],path:n.path},f=t._zod.parent;if(f)a.ref=f,this.process(f,d),this.seen.get(f).isParent=!0;else{let p=a.schema;switch(i.type){case"string":{let h=p;h.type="string";let{minimum:m,maximum:g,format:y,patterns:b,contentEncoding:S}=t._zod.bag;if(typeof m=="number"&&(h.minLength=m),typeof g=="number"&&(h.maxLength=g),y&&(h.format=s[y]??y,h.format===""&&delete h.format),S&&(h.contentEncoding=S),b&&b.size>0){let E=[...b];E.length===1?h.pattern=E[0].source:E.length>1&&(a.schema.allOf=[...E.map(_=>({...this.target==="draft-7"?{type:"string"}:{},pattern:_.source}))])}break}case"number":{let h=p,{minimum:m,maximum:g,format:y,multipleOf:b,exclusiveMaximum:S,exclusiveMinimum:E}=t._zod.bag;typeof y=="string"&&y.includes("int")?h.type="integer":h.type="number",typeof E=="number"&&(h.exclusiveMinimum=E),typeof m=="number"&&(h.minimum=m,typeof E=="number"&&(E>=m?delete h.minimum:delete h.exclusiveMinimum)),typeof S=="number"&&(h.exclusiveMaximum=S),typeof g=="number"&&(h.maximum=g,typeof S=="number"&&(S<=g?delete h.maximum:delete h.exclusiveMaximum)),typeof b=="number"&&(h.multipleOf=b);break}case"boolean":{let h=p;h.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{p.type="null";break}case"any":break;case"unknown":break;case"undefined":case"never":{p.not={};break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{let h=p,{minimum:m,maximum:g}=t._zod.bag;typeof m=="number"&&(h.minItems=m),typeof g=="number"&&(h.maxItems=g),h.type="array",h.items=this.process(i.element,{...d,path:[...d.path,"items"]});break}case"object":{let h=p;h.type="object",h.properties={};let m=i.shape;for(let b in m)h.properties[b]=this.process(m[b],{...d,path:[...d.path,"properties",b]});let g=new Set(Object.keys(m)),y=new Set([...g].filter(b=>{let S=i.shape[b]._zod;return this.io==="input"?S.optin===void 0:S.optout===void 0}));y.size>0&&(h.required=Array.from(y)),i.catchall?._zod.def.type==="never"?h.additionalProperties=!1:i.catchall?i.catchall&&(h.additionalProperties=this.process(i.catchall,{...d,path:[...d.path,"additionalProperties"]})):this.io==="output"&&(h.additionalProperties=!1);break}case"union":{let h=p;h.anyOf=i.options.map((m,g)=>this.process(m,{...d,path:[...d.path,"anyOf",g]}));break}case"intersection":{let h=p,m=this.process(i.left,{...d,path:[...d.path,"allOf",0]}),g=this.process(i.right,{...d,path:[...d.path,"allOf",1]}),y=S=>"allOf"in S&&Object.keys(S).length===1,b=[...y(m)?m.allOf:[m],...y(g)?g.allOf:[g]];h.allOf=b;break}case"tuple":{let h=p;h.type="array";let m=i.items.map((b,S)=>this.process(b,{...d,path:[...d.path,"prefixItems",S]}));if(this.target==="draft-2020-12"?h.prefixItems=m:h.items=m,i.rest){let b=this.process(i.rest,{...d,path:[...d.path,"items"]});this.target==="draft-2020-12"?h.items=b:h.additionalItems=b}i.rest&&(h.items=this.process(i.rest,{...d,path:[...d.path,"items"]}));let{minimum:g,maximum:y}=t._zod.bag;typeof g=="number"&&(h.minItems=g),typeof y=="number"&&(h.maxItems=y);break}case"record":{let h=p;h.type="object",h.propertyNames=this.process(i.keyType,{...d,path:[...d.path,"propertyNames"]}),h.additionalProperties=this.process(i.valueType,{...d,path:[...d.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{let h=p,m=LTe(i.entries);m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),h.enum=m;break}case"literal":{let h=p,m=[];for(let g of i.values)if(g===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");m.push(Number(g))}else m.push(g);if(m.length!==0)if(m.length===1){let g=m[0];h.type=g===null?"null":typeof g,h.const=g}else m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),m.every(g=>typeof g=="boolean")&&(h.type="string"),m.every(g=>g===null)&&(h.type="null"),h.enum=m;break}case"file":{let h=p,m={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:y,mime:b}=t._zod.bag;g!==void 0&&(m.minLength=g),y!==void 0&&(m.maxLength=y),b?b.length===1?(m.contentMediaType=b[0],Object.assign(h,m)):h.anyOf=b.map(S=>({...m,contentMediaType:S})):Object.assign(h,m);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let h=this.process(i.innerType,d);p.anyOf=[h,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"success":{let h=p;h.type="boolean";break}case"default":{this.process(i.innerType,d),a.ref=i.innerType,p.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,d),a.ref=i.innerType,this.io==="input"&&(p._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,d),a.ref=i.innerType;let h;try{h=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}p.default=h;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let h=p,m=t._zod.pattern;if(!m)throw new Error("Pattern not found in template literal");h.type="string",h.pattern=m.source;break}case"pipe":{let h=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(h,d),a.ref=h;break}case"readonly":{this.process(i.innerType,d),a.ref=i.innerType,p.readOnly=!0;break}case"promise":{this.process(i.innerType,d),a.ref=i.innerType;break}case"optional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"lazy":{let h=t._zod.innerType;this.process(h,d),a.ref=h;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let u=this.metadataRegistry.get(t);return u&&Object.assign(a.schema,u),this.io==="input"&&Io(t)&&(delete a.schema.examples,delete a.schema.default),this.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,this.seen.get(t).schema}emit(t,n){let r={cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let s=l=>{let d=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){let m=r.external.registry.get(l[0])?.id;if(m)return{ref:r.external.uri(m)};let g=l[1].defId??l[1].schema.id??`schema${this.counter++}`;return l[1].defId=g,{defId:g,ref:`${r.external.uri("__shared")}#/${d}/${g}`}}if(l[1]===i)return{ref:"#"};let p=`#/${d}/`,h=l[1].schema.id??`__schema${this.counter++}`;return{defId:h,ref:p+h}},o=l=>{if(l[1].schema.$ref)return;let d=l[1],{ref:f,defId:p}=s(l);d.def={...d.schema},p&&(d.defId=p);let h=d.schema;for(let m in h)delete h[m];h.$ref=f};for(let l of this.seen.entries()){let d=l[1];if(t===l[0]){o(l);continue}if(r.external){let p=r.external.registry.get(l[0])?.id;if(t!==l[0]&&p){o(l);continue}}if(this.metadataRegistry.get(l[0])?.id){o(l);continue}if(d.cycle){if(r.cycles==="throw")throw new Error(`Cycle detected: #/${d.cycle?.join("/")}/ + path: iss.path ? [${Px(b)}, ...iss.path] : [${Px(b)}] + })));`),f.write(`newResult[${Px(b)}] = ${S}.value`)}f.write("payload.value = newResult;"),f.write("return payload;");let y=f.compile();return(b,S)=>y(d,b,S)},i,s=HU,o=!aTe.jitless,c=o&&LOt.value,u=t.catchall,l;e._zod.parse=(d,f)=>{l??(l=n.value);let p=d.value;if(!s(p))return d.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),d;let h=[];if(o&&c&&f?.async===!1&&f.jitless!==!0)i||(i=r(t.shape)),d=i(d,f);else{d.value={};let S=l.shape;for(let E of l.keys){let _=S[E],T=_._zod.run({value:p[E],issues:[]},f),R=_._zod.optin==="optional"&&_._zod.optout==="optional";T instanceof Promise?h.push(T.then(A=>R?Dxt(A,d,E,p):v5(A,d,E))):R?Dxt(T,d,E,p):v5(T,d,E)}}if(!u)return h.length?Promise.all(h).then(()=>d):d;let m=[],g=l.keySet,y=u._zod,b=y.def.type;for(let S of Object.keys(p)){if(g.has(S))continue;if(b==="never"){m.push(S);continue}let E=y.run({value:p[S],issues:[]},f);E instanceof Promise?h.push(E.then(_=>v5(_,d,S))):v5(E,d,S)}return m.length&&d.issues.push({code:"unrecognized_keys",keys:m,input:p,inst:e}),h.length?Promise.all(h).then(()=>d):d}});nPt=ge("$ZodUnion",(e,t)=>{li.init(e,t),ki(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ki(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ki(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ki(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>Q5(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1,s=[];for(let o of t.options){let a=o._zod.run({value:n.value,issues:[]},r);if(a instanceof Promise)s.push(a),i=!0;else{if(a.issues.length===0)return a;s.push(a)}}return i?Promise.all(s).then(o=>Lxt(o,n,e,r)):Lxt(s,n,e,r)}}),scr=ge("$ZodDiscriminatedUnion",(e,t)=>{nPt.init(e,t);let n=e._zod.parse;ki(e._zod,"propValues",()=>{let i={};for(let s of t.options){let o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,c]of Object.entries(o)){i[a]||(i[a]=new Set);for(let u of c)i[a].add(u)}}return i});let r=J5(()=>{let i=t.options,s=new Map;for(let o of i){let a=o._zod.propValues[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,o)}}return s});e._zod.parse=(i,s)=>{let o=i.value;if(!HU(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;let a=r.value.get(o?.[t.discriminator]);return a?a._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:o,path:[t.discriminator],inst:e}),i)}}),ocr=ge("$ZodIntersection",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([c,u])=>Uxt(n,c,u)):Uxt(n,s,o)}});acr=ge("$ZodRecord",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!qU(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;let s=[];if(t.keyType._zod.values){let o=t.keyType._zod.values;n.value={};for(let c of o)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=t.valueType._zod.run({value:i[c],issues:[]},r);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&n.issues.push(...nE(c,l.issues)),n.value[c]=l.value})):(u.issues.length&&n.issues.push(...nE(c,u.issues)),n.value[c]=u.value)}let a;for(let c in i)o.has(c)||(a=a??[],a.push(c));a&&a.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:a})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o==="__proto__")continue;let a=t.keyType._zod.run({value:o,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>ty(u,r,ey())),input:o,path:[o],inst:e}),n.value[a.value]=a.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&n.issues.push(...nE(o,u.issues)),n.value[a.value]=u.value})):(c.issues.length&&n.issues.push(...nE(o,c.issues)),n.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),ccr=ge("$ZodEnum",(e,t)=>{li.init(e,t);let n=UTe(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>UOt.has(typeof r)).map(r=>typeof r=="string"?Jx(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{let s=r.value;return e._zod.values.has(s)||r.issues.push({code:"invalid_value",values:n,input:s,inst:e}),r}}),ucr=ge("$ZodLiteral",(e,t)=>{li.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?Jx(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),lcr=ge("$ZodTransform",(e,t)=>{li.init(e,t),e._zod.parse=(n,r)=>{let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new Jv;return n.value=i,n}}),dcr=ge("$ZodOptional",(e,t)=>{li.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ki(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ki(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${Q5(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),fcr=ge("$ZodNullable",(e,t)=>{li.init(e,t),ki(e._zod,"optin",()=>t.innerType._zod.optin),ki(e._zod,"optout",()=>t.innerType._zod.optout),ki(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${Q5(n.source)}|null)$`):void 0}),ki(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),pcr=ge("$ZodDefault",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>Fxt(s,t)):Fxt(i,t)}});hcr=ge("$ZodPrefault",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),mcr=ge("$ZodNonOptional",(e,t)=>{li.init(e,t),ki(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>jxt(s,e)):jxt(i,e)}});gcr=ge("$ZodCatch",(e,t)=>{li.init(e,t),e._zod.optin="optional",ki(e._zod,"optout",()=>t.innerType._zod.optout),ki(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>ty(o,r,ey()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>ty(s,r,ey()))},input:n.value}),n.issues=[]),n)}}),ycr=ge("$ZodPipe",(e,t)=>{li.init(e,t),ki(e._zod,"values",()=>t.in._zod.values),ki(e._zod,"optin",()=>t.in._zod.optin),ki(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>Hxt(s,t,r)):Hxt(i,t,r)}});Scr=ge("$ZodReadonly",(e,t)=>{li.init(e,t),ki(e._zod,"propValues",()=>t.innerType._zod.propValues),ki(e._zod,"values",()=>t.innerType._zod.values),ki(e._zod,"optin",()=>t.innerType._zod.optin),ki(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(qxt):qxt(i)}});bcr=ge("$ZodCustom",(e,t)=>{$u.init(e,t),li.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>Bxt(s,n,r,e));Bxt(i,n,r,e)}});Ecr=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},_cr=()=>{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"}};function t(r){return e[r]??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"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${Ecr(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${HTe(r.values[0])}`:`Invalid option: expected one of ${cTe(r.values,"|")}`;case"too_big":{let i=r.inclusive?"<=":"<",s=t(r.origin);return s?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{let i=r.inclusive?">=":">",s=t(r.origin);return s?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${s.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{let i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${cTe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};L5=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}remove(t){return this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};AU=vcr();F5=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??AU,this.target=t?.target??"draft-2020-12",this.unrepresentable=t?.unrepresentable??"throw",this.override=t?.override??(()=>{}),this.io=t?.io??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var r;let i=t._zod.def,s={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},o=this.seen.get(t);if(o)return o.count++,n.schemaPath.includes(t)&&(o.cycle=n.path),o.schema;let a={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,a);let c=t._zod.toJSONSchema?.();if(c)a.schema=c;else{let d={...n,schemaPath:[...n.schemaPath,t],path:n.path},f=t._zod.parent;if(f)a.ref=f,this.process(f,d),this.seen.get(f).isParent=!0;else{let p=a.schema;switch(i.type){case"string":{let h=p;h.type="string";let{minimum:m,maximum:g,format:y,patterns:b,contentEncoding:S}=t._zod.bag;if(typeof m=="number"&&(h.minLength=m),typeof g=="number"&&(h.maxLength=g),y&&(h.format=s[y]??y,h.format===""&&delete h.format),S&&(h.contentEncoding=S),b&&b.size>0){let E=[...b];E.length===1?h.pattern=E[0].source:E.length>1&&(a.schema.allOf=[...E.map(_=>({...this.target==="draft-7"?{type:"string"}:{},pattern:_.source}))])}break}case"number":{let h=p,{minimum:m,maximum:g,format:y,multipleOf:b,exclusiveMaximum:S,exclusiveMinimum:E}=t._zod.bag;typeof y=="string"&&y.includes("int")?h.type="integer":h.type="number",typeof E=="number"&&(h.exclusiveMinimum=E),typeof m=="number"&&(h.minimum=m,typeof E=="number"&&(E>=m?delete h.minimum:delete h.exclusiveMinimum)),typeof S=="number"&&(h.exclusiveMaximum=S),typeof g=="number"&&(h.maximum=g,typeof S=="number"&&(S<=g?delete h.maximum:delete h.exclusiveMaximum)),typeof b=="number"&&(h.multipleOf=b);break}case"boolean":{let h=p;h.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{p.type="null";break}case"any":break;case"unknown":break;case"undefined":case"never":{p.not={};break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{let h=p,{minimum:m,maximum:g}=t._zod.bag;typeof m=="number"&&(h.minItems=m),typeof g=="number"&&(h.maxItems=g),h.type="array",h.items=this.process(i.element,{...d,path:[...d.path,"items"]});break}case"object":{let h=p;h.type="object",h.properties={};let m=i.shape;for(let b in m)h.properties[b]=this.process(m[b],{...d,path:[...d.path,"properties",b]});let g=new Set(Object.keys(m)),y=new Set([...g].filter(b=>{let S=i.shape[b]._zod;return this.io==="input"?S.optin===void 0:S.optout===void 0}));y.size>0&&(h.required=Array.from(y)),i.catchall?._zod.def.type==="never"?h.additionalProperties=!1:i.catchall?i.catchall&&(h.additionalProperties=this.process(i.catchall,{...d,path:[...d.path,"additionalProperties"]})):this.io==="output"&&(h.additionalProperties=!1);break}case"union":{let h=p;h.anyOf=i.options.map((m,g)=>this.process(m,{...d,path:[...d.path,"anyOf",g]}));break}case"intersection":{let h=p,m=this.process(i.left,{...d,path:[...d.path,"allOf",0]}),g=this.process(i.right,{...d,path:[...d.path,"allOf",1]}),y=S=>"allOf"in S&&Object.keys(S).length===1,b=[...y(m)?m.allOf:[m],...y(g)?g.allOf:[g]];h.allOf=b;break}case"tuple":{let h=p;h.type="array";let m=i.items.map((b,S)=>this.process(b,{...d,path:[...d.path,"prefixItems",S]}));if(this.target==="draft-2020-12"?h.prefixItems=m:h.items=m,i.rest){let b=this.process(i.rest,{...d,path:[...d.path,"items"]});this.target==="draft-2020-12"?h.items=b:h.additionalItems=b}i.rest&&(h.items=this.process(i.rest,{...d,path:[...d.path,"items"]}));let{minimum:g,maximum:y}=t._zod.bag;typeof g=="number"&&(h.minItems=g),typeof y=="number"&&(h.maxItems=y);break}case"record":{let h=p;h.type="object",h.propertyNames=this.process(i.keyType,{...d,path:[...d.path,"propertyNames"]}),h.additionalProperties=this.process(i.valueType,{...d,path:[...d.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{let h=p,m=UTe(i.entries);m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),h.enum=m;break}case"literal":{let h=p,m=[];for(let g of i.values)if(g===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");m.push(Number(g))}else m.push(g);if(m.length!==0)if(m.length===1){let g=m[0];h.type=g===null?"null":typeof g,h.const=g}else m.every(g=>typeof g=="number")&&(h.type="number"),m.every(g=>typeof g=="string")&&(h.type="string"),m.every(g=>typeof g=="boolean")&&(h.type="string"),m.every(g=>g===null)&&(h.type="null"),h.enum=m;break}case"file":{let h=p,m={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:y,mime:b}=t._zod.bag;g!==void 0&&(m.minLength=g),y!==void 0&&(m.maxLength=y),b?b.length===1?(m.contentMediaType=b[0],Object.assign(h,m)):h.anyOf=b.map(S=>({...m,contentMediaType:S})):Object.assign(h,m);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let h=this.process(i.innerType,d);p.anyOf=[h,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"success":{let h=p;h.type="boolean";break}case"default":{this.process(i.innerType,d),a.ref=i.innerType,p.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,d),a.ref=i.innerType,this.io==="input"&&(p._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,d),a.ref=i.innerType;let h;try{h=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}p.default=h;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let h=p,m=t._zod.pattern;if(!m)throw new Error("Pattern not found in template literal");h.type="string",h.pattern=m.source;break}case"pipe":{let h=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(h,d),a.ref=h;break}case"readonly":{this.process(i.innerType,d),a.ref=i.innerType,p.readOnly=!0;break}case"promise":{this.process(i.innerType,d),a.ref=i.innerType;break}case"optional":{this.process(i.innerType,d),a.ref=i.innerType;break}case"lazy":{let h=t._zod.innerType;this.process(h,d),a.ref=h;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let u=this.metadataRegistry.get(t);return u&&Object.assign(a.schema,u),this.io==="input"&&Io(t)&&(delete a.schema.examples,delete a.schema.default),this.io==="input"&&a.schema._prefault&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,this.seen.get(t).schema}emit(t,n){let r={cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");let s=l=>{let d=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){let m=r.external.registry.get(l[0])?.id;if(m)return{ref:r.external.uri(m)};let g=l[1].defId??l[1].schema.id??`schema${this.counter++}`;return l[1].defId=g,{defId:g,ref:`${r.external.uri("__shared")}#/${d}/${g}`}}if(l[1]===i)return{ref:"#"};let p=`#/${d}/`,h=l[1].schema.id??`__schema${this.counter++}`;return{defId:h,ref:p+h}},o=l=>{if(l[1].schema.$ref)return;let d=l[1],{ref:f,defId:p}=s(l);d.def={...d.schema},p&&(d.defId=p);let h=d.schema;for(let m in h)delete h[m];h.$ref=f};for(let l of this.seen.entries()){let d=l[1];if(t===l[0]){o(l);continue}if(r.external){let p=r.external.registry.get(l[0])?.id;if(t!==l[0]&&p){o(l);continue}}if(this.metadataRegistry.get(l[0])?.id){o(l);continue}if(d.cycle){if(r.cycles==="throw")throw new Error(`Cycle detected: #/${d.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);r.cycles==="ref"&&o(l);continue}if(d.count>1&&r.reused==="ref"){o(l);continue}}let a=(l,d)=>{let f=this.seen.get(l),p=f.def??f.schema,h={...p};if(f.ref===null)return;let m=f.ref;if(f.ref=null,m){a(m,d);let g=this.seen.get(m).schema;g.$ref&&d.target==="draft-7"?(p.allOf=p.allOf??[],p.allOf.push(g)):(Object.assign(p,g),Object.assign(p,h))}f.isParent||this.override({zodSchema:l,jsonSchema:p,path:f.path??[]})};for(let l of[...this.seen.entries()].reverse())a(l[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,i.def);let u=r.external?.defs??{};for(let l of this.seen.entries()){let d=l[1];d.def&&d.defId&&(u[d.defId]=d.def)}!r.external&&Object.keys(u).length>0&&(this.target==="draft-2020-12"?c.$defs=u:c.definitions=u);try{return JSON.parse(JSON.stringify(c))}catch{throw new Error("Error converting schema to JSON.")}}};gur=ge("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");li.init(e,t),e.def=t,e.parse=(n,r)=>For(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>HTe(e,n,r),e.parseAsync=async(n,r)=>jor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>qTe(e,n,r),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>ny(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e)}),yur=ge("ZodMiniObject",(e,t)=>{tPt.init(e,t),gur.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape)});oPt={};lOt(oPt,{time:()=>fPt,duration:()=>hPt,datetime:()=>cPt,date:()=>lPt,ZodISOTime:()=>dPt,ZodISODuration:()=>pPt,ZodISODateTime:()=>aPt,ZodISODate:()=>uPt});aPt=ge("ZodISODateTime",(e,t)=>{jar.init(e,t),os.init(e,t)});uPt=ge("ZodISODate",(e,t)=>{Har.init(e,t),os.init(e,t)});dPt=ge("ZodISOTime",(e,t)=>{qar.init(e,t),os.init(e,t)});pPt=ge("ZodISODuration",(e,t)=>{Bar.init(e,t),os.init(e,t)});mPt=(e,t)=>{BOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Uor(e,n)},flatten:{value:n=>Lor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},RNi=ge("ZodError",mPt),t8=ge("ZodError",mPt,{Parent:Error}),Eur=zOt(t8),_ur=GOt(t8),Tur=VOt(t8),vur=WOt(t8),ss=ge("ZodType",(e,t)=>(li.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>ny(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>Eur(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Tur(e,n,r),e.parseAsync=async(n,r)=>_ur(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>vur(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(plr(n,r)),e.superRefine=n=>e.check(hlr(n)),e.overwrite=n=>e.check(qU(n)),e.optional=()=>yt(e),e.nullable=()=>Jxt(e),e.nullish=()=>yt(Jxt(e)),e.nonoptional=n=>slr(e,n),e.array=()=>er(e),e.or=n=>Vi([e,n]),e.and=n=>zTe(e,n),e.transform=n=>fTe(e,TPt(n)),e.default=n=>nlr(e,n),e.prefault=n=>ilr(e,n),e.catch=n=>alr(e,n),e.pipe=n=>fTe(e,n),e.readonly=()=>llr(e),e.describe=n=>{let r=e.clone();return vU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return vU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return vU.get(e);let r=e.clone();return vU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),gPt=ge("_ZodString",(e,t)=>{BTe.init(e,t),ss.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(nur(...r)),e.includes=(...r)=>e.check(sur(...r)),e.startsWith=(...r)=>e.check(our(...r)),e.endsWith=(...r)=>e.check(aur(...r)),e.min=(...r)=>e.check(L5(...r)),e.max=(...r)=>e.check(rPt(...r)),e.length=(...r)=>e.check(iPt(...r)),e.nonempty=(...r)=>e.check(L5(1,...r)),e.lowercase=r=>e.check(rur(r)),e.uppercase=r=>e.check(iur(r)),e.trim=()=>e.check(uur()),e.normalize=(...r)=>e.check(cur(...r)),e.toLowerCase=()=>e.check(lur()),e.toUpperCase=()=>e.check(dur())}),Rur=ge("ZodString",(e,t)=>{BTe.init(e,t),gPt.init(e,t),e.email=n=>e.check(Acr(Aur,n)),e.url=n=>e.check(Ocr(wur,n)),e.jwt=n=>e.check(Vcr(qur,n)),e.emoji=n=>e.check(Pcr(kur,n)),e.guid=n=>e.check(zxt(Yxt,n)),e.uuid=n=>e.check(wcr(v5,n)),e.uuidv4=n=>e.check(kcr(v5,n)),e.uuidv6=n=>e.check(Icr(v5,n)),e.uuidv7=n=>e.check(xcr(v5,n)),e.nanoid=n=>e.check(Ncr(Iur,n)),e.guid=n=>e.check(zxt(Yxt,n)),e.cuid=n=>e.check(Ccr(xur,n)),e.cuid2=n=>e.check(Mcr(Our,n)),e.ulid=n=>e.check(Dcr(Pur,n)),e.base64=n=>e.check(Bcr(Fur,n)),e.base64url=n=>e.check(zcr(jur,n)),e.xid=n=>e.check(Lcr(Nur,n)),e.ksuid=n=>e.check(Ucr(Cur,n)),e.ipv4=n=>e.check(Fcr(Mur,n)),e.ipv6=n=>e.check(jcr(Dur,n)),e.cidrv4=n=>e.check(Hcr(Lur,n)),e.cidrv6=n=>e.check(qcr(Uur,n)),e.e164=n=>e.check(Gcr(Hur,n)),e.datetime=n=>e.check(cPt(n)),e.date=n=>e.check(lPt(n)),e.time=n=>e.check(fPt(n)),e.duration=n=>e.check(hPt(n))});os=ge("ZodStringFormat",(e,t)=>{Gi.init(e,t),gPt.init(e,t)}),Aur=ge("ZodEmail",(e,t)=>{Oar.init(e,t),os.init(e,t)}),Yxt=ge("ZodGUID",(e,t)=>{Iar.init(e,t),os.init(e,t)}),v5=ge("ZodUUID",(e,t)=>{xar.init(e,t),os.init(e,t)}),wur=ge("ZodURL",(e,t)=>{Par.init(e,t),os.init(e,t)}),kur=ge("ZodEmoji",(e,t)=>{Nar.init(e,t),os.init(e,t)}),Iur=ge("ZodNanoID",(e,t)=>{Car.init(e,t),os.init(e,t)}),xur=ge("ZodCUID",(e,t)=>{Mar.init(e,t),os.init(e,t)}),Our=ge("ZodCUID2",(e,t)=>{Dar.init(e,t),os.init(e,t)}),Pur=ge("ZodULID",(e,t)=>{Lar.init(e,t),os.init(e,t)}),Nur=ge("ZodXID",(e,t)=>{Uar.init(e,t),os.init(e,t)}),Cur=ge("ZodKSUID",(e,t)=>{Far.init(e,t),os.init(e,t)}),Mur=ge("ZodIPv4",(e,t)=>{zar.init(e,t),os.init(e,t)}),Dur=ge("ZodIPv6",(e,t)=>{Gar.init(e,t),os.init(e,t)}),Lur=ge("ZodCIDRv4",(e,t)=>{Var.init(e,t),os.init(e,t)}),Uur=ge("ZodCIDRv6",(e,t)=>{War.init(e,t),os.init(e,t)}),Fur=ge("ZodBase64",(e,t)=>{Kar.init(e,t),os.init(e,t)}),jur=ge("ZodBase64URL",(e,t)=>{Zar.init(e,t),os.init(e,t)}),Hur=ge("ZodE164",(e,t)=>{Jar.init(e,t),os.init(e,t)}),qur=ge("ZodJWT",(e,t)=>{Qar.init(e,t),os.init(e,t)}),yPt=ge("ZodNumber",(e,t)=>{ePt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check(Vxt(r,i)),e.gte=(r,i)=>e.check(W_e(r,i)),e.min=(r,i)=>e.check(W_e(r,i)),e.lt=(r,i)=>e.check(Gxt(r,i)),e.lte=(r,i)=>e.check(V_e(r,i)),e.max=(r,i)=>e.check(V_e(r,i)),e.int=r=>e.check(Zxt(r)),e.safe=r=>e.check(Zxt(r)),e.positive=r=>e.check(Vxt(0,r)),e.nonnegative=r=>e.check(W_e(0,r)),e.negative=r=>e.check(Gxt(0,r)),e.nonpositive=r=>e.check(V_e(0,r)),e.multipleOf=(r,i)=>e.check(Wxt(r,i)),e.step=(r,i)=>e.check(Wxt(r,i)),e.finite=()=>e;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??.5),e.isFinite=!0,e.format=n.format??null});Bur=ge("ZodNumberFormat",(e,t)=>{$ar.init(e,t),yPt.init(e,t)});zur=ge("ZodBoolean",(e,t)=>{ecr.init(e,t),ss.init(e,t)});Gur=ge("ZodNull",(e,t)=>{tcr.init(e,t),ss.init(e,t)});Vur=ge("ZodUnknown",(e,t)=>{ncr.init(e,t),ss.init(e,t)});Wur=ge("ZodNever",(e,t)=>{rcr.init(e,t),ss.init(e,t)});Yur=ge("ZodArray",(e,t)=>{icr.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(L5(n,r)),e.nonempty=n=>e.check(L5(1,n)),e.max=(n,r)=>e.check(rPt(n,r)),e.length=(n,r)=>e.check(iPt(n,r)),e.unwrap=()=>e.element});bPt=ge("ZodObject",(e,t)=>{tPt.init(e,t),ss.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Rc(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:xo()}),e.loose=()=>e.clone({...e._zod.def,catchall:xo()}),e.strict=()=>e.clone({...e._zod.def,catchall:Kur()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>Gr.extend(e,n),e.merge=n=>Gr.merge(e,n),e.pick=n=>Gr.pick(e,n),e.omit=n=>Gr.omit(e,n),e.partial=(...n)=>Gr.partial(vPt,e,n[0]),e.required=(...n)=>Gr.required(RPt,e,n[0])});EPt=ge("ZodUnion",(e,t)=>{nPt.init(e,t),ss.init(e,t),e.options=t.options});Zur=ge("ZodDiscriminatedUnion",(e,t)=>{EPt.init(e,t),scr.init(e,t)});Jur=ge("ZodIntersection",(e,t)=>{ocr.init(e,t),ss.init(e,t)});Xur=ge("ZodRecord",(e,t)=>{acr.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});dTe=ge("ZodEnum",(e,t)=>{ccr.init(e,t),ss.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new dTe({...t,checks:[],...Gr.normalizeParams(i),entries:s})},e.exclude=(r,i)=>{let s={...t.entries};for(let o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new dTe({...t,checks:[],...Gr.normalizeParams(i),entries:s})}});Qur=ge("ZodLiteral",(e,t)=>{ucr.init(e,t),ss.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});$ur=ge("ZodTransform",(e,t)=>{lcr.init(e,t),ss.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(Gr.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(Gr.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});vPt=ge("ZodOptional",(e,t)=>{dcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});elr=ge("ZodNullable",(e,t)=>{fcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});tlr=ge("ZodDefault",(e,t)=>{pcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});rlr=ge("ZodPrefault",(e,t)=>{hcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});RPt=ge("ZodNonOptional",(e,t)=>{mcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});olr=ge("ZodCatch",(e,t)=>{gcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});clr=ge("ZodPipe",(e,t)=>{ycr.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});ulr=ge("ZodReadonly",(e,t)=>{Scr.init(e,t),ss.init(e,t)});APt=ge("ZodCustom",(e,t)=>{bcr.init(e,t),ss.init(e,t)});ey(Tcr());kPt="2025-11-25",mlr=[kPt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Jg="io.modelcontextprotocol/related-task",n8="2.0",sm=flr(e=>e!==null&&(typeof e=="object"||typeof e=="function")),IPt=Vi([he(),ui().int()]),xPt=he(),glr=Sp({ttl:Vi([ui(),SPt()]).optional(),pollInterval:ui().optional()}),GTe=Sp({taskId:he()}),ylr=Sp({progressToken:IPt.optional(),[Jg]:GTe.optional()}),el=Sp({task:glr.optional(),_meta:ylr.optional()}),ja=ze({method:he(),params:el.optional()}),Xv=Sp({_meta:ze({[Jg]:yt(GTe)}).passthrough().optional()}),Xd=ze({method:he(),params:Xv.optional()}),Ac=Sp({_meta:Sp({[Jg]:GTe.optional()}).optional()}),r8=Vi([he(),ui().int()]),OPt=ze({jsonrpc:St(n8),id:r8,...ja.shape}).strict(),Xxt=e=>OPt.safeParse(e).success,PPt=ze({jsonrpc:St(n8),...Xd.shape}).strict(),Slr=e=>PPt.safeParse(e).success,NPt=ze({jsonrpc:St(n8),id:r8,result:Ac}).strict(),R5=e=>NPt.safeParse(e).success;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Ft||(Ft={}));CPt=ze({jsonrpc:St(n8),id:r8,error:ze({code:ui().int(),message:he(),data:yt(xo())})}).strict(),blr=e=>CPt.safeParse(e).success,ANi=Vi([OPt,PPt,NPt,CPt]),VTe=Ac.strict(),Elr=Xv.extend({requestId:r8,reason:he().optional()}),WTe=Xd.extend({method:St("notifications/cancelled"),params:Elr}),_lr=ze({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),zU=ze({icons:er(_lr).optional()}),Vx=ze({name:he(),title:he().optional()}),MPt=Vx.extend({...Vx.shape,...zU.shape,version:he(),websiteUrl:he().optional()}),Tlr=zTe(ze({applyDefaults:vc().optional()}),Oo(he(),xo())),vlr=wPt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,zTe(ze({form:Tlr.optional(),url:sm.optional()}),Oo(he(),xo()).optional())),Rlr=ze({list:yt(ze({}).passthrough()),cancel:yt(ze({}).passthrough()),requests:yt(ze({sampling:yt(ze({createMessage:yt(ze({}).passthrough())}).passthrough()),elicitation:yt(ze({create:yt(ze({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Alr=ze({list:yt(ze({}).passthrough()),cancel:yt(ze({}).passthrough()),requests:yt(ze({tools:yt(ze({call:yt(ze({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),wlr=ze({experimental:Oo(he(),sm).optional(),sampling:ze({context:sm.optional(),tools:sm.optional()}).optional(),elicitation:vlr.optional(),roots:ze({listChanged:vc().optional()}).optional(),tasks:yt(Rlr)}),klr=el.extend({protocolVersion:he(),capabilities:wlr,clientInfo:MPt}),DPt=ja.extend({method:St("initialize"),params:klr}),Ilr=ze({experimental:Oo(he(),sm).optional(),logging:sm.optional(),completions:sm.optional(),prompts:yt(ze({listChanged:yt(vc())})),resources:ze({subscribe:vc().optional(),listChanged:vc().optional()}).optional(),tools:ze({listChanged:vc().optional()}).optional(),tasks:yt(Alr)}).passthrough(),xlr=Ac.extend({protocolVersion:he(),capabilities:Ilr,serverInfo:MPt,instructions:he().optional()}),LPt=Xd.extend({method:St("notifications/initialized")}),KTe=ja.extend({method:St("ping")}),Olr=ze({progress:ui(),total:yt(ui()),message:yt(he())}),Plr=ze({...Xv.shape,...Olr.shape,progressToken:IPt}),YTe=Xd.extend({method:St("notifications/progress"),params:Plr}),Nlr=el.extend({cursor:xPt.optional()}),GU=ja.extend({params:Nlr.optional()}),VU=Ac.extend({nextCursor:yt(xPt)}),WU=ze({taskId:he(),status:Rc(["working","input_required","completed","failed","cancelled"]),ttl:Vi([ui(),SPt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),i8=Ac.extend({task:WU}),Clr=Xv.merge(WU),F5=Xd.extend({method:St("notifications/tasks/status"),params:Clr}),ZTe=ja.extend({method:St("tasks/get"),params:el.extend({taskId:he()})}),JTe=Ac.merge(WU),XTe=ja.extend({method:St("tasks/result"),params:el.extend({taskId:he()})}),QTe=GU.extend({method:St("tasks/list")}),$Te=VU.extend({tasks:er(WU)}),Mlr=ja.extend({method:St("tasks/cancel"),params:el.extend({taskId:he()})}),Dlr=Ac.merge(WU),UPt=ze({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),FPt=UPt.extend({text:he()}),eve=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),jPt=UPt.extend({blob:eve}),Jx=ze({audience:er(Rc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:oPt.datetime({offset:!0}).optional()}),HPt=ze({...Vx.shape,...zU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:Jx.optional(),_meta:yt(Sp({}))}),Llr=ze({...Vx.shape,...zU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:Jx.optional(),_meta:yt(Sp({}))}),pTe=GU.extend({method:St("resources/list")}),Ulr=VU.extend({resources:er(HPt)}),hTe=GU.extend({method:St("resources/templates/list")}),Flr=VU.extend({resourceTemplates:er(Llr)}),tve=el.extend({uri:he()}),jlr=tve,mTe=ja.extend({method:St("resources/read"),params:jlr}),Hlr=Ac.extend({contents:er(Vi([FPt,jPt]))}),qlr=Xd.extend({method:St("notifications/resources/list_changed")}),Blr=tve,zlr=ja.extend({method:St("resources/subscribe"),params:Blr}),Glr=tve,Vlr=ja.extend({method:St("resources/unsubscribe"),params:Glr}),Wlr=Xv.extend({uri:he()}),Klr=Xd.extend({method:St("notifications/resources/updated"),params:Wlr}),Ylr=ze({name:he(),description:yt(he()),required:yt(vc())}),Zlr=ze({...Vx.shape,...zU.shape,description:yt(he()),arguments:yt(er(Ylr)),_meta:yt(Sp({}))}),gTe=GU.extend({method:St("prompts/list")}),Jlr=VU.extend({prompts:er(Zlr)}),Xlr=el.extend({name:he(),arguments:Oo(he(),he()).optional()}),yTe=ja.extend({method:St("prompts/get"),params:Xlr}),nve=ze({type:St("text"),text:he(),annotations:Jx.optional(),_meta:Oo(he(),xo()).optional()}),rve=ze({type:St("image"),data:eve,mimeType:he(),annotations:Jx.optional(),_meta:Oo(he(),xo()).optional()}),ive=ze({type:St("audio"),data:eve,mimeType:he(),annotations:Jx.optional(),_meta:Oo(he(),xo()).optional()}),Qlr=ze({type:St("tool_use"),name:he(),id:he(),input:ze({}).passthrough(),_meta:yt(ze({}).passthrough())}).passthrough(),$lr=ze({type:St("resource"),resource:Vi([FPt,jPt]),annotations:Jx.optional(),_meta:Oo(he(),xo()).optional()}),edr=HPt.extend({type:St("resource_link")}),sve=Vi([nve,rve,ive,edr,$lr]),tdr=ze({role:Rc(["user","assistant"]),content:sve}),ndr=Ac.extend({description:yt(he()),messages:er(tdr)}),rdr=Xd.extend({method:St("notifications/prompts/list_changed")}),idr=ze({title:he().optional(),readOnlyHint:vc().optional(),destructiveHint:vc().optional(),idempotentHint:vc().optional(),openWorldHint:vc().optional()}),sdr=ze({taskSupport:Rc(["required","optional","forbidden"]).optional()}),qPt=ze({...Vx.shape,...zU.shape,description:he().optional(),inputSchema:ze({type:St("object"),properties:Oo(he(),sm).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:ze({type:St("object"),properties:Oo(he(),sm).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(idr),execution:yt(sdr),_meta:Oo(he(),xo()).optional()}),STe=GU.extend({method:St("tools/list")}),odr=VU.extend({tools:er(qPt)}),ove=Ac.extend({content:er(sve).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(vc())}),wNi=ove.or(Ac.extend({toolResult:xo()})),adr=el.extend({name:he(),arguments:yt(Oo(he(),xo()))}),j5=ja.extend({method:St("tools/call"),params:adr}),cdr=Xd.extend({method:St("notifications/tools/list_changed")}),H5=Rc(["debug","info","notice","warning","error","critical","alert","emergency"]),udr=el.extend({level:H5}),BPt=ja.extend({method:St("logging/setLevel"),params:udr}),ldr=Xv.extend({level:H5,logger:he().optional(),data:xo()}),ddr=Xd.extend({method:St("notifications/message"),params:ldr}),fdr=ze({name:he().optional()}),pdr=ze({hints:yt(er(fdr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),hdr=ze({mode:yt(Rc(["auto","required","none"]))}),mdr=ze({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(sve).default([]),structuredContent:ze({}).passthrough().optional(),isError:yt(vc()),_meta:yt(ze({}).passthrough())}).passthrough(),gdr=_Pt("type",[nve,rve,ive]),q5=_Pt("type",[nve,rve,ive,Qlr,mdr]),ydr=ze({role:Rc(["user","assistant"]),content:Vi([q5,er(q5)]),_meta:yt(ze({}).passthrough())}).passthrough(),Sdr=el.extend({messages:er(ydr),modelPreferences:pdr.optional(),systemPrompt:he().optional(),includeContext:Rc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:sm.optional(),tools:yt(er(qPt)),toolChoice:yt(hdr)}),bdr=ja.extend({method:St("sampling/createMessage"),params:Sdr}),zPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens"]).or(he())),role:Rc(["user","assistant"]),content:gdr}),GPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:Rc(["user","assistant"]),content:Vi([q5,er(q5)])}),Edr=ze({type:St("boolean"),title:he().optional(),description:he().optional(),default:vc().optional()}),_dr=ze({type:St("string"),title:he().optional(),description:he().optional(),minLength:ui().optional(),maxLength:ui().optional(),format:Rc(["email","uri","date","date-time"]).optional(),default:he().optional()}),Tdr=ze({type:Rc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),vdr=ze({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),Rdr=ze({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(ze({const:he(),title:he()})),default:he().optional()}),Adr=ze({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),wdr=Vi([vdr,Rdr]),kdr=ze({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:ze({type:St("string"),enum:er(he())}),default:er(he()).optional()}),Idr=ze({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:ze({anyOf:er(ze({const:he(),title:he()}))}),default:er(he()).optional()}),xdr=Vi([kdr,Idr]),Odr=Vi([Adr,wdr,xdr]),Pdr=Vi([Odr,Edr,_dr,Tdr]),Ndr=el.extend({mode:St("form").optional(),message:he(),requestedSchema:ze({type:St("object"),properties:Oo(he(),Pdr),required:er(he()).optional()})}),Cdr=el.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),Mdr=Vi([Ndr,Cdr]),Ddr=ja.extend({method:St("elicitation/create"),params:Mdr}),Ldr=Xv.extend({elicitationId:he()}),Udr=Xd.extend({method:St("notifications/elicitation/complete"),params:Ldr}),bTe=Ac.extend({action:Rc(["accept","decline","cancel"]),content:wPt(e=>e===null?void 0:e,Oo(he(),Vi([he(),ui(),vc(),er(he())])).optional())}),Fdr=ze({type:St("ref/resource"),uri:he()}),jdr=ze({type:St("ref/prompt"),name:he()}),Hdr=el.extend({ref:Vi([jdr,Fdr]),argument:ze({name:he(),value:he()}),context:ze({arguments:Oo(he(),he()).optional()}).optional()}),ETe=ja.extend({method:St("completion/complete"),params:Hdr});zdr=Ac.extend({completion:Sp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(vc())})}),Gdr=ze({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),Vdr=ja.extend({method:St("roots/list")}),VPt=Ac.extend({roots:er(Gdr)}),Wdr=Xd.extend({method:St("notifications/roots/list_changed")}),kNi=Vi([KTe,DPt,ETe,BPt,yTe,gTe,pTe,hTe,mTe,zlr,Vlr,j5,STe,ZTe,XTe,QTe]),INi=Vi([WTe,YTe,LPt,Wdr,F5]),xNi=Vi([VTe,zPt,GPt,bTe,VPt,JTe,$Te,i8]),ONi=Vi([KTe,bdr,Ddr,Vdr,ZTe,XTe,QTe]),PNi=Vi([WTe,YTe,ddr,Klr,qlr,cdr,rdr,F5,Udr]),NNi=Vi([VTe,xlr,zdr,ndr,Jlr,Ulr,Flr,Hlr,ove,odr,JTe,$Te,i8]),Et=class e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===Ft.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new _Te(i.elicitations,n)}return new e(t,n,r)}},_Te=class extends Et{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Ft.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){var t,n;return(n=(t=this.data)===null||t===void 0?void 0:t.elicitations)!==null&&n!==void 0?n:[]}};Kdr=Symbol("Let zodToJsonSchema decide on which parser to use"),Qxt={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},Ydr=e=>typeof e=="string"?{...Qxt,name:e}:{...Qxt,...e},Zdr=e=>{let t=Ydr(e),n=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([r,i])=>[i._def,{def:i._def,path:[...t.basePath,t.definitionPath,r],jsonSchema:void 0}]))}};KPt=(e,t)=>{let n=0;for(;nEr(e.innerType._def,t);efr=(e,t)=>{let n={type:"integer",format:"unix-time"};if(t.target==="openApi3")return n;for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minimum",r.value,r.message,t);break;case"max":Cr(n,"maximum",r.value,r.message,t);break}return n};ifr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;Z_e=void 0,pp={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Z_e===void 0&&(Z_e=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Z_e),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};afr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");B5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};eOt=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((r,i)=>Er(r._def,{...t,currentPath:[...t.currentPath,"anyOf",`${i}`]})).filter(r=>!!r&&(!t.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return n.length?{anyOf:n}:void 0};bfr=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return Er(e.innerType._def,t);let n=Er(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:Qu(t)},n]}:Qu(t)},Efr=(e,t)=>{if(t.pipeStrategy==="input")return Er(e.in._def,t);if(t.pipeStrategy==="output")return Er(e.out._def,t);let n=Er(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),r=Er(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,r].filter(i=>i!==void 0)}};wfr=(e,t)=>Er(e.innerType._def,t),kfr=(e,t,n)=>{switch(t){case De.ZodString:return JPt(e,n);case De.ZodNumber:return mfr(e,n);case De.ZodObject:return gfr(e,n);case De.ZodBigInt:return Xdr(e,n);case De.ZodBoolean:return Qdr();case De.ZodDate:return ZPt(e,n);case De.ZodUndefined:return Rfr(n);case De.ZodNull:return ffr(n);case De.ZodArray:return Jdr(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return pfr(e,n);case De.ZodIntersection:return sfr(e,n);case De.ZodTuple:return vfr(e,n);case De.ZodRecord:return XPt(e,n);case De.ZodLiteral:return ofr(e,n);case De.ZodEnum:return rfr(e);case De.ZodNativeEnum:return lfr(e);case De.ZodNullable:return hfr(e,n);case De.ZodOptional:return bfr(e,n);case De.ZodMap:return ufr(e,n);case De.ZodSet:return Tfr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return _fr(e,n);case De.ZodNaN:case De.ZodNever:return dfr(n);case De.ZodEffects:return nfr(e,n);case De.ZodAny:return Qu(n);case De.ZodUnknown:return Afr(n);case De.ZodDefault:return tfr(e,n);case De.ZodBranded:return YPt(e,n);case De.ZodReadonly:return wfr(e,n);case De.ZodCatch:return $dr(e,n);case De.ZodPipeline:return Efr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};Ifr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:KPt(t.currentPath,e.path)};case"none":case"seen":return e.path.lengtht.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Qu(t)):t.$refStrategy==="seen"?Qu(t):void 0}},xfr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),Ofr=(e,t)=>{let n=Zdr(t),r=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((c,[u,l])=>({...c,[u]:Er(l._def,{...n,currentPath:[...n.basePath,n.definitionPath,u]},!0)??Qu(n)}),{}):void 0,i=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,s=Er(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??Qu(n),o=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;o!==void 0&&(s.title=o),n.flags.hasReferencedOpenAiAnyType&&(r||(r={}),r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:n.$refStrategy==="relative"?"1":[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join("/")}}));let a=i===void 0?r?{...s,[n.definitionPath]:r}:s:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,i].join("/"),[n.definitionPath]:{...r,[i]:s}};return n.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in a||"oneOf"in a||"allOf"in a||"type"in a&&Array.isArray(a.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),a};Nfr=6e4,TTe=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(WTe,n=>{this._oncancel(n)}),this.setNotificationHandler(YTe,n=>{this._onprogress(n)}),this.setRequestHandler(KTe,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(ZTe,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new Et(Ft.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(XTe,async(n,r)=>{let i=async()=>{var s;let o=n.params.taskId;if(this._taskMessageQueue){let c;for(;c=await this._taskMessageQueue.dequeue(o,r.sessionId);){if(c.type==="response"||c.type==="error"){let u=c.message,l=u.id,d=this._requestResolvers.get(l);if(d)if(this._requestResolvers.delete(l),c.type==="response")d(u);else{let f=u,p=new Et(f.error.code,f.error.message,f.error.data);d(p)}else{let f=c.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${l}`))}continue}await((s=this._transport)===null||s===void 0?void 0:s.send(c.message,{relatedRequestId:r.requestId}))}}let a=await this._taskStore.getTask(o,r.sessionId);if(!a)throw new Et(Ft.InvalidParams,`Task not found: ${o}`);if(!Yv(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if(Yv(a.status)){let c=await this._taskStore.getTaskResult(o,r.sessionId);return this._clearTaskQueue(o),{...c,_meta:{...c._meta,[Jg]:{taskId:o}}}}return await i()};return await i()}),this.setRequestHandler(QTe,async(n,r)=>{var i;try{let{tasks:s,nextCursor:o}=await this._taskStore.listTasks((i=n.params)===null||i===void 0?void 0:i.cursor,r.sessionId);return{tasks:s,nextCursor:o,_meta:{}}}catch(s){throw new Et(Ft.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(Mlr,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new Et(Ft.InvalidParams,`Task not found: ${n.params.taskId}`);if(Yv(i.status))throw new Et(Ft.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new Et(Ft.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof Et?i:new Et(Ft.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){let n=this._requestHandlerAbortControllers.get(t.params.requestId);n?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),Et.fromError(Ft.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){var n,r,i;this._transport=t;let s=(n=this.transport)===null||n===void 0?void 0:n.onclose;this._transport.onclose=()=>{s?.(),this._onclose()};let o=(r=this.transport)===null||r===void 0?void 0:r.onerror;this._transport.onerror=c=>{o?.(c),this._onerror(c)};let a=(i=this._transport)===null||i===void 0?void 0:i.onmessage;this._transport.onmessage=(c,u)=>{a?.(c,u),R5(c)||blr(c)?this._onresponse(c):Xxt(c)?this._onrequest(c,u):Slr(c)?this._onnotification(c):this._onerror(new Error(`Unknown message type: ${JSON.stringify(c)}`))},await this._transport.start()}_onclose(){var t;let n=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=Et.fromError(Ft.ConnectionClosed,"Connection closed");this._transport=void 0,(t=this.onclose)===null||t===void 0||t.call(this);for(let i of n.values())i(r)}_onerror(t){var n;(n=this.onerror)===null||n===void 0||n.call(this,t)}_onnotification(t){var n;let r=(n=this._notificationHandlers.get(t.method))!==null&&n!==void 0?n:this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(i=>this._onerror(new Error(`Uncaught error in notification handler: ${i}`)))}_onrequest(t,n){var r,i,s,o,a,c;let u=(r=this._requestHandlers.get(t.method))!==null&&r!==void 0?r:this.fallbackRequestHandler,l=this._transport,d=(o=(s=(i=t.params)===null||i===void 0?void 0:i._meta)===null||s===void 0?void 0:s[Jg])===null||o===void 0?void 0:o.taskId;if(u===void 0){let g={jsonrpc:"2.0",id:t.id,error:{code:Ft.MethodNotFound,message:"Method not found"}};d&&this._taskMessageQueue?this._enqueueTaskMessage(d,{type:"error",message:g,timestamp:Date.now()},l?.sessionId).catch(y=>this._onerror(new Error(`Failed to enqueue error response: ${y}`))):l?.send(g).catch(y=>this._onerror(new Error(`Failed to send an error response: ${y}`)));return}let f=new AbortController;this._requestHandlerAbortControllers.set(t.id,f);let p=(a=t.params)===null||a===void 0?void 0:a.task,h=this._taskStore?this.requestTaskStore(t,l?.sessionId):void 0,m={signal:f.signal,sessionId:l?.sessionId,_meta:(c=t.params)===null||c===void 0?void 0:c._meta,sendNotification:async g=>{let y={relatedRequestId:t.id};d&&(y.relatedTask={taskId:d}),await this.notification(g,y)},sendRequest:async(g,y,b)=>{var S,E;let _={...b,relatedRequestId:t.id};d&&!_.relatedTask&&(_.relatedTask={taskId:d});let T=(E=(S=_.relatedTask)===null||S===void 0?void 0:S.taskId)!==null&&E!==void 0?E:d;return T&&h&&await h.updateTaskStatus(T,"input_required"),await this.request(g,y,_)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:d,taskStore:h,taskRequestedTtl:p?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{p&&this.assertTaskHandlerCapability(t.method)}).then(()=>u(t,m)).then(async g=>{if(f.signal.aborted)return;let y={result:g,jsonrpc:"2.0",id:t.id};d&&this._taskMessageQueue?await this._enqueueTaskMessage(d,{type:"response",message:y,timestamp:Date.now()},l?.sessionId):await l?.send(y)},async g=>{var y;if(f.signal.aborted)return;let b={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(g.code)?g.code:Ft.InternalError,message:(y=g.message)!==null&&y!==void 0?y:"Internal error",...g.data!==void 0&&{data:g.data}}};d&&this._taskMessageQueue?await this._enqueueTaskMessage(d,{type:"error",message:b,timestamp:Date.now()},l?.sessionId):await l?.send(b)}).catch(g=>this._onerror(new Error(`Failed to send response: ${g}`))).finally(()=>{this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...r}=t.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(r)}_onresponse(t){let n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),R5(t))r(t);else{let o=new Et(t.error.code,t.error.message,t.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(R5(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),R5(t))i(t);else{let o=Et.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){var t;await((t=this._transport)===null||t===void 0?void 0:t.close())}async*requestStream(t,n,r){var i,s,o,a;let{task:c}=r??{};if(!c){try{yield{type:"result",result:await this.request(t,n,r)}}catch(l){yield{type:"error",error:l instanceof Et?l:new Et(Ft.InternalError,String(l))}}return}let u;try{let l=await this.request(t,i8,r);if(l.task)u=l.task.taskId,yield{type:"taskCreated",task:l.task};else throw new Et(Ft.InternalError,"Task creation did not return a task");for(;;){let d=await this.getTask({taskId:u},r);if(yield{type:"taskStatus",task:d},Yv(d.status)){d.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)}:d.status==="failed"?yield{type:"error",error:new Et(Ft.InternalError,`Task ${u} failed`)}:d.status==="cancelled"&&(yield{type:"error",error:new Et(Ft.InternalError,`Task ${u} was cancelled`)});return}if(d.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)};return}let f=(o=(i=d.pollInterval)!==null&&i!==void 0?i:(s=this._options)===null||s===void 0?void 0:s.defaultTaskPollInterval)!==null&&o!==void 0?o:1e3;await new Promise(p=>setTimeout(p,f)),(a=r?.signal)===null||a===void 0||a.throwIfAborted()}}catch(l){yield{type:"error",error:l instanceof Et?l:new Et(Ft.InternalError,String(l))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{var d,f,p,h,m,g,y;let b=x=>{l(x)};if(!this._transport){b(new Error("Not connected"));return}if(((d=this._options)===null||d===void 0?void 0:d.enforceStrictCapabilities)===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(x){b(x);return}(f=r?.signal)===null||f===void 0||f.throwIfAborted();let S=this._requestMessageId++,E={...t,jsonrpc:"2.0",id:S};r?.onprogress&&(this._progressHandlers.set(S,r.onprogress),E.params={...t.params,_meta:{...((p=t.params)===null||p===void 0?void 0:p._meta)||{},progressToken:S}}),a&&(E.params={...E.params,task:a}),c&&(E.params={...E.params,_meta:{...((h=E.params)===null||h===void 0?void 0:h._meta)||{},[Jg]:c}});let _=x=>{var k;this._responseHandlers.delete(S),this._progressHandlers.delete(S),this._cleanupTimeout(S),(k=this._transport)===null||k===void 0||k.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:S,reason:String(x)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(N=>this._onerror(new Error(`Failed to send cancellation: ${N}`)));let P=x instanceof Et?x:new Et(Ft.RequestTimeout,String(x));l(P)};this._responseHandlers.set(S,x=>{var k;if(!(!((k=r?.signal)===null||k===void 0)&&k.aborted)){if(x instanceof Error)return l(x);try{let P=AU(n,x.result);P.success?u(P.data):l(P.error)}catch(P){l(P)}}}),(m=r?.signal)===null||m===void 0||m.addEventListener("abort",()=>{var x;_((x=r?.signal)===null||x===void 0?void 0:x.reason)});let T=(g=r?.timeout)!==null&&g!==void 0?g:Nfr,R=()=>_(Et.fromError(Ft.RequestTimeout,"Request timed out",{timeout:T}));this._setupTimeout(S,T,r?.maxTotalTimeout,R,(y=r?.resetTimeoutOnProgress)!==null&&y!==void 0?y:!1);let A=c?.taskId;if(A){let x=k=>{let P=this._responseHandlers.get(S);P?P(k):this._onerror(new Error(`Response handler missing for side-channeled request ${S}`))};this._requestResolvers.set(S,x),this._enqueueTaskMessage(A,{type:"request",message:E,timestamp:Date.now()}).catch(k=>{this._cleanupTimeout(S),l(k)})}else this._transport.send(E,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(x=>{this._cleanupTimeout(S),l(x)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},JTe,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},$Te,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Dlr,n)}async notification(t,n){var r,i,s,o,a;if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let c=(r=n?.relatedTask)===null||r===void 0?void 0:r.taskId;if(c){let f={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...((i=t.params)===null||i===void 0?void 0:i._meta)||{},[Jg]:n.relatedTask}}};await this._enqueueTaskMessage(c,{type:"notification",message:f,timestamp:Date.now()});return}if(((o=(s=this._options)===null||s===void 0?void 0:s.debouncedNotificationMethods)!==null&&o!==void 0?o:[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{var f,p;if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let h={...t,jsonrpc:"2.0"};n?.relatedTask&&(h={...h,params:{...h.params,_meta:{...((f=h.params)===null||f===void 0?void 0:f._meta)||{},[Jg]:n.relatedTask}}}),(p=this._transport)===null||p===void 0||p.send(h,n).catch(m=>this._onerror(m))});return}let d={...t,jsonrpc:"2.0"};n?.relatedTask&&(d={...d,params:{...d.params,_meta:{...((a=d.params)===null||a===void 0?void 0:a._meta)||{},[Jg]:n.relatedTask}}}),await this._transport.send(d,n)}setRequestHandler(t,n){let r=nOt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=rOt(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=nOt(t);this._notificationHandlers.set(r,i=>{let s=rOt(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){var i;if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let s=(i=this._options)===null||i===void 0?void 0:i.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,s)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&Xxt(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new Et(Ft.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){var r,i,s;let o=(i=(r=this._options)===null||r===void 0?void 0:r.defaultTaskPollInterval)!==null&&i!==void 0?i:1e3;try{let a=await((s=this._taskStore)===null||s===void 0?void 0:s.getTask(t));a?.pollInterval&&(o=a.pollInterval)}catch{}return new Promise((a,c)=>{if(n.aborted){c(new Et(Ft.InvalidRequest,"Request cancelled"));return}let u=setTimeout(a,o);n.addEventListener("abort",()=>{clearTimeout(u),c(new Et(Ft.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{let s=await r.getTask(i,n);if(!s)throw new Et(Ft.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await r.storeTaskResult(i,s,o,n);let a=await r.getTask(i,n);if(a){let c=F5.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Yv(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new Et(Ft.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Yv(a.status))throw new Et(Ft.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=F5.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Yv(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};Mfr=uOt(yOt(),1),Dfr=uOt(hrr(),1);vTe=class{constructor(t){this._ajv=t??Lfr()}getValidator(t){var n;let r="$id"in t&&typeof t.$id=="string"?(n=this._ajv.getSchema(t.$id))!==null&&n!==void 0?n:this._ajv.compile(t):this._ajv.compile(t);return i=>r(i)?{valid:!0,data:i,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}},RTe=class{constructor(t){this._server=t}requestStream(t,n,r){return this._server.requestStream(t,n,r)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,r){return this._server.getTaskResult({taskId:t},n,r)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}};ATe=class extends TTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(H5.options.map((s,o)=>[s,o])),this.isMessageIgnored=(s,o)=>{let a=this._loggingLevels.get(o);return a?this.LOG_LEVEL_SEVERITY.get(s)this._oninitialize(s)),this.setNotificationHandler(LPt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(BPt,async(s,o)=>{var a;let c=o.sessionId||((a=o.requestInfo)===null||a===void 0?void 0:a.headers["mcp-session-id"])||void 0,{level:u}=s.params,l=H5.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new RTe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Cfr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=BU(t),a=o?.method;if(!a)throw new Error("Schema is missing a method literal");let c;if(yp(a)){let l=a,d=(r=l._zod)===null||r===void 0?void 0:r.def;c=(i=d?.value)!==null&&i!==void 0?i:l.value}else{let l=a,d=l._def;c=(s=d?.value)!==null&&s!==void 0?s:l.value}if(typeof c!="string")throw new Error("Schema method literal must be a string");if(c==="tools/call"){let l=async(d,f)=>{let p=AU(j5,d);if(!p.success){let y=p.error instanceof Error?p.error.message:String(p.error);throw new Et(Ft.InvalidParams,`Invalid tools/call request: ${y}`)}let{params:h}=p.data,m=await Promise.resolve(n(d,f));if(h.task){let y=AU(i8,m);if(!y.success){let b=y.error instanceof Error?y.error.message:String(y.error);throw new Et(Ft.InvalidParams,`Invalid task creation result: ${b}`)}return y.data}let g=AU(ove,m);if(!g.success){let y=g.error instanceof Error?g.error.message:String(g.error);throw new Et(Ft.InvalidParams,`Invalid tools/call result: ${y}`)}return g.data};return super.setRequestHandler(t,l)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){var n,r,i;switch(t){case"sampling/createMessage":if(!(!((n=this._clientCapabilities)===null||n===void 0)&&n.sampling))throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!(!((r=this._clientCapabilities)===null||r===void 0)&&r.elicitation))throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!(!((i=this._clientCapabilities)===null||i===void 0)&&i.roots))throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){var n,r;switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!(!((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.elicitation)===null||r===void 0)&&r.url))throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){var n,r;Ffr((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.tasks)===null||r===void 0?void 0:r.requests,t,"Client")}assertTaskHandlerCapability(t){var n;this._capabilities&&Ufr((n=this._capabilities.tasks)===null||n===void 0?void 0:n.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:mlr.includes(n)?n:kPt,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},VTe)}async createMessage(t,n){var r,i;if((t.tools||t.toolChoice)&&!(!((i=(r=this._clientCapabilities)===null||r===void 0?void 0:r.sampling)===null||i===void 0)&&i.tools))throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let s=t.messages[t.messages.length-1],o=Array.isArray(s.content)?s.content:[s.content],a=o.some(d=>d.type==="tool_result"),c=t.messages.length>1?t.messages[t.messages.length-2]:void 0,u=c?Array.isArray(c.content)?c.content:[c.content]:[],l=u.some(d=>d.type==="tool_use");if(a){if(o.some(d=>d.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let d=new Set(u.filter(p=>p.type==="tool_use").map(p=>p.id)),f=new Set(o.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(d.size!==f.size||![...d].every(p=>f.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},GPt,n):this.request({method:"sampling/createMessage",params:t},zPt,n)}async elicitInput(t,n){var r,i,s,o,a;switch((r=t.mode)!==null&&r!==void 0?r:"form"){case"url":{if(!(!((s=(i=this._clientCapabilities)===null||i===void 0?void 0:i.elicitation)===null||s===void 0)&&s.url))throw new Error("Client does not support url elicitation.");let u=t;return this.request({method:"elicitation/create",params:u},bTe,n)}case"form":{if(!(!((a=(o=this._clientCapabilities)===null||o===void 0?void 0:o.elicitation)===null||a===void 0)&&a.form))throw new Error("Client does not support form elicitation.");let u=t.mode==="form"?t:{...t,mode:"form"},l=await this.request({method:"elicitation/create",params:u},bTe,n);if(l.action==="accept"&&l.content&&u.requestedSchema)try{let f=this._jsonSchemaValidator.getValidator(u.requestedSchema)(l.content);if(!f.valid)throw new Et(Ft.InvalidParams,`Elicitation response content does not match requested schema: ${f.errorMessage}`)}catch(d){throw d instanceof Et?d:new Et(Ft.InternalError,`Error validating elicitation response: ${d instanceof Error?d.message:String(d)}`)}return l}}}createElicitationCompletionNotifier(t,n){var r,i;if(!(!((i=(r=this._clientCapabilities)===null||r===void 0?void 0:r.elicitation)===null||i===void 0)&&i.url))throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},VPt,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}},QPt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(sOt||(sOt={}));qfr=/^[A-Za-z0-9._-]{1,128}$/;wTe=class{constructor(t){this._mcpServer=t}registerToolTask(t,n,r){let i={taskSupport:"required",...n.execution};if(i.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${t}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(t,n.title,n.description,n.inputSchema,n.outputSchema,n.annotations,i,n._meta,r)}},kTe=class{constructor(t,n){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new ATe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new wTe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler($b(STe)),this.server.assertCanSetRequestHandler($b(j5)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(STe,()=>({tools:Object.entries(this._registeredTools).filter(([,t])=>t.enabled).map(([t,n])=>{let r={name:t,title:n.title,description:n.description,inputSchema:(()=>{let i=bU(n.inputSchema);return i?tOt(i,{strictUnions:!0,pipeStrategy:"input"}):Gfr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=bU(n.outputSchema);i&&(r.outputSchema=tOt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(j5,async(t,n)=>{var r;try{let i=this._registeredTools[t.params.name];if(!i)throw new Et(Ft.InvalidParams,`Tool ${t.params.name} not found`);if(!i.enabled)throw new Et(Ft.InvalidParams,`Tool ${t.params.name} disabled`);let s=!!t.params.task,o=(r=i.execution)===null||r===void 0?void 0:r.taskSupport,a="createTask"in i.handler;if((o==="required"||o==="optional")&&!a)throw new Et(Ft.InternalError,`Tool ${t.params.name} has taskSupport '${o}' but was not registered with registerToolTask`);if(o==="required"&&!s)throw new Et(Ft.MethodNotFound,`Tool ${t.params.name} requires task augmentation (taskSupport: 'required')`);if(o==="optional"&&!s&&a)return await this.handleAutomaticTaskPolling(i,t,n);let c=await this.validateToolInput(i,t.params.arguments,t.params.name),u=await this.executeToolHandler(i,c,n);return s||await this.validateToolOutput(i,u,t.params.name),u}catch(i){if(i instanceof Et&&i.code===Ft.UrlElicitationRequired)throw i;return this.createToolError(i instanceof Error?i.message:String(i))}}),this._toolHandlersInitialized=!0)}createToolError(t){return{content:[{type:"text",text:t}],isError:!0}}async validateToolInput(t,n,r){if(!t.inputSchema)return;let i=bU(t.inputSchema),s=i??t.inputSchema,o=await K_e(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=Y_e(a);throw new Et(Ft.InvalidParams,`Input validation error: Invalid arguments for tool ${r}: ${c}`)}return o.data}async validateToolOutput(t,n,r){if(!t.outputSchema||!("content"in n)||n.isError)return;if(!n.structuredContent)throw new Et(Ft.InvalidParams,`Output validation error: Tool ${r} has an output schema but no structured content was provided`);let i=bU(t.outputSchema),s=await K_e(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=Y_e(o);throw new Et(Ft.InvalidParams,`Output validation error: Invalid structured content for tool ${r}: ${a}`)}}async executeToolHandler(t,n,r){let i=t.handler;if("createTask"in i){if(!r.taskStore)throw new Error("No task store provided.");let o={...r,taskStore:r.taskStore};if(t.inputSchema){let a=i;return await Promise.resolve(a.createTask(n,o))}else{let a=i;return await Promise.resolve(a.createTask(o))}}if(t.inputSchema){let o=i;return await Promise.resolve(o(n,r))}else{let o=i;return await Promise.resolve(o(r))}}async handleAutomaticTaskPolling(t,n,r){var i;if(!r.taskStore)throw new Error("No task store provided for task-capable tool.");let s=await this.validateToolInput(t,n.params.arguments,n.params.name),o=t.handler,a={...r,taskStore:r.taskStore},c=s?await Promise.resolve(o.createTask(s,a)):await Promise.resolve(o.createTask(a)),u=c.task.taskId,l=c.task,d=(i=l.pollInterval)!==null&&i!==void 0?i:5e3;for(;l.status!=="completed"&&l.status!=="failed"&&l.status!=="cancelled";){await new Promise(p=>setTimeout(p,d));let f=await r.taskStore.getTask(u);if(!f)throw new Et(Ft.InternalError,`Task ${u} not found during polling`);l=f}return await r.taskStore.getTaskResult(u)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler($b(ETe)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(ETe,async t=>{switch(t.params.ref.type){case"ref/prompt":return qdr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return Bdr(t),this.handleResourceCompletion(t,t.params.ref);default:throw new Et(Ft.InvalidParams,`Invalid completion reference: ${t.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(t,n){let r=this._registeredPrompts[n.name];if(!r)throw new Et(Ft.InvalidParams,`Prompt ${n.name} not found`);if(!r.enabled)throw new Et(Ft.InvalidParams,`Prompt ${n.name} disabled`);if(!r.argsSchema)return EU;let i=BU(r.argsSchema),s=i?.[t.params.argument.name];if(!jfr(s))return EU;let o=Hfr(s);if(!o)return EU;let a=await o(t.params.argument.value,t.params.context);return cOt(a)}async handleResourceCompletion(t,n){let r=Object.values(this._registeredResourceTemplates).find(o=>o.resourceTemplate.uriTemplate.toString()===n.uri);if(!r){if(this._registeredResources[n.uri])return EU;throw new Et(Ft.InvalidParams,`Resource template ${t.params.ref.uri} not found`)}let i=r.resourceTemplate.completeCallback(t.params.argument.name);if(!i)return EU;let s=await i(t.params.argument.value,t.params.context);return cOt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler($b(pTe)),this.server.assertCanSetRequestHandler($b(hTe)),this.server.assertCanSetRequestHandler($b(mTe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(pTe,async(t,n)=>{let r=Object.entries(this._registeredResources).filter(([s,o])=>o.enabled).map(([s,o])=>({uri:s,name:o.name,...o.metadata})),i=[];for(let s of Object.values(this._registeredResourceTemplates)){if(!s.resourceTemplate.listCallback)continue;let o=await s.resourceTemplate.listCallback(n);for(let a of o.resources)i.push({...s.metadata,...a})}return{resources:[...r,...i]}}),this.server.setRequestHandler(hTe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(mTe,async(t,n)=>{let r=new URL(t.params.uri),i=this._registeredResources[r.toString()];if(i){if(!i.enabled)throw new Et(Ft.InvalidParams,`Resource ${r} disabled`);return i.readCallback(r,n)}for(let s of Object.values(this._registeredResourceTemplates)){let o=s.resourceTemplate.uriTemplate.match(r.toString());if(o)return s.readCallback(r,o,n)}throw new Et(Ft.InvalidParams,`Resource ${r} not found`)}),this.setCompletionRequestHandler(),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler($b(gTe)),this.server.assertCanSetRequestHandler($b(yTe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(gTe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?Wfr(n.argsSchema):void 0}))})),this.server.setRequestHandler(yTe,async(t,n)=>{let r=this._registeredPrompts[t.params.name];if(!r)throw new Et(Ft.InvalidParams,`Prompt ${t.params.name} not found`);if(!r.enabled)throw new Et(Ft.InvalidParams,`Prompt ${t.params.name} disabled`);if(r.argsSchema){let i=bU(r.argsSchema),s=await K_e(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=Y_e(c);throw new Et(Ft.InvalidParams,`Invalid arguments for prompt ${t.params.name}: ${u}`)}let o=s.data,a=r.callback;return await Promise.resolve(a(o,n))}else{let i=r.callback;return await Promise.resolve(i(n))}}),this.setCompletionRequestHandler(),this._promptHandlersInitialized=!0)}resource(t,n,...r){let i;typeof r[0]=="object"&&(i=r.shift());let s=r[0];if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let o=this._createRegisteredResource(t,void 0,n,i,s);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let o=this._createRegisteredResourceTemplate(t,void 0,n,i,s);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}}registerResource(t,n,r,i){if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let s=this._createRegisteredResource(t,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let s=this._createRegisteredResourceTemplate(t,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}}_createRegisteredResource(t,n,r,i,s){let o={name:t,title:n,metadata:i,readCallback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({uri:null}),update:a=>{typeof a.uri<"u"&&a.uri!==r&&(delete this._registeredResources[r],a.uri&&(this._registeredResources[a.uri]=o)),typeof a.name<"u"&&(o.name=a.name),typeof a.title<"u"&&(o.title=a.title),typeof a.metadata<"u"&&(o.metadata=a.metadata),typeof a.callback<"u"&&(o.readCallback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResources[r]=o,o}_createRegisteredResourceTemplate(t,n,r,i,s){let o={resourceTemplate:r,title:n,metadata:i,readCallback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredResourceTemplates[t],a.name&&(this._registeredResourceTemplates[a.name]=o)),typeof a.title<"u"&&(o.title=a.title),typeof a.template<"u"&&(o.resourceTemplate=a.template),typeof a.metadata<"u"&&(o.metadata=a.metadata),typeof a.callback<"u"&&(o.readCallback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResourceTemplates[t]=o,o}_createRegisteredPrompt(t,n,r,i,s){let o={title:n,description:r,argsSchema:i===void 0?void 0:RU(i),callback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredPrompts[t],a.name&&(this._registeredPrompts[a.name]=o)),typeof a.title<"u"&&(o.title=a.title),typeof a.description<"u"&&(o.description=a.description),typeof a.argsSchema<"u"&&(o.argsSchema=RU(a.argsSchema)),typeof a.callback<"u"&&(o.callback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[t]=o,o}_createRegisteredTool(t,n,r,i,s,o,a,c,u){oOt(t);let l={title:n,description:r,inputSchema:aOt(i),outputSchema:aOt(s),annotations:o,execution:a,_meta:c,handler:u,enabled:!0,disable:()=>l.update({enabled:!1}),enable:()=>l.update({enabled:!0}),remove:()=>l.update({name:null}),update:d=>{typeof d.name<"u"&&d.name!==t&&(typeof d.name=="string"&&oOt(d.name),delete this._registeredTools[t],d.name&&(this._registeredTools[d.name]=l)),typeof d.title<"u"&&(l.title=d.title),typeof d.description<"u"&&(l.description=d.description),typeof d.paramsSchema<"u"&&(l.inputSchema=RU(d.paramsSchema)),typeof d.callback<"u"&&(l.handler=d.callback),typeof d.annotations<"u"&&(l.annotations=d.annotations),typeof d._meta<"u"&&(l._meta=d._meta),typeof d.enabled<"u"&&(l.enabled=d.enabled),this.sendToolListChanged()}};return this._registeredTools[t]=l,this.setToolRequestHandlers(),this.sendToolListChanged(),l}tool(t,...n){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let r,i,s,o;if(typeof n[0]=="string"&&(r=n.shift()),n.length>1){let c=n[0];ITe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!ITe(n[0])&&(o=n.shift())):typeof c=="object"&&c!==null&&(o=n.shift())}let a=n[0];return this._createRegisteredTool(t,void 0,r,i,s,o,{taskSupport:"forbidden"},void 0,a)}registerTool(t,n,r){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let{title:i,description:s,inputSchema:o,outputSchema:a,annotations:c,_meta:u}=n;return this._createRegisteredTool(t,i,s,o,a,c,{taskSupport:"forbidden"},u,r)}prompt(t,...n){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let r;typeof n[0]=="string"&&(r=n.shift());let i;n.length>1&&(i=n.shift());let s=n[0],o=this._createRegisteredPrompt(t,void 0,r,i,s);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}registerPrompt(t,n,r){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let{title:i,description:s,argsSchema:o}=n,a=this._createRegisteredPrompt(t,i,s,o,r);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),a}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(t,n){return this.server.sendLoggingMessage(t,n)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},Gfr={type:"object",properties:{}};EU={completion:{values:[],hasMore:!1}}});var nNt={};Ar(nNt,{runRepairAgent:()=>$fr});import{existsSync as Qv,readdirSync as ave,readFileSync as cve}from"node:fs";import{join as ry}from"node:path";async function $fr(e){let t;try{t=(await Promise.resolve().then(()=>(tNt(),eNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=epr(e),r=tpr(e),i=12e4;try{let s=(async()=>{let c="";for await(let u of t({prompt:r,options:{model:"claude-haiku-4-5-20251001",cwd:e.intentDir,additionalDirectories:[e.studioDir],allowedTools:["Read","Write","Glob","Grep"],disallowedTools:["Bash","Agent","WebSearch","WebFetch","Edit"],permissionMode:"dontAsk",maxTurns:25,systemPrompt:n}}))u.type==="result"&&(c=u.result||"");return c})(),o=new Promise((c,u)=>setTimeout(()=>u(new Error("repair agent timed out")),i)),a=await Promise.race([s,o]);return{success:a.trim().length>0,summary:a||"Repair agent completed but produced no output",fallbackUsed:!1}}catch(s){return{success:!1,summary:`Repair agent failed: ${s instanceof Error?s.message:String(s)}`,fallbackUsed:!0}}}function epr(e){let t=npr(e.studioDir);return`You are a H\xB7AI\xB7K\xB7U intent repair agent. Your single purpose is to fix metadata and state in H\xB7AI\xB7K\xB7U intent files that are in an inconsistent state after migration from a legacy system. +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);r.cycles==="ref"&&o(l);continue}if(d.count>1&&r.reused==="ref"){o(l);continue}}let a=(l,d)=>{let f=this.seen.get(l),p=f.def??f.schema,h={...p};if(f.ref===null)return;let m=f.ref;if(f.ref=null,m){a(m,d);let g=this.seen.get(m).schema;g.$ref&&d.target==="draft-7"?(p.allOf=p.allOf??[],p.allOf.push(g)):(Object.assign(p,g),Object.assign(p,h))}f.isParent||this.override({zodSchema:l,jsonSchema:p,path:f.path??[]})};for(let l of[...this.seen.entries()].reverse())a(l[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,i.def);let u=r.external?.defs??{};for(let l of this.seen.entries()){let d=l[1];d.def&&d.defId&&(u[d.defId]=d.def)}!r.external&&Object.keys(u).length>0&&(this.target==="draft-2020-12"?c.$defs=u:c.definitions=u);try{return JSON.parse(JSON.stringify(c))}catch{throw new Error("Error converting schema to JSON.")}}};gur=ge("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");li.init(e,t),e.def=t,e.parse=(n,r)=>For(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>qTe(e,n,r),e.parseAsync=async(n,r)=>jor(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>BTe(e,n,r),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>ny(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e)}),yur=ge("ZodMiniObject",(e,t)=>{tPt.init(e,t),gur.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape)});oPt={};lOt(oPt,{time:()=>fPt,duration:()=>hPt,datetime:()=>cPt,date:()=>lPt,ZodISOTime:()=>dPt,ZodISODuration:()=>pPt,ZodISODateTime:()=>aPt,ZodISODate:()=>uPt});aPt=ge("ZodISODateTime",(e,t)=>{jar.init(e,t),os.init(e,t)});uPt=ge("ZodISODate",(e,t)=>{Har.init(e,t),os.init(e,t)});dPt=ge("ZodISOTime",(e,t)=>{qar.init(e,t),os.init(e,t)});pPt=ge("ZodISODuration",(e,t)=>{Bar.init(e,t),os.init(e,t)});mPt=(e,t)=>{BOt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Uor(e,n)},flatten:{value:n=>Lor(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},RNi=ge("ZodError",mPt),n8=ge("ZodError",mPt,{Parent:Error}),Eur=zOt(n8),_ur=GOt(n8),Tur=VOt(n8),vur=WOt(n8),ss=ge("ZodType",(e,t)=>(li.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>ny(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>Eur(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Tur(e,n,r),e.parseAsync=async(n,r)=>_ur(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>vur(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(plr(n,r)),e.superRefine=n=>e.check(hlr(n)),e.overwrite=n=>e.check(zU(n)),e.optional=()=>yt(e),e.nullable=()=>Jxt(e),e.nullish=()=>yt(Jxt(e)),e.nonoptional=n=>slr(e,n),e.array=()=>er(e),e.or=n=>Vi([e,n]),e.and=n=>GTe(e,n),e.transform=n=>pTe(e,TPt(n)),e.default=n=>nlr(e,n),e.prefault=n=>ilr(e,n),e.catch=n=>alr(e,n),e.pipe=n=>pTe(e,n),e.readonly=()=>llr(e),e.describe=n=>{let r=e.clone();return AU.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return AU.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return AU.get(e);let r=e.clone();return AU.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),gPt=ge("_ZodString",(e,t)=>{zTe.init(e,t),ss.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(nur(...r)),e.includes=(...r)=>e.check(sur(...r)),e.startsWith=(...r)=>e.check(our(...r)),e.endsWith=(...r)=>e.check(aur(...r)),e.min=(...r)=>e.check(U5(...r)),e.max=(...r)=>e.check(rPt(...r)),e.length=(...r)=>e.check(iPt(...r)),e.nonempty=(...r)=>e.check(U5(1,...r)),e.lowercase=r=>e.check(rur(r)),e.uppercase=r=>e.check(iur(r)),e.trim=()=>e.check(uur()),e.normalize=(...r)=>e.check(cur(...r)),e.toLowerCase=()=>e.check(lur()),e.toUpperCase=()=>e.check(dur())}),Rur=ge("ZodString",(e,t)=>{zTe.init(e,t),gPt.init(e,t),e.email=n=>e.check(Acr(Aur,n)),e.url=n=>e.check(Ocr(wur,n)),e.jwt=n=>e.check(Vcr(qur,n)),e.emoji=n=>e.check(Pcr(kur,n)),e.guid=n=>e.check(zxt(Yxt,n)),e.uuid=n=>e.check(wcr(R5,n)),e.uuidv4=n=>e.check(kcr(R5,n)),e.uuidv6=n=>e.check(Icr(R5,n)),e.uuidv7=n=>e.check(xcr(R5,n)),e.nanoid=n=>e.check(Ncr(Iur,n)),e.guid=n=>e.check(zxt(Yxt,n)),e.cuid=n=>e.check(Ccr(xur,n)),e.cuid2=n=>e.check(Mcr(Our,n)),e.ulid=n=>e.check(Dcr(Pur,n)),e.base64=n=>e.check(Bcr(Fur,n)),e.base64url=n=>e.check(zcr(jur,n)),e.xid=n=>e.check(Lcr(Nur,n)),e.ksuid=n=>e.check(Ucr(Cur,n)),e.ipv4=n=>e.check(Fcr(Mur,n)),e.ipv6=n=>e.check(jcr(Dur,n)),e.cidrv4=n=>e.check(Hcr(Lur,n)),e.cidrv6=n=>e.check(qcr(Uur,n)),e.e164=n=>e.check(Gcr(Hur,n)),e.datetime=n=>e.check(cPt(n)),e.date=n=>e.check(lPt(n)),e.time=n=>e.check(fPt(n)),e.duration=n=>e.check(hPt(n))});os=ge("ZodStringFormat",(e,t)=>{Gi.init(e,t),gPt.init(e,t)}),Aur=ge("ZodEmail",(e,t)=>{Oar.init(e,t),os.init(e,t)}),Yxt=ge("ZodGUID",(e,t)=>{Iar.init(e,t),os.init(e,t)}),R5=ge("ZodUUID",(e,t)=>{xar.init(e,t),os.init(e,t)}),wur=ge("ZodURL",(e,t)=>{Par.init(e,t),os.init(e,t)}),kur=ge("ZodEmoji",(e,t)=>{Nar.init(e,t),os.init(e,t)}),Iur=ge("ZodNanoID",(e,t)=>{Car.init(e,t),os.init(e,t)}),xur=ge("ZodCUID",(e,t)=>{Mar.init(e,t),os.init(e,t)}),Our=ge("ZodCUID2",(e,t)=>{Dar.init(e,t),os.init(e,t)}),Pur=ge("ZodULID",(e,t)=>{Lar.init(e,t),os.init(e,t)}),Nur=ge("ZodXID",(e,t)=>{Uar.init(e,t),os.init(e,t)}),Cur=ge("ZodKSUID",(e,t)=>{Far.init(e,t),os.init(e,t)}),Mur=ge("ZodIPv4",(e,t)=>{zar.init(e,t),os.init(e,t)}),Dur=ge("ZodIPv6",(e,t)=>{Gar.init(e,t),os.init(e,t)}),Lur=ge("ZodCIDRv4",(e,t)=>{Var.init(e,t),os.init(e,t)}),Uur=ge("ZodCIDRv6",(e,t)=>{War.init(e,t),os.init(e,t)}),Fur=ge("ZodBase64",(e,t)=>{Kar.init(e,t),os.init(e,t)}),jur=ge("ZodBase64URL",(e,t)=>{Zar.init(e,t),os.init(e,t)}),Hur=ge("ZodE164",(e,t)=>{Jar.init(e,t),os.init(e,t)}),qur=ge("ZodJWT",(e,t)=>{Qar.init(e,t),os.init(e,t)}),yPt=ge("ZodNumber",(e,t)=>{ePt.init(e,t),ss.init(e,t),e.gt=(r,i)=>e.check(Vxt(r,i)),e.gte=(r,i)=>e.check(K_e(r,i)),e.min=(r,i)=>e.check(K_e(r,i)),e.lt=(r,i)=>e.check(Gxt(r,i)),e.lte=(r,i)=>e.check(W_e(r,i)),e.max=(r,i)=>e.check(W_e(r,i)),e.int=r=>e.check(Zxt(r)),e.safe=r=>e.check(Zxt(r)),e.positive=r=>e.check(Vxt(0,r)),e.nonnegative=r=>e.check(K_e(0,r)),e.negative=r=>e.check(Gxt(0,r)),e.nonpositive=r=>e.check(W_e(0,r)),e.multipleOf=(r,i)=>e.check(Wxt(r,i)),e.step=(r,i)=>e.check(Wxt(r,i)),e.finite=()=>e;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??.5),e.isFinite=!0,e.format=n.format??null});Bur=ge("ZodNumberFormat",(e,t)=>{$ar.init(e,t),yPt.init(e,t)});zur=ge("ZodBoolean",(e,t)=>{ecr.init(e,t),ss.init(e,t)});Gur=ge("ZodNull",(e,t)=>{tcr.init(e,t),ss.init(e,t)});Vur=ge("ZodUnknown",(e,t)=>{ncr.init(e,t),ss.init(e,t)});Wur=ge("ZodNever",(e,t)=>{rcr.init(e,t),ss.init(e,t)});Yur=ge("ZodArray",(e,t)=>{icr.init(e,t),ss.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(U5(n,r)),e.nonempty=n=>e.check(U5(1,n)),e.max=(n,r)=>e.check(rPt(n,r)),e.length=(n,r)=>e.check(iPt(n,r)),e.unwrap=()=>e.element});bPt=ge("ZodObject",(e,t)=>{tPt.init(e,t),ss.init(e,t),Gr.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Rc(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:xo()}),e.loose=()=>e.clone({...e._zod.def,catchall:xo()}),e.strict=()=>e.clone({...e._zod.def,catchall:Kur()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>Gr.extend(e,n),e.merge=n=>Gr.merge(e,n),e.pick=n=>Gr.pick(e,n),e.omit=n=>Gr.omit(e,n),e.partial=(...n)=>Gr.partial(vPt,e,n[0]),e.required=(...n)=>Gr.required(RPt,e,n[0])});EPt=ge("ZodUnion",(e,t)=>{nPt.init(e,t),ss.init(e,t),e.options=t.options});Zur=ge("ZodDiscriminatedUnion",(e,t)=>{EPt.init(e,t),scr.init(e,t)});Jur=ge("ZodIntersection",(e,t)=>{ocr.init(e,t),ss.init(e,t)});Xur=ge("ZodRecord",(e,t)=>{acr.init(e,t),ss.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});fTe=ge("ZodEnum",(e,t)=>{ccr.init(e,t),ss.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{let s={};for(let o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new fTe({...t,checks:[],...Gr.normalizeParams(i),entries:s})},e.exclude=(r,i)=>{let s={...t.entries};for(let o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new fTe({...t,checks:[],...Gr.normalizeParams(i),entries:s})}});Qur=ge("ZodLiteral",(e,t)=>{ucr.init(e,t),ss.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});$ur=ge("ZodTransform",(e,t)=>{lcr.init(e,t),ss.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=s=>{if(typeof s=="string")n.issues.push(Gr.issue(s,n.value,t));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),o.continue??(o.continue=!0),n.issues.push(Gr.issue(o))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});vPt=ge("ZodOptional",(e,t)=>{dcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});elr=ge("ZodNullable",(e,t)=>{fcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});tlr=ge("ZodDefault",(e,t)=>{pcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});rlr=ge("ZodPrefault",(e,t)=>{hcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});RPt=ge("ZodNonOptional",(e,t)=>{mcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType});olr=ge("ZodCatch",(e,t)=>{gcr.init(e,t),ss.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});clr=ge("ZodPipe",(e,t)=>{ycr.init(e,t),ss.init(e,t),e.in=t.in,e.out=t.out});ulr=ge("ZodReadonly",(e,t)=>{Scr.init(e,t),ss.init(e,t)});APt=ge("ZodCustom",(e,t)=>{bcr.init(e,t),ss.init(e,t)});ey(Tcr());kPt="2025-11-25",mlr=[kPt,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Jg="io.modelcontextprotocol/related-task",r8="2.0",sm=flr(e=>e!==null&&(typeof e=="object"||typeof e=="function")),IPt=Vi([he(),ui().int()]),xPt=he(),glr=Sp({ttl:Vi([ui(),SPt()]).optional(),pollInterval:ui().optional()}),VTe=Sp({taskId:he()}),ylr=Sp({progressToken:IPt.optional(),[Jg]:VTe.optional()}),el=Sp({task:glr.optional(),_meta:ylr.optional()}),ja=ze({method:he(),params:el.optional()}),Xv=Sp({_meta:ze({[Jg]:yt(VTe)}).passthrough().optional()}),Xd=ze({method:he(),params:Xv.optional()}),Ac=Sp({_meta:Sp({[Jg]:VTe.optional()}).optional()}),i8=Vi([he(),ui().int()]),OPt=ze({jsonrpc:St(r8),id:i8,...ja.shape}).strict(),Xxt=e=>OPt.safeParse(e).success,PPt=ze({jsonrpc:St(r8),...Xd.shape}).strict(),Slr=e=>PPt.safeParse(e).success,NPt=ze({jsonrpc:St(r8),id:i8,result:Ac}).strict(),A5=e=>NPt.safeParse(e).success;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Ft||(Ft={}));CPt=ze({jsonrpc:St(r8),id:i8,error:ze({code:ui().int(),message:he(),data:yt(xo())})}).strict(),blr=e=>CPt.safeParse(e).success,ANi=Vi([OPt,PPt,NPt,CPt]),WTe=Ac.strict(),Elr=Xv.extend({requestId:i8,reason:he().optional()}),KTe=Xd.extend({method:St("notifications/cancelled"),params:Elr}),_lr=ze({src:he(),mimeType:he().optional(),sizes:er(he()).optional()}),VU=ze({icons:er(_lr).optional()}),Wx=ze({name:he(),title:he().optional()}),MPt=Wx.extend({...Wx.shape,...VU.shape,version:he(),websiteUrl:he().optional()}),Tlr=GTe(ze({applyDefaults:vc().optional()}),Oo(he(),xo())),vlr=wPt(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,GTe(ze({form:Tlr.optional(),url:sm.optional()}),Oo(he(),xo()).optional())),Rlr=ze({list:yt(ze({}).passthrough()),cancel:yt(ze({}).passthrough()),requests:yt(ze({sampling:yt(ze({createMessage:yt(ze({}).passthrough())}).passthrough()),elicitation:yt(ze({create:yt(ze({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),Alr=ze({list:yt(ze({}).passthrough()),cancel:yt(ze({}).passthrough()),requests:yt(ze({tools:yt(ze({call:yt(ze({}).passthrough())}).passthrough())}).passthrough())}).passthrough(),wlr=ze({experimental:Oo(he(),sm).optional(),sampling:ze({context:sm.optional(),tools:sm.optional()}).optional(),elicitation:vlr.optional(),roots:ze({listChanged:vc().optional()}).optional(),tasks:yt(Rlr)}),klr=el.extend({protocolVersion:he(),capabilities:wlr,clientInfo:MPt}),DPt=ja.extend({method:St("initialize"),params:klr}),Ilr=ze({experimental:Oo(he(),sm).optional(),logging:sm.optional(),completions:sm.optional(),prompts:yt(ze({listChanged:yt(vc())})),resources:ze({subscribe:vc().optional(),listChanged:vc().optional()}).optional(),tools:ze({listChanged:vc().optional()}).optional(),tasks:yt(Alr)}).passthrough(),xlr=Ac.extend({protocolVersion:he(),capabilities:Ilr,serverInfo:MPt,instructions:he().optional()}),LPt=Xd.extend({method:St("notifications/initialized")}),YTe=ja.extend({method:St("ping")}),Olr=ze({progress:ui(),total:yt(ui()),message:yt(he())}),Plr=ze({...Xv.shape,...Olr.shape,progressToken:IPt}),ZTe=Xd.extend({method:St("notifications/progress"),params:Plr}),Nlr=el.extend({cursor:xPt.optional()}),WU=ja.extend({params:Nlr.optional()}),KU=Ac.extend({nextCursor:yt(xPt)}),YU=ze({taskId:he(),status:Rc(["working","input_required","completed","failed","cancelled"]),ttl:Vi([ui(),SPt()]),createdAt:he(),lastUpdatedAt:he(),pollInterval:yt(ui()),statusMessage:yt(he())}),s8=Ac.extend({task:YU}),Clr=Xv.merge(YU),j5=Xd.extend({method:St("notifications/tasks/status"),params:Clr}),JTe=ja.extend({method:St("tasks/get"),params:el.extend({taskId:he()})}),XTe=Ac.merge(YU),QTe=ja.extend({method:St("tasks/result"),params:el.extend({taskId:he()})}),$Te=WU.extend({method:St("tasks/list")}),eve=KU.extend({tasks:er(YU)}),Mlr=ja.extend({method:St("tasks/cancel"),params:el.extend({taskId:he()})}),Dlr=Ac.merge(YU),UPt=ze({uri:he(),mimeType:yt(he()),_meta:Oo(he(),xo()).optional()}),FPt=UPt.extend({text:he()}),tve=he().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),jPt=UPt.extend({blob:tve}),Xx=ze({audience:er(Rc(["user","assistant"])).optional(),priority:ui().min(0).max(1).optional(),lastModified:oPt.datetime({offset:!0}).optional()}),HPt=ze({...Wx.shape,...VU.shape,uri:he(),description:yt(he()),mimeType:yt(he()),annotations:Xx.optional(),_meta:yt(Sp({}))}),Llr=ze({...Wx.shape,...VU.shape,uriTemplate:he(),description:yt(he()),mimeType:yt(he()),annotations:Xx.optional(),_meta:yt(Sp({}))}),hTe=WU.extend({method:St("resources/list")}),Ulr=KU.extend({resources:er(HPt)}),mTe=WU.extend({method:St("resources/templates/list")}),Flr=KU.extend({resourceTemplates:er(Llr)}),nve=el.extend({uri:he()}),jlr=nve,gTe=ja.extend({method:St("resources/read"),params:jlr}),Hlr=Ac.extend({contents:er(Vi([FPt,jPt]))}),qlr=Xd.extend({method:St("notifications/resources/list_changed")}),Blr=nve,zlr=ja.extend({method:St("resources/subscribe"),params:Blr}),Glr=nve,Vlr=ja.extend({method:St("resources/unsubscribe"),params:Glr}),Wlr=Xv.extend({uri:he()}),Klr=Xd.extend({method:St("notifications/resources/updated"),params:Wlr}),Ylr=ze({name:he(),description:yt(he()),required:yt(vc())}),Zlr=ze({...Wx.shape,...VU.shape,description:yt(he()),arguments:yt(er(Ylr)),_meta:yt(Sp({}))}),yTe=WU.extend({method:St("prompts/list")}),Jlr=KU.extend({prompts:er(Zlr)}),Xlr=el.extend({name:he(),arguments:Oo(he(),he()).optional()}),STe=ja.extend({method:St("prompts/get"),params:Xlr}),rve=ze({type:St("text"),text:he(),annotations:Xx.optional(),_meta:Oo(he(),xo()).optional()}),ive=ze({type:St("image"),data:tve,mimeType:he(),annotations:Xx.optional(),_meta:Oo(he(),xo()).optional()}),sve=ze({type:St("audio"),data:tve,mimeType:he(),annotations:Xx.optional(),_meta:Oo(he(),xo()).optional()}),Qlr=ze({type:St("tool_use"),name:he(),id:he(),input:ze({}).passthrough(),_meta:yt(ze({}).passthrough())}).passthrough(),$lr=ze({type:St("resource"),resource:Vi([FPt,jPt]),annotations:Xx.optional(),_meta:Oo(he(),xo()).optional()}),edr=HPt.extend({type:St("resource_link")}),ove=Vi([rve,ive,sve,edr,$lr]),tdr=ze({role:Rc(["user","assistant"]),content:ove}),ndr=Ac.extend({description:yt(he()),messages:er(tdr)}),rdr=Xd.extend({method:St("notifications/prompts/list_changed")}),idr=ze({title:he().optional(),readOnlyHint:vc().optional(),destructiveHint:vc().optional(),idempotentHint:vc().optional(),openWorldHint:vc().optional()}),sdr=ze({taskSupport:Rc(["required","optional","forbidden"]).optional()}),qPt=ze({...Wx.shape,...VU.shape,description:he().optional(),inputSchema:ze({type:St("object"),properties:Oo(he(),sm).optional(),required:er(he()).optional()}).catchall(xo()),outputSchema:ze({type:St("object"),properties:Oo(he(),sm).optional(),required:er(he()).optional()}).catchall(xo()).optional(),annotations:yt(idr),execution:yt(sdr),_meta:Oo(he(),xo()).optional()}),bTe=WU.extend({method:St("tools/list")}),odr=KU.extend({tools:er(qPt)}),ave=Ac.extend({content:er(ove).default([]),structuredContent:Oo(he(),xo()).optional(),isError:yt(vc())}),wNi=ave.or(Ac.extend({toolResult:xo()})),adr=el.extend({name:he(),arguments:yt(Oo(he(),xo()))}),H5=ja.extend({method:St("tools/call"),params:adr}),cdr=Xd.extend({method:St("notifications/tools/list_changed")}),q5=Rc(["debug","info","notice","warning","error","critical","alert","emergency"]),udr=el.extend({level:q5}),BPt=ja.extend({method:St("logging/setLevel"),params:udr}),ldr=Xv.extend({level:q5,logger:he().optional(),data:xo()}),ddr=Xd.extend({method:St("notifications/message"),params:ldr}),fdr=ze({name:he().optional()}),pdr=ze({hints:yt(er(fdr)),costPriority:yt(ui().min(0).max(1)),speedPriority:yt(ui().min(0).max(1)),intelligencePriority:yt(ui().min(0).max(1))}),hdr=ze({mode:yt(Rc(["auto","required","none"]))}),mdr=ze({type:St("tool_result"),toolUseId:he().describe("The unique identifier for the corresponding tool call."),content:er(ove).default([]),structuredContent:ze({}).passthrough().optional(),isError:yt(vc()),_meta:yt(ze({}).passthrough())}).passthrough(),gdr=_Pt("type",[rve,ive,sve]),B5=_Pt("type",[rve,ive,sve,Qlr,mdr]),ydr=ze({role:Rc(["user","assistant"]),content:Vi([B5,er(B5)]),_meta:yt(ze({}).passthrough())}).passthrough(),Sdr=el.extend({messages:er(ydr),modelPreferences:pdr.optional(),systemPrompt:he().optional(),includeContext:Rc(["none","thisServer","allServers"]).optional(),temperature:ui().optional(),maxTokens:ui().int(),stopSequences:er(he()).optional(),metadata:sm.optional(),tools:yt(er(qPt)),toolChoice:yt(hdr)}),bdr=ja.extend({method:St("sampling/createMessage"),params:Sdr}),zPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens"]).or(he())),role:Rc(["user","assistant"]),content:gdr}),GPt=Ac.extend({model:he(),stopReason:yt(Rc(["endTurn","stopSequence","maxTokens","toolUse"]).or(he())),role:Rc(["user","assistant"]),content:Vi([B5,er(B5)])}),Edr=ze({type:St("boolean"),title:he().optional(),description:he().optional(),default:vc().optional()}),_dr=ze({type:St("string"),title:he().optional(),description:he().optional(),minLength:ui().optional(),maxLength:ui().optional(),format:Rc(["email","uri","date","date-time"]).optional(),default:he().optional()}),Tdr=ze({type:Rc(["number","integer"]),title:he().optional(),description:he().optional(),minimum:ui().optional(),maximum:ui().optional(),default:ui().optional()}),vdr=ze({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),default:he().optional()}),Rdr=ze({type:St("string"),title:he().optional(),description:he().optional(),oneOf:er(ze({const:he(),title:he()})),default:he().optional()}),Adr=ze({type:St("string"),title:he().optional(),description:he().optional(),enum:er(he()),enumNames:er(he()).optional(),default:he().optional()}),wdr=Vi([vdr,Rdr]),kdr=ze({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:ze({type:St("string"),enum:er(he())}),default:er(he()).optional()}),Idr=ze({type:St("array"),title:he().optional(),description:he().optional(),minItems:ui().optional(),maxItems:ui().optional(),items:ze({anyOf:er(ze({const:he(),title:he()}))}),default:er(he()).optional()}),xdr=Vi([kdr,Idr]),Odr=Vi([Adr,wdr,xdr]),Pdr=Vi([Odr,Edr,_dr,Tdr]),Ndr=el.extend({mode:St("form").optional(),message:he(),requestedSchema:ze({type:St("object"),properties:Oo(he(),Pdr),required:er(he()).optional()})}),Cdr=el.extend({mode:St("url"),message:he(),elicitationId:he(),url:he().url()}),Mdr=Vi([Ndr,Cdr]),Ddr=ja.extend({method:St("elicitation/create"),params:Mdr}),Ldr=Xv.extend({elicitationId:he()}),Udr=Xd.extend({method:St("notifications/elicitation/complete"),params:Ldr}),ETe=Ac.extend({action:Rc(["accept","decline","cancel"]),content:wPt(e=>e===null?void 0:e,Oo(he(),Vi([he(),ui(),vc(),er(he())])).optional())}),Fdr=ze({type:St("ref/resource"),uri:he()}),jdr=ze({type:St("ref/prompt"),name:he()}),Hdr=el.extend({ref:Vi([jdr,Fdr]),argument:ze({name:he(),value:he()}),context:ze({arguments:Oo(he(),he()).optional()}).optional()}),_Te=ja.extend({method:St("completion/complete"),params:Hdr});zdr=Ac.extend({completion:Sp({values:er(he()).max(100),total:yt(ui().int()),hasMore:yt(vc())})}),Gdr=ze({uri:he().startsWith("file://"),name:he().optional(),_meta:Oo(he(),xo()).optional()}),Vdr=ja.extend({method:St("roots/list")}),VPt=Ac.extend({roots:er(Gdr)}),Wdr=Xd.extend({method:St("notifications/roots/list_changed")}),kNi=Vi([YTe,DPt,_Te,BPt,STe,yTe,hTe,mTe,gTe,zlr,Vlr,H5,bTe,JTe,QTe,$Te]),INi=Vi([KTe,ZTe,LPt,Wdr,j5]),xNi=Vi([WTe,zPt,GPt,ETe,VPt,XTe,eve,s8]),ONi=Vi([YTe,bdr,Ddr,Vdr,JTe,QTe,$Te]),PNi=Vi([KTe,ZTe,ddr,Klr,qlr,cdr,rdr,j5,Udr]),NNi=Vi([WTe,xlr,zdr,ndr,Jlr,Ulr,Flr,Hlr,ave,odr,XTe,eve,s8]),Et=class e extends Error{constructor(t,n,r){super(`MCP error ${t}: ${n}`),this.code=t,this.data=r,this.name="McpError"}static fromError(t,n,r){if(t===Ft.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new TTe(i.elicitations,n)}return new e(t,n,r)}},TTe=class extends Et{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(Ft.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){var t,n;return(n=(t=this.data)===null||t===void 0?void 0:t.elicitations)!==null&&n!==void 0?n:[]}};Kdr=Symbol("Let zodToJsonSchema decide on which parser to use"),Qxt={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},Ydr=e=>typeof e=="string"?{...Qxt,name:e}:{...Qxt,...e},Zdr=e=>{let t=Ydr(e),n=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([r,i])=>[i._def,{def:i._def,path:[...t.basePath,t.definitionPath,r],jsonSchema:void 0}]))}};KPt=(e,t)=>{let n=0;for(;nEr(e.innerType._def,t);efr=(e,t)=>{let n={type:"integer",format:"unix-time"};if(t.target==="openApi3")return n;for(let r of e.checks)switch(r.kind){case"min":Cr(n,"minimum",r.value,r.message,t);break;case"max":Cr(n,"maximum",r.value,r.message,t);break}return n};ifr=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;J_e=void 0,pp={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(J_e===void 0&&(J_e=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),J_e),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,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}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};afr=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");z5={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};eOt=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((r,i)=>Er(r._def,{...t,currentPath:[...t.currentPath,"anyOf",`${i}`]})).filter(r=>!!r&&(!t.strictUnions||typeof r=="object"&&Object.keys(r).length>0));return n.length?{anyOf:n}:void 0};bfr=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return Er(e.innerType._def,t);let n=Er(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:Qu(t)},n]}:Qu(t)},Efr=(e,t)=>{if(t.pipeStrategy==="input")return Er(e.in._def,t);if(t.pipeStrategy==="output")return Er(e.out._def,t);let n=Er(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),r=Er(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,r].filter(i=>i!==void 0)}};wfr=(e,t)=>Er(e.innerType._def,t),kfr=(e,t,n)=>{switch(t){case De.ZodString:return JPt(e,n);case De.ZodNumber:return mfr(e,n);case De.ZodObject:return gfr(e,n);case De.ZodBigInt:return Xdr(e,n);case De.ZodBoolean:return Qdr();case De.ZodDate:return ZPt(e,n);case De.ZodUndefined:return Rfr(n);case De.ZodNull:return ffr(n);case De.ZodArray:return Jdr(e,n);case De.ZodUnion:case De.ZodDiscriminatedUnion:return pfr(e,n);case De.ZodIntersection:return sfr(e,n);case De.ZodTuple:return vfr(e,n);case De.ZodRecord:return XPt(e,n);case De.ZodLiteral:return ofr(e,n);case De.ZodEnum:return rfr(e);case De.ZodNativeEnum:return lfr(e);case De.ZodNullable:return hfr(e,n);case De.ZodOptional:return bfr(e,n);case De.ZodMap:return ufr(e,n);case De.ZodSet:return Tfr(e,n);case De.ZodLazy:return()=>e.getter()._def;case De.ZodPromise:return _fr(e,n);case De.ZodNaN:case De.ZodNever:return dfr(n);case De.ZodEffects:return nfr(e,n);case De.ZodAny:return Qu(n);case De.ZodUnknown:return Afr(n);case De.ZodDefault:return tfr(e,n);case De.ZodBranded:return YPt(e,n);case De.ZodReadonly:return wfr(e,n);case De.ZodCatch:return $dr(e,n);case De.ZodPipeline:return Efr(e,n);case De.ZodFunction:case De.ZodVoid:case De.ZodSymbol:return;default:return(r=>{})(t)}};Ifr=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:KPt(t.currentPath,e.path)};case"none":case"seen":return e.path.lengtht.currentPath[r]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),Qu(t)):t.$refStrategy==="seen"?Qu(t):void 0}},xfr=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n),Ofr=(e,t)=>{let n=Zdr(t),r=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((c,[u,l])=>({...c,[u]:Er(l._def,{...n,currentPath:[...n.basePath,n.definitionPath,u]},!0)??Qu(n)}),{}):void 0,i=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,s=Er(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??Qu(n),o=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;o!==void 0&&(s.title=o),n.flags.hasReferencedOpenAiAnyType&&(r||(r={}),r[n.openAiAnyTypeName]||(r[n.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:n.$refStrategy==="relative"?"1":[...n.basePath,n.definitionPath,n.openAiAnyTypeName].join("/")}}));let a=i===void 0?r?{...s,[n.definitionPath]:r}:s:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,i].join("/"),[n.definitionPath]:{...r,[i]:s}};return n.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in a||"oneOf"in a||"allOf"in a||"type"in a&&Array.isArray(a.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),a};Nfr=6e4,vTe=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(KTe,n=>{this._oncancel(n)}),this.setNotificationHandler(ZTe,n=>{this._onprogress(n)}),this.setRequestHandler(YTe,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(JTe,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new Et(Ft.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(QTe,async(n,r)=>{let i=async()=>{var s;let o=n.params.taskId;if(this._taskMessageQueue){let c;for(;c=await this._taskMessageQueue.dequeue(o,r.sessionId);){if(c.type==="response"||c.type==="error"){let u=c.message,l=u.id,d=this._requestResolvers.get(l);if(d)if(this._requestResolvers.delete(l),c.type==="response")d(u);else{let f=u,p=new Et(f.error.code,f.error.message,f.error.data);d(p)}else{let f=c.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${l}`))}continue}await((s=this._transport)===null||s===void 0?void 0:s.send(c.message,{relatedRequestId:r.requestId}))}}let a=await this._taskStore.getTask(o,r.sessionId);if(!a)throw new Et(Ft.InvalidParams,`Task not found: ${o}`);if(!Yv(a.status))return await this._waitForTaskUpdate(o,r.signal),await i();if(Yv(a.status)){let c=await this._taskStore.getTaskResult(o,r.sessionId);return this._clearTaskQueue(o),{...c,_meta:{...c._meta,[Jg]:{taskId:o}}}}return await i()};return await i()}),this.setRequestHandler($Te,async(n,r)=>{var i;try{let{tasks:s,nextCursor:o}=await this._taskStore.listTasks((i=n.params)===null||i===void 0?void 0:i.cursor,r.sessionId);return{tasks:s,nextCursor:o,_meta:{}}}catch(s){throw new Et(Ft.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(Mlr,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new Et(Ft.InvalidParams,`Task not found: ${n.params.taskId}`);if(Yv(i.status))throw new Et(Ft.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let s=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!s)throw new Et(Ft.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof Et?i:new Et(Ft.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(t){let n=this._requestHandlerAbortControllers.get(t.params.requestId);n?.abort(t.params.reason)}_setupTimeout(t,n,r,i,s=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),Et.fromError(Ft.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){var n,r,i;this._transport=t;let s=(n=this.transport)===null||n===void 0?void 0:n.onclose;this._transport.onclose=()=>{s?.(),this._onclose()};let o=(r=this.transport)===null||r===void 0?void 0:r.onerror;this._transport.onerror=c=>{o?.(c),this._onerror(c)};let a=(i=this._transport)===null||i===void 0?void 0:i.onmessage;this._transport.onmessage=(c,u)=>{a?.(c,u),A5(c)||blr(c)?this._onresponse(c):Xxt(c)?this._onrequest(c,u):Slr(c)?this._onnotification(c):this._onerror(new Error(`Unknown message type: ${JSON.stringify(c)}`))},await this._transport.start()}_onclose(){var t;let n=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=Et.fromError(Ft.ConnectionClosed,"Connection closed");this._transport=void 0,(t=this.onclose)===null||t===void 0||t.call(this);for(let i of n.values())i(r)}_onerror(t){var n;(n=this.onerror)===null||n===void 0||n.call(this,t)}_onnotification(t){var n;let r=(n=this._notificationHandlers.get(t.method))!==null&&n!==void 0?n:this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(i=>this._onerror(new Error(`Uncaught error in notification handler: ${i}`)))}_onrequest(t,n){var r,i,s,o,a,c;let u=(r=this._requestHandlers.get(t.method))!==null&&r!==void 0?r:this.fallbackRequestHandler,l=this._transport,d=(o=(s=(i=t.params)===null||i===void 0?void 0:i._meta)===null||s===void 0?void 0:s[Jg])===null||o===void 0?void 0:o.taskId;if(u===void 0){let g={jsonrpc:"2.0",id:t.id,error:{code:Ft.MethodNotFound,message:"Method not found"}};d&&this._taskMessageQueue?this._enqueueTaskMessage(d,{type:"error",message:g,timestamp:Date.now()},l?.sessionId).catch(y=>this._onerror(new Error(`Failed to enqueue error response: ${y}`))):l?.send(g).catch(y=>this._onerror(new Error(`Failed to send an error response: ${y}`)));return}let f=new AbortController;this._requestHandlerAbortControllers.set(t.id,f);let p=(a=t.params)===null||a===void 0?void 0:a.task,h=this._taskStore?this.requestTaskStore(t,l?.sessionId):void 0,m={signal:f.signal,sessionId:l?.sessionId,_meta:(c=t.params)===null||c===void 0?void 0:c._meta,sendNotification:async g=>{let y={relatedRequestId:t.id};d&&(y.relatedTask={taskId:d}),await this.notification(g,y)},sendRequest:async(g,y,b)=>{var S,E;let _={...b,relatedRequestId:t.id};d&&!_.relatedTask&&(_.relatedTask={taskId:d});let T=(E=(S=_.relatedTask)===null||S===void 0?void 0:S.taskId)!==null&&E!==void 0?E:d;return T&&h&&await h.updateTaskStatus(T,"input_required"),await this.request(g,y,_)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:d,taskStore:h,taskRequestedTtl:p?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{p&&this.assertTaskHandlerCapability(t.method)}).then(()=>u(t,m)).then(async g=>{if(f.signal.aborted)return;let y={result:g,jsonrpc:"2.0",id:t.id};d&&this._taskMessageQueue?await this._enqueueTaskMessage(d,{type:"response",message:y,timestamp:Date.now()},l?.sessionId):await l?.send(y)},async g=>{var y;if(f.signal.aborted)return;let b={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(g.code)?g.code:Ft.InternalError,message:(y=g.message)!==null&&y!==void 0?y:"Internal error",...g.data!==void 0&&{data:g.data}}};d&&this._taskMessageQueue?await this._enqueueTaskMessage(d,{type:"error",message:b,timestamp:Date.now()},l?.sessionId):await l?.send(b)}).catch(g=>this._onerror(new Error(`Failed to send response: ${g}`))).finally(()=>{this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...r}=t.params,i=Number(n),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(r)}_onresponse(t){let n=Number(t.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),A5(t))r(t);else{let o=new Et(t.error.code,t.error.message,t.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let s=!1;if(A5(t)&&t.result&&typeof t.result=="object"){let o=t.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,n))}}if(s||this._progressHandlers.delete(n),A5(t))i(t);else{let o=Et.fromError(t.error.code,t.error.message,t.error.data);i(o)}}get transport(){return this._transport}async close(){var t;await((t=this._transport)===null||t===void 0?void 0:t.close())}async*requestStream(t,n,r){var i,s,o,a;let{task:c}=r??{};if(!c){try{yield{type:"result",result:await this.request(t,n,r)}}catch(l){yield{type:"error",error:l instanceof Et?l:new Et(Ft.InternalError,String(l))}}return}let u;try{let l=await this.request(t,s8,r);if(l.task)u=l.task.taskId,yield{type:"taskCreated",task:l.task};else throw new Et(Ft.InternalError,"Task creation did not return a task");for(;;){let d=await this.getTask({taskId:u},r);if(yield{type:"taskStatus",task:d},Yv(d.status)){d.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)}:d.status==="failed"?yield{type:"error",error:new Et(Ft.InternalError,`Task ${u} failed`)}:d.status==="cancelled"&&(yield{type:"error",error:new Et(Ft.InternalError,`Task ${u} was cancelled`)});return}if(d.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:u},n,r)};return}let f=(o=(i=d.pollInterval)!==null&&i!==void 0?i:(s=this._options)===null||s===void 0?void 0:s.defaultTaskPollInterval)!==null&&o!==void 0?o:1e3;await new Promise(p=>setTimeout(p,f)),(a=r?.signal)===null||a===void 0||a.throwIfAborted()}}catch(l){yield{type:"error",error:l instanceof Et?l:new Et(Ft.InternalError,String(l))}}}request(t,n,r){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=r??{};return new Promise((u,l)=>{var d,f,p,h,m,g,y;let b=x=>{l(x)};if(!this._transport){b(new Error("Not connected"));return}if(((d=this._options)===null||d===void 0?void 0:d.enforceStrictCapabilities)===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(x){b(x);return}(f=r?.signal)===null||f===void 0||f.throwIfAborted();let S=this._requestMessageId++,E={...t,jsonrpc:"2.0",id:S};r?.onprogress&&(this._progressHandlers.set(S,r.onprogress),E.params={...t.params,_meta:{...((p=t.params)===null||p===void 0?void 0:p._meta)||{},progressToken:S}}),a&&(E.params={...E.params,task:a}),c&&(E.params={...E.params,_meta:{...((h=E.params)===null||h===void 0?void 0:h._meta)||{},[Jg]:c}});let _=x=>{var k;this._responseHandlers.delete(S),this._progressHandlers.delete(S),this._cleanupTimeout(S),(k=this._transport)===null||k===void 0||k.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:S,reason:String(x)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(N=>this._onerror(new Error(`Failed to send cancellation: ${N}`)));let P=x instanceof Et?x:new Et(Ft.RequestTimeout,String(x));l(P)};this._responseHandlers.set(S,x=>{var k;if(!(!((k=r?.signal)===null||k===void 0)&&k.aborted)){if(x instanceof Error)return l(x);try{let P=kU(n,x.result);P.success?u(P.data):l(P.error)}catch(P){l(P)}}}),(m=r?.signal)===null||m===void 0||m.addEventListener("abort",()=>{var x;_((x=r?.signal)===null||x===void 0?void 0:x.reason)});let T=(g=r?.timeout)!==null&&g!==void 0?g:Nfr,R=()=>_(Et.fromError(Ft.RequestTimeout,"Request timed out",{timeout:T}));this._setupTimeout(S,T,r?.maxTotalTimeout,R,(y=r?.resetTimeoutOnProgress)!==null&&y!==void 0?y:!1);let A=c?.taskId;if(A){let x=k=>{let P=this._responseHandlers.get(S);P?P(k):this._onerror(new Error(`Response handler missing for side-channeled request ${S}`))};this._requestResolvers.set(S,x),this._enqueueTaskMessage(A,{type:"request",message:E,timestamp:Date.now()}).catch(k=>{this._cleanupTimeout(S),l(k)})}else this._transport.send(E,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(x=>{this._cleanupTimeout(S),l(x)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},XTe,n)}async getTaskResult(t,n,r){return this.request({method:"tasks/result",params:t},n,r)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},eve,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},Dlr,n)}async notification(t,n){var r,i,s,o,a;if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let c=(r=n?.relatedTask)===null||r===void 0?void 0:r.taskId;if(c){let f={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...((i=t.params)===null||i===void 0?void 0:i._meta)||{},[Jg]:n.relatedTask}}};await this._enqueueTaskMessage(c,{type:"notification",message:f,timestamp:Date.now()});return}if(((o=(s=this._options)===null||s===void 0?void 0:s.debouncedNotificationMethods)!==null&&o!==void 0?o:[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{var f,p;if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let h={...t,jsonrpc:"2.0"};n?.relatedTask&&(h={...h,params:{...h.params,_meta:{...((f=h.params)===null||f===void 0?void 0:f._meta)||{},[Jg]:n.relatedTask}}}),(p=this._transport)===null||p===void 0||p.send(h,n).catch(m=>this._onerror(m))});return}let d={...t,jsonrpc:"2.0"};n?.relatedTask&&(d={...d,params:{...d.params,_meta:{...((a=d.params)===null||a===void 0?void 0:a._meta)||{},[Jg]:n.relatedTask}}}),await this._transport.send(d,n)}setRequestHandler(t,n){let r=nOt(t);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,s)=>{let o=rOt(t,i);return Promise.resolve(n(o,s))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let r=nOt(t);this._notificationHandlers.set(r,i=>{let s=rOt(t,i);return Promise.resolve(n(s))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,r){var i;if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let s=(i=this._options)===null||i===void 0?void 0:i.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,r,s)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(t,n);for(let i of r)if(i.type==="request"&&Xxt(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new Et(Ft.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){var r,i,s;let o=(i=(r=this._options)===null||r===void 0?void 0:r.defaultTaskPollInterval)!==null&&i!==void 0?i:1e3;try{let a=await((s=this._taskStore)===null||s===void 0?void 0:s.getTask(t));a?.pollInterval&&(o=a.pollInterval)}catch{}return new Promise((a,c)=>{if(n.aborted){c(new Et(Ft.InvalidRequest,"Request cancelled"));return}let u=setTimeout(a,o);n.addEventListener("abort",()=>{clearTimeout(u),c(new Et(Ft.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!t)throw new Error("No request provided");return await r.createTask(i,t.id,{method:t.method,params:t.params},n)},getTask:async i=>{let s=await r.getTask(i,n);if(!s)throw new Et(Ft.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await r.storeTaskResult(i,s,o,n);let a=await r.getTask(i,n);if(a){let c=j5.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Yv(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,s,o)=>{let a=await r.getTask(i,n);if(!a)throw new Et(Ft.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(Yv(a.status))throw new Et(Ft.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,s,o,n);let c=await r.getTask(i,n);if(c){let u=j5.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Yv(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};Mfr=uOt(yOt(),1),Dfr=uOt(hrr(),1);RTe=class{constructor(t){this._ajv=t??Lfr()}getValidator(t){var n;let r="$id"in t&&typeof t.$id=="string"?(n=this._ajv.getSchema(t.$id))!==null&&n!==void 0?n:this._ajv.compile(t):this._ajv.compile(t);return i=>r(i)?{valid:!0,data:i,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}},ATe=class{constructor(t){this._server=t}requestStream(t,n,r){return this._server.requestStream(t,n,r)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,r){return this._server.getTaskResult({taskId:t},n,r)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}};wTe=class extends vTe{constructor(t,n){var r,i;super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(q5.options.map((s,o)=>[s,o])),this.isMessageIgnored=(s,o)=>{let a=this._loggingLevels.get(o);return a?this.LOG_LEVEL_SEVERITY.get(s)this._oninitialize(s)),this.setNotificationHandler(LPt,()=>{var s;return(s=this.oninitialized)===null||s===void 0?void 0:s.call(this)}),this._capabilities.logging&&this.setRequestHandler(BPt,async(s,o)=>{var a;let c=o.sessionId||((a=o.requestInfo)===null||a===void 0?void 0:a.headers["mcp-session-id"])||void 0,{level:u}=s.params,l=q5.safeParse(u);return l.success&&this._loggingLevels.set(c,l.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new ATe(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Cfr(this._capabilities,t)}setRequestHandler(t,n){var r,i,s;let o=GU(t),a=o?.method;if(!a)throw new Error("Schema is missing a method literal");let c;if(yp(a)){let l=a,d=(r=l._zod)===null||r===void 0?void 0:r.def;c=(i=d?.value)!==null&&i!==void 0?i:l.value}else{let l=a,d=l._def;c=(s=d?.value)!==null&&s!==void 0?s:l.value}if(typeof c!="string")throw new Error("Schema method literal must be a string");if(c==="tools/call"){let l=async(d,f)=>{let p=kU(H5,d);if(!p.success){let y=p.error instanceof Error?p.error.message:String(p.error);throw new Et(Ft.InvalidParams,`Invalid tools/call request: ${y}`)}let{params:h}=p.data,m=await Promise.resolve(n(d,f));if(h.task){let y=kU(s8,m);if(!y.success){let b=y.error instanceof Error?y.error.message:String(y.error);throw new Et(Ft.InvalidParams,`Invalid task creation result: ${b}`)}return y.data}let g=kU(ave,m);if(!g.success){let y=g.error instanceof Error?g.error.message:String(g.error);throw new Et(Ft.InvalidParams,`Invalid tools/call result: ${y}`)}return g.data};return super.setRequestHandler(t,l)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){var n,r,i;switch(t){case"sampling/createMessage":if(!(!((n=this._clientCapabilities)===null||n===void 0)&&n.sampling))throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!(!((r=this._clientCapabilities)===null||r===void 0)&&r.elicitation))throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!(!((i=this._clientCapabilities)===null||i===void 0)&&i.roots))throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){var n,r;switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!(!((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.elicitation)===null||r===void 0)&&r.url))throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){var n,r;Ffr((r=(n=this._clientCapabilities)===null||n===void 0?void 0:n.tasks)===null||r===void 0?void 0:r.requests,t,"Client")}assertTaskHandlerCapability(t){var n;this._capabilities&&Ufr((n=this._capabilities.tasks)===null||n===void 0?void 0:n.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:mlr.includes(n)?n:kPt,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},WTe)}async createMessage(t,n){var r,i;if((t.tools||t.toolChoice)&&!(!((i=(r=this._clientCapabilities)===null||r===void 0?void 0:r.sampling)===null||i===void 0)&&i.tools))throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let s=t.messages[t.messages.length-1],o=Array.isArray(s.content)?s.content:[s.content],a=o.some(d=>d.type==="tool_result"),c=t.messages.length>1?t.messages[t.messages.length-2]:void 0,u=c?Array.isArray(c.content)?c.content:[c.content]:[],l=u.some(d=>d.type==="tool_use");if(a){if(o.some(d=>d.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let d=new Set(u.filter(p=>p.type==="tool_use").map(p=>p.id)),f=new Set(o.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(d.size!==f.size||![...d].every(p=>f.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},GPt,n):this.request({method:"sampling/createMessage",params:t},zPt,n)}async elicitInput(t,n){var r,i,s,o,a;switch((r=t.mode)!==null&&r!==void 0?r:"form"){case"url":{if(!(!((s=(i=this._clientCapabilities)===null||i===void 0?void 0:i.elicitation)===null||s===void 0)&&s.url))throw new Error("Client does not support url elicitation.");let u=t;return this.request({method:"elicitation/create",params:u},ETe,n)}case"form":{if(!(!((a=(o=this._clientCapabilities)===null||o===void 0?void 0:o.elicitation)===null||a===void 0)&&a.form))throw new Error("Client does not support form elicitation.");let u=t.mode==="form"?t:{...t,mode:"form"},l=await this.request({method:"elicitation/create",params:u},ETe,n);if(l.action==="accept"&&l.content&&u.requestedSchema)try{let f=this._jsonSchemaValidator.getValidator(u.requestedSchema)(l.content);if(!f.valid)throw new Et(Ft.InvalidParams,`Elicitation response content does not match requested schema: ${f.errorMessage}`)}catch(d){throw d instanceof Et?d:new Et(Ft.InternalError,`Error validating elicitation response: ${d instanceof Error?d.message:String(d)}`)}return l}}}createElicitationCompletionNotifier(t,n){var r,i;if(!(!((i=(r=this._clientCapabilities)===null||r===void 0?void 0:r.elicitation)===null||i===void 0)&&i.url))throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},VPt,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}},QPt=Symbol.for("mcp.completable");(function(e){e.Completable="McpCompletable"})(sOt||(sOt={}));qfr=/^[A-Za-z0-9._-]{1,128}$/;kTe=class{constructor(t){this._mcpServer=t}registerToolTask(t,n,r){let i={taskSupport:"required",...n.execution};if(i.taskSupport==="forbidden")throw new Error(`Cannot register task-based tool '${t}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(t,n.title,n.description,n.inputSchema,n.outputSchema,n.annotations,i,n._meta,r)}},ITe=class{constructor(t,n){this._registeredResources={},this._registeredResourceTemplates={},this._registeredTools={},this._registeredPrompts={},this._toolHandlersInitialized=!1,this._completionHandlerInitialized=!1,this._resourceHandlersInitialized=!1,this._promptHandlersInitialized=!1,this.server=new wTe(t,n)}get experimental(){return this._experimental||(this._experimental={tasks:new kTe(this)}),this._experimental}async connect(t){return await this.server.connect(t)}async close(){await this.server.close()}setToolRequestHandlers(){this._toolHandlersInitialized||(this.server.assertCanSetRequestHandler($b(bTe)),this.server.assertCanSetRequestHandler($b(H5)),this.server.registerCapabilities({tools:{listChanged:!0}}),this.server.setRequestHandler(bTe,()=>({tools:Object.entries(this._registeredTools).filter(([,t])=>t.enabled).map(([t,n])=>{let r={name:t,title:n.title,description:n.description,inputSchema:(()=>{let i=_U(n.inputSchema);return i?tOt(i,{strictUnions:!0,pipeStrategy:"input"}):Gfr})(),annotations:n.annotations,execution:n.execution,_meta:n._meta};if(n.outputSchema){let i=_U(n.outputSchema);i&&(r.outputSchema=tOt(i,{strictUnions:!0,pipeStrategy:"output"}))}return r})})),this.server.setRequestHandler(H5,async(t,n)=>{var r;try{let i=this._registeredTools[t.params.name];if(!i)throw new Et(Ft.InvalidParams,`Tool ${t.params.name} not found`);if(!i.enabled)throw new Et(Ft.InvalidParams,`Tool ${t.params.name} disabled`);let s=!!t.params.task,o=(r=i.execution)===null||r===void 0?void 0:r.taskSupport,a="createTask"in i.handler;if((o==="required"||o==="optional")&&!a)throw new Et(Ft.InternalError,`Tool ${t.params.name} has taskSupport '${o}' but was not registered with registerToolTask`);if(o==="required"&&!s)throw new Et(Ft.MethodNotFound,`Tool ${t.params.name} requires task augmentation (taskSupport: 'required')`);if(o==="optional"&&!s&&a)return await this.handleAutomaticTaskPolling(i,t,n);let c=await this.validateToolInput(i,t.params.arguments,t.params.name),u=await this.executeToolHandler(i,c,n);return s||await this.validateToolOutput(i,u,t.params.name),u}catch(i){if(i instanceof Et&&i.code===Ft.UrlElicitationRequired)throw i;return this.createToolError(i instanceof Error?i.message:String(i))}}),this._toolHandlersInitialized=!0)}createToolError(t){return{content:[{type:"text",text:t}],isError:!0}}async validateToolInput(t,n,r){if(!t.inputSchema)return;let i=_U(t.inputSchema),s=i??t.inputSchema,o=await Y_e(s,n);if(!o.success){let a="error"in o?o.error:"Unknown error",c=Z_e(a);throw new Et(Ft.InvalidParams,`Input validation error: Invalid arguments for tool ${r}: ${c}`)}return o.data}async validateToolOutput(t,n,r){if(!t.outputSchema||!("content"in n)||n.isError)return;if(!n.structuredContent)throw new Et(Ft.InvalidParams,`Output validation error: Tool ${r} has an output schema but no structured content was provided`);let i=_U(t.outputSchema),s=await Y_e(i,n.structuredContent);if(!s.success){let o="error"in s?s.error:"Unknown error",a=Z_e(o);throw new Et(Ft.InvalidParams,`Output validation error: Invalid structured content for tool ${r}: ${a}`)}}async executeToolHandler(t,n,r){let i=t.handler;if("createTask"in i){if(!r.taskStore)throw new Error("No task store provided.");let o={...r,taskStore:r.taskStore};if(t.inputSchema){let a=i;return await Promise.resolve(a.createTask(n,o))}else{let a=i;return await Promise.resolve(a.createTask(o))}}if(t.inputSchema){let o=i;return await Promise.resolve(o(n,r))}else{let o=i;return await Promise.resolve(o(r))}}async handleAutomaticTaskPolling(t,n,r){var i;if(!r.taskStore)throw new Error("No task store provided for task-capable tool.");let s=await this.validateToolInput(t,n.params.arguments,n.params.name),o=t.handler,a={...r,taskStore:r.taskStore},c=s?await Promise.resolve(o.createTask(s,a)):await Promise.resolve(o.createTask(a)),u=c.task.taskId,l=c.task,d=(i=l.pollInterval)!==null&&i!==void 0?i:5e3;for(;l.status!=="completed"&&l.status!=="failed"&&l.status!=="cancelled";){await new Promise(p=>setTimeout(p,d));let f=await r.taskStore.getTask(u);if(!f)throw new Et(Ft.InternalError,`Task ${u} not found during polling`);l=f}return await r.taskStore.getTaskResult(u)}setCompletionRequestHandler(){this._completionHandlerInitialized||(this.server.assertCanSetRequestHandler($b(_Te)),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(_Te,async t=>{switch(t.params.ref.type){case"ref/prompt":return qdr(t),this.handlePromptCompletion(t,t.params.ref);case"ref/resource":return Bdr(t),this.handleResourceCompletion(t,t.params.ref);default:throw new Et(Ft.InvalidParams,`Invalid completion reference: ${t.params.ref}`)}}),this._completionHandlerInitialized=!0)}async handlePromptCompletion(t,n){let r=this._registeredPrompts[n.name];if(!r)throw new Et(Ft.InvalidParams,`Prompt ${n.name} not found`);if(!r.enabled)throw new Et(Ft.InvalidParams,`Prompt ${n.name} disabled`);if(!r.argsSchema)return TU;let i=GU(r.argsSchema),s=i?.[t.params.argument.name];if(!jfr(s))return TU;let o=Hfr(s);if(!o)return TU;let a=await o(t.params.argument.value,t.params.context);return cOt(a)}async handleResourceCompletion(t,n){let r=Object.values(this._registeredResourceTemplates).find(o=>o.resourceTemplate.uriTemplate.toString()===n.uri);if(!r){if(this._registeredResources[n.uri])return TU;throw new Et(Ft.InvalidParams,`Resource template ${t.params.ref.uri} not found`)}let i=r.resourceTemplate.completeCallback(t.params.argument.name);if(!i)return TU;let s=await i(t.params.argument.value,t.params.context);return cOt(s)}setResourceRequestHandlers(){this._resourceHandlersInitialized||(this.server.assertCanSetRequestHandler($b(hTe)),this.server.assertCanSetRequestHandler($b(mTe)),this.server.assertCanSetRequestHandler($b(gTe)),this.server.registerCapabilities({resources:{listChanged:!0}}),this.server.setRequestHandler(hTe,async(t,n)=>{let r=Object.entries(this._registeredResources).filter(([s,o])=>o.enabled).map(([s,o])=>({uri:s,name:o.name,...o.metadata})),i=[];for(let s of Object.values(this._registeredResourceTemplates)){if(!s.resourceTemplate.listCallback)continue;let o=await s.resourceTemplate.listCallback(n);for(let a of o.resources)i.push({...s.metadata,...a})}return{resources:[...r,...i]}}),this.server.setRequestHandler(mTe,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([n,r])=>({name:n,uriTemplate:r.resourceTemplate.uriTemplate.toString(),...r.metadata}))})),this.server.setRequestHandler(gTe,async(t,n)=>{let r=new URL(t.params.uri),i=this._registeredResources[r.toString()];if(i){if(!i.enabled)throw new Et(Ft.InvalidParams,`Resource ${r} disabled`);return i.readCallback(r,n)}for(let s of Object.values(this._registeredResourceTemplates)){let o=s.resourceTemplate.uriTemplate.match(r.toString());if(o)return s.readCallback(r,o,n)}throw new Et(Ft.InvalidParams,`Resource ${r} not found`)}),this.setCompletionRequestHandler(),this._resourceHandlersInitialized=!0)}setPromptRequestHandlers(){this._promptHandlersInitialized||(this.server.assertCanSetRequestHandler($b(yTe)),this.server.assertCanSetRequestHandler($b(STe)),this.server.registerCapabilities({prompts:{listChanged:!0}}),this.server.setRequestHandler(yTe,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,t])=>t.enabled).map(([t,n])=>({name:t,title:n.title,description:n.description,arguments:n.argsSchema?Wfr(n.argsSchema):void 0}))})),this.server.setRequestHandler(STe,async(t,n)=>{let r=this._registeredPrompts[t.params.name];if(!r)throw new Et(Ft.InvalidParams,`Prompt ${t.params.name} not found`);if(!r.enabled)throw new Et(Ft.InvalidParams,`Prompt ${t.params.name} disabled`);if(r.argsSchema){let i=_U(r.argsSchema),s=await Y_e(i,t.params.arguments);if(!s.success){let c="error"in s?s.error:"Unknown error",u=Z_e(c);throw new Et(Ft.InvalidParams,`Invalid arguments for prompt ${t.params.name}: ${u}`)}let o=s.data,a=r.callback;return await Promise.resolve(a(o,n))}else{let i=r.callback;return await Promise.resolve(i(n))}}),this.setCompletionRequestHandler(),this._promptHandlersInitialized=!0)}resource(t,n,...r){let i;typeof r[0]=="object"&&(i=r.shift());let s=r[0];if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let o=this._createRegisteredResource(t,void 0,n,i,s);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let o=this._createRegisteredResourceTemplate(t,void 0,n,i,s);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),o}}registerResource(t,n,r,i){if(typeof n=="string"){if(this._registeredResources[n])throw new Error(`Resource ${n} is already registered`);let s=this._createRegisteredResource(t,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}else{if(this._registeredResourceTemplates[t])throw new Error(`Resource template ${t} is already registered`);let s=this._createRegisteredResourceTemplate(t,r.title,n,r,i);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),s}}_createRegisteredResource(t,n,r,i,s){let o={name:t,title:n,metadata:i,readCallback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({uri:null}),update:a=>{typeof a.uri<"u"&&a.uri!==r&&(delete this._registeredResources[r],a.uri&&(this._registeredResources[a.uri]=o)),typeof a.name<"u"&&(o.name=a.name),typeof a.title<"u"&&(o.title=a.title),typeof a.metadata<"u"&&(o.metadata=a.metadata),typeof a.callback<"u"&&(o.readCallback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResources[r]=o,o}_createRegisteredResourceTemplate(t,n,r,i,s){let o={resourceTemplate:r,title:n,metadata:i,readCallback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredResourceTemplates[t],a.name&&(this._registeredResourceTemplates[a.name]=o)),typeof a.title<"u"&&(o.title=a.title),typeof a.template<"u"&&(o.resourceTemplate=a.template),typeof a.metadata<"u"&&(o.metadata=a.metadata),typeof a.callback<"u"&&(o.readCallback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendResourceListChanged()}};return this._registeredResourceTemplates[t]=o,o}_createRegisteredPrompt(t,n,r,i,s){let o={title:n,description:r,argsSchema:i===void 0?void 0:wU(i),callback:s,enabled:!0,disable:()=>o.update({enabled:!1}),enable:()=>o.update({enabled:!0}),remove:()=>o.update({name:null}),update:a=>{typeof a.name<"u"&&a.name!==t&&(delete this._registeredPrompts[t],a.name&&(this._registeredPrompts[a.name]=o)),typeof a.title<"u"&&(o.title=a.title),typeof a.description<"u"&&(o.description=a.description),typeof a.argsSchema<"u"&&(o.argsSchema=wU(a.argsSchema)),typeof a.callback<"u"&&(o.callback=a.callback),typeof a.enabled<"u"&&(o.enabled=a.enabled),this.sendPromptListChanged()}};return this._registeredPrompts[t]=o,o}_createRegisteredTool(t,n,r,i,s,o,a,c,u){oOt(t);let l={title:n,description:r,inputSchema:aOt(i),outputSchema:aOt(s),annotations:o,execution:a,_meta:c,handler:u,enabled:!0,disable:()=>l.update({enabled:!1}),enable:()=>l.update({enabled:!0}),remove:()=>l.update({name:null}),update:d=>{typeof d.name<"u"&&d.name!==t&&(typeof d.name=="string"&&oOt(d.name),delete this._registeredTools[t],d.name&&(this._registeredTools[d.name]=l)),typeof d.title<"u"&&(l.title=d.title),typeof d.description<"u"&&(l.description=d.description),typeof d.paramsSchema<"u"&&(l.inputSchema=wU(d.paramsSchema)),typeof d.callback<"u"&&(l.handler=d.callback),typeof d.annotations<"u"&&(l.annotations=d.annotations),typeof d._meta<"u"&&(l._meta=d._meta),typeof d.enabled<"u"&&(l.enabled=d.enabled),this.sendToolListChanged()}};return this._registeredTools[t]=l,this.setToolRequestHandlers(),this.sendToolListChanged(),l}tool(t,...n){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let r,i,s,o;if(typeof n[0]=="string"&&(r=n.shift()),n.length>1){let c=n[0];xTe(c)?(i=n.shift(),n.length>1&&typeof n[0]=="object"&&n[0]!==null&&!xTe(n[0])&&(o=n.shift())):typeof c=="object"&&c!==null&&(o=n.shift())}let a=n[0];return this._createRegisteredTool(t,void 0,r,i,s,o,{taskSupport:"forbidden"},void 0,a)}registerTool(t,n,r){if(this._registeredTools[t])throw new Error(`Tool ${t} is already registered`);let{title:i,description:s,inputSchema:o,outputSchema:a,annotations:c,_meta:u}=n;return this._createRegisteredTool(t,i,s,o,a,c,{taskSupport:"forbidden"},u,r)}prompt(t,...n){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let r;typeof n[0]=="string"&&(r=n.shift());let i;n.length>1&&(i=n.shift());let s=n[0],o=this._createRegisteredPrompt(t,void 0,r,i,s);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),o}registerPrompt(t,n,r){if(this._registeredPrompts[t])throw new Error(`Prompt ${t} is already registered`);let{title:i,description:s,argsSchema:o}=n,a=this._createRegisteredPrompt(t,i,s,o,r);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),a}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(t,n){return this.server.sendLoggingMessage(t,n)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},Gfr={type:"object",properties:{}};TU={completion:{values:[],hasMore:!1}}});var nNt={};Ar(nNt,{runRepairAgent:()=>$fr});import{existsSync as Qv,readdirSync as cve,readFileSync as uve}from"node:fs";import{join as ry}from"node:path";async function $fr(e){let t;try{t=(await Promise.resolve().then(()=>(tNt(),eNt))).query}catch{return{success:!1,summary:"Claude Agent SDK not available \u2014 mechanical repair applied, remaining issues need manual attention",fallbackUsed:!0}}let n=epr(e),r=tpr(e),i=12e4;try{let s=(async()=>{let c="";for await(let u of t({prompt:r,options:{model:"claude-haiku-4-5-20251001",cwd:e.intentDir,additionalDirectories:[e.studioDir],allowedTools:["Read","Write","Glob","Grep"],disallowedTools:["Bash","Agent","WebSearch","WebFetch","Edit"],permissionMode:"dontAsk",maxTurns:25,systemPrompt:n}}))u.type==="result"&&(c=u.result||"");return c})(),o=new Promise((c,u)=>setTimeout(()=>u(new Error("repair agent timed out")),i)),a=await Promise.race([s,o]);return{success:a.trim().length>0,summary:a||"Repair agent completed but produced no output",fallbackUsed:!1}}catch(s){return{success:!1,summary:`Repair agent failed: ${s instanceof Error?s.message:String(s)}`,fallbackUsed:!0}}}function epr(e){let t=npr(e.studioDir);return`You are a H\xB7AI\xB7K\xB7U intent repair agent. Your single purpose is to fix metadata and state in H\xB7AI\xB7K\xB7U intent files that are in an inconsistent state after migration from a legacy system. ## Constraints (CRITICAL \u2014 non-negotiable) @@ -1509,35 +1509,35 @@ After making all repairs, summarize: 2. Which stages are stuck and why (read-only observations only \u2014 do not write state.json) 3. Any issues that could not be automatically resolved and need human attention (residual unit \`inputs:\` problems, unit content concerns, anything you spotted but cannot touch)`),t.join(` -`)}function npr(e){let t=ry(e,"stages");if(!Qv(t))return"(no stages directory found)";let n=[],r;try{r=ave(t).filter(i=>Qv(ry(t,i,"STAGE.md")))}catch{return"(could not read stages directory)"}for(let i of r){let s=ry(t,i,"STAGE.md");try{let o=cve(s,"utf8"),{data:a}=(0,s8.default)(o),c=Object.keys(a).length>0?Object.entries(a).map(([u,l])=>`${u}: ${JSON.stringify(l)}`).join(` +`)}function npr(e){let t=ry(e,"stages");if(!Qv(t))return"(no stages directory found)";let n=[],r;try{r=cve(t).filter(i=>Qv(ry(t,i,"STAGE.md")))}catch{return"(could not read stages directory)"}for(let i of r){let s=ry(t,i,"STAGE.md");try{let o=uve(s,"utf8"),{data:a}=(0,o8.default)(o),c=Object.keys(a).length>0?Object.entries(a).map(([u,l])=>`${u}: ${JSON.stringify(l)}`).join(` `):"(no frontmatter)";n.push(`### ${i} \`\`\`yaml ${c} \`\`\``)}catch{n.push(`### ${i} (could not read STAGE.md)`)}}return n.join(` -`)}function rpr(e){let t=[],n=ry(e.studioDir,"stages");if(!Qv(n))return t;let r={},i;try{i=ave(n).filter(o=>Qv(ry(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=ry(n,o,"discovery");if(Qv(a))try{for(let c of ave(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,s8.default)(cve(ry(a,c),"utf8")),l=u.name||c.replace(/\.md$/,"").toLowerCase(),d=u.location||"";d&&(r[l]=d.replace(/\{intent-slug\}/g,"").replace(/^\.haiku\/intents\/\//,""))}}catch{}}let s=ry(n,e.activeStage,"STAGE.md");if(!Qv(s))return t;try{let o=cve(s,"utf8"),{data:a}=(0,s8.default)(o),c=a.inputs||[];for(let u of c)if(u.discovery){let l=r[u.discovery];if(l){let d=ry(e.intentDir,l);Qv(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var s8,rNt=v(()=>{"use strict";s8=Re(Kt(),1)});import{execFileSync as oE}from"node:child_process";import{existsSync as su,mkdirSync as ipr,readFileSync as Xx,writeFileSync as spr}from"node:fs";import{join as po}from"node:path";function iy(e){let t=e_e(e);return t?.action?t.action:t?{action:"error",message:`runWorkflowTick produced no action for intent '${e}' (track: ${t.position.track}). The cursor is mid-wave or sealed \u2014 wait for outstanding subagents and retick.`}:{action:"error",message:`Intent '${e}' not found`}}function iNt(){try{return oE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function opr(e){for(let t of e.content??[]){if(t.type!=="text"||typeof t.text!="string")continue;let n=t.text.indexOf(` +`)}function rpr(e){let t=[],n=ry(e.studioDir,"stages");if(!Qv(n))return t;let r={},i;try{i=cve(n).filter(o=>Qv(ry(n,o,"STAGE.md")))}catch{return t}for(let o of i){let a=ry(n,o,"discovery");if(Qv(a))try{for(let c of cve(a).filter(u=>u.endsWith(".md"))){let{data:u}=(0,o8.default)(uve(ry(a,c),"utf8")),l=u.name||c.replace(/\.md$/,"").toLowerCase(),d=u.location||"";d&&(r[l]=d.replace(/\{intent-slug\}/g,"").replace(/^\.haiku\/intents\/\//,""))}}catch{}}let s=ry(n,e.activeStage,"STAGE.md");if(!Qv(s))return t;try{let o=uve(s,"utf8"),{data:a}=(0,o8.default)(o),c=a.inputs||[];for(let u of c)if(u.discovery){let l=r[u.discovery];if(l){let d=ry(e.intentDir,l);Qv(d)||t.push({name:u.discovery,path:l,neededBy:e.activeStage})}}}catch{}return t}var o8,rNt=v(()=>{"use strict";o8=Re(Kt(),1)});import{execFileSync as oE}from"node:child_process";import{existsSync as su,mkdirSync as ipr,readFileSync as Qx,writeFileSync as spr}from"node:fs";import{join as po}from"node:path";function iy(e){let t=t_e(e);return t?.action?t.action:t?{action:"error",message:`runWorkflowTick produced no action for intent '${e}' (track: ${t.position.track}). The cursor is mid-wave or sealed \u2014 wait for outstanding subagents and retick.`}:{action:"error",message:`Intent '${e}' not found`}}function iNt(){try{return oE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return""}}function opr(e){for(let t of e.content??[]){if(t.type!=="text"||typeof t.text!="string")continue;let n=t.text.indexOf(` ----`),i=(n>=0?t.text.slice(0,n):t.text).trim();if(i.startsWith("{"))try{let s=JSON.parse(i);if(typeof s.action=="string")return s.action}catch{}}return null}async function apr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(mU(),uve)),i=`haiku_${e}`,s=r.get(i);if(!s)return{ok:!1,message:`Engine bug: no handler registered for selection action '${e}' (looked up as '${i}').`};try{let o=await s.handle({intent:t},n);if(o.isError)return{ok:!1,message:o.content?.map(u=>u.type==="text"?u.text:"").join(` +---`),i=(n>=0?t.text.slice(0,n):t.text).trim();if(i.startsWith("{"))try{let s=JSON.parse(i);if(typeof s.action=="string")return s.action}catch{}}return null}async function apr(e,t,n){let{orchestratorToolHandlers:r}=await Promise.resolve().then(()=>(yU(),lve)),i=`haiku_${e}`,s=r.get(i);if(!s)return{ok:!1,message:`Engine bug: no handler registered for selection action '${e}' (looked up as '${i}').`};try{let o=await s.handle({intent:t},n);if(o.isError)return{ok:!1,message:o.content?.map(u=>u.type==="text"?u.text:"").join(` `).trim()||`Picker failed for ${e}.`};let a=o.content?.map(c=>c.type==="text"?c.text:"").join(` -`).trim();if(a)try{if(JSON.parse(a)?.action==="cancelled")return{ok:!1,message:`Picker for ${e} was cancelled or timed out without a selection. Re-run \`haiku_run_next\` to surface the picker again.`}}catch{}return{ok:!0}}catch(o){return{ok:!1,message:`Picker for ${e} threw: ${o instanceof Error?o.message:String(o)}`}}}function KU(e){if(!su(e))return{};let t=Xx(e,"utf8"),{data:n}=re(t);return n}var sNt,oNt=v(()=>{"use strict";yr();n_e();Oa();E3();t_e();Kd();hxt();sh();d5();c1();$c();Ge();Kn();vo();zi();vs();sNt={name:"haiku_run_next",description:"Advance the workflow. Returns the next action for the agent to take, with rendered instructions appended. Auto-resolves `intent` from the current branch when omitted; if multiple intents are active, requires explicit `intent`. Pass `external_review_url` when a stage is blocked on external review to record the URL for approval polling.",inputSchema:{type:"object",properties:{intent:{type:"string"},external_review_url:{type:"string"},state_file:{type:"string"},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}},async handle(e,t){let n=Date.now(),r=e.intent||"";if(!r){let S=yv();if(S)r=S.slug;else{if(ve())return{content:[{type:"text",text:"No intent specified and the current branch isn't an intent branch (`haiku//main` or `haiku//`). Pass `intent` explicitly, or `git switch haiku//main` to scope the engine to a specific intent. The engine refuses to auto-target an intent the user isn't actively on \u2014 that's how stray intent dirs end up touched and polluting `git status`."}],isError:!0};{let E=Te(),_=po(E,"intents"),T=su(_)?Fg(_).filter(R=>R.data.status!=="completed"):[];if(T.length===1)r=T[0].slug;else return T.length===0?{content:[{type:"text",text:"No active intents found. Start one with /haiku:haiku-start."}],isError:!0}:{content:[{type:"text",text:`Multiple active intents (${T.map(R=>R.slug).join(", ")}). Pass \`intent\` explicitly.`}],isError:!0}}}}let i=e.state_file,s=uSe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(ve())try{let S=oE("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),E=["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"].find(_=>su(po(S,_)));if(E){let _=oE("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` -`).filter(Boolean),T=oE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),R=_.length>0?`Conflicted files: ${_.join(", ")}.`:`(No conflict files reported \u2014 try \`git status\` to inspect, or \`git ${E==="MERGE_HEAD"?"merge":"rebase"} --abort\` to bail out.)`;return ye(JSON.stringify({action:"error",intent:r,error:"mid_merge_blocking_tick",marker:E,branch:T,conflict_files:_,message:`The working tree on '${T}' is mid-merge (${E} present) \u2014 most likely from the previous tick's pre-cursor sync hitting a real conflict. Resolve the conflicted files in place (the workflow-fields guard's mid-merge bypass permits Edit/Write during a merge), run \`git add \` and \`git commit\`, then re-run \`haiku_run_next\`. `+R},null,2))}}catch{}let o=_pe();if(o.length>0){let S=o.slice(0,50).join(` +`).trim();if(a)try{if(JSON.parse(a)?.action==="cancelled")return{ok:!1,message:`Picker for ${e} was cancelled or timed out without a selection. Re-run \`haiku_run_next\` to surface the picker again.`}}catch{}return{ok:!0}}catch(o){return{ok:!1,message:`Picker for ${e} threw: ${o instanceof Error?o.message:String(o)}`}}}function ZU(e){if(!su(e))return{};let t=Qx(e,"utf8"),{data:n}=re(t);return n}var sNt,oNt=v(()=>{"use strict";yr();r_e();Oa();T3();n_e();Kd();hxt();sh();f5();l1();$c();Ge();Kn();vo();zi();vs();sNt={name:"haiku_run_next",description:"Advance the workflow. Returns the next action for the agent to take, with rendered instructions appended. Auto-resolves `intent` from the current branch when omitted; if multiple intents are active, requires explicit `intent`. Pass `external_review_url` when a stage is blocked on external review to record the URL for approval polling.",inputSchema:{type:"object",properties:{intent:{type:"string"},external_review_url:{type:"string"},state_file:{type:"string"},pickup:{type:"boolean",description:"Set true when invoked from /haiku:haiku-pickup. The engine fetches origin and materializes the active stage branch locally so the user can `git switch` into in-flight work, then appends a pickup hint to the response."}}},async handle(e,t){let n=Date.now(),r=e.intent||"";if(!r){let S=yv();if(S)r=S.slug;else{if(ve())return{content:[{type:"text",text:"No intent specified and the current branch isn't an intent branch (`haiku//main` or `haiku//`). Pass `intent` explicitly, or `git switch haiku//main` to scope the engine to a specific intent. The engine refuses to auto-target an intent the user isn't actively on \u2014 that's how stray intent dirs end up touched and polluting `git status`."}],isError:!0};{let E=Te(),_=po(E,"intents"),T=su(_)?Fg(_).filter(R=>R.data.status!=="completed"):[];if(T.length===1)r=T[0].slug;else return T.length===0?{content:[{type:"text",text:"No active intents found. Start one with /haiku:haiku-start."}],isError:!0}:{content:[{type:"text",text:`Multiple active intents (${T.map(R=>R.slug).join(", ")}). Pass \`intent\` explicitly.`}],isError:!0}}}}let i=e.state_file,s=lSe(r,"intent");if(s)return{content:[{type:"text",text:s}],isError:!0};if(ve())try{let S=oE("git",["rev-parse","--git-dir"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),E=["MERGE_HEAD","REBASE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD"].find(_=>su(po(S,_)));if(E){let _=oE("git",["diff","--name-only","--diff-filter=U"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).split(` +`).filter(Boolean),T=oE("git",["branch","--show-current"],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim(),R=_.length>0?`Conflicted files: ${_.join(", ")}.`:`(No conflict files reported \u2014 try \`git status\` to inspect, or \`git ${E==="MERGE_HEAD"?"merge":"rebase"} --abort\` to bail out.)`;return ye(JSON.stringify({action:"error",intent:r,error:"mid_merge_blocking_tick",marker:E,branch:T,conflict_files:_,message:`The working tree on '${T}' is mid-merge (${E} present) \u2014 most likely from the previous tick's pre-cursor sync hitting a real conflict. Resolve the conflicted files in place (the workflow-fields guard's mid-merge bypass permits Edit/Write during a merge), run \`git add \` and \`git commit\`, then re-run \`haiku_run_next\`. `+R},null,2))}}catch{}let o=Tpe();if(o.length>0){let S=o.slice(0,50).join(` `),E=o.length>50?` \u2026and ${o.length-50} more`:"";return ye(JSON.stringify({action:"error",intent:r,error:"dirty_tree_blocking_tick",dirty_files:o,message:`I can't advance the workflow with uncommitted work in the tree. Commit everything first \u2014 you author these commits, not the engine, because you know what you just did and can tell the story of the work. Keep the commit messages logical: group related changes into separate, coherent commits (one logical step each), and write messages that explain the WHY of the change \u2014 not a single catch-all 'wip' dump. Then re-run \`haiku_run_next\` to continue. Uncommitted: - `+S+E},null,2))}try{let S=po(Te(),"intents",r,"intent.md");if(su(S)){let E=KU(S),_=E.studio||"",T=typeof E.external_review_url=="string"&&E.external_review_url.length>0;if(_&&T){let{isGitRepo:R}=await Promise.resolve().then(()=>(Ge(),_Z));if(R()){PT();let{resolveStudioStages:A}=await Promise.resolve().then(()=>(Kd(),aNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(yr(),YD)),k=A(_),N=x(r,k).filter(C=>C.misrouted&&!C.reconciled&&C.error);if(N.length>0)return{content:[{type:"text",text:`Stage merge routed to the wrong branch \u2014 manual reconciliation needed: + `+S+E},null,2))}try{let S=po(Te(),"intents",r,"intent.md");if(su(S)){let E=ZU(S),_=E.studio||"",T=typeof E.external_review_url=="string"&&E.external_review_url.length>0;if(_&&T){let{isGitRepo:R}=await Promise.resolve().then(()=>(Ge(),TZ));if(R()){PT();let{resolveStudioStages:A}=await Promise.resolve().then(()=>(Kd(),aNt)),{reconcileMisroutedStageMerges:x}=await Promise.resolve().then(()=>(yr(),ZD)),k=A(_),N=x(r,k).filter(C=>C.misrouted&&!C.reconciled&&C.error);if(N.length>0)return{content:[{type:"text",text:`Stage merge routed to the wrong branch \u2014 manual reconciliation needed: ${N.map(C=>`- **Stage ${C.stage}**: ${C.error}`).join(` `)} -When reconciled, re-run \`haiku_run_next\` to continue.`}],isError:!0}}}}}catch(S){console.error(`[haiku_run_next] pre-cursor reconciliation failed: ${S instanceof Error?S.message:String(S)}`)}let a="";if(e.pickup===!0&&ve())try{PT();let S=po(Te(),"intents",r,"intent.md");if(su(S)){let _=KU(S).studio||"";if(_){let T=ai(r,_);if(T){let R=`haiku/${r}/${T}`;try{oE("git",["fetch","origin",`${R}:${R}`],{encoding:"utf8",stdio:"pipe"}),a=`Active stage branch \`${R}\` was fetched from origin. Run \`git switch ${R}\` to inspect in-flight unit work; the engine drives the workflow from intent main and doesn't need you on the stage branch.`}catch{}}}}}catch(S){console.error(`[haiku_run_next] pickup auto-fetch threw: ${S instanceof Error?S.message:String(S)}`)}{let S=hpe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(Te(),"intents",r,"intent.md");if(su(S)){let E=KU(S),_=E.studio||"",T=E.mode||"";if(!_||!T){if(!mr().startsWith(`haiku/${r}/`)){let x=gr(r,void 0);if(!x.ok)return Zb(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let R=ipe(r);if(!R.ok){let A=R.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:mr()||`haiku/${r}/main`,x=R.conflictBranch??A,k=R.conflictBranch??null;if(!((R.conflictFiles??[]).length>0)){let L=R.conflictAt==="mainline_to_intent_main"?`To recover: \`git checkout ${x}\`, merge the mainline ref into it manually, resolve any conflicts and commit, then \`git checkout\` back to your original branch and re-run \`haiku_run_next\`.`:`To recover: \`git merge haiku/${r}/main\` on this branch (you're already on '${x}'), resolve any conflicts and commit, then re-run \`haiku_run_next\`.`;return ye(JSON.stringify({action:"error",intent:r,error:"pre_cursor_sync_failed",conflict_at:R.conflictAt,conflict_branch:k,underlying_error:R.message,message:`Pre-cursor downstream sync FAILED on branch '${x}' (${R.conflictAt}). The merge couldn't start \u2014 there are NO conflict markers to resolve. Likely cause: the target branch is checked out elsewhere with dirty tracked changes, the worktree is locked, or git refused for another non-conflict reason. ${L} Underlying error: ${R.message??"(none reported)"}.`},null,2))}let N=(R.conflictFiles??[]).join(", "),C=R.conflictAt==="mainline_to_intent_main"?`The conflict happened in a temp worktree that's already been cleaned up \u2014 there are NO conflict markers in your working tree. To resolve: \`git checkout ${x}\`, merge the mainline ref manually (\`git merge \`), resolve the listed files, \`git add\` + \`git commit\`, then \`git checkout\` back to your original branch and re-run \`haiku_run_next\`.`:"Resolve the conflict on the listed files in place, run `git add ` and `git commit`, then re-run `haiku_run_next`.";return ye(JSON.stringify({action:"error",intent:r,error:"pre_cursor_sync_conflict",conflict_at:R.conflictAt,conflict_branch:k,conflict_files:R.conflictFiles,message:`Pre-cursor downstream sync hit a conflict on branch '${x}' (${R.conflictAt}). ${C} Conflicted files: ${N}.`},null,2))}}}}if(e.external_review_url)try{let S=Te(),E=po(S,"intents",r,"intent.md");su(E)&&Me(E,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(hv(),s1));S(r)}catch(S){console.error(`[haiku_run_next] drainPendingDispatches failed: ${S instanceof Error?S.message:String(S)}`)}let c=iy(r);try{let S=iNt(),E=`haiku/${r}/`,_=S.startsWith(E)&&S!==`${E}main`?S.slice(E.length):null;if(_&&!(typeof c.stage=="string"&&c.stage===_)){let T=pe(r),R=po(T,"intent.md");if(su(R)){let A=KU(R),x=A.studio||"",k=A.mode||"continuous";if(x&&k0(T,x,_,k)){let P=`haiku/${r}/${_}`,N=`haiku/${r}/main`;jD(P,N)||(c={action:"complete_stage",intent:r,stage:_})}}}}catch{}{let S=0;for(;c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage";){let E=Ix(c);if(++S>yU)return rm("select_*",S,c,"cap");if(y5(n))return S5("select_*",S,n,c);let _=await apr(c.action,r,t);if(!_.ok)return{content:[{type:"text",text:_.message}],isError:!0};if(c=iy(r),(c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage")&&Ix(c)===E)return rm("select_*",S,c,"no_progress")}}if((c.action==="dispatch_review"||c.action==="dispatch_approval")&&typeof c.stage=="string")try{let{stashPendingDispatch:S}=await Promise.resolve().then(()=>(hv(),s1)),E=c.action==="dispatch_review"?"review":"approval",_=Array.isArray(c.dispatches)?c.dispatches:typeof c.role=="string"&&Array.isArray(c.units)?[{role:c.role,units:c.units}]:[];for(let T of _)S(r,E,c.stage,T.role,T.units)}catch(S){console.error(`[haiku_run_next] stashPendingDispatch failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="start_unit_hat"&&typeof c.stage=="string"&&typeof c.hat=="string"&&Array.isArray(c.units))try{let{stampUnitHatLease:S}=await Promise.resolve().then(()=>(Ge(),_Z));for(let E of c.units)typeof E=="string"&&S({slug:r,stage:c.stage,unit:E,hat:c.hat})}catch(S){console.error(`[haiku_run_next] stampUnitHatLease failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="intent_review"){let E=(Array.isArray(c.dispatches)?c.dispatches.map(_=>typeof _?.role=="string"?_.role:"").filter(_=>_.length>0):typeof c.role=="string"?[c.role]:[]).filter(_=>_!=="user");if(E.length>0)try{let{stashPendingIntentReview:_}=await Promise.resolve().then(()=>(hv(),s1));for(let T of E)_(r,T)}catch(_){console.error(`[haiku_run_next] stashPendingIntentReview failed: ${_ instanceof Error?_.message:String(_)}`)}}let u=0,l=null;for(;c.action==="close_feedback"&&typeof c.stage=="string"&&typeof c.feedback_id=="string";){let S=Ix(c);if(++u>yU)return rm("close_feedback",u,c,"cap");if(y5(n))return S5("close_feedback",u,n,c);if(S===l)return rm("close_feedback",u,c,"no_progress");l=S;try{let E=c.stage,_=c.feedback_id,T=bc(r,E,_);if(!T)break;let R=T.path,A=T.data,x=new Date().toISOString();Me(R,"closed_at",x);let k=A.targets??{},P=k.unit,N=Array.isArray(k.invalidates)?k.invalidates:[];if(P&&N.length>0){let{applyFeedbackInvalidations:C}=await Promise.resolve().then(()=>(hv(),s1));C({slug:r,stage:E,targetUnit:P,invalidates:N})}if(A.origin==="drift"&&P){let C=po(Te(),"intents",r,"stages",E,"units",`${P}.md`);if(su(C)){let L=po(Te(),"intents",r),{buildReviewRecord:G}=await Promise.resolve().then(()=>(Xf(),Ayt)),W=Xx(C,"utf8"),q=re(W).data,Q=q.reviews&&typeof q.reviews=="object"?{...q.reviews}:{},B=Array.isArray(q.inputs)?q.inputs:[],F=!1;for(let[V,U]of Object.entries(Q)){if(!U||typeof U!="object"||Array.isArray(U))continue;let M=U;if(typeof M.at!="string")continue;let H=G(C,{intentDir:L,unitInputs:B});Q[V]={...M,body_sha256:H.body_sha256,input_witnesses:H.input_witnesses},F=!0}F&&Me(C,"reviews",Q)}}c=iy(r)}catch(E){console.error(`[haiku_run_next] close_feedback execution failed: ${E instanceof Error?E.message:String(E)}`);break}}if(c.action==="seal_intent")try{let S=po(Te(),"intents",r,"intent.md");su(S)&&(Me(S,"sealed_at",new Date().toISOString()),wt(`haiku: seal intent ${r}`),c=iy(r))}catch(S){console.error(`[haiku_run_next] merge_intent execution failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="pending_seal"&&e.pickup===!0)try{let S=po(Te(),"intents",r,"intent.md");if(su(S)){let{data:E}=re(Xx(S,"utf8")),_=E.approvals&&typeof E.approvals=="object"?{...E.approvals}:{},T=!1;for(let R of Object.keys(_))$D.has(R)&&_[R]!=null&&(_[R]=null,T=!0);T&&(Me(S,"approvals",_),wt(`haiku: re-open delivery review on pickup for ${r}`),c=iy(r))}}catch(S){console.error(`[haiku_run_next] pending-seal pickup re-open failed: ${S instanceof Error?S.message:String(S)}`)}let d=0,f=null;for(;c.action==="complete_stage"&&typeof c.stage=="string";){let S=Ix(c);if(++d>yU)return rm("complete_stage",d,c,"cap");if(y5(n))return S5("complete_stage",d,n,c);if(S===f)return rm("complete_stage",d,c,"no_progress");f=S;let E=c.stage;if(yye(pe(r),E)){c={action:"record_observations",intent:r,stage:E};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(Ge(),_Z));if(!_()){c=iy(r);continue}try{let x=`haiku/${r}/${E}`;if(iNt()===x){let k=`.haiku/intents/${r}/stages/${E}/observations.md`;oE("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(oE("git",["add","--",k],{stdio:"ignore"}),oE("git",["commit","-m",`haiku: observations for stage ${E}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(yr(),YD)),{withIntentMainLock:R}=await Promise.resolve().then(()=>(q0(),CSt)),A=R(r,()=>T(r,E));if(!A.success)return A.isConflict?{content:[{type:"text",text:`Stage '${E}' completion blocked by conflict: ${A.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${E}' completion blocked: its branch could not be merged into intent-main: ${A.message} +When reconciled, re-run \`haiku_run_next\` to continue.`}],isError:!0}}}}}catch(S){console.error(`[haiku_run_next] pre-cursor reconciliation failed: ${S instanceof Error?S.message:String(S)}`)}let a="";if(e.pickup===!0&&ve())try{PT();let S=po(Te(),"intents",r,"intent.md");if(su(S)){let _=ZU(S).studio||"";if(_){let T=ai(r,_);if(T){let R=`haiku/${r}/${T}`;try{oE("git",["fetch","origin",`${R}:${R}`],{encoding:"utf8",stdio:"pipe"}),a=`Active stage branch \`${R}\` was fetched from origin. Run \`git switch ${R}\` to inspect in-flight unit work; the engine drives the workflow from intent main and doesn't need you on the stage branch.`}catch{}}}}}catch(S){console.error(`[haiku_run_next] pickup auto-fetch threw: ${S instanceof Error?S.message:String(S)}`)}{let S=mpe(r);S.error&&console.error(`[haiku_run_next] reconcile: ${S.error}`)}{let S=po(Te(),"intents",r,"intent.md");if(su(S)){let E=ZU(S),_=E.studio||"",T=E.mode||"";if(!_||!T){if(!mr().startsWith(`haiku/${r}/`)){let x=gr(r,void 0);if(!x.ok)return Zb(r,void 0,x,"run_next entry \u2014 intent main (pre-selection)")}}else{let R=spe(r);if(!R.ok){let A=R.conflictAt==="mainline_to_intent_main"?`haiku/${r}/main`:mr()||`haiku/${r}/main`,x=R.conflictBranch??A,k=R.conflictBranch??null;if(!((R.conflictFiles??[]).length>0)){let L=R.conflictAt==="mainline_to_intent_main"?`To recover: \`git checkout ${x}\`, merge the mainline ref into it manually, resolve any conflicts and commit, then \`git checkout\` back to your original branch and re-run \`haiku_run_next\`.`:`To recover: \`git merge haiku/${r}/main\` on this branch (you're already on '${x}'), resolve any conflicts and commit, then re-run \`haiku_run_next\`.`;return ye(JSON.stringify({action:"error",intent:r,error:"pre_cursor_sync_failed",conflict_at:R.conflictAt,conflict_branch:k,underlying_error:R.message,message:`Pre-cursor downstream sync FAILED on branch '${x}' (${R.conflictAt}). The merge couldn't start \u2014 there are NO conflict markers to resolve. Likely cause: the target branch is checked out elsewhere with dirty tracked changes, the worktree is locked, or git refused for another non-conflict reason. ${L} Underlying error: ${R.message??"(none reported)"}.`},null,2))}let N=(R.conflictFiles??[]).join(", "),C=R.conflictAt==="mainline_to_intent_main"?`The conflict happened in a temp worktree that's already been cleaned up \u2014 there are NO conflict markers in your working tree. To resolve: \`git checkout ${x}\`, merge the mainline ref manually (\`git merge \`), resolve the listed files, \`git add\` + \`git commit\`, then \`git checkout\` back to your original branch and re-run \`haiku_run_next\`.`:"Resolve the conflict on the listed files in place, run `git add ` and `git commit`, then re-run `haiku_run_next`.";return ye(JSON.stringify({action:"error",intent:r,error:"pre_cursor_sync_conflict",conflict_at:R.conflictAt,conflict_branch:k,conflict_files:R.conflictFiles,message:`Pre-cursor downstream sync hit a conflict on branch '${x}' (${R.conflictAt}). ${C} Conflicted files: ${N}.`},null,2))}}}}if(e.external_review_url)try{let S=Te(),E=po(S,"intents",r,"intent.md");su(E)&&Me(E,"external_review_url",e.external_review_url)}catch{}try{let{drainPendingDispatches:S}=await Promise.resolve().then(()=>(hv(),a1));S(r)}catch(S){console.error(`[haiku_run_next] drainPendingDispatches failed: ${S instanceof Error?S.message:String(S)}`)}let c=iy(r);try{let S=iNt(),E=`haiku/${r}/`,_=S.startsWith(E)&&S!==`${E}main`?S.slice(E.length):null;if(_&&!(typeof c.stage=="string"&&c.stage===_)){let T=pe(r),R=po(T,"intent.md");if(su(R)){let A=ZU(R),x=A.studio||"",k=A.mode||"continuous";if(x&&I0(T,x,_,k)){let P=`haiku/${r}/${_}`,N=`haiku/${r}/main`;HD(P,N)||(c={action:"complete_stage",intent:r,stage:_})}}}}catch{}{let S=0;for(;c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage";){let E=xx(c);if(++S>bU)return rm("select_*",S,c,"cap");if(S5(n))return b5("select_*",S,n,c);let _=await apr(c.action,r,t);if(!_.ok)return{content:[{type:"text",text:_.message}],isError:!0};if(c=iy(r),(c.action==="select_studio"||c.action==="select_mode"||c.action==="select_stage")&&xx(c)===E)return rm("select_*",S,c,"no_progress")}}if((c.action==="dispatch_review"||c.action==="dispatch_approval")&&typeof c.stage=="string")try{let{stashPendingDispatch:S}=await Promise.resolve().then(()=>(hv(),a1)),E=c.action==="dispatch_review"?"review":"approval",_=Array.isArray(c.dispatches)?c.dispatches:typeof c.role=="string"&&Array.isArray(c.units)?[{role:c.role,units:c.units}]:[];for(let T of _)S(r,E,c.stage,T.role,T.units)}catch(S){console.error(`[haiku_run_next] stashPendingDispatch failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="start_unit_hat"&&typeof c.stage=="string"&&typeof c.hat=="string"&&Array.isArray(c.units))try{let{stampUnitHatLease:S}=await Promise.resolve().then(()=>(Ge(),TZ));for(let E of c.units)typeof E=="string"&&S({slug:r,stage:c.stage,unit:E,hat:c.hat})}catch(S){console.error(`[haiku_run_next] stampUnitHatLease failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="intent_review"){let E=(Array.isArray(c.dispatches)?c.dispatches.map(_=>typeof _?.role=="string"?_.role:"").filter(_=>_.length>0):typeof c.role=="string"?[c.role]:[]).filter(_=>_!=="user");if(E.length>0)try{let{stashPendingIntentReview:_}=await Promise.resolve().then(()=>(hv(),a1));for(let T of E)_(r,T)}catch(_){console.error(`[haiku_run_next] stashPendingIntentReview failed: ${_ instanceof Error?_.message:String(_)}`)}}let u=0,l=null;for(;c.action==="close_feedback"&&typeof c.stage=="string"&&typeof c.feedback_id=="string";){let S=xx(c);if(++u>bU)return rm("close_feedback",u,c,"cap");if(S5(n))return b5("close_feedback",u,n,c);if(S===l)return rm("close_feedback",u,c,"no_progress");l=S;try{let E=c.stage,_=c.feedback_id,T=bc(r,E,_);if(!T)break;let R=T.path,A=T.data,x=new Date().toISOString();Me(R,"closed_at",x);let k=A.targets??{},P=k.unit,N=Array.isArray(k.invalidates)?k.invalidates:[];if(P&&N.length>0){let{applyFeedbackInvalidations:C}=await Promise.resolve().then(()=>(hv(),a1));C({slug:r,stage:E,targetUnit:P,invalidates:N})}if(A.origin==="drift"&&P){let C=po(Te(),"intents",r,"stages",E,"units",`${P}.md`);if(su(C)){let L=po(Te(),"intents",r),{buildReviewRecord:G}=await Promise.resolve().then(()=>(Xf(),wyt)),W=Qx(C,"utf8"),q=re(W).data,Q=q.reviews&&typeof q.reviews=="object"?{...q.reviews}:{},B=Array.isArray(q.inputs)?q.inputs:[],F=!1;for(let[V,U]of Object.entries(Q)){if(!U||typeof U!="object"||Array.isArray(U))continue;let M=U;if(typeof M.at!="string")continue;let H=G(C,{intentDir:L,unitInputs:B});Q[V]={...M,body_sha256:H.body_sha256,input_witnesses:H.input_witnesses},F=!0}F&&Me(C,"reviews",Q)}}c=iy(r)}catch(E){console.error(`[haiku_run_next] close_feedback execution failed: ${E instanceof Error?E.message:String(E)}`);break}}if(c.action==="seal_intent")try{let S=po(Te(),"intents",r,"intent.md");su(S)&&(Me(S,"sealed_at",new Date().toISOString()),wt(`haiku: seal intent ${r}`),c=iy(r))}catch(S){console.error(`[haiku_run_next] merge_intent execution failed: ${S instanceof Error?S.message:String(S)}`)}if(c.action==="pending_seal"&&e.pickup===!0)try{let S=po(Te(),"intents",r,"intent.md");if(su(S)){let{data:E}=re(Qx(S,"utf8")),_=E.approvals&&typeof E.approvals=="object"?{...E.approvals}:{},T=!1;for(let R of Object.keys(_))eL.has(R)&&_[R]!=null&&(_[R]=null,T=!0);T&&(Me(S,"approvals",_),wt(`haiku: re-open delivery review on pickup for ${r}`),c=iy(r))}}catch(S){console.error(`[haiku_run_next] pending-seal pickup re-open failed: ${S instanceof Error?S.message:String(S)}`)}let d=0,f=null;for(;c.action==="complete_stage"&&typeof c.stage=="string";){let S=xx(c);if(++d>bU)return rm("complete_stage",d,c,"cap");if(S5(n))return b5("complete_stage",d,n,c);if(S===f)return rm("complete_stage",d,c,"no_progress");f=S;let E=c.stage;if(Sye(pe(r),E)){c={action:"record_observations",intent:r,stage:E};break}try{let{isGitRepo:_}=await Promise.resolve().then(()=>(Ge(),TZ));if(!_()){c=iy(r);continue}try{let x=`haiku/${r}/${E}`;if(iNt()===x){let k=`.haiku/intents/${r}/stages/${E}/observations.md`;oE("git",["status","--porcelain","--",k],{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()&&(oE("git",["add","--",k],{stdio:"ignore"}),oE("git",["commit","-m",`haiku: observations for stage ${E}`],{stdio:"ignore"}))}}catch{}let{mergeStageBranchIntoMain:T}=await Promise.resolve().then(()=>(yr(),ZD)),{withIntentMainLock:R}=await Promise.resolve().then(()=>(B0(),CSt)),A=R(r,()=>T(r,E));if(!A.success)return A.isConflict?{content:[{type:"text",text:`Stage '${E}' completion blocked by conflict: ${A.message}`}],isError:!0}:{content:[{type:"text",text:`Stage '${E}' completion blocked: its branch could not be merged into intent-main: ${A.message} -The stage branch \`haiku/${r}/${E}\` is intact (not deleted) \u2014 no work is lost. Resolve the merge on \`haiku/${r}/main\` (commit/stash any blocking untracked files, then \`git merge haiku/${r}/${E}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:x}=await Promise.resolve().then(()=>(yxt(),gxt)),k=pe(r),P=po(k,"intent.md");if(su(P)){let N=KU(P),C=N.studio||"";if(C){let L=x({intentDir:k,intentFm:N,studio:C,completedStage:E});L.units_cleared>0&&Ke("haiku.revisit.downstream_invalidated",{intent:r,completed_stage:E,stages_cleared:L.stages_cleared.join(","),units_cleared:String(L.units_cleared)})}}}catch(x){console.error(`[haiku_run_next] downstream invalidation failed (non-fatal): ${x instanceof Error?x.message:String(x)}`)}c=iy(r)}catch(_){console.error(`[haiku_run_next] complete_stage execution failed: ${_ instanceof Error?_.message:String(_)}`);break}}if(typeof c.stage=="string"&&c.stage.length>0)try{let S=po(Te(),"intents",r,"intent.md");if(su(S)){let E=gr(r,c.stage);if(!E.ok)return Zb(r,c.stage,E,"run_next post-cursor revisit alignment")}}catch{}Ke("haiku.orchestrator.action",{intent:r,action:c.action}),i&&qi(i,{event:"run_next",intent:r,action:c.action,stage:c.stage,unit:c.unit,hat:c.hat,wave:c.wave}),i&&c.action==="outputs_missing"&&qi(i,{event:"outputs_missing",intent:r,stage:c.stage,missing:c.missing}),i&&c.action==="discovery_missing"&&qi(i,{event:"discovery_missing",intent:r,stage:c.stage,missing:c.missing});let p={};try{let S=pe(r),E=Xx(po(S,"intent.md"),"utf8");p=re(E).data}catch{}let h=p.studio||"",m=S=>{Rx(S);let E=p.drift_cascade_alarm;E&&typeof E=="object"&&!Array.isArray(E)&&Object.keys(E).length>0&&(S.drift_cascade_alarm={stages:Object.keys(E),recommendation:"Drift cascade detected \u2014 the engine is suppressing new drift FBs while the queue drains. If this recurs after the queue clears, run `/haiku:haiku-repair` to refresh the witness baseline; this typically happens after a plugin version migration."});let _=eU(r,h,S,pe(r)),T=B6(_),{tell_user:R,next_step:A,...x}=S;return`${JSON.stringify(x,null,2)} +The stage branch \`haiku/${r}/${E}\` is intact (not deleted) \u2014 no work is lost. Resolve the merge on \`haiku/${r}/main\` (commit/stash any blocking untracked files, then \`git merge haiku/${r}/${E}\`), then re-run.`}],isError:!0};try{let{invalidateDownstreamApprovals:x}=await Promise.resolve().then(()=>(yxt(),gxt)),k=pe(r),P=po(k,"intent.md");if(su(P)){let N=ZU(P),C=N.studio||"";if(C){let L=x({intentDir:k,intentFm:N,studio:C,completedStage:E});L.units_cleared>0&&Ke("haiku.revisit.downstream_invalidated",{intent:r,completed_stage:E,stages_cleared:L.stages_cleared.join(","),units_cleared:String(L.units_cleared)})}}}catch(x){console.error(`[haiku_run_next] downstream invalidation failed (non-fatal): ${x instanceof Error?x.message:String(x)}`)}c=iy(r)}catch(_){console.error(`[haiku_run_next] complete_stage execution failed: ${_ instanceof Error?_.message:String(_)}`);break}}if(typeof c.stage=="string"&&c.stage.length>0)try{let S=po(Te(),"intents",r,"intent.md");if(su(S)){let E=gr(r,c.stage);if(!E.ok)return Zb(r,c.stage,E,"run_next post-cursor revisit alignment")}}catch{}Ke("haiku.orchestrator.action",{intent:r,action:c.action}),i&&qi(i,{event:"run_next",intent:r,action:c.action,stage:c.stage,unit:c.unit,hat:c.hat,wave:c.wave}),i&&c.action==="outputs_missing"&&qi(i,{event:"outputs_missing",intent:r,stage:c.stage,missing:c.missing}),i&&c.action==="discovery_missing"&&qi(i,{event:"discovery_missing",intent:r,stage:c.stage,missing:c.missing});let p={};try{let S=pe(r),E=Qx(po(S,"intent.md"),"utf8");p=re(E).data}catch{}let h=p.studio||"",m=S=>{Ax(S);let E=p.drift_cascade_alarm;E&&typeof E=="object"&&!Array.isArray(E)&&Object.keys(E).length>0&&(S.drift_cascade_alarm={stages:Object.keys(E),recommendation:"Drift cascade detected \u2014 the engine is suppressing new drift FBs while the queue drains. If this recurs after the queue clears, run `/haiku:haiku-repair` to refresh the witness baseline; this typically happens after a plugin version migration."});let _=nU(r,h,S,pe(r)),T=z6(_),{tell_user:R,next_step:A,...x}=S;return`${JSON.stringify(x,null,2)} --- -${T}`};if(c.action==="external_review_requested"&&!e.external_review_url&&!p.external_review_url&&typeof c.stage=="string"&&c.stage.length>0)try{let{openStagePullRequest:S}=await Promise.resolve().then(()=>(yr(),YD)),E=S({slug:r,stage:c.stage});if(E.createdUrl){try{let _=po(Te(),"intents",r,"intent.md");Me(_,"external_review_url",E.createdUrl)}catch{}c.message=`${c.message||""} +${T}`};if(c.action==="external_review_requested"&&!e.external_review_url&&!p.external_review_url&&typeof c.stage=="string"&&c.stage.length>0)try{let{openStagePullRequest:S}=await Promise.resolve().then(()=>(yr(),ZD)),E=S({slug:r,stage:c.stage});if(E.createdUrl){try{let _=po(Te(),"intents",r,"intent.md");Me(_,"external_review_url",E.createdUrl)}catch{}c.message=`${c.message||""} The engine opened the MR for you: ${E.createdUrl} \u2014 base is \`haiku/${r}/main\` so the workflow engine can detect the merge. Tell the user; they review and merge when ready, then run /haiku:haiku-pickup.`}else E.compareUrl?c.message=`${c.message||""} @@ -1545,7 +1545,7 @@ Engine couldn't open the MR via gh/glab (${E.prError??E.pushError??"no CLI found ${E.message} Open ONE merge request from branch \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default branch \u2014 the engine detects merges via intent main, not the repo default). Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}catch(S){c.message=`${c.message||""} -IMPORTANT: Open the change request from \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default). Try \`gh pr create --base haiku/${r}/main\` for GitHub or \`glab mr create --target-branch haiku/${r}/main\` for GitLab. (Engine helper threw: ${S instanceof Error?S.message:String(S)}.) Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}let g=0,y=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=Ix(c);if(++g>yU)return rm("gate_review",g,c,"cap");if(S===y)return rm("gate_review",g,c,"no_progress");y=S;let E=c.stage??"",_=c.action==="user_gate",T=_?c.gate_kind:"",R=_?null:c.next_stage??null;if(_&&T==="approval"&&E)try{let{resolveIntentStages:C}=await Promise.resolve().then(()=>(ns(),rpt)),L=po(Te(),"intents",r,"intent.md"),G=su(L)?re(Xx(L,"utf8")).data:{},W=G.studio||"";if(W){let $=C(G,W),q=$.indexOf(E);q>=0&&q<$.length-1&&(R=$[q+1])}}catch{}let A=_?null:c.next_phase??null;_&&T==="spec"&&(A="execute");let x=_?T==="spec"?"elaborate_to_execute":"stage_gate":c.gate_context||"stage_gate",k=_?"ask":c.gate_type,P=`.haiku/intents/${r}`;i&&qi(i,{event:"gate_review_prepared",intent:r,stage:E,gate_type:k});let N=lve();if(!N){if(_)break;return ye("Gate-review prepare handler not registered \u2014 server.ts wiring is broken. File a bug.")}try{let C=await N(P,k,{gateContext:x,stage:E,nextStage:R,nextPhase:A});Xr(r,e.state_file);let L=$t(C.session_id);if(!(L?.session_type==="review"&&!!L.announced_at))try{Ml(C.session_id,{announced_at:new Date().toISOString()})}catch{}let W=()=>dv(C.session_id)||JL(r);!C.browser_attached&&!W()&&dp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(mU(),uve)),q=$.get("haiku_await_gate");if(!q)return ye("haiku_await_gate handler not registered \u2014 server.ts wiring is broken. File a bug.");let Q=await q.handle({intent:r,session_id:C.session_id,review_url:C.review_url,auto_open:!1,gate_context:x,next_stage:R,next_phase:A,...i?{state_file:i}:{}},t);if(Q.isError)return Q;let B=opr(Q);if(B&&new Set(["advance_phase","advance_stage","intent_approved","advance"]).has(B)){c=iy(r);continue}return Q}catch(C){let L=C instanceof Error?C.message:String(C),G=C instanceof Error?C.stack:"",W=L.includes("lost presence"),$=L==="aborted"||t?.aborted,q=$?"abort":W?"await":"prepare";console.error(`[haiku] gate_review ${q} failed: ${L}`),$||ms(C,{intent:r,stage:E});try{let Q=po(process.cwd(),".haiku","logs");ipr(Q,{recursive:!0}),spr(po(Q,"gate-review-error.log"),`${new Date().toISOString()} +IMPORTANT: Open the change request from \`haiku/${r}/${c.stage}\` to \`haiku/${r}/main\` (NOT the repo default). Try \`gh pr create --base haiku/${r}/main\` for GitHub or \`glab mr create --target-branch haiku/${r}/main\` for GitLab. (Engine helper threw: ${S instanceof Error?S.message:String(S)}.) Record the URL via haiku_run_next { intent: "${r}", external_review_url: "" }.`}let g=0,y=null;for(;c.action==="gate_review"||c.action==="user_gate";){let S=xx(c);if(++g>bU)return rm("gate_review",g,c,"cap");if(S===y)return rm("gate_review",g,c,"no_progress");y=S;let E=c.stage??"",_=c.action==="user_gate",T=_?c.gate_kind:"",R=_?null:c.next_stage??null;if(_&&T==="approval"&&E)try{let{resolveIntentStages:C}=await Promise.resolve().then(()=>(ns(),ipt)),L=po(Te(),"intents",r,"intent.md"),G=su(L)?re(Qx(L,"utf8")).data:{},W=G.studio||"";if(W){let $=C(G,W),q=$.indexOf(E);q>=0&&q<$.length-1&&(R=$[q+1])}}catch{}let A=_?null:c.next_phase??null;_&&T==="spec"&&(A="execute");let x=_?T==="spec"?"elaborate_to_execute":"stage_gate":c.gate_context||"stage_gate",k=_?"ask":c.gate_type,P=`.haiku/intents/${r}`;i&&qi(i,{event:"gate_review_prepared",intent:r,stage:E,gate_type:k});let N=dve();if(!N){if(_)break;return ye("Gate-review prepare handler not registered \u2014 server.ts wiring is broken. File a bug.")}try{let C=await N(P,k,{gateContext:x,stage:E,nextStage:R,nextPhase:A});Xr(r,e.state_file);let L=$t(C.session_id);if(!(L?.session_type==="review"&&!!L.announced_at))try{Ml(C.session_id,{announced_at:new Date().toISOString()})}catch{}let W=()=>dv(C.session_id)||QL(r);!C.browser_attached&&!W()&&dp(C.review_url,"Gate review",C.session_id);let{orchestratorToolHandlers:$}=await Promise.resolve().then(()=>(yU(),lve)),q=$.get("haiku_await_gate");if(!q)return ye("haiku_await_gate handler not registered \u2014 server.ts wiring is broken. File a bug.");let Q=await q.handle({intent:r,session_id:C.session_id,review_url:C.review_url,auto_open:!1,gate_context:x,next_stage:R,next_phase:A,...i?{state_file:i}:{}},t);if(Q.isError)return Q;let B=opr(Q);if(B&&new Set(["advance_phase","advance_stage","intent_approved","advance"]).has(B)){c=iy(r);continue}return Q}catch(C){let L=C instanceof Error?C.message:String(C),G=C instanceof Error?C.stack:"",W=L.includes("lost presence"),$=L==="aborted"||t?.aborted,q=$?"abort":W?"await":"prepare";console.error(`[haiku] gate_review ${q} failed: ${L}`),$||ms(C,{intent:r,stage:E});try{let Q=po(process.cwd(),".haiku","logs");ipr(Q,{recursive:!0}),spr(po(Q,"gate-review-error.log"),`${new Date().toISOString()} intent: ${r} stage: ${E} phase: ${q} @@ -1556,19 +1556,19 @@ ${G} --- -`+m(P)}]}}}catch{}try{let S=pe(r),E=po(S,"intent.md");if(su(E)){let _=Xx(E,"utf8"),{data:T}=re(_),R=T.studio||"";if(R){let A=ai(r,R);if(A){let x=`haiku/${r}/${A}`,k=BD(r,A);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}else{let x=`haiku/${r}/main`;if(Pt(x)&&i3(x)){let k=yg(x);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}}}}}catch(S){console.error(`[haiku] auto-push end-of-tick check threw: ${S instanceof Error?S.message:String(S)}`)}Xr(r,e.state_file);let b=m(c);return ye(a?`${a} +`+m(P)}]}}}catch{}try{let S=pe(r),E=po(S,"intent.md");if(su(E)){let _=Qx(E,"utf8"),{data:T}=re(_),R=T.studio||"";if(R){let A=ai(r,R);if(A){let x=`haiku/${r}/${A}`,k=zD(r,A);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}else{let x=`haiku/${r}/main`;if(Pt(x)&&o3(x)){let k=yg(x);!k.ok&&k.error&&console.error(`[haiku] auto-push of ${x} failed: ${k.error}`)}}}}}catch(S){console.error(`[haiku] auto-push end-of-tick check threw: ${S instanceof Error?S.message:String(S)}`)}Xr(r,e.state_file);let b=m(c);return ye(a?`${a} -${b}`:b)}}});import{existsSync as uNt,readFileSync as cpr}from"node:fs";import{join as cNt}from"node:path";function upr(e){if(!uNt(e))return{};let t=cpr(e,"utf8"),{data:n}=re(t);return n}var lpr,lNt,dNt=v(()=>{"use strict";yr();Kd();Xb();ji();uo();iye();Ge();vo();zi();Hv();vs();lpr={continuous:"You're in chat for every stage gate. Best for first-time use or work you want to steer.",discrete:"Each stage opens a real GitHub PR / GitLab MR. Merging the PR is your approval signal.",autopilot:"Agent runs the whole pipeline. Only the pre-intent review and the final delivery PR require human attention.","discrete-hybrid":"Continuous within most stages, but specific stages declared with external review still pop a per-stage PR.",quick:"Single stage only. Operates like continuous but the workflow runs exactly one studio stage and stops. Not changeable mid-flight."},lNt={name:"haiku_select_mode",description:"Select an execution mode for an intent. Pass the intent slug and optionally a list of mode names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:g0,async handle(e,t){let n=Be(e,Oge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=Te(),o=cNt(s,"intents",i),a=cNt(o,"intent.md");if(!uNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=upr(a),u=c.studio||"";if(!u)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase(),{findCurrentStage:d}=await Promise.resolve().then(()=>(Oa(),x0)),p=!!(d(i,u)??""),m=RY.filter(E=>E!=="discrete-hybrid").filter(E=>E==="quick"?!p:!(l==="quick"&&p));if(m.length===0)return ye(JSON.stringify({error:"no_modes_available",message:`Intent '${i}' is in mode '${l}' and has started \u2014 no other mode is reachable from here without resetting.`}));let y=(r.options??[]).map(E=>E.toLowerCase());if(y.length>0){let E=y.filter(_=>!m.includes(_));if(E.length>0)return ye(JSON.stringify({error:"invalid_mode_options",message:`Mode option(s) [${E.join(", ")}] are not available for intent '${i}'. Available: ${m.join(", ")}.`}))}let b="";if(y.length===1)b=y[0];else{let _=(y.length===0?[...m]:y).map(R=>({id:R,label:R,description:lpr[R]??R})),T=await Ju({intentSlug:i,kind:"mode",title:p?`Change mode for "${i}"`:`Pick a mode for "${i}"`,prompt:p?"You can adjust the mode mid-flight; in-flight stages keep their current shape until the next gate.":"Modes change how often the engine pauses for you. You can adjust this later, but the studio stays locked.",options:_,signal:t});if(T.timedOut||!T.selection)return ye(JSON.stringify({action:"cancelled",message:Gn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));b=T.selection.id}if(b=b.toLowerCase(),!m.includes(b))return{content:[{type:"text",text:`Selected mode '${b}' is not available for intent '${i}'. Available: ${m.join(", ")}.`}],isError:!0};let S=gr(i,void 0);if(!S.ok)return{content:[{type:"text",text:`Error: branch enforcement failed after mode selection for intent '${i}' \u2014 ${S.message}. Resolve manually and retry.`}],isError:!0};if(Me(a,"mode",b),b==="quick")Yh(a,["stages"]);else{let E=Fs(u);Me(a,"stages",E)}return wt(`haiku: select mode ${b} for intent ${i}`),Ke("haiku.mode.selected",{intent:i,mode:b,previous_mode:l||"(none)",intent_started:String(p)}),ye(JSON.stringify({action:"mode_selected",intent:i,mode:b,previous_mode:l||null,message:b==="quick"?Gn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):Gn(`The user picked **${b}** mode for "${i}"${l&&l!==b?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as pNt,readFileSync as dpr}from"node:fs";import{join as fNt}from"node:path";function fpr(e){if(!pNt(e))return{};let t=dpr(e,"utf8"),{data:n}=re(t);return n}var hNt,mNt=v(()=>{"use strict";yr();Kd();Xb();ji();uo();Ge();vo();zi();Hv();vs();hNt={name:"haiku_select_stage",description:"Select the single stage for a quick-mode intent. Pass the intent slug and optionally a list with one stage name to auto-select. Otherwise opens a SPA picker and blocks on the user's choice. Refuses if the intent's mode is not 'quick' or if a stage is already set.",inputSchema:y0,async handle(e,t){let n=Be(e,Pge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=Te(),o=fNt(s,"intents",i),a=fNt(o,"intent.md");if(!pNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=fpr(a),u=c.studio||"";if(!u)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase();if(l!=="quick")return ye(JSON.stringify({error:"mode_not_quick",message:`haiku_select_stage only applies to quick-mode intents (intent '${i}' is in '${l||"(none)"}' mode). Non-quick modes get the studio's full stage list set automatically by haiku_select_mode.`}));let d=c.stages||[];if(Array.isArray(d)&&d.length>0)return ye(JSON.stringify({error:"stage_already_set",message:`Intent '${i}' already has stages set (${JSON.stringify(d)}). Reset the intent if you need to pick a different stage.`}));let f=Fs(u);if(f.length===0)return{content:[{type:"text",text:`Studio '${u}' has no stages.`}],isError:!0};let h=(r.options??[]).map(y=>f.find(b=>b.toLowerCase()===y.toLowerCase())).filter(y=>!!y);if(h.length>1)return ye(JSON.stringify({error:"single_stage_required",message:`haiku_select_stage requires zero or one option (quick mode is single-stage). Got ${h.length}: [${h.join(", ")}].`}));let m="";if(h.length===1)m=h[0];else{let y=await Ju({intentSlug:i,kind:"stage",title:`Pick the single stage for "${i}"`,prompt:`Quick mode runs exactly one stage from the ${u} studio.`,options:f.map(b=>({id:b,label:b})),signal:t});if(y.timedOut||!y.selection)return ye(JSON.stringify({action:"cancelled",message:Gn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=y.selection.id}if(!f.includes(m))return{content:[{type:"text",text:`Stage '${m}' is not in studio '${u}'. Available: ${f.join(", ")}.`}],isError:!0};let g=gr(i,void 0);return g.ok?(Me(a,"stages",[m]),wt(`haiku: select stage ${m} for quick intent ${i}`),Ke("haiku.stage.selected",{intent:i,stage:m,studio:u}),ye(JSON.stringify({action:"stage_selected",intent:i,stage:m,stages:[m],message:Gn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${g.message}. Resolve manually and retry.`}],isError:!0}}}});function gNt(e,t){let n=new Map(e.map(a=>[a.name,a])),r=new Set(t),i=[];for(let a of t){let c=n.get(a);c&&!i.includes(c)&&i.push(c)}let s=[...i,...e.filter(a=>!r.has(a.name))],o=i.length>0;return s.map(a=>({id:a.dir,label:a.name,description:a.description??"",...o&&!r.has(a.name)?{secondary:!0}:{}}))}var yNt=v(()=>{"use strict"});import{existsSync as dve,readdirSync as ppr,readFileSync as hpr}from"node:fs";import{join as o8}from"node:path";var SNt,bNt=v(()=>{"use strict";yr();Kd();Xb();ji();uo();Ge();Kn();vo();zi();Hv();vs();yNt();SNt={name:"haiku_select_studio",description:"Select a studio for an intent. Pass the intent slug and optionally a list of studio names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Refuses if the intent has already entered a stage. The studio is locked once written \u2014 it cannot be changed later.",inputSchema:m0,async handle(e,t){let n=Be(e,xge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=Te(),o=o8(s,"intents",i),a=o8(o,"intent.md");if(!dve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=o8(o,"stages");if(dve(c))for(let h of ppr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=o8(c,h.name,"state.json");if(dve(m)){let g=Hb(m);if(g.status&&g.status!=="pending")return{content:[{type:"text",text:"Cannot change studio after intent has entered a stage. Studio is locked at start."}],isError:!0}}}let u=TI().filter(h=>h.data.deprecated!==!0);if(u.length===0)return{content:[{type:"text",text:"No studios available."}],isError:!0};let l=r.options??[],d="";if(l.length===1){let h=si(l[0]);if(!h)return{content:[{type:"text",text:`Studio '${l[0]}' not found. Available: ${u.map(m=>m.name).join(", ")}`}],isError:!0};d=h.dir}else{let m=l.map(b=>si(b)).filter(b=>b!==null).map(b=>b.name);if(m.length===0){let b=[];try{let{data:S}=re(hpr(a,"utf8"));b=S.studio_candidates}catch{}Array.isArray(b)&&(m=b.filter(S=>typeof S=="string").map(S=>si(S)).filter(S=>S!==null).map(S=>S.name))}let g=gNt(u,m),y=await Ju({intentSlug:i,kind:"studio",title:`Pick a studio for "${i}"`,prompt:"Studios are locked once chosen \u2014 pick the lifecycle that matches the work. You can adjust the mode mid-flight, but not the studio.",options:g,signal:t});if(y.timedOut||!y.selection)return ye(JSON.stringify({action:"cancelled",message:Gn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=y.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=gr(i,void 0);if(!f.ok)return{content:[{type:"text",text:`Error: branch enforcement failed after studio selection for intent '${i}' \u2014 ${f.message}. Resolve manually and retry.`}],isError:!0};let p=Fs(d);return Me(a,"studio",d),wt(`haiku: select studio ${d} for intent ${i}`),Ke("haiku.studio.selected",{intent:i,studio:d}),ye(JSON.stringify({action:"studio_selected",intent:i,studio:d,all_studio_stages:p,message:Gn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as ENt,readFileSync as mpr,writeFileSync as gpr}from"node:fs";import{join as _Nt}from"node:path";var fve,TNt,vNt=v(()=>{"use strict";fve=Re(Kt(),1);yr();vx();ji();uo();Ge();zi();vs();TNt={name:"haiku_stage_decompose_seal",description:"Stamp `decompose_verified_at` on the per-stage elaboration artifact's frontmatter. The decompose-verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `decompose_review`. Idempotent (no-op when already verified).",inputSchema:_0,handle(e){let t=Be(e,Dge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Tx({kind:"stage_decompose",slug:n,stage:r},i);if(!o.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_stage_decompose_seal",reason:o.reason,message:o.reason==="missing"?`No pending decompose-verifier nonce for '${n}/${r}'. The cursor only mints a nonce when emitting the decompose_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Decompose-verifier nonce for '${n}/${r}' does not match the cursor's pending value. If the elaboration was re-recorded since the verifier was dispatched, the nonce was rotated \u2014 re-tick to get the new value.`},null,2)}],isError:!0};let a=Te(),c=_Nt(a,"intents",n);if(!ENt(c))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_decompose_seal",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let u=_Nt(c,"stages",r,"elaboration.md");if(!ENt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_decompose_seal",message:`No elaboration artifact at ${u}. The conversation-elaborate gate must pass before decompose-verify can stamp it.`},null,2)}],isError:!0};let l=gr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for decompose seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=mpr(u,"utf8"),f=(0,fve.default)(d),p=f.data;if(typeof p.decompose_verified_at=="string"&&p.decompose_verified_at)return ye(JSON.stringify({action:"noop",slug:n,stage:r,path:u,decompose_verified_at:p.decompose_verified_at,message:`Decompose for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,decompose_verified_at:h};return s.trim()&&(m.decompose_verified_notes=s.trim()),gpr(u,fve.default.stringify(f.content,m)),wt(`haiku: seal decompose for ${n}/${r}`),ye(JSON.stringify({action:"decompose_sealed",slug:n,stage:r,path:u,decompose_verified_at:h,...s.trim()?{decompose_verified_notes:s.trim()}:{},message:`Sealed decompose for '${n}/${r}'. The cursor will advance past decompose_review on the next tick.`},null,2))}}});import{existsSync as ypr,mkdirSync as Spr,writeFileSync as bpr}from"node:fs";import{join as pve}from"node:path";var RNt,ANt,wNt=v(()=>{"use strict";RNt=Re(Kt(),1);yr();vx();ji();uo();Ge();zi();vs();ANt={name:"haiku_stage_elaboration_record",description:"Capture the per-stage human-conversation outcome at `stages//elaboration.md`. Call this when the conversation with the user has reached alignment for the active stage's `elaborate` action. The artifact's frontmatter records `recorded_at`; `verified_at` is stamped separately by the verifier subagent. Overwrites any prior artifact (clearing a stale `verified_at`). Cursor stays at `elaborate_review` until the verifier seals the artifact.",inputSchema:b0,handle(e){let t=Be(e,Cge,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=Te(),o=pve(s,"intents",n);if(!ypr(o))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_record",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let a=pve(o,"stages",r),c=gr(n,r);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration record on '${n}/${r}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};Spr(a,{recursive:!0});let u=pve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return bpr(u,RNt.default.stringify(i,d)),QEe({kind:"stage_elaborate",slug:n,stage:r}),QEe({kind:"stage_decompose",slug:n,stage:r}),wt(`haiku: record elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as kNt,readFileSync as Epr,writeFileSync as _pr}from"node:fs";import{join as INt}from"node:path";var hve,xNt,ONt=v(()=>{"use strict";hve=Re(Kt(),1);yr();vx();ji();uo();Ge();zi();vs();xNt={name:"haiku_stage_elaboration_seal",description:"Stamp `verified_at` on the per-stage elaboration artifact's frontmatter. The verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `elaborate_review`. Idempotent (no-op when already verified).",inputSchema:E0,handle(e){let t=Be(e,Mge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=Tx({kind:"stage_elaborate",slug:n,stage:r},i);if(!o.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_stage_elaboration_seal",reason:o.reason,message:o.reason==="missing"?`No pending verifier nonce for '${n}/${r}'. The cursor only mints a nonce when emitting the elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Verifier nonce for '${n}/${r}' does not match the cursor's pending value. If the elaboration was re-recorded since the verifier was dispatched, the nonce was rotated \u2014 re-tick to get the new value.`},null,2)}],isError:!0};let a=Te(),c=INt(a,"intents",n);if(!kNt(c))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_seal",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let u=INt(c,"stages",r,"elaboration.md");if(!kNt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_elaboration_seal",message:`No elaboration artifact at ${u}. The agent must call \`haiku_stage_elaboration_record\` before the verifier can seal it.`},null,2)}],isError:!0};let l=gr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=Epr(u,"utf8"),f=(0,hve.default)(d),p=f.data;if(typeof p.verified_at=="string"&&p.verified_at)return ye(JSON.stringify({action:"noop",slug:n,stage:r,path:u,verified_at:p.verified_at,message:`Elaboration for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,verified_at:h};return s.trim()&&(m.verified_notes=s.trim()),_pr(u,hve.default.stringify(f.content,m)),wt(`haiku: seal elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_sealed",slug:n,stage:r,path:u,verified_at:h,...s.trim()?{verified_notes:s.trim()}:{},message:`Sealed elaboration for '${n}/${r}'. The cursor will advance past elaborate on the next tick.`},null,2))}}});import{execFileSync as mve}from"node:child_process";import{existsSync as YU,readdirSync as PNt,readFileSync as Tpr,rmSync as NNt,statSync as CNt}from"node:fs";import{join as aE}from"node:path";var MNt,DNt=v(()=>{"use strict";yr();Xb();ji();uo();Ge();zi();vs();MNt={name:"haiku_stage_reset",description:"Reset ONE stage of an intent: wipe its units, outputs, artifacts, elaboration, feedback, and stage branch. The intent's other stages are untouched. Use after fixing the stage's hat instructions or studio config when the user wants the agent to re-run that stage cleanly. Requires user confirmation via the SPA picker.",inputSchema:p0,async handle(e,t){let n=Be(e,Rge,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=Te(),o=aE(s,"intents",r),a=aE(o,"intent.md");if(!YU(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=aE(o,"stages",i);if(!YU(c))return{content:[{type:"text",text:`Stage '${i}' not found on intent '${r}' (no \`stages/${i}/\` directory).`}],isError:!0};let u=[];for(let m of["units","outputs","artifacts","feedback","elaboration.md","decisions.jsonl"]){let g=aE(c,m);YU(g)&&u.push(m)}let l=aE(c,"discovery"),d=(()=>{if(!YU(l))return!1;try{return PNt(l).some(m=>{let g=aE(l,m);try{return CNt(g).isFile()&&m.endsWith(".md")}catch{return!1}})}catch{return!1}})();d&&u.push("discovery (outputs only, templates preserved)");let f=`haiku/${r}/${i}`,p=ve()&&Pt(f);if(p&&u.push(`git branch \`${f}\``),u.length===0)return ye(JSON.stringify({action:"noop",message:`Stage '${i}' has no resettable state \u2014 already clean.`}));let h=await Ju({intentSlug:r,kind:"confirm",title:`Reset stage "${i}" on intent "${r}"?`,prompt:`This will DELETE the following from stage '${i}': +${b}`:b)}}});import{existsSync as uNt,readFileSync as cpr}from"node:fs";import{join as cNt}from"node:path";function upr(e){if(!uNt(e))return{};let t=cpr(e,"utf8"),{data:n}=re(t);return n}var lpr,lNt,dNt=v(()=>{"use strict";yr();Kd();Xb();ji();uo();sye();Ge();vo();zi();Hv();vs();lpr={continuous:"You're in chat for every stage gate. Best for first-time use or work you want to steer.",discrete:"Each stage opens a real GitHub PR / GitLab MR. Merging the PR is your approval signal.",autopilot:"Agent runs the whole pipeline. Only the pre-intent review and the final delivery PR require human attention.","discrete-hybrid":"Continuous within most stages, but specific stages declared with external review still pop a per-stage PR.",quick:"Single stage only. Operates like continuous but the workflow runs exactly one studio stage and stops. Not changeable mid-flight."},lNt={name:"haiku_select_mode",description:"Select an execution mode for an intent. Pass the intent slug and optionally a list of mode names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Side effects: writes `mode` to intent.md; for non-quick modes also writes `stages` (the studio's full stage list). For quick mode, leaves `stages` empty so the workflow routes to select_stage next. Refuses transitions into or out of `quick` once the intent has started a stage.",inputSchema:g0,async handle(e,t){let n=Be(e,Pge,"haiku_select_mode");if(n)return n;let r=e,i=r.intent,s=Te(),o=cNt(s,"intents",i),a=cNt(o,"intent.md");if(!uNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=upr(a),u=c.studio||"";if(!u)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase(),{findCurrentStage:d}=await Promise.resolve().then(()=>(Oa(),O0)),p=!!(d(i,u)??""),m=wY.filter(E=>E!=="discrete-hybrid").filter(E=>E==="quick"?!p:!(l==="quick"&&p));if(m.length===0)return ye(JSON.stringify({error:"no_modes_available",message:`Intent '${i}' is in mode '${l}' and has started \u2014 no other mode is reachable from here without resetting.`}));let y=(r.options??[]).map(E=>E.toLowerCase());if(y.length>0){let E=y.filter(_=>!m.includes(_));if(E.length>0)return ye(JSON.stringify({error:"invalid_mode_options",message:`Mode option(s) [${E.join(", ")}] are not available for intent '${i}'. Available: ${m.join(", ")}.`}))}let b="";if(y.length===1)b=y[0];else{let _=(y.length===0?[...m]:y).map(R=>({id:R,label:R,description:lpr[R]??R})),T=await Ju({intentSlug:i,kind:"mode",title:p?`Change mode for "${i}"`:`Pick a mode for "${i}"`,prompt:p?"You can adjust the mode mid-flight; in-flight stages keep their current shape until the next gate.":"Modes change how often the engine pauses for you. You can adjust this later, but the studio stays locked.",options:_,signal:t});if(T.timedOut||!T.selection)return ye(JSON.stringify({action:"cancelled",message:Gn("Mode picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));b=T.selection.id}if(b=b.toLowerCase(),!m.includes(b))return{content:[{type:"text",text:`Selected mode '${b}' is not available for intent '${i}'. Available: ${m.join(", ")}.`}],isError:!0};let S=gr(i,void 0);if(!S.ok)return{content:[{type:"text",text:`Error: branch enforcement failed after mode selection for intent '${i}' \u2014 ${S.message}. Resolve manually and retry.`}],isError:!0};if(Me(a,"mode",b),b==="quick")Yh(a,["stages"]);else{let E=Fs(u);Me(a,"stages",E)}return wt(`haiku: select mode ${b} for intent ${i}`),Ke("haiku.mode.selected",{intent:i,mode:b,previous_mode:l||"(none)",intent_started:String(p)}),ye(JSON.stringify({action:"mode_selected",intent:i,mode:b,previous_mode:l||null,message:b==="quick"?Gn(`The user picked **quick** mode for "${i}".`,`Call haiku_run_next { intent: "${i}" } \u2014 the engine will open the stage picker next.`):Gn(`The user picked **${b}** mode for "${i}"${l&&l!==b?` (was ${l})`:""}.`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))}}});import{existsSync as pNt,readFileSync as dpr}from"node:fs";import{join as fNt}from"node:path";function fpr(e){if(!pNt(e))return{};let t=dpr(e,"utf8"),{data:n}=re(t);return n}var hNt,mNt=v(()=>{"use strict";yr();Kd();Xb();ji();uo();Ge();vo();zi();Hv();vs();hNt={name:"haiku_select_stage",description:"Select the single stage for a quick-mode intent. Pass the intent slug and optionally a list with one stage name to auto-select. Otherwise opens a SPA picker and blocks on the user's choice. Refuses if the intent's mode is not 'quick' or if a stage is already set.",inputSchema:y0,async handle(e,t){let n=Be(e,Nge,"haiku_select_stage");if(n)return n;let r=e,i=r.intent,s=Te(),o=fNt(s,"intents",i),a=fNt(o,"intent.md");if(!pNt(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=fpr(a),u=c.studio||"";if(!u)return ye(JSON.stringify({error:"studio_not_selected",message:`Intent '${i}' has no studio selected. Call haiku_select_studio first.`}));let l=(c.mode||"").toLowerCase();if(l!=="quick")return ye(JSON.stringify({error:"mode_not_quick",message:`haiku_select_stage only applies to quick-mode intents (intent '${i}' is in '${l||"(none)"}' mode). Non-quick modes get the studio's full stage list set automatically by haiku_select_mode.`}));let d=c.stages||[];if(Array.isArray(d)&&d.length>0)return ye(JSON.stringify({error:"stage_already_set",message:`Intent '${i}' already has stages set (${JSON.stringify(d)}). Reset the intent if you need to pick a different stage.`}));let f=Fs(u);if(f.length===0)return{content:[{type:"text",text:`Studio '${u}' has no stages.`}],isError:!0};let h=(r.options??[]).map(y=>f.find(b=>b.toLowerCase()===y.toLowerCase())).filter(y=>!!y);if(h.length>1)return ye(JSON.stringify({error:"single_stage_required",message:`haiku_select_stage requires zero or one option (quick mode is single-stage). Got ${h.length}: [${h.join(", ")}].`}));let m="";if(h.length===1)m=h[0];else{let y=await Ju({intentSlug:i,kind:"stage",title:`Pick the single stage for "${i}"`,prompt:`Quick mode runs exactly one stage from the ${u} studio.`,options:f.map(b=>({id:b,label:b})),signal:t});if(y.timedOut||!y.selection)return ye(JSON.stringify({action:"cancelled",message:Gn("Stage picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon this intent.")}));m=y.selection.id}if(!f.includes(m))return{content:[{type:"text",text:`Stage '${m}' is not in studio '${u}'. Available: ${f.join(", ")}.`}],isError:!0};let g=gr(i,void 0);return g.ok?(Me(a,"stages",[m]),wt(`haiku: select stage ${m} for quick intent ${i}`),Ke("haiku.stage.selected",{intent:i,stage:m,studio:u}),ye(JSON.stringify({action:"stage_selected",intent:i,stage:m,stages:[m],message:Gn(`The user picked the **${m}** stage for quick intent "${i}".`,`Call haiku_run_next { intent: "${i}" } to continue.`)},null,2))):{content:[{type:"text",text:`Error: branch enforcement failed after stage selection for intent '${i}' \u2014 ${g.message}. Resolve manually and retry.`}],isError:!0}}}});function gNt(e,t){let n=new Map(e.map(a=>[a.name,a])),r=new Set(t),i=[];for(let a of t){let c=n.get(a);c&&!i.includes(c)&&i.push(c)}let s=[...i,...e.filter(a=>!r.has(a.name))],o=i.length>0;return s.map(a=>({id:a.dir,label:a.name,description:a.description??"",...o&&!r.has(a.name)?{secondary:!0}:{}}))}var yNt=v(()=>{"use strict"});import{existsSync as fve,readdirSync as ppr,readFileSync as hpr}from"node:fs";import{join as a8}from"node:path";var SNt,bNt=v(()=>{"use strict";yr();Kd();Xb();ji();uo();Ge();Kn();vo();zi();Hv();vs();yNt();SNt={name:"haiku_select_studio",description:"Select a studio for an intent. Pass the intent slug and optionally a list of studio names to limit the selection. If only one option is provided, auto-selects it. Otherwise opens a SPA picker and blocks on the user's selection. Refuses if the intent has already entered a stage. The studio is locked once written \u2014 it cannot be changed later.",inputSchema:m0,async handle(e,t){let n=Be(e,Oge,"haiku_select_studio");if(n)return n;let r=e,i=r.intent,s=Te(),o=a8(s,"intents",i),a=a8(o,"intent.md");if(!fve(a))return ye(JSON.stringify({error:"not_found",message:`Intent '${i}' not found`}));let c=a8(o,"stages");if(fve(c))for(let h of ppr(c,{withFileTypes:!0})){if(!h.isDirectory())continue;let m=a8(c,h.name,"state.json");if(fve(m)){let g=Hb(m);if(g.status&&g.status!=="pending")return{content:[{type:"text",text:"Cannot change studio after intent has entered a stage. Studio is locked at start."}],isError:!0}}}let u=TI().filter(h=>h.data.deprecated!==!0);if(u.length===0)return{content:[{type:"text",text:"No studios available."}],isError:!0};let l=r.options??[],d="";if(l.length===1){let h=si(l[0]);if(!h)return{content:[{type:"text",text:`Studio '${l[0]}' not found. Available: ${u.map(m=>m.name).join(", ")}`}],isError:!0};d=h.dir}else{let m=l.map(b=>si(b)).filter(b=>b!==null).map(b=>b.name);if(m.length===0){let b=[];try{let{data:S}=re(hpr(a,"utf8"));b=S.studio_candidates}catch{}Array.isArray(b)&&(m=b.filter(S=>typeof S=="string").map(S=>si(S)).filter(S=>S!==null).map(S=>S.name))}let g=gNt(u,m),y=await Ju({intentSlug:i,kind:"studio",title:`Pick a studio for "${i}"`,prompt:"Studios are locked once chosen \u2014 pick the lifecycle that matches the work. You can adjust the mode mid-flight, but not the studio.",options:g,signal:t});if(y.timedOut||!y.selection)return ye(JSON.stringify({action:"cancelled",message:Gn("Studio picker timed out without a selection.","Ask the user how they'd like to proceed \u2014 retry the picker or abandon the intent.")}));d=y.selection.id}if(!d)return{content:[{type:"text",text:"No studio selected."}],isError:!0};let f=gr(i,void 0);if(!f.ok)return{content:[{type:"text",text:`Error: branch enforcement failed after studio selection for intent '${i}' \u2014 ${f.message}. Resolve manually and retry.`}],isError:!0};let p=Fs(d);return Me(a,"studio",d),wt(`haiku: select studio ${d} for intent ${i}`),Ke("haiku.studio.selected",{intent:i,studio:d}),ye(JSON.stringify({action:"studio_selected",intent:i,studio:d,all_studio_stages:p,message:Gn(`The user selected the **${d}** studio for "${i}". Studio is now locked.`,"Continue the tick \u2014 the engine will drive the next selection (mode, then stage if quick) automatically.")},null,2))}}});import{existsSync as ENt,readFileSync as mpr,writeFileSync as gpr}from"node:fs";import{join as _Nt}from"node:path";var pve,TNt,vNt=v(()=>{"use strict";pve=Re(Kt(),1);yr();Rx();ji();uo();Ge();zi();vs();TNt={name:"haiku_stage_decompose_seal",description:"Stamp `decompose_verified_at` on the per-stage elaboration artifact's frontmatter. The decompose-verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `decompose_review`. Idempotent (no-op when already verified).",inputSchema:_0,handle(e){let t=Be(e,Lge,"haiku_stage_decompose_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=vx({kind:"stage_decompose",slug:n,stage:r},i);if(!o.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_stage_decompose_seal",reason:o.reason,message:o.reason==="missing"?`No pending decompose-verifier nonce for '${n}/${r}'. The cursor only mints a nonce when emitting the decompose_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Decompose-verifier nonce for '${n}/${r}' does not match the cursor's pending value. If the elaboration was re-recorded since the verifier was dispatched, the nonce was rotated \u2014 re-tick to get the new value.`},null,2)}],isError:!0};let a=Te(),c=_Nt(a,"intents",n);if(!ENt(c))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_decompose_seal",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let u=_Nt(c,"stages",r,"elaboration.md");if(!ENt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_decompose_seal",message:`No elaboration artifact at ${u}. The conversation-elaborate gate must pass before decompose-verify can stamp it.`},null,2)}],isError:!0};let l=gr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for decompose seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=mpr(u,"utf8"),f=(0,pve.default)(d),p=f.data;if(typeof p.decompose_verified_at=="string"&&p.decompose_verified_at)return ye(JSON.stringify({action:"noop",slug:n,stage:r,path:u,decompose_verified_at:p.decompose_verified_at,message:`Decompose for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,decompose_verified_at:h};return s.trim()&&(m.decompose_verified_notes=s.trim()),gpr(u,pve.default.stringify(f.content,m)),wt(`haiku: seal decompose for ${n}/${r}`),ye(JSON.stringify({action:"decompose_sealed",slug:n,stage:r,path:u,decompose_verified_at:h,...s.trim()?{decompose_verified_notes:s.trim()}:{},message:`Sealed decompose for '${n}/${r}'. The cursor will advance past decompose_review on the next tick.`},null,2))}}});import{existsSync as ypr,mkdirSync as Spr,writeFileSync as bpr}from"node:fs";import{join as hve}from"node:path";var RNt,ANt,wNt=v(()=>{"use strict";RNt=Re(Kt(),1);yr();Rx();ji();uo();Ge();zi();vs();ANt={name:"haiku_stage_elaboration_record",description:"Capture the per-stage human-conversation outcome at `stages//elaboration.md`. Call this when the conversation with the user has reached alignment for the active stage's `elaborate` action. The artifact's frontmatter records `recorded_at`; `verified_at` is stamped separately by the verifier subagent. Overwrites any prior artifact (clearing a stale `verified_at`). Cursor stays at `elaborate_review` until the verifier seals the artifact.",inputSchema:b0,handle(e){let t=Be(e,Mge,"haiku_stage_elaboration_record");if(t)return t;let n=e.intent,r=e.stage,i=e.body,s=Te(),o=hve(s,"intents",n);if(!ypr(o))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_record",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let a=hve(o,"stages",r),c=gr(n,r);if(!c.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration record on '${n}/${r}' \u2014 ${c.message}. Resolve manually and retry.`}],isError:!0};Spr(a,{recursive:!0});let u=hve(a,"elaboration.md"),l=new Date().toISOString(),d={recorded_at:l,intent:n,stage:r};return bpr(u,RNt.default.stringify(i,d)),$Ee({kind:"stage_elaborate",slug:n,stage:r}),$Ee({kind:"stage_decompose",slug:n,stage:r}),wt(`haiku: record elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_recorded",slug:n,stage:r,path:u,recorded_at:l,message:`Captured elaboration for '${n}/${r}'. The cursor will dispatch the verifier on the next tick.`},null,2))}}});import{existsSync as kNt,readFileSync as Epr,writeFileSync as _pr}from"node:fs";import{join as INt}from"node:path";var mve,xNt,ONt=v(()=>{"use strict";mve=Re(Kt(),1);yr();Rx();ji();uo();Ge();zi();vs();xNt={name:"haiku_stage_elaboration_seal",description:"Stamp `verified_at` on the per-stage elaboration artifact's frontmatter. The verifier subagent calls this on a pass; the agent must NOT call it directly. Stamps the verification timestamp and optional notes, freeing the cursor to advance past `elaborate_review`. Idempotent (no-op when already verified).",inputSchema:E0,handle(e){let t=Be(e,Dge,"haiku_stage_elaboration_seal");if(t)return t;let n=e.intent,r=e.stage,i=e.nonce,s=e.notes??"",o=vx({kind:"stage_elaborate",slug:n,stage:r},i);if(!o.ok)return{content:[{type:"text",text:JSON.stringify({error:"verifier_nonce_invalid",tool:"haiku_stage_elaboration_seal",reason:o.reason,message:o.reason==="missing"?`No pending verifier nonce for '${n}/${r}'. The cursor only mints a nonce when emitting the elaborate_review action \u2014 call haiku_run_next first, dispatch the verifier subagent with the nonce on the action payload, then have the subagent call this tool with that nonce.`:`Verifier nonce for '${n}/${r}' does not match the cursor's pending value. If the elaboration was re-recorded since the verifier was dispatched, the nonce was rotated \u2014 re-tick to get the new value.`},null,2)}],isError:!0};let a=Te(),c=INt(a,"intents",n);if(!kNt(c))return{content:[{type:"text",text:JSON.stringify({error:"intent_not_found",tool:"haiku_stage_elaboration_seal",message:`Intent '${n}' not found.`},null,2)}],isError:!0};let u=INt(c,"stages",r,"elaboration.md");if(!kNt(u))return{content:[{type:"text",text:JSON.stringify({error:"elaboration_not_found",tool:"haiku_stage_elaboration_seal",message:`No elaboration artifact at ${u}. The agent must call \`haiku_stage_elaboration_record\` before the verifier can seal it.`},null,2)}],isError:!0};let l=gr(n,r);if(!l.ok)return{content:[{type:"text",text:`Error: branch enforcement failed for elaboration seal on '${n}/${r}' \u2014 ${l.message}. Resolve manually and retry.`}],isError:!0};let d=Epr(u,"utf8"),f=(0,mve.default)(d),p=f.data;if(typeof p.verified_at=="string"&&p.verified_at)return ye(JSON.stringify({action:"noop",slug:n,stage:r,path:u,verified_at:p.verified_at,message:`Elaboration for '${n}/${r}' is already verified.`},null,2));let h=new Date().toISOString(),m={...p,verified_at:h};return s.trim()&&(m.verified_notes=s.trim()),_pr(u,mve.default.stringify(f.content,m)),wt(`haiku: seal elaboration for ${n}/${r}`),ye(JSON.stringify({action:"elaboration_sealed",slug:n,stage:r,path:u,verified_at:h,...s.trim()?{verified_notes:s.trim()}:{},message:`Sealed elaboration for '${n}/${r}'. The cursor will advance past elaborate on the next tick.`},null,2))}}});import{execFileSync as gve}from"node:child_process";import{existsSync as JU,readdirSync as PNt,readFileSync as Tpr,rmSync as NNt,statSync as CNt}from"node:fs";import{join as aE}from"node:path";var MNt,DNt=v(()=>{"use strict";yr();Xb();ji();uo();Ge();zi();vs();MNt={name:"haiku_stage_reset",description:"Reset ONE stage of an intent: wipe its units, outputs, artifacts, elaboration, feedback, and stage branch. The intent's other stages are untouched. Use after fixing the stage's hat instructions or studio config when the user wants the agent to re-run that stage cleanly. Requires user confirmation via the SPA picker.",inputSchema:p0,async handle(e,t){let n=Be(e,Age,"haiku_stage_reset");if(n)return n;let{intent:r,stage:i}=e,s=Te(),o=aE(s,"intents",r),a=aE(o,"intent.md");if(!JU(a))return{content:[{type:"text",text:`Intent '${r}' not found.`}],isError:!0};let c=aE(o,"stages",i);if(!JU(c))return{content:[{type:"text",text:`Stage '${i}' not found on intent '${r}' (no \`stages/${i}/\` directory).`}],isError:!0};let u=[];for(let m of["units","outputs","artifacts","feedback","elaboration.md","decisions.jsonl"]){let g=aE(c,m);JU(g)&&u.push(m)}let l=aE(c,"discovery"),d=(()=>{if(!JU(l))return!1;try{return PNt(l).some(m=>{let g=aE(l,m);try{return CNt(g).isFile()&&m.endsWith(".md")}catch{return!1}})}catch{return!1}})();d&&u.push("discovery (outputs only, templates preserved)");let f=`haiku/${r}/${i}`,p=ve()&&Pt(f);if(p&&u.push(`git branch \`${f}\``),u.length===0)return ye(JSON.stringify({action:"noop",message:`Stage '${i}' has no resettable state \u2014 already clean.`}));let h=await Ju({intentSlug:r,kind:"confirm",title:`Reset stage "${i}" on intent "${r}"?`,prompt:`This will DELETE the following from stage '${i}': - ${u.join(` - `)} -Other stages of '${r}' will NOT be touched. Intent main's git history (including any prior merge of this stage) stays put. The next \`haiku_run_next\` will re-enter '${i}' at its elaborate phase. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset stage ${i}`,description:"Wipe the stage and let the engine re-run it"},{id:"cancel",label:"Cancel",description:"Keep the stage as-is"}],signal:t});if(h.timedOut||!h.selection||h.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:`Reset of stage '${i}' cancelled.`}));if(ve())try{let m="";try{m=mve("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(m===f){let g=`haiku/${r}/main`,y=Zo(),b=Pt(g)?g:y;try{mve("git",["checkout",b],{encoding:"utf8",stdio:"pipe"})}catch{mve("git",["checkout",`${b}^0`],{encoding:"utf8",stdio:"pipe"})}}}catch(m){return{content:[{type:"text",text:`Could not move HEAD off '${f}' for the delete. ${m instanceof Error?m.message:String(m)}`}],isError:!0}}for(let m of["units","outputs","artifacts","feedback","elaboration.md","decisions.jsonl"]){let g=aE(c,m);YU(g)&&NNt(g,{recursive:!0,force:!0})}if(d)try{for(let m of PNt(l)){if(!m.endsWith(".md"))continue;let g=aE(l,m);try{CNt(g).isFile()&&NNt(g,{force:!0})}catch{}}}catch{}try{let m=Tpr(a,"utf8"),{data:g}=re(m),y=[];if(`gate_review_session_${i}`in g&&y.push(`gate_review_session_${i}`),`gate_review_url_${i}`in g&&y.push(`gate_review_url_${i}`),y.length>0){for(let b of["gate_review_context","gate_review_next_stage","gate_review_next_phase"])b in g&&y.push(b);Yh(a,y)}}catch{}if(p)try{Sb(r,i)}catch(m){return ye(JSON.stringify({action:"stage_reset_partial",slug:r,stage:i,message:`Stage '${i}' state wiped but \`${f}\` branch could not be deleted: ${m instanceof Error?m.message:String(m)}. Delete it manually with \`git branch -D ${f}\` then run \`haiku_run_next\`.`}))}return wt(`haiku: reset stage ${i} on ${r}`),ye(JSON.stringify({action:"stage_reset",slug:r,stage:i,wiped:u,message:`Stage '${i}' has been reset. Call \`haiku_run_next { intent: "${r}" }\` to re-enter the stage at its elaborate phase.`},null,2))}}});import{existsSync as vpr,readFileSync as Rpr,writeFileSync as Apr}from"node:fs";var gve,wpr,LNt,UNt=v(()=>{"use strict";gve=Re(Kt(),1);yr();Xb();ji();uo();Ge();zi();vs();wpr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],LNt={name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:v0,async handle(e,t){let n=Be(e,nye,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Pa(r,i,s);if(!vpr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=Rpr(o,"utf8"),{data:c,content:u}=(0,gve.default)(a),l=G0(c);if(l==="pending")return ye(JSON.stringify({action:"noop",slug:r,stage:i,unit:s,message:`Unit '${s}' is already pending \u2014 nothing to reset. Edit it with haiku_unit_write or let the engine run it.`}));if(l==="completed")return{content:[{type:"text",text:JSON.stringify({error:"unit_completed_not_resettable",slug:r,stage:i,unit:s,message:`Unit '${s}' is completed \u2014 its work is already merged into the stage branch. Reset cannot un-merge it and would only desync engine state from the code on disk. Reset is for wedged in-flight units only. To change completed work, file feedback against the stage (fix-loop) or revisit the stage.`})}],isError:!0};let d=await Ju({intentSlug:r,kind:"confirm",title:`Reset unit "${s}" (currently ${l}) on "${r}"?`,prompt:`This will return unit '${s}' in stage '${i}' to **pending**: +Other stages of '${r}' will NOT be touched. Intent main's git history (including any prior merge of this stage) stays put. The next \`haiku_run_next\` will re-enter '${i}' at its elaborate phase. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset stage ${i}`,description:"Wipe the stage and let the engine re-run it"},{id:"cancel",label:"Cancel",description:"Keep the stage as-is"}],signal:t});if(h.timedOut||!h.selection||h.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:`Reset of stage '${i}' cancelled.`}));if(ve())try{let m="";try{m=gve("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:"pipe"}).trim()}catch{}if(m===f){let g=`haiku/${r}/main`,y=Zo(),b=Pt(g)?g:y;try{gve("git",["checkout",b],{encoding:"utf8",stdio:"pipe"})}catch{gve("git",["checkout",`${b}^0`],{encoding:"utf8",stdio:"pipe"})}}}catch(m){return{content:[{type:"text",text:`Could not move HEAD off '${f}' for the delete. ${m instanceof Error?m.message:String(m)}`}],isError:!0}}for(let m of["units","outputs","artifacts","feedback","elaboration.md","decisions.jsonl"]){let g=aE(c,m);JU(g)&&NNt(g,{recursive:!0,force:!0})}if(d)try{for(let m of PNt(l)){if(!m.endsWith(".md"))continue;let g=aE(l,m);try{CNt(g).isFile()&&NNt(g,{force:!0})}catch{}}}catch{}try{let m=Tpr(a,"utf8"),{data:g}=re(m),y=[];if(`gate_review_session_${i}`in g&&y.push(`gate_review_session_${i}`),`gate_review_url_${i}`in g&&y.push(`gate_review_url_${i}`),y.length>0){for(let b of["gate_review_context","gate_review_next_stage","gate_review_next_phase"])b in g&&y.push(b);Yh(a,y)}}catch{}if(p)try{Sb(r,i)}catch(m){return ye(JSON.stringify({action:"stage_reset_partial",slug:r,stage:i,message:`Stage '${i}' state wiped but \`${f}\` branch could not be deleted: ${m instanceof Error?m.message:String(m)}. Delete it manually with \`git branch -D ${f}\` then run \`haiku_run_next\`.`}))}return wt(`haiku: reset stage ${i} on ${r}`),ye(JSON.stringify({action:"stage_reset",slug:r,stage:i,wiped:u,message:`Stage '${i}' has been reset. Call \`haiku_run_next { intent: "${r}" }\` to re-enter the stage at its elaborate phase.`},null,2))}}});import{existsSync as vpr,readFileSync as Rpr,writeFileSync as Apr}from"node:fs";var yve,wpr,LNt,UNt=v(()=>{"use strict";yve=Re(Kt(),1);yr();Xb();ji();uo();Ge();zi();vs();wpr=["iterations","reviews","approvals","started_at","hat","hat_started_at","bolt","status"],LNt={name:"haiku_unit_reset",description:"Reset ONE unit back to pending: clear its iterations/reviews/approvals so it can be re-authored or re-run, and discard its worktree + branch (rolling its in-progress code back to the stage baseline). Sibling units and the stage branch are untouched. Use when a unit hits the bolt cap or its spec premise was wrong from the start \u2014 the recovery path the escalation message points to. Requires user confirmation via the SPA picker.",inputSchema:v0,async handle(e,t){let n=Be(e,rye,"haiku_unit_reset");if(n)return n;let{intent:r,stage:i,unit:s}=e,o=Pa(r,i,s);if(!vpr(o))return{content:[{type:"text",text:`No unit '${s}' in stage '${i}' of intent '${r}'.`}],isError:!0};let a=Rpr(o,"utf8"),{data:c,content:u}=(0,yve.default)(a),l=V0(c);if(l==="pending")return ye(JSON.stringify({action:"noop",slug:r,stage:i,unit:s,message:`Unit '${s}' is already pending \u2014 nothing to reset. Edit it with haiku_unit_write or let the engine run it.`}));if(l==="completed")return{content:[{type:"text",text:JSON.stringify({error:"unit_completed_not_resettable",slug:r,stage:i,unit:s,message:`Unit '${s}' is completed \u2014 its work is already merged into the stage branch. Reset cannot un-merge it and would only desync engine state from the code on disk. Reset is for wedged in-flight units only. To change completed work, file feedback against the stage (fix-loop) or revisit the stage.`})}],isError:!0};let d=await Ju({intentSlug:r,kind:"confirm",title:`Reset unit "${s}" (currently ${l}) on "${r}"?`,prompt:`This will return unit '${s}' in stage '${i}' to **pending**: - Clear its iterations / reviews / approvals (and the model escalation) - Discard its worktree + branch \`haiku/${r}/${s}\` (local + remote) \u2014 its in-progress code rolls back to the stage baseline -The unit's SPEC file stays (rewrite it with haiku_unit_write if the premise was wrong, or re-run as-is). Sibling units and the stage branch are NOT touched. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset ${s}`,description:"Return the unit to pending and discard its worktree"},{id:"cancel",label:"Cancel",description:"Keep the unit as-is"}],signal:t});if(d.timedOut||!d.selection||d.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:`Reset of unit '${s}' cancelled \u2014 no state mutated.`}));let f=structuredClone(c);typeof f.model_original=="string"&&f.model_original.length>0&&(f.model=f.model_original),delete f.model_original;for(let h of wpr)delete f[h];Apr(o,gve.default.stringify(u,f));let p=Ipe(r,s);return wt(`haiku: reset unit ${s} on ${r} (was ${l})`),ye(JSON.stringify({action:"unit_reset",slug:r,stage:i,unit:s,previous_status:l,worktree:p.message,message:`Unit '${s}' reset to pending. Rewrite its spec with haiku_unit_write if its premise was wrong, then call haiku_run_next to re-run it. Siblings and the stage branch were untouched.`},null,2))}}});var uve={};Ar(uve,{orchestratorToolHandlers:()=>hU});var hU,mU=v(()=>{"use strict";IIt();CIt();I0t();O0t();U0t();H0t();G0t();W0t();Z0t();$0t();txt();rxt();uxt();fxt();oNt();dNt();mNt();bNt();vNt();wNt();ONt();DNt();UNt();hU=new Map([kIt,NIt,k0t,x0t,L0t,j0t,z0t,V0t,Y0t,Q0t,ext,nxt,cxt,dxt,sNt,lNt,hNt,SNt,TNt,ANt,xNt,MNt,LNt].map(e=>[e.name,e]))});function FNt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function Zb(e,t,n,r){let i=t||"(none)",s=n.target_branch||"the target branch",o=n.dirty_files||[];if(n.block==="dirty_tree"){let a=o.length>0?` +The unit's SPEC file stays (rewrite it with haiku_unit_write if the premise was wrong, or re-run as-is). Sibling units and the stage branch are NOT touched. This cannot be undone.`,options:[{id:"reset",label:`Yes, reset ${s}`,description:"Return the unit to pending and discard its worktree"},{id:"cancel",label:"Cancel",description:"Keep the unit as-is"}],signal:t});if(d.timedOut||!d.selection||d.selection.id!=="reset")return ye(JSON.stringify({action:"cancelled",message:`Reset of unit '${s}' cancelled \u2014 no state mutated.`}));let f=structuredClone(c);typeof f.model_original=="string"&&f.model_original.length>0&&(f.model=f.model_original),delete f.model_original;for(let h of wpr)delete f[h];Apr(o,yve.default.stringify(u,f));let p=xpe(r,s);return wt(`haiku: reset unit ${s} on ${r} (was ${l})`),ye(JSON.stringify({action:"unit_reset",slug:r,stage:i,unit:s,previous_status:l,worktree:p.message,message:`Unit '${s}' reset to pending. Rewrite its spec with haiku_unit_write if its premise was wrong, then call haiku_run_next to re-run it. Siblings and the stage branch were untouched.`},null,2))}}});var lve={};Ar(lve,{orchestratorToolHandlers:()=>gU});var gU,yU=v(()=>{"use strict";IIt();CIt();I0t();O0t();U0t();H0t();G0t();W0t();Z0t();$0t();txt();rxt();uxt();fxt();oNt();dNt();mNt();bNt();vNt();wNt();ONt();DNt();UNt();gU=new Map([kIt,NIt,k0t,x0t,L0t,j0t,z0t,V0t,Y0t,Q0t,ext,nxt,cxt,dxt,sNt,lNt,hNt,SNt,TNt,ANt,xNt,MNt,LNt].map(e=>[e.name,e]))});function FNt(e){return{feedback_id:e.id,title:e.title,status:e.status,origin:e.origin,author:e.author,file:e.file}}function Zb(e,t,n,r){let i=t||"(none)",s=n.target_branch||"the target branch",o=n.dirty_files||[];if(n.block==="dirty_tree"){let a=o.length>0?` Files to commit: ${o.map(u=>` - ${u}`).join(` @@ -1580,12 +1580,12 @@ No human intervention needed \u2014 just: 3. Call \`haiku_run_next\` to retry.`};return{content:[{type:"text",text:JSON.stringify(c,null,2)}],isError:!0}}return{content:[{type:"text",text:`Error: stage-branch enforcement failed for intent '${e}', stage '${i}' (${r}) \u2014 ${n.message}`}],isError:!0}}function jNt(e,t,n,r,i=[]){if(!(n.exceeded||n.loopDetected))return null;let s=n.exceeded?"iteration_limit":"loop_detected",o=n.exceeded?`Stage '${t}' has exceeded ${Df} agent-invoked iterations (now at ${n.count}). The autonomous loop has stopped \u2014 a human must decide whether to keep pushing, reject feedback items, split the work, or terminate the intent. To force another cycle (user-invoked, uncapped), file feedback at the target stage via \`haiku_feedback({ intent, stage: "", resolution: "stage_revisit", severity: "blocker", title, body })\` and call \`haiku_run_next\` \u2014 the pre-tick feedback walk reroutes through that stage. Or use \`haiku_feedback_reject\` to dismiss specific items, or mark the stage complete manually.`:`Stage '${t}' is in a loop: iteration ${n.count}'s feedback set is the same as the previous iteration's. The agent keeps regenerating identical findings, which usually means the spec is wrong or the criteria are unreachable. A human must intervene \u2014 adjust the feedback items, relax the criteria, or terminate the intent.`;return Ke("haiku.stage.escalate",{intent:e,stage:t,reason:s,iteration:String(n.count),trigger:r,signature:n.signature}),{action:"escalate",intent:e,stage:t,reason:s,trigger:r,iteration:n.count,max_iterations:Df,signature:n.signature,pending_items:i,message:o}}function HNt(e){let{visits:t,pendingFeedbackCount:n,stage:r,situation:i}=e,s=t>0?`Revisit elaborate (visit ${t}) for stage '${r}'. ${n} pending feedback item(s) must be addressed with new units.`:`Elaborate stage '${r}' into units with completion criteria.`,o=["","Inputs (read each file directly \u2014 do not trust titles alone):","- every `pending_feedback[].file` in this action's payload","- `stage_metadata` (STAGE.md body + review agents)","- `completed_units` (the stage's prior units, read-only reference)","- the intent's `intent.md` for overall goals","","Responsibilities:","- Read every `pending_feedback[].file` COMPLETELY. The title is only a handle; the body carries requirements, tests, and acceptance criteria.","- Draft one or more new units whose `closes:` frontmatter references the feedback items they resolve.","- Every pending feedback item MUST be referenced by at least one new unit's `closes:` (orphans block advancement).","- When drafting is complete, call `haiku_run_next` to advance. The workflow engine opens a review gate where the user inspects and approves the drafted units via the review UI \u2014 that is the ONLY approval path.","","## Turn discipline","","Elaboration is COLLABORATIVE and DETAILED. Take as many turns as you need to draft a thorough, well-scoped unit set \u2014 but every turn must earn its place.","","- **Each turn MUST ask a meaningful question.** A meaningful question is one whose answer changes what you draft \u2014 trade-offs, scope boundaries, acceptance criteria, architectural choices with two-plus viable options, priorities between conflicting requirements, or requirement ambiguities that can't be resolved from the intent body alone. Use `AskUserQuestion` with a pre-populated `options[]` array.","- **NEVER ask about things covered elsewhere in the flow.** The following are handled by other parts of the system \u2014 asking about them here duplicates work:",' - Unit-set approval ("how do these units look", "does this scope work", "are these acceptable", "should I proceed", "do you approve") \u2014 handled by the review gate UI after drafting completes'," - Per-unit feedback (reject / request-changes on specific units) \u2014 handled by the review gate's annotation + changes-requested path",' - Feedback closure verification ("did my unit address FB-N") \u2014 handled by the feedback-assessor hat during execution',' - Gate decisions ("should we advance the stage") \u2014 handled by the gate itself',' - Quality-gate results ("did tests pass") \u2014 handled by advance_hat',"- **Use `AskUserQuestion` with `questions[]` when several decisions are related** so the user answers them in one UI exchange. Independent questions can still be separate turns \u2014 collaboration is the point.","- **When information is genuinely absent from the intent and there are no viable defaults, ask.** When you have reasonable inference based on intent goals + stage scope + prior units, draft it and let the review gate surface disagreements."].join(` `);return i?`${s} -${i}${o}`:`${s}${o}`}var qNt=v(()=>{"use strict";Ge();vo()});function Rx(e){let t=e.stage||"",n=e.unit||"",r=e.hat||e.first_hat||"",i=e.next_stage||"",s="",o="";switch(e.action){case"select_studio":s="I need to select a lifecycle studio for this intent before we can begin.",o="After studio selection, the first stage will start with elaboration.";break;case"start_stage":s=`Starting stage '${t}' \u2014 I'll elaborate the work into units with completion criteria.`,o="Next I'll break the work down into units, then validate them and open a review gate for your approval.";break;case"elaborate":t?(s=`Starting the conversation about stage '${t}' before any unit decomposition.`,o="I'll read the intent + STAGE.md, surface informed questions, and capture our agreement via haiku_stage_elaboration_record. A verifier will then grade the conversation for substance before the cursor advances to decompose."):(s="Pre-intent verifier \u2014 grading whether intent.md reflects a meaningful conversation about what you want.",o="I'll dispatch a verifier subagent. Pass stamps `verified_at` on intent.md via haiku_intent_seal; fail returns gaps so we re-engage and update the intent.");break;case"elaborate_review":t?(s=`Dispatching the substance verifier on the captured elaboration for stage '${t}'.`,o="On pass, the verifier seals the artifact and the cursor advances to decompose. On fail, the verifier returns specific gaps and we re-engage you with the missing questions."):(s="Dispatching the substance verifier on intent.md.",o="On pass, the cursor walks into the first stage's elaborate gate. On fail, we update the intent body and re-verify.");break;case"decompose_review":s=`Dispatching the decompose-verifier on the drafted units for stage '${t}'.`,o='The verifier audits whether the units collectively cover the captured conversation transcript \u2014 nothing scoped is missing a unit, no unit is out of scope. On pass, it stamps `decompose_verified_at` on elaboration.md and the cursor advances to execute. On fail, it files feedback with `targets.invalidates: ["decompose_complete"]` and the fix loop reruns decomposition.';break;case"decompose":{let a=e.iteration||e.visits||0,c=e.pending_feedback?.length||0,u=e.validation_error;a>1?(s=u?`Revisiting stage '${t}' (iteration ${a}) \u2014 fixing validation on in-flight units before advancing.`:`Revisiting stage '${t}' (iteration ${a}) \u2014 ${c} pending feedback item(s) to address with new units.`,o="I'll draft units that close each pending feedback item, then advance to execution once validated."):(s=`Decomposing stage '${t}' into unit specs \u2014 informed by the captured elaboration + any discovery output.`,o="After units are defined, the orchestrator validates them and opens a review gate for your approval before execution begins.");break}case"elaboration_insufficient":s=`I need to engage you more on the plan for stage '${t}' before finalizing.`,o="After sufficient collaboration, I'll finalize units and open the review gate.";break;case"gate_review":{let a=e.gate_context||"stage_gate";a==="intent_review"?(s="The intent specs are ready \u2014 opening the review gate for your approval.",o="After approval, execution begins. If changes are requested, I'll revise and re-submit."):a==="elaborate_to_execute"?(s="Unit specs are validated \u2014 opening the review gate for your approval before execution.",o="After approval, I'll begin executing units in wave order. If changes are requested, I'll revise the specs."):(s=`Stage '${t}' is complete \u2014 opening the review gate.`,o=i?`After approval, I'll advance to stage '${i}'. If changes are requested, I'll address the feedback.`:"After approval, the intent is complete.");break}case"intent_approved":s="Intent approved \u2014 moving to execution.",o="I'll begin executing units in wave order.";break;case"advance_phase":{let a=e.to_phase||"";a==="execute"?(s=`Specs approved for stage '${t}' \u2014 beginning execution.`,o="I'll execute units in wave order, one hat at a time."):a==="review"?(s=`All units complete in stage '${t}' \u2014 moving to review.`,o="I'll run quality gates and adversarial review agents, then open the stage gate."):a==="gate"?(s=`Review complete for stage '${t}' \u2014 moving to the gate.`,o="The stage gate will determine whether to advance, request changes, or send for external review."):(s=`Advancing stage '${t}' to ${a} phase.`,o="");break}case"start_unit":s=`Starting unit '${n}' with hat '${r}' in stage '${t}'.`,o="I'll execute the unit work per the hat definition, then advance to the next hat or next unit.";break;case"start_units":{let a=e.units||[];s=`Starting ${a.length} units in parallel: ${a.join(", ")}.`,o=ve()?"Each unit runs in its own worktree. After all complete, the next wave starts or we advance to review.":"After all units complete, the next wave starts or we advance to review.";break}case"continue_unit":s=`Continuing unit '${n}' \u2014 hat: ${r}, bolt: ${e.bolt||1}.`,o="I'll continue the work, then advance to the next hat or complete the unit.";break;case"continue_units":{let a=e.units||[];s=`Continuing ${a.length} units in parallel: ${a.map(c=>`${c.name}(${c.hat}#${c.bolt})`).join(", ")}.`,o="Each active unit resumes in its own worktree. After all subagents return, the workflow engine advances.";break}case"escalate":{let a=e.reason||"unknown",c=e.iteration||0,u=e.max_iterations||Df;s=a==="loop_detected"?`Stage '${t}' is stuck in a loop \u2014 iteration ${c} regenerated the same feedback set as iteration ${c-1}.`:`Stage '${t}' hit the ${u}-iteration ceiling (now at ${c}) \u2014 stopping the autonomous loop.`,o='STOP. Surface this to the human: the autonomous loop is halted. Do NOT call haiku_run_next again until the human makes a decision (reject feedback items, file a stage_revisit feedback via `haiku_feedback({ resolution: "stage_revisit", severity: "blocker" })` to force another cycle, or terminate the intent).';break}case"review":s=`Quality gates passed \u2014 running adversarial review agents for stage '${t}'.`,o="After review agents pass, the stage gate opens for approval.";break;case"fix_quality_gates":s=`Quality gates failed in stage '${t}' \u2014 I need to fix the issues before review.`,o="After fixing, I'll retry the quality gates and then proceed to adversarial review.";break;case"advance_stage":s=`Stage '${t}' complete \u2014 advancing to '${i}'.`,o=i?`I'll start stage '${i}' with elaboration.`:"The intent is complete.";break;case"intent_complete":s="All stages are complete \u2014 the intent is done.",o="";break;case"integrate_fix_chains":{let a=e.items||[],c=e.scope||"intent";s=`${a.length} fix-chain merge${a.length===1?"":"s"} conflicted when landing on ${c==="intent"?"intent main":`stage '${c}'`} \u2014 dispatching the integrator to resolve.`,o="After integrators return, I'll call run_next to complete the merges.";break}case"changes_requested":s="Changes were requested on the review \u2014 I'll address the feedback.",o="After revisions, I'll re-submit for review.";break;case"external_review_requested":s=`Stage '${t}' needs external review \u2014 submit the work through your project's review process.`,o="After external approval, run /haiku:haiku-pickup to continue.";break;case"awaiting_external_review":s=`Stage '${t}' is waiting on external review.`,o="Run /haiku:haiku-pickup after the review is approved.";break;case"blocked":s=`Some units in stage '${t}' are blocked \u2014 dependencies not met.`,o="Unblock the dependencies, then retry.";break;case"outputs_missing":s=`Stage '${t}' is missing required output artifacts.`,o="Create the missing artifacts, then retry.";break;case"discovery_missing":s=`Stage '${t}' is missing required discovery artifacts.`,o="Create the missing artifacts, then retry.";break;case"unresolved_dependencies":s="Some unit dependencies reference units that don't exist \u2014 I need to fix the references.",o="After fixing, I'll retry advancement.";break;case"dag_cycle_detected":s="A dependency cycle was detected in the unit graph \u2014 I need to break the cycle.",o="After fixing, I'll retry advancement.";break;case"unit_naming_invalid":s="Some unit files don't follow the required naming convention \u2014 I need to rename them.",o="After fixing, I'll retry advancement.";break;case"gate_blocked":s="Gate review couldn't be completed \u2014 the review UI and elicitation both failed.",o="Run haiku_run_next again to retry the gate review.";break;case"complete":s="Intent is already completed.",o="";break;case"composite_run_stage":s=`Running composite stage '${t}'.`,o="The composite orchestrator will advance through sub-stages.";break;case"error":s=e.message||"An error occurred.",o="";break;default:break}s&&(e.tell_user=s),o&&(e.next_step=o)}var BNt=v(()=>{"use strict";Ge()});import{execFileSync as zNt}from"node:child_process";import{existsSync as $v,readFileSync as kpr}from"node:fs";import{join as cE}from"node:path";function yve(e,t){if(t)try{let n=BD(e,t);!n.ok&&n.error&&console.error(`[haiku] auto-push of haiku/${e}/${t} failed: ${n.error}`)}catch(n){console.error(`[haiku] auto-push of haiku/${e}/${t} threw: ${n instanceof Error?n.message:String(n)}`)}}function ZU(e){if(!$v(e))return{};let t=kpr(e,"utf8"),{data:n}=re(t);return n}function Ipr(e,t){let n=cE(pe(e),"intent.md"),r=ZU(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function Sve(e,t){kI(e),s3(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),yve(e,t);let n=Ipr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Pt(r)&&!Zc(r,`haiku/${e}/main`)){let i=tZ(e,()=>zD(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Pt(r)){Sb(e,n);try{zNt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}if(!gpe(e,t)){let i=`haiku/${e}/${t}`;if(Pt(i)&&n){let s=Spe(e,"main",t);if(!s.success)throw new Error(`Merge forward from main to '${t}' failed: ${s.message}. Resolve conflicts on branch '${i}' manually, then retry.`)}else ype(e,t)}oSe(e,t,{trigger:"initial"}),s3(e),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),yve(e,t),ci(e)}function rU(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function Ax(e,t,n){aSe(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),yve(e,t),ci(e)}function z6(e,t,n){Ax(e,t,"advanced"),Sve(e,n),ci(e)}function GNt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function xpr(e){let t=cE(pe(e),"intent.md");$v(t)&&(Me(t,"completion_review_entered_at",En()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function Opr(e,t){if(!ve()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Pt(n)&&!Zc(n,r)){let i=tZ(e,()=>zD(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. +${i}${o}`:`${s}${o}`}var qNt=v(()=>{"use strict";Ge();vo()});function Ax(e){let t=e.stage||"",n=e.unit||"",r=e.hat||e.first_hat||"",i=e.next_stage||"",s="",o="";switch(e.action){case"select_studio":s="I need to select a lifecycle studio for this intent before we can begin.",o="After studio selection, the first stage will start with elaboration.";break;case"start_stage":s=`Starting stage '${t}' \u2014 I'll elaborate the work into units with completion criteria.`,o="Next I'll break the work down into units, then validate them and open a review gate for your approval.";break;case"elaborate":t?(s=`Starting the conversation about stage '${t}' before any unit decomposition.`,o="I'll read the intent + STAGE.md, surface informed questions, and capture our agreement via haiku_stage_elaboration_record. A verifier will then grade the conversation for substance before the cursor advances to decompose."):(s="Pre-intent verifier \u2014 grading whether intent.md reflects a meaningful conversation about what you want.",o="I'll dispatch a verifier subagent. Pass stamps `verified_at` on intent.md via haiku_intent_seal; fail returns gaps so we re-engage and update the intent.");break;case"elaborate_review":t?(s=`Dispatching the substance verifier on the captured elaboration for stage '${t}'.`,o="On pass, the verifier seals the artifact and the cursor advances to decompose. On fail, the verifier returns specific gaps and we re-engage you with the missing questions."):(s="Dispatching the substance verifier on intent.md.",o="On pass, the cursor walks into the first stage's elaborate gate. On fail, we update the intent body and re-verify.");break;case"decompose_review":s=`Dispatching the decompose-verifier on the drafted units for stage '${t}'.`,o='The verifier audits whether the units collectively cover the captured conversation transcript \u2014 nothing scoped is missing a unit, no unit is out of scope. On pass, it stamps `decompose_verified_at` on elaboration.md and the cursor advances to execute. On fail, it files feedback with `targets.invalidates: ["decompose_complete"]` and the fix loop reruns decomposition.';break;case"decompose":{let a=e.iteration||e.visits||0,c=e.pending_feedback?.length||0,u=e.validation_error;a>1?(s=u?`Revisiting stage '${t}' (iteration ${a}) \u2014 fixing validation on in-flight units before advancing.`:`Revisiting stage '${t}' (iteration ${a}) \u2014 ${c} pending feedback item(s) to address with new units.`,o="I'll draft units that close each pending feedback item, then advance to execution once validated."):(s=`Decomposing stage '${t}' into unit specs \u2014 informed by the captured elaboration + any discovery output.`,o="After units are defined, the orchestrator validates them and opens a review gate for your approval before execution begins.");break}case"elaboration_insufficient":s=`I need to engage you more on the plan for stage '${t}' before finalizing.`,o="After sufficient collaboration, I'll finalize units and open the review gate.";break;case"gate_review":{let a=e.gate_context||"stage_gate";a==="intent_review"?(s="The intent specs are ready \u2014 opening the review gate for your approval.",o="After approval, execution begins. If changes are requested, I'll revise and re-submit."):a==="elaborate_to_execute"?(s="Unit specs are validated \u2014 opening the review gate for your approval before execution.",o="After approval, I'll begin executing units in wave order. If changes are requested, I'll revise the specs."):(s=`Stage '${t}' is complete \u2014 opening the review gate.`,o=i?`After approval, I'll advance to stage '${i}'. If changes are requested, I'll address the feedback.`:"After approval, the intent is complete.");break}case"intent_approved":s="Intent approved \u2014 moving to execution.",o="I'll begin executing units in wave order.";break;case"advance_phase":{let a=e.to_phase||"";a==="execute"?(s=`Specs approved for stage '${t}' \u2014 beginning execution.`,o="I'll execute units in wave order, one hat at a time."):a==="review"?(s=`All units complete in stage '${t}' \u2014 moving to review.`,o="I'll run quality gates and adversarial review agents, then open the stage gate."):a==="gate"?(s=`Review complete for stage '${t}' \u2014 moving to the gate.`,o="The stage gate will determine whether to advance, request changes, or send for external review."):(s=`Advancing stage '${t}' to ${a} phase.`,o="");break}case"start_unit":s=`Starting unit '${n}' with hat '${r}' in stage '${t}'.`,o="I'll execute the unit work per the hat definition, then advance to the next hat or next unit.";break;case"start_units":{let a=e.units||[];s=`Starting ${a.length} units in parallel: ${a.join(", ")}.`,o=ve()?"Each unit runs in its own worktree. After all complete, the next wave starts or we advance to review.":"After all units complete, the next wave starts or we advance to review.";break}case"continue_unit":s=`Continuing unit '${n}' \u2014 hat: ${r}, bolt: ${e.bolt||1}.`,o="I'll continue the work, then advance to the next hat or complete the unit.";break;case"continue_units":{let a=e.units||[];s=`Continuing ${a.length} units in parallel: ${a.map(c=>`${c.name}(${c.hat}#${c.bolt})`).join(", ")}.`,o="Each active unit resumes in its own worktree. After all subagents return, the workflow engine advances.";break}case"escalate":{let a=e.reason||"unknown",c=e.iteration||0,u=e.max_iterations||Df;s=a==="loop_detected"?`Stage '${t}' is stuck in a loop \u2014 iteration ${c} regenerated the same feedback set as iteration ${c-1}.`:`Stage '${t}' hit the ${u}-iteration ceiling (now at ${c}) \u2014 stopping the autonomous loop.`,o='STOP. Surface this to the human: the autonomous loop is halted. Do NOT call haiku_run_next again until the human makes a decision (reject feedback items, file a stage_revisit feedback via `haiku_feedback({ resolution: "stage_revisit", severity: "blocker" })` to force another cycle, or terminate the intent).';break}case"review":s=`Quality gates passed \u2014 running adversarial review agents for stage '${t}'.`,o="After review agents pass, the stage gate opens for approval.";break;case"fix_quality_gates":s=`Quality gates failed in stage '${t}' \u2014 I need to fix the issues before review.`,o="After fixing, I'll retry the quality gates and then proceed to adversarial review.";break;case"advance_stage":s=`Stage '${t}' complete \u2014 advancing to '${i}'.`,o=i?`I'll start stage '${i}' with elaboration.`:"The intent is complete.";break;case"intent_complete":s="All stages are complete \u2014 the intent is done.",o="";break;case"integrate_fix_chains":{let a=e.items||[],c=e.scope||"intent";s=`${a.length} fix-chain merge${a.length===1?"":"s"} conflicted when landing on ${c==="intent"?"intent main":`stage '${c}'`} \u2014 dispatching the integrator to resolve.`,o="After integrators return, I'll call run_next to complete the merges.";break}case"changes_requested":s="Changes were requested on the review \u2014 I'll address the feedback.",o="After revisions, I'll re-submit for review.";break;case"external_review_requested":s=`Stage '${t}' needs external review \u2014 submit the work through your project's review process.`,o="After external approval, run /haiku:haiku-pickup to continue.";break;case"awaiting_external_review":s=`Stage '${t}' is waiting on external review.`,o="Run /haiku:haiku-pickup after the review is approved.";break;case"blocked":s=`Some units in stage '${t}' are blocked \u2014 dependencies not met.`,o="Unblock the dependencies, then retry.";break;case"outputs_missing":s=`Stage '${t}' is missing required output artifacts.`,o="Create the missing artifacts, then retry.";break;case"discovery_missing":s=`Stage '${t}' is missing required discovery artifacts.`,o="Create the missing artifacts, then retry.";break;case"unresolved_dependencies":s="Some unit dependencies reference units that don't exist \u2014 I need to fix the references.",o="After fixing, I'll retry advancement.";break;case"dag_cycle_detected":s="A dependency cycle was detected in the unit graph \u2014 I need to break the cycle.",o="After fixing, I'll retry advancement.";break;case"unit_naming_invalid":s="Some unit files don't follow the required naming convention \u2014 I need to rename them.",o="After fixing, I'll retry advancement.";break;case"gate_blocked":s="Gate review couldn't be completed \u2014 the review UI and elicitation both failed.",o="Run haiku_run_next again to retry the gate review.";break;case"complete":s="Intent is already completed.",o="";break;case"composite_run_stage":s=`Running composite stage '${t}'.`,o="The composite orchestrator will advance through sub-stages.";break;case"error":s=e.message||"An error occurred.",o="";break;default:break}s&&(e.tell_user=s),o&&(e.next_step=o)}var BNt=v(()=>{"use strict";Ge()});import{execFileSync as zNt}from"node:child_process";import{existsSync as $v,readFileSync as kpr}from"node:fs";import{join as cE}from"node:path";function Sve(e,t){if(t)try{let n=zD(e,t);!n.ok&&n.error&&console.error(`[haiku] auto-push of haiku/${e}/${t} failed: ${n.error}`)}catch(n){console.error(`[haiku] auto-push of haiku/${e}/${t} threw: ${n instanceof Error?n.message:String(n)}`)}}function XU(e){if(!$v(e))return{};let t=kpr(e,"utf8"),{data:n}=re(t);return n}function Ipr(e,t){let n=cE(pe(e),"intent.md"),r=XU(n),i=r.studio||"",s=wn(r,i),o=s.indexOf(t);return o>0?s[o-1]:void 0}function bve(e,t){kI(e),a3(e),wt(`haiku: pre-stage cleanup for ${e}/${t}`),Sve(e,t);let n=Ipr(e,t),r=n?`haiku/${e}/${n}`:"";if(n&&Pt(r)&&!Zc(r,`haiku/${e}/main`)){let i=nZ(e,()=>GD(e,n));if(!i.success)throw new Error(`Merge of completed stage '${n}' into main failed: ${i.message}. Resolve conflicts on 'haiku/${e}/main' manually, then retry.`)}if(n&&Pt(r)){Sb(e,n);try{zNt("git",["push","origin","--delete",r],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}if(!ype(e,t)){let i=`haiku/${e}/${t}`;if(Pt(i)&&n){let s=bpe(e,"main",t);if(!s.success)throw new Error(`Merge forward from main to '${t}' failed: ${s.message}. Resolve conflicts on branch '${i}' manually, then retry.`)}else Spe(e,t)}aSe(e,t,{trigger:"initial"}),a3(e),Ke("haiku.stage.started",{intent:e,stage:t}),wt(`haiku: start stage ${t}`),Sve(e,t),ci(e)}function sU(e,t,n){Ke("haiku.stage.phase",{intent:e,stage:t,phase:n}),ci(e)}function wx(e,t,n){cSe(e,t,n==="advanced"?"advanced":"rejected"),Ke("haiku.stage.completed",{intent:e,stage:t,gate_outcome:n}),wt(`haiku: complete stage ${t}`),Sve(e,t),ci(e)}function G6(e,t,n){wx(e,t,"advanced"),bve(e,n),ci(e)}function GNt(e,t){Ke("haiku.gate.entered",{intent:e,stage:t}),ci(e)}function xpr(e){let t=cE(pe(e),"intent.md");$v(t)&&(Me(t,"completion_review_entered_at",En()),Ke("haiku.intent.completion_review_entered",{intent:e}),ci(e))}function Opr(e,t){if(!ve()||!t)return;let n=`haiku/${e}/${t}`,r=`haiku/${e}/main`;if(Pt(n)&&!Zc(n,r)){let i=nZ(e,()=>GD(e,t));i.success||console.error(`[workflowFinalizeStageIntoIntentMain] merge ${n}\u2192${r} failed: ${i.message}. Intent-completion review will still open; resolve the merge manually before approving the final gate. Recovery paths for the stage branch if the reap below loses it before you can merge: - \`git reflog show ${n}\` \u2014 the branch's tip is still in reflog until gc runs (default 90 days). - \`origin/${n}\` \u2014 if the branch was pushed, the remote tracking ref still has the tip. - - \`git fsck --lost-found\` \u2014 catches dangling commits even after the branch ref is deleted.`)}if(Pt(n)&&Zc(n,r)){Sb(e,t);try{zNt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}gr(e,void 0)}function iU(e,t,n){let r=n?cE(n,"intents",e):pe(e),i=cE(r,"intent.md"),s=$v(i)?ZU(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)mv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function Ppr(e,t){let n=t?cE(t,"intents",e):pe(e),r=cE(n,"intent.md");$v(r)&&(Me(r,"completion_review_entered_at",""),Me(r,"completion_review_dispatched",!1),Me(r,"completion_review_skipped",!1),Me(r,"completion_review_dispatched_at",""),ci(e))}function G6(e,t,n){let r=iU(e,t);if(r.length>0)return Ppr(e),Ke("haiku.intent.completion_guard_failed",{intent:e,studio:t,incomplete_stages:r.join(",")}),{action:"error",intent:e,message:`Cannot complete intent '${e}': ${r.length} stage(s) are not yet completed: [${r.join(", ")}]. Cleared completion-review markers; next tick will route to '${r[0]}' (derived from disk). Call \`haiku_run_next { intent: "${e}" }\` to resume.`};let i=cE(pe(e),"intent.md"),s=$v(i)?ZU(i):{},a=wn(s,t).at(-1)??"";return a&&Opr(e,a),xpr(e),{action:"advance_phase",intent:e,stage:null,from_phase:s.phase||"active",to_phase:"awaiting_completion_review",message:`${n} All stages passed \u2014 entering intent-completion review phase. Call \`haiku_run_next { intent: "${e}" }\` to dispatch studio-level review agents (if any) and the final gate.`}}function V6(e){let t=cE(pe(e),"intent.md");if($v(t)){let s=ZU(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=ppe(o);c.ok?(Me(t,"draft_pr_status","ready"),Me(t,"draft_pr_ready_at",En())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),Me(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=$v(t)?ZU(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=xpe(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}WD(e),ci(e),mpe(e)}var VNt=v(()=>{"use strict";yr();q0();Kd();sZ();Ge();vo();a1()});var aNt={};Ar(aNt,{buildElaboratorInstruction:()=>HNt,buildGuardResponse:()=>Zb,buildOutputRequirements:()=>gx,buildRunInstructions:()=>eU,cleanupPreExecuteFeedback:()=>upt,completeOrReviewIntent:()=>G6,computeUnitWaves:()=>BI,currentWaveNumber:()=>zI,enrichActionWithPreview:()=>Rx,findIncompleteStages:()=>iU,getAwaitGateReviewSession:()=>r_e,getPrepareGateReview:()=>lve,handleOrchestratorTool:()=>k_e,isStagePreExecute:()=>rL,listUnits:()=>Eg,maybeEscalate:()=>jNt,orchestratorToolDefs:()=>N6,resolveIntentStages:()=>wn,resolveStageHats:()=>Es,resolveStageMetadata:()=>Xpe,resolveStageReview:()=>Jpe,resolveStudioFilePath:()=>Ff,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>Zpe,runNext:()=>Npr,runQualityGates:()=>XAt,setGateReviewHandlers:()=>bve,summarizeFeedback:()=>FNt,validateCumulativeInputCoverage:()=>ZAt,validateDiscoveryArtifacts:()=>VAt,validateOutputLiveness:()=>JAt,validateStageOutputs:()=>GAt,validateUnitInputs:()=>KAt,validateUnitNaming:()=>WAt,workflowAdvancePhase:()=>rU,workflowAdvanceStage:()=>z6,workflowCompleteStage:()=>Ax,workflowGateAsk:()=>GNt,workflowIntentComplete:()=>V6,workflowStartStage:()=>Sve,writeReviewFeedbackFiles:()=>I6});function Mpr(e){let t=e.stage||"",n=Array.isArray(e.items)?`n${e.items.length}`:"",r=e.iteration??e.bolt;return`${t}-${n}-${r??""}-${Date.now()}`}function eU(e,t,n,r){let i=okt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!Cpr.has(n.action)&&!n.prompt_file)try{let{path:d}=Nft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:Mpr(n)});n.prompt_file=d,n.message=`Read \`${d}\` and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt for this tick.`,s=[`## ${n.action} Prompt (file-based)`,"","The full prompt for this tick is at:","",` ${d}`,"",`Read that file with the Read tool and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt \u2014 do not paraphrase, summarize, or skip any of it.`].join(` + - \`git fsck --lost-found\` \u2014 catches dangling commits even after the branch ref is deleted.`)}if(Pt(n)&&Zc(n,r)){Sb(e,t);try{zNt("git",["push","origin","--delete",n],{stdio:"pipe",timeout:Ra,env:Aa})}catch{}}gr(e,void 0)}function oU(e,t,n){let r=n?cE(n,"intents",e):pe(e),i=cE(r,"intent.md"),s=$v(i)?XU(i):{},o=wn(s,t),a=typeof s.mode=="string"&&s.mode.length>0?s.mode:"continuous",c=[];for(let u of o)mv({slug:e,studio:t,stage:u,intentDir:r,intentMode:a}).status!=="completed"&&c.push(u);return c}function Ppr(e,t){let n=t?cE(t,"intents",e):pe(e),r=cE(n,"intent.md");$v(r)&&(Me(r,"completion_review_entered_at",""),Me(r,"completion_review_dispatched",!1),Me(r,"completion_review_skipped",!1),Me(r,"completion_review_dispatched_at",""),ci(e))}function V6(e,t,n){let r=oU(e,t);if(r.length>0)return Ppr(e),Ke("haiku.intent.completion_guard_failed",{intent:e,studio:t,incomplete_stages:r.join(",")}),{action:"error",intent:e,message:`Cannot complete intent '${e}': ${r.length} stage(s) are not yet completed: [${r.join(", ")}]. Cleared completion-review markers; next tick will route to '${r[0]}' (derived from disk). Call \`haiku_run_next { intent: "${e}" }\` to resume.`};let i=cE(pe(e),"intent.md"),s=$v(i)?XU(i):{},a=wn(s,t).at(-1)??"";return a&&Opr(e,a),xpr(e),{action:"advance_phase",intent:e,stage:null,from_phase:s.phase||"active",to_phase:"awaiting_completion_review",message:`${n} All stages passed \u2014 entering intent-completion review phase. Call \`haiku_run_next { intent: "${e}" }\` to dispatch studio-level review agents (if any) and the final gate.`}}function W6(e){let t=cE(pe(e),"intent.md");if($v(t)){let s=XU(t),o=s.draft_pr_url,a=s.draft_pr_status;if(o&&a==="draft"){let c=hpe(o);c.ok?(Me(t,"draft_pr_status","ready"),Me(t,"draft_pr_ready_at",En())):(console.error(`[haiku] mark-ready of ${o} failed: ${c.error}`),Me(t,"draft_pr_status","failed"))}}Ke("haiku.intent.completed",{intent:e}),wt(`haiku: complete intent ${e}`);let n=$v(t)?XU(t):{},r=n.studio||"",i=r?wn(n,r):[];if(i.length>0){let s=Ope(e,i);s.success||console.error(`[haiku] finalizeIntentBranches warning for ${e}: ${s.message}`)}KD(e),ci(e),gpe(e)}var VNt=v(()=>{"use strict";yr();B0();Kd();oZ();Ge();vo();u1()});var aNt={};Ar(aNt,{buildElaboratorInstruction:()=>HNt,buildGuardResponse:()=>Zb,buildOutputRequirements:()=>yx,buildRunInstructions:()=>nU,cleanupPreExecuteFeedback:()=>lpt,completeOrReviewIntent:()=>V6,computeUnitWaves:()=>BI,currentWaveNumber:()=>zI,enrichActionWithPreview:()=>Ax,findIncompleteStages:()=>oU,getAwaitGateReviewSession:()=>i_e,getPrepareGateReview:()=>dve,handleOrchestratorTool:()=>I_e,isStagePreExecute:()=>iL,listUnits:()=>Eg,maybeEscalate:()=>jNt,orchestratorToolDefs:()=>C6,resolveIntentStages:()=>wn,resolveStageHats:()=>Es,resolveStageMetadata:()=>Qpe,resolveStageReview:()=>Xpe,resolveStudioFilePath:()=>Ff,resolveStudioStages:()=>Fs,resolveUnitHatsInStudio:()=>Jpe,runNext:()=>Npr,runQualityGates:()=>XAt,setGateReviewHandlers:()=>Eve,summarizeFeedback:()=>FNt,validateCumulativeInputCoverage:()=>ZAt,validateDiscoveryArtifacts:()=>VAt,validateOutputLiveness:()=>JAt,validateStageOutputs:()=>GAt,validateUnitInputs:()=>KAt,validateUnitNaming:()=>WAt,workflowAdvancePhase:()=>sU,workflowAdvanceStage:()=>G6,workflowCompleteStage:()=>wx,workflowGateAsk:()=>GNt,workflowIntentComplete:()=>W6,workflowStartStage:()=>bve,writeReviewFeedbackFiles:()=>x6});function Mpr(e){let t=e.stage||"",n=Array.isArray(e.items)?`n${e.items.length}`:"",r=e.iteration??e.bolt;return`${t}-${n}-${r??""}-${Date.now()}`}function nU(e,t,n,r){let i=okt.get(n.action),s=null;if(i&&(s=i({slug:e,studio:t,action:n,dir:r})),s&&!Cpr.has(n.action)&&!n.prompt_file)try{let{path:d}=Cft({action:n.action,intent:e,stage:n.stage||void 0,content:s,tickHint:Mpr(n)});n.prompt_file=d,n.message=`Read \`${d}\` and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt for this tick.`,s=[`## ${n.action} Prompt (file-based)`,"","The full prompt for this tick is at:","",` ${d}`,"",`Read that file with the Read tool and execute its instructions exactly. The file is the canonical, authoritative ${n.action} prompt \u2014 do not paraphrase, summarize, or skip any of it.`].join(` `)}catch(d){console.error(`[haiku] action prompt-file write failed for ${n.action}/${e}: ${d instanceof Error?d.message:String(d)}. Falling back to inline rendering.`)}let{tell_user:o,next_step:a,...c}=n,u=JSON.stringify(c,null,2),l=[];if(o||a){let d=[`## Announce to User (MANDATORY) `,"**Before doing ANY work**, tell the user what you're about to do:"];o&&d.push(`> ${o}`),a&&d.push(` _${a}_`),d.push(` @@ -1600,19 +1600,19 @@ ${u} ${JSON.stringify(n,null,2)}`),l.join(` -`))}function bve(e){WNt=e.prepare,KNt=e.await}function lve(){return WNt}function r_e(){return KNt}async function k_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=ND(t);if(i)return i;let s=hU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var Npr,Cpr,WNt,KNt,Kd=v(()=>{"use strict";akt();ckt();t_e();Ge();vl();mU();qNt();BNt();ns();P3();x6();VNt();Npr=SIt,Cpr=new Set(["noop","sealed","error"]);WNt=null,KNt=null});function Eve(e){a8.set(e.name,e)}function YNt(){return Array.from(a8.values()).map(e=>({name:e.name,title:e.title,description:e.description,arguments:e.arguments.length>0?e.arguments.map(t=>({name:t.name,description:t.description,required:t.required})):void 0}))}async function ZNt(e,t){let n=a8.get(e);if(!n)throw new rn(yn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new rn(yn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function JNt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=a8.get(n);if(!r)return t;let i=r.arguments.find(s=>s.name===e.argument.name);if(!i?.completer)return t;try{let s=await i.completer(e.argument.value,e.context?.arguments);return{completion:{values:s.slice(0,100),total:s.length,hasMore:s.length>100}}}catch{return t}}var a8,_ve=v(()=>{"use strict";N_();a8=new Map});import{existsSync as XNt,readdirSync as Dpr,readFileSync as Lpr}from"node:fs";import{join as QNt}from"node:path";function $Nt(){let e=0;Eve({name:"haiku:status",title:"H\xB7AI\xB7K\xB7U: Check active work",description:"Check for active H\xB7AI\xB7K\xB7U intents and get your current action. Call this at the start of every session to resume in-progress work.",arguments:[],handler:async()=>({description:"Check for active H\xB7AI\xB7K\xB7U work",messages:[{role:"user",content:{type:"text",text:'Check if there is active H\xB7AI\xB7K\xB7U work in this project.\n\n1. Call `haiku_intent_list` to see all intents and their status\n2. If there is an active intent, call `haiku_run_next { intent: "" }` to get your current action\n3. If no active intents exist, let me know \u2014 I can start one with `haiku:start`\n\nDo this silently \u2014 just check and report what you find.'}}]})}),e++;let t=nn();if(!t)return console.error(`[haiku] Registered ${e} prompt(s) (plugin root not found \u2014 skills not bridged)`),e;let n=QNt(t,"skills");if(!XNt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=Dpr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=QNt(n,i.name,"SKILL.md");if(!XNt(s))continue;let o=Lpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;Eve({name:d,title:`H\xB7AI\xB7K\xB7U: ${u}`,description:l||`Run the H\xB7AI\xB7K\xB7U ${u} workflow`,arguments:[{name:"args",description:"Optional arguments to pass to the skill (e.g., intent slug, unit name)",required:!1}],handler:async f=>{let p=f.args||"",h=p?`${c} +`))}function Eve(e){WNt=e.prepare,KNt=e.await}function dve(){return WNt}function i_e(){return KNt}async function I_e(e,t,n){let r=o=>({content:[{type:"text",text:o}]}),i=CD(t);if(i)return i;let s=gU.get(e);if(s){let o=s.handle(t,n);return o instanceof Promise?await o:o}return r(`Unknown orchestrator tool: ${e}`)}var Npr,Cpr,WNt,KNt,Kd=v(()=>{"use strict";akt();ckt();n_e();Ge();vl();yU();qNt();BNt();ns();C3();O6();VNt();Npr=SIt,Cpr=new Set(["noop","sealed","error"]);WNt=null,KNt=null});function _ve(e){c8.set(e.name,e)}function YNt(){return Array.from(c8.values()).map(e=>({name:e.name,title:e.title,description:e.description,arguments:e.arguments.length>0?e.arguments.map(t=>({name:t.name,description:t.description,required:t.required})):void 0}))}async function ZNt(e,t){let n=c8.get(e);if(!n)throw new rn(yn.InvalidParams,`Unknown prompt: ${e}`);let r=t??{};for(let i of n.arguments)if(i.required&&!(i.name in r))throw new rn(yn.InvalidParams,`Missing required argument: ${i.name} for prompt ${e}`);return n.handler(r)}async function JNt(e){let t={completion:{values:[]}};if(e.ref.type!=="ref/prompt")return t;let n=e.ref.name;if(!n)return t;let r=c8.get(n);if(!r)return t;let i=r.arguments.find(s=>s.name===e.argument.name);if(!i?.completer)return t;try{let s=await i.completer(e.argument.value,e.context?.arguments);return{completion:{values:s.slice(0,100),total:s.length,hasMore:s.length>100}}}catch{return t}}var c8,Tve=v(()=>{"use strict";N_();c8=new Map});import{existsSync as XNt,readdirSync as Dpr,readFileSync as Lpr}from"node:fs";import{join as QNt}from"node:path";function $Nt(){let e=0;_ve({name:"haiku:status",title:"H\xB7AI\xB7K\xB7U: Check active work",description:"Check for active H\xB7AI\xB7K\xB7U intents and get your current action. Call this at the start of every session to resume in-progress work.",arguments:[],handler:async()=>({description:"Check for active H\xB7AI\xB7K\xB7U work",messages:[{role:"user",content:{type:"text",text:'Check if there is active H\xB7AI\xB7K\xB7U work in this project.\n\n1. Call `haiku_intent_list` to see all intents and their status\n2. If there is an active intent, call `haiku_run_next { intent: "" }` to get your current action\n3. If no active intents exist, let me know \u2014 I can start one with `haiku:start`\n\nDo this silently \u2014 just check and report what you find.'}}]})}),e++;let t=nn();if(!t)return console.error(`[haiku] Registered ${e} prompt(s) (plugin root not found \u2014 skills not bridged)`),e;let n=QNt(t,"skills");if(!XNt(n))return console.error(`[haiku] Registered ${e} prompt(s) (skills dir not found \u2014 skills not bridged)`),e;let r=Dpr(n,{withFileTypes:!0});for(let i of r){if(!i.isDirectory())continue;let s=QNt(n,i.name,"SKILL.md");if(!XNt(s))continue;let o=Lpr(s,"utf8"),{data:a,body:c}=re(o),u=a.name||i.name,l=a.description||"",d=`haiku:${u}`;_ve({name:d,title:`H\xB7AI\xB7K\xB7U: ${u}`,description:l||`Run the H\xB7AI\xB7K\xB7U ${u} workflow`,arguments:[{name:"args",description:"Optional arguments to pass to the skill (e.g., intent slug, unit name)",required:!1}],handler:async f=>{let p=f.args||"",h=p?`${c} --- -**User arguments:** ${p}`:c;return{description:`H\xB7AI\xB7K\xB7U ${u} workflow`,messages:[{role:"user",content:{type:"text",text:h}}]}}}),e++}return e>0&&console.error(`[haiku] Registered ${e} prompt(s) as MCP prompts (harness lacks native skill support)`),e}var eCt=v(()=>{"use strict";Ci();Ge();_ve()});var Fpr={};async function Upr(){qne();let e=new vV;await eR.connect(e);let t=oh()?"":` (harness: ${Mi().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function rCt(e){if(nCt)return;nCt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${tCt}ms \u2014 forcing exit`),process.exit(1)},tCt);t.unref();try{await eR.close(),await ORt(),await Ef()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var eR,tCt,nCt,iCt=v(()=>{"use strict";I8e();N8e();N_();Ci();T6();MRt();sh();_f();Kd();_ve();eCt();d5();ji();uo();Ge();eR=new _V({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});oh()||Mi().mcpPrompts&&$Nt();eR.setRequestHandler(oie,async()=>({prompts:YNt()}));eR.setRequestHandler(aie,async e=>ZNt(e.params.name,e.params.arguments));eR.setRequestHandler(mie,async e=>JNt(e.params));eR.setRequestHandler(fie,async()=>{let e=Mi(),n=[...N6,...ySe,{name:"ask_user_visual_question",description:"Ask the user one or more questions via a rich HTML page in the browser. Renders questions with selectable options (radio or checkbox) and an optional 'Other' field. ALWAYS provide concrete options[] for each question \u2014 never leave the user to type freeform when you know the alternatives. Use this instead of AskUserQuestion when: (1) questions involve visual artifacts or image_paths, (2) you need rich markdown context above the questions, or (3) you have multiple related questions that benefit from being presented together (each as a separate entry in the questions[] array). For unrelated questions, make separate tool calls instead of bundling them.",inputSchema:{type:"object",properties:{questions:{type:"array",items:{type:"object",properties:{question:{type:"string",description:"The question text"},header:{type:"string",description:"Optional header/subtitle"},options:{type:"array",items:{type:"string"},description:"Answer options"},multiSelect:{type:"boolean",description:"Allow multiple selections"}},required:["question","options"]},description:"Questions to present to the user"},context:{type:"string",description:"Optional markdown context above questions"},title:{type:"string",description:"Optional page title"},image_paths:{type:"array",items:{type:"string"},description:"Optional local image file paths to display alongside questions"}},required:["questions"]}},{name:"pick_design_direction",description:"Open a browser-based visual picker for choosing a design direction. Presents archetype cards with preview HTML \u2014 the user picks one, marks some to keep and asks for new variants for the rest, or rejects them all and asks for a fresh batch. Visual annotations (pins) can be attached to the selected direction for pointed feedback. Archetypes can be provided inline or as a path to a JSON file on disk.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The intent slug this direction applies to"},context:{type:"string",description:"Optional markdown preamble shown above the archetype cards (what this direction governs, what's already decided, the tradeoffs each option leans into)"},archetypes:{type:"array",items:{type:"object",properties:{name:{type:"string",description:"Archetype name"},description:{type:"string",description:"Brief description"},preview_html:{type:"string",description:"HTML preview snippet"}},required:["name","description","preview_html"]},description:"Inline design archetypes to choose from"},archetypes_file:{type:"string",description:"Path to a JSON file containing the archetypes array (alternative to inline archetypes)"},title:{type:"string",description:"Optional page title"}},required:["intent_slug"]}},{name:"haiku_await_visual_answer",description:"Resume entry point for a pending visual-question session. Under v4 the canonical flow blocks INSIDE ask_user_visual_question \u2014 the engine creates the session, opens the browser, and waits for the user's answer all in one tool call. Use haiku_await_visual_answer only when the original blocking call timed out, the MCP host disconnected, or the agent restart lost the in-memory wait. Returns the same answer + screenshot annotations as the canonical path.",inputSchema:A9},{name:"haiku_await_design_direction",description:"Resume entry point for a pending design-direction session. Under v4 the canonical flow blocks INSIDE pick_design_direction \u2014 the engine creates the session, opens the browser, and waits for the user's submission (select / regenerate / generate / upload) all in one tool call. Use haiku_await_design_direction only when the original blocking call timed out or was lost. Returns the same announcement + next-step shape.",inputSchema:w9},{name:"haiku_report",description:"Submit a bug report or feedback to the H\xB7AI\xB7K\xB7U team via Sentry. Use this when a user wants to report an issue, suggest an improvement, or share feedback.",inputSchema:{type:"object",properties:{message:{type:"string",description:"The feedback message or bug report"},contact_email:{type:"string",description:"Optional contact email for follow-up"},name:{type:"string",description:"Optional name of the person submitting feedback"}},required:["message"]}}];if(!oh()){let r=new Set(["ask_user_visual_question","haiku_await_visual_answer","pick_design_direction","haiku_await_design_direction"]);n=n.filter(i=>!r.has(i.name))}return e.maxTools!==null&&n.length>e.maxTools&&(console.error(`[haiku] Harness tool limit (${e.maxTools}) exceeded \u2014 exposing ${e.maxTools} of ${n.length} tools`),n=n.slice(0,e.maxTools)),{tools:n}});eR.setRequestHandler(lC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=CRt(r);if(!i.ok)return{content:[{type:"text",text:`Haiku plugin dir was wiped from under the running MCP server and self-repair failed (${i.result?`${i.result.method}${i.result.reason?`:${i.result.reason}`:""}${i.result.error?` \u2014 ${i.result.error}`:""}`:"no-result"}). Run \`/plugin install haiku@haiku\` (or \`/plugin update haiku\`) to restore it manually.`}],isError:!0};let s;try{s=await v0t(e,t?.signal)}catch(o){if(t?.signal?.aborted)throw o;let a=e.params?.name??"",u=(e.params?.arguments??{})._session_context;try{let{appendFileSync:l}=await import("node:fs"),d=new Date().toISOString(),f=o instanceof Error?o.stack||o.message:String(o);l("/tmp/haiku-mcp-crashes.log",` +**User arguments:** ${p}`:c;return{description:`H\xB7AI\xB7K\xB7U ${u} workflow`,messages:[{role:"user",content:{type:"text",text:h}}]}}}),e++}return e>0&&console.error(`[haiku] Registered ${e} prompt(s) as MCP prompts (harness lacks native skill support)`),e}var eCt=v(()=>{"use strict";Ci();Ge();Tve()});var Fpr={};async function Upr(){Bne();let e=new AV;await eR.connect(e);let t=oh()?"":` (harness: ${Mi().displayName})`;console.error(`H\xB7AI\xB7K\xB7U Review MCP server running on stdio${t}`)}async function rCt(e){if(nCt)return;nCt=!0,console.error(`Shutting down (${e})...`);let t=setTimeout(()=>{console.error(`Graceful shutdown exceeded ${tCt}ms \u2014 forcing exit`),process.exit(1)},tCt);t.unref();try{await eR.close(),await ORt(),await Ef()}catch(n){console.error(`Error during graceful shutdown: ${n instanceof Error?n.message:String(n)}`)}finally{clearTimeout(t),process.exit(0)}}var eR,tCt,nCt,iCt=v(()=>{"use strict";x8e();C8e();N_();Ci();v6();MRt();sh();_f();Kd();Tve();eCt();f5();ji();uo();Ge();eR=new vV({name:"haiku-review",version:"0.1.0"},{capabilities:{tools:{},prompts:{listChanged:!0},completions:{}}});oh()||Mi().mcpPrompts&&$Nt();eR.setRequestHandler(aie,async()=>({prompts:YNt()}));eR.setRequestHandler(cie,async e=>ZNt(e.params.name,e.params.arguments));eR.setRequestHandler(gie,async e=>JNt(e.params));eR.setRequestHandler(pie,async()=>{let e=Mi(),n=[...C6,...SSe,{name:"ask_user_visual_question",description:"Ask the user one or more questions via a rich HTML page in the browser. Renders questions with selectable options (radio or checkbox) and an optional 'Other' field. ALWAYS provide concrete options[] for each question \u2014 never leave the user to type freeform when you know the alternatives. Use this instead of AskUserQuestion when: (1) questions involve visual artifacts or image_paths, (2) you need rich markdown context above the questions, or (3) you have multiple related questions that benefit from being presented together (each as a separate entry in the questions[] array). For unrelated questions, make separate tool calls instead of bundling them.",inputSchema:{type:"object",properties:{questions:{type:"array",items:{type:"object",properties:{question:{type:"string",description:"The question text"},header:{type:"string",description:"Optional header/subtitle"},options:{type:"array",items:{type:"string"},description:"Answer options"},multiSelect:{type:"boolean",description:"Allow multiple selections"}},required:["question","options"]},description:"Questions to present to the user"},context:{type:"string",description:"Optional markdown context above questions"},title:{type:"string",description:"Optional page title"},image_paths:{type:"array",items:{type:"string"},description:"Optional local image file paths to display alongside questions"}},required:["questions"]}},{name:"pick_design_direction",description:"Open a browser-based visual picker for choosing a design direction. Presents archetype cards with preview HTML \u2014 the user picks one, marks some to keep and asks for new variants for the rest, or rejects them all and asks for a fresh batch. Visual annotations (pins) can be attached to the selected direction for pointed feedback. Archetypes can be provided inline or as a path to a JSON file on disk.",inputSchema:{type:"object",properties:{intent_slug:{type:"string",description:"The intent slug this direction applies to"},context:{type:"string",description:"Optional markdown preamble shown above the archetype cards (what this direction governs, what's already decided, the tradeoffs each option leans into)"},archetypes:{type:"array",items:{type:"object",properties:{name:{type:"string",description:"Archetype name"},description:{type:"string",description:"Brief description"},preview_html:{type:"string",description:"HTML preview snippet"}},required:["name","description","preview_html"]},description:"Inline design archetypes to choose from"},archetypes_file:{type:"string",description:"Path to a JSON file containing the archetypes array (alternative to inline archetypes)"},title:{type:"string",description:"Optional page title"}},required:["intent_slug"]}},{name:"haiku_await_visual_answer",description:"Resume entry point for a pending visual-question session. Under v4 the canonical flow blocks INSIDE ask_user_visual_question \u2014 the engine creates the session, opens the browser, and waits for the user's answer all in one tool call. Use haiku_await_visual_answer only when the original blocking call timed out, the MCP host disconnected, or the agent restart lost the in-memory wait. Returns the same answer + screenshot annotations as the canonical path.",inputSchema:k9},{name:"haiku_await_design_direction",description:"Resume entry point for a pending design-direction session. Under v4 the canonical flow blocks INSIDE pick_design_direction \u2014 the engine creates the session, opens the browser, and waits for the user's submission (select / regenerate / generate / upload) all in one tool call. Use haiku_await_design_direction only when the original blocking call timed out or was lost. Returns the same announcement + next-step shape.",inputSchema:I9},{name:"haiku_report",description:"Submit a bug report or feedback to the H\xB7AI\xB7K\xB7U team via Sentry. Use this when a user wants to report an issue, suggest an improvement, or share feedback.",inputSchema:{type:"object",properties:{message:{type:"string",description:"The feedback message or bug report"},contact_email:{type:"string",description:"Optional contact email for follow-up"},name:{type:"string",description:"Optional name of the person submitting feedback"}},required:["message"]}}];if(!oh()){let r=new Set(["ask_user_visual_question","haiku_await_visual_answer","pick_design_direction","haiku_await_design_direction"]);n=n.filter(i=>!r.has(i.name))}return e.maxTools!==null&&n.length>e.maxTools&&(console.error(`[haiku] Harness tool limit (${e.maxTools}) exceeded \u2014 exposing ${e.maxTools} of ${n.length} tools`),n=n.slice(0,e.maxTools)),{tools:n}});eR.setRequestHandler(dC,async(e,t)=>{let r=(e.params?.arguments??{})._session_context,i=CRt(r);if(!i.ok)return{content:[{type:"text",text:`Haiku plugin dir was wiped from under the running MCP server and self-repair failed (${i.result?`${i.result.method}${i.result.reason?`:${i.result.reason}`:""}${i.result.error?` \u2014 ${i.result.error}`:""}`:"no-result"}). Run \`/plugin install haiku@haiku\` (or \`/plugin update haiku\`) to restore it manually.`}],isError:!0};let s;try{s=await v0t(e,t?.signal)}catch(o){if(t?.signal?.aborted)throw o;let a=e.params?.name??"",u=(e.params?.arguments??{})._session_context;try{let{appendFileSync:l}=await import("node:fs"),d=new Date().toISOString(),f=o instanceof Error?o.stack||o.message:String(o);l("/tmp/haiku-mcp-crashes.log",` --- ${d} tool=${a} --- ${f} -`)}catch{}ms(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>(sh(),OKe));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});bve({prepare:R0t,await:A0t});tCt=1e4,nCt=!1;process.on("SIGINT",()=>{rCt("SIGINT")});process.on("SIGTERM",()=>{rCt("SIGTERM")});Upr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var sy=v(()=>{"use strict"});import{execSync as jpr}from"node:child_process";import{existsSync as JU,mkdirSync as uLi,readdirSync as Hpr,readFileSync as sCt,statSync as lLi,writeFileSync as dLi}from"node:fs";import{dirname as pLi,join as c8}from"node:path";function Tve(e,t){if(!JU(e))return"";let r=sCt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function oCt(e){if(!JU(e))return{};try{return JSON.parse(sCt(e,"utf8"))}catch{return{}}}function Qx(){return JU(c8(u8(),".haiku"))}function $x(){let e=u8(),t=c8(e,".haiku","intents");if(!JU(t))return null;let n=Hpr(t);for(let r of n){let i=c8(t,r,"intent.md");if(!JU(i))continue;if(Tve(i,"status")==="active")return c8(t,r)}return null}function u8(){try{return jpr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var tR=v(()=>{"use strict"});import{appendFileSync as aCt,existsSync as qpr,readFileSync as Bpr}from"node:fs";import{join as vve}from"node:path";function zpr(e){let t=vve(e,"intent.md"),n=Tve(t,"active_stage");if(!n)return null;let r=vve(e,"stages",n,"state.json"),i=oCt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function Gpr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=$x();if(!i||zpr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=vve("/tmp",`context-monitor-${o}`),c="";qpr(a)&&(c=Bpr(a,"utf8")),s<=25?c.includes("25")||(aCt(a,`25 +`)}catch{}ms(o,{context:"mcp-tool-handler",tool_name:a},u);try{let{flush:l}=await Promise.resolve().then(()=>(sh(),PKe));await l(1e3)}catch{}throw console.error(`[haiku] Tool handler '${a}' threw:`,o instanceof Error?o.stack||o.message:String(o)),o}return s});Eve({prepare:R0t,await:A0t});tCt=1e4,nCt=!1;process.on("SIGINT",()=>{rCt("SIGINT")});process.on("SIGTERM",()=>{rCt("SIGTERM")});Upr().catch(e=>{ms(e,{context:"mcp-server-fatal"}),console.error("Fatal error:",e),process.exit(1)})});var sy=v(()=>{"use strict"});import{execSync as jpr}from"node:child_process";import{existsSync as QU,mkdirSync as uLi,readdirSync as Hpr,readFileSync as sCt,statSync as lLi,writeFileSync as dLi}from"node:fs";import{dirname as pLi,join as u8}from"node:path";function vve(e,t){if(!QU(e))return"";let r=sCt(e,"utf8").match(new RegExp(`^${t}:\\s*(.+)$`,"m"));return r?r[1].trim().replace(/^["']|["']$/g,""):""}function oCt(e){if(!QU(e))return{};try{return JSON.parse(sCt(e,"utf8"))}catch{return{}}}function $x(){return QU(u8(l8(),".haiku"))}function eO(){let e=l8(),t=u8(e,".haiku","intents");if(!QU(t))return null;let n=Hpr(t);for(let r of n){let i=u8(t,r,"intent.md");if(!QU(i))continue;if(vve(i,"status")==="active")return u8(t,r)}return null}function l8(){try{return jpr("git rev-parse --show-toplevel",{encoding:"utf8",stdio:["ignore","pipe","pipe"]}).trim()}catch{return process.cwd()}}var tR=v(()=>{"use strict"});import{appendFileSync as aCt,existsSync as qpr,readFileSync as Bpr}from"node:fs";import{join as Rve}from"node:path";function zpr(e){let t=Rve(e,"intent.md"),n=vve(t,"active_stage");if(!n)return null;let r=Rve(e,"stages",n,"state.json"),i=oCt(r);return(typeof i.phase=="string"?i.phase:"")||null}async function Gpr(e,t){let n=Number(e.total_tokens??0),r=Number(e.max_tokens??0);if(n===0||r===0)return;let i=eO();if(!i||zpr(i)!=="elaborate")return;let s=Math.floor((r-n)*100/r),o=process.env.CLAUDE_SESSION_ID??"unknown",a=Rve("/tmp",`context-monitor-${o}`),c="";qpr(a)&&(c=Bpr(a,"utf8")),s<=25?c.includes("25")||(aCt(a,`25 `),process.stderr.write("\u26A0\uFE0F CONTEXT LOW (\u226425% remaining) \u2014 elaboration in progress\n\nYou're partway through elaboration with a tight context window. Run `/clear` to start with a fresh session \u2014 elaboration state is already on disk (`intent.md`, unit files, stage `state.json`), so the next tick will pick up exactly where you left off.\n"),process.exit(2)):s<=35&&(c.includes("35")||(aCt(a,`35 `),process.stderr.write(`\u26A0\uFE0F CONTEXT NOTE (\u226435% remaining) \u2014 elaboration in progress Context is getting tight while elaborating. Consider \`/clear\` to give elaboration a fresh window \u2014 your unit/intent files on disk are the source of truth, so the next tick resumes cleanly. -`),process.exit(2)))}var cCt,uCt=v(()=>{"use strict";sy();tR();cCt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await Gpr(e,t.pluginRoot)}}});function Vpr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return Rve.some(r=>n.includes(r))}if(typeof e!="object")return!1;let t=e;if(t.isError!==!0)return!1;if(Array.isArray(t.content)){for(let n of t.content)if(n&&typeof n=="object"){let r=n.text;if(typeof r=="string"){let i=r.toLowerCase();if(Rve.some(s=>i.includes(s)))return!0}}}for(let n of["error","message"]){let r=t[n];if(typeof r=="string"){let i=r.toLowerCase();if(Rve.some(s=>i.includes(s)))return!0}}return!1}var Rve,lCt,dCt=v(()=>{"use strict";sy();tR();Rve=["file has not been read yet","file has not been read in this session","read it first before writing to it"];lCt={name:"edit-auto-read-hint",description:"PostToolUse: when Edit/MultiEdit fails with 'file not read yet', surface a Read-first hint so the agent recovers in one turn instead of retrying blindly.",async handle(e,t){if(!Qx())return;let n=e??{};if(!Vpr(n.tool_response))return;let i=n.tool_input?.file_path??"";process.stderr.write(`Read \`${i}\` first, then retry the Edit. +`),process.exit(2)))}var cCt,uCt=v(()=>{"use strict";sy();tR();cCt={name:"context-monitor",description:"PostToolUse: while elaborating in an active intent, suggest /clear at 35% / 25% remaining context budget.",async handle(e,t){await Gpr(e,t.pluginRoot)}}});function Vpr(e){if(e==null)return!1;if(typeof e=="string"){let n=e.toLowerCase();return Ave.some(r=>n.includes(r))}if(typeof e!="object")return!1;let t=e;if(t.isError!==!0)return!1;if(Array.isArray(t.content)){for(let n of t.content)if(n&&typeof n=="object"){let r=n.text;if(typeof r=="string"){let i=r.toLowerCase();if(Ave.some(s=>i.includes(s)))return!0}}}for(let n of["error","message"]){let r=t[n];if(typeof r=="string"){let i=r.toLowerCase();if(Ave.some(s=>i.includes(s)))return!0}}return!1}var Ave,lCt,dCt=v(()=>{"use strict";sy();tR();Ave=["file has not been read yet","file has not been read in this session","read it first before writing to it"];lCt={name:"edit-auto-read-hint",description:"PostToolUse: when Edit/MultiEdit fails with 'file not read yet', surface a Read-first hint so the agent recovers in one turn instead of retrying blindly.",async handle(e,t){if(!$x())return;let n=e??{};if(!Vpr(n.tool_response))return;let i=n.tool_input?.file_path??"";process.stderr.write(`Read \`${i}\` first, then retry the Edit. `),process.exit(2)}}});import{execFileSync as Wpr}from"node:child_process";import{existsSync as Kpr}from"node:fs";import{join as fCt,resolve as Ypr}from"node:path";function Zpr(e){process.stderr.write(e)}function Jpr(e){try{let t=Wpr("git",["rev-parse","--git-dir"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t)return!1;let n=t.startsWith("/")?t:fCt(e,t);for(let r of["MERGE_HEAD","CHERRY_PICK_HEAD","REVERT_HEAD","rebase-merge","rebase-apply"])if(Kpr(fCt(n,r)))return!0;return!1}catch{return!1}}function Xpr(e){let t=e.match(/\.haiku\/intents\/([^/]+)\/stages\/([^/]+)\/units\/([^/]+)\.md$/);if(t)return{kind:"unit",intent:t[1],stage:t[2],name:t[3]};let n=e.match(/\.haiku\/intents\/([^/]+)\/(?:stages\/([^/]+)\/)?feedback\/([^/]+)\.md$/);return n?{kind:"feedback",intent:n[1],stage:n[2]||void 0,name:n[3]}:/\.haiku\/intents\/[^/]+\/intent\.md$/.test(e)?{kind:"intent"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/state\.json$/.test(e)?{kind:"stage_state"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/BRIEF\.md$/.test(e)?{kind:"brief"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/\.baseline-ack$/.test(e)?{kind:"baseline_ack"}:/\.haiku\/intents\/[^/]+\/stages\/[^/]+\/baseline-thrash\.json$/.test(e)?{kind:"baseline_thrash"}:/(?:^|\/)\.haiku\/settings\.yml$/.test(e)?{kind:"settings"}:{kind:null}}function Qpr(e,t){let n=e==="Read"?"read":e==="Write"?"create or overwrite":"edit",r=t.intent??"",i=t.stage??"",s=t.name??"";if(t.kind==="unit"){let o=n==="read"?`haiku_unit_read { intent: "${r}", stage: "${i}", unit: "${s}" }`:n==="create or overwrite"?`haiku_unit_write { intent: "${r}", stage: "${i}", unit: "${s}", body: "...", frontmatter: { ... } }`:`haiku_unit_set { intent: "${r}", stage: "${i}", unit: "${s}", field: "...", value: "..." }`;return`BLOCKED: Cannot ${n} unit file '${s}.md' via generic ${e}. Unit files are workflow-managed \u2014 use the MCP tool instead: ${o} Generic file access bypasses lifecycle enforcement (pending \u2192 active \u2192 completed), frontmatter validation (DAG, schema, cross-references), and integrity sealing.`}if(t.kind==="feedback"){let o=t.stage?`stage: "${i}", `:"",a=n==="read"?`haiku_feedback_read { intent: "${r}", ${o}feedback_id: "${s}" }`:n==="create or overwrite"?`haiku_feedback_write { intent: "${r}", ${o}feedback_id: "${s}", body: "..." } @@ -1620,9 +1620,9 @@ Generic file access bypasses lifecycle enforcement (pending \u2192 active \u2192 ${a} Generic file access bypasses fix-loop lifecycle and worktree isolation.`}return t.kind==="intent"?`BLOCKED: Cannot ${n} intent.md via generic ${e}. Intent files are workflow-managed \u2014 use haiku_intent_get to read fields, haiku_run_next to drive the lifecycle, or call /haiku:haiku-repair if state is genuinely corrupted. Direct edits skip the integrity checksum and the workflow engine's invariants.`:t.kind==="stage_state"?`BLOCKED: Cannot ${n} stage state.json via generic ${e}. Stage state is workflow engine-internal \u2014 every legitimate write happens via haiku_run_next or a dedicated MCP tool. Hand-editing breaks the integrity checksum and the forward-only lifecycle invariants.`:t.kind==="brief"?`BLOCKED: Cannot ${n} BRIEF.md. The stage brief is USER-FACING only \u2014 it's written by the briefer subagent for the human reviewing the plan at the gate, and you should never read it. Stay focused on your own mandate (your unit spec, your hat's job); the brief is not an input to your work.`:t.kind==="baseline_ack"?`BLOCKED: Cannot ${n} .baseline-ack via generic ${e}. This is the V-11 operator-only baseline-corrupt acknowledgement marker. Only /haiku:haiku-repair --confirm-baseline-reset --diff-shown --confirm-diff-hash (operator-driven) may write it; the agent has no path here. Reads are also blocked because the diff hash leaking to an attacker chain would let them forge a valid-looking ack.`:t.kind==="baseline_thrash"?`BLOCKED: Cannot ${n} baseline-thrash.json via generic ${e}. This is the V-11 baseline-corruption circuit-breaker counter \u2014 workflow-engine-managed. Letting the agent reset it would let an attacker zero out the thrash detector right before each corruption attempt.`:t.kind==="settings"?`BLOCKED: Cannot ${n} .haiku/settings.yml via generic ${e}. Settings are schema-managed against plugin/schemas/settings.schema.json \u2014 use the MCP tool instead: ${n==="read"?'haiku_settings_get { field: "..." }':'haiku_settings_set { field: "...", value: ... }'} -Generic file access skips schema validation and can drop settings into a shape the engine refuses to load.`:""}async function $pr(e){if(!Qx())return;let t=e.tool_name||"";if(t!=="Read"&&t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let r=(e.tool_input||{}).file_path||"";if(!r)return;let i=Ypr(process.cwd(),r),s=Xpr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||Jpr(process.cwd())||(Zpr(Qpr(t,s)),process.exit(2)))}var pCt,hCt=v(()=>{"use strict";tR();sy();pCt={name:"guard-workflow-fields",description:"PreToolUse Read/Write/Edit/MultiEdit: enforce workflow-ownership boundary on .haiku state files (units, feedback, intent.md, stage state.json) \u2014 agents must use the corresponding MCP tools.",async handle(e,t){await $pr(e)}}});import{join as mCt}from"node:path";function ehr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function thr(){let e={},t=["CLAUDE_SESSION_ID","CLAUDE_CODE_IS_COWORK","CLAUDE_MODEL","CLAUDE_CODE_VERSION","CLAUDE_CODE_ENTRYPOINT","USER"];for(let n of t){let r=process.env[n];r&&(e[n]=r)}return e.platform=process.platform,e.node_version=process.version,e.cwd=process.cwd(),e}async function nhr(e){if(!(e.tool_name||"").startsWith("haiku_"))return;let n={},r=e.session_id||process.env.CLAUDE_SESSION_ID;if(r){let i=process.env.CLAUDE_CONFIG_DIR||mCt(process.env.HOME||"",".claude"),s=ehr(process.cwd());n.state_file=mCt(i,"projects",s,r,"haiku.json")}n._session_context=thr(),process.stdout.write(JSON.stringify(n))}var gCt,yCt=v(()=>{"use strict";sy();gCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await nhr(e)}}});async function ihr(e,t){if(!Qx())return;let n=e.tool_name;if(n!=="Write"&&n!=="Edit")return;let r=e.tool_input||{},i=r.file_path||"";if(!i.includes("/.haiku/"))return;let s=r.content||r.new_string||"";rhr.test(s)&&process.stdout.write(`\u26A0\uFE0F PROMPT GUARD: Potential injection pattern detected in spec file write to ${i} +Generic file access skips schema validation and can drop settings into a shape the engine refuses to load.`:""}async function $pr(e){if(!$x())return;let t=e.tool_name||"";if(t!=="Read"&&t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let r=(e.tool_input||{}).file_path||"";if(!r)return;let i=Ypr(process.cwd(),r),s=Xpr(i);s.kind!==null&&(s.kind==="brief"&&t!=="Read"||Jpr(process.cwd())||(Zpr(Qpr(t,s)),process.exit(2)))}var pCt,hCt=v(()=>{"use strict";tR();sy();pCt={name:"guard-workflow-fields",description:"PreToolUse Read/Write/Edit/MultiEdit: enforce workflow-ownership boundary on .haiku state files (units, feedback, intent.md, stage state.json) \u2014 agents must use the corresponding MCP tools.",async handle(e,t){await $pr(e)}}});import{join as mCt}from"node:path";function ehr(e){return e.replace(/^\//,"-").replace(/[/.]/g,"-")}function thr(){let e={},t=["CLAUDE_SESSION_ID","CLAUDE_CODE_IS_COWORK","CLAUDE_MODEL","CLAUDE_CODE_VERSION","CLAUDE_CODE_ENTRYPOINT","USER"];for(let n of t){let r=process.env[n];r&&(e[n]=r)}return e.platform=process.platform,e.node_version=process.version,e.cwd=process.cwd(),e}async function nhr(e){if(!(e.tool_name||"").startsWith("haiku_"))return;let n={},r=e.session_id||process.env.CLAUDE_SESSION_ID;if(r){let i=process.env.CLAUDE_CONFIG_DIR||mCt(process.env.HOME||"",".claude"),s=ehr(process.cwd());n.state_file=mCt(i,"projects",s,r,"haiku.json")}n._session_context=thr(),process.stdout.write(JSON.stringify(n))}var gCt,yCt=v(()=>{"use strict";sy();gCt={name:"inject-state-file",description:"PreToolUse: inject state_file path + _session_context into haiku_* tool calls.",async handle(e,t){await nhr(e)}}});async function ihr(e,t){if(!$x())return;let n=e.tool_name;if(n!=="Write"&&n!=="Edit")return;let r=e.tool_input||{},i=r.file_path||"";if(!i.includes("/.haiku/"))return;let s=r.content||r.new_string||"";rhr.test(s)&&process.stdout.write(`\u26A0\uFE0F PROMPT GUARD: Potential injection pattern detected in spec file write to ${i} Review the content before proceeding. -`)}var rhr,SCt,bCt=v(()=>{"use strict";sy();tR();rhr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;SCt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await ihr(e,t.pluginRoot)}}});import{existsSync as shr}from"node:fs";import{join as ohr}from"node:path";function ahr(){let e=process.env.HAIKU_REDIRECT_PLAN_MODE;if(!e)return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}async function chr(e,t){if(e.tool_name!=="EnterPlanMode"||!ahr()||!oh()||$x())return;let n=u8();if(!shr(ohr(n,".haiku")))return;let r=jN("start"),i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`H\xB7AI\xB7K\xB7U: Use ${r} instead of plan mode. +`)}var rhr,SCt,bCt=v(()=>{"use strict";sy();tR();rhr=/ignore previous|disregard|override instructions|you are now|system prompt||<\/system>/i;SCt={name:"prompt-guard",description:"PreToolUse Write/Edit: advisory scan for prompt injection in haiku spec writes.",async handle(e,t){await ihr(e,t.pluginRoot)}}});import{existsSync as shr}from"node:fs";import{join as ohr}from"node:path";function ahr(){let e=process.env.HAIKU_REDIRECT_PLAN_MODE;if(!e)return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"||t==="on"}async function chr(e,t){if(e.tool_name!=="EnterPlanMode"||!ahr()||!oh()||eO())return;let n=l8();if(!shr(ohr(n,".haiku")))return;let r=HN("start"),i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`H\xB7AI\xB7K\xB7U: Use ${r} instead of plan mode. The H\xB7AI\xB7K\xB7U plugin replaces Claude Code's built-in plan mode with a more comprehensive workflow: @@ -1634,9 +1634,9 @@ The H\xB7AI\xB7K\xB7U plugin replaces Claude Code's built-in plan mode with a mo **To start:** Run \`${r}\` with a description of what you want to build. -(To disable this redirect, unset \`HAIKU_REDIRECT_PLAN_MODE\` in your environment.)`}};process.stdout.write(JSON.stringify(i))}var ECt,_Ct=v(()=>{"use strict";_f();sy();tR();ECt={name:"redirect-plan-mode",description:"PreToolUse: when HAIKU_REDIRECT_PLAN_MODE is set and no intent is active, intercept EnterPlanMode (Claude Code) and redirect to /haiku:haiku-start.",async handle(e,t){await chr(e,t.pluginRoot)}}});import{resolve as uhr}from"node:path";async function lhr(e){if(!$x())return;let t=e.tool_name||"";if(t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let n=e.tool_response??{};if(n.error||n.is_error===!0)return;let i=(e.tool_input||{}).file_path||"";i&&await g5(uhr(process.cwd(),i))}var TCt,vCt=v(()=>{"use strict";H_e();sy();tR();TCt={name:"stamp-agent-write",description:"PostToolUse Write/Edit/MultiEdit: append an `agent_write` action-log entry when the agent writes inside an intent's tracked drift surface, so the next drift-gate tick attributes the change to the agent and updates the baseline silently.",async handle(e,t){try{await lhr(e)}catch{}}}});import{existsSync as RCt,readdirSync as dhr}from"node:fs";import{join as Ave}from"node:path";function fhr(){let e=Ave(process.cwd(),".haiku","intents");if(!RCt(e))return null;let t=dhr(e).filter(n=>RCt(Ave(e,n,"intent.md")));return t.length===1?Ave(e,t[0]):null}async function phr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!fhr())return;let s=(e.tool_input||{}).file_path||"";s.includes("/.haiku/")||process.stdout.write(`\u26A0\uFE0F WORKFLOW GUARD: Editing ${s} \u2014 ensure this is within an active hat's scope. -`)}var ACt,wCt=v(()=>{"use strict";sy();ACt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await phr(e,t.pluginRoot)}}});var ICt={};Ar(ICt,{__HOOK_REGISTRY:()=>bhr,runHook:()=>Shr});import{readFileSync as hhr}from"node:fs";function yhr(){try{return hhr(0,"utf8")}catch{return""}}async function Shr(e,t){if(ghr.has(e))return;let n=mhr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=yhr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),IKe)),o=s();await n.handle(i,{pluginRoot:o})}var kCt,mhr,ghr,bhr,xCt=v(()=>{"use strict";uCt();dCt();hCt();yCt();bCt();_Ct();vCt();wCt();kCt=[cCt,lCt,pCt,gCt,SCt,ECt,TCt,ACt],mhr=new Map(kCt.map(e=>[e.name,e])),ghr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);bhr=kCt});var NCt={};Ar(NCt,{runMigrate:()=>Rhr});import{execSync as Ehr}from"node:child_process";import{cpSync as XU,existsSync as oy,mkdirSync as eO,readdirSync as OCt,readFileSync as _hr,writeFileSync as tO}from"node:fs";import{basename as wve,join as xn}from"node:path";function PCt(e){let t=_hr(e,"utf8"),n=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!n)return{data:{},body:t};let r={};for(let i of n[1].split(` -`)){let s=i.match(/^([\w][\w-]*):\s*(.*)$/);if(s){let[,o,a]=s;a==="null"?r[o]=null:a==="true"?r[o]=!0:a==="false"?r[o]=!1:/^-?\d+$/.test(a)?r[o]=Number.parseInt(a,10):a.startsWith("[")&&a.endsWith("]")?r[o]=a.slice(1,-1).split(",").map(c=>c.trim().replace(/^["']|["']$/g,"")).filter(Boolean):r[o]=a.replace(/^["']|["']$/g,"")}}return{data:r,body:n[2].trim()}}function Thr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function kve(e){try{let{execSync:t}=K("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function vhr(e){try{let{execSync:t}=K("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function Rhr(e){let t=new Set,n=[];for(let _ of e)_.startsWith("--")?t.add(_):n.push(_);let i=!t.has("--apply")||t.has("--dry-run"),s=t.has("--all"),o=t.has("--allow-dirty"),a=t.has("--force"),c=process.cwd(),u=xn(c,".ai-dlc"),l=xn(c,".haiku","intents");if(!oy(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=OCt(u).filter(_=>{let T=xn(u,_);return oy(xn(T,"intent.md"))});if(d.length===0){console.log("No intents found in .ai-dlc/. Nothing to migrate.");return}if(n.length===0&&!s){let _=d.map(T=>` ${T}`).join(` +(To disable this redirect, unset \`HAIKU_REDIRECT_PLAN_MODE\` in your environment.)`}};process.stdout.write(JSON.stringify(i))}var ECt,_Ct=v(()=>{"use strict";_f();sy();tR();ECt={name:"redirect-plan-mode",description:"PreToolUse: when HAIKU_REDIRECT_PLAN_MODE is set and no intent is active, intercept EnterPlanMode (Claude Code) and redirect to /haiku:haiku-start.",async handle(e,t){await chr(e,t.pluginRoot)}}});import{resolve as uhr}from"node:path";async function lhr(e){if(!eO())return;let t=e.tool_name||"";if(t!=="Write"&&t!=="Edit"&&t!=="MultiEdit")return;let n=e.tool_response??{};if(n.error||n.is_error===!0)return;let i=(e.tool_input||{}).file_path||"";i&&await y5(uhr(process.cwd(),i))}var TCt,vCt=v(()=>{"use strict";q_e();sy();tR();TCt={name:"stamp-agent-write",description:"PostToolUse Write/Edit/MultiEdit: append an `agent_write` action-log entry when the agent writes inside an intent's tracked drift surface, so the next drift-gate tick attributes the change to the agent and updates the baseline silently.",async handle(e,t){try{await lhr(e)}catch{}}}});import{existsSync as RCt,readdirSync as dhr}from"node:fs";import{join as wve}from"node:path";function fhr(){let e=wve(process.cwd(),".haiku","intents");if(!RCt(e))return null;let t=dhr(e).filter(n=>RCt(wve(e,n,"intent.md")));return t.length===1?wve(e,t[0]):null}async function phr(e,t){let n=e.tool_name;if(n!=="Write"&&n!=="Edit"||!fhr())return;let s=(e.tool_input||{}).file_path||"";s.includes("/.haiku/")||process.stdout.write(`\u26A0\uFE0F WORKFLOW GUARD: Editing ${s} \u2014 ensure this is within an active hat's scope. +`)}var ACt,wCt=v(()=>{"use strict";sy();ACt={name:"workflow-guard",description:"PreToolUse Write/Edit: warn when editing outside the active hat's scope.",async handle(e,t){await phr(e,t.pluginRoot)}}});var ICt={};Ar(ICt,{__HOOK_REGISTRY:()=>bhr,runHook:()=>Shr});import{readFileSync as hhr}from"node:fs";function yhr(){try{return hhr(0,"utf8")}catch{return""}}async function Shr(e,t){if(ghr.has(e))return;let n=mhr.get(e);n||(console.error(`haiku: hook '${e}' not implemented`),process.exit(2));let r=yhr(),i={};try{r.trim()&&(i=JSON.parse(r))}catch{}let{resolvePluginRoot:s}=await Promise.resolve().then(()=>(Ci(),xKe)),o=s();await n.handle(i,{pluginRoot:o})}var kCt,mhr,ghr,bhr,xCt=v(()=>{"use strict";uCt();dCt();hCt();yCt();bCt();_Ct();vCt();wCt();kCt=[cCt,lCt,pCt,gCt,SCt,ECt,TCt,ACt],mhr=new Map(kCt.map(e=>[e.name,e])),ghr=new Set(["quality-gate","track-outputs","ensure-deps","inject-context","subagent-hook","subagent-context","enforce-iteration"]);bhr=kCt});var NCt={};Ar(NCt,{runMigrate:()=>Rhr});import{execSync as Ehr}from"node:child_process";import{cpSync as $U,existsSync as oy,mkdirSync as tO,readdirSync as OCt,readFileSync as _hr,writeFileSync as nO}from"node:fs";import{basename as kve,join as xn}from"node:path";function PCt(e){let t=_hr(e,"utf8"),n=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!n)return{data:{},body:t};let r={};for(let i of n[1].split(` +`)){let s=i.match(/^([\w][\w-]*):\s*(.*)$/);if(s){let[,o,a]=s;a==="null"?r[o]=null:a==="true"?r[o]=!0:a==="false"?r[o]=!1:/^-?\d+$/.test(a)?r[o]=Number.parseInt(a,10):a.startsWith("[")&&a.endsWith("]")?r[o]=a.slice(1,-1).split(",").map(c=>c.trim().replace(/^["']|["']$/g,"")).filter(Boolean):r[o]=a.replace(/^["']|["']$/g,"")}}return{data:r,body:n[2].trim()}}function Thr(){return new Date().toISOString().replace(/\.\d{3}Z$/,"Z")}function Ive(e){try{let{execSync:t}=K("node:child_process");return t(`git log --diff-filter=A --follow --format=%aI -- "${e}" | tail -1`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}function vhr(e){try{let{execSync:t}=K("node:child_process");return t(`git log -1 --format=%aI -- "${e}"`,{encoding:"utf8",timeout:5e3,cwd:process.cwd()}).trim()||null}catch{return null}}async function Rhr(e){let t=new Set,n=[];for(let _ of e)_.startsWith("--")?t.add(_):n.push(_);let i=!t.has("--apply")||t.has("--dry-run"),s=t.has("--all"),o=t.has("--allow-dirty"),a=t.has("--force"),c=process.cwd(),u=xn(c,".ai-dlc"),l=xn(c,".haiku","intents");if(!oy(u)){console.log("No .ai-dlc/ directory found. Nothing to migrate.");return}let d=OCt(u).filter(_=>{let T=xn(u,_);return oy(xn(T,"intent.md"))});if(d.length===0){console.log("No intents found in .ai-dlc/. Nothing to migrate.");return}if(n.length===0&&!s){let _=d.map(T=>` ${T}`).join(` `);throw new Error(`refusing to run without a slug or --all. Found ${d.length} intent(s) in .ai-dlc/: @@ -1662,7 +1662,7 @@ Commit or stash first, or pass --allow-dirty. ${_}`)}console.log(`Found ${d.length} intent(s) in .ai-dlc/ (${y.length} primary, ${h.size} merged). Migrating ${b.length} primary intent(s)${i?" (DRY RUN \u2014 pass --apply to write)":""}. -`);let S=0,E=0;for(let _ of b){let T=xn(u,_),R=xn(l,_);if(oy(R)){let ee=oy(xn(R,"stages"));if(ee&&!a){console.log(` SKIP: ${_} (already migrated with stages)`),E++;continue}ee||console.log(` RE-MIGRATE: ${_} (missing stages \u2014 upgrading)`)}let{data:A,body:x}=PCt(xn(T,"intent.md")),k=A.status||"active",P=x.match(/^# (.+)$/m)?.[1]||_,N=g.get(_)||"",C=kve(xn(T,"intent.md")),L=vhr(T),G=A.created||"",W=C||(G?`${G}T00:00:00Z`:Thr()),$=k==="completed"||k==="complete"?L||W:null;if(i){console.log(` DRY RUN: ${_} (status: ${k})`),S++;continue}eO(xn(R,"knowledge"),{recursive:!0});let q=["inception","design","product","development","operations","security"],Q={design:"design",dev:"development",product:"product",ops:"operations",security:"security"},B=[{dir:T,defaultStage:""}],F=p.get(_)||[],V={"-dev":"development","-product":"product","-design":"design","-tests":"development"};for(let ee of F){let se=xn(u,ee),Le=f.find(Ae=>ee.endsWith(Ae))||"";B.push({dir:se,defaultStage:V[Le]||"development"})}let U=new Map,M=0;for(let{dir:ee,defaultStage:se}of B){let Le=OCt(ee).filter(Ae=>Ae.startsWith("unit-")&&Ae.endsWith(".md"));for(let Ae of Le){let{data:z,body:J}=PCt(xn(ee,Ae)),oe=z.pass||"",le=oe?Q[oe]||"development":se||"development";U.has(le)||U.set(le,[]),U.get(le)?.push({file:Ae,fm:z,body:J}),M++}if(ee!==T){if(oy(xn(ee,"discovery.md"))){let Ae=wve(ee);i||XU(xn(ee,"discovery.md"),xn(R,"knowledge",`${Ae}-discovery.md`))}if(oy(xn(ee,"mockups"))&&!i){let Ae=xn(R,"stages","design","artifacts");eO(Ae,{recursive:!0});try{XU(xn(ee,"mockups"),Ae,{recursive:!0})}catch{}}}}let H=A.active_pass||"",j=H&&Q[H]||"",Y=A.epic||"";if(k==="completed"||k==="complete"){tO(xn(R,"intent.md"),`--- +`);let S=0,E=0;for(let _ of b){let T=xn(u,_),R=xn(l,_);if(oy(R)){let ee=oy(xn(R,"stages"));if(ee&&!a){console.log(` SKIP: ${_} (already migrated with stages)`),E++;continue}ee||console.log(` RE-MIGRATE: ${_} (missing stages \u2014 upgrading)`)}let{data:A,body:x}=PCt(xn(T,"intent.md")),k=A.status||"active",P=x.match(/^# (.+)$/m)?.[1]||_,N=g.get(_)||"",C=Ive(xn(T,"intent.md")),L=vhr(T),G=A.created||"",W=C||(G?`${G}T00:00:00Z`:Thr()),$=k==="completed"||k==="complete"?L||W:null;if(i){console.log(` DRY RUN: ${_} (status: ${k})`),S++;continue}tO(xn(R,"knowledge"),{recursive:!0});let q=["inception","design","product","development","operations","security"],Q={design:"design",dev:"development",product:"product",ops:"operations",security:"security"},B=[{dir:T,defaultStage:""}],F=p.get(_)||[],V={"-dev":"development","-product":"product","-design":"design","-tests":"development"};for(let ee of F){let se=xn(u,ee),Le=f.find(Ae=>ee.endsWith(Ae))||"";B.push({dir:se,defaultStage:V[Le]||"development"})}let U=new Map,M=0;for(let{dir:ee,defaultStage:se}of B){let Le=OCt(ee).filter(Ae=>Ae.startsWith("unit-")&&Ae.endsWith(".md"));for(let Ae of Le){let{data:z,body:J}=PCt(xn(ee,Ae)),oe=z.pass||"",le=oe?Q[oe]||"development":se||"development";U.has(le)||U.set(le,[]),U.get(le)?.push({file:Ae,fm:z,body:J}),M++}if(ee!==T){if(oy(xn(ee,"discovery.md"))){let Ae=kve(ee);i||$U(xn(ee,"discovery.md"),xn(R,"knowledge",`${Ae}-discovery.md`))}if(oy(xn(ee,"mockups"))&&!i){let Ae=xn(R,"stages","design","artifacts");tO(Ae,{recursive:!0});try{$U(xn(ee,"mockups"),Ae,{recursive:!0})}catch{}}}}let H=A.active_pass||"",j=H&&Q[H]||"",Y=A.epic||"";if(k==="completed"||k==="complete"){nO(xn(R,"intent.md"),`--- title: "${P}" studio: software stages: [inception, design, product, development, operations, security] @@ -1676,9 +1676,9 @@ follows: ${N}`:""} --- ${x} -`);for(let se of q)eO(xn(R,"stages",se,"units"),{recursive:!0}),tO(xn(R,"stages",se,"state.json"),`${JSON.stringify({stage:se,status:"completed",phase:"gate",started_at:`${W}`,completed_at:`${$}`,gate_entered_at:null,gate_outcome:"advanced"},null,2)} -`);for(let[se,Le]of U){eO(xn(R,"stages",se,"units"),{recursive:!0});for(let{file:Ae,fm:z,body:J}of Le){let oe=z.status||"pending",le=z.depends_on||[],Ee=z.discipline||"fullstack",kt=z.last_updated||kve(xn(T,Ae))||null,Ue=z.ticket||"",Ln=z.branch||"";tO(xn(R,"stages",se,"units",Ae),`--- -name: ${wve(Ae,".md")} +`);for(let se of q)tO(xn(R,"stages",se,"units"),{recursive:!0}),nO(xn(R,"stages",se,"state.json"),`${JSON.stringify({stage:se,status:"completed",phase:"gate",started_at:`${W}`,completed_at:`${$}`,gate_entered_at:null,gate_outcome:"advanced"},null,2)} +`);for(let[se,Le]of U){tO(xn(R,"stages",se,"units"),{recursive:!0});for(let{file:Ae,fm:z,body:J}of Le){let oe=z.status||"pending",le=z.depends_on||[],Ee=z.discipline||"fullstack",kt=z.last_updated||Ive(xn(T,Ae))||null,Ue=z.ticket||"",Ln=z.branch||"";nO(xn(R,"stages",se,"units",Ae),`--- +name: ${kve(Ae,".md")} type: ${Ee} status: ${oe} depends_on: [${le.join(", ")}] @@ -1691,7 +1691,7 @@ completed_at: ${oe==="completed"&&kt||"null"} --- ${J} -`)}}let ee=F.length>0?` [merged: ${F.join(", ")}]`:"";console.log(` MIGRATED: ${_} (completed, ${M} units across ${U.size} stage(s))${ee}`)}else{let ee=q.filter(Ae=>(!U.has(Ae)&&Ae!==j,!1)),se=q.find(Ae=>U.has(Ae))||"";tO(xn(R,"intent.md"),`--- +`)}}let ee=F.length>0?` [merged: ${F.join(", ")}]`:"";console.log(` MIGRATED: ${_} (completed, ${M} units across ${U.size} stage(s))${ee}`)}else{let ee=q.filter(Ae=>(!U.has(Ae)&&Ae!==j,!1)),se=q.find(Ae=>U.has(Ae))||"";nO(xn(R,"intent.md"),`--- title: "${P}" studio: software stages: [inception, design, product, development, operations, security] @@ -1705,9 +1705,9 @@ follows: ${N}`:""} --- ${x} -`);for(let Ae of q)eO(xn(R,"stages",Ae,"units"),{recursive:!0}),U.has(Ae)&&tO(xn(R,"stages",Ae,"state.json"),`${JSON.stringify({stage:Ae,status:Ae===se?"active":"pending",phase:Ae===se?"execute":"",started_at:W,completed_at:null,gate_entered_at:null,gate_outcome:null},null,2)} -`);for(let[Ae,z]of U)for(let{file:J,fm:oe,body:le}of z){let Ee=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Ln=oe.last_updated||kve(xn(T,J))||null,lr=oe.ticket||"",sn=oe.branch||"";tO(xn(R,"stages",Ae,"units",J),`--- -name: ${wve(J,".md")} +`);for(let Ae of q)tO(xn(R,"stages",Ae,"units"),{recursive:!0}),U.has(Ae)&&nO(xn(R,"stages",Ae,"state.json"),`${JSON.stringify({stage:Ae,status:Ae===se?"active":"pending",phase:Ae===se?"execute":"",started_at:W,completed_at:null,gate_entered_at:null,gate_outcome:null},null,2)} +`);for(let[Ae,z]of U)for(let{file:J,fm:oe,body:le}of z){let Ee=oe.status||"pending",kt=oe.depends_on||[],Ue=oe.discipline||"fullstack",Ln=oe.last_updated||Ive(xn(T,J))||null,lr=oe.ticket||"",sn=oe.branch||"";nO(xn(R,"stages",Ae,"units",J),`--- +name: ${kve(J,".md")} type: ${Ue} status: ${Ee} depends_on: [${kt.join(", ")}] @@ -1720,18 +1720,18 @@ completed_at: ${Ee==="completed"&&Ln||"null"} --- ${le} -`)}let Le=F.length>0?` [merged: ${F.join(", ")}]`:"";console.log(` MIGRATED: ${_} (active, stage: ${j||"inception"}, ${M} units across ${U.size} stage(s))${Le}`)}if(oy(xn(T,"discovery.md"))&&XU(xn(T,"discovery.md"),xn(R,"knowledge","DISCOVERY.md")),oy(xn(T,"knowledge")))try{XU(xn(T,"knowledge"),xn(R,"knowledge"),{recursive:!0})}catch{}if(oy(xn(T,"mockups"))){let ee=xn(R,"stages","design","artifacts");eO(ee,{recursive:!0});try{XU(xn(T,"mockups"),ee,{recursive:!0})}catch{}}S++}console.log(` +`)}let Le=F.length>0?` [merged: ${F.join(", ")}]`:"";console.log(` MIGRATED: ${_} (active, stage: ${j||"inception"}, ${M} units across ${U.size} stage(s))${Le}`)}if(oy(xn(T,"discovery.md"))&&$U(xn(T,"discovery.md"),xn(R,"knowledge","DISCOVERY.md")),oy(xn(T,"knowledge")))try{$U(xn(T,"knowledge"),xn(R,"knowledge"),{recursive:!0})}catch{}if(oy(xn(T,"mockups"))){let ee=xn(R,"stages","design","artifacts");tO(ee,{recursive:!0});try{$U(xn(T,"mockups"),ee,{recursive:!0})}catch{}}S++}console.log(` Migration complete: ${S} migrated, ${E} skipped.`),i?console.log("(Dry run \u2014 no files were written. Re-run with --apply to migrate.)"):(console.log(` Next steps:`),console.log(" git add .haiku/intents/ && git commit -m 'haiku: migrate intents from .ai-dlc/'"),console.log(" For active intents: run /haiku:haiku-pickup to start from inception"))}var CCt=v(()=>{"use strict"});function xhr(e,t){return t?Qr.gate:Qr[e]??Qr.execute}function LCt(e,t={}){let n=t.color??!process.env.NO_COLOR,r=(k,P)=>n?`${k}${P}${Qr.reset}`:P,i=r(Qr.brand,Ahr),s=r(Qr.brand,"\u2B22"),o=r(Qr.intent,e.intent),a=e.studio?r(Qr.dim,e.studio):"",c=xhr(e.phaseKind,e.gated),u=e.phaseTrack===null?"":Array.from({length:e.phaseTrack.total},(k,P)=>{let N=e.phaseTrack.index;return Pk.status==="done"?r(Qr.done,"\u2B22"):k.status==="active"?r(c,"\u2B23"):r(Qr.pending,"\u2B21")).join(""),d=e.activeStage?r(Qr.stage,e.activeStage):r(Qr.stage,"intent"),f=e.gated?"\u03A0":"\u276F",p=r(e.gated?Qr.gate:Qr.dim,f),h=r(c,e.phaseLabel),m=e.phaseKind==="fixloop"&&e.actualPhase?n?`${Qr.dim}${Qr.strike}${e.actualPhase}${Qr.reset}`:Ihr(e.actualPhase):"",g=m?`${m} ${h}`:h,y=[l,d,u,p,g].filter(Boolean).join(" "),b=e.aggregate?r(e.phaseKind==="blocked"?Qr.blocked:Qr.dim,e.aggregate):"",S=r(Qr.dim,"\xB7"),E=[`${i} ${s} ${o}`];a&&E.push(a),E.push(y),b&&E.push(b);let _=E.join(` ${S} `),T=k=>{let P=k.severity===void 0?null:k.severity?whr[k.severity]:khr,N=P?P.pips:DCt;if(!n){let G=k.segments.map($=>$==="pending"?"\u25B1":"\u25B0").join("");return`${P?`${P.mark} `:""}${k.id} ${G}`}let C=k.segments.map(G=>`${N[G]}${G==="pending"?"\u25B1":"\u25B0"}`).join("");return`${P?P.bg:Qr.chipBg} ${Qr.chipLabel}${k.id} ${C} ${Qr.reset}`},R=k=>{let P=MCt[k.status]??MCt.pending;return n?`${P.bg}${P.fg} ${k.id}${P.mark} ${Qr.reset}`:`${k.id}${P.mark}`},A=n?" ":" ",x="";return e.itemBars&&e.itemBars.length>0?x=e.itemBars.map(T).join(A):e.agentChips&&e.agentChips.length>0&&(x=e.agentChips.map(R).join(A)),x?`${_} -${r(Qr.dim,"\u21B3")} ${x}`:_}var Ahr,QU,DCt,l8,MCt,whr,khr,Ihr,Qr,UCt=v(()=>{"use strict";Ahr="H\xB7AI\xB7K\xB7U",QU="\x1B[1;38;2;255;255;0m",DCt={done:"\x1B[38;5;71m",active:QU,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},l8="\x1B[38;5;240m",MCt={done:{bg:"\x1B[48;5;151m",fg:"\x1B[1;38;5;22m",mark:" \u2713"},active:{bg:"\x1B[48;5;254m",fg:"\x1B[1;38;5;238m",mark:" \u25B8"},pending:{bg:"\x1B[48;5;248m",fg:"\x1B[38;5;240m",mark:""},failed:{bg:"\x1B[48;5;217m",fg:"\x1B[1;38;5;124m",mark:" \u2717"}},whr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:QU,rejected:"\x1B[1;38;5;52m",pending:l8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:QU,rejected:"\x1B[1;38;5;88m",pending:l8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:QU,rejected:"\x1B[1;38;5;88m",pending:l8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:DCt}},khr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:QU,rejected:"\x1B[1;38;5;124m",pending:l8}},Ihr=e=>Array.from(e).map(t=>`${t}\u0336`).join(""),Qr={reset:"\x1B[0m",bold:"\x1B[1m",strike:"\x1B[9m",brand:"\x1B[38;5;43m",intent:"\x1B[1;38;5;255m",done:"\x1B[38;5;71m",active:"\x1B[38;5;214m",pending:"\x1B[38;5;243m",dim:"\x1B[38;5;240m",pipDone:"\x1B[38;5;255m",stage:"\x1B[38;5;38m",elaborate:"\x1B[38;5;245m",execute:"\x1B[38;5;39m",review:"\x1B[38;5;220m",approve:"\x1B[38;5;220m",fixloop:"\x1B[38;5;208m",gate:"\x1B[38;5;170m",complete:"\x1B[38;5;71m",sealed:"\x1B[38;5;71m",pending_seal:"\x1B[38;5;177m",blocked:"\x1B[38;5;203m",recovering:"\x1B[38;5;44m",setup:"\x1B[38;5;245m",chipBg:"\x1B[48;5;254m",chipLabel:"\x1B[1;38;5;238m",chipPending:"\x1B[38;5;250m"}});import{execFileSync as Ohr}from"node:child_process";import{existsSync as ay,readdirSync as nO,readFileSync as Phr,statSync as Nhr}from"node:fs";import{join as wc}from"node:path";function rO(e){if(!ay(e))return null;try{return re(Phr(e,"utf8")).data}catch{return null}}function Chr(){try{return Ohr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function Mhr(e){let t=wc(e,"intents");if(!ay(t))return null;let r=Chr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(ay(wc(t,o,"intent.md")))return o}let i;try{i=nO(t).filter(o=>{try{return Nhr(wc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=rO(wc(t,o,"intent.md"));return!(!a||a.archived===!0||typeof a.sealed_at=="string"&&a.sealed_at.length>0)});return s.length===1?s[0]:null}function xve(e){if(!e)return"";let t=e;if(typeof t.stage=="string"&&t.stage.length>0)return t.stage;if(Array.isArray(t.dispatches)&&t.dispatches.length>0){let n=t.dispatches[0]?.stage;if(typeof n=="string"&&n.length>0)return n}return""}function Lhr(e){return!!e&&xve(e)===""&&Dhr.has(e.kind)}function Ive(e){return e==="cross-stage-consistency"?"cross-stage":e}function Uhr(e){if(!e)return{kind:"execute",label:"working",gated:!1};switch(e.kind){case"integrate_fix_chains":return{kind:"recovering",label:"resolving conflicts",gated:!1};case"safe_intent_repair":return{kind:"recovering",label:"recovering",gated:!1};case"upstream_reconciliation_required":return{kind:"recovering",label:"merging upstream",gated:!1}}switch(e.kind){case"elaborate_loop":return{kind:"elaborate",label:"elaborate",gated:!1};case"start_unit_hat":return{kind:"execute",label:"execute",gated:!1};case"start_feedback_hat":case"close_feedback":return{kind:"fixloop",label:"fix-loop",gated:!1};case"feedback_question":return{kind:"fixloop",label:"question",gated:!0};case"dispatch_review":{let t=e.dispatches;return{kind:"review",label:t&&t.length>1?"adversarial review":`${Ive(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${Ive(e.role)} approval`,gated:!1}}case"write_brief":return{kind:"review",label:"writing brief",gated:!1};case"dispatch_quality_gates":return{kind:"approve",label:"quality gates",gated:!1};case"user_gate":return{kind:"gate",label:`${e.gate_kind} gate`,gated:!0};case"complete_stage":return{kind:"complete",label:"complete",gated:!1};case"record_observations":return{kind:"complete",label:"observations",gated:!1};case"intent_review":{if(e.role==="user")return{kind:"gate",label:"intent gate",gated:!0};let t=e.dispatches;return{kind:"review",label:Array.isArray(t)&&t.length>1?"adversarial review":`${Ive(e.role)} review`,gated:!1}}case"record_reflection":return{kind:"complete",label:"reflection",gated:!1};case"seal_intent":case"sealed":return{kind:"sealed",label:"sealed",gated:!1};case"pending_seal":return{kind:"pending_seal",label:"pending seal",gated:!0};case"unit_inputs_not_declared":case"unit_outputs_empty_iterations":return{kind:"blocked",label:"spec error",gated:!0};default:return{kind:"execute",label:"working",gated:!1}}}function FCt(e,t,n,r){let i=wc(r,"stages",n,"units");if(!ay(i))return{done:0,total:0};let s=Es(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of nO(i).filter(l=>l.endsWith(".md"))){let l=rO(wc(i,u));if(!l)continue;c++;let d=Array.isArray(l.iterations)?l.iterations:[],f=d[d.length-1];f&&f.result==="advance"&&f.hat===o&&a++}return{done:a,total:c}}function jCt(e,t){let n=t?wc(e,"stages",t,"feedback"):wc(e,"feedback");if(!ay(n))return{closed:0,total:0};let r=0,i=0;for(let s of nO(n).filter(o=>o.endsWith(".md"))){let o=rO(wc(n,s));if(!o)continue;i++;let a=typeof o.closed_at=="string"&&o.closed_at.length>0||typeof o.status=="string"&&o.status==="closed",c=typeof o.rejected_at=="string"&&o.rejected_at.length>0||typeof o.status=="string"&&o.status==="rejected";(a||c)&&r++}return{closed:r,total:i}}function BCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function Fhr(e){let t=e.includes(":")?e.slice(e.indexOf(":")+1):e;return t==="cross-stage-consistency"?"cross-stage":e==="intent-quality-gates"||t==="quality_gates"?"quality":t==="user"?"gate":t}function zCt(e,t,n=!0){let r=new Map;for(let a of e)typeof a.hat=="string"&&r.set(a.hat,a.result);let i=t.map(a=>{let c=r.get(a);return c===void 0?"pending":typeof c=="string"&&HCt.has(c)?"done":typeof c=="string"&&jhr.has(c)?"rejected":"pending"});if(t.length===0||!n)return i;if(e.length===0)return i[0]="active",i;let s=e[e.length-1],o=typeof s.hat=="string"?t.indexOf(s.hat):-1;if(s.result===null||s.result===void 0)o>=0&&(i[o]="active");else if(typeof s.result=="string"&&HCt.has(s.result)){let a=o+1;a>=0&&a(c.get(d.name)??0)===l).map(d=>d.name))}catch{return[]}if(s.size===0)return[];let o=[];for(let a of nO(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=rO(wc(r,a));if(!c)continue;let u=Array.isArray(c.iterations)?c.iterations:[],l=typeof c.started_at=="string"&&c.started_at.length>0||u.length>0;o.push({id:`U-${BCt(a)}`,segments:zCt(u,i,l)})}return o}function qCt(e,t){if(!ay(e)||t.length===0)return[];let n=[];for(let r of nO(e).filter(i=>i.endsWith(".md")).sort()){let i=rO(wc(e,r));if(!i)continue;let s=typeof i.closed_at=="string"&&i.closed_at.length>0||i.status==="closed",o=typeof i.rejected_at=="string"&&i.rejected_at.length>0||i.status==="rejected";if(s||o)continue;let a=Array.isArray(i.iterations)?i.iterations:[],c=typeof i.severity=="string"?i.severity:null;n.push({id:`FB-${BCt(r)}`,segments:zCt(a,t,a.length>0),severity:c})}return n}function GCt(){let e;try{e=Te()}catch{return null}let t=Mhr(e);if(!t)return null;let n=pe(t),r=rO(wc(n,"intent.md"));if(!r||r.composite)return null;let i=typeof r.studio=="string"?r.studio:"",s=(P,N)=>({intent:t,studio:i,stages:[],activeStage:"",phaseLabel:P,phaseKind:"setup",gated:!1,aggregate:"",phaseTrack:{index:N,total:4}});if(!i)return s("select studio",0);let o=typeof r.mode=="string"&&r.mode.length>0?r.mode:"";if(!o)return s("select mode",1);let a=o,c=wn(r,i);if(c.length===0)return a==="quick"?s("select stage",2):null;if(typeof r.sealed_at=="string"&&r.sealed_at.length>0)return{intent:t,studio:i,stages:c.map(P=>({name:P,status:"done"})),activeStage:"",phaseLabel:"sealed",phaseKind:"sealed",gated:!1,aggregate:"",phaseTrack:null,itemBars:null,agentChips:null};let u=null,l=Ekt(t);if(l?.action)u=l.action;else try{u=$f({slug:t,intentDir:n,studio:i}).action}catch{u=null}if(u&&u.kind==="elaborate_loop"&&!xve(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=Uhr(u),h=Lhr(u),m=h?"":xve(u)||ai(t,i,n)||"",g;if(h)g=c.map(P=>({name:P,status:"done"}));else{let P=!1;g=c.map(N=>m&&N===m?(P=!0,{name:N,status:"active"}):!P&&k0(n,i,N,a)?{name:N,status:"done"}:{name:N,status:"pending"})}let y=m,b="";if(d==="execute"&&y){let{done:P,total:N}=FCt(t,i,y,n);N>0&&(b=`${P}/${N} units`);try{let C=Eg(n,y);if(C.length>0){let{unitWave:L,totalWaves:G}=BI(C);if(G>1){let W=zI(C,L,G);b=`${b||`${N} units`} \xB7 wave ${W+1}/${G}`}}}catch{}}else if(d==="fixloop"){let P=y?jCt(n,y):{closed:0,total:0},N=jCt(n,""),C=P.total+N.total,L=P.closed+N.closed,G=C-L;G>0?b=`${G} open`:C>0&&(b="closing")}else if((d==="review"||d==="approve"||d==="gate")&&y){let{total:P}=FCt(t,i,y,n);P>0&&(b=`${P} units`)}else d==="elaborate"&&(b="decomposing");let S=null,E="",_=null;try{if(_=u6({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),_.total>0){let P;if(d==="fixloop"){let N=-1;for(let C=_.steps.length-1;C>=0;C--)if(_.steps[C].status!=="pending"){N=C;break}P=N>=0?N:_.index}else{let N=c6(u,_.steps);P=N>=0?N:_.index}S={index:P,total:_.total},d==="fixloop"&&(E=_.steps[P]?.label??"")}}catch{S=null,_=null}let T=null;if(d==="execute"&&y){let P=Hhr(i,y,n);P.length>0&&(T=P)}else if(d==="fixloop"){let P=[];y&&P.push(...qCt(wc(n,"stages",y,"feedback"),bg(i,y))),P.push(...qCt(wc(n,"feedback"),jf(i))),P.sort((N,C)=>Xc(N.severity)-Xc(C.severity)),P.length>0&&(T=P.slice(0,cv))}let R=null;if(_&&(d==="review"||d==="approve")&&qbe(u)){let P=XTt({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),N=h?"intent-review:":d==="review"?"review:":"approve:",C=P.filter(L=>L.key.startsWith(N)&&!Hbe.has(YTt(L.key))).map(L=>({id:Fhr(L.key),status:L.status==="done"?"done":"active"}));C.length>0&&(R=C)}let A=u?u.signals_unmet:void 0,x=Array.isArray(A)?A:[],k=x.some(P=>P.signal==="conversation"||P.signal==="verify_conversation");if(!R&&u&&u.kind==="elaborate_loop"&&!k&&y&&i)try{let N=no(i,y).filter(C=>C.kind==="discovery"&&C.required).map(C=>{let L=(C.location??"").replace(/\{intent-slug\}/g,t),G=!1;if(L){let W=wc(process.cwd(),L);G=L.endsWith("/")?ay(W)&&nO(W).filter($=>$!==".gitkeep").length>0:ay(W)}return{id:C.name,status:G?"done":"active"}});N.length>0&&N.some(C=>C.status==="active")&&(R=N)}catch{}if(!R&&u&&u.kind==="elaborate_loop"&&!k){let P=new Set(x.map(L=>L.signal).filter(L=>!!L)),N=[{signal:"decompose",label:"decompose"},{signal:"verify_decompose",label:"verify"}],C=N.findIndex(L=>P.has(L.signal));C!==-1&&(R=N.map((L,G)=>({id:L.label,status:G{"use strict";ns();P3();Oa();zbe();ji();Ge();Kn();BEe();Dhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);HCt=new Set(["advance","advanced","closed"]),jhr=new Set(["reject","rejected"])});var XCt={};Ar(XCt,{resolveFallbackCommand:()=>ZCt,runStatusline:()=>$hr});import{execFileSync as qhr}from"node:child_process";import{existsSync as rR,mkdirSync as WCt,readFileSync as $U,writeFileSync as Pve}from"node:fs";import{homedir as d8}from"node:os";import{dirname as Nve,join as tl}from"node:path";function Bhr(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>e(t)),process.stdin.on("error",()=>e(t))})}function KCt(e){let t=e;for(let n=0;n<30;n++){let r=tl(t,".haiku");if(rR(r))return r;let i=Nve(t);if(i===t)break;t=i}return null}function zhr(e,t=d8()){let n=[],r=KCt(e);r&&n.push(tl(r,eF)),n.push(tl(t,".haiku",eF));for(let i of n)if(rR(i))try{return JSON.parse($U(i,"utf8"))}catch{}return null}function Ghr(e){return e?YCt(e.statusLine):null}function YCt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function Ove(e){return e.includes("statusline")&&e.includes("haiku")}function Vhr(e){if(!rR(e))return null;try{let t=JSON.parse($U(e,"utf8"));return YCt(t.statusLine)}catch{return null}}function Whr(e){let t=KCt(e);return t?Nve(t):e}function ZCt(e,t=d8()){let n=Ghr(zhr(e,t)),r=Whr(e),i=[tl(r,".claude","settings.local.json"),tl(r,".claude","settings.json"),tl(t,".claude","settings.json")];for(let s of i){let o=Vhr(s);if(o){if(Ove(o)){if(n&&!Ove(n))return n;continue}return o}}return n&&!Ove(n)?n:null}async function Khr(){let e=await Bhr(),t=process.cwd();try{let s=e?JSON.parse(e):{};t=s?.workspace?.current_dir??s?.cwd??s?.workspace?.project_dir??t}catch{}try{process.chdir(t)}catch{}let n=!!process.env.HAIKU_STATUSLINE_DEBUG,r=null;try{r=GCt()}catch(s){n&&process.stderr.write(`[haiku statusline] resolveStatuslineState threw: ${s instanceof Error?`${s.message} +${r(Qr.dim,"\u21B3")} ${x}`:_}var Ahr,eF,DCt,d8,MCt,whr,khr,Ihr,Qr,UCt=v(()=>{"use strict";Ahr="H\xB7AI\xB7K\xB7U",eF="\x1B[1;38;2;255;255;0m",DCt={done:"\x1B[38;5;71m",active:eF,rejected:"\x1B[1;38;5;167m",pending:"\x1B[38;5;244m"},d8="\x1B[38;5;240m",MCt={done:{bg:"\x1B[48;5;151m",fg:"\x1B[1;38;5;22m",mark:" \u2713"},active:{bg:"\x1B[48;5;254m",fg:"\x1B[1;38;5;238m",mark:" \u25B8"},pending:{bg:"\x1B[48;5;248m",fg:"\x1B[38;5;240m",mark:""},failed:{bg:"\x1B[48;5;217m",fg:"\x1B[1;38;5;124m",mark:" \u2717"}},whr={blocker:{bg:"\x1B[48;5;210m",mark:"!",pips:{done:"\x1B[1;38;5;22m",active:eF,rejected:"\x1B[1;38;5;52m",pending:d8}},high:{bg:"\x1B[48;5;216m",mark:"^",pips:{done:"\x1B[1;38;5;22m",active:eF,rejected:"\x1B[1;38;5;88m",pending:d8}},medium:{bg:"\x1B[48;5;223m",mark:"~",pips:{done:"\x1B[1;38;5;22m",active:eF,rejected:"\x1B[1;38;5;88m",pending:d8}},low:{bg:"\x1B[48;5;254m",mark:".",pips:DCt}},khr={bg:"\x1B[48;5;189m",mark:"?",pips:{done:"\x1B[1;38;5;28m",active:eF,rejected:"\x1B[1;38;5;124m",pending:d8}},Ihr=e=>Array.from(e).map(t=>`${t}\u0336`).join(""),Qr={reset:"\x1B[0m",bold:"\x1B[1m",strike:"\x1B[9m",brand:"\x1B[38;5;43m",intent:"\x1B[1;38;5;255m",done:"\x1B[38;5;71m",active:"\x1B[38;5;214m",pending:"\x1B[38;5;243m",dim:"\x1B[38;5;240m",pipDone:"\x1B[38;5;255m",stage:"\x1B[38;5;38m",elaborate:"\x1B[38;5;245m",execute:"\x1B[38;5;39m",review:"\x1B[38;5;220m",approve:"\x1B[38;5;220m",fixloop:"\x1B[38;5;208m",gate:"\x1B[38;5;170m",complete:"\x1B[38;5;71m",sealed:"\x1B[38;5;71m",pending_seal:"\x1B[38;5;177m",blocked:"\x1B[38;5;203m",recovering:"\x1B[38;5;44m",setup:"\x1B[38;5;245m",chipBg:"\x1B[48;5;254m",chipLabel:"\x1B[1;38;5;238m",chipPending:"\x1B[38;5;250m"}});import{execFileSync as Ohr}from"node:child_process";import{existsSync as ay,readdirSync as rO,readFileSync as Phr,statSync as Nhr}from"node:fs";import{join as wc}from"node:path";function iO(e){if(!ay(e))return null;try{return re(Phr(e,"utf8")).data}catch{return null}}function Chr(){try{return Ohr("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}}function Mhr(e){let t=wc(e,"intents");if(!ay(t))return null;let r=Chr().match(/^haiku\/(.+?)\/[^/]+$/);if(r?.[1]){let o=r[1];if(ay(wc(t,o,"intent.md")))return o}let i;try{i=rO(t).filter(o=>{try{return Nhr(wc(t,o)).isDirectory()}catch{return!1}})}catch{return null}let s=i.filter(o=>{let a=iO(wc(t,o,"intent.md"));return!a||a.archived===!0?!1:typeof a.sealed_at=="string"&&a.sealed_at.length>0?GL(o,{localOnly:!0}):!0});return s.length===1?s[0]:null}function Ove(e){if(!e)return"";let t=e;if(typeof t.stage=="string"&&t.stage.length>0)return t.stage;if(Array.isArray(t.dispatches)&&t.dispatches.length>0){let n=t.dispatches[0]?.stage;if(typeof n=="string"&&n.length>0)return n}return""}function Lhr(e){return!!e&&Ove(e)===""&&Dhr.has(e.kind)}function xve(e){return e==="cross-stage-consistency"?"cross-stage":e}function Uhr(e){if(!e)return{kind:"execute",label:"working",gated:!1};switch(e.kind){case"integrate_fix_chains":return{kind:"recovering",label:"resolving conflicts",gated:!1};case"safe_intent_repair":return{kind:"recovering",label:"recovering",gated:!1};case"upstream_reconciliation_required":return{kind:"recovering",label:"merging upstream",gated:!1}}switch(e.kind){case"elaborate_loop":return{kind:"elaborate",label:"elaborate",gated:!1};case"start_unit_hat":return{kind:"execute",label:"execute",gated:!1};case"start_feedback_hat":case"close_feedback":return{kind:"fixloop",label:"fix-loop",gated:!1};case"feedback_question":return{kind:"fixloop",label:"question",gated:!0};case"dispatch_review":{let t=e.dispatches;return{kind:"review",label:t&&t.length>1?"adversarial review":`${xve(e.role)} review`,gated:!1}}case"dispatch_approval":{let t=e.dispatches;return{kind:"approve",label:t&&t.length>1?"adversarial approval":`${xve(e.role)} approval`,gated:!1}}case"write_brief":return{kind:"review",label:"writing brief",gated:!1};case"dispatch_quality_gates":return{kind:"approve",label:"quality gates",gated:!1};case"user_gate":return{kind:"gate",label:`${e.gate_kind} gate`,gated:!0};case"complete_stage":return{kind:"complete",label:"complete",gated:!1};case"record_observations":return{kind:"complete",label:"observations",gated:!1};case"intent_review":{if(e.role==="user")return{kind:"gate",label:"intent gate",gated:!0};let t=e.dispatches;return{kind:"review",label:Array.isArray(t)&&t.length>1?"adversarial review":`${xve(e.role)} review`,gated:!1}}case"record_reflection":return{kind:"complete",label:"reflection",gated:!1};case"seal_intent":case"sealed":return{kind:"sealed",label:"sealed",gated:!1};case"pending_seal":return{kind:"pending_seal",label:"pending seal",gated:!0};case"unit_inputs_not_declared":case"unit_outputs_empty_iterations":return{kind:"blocked",label:"spec error",gated:!0};default:return{kind:"execute",label:"working",gated:!1}}}function FCt(e,t,n,r){let i=wc(r,"stages",n,"units");if(!ay(i))return{done:0,total:0};let s=Es(t,n),o=s[s.length-1]??"",a=0,c=0;for(let u of rO(i).filter(l=>l.endsWith(".md"))){let l=iO(wc(i,u));if(!l)continue;c++;let d=Array.isArray(l.iterations)?l.iterations:[],f=d[d.length-1];f&&f.result==="advance"&&f.hat===o&&a++}return{done:a,total:c}}function jCt(e,t){let n=t?wc(e,"stages",t,"feedback"):wc(e,"feedback");if(!ay(n))return{closed:0,total:0};let r=0,i=0;for(let s of rO(n).filter(o=>o.endsWith(".md"))){let o=iO(wc(n,s));if(!o)continue;i++;let a=typeof o.closed_at=="string"&&o.closed_at.length>0||typeof o.status=="string"&&o.status==="closed",c=typeof o.rejected_at=="string"&&o.rejected_at.length>0||typeof o.status=="string"&&o.status==="rejected";(a||c)&&r++}return{closed:r,total:i}}function BCt(e){return e.match(/^(?:unit-)?(\d+)/)?.[1]??""}function Fhr(e){let t=e.includes(":")?e.slice(e.indexOf(":")+1):e;return t==="cross-stage-consistency"?"cross-stage":e==="intent-quality-gates"||t==="quality_gates"?"quality":t==="user"?"gate":t}function zCt(e,t,n=!0){let r=new Map;for(let a of e)typeof a.hat=="string"&&r.set(a.hat,a.result);let i=t.map(a=>{let c=r.get(a);return c===void 0?"pending":typeof c=="string"&&HCt.has(c)?"done":typeof c=="string"&&jhr.has(c)?"rejected":"pending"});if(t.length===0||!n)return i;if(e.length===0)return i[0]="active",i;let s=e[e.length-1],o=typeof s.hat=="string"?t.indexOf(s.hat):-1;if(s.result===null||s.result===void 0)o>=0&&(i[o]="active");else if(typeof s.result=="string"&&HCt.has(s.result)){let a=o+1;a>=0&&a(c.get(d.name)??0)===l).map(d=>d.name))}catch{return[]}if(s.size===0)return[];let o=[];for(let a of rO(r).filter(c=>c.endsWith(".md")).sort()){if(!s.has(a.replace(/\.md$/,"")))continue;let c=iO(wc(r,a));if(!c)continue;let u=Array.isArray(c.iterations)?c.iterations:[],l=typeof c.started_at=="string"&&c.started_at.length>0||u.length>0;o.push({id:`U-${BCt(a)}`,segments:zCt(u,i,l)})}return o}function qCt(e,t){if(!ay(e)||t.length===0)return[];let n=[];for(let r of rO(e).filter(i=>i.endsWith(".md")).sort()){let i=iO(wc(e,r));if(!i)continue;let s=typeof i.closed_at=="string"&&i.closed_at.length>0||i.status==="closed",o=typeof i.rejected_at=="string"&&i.rejected_at.length>0||i.status==="rejected";if(s||o)continue;let a=Array.isArray(i.iterations)?i.iterations:[],c=typeof i.severity=="string"?i.severity:null;n.push({id:`FB-${BCt(r)}`,segments:zCt(a,t,a.length>0),severity:c})}return n}function GCt(){let e;try{e=Te()}catch{return null}let t=Mhr(e);if(!t)return null;let n=pe(t),r=iO(wc(n,"intent.md"));if(!r||r.composite)return null;let i=typeof r.studio=="string"?r.studio:"",s=(P,N)=>({intent:t,studio:i,stages:[],activeStage:"",phaseLabel:P,phaseKind:"setup",gated:!1,aggregate:"",phaseTrack:{index:N,total:4}});if(!i)return s("select studio",0);let o=typeof r.mode=="string"&&r.mode.length>0?r.mode:"";if(!o)return s("select mode",1);let a=o,c=wn(r,i);if(c.length===0)return a==="quick"?s("select stage",2):null;if(typeof r.sealed_at=="string"&&r.sealed_at.length>0){let P=GL(t,{localOnly:!0});return{intent:t,studio:i,stages:c.map(N=>({name:N,status:"done"})),activeStage:"",phaseLabel:P?"pending seal":"sealed",phaseKind:P?"pending_seal":"sealed",gated:P,aggregate:"",phaseTrack:null,itemBars:null,agentChips:null}}let u=null,l=Ekt(t);if(l?.action)u=l.action;else try{u=$f({slug:t,intentDir:n,studio:i}).action}catch{u=null}if(u&&u.kind==="elaborate_loop"&&!Ove(u))return s("verifying intent",3);let{kind:d,label:f,gated:p}=Uhr(u),h=Lhr(u),m=h?"":Ove(u)||ai(t,i,n)||"",g;if(h)g=c.map(P=>({name:P,status:"done"}));else{let P=!1;g=c.map(N=>m&&N===m?(P=!0,{name:N,status:"active"}):!P&&I0(n,i,N,a)?{name:N,status:"done"}:{name:N,status:"pending"})}let y=m,b="";if(d==="execute"&&y){let{done:P,total:N}=FCt(t,i,y,n);N>0&&(b=`${P}/${N} units`);try{let C=Eg(n,y);if(C.length>0){let{unitWave:L,totalWaves:G}=BI(C);if(G>1){let W=zI(C,L,G);b=`${b||`${N} units`} \xB7 wave ${W+1}/${G}`}}}catch{}}else if(d==="fixloop"){let P=y?jCt(n,y):{closed:0,total:0},N=jCt(n,""),C=P.total+N.total,L=P.closed+N.closed,G=C-L;G>0?b=`${G} open`:C>0&&(b="closing")}else if((d==="review"||d==="approve"||d==="gate")&&y){let{total:P}=FCt(t,i,y,n);P>0&&(b=`${P} units`)}else d==="elaborate"&&(b="decomposing");let S=null,E="",_=null;try{if(_=l6({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),_.total>0){let P;if(d==="fixloop"){let N=-1;for(let C=_.steps.length-1;C>=0;C--)if(_.steps[C].status!=="pending"){N=C;break}P=N>=0?N:_.index}else{let N=u6(u,_.steps);P=N>=0?N:_.index}S={index:P,total:_.total},d==="fixloop"&&(E=_.steps[P]?.label??"")}}catch{S=null,_=null}let T=null;if(d==="execute"&&y){let P=Hhr(i,y,n);P.length>0&&(T=P)}else if(d==="fixloop"){let P=[];y&&P.push(...qCt(wc(n,"stages",y,"feedback"),bg(i,y))),P.push(...qCt(wc(n,"feedback"),jf(i))),P.sort((N,C)=>Xc(N.severity)-Xc(C.severity)),P.length>0&&(T=P.slice(0,cv))}let R=null;if(_&&(d==="review"||d==="approve")&&Bbe(u)){let P=XTt({slug:t,studio:i,intentDir:n,intentMode:a,stage:m}),N=h?"intent-review:":d==="review"?"review:":"approve:",C=P.filter(L=>L.key.startsWith(N)&&!qbe.has(YTt(L.key))).map(L=>({id:Fhr(L.key),status:L.status==="done"?"done":"active"}));C.length>0&&(R=C)}let A=u?u.signals_unmet:void 0,x=Array.isArray(A)?A:[],k=x.some(P=>P.signal==="conversation"||P.signal==="verify_conversation");if(!R&&u&&u.kind==="elaborate_loop"&&!k&&y&&i)try{let N=no(i,y).filter(C=>C.kind==="discovery"&&C.required).map(C=>{let L=(C.location??"").replace(/\{intent-slug\}/g,t),G=!1;if(L){let W=wc(process.cwd(),L);G=L.endsWith("/")?ay(W)&&rO(W).filter($=>$!==".gitkeep").length>0:ay(W)}return{id:C.name,status:G?"done":"active"}});N.length>0&&N.some(C=>C.status==="active")&&(R=N)}catch{}if(!R&&u&&u.kind==="elaborate_loop"&&!k){let P=new Set(x.map(L=>L.signal).filter(L=>!!L)),N=[{signal:"decompose",label:"decompose"},{signal:"verify_decompose",label:"verify"}],C=N.findIndex(L=>P.has(L.signal));C!==-1&&(R=N.map((L,G)=>({id:L.label,status:G{"use strict";ns();C3();Oa();VL();Gbe();ji();Ge();Kn();zEe();Dhr=new Set(["intent_review","record_reflection","seal_intent","pending_seal","sealed"]);HCt=new Set(["advance","advanced","closed"]),jhr=new Set(["reject","rejected"])});var XCt={};Ar(XCt,{resolveFallbackCommand:()=>ZCt,runStatusline:()=>$hr});import{execFileSync as qhr}from"node:child_process";import{existsSync as rR,mkdirSync as WCt,readFileSync as tF,writeFileSync as Nve}from"node:fs";import{homedir as f8}from"node:os";import{dirname as Cve,join as tl}from"node:path";function Bhr(){return new Promise(e=>{let t="";if(process.stdin.isTTY){e("");return}process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>e(t)),process.stdin.on("error",()=>e(t))})}function KCt(e){let t=e;for(let n=0;n<30;n++){let r=tl(t,".haiku");if(rR(r))return r;let i=Cve(t);if(i===t)break;t=i}return null}function zhr(e,t=f8()){let n=[],r=KCt(e);r&&n.push(tl(r,nF)),n.push(tl(t,".haiku",nF));for(let i of n)if(rR(i))try{return JSON.parse(tF(i,"utf8"))}catch{}return null}function Ghr(e){return e?YCt(e.statusLine):null}function YCt(e){let t=e;return t&&t.type==="command"&&typeof t.command=="string"&&t.command?t.command:null}function Pve(e){return e.includes("statusline")&&e.includes("haiku")}function Vhr(e){if(!rR(e))return null;try{let t=JSON.parse(tF(e,"utf8"));return YCt(t.statusLine)}catch{return null}}function Whr(e){let t=KCt(e);return t?Cve(t):e}function ZCt(e,t=f8()){let n=Ghr(zhr(e,t)),r=Whr(e),i=[tl(r,".claude","settings.local.json"),tl(r,".claude","settings.json"),tl(t,".claude","settings.json")];for(let s of i){let o=Vhr(s);if(o){if(Pve(o)){if(n&&!Pve(n))return n;continue}return o}}return n&&!Pve(n)?n:null}async function Khr(){let e=await Bhr(),t=process.cwd();try{let s=e?JSON.parse(e):{};t=s?.workspace?.current_dir??s?.cwd??s?.workspace?.project_dir??t}catch{}try{process.chdir(t)}catch{}let n=!!process.env.HAIKU_STATUSLINE_DEBUG,r=null;try{r=GCt()}catch(s){n&&process.stderr.write(`[haiku statusline] resolveStatuslineState threw: ${s instanceof Error?`${s.message} ${s.stack}`:String(s)} `)}if(n&&!r&&process.stderr.write(`[haiku statusline] no state (cwd=${process.cwd()}) -`),r){process.stdout.write(LCt(r));return}let i=ZCt(t);if(i)try{let s=qhr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function Zhr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function Jhr(){let e=nn();if(e&&Zhr(e))return`npx -y ${Yhr} statusline`;if(e){let t=tl(e,"bin","haiku");if(rR(t))return`${t} statusline`}return"haiku statusline"}function JCt(e,t){return e?{settingsPath:tl(d8(),".claude","settings.json"),haikuDir:tl(d8(),".haiku")}:{settingsPath:tl(t,".claude","settings.json"),haikuDir:tl(t,".haiku")}}function Xhr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=JCt(t,n),s={};if(rR(r))try{s=JSON.parse($U(r,"utf8"))}catch{console.error(`haiku statusline install: ${r} is not valid JSON \u2014 fix or remove it first.`),process.exit(1)}let o=s.statusLine,a=Jhr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(WCt(i,{recursive:!0}),Pve(tl(i,eF),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},WCt(Nve(r),{recursive:!0}),Pve(r,`${JSON.stringify(s,null,2)} +`),r){process.stdout.write(LCt(r));return}let i=ZCt(t);if(i)try{let s=qhr("sh",["-c",i],{input:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]});process.stdout.write(s)}catch{}}function Zhr(e){return process.env.HAIKU_PROD==="1"?!0:process.env.HAIKU_DEV==="1"?!1:/\/\.claude\/(plugins|mcpb)\//.test(e)}function Jhr(){let e=nn();if(e&&Zhr(e))return`npx -y ${Yhr} statusline`;if(e){let t=tl(e,"bin","haiku");if(rR(t))return`${t} statusline`}return"haiku statusline"}function JCt(e,t){return e?{settingsPath:tl(f8(),".claude","settings.json"),haikuDir:tl(f8(),".haiku")}:{settingsPath:tl(t,".claude","settings.json"),haikuDir:tl(t,".haiku")}}function Xhr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=JCt(t,n),s={};if(rR(r))try{s=JSON.parse(tF(r,"utf8"))}catch{console.error(`haiku statusline install: ${r} is not valid JSON \u2014 fix or remove it first.`),process.exit(1)}let o=s.statusLine,a=Jhr(),c=o&&typeof o=="object"&&typeof o.command=="string"&&o.command.includes("statusline");c||(WCt(i,{recursive:!0}),Nve(tl(i,nF),JSON.stringify({statusLine:o??null},null,2))),s.statusLine={type:"command",command:a,padding:0},WCt(Cve(r),{recursive:!0}),Nve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline installed \u2192 ${r} command: ${a} - fallback saved: ${c?"(unchanged)":tl(i,eF)}`)}function Qhr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=JCt(t,n);if(!rR(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse($U(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=tl(i,eF),a=null;if(rR(o))try{a=JSON.parse($U(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,Pve(r,`${JSON.stringify(s,null,2)} + fallback saved: ${c?"(unchanged)":tl(i,nF)}`)}function Qhr(e){let t=e.includes("--global"),n=process.cwd(),{settingsPath:r,haikuDir:i}=JCt(t,n);if(!rR(r)){console.error(`haiku statusline uninstall: no settings at ${r}`);return}let s;try{s=JSON.parse(tF(r,"utf8"))}catch{console.error(`haiku statusline uninstall: ${r} is not valid JSON`),process.exit(1)}let o=tl(i,nF),a=null;if(rR(o))try{a=JSON.parse(tF(o,"utf8")).statusLine}catch{}a?s.statusLine=a:delete s.statusLine,Nve(r,`${JSON.stringify(s,null,2)} `),console.error(`haiku statusline uninstalled \u2192 ${r} - restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function $hr(e){let t=e[0];return t==="install"?Xhr(e.slice(1)):t==="uninstall"?Qhr(e.slice(1)):Khr()}var eF,Yhr,QCt=v(()=>{"use strict";Ci();UCt();VCt();eF="statusline-fallback.json";Yhr="@haiku/haiku"});sh();process.on("uncaughtException",e=>{ms(e,{context:"uncaughtException"}),console.error("uncaughtException:",e),Ef().finally(()=>process.exit(1))});process.on("unhandledRejection",e=>{let t=e instanceof Error?e:new Error(String(e));ms(t,{context:"unhandledRejection"}),console.error("unhandledRejection:",e),Ef().finally(()=>process.exit(1))});var[f8,...Ep]=process.argv.slice(2);if(f8==="mcp"){let e=Promise.resolve().then(()=>(CKe(),NKe)).then(i=>{i.maybeRebuildSpaForDev(import.meta.url)}).catch(i=>(ms(i instanceof Error?i:new Error(String(i)),{context:"dev-spa-rebuild"}),console.error(`haiku mcp: SPA dev-rebuild failed: ${i instanceof Error?i.message:String(i)}`),Ef().finally(()=>process.exit(1)))),t="",n=[];for(let i=0;i(_f(),MKe)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(iCt(),Fpr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Ef().finally(()=>process.exit(1))})}else if(f8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(xCt(),ICt)).then(t=>t.runHook(e,Ep.slice(1))).catch(t=>{ms(t,{context:`hook:${e}`}),console.error(`haiku hook ${e}: ${t.message}`),Ef().finally(()=>process.exit(1))})}else f8==="migrate"?Promise.resolve().then(()=>(CCt(),NCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Ef().finally(()=>process.exit(1))}):f8==="statusline"?Promise.resolve().then(()=>(QCt(),XCt)).then(e=>e.runStatusline(Ep)).catch(e=>{ms(e,{context:"statusline"}),process.env.HAIKU_STATUSLINE_DEBUG&&console.error(`[haiku statusline] handler error: ${e instanceof Error?`${e.message} + restored: ${a?"original statusLine":"(none \u2014 removed)"}`)}async function $hr(e){let t=e[0];return t==="install"?Xhr(e.slice(1)):t==="uninstall"?Qhr(e.slice(1)):Khr()}var nF,Yhr,QCt=v(()=>{"use strict";Ci();UCt();VCt();nF="statusline-fallback.json";Yhr="@haiku/haiku"});sh();process.on("uncaughtException",e=>{ms(e,{context:"uncaughtException"}),console.error("uncaughtException:",e),Ef().finally(()=>process.exit(1))});process.on("unhandledRejection",e=>{let t=e instanceof Error?e:new Error(String(e));ms(t,{context:"unhandledRejection"}),console.error("unhandledRejection:",e),Ef().finally(()=>process.exit(1))});var[p8,...Ep]=process.argv.slice(2);if(p8==="mcp"){let e=Promise.resolve().then(()=>(MKe(),CKe)).then(i=>{i.maybeRebuildSpaForDev(import.meta.url)}).catch(i=>(ms(i instanceof Error?i:new Error(String(i)),{context:"dev-spa-rebuild"}),console.error(`haiku mcp: SPA dev-rebuild failed: ${i instanceof Error?i.message:String(i)}`),Ef().finally(()=>process.exit(1)))),t="",n=[];for(let i=0;i(_f(),DKe)).then(i=>i.setHarness(t)):Promise.resolve();Promise.all([e,r]).then(()=>Promise.resolve().then(()=>(iCt(),Fpr))).catch(i=>{ms(i,{context:"mcp-bootstrap"}),console.error(`haiku mcp: ${i.message}`),Ef().finally(()=>process.exit(1))})}else if(p8==="hook"){let e=Ep[0];e||(console.error("Usage: haiku hook "),process.exit(1)),Promise.resolve().then(()=>(xCt(),ICt)).then(t=>t.runHook(e,Ep.slice(1))).catch(t=>{ms(t,{context:`hook:${e}`}),console.error(`haiku hook ${e}: ${t.message}`),Ef().finally(()=>process.exit(1))})}else p8==="migrate"?Promise.resolve().then(()=>(CCt(),NCt)).then(e=>e.runMigrate(Ep)).catch(e=>{ms(e,{context:"migrate"}),console.error(`haiku migrate: ${e.message}`),Ef().finally(()=>process.exit(1))}):p8==="statusline"?Promise.resolve().then(()=>(QCt(),XCt)).then(e=>e.runStatusline(Ep)).catch(e=>{ms(e,{context:"statusline"}),process.env.HAIKU_STATUSLINE_DEBUG&&console.error(`[haiku statusline] handler error: ${e instanceof Error?`${e.message} ${e.stack}`:String(e)}`),Ef().finally(()=>process.exit(0))}):(console.error("Usage: haiku [args...]"),process.exit(1)); /*! Bundled license information: diff --git a/plugin/prompts/intent/seal/pending_seal/template.eta.md b/plugin/prompts/intent/seal/pending_seal/template.eta.md index d875463ae..dc6353a1d 100644 --- a/plugin/prompts/intent/seal/pending_seal/template.eta.md +++ b/plugin/prompts/intent/seal/pending_seal/template.eta.md @@ -10,4 +10,6 @@ Tell the user the intent is ready to merge<% if (prUrl) { %> — the delivery ch Nothing further is required from you on this tick. The intent seals automatically the next time the engine runs after `<%= intentMain %>` lands on `<%= defaultBranch %>` — a local merge or a merged change request both count. -When the user comes back later with `/haiku:haiku-pickup`, the engine re-audits the open change request: any open feedback is addressed, and new review comments on the change request become fresh feedback items to resolve before it seals. +The engine already merged the latest `<%= defaultBranch %>` into `<%= intentMain %>` before this tick (it keeps the branch current with its target every tick), so the change request stays mergeable. If that merge surfaced a genuine conflict, you'll have gotten a `pre_cursor_sync_conflict` instead of this message — resolve it and re-tick, then you'll land back here. + +When the user comes back later with `/haiku:haiku-pickup`, the engine re-syncs the branch and re-audits the open change request: any open feedback is addressed, and new review comments on the change request become fresh feedback items to resolve before it seals. From b3ecad8320969bf60e6e2ac6890a20c92abbcb07 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 10:11:50 -0600 Subject: [PATCH 16/24] feat(browse): open stage-view outputs in a modal + tame hat-history blockquotes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Consistency: the stage view's UNIT OUTPUTS expanded inline while the unit view opened a modal. Standardize on the modal — a unit-output row now opens its file in a centered modal (new OutputFileModal shell, mirrors the unit DocModal), rendered via the same FilePreview, so outputs open the same way on both surfaces. Hat/Fix history: a `>` aside in a handoff baton rendered with the default `prose` blockquote style — oversized italic text wrapped in curly quotation marks, which looked off for a one-line note. Tone it down to a quiet left-ruled, non-italic note and drop the auto-inserted quote glyphs (shared BATON_MARKDOWN_CLASS across hat + fix history). Verified live (Playwright): clicking a stage UNIT OUTPUTS row opens the file in a modal (plan-unit-001-render-new-tag.md rendered inside). Co-Authored-By: Claude Opus 4.7 --- .../browse/components/IntentDetailView.tsx | 78 ++++++++++++++++--- .../browse/components/IterationHistory.tsx | 15 +++- 2 files changed, 79 insertions(+), 14 deletions(-) diff --git a/website/app/browse/components/IntentDetailView.tsx b/website/app/browse/components/IntentDetailView.tsx index 774361b82..a59b40dea 100644 --- a/website/app/browse/components/IntentDetailView.tsx +++ b/website/app/browse/components/IntentDetailView.tsx @@ -1470,26 +1470,21 @@ function LazyOutputPreview({ }, [open, provider, path, slug, intentBranch]) return ( -
+ <> {open && ( -
+ setOpen(false)}> {state.loading &&

Loading…

} {!state.loading && state.error && (

{state.error}

@@ -1502,8 +1497,67 @@ function LazyOutputPreview({ host={host} /> )} -
+ )} + + ) +} + +/** Centered modal shell for a previewed unit-output file — Escape / backdrop + * close. Mirrors the unit view's DocModal so outputs open the same way on both + * the stage and unit surfaces. */ +function OutputFileModal({ + name, + onClose, + children, +}: { + name: string + onClose: () => void + children: React.ReactNode +}) { + useEffect(() => { + const onKey = (e: KeyboardEvent) => { + if (e.key === "Escape") onClose() + } + document.addEventListener("keydown", onKey) + document.body.style.overflow = "hidden" + return () => { + document.removeEventListener("keydown", onKey) + document.body.style.overflow = "" + } + }, [onClose]) + return ( +
{ + if (e.key === "Escape") onClose() + }} + role="dialog" + aria-modal="true" + aria-label={`File viewer: ${name}`} + > + {/* biome-ignore lint/a11y/noStaticElementInteractions: inner container stops backdrop-close propagation */} + {/* biome-ignore lint/a11y/useKeyWithClickEvents: stopPropagation is click-capture suppression */} +
e.stopPropagation()} + > +
+

+ {name} +

+ +
+
{children}
+
) } diff --git a/website/app/browse/components/IterationHistory.tsx b/website/app/browse/components/IterationHistory.tsx index a9ed119aa..72a3d0d68 100644 --- a/website/app/browse/components/IterationHistory.tsx +++ b/website/app/browse/components/IterationHistory.tsx @@ -7,6 +7,17 @@ import { BrowseMarkdown } from "./BrowseMarkdown" +// Markdown styling for a handoff baton. Tones down the default `prose` +// blockquote (which renders oversized italic text wrapped in curly quotation +// marks — it looked weird for a one-line `>` aside in a baton) into a quiet +// left-ruled note, and drops the auto-inserted quote glyphs. +const BATON_MARKDOWN_CLASS = + "prose prose-sm prose-stone max-w-none [overflow-wrap:anywhere] dark:prose-invert " + + "prose-blockquote:border-l-2 prose-blockquote:border-stone-300 prose-blockquote:pl-3 " + + "prose-blockquote:font-normal prose-blockquote:not-italic prose-blockquote:text-stone-500 " + + "dark:prose-blockquote:border-stone-600 dark:prose-blockquote:text-stone-400 " + + "[&_blockquote_p:first-of-type]:before:content-none [&_blockquote_p:last-of-type]:after:content-none" + /** One hat-loop iteration from a unit or feedback frontmatter * (VCS-parsed). Units use `result: advance | reject`; feedback uses * `advanced | closed | reopened | rejected`. */ @@ -109,7 +120,7 @@ export function HatHistory({ iterations }: { iterations?: unknown }) { commit={it.commit} /> -
+
{handoff}
@@ -161,7 +172,7 @@ export function FixHistory({ iterations }: { iterations?: unknown }) { bolt={it.bolt} /> -
+
{handoff}
From 86c45ecb15b39af221b742351abdda82578b9031 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 10:18:31 -0600 Subject: [PATCH 17/24] feat(browse): render hat/fix history as a horizontal stepper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The collapsed-row list (per-row left-border stubs, a chevron per hat) read as cluttered and sparse. Replace it with a horizontal stepper: the hat sequence as connected dots (result-colored, filled when selected) with the hat name + result under each, and a single handoff panel below that shows the selected step's baton as rendered markdown. Nothing selected initially — the timeline reads as a flow first, detail on demand. Shared IterationStepper backs both the unit Hat history and the feedback Fix history. Verified live (Playwright, worker-new-badge unit): planner → builder → reviewer render as a connected stepper; clicking builder opens its handoff markdown. Co-Authored-By: Claude Opus 4.7 --- .../browse/components/IterationHistory.tsx | 236 ++++++++---------- 1 file changed, 111 insertions(+), 125 deletions(-) diff --git a/website/app/browse/components/IterationHistory.tsx b/website/app/browse/components/IterationHistory.tsx index 72a3d0d68..68e8d5c63 100644 --- a/website/app/browse/components/IterationHistory.tsx +++ b/website/app/browse/components/IterationHistory.tsx @@ -1,10 +1,14 @@ +"use client" + // Iteration-history timelines for the browse views — the per-hat handoff // messages the engine records on every advance/reject as a unit walks its // hat sequence or a finding goes through its fix loop. Shared by // UnitDetailView (unit "Hat history" + UnitFeedbackCard "Fix history") and // IntentDetailView (FeedbackCard "Fix history") so both read the handoff -// the same way. +// the same way. Rendered as a horizontal stepper: the hat sequence as +// connected dots, click a step to read its handoff below. +import { Fragment, useState } from "react" import { BrowseMarkdown } from "./BrowseMarkdown" // Markdown styling for a handoff baton. Tones down the default `prose` @@ -32,163 +36,145 @@ export interface HatIteration { reason?: string } +function isAdvance(result?: string | null): boolean { + return result === "advance" || result === "advanced" || result === "closed" +} +function isReject(result?: string | null): boolean { + return result === "reject" || result === "rejected" || result === "reopened" +} + /** Tailwind classes for an iteration's result pill, covering both the unit * (`advance`/`reject`) and feedback (`advanced`/`closed`/`reopened`/ * `rejected`) result vocabularies. */ export function iterationResultClass(result?: string | null): string { - if (result === "advance" || result === "advanced" || result === "closed") { + if (isAdvance(result)) { return "bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300" } - if (result === "reject" || result === "rejected" || result === "reopened") { + if (isReject(result)) { return "bg-rose-100 text-rose-700 dark:bg-rose-900/40 dark:text-rose-300" } return "bg-stone-100 text-stone-600 dark:bg-stone-800 dark:text-stone-300" } -/** The visible heading row for one iteration — hat name, result pill, and the - * optional bolt index / commit short-sha. Used as the `` of a - * collapsible iteration (or standalone when there's no handoff body). */ -function IterationHeading({ - hat, - result, - commit, - bolt, -}: { - hat?: string - result?: string | null - commit?: string - bolt?: number -}) { +/** The step node's dot — filled when selected, result-colored either way. */ +function dotClass(result: string | null | undefined, active: boolean): string { + const base = "h-3.5 w-3.5 flex-shrink-0 rounded-full border-2 transition" + if (isAdvance(result)) { + return `${base} border-emerald-500 ${active ? "bg-emerald-500" : "bg-emerald-100 dark:bg-emerald-900/40"}` + } + if (isReject(result)) { + return `${base} border-rose-500 ${active ? "bg-rose-500" : "bg-rose-100 dark:bg-rose-900/40"}` + } + return `${base} border-stone-400 ${active ? "bg-stone-400" : "bg-stone-100 dark:bg-stone-800"}` +} + +function handoffOf(it: HatIteration): string | undefined { + return it.message ?? it.reason +} + +/** Horizontal stepper for a hat sequence / fix loop. Each iteration is a + * connected dot with its hat name + result; clicking one opens its handoff + * baton (rendered markdown) in a panel below. Nothing is selected initially — + * the timeline reads as a flow first, detail on demand. */ +function IterationStepper({ items }: { items: HatIteration[] }) { + const [selected, setSelected] = useState(null) + const active = selected != null ? items[selected] : null + const activeHandoff = active ? handoffOf(active) : undefined return ( - <> - {typeof bolt === "number" && ( - - bolt {bolt} - - )} - - {hat ?? "—"} - - {result && ( - - {result} - - )} - {commit && ( - - {commit.slice(0, 7)} - +
+
+ {items.map((it, i) => ( + // biome-ignore lint/suspicious/noArrayIndexKey: append-only ordered log + + {i > 0 && ( +
+ )} + + + ))} +
+ {active ? ( +
+
+ + {active.hat ?? "—"} + + {typeof active.bolt === "number" && ( + + bolt {active.bolt} + + )} + {active.commit && ( + + {active.commit.slice(0, 7)} + + )} +
+ {activeHandoff ? ( +
+ {activeHandoff} +
+ ) : ( +

+ No handoff recorded. +

+ )} +
+ ) : ( +

+ Click a step to read its handoff. +

)} - +
) } -/** Hat-history timeline for a browsed unit — the per-hat handoffs the - * engine recorded as the unit walked its hat sequence. Reads - * `iterations[]` from the unit frontmatter; renders nothing when absent. */ +/** Hat-history stepper for a browsed unit — the per-hat handoffs the engine + * recorded as the unit walked its hat sequence. Reads `iterations[]` from the + * unit frontmatter; renders nothing when absent. */ export function HatHistory({ iterations }: { iterations?: unknown }) { if (!Array.isArray(iterations) || iterations.length === 0) return null - const items = iterations as HatIteration[] return (

Hat history

-
    - {items.map((it, idx) => { - const handoff = it.message ?? it.reason - return ( -
  1. - {handoff ? ( -
    - - - ▸ - - - -
    - {handoff} -
    -
    - ) : ( -
    - -
    - )} -
  2. - ) - })} -
+
+ +
) } -/** Compact fix-history timeline for a browsed feedback card — the per-hat - * handoff messages the fix loop recorded against the finding. Reads - * `iterations[]` from the FB frontmatter; renders nothing when absent. */ +/** Compact fix-history stepper for a browsed feedback card — the per-hat + * handoffs the fix loop recorded against the finding. Reads `iterations[]` + * from the FB frontmatter; renders nothing when absent. */ export function FixHistory({ iterations }: { iterations?: unknown }) { if (!Array.isArray(iterations) || iterations.length === 0) return null - const items = iterations as HatIteration[] return (
-
+
Fix history
-
    - {items.map((it, idx) => { - const handoff = it.message ?? it.reason - return ( -
  1. - {handoff ? ( -
    - - - ▸ - - - -
    - {handoff} -
    -
    - ) : ( -
    - -
    - )} -
  2. - ) - })} -
+
) } From 2756b5dfb1308b896ee4e49992bcd8f741751a5e Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 10:34:32 -0600 Subject: [PATCH 18/24] feat(browse): shared sign-off component + every role opens its definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Intent-level approvals now use the SAME sign-off component as the unit view (extracted SignOffGroup), and every role — unit or intent — opens a modal explaining what it does, not just studio review agents: - studio review / intent-review agents -> their `*.md` mandate - engine roles (spec / continuity / cross-stage-consistency) -> the engine prompt body for the phase walk (review = pre-execute, approve = post-execute, intent = completion) - user -> a description of the human gate - quality_gates / intent_quality_gates -> the executable command list (unit's own gates; intent scope shows the deduped union across all units) Bundling (build): `_build-prototype-content.mjs` now captures studio `intent-review-agents/`, the global `plugin/intent-review-agents/` tier (delivery-verifier), and the engine-review bodies (review/approve/intent × spec/continuity/cross-stage-consistency) into prototype-stage-content.json. `loadRoleDef` in studio-defs.ts resolves all of the above; the unit's IntentApprovalsCard collapses to a thin wrapper over the shared component. Verified live (Playwright, worker-new-badge intent): Delivery Verifier opens its global mandate, Spec opens the intent-scope engine prompt, User opens the gate description, Intent Quality Gates opens the command union. Co-Authored-By: Claude Opus 4.7 --- website/_build-prototype-content.mjs | 41 ++ .../browse/components/IntentDetailView.tsx | 130 ++--- .../app/browse/components/SignOffGroup.tsx | 216 +++++++ .../app/browse/components/UnitDetailView.tsx | 146 +---- website/app/browse/components/studio-defs.ts | 139 ++++- website/public/prototype-stage-content.json | 533 ++++++++++++++++-- 6 files changed, 919 insertions(+), 286 deletions(-) create mode 100644 website/app/browse/components/SignOffGroup.tsx diff --git a/website/_build-prototype-content.mjs b/website/_build-prototype-content.mjs index 3a29b0afa..7790ef5c3 100644 --- a/website/_build-prototype-content.mjs +++ b/website/_build-prototype-content.mjs @@ -12,8 +12,37 @@ import yaml from "js-yaml" const ROOT = join(import.meta.dirname, "..") const STUDIOS_DIR = join(ROOT, "plugin/studios") +const PROMPTS_DIR = join(ROOT, "plugin/prompts") const OUT = join(import.meta.dirname, "public/prototype-stage-content.json") +// Engine-owned review/approval roles (spec, continuity, cross-stage-consistency) +// have no studio `review-agents/*.md` — their mandate lives in the engine prompt +// bodies. The browse sign-off modal renders these, so bundle them keyed by the +// phase walk (review = pre-execute, approve = post-execute, intent = completion) +// and the role. File names use `cross_stage_consistency`; the sign-off role key +// is `cross-stage-consistency`, so normalize. +const ENGINE_BODY_DIRS = { + review: "stage/review/dispatch_review/engine-bodies", + approve: "stage/approve/dispatch_approval/engine-bodies", + intent: "intent/review/intent_review/engine-bodies", +} +function readEngineBodies() { + const out = {} + for (const [scope, rel] of Object.entries(ENGINE_BODY_DIRS)) { + const dir = join(PROMPTS_DIR, rel) + const roles = {} + if (existsSync(dir)) { + for (const f of readdirSync(dir).filter((n) => n.endsWith(".eta.md"))) { + const role = f.replace(/\.eta\.md$/, "").replace(/_/g, "-") + const raw = tryRead(join(dir, f)) + if (raw) roles[role] = { body: raw, path: `plugin/prompts/${rel}/${f}` } + } + } + out[scope] = roles + } + return out +} + function tryRead(p) { try { return readFileSync(p, "utf8") @@ -120,6 +149,10 @@ function buildStudio(dir) { join(studioDir, "operations"), `${repoPrefix}/operations`, ), + intentReviewAgents: listMdFiles( + join(studioDir, "intent-review-agents"), + `${repoPrefix}/intent-review-agents`, + ), templates: listMdFiles( join(studioDir, "templates"), `${repoPrefix}/templates`, @@ -223,6 +256,14 @@ const payload = { defaultStudio: "software", studioList, studios, + engineReviewBodies: readEngineBodies(), + // Global-tier intent-review-agents (e.g. delivery-verifier) every studio + // inherits — the sign-off modal resolves these when a studio tier doesn't + // override by name. + globalIntentReviewAgents: listMdFiles( + join(ROOT, "plugin/intent-review-agents"), + "plugin/intent-review-agents", + ), } writeFileSync(OUT, JSON.stringify(payload, null, 2)) diff --git a/website/app/browse/components/IntentDetailView.tsx b/website/app/browse/components/IntentDetailView.tsx index a59b40dea..26f549330 100644 --- a/website/app/browse/components/IntentDetailView.tsx +++ b/website/app/browse/components/IntentDetailView.tsx @@ -27,6 +27,8 @@ import { RESOLUTION_BADGES, SEVERITY_BADGES } from "./feedback-badges" import { FixHistory } from "./IterationHistory" import { IntentKanban } from "./KanbanView" import { RenderedHtmlFrame } from "./RenderedHtmlFrame" +import { SignOffGroup } from "./SignOffGroup" +import type { QualityGate } from "./studio-defs" import { UnitDetailView } from "./UnitDetailView" function titleCase(s: string): string { @@ -572,7 +574,11 @@ export function IntentDetailView({

Intent Approvals

- + )} @@ -1562,89 +1568,57 @@ function OutputFileModal({ ) } -/** Surfaces the engine's intent-completion approval roles. Each entry - * is a `{ role, signed, at }` triple read off `intent.md.approvals.*`. - * We label `intent_quality_gates` as derived (it's the union of every - * unit's `quality_gates:` declarations, never declared on intent.md). - * Studio-specific roles render with their raw key; viewers can hover - * for a tooltip explaining the role exists in the studio's - * `review-agents/` directory. */ +/** Union of every unit's executable quality gates across the intent — the set + * the engine runs once at intent scope for the `intent_quality_gates` role. + * Deduped by command so the same gate declared on many units shows once. */ +function collectIntentQualityGates(intent: HaikuIntentDetail): QualityGate[] { + const byCommand = new Map() + for (const stage of intent.stages) { + for (const unit of stage.units) { + const gates = unit.raw.quality_gates + if (!Array.isArray(gates)) continue + for (const g of gates) { + if ( + g && + typeof g === "object" && + typeof (g as { command?: unknown }).command === "string" + ) { + const gate = g as QualityGate + if (!byCommand.has(gate.command)) byCommand.set(gate.command, gate) + } + } + } + } + return [...byCommand.values()] +} + +/** Surfaces the engine's intent-completion approval roles via the shared + * sign-off list, so each role opens the same modal as the unit view: engine + * roles show their intent-completion prompt, `user` the gate description, + * `intent_quality_gates` the command union, studio intent-review agents their + * mandate. The engine writes these to `intent.md.approvals` as each gate fires. */ function IntentApprovalsCard({ approvals, + studio, + qualityGates, }: { approvals: ReadonlyArray<{ role: string; signed: boolean; at: string | null }> + studio: string + qualityGates: QualityGate[] }) { - const ENGINE_ROLES: Record = { - spec: { - label: "Spec", - tooltip: - "Intent-completion spec review — engine-built, mirrors the per-stage spec gate.", - }, - continuity: { - label: "Continuity", - tooltip: - "Cross-stage continuity check — verifies that promises declared in earlier stages were honored.", - }, - user: { - label: "User", - tooltip: "User approval — the human signs off on the intent as a whole.", - }, - intent_quality_gates: { - label: "Intent quality gates", - tooltip: - "Derived role — the engine runs the union of every unit's `quality_gates:` declarations once at intent scope. Not declared on intent.md.", - }, - } return ( -
- {approvals.map((a) => { - const meta = ENGINE_ROLES[a.role] - const isDerived = a.role === "intent_quality_gates" - return ( -
-
-
-
- {a.signed ? ( - <> - - signed - - {a.at && ( - - )} - - ) : ( - - pending - - )} -
-
- ) - })} -
+ ({ + role: a.role, + signed: a.signed, + signedAt: a.at, + }))} + studio={studio} + stageName="" + scope="intent" + qualityGates={qualityGates} + /> ) } diff --git a/website/app/browse/components/SignOffGroup.tsx b/website/app/browse/components/SignOffGroup.tsx new file mode 100644 index 000000000..44679b892 --- /dev/null +++ b/website/app/browse/components/SignOffGroup.tsx @@ -0,0 +1,216 @@ +"use client" + +// Shared review/approval sign-off list — one signed/pending row per role, with +// the studio review-agent roles opening their mandate in a modal. Used by both +// the unit detail view (per-unit Reviews + Approvals) and the intent overview +// (intent-completion approvals) so the two surfaces render sign-offs the same +// way. + +import { useEffect, useState } from "react" +import { formatDate } from "@/lib/browse/types" +import { BrowseMarkdown } from "./BrowseMarkdown" +import { + loadRoleDef, + type QualityGate, + roleOpensModal, + type SignOffScope, +} from "./studio-defs" + +export interface SignOffEntry { + role: string + signed: boolean + signedAt: string | null +} + +/** Human label for a review/approval role. Raw role names read fine; we just + * tidy the multi-word engine roles and the special gates. */ +export function roleLabel(role: string): string { + if (role === "user") return "User" + if (role === "quality_gates") return "Quality Gates" + if (role === "intent_quality_gates") return "Intent Quality Gates" + if (role === "cross-stage-consistency") return "Cross-stage Consistency" + return role + .split(/[-_]/) + .map((w) => w.charAt(0).toUpperCase() + w.slice(1)) + .join(" ") +} + +/** A group of sign-offs (e.g. "Reviews" or "Approvals"). Each role opens a + * modal explaining what it does: a studio agent's mandate, an engine role's + * prompt body, the user-gate description, or the quality-gate command list. + * `stage` may be empty for intent-scope approvals — the loader then scans all + * stages for a stage-defined agent. `scope` picks the engine prompt variant + * (review = pre-execute, approve = post-execute, intent = completion). */ +export function SignOffGroup({ + title, + entries, + studio, + stageName, + scope, + qualityGates, +}: { + title: string + entries: SignOffEntry[] + studio: string + stageName: string + scope: SignOffScope + qualityGates?: QualityGate[] +}) { + const [def, setDef] = useState<{ + role: string + body: string + path: string | null + } | null>(null) + const openDef = async (role: string) => { + const loaded = await loadRoleDef({ + role, + studio, + stage: stageName, + scope, + qualityGates, + }) + if (loaded) setDef({ role, body: loaded.body, path: loaded.path }) + } + return ( +
+
+ {title} +
+
    + {entries.map(({ role, signed, signedAt }) => ( +
  • +
    + + {signed ? ( + + ) : ( + + {roleOpensModal(role, studio, qualityGates) ? ( + + ) : ( + + {roleLabel(role)} + + )} +
    + + {signedAt ? formatDate(signedAt) : signed ? "signed" : "pending"} + +
  • + ))} +
+ {def && ( + setDef(null)} + /> + )} +
+ ) +} + +/** Modal that renders a review-agent mandate (markdown) in place. */ +function AgentDefModal({ + title, + path, + body, + onClose, +}: { + title: string + path: string | null + body: string + onClose: () => void +}) { + useEffect(() => { + const onKey = (e: KeyboardEvent) => { + if (e.key === "Escape") onClose() + } + document.addEventListener("keydown", onKey) + document.body.style.overflow = "hidden" + return () => { + document.removeEventListener("keydown", onKey) + document.body.style.overflow = "" + } + }, [onClose]) + return ( +
{ + if (e.key === "Escape") onClose() + }} + role="dialog" + aria-modal="true" + aria-label={`Agent definition: ${title}`} + > + {/* biome-ignore lint/a11y/noStaticElementInteractions: inner container stops backdrop-close propagation */} + {/* biome-ignore lint/a11y/useKeyWithClickEvents: stopPropagation is click-capture suppression */} +
e.stopPropagation()} + > +
+
+

+ {title} +

+ {path && ( +

+ {path} +

+ )} +
+ +
+
+
+ {body} +
+
+
+
+ ) +} diff --git a/website/app/browse/components/UnitDetailView.tsx b/website/app/browse/components/UnitDetailView.tsx index 4257ef17e..62f03527f 100644 --- a/website/app/browse/components/UnitDetailView.tsx +++ b/website/app/browse/components/UnitDetailView.tsx @@ -23,7 +23,8 @@ import { FilePreview, isTextFile } from "./FilePreview" import { RESOLUTION_BADGES } from "./feedback-badges" import { FixHistory, HatHistory } from "./IterationHistory" import { RenderedHtmlFrame } from "./RenderedHtmlFrame" -import { loadReviewAgentDef } from "./studio-defs" +import { SignOffGroup } from "./SignOffGroup" +import type { QualityGate } from "./studio-defs" function titleCase(s: string): string { return s @@ -982,34 +983,19 @@ function readSignOffs( return expectedRoles.map((role) => slotSignOff(role, record[role])) } -/** Human label for a review/approval role. Raw role names read fine; we just - * tidy the multi-word engine roles and the special gates. */ -function roleLabel(role: string): string { - if (role === "user") return "User" - if (role === "quality_gates") return "Quality Gates" - if (role === "cross-stage-consistency") return "Cross-stage Consistency" - return role - .split(/[-_]/) - .map((w) => w.charAt(0).toUpperCase() + w.slice(1)) - .join(" ") -} - -/** Engine-owned roles + the human/gate slots have no studio definition page — - * they're built into the workflow, not authored as `review-agents/*.md`. - * Everything else stamped is a studio review agent with a def we can link. */ -const ENGINE_OR_GATE_ROLES = new Set([ - "spec", - "continuity", - "cross-stage-consistency", - "quality_gates", - "user", -]) - -/** A role is linkable to a studio definition when it's a studio review agent - * (not an engine role and not the user/quality-gate slot). Those agents ship - * a `review-agents/.md` mandate we can open in a modal. */ -function roleIsLinkable(role: string, studio: string): boolean { - return Boolean(studio) && !ENGINE_OR_GATE_ROLES.has(role) +/** Collect a unit's executable quality gates from frontmatter — the + * `{name, command, dir?}` objects (prose strings are skipped). Surfaced in the + * sign-off modal for the `quality_gates` role. */ +function unitQualityGates(raw: Record): QualityGate[] { + const gates = raw.quality_gates + if (!Array.isArray(gates)) return [] + return gates.flatMap((g) => + g && + typeof g === "object" && + typeof (g as { command?: unknown }).command === "string" + ? [g as QualityGate] + : [], + ) } /** @@ -1054,6 +1040,7 @@ function SignOffsSection({ const reviews = readSignOffs(reviewsRaw, reviewRoles) const approvals = readSignOffs(approvalsRaw, approvalRoles) if (reviews.length === 0 && approvals.length === 0) return null + const qualityGates = unitQualityGates(unit.raw) return (

@@ -1066,6 +1053,8 @@ function SignOffsSection({ entries={reviews} studio={studio} stageName={stageName} + scope="review" + qualityGates={qualityGates} /> )} {approvals.length > 0 && ( @@ -1074,6 +1063,8 @@ function SignOffsSection({ entries={approvals} studio={studio} stageName={stageName} + scope="approve" + qualityGates={qualityGates} /> )}

@@ -1081,103 +1072,6 @@ function SignOffsSection({ ) } -function SignOffGroup({ - title, - entries, - studio, - stageName, -}: { - title: string - entries: Array<{ role: string; signed: boolean; signedAt: string | null }> - studio: string - stageName: string -}) { - // Open the agent's mandate in a modal (instead of navigating to the studio - // stage page). Loaded lazily from the bundled studio defs on click. - const [def, setDef] = useState<{ - role: string - body: string - path: string | null - } | null>(null) - const openDef = async (role: string) => { - const loaded = await loadReviewAgentDef(studio, stageName, role) - if (loaded) setDef({ role, body: loaded.body, path: loaded.path }) - } - return ( -
-
- {title} -
-
    - {entries.map(({ role, signed, signedAt }) => ( -
  • -
    - - {signed ? ( - - ) : ( - - {roleIsLinkable(role, studio) ? ( - - ) : ( - - {roleLabel(role)} - - )} -
    - - {signedAt ? formatDate(signedAt) : signed ? "signed" : "pending"} - -
  • - ))} -
- {def && ( - setDef(null)} - /> - )} -
- ) -} - const OUTPUT_IMAGE_EXTS = new Set([ "png", "jpg", diff --git a/website/app/browse/components/studio-defs.ts b/website/app/browse/components/studio-defs.ts index d8e8c34c7..970586f55 100644 --- a/website/app/browse/components/studio-defs.ts +++ b/website/app/browse/components/studio-defs.ts @@ -1,9 +1,12 @@ -// Lazy client loader for bundled studio definitions (review-agent + hat -// mandate bodies). They're built from plugin/studios into the static -// /prototype-stage-content.json (the same file the architecture map reads), so -// the browse detail view can open an agent's mandate in a modal without a -// round-trip to the studio stage page. Static-export friendly: a plain fetch -// of a public asset, cached module-level. +// Lazy client loader for bundled studio definitions, used by the sign-off modal +// to show what each review/approval role actually does: +// - studio review / intent-review agents -> their `*.md` mandate body +// - engine roles (spec / continuity / cross-stage-consistency) -> the engine +// prompt body for the phase walk (review / approve / intent) +// - user -> a description of the human gate +// - quality_gates -> the unit/intent's gate command list +// All read from the static /prototype-stage-content.json (the same asset the +// architecture map reads), cached module-level. Static-export friendly. interface AgentDef { body?: string @@ -15,9 +18,12 @@ interface StageContent { } interface StudioContent { stages?: Record + intentReviewAgents?: Record } interface StageContentRoot { studios?: Record + engineReviewBodies?: Record> + globalIntentReviewAgents?: Record } let cache: Promise | null = null @@ -31,33 +37,118 @@ function loadStageContent(): Promise { return cache } -export interface ReviewAgentDef { +export interface RoleDefBody { body: string path: string | null } -/** Resolve a review/approval agent's mandate body for (studio, stage, role). - * Tries the named stage first, then any stage in the studio (a borrowed - * agent's def lives on its home stage). Returns null when the role ships no - * def — engine roles (spec/continuity/…) and the user/quality-gate slots. */ +export type SignOffScope = "review" | "approve" | "intent" + +export interface QualityGate { + name?: string + command: string + dir?: string +} + +const ENGINE_BODY_ROLES = new Set([ + "spec", + "continuity", + "cross-stage-consistency", +]) + +function bodyOf(def?: AgentDef): RoleDefBody | null { + const body = def?.body ?? def?.content + return body ? { body, path: def?.path ?? null } : null +} + +/** Resolve a studio agent's mandate body for (studio, stage, role): a stage + * review agent (named stage first, then any stage for a borrowed agent), then + * a studio intent-review agent, then a global intent-review agent. */ export async function loadReviewAgentDef( studio: string, stage: string, role: string, -): Promise { +): Promise { + const content = await loadStageContent() + const sc = content?.studios?.[studio] + const stages = sc?.stages + if (stages) { + const direct = bodyOf(stages[stage]?.reviewAgents?.[role]) + if (direct) return direct + for (const s of Object.values(stages)) { + const hit = bodyOf(s?.reviewAgents?.[role]) + if (hit) return hit + } + } + return ( + bodyOf(sc?.intentReviewAgents?.[role]) ?? + bodyOf(content?.globalIntentReviewAgents?.[role]) + ) +} + +/** The engine prompt body for an engine role at a given phase walk. */ +async function loadEngineBody( + scope: SignOffScope, + role: string, +): Promise { const content = await loadStageContent() - const stages = content?.studios?.[studio]?.stages - if (!stages) return null - const pick = (sc?: StageContent): ReviewAgentDef | null => { - const def = sc?.reviewAgents?.[role] - const body = def?.body ?? def?.content - return body ? { body, path: def?.path ?? null } : null + return bodyOf(content?.engineReviewBodies?.[scope]?.[role]) +} + +const USER_GATE_BODY = `**Mandate:** The \`user\` gate is the one checkpoint where a human — not an agent — signs off. + +The engine pauses here and waits for a person to approve the work. It is the human-in-the-loop control point: a reviewer reads what was produced, then approves (advance) or requests changes (which open feedback the fix loop addresses). + +Autopilot intents drop this gate — they run without a human approval step — so it won't appear on an autopilot unit.` + +function formatQualityGates(gates?: QualityGate[]): RoleDefBody | null { + const list = (gates ?? []).filter( + (g) => g && typeof g.command === "string" && g.command.trim().length > 0, + ) + if (list.length === 0) return null + const blocks = list + .map((g) => { + const head = `### ${g.name?.trim() || "gate"}` + const dir = g.dir ? `Runs in \`${g.dir}\`\n\n` : "" + return `${head}\n\n${dir}\`\`\`sh\n${g.command.trim()}\n\`\`\`` + }) + .join("\n\n") + const body = `**Quality gates** — executable checks run at advance time; a non-zero exit blocks the gate.\n\n${blocks}` + return { body, path: null } +} + +/** Resolve the modal body for any sign-off role: + * user -> gate description; quality_gates -> command list; engine roles -> + * the phase-appropriate engine prompt; everything else -> the studio agent's + * mandate. Returns null when there's nothing to show (e.g. a quality-gate role + * with no declared commands). */ +export async function loadRoleDef(args: { + role: string + studio: string + stage: string + scope: SignOffScope + qualityGates?: QualityGate[] +}): Promise { + const { role, studio, stage, scope, qualityGates } = args + if (role === "user") return { body: USER_GATE_BODY, path: null } + if (role === "quality_gates" || role === "intent_quality_gates") { + return formatQualityGates(qualityGates) } - const direct = pick(stages[stage]) - if (direct) return direct - for (const sc of Object.values(stages)) { - const hit = pick(sc) - if (hit) return hit + if (ENGINE_BODY_ROLES.has(role)) return loadEngineBody(scope, role) + return loadReviewAgentDef(studio, stage, role) +} + +/** Whether a role has something to show in the modal — drives whether its + * sign-off label renders as a button. Quality-gate roles only open when there + * are commands to show. */ +export function roleOpensModal( + role: string, + studio: string, + qualityGates?: QualityGate[], +): boolean { + if (role === "quality_gates" || role === "intent_quality_gates") { + return (qualityGates?.length ?? 0) > 0 } - return null + if (role === "user" || ENGINE_BODY_ROLES.has(role)) return true + return Boolean(studio) } diff --git a/website/public/prototype-stage-content.json b/website/public/prototype-stage-content.json index dcb2096e5..de5d87314 100644 --- a/website/public/prototype-stage-content.json +++ b/website/public/prototype-stage-content.json @@ -240,6 +240,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/compliance/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": { "quarterly-evidence-collection": { "content": "---\nname: quarterly-evidence-collection\nstudio: compliance\ndescription: Quarterly evidence collection cycle for ongoing compliance\nparameters:\n - name: framework\n description: \"Compliance framework: SOC2, HIPAA, GDPR, ISO27001\"\n required: true\n - name: quarter\n description: \"Quarter: Q1, Q2, Q3, Q4\"\n required: true\n - name: year\n description: Year\n required: true\nstages-override: [assess, document]\nunits:\n - name: \"control-review\"\n stage: assess\n criteria:\n - \"All {{ framework }} controls reviewed for {{ quarter }} {{ year }}\"\n - \"Gaps identified with severity ratings\"\n - \"No critical gaps from previous quarter remain unresolved\"\n - name: \"evidence-package\"\n stage: document\n criteria:\n - \"Evidence collected for all in-scope controls\"\n - \"Screenshots and logs are timestamped within the quarter\"\n - \"Evidence index updated and organized per auditor format\"\n---\n\nRecurring quarterly compliance evidence collection. Does not require full scope/remediate cycle.\n", @@ -515,6 +527,7 @@ "frontmatter": { "name": "remediate", "description": "Implement controls, fix gaps, update configurations and policies", + "optional": true, "hats": [ "remediation-engineer", "policy-writer", @@ -534,7 +547,7 @@ } ] }, - "stageMd": "---\nname: remediate\ndescription: Implement controls, fix gaps, update configurations and policies\nhats: [remediation-engineer, policy-writer, verifier]\nfix_hats: [classifier, remediation-engineer, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: assess\n discovery: gap-report\n---\n\n# Remediate\n\nTake the ranked gap list and close the gaps. This is the build-class stage of the compliance lifecycle: units are discrete pieces of executable work — config changes, code changes, policy authorship — each with concrete acceptance criteria and a way to confirm the change actually addresses the gap.\n\n## Scope\n\nImplementing the technical and governance changes that satisfy the open controls, and recording how each change is verified. Remediate decides *how to close each gap and prove it closed* — not whether the gap was correctly graded (that's a revisit to assess) and not how the evidence is packaged for the auditor (that's document).\n\n## What to do\n\n- Trace every change back to the specific gap and control it closes; leave no gap addressed by guesswork.\n- Pair each technical acceptance criterion with an executable verify-command, and map each policy clause to the control it satisfies.\n- Build changes that are verifiable in isolation, so closure is demonstrable rather than asserted.\n- Keep technical and governance remediation distinct even when one gap needs both.\n\n## What NOT to do\n\n- Don't re-grade a control or reopen the scope boundary — a wrong finding is a revisit upstream, not a quiet reinterpretation here.\n- Don't assemble the auditor-facing evidence package — that's the document stage.\n- Don't claim a gap closed without a verify-command or a clause-to-control mapping that proves it.\n- Don't add changes the gap list doesn't call for.\n", + "stageMd": "---\nname: remediate\ndescription: Implement controls, fix gaps, update configurations and policies\noptional: true\nhats: [remediation-engineer, policy-writer, verifier]\nfix_hats: [classifier, remediation-engineer, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: assess\n discovery: gap-report\n---\n\n# Remediate\n\nTake the ranked gap list and close the gaps. This is the build-class stage of the compliance lifecycle: units are discrete pieces of executable work — config changes, code changes, policy authorship — each with concrete acceptance criteria and a way to confirm the change actually addresses the gap.\n\n## Scope\n\nImplementing the technical and governance changes that satisfy the open controls, and recording how each change is verified. Remediate decides *how to close each gap and prove it closed* — not whether the gap was correctly graded (that's a revisit to assess) and not how the evidence is packaged for the auditor (that's document).\n\n## What to do\n\n- Trace every change back to the specific gap and control it closes; leave no gap addressed by guesswork.\n- Pair each technical acceptance criterion with an executable verify-command, and map each policy clause to the control it satisfies.\n- Build changes that are verifiable in isolation, so closure is demonstrable rather than asserted.\n- Keep technical and governance remediation distinct even when one gap needs both.\n\n## What NOT to do\n\n- Don't re-grade a control or reopen the scope boundary — a wrong finding is a revisit upstream, not a quiet reinterpretation here.\n- Don't assemble the auditor-facing evidence package — that's the document stage.\n- Don't claim a gap closed without a verify-command or a clause-to-control mapping that proves it.\n- Don't add changes the gap list doesn't call for.\n", "stagePath": "plugin/studios/compliance/stages/remediate/STAGE.md", "hats": { "policy-writer": { @@ -683,6 +696,7 @@ "frontmatter": { "name": "certify", "description": "Prepare for and support external audit, address findings", + "optional": true, "hats": [ "audit-liaison", "finding-resolver", @@ -719,7 +733,7 @@ } ] }, - "stageMd": "---\nname: certify\ndescription: Prepare for and support external audit, address findings\nhats: [audit-liaison, finding-resolver, verifier]\nfix_hats: [classifier, audit-liaison, feedback-assessor]\nreview: [external, await]\nelaboration: autonomous\ninputs:\n - stage: document\n discovery: evidence-package\nreview-agents-include:\n - stage: assess\n agents: [thoroughness]\n - stage: remediate\n agents: [effectiveness]\n---\n\n# Certify\n\nThe external-audit stage and the terminus of the compliance lifecycle. The internal work has produced scope, findings, remediations, and an evidence package; now an external auditor evaluates the result and either certifies, requires changes, or raises follow-up findings. This stage runs that relationship to a resolved outcome.\n\n## Scope\n\nCoordinating the auditor relationship and resolving findings — schedule the audit, hand over evidence in the requested format, respond to inquiries, and drive every finding to closure. Certify owns *the external attestation process and finding resolution* — it does not re-run the upstream assessment or remediation, though it may surface a finding that sends work back there.\n\n## What to do\n\n- Submit evidence in the auditor's requested format and anticipate the follow-up questions before they're asked.\n- Give every auditor finding a tracked resolution path: root-cause plus remediation evidence, or documented risk acceptance.\n- Treat the external auditor's decision as the authoritative signal; align internal stakeholders before that conversation, not during it.\n- Record what was submitted, what came back, and how each finding was resolved.\n\n## What NOT to do\n\n- Don't re-do the assessment or re-author remediations inline — route a substantive finding back to the stage that owns it.\n- Don't reformat or re-collect the evidence package from scratch — that was the document stage's job.\n- Don't substitute a local sign-off for the external attestation; the auditor's decision is the whole point of this stage.\n- Don't leave a finding without an owned, tracked resolution.\n", + "stageMd": "---\nname: certify\ndescription: Prepare for and support external audit, address findings\noptional: true\nhats: [audit-liaison, finding-resolver, verifier]\nfix_hats: [classifier, audit-liaison, feedback-assessor]\nreview: [external, await]\nelaboration: autonomous\ninputs:\n - stage: document\n discovery: evidence-package\nreview-agents-include:\n - stage: assess\n agents: [thoroughness]\n - stage: remediate\n agents: [effectiveness]\n---\n\n# Certify\n\nThe external-audit stage and the terminus of the compliance lifecycle. The internal work has produced scope, findings, remediations, and an evidence package; now an external auditor evaluates the result and either certifies, requires changes, or raises follow-up findings. This stage runs that relationship to a resolved outcome.\n\n## Scope\n\nCoordinating the auditor relationship and resolving findings — schedule the audit, hand over evidence in the requested format, respond to inquiries, and drive every finding to closure. Certify owns *the external attestation process and finding resolution* — it does not re-run the upstream assessment or remediation, though it may surface a finding that sends work back there.\n\n## What to do\n\n- Submit evidence in the auditor's requested format and anticipate the follow-up questions before they're asked.\n- Give every auditor finding a tracked resolution path: root-cause plus remediation evidence, or documented risk acceptance.\n- Treat the external auditor's decision as the authoritative signal; align internal stakeholders before that conversation, not during it.\n- Record what was submitted, what came back, and how each finding was resolved.\n\n## What NOT to do\n\n- Don't re-do the assessment or re-author remediations inline — route a substantive finding back to the stage that owns it.\n- Don't reformat or re-collect the evidence package from scratch — that was the document stage's job.\n- Don't substitute a local sign-off for the external attestation; the auditor's decision is the whole point of this stage.\n- Don't leave a finding without an owned, tracked resolution.\n", "stagePath": "plugin/studios/compliance/stages/certify/STAGE.md", "hats": { "audit-liaison": { @@ -829,6 +843,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/customer-success/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": { "new-customer-onboarding": { "content": "---\nname: new-customer-onboarding\nstudio: customer-success\ndescription: Onboard a new customer from kickoff through initial value realization\nparameters:\n - name: company\n description: Customer company name\n required: true\n - name: deal_context\n description: Link to deal context from sales handoff\n required: false\n - name: tier\n description: \"Customer tier: enterprise, growth, starter\"\n required: false\n default: growth\nunits:\n - name: \"technical-setup\"\n stage: onboarding\n criteria:\n - \"{{ company }} environment provisioned and accessible\"\n - \"SSO/auth configured and tested\"\n - \"Data migration completed (if applicable)\"\n - name: \"kickoff\"\n stage: onboarding\n criteria:\n - \"Kickoff meeting completed with key stakeholders\"\n - \"Success milestones agreed and documented\"\n - \"Training schedule established\"\n - name: \"feature-adoption\"\n stage: adoption\n criteria:\n - \"Core features activated by at least 3 users\"\n - \"Usage reaches baseline threshold for {{ tier }} tier\"\n - \"First business outcome achieved\"\n - name: \"health-baseline\"\n stage: health-check\n criteria:\n - \"Health score established with baseline metrics\"\n - \"Account risk factors assessed\"\n - \"Quarterly review cadence confirmed\"\n---\n\nStandard onboarding for new customers. Typically triggered by a sales deal close.\n", @@ -944,6 +970,7 @@ "frontmatter": { "name": "onboarding", "description": "Guide new customers through setup, training, and initial value realization", + "optional": true, "hats": [ "onboarding-lead", "technical-enabler", @@ -958,7 +985,7 @@ "elaboration": "collaborative", "inputs": [] }, - "stageMd": "---\nname: onboarding\ndescription: Guide new customers through setup, training, and initial value realization\nhats: [onboarding-lead, technical-enabler, verifier]\nfix_hats: [classifier, onboarding-lead, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs: []\n---\n\n# Onboarding\n\nThe opening stage of the customer-success lifecycle: take a newly closed customer from contract signature to first realized value. This is where the sales handoff becomes a working deployment and a customer who has seen the product deliver.\n\n## Scope\n\nStanding the customer up and proving initial value: setup, integration, training, and the first milestones that demonstrate the product works for them. Onboarding decides *what first value means and how to reach it* — it does not drive ongoing usage growth (adoption) or assess account health (health-check).\n\n## What to do\n\n- Read the sales handoff — commitments, stakeholders, success criteria — and define \"initial value\" in concrete, measurable terms.\n- Sequence the onboarding milestones with an owner and an acceptance signal for each step.\n- Execute the technical workstream end to end — integration, data migration, environment validation — and confirm the deployed configuration actually works.\n- Capture what was configured and why, so the next stage and the customer's own team can build on it.\n\n## What NOT to do\n\n- Don't drive ongoing adoption plays or feature expansion — that's the adoption stage.\n- Don't assess churn risk or account health — that's health-check.\n- Don't declare a milestone reached without a verifiable acceptance signal.\n- Don't leave a setup step assumed-done; an unconfirmed configuration surfaces as a defect after handoff.\n", + "stageMd": "---\nname: onboarding\ndescription: Guide new customers through setup, training, and initial value realization\noptional: true\nhats: [onboarding-lead, technical-enabler, verifier]\nfix_hats: [classifier, onboarding-lead, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs: []\n---\n\n# Onboarding\n\nThe opening stage of the customer-success lifecycle: take a newly closed customer from contract signature to first realized value. This is where the sales handoff becomes a working deployment and a customer who has seen the product deliver.\n\n## Scope\n\nStanding the customer up and proving initial value: setup, integration, training, and the first milestones that demonstrate the product works for them. Onboarding decides *what first value means and how to reach it* — it does not drive ongoing usage growth (adoption) or assess account health (health-check).\n\n## What to do\n\n- Read the sales handoff — commitments, stakeholders, success criteria — and define \"initial value\" in concrete, measurable terms.\n- Sequence the onboarding milestones with an owner and an acceptance signal for each step.\n- Execute the technical workstream end to end — integration, data migration, environment validation — and confirm the deployed configuration actually works.\n- Capture what was configured and why, so the next stage and the customer's own team can build on it.\n\n## What NOT to do\n\n- Don't drive ongoing adoption plays or feature expansion — that's the adoption stage.\n- Don't assess churn risk or account health — that's health-check.\n- Don't declare a milestone reached without a verifiable acceptance signal.\n- Don't leave a setup step assumed-done; an unconfirmed configuration surfaces as a defect after handoff.\n", "stagePath": "plugin/studios/customer-success/stages/onboarding/STAGE.md", "hats": { "onboarding-lead": { @@ -1023,6 +1050,7 @@ "frontmatter": { "name": "adoption", "description": "Drive product adoption, usage patterns, and feature discovery", + "optional": true, "hats": [ "adoption-coach", "usage-analyst", @@ -1042,7 +1070,7 @@ } ] }, - "stageMd": "---\nname: adoption\ndescription: Drive product adoption, usage patterns, and feature discovery\nhats: [adoption-coach, usage-analyst, verifier]\nfix_hats: [classifier, adoption-coach, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: onboarding\n discovery: onboarding-report\n---\n\n# Adoption\n\nDrive deeper, more durable use of the product once the customer is live. This stage takes the onboarding handoff and works the gap between \"deployed\" and \"genuinely relied upon\" — moving features, workflows, and personas from low use to meaningful use.\n\n## Scope\n\nDesigning adoption plays tied to business outcomes and measuring whether use actually moves. Adoption decides *how to grow use of what's already deployed* — it does not stand up new onboarding workstreams (onboarding) or judge overall account health and churn risk (health-check).\n\n## What to do\n\n- Read the onboarding report and any prior usage signals to pick the adoption play worth running.\n- Tie each play to a specific business outcome, not to activity for its own sake.\n- Instrument the play and pull the real usage signal — baseline, target, and the gap between them.\n- Ground every claim about adoption in observed usage, not in expected behavior.\n\n## What NOT to do\n\n- Don't redo onboarding setup or technical enablement — that's the onboarding stage.\n- Don't score account health or author mitigation plans — that's health-check.\n- Don't report engagement that isn't connected to a meaningful outcome.\n- Don't call a play successful without a measured before-and-after.\n", + "stageMd": "---\nname: adoption\ndescription: Drive product adoption, usage patterns, and feature discovery\noptional: true\nhats: [adoption-coach, usage-analyst, verifier]\nfix_hats: [classifier, adoption-coach, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: onboarding\n discovery: onboarding-report\n---\n\n# Adoption\n\nDrive deeper, more durable use of the product once the customer is live. This stage takes the onboarding handoff and works the gap between \"deployed\" and \"genuinely relied upon\" — moving features, workflows, and personas from low use to meaningful use.\n\n## Scope\n\nDesigning adoption plays tied to business outcomes and measuring whether use actually moves. Adoption decides *how to grow use of what's already deployed* — it does not stand up new onboarding workstreams (onboarding) or judge overall account health and churn risk (health-check).\n\n## What to do\n\n- Read the onboarding report and any prior usage signals to pick the adoption play worth running.\n- Tie each play to a specific business outcome, not to activity for its own sake.\n- Instrument the play and pull the real usage signal — baseline, target, and the gap between them.\n- Ground every claim about adoption in observed usage, not in expected behavior.\n\n## What NOT to do\n\n- Don't redo onboarding setup or technical enablement — that's the onboarding stage.\n- Don't score account health or author mitigation plans — that's health-check.\n- Don't report engagement that isn't connected to a meaningful outcome.\n- Don't call a play successful without a measured before-and-after.\n", "stagePath": "plugin/studios/customer-success/stages/adoption/STAGE.md", "hats": { "adoption-coach": { @@ -1191,6 +1219,7 @@ "frontmatter": { "name": "expansion", "description": "Identify and pursue upsell/cross-sell opportunities", + "optional": true, "hats": [ "growth-strategist", "value-consultant", @@ -1213,7 +1242,7 @@ } ] }, - "stageMd": "---\nname: expansion\ndescription: Identify and pursue upsell/cross-sell opportunities\nhats: [growth-strategist, value-consultant, verifier]\nfix_hats: [classifier, growth-strategist, feedback-assessor]\nreview: [ask, await]\nelaboration: collaborative\ninputs:\n - stage: health-check\n discovery: health-report\n---\n\n# Expansion\n\nIdentify, qualify, and build the case for growth — upsell, cross-sell, additional seats, premium tiers — grounded in the account's demonstrated health and value. This stage turns \"this account is healthy\" into \"here is the specific, defensible reason it should grow.\"\n\n## Scope\n\nQualifying expansion paths and building the business case behind each one. Expansion decides *which growth opportunities are real and why now* — it does not assess whether the account is healthy enough to pursue (health-check) or run the renewal negotiation that lands the commitment (renewal).\n\n## What to do\n\n- Use the health report to qualify only paths the account is actually ready for.\n- For each path, name who buys, why now, what gap it closes, and the signals that confirm or refute fit.\n- Build the business case on the customer's own data — an ROI model with explicit assumptions and a defensible revenue estimate.\n- Tailor the value narrative to the stakeholders who have to say yes.\n\n## What NOT to do\n\n- Don't re-score account health or invent signals the health-check stage didn't establish.\n- Don't run the renewal negotiation or set concession terms — that's the renewal stage.\n- Don't pursue a path the account's health doesn't support.\n- Don't ship a revenue estimate the customer's own data can't defend.\n", + "stageMd": "---\nname: expansion\ndescription: Identify and pursue upsell/cross-sell opportunities\noptional: true\nhats: [growth-strategist, value-consultant, verifier]\nfix_hats: [classifier, growth-strategist, feedback-assessor]\nreview: [ask, await]\nelaboration: collaborative\ninputs:\n - stage: health-check\n discovery: health-report\n---\n\n# Expansion\n\nIdentify, qualify, and build the case for growth — upsell, cross-sell, additional seats, premium tiers — grounded in the account's demonstrated health and value. This stage turns \"this account is healthy\" into \"here is the specific, defensible reason it should grow.\"\n\n## Scope\n\nQualifying expansion paths and building the business case behind each one. Expansion decides *which growth opportunities are real and why now* — it does not assess whether the account is healthy enough to pursue (health-check) or run the renewal negotiation that lands the commitment (renewal).\n\n## What to do\n\n- Use the health report to qualify only paths the account is actually ready for.\n- For each path, name who buys, why now, what gap it closes, and the signals that confirm or refute fit.\n- Build the business case on the customer's own data — an ROI model with explicit assumptions and a defensible revenue estimate.\n- Tailor the value narrative to the stakeholders who have to say yes.\n\n## What NOT to do\n\n- Don't re-score account health or invent signals the health-check stage didn't establish.\n- Don't run the renewal negotiation or set concession terms — that's the renewal stage.\n- Don't pursue a path the account's health doesn't support.\n- Don't ship a revenue estimate the customer's own data can't defend.\n", "stagePath": "plugin/studios/customer-success/stages/expansion/STAGE.md", "hats": { "growth-strategist": { @@ -1278,6 +1307,7 @@ "frontmatter": { "name": "renewal", "description": "Prepare renewal strategy, negotiate terms, and secure commitment", + "optional": true, "hats": [ "renewal-manager", "executive-sponsor", @@ -1300,7 +1330,7 @@ } ] }, - "stageMd": "---\nname: renewal\ndescription: Prepare renewal strategy, negotiate terms, and secure commitment\nhats: [renewal-manager, executive-sponsor, verifier]\nfix_hats: [classifier, renewal-manager, feedback-assessor]\nreview: [external, await]\nelaboration: collaborative\ninputs:\n - stage: expansion\n discovery: opportunity-brief\n---\n\n# Renewal\n\nThe terminal stage of the customer-success lifecycle: convert the account's realized value and qualified expansion paths into a committed renewal. This is where the studio's work becomes a strategy for the actual customer-facing renewal conversation.\n\n## Scope\n\nBuilding the renewal narrative, the negotiation strategy, and the executive engagement that secures the commitment. Renewal decides *how to run the renewal motion and what terms to hold* — it does not qualify new expansion opportunities (expansion) or read account health from scratch (health-check).\n\n## What to do\n\n- Build the renewal narrative from the account's value-realization signals: where they started, what they achieved, where they can go next.\n- Set the negotiation strategy explicitly — concession boundaries and walk-away conditions named up front.\n- Anticipate objections and layer the executive-level engagement the renewal actually calls for.\n- Treat the customer's renewal decision and any internal commercial sign-off as the authoritative close.\n\n## What NOT to do\n\n- Don't open new expansion qualification — carry forward what the expansion stage already built.\n- Don't re-derive account health; the renewal motion assumes the upstream read.\n- Don't enter the negotiation without concession boundaries and a walk-away line.\n- Don't treat the strategy as the outcome; it sets up a conversation that closes outside the workflow.\n", + "stageMd": "---\nname: renewal\ndescription: Prepare renewal strategy, negotiate terms, and secure commitment\noptional: true\nhats: [renewal-manager, executive-sponsor, verifier]\nfix_hats: [classifier, renewal-manager, feedback-assessor]\nreview: [external, await]\nelaboration: collaborative\ninputs:\n - stage: expansion\n discovery: opportunity-brief\n---\n\n# Renewal\n\nThe terminal stage of the customer-success lifecycle: convert the account's realized value and qualified expansion paths into a committed renewal. This is where the studio's work becomes a strategy for the actual customer-facing renewal conversation.\n\n## Scope\n\nBuilding the renewal narrative, the negotiation strategy, and the executive engagement that secures the commitment. Renewal decides *how to run the renewal motion and what terms to hold* — it does not qualify new expansion opportunities (expansion) or read account health from scratch (health-check).\n\n## What to do\n\n- Build the renewal narrative from the account's value-realization signals: where they started, what they achieved, where they can go next.\n- Set the negotiation strategy explicitly — concession boundaries and walk-away conditions named up front.\n- Anticipate objections and layer the executive-level engagement the renewal actually calls for.\n- Treat the customer's renewal decision and any internal commercial sign-off as the authoritative close.\n\n## What NOT to do\n\n- Don't open new expansion qualification — carry forward what the expansion stage already built.\n- Don't re-derive account health; the renewal motion assumes the upstream read.\n- Don't enter the negotiation without concession boundaries and a walk-away line.\n- Don't treat the strategy as the outcome; it sets up a conversation that closes outside the workflow.\n", "stagePath": "plugin/studios/customer-success/stages/renewal/STAGE.md", "hats": { "executive-sponsor": { @@ -1408,6 +1438,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/data-pipeline/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -1595,6 +1637,7 @@ "frontmatter": { "name": "transformation", "description": "Transform and model data for the target schema", + "optional": true, "hats": [ "transformer", "data-modeler", @@ -1614,7 +1657,7 @@ } ] }, - "stageMd": "---\nname: transformation\ndescription: Transform and model data for the target schema\nhats: [transformer, data-modeler, verifier]\nfix_hats: [classifier, transformer, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: extraction\n discovery: staged-data\n---\n\n# Transformation\n\nConvert raw staged data into the modeled, queryable shape the analytical consumers actually need. This stage owns the target data model and the code that materializes it — it's where the pipeline's business meaning is encoded.\n\n## Scope\n\nDefining the target model — grain, surrogate keys, SCD strategy, business-rule encoding — and writing the transformation code that produces it. Transformation decides *what the modeled data is and how it's computed* — it does not extract data into staging (extraction) or test the result (validation).\n\n## What to do\n\n- Define each model's grain, columns, surrogate key, SCD type, and primary query access patterns before writing transformation code.\n- Materialize models from staged sources with idempotency and explicit type handling.\n- Keep all business logic inside the models; logic that leaks elsewhere is drift downstream reviewers will hunt for.\n- Favor named intermediate steps over deep subquery nesting so the model stays legible.\n\n## What NOT to do\n\n- Don't build or re-run extraction connectors — that's the extraction stage.\n- Don't write the data-quality test suite — that's validation.\n- Don't reshape the source profile discovery established; if it's wrong, that's a revisit upstream.\n- Don't scatter business rules outside the model where consumers can't find or trust them.\n", + "stageMd": "---\nname: transformation\ndescription: Transform and model data for the target schema\noptional: true\nhats: [transformer, data-modeler, verifier]\nfix_hats: [classifier, transformer, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: extraction\n discovery: staged-data\n---\n\n# Transformation\n\nConvert raw staged data into the modeled, queryable shape the analytical consumers actually need. This stage owns the target data model and the code that materializes it — it's where the pipeline's business meaning is encoded.\n\n## Scope\n\nDefining the target model — grain, surrogate keys, SCD strategy, business-rule encoding — and writing the transformation code that produces it. Transformation decides *what the modeled data is and how it's computed* — it does not extract data into staging (extraction) or test the result (validation).\n\n## What to do\n\n- Define each model's grain, columns, surrogate key, SCD type, and primary query access patterns before writing transformation code.\n- Materialize models from staged sources with idempotency and explicit type handling.\n- Keep all business logic inside the models; logic that leaks elsewhere is drift downstream reviewers will hunt for.\n- Favor named intermediate steps over deep subquery nesting so the model stays legible.\n\n## What NOT to do\n\n- Don't build or re-run extraction connectors — that's the extraction stage.\n- Don't write the data-quality test suite — that's validation.\n- Don't reshape the source profile discovery established; if it's wrong, that's a revisit upstream.\n- Don't scatter business rules outside the model where consumers can't find or trust them.\n", "stagePath": "plugin/studios/data-pipeline/stages/transformation/STAGE.md", "hats": { "data-modeler": { @@ -1747,6 +1790,7 @@ "frontmatter": { "name": "deployment", "description": "Deploy pipelines to production with monitoring and alerting", + "optional": true, "hats": [ "pipeline-engineer", "sre", @@ -1780,7 +1824,7 @@ } ] }, - "stageMd": "---\nname: deployment\ndescription: Deploy pipelines to production with monitoring and alerting\nhats: [pipeline-engineer, sre, verifier]\nfix_hats: [classifier, pipeline-engineer, feedback-assessor]\nreview: external\nelaboration: autonomous\ninputs:\n - stage: validation\n discovery: validation-report\nreview-agents-include:\n - stage: transformation\n agents: [data-quality]\n - stage: validation\n agents: [coverage]\n---\n\n# Deployment\n\nThe terminal stage of the data-pipeline lifecycle: take the validated pipeline and put it into production. This is where the pipeline stops being code on a branch and becomes infrastructure other people depend on.\n\n## Scope\n\nOperationalizing the pipeline — orchestrator registration, schedule, resource sizing, alert routing, runbooks, and rollback plan. Deployment decides *how the pipeline runs and is operated in production* — it does not change transformation or validation logic; if either is wrong, that's a revisit upstream.\n\n## What to do\n\n- Package the pipeline for the orchestrator: schedule, dependency chain, retry / timeout policy, resource limits.\n- Route alerts to the right on-call channel and monitor both pipeline health and data freshness.\n- Write runbooks an unfamiliar engineer can actually follow, and a rollback plan for the first run.\n- Hold operational readiness — not just a successful execution — as the bar to ship.\n\n## What NOT to do\n\n- Don't modify transformation or validation logic — route a regression back to the stage that owns it.\n- Don't deploy a pipeline whose validation suite has unresolved blocking findings.\n- Don't treat a clean run as readiness; without alerting, monitoring, and rollback it isn't done.\n- Don't add scope the validated pipeline didn't already cover.\n", + "stageMd": "---\nname: deployment\ndescription: Deploy pipelines to production with monitoring and alerting\noptional: true\nhats: [pipeline-engineer, sre, verifier]\nfix_hats: [classifier, pipeline-engineer, feedback-assessor]\nreview: external\nelaboration: autonomous\ninputs:\n - stage: validation\n discovery: validation-report\nreview-agents-include:\n - stage: transformation\n agents: [data-quality]\n - stage: validation\n agents: [coverage]\n---\n\n# Deployment\n\nThe terminal stage of the data-pipeline lifecycle: take the validated pipeline and put it into production. This is where the pipeline stops being code on a branch and becomes infrastructure other people depend on.\n\n## Scope\n\nOperationalizing the pipeline — orchestrator registration, schedule, resource sizing, alert routing, runbooks, and rollback plan. Deployment decides *how the pipeline runs and is operated in production* — it does not change transformation or validation logic; if either is wrong, that's a revisit upstream.\n\n## What to do\n\n- Package the pipeline for the orchestrator: schedule, dependency chain, retry / timeout policy, resource limits.\n- Route alerts to the right on-call channel and monitor both pipeline health and data freshness.\n- Write runbooks an unfamiliar engineer can actually follow, and a rollback plan for the first run.\n- Hold operational readiness — not just a successful execution — as the bar to ship.\n\n## What NOT to do\n\n- Don't modify transformation or validation logic — route a regression back to the stage that owns it.\n- Don't deploy a pipeline whose validation suite has unresolved blocking findings.\n- Don't treat a clean run as readiness; without alerting, monitoring, and rollback it isn't done.\n- Don't add scope the validated pipeline didn't already cover.\n", "stagePath": "plugin/studios/data-pipeline/stages/deployment/STAGE.md", "hats": { "pipeline-engineer": { @@ -1856,6 +1900,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/dev-evangelism/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -2177,6 +2233,7 @@ "frontmatter": { "name": "publish", "description": "Distribute content across channels", + "optional": true, "hats": [ "distributor", "community-manager", @@ -2202,7 +2259,7 @@ } ] }, - "stageMd": "---\nname: publish\ndescription: Distribute content across channels\nhats: [distributor, community-manager, verifier]\nfix_hats: [classifier, distributor, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: create\n discovery: content-package\noutputs:\n - discovery: distribution-log\n hat: distributor\n---\n\n# Publish\n\nThe distribution stage of the dev-evangelism lifecycle: take the produced content package out to its channels and turn reach into conversation. Posting an asset and walking away gets reach without engagement; showing up in the threads and replies early is what turns reach into a conversation.\n\n## Scope\n\nMulti-channel distribution plus community seeding — adapting each asset to its channel's norms and engaging in the discussion that follows. Publish decides *where and how content goes out and how the first conversation is seeded* — it does not produce or rewrite content (create) or measure its impact (measure).\n\n## What to do\n\n- Adapt each asset to the channel's format, tone, and metadata norms rather than cross-posting identical copies.\n- Record every publish: timestamp, channel, URL, platform metadata, and active tracking.\n- Seed discussion in the relevant developer communities and respond in voice while interest is fresh.\n- Confirm tracking is live on each distribution before considering it done.\n\n## What NOT to do\n\n- Don't author or rewrite the content assets — that's the create stage.\n- Don't analyze engagement or recommend follow-ups — that's measure.\n- Don't post the same copy across channels without adapting it.\n- Don't log a publish without a working tracking link.\n", + "stageMd": "---\nname: publish\ndescription: Distribute content across channels\noptional: true\nhats: [distributor, community-manager, verifier]\nfix_hats: [classifier, distributor, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: create\n discovery: content-package\noutputs:\n - discovery: distribution-log\n hat: distributor\n---\n\n# Publish\n\nThe distribution stage of the dev-evangelism lifecycle: take the produced content package out to its channels and turn reach into conversation. Posting an asset and walking away gets reach without engagement; showing up in the threads and replies early is what turns reach into a conversation.\n\n## Scope\n\nMulti-channel distribution plus community seeding — adapting each asset to its channel's norms and engaging in the discussion that follows. Publish decides *where and how content goes out and how the first conversation is seeded* — it does not produce or rewrite content (create) or measure its impact (measure).\n\n## What to do\n\n- Adapt each asset to the channel's format, tone, and metadata norms rather than cross-posting identical copies.\n- Record every publish: timestamp, channel, URL, platform metadata, and active tracking.\n- Seed discussion in the relevant developer communities and respond in voice while interest is fresh.\n- Confirm tracking is live on each distribution before considering it done.\n\n## What NOT to do\n\n- Don't author or rewrite the content assets — that's the create stage.\n- Don't analyze engagement or recommend follow-ups — that's measure.\n- Don't post the same copy across channels without adapting it.\n- Don't log a publish without a working tracking link.\n", "stagePath": "plugin/studios/dev-evangelism/stages/publish/STAGE.md", "hats": { "community-manager": { @@ -2267,6 +2324,7 @@ "frontmatter": { "name": "measure", "description": "Track engagement, gather feedback, identify follow-up opportunities", + "optional": true, "hats": [ "analyst", "feedback-synthesizer", @@ -2292,7 +2350,7 @@ } ] }, - "stageMd": "---\nname: measure\ndescription: Track engagement, gather feedback, identify follow-up opportunities\nhats: [analyst, feedback-synthesizer, verifier]\nfix_hats: [classifier, analyst, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: publish\n discovery: distribution-log\noutputs:\n - discovery: impact-report\n hat: analyst\n---\n\n# Measure\n\nThe terminal stage of the dev-evangelism lifecycle: close the loop. Compare actuals to targets per channel, synthesize the qualitative feedback from community responses, and produce the prioritized follow-ups that seed the next intent.\n\n## Scope\n\nReading impact and recommending what comes next — quantitative deltas joined to qualitative themes. Measure decides *what the content actually achieved and what to do next* — it does not produce or republish content (create, publish). This is where vanity metrics die: impressions and likes with no connection to a meaningful outcome are noise.\n\n## What to do\n\n- Pull engagement per channel, compare actuals to targets, and name the drivers of over- and under-performance.\n- Filter vanity metrics out; keep what connects to a real outcome — signups, doc visits, code-sample copies, invites, recurring readership.\n- Gather community comments and replies, categorize the themes, and preserve representative quotes.\n- Ground every follow-up recommendation in both the numbers and the audience's own words.\n\n## What NOT to do\n\n- Don't produce, edit, or republish content — that's the create and publish stages.\n- Don't report a metric you can't tie to a meaningful outcome.\n- Don't synthesize feedback without keeping the representative quotes that back it.\n- Don't hand off follow-ups that aren't prioritized.\n", + "stageMd": "---\nname: measure\ndescription: Track engagement, gather feedback, identify follow-up opportunities\noptional: true\nhats: [analyst, feedback-synthesizer, verifier]\nfix_hats: [classifier, analyst, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: publish\n discovery: distribution-log\noutputs:\n - discovery: impact-report\n hat: analyst\n---\n\n# Measure\n\nThe terminal stage of the dev-evangelism lifecycle: close the loop. Compare actuals to targets per channel, synthesize the qualitative feedback from community responses, and produce the prioritized follow-ups that seed the next intent.\n\n## Scope\n\nReading impact and recommending what comes next — quantitative deltas joined to qualitative themes. Measure decides *what the content actually achieved and what to do next* — it does not produce or republish content (create, publish). This is where vanity metrics die: impressions and likes with no connection to a meaningful outcome are noise.\n\n## What to do\n\n- Pull engagement per channel, compare actuals to targets, and name the drivers of over- and under-performance.\n- Filter vanity metrics out; keep what connects to a real outcome — signups, doc visits, code-sample copies, invites, recurring readership.\n- Gather community comments and replies, categorize the themes, and preserve representative quotes.\n- Ground every follow-up recommendation in both the numbers and the audience's own words.\n\n## What NOT to do\n\n- Don't produce, edit, or republish content — that's the create and publish stages.\n- Don't report a metric you can't tie to a meaningful outcome.\n- Don't synthesize feedback without keeping the representative quotes that back it.\n- Don't hand off follow-ups that aren't prioritized.\n", "stagePath": "plugin/studios/dev-evangelism/stages/measure/STAGE.md", "hats": { "analyst": { @@ -2387,6 +2445,26 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/documentation/intent-review-agents/cross-stage-consistency.md" + }, + "runtime-verifier": { + "content": "---\ninterpretation: lens\n---\n**Mandate:** The agent **MUST** be the reader's eyes at documentation intent close — render the entire published site (or the rendered final output for the project's chosen format) and verify the reader can actually navigate from entry point through the documented journey end to end. Per-page checks catch broken markdown; this lens catches the seams — broken cross-page navigation, search that doesn't find the new content, sitemap entries that were never added, the new section that's invisible because it's not linked from anywhere.\n\n**You pass ONLY if you actually observed it — `haiku_view` is the verification, not optional scaffolding.** This role's sign-off means \"I opened the live published surface with `haiku_view` and read/navigated the promised result with my own eyes.\" If `haiku_view` won't bring the surface up — the tool errors, the docs site won't boot, no render target is found — then you have observed **nothing**, and per the doctrine's verdict rules you **MUST** file a `BLOCKED` finding and **HOLD**. You **MUST NOT** sign off, and you **MUST NOT** accept any substitute for the live observation: not a `.haiku/boot.md` recipe, not a diagnosis, not green CI, not a closed blocker, not \"it should publish now.\" Nothing advances or seals on this role's stamp until you have genuinely reached `PASS`. Re-dispatched after a \"fix\"? Open and observe again from scratch — a fix that merely unblocked the site is not the journey passing. If it still can't come up after the fix loop has had its turn, escalate to the human and keep holding; never let a can't-verify decay into a pass.\n\n## Check\n\nPrefer `haiku_view({ intent: \"\", mode: \"boot\" })` to boot the docs site and drive the published surface. If no boot target detected, that's typically a finding for a documentation intent — the site should be runnable by close. Use the bundled `haiku-playwright` MCP. Call `browser_take_screenshot` at every meaningful step. **Save each screenshot** to disk under `.haiku/intents//proof/-.png` using the `Write` tool.\n\nThe agent **MUST** verify each of the following:\n\n- **The site builds and serves.** No build errors. The landing page renders. Search (when present) is indexed against the new content — a search for a heading the intent added MUST return that page.\n- **Navigation reaches every new page.** The intent's new pages MUST be discoverable from the site's primary navigation — sidebar, top nav, or a section index. A page that publishes but isn't linked from anywhere is functionally invisible.\n- **Cross-references between new and existing pages resolve.** Every link from a new page to an existing page lands on the existing page (not a 404 or a redirect to home). Every link from an existing page that was updated to reference new pages lands on the new pages.\n- **Sitemap / robots / SEO surface includes the new pages.** When the project publishes a sitemap.xml, the new pages are listed. Title and description meta-tags render. Social-card images load.\n- **The headline reader journey works end to end.** Pick the journey the intent set out to enable (\"a new user can install and run their first request in under five minutes,\" \"a developer can find the API reference for the new endpoint and copy a working example\"). Walk it through Playwright start to finish. Screenshot every step. A journey that breaks anywhere — broken link, missing section, search miss, copyable example that doesn't work when pasted — is the headline finding.\n- **Per-unit claims hold across every stage.** Walk every unit body across draft / outline / review / publish. Each unit's claimed deliverable MUST be visible in the published site, not just in the staged outputs at the time the unit closed.\n- **Close the session.** Call `haiku_view_close({ session_id })` after all checks complete.\n\n## Common failure modes to look for\n\n- New documentation pages that publish but never get added to the sidebar — discoverable only by direct URL guess\n- Search index that rebuilds on deploy but doesn't include the new pages because the search config has an explicit allow-list that wasn't updated\n- A documented `Quickstart` that worked when each step was reviewed in isolation but breaks end-to-end because step 3's command depends on step 2's output and step 2's output changed\n- Sitemap that lists 47 pages, page count after this intent should be 50, but it still says 47 because the build script hardcoded the count\n- A linked example repo that the docs reference no longer exists — the docs publish clean, the user follows the link, hits a 404\n", + "frontmatter": { + "interpretation": "lens" + }, + "body": "**Mandate:** The agent **MUST** be the reader's eyes at documentation intent close — render the entire published site (or the rendered final output for the project's chosen format) and verify the reader can actually navigate from entry point through the documented journey end to end. Per-page checks catch broken markdown; this lens catches the seams — broken cross-page navigation, search that doesn't find the new content, sitemap entries that were never added, the new section that's invisible because it's not linked from anywhere.\n\n**You pass ONLY if you actually observed it — `haiku_view` is the verification, not optional scaffolding.** This role's sign-off means \"I opened the live published surface with `haiku_view` and read/navigated the promised result with my own eyes.\" If `haiku_view` won't bring the surface up — the tool errors, the docs site won't boot, no render target is found — then you have observed **nothing**, and per the doctrine's verdict rules you **MUST** file a `BLOCKED` finding and **HOLD**. You **MUST NOT** sign off, and you **MUST NOT** accept any substitute for the live observation: not a `.haiku/boot.md` recipe, not a diagnosis, not green CI, not a closed blocker, not \"it should publish now.\" Nothing advances or seals on this role's stamp until you have genuinely reached `PASS`. Re-dispatched after a \"fix\"? Open and observe again from scratch — a fix that merely unblocked the site is not the journey passing. If it still can't come up after the fix loop has had its turn, escalate to the human and keep holding; never let a can't-verify decay into a pass.\n\n## Check\n\nPrefer `haiku_view({ intent: \"\", mode: \"boot\" })` to boot the docs site and drive the published surface. If no boot target detected, that's typically a finding for a documentation intent — the site should be runnable by close. Use the bundled `haiku-playwright` MCP. Call `browser_take_screenshot` at every meaningful step. **Save each screenshot** to disk under `.haiku/intents//proof/-.png` using the `Write` tool.\n\nThe agent **MUST** verify each of the following:\n\n- **The site builds and serves.** No build errors. The landing page renders. Search (when present) is indexed against the new content — a search for a heading the intent added MUST return that page.\n- **Navigation reaches every new page.** The intent's new pages MUST be discoverable from the site's primary navigation — sidebar, top nav, or a section index. A page that publishes but isn't linked from anywhere is functionally invisible.\n- **Cross-references between new and existing pages resolve.** Every link from a new page to an existing page lands on the existing page (not a 404 or a redirect to home). Every link from an existing page that was updated to reference new pages lands on the new pages.\n- **Sitemap / robots / SEO surface includes the new pages.** When the project publishes a sitemap.xml, the new pages are listed. Title and description meta-tags render. Social-card images load.\n- **The headline reader journey works end to end.** Pick the journey the intent set out to enable (\"a new user can install and run their first request in under five minutes,\" \"a developer can find the API reference for the new endpoint and copy a working example\"). Walk it through Playwright start to finish. Screenshot every step. A journey that breaks anywhere — broken link, missing section, search miss, copyable example that doesn't work when pasted — is the headline finding.\n- **Per-unit claims hold across every stage.** Walk every unit body across draft / outline / review / publish. Each unit's claimed deliverable MUST be visible in the published site, not just in the staged outputs at the time the unit closed.\n- **Close the session.** Call `haiku_view_close({ session_id })` after all checks complete.\n\n## Common failure modes to look for\n\n- New documentation pages that publish but never get added to the sidebar — discoverable only by direct URL guess\n- Search index that rebuilds on deploy but doesn't include the new pages because the search config has an explicit allow-list that wasn't updated\n- A documented `Quickstart` that worked when each step was reviewed in isolation but breaks end-to-end because step 3's command depends on step 2's output and step 2's output changed\n- Sitemap that lists 47 pages, page count after this intent should be 50, but it still says 47 because the build script hardcoded the count\n- A linked example repo that the docs reference no longer exists — the docs publish clean, the user follows the link, hits a 404\n", + "path": "plugin/studios/documentation/intent-review-agents/runtime-verifier.md" + } + }, "templates": { "api-documentation": { "content": "---\nname: api-documentation\nstudio: documentation\ndescription: Document a new or updated API\nparameters:\n - name: api\n description: API name or module being documented\n required: true\n - name: openapi_url\n description: Link to OpenAPI spec if available\n required: false\nunits:\n - name: \"coverage-audit\"\n stage: audit\n criteria:\n - \"All {{ api }} endpoints inventoried\"\n - \"Existing documentation gaps identified\"\n - \"Priority ranked by endpoint usage\"\n - name: \"structure\"\n stage: outline\n criteria:\n - \"Information architecture follows task-based organization\"\n - \"Each endpoint has: description, parameters, examples, errors\"\n - name: \"write\"\n stage: draft\n criteria:\n - \"All endpoints documented with working code examples\"\n - \"Authentication and error handling sections complete\"\n - \"Examples tested against current API version\"\n - name: \"review\"\n stage: review\n criteria:\n - \"Technical accuracy verified against implementation\"\n - \"Code examples compile and produce expected output\"\n - \"No jargon without definition\"\n---\n\nAPI documentation from audit through publish.\n", @@ -2495,6 +2573,7 @@ "frontmatter": { "name": "audit", "description": "Assess existing documentation, identify gaps, and prioritize what to write or update", + "optional": true, "hats": [ "auditor", "gap-analyst", @@ -2509,7 +2588,7 @@ "elaboration": "autonomous", "inputs": [] }, - "stageMd": "---\nname: audit\ndescription: Assess existing documentation, identify gaps, and prioritize what to write or update\nhats: [auditor, gap-analyst, verifier]\nfix_hats: [classifier, auditor, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs: []\n---\n\n# Audit\n\nThe opening stage of the documentation lifecycle: take stock of the existing documentation surface and decide what's worth writing or updating, in what order. This is the research stage — its units are knowledge topics (\"what's the current state of the API reference?\", \"which flows lack docs?\"), not writing work.\n\n## Scope\n\nInventorying what documentation exists, judging its currency and accuracy, and ranking the gaps against what readers actually need. Audit decides *what to write and in what priority* — it does not design the structure (outline) or write any content (draft).\n\n## What to do\n\n- Inventory each documentation area and assess every item for currency and accuracy.\n- Identify gaps against real reader needs, not against an idealized table of contents.\n- Rank gaps by user impact, and recommend the doc type each gap calls for.\n- Ground each finding in the actual state of the docs, not in assumptions about them.\n\n## What NOT to do\n\n- Don't design the information architecture or sequence the docs — that's the outline stage.\n- Don't write prose, code samples, or visuals — that's draft.\n- Don't rank a gap without tying it to reader impact.\n- Don't flag an item as stale or accurate without checking it.\n", + "stageMd": "---\nname: audit\ndescription: Assess existing documentation, identify gaps, and prioritize what to write or update\noptional: true\nhats: [auditor, gap-analyst, verifier]\nfix_hats: [classifier, auditor, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs: []\n---\n\n# Audit\n\nThe opening stage of the documentation lifecycle: take stock of the existing documentation surface and decide what's worth writing or updating, in what order. This is the research stage — its units are knowledge topics (\"what's the current state of the API reference?\", \"which flows lack docs?\"), not writing work.\n\n## Scope\n\nInventorying what documentation exists, judging its currency and accuracy, and ranking the gaps against what readers actually need. Audit decides *what to write and in what priority* — it does not design the structure (outline) or write any content (draft).\n\n## What to do\n\n- Inventory each documentation area and assess every item for currency and accuracy.\n- Identify gaps against real reader needs, not against an idealized table of contents.\n- Rank gaps by user impact, and recommend the doc type each gap calls for.\n- Ground each finding in the actual state of the docs, not in assumptions about them.\n\n## What NOT to do\n\n- Don't design the information architecture or sequence the docs — that's the outline stage.\n- Don't write prose, code samples, or visuals — that's draft.\n- Don't rank a gap without tying it to reader impact.\n- Don't flag an item as stale or accurate without checking it.\n", "stagePath": "plugin/studios/documentation/stages/audit/STAGE.md", "hats": { "auditor": { @@ -2792,6 +2871,7 @@ "frontmatter": { "name": "publish", "description": "Format, validate links, and publish the documentation", + "optional": true, "hats": [ "format-planner", "publisher", @@ -2823,7 +2903,7 @@ } ] }, - "stageMd": "---\nname: publish\ndescription: Format, validate links, and publish the documentation\nhats: [format-planner, publisher, verifier]\nfix_hats: [classifier, publisher, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: draft\n discovery: draft-documentation\n - stage: review\n discovery: review-report\nreview-agents-include:\n - stage: draft\n agents: [accuracy]\n---\n\n# Publish\n\nThe terminal stage of the documentation lifecycle: ship the reviewed draft to the docs platform, formatted to its conventions, with every link, code block, image, and cross-reference verified. This is where the invisible defects surface — broken links, malformed fences, missing alt text, stale anchors — and catching them here is cheaper than catching them at a reader's 404.\n\n## Scope\n\nFormatting to the platform, verifying every embedded reference, and recording the publish. Publish decides *how the content goes live and that it's intact on the platform* — it does not write or edit content (draft, review). Content defects route back upstream; this stage owns the mechanics of shipping.\n\n## What to do\n\n- Format the content to the platform's conventions — embed shapes, anchors, asset destinations.\n- Verify every link, code block, image, and cross-reference actually resolves.\n- Record the publish: canonical URL, version, and search-indexed timestamp.\n- Route a content or accuracy defect back to the stage that owns it rather than patching prose here.\n\n## What NOT to do\n\n- Don't rewrite prose or restructure content — that's the draft and review stages.\n- Don't re-litigate editorial or technical findings — they were resolved upstream.\n- Don't publish with a broken link, a malformed code block, or a missing asset.\n- Don't ship without a recorded publish artifact at the canonical URL.\n", + "stageMd": "---\nname: publish\ndescription: Format, validate links, and publish the documentation\noptional: true\nhats: [format-planner, publisher, verifier]\nfix_hats: [classifier, publisher, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: draft\n discovery: draft-documentation\n - stage: review\n discovery: review-report\nreview-agents-include:\n - stage: draft\n agents: [accuracy]\n---\n\n# Publish\n\nThe terminal stage of the documentation lifecycle: ship the reviewed draft to the docs platform, formatted to its conventions, with every link, code block, image, and cross-reference verified. This is where the invisible defects surface — broken links, malformed fences, missing alt text, stale anchors — and catching them here is cheaper than catching them at a reader's 404.\n\n## Scope\n\nFormatting to the platform, verifying every embedded reference, and recording the publish. Publish decides *how the content goes live and that it's intact on the platform* — it does not write or edit content (draft, review). Content defects route back upstream; this stage owns the mechanics of shipping.\n\n## What to do\n\n- Format the content to the platform's conventions — embed shapes, anchors, asset destinations.\n- Verify every link, code block, image, and cross-reference actually resolves.\n- Record the publish: canonical URL, version, and search-indexed timestamp.\n- Route a content or accuracy defect back to the stage that owns it rather than patching prose here.\n\n## What NOT to do\n\n- Don't rewrite prose or restructure content — that's the draft and review stages.\n- Don't re-litigate editorial or technical findings — they were resolved upstream.\n- Don't publish with a broken link, a malformed code block, or a missing asset.\n- Don't ship without a recorded publish artifact at the canonical URL.\n", "stagePath": "plugin/studios/documentation/stages/publish/STAGE.md", "hats": { "format-planner": { @@ -2899,6 +2979,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/executive-strategy/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -3291,6 +3383,7 @@ "frontmatter": { "name": "communicate", "description": "Develop stakeholder communications and rollout plan", + "optional": true, "hats": [ "communicator", "planner", @@ -3310,7 +3403,7 @@ } ] }, - "stageMd": "---\nname: communicate\ndescription: Develop stakeholder communications and rollout plan\nhats: [communicator, planner, verifier]\nfix_hats: [classifier, communicator, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: decide\n discovery: decision-brief\n---\n\n# Communicate\n\nThe terminal stage of the executive-strategy lifecycle: turn the ratified decision into the artifacts that actually move the organization. A decision that isn't communicated well is a decision that gets unwound during execution.\n\n## Scope\n\nBuilding tailored messaging per stakeholder group, a sequenced rollout plan with named owners, and a FAQ that anticipates the hard questions before they're asked in public. Communicate decides *how the decision is conveyed and rolled out* — it does not make or revisit the decision (decide). One unit per stakeholder audience or rollout workstream.\n\n## What to do\n\n- Build the messaging framework: what we say, to whom, through which channel, anticipating their concerns.\n- Sequence the rollout with dependencies, named owners, measurable milestones, and contingency plans.\n- Keep the message consistent across audiences while tailoring it to each one's concerns.\n- Write a FAQ that gets ahead of the hard questions rather than reacting to them.\n\n## What NOT to do\n\n- Don't reopen or relitigate the decision — carry forward what the decide stage ratified.\n- Don't ship messaging that contradicts itself across audiences.\n- Don't sequence a rollout step without an owner and a measurable milestone.\n- Don't put words in the organization's mouth that the decision brief doesn't support.\n", + "stageMd": "---\nname: communicate\ndescription: Develop stakeholder communications and rollout plan\noptional: true\nhats: [communicator, planner, verifier]\nfix_hats: [classifier, communicator, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: decide\n discovery: decision-brief\n---\n\n# Communicate\n\nThe terminal stage of the executive-strategy lifecycle: turn the ratified decision into the artifacts that actually move the organization. A decision that isn't communicated well is a decision that gets unwound during execution.\n\n## Scope\n\nBuilding tailored messaging per stakeholder group, a sequenced rollout plan with named owners, and a FAQ that anticipates the hard questions before they're asked in public. Communicate decides *how the decision is conveyed and rolled out* — it does not make or revisit the decision (decide). One unit per stakeholder audience or rollout workstream.\n\n## What to do\n\n- Build the messaging framework: what we say, to whom, through which channel, anticipating their concerns.\n- Sequence the rollout with dependencies, named owners, measurable milestones, and contingency plans.\n- Keep the message consistent across audiences while tailoring it to each one's concerns.\n- Write a FAQ that gets ahead of the hard questions rather than reacting to them.\n\n## What NOT to do\n\n- Don't reopen or relitigate the decision — carry forward what the decide stage ratified.\n- Don't ship messaging that contradicts itself across audiences.\n- Don't sequence a rollout step without an owner and a measurable milestone.\n- Don't put words in the organization's mouth that the decision brief doesn't support.\n", "stagePath": "plugin/studios/executive-strategy/stages/communicate/STAGE.md", "hats": { "communicator": { @@ -3386,6 +3479,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/finance/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -3434,6 +3539,7 @@ "frontmatter": { "name": "forecast", "description": "Research market conditions and develop revenue projections", + "optional": true, "hats": [ "analyst", "forecaster", @@ -3448,7 +3554,7 @@ "elaboration": "collaborative", "inputs": [] }, - "stageMd": "---\nname: forecast\ndescription: Research market conditions and develop revenue projections\nhats: [analyst, forecaster, verifier]\nfix_hats: [classifier, analyst, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs: []\n---\n\n# Forecast\n\nThe opening stage of the finance cycle: ground the period in evidence and project where revenue and costs are headed. Every downstream stage — budget, analysis, reporting, close — anchors to the numbers and assumptions this stage establishes.\n\n## Scope\n\nRevenue and cost projection: the data foundation, the drivers, the scenarios, and the assumptions behind them. Forecast decides *what we expect to happen and why* — not how resources get allocated against it (budget), and not how actuals compare to it later (analysis).\n\n## What to do\n\n- Build the projection from named evidence — market signals, historical actuals, leading indicators — not from a desired outcome worked backward.\n- State every assumption explicitly so a later stage can challenge it on its own terms.\n- Lay out distinct scenarios (base, optimistic, pessimistic) with different driver assumptions, not one number with a confidence band stapled on.\n- Stress-test the drivers for sensitivity so the budget stage knows which inputs actually move the result.\n\n## What NOT to do\n\n- Don't allocate budget or set departmental targets — that's the budget stage's job.\n- Don't compare projections to actuals or attribute variance — there are no actuals yet; that belongs to analysis.\n- Don't bury an assumption inside a number; an unexamined driver here propagates through the whole cycle.\n- Don't present a single point estimate as if it were certainty.\n", + "stageMd": "---\nname: forecast\ndescription: Research market conditions and develop revenue projections\noptional: true\nhats: [analyst, forecaster, verifier]\nfix_hats: [classifier, analyst, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs: []\n---\n\n# Forecast\n\nThe opening stage of the finance cycle: ground the period in evidence and project where revenue and costs are headed. Every downstream stage — budget, analysis, reporting, close — anchors to the numbers and assumptions this stage establishes.\n\n## Scope\n\nRevenue and cost projection: the data foundation, the drivers, the scenarios, and the assumptions behind them. Forecast decides *what we expect to happen and why* — not how resources get allocated against it (budget), and not how actuals compare to it later (analysis).\n\n## What to do\n\n- Build the projection from named evidence — market signals, historical actuals, leading indicators — not from a desired outcome worked backward.\n- State every assumption explicitly so a later stage can challenge it on its own terms.\n- Lay out distinct scenarios (base, optimistic, pessimistic) with different driver assumptions, not one number with a confidence band stapled on.\n- Stress-test the drivers for sensitivity so the budget stage knows which inputs actually move the result.\n\n## What NOT to do\n\n- Don't allocate budget or set departmental targets — that's the budget stage's job.\n- Don't compare projections to actuals or attribute variance — there are no actuals yet; that belongs to analysis.\n- Don't bury an assumption inside a number; an unexamined driver here propagates through the whole cycle.\n- Don't present a single point estimate as if it were certainty.\n", "stagePath": "plugin/studios/finance/stages/forecast/STAGE.md", "hats": { "analyst": { @@ -3514,6 +3620,7 @@ "frontmatter": { "name": "budget", "description": "Allocate resources and set financial targets", + "optional": true, "hats": [ "budget-owner", "allocator", @@ -3533,7 +3640,7 @@ } ] }, - "stageMd": "---\nname: budget\ndescription: Allocate resources and set financial targets\nhats: [budget-owner, allocator, verifier]\nfix_hats: [classifier, budget-owner, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: forecast\n discovery: forecast-model\n---\n\n# Budget\n\nTurn the forecast into a resource allocation plan. This is where projected revenue becomes an envelope, and the envelope becomes concrete commitments by department, cost center, and line item — the operating plan the rest of the organization spends against.\n\n## Scope\n\nAllocation against the forecast: envelope sizing, departmental and cost-center splits, target levels with measurement criteria, and contingency reserves. Budget decides *how the projected resources get committed* — not what's projected (forecast), and not how actuals diverge from the plan later (analysis).\n\n## What to do\n\n- Size the envelope to the forecast's projected revenue, and trace every allocation back to a forecast driver.\n- Set targets concrete enough to be measured against, with stated measurement criteria.\n- Size contingency reserves from historical variance patterns, not from an arbitrary percentage.\n- Make the allocation rationale explicit so a reviewer can see why each slice got what it got.\n\n## What NOT to do\n\n- Don't reproject revenue or revise the forecast's drivers — consume the forecast as given; a wrong forecast is a revisit upstream.\n- Don't compare allocations to actual spend — there's no actual yet; that's analysis.\n- Don't allocate beyond the envelope or leave a department untraceable to a driver.\n- Don't pad reserves with round numbers in place of evidence.\n", + "stageMd": "---\nname: budget\ndescription: Allocate resources and set financial targets\noptional: true\nhats: [budget-owner, allocator, verifier]\nfix_hats: [classifier, budget-owner, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: forecast\n discovery: forecast-model\n---\n\n# Budget\n\nTurn the forecast into a resource allocation plan. This is where projected revenue becomes an envelope, and the envelope becomes concrete commitments by department, cost center, and line item — the operating plan the rest of the organization spends against.\n\n## Scope\n\nAllocation against the forecast: envelope sizing, departmental and cost-center splits, target levels with measurement criteria, and contingency reserves. Budget decides *how the projected resources get committed* — not what's projected (forecast), and not how actuals diverge from the plan later (analysis).\n\n## What to do\n\n- Size the envelope to the forecast's projected revenue, and trace every allocation back to a forecast driver.\n- Set targets concrete enough to be measured against, with stated measurement criteria.\n- Size contingency reserves from historical variance patterns, not from an arbitrary percentage.\n- Make the allocation rationale explicit so a reviewer can see why each slice got what it got.\n\n## What NOT to do\n\n- Don't reproject revenue or revise the forecast's drivers — consume the forecast as given; a wrong forecast is a revisit upstream.\n- Don't compare allocations to actual spend — there's no actual yet; that's analysis.\n- Don't allocate beyond the envelope or leave a department untraceable to a driver.\n- Don't pad reserves with round numbers in place of evidence.\n", "stagePath": "plugin/studios/finance/stages/budget/STAGE.md", "hats": { "allocator": { @@ -3766,6 +3873,7 @@ "frontmatter": { "name": "close", "description": "Period close, reconciliation, and financial sign-off", + "optional": true, "hats": [ "controller", "reconciler", @@ -3789,7 +3897,7 @@ } ] }, - "stageMd": "---\nname: close\ndescription: Period close, reconciliation, and financial sign-off\nhats: [controller, reconciler, verifier]\nfix_hats: [classifier, controller, feedback-assessor]\nreview: external\nelaboration: autonomous\ninputs:\n - stage: reporting\n output: financial-reports\n - stage: analysis\n discovery: variance-report\n---\n\n# Close\n\nThe terminal stage of the finance cycle: lock the period. Reconcile every balance-sheet account, post the sub-ledger entries, eliminate intercompany balances, confirm cut-off, and record the controller's sign-off with any noted exceptions. This is an operational stage — its units are ordered close steps, not analytical workings.\n\n## Scope\n\nPeriod sign-off: reconciliation, adjusting entries, intercompany elimination, cut-off verification, and the close package that records the result. Close decides *whether the period's books are right and ready to lock* — not why the numbers came out as they did (analysis), and not how they're communicated (reporting).\n\n## What to do\n\n- Reconcile every balance-sheet account and tie the trial balance — leave no account unconfirmed.\n- Verify cut-off for revenue recognition and accrued expenses against stated cut-off rules.\n- Post adjusting entries with supporting documentation, and declare a rollback path for any step that isn't idempotent.\n- Record exceptions explicitly so anything unresolved carries forward as a known item, not a silent gap.\n\n## What NOT to do\n\n- Don't re-run analysis or rewrite the reports — consume them as the context for what to reconcile against.\n- Don't seal the period with an account unreconciled or a cut-off unverified.\n- Don't post an entry without documentation or a non-idempotent action without a rollback.\n- Don't bury an exception to make the close look clean.\n", + "stageMd": "---\nname: close\ndescription: Period close, reconciliation, and financial sign-off\noptional: true\nhats: [controller, reconciler, verifier]\nfix_hats: [classifier, controller, feedback-assessor]\nreview: external\nelaboration: autonomous\ninputs:\n - stage: reporting\n output: financial-reports\n - stage: analysis\n discovery: variance-report\n---\n\n# Close\n\nThe terminal stage of the finance cycle: lock the period. Reconcile every balance-sheet account, post the sub-ledger entries, eliminate intercompany balances, confirm cut-off, and record the controller's sign-off with any noted exceptions. This is an operational stage — its units are ordered close steps, not analytical workings.\n\n## Scope\n\nPeriod sign-off: reconciliation, adjusting entries, intercompany elimination, cut-off verification, and the close package that records the result. Close decides *whether the period's books are right and ready to lock* — not why the numbers came out as they did (analysis), and not how they're communicated (reporting).\n\n## What to do\n\n- Reconcile every balance-sheet account and tie the trial balance — leave no account unconfirmed.\n- Verify cut-off for revenue recognition and accrued expenses against stated cut-off rules.\n- Post adjusting entries with supporting documentation, and declare a rollback path for any step that isn't idempotent.\n- Record exceptions explicitly so anything unresolved carries forward as a known item, not a silent gap.\n\n## What NOT to do\n\n- Don't re-run analysis or rewrite the reports — consume them as the context for what to reconcile against.\n- Don't seal the period with an account unreconciled or a cut-off unverified.\n- Don't post an entry without documentation or a non-idempotent action without a rollback.\n- Don't bury an exception to make the close look clean.\n", "stagePath": "plugin/studios/finance/stages/close/STAGE.md", "hats": { "controller": { @@ -3879,6 +3987,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/gamedev/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -4127,6 +4247,7 @@ "frontmatter": { "name": "production", "description": "Content and systems at scale", + "optional": true, "produces": "build", "hats": [ "gameplay-engineer", @@ -4155,7 +4276,7 @@ } ] }, - "stageMd": "---\nname: production\ndescription: Content and systems at scale\nproduces: build\nhats: [gameplay-engineer, content-author, systems-designer, reviewer]\nfix_hats: [classifier, gameplay-engineer, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\ninputs:\n - stage: concept\n discovery: concept-doc\n - stage: prototype\n output: prototype\n---\n\n# Production\n\nThe longest stage of the gamedev lifecycle by a wide margin: scale the validated prototype into the full game. Build out content, implement systems at production quality, integrate art and audio, and deliver every beat the concept doc promised. The prototype defines what counts as \"the game\"; production's job is to scale that, not to reinvent it.\n\n## Scope\n\nBuilding the game at scale: production-quality systems, the content the player experiences, and the art and audio integration that fills out the concept's promised beats. Production decides *how the proven game gets built out* — not whether the loop is fun (prototype already settled that), and not the final-quality feel and certification (polish and release).\n\n## What to do\n\n- Reimplement the validated core loop at production quality and build the systems content leans on.\n- Tune the interlocking systems — economies, progression, difficulty, meta-systems — at the math layer above individual mechanics.\n- Author the player-experienced content (levels, encounters, narrative beats, audio cues) against those systems.\n- Hold scope to the pillars and the prototype-proven loop; that's the load-bearing discipline of this stage.\n\n## What NOT to do\n\n- Don't invent new core mechanics — that's scope creep; defer it to a sequel or DLC unless it's cheap and load-bearing for an existing pillar.\n- Don't reopen the concept's pillars or the prototype's validated loop to fit something you'd rather build.\n- Don't treat final tuning, performance, and juice as in-scope here — that's polish.\n- Don't ship content that misses a pillar the concept promised.\n", + "stageMd": "---\nname: production\ndescription: Content and systems at scale\noptional: true\nproduces: build\nhats: [gameplay-engineer, content-author, systems-designer, reviewer]\nfix_hats: [classifier, gameplay-engineer, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\ninputs:\n - stage: concept\n discovery: concept-doc\n - stage: prototype\n output: prototype\n---\n\n# Production\n\nThe longest stage of the gamedev lifecycle by a wide margin: scale the validated prototype into the full game. Build out content, implement systems at production quality, integrate art and audio, and deliver every beat the concept doc promised. The prototype defines what counts as \"the game\"; production's job is to scale that, not to reinvent it.\n\n## Scope\n\nBuilding the game at scale: production-quality systems, the content the player experiences, and the art and audio integration that fills out the concept's promised beats. Production decides *how the proven game gets built out* — not whether the loop is fun (prototype already settled that), and not the final-quality feel and certification (polish and release).\n\n## What to do\n\n- Reimplement the validated core loop at production quality and build the systems content leans on.\n- Tune the interlocking systems — economies, progression, difficulty, meta-systems — at the math layer above individual mechanics.\n- Author the player-experienced content (levels, encounters, narrative beats, audio cues) against those systems.\n- Hold scope to the pillars and the prototype-proven loop; that's the load-bearing discipline of this stage.\n\n## What NOT to do\n\n- Don't invent new core mechanics — that's scope creep; defer it to a sequel or DLC unless it's cheap and load-bearing for an existing pillar.\n- Don't reopen the concept's pillars or the prototype's validated loop to fit something you'd rather build.\n- Don't treat final tuning, performance, and juice as in-scope here — that's polish.\n- Don't ship content that misses a pillar the concept promised.\n", "stagePath": "plugin/studios/gamedev/stages/production/STAGE.md", "hats": { "content-author": { @@ -4221,6 +4342,7 @@ "frontmatter": { "name": "polish", "description": "Tuning, game feel, performance, bug triage, and juice", + "optional": true, "produces": "build", "hats": [ "gameplay-engineer", @@ -4245,7 +4367,7 @@ } ] }, - "stageMd": "---\nname: polish\ndescription: Tuning, game feel, performance, bug triage, and juice\nproduces: build\nhats: [gameplay-engineer, tuner, performance-engineer, qa]\nfix_hats: [classifier, gameplay-engineer, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\ninputs:\n - stage: production\n output: game-build\n---\n\n# Polish\n\nThe stage that trades time for perceived quality: tune game feel, fix bugs, hit platform performance targets, and add the juice that makes a hit register and a pickup feel satisfying. Players can't articulate the difference between a great game and a polished great game, but they feel it — it's the difference between a 70 and an 85.\n\n## Scope\n\nRefinement of the existing build: feel tuning, bug fixing, performance optimization, and final audio/visual feedback. Polish decides *how good the finished game feels* — not what content exists (production already built it), and not how it ships (release). Nothing new gets added here.\n\n## What to do\n\n- Fix gameplay bugs and edge cases surfaced by playtests and QA; polish-phase engineering is reactive, not new construction.\n- Tune feel — timing, responsiveness, juice, pacing, difficulty curves — to close the gap between functional and great.\n- Optimize to meet platform performance targets: frame rate, load times, memory, thermals on handhelds and mobile.\n- Validate every fix on the actual build before treating a unit as polish-complete.\n\n## What NOT to do\n\n- Don't add new content — in polish it rarely ships at quality and almost always pushes the release date.\n- Don't reopen production-scope systems work or rebuild what production delivered.\n- Don't certify a fix you only verified on a dev build.\n- Don't carry an unresolved regression into release.\n", + "stageMd": "---\nname: polish\ndescription: Tuning, game feel, performance, bug triage, and juice\noptional: true\nproduces: build\nhats: [gameplay-engineer, tuner, performance-engineer, qa]\nfix_hats: [classifier, gameplay-engineer, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\ninputs:\n - stage: production\n output: game-build\n---\n\n# Polish\n\nThe stage that trades time for perceived quality: tune game feel, fix bugs, hit platform performance targets, and add the juice that makes a hit register and a pickup feel satisfying. Players can't articulate the difference between a great game and a polished great game, but they feel it — it's the difference between a 70 and an 85.\n\n## Scope\n\nRefinement of the existing build: feel tuning, bug fixing, performance optimization, and final audio/visual feedback. Polish decides *how good the finished game feels* — not what content exists (production already built it), and not how it ships (release). Nothing new gets added here.\n\n## What to do\n\n- Fix gameplay bugs and edge cases surfaced by playtests and QA; polish-phase engineering is reactive, not new construction.\n- Tune feel — timing, responsiveness, juice, pacing, difficulty curves — to close the gap between functional and great.\n- Optimize to meet platform performance targets: frame rate, load times, memory, thermals on handhelds and mobile.\n- Validate every fix on the actual build before treating a unit as polish-complete.\n\n## What NOT to do\n\n- Don't add new content — in polish it rarely ships at quality and almost always pushes the release date.\n- Don't reopen production-scope systems work or rebuild what production delivered.\n- Don't certify a fix you only verified on a dev build.\n- Don't carry an unresolved regression into release.\n", "stagePath": "plugin/studios/gamedev/stages/polish/STAGE.md", "hats": { "gameplay-engineer": { @@ -4311,6 +4433,7 @@ "frontmatter": { "name": "release", "description": "Storefront submission, platform certification, and patch pipeline", + "optional": true, "hats": [ "release-engineer", "platform-cert-specialist", @@ -4330,7 +4453,7 @@ } ] }, - "stageMd": "---\nname: release\ndescription: Storefront submission, platform certification, and patch pipeline\nhats: [release-engineer, platform-cert-specialist, verifier]\nfix_hats: [classifier, release-engineer, feedback-assessor]\nreview: await\nelaboration: autonomous\ninputs:\n - stage: polish\n output: game-build\n---\n\n# Release\n\nThe terminal stage of the gamedev lifecycle: get the polished build into players' hands and keep it healthy. Submit to storefronts and platform holders, pass platform certification, and stand up the post-launch patch pipeline. This stage ships and sustains the game; it does not change it.\n\n## Scope\n\nShipping and sustaining the build: storefront submission, platform certification, and the patch/hotfix pipeline that survives launch. Release decides *how the finished game reaches and stays live for players* — not its content (production) or its feel (polish). Platform requirements vary widely and many are hard gates outside the team's control.\n\n## What to do\n\n- Build, package, and submit to each target storefront and platform holder on its own submission cadence.\n- Walk every platform's certification checklist and prep the build to pass it — cert can fail for reasons unrelated to game quality.\n- Stand up the patch pipeline so a hotfix can ship within days; that's what separates a launch hiccup from a launch disaster.\n- Treat fixes here as operational — re-cutting a submission build or re-running a cert pass, not reworking the game.\n\n## What NOT to do\n\n- Don't change gameplay, content, or feel to clear certification — a quality problem is a revisit to polish, not a patch jammed into submission.\n- Don't treat the initial submission as the finish line and skip the patch pipeline.\n- Don't assume one platform's cert outcome generalizes to the others.\n- Don't ship without a working path to push a post-launch fix.\n", + "stageMd": "---\nname: release\ndescription: Storefront submission, platform certification, and patch pipeline\noptional: true\nhats: [release-engineer, platform-cert-specialist, verifier]\nfix_hats: [classifier, release-engineer, feedback-assessor]\nreview: await\nelaboration: autonomous\ninputs:\n - stage: polish\n output: game-build\n---\n\n# Release\n\nThe terminal stage of the gamedev lifecycle: get the polished build into players' hands and keep it healthy. Submit to storefronts and platform holders, pass platform certification, and stand up the post-launch patch pipeline. This stage ships and sustains the game; it does not change it.\n\n## Scope\n\nShipping and sustaining the build: storefront submission, platform certification, and the patch/hotfix pipeline that survives launch. Release decides *how the finished game reaches and stays live for players* — not its content (production) or its feel (polish). Platform requirements vary widely and many are hard gates outside the team's control.\n\n## What to do\n\n- Build, package, and submit to each target storefront and platform holder on its own submission cadence.\n- Walk every platform's certification checklist and prep the build to pass it — cert can fail for reasons unrelated to game quality.\n- Stand up the patch pipeline so a hotfix can ship within days; that's what separates a launch hiccup from a launch disaster.\n- Treat fixes here as operational — re-cutting a submission build or re-running a cert pass, not reworking the game.\n\n## What NOT to do\n\n- Don't change gameplay, content, or feel to clear certification — a quality problem is a revisit to polish, not a patch jammed into submission.\n- Don't treat the initial submission as the finish line and skip the patch pipeline.\n- Don't assume one platform's cert outcome generalizes to the others.\n- Don't ship without a working path to push a post-launch fix.\n", "stagePath": "plugin/studios/gamedev/stages/release/STAGE.md", "hats": { "platform-cert-specialist": { @@ -4414,6 +4537,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/hr/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -4541,6 +4676,7 @@ "frontmatter": { "name": "sourcing", "description": "Identify candidate pools and conduct outreach", + "optional": true, "hats": [ "sourcer", "recruiter", @@ -4560,7 +4696,7 @@ } ] }, - "stageMd": "---\nname: sourcing\ndescription: Identify candidate pools and conduct outreach\nhats: [sourcer, recruiter, verifier]\nfix_hats: [classifier, sourcer, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: requisition\n discovery: job-spec\n---\n\n# Sourcing\n\nBuild the candidate pipeline against the requisition's job spec. This is where the pipeline gets its volume, its diversity, and its first-touch experience — and where composition decisions made now set a hard ceiling on everything downstream.\n\n## Scope\n\nPipeline construction and outreach: channel selection, prospect identification, and first-touch engagement. Sourcing decides *who enters the funnel and how they're approached* — not whether they meet the bar (screening) or what role was defined (requisition). A thin or homogeneous pipeline here yields a thin or homogeneous shortlist no matter how rigorous screening is.\n\n## What to do\n\n- Pick channels and personas deliberately against the job spec, not just the easiest source to hand.\n- Build prospect lists with initial fit signals so screening starts from real context.\n- Run personalized outreach and track responses, watching channel effectiveness as you go.\n- Mind pipeline composition (mix, persona coverage) as a first-class outcome of this stage, not an afterthought.\n\n## What NOT to do\n\n- Don't qualify or rank candidates against the must-have bar — that's screening.\n- Don't redefine the role or its requirements; consume the job spec as given.\n- Don't optimize for raw volume at the cost of a pipeline that's too narrow to produce a fair shortlist.\n- Don't let a single easy channel quietly determine the whole pipeline's composition.\n", + "stageMd": "---\nname: sourcing\ndescription: Identify candidate pools and conduct outreach\noptional: true\nhats: [sourcer, recruiter, verifier]\nfix_hats: [classifier, sourcer, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: requisition\n discovery: job-spec\n---\n\n# Sourcing\n\nBuild the candidate pipeline against the requisition's job spec. This is where the pipeline gets its volume, its diversity, and its first-touch experience — and where composition decisions made now set a hard ceiling on everything downstream.\n\n## Scope\n\nPipeline construction and outreach: channel selection, prospect identification, and first-touch engagement. Sourcing decides *who enters the funnel and how they're approached* — not whether they meet the bar (screening) or what role was defined (requisition). A thin or homogeneous pipeline here yields a thin or homogeneous shortlist no matter how rigorous screening is.\n\n## What to do\n\n- Pick channels and personas deliberately against the job spec, not just the easiest source to hand.\n- Build prospect lists with initial fit signals so screening starts from real context.\n- Run personalized outreach and track responses, watching channel effectiveness as you go.\n- Mind pipeline composition (mix, persona coverage) as a first-class outcome of this stage, not an afterthought.\n\n## What NOT to do\n\n- Don't qualify or rank candidates against the must-have bar — that's screening.\n- Don't redefine the role or its requirements; consume the job spec as given.\n- Don't optimize for raw volume at the cost of a pipeline that's too narrow to produce a fair shortlist.\n- Don't let a single easy channel quietly determine the whole pipeline's composition.\n", "stagePath": "plugin/studios/hr/stages/sourcing/STAGE.md", "hats": { "recruiter": { @@ -4801,6 +4937,7 @@ "frontmatter": { "name": "offer", "description": "Develop compensation package and extend offer", + "optional": true, "hats": [ "compensator", "closer", @@ -4824,7 +4961,7 @@ } ] }, - "stageMd": "---\nname: offer\ndescription: Develop compensation package and extend offer\nhats: [compensator, closer, verifier]\nfix_hats: [classifier, compensator, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: interview\n discovery: interview-scorecard\n - stage: requisition\n discovery: job-spec\n---\n\n# Offer\n\nThe terminal stage of the hiring lifecycle: turn the interview stage's hire recommendation into a competitive, equitable, approved compensation package, and manage it through to the candidate's response. Small errors here — a misaligned band, a missing approval, a verbal commitment that doesn't match the written offer — lose the candidate or create downstream pay-equity problems.\n\n## Scope\n\nCompensation packaging and offer management: the comp analysis, the documented offer, the negotiation parameters, and the approval trail. Offer decides *what package goes to the candidate and how it's extended* — not whether to hire them (interview already decided that). It executes the hire decision; it doesn't re-litigate it.\n\n## What to do\n\n- Build the package against external market data and internal equity bands, with the positioning rationale documented.\n- Prepare complete offer documentation and drive it through the required approval workflow.\n- Manage negotiation strictly within approved parameters, keeping a contingency plan ready.\n- Keep the verbal and written offer in lockstep so what's promised matches what's signed.\n\n## What NOT to do\n\n- Don't reopen the hire / no-hire decision — consume the interview recommendation as given.\n- Don't negotiate outside approved parameters or extend before the approval trail is complete.\n- Don't let a fix touch only the closer's paperwork when the underlying comp framing is what's wrong.\n- Don't navigate pay-equity law, pay-transparency rules, equity-grant compliance, or immigration/work-authorization alone; where findings touch these, defer to human review and, where applicable, jurisdictional employment and tax counsel — the plugin does not dispense legal interpretations.\n", + "stageMd": "---\nname: offer\ndescription: Develop compensation package and extend offer\noptional: true\nhats: [compensator, closer, verifier]\nfix_hats: [classifier, compensator, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: interview\n discovery: interview-scorecard\n - stage: requisition\n discovery: job-spec\n---\n\n# Offer\n\nThe terminal stage of the hiring lifecycle: turn the interview stage's hire recommendation into a competitive, equitable, approved compensation package, and manage it through to the candidate's response. Small errors here — a misaligned band, a missing approval, a verbal commitment that doesn't match the written offer — lose the candidate or create downstream pay-equity problems.\n\n## Scope\n\nCompensation packaging and offer management: the comp analysis, the documented offer, the negotiation parameters, and the approval trail. Offer decides *what package goes to the candidate and how it's extended* — not whether to hire them (interview already decided that). It executes the hire decision; it doesn't re-litigate it.\n\n## What to do\n\n- Build the package against external market data and internal equity bands, with the positioning rationale documented.\n- Prepare complete offer documentation and drive it through the required approval workflow.\n- Manage negotiation strictly within approved parameters, keeping a contingency plan ready.\n- Keep the verbal and written offer in lockstep so what's promised matches what's signed.\n\n## What NOT to do\n\n- Don't reopen the hire / no-hire decision — consume the interview recommendation as given.\n- Don't negotiate outside approved parameters or extend before the approval trail is complete.\n- Don't let a fix touch only the closer's paperwork when the underlying comp framing is what's wrong.\n- Don't navigate pay-equity law, pay-transparency rules, equity-grant compliance, or immigration/work-authorization alone; where findings touch these, defer to human review and, where applicable, jurisdictional employment and tax counsel — the plugin does not dispense legal interpretations.\n", "stagePath": "plugin/studios/hr/stages/offer/STAGE.md", "hats": { "closer": { @@ -4903,6 +5040,26 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's hardware artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch the cross-stage seams that per-stage reviewers miss. The most expensive hardware defects live at the seams: requirements that the design didn't carry, designs that the firmware didn't honour, manufacturing that's tooled for the wrong variant, certs whose scope doesn't match the variant shipping.\n\n## Check\n\nThe agent **MUST** verify, filing intent-scope feedback for any violation:\n\n- **Requirements carry into design** — Every functional / safety / regulatory requirement from the requirements stage has at least one design artifact citation that implements or addresses it. Requirements with no design carrier become unmet requirements at validation.\n- **Design carries into firmware** — Every peripheral, supply rail, and connector on the schematic that requires firmware support has corresponding firmware code. Firmware that drives peripherals the schematic doesn't have is dead code; firmware that's missing for peripherals the schematic has is a non-functional product.\n- **Design + firmware carry into validation** — Every requirement-driven verification surface has both the design + firmware reality on the bench when the validation rig runs. Validation evidence collected against an obsolete design / firmware revision is misleading.\n- **Validation carries into manufacturing** — Every cert document's scope statement matches the variant manufacturing is producing. A cert for the radio-equipped variant doesn't cover the radio-less variant.\n- **Naming consistency** — A concept named one thing upstream carries the same name downstream. Net names, reference designators, peripheral names, requirement IDs, and variant names must not drift across stages.\n- **Declared outputs exist** — Every stage's declared outputs (schematic, BOM, PCB layout, mechanical CAD, firmware binary, validation evidence, cert documents, assembly process) exist at the path the stage promised. A missing output cascades into the next stage's \"input not found\" failure.\n- **Stage-review concerns addressed** — Any concern raised by a per-stage review-agent and accepted with a justification has the justification cross-checked against the downstream evidence. Justifications that turned out to be wrong should be re-opened.\n- **Intent goal delivered** — Read the intent.md. The stages collectively deliver what was scoped. Partial delivery against the stated goal is a finding.\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n- The agent **MUST NOT** prescribe a specific tool, vendor, or file format in the finding; name the missing alignment, not the tool that would express it\n- The agent **MUST** cite the conflicting statements with file paths and stage / hat originators so the reconciler can act\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's hardware artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch the cross-stage seams that per-stage reviewers miss. The most expensive hardware defects live at the seams: requirements that the design didn't carry, designs that the firmware didn't honour, manufacturing that's tooled for the wrong variant, certs whose scope doesn't match the variant shipping.\n\n## Check\n\nThe agent **MUST** verify, filing intent-scope feedback for any violation:\n\n- **Requirements carry into design** — Every functional / safety / regulatory requirement from the requirements stage has at least one design artifact citation that implements or addresses it. Requirements with no design carrier become unmet requirements at validation.\n- **Design carries into firmware** — Every peripheral, supply rail, and connector on the schematic that requires firmware support has corresponding firmware code. Firmware that drives peripherals the schematic doesn't have is dead code; firmware that's missing for peripherals the schematic has is a non-functional product.\n- **Design + firmware carry into validation** — Every requirement-driven verification surface has both the design + firmware reality on the bench when the validation rig runs. Validation evidence collected against an obsolete design / firmware revision is misleading.\n- **Validation carries into manufacturing** — Every cert document's scope statement matches the variant manufacturing is producing. A cert for the radio-equipped variant doesn't cover the radio-less variant.\n- **Naming consistency** — A concept named one thing upstream carries the same name downstream. Net names, reference designators, peripheral names, requirement IDs, and variant names must not drift across stages.\n- **Declared outputs exist** — Every stage's declared outputs (schematic, BOM, PCB layout, mechanical CAD, firmware binary, validation evidence, cert documents, assembly process) exist at the path the stage promised. A missing output cascades into the next stage's \"input not found\" failure.\n- **Stage-review concerns addressed** — Any concern raised by a per-stage review-agent and accepted with a justification has the justification cross-checked against the downstream evidence. Justifications that turned out to be wrong should be re-opened.\n- **Intent goal delivered** — Read the intent.md. The stages collectively deliver what was scoped. Partial delivery against the stated goal is a finding.\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n- The agent **MUST NOT** prescribe a specific tool, vendor, or file format in the finding; name the missing alignment, not the tool that would express it\n- The agent **MUST** cite the conflicting statements with file paths and stage / hat originators so the reconciler can act\n", + "path": "plugin/studios/hwdev/intent-review-agents/cross-stage-consistency.md" + }, + "runtime-verifier": { + "content": "---\ninterpretation: lens\n---\n**Mandate:** The agent **MUST** be the user's eyes at hardware intent close — render the entire integrated design (schematic + PCB + Gerbers + 3D mechanical + BOM + firmware artifacts) through the SPA's artifact-browser and verify the whole board behaves as a coherent deliverable, not just a pile of files that each passed their own per-stage check. Hardware design has unforgiving integration semantics: a schematic that's clean and a PCB that's clean can still produce a board that won't fab because the layer stack-up disagrees with the via classes. This lens catches the seams.\n\n**You pass ONLY if you actually observed it — `haiku_view` is the verification, not optional scaffolding.** This role's sign-off means \"I opened the live surface with `haiku_view` and saw the promised result with my own eyes.\" If `haiku_view` won't bring the surface up — the tool errors, an artifact won't render, the firmware sim won't boot, a dependency is down — then you have observed **nothing**, and per the doctrine's verdict rules you **MUST** file a `BLOCKED` finding and **HOLD**. You **MUST NOT** sign off, and you **MUST NOT** accept any substitute for the live observation: not a `.haiku/boot.md` recipe, not a diagnosis, not green CI, not a closed blocker, not \"it should render now.\" Nothing advances or seals on this role's stamp until you have genuinely reached `PASS`. Re-dispatched after a \"fix\"? Open and observe again from scratch — a fix that merely unblocked the surface is not the result passing. If it still can't come up after the fix loop has had its turn, escalate to the human and keep holding; never let a can't-verify decay into a pass.\n\n## Check\n\nOpen a view session via `haiku_view({ intent: \"\" })` and use the bundled `haiku-playwright` MCP to navigate to each artifact through the SPA's artifact browser. Call `browser_take_screenshot` at every meaningful step. **Save each screenshot** to disk under `.haiku/intents//proof/-.png` using the `Write` tool. The intent-level `proof/` directory is the durable record a human reviewer scrolls when verifying a merged intent.\n\nThe agent **MUST** verify each of the following:\n\n- **Every requirement from the requirements stage is traceable to a design artifact.** Read the requirements stage's deliverable. For each requirement, identify which schematic block, which PCB region, which firmware module, or which BOM item satisfies it — and screenshot the satisfying artifact. A requirement with no traceable implementation is the headline finding.\n- **The schematic ↔ PCB ↔ 3D ↔ BOM chain holds end to end.** Every component on the schematic has a footprint on the PCB; every footprint has a 3D representation in the mechanical file; every component has a BOM line with a manufacturer part number. Walk the chain for every named subcircuit — screenshot each render and assert the parts match.\n- **The Gerber set will fab.** Render the full Gerber + drill + pick-and-place through Tracespace. Stack-up matches the fab notes. Trace widths and via classes are within the declared fab-house capability. Pick-and-place centroids align with the rendered footprints. A Gerber set that won't pass the fab's design rules is a finding even if every per-stage check passed.\n- **Firmware (if the intent ships it) boots and exercises the hardware.** When the firmware stage produces a flashable binary or a simulator-runnable image, prefer `haiku_view({ stage: \"firmware\", mode: \"boot\" })` to spawn the sim/emulator and drive the firmware's user-facing surface. For pure firmware-only intents, walk the firmware's declared user flows the same way the software studio's intent-final-review does for apps.\n- **Per-unit claims across every stage hold in the integrated artifact set.** Walk every unit body across every stage. Each unit's claimed deliverable MUST be visible in the final integrated artifact set, not just in the stage's outputs at the time the unit completed. A schematic unit that claimed to add a regulator whose footprint never landed on the PCB is a finding.\n- **Close the session.** Call `haiku_view_close({ session_id })` after all checks complete.\n\n## Common failure modes to look for\n\n- Schematic clean, PCB clean, but the via class the PCB uses isn't included in the fab notes' stack-up — board won't fab\n- Component on the schematic, footprint on the PCB, but no part in the BOM — the board can't be assembled\n- A 3D mechanical revision that doesn't match the current PCB — the enclosure design used a stale STEP and the connector positions are wrong\n- A requirement (\"USB-C power input must survive 24V transient\") that nobody clearly satisfied in any stage — falls through the cracks\n- Firmware that the firmware stage's tests passed against a mock peripheral but doesn't actually drive the real hardware register layout when run on the silicon\n- Stack-up mismatch — the design assumed 4-layer 1.6mm but the fab notes say 6-layer 2mm, and trace impedances no longer hit target\n- A subcircuit unit said \"decoupling caps added to every IC\" but only the schematic was updated — the PCB wasn't routed to actually connect them\n", + "frontmatter": { + "interpretation": "lens" + }, + "body": "**Mandate:** The agent **MUST** be the user's eyes at hardware intent close — render the entire integrated design (schematic + PCB + Gerbers + 3D mechanical + BOM + firmware artifacts) through the SPA's artifact-browser and verify the whole board behaves as a coherent deliverable, not just a pile of files that each passed their own per-stage check. Hardware design has unforgiving integration semantics: a schematic that's clean and a PCB that's clean can still produce a board that won't fab because the layer stack-up disagrees with the via classes. This lens catches the seams.\n\n**You pass ONLY if you actually observed it — `haiku_view` is the verification, not optional scaffolding.** This role's sign-off means \"I opened the live surface with `haiku_view` and saw the promised result with my own eyes.\" If `haiku_view` won't bring the surface up — the tool errors, an artifact won't render, the firmware sim won't boot, a dependency is down — then you have observed **nothing**, and per the doctrine's verdict rules you **MUST** file a `BLOCKED` finding and **HOLD**. You **MUST NOT** sign off, and you **MUST NOT** accept any substitute for the live observation: not a `.haiku/boot.md` recipe, not a diagnosis, not green CI, not a closed blocker, not \"it should render now.\" Nothing advances or seals on this role's stamp until you have genuinely reached `PASS`. Re-dispatched after a \"fix\"? Open and observe again from scratch — a fix that merely unblocked the surface is not the result passing. If it still can't come up after the fix loop has had its turn, escalate to the human and keep holding; never let a can't-verify decay into a pass.\n\n## Check\n\nOpen a view session via `haiku_view({ intent: \"\" })` and use the bundled `haiku-playwright` MCP to navigate to each artifact through the SPA's artifact browser. Call `browser_take_screenshot` at every meaningful step. **Save each screenshot** to disk under `.haiku/intents//proof/-.png` using the `Write` tool. The intent-level `proof/` directory is the durable record a human reviewer scrolls when verifying a merged intent.\n\nThe agent **MUST** verify each of the following:\n\n- **Every requirement from the requirements stage is traceable to a design artifact.** Read the requirements stage's deliverable. For each requirement, identify which schematic block, which PCB region, which firmware module, or which BOM item satisfies it — and screenshot the satisfying artifact. A requirement with no traceable implementation is the headline finding.\n- **The schematic ↔ PCB ↔ 3D ↔ BOM chain holds end to end.** Every component on the schematic has a footprint on the PCB; every footprint has a 3D representation in the mechanical file; every component has a BOM line with a manufacturer part number. Walk the chain for every named subcircuit — screenshot each render and assert the parts match.\n- **The Gerber set will fab.** Render the full Gerber + drill + pick-and-place through Tracespace. Stack-up matches the fab notes. Trace widths and via classes are within the declared fab-house capability. Pick-and-place centroids align with the rendered footprints. A Gerber set that won't pass the fab's design rules is a finding even if every per-stage check passed.\n- **Firmware (if the intent ships it) boots and exercises the hardware.** When the firmware stage produces a flashable binary or a simulator-runnable image, prefer `haiku_view({ stage: \"firmware\", mode: \"boot\" })` to spawn the sim/emulator and drive the firmware's user-facing surface. For pure firmware-only intents, walk the firmware's declared user flows the same way the software studio's intent-final-review does for apps.\n- **Per-unit claims across every stage hold in the integrated artifact set.** Walk every unit body across every stage. Each unit's claimed deliverable MUST be visible in the final integrated artifact set, not just in the stage's outputs at the time the unit completed. A schematic unit that claimed to add a regulator whose footprint never landed on the PCB is a finding.\n- **Close the session.** Call `haiku_view_close({ session_id })` after all checks complete.\n\n## Common failure modes to look for\n\n- Schematic clean, PCB clean, but the via class the PCB uses isn't included in the fab notes' stack-up — board won't fab\n- Component on the schematic, footprint on the PCB, but no part in the BOM — the board can't be assembled\n- A 3D mechanical revision that doesn't match the current PCB — the enclosure design used a stale STEP and the connector positions are wrong\n- A requirement (\"USB-C power input must survive 24V transient\") that nobody clearly satisfied in any stage — falls through the cracks\n- Firmware that the firmware stage's tests passed against a mock peripheral but doesn't actually drive the real hardware register layout when run on the silicon\n- Stack-up mismatch — the design assumed 4-layer 1.6mm but the fab notes say 6-layer 2mm, and trace impedances no longer hit target\n- A subcircuit unit said \"decoupling caps added to every IC\" but only the schematic was updated — the PCB wasn't routed to actually connect them\n", + "path": "plugin/studios/hwdev/intent-review-agents/runtime-verifier.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -5273,6 +5430,7 @@ "frontmatter": { "name": "firmware", "description": "Embedded software for the hardware platform", + "optional": true, "produces": "build", "hats": [ "firmware-engineer", @@ -5300,7 +5458,7 @@ } ] }, - "stageMd": "---\nname: firmware\ndescription: Embedded software for the hardware platform\nproduces: build\nhats: [firmware-engineer, reviewer, verifier]\nfix_hats: [classifier, firmware-engineer, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\ninputs:\n - stage: requirements\n discovery: functional-requirements\n - stage: design\n output: schematic\n---\n\n# Firmware\n\nImplement the embedded software that runs on the hardware platform. Firmware works under constraints application development never faces — finite memory, flash, and power budgets; hard real-time deadlines; field updates that may need physical access; and far harder debugging. \"It works on the bench\" is not validation for code shipping inside a physical product.\n\n## Scope\n\nThe embedded software against the design and requirements: the implementation, its tests, and the on-target measurements that prove it fits the budgets. Firmware decides *how the platform behaves in software* — not the hardware design it runs on (design) and not the final validation of the whole product (validation).\n\n## What to do\n\n- Implement against the functional requirements and the design's actual hardware, not an idealized board.\n- Respect the memory, flash, power, and timing budgets, and measure them on real hardware rather than assuming.\n- Trace every safety-critical path to a documented hazard mitigation and make it provably correct.\n- Ship tests and on-target measurements alongside the implementation, not as a follow-up.\n\n## What NOT to do\n\n- Don't redesign the hardware or change the schematic to suit the software — that's a revisit to design.\n- Don't run the product's validation campaign (HIL, environmental, cert) — that's the validation stage.\n- Don't treat a bench pass as validation for a safety-critical path.\n- Don't exceed a resource budget and leave it for validation to discover.\n", + "stageMd": "---\nname: firmware\ndescription: Embedded software for the hardware platform\noptional: true\nproduces: build\nhats: [firmware-engineer, reviewer, verifier]\nfix_hats: [classifier, firmware-engineer, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\ninputs:\n - stage: requirements\n discovery: functional-requirements\n - stage: design\n output: schematic\n---\n\n# Firmware\n\nImplement the embedded software that runs on the hardware platform. Firmware works under constraints application development never faces — finite memory, flash, and power budgets; hard real-time deadlines; field updates that may need physical access; and far harder debugging. \"It works on the bench\" is not validation for code shipping inside a physical product.\n\n## Scope\n\nThe embedded software against the design and requirements: the implementation, its tests, and the on-target measurements that prove it fits the budgets. Firmware decides *how the platform behaves in software* — not the hardware design it runs on (design) and not the final validation of the whole product (validation).\n\n## What to do\n\n- Implement against the functional requirements and the design's actual hardware, not an idealized board.\n- Respect the memory, flash, power, and timing budgets, and measure them on real hardware rather than assuming.\n- Trace every safety-critical path to a documented hazard mitigation and make it provably correct.\n- Ship tests and on-target measurements alongside the implementation, not as a follow-up.\n\n## What NOT to do\n\n- Don't redesign the hardware or change the schematic to suit the software — that's a revisit to design.\n- Don't run the product's validation campaign (HIL, environmental, cert) — that's the validation stage.\n- Don't treat a bench pass as validation for a safety-critical path.\n- Don't exceed a resource budget and leave it for validation to discover.\n", "stagePath": "plugin/studios/hwdev/stages/firmware/STAGE.md", "hats": { "firmware-engineer": { @@ -5462,6 +5620,7 @@ "frontmatter": { "name": "manufacturing", "description": "DFM, assembly process, QA sampling, and production ramp", + "optional": true, "hats": [ "manufacturing-engineer", "qa-lead", @@ -5493,7 +5652,7 @@ } ] }, - "stageMd": "---\nname: manufacturing\ndescription: DFM, assembly process, QA sampling, and production ramp\nhats: [manufacturing-engineer, qa-lead, verifier]\nfix_hats: [classifier, manufacturing-engineer, feedback-assessor]\nreview: await\nelaboration: autonomous\ninputs:\n - stage: design\n output: schematic\n - stage: design\n output: bom\n - stage: firmware\n output: firmware-binary\n - stage: validation\n output: certification\n---\n\n# Manufacturing\n\nGet the validated design into volume production: design-for-manufacturability review, assembly process definition, QA sampling plan, production ramp, and first-article inspection. Manufacturing decisions lock in — once tooling is cut and the line is running, changes are expensive and slow.\n\n## Scope\n\nProduction readiness and ramp: the DFM review, the assembly process (line layout, station operations, takt time), and the quality plan that catches defects before volume. Manufacturing decides *how the validated design gets built repeatably at scale* — not the design itself (design) and not whether it meets its requirements (validation).\n\n## What to do\n\n- Run the DFM review against the actual design and BOM, surfacing manufacturability gaps before tooling is cut.\n- Define the assembly process concretely — line layout, per-station operations, takt time.\n- Build the quality plan end to end: incoming inspection, in-process checks, end-of-line functional test, sampling, defect classification.\n- Treat first-article inspection as the last cheap chance to catch a problem before it ships at volume.\n\n## What NOT to do\n\n- Don't change the design or BOM to ease manufacturing — a real manufacturability problem is a revisit to design.\n- Don't run validation or certification work — consume validation's output as a precondition.\n- Don't ramp to volume past an unresolved first-article finding.\n- Don't define a process step without a verifiable post-condition and a scrap or rework policy.\n", + "stageMd": "---\nname: manufacturing\ndescription: DFM, assembly process, QA sampling, and production ramp\noptional: true\nhats: [manufacturing-engineer, qa-lead, verifier]\nfix_hats: [classifier, manufacturing-engineer, feedback-assessor]\nreview: await\nelaboration: autonomous\ninputs:\n - stage: design\n output: schematic\n - stage: design\n output: bom\n - stage: firmware\n output: firmware-binary\n - stage: validation\n output: certification\n---\n\n# Manufacturing\n\nGet the validated design into volume production: design-for-manufacturability review, assembly process definition, QA sampling plan, production ramp, and first-article inspection. Manufacturing decisions lock in — once tooling is cut and the line is running, changes are expensive and slow.\n\n## Scope\n\nProduction readiness and ramp: the DFM review, the assembly process (line layout, station operations, takt time), and the quality plan that catches defects before volume. Manufacturing decides *how the validated design gets built repeatably at scale* — not the design itself (design) and not whether it meets its requirements (validation).\n\n## What to do\n\n- Run the DFM review against the actual design and BOM, surfacing manufacturability gaps before tooling is cut.\n- Define the assembly process concretely — line layout, per-station operations, takt time.\n- Build the quality plan end to end: incoming inspection, in-process checks, end-of-line functional test, sampling, defect classification.\n- Treat first-article inspection as the last cheap chance to catch a problem before it ships at volume.\n\n## What NOT to do\n\n- Don't change the design or BOM to ease manufacturing — a real manufacturability problem is a revisit to design.\n- Don't run validation or certification work — consume validation's output as a precondition.\n- Don't ramp to volume past an unresolved first-article finding.\n- Don't define a process step without a verifiable post-condition and a scrap or rework policy.\n", "stagePath": "plugin/studios/hwdev/stages/manufacturing/STAGE.md", "hats": { "manufacturing-engineer": { @@ -5594,6 +5753,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/ideation/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -5813,6 +5984,7 @@ "frontmatter": { "name": "review", "description": "Adversarial quality review of the deliverable", + "optional": true, "hats": [ "review-planner", "synthesizer", @@ -5834,7 +6006,7 @@ } ] }, - "stageMd": "---\nname: review\ndescription: Adversarial quality review of the deliverable\nhats: [review-planner, synthesizer, reviewer, critic, fact-checker]\nfix_hats: [classifier, synthesizer, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: create\n discovery: draft-deliverable\n---\n\n# Review\n\nAdversarially stress-test the deliverable before it's finalized. The draft from create goes in; a structured report with severity-graded findings comes out. This stage exists to surface the weaknesses, unsupported claims, and gaps the author couldn't see in their own work.\n\n## Scope\n\nQuality review of the draft against named criteria: each review surface — clarity, evidence strength, novelty, structural integrity, scope fit, audience fit, coherence — examined and graded. Review decides *whether the deliverable holds up and where it doesn't* — not what it says (create) and not how it's packaged (deliver). It produces findings; it doesn't rewrite the artifact.\n\n## What to do\n\n- Name each review surface and its criteria, then review against them with cited observations.\n- Trace every claim in the draft to its source and flag anything that doesn't trace.\n- Hunt for weaknesses, logical gaps, and missing perspectives the author wouldn't catch on their own work.\n- Grade findings by severity (critical, major, minor) so the next stage knows what must be addressed.\n\n## What NOT to do\n\n- Don't rewrite the deliverable or fix the findings yourself — record them; addressing them is a revisit to create.\n- Don't re-run research or generate new content.\n- Don't soften a finding because the draft is otherwise good; severity discipline is the point.\n- Don't decide unilaterally which findings get addressed — a human arbitrates that before deliver.\n", + "stageMd": "---\nname: review\ndescription: Adversarial quality review of the deliverable\noptional: true\nhats: [review-planner, synthesizer, reviewer, critic, fact-checker]\nfix_hats: [classifier, synthesizer, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: create\n discovery: draft-deliverable\n---\n\n# Review\n\nAdversarially stress-test the deliverable before it's finalized. The draft from create goes in; a structured report with severity-graded findings comes out. This stage exists to surface the weaknesses, unsupported claims, and gaps the author couldn't see in their own work.\n\n## Scope\n\nQuality review of the draft against named criteria: each review surface — clarity, evidence strength, novelty, structural integrity, scope fit, audience fit, coherence — examined and graded. Review decides *whether the deliverable holds up and where it doesn't* — not what it says (create) and not how it's packaged (deliver). It produces findings; it doesn't rewrite the artifact.\n\n## What to do\n\n- Name each review surface and its criteria, then review against them with cited observations.\n- Trace every claim in the draft to its source and flag anything that doesn't trace.\n- Hunt for weaknesses, logical gaps, and missing perspectives the author wouldn't catch on their own work.\n- Grade findings by severity (critical, major, minor) so the next stage knows what must be addressed.\n\n## What NOT to do\n\n- Don't rewrite the deliverable or fix the findings yourself — record them; addressing them is a revisit to create.\n- Don't re-run research or generate new content.\n- Don't soften a finding because the draft is otherwise good; severity discipline is the point.\n- Don't decide unilaterally which findings get addressed — a human arbitrates that before deliver.\n", "stagePath": "plugin/studios/ideation/stages/review/STAGE.md", "hats": { "critic": { @@ -6052,6 +6224,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/incident-response/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": { "production-incident": { "content": "---\nname: production-incident\nstudio: incident-response\ndescription: Respond to a production incident from triage through postmortem\nparameters:\n - name: service\n description: Affected service or system\n required: true\n - name: severity\n description: \"Severity: sev1, sev2, sev3\"\n required: true\n - name: alert_url\n description: Link to the alert or monitoring dashboard\n required: false\nunits:\n - name: \"triage\"\n stage: triage\n criteria:\n - \"Severity confirmed as {{ severity }}\"\n - \"Blast radius assessed (users, services, data)\"\n - \"Incident commander assigned\"\n - name: \"root-cause\"\n stage: investigate\n criteria:\n - \"Timeline reconstructed with evidence\"\n - \"Root cause identified (not just proximate trigger)\"\n - \"Contributing factors documented\"\n - name: \"stop-bleeding\"\n stage: mitigate\n criteria:\n - \"{{ service }} restored to functional state\"\n - \"Mitigation verified in production\"\n - \"No data loss or corruption from mitigation\"\n - name: \"permanent-fix\"\n stage: resolve\n criteria:\n - \"Fix addresses root cause, not just symptom\"\n - \"Regression test covers the failure scenario\"\n - \"Fix deployed and verified\"\n - name: \"postmortem\"\n stage: postmortem\n criteria:\n - \"Timeline accurate and complete\"\n - \"Action items assigned with owners and deadlines\"\n - \"Prevention measures identified\"\n---\n\nFull incident response for production issues. Uses all 5 stages.\n", @@ -6427,6 +6611,7 @@ "frontmatter": { "name": "resolve", "description": "Implement permanent fix with proper testing and review", + "optional": true, "hats": [ "engineer", "reviewer", @@ -6446,7 +6631,7 @@ } ] }, - "stageMd": "---\nname: resolve\ndescription: Implement permanent fix with proper testing and review\nhats: [engineer, reviewer, verifier]\nfix_hats: [classifier, engineer, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: mitigate\n discovery: mitigation-log\n---\n\n# Resolve\n\nBuild the permanent fix. Mitigate stopped the bleeding with a reversible action; investigate produced the root cause. Resolve lands the code or system change that actually addresses that cause, ships a regression test that would have caught the incident, and plans the removal of the temporary mitigation once the fix is verified.\n\n## Scope\n\nThe durable fix and its safety net: the change that addresses the root cause, a regression test that fails without it, a deployment plan, the mitigation-cleanup plan, and a check for the same defect class elsewhere. Resolve decides *how the incident is fixed for good* — not why it happened (investigate) or how impact was stopped in the moment (mitigate).\n\n## What to do\n\n- Address the diagnosed root cause itself, not the symptom the mitigation papered over.\n- Ship a regression test that fails without the fix — proof it would have caught this incident.\n- Plan the deployment with rollback criteria and a plan to remove the temporary mitigation once verified.\n- Check whether the same class of defect exists elsewhere; a one-instance patch leaves the weakness for the next surface.\n\n## What NOT to do\n\n- Don't rely on the mitigation as the fix — it's a holding action that resolve is meant to retire.\n- Don't redo the diagnosis or re-litigate the root cause; consume investigate's output.\n- Don't land a fix without a regression test that proves it.\n- Don't patch the single instance and walk away from the broader defect class.\n", + "stageMd": "---\nname: resolve\ndescription: Implement permanent fix with proper testing and review\noptional: true\nhats: [engineer, reviewer, verifier]\nfix_hats: [classifier, engineer, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: mitigate\n discovery: mitigation-log\n---\n\n# Resolve\n\nBuild the permanent fix. Mitigate stopped the bleeding with a reversible action; investigate produced the root cause. Resolve lands the code or system change that actually addresses that cause, ships a regression test that would have caught the incident, and plans the removal of the temporary mitigation once the fix is verified.\n\n## Scope\n\nThe durable fix and its safety net: the change that addresses the root cause, a regression test that fails without it, a deployment plan, the mitigation-cleanup plan, and a check for the same defect class elsewhere. Resolve decides *how the incident is fixed for good* — not why it happened (investigate) or how impact was stopped in the moment (mitigate).\n\n## What to do\n\n- Address the diagnosed root cause itself, not the symptom the mitigation papered over.\n- Ship a regression test that fails without the fix — proof it would have caught this incident.\n- Plan the deployment with rollback criteria and a plan to remove the temporary mitigation once verified.\n- Check whether the same class of defect exists elsewhere; a one-instance patch leaves the weakness for the next surface.\n\n## What NOT to do\n\n- Don't rely on the mitigation as the fix — it's a holding action that resolve is meant to retire.\n- Don't redo the diagnosis or re-litigate the root cause; consume investigate's output.\n- Don't land a fix without a regression test that proves it.\n- Don't patch the single instance and walk away from the broader defect class.\n", "stagePath": "plugin/studios/incident-response/stages/resolve/STAGE.md", "hats": { "engineer": { @@ -6511,6 +6696,7 @@ "frontmatter": { "name": "postmortem", "description": "Document timeline, root cause, action items, and prevention measures", + "optional": true, "hats": [ "postmortem-author", "action-item-tracker", @@ -6530,7 +6716,7 @@ } ] }, - "stageMd": "---\nname: postmortem\ndescription: Document timeline, root cause, action items, and prevention measures\nhats: [postmortem-author, action-item-tracker, verifier]\nfix_hats: [classifier, postmortem-author, feedback-assessor]\nreview: external\nelaboration: autonomous\ninputs:\n - stage: resolve\n discovery: resolution-summary\n---\n\n# Postmortem\n\nThe terminal stage of the incident lifecycle: convert the incident into organizational learning. Investigate produced the diagnosis, resolve built the fix — postmortem tells the full story of what happened, how it was detected and handled, why it happened, and what concrete changes will reduce the likelihood or impact of the next incident in this class.\n\n## Scope\n\nThe learning artifact: the consolidated narrative, the detection-and-response analysis, the action items with owners, and the prevention measures. Postmortem decides *what the organization takes away from this incident* — not the diagnosis (investigate) or the fix (resolve), which it draws on. It is blameless by design: systemic gaps are the subject, not individuals.\n\n## What to do\n\n- Write the full timeline — detection story, response story, root cause, contributing factors — with evidence cited.\n- Keep the framing blameless; name the systemic gaps that allowed the failure, because naming people produces fear, not improvement.\n- Extract concrete action items with named owners, priorities, and tracking references, and file them into the team's work-management system.\n- Make prevention measures address the systemic gap, not just the single instance that failed.\n\n## What NOT to do\n\n- Don't re-investigate or rebuild the fix — consume resolve's summary and the upstream artifacts.\n- Don't assign individual blame; the subject is the system the humans operated inside.\n- Don't leave action items as prose in the document with no owner or tracking reference.\n- Don't let prevention measures patch only this instance while the underlying class stays open.\n", + "stageMd": "---\nname: postmortem\ndescription: Document timeline, root cause, action items, and prevention measures\noptional: true\nhats: [postmortem-author, action-item-tracker, verifier]\nfix_hats: [classifier, postmortem-author, feedback-assessor]\nreview: external\nelaboration: autonomous\ninputs:\n - stage: resolve\n discovery: resolution-summary\n---\n\n# Postmortem\n\nThe terminal stage of the incident lifecycle: convert the incident into organizational learning. Investigate produced the diagnosis, resolve built the fix — postmortem tells the full story of what happened, how it was detected and handled, why it happened, and what concrete changes will reduce the likelihood or impact of the next incident in this class.\n\n## Scope\n\nThe learning artifact: the consolidated narrative, the detection-and-response analysis, the action items with owners, and the prevention measures. Postmortem decides *what the organization takes away from this incident* — not the diagnosis (investigate) or the fix (resolve), which it draws on. It is blameless by design: systemic gaps are the subject, not individuals.\n\n## What to do\n\n- Write the full timeline — detection story, response story, root cause, contributing factors — with evidence cited.\n- Keep the framing blameless; name the systemic gaps that allowed the failure, because naming people produces fear, not improvement.\n- Extract concrete action items with named owners, priorities, and tracking references, and file them into the team's work-management system.\n- Make prevention measures address the systemic gap, not just the single instance that failed.\n\n## What NOT to do\n\n- Don't re-investigate or rebuild the fix — consume resolve's summary and the upstream artifacts.\n- Don't assign individual blame; the subject is the system the humans operated inside.\n- Don't leave action items as prose in the document with no owner or tracking reference.\n- Don't let prevention measures patch only this instance while the underlying class stays open.\n", "stagePath": "plugin/studios/incident-response/stages/postmortem/STAGE.md", "hats": { "action-item-tracker": { @@ -6621,6 +6807,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/legal/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -6754,6 +6952,7 @@ "frontmatter": { "name": "research", "description": "Research precedent and review regulatory requirements", + "optional": true, "hats": [ "researcher", "analyst", @@ -6780,7 +6979,7 @@ } ] }, - "stageMd": "---\nname: research\ndescription: Research precedent and review regulatory requirements\nhats: [researcher, analyst, verifier]\nfix_hats: [classifier, researcher, analyst, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: intake\n discovery: legal-brief\noutputs:\n - discovery: research-memo\n hat: analyst\n---\n\n# Research\n\nTake the intake brief and build the legal-research foundation the drafting stage will rely on: the applicable rules, the controlling precedent, the regulatory regimes, and the open questions. This stage gathers and summarizes legal materials so the attorney can apply judgment — it does not supply the judgment itself.\n\n## Scope\n\nInvestigation and synthesis of legal sources for the matter's questions. Research decides *what the materials say* and *what's settled vs. contested* — not what the document should contain (draft), and not whether the final document is sufficient (review). Any statement of the form \"the law requires X\" must rest on a cited primary source.\n\n## What to do\n\n- Identify the relevant primary and secondary sources for each question, and capture exact, current citations.\n- Separate what's settled from what's contested, and name the open questions the attorney needs to weigh.\n- Synthesize raw findings into a structured memo that traces back to the intake brief's facts.\n- Frame conclusions as input for the attorney's review, not as directions for execution.\n\n## What NOT to do\n\n- Don't present an analysis as a legal opinion or a strategy decision — that's the attorney's domain.\n- Don't draft document language; the memo informs the draft, it isn't the draft.\n- Don't cite a source you haven't confirmed is real and current, and don't let an uncited assertion stand as law.\n- Don't reach beyond the questions the brief raised; new questions become new units.\n", + "stageMd": "---\nname: research\ndescription: Research precedent and review regulatory requirements\noptional: true\nhats: [researcher, analyst, verifier]\nfix_hats: [classifier, researcher, analyst, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: intake\n discovery: legal-brief\noutputs:\n - discovery: research-memo\n hat: analyst\n---\n\n# Research\n\nTake the intake brief and build the legal-research foundation the drafting stage will rely on: the applicable rules, the controlling precedent, the regulatory regimes, and the open questions. This stage gathers and summarizes legal materials so the attorney can apply judgment — it does not supply the judgment itself.\n\n## Scope\n\nInvestigation and synthesis of legal sources for the matter's questions. Research decides *what the materials say* and *what's settled vs. contested* — not what the document should contain (draft), and not whether the final document is sufficient (review). Any statement of the form \"the law requires X\" must rest on a cited primary source.\n\n## What to do\n\n- Identify the relevant primary and secondary sources for each question, and capture exact, current citations.\n- Separate what's settled from what's contested, and name the open questions the attorney needs to weigh.\n- Synthesize raw findings into a structured memo that traces back to the intake brief's facts.\n- Frame conclusions as input for the attorney's review, not as directions for execution.\n\n## What NOT to do\n\n- Don't present an analysis as a legal opinion or a strategy decision — that's the attorney's domain.\n- Don't draft document language; the memo informs the draft, it isn't the draft.\n- Don't cite a source you haven't confirmed is real and current, and don't let an uncited assertion stand as law.\n- Don't reach beyond the questions the brief raised; new questions become new units.\n", "stagePath": "plugin/studios/legal/stages/research/STAGE.md", "hats": { "analyst": { @@ -6846,6 +7045,7 @@ "frontmatter": { "name": "draft", "description": "Create legal documents and contracts", + "optional": true, "hats": [ "drafter", "editor", @@ -6875,7 +7075,7 @@ } ] }, - "stageMd": "---\nname: draft\ndescription: Create legal documents and contracts\nhats: [drafter, editor, verifier]\nfix_hats: [classifier, drafter, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs:\n - stage: research\n discovery: research-memo\n - stage: intake\n discovery: legal-brief\noutputs:\n - output: draft-document\n hat: drafter\n---\n\n# Draft\n\nTranslate the intake brief and the research memo into a concrete legal document — a contract, agreement, policy, exhibit, or filing. This is where the matter takes the form a counterparty will actually sign. The agent drafts; the licensed attorney owns the legal judgment, and every tactical choice is flagged for the attorney rather than decided here.\n\n## Scope\n\nAuthoring the document's operative language: clauses, defined terms, cross-references, and exhibits that execute the brief and reflect the research. Draft decides *what the document says* — not whether the underlying analysis is sound (research), and not whether the finished document holds up (review). Tactical legal calls (an indemnity stance, a liability cap, choice of governing law) are surfaced to the attorney, not chosen.\n\n## What to do\n\n- Draft the operative clauses for the unit's scope, with defined terms and clean cross-references, mapping each protective clause to the risk it addresses.\n- Keep defined-term usage, cross-references, exhibit completeness, and house style consistent across the document.\n- Flag every tactical or judgment-laden choice for the attorney instead of resolving it silently.\n- Trace the draft back to the brief and the memo so nothing in scope is left unaddressed.\n\n## What NOT to do\n\n- Don't make the legal-strategy calls — flag them; the attorney decides.\n- Don't re-litigate the research or re-investigate the facts; consume the upstream memo and brief as given.\n- Don't leave TODO markers, placeholders, or unresolved bracketed text in a draft you advance.\n- Don't introduce terms the brief and research don't support.\n", + "stageMd": "---\nname: draft\ndescription: Create legal documents and contracts\noptional: true\nhats: [drafter, editor, verifier]\nfix_hats: [classifier, drafter, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs:\n - stage: research\n discovery: research-memo\n - stage: intake\n discovery: legal-brief\noutputs:\n - output: draft-document\n hat: drafter\n---\n\n# Draft\n\nTranslate the intake brief and the research memo into a concrete legal document — a contract, agreement, policy, exhibit, or filing. This is where the matter takes the form a counterparty will actually sign. The agent drafts; the licensed attorney owns the legal judgment, and every tactical choice is flagged for the attorney rather than decided here.\n\n## Scope\n\nAuthoring the document's operative language: clauses, defined terms, cross-references, and exhibits that execute the brief and reflect the research. Draft decides *what the document says* — not whether the underlying analysis is sound (research), and not whether the finished document holds up (review). Tactical legal calls (an indemnity stance, a liability cap, choice of governing law) are surfaced to the attorney, not chosen.\n\n## What to do\n\n- Draft the operative clauses for the unit's scope, with defined terms and clean cross-references, mapping each protective clause to the risk it addresses.\n- Keep defined-term usage, cross-references, exhibit completeness, and house style consistent across the document.\n- Flag every tactical or judgment-laden choice for the attorney instead of resolving it silently.\n- Trace the draft back to the brief and the memo so nothing in scope is left unaddressed.\n\n## What NOT to do\n\n- Don't make the legal-strategy calls — flag them; the attorney decides.\n- Don't re-litigate the research or re-investigate the facts; consume the upstream memo and brief as given.\n- Don't leave TODO markers, placeholders, or unresolved bracketed text in a draft you advance.\n- Don't introduce terms the brief and research don't support.\n", "stagePath": "plugin/studios/legal/stages/draft/STAGE.md", "hats": { "drafter": { @@ -7027,6 +7227,7 @@ "frontmatter": { "name": "execute", "description": "Finalize documents and coordinate signatures", + "optional": true, "hats": [ "closer", "administrator", @@ -7056,7 +7257,7 @@ } ] }, - "stageMd": "---\nname: execute\ndescription: Finalize documents and coordinate signatures\nhats: [closer, administrator, verifier]\nfix_hats: [classifier, closer, feedback-assessor]\nreview: await\nelaboration: autonomous\ninputs:\n - stage: review\n discovery: review-findings\n - stage: draft\n output: draft-document\noutputs:\n - output: executed-document\n hat: closer\n---\n\n# Execute\n\nThe closing stage of a legal matter: incorporate the resolved review findings, satisfy the execution formalities, route the document for signature, and file the executed copy with its audit trail. The agent coordinates the workflow; the licensed attorney is the authority of record on whether the document is ready to sign.\n\n## Scope\n\nFinalizing and formalizing the approved draft — incorporating findings, confirming signing authority and conditions precedent, handling notarization or witness requirements, and recording the executed state plus its audit trail. Execute decides *whether the document is ready and what its final state is* — not whether the language was right (draft) or whether it was reviewed (review). Anything affecting execution validity is escalated to the attorney.\n\n## What to do\n\n- Incorporate the resolved review findings into the body and produce the final document.\n- Confirm with the attorney that conditions precedent are satisfied and signing authority is in place before routing for signature.\n- Handle the execution formalities appropriate to the document type and jurisdictions, and record the key calendar dates (renewal, termination, compliance deadlines).\n- Keep a complete audit trail: the executed copy must match the approved draft plus the closer's recorded changes.\n\n## What NOT to do\n\n- Don't decide questions of execution validity (authority, notarization, conditions precedent) on your own — escalate them.\n- Don't reopen drafting or review judgments; execute formalizes what's already approved.\n- Don't self-advance the signature gate — the executed document is recorded when the external signing event actually arrives.\n- Don't file a document with an unresolved critical finding that lacks a documented attorney waiver.\n", + "stageMd": "---\nname: execute\ndescription: Finalize documents and coordinate signatures\noptional: true\nhats: [closer, administrator, verifier]\nfix_hats: [classifier, closer, feedback-assessor]\nreview: await\nelaboration: autonomous\ninputs:\n - stage: review\n discovery: review-findings\n - stage: draft\n output: draft-document\noutputs:\n - output: executed-document\n hat: closer\n---\n\n# Execute\n\nThe closing stage of a legal matter: incorporate the resolved review findings, satisfy the execution formalities, route the document for signature, and file the executed copy with its audit trail. The agent coordinates the workflow; the licensed attorney is the authority of record on whether the document is ready to sign.\n\n## Scope\n\nFinalizing and formalizing the approved draft — incorporating findings, confirming signing authority and conditions precedent, handling notarization or witness requirements, and recording the executed state plus its audit trail. Execute decides *whether the document is ready and what its final state is* — not whether the language was right (draft) or whether it was reviewed (review). Anything affecting execution validity is escalated to the attorney.\n\n## What to do\n\n- Incorporate the resolved review findings into the body and produce the final document.\n- Confirm with the attorney that conditions precedent are satisfied and signing authority is in place before routing for signature.\n- Handle the execution formalities appropriate to the document type and jurisdictions, and record the key calendar dates (renewal, termination, compliance deadlines).\n- Keep a complete audit trail: the executed copy must match the approved draft plus the closer's recorded changes.\n\n## What NOT to do\n\n- Don't decide questions of execution validity (authority, notarization, conditions precedent) on your own — escalate them.\n- Don't reopen drafting or review judgments; execute formalizes what's already approved.\n- Don't self-advance the signature gate — the executed document is recorded when the external signing event actually arrives.\n- Don't file a document with an unresolved critical finding that lacks a documented attorney waiver.\n", "stagePath": "plugin/studios/legal/stages/execute/STAGE.md", "hats": { "administrator": { @@ -7119,9 +7320,10 @@ "release" ], "category": "engineering", - "default_model": "sonnet" + "default_model": "sonnet", + "deprecated": true }, - "studioMd": "---\nname: library-development\nslug: libdev\ndescription: Lifecycle for libraries, SDKs, and CLI tools\nstages: [inception, development, security, release]\ncategory: engineering\ndefault_model: sonnet\n---\n\n# Library Development\n\nLifecycle for libraries, SDKs, and CLI tools. Differs from application\ndevelopment: no product or design phases — inception directly covers discovery\nand API surface (semver policy, public contract, extension points), development\nbuilds against that contract, and release publishes rather than deploys.\n", + "studioMd": "---\nname: library-development\nslug: libdev\ndescription: Lifecycle for libraries, SDKs, and CLI tools\nstages: [inception, development, security, release]\ncategory: engineering\ndefault_model: sonnet\ndeprecated: true\n---\n\n> **Deprecated 2026-05-27.** Library / SDK / CLI work folded into the `software`\n> (appdev) studio, which now carries an optional `release` stage and drops\n> `design` / `product` / `operations` for non-application intents. This studio is\n> hidden from new-intent pickers but stays resolvable so in-flight `studio:\n> libdev` intents finish unchanged. Do not delete.\n\n# Library Development\n\nLifecycle for libraries, SDKs, and CLI tools. Differs from application\ndevelopment: no product or design phases — inception directly covers discovery\nand API surface (semver policy, public contract, extension points), development\nbuilds against that contract, and release publishes rather than deploys.\n", "studioPath": "plugin/studios/libdev/STUDIO.md", "stagesOrder": [ "inception", @@ -7131,6 +7333,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/libdev/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -7613,6 +7827,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/marketing/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": { "product-launch": { "content": "---\nname: product-launch\nstudio: marketing\ndescription: Launch campaign for a new product or feature\nparameters:\n - name: product\n description: Product or feature being launched\n required: true\n - name: launch_date\n description: Target launch date\n required: false\n - name: target_audience\n description: Primary audience segment\n required: false\nunits:\n - name: \"audience-research\"\n stage: research\n criteria:\n - \"Target audience for {{ product }} defined with observable characteristics\"\n - \"Competitive messaging landscape mapped\"\n - \"Key differentiators identified\"\n - name: \"messaging-framework\"\n stage: strategy\n criteria:\n - \"Core messaging defined (headline, value props, proof points)\"\n - \"Channel strategy aligned with audience behavior\"\n - \"KPIs defined with targets\"\n - name: \"launch-assets\"\n stage: content\n criteria:\n - \"Landing page copy finalized\"\n - \"Email sequences drafted\"\n - \"Social content calendar populated\"\n - name: \"go-live\"\n stage: launch\n criteria:\n - \"All assets live and tracking verified\"\n - \"Distribution channels activated\"\n - \"Day-1 metrics baseline captured\"\n---\n\nProduct launch campaign through the full marketing lifecycle.\n", @@ -7982,6 +8208,7 @@ "frontmatter": { "name": "launch", "description": "Coordinate multi-channel launch, schedule distribution, and activate campaigns", + "optional": true, "hats": [ "campaign-manager", "channel-coordinator", @@ -8001,7 +8228,7 @@ } ] }, - "stageMd": "---\nname: launch\ndescription: Coordinate multi-channel launch, schedule distribution, and activate campaigns\nhats: [campaign-manager, channel-coordinator, verifier]\nfix_hats: [classifier, campaign-manager, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: content\n discovery: assets\n---\n\n# Launch\n\nTake the approved content and put it live: sequence the activations across channels, verify each prerequisite before go-live, publish on schedule, and log what actually happened. This is the operational stage of the campaign — once channels activate, the cost of recall is real, so readiness is confirmed before each step fires.\n\n## Scope\n\nCoordinating and executing the multi-channel activation. Launch decides *what goes live, in what order, with which tracking, and when* — not the assets themselves (content) or the results analysis (measure). Units are launch steps with preconditions, an action, and a post-condition check; the output is the campaign log measure reads.\n\n## What to do\n\n- Sequence the activations and declare per-step preconditions, the action, and a post-condition check before firing.\n- Verify prerequisites are actually in place before each go-live — tracking pixels before paid traffic, landing pages before email sends.\n- Publish on schedule and log actual timestamps, channel, tracking, and initial signals.\n- Name a rollback or recall path for steps where one is possible.\n\n## What NOT to do\n\n- Don't author or rewrite assets here — that's the content stage; launch distributes what was approved.\n- Don't analyze or attribute results; that's measure reading the log you produce.\n- Don't fire a step whose preconditions or tracking aren't confirmed in place.\n- Don't activate channels the content and strategy didn't scope.\n", + "stageMd": "---\nname: launch\ndescription: Coordinate multi-channel launch, schedule distribution, and activate campaigns\noptional: true\nhats: [campaign-manager, channel-coordinator, verifier]\nfix_hats: [classifier, campaign-manager, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: content\n discovery: assets\n---\n\n# Launch\n\nTake the approved content and put it live: sequence the activations across channels, verify each prerequisite before go-live, publish on schedule, and log what actually happened. This is the operational stage of the campaign — once channels activate, the cost of recall is real, so readiness is confirmed before each step fires.\n\n## Scope\n\nCoordinating and executing the multi-channel activation. Launch decides *what goes live, in what order, with which tracking, and when* — not the assets themselves (content) or the results analysis (measure). Units are launch steps with preconditions, an action, and a post-condition check; the output is the campaign log measure reads.\n\n## What to do\n\n- Sequence the activations and declare per-step preconditions, the action, and a post-condition check before firing.\n- Verify prerequisites are actually in place before each go-live — tracking pixels before paid traffic, landing pages before email sends.\n- Publish on schedule and log actual timestamps, channel, tracking, and initial signals.\n- Name a rollback or recall path for steps where one is possible.\n\n## What NOT to do\n\n- Don't author or rewrite assets here — that's the content stage; launch distributes what was approved.\n- Don't analyze or attribute results; that's measure reading the log you produce.\n- Don't fire a step whose preconditions or tracking aren't confirmed in place.\n- Don't activate channels the content and strategy didn't scope.\n", "stagePath": "plugin/studios/marketing/stages/launch/STAGE.md", "hats": { "campaign-manager": { @@ -8066,6 +8293,7 @@ "frontmatter": { "name": "measure", "description": "Track KPIs, analyze performance, and generate insights and recommendations", + "optional": true, "hats": [ "analyst", "report-writer", @@ -8085,7 +8313,7 @@ } ] }, - "stageMd": "---\nname: measure\ndescription: Track KPIs, analyze performance, and generate insights and recommendations\nhats: [analyst, report-writer, verifier]\nfix_hats: [classifier, analyst, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: launch\n discovery: campaign-log\n---\n\n# Measure\n\nClose the loop on the campaign: read what actually happened from the launch log and the channel platforms, compare it against the goals strategy defined, attribute outcomes to specific decisions, and produce recommendations the next campaign can act on. This stage exists to make the next campaign better than this one.\n\n## Scope\n\nPerformance analysis and recommendations. Measure decides *what the results were, why, and what to do differently next time* — not the live activation it grades (launch) or the goals it grades against (strategy). Units are measurement surfaces (channel, segment, asset, overall-vs-goal); they may share data but produce distinct analytic lenses.\n\n## What to do\n\n- Pull performance data per channel, segment, and asset, and compare actual KPIs to the strategy's targets using the strategy's own definitions.\n- State the attribution model explicitly and segment the data to find the patterns that explain the result.\n- Be honest about statistical caveats and the limits of what the data can support.\n- Tie every recommendation to a specific finding so the next campaign can act on evidence, not opinion.\n\n## What NOT to do\n\n- Don't redefine the KPIs to flatter the result — measure against the strategy's definitions as written.\n- Don't relaunch, re-author assets, or change live channels; measure analyzes, it doesn't operate.\n- Don't claim attribution the data can't support, or bury the caveats.\n- Don't produce recommendations that float free of a finding.\n", + "stageMd": "---\nname: measure\ndescription: Track KPIs, analyze performance, and generate insights and recommendations\noptional: true\nhats: [analyst, report-writer, verifier]\nfix_hats: [classifier, analyst, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: launch\n discovery: campaign-log\n---\n\n# Measure\n\nClose the loop on the campaign: read what actually happened from the launch log and the channel platforms, compare it against the goals strategy defined, attribute outcomes to specific decisions, and produce recommendations the next campaign can act on. This stage exists to make the next campaign better than this one.\n\n## Scope\n\nPerformance analysis and recommendations. Measure decides *what the results were, why, and what to do differently next time* — not the live activation it grades (launch) or the goals it grades against (strategy). Units are measurement surfaces (channel, segment, asset, overall-vs-goal); they may share data but produce distinct analytic lenses.\n\n## What to do\n\n- Pull performance data per channel, segment, and asset, and compare actual KPIs to the strategy's targets using the strategy's own definitions.\n- State the attribution model explicitly and segment the data to find the patterns that explain the result.\n- Be honest about statistical caveats and the limits of what the data can support.\n- Tie every recommendation to a specific finding so the next campaign can act on evidence, not opinion.\n\n## What NOT to do\n\n- Don't redefine the KPIs to flatter the result — measure against the strategy's definitions as written.\n- Don't relaunch, re-author assets, or change live channels; measure analyzes, it doesn't operate.\n- Don't claim attribution the data can't support, or bury the caveats.\n- Don't produce recommendations that float free of a finding.\n", "stagePath": "plugin/studios/marketing/stages/measure/STAGE.md", "hats": { "analyst": { @@ -8193,6 +8421,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/migration/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -8584,6 +8824,7 @@ "frontmatter": { "name": "cutover", "description": "Plan and execute the production cutover with rollback procedures", + "optional": true, "hats": [ "cutover-coordinator", "rollback-engineer", @@ -8617,7 +8858,7 @@ } ] }, - "stageMd": "---\nname: cutover\ndescription: Plan and execute the production cutover with rollback procedures\nhats: [cutover-coordinator, rollback-engineer, verifier]\nfix_hats: [classifier, cutover-coordinator, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: validation\n discovery: validation-report\nreview-agents-include:\n - stage: migrate\n agents: [data-integrity]\n - stage: validation\n agents: [parity]\n---\n\n# Cutover\n\nPlan and execute the production cutover: the runbook the on-call team follows during the maintenance window, with a rollback procedure or an explicit forward-fix rationale for every step. This is the operational stage of the migration — the point where the validated work goes live, and the point of no return is real.\n\n## Scope\n\nAuthoring and executing the cutover runbook. Cutover decides *how the production switch happens, in what order, with what go/no-go gates and rollback paths* — not whether the migration is correct (validation) or how the data moves (migrate). Units are operational steps: preconditions, action, post-condition check, and a named rollback or a stated reason none exists.\n\n## What to do\n\n- Sequence each step with preconditions, owner, expected duration, action, post-condition check, and go/no-go criteria.\n- Pair every step with its rollback procedure, or state explicitly why the step is forward-fix only and mark the point of no return.\n- Define a data-sync strategy for writes that arrive during the maintenance window.\n- Make each post-condition produce a mechanical pass/fail signal the on-call team can act on without judgment calls.\n\n## What NOT to do\n\n- Don't proceed on a migration the validation stage hasn't signed off, including the rollback rehearsal.\n- Don't change migration code or mappings here; cutover executes, it doesn't rebuild.\n- Don't write a step with no rollback and no stated forward-fix rationale.\n- Don't self-advance the cutover gate — the runbook proceeds through the team's actual change-management approval.\n", + "stageMd": "---\nname: cutover\ndescription: Plan and execute the production cutover with rollback procedures\noptional: true\nhats: [cutover-coordinator, rollback-engineer, verifier]\nfix_hats: [classifier, cutover-coordinator, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: validation\n discovery: validation-report\nreview-agents-include:\n - stage: migrate\n agents: [data-integrity]\n - stage: validation\n agents: [parity]\n---\n\n# Cutover\n\nPlan and execute the production cutover: the runbook the on-call team follows during the maintenance window, with a rollback procedure or an explicit forward-fix rationale for every step. This is the operational stage of the migration — the point where the validated work goes live, and the point of no return is real.\n\n## Scope\n\nAuthoring and executing the cutover runbook. Cutover decides *how the production switch happens, in what order, with what go/no-go gates and rollback paths* — not whether the migration is correct (validation) or how the data moves (migrate). Units are operational steps: preconditions, action, post-condition check, and a named rollback or a stated reason none exists.\n\n## What to do\n\n- Sequence each step with preconditions, owner, expected duration, action, post-condition check, and go/no-go criteria.\n- Pair every step with its rollback procedure, or state explicitly why the step is forward-fix only and mark the point of no return.\n- Define a data-sync strategy for writes that arrive during the maintenance window.\n- Make each post-condition produce a mechanical pass/fail signal the on-call team can act on without judgment calls.\n\n## What NOT to do\n\n- Don't proceed on a migration the validation stage hasn't signed off, including the rollback rehearsal.\n- Don't change migration code or mappings here; cutover executes, it doesn't rebuild.\n- Don't write a step with no rollback and no stated forward-fix rationale.\n- Don't self-advance the cutover gate — the runbook proceeds through the team's actual change-management approval.\n", "stagePath": "plugin/studios/migration/stages/cutover/STAGE.md", "hats": { "cutover-coordinator": { @@ -8727,6 +8968,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/product-strategy/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -8854,6 +9107,7 @@ "frontmatter": { "name": "user-research", "description": "Understand user needs, pain points, and jobs-to-be-done", + "optional": true, "hats": [ "user-researcher", "insights-synthesizer", @@ -8873,7 +9127,7 @@ } ] }, - "stageMd": "---\nname: user-research\ndescription: Understand user needs, pain points, and jobs-to-be-done\nhats: [user-researcher, insights-synthesizer, verifier]\nfix_hats: [classifier, user-researcher, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs:\n - stage: discovery\n discovery: market-landscape\n---\n\n# User Research\n\nTurn the market view into a grounded understanding of real users — who they are, what they're trying to get done, where they're stuck, and what they've already tried. This is a research and distillation stage; each unit is a knowledge topic (a persona, a job-to-be-done, a workflow surface) the rest of the lifecycle depends on.\n\n## Scope\n\nUser needs, pain points, and jobs-to-be-done. User-research decides *who the users are and what they're trying to accomplish* — not the market shape around them (discovery), how their needs rank against each other (prioritization), or what gets built (roadmap). It scopes which segments matter using the market landscape, then grounds them in real signal.\n\n## What to do\n\n- Design the inquiry per topic — questions, segments, the mix of qualitative and quantitative signal — and capture raw findings.\n- Distill findings into patterns, segment differences, and jobs-to-be-done stated in the user's own language.\n- Name the tensions and contradictions in the signal rather than smoothing them over.\n- Keep every insight substantive, sourced, and internally consistent.\n\n## What NOT to do\n\n- Don't re-map the market or competitive landscape — that's discovery feeding this stage.\n- Don't score, rank, or sequence; prioritization and roadmap own those decisions.\n- Don't present an internal assumption as a user finding without signal behind it.\n- Don't resolve a real tension by ignoring half the data — surface it for prioritization to weigh.\n", + "stageMd": "---\nname: user-research\ndescription: Understand user needs, pain points, and jobs-to-be-done\noptional: true\nhats: [user-researcher, insights-synthesizer, verifier]\nfix_hats: [classifier, user-researcher, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs:\n - stage: discovery\n discovery: market-landscape\n---\n\n# User Research\n\nTurn the market view into a grounded understanding of real users — who they are, what they're trying to get done, where they're stuck, and what they've already tried. This is a research and distillation stage; each unit is a knowledge topic (a persona, a job-to-be-done, a workflow surface) the rest of the lifecycle depends on.\n\n## Scope\n\nUser needs, pain points, and jobs-to-be-done. User-research decides *who the users are and what they're trying to accomplish* — not the market shape around them (discovery), how their needs rank against each other (prioritization), or what gets built (roadmap). It scopes which segments matter using the market landscape, then grounds them in real signal.\n\n## What to do\n\n- Design the inquiry per topic — questions, segments, the mix of qualitative and quantitative signal — and capture raw findings.\n- Distill findings into patterns, segment differences, and jobs-to-be-done stated in the user's own language.\n- Name the tensions and contradictions in the signal rather than smoothing them over.\n- Keep every insight substantive, sourced, and internally consistent.\n\n## What NOT to do\n\n- Don't re-map the market or competitive landscape — that's discovery feeding this stage.\n- Don't score, rank, or sequence; prioritization and roadmap own those decisions.\n- Don't present an internal assumption as a user finding without signal behind it.\n- Don't resolve a real tension by ignoring half the data — surface it for prioritization to weigh.\n", "stagePath": "plugin/studios/product-strategy/stages/user-research/STAGE.md", "hats": { "insights-synthesizer": { @@ -9108,6 +9362,7 @@ "frontmatter": { "name": "stakeholder-review", "description": "Present to stakeholders, gather feedback, gain alignment", + "optional": true, "hats": [ "presenter", "feedback-synthesizer", @@ -9127,7 +9382,7 @@ } ] }, - "stageMd": "---\nname: stakeholder-review\ndescription: Present to stakeholders, gather feedback, gain alignment\nhats: [presenter, feedback-synthesizer, verifier]\nfix_hats: [classifier, presenter, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: roadmap\n discovery: roadmap-doc\n---\n\n# Stakeholder Review\n\nTake the roadmap to the people who have to commit against it — executives, engineering leadership, sales, support — and come out with a decision, not just a meeting. This terminal stage owns the framing, the synthesis of what came back, and the record of who agreed to what.\n\n## Scope\n\nPresenting the roadmap, capturing stakeholder reactions, and recording the alignment reached. Stakeholder-review decides *whether the plan is committed to and by whom* — not what the plan is (roadmap) or why it's ordered that way (prioritization). The output is an alignment record: named decisions, named decision-makers, and owned action items.\n\n## What to do\n\n- Shape the roadmap into an audience-appropriate narrative per stakeholder group — executive summary, strategic rationale, risk surface, and the specific ask.\n- Record the actual stakeholder reactions and classify each as strategy-changing, refining, or noted-but-not-acted-on.\n- Capture named decisions with named decision-makers, and an escalation path for every contested item.\n- Give every action item an owner.\n\n## What NOT to do\n\n- Don't redesign the roadmap mid-review — surface that a change is needed and route it back to the roadmap stage.\n- Don't re-rank opportunities or re-research; this stage aligns on the plan as presented.\n- Don't record a decision with no named decision-maker, or an action item with no owner.\n- Don't self-advance the alignment gate — it confirms when the external decision-making body actually signals.\n", + "stageMd": "---\nname: stakeholder-review\ndescription: Present to stakeholders, gather feedback, gain alignment\noptional: true\nhats: [presenter, feedback-synthesizer, verifier]\nfix_hats: [classifier, presenter, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: roadmap\n discovery: roadmap-doc\n---\n\n# Stakeholder Review\n\nTake the roadmap to the people who have to commit against it — executives, engineering leadership, sales, support — and come out with a decision, not just a meeting. This terminal stage owns the framing, the synthesis of what came back, and the record of who agreed to what.\n\n## Scope\n\nPresenting the roadmap, capturing stakeholder reactions, and recording the alignment reached. Stakeholder-review decides *whether the plan is committed to and by whom* — not what the plan is (roadmap) or why it's ordered that way (prioritization). The output is an alignment record: named decisions, named decision-makers, and owned action items.\n\n## What to do\n\n- Shape the roadmap into an audience-appropriate narrative per stakeholder group — executive summary, strategic rationale, risk surface, and the specific ask.\n- Record the actual stakeholder reactions and classify each as strategy-changing, refining, or noted-but-not-acted-on.\n- Capture named decisions with named decision-makers, and an escalation path for every contested item.\n- Give every action item an owner.\n\n## What NOT to do\n\n- Don't redesign the roadmap mid-review — surface that a change is needed and route it back to the roadmap stage.\n- Don't re-rank opportunities or re-research; this stage aligns on the plan as presented.\n- Don't record a decision with no named decision-maker, or an action item with no owner.\n- Don't self-advance the alignment gate — it confirms when the external decision-making body actually signals.\n", "stagePath": "plugin/studios/product-strategy/stages/stakeholder-review/STAGE.md", "hats": { "feedback-synthesizer": { @@ -9216,6 +9471,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/project-management/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -9530,6 +9797,7 @@ "frontmatter": { "name": "report", "description": "Create stakeholder updates and project dashboards", + "optional": true, "hats": [ "reporter", "communicator", @@ -9564,7 +9832,7 @@ } ] }, - "stageMd": "---\nname: report\ndescription: Create stakeholder updates and project dashboards\nhats: [reporter, communicator, verifier]\nfix_hats: [classifier, reporter, communicator, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: track\n discovery: status-report\n - stage: plan\n discovery: project-plan\n - stage: charter\n discovery: project-charter\noutputs:\n - discovery: project-dashboard\n hat: communicator\n---\n\n# Report\n\nTurn raw tracking data into stakeholder-ready communication: an executive dashboard, role-tailored status reports, and clearly surfaced decisions or escalations that need action. Report is downstream of track — its accuracy depends entirely on tracking quality, and its job is to present that data faithfully, not to reinterpret it.\n\n## Scope\n\nDashboards, audience-tailored status reports, forecasts, and decision/escalation callouts. Report decides *how project state is communicated and to whom* — not what the underlying state is (track), what the plan was (plan), or what success means (charter). Units are reporting surfaces: a dashboard panel, a role-specific report, a forecast, an escalation.\n\n## What to do\n\n- Pick metrics and objective health thresholds, and forecast from actual velocity rather than the original plan.\n- Tailor the content for each audience — executive, sponsor, team lead, dependent team — and set the cadence and channel per group.\n- Surface required decisions and action items explicitly so stakeholders know what's being asked of them.\n- Source every figure to the tracking data so presentation never drifts from reality.\n\n## What NOT to do\n\n- Don't invent or adjust the underlying numbers — report presents what track recorded; a data problem is a revisit to track.\n- Don't accept or close deliverables; that's the close stage.\n- Don't use a subjective health indicator where an objective threshold applies.\n- Don't let presentation drift from the source data, or omit a decision the data demands.\n", + "stageMd": "---\nname: report\ndescription: Create stakeholder updates and project dashboards\noptional: true\nhats: [reporter, communicator, verifier]\nfix_hats: [classifier, reporter, communicator, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: track\n discovery: status-report\n - stage: plan\n discovery: project-plan\n - stage: charter\n discovery: project-charter\noutputs:\n - discovery: project-dashboard\n hat: communicator\n---\n\n# Report\n\nTurn raw tracking data into stakeholder-ready communication: an executive dashboard, role-tailored status reports, and clearly surfaced decisions or escalations that need action. Report is downstream of track — its accuracy depends entirely on tracking quality, and its job is to present that data faithfully, not to reinterpret it.\n\n## Scope\n\nDashboards, audience-tailored status reports, forecasts, and decision/escalation callouts. Report decides *how project state is communicated and to whom* — not what the underlying state is (track), what the plan was (plan), or what success means (charter). Units are reporting surfaces: a dashboard panel, a role-specific report, a forecast, an escalation.\n\n## What to do\n\n- Pick metrics and objective health thresholds, and forecast from actual velocity rather than the original plan.\n- Tailor the content for each audience — executive, sponsor, team lead, dependent team — and set the cadence and channel per group.\n- Surface required decisions and action items explicitly so stakeholders know what's being asked of them.\n- Source every figure to the tracking data so presentation never drifts from reality.\n\n## What NOT to do\n\n- Don't invent or adjust the underlying numbers — report presents what track recorded; a data problem is a revisit to track.\n- Don't accept or close deliverables; that's the close stage.\n- Don't use a subjective health indicator where an objective threshold applies.\n- Don't let presentation drift from the source data, or omit a decision the data demands.\n", "stagePath": "plugin/studios/project-management/stages/report/STAGE.md", "hats": { "communicator": { @@ -9616,6 +9884,7 @@ "frontmatter": { "name": "close", "description": "Conduct retrospective, capture lessons learned, and handoff", + "optional": true, "hats": [ "closer", "archivist", @@ -9654,7 +9923,7 @@ } ] }, - "stageMd": "---\nname: close\ndescription: Conduct retrospective, capture lessons learned, and handoff\nhats: [closer, archivist, verifier]\nfix_hats: [classifier, closer, archivist, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: report\n output: project-dashboard\n - stage: track\n discovery: status-report\n - stage: charter\n discovery: project-charter\noutputs:\n - discovery: retrospective\n hat: archivist\n - discovery: lessons-learned\n hat: archivist\n---\n\n# Close\n\nFormally close the project: confirm deliverable acceptance against the charter, transfer ownership of any ongoing surfaces, resolve or defer open items, run the retrospective, and archive documentation so future projects can learn from this one. Close is the last contract — anything not captured here is lost institutional knowledge.\n\n## Scope\n\nDeliverable acceptance, ownership transfer, open-item disposition, the retrospective, and the archive. Close decides *whether the project is done, who owns what's left, and what was learned* — not what was promised (charter) or how state was tracked and reported (track, report). Units are closeout surfaces.\n\n## What to do\n\n- Verify each charter deliverable against its acceptance criteria and obtain formal sponsor sign-off.\n- Disposition every open item — assigned to an owner with a date, or formally deferred with a stated rationale.\n- Run the retrospective and capture lessons learned, categorized as process, technical, or organizational.\n- Organize the documentation so a future project can actually retrieve and learn from it.\n\n## What NOT to do\n\n- Don't accept a deliverable that doesn't meet its charter criteria, or sign off with criteria unproven.\n- Don't reopen planning, tracking, or reporting; close accepts the work, it doesn't redo it.\n- Don't leave an open item without an owner and a date, or defer one without rationale.\n- Don't record generic lessons (\"communicate better\") instead of project-specific, transferable ones.\n", + "stageMd": "---\nname: close\ndescription: Conduct retrospective, capture lessons learned, and handoff\noptional: true\nhats: [closer, archivist, verifier]\nfix_hats: [classifier, closer, archivist, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: report\n output: project-dashboard\n - stage: track\n discovery: status-report\n - stage: charter\n discovery: project-charter\noutputs:\n - discovery: retrospective\n hat: archivist\n - discovery: lessons-learned\n hat: archivist\n---\n\n# Close\n\nFormally close the project: confirm deliverable acceptance against the charter, transfer ownership of any ongoing surfaces, resolve or defer open items, run the retrospective, and archive documentation so future projects can learn from this one. Close is the last contract — anything not captured here is lost institutional knowledge.\n\n## Scope\n\nDeliverable acceptance, ownership transfer, open-item disposition, the retrospective, and the archive. Close decides *whether the project is done, who owns what's left, and what was learned* — not what was promised (charter) or how state was tracked and reported (track, report). Units are closeout surfaces.\n\n## What to do\n\n- Verify each charter deliverable against its acceptance criteria and obtain formal sponsor sign-off.\n- Disposition every open item — assigned to an owner with a date, or formally deferred with a stated rationale.\n- Run the retrospective and capture lessons learned, categorized as process, technical, or organizational.\n- Organize the documentation so a future project can actually retrieve and learn from it.\n\n## What NOT to do\n\n- Don't accept a deliverable that doesn't meet its charter criteria, or sign off with criteria unproven.\n- Don't reopen planning, tracking, or reporting; close accepts the work, it doesn't redo it.\n- Don't leave an open item without an owner and a date, or defer one without rationale.\n- Don't record generic lessons (\"communicate better\") instead of project-specific, transferable ones.\n", "stagePath": "plugin/studios/project-management/stages/close/STAGE.md", "hats": { "archivist": { @@ -9743,6 +10012,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/quality-assurance/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -10117,6 +10398,7 @@ "frontmatter": { "name": "certify", "description": "Quality sign-off and release readiness assessment", + "optional": true, "hats": [ "certifier", "reviewer", @@ -10144,7 +10426,7 @@ } ] }, - "stageMd": "---\nname: certify\ndescription: Quality sign-off and release readiness assessment\nhats: [certifier, reviewer, verifier]\nfix_hats: [classifier, certifier, feedback-assessor]\nreview: external\nelaboration: autonomous\ninputs:\n - stage: analyze\n discovery: quality-report\n - stage: execute-tests\n output: test-results\n - stage: plan\n discovery: test-strategy\n---\n\n# Certify\n\nThe closing stage of the QA lifecycle: sign off on quality and release readiness against the strategy's exit criteria. This produces the certification record — every exit criterion evaluated with evidence, every unresolved defect listed with its risk-acceptance status, and the release / defer / block determination with audit-clean rationale.\n\n## Scope\n\nRelease-readiness sign-off: evaluating each exit criterion against the evidence, accounting for known issues, and recording a determination an authority can stand behind. Certify decides *whether to ship*, not what the data means (analyze) or what happened in the run (execute-tests).\n\n## What to do\n\n- Evaluate every exit criterion the strategy set, each backed by cited evidence rather than assertion.\n- List every unresolved defect with an explicit risk-acceptance status — nothing shipped on silence.\n- State the release / defer / block determination with rationale that would survive an audit.\n- Pull the supporting evidence from the analyze and execute-tests records rather than re-deriving it.\n\n## What NOT to do\n\n- Don't re-run the analysis or re-interpret results — consume what analyze produced; dispute it as feedback if it's wrong.\n- Don't waive an exit criterion without recording the risk acceptance.\n- Don't ship a determination whose rationale a reviewer couldn't trace to evidence.\n- Don't leave an unresolved defect off the record.\n", + "stageMd": "---\nname: certify\ndescription: Quality sign-off and release readiness assessment\noptional: true\nhats: [certifier, reviewer, verifier]\nfix_hats: [classifier, certifier, feedback-assessor]\nreview: external\nelaboration: autonomous\ninputs:\n - stage: analyze\n discovery: quality-report\n - stage: execute-tests\n output: test-results\n - stage: plan\n discovery: test-strategy\n---\n\n# Certify\n\nThe closing stage of the QA lifecycle: sign off on quality and release readiness against the strategy's exit criteria. This produces the certification record — every exit criterion evaluated with evidence, every unresolved defect listed with its risk-acceptance status, and the release / defer / block determination with audit-clean rationale.\n\n## Scope\n\nRelease-readiness sign-off: evaluating each exit criterion against the evidence, accounting for known issues, and recording a determination an authority can stand behind. Certify decides *whether to ship*, not what the data means (analyze) or what happened in the run (execute-tests).\n\n## What to do\n\n- Evaluate every exit criterion the strategy set, each backed by cited evidence rather than assertion.\n- List every unresolved defect with an explicit risk-acceptance status — nothing shipped on silence.\n- State the release / defer / block determination with rationale that would survive an audit.\n- Pull the supporting evidence from the analyze and execute-tests records rather than re-deriving it.\n\n## What NOT to do\n\n- Don't re-run the analysis or re-interpret results — consume what analyze produced; dispute it as feedback if it's wrong.\n- Don't waive an exit criterion without recording the risk acceptance.\n- Don't ship a determination whose rationale a reviewer couldn't trace to evidence.\n- Don't leave an unresolved defect off the record.\n", "stagePath": "plugin/studios/quality-assurance/stages/certify/STAGE.md", "hats": { "certifier": { @@ -10254,6 +10536,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/sales/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": { "new-prospect": { "content": "---\nname: new-prospect\nstudio: sales\ndescription: Work a new prospect from research through close\nparameters:\n - name: company\n description: Prospect company name\n required: true\n - name: contact\n description: Primary contact name and title\n required: false\n - name: source\n description: Lead source (inbound, referral, outbound, event)\n required: false\nunits:\n - name: \"prospect-research\"\n stage: research\n criteria:\n - \"{{ company }} business model and pain points documented\"\n - \"Decision makers and buying process mapped\"\n - \"Competitive landscape for this deal identified\"\n - name: \"qualify\"\n stage: qualification\n criteria:\n - \"ICP fit scored against standard criteria\"\n - \"Budget, authority, need, and timeline assessed\"\n - \"Go/no-go decision documented with rationale\"\n - name: \"proposal\"\n stage: proposal\n criteria:\n - \"Proposal tailored to {{ company }} pain points\"\n - \"Pricing within approved discount structure\"\n - \"Demo or proof of concept prepared if applicable\"\n - name: \"negotiate\"\n stage: negotiation\n criteria:\n - \"Terms reviewed by legal\"\n - \"Objections documented with responses\"\n - \"Final terms agreed by both parties\"\n - name: \"close-deal\"\n stage: close\n criteria:\n - \"Contract signed\"\n - \"CS handoff context prepared (goals, timeline, contacts)\"\n - \"Win/loss context documented\"\n---\n\nFull sales cycle for a new prospect. CRM provider syncs deal state automatically.\n", @@ -10540,6 +10834,7 @@ "frontmatter": { "name": "proposal", "description": "Create tailored proposals, demos, and business cases", + "optional": true, "hats": [ "proposal-writer", "solution-architect", @@ -10567,7 +10862,7 @@ "escalation": "comms" } }, - "stageMd": "---\nname: proposal\ndescription: Create tailored proposals, demos, and business cases\nhats: [proposal-writer, solution-architect, verifier]\nfix_hats: [classifier, proposal-writer, feedback-assessor]\nreview: [ask, await]\nelaboration: collaborative\ninputs:\n - stage: qualification\n discovery: deal-brief\ngate-protocol:\n timeout: 7d\n timeout-action: escalate\n escalation: comms\n---\n\n# Proposal\n\nTurn a qualified opportunity into the artifacts the prospect actually evaluates: a tailored business case, the technical solution architecture, and the demo or proof-of-value script. This is where the deal stops being an internal assessment and becomes something the buyer can say yes to.\n\n## Scope\n\nThe buyer-facing offer: outcomes tied to the prospect's named pains, quantified ROI with stated assumptions, competitive differentiation, and a solution shape that fits their actual environment. Proposal decides *what we're putting in front of the prospect* — not whether they qualify (qualification) or what terms get signed (negotiation).\n\n## What to do\n\n- Anchor every claim in the prospect's named pain points and the seller's real references for their industry and scale.\n- Quantify ROI with assumptions stated openly, so the business case survives the buyer's own scrutiny.\n- Ground the solution architecture in the prospect's actual infrastructure, and surface implementation risks or prerequisites that affect scope or timeline.\n- Keep the business narrative and the technical shape consistent — the offer is unsellable if either side overpromises what the other can't deliver.\n\n## What NOT to do\n\n- Don't re-litigate qualification — if the deal no longer qualifies, that's a revisit upstream, not a softer proposal.\n- Don't negotiate terms or concede pricing here; that's negotiation.\n- Don't promise a solution shape the architecture can't actually deliver.\n- Don't ship ROI numbers whose assumptions you can't state.\n", + "stageMd": "---\nname: proposal\ndescription: Create tailored proposals, demos, and business cases\noptional: true\nhats: [proposal-writer, solution-architect, verifier]\nfix_hats: [classifier, proposal-writer, feedback-assessor]\nreview: [ask, await]\nelaboration: collaborative\ninputs:\n - stage: qualification\n discovery: deal-brief\ngate-protocol:\n timeout: 7d\n timeout-action: escalate\n escalation: comms\n---\n\n# Proposal\n\nTurn a qualified opportunity into the artifacts the prospect actually evaluates: a tailored business case, the technical solution architecture, and the demo or proof-of-value script. This is where the deal stops being an internal assessment and becomes something the buyer can say yes to.\n\n## Scope\n\nThe buyer-facing offer: outcomes tied to the prospect's named pains, quantified ROI with stated assumptions, competitive differentiation, and a solution shape that fits their actual environment. Proposal decides *what we're putting in front of the prospect* — not whether they qualify (qualification) or what terms get signed (negotiation).\n\n## What to do\n\n- Anchor every claim in the prospect's named pain points and the seller's real references for their industry and scale.\n- Quantify ROI with assumptions stated openly, so the business case survives the buyer's own scrutiny.\n- Ground the solution architecture in the prospect's actual infrastructure, and surface implementation risks or prerequisites that affect scope or timeline.\n- Keep the business narrative and the technical shape consistent — the offer is unsellable if either side overpromises what the other can't deliver.\n\n## What NOT to do\n\n- Don't re-litigate qualification — if the deal no longer qualifies, that's a revisit upstream, not a softer proposal.\n- Don't negotiate terms or concede pricing here; that's negotiation.\n- Don't promise a solution shape the architecture can't actually deliver.\n- Don't ship ROI numbers whose assumptions you can't state.\n", "stagePath": "plugin/studios/sales/stages/proposal/STAGE.md", "hats": { "proposal-writer": { @@ -10632,6 +10927,7 @@ "frontmatter": { "name": "negotiation", "description": "Handle objections, negotiate terms, and align stakeholders", + "optional": true, "hats": [ "negotiator", "legal-reviewer", @@ -10654,7 +10950,7 @@ } ] }, - "stageMd": "---\nname: negotiation\ndescription: Handle objections, negotiate terms, and align stakeholders\nhats: [negotiator, legal-reviewer, verifier]\nfix_hats: [classifier, negotiator, feedback-assessor]\nreview: [ask, await]\nelaboration: collaborative\ninputs:\n - stage: proposal\n discovery: proposal-doc\n---\n\n# Negotiation\n\nWhere a proposal becomes a signable agreement. Negotiation takes the proposal and produces the negotiated-terms record: the objection log with evidence-based responses, the redline analysis categorized by risk, the mutual close plan, and a documented walk-away position.\n\n## Scope\n\nReconciling the offer into agreed terms: handling objections, working redlines, aligning stakeholders, and setting concession and walk-away thresholds. Negotiation decides *what terms both sides can sign* — not what the offer was (proposal) or executing the signed contract (close).\n\n## What to do\n\n- Meet each objection with an evidence-based reframe and a fallback position, logged so nothing gets re-argued from scratch.\n- Categorize redlines by legal vs commercial risk and recommend accept / counter / reject per clause.\n- Know the concession strategy and the walk-away threshold before the conversation, not during it.\n- Keep the terms record authoritative — close executes against exactly what's documented here.\n\n## What NOT to do\n\n- Don't reopen the solution or the business case — a broken proposal is a revisit upstream, not a negotiation lever.\n- Don't execute signatures or package the handoff; that's close.\n- Don't concede past the documented walk-away or the team's approval authority.\n- Don't leave a conceded term undocumented before it carries into close.\n", + "stageMd": "---\nname: negotiation\ndescription: Handle objections, negotiate terms, and align stakeholders\noptional: true\nhats: [negotiator, legal-reviewer, verifier]\nfix_hats: [classifier, negotiator, feedback-assessor]\nreview: [ask, await]\nelaboration: collaborative\ninputs:\n - stage: proposal\n discovery: proposal-doc\n---\n\n# Negotiation\n\nWhere a proposal becomes a signable agreement. Negotiation takes the proposal and produces the negotiated-terms record: the objection log with evidence-based responses, the redline analysis categorized by risk, the mutual close plan, and a documented walk-away position.\n\n## Scope\n\nReconciling the offer into agreed terms: handling objections, working redlines, aligning stakeholders, and setting concession and walk-away thresholds. Negotiation decides *what terms both sides can sign* — not what the offer was (proposal) or executing the signed contract (close).\n\n## What to do\n\n- Meet each objection with an evidence-based reframe and a fallback position, logged so nothing gets re-argued from scratch.\n- Categorize redlines by legal vs commercial risk and recommend accept / counter / reject per clause.\n- Know the concession strategy and the walk-away threshold before the conversation, not during it.\n- Keep the terms record authoritative — close executes against exactly what's documented here.\n\n## What NOT to do\n\n- Don't reopen the solution or the business case — a broken proposal is a revisit upstream, not a negotiation lever.\n- Don't execute signatures or package the handoff; that's close.\n- Don't concede past the documented walk-away or the team's approval authority.\n- Don't leave a conceded term undocumented before it carries into close.\n", "stagePath": "plugin/studios/sales/stages/negotiation/STAGE.md", "hats": { "legal-reviewer": { @@ -10721,6 +11017,7 @@ "frontmatter": { "name": "close", "description": "Execute the deal, handoff to customer success, and document learnings", + "optional": true, "hats": [ "closer", "handoff-coordinator", @@ -10743,7 +11040,7 @@ } ] }, - "stageMd": "---\nname: close\ndescription: Execute the deal, handoff to customer success, and document learnings\nhats: [closer, handoff-coordinator, verifier]\nfix_hats: [classifier, closer, feedback-assessor]\nreview: [external, await]\nelaboration: collaborative\ninputs:\n - stage: negotiation\n discovery: terms\n---\n\n# Close\n\nThe operational stage of the sales lifecycle: a verbal agreement becomes a fully executed contract, the prospect becomes a customer, and the relationship hands to the team that will deliver the work. The artifact is a handoff package complete enough that the receiving team starts from the full picture, not just the contract.\n\n## Scope\n\nDeal execution and handoff: securing signature through the buyer's procurement process, verifying purchase order and payment terms, packaging deal context for the post-sale team, and capturing the win/loss record. Close decides *that the deal is done and cleanly handed off* — not what terms were agreed (negotiation).\n\n## What to do\n\n- Drive signature collection through the buyer's actual procurement and contracting process, confirming final terms before execution.\n- Verify the purchase order and payment terms rather than assuming they match what was negotiated.\n- Package the full relationship context — history, named contacts, commitments made during the sale, known risks — so the receiving team isn't starting from the contract alone.\n- Document every verbal commitment before contract execution; nothing live to the prospect should be missing from the closed record.\n\n## What NOT to do\n\n- Don't reopen or renegotiate terms — that's a revisit to negotiation, not a close-stage move.\n- Don't hand off a deal with undocumented commitments or an unverified PO.\n- Don't skip the win/loss capture; the next deal learns from this one.\n- Don't treat handoff as throwing the contract over the wall — an incomplete package is an unfinished close.\n", + "stageMd": "---\nname: close\ndescription: Execute the deal, handoff to customer success, and document learnings\noptional: true\nhats: [closer, handoff-coordinator, verifier]\nfix_hats: [classifier, closer, feedback-assessor]\nreview: [external, await]\nelaboration: collaborative\ninputs:\n - stage: negotiation\n discovery: terms\n---\n\n# Close\n\nThe operational stage of the sales lifecycle: a verbal agreement becomes a fully executed contract, the prospect becomes a customer, and the relationship hands to the team that will deliver the work. The artifact is a handoff package complete enough that the receiving team starts from the full picture, not just the contract.\n\n## Scope\n\nDeal execution and handoff: securing signature through the buyer's procurement process, verifying purchase order and payment terms, packaging deal context for the post-sale team, and capturing the win/loss record. Close decides *that the deal is done and cleanly handed off* — not what terms were agreed (negotiation).\n\n## What to do\n\n- Drive signature collection through the buyer's actual procurement and contracting process, confirming final terms before execution.\n- Verify the purchase order and payment terms rather than assuming they match what was negotiated.\n- Package the full relationship context — history, named contacts, commitments made during the sale, known risks — so the receiving team isn't starting from the contract alone.\n- Document every verbal commitment before contract execution; nothing live to the prospect should be missing from the closed record.\n\n## What NOT to do\n\n- Don't reopen or renegotiate terms — that's a revisit to negotiation, not a close-stage move.\n- Don't hand off a deal with undocumented commitments or an unverified PO.\n- Don't skip the win/loss capture; the next deal learns from this one.\n- Don't treat handoff as throwing the contract over the wall — an incomplete package is an unfinished close.\n", "stagePath": "plugin/studios/sales/stages/close/STAGE.md", "hats": { "closer": { @@ -10851,6 +11148,18 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/security-assessment/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -11051,6 +11360,7 @@ "frontmatter": { "name": "exploitation", "description": "Controlled exploitation of discovered vulnerabilities with proper scoping and authorization", + "optional": true, "hats": [ "attack-strategist", "exploit-developer", @@ -11079,7 +11389,7 @@ } ] }, - "stageMd": "---\nname: exploitation\ndescription: Controlled exploitation of discovered vulnerabilities with proper scoping and authorization\nhats: [attack-strategist, exploit-developer, exploit-reviewer, attack-operator, verifier]\nfix_hats: [classifier, exploit-developer, attack-operator, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs:\n - stage: enumeration\n discovery: vulnerability-catalog\noutputs:\n - discovery: access-log\n hat: attack-operator\n---\n\n# Exploitation\n\nThe adversarial core of the assessment: controlled, authorized exploitation of catalogued vulnerabilities to prove what's actually reachable. This stage red-teams the target — but every attempt is scoped, safety-constrained, and signed off before it touches a real system.\n\n## Scope\n\nProof-of-concept development and controlled execution against authorized surfaces: choosing what to attempt, building safe PoCs (rate limits, kill switches, rollback, pre-flight checks), and executing inside the agreed window with full logging. Exploitation decides *what's genuinely exploitable* — not what's catalogued as a candidate (enumeration) or what an attacker could then do (post-exploitation).\n\n## What to do\n\n- Confirm every step is in scope and authorized before any code is written or run.\n- Build PoCs with safe defaults — rate limits, kill switches, rollback steps — and prove them against a local or staging surrogate first.\n- Execute only inside the agreed time window, logging every action with timestamps, and abort on any unintended effect.\n- Capture evidence that an attempt succeeded or failed without causing destruction.\n\n## What NOT to do\n\n- Don't run anything against a real target without explicit human sign-off — this is the hard line of the stage.\n- Don't assess business impact or chase lateral movement; that's post-exploitation.\n- Don't exceed the authorized scope or the agreed window, even when a promising path opens.\n- Don't ship a PoC without concrete safety constraints and a surrogate test behind it.\n", + "stageMd": "---\nname: exploitation\ndescription: Controlled exploitation of discovered vulnerabilities with proper scoping and authorization\noptional: true\nhats: [attack-strategist, exploit-developer, exploit-reviewer, attack-operator, verifier]\nfix_hats: [classifier, exploit-developer, attack-operator, feedback-assessor]\nreview: ask\nelaboration: collaborative\ninputs:\n - stage: enumeration\n discovery: vulnerability-catalog\noutputs:\n - discovery: access-log\n hat: attack-operator\n---\n\n# Exploitation\n\nThe adversarial core of the assessment: controlled, authorized exploitation of catalogued vulnerabilities to prove what's actually reachable. This stage red-teams the target — but every attempt is scoped, safety-constrained, and signed off before it touches a real system.\n\n## Scope\n\nProof-of-concept development and controlled execution against authorized surfaces: choosing what to attempt, building safe PoCs (rate limits, kill switches, rollback, pre-flight checks), and executing inside the agreed window with full logging. Exploitation decides *what's genuinely exploitable* — not what's catalogued as a candidate (enumeration) or what an attacker could then do (post-exploitation).\n\n## What to do\n\n- Confirm every step is in scope and authorized before any code is written or run.\n- Build PoCs with safe defaults — rate limits, kill switches, rollback steps — and prove them against a local or staging surrogate first.\n- Execute only inside the agreed time window, logging every action with timestamps, and abort on any unintended effect.\n- Capture evidence that an attempt succeeded or failed without causing destruction.\n\n## What NOT to do\n\n- Don't run anything against a real target without explicit human sign-off — this is the hard line of the stage.\n- Don't assess business impact or chase lateral movement; that's post-exploitation.\n- Don't exceed the authorized scope or the agreed window, even when a promising path opens.\n- Don't ship a PoC without concrete safety constraints and a surrogate test behind it.\n", "stagePath": "plugin/studios/security-assessment/stages/exploitation/STAGE.md", "hats": { "attack-operator": { @@ -11153,6 +11463,7 @@ "frontmatter": { "name": "post-exploitation", "description": "Assess impact, test lateral movement, evaluate data exposure, and document access chains", + "optional": true, "hats": [ "post-exploit-analyst", "impact-assessor", @@ -11178,7 +11489,7 @@ } ] }, - "stageMd": "---\nname: post-exploitation\ndescription: Assess impact, test lateral movement, evaluate data exposure, and document access chains\nhats: [post-exploit-analyst, impact-assessor, verifier]\nfix_hats: [classifier, impact-assessor, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: exploitation\n discovery: access-log\noutputs:\n - discovery: impact-assessment\n hat: impact-assessor\n---\n\n# Post-Exploitation\n\nExploitation proved a vulnerability is reachable; post-exploitation answers \"so what?\" — what a real attacker would do with the foothold and how bad it would be in business terms. This stage maps the reachable surface from each established access point and translates it into business impact.\n\n## Scope\n\nImpact and access-chain analysis from a proven foothold: reachable lateral targets, privilege-escalation paths, accessible data, and the business consequence (data sensitivity, regulatory exposure, blast radius) rated against the engagement's rubric. Post-exploitation decides *what the foothold is worth* — not whether it was reachable (exploitation) or how to present it (reporting).\n\n## What to do\n\n- Map the reachable surface and access chains by observation, without exfiltrating or modifying data.\n- Translate the technical access-graph into business impact terms a stakeholder can act on.\n- Rate severity with the engagement's chosen rubric and tie each rating to the evidence at every step of the chain.\n- Keep the assessment consistent with the access log it builds on — the chain has to hold end to end.\n\n## What NOT to do\n\n- Don't develop new exploits or breach surfaces exploitation didn't already prove — that's a revisit upstream.\n- Don't exfiltrate, alter, or destroy data while mapping access.\n- Don't write the customer-facing report; that's reporting.\n- Don't assert an impact rating the access-chain evidence doesn't support.\n", + "stageMd": "---\nname: post-exploitation\ndescription: Assess impact, test lateral movement, evaluate data exposure, and document access chains\noptional: true\nhats: [post-exploit-analyst, impact-assessor, verifier]\nfix_hats: [classifier, impact-assessor, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: exploitation\n discovery: access-log\noutputs:\n - discovery: impact-assessment\n hat: impact-assessor\n---\n\n# Post-Exploitation\n\nExploitation proved a vulnerability is reachable; post-exploitation answers \"so what?\" — what a real attacker would do with the foothold and how bad it would be in business terms. This stage maps the reachable surface from each established access point and translates it into business impact.\n\n## Scope\n\nImpact and access-chain analysis from a proven foothold: reachable lateral targets, privilege-escalation paths, accessible data, and the business consequence (data sensitivity, regulatory exposure, blast radius) rated against the engagement's rubric. Post-exploitation decides *what the foothold is worth* — not whether it was reachable (exploitation) or how to present it (reporting).\n\n## What to do\n\n- Map the reachable surface and access chains by observation, without exfiltrating or modifying data.\n- Translate the technical access-graph into business impact terms a stakeholder can act on.\n- Rate severity with the engagement's chosen rubric and tie each rating to the evidence at every step of the chain.\n- Keep the assessment consistent with the access log it builds on — the chain has to hold end to end.\n\n## What NOT to do\n\n- Don't develop new exploits or breach surfaces exploitation didn't already prove — that's a revisit upstream.\n- Don't exfiltrate, alter, or destroy data while mapping access.\n- Don't write the customer-facing report; that's reporting.\n- Don't assert an impact rating the access-chain evidence doesn't support.\n", "stagePath": "plugin/studios/security-assessment/stages/post-exploitation/STAGE.md", "hats": { "impact-assessor": { @@ -11332,7 +11643,7 @@ "category": "engineering", "default_model": "sonnet" }, - "studioMd": "---\nname: application-development\nslug: appdev\naliases: [software]\ndescription: Lifecycle for web, mobile, and desktop applications\nstages: [inception, design, product, development, operations, security]\nfix_hats: [builder, reconciler, validator]\ncategory: engineering\ndefault_model: sonnet\n---\n\n# Application Development\n\nLifecycle for user-facing applications — web, mobile, desktop, and services.\nCovers product discovery, UX design, implementation, operations, and security\nreview. For libraries, SDKs, and CLI tools, use `libdev`. For games, use\n`gamedev`. For hardware products, use `hwdev`.\n\nSupports both single-stage (all disciplines merged) and multi-stage\n(sequential discipline progression) execution modes.\n", + "studioMd": "---\nname: application-development\nslug: appdev\naliases: [software]\ndescription: Lifecycle for web, mobile, and desktop applications\nstages: [inception, design, product, development, operations, security]\nfix_hats: [builder, reconciler, validator]\ncategory: engineering\ndefault_model: sonnet\n---\n\n# Application Development\n\nLifecycle for user-facing applications and services — web, mobile, desktop.\n\nThe mandatory core is the minimum a full feature needs: `inception` (research\nand problem framing), `product` (behavioral spec + acceptance criteria), and\n`development` (the code and tests that satisfy it). The remaining stages are\noptional and dropped per intent when they don't apply — `design` for non-visual\nwork, `operations` when there's nothing to deploy or run, `security` for a\nlow-risk surface. The cursor offers a keep-or-drop decision the first time it\nreaches each optional stage.\n\nFor games, use `gamedev`; for hardware, use `hwdev`.\n\nSupports both single-stage (all disciplines merged) and multi-stage\n(sequential discipline progression) execution modes.\n", "studioPath": "plugin/studios/software/STUDIO.md", "stagesOrder": [ "inception", @@ -11381,6 +11692,26 @@ } }, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the ONLY reviewer that sees the whole intent at once — inception, product, design, development, security, operations. Your job is to catch the seams.\n\n**Check:**\n- The agent **MUST** verify that the design artifacts match what product specified — no invented requirements, no dropped ones\n- The agent **MUST** verify that development implements what design specified — component names, interaction contracts, responsive behavior, accessibility requirements\n- The agent **MUST** verify that security and operations concerns raised in inception/product were actually addressed in the implementation (not silently ignored)\n- The agent **MUST** verify that naming is consistent across stages — a feature called `checkout-v2` in product should not be `new-cart-flow` in design and `v2Checkout` in code\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised — broken cross-stage references are findings\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions made at each stage's gate — this is a consistency check, not a redesign\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the ONLY reviewer that sees the whole intent at once — inception, product, design, development, security, operations. Your job is to catch the seams.\n\n**Check:**\n- The agent **MUST** verify that the design artifacts match what product specified — no invented requirements, no dropped ones\n- The agent **MUST** verify that development implements what design specified — component names, interaction contracts, responsive behavior, accessibility requirements\n- The agent **MUST** verify that security and operations concerns raised in inception/product were actually addressed in the implementation (not silently ignored)\n- The agent **MUST** verify that naming is consistent across stages — a feature called `checkout-v2` in product should not be `new-cart-flow` in design and `v2Checkout` in code\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised — broken cross-stage references are findings\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions made at each stage's gate — this is a consistency check, not a redesign\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/software/intent-review-agents/cross-stage-consistency.md" + }, + "runtime-verifier": { + "content": "---\ninterpretation: lens\n---\n**Surface first.** The runtime-verification doctrine referenced in your dispatch governs which surface the delivered intent actually has. The steps below are the **web/GUI path** — the common case for this studio. If the intent delivered a CLI, a headless service, or a library, follow the doctrine's handle for that surface and apply this mandate's *intent* — drive the real deliverable end-to-end, capture proof, assert the promised journey holds — rather than booting a browser with nothing to render.\n\n**Mandate:** The agent **MUST** be the user's eyes and hands at intent close — drive the deliverable through the browser the way a real user would, see what the user would see, assert that what was promised actually got built. Per-stage runtime checks catch broken artifacts within a single phase, but they cannot verify the user journey the intent set out to deliver. The product stage's `.feature` files at the intent level (`stages/product/artifacts/*.feature`, or wherever the studio's product-stage configured them) are the executable test contract for that journey — they exist precisely so this lens has a concrete, version-controlled definition of \"done.\" Consume them, assert against them, screenshot along the way.\n\n**You pass ONLY if you actually ran it — `haiku_view` boot is the verification, not optional scaffolding.** This role's sign-off means one thing: \"I booted the live integrated app and watched the promised journey work.\" If `haiku_view` will not boot the app — the tool errors, no boot target is found, a dependency is down — then you have verified **nothing**, and per the doctrine's verdict rules you **MUST** file a `BLOCKED` finding and **HOLD**. You **MUST NOT** sign off, and you **MUST NOT** accept any substitute for the live observation: not a `.haiku/boot.md` recipe, not a diagnosis, not green CI, not a closed blocker, not \"it should boot now.\" The intent does **not** seal until this role has genuinely reached `PASS` against the running app. If you are re-dispatched because your earlier finding was \"fixed,\" boot and drive again from scratch — a fix that merely unblocked the boot is not the journey passing. If it still can't run after the fix loop has had its turn, escalate to the human and keep holding; never let a can't-verify decay into a pass.\n\n## Check\n\nThe agent **MUST** verify each of the following:\n\n- **A runnable thing exists.** Open a view session via `haiku_view({ intent: \"\", mode: \"boot\" })` — the tool spawns the project's `dev` / `start` script on an ephemeral port and returns a `http://127.0.0.1:/` URL pointing at the live integrated app. Prefer `mode: \"boot\"` explicitly here (not `auto`): by intent close there SHOULD be a runnable thing, and \"no boot target detected\" is itself a headline finding — the intent did not ship a runnable deliverable. Use the bundled `haiku-playwright` MCP to `browser_navigate` to the returned URL.\n- **Every product-stage `.feature` scenario passes against the live app.** Read every `.feature` file the product stage produced at the intent level. For each `Scenario:` (and each `Scenario Outline:` example row), drive the Gherkin steps through `playwright` exactly as the user would — `Given` sets the precondition, `When` performs the action via `browser_click` / `browser_type` / `browser_select_option`, `Then` asserts the visible state via `browser_snapshot` or `browser_evaluate`. A `.feature` scenario that the spec says should succeed but the live app fails, redirects unexpectedly, or shows the wrong content is the headline finding — the intent did not deliver what the product stage promised.\n- **Per-unit claims across every stage hold in the live app.** Walk every unit body across every stage of the intent (`stages/*/units/*.md`). Each unit's acceptance-criterion lines, named selectors, and asserted behavior are part of the deliverable contract. Sample-verify against the live app — for each stage, pick at least every unit that touches the user-facing surface and confirm its claims actually hold in the integrated build. A unit that ticked its own boxes mid-build but whose claim is no longer true in the integrated final app is a finding the per-stage verifier could not have caught.\n- **Screenshot along the way + save proof to disk.** Call `browser_take_screenshot` at every meaningful step — at minimum: page-loaded, post-precondition setup, post-action, final-assertion state. **Save each screenshot** to disk under `.haiku/intents//proof/-.png` using the `Write` tool (PNG is the format `playwright` produces; keep it). The intent-level `proof/` directory is the durable record of \"what the user would have seen at intent close\" — a human verifier reviewing the merged intent should be able to scroll the directory and walk the journey themselves without re-running anything. Attach the same screenshots to any feedback you file; a finding without one is unactionable.\n- **The integration between stages holds.** When the intent spans multiple stages that produce inputs to each other (design → product → development → operations), the running app MUST reflect the chain. The shipped UI uses the design tokens design declared, the API shapes match the data contracts product declared, the deployment exposes the routes development built, and the operations stage's monitoring is wired to the right endpoints. A finding here is \"stages each shipped clean but the seam between them is broken.\"\n- **Design parity at intent close — the shipped app matches the designs.** Walk every artifact in `stages/design/artifacts/` (mockups, screen specs, state-coverage sheets, design-system anchor). For each, locate the corresponding screen in the live integrated app, drive the browser there at each declared breakpoint, and screenshot both the design reference and the live build at the SAME viewport. Save them as an explicitly-named matched pair: `.haiku/intents//proof/design-parity---design.png` and `…-build.png`. Then compare on BOTH passes — both must hold. **Visual pass (perceptual):** re-open both images with the `Read` tool and judge what the computed-token check can't — overall composition and visual hierarchy, imagery / iconography correctness, visual weight and balance, spacing rhythm, type rendering, and anything that simply \"looks off\" against the design even when the numbers match; then confirm the build image actually satisfies the corresponding `.feature` scenario's acceptance criteria on screen, not merely that the DOM holds the right nodes. **Token pass (exact):** every component the design called for is present in the build, the design tokens declared in `.haiku/knowledge/DESIGN-TOKENS.md` render exactly (read computed colors / spacing / font-sizes off the live DOM via `browser_evaluate` and compare hex/rem/px values directly — no near-misses), the layout hierarchy matches at each breakpoint, every state the design declared (hover / focus / active / disabled / error / loading / empty) is reachable and renders as designed. The matched pair lets a human auditor re-open and compare the chain end-to-end without re-running. The per-stage development verifier already checks this for its own units; this intent-level pass is the final gate that catches design drift introduced AFTER development signed off (operations CSS overrides, a feature flag that swaps in a different theme, an integration that strips an aria-attribute the design relied on).\n- **No regressions in adjacent flows.** Walk one or two flows the intent did NOT explicitly target. Catches the case where the intent's changes broke unrelated working behavior — a class of bug that per-stage checks cannot see because each stage only audits its own scope.\n- **Close the session.** Call `haiku_view_close({ session_id })` after all checks complete.\n\n## Common failure modes to look for\n\n- Every stage gate green, every per-stage runtime-verifier green, but the live app's user-facing flow doesn't actually do the thing the intent promised — typically because the slices each stage delivered work in isolation but no stage owned the integration\n- A component the design stage produced that the development stage never rendered into the page (this exact pattern surfaced 2026-05-15 in `out-of-band-human-file-modifications` — three SPA components shipped as `.tsx` files but no other file rendered them)\n- A new API endpoint development built that operations didn't include in the deployment manifest, so the live app hits 404 on the path\n- A feature flag the intent introduced that ships in the off state by default — the user-facing change is invisible in production even though every test passes\n- A regression in an adjacent flow that no stage's per-unit tests covered because the unit only asserted on its own scope — only the integration check sees the side effect\n- The app builds and serves but the primary navigation entry point to the new feature isn't wired (link not added to the menu, route not registered, button hidden behind a permission the test user doesn't have)\n", + "frontmatter": { + "interpretation": "lens" + }, + "body": "**Surface first.** The runtime-verification doctrine referenced in your dispatch governs which surface the delivered intent actually has. The steps below are the **web/GUI path** — the common case for this studio. If the intent delivered a CLI, a headless service, or a library, follow the doctrine's handle for that surface and apply this mandate's *intent* — drive the real deliverable end-to-end, capture proof, assert the promised journey holds — rather than booting a browser with nothing to render.\n\n**Mandate:** The agent **MUST** be the user's eyes and hands at intent close — drive the deliverable through the browser the way a real user would, see what the user would see, assert that what was promised actually got built. Per-stage runtime checks catch broken artifacts within a single phase, but they cannot verify the user journey the intent set out to deliver. The product stage's `.feature` files at the intent level (`stages/product/artifacts/*.feature`, or wherever the studio's product-stage configured them) are the executable test contract for that journey — they exist precisely so this lens has a concrete, version-controlled definition of \"done.\" Consume them, assert against them, screenshot along the way.\n\n**You pass ONLY if you actually ran it — `haiku_view` boot is the verification, not optional scaffolding.** This role's sign-off means one thing: \"I booted the live integrated app and watched the promised journey work.\" If `haiku_view` will not boot the app — the tool errors, no boot target is found, a dependency is down — then you have verified **nothing**, and per the doctrine's verdict rules you **MUST** file a `BLOCKED` finding and **HOLD**. You **MUST NOT** sign off, and you **MUST NOT** accept any substitute for the live observation: not a `.haiku/boot.md` recipe, not a diagnosis, not green CI, not a closed blocker, not \"it should boot now.\" The intent does **not** seal until this role has genuinely reached `PASS` against the running app. If you are re-dispatched because your earlier finding was \"fixed,\" boot and drive again from scratch — a fix that merely unblocked the boot is not the journey passing. If it still can't run after the fix loop has had its turn, escalate to the human and keep holding; never let a can't-verify decay into a pass.\n\n## Check\n\nThe agent **MUST** verify each of the following:\n\n- **A runnable thing exists.** Open a view session via `haiku_view({ intent: \"\", mode: \"boot\" })` — the tool spawns the project's `dev` / `start` script on an ephemeral port and returns a `http://127.0.0.1:/` URL pointing at the live integrated app. Prefer `mode: \"boot\"` explicitly here (not `auto`): by intent close there SHOULD be a runnable thing, and \"no boot target detected\" is itself a headline finding — the intent did not ship a runnable deliverable. Use the bundled `haiku-playwright` MCP to `browser_navigate` to the returned URL.\n- **Every product-stage `.feature` scenario passes against the live app.** Read every `.feature` file the product stage produced at the intent level. For each `Scenario:` (and each `Scenario Outline:` example row), drive the Gherkin steps through `playwright` exactly as the user would — `Given` sets the precondition, `When` performs the action via `browser_click` / `browser_type` / `browser_select_option`, `Then` asserts the visible state via `browser_snapshot` or `browser_evaluate`. A `.feature` scenario that the spec says should succeed but the live app fails, redirects unexpectedly, or shows the wrong content is the headline finding — the intent did not deliver what the product stage promised.\n- **Per-unit claims across every stage hold in the live app.** Walk every unit body across every stage of the intent (`stages/*/units/*.md`). Each unit's acceptance-criterion lines, named selectors, and asserted behavior are part of the deliverable contract. Sample-verify against the live app — for each stage, pick at least every unit that touches the user-facing surface and confirm its claims actually hold in the integrated build. A unit that ticked its own boxes mid-build but whose claim is no longer true in the integrated final app is a finding the per-stage verifier could not have caught.\n- **Screenshot along the way + save proof to disk.** Call `browser_take_screenshot` at every meaningful step — at minimum: page-loaded, post-precondition setup, post-action, final-assertion state. **Save each screenshot** to disk under `.haiku/intents//proof/-.png` using the `Write` tool (PNG is the format `playwright` produces; keep it). The intent-level `proof/` directory is the durable record of \"what the user would have seen at intent close\" — a human verifier reviewing the merged intent should be able to scroll the directory and walk the journey themselves without re-running anything. Attach the same screenshots to any feedback you file; a finding without one is unactionable.\n- **The integration between stages holds.** When the intent spans multiple stages that produce inputs to each other (design → product → development → operations), the running app MUST reflect the chain. The shipped UI uses the design tokens design declared, the API shapes match the data contracts product declared, the deployment exposes the routes development built, and the operations stage's monitoring is wired to the right endpoints. A finding here is \"stages each shipped clean but the seam between them is broken.\"\n- **Design parity at intent close — the shipped app matches the designs.** Walk every artifact in `stages/design/artifacts/` (mockups, screen specs, state-coverage sheets, design-system anchor). For each, locate the corresponding screen in the live integrated app, drive the browser there at each declared breakpoint, and screenshot both the design reference and the live build at the SAME viewport. Save them as an explicitly-named matched pair: `.haiku/intents//proof/design-parity---design.png` and `…-build.png`. Then compare on BOTH passes — both must hold. **Visual pass (perceptual):** re-open both images with the `Read` tool and judge what the computed-token check can't — overall composition and visual hierarchy, imagery / iconography correctness, visual weight and balance, spacing rhythm, type rendering, and anything that simply \"looks off\" against the design even when the numbers match; then confirm the build image actually satisfies the corresponding `.feature` scenario's acceptance criteria on screen, not merely that the DOM holds the right nodes. **Token pass (exact):** every component the design called for is present in the build, the design tokens declared in `.haiku/knowledge/DESIGN-TOKENS.md` render exactly (read computed colors / spacing / font-sizes off the live DOM via `browser_evaluate` and compare hex/rem/px values directly — no near-misses), the layout hierarchy matches at each breakpoint, every state the design declared (hover / focus / active / disabled / error / loading / empty) is reachable and renders as designed. The matched pair lets a human auditor re-open and compare the chain end-to-end without re-running. The per-stage development verifier already checks this for its own units; this intent-level pass is the final gate that catches design drift introduced AFTER development signed off (operations CSS overrides, a feature flag that swaps in a different theme, an integration that strips an aria-attribute the design relied on).\n- **No regressions in adjacent flows.** Walk one or two flows the intent did NOT explicitly target. Catches the case where the intent's changes broke unrelated working behavior — a class of bug that per-stage checks cannot see because each stage only audits its own scope.\n- **Close the session.** Call `haiku_view_close({ session_id })` after all checks complete.\n\n## Common failure modes to look for\n\n- Every stage gate green, every per-stage runtime-verifier green, but the live app's user-facing flow doesn't actually do the thing the intent promised — typically because the slices each stage delivered work in isolation but no stage owned the integration\n- A component the design stage produced that the development stage never rendered into the page (this exact pattern surfaced 2026-05-15 in `out-of-band-human-file-modifications` — three SPA components shipped as `.tsx` files but no other file rendered them)\n- A new API endpoint development built that operations didn't include in the deployment manifest, so the live app hits 404 on the path\n- A feature flag the intent introduced that ships in the off state by default — the user-facing change is invisible in production even though every test passes\n- A regression in an adjacent flow that no stage's per-unit tests covered because the unit only asserted on its own scope — only the integration check sees the side effect\n- The app builds and serves but the primary navigation entry point to the new feature isn't wired (link not added to the menu, route not registered, button hidden behind a permission the test user doesn't have)\n", + "path": "plugin/studios/software/intent-review-agents/runtime-verifier.md" + } + }, "templates": { "bugfix": { "content": "---\nname: bugfix\nstudio: software\ndescription: Fix a reported bug with investigation, fix, and verification\nparameters:\n - name: bug\n description: Description of the bug or link to the bug report\n required: true\n - name: severity\n description: \"Bug severity: critical, high, medium, low\"\n required: false\n default: medium\nstages-override: [inception, development]\nunits:\n - name: \"investigate\"\n stage: inception\n criteria:\n - \"Root cause identified with evidence (logs, reproduction steps)\"\n - \"Fix approach documented\"\n - \"Blast radius assessed (what else might be affected)\"\n - name: \"fix\"\n stage: development\n criteria:\n - \"Bug no longer reproducible\"\n - \"Regression test written that fails without the fix\"\n - \"No other tests broken\"\n---\n\nStreamlined template for bugfixes — skips design and product stages.\n\n## When to Use\n\n- Reported bug with a clear reproduction path\n- Bug that doesn't require design changes or new product specs\n- Urgent fixes (set severity parameter to control priority)\n", @@ -11683,6 +12014,7 @@ "frontmatter": { "name": "design", "description": "Visual and interaction design for user-facing surfaces", + "optional": true, "hats": [ "designer-prep", "designer", @@ -11705,7 +12037,7 @@ } ] }, - "stageMd": "---\nname: design\ndescription: Visual and interaction design for user-facing surfaces\nhats: [designer-prep, designer, design-reviewer]\nfix_hats: [classifier, designer, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\n# Design direction (2026-05-08 reframe): the picker is now a\n# discovery agent. See `discovery/DESIGN-DIRECTION.md` — it declares\n# `tool: pick_design_direction` so the cursor's tool-driven discovery\n# branch fires. The bespoke `requires_design_direction: true` flag is\n# retired; the discovery existence check on\n# `stages/design/artifacts/design-direction.md` is the gate.\ninputs:\n - stage: inception\n discovery: discovery\n---\n\n# Design\n\nWhere the work gets its shape: translate the elaborated problem into the wireframes, component states, interaction specs, and layout rules that downstream stages build against.\n\n## Scope\n\nVisual and interaction design for user-facing surfaces — what the work looks like and how it behaves to the touch. Not the behavioral contract (product), not implementation (development).\n\n## What to do\n\n- Reference the project's existing design system — its tokens, atoms, and primitives — by name, citing source.\n- Cover every state the problem requires: default, empty, loading, error, and the edges in between.\n- Keep designs internally consistent and concrete enough that development can build from them without guessing.\n\n## What NOT to do\n\n- Don't invent values — colors, spacing, type — that the design system already defines.\n- Don't specify behavior, acceptance criteria, or data contracts; that's the product stage.\n- Don't write code or choose implementation technology.\n", + "stageMd": "---\nname: design\ndescription: Visual and interaction design for user-facing surfaces\noptional: true\nhats: [designer-prep, designer, design-reviewer]\nfix_hats: [classifier, designer, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\n# Design direction (2026-05-08 reframe): the picker is now a\n# discovery agent. See `discovery/DESIGN-DIRECTION.md` — it declares\n# `tool: pick_design_direction` so the cursor's tool-driven discovery\n# branch fires. The bespoke `requires_design_direction: true` flag is\n# retired; the discovery existence check on\n# `stages/design/artifacts/design-direction.md` is the gate.\ninputs:\n - stage: inception\n discovery: discovery\n---\n\n# Design\n\nWhere the work gets its shape: translate the elaborated problem into the wireframes, component states, interaction specs, and layout rules that downstream stages build against.\n\n## Scope\n\nVisual and interaction design for user-facing surfaces — what the work looks like and how it behaves to the touch. Not the behavioral contract (product), not implementation (development).\n\n## What to do\n\n- Reference the project's existing design system — its tokens, atoms, and primitives — by name, citing source.\n- Cover every state the problem requires: default, empty, loading, error, and the edges in between.\n- Keep designs internally consistent and concrete enough that development can build from them without guessing.\n\n## What NOT to do\n\n- Don't invent values — colors, spacing, type — that the design system already defines.\n- Don't specify behavior, acceptance criteria, or data contracts; that's the product stage.\n- Don't write code or choose implementation technology.\n", "stagePath": "plugin/studios/software/stages/design/STAGE.md", "hats": { "design-reviewer": { @@ -12066,7 +12398,7 @@ } ] }, - "stageMd": "---\nname: development\ndescription: Implement the specification through code\nproduces: build\nhats: [planner, builder, reviewer]\nfix_hats: [classifier, builder, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\ninputs:\n - stage: inception\n discovery: discovery\n - stage: design\n discovery: design-brief\n - stage: design\n discovery: design-tokens\n - stage: design\n output: design-artifacts\n - stage: product\n discovery: acceptance-criteria\n - stage: product\n discovery: behavioral-spec\n - stage: product\n discovery: data-contracts\nreview-agents-include:\n - stage: design\n agents: [consistency, accessibility]\n - stage: product\n agents: [completeness]\n---\n\n# Development\n\nTurn the product stage's specification into working software: code and passing tests that satisfy the acceptance criteria and land on the project's main branch.\n\n## Scope\n\nImplementation against the spec — the code, the tests that prove it, and the architecture decisions that fall out along the way. Not redefining what to build (that's product), not redesigning surfaces (that's design).\n\n## What to do\n\n- Trace every acceptance criterion to the test and the implementation that satisfy it; leave nothing in the spec unverified.\n- Build in small, verifiable increments, keeping the build and tests green as you go.\n- Match the project's existing patterns and conventions rather than introducing your own.\n\n## What NOT to do\n\n- Don't reshape the spec to fit the code — a wrong spec is a revisit upstream, not a quiet reinterpretation here.\n- Don't add scope the acceptance criteria don't call for.\n- Don't advance with failing tests, failing gates, or a criterion left untested.\n", + "stageMd": "---\nname: development\ndescription: Implement the specification through code\nproduces: build\nhats: [planner, builder, reviewer]\nfix_hats: [classifier, builder, feedback-assessor]\nreview: [external, ask]\nelaboration: collaborative\ninputs:\n - stage: inception\n discovery: discovery\n - stage: design\n discovery: design-brief\n - stage: design\n discovery: design-tokens\n - stage: design\n output: design-artifacts\n - stage: product\n discovery: acceptance-criteria\n - stage: product\n discovery: behavioral-spec\n - stage: product\n discovery: data-contracts\nreview-agents-include:\n - stage: design\n agents: [consistency, accessibility]\n - stage: product\n agents: [completeness]\n---\n\n# Development\n\nTurn the upstream specification into working software: code and passing tests that satisfy the work's completion criteria and land on the project's main branch. For an application that ran the product and design stages, that spec is their acceptance criteria, contracts, and design artifacts; for a library or CLI that dropped them, it's the unit's own completion criteria plus the inception knowledge — read whatever upstream inputs the dispatch actually resolved.\n\n## Scope\n\nImplementation against the spec — the code, the tests that prove it, and the architecture decisions that fall out along the way. Not redefining what to build (that's the product stage, where it ran), not redesigning surfaces (that's design, where it ran).\n\n## What to do\n\n- Trace every acceptance criterion to the test and the implementation that satisfy it; leave nothing in the spec unverified.\n- Build in small, verifiable increments, keeping the build and tests green as you go.\n- Match the project's existing patterns and conventions rather than introducing your own.\n\n## What NOT to do\n\n- Don't reshape the spec to fit the code — a wrong spec is a revisit upstream, not a quiet reinterpretation here.\n- Don't add scope the acceptance criteria don't call for.\n- Don't advance with failing tests, failing gates, or a criterion left untested.\n", "stagePath": "plugin/studios/software/stages/development/STAGE.md", "hats": { "builder": { @@ -12078,17 +12410,17 @@ "path": "plugin/studios/software/stages/development/hats/builder.md" }, "planner": { - "content": "**Focus:** Translate the unit's completion criteria + the upstream product / design / inception context into a concrete implementation plan that the builder hat can execute without guessing. The plan is the baton handed to the builder — it must be specific enough that a builder who has not read the upstream artifacts can still ship correct code by following it. Vague plans are how implementations drift from specs.\n\nThe plan is **tactical, not strategic**: file paths, function signatures, sequence of changes, test-first ordering, named risks. It is NOT architecture exploration — architecture decisions land at the design / inception stages and are inputs here, not outputs.\n\n## Process\n\n### 1. Read your inputs in order\n\n- The unit body — completion criteria, success criteria, any pre-existing notes\n- The product stage's `ACCEPTANCE-CRITERIA.md` for this slice\n- The product stage's `.feature` files that map to this unit's criteria\n- The product stage's `DATA-CONTRACTS.md` rows that this unit touches\n- The design stage's `DESIGN-BRIEF.md` + `DESIGN-TOKENS.md` (and `design-artifacts/` if the unit touches UI)\n- The inception stage's `DISCOVERY.md` for the relevant knowledge surfaces\n- Sibling units' completed plans + outputs, where `depends_on:` points at them\n- The project's actual code — `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` to know the stack, and a `git log -- ` to know recent intent in the area you'll touch\n\n### 2. Identify risks before writing the plan\n\nA risk is anything that could turn this unit's bolt into more than one bolt. Common ones:\n\n- **High-churn files** — `git log --oneline -20 -- ` shows ≥ 5 recent commits. The area is in flux; coordinate or pick a quieter seam.\n- **Stable files** — no recent commits. Conservative posture; communicate intent in commits.\n- **Recent refactor in the area** — there's a directional intent you might be undoing.\n- **Shared code with multiple consumers** — changes here ripple. Plan the consumer audit BEFORE the change.\n- **Cross-cutting concerns** (auth, logging, error handling) — touching these without a stated scope is how scope creep enters.\n- **Migration / data-shape change** — needs an explicit backfill + rollback plan inline.\n\nState each identified risk and the mitigation. If the mitigation is \"investigate further\", do that investigation NOW and rewrite the plan once you know — handing an open investigation to the builder is how 3-bolt loops happen.\n\n### 3. Map every AC item to a concrete test\n\nFor each AC item / `.feature` scenario this unit covers, declare the test that will verify it. The test is what RED looks like in TDD:\n\n```\n| AC ref | Test file + name | Test framework |\n|------------------|-------------------------------------------------------|----------------|\n| AC-1.2.1 | tests/api/signup.test.ts > rejects invalid email | vitest |\n| features:Locked | tests/api/login.test.ts > 423 when account is locked | vitest |\n| SC-3 (boundary) | tests/api/signup.test.ts > rejects 10001th signup | vitest |\n```\n\nThe builder hat will execute this table top-to-bottom: write the failing test, watch it fail for the right reason, write the minimum code to pass, refactor. Every row is one RED → GREEN → REFACTOR cycle. If a row's test is \"covered by the existing X test\" — say so explicitly, don't omit the row.\n\n### 4. Write the change plan\n\nFor each file to touch:\n\n```\n### \n\n**Why:** \n\n**Touch points:**\n- Add `function newThing(...)` — signature, return type, brief contract\n- Modify `existingFunction` — what changes, why, what the consumer impact is\n- Move `helper` from to — what depends on it\n\n**Order:**\n1. Write failing test in \n2. Add the function / change the function\n3. Run the AC's verify command\n4. Refactor if needed\n```\n\nOrder matters within a file (you may need a new module before the consumer can import it). Order matters across files (the contract change usually goes before the consumer change).\n\n### 5. List the verify commands\n\nPull the unit's `quality_gates:` and write the literal commands the builder will run between increments. Inspect `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` (or the project's equivalent) during planning and write commands against THIS project's actual stack:\n\n```\n# illustrative — substitute the project's actual runner / linter / type-checker\n- ` ` (per-test loop)\n- `` (after each function added)\n- ` --fix` (before commit)\n- Full suite: `` (before advance-hat)\n```\n\nConcrete examples across common stacks:\n\n- JS / TS: `pnpm test `, `pnpm typecheck`, `pnpm lint --fix`, `pnpm test`\n- Python: `pytest `, `mypy --strict src/`, `ruff check --fix`, `pytest`\n- Go: `go test `, `go vet ./...`, `gofmt -w`, `go test ./...`\n- Rust: `cargo test `, `cargo check`, `cargo fmt`, `cargo test`\n\nThe plan is not portable to other projects — it's specific to THIS codebase. Pick the project's actual commands; do NOT leave placeholders.\n\n### 6. Sanity-check before handing off\n\n- [ ] Every AC item / `.feature` scenario this unit owns appears in the test mapping table\n- [ ] Every file in the change plan has a stated `Why:`\n- [ ] Every risk has a mitigation that the builder can act on without further investigation\n- [ ] Every verify command is the literal command for this project's stack, not a placeholder\n- [ ] The plan does NOT include architecture decisions that weren't already made upstream — if you needed to make one, that's a feedback against the design or inception stage, not a hidden assumption in the plan\n- [ ] The plan does NOT exceed one bolt's worth of work — if it does, break the unit before handing off\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** plan an implementation that contradicts the data contracts — file feedback against `product` if the contract is wrong, don't quietly diverge in the plan\n- The agent **MUST NOT** copy a previous failed plan without changes — the previous failure is the most important input to the retry\n- The agent **MUST NOT** skip the AC → test mapping table — that table IS the TDD baton handed to the builder\n- The agent **MUST NOT** make architecture decisions in the plan — those belong upstream; if a decision is missing, file feedback rather than smuggling one in\n- The agent **MUST** record the plan's decisions in the unit body where they affect downstream hats — the builder reads the body, not just the frontmatter\n", + "content": "**Focus:** Translate the unit's completion criteria + the upstream product / design / inception context into a concrete implementation plan that the builder hat can execute without guessing. The plan is the baton handed to the builder — it must be specific enough that a builder who has not read the upstream artifacts can still ship correct code by following it. Vague plans are how implementations drift from specs.\n\nThe plan is **tactical, not strategic**: file paths, function signatures, sequence of changes, test-first ordering, named risks. It is NOT architecture exploration — architecture decisions land at the design / inception stages and are inputs here, not outputs.\n\n## Process\n\n### 1. Read your inputs in order\n\n- The unit body — completion criteria, success criteria, any pre-existing notes\n- **Your declared upstream inputs** — the dispatch lists the resolved upstream artifacts for this unit (the spec, acceptance criteria, data contracts, design brief and tokens, the knowledge surfaces, whatever this stage declares). Read each one that's present. The list is the source of truth: a stage this intent dropped (an optional `design` / `product` for a library, say) simply won't appear — don't go hunting for an artifact that isn't there, and don't assume one exists because this prose once named it.\n- Sibling units' completed plans + outputs, where `depends_on:` points at them\n- The project's actual code — `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` to know the stack, and a `git log -- ` to know recent intent in the area you'll touch\n\n### 2. Identify risks before writing the plan\n\nA risk is anything that could turn this unit's bolt into more than one bolt. Common ones:\n\n- **High-churn files** — `git log --oneline -20 -- ` shows ≥ 5 recent commits. The area is in flux; coordinate or pick a quieter seam.\n- **Stable files** — no recent commits. Conservative posture; communicate intent in commits.\n- **Recent refactor in the area** — there's a directional intent you might be undoing.\n- **Shared code with multiple consumers** — changes here ripple. Plan the consumer audit BEFORE the change.\n- **Cross-cutting concerns** (auth, logging, error handling) — touching these without a stated scope is how scope creep enters.\n- **Migration / data-shape change** — needs an explicit backfill + rollback plan inline.\n\nState each identified risk and the mitigation. If the mitigation is \"investigate further\", do that investigation NOW and rewrite the plan once you know — handing an open investigation to the builder is how 3-bolt loops happen.\n\n### 3. Map every AC item to a concrete test\n\nFor each AC item / `.feature` scenario this unit covers, declare the test that will verify it. The test is what RED looks like in TDD:\n\n```\n| AC ref | Test file + name | Test framework |\n|------------------|-------------------------------------------------------|----------------|\n| AC-1.2.1 | tests/api/signup.test.ts > rejects invalid email | vitest |\n| features:Locked | tests/api/login.test.ts > 423 when account is locked | vitest |\n| SC-3 (boundary) | tests/api/signup.test.ts > rejects 10001th signup | vitest |\n```\n\nThe builder hat will execute this table top-to-bottom: write the failing test, watch it fail for the right reason, write the minimum code to pass, refactor. Every row is one RED → GREEN → REFACTOR cycle. If a row's test is \"covered by the existing X test\" — say so explicitly, don't omit the row.\n\n### 4. Write the change plan\n\nFor each file to touch:\n\n```\n### \n\n**Why:** \n\n**Touch points:**\n- Add `function newThing(...)` — signature, return type, brief contract\n- Modify `existingFunction` — what changes, why, what the consumer impact is\n- Move `helper` from to — what depends on it\n\n**Order:**\n1. Write failing test in \n2. Add the function / change the function\n3. Run the AC's verify command\n4. Refactor if needed\n```\n\nOrder matters within a file (you may need a new module before the consumer can import it). Order matters across files (the contract change usually goes before the consumer change).\n\n### 5. List the verify commands\n\nPull the unit's `quality_gates:` and write the literal commands the builder will run between increments. Inspect `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` (or the project's equivalent) during planning and write commands against THIS project's actual stack:\n\n```\n# illustrative — substitute the project's actual runner / linter / type-checker\n- ` ` (per-test loop)\n- `` (after each function added)\n- ` --fix` (before commit)\n- Full suite: `` (before advance-hat)\n```\n\nConcrete examples across common stacks:\n\n- JS / TS: `pnpm test `, `pnpm typecheck`, `pnpm lint --fix`, `pnpm test`\n- Python: `pytest `, `mypy --strict src/`, `ruff check --fix`, `pytest`\n- Go: `go test `, `go vet ./...`, `gofmt -w`, `go test ./...`\n- Rust: `cargo test `, `cargo check`, `cargo fmt`, `cargo test`\n\nThe plan is not portable to other projects — it's specific to THIS codebase. Pick the project's actual commands; do NOT leave placeholders.\n\n### 6. Sanity-check before handing off\n\n- [ ] Every AC item / `.feature` scenario this unit owns appears in the test mapping table\n- [ ] Every file in the change plan has a stated `Why:`\n- [ ] Every risk has a mitigation that the builder can act on without further investigation\n- [ ] Every verify command is the literal command for this project's stack, not a placeholder\n- [ ] The plan does NOT include architecture decisions that weren't already made upstream — if you needed to make one, that's a feedback against the design or inception stage, not a hidden assumption in the plan\n- [ ] The plan does NOT exceed one bolt's worth of work — if it does, break the unit before handing off\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** plan an implementation that contradicts the data contracts — file feedback against `product` if the contract is wrong, don't quietly diverge in the plan\n- The agent **MUST NOT** copy a previous failed plan without changes — the previous failure is the most important input to the retry\n- The agent **MUST NOT** skip the AC → test mapping table — that table IS the TDD baton handed to the builder\n- The agent **MUST NOT** make architecture decisions in the plan — those belong upstream; if a decision is missing, file feedback rather than smuggling one in\n- The agent **MUST** record the plan's decisions in the unit body where they affect downstream hats — the builder reads the body, not just the frontmatter\n", "frontmatter": {}, - "body": "**Focus:** Translate the unit's completion criteria + the upstream product / design / inception context into a concrete implementation plan that the builder hat can execute without guessing. The plan is the baton handed to the builder — it must be specific enough that a builder who has not read the upstream artifacts can still ship correct code by following it. Vague plans are how implementations drift from specs.\n\nThe plan is **tactical, not strategic**: file paths, function signatures, sequence of changes, test-first ordering, named risks. It is NOT architecture exploration — architecture decisions land at the design / inception stages and are inputs here, not outputs.\n\n## Process\n\n### 1. Read your inputs in order\n\n- The unit body — completion criteria, success criteria, any pre-existing notes\n- The product stage's `ACCEPTANCE-CRITERIA.md` for this slice\n- The product stage's `.feature` files that map to this unit's criteria\n- The product stage's `DATA-CONTRACTS.md` rows that this unit touches\n- The design stage's `DESIGN-BRIEF.md` + `DESIGN-TOKENS.md` (and `design-artifacts/` if the unit touches UI)\n- The inception stage's `DISCOVERY.md` for the relevant knowledge surfaces\n- Sibling units' completed plans + outputs, where `depends_on:` points at them\n- The project's actual code — `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` to know the stack, and a `git log -- ` to know recent intent in the area you'll touch\n\n### 2. Identify risks before writing the plan\n\nA risk is anything that could turn this unit's bolt into more than one bolt. Common ones:\n\n- **High-churn files** — `git log --oneline -20 -- ` shows ≥ 5 recent commits. The area is in flux; coordinate or pick a quieter seam.\n- **Stable files** — no recent commits. Conservative posture; communicate intent in commits.\n- **Recent refactor in the area** — there's a directional intent you might be undoing.\n- **Shared code with multiple consumers** — changes here ripple. Plan the consumer audit BEFORE the change.\n- **Cross-cutting concerns** (auth, logging, error handling) — touching these without a stated scope is how scope creep enters.\n- **Migration / data-shape change** — needs an explicit backfill + rollback plan inline.\n\nState each identified risk and the mitigation. If the mitigation is \"investigate further\", do that investigation NOW and rewrite the plan once you know — handing an open investigation to the builder is how 3-bolt loops happen.\n\n### 3. Map every AC item to a concrete test\n\nFor each AC item / `.feature` scenario this unit covers, declare the test that will verify it. The test is what RED looks like in TDD:\n\n```\n| AC ref | Test file + name | Test framework |\n|------------------|-------------------------------------------------------|----------------|\n| AC-1.2.1 | tests/api/signup.test.ts > rejects invalid email | vitest |\n| features:Locked | tests/api/login.test.ts > 423 when account is locked | vitest |\n| SC-3 (boundary) | tests/api/signup.test.ts > rejects 10001th signup | vitest |\n```\n\nThe builder hat will execute this table top-to-bottom: write the failing test, watch it fail for the right reason, write the minimum code to pass, refactor. Every row is one RED → GREEN → REFACTOR cycle. If a row's test is \"covered by the existing X test\" — say so explicitly, don't omit the row.\n\n### 4. Write the change plan\n\nFor each file to touch:\n\n```\n### \n\n**Why:** \n\n**Touch points:**\n- Add `function newThing(...)` — signature, return type, brief contract\n- Modify `existingFunction` — what changes, why, what the consumer impact is\n- Move `helper` from to — what depends on it\n\n**Order:**\n1. Write failing test in \n2. Add the function / change the function\n3. Run the AC's verify command\n4. Refactor if needed\n```\n\nOrder matters within a file (you may need a new module before the consumer can import it). Order matters across files (the contract change usually goes before the consumer change).\n\n### 5. List the verify commands\n\nPull the unit's `quality_gates:` and write the literal commands the builder will run between increments. Inspect `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` (or the project's equivalent) during planning and write commands against THIS project's actual stack:\n\n```\n# illustrative — substitute the project's actual runner / linter / type-checker\n- ` ` (per-test loop)\n- `` (after each function added)\n- ` --fix` (before commit)\n- Full suite: `` (before advance-hat)\n```\n\nConcrete examples across common stacks:\n\n- JS / TS: `pnpm test `, `pnpm typecheck`, `pnpm lint --fix`, `pnpm test`\n- Python: `pytest `, `mypy --strict src/`, `ruff check --fix`, `pytest`\n- Go: `go test `, `go vet ./...`, `gofmt -w`, `go test ./...`\n- Rust: `cargo test `, `cargo check`, `cargo fmt`, `cargo test`\n\nThe plan is not portable to other projects — it's specific to THIS codebase. Pick the project's actual commands; do NOT leave placeholders.\n\n### 6. Sanity-check before handing off\n\n- [ ] Every AC item / `.feature` scenario this unit owns appears in the test mapping table\n- [ ] Every file in the change plan has a stated `Why:`\n- [ ] Every risk has a mitigation that the builder can act on without further investigation\n- [ ] Every verify command is the literal command for this project's stack, not a placeholder\n- [ ] The plan does NOT include architecture decisions that weren't already made upstream — if you needed to make one, that's a feedback against the design or inception stage, not a hidden assumption in the plan\n- [ ] The plan does NOT exceed one bolt's worth of work — if it does, break the unit before handing off\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** plan an implementation that contradicts the data contracts — file feedback against `product` if the contract is wrong, don't quietly diverge in the plan\n- The agent **MUST NOT** copy a previous failed plan without changes — the previous failure is the most important input to the retry\n- The agent **MUST NOT** skip the AC → test mapping table — that table IS the TDD baton handed to the builder\n- The agent **MUST NOT** make architecture decisions in the plan — those belong upstream; if a decision is missing, file feedback rather than smuggling one in\n- The agent **MUST** record the plan's decisions in the unit body where they affect downstream hats — the builder reads the body, not just the frontmatter\n", + "body": "**Focus:** Translate the unit's completion criteria + the upstream product / design / inception context into a concrete implementation plan that the builder hat can execute without guessing. The plan is the baton handed to the builder — it must be specific enough that a builder who has not read the upstream artifacts can still ship correct code by following it. Vague plans are how implementations drift from specs.\n\nThe plan is **tactical, not strategic**: file paths, function signatures, sequence of changes, test-first ordering, named risks. It is NOT architecture exploration — architecture decisions land at the design / inception stages and are inputs here, not outputs.\n\n## Process\n\n### 1. Read your inputs in order\n\n- The unit body — completion criteria, success criteria, any pre-existing notes\n- **Your declared upstream inputs** — the dispatch lists the resolved upstream artifacts for this unit (the spec, acceptance criteria, data contracts, design brief and tokens, the knowledge surfaces, whatever this stage declares). Read each one that's present. The list is the source of truth: a stage this intent dropped (an optional `design` / `product` for a library, say) simply won't appear — don't go hunting for an artifact that isn't there, and don't assume one exists because this prose once named it.\n- Sibling units' completed plans + outputs, where `depends_on:` points at them\n- The project's actual code — `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` to know the stack, and a `git log -- ` to know recent intent in the area you'll touch\n\n### 2. Identify risks before writing the plan\n\nA risk is anything that could turn this unit's bolt into more than one bolt. Common ones:\n\n- **High-churn files** — `git log --oneline -20 -- ` shows ≥ 5 recent commits. The area is in flux; coordinate or pick a quieter seam.\n- **Stable files** — no recent commits. Conservative posture; communicate intent in commits.\n- **Recent refactor in the area** — there's a directional intent you might be undoing.\n- **Shared code with multiple consumers** — changes here ripple. Plan the consumer audit BEFORE the change.\n- **Cross-cutting concerns** (auth, logging, error handling) — touching these without a stated scope is how scope creep enters.\n- **Migration / data-shape change** — needs an explicit backfill + rollback plan inline.\n\nState each identified risk and the mitigation. If the mitigation is \"investigate further\", do that investigation NOW and rewrite the plan once you know — handing an open investigation to the builder is how 3-bolt loops happen.\n\n### 3. Map every AC item to a concrete test\n\nFor each AC item / `.feature` scenario this unit covers, declare the test that will verify it. The test is what RED looks like in TDD:\n\n```\n| AC ref | Test file + name | Test framework |\n|------------------|-------------------------------------------------------|----------------|\n| AC-1.2.1 | tests/api/signup.test.ts > rejects invalid email | vitest |\n| features:Locked | tests/api/login.test.ts > 423 when account is locked | vitest |\n| SC-3 (boundary) | tests/api/signup.test.ts > rejects 10001th signup | vitest |\n```\n\nThe builder hat will execute this table top-to-bottom: write the failing test, watch it fail for the right reason, write the minimum code to pass, refactor. Every row is one RED → GREEN → REFACTOR cycle. If a row's test is \"covered by the existing X test\" — say so explicitly, don't omit the row.\n\n### 4. Write the change plan\n\nFor each file to touch:\n\n```\n### \n\n**Why:** \n\n**Touch points:**\n- Add `function newThing(...)` — signature, return type, brief contract\n- Modify `existingFunction` — what changes, why, what the consumer impact is\n- Move `helper` from to — what depends on it\n\n**Order:**\n1. Write failing test in \n2. Add the function / change the function\n3. Run the AC's verify command\n4. Refactor if needed\n```\n\nOrder matters within a file (you may need a new module before the consumer can import it). Order matters across files (the contract change usually goes before the consumer change).\n\n### 5. List the verify commands\n\nPull the unit's `quality_gates:` and write the literal commands the builder will run between increments. Inspect `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` (or the project's equivalent) during planning and write commands against THIS project's actual stack:\n\n```\n# illustrative — substitute the project's actual runner / linter / type-checker\n- ` ` (per-test loop)\n- `` (after each function added)\n- ` --fix` (before commit)\n- Full suite: `` (before advance-hat)\n```\n\nConcrete examples across common stacks:\n\n- JS / TS: `pnpm test `, `pnpm typecheck`, `pnpm lint --fix`, `pnpm test`\n- Python: `pytest `, `mypy --strict src/`, `ruff check --fix`, `pytest`\n- Go: `go test `, `go vet ./...`, `gofmt -w`, `go test ./...`\n- Rust: `cargo test `, `cargo check`, `cargo fmt`, `cargo test`\n\nThe plan is not portable to other projects — it's specific to THIS codebase. Pick the project's actual commands; do NOT leave placeholders.\n\n### 6. Sanity-check before handing off\n\n- [ ] Every AC item / `.feature` scenario this unit owns appears in the test mapping table\n- [ ] Every file in the change plan has a stated `Why:`\n- [ ] Every risk has a mitigation that the builder can act on without further investigation\n- [ ] Every verify command is the literal command for this project's stack, not a placeholder\n- [ ] The plan does NOT include architecture decisions that weren't already made upstream — if you needed to make one, that's a feedback against the design or inception stage, not a hidden assumption in the plan\n- [ ] The plan does NOT exceed one bolt's worth of work — if it does, break the unit before handing off\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** plan an implementation that contradicts the data contracts — file feedback against `product` if the contract is wrong, don't quietly diverge in the plan\n- The agent **MUST NOT** copy a previous failed plan without changes — the previous failure is the most important input to the retry\n- The agent **MUST NOT** skip the AC → test mapping table — that table IS the TDD baton handed to the builder\n- The agent **MUST NOT** make architecture decisions in the plan — those belong upstream; if a decision is missing, file feedback rather than smuggling one in\n- The agent **MUST** record the plan's decisions in the unit body where they affect downstream hats — the builder reads the body, not just the frontmatter\n", "path": "plugin/studios/software/stages/development/hats/planner.md" }, "reviewer": { - "content": "---\ninterpretation: lens\n---\n**Focus:** Verify the implementation satisfies the completion criteria through multi-stage review. You are the **verify** role for development — the terminal hat in the unit's hat sequence. Your decision (`advance` vs `reject`) is what the workflow engine trusts. Verification is evidence-based, not claim-based.\n\nReview proceeds in three stages, each gating the next:\n\n1. **Spec compliance** — does the code do what the criteria say? Map every AC item / `.feature` scenario to its passing test.\n2. **Code quality** — is the code well-written? Architectural fit, readability, testability, idiom consistency with the project's existing code.\n3. **Operational readiness** — only when the unit has deployment / monitoring / operations blocks. Skip otherwise.\n\nIf stage 1 fails, you reject — code quality is moot if the spec isn't met. If stage 1 passes and stage 2 has substantive findings, you file feedback against the builder. If both pass and the unit has operational concerns, stage 3 fires.\n\n## Validate this unit's outputs against its criteria\n\nList this unit's declared outputs with `haiku_unit_get { intent, stage, unit, field: \"outputs\" }`, then confirm each one satisfies the unit's completion criteria. The outputs are what you validate; the unit's criteria are the bar. Stay scoped to this one unit — sibling units have their own verify passes.\n\n## Process\n\n### 1. Gather evidence\n\n- The unit body — completion criteria, planner's plan, builder's `As-built` notes.\n- The product stage's `ACCEPTANCE-CRITERIA.md` and matching `.feature` files.\n- The unit's diff vs. its stage branch: `git diff ...`.\n- The full test output, fresh — don't trust the builder's \"tests pass\" claim. Re-run.\n- `git log` on the unit branch — see the RED → GREEN → REFACTOR commit shape.\n\n### 2. Stage 1 — spec compliance\n\nFor each AC item / `.feature` scenario this unit owns, apply chain-of-verification (CoVe):\n\n1. **Initial judgment**: does the diff appear to address this AC?\n2. **Verification questions**: which test exercises this AC? Does the test name reference the AC? Does the test actually assert the behavior, or does it assert something tangential? Is there a `.feature` step that's NOT covered?\n3. **Answer with evidence**: cite the test file:line and the assertion. Cite the production code line that the test exercises.\n4. **Revise**: if the evidence doesn't support the initial judgment, revise. A test that \"passes\" but asserts the wrong thing is not coverage.\n\nLook for TDD violations: implementation commits with NO preceding failing-test commit in the unit's history, or tests that pass on first run with no RED-state evidence. The builder's commit message convention names AC items — if commits are batched or unnamed, that's a yellow flag for the rest of the review.\n\nEvery `.feature` scenario this unit owns MUST have corresponding test coverage that passes — Cucumber step definitions OR equivalent tests in the project's framework. A `.feature` file that's not exercised is dead documentation.\n\n### 3. Stage 2 — code quality\n\nApply these lenses. Each finding goes into the verdict — not as a blocker unless it's substantive:\n\n- **Architectural fit** — does this code agree with the rest of the codebase? New patterns invented without reason? Existing helpers ignored when they'd fit?\n- **Readability** — can a developer who didn't write this code understand it on first read? Comments where intent is non-obvious, names that say what not how, no clever one-liners that need explanation.\n- **Testability** — could this code's tests be tightened? Mocks where real fixtures would have caught a real bug? Tests that depend on implementation details rather than behavior?\n- **Idiom consistency** — does new code match existing patterns? If the project uses Result-type errors, does the new code? If it uses dependency injection, does the new code?\n- **Dead code** — anything added that's not exercised by a test? Anything left in from a previous attempt?\n\nFor non-trivial units, delegate specialized lenses to review agents (correctness, security, performance, accessibility) via the studio's review-agents directory. Consolidate findings into one verdict.\n\n### 4. Stage 3 — operational readiness (conditional)\n\nOnly fires when the unit body has a `## Operations` / `## Deploy` / `## Monitoring` section, OR when the diff touches operational surfaces (config, infra, runbooks, alerts). Otherwise skip.\n\n- **Configuration completeness** — every new flag / env var documented in the appropriate place?\n- **Observability** — new code paths emit structured logs / metrics / traces consistent with project conventions?\n- **Rollback** — is there a rollback path? Migrations that aren't reversible flagged?\n- **Runbook** — if this code can page someone at 3am, is there a runbook entry?\n\n### 5. Issue verdict\n\nIf everything passes, call `haiku_unit_advance_hat` — the unit's hat sequence is complete. The cursor moves to review-track for the stage's review-agents (spec, code-reviewer, etc.).\n\nIf something blocks (spec compliance fails, substantive code-quality issue), file feedback against the builder via `haiku_feedback { target_unit: \"\", target_invalidates: [\"builder\"], ... }` and call `haiku_unit_reject_hat` with the reason. The fix-loop reroutes.\n\nDo not block on low-confidence style issues. Style is for the linter; substantive concerns are for review.\n\n### Sibling-dependency gate failures — verify in isolation, defer integration (CRITICAL)\n\nYou run in this unit's **isolated worktree**, forked from the stage branch. A sibling unit's code is NOT present here until that sibling merges. So before you reject for a failing gate, **trace why it fails**:\n\n- **The failure is in this unit's own surface** — its logic, its own tests, its outputs — → reject the builder normally. This is the builder's job.\n- **The failure traces to a sibling's unmerged output** — a `ReferenceError` on a helper another unit owns, a missing table from another unit's schema, an import of a module another unit produces — → **do NOT reject the builder.** It cannot make a sibling's code appear, and rejecting burns the unit's whole bolt budget re-rejecting a condition no builder pass can fix. This is the exact loop that wedged unit-015 (2026-05-24): the reviewer re-ran the full integration suite *inside the isolated worktree*, where the dependency's schema was absent, and rejected for the absence.\n\nThe cross-unit integration gate is **not your job to enforce in isolation** — it runs at the stage's post-execute approval track, on the **merged** stage branch where the sibling IS present. A genuine integration failure surfaces there as a stage-scoped finding that drives the fix-loop; it does not belong in your per-unit reject loop. So:\n\n- Verify this unit's **own isolation-buildable surface** (its pure logic, the tests that can pass without siblings). If that's sound, `advance_hat`, and name in the baton which assertions you deferred to the merged branch and why.\n- If the unit reads a sibling's output but declares no `depends_on:` on it, or the completion gate is scoped wider than this unit can ever satisfy in isolation, file ONE stage-scoped finding via `haiku_feedback` (no `target_invalidates: [\"builder\"]` — it is not the builder's defect) naming the undeclared dependency or mis-scoped gate, then `advance_hat`. That routes the scheduling/decompose defect to where it gets fixed.\n- **Consistency across passes:** once a failure is classified sibling-dependent, it stays sibling-dependent. Never re-classify the same failure as a builder blocker on a later pass — that oscillation (one pass waves it as \"acceptable scope\", the next rejects for it) is what spends the bolt budget on the wrong problem and wedges the unit.\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** approve without running verification commands fresh — claims (\"I tested it\") never substitute for evidence\n- The agent **MUST NOT** approve code that lacks tests for new functionality\n- The agent **MUST** flag obvious TDD violations — implementation commits with no preceding failing-test commit, or tests that pass on first run with no RED-state evidence\n- The agent **MUST NOT** expand scope beyond verification — fixes are the fix-loop's job, not the verifier's\n- The agent **MUST NOT** reject the builder for a gate failure that traces to a sibling's unmerged output — it is not a builder defect and no builder pass can fix it; verify this unit's own surface, advance, and let the merged-branch stage gate own the integration assertion\n", + "content": "---\ninterpretation: lens\n---\n**Focus:** Verify the implementation satisfies the completion criteria through multi-stage review. You are the **verify** role for development — the terminal hat in the unit's hat sequence. Your decision (`advance` vs `reject`) is what the workflow engine trusts. Verification is evidence-based, not claim-based.\n\nReview proceeds in three stages, each gating the next:\n\n1. **Spec compliance** — does the code do what the criteria say? Map every AC item / `.feature` scenario to its passing test.\n2. **Code quality** — is the code well-written? Architectural fit, readability, testability, idiom consistency with the project's existing code.\n3. **Operational readiness** — only when the unit has deployment / monitoring / operations blocks. Skip otherwise.\n\nIf stage 1 fails, you reject — code quality is moot if the spec isn't met. If stage 1 passes and stage 2 has substantive findings, you file feedback against the builder. If both pass and the unit has operational concerns, stage 3 fires.\n\n## Validate this unit's outputs against its criteria\n\nList this unit's declared outputs with `haiku_unit_get { intent, stage, unit, field: \"outputs\" }`, then confirm each one satisfies the unit's completion criteria. The outputs are what you validate; the unit's criteria are the bar. Stay scoped to this one unit — sibling units have their own verify passes.\n\n## Process\n\n### 1. Gather evidence\n\n- The unit body — completion criteria, planner's plan, builder's `As-built` notes.\n- The unit's declared upstream inputs the dispatch resolved for it — the spec it builds against (acceptance criteria, `.feature` files, data contracts) and any design artifacts, where this intent kept those stages. Read what's present; a dropped optional stage won't appear, so review against the spec that actually exists, not one this prose assumes.\n- The unit's diff vs. its stage branch: `git diff ...`.\n- The full test output, fresh — don't trust the builder's \"tests pass\" claim. Re-run.\n- `git log` on the unit branch — see the RED → GREEN → REFACTOR commit shape.\n\n### 2. Stage 1 — spec compliance\n\nFor each AC item / `.feature` scenario this unit owns, apply chain-of-verification (CoVe):\n\n1. **Initial judgment**: does the diff appear to address this AC?\n2. **Verification questions**: which test exercises this AC? Does the test name reference the AC? Does the test actually assert the behavior, or does it assert something tangential? Is there a `.feature` step that's NOT covered?\n3. **Answer with evidence**: cite the test file:line and the assertion. Cite the production code line that the test exercises.\n4. **Revise**: if the evidence doesn't support the initial judgment, revise. A test that \"passes\" but asserts the wrong thing is not coverage.\n\nLook for TDD violations: implementation commits with NO preceding failing-test commit in the unit's history, or tests that pass on first run with no RED-state evidence. The builder's commit message convention names AC items — if commits are batched or unnamed, that's a yellow flag for the rest of the review.\n\nEvery `.feature` scenario this unit owns MUST have corresponding test coverage that passes — Cucumber step definitions OR equivalent tests in the project's framework. A `.feature` file that's not exercised is dead documentation.\n\n### 3. Stage 2 — code quality\n\nApply these lenses. Each finding goes into the verdict — not as a blocker unless it's substantive:\n\n- **Architectural fit** — does this code agree with the rest of the codebase? New patterns invented without reason? Existing helpers ignored when they'd fit?\n- **Readability** — can a developer who didn't write this code understand it on first read? Comments where intent is non-obvious, names that say what not how, no clever one-liners that need explanation.\n- **Testability** — could this code's tests be tightened? Mocks where real fixtures would have caught a real bug? Tests that depend on implementation details rather than behavior?\n- **Idiom consistency** — does new code match existing patterns? If the project uses Result-type errors, does the new code? If it uses dependency injection, does the new code?\n- **Dead code** — anything added that's not exercised by a test? Anything left in from a previous attempt?\n\nFor non-trivial units, delegate specialized lenses to review agents (correctness, security, performance, accessibility) via the studio's review-agents directory. Consolidate findings into one verdict.\n\n### 4. Stage 3 — operational readiness (conditional)\n\nOnly fires when the unit body has a `## Operations` / `## Deploy` / `## Monitoring` section, OR when the diff touches operational surfaces (config, infra, runbooks, alerts). Otherwise skip.\n\n- **Configuration completeness** — every new flag / env var documented in the appropriate place?\n- **Observability** — new code paths emit structured logs / metrics / traces consistent with project conventions?\n- **Rollback** — is there a rollback path? Migrations that aren't reversible flagged?\n- **Runbook** — if this code can page someone at 3am, is there a runbook entry?\n\n### 5. Issue verdict\n\nIf everything passes, call `haiku_unit_advance_hat` — the unit's hat sequence is complete. The cursor moves to review-track for the stage's review-agents (spec, code-reviewer, etc.).\n\nIf something blocks (spec compliance fails, substantive code-quality issue), file feedback against the builder via `haiku_feedback { target_unit: \"\", target_invalidates: [\"builder\"], ... }` and call `haiku_unit_reject_hat` with the reason. The fix-loop reroutes.\n\nDo not block on low-confidence style issues. Style is for the linter; substantive concerns are for review.\n\n### Sibling-dependency gate failures — verify in isolation, defer integration (CRITICAL)\n\nYou run in this unit's **isolated worktree**, forked from the stage branch. A sibling unit's code is NOT present here until that sibling merges. So before you reject for a failing gate, **trace why it fails**:\n\n- **The failure is in this unit's own surface** — its logic, its own tests, its outputs — → reject the builder normally. This is the builder's job.\n- **The failure traces to a sibling's unmerged output** — a `ReferenceError` on a helper another unit owns, a missing table from another unit's schema, an import of a module another unit produces — → **do NOT reject the builder.** It cannot make a sibling's code appear, and rejecting burns the unit's whole bolt budget re-rejecting a condition no builder pass can fix. This is the exact loop that wedged unit-015 (2026-05-24): the reviewer re-ran the full integration suite *inside the isolated worktree*, where the dependency's schema was absent, and rejected for the absence.\n\nThe cross-unit integration gate is **not your job to enforce in isolation** — it runs at the stage's post-execute approval track, on the **merged** stage branch where the sibling IS present. A genuine integration failure surfaces there as a stage-scoped finding that drives the fix-loop; it does not belong in your per-unit reject loop. So:\n\n- Verify this unit's **own isolation-buildable surface** (its pure logic, the tests that can pass without siblings). If that's sound, `advance_hat`, and name in the baton which assertions you deferred to the merged branch and why.\n- If the unit reads a sibling's output but declares no `depends_on:` on it, or the completion gate is scoped wider than this unit can ever satisfy in isolation, file ONE stage-scoped finding via `haiku_feedback` (no `target_invalidates: [\"builder\"]` — it is not the builder's defect) naming the undeclared dependency or mis-scoped gate, then `advance_hat`. That routes the scheduling/decompose defect to where it gets fixed.\n- **Consistency across passes:** once a failure is classified sibling-dependent, it stays sibling-dependent. Never re-classify the same failure as a builder blocker on a later pass — that oscillation (one pass waves it as \"acceptable scope\", the next rejects for it) is what spends the bolt budget on the wrong problem and wedges the unit.\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** approve without running verification commands fresh — claims (\"I tested it\") never substitute for evidence\n- The agent **MUST NOT** approve code that lacks tests for new functionality\n- The agent **MUST** flag obvious TDD violations — implementation commits with no preceding failing-test commit, or tests that pass on first run with no RED-state evidence\n- The agent **MUST NOT** expand scope beyond verification — fixes are the fix-loop's job, not the verifier's\n- The agent **MUST NOT** reject the builder for a gate failure that traces to a sibling's unmerged output — it is not a builder defect and no builder pass can fix it; verify this unit's own surface, advance, and let the merged-branch stage gate own the integration assertion\n", "frontmatter": { "interpretation": "lens" }, - "body": "**Focus:** Verify the implementation satisfies the completion criteria through multi-stage review. You are the **verify** role for development — the terminal hat in the unit's hat sequence. Your decision (`advance` vs `reject`) is what the workflow engine trusts. Verification is evidence-based, not claim-based.\n\nReview proceeds in three stages, each gating the next:\n\n1. **Spec compliance** — does the code do what the criteria say? Map every AC item / `.feature` scenario to its passing test.\n2. **Code quality** — is the code well-written? Architectural fit, readability, testability, idiom consistency with the project's existing code.\n3. **Operational readiness** — only when the unit has deployment / monitoring / operations blocks. Skip otherwise.\n\nIf stage 1 fails, you reject — code quality is moot if the spec isn't met. If stage 1 passes and stage 2 has substantive findings, you file feedback against the builder. If both pass and the unit has operational concerns, stage 3 fires.\n\n## Validate this unit's outputs against its criteria\n\nList this unit's declared outputs with `haiku_unit_get { intent, stage, unit, field: \"outputs\" }`, then confirm each one satisfies the unit's completion criteria. The outputs are what you validate; the unit's criteria are the bar. Stay scoped to this one unit — sibling units have their own verify passes.\n\n## Process\n\n### 1. Gather evidence\n\n- The unit body — completion criteria, planner's plan, builder's `As-built` notes.\n- The product stage's `ACCEPTANCE-CRITERIA.md` and matching `.feature` files.\n- The unit's diff vs. its stage branch: `git diff ...`.\n- The full test output, fresh — don't trust the builder's \"tests pass\" claim. Re-run.\n- `git log` on the unit branch — see the RED → GREEN → REFACTOR commit shape.\n\n### 2. Stage 1 — spec compliance\n\nFor each AC item / `.feature` scenario this unit owns, apply chain-of-verification (CoVe):\n\n1. **Initial judgment**: does the diff appear to address this AC?\n2. **Verification questions**: which test exercises this AC? Does the test name reference the AC? Does the test actually assert the behavior, or does it assert something tangential? Is there a `.feature` step that's NOT covered?\n3. **Answer with evidence**: cite the test file:line and the assertion. Cite the production code line that the test exercises.\n4. **Revise**: if the evidence doesn't support the initial judgment, revise. A test that \"passes\" but asserts the wrong thing is not coverage.\n\nLook for TDD violations: implementation commits with NO preceding failing-test commit in the unit's history, or tests that pass on first run with no RED-state evidence. The builder's commit message convention names AC items — if commits are batched or unnamed, that's a yellow flag for the rest of the review.\n\nEvery `.feature` scenario this unit owns MUST have corresponding test coverage that passes — Cucumber step definitions OR equivalent tests in the project's framework. A `.feature` file that's not exercised is dead documentation.\n\n### 3. Stage 2 — code quality\n\nApply these lenses. Each finding goes into the verdict — not as a blocker unless it's substantive:\n\n- **Architectural fit** — does this code agree with the rest of the codebase? New patterns invented without reason? Existing helpers ignored when they'd fit?\n- **Readability** — can a developer who didn't write this code understand it on first read? Comments where intent is non-obvious, names that say what not how, no clever one-liners that need explanation.\n- **Testability** — could this code's tests be tightened? Mocks where real fixtures would have caught a real bug? Tests that depend on implementation details rather than behavior?\n- **Idiom consistency** — does new code match existing patterns? If the project uses Result-type errors, does the new code? If it uses dependency injection, does the new code?\n- **Dead code** — anything added that's not exercised by a test? Anything left in from a previous attempt?\n\nFor non-trivial units, delegate specialized lenses to review agents (correctness, security, performance, accessibility) via the studio's review-agents directory. Consolidate findings into one verdict.\n\n### 4. Stage 3 — operational readiness (conditional)\n\nOnly fires when the unit body has a `## Operations` / `## Deploy` / `## Monitoring` section, OR when the diff touches operational surfaces (config, infra, runbooks, alerts). Otherwise skip.\n\n- **Configuration completeness** — every new flag / env var documented in the appropriate place?\n- **Observability** — new code paths emit structured logs / metrics / traces consistent with project conventions?\n- **Rollback** — is there a rollback path? Migrations that aren't reversible flagged?\n- **Runbook** — if this code can page someone at 3am, is there a runbook entry?\n\n### 5. Issue verdict\n\nIf everything passes, call `haiku_unit_advance_hat` — the unit's hat sequence is complete. The cursor moves to review-track for the stage's review-agents (spec, code-reviewer, etc.).\n\nIf something blocks (spec compliance fails, substantive code-quality issue), file feedback against the builder via `haiku_feedback { target_unit: \"\", target_invalidates: [\"builder\"], ... }` and call `haiku_unit_reject_hat` with the reason. The fix-loop reroutes.\n\nDo not block on low-confidence style issues. Style is for the linter; substantive concerns are for review.\n\n### Sibling-dependency gate failures — verify in isolation, defer integration (CRITICAL)\n\nYou run in this unit's **isolated worktree**, forked from the stage branch. A sibling unit's code is NOT present here until that sibling merges. So before you reject for a failing gate, **trace why it fails**:\n\n- **The failure is in this unit's own surface** — its logic, its own tests, its outputs — → reject the builder normally. This is the builder's job.\n- **The failure traces to a sibling's unmerged output** — a `ReferenceError` on a helper another unit owns, a missing table from another unit's schema, an import of a module another unit produces — → **do NOT reject the builder.** It cannot make a sibling's code appear, and rejecting burns the unit's whole bolt budget re-rejecting a condition no builder pass can fix. This is the exact loop that wedged unit-015 (2026-05-24): the reviewer re-ran the full integration suite *inside the isolated worktree*, where the dependency's schema was absent, and rejected for the absence.\n\nThe cross-unit integration gate is **not your job to enforce in isolation** — it runs at the stage's post-execute approval track, on the **merged** stage branch where the sibling IS present. A genuine integration failure surfaces there as a stage-scoped finding that drives the fix-loop; it does not belong in your per-unit reject loop. So:\n\n- Verify this unit's **own isolation-buildable surface** (its pure logic, the tests that can pass without siblings). If that's sound, `advance_hat`, and name in the baton which assertions you deferred to the merged branch and why.\n- If the unit reads a sibling's output but declares no `depends_on:` on it, or the completion gate is scoped wider than this unit can ever satisfy in isolation, file ONE stage-scoped finding via `haiku_feedback` (no `target_invalidates: [\"builder\"]` — it is not the builder's defect) naming the undeclared dependency or mis-scoped gate, then `advance_hat`. That routes the scheduling/decompose defect to where it gets fixed.\n- **Consistency across passes:** once a failure is classified sibling-dependent, it stays sibling-dependent. Never re-classify the same failure as a builder blocker on a later pass — that oscillation (one pass waves it as \"acceptable scope\", the next rejects for it) is what spends the bolt budget on the wrong problem and wedges the unit.\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** approve without running verification commands fresh — claims (\"I tested it\") never substitute for evidence\n- The agent **MUST NOT** approve code that lacks tests for new functionality\n- The agent **MUST** flag obvious TDD violations — implementation commits with no preceding failing-test commit, or tests that pass on first run with no RED-state evidence\n- The agent **MUST NOT** expand scope beyond verification — fixes are the fix-loop's job, not the verifier's\n- The agent **MUST NOT** reject the builder for a gate failure that traces to a sibling's unmerged output — it is not a builder defect and no builder pass can fix it; verify this unit's own surface, advance, and let the merged-branch stage gate own the integration assertion\n", + "body": "**Focus:** Verify the implementation satisfies the completion criteria through multi-stage review. You are the **verify** role for development — the terminal hat in the unit's hat sequence. Your decision (`advance` vs `reject`) is what the workflow engine trusts. Verification is evidence-based, not claim-based.\n\nReview proceeds in three stages, each gating the next:\n\n1. **Spec compliance** — does the code do what the criteria say? Map every AC item / `.feature` scenario to its passing test.\n2. **Code quality** — is the code well-written? Architectural fit, readability, testability, idiom consistency with the project's existing code.\n3. **Operational readiness** — only when the unit has deployment / monitoring / operations blocks. Skip otherwise.\n\nIf stage 1 fails, you reject — code quality is moot if the spec isn't met. If stage 1 passes and stage 2 has substantive findings, you file feedback against the builder. If both pass and the unit has operational concerns, stage 3 fires.\n\n## Validate this unit's outputs against its criteria\n\nList this unit's declared outputs with `haiku_unit_get { intent, stage, unit, field: \"outputs\" }`, then confirm each one satisfies the unit's completion criteria. The outputs are what you validate; the unit's criteria are the bar. Stay scoped to this one unit — sibling units have their own verify passes.\n\n## Process\n\n### 1. Gather evidence\n\n- The unit body — completion criteria, planner's plan, builder's `As-built` notes.\n- The unit's declared upstream inputs the dispatch resolved for it — the spec it builds against (acceptance criteria, `.feature` files, data contracts) and any design artifacts, where this intent kept those stages. Read what's present; a dropped optional stage won't appear, so review against the spec that actually exists, not one this prose assumes.\n- The unit's diff vs. its stage branch: `git diff ...`.\n- The full test output, fresh — don't trust the builder's \"tests pass\" claim. Re-run.\n- `git log` on the unit branch — see the RED → GREEN → REFACTOR commit shape.\n\n### 2. Stage 1 — spec compliance\n\nFor each AC item / `.feature` scenario this unit owns, apply chain-of-verification (CoVe):\n\n1. **Initial judgment**: does the diff appear to address this AC?\n2. **Verification questions**: which test exercises this AC? Does the test name reference the AC? Does the test actually assert the behavior, or does it assert something tangential? Is there a `.feature` step that's NOT covered?\n3. **Answer with evidence**: cite the test file:line and the assertion. Cite the production code line that the test exercises.\n4. **Revise**: if the evidence doesn't support the initial judgment, revise. A test that \"passes\" but asserts the wrong thing is not coverage.\n\nLook for TDD violations: implementation commits with NO preceding failing-test commit in the unit's history, or tests that pass on first run with no RED-state evidence. The builder's commit message convention names AC items — if commits are batched or unnamed, that's a yellow flag for the rest of the review.\n\nEvery `.feature` scenario this unit owns MUST have corresponding test coverage that passes — Cucumber step definitions OR equivalent tests in the project's framework. A `.feature` file that's not exercised is dead documentation.\n\n### 3. Stage 2 — code quality\n\nApply these lenses. Each finding goes into the verdict — not as a blocker unless it's substantive:\n\n- **Architectural fit** — does this code agree with the rest of the codebase? New patterns invented without reason? Existing helpers ignored when they'd fit?\n- **Readability** — can a developer who didn't write this code understand it on first read? Comments where intent is non-obvious, names that say what not how, no clever one-liners that need explanation.\n- **Testability** — could this code's tests be tightened? Mocks where real fixtures would have caught a real bug? Tests that depend on implementation details rather than behavior?\n- **Idiom consistency** — does new code match existing patterns? If the project uses Result-type errors, does the new code? If it uses dependency injection, does the new code?\n- **Dead code** — anything added that's not exercised by a test? Anything left in from a previous attempt?\n\nFor non-trivial units, delegate specialized lenses to review agents (correctness, security, performance, accessibility) via the studio's review-agents directory. Consolidate findings into one verdict.\n\n### 4. Stage 3 — operational readiness (conditional)\n\nOnly fires when the unit body has a `## Operations` / `## Deploy` / `## Monitoring` section, OR when the diff touches operational surfaces (config, infra, runbooks, alerts). Otherwise skip.\n\n- **Configuration completeness** — every new flag / env var documented in the appropriate place?\n- **Observability** — new code paths emit structured logs / metrics / traces consistent with project conventions?\n- **Rollback** — is there a rollback path? Migrations that aren't reversible flagged?\n- **Runbook** — if this code can page someone at 3am, is there a runbook entry?\n\n### 5. Issue verdict\n\nIf everything passes, call `haiku_unit_advance_hat` — the unit's hat sequence is complete. The cursor moves to review-track for the stage's review-agents (spec, code-reviewer, etc.).\n\nIf something blocks (spec compliance fails, substantive code-quality issue), file feedback against the builder via `haiku_feedback { target_unit: \"\", target_invalidates: [\"builder\"], ... }` and call `haiku_unit_reject_hat` with the reason. The fix-loop reroutes.\n\nDo not block on low-confidence style issues. Style is for the linter; substantive concerns are for review.\n\n### Sibling-dependency gate failures — verify in isolation, defer integration (CRITICAL)\n\nYou run in this unit's **isolated worktree**, forked from the stage branch. A sibling unit's code is NOT present here until that sibling merges. So before you reject for a failing gate, **trace why it fails**:\n\n- **The failure is in this unit's own surface** — its logic, its own tests, its outputs — → reject the builder normally. This is the builder's job.\n- **The failure traces to a sibling's unmerged output** — a `ReferenceError` on a helper another unit owns, a missing table from another unit's schema, an import of a module another unit produces — → **do NOT reject the builder.** It cannot make a sibling's code appear, and rejecting burns the unit's whole bolt budget re-rejecting a condition no builder pass can fix. This is the exact loop that wedged unit-015 (2026-05-24): the reviewer re-ran the full integration suite *inside the isolated worktree*, where the dependency's schema was absent, and rejected for the absence.\n\nThe cross-unit integration gate is **not your job to enforce in isolation** — it runs at the stage's post-execute approval track, on the **merged** stage branch where the sibling IS present. A genuine integration failure surfaces there as a stage-scoped finding that drives the fix-loop; it does not belong in your per-unit reject loop. So:\n\n- Verify this unit's **own isolation-buildable surface** (its pure logic, the tests that can pass without siblings). If that's sound, `advance_hat`, and name in the baton which assertions you deferred to the merged branch and why.\n- If the unit reads a sibling's output but declares no `depends_on:` on it, or the completion gate is scoped wider than this unit can ever satisfy in isolation, file ONE stage-scoped finding via `haiku_feedback` (no `target_invalidates: [\"builder\"]` — it is not the builder's defect) naming the undeclared dependency or mis-scoped gate, then `advance_hat`. That routes the scheduling/decompose defect to where it gets fixed.\n- **Consistency across passes:** once a failure is classified sibling-dependent, it stays sibling-dependent. Never re-classify the same failure as a builder blocker on a later pass — that oscillation (one pass waves it as \"acceptable scope\", the next rejects for it) is what spends the bolt budget on the wrong problem and wedges the unit.\n\n## Anti-patterns (RFC 2119)\n\n- The agent **MUST NOT** approve without running verification commands fresh — claims (\"I tested it\") never substitute for evidence\n- The agent **MUST NOT** approve code that lacks tests for new functionality\n- The agent **MUST** flag obvious TDD violations — implementation commits with no preceding failing-test commit, or tests that pass on first run with no RED-state evidence\n- The agent **MUST NOT** expand scope beyond verification — fixes are the fix-loop's job, not the verifier's\n- The agent **MUST NOT** reject the builder for a gate failure that traces to a sibling's unmerged output — it is not a builder defect and no builder pass can fix it; verify this unit's own surface, advance, and let the merged-branch stage gate own the integration assertion\n", "path": "plugin/studios/software/stages/development/hats/reviewer.md" } }, @@ -12178,6 +12510,7 @@ "frontmatter": { "name": "operations", "description": "Deployment, monitoring, and operational readiness", + "optional": true, "hats": [ "ops-engineer", "sre", @@ -12217,7 +12550,7 @@ } ] }, - "stageMd": "---\nname: operations\ndescription: Deployment, monitoring, and operational readiness\nhats: [ops-engineer, sre, verifier]\nfix_hats: [classifier, ops-engineer, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: inception\n discovery: discovery\n - stage: product\n discovery: behavioral-spec\n - stage: development\n output: code\n - stage: development\n discovery: architecture\nreview-agents-include:\n - stage: development\n agents: [security]\n---\n\n# Operations\n\nTake working code from development and make it run reliably in production: the runtime configuration, deployment path, observability, and on-call posture that turn a green test suite into a service people can depend on.\n\n## Scope\n\nOperational readiness — deployment shape, configuration, monitoring, alerting, and runbooks. Not feature work or behavior changes; the system's job was settled upstream, this stage makes it survivable.\n\n## What to do\n\n- Make every deployment rollback-able before it ships.\n- Cover the real failure modes with observability, and pair every alert with a runbook that says what to do.\n- Write runbooks concrete enough for someone with no prior context to follow under pressure.\n\n## What NOT to do\n\n- Don't add features or change behavior — that's a new intent, not an operations task.\n- Don't ship a deployment with no rollback path.\n- Don't define alerts no one can act on, and don't assume production behaves like your local machine.\n", + "stageMd": "---\nname: operations\ndescription: Deployment, monitoring, and operational readiness\noptional: true\nhats: [ops-engineer, sre, verifier]\nfix_hats: [classifier, ops-engineer, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: inception\n discovery: discovery\n - stage: product\n discovery: behavioral-spec\n - stage: development\n output: code\n - stage: development\n discovery: architecture\nreview-agents-include:\n - stage: development\n agents: [security]\n---\n\n# Operations\n\nTake working code from development and make it run reliably in production: the runtime configuration, deployment path, observability, and on-call posture that turn a green test suite into a service people can depend on.\n\n## Scope\n\nOperational readiness — deployment shape, configuration, monitoring, alerting, and runbooks. Not feature work or behavior changes; the system's job was settled upstream, this stage makes it survivable.\n\n## What to do\n\n- Make every deployment rollback-able before it ships.\n- Cover the real failure modes with observability, and pair every alert with a runbook that says what to do.\n- Write runbooks concrete enough for someone with no prior context to follow under pressure.\n\n## What NOT to do\n\n- Don't add features or change behavior — that's a new intent, not an operations task.\n- Don't ship a deployment with no rollback path.\n- Don't define alerts no one can act on, and don't assume production behaves like your local machine.\n", "stagePath": "plugin/studios/software/stages/operations/STAGE.md", "hats": { "ops-engineer": { @@ -12302,6 +12635,7 @@ "frontmatter": { "name": "security", "description": "Threat modeling, security review, and vulnerability assessment", + "optional": true, "hats": [ "threat-modeler", "security-engineer", @@ -12363,7 +12697,7 @@ ] } }, - "stageMd": "---\nname: security\ndescription: Threat modeling, security review, and vulnerability assessment\nhats: [threat-modeler, security-engineer, security-reviewer]\nfix_hats: [classifier, security-engineer, feedback-assessor]\nreview: [external, ask]\nelaboration: autonomous\ninputs:\n - stage: inception\n discovery: discovery\n - stage: product\n discovery: behavioral-spec\n - stage: product\n discovery: data-contracts\n - stage: development\n output: code\n - stage: development\n discovery: architecture\nreview-agents-include:\n - stage: development\n agents: [security, architecture]\n - stage: operations\n agents: [reliability]\ngate-protocol:\n timeout: 72h\n timeout-action: escalate\n escalation: comms\n conditions:\n - \"no HIGH findings from review agents\"\n---\n\n# Security\n\nAdversarially evaluate whether the built system withstands realistic threats. This is the project's defensive backstop — it catches the class of bugs that pass functional review (the feature works as specified) but fail under abuse (the feature is used in ways the spec never modeled).\n\n## Scope\n\nAdversarial security evaluation of what was built: threat modeling, mitigations, and active attempts to defeat them. Units here are **attack surfaces**, not features. Not functional review, not new feature work.\n\n## What to do\n\n- Model the attack surfaces and trust boundaries, and enumerate threats against each.\n- Pair every identified threat with a specific, concrete mitigation — not a note that it exists.\n- Actually try to defeat the model: abuse-of-feature paths, side channels, supply-chain angles.\n- Route findings back to the stage that owns the fix (development, operations) as feedback.\n\n## What NOT to do\n\n- Don't re-grade whether the feature works as specified — functional review already covered that.\n- Don't accept a threat with no mitigation, or wave through \"the scanner found nothing\" as proof of safety.\n- Don't add features or change behavior.\n", + "stageMd": "---\nname: security\ndescription: Threat modeling, security review, and vulnerability assessment\noptional: true\nhats: [threat-modeler, security-engineer, security-reviewer]\nfix_hats: [classifier, security-engineer, feedback-assessor]\nreview: [external, ask]\nelaboration: autonomous\ninputs:\n - stage: inception\n discovery: discovery\n - stage: product\n discovery: behavioral-spec\n - stage: product\n discovery: data-contracts\n - stage: development\n output: code\n - stage: development\n discovery: architecture\nreview-agents-include:\n - stage: development\n agents: [security, architecture]\n - stage: operations\n agents: [reliability]\ngate-protocol:\n timeout: 72h\n timeout-action: escalate\n escalation: comms\n conditions:\n - \"no HIGH findings from review agents\"\n---\n\n# Security\n\nAdversarially evaluate whether the built system withstands realistic threats. This is the project's defensive backstop — it catches the class of bugs that pass functional review (the feature works as specified) but fail under abuse (the feature is used in ways the spec never modeled).\n\n## Scope\n\nAdversarial security evaluation of what was built: threat modeling, mitigations, and active attempts to defeat them. Units here are **attack surfaces**, not features. Not functional review, not new feature work.\n\n## What to do\n\n- Model the attack surfaces and trust boundaries, and enumerate threats against each.\n- Pair every identified threat with a specific, concrete mitigation — not a note that it exists.\n- Actually try to defeat the model: abuse-of-feature paths, side channels, supply-chain angles.\n- Route findings back to the stage that owns the fix (development, operations) as feedback.\n\n## What NOT to do\n\n- Don't re-grade whether the feature works as specified — functional review already covered that.\n- Don't accept a threat with no mitigation, or wave through \"the scanner found nothing\" as proof of safety.\n- Don't add features or change behavior.\n", "stagePath": "plugin/studios/software/stages/security/STAGE.md", "hats": { "security-engineer": { @@ -12502,6 +12836,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/training/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -12788,6 +13134,7 @@ "frontmatter": { "name": "deliver", "description": "Facilitate training delivery and coordinate logistics", + "optional": true, "hats": [ "facilitator", "coordinator", @@ -12811,7 +13158,7 @@ } ] }, - "stageMd": "---\nname: deliver\ndescription: Facilitate training delivery and coordinate logistics\nhats: [facilitator, coordinator, verifier]\nfix_hats: [classifier, facilitator, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: develop\n output: training-materials\n - stage: design\n discovery: curriculum-plan\n---\n\n# Deliver\n\nThe operational stage of the training lifecycle: run the program. Facilitate sessions, manage logistics, distribute materials, track attendance and completion, and capture the in-session observations that feed evaluate. A unit is one delivery session — a cohort, a workshop, an asynchronous release.\n\n## Scope\n\nRunning the program and recording how it went: facilitation, scheduling, platform and access setup, material distribution, attendance and completion tracking, and real-time learner signals. Deliver decides *what happened when the program ran* — not what the materials are (develop) or whether the program worked (evaluate).\n\n## What to do\n\n- Prepare the run-of-show from the curriculum plan and facilitator guide, anticipating where this audience will get stuck.\n- Execute the logistics — setup, technical checks, access provisioning, attendance and completion records — with contingencies for the common failures.\n- Capture real-time learner signals and facilitator observations as the operational record evaluate will draw on.\n- Note content-improvement candidates as they surface, so the next iteration inherits them.\n\n## What NOT to do\n\n- Don't rewrite or re-author materials mid-delivery — content problems are feedback to develop.\n- Don't measure effectiveness or draw outcome conclusions; that's evaluate.\n- Don't let a logistics failure go unrecorded or unresolved during the session.\n- Don't close a session log missing attendance, completion, or the observations evaluate depends on.\n", + "stageMd": "---\nname: deliver\ndescription: Facilitate training delivery and coordinate logistics\noptional: true\nhats: [facilitator, coordinator, verifier]\nfix_hats: [classifier, facilitator, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: develop\n output: training-materials\n - stage: design\n discovery: curriculum-plan\n---\n\n# Deliver\n\nThe operational stage of the training lifecycle: run the program. Facilitate sessions, manage logistics, distribute materials, track attendance and completion, and capture the in-session observations that feed evaluate. A unit is one delivery session — a cohort, a workshop, an asynchronous release.\n\n## Scope\n\nRunning the program and recording how it went: facilitation, scheduling, platform and access setup, material distribution, attendance and completion tracking, and real-time learner signals. Deliver decides *what happened when the program ran* — not what the materials are (develop) or whether the program worked (evaluate).\n\n## What to do\n\n- Prepare the run-of-show from the curriculum plan and facilitator guide, anticipating where this audience will get stuck.\n- Execute the logistics — setup, technical checks, access provisioning, attendance and completion records — with contingencies for the common failures.\n- Capture real-time learner signals and facilitator observations as the operational record evaluate will draw on.\n- Note content-improvement candidates as they surface, so the next iteration inherits them.\n\n## What NOT to do\n\n- Don't rewrite or re-author materials mid-delivery — content problems are feedback to develop.\n- Don't measure effectiveness or draw outcome conclusions; that's evaluate.\n- Don't let a logistics failure go unrecorded or unresolved during the session.\n- Don't close a session log missing attendance, completion, or the observations evaluate depends on.\n", "stagePath": "plugin/studios/training/stages/deliver/STAGE.md", "hats": { "coordinator": { @@ -12876,6 +13223,7 @@ "frontmatter": { "name": "evaluate", "description": "Measure training effectiveness and analyze feedback", + "optional": true, "hats": [ "evaluator", "analyst", @@ -12903,7 +13251,7 @@ } ] }, - "stageMd": "---\nname: evaluate\ndescription: Measure training effectiveness and analyze feedback\nhats: [evaluator, analyst, verifier]\nfix_hats: [classifier, evaluator, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: deliver\n discovery: delivery-log\n - stage: needs-analysis\n discovery: needs-assessment\n - stage: design\n discovery: curriculum-plan\n---\n\n# Evaluate\n\nThe closing stage of the training lifecycle: measure whether the program actually moved the needle on the gap needs-analysis identified. Work across Kirkpatrick levels (reaction, learning, behavior, results), produce statistically defensible findings, and generate the improvement recommendations the next iteration consumes.\n\n## Scope\n\nEffectiveness measurement and analysis: choosing the right Kirkpatrick levels, designing instruments (pre/post assessments, surveys, observation rubrics, on-the-job measures), collecting and analyzing the data, and mapping outcomes back to the original gap. Evaluate decides *whether the program worked and what to change* — not how it ran (deliver) or what was built (develop).\n\n## What to do\n\n- Pick the Kirkpatrick levels that actually answer the outcome question, not just the easy-to-measure ones.\n- Design instruments and collect data rigorously enough that the findings are defensible.\n- Run the analysis honestly — significance, effect size, cohort comparison, confounders — and tie outcomes back to the needs-analysis gap.\n- Turn findings into prioritized recommendations the next iteration can act on.\n\n## What NOT to do\n\n- Don't fix materials or re-run delivery — improvements land as recommendations for the next iteration.\n- Don't claim causation the data doesn't support; a wrong causal claim distorts every downstream decision.\n- Don't measure reaction alone and call the program effective.\n- Don't ship findings without the evidence and analysis that back them.\n", + "stageMd": "---\nname: evaluate\ndescription: Measure training effectiveness and analyze feedback\noptional: true\nhats: [evaluator, analyst, verifier]\nfix_hats: [classifier, evaluator, feedback-assessor]\nreview: ask\nelaboration: autonomous\ninputs:\n - stage: deliver\n discovery: delivery-log\n - stage: needs-analysis\n discovery: needs-assessment\n - stage: design\n discovery: curriculum-plan\n---\n\n# Evaluate\n\nThe closing stage of the training lifecycle: measure whether the program actually moved the needle on the gap needs-analysis identified. Work across Kirkpatrick levels (reaction, learning, behavior, results), produce statistically defensible findings, and generate the improvement recommendations the next iteration consumes.\n\n## Scope\n\nEffectiveness measurement and analysis: choosing the right Kirkpatrick levels, designing instruments (pre/post assessments, surveys, observation rubrics, on-the-job measures), collecting and analyzing the data, and mapping outcomes back to the original gap. Evaluate decides *whether the program worked and what to change* — not how it ran (deliver) or what was built (develop).\n\n## What to do\n\n- Pick the Kirkpatrick levels that actually answer the outcome question, not just the easy-to-measure ones.\n- Design instruments and collect data rigorously enough that the findings are defensible.\n- Run the analysis honestly — significance, effect size, cohort comparison, confounders — and tie outcomes back to the needs-analysis gap.\n- Turn findings into prioritized recommendations the next iteration can act on.\n\n## What NOT to do\n\n- Don't fix materials or re-run delivery — improvements land as recommendations for the next iteration.\n- Don't claim causation the data doesn't support; a wrong causal claim distorts every downstream decision.\n- Don't measure reaction alone and call the program effective.\n- Don't ship findings without the evidence and analysis that back them.\n", "stagePath": "plugin/studios/training/stages/evaluate/STAGE.md", "hats": { "analyst": { @@ -12992,6 +13340,18 @@ ], "reflections": {}, "operations": {}, + "intentReviewAgents": { + "cross-stage-consistency": { + "content": "---\nmodel: opus\nscope: intent\ninterpretation: lens\n---\n**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "frontmatter": { + "model": "opus", + "scope": "intent", + "interpretation": "lens" + }, + "body": "**Mandate:** Verify the intent's artifacts are internally consistent across stages. You are the only reviewer that sees the whole intent at once — your job is to catch seams that per-stage reviewers miss.\n\n**Check:**\n- The agent **MUST** verify that each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- The agent **MUST** verify that naming is consistent across stages — a concept named one thing upstream should carry the same name downstream\n- The agent **MUST** verify that stages' declared outputs exist at the paths their unit frontmatter promised\n- The agent **MUST** verify that the stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- The agent **MUST** verify that concerns raised by any stage's review were actually addressed (not silently ignored)\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n", + "path": "plugin/studios/vendor-management/intent-review-agents/cross-stage-consistency.md" + } + }, "templates": {}, "examples": {}, "preIntents": { @@ -13206,6 +13566,7 @@ "frontmatter": { "name": "negotiate", "description": "Negotiate terms and review contract provisions", + "optional": true, "hats": [ "negotiator", "legal-reviewer", @@ -13229,7 +13590,7 @@ } ] }, - "stageMd": "---\nname: negotiate\ndescription: Negotiate terms and review contract provisions\nhats: [negotiator, legal-reviewer, verifier]\nfix_hats: [classifier, negotiator, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: evaluate\n discovery: vendor-scorecard\n - stage: requirements\n discovery: rfp-document\n---\n\n# Negotiate\n\nConvert the selected vendor's evaluated position into agreed contractual terms — pricing, SLAs, exit provisions, data handling, liability, IP. The output is the master record of what the organization and the vendor agreed to; the downstream stages execute against it.\n\n## Scope\n\nTerm negotiation and risk review: settling commercial terms, defining SLAs with measurable thresholds, and reviewing the risk clauses (exit, IP, data, liability) for legal and commercial exposure. Negotiate decides *what both parties commit to* — not which vendor was chosen (evaluate) or standing the relationship up operationally (onboard).\n\n## What to do\n\n- Negotiate commercial terms and SLAs with measurable thresholds, not aspirational language no one can enforce.\n- Review risk clauses (exit, IP, data, liability) and categorize each by legal vs commercial exposure with recommended language.\n- Keep the terms document authoritative — onboard and monitor compare against exactly what's recorded here.\n- Surface non-standard terms for the right approval authority rather than absorbing them quietly.\n\n## What NOT to do\n\n- Don't re-score or re-shortlist vendors — a flawed selection is a revisit to evaluate.\n- Don't provision accounts or wire integrations; that's onboard.\n- Don't agree to an SLA without a measurable threshold behind it.\n- Don't leave a negotiated term out of the master record that downstream stages depend on.\n", + "stageMd": "---\nname: negotiate\ndescription: Negotiate terms and review contract provisions\noptional: true\nhats: [negotiator, legal-reviewer, verifier]\nfix_hats: [classifier, negotiator, feedback-assessor]\nreview: external\nelaboration: collaborative\ninputs:\n - stage: evaluate\n discovery: vendor-scorecard\n - stage: requirements\n discovery: rfp-document\n---\n\n# Negotiate\n\nConvert the selected vendor's evaluated position into agreed contractual terms — pricing, SLAs, exit provisions, data handling, liability, IP. The output is the master record of what the organization and the vendor agreed to; the downstream stages execute against it.\n\n## Scope\n\nTerm negotiation and risk review: settling commercial terms, defining SLAs with measurable thresholds, and reviewing the risk clauses (exit, IP, data, liability) for legal and commercial exposure. Negotiate decides *what both parties commit to* — not which vendor was chosen (evaluate) or standing the relationship up operationally (onboard).\n\n## What to do\n\n- Negotiate commercial terms and SLAs with measurable thresholds, not aspirational language no one can enforce.\n- Review risk clauses (exit, IP, data, liability) and categorize each by legal vs commercial exposure with recommended language.\n- Keep the terms document authoritative — onboard and monitor compare against exactly what's recorded here.\n- Surface non-standard terms for the right approval authority rather than absorbing them quietly.\n\n## What NOT to do\n\n- Don't re-score or re-shortlist vendors — a flawed selection is a revisit to evaluate.\n- Don't provision accounts or wire integrations; that's onboard.\n- Don't agree to an SLA without a measurable threshold behind it.\n- Don't leave a negotiated term out of the master record that downstream stages depend on.\n", "stagePath": "plugin/studios/vendor-management/stages/negotiate/STAGE.md", "hats": { "legal-reviewer": { @@ -13296,6 +13657,7 @@ "frontmatter": { "name": "onboard", "description": "Integrate vendor and complete setup", + "optional": true, "hats": [ "integrator", "coordinator", @@ -13315,7 +13677,7 @@ } ] }, - "stageMd": "---\nname: onboard\ndescription: Integrate vendor and complete setup\nhats: [integrator, coordinator, verifier]\nfix_hats: [classifier, integrator, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: negotiate\n discovery: negotiation-terms\n---\n\n# Onboard\n\nStand the vendor relationship up operationally: accounts provisioned, access granted, integrations wired, data flowing, users trained, escalation paths agreed. This is an operational stage — each unit is a concrete onboarding step with named preconditions, an action, and a verifiable post-condition.\n\n## Scope\n\nOperational activation of the agreed relationship: technical setup (accounts, access, integration, end-to-end testing) and organizational readiness (training, communication channels, named escalation contacts) against the negotiated terms. Onboard decides *that the vendor is operationally live* — not what the terms are (negotiate) or how the relationship performs over time (monitor).\n\n## What to do\n\n- Configure accounts, access, and integrations, then test end-to-end for both happy path and failure scenarios.\n- Document the integration architecture for the team that will maintain it after onboarding.\n- Track readiness across IT, business, and vendor workstreams so no workstream is silently incomplete.\n- Establish communication channels and escalation paths with named contacts before the relationship goes live.\n\n## What NOT to do\n\n- Don't reopen negotiated terms — a term that doesn't work operationally is feedback to negotiate.\n- Don't run ongoing SLA tracking or relationship reviews; that's monitor.\n- Don't mark an onboarding step done without its post-condition check passing.\n- Don't leave an escalation path or maintenance handoff undocumented.\n", + "stageMd": "---\nname: onboard\ndescription: Integrate vendor and complete setup\noptional: true\nhats: [integrator, coordinator, verifier]\nfix_hats: [classifier, integrator, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: negotiate\n discovery: negotiation-terms\n---\n\n# Onboard\n\nStand the vendor relationship up operationally: accounts provisioned, access granted, integrations wired, data flowing, users trained, escalation paths agreed. This is an operational stage — each unit is a concrete onboarding step with named preconditions, an action, and a verifiable post-condition.\n\n## Scope\n\nOperational activation of the agreed relationship: technical setup (accounts, access, integration, end-to-end testing) and organizational readiness (training, communication channels, named escalation contacts) against the negotiated terms. Onboard decides *that the vendor is operationally live* — not what the terms are (negotiate) or how the relationship performs over time (monitor).\n\n## What to do\n\n- Configure accounts, access, and integrations, then test end-to-end for both happy path and failure scenarios.\n- Document the integration architecture for the team that will maintain it after onboarding.\n- Track readiness across IT, business, and vendor workstreams so no workstream is silently incomplete.\n- Establish communication channels and escalation paths with named contacts before the relationship goes live.\n\n## What NOT to do\n\n- Don't reopen negotiated terms — a term that doesn't work operationally is feedback to negotiate.\n- Don't run ongoing SLA tracking or relationship reviews; that's monitor.\n- Don't mark an onboarding step done without its post-condition check passing.\n- Don't leave an escalation path or maintenance handoff undocumented.\n", "stagePath": "plugin/studios/vendor-management/stages/onboard/STAGE.md", "hats": { "coordinator": { @@ -13380,6 +13742,7 @@ "frontmatter": { "name": "monitor", "description": "Track vendor performance and SLA compliance", + "optional": true, "hats": [ "monitor", "relationship-manager", @@ -13403,7 +13766,7 @@ } ] }, - "stageMd": "---\nname: monitor\ndescription: Track vendor performance and SLA compliance\nhats: [monitor, relationship-manager, verifier]\nfix_hats: [classifier, monitor, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: onboard\n discovery: onboarding-checklist\n - stage: negotiate\n discovery: negotiation-terms\n---\n\n# Monitor\n\nTrack vendor performance against contractual SLAs and operational expectations over the life of the relationship. This is a recurring operational stage — each unit is a concrete monitoring observation or relationship review with preconditions, an action, and a verifiable post-condition.\n\n## Scope\n\nOngoing performance and relationship oversight: collecting and verifying SLA compliance data, calculating performance trends, identifying breaches and triggering contractual remedies, and assessing partnership health beyond the SLAs. Monitor decides *whether the live relationship is meeting its terms and intent* — it doesn't change those terms (negotiate) or stand the relationship up (onboard).\n\n## What to do\n\n- Collect and independently verify SLA compliance data for each contractual metric, not vendor-reported figures alone.\n- Calculate performance trends across measurement periods so a single bad month reads in context.\n- Identify breaches and trigger the contractual remedies the negotiated terms named.\n- Assess relationship health beyond compliance — strategic alignment, partnership signals, concerns surfaced before they become crises.\n\n## What NOT to do\n\n- Don't renegotiate or amend the contract — breach handling triggers the agreed remedy; new terms are a revisit to negotiate.\n- Don't redo onboarding setup; gaps there are feedback upstream.\n- Don't report SLA compliance on unverified vendor-supplied data.\n- Don't close a monitoring cycle without its post-condition check satisfied.\n", + "stageMd": "---\nname: monitor\ndescription: Track vendor performance and SLA compliance\noptional: true\nhats: [monitor, relationship-manager, verifier]\nfix_hats: [classifier, monitor, feedback-assessor]\nreview: auto\nelaboration: autonomous\ninputs:\n - stage: onboard\n discovery: onboarding-checklist\n - stage: negotiate\n discovery: negotiation-terms\n---\n\n# Monitor\n\nTrack vendor performance against contractual SLAs and operational expectations over the life of the relationship. This is a recurring operational stage — each unit is a concrete monitoring observation or relationship review with preconditions, an action, and a verifiable post-condition.\n\n## Scope\n\nOngoing performance and relationship oversight: collecting and verifying SLA compliance data, calculating performance trends, identifying breaches and triggering contractual remedies, and assessing partnership health beyond the SLAs. Monitor decides *whether the live relationship is meeting its terms and intent* — it doesn't change those terms (negotiate) or stand the relationship up (onboard).\n\n## What to do\n\n- Collect and independently verify SLA compliance data for each contractual metric, not vendor-reported figures alone.\n- Calculate performance trends across measurement periods so a single bad month reads in context.\n- Identify breaches and trigger the contractual remedies the negotiated terms named.\n- Assess relationship health beyond compliance — strategic alignment, partnership signals, concerns surfaced before they become crises.\n\n## What NOT to do\n\n- Don't renegotiate or amend the contract — breach handling triggers the agreed remedy; new terms are a revisit to negotiate.\n- Don't redo onboarding setup; gaps there are feedback upstream.\n- Don't report SLA compliance on unverified vendor-supplied data.\n- Don't close a monitoring cycle without its post-condition check satisfied.\n", "stagePath": "plugin/studios/vendor-management/stages/monitor/STAGE.md", "hats": { "monitor": { @@ -13466,5 +13829,59 @@ } } } + }, + "engineReviewBodies": { + "review": { + "continuity": { + "body": "**Mandate:** Verify the PLANNED wiring is sound. Every output a unit promises to produce must have a consumer named somewhere — a downstream unit's `inputs:`, a stage manifest, an upstream reference. Pre-execute check — work has not landed; you are auditing the planned graph for orphan-output PLANS before code lands.\n\n**Check:**\n- Every output declared in this stage's unit `outputs:` frontmatter has at least one consumer declared somewhere: a same-stage unit's `inputs:`, a downstream stage's expected inputs, OR a stage-scope manifest that the unit body names\n- Every input declared in this stage's unit `inputs:` frontmatter resolves — either a same-stage unit's `outputs:` upstream in the DAG, or an upstream stage's outputs that already exist on disk\n- DAG sanity — `depends_on` graph has no cycles, no orphan branches, no unit that's unreachable from a stage entrypoint\n- Cross-stage references in unit bodies (e.g. `stages//outputs/foo.tsx`) name files that EXIST on disk (the upstream stage has merged) or are declared in an upstream unit's `outputs:` (the planned wiring is consistent)\n\n**Why pre-execute:** orphan-output PLANS are cheap to fix at the spec level (delete the unit or wire it). Orphan-output REALITIES at post-execute mean the unit shipped code with no consumers — recovery means writing integration code or calling `haiku_coverage_acknowledge`. Same `continuity` mandate fires again at post-execute `dispatch_approval` to verify the BUILT outputs are wired; this pre-execute pass catches the planning failure before it becomes a building failure.\n\n**How to file findings:**\n- Per-orphan-plan or per-broken-reference: `haiku_feedback({ stage: \"\", origin: \"engine-review\", author: \"continuity\", severity: \"high\", source_ref: \"continuity-spec:\", target_unit: , target_invalidates: [\"continuity\"] })` (a broken planned reference is a concrete spec defect, so `high` — bump to `blocker` if building it as-is would yield a non-functional deliverable)\n- The fix is at the SPEC level (rewrite unit `outputs:` / `inputs:` / DAG), not the code level — there is no code yet.\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** propose deletion of planned outputs — the fix is wiring, not removal\n- The agent **MUST NOT** rewrite unit specs — file feedback, let the fix loop rewrite via the normal hat chain\n- The agent **MUST NOT** evaluate code (no code exists yet at pre-execute) — only audit specs\n- The agent **MUST NOT** flag stylistic concerns — concrete wiring failures only\n", + "path": "plugin/prompts/stage/review/dispatch_review/engine-bodies/continuity.eta.md" + }, + "cross-stage-consistency": { + "body": "**Mandate:** Verify this stage's PLANNED unit specs align with the actual outputs produced by upstream stages (already merged into intent main). Pre-execute check — work for THIS stage has not landed; upstream work has. Catch the seams where the plan drifts from the upstream reality before code lands.\n\n**Check:**\n- Naming consistency — names this stage's unit specs use for upstream concepts (components, routes, decisions, data shapes) match the names the upstream stages actually shipped\n- Reference consistency — when this stage's units reference upstream outputs (in `inputs:` or body prose), the upstream outputs exist on disk with those names\n- No upstream-requirement contradictions — this stage's units don't propose to undo or contradict decisions sealed by upstream stages' approvals\n- Progress alignment — the cumulative story of upstream stages + this stage's planned work makes sense against `intent.md` (no missing intermediate steps, no leaps the upstream didn't enable)\n\n**Why pre-execute:** semantic drift between the spec and merged upstream work is much cheaper to catch in the planning phase. If this stage's plan calls a component `new-cart-flow` but upstream design shipped `checkout-v2`, fixing it now is renaming text in unit specs. Fixing it post-execute is renaming text across produced code. The same `cross-stage-consistency` mandate fires again at post-execute `dispatch_approval` to verify the BUILT work aligns; this pre-execute pass catches the planning drift.\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved by upstream stages' gates\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** evaluate code (no code exists yet at pre-execute) — only audit unit specs against upstream merged work\n- The agent **MUST NOT** check file-graph wiring or orphan outputs — that is the separate `continuity` role's responsibility\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence from upstream only\n", + "path": "plugin/prompts/stage/review/dispatch_review/engine-bodies/cross_stage_consistency.eta.md" + }, + "spec": { + "body": "**Mandate:** Verify that this stage's unit SPECS conform to the spec the intent declared in `intent.md`. Pre-execute check — code has not landed yet; you are auditing the planned work.\n\n**Check:**\n- Every requirement scoped by `intent.md` that falls in this stage's responsibility is reflected in at least one unit's spec body or `outputs:` declaration\n- No silent scope expansion — units don't promise work that wasn't in the intent\n- No dropped requirements — every requirement the intent named for this stage has a unit addressing it\n- Declared unit outputs (in `outputs:` frontmatter) are consistent with what STAGE.md scopes for this stage\n\n**Why pre-execute:** catching a misaligned spec now is cheap (rewrite the spec). Catching it post-execute means the work has to be redone. The same `spec` mandate fires again at the post-execute `dispatch_approval` walk to verify the built work matches the spec — this pre-execute pass checks the spec itself.\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** propose new requirements — flag misses against the existing intent only\n- The agent **MUST NOT** edit unit specs — note divergence, file feedback, let the fix loop rewrite\n- The agent **MUST NOT** evaluate produced code (no code exists yet at pre-execute) — only audit specs\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence from the intent only\n", + "path": "plugin/prompts/stage/review/dispatch_review/engine-bodies/spec.eta.md" + } + }, + "approve": { + "continuity": { + "body": "**Mandate:** Verify the wiring is intact across all stages merged so far (this stage and upstream). Every output declared by a unit is consumed somewhere the stage graph requires it; every named asset that should render does render; no orphaned artifacts.\n\n**Check:**\n- Every produced output declared in this stage's unit frontmatter is referenced or consumed by a downstream artifact OR by another unit in this stage that the DAG promises will wire it up\n- Every named asset (component, route, function, decision record) that the spec says should render or be reachable actually does render or is reachable\n- No orphaned artifacts — files that exist but have zero references in the import graph or in the stage's output manifest\n- Cross-stage references resolve — a unit in this stage that names `stages//outputs/foo.tsx` actually finds that file\n\n**How to file findings:**\n- Per-orphan or per-broken-reference: `haiku_feedback({ stage: \"\", origin: \"engine-review\", author: \"continuity\", severity: \"high\", source_ref: \"continuity:\", target_unit: , target_invalidates: [] })` (a broken reference is a concrete defect, so `high` — bump to `blocker` if it makes the deliverable non-functional)\n- If an orphan is intentionally unwired (e.g. reserved for future use), the fix-loop's response is `haiku_coverage_acknowledge` — do NOT propose deletion.\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** propose deletion of orphan files — the fix is integration or acknowledgment, never silent removal\n- The agent **MUST NOT** rewrite spec content — note the broken wiring, do not author new specs\n- The agent **MUST NOT** flag stylistic concerns — concrete wiring failures only\n", + "path": "plugin/prompts/stage/approve/dispatch_approval/engine-bodies/continuity.eta.md" + }, + "cross-stage-consistency": { + "body": "**Mandate:** Verify the artifacts across all stages merged so far (this stage and upstream) are internally consistent. You are the only reviewer that sees the merged story at once — your job is to catch the seams per-stage reviewers miss.\n\n**Check:**\n- Each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- Naming is consistent across stages — a concept named one thing upstream carries the same name downstream\n- The stages merged so far make incremental progress toward the intent's stated goal (read `intent.md`) — partial delivery for finished stages is a finding\n- Concerns raised by any earlier stage's review were actually addressed downstream, not silently ignored\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n- The agent **MUST NOT** check file-graph wiring or orphan outputs — that is the separate `continuity` role's responsibility\n", + "path": "plugin/prompts/stage/approve/dispatch_approval/engine-bodies/cross_stage_consistency.eta.md" + }, + "spec": { + "body": "**Mandate:** Verify that this stage's outputs conform to the spec the intent declared in `intent.md`.\n\n**Check:**\n- Every requirement scoped by `intent.md` that falls in this stage's responsibility is reflected in the stage's unit specs and execution outputs\n- No silent scope expansion — work that wasn't in the intent shouldn't be in this stage's artifacts\n- No dropped requirements — every requirement the intent named for this stage has an artifact that addresses it\n- Where the spec named a specific output (file, function, decision, deliverable), that output exists and matches the named shape\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** propose new requirements — flag misses against the existing spec only\n- The agent **MUST NOT** redesign the spec — note divergence, do not author corrections\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence from the spec only\n", + "path": "plugin/prompts/stage/approve/dispatch_approval/engine-bodies/spec.eta.md" + } + }, + "intent": { + "continuity": { + "body": "**Mandate:** Verify the wiring across the merged intent is intact. Every output declared by any stage's unit is consumed somewhere the stage graph requires it; every named asset that should render does render; no orphaned artifacts.\n\n**Check:**\n- Every produced output declared in any stage's unit frontmatter is referenced or consumed where the stage graph requires it\n- Every named asset (component, route, function, decision record) that the spec says should render or be reachable actually does render or is reachable across the merged intent\n- No orphaned artifacts — files that exist but have zero references in the import graph or in any stage's output manifest\n- Cross-stage references resolve — a unit in stage B that names `stages/A/outputs/foo.tsx` actually finds that file\n\n**How to file findings:**\n- Per-orphan or per-broken-reference: `haiku_feedback({ intent: \"\", origin: \"engine-review\", author: \"continuity\", severity: \"high\", source_ref: \"continuity:\", target_unit: , target_invalidates: [] })` (intent scope — omit `stage`; a broken reference is a concrete defect, so `high` — bump to `blocker` if it makes the deliverable non-functional)\n- If an orphan is intentionally unwired (e.g. reserved for future use), the fix-loop's response is `haiku_coverage_acknowledge` — do NOT propose deletion.\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** propose deletion of orphan files — the fix is integration or acknowledgment, never silent removal\n- The agent **MUST NOT** rewrite spec content — note the broken wiring, do not author new specs\n- The agent **MUST NOT** flag stylistic concerns — concrete wiring failures only\n", + "path": "plugin/prompts/intent/review/intent_review/engine-bodies/continuity.eta.md" + }, + "cross-stage-consistency": { + "body": "**Mandate:** Verify the artifacts across every stage are internally consistent. You are the only reviewer that sees the whole intent at once — your job is to catch the seams per-stage reviewers miss.\n\n**Check:**\n- Each stage's outputs align with what upstream stages specified — no dropped requirements, no silent scope expansion\n- Naming is consistent across stages — a concept named one thing upstream carries the same name downstream\n- The stages collectively deliver the intent's stated goal (read `intent.md`) — partial delivery is a finding\n- Concerns raised by any stage's review were actually addressed downstream, not silently ignored\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** re-litigate decisions already approved at each stage's gate\n- The agent **MUST NOT** propose new features or scope additions\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence only\n- The agent **MUST NOT** check file-graph wiring or orphan outputs — that is the separate `continuity` role's responsibility\n", + "path": "plugin/prompts/intent/review/intent_review/engine-bodies/cross_stage_consistency.eta.md" + }, + "spec": { + "body": "**Mandate:** Verify that the merged intent's outputs conform to the spec the intent declared in `intent.md`.\n\n**Check:**\n- Every requirement scoped by `intent.md` is reflected in the merged stage outputs\n- No silent scope expansion — work that wasn't in the intent shouldn't be in the artifacts\n- No dropped requirements — every requirement the intent named has an artifact that addresses it\n- Where the spec named a specific output (file, function, decision, deliverable), that output exists and matches the named shape\n\n**Anti-patterns (RFC 2119):**\n- The agent **MUST NOT** propose new requirements — flag misses against the existing spec only\n- The agent **MUST NOT** redesign the spec — note divergence, do not author corrections\n- The agent **MUST NOT** flag stylistic preferences — concrete divergence from the spec only\n", + "path": "plugin/prompts/intent/review/intent_review/engine-bodies/spec.eta.md" + } + } + }, + "globalIntentReviewAgents": { + "delivery-verifier": { + "content": "---\ninterpretation: lens\n---\n**Mandate:** The agent **MUST** confirm the intent is actually *deliverable* before it closes — that the team's own CI gate is green on the delivery PR, and that every human who reviewed the PR has had their concerns addressed. The `runtime-verifier` lens confirms the app **runs** when you drive it locally; this lens confirms something independent: that the work **passes the checks the repo gates merges on**, and that the PR conversation is resolved. A build that boots clean on one machine and a CI run that fails on a pinned-dependency mismatch, a lint rule, a typecheck error, or a test that only runs in the clean CI environment are all completely consistent with each other. \"It works on my machine\" is not \"CI is green.\" Both gates must hold.\n\nThis lens's subject is the **delivery PR on the remote**, not the local artifacts. When you have provider access — an authenticated VCS CLI (`gh` for GitHub, `glab` for GitLab) or a configured provider — you read its checks and its review conversation, reply to and resolve review threads, and file findings for anything that isn't green or isn't addressed; the studio fix-hat loop lands the code, and you re-audit until the PR is clean. You cannot assume that access exists: there may be no remote, no CLI, or a CLI that isn't authenticated. The rule that survives every one of those cases is the same — **you never sign off on a delivery you couldn't actually verify.** A check you couldn't run is not a check that passed.\n\n## Resolve the delivery PR — and what you can prove without a provider\n\nWork the cheapest, most reliable signal first, because it needs no provider at all:\n\n- **Is the work already merged?** Ask local git (no CLI, no auth, no network): is the intent's branch `haiku//main` an ancestor of the repo's mainline (`git merge-base --is-ancestor haiku//main `)? **If it's merged, that IS your proof.** A host only lets a PR merge once its branch protection is satisfied — CI green, required reviews approved. The merge is the host's own gate firing; you don't need to re-read CI to trust it. Sign off (note \"delivered: `haiku//main` merged into `` — host gate satisfied\").\n\nIf it's NOT merged, you need to verify the open PR — and that's where provider access decides your path:\n\n- **No git remote at all** (`git remote -v` is empty) → there is genuinely nothing to gate on. Terminate clean: \"no remote — CI verification not applicable.\" This is a SKIP.\n- **A remote exists and you HAVE provider access** → resolve the delivery PR (`external_refs.git_pr` via `haiku_intent_get`, else `gh pr list --head haiku//main --state open` / `glab mr list`) and verify it (the sections below). **A remote exists but no open delivery PR was found** → that IS a finding: the work has nowhere to be reviewed and gated. File it and stop.\n- **A remote exists but you have NO provider access** (no CLI, or it isn't authenticated) and the branch is NOT merged → you are **blind to a gate that exists**, and that is NOT a SKIP. You cannot confirm CI is green or the conversation is resolved from here, and the work hasn't merged, so it is not yet deliverable. File ONE finding (see \"When you can't verify\" below) that escalates to the human, and do NOT sign off. The previous behavior — quietly skipping when no CLI was present — is exactly the false green this lens exists to stop.\n\n## Check CI is green\n\n- Wait for checks to finish, then read their conclusions: `gh pr checks --watch` (GitHub) blocks until every check completes. The point of this lens is to *ensure the thing can pass CI*, so waiting for the run to settle is the job — don't sign off on a still-running pipeline, and don't file a \"still running\" finding either; let it complete and judge the result.\n- **All checks success / neutral / skipped** → CI is clear of failures. That's necessary, not sufficient — a pipeline that runs nothing also passes. Green is half the question; the other half is the next section.\n- **Any check failed, cancelled, or timed out** → open ONE `haiku_feedback` per distinct failure. Pull the actual failure detail first (`gh run view --log-failed`, or the failing check's `detailsUrl`) so the finding is concrete: name the failing check, quote the failing command and the error excerpt, and point at the file/line when the log gives one. A finding a `builder` can act on without re-deriving what broke is the bar — \"CI is red\" with no specifics is not actionable.\n- **The PR must actually be mergeable, not just green.** Read its merge state (`gh pr view --json isDraft,mergeable,mergeStateStatus`; the `glab mr view` equivalent). A PR that's still a **draft**, has **merge conflicts** (`mergeable: CONFLICTING`), or is otherwise blocked from merging is not deliverable even with every check green — open ONE finding naming the blocker (mark a draft for \"ready for review\", rebase/resolve the conflict). Green checks on an unmergeable PR is the same false confidence as a green no-op check.\n\n## Check CI is meaningful, not just green\n\nA green checkmark on a pipeline that doesn't run anything is worse than no pipeline — it manufactures false confidence that nobody re-checks. Green answers \"did the checks that ran pass?\" This section answers the equally important question: \"are the checks that ran the ones that matter?\"\n\n- **The intent's own quality gates are the reference set.** Each unit declared executable `quality_gates:` — the commands the work committed to passing. Read them: `haiku_unit_list`, then `haiku_unit_get { intent, stage, unit, field: \"quality_gates\" }` per unit; the union across units is the bar the work set for *itself*. Those gates are exactly the checks that must have a home on the remote. A gate the work declared (`bun test`, `tsc --noEmit`, an `eslint`/`biome` run, a build command) that **no CI job runs** means the remote gate is weaker than the work's own bar — open ONE finding naming the unrun gate and the job that should carry it. The fix-hat loop wires it in.\n- **Read what the jobs actually do, not just their names.** Pull the pipeline config (`.github/workflows/*.yml`, `.gitlab-ci.yml`) and the run logs (`gh run view --log`). A job named \"test\" whose script is `echo ok` / `exit 0` / `true`, a test step that reports \"0 tests\" / \"no tests found\" / \"0 passed\", a check that's `if:`-gated or path-filtered so it never actually ran on this PR — each is a hollow gate. File a finding: the check exists but enforces nothing.\n- **No CI at all, but the work declared executable quality gates** → that IS a finding, not a skip. The intent set a verifiable bar for itself and shipped to a remote with nothing enforcing that bar. The fix-hat loop adds the pipeline that runs those gates.\n- **Legitimately nothing to enforce** → only when the intent declares NO executable quality gates (a docs / research / non-code deliverable with no commands to run) is \"no CI\" a real SKIP. State that plainly and don't invent a check the work never asked for.\n\n## Address the PR conversation\n\n- Read the review threads on the PR (`gh pr view --json reviews,comments`, and the per-thread review comments via `gh api repos/{owner}/{repo}/pulls//comments`). A GitLab PR uses the `glab` discussion equivalents.\n- For each **unresolved, actionable** review comment, open ONE `haiku_feedback` capturing it: quote the reviewer's comment, name the file and line it sits on, and link the thread. Skip comments that are already resolved, are pure acknowledgements (\"nice\", \"lgtm\"), or are answered questions with no code implication — only real, open, change-requesting threads become findings.\n- For each thread whose concern is **already satisfied in the PR's current commits** (because a previous pass's finding was fixed by the fix-hat loop), **reply on the thread** noting it's addressed and pointing at the commit that did it (`addressed in `), then **resolve the thread**. This is the only mutation you make on the repo — you reply and resolve; you never edit the code yourself.\n\n## When you can't verify (blind, but a PR exists)\n\nIf there's a git remote, the work isn't merged, and you have no way to reach the provider — no `gh`/`glab`, or it isn't authenticated, or no provider is configured — you cannot see CI or the conversation, and you must **not** treat that like the no-remote SKIP. A gate exists; you're just blind to it. Do this:\n\n- File ONE `haiku_feedback` (intent scope) titled e.g. *\"Delivery unverified — no provider access to confirm CI/review on `haiku//main`\"*. State plainly what you couldn't check and what the human needs to do: **confirm CI is green and the review conversation is resolved on the delivery PR, then merge it** — once it merges you'll detect that on the next pass (local git) and sign off — **or** make a provider CLI available/authenticated so you can verify directly.\n- Set `severity: medium`. This holds your sign-off (the engine won't stamp `delivery-verifier` while the finding is open) **without** spinning the studio fix-hat loop — there is no code defect to fix, and a fixer can't install or authenticate a CLI. It's a hold for the human, not work for a hat.\n- Do NOT sign off, and do NOT re-file the same finding on later passes — if it's already open from a prior tick (check the existing-feedback list), just terminate noting it's still awaiting the human. When the human merges or grants access, your next run resolves the real way (merge proof, or live CI verification).\n\n## Sign-off rule\n\nTerminate clean — which the engine reads as your approval — **only** when one of these is true:\n\n1. **The branch is merged** into mainline (the host's own gate already fired — see \"Resolve the delivery PR\"); or\n2. **You verified the open PR and it's fully clean**: CI is green (no failing checks), CI is **meaningful** (the intent's quality gates are actually run by the pipeline and no green check is a no-op), the PR is **mergeable** (not draft, no conflicts), **and** no unresolved, actionable review thread remains; or\n3. **There's genuinely nothing to gate** — no git remote, or a non-code deliverable with no executable quality gates.\n\nAnything else — a failing/hollow/missing check, an unmergeable PR, an open actionable comment, OR a live PR you couldn't verify because you're blind — means you file findings (or the blind-case hold) instead of signing off. A check you couldn't run is not a check that passed; do not sign off to get unstuck. The fix-hat loop lands the code corrections, the human resolves the blind case, and you run again and re-judge against the new state. Keep doing that until the delivery is genuinely clean — that, and only that, is a delivered intent.\n\n## Common failure modes to look for\n\n- The app boots locally and `runtime-verifier` signed off, but CI fails on something local boot never exercised — a typecheck error behind a path the dev server lazy-loads, a lint rule, a test that only runs in CI, a dependency that resolves locally but isn't pinned in the lockfile.\n- A flaky check that failed on an unrelated infra blip — re-read it after a re-run before filing; a genuinely flaky check is itself worth a finding, but don't file a phantom code bug for an infra timeout.\n- Review comments that were \"addressed\" in conversation but never in code — the thread reads resolved socially but the requested change never landed. Verify against the actual diff, not the reply text.\n- A pipeline that's green only because it tests the wrong thing — the unit declared `bun test` as its gate, but the only CI job runs a lint that never imports the new module. Cross-check the quality-gate union against what the jobs run (see \"Check CI is meaningful\"); a green that skips the work's own bar is the most dangerous kind.\n- The PR is mergeable and CI is green, but a requested change from a human reviewer is still open — green CI is necessary, not sufficient; the conversation has to be resolved too.\n", + "frontmatter": { + "interpretation": "lens" + }, + "body": "**Mandate:** The agent **MUST** confirm the intent is actually *deliverable* before it closes — that the team's own CI gate is green on the delivery PR, and that every human who reviewed the PR has had their concerns addressed. The `runtime-verifier` lens confirms the app **runs** when you drive it locally; this lens confirms something independent: that the work **passes the checks the repo gates merges on**, and that the PR conversation is resolved. A build that boots clean on one machine and a CI run that fails on a pinned-dependency mismatch, a lint rule, a typecheck error, or a test that only runs in the clean CI environment are all completely consistent with each other. \"It works on my machine\" is not \"CI is green.\" Both gates must hold.\n\nThis lens's subject is the **delivery PR on the remote**, not the local artifacts. When you have provider access — an authenticated VCS CLI (`gh` for GitHub, `glab` for GitLab) or a configured provider — you read its checks and its review conversation, reply to and resolve review threads, and file findings for anything that isn't green or isn't addressed; the studio fix-hat loop lands the code, and you re-audit until the PR is clean. You cannot assume that access exists: there may be no remote, no CLI, or a CLI that isn't authenticated. The rule that survives every one of those cases is the same — **you never sign off on a delivery you couldn't actually verify.** A check you couldn't run is not a check that passed.\n\n## Resolve the delivery PR — and what you can prove without a provider\n\nWork the cheapest, most reliable signal first, because it needs no provider at all:\n\n- **Is the work already merged?** Ask local git (no CLI, no auth, no network): is the intent's branch `haiku//main` an ancestor of the repo's mainline (`git merge-base --is-ancestor haiku//main `)? **If it's merged, that IS your proof.** A host only lets a PR merge once its branch protection is satisfied — CI green, required reviews approved. The merge is the host's own gate firing; you don't need to re-read CI to trust it. Sign off (note \"delivered: `haiku//main` merged into `` — host gate satisfied\").\n\nIf it's NOT merged, you need to verify the open PR — and that's where provider access decides your path:\n\n- **No git remote at all** (`git remote -v` is empty) → there is genuinely nothing to gate on. Terminate clean: \"no remote — CI verification not applicable.\" This is a SKIP.\n- **A remote exists and you HAVE provider access** → resolve the delivery PR (`external_refs.git_pr` via `haiku_intent_get`, else `gh pr list --head haiku//main --state open` / `glab mr list`) and verify it (the sections below). **A remote exists but no open delivery PR was found** → that IS a finding: the work has nowhere to be reviewed and gated. File it and stop.\n- **A remote exists but you have NO provider access** (no CLI, or it isn't authenticated) and the branch is NOT merged → you are **blind to a gate that exists**, and that is NOT a SKIP. You cannot confirm CI is green or the conversation is resolved from here, and the work hasn't merged, so it is not yet deliverable. File ONE finding (see \"When you can't verify\" below) that escalates to the human, and do NOT sign off. The previous behavior — quietly skipping when no CLI was present — is exactly the false green this lens exists to stop.\n\n## Check CI is green\n\n- Wait for checks to finish, then read their conclusions: `gh pr checks --watch` (GitHub) blocks until every check completes. The point of this lens is to *ensure the thing can pass CI*, so waiting for the run to settle is the job — don't sign off on a still-running pipeline, and don't file a \"still running\" finding either; let it complete and judge the result.\n- **All checks success / neutral / skipped** → CI is clear of failures. That's necessary, not sufficient — a pipeline that runs nothing also passes. Green is half the question; the other half is the next section.\n- **Any check failed, cancelled, or timed out** → open ONE `haiku_feedback` per distinct failure. Pull the actual failure detail first (`gh run view --log-failed`, or the failing check's `detailsUrl`) so the finding is concrete: name the failing check, quote the failing command and the error excerpt, and point at the file/line when the log gives one. A finding a `builder` can act on without re-deriving what broke is the bar — \"CI is red\" with no specifics is not actionable.\n- **The PR must actually be mergeable, not just green.** Read its merge state (`gh pr view --json isDraft,mergeable,mergeStateStatus`; the `glab mr view` equivalent). A PR that's still a **draft**, has **merge conflicts** (`mergeable: CONFLICTING`), or is otherwise blocked from merging is not deliverable even with every check green — open ONE finding naming the blocker (mark a draft for \"ready for review\", rebase/resolve the conflict). Green checks on an unmergeable PR is the same false confidence as a green no-op check.\n\n## Check CI is meaningful, not just green\n\nA green checkmark on a pipeline that doesn't run anything is worse than no pipeline — it manufactures false confidence that nobody re-checks. Green answers \"did the checks that ran pass?\" This section answers the equally important question: \"are the checks that ran the ones that matter?\"\n\n- **The intent's own quality gates are the reference set.** Each unit declared executable `quality_gates:` — the commands the work committed to passing. Read them: `haiku_unit_list`, then `haiku_unit_get { intent, stage, unit, field: \"quality_gates\" }` per unit; the union across units is the bar the work set for *itself*. Those gates are exactly the checks that must have a home on the remote. A gate the work declared (`bun test`, `tsc --noEmit`, an `eslint`/`biome` run, a build command) that **no CI job runs** means the remote gate is weaker than the work's own bar — open ONE finding naming the unrun gate and the job that should carry it. The fix-hat loop wires it in.\n- **Read what the jobs actually do, not just their names.** Pull the pipeline config (`.github/workflows/*.yml`, `.gitlab-ci.yml`) and the run logs (`gh run view --log`). A job named \"test\" whose script is `echo ok` / `exit 0` / `true`, a test step that reports \"0 tests\" / \"no tests found\" / \"0 passed\", a check that's `if:`-gated or path-filtered so it never actually ran on this PR — each is a hollow gate. File a finding: the check exists but enforces nothing.\n- **No CI at all, but the work declared executable quality gates** → that IS a finding, not a skip. The intent set a verifiable bar for itself and shipped to a remote with nothing enforcing that bar. The fix-hat loop adds the pipeline that runs those gates.\n- **Legitimately nothing to enforce** → only when the intent declares NO executable quality gates (a docs / research / non-code deliverable with no commands to run) is \"no CI\" a real SKIP. State that plainly and don't invent a check the work never asked for.\n\n## Address the PR conversation\n\n- Read the review threads on the PR (`gh pr view --json reviews,comments`, and the per-thread review comments via `gh api repos/{owner}/{repo}/pulls//comments`). A GitLab PR uses the `glab` discussion equivalents.\n- For each **unresolved, actionable** review comment, open ONE `haiku_feedback` capturing it: quote the reviewer's comment, name the file and line it sits on, and link the thread. Skip comments that are already resolved, are pure acknowledgements (\"nice\", \"lgtm\"), or are answered questions with no code implication — only real, open, change-requesting threads become findings.\n- For each thread whose concern is **already satisfied in the PR's current commits** (because a previous pass's finding was fixed by the fix-hat loop), **reply on the thread** noting it's addressed and pointing at the commit that did it (`addressed in `), then **resolve the thread**. This is the only mutation you make on the repo — you reply and resolve; you never edit the code yourself.\n\n## When you can't verify (blind, but a PR exists)\n\nIf there's a git remote, the work isn't merged, and you have no way to reach the provider — no `gh`/`glab`, or it isn't authenticated, or no provider is configured — you cannot see CI or the conversation, and you must **not** treat that like the no-remote SKIP. A gate exists; you're just blind to it. Do this:\n\n- File ONE `haiku_feedback` (intent scope) titled e.g. *\"Delivery unverified — no provider access to confirm CI/review on `haiku//main`\"*. State plainly what you couldn't check and what the human needs to do: **confirm CI is green and the review conversation is resolved on the delivery PR, then merge it** — once it merges you'll detect that on the next pass (local git) and sign off — **or** make a provider CLI available/authenticated so you can verify directly.\n- Set `severity: medium`. This holds your sign-off (the engine won't stamp `delivery-verifier` while the finding is open) **without** spinning the studio fix-hat loop — there is no code defect to fix, and a fixer can't install or authenticate a CLI. It's a hold for the human, not work for a hat.\n- Do NOT sign off, and do NOT re-file the same finding on later passes — if it's already open from a prior tick (check the existing-feedback list), just terminate noting it's still awaiting the human. When the human merges or grants access, your next run resolves the real way (merge proof, or live CI verification).\n\n## Sign-off rule\n\nTerminate clean — which the engine reads as your approval — **only** when one of these is true:\n\n1. **The branch is merged** into mainline (the host's own gate already fired — see \"Resolve the delivery PR\"); or\n2. **You verified the open PR and it's fully clean**: CI is green (no failing checks), CI is **meaningful** (the intent's quality gates are actually run by the pipeline and no green check is a no-op), the PR is **mergeable** (not draft, no conflicts), **and** no unresolved, actionable review thread remains; or\n3. **There's genuinely nothing to gate** — no git remote, or a non-code deliverable with no executable quality gates.\n\nAnything else — a failing/hollow/missing check, an unmergeable PR, an open actionable comment, OR a live PR you couldn't verify because you're blind — means you file findings (or the blind-case hold) instead of signing off. A check you couldn't run is not a check that passed; do not sign off to get unstuck. The fix-hat loop lands the code corrections, the human resolves the blind case, and you run again and re-judge against the new state. Keep doing that until the delivery is genuinely clean — that, and only that, is a delivered intent.\n\n## Common failure modes to look for\n\n- The app boots locally and `runtime-verifier` signed off, but CI fails on something local boot never exercised — a typecheck error behind a path the dev server lazy-loads, a lint rule, a test that only runs in CI, a dependency that resolves locally but isn't pinned in the lockfile.\n- A flaky check that failed on an unrelated infra blip — re-read it after a re-run before filing; a genuinely flaky check is itself worth a finding, but don't file a phantom code bug for an infra timeout.\n- Review comments that were \"addressed\" in conversation but never in code — the thread reads resolved socially but the requested change never landed. Verify against the actual diff, not the reply text.\n- A pipeline that's green only because it tests the wrong thing — the unit declared `bun test` as its gate, but the only CI job runs a lint that never imports the new module. Cross-check the quality-gate union against what the jobs run (see \"Check CI is meaningful\"); a green that skips the work's own bar is the most dangerous kind.\n- The PR is mergeable and CI is green, but a requested change from a human reviewer is still open — green CI is necessary, not sufficient; the conversation has to be resolved too.\n", + "path": "plugin/intent-review-agents/delivery-verifier.md" + } } } \ No newline at end of file From 1eebc22050c9395971d66f463efb67e10910e51c Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 10:38:39 -0600 Subject: [PATCH 19/24] feat(browse): show active time on a unit (sum of hat-dispatch durations) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The unit "Duration" stat measured earliest-iteration-start to latest-end — a wall clock that counts every idle gap (waiting on the user, queueing, time between bolts). Each iteration carries `started_at`/`completed_at`, so sum each hat-dispatch's own duration instead: that's the actual working time. The stat tile now leads with "Active" (the summed dispatch time) and keeps the wall-clock span as secondary context ("21h elapsed · "). Falls back to the old Duration/Elapsed when no iteration carries both stamps (v3 units). Adds a `formatDurationMs(ms)` helper to @haiku/shared (minutes-aware, seconds for sub-minute totals) alongside the existing span-based formatDuration. Verified live (Playwright, worker-new-badge unit-001): ACTIVE 10m vs 21h wall-clock — the unit had ~10m of hat work but sat for ~21h. Co-Authored-By: Claude Opus 4.7 --- packages/shared/src/format.ts | 15 ++++ packages/shared/src/index.ts | 7 +- .../app/browse/components/UnitDetailView.tsx | 75 +++++++++++++++---- website/lib/browse/types.ts | 7 +- 4 files changed, 87 insertions(+), 17 deletions(-) diff --git a/packages/shared/src/format.ts b/packages/shared/src/format.ts index c3878f252..5de5b039d 100644 --- a/packages/shared/src/format.ts +++ b/packages/shared/src/format.ts @@ -23,6 +23,21 @@ export function formatDuration( return `${mins}m` } +/** Format a duration given directly in milliseconds (e.g. summed active time + * across iterations). Unlike formatDuration this takes a number, not a span, + * and shows minutes alongside hours / seconds for sub-minute totals so a short + * active time doesn't collapse to "0m". */ +export function formatDurationMs(ms: number): string { + if (!Number.isFinite(ms) || ms <= 0) return "0s" + const days = Math.floor(ms / 86400000) + const hours = Math.floor((ms % 86400000) / 3600000) + const mins = Math.floor((ms % 3600000) / 60000) + if (days > 0) return hours > 0 ? `${days}d ${hours}h` : `${days}d` + if (hours > 0) return mins > 0 ? `${hours}h ${mins}m` : `${hours}h` + if (mins > 0) return `${mins}m` + return `${Math.floor(ms / 1000)}s` +} + export function formatDate(iso: string | null): string { if (!iso) return "" const d = new Date(iso) diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 8ab617ef5..9ed8b1c30 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -20,7 +20,12 @@ export type { // between the MCP engine and the website browse UI. export { deriveStageStatePure } from "./derived-stage-state" // Formatting utilities -export { formatDate, formatDuration, titleCase } from "./format" +export { + formatDate, + formatDuration, + formatDurationMs, + titleCase, +} from "./format" // Frontmatter YAML utilities (duplicate-key recovery) export { dedupeFrontmatterKeys, diff --git a/website/app/browse/components/UnitDetailView.tsx b/website/app/browse/components/UnitDetailView.tsx index 62f03527f..40581ea12 100644 --- a/website/app/browse/components/UnitDetailView.tsx +++ b/website/app/browse/components/UnitDetailView.tsx @@ -16,7 +16,11 @@ import type { HaikuFeedback, HaikuUnit, } from "@/lib/browse/types" -import { formatDate, formatDuration } from "@/lib/browse/types" +import { + formatDate, + formatDuration, + formatDurationMs, +} from "@/lib/browse/types" import { AssetLightbox } from "./AssetLightbox" import { AuthenticatedMedia } from "./AuthenticatedMedia" import { FilePreview, isTextFile } from "./FilePreview" @@ -215,20 +219,37 @@ export function UnitDetailView({ {titleCase(unit.status)}
- {unit.startedAt && ( -
-
- {unit.completedAt ? "Duration" : "Elapsed"} -
-
- {formatDuration(unit.startedAt, unit.completedAt)} -
-
- {formatDate(unit.startedAt)} - {unit.completedAt ? ` — ${formatDate(unit.completedAt)}` : ""} -
-
- )} + {unit.startedAt && + (() => { + const active = unitActiveMs(unit.raw) + const wall = formatDuration(unit.startedAt, unit.completedAt) + return ( +
+
+ {active != null + ? "Active" + : unit.completedAt + ? "Duration" + : "Elapsed"} +
+
+ {active != null ? formatDurationMs(active) : wall} +
+
+ {active != null && wall ? `${wall} elapsed · ` : ""} + {formatDate(unit.startedAt)} + {unit.completedAt ? ` — ${formatDate(unit.completedAt)}` : ""} +
+
+ ) + })()}
{/* Completion Criteria */} @@ -998,6 +1019,30 @@ function unitQualityGates(raw: Record): QualityGate[] { ) } +/** Active working time on a unit: the sum of each hat-dispatch's own duration + * (iteration `completed_at − started_at`). Excludes the idle gaps between + * dispatches — waiting on the user, queueing, time between bolts — that inflate + * a naive start→end wall clock. Null when no iteration carries both stamps. */ +function unitActiveMs(raw: Record): number | null { + const its = raw.iterations + if (!Array.isArray(its)) return null + let sum = 0 + let counted = 0 + for (const it of its) { + if (!it || typeof it !== "object") continue + const s = (it as { started_at?: unknown }).started_at + const e = (it as { completed_at?: unknown }).completed_at + if (typeof s === "string" && typeof e === "string") { + const d = new Date(e).getTime() - new Date(s).getTime() + if (Number.isFinite(d) && d >= 0) { + sum += d + counted++ + } + } + } + return counted > 0 ? sum : null +} + /** * Per-unit review + approval sign-offs. The cursor stamps `reviews.` as * each pre-execute reviewer signs the spec and `approvals.` as each diff --git a/website/lib/browse/types.ts b/website/lib/browse/types.ts index 734c61614..d1b07e64e 100644 --- a/website/lib/browse/types.ts +++ b/website/lib/browse/types.ts @@ -19,7 +19,12 @@ export type { } from "@haiku/shared" // Re-export shared utilities from @haiku/shared -export { formatDate, formatDuration, titleCase } from "@haiku/shared" +export { + formatDate, + formatDuration, + formatDurationMs, + titleCase, +} from "@haiku/shared" // Website-specific types and utilities remain here From 5f4e399ffd10a90cddcf33485be3080a14b1e905 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 10:42:54 -0600 Subject: [PATCH 20/24] fix(browse): wire unit quick-stats to real data + drop irrelevant tiles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The unit stat tiles read dead v4 fields: `bolt` and `hat` were removed from the unit FM (the schema says so outright — both derive from the iterations log now), so the browse read `data.bolt`/`data.hat` and always showed "Bolt 0" / "Hat —". Criteria parsed body checkboxes most v4 units don't use, so it showed "0/0". - Derive `bolt` = iteration count (hat dispatches) and `hat` = the most recent iteration's hat in the unit parse, so both carry real values (also fixes the KanbanView card, which already guarded on them). - Unit detail tiles now render only when they carry signal: Criteria only when the unit declared checkbox criteria; Iterations only when the unit has run; Current Hat only while in-flight (a completed unit's hats are in the Hat history stepper). Relabel "Bolt" -> "Iterations" (it's a dispatch count, not the removed bolt field); Kanban "Bolt N" -> "N iters". Verified live (Playwright, completed worker-new-badge unit-001): tiles are now Iterations 3 · Status Completed · Active 10m — no more Bolt 0 / Hat — / 0/0. Co-Authored-By: Claude Opus 4.7 --- website/app/browse/components/KanbanView.tsx | 6 +- .../app/browse/components/UnitDetailView.tsx | 55 +++++++++++-------- website/lib/browse/types.ts | 17 +++++- 3 files changed, 52 insertions(+), 26 deletions(-) diff --git a/website/app/browse/components/KanbanView.tsx b/website/app/browse/components/KanbanView.tsx index 87201d9c2..c3ff74389 100644 --- a/website/app/browse/components/KanbanView.tsx +++ b/website/app/browse/components/KanbanView.tsx @@ -268,7 +268,11 @@ export function IntentKanban({ intent, onSelectUnit }: IntentKanbanProps) { {titleCase(unit.stageName)} {unit.hat && Hat: {titleCase(unit.hat)}} - {unit.bolt > 0 && Bolt {unit.bolt}} + {unit.bolt > 0 && ( + + {unit.bolt} iter{unit.bolt === 1 ? "" : "s"} + + )}
{total > 0 && (
diff --git a/website/app/browse/components/UnitDetailView.tsx b/website/app/browse/components/UnitDetailView.tsx index 40581ea12..ae6dab4dc 100644 --- a/website/app/browse/components/UnitDetailView.tsx +++ b/website/app/browse/components/UnitDetailView.tsx @@ -178,39 +178,48 @@ export function UnitDetailView({

- {/* Quick Stats */} + {/* Quick Stats — only tiles that carry real signal for this unit. + Criteria shows only when the unit declared checkbox criteria; + Iterations (hat dispatches) only when the unit has run; Hat (the + current hat) only while in-flight — a completed unit's hats live + in the Hat history stepper below. */}
-
-
- Criteria -
-
- {checkedCount} - /{totalCriteria} -
- {totalCriteria > 0 && ( + {totalCriteria > 0 && ( +
+
+ Criteria +
+
+ {checkedCount} + /{totalCriteria} +
- )} -
-
-
- Bolt
-
{unit.bolt || 0}
-
-
-
- Hat + )} + {unit.bolt > 0 && ( +
+
+ Iterations +
+
{unit.bolt}
+
hat dispatches
-
- {unit.hat ? titleCase(unit.hat) : "—"} + )} + {unit.status === "active" && unit.hat && ( +
+
+ Current Hat +
+
+ {titleCase(unit.hat)} +
-
+ )}
Status diff --git a/website/lib/browse/types.ts b/website/lib/browse/types.ts index d1b07e64e..85e92a091 100644 --- a/website/lib/browse/types.ts +++ b/website/lib/browse/types.ts @@ -214,8 +214,12 @@ export function parseUnit( refs: (data.refs as string[]) || [], inputs: (data.inputs as string[]) || [], outputs: (data.outputs as string[]) || [], - bolt: (data.bolt as number) || 0, - hat: (data.hat as string) || "", + // v4 dropped the top-level `bolt`/`hat` FM fields — both derive from the + // append-only iterations log now. `bolt` = number of hat dispatches; + // `hat` = the most recent (current for an in-flight unit, terminal for a + // completed one). Reading `data.bolt`/`data.hat` would always be 0/"". + bolt: Array.isArray(data.iterations) ? data.iterations.length : 0, + hat: lastIterationHat(data.iterations), startedAt: (data.started_at as string) || null, completedAt: (data.completed_at as string) || null, criteria: parseCriteria(content), @@ -224,6 +228,15 @@ export function parseUnit( } } +/** The most recent iteration's hat — the current hat for an in-flight unit, the + * terminal hat for a completed one. "" when there are no iterations. */ +function lastIterationHat(iterations: unknown): string { + if (!Array.isArray(iterations) || iterations.length === 0) return "" + const last = iterations[iterations.length - 1] + const hat = (last as { hat?: unknown })?.hat + return typeof hat === "string" ? hat : "" +} + export function parseCriteria( content: string, ): Array<{ text: string; checked: boolean }> { From 9986112c403916c5c31896e21ad0a09eaec0846e Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 10:47:54 -0600 Subject: [PATCH 21/24] feat(browse): show created date on list-view intent cards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The card only rendered a date when `started_at` was present (a start→end span + duration), so list intents that carry `created_at` but no `started_at` showed no date at all — and the list sorts newest-first by created date, so it was the one temporal field worth surfacing. Add a "Created: " to the meta row (`createdAt ?? startedAt`). Verified live (Playwright, GitLab monorepo): every card shows its created date (May 26 / May 21 / May 19 …), matching the newest-first order. Co-Authored-By: Claude Opus 4.7 --- website/app/browse/components/PortfolioView.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/website/app/browse/components/PortfolioView.tsx b/website/app/browse/components/PortfolioView.tsx index f549a7435..31f95522f 100644 --- a/website/app/browse/components/PortfolioView.tsx +++ b/website/app/browse/components/PortfolioView.tsx @@ -890,6 +890,14 @@ export function PortfolioView({ {intent.mode} + {(intent.createdAt || intent.startedAt) && ( + + Created:{" "} + + {formatDate(intent.createdAt ?? intent.startedAt)} + + + )} {intent.branch && ( Date: Thu, 28 May 2026 10:50:58 -0600 Subject: [PATCH 22/24] fix(browse): stop Relay duplicate-id warning on the intent tree fetch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitLab's `TreeEntry.id` is content-addressed (the blob SHA), so two identical files at different paths — e.g. a DESIGN-BRIEF.md copied into both `knowledge/` and `stages/design/` — come back with the SAME id and different `path`. The compiled Relay artifact auto-injects `id` on the Node-typed tree entries, so RelayResponseNormalizer floods the console with "Invalid record … conflicting field … same id" and lets one path clobber the other. The recursive intent-tree fetch only reads `name`/`path` into plain objects and never touches the Relay store, so route it through `rawGraphql` (the same raw POST the lean list loaders use) requesting exactly `name`/`path` — no `id`, no normalization, no warning. Drop the now-unused artifact import; the generated `$data` type still types the response. Verified live (Playwright, location-timesheet-summary — the intent from the report): detail view loads with 0 console errors and no RelayResponseNormalizer warning. Co-Authored-By: Claude Opus 4.7 --- website/lib/browse/gitlab-provider.ts | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/website/lib/browse/gitlab-provider.ts b/website/lib/browse/gitlab-provider.ts index 476669766..509233d3c 100644 --- a/website/lib/browse/gitlab-provider.ts +++ b/website/lib/browse/gitlab-provider.ts @@ -3,7 +3,6 @@ import { createRelayEnvironment } from "./graphql/environment" import type { operationsBatchBlobsQuery$data } from "./graphql/gitlab/__generated__/operationsBatchBlobsQuery.graphql" import BatchBlobsQuery from "./graphql/gitlab/__generated__/operationsBatchBlobsQuery.graphql" import type { operationsIntentTreeQuery$data } from "./graphql/gitlab/__generated__/operationsIntentTreeQuery.graphql" -import IntentTreeQuery from "./graphql/gitlab/__generated__/operationsIntentTreeQuery.graphql" import type { operationsListBranchNamesQuery$data } from "./graphql/gitlab/__generated__/operationsListBranchNamesQuery.graphql" import ListBranchNamesQuery from "./graphql/gitlab/__generated__/operationsListBranchNamesQuery.graphql" import ListFilesQueryArtifact from "./graphql/gitlab/__generated__/operationsListFilesQuery.graphql" @@ -600,12 +599,26 @@ export class GitLabProvider implements BrowseProvider { const basePath = `.haiku/intents/${slug}` const refLabel = ref || "HEAD" - // Step 1: Recursive tree listing - const treeCacheKey = `gl:${this.host}:${this.projectPath}:intentTree:${slug}:${refLabel}` - const treeData = await this.cachedQuery( - IntentTreeQuery, + // Step 1: Recursive tree listing. Raw GraphQL (not the Relay artifact) on + // purpose: GitLab's TreeEntry `id` is content-addressed (the blob SHA), so + // two identical files at different paths (e.g. a DESIGN-BRIEF.md copied into + // both `knowledge/` and `stages/design/`) return the SAME id with different + // `path`. The Relay artifact auto-injects `id` for the Node-typed entries, + // and the normalizer then warns "conflicting field ... same id" and lets one + // path clobber the other. We only read `name`/`path` into plain objects (no + // Relay store use), so request exactly those — no id, no normalization. + const treeData = await this.rawGraphql( + `query($fullPath: ID!, $path: String!, $ref: String) { + project(fullPath: $fullPath) { + repository { + tree(path: $path, ref: $ref, recursive: true) { + blobs(first: 500) { nodes { name path } } + trees(first: 100) { nodes { name path } } + } + } + } + }`, { fullPath: this.projectPath, path: basePath, ref }, - treeCacheKey, ) const allBlobs = ( From 15698aff1234f307d65ad9485c86f434aa061ff5 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 10:58:02 -0600 Subject: [PATCH 23/24] feat(browse): path-shaped loading skeletons + /unit/ path keyword MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every browse page flashed the portfolio (list) skeleton while loading, even a deep link straight to a unit. Now the skeleton matches the page being loaded. - New BrowseSkeletons.tsx: list / intent / stage / unit skeletons mirroring each view's real layout, with a `BrowseSkeleton({ location })` picker (unit > stage > intent > list). - RemoteBrowseView's init (provider-auth) loading and PortfolioView's deep-link-detail loading both render the path-aware skeleton instead of the hardcoded list skeleton. (Wired up the previously-unused loadingDetail flag for the deep-link guard.) Pathing: the unit segment is now keyword-delimited like its siblings — `…/intent//stage//unit//` instead of the positional `…/stage///`. buildBrowseUrl emits the `unit/` form; parseBrowsePath accepts it and still parses the legacy positional + pre-stage-keyword forms for back-compat. Verified live (Playwright, GitLab monorepo): the new `/unit/` URL resolves to the unit detail (breadcrumb Development › Unit 001); during load the page is the unit-width container, not the portfolio list. Co-Authored-By: Claude Opus 4.7 --- .../app/browse/components/BrowseSkeletons.tsx | 171 ++++++++++++++++++ .../app/browse/components/PortfolioView.tsx | 9 +- .../browse/components/RemoteBrowseView.tsx | 28 +-- website/lib/browse/url.ts | 24 ++- 4 files changed, 201 insertions(+), 31 deletions(-) create mode 100644 website/app/browse/components/BrowseSkeletons.tsx diff --git a/website/app/browse/components/BrowseSkeletons.tsx b/website/app/browse/components/BrowseSkeletons.tsx new file mode 100644 index 000000000..f550fcbfa --- /dev/null +++ b/website/app/browse/components/BrowseSkeletons.tsx @@ -0,0 +1,171 @@ +"use client" + +// Path-aware loading skeletons for the browse views. The skeleton shown while a +// page loads should match the page being loaded — a deep link to a unit should +// flash a unit-shaped skeleton, not the portfolio list. `BrowseSkeleton` picks +// the right shape from the parsed location (unit > stage > intent > list). + +import type { BrowseLocation } from "@/lib/browse/url" + +/** Solid placeholder bar (stronger tone — titles, primary values). */ +function Bar({ className }: { className?: string }) { + return ( +
+ ) +} +/** Faint placeholder bar (secondary meta). */ +function Faint({ className }: { className?: string }) { + return ( +
+ ) +} + +function Card({ children }: { children: React.ReactNode }) { + return ( +
+ {children} +
+ ) +} + +/** Portfolio list — header + a column of intent-card rows. */ +export function ListSkeleton() { + return ( +
+
+ + + +
+
+ {[1, 2, 3, 4].map((i) => ( +
+
+
+ +
+ + + +
+
+ +
+ +
+ ))} +
+
+ ) +} + +/** Intent overview — title, meta row, a pipeline strip, and a few stage cards. */ +export function IntentSkeleton() { + return ( +
+ +
+ + +
+
+ + + +
+ {/* pipeline strip */} +
+ {[1, 2, 3, 4, 5].map((i) => ( + + ))} +
+
+ {[1, 2, 3].map((i) => ( + + + + + + ))} +
+
+ ) +} + +/** Stage detail — breadcrumb, stage title, and a column of unit rows. */ +export function StageSkeleton() { + return ( +
+ + + + +
+ {[1, 2, 3, 4].map((i) => ( +
+
+ + +
+ +
+ ))} +
+
+ ) +} + +/** Unit detail — breadcrumb, header, the quick-stat tile row, and sections. */ +export function UnitSkeleton() { + return ( +
+ +
+ + +
+ {/* quick-stat tiles */} +
+ {[1, 2, 3].map((i) => ( + + + + + ))} +
+ {/* sections */} + {[1, 2].map((i) => ( +
+ + + + + + +
+ ))} +
+ ) +} + +/** Pick the skeleton that matches the page being loaded. */ +export function BrowseSkeleton({ + location, +}: { + location?: BrowseLocation | null +}) { + if (location?.unit) return + if (location?.stage) return + if (location?.intent) return + return +} diff --git a/website/app/browse/components/PortfolioView.tsx b/website/app/browse/components/PortfolioView.tsx index 31f95522f..c68d30470 100644 --- a/website/app/browse/components/PortfolioView.tsx +++ b/website/app/browse/components/PortfolioView.tsx @@ -25,6 +25,7 @@ import type { import { formatDate, formatDuration } from "@/lib/browse/types" import type { BrowseLocation } from "@/lib/browse/url" import { buildBrowseUrl } from "@/lib/browse/url" +import { BrowseSkeleton } from "./BrowseSkeletons" import { IntentDetailView } from "./IntentDetailView" import { PortfolioKanban } from "./KanbanView" import type { SearchSelection } from "./SearchBar" @@ -81,7 +82,7 @@ export function PortfolioView({ useState(null) const [loading, setLoading] = useState(true) const [loadingMore, setLoadingMore] = useState(false) - const [_loadingDetail, setLoadingDetail] = useState(false) + const [loadingDetail, setLoadingDetail] = useState(false) const [viewMode, setViewMode] = useState<"list" | "board">( location?.view === "board" ? "board" : "list", ) @@ -644,6 +645,12 @@ export function PortfolioView({ ) } + // Deep link still resolving its intent detail — show the skeleton that + // matches the target (intent / stage / unit), not the portfolio list. + if (location?.intent && loadingDetail) { + return + } + return (
-
-
-
-
-
-
- {[1, 2, 3].map((i) => ( -
-
-
-
-
-
-
-
- ))} -
-
- ) + // Match the skeleton to the page being loaded (a deep link to a unit + // flashes a unit-shaped skeleton, not the portfolio list). + return } if (error) { diff --git a/website/lib/browse/url.ts b/website/lib/browse/url.ts index 96633e5b1..1a5ce4d9d 100644 --- a/website/lib/browse/url.ts +++ b/website/lib/browse/url.ts @@ -31,7 +31,7 @@ const RESERVED_KEYWORDS = new Set(["intent", "board"]) * → "/browse/github.com/org/repo/intent/add-login/" * * buildBrowseUrl({ host: "github.com", project: "org/repo", intent: "add-login", stage: "dev", unit: "unit-01" }) - * → "/browse/github.com/org/repo/intent/add-login/stage/dev/unit-01/" + * → "/browse/github.com/org/repo/intent/add-login/stage/dev/unit/unit-01/" */ export function buildBrowseUrl(loc: BrowseLocation): string { const base = `/browse/${loc.host}/${loc.project}` @@ -42,7 +42,9 @@ export function buildBrowseUrl(loc: BrowseLocation): string { if (loc.stage) { path = `${base}/intent/${loc.intent}/stage/${loc.stage}/` if (loc.unit) { - path = `${base}/intent/${loc.intent}/stage/${loc.stage}/${loc.unit}/` + // `unit/` keyword mirrors `intent/` and `stage/` — each level of the + // path is keyword-delimited rather than positional. + path = `${base}/intent/${loc.intent}/stage/${loc.stage}/unit/${loc.unit}/` } } } else if (loc.view === "board") { @@ -122,13 +124,23 @@ export function parseBrowsePath(segments: string[]): BrowseLocation | null { if (remaining.length >= 1) loc.intent = remaining[0] // Parse stage: either "stage/{name}" keyword format or legacy "{name}" positional format if (remaining.length >= 3 && remaining[1] === "stage") { - // New format: intent/{slug}/stage/{stage}[/{unit}] + // New format: intent/{slug}/stage/{stage}[/unit/{unit}] loc.stage = remaining[2] - if (remaining.length >= 4) loc.unit = remaining[3] + if (remaining.length >= 5 && remaining[3] === "unit") { + // Keyword form: …/stage/{stage}/unit/{unit} + loc.unit = remaining[4] + } else if (remaining.length >= 4 && remaining[3] !== "unit") { + // Legacy positional: …/stage/{stage}/{unit} + loc.unit = remaining[3] + } } else if (remaining.length >= 2 && remaining[1] !== "stage") { - // Legacy format: intent/{slug}/{stage}[/{unit}] + // Legacy format: intent/{slug}/{stage}[/{unit}] (pre-stage-keyword) loc.stage = remaining[1] - if (remaining.length >= 3) loc.unit = remaining[2] + if (remaining.length >= 4 && remaining[2] === "unit") { + loc.unit = remaining[3] + } else if (remaining.length >= 3 && remaining[2] !== "unit") { + loc.unit = remaining[2] + } } return loc } From 3696672d915d276979ee7442343f3a8487db2542 Mon Sep 17 00:00:00 2001 From: jwaldrip Date: Thu, 28 May 2026 11:24:52 -0600 Subject: [PATCH 24/24] fix(review): address PR #374 review + biome lint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review comments: - cursor.ts: a sealed-but-unmerged intent probed intentDeliveryState twice per tick (each falls back to `gh pr list` in a squash-merge repo). Hoist the result from the seal short-circuit and reuse it at the terminal merge gate. - gitlab-provider: cache the recursive intent-tree listing in glCache (TTL + already cleared by clearBranchCache's `intentTree` purge) — the rawGraphql fetch that fixed the Relay dup-id warning bypasses Relay's store, so a detail re-mount otherwise re-fetched the tree every time. - gitlab-provider: warn when the batch AND the readFileFromRef fallback both return null for a branch's intent.md (it silently falls back to the default-branch baseline — now debuggable). - github-provider: extract the inline `CHUNK = 10` to a module-level `CHUNK_SIZE` matching GitLab. - parser.ts: note the journal filter is a basename check (intentionally drops a reserved internal name anywhere, not just the intent root). - haiku_run_next.ts: tighten the pickup re-open comment — it only re-opens already-stamped delivery approvals; if the verifier hasn't run, the next tick dispatches it. Biome: fix import ordering in the three pending-seal files CI flagged. Engine tests pass (cursor-walk 31/31, seal-intent, squash-merge-fallback, engine-never-merges-mainline). Co-Authored-By: Claude Opus 4.7 --- .../prompts/intent/seal/pending_seal/index.ts | 3 +- .../haiku/src/orchestrator/workflow/cursor.ts | 14 ++++-- packages/haiku/src/parser.ts | 6 +++ .../src/tools/orchestrator/haiku_run_next.ts | 17 +++++--- website/lib/browse/github-provider.ts | 8 ++-- website/lib/browse/gitlab-provider.ts | 43 ++++++++++++++----- 6 files changed, 65 insertions(+), 26 deletions(-) diff --git a/packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts b/packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts index 6c95d961f..66467db50 100644 --- a/packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts +++ b/packages/haiku/src/orchestrator/prompts/intent/seal/pending_seal/index.ts @@ -22,7 +22,8 @@ const TEMPLATE = loadTemplate(import.meta.url) export default definePromptBuilder(({ slug, action, dir }) => { const defaultBranch = - (action as { default_branch?: string }).default_branch || "the default branch" + (action as { default_branch?: string }).default_branch || + "the default branch" // Surface the delivery PR/MR url if we stamped one at intent_create // (informational — the engine never gates on it). Read from intent.md // FM; absent when no provider CLI was available. diff --git a/packages/haiku/src/orchestrator/workflow/cursor.ts b/packages/haiku/src/orchestrator/workflow/cursor.ts index 29d7313cd..0a6a45f07 100644 --- a/packages/haiku/src/orchestrator/workflow/cursor.ts +++ b/packages/haiku/src/orchestrator/workflow/cursor.ts @@ -78,8 +78,8 @@ import { resolveStudioFixHats, } from "../studio.js" import { engineHandleDriftEvents } from "./drift-handle-events.js" -import { intentDeliveryState } from "./intent-delivery.js" import { runDriftSweep } from "./drift-sweep.js" +import { intentDeliveryState } from "./intent-delivery.js" // Roles that dispatch as serial sequential gates (one per tick). // Everything else (continuity, cross-stage-consistency, studio agents) @@ -2123,16 +2123,22 @@ export function derivePosition(args: { // (squash-merge-aware) read — this decides whether the lock holds. // Inapplicable in filesystem mode / no default branch → merged === true // → the short-circuit fires exactly as before. + // Computed once per tick when a seal stamp exists, then reused by the merge + // gate at the terminal below — `intentDeliveryState` falls back to `gh pr + // list` in a squash-merge repo, so probing it twice in this state is two CLI + // invocations per pickup tick until the PR finally seals. + let sealedDelivery: ReturnType | undefined if ( intentResult && typeof intentResult.data.sealed_at === "string" && (intentResult.data.sealed_at as string).length > 0 ) { - const sealedDelivery = intentDeliveryState(slug) + sealedDelivery = intentDeliveryState(slug) if (!sealedDelivery.applicable || sealedDelivery.merged) { return { track: "sealed", action: { kind: "sealed" } } } - // else: sealed but not delivered — fall through to the walk. + // else: sealed but not delivered — fall through to the walk; the merge + // gate below reuses `sealedDelivery` instead of probing again. } // Pre-intent verifier (2026-05-08). The conversation that produced @@ -2407,7 +2413,7 @@ export function derivePosition(args: { // (squash-merge-aware) read. Inapplicable in filesystem mode / when no // default branch resolves → `merged` is true and the seal proceeds as // before. - const delivery = intentDeliveryState(slug) + const delivery = sealedDelivery ?? intentDeliveryState(slug) if (delivery.applicable && !delivery.merged) { return { track: "intent", diff --git a/packages/haiku/src/parser.ts b/packages/haiku/src/parser.ts index b11e09cb7..bd856d732 100644 --- a/packages/haiku/src/parser.ts +++ b/packages/haiku/src/parser.ts @@ -839,6 +839,12 @@ async function parseUnitOutputs( // baselines, …) are never a unit's deliverable. The source fix in // `autoPopulateOutputs` stops new leaks; this drops them on the // SPA surface for intents that leaked them before that landed. + // NOTE: this is a basename check, intentionally looser than + // autoPopulateOutputs' path-equality — it drops an internal name + // (e.g. `baseline.json`) ANYWHERE in the tree, not just the intent + // root. A unit that genuinely declares such a name as a real output + // would be filtered here; that's an accepted trade for never + // surfacing a journal, since those names are reserved bookkeeping. if (INTENT_ROOT_INTERNAL_ENTRIES.has(basename(declared))) continue const intentRel = intentRelativeOutputPath(declared, intentDir) const intentAbs = resolve(intentDirAbs, intentRel) diff --git a/packages/haiku/src/tools/orchestrator/haiku_run_next.ts b/packages/haiku/src/tools/orchestrator/haiku_run_next.ts index 27a929d79..88b390a17 100644 --- a/packages/haiku/src/tools/orchestrator/haiku_run_next.ts +++ b/packages/haiku/src/tools/orchestrator/haiku_run_next.ts @@ -44,12 +44,12 @@ import { uncommittedAgentWork, } from "../../git-worktree.js" import { adaptInstructions } from "../../harness-instructions.js" +import { PR_INTERACTION_ROLES } from "../../orchestrator/review-role-classes.js" import { findCurrentStage, isStageComplete, stageOwesObservations, } from "../../orchestrator/workflow/cursor.js" -import { PR_INTERACTION_ROLES } from "../../orchestrator/review-role-classes.js" import { runWorkflowTick } from "../../orchestrator/workflow/run-tick.js" import type { OrchestratorAction as OrchestratorActionType } from "../../orchestrator.js" import { @@ -1324,14 +1324,17 @@ export default defineTool({ // and reflected, but its hub branch hasn't landed on the default // branch — so the cursor is HOLDING it in `pending_seal` (no // `sealed_at` written; the merge is the user's call). A pickup is the - // user's explicit "I'm back, re-check the delivery" signal: re-open - // the delivery PR-interaction approval(s) so the cursor re-dispatches - // the delivery-verifier, which re-reads the open change request, files - // feedback for any NEW review comments, and re-confirms + // user's explicit "I'm back, re-check the delivery" signal: re-open any + // ALREADY-STAMPED delivery PR-interaction approval(s) so the cursor + // re-dispatches the delivery-verifier, which re-reads the open change + // request, files feedback for any NEW review comments, and re-confirms // CI/mergeability before the intent can seal again. Keyed on // `PR_INTERACTION_ROLES` (not a hardcoded name) so a studio that - // overrides or adds a PR-interaction role is re-audited too. A plain - // (non-pickup) tick just returns the holding prompt. + // overrides or adds a PR-interaction role is re-audited too. NOTE: this + // only re-opens slots already present in `approvals` — if the + // delivery-verifier hasn't run yet (no slot stamped), nothing is + // re-opened here and the next regular tick dispatches it normally. A + // plain (non-pickup) tick just returns the holding prompt. if (result.action === "pending_seal" && args.pickup === true) { try { const intentMd = join(findHaikuRoot(), "intents", slug, "intent.md") diff --git a/website/lib/browse/github-provider.ts b/website/lib/browse/github-provider.ts index 222433fec..f86524f7b 100644 --- a/website/lib/browse/github-provider.ts +++ b/website/lib/browse/github-provider.ts @@ -42,6 +42,9 @@ import { normalizeIntentStatus, parseFrontmatter, parseUnit } from "./types" const CACHE_TTL = 5 * 60 * 1000 // 5 minutes const apiCache = new Map() +/** Per-request alias fan-out size for the lean list-view batch (mirrors the + * GitLab provider's CHUNK_SIZE). */ +const CHUNK_SIZE = 10 export class GitHubProvider implements BrowseProvider { readonly name = "GitHub" @@ -155,9 +158,8 @@ export class GitHubProvider implements BrowseProvider { entries?: Array<{ name?: string | null; type?: string | null }> } | null > - const CHUNK = 10 - for (let i = 0; i < mains.length; i += CHUNK) { - const chunk = mains.slice(i, i + CHUNK) + for (let i = 0; i < mains.length; i += CHUNK_SIZE) { + const chunk = mains.slice(i, i + CHUNK_SIZE) const fields = chunk .map((m, j) => { const md = JSON.stringify( diff --git a/website/lib/browse/gitlab-provider.ts b/website/lib/browse/gitlab-provider.ts index 509233d3c..5a501e249 100644 --- a/website/lib/browse/gitlab-provider.ts +++ b/website/lib/browse/gitlab-provider.ts @@ -236,6 +236,14 @@ export class GitLabProvider implements BrowseProvider { ) .map((n) => n?.name) .filter((n): n is string => typeof n === "string" && n.length > 0) + if (!rawText) { + // Batch AND fallback both missed — the intent silently + // falls back to its default-branch baseline. Surface it so + // a vanished/half-loaded intent is debuggable. + console.warn( + `[haiku-browse] intent.md unreadable for ${m.slug}@${m.branch} (batch + fallback both null); using default-branch baseline`, + ) + } } out.set(m.slug, { rawText, stageDirs }) }), @@ -607,19 +615,32 @@ export class GitLabProvider implements BrowseProvider { // and the normalizer then warns "conflicting field ... same id" and lets one // path clobber the other. We only read `name`/`path` into plain objects (no // Relay store use), so request exactly those — no id, no normalization. - const treeData = await this.rawGraphql( - `query($fullPath: ID!, $path: String!, $ref: String) { - project(fullPath: $fullPath) { - repository { - tree(path: $path, ref: $ref, recursive: true) { - blobs(first: 500) { nodes { name path } } - trees(first: 100) { nodes { name path } } + // Cache the listing in glCache (TTL + cleared by clearBranchCache, which + // already purges `intentTree` keys) so re-mounting the detail view for the + // same intent doesn't re-fetch — rawGraphql bypasses Relay's store, so it + // has no cache of its own. + const treeCacheKey = `gl:${this.host}:${this.projectPath}:intentTree:${slug}:${refLabel}` + const cachedTree = glCache.get(treeCacheKey) + let treeData: operationsIntentTreeQuery$data | undefined + if (cachedTree && Date.now() - cachedTree.ts < GL_CACHE_TTL) { + treeData = cachedTree.data as operationsIntentTreeQuery$data + } else { + treeData = await this.rawGraphql( + `query($fullPath: ID!, $path: String!, $ref: String) { + project(fullPath: $fullPath) { + repository { + tree(path: $path, ref: $ref, recursive: true) { + blobs(first: 500) { nodes { name path } } + trees(first: 100) { nodes { name path } } + } } } - } - }`, - { fullPath: this.projectPath, path: basePath, ref }, - ) + }`, + { fullPath: this.projectPath, path: basePath, ref }, + ) + if (treeData) + glCache.set(treeCacheKey, { data: treeData, ts: Date.now() }) + } const allBlobs = ( treeData?.project?.repository?.tree?.blobs?.nodes ?? []